/* Casa Luna Pass 14 — readability, map QA, and design-system cleanup */
:root{
  --cl-night:#111914;
  --cl-forest:#1b271c;
  --cl-olive:#65724d;
  --cl-gold:#cfa85d;
  --cl-gold-soft:#e5c987;
  --cl-paper:#f6efe2;
  --cl-cream:#fffaf0;
  --cl-ink:#182018;
  --cl-muted:#5d5a50;
  --cl-line:rgba(207,168,93,.28);
}

/* Header hard stop: no clipping, no overflow, no language dropdown offscreen */
.lux-nav,.lux-nav--pass12,.lux-nav--pass13{
  height:126px!important;
  padding:28px clamp(22px,3vw,48px) 18px!important;
  align-items:start!important;
  overflow:visible!important;
}
.lux-brand{padding-top:2px!important;max-width:360px!important;overflow:visible!important;}
.lux-brand-name{font-size:clamp(31px,2.55vw,42px)!important;line-height:1.08!important;letter-spacing:.085em!important;}
.lux-brand-sub{margin-top:8px!important;margin-left:62px!important;font-size:12px!important;line-height:1.25!important;}
.lux-brand-place{margin-top:8px!important;margin-left:14px!important;font-size:12px!important;line-height:1.25!important;}
.lux-nav.is-scrolled{height:98px!important;padding-top:20px!important;padding-bottom:14px!important;background:rgba(246,239,226,.975)!important;}
.lux-nav.is-scrolled .lux-brand-name{font-size:31px!important;line-height:1.12!important;color:var(--cl-ink)!important;}
.lux-nav.is-scrolled .lux-brand-sub{display:block!important;margin-top:5px!important;margin-left:52px!important;font-size:10px!important;color:var(--cl-ink)!important;text-shadow:none!important;}
.lux-nav.is-scrolled .lux-brand-place{display:none!important;}
.lang-switcher{right:76px!important;top:22px!important;max-width:132px!important;}
.lang-dropdown{right:0!important;left:auto!important;max-width:calc(100vw - 28px)!important;}
@media(max-width:1180px){.lux-nav,.lux-nav--pass12,.lux-nav--pass13{height:92px!important;padding-top:20px!important}.lux-brand-name{font-size:29px!important}.lux-brand-sub,.lux-brand-place{display:none!important}.lang-switcher{right:82px!important;top:24px!important}}
@media(max-width:760px){.lux-nav,.lux-nav--pass12,.lux-nav--pass13{height:78px!important;padding:18px 16px 8px!important}.lux-brand-name{font-size:25px!important}.lang-switcher{display:none!important}}

/* Universal palette rules: readable text on light sections */
.section:not(.section-dark):not(.local-guide-panel),
.section-lux:not(.section-dark),
.practical-details-section{
  background:var(--cl-paper)!important;
  color:var(--cl-ink)!important;
}
.section:not(.section-dark):not(.local-guide-panel) p,
.section-lux:not(.section-dark) p,
.practical-details-section p,
.practical-details-section li{
  color:var(--cl-muted)!important;
  text-shadow:none!important;
}
.section-title,
.practical-details-section .section-title{
  color:var(--cl-ink)!important;
  text-shadow:none!important;
}
.section-title em,.practical-details-section .section-title em{color:var(--cl-gold)!important;}
.section-label,.practical-details-section .section-label{color:var(--cl-gold)!important;text-shadow:none!important;}

/* Practical Details — readable luxury cards */
.practical-details-section{padding:100px 0!important;border-top:1px solid var(--cl-line)!important;border-bottom:1px solid var(--cl-line)!important;}
.prac-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:22px!important;margin-top:44px!important;}
.prac-item{background:rgba(255,250,240,.92)!important;border:1px solid var(--cl-line)!important;padding:28px 30px!important;min-height:150px!important;box-shadow:0 18px 44px rgba(24,32,24,.06)!important;}
.prac-lbl{display:block!important;color:var(--cl-gold)!important;font-family:var(--font-ui,Arial,sans-serif)!important;font-weight:800!important;font-size:11px!important;letter-spacing:.2em!important;text-transform:uppercase!important;margin-bottom:14px!important;}
.prac-item p{font-family:var(--font-ui,Arial,sans-serif)!important;font-size:15px!important;line-height:1.75!important;color:var(--cl-muted)!important;margin:0!important;}
.prac-item strong{color:var(--cl-ink)!important;}
.prac-item a{color:#a85f38!important;text-shadow:none!important;font-weight:800!important;}
@media(max-width:980px){.prac-grid{grid-template-columns:1fr 1fr!important}}
@media(max-width:640px){.prac-grid{grid-template-columns:1fr!important}.prac-item{padding:24px!important}}

/* Page heroes: never allow dark green typography against photography */
.ph-title,.ph-title span,.ph-title em{color:var(--cl-cream)!important;text-shadow:0 8px 36px rgba(0,0,0,.66)!important;}
.ph-title em{color:var(--cl-gold-soft)!important;}
.ph-sub{color:rgba(255,255,255,.94)!important;text-shadow:0 8px 30px rgba(0,0,0,.55)!important;}
.ph-content .section-label,.ph-content .eyebrow{color:var(--cl-gold-soft)!important;text-shadow:0 8px 30px rgba(0,0,0,.55)!important;}
body.explore-page .ph-content,body.gallery-page .ph-content,body.guesthouse-page .ph-content{
  background:linear-gradient(90deg,rgba(10,14,11,.62),rgba(10,14,11,.22))!important;
  border-left:1px solid rgba(229,201,135,.45)!important;
}

/* Curated/experience sections: no hard-to-read olive, no emoji/cheap styling */
.act-heading,.experience-heading,.section-heading{color:var(--cl-ink)!important;text-shadow:none!important;}
.act-heading em,.experience-heading em,.section-heading em{color:var(--cl-gold)!important;}
.curated-experience,.activities-section,.experiences-section{background:var(--cl-paper)!important;color:var(--cl-ink)!important;}
.curated-experience p,.activities-section p,.experiences-section p{color:var(--cl-muted)!important;}
.fw-icon,.exc-icon,.act-icon{display:none!important;}
.act-card-new,.exc-card,.fw-card,.info-card,.experience-card{background:rgba(255,250,240,.96)!important;border:1px solid var(--cl-line)!important;box-shadow:0 18px 50px rgba(24,32,24,.075)!important;}
.act-card-new h3,.act-card-new h4,.exc-card h3,.fw-card h3,.info-card h3,.experience-card h3{color:var(--cl-ink)!important;text-shadow:none!important;}
.act-card-new p,.act-card-new li,.exc-card p,.fw-card p,.info-card p,.experience-card p{color:var(--cl-muted)!important;text-shadow:none!important;}

/* Insider guide map: readable editorial panel + contained card */
.local-guide-panel{background:linear-gradient(135deg,#111914,#1a281d)!important;color:#fff!important;}
.local-guide-panel .section-subtitle{color:rgba(255,255,255,.78)!important;}
.guide-map-grid--experience{grid-template-columns:minmax(410px,.43fr) minmax(620px,.57fr)!important;gap:34px!important;align-items:start!important;}
.guide-detail{background:var(--cl-paper)!important;color:var(--cl-ink)!important;max-height:680px!important;overflow-y:auto!important;border:1px solid rgba(229,201,135,.45)!important;box-shadow:0 30px 90px rgba(0,0,0,.25)!important;}
.guide-detail__kicker,.guide-detail__meta{color:var(--cl-gold)!important;font-family:var(--font-ui,Arial,sans-serif)!important;font-weight:800!important;letter-spacing:.18em!important;text-transform:uppercase!important;}
.guide-detail__media{height:200px!important;overflow:hidden!important;}
.guide-detail__media img{width:100%!important;height:100%!important;object-fit:cover!important;}
.guide-detail__body{padding:30px 32px 32px!important;}
.guide-detail h3{color:var(--cl-ink)!important;font-size:clamp(32px,3vw,48px)!important;line-height:.98!important;letter-spacing:.035em!important;margin:12px 0 14px!important;text-shadow:none!important;}
.guide-detail p{color:var(--cl-muted)!important;font-size:15px!important;line-height:1.72!important;text-shadow:none!important;}
.guide-facts{display:grid!important;grid-template-columns:1fr!important;border:1px solid var(--cl-line)!important;margin:20px 0!important;background:rgba(255,250,240,.64)!important;}
.guide-facts div{display:grid!important;grid-template-columns:110px 1fr!important;gap:16px!important;padding:16px 18px!important;border-bottom:1px solid rgba(207,168,93,.22)!important;}
.guide-facts div:last-child{border-bottom:0!important;}
.guide-facts dt{color:var(--cl-gold)!important;font-size:11px!important;font-weight:900!important;letter-spacing:.18em!important;text-transform:uppercase!important;}
.guide-facts dd{color:var(--cl-ink)!important;font-size:14px!important;line-height:1.5!important;margin:0!important;}
.guide-recs{background:rgba(255,250,240,.82)!important;border-top:1px solid var(--cl-line)!important;padding-top:18px!important;}
.guide-recs h4{color:var(--cl-ink)!important;font-size:12px!important;letter-spacing:.22em!important;}
.guide-recs li{color:var(--cl-muted)!important;font-size:14px!important;line-height:1.62!important;margin-bottom:8px!important;}
.guide-actions{position:sticky!important;bottom:0!important;background:linear-gradient(180deg,rgba(246,239,226,0),var(--cl-paper) 28%)!important;padding-top:22px!important;display:flex!important;gap:12px!important;flex-wrap:wrap!important;}
.guide-action{border:1px solid var(--cl-line)!important;color:var(--cl-ink)!important;background:transparent!important;padding:15px 20px!important;font-size:12px!important;letter-spacing:.14em!important;text-transform:uppercase!important;font-weight:900!important;text-decoration:none!important;}
.guide-action--primary{background:var(--cl-gold)!important;color:#fff!important;border-color:var(--cl-gold)!important;}
.guide-map-card{padding:22px!important;background:rgba(255,255,255,.035)!important;border:1px solid rgba(229,201,135,.26)!important;overflow:hidden!important;}
.guide-map-card #vmap{height:640px!important;min-height:560px!important;}
.vmap-wrap{overflow:hidden!important;position:relative!important;}
.vmap-card{position:absolute!important;left:auto!important;right:24px!important;bottom:24px!important;top:auto!important;width:min(370px,calc(100% - 48px))!important;max-width:370px!important;max-height:300px!important;overflow:auto!important;background:rgba(246,239,226,.98)!important;border:1px solid rgba(207,168,93,.48)!important;box-shadow:0 28px 80px rgba(0,0,0,.32)!important;padding:22px 22px 20px!important;z-index:40!important;transform:none!important;}
.vmap-card h4{font-size:28px!important;line-height:.98!important;color:var(--cl-ink)!important;margin:0 34px 12px 0!important;text-shadow:none!important;}
.vmap-card p{font-size:13.5px!important;line-height:1.58!important;color:var(--cl-muted)!important;text-shadow:none!important;}
.vmap-card-close{top:14px!important;right:14px!important;color:var(--cl-ink)!important;font-size:24px!important;}
.vmap-card .guide-action,.vmap-guide-link{font-size:11px!important;padding:12px 15px!important;}
.mapboxgl-popup{max-width:320px!important;z-index:50!important;}
.mapboxgl-popup-content{background:rgba(246,239,226,.98)!important;color:var(--cl-ink)!important;border:1px solid rgba(207,168,93,.48)!important;box-shadow:0 26px 70px rgba(0,0,0,.32)!important;max-width:300px!important;max-height:260px!important;overflow:auto!important;padding:18px 18px!important;}
.mapboxgl-popup-content *{color:inherit!important;text-shadow:none!important;}
.vmap-wrap .mapboxgl-ctrl-geocoder{margin:18px 0 0 18px!important;max-width:300px!important;min-width:240px!important;z-index:45!important;}
.vmap-reset{top:18px!important;right:72px!important;left:auto!important;z-index:46!important;background:rgba(246,239,226,.98)!important;color:var(--cl-ink)!important;border:1px solid rgba(207,168,93,.55)!important;box-shadow:0 12px 32px rgba(0,0,0,.18)!important;}
.vmap-wrap .mapboxgl-ctrl-top-right{top:70px!important;right:18px!important;}
@media(max-width:1120px){.guide-map-grid--experience{grid-template-columns:1fr!important}.guide-detail{max-height:none!important}.guide-map-card #vmap{height:560px!important}}
@media(max-width:680px){.vmap-card{left:12px!important;right:12px!important;bottom:12px!important;width:auto!important;max-width:none!important}.vmap-wrap .mapboxgl-ctrl-geocoder{max-width:220px!important;min-width:190px!important}.vmap-reset{right:58px!important}.guide-facts div{grid-template-columns:1fr!important;gap:4px!important}}
