/* ═══════════════════════════════════════════════════════════════
   VENUEMATE — DESIGN SYSTEM
   ═══════════════════════════════════════════════════════════════ */

:root{
  --ivory:#F7F3EC;
  --paper:#FFFFFF;
  --beige:#EDE6DA;
  --ink:#1A1714;
  --ink-2:#5A5149;
  --ink-3:#8A8078;
  --gold:#A98442;
  --wine:#5E1F23;
  --line:#E2D9CB;
  --line-2:rgba(255,255,255,.18);

  --s1:8px;
  --s2:16px;
  --s3:24px;
  --s4:32px;
  --s5:48px;
  --s6:64px;
  --s7:80px;
  --s8:96px;

  --container:1280px;
  --gutter:40px;
  --col-gap:24px;
  --sec-y:clamp(64px,7.5vw,112px);

  /* Header height */
  --nav-h:76px;

  --t-display:clamp(42px,5.2vw,68px);
  --t-h1:clamp(34px,4vw,52px);
  --t-h2:clamp(28px,3.1vw,40px);
  --t-h3:clamp(20px,1.6vw,26px);
  --t-h4:18px;
  --t-body:17px;
  --t-sm:15px;
  --t-label:12px;

  --r-card:14px;
  --r-input:10px;
  --r-pill:999px;

  --sh-1:
    0 1px 2px rgba(26,23,20,.04),
    0 8px 24px -16px rgba(26,23,20,.18);

  --sh-2:
    0 2px 6px rgba(26,23,20,.05),
    0 24px 48px -28px rgba(26,23,20,.30);

  --fd:"Cormorant Garamond",Georgia,serif;
  --fb:"Manrope",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;

  --ease:cubic-bezier(.22,1,.36,1);
}


/* ═══════════════════════════════════════════════════════════════
   RESET
   ═══════════════════════════════════════════════════════════════ */

*,
*::before,
*::after{
  box-sizing:border-box;
}

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
}

body{
  margin:0;
  background:var(--ivory);
  color:var(--ink);
  font:400 var(--t-body)/1.65 var(--fb);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

body.lock{
  overflow:hidden;
}

img{
  display:block;
  max-width:100%;
}

button,
input,
select,
textarea{
  font:inherit;
  color:inherit;
}

a{
  color:inherit;
  text-decoration:none;
}

h1,
h2,
h3,
h4{
  margin:0;
  font-weight:500;
  line-height:1.12;
  letter-spacing:-.015em;
}

p{
  margin:0;
}

:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:3px;
  border-radius:4px;
}

::selection{
  background:var(--beige);
}

@media (prefers-reduced-motion:reduce){
  *,
  *::before,
  *::after{
    animation-duration:.001ms!important;
    transition-duration:.001ms!important;
  }

  html{
    scroll-behavior:auto;
  }
}


/* ═══════════════════════════════════════════════════════════════
   GRAIN
   ═══════════════════════════════════════════════════════════════ */

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


/* ═══════════════════════════════════════════════════════════════
   TYPOGRAPHY
   ═══════════════════════════════════════════════════════════════ */

.display{
  font-family:var(--fd);
  font-size:var(--t-display);
  line-height:1.04;
  font-weight:500;
}

.h1{
  font-family:var(--fd);
  font-size:var(--t-h1);
  line-height:1.08;
  font-weight:500;
}

.h2{
  font-family:var(--fd);
  font-size:var(--t-h2);
  line-height:1.12;
  font-weight:500;
}

.h3{
  font-family:var(--fd);
  font-size:var(--t-h3);
  line-height:1.22;
  font-weight:500;
}

.h4{
  font-family:var(--fb);
  font-size:var(--t-h4);
  line-height:1.35;
  font-weight:700;
  letter-spacing:-.005em;
}

.body{
  font-size:var(--t-body);
  line-height:1.7;
  color:var(--ink-2);
}

.sm{
  font-size:var(--t-sm);
  line-height:1.6;
  color:var(--ink-2);
}

.meta{
  font-size:14px;
  line-height:1.5;
  color:var(--ink-3);
}

.label{
  display:block;
  font-size:var(--t-label);
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--gold);
}

.serif-em{
  font-style:italic;
  font-weight:400;
}


/* ═══════════════════════════════════════════════════════════════
   CONTAINER + GRID
   ═══════════════════════════════════════════════════════════════ */

.container{
  width:100%;
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:var(--gutter);
}

.grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:var(--col-gap);
}

.section{
  padding-block:var(--sec-y);
}

.section--tight{
  padding-block:calc(var(--sec-y) * .7);
}

.band{
  background:var(--paper);
}

.band-beige{
  background:var(--beige);
}

.band-ink{
  background:var(--ink);
  color:var(--paper);
}

.band-ink .h2,
.band-ink .h3{
  color:#fff;
}

.band-ink .body,
.band-ink .sm{
  color:rgba(255,255,255,.72);
}

.band-ink .label{
  color:var(--gold);
}

.c3{grid-column:span 3}
.c4{grid-column:span 4}
.c5{grid-column:span 5}
.c6{grid-column:span 6}
.c7{grid-column:span 7}
.c8{grid-column:span 8}
.c12{grid-column:span 12}


/* ═══════════════════════════════════════════════════════════════
   SECTION HEADER
   ═══════════════════════════════════════════════════════════════ */

.shead{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:var(--s4);
  margin-bottom:var(--s5);
  flex-wrap:wrap;
}

.shead__t{
  max-width:56ch;
}

.shead .label{
  margin-bottom:var(--s2);
}

.shead .h2+.body{
  margin-top:var(--s2);
}


/* ═══════════════════════════════════════════════════════════════
   BUTTONS
   ═══════════════════════════════════════════════════════════════ */

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  border-radius:var(--r-pill);
  border:1px solid transparent;
  cursor:pointer;
  padding:0 26px;
  height:50px;
  font:600 14px/1 var(--fb);
  letter-spacing:.02em;
  transition:
    background .3s var(--ease),
    color .3s var(--ease),
    border-color .3s var(--ease),
    box-shadow .3s var(--ease);
  white-space:nowrap;
}

.btn--primary{
  background:var(--ink);
  color:var(--paper);
  border-color:var(--ink);
}

.btn--primary:hover{
  background:var(--wine);
  border-color:var(--wine);
  box-shadow:var(--sh-2);
}

.btn--secondary{
  background:transparent;
  color:var(--ink);
  border-color:var(--line);
}

.btn--secondary:hover{
  border-color:var(--ink);
}

.btn--light{
  background:var(--paper);
  color:var(--ink);
  border-color:var(--paper);
}

.btn--light:hover{
  background:var(--beige);
  border-color:var(--beige);
}

.btn--ghost-light{
  background:transparent;
  color:#fff;
  border-color:rgba(255,255,255,.4);
}

.btn--ghost-light:hover{
  background:var(--paper);
  color:var(--ink);
  border-color:var(--paper);
}

.btn--sm{
  height:42px;
  padding:0 20px;
  font-size:13px;
}

.btn--block{
  width:100%;
}

.btn[disabled]{
  opacity:.5;
  cursor:not-allowed;
}

.btn svg{
  transition:transform .3s var(--ease);
}

.btn:hover svg{
  transform:translateX(3px);
}

.tlink{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font:600 14px/1 var(--fb);
  color:var(--ink);
}

.tlink svg{
  transition:transform .3s var(--ease);
}

.tlink:hover{
  color:var(--gold);
}

.tlink:hover svg{
  transform:translateX(3px);
}


/* ═══════════════════════════════════════════════════════════════
   BRAND
   ═══════════════════════════════════════════════════════════════ */

.logo{
  display:inline-flex;
  align-items:center;
  gap:9px;
  flex:none;
}

.logo img{
  display:block;
  max-width:100%;
}

.logo__mark{
  display:block;
  width:auto;
  height:38px;
}

.logo__type{
  display:block;
  width:auto;
  height:24px;
}

.foot .logo{
  display:block;
}

.foot .logo img{
  height:auto;
  width:190px;
}

.sheet__crest{
  display:block;
  width:150px;
  margin:0 auto var(--s5);
  opacity:.96;
}

.brandmark{
  display:block;
  width:min(300px,60%);
  margin-inline:auto;
}


/* ═══════════════════════════════════════════════════════════════
   NAVBAR — FIXED LOGO DIMENSIONS
   ═══════════════════════════════════════════════════════════════ */

.nav{
  position:sticky;
  top:0;
  z-index:80;
  height:var(--nav-h);
  display:flex;
  align-items:center;
  background:var(--ivory);
  border-bottom:1px solid transparent;
  transition:
    border-color .3s,
    box-shadow .3s,
    height .3s var(--ease);
}

.nav.scrolled{
  border-bottom-color:var(--line);
  box-shadow:0 1px 0 rgba(26,23,20,.02);
}

.nav__in{
  display:flex;
  align-items:center;
  width:100%;
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:var(--gutter);
}

/*
   IMPORTANT:
   Header logo is intentionally constrained here.
   This prevents the source PNG dimensions from making
   the logo enormous on the live site.
*/

.nav__in > .logo{
  width:220px;
  height:52px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  flex:none;
  overflow:hidden;
}

.nav__in > .logo img{
  display:block;
  width:220px;
  height:52px;
  max-width:none;
  max-height:52px;
  object-fit:contain;
  object-position:left center;
}

.nav__links{
  display:flex;
  align-items:center;
  gap:var(--s4);
  margin-left:auto;
}

.nav__links a{
  font:500 14px/1 var(--fb);
  color:var(--ink-2);
  padding:6px 0;
  position:relative;
  transition:color .25s;
}

.nav__links a:hover{
  color:var(--ink);
}

.nav__links a.on{
  color:var(--ink);
  font-weight:600;
}

.nav__links a.on::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-2px;
  height:1.5px;
  background:var(--wine);
}

.burger{
  display:none;
  width:44px;
  height:44px;
  border:1px solid var(--line);
  border-radius:var(--r-pill);
  background:none;
  cursor:pointer;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  margin-left:auto;
}

.burger span{
  width:16px;
  height:1.5px;
  background:var(--ink);
  transition:
    transform .3s var(--ease),
    opacity .2s;
}

.burger.x span:first-child{
  transform:translateY(6.5px) rotate(45deg);
}

.burger.x span:nth-child(2){
  opacity:0;
}

.burger.x span:last-child{
  transform:translateY(-6.5px) rotate(-45deg);
}


/* ═══════════════════════════════════════════════════════════════
   MOBILE SHEET
   ═══════════════════════════════════════════════════════════════ */

.sheet{
  position:fixed;
  inset:var(--nav-h) 0 0;
  z-index:79;
  background:var(--ivory);
  padding:var(--s4) var(--gutter) var(--s6);
  display:none;
  flex-direction:column;
  overflow-y:auto;
}

.sheet.open{
  display:flex;
}

.sheet a{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:var(--s3) 0;
  border-bottom:1px solid var(--line);
  font:500 22px/1.2 var(--fd);
}

.sheet__cta{
  margin-top:var(--s5);
}


/* ═══════════════════════════════════════════════════════════════
   HERO
   ═══════════════════════════════════════════════════════════════ */

.hero{
  padding-block:var(--s7) var(--s6);
  position:relative;
  overflow:hidden;
}

.hero__grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:var(--col-gap);
  align-items:center;
}

.hero__text{
  grid-column:span 5;
}

.hero__media{
  grid-column:span 7;
  position:relative;
  border-radius:var(--r-card);
  overflow:hidden;
  aspect-ratio:4/3.1;
  background:var(--beige);
  box-shadow:0 30px 60px -34px rgba(26,23,20,.45);
}

.hero__media img,
.hero__media video{
  width:100%;
  height:100%;
  object-fit:cover;
  position:absolute;
  inset:0;
}

.hero__media video{
  opacity:0;
  transition:opacity 1.2s var(--ease);
}

.hero__media video.on{
  opacity:1;
}

.hero .display{
  margin-top:var(--s3);
}

.hero .body{
  margin-top:var(--s3);
  max-width:44ch;
}

.hero__text,
.hero__media{
  position:relative;
  z-index:1;
}

.hero__cta{
  display:flex;
  gap:12px;
  margin-top:var(--s5);
  flex-wrap:wrap;
}

.hero__stat{
  display:flex;
  gap:var(--s5);
  margin-top:var(--s6);
  padding-top:var(--s4);
  border-top:1px solid var(--line);
}

.hero__stat div{
  min-width:0;
}

.hero__stat b{
  display:block;
  font:500 26px/1 var(--fd);
  margin-bottom:4px;
}

.hero__badge{
  position:absolute;
  left:calc(var(--s4) * -1);
  bottom:var(--s5);
  z-index:2;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--r-card);
  padding:var(--s3);
  box-shadow:var(--sh-2);
  display:flex;
  align-items:center;
  gap:var(--s3);
  max-width:270px;
}

.hero__badge .ico{
  color:var(--gold);
}

.hero__badge b{
  display:block;
  font:500 22px/1 var(--fd);
}

.hero__badge span{
  font-size:13px;
  color:var(--ink-3);
  line-height:1.4;
}


/* ═══════════════════════════════════════════════════════════════
   PAGE HEADER
   ═══════════════════════════════════════════════════════════════ */

.phead{
  position:relative;
  background:var(--ink);
  overflow:hidden;
}

.phead__img{
  position:absolute;
  inset:0;
}

.phead__img img{
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:.55;
}

.phead__in{
  position:relative;
  padding-block:var(--s7);
  color:#fff;
}

.phead .label{
  color:var(--gold);
}

.phead .h1{
  color:#fff;
  margin-top:var(--s2);
  max-width:18ch;
}

.phead .body{
  color:rgba(255,255,255,.76);
  margin-top:var(--s3);
  max-width:56ch;
}

.crumb{
  display:flex;
  gap:8px;
  align-items:center;
  font-size:13px;
  color:rgba(255,255,255,.6);
  margin-bottom:var(--s3);
}

.crumb a:hover{
  color:#fff;
}


/* ═══════════════════════════════════════════════════════════════
   SEARCH TOOLBAR
   ═══════════════════════════════════════════════════════════════ */

.toolbar{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--r-card);
  padding:var(--s2);
  box-shadow:var(--sh-1);
}

.toolbar__row{
  display:grid;
  grid-template-columns:repeat(4,1fr) auto;
  gap:var(--s1);
  align-items:end;
}

.tfield{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:10px 14px;
  border-radius:var(--r-input);
  position:relative;
  min-width:0;
  transition:background .25s;
}

.tfield+.tfield::before{
  content:"";
  position:absolute;
  left:0;
  top:20%;
  bottom:20%;
  width:1px;
  background:var(--line);
}

.tfield:hover{
  background:var(--ivory);
}

.tfield label{
  font-size:11px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--ink-3);
}

.tfield select,
.tfield input{
  appearance:none;
  -webkit-appearance:none;
  background:none;
  border:0;
  padding:0;
  width:100%;
  font:500 15px/1.3 var(--fb);
  color:var(--ink);
  cursor:pointer;
}

.tfield select:focus,
.tfield input:focus{
  outline:none;
}

.toolbar .btn{
  height:52px;
  padding-inline:30px;
}


/* ═══════════════════════════════════════════════════════════════
   CARDS
   ═══════════════════════════════════════════════════════════════ */

.card{
  display:flex;
  flex-direction:column;
  height:100%;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--r-card);
  overflow:hidden;
  transition:
    border-color .3s,
    box-shadow .3s,
    transform .3s var(--ease);
  text-align:left;
}

.card:hover{
  border-color:var(--ink-3);
  box-shadow:var(--sh-2);
  transform:translateY(-3px);
}

.card__img{
  position:relative;
  aspect-ratio:4/3;
  overflow:hidden;
  background:var(--beige);
}

.card__img img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .8s var(--ease);
}

.card:hover .card__img img{
  transform:scale(1.045);
}

.card__img::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(
    180deg,
    rgba(20,17,14,0) 45%,
    rgba(20,17,14,.72) 100%
  );
  opacity:0;
  transition:opacity .45s var(--ease);
}

.card:hover .card__img::after{
  opacity:1;
}

.card__tag{
  position:absolute;
  top:12px;
  left:12px;
  z-index:2;
  background:rgba(255,255,255,.94);
  border-radius:var(--r-pill);
  padding:5px 12px;
  font:700 11px/1 var(--fb);
  letter-spacing:.1em;
  text-transform:uppercase;
}

.card__body{
  display:flex;
  flex-direction:column;
  flex:1;
  padding:var(--s3);
  gap:6px;
}

.card__loc{
  font-size:13px;
  color:var(--ink-3);
}

.card__meta{
  display:flex;
  flex-wrap:wrap;
  gap:6px 10px;
  font-size:14px;
  color:var(--ink-2);
  margin-top:2px;
}

.card__meta i{
  width:3px;
  height:3px;
  border-radius:50%;
  background:var(--line);
  align-self:center;
  font-style:normal;
}

.card__amen{
  font-size:13px;
  color:var(--ink-3);
  margin-top:var(--s1);
  display:-webkit-box;
  -webkit-line-clamp:1;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.card__foot{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-top:auto;
  padding-top:var(--s3);
}

.card__price{
  font:600 15px/1 var(--fb);
}

.card__price span{
  display:block;
  font-size:11px;
  font-weight:600;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--ink-3);
  margin-bottom:5px;
}

.card__go{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font:600 13px/1 var(--fb);
  color:var(--gold);
}

.card__go svg{
  transition:transform .3s var(--ease);
}

.card:hover .card__go svg{
  transform:translateX(3px);
}

.card__over{
  position:absolute;
  inset:auto 0 0;
  padding:var(--s3);
  color:#fff;
  z-index:1;
  opacity:0;
  transform:translateY(10px);
  transition:
    opacity .45s var(--ease),
    transform .45s var(--ease);
}

.card:hover .card__over{
  opacity:1;
  transform:none;
}

.card__over span{
  display:block;
  font:600 12px/1 var(--fb);
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--gold-lt,#D8BE86);
  margin-bottom:6px;
}

.card__over b{
  font:500 20px/1.2 var(--fd);
  color:#fff;
}


/* ═══════════════════════════════════════════════════════════════
   FEATURED CARDS
   ═══════════════════════════════════════════════════════════════ */

.featured{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:var(--col-gap);
}

.featured>*:first-child{
  grid-column:span 7;
}

.featured>*:first-child .card__img{
  aspect-ratio:16/10;
}

.featured__side{
  grid-column:span 5;
  display:grid;
  gap:var(--col-gap);
  align-content:start;
}

.featured__side .card{
  flex-direction:row;
}

.featured__side .card__img{
  aspect-ratio:1;
  width:40%;
  flex:none;
}

.featured__side .card__body{
  padding:var(--s3);
}


/* ═══════════════════════════════════════════════════════════════
   TILES
   ═══════════════════════════════════════════════════════════════ */

.tile{
  position:relative;
  display:block;
  border-radius:var(--r-card);
  overflow:hidden;
  aspect-ratio:4/3;
  background:var(--beige);
}

.tile img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .8s var(--ease);
}

.tile:hover img{
  transform:scale(1.05);
}

.tile__scrim{
  position:absolute;
  inset:0;
  background:
    linear-gradient(
      180deg,
      rgba(20,17,14,.05) 30%,
      rgba(20,17,14,.55) 68%,
      rgba(20,17,14,.86) 100%
    );
  transition:background .5s var(--ease);
}

.tile:hover .tile__scrim{
  background:
    linear-gradient(
      180deg,
      rgba(20,17,14,.2) 20%,
      rgba(60,40,20,.72) 70%,
      rgba(20,17,14,.92) 100%
    );
}

.tile__body{
  position:absolute;
  inset:auto 0 0;
  padding:var(--s3);
  color:#fff;
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:12px;
  transition:transform .5s var(--ease);
}

.tile:hover .tile__body{
  transform:translateY(-4px);
}

.tile__body h3{
  color:#fff;
}

.tile__n{
  font-size:13px;
  color:rgba(255,255,255,.75);
  margin-top:3px;
}

.tile__go{
  flex:none;
  width:34px;
  height:34px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.45);
  display:grid;
  place-items:center;
  transition:
    background .3s,
    color .3s,
    border-color .3s;
}

.tile:hover .tile__go{
  background:#fff;
  color:var(--ink);
  border-color:#fff;
}

.tile--tall{
  aspect-ratio:4/5;
}

.tile__ico{
  position:absolute;
  top:var(--s3);
  left:var(--s3);
  z-index:1;
  width:40px;
  height:40px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.9);
  color:var(--ink);
  transition:
    background .3s var(--ease),
    color .3s var(--ease);
}

.tile__ico .ico{
  width:20px;
  height:20px;
  color:inherit;
}

.tile:hover .tile__ico{
  background:var(--ink);
  color:#fff;
}


/* ═══════════════════════════════════════════════════════════════
   NUMBERED LISTS
   ═══════════════════════════════════════════════════════════════ */

.nitem{
  display:flex;
  gap:var(--s3);
  align-items:flex-start;
}

.nitem__n{
  font:500 15px/1 var(--fb);
  color:var(--gold);
  padding-top:4px;
  flex:none;
  min-width:26px;
}

.nitem__ico{
  flex:none;
  padding-top:2px;
}

.nitem h3{
  margin-bottom:6px;
}

.steps{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:var(--col-gap);
}

.step{
  padding-top:var(--s3);
  border-top:2px solid var(--ink);
}

.step__n{
  font:500 14px/1 var(--fb);
  color:var(--gold);
  display:block;
  margin-bottom:var(--s2);
}


/* ═══════════════════════════════════════════════════════════════
   FEATURE BAND
   ═══════════════════════════════════════════════════════════════ */

.feature{
  position:relative;
  min-height:min(62vh,520px);
  display:flex;
  align-items:center;
  overflow:hidden;
  background:var(--ink);
}

.feature img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:.62;
  transform:scale(1.12);
  will-change:transform;
}

.feature::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(
      90deg,
      rgba(20,17,14,.82) 0%,
      rgba(20,17,14,.45) 55%,
      rgba(20,17,14,.25) 100%
    );
}

.feature__in{
  position:relative;
  z-index:1;
  color:#fff;
  padding-block:var(--s7);
}

.feature .h1{
  color:#fff;
  max-width:16ch;
}

.feature .body{
  color:rgba(255,255,255,.8);
  max-width:46ch;
  margin-top:var(--s3);
}

.feature .btn{
  margin-top:var(--s5);
}


/* ═══════════════════════════════════════════════════════════════
   QUOTES
   ═══════════════════════════════════════════════════════════════ */

.quote{
  display:flex;
  flex-direction:column;
  height:100%;
  padding:var(--s4);
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--r-card);
}

.quote__m{
  font-family:var(--fd);
  font-size:19px;
  line-height:1.5;
  flex:1;
}

.quote__w{
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:var(--s3);
  padding-top:var(--s3);
  border-top:1px solid var(--line);
}

.avatar{
  width:38px;
  height:38px;
  border-radius:50%;
  background:var(--beige);
  color:var(--gold);
  display:grid;
  place-items:center;
  font:700 14px/1 var(--fb);
  flex:none;
}

.quote__n{
  font:700 14px/1.3 var(--fb);
}

.quote__d{
  font-size:12px;
  color:var(--ink-3);
}


/* ═══════════════════════════════════════════════════════════════
   FORM
   ═══════════════════════════════════════════════════════════════ */

.field{
  display:flex;
  flex-direction:column;
  gap:8px;
  min-width:0;
}

.field label,
.flabel{
  font-size:12px;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--ink-2);
}

.input{
  appearance:none;
  -webkit-appearance:none;
  width:100%;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--r-input);
  padding:0 14px;
  height:50px;
  font-size:15px;
  transition:
    border-color .25s,
    box-shadow .25s;
}

textarea.input{
  height:auto;
  min-height:110px;
  padding:14px;
  resize:vertical;
  line-height:1.6;
}

select.input{
  cursor:pointer;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='11' height='7'><path d='M1 1.2 5.5 5.7 10 1.2' fill='none' stroke='%235A5149' stroke-width='1.5' stroke-linecap='round'/></svg>");
  background-repeat:no-repeat;
  background-position:right 14px center;
  padding-right:36px;
}

.input:hover{
  border-color:var(--ink-3);
}

.input:focus{
  outline:none;
  border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(169,132,66,.12);
}

.field.bad .input{
  border-color:#8C2F23;
}

.err{
  display:none;
  font-size:13px;
  font-weight:600;
  color:#8C2F23;
}

.field.bad .err{
  display:block;
}

.hp{
  position:absolute;
  left:-9999px;
  width:1px;
  height:1px;
  opacity:0;
}

.spin{
  width:14px;
  height:14px;
  border:2px solid rgba(255,255,255,.35);
  border-top-color:#fff;
  border-radius:50%;
  animation:sp .7s linear infinite;
}

@keyframes sp{
  to{
    transform:rotate(360deg);
  }
}


/* ═══════════════════════════════════════════════════════════════
   FILTER BAR
   ═══════════════════════════════════════════════════════════════ */

.filters{
  position:sticky;
  top:var(--nav-h);
  z-index:60;
  background:var(--ivory);
  border-bottom:1px solid var(--line);
  padding-block:var(--s3);
}

.filters__row{
  display:grid;
  grid-template-columns:repeat(5,1fr) auto;
  gap:var(--s2);
  align-items:end;
}

.filters__meta{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:var(--s3);
  margin-top:var(--s3);
  flex-wrap:wrap;
}

.linkbtn{
  background:none;
  border:0;
  padding:0;
  cursor:pointer;
  font:600 14px/1 var(--fb);
  color:var(--gold);
}

.linkbtn:hover{
  color:var(--ink);
}

.ftoggle{
  display:none;
}


/* ═══════════════════════════════════════════════════════════════
   VENUE DETAIL
   ═══════════════════════════════════════════════════════════════ */

.gallery{
  display:grid;
  grid-template-columns:2fr 1fr;
  gap:var(--s2);
}

.gallery__side{
  display:grid;
  gap:var(--s2);
}

.gallery figure{
  margin:0;
  border-radius:var(--r-card);
  overflow:hidden;
  background:var(--beige);
  cursor:zoom-in;
}

.gallery img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .8s var(--ease);
}

.gallery figure:hover img{
  transform:scale(1.03);
}

.gallery__main{
  aspect-ratio:16/11;
}

.gallery__side figure{
  aspect-ratio:16/10.4;
}

.specs{
  border:1px solid var(--line);
  border-radius:var(--r-card);
  overflow:hidden;
  background:var(--paper);
}

.specs__row{
  display:flex;
  justify-content:space-between;
  gap:var(--s3);
  padding:14px var(--s3);
  border-bottom:1px solid var(--line);
}

.specs__row:last-child{
  border-bottom:0;
}

.specs__row dt{
  font-size:14px;
  color:var(--ink-3);
  margin:0;
}

.specs__row dd{
  margin:0;
  font:600 14px/1.4 var(--fb);
  text-align:right;
}

.amen{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:10px var(--s4);
  list-style:none;
  padding:0;
  margin:0;
}

.amen li{
  display:flex;
  gap:10px;
  font-size:15px;
  color:var(--ink-2);
}

.amen svg{
  flex:none;
  margin-top:5px;
  color:var(--gold);
}

.chips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.chip{
  background:var(--beige);
  border-radius:var(--r-pill);
  padding:7px 14px;
  font-size:13px;
  font-weight:500;
}

.sticky-panel{
  position:sticky;
  top:calc(var(--nav-h) + var(--s3));
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--r-card);
  padding:var(--s4);
}

.mapbox{
  border-radius:var(--r-card);
  overflow:hidden;
  border:1px solid var(--line);
}

.mapbox iframe{
  width:100%;
  height:320px;
  border:0;
  display:block;
  filter:saturate(.75);
}


/* ═══════════════════════════════════════════════════════════════
   LIGHTBOX
   ═══════════════════════════════════════════════════════════════ */

.lb{
  position:fixed;
  inset:0;
  z-index:150;
  background:rgba(20,17,14,.94);
  display:none;
  place-items:center;
  padding:var(--s5);
}

.lb.on{
  display:grid;
}

.lb img{
  max-width:min(1100px,92vw);
  max-height:86vh;
  object-fit:contain;
  border-radius:var(--r-card);
}

.lb__x{
  position:absolute;
  top:20px;
  right:20px;
  width:44px;
  height:44px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.3);
  background:none;
  color:#fff;
  cursor:pointer;
  font-size:18px;
}


/* ═══════════════════════════════════════════════════════════════
   FOOTER
   ═══════════════════════════════════════════════════════════════ */

.foot{
  background:var(--ink);
  color:rgba(255,255,255,.66);
  padding-block:var(--s7) var(--s4);
}

.foot h4{
  font:700 12px/1 var(--fb);
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#fff;
  margin-bottom:var(--s3);
}

.foot ul{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:12px;
}

.foot a{
  font-size:15px;
  transition:color .25s;
}

.foot a:hover{
  color:#fff;
}

.foot .logo{
  color:#fff;
  margin-bottom:var(--s2);
}

.foot .logo img{
  width:190px;
  height:auto;
  max-width:190px;
}

.foot__bot{
  display:flex;
  justify-content:space-between;
  gap:var(--s3);
  flex-wrap:wrap;
  margin-top:var(--s6);
  padding-top:var(--s4);
  border-top:1px solid var(--line-2);
  font-size:13px;
}

.soc{
  display:flex;
  gap:10px;
  margin-top:var(--s3);
}

.soc a{
  width:38px;
  height:38px;
  border:1px solid var(--line-2);
  border-radius:50%;
  display:grid;
  place-items:center;
  transition:
    background .25s,
    color .25s,
    border-color .25s;
}

.soc a:hover{
  background:#fff;
  color:var(--ink);
  border-color:#fff;
}


/* ═══════════════════════════════════════════════════════════════
   DECORATIVE LAYERS
   ═══════════════════════════════════════════════════════════════ */

.motif{
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='84' viewBox='0 0 72 84'%3E%3Cg fill='none' stroke='%23A98442' stroke-opacity='.16' stroke-width='1'%3E%3Cpath d='M36 78V36a18 18 0 0 1 36 0v42'/%3E%3Cpath d='M0 78V36a18 18 0 0 1 36 0v42'/%3E%3C/g%3E%3C/svg%3E");
  background-size:72px 84px;
}

.motif--dark{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='84' viewBox='0 0 72 84'%3E%3Cg fill='none' stroke='%23FFFFFF' stroke-opacity='.10' stroke-width='1'%3E%3Cpath d='M36 78V36a18 18 0 0 1 36 0v42'/%3E%3Cpath d='M0 78V36a18 18 0 0 1 36 0v42'/%3E%3C/g%3E%3C/svg%3E");
}

.wash{
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(
      60% 70% at 82% 18%,
      rgba(169,132,66,.10),
      transparent 62%
    ),
    radial-gradient(
      50% 60% at 6% 92%,
      rgba(169,132,66,.07),
      transparent 60%
    );
}

.hero>.container{
  position:relative;
  z-index:1;
}


/* ═══════════════════════════════════════════════════════════════
   ICONS
   ═══════════════════════════════════════════════════════════════ */

.ico{
  width:26px;
  height:26px;
  flex:none;
  color:var(--gold);
  stroke-width:1.25;
}

.ico--lg{
  width:34px;
  height:34px;
}


/* ═══════════════════════════════════════════════════════════════
   ACHIEVEMENT BAND
   ═══════════════════════════════════════════════════════════════ */

.stats{
  position:relative;
  overflow:hidden;
}

.stats__in{
  position:relative;
  z-index:1;
}

.stat{
  display:flex;
  flex-direction:column;
  gap:var(--s2);
  height:100%;
  padding:var(--s4);
  background:rgba(255,255,255,.05);
  border:1px solid var(--line-2);
  border-radius:var(--r-card);
  transition:
    background .3s var(--ease),
    border-color .3s var(--ease),
    transform .3s var(--ease);
}

.stat:hover{
  background:rgba(255,255,255,.09);
  border-color:rgba(255,255,255,.32);
  transform:translateY(-3px);
}

.stat__ico{
  width:44px;
  height:44px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:rgba(169,132,66,.18);
  border:1px solid rgba(169,132,66,.4);
}

.stat__ico .ico{
  color:var(--gold);
  width:22px;
  height:22px;
}

.stat__n{
  font-family:var(--fd);
  font-size:clamp(40px,4.6vw,60px);
  line-height:1;
  font-weight:600;
  color:#fff;
  font-variant-numeric:tabular-nums;
}

.stat__n sup{
  font-size:.45em;
  font-weight:500;
  vertical-align:super;
  margin-left:2px;
  color:var(--gold);
}

.stat__t{
  font:700 14px/1.4 var(--fb);
  color:#fff;
}

.stat__d{
  font-size:14px;
  line-height:1.55;
  color:rgba(255,255,255,.62);
}


/* ═══════════════════════════════════════════════════════════════
   TRUST STRIP
   ═══════════════════════════════════════════════════════════════ */

.trust{
  display:flex;
  flex-wrap:wrap;
  gap:var(--s2);
  margin-top:var(--s4);
}

.trust span{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--r-pill);
  padding:9px 16px;
  font:600 14px/1 var(--fb);
}

.trust .ico{
  width:17px;
  height:17px;
}


/* ═══════════════════════════════════════════════════════════════
   SCROLL SYSTEM
   ═══════════════════════════════════════════════════════════════ */

.rv{
  opacity:0;
  transform:translateY(16px);
  transition:
    opacity .7s var(--ease),
    transform .7s var(--ease);
}

.rv.in{
  opacity:1;
  transform:none;
}

.rv-img{
  overflow:hidden;
}

.rv-img>img{
  transform:scale(1.08);
  transition:
    transform 1.2s var(--ease),
    opacity .8s var(--ease);
  opacity:0;
}

.rv-img.in>img{
  transform:scale(1);
  opacity:1;
}

.rv-line{
  display:block;
  overflow:hidden;
}

.rv-line>span{
  display:block;
  transform:translateY(105%);
  transition:transform .9s var(--ease);
}

.rv-line.in>span{
  transform:none;
}

[data-par]{
  will-change:transform;
}


/* ═══════════════════════════════════════════════════════════════
   TESTIMONIAL CAROUSEL
   ═══════════════════════════════════════════════════════════════ */

.tcar{
  position:relative;
  overflow:hidden;
}

.tcar__track{
  display:flex;
  transition:transform .7s var(--ease);
}

.tcar__slide{
  flex:0 0 100%;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:var(--col-gap);
}

.tcar__nav{
  display:flex;
  gap:8px;
  align-items:center;
}

.tdot{
  width:8px;
  height:8px;
  border-radius:50%;
  border:0;
  padding:0;
  cursor:pointer;
  background:var(--line);
  transition:
    background .3s,
    width .3s var(--ease);
}

.tdot.on{
  background:var(--gold);
  width:22px;
  border-radius:var(--r-pill);
}


/* ═══════════════════════════════════════════════════════════════
   SECTION SEAM
   ═══════════════════════════════════════════════════════════════ */

.section+.section{
  border-top:1px solid transparent;
}

.band+.section:not(.band),
.section:not(.band)+.band{
  border-top:1px solid var(--line);
}


/* ═══════════════════════════════════════════════════════════════
   UTILITIES
   ═══════════════════════════════════════════════════════════════ */

.stack-2>*+*{
  margin-top:var(--s2);
}

.stack-3>*+*{
  margin-top:var(--s3);
}

.stack-4>*+*{
  margin-top:var(--s4);
}

.empty{
  text-align:center;
  padding:var(--s7) var(--s4);
  border:1px dashed var(--line);
  border-radius:var(--r-card);
  background:var(--paper);
}

.toast{
  position:fixed;
  left:50%;
  bottom:24px;
  transform:translate(-50%,150%);
  z-index:120;
  background:var(--ink);
  color:#fff;
  padding:13px 22px;
  border-radius:var(--r-pill);
  font:600 14px/1.4 var(--fb);
  box-shadow:var(--sh-2);
  transition:transform .45s var(--ease);
  max-width:calc(100% - 32px);
  text-align:center;
}

.toast.on{
  transform:translate(-50%,0);
}

.sr{
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
}

.center{
  text-align:center;
}

.mt-5{
  margin-top:var(--s5);
}

.mt-6{
  margin-top:var(--s6);
}


/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE — TABLET
   ═══════════════════════════════════════════════════════════════ */

@media (max-width:1080px){

  :root{
    --gutter:32px;
  }

  .nav__in > .logo{
    width:205px;
    height:50px;
  }

  .nav__in > .logo img{
    width:205px;
    height:50px;
    max-height:50px;
  }

  .hero__badge{
    position:static;
    max-width:none;
    margin-top:var(--s3);
  }

  .hero__text,
  .hero__media{
    grid-column:span 12;
  }

  .hero__media{
    aspect-ratio:16/9;
    margin-top:var(--s5);
  }

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

  .toolbar .btn{
    grid-column:1/-1;
    width:100%;
    margin-top:var(--s1);
  }

  .tfield+.tfield::before{
    display:none;
  }

  .featured>*:first-child,
  .featured__side{
    grid-column:span 12;
  }

  .filters__row{
    grid-template-columns:repeat(3,1fr);
  }

  .c3{
    grid-column:span 6;
  }

  .c4{
    grid-column:span 6;
  }

  .c5,
  .c7{
    grid-column:span 12;
  }

  .tcar__slide{
    grid-template-columns:1fr;
  }
}


/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE — MOBILE NAVIGATION
   ═══════════════════════════════════════════════════════════════ */

@media (max-width:860px){

  .nav__in > .logo{
    width:190px;
    height:48px;
  }

  .nav__in > .logo img{
    width:190px;
    height:48px;
    max-height:48px;
  }

  .nav__links{
    display:none;
  }

  .burger{
    display:flex;
  }

  .steps{
    grid-template-columns:1fr;
    gap:var(--s4);
  }

  .gallery{
    grid-template-columns:1fr;
  }

  .gallery__side{
    grid-template-columns:1fr 1fr;
  }

  .c6,
  .c8{
    grid-column:span 12;
  }

  .sticky-panel{
    position:static;
    margin-top:var(--s5);
  }

  .ftoggle{
    display:flex;
    width:100%;
    justify-content:space-between;
    align-items:center;
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:var(--r-input);
    padding:0 16px;
    height:48px;
    font:600 14px/1 var(--fb);
    cursor:pointer;
  }

  .filters__row{
    display:none;
    grid-template-columns:repeat(2,1fr);
    margin-top:var(--s3);
  }

  .filters__row.open{
    display:grid;
  }

  .card__over{
    display:none;
  }
}


/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE — SMALL MOBILE
   ═══════════════════════════════════════════════════════════════ */

@media (max-width:640px){

  :root{
    --gutter:20px;
    --col-gap:16px;
    --nav-h:68px;
  }

  /*
     Smaller but still properly proportioned mobile logo.
  */

  .nav{
    height:var(--nav-h);
  }

  .nav__in{
    padding-inline:var(--gutter);
  }

  .nav__in > .logo{
    width:170px;
    height:44px;
  }

  .nav__in > .logo img{
    width:170px;
    height:44px;
    max-height:44px;
  }

  .c3,
  .c4,
  .c6,
  .c8{
    grid-column:span 12;
  }

  .toolbar__row,
  .filters__row.open{
    grid-template-columns:1fr;
  }

  .featured__side .card{
    flex-direction:column;
  }

  .featured__side .card__img{
    width:100%;
    aspect-ratio:4/3;
  }

  .amen,
  .gallery__side{
    grid-template-columns:1fr;
  }

  .hero{
    padding-block:var(--s5) var(--s5);
  }

  .hero__stat{
    gap:var(--s4);
    flex-wrap:wrap;
  }

  .shead{
    margin-bottom:var(--s4);
  }

  .foot__bot{
    flex-direction:column;
  }
}
