/* Oaxaca Immersions — site styles
   Extracted from the single-file HTML handoff into its own cacheable
   stylesheet. See README.md for the build workflow. */

:root{
  --ink:#2B2320;
  --ink-soft:#4a3d33;
  --agave:#5C6B3F;
  --agave-deep:#3f4a2b;
  --clay:#B4592A;
  --clay-deep:#8a4420;
  --sand:#F4EDE2;
  --sand-2:#eadfcb;
  --gold:#9C7A3C;
  --gold-light:#cba766;
  --grey:#6B6660;
  --night-1:#0c1820;
  --night-2:#173142;
  --night-3:#1f4a4a;
  --white:#ffffff;
  --serif: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --sans: 'Lato', 'Helvetica Neue', Arial, sans-serif;
  --wordmark: 'Bodoni Moda', 'Playfair Display', Georgia, serif;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
#top, #palenque, #about, #experiences, #trust, #faq, #contact, #inquiry-form{scroll-margin-top:110px;}
body{
  margin:0;
  font-family:var(--sans);
  color:var(--ink);
  background:var(--sand);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{text-decoration:none;color:inherit;}
.eyebrow{
  font-family:var(--sans);
  font-weight:700;
  letter-spacing:.22em;
  text-transform:uppercase;
  font-size:12px;
  color:var(--gold);
}
.eyebrow.on-dark{color:var(--gold-light);}
h1,h2,h3{
  font-family:var(--serif);
  margin:0;
  font-weight:600;
  color:var(--ink);
  line-height:1.08;
}
p{line-height:1.7;margin:0;color:var(--ink-soft);}
.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:var(--sans);
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-size:12.5px;
  padding:15px 30px;
  border-radius:2px;
  transition:all .25s ease;
  cursor:pointer;
}
.btn-solid{background:var(--gold);color:var(--white);border:1px solid var(--gold);}
.btn-solid:hover{background:var(--gold-light);border-color:var(--gold-light);}
.btn-ghost{background:transparent;color:var(--white);border:1px solid rgba(255,255,255,.55);}
.btn-ghost:hover{background:rgba(255,255,255,.12);border-color:var(--white);}
.btn-ghost-dark{background:transparent;color:var(--ink);border:1px solid var(--ink);}
.btn-ghost-dark:hover{background:var(--ink);color:var(--sand);}

.night-cta-row{display:flex;align-items:center;gap:30px;flex-wrap:wrap;}
.rosario-link{
  background:none;border:none;padding:0;cursor:pointer;
  font-family:var(--sans);font-weight:700;font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--sand);text-decoration:underline;text-underline-offset:5px;text-decoration-color:rgba(244,237,226,.5);
  transition:color .2s ease;
}
.rosario-link:hover{color:var(--gold-light);text-decoration-color:var(--gold-light);}

/* MODAL */
.modal{display:none;position:fixed;inset:0;z-index:300;align-items:center;justify-content:center;padding:24px;}
.modal.open{display:flex;}
.modal-backdrop{position:absolute;inset:0;background:rgba(12,15,10,.8);}
.modal-card{
  position:relative;z-index:1;background:var(--sand);max-width:600px;width:100%;max-height:88vh;overflow-y:auto;
  border-radius:3px;box-shadow:0 50px 100px -20px rgba(0,0,0,.5);
}
.modal-photo{width:100%;aspect-ratio:16/9;overflow:hidden;}
.modal-photo img{width:100%;height:100%;object-fit:cover;object-position:center 28%;}
.modal-body{padding:36px 40px 42px;}
.modal-body h3{font-size:clamp(26px,3vw,32px);margin:10px 0 6px;}
.modal-sub{
  font-family:var(--sans);font-size:12px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--gold);margin-bottom:20px;font-weight:700;
}
.modal-body p{margin-bottom:16px;font-size:15px;}
.modal-body p:last-child{margin-bottom:0;font-style:italic;color:var(--ink-soft);}
.modal-close{
  position:absolute;top:14px;right:14px;z-index:2;width:34px;height:34px;border-radius:50%;
  background:rgba(12,15,10,.55);color:#fff;border:none;font-size:19px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:background .2s ease;
}
.modal-close:hover{background:rgba(12,15,10,.85);}

.agave-glyph{width:16px;height:16px;color:var(--gold);}

.divider{
  display:flex;align-items:center;justify-content:center;gap:14px;
  padding:34px 20px;
}
.divider.tight{padding:0;}
.divider .line{height:1px;width:70px;background:var(--gold);opacity:.55;}
.divider.on-dark .line{background:var(--gold-light);opacity:.6;}
.divider.on-dark .agave-glyph{color:var(--gold-light);}

.wrap{max-width:1180px;margin:0 auto;padding:0 32px;}

/* NAV */
header{
  position:fixed;top:0;left:0;right:0;z-index:50;
  padding:22px 0;
  transition:background .3s ease, padding .3s ease, box-shadow .3s ease;
}
header .wrap{display:flex;align-items:center;justify-content:space-between;}
header.scrolled{
  background:rgba(244,237,226,.96);
  padding:14px 0;
  box-shadow:0 2px 18px rgba(43,35,32,.08);
}
.brand{display:flex;align-items:center;gap:12px;}
.brand .mark{
  width:40px;height:40px;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.brand .mark img{width:100%;height:100%;object-fit:contain;filter:brightness(0) invert(1);opacity:.92;}
header.scrolled .brand .mark img{filter:none;opacity:1;}
.brand .word{
  width:196px;height:20px;
  background-color:var(--white);
  -webkit-mask:url(../assets/logo_wordmark_bold.png) no-repeat center / contain;
  mask:url(../assets/logo_wordmark_bold.png) no-repeat center / contain;
}
header.scrolled .brand .word{
  background-color:var(--ink);
  -webkit-mask-image:url(../assets/logo_wordmark.png);
  mask-image:url(../assets/logo_wordmark.png);
}
header.scrolled .brand .word{color:var(--ink);}
nav.links{display:flex;align-items:center;gap:34px;}
nav.links a{
  font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:rgba(255,255,255,.92);
  position:relative;padding-bottom:4px;
}
header.scrolled nav.links a{color:var(--ink);}
nav.links a::after{
  content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--gold);
  transition:width .25s ease;
}
nav.links a:hover::after{width:100%;}
.nav-cta{display:none;}
@media(min-width:900px){.nav-cta{display:inline-flex;}}
.menu-btn{display:none;color:var(--white);font-size:22px;background:none;border:none;cursor:pointer;padding:4px;line-height:1;}
header.scrolled .menu-btn{color:var(--ink);}
@media(max-width:899px){
  nav.links{display:none;}
  .menu-btn{display:block;}
}

/* MOBILE NAV DRAWER */
.mobile-nav{display:none;position:fixed;inset:0;z-index:280;}
.mobile-nav.open{display:block;}
.mobile-nav-backdrop{position:absolute;inset:0;background:rgba(12,15,10,.6);}
.mobile-nav-panel{
  position:absolute;top:0;right:0;bottom:0;width:78%;max-width:320px;
  background:var(--sand);padding:90px 32px 40px;overflow-y:auto;
  display:flex;flex-direction:column;gap:2px;
  box-shadow:-20px 0 60px rgba(0,0,0,.25);
}
.mobile-nav-panel a{
  font-family:var(--sans);font-size:15px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  color:var(--ink);padding:14px 0;border-bottom:1px solid rgba(43,35,32,.1);
}
.mobile-nav-panel .btn{margin-top:26px;text-align:center;border-bottom:none;}
.mobile-nav-close{
  position:absolute;top:20px;right:20px;width:38px;height:38px;border-radius:50%;
  background:rgba(43,35,32,.08);border:none;color:var(--ink);font-size:20px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
}
@media(min-width:900px){.mobile-nav{display:none!important;}}

/* HERO */
.hero{
  position:relative;min-height:100vh;
  display:flex;align-items:flex-end;
  background-image:linear-gradient(180deg, rgba(12,15,10,.35) 0%, rgba(12,15,10,.25) 40%, rgba(12,10,8,.86) 100%), url('../assets/hero.jpg');
  background-size:cover;background-position:center 65%;
}
.hero-inner{padding:0 32px 100px;max-width:1180px;margin:0 auto;width:100%;}
.hero-inner .eyebrow{
  display:inline-flex;align-items:center;
  margin-bottom:24px;
  color:var(--gold-light);
  font-weight:800;
  letter-spacing:.2em;
  background:rgba(10,13,9,.45);
  border:1px solid rgba(203,166,102,.5);
  padding:10px 20px;
  border-radius:2px;
  -webkit-backdrop-filter:blur(4px);
  backdrop-filter:blur(4px);
}
.hero h1{
  color:var(--white);
  font-size:clamp(40px,7vw,84px);
  max-width:760px;
  margin-bottom:20px;
}
.hero .sub{
  font-family:var(--serif);font-style:italic;font-weight:600;
  color:rgba(255,255,255,.96);
  font-size:clamp(16px,2vw,21px);
  max-width:560px;line-height:1.55;
  margin-bottom:36px;
}
.hero .cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:28px;}
.hero .see-link{
  color:var(--white);font-weight:700;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;
  border-bottom:1px solid rgba(255,255,255,.5);padding-bottom:4px;
}
.scroll-cue{
  position:absolute;bottom:26px;left:50%;transform:translateX(-50%);
  color:rgba(255,255,255,.75);font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  display:flex;flex-direction:column;align-items:center;gap:8px;
}
.scroll-cue span.line{width:1px;height:34px;background:rgba(255,255,255,.55);animation:scrollPulse 2s ease-in-out infinite;}
@keyframes scrollPulse{0%{opacity:.2;transform:scaleY(.4);transform-origin:top;}50%{opacity:1;transform:scaleY(1);transform-origin:top;}100%{opacity:.2;transform:scaleY(.4);transform-origin:top;}}

/* INTRO */
.intro{padding:120px 0 100px;}
.intro.concept{padding:30px 0 64px;}
.intro-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:center;}
@media(max-width:860px){.intro-grid{grid-template-columns:1fr;gap:40px;}}
.intro h2{font-size:clamp(28px,3.4vw,42px);margin:14px 0 24px;}
.intro p{font-size:16.5px;max-width:520px;}
.intro-photo{
  position:relative;border-radius:2px;overflow:hidden;
  box-shadow:0 30px 60px -20px rgba(43,35,32,.35);
}
.intro-photo img{aspect-ratio:4/5;object-fit:cover;width:100%;}
.intro-photo .cap{
  position:absolute;left:0;right:0;bottom:0;
  background:linear-gradient(0deg, rgba(12,15,10,.75), transparent);
  color:#fff;font-family:var(--serif);font-style:italic;font-weight:600;font-size:14px;
  padding:22px 20px 16px;
}

.about{background:var(--sand-2);}

/* HOW IT WORKS */
.how{background:var(--ink);padding:100px 0;color:var(--sand);}
.how .eyebrow{text-align:center;color:var(--gold-light);}
.how h2{color:var(--sand);text-align:center;font-size:clamp(26px,3.2vw,38px);margin:14px 0 60px;}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative;}
@media(max-width:860px){.steps{grid-template-columns:1fr;gap:40px;}}
.steps::before{
  content:"";position:absolute;top:22px;left:6%;right:6%;height:1px;
  background:linear-gradient(90deg, transparent, rgba(201,166,102,.5), transparent);
}
@media(max-width:860px){.steps::before{display:none;}}
.step{padding:0 22px;text-align:left;position:relative;}
.step .num{
  font-family:var(--serif);font-size:34px;color:var(--gold-light);
  background:var(--ink);display:inline-block;padding-right:14px;position:relative;z-index:2;
}
.step h3{color:var(--sand);font-family:var(--sans);font-weight:900;font-size:14.5px;
  letter-spacing:.04em;text-transform:uppercase;margin:20px 0 12px;}
.step p{color:rgba(244,237,226,.7);font-size:14.5px;}

/* NIGHT / ANCHOR SECTION */
.night{
  position:relative;overflow:hidden;
  padding:120px 0 0;
  background:radial-gradient(ellipse 1100px 560px at 50% 0%, rgba(242,217,161,.13), transparent 62%),
             linear-gradient(180deg, var(--night-1) 0%, var(--night-2) 55%, var(--night-2) 100%);
  color:var(--sand);
}
.stars{position:absolute;inset:0;z-index:0;
  background-image:
    radial-gradient(1.5px 1.5px at 10% 15%, rgba(255,255,255,.85), transparent),
    radial-gradient(1.5px 1.5px at 22% 8%, rgba(255,255,255,.7), transparent),
    radial-gradient(1px 1px at 33% 22%, rgba(255,255,255,.6), transparent),
    radial-gradient(1.5px 1.5px at 46% 6%, rgba(255,255,255,.8), transparent),
    radial-gradient(1px 1px at 58% 18%, rgba(255,255,255,.55), transparent),
    radial-gradient(1.5px 1.5px at 68% 9%, rgba(255,255,255,.75), transparent),
    radial-gradient(1px 1px at 78% 25%, rgba(255,255,255,.55), transparent),
    radial-gradient(1.5px 1.5px at 88% 13%, rgba(255,255,255,.8), transparent),
    radial-gradient(1px 1px at 5% 30%, rgba(255,255,255,.5), transparent),
    radial-gradient(1px 1px at 95% 32%, rgba(255,255,255,.5), transparent);
}
.night-content{position:relative;z-index:2;max-width:640px;padding-bottom:50px;}
.night h2{color:var(--white);font-size:clamp(30px,4vw,50px);margin:16px 0 22px;}
.night p{color:rgba(244,237,226,.82);font-size:16.5px;max-width:520px;margin-bottom:34px;}
.mountains{position:relative;z-index:1;line-height:0;}
.mountains svg{width:100%;height:auto;display:block;}
.night-footer{
  position:relative;z-index:2;
  background:var(--night-1);
  padding:26px 0 34px;
}
.night-footer .row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:18px;}
.night-footer .mark{
  width:40px;height:40px;
  display:flex;align-items:center;justify-content:center;
}
.night-footer .mark img{width:100%;height:100%;object-fit:contain;}
.night-footer .tagline{
  font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;color:rgba(244,237,226,.65);
}

/* EXPERIENCE CARDS */
.experiences{padding:120px 0 100px;}
.experiences .head{text-align:center;max-width:640px;margin:0 auto 56px;}
.experiences .head h2{font-size:clamp(28px,3.4vw,42px);margin:14px 0 16px;}
.card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;}
@media(max-width:760px){.card-grid{grid-template-columns:1fr;}}
.exp-card{
  position:relative;border-radius:2px;overflow:hidden;aspect-ratio:5/4;
  box-shadow:0 24px 50px -24px rgba(43,35,32,.4);
}
.exp-card img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease;}
.exp-card:hover img{transform:scale(1.06);}
.exp-card .overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(10,10,8,.05) 30%, rgba(10,10,8,.82) 100%);
}
.exp-card .content{position:absolute;left:0;right:0;bottom:0;padding:26px 26px 24px;color:var(--white);}
.exp-card .tag{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-light);font-weight:700;margin-bottom:8px;}
.exp-card h3{font-family:var(--serif);color:var(--white);font-size:23px;margin-bottom:8px;font-weight:600;}
.exp-card .desc{font-size:13.5px;color:rgba(255,255,255,.82);margin-bottom:14px;max-width:320px;}
.exp-card .price{font-size:12.5px;font-weight:700;letter-spacing:.04em;color:var(--white);display:flex;align-items:center;justify-content:space-between;}
.exp-card .price .arrow{color:var(--gold-light);}

/* TRUST BAR */
.trust{background:var(--sand-2);padding:80px 0;}
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:40px;}
@media(max-width:860px){.trust-grid{grid-template-columns:repeat(2,1fr);}}
.trust-item{display:flex;flex-direction:column;gap:14px;}
.trust-item .icon{width:34px;height:34px;color:var(--clay);}
.trust-item h4{font-family:var(--sans);font-weight:900;font-size:13.5px;letter-spacing:.03em;text-transform:uppercase;margin:0;color:var(--ink);}
.trust-item p{font-size:14px;}

/* FAQ */
.faq{padding:110px 0;}
.faq .head{text-align:center;max-width:640px;margin:0 auto 50px;}
.faq .head h2{font-size:clamp(28px,3.4vw,42px);margin:14px 0 0;}
.faq-list{max-width:740px;margin:0 auto;}
.faq-item{border-bottom:1px solid rgba(43,35,32,.14);}
.faq-item summary{
  list-style:none;cursor:pointer;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:24px 2px;
  font-family:var(--serif);font-size:19px;font-weight:600;color:var(--ink);
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary .plus{
  font-family:var(--sans);font-size:22px;font-weight:300;color:var(--gold);flex-shrink:0;
  transition:transform .25s ease;
}
.faq-item[open] summary .plus{transform:rotate(45deg);}
.faq-item .faq-answer{padding:0 34px 26px 2px;margin:0;max-width:640px;}

/* CLOSING CTA */
.closing{
  position:relative;min-height:70vh;display:flex;align-items:center;justify-content:center;text-align:center;
  background-image:linear-gradient(180deg, rgba(12,15,10,.55), rgba(12,10,8,.75)), url('../assets/cta.jpg');
  background-size:cover;background-position:center;
}
.closing-inner{max-width:640px;padding:0 32px;}
.closing h2{color:var(--white);font-size:clamp(30px,4.4vw,52px);margin:16px 0 18px;}
.closing .sub{font-family:var(--serif);font-style:italic;font-weight:600;color:rgba(255,255,255,.96);font-size:18px;margin-bottom:36px;}

/* INQUIRY FORM */
.inquiry{background:var(--sand-2);padding:80px 0;}
.inquiry-card{
  max-width:680px;margin:0 auto;background:var(--sand);border-radius:3px;
  padding:48px 44px;box-shadow:0 30px 70px -30px rgba(43,35,32,.25);
}
.inquiry-card .head{text-align:center;max-width:520px;margin:0 auto 36px;}
.inquiry-card .head h2{font-size:clamp(24px,3vw,32px);margin:14px 0 12px;}
.inquiry-card .head p{font-size:14.5px;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px;}
.field{display:flex;flex-direction:column;gap:7px;}
.field.full{grid-column:1 / -1;}
.field label{
  font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--grey);
}
.field input, .field select, .field textarea{
  font-family:var(--sans);font-size:14.5px;color:var(--ink);
  background:var(--white);border:1px solid rgba(43,35,32,.18);border-radius:2px;
  padding:12px 14px;width:100%;box-sizing:border-box;transition:border-color .2s ease;
}
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none;border-color:var(--gold);
}
.field textarea{resize:vertical;min-height:90px;font-family:var(--sans);}
.hp-field{position:absolute;left:-9999px;top:-9999px;}
.inquiry-submit{width:100%;justify-content:center;border:none;font-size:13px;padding:16px 30px;margin-top:6px;}
.inquiry-note{text-align:center;font-size:12.5px;color:var(--grey);margin-top:16px;}
.inquiry-error{
  display:none;background:rgba(180,89,42,.1);border:1px solid rgba(180,89,42,.3);
  color:var(--clay);font-size:13.5px;border-radius:2px;padding:12px 16px;margin-bottom:20px;
}
.inquiry-error a{text-decoration:underline;color:var(--clay);}
.inquiry-success{display:none;text-align:center;padding:20px 0;}
.inquiry-success h3{font-size:clamp(22px,2.8vw,28px);margin-bottom:14px;}
.inquiry-success p{max-width:440px;margin:0 auto;font-size:15px;}
.inquiry-success .agave-glyph{width:30px;height:30px;color:var(--gold);margin:0 auto 18px;}
@media(max-width:600px){
  .inquiry-card{padding:36px 24px;}
  .field-row{grid-template-columns:1fr;gap:20px;}
}

/* FOOTER */
footer{background:var(--ink);color:rgba(244,237,226,.75);padding:80px 0 30px;}
.footer-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:40px;padding-bottom:56px;border-bottom:1px solid rgba(244,237,226,.12);}
@media(max-width:760px){.footer-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}}
@media(max-width:520px){.footer-grid{grid-template-columns:minmax(0,1fr);gap:34px;}}
.footer-brand{display:flex;align-items:center;gap:12px;margin-bottom:16px;}
.footer-brand .mark{width:38px;height:38px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.footer-brand .mark img{width:100%;height:100%;object-fit:contain;}
.footer-brand .word{
  width:186px;height:19px;
  background-color:var(--sand);
  -webkit-mask:url(../assets/logo_wordmark_bold.png) no-repeat center / contain;
  mask:url(../assets/logo_wordmark_bold.png) no-repeat center / contain;
}
.footer-tag{font-family:var(--serif);font-style:italic;font-weight:600;color:rgba(244,237,226,.85);font-size:15px;}
footer h5{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-light);margin:0 0 18px;font-weight:700;}
footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;}
footer ul a{font-size:14px;color:rgba(244,237,226,.78);overflow-wrap:break-word;word-break:break-word;}
footer ul a:hover{color:var(--white);}
.footer-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-top:26px;font-size:12.5px;color:rgba(244,237,226,.5);}

::selection{background:var(--gold);color:var(--white);}
