/* Blue studio theme: restrained soft relief, with high-contrast warm actions.
   Preserve v9 layout and its existing responsive breakpoints. */
:root {
  --brand:#2863bb;
  --brand-deep:#184781;
  --surface:#edf3fa;
  --ink:#172d49;
  --muted:#53667d;
  --paper:#ffffff;
  --paper-deep:#edf3fa;
  --orange:var(--brand);
  --yellow:#cee0f8;
  --blue:#6598df;
  --line:#d6e1ee;
  --soft-raised:9px 9px 22px #b8cbe04d,-9px -9px 22px #ffffff;
  --action:#f4c343;
  --action-light:#ffda68;
  --action-ink:#172d49;
}
body { color:var(--ink); background:#fff; }
::selection { color:#143864; background:#cee0f8; }
.site-header { background:#ffffffed; border-bottom:1px solid #e6edf6; }
.site-header.is-scrolled { box-shadow:0 5px 24px #25466d0a; }
.hero h1 em { color:var(--brand); background:none; }
.hero-lead { color:var(--ink); }
.scroll-cue svg { stroke:var(--brand); }
.header-cta,.button-primary,.mobile-consultation,.button-dark:not(:disabled) {
  background:linear-gradient(135deg,var(--action-light),var(--action));
  color:var(--action-ink);
  border:1px solid #dcac32;
  box-shadow:0 7px 17px #9f7b2026,inset 0 1px 0 #ffffff80;
}
.header-cta:hover,.button-primary:hover,.button-dark:not(:disabled):hover {
  background:#eeb82c; box-shadow:0 10px 24px #9f7b2035,inset 0 1px 0 #ffffff60;
}
a:focus-visible,button:focus-visible,summary:focus-visible {
  outline:3px solid var(--brand); outline-offset:5px;
}
.problem-list li::before { color:var(--brand); }
.concept-section,.difference-section { background:var(--surface); }
.mode-list article,.mode-list article + article {
  background:#f9fbfe; border:1px solid #ffffff; border-radius:24px;
  box-shadow:var(--soft-raised);
}
.mode-list img { mix-blend-mode:multiply; border-radius:16px; }
.concept-closing strong { text-decoration-color:#bed6f5; }
.value-list article > b,.profile-role { color:var(--brand); }
.service-compare { border:0; box-shadow:var(--soft-raised); }
.service-compare-head > * { background:#e3ebf5; color:var(--ink); }
.service-compare-head .compare-spacer { background:#e9edf2; color:var(--muted); }
.service-compare-head > :last-child { background:var(--brand-deep); color:#fff; }
.service-compare-row > * { border-color:#d7e3f1; }
.service-compare-row h3 { color:var(--muted); background:#e9edf2; }
.service-compare-row p { background:#f8fafd; color:var(--muted); }
.service-compare-row p:last-child { background:#e5effc; color:#183e70; }
.profile-photo-placeholder { background:#edf3fa; border-color:#b7c9dd; color:#566a80; }
.newsletter-link { background:linear-gradient(125deg,#153965,#245486); box-shadow:0 10px 28px #254f7920; }
.newsletter-link .newsletter-caption { color:#c2ddff; font-size:18px; }
.newsletter-link a { background:#e8f1ff; color:#183e70; }
.privacy-consent { margin-top:20px; }
.privacy-open { color:var(--brand-deep); font:inherit; text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
.lead-form .privacy-agreement { display:flex; align-items:flex-start; gap:10px; font-size:14px; line-height:1.8; margin-top:8px; cursor:pointer; }
.lead-form .privacy-agreement input { appearance:auto; width:20px; height:20px; min-width:20px; margin:3px 0 0; padding:0; box-shadow:none; accent-color:var(--brand); }
.privacy-agreement:has(input:disabled) { cursor:default; color:var(--muted); }
.privacy-dialog { width:min(680px,calc(100% - 32px)); max-height:calc(100dvh - 48px); margin:auto; padding:0; border:0; border-radius:20px; background:#fff; color:var(--ink); box-shadow:0 24px 80px #102c4b40; }
.privacy-dialog[open] { display:flex; flex-direction:column; }
.privacy-dialog::backdrop { background:#102c4b99; }
.privacy-dialog-header { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:20px 24px; border-bottom:1px solid #dde6f0; }
.privacy-dialog-header h2 { margin:0; font-size:clamp(18px,3vw,24px); line-height:1.5; }
.privacy-close { flex-shrink:0; border:1px solid #b9cce3; border-radius:999px; background:#edf3fa; color:var(--ink); font:inherit; font-size:14px; min-height:44px; padding:8px 16px; cursor:pointer; }
.privacy-dialog-content { padding:24px; overflow:auto; overscroll-behavior:contain; }
#privacy-policy-body { margin:0; font-size:16px; line-height:1.9; white-space:pre-wrap; overflow-wrap:anywhere; }
#privacy-policy-body[data-policy-version] { white-space:normal; }
#privacy-policy-body p { margin:0 0 16px; }
#privacy-policy-body h3 { margin:28px 0 12px; font-size:18px; line-height:1.6; }
#privacy-policy-body ul { padding-left:1.5em; margin:0 0 16px; }
#privacy-policy-body a { color:var(--brand-deep); text-decoration:underline; text-underline-offset:3px; }
.privacy-modal-open { overflow:hidden; }
.privacy-open:focus-visible,.privacy-close:focus-visible,.privacy-agreement input:focus-visible { outline:3px solid var(--brand); outline-offset:4px; }
.flow-list::before { background:#c5d8f0; }
.flow-list li > .line-icon {
  color:var(--brand); background:#f0f5fb; border:1px solid #d1dfef;
  box-shadow:5px 5px 12px #c3d1e25c,-5px -5px 12px #fff;
}
.price-list article,.price-list article:first-child {
  background:var(--surface); border:1px solid #fff;
  box-shadow:var(--soft-raised); border-radius:22px;
}
.price-list article.featured { background:#e9f2ff; outline:2px solid var(--brand); }
.recommend-badge { background:var(--brand-deep); }
.price-list article > div > span { color:var(--brand-deep); }
.diagnosis-details dd,.draft-note,.draft-detail { color:var(--muted); }
.seminar-offer::before { background:linear-gradient(90deg,#102f55ed,#193e68c9); }
.seminar-offer .seminar-offer-label { color:#c4deff; }
.contact-section { background:linear-gradient(125deg,#e3edfa,#f1f6fc 65%,#dfeafa); }
.consultation-value,.contact-section .assurances li,.lead-form {
  background:#edf3fa; border:1px solid #ffffff; border-radius:22px;
  box-shadow:var(--soft-raised);
}
.contact-section .assurances li { isolation:isolate; border-radius:16px; }
.contact-section .assurances small { color:var(--muted); }
.contact-section .assurances strong { color:var(--ink); }
.contact-section .assurances img { border-radius:8px; }
.lead-form input,.lead-form textarea {
  border:1px solid #b8c9dd; border-radius:11px; background:#f5f8fc;
  box-shadow:inset 3px 3px 7px #b5c6da40,inset -3px -3px 7px #fff;
}
.lead-form :is(input,textarea):focus-visible {
  outline:3px solid var(--brand); outline-offset:3px; background:#fff;
}
.lead-form button:disabled {
  background:#dce4ed; color:#52647a; border:1px solid #bdcbdc;
  box-shadow:none; transform:none;
}
.form-step,.privacy-copy,.form-status,.booking-placeholder { color:var(--muted); }
.booking-stage { background:#f1f6fc; border-color:#b4c9e3; }
#booking-link,.resource-file { color:var(--brand-deep); }
.faq-list details { border-color:var(--line); }
@media(max-width:680px) {
  :root { --soft-raised:6px 6px 15px #b8cbe047,-6px -6px 15px #ffffff; }
  .service-compare-row h3 { background:#e9edf2; }
  .mobile-consultation:not([hidden]) { box-shadow:0 6px 20px #9f7b2038; }
}
@media(forced-colors:active) {
  .mode-list article,.price-list article,.lead-form,.consultation-value { border:1px solid CanvasText; box-shadow:none; }
}

/* September annotations: flexible headline measure and explicit table columns. */
.problem-list li { padding:20px 0 20px 40px; border-bottom:0; line-height:2; }
.problem-list li + li { margin-top:8px; }
.problem-list li::before { content:none; }
.problem-check { position:absolute; left:0; top:22px; width:28px; height:28px; mix-blend-mode:multiply; }
.flow-icon { position:relative; z-index:1; width:72px; height:72px; object-fit:contain; margin-bottom:16px; background:#fff; }
.flow-list::before { top:36px !important; left:36px; right:calc(100% / 6 - 36px); }
.concept-section .section-head { max-width:800px; }
#concept-title { width:100%; max-width:800px; }
.service-compare-head small { font-size:20px; line-height:1.55; }
.service-compare-head > :nth-child(n+2),
.service-compare-row > :nth-child(n+2) { border-left:1px solid #9eb8d7; }
.service-compare-row > * { border-top-color:#b8cce3; }
.service-compare-head > :last-child { background:#174982; box-shadow:none; }
.service-compare-row p:last-child {
  background:#cfe2fc; color:#123d70;
  border-left:1px solid #9eb8d7; border-right:0;
  border-top-color:#8cafd9;
}
.service-compare-row:last-child p:last-child { border-bottom:0; }
.seminar-offer { padding-inline:64px; }
.seminar-offer .image-disclaimer { right:64px; }
.profile-photo { width:100%; height:auto; aspect-ratio:1; border-radius:20px; box-shadow:0 10px 24px #25466d16; }
.price-list .price b,.seminar-offer .price b { font-size:40px; }
.contact-section .assurances { grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); }
.contact-section .assurances li { grid-template-columns:44px minmax(0,1fr); gap:10px; padding:14px; min-height:76px; }
.contact-section .assurances img { width:44px; height:44px; }
.contact-section .assurances li > div { display:block; font-size:16px; font-weight:500; line-height:1.7; color:var(--ink); }
.contact-section .assurances small { display:inline; font-size:16px; color:var(--ink); }
.contact-section .assurances strong { display:inline; margin:0; font-size:17px; }
@media(max-width:680px) {
  .comparison-scroll { overflow-x:auto; overscroll-behavior-x:contain; padding-bottom:12px; }
  .comparison-scroll .service-compare { min-width:700px; }
  .comparison-scroll .service-compare-head,.comparison-scroll .service-compare-row { grid-template-columns:140px 280px 280px; }
  .comparison-scroll .service-compare-head .compare-spacer { display:flex; }
  .comparison-scroll .service-compare-row h3 { grid-column:auto; border-bottom:0; padding:20px 14px; }
  .comparison-scroll .service-compare-row p { border-top:1px solid #b8cce3; }
  .service-compare-head small { font-size:15px; min-height:0; }
  .comparison-scroll .comparison-scroll-hint { display:block; position:sticky; left:0; margin:0 0 12px; font-size:13px; color:var(--muted); }
  .profile-section { display:flow-root; }
  .profile-photo { float:left; width:clamp(88px,28vw,112px); margin:0 18px 18px 0; border-radius:14px; }
  .profile-copy .profile-role { font-size:14px; line-height:1.6; letter-spacing:.03em; margin:0 0 8px; }
  .profile-copy h2 { font-size:24px; line-height:1.35; }
  .profile-copy h2 small { display:block; margin:5px 0 0; font-size:13px; }
  .profile-copy > p:not(.profile-role) { clear:both; }
  .seminar-offer { padding-inline:28px; }
  .seminar-offer .image-disclaimer { right:28px; }
}
.comparison-scroll { min-width:0; max-width:100%; order:2; }
.comparison-scroll:focus-visible { outline:2px solid var(--brand-deep); outline-offset:4px; }
.comparison-scroll-hint { display:none; }
.mobile-menu-toggle,.mobile-navigation { display:none; }
@media(max-width:1050px) {
  .site-header > .header-cta { display:none; }
  .mobile-menu-toggle { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; width:44px; height:44px; padding:10px; border:1px solid #d7e3f1; border-radius:12px; background:#fff; color:var(--ink); cursor:pointer; }
  .mobile-menu-toggle span { display:block; width:22px; height:2px; background:currentColor; border-radius:2px; }
  .mobile-menu-toggle[aria-expanded="true"] span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
  .mobile-menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity:0; }
  .mobile-menu-toggle[aria-expanded="true"] span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
  .mobile-menu-toggle:focus-visible { outline:2px solid var(--brand-deep); outline-offset:3px; }
  .mobile-navigation:not([hidden]) { display:grid; gap:4px; position:absolute; top:100%; left:0; right:0; padding:16px 24px 24px; max-height:calc(100dvh - 80px); overflow-y:auto; background:#fff; box-shadow:0 14px 24px #25466d18; border-bottom:1px solid #d7e3f1; }
  .mobile-navigation > a { display:block; padding:14px 12px; font-size:16px; font-weight:700; }
  .mobile-navigation > .button { margin-top:10px; text-align:center; }
}

/* Consistent section labels, scoped to the four annotated headings. */
.problem-heading .section-eyebrow,
.section-head .section-eyebrow,
.support-grid .section-eyebrow {
  display:flex; align-items:center; gap:12px;
  margin:0 0 18px; max-width:100%;
  color:var(--brand-deep); font-size:15px; font-weight:700;
  line-height:1.7; letter-spacing:.06em;
}
.section-eyebrow::before {
  content:""; flex:0 0 32px; height:1px; background:currentColor; opacity:.6;
}
.system-section .section-head .section-eyebrow { order:-2; }
.problem-check { mix-blend-mode:normal; object-fit:contain; }
@media(max-width:680px) {
  .problem-heading .section-eyebrow,
  .section-head .section-eyebrow,
  .support-grid .section-eyebrow { font-size:13px; gap:10px; margin-bottom:14px; }
  .section-eyebrow::before { flex-basis:24px; }
}
