/* Shared navigation and visitor journeys, revision 30 October 2026. */
:root { --site-header-height: 100px; --surface-soft:#eff3e9; --line:#dbe2d3; --muted:#52634f; }
html { scroll-padding-top: calc(var(--site-header-height) + 20px); }
[hidden] { display:none !important; }
:target { scroll-margin-top: 20px; }
body { overflow-wrap:break-word; }
.site-header { position:sticky; top:0; z-index:40; min-height:var(--site-header-height); padding:10px 5%; gap:24px; flex-direction:row; align-items:center; flex-wrap:nowrap; box-shadow:0 2px 12px #183b2008; }
.site-header .brand img { width:154px; height:77px; }
.site-header .site-nav { display:flex; flex-wrap:nowrap; gap:20px; width:auto; }
.site-header .site-nav a { min-height:48px; display:flex; align-items:center; font-size:13px; line-height:1.4; }
.site-header .site-nav a[data-active], .site-header .site-nav a[aria-current="page"] { border-bottom-color:var(--brand-gold); }
.menu-toggle { border:1px solid var(--line); border-radius:4px; padding:10px 14px; min-height:48px; background:transparent; color:var(--brand-ink); align-items:center; gap:12px; font:600 14px Arial,sans-serif; cursor:pointer; flex-shrink:0; }
.menu-icon { width:24px; height:20px; position:relative; display:block; }
.menu-icon span { position:absolute; left:0; width:24px; height:2px; border-radius:1px; background:currentColor; transition:transform 180ms ease, top 180ms ease; }
.menu-icon span:first-child { top:5px; }
.menu-icon span:last-child { top:13px; }
.menu-toggle[aria-expanded="true"] .menu-icon span:first-child { top:9px; transform:rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-icon span:last-child { top:9px; transform:rotate(-45deg); }
.skip { z-index:60; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline:3px solid #ac7500; outline-offset:5px; box-shadow:0 0 0 2px var(--brand-cream); }
.site-footer a { min-height:44px; }
.breadcrumbs { display:flex; flex-wrap:wrap; gap:8px; align-items:center; font:13px/1.6 Arial,sans-serif; color:var(--muted); margin:0 0 30px; }
.breadcrumbs a { display:inline-flex; min-height:44px; align-items:center; text-underline-offset:4px; }
.journey { max-width:1440px; margin:auto; color:var(--brand-ink); font:16px/1.65 Arial,sans-serif; }
.journey h1, .journey h2, .journey h3, .journey p { margin:0; }
.journey h1, .journey h2 { font-family:Georgia,serif; font-weight:400; letter-spacing:-1.4px; line-height:1.1; text-wrap:balance; }
.journey h1 { font-size:clamp(40px,5.8vw,76px); max-width:980px; }
.journey h2 { font-size:clamp(30px,3.8vw,46px); max-width:940px; }
.journey h3 { font-size:22px; line-height:1.3; font-weight:500; text-wrap:balance; }
.journey h1 em { color:var(--brand-green); font-style:normal; }
.journey p { max-width:700px; }
.journey p + p { margin-top:18px; }
.journey a { color:inherit; text-underline-offset:5px; }
.j-section { padding:64px 6%; }
.j-hero { padding-top:48px; padding-bottom:52px; }
.journey .j-kicker { font-size:11px; line-height:1.6; font-weight:700; letter-spacing:1.6px; text-transform:uppercase; margin:0 0 18px; }
.journey .j-lead { font-size:19px; line-height:1.6; margin-top:26px; max-width:760px; color:var(--muted); }
.journey .j-small { font-size:13px; line-height:1.65; margin-top:18px; color:var(--muted); }
.j-soft { background:var(--surface-soft); }
.j-heading { margin-bottom:34px; }
.j-heading > p:last-child, .j-section > h2 + p, .j-split h2 + p, .j-about h2 + p { margin-top:22px; }
.j-actions { display:flex; flex-wrap:wrap; align-items:center; gap:14px 24px; margin-top:28px; }
.journey .j-button { display:inline-flex; justify-content:space-between; align-items:center; gap:18px; min-height:50px; padding:13px 19px; border:1px solid var(--brand-green); border-radius:4px; background:var(--brand-green); color:var(--brand-cream); text-decoration:none; font-size:15px; line-height:1.45; transition:background 150ms ease; }
.j-section > .j-button, .j-split > div > .j-button { margin-top:26px; }
.journey .j-button:hover { background:var(--brand-ink); border-color:var(--brand-ink); }
.journey .j-text-link { display:inline-flex; align-items:center; gap:16px; min-height:48px; padding:10px 0; font-size:15px; }
.j-split .j-text-link, .j-about .j-text-link { margin-top:20px; }
.j-entry-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:36px; }
.journey .j-entry { display:flex; flex-direction:column; padding:28px; border:1px solid var(--line); border-top:5px solid var(--brand-green); background:var(--surface-soft); border-radius:4px; text-decoration:none; transition:border-color 150ms ease; }
.journey .j-entry-gold { border-top-color:var(--brand-gold); }
.journey .j-entry h2 { font-size:clamp(28px,3vw,36px); letter-spacing:-.6px; }
.journey .j-entry p { margin:16px 0 24px; color:var(--muted); }
.j-entry-action { display:flex; justify-content:space-between; gap:16px; margin-top:auto; padding-top:14px; border-top:1px solid #c9d4bf; font-weight:600; font-size:15px; }
.journey .j-entry:hover { border-color:var(--brand-green); }
.j-entry:hover .j-entry-action { text-decoration:underline; text-underline-offset:4px; }
.journey .j-signature { margin-top:28px; padding-left:16px; border-left:4px solid var(--brand-gold); font:italic 20px/1.4 Georgia,serif; }
.j-route-list { margin-top:30px; border-top:1px solid #c9d4bf; }
.journey .j-route { display:flex; align-items:flex-start; gap:26px; padding:26px 0; border-bottom:1px solid #c9d4bf; text-decoration:none; }
.j-route-number { flex:0 0 32px; padding-top:3px; font:15px/1.5 Georgia,serif; color:var(--muted); }
.j-route > div { flex:1; min-width:0; }
.journey .j-route p { color:var(--muted); margin-top:8px; }
.j-route div > span { display:block; font-size:12px; margin-top:12px; font-weight:600; }
.j-arrow { flex-shrink:0; font-size:25px; line-height:1.2; }
.j-route:hover h3 { text-decoration:underline; text-underline-offset:5px; }
.j-diagnostic { display:grid; grid-template-columns:1.5fr .5fr; align-items:center; gap:60px; }
.j-diagnostic p { margin-top:22px; }
.j-diagnostic .j-button { margin-top:26px; }
.j-diagnostic-note { padding:28px; border-left:4px solid var(--brand-gold); background:var(--surface-soft); }
.j-large-number { font:76px/1 Georgia,serif; }
.j-diagnostic-note hr { border:0; border-top:1px solid var(--line); margin-top:22px; }
.j-diagnostic-note p { font-size:14px; }
.j-dark { color:var(--brand-cream); background:var(--brand-green); }
.j-dark .j-kicker { color:var(--brand-gold); }
.j-dark p { color:#e8efdf; }
.journey .j-dark .j-small { color:#e8efdf; }
.journey .j-dark .j-button { background:var(--brand-cream); color:var(--brand-green); border-color:var(--brand-cream); }
.journey .j-dark .j-button:hover { background:var(--brand-gold); border-color:var(--brand-gold); }
.j-split { display:grid; grid-template-columns:1fr 1fr; gap:48px; }
.j-dark > .j-split { margin-top:36px; }
.j-dark > .j-split:first-child { margin-top:0; }
.j-split h3 + p { margin-top:16px; }
.j-about { display:grid; grid-template-columns:.7fr 1.3fr; gap:60px; align-items:center; }
.j-name { border-left:4px solid var(--brand-gold); padding-left:28px; }
.journey .j-name > p:not(.j-kicker) { font:46px/1.1 Georgia,serif; margin-bottom:22px; }
.j-name > span { display:block; color:var(--muted); font-size:13px; }
.j-steps { list-style:none; padding:0; margin:34px 0 0; counter-reset:steps; display:grid; grid-template-columns:repeat(3,1fr); gap:30px; }
.j-steps li { counter-increment:steps; border-top:3px solid var(--brand-gold); padding-top:18px; }
.j-steps li::before { content:'0' counter(steps); display:block; font-size:12px; color:var(--muted); margin-bottom:15px; }
.j-steps p { margin-top:12px; color:var(--muted); font-size:15px; }
.j-card-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:32px; }
.j-card { display:flex; flex-direction:column; align-items:flex-start; border-top:4px solid var(--brand-green); padding:28px; background:var(--brand-cream); }
.j-card:nth-child(even) { border-color:var(--brand-gold); }
.j-card h3 + p { margin-top:20px; color:var(--muted); }
.journey .j-route-label { font-size:13px; font-weight:600; margin:24px 0; }
.j-card .j-button { margin-top:auto; align-self:stretch; }
.j-aside { background:var(--surface-soft); padding:30px; border-left:3px solid var(--brand-gold); }
.j-course { background:var(--brand-green); color:var(--brand-cream); border-top:5px solid var(--brand-gold); padding:38px; display:flex; flex-direction:column; justify-content:space-between; min-height:380px; }
.journey .j-course p { font:clamp(36px,4vw,53px)/1.12 Georgia,serif; margin:34px 0; }
.j-course em { color:var(--brand-gold); font-style:normal; }
.j-course > span:last-child { font-size:13px; border-top:1px solid #fff5; padding-top:22px; }
.j-checks { list-style:none; padding:0; margin:30px 0 0; max-width:850px; }
.j-checks li { padding:19px 0 19px 28px; border-bottom:1px solid #c9d4bf; position:relative; font-size:18px; }
.j-checks li::before { content:'—'; position:absolute; left:0; color:var(--brand-green); }
.j-dimensions { display:grid; grid-template-columns:repeat(3,1fr); gap:30px; margin-top:34px; }
.j-dimensions article { border-top:3px solid var(--brand-gold); padding-top:18px; }
.j-dimensions article > span { color:var(--muted); font-size:12px; }
.j-dimensions h3 { margin:12px 0; }
.j-dimensions p { font-size:15px; color:var(--muted); }
.j-faq { margin-top:28px; border-top:1px solid var(--line); }
.j-faq details { border-bottom:1px solid var(--line); }
.j-faq summary { padding:22px 4px; min-height:48px; cursor:pointer; font-size:18px; }
.j-faq details p { padding:0 4px 24px; }
.j-contact-context { padding:24px; margin:28px 0; border-left:4px solid var(--brand-gold); background:var(--brand-cream); }
.j-contact-context p:last-child { margin-top:12px; }
.journey .j-email-address { font-size:20px; margin-top:22px; overflow-wrap:anywhere; }
.service-next { padding:24px; border-left:4px solid var(--brand-gold); background:var(--surface-soft); margin-top:28px; }
.service-next a { display:inline-flex; align-items:center; min-height:48px; text-decoration:underline !important; text-underline-offset:5px; }
@media(min-width:1441px) { .site-header { padding-left:max(5%,calc((100vw - 1267px)/2)); padding-right:max(5%,calc((100vw - 1267px)/2)); } }
@media(max-width:74rem) {
  :root { --site-header-height:80px; }
  .site-header { padding:8px 5%; flex-wrap:wrap; gap:0 16px; }
  .site-header .brand img { width:128px; height:64px; }
  .menu-toggle { display:inline-flex; margin-left:auto; }
  .site-header .site-nav { flex-basis:100%; display:flex; flex-direction:column; align-items:stretch; gap:0; padding:14px 0 18px; max-height:calc(100vh - 80px); max-height:calc(100svh - 80px); overflow-y:auto; overscroll-behavior:contain; }
  .site-header .site-nav a { font-size:17px; padding:14px 12px; border-bottom:1px solid var(--line); min-height:52px; }
  .site-header .site-nav a[aria-current="page"], .site-header .site-nav a[data-active] { border-left:3px solid var(--brand-gold); background:var(--surface-soft); }
  .site-header .site-nav a:last-child { padding:14px 16px; margin-top:12px; justify-content:center; background:var(--brand-green); color:var(--brand-cream); }
  .j-diagnostic { gap:30px; grid-template-columns:1.4fr .6fr; }
  .j-hero > .j-split { grid-template-columns:1fr; }
  .j-course { min-height:260px; }
}
@media(max-width:650px) {
  .j-section { padding:38px 6%; }
  .j-hero { padding-top:30px; }
  .journey h1 { font-size:clamp(36px,9.5vw,48px); letter-spacing:-1px; }
  .journey h2 { font-size:32px; letter-spacing:-.7px; }
  .journey h3 { font-size:21px; }
  .journey .j-lead { font-size:17px; margin-top:22px; }
  .journey .j-kicker { font-size:10px; letter-spacing:1.3px; }
  .j-entry-grid, .j-card-grid, .j-split, .j-about, .j-diagnostic, .j-steps { grid-template-columns:1fr; gap:24px; }
  .j-entry-grid { margin-top:28px; gap:16px; }
  .journey .j-entry { padding:22px; }
  .j-entry h2 br { display:none; }
  .journey .j-entry h2 { font-size:29px; }
  .journey .j-entry p { font-size:15px; margin:12px 0 18px; }
  .j-actions { align-items:stretch; flex-direction:column; }
  .j-actions .j-button, .j-section > .j-button, .j-diagnostic .j-button { width:100%; }
  .j-route-number { display:none; }
  .journey .j-route { gap:15px; padding:23px 0; }
  .j-route p { font-size:15px; }
  .j-diagnostic-note { padding:22px; }
  .j-large-number { font-size:58px; }
  .j-diagnostic-note hr { margin:16px 0; }
  .j-diagnostic-note p { margin-top:12px; }
  .j-steps { gap:30px; }
  .j-dimensions { grid-template-columns:1fr 1fr; gap:24px 20px; }
  .j-dimensions h3 { font-size:18px; }
  .j-dimensions p { font-size:14px; }
  .j-card { padding:24px; }
  .j-course { padding:28px; }
  .j-aside { padding:25px; }
  .breadcrumbs { margin-bottom:22px; font-size:12px; }
  .footer-grid { grid-template-columns:1fr; }
  .footer-grid>div:first-child { grid-column:auto; }
}
@media(max-width:360px) { .j-dimensions { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *, *::before, *::after { transition:none !important; animation:none !important; } }
@media print { .site-header { position:static; } .menu-toggle { display:none !important; } .j-entry-grid, .j-steps { break-inside:avoid; } }

/* Contact form — 2026-11-04 */
.contact-form{max-width:48rem;margin:1.5rem 0}.contact-form iframe{display:block;width:100%;border:0}.contact-alternative{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid rgba(20,70,50,.18)}
