/* Shared public typography. Dashboard chrome deliberately keeps its own theme. */
.fas,.fab{display:inline-flex;align-items:center;justify-content:center;font-style:normal;line-height:1;flex-shrink:0}.fas>svg,.fab>svg{display:block;width:1em;height:1em;overflow:visible}
/* Embedded pages use the same configuration guard as standalone pages. This
   prevents unconfigured fallback/custom-element layouts flashing under the host. */
html[data-fe-pending=true]:not([data-fe-page-ready=true]) body{visibility:hidden}
fe-account{display:block;box-sizing:border-box;max-width:var(--fe-page-width,1160px);margin-inline:auto;padding:var(--fe-page-top,64px) var(--fe-page-gutter,32px) var(--fe-page-bottom,80px)}
.published-article{max-width:var(--fe-page-width,1160px);margin:auto;padding:var(--fe-page-top,64px) var(--fe-page-gutter,32px) var(--fe-page-bottom,80px)}.published-article h1{font-size:calc(var(--fe-page-title,clamp(34px,4.5vw,52px)) * var(--fe-text-scale,1));line-height:1.4;letter-spacing:-.04em;margin:28px 0 20px}.published-article p{margin:24px 0;line-height:1.95}.published-article nav,.post-meta{font-size:calc(15px * var(--fe-text-scale,1));color:var(--color-text-muted)}.post-intro{font-size:calc(20px * var(--fe-text-scale,1));padding-bottom:28px;border-bottom:1px solid var(--color-border)}.post-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:40px}.post-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:14px 24px}.published-article a{color:var(--color-primary)}.post-actions .btn-solid-primary{color:var(--color-on-primary)}
@media(max-width:600px){fe-account{padding:var(--fe-page-top,40px) var(--fe-page-gutter,20px) var(--fe-page-bottom,56px)}}
.privacy-summary{background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;padding:20px;margin-top:24px;font-size:calc(15px * var(--fe-text-scale,1));line-height:1.85}.privacy-check{display:flex;gap:12px;align-items:flex-start;margin-top:16px}.privacy-check input{width:22px;height:22px;flex-shrink:0;margin-top:4px;accent-color:var(--color-primary)}.field-optional{font-size:15px;color:var(--color-text-muted)}
body{font-size:calc(18px * var(--fe-text-scale,1));line-height:1.75;word-break:keep-all;overflow-wrap:break-word;text-wrap:balance}
h1,h2,h3,h4,p,li,label,summary,a{word-break:keep-all;overflow-wrap:break-word;text-wrap:balance}
input,textarea,select{font-size:calc(17px * var(--fe-text-scale,1));text-wrap:wrap}
a[href^="mailto:"],dd{overflow-wrap:anywhere}
.page-intro p:not(.eyebrow),.section-subtitle,.section-intro,.step p,.feature-text p{font-size:calc(18px * var(--fe-text-scale,1));line-height:1.85}
.eyebrow,.block-hint,.block-badge,.diagnosis-note,.contact-hours{font-size:calc(15px * var(--fe-text-scale,1));line-height:1.7}
.btn-solid-submit,.btn-solid-primary,.btn-solid-secondary{font-size:calc(18px * var(--fe-text-scale,1));min-height:52px}
.section[data-fe-section="steps"]{padding:64px 32px;border-radius:24px}
.steps{align-items:stretch;gap:28px}
.step{padding:24px 0;border-top:1px solid var(--color-border);display:flex;flex-direction:column;align-items:flex-start;gap:18px}
.step .number{display:flex;align-items:center;justify-content:center;position:relative;width:48px;height:48px;min-width:48px;margin:0;padding:0;border:1px solid var(--color-border);border-radius:14px;background:var(--color-bg);color:var(--color-primary);font-size:calc(17px * var(--fe-text-scale,1));font-weight:700;animation:none}
.step h3{margin:0;font-size:calc(22px * var(--fe-text-scale,1));line-height:1.5;min-height:3em}
.step p{margin:0}
.step .number::after,.solid-feature-block .feature-icon::after,.solid-feature-block .feature-icon::before{display:none!important}
.channel-item{font-size:calc(16px * var(--fe-text-scale,1))}
html[data-contact-view="dialog"] .section-subtitle{font-size:calc(16px * var(--fe-text-scale,1))}
@media(max-width:700px){.section[data-fe-section="steps"]{padding:40px 24px}.steps{gap:10px}.step{gap:16px;padding:24px 0}.step h3{font-size:calc(21px * var(--fe-text-scale,1));min-height:0}.page-intro p:not(.eyebrow){font-size:calc(18px * var(--fe-text-scale,1))}}

/* Supporting limitations stay readable without competing with the main copy. */
.diagnosis-note{font-size:calc(12px * var(--fe-text-scale,1));line-height:1.65;color:var(--color-text-muted);font-weight:400}

/* Editorial page framing; the body components are shared with live posts. */
.published-article .post-category{margin:32px 0 0;font-size:13px;font-weight:700;color:var(--color-primary);letter-spacing:.06em}
.published-article h1{margin-top:14px}.published-article .post-intro{margin-top:0;color:var(--color-text-muted);line-height:1.8}
.published-article .post-back{display:inline-flex;align-items:center;padding:10px 16px;min-height:44px;border:1px solid var(--color-border);border-radius:999px;color:var(--color-text);font-size:14px;text-decoration:none}
.text-link{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 20px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-bg);color:var(--color-text);font-size:calc(16px * var(--fe-text-scale,1));text-decoration:none;white-space:normal;text-align:center}
.text-link:hover,.post-back:hover{border-color:var(--color-primary)}

.privacy-check a,.privacy-summary a{display:inline-flex;align-items:center;border:1px solid var(--color-border);border-radius:6px;padding:3px 8px;background:var(--color-bg);color:var(--color-text);font-size:14px;line-height:1.5;text-decoration:none}

@media(max-width:700px){html[data-fe-mobile-actions=true]{scroll-padding-bottom:calc(100px + env(safe-area-inset-bottom))}#diagnosis-form button[type=submit]{scroll-margin-bottom:112px}}

/* Independent step cards: no connector line can cross a badge or card edge. */
.steps{gap:22px}.step{border:1px solid var(--color-border);border-radius:20px;background:var(--color-bg);padding:28px;gap:20px}.step .number{width:44px;height:44px;min-width:44px;border:0;border-radius:12px;background:var(--color-surface);box-shadow:none}.steps .step::after,.steps .step::before{display:none!important;content:none!important}
@media(max-width:700px){.step{padding:24px;gap:18px}.steps{gap:14px}}

/* Own component spacing in the document: its universal reset overrides normal
   Shadow DOM :host margins. Padding keeps this gap from collapsing. */
fe-page-cta{display:block;padding-block:var(--fe-section-space,64px) 0}
.page-cta-fallback{padding:40px;border:1px solid var(--color-border);border-radius:16px;background:var(--color-surface)}
.page-cta-fallback h2{font-size:clamp(26px,3vw,34px);line-height:1.5;margin-block:16px}
.page-cta-fallback a{margin-top:24px}
@media(max-width:700px){fe-page-cta{padding-top:56px;padding-bottom:0}.page-cta-fallback{padding:30px 22px;border-radius:12px}}

/* Reversible native-scroll stack. Each card owns its copy and preview. */
.section.journey[data-fe-section=steps]{max-width:var(--fe-page-width,1160px);padding:0;border-radius:24px;position:relative;margin-inline:auto}
.journey-stage{padding:40px var(--fe-page-gutter,32px);display:grid;gap:28px;position:relative}
.journey-heading{position:relative;padding-right:170px}.journey-heading .eyebrow{margin-bottom:12px}.journey-heading h2{font-size:calc(clamp(28px,3vw,38px) * var(--fe-text-scale,1));line-height:1.35;letter-spacing:-.045em;margin:0}
.journey-controls{position:absolute;right:0;bottom:0;display:flex;align-items:center;gap:10px}.journey-controls button{width:44px;height:44px;padding:12px;border:1px solid var(--color-border);border-radius:50%;background:var(--color-bg);color:var(--color-text);cursor:pointer;display:grid;place-items:center}.journey-controls button:disabled{opacity:.3;cursor:default}.journey-controls button:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}.journey-controls svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6}.journey-counter{font-size:14px;white-space:nowrap;font-variant-numeric:tabular-nums}.journey-counter span{color:var(--color-text-muted)}
.journey-deck{position:relative;display:grid;gap:24px;min-width:0}
.journey-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:40px;padding:32px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:20px;transform-origin:50% 10%;min-width:0}
.journey .step::before,.journey .step::after{display:none!important;content:none!important}
.journey .step{background:none;border:0;border-radius:0;box-shadow:none;display:flex;flex-direction:column;align-items:flex-start;gap:20px;padding:0;min-width:0}
.journey .step .number{display:block;width:auto;height:auto;min-width:0;background:none;border:0;border-radius:0;font-size:calc(44px * var(--fe-text-scale,1));line-height:1;letter-spacing:-.06em;animation:none}
.journey .step h3{font-size:calc(30px * var(--fe-text-scale,1));line-height:1.45;letter-spacing:-.04em;min-height:0;margin:0}.journey .step p{font-size:calc(18px * var(--fe-text-scale,1));line-height:1.85;margin:0;color:var(--color-text-muted)}
.journey-panel{position:relative;min-width:0;width:100%;padding:24px;margin:0;background:var(--color-surface);border-radius:12px;word-break:keep-all;overflow-wrap:break-word;text-wrap:balance}
.journey-caption{font-size:calc(12px * var(--fe-text-scale,1));color:var(--color-text-muted);margin:0 0 18px;font-weight:500}
.demo-store>span{display:block;font-size:calc(23px * var(--fe-text-scale,1));font-weight:650;letter-spacing:-.035em}.demo-store>small{display:block;font-size:calc(15px * var(--fe-text-scale,1));margin-top:8px;color:var(--color-text-muted)}
.demo-choices{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px}.demo-choice{display:flex;align-items:center;justify-content:center;min-height:68px;padding:12px;font-size:calc(15px * var(--fe-text-scale,1));border:1px solid var(--color-border);border-radius:10px;color:var(--color-text-muted);background:var(--color-bg);text-align:center}.demo-choice.selected{color:var(--color-primary);border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 4%,var(--color-bg));font-weight:650}
.demo-note{font-size:calc(14px * var(--fe-text-scale,1));line-height:1.85;color:var(--color-text-muted);margin:24px 0 0}
.demo-report-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.demo-report-head h3{font-size:calc(22px * var(--fe-text-scale,1));line-height:1.5}.demo-report-head p{font-size:calc(14px * var(--fe-text-scale,1));color:var(--color-text-muted);margin-top:8px}.demo-total{font-size:calc(48px * var(--fe-text-scale,1));line-height:1.2;letter-spacing:-.05em;color:var(--color-primary);white-space:nowrap}.demo-total small{font-size:calc(16px * var(--fe-text-scale,1));letter-spacing:0}
.demo-metrics{margin-top:28px;display:grid;gap:20px}.demo-metrics>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;font-size:calc(14px * var(--fe-text-scale,1));line-height:1.5}.demo-metrics i{display:block;grid-column:1/-1;height:6px;border-radius:4px;background:linear-gradient(90deg,var(--color-primary) var(--value),var(--color-surface) var(--value))}
.demo-kicker{font-size:calc(14px * var(--fe-text-scale,1));color:var(--color-primary);font-weight:650;margin-bottom:14px}.journey-panel>h3{font-size:calc(26px * var(--fe-text-scale,1));line-height:1.5;letter-spacing:-.035em}.demo-tasks{list-style:none;display:grid;gap:0;margin:24px 0 0;padding:0}.demo-tasks li{font-size:calc(16px * var(--fe-text-scale,1));line-height:1.75;padding:14px 0;border-bottom:1px solid var(--color-border)}.demo-tasks li:last-child{border-bottom:0}

.demo-choices{margin-top:18px;gap:10px}.demo-choice{min-height:58px;padding:10px}.demo-metrics{margin-top:20px;gap:16px}.demo-tasks{margin-top:16px}.demo-tasks li{padding:10px 0}.journey-panel>h3{font-size:calc(24px * var(--fe-text-scale,1))}.demo-note{display:none}.journey-progress{display:none}
@media(min-width:761px) and (prefers-reduced-motion:no-preference){
 html[data-fe-step-story=true][data-fe-motion=full] .journey:not([data-journey-static]){height:calc(100svh + 155svh)}
 html[data-fe-step-story=true][data-fe-motion=full] .journey:not([data-journey-static]) .journey-stage{position:sticky;top:var(--journey-top,0px);height:calc(100svh - var(--journey-top,0px));align-content:center;overflow:clip}
 html[data-fe-step-story=true][data-fe-motion=full] .journey:not([data-journey-static]) .journey-deck{display:block;height:var(--journey-card-height,420px)}
 html[data-fe-step-story=true][data-fe-motion=full] .journey:not([data-journey-static]) .journey-card{position:absolute;inset:0}
 html[data-fe-step-story=true][data-fe-motion=full] .journey:not([data-journey-static]) .journey-card:not(:first-child){opacity:0;transform:translateY(480px)}
 html[data-fe-step-story=true][data-fe-motion=full] .journey:not([data-journey-static]) .demo-note{display:none}
 html[data-fe-step-story=true][data-fe-motion=full] .journey:not([data-journey-static]) .journey-progress{display:block;position:absolute;bottom:16px;left:var(--fe-page-gutter,32px);right:var(--fe-page-gutter,32px);height:1px;background:var(--color-border)}
 .journey-progress:after{content:'';display:block;height:2px;background:var(--color-primary);transform:scaleX(var(--journey-progress,0));transform-origin:left}
}
.journey[data-journey-static] .journey-controls{display:none}.journey[data-journey-static] .journey-heading{padding-right:0}
@media(min-width:761px) and (max-height:820px){.journey-stage{padding-block:24px;gap:24px}.journey-card{padding:24px;gap:28px}.journey .step h3{font-size:calc(28px * var(--fe-text-scale,1))}.journey-heading h2{font-size:calc(34px * var(--fe-text-scale,1))}.journey-panel{padding:20px}}
@media(max-width:760px){.section.journey[data-fe-section=steps]{border-radius:0}.journey-stage{padding-block:40px;gap:28px}.journey-heading{padding-right:0}.journey-controls{display:none}.journey-card{grid-template-columns:1fr;gap:24px;padding:24px;border-radius:16px}.journey .step{gap:18px}.journey .step .number{font-size:calc(32px * var(--fe-text-scale,1))}.journey .step h3{font-size:calc(24px * var(--fe-text-scale,1))}.journey .step p{font-size:calc(17px * var(--fe-text-scale,1))}.journey-panel{padding:20px}.demo-choice{font-size:calc(14px * var(--fe-text-scale,1));min-height:58px;padding:8px}.demo-store>span{font-size:calc(22px * var(--fe-text-scale,1))}.demo-report-head{gap:12px}.demo-report-head h3{font-size:calc(20px * var(--fe-text-scale,1))}.demo-total{font-size:calc(38px * var(--fe-text-scale,1))}.journey-panel>h3{font-size:calc(22px * var(--fe-text-scale,1))}}
