/* ═══════════════════════════════════════
   SALTYSIDE GARDENSCAPES — style.css
   Smooth, coastal luxury palette
═══════════════════════════════════════ */

/* ── TOKENS ── */
:root {
  --forest:   #111e16;
  --forest2:  #192c20;
  --forest3:  #22402e;
  --moss:     #2e5c3e;
  --sage:     #4a7c5c;
  --fern:     #6a9e78;
  --cream:    #faf8f3;
  --warm:     #f3f0e8;
  --sand:     #e8e2d4;
  --stone:    #cbc5b4;
  --gold:     #c9a43a;
  --gold-lt:  #dcbe68;
  --gold-dim: #e8d49a;
  --gold-pale:#f6edcc;
  --ink:      #161d18;
  --ink2:     #2c3a2e;
  --muted:    #6e7f72;
  --border-d: rgba(255,255,255,.08);
  --border-l: rgba(0,0,0,.1);
  --serif:    'Playfair Display', Georgia, serif;
  --sans:     'Nunito', system-ui, sans-serif;
  --ease:     cubic-bezier(.16,1,.3,1);
  --ease2:    cubic-bezier(.45,0,.25,1);
}

/* ── RESET ── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; -webkit-font-smoothing:antialiased; }
body { font-family:var(--sans); background:var(--cream); color:var(--ink); overflow-x:hidden; }
img { display:block; max-width:100%; }
a { text-decoration:none; color:inherit; }

/* ── LAYOUT ── */
.wrap { max-width:1360px; margin:0 auto; padding:0 4.5rem; }
.mt1 { margin-top:1rem; }

/* ── TYPOGRAPHY ── */
.eyebrow {
  display:block; font-size:.68rem; font-weight:600; letter-spacing:.3em;
  text-transform:uppercase; color:var(--moss); margin-bottom:.8rem;
}
.eyebrow--gold { color:var(--gold-lt); }
.heading {
  font-family:var(--serif); font-size:clamp(2.2rem,3.5vw,3.3rem);
  font-weight:400; line-height:1.06; color:var(--forest3);
}
.heading em { font-style:italic; color:var(--sage); }
.heading--white { color:#fff; }
.rule { width:44px; height:2px; background:var(--moss); margin:1.4rem 0; }
.rule--gold { background:var(--gold); }
.body-text { font-size:.97rem; font-weight:300; color:var(--ink2); line-height:1.85; }
.body-text--dim { color:rgba(255,255,255,.48); }

/* ── BUTTONS ── */
.btn-primary {
  display:inline-flex; align-items:center; gap:8px;
  background:var(--gold); color:var(--forest);
  padding:.82rem 2rem; font-size:.75rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase;
  transition:background .25s, transform .2s var(--ease);
}
.btn-primary:hover { background:var(--gold-lt); transform:translateY(-2px); }
.btn-primary--sm { padding:.65rem 1.5rem; font-size:.7rem; }
.btn-text-arrow {
  display:inline-flex; align-items:center; gap:6px;
  color:rgba(255,255,255,.72); font-size:.75rem; font-weight:400;
  letter-spacing:.12em; text-transform:uppercase;
  border-bottom:1px solid rgba(255,255,255,.22); padding-bottom:2px;
  transition:color .25s, border-color .25s;
}
.btn-text-arrow:hover { color:#fff; border-color:rgba(255,255,255,.5); }

/* ── SCROLL REVEAL ── */
.rv, .rv-l, .rv-r {
  opacity:0; transition:opacity .85s var(--ease), transform .85s var(--ease);
  transition-delay:var(--d, 0s);
}
.rv   { transform:translateY(28px); }
.rv-l { transform:translateX(-26px); }
.rv-r { transform:translateX(26px); }
.rv.in, .rv-l.in, .rv-r.in { opacity:1; transform:none; }

/* ── NAV ── */
#nav {
  position:fixed; inset:0 0 auto; z-index:900;
  display:flex; align-items:center; justify-content:space-between;
  padding:0 4.5rem; height:88px;
  background:linear-gradient(to bottom, rgba(8,18,11,.75) 0%, transparent 100%);
  transition:height .45s var(--ease), background .45s, box-shadow .45s;
}
#nav.solid {
  height:66px;
  background:rgba(15,25,18,.97);
  backdrop-filter:blur(18px) saturate(1.5);
  box-shadow:0 1px 0 rgba(201,164,58,.14), 0 8px 28px rgba(0,0,0,.22);
}
.nav-brand { display:flex; align-items:center; gap:8px; flex-shrink:0; }
.nav-logo-icon { height:48px; width:auto; }
.nav-logo-text { height:32px; width:auto; }
.nav-wordmark { line-height:1.15; }
.nw-main { display:block; font-family:var(--serif); font-size:1.22rem; font-weight:500; color:#fff; letter-spacing:.04em; }
.nw-sub { display:block; font-size:.58rem; font-weight:400; letter-spacing:.24em; text-transform:uppercase; color:var(--gold-lt); }

.nav-links {
  display:flex; gap:2.5rem; list-style:none;
  position:absolute; left:50%; transform:translateX(-50%);
}
.nav-links a {
  color:rgba(255,255,255,.7); font-size:.73rem; font-weight:400;
  letter-spacing:.14em; text-transform:uppercase;
  transition:color .2s; position:relative; padding-bottom:3px;
}
.nav-links a::after {
  content:''; position:absolute; left:0; bottom:0;
  width:0; height:1px; background:var(--gold); transition:width .3s var(--ease);
}
.nav-links a:hover { color:#fff; }
.nav-links a:hover::after { width:100%; }

.nav-right { display:flex; align-items:center; gap:1.4rem; }
.nav-phone {
  display:flex; align-items:center; gap:6px;
  color:rgba(255,255,255,.5); font-size:.72rem; letter-spacing:.06em;
  transition:color .2s;
}
.nav-phone:hover { color:var(--gold-lt); }
.np-dot { width:4px; height:4px; border-radius:50%; background:var(--gold); flex-shrink:0; }
.nav-cta {
  background:var(--gold); color:var(--forest);
  padding:.52rem 1.3rem; font-size:.7rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase;
  transition:background .2s, transform .2s;
}
.nav-cta:hover { background:var(--gold-lt); transform:translateY(-1px); }
.nav-burger { display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:4px; }
.nav-burger span { display:block; width:22px; height:1.5px; background:rgba(255,255,255,.7); transition:all .3s; }

/* ── HERO ── */
#hero {
  position:relative; width:100%; height:100vh; min-height:680px;
  overflow:hidden; background:var(--forest);
}
.hero-bars {
  position:absolute; top:0; left:0; right:0; z-index:5;
  display:flex; gap:3px; height:2px;
}
.hbar { flex:1; background:rgba(255,255,255,.12); overflow:hidden; }
.hbar-fill { height:100%; background:var(--gold); width:0; }
.hero-slides { position:absolute; inset:0; }
.hslide {
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  opacity:0; transition:opacity 1.5s var(--ease2);
}
.hslide.on { opacity:1; }
.hslide::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(108deg,
    rgba(8,18,11,.88) 0%, rgba(8,18,11,.52) 40%,
    rgba(8,18,11,.18) 68%, transparent 100%),
  linear-gradient(to top, rgba(8,18,11,.48) 0%, transparent 45%);
}
.hero-body {
  position:relative; z-index:4; height:100%;
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:0 4.5rem 5.5rem; max-width:760px;
}
.hero-eyebrow {
  display:flex; align-items:center; gap:10px;
  font-size:.66rem; letter-spacing:.32em; text-transform:uppercase;
  color:var(--gold-lt); margin-bottom:1.3rem;
  opacity:0; animation:slideUp .8s .4s var(--ease) forwards;
}
.he-line { width:28px; height:1px; background:var(--gold); flex-shrink:0; }
.hero-h1 {
  font-family:var(--serif); font-size:clamp(3.6rem,7vw,6.8rem);
  font-weight:400; line-height:.94; color:#fff; letter-spacing:-.01em;
  margin-bottom:1.6rem;
  opacity:0; animation:slideUp .9s .55s var(--ease) forwards;
}
.hero-h1 em { font-style:italic; color:var(--gold-lt); display:block; }
.hero-sub {
  font-size:1rem; font-weight:300; color:rgba(255,255,255,.68);
  line-height:1.78; max-width:430px; margin-bottom:2.5rem;
  opacity:0; animation:slideUp .8s .68s var(--ease) forwards;
}
.hero-actions {
  display:flex; align-items:center; gap:1.8rem; flex-wrap:wrap;
  opacity:0; animation:slideUp .8s .8s var(--ease) forwards;
}
@keyframes slideUp {
  from { opacity:0; transform:translateY(20px); }
  to   { opacity:1; transform:none; }
}
.hero-dots {
  position:absolute; right:3.5rem; top:50%; transform:translateY(-50%);
  z-index:5; display:flex; flex-direction:column; gap:9px;
}
.hdot {
  width:4px; height:4px; border-radius:50%;
  background:rgba(255,255,255,.28); border:none; cursor:pointer;
  transition:height .35s var(--ease), background .3s;
}
.hdot.on { background:var(--gold); height:26px; border-radius:2px; }
.hero-foot {
  position:absolute; bottom:0; left:0; right:0; z-index:4;
  padding:1.2rem 4.5rem; display:flex; align-items:center; justify-content:space-between;
  background:linear-gradient(to top, rgba(8,18,11,.46), transparent);
}
.hero-phones { display:flex; gap:2.2rem; }
.hph {
  display:flex; align-items:center; gap:7px;
  color:rgba(255,255,255,.52); font-size:.74rem; letter-spacing:.05em;
  transition:color .2s;
}
.hph:hover { color:var(--gold); }
.hph-dot { width:4px; height:4px; border-radius:50%; background:var(--gold); }
.scroll-hint {
  display:flex; align-items:center; gap:10px;
  font-size:.6rem; letter-spacing:.24em; text-transform:uppercase;
  color:rgba(255,255,255,.3);
}
.sh-bar {
  display:block; width:36px; height:1px; background:rgba(255,255,255,.15);
  position:relative; overflow:hidden;
}
.sh-bar::after {
  content:''; position:absolute; inset:0; background:var(--gold);
  animation:scanbar 2s ease infinite;
}
@keyframes scanbar { 0%{transform:translateX(-100%)} 100%{transform:translateX(200%)} }

/* ── TRUST STRIP ── */
.trust-strip { background:var(--forest2); }
.trust-inner {
  max-width:1360px; margin:0 auto;
  display:grid; grid-template-columns:repeat(3,1fr);
}
.tc {
  padding:2.6rem 2rem; text-align:center;
  border-right:1px solid rgba(255,255,255,.06);
  transition:background .3s;
}
.tc:last-child { border-right:none; }
.tc:hover { background:rgba(255,255,255,.03); }
.tn { display:block; font-family:var(--serif); font-size:3.2rem; font-weight:400; color:var(--gold-lt); line-height:1; margin-bottom:.3rem; }
.tl { font-size:.65rem; font-weight:300; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.38); }

/* ── ABOUT ── */
.about-sec { padding:8.5rem 0; background:var(--cream); }
.about-grid-v2 { display:grid; grid-template-columns:1fr 2fr 1fr; gap:3rem; align-items:center; }
.about-side { display:flex; flex-direction:column; align-items:center; text-align:center; }
.about-center { display:flex; flex-direction:column; align-items:center; }
.about-photo {
  width:280px; height:280px; border-radius:50%; object-fit:cover; object-position:top;
  border:4px solid var(--gold-dim); box-shadow:0 8px 30px rgba(0,0,0,.12);
  margin-bottom:1.2rem; object-position:center 20%;
}
.about-side .pname { font-size:1.1rem; }
.about-side .prole { margin-top:2px; }
.about-side .pphone { margin-top:8px; }
.aimg-badge--inline {
  width:92px; height:92px; border-radius:50%;
  background:var(--gold); box-shadow:0 6px 28px rgba(0,0,0,.22);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  margin:0 auto 1.5rem;
}
.ab-n { font-family:var(--serif); font-size:2.2rem; font-weight:400; color:var(--forest); line-height:1; }
.ab-l { font-size:.46rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--forest2); text-align:center; }

/* Team cards */
.team-row { display:flex; gap:1.2rem; padding-top:2rem; border-top:1px solid var(--sand); margin-top:2rem; }
.person-card {
  display:flex; align-items:center; gap:12px; flex:1;
  padding:.9rem 1.1rem; background:var(--warm); border:1px solid var(--sand);
  transition:border-color .3s, box-shadow .3s;
}
.person-card:hover { border-color:var(--gold); box-shadow:0 4px 20px rgba(0,0,0,.07); }
.pav {
  width:56px; height:56px; border-radius:50%; overflow:hidden; flex-shrink:0;
  border:2px solid var(--gold-dim); background:var(--sage);
}
.char-canvas { display:block; width:56px; height:56px; border-radius:50%; }
.pname { font-weight:600; font-size:.9rem; color:var(--forest3); }
.prole { font-size:.72rem; color:var(--muted); margin-top:1px; }
.pphone { display:flex; align-items:center; gap:5px; font-size:.76rem; color:var(--sage); margin-top:4px; transition:color .2s; }
.pphone:hover { color:var(--moss); }
.pp-dot { width:4px; height:4px; border-radius:50%; background:var(--gold); }
.chips { display:flex; gap:.7rem; flex-wrap:wrap; margin-top:2rem; }
.chip {
  display:inline-flex; align-items:center; gap:7px;
  background:var(--forest2); color:rgba(255,255,255,.75);
  padding:.6rem 1.2rem; font-size:.78rem; font-weight:300; transition:background .2s;
}
.chip:hover { background:var(--forest3); color:#fff; }
.cdot { width:4px; height:4px; border-radius:50%; background:var(--gold); }

/* ── BRAND SCROLL STRIP ── */
.brand-strip {
  background:var(--forest); padding:2.5rem 0; overflow:hidden;
  border-top:1px solid rgba(201,164,58,.1);
  border-bottom:1px solid rgba(201,164,58,.1);
}
.bstrip-track {
  display:flex; gap:1.4rem;
  animation:bscroll 36s linear infinite;
  will-change:transform;
}
.bstrip-track:hover { animation-play-state:paused; }
@keyframes bscroll {
  from { transform:translateX(0); }
  to   { transform:translateX(-50%); }
}
.bstrip-item {
  flex-shrink:0; width:320px; height:200px;
  background-size:cover; background-position:center;
  background-color:var(--forest3);
  position:relative; overflow:hidden; cursor:pointer;
}
.bstrip-item::before {
  content:''; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(8,18,11,.65), transparent 60%);
  transition:background .3s;
}
.bstrip-item:hover::before { background:linear-gradient(to top, rgba(8,18,11,.75), rgba(8,18,11,.15) 100%); }
.bstrip-label {
  position:absolute; bottom:12px; left:14px;
  font-size:.68rem; letter-spacing:.16em; text-transform:uppercase;
  color:rgba(255,255,255,.75); font-weight:400;
  transition:color .3s;
}
.bstrip-item:hover .bstrip-label { color:var(--gold-lt); }

/* ── SERVICES ── */
.svc-sec { background:var(--forest2); padding:8rem 0 0; }
.svc-grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:2px; margin-top:3.5rem;
}
.svc-card {
  display:block; text-decoration:none;
  position:relative; overflow:hidden; aspect-ratio:4/3; cursor:pointer;
  background-color:var(--forest3);
}
.sc-bg {
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  transition:transform .65s var(--ease);
}
.svc-card:hover .sc-bg { transform:scale(1.05); }
.svc-card::before {
  content:''; position:absolute; inset:0; z-index:1;
  background:linear-gradient(to top, rgba(8,18,11,.94) 0%, rgba(8,18,11,.35) 55%, rgba(8,18,11,.05) 100%);
  transition:background .45s var(--ease);
}
.svc-card:hover::before { background:linear-gradient(to top, rgba(8,18,11,.97) 0%, rgba(8,18,11,.65) 100%); }
.sc-body { position:absolute; bottom:0; left:0; right:0; z-index:2; padding:1.7rem 2rem; }
.sc-num { font-family:var(--serif); font-size:2.8rem; font-weight:400; color:rgba(201,164,58,.2); line-height:1; margin-bottom:.3rem; }
.sc-title { font-family:var(--serif); font-size:1.48rem; font-weight:400; color:#fff; margin-bottom:.4rem; }
.sc-desc {
  font-size:.8rem; font-weight:300; color:rgba(255,255,255,.52); line-height:1.65;
  max-height:0; overflow:hidden; opacity:0;
  transition:max-height .45s var(--ease), opacity .35s .05s;
}
.svc-card:hover .sc-desc { max-height:70px; opacity:1; }
.sc-link {
  font-size:.66rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold);
  margin-top:.7rem; display:block;
  opacity:0; transform:translateY(4px);
  transition:opacity .3s, transform .3s;
}
.svc-card:hover .sc-link { opacity:1; transform:none; }
.svc-cta { background:rgba(201,164,58,.07); border:1px solid rgba(201,164,58,.18); }
.svc-cta::before { display:none; }
.sc-body--cta { top:50%; bottom:auto; transform:translateY(-50%); text-align:center; padding:2.5rem; }
.sc-cta-small { font-size:.65rem; letter-spacing:.28em; text-transform:uppercase; color:rgba(255,255,255,.3); margin-bottom:.7rem; }
.sc-cta-h { font-family:var(--serif); font-size:1.75rem; font-weight:300; color:#fff; line-height:1.2; margin-bottom:1.2rem; }

/* ── BEFORE / AFTER ── */
.ba-sec { padding:8.5rem 0; background:var(--warm); }
.ba-grid { display:grid; grid-template-columns:1fr 1fr; gap:2.5rem; margin-top:3.5rem; }
.ba-stage {
  position:relative; overflow:hidden; aspect-ratio:16/10;
  user-select:none; touch-action:none; cursor:col-resize;
  background:var(--forest);
}
.ba-layer {
  position:absolute; inset:0;
  background-size:cover; background-position:center;
}
.ba-clip { position:absolute; inset:0; overflow:hidden; }
.ba-divider {
  position:absolute; top:0; bottom:0; width:2px;
  background:rgba(255,255,255,.88); z-index:4;
  transform:translateX(-50%); pointer-events:none;
}
.ba-handle {
  position:absolute; top:50%; left:50%;
  transform:translate(-50%,-50%);
  width:44px; height:44px; border-radius:50%;
  background:#fff; box-shadow:0 4px 18px rgba(0,0,0,.28);
  display:flex; align-items:center; justify-content:center; gap:4px;
}
.bah-l { width:0; height:0; border:5px solid transparent; border-right:8px solid var(--forest3); }
.bah-r { width:0; height:0; border:5px solid transparent; border-left:8px solid var(--forest3); }
.ba-prog { position:absolute; bottom:0; left:0; height:2px; background:var(--gold); z-index:5; width:0; }
.ba-tag {
  position:absolute; top:12px; z-index:3;
  font-size:.62rem; letter-spacing:.18em; text-transform:uppercase;
  color:rgba(255,255,255,.75); background:rgba(8,18,11,.45); padding:4px 10px;
}
.ba-tag--l { left:10px; }
.ba-tag--r { right:10px; }
.ba-cap { font-family:var(--serif); font-size:1.15rem; font-weight:400; color:var(--forest3); margin-top:.85rem; }

/* ── TESTIMONIALS ── */
.testi-sec { padding:8.5rem 0; background:var(--forest3); overflow:hidden; }
.testi-top {
  display:flex; justify-content:space-between; align-items:flex-end;
  flex-wrap:wrap; gap:2rem; margin-bottom:3rem;
}
.g-badge {
  display:inline-flex; align-items:center; gap:10px;
  background:#fff; border-radius:100px; padding:.6rem 1.3rem;
  box-shadow:0 4px 22px rgba(0,0,0,.22);
}
.g-logo { display:flex; font-size:1.25rem; font-weight:700; line-height:1; }
.g-logo span:nth-child(1){color:#4285F4}
.g-logo span:nth-child(2){color:#EA4335}
.g-logo span:nth-child(3){color:#FBBC05}
.g-logo span:nth-child(4){color:#4285F4}
.g-logo span:nth-child(5){color:#34A853}
.g-logo span:nth-child(6){color:#EA4335}
.g-stars { color:#F9AB00; font-size:.92rem; letter-spacing:2px; }
.g-count { font-size:.76rem; color:#555; font-weight:500; }
.tcard-wrap { position:relative; }
.tcard-track { position:relative; }
.tcard {
  display:none;
  width:100%;
  padding:2.2rem; background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.09);
  opacity:0;
  transition:opacity .5s var(--ease), border-color .3s, background .3s;
}
.tcard.active {
  display:block;
  opacity:1;
}
.tcard:hover { background:rgba(255,255,255,.09); border-color:rgba(201,164,58,.28); }
.tcard-stars { color:var(--gold); font-size:.9rem; letter-spacing:3px; margin-bottom:1rem; }
.tcard-q { font-family:var(--serif); font-style:italic; font-size:1.08rem; color:rgba(255,255,255,.86); line-height:1.75; margin-bottom:1.5rem; }
.tcard-foot { display:flex; align-items:center; gap:10px; }
.tav { width:40px; height:40px; border-radius:50%; background:var(--gold); color:var(--forest); font-size:.82rem; font-weight:600; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.tname { font-size:.88rem; font-weight:500; color:#fff; }
.tloc { font-size:.72rem; color:rgba(255,255,255,.38); margin-top:1px; }
.tcontrols { display:flex; align-items:center; gap:1rem; margin-top:2.5rem; }
.tarr { width:40px; height:40px; border-radius:50%; border:1px solid rgba(255,255,255,.2); background:transparent; color:#fff; cursor:pointer; font-size:.95rem; display:flex; align-items:center; justify-content:center; transition:border-color .2s, color .2s; }
.tarr:hover { border-color:var(--gold); color:var(--gold); }
.tdots { display:flex; gap:6px; }
.tdot { width:5px; height:5px; border-radius:50%; background:rgba(255,255,255,.22); border:none; cursor:pointer; transition:all .32s var(--ease); }
.tdot.on { background:var(--gold); width:20px; border-radius:2px; }

/* ── PROCESS ── */
.proc-sec { padding:8.5rem 0; background:var(--cream); }
.proc-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin-top:5rem; position:relative; }
.proc-grid::before {
  content:''; position:absolute; top:27px; left:12.5%; right:12.5%;
  height:1px; background:linear-gradient(to right, transparent, var(--gold) 25%, var(--gold) 75%, transparent);
}
.proc-step { text-align:center; padding:0 1.8rem; }
.proc-num {
  width:56px; height:56px; border-radius:50%;
  margin:0 auto 1.8rem; position:relative; z-index:1;
  background:var(--cream); border:1.5px solid var(--gold);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--serif); font-size:1.45rem; color:var(--gold); font-weight:400;
  transition:background .3s, color .3s;
}
.proc-step:hover .proc-num { background:var(--gold); color:var(--forest); }
.proc-step h4 { font-family:var(--serif); font-size:1.2rem; font-weight:400; color:var(--forest3); margin-bottom:.55rem; }
.proc-step p { font-size:.82rem; font-weight:300; color:var(--muted); line-height:1.78; }

/* ── CONTACT ── */
.contact-sec {
  position:relative; padding:8.5rem 0; background:var(--forest2);
  overflow:hidden;
}
.contact-canvas {
  position:absolute; inset:0; width:100%; height:100%;
  pointer-events:none; z-index:0; opacity:.55;
}
.contact-grid { position:relative; z-index:1; display:grid; grid-template-columns:1.1fr 1fr; gap:5.5rem; align-items:start; }
.contact-left .body-text { max-width:400px; }
.cta-contacts { display:flex; flex-direction:column; gap:1.2rem; margin-top:2.5rem; }
.cta-row { display:flex; align-items:center; gap:12px; color:rgba(255,255,255,.65); font-size:.92rem; font-weight:300; transition:color .2s; }
.cta-row:hover { color:var(--gold-lt); }
.cta-icon { width:36px; height:36px; flex-shrink:0; border:1px solid rgba(201,164,58,.28); background:rgba(201,164,58,.07); display:flex; align-items:center; justify-content:center; font-size:.88rem; }
.contact-form {
  background:rgba(255,255,255,.04); border:1px solid rgba(201,164,58,.14); padding:2.8rem;
}
.form-title { font-family:var(--serif); font-size:1.75rem; font-weight:400; color:#fff; margin-bottom:.3rem; }
.form-sub { font-size:.74rem; color:rgba(255,255,255,.3); margin-bottom:2.2rem; letter-spacing:.05em; }
.f2 { display:grid; grid-template-columns:1fr 1fr; gap:.9rem; }
.fg { margin-bottom:.95rem; }
.fg label { display:block; font-size:.63rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.35); margin-bottom:.42rem; }
.fg input, .fg select, .fg textarea {
  width:100%; padding:.78rem 1rem;
  background:rgba(255,255,255,.04); border:none;
  border-bottom:1px solid rgba(255,255,255,.18);
  color:rgba(255,255,255,.9); font-family:var(--sans); font-size:.88rem; font-weight:300;
  outline:none; transition:border-color .22s, background .22s;
}
.fg input:focus, .fg select:focus, .fg textarea:focus { border-bottom-color:var(--gold); background:rgba(255,255,255,.06); }
.fg input::placeholder, .fg textarea::placeholder { color:rgba(255,255,255,.18); }
.fg select { appearance:none; cursor:pointer; }
.fg select option { background:var(--forest2); }
.fg textarea { resize:vertical; min-height:86px; }

/* phone row */
.phone-row { display:flex; gap:0; align-items:stretch; }
.country-select { width:120px !important; flex-shrink:0; border-right:1px solid rgba(255,255,255,.12) !important; }
.phone-row .phone-input { width:auto !important; flex:1 1 0; min-width:0; }

/* service dropdown checklist */
.svc-dropdown { position:relative; }
.svc-dropdown-trigger {
  width:100%; padding:.78rem 1rem; text-align:left;
  background:rgba(255,255,255,.04); border:none;
  border-bottom:1px solid rgba(255,255,255,.18);
  color:rgba(255,255,255,.55); font-family:var(--sans); font-size:.88rem; font-weight:300;
  cursor:pointer; display:flex; justify-content:space-between; align-items:center;
  transition:border-color .22s, background .22s;
}
.svc-dropdown-trigger:focus,
.svc-dropdown.open .svc-dropdown-trigger { border-bottom-color:var(--gold); background:rgba(255,255,255,.06); }
.svc-dropdown-trigger .svc-arrow { transition:transform .25s; font-size:.7rem; color:rgba(255,255,255,.4); }
.svc-dropdown.open .svc-arrow { transform:rotate(180deg); }
.svc-dropdown-panel {
  display:none; position:absolute; top:100%; left:0; right:0; z-index:50;
  background:#1a2e1e; border:1px solid rgba(255,255,255,.1);
  border-top:none; padding:.6rem .2rem;
}
.svc-dropdown.open .svc-dropdown-panel { display:block; }
.fg .svc-check {
  display:flex; align-items:center; gap:1.2rem;
  padding:.5rem 1rem; cursor:pointer;
  text-transform:none; letter-spacing:normal;
  font-size:.84rem; color:rgba(255,255,255,.7);
  margin-bottom:0;
}
.fg .svc-check input[type="checkbox"] { width:15px; height:15px; accent-color:var(--gold); cursor:pointer; flex-shrink:0; }
.fg .svc-check span { font-size:.84rem; color:rgba(255,255,255,.7); font-weight:300; text-transform:none; letter-spacing:normal; }
.fg .svc-check:hover span { color:#fff; }

/* inline field errors */
.field-error { display:block; font-size:.68rem; color:#f87171; margin-top:.3rem; min-height:.9rem; }
.btn-submit { width:100%; padding:1rem; margin-top:.4rem; background:var(--gold); color:var(--forest); border:none; font-family:var(--sans); font-size:.75rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase; cursor:pointer; transition:background .22s; }
.btn-submit:hover { background:var(--gold-lt); }

/* ── FOOTER ── */
.site-footer { background:var(--forest); }
.footer-grid { display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:4rem; padding-top:5rem; padding-bottom:3rem; }
.ft-logo-link { display:flex; align-items:center; gap:10px; margin-bottom:.8rem; }
.ft-logo-icon { height:70px; width:auto; }
.ft-logo-text { height:44px; width:auto; }
.ft-name { font-family:var(--serif); font-size:1.5rem; font-weight:400; color:rgba(255,255,255,.8); letter-spacing:.03em; }
.ft-name em { font-style:italic; color:var(--gold-lt); }
.ft-desc { font-size:.8rem; font-weight:300; color:rgba(255,255,255,.28); line-height:1.8; margin-top:.9rem; max-width:270px; }
.ft-socials { display:flex; gap:.7rem; margin-top:1.4rem; }
.ft-soc { width:34px; height:34px; border:1px solid rgba(255,255,255,.1); display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.4); transition:all .2s; }
.ft-soc:hover { border-color:var(--gold); color:var(--gold); }
.ft-col h5 { font-size:.63rem; letter-spacing:.26em; text-transform:uppercase; color:var(--gold); margin-bottom:1.2rem; }
.ft-col ul { list-style:none; }
.ft-col li { margin-bottom:.6rem; }
.ft-col a { font-size:.82rem; color:rgba(255,255,255,.3); font-weight:300; transition:color .2s; }
.ft-col a:hover { color:rgba(255,255,255,.65); }
.footer-bar {
  border-top:1px solid rgba(255,255,255,.05);
  padding:1.4rem 4.5rem; max-width:1360px; margin:0 auto;
  display:flex; align-items:center; justify-content:space-between;
}
.footer-bar p { font-size:.72rem; color:rgba(255,255,255,.2); }
.footer-bar a { font-size:.72rem; color:rgba(201,164,58,.45); }

/* ═══════════════════════════════════════
   RESPONSIVE — TABLET (≤ 1024px)
═══════════════════════════════════════ */
@media (max-width: 1024px) {
  .wrap { padding:0 2.5rem; }

  #nav { padding:0 2.5rem; }

  .about-grid-v2 { gap:2rem; }

  .svc-grid { grid-template-columns:repeat(2,1fr); }

  .contact-grid { gap:3rem; }

  .footer-grid { grid-template-columns:1.2fr 1fr 1fr; gap:2.5rem; }

  .proc-grid { grid-template-columns:repeat(2,1fr); gap:3rem; }
  .proc-grid::before { display:none; }
  .proc-step { padding:0 1rem; }
}

/* ═══════════════════════════════════════
   RESPONSIVE — MOBILE (≤ 768px)
═══════════════════════════════════════ */
@media (max-width: 768px) {
  .wrap { padding:0 1.5rem; }

  /* ── NAV ── */
  #nav { padding:0 1.5rem; height:68px; }
  #nav.solid { height:60px; }

  .nav-phone { display:none; }

  .nav-links {
    position:fixed; top:68px; left:0; right:0;
    flex-direction:column; gap:0;
    background:rgba(15,25,18,.98);
    backdrop-filter:blur(18px);
    transform:none;
    max-height:0; overflow:hidden;
    transition:max-height .4s var(--ease);
    border-top:1px solid rgba(201,164,58,.12);
  }
  .nav-links.open { max-height:400px; }
  .nav-links li { border-bottom:1px solid rgba(255,255,255,.05); }
  .nav-links a {
    display:block; padding:1rem 1.5rem;
    font-size:.82rem; letter-spacing:.1em;
  }
  .nav-links a::after { display:none; }

  .nav-burger { display:flex; }
  .nav-burger.open span:nth-child(1) { transform:rotate(45deg) translate(4.5px, 4.5px); }
  .nav-burger.open span:nth-child(2) { opacity:0; }
  .nav-burger.open span:nth-child(3) { transform:rotate(-45deg) translate(4.5px, -4.5px); }

  .nav-cta { padding:.45rem 1rem; font-size:.65rem; }

  /* ── HERO ── */
  #hero { min-height:600px; }
  .hero-body { padding:0 1.5rem 4rem; max-width:100%; }
  .hero-h1 { font-size:clamp(2.8rem,11vw,4.5rem); margin-bottom:1.2rem; }
  .hero-sub { font-size:.9rem; max-width:100%; margin-bottom:2rem; }
  .hero-actions { gap:1.2rem; }
  .hero-foot { padding:1rem 1.5rem; }
  .hero-phones { gap:1.2rem; }
  .hph { font-size:.68rem; }
  .hero-dots { right:1rem; }

  /* ── TRUST STRIP ── */
  .trust-inner { grid-template-columns:repeat(2,1fr); }
  .tc { padding:1.8rem 1rem; }
  .tc:nth-child(2) { border-right:none; }
  .tn { font-size:2.4rem; }

  /* ── ABOUT ── */
  .about-sec { padding:5rem 0; }
  .about-grid-v2 { grid-template-columns:1fr; gap:2rem; }
  .about-side { order:1; }
  .about-center { order:0; }

  /* ── BRAND STRIP ── */
  .bstrip-item { width:240px; height:160px; }

  /* ── SERVICES ── */
  .svc-sec { padding:5rem 0 0; }
  .svc-grid { grid-template-columns:1fr; }
  .svc-card { aspect-ratio:16/9; }
  .svc-card:hover .sc-desc { max-height:none; }

  /* ── BEFORE / AFTER ── */
  .ba-sec { padding:5rem 0; }
  .ba-grid { grid-template-columns:1fr; gap:2rem; }

  /* ── TESTIMONIALS ── */
  .testi-sec { padding:5rem 0; }
  .tcard { width:100%; }
  .testi-top { flex-direction:column; align-items:flex-start; gap:1.2rem; }

  /* ── PROCESS ── */
  .proc-sec { padding:5rem 0; }
  .proc-grid { grid-template-columns:1fr; gap:2.5rem; margin-top:3rem; }
  .proc-grid::before { display:none; }
  .proc-step { padding:0; }

  /* ── CONTACT ── */
  .contact-sec { padding:5rem 0; }
  .contact-grid { grid-template-columns:1fr; gap:3rem; }
  .contact-left .body-text { max-width:100%; }
  .contact-form { padding:2rem 1.5rem; }
  .f2 { grid-template-columns:1fr; gap:0; }

  /* ── FOOTER ── */
  .site-footer .wrap { padding:0 1.5rem; }
  .footer-grid { grid-template-columns:1fr; gap:2.5rem; padding-top:3.5rem; }
  .footer-bar {
    padding:1.2rem 1.5rem;
    flex-direction:column; gap:.6rem; text-align:center;
  }
}
