/*
 * ABL responsive layout: eliminate horizontal overflow at the source.
 * Preserves mobile pinch-zoom and the existing desktop visual identity.
 */
html,body{max-width:100%}
body{overflow-x:clip}
.container{max-width:1240px}
.abl-feature-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-left:1px solid #111}
.abl-feature-strip-item{padding:12px 18px;min-width:0;border-right:1px solid #111;overflow-wrap:break-word}
.abl-feature-strip-item strong{font-weight:700}
.hero-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.demo-wrap{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
.hero-grid>*,.demo-wrap>*,.problem-grid>*,.feature-grid>*,.founder-grid>*,.process>*,.team>div:last-child,
.demo-box,.abl-tool,.form-row>*{min-width:0;max-width:100%}
.phone-wrap,.phone,.screen,.chat,.bubble{min-width:0;max-width:100%}
.demo-box{width:100%}
.tabs{max-width:100%;min-width:0;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.abl-turn,.abl-tool,.result,.abl-beta-notice,.card,.team,.quote,.abl-helper{overflow-wrap:break-word}
.abl-turn a,.abl-tool a,.result a,footer a{overflow-wrap:anywhere}
.abl-tool input:not([type=checkbox]):not([type=radio]),.abl-tool select,
.abl-tool textarea,.demo-box textarea,.demo-box select{min-width:0;max-width:100%}
.abl-turn pre,.abl-tool pre,.result pre{max-width:100%;overflow-x:auto;white-space:pre-wrap;overflow-wrap:anywhere}
.abl-map-toolbar,.abl-map-key,.abl-map-details{max-width:100%;min-width:0}
img,svg,video{max-width:100%}
@media(max-width:850px){
 .hero-grid,.demo-wrap{grid-template-columns:minmax(0,1fr);gap:28px}
 .abl-feature-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
 .demo-section .demo-box{margin-bottom:4px}
 .nav-inner{gap:12px}
}
@media(max-width:520px){
 .container{width:calc(100% - 32px)}
 .hero{padding:44px 0 48px}
 .hero-grid{gap:26px}
 .hero-grid>div:first-child>div:first-child{flex-wrap:wrap}
 h1{font-size:clamp(2.65rem,12vw,3.65rem);line-height:.97;letter-spacing:-.05em}
 h2{font-size:clamp(2rem,9vw,2.65rem);line-height:1.07;letter-spacing:-.04em}
 .hero p,.lead{font-size:16px}
 .hero-note{overflow-wrap:anywhere}
 .abl-feature-strip-item{padding:13px 11px;font-size:clamp(11px,3vw,13px);line-height:1.45}
 .abl-feature-strip-item .kicker{font-size:10px}
 .phone-wrap{padding:13px;box-shadow:4px 4px 0 #111}
 .phone{padding:6px}
 .chat{padding:13px}
 .app-top{padding:13px}
 .buttons{gap:8px}
 .btn{flex:1 1 auto;text-align:center;padding:12px 10px}
 .demo-box{padding:13px;box-shadow:4px 4px 0 var(--terracotta)}
 .tabs{margin-bottom:14px}
 .tab{padding:13px 11px;font-size:11px;min-height:43px}
 .card,.feature,.step,.team{padding:17px}
 .quote{padding:22px;font-size:clamp(1.45rem,7vw,2rem)}
 .team{gap:12px}
 .avatar{width:47px;height:47px;font-size:20px}
 .nav-inner{height:62px}
 .brand-headmark{width:40px;height:40px}
 .nav-cta{padding:10px;font-size:10px}
 .abl-tool h3{font-size:clamp(21px,6vw,26px)}
 .abl-tool .abl-controls button,.abl-answer-actions button{font-size:11px;padding:11px 12px;min-height:42px}
 .abl-feedback-choice button{min-height:42px}
 .form-row{grid-template-columns:minmax(0,1fr)}
 .demo-box input:not([type=checkbox]):not([type=radio]),
 .demo-box textarea,.demo-box select{font-size:16px}
 .footer-grid{gap:18px}
}
@media(max-width:360px){
 .container{width:calc(100% - 24px)}
 h1{font-size:clamp(2.4rem,11.7vw,2.65rem)}
 .hero-grid>div:first-child>div:first-child img{width:55px!important;height:55px!important}
 .eyebrow{font-size:10px}
 .abl-feature-strip-item{padding:11px 8px}
 .abl-feature-strip-item strong{font-size:11px}
 .demo-box{padding:11px}
}
