/* V34 — contrast, typography, brand-logo and graphics reliability revision */
:root{
  --v34-navy:#0A1D33;
  --v34-navy-2:#102F49;
  --v34-ink:#172B3D;
  --v34-cyan:#00A9C6;
  --v34-cyan-dark:#007F98;
  --v34-cyan-soft:#EAF8FB;
  --v34-slate:#4B5966;
  --v34-muted:#667582;
  --v34-line:#D7E2E8;
  --v34-soft:#F4F7F9;
  --v34-white:#FFFFFF;
  --v34-shadow:0 18px 48px rgba(10,29,51,.10);
  --v34-font:Inter,Aptos,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}

/* One typography system. Avoid unavailable-weight rendering and inherited low-contrast colors. */
body.v34-site,
.v34-site :is(button,input,select,textarea){font-family:var(--v34-font)}
body.v34-site{color:var(--v34-ink);background:#fff;font-size:16px;line-height:1.65;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
.v34-site :is(h1,h2,h3,h4,h5,h6){color:var(--v34-navy);font-family:var(--v34-font);font-weight:760;text-wrap:balance}
.v34-site :is(p,li,dd){color:var(--v34-slate)}
.v34-site small{color:var(--v34-muted)}
.v34-site a{text-underline-offset:3px}
.v34-site .sr-only,.v34-site .v29-skip-link{font-family:var(--v34-font)}

/* Header and navigation: stable logo dimensions and readable active states. */
.v34-site .v30-header{background:rgba(255,255,255,.98)!important;border-bottom-color:rgba(10,29,51,.11)!important}
.v34-site .v30-navbar-inner{gap:24px}
.v34-site .v30-logo{display:flex;align-items:center;flex:0 1 245px;min-width:170px}
.v34-site .v30-logo img{display:block;width:auto;max-width:245px;max-height:56px;object-fit:contain}
.v34-site .v30-nav>a{color:#304454!important;font-weight:700}
.v34-site .v30-nav>a:hover,.v34-site .v30-nav>a.active,.v34-site .v30-nav>a[aria-current="page"]{color:var(--v34-navy)!important}
.v34-site .v30-nav .v30-language{color:var(--v34-navy)!important;background:#fff!important}
.v34-site .v30-quote-button{background:var(--v34-navy)!important;color:#fff!important}

/* All page heroes use an explicit light-surface contract. This overrides legacy V30 dark !important rules. */
.v34-site :is(.v29-page-hero,.v29-brand-hero,.v29-product-hero,.v24-category-hero,.page-hero,.quote-hero-v26,.v29-builder-hero,.service-hero-v23,.value-hero-v22,.sector-hero-v20){
  background:radial-gradient(circle at 84% 16%,rgba(0,169,198,.13),transparent 29%),linear-gradient(180deg,#fff 0%,#F3F7F9 100%)!important;
  color:var(--v34-ink)!important;
  border-bottom:1px solid var(--v34-line)!important;
}
.v34-site :is(.v29-page-hero,.v29-brand-hero,.v29-product-hero,.v24-category-hero,.page-hero,.quote-hero-v26,.v29-builder-hero,.service-hero-v23,.value-hero-v22,.sector-hero-v20) :is(h1,h2,h3,strong){color:var(--v34-navy)!important}
.v34-site :is(.v29-page-hero,.v29-brand-hero,.v29-product-hero,.v24-category-hero,.page-hero,.quote-hero-v26,.v29-builder-hero,.service-hero-v23,.value-hero-v22,.sector-hero-v20) :is(p,li,small){color:var(--v34-slate)!important}
.v34-site :is(.v29-page-hero,.v29-brand-hero,.v29-product-hero,.v24-category-hero,.page-hero,.quote-hero-v26,.v29-builder-hero,.service-hero-v23,.value-hero-v22,.sector-hero-v20) .eyebrow{color:var(--v34-cyan-dark)!important}
.v34-site :is(.v29-page-hero-aside,.v29-builder-hero-aside,.quote-guide-v26,.v29-quote-sidebar,.v29-brand-logo-panel,.v29-product-main-image){background:rgba(255,255,255,.94)!important;border-color:rgba(10,29,51,.13)!important;color:var(--v34-ink)!important;box-shadow:var(--v34-shadow)!important}
.v34-site :is(.v29-page-hero-aside,.v29-builder-hero-aside,.quote-guide-v26,.v29-quote-sidebar) :is(h2,h3,strong){color:var(--v34-navy)!important}
.v34-site :is(.v29-page-hero-aside,.v29-builder-hero-aside,.quote-guide-v26,.v29-quote-sidebar) :is(p,li){color:var(--v34-slate)!important}

/* Home hero and technical graphics. */
.v34-site .v32-hero{background:radial-gradient(circle at 78% 18%,rgba(0,169,198,.12),transparent 31%),linear-gradient(180deg,#fff 0%,#F4F8FA 100%)!important}
.v34-site .v32-hero-copy h1{color:var(--v34-navy)!important;font-weight:720!important}
.v34-site .v32-hero-copy h1 strong{color:var(--v34-navy)!important;font-weight:820!important}
.v34-site .v32-hero-copy>p{color:var(--v34-slate)!important}
.v34-site .v32-hero-visual{min-width:0}
.v34-site .v32-hero-visual img{display:block;aspect-ratio:4/3;width:100%;height:auto;object-fit:contain;background:#F4F8FA;border:1px solid var(--v34-line)!important;border-radius:24px!important;filter:drop-shadow(0 22px 32px rgba(10,29,51,.12))!important}
.v34-site :is(.service-hero-media,.sector-hero-media,.value-hero-media,.v29-builder-hero-media) img{width:100%;height:auto;object-fit:contain;background:var(--v34-soft)}
.v34-site :is(.v32-product-visual,.v29-product-main-image,.v29-builder-media,.value-hero-media,.service-hero-media,.sector-hero-media){overflow:hidden}
.v34-site :is(.v32-product-visual,.v29-product-main-image,.v29-builder-media) img{max-width:100%;height:auto;object-fit:contain}

/* Remove decorative typography that can overlap real copy. */
.v34-site .landing-cta::after{content:none!important;display:none!important}

/* Universal light card contract. */
.v34-site :is(.v29-content-card,.v29-brand-card,.v29-info-card,.v29-product-card,.feature-card,.icon-card,.sector-icon-card,.link-card,.category-card,.brand-card,.content-panel,.form-card,.quote-panel,.quote-guide-v26,.v24-capability-grid>*,.v29-app-grid>*){
  background:#fff!important;border-color:var(--v34-line)!important;color:var(--v34-ink)!important;
}
.v34-site :is(.v29-content-card,.v29-brand-card,.v29-info-card,.v29-product-card,.feature-card,.icon-card,.sector-icon-card,.link-card,.category-card,.brand-card,.content-panel,.form-card,.quote-panel,.quote-guide-v26,.v24-capability-grid>*,.v29-app-grid>*) :is(h2,h3,h4,strong,a){color:var(--v34-navy)}
.v34-site :is(.v29-content-card,.v29-brand-card,.v29-info-card,.v29-product-card,.feature-card,.icon-card,.sector-icon-card,.link-card,.category-card,.brand-card,.content-panel,.form-card,.quote-panel,.quote-guide-v26,.v24-capability-grid>*,.v29-app-grid>*) :is(p,li,small){color:var(--v34-slate)}
.v34-site .soft-bg,.v34-site .v30-section-soft,.v34-site .v29-section-dark{background:var(--v34-soft)!important;color:var(--v34-ink)!important}
.v34-site .v29-section-dark :is(h2,h3,strong){color:var(--v34-navy)!important}
.v34-site .v29-section-dark :is(p,li,small){color:var(--v34-slate)!important}

/* Brand directory and brand pages. */
.v34-site .v29-directory-tools{background:#fff!important;border-block:1px solid var(--v34-line)}
.v34-site .v29-search-box{background:#fff!important;border-color:#AFBEC8!important}
.v34-site .v29-search-box input{color:var(--v34-navy)!important;background:#fff!important}
.v34-site .v29-search-box input::placeholder{color:#687784!important;opacity:1}
.v34-site .v29-alpha button{min-width:38px;min-height:38px;color:#344A5A!important;background:#fff!important;border-color:var(--v34-line)!important}
.v34-site .v29-alpha button:hover,.v34-site .v29-alpha button.active{background:var(--v34-navy)!important;border-color:var(--v34-navy)!important;color:#fff!important}
.v34-site .v29-brand-directory{gap:18px}
.v34-site .v29-brand-card{position:relative;display:flex;flex-direction:column;min-width:0;overflow:hidden;border-radius:16px!important;box-shadow:0 7px 22px rgba(10,29,51,.055)!important;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.v34-site .v29-brand-card:hover{transform:translateY(-3px);border-color:#AAC6D0!important;box-shadow:0 16px 34px rgba(10,29,51,.11)!important}
.v34-site .v29-brand-card-logo{display:grid;place-items:center;min-height:132px;padding:20px;background:linear-gradient(180deg,#fff,#F8FAFB);border-bottom:1px solid var(--v34-line)}
.v34-site .v29-brand-card-logo img{display:block;width:100%;max-width:220px;height:82px;max-height:82px;object-fit:contain;object-position:center;filter:none!important}
.v34-site .v29-brand-card h2{margin:20px 20px 8px;font-size:19px;line-height:1.3}
.v34-site .v29-brand-card>p{margin:0 20px 16px;line-height:1.58}
.v34-site .v29-brand-tags{padding-inline:20px}
.v34-site .v29-brand-card-footer{margin-top:auto;padding:15px 20px}
.v34-site .v29-brand-card-footer a,.v34-site .v29-link{color:var(--v34-cyan-dark)!important;font-weight:760}
.v34-site .v29-brand-logo-panel{min-width:0;background:#fff!important}
.v34-site .v29-brand-logo-panel img{display:block;width:min(100%,520px);height:160px;max-height:160px;object-fit:contain;margin:auto}
.v34-site :is(.v24-brand-logo-grid,.v29-brand-logo-grid,.v30-brand-logo-grid) a{min-width:0;background:#fff!important}
.v34-site :is(.v24-brand-logo-grid,.v29-brand-logo-grid,.v30-brand-logo-grid) img{display:block;width:100%;max-width:170px;height:64px;max-height:64px;object-fit:contain;margin:auto}
.v34-site img.v34-brand-fallback{padding:8px;border-radius:10px;background:#fff}

/* Forms and tables. */
.v34-site :is(input,select,textarea){color:var(--v34-navy)!important;background:#fff!important;border-color:#AEBCC6!important}
.v34-site :is(input,textarea)::placeholder{color:#687784!important;opacity:1}
.v34-site :is(input,select,textarea):focus{border-color:var(--v34-cyan)!important;box-shadow:0 0 0 4px rgba(0,169,198,.13)!important}
.v34-site :is(table,.table-wrap,.v29-product-facts){max-width:100%}
.v34-site .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.v34-site table{border-collapse:collapse;background:#fff;color:var(--v34-ink)}
.v34-site th{color:var(--v34-navy);background:var(--v34-soft)}
.v34-site td,.v34-site th{border-color:var(--v34-line)}

/* Buttons maintain sufficient contrast in every surface. */
.v34-site :is(.btn-primary,.v29-btn-primary,.v30-btn-primary){background:var(--v34-navy)!important;border-color:var(--v34-navy)!important;color:#fff!important}
.v34-site :is(.btn-primary,.v29-btn-primary,.v30-btn-primary):hover{background:#123A59!important;border-color:#123A59!important;color:#fff!important}
.v34-site :is(.btn-outline,.v29-btn-outline,.v30-btn-secondary){background:#fff!important;border-color:#9DAEB9!important;color:var(--v34-navy)!important}
.v34-site :is(.btn-outline,.v29-btn-outline,.v30-btn-secondary):hover{background:var(--v34-soft)!important;border-color:var(--v34-navy)!important;color:var(--v34-navy)!important}

/* Explicit dark-surface contract for footer and prefooter only. */
.v34-site .v30-prefooter{background:linear-gradient(145deg,#0A1D33,#103954)!important;color:#fff!important}
.v34-site .v30-prefooter :is(h2,h3,strong){color:#fff!important}
.v34-site .v30-prefooter :is(p,span){color:#D9E8EE!important}
.v34-site .v30-prefooter .v30-btn-secondary{background:transparent!important;border-color:rgba(255,255,255,.55)!important;color:#fff!important}
.v34-site .v30-footer{background:#061423!important;color:#fff!important}
.v34-site .v30-footer :is(h2,h3,strong){color:#fff!important}
.v34-site .v30-footer :is(p,span,a){color:#D2E0E6!important}
.v34-site .v30-footer a:hover{color:#fff!important;text-decoration:underline}
.v34-site .v30-footer-brand img{display:block;width:auto;max-width:300px;max-height:72px;object-fit:contain}

/* Prevent reveal effects from leaving content invisible after any JS interruption. */
.v34-site [data-v33-reveal].v34-force-visible{opacity:1!important;transform:none!important;visibility:visible!important}

@media (max-width:1120px){
  .v34-site .v30-logo{flex-basis:210px}
  .v34-site .v30-logo img{max-width:210px}
}
@media (max-width:980px){
  .v34-site .v30-nav{background:#fff!important}
  .v34-site .v30-nav>a{color:var(--v34-navy)!important}
  .v34-site .v29-brand-directory{grid-template-columns:repeat(2,minmax(0,1fr))}
  .v34-site .v32-hero-visual img{max-height:none}
}
@media (max-width:720px){
  body.v34-site{font-size:15.5px}
  .v34-site .container{width:calc(100% - 28px)}
  .v34-site .v30-logo{flex-basis:auto;min-width:0}
  .v34-site .v30-logo img{max-width:180px;max-height:44px}
  .v34-site :is(.v29-page-hero,.v29-brand-hero,.v29-product-hero,.v24-category-hero,.page-hero,.quote-hero-v26,.v29-builder-hero,.service-hero-v23,.value-hero-v22,.sector-hero-v20){padding-block:34px 52px!important}
  .v34-site .v29-brand-directory{grid-template-columns:1fr}
  .v34-site .v29-brand-card-logo{min-height:118px}
  .v34-site .v29-brand-logo-panel img{height:120px;max-height:120px}
  .v34-site .v32-hero-visual img{border-radius:18px!important}
}
@media (max-width:470px){
  .v34-site .v30-logo img{max-width:158px}
  .v34-site .v29-alpha{gap:6px}
  .v34-site .v29-alpha button{min-width:36px;min-height:36px}
}
@media (prefers-reduced-motion:reduce){
  .v34-site *{animation:none!important;transition-duration:.01ms!important}
}
