/* pwp-authored-additional-v1-20261028: technical foundation only */
@layer pwp-runtime-foundation {
  :root {
    --bg:#FFF7ED; --text:#0F172A;
    --surface:#FFFFFF; --text-muted:#475569;
    --primary:#EA580C; --primary-fg:#000000;
    --border:#FCEAE1;
  }
  *, *::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:#163e40;--muted:#596966;--paper:#f8f7f2;--white:#fff;--line:#d7ded7;--accent:#a4482e;--pale:#e8eeE8;--heading:"Newsreader",Georgia,serif;--body:"Inter",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}a:hover{color:var(--accent)}button,summary,a{-webkit-tap-highlight-color:transparent}a:focus-visible,summary:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:5px}[hidden]{display:none!important}img{display:block;width:100%;height:auto}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--heading);font-weight:400;line-height:1.08}h1{font-size:clamp(46px,6.7vw,94px);letter-spacing:-.045em}h2{font-size:clamp(32px,3.6vw,48px);letter-spacing:-.025em}h3{font-size:27px}p+p{margin-top:17px}.skip{position:absolute;left:20px;top:-80px;z-index:20;background:white;padding:12px}.skip:focus{top:10px}.site-header{position:relative;z-index:10;background:var(--paper);border-bottom:1px solid var(--line)}.header-inner{max-width:1520px;margin:auto;min-height:100px;padding:20px 4.5%;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;flex-shrink:0}.brand svg{width:43px;height:43px}.brand-name{font-size:25px;font-family:var(--heading);line-height:1.1;letter-spacing:-.6px}.brand-name small{display:block;font:10px var(--body);letter-spacing:2.5px;margin-top:8px;text-transform:uppercase}.main-nav{display:flex;align-items:center;gap:30px;font-size:13px}.main-nav>a{text-decoration:none}.guide-menu{position:relative}.guide-menu summary{cursor:pointer;padding:12px 4px}.guide-links{position:absolute;top:49px;right:0;width:290px;padding:13px 22px;background:var(--paper);border:1px solid var(--line);box-shadow:0 18px 35px #163e4012}.guide-links a{display:block;text-decoration:none;padding:10px 0;border-bottom:1px solid var(--line)}.guide-links a:last-child{border:0}.languages{display:flex;gap:9px;font-size:11px;border-left:1px solid var(--line);padding-left:22px}.languages a{text-decoration:none}.languages a:first-child{font-weight:700}.hero{position:relative;min-height:640px;height:calc(100svh - 130px);max-height:870px;color:white;background:#396768;isolation:isolate;margin:18px 22px 0;overflow:hidden}.hero>img{position:absolute;inset:0;height:100%;object-fit:cover;z-index:-2}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#082c3010 20%,#092c30bb 100%);z-index:-1}.hero-content{position:absolute;bottom:62px;left:5%;right:5%;display:grid;grid-template-columns:1.3fr .7fr;align-items:end;gap:50px}.hero h1{max-width:750px;font-size:clamp(64px,8.2vw,122px);line-height:.98}.eyebrow{display:block;font-size:11px;letter-spacing:2px;text-transform:uppercase;font-weight:600;margin-bottom:22px}.hero .eyebrow{color:#fff}.hero-intro{max-width:365px;padding-bottom:7px}.hero-intro p{font-size:17px;line-height:1.7}.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;padding:13px 0;text-decoration:none;border-bottom:1px solid currentColor;font-size:13px;font-weight:600}.hero .text-link{margin-top:23px}.hero a:hover{color:#fff}.caption-bar{display:flex;justify-content:space-between;gap:20px;font-size:11px;color:var(--muted);padding:13px 6%}.section{padding:85px 6%;max-width:1520px;margin:auto}.section-head{display:grid;grid-template-columns:1fr 1fr;gap:50px;margin-bottom:42px;align-items:end}.section-head>p{max-width:480px;color:var(--muted);justify-self:end}.topic-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 32px}.topic{border-top:1px solid var(--ink);padding:26px 0 32px}.topic-label{font-size:11px;color:var(--accent);margin-bottom:15px;letter-spacing:1.2px}.topic h3 a{text-decoration:none}.topic p{color:var(--muted);font-size:14px;margin-top:14px;max-width:350px}.topic .text-link{margin-top:14px}.feature{display:grid;grid-template-columns:1fr 1fr;background:var(--pale);margin:0 22px}.feature figure{min-height:520px}.feature img{height:100%;max-height:650px;object-fit:cover}.feature-text{padding:70px 12%;align-self:center}.feature-text p{margin-top:25px;color:var(--muted)}.feature-text .text-link{margin-top:22px}.planning{display:grid;grid-template-columns:1fr 1fr;gap:80px}.planning p{margin-top:24px;color:var(--muted)}.planning details{border-top:1px solid var(--line);padding:20px 0}.planning details:last-child{border-bottom:1px solid var(--line)}.planning summary{cursor:pointer;padding-right:15px;font-size:15px;font-weight:600}.planning details p{font-size:14px;margin:15px 0 0;padding-right:20px}.page-top{max-width:1350px;padding:48px 6% 55px;margin:auto}.breadcrumb{font-size:12px;color:var(--muted);margin-bottom:42px}.breadcrumb a{text-decoration:none}.article-heading{max-width:960px}.article-heading h1{font-size:clamp(48px,6vw,80px)}.dek{font-size:19px;line-height:1.6;max-width:760px;color:var(--muted);margin-top:25px}.article-photo{margin:0 6%;height:440px;overflow:hidden}.article-photo img{height:100%;object-fit:cover}.article-caption{font-size:11px;color:var(--muted);margin:10px 6% 0}.article-body{display:grid;grid-template-columns:minmax(0,760px) minmax(230px,320px);gap:80px;max-width:1250px;padding:60px 5% 90px;margin:auto}.prose h2{font-size:34px;margin:38px 0 17px}.prose h2:first-child{margin-top:0}.prose h3{font-size:25px;margin:25px 0 12px}.prose p,.prose li{font-size:16px;color:#344e4c}.prose ul,.prose ol{padding-left:23px}.prose li{padding-left:5px;margin-bottom:14px}.side-note{border-top:2px solid var(--accent);padding-top:22px;align-self:start}.side-note h2{font:24px var(--heading);margin-bottom:16px}.side-note p{font-size:13px;color:var(--muted)}.side-note a{display:block;margin-top:17px;font-size:13px}.note{background:var(--pale);padding:25px;margin-top:30px;font-size:14px}.route-stop{display:grid;grid-template-columns:38px 1fr;gap:15px;border-top:1px solid var(--line);padding:25px 0}.route-stop span{font:italic 26px var(--heading);color:var(--accent)}.route-stop h2{margin:0 0 12px;font-size:30px}.route-stop p{font-size:15px}.reading-next{padding-top:25px;margin-top:35px;border-top:1px solid var(--line)}.reading-next a{font-size:14px}.contact-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:90px;max-width:1250px;margin:auto;padding:15px 6% 100px}.contact-layout h2{font-size:32px;margin-bottom:20px}.contact-details{border-top:1px solid var(--line);padding-top:25px}.contact-details p{margin-bottom:20px}.contact-details a{overflow-wrap:anywhere}.contact-note{margin-top:35px;color:var(--muted);font-size:14px}.footer{background:var(--ink);color:#eef2e9;padding:58px 6% 24px}.footer-top{max-width:1350px;margin:auto;display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:55px}.footer .brand-name{font-size:30px}.footer p{font-size:12px;color:#c9d6d0}.footer h2{font:14px var(--body);margin-bottom:18px;font-weight:600}.footer a:hover{color:#fff}.footer-links{display:grid;grid-template-columns:1fr 1fr;gap:10px 20px;font-size:12px}.footer-contact a{overflow-wrap:anywhere}.footer-bottom{max-width:1350px;margin:42px auto 0;padding-top:20px;border-top:1px solid #ffffff30;display:flex;justify-content:space-between;gap:20px;font-size:11px;color:#c9d6d0}
@media(min-width:1600px){.hero{max-width:1560px;margin-left:auto;margin-right:auto}}
@media(max-width:850px){.header-inner{padding:20px 5%;gap:18px;flex-wrap:wrap}.main-nav{gap:22px;flex:1;justify-content:flex-end}.languages{padding-left:14px}.hero{height:720px;min-height:0;margin:10px 10px 0}.hero-content{grid-template-columns:1fr;gap:28px;bottom:40px;left:7%;right:7%}.hero h1{font-size:83px}.hero-intro{max-width:440px}.hero-intro p{font-size:16px}.hero .text-link{margin-top:12px}.section{padding:60px 6%}.topic-grid{grid-template-columns:1fr 1fr}.feature{margin:0 10px}.feature-text{padding:40px 10%}.feature figure{min-height:440px}.planning{gap:35px}.article-body{gap:35px;grid-template-columns:minmax(0,1fr) 240px}.footer-top{grid-template-columns:1fr 1fr}.footer-contact{grid-column:1/-1}.contact-layout{gap:35px}}
@media(max-width:580px){.header-inner{padding:18px 5%;gap:18px}.brand-name{font-size:23px}.brand svg{width:35px;height:35px}.brand-name small{font-size:9px}.main-nav{width:100%;justify-content:space-between;gap:14px;font-size:12px}.languages{font-size:10px;gap:9px}.guide-links{left:0;right:auto;max-width:85vw}.hero{height:650px}.hero h1{font-size:66px}.hero-content{bottom:33px;gap:26px}.hero .eyebrow{font-size:10px;margin-bottom:18px}.hero-intro p{font-size:15px}.caption-bar{font-size:10px}.caption-bar span:last-child{display:none}.section-head{grid-template-columns:1fr;gap:22px;margin-bottom:32px}.section-head>p{justify-self:start;font-size:15px}.topic-grid{grid-template-columns:1fr}.topic{padding-bottom:26px}.topic p{max-width:none}.feature{grid-template-columns:1fr}.feature figure{min-height:0;height:360px}.feature-text{padding:37px 8% 45px}.planning{grid-template-columns:1fr;gap:30px}.page-top{padding-top:30px}.breadcrumb{margin-bottom:30px}.dek{font-size:17px}.article-photo{height:280px;margin:0 5%}.article-caption{margin-left:5%;margin-right:5%}.article-body{grid-template-columns:1fr;padding:40px 6% 65px;gap:40px}.prose h2{font-size:30px}.contact-layout{grid-template-columns:1fr;gap:40px;padding-bottom:65px}.footer-top{grid-template-columns:1fr;gap:35px}.footer-contact{grid-column:auto}.footer-bottom{flex-direction:column;gap:9px}.section{padding-top:50px;padding-bottom:50px}}
@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; }
