@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Noto+Sans+JP:wght@300;400;500;600;700;900&display=swap');

:root{
  --ind:#1E1B4B;--ind-light:#312E81;--ind-mid:#3730A3;
  --vio:#7C3AED;--vio-h:#6D28D9;--vio-pale:#F5F3FF;
  --warm:#FFFBF5;--warm-dark:#FFF7ED;
  --wh:#FFFFFF;--bk:#000;
  --g100:#F3F2EF;--g200:#E5E3DE;--g300:#C9C6BE;--g400:#9C9890;--g500:#6E6A62;--g600:#4A4740;
  --text:#1E1B4B;--sub:#6E6A62;--mute:#9C9890;--rule:#E5E3DE;
  --hd:'Plus Jakarta Sans','Noto Sans JP',sans-serif;
  --bd:'Noto Sans JP',sans-serif;
  --mw:1040px;--hh:60px;
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--bd);font-weight:400;color:var(--text);background:var(--warm);line-height:1.85;font-size:14px;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}a{text-decoration:none;color:inherit;transition:color .2s}ul,ol{list-style:none}table{border-collapse:collapse;width:100%}
.w{max-width:var(--mw);margin:0 auto;padding:0 24px}

.lbl{font-family:var(--hd);font-size:10px;font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:var(--vio);margin-bottom:6px}
.ttl{font-size:28px;font-weight:800;color:var(--ind);line-height:1.3;margin-bottom:10px}
.dsc{font-size:13px;color:var(--sub);line-height:1.85;max-width:520px}
.hd-c{text-align:center;margin-bottom:48px}.hd-c .dsc{margin:0 auto}

.ph{border:2px dashed var(--g200);display:flex;align-items:center;justify-content:center;color:var(--g400);font-size:12px;font-weight:500;background:var(--g100)}

.rv{opacity:0;transform:translateY(18px);transition:opacity .6s cubic-bezier(.22,1,.36,1),transform .6s cubic-bezier(.22,1,.36,1)}.rv.vis{opacity:1;transform:none}

/* ===== HEADER: centered logo, split nav ===== */
.hdr{position:fixed;top:0;left:0;right:0;height:var(--hh);z-index:1000;transition:background .3s,box-shadow .3s,border-color .3s;background:transparent;border-bottom:1px solid transparent}
.hdr.solid{background:var(--warm);border-bottom-color:var(--rule);box-shadow:0 1px 12px rgba(30,27,75,.04)}
.hdr-in{max-width:var(--mw);margin:0 auto;padding:0 24px;height:100%;display:flex;align-items:center;justify-content:center;gap:0;position:relative}
.nav-l,.nav-r{display:flex;align-items:center;gap:20px}
.nav-l{margin-right:auto}
.nav-r{margin-left:auto}
.nav-l a,.nav-r a{font-size:12px;font-weight:500;color:var(--sub);transition:color .2s}
.nav-l a:hover,.nav-r a:hover,.nav-l a.on,.nav-r a.on{color:var(--ind)}
.logo-c{position:absolute;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:6px}
.logo-c .lm{font-family:var(--hd);font-size:20px;font-weight:800;color:var(--ind)}
.logo-c .lt{font-size:10px;font-weight:500;color:var(--sub);display:none}
.ham{display:none;position:absolute;right:24px;flex-direction:column;gap:5px;width:22px;cursor:pointer;background:none;border:none;padding:0}
.ham span{display:block;width:100%;height:1.5px;background:var(--ind);transition:transform .3s,opacity .3s}
.ham.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}.ham.open span:nth-child(2){opacity:0}.ham.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
.nav-m{display:none;position:fixed;top:var(--hh);left:0;right:0;bottom:0;background:var(--warm);z-index:999;padding:28px 24px;overflow-y:auto}
.nav-m.open{display:block}
.nav-m a{display:block;padding:14px 0;font-size:16px;font-weight:500;color:var(--ind);border-bottom:1px solid var(--rule)}
.nav-m .m-cta{display:block;text-align:center;margin-top:20px;color:var(--vio);font-weight:700;padding:14px;border:2px solid var(--vio);border-radius:8px}

/* ===== HERO: full viewport ===== */
.hero{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--hh) 24px 48px;position:relative}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-bg .ph{width:100%;height:100%;border:none;border-radius:0;opacity:.12}
.hero-content{position:relative;z-index:1}
.hero h1{font-family:var(--hd);font-size:52px;font-weight:800;color:var(--ind);line-height:1.2;margin-bottom:16px;letter-spacing:-.02em}
.hero-sub{font-size:14px;color:var(--sub);margin:0 auto 32px;max-width:480px;line-height:1.85}
.hero-pills{display:flex;gap:10px;justify-content:center;margin-top:24px;flex-wrap:wrap}
.hero-pill{font-size:12px;font-weight:600;color:var(--ind);background:var(--wh);border:1px solid var(--rule);padding:8px 20px;border-radius:100px}
.hero-pill strong{font-family:var(--hd);font-weight:800;color:var(--vio)}
.hero-note{font-size:10px;color:var(--mute);margin-top:16px}

/* ===== CTA BUTTON ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:transparent;color:var(--vio);font-family:var(--bd);font-size:15px;font-weight:700;padding:14px 32px;border-radius:8px;border:2px solid var(--vio);cursor:pointer;transition:background .2s,color .2s,transform .15s}
.btn:hover{background:var(--vio);color:var(--wh);transform:translateY(-1px)}

/* ===== FLOATING CTA: top-right ===== */
.fl-top{position:fixed;top:14px;right:24px;z-index:1001;opacity:0;pointer-events:none;transition:opacity .3s}
.fl-top.vis{opacity:1;pointer-events:auto}
.fl-top .btn{font-size:11px;padding:8px 16px;background:var(--warm);box-shadow:0 2px 12px rgba(30,27,75,.1);border-radius:6px}

/* ===== SUBJECTS: accent-bar blocks ===== */
.subj{padding:72px 0}
.subj-block{display:flex;align-items:stretch;border-left:5px solid var(--vio);margin-bottom:2px;transition:background .15s}
.subj-block:nth-child(even){background:var(--warm-dark)}
.subj-block:hover{background:var(--vio-pale)}
.subj-block-in{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 32px;width:100%}
.subj-block h3{font-size:18px;font-weight:700;color:var(--ind);min-width:180px;flex-shrink:0}
.subj-block p{font-size:12px;color:var(--sub);line-height:1.7;flex:1}
.subj-link{font-size:12px;font-weight:700;color:var(--vio);flex-shrink:0;white-space:nowrap}

/* ===== REASONS: giant number rows ===== */
.reasons{padding:72px 0;background:var(--wh)}
.rsn-row{display:flex;align-items:flex-start;gap:24px;padding:32px 0;border-bottom:3px solid var(--ind)}
.rsn-row:first-child{border-top:3px solid var(--ind)}
.rsn-big{font-family:var(--hd);font-size:80px;font-weight:800;color:var(--vio);line-height:1;opacity:.2;flex-shrink:0;min-width:100px}
.rsn-body h3{font-size:18px;font-weight:700;color:var(--ind);margin-bottom:4px}
.rsn-body p{font-size:12px;color:var(--sub);line-height:1.7}

/* ===== FLOW: 2x2 grid ===== */
.flow-sec{padding:72px 0}
.flow-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--rule)}
.fl-cell{background:var(--warm);padding:36px 28px;text-align:center}
.fl-cell:nth-child(odd){background:var(--wh)}
.fl-n{font-family:var(--hd);font-size:40px;font-weight:800;color:var(--vio);opacity:.25;margin-bottom:8px}
.fl-cell h3{font-size:15px;font-weight:700;color:var(--ind);margin-bottom:4px}
.fl-badge{display:inline-block;font-size:10px;font-weight:700;color:var(--vio);border:1px solid var(--vio);padding:3px 10px;border-radius:100px;margin-bottom:8px}
.fl-cell>p{font-size:11px;color:var(--sub);line-height:1.6}

/* ===== VOICE: horizontal scroll ===== */
.voice{padding:72px 0;background:var(--wh)}
.voice-scroll{display:flex;gap:16px;overflow-x:auto;padding-bottom:12px;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}
.voice-scroll::-webkit-scrollbar{height:4px}.voice-scroll::-webkit-scrollbar-track{background:var(--g100)}.voice-scroll::-webkit-scrollbar-thumb{background:var(--g300);border-radius:2px}
.v-block{min-width:320px;max-width:340px;flex-shrink:0;padding:28px;border:1px solid var(--rule);border-radius:8px;scroll-snap-align:start;background:var(--warm)}
.v-top{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.v-av{width:40px;height:40px;border-radius:50%;flex-shrink:0;font-size:8px}
.v-meta h4{font-size:13px;font-weight:700;color:var(--ind)}
.v-meta span{font-size:10px;color:var(--mute)}
.v-tag{font-size:10px;font-weight:700;color:var(--vio);margin-bottom:8px;display:inline-block}
.v-block>p{font-size:12px;color:var(--sub);line-height:1.8}

/* ===== FAQ: highlight accordion ===== */
.faq-sec{padding:72px 0}
.faq-list{border-top:1px solid var(--rule)}
.fq{border-bottom:1px solid var(--rule);transition:background .2s}
.fq.open{background:var(--vio-pale)}
.fq-q{width:100%;background:none;border:none;padding:20px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;text-align:left;font-family:var(--bd);font-size:14px;font-weight:600;color:var(--ind);line-height:1.6}
.fq-tog{flex-shrink:0;width:20px;height:20px;position:relative}
.fq-tog::before,.fq-tog::after{content:'';position:absolute;top:50%;left:50%;background:var(--g400);transition:transform .3s}
.fq-tog::before{width:12px;height:2px;transform:translate(-50%,-50%)}
.fq-tog::after{width:2px;height:12px;transform:translate(-50%,-50%)}
.fq.open .fq-tog::after{transform:translate(-50%,-50%) rotate(90deg)}
.fq-a{max-height:0;overflow:hidden;transition:max-height .4s cubic-bezier(.22,1,.36,1)}
.fq-a-in{padding:0 24px 20px;font-size:13px;color:var(--sub);line-height:1.85}

/* ===== CTA BAND: oversized text ===== */
.cta-band{padding:64px 0;background:var(--ind);text-align:center}
.cta-band h2{font-family:var(--hd);font-size:32px;font-weight:800;color:var(--wh);margin-bottom:6px;line-height:1.3}
.cta-band p{font-size:12px;color:rgba(255,255,255,.4);margin-bottom:28px}
.cta-band .btn{border-color:var(--vio);color:rgba(255,255,255,.9);font-size:14px}
.cta-band .btn:hover{background:var(--vio);color:var(--wh)}

/* ===== FOOTER: stacked ===== */
.ftr{background:var(--ind);color:var(--wh);padding:48px 0 0}
.ftr-company{padding-bottom:32px;border-bottom:1px solid rgba(255,255,255,.08)}
.ftr-company .logo-c{position:static;transform:none;justify-content:flex-start;margin-bottom:12px}
.ftr-company .lm{color:#fff}.ftr-company .lt{color:rgba(255,255,255,.4);display:inline}
.ftr-company p{font-size:12px;color:rgba(255,255,255,.5);line-height:1.8;max-width:400px}
.ftr-links{display:flex;gap:20px;padding:20px 0;border-bottom:1px solid rgba(255,255,255,.08);flex-wrap:wrap}
.ftr-links a{font-size:11px;color:rgba(255,255,255,.45);transition:color .2s}.ftr-links a:hover{color:#fff}
.ftr-map{padding:28px 0;border-bottom:1px solid rgba(255,255,255,.08)}
.ftr-map iframe{width:100%;height:180px;border:none;border-radius:6px}
.ftr-btm{padding:16px 0;font-size:10px;color:rgba(255,255,255,.25);display:flex;justify-content:space-between}
.ftr-legal{font-size:9px;color:rgba(255,255,255,.3);line-height:1.8;padding:16px 0;border-top:1px solid rgba(255,255,255,.08)}

/* ===== BREADCRUMB ===== */
.bc{padding:calc(var(--hh) + 12px) 0 0;font-size:11px;color:var(--mute)}
.bc a{color:var(--mute)}.bc a:hover{color:var(--ind)}
.bc span{margin:0 6px;color:var(--g300)}

/* ===== SUB HERO: dark block ===== */
.sub-hero{background:var(--ind);padding:calc(var(--hh) + 48px) 0 56px;text-align:center}
.sub-hero .hero-pill{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.15);color:rgba(255,255,255,.8)}
.sub-hero .hero-pill strong{color:var(--wh)}
.sub-hero h1{font-family:var(--hd);font-size:34px;font-weight:800;color:var(--wh);margin-bottom:12px;line-height:1.3}
.sub-hero-desc{font-size:13px;color:rgba(255,255,255,.55);max-width:520px;margin:0 auto 24px;line-height:1.85}
.sub-hero .btn{border-color:rgba(255,255,255,.3);color:rgba(255,255,255,.85)}
.sub-hero .btn:hover{background:var(--vio);border-color:var(--vio);color:#fff}
.sub-hero-note{font-size:10px;color:rgba(255,255,255,.3);margin-top:12px}

/* ===== CONCERNS ===== */
.concerns{padding:64px 0}
.con-list{max-width:600px;margin:0 auto;border-top:1px solid var(--rule)}
.con{display:flex;align-items:flex-start;gap:10px;padding:14px 0;border-bottom:1px solid var(--rule)}
.con-chk{flex-shrink:0;width:18px;height:18px;border:1.5px solid var(--vio);border-radius:3px;display:flex;align-items:center;justify-content:center;margin-top:2px}
.con-chk svg{width:10px;height:10px;stroke:var(--vio);fill:none;stroke-width:2.5}
.con p{font-size:13px;color:var(--ind);font-weight:500}

/* ===== ABOUT DISEASE ===== */
.about-d{padding:64px 0;background:var(--wh)}
.about-d-in{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:start}
.about-d-txt h3{font-size:18px;font-weight:700;color:var(--ind);margin-bottom:12px}
.about-d-txt p{font-size:13px;color:var(--sub);line-height:1.9;margin-bottom:10px}

/* ===== PRICING: accent-bar blocks ===== */
.pricing{padding:72px 0}
.pr-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:16px;padding-bottom:12px;border-bottom:3px solid var(--ind)}
.pr-info{display:flex;gap:12px;font-size:11px;color:var(--sub)}.pr-info strong{color:var(--vio);font-weight:700}
.pr-block{border-left:5px solid var(--vio);padding:20px 24px;margin-bottom:2px;display:flex;align-items:center;justify-content:space-between;gap:20px;transition:background .15s}
.pr-block:nth-child(odd){background:var(--wh)}
.pr-block:nth-child(even){background:var(--warm-dark)}
.pr-block:hover{background:var(--vio-pale)}
.pr-left h3{font-size:16px;font-weight:700;color:var(--ind);margin-bottom:2px}
.pr-left .pr-drug{font-size:11px;color:var(--mute)}
.pr-left .pr-for{font-size:11px;color:var(--sub);margin-top:4px}
.pr-right{text-align:right;flex-shrink:0}
.pr-val{font-family:var(--hd);font-size:22px;font-weight:800;color:var(--ind)}
.pr-val small{font-size:11px;font-weight:500}
.pr-sub{font-size:10px;color:var(--mute)}
.pr-note{font-size:10px;color:var(--mute);margin-top:12px;line-height:1.7}

/* ===== CASES: horizontal scroll ===== */
.cases{padding:64px 0;background:var(--wh)}
.case-scroll{display:flex;gap:16px;overflow-x:auto;padding-bottom:12px;-webkit-overflow-scrolling:touch}
.case-scroll::-webkit-scrollbar{height:4px}.case-scroll::-webkit-scrollbar-track{background:var(--g100)}.case-scroll::-webkit-scrollbar-thumb{background:var(--g300);border-radius:2px}
.case-block{min-width:280px;flex-shrink:0;border:1px solid var(--rule);border-radius:8px;overflow:hidden;background:var(--warm)}
.case-img{position:relative;width:100%;aspect-ratio:4/3}
.case-img img{width:100%;height:100%;object-fit:cover}
.case-img span{position:absolute;top:8px;left:8px;font-family:var(--hd);font-size:9px;font-weight:700;color:#fff;background:rgba(30,27,75,.7);padding:3px 8px;border-radius:3px}
.case-block .case-body{padding:16px}
.case-body h4{font-size:13px;font-weight:700;color:var(--ind);margin-bottom:4px}
.case-body p{font-size:10px;color:var(--mute);line-height:1.6}

/* ===== DRUG COMPARE: vertical sections ===== */
.drug-cmp{padding:64px 0}
.drug-item{border-left:5px solid var(--vio);padding:24px;margin-bottom:2px;background:var(--wh)}
.drug-item:nth-child(even){background:var(--warm-dark)}
.drug-item h3{font-size:16px;font-weight:700;color:var(--ind);margin-bottom:10px}
.drug-specs{display:flex;gap:24px;flex-wrap:wrap}
.drug-spec{font-size:12px;color:var(--sub)}
.drug-spec strong{display:block;font-size:11px;color:var(--mute);font-weight:500;margin-bottom:2px}

/* ===== TRIAL: accent blocks ===== */
.trial{padding:64px 0;background:var(--wh)}
.trial-block{border-left:5px solid var(--vio);padding:24px;margin-bottom:2px;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;background:var(--warm)}
.trial-block:nth-child(even){background:var(--warm-dark)}
.trial-left h3{font-size:15px;font-weight:700;color:var(--ind);margin-bottom:4px}
.trial-left p{font-size:12px;color:var(--sub);line-height:1.7;margin-bottom:6px}
.trial-left .trial-drg{font-size:10px;color:var(--mute);line-height:1.6}
.trial-right{flex-shrink:0;text-align:right}
.trial-pr{font-family:var(--hd);font-size:22px;font-weight:800;color:var(--ind)}
.trial-pr small{font-size:11px;font-weight:500}

/* ===== GLP-1: treatment accordion ===== */
.glp{padding:64px 0}
.glp-acc{border-top:2px solid var(--ind)}
.glp-item{border-bottom:1px solid var(--rule)}
.glp-trigger{width:100%;background:none;border:none;padding:20px 0;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;text-align:left;font-family:var(--bd)}
.glp-trigger h3{font-size:16px;font-weight:700;color:var(--ind)}
.glp-trigger .glp-tag{font-size:10px;font-weight:700;color:var(--vio);border:1px solid var(--vio);padding:3px 10px;border-radius:100px;margin-right:12px}
.glp-trigger .glp-tog{flex-shrink:0;width:20px;height:20px;position:relative}
.glp-trigger .glp-tog::before,.glp-trigger .glp-tog::after{content:'';position:absolute;top:50%;left:50%;background:var(--g400);transition:transform .3s}
.glp-trigger .glp-tog::before{width:12px;height:2px;transform:translate(-50%,-50%)}
.glp-trigger .glp-tog::after{width:2px;height:12px;transform:translate(-50%,-50%)}
.glp-item.open .glp-tog::after{transform:translate(-50%,-50%) rotate(90deg)}
.glp-body{max-height:0;overflow:hidden;transition:max-height .4s cubic-bezier(.22,1,.36,1)}
.glp-body-in{padding:0 0 20px;font-size:13px;color:var(--sub);line-height:1.85}
.glp-body-in dl dt{font-weight:700;color:var(--ind);font-size:12px;margin-bottom:2px;margin-top:10px}
.glp-body-in dl dd{font-size:12px;color:var(--sub);padding-left:12px;border-left:2px solid var(--rule)}

/* ===== REASONS COMPACT ===== */
.rsn-c{padding:64px 0;background:var(--wh)}

/* ===== LEGAL ===== */
.legal{padding:32px 0;border-top:1px solid var(--rule)}
.legal h4{font-size:10px;font-weight:600;color:var(--mute);margin-bottom:6px}
.legal p{font-size:9px;color:var(--g400);line-height:1.8}

/* ===== RESPONSIVE ===== */
@media(max-width:768px){
  :root{--hh:52px}
  .nav-l,.nav-r{display:none}.ham{display:flex}
  .logo-c{position:static;transform:none}
  .hdr-in{justify-content:space-between}
  .hero h1{font-size:32px}
  .hero-pills{flex-direction:column;align-items:center}
  .sub-hero h1{font-size:26px}
  .subj-block-in{flex-direction:column;gap:8px;align-items:flex-start}
  .subj-block h3{min-width:auto}
  .rsn-row{flex-direction:column;gap:4px}
  .rsn-big{font-size:48px;min-width:auto}
  .flow-grid{grid-template-columns:1fr}
  .v-block{min-width:280px}
  .cta-band h2{font-size:24px}
  .cta-band .btn{width:100%}
  .ftr-btm{flex-direction:column;gap:4px}
  .about-d-in{grid-template-columns:1fr}
  .pr-block{flex-direction:column;align-items:flex-start;gap:8px}
  .pr-right{text-align:left}
  .trial-block{flex-direction:column;gap:8px}
  .trial-right{text-align:left}
  .drug-specs{flex-direction:column;gap:8px}
  .fl-top{right:12px;top:10px}
  .ttl{font-size:24px}
}
