/* =====================================================
   Associazione Culturale La Lòm – Tremosine sul Garda
   Stile principale – versione colorata
   ===================================================== */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&family=Lato:wght@300;400;700&display=swap');

/* ── Reset & Base ─────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  /* Palette principale */
  --brown-dark:   #4A2512;
  --brown:        #7A3E1A;
  --gold:         #C4940E;
  --gold-light:   #E8B84B;
  --gold-pale:    #FDF3DC;

  /* Attività – colori tematici */
  --coro-bg:      #7A3E1A;   /* marrone caldo */
  --coro-light:   #FFF4E6;
  --coro-accent:  #E8B84B;

  --libri-bg:     #1A5276;   /* blu lago profondo */
  --libri-light:  #E8F4FD;
  --libri-accent: #5DADE2;

  --riuso-bg:     #1E6B3A;   /* verde bosco */
  --riuso-light:  #E8F8F5;
  --riuso-accent: #52BE80;

  --giovani-bg:   #8B3A62;   /* viola/magenta */
  --giovani-light:#FAE9F5;
  --giovani-accent:#D87CB5;

  /* Lago e territorio */
  --lake:         #1A6E8C;
  --lake-light:   #48A9C8;
  --lake-pale:    #E3F4FA;

  /* Terracotta */
  --terra:        #C0583A;
  --terra-light:  #FAEAE5;

  /* Base */
  --cream:        #FAF6EF;
  --cream-dark:   #F0E8D8;
  --text:         #2C1A0E;
  --text-mid:     #5C3A1E;
  --text-light:   #8B6038;
  --border:       #D4B896;
  --white:        #FFFFFF;

  --font-heading: 'Playfair Display', Georgia, serif;
  --font-body:    'Lato', Arial, sans-serif;

  --shadow-sm:  0 2px 10px rgba(74,37,18,.12);
  --shadow-md:  0 6px 24px rgba(74,37,18,.18);
  --shadow-lg:  0 12px 48px rgba(74,37,18,.22);
  --radius:     8px;
  --radius-lg:  16px;
  --transition: .25s ease;
}

html { scroll-behavior: smooth; }

body {
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.7;
  color: var(--text);
  background: var(--cream);
}

a { color: var(--brown); text-decoration: none; transition: color var(--transition); }
a:hover { color: var(--gold); }
img { max-width: 100%; height: auto; display: block; }
h1, h2, h3, h4 { font-family: var(--font-heading); line-height: 1.25; color: var(--brown-dark); }
p { margin-bottom: 1rem; }
p:last-child { margin-bottom: 0; }

/* ── Container ────────────────────────────────────── */
.container {
  width: 100%;
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

/* ── Header / Navbar ──────────────────────────────── */
.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: var(--brown-dark);
  box-shadow: var(--shadow-md);
}

.navbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .85rem 1.5rem;
  max-width: 1140px;
  margin: 0 auto;
}

.navbar-brand {
  display: flex;
  align-items: center;
  gap: .85rem;
  text-decoration: none;
}

.navbar-brand img {
  width: 52px;
  height: 52px;
  object-fit: contain;
  border-radius: 50%;
  border: 2px solid var(--gold);
  background: #ffffff;
  padding: 4px;
}

.brand-text { line-height: 1.15; }
.brand-name { display:block; font-family:var(--font-heading); font-size:1.35rem; font-weight:700; color:var(--white); letter-spacing:.02em; }
.brand-sub  { display:block; font-size:.7rem; color:var(--gold-light); letter-spacing:.07em; text-transform:uppercase; }

.nav-toggle {
  display:none; flex-direction:column; gap:5px;
  background:none; border:none; cursor:pointer; padding:.3rem;
}
.nav-toggle span { display:block; width:26px; height:2px; background:var(--white); border-radius:2px; transition:var(--transition); }

.nav-links {
  display:flex; align-items:center; gap:.2rem; list-style:none;
}
.nav-links a {
  display:block; padding:.48rem .9rem;
  font-size:.83rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  color:rgba(255,255,255,.82); border-radius:6px;
  transition:background var(--transition), color var(--transition);
}
.nav-links a:hover,
.nav-links a.active {
  background: var(--gold);
  color: var(--white);
}

/* ── Wave divider ─────────────────────────────────── */
.wave-divider {
  overflow: hidden;
  line-height: 0;
  margin-top: -2px;
}
.wave-divider svg { display:block; width:100%; height:60px; }

/* ── Hero ─────────────────────────────────────────── */
.hero {
  position: relative;
  min-height: 600px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  overflow: hidden;
}

.hero-bg {
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  opacity:.5; filter:saturate(1.2) brightness(.85);
  transform: scale(1.04);
}
.hero-overlay {
  position:absolute; inset:0;
  background: linear-gradient(160deg, rgba(74,37,18,.6) 0%, rgba(26,78,140,.45) 55%, rgba(30,107,58,.4) 100%);
}

.hero-content { position:relative; z-index:2; padding:3rem 1.5rem; max-width:820px; }

.hero-eyebrow {
  display:inline-block;
  font-size:.75rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase;
  color:var(--gold-light);
  background:rgba(255,255,255,.1); backdrop-filter:blur(4px);
  border:1px solid rgba(255,255,255,.2);
  padding:.35rem 1rem; border-radius:20px;
  margin-bottom:1rem;
}

.hero-title {
  font-family:var(--font-heading);
  font-size:clamp(2.6rem, 7vw, 4.4rem);
  font-weight:700; color:var(--white); line-height:1.1;
  margin-bottom:1rem;
  text-shadow: 0 2px 20px rgba(0,0,0,.35);
}
.hero-title em { color:var(--gold-light); font-style:italic; }

.hero-subtitle {
  font-size:1.1rem; color:rgba(255,255,255,.9);
  margin-bottom:2.25rem; line-height:1.65;
  text-shadow: 0 1px 8px rgba(0,0,0,.3);
}

.hero-cta { display:inline-flex; gap:1rem; flex-wrap:wrap; justify-content:center; }

/* ── Buttons ──────────────────────────────────────── */
.btn {
  display:inline-block; padding:.72rem 1.9rem;
  font-family:var(--font-body); font-size:.85rem; font-weight:700;
  letter-spacing:.06em; text-transform:uppercase;
  border-radius:30px; border:2px solid transparent;
  cursor:pointer; transition:all var(--transition); text-decoration:none;
}

.btn-primary {
  background: linear-gradient(135deg, var(--gold) 0%, var(--gold-light) 100%);
  color:var(--brown-dark); border-color:var(--gold);
  box-shadow: 0 4px 15px rgba(196,148,14,.3);
}
.btn-primary:hover {
  transform:translateY(-3px);
  box-shadow: 0 8px 25px rgba(196,148,14,.45);
  color:var(--brown-dark);
}

.btn-outline {
  background:transparent; color:var(--white);
  border-color:rgba(255,255,255,.65);
  backdrop-filter:blur(4px);
}
.btn-outline:hover { background:rgba(255,255,255,.18); border-color:var(--white); color:var(--white); transform:translateY(-2px); }

.btn-brown {
  background:var(--brown); color:var(--white); border-color:var(--brown);
}
.btn-brown:hover { background:var(--brown-dark); border-color:var(--brown-dark); color:var(--white); transform:translateY(-2px); box-shadow:var(--shadow-sm); }

.btn-lake {
  background: linear-gradient(135deg, var(--lake) 0%, var(--lake-light) 100%);
  color:var(--white); border-color:var(--lake);
  box-shadow: 0 4px 15px rgba(26,110,140,.3);
}
.btn-lake:hover { transform:translateY(-3px); box-shadow:0 8px 25px rgba(26,110,140,.45); color:var(--white); }

.btn-green {
  background: linear-gradient(135deg, var(--riuso-bg) 0%, #27AE60 100%);
  color:var(--white); border-color:var(--riuso-bg);
  box-shadow: 0 4px 15px rgba(30,107,58,.3);
}
.btn-green:hover { transform:translateY(-3px); box-shadow:0 8px 25px rgba(30,107,58,.45); color:var(--white); }

/* ── Section wrapper ──────────────────────────────── */
.section { padding: 5rem 0; }
.section-alt { background: var(--cream-dark); }
.section-lake { background: linear-gradient(135deg, var(--lake-pale) 0%, #D6EAF8 100%); }
.section-gold { background: linear-gradient(135deg, var(--gold-pale) 0%, #FEF9E7 100%); }
.section-green { background: linear-gradient(135deg, var(--riuso-light) 0%, #D5F5E3 100%); }
.section-terra { background: linear-gradient(135deg, var(--terra-light) 0%, #FDEDEC 100%); }
.section-dark  { background: var(--brown-dark); }

.section-header { text-align:center; margin-bottom:3.5rem; }
.section-eyebrow {
  display:inline-block; font-size:.72rem; font-weight:700;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--gold); margin-bottom:.5rem;
}
.section-title { font-size:clamp(1.7rem, 4vw, 2.5rem); margin-bottom:.75rem; }
.section-divider { width:60px; height:3px; background:var(--gold); margin:.75rem auto 0; border:none; border-radius:2px; }
.section-lead { max-width:640px; margin:1.25rem auto 0; font-size:1.05rem; color:var(--text-mid); text-align:center; }

/* colored eyebrow variants */
.eyebrow-lake  { color:var(--lake); }
.eyebrow-green { color:var(--riuso-bg); }
.eyebrow-terra { color:var(--terra); }
.divider-lake  { background:var(--lake); }
.divider-green { background:var(--riuso-bg); }

/* ── Activity Cards – colorati ────────────────────── */
.cards-grid {
  display:grid; grid-template-columns:repeat(auto-fit, minmax(245px, 1fr)); gap:1.75rem;
}

.card {
  background:var(--white); border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm); overflow:hidden;
  transition:transform var(--transition), box-shadow var(--transition);
  border-top:5px solid var(--gold);
}
.card:hover { transform:translateY(-7px); box-shadow:var(--shadow-lg); }

.card--coro    { border-top-color:var(--coro-bg); }
.card--libri   { border-top-color:var(--libri-bg); }
.card--riuso   { border-top-color:var(--riuso-bg); }
.card--giovani { border-top-color:var(--giovani-bg); }

.card-img  { width:100%; height:200px; object-fit:cover; }

.card-icon {
  display:flex; align-items:center; justify-content:center;
  width:100%; height:130px; font-size:3.5rem;
}
.card-icon--coro    { background:var(--coro-light); }
.card-icon--libri   { background:var(--libri-light); }
.card-icon--riuso   { background:var(--riuso-light); }
.card-icon--giovani { background:var(--giovani-light); }

.card-body { padding:1.5rem; }
.card-title { font-size:1.2rem; margin-bottom:.5rem; color:var(--brown-dark); }
.card-text  { font-size:.92rem; color:var(--text-mid); margin-bottom:1rem; }

.card-link         { font-size:.82rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--gold); }
.card-link--coro   { color:var(--coro-bg); }
.card-link--libri  { color:var(--libri-bg); }
.card-link--riuso  { color:var(--riuso-bg); }
.card-link--giovani{ color:var(--giovani-bg); }
.card-link:hover   { opacity:.75; }

/* ── Motto / Quote band ───────────────────────────── */
.motto-band {
  background: linear-gradient(135deg, var(--brown-dark) 0%, #2C1A0E 40%, var(--lake) 100%);
  color:var(--white); text-align:center; padding:4rem 1.5rem;
  position:relative; overflow:hidden;
}
.motto-band::before {
  content:'';
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 70% 50%, rgba(196,148,14,.12) 0%, transparent 60%),
              radial-gradient(ellipse at 20% 80%, rgba(26,110,140,.15) 0%, transparent 50%);
}
.motto-band blockquote {
  font-family:var(--font-heading);
  font-size:clamp(1.3rem, 3.5vw, 2.1rem);
  font-style:italic; color:var(--gold-light);
  max-width:700px; margin:0 auto .75rem;
  position:relative; z-index:1;
}
.motto-band cite {
  font-size:.82rem; letter-spacing:.12em; text-transform:uppercase;
  color:rgba(255,255,255,.5); position:relative; z-index:1;
}

/* ── Colored Activity Bands ───────────────────────── */
.activity-band {
  padding: 4.5rem 0;
  position:relative;
}
.activity-band--coro    { background: linear-gradient(135deg, var(--coro-light) 0%, #FFF8EC 100%); border-left: 6px solid var(--coro-bg); }
.activity-band--libri   { background: linear-gradient(135deg, var(--libri-light) 0%, #D6EEF8 100%); border-left: 6px solid var(--libri-bg); }
.activity-band--riuso   { background: linear-gradient(135deg, var(--riuso-light) 0%, #D5F5E3 100%); border-left: 6px solid var(--riuso-bg); }
.activity-band--giovani { background: linear-gradient(135deg, var(--giovani-light) 0%, #F9D7EF 100%); border-left: 6px solid var(--giovani-bg); }

/* ── Events list ──────────────────────────────────── */
.events-list { display:flex; flex-direction:column; gap:1.25rem; }

.event-item {
  display:flex; gap:0;
  background:var(--white); border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm); overflow:hidden;
  transition:box-shadow var(--transition), transform var(--transition);
}
.event-item:hover { box-shadow:var(--shadow-md); transform:translateX(4px); }

.event-date {
  flex-shrink:0; display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  width:90px; padding:1rem .5rem; text-align:center;
  background: linear-gradient(180deg, var(--brown-dark) 0%, var(--brown) 100%);
  color:var(--white);
}
.event-date .day   { font-family:var(--font-heading); font-size:2.1rem; font-weight:700; line-height:1; }
.event-date .month { font-size:.65rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-light); margin-top:.2rem; }
.event-date .year  { font-size:.6rem; color:rgba(255,255,255,.45); }

.event-body { padding:1.1rem 1.4rem; display:flex; flex-direction:column; justify-content:center; flex:1; }
.event-tag  { font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); margin-bottom:.3rem; }
.event-title { font-family:var(--font-heading); font-size:1.1rem; color:var(--brown-dark); margin-bottom:.35rem; }
.event-desc  { font-size:.9rem; color:var(--text-mid); }

/* ── Stats strip ──────────────────────────────────── */
.stats-strip {
  display:grid; grid-template-columns:repeat(4,1fr); gap:0;
  background: linear-gradient(135deg, var(--brown-dark) 0%, var(--lake) 60%, var(--riuso-bg) 100%);
}
.stat-item {
  padding:2.25rem 1rem; text-align:center;
  border-right:1px solid rgba(255,255,255,.12);
  position:relative; overflow:hidden;
}
.stat-item:last-child { border-right:none; }
.stat-item::before {
  content:''; position:absolute; inset:0;
  background:rgba(255,255,255,0);
  transition:background var(--transition);
}
.stat-item:hover::before { background:rgba(255,255,255,.06); }
.stat-number {
  font-family:var(--font-heading); font-size:2.8rem; font-weight:700;
  color:var(--gold-light); line-height:1; display:block;
}
.stat-label {
  font-size:.75rem; letter-spacing:.1em; text-transform:uppercase;
  color:rgba(255,255,255,.6); margin-top:.35rem; display:block;
}

/* ── Featured band ────────────────────────────────── */
.feature-band {
  background: linear-gradient(135deg, var(--lake) 0%, #0E4D6A 100%);
  padding:4rem 0; color:var(--white); text-align:center;
}
.feature-band h2 { color:var(--white); font-size:clamp(1.6rem,4vw,2.5rem); margin-bottom:.75rem; }
.feature-band p  { color:rgba(255,255,255,.75); max-width:600px; margin:0 auto 1.5rem; font-size:1.05rem; }

/* ── Page hero (inner pages) ──────────────────────── */
.page-hero {
  background:var(--brown-dark); padding:4.5rem 1.5rem 3.5rem;
  text-align:center; position:relative; overflow:hidden;
}
.page-hero::after {
  content:'';
  position:absolute; bottom:0; left:0; right:0; height:4px;
  background: linear-gradient(90deg, var(--gold) 0%, var(--lake-light) 50%, var(--riuso-accent) 100%);
}
.page-hero-content { position:relative; z-index:1; }
.page-hero h1 { font-size:clamp(2rem,5vw,3.3rem); color:var(--white); margin-bottom:.5rem; }
.page-hero p  { color:var(--gold-light); font-size:.9rem; letter-spacing:.08em; text-transform:uppercase; font-weight:700; margin:0; }

.breadcrumb {
  display:flex; align-items:center; gap:.5rem;
  font-size:.8rem; color:rgba(255,255,255,.5);
  justify-content:center; margin-top:.85rem;
}
.breadcrumb a { color:rgba(255,255,255,.5); }
.breadcrumb a:hover { color:var(--gold-light); }
.breadcrumb span { color:var(--gold-light); }

/* ── Activity section (detail) ────────────────────── */
.activity-section {
  display:grid; grid-template-columns:1fr 1fr; gap:4rem;
  align-items:center; padding:4rem 0;
  border-bottom:1px solid var(--border);
}
.activity-section:last-child { border-bottom:none; }
.activity-section.reverse { direction:rtl; }
.activity-section.reverse > * { direction:ltr; }

.activity-img {
  border-radius:var(--radius-lg); box-shadow:var(--shadow-md);
  width:100%; height:340px; object-fit:cover;
}
.activity-img-placeholder {
  border-radius:var(--radius-lg); box-shadow:var(--shadow-md);
  width:100%; height:340px;
  background:var(--cream-dark);
  display:flex; align-items:center; justify-content:center; font-size:5rem;
}

.activity-text h2 { font-size:2rem; margin-bottom:.5rem; }
.activity-eyebrow {
  font-size:.72rem; font-weight:700; letter-spacing:.16em;
  text-transform:uppercase; color:var(--gold); margin-bottom:.4rem; display:block;
}
.activity-eyebrow--coro    { color:var(--coro-bg); }
.activity-eyebrow--libri   { color:var(--libri-bg); }
.activity-eyebrow--riuso   { color:var(--riuso-bg); }
.activity-eyebrow--giovani { color:var(--giovani-bg); }
.activity-text hr { width:50px; height:3px; background:var(--gold); border:none; margin:.75rem 0 1.25rem; border-radius:2px; }

/* ── Color accent boxes ───────────────────────────── */
.accent-box {
  border-radius:var(--radius); padding:1.5rem 1.75rem;
  margin-top:1.5rem;
}
.accent-box--coro    { background:var(--coro-light); border-left:4px solid var(--coro-bg); }
.accent-box--libri   { background:var(--libri-light); border-left:4px solid var(--libri-bg); }
.accent-box--riuso   { background:var(--riuso-light); border-left:4px solid var(--riuso-bg); }
.accent-box--giovani { background:var(--giovani-light); border-left:4px solid var(--giovani-bg); }
.accent-box--gold    { background:var(--gold-pale); border-left:4px solid var(--gold); }

/* ── Gallery ──────────────────────────────────────── */
.gallery-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(260px,1fr)); gap:1rem; }

.gallery-item {
  border-radius:var(--radius); overflow:hidden;
  aspect-ratio:4/3; cursor:pointer; position:relative;
}
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.gallery-item:hover img { transform:scale(1.07); }
.gallery-item-overlay {
  position:absolute; inset:0; background:rgba(74,37,18,0);
  transition:background .3s ease;
  display:flex; align-items:center; justify-content:center;
}
.gallery-item:hover .gallery-item-overlay { background:rgba(74,37,18,.42); }
.gallery-item-overlay span { color:var(--white); font-size:2rem; opacity:0; transition:opacity .3s ease; }
.gallery-item:hover .gallery-item-overlay span { opacity:1; }

/* ── Contact ──────────────────────────────────────── */
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:start; }
.contact-info h3 { font-size:1.4rem; margin-bottom:1.5rem; }
.contact-detail { display:flex; gap:1rem; margin-bottom:1.25rem; align-items:flex-start; }
.contact-detail-icon { font-size:1.4rem; margin-top:.1rem; flex-shrink:0; }
.contact-detail-text strong { display:block; font-size:.75rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); margin-bottom:.15rem; }

.contact-form { background:var(--white); padding:2.5rem; border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); }
.contact-form h3 { font-size:1.4rem; margin-bottom:1.5rem; }

.form-group { margin-bottom:1.25rem; }
.form-group label { display:block; font-size:.8rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--text-mid); margin-bottom:.4rem; }
.form-group input,
.form-group textarea {
  width:100%; padding:.75rem 1rem;
  border:1.5px solid var(--border); border-radius:var(--radius);
  font-family:var(--font-body); font-size:.95rem; color:var(--text);
  background:var(--cream); transition:border-color var(--transition); resize:vertical;
}
.form-group input:focus,
.form-group textarea:focus { outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(196,148,14,.12); }

/* ── Tags / Badges ────────────────────────────────── */
.tag {
  display:inline-block; font-size:.7rem; font-weight:700;
  letter-spacing:.08em; text-transform:uppercase;
  padding:.22rem .8rem; border-radius:20px; color:var(--white);
}
.tag--gold    { background:var(--gold); }
.tag--brown   { background:var(--brown-dark); }
.tag--lake    { background:var(--lake); }
.tag--green   { background:var(--riuso-bg); }
.tag--giovani { background:var(--giovani-bg); }
.tag--terra   { background:var(--terra); }
.tag--grey    { background:#777; }

/* ── Footer ───────────────────────────────────────── */
.site-footer {
  background: linear-gradient(160deg, var(--brown-dark) 0%, #2A1508 70%, #1A2A3A 100%);
  color:rgba(255,255,255,.72); padding:3.5rem 0 1.5rem;
}
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:3rem; margin-bottom:2.5rem; }
.footer-brand img { width:55px; height:55px; object-fit:contain; border-radius:50%; border:2px solid var(--gold); margin-bottom:.85rem; }
.footer-brand h3  { color:var(--white); font-size:1.3rem; margin-bottom:.35rem; }
.footer-brand p   { font-size:.88rem; line-height:1.6; }
.footer-links h4  { color:var(--gold-light); font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; margin-bottom:1rem; }
.footer-links ul  { list-style:none; }
.footer-links li  { margin-bottom:.5rem; }
.footer-links a   { color:rgba(255,255,255,.6); font-size:.88rem; transition:color var(--transition); }
.footer-links a:hover { color:var(--gold-light); }

.footer-rainbow {
  height:4px;
  background: linear-gradient(90deg, var(--gold) 0%, var(--lake-light) 33%, var(--riuso-accent) 66%, var(--giovani-accent) 100%);
  margin-bottom:2rem; border-radius:2px;
}

.footer-bottom {
  border-top:1px solid rgba(255,255,255,.1); padding-top:1.25rem;
  display:flex; justify-content:space-between; align-items:center;
  flex-wrap:wrap; gap:.75rem; font-size:.78rem; color:rgba(255,255,255,.35);
}

/* ── Utilities ────────────────────────────────────── */
.text-center { text-align:center; }
.mt-1 { margin-top:1rem; }
.mt-2 { margin-top:2rem; }
.mt-3 { margin-top:3rem; }
.mb-2 { margin-bottom:2rem; }

/* ── Responsive ───────────────────────────────────── */
@media (max-width: 900px) {
  .activity-section { grid-template-columns:1fr; gap:2rem; }
  .activity-section.reverse { direction:ltr; }
  .contact-grid { grid-template-columns:1fr; }
  .footer-grid  { grid-template-columns:1fr 1fr; }
  .stats-strip  { grid-template-columns:1fr 1fr; }
}
@media (max-width: 768px) {
  .nav-toggle { display:flex; }
  .nav-links {
    display:none; position:absolute; top:100%; left:0; right:0;
    background:var(--brown-dark); flex-direction:column;
    padding:1rem; gap:.2rem; box-shadow:var(--shadow-md);
  }
  .nav-links.open { display:flex; }
  .nav-links a { font-size:.85rem; padding:.65rem 1rem; }
  .site-header { position:relative; }
  .footer-grid { grid-template-columns:1fr; gap:2rem; }
  .event-item  { flex-direction:column; }
  .event-date  { width:100%; flex-direction:row; gap:.5rem; padding:.75rem 1rem; }
}
@media (max-width: 480px) {
  .hero { min-height:460px; }
  .hero-title { font-size:2rem; }
  .cards-grid  { grid-template-columns:1fr; }
  .stats-strip { grid-template-columns:1fr 1fr; }
}
