/* 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:#f6f5ef;--text:#172f30;--surface:#fff;--text-muted:#526764;--primary:#175c59;--primary-fg:#fff;--border:#cbd6d0;--sand:#eadfc9;--coral:#bd5d43;--deep:#123d3d}
*{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:var(--coral)}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #d5704f;outline-offset:4px}
button{font:inherit}
[hidden]{display:none!important}
.site-header{background:var(--bg);border-bottom:1px solid var(--border)}
.header-inner{max-width:1440px;margin:auto;padding:22px 5%;display:flex;align-items:center;justify-content:space-between;gap:30px}
.brand{text-decoration:none;display:flex;align-items:center;gap:11px;font-weight:700;font-size:1.16rem;letter-spacing:-.04em;line-height:1.1}
.brand svg{width:35px;height:35px;flex:none}
.nav-links{display:flex;align-items:center;gap:30px;font-size:.94rem;font-weight:700}
.nav-links a{text-decoration:none}
.nav-links .contact-link{border:1px solid var(--primary);padding:9px 17px}
.page{min-height:45vh}
.hero{background:#e3ece7;overflow:hidden}
.hero-inner{max-width:1440px;margin:auto;display:grid;grid-template-columns:1fr 1fr;align-items:center;min-height:570px}
.hero-copy{padding:70px 8% 75px 10%;max-width:700px}
.eyebrow{font-size:.79rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--primary);margin:0 0 22px}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{line-height:1.12;letter-spacing:-.035em}
h1{font-family:"Manrope",sans-serif;font-size:clamp(2.8rem,5.2vw,5.4rem);font-weight:700;margin-bottom:24px}
.hero-copy p:not(.eyebrow){font-size:1.17rem;max-width:35rem;color:#3f5d59}
.button{display:inline-flex;align-items:center;justify-content:center;gap:18px;background:var(--primary);color:#fff;padding:14px 21px;text-decoration:none;font-weight:700;margin-top:15px}
.button:hover{background:var(--deep);color:#fff}
.hero-art{align-self:stretch;background:#c7dcd2;display:flex;align-items:end;justify-content:center;padding:40px 5% 0}
.hero-art svg{display:block;width:100%;max-width:640px;height:auto}
.wrap{width:min(1200px,90%);margin:auto}
.section{padding:88px 0}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:35px}
.section-heading h2,.callout h2{font-family:"Manrope",sans-serif;font-size:clamp(2rem,3.3vw,3rem);margin-bottom:0}
.section-heading p{max-width:380px;color:var(--text-muted);margin:0}
.topic-list{border-top:1px solid var(--border)}
.topic{display:grid;grid-template-columns:70px 1fr 1fr 35px;align-items:center;gap:24px;padding:24px 0;border-bottom:1px solid var(--border);text-decoration:none}
.topic:hover .topic-title{text-decoration:underline}
.topic-num{color:var(--coral);font-size:.85rem;font-weight:700}
.topic-title{font-family:"Manrope",sans-serif;font-size:1.3rem;font-weight:700;line-height:1.25}
.topic-desc{color:var(--text-muted);font-size:.95rem}
.arrow{font-size:1.4rem;color:var(--primary)}
.callout{background:var(--deep);color:#fff}
.callout-inner{display:grid;grid-template-columns:1fr 1fr;gap:50px;padding:65px 0}
.callout p{max-width:34rem;color:#d5e4de}
.callout a{color:#fff;font-weight:700}
.article-head{background:#e3ece7;padding:62px 0 70px}
.article-head .wrap{max-width:1200px}
.breadcrumb{display:inline-block;margin-bottom:35px;color:var(--primary);font-weight:700;font-size:.9rem;text-decoration:none}
.article-head h1{font-size:clamp(2.6rem,5vw,4.7rem);max-width:850px;margin-bottom:18px}
.article-head .intro{max-width:720px;font-size:1.2rem;color:#3f5d59;margin:0}
.article-layout{display:grid;grid-template-columns:minmax(0,720px) minmax(210px,300px);justify-content:space-between;gap:70px;padding:70px 0 100px}
.article-body{font-size:1.07rem}
.article-body h2{font-family:"Manrope",sans-serif;font-size:1.75rem;margin:45px 0 17px}
.article-body h2:first-child{margin-top:0}
.article-body h3{font-size:1.2rem;margin:30px 0 12px}
.article-body p,.article-body li{color:#354c49}
.article-body li{padding-left:5px;margin-bottom:10px}
.article-body a,.source a{color:var(--primary);font-weight:700}
.source{align-self:start;background:#e6eee9;border-top:4px solid var(--primary);padding:24px;font-size:.95rem}
.source h2{font-size:1.1rem;letter-spacing:0}
.source p{color:#415b55}
.note{border-left:4px solid var(--coral);padding:5px 0 5px 20px;margin:30px 0;color:#354c49}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;padding:70px 0 100px}
.contact-grid h2{font-size:1.6rem}
.contact-detail{padding:16px 0;border-bottom:1px solid var(--border)}
.contact-detail strong{display:block;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}
.site-footer{background:#102f30;color:#e8f0eb;padding:65px 0 28px}
.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:55px}
.site-footer .brand{margin-bottom:18px}
.site-footer p{color:#c4d5ce;max-width:340px}
.site-footer h2{font-size:1rem;letter-spacing:0}
.footer-links{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.footer-links a,.cookie-open{color:#e8f0eb;text-decoration:none}
.cookie-open{border:0;background:none;padding:0;cursor:pointer;text-align:left}
.footer-bottom{border-top:1px solid #49625c;margin-top:45px;padding-top:20px;color:#bdcec7;font-size:.88rem}
.cookie-banner{position:fixed;z-index:20;bottom:18px;left:18px;right:18px;max-width:680px;background:#fff;color:var(--text);border:1px solid var(--border);box-shadow:0 8px 35px #102f3030;padding:23px}
.cookie-banner h2{font-size:1.15rem;margin-bottom:8px}
.cookie-banner p{font-size:.93rem;margin-bottom:15px}
.cookie-actions{display:flex;flex-wrap:wrap;gap:10px}
.cookie-actions button{border:1px solid var(--primary);padding:10px 15px;cursor:pointer;font-weight:700;background:var(--primary);color:#fff}
.cookie-actions button+button{background:#fff;color:var(--primary)}
.document{width:min(760px,90%);margin:70px auto 100px}
.document h1{font-size:clamp(2.5rem,5vw,4rem)}
.document h2{font-size:1.5rem;margin-top:38px}
@media(max-width:700px){
.header-inner{align-items:flex-start;flex-direction:column;gap:18px;padding:18px 5%}
.nav-links{gap:13px 20px;flex-wrap:wrap;font-size:.9rem}
.nav-links .contact-link{padding:0;border:0}
.hero-inner{grid-template-columns:1fr}
.hero-copy{padding:55px 5% 45px}
.hero-art{padding:20px 7% 0;max-height:330px;overflow:hidden}
.hero-art svg{max-width:460px}
.section{padding:60px 0}
.section-heading{display:block}.section-heading p{margin-top:15px}
.topic{grid-template-columns:35px 1fr 24px;gap:12px;padding:20px 0}
.topic-desc{grid-column:2;grid-row:2}.arrow{grid-column:3;grid-row:1}
.callout-inner,.article-layout,.contact-grid,.footer-grid{grid-template-columns:1fr;gap:30px}
.article-head{padding:40px 0 50px}.article-layout,.contact-grid{padding:50px 0 70px}
.footer-grid{gap:30px}
}
@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; }
