:root{
  --hero-header-offset-desktop:84px;
  --hero-header-offset-tablet:76px;
  --hero-header-offset-mobile:76px;
}

html,body{overflow-x:hidden;}
img,video{max-width:100%;}
.container,.card,.dark-card,.trustitem,.guide-card,.leadbox,.step-card,.hero-stat{min-width:0;}
.grid2 > *,
.grid3 > *,
.grid4 > *,
.pricing > *,
.faq > *,
.testimonials > *,
.process-steps > *,
.trustgrid > *,
.guide-grid > *,
.hero-art > *,
.form-card-grid > *,
.gallery-grid-34 > *{min-width:0;}

.announcement{
  top:var(--hero-header-offset-desktop) !important;
}
.announcement .inner{
  flex-wrap:wrap;
  row-gap:8px;
}

/* Keep the first hero section visually below the sticky strips */
.announcement + .section{
  scroll-margin-top:calc(var(--hero-header-offset-desktop) + 40px);
}

/* General section safety */
.section .grid2,
.section .grid3,
.section .grid4,
.section .pricing,
.section .faq,
.section .testimonials,
.section .process-steps,
.section .trustgrid,
.section .guide-grid,
.section .hero-art,
.section .form-card-grid,
.section .gallery-grid-34{
  align-items:stretch;
}
.section .card,
.section .dark-card,
.section .trustitem,
.section .guide-card,
.section .leadbox,
.section .step-card,
.section .hero-stat{
  height:100%;
}

/* Hero-specific fixes used across service pages */
.announcement + .section .grid2{
  align-items:stretch !important;
}
.announcement + .section .grid2 > div:first-child,
.announcement + .section .grid2 > div:last-child{
  min-width:0;
}
.announcement + .section .grid2 > div:last-child{
  align-self:stretch;
}

/* For pages where the right hero side is a 2-card/image grid injected inline */
.announcement + .section .grid2 > div:last-child[style*="display: grid"],
.announcement + .section .grid2 > div:last-child[style*="display:grid"]{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:12px !important;
  align-self:stretch !important;
  min-height:100% !important;
}
.announcement + .section .grid2 > div:last-child[style*="display: grid"] > div,
.announcement + .section .grid2 > div:last-child[style*="display:grid"] > div{
  min-width:0;
  min-height:100%;
}
.announcement + .section .grid2 > div:last-child img,
.announcement + .section .grid2 > div:last-child video{
  width:100%;
  height:100%;
  object-fit:cover;
}

.hero-mini-form{
  display:grid;
  grid-template-columns:1fr 1fr auto;
  gap:10px;
  align-items:stretch;
}
.hero-mini-form input,
.hero-mini-form button,
.form-card-grid .input,
.form-card-grid .select,
.form-card-grid button,
.formgrid .input,
.formgrid .textarea,
.formgrid .select,
.formgrid button{
  width:100%;
  min-width:0;
}
.hero-proof-strip{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin-top:16px;
}
.hero-proof-pill{
  border:1px solid rgba(255,255,255,.10);
  border-radius:20px;
  padding:16px 14px;
  background:rgba(255,255,255,.06);
  backdrop-filter:blur(10px);
}
.hero-proof-pill strong{display:block;font-size:.95rem;line-height:1.35;}
.hero-proof-pill span{display:block;margin-top:6px;color:#c4d2ee;font-size:.82rem;line-height:1.55;}

.audit-rail{
  max-width:min(1180px, calc(100vw - 36px)) !important;
}

@media (max-width: 1100px){
  .section .grid2,
  .section .pricing,
  .section .grid4,
  .section .grid3,
  .section .testimonials,
  .section .faq,
  .section .process-steps,
  .section .trustgrid,
  .section .guide-grid,
  .section .hero-art{
    grid-template-columns:1fr 1fr;
  }

  .announcement + .section .grid2{
    grid-template-columns:1fr !important;
  }

  .announcement + .section .grid2 > div:last-child[style*="display: grid"],
  .announcement + .section .grid2 > div:last-child[style*="display:grid"]{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }

  .hero-proof-strip,
  .section .gallery-grid-34,
  .section .hero-art,
  .section .process-steps,
  .section .trustgrid,
  .section .guide-grid,
  .section .grid4{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width: 980px){
  .announcement{
    top:var(--hero-header-offset-tablet) !important;
  }
}

@media (max-width: 780px){
  .announcement{
    top:var(--hero-header-offset-mobile) !important;
  }

  .announcement + .section{
    padding-top:28px !important;
  }

  .section .grid2,
  .section .pricing,
  .section .grid4,
  .section .grid3,
  .section .testimonials,
  .section .faq,
  .section .gallery-grid-34,
  .section .process-steps,
  .section .trustgrid,
  .section .guide-grid,
  .section .hero-art,
  .section .form-card-grid,
  .hero-proof-strip,
  .hero-mini-form{
    grid-template-columns:1fr !important;
  }

  .announcement + .section .grid2 > div:last-child[style*="display: grid"],
  .announcement + .section .grid2 > div:last-child[style*="display:grid"]{
    grid-template-columns:1fr !important;
  }

  .announcement + .section .grid2 > div:last-child[style*="display: grid"] > div,
  .announcement + .section .grid2 > div:last-child[style*="display:grid"] > div,
  .section .gallery-item-34,
  .section .gallery-item-11{
    min-height:240px;
  }

  .float-cta{right:12px;bottom:18px;}
  .audit-rail{display:none !important;}
}

@media (max-width: 520px){
  .announcement .inner{
    font-size:.86rem;
  }
  .container{padding-left:16px !important;padding-right:16px !important;}
  .title{word-break:normal;overflow-wrap:anywhere;}
  .copy,.caption{overflow-wrap:anywhere;}
}


/* Strong responsive hardening pass across all pages */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{max-width:100%;}
iframe,embed,object,svg,canvas{max-width:100%;}
img,video,svg,canvas,iframe{height:auto;}
a,button,span,strong,b,small,label,p,h1,h2,h3,h4,h5,h6{overflow-wrap:anywhere;}
.btn,.btn-primary,.btn-secondary,.global-btn,.float-pill{white-space:normal; text-align:center;}
input,select,textarea,button{max-width:100%;}
.container,.wrap,.inner,.section,.card,.dark-card,.guide-card,.step-card,.trustitem,.hero-stat,.leadbox,.footerbox,.sticky,.added-card,.service-card,.rich-section,.added-section,.audit-card{max-width:100%;}
.section [style*="grid-template-columns"] > *,
.section .grid2 > *,
.section .grid3 > *,
.section .grid4 > *,
.section .pricing > *,
.section .faq > *,
.section .testimonials > *,
.section .process-steps > *,
.section .trustgrid > *,
.section .guide-grid > *,
.section .hero-art > *,
.section .form-card-grid > *,
.section .gallery-grid-34 > *{min-width:0;}
.section [style*="display:grid"],
.section [style*="display: grid"]{max-width:100%;}
.section [style*="display:flex"],
.section [style*="display: flex"]{max-width:100%; flex-wrap:wrap;}
.section [style*="display:flex"] > *,
.section [style*="display: flex"] > *{min-width:0;}
.section [style*="width:"],
.section [style*="height:"]{max-width:100%;}
.title,.copy,.caption,.eyebrow,.chip,.hero-proof-pill span,.hero-proof-pill strong{word-break:normal;}
.global-header,.announcement,.ann-bar,.audit-rail,.sticky,.float-cta{max-width:100vw;}
.audit-rail .audit-copy,.audit-rail .audit-form{min-width:0;}
.audit-rail .audit-copy *{overflow-wrap:anywhere;}
.sticky,.audit-rail .audit-card{overflow:hidden;}
.gallery-item-34 img,.gallery-item-34 video,.gallery-card img,.gallery-card video,.media-card img,.media-card video,.video-card img,.video-card video,.rich-media img,.rich-media video{width:100%;max-width:100%;height:100%;object-fit:cover;}

/* Large tablet / small laptop */
@media (max-width: 1024px){
  :root{--hero-header-offset-tablet:76px;}
  .container,.wrap{width:min(100%, calc(100vw - 32px)) !important;}
  .global-header .inner{gap:16px;}
  .announcement .inner{padding-left:16px !important;padding-right:16px !important;}
  .section{padding-top:72px !important;padding-bottom:72px !important;}
  .section .grid2,
  .section .pricing,
  .section .grid4,
  .section .grid3,
  .section .testimonials,
  .section .faq,
  .section .process-steps,
  .section .trustgrid,
  .section .guide-grid,
  .section .hero-art,
  .section .form-card-grid,
  .added-grid,
  .about-blocks,.products-grid,.partners-grid,.contact-grid,
  .kpi-row,.visual-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
  .hero-proof-strip{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
  .hero-mini-form{grid-template-columns:1fr 1fr !important;}
  .hero-mini-form > *:last-child{grid-column:1 / -1;}
}

/* Tablet portrait */
@media (max-width: 991px){
  .section{padding-top:68px !important;padding-bottom:68px !important;}
  .announcement .inner{row-gap:8px;}
  .audit-rail{left:12px !important;right:12px !important;width:auto !important;max-width:none !important;}
  .audit-rail .audit-card{grid-template-columns:1fr !important;gap:10px !important;padding:14px !important;}
  .sticky{width:min(980px, calc(100% - 24px)) !important;}
  .global-btn,.btn,.btn-primary,.btn-secondary{min-height:48px;}
}

/* Tablet */
@media (max-width: 768px){
  .container,.wrap,.inner{width:min(100%, calc(100vw - 24px)) !important;}
  .section{padding-top:60px !important;padding-bottom:60px !important;}
  .announcement + .section{padding-top:28px !important;}
  .section .grid2,
  .section .pricing,
  .section .grid4,
  .section .grid3,
  .section .testimonials,
  .section .faq,
  .section .gallery-grid-34,
  .section .process-steps,
  .section .trustgrid,
  .section .guide-grid,
  .section .hero-art,
  .section .form-card-grid,
  .added-grid,.added-grid.two,.added-grid.four,
  .about-blocks,.products-grid,.partners-grid,.contact-grid,
  .kpi-row,.visual-grid,
  .hero-proof-strip,.hero-mini-form{grid-template-columns:1fr !important;}
  .hero-mini-form > *:last-child{grid-column:auto;}
  .announcement + .section .grid2 > div:last-child[style*="display: grid"],
  .announcement + .section .grid2 > div:last-child[style*="display:grid"]{grid-template-columns:1fr !important;}
  .announcement + .section .grid2 > div:last-child[style*="display: grid"] > div,
  .announcement + .section .grid2 > div:last-child[style*="display:grid"] > div{min-height:220px;}
  .sticky{left:12px !important;right:12px !important;transform:none !important;width:auto !important;bottom:12px !important;padding:12px !important;}
  .sticky > *{width:100%;}
  .float-cta{right:12px !important;bottom:18px !important;}
}

/* Large mobile */
@media (max-width: 600px){
  .container,.wrap,.inner{width:min(100%, calc(100vw - 20px)) !important;}
  .container{padding-left:10px !important;padding-right:10px !important;}
  .global-header .inner{padding:12px 10px !important;min-height:72px;}
  .announcement .inner{padding:10px !important;font-size:.85rem !important;}
  h1,.title{font-size:clamp(1.85rem, 9vw, 2.4rem) !important;line-height:1.08 !important;}
  h2{font-size:clamp(1.5rem, 7vw, 2rem) !important;}
  .copy{font-size:.98rem !important;line-height:1.7 !important;}
  .hero-proof-pill,.card,.dark-card,.guide-card,.step-card,.trustitem,.hero-stat,.leadbox,.footerbox,.added-card,.service-card,.rich-section,.added-section{padding:18px !important;}
  .chips{gap:8px !important;}
  .chip{font-size:.8rem !important;}
  .section [style*="display:flex"],
  .section [style*="display: flex"]{gap:10px !important;}
}

@media (max-width: 480px){
  body{font-size:15px;}
  .global-brand{font-size:1.12rem !important;gap:10px !important;}
  .global-brand::before{width:36px;height:36px;border-radius:12px;font-size:1.2rem;}
  .mobile-toggle{width:44px;height:44px;border-radius:12px;}
  .section{padding-top:52px !important;padding-bottom:52px !important;}
  .hero-proof-pill,.card,.dark-card,.guide-card,.step-card,.trustitem,.hero-stat,.leadbox,.footerbox,.added-card,.service-card,.rich-section,.added-section{border-radius:18px !important;}
  .btn,.btn-primary,.btn-secondary,.global-btn{width:100%;}
}

@media (max-width: 414px){
  .container,.wrap,.inner{width:min(100%, calc(100vw - 16px)) !important;}
  .container{padding-left:8px !important;padding-right:8px !important;}
  .hero-proof-pill,.card,.dark-card,.guide-card,.step-card,.trustitem,.hero-stat,.leadbox,.footerbox,.added-card,.service-card,.rich-section,.added-section{padding:16px !important;}
}

@media (max-width: 375px){
  h1,.title{font-size:clamp(1.7rem, 9.4vw, 2.2rem) !important;}
  .copy,.caption,p,li{font-size:.95rem;}
}

@media (max-width: 360px){
  .announcement .inner{font-size:.8rem !important;}
  .chip,.eyebrow{font-size:.74rem !important;letter-spacing:.08em !important;}
  .global-btn,.btn,.btn-primary,.btn-secondary{padding-left:16px !important;padding-right:16px !important;}
}

@media (max-width: 320px){
  body{font-size:14px;}
  h1,.title{font-size:1.55rem !important;}
  h2{font-size:1.3rem !important;}
  .copy,.caption,p,li{font-size:.92rem;line-height:1.6;}
  .global-brand{font-size:1rem !important;}
  .global-brand::before{width:32px;height:32px;font-size:1.05rem;}
}
