/* Villa Giolai — estate site */

:root{
  --bg: #f3efe6;
  --bg-deep: #15241c;
  --ink: #1a1c18;
  --mute: #5c645c;
  --line: rgba(26,28,24,.12);
  --gold: #c9a66b;
  --gold-soft: #e2c89a;
  --forest: #1f3a2c;
  --display: "Newsreader", Georgia, serif;
  --sans: "Figtree", system-ui, sans-serif;
  --max: 1180px;
  --ease: cubic-bezier(.2,.8,.2,1);

  /* GDPR banner — palette Villa Giolai */
  --gdpr-accent: var(--gold);
  --gdpr-accent-2: var(--gold-soft);
  --gdpr-btn-ink: #15241c;
  --gdpr-glass: rgba(12, 20, 16, .8);
}

*,*::before,*::after{ box-sizing:border-box; }
html{
  scroll-behavior:smooth;
  overflow-x:hidden;
  overflow-x:clip;
  overscroll-behavior-x:none;
  max-width:100%;
}
body{
  margin:0;
  font-family:var(--sans);
  color:var(--ink);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  overflow-x:clip;
  overscroll-behavior-x:none;
  max-width:100%;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button,input,textarea{ font:inherit; }
button{ cursor:pointer; border:0; background:none; color:inherit; }
.wrap{ width:min(var(--max), calc(100% - 2.5rem)); margin-inline:auto; }
.eyebrow{
  margin:0 0 .8rem; font-size:.75rem; letter-spacing:.18em; text-transform:uppercase;
  font-weight:600; color:var(--gold-soft);
}
.eyebrow--dark{ color:color-mix(in srgb, var(--forest) 70%, #6b5a3a); }

.btn{
  display:inline-flex; align-items:center; gap:.55rem;
  padding:.9rem 1.25rem; border-radius:999px; font-weight:600; font-size:.92rem;
  transition:transform .3s var(--ease), background .3s, color .3s;
}
.btn:hover{ transform:translateY(-2px); }
.btn--gold{ background:var(--gold); color:#1a1c18; }
.btn--gold:hover{ background:var(--gold-soft); }
.btn--ghost{ border:1px solid rgba(255,255,255,.45); color:#fff; }
.btn--ghost:hover{ background:rgba(255,255,255,.1); }
.btn--dark{ background:var(--bg-deep); color:#fff; }
.btn--with-logo{ gap:12px; }
.btn__logo{ height:22px; width:auto; object-fit:contain; filter:brightness(0) invert(1); }

/* —— Nav —— */
.nav{
  position:fixed; inset:0 0 auto; z-index:60;
  display:flex; justify-content:space-between; align-items:center;
  padding:.9rem 1.4rem;
  color:#fff;
  transition:background .3s, box-shadow .3s, color .3s;
}
.nav.is-solid{
  background:rgba(243,239,230,.94);
  backdrop-filter:blur(14px);
  color:var(--ink);
  box-shadow:0 8px 28px rgba(21,36,28,.08);
}
.nav__logo{ height:52px; width:auto; }
.nav__logo--dark{ display:none; }
.nav.is-solid .nav__logo--light{ display:none; }
.nav.is-solid .nav__logo--dark{ display:block; }
.nav__links{ display:flex; align-items:center; gap:1.25rem; font-size:.9rem; font-weight:500; }
.nav__links a{
  position:relative;
  display:inline-flex; align-items:center; gap:.45rem;
  opacity:.92; transition:color .25s, opacity .25s, transform .25s;
}
.nav__links a i{ font-size:.78rem; color:var(--gold); opacity:.9; }
.nav.is-solid .nav__links a i{ color:var(--forest); }
.nav.is-solid .nav__links a:not(.nav__cta){
  color:var(--ink);
  text-shadow:0 1px 0 rgba(255,255,255,.9), 0 1px 3px rgba(21,36,28,.12);
}
.nav__links a:not(.nav__cta)::after{
  content:""; position:absolute; left:0; bottom:-.35rem;
  width:100%; height:2px; background:var(--gold);
  transform:scaleX(0); transform-origin:left; transition:transform .35s var(--ease);
}
.nav__links a:not(.nav__cta):hover{ opacity:1; color:var(--gold); transform:translateY(-1px); }
.nav.is-solid .nav__links a:not(.nav__cta):hover{ color:var(--forest); }
.nav.is-solid .nav__links a:not(.nav__cta)::after{ background:var(--forest); }
.nav__links a:not(.nav__cta):hover::after{ transform:scaleX(1); }
.nav__cta{
  padding:.6rem 1.05rem; border-radius:999px;
  background:var(--gold); color:#1a1c18 !important; font-weight:600;
}
.nav__cta i{ color:#1a1c18 !important; }
.nav__cta:hover{ background:var(--gold-soft); }
.nav__menu{
  display:none; width:44px; height:44px; place-items:center; position:relative;
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2);
  border-radius:50%; color:#fff; cursor:pointer;
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  transition:background .3s, border-color .3s, color .3s;
}
.nav__menu span{
  position:absolute; left:12px; right:12px; height:2px; background:currentColor; border-radius:2px;
  transition:transform .35s var(--ease), opacity .25s, top .35s;
}
.nav__menu span:nth-child(1){ top:15px; }
.nav__menu span:nth-child(2){ top:21px; }
.nav__menu span:nth-child(3){ top:27px; }
.nav__menu.is-active span:nth-child(1){ top:21px; transform:rotate(45deg); }
.nav__menu.is-active span:nth-child(2){ opacity:0; transform:scaleX(0); }
.nav__menu.is-active span:nth-child(3){ top:21px; transform:rotate(-45deg); }
.nav.is-solid .nav__menu{
  color:var(--ink); background:rgba(21,36,28,.06); border-color:rgba(21,36,28,.12);
}
body.is-nav-open .nav .nav__menu{
  color:#fff; background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.22);
}
body.is-nav-open{ overflow:hidden; touch-action:none; }

.drawer{
  position:fixed;
  top:var(--vv-top, 0px); left:0; right:0; bottom:auto;
  width:100%; height:var(--vv-height, 100svh);
  z-index:120;
  pointer-events:none; visibility:hidden;
  overflow:hidden;
}
.drawer.open{ pointer-events:auto; visibility:visible; }
.drawer__backdrop{
  position:absolute; inset:0; background:rgba(8,12,10,.5);
  opacity:0; transition:opacity .4s var(--ease);
  backdrop-filter:blur(2px); -webkit-backdrop-filter:blur(2px);
}
.drawer.open .drawer__backdrop{ opacity:1; }
.drawer__sheet{
  position:absolute; top:0; right:0; bottom:0; width:min(100%, 400px);
  display:flex; flex-direction:column;
  background:
    radial-gradient(120% 80% at 100% 0%, rgba(201,166,107,.2), transparent 55%),
    linear-gradient(165deg, #15241c 0%, #0c1410 60%, #101c16 100%);
  color:#f3efe6; box-shadow:-24px 0 60px rgba(0,0,0,.35);
  transform:translateX(104%); transition:transform .45s cubic-bezier(.2,.8,.2,1);
  padding:
    max(12px, env(safe-area-inset-top, 0px))
    max(20px, env(safe-area-inset-right, 0px))
    max(28px, calc(20px + env(safe-area-inset-bottom, 0px)))
    20px;
  height:100%; box-sizing:border-box;
}
.drawer.open .drawer__sheet{ transform:translateX(0); }
.drawer__head{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:8px 4px 18px; border-bottom:1px solid rgba(243,239,230,.1); flex:none;
}
.drawer__logo{ height:40px; width:auto; }
.drawer__close{
  width:46px; height:46px; border-radius:50%; border:1.5px solid rgba(255,255,255,.45);
  background:rgba(255,255,255,.14); color:#fff; position:relative; flex:none;
  display:grid; place-items:center; z-index:2; flex-shrink:0;
  box-shadow:0 4px 18px rgba(0,0,0,.25);
  transition:background .3s, transform .3s, border-color .3s;
}
.drawer__close span{
  position:absolute; left:13px; right:13px; top:50%; height:2.5px; background:#fff; border-radius:2px;
  pointer-events:none;
}
.drawer__close span:first-child{ transform:translateY(-50%) rotate(45deg); }
.drawer__close span:last-child{ transform:translateY(-50%) rotate(-45deg); }
.drawer__close:hover,
.drawer__close:focus-visible{ background:rgba(255,255,255,.22); border-color:rgba(255,255,255,.7); transform:rotate(90deg); }
body.is-nav-open .nav{
  z-index:130;
  background:transparent !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}
body.is-nav-open .nav .nav__logo,
body.is-nav-open .nav .nav__cta,
body.is-nav-open .nav .nav__links{ opacity:0; pointer-events:none; }
body.is-nav-open .nav .nav__menu{
  color:#fff !important;
  background:rgba(12,20,16,.72) !important;
  border-color:rgba(255,255,255,.65) !important;
  box-shadow:0 6px 22px rgba(0,0,0,.35);
  pointer-events:auto;
}
.drawer__nav{
  flex:1; overflow-y:auto; overscroll-behavior:contain;
  display:flex; flex-direction:column; gap:4px; padding:18px 0 12px;
}
.drawer__nav a{
  display:flex; align-items:center; gap:14px; padding:14px 12px; border-radius:14px;
  font-family:var(--display); font-size:clamp(1.4rem,5.5vw,1.85rem); font-weight:500;
  color:rgba(243,239,230,.92); border:1px solid transparent;
  transition:background .3s, border-color .3s, color .3s;
}
.drawer__nav a i{ width:1.6rem; text-align:center; font-size:.55em; color:var(--gold); opacity:.9; }
.drawer__nav a:hover,.drawer__nav a:focus-visible{
  background:rgba(255,255,255,.06); border-color:rgba(243,239,230,.1); color:#fff; outline:none;
}
.drawer__foot{
  flex:none; flex-shrink:0;
  padding:14px 0 max(10px, env(safe-area-inset-bottom, 0px));
  border-top:1px solid rgba(243,239,230,.1);
  display:flex; flex-direction:column; gap:12px;
  position:relative; z-index:2;
}
.drawer__cta{
  display:flex; align-items:center; justify-content:center;
  padding:15px 18px; border-radius:999px; background:var(--gold); color:#1a1c18;
  font-weight:700; font-size:.95rem; transition:transform .3s, background .3s;
}
.drawer__cta:hover{ transform:translateY(-2px); background:var(--gold-soft); }
.drawer__contacts{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.drawer__contacts a{
  display:flex; align-items:center; justify-content:center; gap:8px;
  padding:12px 10px; border-radius:12px; background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.1); font-size:.82rem; font-weight:600; color:rgba(243,239,230,.85);
}
.drawer__contacts a i{ color:var(--gold); }
.drawer__contacts a:hover{ background:rgba(255,255,255,.1); color:#fff; }

/* —— Hero: Ken Burns cinematic crossfade —— */
.hero{
  position:relative; min-height:100svh;
  display:grid; align-content:end;
  color:#fff; overflow:hidden;
  background:#0c1410;
}
.kb{ position:absolute; inset:0; z-index:0; }
.kb__slide{
  position:absolute; inset:0;
  opacity:0; transition:opacity 1.4s ease;
  overflow:hidden;
}
.kb__slide.is-active{ opacity:1; z-index:1; }
.kb__slide img{
  width:100%; height:100%; object-fit:cover;
  transform:scale(1.08);
  will-change:transform;
}
.kb__slide.is-active img{ animation:kb-pan 9s ease-in-out forwards; }
.kb__slide[data-kb="in-tl"].is-active img{ animation-name:kb-in-tl; }
.kb__slide[data-kb="in-tr"].is-active img{ animation-name:kb-in-tr; }
.kb__slide[data-kb="in-bl"].is-active img{ animation-name:kb-in-bl; }
.kb__slide[data-kb="in-br"].is-active img{ animation-name:kb-in-br; }
.kb__slide[data-kb="out-tl"].is-active img{ animation-name:kb-out-tl; }
.kb__slide[data-kb="out-tr"].is-active img{ animation-name:kb-out-tr; }
.kb__slide[data-kb="out-bl"].is-active img{ animation-name:kb-out-bl; }
.kb__slide[data-kb="out-br"].is-active img{ animation-name:kb-out-br; }
@keyframes kb-in-tl{
  from{ transform:scale(1.08) translate(2%, 2%); }
  to{ transform:scale(1.2) translate(-2.5%, -2.5%); }
}
@keyframes kb-in-tr{
  from{ transform:scale(1.1) translate(-2%, 2%); }
  to{ transform:scale(1.22) translate(2.5%, -2%); }
}
@keyframes kb-in-bl{
  from{ transform:scale(1.08) translate(2%, -2%); }
  to{ transform:scale(1.2) translate(-2%, 2.5%); }
}
@keyframes kb-in-br{
  from{ transform:scale(1.1) translate(-2%, -2%); }
  to{ transform:scale(1.22) translate(2%, 2%); }
}
@keyframes kb-out-tl{
  from{ transform:scale(1.2) translate(-1%, -1%); }
  to{ transform:scale(1.08) translate(2%, 2%); }
}
@keyframes kb-out-tr{
  from{ transform:scale(1.22) translate(1%, -1%); }
  to{ transform:scale(1.1) translate(-2%, 2%); }
}
@keyframes kb-out-bl{
  from{ transform:scale(1.2) translate(-1%, 1%); }
  to{ transform:scale(1.08) translate(2%, -2%); }
}
@keyframes kb-out-br{
  from{ transform:scale(1.22) translate(1%, 1%); }
  to{ transform:scale(1.1) translate(-2%, -2%); }
}
@keyframes kb-pan{
  from{ transform:scale(1.08); }
  to{ transform:scale(1.18); }
}
.kb__dots{
  display:flex; gap:.4rem; margin-left:auto; align-items:center;
}
.kb__dots button{
  width:7px; height:7px; border-radius:50%;
  background:rgba(255,255,255,.35); padding:0;
  transition:background .3s, transform .3s;
}
.kb__dots button.is-on{
  background:var(--gold); transform:scale(1.25);
}
.hero__veil{
  position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(180deg, rgba(12,18,14,.4) 0%, rgba(12,18,14,.15) 38%, rgba(12,18,14,.9) 100%),
    linear-gradient(90deg, rgba(12,18,14,.45) 0%, transparent 55%);
}
.hero__content{
  position:relative; z-index:2;
  width:min(var(--max), calc(100% - 2.5rem));
  margin:0 auto;
  padding:0 0 clamp(2rem,5vw,3.2rem);
}
.hero h1{
  margin:0 0 .7rem;
  font-family:var(--display); font-weight:500;
  font-size:clamp(3.2rem,8vw,6.4rem); line-height:.92; letter-spacing:-.02em;
}
.hero__lead{
  margin:0 0 1.5rem; max-width:28ch;
  font-family:var(--display); font-style:italic; font-weight:400;
  font-size:clamp(1.15rem,2.2vw,1.55rem); color:rgba(255,255,255,.9);
}
.hero__actions{ display:flex; flex-wrap:wrap; gap:.7rem; }
.hero__meta{
  position:relative; z-index:2;
  display:flex; flex-wrap:wrap; align-items:center; gap:1rem 1.8rem;
  width:min(var(--max), calc(100% - 2.5rem));
  margin:0 auto 1.3rem;
  font-size:.82rem; letter-spacing:.06em; text-transform:uppercase;
  color:rgba(255,255,255,.65); font-weight:600;
}
.hero__meta i{ color:var(--gold); margin-right:.35rem; }
.visually-hidden{
  position:absolute !important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* —— Ticker (seamless dual-track) —— */
.ticker{
  --gap: clamp(1.75rem, 3vw, 2.75rem);
  --duration: 32s;
  background:var(--bg-deep); color:var(--gold-soft);
  border-block:1px solid rgba(255,255,255,.08);
  overflow:hidden;
  padding:.95rem 0;
  display:flex;
  gap:var(--gap);
  user-select:none;
}
.ticker__group{
  flex-shrink:0;
  display:flex;
  align-items:center;
  justify-content:space-around;
  gap:var(--gap);
  min-width:100%;
  font-size:.85rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  animation:marquee-scroll var(--duration) linear infinite;
  will-change:transform;
}
.ticker__group span{
  white-space:nowrap;
  display:inline-flex;
  align-items:center;
  gap:var(--gap);
}
.ticker__group span::after{
  content:"";
  width:5px; height:5px; border-radius:50%;
  background:rgba(226,200,154,.45);
  flex:none;
}
.ticker:hover .ticker__group{ animation-play-state:paused; }
@keyframes marquee-scroll{
  from{ transform:translate3d(0,0,0); }
  to{ transform:translate3d(calc(-100% - var(--gap)),0,0); }
}

/* —— About —— */
.about{ padding:clamp(3.5rem,8vw,6rem) 0 clamp(2rem,4vw,3rem); }
.about__grid{
  display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(1.4rem,3vw,3rem);
  align-items:end; margin-bottom:2.5rem;
}
.about h2{
  margin:0; font-family:var(--display); font-weight:500;
  font-size:clamp(2.3rem,4.8vw,3.7rem); line-height:1.05;
  letter-spacing:-.01em; max-width:16ch; color:var(--ink, #1a2420);
}
.about h2 em{
  display:inline-block;
  font-style:italic;
  font-weight:400;
  background:linear-gradient(120deg, #8a6b3a, #c9a66b 55%, #6b5a3a);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.about__copy p{
  margin:0 0 1.05rem; color:var(--mute); line-height:1.7;
  font-size:clamp(1.02rem,1.35vw,1.1rem); max-width:50ch;
}
.about__copy p:last-child{ margin-bottom:0; }
.about__copy-soft{
  color:color-mix(in srgb, var(--mute) 88%, transparent) !important;
  font-size:clamp(.98rem,1.2vw,1.05rem) !important;
  line-height:1.65 !important;
}
.about__copy strong{
  color:var(--forest, #1f3d32);
  font-weight:600;
  background:linear-gradient(180deg, transparent 62%, rgba(201,166,107,.35) 62%);
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
}
.about__strip{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1rem;
  padding:1.6rem 0; border-block:1px solid var(--line);
}
.about__strip strong{
  display:block; font-family:var(--display); font-size:clamp(1.8rem,3vw,2.4rem);
  font-weight:500; color:var(--forest);
}
.about__strip span{ font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:var(--mute); font-weight:600; }

/* —— Park homes —— */
.park-homes{ padding:clamp(3rem,7vw,5rem) 0; }
.section-head{ margin-bottom:2rem; }
.section-head--row{
  display:flex; justify-content:space-between; align-items:end; gap:1.5rem; flex-wrap:wrap;
}
.section-head h2{
  margin:0; font-family:var(--display); font-weight:500;
  font-size:clamp(2.2rem,4.5vw,3.5rem); line-height:1.05;
}
.section-head__lead{ margin:.7rem 0 0; color:var(--mute); max-width:52ch; line-height:1.55; font-size:1.02rem; }
.park-homes__grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem;
}
.phome{
  position:relative; display:flex; flex-direction:column;
  border-radius:20px; overflow:hidden;
  background:#fff; border:1px solid var(--line);
  transition:transform .35s var(--ease), box-shadow .35s;
}
.phome:hover{
  transform:translateY(-4px);
  box-shadow:0 22px 48px color-mix(in srgb, var(--c,#15241c) 22%, transparent);
}
.phome__media{ aspect-ratio:4/3; overflow:hidden; }
.phome__media img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .8s var(--ease);
}
.phome:hover .phome__media img{ transform:scale(1.08); }
.phome__body{
  padding:1.15rem 1.2rem 1.25rem;
  display:flex; flex-direction:column; gap:.55rem;
  background:
    radial-gradient(ellipse 90% 120% at 100% 100%, color-mix(in srgb, var(--c) 22%, transparent), transparent 70%),
    #fff;
}
.phome__logo{ height:42px; width:auto; max-width:180px; object-fit:contain; object-position:left center; }
.phome__meta{
  font-size:.78rem; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--mute);
}
.phome__go{
  display:inline-flex; align-items:center; gap:.4rem;
  margin-top:.2rem; font-weight:600; color:var(--c);
}

/* —— Services —— */
.services{ padding:clamp(2.5rem,6vw,4.5rem) 0 clamp(3rem,7vw,5.5rem); }
.services .svc{ margin-bottom:1.3rem; }
.svc{
  display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
  background:#fff; border:1px solid var(--line); border-radius:22px; overflow:hidden;
  transition:transform .35s var(--ease), box-shadow .35s;
}
.svc:hover{ transform:translateY(-3px); box-shadow:0 22px 50px rgba(21,36,28,.1); }
.svc--flip{ grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); }
.svc--flip .svc__media{ order:2; }
.svc__media{
  position:relative; overflow:hidden;
  min-height:280px; aspect-ratio:4/3;
}
.svc__media picture,
.svc__media > img:not(.svc__cbg-logo),
.svc__media video{
  position:absolute; inset:0; width:100%; height:100%;
  display:block;
}
.svc__media picture img,
.svc__media > img:not(.svc__cbg-logo),
.svc__media video{
  width:100%; height:100%; object-fit:cover; object-position:center;
  min-height:0;
  transition:transform 1s var(--ease);
}
.svc:hover .svc__media picture img,
.svc:hover .svc__media > img:not(.svc__cbg-logo){ transform:scale(1.05); }
.svc__media--video{ background:#0b1220; }
.svc--cbg .svc__media{
  aspect-ratio:auto;
  min-height:320px;
  align-self:stretch;
}
.svc__media .svc__cbg-logo{
  position:absolute;
  top:1rem; right:1rem; left:auto; bottom:auto;
  z-index:3;
  width:auto; height:36px; max-width:min(200px, 42%);
  object-fit:contain;
  object-position:center;
  padding:.45rem .7rem;
  border-radius:10px;
  background:rgba(255,255,255,.94);
  box-shadow:0 8px 22px rgba(0,0,0,.22);
  pointer-events:none;
}
.svc__body{ padding:clamp(1.6rem,4vw,2.6rem); display:flex; flex-direction:column; justify-content:center; }
.svc__kicker{
  margin:0 0 .5rem; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--gold); font-weight:700;
}
.svc h3{
  margin:0 0 .8rem; font-family:var(--display); font-weight:500;
  font-size:clamp(1.7rem,3vw,2.3rem); line-height:1.05;
}
.svc p{ margin:0 0 1.2rem; color:var(--mute); line-height:1.65; max-width:42ch; }
.svc__links{ display:flex; flex-wrap:wrap; gap:.7rem 1.1rem; }
.svc__links a{
  font-weight:600; color:var(--forest);
  border-bottom:1px solid color-mix(in srgb, var(--forest) 35%, transparent);
  padding-bottom:2px;
}
.svc__links a:hover{ color:var(--gold); border-color:var(--gold); }
.cbg-shots{
  display:grid; grid-template-columns:1fr 1fr; gap:.55rem;
  margin-top:1.3rem;
}
.cbg-shots img{
  width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:10px;
}

/* —— Park / gallery —— */
.park{
  padding:clamp(3rem,7vw,5rem) 0;
  background:var(--bg-deep); color:#f3efe6;
}
.park__intro{
  margin-bottom:clamp(2rem,4vw,2.8rem);
  display:grid;
  grid-template-columns:1.05fr 1fr;
  gap:clamp(1.4rem,3vw,3rem);
  align-items:end;
}
.park__intro-main h2{
  margin:0; font-family:var(--display); font-weight:500;
  font-size:clamp(2.3rem,4.8vw,3.7rem); line-height:1.05; color:#fff;
  letter-spacing:-.01em;
}
.park__intro-main h2 em{
  display:inline-block;
  font-style:italic;
  font-weight:400;
  background:linear-gradient(120deg, rgba(226,200,154,.98), rgba(243,239,230,.9));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.park__intro-aside{
  display:flex;
  flex-direction:column;
  gap:1rem;
  padding-bottom:.15rem;
}
.park__lead{
  margin:0;
  color:rgba(243,239,230,.78);
  max-width:46ch;
  line-height:1.65;
  font-size:clamp(1.02rem,1.35vw,1.12rem);
}
.park__lead--soft{
  color:rgba(243,239,230,.58);
  font-size:clamp(.95rem,1.2vw,1.02rem);
  line-height:1.6;
}
.park__lead strong{
  color:#fff;
  font-weight:600;
  background:linear-gradient(180deg, transparent 62%, rgba(226,200,154,.28) 62%);
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
}
.park__mosaic{
  display:grid; grid-template-columns:1.3fr 1fr; grid-template-rows:1fr 1fr;
  gap:4px; min-height:520px; margin-bottom:0;
}
.park__shot{ margin:0; overflow:hidden; }
.park__shot--lg{ grid-row:1 / -1; }
.park__shot img{
  width:100%; height:100%; object-fit:cover; min-height:240px;
  animation:kb-soft 18s ease-in-out infinite alternate;
}
.park__shot--lg img{ animation-duration:22s; }
.park__shot:nth-child(2) img{ animation-direction:alternate-reverse; animation-duration:16s; }
@keyframes kb-soft{
  0%{ transform:scale(1.06) translate(0,0); }
  100%{ transform:scale(1.18) translate(2.5%, -2%); }
}
/* Park marquee — modern seamless dual-track (Ryan Mulligan / CSS pattern) */
.marquee-band{
  --gap: clamp(1.75rem, 4vw, 3.25rem);
  --duration: 30s;
  overflow:hidden;
  padding:1.25rem 0;
  border-block:1px solid rgba(255,255,255,.08);
  margin:1.2rem 0;
  display:flex;
  gap:var(--gap);
  user-select:none;
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
  mask-image:linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}
.marquee-band__group{
  flex-shrink:0;
  display:flex;
  align-items:center;
  justify-content:space-around;
  gap:var(--gap);
  min-width:100%;
  font-family:var(--display);
  font-size:clamp(1.35rem, 2.8vw, 2rem);
  color:rgba(243,239,230,.72);
  font-style:italic;
  font-weight:400;
  letter-spacing:.01em;
  animation:marquee-scroll var(--duration) linear infinite;
  will-change:transform;
}
.marquee-band__group span{
  white-space:nowrap;
  display:inline-flex;
  align-items:center;
  gap:var(--gap);
}
.marquee-band__group span::after{
  content:"";
  width:6px; height:6px;
  border-radius:50%;
  background:var(--gold-soft, rgba(226,200,154,.7));
  box-shadow:0 0 0 1px rgba(226,200,154,.2);
  flex:none;
  opacity:.75;
}
.marquee-band:hover .marquee-band__group{ animation-play-state:paused; }
.gallery{ padding-top:0; width:100%; }
.gallery__grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:3px;
  width:100%;
}
.gallery__grid figure{ margin:0; overflow:hidden; aspect-ratio:4/3; }
.gallery__item{
  cursor:zoom-in;
  position:relative;
}
.gallery__item:focus-visible{
  outline:2px solid var(--gold, #c4a574);
  outline-offset:2px;
  z-index:1;
}
.gallery__grid img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .7s var(--ease);
}
.gallery__grid figure:hover img{ transform:scale(1.06); }

/* —— Spotlight / lightbox —— */
.lightbox{
  position:fixed; inset:0; z-index:500;
  background:rgba(10,14,12,.96);
  display:flex; align-items:center; justify-content:center; gap:16px;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .35s ease, visibility .35s ease;
  padding:0 80px;
}
.lightbox.is-open{
  opacity:1; visibility:visible; pointer-events:auto;
}
.lightbox[hidden]{ display:none !important; }
.lightbox.is-open[hidden]{ display:flex !important; }
.lightbox__stage{
  display:flex; flex-direction:column; align-items:center; gap:14px;
  max-width:min(1100px,80vw);
}
.lightbox img{
  max-height:78vh; max-width:min(1100px,80vw);
  border-radius:10px; object-fit:contain;
  box-shadow:0 40px 90px rgba(0,0,0,.5);
}
.lightbox p{
  color:#f3efe6; font-family:var(--display);
  font-style:italic; font-size:clamp(15px,1.6vw,18px); margin:0; text-align:center;
}
.lightbox__count{ color:rgba(243,239,230,.5); font-size:12px; letter-spacing:.08em; }
.lightbox__close{
  position:absolute; top:26px; right:26px;
  background:rgba(255,255,255,.06); backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.2); color:#fff;
  width:44px; height:44px; border-radius:50%; font-size:15px;
  display:grid; place-items:center; cursor:pointer;
  transition:background .3s, transform .3s;
}
.lightbox__close:hover{ background:var(--gold,#c4a574); transform:rotate(90deg); }
.lightbox__nav{
  background:rgba(255,255,255,.06); backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.2); color:#fff;
  width:52px; height:52px; min-width:52px; border-radius:50%; font-size:17px;
  display:grid; place-items:center; cursor:pointer; flex:none;
  transition:background .3s, transform .3s;
}
.lightbox__nav:hover{ background:var(--gold,#c4a574); transform:scale(1.08); }
body.is-lightbox-open{ overflow:hidden; }

/* —— Contact —— */
.contact{
  position:relative;
  overflow:hidden;
  padding:clamp(3.5rem,8vw,6rem) 0;
  background:#0f1914;
  color:#f3efe6;
}
.contact__bg{
  position:absolute; inset:0; z-index:0;
  pointer-events:none;
  overflow:hidden;
}
.contact__bg-video,
.contact__bg-poster{
  position:absolute; inset:0;
  width:100%; height:100%;
  border:0;
  object-fit:cover;
}
.contact__bg-video{
  z-index:0;
  background:#0f1914;
}
.contact__bg-poster{
  z-index:1;
  transition:opacity .8s ease;
}
.contact.is-playing .contact__bg-poster{ opacity:0; pointer-events:none; }
.contact__bg-veil{
  position:absolute; inset:0; z-index:2;
  background:
    linear-gradient(180deg, rgba(10,18,14,.28) 0%, rgba(10,18,14,.18) 42%, rgba(10,18,14,.38) 100%),
    linear-gradient(90deg, rgba(10,18,14,.32) 0%, rgba(10,18,14,.08) 55%, rgba(10,18,14,.22) 100%);
}
.contact__bg-veil::after{ display:none; }
.contact__grid{
  position:relative; z-index:3;
  display:grid; grid-template-columns:1fr 1.1fr; gap:2.5rem 3rem;
  align-items:start;
}
.contact__copy{
  --contact-shadow:
    0 1px 1px rgba(0,0,0,.85),
    0 2px 4px rgba(0,0,0,.7),
    0 8px 24px rgba(0,0,0,.55),
    0 16px 40px rgba(0,0,0,.4);
}
.contact__copy .eyebrow{
  text-shadow:var(--contact-shadow);
}
.contact h2{
  margin:0 0 .8rem; font-family:var(--display); font-weight:500;
  font-size:clamp(2.2rem,4.5vw,3.4rem); line-height:1.05; color:#fff;
  text-shadow:
    0 1px 1px rgba(0,0,0,.9),
    0 2px 6px rgba(0,0,0,.75),
    0 10px 28px rgba(0,0,0,.6),
    0 22px 50px rgba(0,0,0,.45);
}
.contact__copy > p{
  margin:0 0 1.4rem; color:#fff; line-height:1.65; max-width:36ch;
  text-shadow:var(--contact-shadow);
}
.contact__info{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.85rem; }
.contact__info li,
.contact__info a{
  color:#fff;
  text-shadow:var(--contact-shadow);
}
.contact__info li{
  display:flex; align-items:flex-start; gap:.7rem;
  line-height:1.45;
}
.contact__info i{
  color:var(--gold);
  margin-top:.2rem;
  filter:
    drop-shadow(0 1px 1px rgba(0,0,0,.85))
    drop-shadow(0 4px 12px rgba(0,0,0,.55));
}
.contact__info a:hover{ color:var(--gold-soft); }
.contact__form{
  background:rgba(15,25,20,.55);
  border:1px solid rgba(255,255,255,.14);
  border-radius:22px;
  padding:clamp(1.4rem,3vw,2rem);
  display:flex; flex-direction:column; gap:1rem;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.contact__form label{
  display:flex; flex-direction:column; gap:.4rem;
  font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; font-weight:600;
  color:rgba(243,239,230,.65);
}
.contact__form input,
.contact__form textarea{
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.08);
  color:#fff; border-radius:12px; padding:.85rem 1rem;
  text-transform:none; letter-spacing:0; font-size:1rem; font-weight:400;
}
.contact__form input:focus,
.contact__form textarea:focus{
  outline:2px solid color-mix(in srgb, var(--gold) 55%, transparent);
  border-color:transparent;
}
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.hp{
  position:absolute !important; left:0 !important; top:0 !important;
  width:1px !important; height:1px !important; margin:0 !important; padding:0 !important;
  overflow:hidden !important; clip:rect(0,0,0,0) !important; clip-path:inset(50%) !important;
  border:0 !important; opacity:0 !important; pointer-events:none !important;
}
.form-note{ margin:.2rem 0 0; min-height:1.2em; font-size:.9rem; color:var(--gold-soft); }
.contact__form .btn{ align-self:flex-start; }

/* —— Footer —— */
.foot{
  position:relative; overflow:hidden;
  background:
    linear-gradient(180deg, #101c16 0%, #0a120e 55%, #070d0a 100%);
  color:rgba(243,239,230,.72);
  padding:clamp(3.2rem,6vw,5rem) 0 1.35rem;
  isolation:isolate;
}
.foot__atmosphere{ position:absolute; inset:0; pointer-events:none; z-index:0; }
.foot__orb{
  position:absolute; border-radius:50%; filter:blur(60px); opacity:.55;
  animation:footOrb 18s ease-in-out infinite alternate;
}
.foot__orb--a{
  width:min(52vw,420px); height:min(52vw,420px);
  left:-12%; top:-20%;
  background:radial-gradient(circle, rgba(201,166,107,.28), transparent 68%);
}
.foot__orb--b{
  width:min(48vw,380px); height:min(48vw,380px);
  right:-10%; bottom:-18%;
  background:radial-gradient(circle, rgba(61,120,88,.35), transparent 70%);
  animation-delay:-7s;
}
.foot__grain{
  position:absolute; inset:0; opacity:.07;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:180px;
  mix-blend-mode:soft-light;
}
@keyframes footOrb{
  from{ transform:translate3d(0,0,0) scale(1); }
  to{ transform:translate3d(3%,2%,0) scale(1.08); }
}

.foot__inner{
  position:relative; z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(0,.7fr) minmax(0,1.25fr);
  gap:clamp(2rem,4vw,3.5rem);
  padding-bottom:clamp(2rem,4vw,2.8rem);
  border-bottom:1px solid rgba(243,239,230,.1);
}
.foot__brand{ max-width:36ch; }
.foot__brand-link{ display:inline-block; transition:transform .35s var(--ease), opacity .35s; }
.foot__brand-link:hover{ transform:translateY(-2px); opacity:.92; }
.foot__logo{ height:56px; width:auto; margin-bottom:1.1rem; filter:drop-shadow(0 8px 24px rgba(0,0,0,.35)); }
.foot__lead{
  margin:0 0 1.25rem;
  font-family:var(--display); font-style:italic; font-weight:400;
  font-size:1.12rem; line-height:1.45; color:rgba(243,239,230,.88);
}
.foot__address{
  display:flex; flex-direction:column; gap:.55rem;
  margin:0 0 1.35rem; font-style:normal; font-size:.92rem; line-height:1.45;
}
.foot__address span,
.foot__address a{
  display:inline-flex; align-items:flex-start; gap:.65rem;
  color:rgba(243,239,230,.7); transition:color .25s;
}
.foot__address i{ color:var(--gold); margin-top:.2rem; font-size:.85rem; width:1em; text-align:center; }
.foot__address a:hover{ color:var(--gold-soft); }

.foot__cta{ display:flex; flex-wrap:wrap; gap:.65rem; }
.foot__pill{
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.7rem 1.05rem; border-radius:999px;
  background:linear-gradient(135deg, #25d366, #1da851);
  color:#fff; font-size:.86rem; font-weight:600;
  box-shadow:0 10px 28px rgba(37,211,102,.28);
  transition:transform .3s var(--ease), box-shadow .3s;
}
.foot__pill:hover{ transform:translateY(-2px); box-shadow:0 14px 32px rgba(37,211,102,.4); }
.foot__pill--ghost{
  background:transparent; color:rgba(243,239,230,.9);
  border:1px solid rgba(243,239,230,.22);
  box-shadow:none;
}
.foot__pill--ghost:hover{
  border-color:var(--gold); color:var(--gold-soft);
  background:rgba(201,166,107,.08); box-shadow:none;
}

.foot__col h4{
  margin:0 0 1rem;
  font-size:.72rem; letter-spacing:.16em; text-transform:uppercase;
  font-weight:650; color:rgba(243,239,230,.95);
}
.foot__list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.15rem; }
.foot__list a{
  display:inline-flex; align-items:center; gap:.4rem;
  padding:.35rem 0; font-size:.98rem; color:rgba(243,239,230,.68);
  transition:color .25s, transform .25s var(--ease);
}
.foot__list a::before{
  content:""; width:0; height:1px; background:var(--gold);
  transition:width .3s var(--ease);
}
.foot__list a:hover{ color:var(--gold-soft); transform:translateX(2px); }
.foot__list a:hover::before{ width:.7rem; }

.foot__hub{
  display:flex; align-items:center; gap:.85rem;
  margin-bottom:1rem; padding:.85rem 1rem;
  border-radius:14px;
  background:linear-gradient(120deg, rgba(201,166,107,.18), rgba(255,255,255,.04));
  border:1px solid rgba(201,166,107,.28);
  transition:transform .3s var(--ease), background .3s, border-color .3s;
}
.foot__hub img{
  height:28px; width:auto; object-fit:contain; flex:none;
  filter:brightness(0) invert(1);
}
.foot__hub span{
  display:inline-flex; align-items:center; gap:.45rem;
  font-weight:600; font-size:.95rem; color:#fff;
}
.foot__hub i{ font-size:.75rem; transition:transform .3s var(--ease); }
.foot__hub:hover{
  transform:translateY(-2px);
  border-color:rgba(201,166,107,.55);
  background:linear-gradient(120deg, rgba(201,166,107,.28), rgba(255,255,255,.06));
}
.foot__hub:hover i{ transform:translateX(4px); }

.foot__houses{
  display:flex; flex-wrap:wrap; gap:.55rem;
  margin-bottom:1.1rem;
}
.foot__houses a{
  display:inline-flex; align-items:center; gap:.55rem;
  padding:.55rem .75rem; border-radius:999px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(243,239,230,.1);
  font-size:.82rem; font-weight:550; color:rgba(243,239,230,.82);
  transition:transform .25s var(--ease), background .25s, border-color .25s, color .25s;
}
.foot__houses a img{ height:18px; width:auto; object-fit:contain; flex:none; }
.foot__houses a:hover{
  transform:translateY(-2px);
  background:rgba(255,255,255,.08);
  border-color:rgba(201,166,107,.35);
  color:#fff;
}

.foot__bar{
  position:relative; z-index:1;
  display:flex; justify-content:space-between; align-items:center;
  gap:1rem; flex-wrap:wrap;
  padding-top:1.15rem;
  font-size:.78rem; color:rgba(243,239,230,.48);
}
.foot__credit{ color:inherit; transition:color .25s; }
.foot__credit:hover{ color:var(--gold-soft); }

.wa{
  position:fixed;
  right:max(1rem, env(safe-area-inset-right, 0px));
  bottom:calc(
    max(1rem, env(safe-area-inset-bottom, 0px))
    + var(--vv-bottom-inset, 0px)
  );
  z-index:30;
  width:56px; height:56px; border-radius:50%;
  background:#25d366; color:#fff;
  display:grid; place-items:center; font-size:1.55rem;
  box-shadow:0 12px 30px rgba(37,211,102,.35);
  transition:transform .3s var(--ease), bottom .2s ease;
}
.wa:hover{ transform:scale(1.06); }

@media (prefers-reduced-motion:reduce){
  .kb__slide img, .ticker__group, .marquee-band__group, .park__shot img, .foot__orb{
    animation:none !important;
  }
  .kb__slide{ transition:none; }
  .ticker, .marquee-band{
    -webkit-mask-image:none;
    mask-image:none;
    overflow-x:auto;
  }
}

@media (max-width:980px){
  .nav__links{ display:none; }
  .nav__menu{ display:grid; }
  .about__grid, .svc, .svc:nth-child(even of .svc), .contact__grid, .park-homes__grid{
    grid-template-columns:1fr;
  }
  .foot__inner{ grid-template-columns:1fr 1fr; }
  .foot__brand{ grid-column:1 / -1; max-width:48ch; }
  .svc:nth-child(even of .svc) .svc__media{ order:0; }
  .about__strip{ grid-template-columns:1fr 1fr; gap:1.2rem; }
  .park__intro{ grid-template-columns:1fr; align-items:start; }
  .park__intro-aside{ max-width:54ch; }
  .park__mosaic{ grid-template-columns:1fr 1fr; min-height:0; }
  .park__shot--lg{ grid-column:1 / -1; grid-row:auto; min-height:280px; }
  .gallery__grid{ grid-template-columns:1fr 1fr; }
  .kb__dots{ width:100%; margin-left:0; margin-top:.35rem; }
  .lightbox{ padding:0 16px; gap:10px; }
  .lightbox__nav{ width:42px; height:42px; min-width:42px; font-size:14px; }
}
@media (max-width:560px){
  .field-row{ grid-template-columns:1fr; }
  .hero__actions .btn{ width:100%; justify-content:center; }
  .foot__inner{ grid-template-columns:1fr; }
  .foot__brand{ grid-column:auto; }
  .foot__cta{ width:100%; }
  .foot__pill{ flex:1; justify-content:center; }
  .lightbox__nav--prev{ position:absolute; left:10px; bottom:22px; }
  .lightbox__nav--next{ position:absolute; right:10px; bottom:22px; }
}


.foot__bar{ display:flex; flex-wrap:wrap; gap:12px 20px; align-items:center; justify-content:space-between; }
.foot__legal{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; font-size:.85rem; }
.foot__legal a, .foot__legal-btn{
  color:inherit; opacity:.85; text-decoration:underline; text-underline-offset:2px;
  background:none; border:0; padding:0; font:inherit; cursor:pointer;
}
.foot__legal a:hover, .foot__legal-btn:hover{ opacity:1; }
