/* Shared viewport and touch refinements. */
html{scroll-padding-top:150px}main,section,article,figure{min-width:0}img{max-width:100%}.faq summary,.product-faq summary{min-height:48px;padding-top:16px;padding-bottom:16px}.request-close{min-width:44px;min-height:44px}input,select,textarea{font-size:16px}#sim-form input,#sim-form select{font-size:16px}
@media(min-width:801px) and (max-width:1000px){.nav nav{display:none;position:absolute;left:0;right:0;top:112px;padding:24px 32px;flex-direction:column;align-items:stretch;max-height:calc(100dvh - 112px);overflow:auto;background:var(--surface);border-bottom:1px solid var(--border-subtle)}.nav nav.open{display:flex}.mobile-toggle{display:block;min-width:44px;min-height:44px}.nav>.cta{margin-left:auto}.solutions-dropdown{position:static;transform:none;width:100%;max-height:none}.dropdown-columns{grid-template-columns:1fr}.dropdown-top{flex-direction:column;align-items:flex-start}}
@media(max-width:800px){html{scroll-padding-top:110px}.nav nav{max-height:calc(100dvh - 88px);overscroll-behavior:contain}.nav nav a,.nav nav summary{min-height:44px;display:flex;align-items:center}.nav nav summary{justify-content:space-between}.nav>.cta{white-space:nowrap;gap:8px}.nav .logo img{width:112px}.nav{gap:12px}.hero h1,.detail-hero h1,.solutions-hero h1{font-size:clamp(38px,10.8vw,54px);letter-spacing:-.045em}.intro,.lead{font-size:18px;line-height:1.6}.hero,.detail-hero{padding-top:32px;padding-bottom:32px}.faq summary,.product-faq summary{font-size:16px;line-height:1.5}.faq p,.product-faq p{font-size:16px;line-height:1.65}.demo-steps button,.floor-tabs button,.pos-categories button,.pos-course button,.mobile-account,.pay-method button,.tip-options button{min-height:44px}dialog{max-height:calc(100dvh - 32px);overflow-y:auto}.payment-types li{font-size:14px}.plan-comparison thead th{position:sticky;top:88px;z-index:1;background:var(--ink)}.base-included{font-size:12px}.plan-comparison tbody th,.plan-comparison tbody th span{font-size:13px}}
@media(max-width:359px){.nav .logo img{width:94px}.nav>.cta{font-size:12px}.nav{gap:8px}.nav>.cta span{display:none}.plan-grid .plan-price{font-size:36px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.story-sequence,.story-item,.story-item>div{min-width:0}.story-item h3,.story-item p{overflow-wrap:anywhere}.story-item>span{flex-shrink:0}
/* Compact demo request: columns on desktop, readable controls on phones. */
#demo-request{max-width:940px;width:calc(100% - 32px);max-height:calc(100dvh - 32px);padding:24px 28px;overscroll-behavior:contain;scrollbar-gutter:stable}
#demo-request h2{font-size:28px;margin:12px 0 8px;max-width:760px}
#demo-request>p{margin:0;line-height:1.5}
#request-form{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 18px;margin-top:18px;align-items:start}
#request-form label{min-width:0;gap:5px;align-content:start}
#request-form input,#request-form select{min-width:0;font-size:16px;height:44px;padding:8px 10px}
#request-form label span{line-height:1.35}
#request-form .request-note,#request-form .btn,#request-status{grid-column:1/-1}
#request-form .btn{padding:12px 20px;min-height:46px;font-size:17px}
#request-status:empty{display:none}
#demo-request .request-close{position:sticky;top:0;z-index:2;background:var(--surface);border-radius:50%;width:44px;height:44px;margin:-8px -10px 0 8px}
@media(max-width:700px){#request-form{grid-template-columns:repeat(2,minmax(0,1fr))}#demo-request{padding:20px}#demo-request h2{font-size:25px}}
@media(max-width:480px){#demo-request{width:calc(100% - 20px);max-height:calc(100dvh - 20px);padding:18px}#request-form{grid-template-columns:1fr;gap:12px}#demo-request h2{font-size:24px}#demo-request .eyebrow{font-size:10px;letter-spacing:.1em}}
