/* Public boxed layout; admin tools and full-screen dialogs retain their own shell. */
body:not(.admin-body){--site-shell:95%;--site-gutter:clamp(20px,2vw,40px);background:var(--canvas);}
body:not(.admin-body)>.site-header,body:not(.admin-body)>main#content,body:not(.admin-body)>.footer{width:var(--site-shell);max-width:100%;margin-inline:auto;}
body:not(.admin-body)>main#content{background:var(--canvas);container-type:inline-size;container-name:site-content;}
/* The home hero uses the viewport width without 100vw scrollbar overflow. */
body:not(.admin-body)>main#content.home-content{width:100%;}
body:not(.admin-body) .home-content>section:not(.hero-corporate){width:var(--site-shell);margin-inline:auto;container-type:inline-size;container-name:site-content;}
body:not(.admin-body) .home-content>.hero-corporate .hero-copy{width:calc(var(--site-shell) - var(--site-gutter) * 2);}
body:not(.admin-body) .wrap,body:not(.admin-body) .solutions>.wrap{width:calc(100% - var(--site-gutter) * 2);max-width:100%;margin-inline:auto;}
body:not(.admin-body) :is(.solution-grid,.subservice-grid,.catalog-solution-grid,.blog-grid,.catalog-card-grid,.service-gallery,.gallery-browser,.sitemap-grid,.insight-grid,.process-grid){border:0!important;outline:0;box-shadow:none;background:transparent!important;min-width:0;}
body:not(.admin-body) :is(.solution-grid,.subservice-grid,.catalog-card-grid,.blog-grid){gap:20px!important;}
body:not(.admin-body) :is(.solution-card,.subservice-card,.catalog-card){border-radius:16px;overflow:hidden;}
body:not(.admin-body) .catalog-card>img,body:not(.admin-body) .catalog-card-placeholder{aspect-ratio:16/9;height:auto;object-fit:cover;}
body:not(.admin-body) :is(.section,.section-alt){padding-block:clamp(44px,5vw,80px);}
body:not(.admin-body) .section-top{gap:24px;align-items:end;}
body:not(.admin-body) .section-top h2{font-size:clamp(28px,2.6vw,46px);overflow-wrap:anywhere;}
body:not(.admin-body) .section-top p{max-width:32%;flex-shrink:0;}
body:not(.admin-body) .hero-corporate,body:not(.admin-body) .hero-layout{min-height:clamp(620px,47vw,850px);}
body:not(.admin-body) .hero-copy{width:calc(100% - var(--site-gutter) * 2);max-width:100%;padding:clamp(70px,7vw,120px) 0 200px;margin-inline:auto;}
body:not(.admin-body) .hero-copy>*{max-width:65%;}
body:not(.admin-body) .hero-copy h1{font-size:clamp(40px,3.7vw,68px);line-height:1.08;}
body:not(.admin-body) .hero-label{right:var(--site-gutter);bottom:28px;width:min(310px,calc(100% - var(--site-gutter) * 2));}
body:not(.admin-body) .statement-grid{gap:clamp(28px,4vw,64px);}
body:not(.admin-body) .footer-grid{gap:clamp(24px,3vw,56px);}
body:not(.admin-body) .catalog-solution-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;}
body:not(.admin-body) .catalog-solution-card .solution-card-copy{padding:18px!important;}
body:not(.admin-body) .catalog-solution-card h3{font-size:clamp(18px,1.4vw,24px);}
body:not(.admin-body) :is(.service-copy,.two-col){gap:32px;min-width:0;}
.gallery-scroll-controls{display:flex;flex-direction:column;align-items:center;gap:14px;padding:28px 0 8px;text-align:center;}
.gallery-scroll-status{margin:0;color:var(--text-muted);font-size:14px;}
.gallery-load-more{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:48px;padding:12px 24px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);font:inherit;font-weight:700;cursor:pointer;transition:background .2s,border-color .2s;}
.gallery-load-more:hover{background:var(--surface-alt);border-color:var(--border);}
.gallery-load-more:focus-visible{outline:3px solid var(--focus);outline-offset:4px;}
.gallery-load-more:disabled{opacity:.65;cursor:progress;}
.gallery-load-more[hidden]{display:none;}
.gallery-noscript{margin-top:20px;}
.gallery-tile.is-image-loading::after{content:"";position:absolute;inset:calc(50% - 14px) auto auto calc(50% - 14px);width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--border);border-radius:50%;animation:gallery-load-spin .8s linear infinite;pointer-events:none;}
.gallery-tile.is-image-error{background:var(--surface);}
.gallery-tile.is-image-error>span{opacity:1;transform:none;}
@keyframes gallery-load-spin{to{transform:rotate(360deg);}}
@container site-content (max-width:1100px){
  body:not(.admin-body) .catalog-solution-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
  .section-top{flex-wrap:wrap;}.section-top p{max-width:100%!important;}
  .catalog-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .statement-grid{gap:28px!important;}
}
@container site-content (max-width:720px){
  body:not(.admin-body) .catalog-solution-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .service-copy,.statement-grid,.intro-grid{grid-template-columns:1fr!important;}
  .process-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media(min-width:1200px) and (max-width:1700px){
  body:not(.admin-body) .nav{gap:12px;}
  body:not(.admin-body) .brand-image{width:155px!important;max-width:155px!important;height:auto!important;}
  body:not(.admin-body) .menu{gap:2px;}
  body:not(.admin-body) .menu a{font-size:12px;padding-inline:6px;}
  body:not(.admin-body) .menu .app-icon{display:none;}
}
@media(max-width:1199px){body:not(.admin-body){--site-shell:94%;--site-gutter:24px;}}
@media(min-width:801px) and (max-width:1000px){
  body:not(.admin-body) .app-menu-toggle{display:flex!important;gap:8px;align-items:center;padding:8px 12px;min-height:44px;border-radius:10px;margin-left:auto;}
  body:not(.admin-body) .site-header .menu{display:none;position:absolute;top:calc(100% + 8px);left:24px;right:24px;padding:14px;border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:0 20px 60px var(--shadow);max-height:70vh;overflow:auto;}
  body:not(.admin-body) .site-header .menu.open{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;}
  body:not(.admin-body) .site-header .menu a{justify-content:flex-start;padding:12px;font-size:14px;}
  body:not(.admin-body) .site-header .menu .app-icon{display:block!important;}
}
@media(max-width:800px){
  body:not(.admin-body){--site-shell:100%;--site-gutter:16px;}
  body:not(.admin-body) .hero-corporate,body:not(.admin-body) .hero-layout{min-height:680px;}
  body:not(.admin-body) .hero-copy{padding:66px 0 235px;}
  body:not(.admin-body) .hero-copy>*{max-width:100%;}
  body:not(.admin-body) .hero-copy h1{font-size:clamp(36px,8vw,52px);}
  body:not(.admin-body) .hero-label{width:calc(100% - 32px);bottom:20px;}
  body:not(.admin-body) .section-top{display:block;}
  body:not(.admin-body) .section-top p{max-width:100%;}
  body:not(.admin-body) .section-top h2{font-size:clamp(28px,6vw,40px);}
  body:not(.admin-body) :is(.solution-grid,.subservice-grid,.catalog-card-grid,.blog-grid){gap:14px!important;}
  body:not(.admin-body) .footer-grid{grid-template-columns:1fr;gap:26px;}
}
@media(prefers-reduced-motion:reduce){.gallery-tile.is-image-loading::after{animation:none;}}
@media(max-width:480px){body:not(.admin-body) .catalog-card-grid{grid-template-columns:1fr!important;}}
/* Mobile content reads as a single column; the compact app navigation stays intact. */
body:not(.admin-body) .blog-card .blog-card-cover img{object-fit:contain;background:var(--surface);}
@media(max-width:800px){
  body:not(.admin-body) main :is(.solution-grid,.catalog-solution-grid,.subservice-grid,.service-gallery,.catalog-card-grid,.blog-grid,.insight-grid,.process-grid,.statement-grid,.intro-grid,.catalog-grid,.sitemap-grid,.form-grid,.split,.service-copy,.metrics){grid-template-columns:minmax(0,1fr)!important;}
  body:not(.admin-body) main .form-grid>*{grid-column:auto!important;}
  body:not(.admin-body) main .detail-items{columns:1;}
}
