/* B&B variant: "modern" — CRISP EDITORIAL (quiet luxury).
   A deliberate, obvious break from the warm rustic look: white paper canvas,
   near-black ink, BIG light serif display, a single restrained forest accent,
   zero gradients/glow, hero headline anchored low, magazine spacing. */
:root {
  --accent: #3a5a40;            /* deep forest green — sober, modern, not brown */
  --accent-2: #6f8a72;
  --bg: #ffffff;
  --surface: #ffffff;
  --ink: #14130f;
  --muted: #76726a;
  --border: #ece9e2;
  --radius: 14px;
  --radius-lg: 22px;
  --radius-pill: 999px;
  --shadow: 0 30px 70px rgba(20,18,12,.10);
  --shadow-sm: 0 10px 30px rgba(20,18,12,.06);
  --shadow-xs: 0 1px 3px rgba(20,18,12,.05);
  --dark-panel: #14130f;
  --hero-overlay:
    linear-gradient(0deg, rgba(10,9,6,.66) 0%, rgba(10,9,6,.20) 38%, rgba(10,9,6,0) 62%);
}

/* ---- typography: editorial, airy ----------------------------------- */
body { font-size: 18px; line-height: 1.85; letter-spacing: .002em; }
h1, h2, h3 { font-weight: 500; letter-spacing: -.015em; }

/* ---- header: minimal, no glass tint -------------------------------- */
.site-header { background: rgba(255,255,255,.82); backdrop-filter: saturate(120%) blur(10px); border-bottom: 1px solid var(--border); padding-top: 1.1rem; padding-bottom: 1.1rem; }
.brand { font-family: var(--font-head); font-weight: 600; letter-spacing: .01em; font-size: 1.25rem; }
.main-nav a { font-weight: 500; font-size: .82rem; text-transform: uppercase; letter-spacing: .14em; }
.main-nav a::after { display: none; }
.main-nav a:hover { color: var(--accent); }
.topbar { background: var(--ink); }

/* ---- HERO: huge low-anchored serif, soft bottom scrim, no glow ------ */
.hero { align-items: end; min-height: 96svh; }
.hero::after { display: none !important; }
.hero-inner { padding: clamp(2rem, 6vw, 6rem); padding-bottom: clamp(3rem, 9vw, 8rem); max-width: 1100px; }
.hero .eyebrow {
  background: transparent; border: 0; padding: 0 0 .2rem; margin-bottom: 1.3rem;
  letter-spacing: .42em; font-size: .72rem; font-weight: 600; opacity: .92;
  border-bottom: 1px solid rgba(255,255,255,.4); border-radius: 0;
}
.hero h1 { font-weight: 400; font-size: clamp(3.2rem, 10vw, 7rem); line-height: .98; text-shadow: none; }
.hero .subtitle { font-size: clamp(1.05rem, 2.2vw, 1.4rem); opacity: .94; font-weight: 400; max-width: 46ch; margin-top: 1.2rem; }
.hero-cta { margin-top: 2rem; }

/* ---- buttons: crisp solid black / underline ghost ------------------ */
.btn { border-radius: 8px; font-family: var(--font-body); font-weight: 600; font-size: .92rem; letter-spacing: .06em; text-transform: uppercase; padding: 1rem 2.1rem; }
.btn-primary { background: var(--ink); background-image: none; color: #fff; box-shadow: none; border: 0; }
.btn-primary:hover { background: var(--accent); transform: none; box-shadow: none; color: #fff; }
.hero .btn-ghost { background: transparent; border: 1px solid rgba(255,255,255,.55); backdrop-filter: none; }
.hero .btn-ghost:hover { background: #fff; color: var(--ink); border-color: #fff; }

/* ---- sections: big titles, lots of air, NO gradient underline ------ */
.section { max-width: 1140px; padding: clamp(5rem, 11vw, 10rem) clamp(1.3rem, 5vw, 2.5rem); }
.section-title { font-weight: 400; font-size: clamp(2.2rem, 5.5vw, 3.8rem); line-height: 1.05; }
.section-title::after { display: none; }
.lead { font-size: 1.18rem; line-height: 1.85; max-width: 60ch; color: var(--muted); }
.section--alt::before { display: none !important; }
.section--alt { background: #faf8f4; }

/* ---- cards: borderless, generous, serif heads, hairline divider ---- */
.grid { gap: 2.2rem; margin-top: 3rem; }
.card { background: transparent; background-image: none; border: 0; border-top: 1px solid var(--ink); border-radius: 0; box-shadow: none; padding: 1.6rem 0 0; }
.section--alt .card { background: transparent; }
.card::before { display: none !important; }
.card:hover { transform: none; box-shadow: none; }
.card h3 { color: var(--ink); font-weight: 500; font-size: 1.4rem; }

/* ---- gallery: tall, generous, no shadow ---------------------------- */
.gallery { gap: 1.4rem; margin-top: 3rem; }
.gallery .media { height: 340px; border-radius: var(--radius); box-shadow: none; }
.gallery .media:hover { box-shadow: none; }

/* ---- badges: hairline pill ----------------------------------------- */
.badge { background: transparent; background-image: none; color: var(--ink); border: 1px solid var(--ink); font-weight: 600; text-transform: uppercase; letter-spacing: .08em; font-size: .72rem; }

/* ---- social: square hairline --------------------------------------- */
.social-links a { background: transparent; border: 1px solid var(--border); color: var(--ink); border-radius: 10px; }
.social-links a:hover { background: var(--ink); border-color: var(--ink); color: #fff; transform: none; }

/* ---- map / forms calmer -------------------------------------------- */
.map { filter: grayscale(.2) contrast(1.03); }
.form-card { box-shadow: none; border-radius: var(--radius-lg); }
.field input, .field textarea, .field select { border-radius: 8px; }

/* footer */
.site-footer { background: var(--ink); }
