/* ═══════════════════════════════════════════════════════════
   base.css — Reset · Variables · Typography · Utilities
   ═══════════════════════════════════════════════════════════ */

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

:root {
  /* ── Colours ──────────────────────────────────────────── */
  --navy:    #be1e2d;   /* was #1a2535 — all dark bg sections now red */
  --cream:   #f5f0e8;
  --warm:    #faf8f4;
  --accent:  #1a2535;   /* was #c8a96e — gold replaced with dark navy  */
  --muted:   #6b6b6b;
  --white:   #ffffff;
  --heading: #be1e2d;
  --para:    #333333;
  --lead:    #000000;

  /* ── Layout ───────────────────────────────────────────── */
  --pad-x: clamp(1.5rem, 6vw, 5.5rem);
}

html { scroll-behavior: smooth; }

body {
  font-family: 'Jost', sans-serif;
  background: var(--warm);
  color: var(--para);
  overflow-x: hidden;
  line-height: 1;
}

img { display: block; max-width: 100%; }
a   { text-decoration: none; }
ul  { list-style: none; }

h1, h2, h3, h4 {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 300;
  color: var(--heading);
}

.lead-text { color: var(--lead); font-weight: 400; }
em { font-style: italic; }

/* ── Scroll reveal ─────────────────────────────────────── */
.fade-up {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .7s ease, transform .7s ease;
}
.fade-up.visible { opacity: 1; transform: translateY(0); }
.delay-1 { transition-delay: .12s; }
.delay-2 { transition-delay: .24s; }
.delay-3 { transition-delay: .36s; }

/* ── Responsive breakpoints ────────────────────────────── */
@media (max-width: 1024px) {
  .services-grid { grid-template-columns: 1fr 1fr; }
  .ig-grid       { grid-template-columns: repeat(3,1fr); }
}
@media (max-width: 768px) {
  .nav-links  { display: none; }
  .nav-toggle { display: flex; }
  .feature-grid  { grid-template-columns: 1fr; }
  .feature-card  { min-height: 340px; }
  .split { grid-template-columns: 1fr; }
  .split .split-img { min-height: 280px; }
  .split .split-text,
  .split .split-text-dark { padding: 3.5rem 1.5rem; }
  .split-text p,
  .split-text-dark p { max-width: 100%; }
  .services { padding: 4rem 1.5rem; }
  .services-header { flex-direction: column; align-items: flex-start; }
  .services-header p { text-align: left; max-width: 100%; }
  .services-grid { grid-template-columns: 1fr; gap: 2px; }
  .cta-strips { grid-template-columns: 1fr; }
  .ig-grid { grid-template-columns: repeat(2,1fr); }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 2rem; }
  .newsletter-form { flex-direction: column; }
  .newsletter-form input,
  .newsletter-form button { width: 100%; }
}
@media (max-width: 480px) {
  :root { --pad-x: 1.2rem; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-bottom { flex-direction: column; align-items: flex-start; }
  .services-grid { grid-template-columns: 1fr; }
}
