/* ==========================================================================
   GCORP — Component & layout system
   Design tokens (colour, type scale, spacing) are defined in theme.json and
   exposed as CSS custom properties (var(--wp--preset--*)). This file styles
   the reusable components and the editorial rhythm of each page.
   Sections:
     0. Root aliases & base
     1. Accessibility (skip link, focus)
     2. Layout primitives (section, container, rhythm)
     3. Eyebrow, headings, editorial type
     4. Buttons & links
     5. Header
     6. Footer
     7. Hero (art-directed)
     8. Two divisions
     9. Editorial two-column (light / dark)
    10. Audience grid
    11. Three pillars
    12. Process steps
    13. GCORP Standard
    14. Credibility strip
    15. Leadership
    16. Client Portfolio carousel
    17. Private enquiry panel
    18. Enquiry form (conditional)
    19. Fine rules & dividers
    20. Motion & reduced-motion
    21. Responsive refinements
   ========================================================================== */

/* 0. Root aliases & base ---------------------------------------------------- */
:root {
	--gcorp-onyx: var(--wp--preset--color--onyx);
	--gcorp-slate: var(--wp--preset--color--deep-slate);
	--gcorp-forest: var(--wp--preset--color--forest);
	--gcorp-limestone: var(--wp--preset--color--limestone);
	--gcorp-ivory: var(--wp--preset--color--ivory);
	--gcorp-taupe: var(--wp--preset--color--taupe);
	--gcorp-gold: var(--wp--preset--color--gold);
	/* Darker gold for small gold text on light grounds (labels/titles), so it
	   meets WCAG AA (~5:1 on Ivory). The lighter --gcorp-gold stays for gold on
	   dark backgrounds, where it already passes. */
	--gcorp-gold-ink: #816232;
	/* Darker taupe for long-form supporting copy on light backgrounds (AA).
	   Secondary labels, eyebrows and metadata keep the lighter taupe-text. */
	--gcorp-taupe-ink: #5D574C;
	/* Lighter taupe for supporting copy on dark backgrounds (e.g. carousel
	   suburbs): clearly visible, AA on Onyx/Deep Slate. */
	--gcorp-taupe-2: #9C917D;
	--gcorp-rule: rgba(139, 129, 112, 0.32);
	--gcorp-rule-light: rgba(13, 13, 12, 0.14);
	--gcorp-header-h: 88px;
	--gcorp-measure: 62ch;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
	margin: 0;
	background: var(--gcorp-ivory);
	color: var(--gcorp-onyx);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

img { max-width: 100%; height: auto; }

/* 1. Accessibility ---------------------------------------------------------- */
.gcorp-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 1000;
	padding: 0.75rem 1.25rem;
	background: var(--gcorp-onyx);
	color: var(--gcorp-ivory);
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.875rem;
}
.gcorp-skip-link:focus {
	left: 1rem;
	top: 1rem;
}

:where(a, button, input, textarea, select, [tabindex]):focus-visible {
	outline: 2px solid var(--gcorp-gold);
	outline-offset: 3px;
}

/* Fixed header sits over dark heroes; interior pages without a hero need the
   header's height as top clearance. */
#gcorp-main { min-height: 60vh; }
#gcorp-main:not(:has(.gcorp-hero:first-child)) { padding-top: var(--gcorp-header-h); }

/* 2. Layout primitives ------------------------------------------------------ */
.gcorp-section {
	/* Full-bleed colour bands own their vertical rhythm through padding. Zero any
	   inter-block margin (e.g. the editor's block-gap between adjacent sections)
	   so one section's colour meets the next directly — no ivory body background
	   showing through as a light strip between a light band and the Onyx below. */
	margin-block: 0;
	padding-block: var(--wp--preset--spacing--70);
	padding-inline: var(--wp--preset--spacing--40);
}
.gcorp-container {
	max-width: 1200px;
	margin-inline: auto;
}
.gcorp-container--narrow { max-width: 820px; }

.gcorp-bg-ivory { background: var(--gcorp-ivory); color: var(--gcorp-onyx); }
.gcorp-bg-limestone { background: var(--gcorp-limestone); color: var(--gcorp-onyx); }
.gcorp-bg-onyx { background: var(--gcorp-onyx); color: var(--gcorp-ivory); }
.gcorp-bg-slate { background: var(--gcorp-slate); color: var(--gcorp-ivory); }
.gcorp-bg-forest { background: var(--gcorp-forest); color: var(--gcorp-ivory); }

/* Dark sections: soften body text to limestone, keep headings warm white */
.gcorp-bg-onyx :where(p, li),
.gcorp-bg-slate :where(p, li),
.gcorp-bg-forest :where(p, li) { color: var(--gcorp-limestone); }
.gcorp-bg-onyx :where(h1, h2, h3, h4),
.gcorp-bg-slate :where(h1, h2, h3, h4),
.gcorp-bg-forest :where(h1, h2, h3, h4) { color: var(--wp--preset--color--white-warm); }

/* 3. Eyebrow, headings, editorial type ------------------------------------- */
.gcorp-eyebrow {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--gcorp-gold);
	margin: 0 0 1.25rem;
	display: block;
}
.gcorp-bg-ivory .gcorp-eyebrow { color: var(--wp--preset--color--taupe-text); }
/* Limestone is lighter, so the eyebrow needs the darker taupe to hold AA. */
.gcorp-bg-limestone .gcorp-eyebrow { color: var(--gcorp-taupe-ink); }

.gcorp-display {
	font-family: var(--wp--preset--font-family--serif);
	font-weight: 500;
	line-height: 1.06;
	letter-spacing: 0;
	margin: 0;
}
.gcorp-lead {
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.55;
	max-width: var(--gcorp-measure);
}

/* Considered-relationship statement (Private Enquiry closing): a touch more
   air for editorial calm. Heading breathes via slightly looser tracking and
   line-height; body copy gets a more relaxed line-height. Font sizes,
   paragraph spacing, width and the eyebrow are unchanged. */
.gcorp-statement .gcorp-display { line-height: 1.18; letter-spacing: 0.015em; }
.gcorp-statement p:not(.gcorp-eyebrow) { line-height: 1.75; }
.gcorp-secondary { color: var(--wp--preset--color--taupe-text); }
/* On dark/forest grounds the darker taupe fails contrast — use limestone. */
.gcorp-bg-onyx .gcorp-secondary,
.gcorp-bg-slate .gcorp-secondary,
.gcorp-bg-forest .gcorp-secondary { color: var(--gcorp-limestone); }

/* Serif elements acting as titles/labels use Medium (Cormorant 400 reads too
   light at these sizes); editorial statements and leads stay Regular. */
.gcorp-brand,
.gcorp-footer__brand,
.gcorp-division__lockup,
.gcorp-card__suburb,
.gcorp-pathway__label,
.gcorp-mobile-nav__list a { font-weight: 500; }

/* Logo lock-ups (approved artwork, with typographic fallback) --------------- */
.gcorp-logo { display: block; width: auto; }
.gcorp-logo-link { display: inline-flex; align-items: center; text-decoration: none; color: currentColor; }
.gcorp-logo--text {
	font-family: var(--wp--preset--font-family--serif);
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: currentColor;
}
.gcorp-brand .gcorp-logo--text { font-size: 1.35rem; }
.gcorp-hero__lockup { margin-bottom: 1.5rem; }
.gcorp-hero__lockup img { height: 30px; width: auto; }
.gcorp-division__lockup img { height: 40px; width: auto; display: block; }
.gcorp-pathway__label img { height: 24px; width: auto; display: block; }

/* 4. Buttons & links -------------------------------------------------------- */
.gcorp-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.95rem;
	font-weight: 500;
	letter-spacing: 0.03em;
	line-height: 1;
	padding: 1.05rem 2rem;
	border: 1px solid transparent;
	border-radius: 0;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
	min-height: 48px;
}
/* Primary — muted gold fill, onyx text */
.gcorp-btn--primary {
	background: var(--gcorp-gold);
	color: var(--gcorp-onyx);
	border-color: var(--gcorp-gold);
}
.gcorp-btn--primary:hover,
.gcorp-btn--primary:focus-visible { background: #b7975d; border-color: #b7975d; }

/* Primary on light — onyx fill, warm light text */
.gcorp-btn--dark {
	background: var(--gcorp-onyx);
	color: var(--gcorp-ivory);
	border-color: var(--gcorp-onyx);
}
.gcorp-btn--dark:hover,
.gcorp-btn--dark:focus-visible { background: #23231f; }

/* Forest — Advocacy-specific */
.gcorp-btn--forest {
	background: var(--gcorp-forest);
	color: var(--gcorp-ivory);
	border-color: var(--gcorp-forest);
}
.gcorp-btn--forest:hover,
.gcorp-btn--forest:focus-visible { background: #1b3229; }

/* Secondary — transparent, fine border */
.gcorp-btn--outline {
	background: transparent;
	color: currentColor;
	border-color: var(--gcorp-taupe);
}
.gcorp-btn--outline:hover,
.gcorp-btn--outline:focus-visible { border-color: var(--gcorp-gold); color: var(--gcorp-gold); }
.gcorp-bg-onyx .gcorp-btn--outline,
.gcorp-bg-slate .gcorp-btn--outline,
.gcorp-bg-forest .gcorp-btn--outline { color: var(--gcorp-ivory); border-color: rgba(216, 210, 198, 0.4); }
.gcorp-bg-onyx .gcorp-btn--outline:hover,
.gcorp-bg-slate .gcorp-btn--outline:hover,
.gcorp-bg-forest .gcorp-btn--outline:hover { color: var(--gcorp-gold); border-color: var(--gcorp-gold); }

/* Text link with restrained arrow */
.gcorp-textlink {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.875rem;
	letter-spacing: 0.03em;
	color: currentColor;
	text-decoration: none;
	border-bottom: 1px solid var(--gcorp-rule);
	padding-bottom: 0.25rem;
	transition: border-color 0.2s ease, color 0.2s ease;
}
.gcorp-textlink .gcorp-arrow { transition: transform 0.2s ease; }
.gcorp-textlink:hover { color: var(--gcorp-gold); border-color: var(--gcorp-gold); }
.gcorp-textlink:hover .gcorp-arrow { transform: translateX(4px); }

.gcorp-btn-row {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin-top: 2.25rem;
}

/* 5. Header ----------------------------------------------------------------- */
.gcorp-header {
	position: fixed;
	inset: 0 0 auto 0;
	z-index: 100;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	height: var(--gcorp-header-h);
	padding-inline: clamp(1.25rem, 4vw, 3rem);
	transition: background-color 0.3s ease, height 0.3s ease, border-color 0.3s ease;
	border-bottom: 1px solid transparent;
}
/* Transparent over dark hero by default */
.gcorp-header[data-over="dark"] { color: var(--gcorp-ivory); }
/* Soft top scrim so navigation stays readable even where the hero is bright
   (e.g. the lit wall on the right). Fades to nothing; removed once scrolled. */
.gcorp-header[data-over="dark"]::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 180px;
	z-index: -1;
	pointer-events: none;
	background: linear-gradient(180deg, rgba(9, 9, 8, 0.62) 0%, rgba(9, 9, 8, 0.28) 45%, rgba(9, 9, 8, 0) 100%);
}
.gcorp-header.is-scrolled::before { display: none; }
.gcorp-header[data-over="light"] {
	color: var(--gcorp-onyx);
	background: rgba(244, 241, 234, 0.9);
	backdrop-filter: saturate(120%) blur(8px);
	border-bottom-color: var(--gcorp-rule-light);
}
/* Solid on scroll */
.gcorp-header.is-scrolled {
	background: rgba(13, 13, 12, 0.94);
	backdrop-filter: saturate(120%) blur(10px);
	color: var(--gcorp-ivory);
	height: 72px;
	border-bottom-color: rgba(139, 129, 112, 0.22);
}
.gcorp-header.is-scrolled[data-over="light"] {
	background: rgba(244, 241, 234, 0.96);
	color: var(--gcorp-onyx);
}

.gcorp-brand {
	display: inline-flex;
	align-items: center;
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.35rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-decoration: none;
	color: currentColor;
}
.gcorp-brand img { height: 34px; width: auto; display: block; }

.gcorp-nav { display: flex; align-items: center; gap: clamp(1.25rem, 2.5vw, 2.5rem); }
.gcorp-nav__list {
	display: flex;
	align-items: center;
	gap: clamp(1.25rem, 2.4vw, 2.4rem);
	list-style: none;
	margin: 0;
	padding: 0;
}
.gcorp-nav__link {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.95rem;
	letter-spacing: 0.02em;
	color: currentColor;
	text-decoration: none;
	padding-block: 0.5rem;
	position: relative;
}
.gcorp-nav__link[aria-current="page"]::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: -2px;
	height: 1px;
	background: var(--gcorp-gold);
}
.gcorp-nav__link:hover { color: var(--gcorp-gold); }

.gcorp-menu-toggle {
	display: none;
	align-items: center;
	justify-content: center;
	width: 48px; height: 48px;
	background: transparent;
	border: 1px solid currentColor;
	color: inherit;
	cursor: pointer;
}
.gcorp-menu-toggle span,
.gcorp-menu-toggle span::before,
.gcorp-menu-toggle span::after {
	content: "";
	display: block;
	width: 20px; height: 1.5px;
	background: currentColor;
	transition: transform 0.25s ease, opacity 0.2s ease;
}
.gcorp-menu-toggle span::before { transform: translateY(-6px); }
.gcorp-menu-toggle span::after { transform: translateY(4.5px); }

/* Mobile drawer */
.gcorp-mobile-nav {
	position: fixed;
	inset: 0;
	z-index: 200;
	background: var(--gcorp-onyx);
	color: var(--gcorp-ivory);
	display: flex;
	flex-direction: column;
	padding: clamp(1.5rem, 6vw, 3rem);
	transform: translateX(100%);
	transition: transform 0.32s ease;
	visibility: hidden;
}
.gcorp-mobile-nav.is-open { transform: translateX(0); visibility: visible; }
.gcorp-mobile-nav__head { display: flex; justify-content: space-between; align-items: center; }
.gcorp-mobile-nav__close {
	width: 48px; height: 48px;
	background: transparent; border: 1px solid rgba(216,210,198,0.4);
	color: inherit; font-size: 1.5rem; cursor: pointer;
}
.gcorp-mobile-nav__list {
	list-style: none; margin: auto 0; padding: 0;
	display: flex; flex-direction: column; gap: 1.5rem;
}
.gcorp-mobile-nav__list a {
	font-family: var(--wp--preset--font-family--serif);
	font-size: clamp(1.75rem, 7vw, 2.5rem);
	color: var(--gcorp-ivory);
	text-decoration: none;
}
.gcorp-mobile-nav__list a[aria-current="page"] { color: var(--gcorp-gold); }
.gcorp-mobile-nav .gcorp-btn { margin-top: 2rem; justify-content: center; }

body.gcorp-menu-open { overflow: hidden; }

/* 6. Footer ----------------------------------------------------------------- */
.gcorp-footer {
	background: var(--gcorp-onyx);
	color: var(--gcorp-limestone);
	padding-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40);
	padding-inline: clamp(1.25rem, 4vw, 3rem);
}
.gcorp-footer__top {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr;
	gap: clamp(2rem, 5vw, 4rem);
	max-width: 1200px;
	margin-inline: auto;
	padding-bottom: var(--wp--preset--spacing--50);
	border-bottom: 1px solid rgba(139,129,112,0.22);
}
.gcorp-footer__brand {
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.5rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--gcorp-ivory);
}
.gcorp-footer__col h3 {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.75rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--gcorp-taupe);
	margin: 0 0 1.25rem;
}
.gcorp-footer__col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.75rem; }
.gcorp-footer__col a { color: var(--gcorp-limestone); text-decoration: none; font-size: 0.95rem; }
.gcorp-footer__col a:hover { color: var(--gcorp-gold); }
.gcorp-footer__bottom {
	max-width: 1200px;
	margin: var(--wp--preset--spacing--40) auto 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 1rem;
	font-size: 0.8rem;
	color: var(--gcorp-taupe);
}
.gcorp-footer__bottom a { color: var(--gcorp-taupe); text-decoration: none; }
.gcorp-footer__bottom a:hover { color: var(--gcorp-gold); }

/* 7. Hero (art-directed) ---------------------------------------------------- */
.gcorp-hero {
	position: relative;
	min-height: 100svh;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	background: var(--gcorp-onyx);
}
.gcorp-hero__media { position: absolute; inset: 0; z-index: 0; }
.gcorp-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
/* Placeholder architectural gradient when no hero image is present */
.gcorp-hero__media--placeholder {
	background:
		radial-gradient(120% 90% at 78% 40%, rgba(139,129,112,0.14), transparent 60%),
		linear-gradient(180deg, #101010 0%, #0D0D0C 60%, #08080a 100%);
}
/* Subtle dark overlay on the LEFT only, for text contrast */
.gcorp-hero__scrim {
	position: absolute; inset: 0; z-index: 1;
	background: linear-gradient(90deg, rgba(9,9,8,0.78) 0%, rgba(9,9,8,0.5) 32%, rgba(9,9,8,0.12) 55%, rgba(9,9,8,0) 72%);
}
.gcorp-hero__inner {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 1200px;
	margin-inline: auto;
	padding: 0 clamp(1.25rem, 4vw, 3rem) clamp(4rem, 9vh, 8rem);
}
/* Hero copy column widened so the larger H1 keeps its intended line breaks on
   desktop; the supporting paragraph keeps its own narrow measure, preserving
   negative space. Below ~800px the column is full width, so mobile/tablet are
   unchanged. */
.gcorp-hero__content { max-width: 52rem; }
.gcorp-hero__content .gcorp-display {
	color: var(--wp--preset--color--white-warm);
	font-size: clamp(2.65rem, 1.84rem + 3.46vw, 6.5rem);
	line-height: 1.03;
	margin-bottom: 1.5rem;
}
.gcorp-hero__content p { color: var(--gcorp-limestone); max-width: 34rem; font-size: var(--wp--preset--font-size--medium); }
/* Secondary hero button: ensure legibility over the dark hero (it would
   otherwise inherit dark text). Mirrors the dark-section outline treatment. */
.gcorp-hero .gcorp-btn--outline { color: var(--gcorp-ivory); border-color: rgba(216, 210, 198, 0.45); }
.gcorp-hero .gcorp-btn--outline:hover,
.gcorp-hero .gcorp-btn--outline:focus-visible { color: var(--gcorp-gold); border-color: var(--gcorp-gold); }
/* Home hero crop: nudge the full-viewport image rightward so the complete
   "GCORP Advisory" wall wordmark stays in frame on desktop and tablet, while
   the dark left half remains behind the live copy. Mobile keeps its own
   centred crop (dedicated mobile source), signage secondary to legibility. */
.gcorp-hero--home .gcorp-hero__media img { object-position: 68% center; }
@media (max-width: 1200px) {
	.gcorp-hero--home .gcorp-hero__media img { object-position: 82% center; }
}
@media (max-width: 781px) {
	.gcorp-hero--home .gcorp-hero__media img { object-position: center; }
}

/* Secondary page heroes (shorter) */
.gcorp-hero--page { min-height: clamp(60vh, 70vh, 640px); align-items: center; }
.gcorp-hero--page .gcorp-hero__content { max-width: 56rem; }
/* Header-safe interior hero: reserve a protected gap below the fixed header so
   no hero content sits behind or beside the navigation, then let the content
   breathe without a large void. Applied to interior heroes that would
   otherwise overlap the header. */
.gcorp-hero--offset { align-items: flex-start; min-height: clamp(600px, 74vh, 720px); }

/* Photographic hero (Advisory — 23 Savile Row): a stronger overlay behind the
   copy so the headline reads cleanly against the busy entrance, and the copy
   raised toward the visual centre. Scoped to this hero; other heroes unchanged. */
.gcorp-hero--photo .gcorp-hero__scrim {
	background:
		linear-gradient(90deg, rgba(9,9,8,0.90) 0%, rgba(9,9,8,0.66) 34%, rgba(9,9,8,0.30) 58%, rgba(9,9,8,0.08) 76%, rgba(9,9,8,0) 90%),
		linear-gradient(180deg, rgba(9,9,8,0.14) 0%, rgba(9,9,8,0) 42%);
}
.gcorp-hero--photo.gcorp-hero--offset .gcorp-hero__inner {
	padding-top: calc(var(--gcorp-header-h) + clamp(1.5rem, 1rem + 2.5vw, 3.75rem));
	/* Raise the whole content group ~32px toward the visual centre. Applied to
	   the inner wrapper (not .gcorp-hero__content, which carries .gcorp-reveal
	   and resets transform on reveal), so the reveal and reduced-motion
	   behaviour are unaffected. */
	transform: translateY(-2rem);
}
@media (max-width: 782px) {
	.gcorp-hero--photo.gcorp-hero--offset .gcorp-hero__inner { transform: translateY(-0.75rem); }
}
/* A more deliberate pause between the dark hero and the ivory content: extra top
   padding on the first section (~56px mobile, ~72px tablet, ~100px desktop),
   added on top of the section's base spacing. */
.gcorp-section--breathe { padding-top: calc(var(--wp--preset--spacing--70) + clamp(3.5rem, 7vw, 6.25rem)); }
.gcorp-hero--offset .gcorp-hero__inner {
	padding-top: calc(var(--gcorp-header-h) + clamp(2.75rem, 3rem + 5vw, 7.5rem));
	padding-bottom: clamp(3rem, 6vh, 5rem);
}
/* Restrained hero column (Client Portfolio, Private Enquiry). */
.gcorp-hero--narrow .gcorp-hero__content { max-width: 44rem; }

/* 8. Two divisions ---------------------------------------------------------- */
.gcorp-divisions {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1px;
	background: var(--gcorp-rule-light);
	border: 1px solid var(--gcorp-rule-light);
}
.gcorp-division {
	/* Both cards are one component: identical Bone panel, padding and geometry.
	   Zero the editor block-gap that lands on the second grid item, which would
	   otherwise drop the Advocacy card and expose the container rule above it as
	   a taupe band. Cards now begin and end on the same line. */
	margin-block: 0;
	background: var(--gcorp-ivory);
	padding: clamp(2rem, 4vw, 3.5rem);
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}
.gcorp-division__lockup {
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.5rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.gcorp-division__lockup img { height: 40px; width: auto; }
.gcorp-division__desc { color: var(--wp--preset--color--taupe-text); max-width: 34ch; }
.gcorp-division .gcorp-btn-row { margin-top: auto; }

/* 9. Editorial two-column --------------------------------------------------- */
.gcorp-editorial {
	display: grid;
	grid-template-columns: 1fr 1.15fr;
	gap: clamp(2rem, 6vw, 6rem);
	align-items: start;
	max-width: 1200px;
	margin-inline: auto;
}
/* Vertically align the body against the headline's visual centre. align-items
   centres it against the whole left stack; the translate then shifts it down by
   half the eyebrow block so it lines up with the headline itself. Constant
   offset (eyebrow size is rem-fixed), desktop only, horizontal + width unchanged. */
@media (min-width: 981px) {
	.gcorp-editorial--center { align-items: center; }
	.gcorp-editorial--center .gcorp-editorial__body { transform: translateY(1.2rem); }
}
.gcorp-editorial__heading .gcorp-display { font-size: var(--wp--preset--font-size--xx-large); }
.gcorp-editorial__body > * + * { margin-top: 1.25rem; }
.gcorp-editorial__body p { max-width: var(--gcorp-measure); }

/* 10. Audience grid --------------------------------------------------------- */
.gcorp-audience {
	max-width: 1200px;
	margin-inline: auto;
}
.gcorp-audience__list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0;
	margin-top: var(--wp--preset--spacing--50);
	border-top: 1px solid var(--gcorp-rule);
}
.gcorp-audience__item {
	/* One editorial grid: every card is a stretched grid cell, so a row's cards
	   share height and the divider stays level. Zero the editor block-gap that
	   lands on every card after the first, which would otherwise drop the later
	   cards in each row and stagger the headings. Headings stay top-aligned;
	   remaining space falls below the body. */
	margin-block: 0;
	padding: clamp(1.5rem, 3vw, 2.25rem) 0;
	border-bottom: 1px solid var(--gcorp-rule);
	padding-right: 1.5rem;
}
.gcorp-audience__item h3 {
	font-family: var(--wp--preset--font-family--serif);
	font-size: var(--wp--preset--font-size--large);
	margin: 0 0 0.5rem;
}
.gcorp-audience__item p { margin: 0; color: var(--gcorp-taupe-ink); font-size: clamp(1rem, 0.97rem + 0.15vw, 1.075rem); line-height: 1.55; max-width: 32ch; }
/* Preserve the existing dark-background text colour (unchanged). */
.gcorp-bg-onyx .gcorp-audience__item p,
.gcorp-bg-slate .gcorp-audience__item p,
.gcorp-bg-forest .gcorp-audience__item p { color: var(--gcorp-limestone); }

/* 12. Process steps --------------------------------------------------------- */
.gcorp-process { max-width: 1000px; margin-inline: auto; }
.gcorp-process__list { list-style: none; margin: var(--wp--preset--spacing--50) 0 0; padding: 0; counter-reset: step; }
.gcorp-process__item {
	display: grid;
	grid-template-columns: 4rem 1fr;
	gap: clamp(1rem, 3vw, 2.5rem);
	padding: clamp(1.5rem, 3vw, 2.25rem) 0;
	border-top: 1px solid var(--gcorp-rule);
	align-items: baseline;
}
.gcorp-process__item:last-child { border-bottom: 1px solid var(--gcorp-rule); }
.gcorp-process__num {
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.5rem;
	color: var(--gcorp-gold);
}
.gcorp-process__item h3 { font-family: var(--wp--preset--font-family--serif); font-size: var(--wp--preset--font-size--medium); margin: 0 0 0.5rem; }
.gcorp-process__item p { margin: 0; max-width: 56ch; }

/* 15. Leadership ------------------------------------------------------------ */
.gcorp-leaders {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(2rem, 5vw, 4rem);
	max-width: 1200px;
	margin: var(--wp--preset--spacing--50) auto 0;
	align-items: start;
}
.gcorp-leader {
	/* Matched editorial pair: zero the editor block-gap that lands on the second
	   grid item (Tenielle), so both cards top-align beneath the heading and share
	   one baseline for portrait, name, title and biography. Column gap is handled
	   by .gcorp-leaders. */
	margin-block: 0;
}
.gcorp-leader__name { font-family: var(--wp--preset--font-family--serif); font-size: var(--wp--preset--font-size--large); margin: 0 0 0.25rem; }
.gcorp-leader__title { font-family: var(--wp--preset--font-family--sans); font-size: 0.9rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gcorp-gold-ink); margin: 0 0 1.25rem; }

/* Leadership photography (About) — the shared portrait of both leaders sits
   higher on the page, within The GCORP Office section, to break up the copy.
   The two leader portraits share a single 4:5 frame so both photographs render
   at an identical height, keeping each name and title on the same baseline. */
.gcorp-leadership-photo {
	max-width: 780px;
	margin: var(--wp--preset--spacing--60) auto 0;
	overflow: hidden;
}
.gcorp-leadership-photo img { width: 100%; height: auto; display: block; }
.gcorp-leader__photo {
	aspect-ratio: 4 / 5;
	margin: 0 0 1.75rem;
	overflow: hidden;
	background: var(--gcorp-limestone);
}
.gcorp-leader__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gcorp-leader__bio > * + * { margin-top: 1.1rem; }
.gcorp-leader__bio p { max-width: 60ch; }
.gcorp-leader__contact { font-size: 0.95rem; color: var(--wp--preset--color--taupe-text); margin-top: 1.5rem; }

/* Division tagline (About — two divisions) */
.gcorp-division__tagline {
	font-family: var(--wp--preset--font-family--serif);
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.3;
	margin: 0;
}

/* 16. Client Portfolio carousel -------------------------------------------- */
.gcorp-carousel { position: relative; max-width: 100%; }
.gcorp-carousel__header {
	display: flex;
	justify-content: flex-start;
	align-items: flex-end;
	max-width: 1200px;
	margin: 0 auto var(--wp--preset--spacing--40);
	padding-inline: clamp(1.25rem, 4vw, 3rem);
	gap: clamp(1.5rem, 3vw, 2.75rem);
}
.gcorp-carousel__intro { flex: 0 1 40rem; max-width: 40rem; }
.gcorp-carousel__eyebrow { margin: 0 0 1.1rem; }
.gcorp-carousel__eyebrow::after {
	content: "";
	display: block;
	width: 34px;
	height: 1px;
	background: var(--gcorp-gold);
	margin-top: 0.85rem;
}
.gcorp-carousel__title {
	font-size: var(--wp--preset--font-size--x-large);
	line-height: 1.14;
	margin: 0;
}
.gcorp-carousel__nav { display: flex; gap: 0.5rem; flex: none; }
.gcorp-carousel__btn {
	width: 54px; height: 54px;
	border: 1px solid rgba(166, 134, 78, 0.5);
	background: transparent;
	color: var(--gcorp-gold);
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
}
.gcorp-carousel__btn:hover:not(:disabled) { border-color: var(--gcorp-gold); background: rgba(166, 134, 78, 0.1); }
.gcorp-carousel__btn:disabled { opacity: 0.32; cursor: not-allowed; }
.gcorp-carousel__track {
	display: flex;
	gap: clamp(1.25rem, 2.5vw, 2.25rem);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	padding-inline: clamp(1.25rem, 4vw, 3rem);
	padding-bottom: 0.5rem;
	scrollbar-width: none;
	/* Card width leaves part of the next card visible on every viewport. */
}
.gcorp-carousel__track::-webkit-scrollbar { display: none; }
/* Premium editorial cards: a dominant full-bleed portrait image with a fine
   Muted Gold rule directly beneath it, then a shallow text panel on the dark
   section. No boxed tile outline; separation comes from the rule, spacing and
   typography. Image, street name and suburb only. */
.gcorp-card {
	flex: 0 0 clamp(258px, 21vw, 316px);
	scroll-snap-align: start;
	background: none;
	color: inherit;
	display: flex;
	flex-direction: column;
	border: 0;
}
.gcorp-card__media { aspect-ratio: 7 / 8; overflow: hidden; background: var(--gcorp-onyx); margin: 0; }
.gcorp-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gcorp-card__body {
	padding: 0.9rem 0.1rem 0.2rem;
	border-top: 1px solid rgba(166, 134, 78, 0.55); /* fine Muted Gold rule beneath the image */
}
.gcorp-card__street {
	font-family: var(--wp--preset--font-family--serif);
	font-size: clamp(1.25rem, 1.1rem + 0.6vw, 1.55rem);
	font-weight: 500;
	line-height: 1.12;
	text-transform: uppercase;
	letter-spacing: 0.045em;
	color: var(--wp--preset--color--white-warm);
	margin: 0 0 0.3rem;
}
.gcorp-card__suburb {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.9rem;
	font-weight: 500;
	letter-spacing: 0.04em;
	color: var(--gcorp-taupe-2);
	margin: 0;
}

/* 17. Private enquiry panel ------------------------------------------------- */
.gcorp-enquiry-panel__inner {
	display: grid;
	grid-template-columns: 1.1fr 0.9fr;
	gap: clamp(2rem, 6vw, 5rem);
	align-items: center;
	max-width: 1200px;
	margin-inline: auto;
}
.gcorp-enquiry-panel__heading .gcorp-display { font-size: var(--wp--preset--font-size--xx-large); }
.gcorp-enquiry-panel__aside p { margin-bottom: 1.75rem; }

/* 18. Enquiry form (conditional) ------------------------------------------- */
/* Private Enquiry: pathway selection + conditional forms */
.gcorp-enquiry-wrap { max-width: 1040px; margin-inline: auto; }
.gcorp-enquiry-title { margin: 0 0 var(--wp--preset--spacing--50); }
.gcorp-enquiry { max-width: 100%; margin-inline: auto; }
.gcorp-pathways {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(1rem, 2vw, 1.5rem);
	margin-bottom: var(--wp--preset--spacing--40);
}
/* Selectable pathway: fine border, no card shadow or rounded corners; the
   whole panel is one operable button with a large touch target. */
.gcorp-pathway {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 1rem;
	padding: clamp(1.75rem, 2.5vw, 2.5rem) clamp(1.5rem, 2vw, 2rem);
	min-height: 100%;
	border: 1px solid var(--gcorp-rule);
	background: transparent;
	color: inherit;
	text-align: left;
	cursor: pointer;
	font: inherit;
	transition: border-color 0.2s ease, background 0.2s ease;
}
.gcorp-pathway:hover { border-color: var(--gcorp-gold); }
.gcorp-pathway:focus-visible { outline: 2px solid var(--gcorp-gold); outline-offset: 3px; }
.gcorp-pathway[aria-pressed="true"] {
	border-color: var(--gcorp-gold);
	background: rgba(166,134,78,0.08);
}
.gcorp-pathway__label { display: block; min-height: 26px; }
.gcorp-pathway__label img { height: 26px; width: auto; display: block; }
.gcorp-pathway--text .gcorp-pathway__label {
	font-family: var(--wp--preset--font-family--serif);
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 500;
	line-height: 1.2;
}
.gcorp-pathway__desc {
	font-size: clamp(1rem, 0.97rem + 0.15vw, 1.075rem);
	line-height: 1.55;
	color: var(--gcorp-taupe-ink);
}
.gcorp-pathway__action {
	margin-top: auto;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.8rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--gcorp-gold);
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}
.gcorp-pathway:hover .gcorp-pathway__action .gcorp-arrow,
.gcorp-pathway[aria-pressed="true"] .gcorp-pathway__action .gcorp-arrow { transform: translateX(4px); }
.gcorp-pathway__action .gcorp-arrow { transition: transform 0.2s ease; }

.gcorp-form { margin-top: var(--wp--preset--spacing--40); max-width: 760px; margin-inline: auto; }
/* Fields pair into two columns on desktop; long-message and consent span the
   full width; a single column on mobile. */
.gcorp-form__fields { display: grid; grid-template-columns: 1fr 1fr; column-gap: 1.5rem; }
.gcorp-form__fields .gcorp-field--wide { grid-column: 1 / -1; }
.gcorp-form[hidden] { display: none; }
/* The pathway chooser uses display:grid, which would otherwise override the
   [hidden] attribute; make the hide explicit so selecting a pathway shows only
   that form (JS sets hidden; "Change selection" restores the chooser). */
.gcorp-pathways[hidden] { display: none; }
.gcorp-form__context {
	display: flex; align-items: center; justify-content: space-between;
	gap: 1rem; margin-bottom: 2rem;
	padding-bottom: 1rem; border-bottom: 1px solid var(--gcorp-rule);
}
.gcorp-form__context-label { font-size: 0.8rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gcorp-gold); }
.gcorp-form__back { background: none; border: none; color: inherit; font: inherit; font-size: 0.9375rem; cursor: pointer; text-decoration: underline; padding: 0.5rem; }
.gcorp-form__heading { font-size: var(--wp--preset--font-size--large); margin: 0 0 0.75rem; }
.gcorp-form__intro { color: var(--wp--preset--color--taupe-text); margin: 0 0 0.35rem; max-width: 60ch; font-size: 0.95rem; }
.gcorp-form__intro:last-of-type { margin-bottom: 1.75rem; }
.gcorp-field { margin-bottom: 1.5rem; }
.gcorp-field label { display: block; font-family: var(--wp--preset--font-family--sans); font-size: 0.9375rem; letter-spacing: 0.02em; margin-bottom: 0.5rem; }
.gcorp-field .req { color: var(--gcorp-gold); }
.gcorp-field input,
.gcorp-field textarea,
.gcorp-field select {
	width: 100%;
	font: inherit;
	font-size: 1rem;
	padding: 0.9rem 1rem;
	background: var(--wp--preset--color--white-warm);
	color: var(--gcorp-onyx);
	border: 1px solid var(--gcorp-rule);
	border-radius: 0;
}
.gcorp-bg-onyx .gcorp-field input,
.gcorp-bg-onyx .gcorp-field textarea,
.gcorp-bg-onyx .gcorp-field select { background: rgba(255,255,255,0.04); color: var(--gcorp-ivory); border-color: rgba(216,210,198,0.24); }
.gcorp-field input:focus,
.gcorp-field textarea:focus,
.gcorp-field select:focus { border-color: var(--gcorp-gold); }
.gcorp-field textarea { min-height: 140px; resize: vertical; }
.gcorp-field--error input,
.gcorp-field--error textarea,
.gcorp-field--error select { border-color: #a3402f; }
.gcorp-field__error { display: none; color: #c65a48; font-size: 0.8rem; margin-top: 0.4rem; }
.gcorp-field--error .gcorp-field__error { display: block; }
.gcorp-consent { display: grid; grid-template-columns: auto 1fr; gap: 0.75rem; align-items: start; font-size: 0.95rem; }
.gcorp-consent input { width: auto; margin-top: 0.2rem; }
.gcorp-form__submit { margin-top: 1rem; }
.gcorp-form__success {
	padding: 2rem;
	border: 1px solid var(--gcorp-gold);
	background: rgba(166,134,78,0.06);
}
/* Separate the success heading from the body (heading only; body paragraph
   spacing is unchanged). ~16-24px on desktop, ~12-18px on mobile. */
.gcorp-form__success h3 { margin: 0 0 clamp(0.9rem, 0.6rem + 0.7vw, 1.5rem); }
/* Honeypot */
.gcorp-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* Statements list with fine gold rules (What the Portfolio Represents) */
.gcorp-statements { list-style: none; margin: 0; padding: 0; }
.gcorp-statements li { padding: 1.5rem 0; border-top: 1px solid var(--gcorp-rule); }
.gcorp-statements li:first-child { border-top: 0; }
.gcorp-statements li::before { content: ""; display: block; width: 28px; height: 2px; background: var(--gcorp-gold); margin-bottom: 1rem; }

/* 19b. Advisory page — additive editorial structures -----------------------
   Pillars (full editorial), scenario/standard two-column grids, service lists,
   tenets and closing lines. Additive only; no existing component is modified. */
.gcorp-audience__list--two { grid-template-columns: 1fr 1fr; }

/* Seven-category audience grid (Advocacy — Who We Represent). Keeps the three
   readable columns for the six client segments and lets the final category
   close the grid full width, so seven items balance without reducing type or
   spacing. Scoped to this list only; no other grid is affected. */
.gcorp-audience__list--seven > .gcorp-audience__item:last-child { grid-column: 1 / -1; }

/* GCORP Standard — an engraved private-office symbol beside each principle. The
   principle grid (.gcorp-audience__list--two) and its borders are unchanged;
   each item simply becomes a restrained [symbol][content] row. */
.gcorp-standard-item {
	display: grid;
	grid-template-columns: 68px minmax(0, 1fr);
	column-gap: 1.25rem;
	/* Centre the symbol against the full text block (heading + supporting copy),
	   not the heading baseline. Text stays left-aligned. */
	align-items: center;
}
.gcorp-standard-item__symbol {
	width: 56px;
	height: 56px;
	object-fit: contain;
	margin: 0;
}
@media (max-width: 600px) {
	.gcorp-standard-item { grid-template-columns: 52px minmax(0, 1fr); column-gap: 1rem; }
	.gcorp-standard-item__symbol { width: 44px; height: 44px; }
}

/* Numbered variant — used only on The Advocacy Service. A refined sequence
   marker (01–07) sits above each heading, in Inter tabular figures and Muted
   Gold, secondary to the heading. Not a timeline; no icons. */
.gcorp-audience__list--numbered { counter-reset: gcorp-svc; }
.gcorp-audience__list--numbered .gcorp-audience__item::before {
	counter-increment: gcorp-svc;
	content: counter(gcorp-svc, decimal-leading-zero);
	display: block;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	font-variant-numeric: tabular-nums lining-nums;
	color: var(--gcorp-gold);
	margin-bottom: 0.5rem;
}

.gcorp-service-list {
	list-style: none;
	margin: 1.25rem 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 2rem;
}
.gcorp-service-list li {
	position: relative;
	margin: 0;
	padding: 0.5rem 0 0.5rem 1.25rem;
	font-size: clamp(1rem, 0.97rem + 0.15vw, 1.075rem);
	line-height: 1.55;
	border-top: 1px solid var(--gcorp-rule);
}
.gcorp-service-list li::before {
	content: "";
	position: absolute;
	left: 0; top: 1.15rem;
	width: 10px; height: 1px;
	background: var(--gcorp-gold);
}

.gcorp-list-label {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.8rem; letter-spacing: 0.12em; text-transform: uppercase;
	color: var(--wp--preset--color--taupe-text);
	margin: 1.75rem 0 0;
}
.gcorp-bg-onyx .gcorp-list-label,
.gcorp-bg-slate .gcorp-list-label,
.gcorp-bg-forest .gcorp-list-label { color: var(--gcorp-taupe); }

.gcorp-pillar-full__lead {
	font-family: var(--wp--preset--font-family--serif);
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.4; margin-top: 1rem; max-width: 34ch;
}
.gcorp-pillar-full__close {
	font-family: var(--wp--preset--font-family--serif);
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.4; margin-top: 1.75rem;
}

.gcorp-closing-line {
	font-family: var(--wp--preset--font-family--serif);
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.3; margin-top: 2rem;
}

/* Advisory editorial feature rows — the approved image library set against the
   pillar and Chambers copy in an alternating image/text layout, so the page
   reads like an editorial publication. Reuses the approved type, colour and
   spacing tokens; text colour is inherited from the section background class.
   Only the media column is new. */
.gcorp-adv-features { max-width: 1200px; margin-inline: auto; margin-top: var(--wp--preset--spacing--40); }
.gcorp-adv-feature {
	display: grid;
	grid-template-columns: 0.82fr 1fr;
	gap: clamp(2rem, 5vw, 5.5rem);
	align-items: center;
	padding-block: var(--wp--preset--spacing--60);
	border-top: 1px solid var(--gcorp-rule);
}
.gcorp-adv-feature:first-child { border-top: 0; padding-top: var(--wp--preset--spacing--20); }
.gcorp-adv-feature--reverse .gcorp-adv-feature__media { order: 2; }
.gcorp-adv-feature__media {
	margin: 0; overflow: hidden;
	background: var(--gcorp-onyx);
	aspect-ratio: 4 / 5;
}
.gcorp-adv-feature__media img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.gcorp-adv-feature--strategic .gcorp-adv-feature__media img { object-position: 58% 50%; }
.gcorp-adv-feature--top { align-items: start; }
.gcorp-adv-feature__text > * + * { margin-top: 1.1rem; }
.gcorp-adv-feature__text .gcorp-service-list { grid-template-columns: 1fr; margin-top: 1.1rem; }
@media (max-width: 980px) {
	.gcorp-adv-feature { grid-template-columns: 1fr; gap: clamp(1.5rem, 4vw, 2.5rem); padding-block: var(--wp--preset--spacing--50); }
	.gcorp-adv-feature:first-child { padding-top: var(--wp--preset--spacing--30); }
	.gcorp-adv-feature--reverse .gcorp-adv-feature__media { order: 0; }
	.gcorp-adv-feature__media { max-width: 30rem; }
}

/* Advisory pillars, Chambers and keynote: the photograph is an equal-height
   partner to its text. The feature becomes an equal-height two-column grid and
   the media fills the full height of the taller (text) column instead of a
   fixed 4/5 ratio. Scoped to --fill so the Advocacy features are unaffected. */
.gcorp-adv-feature--fill { align-items: stretch; }
/* Keynote: text-led split (~52% text / 48% image), text on the left. Desktop only. */
@media (min-width: 981px) {
	.gcorp-adv-feature--keynote { grid-template-columns: 1.08fr 1fr; }
	/* Image-led split (~48% text / 52% image), text on the left. */
	.gcorp-adv-feature--imgwide { grid-template-columns: 0.92fr 1fr; }
}
.gcorp-adv-feature--fill .gcorp-adv-feature__media { aspect-ratio: auto; height: 100%; min-height: 100%; }
.gcorp-adv-feature--fill .gcorp-adv-feature__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 980px) {
	/* Stack: heading and copy first, then the image. Consistent image ratio. */
	.gcorp-adv-feature--fill { align-items: start; }
	.gcorp-adv-feature--fill .gcorp-adv-feature__media {
		order: 2; height: auto; min-height: 0; aspect-ratio: 4 / 5;
		max-width: none; width: 100%;
	}
	.gcorp-adv-feature--fill.gcorp-adv-feature--wide .gcorp-adv-feature__media { aspect-ratio: 3 / 2; }
}

/* Three Pillars opening: a calmer editorial rhythm through the introduction.
   Spacing only — type, size, colour, line-height and width are unchanged. */
.gcorp-pillars-intro .gcorp-eyebrow { margin-bottom: 2.625rem; }   /* eyebrow -> headline */
.gcorp-pillars-intro .gcorp-display { margin-bottom: 1.375rem; }   /* headline -> lead */
.gcorp-pillars-intro .gcorp-lead { margin-bottom: 3rem; }          /* lead -> supporting */
.gcorp-pillars-intro > p:last-of-type { margin-bottom: 6rem; }     /* supporting -> first pillar */

/* Space the supporting line clear of the headline in What the Portfolio
   Represents, so it reads as a separate body line. */
.gcorp-represents-note { margin-top: clamp(1.75rem, 3vw, 2.75rem); }

/* ------------------------------------------------------------------ *
 * GCORP Advocacy — editorial imagery
 * Photography and whitespace only. Reuses the Advisory feature grid for
 * image-and-text pairings and adds full-width bands and in-flow figures.
 * No existing component, colour or type styling is altered.
 * ------------------------------------------------------------------ */

/* A feature that shows the photograph at its natural height, so the whole
   composition is retained (used for the kitchen consultation). */
.gcorp-adv-feature--natural { align-items: start; }
.gcorp-adv-feature__media--tall { aspect-ratio: 2 / 3; }
.gcorp-adv-feature__media--tall img { object-position: 50% 44%; }

/* The eyebrow and section heading carried inside a feature's text column. */
.gcorp-adv-feature__text .gcorp-eyebrow { margin-bottom: 1rem; }
.gcorp-adv-feature__text .gcorp-display { font-size: var(--wp--preset--font-size--x-large); }

/* Full-width photographic band that separates two sections. */
.gcorp-figure-band { margin: 0; overflow: hidden; background: var(--gcorp-onyx); }
.gcorp-figure-band img { display: block; width: 100%; height: clamp(17rem, 40vw, 33rem); object-fit: cover; object-position: center; }
/* Taller cinematic page breaker (e.g. the family-office reception). Keeps a
   generous height on mobile so it never collapses into a narrow strip. */
.gcorp-figure-band--tall img { height: clamp(26rem, 48vw, 40rem); }

/* In-flow editorial figure inside a reading column (the entry foyer, set
   between two process steps), with generous surrounding whitespace. */
.gcorp-figure-inflow { margin: clamp(2.75rem, 5vw, 4.5rem) 0; overflow: hidden; background: var(--gcorp-onyx); }
.gcorp-figure-inflow img { display: block; width: 100%; height: clamp(14rem, 30vw, 24rem); object-fit: cover; object-position: center; }

/* Reserved space for a future editorial still-life. Renders as a quiet
   framed placeholder until an image is added to the slot. */
.gcorp-figure-reserved { aspect-ratio: 3 / 2; border: 1px solid var(--gcorp-rule); background: transparent; }
.gcorp-figure-reserved img { display: block; width: 100%; height: 100%; object-fit: cover; }

@media (max-width: 980px) {
	.gcorp-adv-feature__media--tall { aspect-ratio: 3 / 4; max-width: 26rem; }
	.gcorp-figure-band img { height: clamp(14rem, 56vw, 22rem); }
}

/* Signature closing line: "It is to acquire well." in display serif + gold. */
.gcorp-acquire {
	font-family: var(--wp--preset--font-family--serif);
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.3;
	color: var(--gcorp-gold);
	margin-top: 1.5rem;
}

/* Portfolio in Context — one dominant proof figure, three supporting points
   with fine dividers. No boxes, no icons. */
.gcorp-context__figure {
	font-family: var(--wp--preset--font-family--serif);
	font-weight: 500;
	font-size: clamp(3.5rem, 2.2rem + 5vw, 6rem);
	line-height: 1;
	margin: 0.75rem 0 0;
}
.gcorp-context__figure-sub {
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--medium);
	color: var(--gcorp-taupe-ink);
	max-width: 22ch;
	margin: 1.1rem 0 0;
}
.gcorp-context__points { display: flex; flex-direction: column; }
.gcorp-context__point { padding: 1.5rem 0; border-top: 1px solid var(--gcorp-rule); }
.gcorp-context__point:first-child { border-top: 0; padding-top: 0.25rem; }
.gcorp-context__point h3 {
	font-family: var(--wp--preset--font-family--serif);
	font-size: var(--wp--preset--font-size--large);
	margin: 0 0 0.4rem;
}
.gcorp-context__point p {
	font-family: var(--wp--preset--font-family--sans);
	color: var(--gcorp-taupe-ink);
	font-size: clamp(1rem, 0.97rem + 0.15vw, 1.075rem);
	line-height: 1.55;
	max-width: 46ch;
	margin: 0;
}

.gcorp-tenets {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0 clamp(1.5rem, 3vw, 3rem);
	max-width: 1200px;
	margin: var(--wp--preset--spacing--50) auto 0;
}
.gcorp-tenet {
	margin: 0;
	padding-top: 1.5rem;
	border-top: 2px solid var(--gcorp-gold);
	font-family: var(--wp--preset--font-family--serif);
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.35;
}

@media (max-width: 782px) {
	.gcorp-tenets { grid-template-columns: 1fr; gap: 0; }
	.gcorp-tenet { margin-top: 1.25rem; }
	.gcorp-tenet:first-child { margin-top: 0; }
	.gcorp-service-list { grid-template-columns: 1fr; }
}

/* Aligned CTA stack — vertical, equal width, shared padding, arrow flush to the
   right padding edge. Primary stays a filled button; secondary stays a text
   link (left label, right arrow), not centred. */
.gcorp-cta-stack {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	margin-top: 2.25rem;
	width: fit-content;
}
.gcorp-cta-stack .gcorp-btn { width: 100%; justify-content: center; }
.gcorp-cta-stack .gcorp-textlink {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	gap: 1rem;
	padding: 1.05rem 2rem;
	border-bottom: 0;
	color: var(--wp--preset--color--ivory);
}
.gcorp-cta-stack .gcorp-textlink:hover,
.gcorp-cta-stack .gcorp-textlink:focus-visible { color: var(--gcorp-gold); }
.gcorp-cta-stack .gcorp-textlink .gcorp-arrow { flex: none; }

/* 20. Motion & reduced-motion ---------------------------------------------- */
.gcorp-reveal { opacity: 0; transform: translateY(18px); transition: opacity 0.7s ease, transform 0.7s ease; }
.gcorp-reveal.is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.gcorp-reveal { opacity: 1; transform: none; transition: none; }
	* { scroll-behavior: auto !important; }
}

/* 21. Responsive refinements ------------------------------------------------ */
@media (max-width: 980px) {
	.gcorp-editorial,
	.gcorp-enquiry-panel__inner,
	.gcorp-leaders { grid-template-columns: 1fr; }
	.gcorp-audience__list { grid-template-columns: 1fr 1fr; }
	.gcorp-pathways { grid-template-columns: 1fr; }
}

@media (max-width: 782px) {
	.gcorp-nav__list,
	.gcorp-nav .gcorp-btn--nav { display: none; }
	.gcorp-menu-toggle { display: inline-flex; }
	.gcorp-divisions { grid-template-columns: 1fr; }
	.gcorp-footer__top { grid-template-columns: 1fr; gap: 2.5rem; }
	.gcorp-audience__list { grid-template-columns: 1fr; }
	.gcorp-process__item { grid-template-columns: 2.5rem 1fr; }
}

@media (max-width: 640px) {
	.gcorp-form__fields { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
	.gcorp-card { flex-basis: 84vw; }
}

/* ==========================================================================
   14. Native block patterns
   Styles for the native-block page rebuild (auto-loading page patterns):
   full-width Cover heroes, the Forest CTA panel, native Columns / Media&Text
   section layouts, and the small image-role helper classes. These target core
   block structures only, so the copy stays fully editable in the editor.
   ========================================================================== */

/* --- Cover hero ---------------------------------------------------------- */
.gcorp-cover-hero.wp-block-cover {
	min-height: 78vh;
	align-items: flex-end;
	color: var(--gcorp-ivory);
}
.gcorp-cover-hero--home.wp-block-cover { min-height: 88vh; }
.gcorp-cover-hero .wp-block-cover__inner-container {
	width: 100%;
	max-width: 1200px;
	margin-inline: auto;
	padding: 0 clamp(1.25rem, 4vw, 3rem) clamp(3.5rem, 8vh, 7rem);
	text-align: left;
}
/* Left-align and constrain the hero copy column (overrides core centring). */
.gcorp-cover-hero .wp-block-cover__inner-container > * {
	margin-left: 0;
	margin-right: auto;
	max-width: 52rem;
}
.gcorp-cover-hero .wp-block-cover__inner-container > p { max-width: 38rem; }
.gcorp-cover-hero :where(h1, h2) {
	color: var(--wp--preset--color--white-warm);
	line-height: 1.04;
}
.gcorp-cover-hero p {
	color: var(--gcorp-limestone);
	font-size: var(--wp--preset--font-size--medium);
}
.gcorp-cover-hero .gcorp-eyebrow { color: var(--gcorp-gold); }
.gcorp-cover-hero .wp-block-buttons { margin-top: 1.75rem; }

/* --- Forest CTA / closing enquiry panel ---------------------------------- */
.gcorp-cta { text-align: center; }
.gcorp-cta :where(h2) { max-width: 24ch; margin-inline: auto; }
.gcorp-cta p { max-width: 54ch; margin-inline: auto; }
.gcorp-cta .wp-block-buttons { justify-content: center; margin-top: 1.75rem; }

/* --- Native Columns / Media&Text within sections ------------------------- */
.gcorp-section .wp-block-columns {
	gap: clamp(1.5rem, 4vw, 2.75rem);
	margin-top: var(--wp--preset--spacing--40);
}
.gcorp-section .wp-block-column > * { margin-block: 0.4rem; }
.gcorp-section .wp-block-column h3 { margin-bottom: 0.35rem; }

.gcorp-section .wp-block-media-text {
	gap: clamp(1.5rem, 4vw, 3rem);
	align-items: center;
	margin-block: var(--wp--preset--spacing--50);
}
.gcorp-section .wp-block-media-text__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 2px;
}

/* --- Image-role helpers used by the patterns ----------------------------- */
.gcorp-card-logo { margin-bottom: 1rem; }
.gcorp-card-logo img { height: 34px; width: auto; }

.gcorp-standard-icon { margin-bottom: 0.75rem; }
.gcorp-standard-icon img { width: 46px; height: auto; }

.gcorp-leader-portrait img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: 2px;
}

.gcorp-step-num {
	font-family: var(--wp--preset--font-family--serif);
	font-size: 2rem;
	line-height: 1;
	color: var(--gcorp-gold);
	margin-bottom: 0.25rem;
}

.gcorp-band-image img { width: 100%; height: auto; border-radius: 2px; }

/* Section heading measure so native H2s keep their intended line length. */
.gcorp-section > h2, .gcorp-section > .wp-block-heading { max-width: 26ch; }
.gcorp-section.gcorp-cta > h2 { max-width: 24ch; }

/* ==========================================================================
   15. Native chrome (block header & footer)
   The header/footer template parts are now native blocks (Navigation block +
   Columns), so they are editable in the Site Editor. These rules restyle the
   core Navigation and footer group structures to the approved chrome. The
   header keeps the .gcorp-header class, so the existing scroll behaviour
   (transparent over a hero, solid on scroll) in header.js still applies.
   ========================================================================== */

/* --- Header brand (Image block) ----------------------------------------- */
.gcorp-header .gcorp-brand { margin: 0; display: inline-flex; align-items: center; }
.gcorp-header .gcorp-brand img { height: 34px; width: auto; }
.gcorp-header .gcorp-brand a { display: inline-flex; }

/* --- Header Navigation block --------------------------------------------- */
.gcorp-nav .wp-block-navigation__container { gap: clamp(1.25rem, 2.4vw, 2.4rem); align-items: center; }
.gcorp-nav .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.95rem;
	letter-spacing: 0.02em;
	color: currentColor;
	text-decoration: none;
	padding-block: 0.5rem;
}
.gcorp-nav .wp-block-navigation-item__content:hover { color: var(--gcorp-gold); }
.gcorp-nav .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content,
.gcorp-nav .wp-block-navigation-item__content[aria-current] { color: var(--gcorp-gold); }
/* CTA nav link, styled as the primary button */
.gcorp-nav .gcorp-nav-cta .wp-block-navigation-item__content {
	background: var(--gcorp-gold);
	color: var(--gcorp-onyx);
	padding: 0.7rem 1.4rem;
	font-weight: 500;
	letter-spacing: 0.03em;
	transition: background-color 0.2s ease;
}
.gcorp-nav .gcorp-nav-cta .wp-block-navigation-item__content:hover { background: #b7975d; color: var(--gcorp-onyx); }
/* Mobile overlay */
.gcorp-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--gcorp-onyx);
	color: var(--gcorp-ivory);
	padding-top: 4rem;
}
.gcorp-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { color: var(--gcorp-ivory); font-size: 1.1rem; }
.gcorp-nav .wp-block-navigation__responsive-container.is-menu-open .gcorp-nav-cta { margin-top: 1.25rem; display: inline-block; }

/* --- Footer (native groups reuse the existing grid classes) -------------- */
.gcorp-footer .gcorp-footer__brand { margin: 0; }
.gcorp-footer .gcorp-footer__brand img { height: 36px; width: auto; }
.gcorp-footer__col p { max-width: 34ch; color: var(--gcorp-taupe); font-size: 0.9rem; margin-top: 0.75rem; }
.gcorp-footer__bottom p { margin: 0; }
