/* =============================================================
   ADRIATIC MARCHEGIAN CLUB — Global Stylesheet
   Aesthetic: Old-world Italian social club. Warm, dignified, human.
   Fonts: Cormorant Garamond (display) + Source Serif 4 (body) + DM Sans (UI)
   ============================================================= */

/* ── Reset ───────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { scroll-behavior: smooth; }
html, body { height: 100%; }
body { line-height: 1.65; -webkit-font-smoothing: antialiased; }
img, picture, video { display: block; max-width: 100%; }
input, button, textarea, select { font: inherit; }
p, h1, h2, h3, h4 { overflow-wrap: break-word; }

/* ── Design tokens ───────────────────────────────────────────── */
:root {
  --ivory:         #faf7f0;
  --cream:         #f3ede0;
  --warm-white:    #fffef9;
  --parchment:     #e3d8c0;

  --verde:         #2d6a4f;
  --verde-light:   #52975f;
  --verde-ghost:   #eef5f0;
  --rosso:         #9b2335;
  --rosso-ghost:   #fdf0f0;
  --gold:          #b5860d;
  --gold-ghost:    #fdf8ec;

  --text:          #1c1810;
  --text-2:        #3d3228;
  --muted:         #7a6d5e;
  --border:        #ddd5c4;
  --border-light:  #ede7d8;

  --primary:       var(--verde);
  --primary-hover: #235c43;

  --font-display:  'Cormorant Garamond', Georgia, serif;
  --font-body:     'Source Serif 4', Georgia, serif;
  --font-ui:       'DM Sans', system-ui, sans-serif;

  --radius:    12px;
  --radius-lg: 18px;
  --shadow-sm: 0 2px 8px rgba(28,24,16,.07);
  --shadow:    0 6px 24px rgba(28,24,16,.10);
  --shadow-lg: 0 16px 48px rgba(28,24,16,.14);

  --flag: linear-gradient(90deg,var(--verde) 0 33.33%,#fff 33.33% 66.66%,var(--rosso) 66.66% 100%);
}

/* ── Base ────────────────────────────────────────────────────── */
body {
  font-family: var(--font-body);
  font-size: 1.0625rem;
  color: var(--text);
  background: var(--warm-white);
  min-height: 100svh;
  display: flex;
  flex-direction: column;
}
main { flex: 1; }

h1,h2,h3,h4 {
  font-family: var(--font-display);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -.01em;
  color: var(--text);
}
h1 { font-size: clamp(2rem,4vw,3rem); }
h2 { font-size: clamp(1.5rem,2.8vw,2.1rem); }
h3 { font-size: clamp(1.1rem,2vw,1.4rem); }
p  { margin-bottom: 1em; }
p:last-child { margin-bottom: 0; }
a  { color: var(--primary); text-decoration: none; transition: color .14s; }
a:hover { color: var(--primary-hover); }
address { font-style: normal; }

/* ── Utilities ───────────────────────────────────────────────── */
.container       { width: min(1140px,92%); margin-inline: auto; }
.container.narrow{ width: min(820px,92%); }
.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; }
.skip-link { position:absolute;left:-9999px;background:var(--text);color:#fff;padding:.5rem .75rem;z-index:1000; }
.skip-link:focus { left:1rem;top:1rem; }
.lead  { font-family:var(--font-body);font-size:1.125rem;color:var(--text-2);line-height:1.75;max-width:56ch; }
.muted { color:var(--muted); }
.accent{ color:var(--verde); }

/* Italian flag ornament */
.flag-strip {
  display: flex;
  gap: 3px;
  margin-bottom: .75rem;
}
.flag-strip span {
  display: block;
  width: 20px; height: 3px;
  border-radius: 2px;
}
.flag-strip .f1 { background: var(--verde); }
.flag-strip .f2 { background: var(--parchment); }
.flag-strip .f3 { background: var(--rosso); }

/* Section eyebrow label */
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-family: var(--font-ui);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--verde);
  margin-bottom: .65rem;
}
.eyebrow::before {
  content:'';
  width:20px;height:1.5px;
  background:var(--verde);
  border-radius:1px;
  flex-shrink:0;
}

/* ── Buttons ─────────────────────────────────────────────────── */
.btn {
  display: inline-flex;
  align-items: center;
  gap: .45em;
  padding: .68rem 1.35rem;
  border-radius: var(--radius);
  border: 1.5px solid transparent;
  font-family: var(--font-ui);
  font-size: .875rem;
  font-weight: 600;
  letter-spacing: .01em;
  text-decoration: none;
  cursor: pointer;
  transition: background .15s, color .15s, border-color .15s, transform .1s, box-shadow .15s;
  white-space: nowrap;
}
.btn.primary { background:var(--verde);color:#fff;border-color:var(--verde); }
.btn.primary:hover { background:var(--primary-hover);border-color:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 14px rgba(45,106,79,.25);color:#fff; }
.btn.ghost   { background:transparent;color:var(--verde);border-color:var(--verde); }
.btn.ghost:hover { background:var(--verde-ghost);transform:translateY(-1px); }
.btn.outline { background:#fff;color:var(--text-2);border-color:var(--border); }
.btn.outline:hover { background:var(--cream);border-color:var(--parchment); }
.btn.tiny { padding:.25rem .6rem;font-size:.75rem;border-radius:6px; }

/* ── Header ──────────────────────────────────────────────────── */
.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: rgba(255,254,249,.96);
  backdrop-filter: saturate(180%) blur(8px);
  border-bottom: 1px solid var(--border-light);
  overflow: visible;
}
/* Italian flag top accent */
.site-header::before {
  content:'';
  display:block;
  height:3px;
  background: var(--flag);
}
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .6rem 0;
  gap: 1rem;
}

/* Brand */
.brand { display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--text);flex-shrink:0; }
.brand:hover { color:var(--text); }
.brand-mark {
  display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;
  background:var(--ivory);
  border:1px solid var(--border);
  border-radius:10px;
  overflow:hidden;
  flex-shrink:0;
}
.brand-logo { width:auto;height:30px;object-fit:contain; }
.brand-text  { display:flex;flex-direction:column;line-height:1.1; }
.brand-title {
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 600;
  color: var(--text);
}
.brand-subtitle {
  font-family: var(--font-ui);
  font-size: .72rem;
  color: var(--muted);
  letter-spacing: .02em;
}

/* Nav */
.site-nav  { display:block; }
.nav-list  { list-style:none;display:flex;gap:.1rem;align-items:center;flex-wrap:wrap; }
.nav-link  {
  display:inline-flex;align-items:center;
  padding:.42rem .7rem;
  border-radius:8px;
  font-family:var(--font-ui);
  font-size:.86rem;
  font-weight:500;
  color:var(--text-2);
  text-decoration:none;
  transition:background .12s,color .12s;
  white-space:nowrap;
}
.nav-link:hover { background:var(--cream);color:var(--text); }
.nav-link.is-active { background:var(--verde-ghost);color:var(--verde);font-weight:600; }

/* Dropdown */
.nav-item.has-dropdown { position:relative; }
.dropdown-toggle::after { content:'▾';margin-left:.3rem;font-size:.7em;opacity:.55;transition:transform .2s; }
.has-dropdown.open .dropdown-toggle::after { transform:rotate(180deg); }
.dropdown-menu {
  display:none !important;
  position:absolute;top:calc(100% + 4px);left:0;
  min-width:190px;
  background:var(--warm-white);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:.35rem;
  box-shadow:var(--shadow);
  z-index:1100;
  list-style:none;
}
.has-dropdown.open .dropdown-menu { display:block !important; }
.dropdown-menu .nav-link { display:block;padding:.52rem .75rem;border-radius:7px; }

/* Mobile toggle */
.nav-toggle {
  display:none;
  width:38px;height:38px;
  border:1px solid var(--border);
  background:var(--warm-white);
  border-radius:8px;
  cursor:pointer;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  padding:0;
}
.nav-toggle-bar,.nav-toggle-bar::before,.nav-toggle-bar::after {
  content:'';display:block;
  width:17px;height:1.5px;
  background:var(--text);
  margin:0 auto;position:relative;
}
.nav-toggle-bar::before { position:absolute;top:-6px; }
.nav-toggle-bar::after  { position:absolute;top: 6px; }

/* ── Page Hero (inner pages) ─────────────────────────────────── */
.page-hero {
  background: linear-gradient(155deg,var(--ivory) 0%,var(--cream) 55%,#e5d9c3 100%);
  border-bottom: 1px solid var(--border-light);
  padding: 3.25rem 0 2.75rem;
  position: relative;
}
.page-hero::after {
  content:'✦';
  position:absolute;right:-30px;top:50%;
  transform:translateY(-50%);
  font-size:16rem;color:var(--parchment);opacity:.3;
  pointer-events:none;line-height:1;
}
.page-hero .container { position:relative;z-index:1; }
.page-hero h1 { font-size:clamp(1.9rem,4vw,2.75rem);margin-bottom:.4rem; }

/* ── Prose ───────────────────────────────────────────────────── */
.prose h2 {
  font-size:clamp(1.25rem,2.4vw,1.65rem);
  margin:2rem 0 .65rem;
  border-bottom:1px solid var(--border-light);
  padding-bottom:.45rem;
}
.prose h3  { font-size:1.1rem;margin:1.25rem 0 .35rem; }
.prose p   { font-size:1.025rem;line-height:1.8;margin-bottom:.9em; }
.prose ul,.prose ol { padding-left:1.5em;margin-bottom:.9em; }
.prose li  { margin-bottom:.4em;line-height:1.7; }
.prose a   { color:var(--verde);text-decoration:underline;text-underline-offset:3px; }

/* ── Cards ───────────────────────────────────────────────────── */
.card {
  background:var(--warm-white);
  border:1px solid var(--border-light);
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow-sm);
  display:flex;flex-direction:column;
  transition:transform .2s,box-shadow .2s;
}
.card:hover { transform:translateY(-3px);box-shadow:var(--shadow); }
.card-image { aspect-ratio:16/10;object-fit:cover;width:100%; }
.card-body  {
  padding:1.2rem 1.35rem;
  display:flex;flex-direction:column;gap:.45rem;flex:1;
}
.card-body h3 { font-size:1.15rem; }
.card-body p  { color:var(--text-2);font-size:.93rem;line-height:1.7;flex:1; }
.card-link {
  font-family:var(--font-ui);font-weight:600;font-size:.86rem;
  color:var(--verde);display:inline-flex;align-items:center;gap:.3em;margin-top:.2rem;
}
.card-link::after { content:'→'; }
.card-link:hover { color:var(--primary-hover); }
.tag {
  display:inline-block;padding:.18rem .5rem;border-radius:999px;
  background:var(--verde-ghost);color:var(--verde);
  font-family:var(--font-ui);font-size:.76rem;font-weight:600;letter-spacing:.02em;
}

/* ── Quick-link cards ────────────────────────────────────────── */
.ql-card {
  display:block;
  background:var(--warm-white);
  border:1px solid var(--border-light);
  border-radius:var(--radius-lg);
  padding:1.35rem 1.45rem;
  text-decoration:none;color:var(--text);
  box-shadow:var(--shadow-sm);
  position:relative;overflow:hidden;
  transition:transform .2s,box-shadow .2s,border-color .2s;
}
.ql-card::after {
  content:'';position:absolute;left:0;top:0;bottom:0;width:3px;
  background:var(--flag);opacity:0;transition:opacity .2s;
}
.ql-card:hover { transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--border);color:var(--text); }
.ql-card:hover::after { opacity:1; }
.ql-card h3 { font-size:1.08rem;margin-bottom:.3rem; }
.ql-card p  { font-size:.9rem;color:var(--muted);line-height:1.6;margin:0; }

/* ── Grids ───────────────────────────────────────────────────── */
.grid-3 { display:grid;gap:1.1rem;grid-template-columns:repeat(3,1fr); }
.grid-2 { display:grid;gap:1.1rem;grid-template-columns:repeat(2,1fr); }
.cards  { display:grid;gap:1.25rem;grid-template-columns:repeat(3,1fr); }

/* ── Homepage Hero ───────────────────────────────────────────── */
.hero {
  background:
    radial-gradient(ellipse 900px 500px at 88% -80px,#e8f4ec 0%,transparent 65%),
    linear-gradient(170deg,var(--ivory) 0%,var(--cream) 55%,#e5d9c3 100%);
  border-bottom:1px solid var(--border-light);
  position:relative;overflow:hidden;
}
.hero::before {
  content:'AMC';
  position:absolute;right:-15px;bottom:-25px;
  font-family:var(--font-display);font-size:16rem;font-weight:700;
  color:var(--parchment);opacity:.17;pointer-events:none;
  line-height:1;letter-spacing:-.04em;
}
.hero-inner {
  display:grid;grid-template-columns:1.2fr 1fr;
  gap:3rem;padding:4.5rem 0 3.5rem;
  align-items:center;position:relative;z-index:1;
}
.hero h1 { font-size:clamp(2.2rem,4vw,3.1rem);line-height:1.1;margin-bottom:.65rem; }
.hero-copy { max-width:560px; }

.hero-badge {
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.28rem .7rem .28rem .5rem;
  background:var(--warm-white);
  border:1px solid var(--border);
  border-radius:999px;
  font-family:var(--font-ui);font-size:.76rem;font-weight:600;
  color:var(--verde);margin-bottom:.9rem;
  box-shadow:var(--shadow-sm);
}
.hero-badge .badge-dot { width:7px;height:7px;border-radius:50%;background:var(--verde); }

.hero-cta { display:flex;gap:.7rem;margin-top:1.1rem;flex-wrap:wrap; }
.club-address {
  margin-top:1.1rem;
  font-family:var(--font-ui);font-size:.86rem;
  color:var(--muted);line-height:1.65;
}
.club-address a { color:var(--muted);text-decoration:underline;text-underline-offset:3px; }
.club-address a:hover { color:var(--verde); }

/* Map */
.hero-image { position:relative; }
.map-embed {
  width:100%;height:290px;border:0;
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);display:block;
  transition:transform .3s,box-shadow .3s;
}
.map-embed:hover { transform:translateY(-3px);box-shadow:0 24px 60px rgba(28,24,16,.18); }
.flag-ribbon {
  position:absolute;inset:auto 14px 14px auto;
  width:15px;height:60px;border-radius:8px;
  background:linear-gradient(180deg,var(--verde) 0 33.33%,#fff 33.33% 66.66%,var(--rosso) 66.66% 100%);
  box-shadow:0 4px 12px rgba(0,0,0,.18);
}

/* ── Quick links section ─────────────────────────────────────── */
.quick-links {
  padding:3rem 0;
  background:var(--warm-white);
  border-bottom:1px solid var(--border-light);
}

/* ── Section helpers ─────────────────────────────────────────── */
.section-head { text-align:center;margin:0 auto 2rem;max-width:580px; }
.section-head h2 { font-size:clamp(1.5rem,2.8vw,2rem); }
.section-head p  { color:var(--muted);margin-top:.45rem; }
.events { padding:3.5rem 0 4.5rem;background:linear-gradient(180deg,var(--warm-white),var(--ivory) 40%,var(--warm-white)); }

/* Announce bar */
.announce {
  display:flex;align-items:center;gap:.7rem;
  background:var(--gold-ghost);border:1px solid #e6ca8a;
  border-radius:var(--radius);padding:.6rem 1rem;margin-bottom:1.1rem;
  font-family:var(--font-ui);font-size:.875rem;
}
.announce-dot {
  width:7px;height:7px;border-radius:50%;background:var(--gold);flex-shrink:0;
  animation:pulse 2s infinite;
}
@keyframes pulse {
  0%  {box-shadow:0 0 0 0 rgba(181,134,13,.5);}
  70% {box-shadow:0 0 0 8px rgba(181,134,13,0);}
  100%{box-shadow:0 0 0 0 rgba(181,134,13,0);}
}

/* ── Events page rows ────────────────────────────────────────── */
.events-list { padding:1.5rem 0; }
.event-row {
  display:flex;gap:1.2rem;
  padding:1.2rem 0;border-bottom:1px solid var(--border-light);
  align-items:flex-start;
}
.event-row:last-child { border-bottom:none; }
.event-date {
  min-width:60px;text-align:center;flex-shrink:0;
  background:var(--verde-ghost);border:1px solid rgba(45,106,79,.15);
  border-radius:var(--radius);padding:.45rem .2rem;
}
.event-date .month {
  font-family:var(--font-ui);font-size:.62rem;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--verde);
}
.event-date .day {
  font-family:var(--font-display);font-size:1.55rem;font-weight:600;
  color:var(--text);line-height:1;
}
.event-calendar {
  min-width:60px;text-align:center;flex-shrink:0;
  border:1px dashed var(--border);border-radius:var(--radius);
  padding:.45rem;font-family:var(--font-ui);font-size:.76rem;
  font-weight:600;color:var(--muted);
}
.event-info h4 { font-size:1.03rem;margin-bottom:.2rem; }
.event-info p  { font-size:.9rem;color:var(--text-2);margin-bottom:.35rem; }
.event-meta {
  display:flex;gap:.9rem;
  font-family:var(--font-ui);font-size:.8rem;color:var(--muted);flex-wrap:wrap;
}
.event-flyer { margin-top:.7rem;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border-light);box-shadow:var(--shadow-sm); }
.event-flyer iframe { width:100%;height:370px;border:0;display:block; }

/* ── Hours page ──────────────────────────────────────────────── */
.hours-card {
  background:var(--warm-white);border:1px solid var(--border-light);
  border-radius:var(--radius-lg);padding:1.4rem;box-shadow:var(--shadow-sm);
}
.hours-grid { display:grid;grid-template-columns:1fr auto;gap:.38rem .7rem; }
.hours-grid dt { font-weight:600;font-family:var(--font-ui);font-size:.93rem; }
.hours-grid dd { margin:0;color:var(--text-2);font-family:var(--font-ui);font-size:.93rem; }
.asof-badge {
  display:inline-block;padding:.18rem .62rem;border-radius:999px;
  background:var(--verde-ghost);color:var(--verde);
  border:1px solid rgba(45,106,79,.2);
  font-family:var(--font-ui);font-weight:600;font-size:.8rem;margin-bottom:.9rem;
}
.note-card {
  background:var(--gold-ghost);border:1px solid #e6ca8a;
  border-radius:var(--radius);padding:.9rem 1.1rem;
}
.note-card p { font-size:.92rem; }
.law-card {
  background:var(--ivory);border:1px solid var(--border-light);
  border-radius:var(--radius);padding:.9rem 1.1rem;
}
.law-card h3 { font-size:.98rem;margin-bottom:.3rem; }
.conduct-list { margin:.45rem 0 0 1.1em; }
.conduct-list li { margin:.32rem 0;font-size:.93rem;line-height:1.65; }

/* ── Photo gallery ───────────────────────────────────────────── */
.photo-card {
  background:var(--warm-white);border:1px solid var(--border-light);
  border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);
  transition:transform .2s,box-shadow .2s;
}
.photo-card:hover { transform:translateY(-2px);box-shadow:var(--shadow); }
.photo-card img { aspect-ratio:4/3;object-fit:cover;width:100%;display:block; }
.photo-card figcaption {
  display:flex;align-items:center;justify-content:space-between;
  padding:.55rem .85rem;font-family:var(--font-ui);font-size:.8rem;color:var(--muted);
}

/* ── Officers ────────────────────────────────────────────────── */
.roster-card {
  background:var(--warm-white);border:1px solid var(--border-light);
  border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);margin-bottom:1.4rem;
}
.roster-head {
  background:linear-gradient(135deg,var(--verde) 0%,#3a8a60 100%);
  color:#fff;font-family:var(--font-display);font-size:1.1rem;
  padding:.7rem 1.2rem;margin:0;letter-spacing:.01em;
}
.roster-list { padding:.4rem 0; }
.roster-row {
  display:grid;grid-template-columns:1fr 1.4fr;gap:.4rem 1rem;
  padding:.65rem 1.2rem;border-bottom:1px solid var(--border-light);align-items:baseline;
}
.roster-row:last-child { border-bottom:none; }
.role {
  font-family:var(--font-ui);font-size:.72rem;font-weight:700;
  letter-spacing:.07em;text-transform:uppercase;color:var(--verde);
}
.roster-name { font-family:var(--font-display);font-size:1.03rem;font-weight:600;color:var(--text); }
.officers-note { color:var(--muted);font-size:.88rem;margin-top:.4rem; }

/* ── Bylaws ──────────────────────────────────────────────────── */
.article {
  background:var(--warm-white);border:1px solid var(--border-light);
  border-radius:var(--radius-lg);padding:1.4rem;margin-bottom:1.2rem;box-shadow:var(--shadow-sm);
}
.article h2 { font-size:1.15rem;color:var(--verde);margin-bottom:.1rem;border:none;padding:0; }
.article h3 { font-size:.98rem;margin:1rem 0 .3rem; }
.article ol,.article ul { padding-left:1.5em; }
.article li { margin:.38rem 0;font-size:.93rem;line-height:1.68; }

/* Collapsible story */
details.story {
  background:var(--warm-white);border:1px solid var(--border-light);
  border-radius:var(--radius);padding:.9rem 1.1rem .45rem;margin-bottom:.9rem;box-shadow:var(--shadow-sm);
}
details.story > summary {
  cursor:pointer;list-style:none;
  font-weight:600;font-family:var(--font-display);font-size:1.05rem;
  padding:.18rem .3rem;border-radius:5px;color:var(--verde);transition:background .12s;
}
details.story > summary::-webkit-details-marker,
details.story > summary::marker { display:none; }
details.story[open] > summary { background:var(--verde-ghost); }
details.story > summary::before { content:'+ ';opacity:.55; }
details.story[open] > summary::before { content:'− '; }

/* ── Menu list (rental) ──────────────────────────────────────── */
.menu-list { list-style:none;padding:0; }
.menu-list li {
  padding:.52rem .7rem;border-bottom:1px solid var(--border-light);
  font-family:var(--font-display);font-size:1.03rem;color:var(--text-2);
  display:flex;align-items:center;gap:.5rem;
}
.menu-list li::before { content:'✦';color:var(--gold);font-size:.68rem;flex-shrink:0; }
.menu-list li:last-child { border-bottom:none; }

/* ── Footer ──────────────────────────────────────────────────── */
.site-footer { background:#1a1510;color:#c8b99a;margin-top:auto; }
.footer-flag { height:3px;background:var(--flag); }
.footer-body {
  display:grid;grid-template-columns:1.8fr 1fr 1fr;
  gap:2.5rem;padding:3rem 0 2.5rem;
  border-bottom:1px solid rgba(255,255,255,.06);
}
.footer-brand-link {
  display:flex;align-items:flex-start;gap:.7rem;text-decoration:none;color:inherit;
  margin-bottom:.85rem;
}
.footer-brand-link img {
  width:42px;height:42px;object-fit:contain;
  border:1px solid rgba(255,255,255,.1);border-radius:8px;
  padding:.2rem;background:rgba(255,255,255,.05);flex-shrink:0;
}
.footer-brand-link strong {
  display:block;font-family:var(--font-display);
  font-size:1rem;font-weight:600;color:#f0e6d0;line-height:1.2;
}
.footer-brand-link span {
  display:block;font-family:var(--font-ui);font-size:.75rem;color:#6b5e4a;margin-top:.15rem;
}
.footer-desc {
  font-family:var(--font-ui);font-size:.8rem;color:#5e5040;
  line-height:1.65;margin-bottom:.75rem;
}
.footer-address {
  font-family:var(--font-ui);font-size:.8rem;color:#6b5e4a;line-height:1.75;
}
.footer-address a { color:#6b5e4a; }
.footer-address a:hover { color:#c8b99a; }

.footer-col h4 {
  font-family:var(--font-ui);font-size:.68rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:#8a7a62;margin-bottom:.8rem;
}
.footer-links { list-style:none;padding:0;display:flex;flex-direction:column;gap:.42rem; }
.footer-links a { font-family:var(--font-ui);font-size:.86rem;color:#6b5e4a;transition:color .12s; }
.footer-links a:hover { color:#c8b99a; }

.footer-bottom {
  display:flex;align-items:center;justify-content:space-between;
  gap:1rem;padding:.9rem 0;
  font-family:var(--font-ui);font-size:.76rem;color:#3e3025;flex-wrap:wrap;
}
.to-top { color:#5e5040;text-decoration:none;transition:color .12s;font-weight:500; }
.to-top:hover { color:#c8b99a; }

/* ── Photo strip ─────────────────────────────────────────────── */
.photo-strip {
  display:flex;gap:.55rem;overflow-x:auto;
  padding-bottom:.2rem;scroll-snap-type:x mandatory;
}
.photo-strip img {
  height:155px;width:auto;border-radius:var(--radius);
  object-fit:cover;scroll-snap-align:start;box-shadow:var(--shadow-sm);
}

/* ── Responsive ──────────────────────────────────────────────── */
@media (max-width:960px) {
  .hero-inner { grid-template-columns:1fr;padding:3rem 0 2.5rem; }
  .hero::before { font-size:9rem;right:-5px;bottom:0; }
  .cards  { grid-template-columns:1fr 1fr; }
  .grid-3 { grid-template-columns:1fr 1fr; }
  .footer-body { grid-template-columns:1fr 1fr; }
}
@media (max-width:700px) {
  .nav-toggle  { display:flex; }
  .site-nav {
    display:none;position:absolute;right:4%;top:calc(100% + 4px);
    background:var(--warm-white);border:1px solid var(--border);
    border-radius:var(--radius-lg);padding:.45rem;
    width:min(92vw,330px);box-shadow:var(--shadow-lg);z-index:100;
  }
  .site-nav.open { display:block; }
  .nav-list  { flex-direction:column;gap:.08rem; }
  .nav-link  { padding:.62rem .9rem; }
  .brand-subtitle { display:none; }
  .cards  { grid-template-columns:1fr; }
  .grid-3 { grid-template-columns:1fr; }
  .grid-2 { grid-template-columns:1fr; }
  .hero-cta { flex-direction:column;align-items:flex-start; }
  .footer-body { grid-template-columns:1fr;gap:1.65rem; }
  .roster-row  { grid-template-columns:1fr; }
  .event-row   { flex-direction:column;gap:.7rem; }
}