/* =============================================================================
   PENCH SAFARI ADVENTURE — styles.css
   Earth-tone theme: terracotta · rust · ochre · gold · warm sand · teak brown
   You normally won't need to edit this file. Colours live in the :root block
   right below — change a hex value there to re-tint the whole site.
   ============================================================================= */

/* ---------------------------------------------------------------- TOKENS ---- */
:root{
  /* earth palette */
  --clay:#b5522e;        /* terracotta (primary accent / buttons)   */
  --clay-2:#c86a3d;      /* lighter terracotta (gradient partner)   */
  --rust:#8f3f22;        /* burnt sienna (deep accent)              */
  --rust-2:#7a3218;      /* deeper rust                             */
  --ochre:#d9982f;       /* golden ochre (secondary accent)         */
  --gold:#e7b54a;        /* warm gold (light accent / highlights)   */
  --sand:#ead6ae;        /* dry-grass sand                          */
  --cream:#f7eedc;       /* warm sand cream (page background)       */
  --cream-2:#fdf7ea;     /* lighter cream (cards on light)          */
  --bark:#3a2617;        /* deep teak bark (dark sections/footer)   */
  --bark-2:#46301c;      /* lifted bark (cards on dark)             */
  --umber:#5e3d25;       /* mid brown (headings on light)           */
  --umber-soft:#8a6a4f;  /* muted brown text on light               */
  --ink:#2c1d10;         /* darkest brown text                      */
  --light:#f7eedc;       /* warm off-white text on dark             */
  --light-soft:#d9c3a0;  /* muted light text on dark                */
  --line:#e4d1a9;        /* hairline on light                       */

  /* gradients (earth tones, as requested) */
  --grad-cta:linear-gradient(135deg,#c86a3d 0%,#b5522e 58%,#9e4527 100%);
  --grad-cta-hover:linear-gradient(135deg,#b5522e 0%,#9e4527 58%,#853a1f 100%);
  --grad-gold:linear-gradient(135deg,#e7b54a 0%,#d9982f 100%);

  --f-display:'Fraunces', Georgia, serif;
  --f-body:'Figtree', system-ui, -apple-system, sans-serif;
  --f-mono:'Space Mono', ui-monospace, monospace;

  --wrap:1180px;
  --radius:16px;
}

/* ---------------------------------------------------------------- BASE ------ */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--f-body);
  color:var(--ink);
  background:var(--cream);
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--f-display);font-optical-sizing:auto;font-weight:600;line-height:1.08;letter-spacing:-.015em;color:var(--umber)}

.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 24px}
.wrap-narrow{max-width:820px}

/* section rhythm — padding is defined ONLY here to avoid clashes */
.section{padding:clamp(66px,9vw,120px) 0}

/* background bands (these set colour only, never padding) */
.bg-cream{background:linear-gradient(180deg,#faf3e4 0%,#f7eedc 100%);color:var(--ink)}
.bg-sand{background:linear-gradient(180deg,#efe1c0 0%,#e8d3a6 100%);color:var(--ink)}
.bg-bark{
  background:
    radial-gradient(900px 520px at 80% -5%, rgba(217,152,47,.16), transparent 60%),
    radial-gradient(700px 500px at 0% 100%, rgba(181,82,46,.20), transparent 55%),
    linear-gradient(158deg,#2f2013 0%,#3a2617 52%,#48311d 100%);
  color:var(--light);
}
.bg-bark h2,.bg-bark h3,.bg-bark h4{color:var(--light)}

/* field-notes label above headings */
.eyebrow{
  font-family:var(--f-mono);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--clay);display:inline-flex;align-items:center;gap:.6em;
}
.eyebrow::before{content:"";width:26px;height:1px;background:currentColor;opacity:.75}
.eyebrow-light{color:var(--gold)}

/* buttons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55em;
  font-family:var(--f-body);font-weight:600;font-size:.98rem;
  padding:.82em 1.5em;border-radius:999px;cursor:pointer;border:1.6px solid transparent;
  transition:transform .15s ease, background .25s ease, color .2s ease, border-color .2s ease, box-shadow .25s ease;
  white-space:nowrap;
}
.btn:active{transform:translateY(1px)}
.btn-lg{padding:.95em 1.75em;font-size:1.02rem}
.btn-block{width:100%}
.btn-solid{background:var(--grad-cta);color:#fff4e6;box-shadow:0 10px 24px rgba(143,63,34,.28)}
.btn-solid:hover{background:var(--grad-cta-hover);box-shadow:0 14px 30px rgba(143,63,34,.36)}
.btn-outline{background:transparent;color:var(--light);border-color:rgba(247,238,220,.42)}
.btn-outline:hover{border-color:var(--gold);color:var(--gold)}
.ico-inline{width:20px;height:20px;fill:currentColor;flex:none}

/* image placeholders (swap for real photos; drop in <img class="ph-img">) */
.ph{
  position:relative;overflow:hidden;border-radius:var(--radius);
  background:
    linear-gradient(135deg, rgba(181,82,46,.16), rgba(217,152,47,.14)),
    repeating-linear-gradient(45deg, rgba(58,38,23,.05) 0 12px, transparent 12px 24px);
  border:1.6px dashed rgba(143,63,34,.34);
  display:flex;align-items:center;justify-content:center;min-height:220px;color:var(--umber-soft);
}
.bg-bark .ph{
  border-color:rgba(231,181,74,.34);color:var(--light-soft);
  background:
    linear-gradient(135deg, rgba(217,152,47,.16), rgba(0,0,0,.18)),
    repeating-linear-gradient(45deg, rgba(255,255,255,.045) 0 12px, transparent 12px 24px);
}
/* .ph-inner{display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  text-align:center;
  padding:16px}
.ph-inner span{font-family:var(--f-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;line-height:1.5}
.ph-inner svg{width:30px;height:30px;stroke:currentColor;stroke-width:1.4;fill:none;opacity:.8} */
/* .ph-img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block} */
/* 1. Ensure the parent container has a locked-in aspect ratio or height */
.ph-tall {
  width: 100%;
  aspect-ratio: 3 / 4;  /* Automatically keeps a tall rectangle format */
  min-height: 450px;    /* Forces it to be tall enough on desktop screens */
  position: relative;
}

/* 2. Update your existing .ph-inner class */
.ph-inner {
  position: relative;
  width: 100%;
  height: 100%;        /* Forces it to stretch to the parent's full height */
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-align: center;
  padding: 16px;
}

/* 3. Keep your .ph-img absolute code exactly as it is */
.ph-img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  border-radius: inherit;
  display: block;
  z-index: 2;
}


/* signature: a trail of tiger pugmarks used as a divider */
.divider{padding:24px 0}
.trail{display:flex;justify-content:center;align-items:flex-end;gap:26px}
.trail svg{width:22px;height:22px;fill:var(--ochre)}
.trail svg:nth-child(1){transform:translateY(6px) rotate(-12deg);opacity:.4}
.trail svg:nth-child(2){transform:translateY(-4px) rotate(-4deg);opacity:.7}
.trail svg:nth-child(3){transform:translateY(4px) rotate(6deg);opacity:.9}
.trail svg:nth-child(4){transform:translateY(-6px) rotate(12deg);opacity:.55}

/* centered section header */
.head-center{text-align:center;max-width:660px;margin:0 auto 54px}
.head-center-eyebrow{justify-content:center}
.head-center h2{font-size:clamp(2rem,4.4vw,3.1rem);margin:16px 0 14px}
.head-sub{color:var(--umber-soft)}
.bg-bark .head-sub{color:var(--light-soft)}

/* scroll reveal */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease, transform .7s ease}
.reveal.in{opacity:1;transform:none}

/* ---------------------------------------------------------------- HEADER ---- */
/* NOTE: scoped to #siteHeader ONLY. A bare `header{position:fixed}` would also
   catch every <header class="head-center"> section title and pin them all to
   the top of the page (that was the overlap bug). Keep this as an ID selector. */
#siteHeader{
  position:fixed;top:0;left:0;right:0;z-index:100;padding:18px 0;
  transition:background .3s ease, box-shadow .3s ease, padding .3s ease;
}
#siteHeader.scrolled{background:rgba(47,32,19,.94);backdrop-filter:blur(8px);box-shadow:0 6px 26px rgba(0,0,0,.3);padding:11px 0}
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px}

.brand{display:flex;align-items:center;gap:11px;color:var(--light)}
.logo{
  width:44px;height:44px;border-radius:12px;flex:none;display:flex;align-items:center;justify-content:center;
  color:#3a2617;background:var(--grad-gold);box-shadow:0 4px 14px rgba(217,152,47,.4);
}
.logo svg{width:25px;height:25px;fill:#3a2617}
.brand-text{display:flex;flex-direction:column;line-height:1.05}
.brand-text b{font-family:var(--f-display);font-weight:600;font-size:1.06rem;letter-spacing:-.01em;color:var(--light)}
.brand-text small{font-family:var(--f-mono);font-size:.56rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-top:3px}
.logo-img{height:46px;width:auto;border-radius:10px}

.nav-links{display:flex;align-items:center;gap:28px}
.nav-links a{color:var(--light);font-size:.95rem;font-weight:500;position:relative;padding:4px 0}
.nav-links a::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--gold);transition:width .25s ease}
.nav-links a:hover::after{width:100%}
.nav-cta{display:flex;align-items:center;gap:14px}

.hamburger{display:none;background:none;border:0;cursor:pointer;padding:8px;color:var(--light)}
.hamburger svg{width:26px;height:26px;stroke:currentColor;stroke-width:2;fill:none}

/* ---------------------------------------------------------------- HERO ------ */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;color:var(--light);overflow:hidden}
.hero-bg{
  position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(1100px 520px at 82% 8%, rgba(231,181,74,.38), transparent 60%),
    radial-gradient(820px 640px at 4% 96%, rgba(181,82,46,.48), transparent 55%),
    linear-gradient(155deg,#361a0c 0%,#7a3218 42%,#b5522e 78%,#d9982f 112%);
  animation:kenburns 28s ease-in-out infinite alternate;
}
@keyframes kenburns{from{transform:scale(1)}to{transform:scale(1.08)}}
.hero-veil{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg, rgba(30,16,7,.74) 0%, rgba(30,16,7,.34) 52%, rgba(30,16,7,.08) 100%)}
.hero>.wrap{position:relative;z-index:2;width:100%;flex:1 1 auto;display:flex;flex-direction:column;justify-content:center;padding-top:120px;padding-bottom:56px}
.hero-content{max-width:770px}
.hero h1{font-size:clamp(2.6rem,6.6vw,5.2rem);font-weight:600;color:var(--light);margin:20px 0 0}
.hero h1 em{font-style:italic;color:var(--gold);font-weight:500}
.hero-sub{font-size:clamp(1.02rem,1.6vw,1.22rem);color:#f0e2c9;max-width:610px;margin:22px 0 34px}
.hero-sub strong{color:#fff}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.hero-call{font-family:var(--f-mono);font-size:.82rem;letter-spacing:.04em;color:#e7d3ad;display:inline-flex;align-items:center;gap:8px}
.hero-call b{color:#fff;font-weight:700}

/* trust strip */
.strip{position:relative;z-index:2;width:100%;margin-top:auto;border-top:1px solid rgba(247,238,220,.16)}
.strip-inner{display:flex;flex-wrap:wrap;gap:14px 40px;padding-top:20px;padding-bottom:22px}
.strip-item{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:#e7d3ad;display:flex;align-items:center;gap:10px}
.strip-item svg{width:15px;height:15px;fill:var(--gold)}

/* ---------------------------------------------------------------- ABOUT ----- */
.about-grid{display:grid;grid-template-columns:0.92fr 1.08fr;gap:clamp(30px,5vw,70px);align-items:center}
.about-photo{position:relative}
.about-photo .ph{min-height:460px;height:100%}
.ph-tall{min-height:460px}
/* .photo-stamp{
  position:absolute;bottom:18px;right:-10px;background:var(--grad-cta);color:#fff4e6;
  font-family:var(--f-mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;
  padding:9px 15px;border-radius:8px;transform:rotate(-3deg);box-shadow:0 8px 20px rgba(143,63,34,.35);
} */
 .photo-stamp {
  position: absolute;
  bottom: 18px;
  right: -10px;
  background: var(--grad-cta);
  color: #fff4e6;
  font-family: var(--f-mono);
  font-size: .62rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  padding: 9px 15px;
  border-radius: 8px;
  transform: rotate(-3deg);
  box-shadow: 0 8px 20px rgba(143,63,34,.35);
  
  /* FIX: Forces the stamp to sit on top of the image layer */
  z-index: 3; 
}

.about-copy h2{font-size:clamp(2rem,4vw,3rem);margin:16px 0 18px}
.about-copy p{color:var(--umber-soft);margin-bottom:16px;font-size:1.05rem}
.about-copy p strong{color:var(--ink)}
.tick-list{list-style:none;margin:22px 0 0;display:flex;flex-direction:column;gap:11px}
.tick-list li{position:relative;padding-left:30px;color:var(--ink);font-size:1rem}
.tick-list li::before{
  content:"";position:absolute;left:0;top:2px;width:19px;height:19px;border-radius:50%;
  background:var(--grad-gold);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/14px no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/14px no-repeat;
}
.about-stat{display:flex;align-items:baseline;gap:16px;margin-top:28px;padding-top:26px;border-top:1px solid var(--line)}
.about-stat .num{font-family:var(--f-display);font-weight:600;font-size:3.6rem;line-height:1;background:var(--grad-cta);-webkit-background-clip:text;background-clip:text;color:transparent}
.about-stat .lbl{font-family:var(--f-mono);font-size:.74rem;letter-spacing:.13em;text-transform:uppercase;color:var(--umber-soft);max-width:190px}

/* ---------------------------------------------------------------- SERVICES -- */
.svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.svc{
  background:linear-gradient(180deg,#48311d 0%,#3b2817 100%);
  border:1px solid rgba(247,238,220,.10);border-radius:var(--radius);overflow:hidden;
  display:flex;flex-direction:column;
  transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.svc:hover{transform:translateY(-6px);border-color:rgba(231,181,74,.55);box-shadow:0 24px 46px rgba(0,0,0,.4)}
.svc .ph{border-radius:0;min-height:190px;border:0;border-bottom:1px solid rgba(247,238,220,.09)}
.svc-body{padding:26px 26px 30px}
.svc-ico{width:54px;height:54px;border-radius:13px;display:flex;align-items:center;justify-content:center;margin-bottom:16px;background:rgba(231,181,74,.14);border:1px solid rgba(231,181,74,.2)}
.svc-ico svg{width:28px;height:28px;stroke:var(--gold);stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round}
.svc h3{font-size:1.5rem;color:var(--light);margin-bottom:10px}
.svc p{color:var(--light-soft);font-size:.98rem}
.gate-list{margin-top:16px;padding-top:16px;border-top:1px dashed rgba(247,238,220,.18);font-family:var(--f-mono);font-size:.72rem;letter-spacing:.03em;color:#e0c79b;line-height:1.95}
.gate-list b{color:var(--gold);letter-spacing:.1em}

/* ---------------------------------------------------------------- WHY US ---- */
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.why-card{
  background:var(--cream-2);border:1px solid var(--line);border-radius:var(--radius);
  padding:30px 26px;position:relative;overflow:hidden;
  transition:transform .22s ease, box-shadow .22s ease;
}
.why-card::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--grad-cta);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}
.why-card:hover{transform:translateY(-5px);box-shadow:0 18px 38px rgba(94,61,37,.16)}
.why-card:hover::before{transform:scaleX(1)}
.why-num{font-family:var(--f-mono);font-weight:700;font-size:.9rem;color:var(--clay);letter-spacing:.08em}
.why-card h3{font-size:1.32rem;margin:12px 0 8px;color:var(--umber)}
.why-card p{color:var(--umber-soft);font-size:.97rem}

/* ---------------------------------------------------------------- ZONES ----- */
.zones-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.zone-card{
  background:var(--cream-2);border:1.6px dashed var(--clay);border-radius:var(--radius);
  padding:30px 30px 26px;position:relative;
}
.zone-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.zone-head h3{font-size:1.5rem;color:var(--umber)}
.zone-tag{font-family:var(--f-mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:#fff4e6;background:var(--grad-cta);padding:6px 11px;border-radius:6px}
.zone-list{list-style:none;display:flex;flex-direction:column;gap:14px}
.zone-list li{display:flex;flex-direction:column;gap:2px;padding-left:26px;position:relative}
.zone-list li::before{content:"";position:absolute;left:0;top:3px;width:15px;height:15px;background:var(--clay);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M32 33c-9 0-15.5 5.6-15.5 12.6 0 5.8 6.4 9.4 15.5 9.4s15.5-3.6 15.5-9.4C47.5 38.6 41 33 32 33z'/%3E%3Cellipse cx='14.5' cy='30' rx='6' ry='8'/%3E%3Cellipse cx='26' cy='20.5' rx='6.4' ry='8.6'/%3E%3Cellipse cx='38' cy='20.5' rx='6.4' ry='8.6'/%3E%3Cellipse cx='49.5' cy='30' rx='6' ry='8'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M32 33c-9 0-15.5 5.6-15.5 12.6 0 5.8 6.4 9.4 15.5 9.4s15.5-3.6 15.5-9.4C47.5 38.6 41 33 32 33z'/%3E%3Cellipse cx='14.5' cy='30' rx='6' ry='8'/%3E%3Cellipse cx='26' cy='20.5' rx='6.4' ry='8.6'/%3E%3Cellipse cx='38' cy='20.5' rx='6.4' ry='8.6'/%3E%3Cellipse cx='49.5' cy='30' rx='6' ry='8'/%3E%3C/svg%3E") center/contain no-repeat}
.zone-list b{color:var(--ink);font-family:var(--f-display);font-weight:600;font-size:1.05rem}
.zone-list span{color:var(--umber-soft);font-size:.9rem}

.zone-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:28px}
.fact{background:var(--grad-gold);border-radius:12px;padding:18px 18px;color:#3a2617}
.fact b{display:block;font-family:var(--f-display);font-weight:600;font-size:1.15rem;margin-bottom:4px}
.fact span{font-size:.86rem;line-height:1.45;color:#4a3115}

/* ---------------------------------------------------------------- GALLERY --- */
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.ph-gal{min-height:0;aspect-ratio:1/1}
.ph-gal.g-wide{grid-column:span 2;aspect-ratio:2/1}

/* ---------------------------------------------------------------- QUOTES ---- */
.quotes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.quote{background:var(--cream-2);border:1px solid var(--line);border-radius:var(--radius);padding:30px 28px;display:flex;flex-direction:column;gap:14px}
.stars{color:var(--ochre);letter-spacing:3px;font-size:1.05rem}
.quote blockquote{font-family:var(--f-display);font-weight:400;font-style:italic;font-size:1.12rem;line-height:1.5;color:var(--ink)}
.quote figcaption{font-family:var(--f-mono);font-size:.74rem;letter-spacing:.06em;color:var(--umber-soft);margin-top:auto}

/* ---------------------------------------------------------------- FAQ ------- */
.faq{display:flex;flex-direction:column;gap:12px}
.faq details{background:var(--cream-2);border:1px solid var(--line);border-radius:12px;overflow:hidden;transition:border-color .2s ease}
.faq details[open]{border-color:var(--clay)}
.faq summary{
  list-style:none;cursor:pointer;padding:18px 22px;font-family:var(--f-display);font-weight:600;font-size:1.1rem;
  color:var(--umber);display:flex;align-items:center;justify-content:space-between;gap:14px;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--f-body);font-weight:600;font-size:1.5rem;color:var(--clay);transition:transform .25s ease;line-height:1}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq-a{padding:0 22px 20px}
.faq-a p{color:var(--umber-soft);font-size:.98rem}

/* ---------------------------------------------------------------- CONTACT --- */
.contact-grid{display:grid;grid-template-columns:0.9fr 1.1fr;gap:clamp(32px,5vw,64px)}
.contact-copy h2{font-size:clamp(2rem,4.2vw,3rem);margin:16px 0 16px;color:var(--light)}
.contact-lead{color:var(--light-soft);margin-bottom:30px;font-size:1.05rem;max-width:440px}
.contact-methods{display:flex;flex-direction:column;gap:14px}
.cm{
  display:flex;align-items:center;gap:16px;padding:15px 18px;border-radius:12px;
  background:rgba(255,255,255,.05);border:1px solid rgba(247,238,220,.14);
  transition:border-color .2s ease, transform .2s ease, background .2s ease;
}
.cm:hover{border-color:var(--gold);transform:translateX(4px);background:rgba(255,255,255,.08)}
.cm-ico{width:46px;height:46px;border-radius:11px;flex:none;display:flex;align-items:center;justify-content:center;background:var(--grad-gold)}
.cm-ico svg{width:22px;height:22px;fill:#3a2617}
.cm-text{display:flex;flex-direction:column;line-height:1.25}
.cm-text small{font-family:var(--f-mono);font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:var(--light-soft)}
.cm-text b{font-size:1.08rem;color:var(--light);font-weight:600}
.contact-extra{margin-top:24px}
.contact-extra p{font-family:var(--f-mono);font-size:.78rem;letter-spacing:.03em;color:var(--light-soft)}
.contact-extra b{color:var(--gold)}

/* form */
.form-card{background:linear-gradient(180deg,#2c1d10 0%,#241810 100%);border:1px solid rgba(231,181,74,.16);border-radius:20px;padding:clamp(26px,4vw,40px);color:var(--light)}
.form-card h3{font-size:1.65rem;color:var(--light);margin-bottom:6px}
.form-card .hint{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.06em;color:var(--light-soft);margin-bottom:24px}
.field{margin-bottom:16px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
label.lab{display:block;font-family:var(--f-mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--light-soft);margin-bottom:7px}
.field input,.field select,.field textarea{
  width:100%;padding:13px 15px;border-radius:10px;border:1.5px solid rgba(247,238,220,.2);
  background:rgba(255,255,255,.04);color:var(--light);font-family:var(--f-body);font-size:.98rem;
  transition:border-color .2s ease, background .2s ease;
}
.field input::placeholder,.field textarea::placeholder{color:rgba(217,195,160,.6)}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--gold);background:rgba(255,255,255,.07)}
.field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e7b54a' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:18px;padding-right:42px}
.field textarea{resize:vertical;min-height:96px}
.honey{position:absolute;left:-9999px;opacity:0;height:0;width:0;overflow:hidden}
.form-card .btn-solid{margin-top:8px}
.form-msg{display:none;margin-top:16px;padding:13px 16px;border-radius:10px;font-size:.92rem;line-height:1.5}
.form-msg.show{display:block}
.form-msg.ok{background:rgba(217,152,47,.16);border:1px solid var(--ochre);color:#f6e4bf}
.form-msg.err{background:rgba(181,82,46,.18);border:1px solid var(--clay-2);color:#f4d5c2}

/* ---------------------------------------------------------------- FOOTER ---- */
footer{
  background:
    radial-gradient(700px 400px at 90% 0%, rgba(217,152,47,.1), transparent 60%),
    linear-gradient(180deg,#2a1a0e 0%,#20140a 100%);
  color:var(--light-soft);padding:64px 0 30px;
}
.foot-grid{display:grid;grid-template-columns:1.7fr 1fr 1fr 1.2fr;gap:40px;padding-bottom:40px;border-bottom:1px solid rgba(247,238,220,.12)}
.foot-brand .brand{margin-bottom:16px}
.foot-brand p{max-width:320px;font-size:.95rem}
.foot-col h4{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:16px}
.foot-col a,.foot-col span{display:block;color:var(--light-soft);font-size:.94rem;margin-bottom:10px;transition:color .2s ease}
.foot-col a:hover{color:var(--gold)}
.foot-place{color:#a98d68}
.foot-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:24px;font-size:.8rem;font-family:var(--f-mono);letter-spacing:.03em;color:#a98d68}

/* ---------------------------------------------------------------- WHATSAPP -- */
.wa-float{
  position:fixed;right:22px;bottom:22px;z-index:200;width:60px;height:60px;border-radius:50%;
  background:#25D366;display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 30px rgba(37,211,102,.45);transition:transform .2s ease;
}
.wa-float:hover{transform:scale(1.08)}
.wa-float svg{width:34px;height:34px;fill:#fff}
.wa-float::before{content:"";position:absolute;inset:0;border-radius:50%;background:#25D366;z-index:-1;animation:pulse 2.4s ease-out infinite}
@keyframes pulse{0%{transform:scale(1);opacity:.6}70%{transform:scale(1.9);opacity:0}100%{opacity:0}}
.wa-label{
  position:absolute;right:72px;background:var(--bark);color:var(--light);padding:8px 13px;border-radius:8px;
  font-size:.82rem;white-space:nowrap;font-weight:500;opacity:0;transform:translateX(8px);pointer-events:none;
  transition:opacity .2s ease, transform .2s ease;box-shadow:0 6px 18px rgba(0,0,0,.28);
}
.wa-float:hover .wa-label{opacity:1;transform:translateX(0)}

/* ---------------------------------------------------------- OVERFLOW SAFETY -
   Stops long emails/words and grid columns from forcing the page wider than
   the phone screen (that caused the sideways scroll + cut-off contact form). */
.about-grid>*,.svc-grid>*,.why-grid>*,.zones-grid>*,.quotes-grid>*,
.gallery-grid>*,.zone-facts>*,.row2>*,.contact-grid>*,.foot-grid>*{min-width:0}
.cm,.cm-text{min-width:0}
.cm-text b,.cm-text small,.foot-col a,.gate-list,.contact-extra p{overflow-wrap:anywhere}
html{overflow-x:hidden}

/* ---------------------------------------------------------------- RESPONSIVE  */
@media (max-width:960px){
  .nav-links,.nav-cta .btn{display:none}
  .hamburger{display:block}
  .nav-links.open{
    display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;
    background:rgba(42,26,14,.98);backdrop-filter:blur(8px);padding:22px 24px;gap:4px;
    box-shadow:0 12px 30px rgba(0,0,0,.4);
  }
  .nav-links.open a{padding:12px 4px;border-bottom:1px solid rgba(247,238,220,.09)}
  .about-grid,.contact-grid{grid-template-columns:1fr}
  .about-photo .ph,.ph-tall{min-height:320px}
  .why-grid{grid-template-columns:repeat(2,1fr)}
  .gallery-grid{grid-template-columns:repeat(3,1fr)}
  .zones-grid{grid-template-columns:1fr}
  .zone-facts{grid-template-columns:repeat(2,1fr)}
  .quotes-grid{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
  .foot-brand{grid-column:1/-1}
}
@media (max-width:620px){
  .svc-grid,.why-grid{grid-template-columns:1fr}
  .row2{grid-template-columns:1fr}
  .zone-facts{grid-template-columns:1fr}
  .gallery-grid{grid-template-columns:repeat(2,1fr)}
  .ph-gal{min-height:0}
  .ph-gal.g-wide{grid-column:span 2}
  .foot-grid{grid-template-columns:1fr}
  .hero{min-height:auto}
  .hero>.wrap{padding-top:108px;padding-bottom:44px;flex:0 0 auto}
  .strip-inner{padding-top:18px;padding-bottom:20px}
  .photo-stamp{right:8px}
  .wa-float{width:56px;height:56px}
}

/* ---------------------------------------------------------------- A11Y ------ */
@media (prefers-reduced-motion:reduce){
  *{animation:none !important;scroll-behavior:auto !important;transition:none !important}
  .reveal{opacity:1;transform:none}
}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:4px}
