/* =====================================================================
   Blue Ink Trust
   Shared stylesheet
   Palette: ink-navy, brand blue, sky, wheat-gold on warm paper
   Type: Fraunces (display) + Source Sans 3 (body)
   Design system adapted from the Zaitoon house style.
   ===================================================================== */

:root{
  --ink:        #13233f;   /* deep ink-navy: dark surfaces, headings */
  --brand:      #22467e;   /* primary brand blue */
  --brand-2:    #3f6fb0;   /* lighter sky blue: accents, hovers */
  --gold:       #d9a441;   /* wheat-gold: CTAs, emphasis */
  --gold-deep:  #b9852b;
  --paper:      #faf8f3;   /* main light background */
  --paper-2:    #efeade;   /* subtle alt panel */
  --text:       #262a30;   /* body text on light */
  --muted:      #676a72;   /* secondary text */
  --line:       #e2ddce;   /* hairlines on light */
  --line-dark:  #2c3d5a;   /* hairlines on dark */

  --maxw: 1140px;
  --gap: clamp(1.25rem, 4vw, 2.5rem);
  --radius: 14px;
  --shadow: 0 18px 40px -24px rgba(19,35,63,.5);

  --f-display: "Fraunces", Georgia, "Times New Roman", serif;
  --f-body: "Source Sans 3", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }

body{
  margin:0;
  font-family:var(--f-body);
  font-size:clamp(1rem, .96rem + .2vw, 1.0625rem);
  line-height:1.65;
  color:var(--text);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
}

img{ max-width:100%; display:block; }
a{ color:var(--brand); text-underline-offset:3px; }
a:hover{ color:var(--brand-2); }

h1,h2,h3,h4{
  font-family:var(--f-display);
  font-weight:500;
  line-height:1.1;
  letter-spacing:-.01em;
  color:var(--ink);
  margin:0 0 .5em;
}
h1{ font-size:clamp(2.35rem, 1.6rem + 3.4vw, 4rem); }
h2{ font-size:clamp(1.8rem, 1.3rem + 1.8vw, 2.7rem); }
h3{ font-size:clamp(1.25rem, 1.1rem + .6vw, 1.5rem); }
h4{ font-size:1.05rem; }
p{ margin:0 0 1rem; }

/* ---------- layout helpers ---------- */
.container{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:clamp(1.15rem,4vw,2rem); }
.section{ padding-block:clamp(3.5rem, 6vw, 6rem); }
.section--tight{ padding-block:clamp(2.5rem,4vw,3.75rem); }
.section--paper2{ background:var(--paper-2); }
.section--ink{ background:var(--ink); color:#e6e9f0; }
.section--ink h2,.section--ink h3{ color:#fff; }
.center{ text-align:center; }
.measure{ max-width:64ch; }
.measure.center{ margin-inline:auto; }
.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; }

.eyebrow{
  font-size:.78rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--brand-2); margin:0 0 1rem; display:inline-flex; gap:.55rem; align-items:center;
}
.section--ink .eyebrow{ color:var(--gold); }
.eyebrow::before{ content:""; width:26px; height:1px; background:currentColor; opacity:.6; }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.5rem;
  font-family:var(--f-body); font-weight:600; font-size:1rem;
  padding:.72rem 1.4rem; border-radius:999px; border:1.5px solid transparent;
  cursor:pointer; text-decoration:none; transition:transform .15s ease, background .2s ease, color .2s ease, border-color .2s ease;
}
.btn:hover{ transform:translateY(-2px); }
.btn--gold{ background:var(--gold); color:var(--ink); }
.btn--gold:hover{ background:var(--gold-deep); color:var(--ink); }
.btn--ink{ background:var(--brand); color:#fff; }
.btn--ink:hover{ background:var(--brand-2); color:#fff; }
.btn--ghost{ background:transparent; color:var(--ink); border-color:var(--line); }
.btn--ghost:hover{ border-color:var(--brand); color:var(--brand); }
.section--ink .btn--ghost{ color:#fff; border-color:var(--line-dark); }
.section--ink .btn--ghost:hover{ border-color:var(--gold); color:var(--gold); }
.btn-row{ display:flex; flex-wrap:wrap; gap:.85rem; }

/* ---------- header ---------- */
.site-header{
  position:sticky; top:0; z-index:60;
  background:rgba(250,248,243,.9); backdrop-filter:saturate(140%) blur(10px);
  border-bottom:1px solid var(--line);
}
.nav{ display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:70px; }
.brand{ display:inline-flex; align-items:center; gap:.6rem; text-decoration:none; color:var(--ink); font-family:var(--f-display); font-weight:600; font-size:1.4rem; letter-spacing:-.01em; }
.brand:hover{ color:var(--ink); }
.brand small{ display:block; font-family:var(--f-body); font-weight:600; font-size:.62rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); }
.brand-logo{ height:46px; width:auto; display:block; flex:none; }
@media (max-width:520px){ .brand-logo{ height:40px; } .brand{ font-size:1.2rem; } }

.nav-links{ display:flex; align-items:center; gap:.35rem; list-style:none; margin:0; padding:0; }
.nav-links a{
  text-decoration:none; color:var(--text); font-weight:600; font-size:.97rem;
  padding:.5rem .8rem; border-radius:8px; transition:background .18s ease,color .18s ease;
}
.nav-links a:hover{ background:var(--paper-2); color:var(--ink); }
.nav-links a[aria-current="page"]{ color:var(--brand); }
.nav-links a[aria-current="page"]::after{ content:""; display:block; height:2px; background:var(--gold); border-radius:2px; margin-top:2px; }
.nav-cta{ margin-left:.4rem; }

.nav-toggle{ display:none; background:none; border:1.5px solid var(--line); border-radius:10px; width:44px; height:42px; cursor:pointer; align-items:center; justify-content:center; }
.nav-toggle span,.nav-toggle span::before,.nav-toggle span::after{
  content:""; display:block; width:20px; height:2px; background:var(--ink); border-radius:2px; position:relative; transition:transform .2s ease,opacity .2s ease;
}
.nav-toggle span::before{ position:absolute; top:-6px; }
.nav-toggle span::after{ position:absolute; top:6px; }
.nav-toggle[aria-expanded="true"] span{ background:transparent; }
.nav-toggle[aria-expanded="true"] span::before{ transform:translateY(6px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span::after{ transform:translateY(-6px) rotate(-45deg); }

@media (max-width:1024px){
  .nav-toggle{ display:inline-flex; }
  .nav-links{
    position:absolute; left:0; right:0; top:100%;
    flex-direction:column; align-items:stretch; gap:.15rem;
    background:var(--paper); border-bottom:1px solid var(--line);
    padding:.75rem clamp(1.15rem,4vw,2rem) 1.15rem;
    box-shadow:var(--shadow);
    display:none;
  }
  .nav-links.open{ display:flex; }
  .nav-links a{ padding:.7rem .6rem; }
  .nav-links a[aria-current="page"]::after{ display:none; }
  .nav-cta{ margin:.4rem 0 0; }
  .btn.nav-cta{ justify-content:center; }
}

/* nav dropdown (About › sub-pages) */
.nav-links .has-sub{ position:relative; }
.nav-links .has-sub > a::after{ content:"⌄"; font-size:.7em; margin-left:.35em; opacity:.65; }
.subnav{ list-style:none; margin:0; padding:0; }
@media (min-width:1025px){
  .subnav{ position:absolute; top:calc(100% + 2px); left:0; min-width:220px; background:var(--paper); border:1px solid var(--line); border-radius:10px; box-shadow:var(--shadow); padding:.35rem; display:none; z-index:70; }
  .has-sub:hover > .subnav, .has-sub:focus-within > .subnav{ display:block; }
  .subnav a{ display:block; padding:.5rem .7rem; border-radius:8px; font-weight:600; font-size:.95rem; color:var(--text); text-decoration:none; }
  .subnav a:hover{ background:var(--paper-2); color:var(--ink); }
}
@media (max-width:1024px){
  .nav-links .has-sub > a::after{ content:""; }
  .subnav a{ display:block; padding:.5rem .6rem .5rem 1.5rem; font-size:.92rem; font-weight:600; color:var(--muted); text-decoration:none; }
  .subnav a:hover{ color:var(--ink); }
}

/* ---------- hero ---------- */
.hero{ position:relative; background:var(--ink); color:#e8ebf1; overflow:hidden; }
.hero::after{
  content:""; position:absolute; inset:0;
  background:radial-gradient(1200px 500px at 80% -10%, rgba(63,111,176,.4), transparent 60%),
             radial-gradient(700px 400px at 0% 110%, rgba(217,164,65,.16), transparent 55%);
  pointer-events:none;
}
.hero h1{ color:#fff; }
.hero h1 em{ font-style:italic; color:var(--gold); }
.hero .lede{ font-size:clamp(1.05rem,1rem + .4vw,1.28rem); color:#d6dbe6; max-width:46ch; }
.hero .btn-row{ margin-top:1.6rem; }
.hero .btn--ghost{ color:#fff; border-color:var(--line-dark); }
.hero .btn--ghost:hover{ color:var(--gold); border-color:var(--gold); }

/* registration line (hero) */
.reg-line{ margin-top:1.35rem; font-size:.82rem; letter-spacing:.03em; color:#aeb7c8; }
.reg-line strong{ color:#e6e9f0; font-weight:600; }

/* feature split: copy left, full-bleed media right */
.feature-split{ display:grid; grid-template-columns:1fr 1fr; align-items:stretch; }
.feature-split .fs-copy{ align-self:center; padding-block:clamp(3rem,6vw,6rem); padding-right:clamp(1.5rem,4vw,3rem); padding-left:clamp(1.15rem,4vw,2rem); }
@media (min-width:1141px){ .feature-split .fs-copy{ padding-left:calc((100vw - var(--maxw))/2); } }
.feature-split .fs-media{ position:relative; min-height:100%; }
.feature-split .fs-media .slideshow{ position:absolute; inset:0; width:100%; height:100%; aspect-ratio:auto; border-radius:0; box-shadow:none; }
.feature-split .fs-media .slideshow .slide img{ width:100%; height:100%; object-fit:cover; }
.hero .feature-split{ position:relative; z-index:2; }
@media (max-width:820px){
  .feature-split{ grid-template-columns:1fr; }
  .feature-split .fs-media{ min-height:320px; }
  .feature-split .fs-media .slideshow{ position:relative; height:100%; }
  .feature-split .fs-copy{ padding:clamp(2.5rem,7vw,3.5rem) clamp(1.15rem,4vw,2rem) 0; }
}

/* ---------- pen-nib signature ---------- */
.nib-body{ fill:currentColor; }
.nib-cut{ fill:var(--paper); }
.nib-slit{ stroke:var(--paper); stroke-width:2.2; stroke-linecap:round; fill:none; }
.card .nib-cut{ fill:#fff; }
.card .nib-slit{ stroke:#fff; }

/* ---------- section divider ---------- */
.divider{ display:flex; align-items:center; justify-content:center; gap:1rem; color:var(--brand-2); padding-block:.5rem; }
.divider::before,.divider::after{ content:""; height:1px; width:min(120px,20vw); background:var(--line); }
.divider .nib-mini{ width:22px; height:28px; }

/* ---------- generic grid ---------- */
.grid{ display:grid; gap:clamp(1rem,2.4vw,1.6rem); }
.grid-2{ grid-template-columns:repeat(2,1fr); }
.grid-3{ grid-template-columns:repeat(3,1fr); }
.grid-4{ grid-template-columns:repeat(4,1fr); }
@media (max-width:900px){ .grid-4{ grid-template-columns:repeat(2,1fr); } .grid-3{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px){ .grid-2,.grid-3,.grid-4{ grid-template-columns:1fr; } }

/* two-column feature (text + media) */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.5rem,4vw,3.5rem); align-items:center; }
.split--reverse .split-media{ order:2; }
@media (max-width:820px){ .split{ grid-template-columns:1fr; } .split--reverse .split-media{ order:0; } }

/* ---------- cards ---------- */
.card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:1.6rem; transition:transform .18s ease, box-shadow .2s ease, border-color .2s ease;
}
.card:hover{ transform:translateY(-4px); box-shadow:var(--shadow); border-color:#d6cfbc; }
.card h3{ margin-top:.35rem; }
.card p:last-child{ margin-bottom:0; }
.card .nib-mark{ width:34px; height:42px; color:var(--brand); margin-bottom:.4rem; }

/* project card with media */
.pcard{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; display:flex; flex-direction:column; transition:transform .18s ease, box-shadow .2s ease; }
.pcard:hover{ transform:translateY(-4px); box-shadow:var(--shadow); }
.pcard .media{ border-radius:0; aspect-ratio:4/3; }
.pcard .pcard-body{ padding:1.4rem 1.5rem 1.6rem; display:flex; flex-direction:column; flex:1; }
.pcard .pcard-body p{ color:var(--text); }
.pcard .pcard-foot{ margin-top:auto; padding-top:1rem; }

/* clickable project card (opens modal) */
button.pcard{ font:inherit; text-align:left; cursor:pointer; }
.pcard.clickable:focus-visible{ outline:3px solid var(--gold); outline-offset:2px; }

.tag{ display:inline-block; font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:.28rem .6rem; border-radius:999px; }
.tag--education{ background:#dbe6f4; color:#274d80; }
.tag--access{ background:#e7efd8; color:#3f5320; }
.tag--wellbeing{ background:#fbeccb; color:#8a5f10; }
.tag--community{ background:#e9e0f1; color:#5a3d80; }
.tag--livelihood{ background:#dcefe9; color:#1f6a58; }

/* ---------- media images ---------- */
.media{ display:block; width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--radius); background:var(--paper-2); }
.media.ratio-wide{ aspect-ratio:16/9; }
.media.ratio-square{ aspect-ratio:1/1; }
.media.ratio-tall{ aspect-ratio:3/4; }
.media.ratio-4x3{ aspect-ratio:4/3; }

/* ---------- slideshow / roller banner ---------- */
.slideshow{ position:relative; width:100%; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); background:var(--paper-2); }
.slideshow .slide{ position:absolute; inset:0; opacity:0; transition:opacity .8s ease; }
.slideshow .slide.active{ opacity:1; }
.slideshow .slide img{ width:100%; height:100%; object-fit:cover; display:block; }
.slideshow.ratio-wide{ aspect-ratio:16/9; }
.slideshow.ratio-4x3{ aspect-ratio:4/3; }
.ss-dots{ position:absolute; left:0; right:0; bottom:12px; z-index:4; display:flex; gap:8px; justify-content:center; }
.ss-dot{ width:9px; height:9px; padding:0; border:none; border-radius:50%; background:rgba(255,255,255,.55); cursor:pointer; transition:background .2s ease, transform .2s ease; }
.ss-dot.active{ background:#fff; transform:scale(1.15); }
.ss-arrow{ position:absolute; top:50%; transform:translateY(-50%); z-index:4; width:40px; height:40px; border:none; border-radius:50%; background:rgba(15,24,44,.42); color:#fff; font-size:1.35rem; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .2s ease; }
.ss-arrow:hover{ background:rgba(15,24,44,.72); }
.ss-arrow.prev{ left:10px; } .ss-arrow.next{ right:10px; }
@media (prefers-reduced-motion:reduce){ .slideshow .slide{ transition:none; } }

/* ---------- list with ink-drop bullets ---------- */
.leaf-list{ list-style:none; margin:0; padding:0; display:grid; gap:.7rem; }
.leaf-list li{ position:relative; padding-left:1.9rem; }
.leaf-list li::before{
  content:""; position:absolute; left:.1rem; top:.35em; width:12px; height:16px;
  background:var(--brand);
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 16'><path d='M6 1 C 8 6 11 8.5 11 11.2 A 5 5 0 1 1 1 11.2 C 1 8.5 4 6 6 1 Z'/></svg>") center/contain no-repeat;
          mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 16'><path d='M6 1 C 8 6 11 8.5 11 11.2 A 5 5 0 1 1 1 11.2 C 1 8.5 4 6 6 1 Z'/></svg>") center/contain no-repeat;
}
.section--ink .leaf-list li::before{ background:var(--gold); }

/* ---------- CTA band ---------- */
.cta-band{ background:var(--brand); color:#fff; border-radius:var(--radius); padding:clamp(2rem,4vw,3.25rem); text-align:center; position:relative; overflow:hidden; }
.cta-band h2{ color:#fff; }
.cta-band p{ color:#e7ecf5; max-width:52ch; margin-inline:auto; }
.cta-band .btn-row{ justify-content:center; margin-top:1.5rem; }
.cta-band .btn--ghost{ color:#fff; border-color:rgba(255,255,255,.55); }
.cta-band .btn--ghost:hover{ color:#fff; border-color:#fff; background:rgba(255,255,255,.12); }

/* ---------- info / bank details ---------- */
.info-list{ list-style:none; margin:0; padding:0; display:grid; gap:1.2rem; }
.info-list .k{ font-size:.75rem; letter-spacing:.12em; text-transform:uppercase; color:var(--brand-2); font-weight:700; }
.info-list .v{ font-size:1.05rem; color:var(--ink); }

.bank-box{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:1.6rem 1.75rem; }
.bank-box h3{ margin-bottom:.35rem; }
.bank-box .bank-ref{ color:var(--muted); font-size:.9rem; margin-bottom:1rem; }
.bank-table{ display:grid; grid-template-columns:auto 1fr; gap:.45rem 1.1rem; font-size:.95rem; }
.bank-table dt{ font-weight:600; color:var(--ink); }
.bank-table dd{ margin:0; color:var(--text); }
@media (max-width:520px){ .bank-table{ grid-template-columns:1fr; gap:.1rem; } .bank-table dd{ margin-bottom:.55rem; } }

/* accessible <details> */
.details{ border:1px solid var(--line); border-radius:12px; background:#fff; padding:.25rem .25rem; margin:.5rem 0 1rem; }
.details > summary{ cursor:pointer; padding:.8rem 1rem; font-weight:600; color:var(--ink); list-style:none; }
.details > summary::-webkit-details-marker{ display:none; }
.details > summary::after{ content:"＋"; float:right; color:var(--brand-2); }
.details[open] > summary::after{ content:"－"; }
.details .details-body{ padding:0 1rem 1rem; }

/* ---------- contact form ---------- */
.form-grid{ display:grid; gap:1rem; }
.field label{ display:block; font-weight:600; font-size:.9rem; margin-bottom:.35rem; color:var(--ink); }
.field input,.field textarea{
  width:100%; font-family:var(--f-body); font-size:1rem; color:var(--text);
  padding:.75rem .9rem; border:1.5px solid var(--line); border-radius:10px; background:#fff;
}
.field input:focus,.field textarea:focus{ outline:none; border-color:var(--brand); box-shadow:0 0 0 3px rgba(63,111,176,.22); }
.field textarea{ min-height:150px; resize:vertical; }

/* ---------- map embed ---------- */
.map-embed{ position:relative; width:100%; aspect-ratio:16/10; border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); background:var(--paper-2); margin-top:1rem; }
.map-embed iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }

/* ---------- footer ---------- */
.site-footer{ background:var(--ink); color:#c8cede; }
.site-footer a{ color:#c8cede; text-decoration:none; }
.site-footer a:hover{ color:var(--gold); }
.footer-grid{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1.3fr; gap:2rem; padding-block:clamp(2.5rem,5vw,4rem); }
.footer-grid h4{ color:#fff; font-family:var(--f-body); font-size:.8rem; letter-spacing:.12em; text-transform:uppercase; margin-bottom:1rem; }
.footer-brand .brand{ color:#fff; }
.footer-brand .brand .nib-mini{ color:var(--gold); }
.footer-brand .nib-cut{ fill:var(--ink); }
.footer-brand .nib-slit{ stroke:var(--ink); }
.footer-brand p{ color:#9aa2b6; max-width:34ch; margin-top:1rem; font-size:.95rem; }
.footer-links{ list-style:none; margin:0; padding:0; display:grid; gap:.6rem; font-size:.95rem; }
.footer-bottom{ border-top:1px solid var(--line-dark); padding-block:1.25rem; display:flex; flex-wrap:wrap; gap:.75rem 1.5rem; justify-content:space-between; align-items:center; font-size:.85rem; color:#8b93a8; }
.footer-bottom .tagline{ font-family:var(--f-display); font-style:italic; color:var(--gold); }
@media (max-width:820px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .footer-grid{ grid-template-columns:1fr; } }

/* ---------- page hero (interior) ---------- */
.page-hero{ background:var(--ink); color:#e6e9f0; }
.page-hero .container{ padding-block:clamp(2.75rem,5vw,4.5rem); }
.page-hero h1{ color:#fff; margin-bottom:.4rem; }
.page-hero p{ color:#cfd5e2; max-width:56ch; }
.breadcrumb{ font-size:.82rem; letter-spacing:.05em; color:#9aa2b6; margin-bottom:1rem; }
.breadcrumb a{ color:#9aa2b6; text-decoration:none; }
.breadcrumb a:hover{ color:var(--gold); }

.page-hero-grid{ display:grid; grid-template-columns:1.25fr .75fr; gap:clamp(1.5rem,4vw,3rem); align-items:center; }
.page-hero-grid .breadcrumb{ margin-bottom:1rem; }
.page-hero-media .slideshow{ box-shadow:0 20px 40px -28px rgba(0,0,0,.6); }
@media (max-width:820px){ .page-hero-grid{ grid-template-columns:1fr; } .page-hero-media{ order:-1; } }

/* ---------- text banner ---------- */
.text-banner{ background:var(--paper-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.text-banner .container{ padding-block:1.25rem; }
.text-banner strong{ font-family:var(--f-display); font-weight:500; font-style:italic; font-size:clamp(1.05rem,1rem + .5vw,1.4rem); color:var(--ink); }

/* donation highlight strip */
.donate-strip{ background:var(--ink); color:#e6e9f0; }
.donate-strip .container{ padding-block:1rem; text-align:center; font-size:1.02rem; }
.donate-strip strong{ color:var(--gold); }
.donate-strip .sep{ color:var(--brand-2); margin:0 .5rem; }

/* ---------- rolling marquee (india) ---------- */
.rolling-viewport{ overflow:hidden; }
.rolling-track{ display:flex; width:max-content; animation:marquee 32s linear infinite; }
.rolling-content{ display:flex; align-items:center; gap:1.1rem; padding-right:1.1rem; white-space:nowrap; }
.rolling-content .sep{ color:var(--brand-2); }
.donate-strip .rolling-content span{ color:#dfe4ee; }
.donate-strip .rolling-content strong{ color:var(--gold); }
@keyframes marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce){ .rolling-track{ animation:none; } }

/* ---------- content block (project detail pages) ---------- */
.content-block{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.5rem,4vw,3rem); align-items:center; margin-block:clamp(1.5rem,3vw,2.5rem); }
.content-block .content-media .slideshow{ aspect-ratio:4/3; }
.content-block:nth-of-type(even) .content-media{ order:-1; }
@media (max-width:820px){ .content-block{ grid-template-columns:1fr; } .content-block:nth-of-type(even) .content-media{ order:0; } }
.soft-rule{ border:none; border-top:1px solid var(--line); margin-block:clamp(1.75rem,4vw,2.75rem); }

/* ---------- modal ---------- */
.modal{ position:fixed; inset:0; z-index:200; display:none; align-items:flex-start; justify-content:center; padding:clamp(1rem,4vw,3rem) 1rem; background:rgba(15,24,44,.55); backdrop-filter:blur(3px); overflow:auto; }
.modal.open{ display:flex; }
.modal-card{ position:relative; width:min(720px,100%); background:var(--paper); border-radius:16px; box-shadow:0 30px 70px -30px rgba(0,0,0,.6); padding:clamp(1.4rem,3vw,2.2rem); margin:auto; }
.modal-card h3{ padding-right:2.5rem; }
.modal-card h4{ margin-top:1.3rem; color:var(--brand); }
.modal-card h5{ margin:.9rem 0 .2rem; font-family:var(--f-body); font-size:.95rem; letter-spacing:.02em; color:var(--ink); }
.modal-card ul{ margin:.3rem 0 1rem; padding-left:1.2rem; }
.modal-card li{ margin-bottom:.3rem; }
.modal-close{ position:absolute; top:.75rem; right:.85rem; width:38px; height:38px; border:none; border-radius:50%; background:var(--paper-2); color:var(--ink); font-size:1.5rem; line-height:1; cursor:pointer; transition:background .18s ease; }
.modal-close:hover{ background:var(--line); }
.modal-actions{ display:flex; flex-wrap:wrap; gap:.75rem; margin-top:1.5rem; padding-top:1.25rem; border-top:1px solid var(--line); }
.modal-banner{ position:relative; width:100%; aspect-ratio:16/9; border-radius:12px; overflow:hidden; margin-bottom:1.25rem; background:var(--paper-2); }
.modal-banner .mini-slide{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .7s ease; }
.modal-banner .mini-slide.active{ opacity:1; }

/* ---------- reveal animation ---------- */
.reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease; }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  *{ scroll-behavior:auto !important; }
  .reveal{ opacity:1; transform:none; transition:none; }
  .btn:hover,.card:hover,.pcard:hover{ transform:none; }
}

/* focus visibility */
a:focus-visible,.btn:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{
  outline:3px solid var(--gold); outline-offset:2px; border-radius:6px;
}

.skip-link{ position:absolute; left:-999px; top:0; background:var(--gold); color:var(--ink); padding:.6rem 1rem; border-radius:0 0 8px 0; z-index:100; font-weight:700; }
.skip-link:focus{ left:0; }
