/* pwp-authored-additional-v1-20261028: technical foundation only */
@layer pwp-runtime-foundation {
  :root {
    --bg:#F0F9FF; --text:#0C4A6E;
    --surface:#FFFFFF; --text-muted:#475569;
    --primary:#0EA5E9; --primary-fg:#0F172A;
    --border:#BAE6FD;
  }
  *, *::before, *::after { box-sizing:border-box; }
  html { scroll-behavior:smooth; }
  body { margin:0; background:var(--bg); color:var(--text); }
  img, video { max-inline-size:100%; block-size:auto; }
  button, input, select, textarea { font:inherit; }
  button, summary { cursor:pointer; }
  :where(a,button,input,select,textarea,summary):focus-visible { outline:2px solid currentColor; outline-offset:4px; }
  .skip { position:fixed; inset-block-start:-10rem; inset-inline-start:1rem; z-index:10000; padding:.75rem; background:var(--bg); color:var(--text); }
  .skip:focus { inset-block-start:1rem; }
  /* Legal prose is a separate utility; never constrain the author's main site. */
  .legal-container { max-inline-size:76ch; margin-inline:auto; padding:clamp(1rem,4vw,3rem); }
  .legal-body { line-height:1.7; overflow-wrap:anywhere; }
  .legal-body p + p, .legal-body section + section { margin-block-start:1.25em; }
  .legal-body table { display:block; overflow-x:auto; max-inline-size:100%; }
  .legal-body h1, .legal-body h2, .legal-body h3, .legal-title { line-height:1.2; }
  .cookie-banner { position:fixed; inset-inline:1rem; inset-block-end:1rem; z-index:9999; max-inline-size:34rem; padding:1rem; border:1px solid var(--border); background:var(--bg); color:var(--text); }
  .cookie-text { font:14px/1.5 system-ui,sans-serif; }
  .cookie-actions { display:flex; flex-wrap:wrap; gap:.75rem; margin-block-start:.75rem; }
  .cookie-actions button { min-block-size:44px; padding:.6rem 1rem; border:1px solid var(--border); background:var(--surface); color:var(--text); }
  .cookie-actions [data-action="accept-cookie"] { background:var(--primary); color:var(--primary-fg); }
}
/* Required state, not a visual layout. Expanded pages may be grid/flex/block. */
[hidden], .cookie-banner.hidden { display:none !important; }
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}

/* === AUTHOR-OWNED SITE STYLES === */
:root{--ink:#173d32;--muted:#58675f;--paper:#f7f8f2;--white:#fff;--line:#d8dfd3;--green:#d9ef85;--green-deep:#264e3d;--orange:#bc4b28;--blue:#d9e9ed;--heading:"Manrope",sans-serif;--body:"Inter",sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.65}
a{color:inherit;text-underline-offset:4px}
button,summary,a{-webkit-tap-highlight-color:transparent}
a:focus-visible,summary:focus-visible,button:focus-visible{outline:3px solid var(--orange);outline-offset:5px}
a:hover{color:var(--orange)}
svg{display:block;max-width:100%}
[hidden]{display:none!important}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{font-family:var(--heading);line-height:1.12}
h1{font-weight:600;letter-spacing:-.065em}
h2{font-size:clamp(1.8rem,3.4vw,3rem);font-weight:600;letter-spacing:-.045em}
h3{font-size:1.2rem;font-weight:650;letter-spacing:-.025em}
p{margin-bottom:1.25rem}
.wrap{width:min(1440px,100%);margin-inline:auto;padding-inline:clamp(22px,5vw,80px)}
.site-header{background:var(--paper);border-bottom:1px solid var(--line);position:relative;z-index:20}
.header-inner{min-height:99px;display:flex;align-items:center;justify-content:space-between;gap:30px}
.wordmark{display:inline-flex;align-items:center;gap:12px;text-decoration:none;white-space:nowrap;font-family:var(--heading);font-size:23px;font-weight:750;letter-spacing:-1px}
.wordmark svg{width:34px;height:38px;flex:none}
.wordmark .brand-light{font-weight:450}
.main-nav{display:flex;align-items:center;gap:32px;font-size:14px;font-weight:550}
.main-nav>a{text-decoration:none;padding-block:12px}
.nav-guides{position:relative}
.nav-guides>summary{cursor:pointer;padding:12px 0;list-style:none;display:flex;align-items:center;gap:12px}
.nav-guides>summary::-webkit-details-marker{display:none}
.nav-guides>summary:after{content:"⌄";font-size:19px;line-height:1}
.nav-guides[open]>summary:after{content:"⌃"}
.guide-menu{position:absolute;right:-80px;top:52px;width:340px;background:var(--white);border:1px solid var(--line);padding:12px 22px;box-shadow:0 15px 30px #173d3212}
.guide-menu a{display:block;padding:11px 0;text-decoration:none;border-bottom:1px solid var(--line);font-size:14px}
.guide-menu a:last-child{border:0}
.skip-link{position:absolute;top:-100px;left:15px;background:var(--ink);color:white;padding:12px 20px;z-index:100}
.skip-link:focus{top:12px}
.hero{padding-top:55px;padding-bottom:44px}
.hero-intro{display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:12px;font-weight:600;letter-spacing:.04em;margin-bottom:32px}
.intro-tag{display:flex;align-items:center;gap:9px}
.intro-tag:before{content:"";width:8px;height:8px;background:var(--orange);border-radius:50%}
.hero-grid{display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:34px}
.hero-copy{padding-block:14px 30px}
.hero h1{font-size:clamp(64px,7.9vw,117px);line-height:.99;margin-bottom:29px}
.hero h1 span{color:var(--orange)}
.hero-lead{max-width:430px;font-size:18px;line-height:1.7;margin-bottom:27px}
.action{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;min-height:53px;padding:13px 21px;background:var(--ink);color:var(--white);text-decoration:none;font-weight:550;font-size:14px;border:1px solid var(--ink)}
.action:hover{background:var(--green-deep);color:white}
.action.secondary{background:transparent;color:var(--ink);border-color:var(--line)}
.action.secondary:hover{border-color:var(--ink)}
.action .arrow{font-size:21px;line-height:1}
.hero-small{font-size:12px;color:var(--muted);margin:17px 0 0}
.route-art{margin:0;align-self:stretch;display:flex;flex-direction:column;justify-content:center}
.route-art svg{width:100%;height:auto;overflow:visible}
.route-art figcaption{border-top:1px solid var(--line);padding-top:13px;margin-top:10px;font-size:11px;color:var(--muted);line-height:1.6}
.map-label{font-family:var(--body);font-size:13px;fill:var(--ink);font-weight:600}
.map-small{font-family:var(--body);font-size:10px;fill:var(--muted)}
.map-region{font-family:var(--heading);font-size:12px;letter-spacing:3px;fill:#687a50}
.start-band{background:var(--green);padding-block:27px}
.start-inner{display:grid;grid-template-columns:1fr 2fr;gap:50px;align-items:center}
.start-inner h2{font-size:23px;margin-bottom:0;letter-spacing:-.035em}
.start-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.start-step{display:flex;align-items:flex-start;gap:12px;font-size:13px;line-height:1.55}
.step-num{font-size:12px;border:1px solid #8fa653;border-radius:50%;width:25px;height:25px;display:inline-flex;align-items:center;justify-content:center;flex:none}
.directory{padding-block:76px 65px}
.section-top{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:32px}
.section-top h2{margin:0}
.section-top p{max-width:335px;font-size:14px;color:var(--muted);margin:0}
.guide-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:60px;border-top:1px solid var(--ink)}
.guide-link{display:grid;grid-template-columns:38px 1fr 25px;gap:15px;padding:28px 0;border-bottom:1px solid var(--line);text-decoration:none;align-items:start}
.guide-number{font-size:12px;padding-top:6px;color:var(--muted)}
.guide-link h3{margin-bottom:9px;font-size:22px}
.guide-link p{font-size:14px;line-height:1.7;color:var(--muted);margin:0;max-width:420px}
.guide-arrow{font-size:24px}
.guide-link:hover h3{text-decoration:underline;text-underline-offset:5px}
.editorial-note{background:var(--ink);color:var(--paper);padding-block:50px}
.editorial-inner{display:grid;grid-template-columns:1fr 1fr;gap:60px}
.editorial-inner h2{max-width:440px;margin:0;font-size:35px}
.editorial-inner p{font-size:14px;margin-bottom:12px;max-width:540px;color:#e0e7dc}
.editorial-inner a{color:var(--green)}
.home-faq{padding-block:65px}
.home-faq .section-top{margin-bottom:25px}
.faq-list{border-top:1px solid var(--line);max-width:950px}
.faq-list details{border-bottom:1px solid var(--line)}
.faq-list summary{padding:22px 8px;cursor:pointer;font-weight:550}
.faq-list details p{padding:0 25px 20px 8px;margin:0;font-size:15px;max-width:800px;color:var(--muted)}
.article-head{padding-top:45px;padding-bottom:38px;border-bottom:1px solid var(--line)}
.breadcrumb{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--muted);margin-bottom:45px;flex-wrap:wrap}
.breadcrumb a{text-decoration:none}
.topic-label{display:inline-block;color:var(--orange);font-size:13px;font-weight:600;margin-bottom:18px}
.article-head h1{font-size:clamp(43px,6vw,78px);max-width:1000px;margin-bottom:22px;line-height:1.06}
.article-deck{font-size:19px;line-height:1.7;max-width:760px;margin:0;color:var(--muted)}
.article-layout{display:grid;grid-template-columns:230px minmax(0,760px);gap:clamp(35px,7vw,105px);padding-top:45px;padding-bottom:70px;justify-content:start}
.article-aside{font-size:13px;line-height:1.65}
.aside-label{font-weight:650;margin-bottom:10px}
.article-aside p{color:var(--muted);margin-bottom:18px}
.article-aside a{display:block;padding:9px 0;border-top:1px solid var(--line)}
.article-content{min-width:0}
.article-content h2{font-size:28px;margin:35px 0 17px;letter-spacing:-.035em}
.article-content>h2:first-child{margin-top:0}
.article-content h3{font-size:19px;margin:26px 0 12px}
.article-content p,.article-content li{font-size:16px;line-height:1.85}
.article-content ul,.article-content ol{padding-left:23px;margin:0 0 24px}
.article-content li{padding-left:5px;margin-bottom:9px}
.callout{padding:23px 25px;background:#eaf0dd;border-left:3px solid #8b9e57;margin:28px 0}
.callout h3{margin:0 0 9px}
.callout p{font-size:14px;margin:0}
.callout.rule{background:#eef1ec;border-color:var(--ink)}
.source-note{font-size:13px!important;color:var(--muted);border-top:1px solid var(--line);padding-top:21px;margin-top:28px}
.source-note a{color:var(--ink)}
.table-scroll{overflow-x:auto;margin-block:24px}
table{border-collapse:collapse;width:100%;font-size:14px;text-align:left}
th,td{border-bottom:1px solid var(--line);padding:15px 13px;vertical-align:top}
th{background:#eaf0dd;font-weight:600}
td:first-child{font-weight:550}
.related{margin-top:38px;padding-top:24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;align-items:center;font-size:14px}
.related span{color:var(--muted);font-size:12px}
.related a{font-weight:600}
.route-sequence{margin:28px 0;padding:23px 25px;background:var(--ink);color:white;display:flex;gap:14px;align-items:center;flex-wrap:wrap;font-family:var(--heading);font-size:17px}
.route-sequence b{color:var(--green);font-weight:400}
.route-caption{font-size:12px!important;color:var(--muted)}
.contact-section{padding-top:55px;padding-bottom:80px}
.contact-section h1{font-size:clamp(48px,6vw,80px);margin-bottom:25px}
.contact-deck{font-size:19px;max-width:640px;color:var(--muted);margin-bottom:50px}
.contact-layout{display:grid;grid-template-columns:1.3fr 1fr;gap:70px}
.contact-primary{padding-top:26px;border-top:1px solid var(--ink)}
.contact-primary h2,.contact-details h2{font-size:25px}
.contact-email{font-size:clamp(17px,2.3vw,29px);font-family:var(--heading);font-weight:550;overflow-wrap:anywhere}
.contact-primary p{max-width:540px;font-size:15px}
.contact-details{background:#eaf0dd;padding:30px}
.contact-details address{font-style:normal;font-size:15px;line-height:1.9}
.contact-details p{font-size:13px;margin-top:20px;margin-bottom:0}
.contact-note{margin-top:30px;border-top:1px solid var(--line);padding-top:24px;max-width:570px}
.site-footer{background:#e9ede3;border-top:1px solid var(--line);padding-block:45px 24px}
.footer-top{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:50px;padding-bottom:35px}
.footer-brand{font-family:var(--heading);font-size:24px;font-weight:700;letter-spacing:-1px;margin-bottom:12px}
.footer-top p,.footer-top address{font-size:12px;line-height:1.85;font-style:normal;margin:0;color:#44584b}
.footer-top a{overflow-wrap:anywhere}
.footer-label{font-weight:650!important;color:var(--ink)!important;margin-bottom:10px!important;font-size:13px!important}
.footer-bottom{display:flex;align-items:flex-start;justify-content:space-between;gap:25px;border-top:1px solid #cdd5c7;padding-top:20px;font-size:11px;color:#44584b}
.legal-links{display:flex;gap:18px;flex-wrap:wrap}
@media(min-width:1600px){.hero h1{font-size:117px}}
@media(max-width:1000px){.hero h1{font-size:clamp(60px,8.3vw,90px)}.hero-grid{gap:10px}.hero-lead{font-size:16px}.start-inner{grid-template-columns:1fr;gap:22px}.start-steps{gap:24px}.article-layout{grid-template-columns:185px minmax(0,1fr);gap:35px}.guide-grid{column-gap:30px}.guide-link{grid-template-columns:25px 1fr 20px;gap:10px}.footer-top{gap:25px}.main-nav{gap:23px}}
@media(max-width:700px){.header-inner{min-height:85px;flex-wrap:wrap;gap:3px;padding-top:17px;padding-bottom:13px}.wordmark{font-size:21px}.wordmark svg{width:28px;height:31px}.main-nav{width:100%;justify-content:space-between;gap:18px;font-size:13px}.guide-menu{right:-70px;width:min(310px,calc(100vw - 44px));top:43px}.hero{padding-top:28px;padding-bottom:30px}.hero-intro{margin-bottom:24px;font-size:10px;gap:10px;align-items:flex-start}.hero-grid{grid-template-columns:1fr;gap:15px}.hero h1{font-size:clamp(62px,14vw,88px);max-width:540px;margin-bottom:23px}.hero-copy{padding-bottom:5px}.hero-lead{max-width:470px;font-size:16px}.route-art{max-width:550px;width:100%;margin-inline:auto}.route-art svg{max-height:390px}.route-art figcaption{font-size:10px}.start-band{padding-block:26px}.start-steps{grid-template-columns:1fr;gap:17px}.start-step{align-items:center;font-size:14px}.start-inner h2{font-size:22px}.directory{padding-block:45px}.section-top{display:block}.section-top p{margin-top:17px;max-width:420px}.guide-grid{grid-template-columns:1fr}.guide-link{padding-block:23px;grid-template-columns:28px 1fr 22px}.guide-link h3{font-size:21px}.editorial-inner{grid-template-columns:1fr;gap:23px}.editorial-inner h2{font-size:30px}.editorial-note{padding-block:38px}.home-faq{padding-block:43px}.article-head{padding-top:25px;padding-bottom:28px}.breadcrumb{margin-bottom:28px}.article-head h1{font-size:46px}.article-deck{font-size:17px}.article-layout{grid-template-columns:1fr;padding-top:28px;padding-bottom:45px;gap:30px}.article-aside{border-bottom:1px solid var(--line);padding-bottom:20px;display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.article-aside .aside-label,.article-aside>p{grid-column:1/-1}.article-aside>p{margin-bottom:9px}.article-aside a{font-size:12px}.article-content h2{font-size:26px}.article-content p,.article-content li{font-size:15px}.callout{padding:20px}.contact-section{padding-top:35px;padding-bottom:45px}.contact-layout{grid-template-columns:1fr;gap:35px}.contact-deck{font-size:17px;margin-bottom:30px}.contact-details{padding:24px}.footer-top{grid-template-columns:1fr;gap:25px}.footer-bottom{flex-direction:column;gap:15px}.legal-links{gap:12px 20px}.related{align-items:flex-start;flex-direction:column;gap:7px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* === OPEN NAVIGATION SURFACE SAFETY === */
/* Position, shadows, borders and scroll treatment belong to the author.
   Only an OPEN mobile menu gets a mandatory opaque readable surface. */
header.site-header[data-pwp-nav-open] {
  background-color: var(--bg, #ffffff) !important;
  isolation: isolate;
}
[data-pwp-mobile-menu][data-pwp-menu-open] {
  background-color: var(--bg, #ffffff);
  color: var(--text, #0f172a);
  max-block-size: var(--pwp-nav-available-height, calc(100dvh - 6rem));
  overflow-y: auto;
  overscroll-behavior: contain;
}
.pwp-source-note {
  margin-block-start: 1rem;
  font-size: .875em;
  line-height: 1.5;
}
.pwp-source-note a { text-decoration: underline; text-underline-offset: .2em; }
