/* ── Design tokens ──────────────────────────────────────────────────────────── */
:root {
  --navy:    #0D1B2A;
  --navy2:   #162032;
  --navy3:   #1E2D3E;
  --cream:   #F9F6F0;
  --gold:    #D4952A;
  --gold-lt: #F0C96A;
  --rose:    #C4687A;
  --sage:    #6BA68A;
  --sky:     #7FB5D0;
  --warm:    #F2E8D9;
  --muted:   rgba(249,246,240,0.55);
}

/* ── Reset ──────────────────────────────────────────────────────────────────── */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  background: var(--cream);
  color: var(--navy);
  font-family: "Nunito Sans", sans-serif;
  overflow-x: hidden;
  font-weight: 400;
  letter-spacing: 0.005em;
}

/* ── Cursor ─────────────────────────────────────────────────────────────────── */
#cursor-dot {
  position: fixed; width: 10px; height: 10px; border-radius: 50%;
  background: var(--gold); pointer-events: none; z-index: 9999;
  left: 0; top: 0; transform: translate(-50%,-50%);
  transition: width 0.2s, height 0.2s;
}
#cursor-ring {
  position: fixed; width: 40px; height: 40px; border-radius: 50%;
  border: 1.5px solid rgba(212,149,42,0.7); pointer-events: none; z-index: 9998;
  left: 0; top: 0; transform: translate(-50%,-50%);
  transition: width 0.3s, height 0.3s, opacity 0.3s;
}
#cursor-glow {
  position: fixed; width: 380px; height: 380px; border-radius: 50%;
  background: radial-gradient(circle, rgba(212,149,42,0.06) 0%, transparent 70%);
  pointer-events: none; z-index: 0; left: 0; top: 0;
  transform: translate(-50%,-50%);
}

/* ── Scroll progress ────────────────────────────────────────────────────────── */
#prog {
  position: fixed; top: 0; left: 0; height: 3px;
  background: linear-gradient(90deg, var(--gold), var(--rose), var(--sage));
  z-index: 999; width: 0; transition: width 0.12s linear;
}

/* ── Nav ────────────────────────────────────────────────────────────────────── */
nav.ccg-nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 400;
  display: flex; align-items: center; justify-content: space-between;
  padding: 1rem 3rem;
  transition: background 0.4s, box-shadow 0.4s, padding 0.3s;
}
nav.ccg-nav.scrolled {
  background: rgba(13,27,42,0.97);
  box-shadow: 0 1px 30px rgba(0,0,0,0.3);
  backdrop-filter: blur(12px);
  padding: 0.7rem 3rem;
}
.nav-logo img,
.nav-logo .wp-block-site-logo img { height: 46px; width: auto; display: block; }
.nav-logo .wp-block-site-logo { line-height: 0; }

/* Navigation block links */
.ccg-nav .wp-block-navigation,
.nav-links { display: flex; gap: 2.2rem; list-style: none; }
.ccg-nav .wp-block-navigation .wp-block-navigation-item__content,
.nav-links a {
  font-size: 0.72rem; font-weight: 500; letter-spacing: 0.1em;
  text-transform: uppercase; color: rgba(249,246,240,0.55);
  text-decoration: none; transition: color 0.2s;
}
.ccg-nav .wp-block-navigation .wp-block-navigation-item__content:hover,
.nav-links a:hover { color: var(--gold); }

/* Nav CTA button */
.nav-cta .wp-block-button__link,
.nav-cta {
  font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--navy) !important; background: var(--gold) !important;
  padding: 0.65rem 1.7rem; border-radius: 100px !important; text-decoration: none;
  transition: background 0.3s, transform 0.2s;
}
.nav-cta .wp-block-button__link:hover,
.nav-cta:hover { background: var(--gold-lt) !important; transform: translateY(-1px); }

/* Strip default navigation block chrome */
.ccg-nav .wp-block-navigation__container { gap: 2.2rem; }
.ccg-nav .wp-block-navigation { background: transparent !important; }

/* Mobile bottom nav */
.mob {
  display: none; position: fixed; bottom: 1.2rem; left: 50%;
  transform: translateX(-50%); z-index: 400;
  background: rgba(13,27,42,0.95); backdrop-filter: blur(12px);
  border-radius: 100px; padding: 0.85rem 2rem; gap: 2rem;
  border: 1px solid rgba(212,149,42,0.25);
}
.mob a {
  font-size: 0.65rem; font-weight: 600; letter-spacing: 0.1em;
  text-transform: uppercase; color: rgba(255,255,255,0.4);
  text-decoration: none; transition: color 0.2s;
}
.mob a:hover, .mob a.on { color: var(--gold); }

/* ── Hero ───────────────────────────────────────────────────────────────────── */
#hero {
  min-height: 100vh; background: var(--navy);
  display: flex; align-items: center;
  position: relative; overflow: hidden;
  padding: 9rem 4rem 6rem;
}
.clock-ring {
  position: absolute; border-radius: 50%;
  border: 1px solid rgba(212,149,42,0.12);
  top: 50%; left: 62%; transform: translate(-50%,-50%);
  animation: ringPulse 8s ease-in-out infinite;
}
.cr1 { width: 85vmin; height: 85vmin; }
.cr2 { width: 70vmin; height: 70vmin; border-color: rgba(212,149,42,0.18); animation-delay: -2s; }
.cr3 { width: 55vmin; height: 55vmin; border-color: rgba(212,149,42,0.25); animation-delay: -4s; }
.cr4 { width: 40vmin; height: 40vmin; border-color: rgba(212,149,42,0.35); animation-delay: -6s; }
.clock-face {
  position: absolute; width: 55vmin; height: 55vmin;
  top: 50%; left: 62%; transform: translate(-50%,-50%);
}
.clock-hand {
  position: absolute; bottom: 50%; left: 50%;
  transform-origin: bottom center; width: 2px;
  background: linear-gradient(to top, var(--gold), transparent);
  border-radius: 2px; animation: sweep 12s linear infinite;
}
.ch-long  { height: 22vmin; margin-left: -1px; }
.ch-short { height: 14vmin; margin-left: -1px; animation-duration: 144s; }
.clock-centre {
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%,-50%);
  width: 10px; height: 10px; background: var(--gold); border-radius: 50%;
}
.particle {
  position: absolute; border-radius: 50%;
  pointer-events: none; animation: particleDrift linear infinite;
}
.hero-content { position: relative; z-index: 2; max-width: 680px; }
.hero-kicker {
  display: inline-flex; align-items: center; gap: 0.8rem; margin-bottom: 2.5rem;
  opacity: 0; animation: fadeSlide 0.8s ease forwards 0.3s;
  font-size: 0.68rem; font-weight: 900; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--gold);
  font-family: "Nunito Sans", sans-serif;
}
.hero-kicker::before { content: ""; width: 40px; height: 1px; background: var(--gold); flex-shrink: 0; }
.hero-h1 {
  font-family: "Outfit", sans-serif; font-size: clamp(3.2rem,7.5vw,8rem);
  font-weight: 900; line-height: 0.88; color: var(--cream);
  margin-bottom: 2.5rem; letter-spacing: -0.055em;
  text-wrap: balance;
}
.hero-h1 .w { display: block; overflow: hidden; padding: 0.05em 0.3em 0.1em 0.05em; margin: -0.12em -0.06em; }
.hero-h1 .w span { display: block; transform: translateY(110%); animation: wordUp 0.9s cubic-bezier(0.16,1,0.3,1) forwards; }
.hero-h1 .w:nth-child(1) span { animation-delay: 0.4s; }
.hero-h1 .w:nth-child(3) span { animation-delay: 0.6s; }
.hero-h1 .w:nth-child(5) span { animation-delay: 0.8s; }
.hero-h1 .brk { display: none; }
.hero-h1 em { color: var(--gold-lt); font-style: italic; text-shadow: 0 0 22px rgba(240,201,106,0); animation: glowReveal 0.5s ease forwards; }
.hero-h1 .w:nth-child(1) em { animation-delay: 0.4s; }
.hero-h1 .w:nth-child(5) em { animation-delay: 0.8s; }
.hero-sub {
  font-family: "Nunito Sans", sans-serif; font-weight: 500;
  font-size: clamp(1.08rem,1.35vw,1.32rem); line-height: 1.75;
  color: rgba(249,246,240,0.72); max-width: 560px;
  margin-bottom: 3rem; opacity: 0;
  animation: fadeSlide 0.8s ease forwards 1.1s;
  letter-spacing: 0.005em;
}
.hero-actions {
  display: flex; gap: 1rem; flex-wrap: wrap;
  opacity: 0; animation: fadeSlide 0.8s ease forwards 1.3s;
}
.scroll-ind {
  position: absolute; bottom: 2.5rem; left: 50%;
  transform: translateX(-50%); display: flex;
  flex-direction: column; align-items: center; gap: 0.5rem;
  opacity: 0; animation: fadeSlide 0.8s ease forwards 1.8s;
}
.scroll-ind span { font-size: 0.58rem; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(249,246,240,0.3); }
.scroll-line {
  width: 1px; height: 50px;
  background: linear-gradient(to bottom, var(--gold), transparent);
  animation: scrollDrop 2s ease-in-out infinite;
}

/* ── Buttons ─────────────────────────────────────────────────────────────────── */
/* Standalone anchor buttons (non-WP-block) */
.btn-gold {
  padding: 0.95rem 2.2rem; background: var(--gold); color: var(--navy);
  font-family: "Nunito Sans", sans-serif; font-size: 0.78rem;
  font-weight: 900; letter-spacing: 0.08em; text-transform: uppercase;
  text-decoration: none; border-radius: 100px;
  box-shadow: 0 6px 30px rgba(212,149,42,0.35); transition: all 0.3s;
  display: inline-block;
}
.btn-gold:hover { background: var(--gold-lt); transform: translateY(-2px); box-shadow: 0 10px 40px rgba(212,149,42,0.4); color: var(--navy); }

/* WP block buttons — style only the inner <a>, not the wrapper div */
.btn-primary .wp-block-button__link {
  padding: 0.95rem 2.2rem !important; background: var(--gold) !important; color: var(--navy) !important;
  font-family: "Nunito Sans", sans-serif; font-size: 0.78rem;
  font-weight: 900; letter-spacing: 0.08em; text-transform: uppercase;
  text-decoration: none; border-radius: 100px !important; border: none !important;
  box-shadow: 0 6px 30px rgba(212,149,42,0.35) !important; transition: all 0.3s;
}
.btn-primary .wp-block-button__link:hover { background: var(--gold-lt) !important; transform: translateY(-2px); box-shadow: 0 10px 40px rgba(212,149,42,0.4) !important; }

.btn-ghost .wp-block-button__link {
  padding: 0.95rem 2.2rem !important; background: transparent !important;
  border: 1px solid rgba(249,246,240,0.2) !important; box-shadow: none !important; outline: none !important;
  color: rgba(249,246,240,0.7) !important; font-family: "Nunito Sans", sans-serif;
  font-size: 0.78rem; font-weight: 900; letter-spacing: 0.08em;
  text-transform: uppercase; text-decoration: none; border-radius: 100px !important;
  transition: all 0.3s;
}
.btn-ghost .wp-block-button__link:hover { border-color: var(--gold) !important; color: var(--gold) !important; }
.btn-navy {
  padding: 0.95rem 2.2rem; background: var(--navy); color: var(--cream);
  font-family: "Nunito Sans", sans-serif; font-size: 0.78rem;
  font-weight: 900; letter-spacing: 0.08em; text-transform: uppercase;
  text-decoration: none; border-radius: 100px; transition: all 0.3s;
  display: inline-block;
}
.btn-navy:hover { background: var(--navy3); transform: translateY(-2px); color: var(--cream); }
.btn-navy-block .wp-block-button__link {
  padding: 0.95rem 2.2rem !important; background: var(--navy) !important; color: var(--cream) !important;
  font-family: "Nunito Sans", sans-serif; font-size: 0.78rem;
  font-weight: 900; letter-spacing: 0.08em; text-transform: uppercase;
  text-decoration: none; border-radius: 100px !important; border: none !important; box-shadow: none !important;
  transition: all 0.3s;
}
.btn-navy-block .wp-block-button__link:hover { background: var(--navy3) !important; transform: translateY(-2px); }

/* ── Ticker ──────────────────────────────────────────────────────────────────── */
.ticker-section {
  background: var(--navy2); overflow: hidden;
  border-top: 1px solid rgba(212,149,42,0.1);
  border-bottom: 1px solid rgba(212,149,42,0.1);
}
.ticker-row { display: flex; gap: 0; white-space: nowrap; padding: 0.85rem 0; width: max-content; }
.ticker-row.t1 { animation: tick 28s linear infinite; }
.ticker-row.t2 { animation: tick 34s linear infinite reverse; background: rgba(255,255,255,0.02); }
.titem {
  font-family: "Outfit", sans-serif; font-size: 1.05rem;
  font-weight: 900; letter-spacing: -0.02em;
  padding: 0 2.2rem; flex-shrink: 0;
  display: inline-flex; align-items: center; gap: 0.8rem;
}
.tdot { width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; }

/* ── Stats strip ─────────────────────────────────────────────────────────────── */
.stats-strip {
  background: var(--gold);
  display: grid; grid-template-columns: repeat(4,1fr);
}
.stat-cell {
  padding: 2.5rem 2rem;
  border-right: 1px solid rgba(13,27,42,0.1);
  transition: background 0.3s; cursor: default;
}
.stat-cell:last-child { border-right: none; }
.stat-cell:hover { background: rgba(255,255,255,0.12); }
.stat-n {
  font-family: "Outfit", sans-serif;
  font-size: clamp(2.5rem,3.5vw,3.8rem);
  font-weight: 900; line-height: 1; color: var(--navy);
  margin-bottom: 0.3rem; letter-spacing: -0.06em;
}
.stat-l {
  font-family: "Nunito Sans", sans-serif;
  font-size: 0.7rem; font-weight: 900;
  letter-spacing: 0.08em; text-transform: uppercase;
  color: rgba(13,27,42,0.68);
}

/* ── Photo placeholder ───────────────────────────────────────────────────────── */
.ph {
  position: relative; overflow: hidden;
  background: linear-gradient(135deg,#1a2e40 0%,#243d52 50%,#1a3040 100%);
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; gap: 0.8rem;
}
.ph::before {
  content: ""; position: absolute; inset: 0;
  background: repeating-linear-gradient(-45deg,transparent 0,transparent 18px,rgba(255,255,255,0.015) 18px,rgba(255,255,255,0.015) 20px);
}
.ph::after {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(ellipse at center,rgba(212,149,42,0.06) 0%,transparent 65%);
}
.ph-ico  { font-size: 2.2rem; opacity: 0.25; position: relative; z-index: 1; }
.ph-lbl  { font-size: 0.62rem; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; color: rgba(212,149,42,0.4); position: relative; z-index: 1; }
.ph-sub  { font-size: 0.55rem; color: rgba(255,255,255,0.15); letter-spacing: 0.08em; position: relative; z-index: 1; }

/* ── About ───────────────────────────────────────────────────────────────────── */
#about { padding: 10rem 4rem; position: relative; overflow-x: hidden; background: var(--cream); }
.ch-num-a {
  position: absolute; font-family: "Outfit", sans-serif;
  font-size: 25vw; font-weight: 900; line-height: 1;
  pointer-events: none; opacity: 0.035;
  top: -4vw; left: -2vw; color: var(--navy);
}
.about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 7rem; align-items: center; position: relative; z-index: 2; }
.about-label {
  font-family: "Nunito Sans", sans-serif;
  font-size: 0.65rem; font-weight: 900; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--gold);
  display: flex; align-items: center; gap: 0.8rem; margin-bottom: 1.8rem;
}
.about-label::before { content: ""; width: 28px; height: 1px; background: var(--gold); }
.about-h2 {
  font-family: "Outfit", sans-serif;
  font-size: clamp(2.2rem,4vw,4.2rem);
  font-weight: 900; line-height: 0.98; color: var(--navy);
  margin-bottom: 2rem; letter-spacing: -0.055em; text-wrap: balance;
}
.about-h2 em {
  font-style: normal; color: var(--gold);
  background: linear-gradient(135deg, var(--gold), var(--rose));
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.about-body {
  font-family: "Nunito Sans", sans-serif;
  font-size: 1.05rem; font-weight: 500;
  line-height: 1.9; color: rgba(13,27,42,0.68); margin-bottom: 1.3rem;
}
.about-link {
  display: inline-flex; align-items: center; gap: 0.6rem;
  font-size: 0.8rem; font-weight: 600; color: var(--gold);
  text-decoration: none; transition: gap 0.3s; margin-top: 0.5rem;
}
.about-link:hover { gap: 1rem; color: var(--gold); }
.about-right { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: auto auto; gap: 1rem; }
.about-img-main { grid-column: 1/3; height: 260px; border-radius: 16px; overflow: hidden; }
.about-img-main .ph, .about-img-main img { height: 100%; width: 100%; object-fit: cover; border-radius: 16px; }
.about-img-sm  { height: 160px; border-radius: 12px; overflow: hidden; }
.about-img-sm .ph, .about-img-sm img { height: 100%; width: 100%; object-fit: cover; border-radius: 12px; }
.about-quote-card {
  background: var(--navy); border-radius: 12px;
  padding: 1.8rem 1.6rem; position: relative; overflow: hidden;
  display: flex; flex-direction: column; justify-content: space-between;
}
.about-quote-card::before {
  content: ""; position: absolute; top: 0; left: 0; bottom: 0;
  width: 3px; background: linear-gradient(to bottom, var(--gold), var(--rose));
}
.aq-qm  { font-family: "Outfit", sans-serif; font-size: 4rem; line-height: 0.8; color: rgba(212,149,42,0.2); display: block; }
.aq-text { font-family: "Nunito Sans", sans-serif; font-weight: 500; font-size: 0.88rem; line-height: 1.65; color: rgba(249,246,240,0.8); position: relative; z-index: 1; margin-top: -0.5rem; }
.aq-cite { font-size: 0.55rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gold); margin-top: 1rem; }

/* ── Full bleed break ────────────────────────────────────────────────────────── */
.fullbleed-break { position: relative; height: 420px; overflow: hidden; }
.fullbleed-break .ph, .fullbleed-break img { height: 100%; width: 100%; object-fit: cover; border-radius: 0; }
.fb-overlay {
  position: absolute; inset: 0; z-index: 2;
  background: linear-gradient(to right,rgba(13,27,42,0.75) 0%,rgba(13,27,42,0.2) 60%,transparent 100%);
  display: flex; align-items: center; padding: 0 5rem;
}
.fb-text { color: var(--cream); }
.fb-label {
  font-family: "Nunito Sans", sans-serif;
  font-size: 0.65rem; font-weight: 900; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--gold);
  margin-bottom: 1rem; display: flex; align-items: center; gap: 0.8rem;
}
.fb-label::before { content: ""; width: 24px; height: 1px; background: var(--gold); }
.fb-heading {
  font-family: "Outfit", sans-serif;
  font-size: clamp(2rem,4vw,3.8rem);
  font-weight: 900; line-height: 1.1; max-width: 500px;
  letter-spacing: -0.055em; text-wrap: balance;
}
.fb-heading em {
  font-style: normal; color: var(--gold);
  background: linear-gradient(135deg, var(--gold), var(--rose));
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}

/* ── Services ────────────────────────────────────────────────────────────────── */
#services { padding: 10rem 4rem; background: var(--navy); color: var(--cream); position: relative; overflow-x: hidden; }
.ch-num-s {
  position: absolute; font-family: "Outfit", sans-serif;
  font-size: 25vw; font-weight: 900; line-height: 1;
  pointer-events: none; opacity: 0.03;
  top: -4vw; right: -2vw; color: var(--cream);
}
.svc-head { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 4rem; position: relative; z-index: 2; }
.svc-h2 {
  font-family: "Outfit", sans-serif;
  font-size: clamp(2.5rem,5vw,5rem);
  font-weight: 900; line-height: 1; letter-spacing: -0.055em; text-wrap: balance;
}
.svc-h2 em {
  font-style: normal; color: var(--gold);
  background: linear-gradient(135deg, var(--gold), var(--rose));
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; padding-right: 0.05em;
}
.svc-note { font-family: "Outfit", sans-serif; font-style: italic; font-size: 0.9rem; color: rgba(249,246,240,0.3); max-width: 180px; text-align: right; line-height: 1.6; }
.svc-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: rgba(249,246,240,0.05); position: relative; z-index: 2; }
.svc { background: var(--navy); padding: 2.8rem 2.2rem; position: relative; overflow: hidden; transition: background 0.4s; cursor: default; }
.svc:hover { background: var(--navy3); }
.svc::after { content: ""; position: absolute; bottom: 0; left: 0; right: 0; height: 2px; transform: scaleX(0); transform-origin: left; transition: transform 0.4s ease; }
.svc:hover::after { transform: scaleX(1); }
.svc:nth-child(1)::after, .svc:nth-child(4)::after { background: var(--gold); }
.svc:nth-child(2)::after, .svc:nth-child(5)::after { background: var(--rose); }
.svc:nth-child(3)::after, .svc:nth-child(6)::after { background: var(--sage); }
.svc-dot { width: 9px; height: 9px; border-radius: 50%; margin-bottom: 1.8rem; }
.sd-g { background: var(--gold); }
.sd-r { background: var(--rose); }
.sd-s { background: var(--sage); }
.svc-idx { font-family: "Outfit", sans-serif; font-style: italic; font-size: 3rem; color: rgba(249,246,240,0.04); position: absolute; top: 1.5rem; right: 1.8rem; transition: color 0.4s; }
.svc:hover .svc-idx { color: rgba(249,246,240,0.09); }
.svc-title { font-family: "Outfit", sans-serif; font-size: 1.45rem; font-weight: 800; letter-spacing: -0.03em; color: var(--cream); margin-bottom: 0.9rem; line-height: 1.2; }
.svc-body { font-family: "Nunito Sans", sans-serif; font-size: 0.83rem; font-weight: 500; line-height: 1.85; color: rgba(249,246,240,0.58); }

/* ── Photo mosaic ────────────────────────────────────────────────────────────── */
.photo-mosaic {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  grid-template-rows: 280px 280px;
  gap: 3px;
}
.pm-item { position: relative; overflow: hidden; background: linear-gradient(135deg,#1a2e40 0%,#243d52 50%,#1a3040 100%); }
.pm-item .wp-block-cover__image-background { transition: transform 0.6s ease; object-fit: cover; }
.pm-item:hover .wp-block-cover__image-background { transform: scale(1.04); }
.pm-1 { grid-row: span 2; }
.pm-item .wp-block-cover__inner-container { position: absolute; bottom: 0; left: 0; right: 0; padding: 0; }
.pm-label {
  position: absolute; bottom: 1.2rem; left: 1.2rem; z-index: 3; margin: 0;
  font-size: 0.6rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
  color: rgba(249,246,240,0.6); background: rgba(13,27,42,0.5);
  padding: 0.3rem 0.75rem; border-radius: 100px; backdrop-filter: blur(4px);
}
.photo-mosaic .wp-block-cover { min-height: 0 !important; height: 100%; }


/* ── Team ────────────────────────────────────────────────────────────────────── */
#team { padding: 10rem 4rem; background: linear-gradient(160deg,#F5EEE4 0%,#EDE4D5 100%); position: relative; overflow: hidden; }
.ch-num-t {
  position: absolute; font-family: "Outfit", sans-serif;
  font-size: 25vw; font-weight: 900; line-height: 1;
  pointer-events: none; opacity: 0.035;
  bottom: -4vw; left: -2vw; color: var(--navy);
}
.team-head { margin-bottom: 4.5rem; position: relative; z-index: 2; }
.team-label {
  font-family: "Nunito Sans", sans-serif;
  font-size: 0.65rem; font-weight: 900; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--rose);
  display: flex; align-items: center; gap: 0.8rem; margin-bottom: 1.3rem;
}
.team-label::before { content: ""; width: 28px; height: 1px; background: var(--rose); }
.team-h2 {
  font-family: "Outfit", sans-serif;
  font-size: clamp(2.2rem,4.5vw,4.5rem);
  font-weight: 900; line-height: 0.98; color: var(--navy);
  letter-spacing: -0.055em; text-wrap: balance;
}
.team-h2 em {
  font-style: normal; color: var(--rose);
  background: linear-gradient(135deg, var(--gold), var(--rose));
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.team-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.5rem; position: relative; z-index: 2; }
.tcard { background: var(--cream); border-radius: 20px; overflow: hidden; box-shadow: 0 4px 40px rgba(13,27,42,0.07); transition: transform 0.4s cubic-bezier(0.34,1.2,0.64,1), box-shadow 0.4s; }
.tcard:hover { transform: translateY(-6px); box-shadow: 0 16px 60px rgba(13,27,42,0.13); }
.tc-photo { height: 220px; position: relative; overflow: hidden; }
.tc-photo .ph, .tc-photo img { height: 100%; width: 100%; object-fit: cover; border-radius: 0; transition: transform 0.5s ease; }
.tcard:hover .tc-photo .ph, .tcard:hover .tc-photo img { transform: scale(1.05); }
.tc-stripe { position: absolute; top: 0; left: 0; right: 0; height: 4px; }
.ts-gold { background: linear-gradient(90deg, var(--gold), var(--gold-lt)); }
.ts-rose { background: linear-gradient(90deg, var(--rose), #E8A0AD); }
.ts-sage { background: linear-gradient(90deg, var(--sage), #9BC9AE); }
.tc-body { padding: 2rem 1.8rem; }
.tc-role { font-size: 0.6rem; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; margin-bottom: 0.4rem; }
.tr-g { color: var(--gold); }
.tr-r { color: var(--rose); }
.tr-s { color: var(--sage); }
.tc-name { font-family: "Outfit", sans-serif; font-size: 1.2rem; font-weight: 800; letter-spacing: -0.03em; color: var(--navy); margin-bottom: 0.9rem; line-height: 1.2; }
.tc-bio { font-family: "Nunito Sans", sans-serif; font-size: 0.82rem; font-weight: 500; line-height: 1.85; color: rgba(13,27,42,0.62); margin-bottom: 1.3rem; }
.tc-quals { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.tq { font-size: 0.58rem; font-weight: 600; letter-spacing: 0.06em; padding: 0.25rem 0.7rem; border-radius: 100px; }
.tq-g { background: rgba(212,149,42,0.1); color: var(--gold); }
.tq-r { background: rgba(196,104,122,0.1); color: var(--rose); }
.tq-s { background: rgba(107,166,138,0.1); color: var(--sage); }

/* ── Mission break ───────────────────────────────────────────────────────────── */
.mission-break { position: relative; height: 500px; overflow: hidden; }
.mission-break .ph, .mission-break img { height: 100%; width: 100%; object-fit: cover; border-radius: 0; }
.mb-overlay {
  position: absolute; inset: 0; z-index: 2;
  background: linear-gradient(135deg,rgba(13,27,42,0.88) 0%,rgba(13,27,42,0.5) 50%,rgba(13,27,42,0.2) 100%);
  display: flex; align-items: center; justify-content: center;
  text-align: center; padding: 3rem;
}
.mb-inner { color: var(--cream); max-width: 700px; }
.mb-kicker {
  font-family: "Nunito Sans", sans-serif;
  font-size: 0.65rem; font-weight: 900; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--gold);
  display: flex; align-items: center; gap: 0.8rem;
  justify-content: center; margin-bottom: 1.5rem;
}
.mb-kicker::before, .mb-kicker::after { content: ""; width: 28px; height: 1px; background: var(--gold); }
.mb-heading {
  font-family: "Outfit", sans-serif;
  font-size: clamp(2.5rem,5vw,5rem);
  font-weight: 900; line-height: 1.05; margin-bottom: 1.5rem;
  letter-spacing: -0.055em; text-wrap: balance;
}
.mb-heading em {
  font-style: normal; color: var(--gold);
  background: linear-gradient(135deg, var(--gold), var(--rose));
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.mb-sub { font-family: "Nunito Sans", sans-serif; font-weight: 500; font-size: 1.1rem; line-height: 1.8; color: rgba(249,246,240,0.6); }

/* ── Outstanding ─────────────────────────────────────────────────────────────── */
#outstanding { background: var(--navy2); color: var(--cream); text-align: center; padding: 12rem 4rem; position: relative; overflow: hidden; }
.out-bg {
  position: absolute; font-family: "Outfit", sans-serif;
  font-size: 32vw; font-weight: 900; line-height: 1;
  color: rgba(255,255,255,0.025);
  top: 50%; left: 50%; transform: translate(-50%,-50%);
  white-space: nowrap; pointer-events: none;
  animation: bgDrift 18s ease-in-out infinite alternate;
  letter-spacing: -0.04em;
}
.out-shapes { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.oshape { position: absolute; border-radius: 50%; background: rgba(255,255,255,0.04); animation: floatUp 15s ease-in-out infinite; }
.os1 { width: 300px; height: 300px; top: -80px; left: -60px; animation-delay: -3s; }
.os2 { width: 180px; height: 180px; bottom: -40px; right: 8%; animation-delay: -8s; }
.out-inner { position: relative; z-index: 2; }
.out-kicker { display: inline-flex; align-items: center; gap: 0.8rem; margin-bottom: 2rem; }
.out-kicker span { font-family: "Nunito Sans", sans-serif; font-size: 0.65rem; font-weight: 900; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold); }
.okl { width: 32px; height: 1px; background: var(--gold); }
.out-main {
  font-family: "Outfit", sans-serif;
  font-size: clamp(5rem,15vw,15rem);
  font-weight: 900; line-height: 0.85; letter-spacing: -0.06em;
  background: linear-gradient(135deg, var(--gold) 0%, var(--gold-lt) 40%, var(--rose) 100%);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; padding-bottom: 0.2em;
}
.out-stars { font-size: 2rem; letter-spacing: 0.2em; margin: 2rem 0 1.5rem; color: var(--gold); }
.out-sub { font-family: "Nunito Sans", sans-serif; font-weight: 500; font-size: 1.3rem; color: rgba(249,246,240,0.4); margin-bottom: 4rem; }
.out-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: rgba(249,246,240,0.05); max-width: 880px; margin: 0 auto; }
.out-cell { background: var(--navy2); padding: 2.5rem 2rem; transition: background 0.3s; }
.out-cell:hover { background: var(--navy3); }
.out-cell-icon { font-size: 1.5rem; margin-bottom: 1rem; display: block; }
.out-cell-title { font-family: "Outfit", sans-serif; font-size: 1rem; font-weight: 800; letter-spacing: -0.03em; color: var(--cream); margin-bottom: 0.5rem; line-height: 1.3; }
.out-cell-rating { font-size: 0.6rem; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; color: var(--gold); }

/* Ofsted report link area */
.out-report {
  margin-top: 3.5rem;
  display: flex; flex-direction: column; align-items: center; gap: 1.4rem;
}
.out-report-note {
  font-family: "Nunito Sans", sans-serif; font-size: 0.88rem;
  font-weight: 500; line-height: 1.7;
  color: rgba(249,246,240,0.32); max-width: 400px; margin: 0;
}

/* ── CTA ─────────────────────────────────────────────────────────────────────── */
#cta { padding: 10rem 4rem; background: var(--cream); display: grid; grid-template-columns: 1fr 1fr; gap: 8rem; align-items: center; position: relative; overflow: hidden; }
.ch-num-c { position: absolute; font-family: "Outfit", sans-serif; font-size: 25vw; font-weight: 900; line-height: 1; pointer-events: none; opacity: 0.035; bottom: -4vw; right: -2vw; color: var(--navy); }
.cta-left { position: relative; z-index: 2; }
.cta-label {
  font-family: "Nunito Sans", sans-serif;
  font-size: 0.65rem; font-weight: 900; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--sky);
  display: flex; align-items: center; gap: 0.8rem; margin-bottom: 1.8rem;
}
.cta-label::before { content: ""; width: 28px; height: 1px; background: var(--sky); }
.cta-h2 {
  font-family: "Outfit", sans-serif;
  font-size: clamp(2.5rem,5vw,5rem);
  font-weight: 900; line-height: 0.98; color: var(--navy);
  margin-bottom: 2rem; letter-spacing: -0.055em; text-wrap: balance;
}
.cta-h2 em {
  font-style: normal; color: var(--gold);
  background: linear-gradient(135deg, var(--gold), var(--rose));
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.cta-body { font-family: "Nunito Sans", sans-serif; font-size: 1.05rem; font-weight: 500; line-height: 1.9; color: rgba(13,27,42,0.55); margin-bottom: 3rem; }
.cta-btns { display: flex; gap: 1rem; flex-wrap: wrap; }
.cta-right { position: relative; z-index: 2; display: flex; flex-direction: column; gap: 1.2rem; }
.cta-img { height: 240px; border-radius: 16px; overflow: hidden; }
.cta-img .ph, .cta-img img { height: 100%; width: 100%; object-fit: cover; border-radius: 16px; }
.cta-card { background: var(--navy); border-radius: 20px; padding: 2.5rem; color: var(--cream); position: relative; overflow: hidden; }
.cta-card::before { content: ""; position: absolute; bottom: -20px; right: -20px; width: 160px; height: 160px; border-radius: 50%; background: radial-gradient(circle,rgba(212,149,42,0.1) 0%,transparent 70%); }
.cc-row { display: flex; gap: 1.4rem; align-items: flex-start; padding: 1.2rem 0; border-bottom: 1px solid rgba(249,246,240,0.06); }
.cc-row:last-child { border-bottom: none; }
.cc-icon { width: 34px; height: 34px; border-radius: 8px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; font-size: 0.95rem; background: rgba(212,149,42,0.12); }
.cc-lbl { font-size: 0.55rem; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; color: rgba(249,246,240,0.28); margin-bottom: 0.25rem; }
.cc-val { font-family: "Outfit", sans-serif; font-size: 0.9rem; font-weight: 800; letter-spacing: -0.03em; color: var(--cream); }

/* ── Footer ──────────────────────────────────────────────────────────────────── */
footer.ccg-footer {
  background: var(--navy); padding: 2.5rem 4rem;
  display: flex; justify-content: space-between; align-items: center;
  border-top: 1px solid rgba(212,149,42,0.15); flex-wrap: wrap; gap: 1rem;
}
.footer-logo img { height: 34px; width: auto; filter: brightness(0) invert(1); opacity: 0.65; }
.ft { font-family: "Nunito Sans", sans-serif; font-weight: 500; font-size: 0.9rem; color: rgba(249,246,240,0.3); }
.fc { font-size: 0.65rem; color: rgba(249,246,240,0.18); letter-spacing: 0.05em; }
.footer-links { font-size: 0.65rem; letter-spacing: 0.05em; margin: 0; }
.footer-links a { color: rgba(249,246,240,0.28); text-decoration: none; transition: color 0.25s; }
.footer-links a:hover { color: var(--gold); }

/* ── Star animation ──────────────────────────────────────────────────────────── */
.stars-stat span { display: inline-block; opacity: 0; transform: scale(0.3); color: var(--navy); transition: none; }
.stars-stat.animated span { animation: starPop 0.4s cubic-bezier(0.34,1.56,0.64,1) forwards; }
.stars-stat.animated span:nth-child(1) { animation-delay: 0s; }
.stars-stat.animated span:nth-child(2) { animation-delay: 0.12s; }
.stars-stat.animated span:nth-child(3) { animation-delay: 0.24s; }
.stars-stat.animated span:nth-child(4) { animation-delay: 0.36s; }
.stars-stat.animated span:nth-child(5) { animation-delay: 0.48s; }
@keyframes starPop {
  0%   { opacity: 0; transform: scale(0.2) rotate(-20deg); color: rgba(13,27,42,0.2); }
  60%  { opacity: 1; transform: scale(1.3) rotate(5deg);   color: var(--navy); }
  100% { opacity: 1; transform: scale(1)   rotate(0deg);   color: var(--navy); }
}

/* ── Split-flap animation ────────────────────────────────────────────────────── */
.splitflap-stat { display: flex; align-items: baseline; gap: 0.02em; }
.sf-digit { display: inline-block; min-width: 0.55em; text-align: center; font-variant-numeric: tabular-nums; }
.sf-slash { display: inline-block; opacity: 0; transition: opacity 0.2s; margin: 0 0.02em; }
.splitflap-stat.animated .sf-slash { opacity: 1; transition-delay: 0.5s; }

/* ── Scroll reveals ──────────────────────────────────────────────────────────── */
.r  { opacity: 0; transform: translateY(32px);  transition: opacity 0.9s ease, transform 0.9s ease; }
.rl { opacity: 0; transform: translateX(-45px); transition: opacity 0.9s ease, transform 0.9s ease; }
.rr { opacity: 0; transform: translateX(45px);  transition: opacity 0.9s ease, transform 0.9s ease; }
.rs { opacity: 0; transform: scale(0.95);       transition: opacity 0.9s ease, transform 0.9s ease; }
.r.in, .rl.in, .rr.in, .rs.in { opacity: 1; transform: none; }

/* ── Keyframes ───────────────────────────────────────────────────────────────── */
@keyframes wordUp        { from { transform: translateY(110%); } to { transform: translateY(0); } }
@keyframes glowReveal    { from { text-shadow: 0 0 22px rgba(240,201,106,0); } to { text-shadow: 0 0 22px rgba(240,201,106,0.45); } }
@keyframes fadeSlide     { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@keyframes ringPulse     { 0%,100% { transform: translate(-50%,-50%) scale(1); opacity: 0.7; } 50% { transform: translate(-50%,-50%) scale(1.04); opacity: 1; } }
@keyframes sweep         { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes scrollDrop    { 0%,100% { transform: scaleY(1); opacity: 1; } 50% { transform: scaleY(0.4); opacity: 0.3; } }
@keyframes particleDrift { 0% { transform: translateY(0); opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { transform: translateY(-100vh); opacity: 0; } }
@keyframes tick          { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes bgDrift       { from { transform: translate(-52%,-50%); } to { transform: translate(-48%,-50%); } }
@keyframes floatUp       { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-20px); } }

/* ── Responsive ──────────────────────────────────────────────────────────────── */

/* Photo mosaic gets its own breakpoint — 3-col → 2-up at 900px */
@media (max-width: 900px) {
  .photo-mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: 220px 220px 220px; }
  .pm-1         { grid-row: span 1; grid-column: span 2; }
}

/* ─ Tablet (≤1024px) ─────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  /* Nav */
  nav.ccg-nav         { padding: 1rem 2rem; }
  nav.ccg-nav.scrolled { padding: 0.7rem 2rem; }

  /* Hero */
  #hero               { padding: 8rem 3rem 6rem; }

  /* About */
  #about              { padding: 7rem 3rem; }
  .about-grid         { grid-template-columns: 1fr; gap: 4rem; }

  /* Services */
  #services           { padding: 7rem 3rem; }
  .svc-grid           { grid-template-columns: repeat(2,1fr); }
  .svc-head           { flex-direction: column; align-items: flex-start; gap: 1.2rem; }
  .svc-note           { text-align: left; max-width: none; }

  /* Mission break */
  .mission-break      { height: 380px; }

  /* Team */
  #team               { padding: 7rem 3rem; }
  .team-grid          { grid-template-columns: repeat(2,1fr); }

  /* Outstanding */
  #outstanding        { padding: 8rem 3rem; }

  /* CTA */
  #cta                { padding: 7rem 3rem; grid-template-columns: 1fr; gap: 4rem; }
}

/* ─ Mobile landscape / large phone (≤768px) ─────────────────────────────── */
@media (max-width: 768px) {
  /* Hide custom cursor on touch devices */
  #cursor-dot, #cursor-ring, #cursor-glow { display: none; }

  /* Nav: hide desktop nav, show floating mobile pill */
  nav.ccg-nav         { display: none; }
  .mob                { display: flex; }

  /* Hero */
  #hero               { padding: 7rem 1.8rem 5rem; }
  .clock-ring,
  .clock-face         { left: 50%; }            /* centre rings behind text */
  .hero-content       { max-width: 100%; }
  .hero-h1            { letter-spacing: -0.04em; }
  .hero-sub           { font-size: 1rem; }
  .scroll-ind         { display: none; }        /* too cramped on mobile */

  /* Ticker */
  .titem              { font-size: 0.88rem; padding: 0 1.4rem; }

  /* Stats strip */
  .stats-strip        { grid-template-columns: repeat(2,1fr); }
  .stat-cell          { padding: 2rem 1.2rem; }

  /* About */
  #about              { padding: 5rem 1.5rem; }

  /* Fullbleed break */
  .fullbleed-break    { height: 300px; }
  .fb-overlay         { padding: 0 1.5rem; }

  /* Services */
  #services           { padding: 5rem 1.5rem; }
  .svc-grid           { grid-template-columns: 1fr; }

  /* Team */
  #team               { padding: 5rem 1.5rem; }
  .team-grid          { grid-template-columns: 1fr; }
  .tc-photo           { height: 200px; }

  /* Mission break */
  .mission-break      { height: 300px; }
  .mb-overlay         { padding: 2rem 1.5rem; }
  .mb-sub             { font-size: 0.95rem; }

  /* Outstanding */
  #outstanding        { padding: 5rem 1.5rem; }
  .out-bg             { font-size: 60vw; }      /* shrink decorative word */
  .out-main           { font-size: clamp(2rem, 9vw, 4rem); padding-bottom: 0.1em; }
  .out-stars          { font-size: 1.6rem; margin: 1.5rem 0 1rem; }
  .out-sub            { font-size: 1.05rem; margin-bottom: 2.5rem; }
  .out-grid           { grid-template-columns: 1fr; }

  /* CTA */
  #cta                { padding: 5rem 1.5rem; }
  .cta-img            { height: 200px; }
  .cta-card           { padding: 1.8rem 1.6rem; }

  /* Footer — extra bottom padding clears the fixed mobile nav pill */
  footer.ccg-footer   { padding: 2rem 1.5rem 5rem; flex-direction: column; text-align: center; }
}

/* ─ Small phone (≤480px) ─────────────────────────────────────────────────── */
@media (max-width: 480px) {
  /* Hero */
  .hero-h1            { font-size: clamp(2.6rem, 11vw, 3.4rem); letter-spacing: -0.035em; }
  .hero-actions       { flex-direction: column; }

  /* Stats: tighten cells */
  .stat-cell          { padding: 1.6rem 1rem; }

  /* About: collapse image grid to single column */
  .about-right        { grid-template-columns: 1fr; }
  .about-img-main     { grid-column: auto; height: 220px; }
  .about-img-sm       { height: 140px; }

  /* Services */
  .svc                { padding: 2.2rem 1.6rem; }

  /* Photo mosaic: single column stack */
  .photo-mosaic       { grid-template-columns: 1fr; grid-template-rows: repeat(5, 200px); }
  .pm-1               { grid-column: auto; }

  /* Mission break */
  .mission-break      { height: 260px; }

  /* Outstanding */
  .out-bg             { font-size: 75vw; }
  .out-sub            { font-size: 0.92rem; }
  .out-cell           { padding: 1.5rem 1.2rem; }

  /* CTA */
  .cta-btns           { flex-direction: column; }
  .cta-card           { padding: 1.4rem 1.2rem; }
  .cc-row             { padding: 0.9rem 0; gap: 1rem; }
}

/* ── WordPress block overrides ───────────────────────────────────────────────── */
.wp-block-button { background: none !important; border: none !important; box-shadow: none !important; padding: 0 !important; }
.wp-site-blocks { padding: 0 !important; }
.wp-block-post-content { margin: 0 !important; }
.is-layout-constrained > * { max-width: none !important; }
.wp-block-buttons .wp-block-button__link { border-radius: 100px !important; }

/* ── Block editor overrides ──────────────────────────────────────────────────── */

/* About image grid */
.about-right .wp-block-image           { margin: 0; max-width: none; width: auto; }
.about-right .wp-block-image.about-img-main { grid-column: 1/3; height: 260px; border-radius: 16px; overflow: hidden; }
.about-right .wp-block-image.about-img-sm   { height: 160px; border-radius: 12px; overflow: hidden; }
.about-right .wp-block-image img       { width: 100%; height: 100%; object-fit: cover; display: block; object-position: center 55%; }
.about-right .wp-block-group.about-quote-card { display: flex; flex-direction: column; justify-content: space-between; }

/* Service cards */
.svc-grid > .wp-block-group            { display: block; }
.svc-grid .wp-block-heading            { margin: 0; }

/* Team cards */
.team-grid > .wp-block-group.tcard     { display: flex; flex-direction: column; }
.tc-photo .wp-block-image              { margin: 0; width: 100%; max-width: none; height: 100%; }
.tc-photo .wp-block-image img          { width: 100%; height: 100%; object-fit: cover; display: block; }
.tc-body > .wp-block-heading           { margin: 0 0 0.9rem; }
.tc-body > .wp-block-paragraph        { margin: 0; }
.cta-card > .wp-block-group.cc-row     { display: flex; }
.cta-card .cc-row > .wp-block-group   { flex: 1; }

/* CTA image */
figure.wp-block-image.ccg-cta-img      { margin: 0; height: 240px; border-radius: 16px; overflow: hidden; max-width: none; }
figure.wp-block-image.ccg-cta-img img  { width: 100%; height: 100%; object-fit: cover; display: block; }

/* CTA cover photo */
.cta-img.wp-block-cover { min-height: 240px !important; height: 240px; border-radius: 16px; }
.cta-img .wp-block-cover__image-background { object-fit: cover; border-radius: 16px; }
.cta-img .wp-block-cover__inner-container { display: none; }

/* CTA card rows */
.cta-card.wp-block-group { background: var(--navy); border-radius: 20px; padding: 2.5rem; }
.cc-row.wp-block-group { gap: 1.4rem !important; }
.cc-row > .wp-block-group { padding: 0; background: none; border-radius: 0; }

/* Outstanding grid */
.out-grid.wp-block-group { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: rgba(249,246,240,0.05); max-width: 880px; margin: 0 auto; }
@media (max-width: 768px) {
  .out-grid.wp-block-group { grid-template-columns: 1fr; }
}
.out-cell.wp-block-group { background: var(--navy2); }
.out-cell .wp-block-paragraph { margin: 0; }

/* Team card cover photo */
.tc-photo.wp-block-cover { min-height: 220px !important; height: 220px; border-radius: 0; }
.tc-photo .wp-block-cover__image-background { object-fit: cover; width: 100%; height: 100%; transition: transform 0.5s ease; }
.tcard:hover .tc-photo .wp-block-cover__image-background { transform: scale(1.05); }
.tc-photo .wp-block-cover__inner-container { padding: 0; max-width: none !important; }
.tc-body.wp-block-group { padding: 2rem 1.8rem; }
.tc-body .wp-block-heading { margin-bottom: 0.9rem; }

/* Mission break cover */
.mission-break.wp-block-cover { min-height: 500px !important; }
.mission-break .wp-block-cover__background {
  background: linear-gradient(135deg,rgba(13,27,42,0.88) 0%,rgba(13,27,42,0.5) 50%,rgba(13,27,42,0.2) 100%) !important;
  opacity: 1 !important;
}
.mission-break .wp-block-cover__inner-container {
  display: flex; align-items: center; justify-content: center;
  max-width: none !important; width: 100%; padding: 3rem;
}
.mb-inner.wp-block-group { max-width: 700px; color: var(--cream); }

/* Full-bleed cover blocks */
.ccg-fullbleed.wp-block-cover .wp-block-cover__background {
  background: linear-gradient(to right, rgba(13,27,42,0.75) 0%, rgba(13,27,42,0.2) 60%, transparent 100%) !important;
  opacity: 1 !important;
}
.ccg-fullbleed .wp-block-cover__inner-container {
  max-width: none !important;
  width: 100%;
  padding: 0 5rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}

/* Reveal animation overrides — show everything in the editor */
.editor-styles-wrapper .r,
.editor-styles-wrapper .rl,
.editor-styles-wrapper .rr,
.editor-styles-wrapper .hero-h1 .w span,
.editor-styles-wrapper .hero-sub,
.editor-styles-wrapper .hero-actions,
.editor-styles-wrapper .hero-kicker {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
}

/* Mission break cover block */
.ccg-mission.wp-block-cover .wp-block-cover__background {
  background: linear-gradient(135deg, rgba(13,27,42,0.88) 0%, rgba(13,27,42,0.5) 50%, rgba(13,27,42,0.2) 100%) !important;
  opacity: 1 !important;
}
.ccg-mission .wp-block-cover__inner-container {
  max-width: 700px !important;
  width: 100%;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* Remove Gutenberg layout constraints inside custom sections */
#about .is-layout-constrained > *,
#services .is-layout-constrained > *,
#team .is-layout-constrained > *,
#cta .is-layout-constrained > * { max-width: none !important; }

/* ── Inner page hero ─────────────────────────────────────────────────────────── */
.ccg-page-hero {
  background: var(--navy); min-height: 42vh;
  display: flex; align-items: center;
  position: relative; overflow: hidden;
  padding: 12rem 4rem 6rem;
}
.pgh-deco { position: absolute; inset: 0; pointer-events: none; }
.pgh-bar {
  position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
  background: linear-gradient(to bottom, var(--gold), var(--rose));
}
.pgh-ring {
  position: absolute; border-radius: 50%;
  border: 1px solid rgba(212,149,42,0.1);
  top: 50%; transform: translate(-50%,-50%);
}
.pgr1 { width: 62vmin; height: 62vmin; left: 88%; }
.pgr2 { width: 46vmin; height: 46vmin; left: 88%; border-color: rgba(212,149,42,0.2); }
.pgh-inner { position: relative; z-index: 2; max-width: 820px; }
.pgh-label {
  font-family: "Nunito Sans", sans-serif;
  font-size: 0.65rem; font-weight: 900; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--gold);
  display: flex; align-items: center; gap: 0.8rem; margin-bottom: 1.5rem;
}
.pgh-label::before { content: ""; width: 28px; height: 1px; background: var(--gold); }
.wp-block-post-title.pgh-title {
  font-family: "Outfit", sans-serif;
  font-size: clamp(3rem, 6vw, 7rem);
  font-weight: 900; line-height: 0.9;
  color: var(--cream); letter-spacing: -0.055em;
  text-wrap: balance; margin: 0;
}

/* ── Page content ────────────────────────────────────────────────────────────── */
.page-content-wrap { background: var(--cream); padding: 7rem 4rem; }
.page-content-wrap .wp-block-post-content { max-width: 760px; margin: 0 auto; }
.page-content-wrap h1,
.page-content-wrap h2 {
  font-family: "Outfit", sans-serif;
  font-size: clamp(1.8rem,3vw,2.8rem);
  font-weight: 900; line-height: 1.1; letter-spacing: -0.04em;
  color: var(--navy); margin: 3rem 0 1rem;
}
.page-content-wrap h3 {
  font-family: "Outfit", sans-serif; font-size: 1.35rem;
  font-weight: 800; color: var(--navy); margin: 2rem 0 0.8rem;
}
.page-content-wrap p {
  font-family: "Nunito Sans", sans-serif; font-size: 1.05rem;
  font-weight: 500; line-height: 1.9; color: rgba(13,27,42,0.72); margin-bottom: 1.2rem;
}
.page-content-wrap ul, .page-content-wrap ol {
  font-family: "Nunito Sans", sans-serif; font-size: 1.05rem;
  font-weight: 500; line-height: 1.9; color: rgba(13,27,42,0.72);
  padding-left: 1.6rem; margin-bottom: 1.2rem;
}
.page-content-wrap a { color: var(--gold); }
.page-content-wrap a:hover { color: var(--rose); }
.page-content-wrap .wp-block-heading { margin-top: 3rem; margin-bottom: 1rem; }
.page-content-wrap .wp-block-image { margin: 2.5rem 0; border-radius: 12px; overflow: hidden; }
.page-content-wrap .wp-block-image img { width: 100%; height: auto; display: block; border-radius: 12px; }

/* ── Charity page — hero ─────────────────────────────────────────────────────── */
.ch-hero {
  background: var(--navy); padding: 11rem 4rem 7rem;
  position: relative; overflow: hidden; display: flex; align-items: center;
}
.ch-deco { position: absolute; inset: 0; pointer-events: none; }
.ch-bar {
  position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
  background: linear-gradient(to bottom, var(--sage), var(--sky));
}
.ch-ring {
  position: absolute; border-radius: 50%;
  border: 1px solid rgba(107,166,138,0.15);
  top: 50%; left: 65%; transform: translate(-50%,-50%);
}
.chr1 { width: 80vmin; height: 80vmin; }
.chr2 { width: 60vmin; height: 60vmin; border-color: rgba(107,166,138,0.22); }
.chr3 { width: 42vmin; height: 42vmin; border-color: rgba(107,166,138,0.32); }
.ch-hero-inner { position: relative; z-index: 2; max-width: 700px; }
.ch-hero-label {
  font-family: "Nunito Sans", sans-serif;
  font-size: 0.65rem; font-weight: 900; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--sage);
  display: flex; align-items: center; gap: 0.8rem; margin-bottom: 1.5rem;
}
.ch-hero-label::before { content: ""; width: 28px; height: 1px; background: var(--sage); }
.wp-block-post-title.ch-hero-title {
  font-family: "Outfit", sans-serif;
  font-size: clamp(3.2rem,7vw,7.5rem);
  font-weight: 900; line-height: 0.9;
  color: var(--cream); letter-spacing: -0.055em;
  text-wrap: balance; margin: 0 0 2rem;
}
.ch-hero-sub {
  font-family: "Nunito Sans", sans-serif;
  font-weight: 500; font-size: 1.08rem; line-height: 1.8;
  color: rgba(249,246,240,0.62); max-width: 540px; margin-bottom: 3rem;
}
.ch-hero-stats {
  display: flex; align-items: center;
  background: rgba(255,255,255,0.04); border-radius: 12px;
  padding: 1.4rem 2rem; width: fit-content;
  border: 1px solid rgba(107,166,138,0.18);
}
.chs-item { display: flex; flex-direction: column; gap: 0.25rem; }
.chs-n {
  font-family: "Outfit", sans-serif; font-size: 1.8rem;
  font-weight: 900; letter-spacing: -0.04em; line-height: 1; color: var(--sage);
}
.chs-l {
  font-size: 0.6rem; font-weight: 700; letter-spacing: 0.1em;
  text-transform: uppercase; color: rgba(249,246,240,0.38);
}
.chs-div { width: 1px; height: 40px; background: rgba(249,246,240,0.1); margin: 0 2rem; }

/* ── Charity page — why ──────────────────────────────────────────────────────── */
.ch-why { padding: 10rem 4rem; background: var(--cream); }
.ch-why-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 7rem; align-items: center; }
.ch-why-label {
  font-family: "Nunito Sans", sans-serif;
  font-size: 0.65rem; font-weight: 900; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--sage);
  display: flex; align-items: center; gap: 0.8rem; margin-bottom: 1.8rem;
}
.ch-why-label::before { content: ""; width: 28px; height: 1px; background: var(--sage); }
.ch-why-h2 {
  font-family: "Outfit", sans-serif;
  font-size: clamp(2.2rem,4vw,4.2rem);
  font-weight: 900; line-height: 0.98; color: var(--navy);
  margin-bottom: 2rem; letter-spacing: -0.055em; text-wrap: balance;
}
.ch-why-h2 em {
  font-style: normal;
  background: linear-gradient(135deg, var(--sage), var(--sky));
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.ch-why-body {
  font-family: "Nunito Sans", sans-serif; font-size: 1.05rem;
  font-weight: 500; line-height: 1.9; color: rgba(13,27,42,0.68); margin-bottom: 1.3rem;
}
.ch-values { display: flex; gap: 1rem; margin-top: 2.5rem; flex-wrap: wrap; }
.chv {
  display: flex; align-items: center; gap: 0.6rem;
  background: rgba(107,166,138,0.08); border-radius: 100px; padding: 0.55rem 1.1rem;
}
.chv-icon { font-size: 0.9rem; }
.chv-text {
  font-size: 0.7rem; font-weight: 700; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--sage);
}
.ch-why-img.wp-block-cover {
  border-radius: 20px !important; overflow: hidden;
  background: linear-gradient(135deg,#1a2e40 0%,#243d52 50%,#1a3040 100%);
}
.ch-why-img .wp-block-cover__image-background { object-fit: cover; }

/* ── Charity page — clubs ────────────────────────────────────────────────────── */
.ch-clubs { padding: 10rem 4rem; background: linear-gradient(160deg,#F5EEE4 0%,#EDE4D5 100%); }
.ch-clubs-head { margin-bottom: 4rem; max-width: 620px; }
.ch-clubs-label {
  font-family: "Nunito Sans", sans-serif;
  font-size: 0.65rem; font-weight: 900; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--sage);
  display: flex; align-items: center; gap: 0.8rem; margin-bottom: 1.3rem;
}
.ch-clubs-label::before { content: ""; width: 28px; height: 1px; background: var(--sage); }
.ch-clubs-h2 {
  font-family: "Outfit", sans-serif;
  font-size: clamp(2.2rem,4.5vw,4.5rem);
  font-weight: 900; line-height: 0.98; color: var(--navy);
  letter-spacing: -0.055em; text-wrap: balance; margin-bottom: 1rem;
}
.ch-clubs-h2 em {
  font-style: normal;
  background: linear-gradient(135deg, var(--sage), var(--sky));
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.ch-clubs-sub {
  font-family: "Nunito Sans", sans-serif; font-size: 1rem;
  font-weight: 500; line-height: 1.8; color: rgba(13,27,42,0.58);
}
.clubs-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.5rem; }
.club-card {
  background: var(--cream); border-radius: 20px; overflow: hidden;
  box-shadow: 0 4px 40px rgba(13,27,42,0.06); display: flex; flex-direction: column;
  transition: transform 0.4s cubic-bezier(0.34,1.2,0.64,1), box-shadow 0.4s;
}
.club-card:hover { transform: translateY(-6px); box-shadow: 0 16px 60px rgba(13,27,42,0.12); }
.ck-stripe { height: 4px; width: 100%; }
.ck-stripe-gold { background: linear-gradient(90deg, var(--gold), var(--gold-lt)); }
.ck-stripe-rose { background: linear-gradient(90deg, var(--rose), #E8A0AD); }
.ck-stripe-sage { background: linear-gradient(90deg, var(--sage), #9BC9AE); }
.ck-stripe-sky  { background: linear-gradient(90deg, var(--sky),  #A8D1E6); }
.ck-icon { font-size: 2rem; padding: 1.8rem 1.8rem 0; display: block; }
.ck-type {
  font-size: 0.58rem; font-weight: 700; letter-spacing: 0.14em;
  text-transform: uppercase; color: rgba(13,27,42,0.32);
  padding: 0.8rem 1.8rem 0; margin: 0;
}
.ck-name {
  font-family: "Outfit", sans-serif; font-size: 1.25rem;
  font-weight: 800; letter-spacing: -0.03em; color: var(--navy);
  padding: 0.35rem 1.8rem 0; margin: 0; line-height: 1.2;
}
.ck-desc {
  font-family: "Nunito Sans", sans-serif; font-size: 0.83rem;
  font-weight: 500; line-height: 1.85; color: rgba(13,27,42,0.6);
  padding: 0.8rem 1.8rem; flex: 1; margin: 0;
}
.ck-tags { display: flex; gap: 0.4rem; flex-wrap: wrap; padding: 0 1.8rem 1.8rem; }
.ckt {
  font-size: 0.58rem; font-weight: 600; letter-spacing: 0.06em;
  padding: 0.25rem 0.75rem; border-radius: 100px;
}
.ckt-g { background: rgba(212,149,42,0.1);    color: var(--gold); }
.ckt-r { background: rgba(196,104,122,0.1);   color: var(--rose); }
.ckt-s { background: rgba(107,166,138,0.1);   color: var(--sage); }
.ckt-b { background: rgba(127,181,208,0.12);  color: var(--sky);  }

/* Block overrides for clubs grid */
.clubs-grid > .wp-block-group.club-card { display: flex; }
.club-card .wp-block-heading.ck-name { margin: 0; }
.club-card .wp-block-paragraph { margin: 0; }

/* ── Charity page — impact ───────────────────────────────────────────────────── */
.ch-impact { padding: 8rem 4rem; background: var(--navy2); color: var(--cream); }
.ch-impact-inner { max-width: 960px; margin: 0 auto; text-align: center; }
.ch-impact-label {
  font-family: "Nunito Sans", sans-serif;
  font-size: 0.65rem; font-weight: 900; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--sage);
  display: inline-flex; align-items: center; gap: 0.8rem; margin-bottom: 1.5rem;
}
.ch-impact-label::before,
.ch-impact-label::after { content: ""; width: 24px; height: 1px; background: var(--sage); }
.ch-impact-h2 {
  font-family: "Outfit", sans-serif;
  font-size: clamp(2rem,4vw,4rem);
  font-weight: 900; line-height: 1; letter-spacing: -0.055em;
  color: var(--cream); margin-bottom: 4rem; text-wrap: balance;
}
.ch-impact-h2 em {
  font-style: normal;
  background: linear-gradient(135deg, var(--sage), var(--sky));
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.ch-impact-grid {
  display: grid; grid-template-columns: repeat(4,1fr);
  gap: 1px; background: rgba(249,246,240,0.06); border-radius: 16px; overflow: hidden;
}
.chi-stat {
  display: flex; flex-direction: column; gap: 0.5rem; align-items: center;
  padding: 2.5rem 2rem; background: var(--navy2);
  transition: background 0.3s; text-align: center; cursor: default;
}
.chi-stat:hover { background: var(--navy3); }
.chi-n {
  font-family: "Outfit", sans-serif;
  font-size: clamp(2.2rem,3.5vw,3.5rem);
  font-weight: 900; letter-spacing: -0.04em; line-height: 1;
  background: linear-gradient(135deg, var(--sage), var(--sky));
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.chi-l {
  font-size: 0.68rem; font-weight: 700; letter-spacing: 0.1em;
  text-transform: uppercase; color: rgba(249,246,240,0.38);
}

/* ── Charity page — nominate ─────────────────────────────────────────────────── */
.ch-nominate { padding: 10rem 4rem; background: var(--warm); }
.ch-nom-inner { max-width: 760px; margin: 0 auto; }
.ch-nom-label {
  font-family: "Nunito Sans", sans-serif;
  font-size: 0.65rem; font-weight: 900; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--sage);
  display: flex; align-items: center; gap: 0.8rem; margin-bottom: 1.8rem;
}
.ch-nom-label::before { content: ""; width: 28px; height: 1px; background: var(--sage); }
.ch-nom-h2 {
  font-family: "Outfit", sans-serif;
  font-size: clamp(2rem,4vw,3.8rem);
  font-weight: 900; line-height: 1.05; color: var(--navy);
  margin-bottom: 1.5rem; letter-spacing: -0.055em; text-wrap: balance;
}
.ch-nom-h2 em {
  font-style: normal;
  background: linear-gradient(135deg, var(--sage), var(--sky));
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.ch-nom-body {
  font-family: "Nunito Sans", sans-serif; font-size: 1.05rem;
  font-weight: 500; line-height: 1.9; color: rgba(13,27,42,0.68); margin-bottom: 3rem;
}
.ch-nom-steps { display: flex; flex-direction: column; margin-bottom: 3.5rem; }
.cns-step {
  display: flex; gap: 2rem; align-items: flex-start;
  padding: 2rem 0; border-bottom: 1px solid rgba(13,27,42,0.08);
}
.cns-step:last-child { border-bottom: none; }
.cns-num {
  font-family: "Outfit", sans-serif; font-size: 2.5rem;
  font-weight: 900; letter-spacing: -0.06em; line-height: 1;
  color: rgba(107,166,138,0.22); flex-shrink: 0; width: 2.8rem;
}
.cns-text strong {
  font-family: "Outfit", sans-serif; font-size: 1.05rem;
  font-weight: 800; color: var(--navy); display: block;
  margin-bottom: 0.4rem; letter-spacing: -0.02em;
}
.cns-text p { font-family: "Nunito Sans", sans-serif; font-size: 0.88rem; font-weight: 500; line-height: 1.75; color: rgba(13,27,42,0.55); margin: 0; }

/* ── Responsive — inner pages & charity ──────────────────────────────────────── */
@media (max-width: 1024px) {
  .ccg-page-hero  { padding: 10rem 3rem 5rem; }
  .page-content-wrap { padding: 6rem 3rem; }
  .ch-hero        { padding: 9rem 3rem 6rem; }
  .ch-why         { padding: 7rem 3rem; }
  .ch-why-grid    { grid-template-columns: 1fr; gap: 4rem; }
  .ch-clubs       { padding: 7rem 3rem; }
  .clubs-grid     { grid-template-columns: repeat(2,1fr); }
  .ch-impact      { padding: 6rem 3rem; }
  .ch-nominate    { padding: 7rem 3rem; }
}

@media (max-width: 768px) {
  .ccg-page-hero  { padding: 9rem 1.8rem 4rem; min-height: 36vh; }
  .page-content-wrap { padding: 4rem 1.5rem; }
  .ch-hero        { padding: 7rem 1.8rem 5rem; }
  .ch-ring        { left: 50%; }
  .ch-hero-stats  { flex-wrap: wrap; gap: 1rem; padding: 1.2rem 1.4rem; }
  .chs-div        { display: none; }
  .ch-why         { padding: 5rem 1.5rem; }
  .ch-clubs       { padding: 5rem 1.5rem; }
  .clubs-grid     { grid-template-columns: 1fr; }
  .ch-impact      { padding: 5rem 1.5rem; }
  .ch-impact-grid { grid-template-columns: repeat(2,1fr); }
  .ch-nominate    { padding: 5rem 1.5rem; }
  .cns-step       { gap: 1.2rem; }
}

@media (max-width: 480px) {
  .ch-impact-grid  { grid-template-columns: 1fr 1fr; }
  .ch-hero-stats   { width: 100%; }
  .ch-nom-inner    { max-width: 100%; }
}

/* ── Shared inner-page patterns ──────────────────────────────────────────────── */
.pg-label {
  font-family: "Nunito Sans", sans-serif;
  font-size: 0.65rem; font-weight: 900; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--gold);
  display: flex; align-items: center; gap: 0.8rem; margin-bottom: 1.5rem;
}
.pg-label::before { content: ""; width: 28px; height: 1px; background: var(--gold); }
.pg-label--center { justify-content: center; }
.pg-label--center::before { display: none; }
.pg-label--cream { color: rgba(249,246,240,0.7); }
.pg-label--cream::before { background: rgba(249,246,240,0.4); }
.pg-h2 {
  font-family: "Outfit", sans-serif;
  font-size: clamp(2.2rem,4vw,4.2rem);
  font-weight: 900; line-height: 0.98; letter-spacing: -0.055em;
  text-wrap: balance; color: var(--navy); margin-bottom: 2rem;
}
.pg-h2 em {
  font-style: normal;
  background: linear-gradient(135deg, var(--gold), var(--rose));
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.pg-h2--center { text-align: center; }
.pg-h2--cream  { color: var(--cream); }
.pg-h2--cream em {
  background: linear-gradient(135deg, var(--gold-lt), var(--gold));
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.pg-body {
  font-family: "Nunito Sans", sans-serif; font-size: 1.05rem;
  font-weight: 500; line-height: 1.9; color: rgba(13,27,42,0.68); margin-bottom: 1.3rem;
}
.pg-body--muted { color: rgba(249,246,240,0.55); }

/* ── About page ──────────────────────────────────────────────────────────────── */
/* Story section */
.pg-story { padding: 10rem 4rem; background: var(--cream); }
.pg-story-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 7rem; align-items: center;
}
.pg-story-img.wp-block-cover {
  border-radius: 20px !important; overflow: hidden; min-height: 500px !important;
  background: linear-gradient(135deg,#1a2e40 0%,#243d52 50%,#1a3040 100%);
}
.pg-story-img .wp-block-cover__image-background { object-fit: cover; }
.pg-story-img .wp-block-cover__inner-container  { display: none; }

/* Values section */
.pg-values {
  padding: 10rem 4rem;
  background: linear-gradient(160deg,#F5EEE4 0%,#EDE4D5 100%);
}
.pg-values-head { text-align: center; margin-bottom: 4rem; }
.pg-vals-grid {
  display: grid; grid-template-columns: repeat(4,1fr); gap: 1.5rem;
}
.pg-val {
  background: var(--cream); border-radius: 20px; padding: 2.5rem 2rem;
  box-shadow: 0 4px 40px rgba(13,27,42,0.06);
  transition: transform 0.4s cubic-bezier(0.34,1.2,0.64,1), box-shadow 0.4s;
}
.pg-val:hover { transform: translateY(-6px); box-shadow: 0 16px 50px rgba(13,27,42,0.1); }
.pg-val-icon { font-size: 2rem; margin-bottom: 1.4rem; display: block; }
.pg-val-title {
  font-family: "Outfit", sans-serif; font-size: 1.1rem;
  font-weight: 800; letter-spacing: -0.03em; color: var(--navy);
  margin: 0 0 0.8rem; line-height: 1.2;
}
.pg-val-body {
  font-family: "Nunito Sans", sans-serif; font-size: 0.85rem;
  font-weight: 500; line-height: 1.85; color: rgba(13,27,42,0.6); margin: 0;
}
.pg-vals-grid > .wp-block-group.pg-val { display: flex; flex-direction: column; }
.pg-val .wp-block-heading { margin: 0 0 0.8rem; }
.pg-val .wp-block-paragraph { margin: 0; }

/* ── Services page ───────────────────────────────────────────────────────────── */
/* Intro section */
.pg-svc-intro { padding: 10rem 4rem; background: var(--cream); }
.pg-svc-intro-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 7rem; align-items: start;
}
.pg-highlight {
  display: flex; flex-direction: column; gap: 0;
  border: 1px solid rgba(13,27,42,0.08); border-radius: 20px; overflow: hidden;
  background: white; box-shadow: 0 4px 30px rgba(13,27,42,0.05);
}
.pgh-item {
  display: flex; gap: 1.4rem; align-items: flex-start;
  padding: 1.8rem 2rem; border-bottom: 1px solid rgba(13,27,42,0.06);
}
.pgh-item:last-child { border-bottom: none; }
.pgh-icon {
  font-size: 1.3rem; flex-shrink: 0; width: 40px; height: 40px;
  background: rgba(212,149,42,0.08); border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
}
.pgh-text strong {
  font-family: "Outfit", sans-serif; font-size: 0.95rem; font-weight: 800;
  color: var(--navy); display: block; margin-bottom: 0.3rem; letter-spacing: -0.02em;
}
.pgh-text p {
  font-family: "Nunito Sans", sans-serif; font-size: 0.82rem;
  font-weight: 500; line-height: 1.7; color: rgba(13,27,42,0.55); margin: 0;
}

/* Process section */
.pg-process { padding: 10rem 4rem; background: var(--navy); color: var(--cream); }
.pg-process-inner { max-width: 820px; margin: 0 auto; }
.pg-process-head { margin-bottom: 4rem; }
.pg-steps { display: flex; flex-direction: column; }
.pg-step {
  display: flex; gap: 2.5rem; align-items: flex-start;
  padding: 2.5rem 0; border-bottom: 1px solid rgba(249,246,240,0.07);
  transition: background 0.3s;
}
.pg-step:last-child { border-bottom: none; }
.pg-step-num {
  font-family: "Outfit", sans-serif; font-size: 3rem;
  font-weight: 900; letter-spacing: -0.06em; line-height: 1;
  color: rgba(212,149,42,0.2); flex-shrink: 0; width: 3.5rem;
}
.pg-step-content strong {
  font-family: "Outfit", sans-serif; font-size: 1.1rem;
  font-weight: 800; color: var(--cream); display: block;
  margin-bottom: 0.5rem; letter-spacing: -0.02em;
}
.pg-step-content p {
  font-family: "Nunito Sans", sans-serif; font-size: 0.92rem;
  font-weight: 500; line-height: 1.8; color: rgba(249,246,240,0.55); margin: 0;
}

/* ── Contact page ────────────────────────────────────────────────────────────── */
.pg-contact { padding: 8rem 4rem; background: var(--cream); }
.pg-contact-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 7rem; align-items: start;
}
.pg-contact-info { display: flex; flex-direction: column; gap: 0; margin: 2.5rem 0; }
.pg-ci {
  display: flex; gap: 1.2rem; align-items: flex-start;
  padding: 1.4rem 0; border-bottom: 1px solid rgba(13,27,42,0.07);
}
.pg-ci:last-child { border-bottom: none; }
.pg-ci-icon {
  width: 38px; height: 38px; border-radius: 8px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 0.95rem; background: rgba(212,149,42,0.08);
}
.pg-ci-text { display: flex; flex-direction: column; gap: 0.2rem; }
.pg-ci-label {
  font-size: 0.58rem; font-weight: 700; letter-spacing: 0.14em;
  text-transform: uppercase; color: rgba(13,27,42,0.32);
}
.pg-ci-value {
  font-family: "Outfit", sans-serif; font-size: 0.95rem;
  font-weight: 700; color: var(--navy); text-decoration: none;
  letter-spacing: -0.02em;
}
a.pg-ci-value:hover { color: var(--gold); }
.pg-emergency {
  display: flex; gap: 1.2rem; align-items: flex-start;
  background: rgba(196,104,122,0.06); border: 1px solid rgba(196,104,122,0.2);
  border-radius: 14px; padding: 1.4rem 1.6rem; margin-top: 2rem;
}
.pg-em-dot {
  width: 10px; height: 10px; border-radius: 50%;
  background: var(--rose); flex-shrink: 0; margin-top: 4px;
  box-shadow: 0 0 0 4px rgba(196,104,122,0.2);
  animation: emPulse 2s ease-in-out infinite;
}
@keyframes emPulse {
  0%,100% { box-shadow: 0 0 0 4px rgba(196,104,122,0.2); }
  50%      { box-shadow: 0 0 0 8px rgba(196,104,122,0.08); }
}
.pg-em-text strong {
  font-family: "Outfit", sans-serif; font-size: 0.92rem;
  font-weight: 800; color: var(--rose); display: block; margin-bottom: 0.35rem;
}
.pg-em-text p {
  font-family: "Nunito Sans", sans-serif; font-size: 0.85rem;
  font-weight: 500; line-height: 1.65; color: rgba(13,27,42,0.62); margin: 0;
}
.pg-em-text a { color: var(--rose); font-weight: 700; }
/* Ensure form fills its container */
.pg-contact-form .sbf-wrap { max-width: none; margin: 0; }
/* Regulated-by strip */
.pg-regulated { padding: 5rem 4rem; background: var(--navy2); }
.pg-reg-grid {
  display: grid; grid-template-columns: repeat(3,1fr); gap: 1px;
  background: rgba(249,246,240,0.06); border-radius: 16px; overflow: hidden;
  max-width: 960px; margin: 0 auto;
}
.pg-reg-item {
  display: flex; gap: 1.2rem; align-items: flex-start;
  padding: 2.5rem 2rem; background: var(--navy2); transition: background 0.3s;
}
.pg-reg-item:hover { background: var(--navy3); }
.pg-reg-icon { font-size: 1.4rem; flex-shrink: 0; }
.pg-reg-text strong {
  font-family: "Outfit", sans-serif; font-size: 0.95rem;
  font-weight: 800; color: var(--cream); display: block;
  margin-bottom: 0.4rem; letter-spacing: -0.02em;
}
.pg-reg-text p {
  font-family: "Nunito Sans", sans-serif; font-size: 0.82rem;
  font-weight: 500; line-height: 1.7; color: rgba(249,246,240,0.45); margin: 0;
}
.pg-reg-text a { color: var(--gold); }

/* ── Homes page ──────────────────────────────────────────────────────────────── */
/* Intro section */
.pg-homes-intro { padding: 10rem 4rem; background: var(--cream); }
.pg-homes-intro-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 7rem; align-items: center;
}
.pg-homes-cover.wp-block-cover {
  border-radius: 20px !important; overflow: hidden; min-height: 460px !important;
  background: linear-gradient(135deg,#1a2e40 0%,#243d52 50%,#1a3040 100%);
}
.pg-homes-cover .wp-block-cover__image-background { object-fit: cover; }
.pg-homes-cover .wp-block-cover__inner-container  { display: none; }

/* Homes grid section */
.pg-homes-grid-section {
  padding: 10rem 4rem;
  background: linear-gradient(160deg,#F5EEE4 0%,#EDE4D5 100%);
}
.pg-homes-head { margin-bottom: 4rem; }
.homes-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.5rem; }
.home-card {
  background: var(--cream); border-radius: 20px; overflow: hidden;
  box-shadow: 0 4px 40px rgba(13,27,42,0.07); display: flex; flex-direction: column;
  transition: transform 0.4s cubic-bezier(0.34,1.2,0.64,1), box-shadow 0.4s;
}
.home-card:hover { transform: translateY(-6px); box-shadow: 0 16px 60px rgba(13,27,42,0.13); }
.hc-photo.wp-block-cover {
  min-height: 240px !important; height: 240px;
  background: linear-gradient(135deg,#1a2e40 0%,#243d52 50%,#1a3040 100%);
  position: relative;
}
.hc-photo .wp-block-cover__image-background { object-fit: cover; }
.hc-photo .wp-block-cover__inner-container {
  position: absolute; inset: 0; padding: 1.2rem;
  display: flex; align-items: flex-start; max-width: none !important;
}
.hc-badge {
  font-size: 0.6rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
  padding: 0.35rem 0.9rem; border-radius: 100px;
}
.hcb-gold { background: rgba(212,149,42,0.85); color: var(--navy); }
.hcb-rose { background: rgba(196,104,122,0.85); color: white; }
.hcb-sage { background: rgba(107,166,138,0.85); color: white; }
.hc-body { padding: 2rem 1.8rem; flex: 1; display: flex; flex-direction: column; gap: 0; }
.hc-location {
  font-size: 0.72rem; font-weight: 700; letter-spacing: 0.06em;
  color: rgba(13,27,42,0.4); margin-bottom: 0.5rem;
}
.hc-name {
  font-family: "Outfit", sans-serif; font-size: 1.4rem;
  font-weight: 900; letter-spacing: -0.04em; color: var(--navy);
  margin: 0 0 0.9rem; line-height: 1.1;
}
.hc-desc {
  font-family: "Nunito Sans", sans-serif; font-size: 0.85rem;
  font-weight: 500; line-height: 1.8; color: rgba(13,27,42,0.6);
  margin: 0 0 1.3rem; flex: 1;
}
.hc-features {
  list-style: none; padding: 0; margin: 0 0 1.3rem;
  display: flex; flex-direction: column; gap: 0.4rem;
}
.hc-features li {
  font-family: "Nunito Sans", sans-serif; font-size: 0.82rem;
  font-weight: 600; color: rgba(13,27,42,0.65);
}
.hc-meta {
  display: flex; gap: 0.6rem; flex-wrap: wrap; margin-bottom: 1.5rem;
}
.hc-cap, .hc-ages {
  font-size: 0.6rem; font-weight: 700; letter-spacing: 0.08em;
  text-transform: uppercase; padding: 0.3rem 0.8rem; border-radius: 100px;
}
.hc-cap  { background: rgba(212,149,42,0.1); color: var(--gold); }
.hc-ages { background: rgba(13,27,42,0.06);  color: rgba(13,27,42,0.5); }

/* Block overrides — home cards */
.homes-grid > .wp-block-group.home-card { display: flex; }
.home-card .wp-block-heading.hc-name    { margin: 0 0 0.9rem; }
.home-card .wp-block-paragraph.hc-desc  { margin: 0 0 1.3rem; }
.home-card .wp-block-buttons            { margin-top: auto; }

/* "What makes our homes different" section */
.pg-home-diff { padding: 10rem 4rem; background: var(--navy); color: var(--cream); }
.pg-home-diff-inner { max-width: 1000px; }
.pg-diff-grid {
  display: grid; grid-template-columns: repeat(3,1fr); gap: 1px;
  background: rgba(249,246,240,0.06); border-radius: 16px; overflow: hidden;
  margin-top: 3rem;
}
.pg-diff-item {
  padding: 2.5rem 2rem; background: var(--navy); transition: background 0.3s;
  display: flex; flex-direction: column; gap: 0.5rem;
}
.pg-diff-item:hover { background: var(--navy3); }
.pg-diff-icon { font-size: 1.5rem; margin-bottom: 0.3rem; }
.pg-diff-item strong {
  font-family: "Outfit", sans-serif; font-size: 1rem;
  font-weight: 800; color: var(--cream); letter-spacing: -0.02em;
}
.pg-diff-item p {
  font-family: "Nunito Sans", sans-serif; font-size: 0.83rem;
  font-weight: 500; line-height: 1.75; color: rgba(249,246,240,0.48); margin: 0;
}

/* ── Responsive — inner page templates ───────────────────────────────────────── */
@media (max-width: 1024px) {
  /* About */
  .pg-story         { padding: 7rem 3rem; }
  .pg-story-grid    { grid-template-columns: 1fr; gap: 4rem; }
  .pg-values        { padding: 7rem 3rem; }
  .pg-vals-grid     { grid-template-columns: repeat(2,1fr); }
  /* Services */
  .pg-svc-intro     { padding: 7rem 3rem; }
  .pg-svc-intro-grid { grid-template-columns: 1fr; gap: 4rem; }
  .pg-process       { padding: 7rem 3rem; }
  /* Contact */
  .pg-contact       { padding: 6rem 3rem; }
  .pg-contact-grid  { grid-template-columns: 1fr; gap: 4rem; }
  .pg-regulated     { padding: 4rem 3rem; }
  /* Homes */
  .pg-homes-intro   { padding: 7rem 3rem; }
  .pg-homes-intro-grid { grid-template-columns: 1fr; gap: 4rem; }
  .pg-homes-grid-section { padding: 7rem 3rem; }
  .homes-grid       { grid-template-columns: repeat(2,1fr); }
  .pg-home-diff     { padding: 7rem 3rem; }
  .pg-diff-grid     { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 768px) {
  /* About */
  .pg-story         { padding: 5rem 1.5rem; }
  .pg-values        { padding: 5rem 1.5rem; }
  .pg-vals-grid     { grid-template-columns: 1fr; }
  /* Services */
  .pg-svc-intro     { padding: 5rem 1.5rem; }
  .pg-process       { padding: 5rem 1.5rem; }
  .pg-step          { gap: 1.5rem; padding: 2rem 0; }
  .pg-step-num      { font-size: 2.2rem; width: 2.5rem; }
  /* Contact */
  .pg-contact       { padding: 5rem 1.5rem; }
  .pg-regulated     { padding: 3rem 1.5rem; }
  .pg-reg-grid      { grid-template-columns: 1fr; }
  /* Homes */
  .pg-homes-intro   { padding: 5rem 1.5rem; }
  .pg-homes-grid-section { padding: 5rem 1.5rem; }
  .homes-grid       { grid-template-columns: 1fr; }
  .pg-home-diff     { padding: 5rem 1.5rem; }
  .pg-diff-grid     { grid-template-columns: 1fr; }
  /* Large cover images — reduce height on single-column mobile */
  .pg-story-img.wp-block-cover  { min-height: 280px !important; }
  .pg-homes-cover.wp-block-cover { min-height: 280px !important; }
  .ch-why-img.wp-block-cover    { min-height: 280px !important; }
}

@media (max-width: 480px) {
  .pg-vals-grid     { grid-template-columns: 1fr; }
  .pg-svc-intro-grid { gap: 2.5rem; }
}

/* ── Default cover images ────────────────────────────────────────────────────
   Applied as CSS background-image so they show when no media-library image
   has been set. When a real image is uploaded via the Site/Block Editor,
   WordPress adds an <img class="wp-block-cover__image-background"> element
   that sits above this background and takes over automatically.
   Paths are relative from assets/css/ → assets/images/.
   ─────────────────────────────────────────────────────────────────────────── */

/* Team card photos */
.tc-photo.wp-block-cover {
  background-image: url('../images/cover-portrait.svg');
  background-size: cover;
  background-position: center top;
}

/* About page — story large image */
.pg-story-img.wp-block-cover {
  background-image: url('../images/cover-story.svg');
  background-size: cover;
  background-position: center;
}

/* Homes page — intro large image */
.pg-homes-cover.wp-block-cover {
  background-image: url('../images/cover-home.svg');
  background-size: cover;
  background-position: center;
}

/* Homes page — individual home cards */
.hc-photo.wp-block-cover {
  background-image: url('../images/cover-home.svg');
  background-size: cover;
  background-position: center;
}

/* Charity page — why we give back large image */
.ch-why-img.wp-block-cover {
  background-image: url('../images/cover-community.svg');
  background-size: cover;
  background-position: center;
}

/* CTA section image */
.cta-img.wp-block-cover {
  background-image: url('../images/cover-story.svg');
  background-size: cover;
  background-position: center;
}

/* Fullbleed break */
.ccg-fullbleed.wp-block-cover {
  background-image: url('../images/cover-dark.svg');
  background-size: cover;
  background-position: center;
}

/* Mission break (has dimRatio 60 so image shows dark) */
.mission-break.wp-block-cover {
  background-image: url('../images/cover-dark.svg');
  background-size: cover;
  background-position: center;
}

/* Photo mosaic — 5 panels, each a different tonal variant */
.pm-1.wp-block-cover { background-image: url('../images/cover-mosaic-1.svg'); background-size: cover; background-position: center; }
.pm-item.wp-block-cover:nth-child(2) { background-image: url('../images/cover-mosaic-2.svg'); background-size: cover; background-position: center; }
.pm-item.wp-block-cover:nth-child(3) { background-image: url('../images/cover-mosaic-3.svg'); background-size: cover; background-position: center; }
.pm-item.wp-block-cover:nth-child(4) { background-image: url('../images/cover-mosaic-4.svg'); background-size: cover; background-position: center; }
.pm-item.wp-block-cover:nth-child(5) { background-image: url('../images/cover-mosaic-5.svg'); background-size: cover; background-position: center; }