/* pwp-authored-additional-v1-20261028: technical foundation only */
@layer pwp-runtime-foundation {
  :root {
    --bg:#F8FAFC; --text:#1E40AF;
    --surface:#FFFFFF; --text-muted:#475569;
    --primary:#1E3A8A; --primary-fg:#FFFFFF;
    --border:#BFDBFE;
  }
  *, *::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:#f5f2e9;--text:#1c3029;--surface:#fffdf7;--text-muted:#5c6b61;--primary:#315b48;--primary-fg:#fff;--border:#cbd2c5;--accent:#d67848;--yellow:#e3bb69}
*{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:#a84d2d}button{font:inherit}button,a,summary{outline-offset:4px}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #d67848}img{display:block;max-width:100%}[hidden]{display:none!important}.wrap{width:min(1320px,calc(100% - 64px));margin:auto}.site-header{background:var(--bg);border-bottom:1px solid var(--border);position:relative;z-index:10}.header-inner{min-height:86px;display:flex;align-items:center;gap:40px;justify-content:space-between}.brand{text-decoration:none;display:flex;align-items:center;gap:12px;line-height:1}.brand-mark{width:40px;height:40px;flex:none}.brand-name{font-family:"Space Grotesk",sans-serif;font-size:19px;letter-spacing:-.06em;font-weight:700}.brand-name span{display:block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;margin-top:5px}.nav-links{display:flex;align-items:center;gap:30px;font-size:14px;font-weight:700}.nav-links>a,.nav-links summary{text-decoration:none;cursor:pointer}.nav-links details{position:relative}.nav-links summary{list-style:none}.nav-links summary::-webkit-details-marker{display:none}.nav-links summary:after{content:" +";color:var(--accent)}.nav-links details[open] summary:after{content:" −"}.dropdown{position:absolute;right:0;top:35px;width:260px;background:var(--surface);border:1px solid var(--border);padding:12px;box-shadow:0 12px 24px #1c30291a}.dropdown a{display:block;padding:9px 10px;text-decoration:none}.dropdown a:hover{background:#edf1e9}.nav-contact{border:1px solid var(--text);padding:10px 17px}.hero{display:grid;grid-template-columns:.9fr 1.1fr;min-height:590px}.hero-copy{padding:88px max(32px,calc((100vw - 1320px)/2)) 70px; padding-right:60px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#627567;margin:0 0 20px}.hero h1,.page-heading h1{font-family:"Space Grotesk",sans-serif;letter-spacing:-.065em;line-height:.99;font-weight:600;margin:0}.hero h1{font-size:clamp(54px,6vw,94px);max-width:700px}.hero h1 em{font-family:"Newsreader",serif;font-weight:400;color:#a95736}.lead{font-size:18px;line-height:1.65;max-width:570px;color:#4e6055;margin:26px 0}.button{display:inline-flex;align-items:center;justify-content:center;gap:25px;padding:15px 20px;background:var(--primary);color:white;text-decoration:none;font-weight:700;font-size:14px;border:1px solid var(--primary)}.button:hover{background:#203e31;color:white}.hero-image{position:relative;min-height:480px;background:#9aa998}.hero-image img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover}.image-caption{position:absolute;bottom:24px;left:24px;background:var(--surface);padding:12px 16px;font-size:12px;font-weight:700;letter-spacing:.03em}.intro-strip{background:#dce5d8;border-bottom:1px solid #c3d0c0}.strip-inner{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:24px 0}.strip-inner p{margin:0;max-width:850px;font-size:15px}.text-link{font-weight:700;white-space:nowrap;text-decoration-thickness:1px}.section{padding:100px 0}.section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:40px}.section h2,.article h2,.contact-layout h2{font-family:"Space Grotesk",sans-serif;letter-spacing:-.045em;line-height:1.1;font-size:clamp(34px,4vw,52px);margin:0}.section-head p{max-width:390px;color:var(--text-muted);margin:0}.guide-list{border-top:1px solid var(--border)}.guide-row{display:grid;grid-template-columns:65px 1fr 1fr 35px;align-items:center;gap:20px;border-bottom:1px solid var(--border);padding:25px 0;text-decoration:none}.guide-row .number{color:#9b6b53;font-size:13px}.guide-row h3{font-family:"Space Grotesk",sans-serif;font-size:25px;line-height:1.15;letter-spacing:-.035em;margin:0}.guide-row p{margin:0;color:var(--text-muted);font-size:15px}.arrow{font-size:25px;text-align:right}.landscape-band{display:grid;grid-template-columns:1fr 1fr;background:#263f34;color:#f8f5eb}.landscape-band img{height:100%;min-height:440px;width:100%;object-fit:cover}.landscape-copy{padding:75px clamp(32px,7vw,110px);align-self:center}.landscape-copy .eyebrow{color:#b9cdbb}.landscape-copy h2{font-family:"Space Grotesk",sans-serif;font-size:clamp(38px,4vw,58px);line-height:1.04;letter-spacing:-.05em;margin:0}.landscape-copy p{max-width:500px;color:#dce6dc;margin:25px 0}.landscape-copy a{color:white}.page-heading{background:#dce5d8;padding:75px 0 65px}.page-heading .back{display:inline-block;font-size:14px;font-weight:700;margin-bottom:36px}.page-heading h1{font-size:clamp(46px,6vw,78px);max-width:950px}.page-heading .lead{margin-bottom:0;max-width:720px}.article-layout{display:grid;grid-template-columns:minmax(0,760px) minmax(220px,1fr);gap:clamp(50px,8vw,130px);padding-top:70px;padding-bottom:100px}.article{font-size:17px}.article h2{font-size:32px;margin:48px 0 17px}.article h2:first-child{margin-top:0}.article h3{font-size:21px;margin:30px 0 8px}.article p,.article ul,.article ol{margin:0 0 18px}.article li{padding-left:5px;margin:8px 0}.article a,.source-box a{color:#315b48;font-weight:700}.notice{border-left:4px solid var(--accent);padding:20px 24px;background:#eee9dc;margin:30px 0}.notice p:last-child{margin-bottom:0}.source-box{align-self:start;background:var(--surface);border-top:4px solid var(--primary);padding:26px;position:sticky;top:24px}.source-box h2{font-family:"Space Grotesk",sans-serif;font-size:20px;margin:0 0 12px}.source-box p{font-size:14px;color:var(--text-muted);margin:0 0 18px}.source-box a{display:block;margin:12px 0;font-size:14px;overflow-wrap:anywhere}.steps{counter-reset:steps;list-style:none;padding:0}.steps li{counter-increment:steps;border-top:1px solid var(--border);padding:20px 0 20px 48px;position:relative}.steps li:before{content:counter(steps,decimal-leading-zero);position:absolute;left:0;color:#a95736;font-weight:700;font-size:13px}.steps strong{display:block;color:var(--text)}.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:60px;padding:80px 0 110px}.contact-layout p{max-width:560px}.contact-details{border-top:1px solid var(--border)}.contact-details div{padding:20px 0;border-bottom:1px solid var(--border)}.contact-details dt{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);font-weight:700}.contact-details dd{margin:5px 0 0;overflow-wrap:anywhere}.site-footer{background:#1c3029;color:#e7eee5;padding:65px 0 28px}.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:60px}.footer-grid h2{font-size:13px;text-transform:uppercase;letter-spacing:.1em;color:#aebfb1;margin:0 0 18px}.footer-grid p{font-size:14px;color:#c7d3c8;margin:15px 0}.footer-links{display:grid;gap:8px;font-size:14px}.footer-links a{width:fit-content}.footer-bottom{border-top:1px solid #52665a;margin-top:55px;padding-top:22px;display:flex;justify-content:space-between;gap:20px;font-size:13px;color:#c7d3c8}.cookie-open{background:none;border:0;color:inherit;text-decoration:underline;padding:0;cursor:pointer}.cookie-banner{position:fixed;z-index:30;bottom:20px;left:20px;width:min(620px,calc(100% - 40px));background:#fffdf7;border:1px solid #9cae9f;box-shadow:0 10px 35px #1c30292b;padding:24px}.cookie-banner h2{font-family:"Space Grotesk",sans-serif;font-size:22px;margin:0 0 8px}.cookie-banner p{font-size:14px;margin:0 0 18px}.cookie-actions{display:flex;flex-wrap:wrap;gap:10px}.cookie-actions button{padding:10px 15px;cursor:pointer;border:1px solid var(--primary);background:var(--primary);color:white;font-weight:700}.cookie-actions button+button{background:transparent;color:var(--primary)}.document-body{max-width:800px;margin:70px auto;padding:0 24px 80px}.document-body h1,.document-body h2{font-family:"Space Grotesk",sans-serif;line-height:1.1}.document-body h1{font-size:48px;letter-spacing:-.05em}.document-body h2{margin-top:40px}.document-body a{overflow-wrap:anywhere}
@media(max-width:800px){.wrap{width:min(100% - 36px,1320px)}.header-inner{padding:18px 0;align-items:flex-start;flex-direction:column;gap:18px}.nav-links{width:100%;gap:12px 22px;flex-wrap:wrap}.dropdown{left:0;right:auto;top:28px}.nav-contact{padding:5px 10px}.hero{grid-template-columns:1fr}.hero-copy{padding:65px 24px}.hero-image{min-height:350px}.strip-inner,.section-head{align-items:flex-start;flex-direction:column}.section{padding:65px 0}.guide-row{grid-template-columns:35px 1fr 30px;gap:12px}.guide-row p{grid-column:2;grid-row:2}.guide-row .arrow{grid-column:3;grid-row:1}.landscape-band{grid-template-columns:1fr}.landscape-band img{min-height:300px;max-height:400px}.landscape-copy{padding:55px 24px}.article-layout{grid-template-columns:1fr;gap:40px;padding-top:50px;padding-bottom:65px}.source-box{position:static}.contact-layout{grid-template-columns:1fr;padding:55px 0 70px}.footer-grid{grid-template-columns:1fr 1fr;gap:40px}.footer-grid>div:first-child{grid-column:1/-1}.footer-bottom{flex-direction:column}.page-heading{padding:50px 0}.page-heading .back{margin-bottom:25px}}
@media(max-width:420px){.nav-links{font-size:13px;gap:10px 16px}.hero h1{font-size:52px}.footer-grid{grid-template-columns:1fr}.footer-grid>div:first-child{grid-column:auto}}
@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; }
