/* Shared layout limits keep content within the viewport without hiding overflow. */
[data-site-section="home_steps"]{padding-bottom:clamp(48px,6vw,90px)}
body,main,section,article,aside,nav,form,.wrap{min-width:0}
.home-tours .tour-card:last-child{display:flex}
input,select,textarea{max-width:100%}
button,a{touch-action:manipulation}
h1,h2,h3,p,dd,.eyebrow,.route,.brand strong{overflow-wrap:anywhere}
.hero,.split,.account-layout{grid-template-columns:repeat(2,minmax(0,1fr))}
.hero>*,.split>*,.faq-layout>*,.account-layout>*,.fields>*,.pricing>*,.service-grid>*,.how-grid>*{min-width:0}
.fields{grid-template-columns:repeat(2,minmax(0,1fr))}
.dashboard-sidebar{top:110px}
.dashboard-stats strong,.price-card .price{overflow-wrap:anywhere}
.tour-meta{flex-wrap:wrap;line-height:1.6}
.pill{max-width:calc(100% - 34px);overflow-wrap:anywhere;line-height:1.5}
.cart-item>div{min-width:0;overflow-wrap:anywhere}
.cart-item>button{flex-shrink:0;min-height:44px}
.cart-service-row{grid-template-columns:minmax(0,1fr) auto}
.modal-head>div{min-width:0}
.close{width:44px;height:44px;min-width:44px}
dialog{overflow:auto;overscroll-behavior:contain;max-height:calc(100dvh - 24px)}
.auth-feedback{max-height:calc(100dvh - 120px);overflow:auto;overscroll-behavior:contain}
.trip-card-head{flex-wrap:wrap;line-height:1.6}
.trip-status{max-width:100%;overflow-wrap:anywhere}
.footer-links a{overflow-wrap:anywhere}
@media(max-width:1100px){
 .header .navlinks{top:100%;max-height:calc(100dvh - 125px);overflow-y:auto;overscroll-behavior:contain;padding:14px 20px}
 .header .navlinks>a,.header .navlinks>button{min-height:44px;padding:12px 16px;display:flex;align-items:center;gap:12px}
 .header .cart-nav{align-self:stretch;width:100%}
 .header .cart-nav span{margin-left:auto}
}
@media(max-width:900px){
 .hero{gap:25px}
 .hero h1{font-size:clamp(42px,6.5vw,60px)}
 .hero-image>img{height:clamp(350px,56vw,480px)}
 .split,.faq-layout,.account-layout{grid-template-columns:minmax(0,1fr);gap:28px}
 .story-photo img{height:clamp(300px,52vw,480px)}
 .portrait{width:min(100%,480px);margin-inline:auto}
 .portrait img{width:100%}
 .pricing{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
 .price-card{min-width:0}
 .cta{flex-direction:column;align-items:flex-start}
 .customer-dashboard{grid-template-columns:minmax(0,1fr);gap:24px}
 .dashboard-sidebar{position:static}
 .dashboard-sidebar nav{display:flex;overflow-x:auto;overscroll-behavior-x:contain;gap:6px}
 .dashboard-sidebar nav a{flex:0 0 auto;white-space:nowrap;min-height:44px;align-items:center}
 .dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
 .account-story{min-height:220px}
 .account-panel{width:100%;max-width:560px;margin-inline:auto}
 input,select,textarea,.planner input,.planner select,.cart-service-row select{font-size:16px}
 .field input,.field select,.field textarea{font-size:16px}
}
@media(max-width:700px){
 .hero,.service-grid,.values,.how-grid{grid-template-columns:minmax(0,1fr)}
 .hero{gap:30px;padding-top:30px}
 .hero h1{font-size:clamp(42px,9vw,62px)}
 .hero-image{width:min(100%,520px);margin-inline:auto}
 .hero-image>img{height:clamp(340px,90vw,440px)}
 .round-label{right:8px}
 .home-tours .tour-card:last-child{display:flex}
 .how{padding:30px 24px}
 .how-grid{gap:22px}
 .planner{grid-template-columns:repeat(2,minmax(0,1fr))}
 .planner>div:first-child{grid-column:1/-1}
 .planner>div{border:0;padding-right:0}
 .planner>.btn{width:100%}
 .cart-service-row{grid-template-columns:minmax(0,1fr)}
 .account-story-copy h2{font-size:34px!important}
 .dashboard-sidebar nav{max-width:100%;overscroll-behavior-x:contain}
}
@media(max-width:600px){
 .tour-grid,.package-grid{grid-template-columns:minmax(0,1fr)}
 .section-head h2,.story-content h2,.faq-layout h2,.cta h2{font-size:clamp(32px,8.5vw,40px)}
 .dashboard-panel{padding:22px 18px}
 .account-facts dd,.trip-facts dd{word-break:normal;overflow-wrap:anywhere}
 .profile-completion{white-space:normal}
 .profile-save-row{align-items:stretch;flex-direction:column}
 .profile-save-row .form-status{min-width:0;flex-basis:auto}
 .profile-save-row .btn{width:100%}
}
@media(max-width:540px){
 .fields{grid-template-columns:minmax(0,1fr)}
 .field.full{grid-column:1}
 .modal-head{padding:20px 17px 12px;gap:12px}
 .modal-head h2{font-size:27px}
 .booking-form{padding:10px 17px 22px}
 .cart-item{gap:12px}
 .cart-item strong{font-size:13px}
 .review-actions .btn{min-width:0;width:100%}
 .account-actions{flex-direction:column;align-items:stretch}
}
@media(max-width:480px){
 .nav>.btn{display:none}
 .nav{justify-content:space-between;gap:14px}
 .menu-toggle{width:44px;height:44px;flex-shrink:0}
 .brand{min-width:0;gap:9px}
 .brand img{flex-shrink:0}
 .brand strong{font-size:22px}
 .wrap{width:calc(100% - 32px)}
 .topbar{padding:10px 16px;line-height:1.6}
 .page-intro h1{font-size:clamp(38px,10.8vw,49px)}
 .hero h1{font-size:clamp(40px,11.5vw,55px)}
 .hero-actions{align-items:flex-start;gap:20px}
 .hero-note{flex-wrap:wrap;line-height:1.6}
 .benefits{gap:18px 12px;line-height:1.6}
 .benefits span{align-items:flex-start}
 .planner{padding:19px 17px;gap:16px 12px}
 .planner input[type=date]{min-width:0;width:100%}
 .card-bottom{flex-direction:column;align-items:flex-start;gap:8px}
 .card-bottom button{min-height:44px;text-align:left}
 .filters{gap:8px}
 .filter{min-height:44px;padding:10px 15px}
 .dashboard-sidebar{padding:18px 14px;gap:8px 10px;grid-template-columns:38px minmax(0,1fr) auto}
 .dashboard-sidebar .profile-avatar{width:38px;height:38px;font-size:20px}
 .dashboard-sidebar>strong{font-size:15px}
 .dashboard-sidebar #account-signout{padding:10px 12px;font-size:11px;min-height:44px}
 .dashboard-sidebar nav a{min-height:44px;display:flex;align-items:center}
 .dashboard-stats>a{padding:17px 13px}
 .dashboard-stats strong{font-size:29px}
 .saved-trip{padding:20px 17px}
 .trip-card-head{gap:12px;font-size:10px}
 .footer-top{gap:24px 16px}
 .footer-bottom{padding-bottom:calc(72px + env(safe-area-inset-bottom))}
 .floating{bottom:max(14px,env(safe-area-inset-bottom));right:16px;min-height:44px;display:flex;align-items:center}
}

/* Keep account actions clear of chat and make small-screen controls easier to use. */
.account-page~.floating{position:static;display:flex;width:fit-content;margin:20px 16px 24px auto}
@media(max-width:480px){
 .footer-top{grid-template-columns:minmax(0,1fr)}
 .footer-links a{display:flex;align-items:center;min-height:40px}
 .auth-text-button,.auth-feedback-close,.password-input button{min-height:44px}
 .guide-intro>*{min-width:0}
}
@media(max-width:400px){
 .planner{grid-template-columns:minmax(0,1fr)}
 .planner>div,.planner>.btn{grid-column:1}
 .hero-cinematic .hero-copy{padding:36px 22px}
 .hero-cinematic h1{font-size:clamp(38px,11vw,44px)}
}
