/* Phone and tablet refinements, kept separate from the desktop design. */
.table-swipe-hint{display:none}
.footer-grid>div>a:hover,.social-links a:hover{color:var(--blue)}

@media(max-width:950px){
  .menu-toggle{width:44px;height:44px;min-width:44px;flex:0 0 44px;align-items:center}
  .site-header nav{max-height:calc(100dvh - 160px);overflow-y:auto;overscroll-behavior:contain}
  .site-header nav>a{min-height:48px;display:flex;align-items:center}
  .story-split>*,.hero>*,.calculator>*,.discount-layout>*,.two-col>*{min-width:0}
}

@media(max-width:700px){
  html{scroll-padding-top:94px}
  .story-split,.calculator,.two-col,.detail-hero{grid-template-columns:minmax(0,1fr)}
  .video-card,.video-launch{min-width:0;max-width:100%}
  .video-caption{white-space:normal}
  .nav-inner{padding-inline:16px;gap:12px}
  .brand{flex:0 0 78px;min-width:78px}
  .brand img{width:78px;height:62px}
  .nav-cta{margin-left:auto;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
  .button{max-width:100%;white-space:normal;line-height:1.4;text-align:center}
  .button>span:last-child{flex-shrink:0}
  .button-row{min-width:0}
  .jump-links a{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
  .mobile-booking{padding-inline:12px;gap:8px;padding-bottom:max(9px,env(safe-area-inset-bottom))}
  .mobile-booking>a{min-height:46px;display:flex;align-items:center;justify-content:center;line-height:1.35}
  .child-fields{grid-template-columns:minmax(0,1fr)}
  .child-card{min-inline-size:0}
  .child-fields>div,.quote-row>span{min-width:0}
  .child-fields select,.calculator-result select{width:100%;max-width:100%;font-size:16px}
  .child-heading{gap:12px;align-items:center}
  .remove-child{min-height:44px;min-width:64px;padding:8px}
  .quote-row{gap:12px}
  .quote-row>span{overflow-wrap:anywhere}
  .quote-row strong{font-size:15px}
  .family-total{font-size:clamp(38px,12vw,52px)!important;line-height:1.15;letter-spacing:-.05em}
  .calculator-result .button{width:100%;padding-inline:10px}
  .table-swipe-hint{display:block;font-weight:500;font-size:12px;color:var(--muted);margin-top:5px}
  .table-wrap{overscroll-behavior-x:contain}
  .comparison table{min-width:700px;table-layout:fixed}
  .comparison col:first-child{width:135px}
  .comparison col:nth-child(2){width:170px}
  .comparison col:nth-child(3){width:210px}
  .comparison col:nth-child(4){width:185px}
  .comparison th,.comparison td{padding:18px 14px;font-size:14px;overflow-wrap:break-word}
  .comparison tbody th,.comparison thead th:first-child{position:sticky;left:0;z-index:2;background:#f5f8fd;box-shadow:1px 0 0 #c8d9ec}
  .comparison thead th:first-child{background:#e6eef9;z-index:3}
  .comparison caption{text-align:left}
  .discount-layout .table-wrap{min-width:0}
  .discount-layout table th:first-child{position:sticky;left:0;background:#f5f8fd;z-index:2}
  .legal-body,.article-body{overflow-wrap:break-word}
  .dialog-close{width:44px;height:44px;right:8px;top:8px;background:#fff;box-shadow:0 2px 12px #172b4230}
  dialog{max-width:calc(100vw - 28px);max-height:calc(100dvh - 32px);padding:12px}
  .media-content video{max-width:calc(100vw - 52px);max-height:calc(100dvh - 125px)}
  .media-content>a{display:flex;align-items:center;min-height:44px;font-size:14px;padding:8px 4px}
  .booking-form-heading,.booking-form-help{padding:20px 16px}
  .booking-google-form{height:850px}
  [data-page="book-trial"] .booking-layout{width:calc(100% - 24px)}
}

@media(max-width:360px){
  .container{width:calc(100% - 32px)}
  .nav-inner{padding-inline:12px;gap:8px}
  .brand{flex-basis:64px;min-width:64px}
  .brand img{width:64px;height:55px}
  .nav-cta{font-size:11px;padding:11px 10px;gap:7px}
  .hero h1{font-size:36px}
  .page-hero h1,.detail-hero h1,.programs-intro h1{font-size:37px}
  .pricing-hero h1{font-size:30px}
  .pricing-hero .hero-rate{gap:7px}
  .pricing-hero .hero-rate>strong{font-size:51px}
  .pricing-hero .hero-rate>strong>span{font-size:20px;margin-left:4px}
  .hero-rate>span{font-size:11px}
  .price-card,.price-card.featured{padding:27px 20px}
  .price-card>.button{font-size:14px}
  .price-card .hourly{font-size:43px}
  .calculator-promo{padding:23px 20px}
  .calculator-promo-button{white-space:normal;gap:10px;padding-inline:14px}
  .calculator-promo-button span{margin-left:0}
  .calculator-section h2{font-size:35px}
  .child-card{padding:20px}
  .calculator-result{padding:27px 20px}
  .family-total{font-size:38px!important}
  .quote-row{flex-wrap:wrap;gap:5px}
  .quote-row>span{flex-basis:100%}
  .article-header h1{font-size:35px}
  .legal-hero h1{font-size:35px}
  .mobile-booking>a{font-size:11px}
  .footer-grid{column-gap:17px}
  .footer-grid h2{font-size:17px}
}
