:root{
  --bg:#F2EFEA;
  --bg-alt:#F7F5F1;
  --bg-deep:#EDE9E3;
  --ink:#242423;
  --muted:rgba(36,36,35,.56);
  --accent:#CDAF87;
  --accent-soft:#DDD2C1;
  --line:rgba(36,36,35,.1);
  --white:#F2EFEA;
  --serif:"Cormorant Garamond",serif;
  --sans:"Montserrat",sans-serif;
  --script:"Allura",cursive;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);overflow-x:hidden}
img,video{max-width:100%}
a{color:inherit;text-decoration:none}
.container{width:min(1200px,100%);margin:0 auto;padding:0 64px}
.label{display:block;font:500 10px/1.4 var(--sans);letter-spacing:.28em;text-transform:uppercase;color:var(--accent);margin-bottom:18px}
.label-light{color:rgba(242,239,234,.68)}
h1,h2,h3,p{margin:0}
h2{font:300 50px/1.08 var(--serif);text-wrap:pretty}
.divider{width:40px;height:1px;background:var(--accent);margin:24px 0}
.divider.center{margin-left:auto;margin-right:auto}
.outline,.btn-primary,.btn-secondary{display:inline-block;font:500 10px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;padding:15px 32px;border:1px solid var(--accent);transition:.28s ease}
.outline{color:var(--accent);background:transparent}
.outline:hover,.btn-primary{background:var(--accent);color:var(--ink)}
.btn-primary:hover{background:transparent;color:var(--white)}
.btn-secondary{color:var(--white);border-color:rgba(242,239,234,.45)}
.btn-secondary:hover{border-color:var(--accent);color:var(--accent)}

.gradient-hero{background:linear-gradient(160deg,#3a2e22 0%,#6b5640 18%,#9e7e58 42%,#c4a070 62%,#3a2e22 100%)}
.gradient-warm{background:linear-gradient(155deg,#8b7355 0%,#c4a882 40%,#d9c4a8 62%,#b8956a 100%)}
.gradient-beach{background:linear-gradient(155deg,#3a5e72 0%,#6a9eb8 35%,#b8d0d0 62%,#d9d0b8 100%)}
.gradient-cenote{background:linear-gradient(155deg,#162830 0%,#224848 35%,#326868 60%,#40a090 100%)}
.gradient-jungle{background:linear-gradient(155deg,#1e2e1a 0%,#384e2a 35%,#587840 60%,#90b060 100%)}
.gradient-hacienda{background:linear-gradient(155deg,#502818 0%,#885038 35%,#b88060 62%,#dcc8a8 100%)}
.gradient-estate{background:linear-gradient(155deg,#383828 0%,#686848 35%,#b0a880 62%,#d8d0b8 100%)}
.gradient-editorial{background:linear-gradient(140deg,#c0b0a0 0%,#d8c8b8 40%,#ece0d0 65%,#cdaf87 100%)}
.gradient-p1{background:linear-gradient(175deg,#4a3828 0%,#8a6848 30%,#c0a070 58%,#e0c898 82%)}
.gradient-p2{background:linear-gradient(175deg,#283828 0%,#486848 30%,#80a868 58%,#c0d0a8 82%)}
.gradient-p3{background:linear-gradient(175deg,#382820 0%,#704840 30%,#a07060 58%,#d0b0a0 82%)}
.photo{background-size:cover;background-position:center}
.photo-gradient{background-size:200% 200%;animation:drift 18s ease-in-out infinite alternate}
@keyframes drift{from{background-position:0 0}to{background-position:100% 100%}}

.nav{position:fixed;inset:0 0 auto;z-index:50;height:70px;padding:0 64px;display:flex;align-items:center;justify-content:space-between;gap:28px;color:var(--white);transition:.35s ease}
.nav.scrolled{background:rgba(242,239,234,.96);backdrop-filter:blur(18px);border-bottom:1px solid var(--line);color:var(--ink)}
.brand{font:400 14px/1 var(--serif);letter-spacing:.25em;text-transform:uppercase;white-space:nowrap}
.nav-links{display:flex;gap:44px}
.nav-links a{font:500 10px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;opacity:.68}
.nav-links a:hover{opacity:1}
.outline-nav{border-color:currentColor;color:currentColor}
.nav.scrolled .outline-nav{border-color:var(--accent);color:var(--accent)}

.hero{height:100vh;height:100svh;min-height:700px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;text-align:center}
.hero-bg,.hero-overlay,.hero-video{position:absolute;inset:0}
.hero-bg{background-size:cover;background-position:center;background-attachment:fixed}
.hero-image{background-size:cover;background-position:center}
.hero-video{width:100%;height:100%;object-fit:cover}
.hero-overlay{background:linear-gradient(to bottom,rgba(10,8,6,.45),rgba(10,8,6,.28) 50%,rgba(10,8,6,.56))}
.hero-content{position:relative;max-width:850px;width:100%;padding:0 32px;color:var(--white)}
.script{font:400 54px/1 var(--script);color:var(--accent);margin:0 0 16px}
.hero h1{font:300 clamp(48px,6.5vw,88px)/1.06 var(--serif);margin-bottom:28px;text-wrap:pretty}
.hero-sub{font:300 11px/1.8 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:rgba(242,239,234,.62);margin-bottom:44px}
.hero-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.scroll-hint{position:absolute;bottom:36px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px}
.scroll-hint span{font:400 9px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:rgba(242,239,234,.35)}
.scroll-hint i{width:1px;height:40px;background:rgba(242,239,234,.25)}

.intro{padding:120px 0;background:var(--bg)}
.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.intro-body{font:italic 300 20px/1.7 var(--serif);color:var(--muted);margin-bottom:24px}
.callout{font:300 12px/1.8 var(--sans);border-left:2px solid var(--accent);padding-left:20px;margin-bottom:48px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);padding-top:40px}
.stats div{padding:0 28px;border-right:1px solid var(--line)}
.stats div:first-child{padding-left:0}.stats div:last-child{border-right:0;padding-right:0}
.stats b{display:block;font:300 48px/1 var(--serif);color:var(--accent);margin-bottom:6px}
.stats span{font:400 10px/1.45 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.intro-media{position:relative}
.intro-media .photo{aspect-ratio:3/4;width:100%}
.intro-media::after{content:"";position:absolute;right:-24px;bottom:-24px;width:180px;height:180px;border:1px solid var(--accent-soft)}
.monogram{position:absolute;top:24px;left:24px;width:72px;opacity:.85;filter:brightness(0) invert(1)}

.diff,.packages{background:var(--bg-alt);padding:120px 0}
.split-head{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:1px solid var(--line);padding-bottom:48px;margin-bottom:72px;gap:40px}
.diff-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.diff-grid article{padding:40px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.diff-grid article:nth-child(3n){border-right:0}.diff-grid article:nth-last-child(-n+3){border-bottom:0}
.diff-grid span{display:block;font:300 13px/1 var(--serif);letter-spacing:.1em;color:var(--accent);margin-bottom:16px}
.diff-grid h3{font:400 22px/1.2 var(--serif);margin-bottom:12px}
.diff-grid p,.venues-head p,.steps p,.package .desc,.center-head p{font:300 12px/1.8 var(--sans);color:var(--muted)}

.venues{background:var(--bg);padding:120px 0}
.venues-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:60px;gap:40px}
.venues-head p{max-width:360px;text-align:right}
.venue-rail{display:flex;gap:20px;overflow-x:auto;padding:0 64px 8px;scrollbar-width:none}
.venue-card{width:300px;flex:0 0 300px;position:relative;overflow:hidden}
.venue-card .photo{height:420px;transition:.6s ease}
.venue-card::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(10,8,6,.48),transparent 60%);transition:.3s ease}
.venue-card:hover .photo{transform:scale(1.04)}
.venue-card:hover::after{background:linear-gradient(to top,rgba(10,8,6,.66),transparent 60%)}
.venue-card div:last-child{position:absolute;left:24px;right:24px;bottom:24px;z-index:2}
.venue-card p{font:500 9px/1.3 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}
.venue-card h3{font:300 26px/1.1 var(--serif);color:var(--white)}
.venues .container:last-child{padding-top:48px}

.process,.gallery{background:var(--bg-deep);padding:120px 0}
.center-head{text-align:center;margin:0 auto 72px;max-width:720px}
.center-head h2{display:inline-block}
.center-head p{margin-top:20px}
.steps{display:grid;grid-template-columns:1fr 1fr;gap:0 80px}
.steps article{display:flex;gap:28px;padding:36px 0;border-top:1px solid var(--line)}
.steps article:nth-last-child(-n+2){border-bottom:1px solid var(--line)}
.steps span{font:300 40px/1 var(--serif);color:var(--accent);margin-top:-6px}
.steps h3{font:400 22px/1.2 var(--serif);margin-bottom:10px}

.package-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:start}
.package{background:#fff;border:1px solid var(--line);padding:44px 36px;position:relative}
.package.featured{border-color:var(--accent);transform:translateY(-12px);box-shadow:0 20px 60px rgba(205,175,135,.12)}
.badge{position:absolute;top:-1px;left:50%;transform:translateX(-50%);background:var(--accent);padding:6px 20px;font:600 9px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;white-space:nowrap}
.package h3{font:300 32px/1.1 var(--serif);margin-bottom:6px}
.package.featured h3{margin-top:12px}
.price{font:400 11px/1.5 var(--sans);letter-spacing:.05em;color:var(--accent);margin-bottom:16px}
.package .desc{border-bottom:1px solid var(--line);padding-bottom:28px;margin-bottom:28px}
.package ul{list-style:none;padding:0;margin:0 0 36px;display:flex;flex-direction:column;gap:12px}
.package li{display:flex;gap:12px;font:300 11px/1.5 var(--sans)}
.package li::before{content:"-";color:var(--accent);font-size:13px}

.gallery-grid{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:320px 280px;gap:12px}
.gallery-grid .photo:first-child{grid-row:1/3}
.testimonials{background:var(--bg);padding:120px 0;text-align:center}
.testimonials-inner{max-width:860px}
blockquote{font:italic 300 26px/1.65 var(--serif);margin:56px 0 36px}
.quote-author{font:400 17px/1.2 var(--serif);margin-bottom:6px}
.quote-meta{font:400 10px/1.4 var(--sans);letter-spacing:.15em;text-transform:uppercase;color:var(--accent)}
.dots{display:flex;gap:12px;justify-content:center;margin-top:44px}
.dots button{width:8px;height:8px;border:0;border-radius:4px;background:var(--accent-soft);padding:0;cursor:pointer;transition:.3s}
.dots button.active{width:28px;background:var(--accent)}

.contact{background:var(--ink);color:var(--white);padding:120px 0}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px}
.contact h2{color:var(--white);font-size:48px}
.contact p{font:300 13px/1.8 var(--sans);color:rgba(242,239,234,.55);margin-bottom:56px}
.contact-photo{aspect-ratio:4/3}
.contact-form{display:flex;flex-direction:column;gap:28px;padding-top:12px}
.contact-form label span{display:block;font:500 9px/1.4 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}
.contact-form input,.contact-form textarea{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(242,239,234,.2);padding:12px 0;color:var(--white);font:300 12px/1.5 var(--sans);outline:0;border-radius:0}
.contact-form input:focus,.contact-form textarea:focus{border-bottom-color:var(--accent)}
.contact-form textarea{resize:vertical}
.contact-form button{align-self:flex-start;background:var(--accent);border:1px solid var(--accent);color:var(--ink);padding:16px 40px;font:500 10px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;cursor:pointer}
.hp{position:absolute;left:-9999px}
.form-error{color:#ffb1a7!important;margin:0!important}
.form-thanks{display:none;text-align:center;padding-top:48px}
.form-thanks.show{display:block}
.form-thanks h3{font:400 48px/1 var(--script);color:var(--accent);margin-bottom:16px}

footer{background:#1a1a19;color:var(--white);padding:72px 0 40px;border-top:1px solid rgba(205,175,135,.12)}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:60px;padding-bottom:56px;border-bottom:1px solid rgba(205,175,135,.1);margin-bottom:36px}
.foot-brand{font:400 22px/1.2 var(--serif);letter-spacing:.2em;text-transform:uppercase;margin-bottom:8px}
.foot-tag,footer h4{font:400 10px/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:20px}
.foot-location,.foot-bottom,footer a{font:300 11px/1.7 var(--sans);color:rgba(242,239,234,.42)}
footer a{display:block;margin-bottom:12px}
footer a:hover{color:var(--accent)}
.foot-bottom{padding-top:0}

@media(max-width:1180px){
  .container{padding:0 44px}
  .nav{padding:0 40px}
  .nav-links{gap:28px}
  .package-grid{grid-template-columns:repeat(2,1fr)}
  .package.featured{transform:none}
  .diff-grid{grid-template-columns:repeat(2,1fr)}
  .diff-grid article{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
  .diff-grid article:nth-child(2n){border-right:0}
  .diff-grid article:nth-child(3n){border-right:1px solid var(--line)}
  .diff-grid article:nth-child(6){border-right:0}
}

@media(max-width:920px){
  .container{padding:0 28px}
  .nav{height:66px;padding:0 24px}
  .nav-links{display:none}
  .brand{font-size:12px;letter-spacing:.18em;min-width:0;overflow:hidden;text-overflow:ellipsis}
  .outline-nav{padding:11px 14px;font-size:9px;letter-spacing:.14em;white-space:nowrap}

  .hero{min-height:620px;padding:96px 0 72px}
  .hero-bg{background-attachment:scroll}
  .hero-content{padding:0 24px;max-width:720px}
  .label{letter-spacing:.22em}
  .script{font-size:44px;margin-bottom:12px}
  .hero h1{font-size:clamp(44px,10vw,66px);line-height:1.04;margin-bottom:22px}
  .hero-sub{font-size:10px;letter-spacing:.16em;line-height:1.9;margin-bottom:34px}
  .hero-actions{gap:12px}
  .btn-primary,.btn-secondary,.outline{padding:14px 24px;letter-spacing:.16em}
  .scroll-hint{bottom:22px}

  .intro,.diff,.venues,.process,.packages,.gallery,.testimonials,.contact{padding:86px 0}
  h2,.contact h2{font-size:clamp(36px,8vw,48px)}
  .intro-grid,.contact-grid,.foot-grid{grid-template-columns:1fr;gap:48px}
  .intro-media{max-width:520px;margin:0 auto}
  .intro-media::after{right:-12px;bottom:-12px;width:120px;height:120px}
  .stats{gap:0}
  .stats div{padding:0 18px}
  .stats b{font-size:38px}

  .split-head,.venues-head{display:block;margin-bottom:44px;padding-bottom:36px}
  .split-head .outline{margin-top:28px}
  .venues-head p{text-align:left;margin-top:18px;max-width:none}
  .venue-rail{padding-left:28px;padding-right:28px;gap:16px}
  .venue-card{width:260px;flex-basis:260px}
  .venue-card .photo{height:360px}

  .steps{grid-template-columns:1fr;gap:0}
  .steps article{border-top:1px solid var(--line);border-bottom:0}
  .steps article:nth-last-child(-n+2){border-bottom:0}
  .steps article:last-child{border-bottom:1px solid var(--line)}
  .package-grid{grid-template-columns:1fr;gap:18px}
  .package{padding:36px 28px}
  .gallery-grid{grid-template-columns:1fr;grid-template-rows:repeat(5,260px)}
  .gallery-grid .photo:first-child{grid-row:auto}
  blockquote{font-size:24px;margin-top:42px}
  .contact-photo{max-height:360px}
}

@media(max-width:640px){
  .container{padding:0 20px}
  .nav{height:auto;min-height:64px;padding:14px 18px;align-items:flex-start}
  .brand{font-size:11px;letter-spacing:.16em;line-height:1.25;max-width:54vw;white-space:normal}
  .outline-nav{padding:10px 11px;font-size:8px;letter-spacing:.11em;max-width:132px;text-align:center;line-height:1.25}

  .hero{min-height:560px;padding:92px 0 68px}
  .hero-content{padding:0 18px}
  .label{font-size:9px;letter-spacing:.18em;margin-bottom:14px}
  .script{font-size:36px}
  .hero h1{font-size:clamp(38px,13vw,54px);line-height:1.02;margin-bottom:20px}
  .hero-sub{font-size:9px;letter-spacing:.13em;line-height:1.8;max-width:320px;margin-left:auto;margin-right:auto}
  .hero-actions{display:grid;grid-template-columns:1fr;max-width:300px;margin:0 auto}
  .btn-primary,.btn-secondary,.outline{width:100%;text-align:center;padding:14px 18px;font-size:9px;letter-spacing:.14em;line-height:1.2}
  .scroll-hint{display:none}

  .intro,.diff,.venues,.process,.packages,.gallery,.testimonials,.contact{padding:68px 0}
  h2,.contact h2{font-size:34px;line-height:1.08}
  .intro-body{font-size:18px;line-height:1.6}
  .callout{font-size:12px;padding-left:16px;margin-bottom:34px}
  .stats{grid-template-columns:1fr;border-top:1px solid var(--line);padding-top:0}
  .stats div{border-right:0;border-bottom:1px solid var(--line);padding:20px 0}
  .stats div:last-child{border-bottom:0}
  .stats b{font-size:36px}
  .monogram{width:56px;top:18px;left:18px}

  .diff-grid{grid-template-columns:1fr}
  .diff-grid article,.diff-grid article:nth-child(2n),.diff-grid article:nth-child(3n),.diff-grid article:nth-child(6){border-right:0}
  .diff-grid article{padding:28px 0}
  .diff-grid article:last-child{border-bottom:0}
  .venue-rail{padding-left:20px;padding-right:20px}
  .venue-card{width:78vw;flex-basis:78vw;max-width:320px}
  .venue-card .photo{height:340px}
  .venue-card div:last-child{left:18px;right:18px;bottom:20px}

  .center-head{margin-bottom:48px}
  .steps article{gap:18px;padding:28px 0}
  .steps span{font-size:34px;min-width:44px}
  .package{padding:34px 22px}
  .badge{font-size:8px;letter-spacing:.16em}
  .package h3{font-size:30px}
  .gallery-grid{grid-template-rows:repeat(5,220px)}
  blockquote{font-size:21px;line-height:1.55;margin:36px 0 30px}

  .contact-grid{gap:38px}
  .contact p{margin-bottom:36px}
  .contact-form{gap:22px}
  .contact-form button{width:100%;padding:15px 20px;letter-spacing:.16em}
  .foot-grid{gap:30px;padding-bottom:34px}
  .foot-brand{font-size:18px;letter-spacing:.16em}
}

@media(max-width:380px){
  .hero h1{font-size:36px}
  .script{font-size:32px}
  .outline-nav{display:none}
  .brand{max-width:100%;font-size:12px}
  .venue-card{width:84vw;flex-basis:84vw}
}
