/* El Charro Sol V103 — shared mobile navigation, hero fit, 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}

/* Start Google Maps before the visitor reaches them, without making the hero compete with a heavy embed. */
.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}
@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}
}
