html{-webkit-text-size-adjust:100%}
body{overflow-x:hidden}
button,a,input{touch-action:manipulation}

@media(max-width:680px){
  .shell{width:min(100% - 32px,1180px)}
  .nav{gap:12px}
  .nav .brand{font-size:1.25rem}
  .nav .actions{gap:10px}
  .nav .actions>a:not(.primary){display:inline-flex;font-size:.88rem;font-weight:700;color:var(--green)}
  .nav .actions .primary{min-height:44px;padding:9px 13px;font-size:.86rem;white-space:nowrap}
  .nav .mobile-menu{display:none}
  .hero{padding-top:42px}
  .hero h1{font-size:clamp(2.55rem,13vw,3.2rem);letter-spacing:-.055em}
  .hero-actions{display:grid;grid-template-columns:1fr}
  .hero-actions .btn{width:100%;min-height:50px}
  .hero .demo{border-radius:22px}
  .hero .demo-head{gap:10px;padding:16px}
  .hero .call-id{min-width:0}
  .hero .call-id b,.hero .call-id small{overflow-wrap:anywhere}
  .hero .channel{padding:7px 9px}
  .hero .transcript,.hero .side-data{padding:18px 16px}
  .hero .demo-foot{padding:13px 16px}
  section{padding:68px 0}
  .section-head h2{font-size:clamp(2.15rem,10vw,3rem)}
  .feature-copy{padding:26px 22px}
  .feature-copy h3{font-size:2rem}
  .feature-ui{padding:16px}
  .window-body{padding:16px}
  .appt{grid-template-columns:52px 1fr;gap:8px}
  .appt .tag{grid-column:2;justify-self:start}
  .price-row{padding:25px 20px;gap:16px}
  .price-row.featured{padding-top:34px}
  .popular{right:16px}
  .price-row .btn{width:100%;justify-self:stretch;min-height:48px}
  .cta-panel{padding:34px 24px}
  .cta-panel .btn{width:100%;justify-self:stretch;min-height:50px}
  .footer-grid{grid-template-columns:1fr}
  .footer-brand{grid-column:auto}
  .pms-table{min-width:580px}
  .conversation-dock{left:14px;right:14px;justify-content:center}
  .conversation-dock button{flex:1;min-height:44px}
}

@media(max-width:380px){
  .nav .actions{gap:7px}
  .nav .actions>a:not(.primary){font-size:.8rem}
  .nav .actions .primary{padding-inline:10px}
  .hero h1{font-size:2.45rem}
  .hero .pulse{display:none}
  .hero .demo-head{align-items:center}
}

@media(max-width:980px){
  .signin-shell{min-height:100svh}
  .form-panel{min-height:100svh;padding:24px max(18px,env(safe-area-inset-right)) max(28px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left))}
  .mobile-brand{margin-bottom:42px}
  .form-wrap{width:min(100%,470px)}
}

@media(max-width:480px){
  .form-panel{justify-content:flex-start}
  .mobile-brand{margin-bottom:34px}
  .heading{margin-bottom:24px}
  .heading h2{font-size:clamp(1.95rem,10vw,2.25rem);letter-spacing:-.04em}
  .field{margin-bottom:18px}
  input[type=email],input[type=password],input[type=text]{height:56px;font-size:16px}
  .password-wrap button{min-width:48px;min-height:44px}
  .remember{min-height:44px;margin-bottom:20px}
  .submit{min-height:56px}
  .support{line-height:1.6}
  .legal{margin-top:auto;padding-top:30px;line-height:1.6}
}

@media(max-width:650px){
  .booking-shell{min-height:100svh}
  .visual-panel{min-height:210px;padding:22px max(20px,env(safe-area-inset-right)) 22px max(20px,env(safe-area-inset-left))}
  .visual-copy{left:20px;right:20px;bottom:28px}
  .visual-copy h1{font-size:clamp(2rem,11vw,2.65rem);line-height:1.02}
  .visual-trust{display:none}
  .booking-panel{padding:72px max(16px,env(safe-area-inset-right)) max(36px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}
  .back-home{top:22px;right:18px;min-height:44px;display:flex;align-items:center}
  .progress{margin-bottom:28px}
  .progress li{gap:7px}
  .progress span{width:34px;height:34px}
  .progress li:first-child:after{left:34px;right:7px}
  .booking-panel .step h2,.booking-panel .confirmation h2{font-size:clamp(2rem,10vw,2.45rem)}
  .intro{margin-bottom:24px}
  .field{margin-bottom:14px}
  .booking-panel input{height:54px;font-size:16px}
  .primary{min-height:54px}
  .calendar{padding:12px 8px}
  .calendar-head button{width:44px;height:44px}
  .weekdays,.dates{gap:2px}
  .date-button{min-height:44px;aspect-ratio:auto;border-radius:9px}
  .time-button{min-height:48px}
  .consent{font-size:.88rem;line-height:1.5}
  .consent input{width:20px;height:20px}
  .text-button{min-height:44px}
  .footnotes{line-height:1.5}
  .confirmation{padding-top:10px}
}

@media(max-width:360px){
  .progress b{font-size:.72rem;padding-right:5px}
  .booking-panel{padding-inline:14px}
  .calendar{padding-inline:5px}
  .weekdays{font-size:.58rem}
  .date-button{font-size:.875rem;min-height:44px}
  .times{grid-template-columns:1fr}
}

@media(hover:none){
  .btn:hover,.submit:hover,.primary:hover,.price-row:hover{transform:none}
}

/* Keep form controls and long content within the viewport when text is enlarged. */
.form-grid>*,.form-panel,.booking-panel{min-width:0}
.remember{max-width:100%;width:fit-content}
.label-row{gap:10px;flex-wrap:wrap}
.consent span,.remember span,.confirmation strong{overflow-wrap:anywhere}
.calendar-head{grid-template-columns:44px minmax(0,1fr) 44px}
