/* 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; }
  .cookie-banner { 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); }
  .cookie-text { font:14px/1.5 system-ui,sans-serif; }
  .cookie-actions { display:flex; flex-wrap:wrap; gap:.75rem; margin-block-start:.75rem; }
  .cookie-actions button { min-block-size:44px; padding:.6rem 1rem; border:1px solid var(--border); background:var(--surface); color:var(--text); }
  .cookie-actions [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 === */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap');

:root{
  --ink:#123047;
  --ink-soft:#486276;
  --blue:#0b86b8;
  --blue-deep:#07567b;
  --sky:#dff3fa;
  --mist:#f4fafc;
  --paper:#fff;
  --orange:#e97836;
  --line:#c9e0e8;
  --shadow:0 18px 45px rgba(10,64,88,.12);
  --radius:22px;
  --serif:Georgia,"Times New Roman",serif;
  --sans:"DM Sans",Arial,sans-serif;
  --display:"Space Grotesk",Arial,sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  background:var(--mist);
  font-family:var(--sans);
  line-height:1.65;
}
img{display:block;max-width:100%;height:auto}
a{color:var(--blue-deep);text-underline-offset:3px}
a:hover{color:var(--orange)}
button,a{touch-action:manipulation}
:focus-visible{outline:3px solid var(--orange);outline-offset:4px}
.site-shell{overflow:hidden}
.site-header{
  position:sticky;
  top:0;
  z-index:20;
  background:rgba(255,255,255,.97);
  border-bottom:1px solid var(--line);
}
.header-inner{
  width:min(1240px,calc(100% - 40px));
  margin:auto;
  min-height:76px;
  display:flex;
  align-items:center;
  gap:28px;
}
.brand{
  display:flex;
  align-items:center;
  gap:11px;
  color:var(--ink);
  text-decoration:none;
  min-width:max-content;
}
.brand-mark{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border:2px solid var(--blue);
  border-radius:50%;
  position:relative;
  color:var(--blue-deep);
  font:700 17px var(--display);
}
.brand-mark:after{
  content:"";
  position:absolute;
  width:8px;height:8px;
  border-radius:50%;
  background:var(--orange);
  right:-3px;top:1px;
}
.brand-name{
  font:700 18px/1 var(--display);
  letter-spacing:-.04em;
}
.brand-name span{color:var(--blue)}
.primary-nav{flex:1}
.primary-nav ul{
  list-style:none;
  padding:0;margin:0;
  display:flex;justify-content:flex-end;align-items:center;gap:19px;
}
.primary-nav a{
  text-decoration:none;
  color:var(--ink-soft);
  font-size:14px;
  font-weight:600;
}
.primary-nav a:hover{color:var(--blue)}
.language-nav{
  display:flex;gap:10px;
  border-left:1px solid var(--line);
  padding-left:20px;
}
.language-nav a{
  color:var(--ink-soft);
  font-size:13px;
  text-decoration:none;
}
.language-nav a:first-child{font-weight:700;color:var(--blue-deep)}
main{min-height:60vh}
.page[hidden]{display:none}
.hero{
  width:min(1240px,calc(100% - 40px));
  margin:0 auto;
  padding:68px 0 86px;
  display:grid;
  grid-template-columns:minmax(0, .82fr) minmax(420px,1.18fr);
  gap:64px;
  align-items:center;
}
.hero-copy{max-width:585px}
.kicker{
  display:flex;align-items:center;gap:11px;
  color:var(--orange);
  font-size:12px;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;
}
.kicker:before{content:"";width:32px;height:2px;background:var(--orange)}
h1,h2,h3{font-family:var(--display);line-height:1.08;letter-spacing:-.045em;margin:0 0 20px}
h1{font-size:clamp(42px,5.4vw,78px);max-width:730px}
h2{font-size:clamp(30px,4vw,50px)}
h3{font-size:23px;letter-spacing:-.025em}
.lead{font-size:19px;color:var(--ink-soft);max-width:570px}
.hero-actions{display:flex;gap:13px;flex-wrap:wrap;margin-top:30px}
.button{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:48px;padding:0 20px;
  border-radius:999px;
  text-decoration:none;font-weight:700;font-size:14px;
  border:1px solid var(--blue);
}
.button.primary{background:var(--blue);color:white}
.button.secondary{background:white;color:var(--blue-deep);border-color:var(--line)}
.hero-visual{position:relative}
.hero-visual img{
  width:100%;height:510px;object-fit:cover;
  border-radius:160px 24px 24px 24px;
  box-shadow:var(--shadow);
}
.route-note{
  position:absolute;left:-24px;bottom:25px;
  width:235px;background:var(--paper);
  border-left:4px solid var(--orange);
  padding:17px 18px;box-shadow:var(--shadow);
}
.route-note strong{display:block;font:600 16px var(--display)}
.route-note span{font-size:13px;color:var(--ink-soft)}
.section{
  padding:78px max(20px,calc((100% - 1240px)/2));
}
.section.tinted{background:var(--sky)}
.section-heading{max-width:680px;margin-bottom:38px}
.section-heading p{color:var(--ink-soft);font-size:17px}
.topic-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:20px;
}
.topic{
  background:var(--paper);border-top:4px solid var(--blue);
  padding:27px 25px 28px;border-radius:4px 4px var(--radius) var(--radius);
}
.topic:nth-child(2){border-top-color:var(--orange)}
.topic:nth-child(3){border-top-color:#3c9a76}
.topic p{color:var(--ink-soft);margin:0 0 20px}
.topic a{font-weight:700;text-decoration:none}
.editorial-band{
  width:min(1240px,calc(100% - 40px));margin:0 auto;
  padding:85px 0;display:grid;grid-template-columns:1fr 1.15fr;gap:70px;align-items:center;
}
.editorial-band img{height:390px;width:100%;object-fit:cover;border-radius:24px 120px 24px 24px}
.editorial-band p{color:var(--ink-soft)}
.list-lines{border-top:1px solid var(--line);margin-top:25px}
.list-lines a{
  display:flex;justify-content:space-between;gap:20px;
  padding:15px 0;border-bottom:1px solid var(--line);
  text-decoration:none;font-weight:600;
}
.list-lines a span{color:var(--orange)}
.page-intro{
  background:var(--sky);
  padding:70px max(20px,calc((100% - 1240px)/2)) 62px;
}
.page-intro h1{font-size:clamp(40px,5vw,68px);max-width:850px}
.page-intro p{font-size:19px;color:var(--ink-soft);max-width:720px}
.article-layout{
  width:min(1040px,calc(100% - 40px));margin:0 auto;
  padding:62px 0 90px;
  display:grid;grid-template-columns:1fr 280px;gap:60px;
}
.article-body{font-size:17px}
.article-body h2{font-size:32px;margin-top:42px}
.article-body h3{margin-top:30px}
.article-body p{max-width:710px}
.article-body ul{padding-left:23px}
.note{
  background:#fff;padding:22px;border-left:4px solid var(--orange);
  align-self:start;position:sticky;top:105px;
}
.note h3{font-size:19px;margin-bottom:11px}
.note p{font-size:14px;color:var(--ink-soft);margin:0}
.data-table{width:100%;border-collapse:collapse;margin:25px 0;font-size:15px}
.data-table th,.data-table td{padding:13px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.data-table th{color:var(--blue-deep);font-weight:700;background:#eef8fb}
.faq-list{max-width:820px}
details{border-top:1px solid var(--line);padding:18px 0}
details:last-child{border-bottom:1px solid var(--line)}
summary{cursor:pointer;font-weight:700;padding-right:25px;position:relative}
summary::marker{color:var(--orange)}
details p{color:var(--ink-soft);max-width:700px;margin:15px 0 0}
.contact-wrap{
  width:min(1100px,calc(100% - 40px));margin:0 auto;
  padding:65px 0 95px;display:grid;grid-template-columns:1fr 1fr;gap:50px;
}
.contact-panel{background:white;padding:34px;border-radius:var(--radius);box-shadow:var(--shadow)}
.contact-panel h2{font-size:32px}
.contact-item{padding:17px 0;border-bottom:1px solid var(--line)}
.contact-item strong{display:block;color:var(--blue-deep);font-size:13px;text-transform:uppercase;letter-spacing:.08em}
.contact-item a{font-size:17px}
.site-footer{background:#123047;color:#dcecf1;padding:55px max(20px,calc((100% - 1240px)/2)) 28px}
.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:40px}
.site-footer h2,.site-footer h3{color:#fff;font-size:19px;letter-spacing:-.02em}
.site-footer p{color:#b5d0d9;font-size:14px}
.footer-links{display:grid;gap:7px}
.footer-links a{color:#dcecf1;font-size:14px}
.footer-bottom{border-top:1px solid rgba(255,255,255,.18);margin-top:40px;padding-top:20px;color:#9dbbc5;font-size:13px}
@media (max-width:850px){
  .header-inner{width:calc(100% - 28px);gap:15px;align-items:flex-start;padding:17px 0;flex-wrap:wrap}
  .primary-nav{order:3;flex-basis:100%;overflow:auto}
  .primary-nav ul{justify-content:flex-start;gap:16px;flex-wrap:wrap}
  .primary-nav a{font-size:13px}
  .language-nav{margin-left:auto;padding-left:12px}
  .hero{grid-template-columns:1fr;padding-top:48px;gap:38px}
  .hero-visual img{height:390px}
  .topic-grid,.editorial-band,.contact-wrap,.footer-grid{grid-template-columns:1fr}
  .editorial-band{gap:35px}
  .article-layout{grid-template-columns:1fr;gap:28px}
  .note{position:static}
}
@media (max-width:520px){
  .header-inner{width:calc(100% - 24px)}
  .brand-name{font-size:16px}
  .language-nav{border-left:0;padding-left:0}
  .hero,.section,.page-intro,.site-footer{padding-left:14px;padding-right:14px}
  .hero{width:100%;padding-top:42px}
  h1{font-size:43px}
  .lead{font-size:17px}
  .hero-visual img{height:300px;border-radius:95px 18px 18px 18px}
  .route-note{left:12px;bottom:16px;width:205px}
  .section{padding-top:60px;padding-bottom:60px}
  .article-layout,.contact-wrap{width:calc(100% - 28px)}
  .page-intro{padding-top:48px;padding-bottom:44px}
  .page-intro h1{font-size:42px}
  .data-table{font-size:13px}
  .data-table th,.data-table td{padding:10px 7px}
}
@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; }
