/* 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; }
  [data-cookie-fallback] { 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); }
  [data-cookie-fallback] .cookie-text { font:14px/1.5 system-ui,sans-serif; }
  [data-cookie-fallback] .cookie-actions { display:flex; flex-wrap:wrap; gap:.75rem; margin-block-start:.75rem; }
  [data-cookie-fallback] button { min-block-size:44px; padding:.6rem 1rem; border:1px solid var(--border); background:var(--surface); color:var(--text); }
  [data-cookie-fallback] [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{--bg:#f4f2e9;--text:#172f35;--surface:#fffef8;--text-muted:#52676a;--primary:#116b75;--primary-fg:#fff;--border:#b9c9c5;--sun:#e9b94d;--deep:#123d46;--font:"DM Sans",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);line-height:1.55}a{color:inherit;text-underline-offset:4px}a:hover{color:var(--primary)}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #db8c1e;outline-offset:4px}[hidden]{display:none!important}svg{max-width:100%;display:block}
.site-header{background:var(--surface);border-bottom:1px solid var(--border)}.header-inner{max-width:1440px;margin:auto;padding:18px 5vw;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{text-decoration:none;display:inline-flex;align-items:center;gap:12px;color:var(--deep);font-weight:800;font-size:1.18rem;letter-spacing:-.04em;line-height:1}.brand svg{width:42px;height:42px;flex:none}.brand span{max-width:110px}.nav-links{display:flex;align-items:center;gap:clamp(16px,2.5vw,40px);font-size:.95rem;font-weight:700}.nav-links a{text-decoration:none}.nav-links .nav-contact{border:1px solid var(--deep);padding:10px 17px}.nav-links .nav-contact:hover{background:var(--deep);color:white}
.wrap{width:min(1320px,90%);margin:auto}.hero{background:var(--deep);color:#f8f8ed;overflow:hidden}.hero-inner{min-height:570px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:4vw;padding-block:74px}.eyebrow{font-size:.79rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.hero .eyebrow{color:#a7d5cf}.hero h1,.page-title{font-family:"Barlow Condensed",Arial,sans-serif;font-weight:700;letter-spacing:-.025em;line-height:.93;margin:20px 0 24px}.hero h1{font-size:clamp(4.5rem,9vw,8.5rem);max-width:720px}.hero-copy{font-size:1.15rem;max-width:490px;color:#dcebe6}.button-link{display:inline-flex;align-items:center;gap:25px;background:var(--sun);color:#17353b;text-decoration:none;font-weight:800;padding:15px 20px;margin-top:18px}.button-link:hover{background:#f5cb68;color:#17353b}.hero-art{position:relative;min-width:0}.hero-art svg{width:100%;height:auto}.art-caption{font-size:.8rem;color:#c1d9d3;margin:12px 0 0;text-align:right}.section{padding:90px 0}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:32px}.section-heading h2,.section h2,.article h2{font-family:"Barlow Condensed",Arial,sans-serif;font-size:clamp(2.3rem,4vw,4rem);line-height:1;margin:0;letter-spacing:-.02em}.section-heading p{max-width:360px;color:var(--text-muted);margin:0}.topic-list{border-top:1px solid var(--border)}.topic-row{display:grid;grid-template-columns:70px 1fr 1fr 40px;gap:20px;align-items:center;padding:25px 0;border-bottom:1px solid var(--border);text-decoration:none}.topic-row:hover .topic-name{text-decoration:underline}.topic-index{font-weight:800;color:var(--primary);font-size:.85rem}.topic-name{font-family:"Barlow Condensed",Arial,sans-serif;font-weight:700;font-size:2rem;line-height:1}.topic-desc{color:var(--text-muted);font-size:.96rem}.arrow{font-size:1.6rem;text-align:right}.note-band{background:#dbe9e3;padding:50px 0}.note-inner{display:grid;grid-template-columns:1fr 2fr;gap:40px}.note-inner h2{font-family:"Barlow Condensed",Arial,sans-serif;font-size:2.6rem;line-height:1;margin:0}.note-inner p{margin:0;max-width:720px}.note-inner p+p{margin-top:12px}.text-link{font-weight:800;color:var(--primary)}
.page-head{background:#dbe9e3;padding:75px 0 65px}.back-link{font-weight:700;font-size:.9rem;color:var(--primary)}.page-title{font-size:clamp(4rem,8vw,7rem);max-width:900px}.page-intro{font-size:1.22rem;max-width:720px;margin:0;color:#36565a}.article-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(230px,1fr);gap:clamp(45px,8vw,120px);padding-block:70px 95px}.article{max-width:760px}.article h2{font-size:2.5rem;margin:45px 0 15px}.article h2:first-child{margin-top:0}.article p,.article li{font-size:1.05rem}.article ul,.article ol{padding-left:1.4em}.article li{padding-left:.25em;margin:.6em 0}.article a{color:var(--primary);font-weight:700}.aside{border-top:5px solid var(--primary);padding-top:18px;align-self:start}.aside h2{font-family:"Barlow Condensed",Arial,sans-serif;font-size:2rem;line-height:1;margin:0 0 15px}.aside p{color:var(--text-muted)}.aside a{color:var(--primary);font-weight:700}.stop-list{list-style:none;padding:0!important;border-left:3px solid var(--primary);margin-left:8px}.stop-list li{position:relative;padding:0 0 22px 25px;margin:0}.stop-list li:before{content:"";position:absolute;width:13px;height:13px;border-radius:50%;background:var(--surface);border:3px solid var(--primary);left:-8px;top:5px}.stop-list strong{display:block}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;padding:70px 0 100px}.contact-grid h2{font-family:"Barlow Condensed",Arial,sans-serif;font-size:2.5rem;margin:0 0 15px}.contact-grid p{max-width:550px}.contact-details{border-top:1px solid var(--border)}.contact-details div{padding:17px 0;border-bottom:1px solid var(--border)}.contact-details strong{display:block;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}
.footer{background:#102e35;color:#e5f0ea;padding:60px 0 30px}.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:45px}.footer .brand{color:white}.footer p{color:#c4d5cf}.footer h2{font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;margin:0 0 15px}.footer-links{display:grid;gap:8px}.footer button{border:0;background:none;color:inherit;text-decoration:underline;padding:0;text-align:left;width:fit-content}.footer-bottom{border-top:1px solid #527077;margin-top:45px;padding-top:20px;font-size:.85rem;color:#c4d5cf}.cookie{position:fixed;z-index:20;left:20px;bottom:20px;width:min(590px,calc(100% - 40px));background:#fffef8;border:1px solid var(--deep);box-shadow:0 12px 40px #102e3533;padding:23px}.cookie h2{font-size:1.25rem;margin:0 0 7px}.cookie p{margin:0 0 15px;font-size:.93rem}.cookie-actions{display:flex;flex-wrap:wrap;gap:10px}.cookie button{border:1px solid var(--deep);padding:10px 15px;background:var(--deep);color:white;font-weight:700}.cookie button+button{background:transparent;color:var(--deep)}.document{max-width:800px;margin:70px auto;padding:0 5%;}.document h1{font-family:"Barlow Condensed",Arial,sans-serif;font-size:3.5rem;line-height:1}.document h2{margin-top:2em}
@media(max-width:760px){.header-inner{align-items:flex-start;flex-direction:column;gap:16px}.nav-links{width:100%;gap:12px 20px;flex-wrap:wrap}.nav-links .nav-contact{padding:5px 10px}.hero-inner{grid-template-columns:1fr;gap:30px;padding-block:55px}.hero h1{font-size:clamp(4.1rem,17vw,6.5rem)}.hero-art{max-width:540px}.section{padding:65px 0}.section-heading,.note-inner{display:block}.section-heading p{margin-top:15px}.topic-row{grid-template-columns:36px 1fr 28px;gap:12px}.topic-desc{grid-column:2;grid-row:2}.arrow{grid-column:3;grid-row:1}.note-inner p{margin-top:20px}.article-layout,.contact-grid{grid-template-columns:1fr;gap:50px;padding-block:55px}.page-head{padding:55px 0}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}}
@media(max-width:420px){.nav-links{font-size:.86rem}.footer-grid{grid-template-columns:1fr}.footer-grid>div:first-child{grid-column:auto}.cookie{left:10px;bottom:10px;width:calc(100% - 20px)}}
@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; }
