/* =========================================================
   The Dogwood Barn at G5 Ranch — Lowcountry Rustic
   Palette: deep sage + kraft gold + warm cream
   Fonts: Cormorant Garamond (display) + Inter Tight (body/label)
   ========================================================= */

:root{
  --ink:#1A1916;
  --bark:#3A2F1E;
  --bark-2:#5A4A33;
  --sage:#3E5E4A;
  --sage-mid:#6A8A78;
  --kraft:#9C7C46;
  --kraft-deep:#7A5F32;
  --cream:#F5EFE3;
  --bone:#FAF7F0;
  --rule:#D2C6AD;
  --rule-soft:rgba(210,198,173,0.45);

  --font-display:"Cormorant Garamond", Georgia, serif;
  --font-body:"Inter Tight", system-ui, sans-serif;
  --font-label:"Inter Tight", system-ui, sans-serif;

  --max:1380px;
  --gutter:clamp(20px, 4vw, 64px);
}

*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--font-body);
  background:var(--bone);
  color:var(--ink);
  font-size:17px;
  line-height:1.65;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit;}

/* paper grain */
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:1;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.10  0 0 0 0 0.12  0 0 0 0 0.08  0 0 0 0.03 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  opacity:.55;mix-blend-mode:multiply;
}

/* ---------- typography ---------- */
.display{font-family:var(--font-display);font-weight:400;line-height:1.02;letter-spacing:-0.005em;}
.label{font-family:var(--font-label);font-size:11px;letter-spacing:0.22em;text-transform:uppercase;color:var(--bark-2);font-weight:500;}
.italic{font-style:italic;color:var(--kraft);}
.kicker{font-family:var(--font-label);font-size:11px;letter-spacing:0.28em;text-transform:uppercase;color:var(--sage);font-weight:500;}
.dropcap::first-letter{
  font-family:var(--font-display);float:left;font-size:5.2em;line-height:.86;padding:6px 14px 0 0;color:var(--kraft);
}

/* ---------- layout ---------- */
.wrap{max-width:var(--max);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter);position:relative;z-index:2;}
section{position:relative;z-index:2;}
.divider{height:1px;background:var(--rule);max-width:var(--max);margin:0 auto;}
.divider-ornament{
  display:flex;align-items:center;gap:18px;max-width:var(--max);margin:0 auto;padding:0 var(--gutter);
}
.divider-ornament::before, .divider-ornament::after{content:"";flex:1;height:1px;background:var(--rule);}
.divider-ornament svg{flex-shrink:0;}

/* ---------- nav ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:rgba(250,247,240,0.92);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--rule-soft);
  transition:background .3s ease;
}
.nav-inner{
  display:flex;align-items:center;justify-content:space-between;
  max-width:var(--max);margin:0 auto;padding:14px var(--gutter);
}
.nav-brand{display:flex;align-items:center;gap:12px;}
.nav-brand svg{flex-shrink:0;}
.nav-brand-text{
  font-family:var(--font-display);font-size:17px;letter-spacing:0.05em;color:var(--bark);
  display:flex;flex-direction:column;line-height:1;
}
.nav-brand-text small{
  font-family:var(--font-label);font-size:9px;letter-spacing:0.25em;color:var(--sage);margin-top:4px;text-transform:uppercase;font-weight:500;
}
.nav-links{display:flex;gap:28px;align-items:center;}
.nav-links a{font-family:var(--font-label);font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--bark);transition:color .2s;font-weight:500;}
.nav-links a:hover{color:var(--kraft);}
.nav-cta{
  background:var(--bark);color:var(--bone);padding:10px 18px;border-radius:0;
  font-family:var(--font-label);font-size:10px;letter-spacing:0.2em;text-transform:uppercase;
  transition:background .2s;font-weight:500;
}
.nav-cta:hover{background:var(--kraft);color:var(--bone);}
.nav-toggle{display:none;}

@media (max-width:880px){
  .nav-links{
    display:none;position:absolute;top:100%;left:0;right:0;
    background:var(--bone);border-bottom:1px solid var(--rule);
    flex-direction:column;align-items:flex-start;padding:24px var(--gutter);gap:20px;
  }
  .nav-links.open{display:flex;}
  .nav-toggle{display:block;width:32px;height:32px;position:relative;}
  .nav-toggle span{position:absolute;left:4px;right:4px;height:1.5px;background:var(--bark);transition:transform .25s;}
  .nav-toggle span:nth-child(1){top:11px;}
  .nav-toggle span:nth-child(2){top:20px;}
  .nav-toggle.open span:nth-child(1){top:15px;transform:rotate(45deg);}
  .nav-toggle.open span:nth-child(2){top:15px;transform:rotate(-45deg);}
  .nav-cta{display:none;}
}

/* ---------- HERO ---------- */
.hero{
  position:relative;min-height:100vh;
  display:flex;align-items:flex-end;
  padding:120px var(--gutter) 60px;
  overflow:hidden;color:var(--bone);
}
.hero-bg{
  position:absolute;inset:0;z-index:0;
  background:
    linear-gradient(180deg, rgba(26,25,22,0.28) 0%, rgba(26,25,22,0.18) 38%, rgba(26,25,22,0.88) 100%),
    url("assets/recessional-deck.jpg") center 28%/cover no-repeat;
  animation:slowzoom 26s ease-in-out infinite alternate;
  will-change:transform;
}
@keyframes slowzoom{from{transform:scale(1);}to{transform:scale(1.08);}}
.hero-inner{position:relative;z-index:2;max-width:var(--max);margin:0 auto;width:100%;}
.hero-eyebrow{
  display:flex;align-items:center;gap:16px;
  font-family:var(--font-label);font-size:11px;letter-spacing:0.3em;text-transform:uppercase;font-weight:500;
  color:rgba(250,247,240,0.85);margin-bottom:28px;
}
.hero-eyebrow::before{content:"";width:44px;height:1px;background:rgba(250,247,240,0.6);}
.hero h1{
  font-family:var(--font-display);
  font-size:clamp(44px, 7.2vw, 108px);
  line-height:0.98;letter-spacing:-0.012em;
  color:var(--bone);max-width:14ch;
  margin-bottom:32px;font-weight:400;
}
.hero h1 em{font-style:italic;color:#DECE9E;font-family:"Cormorant Garamond",serif;font-weight:300;}
.hero-meta{
  display:flex;gap:36px;flex-wrap:wrap;align-items:center;
  margin-top:48px;padding-top:32px;border-top:1px solid rgba(250,247,240,0.25);
  max-width:880px;
}
.hero-meta-item{display:flex;flex-direction:column;gap:4px;}
.hero-meta-item .label{color:rgba(250,247,240,0.55);}
.hero-meta-item strong{font-family:var(--font-display);font-size:21px;color:var(--bone);font-weight:400;}
.hero-cta{
  display:inline-flex;align-items:center;gap:14px;
  background:var(--kraft);color:var(--bone);padding:18px 32px;
  font-family:var(--font-label);font-size:11px;letter-spacing:0.24em;text-transform:uppercase;font-weight:500;
  transition:background .3s, gap .3s;
}
.hero-cta:hover{background:var(--bone);color:var(--bark);gap:20px;}
.hero-cta svg{transition:transform .3s;}
.hero-cta:hover svg{transform:translateX(4px);}
.hero-scroll{
  position:absolute;bottom:24px;right:var(--gutter);z-index:2;
  font-family:var(--font-label);font-size:10px;letter-spacing:0.25em;text-transform:uppercase;font-weight:500;
  color:rgba(250,247,240,0.7);writing-mode:vertical-rl;transform:rotate(180deg);
  display:flex;align-items:center;gap:14px;
}
.hero-scroll::after{content:"";display:block;width:1px;height:60px;background:rgba(250,247,240,0.4);}

/* ---------- marquee strip ---------- */
.marquee{
  background:var(--bark);color:var(--cream);
  padding:18px 0;overflow:hidden;border-top:1px solid var(--bark-2);border-bottom:1px solid var(--bark-2);
}
.marquee-track{
  display:flex;gap:48px;white-space:nowrap;
  animation:marquee 38s linear infinite;
  font-family:var(--font-display);font-size:21px;letter-spacing:0.04em;
}
.marquee-track span{display:inline-flex;align-items:center;gap:48px;}
.marquee-track em{font-family:"Cormorant Garamond",serif;font-style:italic;color:var(--kraft);font-size:18px;}
.marquee-track svg{flex-shrink:0;}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ---------- section header ---------- */
.s-head{
  display:grid;grid-template-columns:200px 1fr;gap:48px;align-items:end;
  padding:120px 0 60px;
}
.s-head .meta{display:flex;flex-direction:column;gap:14px;padding-bottom:8px;}
.s-head h2{
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(34px, 5.2vw, 72px);line-height:1.02;letter-spacing:-0.01em;
  color:var(--bark);max-width:18ch;
}
.s-head h2 em{font-style:italic;color:var(--kraft);font-family:"Cormorant Garamond",serif;}
@media (max-width:760px){
  .s-head{grid-template-columns:1fr;gap:20px;padding:80px 0 40px;}
}

/* ---------- property gallery ---------- */
.gallery{padding-bottom:120px;}
.gallery-grid{
  display:grid;grid-template-columns:repeat(12, 1fr);gap:20px;
}
.tile{position:relative;overflow:hidden;cursor:zoom-in;background:var(--bark);}
.tile img{
  width:100%;height:100%;object-fit:cover;transition:transform .8s ease;
  aspect-ratio:4/3;
}
.tile:hover img{transform:scale(1.04);}
.tile-cap{
  position:absolute;left:18px;bottom:14px;
  font-family:var(--font-label);font-size:10px;letter-spacing:0.22em;text-transform:uppercase;font-weight:500;
  color:var(--bone);background:rgba(26,25,22,0.55);padding:6px 12px;backdrop-filter:blur(4px);
}
.tile.t-lg{grid-column:span 8;}
.tile.t-lg img{aspect-ratio:16/10;}
.tile.t-sm{grid-column:span 4;}
.tile.t-sm img{aspect-ratio:4/5;}
.tile.t-md{grid-column:span 6;}
.tile.t-md img{aspect-ratio:3/2;}
.tile.t-tall{grid-column:span 4;}
.tile.t-tall img{aspect-ratio:3/4;}
@media (max-width:760px){
  .tile.t-lg,.tile.t-sm,.tile.t-md,.tile.t-tall{grid-column:span 12;}
}

/* lightbox */
.lightbox{
  position:fixed;inset:0;background:rgba(15,12,10,.94);z-index:200;
  display:none;align-items:center;justify-content:center;padding:40px;cursor:zoom-out;
}
.lightbox.open{display:flex;}
.lightbox img{max-width:90vw;max-height:90vh;object-fit:contain;box-shadow:0 30px 80px rgba(0,0,0,.5);}
.lightbox .lb-close{
  position:absolute;top:20px;right:24px;color:var(--bone);font-family:var(--font-label);font-size:11px;letter-spacing:.2em;font-weight:500;
}

/* ---------- included grid ---------- */
.included{background:var(--cream);padding:0 0 120px;}
.included-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:0;
  border-top:1px solid var(--rule);
}
.inc-cell{
  padding:48px 32px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);
  display:flex;flex-direction:column;gap:14px;background:var(--cream);
  transition:background .3s;
}
.inc-cell:nth-child(3n){border-right:none;}
.inc-cell:hover{background:var(--bone);}
.inc-cell svg{color:var(--kraft);}
.inc-cell h3{font-family:var(--font-display);font-size:22px;color:var(--bark);font-weight:400;}
.inc-cell p{font-size:15px;color:var(--bark-2);line-height:1.65;}
.inc-cell .num{font-family:var(--font-label);font-size:10px;letter-spacing:0.25em;color:var(--sage);margin-bottom:4px;font-weight:500;}
@media (max-width:880px){
  .included-grid{grid-template-columns:repeat(2,1fr);}
  .inc-cell:nth-child(3n){border-right:1px solid var(--rule);}
  .inc-cell:nth-child(2n){border-right:none;}
}
@media (max-width:560px){
  .included-grid{grid-template-columns:1fr;}
  .inc-cell{border-right:none !important;}
}

/* ---------- capacity table ---------- */
.capacity{padding-bottom:120px;}
.cap-table{
  border-top:2px solid var(--bark);
  margin-top:20px;
}
.cap-row{
  display:grid;grid-template-columns:1.5fr 1.3fr 1.5fr 2fr;gap:32px;
  padding:32px 8px;border-bottom:1px solid var(--rule);align-items:start;
  transition:background .25s;
}
.cap-row:hover{background:var(--cream);}
.cap-row h4{font-family:var(--font-display);font-size:24px;color:var(--bark);font-weight:400;}
.cap-row .cap-cap{font-family:var(--font-display);font-size:18px;color:var(--kraft);}
.cap-row .cap-type{font-family:var(--font-label);font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--sage);font-weight:500;}
.cap-row .cap-note{font-size:15px;color:var(--bark-2);line-height:1.55;}
.cap-head{
  display:grid;grid-template-columns:1.5fr 1.3fr 1.5fr 2fr;gap:32px;padding:18px 8px;
  font-family:var(--font-label);font-size:10px;letter-spacing:0.22em;text-transform:uppercase;color:var(--bark-2);font-weight:500;
}
@media (max-width:760px){
  .cap-head{display:none;}
  .cap-row{grid-template-columns:1fr;gap:8px;padding:24px 0;}
}

/* ---------- pricing ---------- */
.pricing{background:var(--ink);color:var(--cream);padding:120px 0;position:relative;overflow:hidden;}
.pricing::before{
  content:"";position:absolute;inset:0;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n2'><feTurbulence baseFrequency='0.6' numOctaves='2'/><feColorMatrix values='0 0 0 0 0.60  0 0 0 0 0.75  0 0 0 0 0.55  0 0 0 0.025 0'/></filter><rect width='100%' height='100%' filter='url(%23n2)'/></svg>");
  opacity:.3;pointer-events:none;
}
.pricing .wrap{position:relative;z-index:2;}
.pricing .s-head h2{color:var(--cream);}
.pricing .s-head h2 em{color:#DECE9E;}
.pricing .label{color:rgba(245,239,227,0.55);}
.pricing .kicker{color:var(--kraft);}
.pkg-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:32px;margin-top:40px;
}
.pkg{
  background:#24201A;border:1px solid #3A2F1E;padding:40px 36px;
  display:flex;flex-direction:column;gap:20px;position:relative;
  transition:transform .35s, border-color .35s;
}
.pkg:hover{transform:translateY(-4px);border-color:var(--kraft);}
.pkg-tag{
  position:absolute;top:-1px;right:-1px;background:var(--kraft);color:var(--bone);
  padding:6px 14px;font-family:var(--font-label);font-size:9px;letter-spacing:0.25em;text-transform:uppercase;font-weight:600;
}
.pkg-head{display:flex;flex-direction:column;gap:10px;padding-bottom:22px;border-bottom:1px solid #3A2F1E;}
.pkg-head h3{font-family:var(--font-display);font-size:30px;color:var(--cream);font-weight:400;}
.pkg-price{font-family:var(--font-display);font-size:42px;color:#DECE9E;line-height:1;font-weight:400;}
.pkg-sub{font-family:"Cormorant Garamond",serif;font-style:italic;color:rgba(245,239,227,0.7);font-size:15px;line-height:1.5;}
.pkg ul{list-style:none;display:flex;flex-direction:column;gap:12px;}
.pkg li{display:flex;gap:12px;font-size:15px;color:rgba(245,239,227,0.85);line-height:1.55;}
.pkg li::before{content:"";flex-shrink:0;width:6px;height:6px;background:var(--kraft);border-radius:50%;margin-top:8px;}
.pkg-note{margin-top:40px;font-family:"Cormorant Garamond",serif;font-style:italic;color:rgba(245,239,227,0.6);font-size:14px;text-align:center;max-width:680px;margin-left:auto;margin-right:auto;}
@media (max-width:760px){.pkg-grid{grid-template-columns:1fr;}}

/* ---------- editorial split ---------- */
.story{padding:140px 0 120px;}
.story-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:80px;align-items:start;}
.story-photo{position:relative;}
.story-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;}
.story-photo .photo-cap{
  position:absolute;left:-20px;bottom:-32px;background:var(--bone);padding:14px 20px;
  font-family:var(--font-label);font-size:10px;letter-spacing:0.22em;text-transform:uppercase;color:var(--bark);font-weight:500;
  border:1px solid var(--rule);
}
.story-copy h2{
  font-family:var(--font-display);font-size:clamp(34px,4.6vw,58px);font-weight:400;
  line-height:1.05;letter-spacing:-0.008em;color:var(--bark);margin-bottom:28px;
}
.story-copy h2 em{font-style:italic;color:var(--kraft);font-family:"Cormorant Garamond",serif;}
.story-copy p{margin-bottom:18px;color:var(--bark-2);font-size:17px;line-height:1.78;}
.story-sig{
  display:flex;align-items:center;gap:18px;margin-top:36px;padding-top:24px;border-top:1px solid var(--rule);
}
.story-sig-name{font-family:var(--font-display);font-size:18px;color:var(--bark);}
.story-sig-role{font-family:var(--font-label);font-size:10px;letter-spacing:0.22em;text-transform:uppercase;color:var(--sage);font-weight:500;}
@media (max-width:880px){.story-grid{grid-template-columns:1fr;gap:50px;}}

/* ---------- gallery / real weddings ---------- */
.weddings{background:var(--cream);padding:0 0 120px;}
.wed-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.wed-tile{position:relative;overflow:hidden;}
.wed-tile img{width:100%;aspect-ratio:3/4;object-fit:cover;transition:transform .8s;cursor:zoom-in;}
.wed-tile:hover img{transform:scale(1.05);}
.wed-tile-cap{position:absolute;left:14px;bottom:12px;color:var(--bone);font-family:"Cormorant Garamond",serif;font-style:italic;font-size:14px;text-shadow:0 1px 4px rgba(0,0,0,.4);}
@media (max-width:760px){.wed-grid{grid-template-columns:repeat(2,1fr);}}

/* ---------- reviews ---------- */
.reviews{padding:120px 0;}
.rev-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:48px;}
.rev{
  border-top:1px solid var(--rule);padding-top:32px;
  display:flex;flex-direction:column;gap:20px;
}
.rev-stars{color:var(--kraft);font-size:18px;letter-spacing:4px;}
.rev blockquote{
  font-family:var(--font-display);font-size:24px;line-height:1.4;color:var(--bark);font-weight:400;
}
.rev cite{font-family:var(--font-label);font-size:10px;letter-spacing:0.22em;text-transform:uppercase;color:var(--sage);font-style:normal;font-weight:500;}
.rev-summary{
  margin-top:48px;text-align:center;font-family:"Cormorant Garamond",serif;font-style:italic;color:var(--bark-2);font-size:16px;
}
@media (max-width:760px){.rev-grid{grid-template-columns:1fr;gap:36px;}}

/* ---------- FAQ ---------- */
.faq{background:var(--cream);padding:0 0 120px;}
.faq-list{border-top:1px solid var(--rule);}
.faq-item{border-bottom:1px solid var(--rule);}
.faq-q{
  width:100%;padding:32px 0;display:flex;justify-content:space-between;align-items:flex-start;gap:32px;text-align:left;
  font-family:var(--font-display);font-size:22px;color:var(--bark);transition:color .2s;font-weight:400;
}
.faq-q:hover{color:var(--kraft);}
.faq-q .faq-icon{
  flex-shrink:0;width:22px;height:22px;border:1px solid var(--bark);border-radius:50%;
  display:flex;align-items:center;justify-content:center;position:relative;margin-top:6px;transition:all .25s;
}
.faq-q .faq-icon::before,.faq-q .faq-icon::after{
  content:"";position:absolute;background:var(--bark);transition:opacity .25s,background .25s;
}
.faq-q .faq-icon::before{width:10px;height:1px;}
.faq-q .faq-icon::after{width:1px;height:10px;}
.faq-item.open .faq-q .faq-icon{border-color:var(--kraft);background:var(--kraft);}
.faq-item.open .faq-q .faq-icon::before{background:var(--bone);}
.faq-item.open .faq-q .faq-icon::after{opacity:0;}
.faq-a{
  max-height:0;overflow:hidden;transition:max-height .35s ease;
}
.faq-a-inner{padding:0 60px 32px 0;color:var(--bark-2);font-size:16px;line-height:1.75;}
.faq-item.open .faq-a{max-height:400px;}

/* ---------- tour request form ---------- */
.tour{background:var(--bark);color:var(--cream);padding:120px 0;position:relative;overflow:hidden;}
.tour::before{
  content:"";position:absolute;inset:0;
  background:url("assets/drone-property.jpg") center/cover no-repeat;
  opacity:.14;
}
.tour .wrap{position:relative;z-index:2;}
.tour .s-head h2{color:var(--cream);}
.tour .s-head h2 em{color:#DECE9E;}
.tour .label{color:rgba(245,239,227,0.55);}
.tour-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:80px;align-items:start;margin-top:40px;}
.tour-info{display:flex;flex-direction:column;gap:32px;}
.tour-info-item .label{margin-bottom:8px;color:rgba(245,239,227,0.55);}
.tour-info-item .val{font-family:var(--font-display);font-size:22px;color:var(--cream);font-weight:400;}
.tour-info-item .val a:hover{color:#DECE9E;}
.tour-info p{color:rgba(245,239,227,0.75);font-size:16px;line-height:1.7;}

.form{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.form .full{grid-column:span 2;}
.form label{
  display:flex;flex-direction:column;gap:8px;
  font-family:var(--font-label);font-size:10px;letter-spacing:0.22em;text-transform:uppercase;color:rgba(245,239,227,0.6);font-weight:500;
}
.form input,.form textarea,.form select{
  background:transparent;border:none;border-bottom:1px solid rgba(245,239,227,0.3);
  padding:12px 0;color:var(--cream);font-family:"Cormorant Garamond",serif;font-size:16px;
  transition:border-color .25s;
}
.form input:focus,.form textarea:focus,.form select:focus{outline:none;border-bottom-color:var(--kraft);}
.form textarea{resize:vertical;min-height:80px;}
.form select option{background:var(--bark);color:var(--cream);}
.form-submit{
  grid-column:span 2;background:var(--kraft);color:var(--bone);
  padding:18px 28px;border:none;font-family:var(--font-label);font-size:11px;letter-spacing:0.24em;text-transform:uppercase;font-weight:600;
  cursor:pointer;transition:background .25s;margin-top:12px;
  display:inline-flex;align-items:center;justify-content:center;gap:14px;
}
.form-submit:hover{background:var(--bone);color:var(--bark);}
@media (max-width:880px){.tour-grid{grid-template-columns:1fr;gap:50px;}.form{grid-template-columns:1fr;}.form .full,.form-submit{grid-column:span 1;}}

/* ---------- footer ---------- */
.footer{background:var(--ink);color:rgba(245,239,227,0.75);padding:80px 0 32px;}
.foot-grid{
  display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:48px;margin-bottom:60px;
}
.foot-brand{display:flex;flex-direction:column;gap:16px;}
.foot-brand-name{font-family:var(--font-display);font-size:22px;color:var(--cream);}
.foot-brand p{font-family:"Cormorant Garamond",serif;font-style:italic;font-size:14px;color:rgba(245,239,227,0.5);line-height:1.6;max-width:32ch;}
.foot-col h5{font-family:var(--font-label);font-size:10px;letter-spacing:0.25em;text-transform:uppercase;color:var(--kraft);margin-bottom:16px;font-weight:600;}
.foot-col a, .foot-col p{display:block;font-size:14px;color:rgba(245,239,227,0.7);padding:6px 0;transition:color .2s;line-height:1.5;}
.foot-col a:hover{color:#DECE9E;}
.foot-bottom{
  border-top:1px solid rgba(245,239,227,0.1);padding-top:24px;
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;
  font-family:var(--font-label);font-size:10px;letter-spacing:0.22em;text-transform:uppercase;color:rgba(245,239,227,0.5);font-weight:500;
}
.foot-bottom a:hover{color:#DECE9E;}
@media (max-width:760px){.foot-grid{grid-template-columns:1fr 1fr;gap:32px;}}
@media (max-width:480px){.foot-grid{grid-template-columns:1fr;}}

/* ---------- LAKE / feature section ---------- */
.buffalo{background:var(--sage);color:var(--cream);padding:130px 0;position:relative;overflow:hidden;}
.buffalo::before{
  content:"";position:absolute;inset:0;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n3'><feTurbulence baseFrequency='0.6' numOctaves='2'/><feColorMatrix values='0 0 0 0 0.70  0 0 0 0 0.82  0 0 0 0 0.65  0 0 0 0.02 0'/></filter><rect width='100%' height='100%' filter='url(%23n3)'/></svg>");
  opacity:.5;pointer-events:none;
}
.buffalo .wrap{position:relative;z-index:2;}
.buffalo-grid{display:grid;grid-template-columns:1.05fr 0.95fr;gap:70px;align-items:center;}
.buffalo-copy .kicker{color:#DECE9E;margin-bottom:22px;}
.buffalo-copy h2{
  font-family:var(--font-display);font-weight:400;font-size:clamp(34px,4.8vw,62px);
  line-height:1.04;letter-spacing:-0.01em;color:var(--cream);margin-bottom:26px;
}
.buffalo-copy h2 em{font-style:italic;color:#DECE9E;font-family:"Cormorant Garamond",serif;}
.buffalo-copy p{color:rgba(245,239,227,0.85);font-size:17px;line-height:1.8;margin-bottom:18px;}
.buffalo-copy .lede{font-family:"Cormorant Garamond",serif;font-style:italic;font-size:21px;color:var(--cream);line-height:1.6;}
.buffalo-photos{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:14px;}
.buffalo-photos img{width:100%;height:100%;object-fit:cover;cursor:zoom-in;transition:transform .8s;}
.buffalo-photos figure{overflow:hidden;position:relative;margin:0;}
.buffalo-photos figure:hover img{transform:scale(1.05);}
.buffalo-photos .bp-tall{grid-row:span 2;}
.buffalo-photos .bp-tall img{aspect-ratio:3/4.2;}
.buffalo-photos .bp-sm img{aspect-ratio:4/3;}
.buffalo-cap{
  position:absolute;left:12px;bottom:10px;font-family:var(--font-label);font-size:9px;letter-spacing:0.2em;text-transform:uppercase;font-weight:500;
  color:var(--bone);background:rgba(26,25,22,0.5);padding:5px 10px;backdrop-filter:blur(4px);
}
@media (max-width:880px){
  .buffalo-grid{grid-template-columns:1fr;gap:44px;}
}

/* ---------- count-up stat ribbon ---------- */
.ribbon{background:var(--cream);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);}
.ribbon-grid{display:grid;grid-template-columns:repeat(4,1fr);}
.ribbon-cell{
  padding:54px 28px;text-align:center;border-right:1px solid var(--rule);
  display:flex;flex-direction:column;gap:10px;
}
.ribbon-cell:last-child{border-right:none;}
.ribbon-num{font-family:var(--font-display);font-size:clamp(40px,5vw,64px);color:var(--kraft);line-height:1;font-weight:400;}
.ribbon-label{font-family:var(--font-label);font-size:10px;letter-spacing:0.22em;text-transform:uppercase;color:var(--bark-2);font-weight:500;}
@media (max-width:760px){
  .ribbon-grid{grid-template-columns:1fr 1fr;}
  .ribbon-cell:nth-child(2){border-right:none;}
  .ribbon-cell:nth-child(1),.ribbon-cell:nth-child(2){border-bottom:1px solid var(--rule);}
}

/* heading underline draw */
.draw-underline{position:relative;display:inline;background-image:linear-gradient(var(--kraft),var(--kraft));background-repeat:no-repeat;background-position:0 90%;background-size:0% 2px;transition:background-size 1s ease .2s;}
.draw-underline.in{background-size:100% 2px;}

/* magnetic cta wrapper keeps transform smooth */
.hero-cta,.form-submit{will-change:transform;}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s ease, transform .9s ease;}
.reveal.in{opacity:1;transform:translateY(0);}
@media (prefers-reduced-motion:reduce){
  .reveal,.hero-bg{animation:none !important;transition:none !important;opacity:1 !important;transform:none !important;}
}
