/* ============================================================
   CENTURY CLUB — Design System  (Bootstrap 5 override)
   Heritage palette: Deep Wine · Crimson Red · Warm Ivory
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600&family=Inter:wght@300;400;500;600;700&family=Tangerine:wght@400;700&display=swap');

:root {
  --cc-ink:        #181818;
  --cc-ink-2:      #3a3a3a;
  --cc-muted:      #6b6b6b;
  --cc-rule:       rgba(24,24,24,0.1);
  --cc-paper:      #faf6ec;
  --cc-paper-2:    #f1ead7;
  --cc-cream:      #fdfaf2;
  --cc-green:      #2a0808;
  --cc-green-2:    #3d0c0c;
  --cc-green-3:    #5c1414;
  --cc-green-soft: #f5eaea;
  --cc-gold:       #cc1a1a;
  --cc-gold-2:     #e07878;
  --cc-gold-soft:  #f5dada;
  --cc-serif:  "Cormorant Garamond","Times New Roman",serif;
  --cc-sans:   "Inter",system-ui,-apple-system,sans-serif;
  --cc-script: "Tangerine","Cormorant Garamond",cursive;
}

/* ── Reset / base ─────────────────────────────────────────── */
* { box-sizing: border-box; }
body {
  background: var(--cc-paper);
  color: var(--cc-ink);
  font-family: var(--cc-sans);
  font-size: 15px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; }
a   { color: inherit; text-decoration: none; }
p   { color: var(--cc-ink-2); margin-bottom: 1em; }

h1,h2,h3,h4,h5 {
  font-family: var(--cc-serif);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -0.01em;
  color: var(--cc-green);
  margin-top: 0;
}
h1 { font-size: clamp(38px,6vw,80px); }
h2 { font-size: clamp(28px,4vw,52px); }
h3 { font-size: clamp(22px,3vw,36px); }
h4 { font-size: clamp(18px,2.5vw,26px); }
.lead { font-size: 16px; line-height: 1.65; color: var(--cc-ink-2); }

/* ── Typography helpers ───────────────────────────────────── */
.cc-serif  { font-family: var(--cc-serif); }
.cc-script { font-family: var(--cc-script); font-weight: 400; }
.cc-kicker {
  font-family: var(--cc-sans);
  font-size: 11px;
  letter-spacing: 2.4px;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--cc-gold);
  display: block;
}
.cc-kicker.dark  { color: var(--cc-green); }
.cc-kicker.light { color: var(--cc-gold-2); }

/* ── Utility bar ──────────────────────────────────────────── */
.cc-util-bar {
  background: var(--cc-green);
  color: var(--cc-cream);
  font-size: 12px;
  padding: 7px 0;
  letter-spacing: 0.3px;
}
.cc-util-bar a { color: rgba(255,255,255,0.8); margin-left: 20px; transition: color .15s; }
.cc-util-bar a:hover { color: var(--cc-gold-2); }
.cc-util-bar .gold { color: var(--cc-gold-2); }

/* ── Navigation ───────────────────────────────────────────── */
.cc-navbar {
  background: var(--cc-cream);
  border-bottom: 1px solid var(--cc-rule);
  padding: 0;                 /* height controlled by inner cells */
}

/* Brand / logo */
.cc-brand {
  display: flex;
  align-items: center;
  gap: 11px;
  text-decoration: none;
  padding: 14px 0;
}
.cc-brand .crest {
  width: 44px; height: 44px;
  border: 1.5px solid var(--cc-green);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--cc-serif);
  font-style: italic; font-weight: 600; font-size: 22px;
  color: var(--cc-green);
  flex-shrink: 0;
}
.cc-brand .brand-name {
  font-family: var(--cc-serif);
  font-size: 21px; font-weight: 600;
  color: var(--cc-green); line-height: 1;
}
.cc-brand .brand-name small {
  display: block;
  font-family: var(--cc-sans);
  font-size: 9.5px; letter-spacing: 2.2px;
  text-transform: uppercase;
  color: var(--cc-gold); font-weight: 600;
  margin-top: 4px;
}

/* Toggler (custom, no Bootstrap icon dependency) */
.cc-toggler {
  border: 1.5px solid var(--cc-green);
  border-radius: 0;
  background: transparent;
  width: 42px; height: 38px;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: 5px; cursor: pointer; padding: 0;
}
.cc-toggler span {
  display: block; width: 20px; height: 2px;
  background: var(--cc-green);
  transition: all .2s ease;
}
.cc-toggler:focus { outline: 2px solid var(--cc-gold); outline-offset: 2px; }

/* Nav links */
.cc-nav-link {
  font-family: var(--cc-sans) !important;
  font-size: 11.5px !important;
  letter-spacing: 0.9px !important;
  text-transform: uppercase !important;
  font-weight: 600 !important;
  color: var(--cc-ink-2) !important;
  padding: 6px 12px !important;
  border-bottom: 2px solid transparent;
  transition: color .18s, border-color .18s;
  white-space: nowrap;
}
.cc-nav-link:hover { color: var(--cc-green) !important; border-color: var(--cc-gold); }
.cc-nav-link.active{ color: var(--cc-green) !important; border-color: var(--cc-gold); }

/* Mobile dropdown appearance */
@media (max-width: 991.98px) {
  .cc-navbar .navbar-collapse {
    border-top: 1px solid var(--cc-rule);
    margin-top: 4px;
    padding: 12px 0 16px;
    background: var(--cc-cream);
  }
  .cc-nav-link {
    padding: 10px 16px !important;
    border-bottom: 1px solid var(--cc-rule) !important;
    display: block;
  }
  .cc-nav-link:last-of-type { border-bottom: none !important; }
  .cc-navbar .nav-cta { margin: 14px 16px 0; }
}

/* ── Buttons ──────────────────────────────────────────────── */
.btn-cc {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 11px 22px;
  font-family: var(--cc-sans); font-size: 11.5px; font-weight: 600;
  letter-spacing: 1.4px; text-transform: uppercase;
  border-radius: 6px; cursor: pointer;
  transition: all .2s ease;
  border: 1.5px solid var(--cc-green);
  background: var(--cc-green); color: var(--cc-cream);
  text-decoration: none; white-space: nowrap;
}
.btn-cc:hover                { background: var(--cc-green-2); border-color: var(--cc-green-2); color: var(--cc-cream); }
.btn-cc.gold                 { background: var(--cc-gold); color: #ffffff; border-color: var(--cc-gold); font-weight: 700; letter-spacing: 1.8px; box-shadow: 0 2px 10px rgba(204,26,26,.28); }
.btn-cc.gold:hover           { background: #a81515; border-color: #a81515; color: #ffffff; box-shadow: 0 4px 18px rgba(204,26,26,.42); }
.btn-cc.ghost                { background: transparent; color: var(--cc-green); }
.btn-cc.ghost:hover          { background: var(--cc-green); color: var(--cc-cream); }
.btn-cc.ghost-light          { background: transparent; color: var(--cc-cream); border-color: rgba(255,255,255,.5); }
.btn-cc.ghost-light:hover    { background: var(--cc-cream); color: var(--cc-green); border-color: var(--cc-cream); }

/* ── News Ticker ──────────────────────────────────────────── */
.news-ticker {
  display: flex;
  align-items: stretch;
  overflow: hidden;
  height: 44px;
  background: var(--cc-green);
  border-bottom: 2px solid var(--cc-gold);
}
.news-ticker-label {
  flex-shrink: 0;
  background: var(--cc-gold);
  color: #ffffff;
  font-family: var(--cc-sans);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 0 22px;
  display: flex;
  align-items: center;
  gap: 7px;
  position: relative;
  z-index: 1;
}
.news-ticker-label::after {
  content: '';
  position: absolute;
  right: -11px;
  top: 0;
  bottom: 0;
  border-top: 22px solid transparent;
  border-bottom: 22px solid transparent;
  border-left: 12px solid var(--cc-gold);
}
.news-ticker-track-wrap {
  flex: 1;
  overflow: hidden;
  display: flex;
  align-items: center;
  -webkit-mask-image: linear-gradient(to right, transparent, black 50px, black calc(100% - 40px), transparent);
  mask-image: linear-gradient(to right, transparent, black 50px, black calc(100% - 40px), transparent);
}
.news-ticker-track {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  animation: ticker-scroll 52s linear infinite;
}
.news-ticker-track:hover { animation-play-state: paused; }
.news-ticker-item {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 0 40px;
  font-family: var(--cc-sans);
  font-size: 12.5px;
  color: rgba(255,255,255,.82);
}
.news-ticker-item .ticker-dot {
  width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--cc-gold);
  flex-shrink: 0;
}
.news-ticker-item strong { color: #ffffff; font-weight: 600; }
@keyframes ticker-scroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* ── Section padding ──────────────────────────────────────── */
.section-pad    { padding: 100px 0; }
.section-pad-sm { padding: 70px 0; }

/* ── Background utilities ─────────────────────────────────── */
.bg-paper   { background: var(--cc-paper); }
.bg-paper-2 { background: var(--cc-paper-2); }
.bg-cream   { background: var(--cc-cream); }
.bg-green   { background: var(--cc-green); }
.bg-green h2,.bg-green h3 { color: var(--cc-cream); }
.bg-green .cc-kicker { color: var(--cc-gold-2); }
.bg-green p { color: rgba(255,255,255,.75); }

/* ── Hero ─────────────────────────────────────────────────── */
.cc-hero {
  position: relative; min-height: 92vh;
  display: flex; align-items: center; justify-content: center;
  text-align: center; color: var(--cc-cream); overflow: hidden;
}
.cc-hero .hero-bg   { position: absolute; inset: 0; background-size: cover; background-position: center; filter: brightness(.55) saturate(1.1); }
.cc-hero .hero-veil { position: absolute; inset: 0; background: linear-gradient(180deg,rgba(42,8,8,.25) 0%,rgba(42,8,8,.65) 80%); }
.cc-hero .hero-content { position: relative; z-index: 2; padding: 60px 24px; max-width: 880px; }
.cc-hero .crest-line  { font-family: var(--cc-serif); font-style: italic; color: var(--cc-gold-2); margin-bottom: 22px; letter-spacing: 1px; }
.cc-hero h1           { font-size: clamp(42px,7vw,92px); color: var(--cc-cream); font-weight: 500; }
.cc-hero h1 em        { font-style: italic; color: var(--cc-gold-2); font-weight: 400; }
.cc-hero .hero-sub    { font-family: var(--cc-serif); font-style: italic; font-size: clamp(15px,2.2vw,22px); color: rgba(255,255,255,.85); margin: 22px auto 0; max-width: 620px; }
.scroll-hint {
  position: absolute; bottom: 30px; left: 50%; transform: translateX(-50%);
  font-family: var(--cc-serif); font-style: italic; font-size: 14px;
  color: rgba(255,255,255,.7); letter-spacing: 2px; z-index: 2;
}
.scroll-hint::after { content: ""; display: block; width: 1px; height: 28px; background: rgba(255,255,255,.5); margin: 8px auto 0; }

/* ── Sub-hero ─────────────────────────────────────────────── */
.cc-subhero {
  position: relative; min-height: 360px;
  display: flex; align-items: flex-end; justify-content: center;
  color: var(--cc-cream); overflow: hidden;
  padding: 0 24px 60px; text-align: center;
}
.cc-subhero .hero-bg   { position: absolute; inset: 0; background-size: cover; background-position: center; filter: brightness(.45); }
.cc-subhero .hero-veil { position: absolute; inset: 0; background: linear-gradient(180deg,rgba(42,8,8,.2) 0%,rgba(42,8,8,.7) 100%); }
.cc-subhero .hero-content { position: relative; z-index: 2; max-width: 880px; }
.cc-subhero h1 { color: var(--cc-cream); font-size: clamp(30px,5vw,64px); }
.cc-subhero .sub { font-family: var(--cc-serif); font-style: italic; font-size: 18px; color: rgba(255,255,255,.85); margin-top: 12px; }
.breadcrumbs { font-size: 11px; letter-spacing: 2.4px; text-transform: uppercase; color: var(--cc-gold-2); margin-bottom: 18px; }

/* ── Welcome strip ────────────────────────────────────────── */
.cc-welcome-strip { background: var(--cc-paper-2); padding: 28px 0; border-top: 1px solid var(--cc-rule); border-bottom: 1px solid var(--cc-rule); }
.crest-stamp {
  width: 80px; height: 80px; border: 2px solid var(--cc-green); border-radius: 50%;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; color: var(--cc-green); font-family: var(--cc-serif); flex-shrink: 0;
}
.crest-stamp .est { font-size: 9px; letter-spacing: 1.6px; text-transform: uppercase; }
.crest-stamp .yr  { font-size: 26px; font-style: italic; line-height: 1; margin-top: 2px; }

/* ── Facility cards ───────────────────────────────────────── */
.fac-card { background: var(--cc-cream); border: 1px solid var(--cc-rule); overflow: hidden; transition: all .3s ease; }
.fac-card:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(42,8,8,.1); }
.fac-card .fac-img { aspect-ratio: 5/4; background-size: cover; background-position: center; transition: transform .5s ease; }
.fac-card:hover .fac-img { transform: scale(1.04); }
.fac-card .fac-body { padding: 20px 22px 24px; }
.fac-card .fac-num  { font-family: var(--cc-serif); font-style: italic; font-size: 14px; color: var(--cc-gold); }
.fac-card h3        { font-size: 22px; margin: 4px 0 6px; }
.fac-card p         { font-size: 14px; margin: 0; }
.fac-link { display: inline-flex; align-items: center; gap: 8px; color: var(--cc-green); font-size: 12px; letter-spacing: 1.6px; text-transform: uppercase; font-weight: 600; margin-top: 14px; padding-bottom: 4px; border-bottom: 1px solid var(--cc-gold); }

/* ── Events ───────────────────────────────────────────────── */
.event-item { display: flex; align-items: center; gap: 24px; padding: 18px 0; border-top: 1px solid var(--cc-rule); }
.event-date { text-align: center; min-width: 64px; color: var(--cc-green); }
.event-date .day { font-family: var(--cc-serif); font-size: 38px; line-height: 1; font-weight: 500; }
.event-date .mon { font-size: 11px; letter-spacing: 1.4px; color: var(--cc-gold); margin-top: 2px; }
.event-title { font-family: var(--cc-serif); font-size: 20px; color: var(--cc-green); }
.event-meta  { font-size: 13px; color: var(--cc-muted); }

/* ── President quote ──────────────────────────────────────── */
.quote-mark { font-family: var(--cc-serif); font-size: 100px; line-height: .7; color: var(--cc-gold); }
.signature-row { display: flex; gap: 18px; align-items: center; margin-top: 28px; }
.signature-row .sig { font-family: var(--cc-script); font-size: 52px; color: var(--cc-green); line-height: 1; }
.signature-row .who { font-size: 13px; color: var(--cc-muted); }
.signature-row .who strong { display: block; font-family: var(--cc-serif); font-size: 18px; color: var(--cc-ink); font-weight: 500; }

/* ── Rule ornament ────────────────────────────────────────── */
.rule-orn { display: flex; align-items: center; gap: 14px; color: var(--cc-gold); }
.rule-orn::before,.rule-orn::after { content: ""; flex: 1; height: 1px; background: currentColor; opacity: .5; }

/* ── Gallery ──────────────────────────────────────────────── */
.gal-chip { padding: 7px 18px; border: 1px solid var(--cc-rule); background: transparent; font-size: 12px; letter-spacing: 1.4px; text-transform: uppercase; font-weight: 500; color: var(--cc-ink-2); cursor: pointer; border-radius: 999px; transition: all .18s ease; font-family: var(--cc-sans); }
.gal-chip:hover  { background: var(--cc-paper-2); }
.gal-chip.active { background: var(--cc-green); color: var(--cc-cream); border-color: var(--cc-green); }
.masonry-grid { columns: 4; column-gap: 14px; }
@media (max-width:991px) { .masonry-grid { columns: 3; } }
@media (max-width:767px) { .masonry-grid { columns: 2; } }
@media (max-width:480px) { .masonry-grid { columns: 1; } }
.masonry-item { break-inside: avoid; margin-bottom: 14px; overflow: hidden; position: relative; }
.masonry-item img { width: 100%; display: block; transition: transform .5s ease; }
.masonry-item:hover img { transform: scale(1.05); }
.masonry-caption { position: absolute; left: 0; right: 0; bottom: 0; padding: 14px 16px; color: var(--cc-cream); background: linear-gradient(0deg,rgba(0,0,0,.7),transparent); font-family: var(--cc-serif); font-style: italic; font-size: 16px; opacity: 0; transition: opacity .3s ease; }
.masonry-item:hover .masonry-caption { opacity: 1; }
.gal-feature-main { aspect-ratio: 16/9; background-size: cover; background-position: center; position: relative; overflow: hidden; }
.gal-feature-tile { background-size: cover; background-position: center; min-height: 200px; }

/* ── About ────────────────────────────────────────────────── */
.story-img-stack { position: relative; }
.story-img-stack .img-a { aspect-ratio: 4/5; background-size: cover; background-position: center; }
.story-img-stack .img-b { position: absolute; right: -28px; bottom: -28px; width: 55%; aspect-ratio: 4/3; background-size: cover; background-position: center; border: 8px solid var(--cc-paper); }
.timeline-track { position: relative; padding: 30px 0; }
.timeline-track::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1px; background: var(--cc-rule); }
.tl-item { text-align: center; padding: 18px 8px; }
.tl-item .yr  { font-family: var(--cc-serif); font-style: italic; font-size: 34px; color: var(--cc-green); line-height: 1; }
.tl-item .dot { width: 12px; height: 12px; border-radius: 50%; background: var(--cc-gold); margin: 12px auto; border: 3px solid var(--cc-paper-2); }
.tl-item .lbl { font-size: 12px; letter-spacing: 1.4px; text-transform: uppercase; color: var(--cc-muted); }
.tl-item .desc{ font-size: 13px; color: var(--cc-ink-2); margin-top: 4px; }
.value-card { text-align: center; padding: 18px; }
.value-icon { width: 56px; height: 56px; border: 1.5px solid var(--cc-gold); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 18px; color: var(--cc-green); font-size: 18px; }
.value-card h4 { font-size: 22px; margin-bottom: 8px; }
.value-card p  { font-size: 14px; color: var(--cc-muted); margin: 0; }
.badge-cc { padding: 7px 18px; border: 1px solid var(--cc-green); color: var(--cc-green); font-size: 12px; letter-spacing: 1.4px; text-transform: uppercase; display: inline-block; }

/* ── President ────────────────────────────────────────────── */
.president-portrait { aspect-ratio: 4/5; background-size: cover; background-position: center; position: relative; }
.president-seal { position: absolute; right: -22px; bottom: -22px; width: 108px; height: 108px; border-radius: 50%; background: var(--cc-gold); color: var(--cc-green); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; font-family: var(--cc-serif); font-style: italic; line-height: 1.2; padding: 12px; }
.president-seal .seal-title { font-size: 18px;color:#fff; }
.president-seal .seal-term  { font-size: 10px; letter-spacing: 1.2px; text-transform: uppercase; margin-top: 4px; font-style: normal; font-family: var(--cc-sans);color:#fff; }
.stat-row-grid { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--cc-rule); border-bottom: 1px solid var(--cc-rule); margin-top: 48px; }
.stat-block { padding: 26px 18px; text-align: center; border-right: 1px solid var(--cc-rule); }
.stat-block:last-child { border-right: none; }
.stat-block .stat-num   { font-family: var(--cc-serif); font-size: 52px; color: var(--cc-green); line-height: 1; }
.stat-block .stat-num .plus { color: var(--cc-gold); }
.stat-block .stat-label { font-size: 11px; letter-spacing: 1.8px; text-transform: uppercase; color: var(--cc-muted); margin-top: 8px; }

/* ── Council ──────────────────────────────────────────────── */
.council-featured { display: grid; grid-template-columns: 280px 1fr; gap: 50px; align-items: center; padding: 40px; background: var(--cc-cream); border: 1px solid var(--cc-rule); }
@media (max-width:767px) { .council-featured { grid-template-columns: 1fr; } }
.council-featured .ph { aspect-ratio: 1; background-size: cover; background-position: center; }
.council-card { background: var(--cc-cream); border: 1px solid var(--cc-rule); text-align: center; padding: 26px 18px; }
.council-card .ph   { aspect-ratio: 1; background-size: cover; background-position: center; border-radius: 50%; width: 130px; margin: 0 auto 16px; }
.council-card .role { font-size: 11px; letter-spacing: 1.6px; text-transform: uppercase; color: var(--cc-gold); margin-bottom: 6px; }
.council-card .name { font-family: var(--cc-serif); font-size: 22px; color: var(--cc-green); margin-bottom: 4px; }
.council-card .since{ font-size: 12px; color: var(--cc-muted); }
.member-card { background: var(--cc-cream); border: 1px solid var(--cc-rule); padding: 18px; text-align: center; }
.member-card .ph { aspect-ratio: 1; background-size: cover; background-position: center; border-radius: 50%; width: 80px; margin: 0 auto 12px; }
.member-card .name { font-family: var(--cc-serif); font-size: 16px; color: var(--cc-green); }
.member-card .role { font-size: 11px; color: var(--cc-muted); margin-top: 2px; }

/* ── Facilities page ──────────────────────────────────────── */
.fac-section { padding: 90px 0; border-top: 1px solid var(--cc-rule); }
.fac-section:nth-child(even) { background: var(--cc-paper-2); }
.fac-detail-img { aspect-ratio: 5/4; background-size: cover; background-position: center; }
.fac-num-large { font-family: var(--cc-serif); font-style: italic; font-size: 80px; color: var(--cc-gold-soft); line-height: 1; margin-bottom: 8px; }
.fac-feats { display: flex; gap: 22px; flex-wrap: wrap; margin: 22px 0 28px; padding: 22px 0; border-top: 1px solid var(--cc-rule); border-bottom: 1px solid var(--cc-rule); }
.fac-feat strong { display: block; font-family: var(--cc-serif); font-size: 20px; color: var(--cc-green); font-weight: 500; }
.fac-feat span   { color: var(--cc-muted); font-size: 11px; letter-spacing: 1.4px; text-transform: uppercase; }
.event-cta   { background: var(--cc-green); color: var(--cc-cream); padding: 70px 0; }
.event-cta h2{ color: var(--cc-cream); }
.event-cta p { color: rgba(255,255,255,.75); }

/* ── Contact ──────────────────────────────────────────────── */
.contact-card { background: var(--cc-cream); border: 1px solid var(--cc-rule); padding: 30px; }
.contact-card .contact-val { font-family: var(--cc-serif); font-size: 20px; color: var(--cc-green); line-height: 1.4; }
.contact-card .contact-val small { display: block; font-family: var(--cc-sans); font-size: 13px; color: var(--cc-muted); margin-top: 6px; font-style: normal; }
.hours-table .h-row { display: flex; justify-content: space-between; padding: 10px 0; border-bottom: 1px dashed var(--cc-rule); font-size: 14px; }
.hours-table .h-row:last-child { border: none; }
.hours-table .h-row strong { font-weight: 500; color: var(--cc-green); }
.contact-form-card { background: var(--cc-cream); border: 1px solid var(--cc-rule); padding: 44px; }
@media (max-width:576px) { .contact-form-card { padding: 24px; } }
.cc-field label { font-size: 11px; letter-spacing: 1.6px; text-transform: uppercase; color: var(--cc-muted); margin-bottom: 8px; font-weight: 500; display: block; }
.cc-field input,.cc-field textarea { width: 100%; padding: 10px 0; background: transparent; border: none; border-bottom: 1px solid var(--cc-rule); font-family: var(--cc-serif); font-size: 17px; color: var(--cc-ink); outline: none; border-radius: 0; }
.cc-field input:focus,.cc-field textarea:focus { border-color: var(--cc-green); }
.map-block { position: relative; aspect-ratio: 16/9; background-size: cover; background-position: center; overflow: hidden; margin-top: 0px; }
@media (max-width:767px) { .map-block { aspect-ratio: 4/3; } }
.map-pin { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-100%); text-align: center; }
.map-dot { width: 24px; height: 24px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); background: var(--cc-gold); border: 3px solid var(--cc-cream); box-shadow: 0 6px 16px rgba(0,0,0,.3); margin: 0 auto; }
.map-lbl { font-family: var(--cc-serif); font-size: 16px; color: var(--cc-green); background: var(--cc-cream); padding: 6px 14px; margin-top: 10px; border: 1px solid var(--cc-green); display: inline-block; white-space: nowrap; }

/* ── Footer ───────────────────────────────────────────────── */
.cc-footer { background: var(--cc-green); color: rgba(253,250,242,.85); padding: 80px 0 0; }
.cc-footer h5 { font-family: var(--cc-serif); font-size: 20px; color: var(--cc-cream); margin: 0 0 16px; }
.cc-footer ul { list-style: none; padding: 0; margin: 0; }
.cc-footer ul li { padding: 4px 0; font-size: 14px; }
.cc-footer ul li a:hover { color: var(--cc-gold-2); }
.cc-footer .footer-legal { border-top: 1px solid rgba(255,255,255,.12); padding: 22px 0; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px; font-size: 12px; color: rgba(255,255,255,.5); letter-spacing: .4px; }
.social-icon { width: 36px; height: 36px; border-radius: 50%; border: 1px solid rgba(255,255,255,.3); display: inline-flex; align-items: center; justify-content: center; color: var(--cc-cream); font-size: 13px; transition: all .2s ease; }
.social-icon:hover { border-color: var(--cc-gold-2); color: var(--cc-gold-2); }

/* ── Album cards ──────────────────────────────────────────── */
.album-card { background: var(--cc-cream); border: 1px solid var(--cc-rule); overflow: hidden; transition: all .3s ease; display: flex; flex-direction: column; height: 100%; }
.album-card:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(42,8,8,.12); }
.album-cover { aspect-ratio: 4/3; background-size: cover; background-position: center; position: relative; overflow: hidden; }
.album-cover-inner { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform .5s ease; }
.album-card:hover .album-cover-inner { transform: scale(1.05); }
.album-count { position: absolute; top: 14px; right: 14px; background: rgba(42,8,8,.88); color: var(--cc-cream); font-family: var(--cc-sans); font-size: 10.5px; letter-spacing: 1.4px; text-transform: uppercase; padding: 5px 12px; font-weight: 600; z-index: 1; }
.album-body { padding: 22px 24px 26px; display: flex; flex-direction: column; flex-grow: 1; }
.album-date { font-size: 11px; letter-spacing: 1.8px; text-transform: uppercase; color: var(--cc-gold); font-weight: 600; margin-bottom: 8px; font-family: var(--cc-sans); }
.album-title { font-family: var(--cc-serif); font-size: 22px; color: var(--cc-green); margin: 0 0 10px; line-height: 1.2; }
.album-desc { font-size: 13.5px; color: var(--cc-muted); margin: 0; line-height: 1.6; flex-grow: 1; }
.album-link { display: inline-flex; align-items: center; gap: 8px; color: var(--cc-green); font-size: 11.5px; letter-spacing: 1.6px; text-transform: uppercase; font-weight: 600; margin-top: 18px; padding-bottom: 3px; border-bottom: 1px solid var(--cc-gold); transition: gap .2s ease; width: fit-content; }
.album-link:hover { gap: 14px; }

/* Album detail page */
.album-hero-info { background: var(--cc-cream); border: 1px solid var(--cc-rule); padding: 40px; margin-bottom: 50px; }
.album-hero-info .album-stats { display: flex; gap: 28px; flex-wrap: wrap; border-top: 1px solid var(--cc-rule); padding-top: 22px; margin-top: 22px; }
.album-hero-info .album-stat strong { display: block; font-family: var(--cc-serif); font-size: 26px; color: var(--cc-green); line-height: 1; }
.album-hero-info .album-stat span { font-size: 11px; letter-spacing: 1.4px; text-transform: uppercase; color: var(--cc-muted); margin-top: 4px; display: block; }

/* ── Responsive ───────────────────────────────────────────── */
@media (max-width:991px) { .section-pad { padding: 70px 0; } .fac-section { padding: 60px 0; } }
@media (max-width:767px) { .section-pad { padding: 50px 0; } .section-pad-sm { padding: 40px 0; } .cc-hero { min-height: 80vh; } .story-img-stack .img-b { right: -8px; bottom: -8px; border-width: 5px; } }
@media (max-width:480px) { .stat-row-grid { grid-template-columns: 1fr; } .stat-block { border-right: none; border-bottom: 1px solid var(--cc-rule); } .stat-block:last-child { border-bottom: none; } }
.fac-section ul li{
    font-size: 16px;
    line-height: 1.65;
    color: var(--cc-ink-2) !important;
    font-weight:300;
}
.fac-section  .lead{
    font-size: 16px !important;
}
@media screen and (min-width:768px){
    .president-portrait-sec{
        position:sticky;
        top:140px;
    }
}