/* Public pages use the shared foundations in base.css. */
.site { --site-width:1180px; --site-gutter:clamp(20px,4.5vw,64px); background:#fafaf6; font-size:18px; }
.site-container,.site-header,.site-footer { width:calc(100% - var(--site-gutter)*2); max-width:var(--site-width); margin-inline:auto; }
.site a { text-underline-offset:5px; }
.site-header { min-height:100px; display:flex; justify-content:space-between; align-items:center; gap:24px; }
.site-brand { display:inline-flex; align-items:center; gap:10px; text-decoration:none; flex-shrink:0; }
.site-brand .brand-mark { width:36px; height:38px; font-size:30px; }
.site-wordmark { font-size:29px; font-weight:700; letter-spacing:-1.5px; }
.site-wordmark>span { font-weight:400; }
.site-nav { display:flex; align-items:center; gap:32px; font-size:15px; }
.site-nav>a:not(.button) { text-decoration:none; padding:12px 0; color:var(--muted); }
.site-nav>a:not(.button):hover,.site-nav>a[aria-current="page"] { color:var(--ink); text-decoration:underline; }
.site .button { min-height:50px; padding:13px 24px; gap:20px; font-size:16px; font-weight:600; border-radius:28px; }
.site .button>span { font-size:20px; line-height:1; }
.site .primary { background:var(--green); }
.site .primary:hover { background:var(--green-dark); }
.site-eyebrow { color:var(--muted); font-size:12px; font-weight:550; letter-spacing:1.6px; line-height:1.6; margin:0 0 24px; }
.site h1 { font-size:clamp(48px,5.5vw,78px); line-height:1.06; letter-spacing:-3.5px; font-weight:650; margin:0 0 30px; text-wrap:pretty; }
.site h1 em,.site h2 em { font-family:inherit; font-style:normal; font-weight:inherit; color:var(--green); }
.site h2 { font-size:clamp(32px,3.5vw,48px); line-height:1.15; letter-spacing:-1.8px; font-weight:600; margin:0; text-wrap:pretty; }
.site h3 { font-size:23px; line-height:1.35; letter-spacing:-.6px; font-weight:600; margin:0 0 16px; }
.site-hero { display:grid; grid-template-columns:1.08fr .92fr; align-items:center; gap:64px; padding-block:76px 96px; }
.hero-copy { min-width:0; }
.hero-description { font-size:20px; line-height:1.8; color:var(--muted); max-width:490px; margin:0; }
.hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:24px; margin-top:32px; }
.hero-actions .button { min-width:148px; justify-content:space-between; }
.quiet-link { display:inline-flex; align-items:center; gap:12px; color:var(--green); font-size:16px; font-weight:550; min-height:44px; text-decoration:none; }
.quiet-link:hover { text-decoration:underline; }
.hero-note { font-size:13px; line-height:1.6; color:var(--muted); margin:20px 0 0; display:flex; align-items:center; gap:8px; }
.note-dot { width:5px; height:5px; border-radius:50%; background:var(--green); flex-shrink:0; }
.hero-product { margin:0; min-width:0; }
.demo-frame { background:#fff; border:1px solid #c5d2bc; border-radius:20px; overflow:hidden; box-shadow:0 16px 44px #203b320a; }
.demo-header { display:flex; align-items:center; gap:12px; padding:20px 24px; border-bottom:1px solid var(--line); }
.demo-header>.brand-mark { width:30px; height:32px; font-size:26px; }
.demo-header>div { min-width:0; }
.demo-header strong { display:block; font-size:16px; font-weight:600; line-height:1.5; }
.demo-header>div>span { display:block; color:var(--muted); font-size:12px; margin-top:2px; }
.demo-label { margin-left:auto; color:var(--muted); font-size:10px; letter-spacing:1px; }
.demo-photo { position:relative; margin:20px 24px 0; }
.demo-photo img { display:block; width:100%; height:auto; aspect-ratio:2.45; object-fit:cover; border-radius:8px; }
.demo-photo>span { position:absolute; bottom:10px; left:10px; background:#fffef8f2; color:var(--ink); font-size:11px; padding:4px 8px; border-radius:4px; }
.demo-body { padding:20px 24px 24px; }
.demo-user { padding:14px 16px; background:#e1ebd9; border-radius:10px 10px 2px 10px; margin-left:24px; }
.demo-user>span,.demo-answer>span { color:var(--green); font-size:11px; font-weight:650; }
.demo-user p,.demo-answer p { margin:5px 0 0; font-size:15px; line-height:1.7; }
.demo-answer { margin-top:18px; }
.demo-answer p { color:var(--ink); }
.demo-next { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-top:20px; padding-top:16px; border-top:1px solid var(--line); min-height:44px; color:var(--green); font-size:13px; font-weight:550; text-decoration:none; }
.demo-next:hover { text-decoration:underline; }
.hero-product figcaption,.report-illustration figcaption { font-size:12px; line-height:1.7; color:var(--muted); margin-top:14px; }
.how-section { border-top:1px solid var(--line); padding-block:72px 88px; scroll-margin-top:32px; }
.section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:48px; }
.section-heading>p { font-size:18px; line-height:1.8; color:var(--muted); margin:0; }
.journey-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px; list-style:none; padding:0; margin:52px 0 0; }
.journey-steps>li { padding-top:20px; border-top:1px solid #b8c9af; }
.step-number { display:block; color:var(--green); font-size:clamp(56px,6vw,80px); font-weight:650; line-height:1; letter-spacing:-3px; font-variant-numeric:tabular-nums; margin:0 0 32px; }
.journey-steps p { font-size:18px; line-height:1.8; color:var(--muted); margin:0; }
.report-section { background:#203f33; color:#fff; padding-block:88px; }
.report-layout { display:grid; grid-template-columns:.9fr 1.1fr; align-items:center; gap:100px; }
.report-section .site-eyebrow { color:#b9d1b2; }
.report-section h2 em { color:#b9d5ad; }
.report-section-copy>p:not(.site-eyebrow):not(.section-note) { font-size:19px; line-height:1.85; color:#e0e8dc; margin:26px 0; }
.report-benefits { list-style:none; padding:0; margin:0 0 32px; }
.report-benefits li { position:relative; padding-left:25px; margin-bottom:14px; font-size:16px; line-height:1.7; color:#e0e8dc; }
.report-benefits li::before { content:'✓'; position:absolute; left:0; color:#b9d5ad; }
.report-section .secondary { background:#eef4e9; color:#203f33; border-color:#eef4e9; }
.report-section .secondary:hover { background:#fff; }
.section-note { font-size:13px; line-height:1.7; color:var(--muted); margin:16px 0 0; }
.report-section .section-note { color:#c2d4ba; }
.report-illustration { margin:0; }
.report-illustration figcaption { color:#c2d4ba; }
.sample-report-sheet { background:#fffefb; color:var(--ink); border:1px solid #d6dfd0; padding:28px; max-width:390px; margin-inline:auto; }
.sheet-brand { display:flex; justify-content:space-between; align-items:center; gap:8px; font-size:23px; font-weight:650; letter-spacing:-1px; border-bottom:1px solid var(--line); padding-bottom:20px; }
.sheet-brand>span { font-size:7px; letter-spacing:1px; font-weight:500; }
.sheet-heading { padding:20px 0; }
.sheet-heading>small,.sheet-section>small { display:block; font-size:9px; letter-spacing:1px; color:var(--muted); margin-bottom:8px; }
.sheet-heading>strong { font-size:22px; line-height:1.3; font-weight:600; letter-spacing:-.5px; }
.sheet-photo { position:relative; }
.sheet-photo>img { width:100%; height:auto; aspect-ratio:10/7; object-fit:cover; display:block; }
.sheet-highlight { position:absolute; top:36%; left:51%; width:16%; height:29%; border:2px solid #a37135; border-radius:3px; }
.sheet-photo-label { position:absolute; left:8px; bottom:8px; background:#254b39e6; color:#fff; padding:4px 7px; font-size:8px; border-radius:3px; }
.sheet-section { padding-top:20px; }
.sheet-section p { font-size:12px; line-height:1.75; color:var(--muted); margin:0; }
.sheet-next { background:#e8efdf; padding:12px; margin-top:20px; }
.sheet-next>span { display:block; color:var(--muted); font-size:10px; }
.sheet-next>strong { display:flex; justify-content:space-between; font-size:14px; font-weight:600; margin-top:4px; }
.faq-section { display:grid; grid-template-columns:.85fr 1.15fr; gap:100px; padding-block:96px; }
.faq-section .quiet-link { margin-top:24px; font-size:15px; }
.faq-list { border-top:1px solid #b8c9af; }
.faq-list details { border-bottom:1px solid #cbd7c3; padding:24px 0; }
.faq-list summary { display:flex; justify-content:space-between; align-items:center; gap:20px; font-size:18px; line-height:1.5; font-weight:550; list-style:none; cursor:pointer; min-height:28px; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content:'+'; font-size:24px; font-weight:400; color:var(--green); flex-shrink:0; }
.faq-list details[open] summary::after { content:'−'; }
.faq-list summary:focus-visible { outline:3px solid var(--focus); outline-offset:6px; }
.faq-list p { color:var(--muted); font-size:17px; line-height:1.85; margin:18px 28px 0 0; }
.closing-section { display:flex; justify-content:space-between; align-items:center; gap:48px; padding:44px; background:#e5eddd; border:1px solid #c9d8bf; border-radius:16px; margin-bottom:72px; }
.closing-section h2 { font-size:clamp(28px,3vw,40px); }
.closing-section>div:last-child { flex-shrink:0; }
.closing-section .button { background:var(--green); color:#fff; min-width:160px; justify-content:space-between; }
.closing-section>div>p { display:block; color:var(--muted); font-size:12px; line-height:1.7; max-width:180px; margin:14px 0 0; }
.site-footer { display:grid; grid-template-columns:1fr auto; gap:28px; padding-block:32px; border-top:1px solid var(--line); }
.site-footer .site-brand .brand-mark { width:28px; height:30px; font-size:24px; }
.site-footer .site-wordmark { font-size:24px; }
.site-footer p { color:var(--muted); font-size:13px; margin:8px 0 0; }
.site-footer nav { display:flex; flex-wrap:wrap; align-items:flex-start; gap:24px; font-size:14px; }
.site-footer nav a { display:inline-flex; min-height:44px; align-items:center; text-decoration:none; }
.site-footer nav a:hover { text-decoration:underline; }
.site-footer>small { grid-column:1/-1; font-size:12px; color:var(--muted); }
.contact-main { padding-block:44px 96px; }
.contact-back { font-size:14px; margin-bottom:48px; }
.contact-layout { display:grid; grid-template-columns:1.1fr .9fr; align-items:start; gap:96px; }
.contact-layout>div { min-width:0; }
.contact-layout h1 { font-size:clamp(42px,5vw,66px); }
.contact-email { display:inline-flex; align-items:center; gap:12px; max-width:100%; font-size:clamp(18px,2vw,22px); letter-spacing:-.5px; color:var(--green); margin-top:32px; text-decoration:none; min-height:44px; }
.contact-address { white-space:nowrap; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:5px; }
.contact-email-arrow { flex-shrink:0; }
.contact-card { background:#e5eddd; border:1px solid #c9d8bf; border-radius:16px; padding:36px; }
.contact-card>.brand-mark { margin-bottom:32px; }
.contact-card .site-eyebrow { font-size:14px; letter-spacing:0; margin-bottom:16px; }
.contact-card h2 { font-size:30px; }
.contact-card p:not(.site-eyebrow) { font-size:17px; line-height:1.85; color:var(--muted); }
.contact-card hr { border:0; border-top:1px solid #bfcfb4; margin:28px 0; }
.contact-card h3 { font-size:18px; }
.contact-card .button { margin-top:12px; }
.scroll-reveal { transition:opacity .6s ease,transform .6s cubic-bezier(.2,.65,.3,1); }
.scroll-reveal.reveal-pending { opacity:0; transform:translateY(24px); }
.scroll-reveal.is-visible,.scroll-reveal.reveal-pending:focus-within { opacity:1; transform:none; }
.journey-steps h3 { font-size:32px; letter-spacing:-1px; }
@media(max-width:1050px) {
  .site-hero { gap:40px; padding-top:52px; }
  .site h1 { font-size:58px; letter-spacing:-2.8px; }
  .hero-description { font-size:18px; }
  .demo-header { padding:18px; }
  .demo-photo { margin:18px 18px 0; }
  .demo-body { padding:18px; }
  .demo-user { margin-left:12px; }
  .report-layout,.faq-section,.contact-layout { gap:48px; }
  .section-heading { gap:32px; }
  .site-nav { gap:24px; }
  .journey-steps { gap:28px; }
}
@media(max-width:800px) {
  .site-hero { grid-template-columns:1fr; gap:40px; padding-block:48px 64px; }
  .site h1 { font-size:clamp(48px,8vw,68px); }
  .hero-copy { max-width:600px; }
  .hero-product { width:min(500px,100%); margin:auto; }
  .hero-description { max-width:550px; }
  .demo-label { font-size:11px; }
  .section-heading { flex-direction:column; align-items:flex-start; gap:24px; }
  .report-layout,.faq-section { gap:32px; }
  .sample-report-sheet { padding:20px; }
  .sheet-brand { font-size:19px; }
  .sheet-brand>span { font-size:5px; }
  .sheet-heading>strong { font-size:18px; }
  .report-section-copy>p:not(.site-eyebrow):not(.section-note) { font-size:18px; }
  .report-section-copy .button { padding-inline:18px; }
  .contact-layout { gap:32px; }
  .contact-card { padding:24px; }
  .closing-section { padding:32px; gap:28px; }
  .site-footer nav { gap:16px; }
}
@media(max-width:620px) {
  .site { --site-gutter:20px; }
  .site-header { min-height:84px; gap:16px; }
  .site-brand .brand-mark { width:30px; height:32px; font-size:26px; }
  .site-wordmark { font-size:26px; letter-spacing:-1.4px; }
  .site-nav .nav-how,.site-nav .nav-contact { display:none; }
  .site-nav .button { padding:11px 16px; gap:12px; min-height:46px; font-size:15px; }
  .site-hero { padding-top:40px; gap:36px; }
  .site h1 { font-size:clamp(44px,11vw,60px); letter-spacing:-2px; }
  .site h2 { font-size:34px; letter-spacing:-1.2px; }
  .site-eyebrow { font-size:11px; letter-spacing:1.2px; }
  .hero-actions { gap:16px; }
  .hero-actions .button { min-width:130px; }
  .hero-note { font-size:12px; }
  .quiet-link { font-size:15px; }
  .demo-frame { border-radius:14px; }
  .demo-header { gap:10px; }
  .demo-header strong { font-size:15px; }
  .demo-label { font-size:9px; }
  .demo-user p,.demo-answer p { font-size:15px; }
  .hero-product figcaption { font-size:11px; }
  .how-section { padding-block:44px 56px; }
  .section-heading>p { font-size:17px; }
  .journey-steps { grid-template-columns:1fr; gap:32px; margin-top:36px; }
  .step-number { font-size:64px; margin-bottom:24px; }
  .journey-steps p { font-size:18px; }
  .report-section { padding-block:52px; }
  .report-layout { grid-template-columns:1fr; gap:40px; }
  .report-section-copy { grid-row:1; }
  .sample-report-sheet { max-width:340px; padding:24px; }
  .sheet-brand { font-size:21px; }
  .sheet-brand>span { font-size:6px; }
  .sheet-heading>strong { font-size:21px; }
  .report-section-copy .button { width:100%; justify-content:space-between; }
  .faq-section { grid-template-columns:1fr; gap:32px; padding-block:56px; }
  .faq-section h2 br { display:none; }
  .faq-section .quiet-link { margin-top:16px; }
  .faq-list summary { font-size:17px; }
  .faq-list p { margin-right:0; }
  .closing-section { flex-direction:column; align-items:flex-start; padding:28px 24px; margin-bottom:48px; }
  .closing-section h2 { font-size:30px; }
  .closing-section>div:last-child { width:100%; }
  .closing-section .button { width:100%; }
  .closing-section>div>p { max-width:none; text-align:center; }
  .site-footer { grid-template-columns:1fr; gap:24px; }
  .site-footer nav { gap:12px; justify-content:space-between; font-size:13px; }
  .site-footer>small { line-height:1.8; }
  .contact-main { padding-block:24px 48px; }
  .contact-back { margin-bottom:28px; }
  .contact-layout { grid-template-columns:1fr; gap:40px; }
  .contact-layout h1 { font-size:48px; }
  .contact-email { font-size:clamp(16px,4.8vw,20px); gap:10px; }
  .contact-card { padding:28px; }
  .contact-card>.brand-mark { margin-bottom:24px; }
}
@media(prefers-reduced-motion:reduce) {
  .site *, .site *::before, .site *::after { scroll-behavior:auto!important; transition:none!important; }
  .scroll-reveal.reveal-pending { opacity:1; transform:none; }
}
