/* =====================================================================
   PRISM — light polish layer  (loaded AFTER style.css)
   Goal: warmer, calmer EDUCATION feel (helping students, not selling a
   product). No font changes, no nav restructure, no layout changes.
   Only: recolour the cold "AI" blue/violet/cyan accents into the
   existing navy + warm-gold academic palette, soften a few loud
   gradients, refine spacing, and smooth out mobile.
   ===================================================================== */

:root {
  /* Academic navy + warm gold. Folding the old electric accents into
     this family removes the generic "AI gradient" feel site-wide,
     since many gradients reference these variables. */
  --prism-blue: #234a7d;     /* was electric #2563eb */
  --prism-violet: #1f3a63;   /* was purple #8b5cf6  -> stays in navy */
  --prism-cyan: #4a6f9c;     /* was electric #06b6d4 */
  --edu-navy: #1f3a63;
  --edu-navy-soft: #2a4a7c;
  --edu-gold: #c39a4e;
  --edu-ink: #16223b;
}

/* ---- Accent hovers that were hardcoded electric blue ---------------- */
.prism-action-primary:hover { background: var(--edu-navy) !important; }
.prism-action-text:hover { color: var(--edu-navy) !important; border-color: rgba(31, 58, 99, 0.28) !important; }
.nav ul li.btn-cta a span:hover { background: var(--edu-navy) !important; }

/* ---- Home hero: trade the cold blue/violet glow for a soft, warm,
        academic wash so it reads calm and trustworthy ---------------- */
.prism-hero-v2 {
  background:
    radial-gradient(circle at 82% 10%, rgba(195, 154, 78, 0.10), transparent 30%),
    radial-gradient(circle at 10% 6%, rgba(31, 58, 99, 0.06), transparent 26%),
    linear-gradient(180deg, #ffffff 0%, #ffffff 74%, #faf8f3 100%) !important;
}

/* Eyebrow square + search panel tint: warm/navy instead of cyan */
.prism-hero-panel {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(250, 248, 243, 0.9)),
    radial-gradient(circle at 100% 0%, rgba(195, 154, 78, 0.12), transparent 38%) !important;
}

/* The little eyebrow marker gradient -> calm navy (uses the vars above) */

/* ---- Soften loud shadows everywhere for a quieter, classier feel --- */
.prism-hero-panel { box-shadow: 0 24px 64px rgba(22, 34, 59, 0.07) !important; }
.service-card, .service-finder-shell {
  box-shadow: 0 18px 50px rgba(22, 34, 59, 0.06) !important;
}

/* =====================================================================
   HOME — show the original animated image hero (flexslider) on home.
   No restyling: this just unhides it so it renders with its native
   design exactly as before.
   ===================================================================== */
.home-page #hero { display: block !important; }

/* Taller, fuller stage; image fills and centres */
#hero { --hero-height: min(780px, calc(100svh - var(--nav-height-desktop))); }
#hero .flexslider .slides li {
  background-position: center center !important;
  background-size: cover !important;
}

/* Rich, cinematic overlay — darkest toward the text (left + bottom),
   so the photo still reads on the right. Slow zoom on the live slide. */
#hero .flexslider .slides li:before {
  background:
    linear-gradient(100deg, rgba(9, 14, 24, 0.90) 0%, rgba(9, 14, 24, 0.66) 38%, rgba(9, 14, 24, 0.24) 66%, rgba(9, 14, 24, 0.04) 100%),
    linear-gradient(180deg, rgba(9, 14, 24, 0) 52%, rgba(9, 14, 24, 0.50) 100%) !important;
  z-index: 1;
}

/* Replace the multicolour bar with a slim, refined gold accent */
#hero .flexslider .slides li:after {
  left: min(6vw, 72px) !important;
  bottom: auto !important;
  top: 50% !important;
  width: 56px !important;
  height: 3px !important;
  margin-top: -150px;
  border-radius: 999px !important;
  background: linear-gradient(90deg, #e3c181, #c69544) !important;
  opacity: 1 !important;
  z-index: 3 !important;
}

/* Keep copy above the overlay */
#hero .flexslider .slider-text { position: relative; z-index: 3; }

/* White, confident type */
#hero .flexslider .slider-text > .slider-text-inner h1 {
  color: #ffffff !important;
  text-shadow: 0 2px 40px rgba(0, 0, 0, 0.30);
}
#hero .flexslider .slider-text > .slider-text-inner h2 {
  color: rgba(255, 255, 255, 0.86) !important;
}

/* Kicker — light gold label on glass */
.hero-kicker {
  color: #ecd5a3 !important;
  background: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid rgba(255, 255, 255, 0.24) !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}

/* Buttons — white primary pops on the dark image; glass outline */
#hero .hero-actions .btn.btn-primary {
  background: #ffffff !important;
  color: #13213f !important;
  border: 0 !important;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.28) !important;
}
#hero .hero-actions .btn.btn-primary:hover {
  background: #f2f4f7 !important;
  transform: translateY(-2px);
}
#hero .hero-actions .btn.btn-primary.btn-outline {
  background: rgba(255, 255, 255, 0.10) !important;
  color: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.5) !important;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  box-shadow: none !important;
}
#hero .hero-actions .btn.btn-primary.btn-outline:hover {
  background: rgba(255, 255, 255, 0.20) !important;
  border-color: #ffffff !important;
  color: #ffffff !important;
}

/* Clean navigation: refined dots, no clunky arrows */
#hero .flexslider .flex-direction-nav { display: none !important; }
#hero .flexslider .flex-control-nav { z-index: 4; }
#hero .flexslider .flex-control-nav li a { background: rgba(255, 255, 255, 0.45) !important; box-shadow: none !important; }
#hero .flexslider .flex-control-nav li a.flex-active { background: #ffffff !important; }

@media (max-width: 767px) {
  #hero .flexslider .slides li:before {
    background: linear-gradient(180deg, rgba(9,14,24,0.55) 0%, rgba(9,14,24,0.45) 40%, rgba(9,14,24,0.78) 100%) !important;
  }
  #hero .flexslider .slides li:after { display: none !important; }
  #hero .hero-actions { flex-direction: column; align-items: stretch; gap: 10px; }
  #hero .hero-actions .btn { width: 100%; }
}

/* =====================================================================
   HOME — compact services grid (replaces the heavy duplicated finder)
   ===================================================================== */
.home-services { padding: 18px 0 78px; background: #ffffff; }
.home-services .container { width: min(100% - 40px, 1160px); }
.home-services-head { max-width: 680px; margin: 0 0 34px; }
.home-services-head h2 {
  margin: 6px 0 10px;
  font-size: clamp(28px, 3.4vw, 40px);
  letter-spacing: -0.02em;
  color: var(--edu-ink);
}
.home-services-head p { color: #5b6472; font-size: 17px; margin: 0; max-width: 580px; }

.home-services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.home-service-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 30px 28px 26px;
  border: 1px solid rgba(22, 34, 59, 0.12);
  border-radius: 20px;
  background: #fff;
  text-decoration: none;
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.home-service-card:hover {
  transform: translateY(-4px);
  border-color: rgba(31, 58, 99, 0.28);
  box-shadow: 0 18px 44px rgba(22, 34, 59, 0.08);
}
.home-service-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  border-radius: 14px;
  background: #f3f0e7;
  color: var(--edu-navy);
  font-size: 22px;
  margin-bottom: 18px;
}
.home-service-card h3 {
  margin: 0 0 8px;
  font-size: 21px;
  letter-spacing: -0.01em;
  color: var(--edu-ink);
}
.home-service-card p { margin: 0 0 18px; color: #5b6472; font-size: 15px; line-height: 1.5; flex: 1; }
.home-service-go { font-size: 14.5px; font-weight: 600; color: var(--edu-navy); }
.home-service-go i { font-size: 12px; margin-left: 2px; }

@media (max-width: 991px) {
  .home-services-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 575px) {
  .home-services-grid { grid-template-columns: 1fr; }
  .home-services { padding: 8px 0 56px; }
}

/* =====================================================================
   Education tone touches
   ===================================================================== */
/* Links/accents that students click feel friendly, not salesy */
.service-card-link { color: var(--edu-navy) !important; }
.homepage-about-link { color: var(--edu-navy) !important; }
.homepage-about-link:hover { color: var(--edu-gold) !important; }

/* Trust stat numerals: warm gold accent reads "academic", not "metrics dashboard" */
.homepage-trust-item h3 i { color: var(--edu-gold) !important; }

/* =====================================================================
   NAV — appearance only (structure untouched)
   ===================================================================== */
.nav ul li a { transition: color .2s ease, background .2s ease; }
.nav ul li a:hover { color: var(--edu-navy); }
.nav ul li.active > a { color: var(--edu-navy); }

/* Balance the bar: logo flush left, menu flush right, equal margins.
   (Legacy CSS absolutely-centred the logo on desktop, leaving the bar
   lopsided with a big empty gap.) */
.nav .nav-main-row {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  flex-wrap: nowrap;
}
.nav .nav-main-row > [class*="col-"] {
  width: auto !important;
  float: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.nav #logo {
  position: static !important;
  left: auto !important;
  top: auto !important;
  transform: none !important;
  text-align: left !important;
}
.nav .menu-1 { margin-left: auto; text-align: right; }
.nav .menu-1 ul { justify-content: flex-end; margin: 0; }
/* tidy any stray logo backing box */
.logo-link:before { content: none !important; display: none !important; }

/* =====================================================================
   MOBILE — smoother, calmer experience across all pages
   (spacing + readability only; no structural change)
   ===================================================================== */
@media (max-width: 767px) {
  /* Comfortable breathing room under the floating nav */
  .prism-hero-v2 { padding: 130px 0 56px !important; }

  /* Headlines that fit nicely on a phone */
  .prism-hero-copy h1 { font-size: clamp(34px, 11vw, 46px) !important; line-height: 1.06 !important; }
  .prism-hero-copy p { font-size: 17px !important; }

  /* Full-width, thumb-friendly buttons */
  .prism-hero-actions { flex-direction: column; align-items: stretch; }
  .prism-hero-actions .prism-action,
  .service-finder-footer .btn,
  .hero-actions .btn { width: 100%; }

  /* Service finder + cards: more vertical rhythm, less cramped */
  .service-finder-shell { padding: 26px 18px !important; }
  .service-finder-grid > [class*="col-"] { margin-bottom: 18px; }
  .service-card-title { font-size: 20px !important; }

  /* Stat panel stacks cleanly */
  .homepage-trust-item { text-align: center !important; margin-bottom: 22px; }

  /* Keep images calm and full-width on small screens */
  .homepage-about-media { margin-top: 24px; }

  /* Prevent any accidental sideways scroll */
  body, #page { overflow-x: hidden; }
}

/* Comfortable tap targets for pills/tags on touch screens */
@media (max-width: 991px) {
  .service-pill, .service-card-tag { padding: 9px 14px !important; }
  .service-search-field input { font-size: 16px !important; } /* prevents iOS zoom-on-focus */
}

/* =====================================================================
   PRISM executive refinement after Claude baseline
   Keep the split pages. Reduce hard black, remove boxed SaaS feel, and
   use open lines with a warm Dubai academic palette.
   ===================================================================== */
:root {
  --prism-ink-soft: #172137;
  --prism-charcoal: #243041;
  --prism-copy-soft: #5f6876;
  --prism-line-soft: rgba(23, 33, 55, 0.14);
  --prism-line-strong: rgba(23, 33, 55, 0.24);
  --prism-paper: #fffdf8;
  --prism-paper-warm: #fbf7ef;
  --prism-brass: #b8893f;
  --prism-brass-soft: #ead9b9;
  --prism-navy-deep: #1d3758;
}

html,
body,
#page {
  background: var(--prism-paper) !important;
}

body,
p,
li,
label,
input,
textarea,
select,
button,
a {
  color: var(--prism-copy-soft);
}

h1,
h2,
h3,
h4,
h5,
h6,
.services-page-hero h1,
.about-page-hero h1,
.contact-page-hero h1,
.enquiry-title,
.home-services-head h2,
.homepage-trust-heading h2 {
  color: var(--prism-ink-soft) !important;
}

.nav {
  background: rgba(255, 253, 248, 0.94) !important;
  border-bottom: 1px solid var(--prism-line-soft) !important;
  box-shadow: none !important;
}

.nav ul li a,
.nav ul li.btn-cta a,
.nav ul li.btn-cta a span {
  color: var(--prism-charcoal) !important;
  background: transparent !important;
  box-shadow: none !important;
}

.nav ul li a:after {
  background: var(--prism-brass) !important;
}

.nav ul li a:hover,
.nav ul li.active > a {
  color: var(--prism-ink-soft) !important;
}

.prism-logo-mark {
  color: var(--prism-ink-soft) !important;
}

.prism-logo-sub {
  color: rgba(36, 48, 65, 0.46) !important;
}

/* Home hero: keep Claude's visual idea, but make the copy visible and less heavy. */
#hero {
  --hero-height: min(720px, calc(100svh - var(--nav-height-desktop))) !important;
  background: var(--prism-paper) !important;
}

#hero .flexslider .slides li {
  border-radius: 0 !important;
  background-position: center center !important;
}

#hero .flexslider .slides li:before {
  background:
    linear-gradient(96deg, rgba(18, 28, 46, 0.72) 0%, rgba(18, 28, 46, 0.52) 36%, rgba(18, 28, 46, 0.18) 68%, rgba(18, 28, 46, 0.03) 100%),
    linear-gradient(180deg, rgba(18, 28, 46, 0.02) 48%, rgba(18, 28, 46, 0.34) 100%) !important;
}

#hero .flexslider .slides li:after {
  width: 52px !important;
  height: 1px !important;
  border-radius: 0 !important;
  background: var(--prism-brass) !important;
}

#hero .flexslider .slider-text,
#hero .flexslider .slider-text > .slider-text-inner {
  display: flex !important;
  flex-direction: column;
  justify-content: center;
  min-height: var(--hero-height) !important;
  height: var(--hero-height) !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}

#hero .flexslider .slider-text > .slider-text-inner {
  align-items: flex-start;
  width: min(100%, 700px);
  padding: 32px 0 58px !important;
}

#hero .flexslider .slider-text > .slider-text-inner h1 {
  display: block !important;
  max-width: 680px;
  margin: 14px 0 18px;
  color: #fffdf8 !important;
  font-size: clamp(54px, 6.2vw, 84px);
  font-weight: 650;
  line-height: 0.98;
  letter-spacing: -0.055em;
  text-shadow: 0 20px 52px rgba(0, 0, 0, 0.26);
}

#hero .flexslider .slider-text > .slider-text-inner h2 {
  display: block !important;
  max-width: 560px;
  color: rgba(255, 253, 248, 0.86) !important;
  font-size: clamp(17px, 1.45vw, 20px);
  font-weight: 400;
  line-height: 1.65;
}

.hero-kicker {
  border: 0 !important;
  border-bottom: 1px solid rgba(255, 253, 248, 0.36) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--prism-brass-soft) !important;
  backdrop-filter: none !important;
}

#hero .hero-actions .btn.btn-primary,
.btn.btn-primary,
.services-page-primary-btn,
.about-page-cta-btn,
.contact-page-primary-btn,
.enquiry-submit-wrap .btn.btn-primary {
  background: var(--prism-navy-deep) !important;
  border: 1px solid var(--prism-navy-deep) !important;
  color: #fffdf8 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

#hero .hero-actions .btn.btn-primary {
  background: #fffdf8 !important;
  border-color: #fffdf8 !important;
  color: var(--prism-ink-soft) !important;
}

#hero .hero-actions .btn.btn-primary.btn-outline,
.services-page-ghost-btn,
.about-page-ghost-btn,
.contact-page-ghost-btn,
.contact-page-detail-card a {
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid currentColor !important;
  border-radius: 0 !important;
  color: var(--prism-ink-soft) !important;
  box-shadow: none !important;
}

#hero .hero-actions .btn.btn-primary.btn-outline {
  color: #fffdf8 !important;
}

.btn.btn-primary:hover,
.services-page-primary-btn:hover,
.about-page-cta-btn:hover,
.contact-page-primary-btn:hover,
.enquiry-submit-wrap .btn.btn-primary:hover {
  background: var(--prism-charcoal) !important;
  border-color: var(--prism-charcoal) !important;
  color: #fffdf8 !important;
}

/* Home service links: editorial lines instead of rounded cards. */
.home-services {
  padding: 76px 0 88px;
  background: var(--prism-paper) !important;
}

.home-services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid var(--prism-line-soft);
  border-left: 1px solid var(--prism-line-soft);
}

.home-service-card {
  min-height: 228px;
  padding: 28px 28px 26px;
  border: 0 !important;
  border-right: 1px solid var(--prism-line-soft) !important;
  border-bottom: 1px solid var(--prism-line-soft) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
}

.home-service-card:hover {
  background: rgba(251, 247, 239, 0.82) !important;
  border-color: var(--prism-line-soft) !important;
  box-shadow: none !important;
  transform: none !important;
}

.home-service-icon {
  width: auto;
  height: auto;
  margin-bottom: 24px;
  border-radius: 0;
  background: transparent;
  color: var(--prism-brass);
  font-size: 22px;
}

.home-service-card h3 {
  color: var(--prism-ink-soft);
  font-size: 22px;
  font-weight: 550;
}

.home-service-card p {
  color: var(--prism-copy-soft);
}

.home-service-go,
.service-card-link,
.homepage-about-link,
.footer-chip-grid a {
  color: var(--prism-navy-deep) !important;
}

/* Service pages: keep separate pages, but remove filled icon blocks and harsh black. */
.services-page-hero,
.services-page-highlights,
.services-page-portfolio,
.services-page-cta,
.about-page-hero,
.contact-page-hero,
.enquiry-page #page-content {
  background: var(--prism-paper) !important;
}

.services-page-hero-inner,
.about-page-hero-inner,
.contact-page-hero-card {
  border-bottom: 1px solid var(--prism-line-soft) !important;
}

.services-page-highlight-card,
.services-page-portfolio-card,
.services-page-process-card,
.about-page-pillar-card,
.contact-page-detail-card,
.contact-page-story-card,
.enquiry-intro-card,
.smart-enquiry-form,
.enquiry-side-panel {
  border-radius: 0 !important;
  box-shadow: none !important;
}

.services-page-highlight-icon,
.about-page-mini-icon,
.about-page-pillar-icon,
.contact-page-detail-icon,
.footer-action-icon {
  width: auto !important;
  height: auto !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--prism-brass) !important;
}

.services-page-highlight-card h3,
.services-page-portfolio-card h3,
.about-page-pillar-card h3,
.contact-page-detail-card h3,
.enquiry-side-copy h3 {
  color: var(--prism-ink-soft) !important;
}

.services-page-highlight-card p,
.services-page-portfolio-card p,
.about-page-pillar-card p,
.contact-page-detail-card p,
.enquiry-copy,
.enquiry-side-copy p {
  color: var(--prism-copy-soft) !important;
}

.homepage-skill-banner {
  border-radius: 0 !important;
  background:
    linear-gradient(96deg, rgba(29, 55, 88, 0.95), rgba(36, 48, 65, 0.94)),
    radial-gradient(circle at 86% 20%, rgba(184, 137, 63, 0.28), transparent 34%) !important;
  box-shadow: none !important;
}

#footer {
  background: var(--prism-paper) !important;
}

.footer-shell {
  border-top: 1px solid var(--prism-line-soft) !important;
}

.call,
.call img {
  border-radius: 999px !important;
}

@media (max-width: 991px) {
  .nav-toggle {
    display: block !important;
    position: fixed;
    top: 22px;
    right: 18px;
    z-index: 10001;
  }

  .nav-toggle i,
  .nav-toggle i:before,
  .nav-toggle i:after,
  .nav-toggle.nav-white > i,
  .nav-toggle.nav-white > i:before,
  .nav-toggle.nav-white > i:after {
    background: var(--prism-ink-soft) !important;
    height: 1px !important;
  }
}

@media (max-width: 767px) {
  html,
  body,
  #page {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  .nav .container,
  #hero .container,
  .home-services .container,
  #page-content > .container,
  .homepage-trust-section > .container,
  .services-page-hero .container,
  .services-page-highlights .container,
  .services-page-portfolio .container,
  .services-page-cta .container,
  .about-page-hero .container,
  .about-page #page-content > .container,
  .contact-page-hero .container,
  .contact-page-details .container,
  .contact-page-story .container,
  .contact-page-cta .container,
  .enquiry-page #page-content > .container,
  #footer .container {
    width: auto !important;
    max-width: none !important;
    margin-left: 24px !important;
    margin-right: 24px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .row,
  .smart-enquiry-form .row,
  .enquiry-main-row,
  .services-page-hero-row {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .row > [class*="col-"],
  .smart-enquiry-form .row > [class*="col-"],
  .enquiry-main-row > [class*="col-"] {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  #hero {
    --hero-height: 640px !important;
  }

  #hero .flexslider .slides li,
  #hero .flexslider .slider-text,
  #hero .flexslider .slider-text > .slider-text-inner {
    min-height: 640px !important;
    height: 640px !important;
  }

  #hero .flexslider .slides li {
    border-radius: 0 !important;
    background-position: center center !important;
  }

  #hero .flexslider .slides li:before {
    background:
      linear-gradient(180deg, rgba(18, 28, 46, 0.36) 0%, rgba(18, 28, 46, 0.44) 42%, rgba(18, 28, 46, 0.80) 100%) !important;
  }

  #hero .flexslider .slider-text > .slider-text-inner {
    justify-content: flex-end;
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 0 86px !important;
  }

  #hero .flexslider .slider-text > .slider-text-inner h1,
  .enquiry-title,
  .services-page-hero h1,
  .about-page-hero h1,
  .contact-page-hero h1 {
    width: 100% !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: normal;
    word-break: normal;
  }

  #hero .flexslider .slider-text > .slider-text-inner h1 {
    font-size: clamp(38px, 11vw, 46px) !important;
    line-height: 1.04 !important;
    letter-spacing: -0.045em !important;
  }

  #hero .flexslider .slider-text > .slider-text-inner h2,
  .enquiry-copy,
  .services-page-hero p,
  .contact-page-hero p,
  .about-page-hero p {
    width: 100% !important;
    max-width: 100% !important;
    font-size: 15.5px !important;
    line-height: 1.62 !important;
  }

  #hero .hero-actions {
    width: 100%;
    align-items: stretch;
  }

  #hero .hero-actions .btn {
    width: 100% !important;
  }

  .home-services {
    padding: 54px 0 62px;
  }

  .home-services-grid {
    grid-template-columns: 1fr;
    border-left: 0;
  }

  .home-service-card {
    min-height: 0;
    padding: 26px 0 24px;
    border-right: 0 !important;
  }

  .home-service-icon {
    margin-bottom: 16px;
  }

  .enquiry-title {
    font-size: clamp(34px, 9.6vw, 40px) !important;
    line-height: 1.08 !important;
    letter-spacing: -0.046em !important;
  }
}

/* Final narrow-screen measure and hero button readability */
#hero .hero-actions a.btn.btn-primary:not(.btn-outline),
#hero .hero-actions a.btn.btn-primary.btn-lg:not(.btn-outline) {
  color: var(--prism-ink-soft) !important;
}

#hero .hero-actions a.btn.btn-primary.btn-outline {
  color: #fffdf8 !important;
}

@media (max-width: 767px) {
  .heading-block,
  .enquiry-intro-card,
  .smart-enquiry-form,
  .enquiry-side-panel,
  .homepage-about-copy,
  .home-services-head,
  .services-page-hero-inner,
  .services-page-hero-row,
  .contact-page-hero-card,
  .about-page-hero-inner {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  #hero .flexslider .slider-text > .slider-text-inner h1,
  #hero .flexslider .slider-text > .slider-text-inner h2,
  .home-services-head h2,
  .home-services-head p,
  .enquiry-title,
  .enquiry-copy,
  .services-page-hero h1,
  .services-page-hero p,
  .about-page-hero h1,
  .about-page-hero p,
  .contact-page-hero h1,
  .contact-page-hero p {
    width: calc(100vw - 48px) !important;
    max-width: calc(100vw - 48px) !important;
    min-width: 0 !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
  }

  #hero .flexslider .slider-text > .slider-text-inner h1 {
    font-size: clamp(35px, 10vw, 41px) !important;
    line-height: 1.08 !important;
  }

  .enquiry-title,
  .services-page-hero h1,
  .about-page-hero h1,
  .contact-page-hero h1 {
    font-size: clamp(31px, 8.4vw, 36px) !important;
    line-height: 1.12 !important;
  }

  .enquiry-local-row,
  .enquiry-badge-row,
  .services-page-hero-pills,
  .about-page-hero-pills,
  .contact-page-hero-pills {
    width: calc(100vw - 48px) !important;
    max-width: calc(100vw - 48px) !important;
    flex-wrap: wrap !important;
    overflow: visible !important;
  }
}

/* Final mobile text clamp: bypass legacy wide Bootstrap text measures. */
@media (max-width: 767px) {
  #hero .flexslider .slider-text > .slider-text-inner h1,
  #hero .flexslider .slider-text > .slider-text-inner h2,
  .home-services-head h2,
  .home-services-head p,
  .enquiry-title,
  .enquiry-copy,
  .services-page-hero h1,
  .services-page-hero p,
  .about-page-hero h1,
  .about-page-hero p,
  .contact-page-hero h1,
  .contact-page-hero p {
    display: block !important;
    box-sizing: border-box !important;
    width: calc(100vw - 64px) !important;
    max-width: 320px !important;
    min-width: 0 !important;
    white-space: normal !important;
    overflow: visible !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }

  #hero .flexslider .slider-text > .slider-text-inner h2,
  .home-services-head p,
  .enquiry-copy,
  .services-page-hero p,
  .about-page-hero p,
  .contact-page-hero p {
    max-width: 312px !important;
  }

  .enquiry-title {
    max-width: 318px !important;
  }
}

/* CTA reset requested: rounded black border, simple grow on hover only. */
.nav ul li.btn-cta a span,
#hero .hero-actions .btn.btn-primary,
#hero .hero-actions .btn.btn-primary.btn-outline,
.btn.btn-primary,
.btn.btn-success,
.services-page-primary-btn,
.services-page-ghost-btn,
.about-page-cta-btn,
.about-page-ghost-btn,
.contact-page-primary-btn,
.contact-page-ghost-btn,
.enquiry-submit-wrap .btn.btn-primary,
.footer-action-card {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 46px !important;
  padding: 0 22px !important;
  border: 1px solid #111111 !important;
  border-radius: 999px !important;
  background: rgba(255, 253, 248, 0.92) !important;
  color: #111111 !important;
  box-shadow: none !important;
  text-decoration: none !important;
  transform: scale(1) !important;
  transition: transform 0.2s ease !important;
}

.nav ul li.btn-cta a span:hover,
#hero .hero-actions .btn.btn-primary:hover,
#hero .hero-actions .btn.btn-primary.btn-outline:hover,
.btn.btn-primary:hover,
.btn.btn-success:hover,
.services-page-primary-btn:hover,
.services-page-ghost-btn:hover,
.about-page-cta-btn:hover,
.about-page-ghost-btn:hover,
.contact-page-primary-btn:hover,
.contact-page-ghost-btn:hover,
.enquiry-submit-wrap .btn.btn-primary:hover,
.footer-action-card:hover {
  background: rgba(255, 253, 248, 0.92) !important;
  border-color: #111111 !important;
  color: #111111 !important;
  box-shadow: none !important;
  transform: scale(1.045) !important;
}

/* Nav carries the subtle colour; CTAs stay neutral. */
.nav ul li:nth-child(1) a:after { background: #b8893f !important; }
.nav ul li:nth-child(2) a:after { background: #1d6f5f !important; }
.nav ul li:nth-child(3) a:after { background: #1d3758 !important; }
.nav ul li:nth-child(4) a:after { background: #9b2f2f !important; }

.nav ul li a:hover,
.nav ul li.active > a {
  color: #1d3758 !important;
}

@media (max-width: 767px) {
  #hero .hero-actions .btn.btn-primary,
  #hero .hero-actions .btn.btn-primary.btn-outline,
  .btn.btn-primary,
  .btn.btn-success,
  .services-page-primary-btn,
  .services-page-ghost-btn,
  .about-page-cta-btn,
  .about-page-ghost-btn,
  .contact-page-primary-btn,
  .contact-page-ghost-btn,
  .enquiry-submit-wrap .btn.btn-primary {
    width: 100% !important;
  }
}

/* Final nav + CTA direction: visible nav polish, Apple-simple CTA line. */
.nav {
  height: 82px !important;
  background: rgba(255, 253, 248, 0.98) !important;
  border-bottom: 1px solid rgba(17, 17, 17, 0.14) !important;
  box-shadow: 0 1px 0 rgba(184, 137, 63, 0.22) !important;
}

.nav .top-menu {
  padding: 19px 0 0 !important;
}

.nav ul {
  gap: 24px !important;
}

.nav ul li a {
  color: rgba(17, 17, 17, 0.76) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
}

.nav ul li a:after {
  bottom: -8px !important;
  height: 2px !important;
  transform-origin: center !important;
}

.nav ul li:nth-child(1) a:after { background: #b8893f !important; }
.nav ul li:nth-child(2) a:after { background: #1d6f5f !important; }
.nav ul li:nth-child(3) a:after { background: #1d3758 !important; }
.nav ul li:nth-child(4) a:after { background: #9b2f2f !important; }

.nav ul li a:hover,
.nav ul li.active > a {
  color: #111111 !important;
}

.nav ul li.btn-cta a:after {
  content: none !important;
}

.nav ul li.btn-cta a span,
.btn.btn-primary,
.btn.btn-success,
.services-page-primary-btn,
.services-page-ghost-btn,
.about-page-cta-btn,
.about-page-ghost-btn,
.contact-page-primary-btn,
.contact-page-ghost-btn,
.enquiry-submit-wrap .btn.btn-primary,
.footer-action-card {
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 44px !important;
  padding: 0 22px !important;
  border: 1px solid #111111 !important;
  border-radius: 999px !important;
  background: transparent !important;
  color: #111111 !important;
  box-shadow: none !important;
  transform: scale(1) !important;
  transition: transform 0.2s ease !important;
}

.nav ul li.btn-cta a span:hover,
.btn.btn-primary:hover,
.btn.btn-success:hover,
.services-page-primary-btn:hover,
.services-page-ghost-btn:hover,
.about-page-cta-btn:hover,
.about-page-ghost-btn:hover,
.contact-page-primary-btn:hover,
.contact-page-ghost-btn:hover,
.enquiry-submit-wrap .btn.btn-primary:hover,
.footer-action-card:hover {
  background: transparent !important;
  color: #111111 !important;
  border-color: #111111 !important;
  box-shadow: none !important;
  transform: scale(1.045) !important;
}

/* Hero buttons are not the black-outline CTA style. Keep them quiet on the photo. */
#hero .hero-actions .btn.btn-primary,
#hero .hero-actions .btn.btn-primary.btn-outline {
  min-height: 46px !important;
  padding: 0 24px !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  transform: scale(1) !important;
  transition: transform 0.2s ease !important;
}

#hero .hero-actions .btn.btn-primary:not(.btn-outline) {
  border: 1px solid rgba(255, 253, 248, 0.9) !important;
  background: rgba(255, 253, 248, 0.96) !important;
  color: #111111 !important;
}

#hero .hero-actions .btn.btn-primary.btn-outline {
  border: 1px solid rgba(255, 253, 248, 0.72) !important;
  background: rgba(255, 253, 248, 0.12) !important;
  color: #fffdf8 !important;
}

#hero .hero-actions .btn.btn-primary:hover,
#hero .hero-actions .btn.btn-primary.btn-outline:hover {
  transform: scale(1.045) !important;
}

/* Whole-site coverage pass: every page gets the same open, non-boxy system. */
.service-finder-shell,
.service-finder-search-wrap,
.service-card,
.services-page-stat-card,
.services-page-stat-grid article,
.services-page-highlight-card,
.services-page-portfolio-card,
.services-page-process-card,
.services-page-cta-card,
.about-page-story-card,
.about-page-pillar-card,
.about-page-coverage-card,
.about-page-cta-card,
.contact-page-detail-card,
.contact-page-story-card,
.contact-page-cta-card,
.enquiry-intro-card,
.smart-enquiry-form,
.enquiry-side-panel,
.homepage-trust-panel,
.footer-shell,
.footer-action-card,
.contact-page-image-shell {
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  backdrop-filter: none !important;
}

.service-card,
.services-page-stat-card,
.services-page-stat-grid article,
.services-page-highlight-card,
.services-page-portfolio-card,
.services-page-process-card,
.about-page-story-card,
.about-page-pillar-card,
.about-page-coverage-card,
.contact-page-detail-card,
.contact-page-story-card,
.enquiry-intro-card,
.enquiry-side-panel,
.homepage-trust-panel {
  border: 0 !important;
  border-top: 1px solid rgba(17, 17, 17, 0.14) !important;
}

.service-card {
  overflow: visible !important;
}

.service-card-media,
.service-card-media img,
.homepage-about-media,
.homepage-about-media img,
.about-page-image-main,
.about-page-image-main img,
.contact-page-image-shell,
.contact-page-image-shell img {
  border-radius: 0 !important;
  box-shadow: none !important;
}

.service-card-status,
.enquiry-chip,
.service-pill,
.service-card-tag,
.about-page-hero-pills span,
.services-page-hero-pills span,
.contact-page-hero-pills span,
.enquiry-local-row span,
.enquiry-badge-row span,
.footer-chip-grid a {
  border-radius: 999px !important;
  border: 1px solid rgba(17, 17, 17, 0.18) !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #111111 !important;
}

.service-search-field input,
.smart-enquiry-form .form-control {
  border-radius: 0 !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(17, 17, 17, 0.28) !important;
  background: transparent !important;
  box-shadow: none !important;
}

.service-search-field input:focus,
.smart-enquiry-form .form-control:focus {
  border-bottom-color: #111111 !important;
  box-shadow: none !important;
}

.contact-page-detail-card.accent {
  padding: 28px !important;
  background: #111111 !important;
  color: #fffdf8 !important;
}

.contact-page-detail-card.accent h3,
.contact-page-detail-card.accent p,
.contact-page-detail-card.accent a,
.contact-page-detail-card.accent .contact-page-mini-note {
  color: #fffdf8 !important;
}

.footer-chip-grid a {
  min-height: 34px;
  padding: 0 13px;
  display: inline-flex;
  align-items: center;
}

.footer-cta-band,
.footer-bottom-bar,
.services-page-hero-inner,
.about-page-hero-inner,
.contact-page-hero-card {
  border-color: rgba(17, 17, 17, 0.14) !important;
}

@media (max-width: 767px) {
  html,
  body {
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  .services-page-stat-shell,
  .services-page-stat-card,
  .services-page-stat-grid,
  .services-page-stat-grid article,
  .service-finder-shell,
  .service-finder-search-wrap,
  .service-card,
  .services-page-cta-card,
  .contact-page-detail-card,
  .contact-page-story-card,
  .smart-enquiry-form,
  .enquiry-intro-card,
  .enquiry-side-panel,
  .footer-shell,
  .footer-action-card {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .services-page-stat-card strong,
  .services-page-stat-grid article strong {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }

  .services-page-stat-card strong {
    font-size: clamp(26px, 7.4vw, 30px) !important;
    line-height: 1.15 !important;
  }

  .services-page-hero-actions,
  .services-page-cta-actions,
  .contact-page-hero-actions,
  .about-page-hero-actions,
  .prism-hero-actions {
    width: calc(100vw - 48px) !important;
    max-width: 360px !important;
    align-items: stretch !important;
  }

  .service-finder-footer {
    width: 100% !important;
    max-width: 100% !important;
  }

  .services-page-hero-actions,
  .services-page-cta-actions,
  .contact-page-hero-actions,
  .about-page-hero-actions,
  .prism-hero-actions,
  .service-finder-footer {
    box-sizing: border-box !important;
    min-width: 0 !important;
    gap: 12px !important;
  }

  .services-page-hero-actions a,
  .services-page-cta-actions a,
  .contact-page-hero-actions a,
  .about-page-hero-actions a,
  .service-finder-footer .btn,
  .enquiry-submit-wrap .btn.btn-primary {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .service-card,
  .services-page-highlight-card,
  .services-page-portfolio-card,
  .about-page-pillar-card,
  .contact-page-detail-card,
  .enquiry-intro-card,
  .enquiry-side-panel {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

.footer-action-card {
  border-radius: 999px !important;
  min-height: 62px !important;
  padding: 0 28px !important;
}

/* =====================================================================
   PRISM BLACK SYSTEM V2
   Strong final layer after the earlier experiments. This removes the
   washed-out blue/navy remnants, restores readable contrast, and gives
   every public page the same premium black-and-warm-white direction.
   ===================================================================== */
:root {
  --prism-black: #080808;
  --prism-charcoal: #141414;
  --prism-graphite: #222222;
  --prism-paper: #f6f2ea;
  --prism-cream: #fffaf2;
  --prism-line: rgba(8, 8, 8, 0.14);
  --prism-line-dark: rgba(255, 255, 255, 0.16);
  --prism-muted: #5a5a5a;
  --prism-muted-dark: rgba(255, 255, 255, 0.68);
  --prism-warm: #c69a52;
  --prism-blue: #080808;
  --prism-violet: #080808;
  --prism-cyan: #080808;
  --edu-navy: #080808;
  --edu-navy-soft: #222222;
  --edu-gold: #c69a52;
  --edu-ink: #080808;
  --prism-exec-ink: #080808;
  --prism-exec-text: #2c2c2c;
  --prism-exec-muted: #5a5a5a;
  --prism-exec-line: rgba(8, 8, 8, 0.14);
  --prism-exec-line-strong: rgba(8, 8, 8, 0.28);
}

html,
body {
  background: var(--prism-paper) !important;
  color: var(--prism-black) !important;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Helvetica Neue", Arial, sans-serif !important;
  letter-spacing: 0 !important;
}

body *,
button,
input,
select,
textarea {
  font-family: inherit !important;
  letter-spacing: 0 !important;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--prism-black) !important;
  font-family: inherit !important;
  font-weight: 560 !important;
  letter-spacing: 0 !important;
}

p,
li,
label,
input,
textarea,
select {
  color: var(--prism-muted) !important;
}

a {
  color: inherit;
}

#page,
#page-content,
.homepage-about-section,
.homepage-trust-section,
.services-page-highlights,
.services-page-portfolio,
.services-page-assurance,
.contact-page-details,
.contact-page-story,
.contact-page-cta,
.about-page #page-content {
  background: var(--prism-paper) !important;
}

.nav {
  height: 84px !important;
  background: rgba(246, 242, 234, 0.97) !important;
  border-bottom: 1px solid rgba(8, 8, 8, 0.18) !important;
  box-shadow: none !important;
  backdrop-filter: blur(18px);
}

.nav .top-menu {
  padding-top: 19px !important;
}

.nav #logo,
.prism-logo-mark {
  color: var(--prism-black) !important;
  font-weight: 500 !important;
}

.prism-logo-sub {
  color: rgba(8, 8, 8, 0.42) !important;
}

.nav ul {
  gap: 28px !important;
}

.nav ul li a {
  color: rgba(8, 8, 8, 0.72) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  text-transform: none !important;
  text-shadow: none !important;
}

.nav ul li a:after,
.nav ul li:nth-child(1) a:after,
.nav ul li:nth-child(2) a:after,
.nav ul li:nth-child(3) a:after,
.nav ul li:nth-child(4) a:after {
  bottom: -12px !important;
  height: 2px !important;
  background: var(--prism-black) !important;
}

.nav ul li a:hover,
.nav ul li.active > a {
  color: var(--prism-black) !important;
}

.nav ul li.btn-cta a span,
.btn.btn-primary,
.btn.btn-success,
.services-page-primary-btn,
.about-page-cta-btn,
.contact-page-primary-btn,
.enquiry-submit-wrap .btn.btn-primary {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 48px !important;
  padding: 0 25px !important;
  border: 1px solid var(--prism-black) !important;
  border-radius: 999px !important;
  background: var(--prism-black) !important;
  color: #ffffff !important;
  box-shadow: none !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease !important;
}

.services-page-ghost-btn,
.about-page-ghost-btn,
.contact-page-ghost-btn,
.footer-action-card,
.service-card-link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 46px !important;
  padding: 0 24px !important;
  border: 1px solid var(--prism-black) !important;
  border-radius: 999px !important;
  background: transparent !important;
  color: var(--prism-black) !important;
  box-shadow: none !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease !important;
}

.nav ul li.btn-cta a span:hover,
.btn.btn-primary:hover,
.btn.btn-success:hover,
.services-page-primary-btn:hover,
.about-page-cta-btn:hover,
.contact-page-primary-btn:hover,
.enquiry-submit-wrap .btn.btn-primary:hover,
.services-page-ghost-btn:hover,
.about-page-ghost-btn:hover,
.contact-page-ghost-btn:hover,
.footer-action-card:hover,
.service-card-link:hover {
  transform: scale(1.045) !important;
}

.services-page-ghost-btn:hover,
.about-page-ghost-btn:hover,
.contact-page-ghost-btn:hover,
.footer-action-card:hover,
.service-card-link:hover {
  background: var(--prism-black) !important;
  color: #ffffff !important;
}

#hero {
  background: var(--prism-black) !important;
}

#hero .flexslider .slides li:before {
  background:
    linear-gradient(100deg, rgba(0, 0, 0, 0.92) 0%, rgba(0, 0, 0, 0.72) 44%, rgba(0, 0, 0, 0.28) 74%, rgba(0, 0, 0, 0.10) 100%),
    linear-gradient(180deg, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0.62)) !important;
}

#hero .flexslider .slides li:after {
  background: #ffffff !important;
  height: 2px !important;
  width: 58px !important;
  opacity: 0.88 !important;
}

.hero-kicker,
.prism-eyebrow,
.about-page-kicker,
.about-page-section-kicker,
.services-page-kicker,
.services-page-section-kicker,
.contact-page-kicker,
.contact-page-section-kicker,
.homepage-about-kicker,
.enquiry-kicker,
.footer-eyebrow {
  color: inherit !important;
  opacity: 0.7 !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.hero-kicker:before,
.prism-eyebrow:before,
.about-page-kicker:before,
.about-page-section-kicker:before,
.services-page-kicker:before,
.services-page-section-kicker:before,
.contact-page-kicker:before,
.contact-page-section-kicker:before,
.homepage-about-kicker:before,
.enquiry-kicker:before,
.footer-eyebrow:before {
  background: currentColor !important;
  opacity: 0.38 !important;
}

#hero .flexslider .slider-text > .slider-text-inner h1 {
  max-width: 760px !important;
  color: #ffffff !important;
  font-size: 70px !important;
  font-weight: 560 !important;
  line-height: 1.02 !important;
  letter-spacing: 0 !important;
  text-shadow: none !important;
}

#hero .flexslider .slider-text > .slider-text-inner h2 {
  max-width: 660px !important;
  color: rgba(255, 255, 255, 0.84) !important;
  font-size: 22px !important;
  font-weight: 430 !important;
  line-height: 1.55 !important;
}

#hero .hero-actions .btn.btn-primary,
#hero .hero-actions .btn.btn-primary.btn-outline {
  min-height: 52px !important;
  padding: 0 30px !important;
  border-radius: 999px !important;
  box-shadow: none !important;
}

#hero .hero-actions .btn.btn-primary:not(.btn-outline) {
  border: 1px solid #ffffff !important;
  background: #ffffff !important;
  color: var(--prism-black) !important;
}

#hero .hero-actions .btn.btn-primary.btn-outline {
  border: 1px solid rgba(255, 255, 255, 0.82) !important;
  background: rgba(8, 8, 8, 0.35) !important;
  color: #ffffff !important;
}

.home-services {
  padding: 92px 0 !important;
  background: var(--prism-black) !important;
}

.home-services-head {
  max-width: 760px !important;
  margin-bottom: 42px !important;
}

.home-services-head .prism-eyebrow,
.home-services-head h2,
.home-service-card h3,
.home-service-go,
.home-service-icon {
  color: #ffffff !important;
}

.home-services-head h2 {
  margin: 0 0 16px !important;
  font-size: 54px !important;
  line-height: 1.04 !important;
}

.home-services-head p,
.home-service-card p {
  color: var(--prism-muted-dark) !important;
}

.home-services-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 14px !important;
}

.home-service-card {
  min-height: 230px !important;
  padding: 28px !important;
  border: 1px solid rgba(255, 255, 255, 0.14) !important;
  border-radius: 8px !important;
  background: #111111 !important;
  box-shadow: none !important;
  color: #ffffff !important;
  text-decoration: none !important;
  transition: transform 0.2s ease, background 0.2s ease, border-color 0.2s ease !important;
}

.home-service-card:hover {
  transform: translateY(-5px) !important;
  background: #181818 !important;
  border-color: rgba(255, 255, 255, 0.32) !important;
}

.home-service-card h3 {
  font-size: 25px !important;
  line-height: 1.12 !important;
}

.services-page-hero,
.about-page-hero,
.contact-page-hero {
  margin-top: 84px !important;
  padding: 88px 0 78px !important;
  background: var(--prism-black) !important;
  color: #ffffff !important;
}

.services-page-hero-inner,
.about-page-hero-inner,
.contact-page-hero-card {
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.services-page-hero h1,
.about-page-hero h1,
.contact-page-hero h1,
.services-page-cta-copy h2,
.contact-page-cta-copy h2,
.about-page-cta-copy h2 {
  font-size: 62px !important;
  line-height: 1.03 !important;
  letter-spacing: 0 !important;
}

.services-page-hero h1,
.services-page-hero p,
.services-page-kicker,
.about-page-hero h1,
.about-page-hero p,
.about-page-kicker,
.contact-page-hero h1,
.contact-page-hero p,
.contact-page-kicker {
  color: #ffffff !important;
}

.services-page-hero p,
.about-page-hero p,
.contact-page-hero p {
  color: var(--prism-muted-dark) !important;
  font-size: 18px !important;
  line-height: 1.72 !important;
}

.services-page-hero-pills,
.about-page-hero-pills,
.contact-page-hero-pills,
.enquiry-local-row,
.enquiry-badge-row,
.service-popular,
.service-coverage-badges,
.service-card-tags,
.footer-chip-grid {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  overflow: visible !important;
}

.services-page-hero-pills span,
.about-page-hero-pills span,
.contact-page-hero-pills span {
  border: 1px solid rgba(255, 255, 255, 0.22) !important;
  border-radius: 999px !important;
  color: rgba(255, 255, 255, 0.82) !important;
  background: transparent !important;
  padding: 6px 11px !important;
}

.services-page-stat-card,
.services-page-stat-grid article {
  padding: 0 0 24px !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.18) !important;
  background: transparent !important;
}

.services-page-stat-card strong,
.services-page-stat-grid article strong {
  color: #ffffff !important;
}

.services-page-stat-card p,
.services-page-stat-grid article span,
.services-page-stat-label {
  color: var(--prism-muted-dark) !important;
}

.services-page-primary-btn,
.contact-page-primary-btn,
.about-page-cta-btn {
  background: #ffffff !important;
  color: var(--prism-black) !important;
  border-color: #ffffff !important;
}

.services-page-ghost-btn,
.contact-page-ghost-btn,
.about-page-ghost-btn {
  border-color: rgba(255, 255, 255, 0.62) !important;
  color: #ffffff !important;
}

.services-page-ghost-btn.dark,
.contact-page-ghost-btn.dark,
.about-page-ghost-btn.dark {
  border-color: var(--prism-black) !important;
  color: var(--prism-black) !important;
}

.services-page-ghost-btn:hover,
.contact-page-ghost-btn:hover,
.about-page-ghost-btn:hover {
  background: #ffffff !important;
  color: var(--prism-black) !important;
}

.services-page-ghost-btn.dark:hover,
.contact-page-ghost-btn.dark:hover,
.about-page-ghost-btn.dark:hover {
  background: var(--prism-black) !important;
  color: #ffffff !important;
}

.services-page-highlights,
.services-page-portfolio,
.services-page-cta,
.about-page-pillars,
.contact-page-details {
  padding: 86px 0 !important;
}

.services-page-process,
.about-page-coverage,
.homepage-trust-section {
  padding: 92px 0 !important;
  background: var(--prism-black) !important;
  color: #ffffff !important;
}

.services-page-process h2,
.services-page-process h3,
.services-page-process p,
.services-page-process .services-page-section-kicker,
.about-page-coverage h2,
.about-page-coverage h3,
.about-page-coverage h4,
.about-page-coverage p,
.about-page-coverage .about-page-section-kicker,
.homepage-trust-section h2,
.homepage-trust-section h3,
.homepage-trust-section p {
  color: #ffffff !important;
}

.services-page-process p,
.about-page-coverage p,
.homepage-trust-section p {
  color: var(--prism-muted-dark) !important;
}

.services-page-highlight-card,
.services-page-process-card,
.services-page-portfolio-card,
.about-page-pillar-card,
.about-page-story-card,
.contact-page-detail-card,
.contact-page-story-card {
  padding: 26px 0 !important;
  border: 0 !important;
  border-top: 1px solid var(--prism-line) !important;
  background: transparent !important;
  box-shadow: none !important;
}

.services-page-process-card {
  border-color: var(--prism-line-dark) !important;
}

.about-page-coverage-card {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 14px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

.about-page-coverage-group {
  min-height: 178px !important;
  padding: 24px !important;
  border: 1px solid rgba(255, 255, 255, 0.14) !important;
  border-radius: 8px !important;
  background: #111111 !important;
}

.about-page-coverage-group h4 {
  margin-bottom: 12px !important;
  font-size: 22px !important;
}

.services-page-cta-card,
.about-page-cta-card,
.contact-page-cta-card {
  padding: 42px !important;
  border: 0 !important;
  border-radius: 8px !important;
  background: var(--prism-black) !important;
  color: #ffffff !important;
  box-shadow: none !important;
}

.services-page-cta-card h2,
.services-page-cta-card p,
.about-page-cta-card h2,
.about-page-cta-card p,
.contact-page-cta-card h2,
.contact-page-cta-card p,
.services-page-cta-card .services-page-section-kicker,
.about-page-cta-card .about-page-section-kicker,
.contact-page-cta-card .contact-page-section-kicker {
  color: #ffffff !important;
}

.services-page-cta-card p,
.about-page-cta-card p,
.contact-page-cta-card p {
  color: var(--prism-muted-dark) !important;
}

.service-finder-section {
  padding: 92px 0 !important;
  background: var(--prism-paper) !important;
}

.service-finder-shell {
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.service-finder-intro {
  margin-bottom: 36px !important;
  text-align: left !important;
}

.service-finder-intro h2 {
  max-width: 760px !important;
  font-size: 56px !important;
  line-height: 1.04 !important;
  color: var(--prism-black) !important;
}

.service-finder-intro p {
  max-width: 680px !important;
  color: var(--prism-muted) !important;
  font-size: 18px !important;
}

.service-finder-search-wrap {
  display: grid !important;
  grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.25fr) !important;
  gap: 38px !important;
  align-items: start !important;
  margin: 0 0 36px !important;
  padding: 38px !important;
  border: 0 !important;
  border-radius: 8px !important;
  background: var(--prism-black) !important;
  color: #ffffff !important;
  overflow: hidden !important;
}

.service-finder-search-copy h3,
.service-finder-label {
  color: #ffffff !important;
}

.service-finder-search-copy h3 {
  font-size: 34px !important;
  line-height: 1.1 !important;
}

.service-finder-search-copy p {
  color: var(--prism-muted-dark) !important;
}

.service-search-field input {
  width: 100% !important;
  min-width: 0 !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.36) !important;
  color: #ffffff !important;
}

.service-search-field input::placeholder {
  color: rgba(255, 255, 255, 0.42) !important;
}

.service-search-clear {
  color: rgba(255, 255, 255, 0.78) !important;
}

.service-pill,
.service-coverage-badges span {
  padding: 6px 11px !important;
  border: 1px solid rgba(255, 255, 255, 0.18) !important;
  border-radius: 999px !important;
  background: transparent !important;
  color: rgba(255, 255, 255, 0.82) !important;
  font-size: 12px !important;
}

.service-finder-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 18px !important;
  margin: 0 !important;
}

.service-finder-grid > [class*="col-"] {
  float: none !important;
  width: auto !important;
  padding: 0 !important;
}

.service-card {
  display: flex !important;
  flex-direction: column !important;
  min-height: 100% !important;
  padding: 0 !important;
  border: 1px solid rgba(8, 8, 8, 0.16) !important;
  border-radius: 8px !important;
  background: var(--prism-cream) !important;
  box-shadow: none !important;
  overflow: hidden !important;
  transition: transform 0.2s ease, border-color 0.2s ease !important;
}

.service-card:hover {
  transform: translateY(-4px) !important;
  border-color: rgba(8, 8, 8, 0.34) !important;
}

.service-card-media {
  position: relative !important;
  display: block !important;
  height: 178px !important;
  overflow: hidden !important;
}

.service-card-media img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  border-radius: 0 !important;
  filter: saturate(0.92) contrast(1.02) !important;
}

.service-card-status {
  position: absolute !important;
  top: 14px !important;
  left: 14px !important;
  padding: 7px 10px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: var(--prism-black) !important;
  color: #ffffff !important;
  font-size: 11px !important;
}

.service-card-body {
  display: flex !important;
  flex: 1 !important;
  flex-direction: column !important;
  gap: 13px !important;
  padding: 24px !important;
}

.service-card-head {
  display: none !important;
}

.service-card-title {
  margin: 0 !important;
  min-height: 0 !important;
  color: var(--prism-black) !important;
  font-size: 28px !important;
  line-height: 1.08 !important;
}

.service-card-copy {
  margin: 0 !important;
  min-height: 0 !important;
  color: #4b4b4b !important;
  font-size: 15px !important;
  line-height: 1.58 !important;
}

.service-card-tags {
  margin: 2px 0 6px !important;
}

.service-card-tag,
.enquiry-chip,
.enquiry-local-row span,
.enquiry-badge-row span,
.footer-chip-grid a {
  min-height: 0 !important;
  padding: 6px 10px !important;
  border: 1px solid rgba(8, 8, 8, 0.18) !important;
  border-radius: 999px !important;
  background: transparent !important;
  color: var(--prism-black) !important;
  font-size: 12px !important;
  line-height: 1.2 !important;
}

.service-card-actions {
  display: flex !important;
  gap: 10px !important;
  margin-top: auto !important;
}

.service-card-link {
  flex: 1 1 0 !important;
  min-height: 42px !important;
  padding: 0 14px !important;
  font-size: 13px !important;
}

.service-card-link.alt {
  border-color: var(--prism-black) !important;
  background: var(--prism-black) !important;
  color: #ffffff !important;
}

.service-finder-footer {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 24px !important;
  margin-top: 30px !important;
  padding: 28px 0 0 !important;
  border-top: 1px solid var(--prism-line) !important;
}

.service-finder-footer p {
  max-width: 740px !important;
  margin: 0 !important;
}

.contact-page-detail-card.accent,
.enquiry-side-panel {
  padding: 30px !important;
  border: 0 !important;
  border-radius: 8px !important;
  background: var(--prism-black) !important;
  color: #ffffff !important;
}

.contact-page-detail-card.accent h3,
.contact-page-detail-card.accent p,
.contact-page-detail-card.accent a,
.contact-page-detail-card.accent .contact-page-mini-note,
.enquiry-side-panel h3,
.enquiry-side-panel p,
.enquiry-side-panel li {
  color: #ffffff !important;
}

.enquiry-page .header-bg-inner {
  height: 0 !important;
  margin-top: 84px !important;
  background: none !important;
}

.enquiry-page #page-content {
  padding-top: 92px !important;
  background: var(--prism-paper) !important;
}

.enquiry-intro-card {
  padding: 34px !important;
  border: 0 !important;
  border-radius: 8px !important;
  background: var(--prism-black) !important;
}

.enquiry-title {
  color: #ffffff !important;
  font-size: 48px !important;
  line-height: 1.06 !important;
  letter-spacing: 0 !important;
}

.enquiry-copy,
.enquiry-kicker {
  color: var(--prism-muted-dark) !important;
}

.enquiry-intro-card .enquiry-local-row span,
.enquiry-intro-card .enquiry-badge-row span {
  border-color: rgba(255, 255, 255, 0.2) !important;
  color: rgba(255, 255, 255, 0.86) !important;
}

.smart-enquiry-form {
  padding: 32px !important;
  border: 1px solid rgba(8, 8, 8, 0.14) !important;
  border-radius: 8px !important;
  background: var(--prism-cream) !important;
}

.smart-enquiry-form .form-control {
  border-bottom-color: rgba(8, 8, 8, 0.34) !important;
  color: var(--prism-black) !important;
}

#footer {
  padding: 86px 0 34px !important;
  background: var(--prism-black) !important;
  color: #ffffff !important;
}

.footer-shell,
.footer-cta-band,
.footer-bottom-bar {
  border-color: var(--prism-line-dark) !important;
  background: transparent !important;
}

.footer-shell {
  padding: 0 !important;
  border-top: 1px solid var(--prism-line-dark) !important;
}

.footer-top-row {
  padding: 42px 0 !important;
}

.footer-widget h3,
.footer-eyebrow,
#footer .footer-links li a,
.footer-action-card span,
.footer-action-card strong,
.footer-bottom-bar p,
.footer-cta-copy h2 {
  color: #ffffff !important;
}

.footer-shell p,
.footer-cta-copy p {
  color: var(--prism-muted-dark) !important;
}

.footer-chip-grid a {
  border-color: rgba(255, 255, 255, 0.18) !important;
  color: #ffffff !important;
}

.footer-chip-grid a:hover {
  background: #ffffff !important;
  color: var(--prism-black) !important;
}

.footer-socials a,
.call {
  border: 1px solid rgba(255, 255, 255, 0.22) !important;
  border-radius: 999px !important;
  color: #ffffff !important;
  background: transparent !important;
}

.footer-cta-band {
  display: grid !important;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr) !important;
  gap: 34px !important;
  align-items: center !important;
  padding: 34px 0 !important;
  border-top: 1px solid var(--prism-line-dark) !important;
  border-bottom: 1px solid var(--prism-line-dark) !important;
}

.footer-cta-actions {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 14px !important;
  justify-content: flex-end !important;
}

.footer-action-card {
  min-height: 58px !important;
  padding: 0 24px !important;
  border: 1px solid rgba(255, 255, 255, 0.34) !important;
  border-radius: 999px !important;
  background: transparent !important;
  color: #ffffff !important;
}

.footer-action-card:hover {
  background: #ffffff !important;
  color: var(--prism-black) !important;
}

.footer-action-card:hover span,
.footer-action-card:hover strong {
  color: var(--prism-black) !important;
}

#offcanvas {
  background: var(--prism-black) !important;
}

#offcanvas a,
#offcanvas ul li a {
  color: #ffffff !important;
}

#offcanvas ul li.btn-cta a span {
  background: #ffffff !important;
  color: var(--prism-black) !important;
}

@media screen and (max-width: 1199px) {
  .service-finder-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media screen and (max-width: 992px) {
  #hero .flexslider .slider-text > .slider-text-inner h1,
  .services-page-hero h1,
  .about-page-hero h1,
  .contact-page-hero h1 {
    font-size: 52px !important;
  }

  .home-services-grid,
  .about-page-coverage-card {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .service-finder-search-wrap,
  .footer-cta-band {
    grid-template-columns: 1fr !important;
  }

  .footer-cta-actions {
    justify-content: flex-start !important;
  }
}

@media screen and (max-width: 767px) {
  .nav {
    height: 72px !important;
  }

  .services-page-hero,
  .about-page-hero,
  .contact-page-hero {
    margin-top: 72px !important;
    padding: 54px 0 !important;
  }

  #hero .flexslider .slider-text > .slider-text-inner h1,
  .services-page-hero h1,
  .about-page-hero h1,
  .contact-page-hero h1,
  .home-services-head h2,
  .service-finder-intro h2,
  .enquiry-title {
    width: 100% !important;
    max-width: 100% !important;
    font-size: 38px !important;
    line-height: 1.08 !important;
    letter-spacing: 0 !important;
  }

  #hero .flexslider .slider-text > .slider-text-inner h2,
  .services-page-hero p,
  .about-page-hero p,
  .contact-page-hero p,
  .service-finder-intro p {
    width: 100% !important;
    max-width: 100% !important;
    font-size: 16px !important;
  }

  .home-services,
  .service-finder-section,
  .services-page-highlights,
  .services-page-portfolio,
  .services-page-cta,
  .services-page-process,
  .about-page-coverage,
  .homepage-trust-section,
  .contact-page-details,
  #footer {
    padding: 58px 0 !important;
  }

  .home-services-grid,
  .about-page-coverage-card,
  .service-finder-grid {
    grid-template-columns: 1fr !important;
  }

  .home-service-card {
    min-height: 0 !important;
  }

  .service-finder-search-wrap,
  .smart-enquiry-form,
  .enquiry-intro-card,
  .services-page-cta-card,
  .about-page-cta-card,
  .contact-page-cta-card {
    padding: 24px !important;
  }

  .service-card-media {
    height: 190px !important;
  }

  .service-card-actions,
  .service-finder-footer,
  .footer-cta-actions {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .service-card-link,
  .service-finder-footer .btn,
  .footer-action-card,
  .services-page-primary-btn,
  .services-page-ghost-btn,
  .about-page-cta-btn,
  .about-page-ghost-btn,
  .contact-page-primary-btn,
  .contact-page-ghost-btn,
  .enquiry-submit-wrap .btn.btn-primary {
    width: 100% !important;
    max-width: 100% !important;
  }

  .footer-cta-band {
    gap: 22px !important;
  }

  .enquiry-page .header-bg-inner {
    margin-top: 72px !important;
  }

  .enquiry-page #page-content {
    padding-top: 54px !important;
  }
}

/* Final phone hero measure: parent columns in the legacy template can stay wide,
   so use viewport-bound text measures for the visible mobile surface. */
@media screen and (max-width: 767px) {
  .services-page-hero-row,
  .contact-page-hero-row,
  .about-page-story-row,
  .enquiry-main-row {
    display: block !important;
  }

  #hero .flexslider .slider-text > .slider-text-inner h1,
  .home-services-head h2,
  .services-page-hero h1,
  .about-page-hero h1,
  .contact-page-hero h1,
  .service-finder-intro h2,
  .enquiry-title {
    width: calc(100vw - 48px) !important;
    max-width: 320px !important;
    font-size: 34px !important;
    line-height: 1.12 !important;
  }

  #hero .flexslider .slider-text > .slider-text-inner h2,
  .home-services-head p,
  .services-page-hero p,
  .about-page-hero p,
  .contact-page-hero p,
  .service-finder-intro p,
  .enquiry-copy {
    width: calc(100vw - 48px) !important;
    max-width: 328px !important;
  }

  .services-page-hero-pills,
  .about-page-hero-pills,
  .contact-page-hero-pills,
  .services-page-hero-actions,
  .about-page-hero-actions,
  .contact-page-hero-actions,
  .services-page-stat-shell {
    width: calc(100vw - 48px) !important;
    max-width: 342px !important;
  }

  .services-page-hero-pills span,
  .about-page-hero-pills span,
  .contact-page-hero-pills span {
    max-width: 100% !important;
    white-space: normal !important;
  }
}

/* V2 tightening after render QA */
#hero .hero-actions a.btn.btn-primary.btn-outline,
#hero .hero-actions a.btn.btn-primary.btn-outline.btn-lg {
  border-color: rgba(255, 255, 255, 0.88) !important;
  background: rgba(0, 0, 0, 0.52) !important;
  color: #ffffff !important;
}

.service-finder-grid:before,
.service-finder-grid:after {
  content: none !important;
  display: none !important;
}

.service-card-actions {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  gap: 10px !important;
}

.service-card-link {
  width: 100% !important;
  white-space: nowrap !important;
  overflow: visible !important;
  border-radius: 999px !important;
}

.service-card .service-card-media {
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 0 auto !important;
}

.service-card-actions .service-card-link,
.service-card-actions .service-card-link.alt {
  border-radius: 999px !important;
}

.about-page-coverage {
  overflow: visible !important;
  padding-left: 32px !important;
  padding-right: 32px !important;
}

.about-page-coverage-row {
  align-items: stretch !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.about-page-coverage-row > [class*="col-"] {
  padding-left: 12px !important;
  padding-right: 12px !important;
}

.about-page-coverage-copy h2 {
  max-width: 460px !important;
  font-size: 48px !important;
  line-height: 1.08 !important;
}

.about-page-coverage-copy p {
  max-width: 450px !important;
}

.enquiry-side-panel .enquiry-badge-row span {
  border-color: rgba(255, 255, 255, 0.22) !important;
  color: rgba(255, 255, 255, 0.86) !important;
}

@media screen and (max-width: 767px) {
  .service-card-actions {
    grid-template-columns: 1fr !important;
  }

  .about-page-coverage-copy h2 {
    max-width: 100% !important;
    font-size: 38px !important;
  }
}

/* Mobile containment: stop legacy desktop measures from overflowing phone screens. */
@media screen and (max-width: 767px) {
  html,
  body,
  #page {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  .nav .container,
  #hero .container,
  .home-services .container,
  .service-finder-section > .container,
  .services-page-hero .container,
  .services-page-highlights .container,
  .services-page-process .container,
  .services-page-portfolio .container,
  .services-page-cta .container,
  .about-page-hero .container,
  .about-page #page-content > .container,
  .contact-page-hero .container,
  .contact-page-details .container,
  .contact-page-story .container,
  .contact-page-cta .container,
  .enquiry-page #page-content > .container,
  #footer .container {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
  }

  .row,
  .services-page-hero-row,
  .contact-page-hero-row,
  .about-page-story-row,
  .about-page-coverage-row,
  .enquiry-main-row {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .row > [class*="col-"],
  .services-page-hero-row > [class*="col-"],
  .contact-page-hero-row > [class*="col-"],
  .about-page-story-row > [class*="col-"],
  .about-page-coverage-row > [class*="col-"],
  .enquiry-main-row > [class*="col-"] {
    box-sizing: border-box !important;
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  #hero .flexslider .slider-text > .slider-text-inner,
  .services-page-hero-inner,
  .about-page-hero-inner,
  .contact-page-hero-card,
  .home-services-head,
  .service-finder-intro,
  .service-finder-search-wrap,
  .enquiry-intro-card,
  .smart-enquiry-form,
  .enquiry-side-panel {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  #hero .flexslider .slider-text > .slider-text-inner h1,
  #hero .flexslider .slider-text > .slider-text-inner h2,
  .home-services-head h2,
  .home-services-head p,
  .services-page-hero h1,
  .services-page-hero p,
  .about-page-hero h1,
  .about-page-hero p,
  .contact-page-hero h1,
  .contact-page-hero p,
  .service-finder-intro h2,
  .service-finder-intro p,
  .enquiry-title,
  .enquiry-copy {
    box-sizing: border-box !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    white-space: normal !important;
    overflow: visible !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
  }

  #hero .flexslider .slider-text > .slider-text-inner h1,
  .home-services-head h2,
  .services-page-hero h1,
  .about-page-hero h1,
  .contact-page-hero h1,
  .service-finder-intro h2,
  .enquiry-title {
    font-size: 36px !important;
    line-height: 1.12 !important;
  }

  .services-page-hero-pills,
  .about-page-hero-pills,
  .contact-page-hero-pills,
  .enquiry-local-row,
  .enquiry-badge-row,
  .service-popular,
  .service-coverage-badges {
    width: 100% !important;
    max-width: 100% !important;
  }

  #hero .hero-actions,
  .services-page-hero-actions,
  .about-page-hero-actions,
  .contact-page-hero-actions {
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* Absolute final mobile override: keep hero text and chips inside the phone viewport. */
@media screen and (max-width: 767px) {
  .services-page-hero-row,
  .contact-page-hero-row,
  .about-page-story-row,
  .enquiry-main-row {
    display: block !important;
  }

  #hero .flexslider .slider-text > .slider-text-inner h1,
  .home-services-head h2,
  .services-page-hero h1,
  .about-page-hero h1,
  .contact-page-hero h1,
  .service-finder-intro h2,
  .enquiry-title {
    box-sizing: border-box !important;
    width: calc(100vw - 56px) !important;
    max-width: 312px !important;
    min-width: 0 !important;
    font-size: 34px !important;
    line-height: 1.12 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  #hero .flexslider .slider-text > .slider-text-inner h2,
  .home-services-head p,
  .services-page-hero p,
  .about-page-hero p,
  .contact-page-hero p,
  .service-finder-intro p,
  .enquiry-copy {
    box-sizing: border-box !important;
    width: calc(100vw - 56px) !important;
    max-width: 322px !important;
    min-width: 0 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  .services-page-hero-pills,
  .about-page-hero-pills,
  .contact-page-hero-pills,
  .services-page-hero-actions,
  .about-page-hero-actions,
  .contact-page-hero-actions,
  .services-page-stat-shell {
    box-sizing: border-box !important;
    width: calc(100vw - 56px) !important;
    max-width: 322px !important;
    min-width: 0 !important;
  }

  .home-services-grid {
    box-sizing: border-box !important;
    width: calc(100vw - 56px) !important;
    max-width: 322px !important;
    min-width: 0 !important;
  }

  .home-service-card {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}

#footer .footer-cta-copy strong {
  color: #ffffff !important;
  font-size: 24px !important;
  line-height: 1.2 !important;
}

.contact-page-image-note {
  background: var(--prism-black) !important;
  color: #ffffff !important;
  border-radius: 999px !important;
  box-shadow: none !important;
}

.contact-page-image-note h3,
.contact-page-image-note p,
.contact-page-image-note span,
.contact-page-image-note strong {
  color: #ffffff !important;
}

/* =====================================================================
   PRISM V3 refinements
   - No bubble chips anywhere.
   - Enquiry intro/side panels become white with dark borders.
   - Form becomes a charcoal premium intake surface.
   - Footer becomes smaller, centered, and more delicate.
   - Service finder moves visually higher by compressing the generic band.
   ===================================================================== */

/* No more bubble pills: turn chips into small editorial points/labels. */
.services-page-hero-pills,
.about-page-hero-pills,
.contact-page-hero-pills,
.enquiry-local-row,
.enquiry-badge-row,
.service-popular,
.service-coverage-badges,
.service-card-tags,
.footer-chip-grid {
  gap: 10px 18px !important;
}

.services-page-hero-pills span,
.about-page-hero-pills span,
.contact-page-hero-pills span,
.enquiry-local-row span,
.enquiry-badge-row span,
.enquiry-chip,
.service-pill,
.service-card-tag,
.service-coverage-badges span,
.footer-chip-grid a {
  position: relative !important;
  min-height: 0 !important;
  padding: 0 0 0 14px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: currentColor !important;
  font-size: 12px !important;
  font-weight: 560 !important;
  line-height: 1.55 !important;
  text-decoration: none !important;
  text-transform: none !important;
}

.services-page-hero-pills span:before,
.about-page-hero-pills span:before,
.contact-page-hero-pills span:before,
.enquiry-local-row span:before,
.enquiry-badge-row span:before,
.enquiry-chip:before,
.service-pill:before,
.service-card-tag:before,
.service-coverage-badges span:before,
.footer-chip-grid a:before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  top: 0.7em !important;
  width: 5px !important;
  height: 1px !important;
  background: currentColor !important;
  opacity: 0.55 !important;
}

.services-page-hero-pills span,
.about-page-hero-pills span,
.contact-page-hero-pills span,
.services-page-hero-pills span:before,
.about-page-hero-pills span:before,
.contact-page-hero-pills span:before {
  color: rgba(255, 255, 255, 0.82) !important;
}

.service-card-tag,
.service-pill,
.service-coverage-badges span {
  color: rgba(255, 255, 255, 0.78) !important;
}

.service-card .service-card-tag {
  color: #171717 !important;
}

.footer-chip-grid a {
  color: rgba(255, 255, 255, 0.82) !important;
}

.service-card-status {
  border-radius: 0 !important;
  border: 1px solid #080808 !important;
  background: #080808 !important;
  color: #ffffff !important;
  letter-spacing: 0 !important;
}

/* Enquiry: white intro/guide panels, dark form surface. */
.enquiry-page #page-content {
  padding-top: 72px !important;
}

.enquiry-main-row {
  align-items: stretch !important;
}

.enquiry-intro-card,
.enquiry-side-panel {
  min-height: 100% !important;
  padding: 34px !important;
  border: 1px solid rgba(8, 8, 8, 0.46) !important;
  border-radius: 8px !important;
  background: #fffaf2 !important;
  color: #080808 !important;
  box-shadow: none !important;
}

.enquiry-title,
.enquiry-side-copy h3,
.enquiry-intro-card .enquiry-kicker,
.enquiry-side-panel .enquiry-kicker {
  color: #080808 !important;
}

.enquiry-copy,
.enquiry-side-copy p,
.enquiry-side-panel li {
  color: #333333 !important;
}

.enquiry-intro-card .enquiry-local-row span,
.enquiry-intro-card .enquiry-badge-row span,
.enquiry-side-panel .enquiry-badge-row span {
  color: #080808 !important;
  border: 0 !important;
}

.enquiry-steps li {
  border-top: 1px solid rgba(8, 8, 8, 0.16) !important;
}

.smart-enquiry-form {
  margin-top: 22px !important;
  padding: 34px !important;
  border: 1px solid rgba(255, 255, 255, 0.16) !important;
  border-radius: 8px !important;
  background: #191919 !important;
  color: #ffffff !important;
  box-shadow: none !important;
}

.smart-enquiry-form label {
  color: rgba(255, 255, 255, 0.68) !important;
}

.smart-enquiry-form .form-control,
.smart-enquiry-form select.form-control,
.smart-enquiry-form textarea.form-control {
  border-bottom-color: rgba(255, 255, 255, 0.42) !important;
  background: transparent !important;
  color: #ffffff !important;
}

.smart-enquiry-form .form-control::placeholder {
  color: rgba(255, 255, 255, 0.42) !important;
}

.smart-enquiry-form select.form-control option {
  color: #080808 !important;
}

.enquiry-submit-wrap .btn.btn-primary {
  border-color: #ffffff !important;
  background: #ffffff !important;
  color: #080808 !important;
}

/* Services: make the finder feel primary and reduce the dry spacer band. */
.services-page-hero {
  padding-bottom: 48px !important;
}

.services-page-highlights {
  padding: 34px 0 24px !important;
}

.services-page-highlight-card {
  padding: 18px 0 !important;
  text-align: center !important;
  border-top: 1px solid rgba(8, 8, 8, 0.12) !important;
}

.services-page-highlight-card p {
  max-width: 360px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.service-finder-section {
  padding-top: 42px !important;
}

.service-finder-intro {
  display: grid !important;
  grid-template-columns: minmax(0, 0.75fr) minmax(0, 1fr) !important;
  gap: 34px !important;
  align-items: end !important;
  margin-bottom: 26px !important;
}

.service-finder-intro h2,
.service-finder-intro p {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.service-finder-search-wrap {
  border-radius: 6px !important;
}

.service-card {
  border-radius: 6px !important;
  background: #fffaf2 !important;
}

.service-card-actions .service-card-link,
.service-card-actions .service-card-link.alt {
  border-radius: 999px !important;
}

/* About coverage: replace "bubble/card" feel with deliberate learning points. */
.about-page-coverage-card {
  gap: 0 !important;
  border-top: 1px solid rgba(255, 255, 255, 0.2) !important;
}

.about-page-coverage-group {
  min-height: 0 !important;
  padding: 24px 0 !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.18) !important;
  border-radius: 0 !important;
  background: transparent !important;
}

.about-page-coverage-group h4 {
  display: grid !important;
  grid-template-columns: 26px 1fr !important;
  gap: 12px !important;
  align-items: baseline !important;
}

.about-page-coverage-group h4:before {
  content: "0" counter(coverage-point) !important;
  counter-increment: coverage-point !important;
  color: rgba(255, 255, 255, 0.48) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
}

.about-page-coverage-card {
  counter-reset: coverage-point !important;
}

/* Home service cards: make them feel like learning routes, not generic boxes. */
.home-service-card {
  border-radius: 6px !important;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.02)) !important;
}

.home-service-go {
  display: inline-flex !important;
  width: fit-content !important;
  padding-bottom: 4px !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.42) !important;
}

/* Footer: centered, smaller, delicate. */
#footer {
  padding: 52px 0 26px !important;
}

.footer-shell {
  max-width: 1120px !important;
  margin: 0 auto !important;
}

.footer-top-row {
  display: grid !important;
  grid-template-columns: 1fr 0.85fr 1fr !important;
  gap: 48px !important;
  align-items: start !important;
  padding: 30px 0 42px !important;
}

.footer-top-row:before,
.footer-top-row:after {
  content: none !important;
}

.footer-top-row > [class*="col-"] {
  float: none !important;
  width: auto !important;
  padding: 0 !important;
}

.footer-widget {
  text-align: center !important;
}

.footer-eyebrow {
  justify-content: center !important;
  margin-bottom: 18px !important;
}

.footer-eyebrow:before {
  width: 24px !important;
}

.footer-widget h3 {
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: 280px !important;
  font-size: 13px !important;
  line-height: 1.25 !important;
}

.footer-shell p {
  max-width: 320px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  font-size: 14px !important;
  line-height: 1.65 !important;
}

#footer .footer-links {
  display: grid !important;
  gap: 14px !important;
}

#footer .footer-links li a {
  font-size: 14px !important;
  font-weight: 520 !important;
}

.footer-chip-grid {
  justify-content: center !important;
}

.footer-socials {
  justify-content: center !important;
}

.footer-socials a,
.call {
  width: 40px !important;
  height: 40px !important;
}

.footer-cta-band {
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr) !important;
  padding: 26px 0 !important;
}

.footer-cta-copy strong {
  font-size: 21px !important;
}

.footer-action-card {
  min-height: 46px !important;
  padding: 0 18px !important;
  border-color: rgba(255, 255, 255, 0.24) !important;
  font-size: 12px !important;
}

.footer-action-card span {
  font-size: 10px !important;
}

.footer-action-card strong {
  font-size: 13px !important;
}

.footer-bottom-bar {
  padding-top: 20px !important;
}

@media screen and (max-width: 992px) {
  .service-finder-intro,
  .footer-top-row {
    grid-template-columns: 1fr !important;
    text-align: center !important;
  }

  .footer-cta-band {
    grid-template-columns: 1fr !important;
    text-align: center !important;
  }

  .footer-cta-actions {
    justify-content: center !important;
  }
}

@media screen and (max-width: 767px) {
  .enquiry-intro-card,
  .enquiry-side-panel,
  .smart-enquiry-form {
    padding: 24px !important;
  }

  .service-finder-intro {
    display: block !important;
    text-align: left !important;
  }

  .services-page-highlights {
    padding: 24px 0 18px !important;
  }

  .footer-top-row {
    gap: 30px !important;
  }

  .footer-action-card {
    min-height: 44px !important;
  }
}

/* =====================================================================
   PRISM V4 final polish
   - Get useful actions higher on the page.
   - Replace bubble chips with quieter learning points.
   - Make cards feel like editorial routes, not boxed tiles.
   ===================================================================== */

[hidden],
.enquiry-selected[hidden] {
  display: none !important;
}

.enquiry-page #page-content {
  padding: 34px 0 76px !important;
}

.enquiry-page #page-content > .container > .row:first-child {
  display: none !important;
}

.enquiry-main-row {
  display: grid !important;
  grid-template-columns: minmax(0, 1.08fr) minmax(340px, 0.72fr) !important;
  gap: 28px !important;
  align-items: start !important;
  margin: 0 !important;
}

.enquiry-main-row > [class*="col-"] {
  float: none !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.enquiry-intro-card,
.enquiry-side-panel {
  min-height: 0 !important;
  padding: 28px 30px !important;
  border-color: rgba(8, 8, 8, 0.7) !important;
  border-radius: 6px !important;
  background: #fffaf2 !important;
}

.enquiry-title {
  max-width: 680px !important;
  font-size: clamp(36px, 4.2vw, 54px) !important;
  line-height: 1.03 !important;
  letter-spacing: 0 !important;
}

.enquiry-copy {
  max-width: 620px !important;
  margin-bottom: 0 !important;
  font-size: 16px !important;
  line-height: 1.7 !important;
}

.enquiry-local-row {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 12px !important;
  margin-top: 20px !important;
  padding-top: 16px !important;
  border-top: 1px solid rgba(8, 8, 8, 0.16) !important;
}

.enquiry-local-row span,
.enquiry-badge-row span {
  padding-left: 0 !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  line-height: 1.45 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
}

.enquiry-local-row span:before,
.enquiry-badge-row span:before {
  content: none !important;
}

.enquiry-side-copy h3 {
  font-size: 22px !important;
  line-height: 1.16 !important;
}

.enquiry-steps {
  margin-top: 22px !important;
}

.enquiry-steps li {
  padding: 14px 0 !important;
  font-size: 15px !important;
  line-height: 1.55 !important;
}

.enquiry-badge-row {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 8px !important;
  margin-top: 22px !important;
}

.smart-enquiry-form {
  margin-top: 20px !important;
  padding: 30px !important;
  border-color: rgba(8, 8, 8, 0.88) !important;
  border-radius: 6px !important;
  background: #141414 !important;
}

.smart-enquiry-form .row {
  margin-left: -10px !important;
  margin-right: -10px !important;
}

.smart-enquiry-form .row > [class*="col-"] {
  padding-left: 10px !important;
  padding-right: 10px !important;
}

.smart-enquiry-form label {
  letter-spacing: 0.1em !important;
}

.smart-enquiry-form .form-control,
.smart-enquiry-form select.form-control,
.smart-enquiry-form textarea.form-control {
  min-height: 44px !important;
  border-bottom-color: rgba(255, 255, 255, 0.36) !important;
}

.enquiry-submit-wrap .btn.btn-primary {
  width: auto !important;
  min-width: 220px !important;
  border-radius: 999px !important;
  transition: transform 0.22s ease, background 0.22s ease, color 0.22s ease !important;
}

.enquiry-submit-wrap .btn.btn-primary:hover {
  transform: scale(1.035) !important;
}

.services-page-hero {
  padding: 58px 0 28px !important;
}

.services-page-hero h1 {
  max-width: 760px !important;
  font-size: clamp(46px, 5vw, 68px) !important;
  line-height: 1.02 !important;
  letter-spacing: 0 !important;
}

.services-page-hero p {
  max-width: 720px !important;
}

.services-page-hero-pills {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, max-content)) !important;
  gap: 8px 24px !important;
}

.services-page-hero-pills span:before,
.about-page-hero-pills span:before,
.contact-page-hero-pills span:before,
.service-pill:before,
.service-card-tag:before,
.service-coverage-badges span:before,
.footer-chip-grid a:before {
  width: 4px !important;
  height: 4px !important;
  top: 0.72em !important;
  border-radius: 50% !important;
}

.service-finder-section {
  padding: 0 0 72px !important;
  background: #080808 !important;
  color: #ffffff !important;
}

.service-finder-section > .container {
  max-width: 1180px !important;
}

.service-finder-shell {
  padding: 42px 0 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #ffffff !important;
}

.service-finder-intro {
  grid-template-columns: minmax(0, 0.7fr) minmax(0, 1fr) !important;
  margin-bottom: 26px !important;
  color: #ffffff !important;
}

.service-finder-intro h2 {
  color: #ffffff !important;
  font-size: clamp(32px, 4vw, 50px) !important;
  line-height: 1.05 !important;
  letter-spacing: 0 !important;
}

.service-finder-intro p {
  color: rgba(255, 255, 255, 0.72) !important;
  font-size: 17px !important;
}

.service-finder-search-wrap {
  padding: 32px !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  border-radius: 6px !important;
  background: #101010 !important;
  box-shadow: none !important;
}

.service-finder-search-copy h3,
.service-finder-label {
  color: #ffffff !important;
}

.service-finder-search-copy p {
  color: rgba(255, 255, 255, 0.7) !important;
}

.service-search-field input {
  border-color: rgba(255, 255, 255, 0.36) !important;
  color: #ffffff !important;
}

.service-search-field input::placeholder {
  color: rgba(255, 255, 255, 0.48) !important;
}

.service-search-clear {
  color: rgba(255, 255, 255, 0.72) !important;
}

.service-popular,
.service-coverage-badges {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 10px 18px !important;
}

.service-pill,
.service-coverage-badges span {
  text-align: left !important;
  cursor: pointer !important;
}

.service-finder-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 0 30px !important;
  margin: 44px 0 0 !important;
}

.service-finder-grid:before,
.service-finder-grid:after {
  content: none !important;
}

.service-finder-grid > [class*="col-"] {
  float: none !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.service-card {
  min-height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  border: 1px solid rgba(255, 255, 255, 0.42) !important;
  border-radius: 0 !important;
  background: rgba(255, 255, 255, 0.018) !important;
  box-shadow: none !important;
  color: #ffffff !important;
  overflow: hidden !important;
}

.service-card-media {
  height: 150px !important;
  margin: 0 0 22px !important;
  border-radius: 0 !important;
  background: #151515 !important;
}

.service-card-media img {
  border-radius: 0 !important;
  filter: saturate(0.9) contrast(1.04) !important;
}

.service-card-body {
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
  padding: 0 30px 32px !important;
  background: transparent !important;
}

.service-card-title {
  color: #ffffff !important;
  font-size: 25px !important;
  line-height: 1.12 !important;
}

.service-card-copy {
  color: rgba(255, 255, 255, 0.72) !important;
}

.service-finder-section .service-card .service-card-tag {
  color: rgba(255, 255, 255, 0.72) !important;
}

.service-card-actions {
  margin-top: auto !important;
}

.service-card-actions .service-card-link {
  border-color: rgba(255, 255, 255, 0.7) !important;
  color: #ffffff !important;
}

.service-card-actions .service-card-link.alt {
  border-color: #ffffff !important;
  background: #ffffff !important;
  color: #080808 !important;
}

.service-card-actions .service-card-link:hover,
.service-card-actions .service-card-link.alt:hover {
  transform: scale(1.035) !important;
}

.service-finder-footer {
  max-width: none !important;
  margin-top: 26px !important;
  padding: 30px 0 0 !important;
  border-top: 1px solid rgba(255, 255, 255, 0.18) !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 28px !important;
  align-items: center !important;
}

.service-finder-footer p {
  max-width: 760px !important;
  margin: 0 !important;
  color: rgba(255, 255, 255, 0.72) !important;
}

.service-finder-footer .btn,
.service-finder-footer .btn.btn-primary {
  min-height: 50px !important;
  padding: 0 28px !important;
  border: 1px solid #ffffff !important;
  border-radius: 999px !important;
  background: #ffffff !important;
  color: #080808 !important;
  box-shadow: none !important;
}

.service-finder-footer .btn:hover,
.service-finder-footer .btn.btn-primary:hover {
  transform: scale(1.035) !important;
  background: transparent !important;
  color: #ffffff !important;
}

.services-page-process {
  padding: 78px 0 !important;
  background: #080808 !important;
  color: #ffffff !important;
}

.services-page-process .services-page-section-head {
  max-width: 760px !important;
  margin: 0 0 42px !important;
  text-align: left !important;
}

.services-page-process .services-page-section-kicker {
  justify-content: flex-start !important;
  color: rgba(255, 255, 255, 0.58) !important;
}

.services-page-process .services-page-section-head h2 {
  max-width: 760px !important;
  margin: 0 !important;
  color: #ffffff !important;
  font-size: clamp(36px, 4.5vw, 58px) !important;
  font-weight: 560 !important;
  line-height: 1.04 !important;
  letter-spacing: 0 !important;
  text-align: left !important;
}

.services-page-process .row {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 34px !important;
  margin: 0 !important;
}

.services-page-process .row > [class*="col-"] {
  float: none !important;
  width: auto !important;
  padding: 0 !important;
}

.services-page-process-card {
  padding: 26px 0 0 !important;
  border: 0 !important;
  border-top: 1px solid rgba(255, 255, 255, 0.28) !important;
  background: transparent !important;
  box-shadow: none !important;
}

.services-page-process-step {
  display: block !important;
  width: auto !important;
  height: auto !important;
  margin: 0 0 34px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: rgba(255, 255, 255, 0.46) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.16em !important;
  line-height: 1 !important;
}

.services-page-process-card h3 {
  max-width: 320px !important;
  margin: 0 0 14px !important;
  color: #ffffff !important;
  font-size: 28px !important;
  font-weight: 560 !important;
  line-height: 1.08 !important;
  letter-spacing: 0 !important;
}

.services-page-process-card p {
  max-width: 340px !important;
  margin: 0 !important;
  color: rgba(255, 255, 255, 0.68) !important;
  font-size: 15px !important;
  line-height: 1.7 !important;
}

@media screen and (max-width: 992px) {
  .service-finder-footer,
  .services-page-process .row {
    grid-template-columns: 1fr !important;
  }
}

.services-page-highlights {
  padding: 58px 0 44px !important;
  background: #f7f2e9 !important;
}

.services-page-highlight-card,
.services-page-process-card,
.services-page-portfolio-card,
.home-service-card {
  border-right: 0 !important;
  border-left: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

#footer {
  padding: 44px 0 22px !important;
}

.footer-top-row {
  justify-items: center !important;
  gap: 36px !important;
  padding: 26px 0 34px !important;
}

.footer-chip-grid {
  display: grid !important;
  grid-template-columns: 1fr !important;
  justify-items: center !important;
  gap: 9px !important;
}

.footer-chip-grid a {
  font-size: 12px !important;
}

.footer-cta-band {
  align-items: center !important;
  padding: 22px 0 !important;
}

.footer-cta-actions {
  gap: 14px !important;
}

.footer-action-card {
  min-height: 42px !important;
  padding: 0 16px !important;
  border-radius: 999px !important;
  border-width: 1px !important;
}

.call {
  right: 18px !important;
  bottom: 18px !important;
  width: 46px !important;
  height: 46px !important;
  padding: 7px !important;
  border: 1px solid rgba(255, 255, 255, 0.28) !important;
  border-radius: 50% !important;
  background: #050505 !important;
  box-shadow: none !important;
}

.call img {
  width: 100% !important;
  height: 100% !important;
  border-radius: 50% !important;
  opacity: 0.92 !important;
}

@media screen and (max-width: 992px) {
  .enquiry-main-row,
  .service-finder-grid {
    grid-template-columns: 1fr !important;
  }

  .service-popular,
  .service-coverage-badges {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .services-page-hero-pills {
    grid-template-columns: 1fr !important;
  }
}

@media screen and (max-width: 767px) {
  .enquiry-page #page-content {
    padding-top: 22px !important;
  }

  .enquiry-intro-card,
  .enquiry-side-panel,
  .smart-enquiry-form,
  .service-finder-search-wrap {
    padding: 22px !important;
  }

  .enquiry-title {
    font-size: 32px !important;
  }

  .enquiry-local-row,
  .service-popular,
  .service-coverage-badges {
    grid-template-columns: 1fr !important;
  }

  .services-page-hero {
    padding: 42px 0 24px !important;
  }

  .services-page-hero h1 {
    font-size: 34px !important;
  }

  .service-finder-shell {
    padding-top: 30px !important;
  }

  .service-card-media {
    height: 138px !important;
  }

  .footer-top-row {
    gap: 28px !important;
  }

  .footer-cta-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }
}

/* =====================================================================
   PRISM V5 black-label pass
   Inspired by modern open-source split CTA/directory layouts, rebuilt here
   as plain CSS for this static site.
   ===================================================================== */

.enquiry-main-row > [class*="col-"]:first-child {
  grid-column: 1 !important;
  grid-row: 1 !important;
}

.enquiry-main-row > [class*="col-"]:last-child {
  grid-column: 2 !important;
  grid-row: 1 !important;
}

.home-page #hero {
  background: #080808 !important;
}

#hero .flexslider .slides li:before {
  background:
    linear-gradient(90deg, rgba(0, 0, 0, 0.88), rgba(0, 0, 0, 0.58) 48%, rgba(0, 0, 0, 0.24)),
    linear-gradient(180deg, rgba(0, 0, 0, 0.22), rgba(0, 0, 0, 0.72)) !important;
}

#hero .flexslider .slides li:after {
  content: "" !important;
  position: absolute !important;
  inset: auto 7vw 54px 7vw !important;
  width: auto !important;
  height: 1px !important;
  background: rgba(255, 255, 255, 0.22) !important;
  opacity: 1 !important;
}

#hero .flexslider .slider-text > .slider-text-inner {
  justify-content: center !important;
  align-items: flex-start !important;
  text-align: left !important;
}

#hero .flexslider .slider-text > .slider-text-inner h1 {
  max-width: 720px !important;
  color: #ffffff !important;
  font-size: clamp(48px, 6vw, 82px) !important;
  font-weight: 560 !important;
  line-height: 0.98 !important;
}

#hero .flexslider .slider-text > .slider-text-inner h2 {
  max-width: 580px !important;
  color: rgba(255, 255, 255, 0.72) !important;
  font-size: 19px !important;
}

.homepage-trust-section {
  position: relative !important;
  padding: 92px 0 104px !important;
  overflow: hidden !important;
  background:
    linear-gradient(180deg, #080808 0%, #101010 100%) !important;
  color: #ffffff !important;
}

#page-content.homepage-trust-section {
  background:
    linear-gradient(180deg, #080808 0%, #101010 100%) !important;
  color: #ffffff !important;
}

#explore.homepage-skill-banner {
  background: #f7f2e9 !important;
  color: #080808 !important;
}

.homepage-trust-section:before {
  content: "PRISM" !important;
  position: absolute !important;
  left: 50% !important;
  right: auto !important;
  top: 10px !important;
  transform: translateX(-50%) !important;
  color: rgba(255, 255, 255, 0.045) !important;
  font-size: clamp(150px, 25vw, 340px) !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  line-height: 0.78 !important;
  pointer-events: none !important;
  white-space: nowrap !important;
}

.homepage-trust-heading {
  position: relative !important;
  z-index: 1 !important;
  max-width: 780px !important;
  margin: 0 auto 50px !important;
  text-align: center !important;
}

.homepage-trust-heading .prism-eyebrow {
  display: inline-flex !important;
  justify-content: center !important;
  margin-bottom: 16px !important;
  color: rgba(255, 255, 255, 0.62) !important;
}

.homepage-trust-heading h2 {
  margin: 0 !important;
  color: #ffffff !important;
  font-size: clamp(38px, 5vw, 68px) !important;
  font-weight: 560 !important;
  line-height: 1.02 !important;
  letter-spacing: 0 !important;
}

.homepage-trust-panel {
  position: relative !important;
  z-index: 1 !important;
  padding: 0 !important;
  border: 1px solid rgba(255, 255, 255, 0.22) !important;
  border-radius: 0 !important;
  background: #f7f2e9 !important;
  box-shadow: none !important;
  color: #080808 !important;
}

.homepage-trust-panel > .row {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 0 !important;
  margin: 0 !important;
  border: 0 !important;
}

.homepage-trust-item {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  max-width: none !important;
  padding: 34px 30px !important;
  border-left: 1px solid rgba(8, 8, 8, 0.14) !important;
  text-align: left !important;
  color: #080808 !important;
}

.homepage-trust-item:first-child {
  border-left: 0 !important;
}

.homepage-trust-item h3 {
  display: grid !important;
  gap: 18px !important;
  margin: 0 0 18px !important;
  color: #080808 !important;
  font-size: clamp(25px, 2.3vw, 36px) !important;
  font-weight: 560 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
}

.homepage-trust-item h3 i {
  color: rgba(8, 8, 8, 0.46) !important;
  font-size: 18px !important;
}

.homepage-trust-item p {
  max-width: 220px !important;
  margin: 0 !important;
  color: rgba(8, 8, 8, 0.62) !important;
  font-size: 14px !important;
  line-height: 1.65 !important;
}

.homepage-skill-banner {
  position: relative !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: #f7f2e9 !important;
  color: #080808 !important;
}

.homepage-skill-banner .container {
  width: min(100% - 80px, 1120px) !important;
}

.homepage-skill-banner .row {
  margin: 0 !important;
}

.homepage-skill-banner .row > div {
  float: none !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 50px 0 !important;
  display: grid !important;
  grid-template-columns: minmax(0, 0.62fr) minmax(320px, 0.38fr) !important;
  gap: 34px !important;
  align-items: center !important;
  text-align: left !important;
  border-top: 1px solid rgba(8, 8, 8, 0.18) !important;
  border-bottom: 1px solid rgba(8, 8, 8, 0.18) !important;
}

.homepage-skill-banner .prism-eyebrow {
  grid-column: 1 / -1 !important;
  margin: 0 0 -18px !important;
  color: rgba(8, 8, 8, 0.58) !important;
}

.homepage-skill-banner h2 {
  margin: 0 !important;
  color: #080808 !important;
  font-size: clamp(42px, 6vw, 82px) !important;
  font-weight: 560 !important;
  line-height: 0.96 !important;
  letter-spacing: 0 !important;
}

.homepage-skill-banner p {
  margin: 0 !important;
  color: rgba(8, 8, 8, 0.68) !important;
  font-size: 18px !important;
  line-height: 1.65 !important;
}

.homepage-skill-banner p:last-child {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
  align-items: center !important;
}

.homepage-skill-banner .btn {
  min-height: 48px !important;
  padding: 0 22px !important;
  border: 1px solid #080808 !important;
  border-radius: 999px !important;
  background: transparent !important;
  color: #080808 !important;
  box-shadow: none !important;
}

.homepage-skill-banner .btn.btn-primary {
  background: #080808 !important;
  color: #ffffff !important;
}

.homepage-skill-banner .btn:hover {
  transform: scale(1.04) !important;
}

#footer {
  padding: 0 !important;
  background: #080808 !important;
  color: #ffffff !important;
  overflow: hidden !important;
}

#footer .container {
  width: min(100% - 80px, 1120px) !important;
  max-width: 1120px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.footer-shell {
  padding: 0 !important;
  border: 0 !important;
  overflow: visible !important;
}

.footer-top-row {
  display: grid !important;
  grid-template-columns: minmax(300px, 1.1fr) minmax(160px, 0.65fr) minmax(260px, 0.9fr) !important;
  gap: 48px !important;
  align-items: start !important;
  justify-items: stretch !important;
  padding: 54px 0 48px !important;
  border-top: 1px solid rgba(255, 255, 255, 0.18) !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.18) !important;
}

.footer-top-row > [class*="col-"] {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
}

.footer-widget {
  margin: 0 !important;
  text-align: left !important;
  min-width: 0 !important;
  overflow: visible !important;
}

.footer-eyebrow {
  justify-content: flex-start !important;
  margin-bottom: 18px !important;
  color: rgba(255, 255, 255, 0.54) !important;
}

.footer-eyebrow:before {
  width: 24px !important;
}

.footer-widget h3 {
  max-width: 360px !important;
  margin: 0 0 18px !important;
  color: #ffffff !important;
  font-size: 14px !important;
  font-weight: 760 !important;
  line-height: 1.28 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
}

.footer-shell p {
  max-width: 420px !important;
  margin: 0 !important;
  color: rgba(255, 255, 255, 0.68) !important;
  font-size: 14px !important;
  line-height: 1.7 !important;
}

.footer-socials {
  justify-content: flex-start !important;
  margin-top: 24px !important;
}

#footer .footer-links {
  display: grid !important;
  gap: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

#footer .footer-links li {
  margin: 0 !important;
  list-style: none !important;
}

#footer .footer-links li a,
.footer-chip-grid a {
  display: block !important;
  padding: 9px 0 !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
  background: transparent !important;
  color: rgba(255, 255, 255, 0.82) !important;
  font-size: 14px !important;
  font-weight: 560 !important;
  line-height: 1.3 !important;
  text-align: left !important;
  text-decoration: none !important;
  list-style: none !important;
}

#footer .footer-links li a:before,
.footer-chip-grid a:before,
.footer-chip-grid a::marker {
  content: none !important;
}

#footer .footer-links li a:hover,
.footer-chip-grid a:hover {
  padding-left: 10px !important;
  background: transparent !important;
  color: #ffffff !important;
}

.footer-chip-grid {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 0 !important;
  justify-items: stretch !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.footer-cta-band {
  display: grid !important;
  grid-template-columns: minmax(0, 0.78fr) minmax(300px, 0.72fr) !important;
  gap: 36px !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 34px 0 !important;
  border-top: 0 !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.18) !important;
  background: transparent !important;
}

.footer-cta-copy strong {
  margin: 0 0 8px !important;
  color: #ffffff !important;
  font-size: clamp(28px, 4vw, 48px) !important;
  font-weight: 560 !important;
  line-height: 1.02 !important;
  letter-spacing: 0 !important;
}

.footer-cta-copy p {
  max-width: 420px !important;
  color: rgba(255, 255, 255, 0.68) !important;
}

.footer-cta-actions {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 12px !important;
  justify-content: stretch !important;
}

.footer-action-card {
  min-height: 54px !important;
  padding: 0 18px !important;
  border: 1px solid rgba(255, 255, 255, 0.28) !important;
  border-radius: 999px !important;
  background: transparent !important;
  color: #ffffff !important;
  justify-content: center !important;
}

.footer-action-card:first-child {
  background: #ffffff !important;
  color: #080808 !important;
}

.footer-action-card:first-child span,
.footer-action-card:first-child strong,
.footer-action-card:first-child i {
  color: #080808 !important;
}

.footer-action-card span {
  color: inherit !important;
  font-size: 10px !important;
  letter-spacing: 0.12em !important;
}

.footer-action-card strong {
  color: inherit !important;
  font-size: 13px !important;
}

.footer-bottom-bar {
  display: flex !important;
  justify-content: space-between !important;
  gap: 24px !important;
  padding: 22px 0 !important;
  border: 0 !important;
}

.footer-bottom-bar p {
  margin: 0 !important;
  color: rgba(255, 255, 255, 0.56) !important;
  font-size: 12px !important;
}

.home-services-grid {
  gap: 0 !important;
  border-top: 1px solid rgba(255, 255, 255, 0.16) !important;
  border-left: 1px solid rgba(255, 255, 255, 0.16) !important;
}

.home-service-card {
  min-height: 214px !important;
  padding: 30px 28px !important;
  border: 0 !important;
  border-right: 1px solid rgba(255, 255, 255, 0.16) !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.16) !important;
  border-radius: 0 !important;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.035), transparent) !important;
}

.home-service-card:hover {
  transform: none !important;
  background: rgba(255, 255, 255, 0.07) !important;
}

.home-service-icon {
  width: auto !important;
  height: auto !important;
  margin-bottom: 26px !important;
  border: 0 !important;
  background: transparent !important;
  color: rgba(255, 255, 255, 0.64) !important;
}

.home-service-card h3 {
  max-width: 260px !important;
  font-size: 24px !important;
}

.home-service-card p {
  max-width: 270px !important;
  margin-bottom: 24px !important;
}

.homepage-about-link {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 42px !important;
  padding: 0 20px !important;
  border: 1px solid #080808 !important;
  border-radius: 999px !important;
  background: #080808 !important;
  color: #ffffff !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em !important;
  text-decoration: none !important;
}

.homepage-about-link:hover {
  transform: scale(1.035) !important;
  color: #ffffff !important;
}

.homepage-about-points li:before {
  background: #080808 !important;
  opacity: 0.52 !important;
}

.services-page-hero-pills span,
.about-page-hero-pills span,
.contact-page-hero-pills span,
.service-pill,
.service-card-tag,
.service-coverage-badges span {
  padding-left: 0 !important;
  list-style: none !important;
}

.services-page-hero-pills span:before,
.about-page-hero-pills span:before,
.contact-page-hero-pills span:before,
.service-pill:before,
.service-card-tag:before,
.service-coverage-badges span:before {
  content: none !important;
}

.services-page-hero-pills {
  display: flex !important;
  gap: 12px 28px !important;
}

.services-page-hero-pills span {
  padding: 0 !important;
  border: 0 !important;
  color: rgba(255, 255, 255, 0.72) !important;
}

.service-finder-intro {
  grid-template-columns: minmax(0, 0.45fr) minmax(0, 0.55fr) !important;
}

.service-finder-search-wrap {
  border-width: 1px 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
}

.service-popular,
.service-coverage-badges {
  gap: 14px 34px !important;
}

.service-pill,
.service-coverage-badges span {
  color: rgba(255, 255, 255, 0.72) !important;
}

@media screen and (max-width: 992px) {
  .enquiry-main-row > [class*="col-"]:first-child,
  .enquiry-main-row > [class*="col-"]:last-child {
    grid-column: 1 !important;
  }

  .homepage-trust-panel > .row,
  .home-services-grid,
  .footer-top-row,
  .footer-cta-band {
    grid-template-columns: 1fr !important;
  }

  .homepage-trust-item {
    border-left: 0 !important;
    border-top: 1px solid rgba(255, 255, 255, 0.14) !important;
  }

  .homepage-trust-item:first-child {
    border-top: 0 !important;
  }

  .homepage-skill-banner .row > div {
    grid-template-columns: 1fr !important;
  }
}

@media screen and (max-width: 767px) {
  #footer .container,
  .homepage-skill-banner .container {
    width: auto !important;
    margin-left: 24px !important;
    margin-right: 24px !important;
  }

  .homepage-trust-section {
    padding: 58px 0 !important;
  }

  .homepage-trust-heading {
    text-align: left !important;
  }

  .homepage-trust-heading h2,
  .homepage-skill-banner h2 {
    font-size: 38px !important;
  }

  .homepage-skill-banner .row > div {
    padding: 34px 0 !important;
  }

  .footer-top-row {
    gap: 34px !important;
    padding: 42px 0 !important;
  }

  .footer-cta-actions,
  .footer-bottom-bar {
    grid-template-columns: 1fr !important;
    display: grid !important;
  }
}

/* Absolute mobile containment: keep hero copy and CTAs inside the phone. */
@media screen and (max-width: 767px) {
  html,
  body,
  #page {
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  .nav .container,
  #hero .container,
  .home-services .container,
  .services-page-hero .container,
  .service-finder-section > .container,
  .services-page-highlights .container,
  #page-content > .container,
  .homepage-trust-section > .container,
  #footer .container {
    width: calc(100% - 48px) !important;
    max-width: calc(100% - 48px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
  }

  #hero,
  .services-page-hero,
  .service-finder-section,
  .home-services {
    max-width: 100vw !important;
    overflow: hidden !important;
  }

  #hero .row,
  #hero .row > [class*="col-"],
  #hero .slider-text,
  #hero .slider-text-inner,
  .services-page-hero-row,
  .services-page-hero-row > [class*="col-"],
  .service-finder-intro,
  .service-finder-search-wrap,
  .home-services-grid {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
  }

  #hero .flexslider .slider-text > .slider-text-inner,
  .services-page-hero-row > [class*="col-"] {
    padding-right: 24px !important;
    box-sizing: border-box !important;
  }

  #hero .flexslider .slider-text > .slider-text-inner > *,
  .services-page-hero h1,
  .services-page-hero p,
  .services-page-hero-pills,
  .services-page-stat-shell,
  .services-page-hero-actions {
    max-width: min(318px, calc(100vw - 64px)) !important;
    box-sizing: border-box !important;
  }

  #hero .flexslider .slider-text > .slider-text-inner h1,
  #hero .flexslider .slider-text > .slider-text-inner h2,
  .services-page-hero h1,
  .services-page-hero p,
  .service-finder-intro h2,
  .service-finder-intro p {
    width: 100% !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    box-sizing: border-box !important;
  }

  #hero .flexslider .slider-text > .slider-text-inner h1 {
    font-size: 39px !important;
    line-height: 1.06 !important;
  }

  #hero .flexslider .slider-text > .slider-text-inner h2 {
    font-size: 17px !important;
    line-height: 1.55 !important;
  }

  .services-page-hero h1 {
    font-size: 31px !important;
    line-height: 1.08 !important;
  }

  .services-page-hero p {
    font-size: 16px !important;
  }

  #hero .hero-actions,
  .services-page-hero-actions {
    width: min(318px, calc(100vw - 64px)) !important;
    max-width: min(318px, calc(100vw - 64px)) !important;
  }

  #hero .hero-actions .btn,
  .services-page-hero-actions a,
  .services-page-primary-btn,
  .services-page-ghost-btn {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
}

@media screen and (max-width: 767px) {
  body.home-page #hero .flexslider .slider-text > .slider-text-inner h1 {
    width: min(300px, calc(100vw - 80px)) !important;
    max-width: min(300px, calc(100vw - 80px)) !important;
    font-size: 36px !important;
  }

  body.home-page #hero .flexslider .slider-text > .slider-text-inner h2 {
    width: min(300px, calc(100vw - 80px)) !important;
    max-width: min(300px, calc(100vw - 80px)) !important;
    font-size: 16px !important;
  }

  body.services-page .services-page-hero h1 {
    width: min(280px, calc(100vw - 92px)) !important;
    max-width: min(280px, calc(100vw - 92px)) !important;
    font-size: 27px !important;
    line-height: 1.1 !important;
  }

  body.services-page .services-page-hero p,
  body.services-page .services-page-hero-pills,
  body.services-page .services-page-stat-shell {
    width: min(296px, calc(100vw - 80px)) !important;
    max-width: min(296px, calc(100vw - 80px)) !important;
  }
}

/* Final route-panel lock: keep all four PRISM steps aligned in the white panel. */
@media screen and (min-width: 993px) {
  .homepage-trust-panel > .row {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    gap: 0 !important;
  }

  .homepage-trust-panel > .row > .homepage-trust-item {
    flex: 1 1 0 !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    display: block !important;
    grid-column: auto !important;
    grid-row: auto !important;
  }
}

@media screen and (max-width: 992px) {
  .homepage-trust-panel > .row {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }
}

/* PRISM V6: open-source bento-inspired service map. */
.services-page-portfolio {
  position: relative !important;
  overflow: hidden !important;
  padding: 104px 0 112px !important;
  background: #050505 !important;
  color: #ffffff !important;
}

.services-page-portfolio::before {
  content: "PRISM";
  position: absolute;
  top: -18px;
  right: -10px;
  color: rgba(255, 255, 255, 0.035);
  font-size: 210px;
  font-weight: 800;
  line-height: 0.8;
  pointer-events: none;
}

.services-page-portfolio::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 42%;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(213, 162, 76, 0.08));
  pointer-events: none;
}

.services-page-portfolio .container {
  position: relative !important;
  z-index: 1 !important;
}

.services-page-portfolio .services-page-section-head.narrow {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 360px !important;
  gap: 34px !important;
  align-items: end !important;
  max-width: none !important;
  margin: 0 0 34px !important;
  padding: 0 0 34px !important;
  text-align: left !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2) !important;
}

.services-page-portfolio .services-page-section-kicker {
  grid-column: 1 / -1 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 12px !important;
  margin: 0 !important;
  color: rgba(255, 255, 255, 0.6) !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
}

.services-page-portfolio .services-page-section-kicker::before {
  width: 30px !important;
  background: rgba(255, 255, 255, 0.42) !important;
}

.services-page-portfolio .services-page-section-head h2 {
  max-width: 720px !important;
  margin: 0 !important;
  color: #ffffff !important;
  font-size: 64px !important;
  line-height: 0.98 !important;
  letter-spacing: 0 !important;
}

.services-page-portfolio .services-page-section-head p {
  margin: 0 0 6px !important;
  color: rgba(255, 255, 255, 0.68) !important;
  font-size: 17px !important;
  line-height: 1.7 !important;
}

.services-page-portfolio-grid {
  counter-reset: prism-service-map !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 16px !important;
  margin: 0 !important;
}

.services-page-portfolio-grid::before,
.services-page-portfolio-grid::after {
  display: none !important;
}

.services-page-portfolio-grid > [class*="col-"] {
  float: none !important;
  width: auto !important;
  max-width: none !important;
  min-height: 100% !important;
  padding: 0 !important;
}

.services-page-portfolio-grid > [class*="col-"]:nth-child(1),
.services-page-portfolio-grid > [class*="col-"]:nth-child(4),
.services-page-portfolio-grid > [class*="col-"]:nth-child(6) {
  grid-column: span 2 !important;
}

.services-page-portfolio-card {
  counter-increment: prism-service-map !important;
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  min-height: 310px !important;
  height: 100% !important;
  padding: 34px !important;
  overflow: hidden !important;
  border: 1px solid rgba(255, 255, 255, 0.28) !important;
  border-radius: 26px !important;
  background: rgba(255, 255, 255, 0.035) !important;
  box-shadow: none !important;
  color: #ffffff !important;
  transition: transform 220ms ease, border-color 220ms ease, background 220ms ease !important;
}

.services-page-portfolio-card::before {
  content: "0" counter(prism-service-map);
  display: block !important;
  width: fit-content !important;
  margin-bottom: 42px !important;
  padding-bottom: 8px !important;
  border-bottom: 1px solid currentColor !important;
  color: rgba(255, 255, 255, 0.66) !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
}

.services-page-portfolio-card::after {
  content: "";
  position: absolute;
  right: -44px;
  bottom: -44px;
  width: 170px;
  height: 170px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 999px;
  pointer-events: none;
}

.services-page-portfolio-card:hover {
  transform: translateY(-4px) !important;
  border-color: rgba(255, 255, 255, 0.56) !important;
  background: rgba(255, 255, 255, 0.065) !important;
}

.services-page-portfolio-grid > [class*="col-"]:nth-child(1) .services-page-portfolio-card,
.services-page-portfolio-grid > [class*="col-"]:nth-child(5) .services-page-portfolio-card {
  background: #f7f2e9 !important;
  color: #050505 !important;
  border-color: #f7f2e9 !important;
}

.services-page-portfolio-grid > [class*="col-"]:nth-child(1) .services-page-portfolio-card::before,
.services-page-portfolio-grid > [class*="col-"]:nth-child(5) .services-page-portfolio-card::before {
  color: rgba(0, 0, 0, 0.52) !important;
}

.services-page-portfolio-card h3 {
  max-width: 520px !important;
  margin: 0 0 14px !important;
  color: inherit !important;
  font-size: 32px !important;
  line-height: 1.04 !important;
  letter-spacing: 0 !important;
}

.services-page-portfolio-card p {
  max-width: 580px !important;
  margin: 0 0 28px !important;
  color: rgba(255, 255, 255, 0.68) !important;
  font-size: 16px !important;
  line-height: 1.75 !important;
}

.services-page-portfolio-grid > [class*="col-"]:nth-child(1) .services-page-portfolio-card p,
.services-page-portfolio-grid > [class*="col-"]:nth-child(5) .services-page-portfolio-card p {
  color: rgba(0, 0, 0, 0.68) !important;
}

.services-page-portfolio-card ul {
  display: grid !important;
  gap: 10px !important;
  margin: auto 0 0 !important;
  padding: 22px 0 0 !important;
  border-top: 1px solid rgba(255, 255, 255, 0.16) !important;
  list-style: none !important;
}

.services-page-portfolio-grid > [class*="col-"]:nth-child(1) .services-page-portfolio-card ul,
.services-page-portfolio-grid > [class*="col-"]:nth-child(5) .services-page-portfolio-card ul {
  border-color: rgba(0, 0, 0, 0.16) !important;
}

.services-page-portfolio-card li {
  display: grid !important;
  grid-template-columns: 18px minmax(0, 1fr) !important;
  gap: 10px !important;
  align-items: baseline !important;
  margin: 0 !important;
  padding: 0 !important;
  color: rgba(255, 255, 255, 0.78) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.55 !important;
}

.services-page-portfolio-card li::before {
  content: "" !important;
  position: static !important;
  width: 18px !important;
  height: 1px !important;
  margin-top: 10px !important;
  background: currentColor !important;
  border: 0 !important;
  border-radius: 0 !important;
}

.services-page-portfolio-grid > [class*="col-"]:nth-child(1) .services-page-portfolio-card li,
.services-page-portfolio-grid > [class*="col-"]:nth-child(5) .services-page-portfolio-card li {
  color: rgba(0, 0, 0, 0.78) !important;
}

@media screen and (max-width: 1199px) {
  .services-page-portfolio .services-page-section-head h2 {
    font-size: 54px !important;
  }

  .services-page-portfolio-card h3 {
    font-size: 28px !important;
  }
}

@media screen and (max-width: 992px) {
  .services-page-portfolio {
    padding: 78px 0 !important;
  }

  .services-page-portfolio::before {
    font-size: 150px !important;
  }

  .services-page-portfolio .services-page-section-head.narrow {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }

  .services-page-portfolio .services-page-section-head h2 {
    font-size: 44px !important;
  }

  .services-page-portfolio-grid {
    grid-template-columns: 1fr !important;
  }

  .services-page-portfolio-grid > [class*="col-"]:nth-child(n) {
    grid-column: auto !important;
  }

  .services-page-portfolio-card {
    min-height: auto !important;
    padding: 28px !important;
    border-radius: 22px !important;
  }
}

@media screen and (max-width: 767px) {
  .services-page-portfolio .container {
    width: calc(100% - 48px) !important;
    max-width: calc(100% - 48px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .services-page-portfolio .services-page-section-head h2 {
    font-size: 34px !important;
    line-height: 1.06 !important;
  }

  .services-page-portfolio .services-page-section-head p {
    font-size: 15px !important;
  }

  .services-page-portfolio-card h3 {
    font-size: 25px !important;
  }
}

/* PRISM V7 nav removed — restored the previous nav bar.
   (Hero slider-dot styling below is kept untouched.) */

#hero .flexslider .slides li::after {
  display: none !important;
}

#hero .flexslider .flex-control-nav {
  width: auto !important;
  left: 50% !important;
  right: auto !important;
  bottom: 38px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 9px !important;
  padding: 8px 10px !important;
  border: 1px solid rgba(255, 255, 255, 0.16) !important;
  border-radius: 999px !important;
  background: rgba(0, 0, 0, 0.28) !important;
  box-shadow: none !important;
  transform: translateX(-50%) !important;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}

#hero .flexslider .flex-control-nav::before,
#hero .flexslider .flex-control-nav::after {
  display: none !important;
}

#hero .flexslider .flex-control-nav li {
  margin: 0 !important;
}

#hero .flexslider .flex-control-nav li a {
  width: 8px !important;
  height: 8px !important;
  background: rgba(255, 255, 255, 0.42) !important;
  box-shadow: none !important;
  transition: width 190ms ease, background 190ms ease !important;
}

#hero .flexslider .flex-control-nav li a.flex-active {
  width: 22px !important;
  border-radius: 999px !important;
  background: #ffffff !important;
}

@media screen and (max-width: 992px) {
  #hero .flexslider .flex-control-nav {
    bottom: 24px !important;
  }
}

/* =====================================================================
   PRISM mobile nav reset
   Branded compact header, clear hamburger, and a premium full-screen menu.
   ===================================================================== */

.logo-link {
  display: inline-flex !important;
  align-items: center !important;
  gap: 12px !important;
  width: auto !important;
  max-width: 100% !important;
  text-decoration: none !important;
}

.logo-link:before {
  content: "" !important;
  display: block !important;
  flex: 0 0 60px !important;
  width: 60px !important;
  height: 60px !important;
  border-radius: 0 !important;
  background: transparent url("../images/prism-nav-mark.png") center / contain no-repeat !important;
  box-shadow: none !important;
}

.prism-logo-mark {
  color: #080808 !important;
  font-size: 20px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  letter-spacing: 0.1em !important;
  white-space: nowrap !important;
}

.prism-logo-mark:after {
  content: " LEARNING";
}

.prism-logo-sub {
  display: none !important;
}

@media screen and (max-width: 991px) {
  :root {
    --nav-height-mobile: 82px;
  }

  body.offcanvas {
    overflow: hidden !important;
  }

  .offcanvas #page {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    height: 100vh !important;
    overflow: hidden !important;
  }

  .offcanvas #page:after {
    position: fixed !important;
    inset: 0 !important;
    z-index: 1500 !important;
    background: rgba(0, 0, 0, 0.62) !important;
  }

  .nav {
    position: fixed !important;
    top: 10px !important;
    left: 12px !important;
    right: 12px !important;
    width: auto !important;
    max-width: calc(100vw - 24px) !important;
    height: 72px !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    border: 1px solid rgba(8, 8, 8, 0.1) !important;
    border-radius: 999px !important;
    background: rgba(247, 242, 233, 0.96) !important;
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.16) !important;
    -webkit-backdrop-filter: blur(18px);
    backdrop-filter: blur(18px);
  }

  .nav:before {
    content: "" !important;
    position: absolute !important;
    top: 50% !important;
    right: 22px !important;
    z-index: 2 !important;
    width: 38px !important;
    height: 38px !important;
    border-radius: 999px !important;
    background: #080808 !important;
    transform: translateY(-50%) !important;
    pointer-events: none !important;
  }

  .nav:after {
    content: "" !important;
    position: absolute !important;
    top: 50% !important;
    right: 33px !important;
    z-index: 3 !important;
    width: 16px !important;
    height: 12px !important;
    background:
      linear-gradient(#ffffff, #ffffff) 0 0 / 16px 2px no-repeat,
      linear-gradient(#ffffff, #ffffff) 0 5px / 16px 2px no-repeat,
      linear-gradient(#ffffff, #ffffff) 0 10px / 16px 2px no-repeat !important;
    transform: translateY(-50%) !important;
    pointer-events: none !important;
  }

  .nav .top-menu,
  .nav .container,
  .nav-main-row {
    height: 100% !important;
  }

  .nav .top-menu {
    padding: 0 !important;
  }

  .nav .container {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 68px 0 12px !important;
  }

  .nav-main-row {
    display: flex !important;
    align-items: center !important;
    margin: 0 !important;
  }

  .nav-main-row > [class*="col-"] {
    width: auto !important;
    padding: 0 !important;
  }

  .nav #logo {
    margin: 0 !important;
    min-width: 0 !important;
  }

  .nav .menu-1,
  .nav-gold-strip {
    display: none !important;
  }

  .logo-link {
    gap: 9px !important;
    min-width: 0 !important;
  }

  .logo-link:before {
    flex-basis: 58px !important;
    width: 58px !important;
    height: 58px !important;
    border-radius: 0 !important;
  }

  .prism-logo-mark {
    max-width: 210px !important;
    overflow: hidden !important;
    color: #080808 !important;
    font-size: 18px !important;
    font-weight: 500 !important;
    line-height: 1 !important;
    letter-spacing: 0.08em !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  .prism-logo-sub {
    display: none !important;
  }

  .nav-toggle,
  .nav-toggle.nav-white {
    position: fixed !important;
    top: 21px !important;
    right: 22px !important;
    z-index: 2002 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 38px !important;
    height: 38px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid #080808 !important;
    border-radius: 999px !important;
    background: #080808 !important;
    box-shadow: none !important;
  }

  .nav-toggle i,
  .nav-toggle i::before,
  .nav-toggle i::after,
  .nav-toggle.nav-white > i,
  .nav-toggle.nav-white > i::before,
  .nav-toggle.nav-white > i::after {
    width: 18px !important;
    height: 2px !important;
    border-radius: 999px !important;
    background: #ffffff !important;
  }

  .nav-toggle i,
  .nav-toggle.nav-white > i {
    position: relative !important;
    left: 0 !important;
    margin: 0 !important;
    text-indent: 0 !important;
    transform: none !important;
  }

  .nav-toggle i::before,
  .nav-toggle i::after,
  .nav-toggle.nav-white > i::before,
  .nav-toggle.nav-white > i::after {
    left: 0 !important;
  }

  .nav-toggle i::before {
    top: -6px !important;
  }

  .nav-toggle i::after {
    bottom: -6px !important;
  }

  .nav-toggle:hover i::before {
    top: -6px !important;
  }

  .nav-toggle:hover i::after {
    bottom: -6px !important;
  }

  .nav-toggle.active,
  .nav-toggle.nav-white.active {
    top: 22px !important;
    right: 24px !important;
    background: #ffffff !important;
    border-color: #ffffff !important;
  }

  .nav-toggle.active i,
  .nav-toggle.nav-white.active > i {
    background: transparent !important;
  }

  .nav-toggle.active i::before,
  .nav-toggle.active i::after,
  .nav-toggle.nav-white.active > i::before,
  .nav-toggle.nav-white.active > i::after {
    background: #080808 !important;
  }

  #offcanvas {
    position: fixed !important;
    inset: 10px !important;
    z-index: 1901 !important;
    display: flex !important;
    flex-direction: column !important;
    width: auto !important;
    max-width: none !important;
    padding: 24px 20px 20px !important;
    overflow-y: auto !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    border-radius: 28px !important;
    background: #070707 !important;
    box-shadow: 0 28px 80px rgba(0, 0, 0, 0.48) !important;
    opacity: 0 !important;
    pointer-events: none !important;
    visibility: hidden !important;
    transform: translateY(-12px) scale(0.97) !important;
    transition: opacity 220ms ease, transform 220ms ease, visibility 220ms ease !important;
    -webkit-overflow-scrolling: touch;
  }

  .offcanvas #offcanvas {
    opacity: 1 !important;
    pointer-events: auto !important;
    visibility: visible !important;
    transform: translateY(0) scale(1) !important;
  }

  #offcanvas:before {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0) 44%) !important;
  }

  #offcanvas:after {
    border: 0 !important;
  }

  .offcanvas-panel-head {
    position: relative !important;
    z-index: 1 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 18px !important;
    min-height: 50px !important;
    padding-right: 58px !important;
    margin-bottom: 26px !important;
  }

  .offcanvas-brand {
    display: inline-flex !important;
    align-items: center !important;
    gap: 12px !important;
    min-width: 0 !important;
    color: #ffffff !important;
    text-decoration: none !important;
  }

  .offcanvas-brand:before {
    content: "" !important;
    display: block !important;
    flex: 0 0 56px !important;
    width: 56px !important;
    height: 56px !important;
    border-radius: 0 !important;
    background: transparent url("../images/prism-nav-mark.png") center / contain no-repeat !important;
  }

  .offcanvas-brand-mark,
  .offcanvas-brand-sub,
  .offcanvas-menu-label {
    display: block !important;
    line-height: 1 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
  }

  .offcanvas-brand-mark {
    color: #ffffff !important;
    font-size: 17px !important;
    font-weight: 500 !important;
  }

  .offcanvas-brand-mark:after {
    content: " LEARNING";
  }

  .offcanvas-brand-sub,
  .offcanvas-menu-label {
    margin-top: 4px !important;
    color: rgba(255, 255, 255, 0.52) !important;
    font-size: 8px !important;
    font-weight: 800 !important;
  }

  .offcanvas-brand-sub {
    display: none !important;
  }

  .offcanvas-menu-label {
    margin-top: 0 !important;
  }

  .offcanvas-menu-list {
    position: relative !important;
    z-index: 1 !important;
    flex: 1 1 auto !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    min-height: 330px !important;
  }

  #offcanvas ul {
    display: grid !important;
    gap: 8px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
  }

  #offcanvas ul li {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
  }

  #offcanvas a,
  #offcanvas ul li a {
    color: #ffffff !important;
  }

  #offcanvas ul li a {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    min-height: 56px !important;
    padding: 0 2px !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.14) !important;
    border-radius: 0 !important;
    background: transparent !important;
    font-size: clamp(25px, 7.4vw, 34px) !important;
    font-weight: 640 !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    text-decoration: none !important;
    transform: none !important;
  }

  #offcanvas ul li a:before {
    content: none !important;
  }

  #offcanvas ul li a:hover {
    transform: none !important;
  }

  #offcanvas ul li.active > a {
    min-height: 54px !important;
    padding: 0 16px !important;
    border-bottom: 0 !important;
    border-radius: 16px !important;
    background: #f7f2e9 !important;
    color: #080808 !important;
  }

  #offcanvas ul li.btn-cta {
    margin-top: 14px !important;
  }

  #offcanvas ul li.btn-cta a {
    min-height: 58px !important;
    padding: 0 !important;
    border: 0 !important;
  }

  #offcanvas ul li.btn-cta a span {
    width: 100% !important;
    min-height: 58px !important;
    border-radius: 999px !important;
    background: #ffffff !important;
    color: #080808 !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    letter-spacing: 0.04em !important;
    box-shadow: none !important;
  }

  .offcanvas-contact-panel {
    position: relative !important;
    z-index: 1 !important;
    margin-top: 26px !important;
    padding-top: 18px !important;
    border-top: 1px solid rgba(255, 255, 255, 0.16) !important;
  }

  .offcanvas-contact-panel > span {
    display: block !important;
    margin-bottom: 12px !important;
    color: rgba(255, 255, 255, 0.54) !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    letter-spacing: 0.1em !important;
    line-height: 1 !important;
    text-transform: uppercase !important;
  }

  .offcanvas-contact-actions {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  .offcanvas-contact-actions a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 42px !important;
    padding: 0 10px !important;
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
    border-radius: 999px !important;
    color: rgba(255, 255, 255, 0.86) !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    text-decoration: none !important;
  }
}

@media screen and (max-width: 767px) {
  html,
  body,
  #page {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  .nav .container,
  #hero .container,
  .home-services .container,
  #page-content > .container,
  .homepage-trust-section > .container,
  .service-finder-section > .container,
  .services-page-hero .container,
  .services-page-highlights .container,
  .services-page-process .container,
  .services-page-portfolio .container,
  .services-page-cta .container,
  .about-page-hero .container,
  .about-page #page-content > .container,
  .contact-page-hero .container,
  .contact-page-details .container,
  .contact-page-story .container,
  .contact-page-cta .container,
  .enquiry-page #page-content > .container,
  #footer .container {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
    box-sizing: border-box !important;
  }

  #hero {
    --hero-height: min(660px, calc(100svh - var(--nav-height-mobile))) !important;
    margin-top: var(--nav-height-mobile) !important;
  }

  #hero .flexslider .slider-text > .slider-text-inner {
    width: 100% !important;
    max-width: 100% !important;
    padding: 24px 0 76px !important;
  }

  #hero .flexslider .slider-text > .slider-text-inner > *,
  #hero .flexslider .slider-text > .slider-text-inner h1,
  #hero .flexslider .slider-text > .slider-text-inner h2,
  .home-services-head h2,
  .home-services-head p,
  .services-page-hero h1,
  .services-page-hero p,
  .service-finder-intro h2,
  .service-finder-intro p,
  .enquiry-title,
  .enquiry-copy {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  #hero .flexslider .slider-text > .slider-text-inner h1 {
    font-size: clamp(38px, 10.5vw, 44px) !important;
    line-height: 1.04 !important;
  }

  #hero .flexslider .slider-text > .slider-text-inner h2 {
    font-size: 16px !important;
    line-height: 1.6 !important;
  }

  #hero .hero-actions,
  .services-page-hero-actions,
  .about-page-hero-actions,
  .contact-page-hero-actions {
    width: 100% !important;
    max-width: 100% !important;
  }

  #hero .hero-actions .btn,
  .services-page-hero-actions a,
  .about-page-hero-actions a,
  .contact-page-hero-actions a,
  .service-finder-footer .btn,
  .enquiry-submit-wrap .btn.btn-primary {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 52px !important;
    box-sizing: border-box !important;
  }

  .home-services {
    padding: 62px 0 !important;
  }

  .home-services-grid {
    width: 100% !important;
    max-width: 100% !important;
    grid-template-columns: 1fr !important;
  }

  .home-service-card {
    min-height: auto !important;
    padding: 24px 0 !important;
  }

  .services-page-hero {
    padding: calc(var(--nav-height-mobile) + 24px) 0 30px !important;
  }

  .services-page-hero h1,
  .service-finder-intro h2,
  .enquiry-title {
    font-size: clamp(34px, 9.6vw, 40px) !important;
    line-height: 1.08 !important;
  }

  .services-page-hero p,
  .service-finder-intro p {
    font-size: 15.5px !important;
    line-height: 1.65 !important;
  }

  .services-page-hero-pills,
  .services-page-stat-shell,
  .services-page-hero-actions {
    width: 100% !important;
    max-width: 100% !important;
  }

  .services-page-stat-shell {
    margin-top: 24px !important;
  }

  .service-finder-shell {
    padding-top: 34px !important;
  }

  .service-finder-intro {
    display: block !important;
    margin-bottom: 22px !important;
  }

  .service-finder-search-wrap {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 24px !important;
    border: 1px solid rgba(255, 255, 255, 0.18) !important;
    border-radius: 8px !important;
    background: #101010 !important;
  }

  .service-finder-search-copy h3 {
    font-size: 22px !important;
    line-height: 1.16 !important;
  }

  .service-search-field input {
    min-height: 52px !important;
    padding-right: 74px !important;
    font-size: 16px !important;
  }

  .service-search-clear {
    right: 14px !important;
    font-size: 12px !important;
  }

  .service-popular {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  .service-pill {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 40px !important;
    padding: 0 10px !important;
    border: 1px solid rgba(255, 255, 255, 0.18) !important;
    border-radius: 8px !important;
    color: rgba(255, 255, 255, 0.86) !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    text-align: center !important;
  }

  .service-coverage-badges,
  .service-card-tags {
    display: none !important;
  }

  .service-finder-grid {
    gap: 18px !important;
    margin-top: 30px !important;
  }

  .service-card {
    border-color: rgba(255, 255, 255, 0.24) !important;
    border-radius: 8px !important;
  }

  .service-card-media {
    height: 168px !important;
    margin-bottom: 0 !important;
  }

  .service-card-body {
    padding: 24px !important;
  }

  .service-card-title {
    font-size: 25px !important;
    line-height: 1.1 !important;
  }

  .service-card-actions {
    grid-template-columns: 1fr !important;
  }

  .service-card-actions .service-card-link {
    min-height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    white-space: normal !important;
  }

  .service-finder-footer {
    display: block !important;
  }

  .service-finder-footer p {
    margin-bottom: 18px !important;
  }

  .smart-enquiry-form,
  .enquiry-intro-card,
  .enquiry-side-panel {
    padding: 24px !important;
    border-radius: 8px !important;
  }

  .smart-enquiry-form .form-control,
  .smart-enquiry-form select.form-control,
  .smart-enquiry-form textarea.form-control {
    min-height: 52px !important;
    font-size: 16px !important;
  }

  .footer-cta-actions,
  .footer-bottom-bar,
  .offcanvas-contact-actions {
    grid-template-columns: 1fr !important;
  }

  .icon-sidebar-desk {
    display: none !important;
    visibility: hidden !important;
  }
}

@media screen and (max-width: 380px) {
  .logo-link:before {
    flex-basis: 50px !important;
    width: 50px !important;
    height: 50px !important;
  }

  .prism-logo-sub {
    display: none !important;
  }

  .prism-logo-mark {
    max-width: 155px !important;
    font-size: 15px !important;
  }

  .service-popular {
    grid-template-columns: 1fr !important;
  }
}

/* PRISM mobile nav: reference-style black bar and centered menu. */
@media screen and (max-width: 991px) {
  :root {
    --nav-height-mobile: 64px;
  }

  .nav {
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: 100vw !important;
    height: 64px !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(211, 164, 79, 0.22) !important;
    border-radius: 0 !important;
    background: #080808 !important;
    box-shadow: none !important;
  }

  .nav:before,
  .nav:after {
    content: none !important;
    display: none !important;
  }

  .nav .container {
    padding: 0 86px 0 56px !important;
  }

  .nav #logo {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: auto !important;
    max-width: calc(100vw - 160px) !important;
    text-align: center !important;
  }

  .logo-link {
    justify-content: center !important;
    gap: 7px !important;
  }

  .logo-link:before {
    flex-basis: 44px !important;
    width: 44px !important;
    height: 44px !important;
  }

  .prism-logo-mark {
    max-width: none !important;
    color: #ffffff !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    letter-spacing: 0.08em !important;
  }

  .nav-main-row:after {
    content: "Call" !important;
    position: absolute !important;
    top: 50% !important;
    right: 14px !important;
    color: #d3a44f !important;
    font-size: 9px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    transform: translateY(-50%) !important;
    white-space: nowrap !important;
  }

  .nav-toggle,
  .nav-toggle.nav-white {
    top: 20px !important;
    left: 17px !important;
    right: auto !important;
    width: 24px !important;
    height: 24px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
  }

  .nav-toggle i,
  .nav-toggle i::before,
  .nav-toggle i::after,
  .nav-toggle.nav-white > i,
  .nav-toggle.nav-white > i::before,
  .nav-toggle.nav-white > i::after {
    width: 16px !important;
    height: 1px !important;
    background: #d3a44f !important;
  }

  .nav-toggle i::before {
    top: -5px !important;
  }

  .nav-toggle i::after {
    bottom: -5px !important;
  }

  .nav-toggle.active,
  .nav-toggle.nav-white.active {
    top: 12px !important;
    left: 12px !important;
    right: auto !important;
    width: 28px !important;
    height: 28px !important;
    border: 1px solid rgba(211, 164, 79, 0.36) !important;
    border-radius: 50% !important;
    background: transparent !important;
  }

  .nav-toggle.active i::before,
  .nav-toggle.active i::after,
  .nav-toggle.nav-white.active > i::before,
  .nav-toggle.nav-white.active > i::after {
    background: #d3a44f !important;
  }

  #hero {
    margin-top: var(--nav-height-mobile) !important;
  }

  #offcanvas {
    inset: 0 !important;
    padding: 76px 22px 28px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #050505 !important;
    box-shadow: none !important;
  }

  .offcanvas-panel-head {
    justify-content: center !important;
    min-height: auto !important;
    padding-right: 0 !important;
    margin-bottom: 34px !important;
  }

  .offcanvas-brand {
    justify-content: center !important;
  }

  .offcanvas-brand:before {
    flex-basis: 38px !important;
    width: 38px !important;
    height: 38px !important;
  }

  .offcanvas-brand-mark {
    font-size: 13px !important;
    font-weight: 500 !important;
    letter-spacing: 0.08em !important;
  }

  .offcanvas-menu-label {
    display: none !important;
  }

  .offcanvas-menu-list {
    justify-content: flex-start !important;
    min-height: 0 !important;
  }

  #offcanvas ul {
    gap: 0 !important;
  }

  #offcanvas ul li a {
    justify-content: center !important;
    min-height: 58px !important;
    padding: 0 !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
    color: rgba(255, 255, 255, 0.78) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
  }

  #offcanvas ul li.active > a {
    min-height: 58px !important;
    padding: 0 !important;
    border-radius: 0 !important;
    border-bottom: 1px solid rgba(211, 164, 79, 0.28) !important;
    background: transparent !important;
    color: #d3a44f !important;
  }

  #offcanvas ul li.btn-cta {
    margin-top: 22px !important;
  }

  #offcanvas ul li.btn-cta a span {
    min-height: 44px !important;
    border: 1px solid rgba(211, 164, 79, 0.72) !important;
    background: transparent !important;
    color: #d3a44f !important;
    font-size: 11px !important;
    letter-spacing: 0.12em !important;
  }

  .offcanvas-contact-panel {
    margin-top: auto !important;
    border-top-color: rgba(255, 255, 255, 0.08) !important;
    text-align: center !important;
  }

  .offcanvas-contact-actions {
    grid-template-columns: 1fr !important;
    max-width: 230px !important;
    margin: 0 auto !important;
  }

  .offcanvas-contact-actions a {
    min-height: 42px !important;
    border-color: rgba(211, 164, 79, 0.72) !important;
    color: #d3a44f !important;
  }
}

@media screen and (max-width: 480px) {
  .nav .container {
    padding-right: 70px !important;
  }

  .nav-main-row:after {
    content: "Call" !important;
    right: 16px !important;
    font-size: 10px !important;
  }

  .prism-logo-mark {
    font-size: 12px !important;
  }
}

/* Final mobile menu usability: no gold accents, visible close, swipe-friendly. */
@media screen and (max-width: 991px) {
  .nav-main-row:after {
    content: none !important;
    display: none !important;
  }

  .nav-toggle i,
  .nav-toggle i::before,
  .nav-toggle i::after,
  .nav-toggle.nav-white > i,
  .nav-toggle.nav-white > i::before,
  .nav-toggle.nav-white > i::after {
    background: rgba(255, 255, 255, 0.92) !important;
  }

  .nav-toggle.active,
  .nav-toggle.nav-white.active {
    z-index: 2101 !important;
    border-color: rgba(255, 255, 255, 0.34) !important;
    background: rgba(255, 255, 255, 0.08) !important;
  }

  .nav-toggle.active i::before,
  .nav-toggle.active i::after,
  .nav-toggle.nav-white.active > i::before,
  .nav-toggle.nav-white.active > i::after {
    background: #ffffff !important;
  }

  body.offcanvas .nav {
    z-index: 2100 !important;
    height: 54px !important;
    background: transparent !important;
    border: 0 !important;
  }

  body.offcanvas .nav #logo,
  body.offcanvas .nav-main-row:after {
    visibility: hidden !important;
  }

  body.offcanvas .nav-toggle,
  body.offcanvas .nav-toggle.nav-white {
    top: 13px !important;
    left: 13px !important;
    right: auto !important;
    visibility: visible !important;
  }

  #offcanvas ul li.active > a {
    border-bottom-color: rgba(255, 255, 255, 0.16) !important;
    color: #ffffff !important;
  }

  #offcanvas ul li.btn-cta a span,
  .offcanvas-contact-actions a {
    border-color: rgba(255, 255, 255, 0.34) !important;
    color: #ffffff !important;
  }

  .offcanvas-contact-panel > span {
    color: rgba(255, 255, 255, 0.54) !important;
  }
}

/* Neutral premium scrollbars and date controls for forms. */
html {
  scrollbar-color: rgba(255, 255, 255, 0.34) rgba(8, 8, 8, 0.12);
  scrollbar-width: thin;
}

*::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

*::-webkit-scrollbar-track {
  background: rgba(8, 8, 8, 0.08);
}

*::-webkit-scrollbar-thumb {
  border: 2px solid rgba(8, 8, 8, 0);
  border-radius: 999px;
  background: rgba(8, 8, 8, 0.38);
  background-clip: padding-box;
}

*::-webkit-scrollbar-thumb:hover {
  background: rgba(8, 8, 8, 0.58);
  background-clip: padding-box;
}

#offcanvas,
.smart-enquiry-form textarea,
.service-search-results {
  scrollbar-color: rgba(255, 255, 255, 0.38) rgba(255, 255, 255, 0.08);
  scrollbar-width: thin;
}

#offcanvas::-webkit-scrollbar-track,
.smart-enquiry-form textarea::-webkit-scrollbar-track,
.service-search-results::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, 0.06);
}

#offcanvas::-webkit-scrollbar-thumb,
.smart-enquiry-form textarea::-webkit-scrollbar-thumb,
.service-search-results::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.34);
  background-clip: padding-box;
}

.smart-enquiry-form input[type="date"].form-control,
.smart-enquiry-form input[type="date"] {
  min-height: 52px !important;
  padding-right: 14px !important;
  border-radius: 0 !important;
  color-scheme: dark;
}

.smart-enquiry-form input[type="date"]::-webkit-calendar-picker-indicator {
  cursor: pointer;
  opacity: 0.72;
  filter: invert(1);
}

.smart-enquiry-form input[type="date"]:focus::-webkit-calendar-picker-indicator {
  opacity: 1;
}

/* Mobile card separation: individual outlined cards, not one connected block. */
@media screen and (max-width: 767px) {
  .home-services-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    width: 100% !important;
    max-width: 100% !important;
    border: 0 !important;
  }

  .home-service-card {
    min-height: auto !important;
    padding: 22px !important;
    border: 1px solid rgba(255, 255, 255, 0.26) !important;
    border-radius: 8px !important;
    background: #090909 !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04) !important;
  }

  .home-service-card h3 {
    max-width: none !important;
    color: #ffffff !important;
    font-size: 24px !important;
  }

  .home-service-card p {
    max-width: none !important;
    color: rgba(255, 255, 255, 0.74) !important;
  }

  .home-service-go {
    color: #ffffff !important;
  }

  .homepage-trust-panel {
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .homepage-trust-panel > .row {
    counter-reset: prism-mobile-steps !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    margin: 0 !important;
  }

  .homepage-trust-item {
    counter-increment: prism-mobile-steps !important;
    position: relative !important;
    margin: 0 !important;
    padding: 24px !important;
    border: 1px solid rgba(255, 255, 255, 0.28) !important;
    border-radius: 8px !important;
    background: #090909 !important;
    text-align: left !important;
  }

  .homepage-trust-item:before {
    content: "0" counter(prism-mobile-steps) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 34px !important;
    height: 34px !important;
    margin-bottom: 28px !important;
    border: 1px solid rgba(255, 255, 255, 0.34) !important;
    border-radius: 50% !important;
    color: rgba(255, 255, 255, 0.82) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
  }

  .homepage-trust-item h3 {
    margin: 0 0 12px !important;
    color: #ffffff !important;
    font-size: 28px !important;
    font-weight: 560 !important;
    line-height: 1.05 !important;
  }

  .homepage-trust-item h3 i {
    display: none !important;
  }

  .homepage-trust-item p {
    margin: 0 !important;
    color: rgba(255, 255, 255, 0.72) !important;
    font-size: 15px !important;
    line-height: 1.65 !important;
  }

  .home-services-grid,
  .home-service-card,
  .homepage-trust-panel,
  .homepage-trust-item {
    box-sizing: border-box !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }

  .home-service-card h3,
  .home-service-card p,
  .homepage-trust-item h3,
  .homepage-trust-item p {
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
  }
}

/* Light iPhone-style picker for dark enquiry forms. */
.smart-enquiry-form .prism-select {
  position: relative;
  width: 100%;
  z-index: 1;
}

.smart-enquiry-form .prism-select.is-open {
  z-index: 20;
}

.smart-enquiry-form .prism-native-select {
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.smart-enquiry-form .prism-select-button {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 54px;
  padding: 0 54px 0 16px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 16px;
  background: #fffdf8;
  color: #080808;
  font-family: 'Manrope', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  font-weight: 650;
  line-height: 1.2;
  text-align: left;
  cursor: pointer;
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.9);
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.smart-enquiry-form .prism-select:not(.has-value) .prism-select-value {
  color: rgba(8, 8, 8, 0.62);
}

.smart-enquiry-form .prism-select-button:focus {
  outline: 0;
  border-color: rgba(255, 255, 255, 0.62);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.26), 0 0 0 3px rgba(255, 255, 255, 0.18);
}

.smart-enquiry-form .prism-select.has-error .prism-select-button {
  border-color: rgba(255, 92, 92, 0.78);
}

.smart-enquiry-form .prism-select-icon {
  position: absolute;
  right: 12px;
  top: 50%;
  width: 30px;
  height: 30px;
  border: 1px solid rgba(8, 8, 8, 0.1);
  border-radius: 50%;
  background: #080808;
  transform: translateY(-50%);
}

.smart-enquiry-form .prism-select-icon:before,
.smart-enquiry-form .prism-select-icon:after {
  content: "";
  position: absolute;
  top: 13px;
  width: 7px;
  height: 1px;
  background: rgba(255, 255, 255, 0.9);
}

.smart-enquiry-form .prism-select-icon:before {
  left: 8px;
  transform: rotate(45deg);
}

.smart-enquiry-form .prism-select-icon:after {
  right: 8px;
  transform: rotate(-45deg);
}

.smart-enquiry-form .prism-select-list {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 10px);
  z-index: 4;
  display: none;
  max-height: min(300px, 56vh);
  padding: 8px;
  overflow-y: auto;
  border: 1px solid rgba(8, 8, 8, 0.12);
  border-radius: 18px;
  background: #ffffff;
  box-shadow: 0 22px 60px rgba(0, 0, 0, 0.32);
}

.smart-enquiry-form .prism-select.is-open .prism-select-list {
  display: grid;
  gap: 3px;
}

.smart-enquiry-form .prism-select-option {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 44px;
  padding: 0 14px;
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: #080808;
  font-family: 'Manrope', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.25;
  text-align: left;
  cursor: pointer;
}

.smart-enquiry-form .prism-select-option:hover,
.smart-enquiry-form .prism-select-option.is-selected {
  background: #f3f0e9;
}

.smart-enquiry-form .prism-select-option.is-selected:after {
  content: "";
  width: 8px;
  height: 14px;
  margin-left: auto;
  border-right: 2px solid #080808;
  border-bottom: 2px solid #080808;
  transform: rotate(45deg);
}

.smart-enquiry-form .prism-select-list::-webkit-scrollbar {
  width: 8px;
}

.smart-enquiry-form .prism-select-list::-webkit-scrollbar-track {
  background: transparent;
}

.smart-enquiry-form .prism-select-list::-webkit-scrollbar-thumb {
  border: 2px solid #ffffff;
  border-radius: 999px;
  background: rgba(8, 8, 8, 0.32);
  background-clip: padding-box;
}

@media screen and (max-width: 767px) {
  .enquiry-page #page-content > .container {
    box-sizing: border-box !important;
    width: auto !important;
    max-width: none !important;
    margin-left: 18px !important;
    margin-right: 18px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    overflow: visible !important;
  }

  .enquiry-main-row,
  .enquiry-main-row > [class*="col-"] {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
  }

  .smart-enquiry-form {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    overflow: visible !important;
  }

  .smart-enquiry-form .prism-select.is-open {
    z-index: 1600;
  }

  .smart-enquiry-form .prism-select.is-open:before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    background: rgba(0, 0, 0, 0.42);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
  }

  .smart-enquiry-form .prism-select-button {
    min-height: 56px;
    border-radius: 17px;
  }

  .smart-enquiry-form .row {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .smart-enquiry-form .row > [class*="col-"] {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .smart-enquiry-form .prism-select-list {
    position: fixed;
    left: 18px;
    right: 18px;
    top: auto;
    bottom: 18px;
    z-index: 1;
    max-height: min(390px, 62vh);
    border-radius: 22px;
    padding: 10px;
    box-shadow: 0 28px 90px rgba(0, 0, 0, 0.46);
  }

  .smart-enquiry-form .prism-select-option {
    min-height: 48px;
    font-size: 16px;
  }
}

/* Final polish: service map watermark, mobile cards, and enquiry finder. */
.enquiry-finder-row {
  margin-bottom: 28px !important;
}

.enquiry-service-finder {
  position: relative !important;
  z-index: 2 !important;
}

.enquiry-service-finder .service-finder-search-wrap {
  margin: 0 !important;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr) !important;
  gap: 30px !important;
  padding: 30px !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  border-radius: 8px !important;
  background: #101010 !important;
  overflow: visible !important;
}

.enquiry-service-finder .service-finder-search-copy h3 {
  margin-bottom: 12px !important;
  font-size: clamp(25px, 3vw, 36px) !important;
  line-height: 1.08 !important;
}

.enquiry-service-finder .service-finder-search-copy p {
  margin-bottom: 0 !important;
  font-size: 15px !important;
  line-height: 1.65 !important;
}

.enquiry-service-finder .service-popular {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.enquiry-service-finder .service-pill {
  min-height: 38px !important;
  padding: 7px 10px !important;
  border-color: rgba(255, 255, 255, 0.24) !important;
  color: rgba(255, 255, 255, 0.86) !important;
  text-align: center !important;
}

.enquiry-service-finder .service-search-results {
  border-color: rgba(8, 8, 8, 0.12) !important;
  border-radius: 18px !important;
  background: #fffdf8 !important;
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.34) !important;
}

@media screen and (max-width: 767px) {
  .homepage-trust-section:before,
  .services-page-portfolio::before {
    left: 50% !important;
    right: auto !important;
    top: 12px !important;
    width: 100% !important;
    transform: translateX(-50%) !important;
    text-align: center !important;
    font-size: clamp(82px, 24vw, 116px) !important;
    letter-spacing: 0.04em !important;
  }

  .services-page-portfolio::before {
    top: 20px !important;
  }

  .services-page-portfolio .services-page-section-head.narrow {
    padding-top: 16px !important;
  }

  .services-page-finder .service-finder-grid {
    gap: 18px !important;
    margin-top: 30px !important;
  }

  .services-page-finder .service-card {
    border: 1px solid rgba(255, 255, 255, 0.24) !important;
    border-radius: 8px !important;
    background: #0d0d0d !important;
  }

  .services-page-finder .service-card-media {
    display: block !important;
    height: 160px !important;
    margin: 0 !important;
    border-radius: 0 !important;
  }

  .services-page-finder .service-card-body {
    padding: 22px !important;
    gap: 12px !important;
  }

  .services-page-finder .service-card-title {
    font-size: 24px !important;
    line-height: 1.08 !important;
    text-align: left !important;
  }

  .services-page-finder .service-card-copy {
    font-size: 14px !important;
    line-height: 1.55 !important;
    text-align: left !important;
  }

  .services-page-finder .service-card-actions {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 9px !important;
    width: 100% !important;
  }

  .services-page-finder .service-card-actions .service-card-link,
  .services-page-finder .service-card-actions .service-card-link.alt {
    min-height: 40px !important;
    padding: 0 10px !important;
    border-radius: 999px !important;
    font-size: 11px !important;
    line-height: 1.15 !important;
    white-space: normal !important;
  }

  .enquiry-finder-row {
    margin-bottom: 24px !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .enquiry-finder-row > [class*="col-"] {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .enquiry-intro-card {
    display: none !important;
  }

  .enquiry-page #page-content > .container {
    width: min(calc(100vw - 36px), 354px) !important;
    max-width: 354px !important;
    margin-left: 18px !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .enquiry-main-row {
    display: flex !important;
    flex-direction: column !important;
    gap: 24px !important;
  }

  .enquiry-main-row > [class*="col-"]:first-child,
  .enquiry-main-row > [class*="col-"]:last-child {
    grid-column: auto !important;
    grid-row: auto !important;
    order: initial !important;
  }

  .enquiry-main-row > [class*="col-"]:last-child {
    order: 1 !important;
  }

  .enquiry-main-row > [class*="col-"]:first-child {
    order: 2 !important;
  }

  .enquiry-service-finder .service-finder-search-wrap {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 18px !important;
    padding: 22px !important;
    border-radius: 8px !important;
    background: #0f0f0f !important;
  }

  .enquiry-service-finder .service-finder-search-copy h3 {
    font-size: 22px !important;
    line-height: 1.12 !important;
  }

  .enquiry-service-finder .service-popular {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  .enquiry-service-finder .service-pill {
    min-height: 36px !important;
    padding-left: 6px !important;
    padding-right: 6px !important;
    font-size: 11px !important;
    line-height: 1.2 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  .services-page-primary-btn,
  .services-page-ghost-btn,
  .about-page-cta-btn,
  .about-page-ghost-btn,
  .contact-page-primary-btn,
  .contact-page-ghost-btn,
  .service-card-link,
  .service-pill,
  .service-search-field,
  .service-search-field input,
  .service-finder-search-wrap,
  .enquiry-service-finder,
  .enquiry-intro-card,
  .enquiry-side-panel,
  .smart-enquiry-form {
    box-sizing: border-box !important;
    max-width: 100% !important;
  }
}

/* =========================================================
   Field fill states
   - Empty fields (text, textarea, dropdown trigger) all share
     the same dark underline look.
   - Once a field has a value, it turns into a white box with
     dark text ("filled = white").
   - The dropdown menu itself stays white when opened (unchanged).
   ========================================================= */

/* --- Dropdown trigger: dark underline to match the text fields --- */
.smart-enquiry-form .prism-select-button {
  border: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.36);
  border-radius: 0;
  background: transparent;
  color: #ffffff;
  box-shadow: none;
}

/* "Select" placeholder + chevron, readable on the dark trigger */
.smart-enquiry-form .prism-select:not(.has-value) .prism-select-value {
  color: rgba(255, 255, 255, 0.5);
}

.smart-enquiry-form .prism-select:not(.has-value) .prism-select-icon {
  border-color: transparent;
  background: transparent;
}

.smart-enquiry-form .prism-select-button:focus {
  outline: 0;
  border-bottom-color: rgba(255, 255, 255, 0.85);
  box-shadow: none;
}

/* --- Dropdown trigger: turns into a white box once a value is chosen --- */
.smart-enquiry-form .prism-select.has-value .prism-select-button {
  border: 1px solid rgba(8, 8, 8, 0.16);
  border-radius: 16px;
  background: #fffdf8;
  color: #080808;
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.smart-enquiry-form .prism-select.has-value .prism-select-value {
  color: #080808;
}

.smart-enquiry-form .prism-select.has-value .prism-select-icon {
  border-color: rgba(8, 8, 8, 0.1);
  background: #080808;
}

/* --- Text inputs & textarea: turn into a white box once filled --- */
.smart-enquiry-form .form-control.is-filled {
  border: 1px solid rgba(8, 8, 8, 0.16) !important;
  border-radius: 12px !important;
  background: #fffdf8 !important;
  color: #080808 !important;
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.18) !important;
  padding-left: 16px !important;
  padding-right: 16px !important;
}

.smart-enquiry-form textarea.form-control.is-filled {
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.16) !important;
}

.smart-enquiry-form .form-control.is-filled::placeholder {
  color: rgba(8, 8, 8, 0.45) !important;
}

.smart-enquiry-form .form-control.is-filled:focus {
  border-color: rgba(8, 8, 8, 0.4) !important;
  border-bottom-color: rgba(8, 8, 8, 0.4) !important;
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.18) !important;
}

/* Keep closed dropdowns normal; only the opened menu becomes the white picker. */
.smart-enquiry-form .prism-select .prism-select-button,
.smart-enquiry-form .prism-select.has-value .prism-select-button {
  min-height: 52px !important;
  padding: 10px 40px 10px 0 !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.36) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #ffffff !important;
  box-shadow: none !important;
}

.smart-enquiry-form .prism-select .prism-select-value,
.smart-enquiry-form .prism-select.has-value .prism-select-value {
  color: #ffffff !important;
}

.smart-enquiry-form .prism-select:not(.has-value) .prism-select-value {
  color: rgba(255, 255, 255, 0.5) !important;
}

.smart-enquiry-form .prism-select .prism-select-icon,
.smart-enquiry-form .prism-select.has-value .prism-select-icon {
  right: 0 !important;
  width: 28px !important;
  height: 28px !important;
  border-color: rgba(255, 255, 255, 0.18) !important;
  background: rgba(255, 255, 255, 0.05) !important;
}

.smart-enquiry-form .prism-select .prism-select-icon:before,
.smart-enquiry-form .prism-select .prism-select-icon:after {
  background: rgba(255, 255, 255, 0.86) !important;
}

.smart-enquiry-form .prism-select .prism-select-button:focus,
.smart-enquiry-form .prism-select.has-value .prism-select-button:focus {
  border-bottom-color: rgba(255, 255, 255, 0.86) !important;
  box-shadow: none !important;
}

@media screen and (max-width: 767px) {
  .smart-enquiry-form .prism-select.is-open .prism-select-list {
    position: fixed !important;
    left: 18px !important;
    right: 18px !important;
    top: auto !important;
    bottom: 18px !important;
    z-index: 1700 !important;
    display: grid !important;
    max-height: min(390px, 62vh) !important;
    border-radius: 22px !important;
  }
}

@media screen and (max-width: 767px) {
  body.prism-picker-open:after {
    content: "" !important;
    position: fixed !important;
    inset: 0 !important;
    z-index: 1680 !important;
    background: rgba(0, 0, 0, 0.42) !important;
    -webkit-backdrop-filter: blur(8px) !important;
    backdrop-filter: blur(8px) !important;
    pointer-events: none !important;
  }

  body.prism-picker-open .smart-enquiry-form .prism-select.is-open:before {
    content: none !important;
  }

  .prism-select-list-body {
    position: fixed !important;
    left: 18px !important;
    right: 18px !important;
    top: auto !important;
    bottom: 18px !important;
    z-index: 1700 !important;
    display: grid !important;
    gap: 3px !important;
    max-height: min(390px, 62vh) !important;
    padding: 10px !important;
    overflow-y: auto !important;
    border: 1px solid rgba(8, 8, 8, 0.12) !important;
    border-radius: 22px !important;
    background: #ffffff !important;
    box-shadow: 0 28px 90px rgba(0, 0, 0, 0.46) !important;
  }

  .prism-select-list-body .prism-select-option {
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    min-height: 48px !important;
    padding: 0 14px !important;
    border: 0 !important;
    border-radius: 12px !important;
    background: transparent !important;
    color: #080808 !important;
    font-family: 'Manrope', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    line-height: 1.25 !important;
    text-align: left !important;
  }

  .prism-select-list-body .prism-select-option:hover,
  .prism-select-list-body .prism-select-option.is-selected {
    background: #f3f0e9 !important;
  }

  .prism-select-list-body .prism-select-option.is-selected:after {
    content: "" !important;
    width: 8px !important;
    height: 14px !important;
    margin-left: auto !important;
    border-right: 2px solid #080808 !important;
    border-bottom: 2px solid #080808 !important;
    transform: rotate(45deg) !important;
  }
}

/* =========================================================
   Futuristic mobile menu (mobile only, <= 991px)
   Restyles the existing #offcanvas markup — no HTML/JS change.
   Prism accent gradient: blue -> violet -> amber (the logo).
   ========================================================= */
@keyframes prismMenuIn {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}

@media screen and (max-width: 991px) {
  /* --- Toggle: seamless premium icon (no box), menu <-> close cross-fade --- */
  .nav-toggle,
  .nav-toggle.nav-white,
  .nav-toggle.active,
  .nav-toggle.nav-white.active {
    top: 12px !important;
    left: 12px !important;
    right: auto !important;
    width: 44px !important;
    height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    z-index: 2101 !important;
    border: 0 !important;
    border-radius: 12px !important;
    background: transparent !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    box-shadow: none !important;
  }

  /* hide the old line-based glyph entirely (replaced by inline SVG) */
  .nav-toggle i,
  .nav-toggle.nav-white > i {
    display: none !important;
  }

  .nav-toggle .nav-toggle-glyph {
    position: relative !important;
    display: inline-flex !important;
    width: 24px !important;
    height: 24px !important;
    color: #ffffff !important;
  }

  .nav-toggle .nav-ico {
    position: absolute !important;
    inset: 0 !important;
    width: 24px !important;
    height: 24px !important;
    transition: opacity 220ms ease, transform 260ms cubic-bezier(0.22, 1, 0.36, 1) !important;
  }

  .nav-toggle .nav-ico-menu { opacity: 1 !important; transform: rotate(0) scale(1) !important; }
  .nav-toggle .nav-ico-close { opacity: 0 !important; transform: rotate(-90deg) scale(0.65) !important; }

  .nav-toggle.active .nav-ico-menu { opacity: 0 !important; transform: rotate(90deg) scale(0.65) !important; }
  .nav-toggle.active .nav-ico-close { opacity: 1 !important; transform: rotate(0) scale(1) !important; }

  /* Let the page show through (blurred) behind the panel: lighten the
     dark page overlay so the frosted glass has something to reveal. */
  .offcanvas #page:after {
    background: rgba(10, 10, 10, 0.32) !important;
  }

  /* --- Panel: translucent frosted grey glass --- */
  #offcanvas {
    inset: 0 !important;
    padding: 64px 24px 28px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: rgba(20, 20, 22, 0.46) !important;
    -webkit-backdrop-filter: blur(26px) saturate(115%) !important;
    backdrop-filter: blur(26px) saturate(115%) !important;
    box-shadow: none !important;
  }

  /* faint tech grid, faded out toward the edges */
  #offcanvas:before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 0 !important;
    background-image:
      linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px) !important;
    background-size: 46px 46px !important;
    -webkit-mask-image: radial-gradient(circle at 50% 34%, #000 0%, transparent 80%) !important;
    mask-image: radial-gradient(circle at 50% 34%, #000 0%, transparent 80%) !important;
    pointer-events: none !important;
  }

  /* divider now lives on the head itself (see border-bottom below) */
  #offcanvas:after {
    display: none !important;
  }

  /* Keep the ONE existing nav-bar logo visible while the menu is open,
     instead of swapping in a second logo inside the panel. */
  body.offcanvas .nav #logo {
    visibility: visible !important;
    z-index: 2102 !important;
  }

  /* Hide the closed-nav's right-side call dot/icon so only the logo and
     the close button float over the open panel. */
  body.offcanvas .nav:before,
  body.offcanvas .nav:after {
    display: none !important;
  }

  /* Hide the panel's duplicate brand/header entirely. */
  .offcanvas-panel-head,
  .offcanvas-menu-label {
    display: none !important;
  }

  /* --- Menu list --- */
  .offcanvas-menu-list {
    position: relative !important;
    z-index: 2 !important;
    justify-content: flex-start !important;
    min-height: 0 !important;
    margin-top: 14px !important;
    padding-top: 22px !important;
    border-top: 1px solid rgba(255, 255, 255, 0.10) !important;
  }

  #offcanvas ul {
    display: grid !important;
    gap: 0 !important;
  }

  /* Clean, minimal text links — no number, no arrow, no box. */
  #offcanvas ul li a {
    position: relative !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    min-height: 58px !important;
    padding: 0 2px !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: rgba(255, 255, 255, 0.74) !important;
    font-family: 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
    font-size: 19px !important;
    font-weight: 500 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    text-decoration: none !important;
    transition: color 200ms ease, padding-left 220ms ease !important;
  }

  #offcanvas ul li:not(.btn-cta) a:before,
  #offcanvas ul li:not(.btn-cta) a:after {
    content: none !important;
  }

  /* Hover / current page: just brighten + bold, a touch of indent. No box. */
  #offcanvas ul li a:hover,
  #offcanvas ul li.active > a {
    background: transparent !important;
    border-color: transparent !important;
    border-bottom-color: rgba(255, 255, 255, 0.18) !important;
    color: #ffffff !important;
    font-weight: 700 !important;
    padding-left: 6px !important;
    transform: none !important;
  }

  /* --- CTA: full prism gradient --- */
  #offcanvas ul li.btn-cta {
    margin-top: 18px !important;
  }

  #offcanvas ul li.btn-cta a {
    min-height: 60px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 16px !important;
    background: transparent !important;
  }

  #offcanvas ul li.btn-cta a span {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-height: 60px !important;
    border: 0 !important;
    border-radius: 16px !important;
    background: #ffffff !important;
    color: #080808 !important;
    font-family: 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    letter-spacing: 0.04em !important;
    text-transform: none !important;
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.35) !important;
  }

  /* --- Contact panel --- */
  .offcanvas-contact-panel {
    position: relative !important;
    z-index: 2 !important;
    margin-top: auto !important;
    padding-top: 20px !important;
    border-top: 1px solid rgba(255, 255, 255, 0.08) !important;
    text-align: left !important;
  }

  .offcanvas-contact-panel > span {
    color: rgba(255, 255, 255, 0.5) !important;
    letter-spacing: 0.16em !important;
  }

  .offcanvas-contact-actions {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    max-width: none !important;
    margin: 0 !important;
    gap: 8px !important;
  }

  .offcanvas-contact-actions a {
    min-height: 46px !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    border-radius: 13px !important;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.02)) !important;
    color: rgba(255, 255, 255, 0.92) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 0.04em !important;
    -webkit-backdrop-filter: blur(6px) !important;
    backdrop-filter: blur(6px) !important;
  }

  /* --- Staggered entrance, applied only while the menu is open --- */
  .offcanvas #offcanvas .offcanvas-brand,
  .offcanvas #offcanvas ul li,
  .offcanvas #offcanvas .offcanvas-contact-panel {
    animation: prismMenuIn 480ms cubic-bezier(0.22, 1, 0.36, 1) both !important;
  }
  .offcanvas #offcanvas .offcanvas-brand { animation-delay: 0s !important; }
  .offcanvas #offcanvas ul li:nth-child(1) { animation-delay: 0.07s !important; }
  .offcanvas #offcanvas ul li:nth-child(2) { animation-delay: 0.12s !important; }
  .offcanvas #offcanvas ul li:nth-child(3) { animation-delay: 0.17s !important; }
  .offcanvas #offcanvas ul li:nth-child(4) { animation-delay: 0.22s !important; }
  .offcanvas #offcanvas ul li:nth-child(5) { animation-delay: 0.27s !important; }
  .offcanvas #offcanvas ul li:nth-child(6) { animation-delay: 0.32s !important; }
  .offcanvas #offcanvas .offcanvas-contact-panel { animation-delay: 0.34s !important; }

  @media (prefers-reduced-motion: reduce) {
    .offcanvas #offcanvas .offcanvas-brand,
    .offcanvas #offcanvas ul li,
    .offcanvas #offcanvas .offcanvas-contact-panel {
      animation: none !important;
    }
  }
}

/* Fix: the CTA card is dark, so a ".dark" ghost button (black text/border)
   was invisible on it. Make ghost buttons inside dark CTA cards light. */
.services-page-cta-card .services-page-ghost-btn,
.services-page-cta-card .services-page-ghost-btn.dark,
.about-page-cta-card .about-page-ghost-btn,
.about-page-cta-card .about-page-ghost-btn.dark,
.contact-page-cta-card .contact-page-ghost-btn,
.contact-page-cta-card .contact-page-ghost-btn.dark {
  border-color: rgba(255, 255, 255, 0.6) !important;
  color: #ffffff !important;
}

.services-page-cta-card .services-page-ghost-btn:hover,
.services-page-cta-card .services-page-ghost-btn.dark:hover,
.about-page-cta-card .about-page-ghost-btn:hover,
.about-page-cta-card .about-page-ghost-btn.dark:hover,
.contact-page-cta-card .contact-page-ghost-btn:hover,
.contact-page-cta-card .contact-page-ghost-btn.dark:hover {
  background: #ffffff !important;
  color: #080808 !important;
}

/* =========================================================
   Floating contact dock — Messenger-style speed dial.
   One trigger circle (.prism-dock-toggle) that fans out
   Call + Email + WhatsApp (.prism-dock-actions) on tap.
   ========================================================= */
.icon-sidebar-desk {
  position: fixed !important;
  right: 18px !important;
  bottom: 22px !important;
  top: auto !important;
  left: auto !important;
  z-index: 99999 !important;
  display: block !important;
  width: 58px !important;
  height: 58px !important;
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
  visibility: visible !important;
}

/* shared circular button base */
.icon-sidebar-desk .prism-fab {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 58px !important;
  height: 58px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  color: #ffffff !important;
  font-size: 0 !important;
  line-height: 0 !important;
  text-decoration: none !important;
  cursor: pointer !important;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.28) !important;
  transition: transform 240ms cubic-bezier(0.22, 1, 0.36, 1), opacity 220ms ease, box-shadow 220ms ease !important;
}

.icon-sidebar-desk .prism-fab img { display: none !important; }

.icon-sidebar-desk .prism-fab:before {
  font-family: 'icomoon' !important;
  line-height: 1 !important;
  -webkit-font-smoothing: antialiased !important;
}

/* --- the fan-out actions sit ABOVE the toggle, collapsed by default --- */
.prism-dock-actions {
  position: absolute !important;
  right: 0 !important;
  bottom: calc(100% + 14px) !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-end !important;
  gap: 14px !important;
}

.prism-dock-actions .prism-fab {
  opacity: 0 !important;
  transform: translateY(16px) scale(0.4) !important;
  pointer-events: none !important;
}

.icon-sidebar-desk.is-open .prism-dock-actions .prism-fab {
  opacity: 1 !important;
  transform: translateY(0) scale(1) !important;
  pointer-events: auto !important;
}

/* stagger: the one nearest the toggle (WhatsApp) appears first */
.icon-sidebar-desk.is-open .prism-fab-whatsapp { transition-delay: 40ms !important; }
.icon-sidebar-desk.is-open .prism-fab-email { transition-delay: 95ms !important; }
.icon-sidebar-desk.is-open .prism-fab-call { transition-delay: 150ms !important; }

.icon-sidebar-desk .prism-fab:hover { transform: translateY(0) scale(1.07) !important; }

/* WhatsApp */
.prism-fab-whatsapp {
  background: #25d366 !important;
  box-shadow: 0 12px 28px rgba(37, 211, 102, 0.42), 0 4px 14px rgba(0, 0, 0, 0.26) !important;
}
.prism-fab-whatsapp:before { content: "\eac3" !important; font-size: 30px !important; color: #ffffff !important; }

/* Call (PRISM gold) */
.prism-fab-call {
  background: #d3a44f !important;
  box-shadow: 0 12px 28px rgba(211, 164, 79, 0.4), 0 4px 14px rgba(0, 0, 0, 0.26) !important;
}
.prism-fab-call:before { content: "\e98a" !important; font-size: 25px !important; color: #111111 !important; }

/* Email (graphite) */
.prism-fab-email {
  background: #141414 !important;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.42) !important;
}
.prism-fab-email:before { content: "\e9c2" !important; font-size: 25px !important; color: #ffffff !important; }

/* --- the main trigger --- */
.prism-dock-toggle {
  background: #25d366 !important;
  box-shadow: 0 12px 30px rgba(37, 211, 102, 0.45), 0 4px 14px rgba(0, 0, 0, 0.26) !important;
}

.prism-dock-glyph {
  position: relative !important;
  display: inline-flex !important;
  width: 26px !important;
  height: 26px !important;
  color: #ffffff !important;
}

.prism-dock-glyph .dock-ico {
  position: absolute !important;
  inset: 0 !important;
  width: 26px !important;
  height: 26px !important;
  transition: opacity 220ms ease, transform 260ms cubic-bezier(0.22, 1, 0.36, 1) !important;
}

.prism-dock-glyph .dock-ico-open { opacity: 1 !important; transform: rotate(0) scale(1) !important; }
.prism-dock-glyph .dock-ico-close { opacity: 0 !important; transform: rotate(-90deg) scale(0.6) !important; }

.icon-sidebar-desk.is-open .prism-dock-toggle { background: #1ea955 !important; }
.icon-sidebar-desk.is-open .dock-ico-open { opacity: 0 !important; transform: rotate(90deg) scale(0.6) !important; }
.icon-sidebar-desk.is-open .dock-ico-close { opacity: 1 !important; transform: rotate(0) scale(1) !important; }

/* hover label that slides out to the left (desktop) */
.prism-fab-label {
  position: absolute !important;
  right: calc(100% + 12px) !important;
  top: 50% !important;
  transform: translateY(-50%) translateX(6px) !important;
  padding: 7px 12px !important;
  border-radius: 999px !important;
  background: rgba(17, 17, 17, 0.94) !important;
  color: #ffffff !important;
  font-family: 'Manrope', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  opacity: 0 !important;
  pointer-events: none !important;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.3) !important;
  transition: opacity 200ms ease, transform 200ms ease !important;
}
.prism-fab:hover .prism-fab-label {
  opacity: 1 !important;
  transform: translateY(-50%) translateX(0) !important;
}

/* gentle attention pulse on the trigger while it is closed */
.prism-dock-toggle:after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  border-radius: 50% !important;
  background: #25d366 !important;
  z-index: -1 !important;
  animation: prismWaPulse 2.6s ease-out infinite !important;
}
.icon-sidebar-desk.is-open .prism-dock-toggle:after { animation: none !important; opacity: 0 !important; }

@keyframes prismWaPulse {
  0%   { transform: scale(1); opacity: 0.45; }
  70%  { transform: scale(1.7); opacity: 0; }
  100% { transform: scale(1.7); opacity: 0; }
}

/* Fallback (if JS doesn't run): keep the original anchor as green WhatsApp */
.icon-sidebar-desk a.call:not(.prism-fab) {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 58px !important;
  height: 58px !important;
  border-radius: 50% !important;
  background: #25d366 !important;
  box-shadow: 0 12px 28px rgba(37, 211, 102, 0.42) !important;
  font-size: 0 !important;
}
.icon-sidebar-desk a.call:not(.prism-fab) img { display: none !important; }
.icon-sidebar-desk a.call:not(.prism-fab):before {
  content: "\eac3" !important;
  font-family: 'icomoon' !important;
  font-size: 30px !important;
  line-height: 1 !important;
  color: #ffffff !important;
}

@media (prefers-reduced-motion: reduce) {
  .prism-dock-toggle:after { animation: none !important; display: none !important; }
}

@media screen and (max-width: 767px) {
  .icon-sidebar-desk { right: 14px !important; bottom: 16px !important; width: 54px !important; height: 54px !important; }
  .icon-sidebar-desk .prism-fab { width: 54px !important; height: 54px !important; }
  .prism-dock-actions { gap: 13px !important; bottom: calc(100% + 13px) !important; }
  .prism-fab-whatsapp:before { font-size: 28px !important; }
  .prism-fab-call:before,
  .prism-fab-email:before { font-size: 23px !important; }
  .prism-fab-label { display: none !important; }
}

/* Don't overlap the open mobile menu (it has its own contact links). */
body.offcanvas .icon-sidebar-desk {
  display: none !important;
}

/* =========================================================
   Premium footer CTA cards (Call + Email)
   Glass cards with a colored icon badge, label + value,
   and an arrow that nudges on hover. Uses existing icomoon
   icons; arranged via grid-areas (no HTML change needed).
   ========================================================= */
#footer .footer-cta-actions {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 14px !important;
  align-items: stretch !important;
}

#footer .footer-action-card,
#footer .footer-action-card:first-child {
  display: grid !important;
  grid-template-columns: 46px 1fr auto !important;
  grid-template-areas: "icon label arrow" "icon value arrow" !important;
  column-gap: 14px !important;
  row-gap: 2px !important;
  align-items: center !important;
  min-height: 74px !important;
  padding: 13px 18px !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  border-radius: 16px !important;
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.02)) !important;
  color: #ffffff !important;
  text-align: left !important;
  text-decoration: none !important;
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.28) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  backdrop-filter: blur(8px) !important;
  transition: transform 240ms cubic-bezier(0.22, 1, 0.36, 1), border-color 240ms ease, box-shadow 240ms ease !important;
}

#footer .footer-action-card:hover {
  transform: translateY(-3px) !important;
  border-color: rgba(255, 255, 255, 0.3) !important;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.4) !important;
}

/* circular icon badge */
#footer .footer-action-card .footer-action-icon {
  grid-area: icon !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 46px !important;
  height: 46px !important;
  margin: 0 !important;
  border-radius: 50% !important;
  font-size: 20px !important;
}
#footer .footer-action-card:first-child .footer-action-icon {
  background: linear-gradient(140deg, #2ee06f, #1fae57) !important;
  color: #08240f !important;
  box-shadow: 0 8px 18px rgba(37, 211, 102, 0.35) !important;
}
#footer .footer-action-card:last-child .footer-action-icon {
  background: linear-gradient(140deg, #ecd08a, #d3a44f) !important;
  color: #2a1e06 !important;
  box-shadow: 0 8px 18px rgba(211, 164, 79, 0.32) !important;
}
#footer .footer-action-card .footer-action-icon:before {
  color: inherit !important;
}

/* label (small, muted) + value (bold white) */
#footer .footer-action-card span,
#footer .footer-action-card:first-child span {
  grid-area: label !important;
  color: rgba(255, 255, 255, 0.55) !important;
  font-family: 'Manrope', sans-serif !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  line-height: 1 !important;
}
#footer .footer-action-card strong,
#footer .footer-action-card:first-child strong {
  grid-area: value !important;
  color: #ffffff !important;
  font-family: 'Manrope', sans-serif !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
  line-height: 1.2 !important;
}

/* arrow */
#footer .footer-action-card:after {
  grid-area: arrow !important;
  content: "" !important;
  width: 9px !important;
  height: 9px !important;
  align-self: center !important;
  border-right: 2px solid rgba(255, 255, 255, 0.5) !important;
  border-top: 2px solid rgba(255, 255, 255, 0.5) !important;
  transform: rotate(45deg) !important;
  transition: transform 220ms ease, border-color 220ms ease !important;
}
#footer .footer-action-card:hover:after {
  transform: translateX(3px) rotate(45deg) !important;
  border-color: #ffffff !important;
}

@media screen and (max-width: 767px) {
  #footer .footer-cta-actions {
    grid-template-columns: 1fr !important;
  }
}

/* =========================================================
   Slide-to-action footer CTAs — MOBILE ONLY.
   Desktop keeps the premium .footer-action-card cards;
   on mobile those are hidden and replaced by slide tracks.
   ========================================================= */
.prism-slide { display: none; }

@keyframes prismSlideHint {
  0%, 100% { opacity: 0.35; transform: translateX(0); }
  50% { opacity: 1; transform: translateX(5px); }
}

@media screen and (max-width: 767px) {
  #footer .footer-cta-actions .footer-action-card { display: none !important; }

  .prism-slide {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    height: 60px !important;
    margin: 0 !important;
    border-radius: 999px !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    background: rgba(255, 255, 255, 0.06) !important;
    overflow: hidden !important;
    -webkit-user-select: none !important;
    user-select: none !important;
    touch-action: pan-y !important;
    box-shadow: 0 10px 26px rgba(0, 0, 0, 0.28) !important;
  }

  .prism-slide-fill {
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    bottom: 0 !important;
    width: 55px !important;
    border-radius: 999px !important;
    z-index: 1 !important;
  }
  .prism-slide-call .prism-slide-fill {
    background: linear-gradient(90deg, rgba(37, 211, 102, 0.25), rgba(37, 211, 102, 0.55)) !important;
  }
  .prism-slide-email .prism-slide-fill {
    background: linear-gradient(90deg, rgba(211, 164, 79, 0.25), rgba(211, 164, 79, 0.55)) !important;
  }

  .prism-slide-label {
    position: absolute !important;
    inset: 0 !important;
    z-index: 2 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    padding-left: 46px !important;
    color: rgba(255, 255, 255, 0.78) !important;
    font-family: 'Manrope', sans-serif !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    pointer-events: none !important;
  }
  .prism-slide-chevrons {
    font-size: 16px !important;
    letter-spacing: 1px !important;
    animation: prismSlideHint 1.5s ease-in-out infinite !important;
  }

  .prism-slide-knob {
    position: absolute !important;
    left: 5px !important;
    top: 50% !important;
    z-index: 3 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 50px !important;
    height: 50px !important;
    margin-top: -25px !important;
    border-radius: 50% !important;
    color: #ffffff !important;
    font-size: 20px !important;
    cursor: grab !important;
    touch-action: none !important;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.35) !important;
    will-change: transform !important;
  }
  .prism-slide-call .prism-slide-knob { background: #25d366 !important; color: #ffffff !important; }
  .prism-slide-email .prism-slide-knob { background: #d3a44f !important; color: #1b1303 !important; }
  .prism-slide.is-dragging .prism-slide-knob { cursor: grabbing !important; }
  .prism-slide-knob i { line-height: 1 !important; }

  .prism-slide.is-complete .prism-slide-label { opacity: 0 !important; }
}

@media (prefers-reduced-motion: reduce) {
  .prism-slide-chevrons { animation: none !important; }
}

/* =========================================================
   "The PRISM route" — animated process timeline.
   Scroll-reveal + a progress rail that draws down and lights
   each step. Reveal is scoped to .prism-trust-anim so no-JS
   visitors still see everything.
   ========================================================= */
.prism-trust-anim .homepage-trust-item {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}
.prism-trust-anim .homepage-trust-item.is-revealed {
  opacity: 1;
  transform: none;
}
.prism-trust-anim .homepage-trust-item:nth-child(1) { transition-delay: 0.04s; }
.prism-trust-anim .homepage-trust-item:nth-child(2) { transition-delay: 0.12s; }
.prism-trust-anim .homepage-trust-item:nth-child(3) { transition-delay: 0.20s; }
.prism-trust-anim .homepage-trust-item:nth-child(4) { transition-delay: 0.28s; }

@media screen and (min-width: 768px) {
  .homepage-trust-item:hover { background: rgba(8, 8, 8, 0.04) !important; }
}

/* ---- Mobile: badges light up green as you scroll through the steps ---- */
@media screen and (max-width: 767px) {
  .homepage-trust-item {
    transition: border-color 0.35s ease, box-shadow 0.35s ease, opacity 0.6s ease, transform 0.6s cubic-bezier(0.22, 1, 0.36, 1) !important;
  }

  .homepage-trust-item:before {
    transition: background 0.35s ease, border-color 0.35s ease, color 0.35s ease, transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.35s ease !important;
  }

  /* steps already passed stay filled gold */
  .homepage-trust-item.is-passed:before {
    background: #c89740 !important;
    border-color: #c89740 !important;
    color: #1b1303 !important;
  }

  /* the active step glows + scales, and its card lights up */
  .homepage-trust-item.is-active:before {
    background: linear-gradient(140deg, #e8c878, #d3a44f) !important;
    border-color: #e8c878 !important;
    color: #2a1e06 !important;
    transform: scale(1.16) !important;
    box-shadow: 0 0 0 6px rgba(211, 164, 79, 0.16), 0 6px 16px rgba(211, 164, 79, 0.4) !important;
  }
  .homepage-trust-item.is-active {
    border-color: rgba(211, 164, 79, 0.5) !important;
    box-shadow: 0 0 0 1px rgba(211, 164, 79, 0.22), 0 14px 30px rgba(0, 0, 0, 0.45) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .prism-trust-anim .homepage-trust-item { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* =========================================================
   Site-wide scroll-reveal + shared gold accent token.
   Elements fade + rise as they enter view (web + mobile).
   Scoped to .prism-reveal (added by JS) so no-JS visitors
   see everything; a JS failsafe also un-hides after load.
   ========================================================= */
:root { --prism-accent: #d3a44f; }

.prism-reveal .reveal-up {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s ease, transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}
.prism-reveal .reveal-up.is-in {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  .prism-reveal .reveal-up {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* =========================================================
   PRISM nav brand controls
   Desktop logo is visually scaled to 88px while the nav still reserves
   the original 66px layout box, so the bar height does not grow.
   ========================================================= */
:root {
  --nav-height-desktop: 84px;
  --prism-nav-logo-desktop: 88px;
  --prism-nav-logo-desktop-box: 66px;
  --prism-nav-logo-desktop-scale: 1.33;
  --prism-nav-logo-desktop-y: -2px;
  --prism-nav-logo-gap-desktop: 3px;
  --prism-nav-wordmark-size-desktop: 24px;
  --prism-nav-wordmark-weight: 800;
  --prism-nav-wordmark-spacing: 0.02em;
  --prism-nav-logo-mobile: 48px;
  --prism-nav-logo-tight: 42px;
}

.logo-link {
  gap: var(--prism-nav-logo-gap-desktop) !important;
}

.logo-link:before {
  flex: 0 0 var(--prism-nav-logo-desktop-box) !important;
  width: var(--prism-nav-logo-desktop-box) !important;
  height: var(--prism-nav-logo-desktop-box) !important;
  transform: translateY(var(--prism-nav-logo-desktop-y)) scale(var(--prism-nav-logo-desktop-scale)) !important;
  transform-origin: center center !important;
  will-change: transform !important;
}

.prism-logo-mark:after {
  content: none !important;
  display: none !important;
}

.prism-logo-mark.prism-brand-reveal {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  color: #050505 !important;
  font-family: 'Outfit', 'Manrope', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size: var(--prism-nav-wordmark-size-desktop) !important;
  font-weight: var(--prism-nav-wordmark-weight) !important;
  letter-spacing: var(--prism-nav-wordmark-spacing) !important;
  line-height: 1 !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  perspective: 460px !important;
}

.prism-brand-letter {
  font-weight: inherit !important;
}

.home-page #hero {
  margin-top: 24px !important;
}

@media screen and (min-width: 992px) {
  body.home-page #hero .flexslider .slider-text > .slider-text-inner {
    transform: translateY(34px) !important;
  }
}

.prism-logo-mark.prism-brand-reveal:before {
  content: "" !important;
  position: absolute !important;
  inset: -8px -20px !important;
  z-index: 2 !important;
  pointer-events: none !important;
  background: linear-gradient(105deg, transparent 0%, rgba(255, 255, 255, 0.72) 45%, transparent 70%) !important;
  transform: translateX(-130%) skewX(-14deg) !important;
}

.prism-logo-mark.prism-brand-reveal.is-visible:before {
  animation: prismBrandSheen 1200ms cubic-bezier(0.22, 1, 0.36, 1) 360ms both !important;
}

.prism-brand-letter {
  display: inline-block !important;
  opacity: 0 !important;
  transform: translateY(10px) rotateX(72deg) scale(0.96) !important;
  transform-origin: 50% 80% !important;
  filter: blur(5px) !important;
  transition:
    opacity 520ms ease,
    transform 680ms cubic-bezier(0.16, 1, 0.3, 1),
    filter 520ms ease !important;
  will-change: opacity, transform, filter !important;
}

.prism-brand-letter.is-space {
  width: 0.46em !important;
}

.prism-logo-mark.is-visible .prism-brand-letter {
  opacity: 1 !important;
  transform: translateY(0) rotateX(0deg) scale(1) !important;
  filter: blur(0) !important;
}

.logo-link:hover .prism-logo-mark.is-visible .prism-brand-letter {
  transform: translateY(-1px) rotateX(0deg) scale(1) !important;
}

@keyframes prismBrandSheen {
  from { transform: translateX(-130%) skewX(-14deg); opacity: 0; }
  20% { opacity: 0.9; }
  to { transform: translateX(130%) skewX(-14deg); opacity: 0; }
}

@media screen and (max-width: 991px) {
  .nav #logo {
    max-width: calc(100vw - 96px) !important;
  }

  .logo-link {
    gap: 8px !important;
  }

  .logo-link:before {
    flex: 0 0 var(--prism-nav-logo-mobile) !important;
    flex-basis: var(--prism-nav-logo-mobile) !important;
    width: var(--prism-nav-logo-mobile) !important;
    height: var(--prism-nav-logo-mobile) !important;
    transform: none !important;
  }

  .prism-logo-mark {
    color: #ffffff !important;
    font-size: 13.5px !important;
    font-weight: 800 !important;
    letter-spacing: 0.035em !important;
  }

  .prism-logo-mark.prism-brand-reveal {
    color: #ffffff !important;
  }

  .home-page #hero {
    margin-top: var(--nav-height-mobile) !important;
  }
}

@media screen and (max-width: 380px) {
  .logo-link:before {
    flex-basis: var(--prism-nav-logo-tight) !important;
    width: var(--prism-nav-logo-tight) !important;
    height: var(--prism-nav-logo-tight) !important;
  }

  .prism-logo-mark {
    font-size: 11.5px !important;
    letter-spacing: 0.035em !important;
  }
}

/* Grey glass nav after scrolling. */
.nav.is-scrolled {
  background: rgba(34, 34, 34, 0.42) !important;
  border-bottom-color: rgba(255, 255, 255, 0.16) !important;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.12) !important;
  -webkit-backdrop-filter: blur(18px) saturate(118%) !important;
  backdrop-filter: blur(18px) saturate(118%) !important;
}

.nav.is-scrolled #logo,
.nav.is-scrolled .prism-logo-mark,
.nav.is-scrolled .prism-logo-mark.prism-brand-reveal,
.nav.is-scrolled ul li a,
.nav.is-scrolled ul li.active > a {
  color: #ffffff !important;
  text-shadow: 0 1px 14px rgba(0, 0, 0, 0.45) !important;
}

.nav.is-scrolled ul li a:after {
  background: #ffffff !important;
}

.nav.is-scrolled ul li.btn-cta a span {
  background: transparent !important;
  border: 1px solid rgba(255, 255, 255, 0.82) !important;
  color: #ffffff !important;
  box-shadow: none !important;
  text-shadow: 0 1px 14px rgba(0, 0, 0, 0.45) !important;
}

.nav.is-scrolled ul li.btn-cta a span:hover {
  background: #ffffff !important;
  color: #080808 !important;
  text-shadow: none !important;
}

@media (prefers-reduced-motion: reduce) {
  .prism-logo-mark.prism-brand-reveal:before {
    animation: none !important;
    display: none !important;
  }

  .prism-brand-letter {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    transition: none !important;
  }
}

/* =====================================================================
   Home hero fit (desktop >= 992px)
   The hero bleeds up under the fixed nav (margin-top: 24px), but its box
   height was sized to 100svh - nav-height (126px), so the box ended ~100px
   above the viewport bottom. On shorter laptop windows the vertically
   centred headline + copy + buttons overflowed the hard-height slide and
   the buttons were clipped by overflow:hidden. Size the box to fill the
   screen below the 24px margin, and let the headline ease down only on
   short viewports (it stays at 70px on normal screens, so the look is
   unchanged) so the buttons always remain inside the hero.
   ===================================================================== */
@media screen and (min-width: 992px) {
  body.home-page #hero {
    --hero-height: min(720px, calc(100svh - 24px)) !important;
  }

  body.home-page #hero .flexslider .slider-text > .slider-text-inner h1 {
    font-size: clamp(44px, min(7vw, 11vh), 70px) !important;
  }
}

/* =====================================================================
   "The PRISM route" — turn the four flat cells into a designed,
   centred process stepper: numbered steps (01-04), gold icon nodes, and
   a connecting rail so Listen -> Map -> Match -> Begin reads as one
   journey instead of four copy-pasted boxes. Desktop/tablet only; the
   mobile timeline treatment is left untouched.
   ===================================================================== */
@media screen and (min-width: 768px) {
  /* no slab: drop the cream panel so the steps sit straight on the black */
  .homepage-trust-panel {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
  }

  .homepage-trust-panel::before,
  .homepage-trust-panel::after {
    display: none !important;
  }

  .homepage-trust-panel > .row {
    counter-reset: prismstep !important;
  }

  .homepage-trust-item {
    counter-increment: prismstep !important;
    position: relative !important;
    border-left: 0 !important;
    padding: 60px 26px 42px !important;
    text-align: center !important;
    color: #ffffff !important;
    overflow: visible !important;
  }

  /* step index: 01 .. 04 */
  .homepage-trust-item::before {
    content: counter(prismstep, decimal-leading-zero) !important;
    position: absolute !important;
    top: 26px !important;
    left: 0 !important;
    right: 0 !important;
    text-align: center !important;
    color: #e8c878 !important;
    font-family: 'Sora', 'Outfit', sans-serif !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 0.32em !important;
    text-indent: 0.32em !important;
    opacity: 0.95 !important;
  }

  /* connecting rail from this step's node to the next */
  .homepage-trust-item::after {
    content: "" !important;
    position: absolute !important;
    top: 89px !important;
    left: 50% !important;
    width: 100% !important;
    height: 2px !important;
    background: linear-gradient(90deg, rgba(232, 200, 120, 0.60), rgba(232, 200, 120, 0.16)) !important;
    z-index: 0 !important;
  }

  .homepage-trust-item:last-child::after {
    display: none !important;
  }

  .homepage-trust-item h3 {
    position: relative !important;
    z-index: 1 !important;
    display: grid !important;
    justify-items: center !important;
    gap: 16px !important;
    margin: 0 0 14px !important;
    color: #ffffff !important;
    font-size: clamp(22px, 1.9vw, 28px) !important;
  }

  /* icon becomes a gold node sitting on the rail */
  .homepage-trust-item h3 i {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 58px !important;
    height: 58px !important;
    border-radius: 50% !important;
    background: linear-gradient(140deg, #f0d595 0%, #d3a44f 70%, #c89740 100%) !important;
    color: #2a1e06 !important;
    font-size: 24px !important;
    box-shadow: 0 10px 22px rgba(200, 151, 64, 0.34), inset 0 1px 0 rgba(255, 255, 255, 0.5) !important;
    transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.35s ease !important;
  }

  .homepage-trust-item p {
    max-width: 230px !important;
    margin: 0 auto !important;
    color: rgba(255, 255, 255, 0.66) !important;
  }

  /* refined hover: lift the node instead of tinting the whole cell */
  .homepage-trust-item:hover {
    background: transparent !important;
  }

  .homepage-trust-item:hover h3 i {
    transform: translateY(-3px) scale(1.06) !important;
    box-shadow: 0 16px 30px rgba(200, 151, 64, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.6) !important;
  }
}

/* =====================================================================
   Polish pass (desktop >= 768px): About pillars, About coverage,
   Services finder band, and the Services hero stat panel. Keeps each
   section's colour (cream stays cream, dark stays dark) but removes the
   flat/templated feel with gold icon nodes, clearer hierarchy, hover,
   and a balanced hero panel. Mobile keeps its own existing rules.
   ===================================================================== */
@media screen and (min-width: 768px) {

  /* ---- About page: "Academic Depth / Exam Readiness / Future Skills" ---- */
  .about-page-pillar-card {
    position: relative !important;
    padding: 34px 30px 30px !important;
    border: 0 !important;
    border-top: 0 !important;
    background: transparent !important;
    transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1) !important;
  }

  /* short gold accent replaces the full-width hairline */
  .about-page-pillar-card::before {
    content: "" !important;
    position: absolute !important;
    top: 0 !important;
    left: 30px !important;
    width: 44px !important;
    height: 3px !important;
    background: linear-gradient(90deg, #d3a44f, #b8893f) !important;
  }

  .about-page-pillar-icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 56px !important;
    height: 56px !important;
    margin-bottom: 20px !important;
    border: 1px solid rgba(184, 137, 63, 0.30) !important;
    border-radius: 16px !important;
    background: linear-gradient(150deg, rgba(184, 137, 63, 0.16), rgba(184, 137, 63, 0.07)) !important;
    color: var(--prism-brass) !important;
    transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), background 0.35s ease, color 0.35s ease, border-color 0.35s ease !important;
  }

  .about-page-pillar-icon i {
    font-size: 24px !important;
    color: inherit !important;
  }

  .about-page-pillar-card h3 {
    margin: 0 0 12px !important;
    font-size: 24px !important;
  }

  .about-page-pillar-card:hover {
    transform: translateY(-4px) !important;
  }

  .about-page-pillar-card:hover .about-page-pillar-icon {
    transform: translateY(-2px) !important;
    border-color: #c89740 !important;
    background: linear-gradient(150deg, #e8c878, #c89740) !important;
    color: #2a1e06 !important;
  }

  /* ---- About page: "01-04" coverage groups (dark) ---- */
  .about-page-coverage-card {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0 36px !important;
    border-top: 1px solid rgba(232, 200, 120, 0.28) !important;
  }

  .about-page-coverage-group {
    padding: 26px 0 24px !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12) !important;
    transition: padding-left 0.3s ease, border-color 0.3s ease !important;
  }

  .about-page-coverage-group h4 {
    grid-template-columns: 40px 1fr !important;
    gap: 16px !important;
    align-items: center !important;
  }

  .about-page-coverage-group h4::before {
    content: "0" counter(coverage-point) !important;
    counter-increment: coverage-point !important;
    color: #e8c878 !important;
    font-family: 'Sora', 'Outfit', sans-serif !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    opacity: 1 !important;
  }

  .about-page-coverage-group:hover {
    padding-left: 10px !important;
    border-color: rgba(232, 200, 120, 0.4) !important;
  }

  /* ---- Services page: search band ---- */
  .service-finder-search-wrap {
    border: 1px solid rgba(232, 200, 120, 0.22) !important;
    background:
      radial-gradient(120% 150% at 100% 0%, rgba(200, 151, 64, 0.10), rgba(200, 151, 64, 0) 55%),
      #101010 !important;
  }

  .service-search-field input {
    min-height: 60px !important;
    padding: 0 96px 0 18px !important;
    border: 1px solid rgba(255, 255, 255, 0.16) !important;
    border-radius: 12px !important;
    background: rgba(255, 255, 255, 0.04) !important;
    transition: border-color 0.25s ease, background 0.25s ease !important;
  }

  .service-search-field input:focus {
    border-color: rgba(232, 200, 120, 0.6) !important;
    background: rgba(255, 255, 255, 0.07) !important;
    outline: none !important;
  }

  .service-search-clear {
    right: 14px !important;
  }

  .service-pill {
    transition: border-color 0.25s ease, background 0.25s ease, color 0.25s ease !important;
  }

  .service-pill:hover {
    border-color: #c89740 !important;
    background: rgba(200, 151, 64, 0.12) !important;
    color: #ffffff !important;
  }

  /* ---- Services hero: balance the empty right side into a stat panel ---- */
  .services-page-hero-row {
    align-items: center !important;
  }

  .services-page-stat-shell {
    height: auto !important;
    justify-content: center !important;
    gap: 16px !important;
    padding: 28px !important;
    border: 1px solid rgba(232, 200, 120, 0.20) !important;
    border-radius: 16px !important;
    background:
      radial-gradient(120% 130% at 100% 0%, rgba(200, 151, 64, 0.12), rgba(200, 151, 64, 0) 55%),
      rgba(255, 255, 255, 0.02) !important;
    box-shadow: 0 24px 50px rgba(0, 0, 0, 0.35) !important;
  }
}

/* =====================================================================
   Mobile CTA buttons: the in-card action group inherited the hero's
   width (100vw - 48px), which is wider than the padded CTA card, so the
   buttons overflowed the card's right edge. Constrain them to the card.
   ===================================================================== */
@media screen and (max-width: 767px) {
  .services-page-cta-actions,
  .about-page-cta-actions,
  .contact-page-cta-actions {
    width: 100% !important;
    max-width: 100% !important;
  }

  .services-page-cta-actions a,
  .about-page-cta-actions a,
  .contact-page-cta-actions a {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* =====================================================================
   Scroll-to-top button (injected by goToTop() in main.js). Sits bottom
   left so it never collides with the WhatsApp dock on the right. Fades
   in after scrolling down; works on desktop and mobile.
   ===================================================================== */
.prism-gotop {
  position: fixed;
  left: 22px;
  bottom: 26px;
  z-index: 9998;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  padding: 0;
  border: 1px solid rgba(232, 200, 120, 0.40);
  border-radius: 50%;
  background: #111111;
  color: #ffffff;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.30);
  opacity: 0;
  visibility: hidden;
  transform: translateY(14px);
  transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s ease, border-color 0.25s ease, background 0.25s ease;
  cursor: pointer;
}

.prism-gotop.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.prism-gotop:hover {
  background: #000000;
  border-color: #e8c878;
  color: #f0d595;
}

.prism-gotop svg {
  width: 20px;
  height: 20px;
}

@media screen and (max-width: 767px) {
  .prism-gotop {
    left: 16px;
    bottom: 18px;
    width: 44px;
    height: 44px;
  }
}

/* =====================================================================
   Mobile nav lockup: balance the diamond mark with the PRISM LEARNING
   wordmark and keep them perfectly centred as one unit. Also pins the
   wordmark size for the animated (brand-reveal) state, which otherwise
   inherited the 24px desktop size on mobile.
   ===================================================================== */
@media screen and (max-width: 991px) {
  .logo-link {
    gap: 9px !important;
    align-items: center !important;
  }

  .logo-link:before {
    flex: 0 0 56px !important;
    flex-basis: 56px !important;
    width: 56px !important;
    height: 56px !important;
    transform: none !important;
  }

  .prism-logo-mark,
  .prism-logo-mark.prism-brand-reveal {
    align-items: center !important;
    font-size: 18px !important;
    font-weight: 800 !important;
    letter-spacing: 0.04em !important;
    line-height: 1 !important;
  }
}

@media screen and (max-width: 380px) {
  .logo-link:before {
    flex: 0 0 50px !important;
    flex-basis: 50px !important;
    width: 50px !important;
    height: 50px !important;
  }

  .prism-logo-mark,
  .prism-logo-mark.prism-brand-reveal {
    font-size: 16px !important;
  }
}
