/* Modal geometry must stay in the viewport when its details grow or scroll. */
dialog.modal-shell{position:fixed;inset:0;margin:auto;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);overscroll-behavior:contain}
#modal-content{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}

/* Allow real words and large text to fit without extending a grid column. */
.page-hero>div,.page-content-layout>*,.page-cta>div,.journey-card{min-width:0}
.page-hero h1,.page-cta h2,.page-prose h2,.page-link-card h3,.journey-card h3{overflow-wrap:anywhere;hyphens:auto}
.page-prose a,.page-download>span,.page-site-links>a{overflow-wrap:anywhere}
.page-site-links>a{gap:14px}
.page-site-links>a>span{flex-shrink:0}
@media(max-width:360px){
 .page-hero h1{font-size:39px}
 .page-cta h2{font-size:26px}
 .journey-card h3{font-size:24px}
}
/* iOS keeps form text at the readable size instead of zooming the viewport. */
@media(max-width:700px){
 input[type=search],.bk-select-wrap select{font-size:16px}
 .page-price-toolbar input{font-size:16px}
}

/* The sticky header is the single persistent booking control. */
body .mobile-book{display:none!important}
.page-section>.page-cta:first-child{margin-top:0}
@media(max-width:700px){
 .header .nav{gap:10px}
 .header .nav-actions{gap:10px;min-width:0}
 .header .logo{font-size:30px;gap:6px;letter-spacing:-1.5px;flex-shrink:0}
 .header .logo>.akita-logo{width:32px;height:32px}
 .header .brand-symbol{width:29px;height:29px}
 .header .nav-book{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:11px 12px;font-size:11px;gap:8px;white-space:nowrap;flex-shrink:0}
 .header .nav-book>span{width:18px;min-width:18px;flex-basis:18px;font-size:20px}
 .header .menu-toggle{width:44px;min-width:44px;min-height:44px;justify-content:center;align-items:center;padding:9px;flex-shrink:0}

 /* Every reason and specialty is visible; selection needs no sideways gesture. */
 #care .situation-tabs,.doctor-gallery-toolbar .doctor-filters{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;
  width:100%;max-width:100%;overflow:visible;margin:20px 0 18px;
  padding:0!important;scroll-snap-type:none;
 }
 #care .situation-tabs>button,#doctors .doctor-filters>button{
  display:flex;align-items:center;justify-content:center;min-width:0;
  min-height:46px;padding:10px 11px;font-size:11px;line-height:1.3;
  white-space:normal;text-align:center;overflow-wrap:normal;
 }
 #care .situation-tabs>button:last-child:nth-child(odd){grid-column:1/-1}
 .doctor-gallery-toolbar .doctor-filters{margin:0 0 8px}
 .scroll-row-hint{display:none!important}

 /* No reserved bar space remains underneath the flowing footer or menu. */
 footer{padding-bottom:24px;padding-bottom:max(24px,env(safe-area-inset-bottom))}
 #main-nav.site-nav{padding-bottom:calc(20px + env(safe-area-inset-bottom))}
 .theme-status{bottom:18px;bottom:max(18px,env(safe-area-inset-bottom))}

 /* Keep the peeking face, while reducing the empty reservation above the FAQ. */
 :root[data-theme=akita] body:not(.readable) .akita-peek-host-1{padding-top:74px}
 .akita-peek-host-1>.akita-card-peek,.akita-peek-host-1>.akita-card-paws{width:102px;height:94px;right:18px;top:0}

 body.readable .header .logo{font-size:28px}
 body.readable .header .logo>.akita-logo,body.readable .header .brand-symbol{display:none}
 body.readable .header .nav-book{display:inline-flex;font-size:14px;white-space:nowrap;padding:11px 10px;gap:7px}
 body.readable #care .situation-tabs>button,body.readable #doctors .doctor-filters>button{font-size:15px;min-height:52px}
}
@media(max-width:360px){
 .header .nav{padding-left:16px;padding-right:16px;gap:8px}
 .header .logo{font-size:28px;gap:5px}
 .header .logo>.akita-logo{width:28px;height:28px}
 .header .brand-symbol{width:27px;height:27px}
 .header .nav-actions{gap:8px}
 .header .nav-book{padding-left:10px;padding-right:10px;font-size:10.5px;gap:6px}
 #care .situation-tabs>button,#doctors .doctor-filters>button{font-size:10.5px;padding-left:8px;padding-right:8px}
}
