
:root{--ink:#1f2b32;--muted:#667278;--paper:#fffaf0;--white:#fff;--yellow:#ffd95a;--pink:#ff8fa3;--green:#82d5b7;--blue:#77b7df;--cream:#fff3cf;--line:#21313a;--soft:#f4fbf4;--shadow:0 22px 60px rgba(31,43,50,.12)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:var(--paper);font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;line-height:1.9;letter-spacing:0}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.site-header{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:22px;justify-content:space-between;padding:14px 28px;background:rgba(255,250,240,.93);border-bottom:2px solid var(--line);backdrop-filter:blur(16px)}
.brand{display:flex;align-items:center;gap:14px;min-width:280px}
.brand img{width:170px;height:auto}.brand span{font-weight:900;font-size:13px}
.menu-toggle{display:none;border:2px solid var(--line);background:var(--yellow);padding:8px 14px;font-weight:900;cursor:pointer}
.mega-nav{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.mega-nav details{position:relative}.mega-nav summary{list-style:none;border:2px solid transparent;padding:7px 9px;font-size:12px;font-weight:900;cursor:pointer}.mega-nav summary::-webkit-details-marker{display:none}.mega-nav summary:after{content:"+";margin-left:6px;color:#d84a62}
.mega-nav details[open] summary{background:var(--white);border-color:var(--line)}.mega-nav details[open] summary:after{content:"-"}
.mega-nav details>div{position:absolute;top:calc(100% + 10px);right:0;width:min(420px,88vw);padding:10px;background:var(--white);border:2px solid var(--line);box-shadow:var(--shadow)}
.mega-nav a{display:block;padding:12px;background:#fffdf6;border:1px solid #e2ded1}.mega-nav a+a{margin-top:8px}.mega-nav a span{display:inline-block;margin-right:8px;color:#d84a62;font-weight:900}.mega-nav a strong{font-size:13px;line-height:1.45}.clinic-link{background:var(--line)!important;color:var(--white);border-color:var(--line)!important;font-weight:900}
.home-hero{min-height:calc(100vh - 76px);display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.92fr);gap:4vw;align-items:center;padding:6vw;background:linear-gradient(135deg,#fff7d7 0%,#fffaf0 42%,#e5fff1 100%)}
.hero-copy h1,.article-hero h1{font-size:clamp(40px,7vw,92px);line-height:1.02;margin:16px 0 24px;letter-spacing:0}.hero-copy p,.lead{font-size:18px;max-width:760px}.hero-visual{border:2px solid var(--line);background:var(--white);padding:20px;box-shadow:12px 12px 0 var(--green)}
.eyebrow{text-transform:uppercase;font-size:13px;font-weight:900;letter-spacing:.08em;color:#d84a62;margin:0 0 10px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:10px 18px;border:2px solid var(--line);font-weight:900}.button.primary{background:var(--yellow)}.button.secondary{background:var(--white)}.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.intro-band,.clinic-cta{display:grid;grid-template-columns:.9fr 1.1fr;gap:42px;align-items:center;padding:7vw 6vw;border-top:2px solid var(--line);background:var(--white)}.intro-band img,.clinic-cta img{width:100%;height:360px;object-fit:cover;border:2px solid var(--line);box-shadow:10px 10px 0 var(--pink)}.intro-band h2,.topic-index h2,.article-list-section h2,.clinic-cta h2,.content-section h2,.checksheet h2,.faq-section h2,.related-section h2{font-size:clamp(28px,4.2vw,56px);line-height:1.12;margin:0 0 22px}
.topic-index,.article-list-section{padding:7vw 6vw;border-top:2px solid var(--line)}.category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.category-card{background:var(--white);border:2px solid var(--line);padding:22px;box-shadow:8px 8px 0 var(--blue)}.category-card span{font-weight:900;color:#d84a62}.category-card h3{font-size:24px;line-height:1.25;margin:8px 0}.category-card a{display:block;padding:10px 0;border-top:1px solid #e9e0cf;font-weight:800}
.article-list{columns:2;gap:34px;padding:0;list-style:none}.article-list li{break-inside:avoid;margin:0 0 10px}.article-list a{display:flex;gap:12px;align-items:flex-start;padding:12px;background:var(--white);border:1px solid #e5dfcf}.article-list span{font-weight:900;color:#d84a62}
.article-hero{padding:8vw 6vw 4vw;background:linear-gradient(135deg,#fff3c7,#fffaf0 45%,#e6fff6);border-bottom:2px solid var(--line)}.keyword-row{display:flex;gap:8px;flex-wrap:wrap}.keyword-row span{border:1px solid var(--line);background:var(--white);padding:5px 9px;font-weight:800;font-size:12px}
.article-image{margin:44px auto;max-width:980px;padding:0 24px}.article-image.wide{max-width:1180px}.article-image img{width:100%;max-height:520px;object-fit:cover;border:2px solid var(--line)}figcaption{font-size:13px;color:var(--muted);margin-top:8px}
.content-section,.faq-section,.related-section,.checksheet{max-width:1040px;margin:0 auto;padding:48px 24px}.content-section p{font-size:17px}.answer{background:var(--white);border:2px solid var(--line);margin-top:54px;padding:34px;box-shadow:10px 10px 0 var(--yellow)}
.checksheet{display:grid;grid-template-columns:.8fr 1.2fr;gap:28px;background:#fff6c9;border:2px solid var(--line);margin-top:40px;margin-bottom:44px}.check-grid{display:grid;gap:10px}.check-grid label{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start;background:var(--white);border:1px solid #e5d991;padding:12px;font-weight:800}.check-grid input{width:20px;height:20px}.check-result{grid-column:1/-1;border:2px solid var(--line);background:var(--white);padding:18px;display:grid;gap:8px}.check-result strong{font-size:24px}.check-result a{display:none;width:max-content;border:2px solid var(--line);background:var(--yellow);padding:9px 14px;font-weight:900}.check-result.is-yellow{background:#fff0a6}.check-result.is-red{background:#ffe0e5}.check-result.is-yellow a,.check-result.is-red a{display:inline-flex}
.faq-section details{background:var(--white);border:1px solid #e5dfcf;padding:16px;margin:10px 0}.faq-section summary{font-weight:900;cursor:pointer}
.related-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.related-banner{display:grid;gap:10px;min-height:170px;padding:22px;border:2px solid var(--line);background:linear-gradient(135deg,#eafff7,#fff8d9);box-shadow:8px 8px 0 var(--green)}.related-banner span{color:#d84a62;font-weight:900}.related-banner strong{font-size:22px;line-height:1.35}.related-banner em{font-style:normal;font-weight:900;background:var(--line);color:var(--white);width:max-content;padding:6px 10px}
.clinic-cta{margin-top:52px}.site-footer{padding:52px 6vw;background:#f6fffb;color:#22343c;border-top:2px solid var(--line)}.footer-inner{display:grid;grid-template-columns:minmax(300px,420px) 1fr;align-items:center;gap:42px;max-width:1180px;margin:0 auto}.site-footer .footer-logo{width:100%;max-width:420px;height:auto;filter:none;margin:0;object-fit:contain}.site-footer p{margin:0 0 10px;font-weight:800;font-size:17px}.site-footer a{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;color:#006f92;font-weight:900}
@media (max-width:900px){.site-header{padding:12px 16px;align-items:flex-start}.brand{min-width:0}.brand img{width:136px}.menu-toggle{display:inline-flex}.mega-nav{display:none;width:100%;order:3;padding-top:12px}.site-header.is-menu-open{flex-wrap:wrap}.site-header.is-menu-open .mega-nav{display:grid;grid-template-columns:1fr}.mega-nav details>div{position:static;width:100%;box-shadow:none;margin-top:8px}.home-hero,.intro-band,.clinic-cta,.checksheet{grid-template-columns:1fr}.home-hero{min-height:auto;padding:58px 20px}.hero-copy h1,.article-hero h1{font-size:42px}.category-grid,.related-grid{grid-template-columns:1fr}.article-list{columns:1}.intro-band,.clinic-cta,.topic-index,.article-list-section{padding:56px 20px}.intro-band img,.clinic-cta img{height:240px}.related-banner{min-height:0}.related-banner strong{font-size:18px;word-break:normal;overflow-wrap:anywhere}.content-section,.faq-section,.related-section,.checksheet{padding:38px 18px}.answer{margin:34px 18px}.article-image{padding:0 18px}.footer-inner{grid-template-columns:1fr;gap:22px}.site-footer{padding:42px 20px}.site-footer .footer-logo{width:min(100%,360px);max-width:none}.site-footer p{font-size:15px}}
