/* CMS additions only. The approved production stylesheet remains authoritative. */
.cms-prod-contact-body{font-size:clamp(16px,1.05vw,20px);line-height:1.5;margin:18px 0 0;max-width:680px}
.cms-prod-lightbox{position:fixed;inset:0;z-index:2147483000;background:rgba(0,0,0,.72);display:flex;align-items:center;justify-content:center;padding:28px 20px;overflow:auto}
.cms-prod-lightbox-card{position:relative;background:#fff;max-width:min(94vw,1500px);max-height:calc(100vh - 56px);display:flex;flex-direction:column;border-radius:26px;overflow:hidden;box-shadow:0 30px 90px rgba(0,0,0,.35)}
.cms-prod-lightbox-image{min-height:0;display:flex;align-items:center;justify-content:center;padding:20px 20px 0;overflow:auto}
.cms-prod-lightbox-image img{display:block;max-width:100%;max-height:calc(100vh - 150px);width:auto;height:auto;object-fit:contain}
.cms-prod-lightbox-card.no-credit .cms-prod-lightbox-image{padding-bottom:20px}
.cms-prod-lightbox-credit{padding:14px 24px 20px;text-align:center;font-size:13px;line-height:1.4;color:#555;background:#fff}
.cms-prod-lightbox-close{position:absolute;z-index:2;right:14px;top:14px;width:48px;height:48px;border:0;border-radius:50%;background:#fff;color:#111;font-size:32px;line-height:1;cursor:pointer;box-shadow:0 4px 18px rgba(0,0,0,.16)}
@media(max-width:767px){.cms-prod-lightbox{padding:12px 8px}.cms-prod-lightbox-card{max-height:calc(100vh - 24px);border-radius:18px}.cms-prod-lightbox-image{padding:14px 10px 0}.cms-prod-lightbox-card.no-credit .cms-prod-lightbox-image{padding-bottom:14px}.cms-prod-lightbox-image img{max-height:calc(100vh - 110px)}.cms-prod-lightbox-close{right:9px;top:9px;width:42px;height:42px;font-size:28px}.cms-prod-contact-body{font-size:16px;margin-top:14px}}

/* CMS project name is already visible in the project selector above the gallery.
   Avoid repeating it again above the images. */
.cms-prod-project-subhead {
  justify-content: flex-end;
}

/* Dynamic CMS categories deliberately reuse the ORIGINAL live-site section classes.
   Do not override typography, font size, title colour, section spacing or the four existing category styles here. */
.covers-section .section-head .kicker:empty,
.covers-section .section-head .kicker[hidden]{display:none!important;}

/* Mobile-only CMS category navigation resilience.
   Keep the approved desktop/tablet live-site styling unchanged.
   On phones, extra CMS-created categories may exceed the viewport, so the
   existing category strip becomes a touch-scrollable single-line rail. */
@media (max-width: 620px) {
  .category-strip {
    justify-content: safe center !important;
    white-space: nowrap !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    touch-action: pan-x;
    scrollbar-width: none;
    box-sizing: border-box;
    padding-left: 24px !important;
    padding-right: 24px !important;
    scroll-padding-left: 24px;
    scroll-padding-right: 24px;
  }
  .category-strip::-webkit-scrollbar { display: none; }
  .category-strip > a,
  .category-strip > span {
    flex: 0 0 auto;
  }
}


/* Final CMS integration: preserve live layout; only normalise arrow glyphs and CMS project arrow alignment. */
.cms-clean-arrows button{font-size:0!important;position:relative!important}
.cms-clean-arrows button::before{content:'';position:absolute;left:50%;top:50%;width:8px;height:8px;margin-left:-4px;margin-top:-4px;border-top:1.25px solid currentColor;border-right:1.25px solid currentColor;box-sizing:border-box}
.cms-clean-arrows button:first-child::before{transform:rotate(-135deg)}
.cms-clean-arrows button:last-child::before{transform:rotate(45deg)}
.cms-prod-project-subhead{display:flex!important;justify-content:flex-end!important;align-items:center!important}
.cms-prod-project-subhead .arrows{margin-left:auto!important}


/* Hero CMS readiness gate: preserve the approved animation, but do not start it with stale static crop positions. */

/* CMS hero bootstrap: never hide the collage. Pause only the entrance motion for the tiny metadata fetch. */
html.cms-hero-priming .p3-collage .p3-img{animation-play-state:paused!important}

/* Final CTA refinement: remove the Get in Touch arrow/circle only.
   Preserve the approved navigation chevrons and all other glass buttons. */
.contact-cta .cta-copy .glass-button{
  justify-content:center!important;
  min-width:168px;
  padding-left:22px!important;
  padding-right:22px!important;
}
.contact-cta .cta-copy .glass-button b{display:none!important}


/* v8 QA corrections: stronger CTA label and true thin chevrons. */
.contact-cta .cta-copy .glass-button{font-weight:500!important;color:#171717!important;letter-spacing:.16em!important}
.cms-clean-arrows button{font-size:0!important;position:relative!important}
.cms-clean-arrows button::before{content:''!important;display:block!important;position:absolute!important;left:50%!important;top:50%!important;width:9px!important;height:9px!important;margin:-4.5px 0 0 -4.5px!important;border:0!important;border-top:1.25px solid currentColor!important;border-right:1.25px solid currentColor!important;box-sizing:border-box!important}
.cms-clean-arrows button:first-child::before{transform:rotate(-135deg)!important}
.cms-clean-arrows button:last-child::before{transform:rotate(45deg)!important}

/* v9: stronger CTA label while preserving the approved button geometry. */
.contact-cta .cta-copy .glass-button{font-weight:600!important;color:#111!important;}
