.dock-label{display:none}
/* Mobile containment and touch-friendly layout fixes. */
html,body{max-width:100%;overflow-x:hidden}
.hero-grid>*,.form-grid>*,.booking-card,.hero-content{min-width:0}

@media(max-width:620px){
  body{padding-bottom:0}
  .container{width:calc(100% - 30px)!important;max-width:none!important;padding-left:0!important;padding-right:0!important}
  .topbar .container{justify-content:center!important;text-align:center}
  .nav-wrap{height:82px}
  .nav-toggle{font-size:0!important;line-height:1}
  .nav-toggle::before{content:"\2630";font-size:1.45rem;color:#fff}
  .brand{min-width:0;gap:9px!important}
  .brand>span{min-width:0;font-size:.94rem;white-space:nowrap}
  .brand small{font-size:.5rem!important;letter-spacing:.1em!important}
  .hero-slider{width:100%;padding-top:138px!important;padding-left:0!important;padding-right:0!important}
  .hero-slider .hero-grid{width:100%;gap:28px!important}
  .hero-slider h1{font-size:clamp(2.35rem,11.5vw,2.8rem)!important;overflow-wrap:anywhere}
  .hero-copy{font-size:.96rem;overflow-wrap:anywhere}
  .hero-actions{width:100%;display:grid!important;grid-template-columns:1fr;gap:11px!important}
  .hero-actions .btn{width:100%;max-width:100%;margin:0!important}
  .trust-row{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px!important;font-size:.68rem!important}
  .trust-row span{min-width:0;white-space:normal}
  .booking-card{width:100%!important;max-width:100%!important;padding:22px 18px!important;border-radius:18px!important}
  .booking-card h3{font-size:1.55rem!important}
  .form-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;width:100%}
  .field,.field.full,.field input,.field select,.field textarea{min-width:0;max-width:100%}
  .stats-wrap{width:100%}
  .section-head h2,.fare-grid h2,.trust-grid h2{overflow-wrap:anywhere}
  .container.cta{max-width:100%;padding:28px 22px!important;border-radius:22px;overflow:visible}.cta>div{min-width:0}.cta h2{font-size:clamp(1.8rem,7.5vw,2.25rem);line-height:1.16;overflow-wrap:break-word}.cta p{font-size:.94rem;line-height:1.7}.cta .btn{max-width:100%;white-space:normal;text-align:center;padding:13px 18px}
  .contact-dock{left:0!important;right:0!important;bottom:0!important;top:auto!important;display:flex!important;justify-content:center;align-items:center;gap:12px!important;transform:none!important;padding:9px 15px calc(9px + env(safe-area-inset-bottom, 0px));background:#fffaf2;border-top:1px solid #eadfce;box-shadow:0 -4px 18px #21171214}
  .dock-btn{width:auto!important;min-width:0;height:48px!important;flex:1;max-width:160px;display:flex;align-items:center;justify-content:center;gap:7px;border-radius:12px;border-width:0!important;transform:none!important;box-shadow:none;font-size:.76rem;font-weight:800}.dock-label{display:inline}.dock-btn svg{flex-shrink:0}
  .dock-btn svg{width:21px!important;height:21px!important}
  .dock-query{font-size:.65rem!important;line-height:1.25}
}

@media(max-width:380px){
  .container{width:calc(100% - 24px)!important}
  .brand>span{font-size:.86rem}
  .booking-card{padding:20px 15px!important}
}

/* Keep the mobile footer compact and reserve dock space inside its dark background. */
@media(max-width:620px){
  footer#contact{padding:30px 0 calc(86px + env(safe-area-inset-bottom, 0px));margin-bottom:0}
  #contact .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 18px}
  #contact .footer-grid>div{min-width:0}
  #contact .footer-brand,#contact .footer-contact{grid-column:1/-1}
  #contact .footer-about{max-width:none;font-size:.76rem;line-height:1.65;margin:12px 0 0}
  #contact .footer-title{font-size:.86rem;margin-bottom:8px}
  #contact .footer-links{gap:0;font-size:.76rem;line-height:1.55}
  #contact .footer-links a{display:block;padding:7px 0;overflow-wrap:anywhere}
  #contact .footer-contact{padding-top:18px;border-top:1px solid #ffffff20}
  #contact .footer-contact .footer-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px}
  #contact .footer-contact a{grid-column:1/-1;padding:3px 0}
  #contact .footer-contact span{font-size:.71rem}
  #contact .copyright{margin-top:20px;padding-top:16px;font-size:.65rem;line-height:1.7}
  #contact .policy-links{gap:4px 16px;margin-top:8px}
  #contact .policy-links a{padding:6px 0}
}

/* Shared phone/tablet controls: prevent native date/select sizing from widening forms. */
html{scroll-padding-bottom:80px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{touch-action:manipulation}
.form-grid,.calc-fields{min-width:0}
.field{min-width:0}
.field input,.field select,.field textarea{box-sizing:border-box;display:block;width:100%;min-width:0;max-width:100%;inline-size:100%;min-inline-size:0;max-inline-size:100%}
.field input[type="date"]{-webkit-appearance:none;appearance:none;min-height:46px}
.field input[type="date"]::-webkit-date-and-time-value{text-align:left;min-width:0}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:2px solid var(--terracotta);outline-offset:2px}
@media(max-width:1100px){
  .field input,.field select,.field textarea{font-size:16px!important;line-height:1.4;min-height:46px;padding:11px 12px;scroll-margin:24px 0 100px}
  .field select{text-overflow:ellipsis}
  .hero-grid>*,.fare-grid>*,.trust-grid>*,.experience-grid>*,.calc-fields>*{min-width:0}
  .form-grid,.calc-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hero-slider{height:auto!important;min-height:820px!important}
  .hero-slider .hero-grid{grid-template-columns:minmax(0,1fr);gap:32px}
  .hero-content{transform:none}
  .slider-arrow{display:none}
  .nav-links{max-height:calc(100dvh - 180px);overflow-y:auto;overscroll-behavior:contain}
  .nav-toggle{min-width:44px;min-height:44px}
  .contact-dock{left:0!important;right:0!important;bottom:0!important;top:auto!important;display:flex!important;justify-content:center;align-items:center;gap:8px!important;transform:none!important;padding:6px 12px calc(6px + env(safe-area-inset-bottom, 0px));background:#fffaf2;border-top:1px solid #eadfce;box-shadow:0 -4px 18px #21171214}
  .contact-dock .dock-btn{width:auto!important;min-width:0;height:44px!important;flex:1;max-width:112px;display:flex;align-items:center;justify-content:center;gap:5px;border-radius:10px;border:0!important;transform:none!important;box-shadow:none;font-size:.7rem;font-weight:800}
  .contact-dock .dock-btn svg{width:17px!important;height:17px!important;flex-shrink:0}
  .contact-dock .dock-label{display:inline}
  .contact-dock .dock-query{font-size:.58rem!important;line-height:1.2}
  footer#contact{padding-bottom:calc(76px + env(safe-area-inset-bottom, 0px))}
  #contact .footer-grid>div{min-width:0}
  #contact .footer-links a{overflow-wrap:anywhere}
}
@media(min-width:621px) and (max-width:1100px){
  #contact .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}
  #contact .copyright{gap:18px;flex-wrap:wrap}
  .stats-wrap{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 0}
  .stat:nth-child(2){border-right:0}
}
@media(max-width:620px){
  .calc-fields{grid-template-columns:minmax(0,1fr)}
  .booking-card .btn{white-space:normal;padding:13px 12px;line-height:1.5}
  .fare-card{min-width:0}
  .fare-breakup>div{gap:16px}
  .fare-breakup strong{flex-shrink:0}
  .fare-breakup span{min-width:0}
  .night-toggle{align-items:flex-start;line-height:1.6}
  .night-toggle input{flex-shrink:0;margin-top:4px;width:16px;height:16px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
