
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  scroll-behavior: smooth;
  hanging-punctuation: first last;
  scroll-padding-top: var(--space-16);
}

body {
  min-height: 100dvh;
  line-height: 1.6;
  font-family: var(--font-body, sans-serif);
  font-size: var(--text-base);
  color: var(--color-text);
  background-color: var(--color-bg);
}

img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
  height: auto;
}
ul[role='list'],
ol[role='list'] {
  list-style: none;
}
input,
button,
textarea,
select {
  font: inherit;
  color: inherit;
}

h1, h2, h3, h4, h5, h6 {
  
  line-height: 1.15;
}
p, li, figcaption {
  
  max-width: 72ch;
}

::selection {
  background: var(--color-primary-highlight);
  color: var(--color-text);
}

:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 3px;
  border-radius: var(--radius-sm);
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

button {
  cursor: pointer;
  background: none;
  border: none;
}
table {
  border-collapse: collapse;
  width: 100%;
}

a,
button,
[role='button'],
[role='link'],
input,
textarea,
select {
  transition:
    color var(--transition-interactive),
    background var(--transition-interactive),
    border-color var(--transition-interactive),
    box-shadow var(--transition-interactive);
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}
/* ==============================
   THE GRAND DETAIL -  Styles
   Safari-safe: no oklch(from ...) relative color syntax,
   no animation-timeline (Chromium-only)
   ============================== */

:root {
  --text-xs:   clamp(0.75rem,  0.7rem  + 0.25vw, 0.875rem);
  --text-sm:   clamp(0.875rem, 0.8rem  + 0.35vw, 1rem);
  --text-base: clamp(1rem,     0.95rem + 0.25vw, 1.125rem);
  --text-lg:   clamp(1.125rem, 1rem    + 0.75vw, 1.5rem);
  --text-xl:   clamp(1.5rem,   1.2rem  + 1.25vw, 2.25rem);
  --text-2xl:  clamp(2rem,     1.2rem  + 2.5vw,  3.5rem);
  --text-3xl:  clamp(2.5rem,   1rem    + 4vw,    5rem);
  --text-hero: clamp(3rem,     0.5rem  + 7vw,    8rem);

  --space-1:  0.25rem; --space-2:  0.5rem;  --space-3: 0.75rem;
  --space-4:  1rem;    --space-5:  1.25rem; --space-6: 1.5rem;
  --space-8:  2rem;    --space-10: 2.5rem;  --space-12:3rem;
  --space-16: 4rem;    --space-20: 5rem;    --space-24:6rem;
  --space-32: 8rem;

  --font-display: 'Boska', 'Georgia', serif;
  --font-body:    'Satoshi', 'Helvetica Neue', sans-serif;

  --content-narrow:  640px;
  --content-default: 960px;
  --content-wide:    1200px;

  --radius-sm:   0.375rem; --radius-md: 0.5rem;
  --radius-lg:   0.75rem;  --radius-xl: 1rem;
  --radius-full: 9999px;

  --transition-interactive: 180ms cubic-bezier(0.16, 1, 0.3, 1);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in:  cubic-bezier(0.4, 0, 1, 1);
}

/* ── LIGHT MODE (default) ── */
/* Brand palette: Ivory #FAF6F1, Sand #D4B8A0, Sage #7A9E8E,
   Champagne Gold #C9A84C, Forest #1E3A2F, Espresso #2C2018  */
:root,
[data-theme='light'] {
  --color-bg:               #FAF6F1;
  --color-surface:          #F3EDE4;
  --color-surface-2:        #FDF9F5;
  --color-surface-offset:   #D4B8A0;
  --color-text:             #2C2018;
  --color-text-muted:       #6B5A48;
  --color-text-faint:       #A8977F;
  --color-text-inverse:     #FAF6F1;
  --color-primary:          #C9A84C;
  --color-primary-hover:    #B8952E;
  --color-primary-active:   #A07E20;
  --color-primary-highlight:#F0E6C8;
  --color-accent:           #7A9E8E;
  --color-accent-hover:     #5E8A78;
  --color-sand:             #D4B8A0;
  --color-forest:           #1E3A2F;

  --shadow-sm: 0 1px 3px rgba(44,32,24,0.07);
  --shadow-md: 0 4px 16px rgba(44,32,24,0.09);
  --shadow-lg: 0 12px 36px rgba(44,32,24,0.13);

  --t5:  rgba(44,32,24,0.05);
  --t6:  rgba(44,32,24,0.06);
  --t8:  rgba(44,32,24,0.08);
  --t10: rgba(44,32,24,0.10);
  --t12: rgba(44,32,24,0.12);
  --t20: rgba(44,32,24,0.20);
  --t30: rgba(44,32,24,0.30);
  --bg97:rgba(250,246,241,0.97);
  --bg92:rgba(250,246,241,0.92);
  --bg75:rgba(250,246,241,0.75);
  --bg35:rgba(250,246,241,0.35);
  --bg15:rgba(250,246,241,0.15);
  --p15: rgba(201,168,76,0.15);
}

/* ── DARK MODE ── */
[data-theme='dark'] {
  --color-bg:               #1C1812;
  --color-surface:          #251F18;
  --color-surface-2:        #2C261E;
  --color-surface-offset:   #201A14;
  --color-text:             #EDE5D8;
  --color-text-muted:       #A0907A;
  --color-text-faint:       #6B5A45;
  --color-text-inverse:     #1C1812;
  --color-primary:          #C9A84C;
  --color-primary-hover:    #D8BC6A;
  --color-primary-active:   #B8952E;
  --color-primary-highlight:#332C1A;
  --color-accent:           #7A9E8E;
  --color-accent-hover:     #96B8A8;
  --color-forest:           #2E5A46;

  --shadow-sm: 0 1px 2px rgba(0,0,0,0.25);
  --shadow-md: 0 4px 12px rgba(0,0,0,0.35);
  --shadow-lg: 0 12px 32px rgba(0,0,0,0.45);

  --t5:  rgba(237,229,216,0.05);
  --t6:  rgba(237,229,216,0.06);
  --t8:  rgba(237,229,216,0.08);
  --t10: rgba(237,229,216,0.10);
  --t12: rgba(237,229,216,0.12);
  --t20: rgba(237,229,216,0.20);
  --t30: rgba(237,229,216,0.30);
  --bg97:rgba(28,24,18,0.97);
  --bg92:rgba(28,24,18,0.92);
  --bg75:rgba(28,24,18,0.75);
  --bg35:rgba(28,24,18,0.35);
  --bg15:rgba(28,24,18,0.15);
  --p15: rgba(201,168,76,0.15);
}

/* Force light mode on system-dark-preferring devices by default.
   User can toggle to dark with the button. */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme='dark']) {
    --color-bg:#FAF6F1; --color-surface:#F3EDE4; --color-surface-2:#FDF9F5;
    --color-surface-offset:#E8DDD0; --color-text:#2C2018; --color-text-muted:#6B5A48;
    --color-text-faint:#A8977F; --color-text-inverse:#FAF6F1;
    --color-primary:#C9A84C; --color-primary-hover:#B8952E; --color-primary-active:#A07E20;
    --color-primary-highlight:#F0E6C8; --color-accent:#7A9E8E; --color-forest:#1E3A2F;
    --shadow-sm:0 1px 3px rgba(44,32,24,0.07); --shadow-md:0 4px 16px rgba(44,32,24,0.09);
    --shadow-lg:0 12px 36px rgba(44,32,24,0.13);
    --t5:rgba(44,32,24,0.05); --t6:rgba(44,32,24,0.06); --t8:rgba(44,32,24,0.08);
    --t10:rgba(44,32,24,0.10); --t12:rgba(44,32,24,0.12);
    --t20:rgba(44,32,24,0.20); --t30:rgba(44,32,24,0.30);
    --bg97:rgba(250,246,241,0.97); --bg92:rgba(250,246,241,0.92); --bg75:rgba(250,246,241,0.75);
    --bg35:rgba(250,246,241,0.35); --bg15:rgba(250,246,241,0.15);
    --p15:rgba(201,168,76,0.15);
  }
}

/* ── LAYOUT ── */
.container { max-width:var(--content-wide); margin-inline:auto; padding-inline:var(--space-4); }
@media(min-width:768px){ .container{ padding-inline:var(--space-8); } }
.container--narrow{ max-width:var(--content-default); }

/* ── HEADER ── */
.site-header {
  position: sticky; top: 0; z-index: 100;
  background: var(--bg92);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--t8);
  transition: box-shadow 0.3s var(--ease-out);
}
.site-header--scrolled { box-shadow: var(--shadow-sm); }
.header-inner {
  display:flex; align-items:center; justify-content:space-between; height:72px;
}
@media(min-width:768px){ .header-inner{ height:80px; } }

.logo { display:flex; align-items:center; gap:var(--space-2); text-decoration:none; color:var(--color-text); }
.logo svg { width:36px; height:36px; }
.logo-text { font-family:var(--font-display); font-size:var(--text-lg); font-weight:500; letter-spacing:-0.01em; line-height:1.1; }
.logo-text span { display:block; font-size:0.55em; font-family:var(--font-body); font-weight:400; letter-spacing:0.12em; text-transform:uppercase; color:var(--color-text-muted); margin-top:1px; }

.nav-desktop { display:none; align-items:center; gap:var(--space-1); }
@media(min-width:1024px){ .nav-desktop{ display:flex; } }

.nav-link {
  font-size:var(--text-sm); font-weight:500; color:var(--color-text-muted);
  text-decoration:none; padding:var(--space-2) var(--space-3); border-radius:var(--radius-md);
  transition:color var(--transition-interactive), background var(--transition-interactive);
}
.nav-link:hover, .nav-link.active { color:var(--color-text); background:var(--t5); }

.nav-cta {
  font-size:var(--text-sm); font-weight:700; color:#2C2018;
  background:var(--color-primary); padding:var(--space-2) var(--space-4);
  border-radius:var(--radius-full); text-decoration:none; margin-left:var(--space-2);
  transition:background var(--transition-interactive), transform var(--transition-interactive);
}
.nav-cta:hover { background:var(--color-primary-hover); color:#FAF6F1; transform:translateY(-1px); }
.nav-cta:active { transform:translateY(0); }

.header-controls { display:flex; align-items:center; gap:var(--space-2); }
.theme-toggle, .menu-toggle {
  width:40px; height:40px; display:flex; align-items:center; justify-content:center;
  border-radius:var(--radius-md); color:var(--color-text-muted);
  transition:color var(--transition-interactive), background var(--transition-interactive);
}
.theme-toggle:hover, .menu-toggle:hover { color:var(--color-text); background:var(--t6); }
.menu-toggle { display:flex; }
@media(min-width:1024px){ .menu-toggle{ display:none; } }

/* ── MOBILE NAV ── */
.mobile-nav {
  position:fixed; inset:0; z-index:200; background:var(--color-bg);
  display:flex; flex-direction:column; padding:var(--space-4);
  opacity:0; pointer-events:none;
  transition:opacity 0.3s var(--ease-out);
}
.mobile-nav.open { opacity:1; pointer-events:auto; }
.mobile-nav-header { display:flex; align-items:center; justify-content:space-between; height:72px; }
.mobile-nav-links { display:flex; flex-direction:column; gap:var(--space-1); margin-top:var(--space-8); }
.mobile-nav-link {
  font-family:var(--font-display); font-size:var(--text-xl); font-weight:400;
  color:var(--color-text); text-decoration:none;
  padding:var(--space-3) 0; border-bottom:1px solid var(--t8);
  transition:color var(--transition-interactive);
}
.mobile-nav-link:hover { color:var(--color-primary); }

/* ── HERO ── */
.hero { position:relative; min-height:85vh; display:flex; align-items:flex-end; overflow:hidden; }
.hero-bg { position:absolute; inset:0; z-index:0; }
.hero-bg img { width:100%; height:100%; object-fit:cover; }
.hero-bg::after {
  content:''; position:absolute; inset:0;
  background: linear-gradient(to top, var(--bg97) 0%, var(--bg75) 35%, var(--bg35) 65%, var(--bg15) 100%);
}
.hero-content {
  position:relative; z-index:1; max-width:var(--content-wide);
  margin-inline:auto; padding:var(--space-12) var(--space-4) var(--space-16); width:100%;
}
@media(min-width:768px){ .hero-content{ padding:var(--space-16) var(--space-8) var(--space-20); } }
.hero-eyebrow { font-size:var(--text-xs); font-weight:700; letter-spacing:0.15em; text-transform:uppercase; color:#2C2018; margin-bottom:var(--space-4); text-shadow:0 1px 3px rgba(255,255,255,0.6); }
.hero-title { font-family:var(--font-display); font-size:var(--text-3xl); font-weight:400; line-height:1.05; max-width:14ch; margin-bottom:var(--space-6); color:#1E3A2F; text-shadow:0 1px 3px rgba(255,255,255,0.4); }
.hero-subtitle { color:#2C2018; font-size:var(--text-base); color:var(--color-text); max-width:48ch; margin-bottom:var(--space-8); line-height:1.7; }
.hero-actions { display:flex; flex-wrap:wrap; gap:var(--space-3); }

/* ── BUTTONS ── */
.btn {
  display:inline-flex; align-items:center; gap:var(--space-2);
  font-size:var(--text-sm); font-weight:600; padding:var(--space-3) var(--space-6);
  border-radius:var(--radius-full); text-decoration:none; cursor:pointer; border:none; line-height:1.4;
  transition:background var(--transition-interactive), color var(--transition-interactive),
    transform var(--transition-interactive), box-shadow var(--transition-interactive);
}
.btn-primary { background:var(--color-primary); color:var(--color-text-inverse); }
.btn-primary:hover { background:var(--color-primary-hover); transform:translateY(-1px); box-shadow:var(--shadow-md); }
.btn-primary:active { transform:translateY(0); box-shadow:var(--shadow-sm); }
.btn-outline { background:transparent; color:var(--color-text); border:1px solid var(--t20); }
.btn-outline:hover { background:var(--t6); border-color:var(--t30); transform:translateY(-1px); }
.btn-outline:active { transform:translateY(0); }

/* ── SECTIONS ── */
.section { padding:clamp(var(--space-12),6vw,var(--space-24)) 0; }
.section--alt { background:var(--color-surface); }
.section-eyebrow { font-size:var(--text-xs); font-weight:600; letter-spacing:0.15em; text-transform:uppercase; color:var(--color-primary); margin-bottom:var(--space-3); }
.section-title { font-family:var(--font-display); font-size:var(--text-2xl); font-weight:400; margin-bottom:var(--space-4); max-width:20ch; }
.section-subtitle { font-size:var(--text-base); color:var(--color-text-muted); max-width:56ch; line-height:1.7; margin-bottom:var(--space-10); }

/* ── SPLIT CARDS (homepage) ── */
.split-section { background:var(--color-surface); }
.split-cards { display:grid; gap:var(--space-6); margin-top:var(--space-10); }
@media(min-width:768px){ .split-cards{ grid-template-columns:1fr 1fr; gap:var(--space-8); } }
.split-card {
  display:flex; flex-direction:column; border-radius:var(--radius-xl); overflow:hidden;
  border:1px solid var(--t8); background:var(--color-surface-2);
  text-decoration:none; color:inherit;
  transition:transform 0.3s var(--ease-out), box-shadow 0.3s var(--ease-out);
}
.split-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); }
.split-card-img { width:100%; aspect-ratio:4/3; overflow:hidden; }
.split-card-img img { width:100%; height:100%; object-fit:cover; transition:transform 0.5s var(--ease-out); }
.split-card:hover .split-card-img img { transform:scale(1.04); }
.split-card-body { padding:var(--space-8); flex:1; display:flex; flex-direction:column; }
.split-card-eyebrow { font-size:var(--text-xs); font-weight:600; text-transform:uppercase; letter-spacing:0.1em; color:var(--color-primary); margin-bottom:var(--space-3); }
.split-card-title { font-family:var(--font-display); font-size:var(--text-xl); font-weight:500; margin-bottom:var(--space-3); }
.split-card-desc { font-size:var(--text-sm); color:var(--color-text-muted); line-height:1.7; flex:1; margin-bottom:var(--space-6); }
.split-card-cta { display:inline-flex; align-items:center; gap:var(--space-2); font-size:var(--text-sm); font-weight:600; color:var(--color-primary); transition:gap 0.2s; }
.split-card:hover .split-card-cta { gap:var(--space-3); }

/* ── STATS ── */
.stats-row {
  display:grid; grid-template-columns:repeat(2,1fr); gap:var(--space-6);
  padding:var(--space-12) 0; border-top:1px solid var(--t8); border-bottom:1px solid var(--t8);
}
@media(min-width:768px){ .stats-row{ grid-template-columns:repeat(4,1fr); } }
.stat { text-align:center; }
.stat-number { font-family:var(--font-display); font-size:var(--text-2xl); font-weight:400; color:var(--color-primary); line-height:1; }
.stat-label { font-size:var(--text-xs); color:var(--color-text-muted); margin-top:var(--space-2); text-transform:uppercase; letter-spacing:0.08em; }

/* ── TESTIMONIALS ── */
.testimonials-grid { display:grid; gap:var(--space-6); }
@media(min-width:768px){ .testimonials-grid{ grid-template-columns:1fr 1fr; } }
.testimonial-card { background:var(--color-surface-2); border-radius:var(--radius-lg); padding:var(--space-8); border:1px solid var(--t6); }
.testimonial-quote { font-family:var(--font-display); font-size:var(--text-lg); font-weight:400; line-height:1.5; margin-bottom:var(--space-6); }
.testimonial-quote::before { content:'\201C'; display:block; font-size:var(--text-2xl); color:var(--color-primary); line-height:1; margin-bottom:var(--space-2); }
.testimonial-author { font-size:var(--text-sm); font-weight:600; }
.testimonial-role { font-size:var(--text-xs); color:var(--color-text-muted); }

/* ── TWO-COL ── */
.two-col { display:grid; gap:var(--space-8); align-items:center; }
@media(min-width:768px){ .two-col{ grid-template-columns:1fr 1fr; gap:var(--space-12); } }
.two-col--reverse .two-col-media { order:-1; }
@media(min-width:768px){ .two-col--reverse .two-col-media{ order:1; } }
.two-col-media img { border-radius:var(--radius-lg); width:100%; aspect-ratio:4/3; object-fit:cover; }
.two-col-content { display:flex; flex-direction:column; }

/* ── PRICING ── */
.pricing-grid { display:grid; gap:var(--space-6); margin-top:var(--space-10); align-items:start; }
@media(min-width:900px){ .pricing-grid{ grid-template-columns:repeat(3,1fr); } }
.pricing-card {
  position:relative; border-radius:var(--radius-xl); border:1px solid var(--t10);
  padding:var(--space-8); background:var(--color-surface); display:flex; flex-direction:column; gap:var(--space-4);
}
.pricing-card--featured { border-color:var(--color-primary); background:var(--color-surface-2); box-shadow:var(--shadow-lg); }
.pricing-badge {
  position:absolute; top:-14px; left:50%; transform:translateX(-50%);
  background:var(--color-primary); color:var(--color-text-inverse);
  font-size:var(--text-xs); font-weight:700; text-transform:uppercase; letter-spacing:0.08em;
  padding:var(--space-1) var(--space-4); border-radius:var(--radius-full); white-space:nowrap;
}
.pricing-eyebrow { font-size:var(--text-xs); font-weight:700; text-transform:uppercase; letter-spacing:0.1em; color:var(--color-primary); }
.pricing-price { font-family:var(--font-display); font-size:var(--text-base); color:var(--color-text-muted); }
.pricing-price span { font-size:var(--text-xl); font-weight:500; color:var(--color-text); }
.pricing-desc { font-size:var(--text-sm); color:var(--color-text-muted); line-height:1.7; }
.pricing-features { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:var(--space-2); flex:1; }
.pricing-features li { font-size:var(--text-sm); color:var(--color-text-muted); padding-left:var(--space-5); position:relative; }
.pricing-features li::before { content:'✓'; position:absolute; left:0; color:var(--color-primary); font-weight:700; }
.pricing-note { text-align:center; font-size:var(--text-sm); color:var(--color-text-muted); margin-top:var(--space-8); }
.pricing-note a { color:var(--color-primary); text-decoration:underline; }

/* ── CONSULTING GRID ── */
.consulting-grid { display:grid; gap:var(--space-6); grid-template-columns:1fr; }
@media(min-width:640px){ .consulting-grid{ grid-template-columns:repeat(2,1fr); } }
@media(min-width:1024px){ .consulting-grid{ grid-template-columns:repeat(3,1fr); } }
.consulting-card { position:relative; padding:var(--space-8); border:1px solid var(--t8); border-radius:var(--radius-xl); background:var(--color-surface); overflow:hidden; }
.consulting-num { position:absolute; top:var(--space-4); right:var(--space-5); font-family:var(--font-display); font-size:3rem; font-weight:700; opacity:0.05; line-height:1; }
.consulting-icon { width:28px; height:28px; color:var(--color-accent); margin-bottom:var(--space-4); }
.consulting-title { font-family:var(--font-display); font-size:var(--text-lg); font-weight:500; margin-bottom:var(--space-3); }
.consulting-desc { font-size:var(--text-sm); color:var(--color-text-muted); line-height:1.7; }

/* ── GALLERY ── */
.gallery-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:var(--space-3); }
@media(min-width:768px){ .gallery-grid{ grid-template-columns:repeat(3,1fr); gap:var(--space-4); } }
.gallery-item { overflow:hidden; border-radius:var(--radius-md); aspect-ratio:1; position:relative; }
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform 0.5s var(--ease-out); }
.gallery-item:hover img { transform:scale(1.04); }

/* ── ABOUT ── */
.about-layout { display:grid; gap:var(--space-12); align-items:start; }
@media(min-width:768px){ .about-layout{ grid-template-columns:1fr 1.4fr; } }
.about-photo { border-radius:var(--radius-xl); overflow:hidden; }
.about-photo img { width:100%; height:auto; object-fit:cover; object-position:top center; display:block; }
.about-name { font-family:var(--font-display); font-size:var(--text-xl); font-weight:500; margin-bottom:var(--space-4); }
.about-divider { width:48px; height:2px; background:var(--color-primary); margin-bottom:var(--space-6); }
.about-bio { font-size:var(--text-base); color:var(--color-text-muted); line-height:1.8; margin-bottom:var(--space-4); }
.about-tags { display:flex; flex-wrap:wrap; gap:var(--space-2); margin-top:var(--space-6); }
.about-tag { font-size:var(--text-xs); font-weight:600; padding:var(--space-1) var(--space-3); border-radius:var(--radius-full); background:var(--color-primary-highlight); color:var(--color-primary); }

/* ── VALUES ── */
.values-grid { display:grid; gap:var(--space-6); grid-template-columns:repeat(2,1fr); }
@media(min-width:768px){ .values-grid{ grid-template-columns:repeat(4,1fr); } }
.value-card { text-align:center; padding:var(--space-6); }
.value-icon { width:32px; height:32px; color:var(--color-accent); margin:0 auto var(--space-4); }
.value-title { font-family:var(--font-display); font-size:var(--text-lg); font-weight:500; margin-bottom:var(--space-3); }
.value-desc { font-size:var(--text-sm); color:var(--color-text-muted); line-height:1.7; }

/* ── EVENTS LIST / CALENDAR ── */
.events-list { display:flex; flex-direction:column; gap:var(--space-4); }
.event-item {
  display:grid; grid-template-columns:auto 1fr auto; gap:var(--space-4); align-items:center;
  padding:var(--space-4) var(--space-5); background:var(--color-surface-2);
  border-radius:var(--radius-lg); border:1px solid var(--t6);
  text-decoration:none; color:var(--color-text);
  transition:box-shadow var(--transition-interactive), transform var(--transition-interactive);
}
.event-item:hover { box-shadow:var(--shadow-md); transform:translateY(-1px); }
.event-date { text-align:center; min-width:54px; }
.event-date-month { font-size:var(--text-xs); font-weight:600; text-transform:uppercase; letter-spacing:0.08em; color:var(--color-primary); }
.event-date-day { font-family:var(--font-display); font-size:var(--text-xl); font-weight:400; line-height:1.1; }
.event-info-title { font-weight:600; font-size:var(--text-base); margin-bottom:var(--space-1); }
.event-info-detail { font-size:var(--text-sm); color:var(--color-text-muted); }
.event-badge { font-size:var(--text-xs); font-weight:600; padding:var(--space-1) var(--space-3); border-radius:var(--radius-full); background:var(--color-primary-highlight); color:var(--color-primary); white-space:nowrap; }

/* ── CONTACT FORM ── */
.contact-grid { display:grid; gap:var(--space-8); }
@media(min-width:768px){ .contact-grid{ grid-template-columns:1fr 1fr; gap:var(--space-12); } }
.form-group { display:flex; flex-direction:column; gap:var(--space-2); margin-bottom:var(--space-4); }
.form-label { font-size:var(--text-sm); font-weight:500; }
.form-input, .form-textarea, .form-select {
  width:100%; padding:var(--space-3) var(--space-4);
  background:var(--color-surface-2); border:1px solid var(--t12);
  border-radius:var(--radius-md); font-size:var(--text-base);
  transition:border-color var(--transition-interactive), box-shadow var(--transition-interactive);
  color:var(--color-text);
}
.form-input:focus, .form-textarea:focus, .form-select:focus {
  outline:none; border-color:var(--color-primary); box-shadow:0 0 0 3px var(--p15);
}
.form-textarea { min-height:140px; resize:vertical; }
.contact-info-item { display:flex; gap:var(--space-3); margin-bottom:var(--space-6); }
.contact-info-icon { width:20px; height:20px; color:var(--color-primary); flex-shrink:0; margin-top:2px; }
.contact-info-label { font-size:var(--text-sm); font-weight:600; margin-bottom:var(--space-1); }
.contact-info-text { font-size:var(--text-sm); color:var(--color-text-muted); line-height:1.5; }

/* ── FAQ ── */
.faq-list { display:flex; flex-direction:column; gap:var(--space-2); max-width:var(--content-default); }
.faq-item { border:1px solid var(--t8); border-radius:var(--radius-lg); overflow:hidden; }
.faq-question {
  width:100%; display:flex; align-items:center; justify-content:space-between;
  padding:var(--space-4) var(--space-5); font-size:var(--text-base); font-weight:500;
  text-align:left; background:transparent; color:var(--color-text);
  transition:background var(--transition-interactive);
}
.faq-question:hover { background:var(--t5); }
.faq-icon { width:20px; height:20px; flex-shrink:0; transition:transform 0.3s var(--ease-out); }
.faq-item.open .faq-icon { transform:rotate(45deg); }
.faq-answer { max-height:0; overflow:hidden; transition:max-height 0.4s var(--ease-out); }
.faq-answer-inner { padding:0 var(--space-5) var(--space-5); font-size:var(--text-sm); color:var(--color-text-muted); line-height:1.7; }

/* ── MAP ── */
.map-container { width:100%; height:300px; border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--t8); margin-top:var(--space-6); }

/* ── FOOTER ── */
.site-footer { background:var(--color-surface); padding:var(--space-16) 0 var(--space-8); border-top:1px solid var(--t6); }
.footer-grid { display:grid; gap:var(--space-8); margin-bottom:var(--space-12); }
@media(min-width:768px){ .footer-grid{ grid-template-columns:2fr 1fr 1fr 1fr; } }
.footer-brand-desc { font-size:var(--text-sm); color:var(--color-text-muted); line-height:1.7; margin-top:var(--space-4); max-width:32ch; }
.footer-heading { font-size:var(--text-sm); font-weight:600; text-transform:uppercase; letter-spacing:0.08em; margin-bottom:var(--space-4); color:var(--color-text); }
.footer-links { display:flex; flex-direction:column; gap:var(--space-2); }
.footer-link { font-size:var(--text-sm); color:var(--color-text-muted); text-decoration:none; transition:color var(--transition-interactive); }
.footer-link:hover { color:var(--color-text); }
.footer-bottom { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:var(--space-4); padding-top:var(--space-8); border-top:1px solid var(--t6); }
.footer-copyright { font-size:var(--text-xs); color:var(--color-text-faint); }
.footer-social { display:flex; gap:var(--space-3); }
.footer-social a { width:36px; height:36px; display:flex; align-items:center; justify-content:center; border-radius:var(--radius-md); color:var(--color-text-muted); transition:color var(--transition-interactive), background var(--transition-interactive); }
.footer-social a:hover { color:var(--color-text); background:var(--t6); }

/* ── PAGE SHOW/HIDE ── */
.page { display:none; }
.page.active { display:block; }
.page-header { position:relative; padding:clamp(var(--space-16),10vw,var(--space-24)) 0 clamp(var(--space-8),5vw,var(--space-12)); background:var(--color-surface); }

/* Per-page header backgrounds so each page is instantly distinct */
#page-events    .page-header { background:var(--color-forest); color:#FAF6F1; }
#page-events    .page-header .section-eyebrow { color:var(--color-primary); }
#page-events    .page-header-title { color:#FAF6F1; }
#page-events    .page-header-subtitle { color:rgba(250,246,241,0.85); }

#page-consulting .page-header { background:var(--color-primary); color:#2C2018; }
#page-consulting .page-header .section-eyebrow { color:#1E3A2F; opacity:0.8; }
#page-consulting .page-header-title { color:#1E3A2F; }
#page-consulting .page-header-subtitle { color:rgba(44,32,24,0.8); }

#page-gallery   .page-header { background:#2C2018; color:#FAF6F1; }
#page-gallery   .page-header .section-eyebrow { color:var(--color-primary); }
#page-gallery   .page-header-title { color:#FAF6F1; }
#page-gallery   .page-header-subtitle { color:rgba(250,246,241,0.8); }

#page-about     .page-header { background:var(--color-sage-light, #EDF2EF); }
#page-about     .page-header .section-eyebrow { color:var(--color-sage); }
#page-about     .page-header-title { color:var(--color-forest); }

#page-contact   .page-header { background:var(--color-forest); color:#FAF6F1; }
#page-contact   .page-header .section-eyebrow { color:var(--color-primary); }
#page-contact   .page-header-title { color:#FAF6F1; }
#page-contact   .page-header-subtitle { color:rgba(250,246,241,0.85); }
.page-header-title { font-family:var(--font-display); font-size:var(--text-2xl); font-weight:400; margin-top:var(--space-3); }
.page-header-subtitle { font-size:var(--text-base); color:var(--color-text-muted); margin-top:var(--space-3); max-width:48ch; line-height:1.7; }

/* ── CTA BANNER ── */
.cta-banner { position:relative; overflow:hidden; border-radius:var(--radius-xl); padding:clamp(var(--space-10),6vw,var(--space-20)); text-align:center; background:var(--color-forest); color:#FAF6F1; }
.cta-banner-title { font-family:var(--font-display); font-size:var(--text-2xl); font-weight:400; margin-bottom:var(--space-4); }
.cta-banner-text { font-size:var(--text-base); opacity:0.85; margin-bottom:var(--space-8); max-width:44ch; margin-inline:auto; }
.cta-banner .btn { background:var(--color-primary); color:#2C2018; font-weight:700; }
.cta-banner .btn:hover { background:#D8BC6A; box-shadow:var(--shadow-md); }

/* ── SERVICE FEATURES ── */
.service-features { display:grid; gap:var(--space-6); margin-top:var(--space-8); }
@media(min-width:768px){ .service-features{ grid-template-columns:1fr 1fr; } }
.feature-item { display:flex; gap:var(--space-4); align-items:flex-start; }
.feature-icon { width:24px; height:24px; color:var(--color-primary); flex-shrink:0; margin-top:2px; }
.feature-title { font-weight:600; font-size:var(--text-base); margin-bottom:var(--space-1); }
.feature-desc { font-size:var(--text-sm); color:var(--color-text-muted); line-height:1.6; }

/* ── PROCESS STEPS ── */
.process-steps { display:grid; gap:var(--space-8); margin-top:var(--space-8); }
@media(min-width:768px){ .process-steps{ grid-template-columns:repeat(4,1fr); } }
.process-step { text-align:left; }
.process-number { font-family:var(--font-display); font-size:var(--text-2xl); color:var(--color-primary); line-height:1; margin-bottom:var(--space-3); }
.process-title { font-weight:600; font-size:var(--text-base); margin-bottom:var(--space-2); }
.process-desc { font-size:var(--text-sm); color:var(--color-text-muted); line-height:1.6; }

/* ── SCROLL FADE-IN (IntersectionObserver -  works in all browsers) ── */
.fade-in {
  opacity: 1;
  transform: none;
}
.js .fade-in {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.55s var(--ease-out), transform 0.55s var(--ease-out);
}
.fade-in.visible {
  opacity: 1;
  transform: translateY(0);
}

  
/* ── EVENT TYPES GRID ── */
.event-types-grid { display:grid; gap:var(--space-5); grid-template-columns:1fr; margin-top:var(--space-10); }
@media(min-width:640px){ .event-types-grid{ grid-template-columns:repeat(2,1fr); } }
@media(min-width:1024px){ .event-types-grid{ grid-template-columns:repeat(3,1fr); } }
.event-type-card { padding:var(--space-6); border:1px solid var(--t8); border-radius:var(--radius-xl); background:var(--color-surface); transition:box-shadow 0.25s var(--ease-out), transform 0.25s var(--ease-out); }
.event-type-card:hover { box-shadow:var(--shadow-md); transform:translateY(-2px); }
.event-type-icon { width:28px; height:28px; color:var(--color-accent); margin-bottom:var(--space-4); }
.event-type-title { font-family:var(--font-display); font-size:var(--text-lg); font-weight:500; margin-bottom:var(--space-2); }
.event-type-desc { font-size:var(--text-sm); color:var(--color-text-muted); line-height:1.65; }

/* ── ENGAGEMENT TIERS ── */
.tiers-grid { display:grid; gap:var(--space-6); margin-top:var(--space-10); align-items:start; }
@media(min-width:768px){ .tiers-grid{ grid-template-columns:repeat(3,1fr); } }
.tier-card { position:relative; padding:var(--space-8); border:1px solid var(--t10); border-radius:var(--radius-xl); background:var(--color-surface); display:flex; flex-direction:column; gap:var(--space-3); }
.tier-card--featured { border-color:var(--color-primary); background:var(--color-surface-2); box-shadow:var(--shadow-lg); }
.tier-badge { position:absolute; top:-14px; left:50%; transform:translateX(-50%); background:var(--color-primary); color:var(--color-text-inverse); font-size:var(--text-xs); font-weight:700; text-transform:uppercase; letter-spacing:0.08em; padding:var(--space-1) var(--space-4); border-radius:var(--radius-full); white-space:nowrap; }
.tier-num { font-family:var(--font-display); font-size:var(--text-xl); color:var(--color-primary); font-weight:400; line-height:1; }
.tier-title { font-family:var(--font-display); font-size:var(--text-lg); font-weight:500; }
.tier-desc { font-size:var(--text-sm); color:var(--color-text-muted); line-height:1.7; flex:1; }
.tier-best { font-size:var(--text-xs); color:var(--color-primary); font-weight:600; padding-top:var(--space-3); border-top:1px solid var(--t8); }

/* ── HOME GALLERY TEASER ── */
.home-gallery-teaser { display:grid; grid-template-columns:repeat(2,1fr); gap:var(--space-3); margin-top:var(--space-8); }
@media(min-width:768px){ .home-gallery-teaser{ grid-template-columns:repeat(4,1fr); } }
.home-gallery-item { overflow:hidden; border-radius:var(--radius-lg); aspect-ratio:1; }
.home-gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform 0.5s var(--ease-out); }
.home-gallery-item:hover img { transform:scale(1.05); }

/* ── ALSO BAND ── */
.also-band { display:flex; flex-direction:column; align-items:center; gap:var(--space-6); padding:var(--space-8) 0; }
@media(min-width:768px){ .also-band{ flex-direction:row; justify-content:center; gap:var(--space-10); } }
.also-item { display:flex; flex-direction:column; align-items:center; gap:var(--space-2); text-align:center; }
.also-label { font-size:var(--text-sm); color:var(--color-text-muted); }
.also-link { font-size:var(--text-sm); font-weight:600; color:var(--color-primary); text-decoration:none; transition:opacity 0.2s; }
.also-link:hover { opacity:0.75; }
.also-divider { width:1px; height:40px; background:var(--t12); display:none; }
@media(min-width:768px){ .also-divider{ display:block; } }

/* ── GALLERY FILTER TABS ── */
.gallery-filters { display:flex; gap:var(--space-2); margin-bottom:var(--space-8); flex-wrap:wrap; }
.gallery-filter { padding:var(--space-2) var(--space-5); border-radius:var(--radius-full); font-size:var(--text-sm); font-weight:500; color:var(--color-text-muted); border:1px solid var(--t12); background:transparent; cursor:pointer; transition:all 0.2s var(--ease-out); }
.gallery-filter:hover { background:var(--t5); color:var(--color-text); }
.gallery-filter.active { background:var(--color-primary); color:var(--color-text-inverse); border-color:var(--color-primary); }

/* ── GALLERY CAPTIONS ── */
.gallery-item { position:relative; }
.gallery-caption { position:absolute; bottom:0; left:0; right:0; padding:var(--space-3) var(--space-4); background:linear-gradient(to top,rgba(20,10,5,0.75) 0%,transparent 100%); color:#fff; font-size:var(--text-xs); opacity:0; transition:opacity 0.25s var(--ease-out); border-radius:0 0 var(--radius-md) var(--radius-md); }
.gallery-item:hover .gallery-caption { opacity:1; }
.gallery-item.hidden { display:none; }

/* ── CONTACT FORM GRID ROWS ── */
.form-row-2 { display:grid; gap:var(--space-4); }
@media(min-width:640px){ .form-row-2{ grid-template-columns:1fr 1fr; } }
.form-row-3 { display:grid; gap:var(--space-4); }

/* Keep inputs on a shared baseline even when a label wraps to two lines.
   The group stretches to the tallest cell; the label absorbs the slack. */
.form-row-2 > .form-group,
.form-row-3 > .form-group { height:100%; min-width:0; margin-bottom:0; }
.form-row-2 > .form-group > .form-label,
.form-row-3 > .form-group > .form-label { flex:1 0 auto; }
.form-row-2, .form-row-3 { margin-bottom:var(--space-4); }
@media(min-width:768px){ .form-row-3{ grid-template-columns:1fr 1fr 1fr; } }

