/* Lemur Maritime — article page styles (base tokens come from tokens.css). */
:root { --read: 760px; } /* article reading-column width (article-specific token) */
/* ============================================================
   LEMUR MARITIME — Article page (shares homepage design system)
   ============================================================ */
/* Base reset, buttons, nav and footer come from main.css (now loaded on every page). */

/* reading progress */
.prog { position:fixed; top:0; left:0; height:3px; width:0; background:var(--brass); z-index:120; transition:width 0.1s linear; }

/* ---- article header ---- */
.art { padding-top:76px; }
.art-head { padding-top:clamp(40px,6vw,72px); padding-bottom:clamp(28px,3.5vw,44px); }
.art-head__inner { max-width:var(--read); margin-inline:auto; }
.crumb { display:flex; align-items:center; gap:9px; font-size:13px; font-weight:600; color:var(--ink-faint); }
.crumb a:hover { color:var(--brass); }
.crumb .cat { color:var(--brass); letter-spacing:0.1em; text-transform:uppercase; }
.crumb .sep { opacity:0.5; }
.art-title {
  font-family:var(--display); font-weight:700; letter-spacing:-0.02em; color:var(--navy);
  font-size:clamp(34px,5.2vw,58px); line-height:1.05; margin:20px 0 0; text-wrap:balance;
}
.art-meta { display:flex; flex-wrap:wrap; align-items:center; gap:10px 16px; margin-top:24px; color:var(--ink-soft); font-size:14.5px; }
.art-meta .dot { width:4px; height:4px; border-radius:50%; background:var(--line-2); }
.art-meta .by { display:flex; align-items:center; gap:10px; font-weight:600; color:var(--ink); }
.art-meta .by .avatar { width:34px; height:34px; border-radius:50%; background:var(--navy); color:#fff; display:flex; align-items:center; justify-content:center; font-family:var(--display); font-weight:700; font-size:13px; letter-spacing:0.04em; }

/* cover */
.art-cover { max-width:1120px; margin:clamp(28px,4vw,48px) auto 0; }
.art-cover figure { margin:0; border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow); }
.art-cover img { width:100%; height:auto; display:block; cursor:zoom-in; }
.art-cover figcaption { margin-top:12px; text-align:center; font-size:13px; color:var(--ink-faint); }

/* ---- body ---- */
.art-body { padding:clamp(40px,5vw,64px) 0 clamp(60px,7vw,96px); }
.col { max-width:var(--read); margin-inline:auto; }
.art-body p { margin:0 0 22px; font-size:18px; line-height:1.78; color:#3a4259; }
.art-body .lede { font-size:clamp(20px,2.1vw,23px); line-height:1.62; color:var(--navy); font-weight:500; margin-bottom:30px; }
.art-body h2 { font-family:var(--display); font-weight:700; letter-spacing:-0.015em; color:var(--navy); font-size:clamp(26px,3vw,34px); line-height:1.15; margin:54px 0 18px; }
.art-body h3 { font-family:var(--display); font-weight:600; color:var(--navy); font-size:clamp(21px,2.2vw,25px); line-height:1.22; margin:44px 0 14px; }
.art-body h4 { font-family:var(--display); font-weight:600; color:var(--brass); font-size:14px; letter-spacing:0.08em; text-transform:uppercase; margin:34px 0 10px; }
.art-body strong { color:var(--navy); font-weight:700; }
.art-body ul, .art-body ol { margin:0 0 24px; padding-left:1.3em; }
.art-body li { font-size:18px; line-height:1.78; color:#3a4259; margin:0 0 10px; }
.art-body li::marker { color:var(--brass); }
.art-body p a, .art-body li a { color:var(--brass); font-weight:600; text-decoration:underline; text-underline-offset:2px; text-decoration-thickness:1px; }
.art-body p a:hover, .art-body li a:hover { color:var(--brass-bright); }
.art-body h2:first-child, .art-body h3:first-child { margin-top:0; }

/* pull quote */
.pullquote { max-width:880px; margin:clamp(38px,4.5vw,56px) auto; padding:0 clamp(8px,3vw,40px); position:relative; }
.pullquote blockquote { margin:0; font-family:var(--display); font-weight:600; letter-spacing:-0.01em; color:var(--navy); font-size:clamp(22px,2.8vw,30px); line-height:1.32; text-align:center; }
.pullquote::before { content:"\201C"; display:block; font-family:var(--display); font-size:84px; line-height:0.7; color:var(--brass); text-align:center; margin-bottom:14px; }
.pullquote cite { display:block; margin-top:18px; font-family:var(--sans); font-style:normal; font-weight:600; font-size:14px; color:var(--ink-faint); text-align:center; letter-spacing:0.02em; }

/* callout */
.callout { max-width:var(--read); margin:clamp(36px,4vw,52px) auto; background:var(--card); border:1px solid var(--line); border-left:3px solid var(--brass); border-radius:var(--radius); padding:26px 28px; box-shadow:var(--shadow-sm); }
.callout .ce { font-size:12px; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--brass); }
.callout h4 { font-family:var(--display); font-weight:700; color:var(--navy); font-size:21px; margin:8px 0 14px; letter-spacing:0; text-transform:none; }
.callout .cgrid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.callout .citem strong { display:block; font-family:var(--display); font-size:17px; color:var(--navy); margin-bottom:4px; }
.callout .citem span { font-size:14.5px; color:var(--ink-soft); line-height:1.5; }
@media (max-width:560px){ .callout .cgrid { grid-template-columns:1fr; } }

/* figures / galleries (wider than text column) */
.bleed { max-width:1120px; margin-inline:auto; }
.figure { margin:clamp(34px,4vw,52px) auto; }
.figure img { width:100%; border-radius:var(--radius); border:1px solid var(--line); box-shadow:var(--shadow-sm); }
.figure.feature { border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow); }
.figure.feature img { aspect-ratio:16/9; object-fit:cover; border:0; border-radius:0; box-shadow:none; }
.figure figcaption { margin-top:12px; text-align:center; font-size:13px; color:var(--ink-faint); }
/* Feature-image caption: hidden on desktop/web, shown on mobile only (per client). */
.figure.feature figcaption { display:none; }
@media (max-width:768px){ .figure.feature figcaption { display:block; } }
.gallery { display:grid; gap:16px; margin:clamp(34px,4vw,52px) auto; }
.gallery--3 { grid-template-columns:repeat(3,1fr); }
.gallery--2 { grid-template-columns:repeat(2,1fr); }
.gallery img { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--radius-sm); border:1px solid var(--line); box-shadow:var(--shadow-sm); transition:transform 0.4s var(--ease); cursor:zoom-in; }
.gallery a { overflow:hidden; border-radius:var(--radius-sm); display:block; }
.gallery a:hover img { transform:scale(1.04); }
.gcap { max-width:1120px; margin:-30px auto 0; text-align:center; font-size:13px; color:var(--ink-faint); }
.figure.feature img, .carousel__slide img { cursor:zoom-in; }
/* mobile: galleries become a swipeable strip instead of an orphaned 2+1 grid */
@media (max-width:680px){
  .gallery {
    display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:12px;
    padding-bottom:4px; -ms-overflow-style:none; scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-x; overscroll-behavior-x:contain;
    /* full-bleed: span the whole viewport width, touch the edges */
    width:100vw; max-width:100vw;
    margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw);
    padding-left:var(--gutter); padding-right:var(--gutter);
    scroll-padding-left:var(--gutter); scroll-padding-right:var(--gutter);
  }
  .gallery::-webkit-scrollbar { display:none; }
  .gallery > * { flex:0 0 82%; scroll-snap-align:center; }
  .gcap { margin-top:14px; }
  /* breakout text blocks keep the same side gutter as body copy */
  .callout, .pullquote { margin-left:var(--gutter); margin-right:var(--gutter); }
}

/* tags + share */
.art-foot { max-width:var(--read); margin:clamp(40px,5vw,60px) auto 0; padding-top:30px; border-top:1px solid var(--line); display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:18px; }
.tagrow { display:flex; flex-wrap:wrap; gap:8px; }
.tag { font-size:12.5px; font-weight:600; color:var(--ink-soft); background:var(--paper-2); border:1px solid var(--line); padding:6px 13px; border-radius:999px; }
.share { display:flex; align-items:center; gap:10px; }
.share span { font-size:13px; color:var(--ink-faint); font-weight:600; }
.share a { width:38px; height:38px; border-radius:50%; border:1px solid var(--line-2); display:flex; align-items:center; justify-content:center; color:var(--ink-soft); transition:all 0.25s var(--ease); }
.share a:hover { border-color:var(--brass); background:var(--brass); color:#fff; }

/* CTA band */
.cta-band { background:var(--navy-900); color:var(--on-dark); border-radius:var(--radius); padding:clamp(34px,5vw,56px); display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:24px; position:relative; overflow:hidden; }
.cta-band::after { content:""; position:absolute; right:-60px; top:50%; transform:translateY(-50%); width:340px; height:340px; border-radius:50%; background:radial-gradient(circle, rgba(203,160,102,0.18), transparent 65%); pointer-events:none; }
.cta-band__txt { position:relative; z-index:1; max-width:560px; }
.cta-band .eyebrow { font-size:12px; font-weight:700; letter-spacing:0.16em; text-transform:uppercase; color:var(--brass-bright); }
.cta-band h3 { font-family:var(--display); font-weight:700; color:#fff; font-size:clamp(24px,3vw,32px); margin:10px 0 0; letter-spacing:-0.01em; }
.cta-band p { color:var(--on-dark-soft); margin:12px 0 0; font-size:15.5px; }
.cta-band__actions { position:relative; z-index:1; display:flex; gap:12px; flex-wrap:wrap; }

/* related */
.related { padding:clamp(56px,7vw,96px) 0; background:var(--paper-2); border-top:1px solid var(--line); }
.related h2 { font-family:var(--display); font-weight:700; color:var(--navy); font-size:clamp(24px,2.6vw,30px); letter-spacing:-0.01em; margin:0 0 6px; }
.related .sub { color:var(--ink-soft); margin:0 0 32px; font-size:15px; }
.rgrid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.rcard { background:var(--card); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; display:flex; flex-direction:column; transition:border-color 0.35s var(--ease), box-shadow 0.35s var(--ease), transform 0.35s var(--ease); }
.rcard:hover { border-color:var(--brass); box-shadow:var(--shadow); transform:translateY(-4px); }
.rcard__media { aspect-ratio:16/10; overflow:hidden; background:var(--navy-800); }
.rcard__media img { width:100%; height:100%; object-fit:cover; }
.rcard__body { padding:20px 20px 22px; display:flex; flex-direction:column; flex:1; }
.rcard__meta { display:flex; align-items:center; gap:9px; font-size:12px; color:var(--ink-faint); }
.rcard__cat { color:var(--brass); font-weight:700; letter-spacing:0.1em; text-transform:uppercase; }
.rcard h4 { font-family:var(--display); font-weight:600; color:var(--navy); font-size:18px; line-height:1.25; margin:11px 0 0; }
.rcard .rlink { margin-top:auto; padding-top:16px; font-size:13.5px; font-weight:600; color:var(--brass); display:inline-flex; align-items:center; gap:6px; }
@media (max-width:820px){ .rgrid { grid-template-columns:1fr; } }

/* ---- scroll reveals ---- */
.reveal { opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease-out), transform .8s var(--ease-out); transition-delay:var(--rd,0s); will-change:opacity, transform; }
.reveal[data-rev="left"]  { transform:translateX(-46px); }
.reveal[data-rev="right"] { transform:translateX(46px); }
.reveal[data-rev="scale"] { transform:scale(.93); }
.reveal.in { opacity:1; transform:none; }
/* staggered children (galleries, lists) */
.stagger > * { opacity:0; transform:translateY(30px) scale(.985); transition:opacity .7s var(--ease-out), transform .7s var(--ease-out); }
.stagger.in > * { opacity:1; transform:none; }
.stagger.in > *:nth-child(1){ transition-delay:.04s }
.stagger.in > *:nth-child(2){ transition-delay:.13s }
.stagger.in > *:nth-child(3){ transition-delay:.22s }
.stagger.in > *:nth-child(4){ transition-delay:.31s }
.stagger.in > *:nth-child(5){ transition-delay:.40s }
.stagger.in > *:nth-child(6){ transition-delay:.49s }
@media (prefers-reduced-motion:reduce){
  .reveal, .stagger > * { opacity:1 !important; transform:none !important; }
}
[data-parallax]{ will-change:transform; }

/* ---- lightbox ---- */
.lightbox { position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center; padding:clamp(16px,4vw,48px); background:rgba(16,20,34,0.86); backdrop-filter:blur(8px); opacity:0; pointer-events:none; transition:opacity .3s var(--ease); }
.lightbox.open { opacity:1; pointer-events:auto; }
.lightbox__stage { margin:0; max-width:1100px; max-height:88vh; display:flex; flex-direction:column; align-items:center; gap:14px; z-index:1; }
.lightbox__img { max-width:90vw; max-height:80vh; width:auto; height:auto; border-radius:var(--radius); box-shadow:0 24px 70px rgba(0,0,0,0.5); transform:scale(.96); transition:transform .35s var(--ease-out); background:var(--navy-900); }
.lightbox.open .lightbox__img { transform:scale(1); }
.lightbox__cap { color:var(--on-dark-soft); font-size:13.5px; text-align:center; max-width:60ch; }
.lightbox__count { position:absolute; top:20px; left:0; right:0; text-align:center; color:var(--on-dark-soft); font-size:13px; font-weight:600; letter-spacing:0.04em; }
.lb-btn { position:absolute; width:50px; height:50px; border-radius:50%; border:1px solid rgba(255,255,255,0.22); background:rgba(255,255,255,0.08); color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:background .25s var(--ease), border-color .25s var(--ease); z-index:2; }
.lb-btn:hover { background:var(--brass); border-color:var(--brass); }
.lightbox__close { top:18px; right:18px; }
.lightbox__nav { top:50%; transform:translateY(-50%); }
.lightbox__nav--prev { left:max(16px, 3vw); }
.lightbox__nav--next { right:max(16px, 3vw); }
@media (max-width:560px){
  .lightbox__nav { top:auto; bottom:22px; transform:none; }
  .lightbox__nav--prev { left:calc(50% - 64px); }
  .lightbox__nav--next { right:calc(50% - 64px); }
}

/* ---- photo carousel ---- */
.carousel { position:relative; max-width:1120px; margin:clamp(42px,5vw,68px) auto; }
.carousel__track { display:flex; gap:18px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; padding:4px; -ms-overflow-style:none; scrollbar-width:none; cursor:grab; touch-action:pan-x; overscroll-behavior-x:contain; }
.carousel__track::-webkit-scrollbar { display:none; }
.carousel__track.grabbing { cursor:grabbing; scroll-behavior:auto; }
.carousel__slide { flex:0 0 62%; scroll-snap-align:center; border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow-sm); background:var(--navy-800); position:relative; }
.carousel__slide img { width:100%; aspect-ratio:16/10; object-fit:cover; pointer-events:none; transition:transform .6s var(--ease); }
.carousel__slide:hover img { transform:scale(1.04); }
@media (max-width:760px){ .carousel__slide { flex-basis:84%; } }
.carousel__btn { position:absolute; top:50%; transform:translateY(-50%); width:50px; height:50px; border-radius:50%; background:rgba(255,255,255,0.94); border:1px solid var(--line); color:var(--navy); display:flex; align-items:center; justify-content:center; cursor:pointer; box-shadow:var(--shadow); transition:background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease), opacity .3s var(--ease); z-index:2; }
.carousel__btn:hover { background:var(--brass); color:#fff; border-color:var(--brass); }
.carousel__btn--prev { left:-12px; } .carousel__btn--next { right:-12px; }
.carousel__btn[disabled] { opacity:0; pointer-events:none; }
.carousel__dots { display:flex; justify-content:center; gap:8px; margin-top:22px; }
.carousel__dots button { width:8px; height:8px; border-radius:50%; border:0; background:var(--line-2); cursor:pointer; padding:0; transition:background .25s var(--ease), width .25s var(--ease); }
.carousel__dots button.on { background:var(--brass); width:24px; border-radius:999px; }
.carousel__cap { text-align:center; font-size:13px; color:var(--ink-faint); margin-top:14px; }
@media (max-width:680px){
  .carousel {
    width:100vw; max-width:100vw;
    margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw);
  }
  .carousel__track {
    padding-left:var(--gutter); padding-right:var(--gutter);
    scroll-padding-left:var(--gutter); scroll-padding-right:var(--gutter);
  }
  .carousel__dots, .carousel__cap { padding-inline:var(--gutter); }
}
@media (max-width:560px){ .carousel__btn { display:none; } }

/* ============================================================
   INSIGHTS ARCHIVE (hub listing) — reuses the homepage card +
   filter components (copied here so the archive doesn't need main.css).
   ============================================================ */
/* page header */
.archive-head { padding-top:clamp(40px,6vw,72px); padding-bottom:clamp(20px,2.5vw,32px); }
.archive-head__title { font-family:var(--display); font-weight:800; letter-spacing:-0.02em; color:var(--navy); line-height:1.05; font-size:clamp(34px,5.2vw,58px); margin:10px 0 0; }
.archive-head p { margin:16px 0 0; max-width:620px; font-size:clamp(17px,1.4vw,19px); line-height:1.55; color:var(--ink-soft); }
.archive-count { margin:14px 0 0; font-size:14.5px; color:var(--ink-soft); }

/* filter + card grid (ported from main.css; .ins-filter/.chip rendered as <a> here) */
.ins-filter { display:flex; gap:8px; flex-wrap:wrap; margin:6px 0 0; }
.chip { display:inline-block; font-weight:600; font-size:13.5px; padding:8px 16px; border-radius:999px; border:1.5px solid var(--line-2); background:var(--card); color:var(--ink-soft); transition:all 0.25s var(--ease); }
.chip:hover { border-color:var(--brass); color:var(--brass); }
.chip.active { background:var(--navy); border-color:var(--navy); color:#fff; }
.ins-grid { margin-top:40px; display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.ins-card { display:flex; flex-direction:column; text-align:left; background:var(--card); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; cursor:pointer; transition:border-color 0.35s var(--ease), box-shadow 0.35s var(--ease), transform 0.35s var(--ease); }
.ins-card:hover { border-color:var(--brass); box-shadow:var(--shadow); transform:translateY(-4px); }
.ins-card__media { aspect-ratio:16/10; position:relative; overflow:hidden; background:repeating-linear-gradient(135deg, rgba(48,56,88,0.05) 0 11px, rgba(48,56,88,0.09) 11px 22px), var(--navy-800); }
.ins-card__media img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.ins-card__body { padding:22px 22px 24px; display:flex; flex-direction:column; flex:1; }
.ins-card__meta { display:flex; align-items:center; gap:10px; font-size:12px; color:var(--ink-faint); }
.ins-card__cat { color:var(--brass); font-weight:700; letter-spacing:0.1em; text-transform:uppercase; }
.ins-card h4 { font-size:19px; margin-top:12px; line-height:1.22; }
.ins-card p { margin-top:10px; color:var(--ink-soft); font-size:14.5px; flex:1; }
.tlink { display:inline-flex; align-items:center; gap:8px; font-weight:600; font-size:14.5px; color:var(--navy); transition:gap 0.3s var(--ease), color 0.3s var(--ease); }
.tlink svg { transition:transform 0.3s var(--ease); }
.ins-card:hover .tlink { color:var(--brass); }
.ins-card:hover .tlink svg { transform:translateX(4px); }
.ins-card .tlink { margin-top:16px; }
.ins-empty { grid-column:1/-1; padding:48px 24px; text-align:center; color:var(--ink-faint); display:flex; flex-direction:column; align-items:center; gap:18px; }

/* numbered pagination */
.archive-pager { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:8px; margin-top:clamp(40px,5vw,56px); }
.archive-pager a, .archive-pager span { display:inline-flex; align-items:center; justify-content:center; min-width:40px; height:40px; padding:0 12px; border-radius:999px; border:1.5px solid var(--line-2); background:var(--card); color:var(--ink-soft); font-weight:600; font-size:14px; transition:all 0.25s var(--ease); }
.archive-pager a:hover { border-color:var(--brass); color:var(--brass); }
.archive-pager .current { background:var(--navy); border-color:var(--navy); color:#fff; }
.archive-pager .dots { border:0; background:transparent; }

/* accessibility: visible focus ring (the theme had none) + screen-reader-only utility */
.ins-card:focus-visible, .chip:focus-visible, .archive-pager a:focus-visible { outline:2px solid var(--brass); outline-offset:2px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }

@media (max-width:940px){ .ins-grid{ grid-template-columns:repeat(2,1fr) } }
@media (max-width:600px){ .ins-grid{ grid-template-columns:1fr } .chip{ padding:11px 18px } }

/* listing pages (Insights archive / category): breathing room above the footer */
.blog .art, .archive .art { padding-bottom:clamp(64px,8vw,104px); }

/* ---- Legal: two-column sticky sidebar (one shared template, page per policy) ---- */
.legal__grid { display:grid; grid-template-columns:248px 1fr; gap:clamp(32px,5vw,72px); align-items:start; padding-top:clamp(36px,5vw,64px); padding-bottom:clamp(60px,7vw,96px); }
.legal__content { padding:0; }
.legal__content .col { margin-inline:0; max-width:none; }
.legal__content .art-title { font-size:clamp(28px,4vw,44px); margin:0 0 28px; }
.legal-side { position:sticky; top:96px; }
.legal-side__title { font-family:var(--display); font-size:13px; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-faint); font-weight:700; margin:0 0 14px; }
.legal-side__nav ul { list-style:none; margin:0; padding:0; border-left:1px solid var(--line); }
.legal-side__link { display:block; padding:10px 0 10px 16px; margin-left:-1px; border-left:2px solid transparent; font-size:14.5px; font-weight:500; color:var(--ink-soft); transition:color .25s var(--ease), border-color .25s var(--ease); }
.legal-side__link:hover { color:var(--navy); }
.legal-side__link.is-current { color:var(--navy); font-weight:600; border-left-color:var(--brass); }
.legal-side__link:focus-visible { outline:2px solid var(--brass); outline-offset:2px; border-radius:2px; }
/* migrated policy HTML may contain long URLs / emails — never let them blow out the column */
.legal__content .art-body, .legal__content .col { overflow-wrap:break-word; word-break:break-word; min-width:0; }
.legal__content a { overflow-wrap:anywhere; }
@media (max-width:820px){
  .legal__grid { grid-template-columns:1fr; gap:18px; padding-top:clamp(16px,3vw,24px); padding-bottom:clamp(48px,7vw,72px); }
  .legal-side { position:static; top:auto; }
  .legal-side__title { margin-bottom:10px; }
  /* full-bleed chip strip so it isn't clipped by the container gutter */
  .legal-side__nav ul {
    display:flex; gap:8px; overflow-x:auto; border-left:0; margin:0; padding:0 0 4px;
    scrollbar-width:none; -webkit-overflow-scrolling:touch; overscroll-behavior-x:contain; touch-action:pan-x;
    width:100vw; max-width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw);
    padding-left:var(--gutter); padding-right:var(--gutter);
    scroll-padding-left:var(--gutter); scroll-padding-right:var(--gutter);
  }
  .legal-side__nav ul::-webkit-scrollbar { display:none; }
  .legal-side__link { flex:0 0 auto; padding:11px 18px; border:1.5px solid var(--line-2); border-radius:999px; white-space:nowrap; background:var(--card); color:var(--ink-soft); margin-left:0; border-left-width:1.5px; }
  .legal-side__link.is-current { border-color:var(--navy); background:var(--navy); color:#fff; }
  .legal-side__link:focus-visible { outline:2px solid var(--brass); outline-offset:2px; }
  .legal__content .col { max-width:100%; }
  .legal__content .art-title { margin-bottom:18px; }
}

/* ---------------- 404 — page not found ---------------- */
.nf { padding-top:76px; }
.nf-hero { text-align:center; padding:clamp(56px,9vw,120px) 0 clamp(64px,10vw,128px); }
.nf-code {
  display:block; font-family:var(--display); font-weight:800; line-height:1;
  font-size:clamp(96px,22vw,220px); letter-spacing:-0.04em;
  background:linear-gradient(180deg,var(--brass-bright),var(--brass));
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  margin-bottom:clamp(8px,2vw,18px);
}
.nf .art-title { margin:0 auto; max-width:18ch; }
.nf-sub { margin:18px auto 0; max-width:54ch; font-size:clamp(16px,1.4vw,18.5px); line-height:1.6; color:var(--ink-soft); }
.nf-actions { display:flex; flex-wrap:wrap; gap:14px; justify-content:center; margin-top:clamp(28px,4vw,40px); }
.nf-links { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:10px 22px; margin-top:clamp(32px,5vw,48px); padding-top:clamp(24px,3vw,32px); border-top:1px solid var(--line); font-size:15px; }
.nf-links span { color:var(--ink-faint); }
.nf-links a { color:var(--navy); font-weight:600; text-decoration:none; border-bottom:1.5px solid transparent; transition:border-color .2s var(--ease); }
.nf-links a:hover { border-bottom-color:var(--brass); }
.nf-links a:focus-visible { outline:2px solid var(--brass); outline-offset:3px; border-radius:2px; }

/* ============================================================
   CORPORATE GOVERNANCE & ETHICS — long policy page
   Reuses the Legal sticky-sidebar shell (.legal__grid/.legal-side/
   .legal-side__link) + the .art-body type scale from this file.
   ============================================================ */

/* hero / page header */
.gov-hero { padding-top:clamp(40px,6vw,72px); padding-bottom:clamp(22px,3vw,36px); border-bottom:1px solid var(--line); }
.gov-hero__inner { max-width:820px; }
.gov-hero .eyebrow { margin-bottom:16px; }
.gov-hero__title { font-family:var(--display); font-weight:700; letter-spacing:-0.02em; color:var(--navy); font-size:clamp(32px,5vw,54px); line-height:1.05; margin:0; text-wrap:balance; }
.gov-hero__lead { margin-top:18px; font-size:clamp(17px,1.5vw,20px); line-height:1.6; color:var(--ink-soft); max-width:60ch; }
.gov-hero__meta { margin-top:18px; display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; font-size:13.5px; font-weight:600; color:var(--ink-faint); }
.gov-hero__meta .dot { width:4px; height:4px; border-radius:50%; background:var(--line-2); }

/* section rhythm + anchor offset (clears the 76px fixed nav; mirrors the 96px sticky top) */
.gov-sec { scroll-margin-top:100px; }
.gov-sec > h2 { margin-top:0; }
.gov-sec + .gov-sec { margin-top:clamp(44px,5.5vw,72px); padding-top:clamp(40px,5vw,64px); border-top:1px solid var(--line); }

/* content column: full width for cards; cap prose to a readable measure */
.gov__content .col { max-width:none; margin-inline:0; }
.gov-prose { max-width:var(--read); }

/* standards-alignment caption under a policy H2 */
.gov-standard { max-width:var(--read); margin:-6px 0 22px; font-size:13.5px; line-height:1.5; font-weight:600; letter-spacing:0.01em; color:var(--brass); }

/* EBEN recommendation callout */
.gov-callout { max-width:var(--read); margin:6px 0 8px; background:var(--card); border:1px solid var(--line); border-left:3px solid var(--brass); border-radius:var(--radius); padding:22px 26px; box-shadow:var(--shadow-sm); }
.gov-callout p { margin:0; font-size:16.5px; line-height:1.6; color:var(--ink); font-style:italic; }
.gov-callout cite { display:block; margin-top:12px; font-style:normal; font-size:12px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-faint); }

/* ---- Core Values: card grid (was a Value/Meaning table) ---- */
.gov-values { display:grid; gap:16px; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); margin:6px 0 4px; }
.gov-value { display:flex; flex-direction:column; background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:22px 22px 24px; box-shadow:var(--shadow-sm); transition:border-color .3s var(--ease), box-shadow .3s var(--ease); }
.gov-value:hover { border-color:var(--brass); box-shadow:var(--shadow); }
.gov-value__n { font-family:var(--display); font-weight:700; font-size:13px; letter-spacing:0.08em; color:var(--brass); }
.gov-value__title { font-family:var(--display); font-weight:700; color:var(--navy); font-size:19px; letter-spacing:-0.01em; margin:8px 0 8px; }
.gov-value__meaning { font-size:15px; line-height:1.6; color:var(--ink-soft); }

/* ---- AI-alignment matrix: one card per Pillar (was a 4-col table) ---- */
.gov-matrix { display:grid; gap:16px; grid-template-columns:repeat(2, 1fr); margin:6px 0 4px; }
.gov-matrix__card { display:flex; flex-direction:column; gap:14px; background:var(--card); border:1px solid var(--line); border-left:3px solid var(--brass); border-radius:var(--radius); padding:22px 24px 24px; box-shadow:var(--shadow-sm); }
.gov-matrix__pillar { font-family:var(--display); font-weight:700; color:var(--navy); font-size:18px; letter-spacing:-0.01em; }
.gov-field { display:grid; gap:3px; }
.gov-field__label { font-size:11.5px; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:var(--brass); }
.gov-field__val { font-size:14.5px; line-height:1.55; color:var(--ink); }

/* ---- 12 principles: brass counter-numbered cards ---- */
.gov-principles { list-style:none; counter-reset:gp; margin:6px 0 4px; padding:0; display:grid; gap:14px; }
.gov-principles > li { counter-increment:gp; position:relative; padding:18px 22px 20px 66px; background:var(--card); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-sm); }
.gov-principles > li::before { content:counter(gp, decimal-leading-zero); position:absolute; left:22px; top:18px; font-family:var(--display); font-weight:700; font-size:20px; line-height:1; color:var(--brass); }
.gov-principles > li strong { display:block; font-family:var(--display); font-weight:700; color:var(--navy); font-size:17px; letter-spacing:-0.005em; margin-bottom:6px; }
.gov-principles > li p { margin:0; font-size:15.5px; line-height:1.62; color:var(--ink-soft); }

/* ---- commitment checklist (brass tick) ---- */
.gov-checklist { list-style:none; margin:6px 0 4px; padding:0; display:grid; gap:12px; }
.gov-checklist li { position:relative; padding-left:36px; font-size:16px; line-height:1.6; color:var(--ink-soft); }
.gov-checklist li strong { color:var(--navy); font-weight:700; }
.gov-checklist li::before { content:""; position:absolute; left:0; top:3px; width:22px; height:22px; border-radius:50%; background:var(--brass-tint); border:1px solid var(--brass-soft); }
.gov-checklist li::after { content:""; position:absolute; left:8px; top:7px; width:5px; height:9px; border:solid var(--brass); border-width:0 2px 2px 0; transform:rotate(45deg); }

/* closing contact line */
.gov-foot { margin-top:clamp(40px,5vw,64px); padding-top:28px; border-top:1px solid var(--line); font-size:14px; line-height:1.7; color:var(--ink-faint); }
.gov-foot a { color:var(--brass); }

/* ---- mobile ---- */
@media (max-width:720px){ .gov-matrix { grid-template-columns:1fr; } }
@media (max-width:820px){
  /* Sticky in-page TOC pinned under the fixed nav. The full-bleed pill strip
     (the ul) carries the opaque backing so page content never shows through at
     the viewport edges; the "On this page" title is dropped to keep the bar short. */
  .gov-side { position:sticky; top:76px; z-index:5; margin-block:0; }
  .gov-side .legal-side__title { display:none; }
  .gov-side .legal-side__nav ul { background:var(--paper); box-shadow:0 1px 0 var(--line); padding-top:9px; padding-bottom:9px; }
  .gov-hero { padding-bottom:14px; }
  /* Anchor jumps must clear the 76px nav AND the sticky TOC bar (~64px). */
  .gov-sec { scroll-margin-top:144px; }
}
@media (prefers-reduced-motion: reduce){ .gov-value { transition:none; } }
