/* pwp-authored-additional-v1-20261028: technical foundation only */
@layer pwp-runtime-foundation {
  :root {
    --bg:#EFF6FF; --text:#1E40AF;
    --surface:#FFFFFF; --text-muted:#475569;
    --primary:#1E3A8A; --primary-fg:#FFFFFF;
    --border:#BFDBFE;
  }
  *, *::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{--paper:#f5f3e9;--ink:#163d43;--muted:#536b6c;--orange:#bc492c;--water:#c6dcda;--line:#c8cfbf;--white:#fffef8;--heading:"Fraunces",Georgia,serif;--body:"DM Sans",Arial,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:5px}
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}
[hidden]{display:none!important}
svg{display:block;max-width:100%}
p,h1,h2,h3{margin-top:0}
h1,h2,h3{font-weight:500}
p{margin-bottom:1.2em}
.wrap{width:min(1440px,calc(100% - 112px));margin-inline:auto}
.skip-link{position:absolute;top:-90px;left:20px;background:var(--ink);color:white;padding:12px 20px;z-index:20}
.skip-link:focus{top:12px}
.site-header{border-bottom:1px solid var(--line);position:relative;z-index:10;background:var(--paper)}
.header-inner{min-height:104px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.wordmark{text-decoration:none;display:flex;align-items:center;gap:12px;font-weight:600;font-size:25px;letter-spacing:-1.2px}
.brand-mark{width:43px;height:36px;flex-shrink:0}
.header-nav{display:flex;align-items:center;gap:35px;font-size:14px}
.header-nav>a{text-decoration:none;padding-block:12px}
.nav-explore{position:relative}
.nav-explore summary{cursor:pointer;padding:12px 0}
.nav-explore summary::marker{color:var(--orange)}
.nav-panel{position:absolute;right:-80px;top:53px;width:330px;background:var(--white);border:1px solid var(--line);padding:14px 24px;box-shadow:0 12px 24px #163d4310}
.nav-panel a{display:block;padding:11px 0;text-decoration:none;border-bottom:1px solid var(--line);font-size:15px}
.nav-panel a:last-child{border:0}
.nav-panel a:hover,.header-nav>a:hover{color:var(--orange)}
.nav-contact{border-bottom:1px solid var(--ink)}
.kicker{font-size:12px;letter-spacing:.13em;text-transform:uppercase;font-weight:600;display:flex;align-items:center;gap:12px;margin-bottom:25px}
.kicker:before{content:"";width:25px;height:2px;background:var(--orange)}
.hero{position:relative;padding-top:51px;overflow:hidden}
.hero-top{display:flex;justify-content:space-between;align-items:start;gap:28px}
.place-note{font-size:12px;color:var(--muted);max-width:170px;text-align:right;line-height:1.5}
.hero-title{font-family:var(--heading);font-size:clamp(66px,7.8vw,116px);line-height:1.02;letter-spacing:-5px;margin:7px 0 0;position:relative;z-index:1;max-width:1000px;font-weight:400}
.hero-title em{color:var(--orange);font-weight:400}
.hero-bottom{display:grid;grid-template-columns: .78fr 1.65fr;gap:38px;align-items:end;margin-top:-15px}
.hero-copy{padding:56px 0 43px;max-width:340px}
.hero-copy p{font-size:17px;line-height:1.7}
.action{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;background:var(--ink);color:var(--white);padding:15px 21px;text-decoration:none;font-size:14px;min-height:53px}
.action span{font-size:23px;line-height:1;transition:transform .2s}
.action:hover span{transform:translateX(4px)}
.action:hover{background:#24535a}
.city-art{margin:0;min-width:0}
.city-art svg{width:100%;height:auto}
.city-art figcaption{text-align:right;font-size:11px;color:var(--muted);padding:10px 0 17px}
.intro-strip{background:var(--ink);color:var(--paper);padding:27px 0}
.intro-inner{display:flex;justify-content:space-between;gap:40px;align-items:center}
.intro-inner p{margin:0;max-width:700px;font-size:17px}
.intro-inner .strip-label{font-family:var(--heading);font-size:27px;min-width:200px}
.guide-section{padding-top:85px;padding-bottom:90px}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:36px}
.section-heading h2{font-family:var(--heading);font-size:48px;line-height:1.12;letter-spacing:-1.4px;margin:0}
.section-heading p{font-size:14px;color:var(--muted);max-width:260px;margin:0}
.guide-list{border-top:1px solid var(--ink)}
.guide-link{display:grid;grid-template-columns:55px 1fr 1fr 38px;gap:25px;align-items:center;padding:27px 0;border-bottom:1px solid var(--line);text-decoration:none}
.guide-symbol{width:44px;height:44px;color:var(--orange)}
.guide-link h3{font-family:var(--heading);font-size:28px;line-height:1.2;margin:0;letter-spacing:-.5px}
.guide-link p{font-size:14px;color:var(--muted);margin:0;max-width:350px}
.guide-arrow{font-size:29px;text-align:right;transition:transform .2s}
.guide-link:hover .guide-arrow{transform:translateX(5px)}
.guide-link:hover h3{color:var(--orange)}
.before-section{padding:50px 0 60px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 2fr;gap:70px}
.before-section h2{font-family:var(--heading);font-size:34px;line-height:1.2}
.before-section p{max-width:700px}
.small-link{font-size:14px;font-weight:500}
.article-header{padding:58px 0 44px;border-bottom:1px solid var(--line)}
.breadcrumb{font-size:13px;color:var(--muted);margin-bottom:45px;display:inline-block}
.article-title{font-family:var(--heading);font-size:clamp(48px,6.2vw,86px);line-height:1.06;letter-spacing:-2.8px;max-width:1000px;margin-bottom:28px;font-weight:400}
.article-deck{max-width:730px;font-size:21px;line-height:1.55;color:var(--muted);margin-bottom:24px}
.article-meta{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--orange)}
.article-layout{display:grid;grid-template-columns:230px minmax(0,760px);gap:85px;padding-top:53px;padding-bottom:80px;justify-content:space-between}
.article-aside{font-size:14px;line-height:1.7}
.article-aside strong{display:block;font-size:12px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:13px}
.article-aside p{color:var(--muted)}
.aside-line{height:3px;width:48px;background:var(--orange);margin-bottom:24px}
.article-copy{font-size:17px;line-height:1.8}
.article-copy h2{font-family:var(--heading);font-size:32px;line-height:1.2;letter-spacing:-.5px;margin:36px 0 16px}
.article-copy h2:first-child{margin-top:0}
.article-copy h3{font-size:19px;margin:28px 0 10px}
.article-copy ul,.article-copy ol{padding-left:23px}
.article-copy li{padding-left:5px;margin-bottom:12px}
.note{border-left:3px solid var(--orange);padding:19px 24px;background:#e8ece2;margin:30px 0;font-size:15px;line-height:1.75}
.note p:last-child{margin-bottom:0}
.next-guide{border-top:1px solid var(--line);padding-top:26px;margin-top:42px;display:flex;justify-content:space-between;align-items:center;gap:25px;font-size:16px}
.next-guide a{font-weight:500}
.source-note{font-size:14px;color:var(--muted);margin-top:25px}
.compare{width:100%;border-collapse:collapse;font-size:15px;margin:24px 0}
.compare th,.compare td{text-align:left;vertical-align:top;padding:15px 12px;border-bottom:1px solid var(--line)}
.compare th{background:#e5e9df;font-weight:600}
.compare th:first-child,.compare td:first-child{padding-left:16px;width:31%}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px;padding:50px 0 85px}
.contact-grid h2{font-family:var(--heading);font-size:30px}
.contact-line{padding:21px 0;border-bottom:1px solid var(--line)}
.contact-line dt{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:7px}
.contact-line dd{margin:0;font-size:18px;overflow-wrap:anywhere}
.contact-text{font-size:17px}
.contact-text h2{margin-top:30px}
.contact-text h2:first-child{margin-top:0}
.site-footer{background:var(--ink);color:var(--paper);padding:47px 0 25px}
.footer-top{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:55px;padding-bottom:39px}
.footer-brand .wordmark{font-size:28px;margin-bottom:14px}
.footer-brand p{font-size:14px;max-width:250px;color:#c5d4cf}
.footer-details{font-size:13px;line-height:1.85;overflow-wrap:anywhere}
.footer-details strong{font-size:14px;font-weight:500}
.footer-details p{margin-bottom:12px}
.footer-links{display:grid;grid-template-columns:1fr 1fr;align-content:start;gap:8px 20px;font-size:13px}
.footer-links a{text-decoration:none}
.footer-links a:hover{text-decoration:underline}
.footer-bottom{border-top:1px solid #ffffff30;padding-top:21px;display:flex;justify-content:space-between;gap:25px;font-size:11px;color:#c5d4cf}
@media(min-width:1500px){.hero-bottom{margin-top:0}.hero-title{max-width:1100px}}
@media(max-width:1050px){.wrap{width:calc(100% - 64px)}.hero-title{font-size:85px;letter-spacing:-3.5px}.hero-bottom{grid-template-columns:.8fr 1.2fr;margin-top:0;gap:15px}.hero-copy{padding-top:30px}.guide-link{grid-template-columns:45px 1fr 1fr 30px;gap:18px}.article-layout{gap:45px;grid-template-columns:190px minmax(0,1fr)}.footer-top{gap:25px}.contact-grid{gap:45px}}
@media(max-width:720px){.wrap{width:calc(100% - 40px)}.header-inner{min-height:90px;gap:12px;flex-wrap:wrap;padding-block:19px}.wordmark{font-size:23px}.brand-mark{width:35px}.header-nav{gap:23px;font-size:13px;width:100%;justify-content:space-between}.header-nav>a,.nav-explore summary{padding-block:5px}.nav-panel{right:auto;left:-80px;top:36px;width:min(320px,calc(100vw - 40px));padding-inline:18px}.hero{padding-top:32px}.hero-top .place-note{display:none}.kicker{font-size:10px;letter-spacing:.1em;margin-bottom:20px}.hero-title{font-size:clamp(56px,11.5vw,80px);letter-spacing:-2.9px;line-height:1.06}.hero-bottom{display:flex;flex-direction:column;align-items:stretch;gap:0}.hero-copy{max-width:450px;padding:26px 0 15px}.hero-copy p{font-size:16px}.city-art{margin-top:7px}.city-art figcaption{font-size:10px}.intro-inner{display:block}.intro-inner .strip-label{font-size:26px;margin-bottom:10px}.intro-inner p{font-size:15px}.guide-section{padding-top:48px;padding-bottom:48px}.section-heading{display:block;margin-bottom:26px}.section-heading h2{font-size:38px}.section-heading p{margin-top:15px;max-width:none}.guide-link{grid-template-columns:34px 1fr 26px;gap:14px;padding:23px 0}.guide-symbol{width:32px;height:36px}.guide-link h3{font-size:25px}.guide-link p{grid-column:2;grid-row:2;font-size:13px}.guide-arrow{grid-column:3;grid-row:1 / 3}.before-section{grid-template-columns:1fr;gap:5px;padding:35px 0}.before-section h2{font-size:30px;margin-bottom:16px}.before-section p{font-size:15px}.article-header{padding-top:30px;padding-bottom:30px}.breadcrumb{margin-bottom:32px}.article-title{font-size:49px;letter-spacing:-1.9px}.article-deck{font-size:18px}.article-layout{display:flex;flex-direction:column;gap:30px;padding:30px 0 50px}.article-aside{border-bottom:1px solid var(--line);padding-bottom:13px}.aside-line{display:none}.article-aside strong{margin-bottom:7px}.article-copy{font-size:16px}.article-copy h2{font-size:29px}.compare{font-size:13px}.compare th,.compare td{padding:12px 8px}.next-guide{align-items:start;flex-direction:column;gap:10px}.contact-grid{grid-template-columns:1fr;gap:35px;padding:30px 0 50px}.contact-line dd{font-size:16px}.footer-top{grid-template-columns:1fr;gap:28px}.footer-links{max-width:350px}.footer-bottom{flex-direction:column;gap:8px}.footer-brand p{max-width:350px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* === 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; }
