/* SHEPHERDS V25 — RESPONSIVE SYSTEM + MILAN CLIENT-BRIEF HARDENING */
:root{--v25-gutter:clamp(14px,3.2vw,28px);--v25-safe-top:max(0px,env(safe-area-inset-top));--v25-safe-bottom:max(0px,env(safe-area-inset-bottom));--v25-ease:cubic-bezier(.2,.82,.18,1)}
html{width:100%;max-width:100%;overflow-x:hidden;text-size-adjust:100%;-webkit-text-size-adjust:100%}
body.v25-site{width:100%;max-width:100%;overflow-x:clip}
.v25-site *,.v25-site *::before,.v25-site *::after{box-sizing:border-box}
.v25-site :is(main,section,article,aside,header,footer,nav,form,fieldset,div){min-width:0}
.v25-site :is(img,picture,video,canvas,svg){max-width:100%}
.v25-site img{height:auto}
.v25-site :is(input,select,textarea,button){max-width:100%;font:inherit}
.v25-site :is(h1,h2,h3,h4,p,li,a,button,label,small,strong,span){overflow-wrap:break-word}
.v25-site :is(a,button){-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.v25-site .container{max-width:100%}

/* Keep interactive copy readable at both ends of the viewport range. */
.v25-site :is(a,button)[class*="btn"],.v25-site :is(a,button)[class*="button"],.v25-site .sage-action-primary,.v25-site .sage-action-secondary{min-height:48px;max-width:100%;white-space:normal;text-align:center;line-height:1.18!important}
.v25-site :is(input,select,textarea){font-size:max(16px,1rem)}

/* Milan is an application surface, so it should size from the dynamic viewport rather than the old static mobile viewport. */
.v25-site .sage-portal{inset:0!important;width:100%!important;height:100dvh!important;max-width:100vw!important;overflow:hidden!important;padding-top:var(--v25-safe-top)!important}
.v25-site .sage-shell{width:min(1440px,100%)!important;max-width:100%!important;height:calc(100dvh - var(--v25-safe-top))!important;max-height:none!important;margin:0 auto!important;border-radius:0!important;overflow:hidden!important}
.v25-site .sage-body,.v25-site .sage-chat,.v25-site .sage-thread,.v25-site .sage-thread-inner,.v25-site .sage-summary,.v25-site .sage-plan-picker,.v25-site .sage-plan-focus{min-width:0!important;max-width:100%!important}
.v25-site .sage-thread{overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch!important}
.v25-site .sage-summary{padding-inline:clamp(12px,2.4vw,28px)!important;margin-inline:auto!important}
.v25-site .sage-plan-frames{grid-template-columns:repeat(3,minmax(0,1fr))!important;align-items:stretch!important}
.v25-site .sage-plan-frame{width:100%!important;min-width:0!important}
.v25-site .sage-plan-frame :is(h3,p,li,.sage-plan-use,.sage-plan-trade){max-width:100%!important}
.v25-site .sage-plan-focus-top,.v25-site .sage-plan-focus-body{max-width:100%!important}
.v25-site .sage-plan-focus-top{grid-template-columns:minmax(0,1fr) auto!important;gap:clamp(18px,4vw,48px)!important}
.v25-site .sage-operating-story,.v25-site .sage-focus-steps,.v25-site .sage-includes{min-width:0!important}
.v25-site .sage-handoff-grid{min-width:0!important}
.v25-site .sage-handoff-grid>*{min-width:0!important}

/* Make Business OS / qualification language visually scannable instead of burying it in paragraph copy. */
.v25-site .sage-plan-frame li,.v25-site .sage-includes>div{line-height:1.48!important}
.v25-site .sage-plan-use{font-weight:650!important}
.v25-site .sage-plan-focus-body .sage-story-section{scroll-margin-top:92px}

/* The client handoff should feel like a compact intake record on narrow devices. */
@media(max-width:980px){
 .v25-site .sage-plan-frames{grid-template-columns:1fr!important}
 .v25-site .sage-plan-frame{min-height:0!important}
 .v25-site .sage-plan-focus-top{grid-template-columns:1fr!important}
 .v25-site .sage-plan-focus-price{text-align:left!important}
}
@media(max-width:760px){
 :root{--v25-gutter:14px}
 .v25-site .sage-shell{height:calc(100dvh - var(--v25-safe-top))!important}
 .v25-site .sage-topbar{min-height:70px!important;padding:10px 12px!important;gap:8px!important}
 .v25-site .sage-brand{min-width:0!important}.v25-site .sage-brand span:last-child{min-width:0!important}
 .v25-site .sage-brand b{font-size:17px!important}.v25-site .sage-brand small{font-size:9px!important}
 .v25-site .sage-top-context{display:none!important}
 .v25-site .sage-top-actions{margin-left:auto!important;gap:6px!important}.v25-site .sage-top-actions .sage-quiet{display:none!important}
 .v25-site .sage-close{width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important}
 .v25-site .sage-body{grid-template-columns:1fr!important;height:calc(100% - 70px)!important}
 .v25-site .sage-context-rail{display:none!important}
 .v25-site .sage-chat{height:100%!important;min-height:0!important}
 .v25-site .sage-thread{padding-bottom:max(18px,var(--v25-safe-bottom))!important}
 .v25-site .sage-summary{padding-inline:12px!important}
 .v25-site .sage-summary-path{overflow-x:auto!important;overscroll-behavior-inline:contain;scrollbar-width:none;gap:8px!important;padding-bottom:4px}.v25-site .sage-summary-path::-webkit-scrollbar{display:none}
 .v25-site .sage-summary-path span{flex:0 0 auto!important;white-space:nowrap!important}
 .v25-site .sage-summary-hero{padding:24px 18px!important;border-radius:24px!important}
 .v25-site .sage-summary-hero h1{font-size:clamp(35px,10.5vw,50px)!important;line-height:.98!important}
 .v25-site .sage-plan-picker{padding:16px 0!important}
 .v25-site .sage-plan-picker-head{padding-inline:4px!important;gap:10px!important}
 .v25-site .sage-plan-picker-head h2{font-size:clamp(32px,9vw,44px)!important}
 .v25-site .sage-plan-frame{padding:20px!important;border-radius:24px!important}
 .v25-site .sage-plan-frame h3{font-size:clamp(27px,8vw,36px)!important}
 .v25-site .sage-plan-focus{padding:0!important}
 .v25-site .sage-plan-sheet{border-radius:26px!important;overflow:hidden!important}
 .v25-site .sage-plan-focus-top,.v25-site .sage-plan-focus-body{padding:22px 18px!important}
 .v25-site .sage-plan-focus-top h1{font-size:clamp(34px,10vw,46px)!important;line-height:.98!important}
 .v25-site .sage-story-section{padding-block:24px!important}
 .v25-site .sage-operating-story,.v25-site .sage-focus-steps{gap:12px!important}
 .v25-site .sage-handoff-grid,.v25-site .sage-focus-actions,.v25-site .sage-focus-actions-final{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}
 .v25-site .sage-handoff-grid>* ,.v25-site .sage-focus-actions>*{width:100%!important}
 .v25-site .sage-composer{padding-bottom:max(12px,var(--v25-safe-bottom))!important}
}
@media(max-width:420px){
 .v25-site .sage-summary{padding-inline:8px!important}
 .v25-site .sage-summary-hero{padding:22px 16px!important}
 .v25-site .sage-plan-frame{padding:18px!important}
 .v25-site .sage-plan-focus-top,.v25-site .sage-plan-focus-body{padding-inline:16px!important}
}

/* Generic sitewide responsive guardrails for all Shepherds marketing routes. */
@media(max-width:900px){
 .v25-site .ba-site .container,.v25-site.ba-site .container{width:min(calc(100% - 28px),1320px)!important}
 .v25-site :is(.ef-smart-grid,.ef-photo-grid,.ef-advice,.ef-result-strip,.ba-footer-top){min-width:0!important}
 .v25-site :is(.ef-smart-card,.ef-photo-card,.ef-result,.ba-footer-col){min-width:0!important}
}
@media(max-width:560px){
 .v25-site .ba-site .container,.v25-site.ba-site .container{width:min(calc(100% - 22px),1320px)!important}
 .v25-site :is(.ef-actions,.ba-home-actions,.ba-page-actions){display:grid!important;grid-template-columns:1fr!important;gap:10px!important}
 .v25-site :is(.ef-actions,.ba-home-actions,.ba-page-actions)>*{width:100%!important}
}
@media(prefers-reduced-motion:reduce){.v25-site *,.v25-site *::before,.v25-site *::after{scroll-behavior:auto!important}}
