/* =========================================================================
   SOUTHERN CUT — Luxury Landscape & Hardscape | Editorial Luxury System
   Palette: deep forest / espresso ink / warm brass / stone + cream
   Type: Fraunces (display serif) + Plus Jakarta Sans (body)
   ========================================================================= */

:root {
  /* Color */
  --ink:      #16211b;   /* near-black forest */
  --forest:   #1f3d2e;   /* primary deep green */
  --forest-2: #2a5340;   /* lighter forest */
  --moss:     #6f8a6a;   /* muted sage */
  --brass:    #b0894e;   /* warm brass accent */
  --brass-2:  #c8a367;   /* lighter brass */
  --cream:    #f8f5ee;   /* page background */
  --stone:    #eee8db;   /* card / panel */
  --stone-2:  #e3dccb;   /* deeper stone */
  --paper:    #fffdf9;   /* card core */
  --line:     rgba(22,33,27,0.10);
  --line-soft:rgba(22,33,27,0.06);
  --text:     #26332b;
  --muted:    #5c6b60;

  /* Type scale (fluid) */
  --f-display: "Fraunces", Georgia, "Times New Roman", serif;
  --f-body: "Plus Jakarta Sans", system-ui, -apple-system, sans-serif;

  /* Radii */
  --r-lg: 2rem;
  --r-md: 1.25rem;
  --r-sm: 0.75rem;

  /* Motion */
  --ease: cubic-bezier(0.32, 0.72, 0, 1);
  --ease-soft: cubic-bezier(0.22, 1, 0.36, 1);

  /* Layout */
  --maxw: 1240px;
  --gutter: clamp(1.25rem, 4vw, 3rem);
}

/* ------------------------------------------------------------------ Reset */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--f-body);
  color: var(--text);
  background: var(--cream);
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }
h1, h2, h3, h4 { margin: 0; font-family: var(--f-display); font-weight: 500; line-height: 1.05; letter-spacing: -0.02em; color: var(--ink); }
p { margin: 0; }
ul { margin: 0; }

/* Film-grain overlay */
body::after {
  content: "";
  position: fixed; inset: 0;
  pointer-events: none;
  z-index: 60;
  opacity: 0.035;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ------------------------------------------------------------------ Layout */
.wrap { width: 100%; max-width: var(--maxw); margin-inline: auto; padding-inline: var(--gutter); }
.section { padding-block: clamp(4.5rem, 9vw, 9rem); position: relative; }
.section--tight { padding-block: clamp(3rem, 6vw, 5.5rem); }
.bg-forest { background: var(--forest); color: #eef1ea; }
.bg-ink { background: var(--ink); color: #eef1ea; }
.bg-stone { background: var(--stone); }
.center { text-align: center; }

/* ------------------------------------------------------------------ Type helpers */
.eyebrow {
  display: inline-flex; align-items: center; gap: 0.55rem;
  font-size: 0.66rem; text-transform: uppercase; letter-spacing: 0.28em;
  font-weight: 600; color: var(--brass);
  padding: 0.4rem 0.85rem;
  border: 1px solid rgba(176,137,78,0.34);
  border-radius: 999px;
  background: rgba(176,137,78,0.06);
}
.bg-forest .eyebrow, .bg-ink .eyebrow { color: var(--brass-2); border-color: rgba(200,163,103,0.4); background: rgba(200,163,103,0.08); }
.eyebrow::before { content:""; width: 5px; height: 5px; border-radius: 50%; background: currentColor; }

h1, .h1 { font-size: clamp(2.7rem, 6.4vw, 5rem); }
h2, .h2 { font-size: clamp(2.1rem, 4.6vw, 3.6rem); }
h3, .h3 { font-size: clamp(1.4rem, 2.4vw, 1.9rem); }
.display { font-size: clamp(3rem, 8vw, 6.5rem); line-height: 0.98; }
.lead { font-size: clamp(1.08rem, 1.5vw, 1.28rem); color: var(--muted); line-height: 1.6; max-width: 62ch; }
.bg-forest .lead, .bg-ink .lead { color: rgba(238,241,234,0.78); }
.serif-em { font-style: italic; font-family: var(--f-display); color: var(--brass); font-weight: 400; }
.measure { max-width: 60ch; }
.kicker-num { font-family: var(--f-display); font-style: italic; color: var(--brass); }

/* ------------------------------------------------------------------ Buttons (island / button-in-button) */
.btn {
  display: inline-flex; align-items: center; gap: 0.7rem;
  padding: 0.85rem 0.9rem 0.85rem 1.5rem;
  border-radius: 999px;
  font-weight: 600; font-size: 0.95rem;
  border: 1px solid transparent;
  transition: transform .5s var(--ease), background .4s var(--ease), color .4s var(--ease), box-shadow .5s var(--ease);
  will-change: transform;
}
.btn__ico {
  width: 2.15rem; height: 2.15rem; border-radius: 50%;
  display: grid; place-items: center; flex: none;
  transition: transform .5s var(--ease), background .4s var(--ease);
}
.btn svg { width: 1rem; height: 1rem; }
.btn:active { transform: scale(0.975); }

.btn--brass { background: var(--brass); color: #1c150a; box-shadow: 0 12px 30px -12px rgba(176,137,78,0.7); }
.btn--brass .btn__ico { background: rgba(28,21,10,0.16); }
.btn--brass:hover { background: var(--brass-2); box-shadow: 0 18px 40px -14px rgba(176,137,78,0.85); }
.btn--brass:hover .btn__ico { transform: translate(3px,-2px) scale(1.06); }

.btn--forest { background: var(--forest); color: #f3f6ef; }
.btn--forest .btn__ico { background: rgba(255,255,255,0.14); }
.btn--forest:hover { background: var(--forest-2); }
.btn--forest:hover .btn__ico { transform: translate(3px,-2px) scale(1.06); }

.btn--ghost { background: transparent; color: var(--ink); border-color: var(--line); padding-left: 1.3rem; }
.btn--ghost .btn__ico { background: rgba(22,33,27,0.06); }
.btn--ghost:hover { border-color: rgba(22,33,27,0.28); }
.btn--ghost:hover .btn__ico { transform: translate(3px,-2px) scale(1.06); }
.bg-forest .btn--ghost, .bg-ink .btn--ghost { color: #f3f6ef; border-color: rgba(255,255,255,0.2); }
.bg-forest .btn--ghost .btn__ico, .bg-ink .btn--ghost .btn__ico { background: rgba(255,255,255,0.1); }

.btn--lg { font-size: 1.02rem; padding: 1rem 1rem 1rem 1.7rem; }
.textlink { display:inline-flex; align-items:center; gap:.5rem; font-weight:600; color: var(--forest); border-bottom: 1px solid transparent; transition: gap .4s var(--ease), border-color .4s var(--ease); }
.textlink:hover { gap: .85rem; border-color: currentColor; }
.bg-forest .textlink, .bg-ink .textlink { color: var(--brass-2); }

/* ------------------------------------------------------------------ Nav (floating glass pill) */
.nav-shell { position: fixed; top: 0; left: 0; right: 0; z-index: 70; padding-top: clamp(0.8rem, 1.6vw, 1.4rem); transition: padding .5s var(--ease); }
.nav {
  width: min(var(--maxw), calc(100% - 2 * var(--gutter)));
  margin-inline: auto;
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem;
  padding: 0.6rem 0.6rem 0.6rem 1.5rem;
  border-radius: 999px;
  background: rgba(248,245,238,0.72);
  -webkit-backdrop-filter: blur(18px) saturate(1.3);
  backdrop-filter: blur(18px) saturate(1.3);
  border: 1px solid rgba(22,33,27,0.08);
  box-shadow: 0 14px 40px -22px rgba(22,33,27,0.5);
  transition: background .5s var(--ease), box-shadow .5s var(--ease), transform .5s var(--ease);
}
.nav-shell.scrolled .nav { background: rgba(248,245,238,0.92); box-shadow: 0 18px 50px -24px rgba(22,33,27,0.55); }
.brand { display: flex; align-items: center; gap: 0.7rem; font-family: var(--f-display); font-size: 1.32rem; font-weight: 600; letter-spacing: -0.02em; color: var(--ink); }
.brand__mark { width: 2rem; height: 2rem; flex: none; }
.brand small { display:block; font-family: var(--f-body); font-size:0.56rem; letter-spacing:0.24em; text-transform:uppercase; color: var(--brass); font-weight:700; margin-top:1px; }
.nav__links { display: flex; align-items: center; gap: 0.35rem; }
.nav__link { position: relative; padding: 0.55rem 0.9rem; font-size: 0.92rem; font-weight: 500; color: var(--text); border-radius: 999px; transition: color .3s var(--ease), background .3s var(--ease); }
.nav__link:hover { color: var(--ink); background: rgba(22,33,27,0.05); }
.nav__link[aria-current="page"] { color: var(--forest); }
.nav__cta { display: flex; align-items: center; gap: 0.6rem; }
.nav__phone { display:inline-flex; align-items:center; gap:.45rem; font-weight:600; font-size:.92rem; color: var(--ink); padding: .5rem .8rem; }
.nav__phone svg { width: 1rem; height:1rem; color: var(--brass); }

/* Dropdown */
.has-menu { position: relative; }
.dropdown {
  position: absolute; top: calc(100% + 0.8rem); left: 50%; transform: translateX(-50%) translateY(8px);
  min-width: 300px; padding: 0.6rem;
  background: rgba(255,253,249,0.92);
  -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px);
  border: 1px solid var(--line); border-radius: var(--r-md);
  box-shadow: 0 30px 60px -30px rgba(22,33,27,0.4);
  opacity: 0; visibility: hidden; transition: opacity .35s var(--ease), transform .35s var(--ease), visibility .35s;
}
.has-menu:hover .dropdown, .has-menu:focus-within .dropdown { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }
.dropdown a { display: flex; gap: .8rem; align-items: flex-start; padding: 0.7rem 0.8rem; border-radius: var(--r-sm); transition: background .3s var(--ease); }
.dropdown a:hover { background: rgba(31,61,46,0.06); }
.dropdown .dd-t { font-weight: 600; color: var(--ink); font-size: .95rem; }
.dropdown .dd-d { font-size: .8rem; color: var(--muted); }
.dropdown .dd-ico { width: 2.1rem; height: 2.1rem; flex:none; border-radius: .6rem; background: rgba(31,61,46,0.08); display:grid; place-items:center; color: var(--forest); }
.dropdown .dd-ico svg { width: 1.15rem; height:1.15rem; }

/* Mobile menu */
.nav__toggle { display: none; width: 2.6rem; height: 2.6rem; border-radius: 50%; border: 1px solid var(--line); background: var(--paper); place-items: center; position: relative; }
.nav__toggle span { position: absolute; left: 50%; width: 18px; height: 1.6px; background: var(--ink); transform: translateX(-50%); transition: transform .45s var(--ease), opacity .3s var(--ease); }
.nav__toggle span:nth-child(1) { top: 17px; }
.nav__toggle span:nth-child(2) { top: 23px; }
body.menu-open .nav__toggle span:nth-child(1) { top: 20px; transform: translateX(-50%) rotate(45deg); }
body.menu-open .nav__toggle span:nth-child(2) { top: 20px; transform: translateX(-50%) rotate(-45deg); }

.mobile-menu {
  position: fixed; inset: 0; z-index: 65;
  background: rgba(20,32,26,0.55);
  -webkit-backdrop-filter: blur(24px); backdrop-filter: blur(24px);
  opacity: 0; visibility: hidden; transition: opacity .5s var(--ease), visibility .5s;
  display: flex; flex-direction: column; justify-content: center;
  padding: 6rem var(--gutter) 3rem;
}
body.menu-open .mobile-menu { opacity: 1; visibility: visible; }
.mobile-menu a { font-family: var(--f-display); font-size: clamp(1.8rem, 7vw, 2.8rem); color: #f6f3ea; padding: 0.35rem 0; opacity: 0; transform: translateY(24px); transition: opacity .6s var(--ease), transform .6s var(--ease); }
body.menu-open .mobile-menu a { opacity: 1; transform: translateY(0); }
body.menu-open .mobile-menu a:nth-child(1){transition-delay:.08s}
body.menu-open .mobile-menu a:nth-child(2){transition-delay:.13s}
body.menu-open .mobile-menu a:nth-child(3){transition-delay:.18s}
body.menu-open .mobile-menu a:nth-child(4){transition-delay:.23s}
body.menu-open .mobile-menu a:nth-child(5){transition-delay:.28s}
body.menu-open .mobile-menu a:nth-child(6){transition-delay:.33s}
body.menu-open .mobile-menu a:nth-child(7){transition-delay:.38s}
.mobile-menu .mm-cta { margin-top: 2rem; font-family: var(--f-body); font-size: 1rem; }

/* ------------------------------------------------------------------ Hero */
.hero { position: relative; min-height: 100dvh; display: flex; align-items: flex-end; overflow: hidden; }
.hero__bg { position: absolute; inset: 0; z-index: -2; }
.hero__bg img { width: 100%; height: 100%; object-fit: cover; }
.hero__bg::after { content:""; position:absolute; inset:0; background: linear-gradient(180deg, rgba(20,32,26,0.45) 0%, rgba(20,32,26,0.15) 35%, rgba(20,32,26,0.35) 60%, rgba(20,32,26,0.86) 100%); }
.hero__inner { position: relative; z-index: 1; padding-bottom: clamp(3rem, 7vw, 6rem); padding-top: 9rem; width: 100%; color: #f7f4ec; }
.hero h1 { color: #fbf9f3; max-width: 15ch; text-shadow: 0 2px 30px rgba(0,0,0,0.25); }
.hero .lead { color: rgba(247,244,236,0.9); margin-top: 1.5rem; }
.hero__cta { display: flex; flex-wrap: wrap; gap: 0.9rem; margin-top: 2.2rem; }
.hero__meta { display:flex; flex-wrap:wrap; gap: 2rem; margin-top: 3rem; padding-top: 2rem; border-top: 1px solid rgba(255,255,255,0.16); }
.hero__meta .m-num { font-family: var(--f-display); font-size: 2.2rem; color: #fff; line-height: 1; }
.hero__meta .m-lbl { font-size: 0.8rem; color: rgba(247,244,236,0.72); letter-spacing: 0.04em; margin-top: .3rem; }

/* ------------------------------------------------------------------ Double-bezel cards */
.shell { padding: 0.5rem; background: rgba(22,33,27,0.04); border: 1px solid var(--line-soft); border-radius: var(--r-lg); }
.bg-forest .shell, .bg-ink .shell { background: rgba(255,255,255,0.04); border-color: rgba(255,255,255,0.08); }
.core { background: var(--paper); border-radius: calc(var(--r-lg) - 0.5rem); box-shadow: inset 0 1px 1px rgba(255,255,255,0.6); overflow: hidden; }

.card {
  background: var(--paper);
  border: 1px solid var(--line-soft);
  border-radius: var(--r-md);
  padding: 1.8rem;
  transition: transform .55s var(--ease), box-shadow .55s var(--ease), border-color .4s var(--ease);
  box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset;
}
.card:hover { transform: translateY(-6px); box-shadow: 0 30px 50px -34px rgba(22,33,27,0.4); border-color: var(--line); }
.card__ico { width: 3.2rem; height: 3.2rem; border-radius: 0.9rem; background: linear-gradient(145deg, rgba(31,61,46,0.1), rgba(31,61,46,0.03)); display:grid; place-items:center; color: var(--forest); margin-bottom: 1.4rem; }
.card__ico svg { width: 1.6rem; height: 1.6rem; }
.card h3 { margin-bottom: .55rem; }
.card p { color: var(--muted); font-size: .96rem; }

/* Service media card (image top) */
.svc-card { display:flex; flex-direction: column; overflow: hidden; border-radius: var(--r-md); background: var(--paper); border: 1px solid var(--line-soft); transition: transform .55s var(--ease), box-shadow .55s var(--ease); }
.svc-card:hover { transform: translateY(-6px); box-shadow: 0 34px 60px -38px rgba(22,33,27,0.5); }
.svc-card__img { aspect-ratio: 4/3; overflow: hidden; position: relative; }
.svc-card__img img { width:100%; height:100%; object-fit: cover; transition: transform 1.1s var(--ease); }
.svc-card:hover .svc-card__img img { transform: scale(1.06); }
.svc-card__body { padding: 1.5rem 1.6rem 1.7rem; display:flex; flex-direction:column; gap:.6rem; flex:1; }
.svc-card__body h3 { font-size: 1.35rem; }
.svc-card__body p { color: var(--muted); font-size: .93rem; flex:1; }
.svc-card__foot { display:flex; align-items:center; gap:.5rem; color: var(--forest); font-weight:600; font-size:.9rem; margin-top:.4rem; }
.svc-card__tag { position:absolute; top: .9rem; left:.9rem; z-index:1; font-size:.66rem; text-transform:uppercase; letter-spacing:.16em; font-weight:700; color:#fff; background: rgba(20,32,26,0.6); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); padding:.35rem .7rem; border-radius:999px; }

/* ------------------------------------------------------------------ Grids */
.grid { display: grid; gap: 1.5rem; }
.g-2 { grid-template-columns: repeat(2, 1fr); }
.g-3 { grid-template-columns: repeat(3, 1fr); }
.g-4 { grid-template-columns: repeat(4, 1fr); }
.split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.split--wide-l { grid-template-columns: 1.15fr 0.85fr; }

/* Section heading block */
.sec-head { display:flex; flex-direction: column; gap: 1.1rem; max-width: 60ch; }
.sec-head--center { margin-inline: auto; align-items: center; text-align: center; }
.sec-head__row { display:flex; align-items: flex-end; justify-content: space-between; gap: 2rem; flex-wrap: wrap; }

/* ------------------------------------------------------------------ Stats strip */
.stats { display:grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--r-md); overflow: hidden; }
.stats > div { background: var(--cream); padding: 2rem 1.6rem; }
.bg-forest .stats { background: rgba(255,255,255,0.1); border-color: rgba(255,255,255,0.12);}
.bg-forest .stats > div { background: var(--forest); }
.stat-num { font-family: var(--f-display); font-size: clamp(2.2rem,4vw,3.1rem); color: var(--ink); line-height: 1; }
.bg-forest .stat-num { color: #fff; }
.stat-num .u { color: var(--brass); }
.stat-lbl { margin-top: .6rem; font-size: .86rem; color: var(--muted); letter-spacing: .02em; }
.bg-forest .stat-lbl { color: rgba(238,241,234,0.7); }

/* ------------------------------------------------------------------ Process steps */
.steps { display:grid; gap: 1.2rem; }
.step { display:grid; grid-template-columns: auto 1fr; gap: 1.4rem; padding: 1.7rem; border-radius: var(--r-md); background: var(--paper); border:1px solid var(--line-soft); transition: transform .5s var(--ease); }
.step:hover { transform: translateX(6px); }
.step__n { font-family: var(--f-display); font-style: italic; font-size: 1.6rem; color: var(--brass); width: 2.6rem; height:2.6rem; border-radius:50%; border:1px solid rgba(176,137,78,0.35); display:grid; place-items:center; }
.step h3 { font-size: 1.2rem; margin-bottom: .4rem; }
.step p { color: var(--muted); font-size: .94rem; }

/* ------------------------------------------------------------------ Testimonials */
.quote-card { background: var(--paper); border:1px solid var(--line-soft); border-radius: var(--r-md); padding: 2rem; display:flex; flex-direction:column; gap: 1.3rem; height:100%; }
.quote-card .stars { display:flex; gap:2px; color: var(--brass); }
.quote-card .stars svg { width: 1.05rem; height:1.05rem; }
.quote-card blockquote { font-family: var(--f-display); font-size: 1.22rem; line-height: 1.45; color: var(--ink); font-weight: 400; }
.quote-card .who { display:flex; align-items:center; gap: .8rem; margin-top: auto; }
.quote-card .who img { width: 2.8rem; height:2.8rem; border-radius: 50%; object-fit: cover; }
.quote-card .who b { display:block; font-size: .95rem; color: var(--ink); }
.quote-card .who span { font-size: .82rem; color: var(--muted); }

/* ------------------------------------------------------------------ Gallery */
.masonry { columns: 3; column-gap: 1rem; }
.masonry figure { break-inside: avoid; margin: 0 0 1rem; border-radius: var(--r-sm); overflow: hidden; position: relative; }
.masonry img { width:100%; transition: transform 1s var(--ease); }
.masonry figure:hover img { transform: scale(1.05); }
.masonry figcaption { position:absolute; left:0; right:0; bottom:0; padding: 1.4rem 1rem .9rem; color:#fff; font-size:.82rem; font-weight:600; letter-spacing:.03em; background: linear-gradient(transparent, rgba(20,32,26,0.7)); opacity:0; transform: translateY(8px); transition: opacity .5s var(--ease), transform .5s var(--ease); }
.masonry figure:hover figcaption { opacity:1; transform: translateY(0); }

/* ------------------------------------------------------------------ Feature list */
.checks { list-style:none; padding:0; display:grid; gap: .85rem; }
.checks li { display:flex; gap:.75rem; align-items:flex-start; font-size:.98rem; }
.checks svg { width:1.3rem; height:1.3rem; flex:none; color: var(--brass); margin-top:1px; }
.bg-forest .checks li { color: rgba(238,241,234,0.9); }

/* Pills / chips */
.chips { display:flex; flex-wrap:wrap; gap:.55rem; }
.chip { font-size:.82rem; font-weight:600; padding:.45rem .9rem; border-radius:999px; background: var(--stone); color: var(--forest); border:1px solid var(--line-soft); }

/* ------------------------------------------------------------------ CTA band */
.cta-band { position: relative; overflow: hidden; border-radius: var(--r-lg); background: var(--forest); color:#f3f6ef; padding: clamp(2.5rem,6vw,5rem); }
.cta-band::before { content:""; position:absolute; width: 460px; height:460px; border-radius:50%; background: radial-gradient(circle, rgba(176,137,78,0.35), transparent 65%); top:-160px; right:-120px; }
.cta-band h2 { color:#fff; }

/* ------------------------------------------------------------------ Forms */
.form { display:grid; gap: 1rem; }
.form .row { display:grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.field { display:flex; flex-direction:column; gap:.4rem; }
.field label { font-size:.8rem; font-weight:600; letter-spacing:.02em; color: var(--muted); }
.field input, .field select, .field textarea {
  font-family: inherit; font-size: 1rem; color: var(--text);
  padding: .9rem 1rem; border-radius: var(--r-sm);
  border: 1px solid var(--line); background: var(--paper);
  transition: border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.field input:focus, .field select:focus, .field textarea:focus { outline:none; border-color: var(--brass); box-shadow: 0 0 0 3px rgba(176,137,78,0.15); }
.field textarea { resize: vertical; min-height: 120px; }
.form-note { font-size:.8rem; color: var(--muted); }

/* ------------------------------------------------------------------ Footer */
.footer { background: var(--ink); color: rgba(238,241,234,0.72); padding-block: clamp(3.5rem,6vw,5.5rem) 2.5rem; }
.footer a { transition: color .3s var(--ease); }
.footer a:hover { color: #fff; }
.footer__top { display:grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 2.5rem; }
.footer h4 { color:#fff; font-family: var(--f-body); font-size:.78rem; text-transform:uppercase; letter-spacing:.18em; margin-bottom:1.2rem; font-weight:700; }
.footer ul { list-style:none; padding:0; display:grid; gap:.6rem; font-size:.94rem; }
.footer .brand { color:#fff; margin-bottom:1.2rem; }
.footer .brand small { color: var(--brass-2); }
.footer__bottom { display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin-top: 3.5rem; padding-top: 1.8rem; border-top:1px solid rgba(255,255,255,0.1); font-size:.82rem; }
.footer__social { display:flex; gap:.6rem; }
.footer__social a { width:2.4rem; height:2.4rem; border-radius:50%; border:1px solid rgba(255,255,255,0.16); display:grid; place-items:center; }
.footer__social svg { width:1.05rem; height:1.05rem; }

/* Sticky mobile call bar */
.callbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 68; display:none; padding: .7rem var(--gutter) calc(.7rem + env(safe-area-inset-bottom)); gap:.7rem; background: rgba(255,253,249,0.9); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); border-top:1px solid var(--line); }
.callbar a { flex:1; justify-content:center; }

/* ------------------------------------------------------------------ Breadcrumb / page header */
.pagehead { position: relative; padding-top: 11rem; padding-bottom: 3.5rem; overflow:hidden; }
.pagehead--img { color:#f7f4ec; min-height: 62vh; display:flex; align-items:flex-end; padding-bottom: clamp(2.5rem,5vw,4rem); }
.pagehead--img .pagehead__bg { position:absolute; inset:0; z-index:-2; }
.pagehead--img .pagehead__bg img { width:100%; height:100%; object-fit:cover; }
.pagehead--img .pagehead__bg::after { content:""; position:absolute; inset:0; background: linear-gradient(180deg, rgba(20,32,26,0.5), rgba(20,32,26,0.82)); }
.pagehead--img h1 { color:#fbf9f3; }
.crumbs { display:flex; gap:.5rem; align-items:center; font-size:.82rem; color: var(--muted); margin-bottom:1.4rem; flex-wrap:wrap; }
.pagehead--img .crumbs { color: rgba(247,244,236,0.75); }
.crumbs a:hover { color: var(--brass); }
.crumbs span { opacity:.5; }

/* ------------------------------------------------------------------ Accordion (FAQ) */
.acc { border-top:1px solid var(--line); }
.acc__item { border-bottom:1px solid var(--line); }
.acc__q { width:100%; text-align:left; background:none; border:none; padding: 1.4rem 0; display:flex; justify-content:space-between; align-items:center; gap:1rem; font-family: var(--f-display); font-size: 1.18rem; color: var(--ink); }
.acc__q .pm { position:relative; width:2rem; height:2rem; flex:none; border-radius:50%; border:1px solid var(--line); display:grid; place-items:center; transition: transform .5s var(--ease), background .4s; }
.acc__q .pm::before, .acc__q .pm::after { content:""; position:absolute; width:11px; height:1.6px; background: var(--forest); transition: transform .4s var(--ease); }
.acc__q .pm::after { transform: rotate(90deg); }
.acc__item.open .pm { background: var(--forest); }
.acc__item.open .pm::before, .acc__item.open .pm::after { background:#fff; }
.acc__item.open .pm::after { transform: rotate(0); }
.acc__a { max-height: 0; overflow: hidden; transition: max-height .5s var(--ease); }
.acc__a p { padding-bottom: 1.4rem; color: var(--muted); max-width: 70ch; }

/* ------------------------------------------------------------------ Logo/trust strip */
.trust { display:flex; align-items:center; justify-content:center; gap: clamp(1.5rem,5vw,4rem); flex-wrap:wrap; opacity:.9; }
.trust .t-item { display:flex; align-items:center; gap:.6rem; font-size:.86rem; font-weight:600; color: var(--muted); }
.trust svg { width:1.4rem; height:1.4rem; color: var(--brass); }

/* ------------------------------------------------------------------ Reveal animation */
.reveal { opacity: 0; transform: translateY(28px); filter: blur(6px); transition: opacity .9s var(--ease-soft), transform .9s var(--ease-soft), filter .9s var(--ease-soft); }
.reveal.in { opacity: 1; transform: none; filter: none; }
.reveal.d1 { transition-delay: .08s; } .reveal.d2 { transition-delay: .16s; } .reveal.d3 { transition-delay: .24s; } .reveal.d4 { transition-delay: .32s; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity:1; transform:none; filter:none; } * { scroll-behavior:auto !important; } }

/* ------------------------------------------------------------------ Utilities */
.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.6rem}.mt-4{margin-top:2.4rem}.mt-5{margin-top:3.2rem}
.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.6rem}.mb-4{margin-bottom:2.4rem}
.tac{text-align:center}.fw{width:100%}
.rounded-img { border-radius: var(--r-md); overflow:hidden; }
.rounded-img img { width:100%; height:100%; object-fit:cover; }
.ratio-43 { aspect-ratio: 4/3; } .ratio-11 { aspect-ratio: 1/1; } .ratio-34 { aspect-ratio: 3/4; } .ratio-169 { aspect-ratio: 16/9; }

/* ------------------------------------------------------------------ Responsive */
@media (max-width: 1024px) {
  .footer__top { grid-template-columns: 1fr 1fr; gap: 2rem; }
  .g-4 { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 860px) {
  .nav__links, .nav__phone { display: none; }
  .nav__toggle { display: grid; }
  .nav { padding-left: 1.2rem; }
  .callbar { display: flex; }
  body { padding-bottom: 4.2rem; }
  .split, .split--wide-l { grid-template-columns: 1fr; }
  .g-3, .g-2 { grid-template-columns: 1fr; }
  .stats { grid-template-columns: 1fr 1fr; }
  .masonry { columns: 2; }
  .footer__top { grid-template-columns: 1fr; }
  .form .row { grid-template-columns: 1fr; }
  .hero { min-height: 92vh; }
  .sec-head__row { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 520px) {
  body { font-size: 16px; }
  .masonry { columns: 1; }
  .g-4 { grid-template-columns: 1fr; }
  .btn { width: 100%; justify-content: space-between; }
  .hero__cta .btn { width: 100%; }
}
