/* =============================================================================
   GILDED CAGE — CHILD THEME STYLESHEET
   =============================================================================
   A bespoke editorial visual system for high-net-worth interior design.
   Reads like a magazine; behaves like a parallax film.

   Sections
   --------
   01 — Design tokens (custom properties)
   02 — Reset & foundations
   03 — Typography system
   04 — Buttons, hairlines, ornaments (reusable)
   05 — Editorial chrome (fixed header)
   06 — Overlay menu (full-screen nav)
   07 — Slide navigator (right-edge dots)
   08 — Parallax architecture (slides, root, scrolling)
   09 — Slide: Hero
   10 — Slide: Editorial
   11 — Slide: Services
   12 — Slide: Portfolio
   13 — Slide: Testimonials
   14 — Slide: Feature
   15 — Slide: Biography
   16 — Slide: Contact (form)
   17 — Slide: Colophon (closing footer slide)
   18 — Standalone single-page hero & body
   19 — Site footer (non-front pages)
   20 — Responsive refinement
   21 — Reduced motion & print
============================================================================= */


/* =============================================================================
   01 — DESIGN TOKENS
   Tokens are injected as inline custom properties via wp_head() — these are
   defaults / fallbacks only.
============================================================================= */
:root {
	/* Palette — defaults (overridden inline by enqueue.php from Customizer) */
	--gc-ink:        #0e0c0a;
	--gc-charcoal:   #1a1714;
	--gc-smoke:      #2c2823;
	--gc-bone:       #f3ede2;
	--gc-paper:      #faf6ee;
	--gc-gilt:       #b08d3e;
	--gc-gilt-deep:  #8a6d2e;
	--gc-patina:     #4a5949;
	--gc-clay:       #8b5a3c;

	/* Working tokens — these change with tone */
	--gc-bg:         var(--gc-ink);
	--gc-fg:         var(--gc-bone);
	--gc-fg-soft:    rgba(243, 237, 226, 0.65);
	--gc-fg-faint:   rgba(243, 237, 226, 0.35);
	--gc-rule:       rgba(243, 237, 226, 0.18);
	--gc-accent:     var(--gc-gilt);

	/* Typography */
	--gc-serif:      'Cormorant Garamond', 'Cormorant', 'Garamond', 'Times New Roman', serif;
	--gc-sans:       'Jost', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Arial, sans-serif;
	--gc-script:     'Italiana', 'Cormorant Garamond', serif;

	/* Scale (fluid) */
	--gc-fs-micro:    clamp(10px, 0.71vw, 11px);
	--gc-fs-eyebrow:  clamp(11px, 0.78vw, 13px);
	--gc-fs-small:    clamp(13px, 0.92vw, 14px);
	--gc-fs-body:     clamp(15px, 1.08vw, 17px);
	--gc-fs-lede:     clamp(19px, 1.5vw, 24px);
	--gc-fs-h3:       clamp(24px, 2.2vw, 36px);
	--gc-fs-h2:       clamp(36px, 4.5vw, 76px);
	--gc-fs-h1:       clamp(48px, 7vw, 128px);
	--gc-fs-display:  clamp(56px, 9vw, 180px);

	/* Rhythm & space */
	--gc-rhythm:      1.55;
	--gc-tracking:    0.02em;
	--gc-tracking-wide: 0.18em;
	--gc-tracking-ultra: 0.32em;

	/* Layout */
	--gc-chrome-h:    72px;
	--gc-gutter:      clamp(20px, 4vw, 72px);
	--gc-max:         1480px;

	/* Motion */
	--gc-ease:        cubic-bezier(0.6, 0.05, 0.2, 1);
	--gc-ease-out:    cubic-bezier(0.22, 0.61, 0.36, 1);
	--gc-ease-in:     cubic-bezier(0.55, 0.06, 0.68, 0.19);
	--gc-dur-fast:    240ms;
	--gc-dur:         480ms;
	--gc-dur-slow:    900ms;
	--gc-dur-cinema:  1400ms;
}


/* =============================================================================
   02 — RESET & FOUNDATIONS
============================================================================= */
*, *::before, *::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body {
	margin: 0;
	font-family: var(--gc-sans);
	font-size: var(--gc-fs-body);
	line-height: var(--gc-rhythm);
	font-weight: 300;
	color: var(--gc-fg);
	background: var(--gc-bg);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-feature-settings: 'liga', 'kern', 'onum';
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
}

body.gc-parallax-mode {
	overflow-x: hidden;
}

img, picture, video, svg {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: inherit;
	text-decoration: none;
	transition: color var(--gc-dur-fast) var(--gc-ease);
}

button {
	background: none;
	border: 0;
	padding: 0;
	font: inherit;
	color: inherit;
	cursor: pointer;
}

::selection {
	background: var(--gc-gilt);
	color: var(--gc-ink);
}

/* Genesis injection guards. */
.entry-title, .entry-meta, .entry-footer { display: none; }
.gc-parallax-mode .site-inner > * { all: revert; }
.gc-parallax-mode .site-inner {
	max-width: none;
	padding: 0;
	margin: 0;
}
.site-inner { padding: 0; margin: 0; max-width: none; }
.content { padding: 0; max-width: none; }


/* =============================================================================
   03 — TYPOGRAPHY SYSTEM
============================================================================= */
h1, h2, h3, h4, h5, h6 {
	margin: 0 0 0.4em;
	font-family: var(--gc-serif);
	font-weight: 400;
	line-height: 1.04;
	letter-spacing: -0.012em;
	color: inherit;
}

h1 { font-size: var(--gc-fs-h1); }
h2 { font-size: var(--gc-fs-h2); }
h3 { font-size: var(--gc-fs-h3); font-weight: 400; }
h4 { font-size: var(--gc-fs-lede); font-weight: 500; letter-spacing: 0; }

p {
	margin: 0 0 1.2em;
	font-weight: 300;
}

em, .gc-italic {
	font-style: italic;
	font-family: var(--gc-serif);
}

strong { font-weight: 500; }

blockquote { margin: 0; padding: 0; font-style: normal; }

cite { font-style: normal; }

/* Eyebrow label — used everywhere */
.gc-eyebrow {
	font-family: var(--gc-sans);
	font-size: var(--gc-fs-eyebrow);
	font-weight: 400;
	letter-spacing: var(--gc-tracking-ultra);
	text-transform: uppercase;
	color: var(--gc-accent);
	margin: 0 0 1.5em;
	display: inline-flex;
	align-items: center;
	gap: 14px;
}

.gc-eyebrow::before {
	content: '';
	display: inline-block;
	width: 28px;
	height: 1px;
	background: currentColor;
	flex: 0 0 28px;
}

.gc-dek {
	font-family: var(--gc-serif);
	font-style: italic;
	font-weight: 300;
	font-size: var(--gc-fs-lede);
	line-height: 1.35;
	color: var(--gc-fg-soft);
	margin: 1em 0 0;
	max-width: 38ch;
}


/* =============================================================================
   04 — BUTTONS, HAIRLINES, ORNAMENTS
============================================================================= */

/* Editorial button */
.gc-button {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 18px;
	padding: 18px 0;
	font-family: var(--gc-sans);
	font-size: var(--gc-fs-small);
	font-weight: 400;
	letter-spacing: var(--gc-tracking-ultra);
	text-transform: uppercase;
	color: var(--gc-fg);
	transition: color var(--gc-dur) var(--gc-ease), gap var(--gc-dur) var(--gc-ease);
}

.gc-button__line {
	display: inline-block;
	height: 1px;
	width: 56px;
	background: currentColor;
	transition: width var(--gc-dur) var(--gc-ease), background var(--gc-dur) var(--gc-ease);
}

.gc-button:hover {
	color: var(--gc-accent);
	gap: 24px;
}

.gc-button:hover .gc-button__line {
	width: 88px;
}

.gc-button--outline {
	padding: 22px 36px;
	border: 1px solid var(--gc-rule);
}

.gc-button--outline:hover {
	border-color: var(--gc-accent);
}

.gc-button--solid {
	padding: 22px 40px;
	background: var(--gc-accent);
	color: var(--gc-ink);
}

.gc-button--solid .gc-button__line {
	background: var(--gc-ink);
}

.gc-button--solid:hover {
	background: var(--gc-fg);
	color: var(--gc-ink);
}

/* Hairline rule */
.gc-hairline {
	display: flex;
	align-items: center;
	gap: 18px;
	width: 100%;
	color: var(--gc-rule);
	margin: 2em 0;
}

.gc-hairline__line {
	flex: 1;
	height: 1px;
	background: currentColor;
}

.gc-hairline__mark {
	font-family: var(--gc-serif);
	font-size: 10px;
	color: var(--gc-accent);
}

/* Diamond ornament — Gilded Cage's signature mark */
.gc-ornament {
	display: inline-block;
	color: var(--gc-accent);
	font-size: 11px;
	letter-spacing: 0;
	margin-bottom: 24px;
	transform: scale(1);
	transition: transform var(--gc-dur) var(--gc-ease), opacity var(--gc-dur) var(--gc-ease);
}


/* =============================================================================
   05 — EDITORIAL CHROME (fixed header)
============================================================================= */
.gc-chrome {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	height: var(--gc-chrome-h);
	z-index: 1000;
	color: var(--gc-fg);
	background: linear-gradient(to bottom, rgba(14,12,10,0.45) 0%, transparent 100%);
	transition: background var(--gc-dur) var(--gc-ease), color var(--gc-dur) var(--gc-ease), border-color var(--gc-dur) var(--gc-ease);
	border-bottom: 1px solid transparent;
}

.gc-chrome[data-state="scrolled"] {
	background: rgba(14, 12, 10, 0.86);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	border-bottom-color: var(--gc-rule);
}

.gc-chrome[data-tone="paper"] {
	color: var(--gc-ink);
	background: linear-gradient(to bottom, rgba(250,246,238,0.55) 0%, transparent 100%);
}

.gc-chrome[data-tone="paper"][data-state="scrolled"] {
	background: rgba(250, 246, 238, 0.92);
	border-bottom-color: rgba(14, 12, 10, 0.12);
}

.gc-chrome__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 100%;
	padding: 0 var(--gc-gutter);
	gap: 40px;
}

.gc-chrome__brand {
	display: flex;
	align-items: center;
	gap: 18px;
	min-width: 0;
}

.gc-wordmark {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: inherit;
}

.gc-wordmark__diamond {
	color: var(--gc-accent);
	font-size: 9px;
	transform: translateY(-1px);
}

.gc-wordmark__text {
	font-family: var(--gc-script);
	font-size: 22px;
	font-weight: 400;
	letter-spacing: 0.05em;
	line-height: 1;
}

.gc-chrome__divider {
	display: inline-block;
	width: 1px;
	height: 14px;
	background: currentColor;
	opacity: 0.3;
}

.gc-chrome__tagline {
	font-family: var(--gc-sans);
	font-size: 10px;
	letter-spacing: var(--gc-tracking-ultra);
	text-transform: uppercase;
	opacity: 0.7;
	white-space: nowrap;
}

.gc-chrome__nav {
	flex: 1;
	display: flex;
	justify-content: center;
}

.gc-chrome__menu {
	display: flex;
	gap: 36px;
	list-style: none;
	padding: 0;
	margin: 0;
}

.gc-chrome__menu a {
	font-family: var(--gc-sans);
	font-size: 11px;
	letter-spacing: var(--gc-tracking-ultra);
	text-transform: uppercase;
	font-weight: 400;
	position: relative;
	padding: 4px 0;
	color: inherit;
	opacity: 0.78;
}

.gc-chrome__menu a::after {
	content: '';
	position: absolute;
	left: 0;
	right: 100%;
	bottom: -3px;
	height: 1px;
	background: var(--gc-accent);
	transition: right var(--gc-dur) var(--gc-ease);
}

.gc-chrome__menu a:hover,
.gc-chrome__menu li.is-active a {
	opacity: 1;
	color: var(--gc-accent);
}

.gc-chrome__menu li.is-active a::after,
.gc-chrome__menu a:hover::after {
	right: 0;
}

.gc-chrome__right {
	display: flex;
	align-items: center;
	gap: 22px;
}

.gc-chrome__enquire {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--gc-sans);
	font-size: 11px;
	letter-spacing: var(--gc-tracking-ultra);
	text-transform: uppercase;
	color: inherit;
}

.gc-chrome__enquire svg {
	transition: transform var(--gc-dur) var(--gc-ease);
}

.gc-chrome__enquire:hover {
	color: var(--gc-accent);
}

.gc-chrome__enquire:hover svg {
	transform: translateX(4px);
}

.gc-chrome__toggle {
	display: none;
	flex-direction: column;
	gap: 5px;
	width: 28px;
	padding: 8px 0;
}

.gc-chrome__toggle-line {
	height: 1px;
	background: currentColor;
	transition: transform var(--gc-dur) var(--gc-ease), opacity var(--gc-dur) var(--gc-ease);
	transform-origin: center;
}

.gc-chrome__toggle-line:nth-child(1) { width: 100%; }
.gc-chrome__toggle-line:nth-child(2) { width: 60%; align-self: flex-end; }

body.gc-menu-open .gc-chrome__toggle-line:nth-child(1) { transform: translateY(3px) rotate(45deg); width: 100%; }
body.gc-menu-open .gc-chrome__toggle-line:nth-child(2) { transform: translateY(-3px) rotate(-45deg); width: 100%; }

/* Progress bar */
.gc-chrome__progress {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 1px;
	overflow: hidden;
	pointer-events: none;
}

.gc-chrome__progress span {
	display: block;
	height: 100%;
	width: 0%;
	background: var(--gc-accent);
	transition: width 90ms linear;
}


/* =============================================================================
   06 — OVERLAY MENU
============================================================================= */
.gc-overlay-menu {
	position: fixed;
	inset: 0;
	z-index: 999;
	background: var(--gc-ink);
	color: var(--gc-bone);
	pointer-events: none;
	opacity: 0;
	transition: opacity var(--gc-dur-slow) var(--gc-ease);
}

body.gc-menu-open .gc-overlay-menu {
	pointer-events: auto;
	opacity: 1;
}

.gc-overlay-menu__inner {
	height: 100%;
	display: grid;
	grid-template-columns: 1.5fr 1fr;
	gap: 80px;
	padding: calc(var(--gc-chrome-h) + 80px) var(--gc-gutter) 80px;
	max-width: var(--gc-max);
	margin: 0 auto;
}

.gc-overlay-menu__label {
	font-family: var(--gc-sans);
	font-size: 10px;
	letter-spacing: var(--gc-tracking-ultra);
	text-transform: uppercase;
	color: var(--gc-accent);
	margin: 0 0 28px;
}

.gc-overlay-menu__list {
	list-style: none;
	padding: 0;
	margin: 0;
	counter-reset: ovmenu;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.gc-overlay-menu__list li {
	border-top: 1px solid var(--gc-rule);
}

.gc-overlay-menu__list li:last-child {
	border-bottom: 1px solid var(--gc-rule);
}

.gc-overlay-menu__list a {
	display: flex;
	align-items: baseline;
	gap: 36px;
	padding: 22px 0;
	color: inherit;
	transition: padding-left var(--gc-dur) var(--gc-ease), color var(--gc-dur) var(--gc-ease);
}

.gc-overlay-menu__list a:hover {
	padding-left: 24px;
	color: var(--gc-accent);
}

.gc-overlay-menu__num {
	font-family: var(--gc-sans);
	font-size: 11px;
	letter-spacing: var(--gc-tracking-wide);
	color: var(--gc-fg-soft);
	flex: 0 0 auto;
}

.gc-overlay-menu__name {
	font-family: var(--gc-serif);
	font-size: clamp(32px, 4vw, 56px);
	line-height: 1.05;
}

.gc-overlay-menu__col--meta {
	display: flex;
	flex-direction: column;
	gap: 18px;
	padding-top: 100px;
}

.gc-overlay-menu__address,
.gc-overlay-menu__email {
	font-family: var(--gc-serif);
	font-size: var(--gc-fs-lede);
	font-style: italic;
	line-height: 1.4;
	color: var(--gc-fg-soft);
}

.gc-overlay-menu__email {
	color: var(--gc-fg);
	transition: color var(--gc-dur) var(--gc-ease);
}

.gc-overlay-menu__email:hover {
	color: var(--gc-accent);
}


/* =============================================================================
   07 — SLIDE NAVIGATOR (right edge)
============================================================================= */
.gc-slide-nav {
	position: fixed;
	right: 32px;
	top: 50%;
	transform: translateY(-50%);
	z-index: 200;
	pointer-events: auto;
	mix-blend-mode: difference;
}

.gc-slide-nav__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 26px;
}

.gc-slide-nav__dot {
	position: relative;
	display: flex;
	align-items: center;
	gap: 14px;
	color: rgba(255, 255, 255, 0.55);
	transition: color var(--gc-dur) var(--gc-ease);
	cursor: pointer;
}

.gc-slide-nav__num {
	font-family: var(--gc-sans);
	font-size: 9px;
	letter-spacing: var(--gc-tracking-wide);
	min-width: 16px;
	text-align: right;
	font-feature-settings: 'tnum';
}

.gc-slide-nav__label {
	position: absolute;          /* out of flow — never shifts the numbers */
	right: calc(100% + 14px);    /* sits to the LEFT of the dot, off the content */
	top: 50%;
	font-family: var(--gc-sans);
	font-size: 10px;
	letter-spacing: var(--gc-tracking-ultra);
	text-transform: uppercase;
	opacity: 0;
	transform: translateY(-50%) translateX(-8px);
	transition: opacity var(--gc-dur) var(--gc-ease), transform var(--gc-dur) var(--gc-ease);
	pointer-events: none;
	white-space: nowrap;
}

.gc-slide-nav__tick {
	display: block;
	width: 18px;
	height: 1px;
	background: currentColor;
	transition: width var(--gc-dur) var(--gc-ease), background var(--gc-dur) var(--gc-ease);
}

.gc-slide-nav__dot:hover .gc-slide-nav__label {
	opacity: 1;
	transform: translateY(-50%) translateX(0);
}

.gc-slide-nav__dot:hover,
.gc-slide-nav__dot.is-active {
	color: rgba(255, 255, 255, 1);
}

.gc-slide-nav__dot.is-active .gc-slide-nav__tick {
	width: 40px;
	background: var(--gc-accent);
}


/* =============================================================================
   08 — PARALLAX ARCHITECTURE
============================================================================= */
.gc-main {
	position: relative;
	display: block;
}

.gc-parallax-root {
	position: relative;
	width: 100%;
}

.gc-slide {
	position: relative;
	min-height: 100vh;
	width: 100%;
	display: flex;
	overflow: hidden;
	isolation: isolate;
	color: var(--gc-fg);
	background: var(--gc-bg);
	padding: calc(var(--gc-chrome-h) + clamp(32px, 6vh, 80px)) var(--gc-gutter) clamp(40px, 6vh, 100px);
	scroll-snap-align: start;
}

/* Tone variants */
.gc-tone-ink {
	--gc-bg: var(--gc-ink);
	--gc-fg: var(--gc-bone);
	--gc-fg-soft: rgba(243, 237, 226, 0.66);
	--gc-fg-faint: rgba(243, 237, 226, 0.35);
	--gc-rule: rgba(243, 237, 226, 0.16);
}

.gc-tone-paper {
	--gc-bg: var(--gc-paper);
	--gc-fg: var(--gc-ink);
	--gc-fg-soft: rgba(14, 12, 10, 0.7);
	--gc-fg-faint: rgba(14, 12, 10, 0.4);
	--gc-rule: rgba(14, 12, 10, 0.14);
}

.gc-tone-patina {
	--gc-bg: var(--gc-patina);
	--gc-fg: var(--gc-bone);
	--gc-fg-soft: rgba(243, 237, 226, 0.7);
	--gc-rule: rgba(243, 237, 226, 0.18);
}

.gc-tone-clay {
	--gc-bg: var(--gc-clay);
	--gc-fg: var(--gc-bone);
	--gc-fg-soft: rgba(243, 237, 226, 0.72);
	--gc-rule: rgba(243, 237, 226, 0.22);
}

/* Slide background — parallax-shifted */
.gc-slide__bg {
	position: absolute;
	inset: -15% 0 -15%;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	z-index: 0;
	will-change: transform;
	transform: translate3d(0, 0, 0);
	pointer-events: none;
}

.gc-slide__veil {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background:
		radial-gradient(ellipse at 30% 40%, rgba(14,12,10,0.35) 0%, rgba(14,12,10,0.78) 100%),
		linear-gradient(to bottom, rgba(14,12,10,0.4) 0%, rgba(14,12,10,0.65) 100%);
}

.gc-tone-paper .gc-slide__veil {
	background:
		linear-gradient(to bottom, rgba(250,246,238,0.55) 0%, rgba(250,246,238,0.86) 100%);
}

.gc-tone-patina .gc-slide__veil {
	background:
		linear-gradient(to bottom, rgba(74,89,73,0.55) 0%, rgba(40,52,40,0.86) 100%);
}

.gc-slide__inner {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: var(--gc-max);
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: calc(100vh - var(--gc-chrome-h) - clamp(72px, 12vh, 180px));
}

/* Slide alignment */
.gc-align-left   .gc-slide__inner { align-items: flex-start; text-align: left; }
.gc-align-center .gc-slide__inner { align-items: center; text-align: center; }
.gc-align-center .gc-eyebrow { justify-content: center; }
.gc-align-right  .gc-slide__inner { align-items: flex-end; text-align: right; }

/* Keep slide content clear of the fixed right-edge navigator so the 01–06
   marks never overlap text. Right gutter for every alignment; centered slides
   also get a matching left gutter so they stay visually centered. Only applies
   on widths where the navigator is actually shown (see responsive section). */
@media (min-width: 1121px) {
	.gc-slide__inner { padding-right: clamp(120px, 11vw, 170px); }
	.gc-align-center .gc-slide__inner { padding-left: clamp(120px, 11vw, 170px); }
}

.gc-slide__heading {
	max-width: 22ch;
	margin-bottom: 2em;
}

.gc-align-center .gc-slide__heading { margin-left: auto; margin-right: auto; }

.gc-slide__title {
	font-size: var(--gc-fs-h2);
	margin: 0;
	font-weight: 400;
	letter-spacing: -0.015em;
	line-height: 1.04;
}

.gc-slide__title em {
	font-family: var(--gc-script);
	font-style: normal;
	font-weight: 400;
	letter-spacing: 0.01em;
	color: var(--gc-accent);
}

.gc-slide__cta {
	margin-top: 2em;
}

/* Slide entrance — staggered fade-rise driven by IntersectionObserver.
   Gated behind .gc-js: if JavaScript is blocked, deferred, or broken (e.g. by an
   over-aggressive optimization plugin), the `gc-js` class is never added and
   content stays fully visible. Progressive enhancement — never hide content
   unless we're certain JS can reveal it again. */
.gc-js .gc-slide__inner > * {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity var(--gc-dur-slow) var(--gc-ease-out), transform var(--gc-dur-slow) var(--gc-ease-out);
}

.gc-js .gc-slide.is-visible .gc-slide__inner > *:nth-child(1) { transition-delay: 0ms; }
.gc-js .gc-slide.is-visible .gc-slide__inner > *:nth-child(2) { transition-delay: 120ms; }
.gc-js .gc-slide.is-visible .gc-slide__inner > *:nth-child(3) { transition-delay: 240ms; }
.gc-js .gc-slide.is-visible .gc-slide__inner > *:nth-child(4) { transition-delay: 360ms; }
.gc-js .gc-slide.is-visible .gc-slide__inner > * {
	opacity: 1;
	transform: translateY(0);
}

/* Accessibility — skip links & screen-reader text.
   Genesis (and the header) output skip links using these classes; without
   this rule they render as visible text at the top of the page. Hidden by
   default, revealed as a tasteful gilt chip on keyboard focus. */
.screen-reader-text,
.screen-reader-shortcut,
.gc-skip-link,
.genesis-skip-link a {
	position: absolute !important;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	overflow: hidden;
	white-space: nowrap;
	word-wrap: normal !important;
}

.screen-reader-text:focus,
.screen-reader-shortcut:focus,
.gc-skip-link:focus,
.genesis-skip-link a:focus {
	position: fixed !important;
	top: 14px;
	left: 14px;
	z-index: 100000;
	clip: auto;
	clip-path: none;
	width: auto;
	height: auto;
	margin: 0;
	padding: 14px 24px;
	background: var(--gc-ink, #0e0c0a);
	color: var(--gc-bone, #f3ede2);
	border: 1px solid var(--gc-accent, #b08d3e);
	font-family: var(--gc-sans, sans-serif);
	font-size: 12px;
	letter-spacing: var(--gc-tracking-wide, 0.18em);
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
}

/* Hide the empty Genesis skip-link list wrapper when it has nothing to focus */
.genesis-skip-link { margin: 0; padding: 0; list-style: none; }


/* =============================================================================
   09 — SLIDE: HERO
============================================================================= */
.gc-slide--hero,
.gc-slide--full {
	min-height: 100vh;
	padding-top: 0;
	padding-bottom: 0;
}

.gc-slide--hero .gc-slide__veil,
.gc-slide--full .gc-slide__veil {
	background:
		linear-gradient(to bottom, rgba(14,12,10,0.25) 0%, rgba(14,12,10,0.55) 60%, rgba(14,12,10,0.85) 100%);
}

.gc-hero {
	width: 100%;
	min-height: 100vh;
	display: grid;
	place-content: center;
	text-align: center;
	padding: var(--gc-chrome-h) 0 0;
	gap: 30px;
}

.gc-hero__locale {
	display: inline-flex;
	align-items: center;
	gap: 22px;
	justify-self: center;
	font-family: var(--gc-sans);
	font-size: 11px;
	letter-spacing: var(--gc-tracking-ultra);
	text-transform: uppercase;
	color: var(--gc-bone);
	margin: 0;
}

.gc-hero__locale-line {
	display: inline-block;
	width: 44px;
	height: 1px;
	background: var(--gc-accent);
}

.gc-hero__title {
	font-family: var(--gc-serif);
	font-weight: 300;
	font-size: var(--gc-fs-display);
	line-height: 0.94;
	margin: 0;
	color: var(--gc-bone);
	letter-spacing: -0.025em;
	max-width: 14ch;
	justify-self: center;
}

.gc-hero__title em {
	font-family: var(--gc-script);
	font-style: normal;
	color: var(--gc-accent);
	letter-spacing: 0.01em;
}

.gc-hero__lede {
	font-family: var(--gc-serif);
	font-style: italic;
	font-size: var(--gc-fs-lede);
	line-height: 1.4;
	color: var(--gc-fg-soft);
	max-width: 42ch;
	margin: 8px auto 0;
}

.gc-hero__cta {
	margin-top: 14px;
}

.gc-hero__scroll {
	position: absolute;
	left: 50%;
	bottom: 36px;
	transform: translateX(-50%);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
	color: var(--gc-fg-soft);
}

.gc-hero__scroll-label {
	font-family: var(--gc-sans);
	font-size: 9px;
	letter-spacing: var(--gc-tracking-ultra);
	text-transform: uppercase;
}

.gc-hero__scroll-line {
	display: block;
	width: 1px;
	height: 56px;
	background: currentColor;
	position: relative;
	overflow: hidden;
}

.gc-hero__scroll-line::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	top: -100%;
	height: 50%;
	background: var(--gc-accent);
	animation: gcDripDown 2.6s var(--gc-ease) infinite;
}

@keyframes gcDripDown {
	0%   { top: -50%; }
	100% { top: 100%; }
}


/* =============================================================================
   10 — SLIDE: EDITORIAL
============================================================================= */
.gc-editorial {
	width: 100%;
	display: flex;
	flex-direction: column;
	gap: clamp(40px, 5vw, 80px);
}

.gc-editorial__head {
	max-width: 28ch;
}

.gc-editorial__body {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: clamp(40px, 5vw, 100px);
	align-items: start;
}

.gc-align-right .gc-editorial__body {
	grid-template-columns: 1fr 1.4fr;
	direction: rtl;
}
.gc-align-right .gc-editorial__body > * { direction: ltr; }

.gc-editorial__prose {
	font-family: var(--gc-serif);
	font-size: var(--gc-fs-lede);
	font-weight: 300;
	line-height: 1.5;
	color: var(--gc-fg-soft);
	max-width: 38ch;
}

.gc-editorial__prose p:first-child {
	font-family: var(--gc-serif);
	font-size: clamp(22px, 1.8vw, 30px);
	font-style: italic;
	font-weight: 300;
	color: var(--gc-fg);
	line-height: 1.4;
	margin-bottom: 1.2em;
	position: relative;
	padding-left: 28px;
	border-left: 1px solid var(--gc-accent);
}

.gc-editorial__prose blockquote {
	margin: 1.5em 0;
	padding-left: 28px;
	border-left: 1px solid var(--gc-accent);
	font-style: italic;
	font-size: clamp(20px, 1.6vw, 28px);
	color: var(--gc-fg);
}

.gc-editorial__figure {
	margin: 0;
	position: relative;
}

.gc-editorial__figure img {
	width: 100%;
	height: auto;
	display: block;
	filter: contrast(1.04) saturate(0.95);
}

.gc-editorial__caption {
	font-family: var(--gc-sans);
	font-size: 11px;
	letter-spacing: var(--gc-tracking-wide);
	text-transform: uppercase;
	color: var(--gc-fg-soft);
	margin-top: 14px;
	display: flex;
	align-items: center;
	gap: 14px;
}

.gc-editorial__caption::before {
	content: '';
	width: 20px;
	height: 1px;
	background: var(--gc-accent);
	display: inline-block;
}


/* =============================================================================
   11 — SLIDE: SERVICES
============================================================================= */
.gc-services {
	width: 100%;
	display: flex;
	flex-direction: column;
	gap: clamp(40px, 5vw, 80px);
}

.gc-services__head {
	max-width: 32ch;
}

.gc-services__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0;
}

.gc-services__item {
	display: grid;
	grid-template-columns: 80px 1fr;
	gap: clamp(24px, 4vw, 60px);
	padding: clamp(24px, 3.5vw, 48px) 0;
	border-top: 1px solid var(--gc-rule);
	position: relative;
	transition: padding-left var(--gc-dur) var(--gc-ease);
}

.gc-services__item:last-child {
	border-bottom: 1px solid var(--gc-rule);
}

.gc-services__item:hover {
	padding-left: 14px;
}

.gc-services__num {
	font-family: var(--gc-sans);
	font-size: 13px;
	letter-spacing: var(--gc-tracking-wide);
	color: var(--gc-accent);
	font-feature-settings: 'tnum';
	padding-top: 6px;
}

.gc-services__title {
	font-family: var(--gc-serif);
	font-size: clamp(26px, 2.4vw, 42px);
	font-weight: 400;
	margin: 0 0 0.5em;
	line-height: 1.05;
	color: var(--gc-fg);
}

.gc-services__desc {
	font-family: var(--gc-serif);
	font-weight: 300;
	font-size: var(--gc-fs-body);
	line-height: 1.6;
	color: var(--gc-fg-soft);
	max-width: 60ch;
}

.gc-services__desc p:last-child { margin-bottom: 0; }


/* =============================================================================
   12 — SLIDE: PORTFOLIO
============================================================================= */
.gc-portfolio {
	width: 100%;
	display: flex;
	flex-direction: column;
	gap: clamp(40px, 5vw, 70px);
}

.gc-portfolio__head {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
	align-items: end;
}

.gc-portfolio__intro {
	font-family: var(--gc-serif);
	font-style: italic;
	font-size: var(--gc-fs-lede);
	line-height: 1.4;
	color: var(--gc-fg-soft);
	margin: 0;
	max-width: 40ch;
	justify-self: end;
}

.gc-portfolio__grid {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: clamp(20px, 2.5vw, 36px);
}

.gc-portfolio__item {
	position: relative;
	overflow: hidden;
}

.gc-portfolio__item--square { grid-column: span 2; aspect-ratio: 4 / 5; }
.gc-portfolio__item--tall   { grid-column: span 2; aspect-ratio: 3 / 4; margin-top: 60px; }
.gc-portfolio__item--wide   { grid-column: span 2; aspect-ratio: 5 / 4; }

.gc-portfolio__link {
	display: block;
	position: relative;
	height: 100%;
	color: inherit;
	overflow: hidden;
}

.gc-portfolio__image {
	position: absolute;
	inset: -8%;
	background-size: cover;
	background-position: center;
	transition: transform 1.2s var(--gc-ease), filter var(--gc-dur) var(--gc-ease);
	filter: saturate(0.85) contrast(1.05);
	will-change: transform;
}

.gc-portfolio__veil {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(14,12,10,0.7) 0%, rgba(14,12,10,0) 50%);
	pointer-events: none;
	z-index: 1;
}

.gc-portfolio__caption {
	position: absolute;
	left: 24px;
	right: 24px;
	bottom: 24px;
	z-index: 2;
	color: var(--gc-bone);
	transform: translateY(8px);
	opacity: 0.9;
	transition: transform var(--gc-dur) var(--gc-ease), opacity var(--gc-dur) var(--gc-ease);
}

.gc-portfolio__meta {
	font-family: var(--gc-sans);
	font-size: 10px;
	letter-spacing: var(--gc-tracking-ultra);
	text-transform: uppercase;
	margin: 0 0 6px;
	color: var(--gc-accent);
}

.gc-portfolio__title {
	font-family: var(--gc-serif);
	font-size: clamp(20px, 1.8vw, 28px);
	font-weight: 400;
	margin: 0;
	line-height: 1.1;
}

.gc-portfolio__link:hover .gc-portfolio__image {
	transform: scale(1.06);
	filter: saturate(1) contrast(1.08);
}

.gc-portfolio__link:hover .gc-portfolio__caption {
	transform: translateY(0);
	opacity: 1;
}


/* =============================================================================
   13 — SLIDE: TESTIMONIALS
============================================================================= */
.gc-quotes {
	width: 100%;
	display: flex;
	flex-direction: column;
	gap: clamp(40px, 5vw, 70px);
	align-items: center;
	text-align: center;
}

.gc-quotes__head {
	position: relative;
	max-width: 38ch;
	margin: 0 auto;
}

.gc-quotes__mark {
	font-family: var(--gc-serif);
	font-size: clamp(120px, 14vw, 220px);
	line-height: 0.7;
	color: var(--gc-accent);
	opacity: 0.18;
	position: absolute;
	top: -40px;
	left: 50%;
	transform: translateX(-50%);
	pointer-events: none;
	font-style: italic;
}

.gc-quotes__head .gc-eyebrow { justify-content: center; }
.gc-quotes__head .gc-slide__title { font-size: var(--gc-fs-h2); }

.gc-quotes__rotator {
	position: relative;
	width: 100%;
	max-width: 76ch;
	min-height: 240px;
}

.gc-quotes__item {
	position: absolute;
	inset: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 28px;
	opacity: 0;
	transform: translateY(20px);
	transition: opacity var(--gc-dur-slow) var(--gc-ease), transform var(--gc-dur-slow) var(--gc-ease);
	pointer-events: none;
}

.gc-quotes__item.is-active {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
	position: relative;
}

.gc-quotes__text {
	font-family: var(--gc-serif);
	font-style: italic;
	font-weight: 300;
	font-size: clamp(22px, 2.2vw, 38px);
	line-height: 1.4;
	color: var(--gc-fg);
	margin: 0;
	max-width: 28ch;
}

.gc-quotes__text p { margin: 0; }

.gc-quotes__cite {
	font-family: var(--gc-sans);
	font-size: 11px;
	letter-spacing: var(--gc-tracking-ultra);
	text-transform: uppercase;
	color: var(--gc-accent);
	display: flex;
	align-items: center;
	gap: 14px;
}

.gc-quotes__cite::before,
.gc-quotes__cite::after {
	content: '';
	width: 20px;
	height: 1px;
	background: currentColor;
}

.gc-quotes__nav {
	display: flex;
	align-items: center;
	gap: 28px;
	margin-top: 30px;
}

.gc-quotes__nav-btn {
	color: var(--gc-fg-soft);
	padding: 8px;
	transition: color var(--gc-dur) var(--gc-ease), transform var(--gc-dur) var(--gc-ease);
}

.gc-quotes__nav-btn:hover {
	color: var(--gc-accent);
}

.gc-quotes__nav-btn[data-quote-prev]:hover { transform: translateX(-4px); }
.gc-quotes__nav-btn[data-quote-next]:hover { transform: translateX(4px); }

.gc-quotes__dots {
	display: flex;
	gap: 10px;
}

.gc-quotes__dot {
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--gc-fg-faint);
	transition: background var(--gc-dur) var(--gc-ease), width var(--gc-dur) var(--gc-ease);
}

.gc-quotes__dot.is-active {
	background: var(--gc-accent);
	width: 24px;
	border-radius: 4px;
}


/* =============================================================================
   14 — SLIDE: FEATURE
============================================================================= */
.gc-feature {
	width: 100%;
	display: flex;
	flex-direction: column;
	gap: clamp(30px, 4vw, 60px);
	align-items: center;
	text-align: center;
}

.gc-feature__figure {
	margin: 0;
	width: min(900px, 100%);
}

.gc-feature__image-wrap {
	overflow: hidden;
	border: 1px solid var(--gc-rule);
}

.gc-feature__image {
	width: 100%;
	height: auto;
	display: block;
	filter: contrast(1.05) saturate(0.92);
}

.gc-feature__caption {
	margin-top: 28px;
}

.gc-feature__title {
	font-size: clamp(28px, 3vw, 56px);
	margin: 0 0 8px;
	font-weight: 400;
}

.gc-feature__dek {
	font-family: var(--gc-sans);
	font-size: 11px;
	letter-spacing: var(--gc-tracking-ultra);
	text-transform: uppercase;
	color: var(--gc-accent);
	margin: 0;
}

.gc-feature__prose {
	max-width: 60ch;
	font-family: var(--gc-serif);
	font-style: italic;
	font-size: var(--gc-fs-lede);
	line-height: 1.5;
	color: var(--gc-fg-soft);
}


/* =============================================================================
   15 — SLIDE: BIOGRAPHY
============================================================================= */
.gc-bio {
	width: 100%;
	display: grid;
	grid-template-columns: 1fr 1.3fr;
	gap: clamp(40px, 6vw, 100px);
	align-items: center;
}

.gc-bio__portrait {
	position: relative;
	aspect-ratio: 3 / 4;
	overflow: hidden;
}

.gc-bio__portrait img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: contrast(1.06) saturate(0.9);
}

.gc-bio__portrait-mark {
	position: absolute;
	bottom: 24px;
	right: 24px;
	color: var(--gc-accent);
	font-family: var(--gc-serif);
	font-size: 14px;
	background: var(--gc-ink);
	padding: 12px;
	line-height: 1;
}

.gc-bio__title {
	font-size: clamp(40px, 4.5vw, 76px);
	margin: 0 0 0.7em;
	font-weight: 300;
	line-height: 1.02;
	letter-spacing: -0.018em;
}

.gc-bio__title em {
	font-family: var(--gc-script);
	color: var(--gc-accent);
	font-style: normal;
}

.gc-bio__prose {
	font-family: var(--gc-serif);
	font-weight: 300;
	font-size: var(--gc-fs-body);
	line-height: 1.7;
	color: var(--gc-fg-soft);
	max-width: 52ch;
}

.gc-bio__prose p { margin-bottom: 1.2em; }

.gc-bio__sig {
	margin-top: 2em;
	padding-top: 1.5em;
	border-top: 1px solid var(--gc-rule);
	max-width: 40ch;
}

.gc-bio__sig-name {
	font-family: var(--gc-script);
	font-size: 28px;
	margin: 0 0 4px;
	color: var(--gc-fg);
}

.gc-bio__sig-title {
	font-family: var(--gc-sans);
	font-size: 10px;
	letter-spacing: var(--gc-tracking-ultra);
	text-transform: uppercase;
	color: var(--gc-accent);
	margin: 0;
}


/* =============================================================================
   16 — SLIDE: CONTACT
============================================================================= */
.gc-contact {
	width: 100%;
	display: grid;
	grid-template-columns: 0.85fr 1fr;
	gap: clamp(50px, 7vw, 120px);
	align-items: start;
}

.gc-contact__prose {
	font-family: var(--gc-serif);
	font-size: var(--gc-fs-lede);
	font-style: italic;
	font-weight: 300;
	line-height: 1.5;
	color: var(--gc-fg-soft);
	margin: 2em 0;
}

.gc-contact__meta {
	margin: 2em 0 0;
	padding-top: 2em;
	border-top: 1px solid var(--gc-rule);
	display: grid;
	grid-template-columns: max-content 1fr;
	gap: 20px 40px;
}

.gc-contact__meta dt {
	font-family: var(--gc-sans);
	font-size: 10px;
	letter-spacing: var(--gc-tracking-ultra);
	text-transform: uppercase;
	color: var(--gc-accent);
	margin: 0;
}

.gc-contact__meta dd {
	font-family: var(--gc-serif);
	font-size: var(--gc-fs-body);
	margin: 0;
	color: var(--gc-fg);
}

.gc-contact__meta a {
	color: inherit;
	border-bottom: 1px solid var(--gc-rule);
	transition: border-color var(--gc-dur) var(--gc-ease), color var(--gc-dur) var(--gc-ease);
}

.gc-contact__meta a:hover {
	color: var(--gc-accent);
	border-bottom-color: var(--gc-accent);
}

/* Enquiry form */
.gc-enquiry {
	display: flex;
	flex-direction: column;
	gap: 24px;
	padding: clamp(28px, 3vw, 48px);
	border: 1px solid var(--gc-rule);
	background: rgba(255, 255, 255, 0.02);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	position: relative;
}

/* Gilt corner ticks — editorial mark on the form box */
.gc-enquiry::before,
.gc-enquiry::after {
	content: '';
	position: absolute;
	width: 14px;
	height: 14px;
	border: 1px solid var(--gc-accent);
	pointer-events: none;
}
.gc-enquiry::before { top: -1px; left: -1px; border-right: 0; border-bottom: 0; }
.gc-enquiry::after  { bottom: -1px; right: -1px; border-left: 0; border-top: 0; }

/* Keep autofill on the cream-on-charcoal palette */
.gc-field input:-webkit-autofill,
.gc-field input:-webkit-autofill:hover,
.gc-field input:-webkit-autofill:focus {
	-webkit-text-fill-color: var(--gc-fg);
	-webkit-box-shadow: 0 0 0 1000px var(--gc-charcoal) inset;
	transition: background-color 5000s ease-in-out 0s;
}

.gc-enquiry__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}

.gc-enquiry__honeypot {
	position: absolute !important;
	left: -9999px;
}

.gc-field {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.gc-field label {
	font-family: var(--gc-sans);
	font-size: 10px;
	letter-spacing: var(--gc-tracking-ultra);
	text-transform: uppercase;
	color: var(--gc-fg-soft);
}

.gc-field input,
.gc-field textarea,
.gc-field select {
	width: 100%;
	font-family: var(--gc-serif);
	font-size: var(--gc-fs-body);
	font-weight: 300;
	color: var(--gc-fg);
	background: transparent;
	border: 0;
	border-bottom: 1px solid var(--gc-rule);
	padding: 12px 0;
	transition: border-color var(--gc-dur) var(--gc-ease);
}

.gc-field select {
	appearance: none;
	background-image: linear-gradient(45deg, transparent 50%, var(--gc-accent) 50%), linear-gradient(135deg, var(--gc-accent) 50%, transparent 50%);
	background-position: calc(100% - 14px) 18px, calc(100% - 8px) 18px;
	background-size: 6px 6px;
	background-repeat: no-repeat;
}

.gc-field select option { background: var(--gc-charcoal); color: var(--gc-fg); }

.gc-field textarea { resize: vertical; min-height: 120px; }

.gc-field input:focus,
.gc-field textarea:focus,
.gc-field select:focus {
	outline: none;
	border-color: var(--gc-accent);
}

.gc-enquiry button[type="submit"] {
	align-self: flex-start;
	margin-top: 12px;
}

.gc-enquiry__status {
	font-family: var(--gc-serif);
	font-style: italic;
	font-size: 14px;
	color: var(--gc-accent);
	min-height: 1.5em;
}


/* =============================================================================
   17 — SLIDE: COLOPHON (footer slide)
============================================================================= */
.gc-slide--colophon {
	min-height: 70vh;
}

.gc-end {
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 22px;
	padding: 40px 0;
}

.gc-end__mark {
	font-family: var(--gc-serif);
	font-size: 18px;
	color: var(--gc-accent);
	margin-bottom: 10px;
}

.gc-end__wordmark {
	font-family: var(--gc-script);
	font-size: clamp(56px, 8vw, 140px);
	font-weight: 400;
	margin: 0;
	letter-spacing: 0.04em;
	color: var(--gc-fg);
	line-height: 1;
}

.gc-end__tagline {
	font-family: var(--gc-sans);
	font-size: 11px;
	letter-spacing: var(--gc-tracking-ultra);
	text-transform: uppercase;
	color: var(--gc-accent);
	margin: 0;
}

.gc-end__prose {
	max-width: 50ch;
	font-family: var(--gc-serif);
	font-style: italic;
	font-weight: 300;
	font-size: var(--gc-fs-lede);
	color: var(--gc-fg-soft);
	margin: 12px 0 24px;
}

.gc-end__copy {
	font-family: var(--gc-sans);
	font-size: 11px;
	letter-spacing: var(--gc-tracking-wide);
	color: var(--gc-fg-faint);
	margin-top: 30px;
}


/* =============================================================================
   18 — STANDALONE SINGLE PAGE
============================================================================= */
.gc-page-standalone {
	background: var(--gc-paper);
	color: var(--gc-ink);
}

.gc-page-standalone .gc-chrome { color: var(--gc-ink); }

.gc-page-hero {
	position: relative;
	min-height: 70vh;
	display: flex;
	align-items: flex-end;
	padding: calc(var(--gc-chrome-h) + 60px) var(--gc-gutter) 80px;
	overflow: hidden;
	isolation: isolate;
	background: var(--gc-bg);
	color: var(--gc-fg);
}

.gc-page-hero__bg {
	position: absolute;
	inset: -10%;
	background-size: cover;
	background-position: center;
	z-index: 0;
	will-change: transform;
}

.gc-page-hero__veil {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(to bottom, rgba(14,12,10,0.3) 0%, rgba(14,12,10,0.85) 100%);
}

.gc-page-hero__inner {
	position: relative;
	z-index: 2;
	max-width: var(--gc-max);
	margin: 0 auto;
	width: 100%;
	color: var(--gc-bone);
}

.gc-page-hero__title {
	font-size: var(--gc-fs-h1);
	margin: 0;
	max-width: 18ch;
	font-weight: 300;
	color: var(--gc-bone);
}

.gc-single-page {
	max-width: 78ch;
	margin: 0 auto;
	padding: clamp(60px, 8vw, 120px) var(--gc-gutter);
	font-family: var(--gc-serif);
	font-size: var(--gc-fs-lede);
	line-height: 1.65;
	color: var(--gc-ink);
}

.gc-single-page .entry-content > * + * { margin-top: 1.2em; }
.gc-single-page h2, .gc-single-page h3 { color: var(--gc-ink); margin-top: 2em; }


/* =============================================================================
   19 — SITE FOOTER (non-front pages)
============================================================================= */
.gc-colophon {
	background: var(--gc-ink);
	color: var(--gc-bone);
	padding: clamp(40px, 5vw, 80px) var(--gc-gutter);
}

.gc-colophon__inner {
	max-width: var(--gc-max);
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 2fr 1fr;
	align-items: center;
	gap: 40px;
}

.gc-colophon__brand {
	display: flex;
	align-items: center;
	gap: 10px;
}

.gc-colophon__copy {
	text-align: center;
	font-family: var(--gc-sans);
	font-size: 11px;
	letter-spacing: var(--gc-tracking-wide);
	color: var(--gc-fg-soft);
}

.gc-colophon__social-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 22px;
	justify-content: flex-end;
}

.gc-colophon__social-list a {
	font-family: var(--gc-sans);
	font-size: 10px;
	letter-spacing: var(--gc-tracking-ultra);
	text-transform: uppercase;
	color: var(--gc-fg-soft);
}

.gc-colophon__social-list a:hover {
	color: var(--gc-accent);
}


/* =============================================================================
   20 — RESPONSIVE
============================================================================= */
@media (max-width: 1120px) {
	.gc-slide-nav { display: none; }
}

@media (max-width: 960px) {
	.gc-chrome__nav { display: none; }
	.gc-chrome__enquire { display: none; }
	.gc-chrome__toggle { display: flex; }
	.gc-slide-nav { display: none; }

	.gc-overlay-menu__inner {
		grid-template-columns: 1fr;
		gap: 60px;
		padding-top: calc(var(--gc-chrome-h) + 50px);
	}
	.gc-overlay-menu__col--meta { padding-top: 0; }

	.gc-editorial__body,
	.gc-portfolio__head,
	.gc-contact,
	.gc-bio {
		grid-template-columns: 1fr;
		gap: 40px;
	}

	.gc-portfolio__intro { justify-self: start; }

	.gc-portfolio__grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.gc-portfolio__item--square,
	.gc-portfolio__item--tall,
	.gc-portfolio__item--wide {
		grid-column: span 1;
		margin-top: 0;
	}

	.gc-services__item {
		grid-template-columns: 60px 1fr;
		gap: 20px;
	}

	.gc-enquiry__row { grid-template-columns: 1fr; }

	.gc-colophon__inner {
		grid-template-columns: 1fr;
		text-align: center;
		gap: 24px;
	}
	.gc-colophon__brand, .gc-colophon__social-list { justify-content: center; justify-self: center; }
}

@media (max-width: 640px) {
	.gc-hero__title { font-size: clamp(48px, 14vw, 96px); }
	.gc-slide__title { font-size: clamp(34px, 9vw, 56px); }

	.gc-portfolio__grid {
		grid-template-columns: 1fr;
	}

	.gc-bio__title { font-size: clamp(34px, 9vw, 56px); }

	.gc-overlay-menu__name { font-size: clamp(28px, 7vw, 42px); }

	.gc-end__wordmark { font-size: clamp(44px, 14vw, 80px); }
}


/* =============================================================================
   21 — REDUCED MOTION & PRINT
============================================================================= */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.001ms !important;
		transition-duration: 0.001ms !important;
	}
	.gc-slide__bg { transform: none !important; }
	[data-parallax-layer] { transform: none !important; }
	.gc-slide__inner > * {
		opacity: 1 !important;
		transform: none !important;
	}
}

@media print {
	.gc-chrome, .gc-overlay-menu, .gc-slide-nav, .gc-slide__bg, .gc-slide__veil { display: none !important; }
	.gc-slide { min-height: auto; page-break-after: always; padding: 20px; }
	body { background: white; color: black; }
}
