/* El Charro Sol V114.4.2 — shared navigation, booking-search, map loading, and CTA polish */
.nav-toggle{display:none;background:transparent;border:1px solid rgba(255,255,255,.34);border-radius:9px;color:#fff;padding:9px 11px;font:800 .76rem/1 Arial,Helvetica,sans-serif;letter-spacing:.07em;text-transform:uppercase;cursor:pointer}
.nav-toggle-icon{display:inline-block;width:18px;height:12px;margin-right:8px;position:relative;border-top:2px solid currentColor;border-bottom:2px solid currentColor;vertical-align:-1px}
.nav-toggle-icon::after{content:"";position:absolute;left:0;right:0;top:4px;border-top:2px solid currentColor}
@media(max-width:950px){
  .site-nav{position:fixed!important;top:0!important;left:0!important;right:0!important;display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;padding:12px 16px!important;background:rgba(8,47,52,.97)!important;backdrop-filter:blur(12px);z-index:10000!important}
  .brand-link{font-size:.78rem!important;white-space:nowrap}
  .nav-toggle{display:inline-flex;align-items:center;margin-left:auto}
  .site-nav .nav-links{display:none!important;position:absolute!important;top:100%!important;left:0!important;right:0!important;width:100%!important;max-height:calc(100svh - 56px)!important;overflow-y:auto!important;overflow-x:hidden!important;flex-direction:column!important;align-items:stretch!important;gap:0!important;padding:8px 16px 18px!important;background:rgba(8,47,52,.985)!important;border-top:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.16);box-shadow:0 16px 30px rgba(0,0,0,.24)}
  .site-nav.nav-open .nav-links{display:flex!important}
  .site-nav .nav-links a{display:block!important;width:100%!important;padding:11px 4px!important;border-bottom:1px solid rgba(255,255,255,.1);font-size:.79rem!important;line-height:1.25!important;white-space:normal!important}
  .site-nav .nav-links a:last-child{border-bottom:0}
  .site-nav .nav-links .nav-cta{margin-top:8px;padding:12px 14px!important;text-align:center;border:0;border-radius:9px}
  body.nav-open{overflow:hidden}
}

/* Keep the homepage promise, supporting copy, and both hero actions visible on normal laptop screens. */
.home-page .hero{min-height:calc(100svh - 58px)}
.home-page .hero-content{min-height:calc(100svh - 58px)!important;max-width:790px!important;padding:78px 38px 38px!important}
.home-page .logo{width:195px!important;margin-bottom:24px!important}
.home-page .hero h1{max-width:700px!important;margin-bottom:18px!important;font-size:clamp(2.7rem,4.7vw,5rem)!important;line-height:.95!important}
.home-page .hero-copy{max-width:620px!important;margin-bottom:23px!important;font-size:clamp(1rem,1.55vw,1.22rem)!important;line-height:1.42!important}
.home-page .hero-actions{display:flex!important;gap:12px!important;flex-wrap:wrap!important}
.home-page .hero-actions .btn{width:auto!important;margin:0!important;padding:14px 22px!important;font-size:.82rem}
@media(max-width:950px){
  .home-page .hero{min-height:100svh!important}
  .home-page .hero-content{min-height:100svh!important;padding:76px 20px 32px!important;justify-content:center!important}
  .home-page .logo{width:158px!important;margin-bottom:18px!important}
  .home-page .hero h1{font-size:clamp(2.35rem,10.8vw,3.55rem)!important;line-height:.94!important;margin-bottom:15px!important}
  .home-page .hero-copy{font-size:.98rem!important;line-height:1.42!important;margin-bottom:18px!important}
  .home-page .hero-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;width:100%!important;max-width:520px}
  .home-page .hero-actions .btn{width:100%!important;padding:13px 9px!important;font-size:.72rem!important;line-height:1.2!important}
}
@media(max-width:430px){
  .home-page .hero-actions{grid-template-columns:1fr!important}
  .home-page .hero-actions .btn{font-size:.76rem!important}
}

/* There is only one mobile booking CTA in V103. It stays out of the way in the hero and booking section. */
.sticky-mobile{display:none!important}
.mobile-booking-bar.is-hidden{opacity:0!important;transform:translateY(115%)!important;pointer-events:none!important}

/* Load Google Maps only as the visitor approaches them. */
.map-wrap{position:relative;min-height:420px;background:#f5eee7;isolation:isolate}
.map-wrap::before{content:"Loading map…";position:absolute;inset:0;display:grid;place-items:center;color:#0f5c66;font-weight:800;letter-spacing:.02em;background:linear-gradient(135deg,#fbf5ef,#f0e5da);z-index:0;transition:opacity .2s ease}
.map-wrap.map-loaded::before{opacity:0;pointer-events:none}
.map-wrap .deferred-map{position:relative;z-index:1;width:100%;height:420px;opacity:0;transition:opacity .22s ease;background:transparent}
.map-wrap.map-loaded .deferred-map{opacity:1}

/* High-intent guide search: capture dates before sending the guest to the live homepage calendar. */
.guide-booking-strip{padding:34px 22px;background:#f7efe7}
.guide-booking-shell{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:minmax(220px,.75fr) minmax(0,1.65fr);gap:28px;align-items:center}
.guide-booking-copy .kicker{margin:0 0 7px}
.guide-booking-copy h2{margin:0;color:#08383e;font-size:clamp(1.65rem,3vw,2.45rem);line-height:1.08}
.guide-booking-copy p:last-child{margin:10px 0 0;color:#555;line-height:1.55}
.guide-booking-search{display:grid;grid-template-columns:1fr 1fr .72fr auto;gap:10px;align-items:end;padding:18px;background:#fff;border:1px solid #e6d8ca;border-radius:16px;box-shadow:0 12px 28px rgba(8,56,62,.1)}
.guide-booking-field{display:grid;gap:6px;min-width:0}
.guide-booking-field label{color:#08383e;font-size:.74rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.guide-booking-field input,.guide-booking-field select{width:100%;min-height:48px;padding:10px 11px;border:1px solid #cfc4b9;border-radius:9px;background:#fff;color:#152e31;font:inherit}
.guide-booking-field input:focus,.guide-booking-field select:focus{outline:3px solid rgba(15,92,102,.2);border-color:#0f5c66}
.guide-booking-search .btn{min-height:48px;margin:0!important;white-space:nowrap}
.guide-booking-status{grid-column:1/-1;margin:0;color:#8d321f;font-weight:700;font-size:.88rem}
.guide-booking-proof{grid-column:1/-1;margin:0;color:#5d6667;font-size:.78rem;text-align:center}
@media(max-width:900px){
  .guide-booking-shell{grid-template-columns:1fr}
  .guide-booking-search{grid-template-columns:1fr 1fr}
  .guide-booking-search .btn{grid-column:1/-1;width:100%!important}
}
@media(max-width:560px){
  .guide-booking-strip{padding:28px 16px}
  .guide-booking-search{grid-template-columns:1fr;padding:15px}
  .guide-booking-search .btn,.guide-booking-status,.guide-booking-proof{grid-column:1}
}
@media(min-width:951px) and (max-height:780px){
  .home-page .hero-content{padding:66px 34px 24px!important}
  .home-page .logo{width:172px!important;margin-bottom:16px!important}
  .home-page .hero h1{font-size:clamp(2.55rem,4.25vw,4.35rem)!important;margin-bottom:14px!important}
  .home-page .hero-copy{font-size:1rem!important;margin-bottom:16px!important}
  .home-page .hero-actions .btn{padding:12px 19px!important}
}
