/* 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:#f5f3e9;--text:#1b3027;--surface:#fffef8;--text-muted:#53645a;--primary:#284c38;--primary-fg:#fffef8;--border:#cbd1c2;--accent:#d4ddaa}
*{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-underline-offset:.2em}a:hover{color:#597342}button{font:inherit}button,a,summary{outline-offset:4px} :focus-visible{outline:3px solid #a36b30}img{display:block;width:100%;object-fit:cover}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:"Newsreader",Georgia,serif;font-weight:400;line-height:1.04}h1{font-size:clamp(3.1rem,7vw,6.7rem);letter-spacing:-.045em}h2{font-size:clamp(2.3rem,4vw,4rem);letter-spacing:-.035em}h3{font-size:1.7rem}p{max-width:68ch}.page[hidden],[hidden]{display:none!important}.wrap{width:min(100% - 3rem,1440px);margin:auto}.site-header{background:var(--bg);border-bottom:1px solid var(--border);position:relative;z-index:5}.header-inner{display:flex;align-items:center;gap:2rem;min-height:90px}.brand{text-decoration:none;display:flex;align-items:center;gap:.75rem;margin-right:auto;font-family:"Newsreader",serif;font-size:1.55rem;line-height:.9;letter-spacing:-.04em}.brand svg{width:35px;height:35px;flex:none}.header-nav{display:flex;align-items:center;gap:1.8rem;font-size:.91rem}.header-nav a{text-decoration:none}.header-nav a:hover{text-decoration:underline}.language{display:flex;gap:.65rem;font-size:.8rem;border-left:1px solid var(--border);padding-left:1.5rem}.language a[aria-current]{font-weight:700;text-decoration:underline}.menu-toggle{display:none;background:none;border:1px solid var(--primary);color:var(--primary);padding:.55rem .8rem}.hero{display:grid;grid-template-columns:43% 57%;min-height:660px}.hero-copy{padding:clamp(3rem,7vw,7.5rem) clamp(1.5rem,5vw,5.5rem);display:flex;flex-direction:column;justify-content:center;background:#e4e8d5}.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-size:.72rem;font-weight:700;margin-bottom:1.8rem}.hero h1{margin-bottom:1.5rem}.hero-copy p:not(.eyebrow){font-size:1.1rem;max-width:35rem;color:#40584a}.hero-image{min-height:550px;position:relative}.hero-image img{height:100%;position:absolute;inset:0}.image-caption{position:absolute;bottom:0;left:0;background:var(--bg);padding:.7rem 1.1rem;font-size:.75rem;color:var(--text-muted)}.button-link{display:inline-flex;align-items:center;gap:2rem;align-self:flex-start;background:var(--primary);color:white;text-decoration:none;padding:.9rem 1.2rem;margin-top:1rem;font-size:.9rem}.button-link:hover{background:#42664a;color:white}.intro{padding:6rem 0;display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start}.intro h2{max-width:12ch}.intro-copy{font-size:1.12rem}.intro-copy p{max-width:52ch}.small-note{font-size:.85rem;color:var(--text-muted)}.topics{background:#dce3d1;padding:6rem 0}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2.5rem}.section-heading h2{margin:0}.section-heading p{margin:0;max-width:30rem}.topic-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem 1.5rem}.topic-card{border-top:1px solid #8ea18d;padding-top:1rem}.topic-card img{aspect-ratio:1.45;margin-bottom:1.25rem}.topic-card h3{margin-bottom:.65rem}.topic-card p{color:#465c4d;font-size:.95rem;min-height:3em}.text-link{font-weight:700;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:.2rem;font-size:.9rem}.practical-band{background:#284c38;color:#fffef8;padding:4rem 0}.practical-inner{display:grid;grid-template-columns:1fr 1.4fr;gap:4rem;align-items:center}.practical-band h2{margin:0}.practical-band p{max-width:55ch}.practical-band a{color:#fffef8}.article-head{padding:4rem 0 3rem;display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:end}.article-head h1{font-size:clamp(3.2rem,6vw,5.5rem);margin-bottom:0;max-width:13ch}.article-head p{font-size:1.15rem;color:var(--text-muted);margin:0;max-width:38rem}.article-image{height:clamp(300px,45vw,620px)}.article-body{display:grid;grid-template-columns:1fr 2fr;gap:4rem;padding:5rem 0 7rem}.article-aside{font-size:.9rem;color:var(--text-muted);border-top:1px solid var(--border);padding-top:1rem}.article-content{max-width:760px}.article-content h2{font-size:2.45rem;margin:2.6rem 0 1rem}.article-content h2:first-child{margin-top:0}.article-content h3{font-size:1.55rem;margin:2rem 0 .6rem}.article-content p,.article-content li{font-size:1.05rem}.article-content li{margin-bottom:.55rem}.article-content ul,.article-content ol{padding-left:1.3rem}.article-callout{border-left:3px solid #8da075;padding:1rem 1.5rem;margin:2.5rem 0;background:#e7ebdd}.article-callout p:last-child{margin:0}.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:5rem;padding:6rem 0 8rem}.contact-layout h1{font-size:clamp(3.3rem,6vw,5.5rem)}.contact-details{border-top:1px solid var(--border)}.contact-row{padding:1.4rem 0;border-bottom:1px solid var(--border)}.contact-row strong{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.4rem}.site-footer{background:#182e24;color:#f5f3e9;padding:4rem 0 2rem}.footer-top{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:3rem}.footer-brand{font-family:"Newsreader",serif;font-size:2.3rem;line-height:1}.site-footer p,.site-footer a,.site-footer button{font-size:.9rem}.site-footer a{color:inherit}.footer-links{display:flex;flex-direction:column;align-items:flex-start;gap:.45rem}.footer-bottom{border-top:1px solid #66776b;margin-top:3rem;padding-top:1.5rem;display:flex;justify-content:space-between;gap:1rem;font-size:.8rem}.cookie-open{background:none;border:0;color:inherit;text-decoration:underline;padding:0;cursor:pointer}.cookie-banner{position:fixed;z-index:20;bottom:1rem;left:1rem;right:1rem;background:#fffef8;border:1px solid #aab7a5;box-shadow:0 8px 30px #1b30272b;padding:1.4rem;display:flex;align-items:center;gap:2rem;max-width:1000px;margin:auto}.cookie-banner p{margin:0;font-size:.9rem;flex:1}.cookie-actions{display:flex;gap:.6rem;flex-wrap:wrap}.cookie-actions button{padding:.7rem 1rem;border:1px solid var(--primary);background:var(--primary);color:white;cursor:pointer}.cookie-actions button+button{background:transparent;color:var(--primary)}.legal-document{max-width:780px;margin:5rem auto;padding:0 1.5rem 5rem}.legal-document h1{font-size:3.5rem}.legal-document h2{font-size:2rem;margin-top:2rem}
@media(max-width:800px){.header-inner{flex-wrap:wrap;padding:1rem 0;gap:1rem}.menu-toggle{display:block}.header-nav{width:100%;flex-wrap:wrap;gap:1rem 1.4rem;padding:.7rem 0}.header-nav[hidden]{display:none}.language{padding-left:0;border:0}.hero{grid-template-columns:1fr}.hero-copy{padding:4rem 1.5rem}.hero-image{min-height:420px}.intro,.practical-inner,.article-head,.article-body,.contact-layout{grid-template-columns:1fr;gap:2rem}.intro,.topics{padding:4rem 0}.topic-grid{grid-template-columns:repeat(2,1fr)}.article-head{padding:3rem 0}.article-body{padding:3rem 0 5rem}.article-aside{order:2}.footer-top{grid-template-columns:1fr 1fr}.cookie-banner{align-items:flex-start;flex-direction:column;gap:1rem}}
@media(max-width:520px){.wrap{width:min(100% - 2rem,1440px)}.brand{font-size:1.35rem}.hero-image{min-height:320px}.section-heading{display:block}.section-heading h2{margin-bottom:1rem}.topic-grid{grid-template-columns:1fr}.topic-card p{min-height:0}.footer-top{grid-template-columns:1fr}.footer-bottom{flex-direction:column}.article-image{height:300px}.contact-layout{padding:4rem 0}.cookie-banner{bottom:.5rem;left:.5rem;right:.5rem}}
@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; }
