/*
Theme Name: Astral Promotion
Theme URI: https://astralpromotion.com/
Author: Astral Promotion
Description: Custom Astral Promotion business communication theme — clean 2.x desktop base with a rebuilt responsive system.
Version: 2.16.55
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: astral-promotion
License: GPL-2.0-or-later
*/


/* v2.15.32 — approved Contact/Services alignment + fixed policy hero art */
body .ap-contact-template .ap-contact-page{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}
body .ap-contact-template .ap-contact-banner{width:100%!important;max-width:none!important;margin:0!important;padding:0!important;box-sizing:border-box!important}
body .ap-contact-template .ap-contact-banner-copy{width:calc(100% - 76px)!important;max-width:none!important;margin-left:auto!important;margin-right:auto!important;padding:28px 0 24px!important;box-sizing:border-box!important;transform:none!important}
body .ap-contact-template .ap-contact-banner-copy h2{border:0!important;border-bottom:0!important;box-shadow:none!important;background:none!important;margin-bottom:8px!important;padding-bottom:0!important}
body .ap-contact-template .ap-contact-banner-copy h2:before,
body .ap-contact-template .ap-contact-banner-copy h2:after{content:none!important;display:none!important}
body .ap-contact-template .ap-contact-main-grid{width:100%!important;max-width:1240px!important;margin:0 auto!important;padding-left:22px!important;padding-right:22px!important;box-sizing:border-box!important}
body .ap-services-page .ap-svc-hero-grid{width:calc(100% - 76px)!important;max-width:none!important;margin-left:auto!important;margin-right:auto!important;box-sizing:border-box!important}
body .ap-services-page .ap-svc-hero-copy{padding-left:0!important}
body .ap-services-page .ap-svc-hero-art{min-width:0!important}
body .ap-services-page .ap-svc-hero h1{max-width:650px!important}

/* Legal hero illustration stays anchored to the same right-side position at every zoom. */
body .ap-legal-page .ap-legal-hero{position:relative!important;overflow:hidden!important}
body .ap-legal-page .ap-legal-hero-art{
  position:absolute!important;top:0!important;bottom:0!important;right:88px!important;left:auto!important;
  width:390px!important;height:auto!important;margin:0!important;transform:none!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  box-sizing:border-box!important;pointer-events:none!important
}
body .ap-legal-page .ap-legal-hero-copy{position:relative!important;z-index:2!important;max-width:700px!important}
body .ap-legal-page .ap-policy-orbit{width:260px!important;height:210px!important;max-width:none!important}
body .ap-legal-page .ap-policy-shield{width:124px!important;height:140px!important;max-width:none!important;flex:none!important}
body .ap-legal-page .ap-policy-document{width:150px!important;height:172px!important;max-width:none!important;flex:none!important}
body .ap-legal-page .ap-policy-refund-ring{width:164px!important;height:164px!important;max-width:none!important;flex:none!important}
body .ap-legal-page .ap-policy-float{width:46px!important;height:46px!important;max-width:none!important;flex:none!important}
@media(max-width:900px){
 body .ap-contact-template .ap-contact-banner-copy{width:calc(100% - 36px)!important;padding:24px 0 20px!important}
 body .ap-contact-template .ap-contact-main-grid{padding-left:18px!important;padding-right:18px!important}
 body .ap-services-page .ap-svc-hero-grid{width:calc(100% - 36px)!important}
 /* Keep art anchored; only reduce copy width to avoid collision. */
 body .ap-legal-page .ap-legal-hero-art{right:88px!important;width:390px!important;opacity:1!important}
 body .ap-legal-page .ap-legal-hero-copy{max-width:700px!important}
}
@media(max-width:600px){
 body .ap-contact-template .ap-contact-banner-copy{width:calc(100% - 30px)!important;padding:20px 0 18px!important}
 body .ap-contact-template .ap-contact-main-grid{padding-left:12px!important;padding-right:12px!important}
 body .ap-services-page .ap-svc-hero-grid{width:calc(100% - 30px)!important}
 body .ap-legal-page .ap-legal-hero-art{right:88px!important;width:390px!important;opacity:1!important}
}


/* v2.15.39 — match About Us hero copy inset to the Contact hero's 38px desktop gutter.
   The prior attempts changed only padding inside a centered max-width wrapper, leaving
   its outer 55px+ offset intact. Set the inner wrapper width and padding explicitly. */
body .ap-about-page .ap-about-hero .ap-about-hero-inner {
  width: calc(100% - 76px) !important;
  max-width: none !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 22px 0 24px !important;
  box-sizing: border-box !important;
}
@media (max-width: 900px) {
  body .ap-about-page .ap-about-hero .ap-about-hero-inner {
    width: calc(100% - 36px) !important;
    padding: 22px 0 24px !important;
  }
}
@media (max-width: 600px) {
  body .ap-about-page .ap-about-hero .ap-about-hero-inner {
    width: calc(100% - 30px) !important;
    padding: 20px 0 22px !important;
  }
}




/* v2.15.41 — exact Contact page section spacing, using classes confirmed in functions.php/footer.php.
   1) 6px between the full-width hero and the Office/Inquiry cards.
   2) 6px between the FAQ panel and the global blue CTA strip.
   3) 6px between the CTA strip and footer main content. */
body .ap-contact-template .ap-contact-main-grid {
  margin-top: 6px !important;
}
body .ap-contact-template .ap-contact-faq {
  margin-bottom: 6px !important;
}


/* v2.15.43 — mobile legal hero artwork fix. Keep desktop composition unchanged. */
@media (max-width: 600px) {
  body .ap-legal-page .ap-legal-hero {
    min-height: 0 !important;
    height: auto !important;
    padding: 22px 18px 24px !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }
  body .ap-legal-page .ap-legal-hero-copy {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    position: relative !important;
    z-index: 2 !important;
  }
  /* The large decorative shield/document/ring overlaps headings and benefits on phones. */
  body .ap-legal-page .ap-legal-hero-art {
    display: none !important;
  }
  body .ap-legal-page .ap-legal-hero h1 {
    max-width: 100% !important;
    font-size: clamp(30px, 8vw, 38px) !important;
    line-height: 1.12 !important;
    overflow-wrap: anywhere !important;
    margin: 14px 0 10px !important;
  }
  body .ap-legal-page .ap-legal-hero-copy > p {
    max-width: 100% !important;
    font-size: 16px !important;
    line-height: 1.55 !important;
    overflow-wrap: anywhere !important;
  }
  body .ap-legal-page .ap-legal-hero-points {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px 14px !important;
    margin-top: 18px !important;
    position: relative !important;
    z-index: 2 !important;
  }
  body .ap-legal-page .ap-legal-hero-points span {
    max-width: 100% !important;
    font-size: 12px !important;
    line-height: 1.45 !important;
    overflow-wrap: anywhere !important;
  }
  body .ap-legal-page .ap-breadcrumb {
    flex-wrap: wrap !important;
    margin-bottom: 14px !important;
  }
}


/* v2.15.44 — responsive desktop/tablet hero protection for About, Contact and Services.
   At narrower desktop windows/browser zoom levels, keep copy readable and prevent hero
   artwork from colliding with headings/benefits. Mobile rules and the global header/footer
   are intentionally untouched. */
@media (min-width: 601px) and (max-width: 1100px) {
  body .ap-about-page .ap-about-hero:after {
    inset: 0 0 0 43% !important;
    background-position: center right !important;
  }
  body .ap-about-page .ap-about-hero-inner {
    width: calc(100% - 48px) !important;
    max-width: none !important;
    padding: 22px 0 24px !important;
  }
  body .ap-about-page .ap-about-hero h1,
  body .ap-about-page .ap-about-hero h2,
  body .ap-about-page .ap-about-hero p {
    max-width: min(100%, 570px) !important;
  }
  body .ap-contact-template .ap-contact-banner {
    min-height: 205px !important;
    padding: 24px !important;
  }
  body .ap-contact-template .ap-contact-banner-copy {
    width: 100% !important;
    max-width: 620px !important;
  }
  body .ap-contact-template .ap-contact-hero-art {
    right: 0 !important;
    width: 32% !important;
    opacity: .28 !important;
  }
  body .ap-services-page .ap-svc-hero-grid {
    width: calc(100% - 48px) !important;
    grid-template-columns: minmax(0, 1.08fr) minmax(260px, .92fr) !important;
    gap: 18px !important;
  }
  body .ap-services-page .ap-svc-hero-art {
    transform: scale(.82) !important;
    transform-origin: center right !important;
  }
}

@media (min-width: 601px) and (max-width: 820px) {
  body .ap-about-page .ap-about-hero:after {
    inset: 0 0 0 52% !important;
    opacity: .72 !important;
  }
  body .ap-contact-template .ap-contact-hero-art {
    display: none !important;
  }
  body .ap-contact-template .ap-contact-banner-copy {
    max-width: 100% !important;
  }
  body .ap-services-page .ap-svc-hero-grid {
    display: block !important;
    min-height: 0 !important;
    padding-top: 1px !important;
    padding-bottom: 1px !important;
  }
  body .ap-services-page .ap-svc-hero-art {
    display: none !important;
  }
  body .ap-services-page .ap-svc-hero-copy {
    max-width: 620px !important;
    padding: 22px 0 26px !important;
  }
  body .ap-services-page .ap-svc-hero-text {
    max-width: 560px !important;
  }
}


/* v2.15.45 — stable desktop hero layouts when browser width/zoom changes. Header/footer and mobile layouts untouched. */
@media (min-width: 601px) and (max-width: 1100px) {
  body .ap-about-page .ap-about-hero { overflow: hidden !important; }
  body .ap-about-page .ap-about-hero:after { inset: 0 0 0 48% !important; background-position: center right !important; }
  body .ap-about-page .ap-about-hero-inner { width: calc(100% - 48px) !important; max-width: 100% !important; padding: 22px 0 24px !important; }
  body .ap-about-page .ap-about-hero h1, body .ap-about-page .ap-about-hero h2, body .ap-about-page .ap-about-hero p { max-width: min(100%, 560px) !important; overflow-wrap: break-word !important; }
  body .ap-contact-template .ap-contact-banner { min-height: 0 !important; height: auto !important; padding: 24px !important; box-sizing: border-box !important; }
  body .ap-contact-template .ap-contact-banner-copy { width: 100% !important; max-width: 620px !important; min-width: 0 !important; }
  body .ap-contact-template .ap-contact-hero-art { display: none !important; }
  body .ap-services-page .ap-svc-hero { overflow: hidden !important; }
  body .ap-services-page .ap-svc-hero-grid { width: calc(100% - 48px) !important; max-width: 100% !important; grid-template-columns: minmax(0, 1fr) minmax(220px, .8fr) !important; gap: 16px !important; box-sizing: border-box !important; }
  body .ap-services-page .ap-svc-hero-copy { min-width: 0 !important; }
  body .ap-services-page .ap-svc-hero-text { max-width: 100% !important; }
  body .ap-services-page .ap-svc-hero-art { min-width: 0 !important; transform: scale(.78) !important; transform-origin: center right !important; }
}
@media (min-width: 601px) and (max-width: 900px) {
  body .ap-about-page .ap-about-hero:after { inset: 0 0 0 58% !important; opacity: .55 !important; }
  body .ap-about-page .ap-about-hero-inner { width: calc(100% - 40px) !important; }
  body .ap-contact-template .ap-contact-banner-copy { max-width: 100% !important; }
  body .ap-services-page .ap-svc-hero-grid { display: block !important; min-height: 0 !important; padding-top: 1px !important; padding-bottom: 1px !important; }
  body .ap-services-page .ap-svc-hero-art { display: none !important; }
  body .ap-services-page .ap-svc-hero-copy { max-width: 640px !important; padding: 22px 0 26px !important; }
}

/* v2.15.46 — robust desktop zoom/narrow-window hero layout correction.
   Preserve the shared header/footer and all page content. At reduced desktop viewport
   widths, keep each hero's text in normal flow and remove decorative art from layout. */
@media screen and (min-width: 601px) and (max-width: 1100px) {
  body .ap-about-page .ap-about-hero {
    min-height: 0 !important;
    height: auto !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }
  body .ap-about-page .ap-about-hero:after {
    inset: 0 !important;
    background-image: linear-gradient(90deg, rgba(3,23,46,.97), rgba(3,36,73,.90)) , url('../images/about-hero-office.jpg') !important;
    background-position: center, right center !important;
    background-size: cover, cover !important;
    opacity: 1 !important;
  }
  body .ap-about-page .ap-about-hero-inner {
    min-height: 0 !important;
    height: auto !important;
    width: calc(100% - 48px) !important;
    max-width: none !important;
    margin: 0 auto !important;
    padding: 22px 0 26px !important;
    box-sizing: border-box !important;
  }
  body .ap-about-page .ap-about-hero h1,
  body .ap-about-page .ap-about-hero h2,
  body .ap-about-page .ap-about-hero p {
    max-width: 680px !important;
    overflow-wrap: break-word !important;
  }

  body .ap-contact-template .ap-contact-banner {
    position: relative !important;
    min-height: 0 !important;
    height: auto !important;
    padding: 22px 24px 26px !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }
  body .ap-contact-template .ap-contact-banner-copy {
    position: relative !important;
    width: 100% !important;
    max-width: 680px !important;
    min-width: 0 !important;
    margin: 0 !important;
    z-index: 2 !important;
  }
  body .ap-contact-template .ap-contact-hero-art { display: none !important; }

  body .ap-services-page .ap-svc-hero {
    height: auto !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }
  body .ap-services-page .ap-svc-hero-grid {
    display: block !important;
    width: calc(100% - 48px) !important;
    max-width: none !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 auto !important;
    padding: 1px 0 !important;
    box-sizing: border-box !important;
  }
  body .ap-services-page .ap-svc-hero-copy {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    max-width: 680px !important;
    min-width: 0 !important;
    padding: 22px 0 26px !important;
    box-sizing: border-box !important;
  }
  body .ap-services-page .ap-svc-hero-art { display: none !important; }
  body .ap-services-page .ap-svc-hero-text { max-width: 100% !important; }
}

/* At very narrow desktop browser widths (commonly caused by zoom), use a single-column hero. */
@media screen and (min-width: 601px) and (max-width: 760px) {
  body .ap-about-page .ap-about-hero-inner,
  body .ap-services-page .ap-svc-hero-grid { width: calc(100% - 32px) !important; }
  body .ap-contact-template .ap-contact-banner { padding: 20px 16px 24px !important; }
}


/* v2.15.47 — stable hero composition across desktop browser zoom levels.
   Keep text in normal flow, use viewport-relative widths, and avoid positioned artwork
   pushing or overlapping the copy as CSS viewport width changes at 25–150% zoom. */
@media screen and (min-width: 601px) {
  body .ap-about-page .ap-about-hero {
    position: relative !important; height: auto !important; min-height: 0 !important;
    overflow: hidden !important; isolation: isolate !important;
  }
  body .ap-about-page .ap-about-hero:after {
    inset: 0 0 0 42% !important; background-position: center right !important;
    background-size: cover !important; opacity: .72 !important; pointer-events: none !important;
  }
  body .ap-about-page .ap-about-hero-inner {
    position: relative !important; z-index: 1 !important;
    width: min( calc(100% - 48px), 1280px ) !important;
    max-width: 1280px !important; min-height: 0 !important; height: auto !important;
    margin: 0 auto !important; padding: clamp(22px, 3vw, 44px) 0 !important;
    box-sizing: border-box !important;
  }
  body .ap-about-page .ap-about-hero-inner > *:not(.ap-about-hero-image) {
    max-width: min(52%, 620px) !important; overflow-wrap: break-word !important;
  }
  body .ap-about-page .ap-about-hero-image { display: none !important; }

  body .ap-contact-template .ap-contact-banner {
    position: relative !important; display: block !important; height: auto !important;
    min-height: 0 !important; overflow: hidden !important; box-sizing: border-box !important;
    padding: clamp(22px, 3vw, 40px) max(24px, calc((100% - 1280px)/2)) !important;
  }
  body .ap-contact-template .ap-contact-banner-copy {
    position: relative !important; left: auto !important; right: auto !important;
    top: auto !important; transform: none !important; width: min(100%, 640px) !important;
    max-width: 640px !important; min-width: 0 !important; margin: 0 !important;
    box-sizing: border-box !important; z-index: 2 !important;
  }
  body .ap-contact-template .ap-contact-hero-art { display: none !important; }

  body .ap-services-page .ap-svc-hero {
    height: auto !important; min-height: 0 !important; overflow: hidden !important;
    position: relative !important;
  }
  body .ap-services-page .ap-svc-hero-grid {
    display: block !important; width: min(calc(100% - 48px), 1280px) !important;
    max-width: 1280px !important; min-height: 0 !important; height: auto !important;
    margin: 0 auto !important; padding: 1px 0 !important; box-sizing: border-box !important;
  }
  body .ap-services-page .ap-svc-hero-copy {
    display: block !important; position: relative !important; inset: auto !important;
    transform: none !important; width: min(100%, 650px) !important;
    max-width: 650px !important; min-width: 0 !important;
    padding: clamp(22px, 3vw, 40px) 0 !important; box-sizing: border-box !important;
  }
  body .ap-services-page .ap-svc-hero-art { display: none !important; }
  body .ap-services-page .ap-svc-hero-text { max-width: 100% !important; }
}
@media screen and (min-width: 601px) and (max-width: 900px) {
  body .ap-about-page .ap-about-hero:after { inset: 0 !important; opacity: .38 !important; }
  body .ap-about-page .ap-about-hero-inner { width: calc(100% - 32px) !important; }
  body .ap-about-page .ap-about-hero-inner > *:not(.ap-about-hero-image) { max-width: 100% !important; }
  body .ap-contact-template .ap-contact-banner { padding: 22px 16px 26px !important; }
  body .ap-services-page .ap-svc-hero-grid { width: calc(100% - 32px) !important; }
}


/* v2.15.48 — restore hero artwork and keep it in the layout at desktop zoom levels.
   Narrow desktop viewports stack the service artwork below the copy instead of hiding it. */
@media screen and (min-width: 601px) {
  body .ap-about-page .ap-about-hero { height:auto!important; min-height:0!important; overflow:hidden!important; }
  body .ap-about-page .ap-about-hero:after { inset:0 0 0 48%!important; background-position:center right!important; background-size:cover!important; opacity:.72!important; }
  body .ap-about-page .ap-about-hero-inner { width:calc(100% - 48px)!important; max-width:1280px!important; height:auto!important; min-height:0!important; margin:0 auto!important; padding:28px 0!important; box-sizing:border-box!important; }
  body .ap-about-page .ap-about-hero-inner > *:not(.ap-about-hero-image) { max-width:min(52%,620px)!important; overflow-wrap:anywhere!important; }
  body .ap-about-page .ap-about-hero-image { display:block!important; }

  body .ap-contact-template .ap-contact-banner { position:relative!important; display:block!important; height:auto!important; min-height:190px!important; overflow:hidden!important; box-sizing:border-box!important; padding:28px max(24px,calc((100% - 1280px)/2))!important; }
  body .ap-contact-template .ap-contact-banner-copy { position:relative!important; inset:auto!important; transform:none!important; width:min(100%,640px)!important; max-width:640px!important; min-width:0!important; margin:0!important; z-index:2!important; box-sizing:border-box!important; }
  body .ap-contact-template .ap-contact-hero-art { display:block!important; position:absolute!important; top:0!important; right:0!important; bottom:0!important; left:auto!important; width:42%!important; height:100%!important; opacity:.38!important; pointer-events:none!important; z-index:1!important; }

  body .ap-services-page .ap-svc-hero { height:auto!important; min-height:0!important; overflow:hidden!important; position:relative!important; }
  body .ap-services-page .ap-svc-hero-grid { display:grid!important; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)!important; align-items:center!important; gap:24px!important; width:min(calc(100% - 48px),1280px)!important; max-width:1280px!important; min-height:0!important; height:auto!important; margin:0 auto!important; padding:24px 0!important; box-sizing:border-box!important; }
  body .ap-services-page .ap-svc-hero-copy { display:block!important; position:relative!important; inset:auto!important; transform:none!important; width:100%!important; max-width:650px!important; min-width:0!important; padding:0!important; box-sizing:border-box!important; }
  body .ap-services-page .ap-svc-hero-art { display:block!important; position:relative!important; inset:auto!important; transform:none!important; width:100%!important; min-width:0!important; max-width:100%!important; height:auto!important; max-height:340px!important; margin:0!important; opacity:1!important; }
  body .ap-services-page .ap-svc-hero-art-image { height:auto!important; max-height:340px!important; }
  body .ap-services-page .ap-svc-hero-art-image img { width:100%!important; height:100%!important; max-width:100%!important; max-height:340px!important; object-fit:contain!important; }
  body .ap-services-page .ap-svc-hero-text { max-width:100%!important; }
}
@media screen and (min-width:601px) and (max-width:1100px) {
  body .ap-about-page .ap-about-hero:after { inset:0!important; opacity:.35!important; }
  body .ap-about-page .ap-about-hero-inner { width:calc(100% - 40px)!important; padding:24px 0!important; }
  body .ap-about-page .ap-about-hero-inner > *:not(.ap-about-hero-image) { max-width:100%!important; }
  body .ap-contact-template .ap-contact-banner { padding:24px 20px!important; }
  body .ap-contact-template .ap-contact-banner-copy { max-width:min(100%,650px)!important; }
  body .ap-contact-template .ap-contact-hero-art { width:34%!important; opacity:.22!important; }
  body .ap-services-page .ap-svc-hero-grid { grid-template-columns:minmax(0,1fr)!important; gap:8px!important; width:calc(100% - 40px)!important; padding:20px 0!important; }
  body .ap-services-page .ap-svc-hero-copy { max-width:680px!important; padding:0 0 8px!important; }
  body .ap-services-page .ap-svc-hero-art { width:min(100%,520px)!important; max-height:260px!important; margin:0 auto!important; }
  body .ap-services-page .ap-svc-hero-art-image { max-height:260px!important; }
  body .ap-services-page .ap-svc-hero-art-image img { max-height:260px!important; }
}
@media screen and (min-width:601px) and (max-width:760px) {
  body .ap-about-page .ap-about-hero-inner { width:calc(100% - 32px)!important; }
  body .ap-contact-template .ap-contact-banner { padding:20px 16px!important; }
  body .ap-contact-template .ap-contact-hero-art { width:25%!important; opacity:.16!important; }
  body .ap-services-page .ap-svc-hero-grid { width:calc(100% - 32px)!important; }
}


/* v2.15.54 — rollback of later About/Contact zoom-rail overrides; restored v2.15.48 hero CSS baseline. */


/* v2.15.55 — Desktop zoom containment: About and Contact hero content/art stay inside
   the same centered 1280px rail used by Services. Full-width navy background remains. */
@media screen and (min-width: 601px) {
  body .ap-about-page .ap-about-hero {
    position: relative !important;
    overflow: hidden !important;
    height: auto !important;
    min-height: 0 !important;
  }
  body .ap-about-page .ap-about-hero-inner {
    position: relative !important;
    z-index: 2 !important;
    width: min(calc(100% - 48px), 1280px) !important;
    max-width: 1280px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 28px 0 !important;
    box-sizing: border-box !important;
  }
  body .ap-about-page .ap-about-hero-inner > *:not(.ap-about-hero-image) {
    max-width: min(48%, 620px) !important;
    overflow-wrap: break-word !important;
  }
  /* The office photo overlay is clipped to the centered rail, not the viewport edge. */
  body .ap-about-page .ap-about-hero:after {
    inset: 0 max(24px, calc((100% - 1280px) / 2)) 0 calc(50% + 40px) !important;
    background-position: center right !important;
    background-size: cover !important;
    opacity: .72 !important;
  }

  body .ap-contact-template .ap-contact-banner {
    position: relative !important;
    display: block !important;
    height: auto !important;
    min-height: 190px !important;
    overflow: hidden !important;
    padding: 28px 0 !important;
    box-sizing: border-box !important;
  }
  /* Full-width rail wrapper; the copy itself stays a readable 640px column. */
  body .ap-contact-template .ap-contact-banner-copy {
    position: relative !important;
    inset: auto !important;
    transform: none !important;
    width: min(calc(100% - 48px), 1280px) !important;
    max-width: 1280px !important;
    min-width: 0 !important;
    margin: 0 auto !important;
    padding: 0 !important;
    z-index: 2 !important;
    box-sizing: border-box !important;
  }
  body .ap-contact-template .ap-contact-banner-copy > * {
    max-width: 640px !important;
    overflow-wrap: break-word !important;
  }
  body .ap-contact-template .ap-contact-hero-art {
    display: block !important;
    position: absolute !important;
    top: 0 !important;
    right: max(24px, calc((100% - 1280px) / 2)) !important;
    bottom: 0 !important;
    left: auto !important;
    width: min(42%, 600px) !important;
    max-width: 600px !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center right !important;
    opacity: .38 !important;
    pointer-events: none !important;
    z-index: 1 !important;
  }
}
@media screen and (min-width: 601px) and (max-width: 900px) {
  body .ap-about-page .ap-about-hero-inner { width: calc(100% - 40px) !important; }
  body .ap-about-page .ap-about-hero-inner > *:not(.ap-about-hero-image) { max-width: 100% !important; }
  body .ap-about-page .ap-about-hero:after { inset: 0 20px 0 48% !important; opacity: .36 !important; }
  body .ap-contact-template .ap-contact-banner-copy { width: calc(100% - 40px) !important; }
  body .ap-contact-template .ap-contact-hero-art { right: 20px !important; width: min(34%, 360px) !important; opacity: .22 !important; }
}


/* v2.15.56 — About hero zoom fix only.
   Keep both copy and office artwork inside one centered 1280px rail at desktop zoom.
   Do not alter Contact or Services; their current layout is retained. */
@media screen and (min-width: 601px) {
  body .ap-about-page .ap-about-hero {
    position: relative !important;
    isolation: isolate !important;
    overflow: hidden !important;
  }
  body .ap-about-page .ap-about-hero .ap-about-hero-inner {
    position: relative !important;
    z-index: 2 !important;
    display: block !important;
    width: min(1280px, calc(100% - 48px)) !important;
    max-width: 1280px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 22px 0 24px !important;
    box-sizing: border-box !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
  }
  body .ap-about-page .ap-about-hero .ap-about-hero-inner > *:not(.ap-about-hero-image) {
    max-width: min(52%, 620px) !important;
    box-sizing: border-box !important;
    overflow-wrap: anywhere !important;
  }
  body .ap-about-page .ap-about-hero:after {
    content: "" !important;
    position: absolute !important;
    z-index: 0 !important;
    top: 0 !important;
    bottom: 0 !important;
    left: calc(50% + 0px) !important;
    right: max(24px, calc((100% - 1280px) / 2)) !important;
    inset: 0 0 0 50% !important;
    background-position: center right !important;
    background-size: cover !important;
    background-repeat: no-repeat !important;
    opacity: 1 !important;
    pointer-events: none !important;
  }
  body .ap-about-page .ap-about-hero .ap-about-hero-image {
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
}
@media screen and (min-width: 601px) and (max-width: 900px) {
  body .ap-about-page .ap-about-hero .ap-about-hero-inner {
    width: calc(100% - 40px) !important;
  }
  body .ap-about-page .ap-about-hero .ap-about-hero-inner > *:not(.ap-about-hero-image) {
    max-width: 100% !important;
  }
  body .ap-about-page .ap-about-hero:after {
    inset: 0 20px 0 48% !important;
    opacity: .38 !important;
  }
}


/* v2.16.44 — clear order-to-invoice navigation and improve account orders guidance. */
.ap-account-invoice-hint{margin:0 0 18px;padding:14px 16px;border:1px solid #d7e7fa;border-left:4px solid #0878f9;border-radius:9px;background:#f4f8ff;color:#304767;font-size:13px;line-height:1.65}
.ap-account-invoice-hint strong{color:#092955;display:inline-block;margin-right:5px}
.ap-account-invoice-hint a{color:#0878f9;font-weight:700}
.ap-contact-thankyou-contact{background:#f2f7ff!important}
.ap-contact-thankyou-actions a:focus-visible{outline:3px solid #7bc7ff;outline-offset:3px}
@media(max-width:640px){.ap-account-invoice-hint{padding:12px;font-size:12px}}

/* v2.16.48 — subtle GST identity note in the existing homepage hero only. */
.ap-hero-gstin-note{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:13px;color:rgba(236,245,255,.82);font-size:11px;line-height:1.35;letter-spacing:.02em;position:relative;z-index:2}
.ap-hero-gstin-mark{display:inline-grid;place-items:center;width:15px;height:15px;border:1px solid rgba(140,210,255,.65);border-radius:50%;font-size:9px;color:#a9dcff}
.ap-hero-gstin-number{font-weight:700;color:rgba(255,255,255,.93);letter-spacing:.03em}
@media(max-width:760px){.ap-hero-gstin-note{font-size:10px;gap:5px;margin-top:11px}}
