/* ==========================================================================
   Base — reset, typography, layout primitives, brand surfaces.
   Load order: tokens.css → base.css → components/*.css
   ========================================================================== */

/* --- Reset (minimal) ------------------------------------------------------ */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: var(--cm-font);
  font-size: 16px;
  line-height: 1.5;
  color: var(--cm-ink);
  background: var(--cm-paper);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.page-node-8283 .node__content,
body.page-node-5409 .node__content{
  display: none;
}

body.path-manage-booked-events-new .views-form{

  padding: 0 !important;

}
body.page-view-manage-quotes table.table tbody td{
  padding: 6px 10px !important;
}

body.page-view-manage-quotes td.views-field-form-field-field-echk-htl-bkd{
  padding-top: 13px !important;

}


body.page-view-manage-quotes .views-field-form-field-field-echk-htl-bkd .form-wrapper.mb-3{
  margin-bottom: 10px !important;
}


body.page-view-manage-quotes .views-field-form-field-field-echk-htl-bkd .form-check{
  padding-left: 0 !important;

}

body.page-view-manage-quotes .views-field-form-field-field-badge-type .select2-container, 
body.page-view-manage-quotes .views-field-form-field-field-badge-code .select2-container{
  width: 100% !important;

}

 strong{
 font-family: var(--cm-font);
  font-size: 20px;
  color: var(--cm-ink);
  text-rendering: optimizeLegibility;
  line-height: 28px;
  padding-bottom: 7px;
  display: inherit;
}

body.path-manage-quotes .views-field-field-vat-reversal {
  display: none;
}
.region-featured-top,
.region-content-top,
.region-content-bottom {
  margin-left: 0;
  margin-right: 0;
}
img,
svg {
  display: block;
  max-width: 100%;
}

a {
  color: var(--cm-red);
  text-decoration: none;
}

a:hover {
  color: var(--cm-red-hover);
}
.cm-anchor-offset-pdg {
   padding-bottom: 0 !important;
   margin-bottom: 0 !important;
}

/* This used to also zero out .cm-section-head's own margin-bottom, which
   left no gap at all between the heading/lead text and whatever follows
   it inside the section (e.g. the quote widget on the front page sat
   flush against the description text above it). That inner zero-out
   wasn't part of what "-pdg" is for (avoiding a double gap AFTER the
   section) — restore the heading's normal spacing (see .cm-section-head
   in section.css) while still zeroing the section's own outer bottom
   padding/margin above. */
.cm-anchor-offset-pdg .cm-section-head {
  margin-bottom: 56px;
}

/* #quote renders from two different templates: the front page's own node
   template (node--1659--full.html.twig) adds the "cm-anchor-offset-pdg"
   class above, but the reusable quote-assistant block placed on other
   pages (block--block-content--id-view--cm26-quoteassistantwrapper--full)
   does not — so that class also doubles as a reliable way to target only
   the OTHER pages' copy here, leaving the front page's #quote untouched. */
#quote.cm-anchor-offset:not(.cm-anchor-offset-pdg) {
  padding-top: 0;

}

#areas-we-cover {
  padding-top: 0 !important;
  
}

h1,
h2,
h3,
p {
  margin: 0;
}

.view-featured-case-study > .view-content.row,
.view-case-studies > .view-content.row {
  margin-left: 0;
  margin-right: 0;
}
body.page-node-type-page .imagefield_slideshow-wrapper{
  position: relative !important;
  border: none;
  padding: 0;
  width: 100%;
  height: 100%;
}

body.page-node-type-page .imagefield_slideshow-wrapper .cycle-slideshow {
  width: 100%;
  height: 100%;
}
body.page-node-type-page .imagefield_slideshow-wrapper .prev-next {
  position: absolute;
  left: 0;
  right: 0;
  top: 40%;
}
.imagefield_slideshow-wrapper{
  margin: 0 !important;
}
.brdCrm__inner h1.page-title{
  font-size: 22px !important;
  color: white !important;
  font-weight: 700 !important;
  margin-bottom: 0 !important;
}

.breadcrumb-item + .breadcrumb-item::before{
  color: white !important;

}

.brdCrm__inner a{
  color: white !important;

}

body.page-node-72 .js-form-item-status{
   display: none;
}
body.page-node-type-page .imagefield_slideshow-wrapper .prev-next a:nth-child(1)::before{
  content: '\276E';
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.45);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
  font-weight: bold;
  color: white;
  font-size: 16px !important;
  transition: transform 0.2s ease, background-color 0.2s ease;
}


body.page-node-7918 .nav-tabs, 
body.page-node-7919 .nav-tabs, 
body.page-node-7920 .nav-tabs, 
body.page-node-6149 .nav-tabs, 
body.page-node-6144 .nav-tabs, 
body.page-node-6141 .nav-tabs, 
body.page-node-6121 .nav-tabs {
  display: none !important;
}

body.page-node-type-webform .widget.gsc-heading.style-1,
.js-form-item-vat-reversal,
.js-form-item-paid-by-bank,
.js-form-item-flat-charges,
.js-form-item-invoice-paid,
.form-item-bank-payment-date,
.form-item-paid-by-bank,
.js-form-item-scanner-number,
.js-form-item-pemlsnt,
.form-item-scrtcd,
.form-item-scnr-admn-crdnm,
.form-item-vat-reversal,
.form-item-payment-terms,
.form-item-flat-charges,
.form-item-wbfrm-bnk-dtls,
.form-item-invc-pd {
  display: none !important;
}



body.page-node-7918 #edit-processed-text, 
body.page-node-7918 #edit-i-would-like-to-use--wrapper div.js-form-item:nth-child(2), 
body.page-node-7919 #edit-processed-text, 
body.page-node-7919 #edit-i-would-like-to-use--wrapper div.js-form-item:nth-child(2), 
body.page-node-7920 #edit-processed-text, 
body.page-node-7920 #edit-i-would-like-to-use--wrapper div.js-form-item:nth-child(2), 
body.page-node-6149 #edit-processed-text, 
body.page-node-6149 #edit-i-would-like-to-use--wrapper div.js-form-item:nth-child(2), 
body.page-node-6144 #edit-processed-text, 
body.page-node-6144 #edit-i-would-like-to-use--wrapper div.js-form-item:nth-child(2), 
body.page-node-6141 #edit-processed-text, 
body.page-node-6141 #edit-i-would-like-to-use--wrapper div.js-form-item:nth-child(2), 
body.page-node-6121 #edit-processed-text, 
body.page-node-6121 #edit-i-would-like-to-use--wrapper div.js-form-item:nth-child(2) {
  display: none !important;
}


body.page-node-type-page .imagefield_slideshow-wrapper .prev-next {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}

body.page-node-type-page .imagefield_slideshow-wrapper .prev-next a:nth-child(1)::before{
  content: '\276E';
  display: inline-block;
  font-weight: bold;
  color: white;
  font-size: 18px !important;
  transition: transform 0.2s ease;
}

body.page-node-type-page .imagefield_slideshow-wrapper .prev-next a:nth-child(2)::before {
  content: '\276F';
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.45);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
  font-weight: bold;
  color: white;
  font-size: 16px !important;
  transition: transform 0.2s ease, background-color 0.2s ease;
}

body.page-node-type-page .imagefield_slideshow-wrapper .prev-next a:hover::before {
  transform: scale(1.15);
  background-color: rgba(0, 0, 0, 0.7);
}
body.page-node-type-page .imagefield_slideshow-wrapper .prev-next a:nth-child(1) {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 0;
  text-decoration: none !important;
}
body.page-node-type-page .imagefield_slideshow-wrapper .prev-next a:nth-child(2) {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 0;
  text-decoration: none !important;
}

/* Numbers meant to be trusted (prices, counts) get tabular figures. */
.cm-tabular {
  font-variant-numeric: tabular-nums;
}

/* --- Layout primitives ---------------------------------------------------- */
.cm-container {
  max-width: var(--cm-container);
  margin-inline: auto;
  padding-inline: var(--cm-gutter);
}

/* Section vertical rhythm; --pad overridable per instance. */
.cm-section {
  padding-block: var(--cm-section-pad, 88px);
}

/* Offsets an in-page anchor target so the sticky header doesn't cover it. */
.cm-anchor-offset {
  scroll-margin-top: 80px;
}

/* A slim section band (e.g. the "other cities" strip on city pages). */
.cm-section--band {
  --cm-section-pad: 72px;
}

/* Narrow reading column (FAQ, prose). */
.cm-narrow {
  max-width: 800px;
  margin-inline: auto;
}

/* A raised section band (paper-2) with hairline seams, for alternating rhythm. */
.cm-panel {
  background: var(--cm-paper-2);
  border-block: 1px solid var(--cm-hairline);
}

/* Two-column split that stacks on narrow screens (copy + supporting content). */
.cm-split {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr));
  gap: 56px;
  align-items: start;
}

.cm-split--center {
  align-items: center;
}

/* Centred stack: heading + copy + action, centre-aligned. */
.cm-center-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 18px;
}

/* Horizontally centre a fixed/max-width child in its column. */
.cm-center-x {
  display: flex;
  justify-content: center;
}

/* A decorative SVG illustration, centred and width-capped in its column. */
.cm-illustration {
  width: 100%;
  max-width: 460px;
  margin-inline: auto;
  display: block;
}



/* 4:3 rounded image frame (cover-fit). Swap the <img> src for a real photo. */
.cm-media {
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: var(--cm-radius-card);
  overflow: hidden;
  background: var(--cm-paper-3);
}

.cm-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cm-eyebrow {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--cm-muted);
}

/* Skip link for keyboard users — visible only when focused. */
.cm-skip-link {
  position: absolute;
  left: 12px;
  top: -48px;
  z-index: 200;
  background: var(--cm-ink);
  color: #fff;
  padding: 10px 16px;
  border-radius: var(--cm-radius-insert);
  transition: top var(--cm-dur) var(--cm-ease);
}

.cm-skip-link:focus {
  top: 12px;
  color: #fff;
}

/* Visible focus for keyboard users (never the browser default outline). */
:focus-visible {
  outline: 2px solid var(--cm-navy);
  outline-offset: 2px;
}

/* On the dark brand surfaces a navy ring is invisible — use a light one. */
.cm-brand-surface--hero :focus-visible,
.cm-brand-surface--band :focus-visible {
  outline-color: var(--cm-on-dark);
}

/* --- Brand surface (fluted purple → red, used on header band + hero) ------
   Two densities: --hero (full-bleed, dramatic flutes + legibility scrim) and
   --band (finer flutes, for a coloured section between light content).
   White/on-dark text only. Grain overlay kills gradient banding. */
.cm-brand-surface--hero,
.cm-brand-surface--band {
  position: relative;
  overflow: hidden;
  color: #fff;
}

.cm-brand-surface--hero > *,
.cm-brand-surface--band > * {
  position: relative;
  z-index: 2;
}

/* grain overlay (shared) */
.cm-brand-surface--hero::after,
.cm-brand-surface--band::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: var(--cm-grain);
  mix-blend-mode: overlay;
}

/* Hero — wider flutes + a soft dark scrim on the text side for legibility. */
.cm-brand-surface--hero {
  background: repeating-linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.12) 0 13px,
      transparent 13px,
      rgba(0, 0, 0, 0.44) 25px,
      transparent 37px,
      rgba(255, 255, 255, 0.12) 41px
    ),
    linear-gradient(96deg, #b144a0 0%, #932c74 30%, #a31e39 62%, #3a0c15 100%);
}

.cm-brand-surface--hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(
    90deg,
    rgba(15, 6, 18, 0.55) 0%,
    rgba(15, 6, 18, 0.15) 42%,
    transparent 65%
  );
}

.cm-brand-surface--hero::after {
  background-size: 220px;
  opacity: 0.15;
}

/* Band — finer flutes, reduced drama, no scrim (shorter coloured strip). */
.cm-brand-surface--band {
  background: repeating-linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.06) 0 1px,
      transparent 1px 4px,
      rgba(0, 0, 0, 0.24) 5px 7px,
      transparent 7px 15px
    ),
    linear-gradient(96deg, #a83a96 0%, #8e2e77 34%, #9a2036 66%, #3a0e16 100%);
}

.cm-brand-surface--band::after {
  background-size: 170px;
  opacity: 0.14;
}

/* --- Scroll-reveal (progressive enhancement, fail-safe) -------------------
   Content is visible by default. site.js "arms" ONLY elements that start below
   the fold (adds .cm-reveal-armed) and reveals them on scroll. So with JS off,
   IntersectionObserver missing, or reduced motion, nothing is ever hidden
   behind JS that might not run. */
[data-reveal].cm-reveal-armed {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity var(--cm-dur-enter) var(--cm-ease), transform
    var(--cm-dur-enter) var(--cm-ease);
}

[data-reveal].cm-reveal-armed.is-revealed {
  opacity: 1;
  transform: none;
}

/* --- Reduced motion: resolve everything instantly, keep full function. ---- */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  [data-reveal].cm-reveal-armed {
    opacity: 1;
    transform: none;
  }
}

/* Hide the rendered body field on node 8288 (Badges - Onsite On-demand
   Event Badging) -- its paragraphs are now duplicated as page FAQs, so
   the body text is redundant here. Field data is left untouched in the
   database; this only hides the rendered output on this one node. */
.page-node-8288 .node__content {
  display: none;
}

/* Hide the rendered body field on node 8349 (Onsite Event Registration
   and Contactless Check in) -- same treatment as node 8288: field data
   left untouched, only the rendered output on this node is hidden. */
.page-node-8349 .node__content {
  display: none;
}

/* Hide the rendered body field on node 8348 (Event Platform
   Integrations) -- same treatment as nodes 8288 and 8349: field data
   left untouched, only the rendered output on this node is hidden. */
.page-node-8348 .node__content {
  display: none;
}

/* Hide the rendered body field on node 2171 (Onsite Event Badging in
   Birmingham) -- its content is now duplicated as page FAQs, same
   treatment as nodes 8288, 8349, 8348. Field data left untouched. */
.page-node-2171 .node__content {
  display: none;
}

/* Hide the rendered body field on the 6 UK event-badging city pages --
   content now duplicated as page FAQs, same treatment as nodes 8288,
   8349, 8348, 2171. Field data left untouched, only rendered output
   hidden. */
.page-node-2169 .node__content,
.page-node-2170 .node__content,
.page-node-2172 .node__content,
.page-node-2173 .node__content,
.page-node-2174 .node__content,
.page-node-2175 .node__content {
  display: none;
}

/* Hide the rendered body field on the 11 Europe event-badging city pages
   -- content now duplicated as page FAQs, same treatment as prior city
   pages. Field data left untouched, only rendered output hidden. */
.page-node-2204 .node__content,
.page-node-2193 .node__content,
.page-node-2194 .node__content,
.page-node-2205 .node__content,
.page-node-2206 .node__content,
.page-node-2207 .node__content,
.page-node-2208 .node__content,
.page-node-2178 .node__content,
.page-node-2184 .node__content,
.page-node-2214 .node__content,
.page-node-2215 .node__content {
  display: none;
}

/* Hide the rendered body field on the 10 Middle East & Asia
   event-badging city pages -- content now duplicated as page FAQs.
   Field data left untouched, only rendered output hidden. */
.page-node-1671 .node__content,
.page-node-1672 .node__content,
.page-node-2176 .node__content,
.page-node-2177 .node__content,
.page-node-2192 .node__content,
.page-node-2195 .node__content,
.page-node-2209 .node__content,
.page-node-2211 .node__content,
.page-node-2212 .node__content,
.page-node-2213 .node__content {
  display: none;
}

/* Hide the rendered body field on the 13 UK Registration city pages --
   content now duplicated as page FAQs. Field data left untouched, only
   rendered output hidden. */
.page-node-2320 .node__content,
.page-node-5288 .node__content,
.page-node-5289 .node__content,
.page-node-5290 .node__content,
.page-node-5291 .node__content,
.page-node-5292 .node__content,
.page-node-5293 .node__content,
.page-node-5294 .node__content,
.page-node-5295 .node__content,
.page-node-5323 .node__content,
.page-node-5324 .node__content,
.page-node-5325 .node__content,
.page-node-5326 .node__content {
  display: none;
}

/* Hide the rendered body field on the 12 Europe Registration city pages
   -- content now duplicated as page FAQs. Field data left untouched,
   only rendered output hidden. */
.page-node-2844 .node__content,
.page-node-5268 .node__content,
.page-node-5269 .node__content,
.page-node-5270 .node__content,
.page-node-5271 .node__content,
.page-node-5272 .node__content,
.page-node-5273 .node__content,
.page-node-5274 .node__content,
.page-node-5275 .node__content,
.page-node-5276 .node__content,
.page-node-5277 .node__content,
.page-node-5319 .node__content {
  display: none;
}

/* Hide the rendered body field on the 13 Middle East & Asia
   Registration city pages -- content now duplicated as page FAQs.
   Field data left untouched, only rendered output hidden. */
.page-node-5306 .node__content,
.page-node-5307 .node__content,
.page-node-5308 .node__content,
.page-node-5309 .node__content,
.page-node-5310 .node__content,
.page-node-5311 .node__content,
.page-node-5312 .node__content,
.page-node-5313 .node__content,
.page-node-5314 .node__content,
.page-node-5315 .node__content,
.page-node-5316 .node__content,
.page-node-5317 .node__content,
.page-node-5318 .node__content {
  display: none;
}

/* Hide the rendered body field on 4 scanner/lead-retrieval pages --
   content now duplicated as page FAQs. Field data left untouched,
   only rendered output hidden. */
.page-node-96 .node__content,
.page-node-6258 .node__content,
.page-node-6262 .node__content,
.page-node-6263 .node__content {
  display: none;
}

/* Hide the rendered body field on 4 barcode scanner location pages --
   content now duplicated as page FAQs. Field data left untouched,
   only rendered output hidden. */
.page-node-1674 .node__content,
.page-node-1675 .node__content,
.page-node-1676 .node__content,
.page-node-1678 .node__content {
  display: none;
}

/* Hide original body content: Delegate Mgmt, On-Site Staff, Printer Hire, Event Accreditation */
.page-node-97 .node__content,
.page-node-101 .node__content,
.page-node-7624 .node__content,
.page-node-8241 .node__content {
  display: none;
}

/* Same standard 88px section top-rhythm restored above for the 7 pages with zero
   preceding content, applied here to the event-badging / onsite-registration city
   pages too: these DO have a "how it works" service block before #quote, but that
   block only contributes its own 88px bottom padding, so #quote's zeroed top padding
   left it half the normal section-to-section gap (88px instead of the usual 176px). */
.page-node-1671 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-1672 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-2169 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-2170 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-2171 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-2172 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-2173 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-2174 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-2175 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-2176 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-2177 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-2178 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-2184 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-2192 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-2193 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-2194 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-2195 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-2204 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-2205 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-2206 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-2207 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-2208 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-2209 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-2211 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-2212 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-2213 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-2214 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-2215 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-2320 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-2844 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5268 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5269 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5270 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5271 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5272 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5273 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5274 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5275 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5276 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5277 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5288 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5289 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5290 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5291 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5292 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5293 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5294 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5295 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5306 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5307 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5308 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5309 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5310 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5311 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5312 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5313 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5314 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5315 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5316 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5317 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5318 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5319 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5323 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5324 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5325 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg),
.page-node-5326 #quote.cm-anchor-offset:not(.cm-anchor-offset-pdg) {
  padding-top: 88px;
}

/* Wraps the "highlighted" region (system status messages -- form confirmations,
   errors) now that page.html.twig prints it inside <main>. Without page.highlighted
   ever being referenced, Drupal had nowhere to render these inline, so they fell
   back to being appended at the very end of <body> -- functionally present but
   invisible without scrolling past the footer. */
.cm-page-messages {
  margin: 24px 0 0;
}
.cm-page-messages:empty {
  margin: 0;
}

/* Re-skin Bootstrap's default alert (form confirmations/errors) to match the
   rest of the site instead of the stock large icon + h2-sized heading. */
.cm-page-messages .alert {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px 20px;
  border: 1px solid var(--cm-hairline);
  border-radius: var(--cm-radius-insert);
  box-shadow: var(--cm-shadow);
  background: #fff;
  font-size: 14.5px;
  line-height: 1.5;
  color: var(--cm-ink);
}

.cm-page-messages .alert .bi {
  flex: none;
  width: 20px;
  height: 20px;
  margin: 0;
}

.cm-page-messages .alert-heading {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--cm-muted-2);
  margin: 0 0 2px;
}

.cm-page-messages .alert-success {
  border-color: #bfe3cf;
  background: #f0faf4;
}
.cm-page-messages .alert-success .bi {
  color: #1c9a5b;
}

.cm-page-messages .alert-danger {
  border-color: #f3c9c9;
  background: var(--cm-red-tint);
}
.cm-page-messages .alert-danger .bi {
  color: var(--cm-red);
}

.cm-page-messages .alert .btn-close {
  margin-left: auto;
  flex: none;
}
