/* ==========================================================================
   JCSO Community theme — main stylesheet
   Ported from the JCSO redesign design system
   Palette: olive (heritage/olive branch), terracotta (tatreez embroidery
   thread), warm stone & cream (Jerusalem limestone), brass gold (accent).
   Signature motif: a diamond "stitch" pattern drawn from Palestinian tatreez
   embroidery, used as section dividers, card accents and focus states.
   ========================================================================== */


:root{
  /* Brand palette */
  --cream:      #FAF5EB;
  --cream-deep: #F1E8D6;
  --stone:      #E4D8C0;
  --stone-line: #D9C9AC;
  --ink:        #23241E;
  --ink-soft:   #5C5D51;
  --ink-faint:  #8B8B7C;
  --olive:      #711C2B;   /* primary brand — deep maroon (Jerusalem stone at dusk / tatreez wine-red) */
  --olive-dark: #400E17;   /* darkest maroon — footer, banners */
  --olive-mid:  #9A3244;   /* mid maroon */
  --olive-tint: #F5E7E7;   /* soft rose-cream tint */
  --terracotta: #B4472F;
  --terracotta-dark:#8C3423;
  --terracotta-tint:#F7E5DE;
  --gold:       #C69A3D;
  --gold-deep:  #8A6A24;
  --gold-tint:  #F5EAD1;
  --white:      #FFFDF8;

  /* Semantic */
  --bg: var(--cream);
  --surface: var(--white);
  --surface-alt: var(--cream-deep);
  --text: var(--ink);
  --text-soft: var(--ink-soft);
  --border: var(--stone-line);
  --accent: var(--gold);
  --brand: var(--olive);

  /* Type */
  --font-display: 'Tajawal', 'Segoe UI', sans-serif;
  --font-body: 'Tajawal', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono: 'IBM Plex Mono', ui-monospace, monospace;

  /* Radius & shadow */
  --r-sm: 6px;
  --r-md: 10px;
  --r-lg: 18px;
  --r-pill: 999px;
  --shadow-sm: 0 1px 2px rgba(35,36,30,.06), 0 1px 1px rgba(35,36,30,.04);
  --shadow-md: 0 8px 24px -8px rgba(35,36,30,.18);
  --shadow-lg: 0 24px 48px -16px rgba(35,36,30,.28);

  --container: 1200px;
}

/* ---------- Reset & base ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--text);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  line-height:1.55;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul,ol{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; cursor:pointer; }
input,textarea,select{ font-family:inherit; font-size:1rem; }
h1,h2,h3,h4{ font-family:var(--font-display); margin:0; color:var(--olive); font-weight:800; letter-spacing:-.01em; }
.text-gold{ color:var(--gold); }
p{ margin:0; }
:focus-visible{ outline:2px solid var(--terracotta); outline-offset:3px; border-radius:4px; }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}

.container{ max-width:var(--container); margin:0 auto; padding:0 24px; }
@media (max-width:640px){ .container{ padding:0 20px; } }

section{ position:relative; }
.section{ padding:96px 0; }
.section--tight{ padding:64px 0; }
@media (max-width:900px){ .section{ padding:72px 0; } .section--tight{ padding:48px 0; } }

.eyebrow{
  display:inline-flex; align-items:center; gap:.6em;
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--gold-deep); font-weight:600; margin-bottom:14px;
}
.eyebrow::before{
  content:""; width:16px; height:16px; flex:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1L15 8L8 15L1 8Z' fill='none' stroke='%23711C2B' stroke-width='1.4'/%3E%3C/svg%3E");
  background-size:contain; background-repeat:no-repeat;
}

.section-head{ max-width:640px; margin-bottom:48px; }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
h2.section-title{ font-size:clamp(1.9rem,3.2vw,2.6rem); line-height:1.15; }
.section-sub{ color:var(--text-soft); font-size:1.05rem; margin-top:14px; }

/* ---------- Stitch / tatreez motif ----------
   Cross-stitch "eight-pointed star" chain, the classic Palestinian tatreez
   unit, rendered in thread-red / maroon / gold so it reads as embroidery
   rather than a generic geometric divider. */
.stitch-divider{
  height:26px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='26'%3E%3Cg fill='none' stroke='%23B4472F' stroke-opacity='.65' stroke-width='1.6' stroke-linecap='square'%3E%3Cpath d='M14 2L22 13L14 24L6 13Z'/%3E%3Cpath d='M14 8L18 13L14 18L10 13Z'/%3E%3Cpath d='M0 13H6M22 13H28'/%3E%3C/g%3E%3C/svg%3E");
  background-repeat:repeat-x;
  background-position:center;
  background-size:28px 26px;
}
.stitch-divider--olive{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='26'%3E%3Cg fill='none' stroke='%23711C2B' stroke-opacity='.5' stroke-width='1.6' stroke-linecap='square'%3E%3Cpath d='M14 2L22 13L14 24L6 13Z'/%3E%3Cpath d='M14 8L18 13L14 18L10 13Z'/%3E%3Cpath d='M0 13H6M22 13H28'/%3E%3C/g%3E%3C/svg%3E");
}
.stitch-divider--gold{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='26'%3E%3Cg fill='none' stroke='%23C69A3D' stroke-opacity='.75' stroke-width='1.6' stroke-linecap='square'%3E%3Cpath d='M14 2L22 13L14 24L6 13Z'/%3E%3Cpath d='M14 8L18 13L14 18L10 13Z'/%3E%3Cpath d='M0 13H6M22 13H28'/%3E%3C/g%3E%3C/svg%3E");
}
.stitch-rule{
  width:56px; height:10px; margin:0 0 20px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='10'%3E%3Cpath d='M7 0L14 5L7 10L0 5Z' fill='%23B4472F'/%3E%3C/svg%3E");
  background-repeat:repeat-x; background-size:14px 10px;
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  padding:14px 28px; border-radius:var(--r-pill);
  font-weight:600; font-size:.95rem; border:1.5px solid transparent;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
  white-space:nowrap;
}
.btn-primary{ background:var(--olive); color:var(--white); box-shadow:var(--shadow-sm); }
.btn-primary:hover{ background:var(--olive-dark); transform:translateY(-2px); box-shadow:var(--shadow-md); }
.btn-accent{ background:var(--gold); color:var(--olive-dark); box-shadow:var(--shadow-sm); }
.btn-accent:hover{ background:#B78A2E; transform:translateY(-2px); box-shadow:var(--shadow-md); }
.btn-ghost{ background:transparent; color:var(--olive); border-color:var(--olive); }
.btn-ghost:hover{ background:var(--olive); color:var(--white); }
.btn-light{ background:var(--white); color:var(--olive); }
.btn-light:hover{ background:var(--olive); color:var(--white); transform:translateY(-2px); }
.btn-sm{ padding:10px 20px; font-size:.85rem; }
.btn-block{ width:100%; }
.btn[disabled]{ opacity:.5; cursor:not-allowed; transform:none !important; }

/* ---------- Header / Nav ---------- */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(250,245,235,.92); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--border);
}
.site-header .container{ display:flex; align-items:center; justify-content:space-between; height:84px; gap:24px; }
.brand{ display:flex; align-items:center; gap:12px; flex:none; }
.brand-mark{
  width:44px; height:44px; border-radius:50%;
  background:var(--olive); color:var(--white);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-weight:700; font-size:1.15rem;
  box-shadow:var(--shadow-sm);
}
.brand-name{ font-family:var(--font-display); font-weight:600; font-size:1.15rem; line-height:1.1; }
.brand-name span{ display:block; font-family:var(--font-mono); font-size:.62rem; letter-spacing:.12em; color:var(--text-soft); font-weight:500; text-transform:uppercase; margin-top:2px; }

.main-nav{ display:flex; align-items:center; gap:8px; }
.main-nav a{
  padding:10px 16px; border-radius:var(--r-pill); font-weight:600; font-size:.92rem;
  color:var(--text-soft); position:relative; transition:color .18s ease, background .18s ease;
}
.main-nav a:hover, .main-nav a.active{ color:var(--olive); background:var(--olive-tint); }

.header-actions{ display:flex; align-items:center; gap:12px; flex:none; }
.icon-btn{
  width:42px; height:42px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  border:1.5px solid var(--border); color:var(--text); background:var(--white); transition:.18s ease;
}
.icon-btn:hover{ border-color:var(--olive); color:var(--olive); }

.nav-toggle{ display:none; background:none; border:none; width:42px; height:42px; align-items:center; justify-content:center; }
.nav-toggle span, .nav-toggle::before, .nav-toggle::after{ content:""; display:block; width:22px; height:2px; background:var(--ink); border-radius:2px; }
.nav-toggle{ flex-direction:column; gap:5px; }

@media (max-width:960px){
  .main-nav{
    position:fixed; inset:84px 0 0 0; background:var(--cream); flex-direction:column; align-items:stretch;
    padding:24px; gap:4px; transform:translateY(-8px); opacity:0; pointer-events:none; transition:.22s ease; overflow-y:auto;
  }
  .main-nav.open{ transform:translateY(0); opacity:1; pointer-events:auto; }
  .main-nav a{ padding:16px 18px; font-size:1.05rem; border-bottom:1px solid var(--border); border-radius:0; }
  .nav-toggle{ display:flex; }
  .header-actions .btn span.long{ display:none; }
}

/* ---------- Footer ---------- */
.site-footer{ background:var(--olive-dark); color:#EFE9DA; padding:72px 0 28px; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:48px; padding-bottom:48px; }
.footer-brand p{ color:#C9D2C4; margin-top:14px; max-width:280px; font-size:.94rem; }
.footer-col h4{ color:var(--white); font-family:var(--font-body); font-weight:700; font-size:.82rem; letter-spacing:.08em; text-transform:uppercase; margin-bottom:18px; }
.footer-col li{ margin-bottom:12px; }
.footer-col a{ color:#C9D2C4; font-size:.94rem; transition:color .15s ease; }
.footer-col a:hover{ color:var(--gold); }
.footer-social{ display:flex; gap:10px; margin-top:18px; }
.footer-social a{ width:38px; height:38px; border-radius:50%; border:1px solid rgba(239,233,218,.3); display:flex; align-items:center; justify-content:center; }
.footer-social a:hover{ background:var(--gold); border-color:var(--gold); color:var(--olive-dark); }
.footer-bottom{ border-top:1px solid rgba(239,233,218,.15); padding-top:24px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:.82rem; color:#A9B4A2; }
@media (max-width:900px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .footer-grid{ grid-template-columns:1fr; gap:36px; } }

button.card, button.filter-pill, button.tab-btn, button.accordion-head{ font-family:var(--font-body); background:var(--white); }
button.card{ display:block; width:100%; }

/* ---------- Cards ---------- */
.card{
  background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg);
  overflow:hidden; transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:transparent; }
.card-media{ aspect-ratio:4/3; position:relative; overflow:hidden; }
.card-media img, .card-media .ph{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.card:hover .card-media img, .card:hover .card-media .ph{ transform:scale(1.06); }
.card-body{ padding:26px; }
.card-eyebrow{ font-family:var(--font-mono); font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-deep); font-weight:600; margin-bottom:10px; display:block;}
.card-title{ font-size:1.2rem; margin-bottom:8px; }
.card-text{ color:var(--text-soft); font-size:.94rem; }
.card-foot{ display:flex; align-items:center; justify-content:space-between; margin-top:18px; padding-top:18px; border-top:1px solid var(--border); font-size:.85rem; color:var(--text-soft); }

/* Placeholder imagery (no external photos — brand-pattern illustrations) */
.ph{
  display:flex; align-items:center; justify-content:center;
  background: linear-gradient(135deg, var(--olive-tint), var(--stone) 60%);
  position:relative;
}
.ph::after{
  content:""; position:absolute; inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40'%3E%3Cpath d='M20 2L38 20L20 38L2 20Z' fill='none' stroke='%2333513B' stroke-opacity='.14' stroke-width='1.2'/%3E%3C/svg%3E");
  background-size:40px 40px;
}
.ph-icon{ font-size:2.2rem; position:relative; z-index:1; opacity:.55; }
.ph--terracotta{ background:linear-gradient(135deg, var(--terracotta-tint), #eccdb8 70%); }
.ph--gold{ background:linear-gradient(135deg, var(--gold-tint), #e9d8ad 70%); }
.ph--dark{ background:linear-gradient(135deg, var(--olive), var(--olive-dark)); color:#EFE9DA; }

/* Badges / tags */
.badge{ display:inline-flex; align-items:center; gap:6px; padding:6px 14px; border-radius:var(--r-pill); font-size:.76rem; font-weight:700; letter-spacing:.03em; text-transform:uppercase; }
.badge-olive{ background:var(--olive-tint); color:var(--olive); }
.badge-terracotta{ background:var(--terracotta-tint); color:var(--terracotta-dark); }
.badge-gold{ background:var(--gold-tint); color:#8A6A24; }

/* ---------- Forms ---------- */
.form-grid{ display:grid; gap:20px; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
@media (max-width:640px){ .form-row{ grid-template-columns:1fr; } }
.field label{ display:block; font-weight:700; font-size:.85rem; margin-bottom:8px; color:var(--ink); }
.field .hint{ font-size:.8rem; color:var(--text-soft); margin-top:6px; }
.field input, .field textarea, .field select{
  width:100%; padding:13px 16px; border-radius:var(--r-sm); border:1.5px solid var(--border);
  background:var(--white); color:var(--text); transition:border-color .15s ease, box-shadow .15s ease;
}
.field textarea{ resize:vertical; min-height:120px; }
.field input:focus, .field textarea:focus, .field select:focus{
  border-color:var(--olive); box-shadow:0 0 0 4px var(--olive-tint); outline:none;
}
.field-check{ display:flex; align-items:flex-start; gap:10px; font-size:.9rem; color:var(--text-soft); }
.field-check input{ width:auto; margin-top:3px; accent-color:var(--olive); }
fieldset{ border:none; padding:0; margin:0; }
.select-wrap{ position:relative; }
.select-wrap::after{ content:"⌄"; position:absolute; right:16px; top:50%; transform:translateY(-50%); color:var(--text-soft); pointer-events:none; }
.select-wrap select{ appearance:none; }

/* ---------- Tabs ---------- */
.tabs{ display:flex; gap:6px; border-bottom:1px solid var(--border); margin-bottom:36px; overflow-x:auto; }
.tab-btn{ padding:14px 6px; margin-right:26px; font-weight:700; color:var(--text-soft); border-bottom:2px solid transparent; white-space:nowrap; background:none; border-top:none; border-left:none; border-right:none; }
.tab-btn.active{ color:var(--olive); border-color:var(--terracotta); }
.tab-panel{ display:none; }
.tab-panel.active{ display:block; animation:fadeIn .3s ease; }
@keyframes fadeIn{ from{ opacity:0; transform:translateY(6px);} to{opacity:1; transform:none;} }

/* Pills / filters */
.filter-row{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:40px; }
.filter-pill{ padding:9px 18px; border-radius:var(--r-pill); border:1.5px solid var(--border); font-size:.86rem; font-weight:600; color:var(--text-soft); background:var(--white); transition:.15s ease; }
.filter-pill.active, .filter-pill:hover{ border-color:var(--olive); color:var(--olive); background:var(--olive-tint); }

/* Accordion */
.accordion-item{ border-bottom:1px solid var(--border); }
.accordion-head{ width:100%; display:flex; justify-content:space-between; align-items:center; padding:22px 0; background:none; border:none; text-align:left; font-family:var(--font-display); font-size:1.08rem; font-weight:600; color:var(--ink); }
.accordion-head .plus{ font-family:var(--font-body); font-size:1.4rem; color:var(--terracotta); transition:transform .25s ease; flex:none; margin-left:16px; }
.accordion-item.open .plus{ transform:rotate(45deg); }
.accordion-panel{ max-height:0; overflow:hidden; transition:max-height .3s ease; }
.accordion-panel p{ padding-bottom:22px; color:var(--text-soft); max-width:640px; }

/* ---------- Grids / layout helpers ---------- */
.grid{ display:grid; gap:28px; }
.grid-2{ grid-template-columns:repeat(2,1fr); }
.grid-3{ grid-template-columns:repeat(3,1fr); }
.grid-4{ grid-template-columns:repeat(4,1fr); }
@media (max-width:960px){ .grid-4{ grid-template-columns:repeat(2,1fr);} .grid-3{ grid-template-columns:repeat(2,1fr);} }
@media (max-width:640px){ .grid-2,.grid-3,.grid-4{ grid-template-columns:1fr; } }

.split{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
@media (max-width:900px){ .split{ grid-template-columns:1fr; gap:40px; } }

/* Stat strip */
.stat-strip{ background:var(--olive); color:var(--white); border-radius:var(--r-lg); padding:44px 32px; display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.stat{ text-align:center; }
.stat .num{ font-family:var(--font-display); font-size:2.4rem; font-weight:600; display:block; }
.stat .lbl{ font-family:var(--font-mono); font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:#C9D2C4; margin-top:6px; display:block; }
@media (max-width:768px){ .stat-strip{ grid-template-columns:repeat(2,1fr); } }

/* Breadcrumb / page header */
.page-hero{ background:var(--olive-dark); color:var(--white); padding:76px 0 56px; position:relative; overflow:hidden; }
.page-hero::before{
  content:""; position:absolute; inset:0; z-index:0;
  background-image:var(--hero-img, none);
  background-size:cover; background-position:center;
  opacity:.34; filter:saturate(1.05);
}
.page-hero::after{
  content:""; position:absolute; inset:0; z-index:0;
  background:linear-gradient(180deg, rgba(64,14,23,.72) 0%, rgba(64,14,23,.88) 100%);
}
.page-hero .container{ position:relative; z-index:1; }
.breadcrumb{ font-family:var(--font-mono); font-size:.78rem; color:#C9D2C4; margin-bottom:16px; letter-spacing:.03em; }
.breadcrumb a:hover{ color:var(--gold); }
.page-hero h1{ color:var(--white); font-size:clamp(2.2rem,4vw,3.2rem); }
.page-hero p{ color:#D7DECF; max-width:560px; margin-top:16px; font-size:1.05rem; }
.page-hero .photo-credit{ position:absolute; right:24px; bottom:14px; z-index:2; }

/* ---------- Photographic hero blend (Jerusalem meets Ottawa) ---------- */
.hero-photo{ position:relative; min-height:640px; display:flex; align-items:center; overflow:hidden; color:var(--white); background:#2A0A11; }
@media (max-width:768px){ .hero-photo{ min-height:560px; } }
@media (max-width:480px){ .hero-photo{ min-height:520px; } }
.hero-photo .side{ position:absolute; top:0; bottom:0; width:60%; overflow:hidden; }
.hero-photo .side img{ width:100%; height:100%; object-fit:cover; }
.hero-photo .side--left{ left:0; clip-path:polygon(0 0, 78% 0, 58% 100%, 0 100%); }
.hero-photo .side--left img{ object-position:60% 40%; filter:sepia(.25) saturate(1.3); }
.hero-photo .side--right{ right:0; clip-path:polygon(58% 0, 100% 0, 100% 100%, 38% 100%); }
.hero-photo .side--right img{ object-position:center 30%; filter:sepia(.25) saturate(1.3); }
.hero-photo::after{
  content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(90deg, rgba(30,7,12,.88) 0%, rgba(30,7,12,.62) 38%, rgba(30,7,12,.5) 55%, rgba(30,7,12,.68) 68%, rgba(30,7,12,.9) 100%);
}
.hero-photo::before{
  content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(0deg, rgba(20,5,9,.85) 0%, rgba(20,5,9,.15) 45%, rgba(20,5,9,.15) 60%, rgba(20,5,9,.5) 100%);
}
.hero-photo .container{ position:relative; z-index:2; padding-top:40px; padding-bottom:40px; }
.hero-photo .hero-copy{ max-width:640px; }
.hero-photo .hero-copy p{ color:#EAD9D3; font-size:1.1rem; margin-top:18px; max-width:520px; }
.hero-photo h1{ color:var(--white); font-size:clamp(2.3rem,4.6vw,3.5rem); line-height:1.1; }
.hero-badge{
  display:inline-flex; align-items:center; gap:8px; padding:8px 16px; border-radius:var(--r-pill);
  background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.24);
  font-family:var(--font-mono); font-size:.76rem; letter-spacing:.06em; text-transform:uppercase; margin-bottom:20px;
}
.hero-photo .photo-credit{ z-index:3; left:24px; right:auto; bottom:24px; }

/* Reveal-on-scroll */
.reveal{ opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease; }
.reveal.in{ opacity:1; transform:none; }

/* ---------- Calendar ---------- */
.calendar-card{ background:var(--white); border:1px solid var(--border); border-radius:var(--r-lg); padding:32px; box-shadow:var(--shadow-sm); }
.cal-header{ display:flex; align-items:center; justify-content:space-between; margin-bottom:24px; }
.cal-header h3{ font-size:1.35rem; }
.cal-weekdays{ display:grid; grid-template-columns:repeat(7,1fr); font-family:var(--font-mono); font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; color:var(--text-soft); padding-bottom:12px; border-bottom:1px solid var(--border); margin-bottom:8px; }
.cal-weekdays span{ text-align:center; }
.cal-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:6px; }
.cal-cell{ min-height:96px; border-radius:var(--r-sm); border:1px solid var(--border); padding:10px; background:var(--cream); display:flex; flex-direction:column; gap:6px; }
.cal-cell--empty{ background:transparent; border-color:transparent; }
.cal-date{ font-family:var(--font-mono); font-size:.82rem; color:var(--text-soft); }
.cal-cell.has-event{ background:var(--olive-tint); border-color:var(--olive-mid); }
.cal-cell.has-event .cal-date{ color:var(--olive); font-weight:700; }
.cal-event{ font-size:.72rem; font-weight:700; padding:5px 7px; border-radius:6px; background:var(--olive); color:var(--white); line-height:1.25; }
.cal-event--sport{ background:var(--terracotta); }
.cal-event--bbq{ background:var(--gold); color:#5B430F; }
.cal-event--culture{ background:var(--olive-dark); }
@media (max-width:768px){
  .cal-cell{ min-height:64px; padding:6px; }
  .cal-event{ font-size:0; padding:0; width:8px; height:8px; border-radius:50%; }
  .cal-weekdays span{ font-size:.62rem; }
}

/* ---------- Lightbox ---------- */
.lightbox{ position:fixed; inset:0; background:rgba(30,29,24,.92); z-index:1000; display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity .25s ease; padding:32px; }
.lightbox.open{ opacity:1; pointer-events:auto; }
.lightbox-body{ width:min(720px,90vw); aspect-ratio:4/3; border-radius:var(--r-md); overflow:hidden; }
.lightbox-inner{ position:relative; }
.lightbox-caption{ color:#EFE9DA; text-align:center; margin-top:16px; font-family:var(--font-mono); font-size:.85rem; }
.lightbox-close{ position:absolute; top:24px; right:24px; width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,.12); color:#fff; border:1px solid rgba(255,255,255,.3); font-size:1.3rem; }

/* ---------- Auth ---------- */
.auth-shell{ min-height:100vh; display:grid; grid-template-columns:1fr 1fr; }
@media (max-width:900px){ .auth-shell{ grid-template-columns:1fr; } .auth-visual{ display:none; } }
.auth-visual{ background:var(--olive-dark); position:relative; overflow:hidden; padding:56px; display:flex; flex-direction:column; justify-content:space-between; }
.auth-visual::before{ content:""; position:absolute; inset:0; opacity:.16; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='70' height='70'%3E%3Cpath d='M35 3L67 35L35 67L3 35Z' fill='none' stroke='%23FFFFFF' stroke-width='1'/%3E%3C/svg%3E"); background-size:70px 70px; }
.auth-visual > *{ position:relative; }
.auth-quote{ font-family:var(--font-display); font-size:1.7rem; color:var(--white); line-height:1.35; max-width:420px; }
.auth-quote small{ display:block; margin-top:18px; font-family:var(--font-mono); font-size:.78rem; color:var(--gold); text-transform:uppercase; letter-spacing:.08em; }
.auth-form-side{ display:flex; align-items:center; justify-content:center; padding:56px 24px; }
.auth-card{ width:100%; max-width:420px; }
.auth-tabs{ display:flex; gap:8px; background:var(--stone); padding:5px; border-radius:var(--r-pill); margin-bottom:32px; }
.auth-tabs .tab-btn{ flex:1; text-align:center; margin:0; padding:11px; border-radius:var(--r-pill); border:none; }
.auth-tabs .tab-btn.active{ background:var(--white); color:var(--olive); box-shadow:var(--shadow-sm); }
.form-note{ display:none; margin-top:16px; padding:14px 16px; border-radius:var(--r-sm); background:var(--olive-tint); color:var(--olive-dark); font-size:.88rem; font-weight:600; }
.form-note.show{ display:block; }
.divider-or{ display:flex; align-items:center; gap:14px; color:var(--text-soft); font-size:.82rem; margin:24px 0; }
.divider-or::before, .divider-or::after{ content:""; flex:1; height:1px; background:var(--border); }

/* ---------- Account dashboard ---------- */
.account-shell{ display:grid; grid-template-columns:260px 1fr; gap:40px; align-items:start; }
@media (max-width:860px){ .account-shell{ grid-template-columns:1fr; } }
.account-side{ background:var(--white); border:1px solid var(--border); border-radius:var(--r-lg); padding:28px; position:sticky; top:108px; }
.account-avatar{ width:64px; height:64px; border-radius:50%; background:var(--olive); color:var(--white); display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-size:1.4rem; margin-bottom:14px; }
.account-side h3{ font-size:1.1rem; }
.account-side .email{ font-size:.85rem; color:var(--text-soft); margin-bottom:22px; }
.account-nav a{ display:flex; align-items:center; gap:10px; padding:12px 14px; border-radius:var(--r-sm); font-weight:600; font-size:.9rem; color:var(--text-soft); margin-bottom:4px; }
.account-nav a:hover, .account-nav a.active{ background:var(--olive-tint); color:var(--olive); }
.account-nav hr{ border:none; border-top:1px solid var(--border); margin:14px 0; }

.reg-event-row{ display:flex; gap:20px; padding:20px 0; border-bottom:1px solid var(--border); align-items:center; }
.reg-event-row .ph{ width:88px; height:88px; border-radius:var(--r-md); flex:none; }
.reg-event-info{ flex:1; }
.reg-event-info h4{ font-size:1.02rem; margin-bottom:4px; }
.reg-event-meta{ font-family:var(--font-mono); font-size:.78rem; color:var(--text-soft); }

/* ---------- Brand mark (Dome of the Rock glyph) ---------- */
.brand-mark{ padding:0; overflow:hidden; }
.brand-mark svg{ width:60%; height:60%; }

/* ---------- Heritage symbols strip ---------- */
.heritage-strip{ display:grid; grid-template-columns:repeat(5,1fr); gap:24px; }
@media (max-width:900px){ .heritage-strip{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:560px){ .heritage-strip{ grid-template-columns:repeat(2,1fr); } }
.heritage-item{ text-align:center; padding:28px 14px; background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg); transition:transform .2s ease, box-shadow .2s ease; }
.heritage-item:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); }
.heritage-item svg{ width:44px; height:44px; margin:0 auto 14px; display:block; }
.heritage-item .heritage-thumb{ width:64px; height:64px; border-radius:50%; margin:0 auto 14px; overflow:hidden; box-shadow:var(--shadow-sm); }
.heritage-item .heritage-thumb img{ width:100%; height:100%; object-fit:cover; }
.heritage-item .heritage-icon{ width:64px; height:64px; border-radius:50%; margin:0 auto 14px; display:flex; align-items:center; justify-content:center; background:var(--olive-tint); color:var(--olive); font-size:1.5rem; }
.heritage-item h4{ font-size:.98rem; margin-bottom:6px; }
.heritage-item p{ font-size:.82rem; color:var(--text-soft); line-height:1.45; }

/* ---------- Real icon circles (Font Awesome) ---------- */
.icon-circle{ display:flex; align-items:center; justify-content:center; flex:none; }
.icon-circle i{ font-size:1.3rem; position:relative; z-index:1; }
.icon-circle.ph--dark{ color:#EFE9DA; }
.icon-circle.ph--terracotta{ color:var(--terracotta-dark); }
.icon-circle.ph--gold{ color:var(--gold-deep); }
.icon-circle:not(.ph--dark):not(.ph--terracotta):not(.ph--gold){ color:var(--olive); }

/* ---------- Real photo tiles (replacing illustrated placeholders) ---------- */
.photo-tile{ overflow:hidden; position:relative; background:var(--stone); }
.photo-tile img{ width:100%; height:100%; object-fit:cover; display:block; }
.photo-tile::after{ content:""; position:absolute; inset:0; box-shadow:inset 0 0 0 1px rgba(0,0,0,.06); pointer-events:none; }
.photo-credit{ position:absolute; right:10px; bottom:8px; font-family:var(--font-mono); font-size:.6rem; letter-spacing:.03em; color:rgba(255,255,255,.85); background:rgba(20,6,10,.45); padding:3px 8px; border-radius:var(--r-pill); z-index:2; }

/* ---------- Photographic tatreez ribbon (real embroidery photo, not illustrated) ---------- */
.tatreez-ribbon{ height:64px; overflow:hidden; position:relative; }
.tatreez-ribbon img{ width:100%; height:100%; object-fit:cover; object-position:center 30%; filter:saturate(1.15);}
.tatreez-ribbon::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(64,14,23,.55), rgba(64,14,23,.15) 30%, rgba(64,14,23,.15) 70%, rgba(64,14,23,.55)); }

.img-fallback{ background:linear-gradient(135deg, var(--olive-tint), var(--stone) 60%) !important; }
.img-fallback.side{ background:linear-gradient(135deg, #4a1420, #2a0a11) !important; }

/* Utility */
.text-center{ text-align:center; }
.mt-0{ margin-top:0; } .mb-0{ margin-bottom:0; }
.muted{ color:var(--text-soft); }
.flex{ display:flex; align-items:center; }
.gap-8{ gap:8px; } .gap-12{ gap:12px; } .gap-16{ gap:16px; }
.w-full{ width:100%; }

/* ==========================================================================
   WordPress theme additions
   ========================================================================== */
.screen-reader-text{ position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); white-space:nowrap; }
.skip-link:focus{ position:fixed !important; top:8px; left:8px; width:auto; height:auto; clip:auto; z-index:9999; background:var(--white); padding:10px 16px; border-radius:var(--r-sm); box-shadow:var(--shadow-md); }
.hp-field{ position:absolute !important; left:-9999px !important; width:1px; height:1px; opacity:0; }
[hidden]{ display:none !important; }
.container--narrow{ max-width:820px; }
.section--alt{ background:var(--surface-alt); }
.section--flush-top{ padding-top:0; }
.mt-12{ margin-top:12px; } .mt-16{ margin-top:16px; } .mt-24{ margin-top:24px; } .mt-32{ margin-top:32px; } .mt-48{ margin-top:48px; }
.wrap{ flex-wrap:wrap; } .center{ justify-content:center; } .small{ font-size:.84rem; } .d-block{ display:block; }
.h4{ font-size:1.25rem; } .h5{ font-size:1.05rem; } .h3{ font-size:1.45rem; }
.section-title--sm{ font-size:1.6rem; }
.section-bar{ display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:20px; margin-bottom:40px; }
.section-bar .section-head{ margin-bottom:0; }
.section-bar__actions{ display:flex; gap:10px; flex-wrap:wrap; }
.text-link{ color:var(--olive); font-weight:700; display:inline-flex; align-items:center; gap:6px; }
.text-link:hover{ color:var(--terracotta); }
.req{ color:var(--terracotta); }
.eyebrow--light{ color:var(--gold); }
.eyebrow--light::before{ filter:brightness(3); }
.brand-name--light{ color:var(--white); }
.brand--light .brand-name, .brand--light .brand-name span{ color:var(--white); }

/* Buttons */
.btn-lg{ padding:17px 32px; font-size:1.02rem; }
.btn-xs{ padding:7px 14px; font-size:.78rem; }
.btn-gold{ background:var(--gold); color:var(--olive-dark); }
.btn-gold:hover{ background:var(--gold-deep); color:var(--white); }
.btn-outline-light{ border:1.5px solid rgba(255,255,255,.55); color:var(--white); background:transparent; }
.btn-outline-light:hover{ background:var(--white); color:var(--olive); }
.btn.is-busy{ opacity:.75; pointer-events:none; }
.btn.is-busy::after{ content:""; width:14px; height:14px; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:spin .7s linear infinite; }
@keyframes spin{ to{ transform:rotate(360deg); } }
.link-danger{ background:none; border:0; color:#B42318; font-weight:700; padding:6px 0; font-size:.88rem; }

/* Announcement */
.announce-bar{ background:var(--olive-dark); color:#F4E6C8; font-size:.86rem; text-align:center; padding:9px 0; }
.announce-bar a{ color:inherit; font-weight:700; }
.announce-bar a:hover{ color:var(--gold); }
.no-sticky-header .site-header{ position:relative; }
.admin-bar .site-header{ top:32px; }
@media (max-width:782px){ .admin-bar .site-header{ top:46px; } }

/* Menus */
.main-nav .menu{ display:flex; align-items:center; gap:4px; }
.main-nav .menu > li{ position:relative; }
.main-nav .menu a{ display:block; }
.main-nav .current-menu-item > a, .main-nav .current-menu-ancestor > a, .main-nav .current_page_item > a{ color:var(--olive); background:var(--olive-tint); }
.main-nav .sub-menu{ position:absolute; top:100%; inset-inline-start:0; min-width:220px; background:var(--white); border:1px solid var(--border); border-radius:var(--r-md); padding:8px; box-shadow:var(--shadow-md); opacity:0; visibility:hidden; transform:translateY(6px); transition:.18s ease; z-index:20; }
.main-nav li:hover > .sub-menu, .main-nav li:focus-within > .sub-menu{ opacity:1; visibility:visible; transform:none; }
.main-nav .sub-menu a{ border-radius:var(--r-sm); padding:10px 14px; }
.main-nav__extra{ display:none; }
@media (max-width:960px){
  .main-nav .menu{ flex-direction:column; align-items:stretch; gap:0; }
  .main-nav .sub-menu{ position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; border:0; padding:0 0 0 16px; background:transparent; }
  .main-nav__extra{ display:block; margin-top:20px; }
  .header-donate{ display:none; }
  body.nav-open{ overflow:hidden; }
}
.icon-btn i{ font-size:1rem; }
.icon-btn--avatar{ background:var(--olive); color:var(--white); border-color:var(--olive); font-weight:800; font-size:.9rem; position:relative; }
.icon-btn--avatar:hover{ color:var(--white); background:var(--olive-dark); }
.member-dot{ position:absolute; top:-2px; inset-inline-end:-2px; width:13px; height:13px; border-radius:50%; background:var(--gold); border:2px solid var(--cream); }
.account-menu{ position:relative; }
.account-menu__panel{ position:absolute; top:calc(100% + 10px); inset-inline-end:0; width:250px; background:var(--white); border:1px solid var(--border); border-radius:var(--r-md); box-shadow:var(--shadow-lg); padding:8px; z-index:120; }
.account-menu__panel a{ display:flex; gap:10px; align-items:center; padding:10px 12px; border-radius:var(--r-sm); font-weight:600; font-size:.9rem; color:var(--text-soft); }
.account-menu__panel a i{ width:18px; text-align:center; color:var(--olive); }
.account-menu__panel a:hover{ background:var(--olive-tint); color:var(--olive); }
.account-menu__who{ padding:10px 12px 12px; border-bottom:1px solid var(--border); margin-bottom:6px; }
.account-menu__who strong{ display:block; }
.account-menu__who span{ font-size:.8rem; color:var(--text-soft); word-break:break-all; }
.account-menu__out{ border-top:1px solid var(--border); border-radius:0 !important; margin-top:6px; }

/* Footer */
.footer-col__title{ color:var(--white); font-family:var(--font-body); font-weight:700; font-size:.82rem; letter-spacing:.08em; text-transform:uppercase; margin-bottom:18px; }
.footer-col ul li{ margin-bottom:12px; color:#C9D2C4; font-size:.94rem; }
.footer-small{ font-size:.74rem; opacity:.8; }
.footer-bottom a:hover{ color:var(--gold); }
.to-top{ position:fixed; bottom:22px; inset-inline-end:22px; width:46px; height:46px; border-radius:50%; background:var(--olive); color:var(--white); border:0; box-shadow:var(--shadow-md); z-index:90; transition:transform .2s; }
.to-top:hover{ transform:translateY(-3px); }

/* Notices */
.jcso-notices{ display:grid; gap:10px; margin-bottom:24px; }
.notice{ display:flex; gap:12px; align-items:flex-start; padding:14px 18px; border-radius:var(--r-md); font-size:.94rem; border:1px solid transparent; line-height:1.5; }
.notice > i{ margin-top:3px; }
.notice a{ font-weight:700; text-decoration:underline; }
.notice--success{ background:#E6F4EA; border-color:#BFE3CA; color:#1C5E38; }
.notice--error{ background:#FDECEA; border-color:#F6C9C3; color:#8E1A12; }
.notice--info{ background:var(--gold-tint); border-color:#E8D6A8; color:#5B430F; }
.notice--warn{ background:#FFF4E0; border-color:#F3D9A4; color:#7A4D08; }
.notice--big{ padding:18px 22px; font-size:1rem; margin-bottom:24px; }
.notice--big > i{ font-size:1.3rem; margin-top:0; }

/* Entry content */
.entry-content{ font-size:1.06rem; line-height:1.8; color:var(--ink); }
.entry-content > * + *{ margin-top:1.1em; }
.entry-content h2{ font-size:1.7rem; margin-top:1.8em; }
.entry-content h3{ font-size:1.35rem; margin-top:1.6em; }
.entry-content ul{ list-style:disc; padding-inline-start:1.4em; }
.entry-content ol{ list-style:decimal; padding-inline-start:1.4em; }
.entry-content li + li{ margin-top:.4em; }
.entry-content a{ color:var(--olive); text-decoration:underline; text-decoration-color:var(--gold); text-underline-offset:3px; }
.entry-content blockquote{ margin:1.6em 0; padding:18px 24px; border-inline-start:4px solid var(--gold); background:var(--gold-tint); border-radius:0 var(--r-md) var(--r-md) 0; font-size:1.15rem; font-style:italic; }
.entry-content img{ border-radius:var(--r-md); height:auto; }
.entry-content figure{ margin:1.6em 0; }
.entry-content figcaption{ font-size:.84rem; color:var(--text-soft); margin-top:8px; text-align:center; }
.entry-content table{ width:100%; border-collapse:collapse; }
.entry-content th, .entry-content td{ border:1px solid var(--border); padding:10px; }
.entry-content .alignwide{ margin-inline:-80px; } @media (max-width:980px){ .entry-content .alignwide{ margin-inline:0; } }
.entry-content .alignfull{ margin-inline:calc(50% - 50vw); max-width:100vw; }
.prose p + p{ margin-top:1em; }
.prose p{ color:var(--text-soft); font-size:1.05rem; line-height:1.75; }

/* Cards */
.card{ position:relative; }
.card-link{ position:absolute; inset:0; z-index:3; }
.card-link:focus-visible{ outline:3px solid var(--gold); outline-offset:-3px; border-radius:var(--r-lg); }
.card-media .photo-tile{ width:100%; height:100%; }
.card-media .photo-tile img{ transition:transform .5s ease; }
.card:hover .card-media .photo-tile img{ transform:scale(1.06); }
.photo-tile--empty{ display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,var(--olive-tint),var(--stone) 60%); color:var(--olive); }
.photo-tile--empty .ph-icon svg{ width:56px; height:56px; opacity:.5; }
.card-price{ font-weight:700; color:var(--olive); }
.card-foot i{ color:var(--terracotta); margin-inline-end:4px; }
.date-chip{ position:absolute; top:14px; inset-inline-start:14px; z-index:2; background:var(--white); border-radius:var(--r-md); text-align:center; min-width:52px; padding:6px 8px; box-shadow:var(--shadow-md); line-height:1.05; }
.date-chip span{ display:block; font-family:var(--font-mono); font-size:.66rem; text-transform:uppercase; letter-spacing:.08em; color:var(--terracotta); font-weight:600; }
.date-chip strong{ font-size:1.4rem; color:var(--olive); }
.date-chip--static{ position:static; box-shadow:none; border:1px solid var(--border); flex:none; }
.card-flag{ position:absolute; top:14px; inset-inline-end:14px; z-index:2; padding:5px 12px; border-radius:var(--r-pill); font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; background:var(--white); color:var(--olive); box-shadow:var(--shadow-sm); }
.card-flag--bad{ background:#B42318; color:#fff; }
.card-flag--warn{ background:var(--terracotta); color:#fff; }
.card-flag--gold{ background:var(--gold); color:var(--olive-dark); }
.card-flag--muted{ background:rgba(0,0,0,.6); color:#fff; }
.badge--olive{ background:var(--olive-tint); color:var(--olive); }
.badge--terracotta{ background:var(--terracotta-tint); color:var(--terracotta-dark); }
.badge--gold{ background:var(--gold); color:#4A370C; }
.badge--dark{ background:var(--olive-dark); color:var(--white); }
.badge--glass{ background:rgba(255,255,255,.16); color:var(--white); border:1px solid rgba(255,255,255,.25); }
.badge--bad{ background:#B42318; color:#fff; }
.badge--warn{ background:var(--terracotta); color:#fff; }
.badge--members{ position:absolute; top:14px; inset-inline-end:14px; z-index:2; background:var(--olive-dark); color:var(--gold); font-size:.7rem; padding:5px 11px; }
.badge--members.is-open{ background:var(--gold); color:var(--olive-dark); }
.single-post .badge--members, .page-hero .badge--members, .feature-post .badge--members{ position:static; }
.grid--tight{ gap:16px; }

.event-row{ display:flex; gap:14px; align-items:center; padding:12px; border-radius:var(--r-md); border:1px solid var(--border); background:var(--white); transition:.15s; }
.event-row:hover{ border-color:var(--olive); transform:translateX(2px); }
.event-row__main{ flex:1; min-width:0; }
.event-row__main strong{ display:block; color:var(--olive); line-height:1.3; }
.event-row__main small{ color:var(--text-soft); font-size:.8rem; }
.event-row__arrow{ color:var(--terracotta); }

/* Hero extras */
.hero-actions{ display:flex; gap:16px; margin-top:32px; flex-wrap:wrap; }
.hero-next{ display:inline-flex; align-items:center; gap:14px; margin-top:32px; padding:10px 18px 10px 10px; border-radius:var(--r-lg); background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.22); backdrop-filter:blur(8px); color:var(--white); transition:.2s; }
.hero-next:hover{ background:rgba(255,255,255,.18); }
.hero-next small{ display:block; font-family:var(--font-mono); font-size:.66rem; text-transform:uppercase; letter-spacing:.1em; color:var(--gold); }
.hero-next strong{ font-size:.98rem; }
.hero-next .date-chip{ background:var(--white); border:0; }
.photo-pair{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.photo-pair .photo-tile{ border-radius:var(--r-lg); aspect-ratio:1/1; }
.photo-pair .photo-tile:first-child{ margin-top:36px; }
.split__media{ order:2; } @media (max-width:900px){ .split__media{ order:0; } }
.stitch-list{ margin-top:28px; display:grid; gap:16px; }
.stitch-list li{ display:flex; gap:12px; align-items:flex-start; }
.stitch-list .stitch-rule{ margin:6px 0 0; flex:none; width:42px; }
.stat-strip--3{ grid-template-columns:repeat(3,1fr); }
.stat-strip--2{ grid-template-columns:repeat(2,1fr); }
.stat-strip--5{ grid-template-columns:repeat(5,1fr); }
@media (max-width:768px){ .stat-strip--3, .stat-strip--5{ grid-template-columns:repeat(2,1fr); } }
.gallery-teaser .photo-tile{ border-radius:var(--r-md); aspect-ratio:1/1; cursor:zoom-in; }

.donate-banner{ background:var(--olive-dark); border-radius:var(--r-lg); padding:56px; display:grid; grid-template-columns:1.4fr 1fr; gap:32px; align-items:center; color:var(--white); position:relative; overflow:hidden; }
.donate-banner::before{ content:""; position:absolute; inset:0; opacity:.08; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='70' height='70'%3E%3Cpath d='M35 3L67 35L35 67L3 35Z' fill='none' stroke='%23FFFFFF' stroke-width='1'/%3E%3C/svg%3E"); background-size:70px; }
.donate-banner > *{ position:relative; }
.donate-banner h2{ color:var(--white); font-size:clamp(1.6rem,3vw,2.2rem); }
.donate-banner p{ color:#D7DECF; margin-top:14px; max-width:480px; }
.donate-banner__cta{ text-align:center; display:grid; gap:12px; }
.donate-banner__link{ color:var(--gold); font-weight:700; font-size:.9rem; }
@media (max-width:800px){ .donate-banner{ grid-template-columns:1fr; padding:36px 28px; } }
.goal{ margin:22px 0; }
.goal__top{ display:flex; align-items:baseline; gap:8px; margin-bottom:8px; }
.goal__top strong{ font-size:1.5rem; color:var(--olive); }
.goal__top span{ color:var(--text-soft); }
.goal__bar{ height:10px; background:var(--stone); border-radius:var(--r-pill); overflow:hidden; }
.goal__bar span{ display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--gold),var(--terracotta)); transition:width 1s ease; }
.goal__text{ font-size:.82rem; color:var(--text-soft); margin-top:8px; }
.goal--light .goal__bar{ background:rgba(255,255,255,.15); }
.goal--light .goal__text{ color:#D7DECF; }
.goal--light .goal__text strong{ color:var(--gold); }

.newsletter-block{ max-width:580px; margin:0 auto; text-align:center; }
.newsletter-block .eyebrow{ justify-content:center; }
.newsletter-form{ display:flex; gap:12px; flex-wrap:wrap; margin:28px auto 0; max-width:460px; position:relative; }
.newsletter-form input[type=email]{ flex:1; min-width:200px; padding:14px 18px; border-radius:var(--r-pill); border:1.5px solid var(--border); background:var(--white); }
.newsletter-form input[type=email]:focus{ border-color:var(--olive); outline:none; box-shadow:0 0 0 4px var(--olive-tint); }
.newsletter-form__msg{ width:100%; font-size:.88rem; font-weight:600; min-height:1.2em; }
.newsletter-form__msg.is-ok{ color:#1C5E38; } .newsletter-form__msg.is-bad{ color:#8E1A12; }

/* Toolbars & filters */
.toolbar{ display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; margin-bottom:36px; }
.toolbar .filter-row{ margin-bottom:0; }
.toolbar__right{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.filter-row--links .filter-pill{ display:inline-block; }
.filter-pill--terracotta.active{ border-color:var(--terracotta); color:var(--terracotta-dark); background:var(--terracotta-tint); }
.filter-pill--gold.active{ border-color:var(--gold); color:var(--gold-deep); background:var(--gold-tint); }
.seg{ display:inline-flex; background:var(--stone); border-radius:var(--r-pill); padding:4px; gap:2px; }
.seg a, .seg label span{ display:inline-flex; align-items:center; gap:6px; padding:8px 16px; border-radius:var(--r-pill); font-weight:700; font-size:.86rem; color:var(--text-soft); cursor:pointer; transition:.15s; }
.seg a.active, .seg input:checked + span{ background:var(--white); color:var(--olive); box-shadow:var(--shadow-sm); }
.seg label{ position:relative; }
.seg input{ position:absolute; opacity:0; pointer-events:none; }
.seg input:focus-visible + span{ outline:2px solid var(--terracotta); }
.seg--block{ display:flex; width:100%; margin:20px 0; }
.seg--block label{ flex:1; }
.seg--block label span{ width:100%; justify-content:center; padding:12px; font-size:.95rem; }
.seg--sm{ margin-bottom:14px; }
.search-form{ position:relative; display:flex; align-items:center; }
.search-form i{ position:absolute; inset-inline-start:16px; color:var(--text-soft); font-size:.85rem; }
.search-form input{ padding:10px 16px 10px 40px; border-radius:var(--r-pill); border:1.5px solid var(--border); background:var(--white); min-width:220px; }
[dir=rtl] .search-form input{ padding:10px 40px 10px 16px; }
.search-form input:focus{ border-color:var(--olive); outline:none; }

.feature-post, .feature-event{ display:grid; grid-template-columns:1.2fr 1fr; gap:0; background:var(--white); border:1px solid var(--border); border-radius:var(--r-lg); overflow:hidden; margin-bottom:40px; }
.feature-post__media .photo-tile, .feature-event__media .photo-tile{ height:100%; min-height:320px; }
.feature-post__body, .feature-event__body{ padding:40px; display:flex; flex-direction:column; justify-content:center; gap:14px; }
.feature-post h2, .feature-event h2{ font-size:1.8rem; line-height:1.2; }
.feature-post h2 a:hover, .feature-event h2 a:hover{ color:var(--terracotta); }
.feature-post p{ color:var(--text-soft); }
@media (max-width:860px){ .feature-post, .feature-event{ grid-template-columns:1fr; } .feature-post__body, .feature-event__body{ padding:28px; } }
.meta-list{ display:grid; gap:8px; color:var(--text-soft); }
.meta-list i{ color:var(--terracotta); width:18px; }

.empty-state{ text-align:center; padding:56px 24px; background:var(--white); border:1.5px dashed var(--stone-line); border-radius:var(--r-lg); }
.empty-state__icon{ width:72px; height:72px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; background:var(--olive-tint); color:var(--olive); font-size:1.7rem; margin-bottom:16px; }
.empty-state h3{ font-size:1.25rem; }
.empty-state p{ color:var(--text-soft); margin:8px auto 20px; max-width:420px; }

.pagination{ display:flex; justify-content:center; gap:6px; margin-top:48px; flex-wrap:wrap; }
.page-numbers{ min-width:42px; height:42px; padding:0 12px; display:inline-flex; align-items:center; justify-content:center; border-radius:var(--r-pill); border:1.5px solid var(--border); font-weight:700; background:var(--white); color:var(--text-soft); }
.page-numbers.current, .page-numbers:hover{ background:var(--olive); border-color:var(--olive); color:var(--white); }
.page-numbers.dots{ border:0; background:none; }

/* Single post */
.post-hero{ padding:64px 0 32px; }
.post-hero h1{ font-size:clamp(2rem,4vw,3rem); line-height:1.15; margin:14px 0 20px; }
.breadcrumb--dark{ color:var(--text-soft); }
.breadcrumb--dark a:hover{ color:var(--terracotta); }
.post-meta{ display:flex; align-items:center; gap:12px; }
.post-meta img{ border-radius:50%; }
.post-meta strong{ display:block; }
.post-meta small{ color:var(--text-soft); }
.post-cover{ border-radius:var(--r-lg); overflow:hidden; margin-bottom:48px; aspect-ratio:16/8; box-shadow:var(--shadow-lg); }
.post-cover .photo-tile{ height:100%; }
.post-foot{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; margin:48px 0 32px; padding-top:24px; border-top:1px solid var(--border); }
.tag-list{ display:flex; flex-wrap:wrap; gap:8px; }
.tag-list a{ padding:6px 14px; border-radius:var(--r-pill); background:var(--stone); font-size:.82rem; font-weight:700; color:var(--text-soft); }
.share{ display:flex; align-items:center; gap:8px; }
.share > span{ font-family:var(--font-mono); font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; color:var(--text-soft); margin-inline-end:6px; }
.share a, .share button{ width:38px; height:38px; border-radius:50%; border:1.5px solid var(--border); background:var(--white); display:inline-flex; align-items:center; justify-content:center; color:var(--olive); transition:.15s; }
.share a:hover, .share button:hover{ background:var(--olive); color:var(--white); border-color:var(--olive); }
.share--center{ justify-content:center; margin-top:18px; }
.post-nav{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:48px; }
.post-nav a{ padding:18px 20px; border:1px solid var(--border); border-radius:var(--r-md); background:var(--white); font-weight:700; color:var(--olive); }
.post-nav a:hover{ border-color:var(--olive); }
.post-nav small{ display:block; font-family:var(--font-mono); font-size:.68rem; text-transform:uppercase; letter-spacing:.1em; color:var(--text-soft); font-weight:500; margin-bottom:4px; }
.post-nav__next{ text-align:end; grid-column:2; }
.comments{ margin-top:32px; }
.comment-list{ display:grid; gap:18px; margin:18px 0 36px; }
.comment-list .children{ padding-inline-start:32px; margin-top:18px; display:grid; gap:18px; }
.comment-body{ background:var(--white); border:1px solid var(--border); border-radius:var(--r-md); padding:18px 20px; }
.comment-author img{ border-radius:50%; float:left; margin-right:12px; }
.comment-meta{ font-size:.8rem; color:var(--text-soft); margin-bottom:8px; }
.comment-respond input:not([type=checkbox]):not([type=submit]), .comment-respond textarea{ width:100%; padding:12px 14px; border:1.5px solid var(--border); border-radius:var(--r-sm); background:var(--white); }
.comment-respond p{ margin-bottom:14px; }
.comment-respond label{ display:block; font-weight:700; font-size:.85rem; margin-bottom:6px; }

.paywall-teaser{ position:relative; max-height:420px; overflow:hidden; }
.paywall-teaser::after{ content:""; position:absolute; inset:auto 0 0; height:160px; background:linear-gradient(transparent,var(--cream)); }
.paywall{ margin:32px 0; padding:40px 32px; text-align:center; background:var(--white); border:1px solid var(--border); border-radius:var(--r-lg); box-shadow:var(--shadow-md); position:relative; overflow:hidden; }
.paywall::before{ content:""; position:absolute; inset:0 0 auto; height:6px; background:linear-gradient(90deg,var(--olive),var(--gold),var(--terracotta)); }
.paywall__icon{ width:60px; height:60px; margin:0 auto 14px; border-radius:50%; background:var(--gold-tint); color:var(--gold-deep); display:flex; align-items:center; justify-content:center; font-size:1.4rem; }
.paywall h3{ font-size:1.5rem; }
.paywall > p{ color:var(--text-soft); max-width:460px; margin:10px auto 0; }
.paywall__plans{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin:24px 0 8px; }
.paywall__plan{ padding:14px 20px; border:1.5px solid var(--border); border-radius:var(--r-md); min-width:150px; display:grid; gap:2px; transition:.15s; }
.paywall__plan:hover, .paywall__plan.is-featured{ border-color:var(--gold); background:var(--gold-tint); }
.paywall__plan strong{ color:var(--olive); }
.paywall__plan small{ color:var(--text-soft); }
.paywall__actions{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin-top:20px; }

.error-404__mark{ width:96px; height:96px; margin:0 auto 20px; border-radius:50%; background:var(--olive); color:var(--white); display:flex; align-items:center; justify-content:center; }
.error-404__mark svg{ width:60%; }
.error-404__search{ max-width:380px; margin:28px auto 0; }
.error-404__search input{ width:100%; }

/* ============ Single event ============ */
.page-hero--event{ padding-bottom:64px; }
.hero-badges{ margin-bottom:16px; }
.hero-meta{ display:flex; flex-wrap:wrap; gap:10px 24px; margin-top:22px; color:#EAD9D3; font-weight:600; }
.hero-meta i{ color:var(--gold); margin-inline-end:6px; }
.section--event{ padding-top:56px; }
.event-layout{ display:grid; grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr); gap:56px; align-items:start; }
@media (max-width:960px){ .event-layout{ grid-template-columns:1fr; gap:32px; } .event-side{ order:-1; } }
.event-cover{ border-radius:var(--r-lg); aspect-ratio:16/9; margin-bottom:40px; box-shadow:var(--shadow-md); }
.block-title{ font-size:1.2rem; margin:40px 0 16px; }
.agenda{ border-inline-start:2px solid var(--stone-line); padding-inline-start:22px; display:grid; gap:18px; }
.agenda li{ position:relative; }
.agenda li::before{ content:""; position:absolute; inset-inline-start:-29px; top:6px; width:12px; height:12px; transform:rotate(45deg); background:var(--terracotta); }
.agenda__time{ display:block; font-family:var(--font-mono); font-size:.76rem; letter-spacing:.06em; color:var(--gold-deep); font-weight:600; }
.agenda__title{ font-weight:700; color:var(--ink); }
.location-card{ display:grid; grid-template-columns:1fr 1.4fr; gap:0; border:1px solid var(--border); border-radius:var(--r-lg); overflow:hidden; background:var(--white); }
.location-card > div:first-child{ padding:24px; display:flex; flex-direction:column; gap:6px; align-items:flex-start; }
.location-card strong{ color:var(--olive); font-size:1.05rem; }
.location-card span{ color:var(--text-soft); margin-bottom:10px; }
@media (max-width:640px){ .location-card{ grid-template-columns:1fr; } }
.map-embed{ min-height:220px; position:relative; }
.map-embed iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; filter:saturate(.85); }
.map-embed--card{ border-radius:var(--r-lg); overflow:hidden; min-height:300px; margin-top:24px; border:1px solid var(--border); }
.organizer-line{ margin-top:28px; font-size:.92rem; }
.album-link{ display:flex; align-items:center; gap:16px; padding:18px 22px; border-radius:var(--r-lg); background:var(--gold-tint); color:var(--olive-dark); margin-top:32px; transition:.15s; }
.album-link:hover{ transform:translateY(-2px); box-shadow:var(--shadow-md); }
.album-link > i:first-child{ font-size:1.5rem; color:var(--gold-deep); }
.album-link span{ flex:1; }
.album-link strong{ display:block; }
.album-link small{ color:var(--text-soft); }
.booking-card{ background:var(--white); border:1px solid var(--border); border-radius:var(--r-lg); padding:28px; box-shadow:var(--shadow-md); position:sticky; top:108px; }
.detail-list{ display:grid; gap:18px; margin-top:16px; }
.detail-list li{ display:flex; gap:14px; align-items:flex-start; }
.detail-list li > i{ width:40px; height:40px; flex:none; border-radius:10px; background:var(--olive-tint); color:var(--olive); display:flex; align-items:center; justify-content:center; }
.detail-list strong{ display:block; line-height:1.35; }
.detail-list small, .detail-list a{ color:var(--text-soft); font-size:.86rem; }
.detail-list a:hover{ color:var(--olive); }
.capacity-bar{ height:6px; background:var(--stone); border-radius:var(--r-pill); overflow:hidden; margin-top:18px; }
.capacity-bar span{ display:block; height:100%; background:linear-gradient(90deg,var(--gold),var(--olive)); }
.booking-card__cta{ margin-top:24px; display:grid; gap:12px; }
.urgency{ font-weight:700; color:var(--terracotta-dark); font-size:.9rem; }
.urgency--gold{ color:var(--gold-deep); }
.state-msg{ padding:14px 16px; border-radius:var(--r-md); background:var(--stone); font-weight:600; color:var(--ink); }
.state-msg i{ color:var(--terracotta); margin-inline-end:6px; }
.waitlist-form{ display:grid; gap:12px; }
.waitlist-form .field input{ padding:11px 14px; }
.add-cal{ margin-top:12px; position:relative; }
.add-cal summary{ list-style:none; cursor:pointer; }
.add-cal summary::-webkit-details-marker{ display:none; }
.add-cal__menu{ display:grid; gap:4px; margin-top:8px; padding:8px; border:1px solid var(--border); border-radius:var(--r-md); background:var(--cream); }
.add-cal__menu a{ padding:10px 12px; border-radius:var(--r-sm); font-weight:600; font-size:.9rem; }
.add-cal__menu a:hover{ background:var(--white); color:var(--olive); }
.sticky-cta{ display:none; }
@media (max-width:960px){
  .sticky-cta{ display:flex; position:fixed; inset:auto 0 0; z-index:95; background:var(--white); border-top:1px solid var(--border); padding:12px 20px; gap:14px; align-items:center; box-shadow:0 -8px 24px rgba(0,0,0,.08); transform:translateY(100%); transition:transform .25s; }
  .sticky-cta.is-visible{ transform:none; }
  .sticky-cta div{ flex:1; min-width:0; }
  .sticky-cta strong{ display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:var(--olive); }
  .sticky-cta small{ color:var(--text-soft); }
  .booking-card{ position:static; }
}

/* ============ Checkout ============ */
.checkout-head{ background:var(--white); border-bottom:1px solid var(--border); padding:28px 0 0; }
.back-link{ display:inline-flex; align-items:center; gap:8px; font-weight:700; color:var(--text-soft); font-size:.9rem; margin-bottom:18px; }
.back-link:hover{ color:var(--olive); }
.checkout-head__event{ display:flex; gap:18px; align-items:center; }
.checkout-head__thumb{ width:84px; height:84px; border-radius:var(--r-md); overflow:hidden; flex:none; }
.checkout-head__thumb .photo-tile{ height:100%; }
.checkout-head h1{ font-size:clamp(1.4rem,3vw,2rem); }
.checkout-head .eyebrow{ margin-bottom:6px; }
.steps{ display:flex; gap:0; margin-top:24px; overflow-x:auto; }
.steps li{ flex:1; display:flex; align-items:center; gap:10px; padding:14px 0; border-bottom:3px solid var(--stone); font-weight:700; color:var(--ink-faint); font-size:.9rem; white-space:nowrap; padding-inline-end:12px; }
.steps li span{ width:26px; height:26px; border-radius:50%; background:var(--stone); display:inline-flex; align-items:center; justify-content:center; font-size:.78rem; flex:none; }
.steps li.is-active, .steps li.is-done{ color:var(--olive); border-color:var(--olive); }
.steps li.is-active span, .steps li.is-done span{ background:var(--olive); color:var(--white); }
.section--checkout{ padding-top:40px; }
.checkout{ display:grid; grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr); gap:40px; align-items:start; }
@media (max-width:960px){ .checkout{ grid-template-columns:1fr; } }
.co-step{ background:var(--white); border:1px solid var(--border) !important; border-radius:var(--r-lg); padding:28px !important; margin-bottom:24px !important; }
.co-step legend{ display:flex; align-items:center; gap:12px; font-family:var(--font-display); font-weight:800; font-size:1.25rem; color:var(--olive); float:left; width:100%; margin-bottom:20px; }
.co-step legend + *{ clear:both; }
.co-step__num{ width:32px; height:32px; border-radius:50%; background:var(--olive); color:var(--white); display:inline-flex; align-items:center; justify-content:center; font-size:.92rem; flex:none; }
.co-sub{ font-size:1.05rem; margin:24px 0 8px; }
.member-note{ padding:12px 16px; background:var(--gold-tint); border-radius:var(--r-md); color:#5B430F; font-weight:600; font-size:.9rem; margin-bottom:16px; }
.ticket-types{ display:grid; gap:12px; }
.ticket-type{ display:flex; gap:18px; align-items:center; justify-content:space-between; padding:18px 20px; border:1.5px solid var(--border); border-radius:var(--r-md); transition:border-color .15s, background .15s; }
.ticket-type.is-picked{ border-color:var(--olive); background:var(--olive-tint); }
.ticket-type.is-off{ opacity:.55; }
.ticket-type__info{ display:grid; gap:4px; min-width:0; }
.ticket-type__info > strong{ font-size:1.05rem; color:var(--ink); }
.ticket-type__info > span{ color:var(--text-soft); font-size:.88rem; }
.ticket-type__price{ display:flex; gap:10px; align-items:baseline; flex-wrap:wrap; }
.ticket-type__price ins{ text-decoration:none; font-weight:800; color:var(--olive); font-size:1.1rem; }
.ticket-type__price del{ color:var(--ink-faint); }
.member-hint{ font-size:.78rem; color:var(--gold-deep); font-weight:700; }
.ticket-type__flag{ font-size:.78rem; font-weight:700; color:var(--text-soft); }
.ticket-type__flag--warn{ color:var(--terracotta); }
.qty{ display:flex; align-items:center; border:1.5px solid var(--border); border-radius:var(--r-pill); background:var(--white); flex:none; }
.qty__btn{ width:40px; height:40px; border:0; background:none; font-size:1.2rem; color:var(--olive); border-radius:50%; }
.qty__btn:hover:not([disabled]){ background:var(--olive-tint); }
.qty__btn[disabled]{ color:var(--ink-faint); cursor:not-allowed; }
.qty__input{ width:44px; text-align:center; border:0; background:transparent; font-weight:800; font-size:1.05rem; -moz-appearance:textfield; }
.qty__input::-webkit-inner-spin-button, .qty__input::-webkit-outer-spin-button{ -webkit-appearance:none; }
.hint--box{ padding:12px 16px; background:var(--cream); border-radius:var(--r-md); border:1px solid var(--border); margin-top:16px; font-size:.86rem; color:var(--text-soft); }
.hint--box a{ color:var(--olive); font-weight:700; }
.attendees__list{ display:grid; gap:14px; margin-top:14px; }
.attendee{ padding:18px; border:1px dashed var(--stone-line); border-radius:var(--r-md); background:var(--cream); display:grid; gap:14px; }
.attendee__head{ display:flex; align-items:center; gap:10px; }
.attendee__head strong{ flex:1; }
.attendee__num{ width:26px; height:26px; border-radius:50%; background:var(--gold); color:var(--olive-dark); font-weight:800; font-size:.8rem; display:inline-flex; align-items:center; justify-content:center; }
.attendee__me{ background:none; border:0; color:var(--olive); font-weight:700; font-size:.82rem; text-decoration:underline; }
.pay-methods{ display:grid; gap:10px; }
.pay-method input{ position:absolute; opacity:0; }
.pay-method__box{ display:flex; gap:14px; align-items:center; padding:16px 18px; border:1.5px solid var(--border); border-radius:var(--r-md); cursor:pointer; background:var(--white); transition:.15s; }
.pay-method__box > i{ font-size:1.4rem; width:32px; text-align:center; color:var(--olive); }
.pay-method__box strong{ display:block; }
.pay-method__box small{ color:var(--text-soft); font-size:.82rem; }
.pay-method input:checked + .pay-method__box{ border-color:var(--olive); background:var(--olive-tint); box-shadow:0 0 0 3px var(--olive-tint); }
.pay-method input:focus-visible + .pay-method__box{ outline:2px solid var(--terracotta); }
.test-mode-hint{ font-size:.82rem; color:var(--gold-deep); margin-top:10px; font-weight:600; }
.free-note{ padding:14px 16px; border-radius:var(--r-md); background:#E6F4EA; color:#1C5E38; font-weight:700; }
.checks{ display:grid; gap:12px; margin-top:20px; }
.summary{ background:var(--white); border:1px solid var(--border); border-radius:var(--r-lg); padding:26px; position:sticky; top:108px; box-shadow:var(--shadow-md); }
.summary__title{ font-size:1.15rem; margin-bottom:16px; }
.summary__lines{ display:grid; gap:10px; padding-bottom:16px; border-bottom:1px solid var(--border); }
.summary__lines li{ display:flex; justify-content:space-between; gap:12px; font-size:.92rem; }
.summary__lines li span:last-child{ font-weight:700; white-space:nowrap; }
.summary__lines .is-member{ color:var(--gold-deep); font-size:.8rem; }
.summary__totals{ display:grid; gap:8px; margin:16px 0 20px; }
.summary__totals div{ display:flex; justify-content:space-between; }
.summary__totals dt{ color:var(--text-soft); }
.summary__totals dd{ margin:0; font-weight:700; }
.summary__total{ padding-top:12px; border-top:1px dashed var(--border); font-size:1.25rem; }
.summary__total dt{ color:var(--ink) !important; font-weight:800; }
.summary__total dd{ color:var(--olive); font-weight:900 !important; }
[data-discount]{ color:#1C5E38; }
.summary__secure, .summary__hold{ font-size:.78rem; color:var(--text-soft); text-align:center; margin-top:12px; }
@media (max-width:960px){ .summary{ position:static; } }
.coupon{ padding:14px 0; border-bottom:1px solid var(--border); }
.coupon--inline{ border:0; padding:6px 0; }
.coupon__toggle{ background:none; border:0; color:var(--olive); font-weight:700; padding:0; font-size:.9rem; }
.coupon__box{ margin-top:10px; }
.coupon__msg{ font-size:.84rem; margin-top:6px; font-weight:600; }
.coupon__msg.is-ok{ color:#1C5E38; } .coupon__msg.is-bad{ color:#8E1A12; }
.inline-field{ display:flex; gap:8px; }
.inline-field input{ flex:1; min-width:0; padding:10px 14px; border:1.5px solid var(--border); border-radius:var(--r-sm); background:var(--white); text-transform:uppercase; }
.state-panel{ text-align:center; padding:56px 24px; background:var(--white); border-radius:var(--r-lg); border:1px solid var(--border); max-width:640px; margin:0 auto; }
.state-panel > i{ font-size:2.2rem; color:var(--terracotta); margin-bottom:16px; }
.state-panel h2{ font-size:1.4rem; margin-bottom:10px; }
.state-panel .flex{ margin-top:22px; }
.field-check--highlight{ padding:14px 16px; background:var(--gold-tint); border-radius:var(--r-md); color:#5B430F; }
.field-check--highlight input{ accent-color:var(--gold-deep); }
.field--short{ max-width:240px; }
.label-row{ display:flex; justify-content:space-between; align-items:baseline; }
.label-row a{ font-size:.82rem; font-weight:700; color:var(--olive); margin-bottom:8px; }
.pass-wrap{ position:relative; }
.pass-wrap input{ padding-inline-end:70px !important; }
.pass-toggle{ position:absolute; inset-inline-end:8px; top:50%; transform:translateY(-50%); background:none; border:0; font-weight:700; font-size:.8rem; color:var(--olive); padding:6px 8px; }
.strength{ height:4px; border-radius:4px; background:var(--stone); margin-top:8px; overflow:hidden; }
.strength span{ display:block; height:100%; width:0; transition:width .3s, background .3s; }
.field select{ appearance:none; padding-inline-end:40px; }
[dir=rtl] .select-wrap::after{ right:auto; left:16px; }

/* ============ Gallery ============ */
.album-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.album-grid--4{ grid-template-columns:repeat(4,1fr); gap:20px; }
@media (max-width:960px){ .album-grid, .album-grid--4{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .album-grid, .album-grid--4{ grid-template-columns:1fr; } }
.album-card a{ display:block; }
.album-card__stack{ position:relative; aspect-ratio:4/3; border-radius:var(--r-lg); overflow:visible; }
.album-card__stack::before, .album-card__stack::after{ content:""; position:absolute; inset:0; border-radius:var(--r-lg); background:var(--stone); border:1px solid var(--border); transition:transform .3s; }
.album-card__stack::before{ transform:rotate(-3deg) translateY(4px); }
.album-card__stack::after{ transform:rotate(2deg) translateY(2px); background:var(--cream-deep); }
.album-card__stack img, .album-card__stack .ph-icon{ position:relative; z-index:1; width:100%; height:100%; object-fit:cover; border-radius:var(--r-lg); box-shadow:var(--shadow-md); transition:transform .3s; }
.album-card__stack .ph-icon{ display:flex; align-items:center; justify-content:center; background:var(--olive-tint); color:var(--olive); }
.album-card__stack .ph-icon svg{ width:60px; }
.album-card:hover .album-card__stack img{ transform:translateY(-6px); }
.album-card:hover .album-card__stack::before{ transform:rotate(-6deg) translateY(4px); }
.album-card:hover .album-card__stack::after{ transform:rotate(5deg) translateY(2px); }
.album-card__count{ position:absolute; z-index:2; bottom:12px; inset-inline-start:12px; background:rgba(20,6,10,.7); color:var(--white); padding:5px 12px; border-radius:var(--r-pill); font-size:.78rem; font-weight:700; }
.album-card__stack .badge--members{ z-index:2; }
.album-card__body{ padding:18px 4px 0; }
.album-card__body h3{ font-size:1.1rem; }
.album-card__body span{ font-family:var(--font-mono); font-size:.74rem; color:var(--text-soft); text-transform:uppercase; letter-spacing:.06em; }
.album-intro{ margin-bottom:32px; }
.masonry{ columns:3 260px; column-gap:14px; }
.masonry__item{ display:block; margin-bottom:14px; border-radius:var(--r-md); overflow:hidden; break-inside:avoid; cursor:zoom-in; background:var(--stone); }
.masonry__item img{ width:100%; height:auto; transition:transform .4s, filter .4s; }
.masonry__item:hover img{ transform:scale(1.04); filter:brightness(1.05); }
.lightbox-body{ aspect-ratio:auto; width:auto; max-width:92vw; background:transparent; }
.lightbox-body img{ max-width:92vw; max-height:82vh; width:auto; height:auto; border-radius:var(--r-md); margin:0 auto; }
.lightbox-nav{ position:absolute; top:50%; transform:translateY(-50%); width:52px; height:52px; border-radius:50%; background:rgba(255,255,255,.12); color:#fff; border:1px solid rgba(255,255,255,.3); font-size:1.2rem; }
.lightbox-nav:hover{ background:rgba(255,255,255,.25); }
.lightbox-prev{ left:24px; } .lightbox-next{ right:24px; }
.lightbox-count{ position:absolute; top:34px; left:32px; color:#EFE9DA; font-family:var(--font-mono); font-size:.82rem; }

/* ============ About ============ */
.photo-mosaic{ display:grid; grid-template-columns:1.1fr 1fr; grid-template-rows:1fr 1fr; gap:14px; height:460px; }
.photo-mosaic .photo-tile{ border-radius:var(--r-lg); }
.photo-mosaic__tall{ grid-row:span 2; }
.value-card{ background:var(--white); border:1px solid var(--border); border-radius:var(--r-lg); padding:30px; transition:.2s; }
.value-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); }
.value-card .icon-circle{ width:54px; height:54px; border-radius:14px; margin-bottom:18px; }
.value-card h3{ font-size:1.15rem; margin-bottom:8px; }
.value-card p{ color:var(--text-soft); font-size:.94rem; }
.timeline{ position:relative; display:grid; gap:28px; }
.timeline::before{ content:""; position:absolute; top:0; bottom:0; inset-inline-start:52px; width:2px; background:var(--stone-line); }
.timeline li{ display:grid; grid-template-columns:104px 1fr; gap:24px; position:relative; }
.timeline li::after{ content:""; position:absolute; inset-inline-start:46px; top:8px; width:14px; height:14px; transform:rotate(45deg); background:var(--terracotta); border:3px solid var(--cream-deep); }
.timeline__year{ font-family:var(--font-display); font-size:1.4rem; font-weight:900; color:var(--olive); text-align:end; padding-inline-end:36px; }
.timeline h3{ font-size:1.1rem; }
.timeline p{ color:var(--text-soft); margin-top:4px; }
.team-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:28px; }
.team-card{ text-align:center; position:relative; }
.team-card__photo{ width:150px; height:150px; border-radius:50%; margin:0 auto 18px; overflow:hidden; box-shadow:0 0 0 5px var(--white), 0 0 0 6px var(--stone-line); }
.team-card__photo img{ width:100%; height:100%; object-fit:cover; }
.team-card__initials{ font-family:var(--font-display); font-size:2.6rem; font-weight:900; position:relative; z-index:1; color:var(--olive); }
.team-card .ph--dark .team-card__initials{ color:var(--gold); }
.team-card h3{ font-size:1.1rem; }
.team-card__role{ display:block; font-family:var(--font-mono); font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:var(--terracotta); margin:6px 0; }
.team-card p{ color:var(--text-soft); font-size:.88rem; }
.team-card__mail{ display:inline-flex; margin-top:10px; width:34px; height:34px; border-radius:50%; border:1px solid var(--border); align-items:center; justify-content:center; color:var(--olive); }
.cta-band{ background:linear-gradient(120deg,var(--olive),var(--olive-dark)); color:var(--white); border-radius:var(--r-lg); padding:44px 48px; display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap; }
.cta-band h2{ color:var(--white); font-size:1.8rem; }
.cta-band p{ color:#E6D6D2; margin-top:6px; }

/* ============ Contact / donate ============ */
.card--pad{ padding:36px; }
@media (max-width:640px){ .card--pad{ padding:24px; } }
.card--pad:hover, .card--soft:hover, .join__form:hover, .donate-form:hover{ transform:none; box-shadow:none; border-color:var(--border); }
.card--soft{ background:var(--olive-tint); border:none; }
.contact-layout, .donate-layout{ display:grid; grid-template-columns:1.4fr 1fr; gap:48px; align-items:start; }
@media (max-width:900px){ .contact-layout, .donate-layout{ grid-template-columns:1fr; } }
.contact-side, .donate-side{ display:grid; gap:24px; }
.social-row{ display:flex; gap:10px; margin-top:22px; }
.social-row a{ width:40px; height:40px; border-radius:50%; background:var(--olive-tint); color:var(--olive); display:flex; align-items:center; justify-content:center; }
.social-row a:hover{ background:var(--olive); color:var(--white); }
.contact-photo{ border-radius:var(--r-lg); aspect-ratio:4/3; }
.amounts{ display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-bottom:18px; }
@media (max-width:480px){ .amounts{ grid-template-columns:repeat(2,1fr); } }
.amount-btn{ padding:14px 8px; border-radius:var(--r-md); border:1.5px solid var(--border); background:var(--white); font-weight:800; font-size:1.05rem; color:var(--ink); transition:.15s; }
.amount-btn small{ font-weight:600; font-size:.72rem; color:var(--text-soft); }
.amount-btn:hover{ border-color:var(--olive); }
.amount-btn.active{ background:var(--olive); color:var(--white); border-color:var(--olive); }
.amount-btn.active small{ color:#E6D6D2; }
.money-input{ display:flex; align-items:stretch; border:1.5px solid var(--border); border-radius:var(--r-sm); overflow:hidden; background:var(--white); }
.money-input:focus-within{ border-color:var(--olive); box-shadow:0 0 0 4px var(--olive-tint); }
.money-input span{ padding:0 16px; display:flex; align-items:center; background:var(--cream); color:var(--text-soft); font-weight:700; }
.field .money-input input{ border:0; font-size:1.3rem; font-weight:800; box-shadow:none; }
.donate-form .form-row, .donate-form > .field, .donate-form > .field-check{ margin-top:18px; }
.donate-form > .field-check + .field-check{ margin-top:12px; }
.reveal-box{ margin-top:14px; padding:18px; background:var(--cream); border-radius:var(--r-md); border:1px solid var(--border); }
.more-options{ margin-top:16px; }
.more-options summary{ cursor:pointer; font-weight:700; color:var(--olive); font-size:.9rem; }
.more-options .field{ margin-top:10px; }
.pay-block{ margin:24px 0 20px; }
.impact-list{ display:grid; gap:18px; margin-top:16px; }
.impact-list li{ display:flex; gap:14px; align-items:center; }
.impact-list .icon-circle{ width:44px; height:44px; border-radius:10px; }
.quote-card{ margin:0; padding:28px; background:var(--olive-tint); border-radius:var(--r-lg); }
.quote-card p{ font-style:italic; font-family:var(--font-display); font-size:1.15rem; color:var(--olive-dark); }
.quote-card cite{ display:block; margin-top:12px; font-style:normal; color:var(--text-soft); font-size:.86rem; }

/* ============ Calendar ============ */
.calendar-layout{ display:grid; grid-template-columns:minmax(0,2.2fr) minmax(260px,1fr); gap:32px; align-items:start; }
@media (max-width:960px){ .calendar-layout{ grid-template-columns:1fr; } }
.cal-header__mid{ display:flex; align-items:center; gap:12px; }
.cal-legend{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:20px; }
.cal-legend .filter-pill{ padding:6px 14px; font-size:.8rem; display:inline-flex; gap:6px; align-items:center; }
.dot{ width:10px; height:10px; border-radius:50%; display:inline-block; background:var(--olive); }
.dot--terracotta{ background:var(--terracotta); } .dot--gold{ background:var(--gold); } .dot--dark{ background:var(--olive-dark); }
.cal-cell{ cursor:pointer; transition:.15s; text-align:start; font:inherit; color:inherit; }
button.cal-cell{ border:1px solid var(--border); }
.cal-cell:hover{ border-color:var(--olive); }
.cal-cell.is-today .cal-date{ background:var(--terracotta); color:var(--white); border-radius:50%; width:26px; height:26px; display:inline-flex; align-items:center; justify-content:center; }
.cal-cell.is-selected{ outline:2px solid var(--olive); outline-offset:-2px; }
.cal-cell.is-past{ opacity:.7; }
.cal-event{ display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cal-event--olive{ background:var(--olive); } .cal-event--terracotta{ background:var(--terracotta); } .cal-event--gold{ background:var(--gold); color:#5B430F; } .cal-event--dark{ background:var(--olive-dark); }
.cal-more{ font-size:.7rem; color:var(--text-soft); font-weight:700; }
.cal-loading{ grid-column:1/-1; text-align:center; padding:60px; color:var(--text-soft); }
.cal-side{ background:var(--white); border:1px solid var(--border); border-radius:var(--r-lg); padding:24px; position:sticky; top:108px; }
.cal-side__title{ font-size:1.1rem; margin-bottom:16px; }
.cal-list{ display:grid; gap:10px; max-height:520px; overflow:auto; }
.cal-list .muted{ padding:20px 0; text-align:center; }

/* ============ Membership ============ */
.plans-grid{ display:grid; gap:24px; align-items:stretch; }
.plans-grid--1{ grid-template-columns:minmax(0,420px); justify-content:center; }
.plans-grid--2{ grid-template-columns:repeat(2,minmax(0,1fr)); max-width:860px; margin:0 auto; }
.plans-grid--3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
@media (max-width:900px){ .plans-grid--2, .plans-grid--3{ grid-template-columns:1fr; max-width:460px; margin:0 auto; } }
.plan-card{ position:relative; background:var(--white); border:1.5px solid var(--border); border-radius:var(--r-lg); padding:34px 30px 28px; display:flex; flex-direction:column; gap:14px; transition:.2s; }
.plan-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); }
.plan-card.is-featured{ border-color:var(--gold); box-shadow:0 0 0 4px var(--gold-tint), var(--shadow-md); }
.plan-card.is-selected{ border-color:var(--olive); }
.plan-card__ribbon{ position:absolute; top:-13px; inset-inline-start:50%; transform:translateX(-50%); background:var(--gold); color:var(--olive-dark); padding:5px 16px; border-radius:var(--r-pill); font-size:.72rem; font-weight:900; text-transform:uppercase; letter-spacing:.06em; white-space:nowrap; }
[dir=rtl] .plan-card__ribbon{ transform:translateX(50%); }
.plan-card__name{ font-size:1.35rem; }
.plan-card__tag{ color:var(--text-soft); font-size:.92rem; }
.plan-card__price strong{ font-family:var(--font-display); font-size:2.4rem; font-weight:900; color:var(--olive); }
.plan-card__price span{ color:var(--text-soft); margin-inline-start:6px; }
.plan-card .check-list{ flex:1; }
.plan-card__note{ text-align:center; font-size:.76rem; color:var(--text-soft); }
.check-list{ display:grid; gap:10px; }
.check-list li{ display:flex; gap:10px; align-items:flex-start; font-size:.94rem; }
.check-list i{ color:var(--terracotta); margin-top:4px; font-size:.85rem; }
.check-list--grid{ grid-template-columns:repeat(2,1fr); }
@media (max-width:640px){ .check-list--grid{ grid-template-columns:1fr; } }
.join{ display:grid; grid-template-columns:1.5fr 1fr; gap:32px; margin-top:64px; align-items:start; scroll-margin-top:110px; }
@media (max-width:900px){ .join{ grid-template-columns:1fr; } }
.join__form{ display:grid; gap:18px; }
.plan-picker{ display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:10px; }
.plan-picker legend{ margin-bottom:10px; }
.plan-option input{ position:absolute; opacity:0; }
.plan-option__box{ display:grid; gap:2px; padding:14px 16px; border:1.5px solid var(--border); border-radius:var(--r-md); cursor:pointer; transition:.15s; }
.plan-option__box span{ color:var(--text-soft); font-size:.86rem; }
.plan-option input:checked + .plan-option__box{ border-color:var(--olive); background:var(--olive-tint); }
.plan-option input:focus-visible + .plan-option__box{ outline:2px solid var(--terracotta); }
.switch-row{ display:flex; gap:14px; align-items:flex-start; cursor:pointer; padding:16px; border:1px solid var(--border); border-radius:var(--r-md); background:var(--cream); }
.switch-row input{ position:absolute; opacity:0; }
.switch{ width:44px; height:26px; border-radius:var(--r-pill); background:var(--stone-line); position:relative; flex:none; transition:.2s; margin-top:2px; }
.switch::after{ content:""; position:absolute; top:3px; inset-inline-start:3px; width:20px; height:20px; border-radius:50%; background:#fff; box-shadow:var(--shadow-sm); transition:transform .2s; }
.switch-row input:checked + .switch{ background:var(--olive); }
.switch-row input:checked + .switch::after{ transform:translateX(18px); }
[dir=rtl] .switch-row input:checked + .switch::after{ transform:translateX(-18px); }
.switch-row input:focus-visible + .switch{ outline:2px solid var(--terracotta); outline-offset:2px; }
.switch-row strong{ display:block; }
.switch-row small{ color:var(--text-soft); font-size:.84rem; }
.join__total{ display:flex; justify-content:space-between; align-items:baseline; padding:16px 0; border-top:1px dashed var(--border); }
.join__total strong{ font-size:1.5rem; color:var(--olive); }

/* ============ Auth ============ */
.auth-shell{ min-height:calc(100vh - 84px); }
.auth-visual{ background-image:linear-gradient(180deg,rgba(64,14,23,.82),rgba(40,8,14,.95)), var(--auth-img, none); background-size:cover; background-position:center; }
.auth-title{ font-size:1.9rem; margin-bottom:6px; }
.auth-perks{ display:grid; gap:12px; color:#E6D6D2; }
.auth-perks i{ color:var(--gold); width:22px; }

/* ============ Confirmation ============ */
.confirm-hero{ text-align:center; padding:12px 0 36px; }
.confirm-hero__icon{ width:84px; height:84px; margin:0 auto 18px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:2.2rem; animation:pop .45s cubic-bezier(.2,1.4,.4,1); }
@keyframes pop{ from{ transform:scale(.4); opacity:0; } }
.confirm-hero--ok .confirm-hero__icon{ background:#E6F4EA; color:#1C7C45; }
.confirm-hero--warn .confirm-hero__icon{ background:var(--gold-tint); color:var(--gold-deep); }
.confirm-hero--info .confirm-hero__icon{ background:var(--olive-tint); color:var(--olive); }
.confirm-hero--bad .confirm-hero__icon{ background:#FDECEA; color:#B42318; }
.confirm-hero h1{ font-size:clamp(1.8rem,4vw,2.5rem); }
.confirm-hero p{ color:var(--text-soft); margin-top:10px; font-size:1.05rem; }
.confirm .card{ margin-bottom:22px; }
.instructions h2{ margin-bottom:10px; }
.copy-row{ display:flex; align-items:center; gap:12px; padding:10px 0; border-top:1px solid var(--border); margin-top:12px; }
.copy-row span{ color:var(--text-soft); flex:1; }
.copy-row code{ font-family:var(--font-mono); font-weight:600; }
.confirm-event__head{ display:flex; gap:16px; align-items:center; margin-bottom:18px; }
.confirm-event__thumb{ width:76px; height:76px; border-radius:var(--r-md); overflow:hidden; flex:none; }
.confirm-event__thumb .photo-tile{ height:100%; }
.receipt__rows{ display:grid; margin:12px 0; }
.receipt__rows div{ display:flex; justify-content:space-between; gap:16px; padding:10px 0; border-bottom:1px solid var(--border); }
.receipt__rows div:last-child{ border-bottom:0; }
.receipt__rows dt{ color:var(--text-soft); }
.receipt__rows dd{ margin:0; font-weight:700; text-align:end; }
.confirm-actions{ display:flex; gap:12px; flex-wrap:wrap; justify-content:center; margin-top:28px; }

/* ============ Account ============ */
.account-hero{ background:linear-gradient(120deg,var(--olive-dark),var(--olive)); color:var(--white); padding:48px 0 44px; position:relative; overflow:hidden; }
.account-hero::after{ content:""; position:absolute; inset:0; opacity:.07; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='70' height='70'%3E%3Cpath d='M35 3L67 35L35 67L3 35Z' fill='none' stroke='%23FFFFFF' stroke-width='1'/%3E%3C/svg%3E"); }
.account-hero .container{ position:relative; z-index:1; }
.account-hero__inner{ display:flex; gap:22px; align-items:center; }
.account-hero h1{ color:var(--white); font-size:clamp(1.7rem,3.4vw,2.3rem); }
.account-hero p{ color:#E6D6D2; margin-top:8px; display:flex; gap:10px; align-items:center; flex-wrap:wrap; font-size:.92rem; }
.account-hero .breadcrumb{ margin-bottom:8px; }
.account-avatar--lg{ width:80px; height:80px; font-size:1.8rem; font-weight:900; background:var(--gold); color:var(--olive-dark); margin:0; box-shadow:0 0 0 4px rgba(255,255,255,.15); flex:none; }
.section--account{ padding-top:40px; }
.account-side{ padding:14px; top:108px; }
.account-nav a i{ width:20px; text-align:center; }
.account-nav a.active i{ color:var(--terracotta); }
@media (max-width:860px){
  .account-side{ position:static; padding:8px; overflow-x:auto; }
  .account-nav{ display:flex; gap:4px; }
  .account-nav a{ white-space:nowrap; margin:0; }
  .account-nav hr{ display:none; }
}
.account-main{ min-width:0; }
.panel-head{ display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:20px; }
.account-cards{ display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:14px; margin-bottom:28px; }
.acard{ background:var(--white); border:1px solid var(--border); border-radius:var(--r-lg); padding:20px; display:grid; gap:4px; transition:.15s; }
a.acard:hover{ border-color:var(--olive); transform:translateY(-2px); }
.acard__icon{ width:38px; height:38px; border-radius:10px; background:var(--olive-tint); color:var(--olive); display:flex; align-items:center; justify-content:center; margin-bottom:8px; }
.acard strong{ font-size:1.45rem; color:var(--olive); font-family:var(--font-display); line-height:1.15; }
.acard > span:last-child{ color:var(--text-soft); font-size:.84rem; }
.acard--gold{ background:linear-gradient(135deg,var(--gold-tint),var(--white)); border-color:#E8D6A8; }
.acard--gold .acard__icon{ background:var(--gold); color:var(--olive-dark); }
.next-up{ display:grid; grid-template-columns:220px 1fr; background:var(--white); border:1px solid var(--border); border-radius:var(--r-lg); overflow:hidden; margin-bottom:28px; }
.next-up__media .photo-tile{ height:100%; min-height:180px; }
.next-up__body{ padding:26px; display:grid; gap:10px; align-content:center; }
.next-up h2{ font-size:1.4rem; }
.next-up h2 a:hover{ color:var(--terracotta); }
@media (max-width:640px){ .next-up{ grid-template-columns:1fr; } }
.upsell{ display:flex; justify-content:space-between; align-items:center; gap:18px; flex-wrap:wrap; padding:24px 26px; border-radius:var(--r-lg); background:linear-gradient(120deg,var(--gold-tint),var(--white)); border:1px solid #E8D6A8; margin-bottom:28px; }
.upsell h3{ font-size:1.15rem; }
.upsell h3 i{ color:var(--gold-deep); }
.upsell p{ color:var(--text-soft); margin-top:4px; font-size:.92rem; max-width:520px; }
.upsell--big{ padding:32px; }
.activity{ background:var(--white); border:1px solid var(--border); border-radius:var(--r-lg); overflow:hidden; margin-bottom:28px; }
.activity li{ display:flex; align-items:center; gap:14px; padding:14px 18px; border-bottom:1px solid var(--border); }
.activity li:last-child{ border-bottom:0; }
.activity__icon{ width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex:none; background:var(--olive-tint); color:var(--olive); }
.activity__icon--donation{ background:var(--terracotta-tint); color:var(--terracotta); }
.activity__icon--membership{ background:var(--gold-tint); color:var(--gold-deep); }
.activity__main{ flex:1; min-width:0; }
.activity__main strong{ display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.activity__main small{ color:var(--text-soft); }
.activity__amt{ font-weight:800; }
.quick-links{ display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:10px; }
.quick-links a{ display:flex; gap:10px; align-items:center; padding:14px 16px; border:1px solid var(--border); border-radius:var(--r-md); background:var(--white); font-weight:700; font-size:.9rem; color:var(--text-soft); }
.quick-links a:hover{ color:var(--olive); border-color:var(--olive); }
.quick-links i{ color:var(--terracotta); }
.tabs--links .tab-btn{ display:inline-flex; gap:8px; align-items:center; }
.tabs .count{ background:var(--stone); border-radius:var(--r-pill); padding:1px 9px; font-size:.75rem; }
.tab-btn.active .count{ background:var(--olive); color:var(--white); }
.ticket-group{ background:var(--white); border:1px solid var(--border); border-radius:var(--r-lg); padding:22px; margin-bottom:20px; }
.ticket-group__head{ display:flex; gap:16px; align-items:center; margin-bottom:16px; }
.ticket-group__thumb{ width:72px; height:72px; border-radius:var(--r-md); overflow:hidden; flex:none; }
.ticket-group__thumb .photo-tile{ height:100%; }
.ticket-group__info{ flex:1; min-width:0; }
.ticket-group__info h3{ font-size:1.12rem; }
.ticket-group__info h3 a:hover{ color:var(--terracotta); }
.ticket-group__actions{ display:flex; gap:6px; }
.ticket-group .notice{ margin-bottom:14px; }
.ticket-list{ display:grid; gap:12px; }
.ticket{ display:grid; grid-template-columns:1fr auto; background:var(--cream); border-radius:var(--r-md); position:relative; border:1px solid var(--border); }
.ticket__main{ padding:16px 18px; display:grid; gap:2px; border-inline-end:2px dashed var(--stone-line); position:relative; }
.ticket__main::before, .ticket__main::after{ content:""; position:absolute; inset-inline-end:-9px; width:16px; height:16px; border-radius:50%; background:var(--white); border:1px solid var(--border); }
.ticket__main::before{ top:-9px; } .ticket__main::after{ bottom:-9px; }
.confirm .ticket__main::before, .confirm .ticket__main::after{ background:var(--white); }
.ticket__type{ font-family:var(--font-mono); font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; color:var(--gold-deep); }
.ticket__name{ font-size:1.08rem; color:var(--ink); }
.ticket__meta{ font-size:.82rem; color:var(--text-soft); }
.ticket__status{ margin-top:6px; }
.ticket__stub{ padding:12px 16px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; min-width:120px; }
.ticket__qr{ width:74px; height:74px; border:0; padding:4px; background:var(--white); border-radius:8px; display:flex; align-items:center; justify-content:center; cursor:zoom-in; box-shadow:var(--shadow-sm); }
.ticket__qr img, .ticket__qr canvas{ width:100% !important; height:100% !important; }
.ticket__qr--off{ cursor:default; color:var(--ink-faint); font-size:1.4rem; }
.ticket__code{ font-family:var(--font-mono); font-size:.76rem; letter-spacing:.12em; font-weight:600; }
.ticket--cancelled{ opacity:.55; }
.ticket--checked_in .ticket__main{ background:linear-gradient(90deg,transparent,rgba(46,125,79,.06)); }
.ticket__more{ grid-column:1 / -1; border-top:1px solid var(--border); }
.ticket__more summary{ list-style:none; cursor:pointer; padding:8px 18px; font-size:.84rem; color:var(--text-soft); text-align:end; }
.ticket__more summary::-webkit-details-marker{ display:none; }
.ticket__menu{ padding:4px 18px 16px; display:grid; gap:12px; }
.ticket__transfer label{ display:block; font-weight:700; font-size:.84rem; margin-bottom:6px; }
.ticket__transfer .inline-field input{ text-transform:none; }
@media (max-width:520px){ .ticket{ grid-template-columns:1fr; } .ticket__main{ border-inline-end:0; border-bottom:2px dashed var(--stone-line); } .ticket__main::before, .ticket__main::after{ display:none; } .ticket__stub{ flex-direction:row; justify-content:space-between; } }
.qr-modal{ position:fixed; inset:0; z-index:1100; background:rgba(30,10,14,.85); display:flex; align-items:center; justify-content:center; padding:24px; }
.qr-modal__box{ background:var(--white); border-radius:var(--r-lg); padding:32px 28px 24px; text-align:center; max-width:360px; width:100%; position:relative; animation:pop .3s ease; }
.qr-modal__box h3{ font-size:1.05rem; margin-bottom:18px; }
.qr-modal__code{ width:240px; height:240px; margin:0 auto; }
.qr-modal__code img, .qr-modal__code canvas{ width:100% !important; height:100% !important; }
.qr-modal__text{ display:block; font-family:var(--font-mono); font-size:1.3rem; letter-spacing:.2em; font-weight:700; margin:16px 0 10px; color:var(--olive); }
.qr-modal__box .muted{ font-size:.82rem; }
.qr-modal__close{ position:absolute; top:10px; inset-inline-end:12px; width:36px; height:36px; border-radius:50%; background:var(--stone); border:0; font-size:1.3rem; }
.member-card{ background:linear-gradient(135deg,var(--olive-dark),var(--olive) 60%,#8F2B3C); border-radius:22px; padding:28px; color:var(--white); box-shadow:var(--shadow-lg); max-width:520px; position:relative; overflow:hidden; margin-bottom:24px; }
.member-card::after{ content:""; position:absolute; inset:0; opacity:.1; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='26'%3E%3Cg fill='none' stroke='%23C69A3D' stroke-width='1.6'%3E%3Cpath d='M14 2L22 13L14 24L6 13Z'/%3E%3C/g%3E%3C/svg%3E"); }
.member-card > *{ position:relative; z-index:1; }
.member-card__top{ display:flex; justify-content:space-between; gap:16px; }
.member-card__label{ font-family:var(--font-mono); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); }
.member-card h3{ color:var(--white); font-size:1.7rem; margin:4px 0; }
.member-card p{ color:#E6D6D2; }
.member-card__mark{ width:56px; height:56px; border-radius:50%; background:rgba(255,255,255,.12); display:flex; align-items:center; justify-content:center; color:var(--white); flex:none; }
.member-card__mark svg{ width:34px; }
.member-card__grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(110px,1fr)); gap:12px; margin-top:26px; padding-top:18px; border-top:1px solid rgba(255,255,255,.2); }
.member-card__grid small{ display:block; font-size:.7rem; color:#D8C5C0; text-transform:uppercase; letter-spacing:.06em; }
.member-card__grid strong{ font-size:.95rem; }
.settings-list{ background:var(--white); border:1px solid var(--border); border-radius:var(--r-lg); overflow:hidden; margin-bottom:24px; }
.settings-row{ display:flex; align-items:center; justify-content:space-between; gap:18px; padding:18px 22px; border-bottom:1px solid var(--border); }
.settings-row:last-child{ border-bottom:0; }
.settings-row strong{ display:block; }
.settings-row small{ color:var(--text-soft); font-size:.85rem; }
.table-wrap{ overflow-x:auto; background:var(--white); border:1px solid var(--border); border-radius:var(--r-lg); }
.data-table{ width:100%; border-collapse:collapse; font-size:.92rem; }
.data-table th{ text-align:start; font-family:var(--font-mono); font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; color:var(--text-soft); font-weight:600; padding:14px 18px; background:var(--cream); border-bottom:1px solid var(--border); }
.data-table td{ padding:14px 18px; border-bottom:1px solid var(--border); vertical-align:middle; }
.data-table tr:last-child td{ border-bottom:0; }
@media (max-width:640px){
  .data-table thead{ display:none; }
  .data-table tr{ display:block; padding:12px 16px; border-bottom:1px solid var(--border); }
  .data-table td{ display:flex; justify-content:space-between; gap:12px; padding:5px 0; border:0; }
  .data-table td[data-label]::before{ content:attr(data-label); color:var(--text-soft); font-size:.8rem; }
}
.status-pill{ display:inline-block; padding:3px 11px; border-radius:var(--r-pill); font-size:.74rem; font-weight:800; white-space:nowrap; background:var(--stone); color:var(--text-soft); }
.status-pill--ok{ background:#E6F4EA; color:#1C7C45; }
.status-pill--warn{ background:var(--gold-tint); color:#7A5A12; }
.status-pill--info{ background:#E6EEFB; color:#2459A8; }
.status-pill--bad{ background:#FDECEA; color:#B42318; }

/* Validation */
.field.has-error input, .field.has-error select, .field.has-error textarea{ border-color:#B42318; }
.field-error{ color:#B42318; font-size:.8rem; margin-top:6px; font-weight:600; }

/* Block editor alignments */
.wp-block-button__link{ border-radius:var(--r-pill); background:var(--olive); }
.has-text-align-center{ text-align:center; }
.aligncenter{ margin-inline:auto; }
.alignleft{ float:left; margin:0 24px 16px 0; }
.alignright{ float:right; margin:0 0 16px 24px; }
.sticky, .bypostauthor, .wp-caption, .wp-caption-text, .gallery-caption{ }

@media print{
  .site-header, .site-footer, .account-side, .announce-bar, .to-top, .ticket__more, .account-hero{ display:none !important; }
  .account-shell{ display:block; }
}

/* ======================================================================
 * v1.1 — mobile header fix, member fields, household
 * ==================================================================== */
html, body{ max-width:100%; overflow-x:clip; }
@supports not (overflow:clip){ body{ overflow-x:hidden; } }
.site-header .container{ min-width:0; }
.brand{ flex:1 1 auto; min-width:0; }
.brand-mark{ flex:none; }
.brand-name{ min-width:0; overflow:hidden; }
.brand-name span{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.header-actions{ flex:none; }
@media (max-width:960px){
  .site-header .container{ gap:12px; }
  .header-actions{ gap:8px; }
}
@media (max-width:640px){
  .site-header .container{ height:72px; padding:0 16px; }
  .main-nav{ inset:72px 0 0 0; }
  .brand{ gap:10px; }
  .brand-mark{ width:40px; height:40px; }
  .brand-name{ font-size:1.05rem; }
  .brand-name span{ font-size:.55rem; letter-spacing:.06em; }
  .header-actions .icon-btn{ width:38px; height:38px; }
  .nav-toggle{ width:38px; height:38px; }
}
@media (max-width:400px){
  .brand-name span{ display:none; }
}

@media (max-width:960px){ .admin-bar .main-nav{ top:calc(84px + 32px); } }
@media (max-width:782px){ .admin-bar .main-nav{ top:calc(84px + 46px); } }
@media (max-width:640px){ .admin-bar .main-nav{ top:calc(72px + 46px); } }
@media (max-width:600px){ #wpadminbar{ position:fixed; } }

/* Generic overflow guards for content */
img, video, iframe, table{ max-width:100%; }
.entry-content{ overflow-wrap:anywhere; }
.table-wrap{ overflow-x:auto; -webkit-overflow-scrolling:touch; }

/* Member fields */
.opt{ color:var(--text-soft); font-weight:400; font-size:.8em; }
.field-legend{ display:block; font-weight:600; font-size:.9rem; margin-bottom:8px; color:var(--text); }
.check-group{ border:0; padding:0; margin:0; min-width:0; }
.check-group__opts{ display:flex; flex-wrap:wrap; gap:10px 14px; }
.check-group__opts .field-check{ padding:8px 12px; border:1px solid var(--border); border-radius:var(--r-pill); background:var(--white); align-items:center; }
.check-group__opts .field-check input{ margin-top:0; }
.field-check--consent{ padding:14px 16px; background:var(--cream); border:1px solid var(--border); border-radius:var(--r-md); line-height:1.5; }
.field-check--consent a{ color:var(--olive); font-weight:700; text-decoration:underline; }
.field--consent{ margin:18px 0; }
.status-readonly{ display:flex; flex-wrap:wrap; gap:8px; }
.status-chip{ padding:6px 14px; border-radius:var(--r-pill); border:1px solid var(--border); font-size:.84rem; color:var(--text-soft); background:var(--white); opacity:.6; }
.status-chip.is-current{ opacity:1; font-weight:700; }
.status-chip--active{ background:#E6F4EA; border-color:#9FD3AE; color:#1E6B34; }
.status-chip--in_progress{ background:#FFF4DB; border-color:#EBCB7A; color:#7A5A00; }
.status-chip--inactive{ background:#F1EEEA; border-color:#D4CCC2; color:#5D5650; }
.join__form .field, .form-grid .field{ margin-bottom:16px; }
.join__form .form-row .field, .form-grid .form-row .field{ margin-bottom:0; }
.join__form .form-row, .form-grid .form-row{ margin-bottom:16px; }
.join__form textarea, .form-grid textarea{ width:100%; }
.plan-option__seats{ display:block; font-size:.76rem; color:var(--text-soft); margin-top:4px; }

/* Household */
.form-row--3{ grid-template-columns:repeat(3,1fr); }
@media (max-width:760px){ .form-row--3{ grid-template-columns:1fr; } }
.household__list{ list-style:none; margin:0 0 18px; padding:0; display:grid; gap:10px; }
.household__list li{ display:flex; align-items:center; gap:12px; padding:10px 12px; border:1px solid var(--border); border-radius:var(--r-md); background:var(--white); flex-wrap:wrap; }
.household__list li > span:nth-child(2){ flex:1 1 160px; min-width:0; }
.household__list small{ display:block; color:var(--text-soft); font-size:.8rem; overflow-wrap:anywhere; }
.household__list .account-avatar{ width:38px; height:38px; font-size:.85rem; margin:0; flex:none; }
.household__add{ border-top:1px solid var(--border); padding-top:16px; }
.mt-24{ margin-top:24px; }

/* v1.1.1 — mobile menu: backdrop-filter on the header made it the containing block
   for the fixed menu panel, collapsing it to zero height. */
@media (max-width:960px){
  .site-header{ -webkit-backdrop-filter:none; backdrop-filter:none; background:var(--cream); }
  .main-nav{ z-index:99; bottom:0; height:auto; max-height:none; visibility:hidden; }
  .main-nav.open{ visibility:visible; }
}
@media (max-width:960px){
  .main-nav .main-nav__extra a.btn-accent{ color:var(--olive-dark); border-bottom:0; border-radius:var(--r-pill); justify-content:center; }
}
/* Lock scrolling on <html>, not <body>: overflow on body turns it into the sticky header's scroll box and shifts the header. */
body.nav-open{ overflow:visible !important; overflow-x:clip !important; }
html.nav-open{ overflow:hidden; }

/* ======================================================================
 * v1.3 — logo, legal links, accordion, timeline, volunteers, family
 * ==================================================================== */
/* Logo: show the whole image — no circle, no red background. */
.brand-mark.brand-mark--img{ width:auto; height:56px; background:none; border-radius:0; box-shadow:none; overflow:visible; padding:0; }
.brand-mark.brand-mark--img img{ height:100%; width:auto; max-width:120px; object-fit:contain; display:block; border-radius:0; }
.site-footer .brand-mark.brand-mark--img{ height:64px; background:#fff; padding:6px 8px; border-radius:var(--r-sm); }
@media (max-width:640px){ .brand-mark.brand-mark--img{ height:46px; } }

/* Footer legal links */
.footer-legal{ display:flex; gap:18px; flex-wrap:wrap; }
.footer-legal a{ color:inherit; }
.footer-legal a:hover{ color:var(--gold); }

/* Accordion (Contact page FAQ etc.) */
.accordion{ display:grid; gap:12px; }
.accordion-item{ background:var(--white); border:1px solid var(--border); border-radius:var(--r-md); overflow:hidden; transition:border-color .2s ease, box-shadow .2s ease; }
.accordion-item:hover{ border-color:#d9c9b8; }
.accordion-item.open{ border-color:var(--olive); box-shadow:var(--shadow-sm); }
.accordion-head{ padding:18px 22px; gap:16px; text-align:start; line-height:1.35; cursor:pointer; }
.accordion-head:hover{ color:var(--olive); }
.accordion-head .plus{ margin-left:0; width:30px; height:30px; border-radius:50%; background:var(--olive-tint); color:var(--olive); display:flex; align-items:center; justify-content:center; font-size:1.2rem; line-height:1; }
.accordion-item.open .plus{ background:var(--olive); color:var(--white); }
.accordion-panel p{ padding:0 22px 20px; margin:0; max-width:none; }
@media (max-width:640px){ .accordion-head{ padding:16px; font-size:1rem; } .accordion-panel p{ padding:0 16px 16px; } }

/* Timeline (About → Our journey): years sit left of the line, never under the marker. */
.timeline::before{ inset-inline-start:118px; }
.timeline li{ grid-template-columns:96px 1fr; gap:48px; align-items:start; }
.timeline li::after{ inset-inline-start:112px; top:9px; }
.timeline__year{ padding-inline-end:0; font-size:1.3rem; line-height:1.3; font-variant-numeric:tabular-nums; white-space:nowrap; }
@media (max-width:560px){
  .timeline::before{ inset-inline-start:7px; }
  .timeline li{ grid-template-columns:1fr; gap:4px; padding-inline-start:34px; }
  .timeline li::after{ inset-inline-start:1px; top:6px; }
  .timeline__year{ text-align:start; font-size:1.15rem; }
}

/* Become a volunteer banner */
.volunteer-banner{ display:grid; grid-template-columns:1.4fr 1fr; gap:32px; align-items:center; background:var(--gold-tint, #f6ecd2); border:1px solid #e8d6a8; border-radius:var(--r-lg); padding:48px 56px; overflow:hidden; }
.volunteer-banner h2{ font-size:clamp(1.6rem,3vw,2.2rem); margin-top:8px; }
.volunteer-banner p{ color:var(--text-soft); margin:14px 0 24px; max-width:520px; }
.volunteer-banner__media{ display:flex; justify-content:center; }
.volunteer-banner__media img{ width:100%; max-height:260px; object-fit:cover; border-radius:var(--r-md); }
.volunteer-banner__icon{ width:150px; height:150px; border-radius:50%; background:var(--olive); color:var(--gold); display:flex; align-items:center; justify-content:center; font-size:3.6rem; box-shadow:0 0 0 12px rgba(113,28,43,.08); }
@media (max-width:800px){ .volunteer-banner{ grid-template-columns:1fr; padding:32px 24px; } .volunteer-banner__icon{ width:100px; height:100px; font-size:2.4rem; } .volunteer-banner__media{ order:-1; justify-content:flex-start; } }

/* Volunteer page */
.volunteer-status{ text-align:center; display:grid; gap:12px; justify-items:center; max-width:640px; margin:0 auto; }
.volunteer-status__icon{ width:72px; height:72px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.8rem; }
.volunteer-status__icon.is-pending{ background:#FFF4DB; color:#7A5A00; }
.volunteer-status__icon.is-approved{ background:#E6F4EA; color:#1E6B34; }
.steps-list{ margin:10px 0 0; padding-inline-start:20px; display:grid; gap:8px; color:var(--text-soft); font-size:.92rem; }
.mb-32{ margin-bottom:32px; }

/* Languages "Other" box */
.check-group__other{ margin-top:10px; max-width:360px; }
.check-group__other input{ width:100%; }

/* Family members repeater */
.family-box{ border:0; padding:0; margin:8px 0 20px; min-width:0; }
.family-box legend{ padding:0; }
.family__rows{ display:grid; gap:12px; margin-bottom:12px; }
.family-row{ position:relative; display:grid; grid-template-columns:1fr 1fr 120px 1fr; gap:12px; padding:14px 46px 14px 14px; border:1px solid var(--border); border-radius:var(--r-md); background:var(--cream); }
.family-row .field{ margin:0 !important; min-width:0; }
.family-row label{ font-size:.78rem; }
.family-row input, .family-row select{ width:100%; }
.family-row__remove{ position:absolute; top:10px; inset-inline-end:10px; width:28px; height:28px; border-radius:50%; border:1px solid var(--border); background:var(--white); color:var(--text-soft); font-size:1.1rem; line-height:1; cursor:pointer; }
.family-row__remove:hover{ color:var(--terracotta); border-color:var(--terracotta); }
@media (max-width:760px){ .family-row{ grid-template-columns:1fr 1fr; } }
@media (max-width:420px){ .family-row{ grid-template-columns:1fr; } }


/* ---------- Form additions: grouped fields, 3-up rows, address suggestions ---------- */
.field-group-title{ font-weight:700; color:var(--olive); font-size:1rem; margin:12px 0 10px; display:flex; align-items:center; gap:10px; }
.field-group-title::after{ content:""; flex:1; height:1px; background:var(--border); }
.form-row.form-row--3{ grid-template-columns:repeat(3,1fr); }
@media (max-width:760px){ .form-row.form-row--3{ grid-template-columns:1fr; } }
.places-wrap{ position:relative; }
.places-wrap > input{ width:100%; }
.places-list{ position:absolute; z-index:40; inset-inline:0; top:calc(100% + 6px); margin:0; padding:6px; list-style:none; background:var(--white); border:1px solid var(--border); border-radius:14px; box-shadow:0 18px 40px -18px rgba(35,36,30,.35); max-height:320px; overflow:auto; }
.places-list li{ display:flex; gap:12px; align-items:flex-start; padding:10px 12px; border-radius:10px; cursor:pointer; line-height:1.35; }
.places-list li i{ color:var(--olive); margin-top:3px; }
.places-list li strong{ display:block; font-weight:600; color:var(--text); }
.places-list li small{ display:block; color:var(--text-soft); font-size:.82rem; }
.places-list li:hover, .places-list li[aria-selected="true"]{ background:var(--olive-tint); }
.places-list li.places-foot{ cursor:default; font-size:.7rem; color:var(--ink-faint); padding:6px 12px 2px; background:none; }

/* ---------- Social sign-in ---------- */
.social-auth{ display:grid; gap:18px; }
.social-auth__buttons{ display:grid; gap:10px; }
.social-btn{ display:flex; align-items:center; justify-content:center; gap:12px; min-height:50px; padding:12px 18px; border-radius:999px; border:1.5px solid var(--border); background:var(--white); color:var(--text); font-weight:600; text-decoration:none; transition:border-color .2s, background .2s, transform .2s; }
.social-btn:hover{ border-color:var(--olive); transform:translateY(-1px); }
.social-btn i{ font-size:1.15rem; width:20px; text-align:center; }
.social-btn--google i{ color:#DB4437; }
.social-btn--facebook{ background:#1877F2; border-color:#1877F2; color:#fff; }
.social-btn--facebook:hover{ background:#0f63d0; border-color:#0f63d0; }
.social-btn--apple{ background:#111; border-color:#111; color:#fff; }
.social-btn--apple:hover{ background:#000; border-color:#000; }
.social-auth__or{ display:flex; align-items:center; gap:14px; margin:0; color:var(--text-soft); font-size:.85rem; }
.social-auth__or::before, .social-auth__or::after{ content:""; flex:1; height:1px; background:var(--border); }

/* ---------- Section pages: sub-page cards + "more in this section" ---------- */
.subpage-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:22px; }
.subpage-card{ position:relative; display:flex; flex-direction:column; gap:12px; padding:28px 26px 26px; background:var(--white); border:1px solid var(--border); border-radius:var(--r-lg,22px); color:var(--text); text-decoration:none; transition:transform .25s, box-shadow .25s, border-color .25s; overflow:hidden; }
.subpage-card::before{ content:""; position:absolute; inset:0 0 auto; height:4px; background:linear-gradient(90deg,var(--olive),var(--gold)); transform:scaleX(0); transform-origin:left; transition:transform .35s; }
.subpage-card:hover{ transform:translateY(-4px); border-color:var(--olive-mid); box-shadow:0 22px 40px -26px rgba(64,14,23,.45); }
.subpage-card:hover::before{ transform:none; }
.subpage-card__icon{ width:52px; height:52px; border-radius:16px; display:grid; place-items:center; background:var(--olive-tint); color:var(--olive); font-size:1.3rem; }
.subpage-card h3{ margin:4px 0 0; font-size:1.2rem; color:var(--olive); }
.subpage-card p{ margin:0; color:var(--text-soft); font-size:.95rem; line-height:1.6; }
.subpage-card__more{ margin-top:auto; padding-top:6px; font-weight:700; font-size:.9rem; color:var(--gold-deep); display:inline-flex; gap:8px; align-items:center; }
.section-more{ border-top:1px solid var(--border); }
.section-more__title{ font-family:var(--font-mono,monospace); font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-deep); margin:0 0 14px; }
.section-more__links{ display:flex; flex-wrap:wrap; gap:10px; }
.section-more__links a{ display:inline-flex; align-items:center; gap:8px; padding:10px 16px; border-radius:999px; border:1px solid var(--border); background:var(--white); color:var(--text); text-decoration:none; font-weight:600; font-size:.92rem; transition:.2s; }
.section-more__links a i{ color:var(--olive); }
.section-more__links a:hover{ border-color:var(--olive); }
.section-more__links a.is-current{ background:var(--olive); border-color:var(--olive); color:var(--white); }
.section-more__links a.is-current i{ color:var(--gold-tint); }

/* =====================================================================
 * Homepage 2026 (everything below the hero) — .hx-*
 * =================================================================== */
.hx-eyebrow{ display:inline-flex; align-items:center; gap:10px; font-family:var(--font-mono, ui-monospace, monospace); font-size:.78rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-deep); margin-bottom:14px; }
.hx-eyebrow i{ width:10px; height:10px; border:2px solid currentColor; transform:rotate(45deg); flex:none; }
.hx-eyebrow--light{ color:var(--gold); }
.hx-title{ font-family:var(--font-display); font-size:clamp(1.9rem,3.6vw,2.9rem); line-height:1.12; color:var(--olive); margin:0; text-wrap:balance; letter-spacing:-.01em; }
.hx-sub{ color:var(--text-soft); font-size:1.08rem; max-width:60ch; margin:14px auto 0; }
.hx-lead{ color:var(--text-soft); font-size:1.06rem; line-height:1.75; margin-top:18px; }
.hx-lead p{ margin:0 0 12px; }
.hx-head{ margin-bottom:44px; }
.hx-head--center{ text-align:center; }
.hx-head--split{ display:grid; grid-template-columns:1.2fr 1fr; gap:32px; align-items:end; }
.hx-head--split > p{ margin:0; color:var(--text-soft); font-size:1.05rem; line-height:1.7; }
.hx-head--bar{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end; gap:20px; }
.hx-actions{ display:flex; flex-wrap:wrap; align-items:center; gap:14px 22px; margin-top:28px; }
.hx-head .hx-actions{ margin-top:0; }
.hx-link{ display:inline-flex; align-items:center; gap:8px; font-weight:700; color:var(--olive); text-decoration:none; border-bottom:2px solid var(--gold); padding-bottom:2px; }
.hx-link:hover{ color:var(--olive-mid); }
.hx-center-link{ text-align:center; margin:36px 0 0; }
@media (max-width:860px){ .hx-head--split{ grid-template-columns:1fr; gap:14px; } }

/* stats */
.hx-stats{ position:relative; background:var(--cream-deep); padding-block:44px; }
.hx-stats::before, .hx-stats::after{ content:""; position:absolute; inset-inline:0; height:8px; background:linear-gradient(135deg, var(--olive) 25%, transparent 25%) 0 0/16px 16px, linear-gradient(225deg, var(--olive) 25%, transparent 25%) 0 0/16px 16px; opacity:.85; }
.hx-stats::before{ top:0; } .hx-stats::after{ bottom:0; transform:scaleY(-1); }
.hx-stats__row{ display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:18px 44px; }
.hx-stat{ text-align:center; min-width:140px; }
.hx-stat .num{ display:block; font-family:var(--font-display); font-weight:800; font-size:clamp(2.2rem,4.4vw,3.4rem); line-height:1; color:var(--olive); font-variant-numeric:tabular-nums; }
.hx-stat .lbl{ display:block; margin-top:8px; font-size:.92rem; color:var(--text-soft); font-weight:600; }
.hx-stats__sep{ width:12px; height:12px; background:var(--gold); transform:rotate(45deg); flex:none; }
@media (max-width:640px){ .hx-stats__sep{ display:none; } .hx-stat{ min-width:40%; } }

/* about */
.hx-about__grid{ display:grid; grid-template-columns:1fr 1.05fr; gap:72px; align-items:center; }
.hx-about__media{ position:relative; padding:0 10% 14% 0; }
.hx-about__frame{ border-radius:28px; overflow:hidden; background:var(--stone); }
.hx-about__frame img{ display:block; width:100%; height:100%; object-fit:cover; }
.hx-about__frame--a{ aspect-ratio:4/5; box-shadow:18px 18px 0 var(--gold-tint); }
.hx-about__frame--b{ position:absolute; right:0; bottom:0; width:52%; aspect-ratio:1; border:8px solid var(--cream); box-shadow:0 24px 50px -24px rgba(64,14,23,.5); }
.hx-about__stamp{ position:absolute; left:-18px; bottom:20%; width:96px; height:96px; border-radius:50%; background:var(--white); display:grid; place-items:center; box-shadow:0 14px 30px -14px rgba(64,14,23,.45); border:2px dashed var(--gold); padding:14px; }
.hx-about__stamp svg, .hx-about__stamp img{ max-width:100%; max-height:100%; }
.hx-points{ list-style:none; padding:0; margin:28px 0 0; display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.hx-points li{ display:flex; gap:14px; align-items:flex-start; padding:16px; border-radius:18px; background:var(--white); border:1px solid var(--border); }
.hx-points__icon{ flex:none; width:42px; height:42px; border-radius:12px; display:grid; place-items:center; background:var(--olive-tint); color:var(--olive); }
.hx-points strong{ display:block; color:var(--text); }
.hx-points small{ display:block; color:var(--text-soft); font-size:.9rem; line-height:1.5; margin-top:2px; }
@media (max-width:960px){ .hx-about__grid{ grid-template-columns:1fr; gap:48px; } .hx-about__media{ max-width:520px; } }
@media (max-width:560px){ .hx-points{ grid-template-columns:1fr; } .hx-about__stamp{ width:72px; height:72px; left:-6px; } }

/* programs */
.hx-programs{ position:relative; background:var(--olive-dark); color:var(--white); overflow:hidden; }
.hx-programs::before{ content:""; position:absolute; inset:0; opacity:.07; background-image:linear-gradient(45deg, var(--gold) 25%, transparent 25%, transparent 75%, var(--gold) 75%), linear-gradient(45deg, var(--gold) 25%, transparent 25%, transparent 75%, var(--gold) 75%); background-size:32px 32px; background-position:0 0, 16px 16px; pointer-events:none; }
.hx-programs .container{ position:relative; }
.hx-programs .hx-title{ color:var(--white); }
.hx-programs .hx-head--split > p{ color:rgba(255,253,248,.75); }
.hx-programs__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.hx-program{ position:relative; display:flex; flex-direction:column; gap:10px; padding:26px 22px 54px; border-radius:22px; background:rgba(255,253,248,.06); border:1px solid rgba(198,154,61,.25); color:var(--white); text-decoration:none; transition:background .25s, transform .25s, border-color .25s; }
.hx-program:hover{ background:rgba(255,253,248,.12); border-color:var(--gold); transform:translateY(-4px); }
.hx-program__icon{ width:50px; height:50px; border-radius:14px; display:grid; place-items:center; background:var(--gold); color:var(--olive-dark); font-size:1.25rem; }
.hx-program h3{ margin:6px 0 0; font-size:1.08rem; line-height:1.3; color:var(--white); }
.hx-program p{ margin:0; font-size:.9rem; line-height:1.55; color:rgba(255,253,248,.7); }
.hx-program__go{ position:absolute; left:22px; bottom:20px; color:var(--gold); transition:transform .25s; }
[dir="rtl"] .hx-program__go{ left:auto; right:22px; transform:scaleX(-1); }
.hx-program:hover .hx-program__go{ transform:translateX(6px); }
@media (max-width:1080px){ .hx-programs__grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:540px){ .hx-programs__grid{ grid-template-columns:1fr; } }

/* events */
.hx-events{ background:var(--cream); }
.hx-events__grid{ display:grid; gap:24px; grid-template-columns:repeat(3,1fr); }
.hx-events__grid--1{ grid-template-columns:minmax(0,560px); }
.hx-events__grid--2{ grid-template-columns:repeat(2,1fr); }
.hx-events__grid--3 > :first-child{ grid-row:span 1; }
@media (max-width:960px){ .hx-events__grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:620px){ .hx-events__grid{ grid-template-columns:1fr; } }
.hx-events__empty{ display:grid; grid-template-columns:auto 1fr auto; gap:24px; align-items:center; padding:30px 34px; border-radius:24px; background:var(--white); border:1px dashed var(--stone-line); }
.hx-events__empty h3{ margin:0 0 6px; color:var(--olive); }
.hx-events__empty p{ margin:0; color:var(--text-soft); }
.hx-events__empty-icon{ width:64px; height:64px; border-radius:18px; display:grid; place-items:center; background:var(--gold-tint); color:var(--gold-deep); font-size:1.6rem; }
@media (max-width:720px){ .hx-events__empty{ grid-template-columns:1fr; text-align:center; justify-items:center; } }

/* get involved */
.hx-involved{ background:linear-gradient(180deg, var(--cream) 0%, var(--cream-deep) 100%); }
.hx-involved__grid{ display:grid; gap:20px; grid-template-columns:repeat(4,1fr); }
.hx-involved__grid--3{ grid-template-columns:repeat(3,1fr); }
.hx-involved__grid--2{ grid-template-columns:repeat(2,1fr); }
.hx-involved__grid--1{ grid-template-columns:minmax(0,520px); justify-content:center; }
.hx-card{ display:flex; flex-direction:column; gap:12px; padding:30px 26px; border-radius:26px; text-decoration:none; border:1px solid var(--border); background:var(--white); color:var(--text); transition:transform .25s, box-shadow .25s; min-height:280px; }
.hx-card:hover{ transform:translateY(-5px); box-shadow:0 26px 50px -30px rgba(64,14,23,.55); }
.hx-card__icon{ width:56px; height:56px; border-radius:18px; display:grid; place-items:center; font-size:1.4rem; background:var(--olive-tint); color:var(--olive); }
.hx-card h3{ margin:6px 0 0; font-size:1.3rem; color:var(--olive); }
.hx-card p{ margin:0; color:var(--text-soft); line-height:1.6; font-size:.95rem; }
.hx-card__btn{ margin-top:auto; padding-top:10px; display:inline-flex; gap:8px; align-items:center; font-weight:700; color:var(--olive); }
.hx-card--maroon{ background:var(--olive); border-color:var(--olive); color:var(--white); }
.hx-card--maroon h3, .hx-card--maroon .hx-card__btn{ color:var(--white); }
.hx-card--maroon p{ color:rgba(255,253,248,.8); }
.hx-card--maroon .hx-card__icon{ background:rgba(255,253,248,.14); color:var(--gold); }
.hx-card--gold{ background:var(--gold-tint); border-color:#E8D3A4; }
.hx-card--gold .hx-card__icon{ background:var(--gold); color:var(--white); }
@media (max-width:1080px){ .hx-involved__grid, .hx-involved__grid--3{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .hx-involved__grid, .hx-involved__grid--3, .hx-involved__grid--2{ grid-template-columns:1fr; } .hx-card{ min-height:0; } }

/* gallery */
.hx-gallery{ background:#1E1A17; color:var(--white); }
.hx-gallery .hx-title{ color:var(--white); }
.hx-gallery .hx-head--split > p{ color:rgba(255,253,248,.7); }
.hx-mosaic{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:210px; gap:14px; }
.hx-mosaic__tile{ position:relative; overflow:hidden; border-radius:20px; background:#2c2621; display:block; }
.hx-mosaic__tile:first-child{ grid-column:span 2; grid-row:span 2; }
.hx-mosaic__tile img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease; }
.hx-mosaic__tile span{ position:absolute; inset:auto 0 0; padding:28px 16px 12px; font-weight:600; font-size:.9rem; color:var(--white); background:linear-gradient(transparent, rgba(0,0,0,.65)); opacity:0; transition:opacity .3s; }
.hx-mosaic__tile:hover img{ transform:scale(1.06); }
.hx-mosaic__tile:hover span, .hx-mosaic__tile:focus-visible span{ opacity:1; }
.hx-mosaic--1 .hx-mosaic__tile:first-child{ grid-column:span 4; }
.hx-gallery__foot{ display:flex; flex-wrap:wrap; gap:20px; justify-content:space-between; align-items:center; margin-top:34px; }
.hx-pills{ display:flex; flex-wrap:wrap; gap:8px; }
.hx-pills a{ padding:9px 15px; border-radius:999px; border:1px solid rgba(255,253,248,.22); color:rgba(255,253,248,.85); text-decoration:none; font-size:.88rem; font-weight:600; transition:.2s; }
.hx-pills a:hover{ border-color:var(--gold); color:var(--gold); }
@media (max-width:860px){ .hx-mosaic{ grid-template-columns:repeat(2,1fr); grid-auto-rows:170px; } .hx-mosaic--1 .hx-mosaic__tile:first-child{ grid-column:span 2; } }

/* donate */
.hx-donate{ position:relative; background:radial-gradient(120% 140% at 85% 0%, var(--olive-mid) 0%, var(--olive) 45%, var(--olive-dark) 100%); color:var(--white); padding-block:88px; overflow:hidden; }
.hx-donate::after{ content:""; position:absolute; right:-120px; bottom:-120px; width:420px; height:420px; border:60px solid rgba(198,154,61,.12); transform:rotate(45deg); pointer-events:none; }
.hx-donate__grid{ position:relative; z-index:1; display:grid; grid-template-columns:1.3fr 1fr; gap:56px; align-items:center; }
.hx-donate .hx-title{ color:var(--white); font-size:clamp(2rem,4vw,3.2rem); }
.hx-donate__body > p{ color:rgba(255,253,248,.82); font-size:1.08rem; line-height:1.7; max-width:52ch; margin:18px 0 0; }
.hx-donate .goal{ margin-top:26px; max-width:520px; }
.hx-donate__card{ background:var(--white); color:var(--text); border-radius:28px; padding:32px; box-shadow:0 30px 60px -30px rgba(0,0,0,.5); }
.hx-donate__label{ margin:0 0 14px; font-weight:800; color:var(--olive); font-size:1.1rem; }
.hx-donate__card ul{ list-style:none; padding:0; margin:0 0 24px; display:grid; gap:12px; }
.hx-donate__card li{ display:flex; gap:12px; align-items:center; color:var(--text-soft); }
.hx-donate__card li i{ width:34px; height:34px; border-radius:10px; display:grid; place-items:center; background:var(--gold-tint); color:var(--gold-deep); flex:none; }
.hx-donate__monthly{ display:block; text-align:center; margin-top:12px; color:var(--olive); font-weight:600; }
@media (max-width:900px){ .hx-donate__grid{ grid-template-columns:1fr; gap:36px; } }

/* newsletter */
.hx-news__card{ display:grid; grid-template-columns:auto 1fr 1fr; gap:32px; align-items:center; padding:40px; border-radius:30px; background:var(--white); border:1px solid var(--border); box-shadow:0 30px 60px -45px rgba(64,14,23,.45); }
.hx-news__icon{ width:84px; height:84px; border-radius:24px; display:grid; place-items:center; background:var(--olive); color:var(--gold); font-size:2rem; }
.hx-news__text p{ margin:10px 0 0; color:var(--text-soft); }
.hx-news .hx-title{ font-size:clamp(1.6rem,2.6vw,2.1rem); }
@media (max-width:960px){ .hx-news__card{ grid-template-columns:1fr; text-align:center; justify-items:center; padding:32px 22px; } .hx-news__form{ width:100%; } }

/* ---------- Header menu for the full site map: burger up to 1200px, compact desktop above ---------- */
@media (min-width:961px) and (max-width:1200px){
  .site-header{ -webkit-backdrop-filter:none; backdrop-filter:none; background:var(--cream); }
  .site-header .container{ gap:12px; }
  .header-actions{ gap:8px; }
  .main-nav{ position:fixed; inset:84px 0 0 0; background:var(--cream); flex-direction:column; align-items:stretch; padding:24px; gap:4px; transform:translateY(-8px); opacity:0; pointer-events:none; transition:.22s ease; overflow-y:auto; z-index:99; bottom:0; height:auto; max-height:none; visibility:hidden; }
  .main-nav.open{ transform:translateY(0); opacity:1; pointer-events:auto; visibility:visible; }
  .main-nav a{ padding:16px 18px; font-size:1.05rem; border-bottom:1px solid var(--border); border-radius:0; }
  .nav-toggle{ display:flex; }
  .header-actions .btn span.long{ display:none; }
  .main-nav .menu{ flex-direction:column; align-items:stretch; gap:0; }
  .main-nav .sub-menu{ position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; border:0; padding:0 0 0 16px; background:transparent; }
  .main-nav__extra{ display:block; margin-top:20px; }
  .header-donate{ display:none; }
  .admin-bar .main-nav{ top:calc(84px + 32px); }
  .main-nav .main-nav__extra a.btn-accent{ color:var(--olive-dark); border-bottom:0; border-radius:var(--r-pill); justify-content:center; }
}
@media (min-width:1201px){
  .site-header .container{ gap:18px; }
  .main-nav .menu{ gap:2px; }
  .main-nav .menu > li > a{ padding:9px 11px; font-size:.88rem; white-space:nowrap; }
  .main-nav .menu > li.menu-item-has-children > a::after{ content:""; display:inline-block; width:6px; height:6px; margin-inline-start:7px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:translateY(-3px) rotate(45deg); opacity:.6; }
  .main-nav .sub-menu{ min-width:250px; }
  .main-nav .sub-menu a{ font-size:.9rem; white-space:normal; }
  .main-nav .menu > li:last-child .sub-menu, .main-nav .menu > li:nth-last-child(2) .sub-menu{ inset-inline-start:auto; inset-inline-end:0; }
}
@media (min-width:1201px) and (max-width:1400px){
  .brand-name span{ display:none; }
  .main-nav .menu > li > a{ padding:9px 8px; font-size:.85rem; }
}
/* Collapsible sub-menus in the burger menu */
.sub-toggle{ display:none; }
@media (max-width:1200px){
  .main-nav .menu-item-has-children{ position:relative; }
  .main-nav .menu-item-has-children > a{ padding-inline-end:60px; }
  .sub-toggle{ display:grid; place-items:center; position:absolute; top:6px; inset-inline-end:4px; width:44px; height:44px; border:0; border-radius:12px; background:var(--olive-tint); color:var(--olive); cursor:pointer; }
  .sub-toggle::before{ content:""; width:8px; height:8px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:translateY(-2px) rotate(45deg); transition:transform .2s; }
  .menu-item-has-children.sub-open > .sub-toggle::before{ transform:translateY(2px) rotate(-135deg); }
  .main-nav .menu-item-has-children > .sub-menu{ display:none; }
  .main-nav .menu-item-has-children.sub-open > .sub-menu{ display:block; }
  .main-nav .sub-menu a{ font-size:.98rem; padding:13px 18px; }
}

.hx-programs::before{ opacity:.045; }
.hx-points li:last-child:nth-child(odd){ grid-column:1 / -1; }
.hx-events__grid--1{ grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); }
.hx-events__aside{ display:flex; flex-direction:column; gap:12px; padding:34px; border-radius:24px; background:var(--white); border:1px dashed var(--stone-line); align-self:stretch; justify-content:center; }
.hx-events__aside h3{ margin:4px 0 0; color:var(--olive); font-size:1.35rem; }
.hx-events__aside p{ margin:0; color:var(--text-soft); line-height:1.65; }
.hx-events__aside ul{ list-style:none; padding:0; margin:8px 0 0; display:grid; gap:8px; }
.hx-events__aside a{ display:flex; align-items:center; gap:12px; padding:12px 14px; border-radius:14px; background:var(--cream); color:var(--text); font-weight:600; text-decoration:none; transition:.2s; }
.hx-events__aside a i{ color:var(--olive); width:18px; text-align:center; }
.hx-events__aside a:hover{ background:var(--olive-tint); color:var(--olive); }
@media (max-width:760px){ .hx-events__grid--1{ grid-template-columns:1fr; } }
.hx-albums{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.hx-album{ display:flex; flex-direction:column; justify-content:space-between; gap:28px; min-height:150px; padding:22px; border-radius:20px; background:linear-gradient(160deg, rgba(198,154,61,.16), rgba(255,253,248,.03)); border:1px solid rgba(198,154,61,.25); color:var(--white); text-decoration:none; transition:transform .25s, border-color .25s, background .25s; }
.hx-album span{ width:46px; height:46px; border-radius:14px; display:grid; place-items:center; background:rgba(198,154,61,.18); color:var(--gold); font-size:1.15rem; }
.hx-album strong{ font-size:1.05rem; }
.hx-album:hover{ transform:translateY(-4px); border-color:var(--gold); background:linear-gradient(160deg, rgba(198,154,61,.28), rgba(255,253,248,.05)); }
@media (max-width:860px){ .hx-albums{ grid-template-columns:repeat(2,1fr); } }

.entry-content .page-cta{ margin-top:28px; }
.entry-content .page-cta .btn, .entry-content .page-cta .btn:hover{ color:var(--white); text-decoration:none; }
