/* Sea Of Glass And Mirrors — Visual Governance 0.5.23
   Incremental correction on the verified SOG-123 baseline.
   Scope: hard geometric centering of the Home company name + removal of redundant page-name labels below internal heroes.
   No content, media, gallery, blog, admin workflow, palette, carousel or data model is redesigned here. */

/* GOLDEN RULE: hero copy is centered against the full photograph, independent from logo/CTA. */
html body main#main-content > :is(.hero-carousel,.page-hero){
  position:relative!important;
  width:100%!important;max-width:none!important;margin:0!important;
  border-radius:0!important;overflow:hidden!important;
}
html body .page-hero > .container,
html body .hero-carousel > .hero-content{
  position:absolute!important;inset:0!important;
  width:100%!important;max-width:none!important;height:100%!important;
  margin:0!important;box-sizing:border-box!important;
  display:flex!important;flex-direction:column!important;
  align-items:center!important;justify-content:center!important;
  text-align:center!important;transform:none!important;z-index:5!important;
}
html body .page-hero > .container > h1,
html body .hero-carousel > .hero-content > h1,
html body .hero-carousel > .hero-content > h2,
html body .hero-carousel > .hero-content > p,
html body .hero-carousel > .hero-content > .hero-btns{
  position:static!important;float:none!important;transform:none!important;
  align-self:center!important;margin-left:auto!important;margin-right:auto!important;
  text-align:center!important;
}

/* HOME: retain its approved visual hierarchy; only guarantee true centering. */
@media (min-width:901px){
  html body .hero-carousel > .hero-content{
    padding:clamp(104px,10vh,145px) clamp(28px,6vw,110px)!important;
  }
  html body .hero-carousel > .hero-content > h1{
    /* 0.5.23: occupy the full symmetric content width so the company name is centered
       against the Hero itself, not against neighboring logo/CTA geometry. */
    width:100%!important;max-width:none!important;
    margin-left:0!important;margin-right:0!important;
    padding-left:0!important;padding-right:0!important;
    align-self:stretch!important;box-sizing:border-box!important;
    text-align:center!important;text-align-last:center!important;
  }
  html body .hero-carousel > .hero-content > h2{
    width:min(90vw,1200px)!important;max-width:1200px!important;
  }
  html body .hero-carousel > .hero-content > p{
    width:min(78vw,790px)!important;max-width:790px!important;
    margin-left:auto!important;margin-right:auto!important;
    text-align:center!important;text-align-last:center!important;
    white-space:normal!important;
  }

  /* INNER PAGES: requested reduction is 30% from the former large scale, not 70%.
     The resulting reference is ~70% of the former desktop hero title size. */
  html body .page-hero > .container{
    padding:0!important;
    pointer-events:none!important;
  }
  html body .page-hero > .container > h1{
    position:absolute!important;
    left:50%!important;top:50%!important;
    width:min(78vw,1260px)!important;max-width:min(78vw,1260px)!important;
    margin:0!important;padding:0!important;
    transform:translate(-50%,-50%)!important;
    font-size:clamp(2.86rem,3.90vw,4.29rem)!important;
    line-height:1.06!important;letter-spacing:.025em!important;
    text-align:center!important;text-wrap:balance!important;overflow-wrap:normal!important;
  }
  /* Slightly lower logo clearance retained from 0.5.23. */
  html body .page-hero .hero-logo{top:122px!important}
}

@media (min-width:901px) and (max-width:1280px){
  html body .page-hero > .container > h1{
    width:min(76vw,1040px)!important;max-width:min(76vw,1040px)!important;
    font-size:clamp(2.67rem,4.23vw,3.64rem)!important;
  }
}

@media (max-width:900px){
  html body .page-hero > .container,
  html body .hero-carousel > .hero-content{
    padding:clamp(90px,14vh,124px) clamp(14px,5vw,28px) clamp(34px,6vh,58px)!important;
  }
  html body .page-hero > .container > h1{
    position:absolute!important;left:50%!important;top:50%!important;
    width:min(88vw,720px)!important;max-width:min(88vw,720px)!important;
    margin:0!important;transform:translate(-50%,-50%)!important;
    font-size:clamp(1.90rem,7.5vw,2.75rem)!important;
    line-height:1.06!important;letter-spacing:.015em!important;text-align:center!important;text-wrap:balance!important;
  }
  html body .hero-carousel > .hero-content > h1,
  html body .hero-carousel > .hero-content > h2,
  html body .hero-carousel > .hero-content > p{
    margin-left:auto!important;margin-right:auto!important;text-align:center!important;
  }
}
@media (max-width:560px){
  html body .page-hero > .container > h1{
    width:92vw!important;max-width:92vw!important;
    font-size:clamp(1.65rem,8.2vw,2.30rem)!important;
  }
}

/* Preserve the approved unified editorial intro-card treatment from 0.5.23. */
.unified-intro-card{
  width:min(100%,1450px)!important;margin:clamp(26px,4vw,54px) auto clamp(28px,4vw,58px)!important;
  padding:clamp(30px,4vw,58px)!important;text-align:center!important;
}
.unified-intro-card .section-eyebrow{margin:0 auto 16px!important;text-align:center!important}
.unified-intro-card h2{max-width:1050px!important;margin:0 auto clamp(22px,3vw,34px)!important;text-align:center!important}
.unified-intro-card .partition-contact-cta{display:inline-flex!important;align-items:center!important;justify-content:center!important}


/* Sea Of Glass And Mirrors — 0.5.23 precision corrections
   1) HOME company name: geometry locked to the viewport/hero width, never to logo or CTA space.
   2) Existing inner-page Hero rules remain untouched. */
html body[data-page-id="index"] main#main-content > .hero-carousel > .hero-content{
  left:0!important;
  right:auto!important;
  width:100vw!important;
  max-width:100vw!important;
  min-width:100vw!important;
  margin:0!important;
  transform:none!important;
  box-sizing:border-box!important;
}
html body[data-page-id="index"] main#main-content > .hero-carousel > .hero-content > h1{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  padding-left:0!important;
  padding-right:0!important;
  text-align:center!important;
  text-align-last:center!important;
  align-self:stretch!important;
  transform:none!important;
}
@supports (width:100dvw){
  html body[data-page-id="index"] main#main-content > .hero-carousel > .hero-content{
    width:100dvw!important;max-width:100dvw!important;min-width:100dvw!important;
  }
}


/* SOG-123 — Visual Authority Forensic Governance
   Editable/public content follows palette tokens unless an explicit Editor inline
   property exists. Structural headings share the same content axis as their panel. */
body[data-sog-design] .areas-served > .container > h2 {
  width:min(1260px,calc(100vw - 2 * clamp(28px,6vw,110px)))!important;
  box-sizing:border-box!important; margin-inline:auto!important;
  padding-inline:clamp(30px,4vw,58px)!important;
}
body[data-sog-design] :is(.content-text,.editorial-copy-card,.partition-intro-card,.unified-intro-card)
  :is(h1,h2,h3,h4,h5,h6,p,li,strong,span,a):not([style*="color:"]) {
  color:inherit!important; -webkit-text-fill-color:currentColor!important;
}
body[data-sog-design] :is(.content-text,.editorial-copy-card,.partition-intro-card,.unified-intro-card):not([style*="color:"]) {
  color:var(--sog-theme-surface-text,var(--sog-theme-text,#f3f7fb))!important;
}
/* Technical UI exception: native select popup options are OS-light surfaces; this
   exception is intentionally not part of editable website-content governance. */

/* SOG-123 — Universal editable foreground authority.
   Historical selector colors may remain as documented fallbacks, but they are
   never allowed to outrank Palette/Editor authority for editable public text. */
body[data-sog-design] [data-editable-id^="text:"]:not([style*="color:"]) {
  color:inherit!important;
  -webkit-text-fill-color:currentColor!important;
}
body[data-sog-design] :is(.header-container,.premium-mobile-nav,.mobile-top-bar) {
  --sog-ui-fg:var(--sog-theme-nav-text,var(--sog-theme-text));
}
body[data-sog-design] :is(.nav-list,.premium-nav-list) a:not(.active):not([aria-current="page"]) {
  color:var(--sog-ui-fg)!important;
  -webkit-text-fill-color:currentColor!important;
}
body[data-sog-design] :is(.nav-list,.premium-nav-list) a:is(:hover,:focus-visible,.active,[aria-current="page"]) {
  color:var(--sog-theme-button-text)!important;
  -webkit-text-fill-color:currentColor!important;
}
body[data-sog-design] :is(.lang-btn.active,.mobile-trigger-btn,.premium-submit-btn,.partition-contact-cta,.hero-free-estimate) {
  color:var(--sog-theme-button-text)!important;
  -webkit-text-fill-color:currentColor!important;
}

/* SOG-123 — Public form controls are semantic surfaces. Static inline values in
   legacy markup are fallback geometry only and cannot outrank Palette authority. */
body[data-sog-design] :is(form input:not([type="checkbox"]):not([type="radio"]),form textarea,form select) {
  color:var(--sog-theme-surface-text,var(--sog-theme-text))!important;
  -webkit-text-fill-color:currentColor!important;
  background:color-mix(in srgb,var(--sog-theme-surface) 88%,transparent)!important;
  border-color:color-mix(in srgb,var(--sog-theme-border) 55%,transparent)!important;
}
body[data-sog-design] :is(form input,form textarea)::placeholder {color:var(--sog-theme-muted)!important;opacity:.9!important}
