@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=DM+Sans:wght@400;500;600&family=Noto+Sans+JP:wght@400;500;600;700;800&family=Shippori+Mincho:wght@500;600&display=swap');

:root {
  --navy: #121212;
  --ink: #191919;
  --blue: #cc0700;
  --ice: #f4e9e8;
  --mist: #f0efed;
  --line: #c9c9c9;
  --white: #fff;
  --serif: "Shippori Mincho", serif;
  --sans: "Noto Sans JP", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: #fff; font-family: var(--sans); -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }

/* Navigation */
.site-header { position: fixed; z-index: 100; inset: 0 0 auto; height: 86px; padding: 0 3.4vw; display: flex; align-items: center; justify-content: space-between; color: #fff; transition: .45s cubic-bezier(.2,.8,.2,1); }
.site-header.is-scrolled { height: 70px; color: var(--ink); background: rgba(255,255,255,.91); backdrop-filter: blur(16px); border-bottom: 1px solid rgba(7,22,48,.12); }
.brand { display: flex; align-items: center; gap: 13px; font-size: 15px; font-weight: 700; letter-spacing: .05em; line-height: 1.2; }
.brand small { display: block; margin-top: 5px; font: 500 8px/1 "DM Sans"; letter-spacing: .2em; opacity: .62; }
.brand-mark { width: 28px; height: 28px; display: grid; grid-template-columns: repeat(3,1fr); gap: 3px; align-items: end; transform: rotate(45deg); }
.brand-mark i { display: block; background: currentColor; height: 11px; }
.brand-mark i:nth-child(2) { height: 22px; background: var(--blue); }
.brand-mark i:nth-child(3) { height: 16px; }
.global-nav { display: flex; align-items: center; gap: 2.4vw; font-size: 12px; font-weight: 600; letter-spacing: .05em; }
.global-nav > a:not(.nav-cta) { position: relative; padding: 12px 0; }
.global-nav > a:not(.nav-cta)::after { content: ""; position: absolute; left: 0; bottom: 5px; width: 100%; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform .35s; }
.global-nav > a:hover::after { transform: scaleX(1); transform-origin: left; }
.nav-cta { padding: 13px 17px; color: #fff; background: var(--blue); border: 1px solid var(--blue); }
.nav-cta span { margin-left: 10px; }
.menu-button { display: none; }

/* Hero: UNIPLEX-inspired split, sticky layering and oversized typography */
.hero { height: 200svh; margin-bottom: -100svh; position: relative; }
.hero-sticky { position: sticky; top: 0; height: 100svh; min-height: 700px; overflow: hidden; display: grid; grid-template-columns: 50% 50%; background: var(--navy); }
.hero-art { position: relative; background: linear-gradient(90deg,rgba(5,23,56,.28),rgba(5,23,56,.06)), url(../images/hero-art.webp) center/cover; overflow: hidden; }
.hero-art::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.1) 1px,transparent 1px); background-size: 72px 72px; mask-image: linear-gradient(to bottom,transparent,black 20%,black 75%,transparent); }
.hero-art::after { content: ""; position: absolute; width: 48vw; height: 48vw; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; left: -25vw; top: 22%; box-shadow: 0 0 0 6vw rgba(255,255,255,.03),0 0 0 12vw rgba(255,255,255,.025); }
.hero-copy { position: relative; z-index: 3; display: flex; flex-direction: column; justify-content: center; padding: 11vh 7vw 10vh 7.2vw; color: var(--ink); background: var(--ice); }
.hero-copy::after { content: ""; position: absolute; right: 3vw; bottom: 2vw; width: 58px; height: 58px; background: radial-gradient(circle,var(--blue) 1.5px,transparent 2px); background-size: 10px 10px; opacity: .46; }
.eyebrow { margin: 0 0 28px; font: 600 10px/1 "DM Sans",sans-serif; letter-spacing: .24em; text-transform: uppercase; }
.hero h1 { margin: 0; font-size: clamp(44px,4.05vw,76px); line-height: 1.23; letter-spacing: -.045em; font-weight: 700; }
.hero-lead { margin: 34px 0 0; max-width: 590px; font-size: clamp(13px,1.02vw,16px); line-height: 2; font-weight: 500; }
.hero-actions { margin-top: 34px; display: flex; align-items: center; gap: 30px; flex-wrap: wrap; }
.button { min-height: 58px; padding: 0 23px; display: inline-flex; align-items: center; justify-content: space-between; gap: 38px; border: 1px solid currentColor; font-size: 13px; font-weight: 600; transition: transform .3s,background .3s,color .3s; }
.button:hover { transform: translateY(-3px); }
.button-dark { color: #fff; background: var(--ink); }
.button-dark:hover { background: var(--blue); }
.text-link,.arrow-link { font-size: 12px; font-weight: 600; border-bottom: 1px solid currentColor; padding: 10px 0; }
.text-link span,.arrow-link span { margin-left: 15px; }
.hero-word { z-index: 4; pointer-events: none; position: absolute; left: 50%; top: 53%; transform: translate(-50%,-50%); color: #fff; mix-blend-mode: difference; font: 500 clamp(94px,16vw,300px)/.8 "DM Sans",sans-serif; letter-spacing: -.08em; white-space: nowrap; opacity: .16; }
.scroll-cue { position: absolute; z-index: 5; left: 3.3vw; bottom: 2.8vw; display: flex; gap: 13px; align-items: center; color: #fff; font: 500 8px/1 "DM Sans"; letter-spacing: .2em; transform: rotate(-90deg); transform-origin: left; }
.scroll-cue i { display: block; width: 55px; height: 1px; background: currentColor; overflow: hidden; }
.scroll-cue i::after { content:""; display:block; width: 40%; height:100%; background:var(--blue); animation: scrollLine 1.8s infinite; }
@keyframes scrollLine { from{transform:translateX(-120%)} to{transform:translateX(260%)} }
.data-card { position: absolute; z-index: 3; color: #fff; border: 1px solid rgba(255,255,255,.45); background: rgba(3,24,60,.38); backdrop-filter: blur(8px); padding: 18px; box-shadow: 0 20px 60px rgba(0,0,0,.12); }
.data-card small { display: block; font: 500 8px/1 "DM Sans"; letter-spacing:.15em; opacity:.7; }
.data-card b { display: block; font: 500 34px/1.2 "DM Sans"; margin: 8px 0 3px; }
.data-card span { font: 500 8px/1 "DM Sans"; opacity:.65; }
.data-card-a { left: 8%; top: 23%; animation: float 5s ease-in-out infinite; }
.data-card-b { right: 7%; bottom: 15%; width: 170px; animation: float 5s 1.3s ease-in-out infinite; }
.mini-bars { height: 55px; display: flex; align-items:end; gap:7px; margin-top:12px; }
.mini-bars i { flex:1; background:#fff; opacity:.8; height:40%; }
.mini-bars i:nth-child(2){height:68%}.mini-bars i:nth-child(3){height:48%}.mini-bars i:nth-child(4){height:88%;background:#e8aaa6}.mini-bars i:nth-child(5){height:72%}
@keyframes float { 50%{transform:translateY(-12px)} }
.map-pulse { position:absolute; width:10px; height:10px; background:#fff; border-radius:50%; box-shadow:0 0 0 12px rgba(255,255,255,.14); animation:pulse 2s infinite; }
.pulse-a { left:27%;bottom:27%}.pulse-b{right:25%;top:25%;animation-delay:1s}
@keyframes pulse { 50%{box-shadow:0 0 0 25px rgba(255,255,255,0)} }

.marquee { position: relative; z-index: 8; overflow: hidden; color: #fff; background: var(--blue); padding: 15px 0; font: 500 11px/1 "DM Sans"; letter-spacing: .24em; white-space: nowrap; }
.marquee div { width: max-content; animation: marquee 24s linear infinite; }
@keyframes marquee { to { transform: translateX(-50%); } }

/* Shared sections */
.section-pad { padding: 130px 6.5vw; }
.section-index { font: 600 9px/1 "DM Sans"; letter-spacing: .22em; margin-bottom: 62px; color: var(--blue); }
.section-index.light { color: #edb5b1; }
[data-reveal] { opacity: 0; transform: translateY(42px); clip-path: inset(0 0 18% 0); transition: opacity .9s, transform .9s cubic-bezier(.16,1,.3,1), clip-path 1s cubic-bezier(.16,1,.3,1); }
[data-reveal].is-visible { opacity: 1; transform: translateY(0); clip-path: inset(0); }
h2 { margin: 0; font-size: clamp(40px,5.4vw,82px); line-height: 1.25; letter-spacing: -.055em; font-weight: 600; }
h2 em { color: var(--blue); font-family: var(--serif); font-weight: 500; font-style: normal; }
.large-copy { font-size: clamp(18px,1.55vw,25px); line-height: 1.85; font-weight: 600; }

.statement { padding-top: 170px; background: #fff; }
.statement-grid { display: grid; grid-template-columns: 1.12fr .88fr; gap: 10vw; align-items: end; }
.statement-grid > div p:not(.large-copy) { color: #4b5870; line-height: 2.1; font-size: 14px; }
.metric-strip { display: grid; grid-template-columns: repeat(3,1fr); margin-top: 110px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.metric-strip > div { padding: 35px 2.4vw; border-right: 1px solid var(--line); display:grid; grid-template-columns:34px 1fr; gap:8px 14px; }
.metric-strip > div:first-child{padding-left:0}.metric-strip > div:last-child{border:0}
.metric-strip span { color:var(--blue);font:600 9px/1 "DM Sans";grid-row:1/3}.metric-strip b{font-size:18px}.metric-strip small{color:#68758b;font-size:11px;line-height:1.7}

.problems { color:#fff;background:var(--navy); }
.section-heading { display:grid;grid-template-columns:1.4fr .6fr;gap:10vw;align-items:end;margin-bottom:100px}.section-heading>p{font-size:14px;line-height:2;color:#aebcd0;max-width:380px}.problem-list{border-top:1px solid rgba(255,255,255,.25)}
.problem-list article { position:relative;display:grid;grid-template-columns:10% 34% 1fr 30px;align-items:center;gap:25px;min-height:142px;border-bottom:1px solid rgba(255,255,255,.25);transition:background .35s,padding .35s}
.problem-list article:hover{background:var(--blue);padding:0 24px}.problem-list span{font:500 10px/1 "DM Sans";opacity:.55}.problem-list h3{font-size:24px;margin:0}.problem-list p{font-size:12px;line-height:1.9;color:#b9c5d7}.problem-list article:hover p{color:#fff}.problem-list i{font-style:normal;font-size:20px}

.research { background:#f4f6f9;overflow:hidden}.research-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:8vw;align-items:center}.research-copy h2{font-size:clamp(38px,4.4vw,68px)}.research-copy>p:not(.eyebrow){color:#536078;line-height:2;margin:32px 0}.eyebrow.blue{color:var(--blue)}.research-visual{background:#fff;border:1px solid #dbe2ed;padding:26px;box-shadow:0 25px 80px rgba(9,32,72,.07)}.chart-head{display:flex;justify-content:space-between;font:600 9px/1 "DM Sans";letter-spacing:.12em;color:#68758b}.research-visual svg{width:100%;height:auto;margin:30px 0 10px;overflow:visible}.gridline{stroke:#dce3ed;stroke-width:1}.chart-line{fill:none;stroke:var(--blue);stroke-width:4}.research-visual circle{fill:white;stroke:var(--blue);stroke-width:3}.chart-stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #dce3ed}.chart-stats div{padding:20px;border-right:1px solid #dce3ed}.chart-stats div:last-child{border:0}.chart-stats span{display:block;color:#65738a;font-size:10px}.chart-stats b{display:block;margin-top:8px;font:500 24px/1 "DM Sans"}.sample-note{display:block;margin-top:14px;text-align:right;color:#8792a4;font-size:9px}

.service { background:var(--navy);color:#fff}.service-title{display:flex;justify-content:space-between;align-items:start;margin-bottom:85px}.service-title h2{text-align:right}.price-panel{display:grid;grid-template-columns:.8fr 1.1fr .7fr;border:1px solid rgba(255,255,255,.25);background:linear-gradient(135deg,rgba(204,7,0,.18),transparent 45%)}.price-panel>div,.price-panel>ul{padding:45px 3vw;margin:0;border-right:1px solid rgba(255,255,255,.25)}.price-intro>p{font:600 10px/1 "DM Sans";letter-spacing:.2em;color:#edb5b1}.price-intro>div{display:flex;align-items:flex-end;margin:45px 0 10px}.price-intro>div span{font-size:13px;margin:0 5px 12px 0}.price-intro strong{font:500 clamp(56px,6.2vw,94px)/.8 "DM Sans";letter-spacing:-.07em}.price-intro b{font-size:16px;margin-left:7px}.price-intro b small{display:block;font-size:9px;margin-top:5px;opacity:.6}.price-intro>small{font-size:10px;opacity:.62}.price-panel ul{list-style:none}.price-panel li{display:grid;grid-template-columns:28px 1fr 20px;gap:12px;align-items:center;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.16);font-size:12px}.price-panel li span{font:500 8px/1 "DM Sans";color:#e8aaa6}.price-panel li i{color:#e8aaa6;font-style:normal}.price-action{display:flex;flex-direction:column;justify-content:space-between}.price-action p{font-size:12px;line-height:2;color:#b8c5d8}.button-light{color:var(--ink);background:var(--ice);border-color:var(--ice)}.button-light:hover{color:#fff;background:var(--blue)}

.process {background:#fff}.section-heading.dark-text>p{color:#5c687c}.process-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.process-grid article{min-height:310px;padding:25px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column}.process-grid article>span{font:600 10px/1 "DM Sans";color:var(--blue)}.process-icon{height:110px;margin:30px 0;position:relative}.process-icon i{position:absolute;border:1px solid var(--blue);width:74px;height:74px;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%)}.process-icon i:last-child{width:42px;height:42px;background:var(--blue);opacity:.13}.process-grid article:nth-child(2) .process-icon i{border-radius:0;transform:translate(-50%,-50%) rotate(45deg)}.process-grid article:nth-child(3) .process-icon i:first-child{border-radius:0;width:92px;height:58px}.process-grid article:nth-child(4) .process-icon i:first-child{width:90px;height:1px;border-width:1px 0 0}.process-grid h3{font-size:20px;margin:0 0 12px}.process-grid p{font-size:11px;line-height:1.8;color:#657188;margin:0}

.evidence{background:var(--ice)}.evidence-grid{display:grid;grid-template-columns:1fr 1fr;gap:11vw}.evidence-grid>div:last-child>p:not(.large-copy){font-size:13px;line-height:2.2;color:#506079}.evidence-tag{border-top:1px solid #aebdda;margin-top:40px;padding-top:25px;display:flex;justify-content:space-between;gap:20px}.evidence-tag span{font:600 8px/1 "DM Sans";letter-spacing:.15em;color:var(--blue)}.evidence-tag b{font-size:12px}

.diagnosis-cta{position:relative;overflow:hidden;color:#fff;background:var(--blue);text-align:center;padding:150px 5vw}.diagnosis-cta .eyebrow{color:#f0d0ce}.diagnosis-cta h2{font-size:clamp(34px,4.5vw,70px);position:relative}.diagnosis-cta>p:not(.eyebrow){position:relative;font-size:13px;margin:30px 0 38px}.button-white{position:relative;color:var(--ink);background:#fff;border-color:#fff}.button-white:hover{color:#fff;background:var(--ink);border-color:var(--ink)}.cta-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.12) 1px,transparent 1px);background-size:80px 80px;mask-image:radial-gradient(circle at center,black,transparent 70%)}
.editorial{background:#fff}.editorial-grid{display:grid;grid-template-columns:1fr .8fr;gap:12vw;align-items:end}.editorial-grid h2{font-size:clamp(36px,4.2vw,64px)}.editorial-grid p{font-size:13px;line-height:2.2;color:#566379}.policy-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:32px}.policy-chips span{border:1px solid #bdc9db;padding:10px 13px;font-size:10px}

/* Footer */
.site-footer{color:#fff;background:#121212;padding:80px 6.5vw 25px}.footer-top{display:grid;grid-template-columns:1fr 1fr;gap:8vw;padding-bottom:70px}.footer-brand{font-size:19px!important;font-weight:700;margin:0 0 14px!important}.footer-top>div:first-child p:last-child{color:#8fa1bb;font-family:var(--serif)}.footer-links{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.footer-links div{display:flex;flex-direction:column;gap:12px}.footer-links b{color:#edb5b1;font:600 9px/1 "DM Sans";letter-spacing:.15em;margin-bottom:12px}.footer-links a,.footer-links span{font-size:10px;color:#b7c1d0}.footer-links a:hover{color:#fff}.footer-bottom{border-top:1px solid rgba(255,255,255,.15);padding-top:24px;display:flex;justify-content:space-between;color:#738198;font:500 8px/1 "DM Sans";letter-spacing:.1em}

/* Secondary pages */
.subpage{min-height:100vh;background:#f5f7fa}.sub-hero{padding:170px 6.5vw 100px;background:var(--navy);color:#fff;position:relative;overflow:hidden}.sub-hero::after{content:"";position:absolute;width:42vw;height:42vw;border:1px solid rgba(255,255,255,.14);border-radius:50%;right:-15vw;top:-16vw;box-shadow:0 0 0 7vw rgba(255,255,255,.02),0 0 0 14vw rgba(255,255,255,.02)}.sub-hero .eyebrow{color:#edb5b1}.sub-hero h1{font-size:clamp(44px,6.5vw,96px);line-height:1.15;letter-spacing:-.055em;margin:0;position:relative}.sub-hero>p:last-child{max-width:650px;line-height:2;color:#b6c2d4;margin-top:35px;position:relative}.sub-content{padding:100px 6.5vw}.breadcrumb{font-size:9px;color:#90a0b8;margin-bottom:45px}.content-grid{display:grid;grid-template-columns:.65fr 1.35fr;gap:9vw}.content-grid h2{font-size:clamp(32px,3.7vw,56px)}.content-grid>div>p{font-size:14px;line-height:2;color:#536178}.detail-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:#ced7e5;border:1px solid #ced7e5;margin-top:55px}.detail-cards article{background:#fff;padding:35px}.detail-cards span{font:600 9px/1 "DM Sans";color:var(--blue)}.detail-cards h3{font-size:19px;margin:20px 0 12px}.detail-cards p{font-size:11px;line-height:1.9;color:#5c6a80}.note-box{margin-top:45px;border-left:3px solid var(--blue);background:var(--ice);padding:25px;font-size:12px;line-height:1.9;color:#40516e}

@media (max-width: 1000px) {
  .site-header{height:70px;padding:0 20px}.global-nav{position:fixed;inset:70px 0 auto;background:#fff;color:var(--ink);display:flex;flex-direction:column;align-items:stretch;gap:0;padding:22px;transform:translateY(-130%);transition:.5s;box-shadow:0 20px 50px rgba(6,27,61,.12)}.global-nav.is-open{transform:translateY(0)}.global-nav a{padding:17px!important;border-bottom:1px solid #d7dfeb}.menu-button{display:block;width:42px;height:42px;border:0;background:transparent;position:relative}.menu-button span{position:absolute;left:9px;width:24px;height:1px;background:currentColor;transition:.3s}.menu-button span:first-child{top:17px}.menu-button span:last-child{top:24px}.menu-button.is-open span:first-child{top:21px;transform:rotate(45deg)}.menu-button.is-open span:last-child{top:21px;transform:rotate(-45deg)}
  .hero{height:auto;margin:0}.hero-sticky{position:relative;height:auto;min-height:0;grid-template-columns:1fr}.hero-art{height:50svh;min-height:390px}.hero-copy{padding:90px 7vw 130px}.hero-word{top:46%;font-size:25vw}.scroll-cue{display:none}.statement-grid,.research-grid,.evidence-grid,.editorial-grid,.content-grid{grid-template-columns:1fr;gap:55px}.section-heading{grid-template-columns:1fr;gap:20px}.price-panel{grid-template-columns:1fr 1fr}.price-action{grid-column:1/3;border-top:1px solid rgba(255,255,255,.25);border-right:0!important;gap:30px}.process-grid{grid-template-columns:repeat(2,1fr)}.footer-top{grid-template-columns:1fr;gap:60px}
}

@media (max-width: 640px) {
  .section-pad{padding:90px 22px}.brand{font-size:12px}.brand-mark{width:23px;height:23px}.hero-art{height:43svh;min-height:330px}.data-card-a{top:25%;left:5%}.data-card-b{display:none}.hero-copy{padding:78px 22px 110px}.hero h1{font-size:40px}.hero-lead{font-size:12px;line-height:1.9}.hero-actions{align-items:stretch;flex-direction:column;gap:12px}.button{width:100%}.hero-word{top:39.5%;font-size:28vw}.metric-strip{grid-template-columns:1fr;margin-top:70px}.metric-strip>div{padding:25px 0;border-right:0;border-bottom:1px solid var(--line)}.metric-strip>div:last-child{border-bottom:0}.problem-list article{grid-template-columns:35px 1fr 22px;gap:12px;min-height:130px}.problem-list article p{grid-column:2/4;margin:0 0 18px}.problem-list h3{font-size:18px}.problem-list i{grid-column:3;grid-row:1}.research-visual{padding:16px}.chart-stats b{font-size:18px}.chart-stats div{padding:14px 8px}.service-title{display:block}.service-title h2{text-align:left}.price-panel{grid-template-columns:1fr}.price-panel>div,.price-panel>ul{border-right:0;border-bottom:1px solid rgba(255,255,255,.25);padding:32px 22px}.price-action{grid-column:auto}.process-grid{grid-template-columns:1fr}.process-grid article{min-height:270px}.evidence-tag{flex-direction:column}.footer-links{grid-template-columns:1fr 1fr}.footer-bottom{gap:20px;flex-direction:column}.sub-hero{padding:130px 22px 75px}.sub-content{padding:75px 22px}.detail-cards{grid-template-columns:1fr}.diagnosis-cta{padding:110px 22px}.statement{padding-top:100px}.section-index{margin-bottom:40px}
}

@media (prefers-reduced-motion: reduce) {
  html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}[data-reveal]{opacity:1;transform:none;clip-path:none}
}

/* Diagnosis */
.quiz-section{padding:90px 6.5vw 130px;background:#f2eeee}.quiz-shell{max-width:980px;min-height:560px;margin:-150px auto 0;position:relative;z-index:3;background:#fff;border:1px solid #d5deeb;box-shadow:0 40px 100px rgba(7,28,66,.13);padding:60px clamp(25px,6vw,85px)}
.quiz-progress{height:3px;background:#dde5f0;margin-bottom:38px}.quiz-progress span{display:block;height:100%;background:var(--blue);transition:width .5s cubic-bezier(.16,1,.3,1)}.quiz-meta{display:flex;justify-content:space-between;color:var(--blue);font:600 9px/1 "DM Sans";letter-spacing:.17em}.quiz-meta b{color:#8090a8}.quiz-shell h2{font-size:clamp(25px,3vw,42px);line-height:1.55;letter-spacing:-.03em;min-height:130px;margin:45px 0}.quiz-answers{display:grid;grid-template-columns:1fr 1fr;gap:12px}.quiz-answers button{display:grid;grid-template-columns:32px 1fr 22px;text-align:left;gap:12px;align-items:center;min-height:80px;padding:20px;border:1px solid #cfd9e7;background:#fff;color:var(--ink);cursor:pointer;transition:.3s}.quiz-answers button:hover{color:#fff;background:var(--blue);border-color:var(--blue);transform:translateY(-3px)}.quiz-answers button span{font:600 10px/1 "DM Sans"}.quiz-answers button i{font-style:normal}.privacy-note{margin:30px 0 0;text-align:center;font-size:9px;color:#8794a8}.quiz-result{text-align:center}.quiz-result h2{min-height:0;margin:25px 0 15px}.quiz-result>p:not(.eyebrow){max-width:590px;margin:0 auto;color:#59677e;line-height:2}.score-ring{width:160px;height:160px;border-radius:50%;border:1px solid #b8c9e5;box-shadow:inset 0 0 0 10px #f4eceb;display:flex;align-items:baseline;justify-content:center;margin:20px auto;color:var(--blue)}.score-ring strong{font:500 66px/1 "DM Sans"}.score-ring span{font:500 15px/1 "DM Sans"}.result-actions{margin-top:40px;display:flex;justify-content:center;align-items:center;gap:25px}.result-actions .button{width:auto}.reset-button{border:0;border-bottom:1px solid currentColor;background:transparent;padding:8px;cursor:pointer;font-size:11px}

/* Service detail and research table */
.service-contract{display:grid;grid-template-columns:1fr 1fr;gap:10vw;color:#fff;background:var(--blue)}.service-contract h2{font-size:clamp(30px,4vw,62px)}.service-contract h2 strong{font:500 clamp(65px,8vw,120px)/1 "DM Sans";letter-spacing:-.07em}.service-contract h2 small{font-size:12px;margin-left:8px}.service-contract>div:first-child>p:last-child{font-size:11px;opacity:.7}.service-contract>div:last-child h3{font-size:18px}.service-contract ul{list-style:none;padding:0;margin:25px 0}.service-contract li{padding:16px 0;border-bottom:1px solid rgba(255,255,255,.25);font-size:12px}.service-contract li::before{content:"✓";margin-right:14px;color:#f0d0ce}.contract-note{font-size:10px;line-height:1.8;color:#c6d5f7;margin:25px 0}.service-contract .button-dark{width:max-content;background:var(--ink)}
.research-table{margin-top:55px;border-top:1px solid #bdc9da}.research-table>div{display:grid;grid-template-columns:42px 150px 1fr;gap:20px;align-items:center;min-height:92px;border-bottom:1px solid #bdc9da;padding:17px 0}.research-table span{font:600 9px/1 "DM Sans";color:var(--blue)}.research-table b{font-size:14px}.research-table p{font-size:11px;line-height:1.7;color:#59677e;margin:0}

@media (max-width: 1000px){.service-contract{grid-template-columns:1fr;gap:50px}.quiz-shell{margin:-120px auto 0}}
@media (max-width: 640px){.quiz-section{padding:60px 14px 90px}.quiz-shell{margin:-95px auto 0;padding:38px 20px;min-height:530px}.quiz-answers{grid-template-columns:1fr}.quiz-shell h2{min-height:120px;margin:35px 0;font-size:23px}.result-actions{align-items:stretch;flex-direction:column}.result-actions .button{width:100%}.service-contract{padding:85px 22px}.research-table>div{grid-template-columns:30px 1fr}.research-table p{grid-column:2}.diagnosis-head{padding-bottom:120px}}

/* Viewport-fixed LINE contact. It deliberately lives outside the fixed header. */
.cgl-line-contact{position:fixed!important;z-index:190!important;right:24px!important;bottom:max(24px,env(safe-area-inset-bottom))!important;top:auto!important;left:auto!important;width:248px!important;min-height:64px!important;padding:7px 14px 7px 7px!important;display:grid!important;grid-template-columns:50px minmax(0,1fr) 20px!important;gap:11px!important;align-items:center!important;color:#171917!important;background:rgba(255,255,255,.96)!important;border:1px solid rgba(6,199,85,.28)!important;border-radius:999px!important;box-shadow:0 14px 42px rgba(0,0,0,.16)!important;backdrop-filter:blur(14px);font-family:"Noto Sans JP",sans-serif!important;text-decoration:none!important;transform:translate3d(0,0,0);opacity:1;visibility:visible;pointer-events:auto;transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s ease,opacity .2s ease,visibility .2s ease!important}
.cgl-line-contact:hover{transform:translate3d(0,-4px,0);box-shadow:0 18px 52px rgba(0,0,0,.22)!important}
.cgl-line-contact.is-hidden{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
.cgl-line-contact-icon{width:50px!important;height:50px!important;display:grid!important;place-items:center!important;border-radius:50%!important;background:#06c755!important;color:#fff!important;font:800 9px/1 "DM Sans",sans-serif!important;letter-spacing:.01em!important}
.cgl-line-contact-copy{display:flex!important;min-width:0!important;flex-direction:column!important;gap:5px!important}
.cgl-line-contact-copy small{display:block!important;color:#677069!important;font:700 8px/1 "Noto Sans JP",sans-serif!important;letter-spacing:.12em!important}
.cgl-line-contact-copy b{display:block!important;color:#171917!important;font:800 14px/1.1 "Noto Sans JP",sans-serif!important;white-space:nowrap!important;letter-spacing:.02em!important}
.cgl-line-contact-arrow{display:block!important;color:#06a846!important;font:500 18px/1 "DM Sans",sans-serif!important}
@media(max-width:640px){.cgl-line-contact{right:12px!important;bottom:max(12px,env(safe-area-inset-bottom))!important;width:190px!important;min-height:54px!important;padding:6px 10px 6px 6px!important;grid-template-columns:42px minmax(0,1fr) 16px!important;gap:8px!important}.cgl-line-contact-icon{width:42px!important;height:42px!important;font-size:7px!important}.cgl-line-contact-copy{gap:3px!important}.cgl-line-contact-copy small{font-size:7px!important}.cgl-line-contact-copy b{font-size:12px!important}.cgl-line-contact-arrow{font-size:14px!important}}
@media print{.cgl-line-contact{display:none!important}}
