
:root{
  --paper:#FCF9F1; --surface:#F4EAD3; --card:#FFFFFF; --ink:#211A33; --muted:#5E5670;
  --navy:#2A185C; --navy-deep:#1D1142; --navy-text:#2A185C; --on-navy:#FFFFFF; --red:#853147; --gold:#D4A547; --blue:#2E7BC4;
  --green:#3E6B3A; --amber:#9A6A12; --line:#E2D6BC; --focus:#2E7BC4; --link:#3B2A7A;
  --serif:"Alegreya", Georgia, "Times New Roman", serif;
  --sans:"Alegreya Sans", "Segoe UI", system-ui, -apple-system, sans-serif;
  --picado:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='58' viewBox='0 0 120 58'><path d='M0 5.5Q60 7.5 120 5.5' stroke='%23D4A547' stroke-width='1.2' fill='none'/><path fill='%23853147' fill-rule='evenodd' d='M7 6H53V44L50.12 50L47.25 44L44.38 50L41.50 44L38.62 50L35.75 44L32.88 50L30.00 44L27.12 50L24.25 44L21.38 50L18.50 44L15.62 50L12.75 44L9.88 50L7.00 44ZM26.4 17a3.6 3.6 0 1 0 7.2 0a3.6 3.6 0 1 0 -7.2 0ZM33.4 24a3.6 3.6 0 1 0 7.2 0a3.6 3.6 0 1 0 -7.2 0ZM26.4 31a3.6 3.6 0 1 0 7.2 0a3.6 3.6 0 1 0 -7.2 0ZM19.4 24a3.6 3.6 0 1 0 7.2 0a3.6 3.6 0 1 0 -7.2 0ZM27.8 24a2.2 2.2 0 1 0 4.4 0a2.2 2.2 0 1 0 -4.4 0ZM13 20L15.5 24L13 28L10.5 24ZM47 20L49.5 24L47 28L44.5 24ZM16.6 11a1.4 1.4 0 1 0 2.8 0a1.4 1.4 0 1 0 -2.8 0ZM24.6 11a1.4 1.4 0 1 0 2.8 0a1.4 1.4 0 1 0 -2.8 0ZM32.6 11a1.4 1.4 0 1 0 2.8 0a1.4 1.4 0 1 0 -2.8 0ZM40.6 11a1.4 1.4 0 1 0 2.8 0a1.4 1.4 0 1 0 -2.8 0Z'/><path fill='%23B8894A' fill-rule='evenodd' d='M67 6H113V44L110.12 50L107.25 44L104.38 50L101.50 44L98.62 50L95.75 44L92.88 50L90.00 44L87.12 50L84.25 44L81.38 50L78.50 44L75.62 50L72.75 44L69.88 50L67.00 44ZM90 12L99 24L90 36L81 24ZM90 18L94 24L90 30L86 24ZM71.8 16a2.2 2.2 0 1 0 4.4 0a2.2 2.2 0 1 0 -4.4 0ZM71.8 32a2.2 2.2 0 1 0 4.4 0a2.2 2.2 0 1 0 -4.4 0ZM103.8 16a2.2 2.2 0 1 0 4.4 0a2.2 2.2 0 1 0 -4.4 0ZM103.8 32a2.2 2.2 0 1 0 4.4 0a2.2 2.2 0 1 0 -4.4 0ZM76.6 41a1.4 1.4 0 1 0 2.8 0a1.4 1.4 0 1 0 -2.8 0ZM84.6 41a1.4 1.4 0 1 0 2.8 0a1.4 1.4 0 1 0 -2.8 0ZM92.6 41a1.4 1.4 0 1 0 2.8 0a1.4 1.4 0 1 0 -2.8 0ZM100.6 41a1.4 1.4 0 1 0 2.8 0a1.4 1.4 0 1 0 -2.8 0Z'/></svg>");
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#141024; --surface:#1E1834; --card:#1B1530; --ink:#EFE9DD; --muted:#ADA4C0;
    --navy:#3A2A78; --navy-deep:#0F0A22; --navy-text:#B9A8F0; --red:#B24A64; --gold:#D9AE55; --blue:#6AA8E6;
    --green:#7FB277; --amber:#E0B35A; --line:#342C4E; --link:#C7B8F5;
  }
}
:root[data-theme="dark"]{
  --paper:#141024; --surface:#1E1834; --card:#1B1530; --ink:#EFE9DD; --muted:#ADA4C0;
  --navy:#3A2A78; --navy-deep:#0F0A22; --navy-text:#B9A8F0; --red:#B24A64; --gold:#D9AE55; --blue:#6AA8E6;
  --green:#7FB277; --amber:#E0B35A; --line:#342C4E; --link:#C7B8F5;
}
*,*::before,*::after{box-sizing:inherit}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:18px;line-height:1.5;-webkit-font-smoothing:antialiased}
img{max-width:100%}
a{color:var(--link)}
h1,h2,h3{font-family:var(--serif);line-height:1.1;margin:0 0 .4em;font-weight:800}
h1{font-size:clamp(2.4rem,6vw,4.2rem);letter-spacing:-.01em}
h2{font-size:clamp(1.8rem,3.6vw,2.6rem)}
h3{font-size:1.35rem;font-weight:700}
p{margin:0 0 1em;max-width:68ch}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:4px}
.wrap{max-width:1160px;margin:0 auto;padding:0 20px}
.muted{color:var(--muted)}
.ph{border-bottom:2px dotted var(--amber);cursor:help}
.proto{background:var(--surface);border-bottom:1px solid var(--line);font-size:.92rem}
.proto .wrap{display:flex;gap:12px;justify-content:space-between;align-items:center;padding-top:8px;padding-bottom:8px;flex-wrap:wrap}
.linkbtn{background:none;border:0;color:inherit;text-decoration:underline;font:inherit;cursor:pointer;padding:0}

header.site{border-bottom:1px solid var(--line);background:var(--paper)}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:12px;padding-bottom:12px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}
.brand img{height:40px;width:auto}
.brand span{font-family:var(--serif);font-weight:700;font-size:1.05rem;line-height:1.15}
nav.main{display:flex;gap:4px;flex-wrap:wrap}
nav.main a{text-decoration:none;color:var(--ink);padding:8px 12px;border-radius:6px;font-weight:500}
nav.main a[aria-current="page"]{background:var(--surface)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-weight:700;padding:12px 22px;border-radius:999px;border:2px solid var(--navy);background:var(--navy);color:var(--on-navy);cursor:pointer;text-decoration:none;min-height:48px}
.btn.alt{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn.red{background:var(--red);border-color:var(--red);color:#fff}
.btn.sm{padding:6px 14px;min-height:36px;font-size:.92rem}
.btn[disabled]{opacity:.45;cursor:not-allowed}
a.btn{color:var(--on-navy)} a.btn.alt{color:var(--ink)}

/* Hero */
.hero{padding:56px 0 48px}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.hero .when{font-family:var(--serif);font-size:1.45rem;font-weight:700;color:var(--red);margin:0 0 .3em}
.hero .where{font-size:1.15rem;margin-bottom:28px}
.hero .ctas{display:flex;gap:12px;flex-wrap:wrap}
.field{background:var(--navy);color:#fff;border-radius:18px;padding:26px 26px 20px}
:root .field{background:var(--navy-deep)}
.field h2{font-size:1.5rem;color:#fff;margin-bottom:.15em}
.field .count{margin:0 0 16px;color:#D6CCEF}
.field .count b{color:#fff;font-size:1.25rem}
.board{display:grid;grid-template-columns:repeat(6,1fr);gap:12px 10px}
.group{display:grid;grid-template-columns:1fr 1fr;gap:4px;justify-items:center;padding:6px;border-radius:8px;background:rgba(255,255,255,.05)}
.dot{width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.4)}
.dot.s{background:#D0708A;border-color:#D0708A}
.dot.t{background:#FFFFFF;border-color:#FFFFFF}
.dot.i{background:#6FB7F0;border-color:#6FB7F0}
.legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:16px;font-size:.9rem;color:#D6CCEF}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend .dot{width:12px;height:12px}

section.block{padding:56px 0;border-top:1px solid var(--line)}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px 32px;margin:0}
.facts dt{font-weight:700;color:var(--muted);font-size:.95rem}
.facts dd{margin:2px 0 0;font-family:var(--serif);font-size:1.25rem;font-weight:700}
.mission{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.mission blockquote{margin:0;font-family:var(--serif);font-size:1.5rem;line-height:1.35;border-left:4px solid var(--red);padding-left:20px}
.photo-ph{aspect-ratio:4/3;border:2px dashed var(--line);border-radius:12px;display:grid;place-items:center;color:var(--muted);text-align:center;padding:20px;background:var(--surface)}

/* Sponsors */
.presenting{display:grid;grid-template-columns:1.2fr 1fr;gap:32px;background:var(--surface);border-radius:18px;padding:32px;margin-bottom:28px;border-top:6px solid var(--red)}
.price{font-family:var(--serif);font-size:2.2rem;font-weight:800;line-height:1}
.tiers{border-top:2px solid var(--ink)}
.tier{display:grid;grid-template-columns:200px 110px 1fr 170px;gap:20px;padding:22px 0;border-bottom:1px solid var(--line);align-items:start}
.tier .price{font-size:1.5rem}
.tier ul,.presenting ul{margin:0;padding-left:1.1em}
.tier li,.presenting li{margin-bottom:2px}
.avail{font-size:.92rem;color:var(--muted);margin-top:6px}
.avail.out{color:var(--red);font-weight:700}
.wall{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}
.wall div{border:1px solid var(--line);border-radius:10px;padding:14px 18px;font-family:var(--serif);font-weight:700;background:var(--card)}
.wall small{display:block;font-family:var(--sans);font-weight:500;color:var(--muted)}

details{border-bottom:1px solid var(--line);padding:14px 0}
details summary{font-weight:700;cursor:pointer;font-size:1.1rem}
details p{margin:10px 0 0}
.contacts{display:flex;gap:40px;flex-wrap:wrap}
.contacts a{font-family:var(--serif);font-size:1.4rem;font-weight:700;text-decoration:none}
footer{padding:32px 0 48px;border-top:1px solid var(--line);color:var(--muted);font-size:.95rem}

/* Register */
.reg{padding:40px 0 64px;display:grid;grid-template-columns:1fr 340px;gap:40px;align-items:start}
.steps{display:flex;gap:8px;list-style:none;padding:0;margin:0 0 28px;flex-wrap:wrap}
.steps li{padding:6px 14px;border-radius:999px;background:var(--surface);color:var(--muted);font-weight:500;font-size:.95rem}
.steps li.on{background:var(--navy);color:#fff}
.choices{display:grid;gap:12px}
.choice{display:flex;gap:14px;align-items:flex-start;border:2px solid var(--line);border-radius:12px;padding:16px 18px;cursor:pointer;background:var(--card)}
.choice:has(input:checked){border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy)}
.choice input{margin-top:6px;width:20px;height:20px;accent-color:var(--navy)}
.choice b{font-size:1.1rem}
.choice .p{margin-left:auto;font-family:var(--serif);font-weight:800;font-size:1.25rem;white-space:nowrap}
.choice.disabled{opacity:.5;cursor:not-allowed}
label.f{display:block;font-weight:700;margin:16px 0 6px}
input[type=text],input[type=email],input[type=tel],input[type=number],select{font:inherit;width:100%;padding:12px 14px;border:2px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink)}
input:focus,select:focus{border-color:var(--navy);outline:none}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.hint{font-size:.92rem;color:var(--muted);margin-top:6px}
.err{color:var(--red);font-weight:700;margin-top:12px}
.nav-btns{display:flex;justify-content:space-between;gap:12px;margin-top:28px}
.summary{position:sticky;top:20px;background:var(--surface);border-radius:14px;padding:22px}
.summary table{width:100%;border-collapse:collapse}
.summary td{padding:6px 0;vertical-align:top}
.summary td:last-child{text-align:right;white-space:nowrap}
.summary tr.total td{border-top:2px solid var(--ink);font-weight:800;font-size:1.15rem;padding-top:10px}
.check{display:flex;gap:10px;align-items:flex-start;margin-top:12px}
.check input{width:20px;height:20px;margin-top:3px;accent-color:var(--navy)}
.tag{display:inline-block;font-size:.8rem;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--green);color:#fff;vertical-align:middle}

.confirm{padding:48px 0 64px;max-width:760px}
.code{font-family:var(--serif);font-size:2.4rem;font-weight:800;letter-spacing:.02em}
.zelle{display:grid;grid-template-columns:160px 1fr;gap:24px;background:var(--surface);border-radius:14px;padding:22px;margin:20px 0}
.qr{width:160px;height:160px;border-radius:10px;background:#fff;padding:10px;position:relative}
.qr svg{width:100%;height:100%}
.qr em{position:absolute;inset:auto 0 -24px 0;font-size:.75rem;text-align:center;color:var(--muted);font-style:normal}

/* Admin */
.admin{padding:28px 0 64px}
.tabs{display:flex;gap:4px;border-bottom:2px solid var(--line);margin:20px 0 24px;overflow-x:auto}
.tabs a{padding:10px 16px;text-decoration:none;color:var(--muted);font-weight:700;border-bottom:3px solid transparent;margin-bottom:-2px;white-space:nowrap}
.tabs a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--red)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;margin-bottom:28px}
.stat{background:var(--surface);border-radius:12px;padding:16px 18px}
.stat b{display:block;font-family:var(--serif);font-size:1.8rem;line-height:1.1}
.stat span{color:var(--muted);font-size:.95rem}
.bar{height:12px;border-radius:6px;background:var(--line);overflow:hidden;display:flex;margin:10px 0 6px}
.bar i{display:block;height:100%}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
table.data{width:100%;border-collapse:collapse;font-size:.95rem;min-width:860px}
table.data th{text-align:left;background:var(--surface);padding:10px 12px;font-weight:700;white-space:nowrap}
table.data td{padding:10px 12px;border-top:1px solid var(--line);vertical-align:top}
.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.82rem;font-weight:700;white-space:nowrap}
.badge.paid{background:var(--green);color:#fff}
.badge.pending{background:var(--amber);color:#fff}
.badge.expired{background:var(--red);color:#fff}
.badge.released{background:var(--line);color:var(--muted)}
.toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.toolbar select{width:auto}
.pair{display:grid;grid-template-columns:260px 1fr;gap:24px;align-items:start}
.pool{background:var(--surface);border-radius:12px;padding:16px;position:sticky;top:16px;min-height:120px}
.pool.over,.team.over{outline:3px dashed var(--blue);outline-offset:2px}
.chip{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;background:var(--card);border:1px solid var(--line);margin-bottom:6px;cursor:grab;font-size:.95rem}
.chip.sel{border-color:var(--blue);box-shadow:inset 0 0 0 2px var(--blue)}
.chip small{color:var(--muted)}
.chip button{background:none;border:0;color:var(--muted);cursor:pointer;font-size:1.1rem;line-height:1;padding:2px 4px}
.teams{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.team{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--card)}
.team.spon{border-top:4px solid var(--red)}
.team.open{cursor:pointer}
.team header{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:8px}
.team header b{font-family:var(--serif);font-size:1.05rem;line-height:1.2}
.team select{width:auto;padding:4px 6px;font-size:.9rem;border-width:1px}
.slot{padding:8px 10px;border:1px dashed var(--line);border-radius:8px;margin-bottom:6px;color:var(--muted);font-size:.92rem}
.warn{background:var(--surface);border-left:4px solid var(--amber);padding:10px 14px;border-radius:6px;margin-bottom:16px}
.who{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.signin{max-width:520px;padding:48px 0}

#printArea{display:none}
@media print{
  body.printing > *:not(#printArea){display:none !important}
  body.printing #printArea{display:block}
  #printArea{color:#000;font-family:Georgia,serif}
  .cart{height:48vh;border:2px solid #000;padding:24px;margin-bottom:2vh;page-break-inside:avoid}
  .cart h2{font-size:34pt;margin:0}
  .cart .hole{font-size:60pt;font-weight:800}
  .alpha td,.alpha th{border-bottom:1px solid #999;padding:4px 8px;text-align:left}
}

@media (max-width:900px){
  .hero .wrap,.mission,.presenting,.reg,.pair{grid-template-columns:1fr}
  .tier{grid-template-columns:1fr 1fr}
  .tier ul{grid-column:1 / -1}
  .summary,.pool{position:static}
}
@media (max-width:560px){
  body{font-size:17px}
  .board{gap:8px 6px}
  .dot{width:11px;height:11px}
  .row2{grid-template-columns:1fr}
  .zelle{grid-template-columns:1fr}
  .field{padding:20px 16px}
}
@media (prefers-reduced-motion: no-preference){
  .dot{transition:background-color .4s ease}
}

.ctas{display:flex;gap:12px;flex-wrap:wrap}

/* ================= FOUNDATION STYLES ================= */
:root{ box-sizing:border-box; padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px); }
html{ scroll-padding-top:env(safe-area-inset-top,0px); }
*,*::before,*::after{box-sizing:inherit}
.script{font-family:"Pinyon Script",cursive;font-weight:400}

/* header */
header.site{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--paper)}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:10px;padding-bottom:10px}
.brand img{width:92px;height:auto}
nav.main{display:flex;align-items:center;gap:2px;flex-wrap:wrap}
nav.main a.nav-donate{background:var(--red);color:#fff;margin-left:8px;padding:8px 18px;border-radius:999px;font-weight:700}
nav.main a.nav-donate[aria-current="page"]{background:var(--red);box-shadow:0 0 0 3px var(--gold)}
@media (max-width:760px){
  header.site{position:static}
  nav.main{width:100%;flex-wrap:wrap;gap:2px 0}
  nav.main a{white-space:nowrap;padding:6px 10px}
  nav.main a.nav-donate{margin-left:4px;padding:6px 16px}
  .brand img{width:72px}
}

/* buttons added for the foundation palette */
.btn.gold{background:var(--gold);border-color:var(--gold);color:#221440}
.btn.ghost{background:transparent;border-color:rgba(255,255,255,.7);color:#fff}
a.btn.gold{color:#221440} a.btn.ghost{color:#fff}

/* page header + section nav */
.phead{background:var(--navy);color:#fff;padding:78px 0 40px;position:relative}
.phead::before{content:"";position:absolute;left:0;right:0;top:0;height:44px;background:var(--picado) repeat-x 0 0/91px 44px}
.phead h1{font-size:clamp(2.1rem,5vw,3.4rem);max-width:20ch}
.phead .lede{max-width:62ch;font-size:1.12rem;opacity:.92;margin:0}
.subnav{border-bottom:1px solid var(--line);background:var(--surface);padding-top:22px}
.subnav .wrap{display:flex;gap:2px;flex-wrap:wrap}
@media (max-width:760px){.subnav .wrap{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}}
.subnav a{padding:12px 14px;white-space:nowrap;text-decoration:none;color:var(--muted);font-weight:700;border-bottom:3px solid transparent}
.subnav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--red)}

/* HERO */
.hero-f{position:relative;color:#fff;background:linear-gradient(100deg,var(--navy-deep) 0%,var(--navy-deep) 34%,#000 58%);overflow:hidden}
.picado{height:64px;background:var(--picado) repeat-x 0 0/132px 64px}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;align-items:end;gap:24px}
.hero-copy{padding:36px 0 72px}
.hero-org{font-family:var(--serif);font-size:1.15rem;color:var(--gold);margin:0 0 14px}
.hero-f h1{font-size:clamp(2.2rem,4.6vw,3.7rem);line-height:1.06;max-width:17ch;margin-bottom:.45em}
.hero-sub{font-size:1.15rem;max-width:46ch;opacity:.9}
.hero-photo{align-self:end;position:relative;margin-top:-64px}
.hero-photo img{display:block;width:100%;max-width:560px;margin-left:auto;-webkit-mask-image:linear-gradient(to bottom,#000 78%,transparent),linear-gradient(to right,transparent,#000 22%);-webkit-mask-composite:source-in;mask-image:linear-gradient(to bottom,#000 78%,transparent),linear-gradient(to right,transparent,#000 22%);mask-composite:intersect}
@media (max-width:860px){
  .hero-grid{grid-template-columns:1fr}
  .hero-photo{order:-1;margin-top:0}
  .hero-photo img{max-width:420px;margin:0 auto}
  .hero-copy{padding:8px 0 48px}
  .hero-f{background:linear-gradient(180deg,#000 0%,var(--navy-deep) 55%)}
}

/* anniversary */
.anniv{padding:64px 0;background:var(--surface)}
.anniv-grid{display:grid;grid-template-columns:auto 1fr;gap:48px;align-items:start}
.years{font-family:var(--serif);font-weight:800;font-size:clamp(3rem,8vw,6rem);line-height:.9;color:var(--navy);display:flex;flex-direction:column}
.years span{color:var(--gold);font-size:.5em;line-height:1;padding-left:.2em}
.anniv p{max-width:60ch}
.tally{display:flex;flex-wrap:wrap;gap:12px 40px;margin:24px 0 0}
.tally dt{font-family:var(--serif);font-size:2.4rem;font-weight:800;line-height:1;color:var(--red)}
.tally dd{margin:4px 0 0;color:var(--muted)}
@media (max-width:700px){.anniv-grid{grid-template-columns:1fr;gap:16px}.years{flex-direction:row;gap:.2em;font-size:3.2rem}.years span{font-size:1em;padding:0}}

/* generic band */
.band{padding:64px 0}
.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:3px solid var(--navy);margin-top:20px}
.pillars a{display:block;padding:22px 22px 26px 0;margin-right:22px;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line)}
.pillars a:hover h3{color:var(--red);text-decoration:underline}
.pillars h3{font-size:1.3rem;margin-bottom:.35em}
.pillars p{margin:0;color:var(--muted)}
@media (max-width:900px){.pillars{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.pillars{grid-template-columns:1fr}.pillars a{margin-right:0}}

/* quote */
.quote-band{background:var(--navy);color:#fff;padding:64px 0}
.quote-grid{display:grid;grid-template-columns:260px 1fr;gap:48px;align-items:center}
.quote-grid img{width:100%;border-radius:4px;background:#fff;border:6px solid #fff}
.quote-band blockquote{margin:0}
.quote-band blockquote p{font-family:var(--serif);font-style:italic;font-size:clamp(1.7rem,3.4vw,2.6rem);line-height:1.2;margin:0 0 16px;max-width:24ch}
.quote-band .cite{opacity:.85} .quote-band a{color:var(--gold)}
@media (max-width:700px){.quote-grid{grid-template-columns:1fr;gap:24px}.quote-grid img{max-width:220px}}

/* videos */
.vid{margin:0}
.vid-play{position:relative;display:flex;align-items:flex-end;width:100%;aspect-ratio:16/9;border:0;border-radius:6px;cursor:pointer;padding:18px;text-align:left;color:#fff;font:inherit;
  background:radial-gradient(circle at 70% 30%,rgba(212,165,71,.28),transparent 55%),var(--navy-deep)}
.vid-play:hover .vid-icon,.vid-play:focus-visible .vid-icon{background:var(--gold)}
.vid-icon{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);width:64px;height:64px;border-radius:50%;background:var(--red);transition:background .2s}
.vid-icon::after{content:"";position:absolute;left:26px;top:20px;border-left:18px solid #fff;border-top:12px solid transparent;border-bottom:12px solid transparent}
.vid-title{font-family:var(--serif);font-weight:700;font-size:1.15rem;line-height:1.2}
.vid iframe{width:100%;aspect-ratio:16/9;border:0;border-radius:6px;display:block;background:#000}
.vid figcaption{font-size:.95rem;color:var(--muted);margin-top:8px}
.vids{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:28px;margin:24px 0}
.watch-feature{display:grid;grid-template-columns:1fr 1.6fr;gap:40px;align-items:center}
@media (max-width:760px){.watch-feature{grid-template-columns:1fr}}

/* golf promo */
.golf-promo{padding:48px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.golf-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:32px;align-items:center}
.gp-date{font-family:var(--serif);font-weight:700;color:var(--red);font-size:1.3rem;margin:0 0 6px}
.golf-promo p{max-width:58ch}
@media (max-width:760px){.golf-grid{grid-template-columns:1fr}}

/* reading pages */
.read{max-width:760px;padding-top:40px;padding-bottom:64px}
.read p,.read li{font-family:var(--serif);font-size:1.2rem;line-height:1.65}
.read h2{margin-top:1.6em}
.read h3{margin-top:1.4em;font-size:1.35rem}
.byline{color:var(--muted);font-family:var(--sans)!important;font-size:1rem!important}
.epigraph{font-style:italic;color:var(--muted)}
.her-words{margin:28px 0;padding:6px 0 6px 24px;border-left:4px solid var(--gold)}
.her-words p{font-style:italic}
.note{margin:28px 0;padding:14px 18px;background:var(--surface);border-radius:6px;font-family:var(--sans);font-size:1rem}
.note-inline{margin:24px 0}
.next{margin-top:40px;padding-top:20px;border-top:1px solid var(--line)}
.next a{font-weight:700}
.poem{margin:32px 0;padding:32px 36px;background:var(--surface);border-radius:6px;border-top:4px solid var(--navy)}
.poem p{font-size:1.25rem;line-height:1.75;margin:0}
.poem .poem-by{font-family:var(--sans);font-size:1rem;color:var(--muted);margin-bottom:16px}
.poem .refrain{color:var(--red);font-style:italic}
@media (max-width:560px){.poem{padding:22px 18px}.poem p{font-size:1.1rem}}
.qa dt{font-family:var(--sans);font-weight:700;color:var(--navy-text);margin-top:22px}
.qa dd{margin:4px 0 0;font-family:var(--serif);font-size:1.2rem;line-height:1.6}
.book{display:grid;grid-template-columns:240px 1fr;gap:36px;align-items:start}
.book img{width:100%;box-shadow:0 10px 30px rgba(20,10,50,.25)}
.book h2{margin-top:0}
.book-sub{font-style:italic;color:var(--muted)}
@media (max-width:620px){.book{grid-template-columns:1fr}.book img{max-width:220px}}

/* our work */
.letter-card{background:var(--surface);padding:28px 32px;border-radius:6px;margin-bottom:24px}
.letter-card h2{margin-top:0}
.sig{font-style:italic}
ul.plain{padding-left:1.2em}
ul.plain li{margin:4px 0}

/* scholarships */
.sec{margin-top:56px}
.sec-lede{margin-top:-6px}
.schols{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px;margin-top:18px}
.schol{border-top:4px solid var(--navy);background:var(--card);padding:20px 22px;border-radius:0 0 6px 6px;box-shadow:0 1px 0 var(--line)}
.schol header{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:8px}
.schol h3{margin:0;font-size:1.3rem}
.schol .amt{margin:0;font-weight:700;color:var(--red)}
.schol p,.schol li{font-size:1rem}
.schol .last{color:var(--muted);font-size:.95rem;border-top:1px solid var(--line);padding-top:10px;margin-top:14px}
.past{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:8px 32px}
.past h3{font-size:1.15rem;margin-top:1em}
.past p{color:var(--muted)}

/* recipients */
.testimonial{margin:32px 0;max-width:760px}
.testimonial blockquote{margin:0;font-family:var(--serif);font-style:italic;font-size:1.45rem;line-height:1.4;border-left:4px solid var(--gold);padding-left:22px}
.testimonial blockquote p{margin:0}
.testimonial figcaption{margin-top:10px;color:var(--muted);padding-left:26px}
.filters{display:flex;flex-wrap:wrap;gap:16px;align-items:end;margin:16px 0 8px}
.filters label{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:.95rem;min-width:220px;flex:1}
.filters .count-line{margin:0 0 12px;color:var(--muted);flex-basis:100%}
.years-list{columns:3 280px;column-gap:40px}
.years-list section{break-inside:avoid;margin-bottom:22px}
.years-list h3{font-size:1.5rem;color:var(--navy-text);border-bottom:2px solid var(--gold);padding-bottom:4px;margin-bottom:8px}
.years-list ul,.grid-list,.board-list{list-style:none;padding:0;margin:0}
.years-list li{padding:5px 0}
.years-list li b,.grid-list b,.board-list b{display:block;font-family:var(--serif);font-size:1.1rem}
.years-list li span,.grid-list span,.board-list span{color:var(--muted);font-size:.95rem}
.grid-list,.board-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px 32px;margin-top:12px}
.board-list{margin:24px 0 64px}
.empty{padding:24px;background:var(--surface);border-radius:6px}

/* donate */
.donate-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:32px;padding-top:40px}
.donate-grid section{border-top:3px solid var(--navy);padding-top:14px}
.donate-grid address{font-style:normal;font-family:var(--serif);font-size:1.2rem;line-height:1.5}

/* footer */
footer.f{background:var(--navy-deep);color:#E9E1F6;padding:48px 0 40px;border-top:0;margin-top:0}
footer.f a{color:#fff}
.f-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:32px}
.f-grid img{width:120px;margin-bottom:10px}
.f-grid h2{font-size:1rem;font-family:var(--sans);margin-bottom:8px;color:var(--gold)}
.f-grid ul{list-style:none;padding:0;margin:0}
.f-grid li{margin:4px 0}
.f-grid p{margin:0 0 6px;font-size:.95rem}
footer.f .ph{border-bottom-color:var(--gold)}
@media (max-width:760px){.f-grid{grid-template-columns:1fr}}

/* golf section sub-nav */
.golfnav{background:var(--navy);}
.golfnav .wrap{display:flex;gap:4px;align-items:center;overflow-x:auto;padding-top:8px;padding-bottom:8px}
.golfnav b{color:var(--gold);font-family:var(--serif);margin-right:12px;white-space:nowrap}
.golfnav a{color:#fff;text-decoration:none;padding:8px 12px;border-radius:6px;white-space:nowrap;font-weight:500}
.golfnav a[aria-current="page"]{background:rgba(255,255,255,.14)}
.golfnav a.org{margin-left:auto;opacity:.75;font-size:.92rem}
.mission-photo{width:100%;border-radius:6px;display:block}

.mission .mission-photo{max-width:380px}

/* v2 */
.qr img{width:100%;height:100%;display:block}
.zelle-donate{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap}
.zelle-donate img{background:#fff;border-radius:10px;padding:8px;flex:0 0 auto}
.zelle-donate>div{flex:1 1 220px}
.deduct{margin:6px 0 0;font-size:.9rem;color:var(--muted)}
.pending-tag{display:block;margin:6px 0 0;font-family:var(--sans);font-size:.85rem;font-weight:700;color:var(--amber)}

/* v3: book in nav, book feature, public golf page */
.nav-book{border:1.5px solid currentColor;border-radius:999px;padding:6px 14px !important}
.book-feature img{max-width:220px;border-radius:6px;box-shadow:0 10px 30px rgba(20,12,40,.25)}
.book-feature h2{margin:0 0 4px}
.book-feature .book-sub{font-style:italic;margin:0 0 12px}
.golf-hero{padding:56px 0 48px}
.golf-hero h1{max-width:18ch}
.golf-page{padding-top:36px;padding-bottom:56px}
.golf-page>h2{margin-top:48px}
.notify{margin:40px 0 8px;padding:28px;background:var(--surface);border-radius:14px;border-top:4px solid var(--red)}
.notify h2{margin-top:0}
.notify form{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end}
.notify label{display:flex;flex-direction:column;font-weight:700;gap:4px;flex:1 1 220px}
.notify input{font:inherit;padding:10px 12px;border:1.5px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink)}
.notify input:focus-visible{outline:3px solid var(--focus);outline-offset:1px}
.hp{position:absolute;left:-9999px}
.gtiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;margin:20px 0}
.gtier{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px}
.gtier h3{margin:0}
.gtier .gprice{font-family:var(--serif);font-size:1.6rem;font-weight:700;margin:6px 0 0}
.gtier .deduct{margin:2px 0 8px}
.gtier ul{margin:10px 0 0;padding-left:1.1em}
.gtier.inkind{border-style:dashed}
.contact-cards{background:var(--navy);color:var(--on-navy);border-radius:14px;padding:22px 26px;margin-top:8px}
.contact-cards p{margin:0 0 10px;font-weight:700}
.contact-cards ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:12px 40px}
.contact-cards li{display:flex;flex-direction:column}
.contact-cards a{color:var(--gold);font-size:1.3rem;font-family:var(--serif);font-weight:700}
.book-feature .book-sub{color:#E4DCF5}
.hero-f.golf-hero{background:linear-gradient(120deg,var(--navy-deep) 0%,var(--navy) 100%);padding:0 0 52px}
.golf-hero .picado{margin-bottom:36px}
@media (max-width:760px){.hero-f.golf-hero{background:linear-gradient(180deg,var(--navy-deep) 0%,var(--navy) 100%)}}
[hidden]{display:none !important}
.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--navy);color:#fff;padding:10px 16px;border-radius:0 0 8px 0}
.skip:focus{left:0}

/* =====================================================================
   v4 "TRAJE DE GALA" DESIGN (approved Sep 29, 2026)
   Logo colors, refined: night indigo fabric, moño red (Donate only),
   gold as thin trim, botonadura silver. Cormorant Garamond + Albert Sans.
   ===================================================================== */
:root{
  --paper:#F4F3F6; --surface:#EAE8EF; --card:#FFFFFF; --ink:#1A1530; --muted:#555069;
  --navy:#15102A; --navy-deep:#0F0B20; --navy-text:#2A185C; --on-navy:#FFFFFF;
  --red:#9E2F49; --red-deep:#7E2238; --gold:#D4A547; --silver:#D8D6DF; --silver-dim:#ABA7BA;
  --line:#D3CFDC; --link:#2A185C; --focus:#2A185C; --amber:#8A5C0A;
  --serif:"Cormorant Garamond","Cormorant",Garamond,Georgia,serif;
  --sans:"Albert Sans","Segoe UI",system-ui,-apple-system,sans-serif;
  --greca:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='14' viewBox='0 0 32 14'%3E%3Cpath d='M0 12.5H5V8.5H9V4.5H13V1.5H19V4.5H23V8.5H27V12.5H32' fill='none' stroke='%23D4A547' stroke-width='1.3'/%3E%3C/svg%3E");
  --ease:cubic-bezier(.2,.7,.2,1);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --paper:#16122A; --surface:#1E1934; --card:#221C3B; --ink:#ECEAF2; --muted:#B5B0C6; --navy:#0E0A1E; --navy-deep:#0A0716;
  --navy-text:#CFC2FF; --red:#B03A56; --red-deep:#932E47; --line:#3A3358; --link:#CFC2FF; --focus:#D4A547; --amber:#E0B35A;
}}
:root[data-theme="dark"]{
  --paper:#16122A; --surface:#1E1934; --card:#221C3B; --ink:#ECEAF2; --muted:#B5B0C6; --navy:#0E0A1E; --navy-deep:#0A0716;
  --navy-text:#CFC2FF; --red:#B03A56; --red-deep:#932E47; --line:#3A3358; --link:#CFC2FF; --focus:#D4A547; --amber:#E0B35A;
}

/* type */
body{font-family:var(--sans);font-size:17px;line-height:1.62}
h1,h2,h3{font-family:var(--serif);font-weight:600;letter-spacing:-.005em;text-wrap:balance}
h1{font-size:clamp(2.6rem,5.6vw,4.3rem);line-height:1.04}
h2{font-size:clamp(2.1rem,4vw,3.1rem);line-height:1.08}
h3{font-size:1.55rem;font-weight:600}
.muted{color:var(--muted)}

/* motifs */
.greca{height:14px;width:128px;background:var(--greca) repeat-x 0 50%/32px 14px;margin-bottom:22px}
.boton{display:inline-block;width:10px;height:10px;border-radius:50%;flex:none;
  background:radial-gradient(circle at 35% 30%,#fff 0 18%,#CFCBD8 35%,#8C889C 100%);box-shadow:0 0 0 1px rgba(0,0,0,.25)}

/* buttons: pressed like a botón */
.btn{font-family:var(--sans);font-weight:600;border-width:1.5px;transition:transform .18s var(--ease),background-color .2s,box-shadow .2s,color .2s,border-color .2s}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(1px) scale(.98)}
.btn.red{background:var(--red);border-color:var(--red);color:#fff}
.btn.red:hover{background:var(--red-deep);border-color:var(--red-deep);box-shadow:0 0 0 4px rgba(212,165,71,.35)}
a.btn.red{color:#fff}
.btn.line,a.btn.line{background:transparent;border-color:var(--silver);color:var(--silver)}
.btn.line:hover{background:var(--silver);color:var(--navy)}
.btn.line-dark,a.btn.line-dark{background:transparent;border-color:var(--ink);color:var(--ink)}
.btn.line-dark:hover{background:var(--ink);color:var(--paper)}
.tlink{font-weight:600;text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 1.5px no-repeat;transition:background-size .3s var(--ease);padding-bottom:2px}
.tlink:hover{background-size:100% 1.5px}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}

/* header: traje fabric */
header.site{background:var(--navy);box-shadow:none;border-bottom:1px solid rgba(216,214,223,.12)}
header.site .wrap{padding-top:16px;padding-bottom:16px}
header.site .brand{color:var(--silver)}
header.site .brand span{font-family:var(--sans);font-weight:600;font-size:.95rem}
header.site .brand img{height:44px}
nav.main{gap:4px}
nav.main>a{color:var(--silver);font-weight:500;padding:8px 12px;background:linear-gradient(var(--gold),var(--gold)) 12px calc(100% - 4px)/0 1.5px no-repeat;transition:background-size .3s var(--ease),color .2s}
nav.main>a:hover{background-size:calc(100% - 24px) 1.5px}
nav.main>a[aria-current="page"]{background-color:transparent;color:#fff;background-size:calc(100% - 24px) 1.5px}
nav.main a.nav-book{border:1.5px solid var(--silver);border-radius:999px;padding:7px 16px !important;margin-left:8px;background-image:none}
nav.main a.nav-book:hover{background:var(--silver);color:var(--navy)}
nav.main a.nav-donate{background:var(--red);background-image:none;color:#fff;transition:background-color .2s,box-shadow .2s,transform .18s var(--ease)}
nav.main a.nav-donate:hover{background-color:var(--red-deep);box-shadow:0 0 0 4px rgba(212,165,71,.35);transform:translateY(-1px)}
.menu{display:none}
@media (max-width:900px){
  nav.main{width:auto;flex-wrap:nowrap;margin-left:auto}
  nav.main>a:not(.nav-donate){display:none}
  .menu{display:block;position:relative;order:2}
  .menu summary{list-style:none;cursor:pointer;color:var(--silver);border:1.5px solid var(--silver);border-radius:999px;padding:6px 16px;font-weight:600;margin-left:8px}
  .menu summary::-webkit-details-marker{display:none}
  .menu[open] summary{background:var(--silver);color:var(--navy)}
  .menu>div{position:absolute;right:0;top:calc(100% + 10px);z-index:30;background:#1F1840;border:1px solid rgba(216,214,223,.2);border-radius:14px;padding:8px;display:grid;min-width:220px;box-shadow:0 20px 40px rgba(0,0,0,.4)}
  .menu>div a{color:var(--silver);text-decoration:none;padding:12px 14px;border-radius:8px}
  .menu>div a:hover,.menu>div a[aria-current="page"]{background:rgba(216,214,223,.1);color:#fff}
  header.site .wrap{flex-wrap:nowrap}
  header.site .brand span{display:none}
}

/* page headers: fabric with greca trim instead of papel picado */
.phead{background:var(--navy);padding:64px 0 56px}
.phead::before{display:none}
.phead::after{content:"";position:absolute;left:0;right:0;bottom:0;height:14px;background:var(--greca) repeat-x 0 50%/32px 14px;opacity:.55}
.phead h1{font-size:clamp(2.6rem,5.4vw,4rem)}
.phead .lede{color:var(--silver)}
.subnav{background:var(--paper);padding-top:10px}
.subnav a[aria-current="page"]{border-bottom-color:var(--gold);color:var(--ink)}
.hero-f .picado{display:none}
.hero-f.golf-hero{background:var(--navy);padding:64px 0 72px;position:relative}
.hero-f.golf-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:14px;background:var(--greca) repeat-x 0 50%/32px 14px;opacity:.55}
.golf-hero .hero-org{font-family:var(--serif);font-style:italic;font-size:1.4rem;color:var(--gold)}
.golf-hero .ctas{margin-top:24px}

/* cards and lists on inner pages */
.schol{border-top:0;border-left:3px solid var(--red);border-radius:0 12px 12px 0;box-shadow:none;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.gtier{border-radius:14px;transition:transform .25s var(--ease),box-shadow .25s}
.gtier:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(21,16,42,.12)}
.gtier .gprice{font-family:var(--serif)}
.board-list li{display:flex;align-items:baseline;gap:14px;padding:18px 0;border-bottom:1px solid var(--line)}
.board-list li::before{content:"";width:10px;height:10px;border-radius:50%;flex:none;background:radial-gradient(circle at 35% 30%,#fff 0 18%,#CFCBD8 35%,#8C889C 100%);transform:translateY(-2px)}
.board-list b{font-size:1.5rem !important}
.contact-cards{background:var(--navy)}
footer.f{background:var(--navy);position:relative;padding-top:64px}
footer.f::before{content:"";position:absolute;left:0;right:0;top:18px;height:14px;background:var(--greca) repeat-x 0 50%/32px 14px;opacity:.45}

/* golf registration */
.register{margin:40px 0 8px}
.reg-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin:18px 0}
.reg-card{display:flex;flex-direction:column;gap:6px;padding:24px;border-radius:16px;background:var(--navy);color:var(--silver);text-decoration:none;border:1px solid rgba(216,214,223,.15);transition:transform .25s var(--ease),box-shadow .25s}
.reg-card:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(21,16,42,.3)}
.reg-card b{font-family:var(--serif);font-size:1.7rem;font-weight:600;color:#fff}
.reg-card .gprice{font-family:var(--serif);font-size:2.4rem;color:var(--gold);line-height:1}
.reg-card .btn{align-self:flex-start;margin-top:10px}
.reg-notes{padding-left:1.1em;color:var(--muted)}
.reg-notes li{margin:4px 0}

/* in the news */
.news{padding-top:40px;padding-bottom:64px}
.news-item{padding:28px 0;border-bottom:1px solid var(--line);max-width:760px}
.news-meta{color:var(--muted);margin:0 0 6px}
.news-item h2{font-size:clamp(1.6rem,3vw,2.2rem);margin:0 0 12px}
.news-item h2 a{color:var(--ink);text-decoration:none}
.news-item h2 a:hover{text-decoration:underline;text-decoration-thickness:1px}

/* ---------- homepage ---------- */
.h4-hero{background:var(--navy);color:var(--silver);padding:48px 0 96px;position:relative;overflow:hidden}
.h4-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:14px;background:var(--greca) repeat-x 0 50%/32px 14px;opacity:.55}
.h4-hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center}
.h4-org{font-family:var(--serif);font-style:italic;font-size:1.35rem;color:var(--gold);margin:0 0 14px}
.h4-hero h1{color:#fff;font-weight:500;font-size:clamp(2.3rem,4.4vw,3.5rem);line-height:1.08;max-width:21ch}
.h4-sub{color:var(--silver-dim);margin:22px 0 32px;max-width:46ch}
.ctas{display:flex;flex-wrap:wrap;gap:14px}
.nicho{position:relative;justify-self:end;width:min(420px,100%);aspect-ratio:4/5.2;margin:0}
.nicho::before{content:"";position:absolute;inset:-14px;border:1.5px solid var(--gold);border-radius:999px 999px 10px 10px;opacity:.85}
.nicho img{width:100%;height:100%;object-fit:cover;object-position:34% 20%;border-radius:999px 999px 6px 6px;box-shadow:0 30px 70px rgba(0,0,0,.55)}
@media (prefers-reduced-motion:no-preference){
  .nicho img{animation:h4rise 1.2s var(--ease) both}
  .nicho::before{animation:h4fade 1.4s .5s both}
  .h4-hero h1,.h4-sub,.h4-hero .ctas,.h4-org{animation:h4fade .9s var(--ease) both}
  .h4-hero h1{animation-delay:.1s}.h4-sub{animation-delay:.2s}.h4-hero .ctas{animation-delay:.3s}
}
@keyframes h4rise{from{clip-path:inset(100% 0 0 0 round 999px 999px 6px 6px)}to{clip-path:inset(0 0 0 0 round 999px 999px 6px 6px)}}
@keyframes h4fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.h4-proof{padding:64px 0 48px}
.h4-tally{display:grid;grid-template-columns:repeat(4,1fr);margin:0}
.h4-tally div{padding:4px 28px;border-left:1px solid var(--line)}
.h4-tally div:first-child{border-left:0;padding-left:0}
.h4-tally dt{font-family:var(--serif);font-weight:600;font-size:clamp(2.8rem,5.4vw,4.4rem);line-height:1;color:var(--ink);font-variant-numeric:lining-nums}
.h4-tally dd{margin:10px 0 0;color:var(--muted);max-width:18ch}
.h4-golf{padding:24px 0}
.h4-program{position:relative;background:#1F1840;color:var(--silver);border-radius:18px;padding:56px;display:grid;grid-template-columns:1.1fr .9fr;gap:40px;overflow:hidden}
.h4-program::before,.h4-program::after{content:"";position:absolute;left:0;right:0;height:14px;background:var(--greca) repeat-x 0 50%/32px 14px;opacity:.6}
.h4-program::before{top:16px}.h4-program::after{bottom:16px;transform:scaleY(-1)}
.h4-program h2{color:#fff;margin:6px 0 18px}
.h4-when{font-family:var(--serif);font-style:italic;font-size:1.45rem;color:var(--gold);margin:0}
.h4-facts{list-style:none;margin:0 0 28px;padding:0}
.h4-facts li{display:flex;gap:14px;align-items:center;padding:10px 0;border-bottom:1px solid rgba(216,214,223,.16)}
.h4-facts b{min-width:5.2em;color:#fff;font-weight:600}
.h4-programs{padding:88px 0 56px}
.h4-rows{margin-top:36px;border-top:1px solid var(--line)}
.h4-row{display:grid;grid-template-columns:18px minmax(0,.9fr) minmax(0,1.3fr);gap:18px 28px;padding:28px 0;border-bottom:1px solid var(--line)}
.h4-row h3{margin:0;font-size:1.75rem}
.h4-row p{margin:0;color:var(--muted)}
.h4-row .boton{margin-top:.8em}
.h4-class{padding:24px 0 96px}
.h4-class-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:start}
.h4-names{list-style:none;margin:0;padding:0;columns:2;column-gap:40px}
.h4-names li{break-inside:avoid;padding:0 0 22px}
.h4-names b{display:block;font-family:var(--serif);font-style:italic;font-weight:500;font-size:1.7rem;line-height:1.15}
.h4-names span{color:var(--muted);font-size:.95rem}
.h4-group{padding:18px 22px;border-left:3px solid var(--red);background:var(--card);border-radius:0 10px 10px 0;margin:6px 0 0}
.h4-elisa{background:var(--navy);color:var(--silver);padding:96px 0}
.h4-elisa-grid{display:grid;grid-template-columns:auto 1fr 1fr;gap:48px;align-items:center}
.h4-cover{width:200px;border-radius:4px;box-shadow:0 22px 50px rgba(0,0,0,.5);transform:rotate(-2deg);transition:transform .4s var(--ease)}
.h4-cover:hover{transform:rotate(0) translateY(-4px)}
.h4-elisa h2{color:#fff;font-style:italic;font-weight:500;font-size:clamp(2rem,3.4vw,2.7rem)}
.h4-bsub{color:var(--silver-dim);font-style:italic;margin:6px 0 16px}
.h4-video{position:relative;aspect-ratio:16/10;border-radius:14px;overflow:hidden;background:#120D26;border:1px solid rgba(216,214,223,.18)}
.h4-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.h4-video button{position:absolute;inset:0;width:100%;border:0;padding:0;background:none;cursor:pointer;color:#fff;text-align:left}
.h4-video img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 22%;opacity:.55;transition:opacity .3s,transform .6s var(--ease)}
.h4-video button::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,13,38,0) 35%,rgba(18,13,38,.92) 100%)}
.h4-video button:hover img{opacity:.72;transform:scale(1.03)}
.h4-video .play{position:absolute;left:28px;bottom:28px;z-index:1;width:64px;height:64px;border-radius:50%;background:var(--red);display:grid;place-items:center;transition:transform .25s var(--ease),box-shadow .25s}
.h4-video .play::before{content:"";border-left:18px solid #fff;border-top:11px solid transparent;border-bottom:11px solid transparent;margin-left:5px}
.h4-video button:hover .play{transform:scale(1.08);box-shadow:0 0 0 6px rgba(158,47,73,.35)}
.h4-video .vt{position:absolute;left:108px;bottom:36px;right:24px;z-index:1;font-family:var(--serif);font-style:italic;font-size:1.45rem;line-height:1.2}
.h4-give{padding:96px 0 80px}
.h4-give-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:24px;margin-bottom:36px}
.h4-ways{display:grid;grid-template-columns:repeat(3,1fr);border-top:1.5px solid var(--ink)}
.h4-ways section{padding:28px 32px 8px 0}
.h4-ways section+section{padding-left:32px;border-left:1px solid var(--line)}
.h4-ways h3{margin-bottom:8px}
.h4-ways p{color:var(--muted)}
.h4-ways address{font-style:normal;line-height:1.5}
.h4-fine{color:var(--muted);font-size:.9rem;margin-top:36px}
@media (max-width:900px){
  .h4-hero-grid,.h4-program,.h4-class-grid,.h4-elisa-grid{grid-template-columns:1fr}
  .nicho{justify-self:center;width:min(320px,86%);margin-top:32px}
  .h4-tally{grid-template-columns:1fr 1fr;row-gap:28px}
  .h4-tally div:nth-child(3){border-left:0;padding-left:0}
  .h4-program{padding:52px 24px}
  .h4-row{grid-template-columns:18px 1fr}.h4-row p{grid-column:2}
  .h4-names{columns:1}
  .h4-ways{grid-template-columns:1fr}.h4-ways section+section{padding-left:0;border-left:0;border-top:1px solid var(--line)}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none !important;animation:none !important}}
#register,#sponsor{scroll-margin-top:96px}

/* v5: Eso Elisa headline, recipient photos, registration form */
.h4-hero h1{max-width:none}
.h4-grito{display:block;font-family:var(--serif);font-style:italic;font-weight:600;font-size:clamp(4.2rem,10.5vw,8.6rem);line-height:.9;color:#fff;letter-spacing:-.02em;margin-bottom:.22em}
.h4-grito em{font-style:italic;color:var(--gold)}
.h4-mission{display:block;font-family:var(--sans);font-style:normal;font-weight:500;font-size:clamp(1.15rem,1.9vw,1.4rem);line-height:1.45;color:var(--silver);max-width:34ch}
@media (prefers-reduced-motion:no-preference){.h4-grito{animation:h4fade .9s var(--ease) both}.h4-mission{animation:h4fade .9s .12s var(--ease) both}}
.rp-name{display:inline-flex;align-items:baseline;gap:8px;padding:0;border:0;background:none;color:var(--ink);font:inherit;cursor:pointer;text-align:left}
.rp-name b{text-decoration:underline;text-decoration-color:var(--gold);text-decoration-thickness:2px;text-underline-offset:3px}
.rp-cue{font-size:.72rem;font-weight:700;letter-spacing:.02em;color:var(--red);border:1px solid currentColor;border-radius:999px;padding:1px 8px;line-height:1.5}
.rp-name[aria-expanded="true"] .rp-cue{background:var(--red);color:#fff;border-color:var(--red)}
.rp-photo{margin:10px 0 6px;flex-basis:100%;width:100%}
.rp-photo img{width:auto;max-width:min(100%,320px);max-height:420px;border-radius:10px;box-shadow:0 12px 28px rgba(21,16,42,.18)}
@media (prefers-reduced-motion:no-preference){.rp-photo:not([hidden]) img{animation:h4fade .35s var(--ease) both}}
.years-list li,.grid-list li{flex-wrap:wrap}
.regform{display:grid;gap:18px;max-width:720px;margin:18px 0}
.regform fieldset{border:1px solid var(--line);border-radius:12px;padding:16px 18px 18px;margin:0;display:grid;gap:12px;background:var(--card)}
.regform legend{font-family:var(--serif);font-weight:600;font-size:1.3rem;padding:0 6px}
.regform label{display:flex;flex-direction:column;gap:4px;font-weight:600}
.regform label small{font-weight:400;color:var(--muted)}
.regform input:not([type=radio]){font:inherit;padding:10px 12px;border:1.5px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink)}
.regform .choice{flex-direction:row;align-items:center;gap:10px;font-weight:500}
.regform .choice input{width:20px;height:20px;accent-color:var(--red)}
.regform .btn{justify-self:start}
.reg-done{padding:24px;border-radius:14px;background:var(--card);border-left:4px solid var(--gold);max-width:720px}
.reg-done h3{margin-top:0}
.rp-name{margin-right:10px}

/* golf hero: illustration in the arched frame */
.golf-hero-grid{align-items:center}
.golf-hero .nicho img{object-position:50% 50%;background:#1A1038}
@media (max-width:900px){.golf-hero .nicho{width:min(300px,80%)}}

/* Phase 2 registration form: live counter, sign-up, confirmation */
.regform2{display:grid;gap:18px;max-width:720px;margin:18px 0}
.regform2 fieldset{border:1px solid var(--line);border-radius:12px;padding:16px 18px 18px;margin:0;display:grid;gap:12px;background:var(--card)}
.regform2 fieldset[hidden]{display:none}
.regform2 legend{font-family:var(--serif);font-weight:600;font-size:1.3rem;padding:0 6px}
.regform2 label{display:flex;flex-direction:column;gap:4px;font-weight:600}
.regform2 label small{font-weight:400;color:var(--muted)}
.regform2 input:not([type=radio]){font:inherit;padding:11px 12px;border:1.5px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);min-height:44px}
.regform2 input[aria-invalid="true"]{border-color:var(--red);background:color-mix(in srgb,var(--red) 7%,var(--paper))}
.regform2 .choice{flex-direction:row;align-items:flex-start;gap:12px;font-weight:500;padding:6px 0}
.regform2 .choice input{width:22px;height:22px;margin-top:2px;accent-color:var(--red);flex:none}
.regform2 .choice span{display:flex;flex-direction:column;gap:2px}
.regform2 .choice[data-disabled="true"]{opacity:.55}
.regform2 .btn{justify-self:start}
.regform2 .btn[disabled]{opacity:.65;cursor:progress}
.regform2 .hint,.hold-note{color:var(--muted);margin:0;font-size:.95rem}
.regform2[hidden]{display:none}
.err{color:var(--red);font-weight:600;font-size:.92rem}
.err[hidden]{display:none}
.form-error{margin:0;padding:12px 14px;border-radius:10px;border-left:4px solid var(--red);background:color-mix(in srgb,var(--red) 8%,var(--card));font-weight:600}
.form-error[hidden]{display:none}
.spots{max-width:720px;margin:6px 0 14px}
.spots-text{margin:0 0 8px;font-weight:700;font-size:1.15rem}
.spots[data-low="true"] .spots-text{color:var(--red)}
.meter{height:10px;border-radius:999px;background:var(--line);overflow:hidden}
.meter span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold),var(--red));border-radius:999px;transition:width .6s var(--ease)}
.reg-soldout,.reg-notice{max-width:720px;padding:20px 22px;border-radius:14px;background:var(--card);border-left:4px solid var(--red)}
.reg-soldout[hidden]{display:none}
.reg-soldout h3{margin:0 0 6px}
.reg-done{max-width:720px;padding:26px;border-radius:16px;background:var(--card);border:1px solid var(--line);border-left:5px solid var(--gold)}
.reg-done[hidden]{display:none}
.reg-done h3{margin:0 0 4px;font-size:1.7rem}
.reg-code-label{margin:18px 0 2px;color:var(--muted);font-weight:600}
.reg-code{margin:0 0 6px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:clamp(2rem,7vw,2.8rem);font-weight:800;letter-spacing:.04em;color:var(--ink)}
.reg-done ol{padding-left:1.3em;margin:12px 0}
.reg-done li{margin:8px 0}
.reg-done .btn{margin:6px 10px 6px 0}
.reg-done .small-note{color:var(--muted);font-size:.95rem}
.demo-controls{max-width:720px;margin:18px 0;padding:12px 16px;border:1.5px dashed var(--silver-dim);border-radius:12px;font-size:.95rem}
.demo-controls summary{cursor:pointer;font-weight:700}
.demo-controls button{margin:8px 8px 0 0;padding:8px 12px;border-radius:999px;border:1.5px solid var(--ink);background:transparent;color:var(--ink);font:inherit;cursor:pointer}

/* stronger outlines on form fields (accessibility: field edges need clear contrast) */
.regform2 input:not([type=radio]){border-color:#7D788F}
.regform2 input:not([type=radio]):focus-visible{border-color:var(--ink);outline:3px solid var(--gold);outline-offset:2px}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .regform2 input:not([type=radio]){border-color:#9A95B0}}
:root[data-theme="dark"] .regform2 input:not([type=radio]){border-color:#9A95B0}

/* several pictures for one entry (for example a school with two photos) */
.rp-photo img{display:block}
.rp-photo img+img{margin-top:10px}

/* caption under a photo that is shared by several people */
.rp-cap{margin:6px 0 0;max-width:320px;font-size:.88rem;color:var(--muted)}

/* online sponsorship: tier buttons and the short sign-up window */
.gtier{display:flex;flex-direction:column}
.gtier-pay{margin:auto 0 0;padding-top:16px}
.gtier-pay .btn[disabled]{opacity:.55;cursor:not-allowed}
.sponsor-dialog{width:min(560px,calc(100vw - 24px));max-height:calc(100vh - 24px);padding:0;border:1px solid var(--line);border-radius:16px;background:var(--paper);color:var(--ink)}
.sponsor-dialog::backdrop{background:rgba(15,11,32,.65)}
.sponsor-dialog .sd-head{display:flex;justify-content:space-between;align-items:start;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line)}
.sponsor-dialog .sd-head h3{margin:0;font-size:1.5rem}
.sponsor-dialog .sd-body{padding:16px 20px 22px}
.sponsor-dialog .sd-body p{margin:0 0 12px}
.sponsor-dialog .regform2{margin:0}
.sponsor-dialog .sd-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}

/* Touch targets: at least 48x48px for phone and tablet (WCAG 2.5.5 / project rule). */
.brand{min-height:48px}
nav.main a.nav-donate,.menu summary{display:inline-flex;align-items:center;justify-content:center;min-height:48px;box-sizing:border-box}
.rp-name{min-height:48px;align-items:center}
details summary{min-height:48px;display:flex;align-items:center;box-sizing:border-box}
a[href^="tel:"]{display:inline-flex;align-items:center;min-height:48px}
/* Recipient quote with a photo: stacked on phones, side by side from 768px. */
.testimonial.has-photo{display:grid;gap:20px;max-width:900px}
.testimonial.has-photo>img{width:100%;max-width:280px;height:auto;border-radius:10px;box-shadow:0 12px 28px rgba(21,16,42,.18)}
.testimonial.has-photo>div{min-width:0}
@media (min-width:768px){.testimonial.has-photo{grid-template-columns:240px minmax(0,1fr);gap:32px;align-items:center}}

/* =====================================================================
   v4.1 POLISH (Oct 12, 2026): same approved design, tuned details.
   1) fonts are served from our own site (no Google request)
   2) keyboard focus ring readable on light backgrounds (WCAG 2.2: 3:1)
   3) Cormorant is small for its size, so key titles get more weight/size
   4) quote and photo layout (recipient testimonials)
   ===================================================================== */
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/cormorant-500.c20b57f6f4.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:500;font-display:swap;src:url(/assets/fonts/cormorant-500i.b61f1c3b81.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/cormorant-600.0e24538e79.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:600;font-display:swap;src:url(/assets/fonts/cormorant-600i.f206caa9b0.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/cormorant-700.22e0e8ec87.woff2) format("woff2")}
@font-face{font-family:"Albert Sans";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/albert-400.0cc8dbe6d5.woff2) format("woff2")}
@font-face{font-family:"Albert Sans";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/albert-500.ba611ad6cf.woff2) format("woff2")}
@font-face{font-family:"Albert Sans";font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/albert-600.68b0219659.woff2) format("woff2")}
@font-face{font-family:"Albert Sans";font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/albert-700.56d6efd6cb.woff2) format("woff2")}

/* 2) focus: navy ring on light surfaces, gold ring on the navy ones */
:focus-visible{outline:3px solid var(--navy-text);outline-offset:3px}
header.site :focus-visible,footer.f :focus-visible,.h4-hero :focus-visible,.h4-elisa :focus-visible,
.phead :focus-visible,.hero-f.golf-hero :focus-visible,.contact-cards :focus-visible,.field :focus-visible,
.reg-card :focus-visible,.quote-band :focus-visible,.golfnav :focus-visible,.h4-golf :focus-visible,.menu>div :focus-visible{outline-color:var(--gold)}

/* 3) type: better rag, sturdier small serif text */
p{text-wrap:pretty}
.h4-row h3{font-weight:700}
.h4-names b{font-weight:600;font-size:1.8rem}
.h4-row h3,.h4-names b{letter-spacing:0}

/* 4) quotes: larger pull quote, photo framed like the hero arch outline */
.testimonial{max-width:920px}
.testimonial blockquote{font-size:clamp(1.55rem,1.1rem + 1.8vw,2.15rem);line-height:1.26;border-left-width:3px;padding-left:24px}
.testimonial figcaption{font-size:.98rem;padding-left:27px;margin-top:14px}
.testimonial.has-photo>img{box-shadow:none;border-radius:12px;outline:1.5px solid var(--gold);outline-offset:7px;margin:7px}
@media (min-width:768px){.testimonial.has-photo{grid-template-columns:260px minmax(0,1fr);gap:44px;max-width:980px}.testimonial.has-photo>img{max-width:260px}}
/* the mobile Menu is a <details>; keep the generic details/FAQ border off it */
details.menu{border:0}
/* footer links: full-size touch targets on phone and tablet */
@media (max-width:1024px){footer.f li a{display:inline-flex;align-items:center;min-height:48px}footer.f ul{margin:0;padding:0;list-style:none}footer.f li{margin:0}}
/* registration form: box headings sit inside the box, not on its top border */
.regform legend,.regform2 legend{float:left;width:100%;padding:0;margin:0 0 2px;font-size:1.4rem;line-height:1.2}
