/* Sahara Bless Travel — shared stylesheet */
:root{
  --night: #1b1a17;
  --night-2: #262420;
  --gold: #b6873f;
  --gold-soft: #d8b06c;
  --clay: #8f5a3c;
  --sand: #f4ede1;
  --sand-2: #e6d9c2;
  --ink: #2a2620;
  --muted: #6b6255;
  --line: rgba(182,135,63,0.3);
  --max: 1180px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Jost', sans-serif;
  background: var(--sand);
  color: var(--ink);
  line-height:1.65;
  font-weight:300;
}
h1,h2,h3,h4,.serif{font-family:'Cormorant Garamond', serif; font-weight:600;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:var(--max); margin:0 auto; padding:0 32px;}
::selection{background:var(--gold); color:#fff;}
a:focus-visible, button:focus-visible{outline:2px solid var(--gold); outline-offset:3px;}
@media (prefers-reduced-motion: reduce){*{animation:none !important; transition:none !important;}}

/* ---------- HEADER ---------- */
header{position:fixed; top:0; left:0; right:0; z-index:100; background:rgba(27,26,23,0); transition:.35s ease; padding:26px 0;}
header.scrolled{background:rgba(27,26,23,0.94); backdrop-filter:blur(8px); box-shadow:0 2px 20px rgba(0,0,0,.2); padding:14px 0;}
header .wrap{display:flex; align-items:center; justify-content:space-between;}
.brand{display:flex; align-items:center; gap:10px; color:var(--sand);}
.brand svg{width:26px; height:26px;}
.brand span{font-family:'Cormorant Garamond',serif; font-size:1.3rem; color:var(--sand-2); letter-spacing:.02em;}
nav.mainnav{display:flex; align-items:center; gap:30px;}
nav.mainnav a.navlink{color:var(--sand-2); font-size:.82rem; letter-spacing:.08em; text-transform:uppercase; position:relative; padding-bottom:4px;}
nav.mainnav a.navlink::after{content:""; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--gold); transition:.3s ease;}
nav.mainnav a.navlink:hover::after{width:100%;}
nav.mainnav a.navlink.current::after{width:100%;}
.nav-cta{background:var(--gold); color:#fff !important; padding:10px 20px; border-radius:2px; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase;}
.nav-cta:hover{background:var(--gold-soft);}
.lang-toggle{display:flex; border:1px solid var(--line); border-radius:20px; overflow:hidden;}
.lang-toggle button{background:transparent; border:none; color:var(--sand-2); font-size:.75rem; letter-spacing:.08em; padding:6px 12px; cursor:pointer;}
.lang-toggle button.active{background:var(--gold); color:#fff;}
.nav-toggle{display:none; background:none; border:none; color:var(--sand); font-size:1.6rem; cursor:pointer;}
@media (max-width:960px){
  nav.mainnav{position:fixed; top:0; right:-100%; height:100vh; width:min(320px,82vw); background:var(--night);
    flex-direction:column; align-items:flex-start; justify-content:center; gap:24px; padding:40px; transition:.4s ease;}
  nav.mainnav.open{right:0;}
  .nav-toggle{display:block;}
}

/* ---------- HERO ---------- */
.page-hero{position:relative; min-height:82vh; display:flex; align-items:flex-end; background:#000;}
.page-hero img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.9;}
.page-hero::before{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,18,15,.4) 0%, rgba(20,18,15,.15) 40%, rgba(20,18,15,.9) 100%);}
.page-hero-content{position:relative; z-index:2; padding:0 32px 80px; width:100%;}
.page-hero-content .wrap{max-width:var(--max);}
.eyebrow{color:var(--gold-soft); font-size:.8rem; letter-spacing:.24em; text-transform:uppercase; margin-bottom:16px; display:flex; align-items:center; gap:12px;}
.eyebrow::before{content:""; width:34px; height:1px; background:var(--gold-soft); display:inline-block;}
.page-hero h1{color:var(--sand); font-size:clamp(2.1rem,5vw,3.6rem); line-height:1.12; max-width:820px;}
.page-hero p.subtitle{color:var(--sand-2); font-size:1.1rem; max-width:560px; margin-top:18px; font-weight:300;}
.hero-actions{display:flex; gap:16px; margin-top:30px; flex-wrap:wrap;}

/* ---------- BUTTONS ---------- */
.btn{display:inline-flex; align-items:center; gap:10px; padding:14px 28px; font-size:.85rem; letter-spacing:.06em; text-transform:uppercase; font-weight:500; border:none; cursor:pointer; transition:.25s ease; border-radius:2px;}
.btn-primary{background:var(--gold); color:#fff;}
.btn-primary:hover{background:var(--gold-soft);}
.btn-ghost{background:transparent; border:1px solid var(--sand-2); color:var(--sand);}
.btn-ghost:hover{background:rgba(244,237,225,0.08);}
.btn-dark{background:var(--night); color:var(--sand);}
.btn-dark:hover{background:var(--night-2);}

/* ---------- SECTIONS ---------- */
section{padding:100px 0;}
.section-head{max-width:680px; margin-bottom:50px;}
.section-head .eyebrow{color:var(--clay);}
.section-head .eyebrow::before{background:var(--clay);}
.section-head h2{font-size:clamp(1.9rem,4vw,2.7rem); color:var(--night); margin-top:6px;}
.section-head p{margin-top:16px; color:var(--muted); font-size:1.05rem; max-width:600px;}
.dark{background:var(--night); color:var(--sand-2);}
.dark .section-head h2{color:var(--sand);}
.dark .section-head p{color:#b0a690;}
.dark h3, .dark h4{color:var(--sand);}

/* ---------- FEATURE GRID (4 blocks) ---------- */
.feature-grid-4{display:grid; grid-template-columns:repeat(4,1fr); gap:2px; background:rgba(0,0,0,0.06); margin-top:10px;}
.feature-card{background:var(--sand); padding:36px 28px;}
.dark .feature-card{background:var(--night-2);}
.feature-card h4{font-size:1.2rem; margin-bottom:10px; color:var(--night);}
.dark .feature-card h4{color:var(--sand);}
.feature-card p{color:var(--muted); font-size:.94rem;}
.dark .feature-card p{color:#b0a690;}
@media (max-width:960px){.feature-grid-4{grid-template-columns:1fr 1fr;}}
@media (max-width:640px){.feature-grid-4{grid-template-columns:1fr;}}

/* ---------- TRIP CARDS ---------- */
.trip-grid{display:grid; grid-template-columns:1fr; gap:2px; margin-top:10px;}
.trip-card{position:relative; display:grid; grid-template-columns:1fr 1fr; min-height:420px; background:var(--night); overflow:hidden;}
.trip-card:nth-child(even){direction:rtl;}
.trip-card:nth-child(even) > *{direction:ltr;}
.trip-card img{width:100%; height:100%; object-fit:cover; min-height:320px;}
.trip-card .trip-text{padding:50px; display:flex; flex-direction:column; justify-content:center;}
.trip-card h3{color:var(--sand); font-size:1.9rem; margin-bottom:14px;}
.trip-card p{color:#b0a690; font-size:1rem; margin-bottom:22px;}
.trip-card a.trip-link{color:var(--gold-soft); font-size:.85rem; letter-spacing:.08em; text-transform:uppercase; border-bottom:1px solid var(--gold-soft); padding-bottom:3px; align-self:flex-start;}
@media (max-width:820px){
  .trip-card, .trip-card:nth-child(even){grid-template-columns:1fr; direction:ltr;}
  .trip-card img{min-height:260px;}
  .trip-card .trip-text{padding:36px 30px;}
}

/* ---------- STEPS ---------- */
.steps{display:grid; grid-template-columns:repeat(5,1fr); gap:22px; margin-top:20px;}
.step{text-align:left;}
.step .num{font-family:'Cormorant Garamond',serif; color:var(--gold); font-size:1.5rem;}
.step h4{font-size:1.05rem; margin:8px 0 8px; color:var(--night);}
.dark .step h4{color:var(--sand);}
.step p{font-size:.9rem; color:var(--muted);}
.dark .step p{color:#b0a690;}
@media (max-width:960px){.steps{grid-template-columns:1fr 1fr;}}
@media (max-width:600px){.steps{grid-template-columns:1fr;}}

/* ---------- QUOTE / PHILOSOPHY ---------- */
.philosophy{position:relative; padding:120px 0; background:var(--night); color:var(--sand);}
.philosophy blockquote{font-family:'Cormorant Garamond',serif; font-style:italic; font-size:clamp(1.4rem,3vw,2.1rem); max-width:820px; line-height:1.5;}

/* ---------- INCLUDE LIST ---------- */
.tags{display:flex; flex-wrap:wrap; gap:10px; margin-top:20px;}
.tag{border:1px solid var(--line); color:var(--night); font-size:.85rem; padding:8px 16px; border-radius:20px;}
.dark .tag{color:var(--sand-2);}

/* ---------- CONTACT FORM ---------- */
.contact-grid{display:grid; grid-template-columns:.9fr 1.1fr; gap:60px;}
.audience-select{display:flex; gap:12px; margin-bottom:26px;}
.audience-btn{flex:1; padding:16px; text-align:center; border:1px solid var(--line); cursor:pointer; font-size:.85rem; letter-spacing:.05em; text-transform:uppercase; background:transparent; color:var(--muted); transition:.2s ease;}
.audience-btn.active{background:var(--gold); color:#fff; border-color:var(--gold);}
.form-group{margin-bottom:18px;}
.form-group label{display:block; font-size:.75rem; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-bottom:6px;}
.form-group input, .form-group select, .form-group textarea{
  width:100%; padding:12px 14px; border:1px solid var(--sand-2); background:#fff; font-family:'Jost',sans-serif; font-size:.95rem; color:var(--ink);
}
.form-group textarea{min-height:110px; resize:vertical;}
[data-audience-field]{display:none;}
.audience-agency [data-audience-field="agency"]{display:block;}
.audience-individual [data-audience-field="individual"]{display:block;}
.contact-side .row{display:flex; justify-content:space-between; padding:14px 0; border-bottom:1px solid var(--sand-2); font-size:.95rem;}
.contact-side .row span:first-child{color:var(--muted); text-transform:uppercase; font-size:.72rem; letter-spacing:.08em;}

/* ---------- FAQ ---------- */
.faq-item{border-bottom:1px solid var(--sand-2); padding:20px 0;}
.faq-item summary{cursor:pointer; font-family:'Cormorant Garamond',serif; font-size:1.2rem; color:var(--night); list-style:none; display:flex; justify-content:space-between; align-items:center;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+"; font-size:1.4rem; color:var(--gold);}
.faq-item[open] summary::after{content:"–";}
.faq-item p{margin-top:12px; color:var(--muted); font-size:.95rem;}

/* ---------- FOOTER ---------- */
footer{background:#0f0e0c; color:#8a7f6a; padding:50px 0 30px;}
footer .footer-top{display:flex; justify-content:space-between; flex-wrap:wrap; gap:30px; padding-bottom:30px; border-bottom:1px solid rgba(182,135,63,0.15);}
footer .footer-logo{font-family:'Cormorant Garamond',serif; color:var(--sand-2); font-size:1.3rem;}
footer .footer-tagline{font-size:.9rem; margin-top:8px; max-width:280px;}
footer .footer-links{display:flex; gap:24px; flex-wrap:wrap;}
footer .footer-links a{font-size:.85rem;}
footer .footer-links a:hover{color:var(--gold-soft);}
footer .footer-bottom{display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; padding-top:20px; font-size:.8rem;}

/* language visibility */
[data-en]{display:none;}
html.lang-en [data-es]{display:none;}
html.lang-en [data-en]{display:revert;}

/* reveal */
.reveal{opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1; transform:translateY(0);}

/* whatsapp float */
.wa-float{
  position:fixed; bottom:24px; right:24px; z-index:90; background:#25D366; color:#fff;
  width:56px; height:56px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 20px rgba(0,0,0,.25);
}
.wa-float svg{width:28px; height:28px;}
