/*
 * CIM internal-page component system 1.2.3.
 *
 * Design intent:
 * - Reuse the approved homepage typography, colour, button and spacing language.
 * - Offer deliberate variation without allowing pages to feel unrelated.
 * - Keep every selector inside a component/editor context so the approved
 *   homepage remains isolated.
 */

:where(.cim-component-context,.editor-styles-wrapper){
  --cim-section-standard:clamp(104px,8.7vw,136px);
  --cim-section-feature:clamp(120px,9.6vw,148px);
  --cim-section-compact:clamp(68px,5.9vw,92px);
  --cim-section-tight:clamp(52px,4.6vw,72px);
  --cim-content-wide:1184px;
  --cim-content-medium:960px;
  --cim-content-narrow:800px;
  --cim-grid-gap:clamp(22px,2.5vw,36px);
  --cim-copy-gap:clamp(56px,7vw,104px);
  --cim-radius-small:8px;
  --cim-radius-medium:16px;
  --cim-radius-large:24px;
  --cim-shadow-soft:0 24px 72px rgba(6,31,68,.09);
  --cim-shadow-editorial:0 28px 80px rgba(6,31,68,.12);
  --cim-shadow-dark:0 36px 100px rgba(0,0,0,.28);
  --cim-text-muted:#516173;
  --cim-text-dark:#172e49;
  margin:0;
  padding:0;
  background:var(--paper2);
}

:where(.cim-component-context,.editor-styles-wrapper) :where(*, *::before, *::after){box-sizing:border-box;}
:where(.cim-component-context,.editor-styles-wrapper) > *{margin-block-start:0;margin-block-end:0;}

/* --------------------------------------------------------------------------
   Section shells and rhythm
   -------------------------------------------------------------------------- */
:where(.cim-component-context,.editor-styles-wrapper) .cim-section{
  position:relative;
  width:100%;
  margin:0!important;
  padding:var(--cim-section-standard) 0;
  overflow:hidden;
}
:where(.cim-component-context,.editor-styles-wrapper) .cim-section--feature{padding:var(--cim-section-feature) 0;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-section--compact{padding:var(--cim-section-compact) 0;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-section--tight{padding:var(--cim-section-tight) 0;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-section--paper{background:var(--paper);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-section--paper-light{background:var(--paper2);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-section--cream{background:linear-gradient(180deg,#fffaf0 0%,#fbf4e7 100%);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-section--white{background:#fff;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-section--navy{background:linear-gradient(145deg,var(--navy) 0%,var(--deep-navy) 88%);color:#fff;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-section--midnight{background:var(--deep-navy);color:#fff;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-section--line-top{border-top:1px solid rgba(6,31,68,.1);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-section--line-bottom{border-bottom:1px solid rgba(6,31,68,.1);}

:where(.cim-component-context,.editor-styles-wrapper) .cim-section__inner{
  width:min(calc(100% - clamp(48px,7vw,160px)),var(--cim-content-wide));
  margin-inline:auto!important;
}
:where(.cim-component-context,.editor-styles-wrapper) .cim-section__inner--medium{max-width:var(--cim-content-medium);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-section__inner--narrow{max-width:var(--cim-content-narrow);}

/* --------------------------------------------------------------------------
   Typography and editorial hierarchy
   -------------------------------------------------------------------------- */
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-kicker{
  margin:0 0 22px!important;
  color:var(--teal-dark);
  font-family:"Noto Sans",Montserrat,Arial,sans-serif;
  font-size:13px;
  font-style:normal;
  font-weight:800;
  line-height:1.2;
  letter-spacing:.24em;
  text-transform:uppercase;
}
:where(.cim-component-context,.editor-styles-wrapper) :is(.cim-section--navy,.cim-section--midnight,.cim-component-hero--signal,.cim-component-hero--image,.cim-component-hero--split,.cim-component-fullbleed,.cim-component-image-cta,.cim-component-mosaic__statement) .cim-component-kicker{color:var(--gold);}

:where(.cim-component-context,.editor-styles-wrapper) .cim-component-heading{
  margin:0!important;
  color:var(--navy);
  font-family:"Playfair Display","Noto Serif Display",Georgia,serif;
  font-size:clamp(42px,4.7vw,64px);
  font-style:normal;
  font-weight:400;
  line-height:1.08;
  letter-spacing:-.03em;
}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-heading--display{font-size:clamp(54px,5.7vw,78px);line-height:1.03;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-heading--compact{font-size:clamp(36px,3.8vw,52px);}
:where(.cim-component-context,.editor-styles-wrapper) :is(.cim-section--navy,.cim-section--midnight,.cim-component-hero--signal,.cim-component-hero--image,.cim-component-hero--split,.cim-component-fullbleed,.cim-component-image-cta) .cim-component-heading{color:#fff;}

:where(.cim-component-context,.editor-styles-wrapper) .cim-component-lead{
  max-width:760px;
  margin:26px 0 0!important;
  color:var(--cim-text-muted);
  font-family:"Noto Sans",Montserrat,Arial,sans-serif;
  font-size:18px;
  line-height:1.78;
}
:where(.cim-component-context,.editor-styles-wrapper) :is(.cim-section--navy,.cim-section--midnight,.cim-component-hero--signal,.cim-component-hero--image,.cim-component-hero--split,.cim-component-fullbleed,.cim-component-image-cta) .cim-component-lead{color:rgba(255,255,255,.82);}

:where(.cim-component-context,.editor-styles-wrapper) .cim-component-intro{width:100%;max-width:900px;}
/*
 * A left-aligned introduction may also be the section container itself.
 * In that combined form, anchor the section to the same wide grid used by
 * adjacent sections while retaining the editorial text measures inside it.
 */
:where(.cim-component-context,.editor-styles-wrapper) .cim-section__inner.cim-component-intro:not(.cim-component-intro--center){
  width:min(calc(100% - clamp(48px,7vw,160px)),var(--cim-content-wide));
  max-width:var(--cim-content-wide);
}
:where(.cim-component-context,.editor-styles-wrapper) .cim-section__inner.cim-component-intro:not(.cim-component-intro--center) > :is(.cim-component-kicker,.cim-component-heading,.cim-component-lead,.cim-component-buttons){
  margin-left:0!important;
  margin-right:auto!important;
}
:where(.cim-component-context,.editor-styles-wrapper) .cim-section__inner.cim-component-intro:not(.cim-component-intro--center) > .cim-component-heading{max-width:900px;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-intro--center{margin-inline:auto!important;text-align:center;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-intro--center .cim-component-lead{margin-inline:auto!important;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-intro--center .cim-component-hero-rule{margin-inline:auto!important;}

:where(.cim-component-context,.editor-styles-wrapper) .cim-prose{max-width:760px;margin-inline:auto!important;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-prose :is(h2,h3,h4){color:var(--navy);font-family:"Playfair Display","Noto Serif Display",Georgia,serif;font-weight:400;letter-spacing:-.025em;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-prose h2{margin:0 0 24px;font-size:clamp(36px,4vw,52px);line-height:1.1;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-prose h3{margin:46px 0 18px;font-size:30px;line-height:1.15;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-prose p{margin:0 0 24px;color:var(--cim-text-muted);font-size:18px;line-height:1.82;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-prose :is(ul,ol){margin:0 0 28px;padding-left:1.4em;color:var(--cim-text-muted);font-size:18px;line-height:1.75;}

/* --------------------------------------------------------------------------
   Canonical internal heroes and four visual variations
   -------------------------------------------------------------------------- */
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-hero{
  position:relative;
  width:100%;
  margin:0!important;
  overflow:hidden;
}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-hero__inner{
  position:relative;
  z-index:3;
  width:min(calc(100% - clamp(48px,7vw,160px)),var(--cim-content-wide));
  margin-inline:auto!important;
}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-hero--signal{
  min-height:420px;
  padding:clamp(92px,9vw,138px) 0;
  display:flex;
  align-items:center;
  background:linear-gradient(145deg,var(--navy) 0%,var(--deep-navy) 88%);
  color:#fff;
}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-hero--signal::after,
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-hero--split::after{
  content:"";
  position:absolute;
  right:-180px;
  top:-250px;
  width:620px;
  height:620px;
  border-radius:50%;
  box-shadow:0 0 0 1px rgba(212,160,49,.16),0 0 0 86px rgba(27,163,166,.07),0 0 0 172px rgba(246,238,217,.04);
  pointer-events:none;
}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-hero--image{
  min-height:520px;
  display:flex;
  align-items:center;
  background:var(--deep-navy);
  color:#fff;
}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-hero--image .wp-block-cover__background{background:linear-gradient(90deg,rgba(1,12,24,.97),rgba(1,12,24,.74) 58%,rgba(1,12,24,.34))!important;opacity:1!important;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-hero--image .wp-block-cover__inner-container{width:min(calc(100% - clamp(48px,7vw,160px)),var(--cim-content-wide));margin-inline:auto!important;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-hero--split{
  min-height:520px;
  padding:clamp(82px,8vw,122px) 0;
  display:flex;
  align-items:center;
  background:linear-gradient(145deg,var(--navy),var(--deep-navy));
  color:#fff;
}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-hero--split .cim-component-hero__inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.78fr);gap:var(--cim-copy-gap);align-items:center;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-hero--split .cim-component-heading{font-size:clamp(50px,5.2vw,72px);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-hero--light{
  padding:clamp(82px,7.5vw,112px) 0;
  background:linear-gradient(180deg,#fffaf0,#fbf4e7);
  border-bottom:1px solid rgba(6,31,68,.1);
}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-hero--light .cim-component-heading{max-width:940px;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-hero-rule{width:62px;height:3px;margin:32px 0 28px!important;border:0;border-radius:10px;background:var(--gold);}

/* --------------------------------------------------------------------------
   Button system - deliberately matches the approved homepage
   -------------------------------------------------------------------------- */
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-buttons{display:flex!important;gap:22px;align-items:center;justify-content:flex-start;flex-wrap:wrap;margin-top:38px!important;margin-left:0!important;margin-right:0!important;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-intro > .cim-component-buttons{width:100%;align-self:flex-start;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-buttons .wp-block-button{margin:0!important;}
:where(.cim-component-context,.editor-styles-wrapper) .wp-block-button__link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  border-radius:8px;
  padding:18px 26px;
  font-family:"Noto Sans",Montserrat,Arial,sans-serif;
  font-size:12.5px;
  font-weight:800;
  line-height:1;
  letter-spacing:.16em;
  text-transform:uppercase;
  text-decoration:none;
  transition:transform .18s ease,background-color .18s ease,border-color .18s ease,box-shadow .18s ease;
}
:where(.cim-component-context,.editor-styles-wrapper) .wp-block-button.is-style-cim-primary .wp-block-button__link,
:where(.cim-component-context,.editor-styles-wrapper) .cim-button-primary .wp-block-button__link{border:1px solid transparent;background:var(--teal-dark);color:#fff;box-shadow:0 14px 30px rgba(0,0,0,.14);}
:where(.cim-component-context,.editor-styles-wrapper) .wp-block-button.is-style-cim-secondary .wp-block-button__link,
:where(.cim-component-context,.editor-styles-wrapper) .cim-button-secondary .wp-block-button__link{border:1px solid var(--gold);background:transparent;color:var(--navy);box-shadow:none;}
:where(.cim-component-context,.editor-styles-wrapper) :is(.cim-section--navy,.cim-section--midnight,.cim-component-hero--signal,.cim-component-hero--image,.cim-component-hero--split,.cim-component-fullbleed,.cim-component-image-cta) .wp-block-button.is-style-cim-secondary .wp-block-button__link{color:#fff;background:rgba(1,12,24,.18);}
:where(.cim-component-context,.editor-styles-wrapper) .wp-block-button__link:hover{transform:translateY(-1px);}
:where(.cim-component-context,.editor-styles-wrapper) .wp-block-button.is-style-cim-primary .wp-block-button__link:hover{background:#0c6068;box-shadow:0 17px 34px rgba(0,0,0,.18);}
:where(.cim-component-context,.editor-styles-wrapper) .wp-block-button.is-style-cim-secondary .wp-block-button__link:hover{border-color:#b98313;background:rgba(212,160,49,.07);}
:where(.cim-component-context,.editor-styles-wrapper) .wp-block-button__link:focus-visible{outline:3px solid var(--gold);outline-offset:4px;}

/* --------------------------------------------------------------------------
   Image treatments: varied, named, and purposeful
   -------------------------------------------------------------------------- */
:where(.cim-component-context,.editor-styles-wrapper) .cim-media{position:relative;margin:0!important;overflow:hidden;background:#d7d9da;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-media img{display:block;width:100%;height:100%;object-fit:cover;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-media--editorial{aspect-ratio:16/10;border-radius:16px;box-shadow:var(--cim-shadow-editorial);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-media--portrait{aspect-ratio:4/5;border:1px solid rgba(255,255,255,.14);border-radius:28px;box-shadow:var(--cim-shadow-dark);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-section:not(.cim-section--navy):not(.cim-section--midnight) .cim-media--portrait{border-color:rgba(6,31,68,.12);box-shadow:var(--cim-shadow-editorial);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-media--frame{aspect-ratio:5/4;padding:12px;border:1px solid rgba(6,31,68,.12);border-radius:18px;background:#fff;box-shadow:var(--cim-shadow-soft);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-media--frame img{border-radius:10px;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-media--flat{aspect-ratio:16/10;border-radius:0;box-shadow:none;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-media--square{aspect-ratio:1/1;border-radius:20px;box-shadow:var(--cim-shadow-soft);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-media--cover{position:absolute;inset:0;width:100%;height:100%;border-radius:0;box-shadow:none;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-object-top img{object-position:center top;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-object-upper img{object-position:center 32%;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-object-lower img{object-position:center 68%;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-object-left img{object-position:left center;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-object-right img{object-position:right center;}

/* Legacy aliases retained for already-inserted patterns. */
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-media{position:relative;margin:0!important;overflow:hidden;border-radius:18px;background:#d7d9da;box-shadow:var(--cim-shadow-editorial);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-media img{display:block;width:100%;height:100%;min-height:460px;object-fit:cover;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-media--portrait img{aspect-ratio:4/5;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-media--landscape img{aspect-ratio:16/10;min-height:0;}

/* --------------------------------------------------------------------------
   Narrative splits and media-led variants
   -------------------------------------------------------------------------- */
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-split{display:grid!important;grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);gap:var(--cim-copy-gap);align-items:center;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-split--reverse > :first-child{order:2;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-split--reverse > :last-child{order:1;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-copy h2{margin:0;color:var(--navy);font-family:"Playfair Display","Noto Serif Display",Georgia,serif;font-size:clamp(40px,4.3vw,58px);font-weight:400;line-height:1.08;letter-spacing:-.03em;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-copy p:not(.cim-component-kicker){margin:24px 0 0;color:var(--cim-text-muted);font-size:18px;line-height:1.76;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-copy > .cim-component-kicker{margin:0 0 22px!important;color:var(--teal-dark);font-size:13px;line-height:1.2;letter-spacing:.24em;}
:where(.cim-component-context,.editor-styles-wrapper) :is(.cim-section--navy,.cim-section--midnight,.cim-component-fullbleed,.cim-component-image-cta) .cim-component-copy > .cim-component-kicker{color:var(--gold);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-copy .cim-component-buttons{margin-top:34px!important;}

:where(.cim-component-context,.editor-styles-wrapper) .cim-component-mosaic{display:grid!important;grid-template-columns:1fr 1fr;grid-template-rows:230px 230px;gap:24px;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-mosaic > :first-child{grid-row:1 / span 2;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-mosaic .cim-media{width:100%;height:100%;aspect-ratio:auto;border-radius:16px;box-shadow:var(--cim-shadow-editorial);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-mosaic__statement{display:flex!important;flex-direction:column;justify-content:flex-end;padding:38px;border-radius:16px;background:linear-gradient(145deg,var(--navy),var(--deep-navy));color:#fff;box-shadow:var(--cim-shadow-editorial);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-mosaic__statement .cim-component-kicker{color:var(--gold);font-size:13px;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-mosaic__statement h3{margin:0;color:#fff;font-family:"Playfair Display","Noto Serif Display",Georgia,serif;font-size:34px;font-weight:400;line-height:1.1;letter-spacing:-.025em;}

:where(.cim-component-context,.editor-styles-wrapper) .cim-component-fullbleed{min-height:520px;display:flex;align-items:center;color:#fff;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-fullbleed::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(1,12,24,.97),rgba(1,12,24,.74) 58%,rgba(1,12,24,.28));}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-fullbleed .cim-section__inner{position:relative;z-index:2;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-fullbleed .cim-component-intro{max-width:650px;}

:where(.cim-component-context,.editor-styles-wrapper) .cim-component-feature-rows{display:grid!important;gap:84px;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-feature-row{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--cim-copy-gap);align-items:center;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-feature-row:nth-child(even) > :first-child{order:2;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-feature-row:nth-child(even) > :last-child{order:1;}

/* --------------------------------------------------------------------------
   Statements, metrics and editorial pauses
   -------------------------------------------------------------------------- */
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-statement{max-width:980px;margin-inline:auto!important;text-align:center;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-statement > :where(.cim-component-kicker,.cim-component-heading,.cim-component-lead,.cim-component-statement-rule){margin-left:auto!important;margin-right:auto!important;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-statement .cim-component-heading{font-size:clamp(38px,4.2vw,58px);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-statement-rule{width:62px;height:3px;margin:30px auto!important;border:0;border-radius:6px;background:var(--gold);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-statement--side{display:grid!important;grid-template-columns:8px minmax(0,1fr);gap:34px;max-width:980px;align-items:stretch;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-statement--side::before{content:"";width:4px;border-radius:4px;background:var(--gold);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-statement--side .cim-component-heading{font-size:clamp(38px,4.1vw,56px);}

:where(.cim-component-context,.editor-styles-wrapper) .cim-component-metrics{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid rgba(6,31,68,.14);border-bottom:1px solid rgba(6,31,68,.14);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-metric{padding:34px 28px;border-right:1px solid rgba(6,31,68,.14);text-align:center;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-metric:last-child{border-right:0;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-metric strong{display:block;margin-bottom:10px;color:var(--gold);font-family:"Playfair Display","Noto Serif Display",Georgia,serif;font-size:clamp(42px,4vw,58px);font-weight:400;line-height:1;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-metric span{color:var(--navy);font-size:12px;font-weight:800;line-height:1.5;letter-spacing:.16em;text-transform:uppercase;}

/* --------------------------------------------------------------------------
   Cards: flat, outlined, elevated and dark variants
   -------------------------------------------------------------------------- */
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-grid{display:grid!important;gap:var(--cim-grid-gap);align-items:stretch;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-grid--2{grid-template-columns:repeat(2,minmax(0,1fr));}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-grid--3{grid-template-columns:repeat(3,minmax(0,1fr));}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-grid--4{grid-template-columns:repeat(4,minmax(0,1fr));}

:where(.cim-component-context,.editor-styles-wrapper) .cim-card,
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-card{height:100%;padding:34px 30px;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-card h3,
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-card h3{margin:0 0 18px;color:var(--navy);font-family:"Playfair Display","Noto Serif Display",Georgia,serif;font-size:30px;font-weight:400;line-height:1.12;letter-spacing:-.025em;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-card p,
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-card p{margin:0;color:#526274;font-size:15.5px;line-height:1.7;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-card--flat{padding:34px 30px;border-top:2px solid var(--gold);background:rgba(255,255,255,.52);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-card--outline,
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-card{border:1px solid rgba(6,31,68,.14);border-top:2px solid var(--gold);border-radius:14px;background:rgba(255,255,255,.56);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-card--elevated{border:1px solid rgba(6,31,68,.12);border-radius:22px;background:#fff;box-shadow:var(--cim-shadow-soft);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-card--dark{border:1px solid rgba(255,255,255,.14);border-radius:18px;background:rgba(255,255,255,.045);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-card--dark h3{color:#fff;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-card--dark p{color:rgba(255,255,255,.72);}

:where(.cim-component-context,.editor-styles-wrapper) .cim-icon-card{height:100%;padding:34px 28px;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-icon-card .wp-block-image{margin:0 0 26px!important;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-icon-card img{width:70px;height:70px;object-fit:contain;object-position:left center;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-icon-card h3{margin:0 0 16px;font-family:"Noto Sans",Montserrat,Arial,sans-serif;font-size:14px;font-weight:800;line-height:1.25;letter-spacing:.16em;text-transform:uppercase;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-icon-card p{margin:0;font-size:15px;line-height:1.7;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-grid:has(> .cim-icon-card--light){gap:0;border-top:1px solid rgba(6,31,68,.14);border-bottom:1px solid rgba(6,31,68,.14);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-icon-card--light{border-right:1px solid rgba(6,31,68,.14);text-align:center;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-icon-card--light:last-child{border-right:0;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-icon-card--light img{margin-inline:auto;object-position:center;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-icon-card--light h3{color:var(--navy);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-icon-card--light p{color:#526274;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-icon-card--dark{border:1px solid rgba(255,255,255,.14);border-radius:18px;background:rgba(255,255,255,.045);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-icon-card--dark h3{color:#fff;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-icon-card--dark p{color:rgba(255,255,255,.72);}

/* Legacy dark-icon card alias. */
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-icon-card{padding:34px 28px;border:1px solid rgba(255,255,255,.14);border-radius:18px;background:rgba(255,255,255,.045);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-icon-card .wp-block-image{margin:0 0 26px!important;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-icon-card img{width:70px;height:70px;object-fit:contain;object-position:left center;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-icon-card h3{margin:0 0 16px;color:#fff;font-family:"Noto Sans",Montserrat,Arial,sans-serif;font-size:14px;font-weight:800;line-height:1.25;letter-spacing:.16em;text-transform:uppercase;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-icon-card p{margin:0;color:rgba(255,255,255,.72);font-size:15px;line-height:1.7;}

/* --------------------------------------------------------------------------
   Project presentation: cards, feature split and horizontal list
   -------------------------------------------------------------------------- */

:where(.cim-component-context,.editor-styles-wrapper) .cim-project-card,
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-project-card{height:100%;min-height:560px;overflow:hidden;border:1px solid rgba(6,31,68,.14);border-radius:22px;background:#fff;box-shadow:0 24px 80px rgba(6,31,68,.08);display:flex;flex-direction:column;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-project-card .wp-block-image,
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-project-card .wp-block-image{height:250px;margin:0!important;overflow:hidden;background:var(--navy);flex:0 0 250px;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-project-card .wp-block-image img,
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-project-card .wp-block-image img{display:block;width:100%;height:100%;object-fit:cover;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-project-card__body,
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-project-card__body{padding:46px 40px 42px!important;flex:1;display:flex;flex-direction:column;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-project-card h3,
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-project-card h3{margin:0 0 22px;color:var(--navy);font-family:"Playfair Display","Noto Serif Display",Georgia,serif;font-size:32px;font-weight:400;line-height:1.12;letter-spacing:-.025em;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-project-card__body > p:not(.cim-component-link),
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-project-card__body > p:not(.cim-component-link){margin:0 0 34px;color:#526274;font-size:17px;line-height:1.65;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-link{margin-top:auto!important;margin-bottom:0!important;color:var(--teal-dark);font-family:"Noto Sans",Montserrat,Arial,sans-serif;font-size:12px;font-weight:900;line-height:1.4;letter-spacing:.2em;text-decoration:none;text-transform:uppercase;}
:where(.cim-component-context,.editor-styles-wrapper) :is(a.cim-component-link,.cim-component-link a){color:var(--teal-dark)!important;font:inherit;letter-spacing:inherit;text-decoration:none!important;text-transform:inherit;}
:where(.cim-component-context,.editor-styles-wrapper) :is(a.cim-component-link,.cim-component-link a):hover{text-decoration:underline!important;text-underline-offset:4px;}


:where(.cim-component-context,.editor-styles-wrapper) .cim-feature-project{display:grid!important;grid-template-columns:minmax(0,.86fr) minmax(420px,1.14fr);gap:var(--cim-copy-gap);align-items:center;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-feature-project .cim-media{min-height:0;max-height:620px;}

:where(.cim-component-context,.editor-styles-wrapper) .cim-project-list{display:grid!important;gap:0;border-top:1px solid rgba(6,31,68,.14);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-project-list__item{display:grid!important;grid-template-columns:72px minmax(0,1fr) auto;gap:28px;align-items:center;padding:30px 0;border-bottom:1px solid rgba(6,31,68,.14);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-project-list__item > .wp-block-group{width:100%;max-width:none!important;min-width:0;margin:0!important;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-project-list__number{margin:0!important;color:var(--gold);font-family:"Noto Sans",Montserrat,Arial,sans-serif;font-size:13px;font-weight:900;line-height:1.3;letter-spacing:.18em;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-project-list__item h3{margin:0 0 8px;color:var(--navy);font-family:"Playfair Display","Noto Serif Display",Georgia,serif;font-size:30px;font-weight:400;line-height:1.12;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-project-list__item p:not(.cim-component-link){margin:0;color:#526274;font-size:15.5px;line-height:1.6;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-project-list__item > .cim-component-link{margin:0!important;white-space:nowrap;font-size:12px;line-height:1.4;}

/* --------------------------------------------------------------------------
   Process and timeline variants
   -------------------------------------------------------------------------- */
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-process{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;counter-reset:cim-step;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-process__step{position:relative;min-height:250px;padding:30px 24px;border:1px solid rgba(6,31,68,.14);border-radius:16px;background:rgba(255,255,255,.58);counter-increment:cim-step;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-process__step::before{content:"0" counter(cim-step);display:block;margin-bottom:32px;color:var(--gold);font-size:15px;font-weight:900;letter-spacing:.18em;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-process__step h3{margin:0 0 16px;color:var(--navy);font-family:"Noto Sans",Montserrat,Arial,sans-serif;font-size:15px;font-weight:800;line-height:1.3;letter-spacing:.12em;text-transform:uppercase;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-process__step p{margin:0;color:#526274;font-size:15px;line-height:1.65;}

:where(.cim-component-context,.editor-styles-wrapper) .cim-component-flow{display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr));gap:18px;counter-reset:cim-flow;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-flow__step{position:relative;min-height:228px;padding:28px 20px;border:1px solid rgba(6,31,68,.14);border-radius:18px;background:rgba(255,255,255,.48);counter-increment:cim-flow;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-flow__step::before{content:"0" counter(cim-flow);display:block;margin-bottom:34px;color:var(--gold);font-size:15px;font-weight:900;letter-spacing:.18em;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-flow__step:not(:last-child)::after{content:"";position:absolute;right:-18px;top:50%;width:18px;height:1px;background:rgba(212,160,49,.72);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-flow__step h3{margin:0 0 14px;color:var(--navy);font-family:"Noto Sans",Montserrat,Arial,sans-serif;font-size:14px;font-weight:800;line-height:1.25;letter-spacing:.12em;text-transform:uppercase;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-flow__step p{margin:0;color:#526274;font-size:14.5px;line-height:1.6;}

:where(.cim-component-context,.editor-styles-wrapper) .cim-component-timeline{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-top:56px!important;border-top:1px solid rgba(6,31,68,.17);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-timeline__item{position:relative;padding:42px 30px 0;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-timeline__item::before{content:"";position:absolute;top:-8px;left:30px;width:16px;height:16px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 8px rgba(212,160,49,.15);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-timeline__item h3{margin:0 0 16px;color:var(--navy);font-family:"Playfair Display","Noto Serif Display",Georgia,serif;font-size:27px;font-weight:400;line-height:1.12;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-timeline__item p{margin:0;color:#526274;font-size:15px;line-height:1.68;}

:where(.cim-component-context,.editor-styles-wrapper) .cim-component-timeline--vertical{display:grid!important;grid-template-columns:1fr;gap:0;max-width:900px;margin-top:56px!important;border-left:1px solid rgba(6,31,68,.17);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-timeline--vertical .cim-component-timeline__item{padding:0 42px 56px;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-timeline--vertical .cim-component-timeline__item::before{top:6px;left:-8px;}

/* --------------------------------------------------------------------------
   Quotes and feature panels
   -------------------------------------------------------------------------- */
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-quote{max-width:920px;margin-inline:auto!important;padding:48px 56px;border-left:4px solid var(--gold);background:rgba(255,255,255,.62);box-shadow:var(--cim-shadow-soft);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-quote p{margin:0;color:var(--navy);font-family:"Playfair Display","Noto Serif Display",Georgia,serif;font-size:clamp(30px,3.3vw,46px);line-height:1.25;letter-spacing:-.025em;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-quote cite{display:block;margin-top:24px;color:var(--teal-dark);font-family:"Noto Sans",Montserrat,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:800;letter-spacing:.18em;text-transform:uppercase;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-quote--dark{border-left-color:var(--gold);background:rgba(255,255,255,.045);box-shadow:none;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-quote--dark p{color:#fff;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-quote--dark cite{color:var(--teal);}

:where(.cim-component-context,.editor-styles-wrapper) .cim-component-feature{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(360px,.82fr);gap:var(--cim-copy-gap);align-items:center;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-feature .cim-component-heading{font-size:clamp(42px,4.5vw,60px);}

/* --------------------------------------------------------------------------
   CTA and contact variants
   -------------------------------------------------------------------------- */
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-cta-inline{display:flex!important;align-items:flex-end;justify-content:space-between;gap:56px;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-cta-inline .cim-component-intro{max-width:760px;}

:where(.cim-component-context,.editor-styles-wrapper) .cim-component-image-cta{min-height:520px;display:flex;align-items:center;color:#fff;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-image-cta::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(1,12,24,.98),rgba(1,12,24,.7));}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-image-cta .cim-section__inner{position:relative;z-index:2;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-image-cta .cim-component-intro{max-width:760px;text-align:left;}

:where(.cim-component-context,.editor-styles-wrapper) .cim-component-contact{display:grid!important;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:var(--cim-copy-gap);align-items:start;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-contact-panel{padding:38px 36px;border:1px solid rgba(6,31,68,.14);border-radius:18px;background:#fff;box-shadow:var(--cim-shadow-soft);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-contact-panel h3{margin:0 0 18px;color:var(--navy);font-family:"Playfair Display","Noto Serif Display",Georgia,serif;font-size:30px;font-weight:400;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-contact-panel p{margin:0 0 18px;color:#526274;font-size:16px;line-height:1.72;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-contact-panel > .cim-component-buttons{width:min(100%,760px);margin-inline:auto!important;justify-content:flex-start;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-contact-centered{max-width:860px;margin-inline:auto!important;text-align:center;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-contact-centered .cim-component-lead{margin-inline:auto!important;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-contact-centered .cim-component-buttons{justify-content:center;}

/* FAQ/details pattern */
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-faq{display:grid!important;gap:0;border-top:1px solid rgba(6,31,68,.14);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-faq details{padding:26px 0;border-bottom:1px solid rgba(6,31,68,.14);}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-faq summary{color:var(--navy);font-family:"Playfair Display","Noto Serif Display",Georgia,serif;font-size:25px;line-height:1.25;cursor:pointer;}
:where(.cim-component-context,.editor-styles-wrapper) .cim-component-faq details p{max-width:760px;margin:18px 0 0;color:#526274;font-size:16px;line-height:1.75;}

/* --------------------------------------------------------------------------
   Approved core block styles exposed in the editor
   -------------------------------------------------------------------------- */
:where(.cim-component-context,.editor-styles-wrapper) .wp-block-image.is-style-cim-rounded img{border-radius:18px;box-shadow:var(--cim-shadow-soft);}
:where(.cim-component-context,.editor-styles-wrapper) .wp-block-image.is-style-cim-editorial img{aspect-ratio:16/10;object-fit:cover;border-radius:16px;box-shadow:var(--cim-shadow-editorial);}
:where(.cim-component-context,.editor-styles-wrapper) .wp-block-image.is-style-cim-flat img{border-radius:0;box-shadow:none;}
:where(.cim-component-context,.editor-styles-wrapper) .wp-block-image.is-style-cim-framed{padding:12px;border:1px solid rgba(6,31,68,.12);border-radius:18px;background:#fff;box-shadow:var(--cim-shadow-soft);}
:where(.cim-component-context,.editor-styles-wrapper) .wp-block-image.is-style-cim-framed img{border-radius:10px;}
:where(.cim-component-context,.editor-styles-wrapper) .wp-block-quote.is-style-cim-pullquote{border-left:4px solid var(--gold);padding:38px 42px;background:rgba(255,255,255,.62);}

/* --------------------------------------------------------------------------
   Responsive system
   -------------------------------------------------------------------------- */
@media(max-width:1100px){
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-grid--4 > .cim-icon-card--light:nth-child(2n){border-right:0;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-grid--4 > .cim-icon-card--light:nth-child(-n+2){border-bottom:1px solid rgba(6,31,68,.14);}

  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-grid--4{grid-template-columns:repeat(2,minmax(0,1fr));}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-process{grid-template-columns:repeat(2,minmax(0,1fr));}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-flow{grid-template-columns:repeat(3,minmax(0,1fr));}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-flow__step:nth-child(3)::after{display:none;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-feature,
  :where(.cim-component-context,.editor-styles-wrapper) .cim-feature-project,
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-contact{grid-template-columns:1fr;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-metrics{grid-template-columns:repeat(2,minmax(0,1fr));}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-metric:nth-child(2){border-right:0;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-metric:nth-child(-n+2){border-bottom:1px solid rgba(6,31,68,.14);}
}

@media(max-width:860px){
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-hero--split .cim-component-hero__inner{grid-template-columns:1fr;gap:52px;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-hero--split .cim-media{max-width:560px;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-split,
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-feature-row{grid-template-columns:1fr;gap:52px;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-split--reverse > :first-child,
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-split--reverse > :last-child,
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-feature-row:nth-child(even) > :first-child,
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-feature-row:nth-child(even) > :last-child{order:initial;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-grid--3{grid-template-columns:1fr 1fr;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-timeline{display:block!important;border-top:0;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-timeline__item{padding:0 0 48px 56px;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-timeline__item:last-child{padding-bottom:0;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-timeline__item::before{top:6px;left:8px;z-index:2;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-timeline__item:not(:last-child)::after{content:"";position:absolute;top:14px;left:15.5px;bottom:-14px;width:1px;background:rgba(6,31,68,.18);}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-timeline--vertical{display:block!important;border-left:0;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-timeline--vertical .cim-component-timeline__item{padding:0 0 48px 56px;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-project-list__item{grid-template-columns:56px minmax(0,1fr);gap:18px 24px;align-items:start;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-project-list__item > .cim-component-link{grid-column:2;justify-self:start;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-cta-inline{display:block!important;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-cta-inline .cim-component-buttons{margin-top:34px!important;}
}

@media(max-width:760px){
  :where(.cim-component-context,.editor-styles-wrapper) .cim-project-card,
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-project-card{min-height:0;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-project-card .wp-block-image,
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-project-card .wp-block-image{height:220px;flex-basis:220px;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-project-card__body,
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-project-card__body{padding:34px 28px 32px!important;}

  :where(.cim-component-context,.editor-styles-wrapper){--cim-section-standard:86px;--cim-section-feature:92px;--cim-section-compact:68px;--cim-section-tight:56px;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-section__inner,
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-hero__inner,
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-hero--image .wp-block-cover__inner-container{width:min(calc(100% - 36px),620px);}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-hero--signal{min-height:0;padding:82px 0 76px;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-hero--image,
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-hero--split{min-height:480px;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-hero--split{padding:76px 0;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-heading{font-size:40px;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-heading--display{font-size:47px;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-lead{font-size:17px;line-height:1.72;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-mosaic{grid-template-columns:1fr;grid-template-rows:none;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-mosaic > :first-child{grid-row:auto;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-mosaic .cim-media{height:300px;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-fullbleed,
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-image-cta{min-height:560px;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-grid--2,
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-grid--3,
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-grid--4,
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-process,
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-flow,
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-metrics{grid-template-columns:1fr;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-flow__step::after{display:none!important;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-card,
  :where(.cim-component-context,.editor-styles-wrapper) .cim-card,
  :where(.cim-component-context,.editor-styles-wrapper) .cim-icon-card,
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-icon-card{padding:30px 26px;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-icon-card--light{border-right:0!important;border-bottom:1px solid rgba(6,31,68,.14)!important;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-icon-card--light:last-child{border-bottom:0!important;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-metric{border-right:0!important;border-bottom:1px solid rgba(6,31,68,.14)!important;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-metric:last-child{border-bottom:0!important;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-quote{padding:36px 30px;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-statement--side{grid-template-columns:5px minmax(0,1fr);gap:24px;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-buttons{display:grid!important;grid-template-columns:1fr;gap:14px;width:100%;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-buttons .wp-block-button,
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-buttons .wp-block-button__link{width:100%;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-contact-panel{padding:32px 26px;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-project-list__item{grid-template-columns:40px minmax(0,1fr);gap:12px 16px;align-items:start;padding:28px 0;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-project-list__number{grid-column:1;grid-row:1;margin-top:5px!important;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-project-list__item > .wp-block-group{grid-column:2;grid-row:1;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-project-list__item > .cim-component-link{grid-column:2;grid-row:2;margin-top:4px!important;justify-self:start;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-project-list__item h3{font-size:28px;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-media--editorial,
  :where(.cim-component-context,.editor-styles-wrapper) .cim-media--frame{aspect-ratio:4/3;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-media--portrait{max-height:520px;}
  :where(.cim-component-context,.editor-styles-wrapper) .cim-component-media img{min-height:320px;}
}

@media(prefers-reduced-motion:reduce){
  :where(.cim-component-context,.editor-styles-wrapper) .wp-block-button__link{transition:none;}
  :where(.cim-component-context,.editor-styles-wrapper) .wp-block-button__link:hover{transform:none;}
}

/* Small block-output normalisations inside controlled components. */
:where(.cim-component-context,.editor-styles-wrapper) :is(.cim-component-copy,.cim-card,.cim-component-card,.cim-icon-card,.cim-component-icon-card,.cim-component-contact-panel) > :last-child{margin-bottom:0!important;}
