/* 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; }
  [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:#f3f0e7;--text:#173b35;--surface:#fffdf7;--text-muted:#526b62;--primary:#ba4d2d;--primary-fg:#fff;--border:#bbc7ba;--dark:#153d35;--sand:#e8dfc8;--yellow:#e4bd62}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:"DM Sans",sans-serif;line-height:1.6}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:4px}a:hover{color:var(--primary)}button{font:inherit}button,a,summary{touch-action:manipulation}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #d16a42;outline-offset:4px}[hidden]{display:none!important}.skip{position:absolute;left:1rem;top:-5rem;z-index:20;background:white;padding:.7rem}.skip:focus{top:1rem}
.site-header{background:var(--bg);border-bottom:1px solid var(--border)}.header-inner{max-width:1500px;margin:auto;padding:1.15rem 5%;display:flex;align-items:center;gap:2rem}.brand{text-decoration:none;font-family:"Space Grotesk",sans-serif;font-size:1.55rem;font-weight:700;letter-spacing:-.07em;white-space:nowrap}.brand span{color:var(--primary)}.nav-links{display:flex;align-items:center;gap:1.8rem;margin-left:auto;font-size:.92rem;font-weight:700}.nav-links a{text-decoration:none}.languages{display:flex;gap:.65rem;border-left:1px solid var(--border);padding-left:1.4rem;font-size:.8rem}.languages a{text-decoration:none}.languages [aria-current]{font-weight:800;text-decoration:underline}.wrap{width:min(1400px,90%);margin-inline:auto}.hero{background:var(--dark);color:#f9f4e7;overflow:hidden}.hero-inner{min-height:590px;display:grid;grid-template-columns:1fr 1.05fr;align-items:center}.hero-copy{padding:5rem 0;position:relative;z-index:1}.eyebrow{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;font-weight:800}.hero .eyebrow{color:#e9bf75}.hero h1,.page-title{font-family:"Space Grotesk",sans-serif;letter-spacing:-.055em;line-height:1.02;font-weight:700}.hero h1{font-size:clamp(3.5rem,7.4vw,7.2rem);margin:1.3rem 0;max-width:8ch}.hero-copy p{font-size:1.1rem;max-width:31rem;color:#e0e8dc}.button{display:inline-flex;align-items:center;gap:2rem;padding:.9rem 1.2rem;background:var(--primary);color:white;text-decoration:none;font-weight:700;margin-top:1.2rem}.button:hover{background:#943a22;color:white}.hero-art{align-self:stretch;min-width:0;display:flex;align-items:end}.hero-art svg{width:115%;height:auto;max-height:590px;display:block}.intro{display:grid;grid-template-columns:1fr 1.25fr;gap:3rem;padding:5rem 0;border-bottom:1px solid var(--border)}h2,h3{font-family:"Space Grotesk",sans-serif;line-height:1.13;letter-spacing:-.035em}h2{font-size:clamp(2rem,3.8vw,3.7rem);margin:0}h3{font-size:1.5rem}.intro p{font-size:1.25rem;max-width:43rem;margin:0}.section{padding:5rem 0}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2rem}.section-heading p{max-width:29rem;margin:0;color:var(--text-muted)}.material-list{border-top:1px solid var(--text)}.material{display:grid;grid-template-columns:4rem 1fr 1fr auto;gap:1.5rem;align-items:center;padding:1.6rem 0;border-bottom:1px solid var(--border);text-decoration:none}.material .num{font-family:"Space Grotesk",sans-serif;color:var(--primary);font-size:.9rem}.material h3{margin:0}.material p{margin:0;color:var(--text-muted)}.arrow{font-size:1.5rem}.road-note{background:var(--sand);padding:3rem;margin:0 0 5rem;display:grid;grid-template-columns:1fr 1.4fr;gap:3rem}.road-note p{max-width:43rem;margin-top:0}.text-link{font-weight:800;text-decoration:none;border-bottom:1px solid currentColor}.page-hero{background:var(--dark);color:#fff9ec;padding:5rem 0}.page-hero .eyebrow{color:#e9bf75}.page-title{font-size:clamp(3rem,6vw,5.8rem);max-width:13ch;margin:1rem 0}.page-lede{font-size:1.2rem;max-width:44rem;color:#dce7dc}.article-layout{display:grid;grid-template-columns:minmax(0,1fr) 18rem;gap:5rem;padding:4.5rem 0 6rem}.article{max-width:48rem;font-size:1.07rem}.article h2{font-size:2rem;margin:2.7rem 0 1rem}.article h2:first-child{margin-top:0}.article h3{font-size:1.25rem;margin:1.8rem 0 .5rem}.article p,.article li{color:#344e45}.article li{margin:.45rem 0}.article aside{background:var(--sand);padding:1.5rem;margin:2rem 0}.article aside p{margin-bottom:0}.side{border-top:3px solid var(--primary);align-self:start;padding-top:1rem}.side h2{font-size:1.2rem}.side a{display:block;padding:.8rem 0;border-bottom:1px solid var(--border);text-decoration:none;font-weight:700}.contact-block{font-size:1.1rem}.contact-block a{overflow-wrap:anywhere}.footer{background:#102f29;color:#e9eee2;padding:4rem 0 2rem}.footer-grid{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:3rem}.footer .brand{font-size:2rem}.footer p{color:#c4d1c4}.footer a{display:block;margin:.4rem 0}.footer h2{font-size:1rem;letter-spacing:0}.footer-bottom{border-top:1px solid #557168;margin-top:3rem;padding-top:1.2rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.85rem}.cookie-open{background:none;border:0;color:inherit;text-decoration:underline;cursor:pointer;padding:0}.cookie{position:fixed;z-index:30;bottom:1rem;right:1rem;width:min(34rem,calc(100% - 2rem));background:#fffdf7;color:var(--text);border:1px solid var(--border);box-shadow:0 8px 35px #102f2933;padding:1.4rem}.cookie h2{font-size:1.35rem}.cookie p{margin:.6rem 0 1rem}.cookie-actions{display:flex;gap:.7rem;flex-wrap:wrap}.cookie button{padding:.7rem 1rem;border:1px solid var(--dark);background:var(--dark);color:white;cursor:pointer}.cookie button+button{background:transparent;color:var(--dark)}.document{width:min(760px,90%);margin:4rem auto 6rem}.document h1{font:700 clamp(2.5rem,5vw,4rem)/1.05 "Space Grotesk",sans-serif}.document h2{font-size:1.6rem;margin-top:2rem}
@media(max-width:800px){.header-inner{flex-wrap:wrap;gap:.8rem 1.2rem}.nav-links{order:3;width:100%;margin:0;gap:1.2rem;flex-wrap:wrap}.languages{margin-left:auto}.hero-inner{grid-template-columns:1fr}.hero-copy{padding:4rem 0 1rem}.hero h1{font-size:clamp(3.5rem,12vw,5.5rem)}.hero-art{max-height:300px;overflow:hidden}.hero-art svg{width:100%}.intro,.road-note,.article-layout{grid-template-columns:1fr;gap:2rem}.material{grid-template-columns:2rem 1fr auto}.material p{grid-column:2/3}.material .arrow{grid-column:3;grid-row:1/3}.footer-grid{grid-template-columns:1fr 1fr}.section-heading{display:block}.section-heading p{margin-top:1rem}.article-layout{padding-top:3rem}.side{max-width:30rem}}
@media(max-width:480px){.header-inner{padding:1rem 5%}.nav-links{font-size:.85rem;gap:.9rem}.hero-art{max-height:220px}.intro,.section{padding:3.5rem 0}.road-note{padding:1.5rem;margin-bottom:3.5rem}.footer-grid{grid-template-columns:1fr;gap:2rem}.page-hero{padding:3.5rem 0}.material{gap:.7rem}.material h3{font-size:1.25rem}}
@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; }
