:root{
  --bg:#fffaf8;
  --bg-warm:#fff4f3;
  --paper:#ffffff;
  --ink:#3a3034;
  --ink-soft:#665a60;
  --muted:#82777c;
  --line:#efe1e3;
  --rose:#e65f82;
  --rose-2:#cf496d;
  --rose-soft:#fff0f4;
  --peach:#fff1e7;
  --sky:#eef8fd;
  --sage:#f0f7f0;
  --lilac:#f5f1fb;
  --brown:#7a5d61;
  --shadow-sm:0 8px 24px rgba(83,55,65,.07);
  --shadow:0 18px 55px rgba(83,55,65,.11);
  --shadow-strong:0 24px 80px rgba(73,44,55,.16);
  --radius-sm:16px;
  --radius:24px;
  --radius-lg:34px;
  --max:1120px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--bg)}
body{margin:0;background:linear-gradient(180deg,#fff,var(--bg) 24%,#fff7f7);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;line-height:1.75;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit}
button,input,select{font:inherit}
img,svg{max-width:100%;display:block}
button,a{-webkit-tap-highlight-color:transparent}
.container{width:min(var(--max),calc(100% - 40px));margin:auto}
.narrow-container{width:min(850px,calc(100% - 30px));margin:auto}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* header */
.topbar{background:#4a383e;color:#fff;text-align:center;font-size:11px;letter-spacing:.02em;padding:6px 10px}
.site-header{position:sticky;top:0;z-index:80;background:rgba(255,255,255,.93);backdrop-filter:blur(18px);border-bottom:1px solid rgba(239,225,227,.9)}
.nav{height:72px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:inline-flex;align-items:center;gap:11px;text-decoration:none;font-weight:900;letter-spacing:.01em;white-space:nowrap}
.brand-logo{position:relative;width:37px;height:37px;display:grid;place-items:center}
.brand-logo:before,.brand-logo:after{content:"";position:absolute;background:linear-gradient(145deg,#f38aa4,#d94870);border-radius:100% 0 100% 0;transform:rotate(-24deg)}
.brand-logo:before{width:19px;height:27px;left:5px;top:7px}
.brand-logo:after{width:14px;height:21px;right:3px;top:3px;opacity:.48;transform:rotate(28deg)}
.brand-word{font-size:22px;color:#db4d72;letter-spacing:.035em}
.nav-links{display:flex;align-items:center;gap:24px;font-size:13px;color:var(--ink-soft)}
.nav-links a{text-decoration:none;font-weight:700;transition:.18s}
.nav-links a:hover{color:var(--rose)}
.nav-cta{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:40px;padding:0 16px;border-radius:999px;background:var(--rose)!important;color:#fff!important;box-shadow:0 8px 20px rgba(230,95,130,.22)}
.nav-toggle{display:none;width:44px;height:44px;border:0;background:#fff;border-radius:13px;box-shadow:0 4px 15px rgba(70,45,55,.07);padding:11px;cursor:pointer}
.nav-toggle span{display:block;height:2px;background:#664f56;border-radius:99px;margin:5px 0}
.mobile-menu{display:none;background:#fff;border-top:1px solid var(--line);padding:8px 20px 18px}
.mobile-menu.open{display:grid;gap:6px}
.mobile-menu a{text-decoration:none;padding:12px 4px;border-bottom:1px solid #f5ebed;font-size:14px;font-weight:700}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:54px;padding:0 23px;border-radius:16px;text-decoration:none;font-size:15px;font-weight:900;border:1px solid transparent;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.btn:hover{transform:translateY(-1px)}
.btn-primary{color:#fff;background:linear-gradient(135deg,#ec6b8c,#dc4d73);box-shadow:0 13px 30px rgba(218,73,111,.24)}
.btn-secondary{background:#fff;color:#745b63;border-color:var(--line);box-shadow:var(--shadow-sm)}
.btn svg{width:20px;height:20px}

/* hero */
.hero{position:relative;overflow:hidden;padding:52px 0 46px}
.hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 10% 25%,rgba(251,205,216,.47),transparent 28%),radial-gradient(circle at 92% 20%,rgba(240,232,248,.75),transparent 26%),linear-gradient(180deg,#fffdfc,#fff8f7 78%,transparent)}
.hero:after{content:"";position:absolute;width:270px;height:270px;right:-130px;bottom:-120px;border-radius:50%;background:rgba(229,241,227,.6);filter:blur(2px)}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.04fr .96fr;gap:46px;align-items:center;min-height:550px}
.eyebrow{display:inline-flex;align-items:center;gap:8px;border-radius:999px;background:#fff;border:1px solid #f1dce1;padding:7px 12px;color:#bb4b6c;font-size:11px;font-weight:900;letter-spacing:.04em;box-shadow:0 6px 18px rgba(91,54,68,.05)}
.eyebrow-dot{width:7px;height:7px;border-radius:50%;background:#e86083;box-shadow:0 0 0 4px #fde9ee}
.hero h1{font-size:clamp(42px,6vw,68px);line-height:1.13;letter-spacing:-.045em;margin:18px 0 16px}
.hero h1 .accent{color:var(--rose)}
.hero-lead{font-size:17px;color:var(--ink-soft);max-width:650px;margin:0 0 25px;line-height:1.9}
.cta-row{display:flex;gap:12px;flex-wrap:wrap}
.micro-trust{display:flex;gap:10px 18px;flex-wrap:wrap;margin-top:18px;color:#74666c;font-size:12px}
.micro-trust span{display:flex;align-items:center;gap:6px}
.check-dot{width:18px;height:18px;display:inline-grid;place-items:center;border-radius:50%;background:#f7e1e7;color:#c74b6e;font-size:11px;font-weight:900}

.hero-visual{position:relative;background:rgba(255,255,255,.8);border:1px solid rgba(238,222,226,.9);border-radius:36px;padding:24px;box-shadow:var(--shadow);min-height:480px;overflow:hidden}
.hero-visual:before{content:"";position:absolute;width:210px;height:210px;border-radius:50%;right:-70px;top:-70px;background:#fbecf0}
.hero-visual:after{content:"";position:absolute;width:160px;height:160px;border-radius:50%;left:-85px;bottom:-80px;background:#eef6eb}
.hero-characters{position:relative;z-index:1;display:flex;align-items:flex-end;justify-content:center;gap:18px;padding-top:4px}
.character-card{position:relative;text-align:center}
.character-photo{width:178px;height:178px;border-radius:50%;object-fit:cover;background:#fff;border:7px solid #fff;box-shadow:0 16px 36px rgba(78,49,60,.14)}
.character-card.visitor .character-photo{width:150px;height:150px;filter:saturate(.96)}
.character-card.mina{transform:translateY(-4px)}
.character-card.mina .character-photo{box-shadow:0 18px 42px rgba(205,75,112,.17)}
.character-name{display:inline-flex;align-items:center;gap:6px;margin-top:10px;padding:5px 12px;border-radius:999px;background:#fff;border:1px solid #f1d8df;font-size:12px;font-weight:900;box-shadow:0 4px 14px rgba(72,48,56,.07)}
.character-name.mina-name{background:#e85f83;color:#fff;border-color:#e85f83}
.sparkle{position:absolute;color:#eb7896;font-weight:900;font-size:20px}
.sparkle.s1{right:-1px;top:6px;transform:rotate(15deg)}
.sparkle.s2{right:18px;top:-16px;font-size:13px}
.hero-dialogue{position:relative;z-index:2;margin-top:18px}
.dialogue{position:relative;border-radius:20px;padding:15px 17px;font-size:14px;line-height:1.7;box-shadow:0 8px 22px rgba(72,47,56,.07)}
.dialogue.visitor-msg{background:#fff;margin-right:68px;border:1px solid #efe4e6}
.dialogue.teacher-msg{background:linear-gradient(135deg,#fff3f6,#fff);margin-left:58px;margin-top:10px;border:1px solid #f3d5dd;color:#7f3f52}
.dialogue.teacher-msg b{color:#bd3f64}
.visual-mini-steps{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:17px}
.visual-mini-steps span{background:#fff;border:1px solid var(--line);border-radius:13px;padding:9px 7px;text-align:center;font-size:10px;font-weight:900;color:#75666b}

/* trust strip */
.trust-strip{position:relative;z-index:2;margin-top:-16px}
.trust-strip-inner{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow-sm);overflow:hidden}
.trust-item{padding:18px 20px;display:flex;align-items:center;gap:12px;border-right:1px solid #f4e9eb}
.trust-item:last-child{border-right:0}
.trust-icon{width:38px;height:38px;flex:0 0 38px;border-radius:13px;background:var(--rose-soft);display:grid;place-items:center;color:#d04d72}
.trust-icon svg{width:20px;height:20px}
.trust-item b{display:block;font-size:13px;line-height:1.45}
.trust-item small{display:block;font-size:10px;color:var(--muted);margin-top:2px;line-height:1.4}

/* generic sections */
.section{padding:62px 0}
.section-soft{background:linear-gradient(180deg,rgba(255,247,247,.55),rgba(255,255,255,.85))}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:28px}
.section-head h2{font-size:clamp(29px,4vw,42px);line-height:1.3;letter-spacing:-.025em;margin:4px 0 0}
.section-head p{max-width:570px;color:var(--muted);margin:0;font-size:14px}
.section-kicker{display:inline-flex;align-items:center;gap:8px;color:#d24b70;font-size:11px;font-weight:900;letter-spacing:.08em}
.section-kicker:before{content:"";width:24px;height:2px;background:#e26082;border-radius:999px}
.center{text-align:center}
.center .section-head{display:block}
.center .section-head p{margin:10px auto 0}
.pill{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:999px;background:var(--rose-soft);color:#bd4768;font-size:10px;font-weight:900;letter-spacing:.04em}

/* quick diagnosis */
.diagnosis-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.diagnosis-card{position:relative;display:block;text-decoration:none;background:#fff;border:1px solid var(--line);border-radius:26px;padding:24px;box-shadow:var(--shadow-sm);overflow:hidden;transition:.2s}
.diagnosis-card:hover{transform:translateY(-4px);box-shadow:0 18px 42px rgba(77,48,58,.11)}
.diagnosis-card:after{content:"→";position:absolute;right:20px;bottom:18px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1px solid var(--line);font-weight:900;color:#c3496b}
.diagnosis-card.pink{background:linear-gradient(145deg,#fff,#fff0f4)}
.diagnosis-card.beige{background:linear-gradient(145deg,#fff,#fff5ea)}
.diagnosis-card.blue{background:linear-gradient(145deg,#fff,#eef8fd)}
.diag-icon{width:50px;height:50px;border-radius:16px;display:grid;place-items:center;background:#fff;box-shadow:0 7px 20px rgba(84,55,64,.08);margin-bottom:17px;color:#c64b6e}
.diag-icon svg{width:25px;height:25px}
.diagnosis-card h3{font-size:21px;margin:7px 0 7px}
.diagnosis-card p{font-size:13px;color:var(--ink-soft);margin:0 0 16px;max-width:90%}
.card-meta{display:flex;gap:8px;flex-wrap:wrap;color:#826f75;font-size:10px;font-weight:800}
.card-meta span{background:rgba(255,255,255,.76);border:1px solid rgba(235,219,222,.9);padding:4px 8px;border-radius:999px}

/* manga / LINE style */
.chat-shell{background:#fff;border:1px solid var(--line);border-radius:32px;box-shadow:var(--shadow);overflow:hidden}
.chat-header{display:flex;align-items:center;gap:12px;padding:17px 20px;background:#fff;border-bottom:1px solid #f2e7e9;position:sticky;top:72px;z-index:3}
.chat-header-avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;border:3px solid #fff3f6;box-shadow:0 5px 14px rgba(78,52,61,.09)}
.chat-header b{display:block;font-size:14px}.chat-header small{display:block;color:var(--muted);font-size:10px}.online{margin-left:auto;display:inline-flex;align-items:center;gap:6px;color:#709078;font-size:10px;font-weight:800}.online:before{content:"";width:8px;height:8px;border-radius:50%;background:#78b98c;box-shadow:0 0 0 4px #e8f4ea}
.chat-body{background:linear-gradient(180deg,#f8f5f2,#f7f2f0);padding:18px 18px 24px}
.chat-date{margin:0 auto 17px;width:max-content;background:#e8e2df;color:#85787d;font-size:10px;padding:4px 10px;border-radius:999px}
.chat-row{display:flex;align-items:flex-end;gap:9px;margin:11px 0}
.chat-row.user{flex-direction:row-reverse}
.chat-avatar{width:48px;height:48px;flex:0 0 48px;border-radius:50%;object-fit:cover;border:3px solid #fff;box-shadow:0 5px 14px rgba(78,52,61,.09)}
.bubble{max-width:72%;padding:13px 15px;border-radius:19px;font-size:14px;line-height:1.7;box-shadow:0 5px 15px rgba(72,48,56,.055)}
.chat-row.teacher .bubble{background:#fff;border-bottom-left-radius:5px}
.chat-row.user .bubble{background:#dff1e4;border-bottom-right-radius:5px}
.bubble b{color:#b54264}
.teacher-note{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:18px;padding:18px;border:1px solid #f1dbe1;background:linear-gradient(135deg,#fff,#fff1f5);border-radius:20px}
.teacher-note-text{display:flex;align-items:center;gap:13px}
.teacher-note img{width:62px;height:62px;border-radius:50%;object-fit:cover;box-shadow:0 7px 16px rgba(80,53,62,.11)}
.teacher-note b{display:block;font-size:16px}.teacher-note small{display:block;color:var(--muted);font-size:11px;margin-top:2px}

/* promise */
.promise-card{position:relative;overflow:hidden;background:linear-gradient(135deg,#49373d,#5d444c);color:#fff;border-radius:32px;padding:34px;box-shadow:var(--shadow)}
.promise-card:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;right:-90px;bottom:-150px;background:rgba(239,122,151,.18)}
.promise-card h2{font-size:34px;margin:7px 0 6px}.promise-card>p{color:#eadfe2;margin:0;max-width:650px}
.promise-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:26px}
.promise-item{background:rgba(255,255,255,.075);border:1px solid rgba(255,255,255,.12);border-radius:19px;padding:18px}
.promise-no{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.1);color:#f6b5c6;font-size:10px;font-weight:900}
.promise-item b{display:block;margin:11px 0 5px;font-size:14px}.promise-item small{display:block;color:#d9ccd0;font-size:11px;line-height:1.55}

/* guides */
.guide-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}
.guide-feature{background:linear-gradient(135deg,#fff,#fff1f4);border:1px solid var(--line);border-radius:28px;padding:28px;box-shadow:var(--shadow-sm)}
.guide-feature h3{font-size:25px;margin:9px 0}.guide-feature p{color:var(--ink-soft);font-size:14px}.guide-feature .btn{margin-top:8px}
.guide-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.guide-link{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px 15px;text-decoration:none;font-size:13px;font-weight:800;box-shadow:0 4px 16px rgba(78,52,61,.035)}
.guide-link:hover{border-color:#e5b6c2;color:#b84667}.guide-link span{color:#d65476}

/* FAQ */
.faq{display:grid;gap:10px}
.faq details{background:#fff;border:1px solid var(--line);border-radius:17px;padding:0 18px;box-shadow:0 5px 18px rgba(78,52,61,.035)}
.faq summary{cursor:pointer;list-style:none;padding:16px 28px 16px 0;font-weight:900;position:relative;font-size:14px}
.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"＋";position:absolute;right:0;top:15px;color:#cf4a6f;font-size:18px}.faq details[open] summary:after{content:"−"}.faq details p{color:var(--ink-soft);font-size:13px;margin:0 0 16px}

/* final CTA */
.final-cta{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:20px;background:linear-gradient(135deg,#fff,#fff0f4);border:1px solid var(--line);border-radius:30px;padding:24px 28px;box-shadow:var(--shadow)}
.final-cta img{width:82px;height:82px;border-radius:50%;object-fit:cover;border:5px solid #fff;box-shadow:0 8px 20px rgba(82,53,63,.12)}
.final-cta h2{font-size:27px;margin:3px 0 5px}.final-cta p{font-size:13px;color:var(--muted);margin:0}

/* footer */
footer{margin-top:55px;background:#41343a;color:#eadfe2;padding:38px 0 26px}
footer .brand-word{color:#fff}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:28px}.footer-grid p,.footer-grid li,.footer-grid a{font-size:12px;color:#d2c4c9}.footer-grid h4{margin:0 0 9px;color:#fff}.footer-grid ul{padding-left:18px}.footer-grid a{text-decoration:none}.copyright{margin-top:24px;padding-top:18px;border-top:1px solid rgba(255,255,255,.12);font-size:10px;color:#bbaeb2}

/* legal/article shared */
.page-hero{padding:44px 0 22px;background:linear-gradient(180deg,#fff,#fff8f8)}
.breadcrumb{font-size:11px;color:var(--muted);margin-bottom:11px}.breadcrumb a{text-decoration:none}.page-hero h1{font-size:clamp(31px,5vw,49px);line-height:1.25;margin:0 0 10px;letter-spacing:-.025em}.page-hero p{color:var(--muted);max-width:780px;font-size:14px}
.content-wrap{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:28px}.article{background:#fff;border:1px solid var(--line);border-radius:26px;padding:clamp(22px,4vw,40px);box-shadow:var(--shadow-sm)}.article h2{margin-top:38px;font-size:25px}.article h3{margin-top:25px;font-size:19px}.article p,.article li{font-size:15px}.article .lead{font-size:17px;color:#5f575b}.callout{border-left:4px solid var(--rose);background:#fff5f7;padding:16px 18px;border-radius:0 14px 14px 0;margin:22px 0}.checklist{padding-left:0;list-style:none}.checklist li{padding:7px 0 7px 30px;position:relative}.checklist li:before{content:'✓';position:absolute;left:0;top:7px;width:20px;height:20px;border-radius:50%;background:var(--rose-soft);color:#bd4768;display:grid;place-items:center;font-weight:900;font-size:12px}.sidebar{position:sticky;top:98px;align-self:start}.side-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;margin-bottom:12px}.side-card h4{margin:0 0 10px}.side-card p,.side-card a{font-size:13px;color:var(--muted)}.side-card a{display:block;margin:8px 0;text-decoration:none}.side-card .btn{color:#fff;font-size:13px;width:100%}
.comparison{overflow-x:auto}.comparison table{border-collapse:collapse;width:100%;min-width:640px;background:#fff}.comparison th,.comparison td{border:1px solid var(--line);padding:12px;text-align:left;font-size:13px}.comparison th{background:#fff5f7}.ad-slot{border:1px dashed #d8a8b5;background:#fff9fa;border-radius:16px;padding:16px;margin:20px 0}.ad-slot b{display:block}.ad-slot p{font-size:12px;color:var(--muted);margin:4px 0 10px}.ad-slot a{display:inline-flex;text-decoration:none;background:var(--rose);color:#fff;border-radius:12px;padding:10px 14px;font-weight:800;font-size:13px}.smallprint{font-size:11px!important;color:var(--muted)!important}

/* quiz */
.quiz-page{background:linear-gradient(180deg,#fffdfc,#fff7f7)}
.quiz-hero{padding:35px 0 18px}.quiz-hero-inner{display:flex;align-items:center;gap:17px;max-width:780px}.quiz-hero img{width:92px;height:92px;border-radius:50%;object-fit:cover;border:5px solid #fff;box-shadow:0 10px 28px rgba(79,51,61,.12)}.quiz-hero h1{font-size:clamp(28px,5vw,42px);margin:3px 0 4px}.quiz-hero p{margin:0;color:var(--muted);font-size:13px}.quiz-teacher-line{display:inline-block;font-size:11px;color:#bd4969;font-weight:900;background:#fff0f4;border-radius:999px;padding:4px 9px}
.quiz-wrap{width:min(760px,calc(100% - 30px));margin:0 auto;padding:16px 0 60px}.quiz-card{background:#fff;border:1px solid var(--line);border-radius:30px;box-shadow:var(--shadow);overflow:hidden}.quiz-status{padding:18px 22px 14px;border-bottom:1px solid #f4e9eb}.quiz-status-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.quiz-status-row b{font-size:12px;color:#c54a6c}.quiz-status-row span{font-size:10px;color:var(--muted)}.progress{height:8px;background:#f2e9eb;border-radius:999px;overflow:hidden}.progress>div{height:100%;width:0;background:linear-gradient(90deg,#f0809a,#df4f74);transition:width .25s ease;border-radius:999px}
.quiz-main{padding:26px}.question-header{display:flex;align-items:flex-start;gap:12px}.question-badge{flex:0 0 36px;width:36px;height:36px;border-radius:12px;background:var(--rose-soft);display:grid;place-items:center;color:#bf4567;font-size:11px;font-weight:900}.quiz-main h2{font-size:clamp(21px,4vw,27px);line-height:1.5;margin:0 0 5px}.quiz .q-sub,.q-sub{color:var(--muted);font-size:11px;margin:0 0 20px}.options{display:grid;gap:10px}.option{position:relative;width:100%;min-height:58px;text-align:left;background:#fff;border:1px solid var(--line);padding:14px 48px 14px 16px;border-radius:16px;cursor:pointer;font-weight:800;color:var(--ink);transition:.17s}.option:after{content:"›";position:absolute;right:17px;top:50%;transform:translateY(-53%);font-size:24px;color:#d05b7a;font-weight:500}.option:hover,.option:focus-visible{outline:none;border-color:#e0abb8;background:#fff8fa;box-shadow:0 8px 18px rgba(89,56,68,.06)}.quiz-back{display:none;margin-top:14px;border:0;background:transparent;color:#8a7c81;font-size:12px;font-weight:800;cursor:pointer;padding:8px 0}.quiz-back.visible{display:inline-flex}.result{display:none}.result.show{display:block}.result-hero{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:15px;margin-bottom:14px}.result-hero img{width:75px;height:75px;border-radius:50%;object-fit:cover;border:4px solid #fff2f5;box-shadow:0 7px 18px rgba(81,52,61,.10)}.result-hero h2{margin:2px 0 2px}.result-hero small{color:#c04969;font-weight:900}.score-tags{display:flex;gap:7px;flex-wrap:wrap;margin:15px 0 20px}.score-tags span{font-size:10px;background:var(--rose-soft);color:#b84364;padding:5px 8px;border-radius:999px;font-weight:900}.result-list{display:grid;gap:9px}.result-item{border:1px solid var(--line);background:#fffdfd;border-radius:16px;padding:14px}.result-item b{display:block;font-size:13px}.result-item span{display:block;font-size:11px;color:var(--muted);margin-top:2px}.quiz-result-note{margin:18px 0 0;padding:14px 15px;border-radius:16px;background:#fff2f5;color:#774d5a;font-size:12px}.restart-btn{border:0;background:transparent;color:#8b777e;font-size:12px;font-weight:800;cursor:pointer;padding:12px 0 0}

/* age */
.age-modal{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(41,30,34,.72);backdrop-filter:blur(7px)}.age-modal.show{display:flex}.age-box{width:min(470px,100%);background:#fff;border-radius:28px;padding:27px;box-shadow:var(--shadow-strong);text-align:left}.age-logo{display:flex;align-items:center;gap:9px;color:#d74e72;font-weight:900;font-size:20px;margin-bottom:13px}.age-box h2{font-size:25px;margin:0 0 8px}.age-box p{font-size:13px;color:var(--muted);margin:0}.age-actions{display:grid;grid-template-columns:1.4fr .6fr;gap:9px;margin-top:18px}.age-actions button{min-height:48px;border-radius:14px;font-weight:900;cursor:pointer}.age-yes{border:0;background:var(--rose);color:#fff}.age-no{border:1px solid var(--line);background:#fff;color:#76666c}

.mobile-sticky-cta{display:none}

@media(max-width:900px){
  .nav-links{display:none}.nav-toggle{display:block}.hero{padding-top:34px}.hero-grid{grid-template-columns:1fr;gap:26px;min-height:auto}.hero-visual{order:-1;min-height:auto}.hero-copy{text-align:center}.hero-lead{margin-left:auto;margin-right:auto}.cta-row,.micro-trust{justify-content:center}.trust-strip{margin-top:6px}.trust-strip-inner{grid-template-columns:1fr 1fr}.trust-item:nth-child(2){border-right:0}.trust-item:nth-child(-n+2){border-bottom:1px solid #f4e9eb}.diagnosis-grid{grid-template-columns:1fr}.section-head{display:block}.section-head p{margin-top:9px}.promise-grid{grid-template-columns:1fr 1fr}.guide-grid{grid-template-columns:1fr}.final-cta{grid-template-columns:auto 1fr}.final-cta .btn{grid-column:1/-1;width:100%}.footer-grid{grid-template-columns:1fr}.content-wrap{grid-template-columns:1fr}.sidebar{position:static}
}
@media(max-width:600px){
  body{padding-bottom:76px}.container{width:min(100% - 22px,var(--max))}.narrow-container{width:min(100% - 14px,850px)}.topbar{font-size:10px;padding:5px 8px}.nav{height:62px}.brand-word{font-size:20px}.brand-logo{width:33px;height:33px}.hero{padding:22px 0 32px}.hero-grid{gap:22px}.hero-visual{border-radius:26px;padding:17px}.hero-characters{gap:4px;padding-top:2px}.character-photo{width:143px;height:143px;border-width:5px}.character-card.visitor .character-photo{width:119px;height:119px}.character-name{font-size:10px;padding:4px 9px}.hero-dialogue{margin-top:12px}.dialogue{font-size:12px;padding:11px 13px}.dialogue.visitor-msg{margin-right:42px}.dialogue.teacher-msg{margin-left:35px}.visual-mini-steps span{font-size:9px;padding:7px 4px}.hero-copy{text-align:left}.hero h1{font-size:39px}.hero-lead{font-size:14px;margin-bottom:20px}.cta-row{display:grid;grid-template-columns:1fr}.btn{width:100%;min-height:52px}.micro-trust{justify-content:flex-start;gap:8px 12px}.micro-trust span{font-size:10px}.trust-strip-inner{border-radius:20px}.trust-item{padding:13px 11px;gap:8px}.trust-icon{width:34px;height:34px;flex-basis:34px}.trust-item b{font-size:11px}.trust-item small{font-size:9px}.section{padding:43px 0}.section-head{margin-bottom:20px}.section-head h2{font-size:28px}.section-head p{font-size:12px}.diagnosis-card{padding:20px;border-radius:21px}.diagnosis-grid{gap:11px}.diagnosis-card h3{font-size:19px}.diagnosis-card p{font-size:12px}.chat-shell{border-radius:24px}.chat-header{top:62px;padding:13px 14px}.chat-header-avatar{width:43px;height:43px}.chat-body{padding:14px 10px 18px}.chat-row{gap:7px;margin:10px 0}.chat-avatar{width:40px;height:40px;flex-basis:40px}.bubble{max-width:79%;font-size:12px;padding:10px 11px}.teacher-note{display:block;padding:14px}.teacher-note-text{align-items:center}.teacher-note img{width:52px;height:52px}.teacher-note .btn{margin-top:12px}.promise-card{padding:23px 16px;border-radius:24px}.promise-card h2{font-size:27px}.promise-grid{gap:8px}.promise-item{padding:13px}.promise-item b{font-size:12px}.promise-item small{font-size:9px}.guide-feature{padding:21px}.guide-feature h3{font-size:21px}.guide-list{grid-template-columns:1fr}.final-cta{grid-template-columns:auto 1fr;padding:18px 15px;border-radius:23px;gap:12px}.final-cta img{width:64px;height:64px}.final-cta h2{font-size:20px}.final-cta p{font-size:11px}.page-hero{padding:28px 0 14px}.article{padding:20px}.quiz-hero{padding:24px 0 10px}.quiz-hero img{width:74px;height:74px}.quiz-wrap{width:min(100% - 20px,760px);padding-top:10px}.quiz-card{border-radius:24px}.quiz-status{padding:15px 16px 12px}.quiz-main{padding:19px 15px}.option{min-height:56px;font-size:13px}.age-actions{grid-template-columns:1fr}.age-box{padding:22px}.mobile-sticky-cta{display:block;position:fixed;z-index:70;left:10px;right:10px;bottom:8px;padding-bottom:env(safe-area-inset-bottom)}.mobile-sticky-cta a{display:flex;align-items:center;justify-content:center;min-height:54px;border-radius:17px;background:linear-gradient(135deg,#ed6b8d,#dc4e73);color:#fff;text-decoration:none;font-weight:900;font-size:14px;box-shadow:0 14px 35px rgba(173,55,88,.34);border:1px solid rgba(255,255,255,.45)}
}
/* compatibility for older guide/legal templates */
.brand-mark{width:34px;height:34px;border-radius:50%;background:linear-gradient(145deg,#f58aa5,#dc4f75);display:grid;place-items:center;color:#fff;font-weight:900;box-shadow:inset 0 0 0 5px rgba(255,255,255,.42)}

/* =========================================================
   HIMITSUCARE PROFESSIONAL UI — v4
   Visual system: quiet editorial + warm consultation service
   ========================================================= */
:root{
  --bg:#fbfaf9;
  --bg-warm:#fff7f6;
  --paper:#ffffff;
  --ink:#2f292c;
  --ink-soft:#5f5559;
  --muted:#81777b;
  --line:#ebe4e6;
  --line-strong:#ded4d7;
  --rose:#df5879;
  --rose-2:#c94768;
  --rose-soft:#fff1f4;
  --peach:#fff7ee;
  --sky:#f2f8fb;
  --sage:#f3f8f2;
  --lilac:#f6f3fa;
  --brown:#6e555c;
  --shadow-sm:0 8px 28px rgba(57,40,47,.055);
  --shadow:0 22px 64px rgba(57,40,47,.085);
  --shadow-strong:0 28px 84px rgba(47,30,37,.16);
  --radius-sm:15px;
  --radius:22px;
  --radius-lg:32px;
  --max:1080px;
}
html{scroll-padding-top:90px}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic UI","Yu Gothic",Meiryo,sans-serif;
  line-height:1.8;
  letter-spacing:.005em;
}
::selection{background:#f8ccd7;color:#512f39}
a,button,summary{outline-offset:3px}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid rgba(223,88,121,.28);outline-offset:3px}
.container{width:min(var(--max),calc(100% - 48px))}
.narrow-container{width:min(820px,calc(100% - 40px))}

/* legal strip: low-noise, not banner-like */
.topbar{
  background:#372f32;
  color:#f6eff1;
  font-size:10px;
  letter-spacing:.06em;
  padding:5px 12px;
}

/* refined glass header */
.site-header{
  background:rgba(251,250,249,.90);
  backdrop-filter:saturate(155%) blur(18px);
  -webkit-backdrop-filter:saturate(155%) blur(18px);
  border-bottom:1px solid rgba(226,217,220,.86);
}
.nav{height:70px}
.brand{gap:9px}
.brand-logo{width:35px;height:35px}
.brand-logo:before{width:17px;height:24px;left:6px;top:8px}
.brand-logo:after{width:12px;height:18px;right:4px;top:4px}
.brand-word{font-size:21px;letter-spacing:.05em;color:#d84f70}
.nav-links{gap:22px;font-size:12px}
.nav-links a{font-weight:750}
.nav-cta{min-height:39px;padding:0 15px;border-radius:12px!important;box-shadow:none}
.nav-toggle{border:1px solid var(--line);box-shadow:none;background:rgba(255,255,255,.82)}
.mobile-menu{box-shadow:0 18px 35px rgba(48,33,39,.08)}
.mobile-menu a{min-height:48px;display:flex;align-items:center}

/* buttons: less template-like, stronger hierarchy */
.btn{min-height:52px;padding:0 22px;border-radius:14px;font-size:14px;font-weight:800;letter-spacing:.01em}
.btn-primary{
  background:linear-gradient(135deg,#e76686 0%,#d84e70 100%);
  box-shadow:0 12px 26px rgba(200,68,102,.18),inset 0 1px 0 rgba(255,255,255,.25);
}
.btn-primary:hover{box-shadow:0 16px 32px rgba(200,68,102,.24)}
.btn-secondary{background:#fff;border-color:#e8dfe2;box-shadow:none;color:#66585d}

/* HERO — clear message first, conversation card second */
.hero{padding:62px 0 56px;background:#fdfcfb}
.hero:before{
  background:
    radial-gradient(circle at 10% 8%,rgba(244,213,221,.44),transparent 28%),
    radial-gradient(circle at 96% 18%,rgba(231,239,226,.48),transparent 24%),
    linear-gradient(180deg,#fff,#fbfaf9 84%);
}
.hero:after{width:300px;height:300px;right:-170px;bottom:-180px;background:#f3eadf;opacity:.65}
.hero-grid{grid-template-columns:.95fr 1.05fr;gap:56px;min-height:520px}
.eyebrow{box-shadow:none;background:rgba(255,255,255,.84);border-color:#eddce1;padding:6px 11px;color:#b44765}
.hero h1{font-size:clamp(44px,5.8vw,66px);line-height:1.12;letter-spacing:-.045em;margin:20px 0 18px;max-width:640px}
.hero h1 .accent{background:linear-gradient(120deg,#cf4769,#e76f8e);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-lead{font-size:16px;line-height:1.95;color:#655a5e;max-width:590px;margin-bottom:26px}
.micro-trust{margin-top:16px;gap:9px 16px;color:#756b6f}
.check-dot{background:#f6e6ea;color:#bf4564}

.hero-visual{
  background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(255,250,250,.92));
  border:1px solid #e9dfe2;
  border-radius:32px;
  padding:26px;
  box-shadow:0 26px 72px rgba(66,42,51,.09);
  min-height:470px;
}
.hero-visual:before{width:180px;height:180px;right:-70px;top:-70px;background:#fcecf0;opacity:.75}
.hero-visual:after{width:150px;height:150px;left:-72px;bottom:-74px;background:#eef5ea;opacity:.76}
.hero-characters{gap:20px;padding-top:2px}
.character-photo{width:174px;height:174px;border:6px solid #fff;box-shadow:0 16px 34px rgba(52,38,43,.11)}
.character-card.visitor .character-photo{width:144px;height:144px}
.character-name{border-color:#eadfe2;box-shadow:none;font-size:11px}
.character-name.mina-name{background:#dc5778;border-color:#dc5778}
.hero-dialogue{margin-top:16px}
.dialogue{font-size:13px;padding:14px 16px;box-shadow:none;border:1px solid #e9e0e2}
.dialogue.visitor-msg{background:#fff;margin-right:76px}
.dialogue.teacher-msg{background:#fff3f6;margin-left:62px;border-color:#efced7;color:#6f414e}
.visual-mini-steps{gap:7px;margin-top:15px}
.visual-mini-steps span{background:#fbfaf9;border-color:#e9e1e3;padding:9px 7px;color:#6e6266}

/* premium reassurance rail */
.trust-strip{margin-top:-12px}
.trust-strip-inner{border-radius:20px;box-shadow:0 14px 38px rgba(50,34,40,.06);border-color:#e8e0e2}
.trust-item{padding:17px 18px}
.trust-icon{background:#fbf0f3;color:#ca4c6d;border-radius:12px}
.trust-item b{font-size:12px}.trust-item small{font-size:9.5px}

/* section rhythm */
.section{padding:72px 0}
.section-soft{background:#f8f6f5;border-top:1px solid #f0eaeb;border-bottom:1px solid #f0eaeb}
.section-head{margin-bottom:30px;align-items:flex-start}
.section-head h2{font-size:clamp(30px,3.8vw,40px);letter-spacing:-.035em;line-height:1.3}
.section-head p{font-size:13px;line-height:1.9;max-width:520px;padding-top:10px}
.section-kicker{font-size:10px;letter-spacing:.12em;color:#c74b6c}
.section-kicker:before{width:20px}
.pill{font-size:9.5px;padding:5px 9px;background:#fbeef1;color:#b94362}

/* diagnosis cards — clear click targets and hierarchy */
.diagnosis-grid{gap:14px}
.diagnosis-card{
  border-color:#e9e0e2;
  border-radius:22px;
  padding:22px 22px 58px;
  box-shadow:none;
  min-height:252px;
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.diagnosis-card:hover{transform:translateY(-3px);border-color:#ddcbd0;box-shadow:0 16px 38px rgba(58,39,46,.07)}
.diagnosis-card:after{right:18px;bottom:17px;width:32px;height:32px;border-color:#e6dbde;background:rgba(255,255,255,.86)}
.diagnosis-card.pink{background:linear-gradient(155deg,#fff 0%,#fff5f7 100%)}
.diagnosis-card.beige{background:linear-gradient(155deg,#fff 0%,#fff8ef 100%)}
.diagnosis-card.blue{background:linear-gradient(155deg,#fff 0%,#f3f9fc 100%)}
.diag-icon{width:43px;height:43px;border-radius:13px;margin-bottom:14px}
.diagnosis-card h3{font-size:20px;letter-spacing:-.015em;margin:8px 0 7px}
.diagnosis-card p{font-size:12.5px;line-height:1.8;max-width:100%;margin-bottom:14px}
.card-meta{position:absolute;left:22px;bottom:20px;gap:7px}
.card-meta span{font-size:9px;border:1px solid #ebe2e4;background:rgba(255,255,255,.78)}

/* chat — feels like a real guided consultation product */
.chat-shell{border-radius:27px;border-color:#e6dde0;box-shadow:0 22px 60px rgba(49,34,39,.07)}
.chat-header{position:relative;top:auto;padding:16px 18px;background:rgba(255,255,255,.96)}
.chat-header:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:#ece4e6}
.chat-header-avatar{width:46px;height:46px;border:2px solid #fae9ee}
.chat-header b{font-size:13px}.chat-header small{font-size:9.5px}
.online{background:#eef6ef;border:1px solid #dcebdc;padding:4px 9px;border-radius:999px;color:#66816c}
.online:before{width:6px;height:6px;box-shadow:none}
.chat-body{background:#f3f0ee;padding:22px 20px 25px}
.chat-date{background:#ddd8d6;color:#776f72;font-size:9px}
.chat-row{gap:9px;margin:13px 0}
.chat-avatar{width:44px;height:44px;flex-basis:44px;border:2px solid #fff;box-shadow:none}
.bubble{max-width:76%;font-size:12.5px;line-height:1.75;padding:11px 13px;border:1px solid rgba(223,215,217,.85);box-shadow:0 5px 14px rgba(42,29,34,.025)}
.chat-row.teacher .bubble{background:#fff}
.chat-row.user .bubble{background:#e7f3ea;border-color:#d8e9dc}
.teacher-note{margin-top:22px;border:1px solid #e9d7dc;background:linear-gradient(145deg,#fff,#fff6f8);border-radius:18px;box-shadow:none}
.teacher-note-text b{font-size:13px}.teacher-note-text small{font-size:10px}

/* brand promise — premium dark block */
.promise-card{background:linear-gradient(140deg,#373034 0%,#4a3940 70%,#503a42 100%);border-radius:28px;padding:36px;box-shadow:0 22px 58px rgba(41,27,32,.13)}
.promise-card h2{font-size:32px;letter-spacing:-.025em}
.promise-grid{gap:10px}
.promise-item{background:rgba(255,255,255,.065);border-color:rgba(255,255,255,.11);border-radius:16px;padding:17px}
.promise-item b{font-size:13px}.promise-item small{font-size:10px;line-height:1.7}

/* guides / FAQ */
.guide-grid{gap:16px}
.guide-feature{border-radius:24px;border-color:#e8dfe2;background:linear-gradient(145deg,#fff,#fff5f7);box-shadow:none;padding:26px}
.guide-feature h3{font-size:24px;letter-spacing:-.02em}
.guide-list{gap:8px}
.guide-link{min-height:54px;border-radius:14px;box-shadow:none;border-color:#e9e1e3;padding:13px 14px;font-size:12px;background:rgba(255,255,255,.9)}
.guide-link:hover{background:#fff8fa}
.faq{gap:8px}
.faq details{border-radius:14px;box-shadow:none;border-color:#e9e1e3;background:#fff}
.faq summary{font-size:13px;padding:15px 30px 15px 0}
.faq details p{font-size:12px;line-height:1.8}

.final-cta{border-radius:24px;border-color:#eadde1;box-shadow:none;padding:22px 24px;background:linear-gradient(135deg,#fff,#fff5f7)}
.final-cta img{width:76px;height:76px;border-width:4px;box-shadow:none}
.final-cta h2{font-size:25px}.final-cta p{font-size:12px}

/* footer quieter, editorial */
footer{margin-top:40px;background:#332d30;padding:38px 0 22px}
.footer-grid{gap:34px}
.footer-grid p,.footer-grid li,.footer-grid a{font-size:11px;line-height:1.8}
.footer-grid h4{font-size:12px;letter-spacing:.04em}
.copyright{font-size:9px}

/* guide/legal pages inherit the same professional frame */
.page-hero{padding:48px 0 26px;background:linear-gradient(180deg,#fff,#faf8f7);border-bottom:1px solid #eee7e9}
.page-hero h1{letter-spacing:-.03em}
.article{border-radius:22px;border-color:#e7dfe1;box-shadow:none}
.article h2{letter-spacing:-.02em}
.side-card{border-color:#e7dfe1;box-shadow:none;border-radius:16px}
.ad-slot{background:#fffafa;border-color:#dcb7c1}

/* quiz: one clear action per screen */
.quiz-page{background:#f8f6f5}
.quiz-hero{padding:34px 0 14px}
.quiz-hero-inner{background:#fff;border:1px solid #e8e0e2;border-radius:20px;padding:16px 18px;box-shadow:0 10px 28px rgba(50,34,40,.04)}
.quiz-hero img{width:78px;height:78px;border:4px solid #fff0f4;box-shadow:none}
.quiz-hero h1{font-size:clamp(26px,4vw,36px);letter-spacing:-.03em;margin:2px 0}
.quiz-hero p{font-size:11.5px;line-height:1.7}
.quiz-teacher-line{font-size:9px;letter-spacing:.04em;padding:4px 8px}
.quiz-wrap{width:min(700px,calc(100% - 30px));padding:12px 0 64px}
.quiz-card{border-radius:24px;border-color:#e6dde0;box-shadow:0 18px 52px rgba(50,34,40,.07)}
.quiz-status{padding:16px 20px 13px}
.quiz-status-row b{font-size:11px}.quiz-status-row span{font-size:9px}
.progress{height:6px;background:#f0e9eb}
.quiz-main{padding:28px 26px 30px}
.question-badge{width:34px;height:34px;flex-basis:34px;border-radius:10px;font-size:10px}
.quiz-main h2{font-size:clamp(20px,3.8vw,25px);line-height:1.5;letter-spacing:-.015em}
.q-sub{font-size:10.5px!important;line-height:1.7}
.options{gap:9px;margin-top:5px}
.option{min-height:60px;border-radius:14px;border-color:#e7dfe1;padding:14px 48px 14px 16px;font-size:13px;background:#fff;box-shadow:none}
.option:before{content:"";position:absolute;right:18px;top:50%;width:20px;height:20px;border-radius:50%;border:1.5px solid #dccfd3;transform:translateY(-50%)}
.option:after{content:"›";right:23px;font-size:18px;color:#cc506f;z-index:1}
.option:hover,.option:focus-visible{background:#fff8fa;border-color:#dca9b7;box-shadow:none}
.quiz-back{font-size:11px}
.result-hero{padding:13px;background:#fff6f8;border:1px solid #eed7de;border-radius:17px}
.result-hero img{width:68px;height:68px;border-width:3px;box-shadow:none}
.result-hero h2{font-size:20px;letter-spacing:-.02em}
.score-tags span{font-size:9.5px;border:1px solid #f0d9df;background:#fff4f6}
.result-item{border-radius:14px;border-color:#e7dfe1}.result-item b{font-size:12px}.result-item span{font-size:10.5px;line-height:1.7}
.quiz-result-note{font-size:11px;line-height:1.8;border:1px solid #efd9df}

/* age gate: premium, calm, easy */
.age-modal{background:rgba(37,29,32,.68);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.age-box{border-radius:24px;padding:26px;box-shadow:0 32px 90px rgba(28,19,22,.23);border:1px solid rgba(255,255,255,.55)}
.age-box h2{font-size:24px;letter-spacing:-.02em}.age-box p{font-size:12px;line-height:1.8}
.age-actions button{min-height:50px;border-radius:13px}
.age-yes{background:linear-gradient(135deg,#e36181,#d24d6e)}

/* accessibility / motion */
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

@media(max-width:900px){
  .container{width:min(100% - 32px,var(--max))}
  .hero{padding-top:42px}
  .hero-grid{gap:32px}
  .hero-copy{text-align:left}
  .hero-visual{order:initial;max-width:660px;width:100%;margin:auto}
  .cta-row,.micro-trust{justify-content:flex-start}
  .trust-strip{margin-top:0}
  .section{padding:60px 0}
}

@media(max-width:600px){
  html{scroll-padding-top:70px}
  body{padding-bottom:74px}
  .container{width:min(100% - 20px,var(--max))}
  .narrow-container{width:min(100% - 16px,820px)}
  .topbar{font-size:9px;letter-spacing:.03em;padding:4px 8px}
  .nav{height:60px}
  .brand-logo{width:31px;height:31px}.brand-word{font-size:19px}
  .hero{padding:28px 0 34px}
  .hero-grid{display:flex;flex-direction:column;gap:22px}
  .hero-copy{order:1}
  .hero-visual{order:2;border-radius:24px;padding:16px;box-shadow:0 18px 48px rgba(52,36,42,.07)}
  .eyebrow{font-size:9px;padding:5px 9px}
  .hero h1{font-size:37px;line-height:1.16;margin:15px 0 13px;letter-spacing:-.05em}
  .hero-lead{font-size:13px;line-height:1.85;margin-bottom:18px}
  .cta-row{grid-template-columns:1fr;gap:8px}
  .cta-row .btn-secondary{display:none}
  .btn{min-height:52px;border-radius:13px;font-size:13px}
  .micro-trust{display:grid;grid-template-columns:1fr 1fr;gap:7px 10px;margin-top:14px}
  .micro-trust span{font-size:9.5px}
  .hero-characters{gap:2px}
  .character-photo{width:136px;height:136px;border-width:4px}
  .character-card.visitor .character-photo{width:110px;height:110px}
  .character-name{font-size:9px;padding:3px 8px;margin-top:7px}
  .dialogue{font-size:11.5px;line-height:1.7;padding:10px 12px;border-radius:15px}
  .dialogue.visitor-msg{margin-right:28px}
  .dialogue.teacher-msg{margin-left:25px;margin-top:7px}
  .visual-mini-steps{grid-template-columns:1fr 1fr 1fr;gap:5px;margin-top:11px}
  .visual-mini-steps span{font-size:8px;border-radius:9px;padding:6px 3px}

  .trust-strip-inner{grid-template-columns:1fr 1fr;border-radius:18px}
  .trust-item{padding:12px 9px;gap:7px}
  .trust-icon{width:32px;height:32px;flex-basis:32px;border-radius:10px}
  .trust-item b{font-size:10.5px}.trust-item small{font-size:8.5px;line-height:1.35}

  .section{padding:48px 0}
  .section-head{margin-bottom:18px}
  .section-head h2{font-size:27px;line-height:1.35}
  .section-head p{font-size:11.5px;line-height:1.8;padding-top:4px}
  .section-kicker{font-size:9px}
  .diagnosis-grid{gap:9px}
  .diagnosis-card{min-height:auto;padding:18px 18px 52px;border-radius:18px}
  .diag-icon{width:38px;height:38px;border-radius:11px;margin-bottom:11px}
  .diagnosis-card h3{font-size:18px;margin:6px 0}
  .diagnosis-card p{font-size:11.5px;line-height:1.75}
  .card-meta{left:18px;bottom:17px}

  .chat-shell{border-radius:20px}
  .chat-header{padding:12px 13px}
  .chat-header-avatar{width:40px;height:40px}
  .chat-body{padding:14px 9px 18px}
  .chat-row{gap:6px;margin:10px 0}
  .chat-avatar{width:36px;height:36px;flex-basis:36px}
  .bubble{max-width:82%;font-size:11.5px;line-height:1.7;padding:9px 10px}
  .teacher-note{padding:12px;margin-top:16px;border-radius:15px}
  .teacher-note img{width:48px;height:48px}

  .promise-card{padding:22px 15px;border-radius:21px}
  .promise-card h2{font-size:25px;line-height:1.4}
  .promise-grid{grid-template-columns:1fr 1fr;gap:7px;margin-top:19px}
  .promise-item{padding:12px;border-radius:13px}
  .promise-item b{font-size:11px;line-height:1.55;margin:8px 0 4px}
  .promise-item small{font-size:8.8px;line-height:1.65}
  .promise-no{width:24px;height:24px;font-size:8px}

  .guide-feature{padding:18px;border-radius:18px}.guide-feature h3{font-size:20px}
  .guide-feature p{font-size:11.5px}.guide-list{grid-template-columns:1fr;gap:7px}.guide-link{min-height:50px;font-size:11.5px;border-radius:12px}
  .faq details{border-radius:12px;padding:0 14px}.faq summary{font-size:12px;line-height:1.55}.faq details p{font-size:11px}
  .final-cta{padding:16px 13px;border-radius:19px}.final-cta img{width:58px;height:58px}.final-cta h2{font-size:19px}.final-cta p{font-size:10.5px}
  .footer-grid{gap:20px}.footer-grid ul{padding-left:16px}

  .quiz-hero{padding:20px 0 8px}.quiz-hero-inner{padding:12px;border-radius:16px;gap:11px}.quiz-hero img{width:64px;height:64px}.quiz-hero h1{font-size:24px}.quiz-hero p{font-size:10.5px}
  .quiz-wrap{width:min(100% - 16px,700px);padding:8px 0 54px}.quiz-card{border-radius:19px}.quiz-status{padding:13px 14px 11px}.quiz-main{padding:18px 13px 22px}.question-header{gap:9px}.question-badge{width:31px;height:31px;flex-basis:31px}.quiz-main h2{font-size:19px}.option{min-height:58px;border-radius:12px;font-size:12px;padding-left:13px}.result-hero{padding:10px}.result-hero img{width:58px;height:58px}.result-hero h2{font-size:18px}

  .mobile-sticky-cta{left:8px;right:8px;bottom:7px}
  .mobile-sticky-cta a{min-height:53px;border-radius:14px;font-size:13px;box-shadow:0 14px 34px rgba(156,53,82,.28)}
}
.header-quick-cta{display:none;text-decoration:none;min-height:38px;padding:0 12px;border-radius:11px;background:#df5879;color:#fff;font-size:11px;font-weight:850;align-items:center;justify-content:center;margin-left:auto}
@media(max-width:900px){.header-quick-cta{display:inline-flex}.nav-toggle{margin-left:5px}}
@media(max-width:600px){.header-quick-cta{min-height:36px;padding:0 10px;font-size:10.5px}.nav{gap:7px}}

/* iPhone final polish: keep the headline tidy and prevent a fixed CTA from covering content. */
.mobile-title-break{display:none}
@media(max-width:600px){
  body{padding-bottom:0}
  .mobile-title-break{display:block}
  .mobile-sticky-cta{display:none!important}
}
