/* V38: shared responsive containment and screenshot-confirmed repairs.
   Applied after V36 on every generated route. No legal, form or media changes. */
*,*::before,*::after{box-sizing:border-box}
html{min-width:0}
body{min-width:0;overflow-x:clip}
:where(main,section,article,aside,header,footer,nav,.container,.shell,.sl-shell){min-width:0}
:where(img,video,picture,svg){max-width:100%}
:where(img,video){height:auto}
:where(.resource-grid,.feature-stack,.support-grid,.grid3,.review-grid,.option-grid,.lv-service-grid,.lv-v8-service-grid,.lv-command-grid,.lv-service-editorial-grid,.lv-journey__layout)>*{min-width:0;max-width:100%}
:where(.resource-card,.feature-card,.support-card,.lv-service-card,.lv-command-card,.lv-journey-panel) :is(h2,h3,p,a,small,strong){max-width:100%;overflow-wrap:normal;word-break:normal;hyphens:manual}
:where(input,textarea,select){max-width:100%;min-width:0}
:where(button,a,input,select,textarea):focus-visible{outline:3px solid #b93813;outline-offset:3px}
body[data-restrained-v36] .resource-grid{
 display:grid!important;
 grid-template-columns:repeat(3,minmax(0,1fr))!important;
 gap:clamp(16px,2vw,24px)!important;
 align-items:stretch;
}
body[data-restrained-v36] .resource-card{
 display:flex;flex-direction:column;align-items:flex-start;
 min-width:0!important;min-height:0!important;
 padding:clamp(20px,2vw,28px)!important;
}
body[data-restrained-v36] .resource-card :is(h2,h3){
 font-size:clamp(1.35rem,1.9vw,1.95rem)!important;
 line-height:1.18!important;letter-spacing:-.025em;
 text-wrap:pretty;overflow-wrap:normal!important;word-break:normal!important;
}
body[data-restrained-v36] .resource-card p{font-size:1rem;line-height:1.6}
body[data-restrained-v36] .resource-card>a{margin-top:auto;align-self:flex-start}
body[data-restrained-v36] .lv-journey__layout{
 display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
 gap:clamp(24px,4vw,64px);align-items:start;
}
body[data-restrained-v36] .lv-journey-explorer,
body[data-restrained-v36] .lv-journey-panel,
body[data-restrained-v36] .lv-journey-panel>div{
 min-width:0!important;max-width:none!important;width:100%!important;
}
body[data-restrained-v36] .lv-journey-panel:not([hidden]){
 display:block!important;min-height:0!important;padding:clamp(24px,3vw,40px)!important;
}
body[data-restrained-v36] .lv-journey-panel[hidden]{display:none!important}
body[data-restrained-v36] .lv-journey-panel>.lv17-icon-tile,
body[data-restrained-v36] .lv-journey-panel>span:first-child{display:none!important}
body[data-restrained-v36] .lv-journey-panel :is(h3,p,a){
 width:auto!important;max-width:65ch!important;min-width:0!important;
 overflow-wrap:normal!important;word-break:normal!important;white-space:normal!important;
}
body[data-restrained-v36] .lv-journey-panel h3{
 font-size:clamp(1.4rem,2vw,2rem)!important;line-height:1.2!important;margin:0 0 12px;
}
body[data-restrained-v36] .lv-journey-panel p{font-size:1rem!important;line-height:1.65!important;margin:0 0 20px}
body[data-restrained-v36] .lv-journey-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;min-width:0}
body[data-restrained-v36] .lv-journey-tabs button{min-width:0;min-height:44px;padding:10px 8px;white-space:normal}
@media(max-width:1000px){
 body[data-restrained-v36] .resource-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 body[data-restrained-v36] .lv-journey__layout{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:640px){
 body[data-restrained-v36] .resource-grid{grid-template-columns:minmax(0,1fr)!important}
 body[data-restrained-v36] .resource-card{padding:22px!important}
 body[data-restrained-v36] .resource-card :is(h2,h3){font-size:clamp(1.4rem,6vw,1.85rem)!important}
 body[data-restrained-v36] .lv-journey-panel:not([hidden]){padding:22px!important}
 body[data-restrained-v36] .lv-journey-tabs button{font-size:.95rem}
 :where(.container,.shell,.sl-shell){max-width:100%}
}
@media(prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}}

/* V39 — repair hidden icon grid-track remnants in the restrained visual design.
   In V36, icons are display:none, but legacy cards still reserve 52/58px columns
   for those icons and place meaningful text into that narrow, first grid track.
   The result was letter-by-letter wrapping across desktop service/feature cards. */
body[data-restrained-v36] .feature-stack > .feature-card,
body[data-restrained-v36] .lv-v8-service-grid > .lv-v8-service-card {
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  grid-auto-flow:row;
  align-content:start;
  gap:0!important;
  min-height:0!important;
}
body[data-restrained-v36] .feature-stack > .feature-card > div,
body[data-restrained-v36] .lv-v8-service-grid > .lv-v8-service-card > span:not([aria-hidden]) {
  display:block!important;
  grid-column:1 / -1!important;
  min-width:0!important;
  width:100%!important;
  max-width:none!important;
}
body[data-restrained-v36] .feature-stack > .feature-card :is(h3,p),
body[data-restrained-v36] .lv-v8-service-grid > .lv-v8-service-card :is(strong,small) {
  overflow-wrap:normal!important;
  word-break:normal!important;
  hyphens:manual;
}
