/* capco — design tokens + self-hosted fonts (source of truth: docs/design-system.md)
   Provenance: [M] measured from XD comps 2026-08-19 (±8 per channel) — replace with XD dev-spec values. */

/* ── Fonts (self-hosted, no CDN — GDPR) ─────────────────────────────────── */
@font-face { font-family: "Domaine Display"; src: url("../fonts/DomaineDisp-Semibold.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Rethink Sans"; src: url("../fonts/RethinkSans-Regular.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Rethink Sans"; src: url("../fonts/RethinkSans-Italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Rethink Sans"; src: url("../fonts/RethinkSans-Medium.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Rethink Sans"; src: url("../fonts/RethinkSans-MediumItalic.woff2") format("woff2"); font-weight: 500; font-style: italic; font-display: swap; }
@font-face { font-family: "Rethink Sans"; src: url("../fonts/RethinkSans-SemiBold.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Rethink Sans"; src: url("../fonts/RethinkSans-SemiBoldItalic.woff2") format("woff2"); font-weight: 600; font-style: italic; font-display: swap; }
@font-face { font-family: "Rethink Sans"; src: url("../fonts/RethinkSans-Bold.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Rethink Sans"; src: url("../fonts/RethinkSans-BoldItalic.woff2") format("woff2"); font-weight: 700; font-style: italic; font-display: swap; }
@font-face { font-family: "Rethink Sans"; src: url("../fonts/RethinkSans-ExtraBold.woff2") format("woff2"); font-weight: 800; font-style: normal; font-display: swap; }
@font-face { font-family: "Rethink Sans"; src: url("../fonts/RethinkSans-ExtraBoldItalic.woff2") format("woff2"); font-weight: 800; font-style: italic; font-display: swap; }

/* ── Tokens ────────────────────────────────────────────────────────────── */
:root {
	--capco-green: #33B47C;        /* [M] brand/green — logo, buttons, footer */
	--capco-orange: #E67B4F;       /* [M] brand/orange — section labels, inner headings */
	--capco-teal: #2F8494;         /* [M] news overlay: In-build */
	--capco-olive: #6B925B;        /* [M] news overlay: Events & Awards */
	--capco-ink: #2E2E2E;          /* [A] body text — confirm in XD */
	--capco-black: #0A0A0A;        /* [A] cinematic mode bg / caption chips */
	--capco-white: #FFFFFF;
	--capco-map-sage: #BFCFC6;     /* [M] */
	--capco-map-slate: #5C6A62;    /* [M] */

	--capco-font-display: "Domaine Display", Georgia, serif;
	--capco-font-sans: "Rethink Sans", system-ui, -apple-system, sans-serif;

	--capco-content-max: 1640px;   /* [M] ≈1646 on 1920 canvas */
	--capco-space-unit: 8px;
	--capco-radius-pill: 999px;
	--capco-radius-card: 8px;      /* = --capco-r-img (designer 2026-09-18: every image corner is 8px) */
	--capco-r-img: 8px;

	--capco-header-transition: 320ms ease; /* cinematic (black) → catalogue (white) */

	/* Motion tokens — the CAP.CO animation patterns (docs/design-system.md §6) */
	--capco-ease-out: cubic-bezier(.22,.61,.36,1);      /* reveal / panel */
	--capco-ease-cozy: cubic-bezier(.34,1.56,.64,1);    /* "cozy" toggles (+ → ×), slight overshoot */
	--capco-t-fast: 300ms;                              /* reveal, hover, panel */
	--capco-t-cozy: 450ms;                              /* cozy toggle */
	--capco-shift: 10px;                                /* reveal travel (from outside in) */
	--capco-stagger: 60ms;                              /* list stagger */
	--capco-t-reveal: 420ms;                            /* reveal (storytelling entry): fade + travel, ease-out */
	--capco-reveal-x: 16px;                             /* reveal lateral travel, from the outside in (24px on phones, below) */
	--capco-reveal-y: 12px;                             /* reveal vertical travel (island chrome: section labels, CTAs; centred elements) */
	--capco-mint-tint: #E4FCF0;                         /* [M] mega-menu item hover */
}
@media (max-width: 767px) { :root { --capco-reveal-x: 24px; } }   /* phones: every block is full width; the lateral entry needs more travel to read */

/* Estado inicial de elementos animables (evita FOUC con GSAP) */
.js [data-capco-anim] {
	visibility: hidden;
}

/* ══════════════════════════════════════════════════════════════════════════
   CAP.CO components — source: docs/design-system.md (XD specs 2026-09-14) — v2
   ══════════════════════════════════════════════════════════════════════════ */
html { scroll-behavior: smooth; }
html, body { overflow-x: clip; }
::selection { background: #36B37C; color: #fff; }
.capco-mgroup__toggle, .capco-burger, .capco-nav a { user-select: none; -webkit-user-select: none; }
body { font-family: var(--capco-font-sans); color: #363636; -webkit-font-smoothing: antialiased; }
.capco-section .elementor-widget, .capco-header .elementor-widget, .capco-footer .elementor-widget, .capco-trust .elementor-widget, .capco-slide .elementor-widget, .capco-news .elementor-widget { margin: 0; }

/* ── Pill buttons (.capco-btn on the Elementor button widget) — hover = invert ── */
.elementor-widget-button.capco-btn .elementor-button, .capco-btn .elementor-button {
	font-family: var(--capco-font-sans) !important; font-weight: 800 !important; font-size: 15px !important; line-height: 1.2 !important;
	letter-spacing: .3px; text-transform: uppercase;
	background: #36B37C !important; color: #fff !important; border: 2px solid #36B37C !important; border-radius: 999px !important; padding: 13px 34px !important;
	box-shadow: 0 4px 12px rgba(2,7,4,.22);
	transition: background var(--capco-t-fast) var(--capco-ease-out), color var(--capco-t-fast) var(--capco-ease-out), border-color var(--capco-t-fast), transform var(--capco-t-fast) var(--capco-ease-out), box-shadow var(--capco-t-fast) var(--capco-ease-out);
}
.elementor-widget-button.capco-btn .elementor-button:hover, .elementor-widget-button.capco-btn .elementor-button:focus-visible, .capco-btn .elementor-button:hover {
	background: #fff !important; color: #36B37C !important; border-color: #fff !important; transform: translateY(-2px); box-shadow: 0 8px 22px rgba(2,7,4,.28);
}
.elementor-widget-button.capco-btn--outline .elementor-button, .capco-btn--outline .elementor-button { background: transparent !important; color: #36B37C !important; border-color: #36B37C !important; box-shadow: none; }
.elementor-widget-button.capco-btn--outline .elementor-button:hover, .capco-btn--outline .elementor-button:hover { background: #36B37C !important; color: #fff !important; border-color: #36B37C !important; box-shadow: 0 8px 22px rgba(2,7,4,.28); }
.elementor-widget-button.capco-btn--white .elementor-button, .capco-btn--white .elementor-button { background: #fff !important; color: #36B37C !important; border-color: #fff !important; }
.elementor-widget-button.capco-btn--white .elementor-button:hover, .capco-btn--white .elementor-button:hover { background: var(--capco-mint-tint) !important; color: #36B37C !important; border-color: var(--capco-mint-tint) !important; }
.elementor-widget-button.capco-btn--sm .elementor-button { font-size: 13px !important; padding: 10px 24px !important; }
.capco-btn .elementor-button-icon svg, .capco-btn .elementor-button-icon i { width: 12px; height: 12px; font-size: 12px; fill: currentColor; color: currentColor; }
.capco-btn .elementor-button:active { transform: translateY(0); }

/* ── Section label ─────────────────────────────────────────────────────── */
.elementor-widget-heading.capco-label { margin-bottom: 0 !important; }
.elementor-widget-heading.capco-label .elementor-heading-title { font-family: var(--capco-font-sans) !important; font-weight: 700 !important; font-size: 26px !important; line-height: 1.2 !important; letter-spacing: .78px; color: #E8794A !important; text-align: center; }
.capco-label .elementor-heading-title::after { content: ""; display: block; width: 18px; height: 18px; margin: 10px auto 0; border-right: 3px solid #E8794A; border-bottom: 3px solid #E8794A; transform: translateY(-6px) rotate(45deg); }

/* ── Photo card + caption chip (one component, everywhere) ─────────────── */
.capco-photo { position: relative; border-radius: var(--capco-r-img); overflow: hidden; }
.capco-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.capco-chipwrap { position: absolute !important; inset: 0; pointer-events: none; margin: 0 !important; }
.capco-chip { position: absolute; left: 50%; bottom: 24px; transform: translateX(-50%); display: flex; align-items: center; gap: 24px; min-width: 60%; max-width: calc(100% - 48px); background: rgba(28,28,28,.96); color: #fff; border-radius: 4px; padding: 11px 18px; font-family: var(--capco-font-sans); font-size: 15px; line-height: 1.2; white-space: nowrap; pointer-events: auto; }
.capco-chip b { font-weight: 700; }
.capco-chip .capco-chip__arrow { margin-left: auto; width: 8px; height: 8px; border-right: 2px solid #fff; border-top: 2px solid #fff; transform: rotate(45deg); }
.capco-linkplus a, .capco-linkplus .elementor-heading-title { font-family: var(--capco-font-sans); font-weight: 700; font-size: 20px; color: #36B37C; text-decoration: none; }

/* ── Header: sticky wrapper, cinematic (black) ⇄ catalogue (white) ─────── */
.elementor-location-header { position: sticky; top: 0; z-index: 900; }
.capco-header { background: #1C1C1C; min-height: 84px; transition: background var(--capco-header-transition), box-shadow var(--capco-header-transition); }
.capco-header > .e-con-inner { min-height: 84px; }
.capco-header .capco-navwrap { display: flex; align-items: center; gap: 93px; }
.capco-header .capco-logo img { width: 300px; height: auto; display: block; }
.capco-header .capco-nav > ul { display: flex; gap: 8px; list-style: none; margin: 0; padding: 0; }
.capco-header .capco-nav > ul > li, .capco-header .elementor-widget-html, .capco-header .elementor-widget-html > .elementor-widget-container, .capco-header > .e-con-inner { position: static; }
.capco-header { position: relative; overflow: visible; }
.capco-header .capco-nav > ul > li > a { display: flex; align-items: center; height: 84px; padding: 0 16px; font-family: var(--capco-font-sans); font-weight: 500; font-size: 16px; color: #fff; text-decoration: none; transition: color var(--capco-t-fast), background var(--capco-t-fast) var(--capco-ease-out); }
.capco-header .capco-nav > ul > li > a:hover { color: #71E3B2; }
.capco-plus { display: inline-block; font-weight: 500; margin-right: 2px; transform-origin: 50% 52%; transition: transform var(--capco-t-cozy) var(--capco-ease-cozy); }
.capco-header .capco-nav > ul > li.is-open > a { background: #36B37C; color: #fff; }
.capco-header .capco-nav > ul > li.is-open > a .capco-plus { transform: rotate(45deg); }
.capco-header .capco-lang { font-weight: 500; font-size: 16px; display: flex; gap: 8px; color: #fff; transition: color var(--capco-header-transition); }
.capco-header .capco-lang a { color: inherit; text-decoration: none; }
.capco-header .capco-lang a.is-active { color: #36B37C; border-bottom: 2px solid #36B37C; padding-bottom: 2px; }
body.capco-catalogue .capco-header { background: #fff; box-shadow: 0 1px 0 rgba(0,0,0,.06); }
body.capco-catalogue .capco-header .capco-nav > ul > li > a, body.capco-catalogue .capco-header .capco-lang { color: #363636; }
body.capco-catalogue .capco-header .capco-nav > ul > li > a:hover { color: #36B37C; }
body.capco-catalogue .capco-header .capco-nav > ul > li.is-open > a { color: #fff; }

/* Mega menu panel (desktop) — pattern "panel": fade + 8px drop, ease-out 300ms */
.capco-mega { position: absolute; left: 0; right: 0; top: 100%; background: #36B37C; color: #fff; opacity: 0; visibility: hidden; transform: translateY(-8px); transition: opacity var(--capco-t-fast) var(--capco-ease-out), transform var(--capco-t-fast) var(--capco-ease-out), visibility 0s linear var(--capco-t-fast); box-shadow: 0 24px 40px rgba(0,0,0,.18); }
li.is-open > .capco-mega, li:focus-within > .capco-mega { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.capco-mega__inner { max-width: none; margin: 0; padding: 38px 80px 44px 75px; }
.capco-mega__top { display: flex; justify-content: space-between; align-items: center; gap: 40px; padding: 0; }
.capco-mega__title { font-family: var(--capco-font-display); font-weight: 600; font-size: 44px; line-height: 1.1; margin: 0 0 12px; color: #fff; }
.capco-mega__sub { font-size: 17px; margin: 0; opacity: .95; }
.capco-mega__cta { font-weight: 800; font-size: 15px; text-transform: uppercase; letter-spacing: .3px; background: #fff; color: #36B37C; border: 2px solid #fff; border-radius: 999px; padding: 15px 36px; text-decoration: none; margin-right: 0; white-space: nowrap; transition: background var(--capco-t-fast), transform var(--capco-t-fast) var(--capco-ease-out), box-shadow var(--capco-t-fast); box-shadow: 0 4px 12px rgba(2,7,4,.18); }
.capco-mega__cta:hover { background: var(--capco-mint-tint); transform: translateY(-2px); box-shadow: 0 8px 22px rgba(2,7,4,.24); color: #36B37C; }
.capco-mega__grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 24px; list-style: none; margin: 52px 0 0; padding: 0; }
.capco-mega__grid--4 { grid-template-columns: repeat(4, 1fr); }
.capco-mega__item { display: block; padding: 22px 22px 24px; border-radius: 10px; color: #fff; text-decoration: none; transition: background var(--capco-t-fast) var(--capco-ease-out), color var(--capco-t-fast); }
.capco-mega__item:hover, .capco-mega__item:focus-visible { background: var(--capco-mint-tint); color: #36B37C; }
.capco-mega__head { display: flex; align-items: center; gap: 14px; font-weight: 600; font-size: 22px; line-height: 1.2; margin-bottom: 14px; }
.capco-mega__head svg { width: 34px; height: 34px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.capco-mega__text { display: block; font-size: 16px; line-height: 1.5; margin-bottom: 18px; }
.capco-mega__more { display: block; font-weight: 700; font-size: 18px; }

/* Burger + mobile menu — pattern "cozy toggle" + "stagger" */
.capco-header .capco-burger { display: none; width: 34px; height: 24px; position: relative; cursor: pointer; background: none; border: 0; padding: 0; }
.capco-header .capco-burger span { position: absolute; left: 0; width: 100%; height: 3px; background: #36B37C; border-radius: 2px; transition: transform var(--capco-t-cozy) var(--capco-ease-cozy), opacity var(--capco-t-fast), top var(--capco-t-fast); }
.capco-header .capco-burger span:nth-child(1) { top: 0; } .capco-header .capco-burger span:nth-child(2) { top: 10px; } .capco-header .capco-burger span:nth-child(3) { top: 20px; }
body.capco-menu-open .capco-burger span:nth-child(1) { top: 10px; transform: rotate(45deg); }
body.capco-menu-open .capco-burger span:nth-child(2) { opacity: 0; transform: scaleX(0); }
body.capco-menu-open .capco-burger span:nth-child(3) { top: 10px; transform: rotate(-45deg); }
/* Geometry measured on mega-menu-details/mobile-mega-menu-variant*.jpg (390×844 @2x): titles 34px on a 78px pitch ending at x=353, sub-items 22px on a 46px pitch ending at x=337.5, CTA 238×48 sitting 36px from the bottom, nav block centred between the header and the CTA */
.capco-mobile-menu { position: fixed; inset: var(--capco-hdr, 80px) 0 0 0; background: #36B37C; z-index: 890; display: flex; flex-direction: column; align-items: flex-end; padding: 0 37px 36px; overflow-y: auto; overscroll-behavior: contain; font-family: var(--capco-font-sans); padding-top: 6px; opacity: 0; visibility: hidden; transition: opacity var(--capco-t-fast) var(--capco-ease-out), visibility 0s linear var(--capco-t-fast); }
body.capco-menu-open .capco-mobile-menu { opacity: 1; visibility: visible; transition-delay: 0s; }
body.capco-menu-open { overflow: hidden; }
.capco-mobile-menu > * { opacity: 0; transform: translateX(var(--capco-shift)); transition: opacity var(--capco-t-fast) var(--capco-ease-out), transform var(--capco-t-fast) var(--capco-ease-out); transition-delay: calc(var(--i, 0) * var(--capco-stagger)); }
body.capco-menu-open .capco-mobile-menu > * { opacity: 1; transform: none; transition-delay: calc(80ms + var(--i, 0) * var(--capco-stagger)); }
/* auto margins (not justify-content: center): when the open group is taller than the screen the top stays reachable and the panel scrolls */
.capco-mobile-menu > :first-child { margin-top: auto; }
.capco-mgroup { display: flex; flex-direction: column; align-items: flex-end; width: 100%; flex: 0 0 auto; }
.capco-mgroup__toggle, .capco-mobile-menu__link { display: inline-flex; align-items: center; gap: 8px; background: none; border: 0; padding: 0; cursor: pointer; font-family: var(--capco-font-sans); font-weight: 800; font-size: 34px; line-height: 1; letter-spacing: 0; color: #fff; text-transform: uppercase; text-decoration: none; white-space: nowrap; margin: 22px 0; flex: 0 0 auto; border-radius: 0; }
.capco-mgroup__toggle { gap: 5px; }
.capco-mgroup__toggle .capco-plus { font-size: 29px; font-weight: 800; margin-right: 0; } /* comp "+": 14×14.5, 3px bars, 7px from the title */
.capco-mgroup.is-open .capco-mgroup__toggle .capco-plus { transform: rotate(45deg); }
.capco-mgroup__list { display: grid; grid-template-rows: 0fr; list-style: none; margin: 0; padding: 0; width: 100%; transition: grid-template-rows var(--capco-t-cozy) var(--capco-ease-out); }
.capco-mgroup__list > div { overflow: hidden; display: flex; flex-direction: column; align-items: flex-end; }
.capco-mgroup.is-open .capco-mgroup__list { grid-template-rows: 1fr; }
.capco-mgroup__list a { display: inline-flex; align-items: center; gap: 14px; color: #fff; text-decoration: none; font-family: var(--capco-font-sans); font-weight: 700; font-size: 22px; line-height: 26px; letter-spacing: -.2px; white-space: nowrap; margin: 10px 0; opacity: 0; transform: translateX(12px); transition: opacity var(--capco-t-fast) var(--capco-ease-out), transform var(--capco-t-fast) var(--capco-ease-out); }
.capco-mgroup__list svg { width: 30px; height: 30px; fill: none; stroke: #fff; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.capco-mgroup.is-open .capco-mgroup__list a { opacity: 1; transform: none; transition-delay: calc(60ms + var(--i, 0) * var(--capco-stagger)); }
/* no vertical padding on the collapsing wrapper (it would survive the 0fr row and stretch the 78px title pitch): the open group's breathing room lives on the first/last link */
.capco-mgroup__list > div { padding: 0 16px 0 0; }
.capco-mgroup__list li:first-child a { margin-top: 12px; }
.capco-mgroup__list li:last-child a { margin-bottom: 14px; }
.capco-mobile-menu .capco-mgroup__list .capco-ico { width: 28px; height: 24px; flex: 0 0 28px; position: relative; top: -2px; }
/* Brand-safe states: the parent theme's reset.css loads after this file and tints links #336 on :hover/:active (sticky after a tap on touch screens) and buttons #c36 on :hover/:focus */
.capco-mobile-menu :is(.capco-mgroup__toggle, .capco-mobile-menu__link, .capco-mgroup__list a):is(:link, :visited, :hover, :focus, :active) { color: #fff; background: transparent; text-decoration: none; }
.capco-header .capco-burger, .capco-header .capco-burger:is(:hover, :focus, :active) { color: #36B37C; background: transparent; }
.capco-mobile-menu > .capco-btn { margin-top: auto; align-self: center; flex: 0 0 auto; }
.capco-mobile-menu > .capco-btn.elementor-widget-button .elementor-button { display: inline-flex; align-items: center; justify-content: center; white-space: nowrap; box-sizing: border-box; min-width: 238px; min-height: 48px; font-size: 14px !important; padding: 0 24px !important; }
/* short screens (iPhone SE / 8 class): tighter rhythm so the open Projects group still fits between the header and the CTA */
@media (max-height: 720px) {
	.capco-mgroup__toggle, .capco-mobile-menu__link { margin: 16px 0; }
	.capco-mgroup__list a, .capco-mgroup__list li:first-child a { margin-top: 8px; }
	.capco-mgroup__list a, .capco-mgroup__list li:last-child a { margin-bottom: 8px; }
	.capco-mobile-menu { padding-bottom: 24px; }
}
@media (max-width: 1024px) {
	.capco-header .capco-nav, .capco-header .capco-lang { display: none; }
	.capco-header .capco-burger { display: block; }
	.capco-header .capco-logo img { width: 220px; }
	.capco-header, .capco-header > .e-con-inner { min-height: 80px; }
}

/* ── Hero (cinematic): fullscreen, photo behind, black trust band at the bottom ── */
.capco-hero { position: relative; overflow: hidden; background: #1C1C1C; min-height: calc(100svh - 84px) !important; }
.capco-hero > .e-con-inner { min-height: calc(100svh - 84px); display: flex; flex-direction: column; }
.capco-hero-bgwrap { position: absolute !important; inset: 0; z-index: 0; margin: 0 !important; }
.capco-hero-bgwrap .elementor-widget-container { position: absolute; inset: 0; }
.capco-hero__bg { position: absolute; inset: 0; background-size: cover; background-position: 62% 40%; will-change: transform, opacity; }
.capco-hero__bg--a { animation: capco-kb-a 18s ease-in-out infinite; }
.capco-hero__bg--b { animation: capco-kb-b 18s ease-in-out infinite; opacity: 0; }
@keyframes capco-kb-a { 0% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.06) translate3d(-1.2%,-.8%,0); opacity: 1; } 58% { opacity: 0; } 92% { opacity: 0; transform: scale(1); } 100% { opacity: 1; } }
@keyframes capco-kb-b { 0% { opacity: 0; transform: scale(1.02) translate3d(.6%,.4%,0); } 50% { opacity: 0; } 58% { opacity: 1; } 92% { opacity: 1; transform: scale(1.07) translate3d(-.6%,-.6%,0); } 100% { opacity: 0; } }
.capco-hero__wash { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.45) 0%, rgba(0,0,0,.18) 40%, rgba(0,0,0,0) 62%); }
@media (prefers-reduced-motion: reduce) { .capco-hero__bg { animation: none !important; opacity: 1 !important; } .capco-hero__bg--b { display: none; } }
.capco-hero .capco-hero__content { position: relative; z-index: 1; flex: 1 1 auto; justify-content: flex-start; padding: clamp(85px, calc(85px + (100svh - 950px) * .35), 220px) 0 40px !important; }
.capco-trust { position: relative; z-index: 1; background: #1C1C1C; box-shadow: 0 0 0 100vmax #1C1C1C; clip-path: inset(0 -100vmax); min-height: 90px; }
.capco-logos__list { display: flex; align-items: center; gap: 56px; list-style: none; margin: 0; padding: 0; }
.capco-logos__list img { display: block; height: 46px; width: auto; max-width: 150px; object-fit: contain; }
.capco-logos__mobile-only { display: none; }
@media (min-width: 768px) { .capco-mcards, .capco-hero-mobile-photo, .capco-audience, .elementor-hidden-desktop { display: none !important; } }
@media (min-width: 768px) and (max-width: 1024px) { .elementor-hidden-tablet { display: none !important; } }
@media (max-width: 1024px) {
	.capco-logos__list { flex-wrap: wrap; justify-content: center; gap: 36px 48px; }
	.capco-logos__mobile-only { display: block; }
	.capco-hero, .capco-hero > .e-con-inner { min-height: calc(100svh - 80px); }
}

/* ── Project Highlights slide ──────────────────────────────────────────── */
.capco-slide { position: relative; border-radius: var(--capco-r-img); overflow: hidden; }
.capco-slide__ui { position: static !important; }
.capco-slide__arrow { position: absolute; top: 50%; transform: translateY(-50%); width: 55px; height: 55px; border: 0; background: #1C1C1C; cursor: pointer; z-index: 2; transition: background var(--capco-t-fast); }
.capco-slide__arrow::before { content: ""; position: absolute; top: 50%; left: 50%; width: 12px; height: 12px; border-right: 3px solid #fff; border-top: 3px solid #fff; transform: translate(-70%,-50%) rotate(45deg); }
.capco-slide__arrow--prev { left: 0; } .capco-slide__arrow--prev::before { transform: translate(-30%,-50%) rotate(-135deg); }
.capco-slide__arrow--next { right: 0; }
.capco-slide__arrow:hover { background: #36B37C; }
.capco-slide__caption { display: grid; grid-template-columns: 300px 1fr 200px; align-items: center; gap: 30px; background: rgba(0,0,0,.8); color: #fff; padding: 12px 34px; min-height: 66px; font-size: 15px; line-height: 1.35; }
.capco-slide__title b { font-weight: 700; }
.capco-slide__desc { margin: 0; text-align: center; }
.capco-slide__more { color: #71E3B2; font-weight: 700; text-decoration: none; text-align: right; }

/* ── CAP.CO way / Thinking / News / Stories / Follow / Map ─────────────── */
.capco-bleed-left { width: calc(100% + 137px) !important; max-width: none !important; margin-left: -137px !important; }
.capco-way .capco-photo { min-height: 470px; }
.capco-way .elementor-widget-text-editor { font-size: 17px; line-height: 1.6; color: #363636; }
.capco-thinking .capco-col { text-align: center; }
.capco-thinking .capco-col .elementor-widget-image { width: 100%; }
.capco-thinking .capco-col img { height: 500px; width: auto; max-width: 100%; object-fit: contain; object-position: bottom; }
.capco-thinking .capco-col .elementor-widget-text-editor { font-size: 15px; line-height: 1.6; color: #363636; }
.capco-news { position: relative; min-height: 480px; color: #fff; text-align: center; box-shadow: 0 6px 18px rgba(0,0,0,.16); padding-left: 50px !important; padding-right: 50px !important; }
.capco-news__read { font-weight: 700; font-size: 15px; color: #fff; text-decoration: none; }
.capco-stories .capco-photo { min-height: 386px; }
.capco-stories .elementor-widget-heading .elementor-heading-title { font-size: 34px; letter-spacing: 0; }
.capco-stories .capco-story__more { display: block; text-align: right; font-weight: 700; font-size: 20px; color: #36B37C; text-decoration: none; }
.capco-ig { display: flex; gap: 18px; overflow: hidden; width: calc(100vw + 336px) !important; max-width: none !important; margin-left: calc(-1 * (100vw - 100%) / 2 - 336px) !important; }
.capco-ig img { width: 388px; height: 410px; object-fit: cover; flex: 0 0 auto; display: block; }
.capco-map { position: relative; width: 100vw !important; max-width: none !important; margin-left: calc(-1 * (100vw - 100%) / 2) !important; min-height: 520px; background: url(/wp-content/uploads/2026/09/capco-map.jpg) center/cover no-repeat; }
.capco-map .elementor-widget { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); margin: 0; }

/* ── Footer ────────────────────────────────────────────────────────────── */
.capco-footer { position: relative; background: #36B37C; color: #fff; }
.capco-footer a { color: #fff; }
.capco-footer__contactrow { display: flex; justify-content: space-between; gap: 40px; width: 100%; }
.capco-footer__reach a { font-weight: 700; font-size: 20px; line-height: 1.7; text-decoration: none; color: #fff; }
.capco-footer__address { font-style: normal; font-weight: 700; font-size: 20px; line-height: 1.7; text-align: right; }
.capco-social { display: flex; gap: 22px; list-style: none; margin: 36px 0 0; padding: 0; }
.capco-social a { display: flex; align-items: center; justify-content: center; width: 60px; height: 60px; border-radius: 50%; border: 3px solid #fff; transition: background var(--capco-t-fast), transform var(--capco-t-fast) var(--capco-ease-out); }
.capco-social svg { width: 30px; height: 30px; fill: #fff; transition: fill var(--capco-t-fast); }
.capco-social a:hover { background: #fff; transform: translateY(-2px); } .capco-social a:hover svg { fill: #36B37C; }
.capco-footer__contact { width: 100%; }
.capco-footer__links { display: flex; justify-content: flex-end; gap: 60px; margin-top: 36px; padding: 32px 0; border-top: 2px solid rgba(255,255,255,.7); border-bottom: 2px solid rgba(255,255,255,.7); }
.capco-footer__links a { font-family: var(--capco-font-display); font-weight: 600; font-size: 24px; text-decoration: none; }
.capco-footer__copy { font-weight: 700; font-size: 18px; text-align: right; margin: 24px 0 0; }
.capco-footer__newsletter-q { font-weight: 700; font-size: 18px; line-height: 1.5; max-width: 190px; }
.capco-footer__giant { position: relative; width: 100%; height: 420px; margin-top: 70px; overflow: visible; }
.capco-footer__giant img { position: absolute; left: -3%; top: 0; width: 197%; max-width: none; height: auto; filter: brightness(0) invert(1); }
.capco-footer__giant-tagline { position: absolute; right: -6%; top: 120px; text-align: right; color: #36B37C; font-weight: 800; font-size: 24px; line-height: 1.05; text-transform: uppercase; }

/* ── MOBILE (≤767px) ───────────────────────────────────────────────────── */
.capco-audience { display: none; }
@media (max-width: 767px) {
	.capco-hero { min-height: 0 !important; }
	.capco-hero > .e-con-inner { min-height: 0; }
	.capco-hero .capco-hero__content { flex: 0 0 auto; justify-content: flex-start; padding: 14px 0 22px !important; }
	.capco-hero__content .elementor-widget-heading { margin-bottom: 16px !important; }
	.capco-hero__content .elementor-widget-heading .elementor-heading-title { font-size: 31px !important; line-height: 1.16 !important; letter-spacing: .3px; }
	.capco-hero__content .elementor-widget-text-editor { margin-bottom: 20px !important; font-size: 15px !important; line-height: 1.5 !important; }
	.capco-hero__content .e-con { gap: 10px !important; }
	.elementor-widget-button.capco-btn .elementor-button { font-size: 12px !important; padding: 10px 22px !important; }
	.capco-hero-mobile-photo { position: relative; z-index: 1; margin: 0 -20px !important; width: calc(100% + 40px) !important; max-width: none !important; }
	.capco-hero-mobile-photo img { width: 100%; height: 290px; object-fit: cover; object-position: 60% 40%; display: block; }
	.capco-audience { display: block; position: relative; z-index: 1; margin: 0 -20px !important; width: calc(100% + 40px) !important; max-width: none !important; background: #1C1C1C; }
	.capco-audience ul { display: flex; justify-content: space-around; align-items: flex-start; list-style: none; margin: 0; padding: 12px 6px 10px; gap: 4px; }
	.capco-audience li { flex: 1; text-align: center; color: #36B37C; font-size: 9px; font-weight: 700; line-height: 1.15; }
	.capco-audience a { color: inherit; text-decoration: none; }
	.capco-audience svg { width: 26px; height: 26px; display: block; margin: 0 auto 4px; fill: none; stroke: #36B37C; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
	.capco-trust { flex-direction: column !important; align-items: flex-start !important; padding: 28px 0 40px !important; gap: 32px !important; min-height: 0; }
	.capco-trust .elementor-widget-text-editor { font-size: 16px !important; width: 100% !important; max-width: none !important; }
	.capco-logos__list { display: grid; grid-template-columns: 1fr 1fr; gap: 40px 24px; justify-items: center; align-items: center; width: 100%; }
	.capco-logos__list img { height: 52px; max-width: 150px; }
	.capco-trust .elementor-widget-button { align-self: center; }
	.capco-section { padding-left: 20px !important; padding-right: 20px !important; }
	.capco-highlights { padding-top: 50px !important; padding-bottom: 60px !important; }
	.capco-mcards, .capco-mcards > .elementor-widget-container { display: flex !important; flex-direction: column !important; flex-wrap: nowrap !important; gap: 14px; width: 100% !important; max-width: none !important; }
	.capco-mcard { display: block; position: relative; border-radius: var(--capco-r-img); overflow: hidden; height: 350px; width: 100%; flex: 0 0 auto; background-size: cover; background-position: center; }
	.capco-mcard__bar { position: absolute; left: 0; right: 0; bottom: 0; display: flex; align-items: center; justify-content: space-between; background: #1C1C1C; color: #fff; padding: 10px 14px; font-size: 12px; }
	.capco-mcard__bar b { font-weight: 700; }
	.capco-mcard__bar .capco-chip__arrow { width: 7px; height: 7px; border-right: 2px solid #fff; border-top: 2px solid #fff; transform: rotate(45deg); }
	.capco-mcard__video { position: absolute; top: 14px; right: 14px; background: #1C1C1C; color: #fff; font-size: 11px; font-weight: 700; border-radius: 999px; padding: 8px 14px; }
	.capco-mcard__video::after { content: ""; display: inline-block; margin-left: 8px; border-left: 7px solid #fff; border-top: 4px solid transparent; border-bottom: 4px solid transparent; }
	.capco-way { padding: 40px 0 60px !important; }
	.capco-way .capco-row { flex-direction: column !important; padding: 0 20px !important; margin: 0 0 16px !important; }
	.capco-way .capco-row > .e-con { display: contents; }
	.capco-way .m-o1 { order: 1; } .capco-way .m-o2 { order: 2; } .capco-way .m-o3 { order: 3; } .capco-way .m-o4 { order: 4; } .capco-way .m-o9 { order: 9; }
	.capco-way .capco-photo { min-height: 250px !important; width: 100% !important; max-width: none !important; margin: 0 0 24px !important; }
	.capco-way .elementor-widget-heading { width: 100% !important; max-width: none !important; margin: 0 0 16px !important; }
	.capco-way .elementor-widget-heading .elementor-heading-title { font-size: 42px !important; line-height: 1.24 !important; }
	.capco-way .elementor-widget-text-editor { width: 100% !important; max-width: none !important; margin: 0 0 22px !important; font-size: 16px !important; }
	.capco-way .elementor-widget-button { margin-top: 10px !important; }
	.capco-chip { min-width: 0; width: calc(100% - 24px); bottom: 12px; padding: 9px 12px; font-size: 12px; gap: 12px; }
	.capco-thinking { padding: 40px 20px 60px !important; }
	.capco-thinking .capco-col { width: 100% !important; padding: 0 !important; flex-direction: row !important; flex-wrap: wrap !important; align-items: flex-start !important; margin-bottom: 26px; }
	.capco-thinking .capco-col .elementor-widget-image { width: 100% !important; }
	.capco-thinking .capco-col:first-child .elementor-widget-image { width: 42% !important; }
	.capco-thinking .capco-col:first-child .elementor-widget-heading, .capco-thinking .capco-col:first-child .elementor-widget-text-editor { width: 58% !important; }
	.capco-thinking .capco-col img { height: 240px !important; object-position: center; }
	.capco-thinking .capco-col .elementor-widget-heading, .capco-thinking .capco-col .elementor-widget-text-editor { width: 100% !important; background: #F4F4F4; text-align: left !important; padding: 0 18px; margin: 0 !important; }
	.capco-thinking .capco-col .elementor-widget-heading { padding-top: 18px; }
	.capco-thinking .capco-col .elementor-widget-heading .elementor-heading-title { font-size: 24px !important; text-align: left !important; }
	.capco-thinking .capco-col .elementor-widget-text-editor { padding-bottom: 20px; font-size: 15px !important; }
	.capco-thinking .capco-col .elementor-widget-text-editor p { text-align: left; }
	.capco-thinking .elementor-widget-button { margin-top: 10px !important; }
	.capco-newsgrid .capco-news { width: 100% !important; min-height: 340px !important; padding: 28px 30px 32px !important; margin-bottom: 14px; }
	.capco-stories { padding: 40px 20px 50px !important; }
	.capco-stories .capco-row { flex-direction: column !important; }
	.capco-stories .capco-photo { min-height: 240px !important; }
	.capco-stories .e-con > .e-con { width: 100% !important; }
	.capco-stories .elementor-widget-heading .elementor-heading-title { font-size: 26px !important; }
	.capco-follow .elementor-widget-heading .elementor-heading-title { font-size: 42px !important; }
	.capco-follow .elementor-widget-heading:nth-of-type(2) .elementor-heading-title { font-size: 18px !important; }
	.capco-ig { width: 100vw !important; margin-left: -20px !important; overflow-x: auto; gap: 10px; }
	.capco-ig img { width: 220px; height: 220px; }
	.capco-mapsec { padding-top: 60px !important; }
	.capco-mapsec .elementor-widget-heading .elementor-heading-title { font-size: 42px !important; }
	.capco-map { min-height: 260px !important; margin-top: 30px !important; }
	.capco-footer { padding: 70px 20px 0 !important; }
	.capco-footer > .e-con-inner > .e-con { flex-direction: column !important; }
	.capco-footer .e-con-inner .e-con .e-con, .capco-footer .e-con-inner > .e-con { width: 100% !important; padding: 0 !important; align-items: center !important; text-align: center; }
	.capco-footer .elementor-widget-text-editor, .capco-footer .elementor-widget-heading { text-align: center; width: 100% !important; max-width: none !important; }
	.capco-footer .elementor-widget-button, .capco-footer .elementor-widget-button .elementor-button-wrapper { width: 100%; }
	.capco-footer .elementor-widget-button .elementor-button { display: block; width: 100%; text-align: center; }
	.capco-footer__newsletter-q { max-width: none; width: 100% !important; text-align: center; font-size: 18px; }
	.capco-footer__contactrow { flex-direction: column; align-items: center; gap: 28px; }
	.capco-footer__reach { text-align: center; } .capco-social { justify-content: center; margin-top: 24px; }
	.capco-footer__address { text-align: center; font-size: 16px; }
	.capco-footer__links { flex-direction: column; align-items: center; gap: 14px; justify-content: center; }
	.capco-footer__links a { font-size: 20px; }
	.capco-footer__copy { text-align: center; font-size: 14px; }
	.capco-footer__giant { overflow: hidden; height: 190px; margin-top: 20px; }
	.capco-footer__giant img { width: 300% !important; left: -10%; }
	.capco-footer__giant-tagline { display: none; }
	.capco-footer .capco-wordmark .elementor-heading-title { font-size: 48px; }
}

/* ── Refinement pass: decorations, micro-interactions, focus ───────────── */
.capco-decowrap { position: absolute !important; margin: 0 !important; pointer-events: none; z-index: 0; }
.capco-decowrap img { display: block; width: 100%; height: auto; }
.capco-deco--leaf { top: -170px; right: -140px; width: 700px; }
.capco-decowrap img { filter: grayscale(1) brightness(1.02); opacity: .42; }
.capco-way, .capco-stories { overflow-x: clip; }
.capco-deco--wheat { left: calc((100% - 100vw) / 2 - 60px); top: 150px; width: 520px; }
.capco-section { position: relative; }
.capco-section > .e-con-inner > .elementor-widget:not(.capco-decowrap), .capco-section > .e-con-inner > .e-con { position: relative; z-index: 1; }
@media (max-width: 1024px) { .capco-deco--leaf { width: 240px; top: -60px; right: 0; } .capco-deco--wheat { width: 180px; top: 300px; } }
.capco-photo { transition: box-shadow var(--capco-t-fast) var(--capco-ease-out), transform var(--capco-t-fast) var(--capco-ease-out); }
.capco-photo:hover { box-shadow: 0 14px 34px rgba(0,0,0,.18); }
.capco-chip .capco-chip__arrow, .capco-mcard__bar .capco-chip__arrow { transition: transform var(--capco-t-fast) var(--capco-ease-out); }
.capco-photo:hover .capco-chip__arrow, .capco-mcard:hover .capco-chip__arrow { transform: rotate(45deg) translate(3px,-3px); }
.capco-news, .capco-mcard { transition: transform var(--capco-t-fast) var(--capco-ease-out), box-shadow var(--capco-t-fast) var(--capco-ease-out); }
.capco-news:hover, .capco-mcard:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(0,0,0,.22); }
.capco-story__more, .capco-slide__more, .capco-news__read, .capco-mega__more, .capco-linkplus a { display: inline-block; transition: transform var(--capco-t-fast) var(--capco-ease-out), color var(--capco-t-fast); }
.capco-story__more:hover, .capco-slide__more:hover, .capco-news__read:hover, .capco-linkplus a:hover { transform: translateX(4px); }
.capco-mega__item:hover .capco-mega__more { transform: translateX(4px); }
.capco-ig img { transition: filter var(--capco-t-fast), transform .6s var(--capco-ease-out); }
.capco-ig img:hover { filter: brightness(1.06); }
.capco-footer__links a { position: relative; }
.capco-footer__links a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -4px; height: 2px; background: #fff; transition: right var(--capco-t-fast) var(--capco-ease-out); }
.capco-footer__links a:hover::after { right: 0; }
.capco-header .capco-nav > ul > li > a, .capco-mgroup__toggle, .capco-mobile-menu__link, .capco-mega__item, .capco-social a, .capco-burger, .elementor-button, .capco-chip, .capco-mcard, .capco-audience a { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible, .elementor-button:focus-visible { outline: 3px solid #71E3B2; outline-offset: 3px; border-radius: 6px; }
.capco-hero .capco-btn .elementor-button:focus-visible { outline-color: #fff; }

/* ── TABLET (768–1024) refinements ─────────────────────────────────────── */
@media (min-width: 768px) and (max-width: 1024px) {
	.capco-hero__content .elementor-widget-heading .elementor-heading-title { font-size: 56px !important; }
	.capco-hero__content .elementor-widget-heading, .capco-hero__content .elementor-widget-text-editor { max-width: 100% !important; }
	.capco-trust { flex-wrap: wrap !important; gap: 24px !important; padding: 24px 0 !important; }
	.capco-trust .elementor-widget-text-editor { width: 100% !important; max-width: none !important; }
	.capco-way { padding: 60px 0 80px !important; }
	.capco-way .capco-row { flex-direction: column !important; padding: 0 40px !important; margin: 0 0 40px !important; }
	.capco-way .capco-row > .e-con { display: contents; }
	.capco-way .m-o1 { order: 1; } .capco-way .m-o2 { order: 2; } .capco-way .m-o3 { order: 3; } .capco-way .m-o4 { order: 4; } .capco-way .m-o9 { order: 9; }
	.capco-way .capco-photo { min-height: 380px !important; width: 100% !important; max-width: none !important; margin: 0 0 32px !important; }
	.capco-bleed-left { width: 100% !important; margin-left: 0 !important; }
	.capco-way .elementor-widget-heading { width: 100% !important; max-width: none !important; margin: 0 0 20px !important; }
	.capco-way .elementor-widget-heading .elementor-heading-title { font-size: 48px !important; }
	.capco-way .elementor-widget-text-editor { width: 100% !important; max-width: none !important; margin: 0 0 28px !important; }
	.capco-stories .capco-row { flex-direction: column !important; }
	.capco-stories .e-con > .e-con { width: 100% !important; }
	.capco-stories .capco-photo { min-height: 360px !important; }
	.capco-thinking .capco-col img { height: 300px; }
	.capco-news { min-height: 400px; padding-left: 24px !important; padding-right: 24px !important; }
	.capco-news .elementor-heading-title { font-size: 26px !important; }
	.capco-slide__caption { grid-template-columns: 220px 1fr 160px; gap: 18px; font-size: 13px; }
	.capco-ig img { width: 300px; height: 320px; }
	.capco-footer__giant { height: 300px; }
}
/* Neutralise inherited button focus background (theme/plugin resets) on our custom controls */
.capco-mgroup__toggle:focus, .capco-mgroup__toggle:active, .capco-burger:focus, .capco-burger:active, .capco-slide__arrow:focus { background: transparent; }
.capco-slide__arrow:focus { background: #1C1C1C; }

/* ══════════════════════════════════════════════════════════════════════════
   Inner pages (Thinking · Process · Teams · Article) — 2026-09-14
   ══════════════════════════════════════════════════════════════════════════ */
/* ── Inner cinematic hero: photo right, wash left ────────────────────────── */
.capco-hero--inner .capco-hero__bg { background-position: right center; }
.capco-hero--inner .capco-hero__wash { background: linear-gradient(90deg, rgba(11,11,11,.96) 0%, rgba(11,11,11,.9) 30%, rgba(11,11,11,.45) 52%, rgba(11,11,11,0) 72%); }
.capco-hero--inner .capco-hero__content { justify-content: center; padding: 60px 0 !important; }
.capco-hero--inner .capco-hero__content .elementor-widget-heading .elementor-heading-title { font-size: 70px; }
.capco-hero--inner .capco-hero__rule { width: 600px; max-width: 100%; height: 6px; background: #36B37C; margin: 0 0 48px; }
/* ── Editorial rows (inner): orange serif headings ───────────────────────── */
.capco-edit .capco-row { padding: 0 !important; }
.capco-edit .elementor-widget-text-editor { font-size: 17px; line-height: 1.6; color: #363636; }
.capco-edit .elementor-widget-text-editor p + p { margin-top: 1.2em; }
.capco-edit .capco-photo { min-height: 640px; }
.capco-edit .capco-photo--tall { min-height: 660px; }
/* ── Dark bento (Our principles / What makes us different) ───────────────── */
.capco-dark { background: #0B0B0B; color: #fff; }
.capco-dark .elementor-widget-heading.capco-label { margin-bottom: 0 !important; }
.capco-bento { display: grid; grid-template-columns: repeat(26, minmax(0, 1fr)); gap: 24px; width: 100%; }
.capco-card--w11 { grid-column: span 11; } .capco-card--w15 { grid-column: span 15; } .capco-card--w26 { grid-column: span 26; }
.capco-card { position: relative; background: #191C1A; border-radius: 12px; padding: 32px; display: flex; gap: 36px; align-items: center; overflow: hidden; transition: transform var(--capco-t-fast) var(--capco-ease-out), box-shadow var(--capco-t-fast) var(--capco-ease-out); }
.capco-card:hover { transform: translateY(-3px); box-shadow: 0 18px 40px rgba(0,0,0,.35); }
.capco-card__img { flex: 0 0 auto; border-radius: var(--capco-r-img); overflow: hidden; }
.capco-card__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.capco-card__body { flex: 1 1 auto; min-width: 0; }
.capco-card h3 { font-family: var(--capco-font-display); font-weight: 600; font-size: 36px; line-height: 1.15; color: #fff; margin: 0 0 22px; }
.capco-card p { font-size: 16px; line-height: 1.5; margin: 0; color: #fff; }
.capco-card p a { color: #71E3B2; text-decoration: none; }
.capco-card--rtl { flex-direction: row-reverse; }
.capco-card--rtl .capco-card__body { text-align: left; }
.capco-card--h .capco-card__img { width: 265px; height: 440px; }
.capco-card--s .capco-card__img { width: 500px; height: 424px; }
.capco-card--kids .capco-card__img { width: 497px; height: 400px; }
.capco-card--hands .capco-card__img { width: 312px; height: 400px; }
.capco-card--logs .capco-card__img { width: 1040px; height: 400px; }
.capco-card--wide .capco-card__body { max-width: 380px; }
.capco-dark-deco { position: absolute; left: 0; bottom: 0; width: 100%; pointer-events: none; opacity: .9; }
.capco-dark-deco img { display: block; width: 100%; height: auto; mix-blend-mode: screen; }
/* ── Idea CTA block (illustration + copy) ────────────────────────────────── */
.capco-idea { display: grid; grid-template-columns: 1fr 520px; gap: 60px; align-items: center; width: 100%; }
.capco-idea__img img { display: block; width: 100%; max-width: 1000px; height: auto; margin: 0 auto; }
.capco-idea h3 { font-family: var(--capco-font-display); font-weight: 600; font-size: 36px; line-height: 1.2; color: #363636; margin: 0 0 30px; }
.capco-idea p { font-size: 17px; line-height: 1.6; color: #363636; margin: 0 0 24px; }
.capco-idea p a { color: #36B37C; font-weight: 700; text-decoration: none; }
.capco-idea .capco-btn { margin: 8px 0 30px; display: inline-block; }
.capco-idea .capco-btn .elementor-button { display: inline-block; }
/* ── Process: stacked % cards ────────────────────────────────────────────── */
.capco-stacks { display: grid; grid-template-columns: repeat(3, 1fr); gap: 38px; width: 100%; }
.capco-stack { background: #FBFBFB; border-radius: 12px; box-shadow: 0 8px 22px rgba(0,0,0,.16); overflow: hidden; min-height: 630px; display: flex; flex-direction: column; }
.capco-stack__bar { color: #fff; font-family: var(--capco-font-display); font-weight: 600; font-size: 58px; line-height: 1; text-align: center; padding: 22px 0 18px; }
.capco-stack__bar--orange { background: #E8794A; } .capco-stack__bar--green { background: #36B37C; } .capco-stack__bar--teal { background: #117283; } .capco-stack__bar--olive { background: #537E34; }
.capco-stack__bar--empty { padding: 0; height: 100px; }
.capco-stack__body { padding: 40px 24px 32px; margin-top: auto; }
.capco-stack__title { font-weight: 700; font-size: 16px; letter-spacing: .3px; text-transform: uppercase; color: #363636; margin: 0 0 22px; }
.capco-stack__body p { font-size: 16px; line-height: 1.5; color: #363636; margin: 0; }
.capco-stack--build { min-height: 0; display: grid; grid-template-columns: 1fr; }
.capco-stack--build .capco-stack__bar--olive { display: grid; grid-template-columns: 160px 1fr; gap: 24px; align-items: center; text-align: left; padding: 40px 28px; }
.capco-stack--build .capco-stack__num { font-family: var(--capco-font-display); font-size: 58px; }
.capco-stack--build .capco-stack__label { font-family: var(--capco-font-sans); font-weight: 500; font-size: 16px; letter-spacing: .3px; text-transform: uppercase; margin-top: 6px; }
.capco-stack--build .capco-stack__desc { font-family: var(--capco-font-sans); font-size: 16px; line-height: 1.5; font-weight: 400; }
/* ── Process: timeline with organic blobs ────────────────────────────────── */
.capco-timeline { position: relative; width: 100%; padding: 60px 0 30px; }
.capco-timeline::before { content: ""; position: absolute; left: 50%; top: 0; bottom: 90px; width: 5px; margin-left: -2px; background: #E8794A; }
.capco-timeline::after { content: ""; position: absolute; left: 50%; bottom: 62px; width: 26px; height: 26px; margin-left: -13px; border-right: 5px solid #E8794A; border-bottom: 5px solid #E8794A; transform: rotate(45deg); }
.capco-step { position: relative; display: grid; grid-template-columns: 1fr 1fr; align-items: center; margin-bottom: -200px; }
.capco-step:last-child { margin-bottom: 20px; }
.capco-step__blob { position: relative; color: #fff; padding: 110px 40px 110px 70px; border-radius: 58% 42% 62% 38% / 45% 64% 36% 55%; min-height: 520px; display: flex; align-items: center; gap: 30px; }
.capco-step--left .capco-step__blob { grid-column: 1; margin: 0 60px 0 30px; flex-direction: row; text-align: right; }
.capco-step--right .capco-step__blob { grid-column: 2; margin: 0 30px 0 60px; padding: 110px 70px 110px 40px; border-radius: 42% 58% 38% 62% / 64% 45% 55% 36%; flex-direction: row-reverse; text-align: left; }
.capco-step:nth-child(3n) .capco-step__blob { border-radius: 50% 50% 60% 40% / 40% 55% 45% 60%; }
.capco-step__blob--orange { background: #E8794A; } .capco-step__blob--green { background: #36B37C; } .capco-step__blob--teal { background: #117283; } .capco-step__blob--olive { background: #537E34; }
.capco-step__text { flex: 0 0 240px; }
.capco-step h3 { font-family: var(--capco-font-sans); font-weight: 700; font-size: 22px; line-height: 1.3; margin: 0 0 14px; color: #fff; }
.capco-step p { font-size: 16px; line-height: 1.5; margin: 0; color: #fff; }
.capco-step__img { flex: 0 0 390px; border-radius: 8px; overflow: hidden; box-shadow: 0 10px 26px rgba(0,0,0,.25); }
.capco-step__img img { display: block; width: 100%; height: 255px; object-fit: cover; }
.capco-step--left .capco-step__img { margin-right: -130px; } .capco-step--right .capco-step__img { margin-left: -130px; }
.capco-step::after { content: ""; position: absolute; top: 50%; width: 40px; height: 5px; background: #E8794A; }
.capco-step--left::after { left: calc(50% - 40px); } .capco-step--right::after { left: 50%; }
.capco-tocreate { text-align: center; font-family: var(--capco-font-display); font-weight: 600; font-size: 40px; color: #36B37C; margin: 40px 0 70px; }
.capco-award-label .elementor-heading-title { font-family: var(--capco-font-sans) !important; font-weight: 500 !important; font-size: 31px !important; letter-spacing: 1px; text-transform: uppercase; color: #E8794A !important; text-align: center; }
/* ── Teams mosaic with hover reveal ──────────────────────────────────────── */
.capco-mosaic { display: grid; grid-template-columns: 265px 242px 248px 1fr 260px 240px; gap: 22px; align-items: start; width: 100%; }
.capco-mosaic__item { position: relative; display: flex; flex-direction: column; border-radius: var(--capco-r-img); overflow: hidden; background: #191C1A; text-decoration: none; transition: transform var(--capco-t-fast) var(--capco-ease-out), box-shadow var(--capco-t-fast) var(--capco-ease-out); }
.capco-mosaic__item:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(0,0,0,.4); }
.capco-mosaic__item img { display: block; width: 100%; flex: 1 1 auto; min-height: 0; object-fit: cover; transition: transform .6s var(--capco-ease-out); }
.capco-mosaic__item:hover img { transform: scale(1.03); }
.capco-mosaic__meta { position: static; flex: 0 0 auto; padding: 16px 14px 18px; background: #191C1A; color: #fff; }
.capco-mosaic__meta b { display: block; font-family: var(--capco-font-display); font-weight: 600; font-size: 21px; margin-bottom: 4px; }
.capco-mosaic__meta span { font-size: 15px; line-height: 1.4; }
.capco-mosaic__intro { grid-column: 4 / 7; grid-row: 1; padding: 20px 0 0 40px; font-weight: 700; font-size: 21px; line-height: 1.55; color: #71E3B2; }
.capco-mosaic__item--1 { grid-column: 1; grid-row: 1 / 3; height: 500px; margin-top: 0; }
.capco-mosaic__item--2 { grid-column: 2; grid-row: 1 / 3; height: 440px; margin-top: 140px; }
.capco-mosaic__item--3 { grid-column: 3; grid-row: 1 / 3; height: 480px; margin-top: 30px; }
.capco-mosaic__item--4 { grid-column: 5; grid-row: 2; height: 480px; margin-top: 20px; }
.capco-mosaic__item--5 { grid-column: 6; grid-row: 2; height: 420px; margin-top: 100px; }
/* ── Article (single post) ───────────────────────────────────────────────── */
.capco-article-hero .capco-hero__bg { background-position: 70% 40%; }
.capco-article-hero .elementor-widget-theme-post-title .elementor-heading-title { font-family: var(--capco-font-display); font-weight: 600; font-size: 70px; line-height: 1.13; color: #36B37C; }
.capco-article-hero .elementor-widget-theme-post-excerpt { color: #71E3B2; font-weight: 700; font-size: 20px; line-height: 1.6; max-width: 640px; }
.capco-article-body { display: grid; grid-template-columns: 1fr 800px; width: 100%; }
.capco-article-body > .elementor-widget { grid-column: 2; }
.capco-prose, .capco-prose .elementor-widget-container { font-size: 17px; line-height: 1.65; color: #363636; }
.capco-prose h2 { font-family: var(--capco-font-display); font-weight: 600; font-size: 36px; line-height: 1.2; color: #36B37C; margin: 56px 0 36px; padding: 18px 0; border-top: 3px solid #36B37C; border-bottom: 3px solid #36B37C; }
.capco-prose > h2:first-child, .capco-prose .elementor-widget-container > h2:first-child { margin-top: 0; }
.capco-prose h3 { font-family: var(--capco-font-display); font-weight: 600; font-size: 30px; line-height: 1.2; color: #363636; margin: 48px 0 20px; }
.capco-prose h4 { font-family: var(--capco-font-sans); font-weight: 700; font-size: 20px; color: #363636; margin: 36px 0 14px; }
.capco-prose p { margin: 0 0 1.3em; }
.capco-prose strong { font-weight: 700; }
.capco-prose a { color: #36B37C; font-weight: 700; text-decoration: none; }
.capco-prose img { display: block; width: 100%; height: auto; border-radius: var(--capco-r-img); }
.capco-prose img + img { margin-top: 18px; }
.capco-prose .capco-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin: 48px 0 56px; margin-left: calc(-1 * (800px * 0.51)); width: calc(100% + 800px * 0.51); }
.capco-prose .capco-gallery img { height: 493px; object-fit: cover; margin: 0; }
.capco-prose .capco-gallery img:only-child { grid-column: 1 / -1; height: auto; }
.capco-prose blockquote { border-left: 0; margin: 40px 0; padding: 0; }
.capco-statement { width: 100%; border-top: 6px solid #36B37C; border-bottom: 6px solid #36B37C; padding: 38px 20px; text-align: center; }
.capco-statement .elementor-heading-title { font-family: var(--capco-font-display); font-weight: 600; font-size: 60px; line-height: 1.1; color: #36B37C; }
.capco-related .elementor-posts-container { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.capco-related .elementor-post { margin: 0 !important; width: auto !important; }
.capco-related .elementor-post__thumbnail__link { display: block; border-radius: var(--capco-r-img); overflow: hidden; }
.capco-related .elementor-post__thumbnail { padding-bottom: 76% !important; }
.capco-related .elementor-post__thumbnail img { transition: transform .6s var(--capco-ease-out); }
.capco-related .elementor-post:hover .elementor-post__thumbnail img { transform: scale(1.04); }
.capco-related .elementor-post__title { font-family: var(--capco-font-display); font-weight: 600; font-size: 24px; line-height: 1.2; margin: 18px 0 8px; }
.capco-related .elementor-post__title a { color: #363636; text-decoration: none; }
.capco-related .elementor-post__read-more { font-weight: 700; font-size: 15px; color: #36B37C; }
/* ── Inner pages: responsive ─────────────────────────────────────────────── */
@media (max-width: 1024px) {
	.capco-bento { grid-template-columns: 1fr; }
	.capco-card--w11, .capco-card--w15, .capco-card--w26 { grid-column: auto; }
	.capco-card--logs .capco-card__img { width: 100%; height: 300px; }
	.capco-idea { grid-template-columns: 1fr; gap: 30px; }
	.capco-mosaic { grid-template-columns: repeat(2, 1fr); }
	.capco-mosaic__intro { grid-column: 1 / -1; grid-row: 1; padding: 0 0 20px; }
	.capco-mosaic__item { height: 380px !important; margin-top: 0 !important; grid-row: auto !important; grid-column: auto !important; }
	.capco-article-body { grid-template-columns: 1fr; }
	.capco-article-body > .elementor-widget { grid-column: 1; }
	.capco-prose .capco-gallery { margin-left: 0; width: 100%; }
	.capco-prose .capco-gallery img { height: 240px; }
	.capco-stacks { gap: 20px; }
	.capco-step__img { flex: 0 0 300px; }
}
@media (max-width: 767px) {
	.capco-hero--inner .capco-hero__content .elementor-widget-heading .elementor-heading-title { font-size: 34px !important; }
	.capco-hero--inner .capco-hero__rule { width: 100%; height: 4px; margin-bottom: 24px; }
	.capco-hero--inner .capco-hero__content { padding: 14px 0 22px !important; }
	.capco-edit .capco-row { flex-direction: column !important; padding: 0 20px !important; }
	.capco-edit .capco-photo, .capco-edit .capco-photo--tall { min-height: 250px !important; width: 100% !important; max-width: none !important; margin: 0 0 24px !important; }
	.capco-edit .elementor-widget-heading .elementor-heading-title { font-size: 42px !important; line-height: 1.2 !important; }
	.capco-card { flex-direction: column-reverse !important; align-items: flex-start; padding: 24px; gap: 22px; }
	.capco-card__img { width: 100% !important; height: 250px !important; }
	.capco-card--h .capco-card__img { height: 420px !important; width: 60% !important; }
	.capco-card h3 { font-size: 30px; margin-bottom: 14px; }
	.capco-card--wide .capco-card__body { max-width: none; }
	.capco-card:nth-child(even) .capco-card__body { text-align: right; align-self: flex-end; }
	.capco-stacks { grid-template-columns: repeat(3, 1fr); gap: 10px; }
	.capco-stack { min-height: 250px; box-shadow: 0 4px 14px rgba(0,0,0,.14); }
	.capco-stack__bar { font-size: 22px; padding: 10px 0 8px; }
	.capco-stack__bar--empty { height: 34px; }
	.capco-stack__body { padding: 16px 10px 14px; }
	.capco-stack__title { font-size: 11px; margin: 0; }
	.capco-stack__body p { display: none; }
	.capco-stack--build .capco-stack__bar--olive { grid-template-columns: 1fr; padding: 24px 20px; }
	.capco-timeline::before { left: 50%; }
	.capco-step { grid-template-columns: 1fr; margin-bottom: 40px; }
	.capco-step__blob, .capco-step--left .capco-step__blob, .capco-step--right .capco-step__blob { grid-column: 1; margin: 0 !important; flex-direction: column !important; text-align: center !important; padding: 90px 30px 60px; min-height: 0; border-radius: 46% 54% 50% 50% / 26% 24% 74% 76%; }
	.capco-step:nth-child(even) .capco-step__blob { border-radius: 54% 46% 52% 48% / 24% 28% 72% 76%; }
	.capco-step__img, .capco-step--left .capco-step__img, .capco-step--right .capco-step__img { flex: 0 0 auto; width: 100%; margin: -160px 0 0 !important; }
	.capco-step__text { flex: 0 0 auto; }
	.capco-step::after { display: none; }
	.capco-tocreate { font-size: 34px; margin: 30px 0 30px; }
	.capco-award-label .elementor-heading-title { font-size: 22px !important; }
	.capco-mosaic { grid-template-columns: 1fr 1fr; gap: 14px; }
	.capco-mosaic__item { height: 300px !important; }
	.capco-mosaic__item:nth-child(even) { margin-top: 60px !important; }
	.capco-mosaic__intro { font-size: 18px; }
	.capco-idea h3 { font-size: 26px; }
	.capco-article-hero .elementor-widget-theme-post-title .elementor-heading-title { font-size: 34px; }
	.capco-prose h2 { font-size: 30px; }
	.capco-prose .capco-gallery { grid-template-columns: 1fr; gap: 14px; }
	.capco-prose .capco-gallery img { height: 240px; }
	.capco-statement .elementor-heading-title { font-size: 30px; }
	.capco-related .elementor-posts-container { grid-template-columns: 1fr; }
}

/* inner hero on mobile: photo comes as a separate block below the text */
@media (max-width: 767px) { .capco-hero--inner { background-image: none !important; } .capco-hero--inner .capco-hero__wash { display: none; } }
/* white hand-drawn rings (Thinking principles) — CSS, no asset */
.capco-ringswrap { inset: 0 !important; overflow: hidden; }
.capco-rings { position: absolute; left: -380px; bottom: -760px; width: 1700px; height: 1400px; pointer-events: none; opacity: .95; }
.capco-rings span { position: absolute; inset: 0; border: 9px solid #fff; border-radius: 50%; transform: rotate(-8deg); }
.capco-rings span:nth-child(2) { inset: 60px; border-width: 8px; transform: rotate(4deg) scale(.98,1.02); }
.capco-rings span:nth-child(3) { inset: 125px; border-width: 8px; transform: rotate(-3deg) scale(1.01,.97); }
.capco-rings span:nth-child(4) { inset: 195px; border-width: 7px; transform: rotate(6deg); }
.capco-rings span:nth-child(5) { inset: 270px; border-width: 7px; transform: rotate(-5deg) scale(.99,1.03); }
.capco-rings span:nth-child(6) { inset: 350px; border-width: 6px; transform: rotate(2deg); }
.capco-dark { position: relative; overflow: hidden; }
.capco-dark > .e-con-inner > .elementor-widget, .capco-dark > .e-con-inner > .e-con { position: relative; z-index: 1; }
@media (max-width: 767px) { .capco-rings { width: 700px; height: 700px; left: -200px; bottom: -300px; } }

/* article hero background = featured image widget */
.capco-article-bg { position: absolute !important; inset: 0; z-index: 0; margin: 0 !important; }
.capco-article-bg .elementor-widget-container, .capco-article-bg figure, .capco-article-bg a { position: absolute; inset: 0; margin: 0; }
.capco-article-bg img { width: 100%; height: 100%; object-fit: cover; object-position: 68% 40%; }
.capco-article-hero .capco-hero__wash { z-index: 1; }
.capco-article-hero .capco-hero__content { z-index: 2; }
.capco-hero-mobile-photo img { width: 100%; height: auto; }
@media (max-width: 767px) { .capco-article-bg { display: none !important; } }
/* inner pages mobile: hide desktop hero photo, show mobile one full-bleed */
@media (max-width: 767px) { .capco-hero--inner { background-image: none !important; } }

/* ── Inner pages: mobile content order (comp: heading → photo → text → cta) ── */
@media (max-width: 767px) {
	.capco-edit .capco-row > .e-con { display: contents; }
	.capco-edit .m-o1 { order: 1; } .capco-edit .m-o2 { order: 2; } .capco-edit .m-o3 { order: 3; } .capco-edit .m-o4 { order: 4; }
	.capco-edit .capco-row { display: flex !important; }
	.capco-process-intro .capco-row { display: flex !important; }
	.capco-process-intro .capco-row > .e-con { display: contents; }
	.capco-process-intro .m-o1 { order: 1; } .capco-process-intro .m-o2 { order: 2; } .capco-process-intro .m-o3 { order: 3; }
	.capco-process-intro .capco-stacks { margin: 0 0 32px; }
	.capco-stack--build .capco-stack__desc { display: none; }
	.capco-stack--build { margin-bottom: 40px; }
	.capco-hero--inner .capco-hero__content .elementor-widget-text-editor { font-size: 15px !important; }
	.capco-card { padding: 22px 20px 26px; }
	.capco-card__img { height: 300px !important; }
	.capco-card--h .capco-card__img { width: 100% !important; height: 300px !important; }
	.capco-card:nth-child(even) .capco-card__body { text-align: right; align-self: stretch; }
	.capco-card:nth-child(even) h3 { text-align: right; }
	.capco-timeline { padding-top: 80px; }
	.capco-step__blob, .capco-step--left .capco-step__blob, .capco-step--right .capco-step__blob { padding: 40px 28px 50px; }
	.capco-step__img, .capco-step--left .capco-step__img, .capco-step--right .capco-step__img { margin: 0 0 18px !important; order: -1; }
	.capco-step h3 { font-size: 20px; }
}
/* related thumbnails + award slide caption on small screens */
.capco-related img { max-width: 100% !important; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 767px) {
	.capco-timeline-sec .capco-slide { min-height: 420px !important; }
	.capco-slide__caption { grid-template-columns: 1fr; gap: 8px; padding: 12px 16px 14px; text-align: left; }
	.capco-slide__desc { display: none; }
	.capco-slide__more { text-align: left; }
	.capco-slide__arrow { width: 40px; height: 40px; }
}
/* Related posts: beat Elementor's generated widget CSS */
.capco-related .elementor-post .elementor-post__title, .capco-related .elementor-post .elementor-post__title a { font-family: var(--capco-font-display) !important; font-weight: 600 !important; font-size: 24px !important; line-height: 1.2 !important; color: #363636 !important; }
.capco-related .elementor-post .elementor-post__title { margin: 18px 0 8px !important; }
.capco-related .elementor-post .elementor-post__read-more { font-weight: 700; font-size: 15px; color: #36B37C !important; }

/* ══════════════════════════════════════════════════════════════════════════
   Listings (Projects · News), Project page, Contact — 2026-09-14/15
   ══════════════════════════════════════════════════════════════════════════ */
.capco-ico { width: 1em; height: 1em; display: inline-block; vertical-align: middle; color: #36B37C; }
.capco-ico * { fill: currentColor; }
/* ── Page title (light pages) ── */
.capco-pagetitle .elementor-heading-title { font-family: var(--capco-font-display); font-weight: 600; font-size: 75px; line-height: 1.1; color: #363636; }
/* ── Listing bar ── */
.capco-listing { width: 100%; }
.capco-listing__bar { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 0 0 20px; border-bottom: 3px solid #E8E8E8; margin-bottom: 40px; }
.capco-tabs { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.capco-tab { font-weight: 500; font-size: 17px; color: #363636; text-decoration: none; position: relative; padding: 4px 0; transition: color var(--capco-t-fast) var(--capco-ease-out); }
.capco-tab::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -2px; height: 2px; background: #E8794A; transition: right var(--capco-t-fast) var(--capco-ease-out); }
.capco-tab:hover { color: #E8794A; }
.capco-tab.is-active { color: #E8794A; }
.capco-tab.is-active::after { right: 0; }
.capco-listing__tools { display: flex; align-items: center; gap: 20px; flex: 0 0 auto; }
.capco-view { display: flex; gap: 6px; }
.capco-view__btn { width: 30px; height: 30px; background: none; border: 0; padding: 2px; cursor: pointer; color: #BEBEBE; transition: color var(--capco-t-fast), transform var(--capco-t-fast) var(--capco-ease-out); }
.capco-view__btn svg { width: 100%; height: 100%; fill: currentColor; }
.capco-view__btn:hover { color: #808080; transform: translateY(-1px); }
.capco-view__btn[aria-pressed="true"] { color: #363636; }
.capco-search { display: flex; align-items: center; background: #FCFCFC; border: 1px solid #E8E8E8; border-radius: 999px; padding: 4px 4px 4px 22px; width: 425px; max-width: 100%; box-shadow: 0 2px 6px rgba(0,0,0,.05); transition: box-shadow var(--capco-t-fast), border-color var(--capco-t-fast); }
.capco-search:focus-within { border-color: #36B37C; box-shadow: 0 4px 14px rgba(54,179,124,.18); }
.capco-search__input { flex: 1 1 auto; min-width: 0; border: 0; background: none; font-family: var(--capco-font-sans); font-size: 15px; color: #363636; outline: none; }
.capco-search__input::placeholder { color: #808080; }
.capco-search__btn { font-family: var(--capco-font-sans); font-weight: 700; font-size: 13px; color: #fff; background: #36B37C; border: 2px solid #36B37C; border-radius: 999px; padding: 8px 26px; cursor: pointer; transition: background var(--capco-t-fast), color var(--capco-t-fast); }
.capco-search__btn:hover { background: #fff; color: #36B37C; }
/* ── Project cards: reading (list) view ── */
.capco-listing__grid { display: grid; gap: 40px; }
.capco-listing--projects.is-list .capco-listing__grid { grid-template-columns: 1fr; gap: 0; }
.capco-listing--projects.is-list .capco-pcard { display: grid; grid-template-columns: 540px 1fr; gap: 0; padding: 46px 0 40px; border-bottom: 3px solid #E8E8E8; }
.capco-listing--projects.is-list .capco-pcard:last-child { border-bottom: 0; }
.capco-pcard__title { font-family: var(--capco-font-display); font-weight: 600; font-size: 48px; line-height: 1.1; margin: 0 0 40px; max-width: 470px; }
.capco-pcard__title a { color: #363636; text-decoration: none; transition: color var(--capco-t-fast); }
.capco-pcard__title a:hover { color: #36B37C; }
.capco-pcard__lede { font-size: 17px; line-height: 1.5; color: #363636; margin: 0 0 42px; max-width: 470px; }
.capco-pcard__cta { display: inline-block; text-decoration: none; }
.capco-pcard__cta .elementor-button { display: inline-block; }
.capco-pcard__media { position: relative; display: block; border-radius: var(--capco-r-img); overflow: hidden; background: #191C1A; aspect-ratio: 1066 / 540; }
.capco-pcard__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--capco-ease-out); }
.capco-pcard:hover .capco-pcard__media img { transform: scale(1.03); }
.capco-pcard__bar { position: absolute; left: 0; right: 0; bottom: 0; display: flex; justify-content: space-between; align-items: center; background: rgba(28,28,28,.9); color: #fff; font-size: 15px; padding: 10px 22px; }
.capco-pcard__year { font-weight: 500; }
.capco-pcard__gridbar { display: none; }
/* ── Project cards: grid view ── */
.capco-listing--projects.is-grid .capco-listing__grid, .capco-related-projects { grid-template-columns: repeat(3, 1fr); gap: 20px; }
.capco-related-projects { display: grid; width: 100%; }
.capco-listing--projects.is-grid .capco-pcard__text { display: none; }
.capco-listing--projects.is-grid .capco-pcard__bar { display: none; }
.capco-listing--projects.is-grid .capco-pcard__media, .capco-pcard--grid .capco-pcard__media { aspect-ratio: 525 / 400; }
.capco-listing--projects.is-grid .capco-pcard__gridbar, .capco-pcard--grid .capco-pcard__gridbar { position: absolute; left: 0; right: 0; bottom: 0; display: flex; align-items: center; justify-content: space-between; gap: 16px; background: rgba(28,28,28,.9); color: #fff; padding: 14px 24px 16px; }
.capco-pcard--grid { display: block; text-decoration: none; }
.capco-pcard__gridtitle { font-weight: 700; font-size: 15px; line-height: 1.3; text-transform: uppercase; max-width: 55%; }
.capco-pcard__gridbar .elementor-button { display: inline-block; white-space: nowrap; }
.capco-pcard { transition: opacity var(--capco-t-fast) var(--capco-ease-out), transform var(--capco-t-fast) var(--capco-ease-out); }
.capco-pcard.is-hidden, .capco-ncard.is-hidden { display: none !important; }
.capco-pcard.is-leaving, .capco-ncard.is-leaving { opacity: 0; transform: scale(.98); }
.capco-pcard.is-entering, .capco-ncard.is-entering { opacity: 0; transform: translateY(10px); }
.capco-listing__empty { font-size: 17px; color: #808080; padding: 40px 0; }
/* ── News cards ── */
.capco-listing--news .capco-listing__grid { grid-template-columns: repeat(3, 1fr); gap: 20px; }
.capco-ncard { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: space-between; min-height: 545px; padding: 34px 44px 24px; border-radius: var(--capco-r-img); overflow: hidden; background: #191C1A center/cover no-repeat; color: #fff; text-align: center; text-decoration: none; box-shadow: 0 6px 18px rgba(0,0,0,.16); isolation: isolate; transition: transform var(--capco-t-fast) var(--capco-ease-out), box-shadow var(--capco-t-fast) var(--capco-ease-out), opacity var(--capco-t-fast); }
.capco-ncard::before { content: ""; position: absolute; inset: 0; background: var(--capco-overlay, #537E34); opacity: .88; z-index: -1; transition: opacity var(--capco-t-fast); }
.capco-ncard:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(0,0,0,.22); }
.capco-ncard:hover::before { opacity: .8; }
.capco-ncard--events-awards { --capco-overlay: #537E34; } .capco-ncard--in-build { --capco-overlay: #117283; } .capco-ncard--design-development, .capco-ncard--on-the-drawing-board { --capco-overlay: #E96534; } .capco-ncard--thoughts-thinking { --capco-overlay: #36B37C; }
.capco-ncard__cat { font-weight: 700; font-size: 15px; }
.capco-ncard__mid { display: flex; flex-direction: column; gap: 18px; }
.capco-ncard__place { font-weight: 700; font-size: 20px; }
.capco-ncard__title { font-family: var(--capco-font-display); font-weight: 600; font-size: 36px; line-height: 1.08; }
.capco-ncard__more { font-weight: 700; font-size: 15px; transition: transform var(--capco-t-fast) var(--capco-ease-out); }
.capco-ncard:hover .capco-ncard__more { transform: translateX(4px); }
/* ── Project page ── */
.capco-ppage-head { display: grid; grid-template-columns: 405px 1fr; gap: 0; width: 100%; align-items: start; }
.capco-ppage-head .capco-ppage-deco { position: relative; min-height: 1px; }
.capco-ppage-head .capco-ppage-deco img { position: absolute; left: -60px; top: -40px; width: 520px; max-width: none; opacity: .45; filter: grayscale(1); pointer-events: none; }
.capco-ppage-title { padding: 40px 0 0 400px; }
.capco-ppage-title .elementor-widget-theme-post-title .elementor-heading-title { font-family: var(--capco-font-display); font-weight: 600; font-size: 60px; line-height: 1.1; color: #363636; }
.capco-ppage-title .elementor-widget-theme-post-excerpt { font-size: 17px; line-height: 1.5; color: #363636; max-width: 520px; margin-top: 28px; }
.capco-ppage-body { display: grid; grid-template-columns: 255px 1fr; gap: 150px; width: 100%; align-items: start; }
.capco-pmeta { position: sticky; top: 110px; font-size: 15px; color: #363636; }
.capco-pmeta__aud { display: flex; align-items: center; gap: 12px; font-size: 17px; font-weight: 500; padding: 18px 0; border-top: 3px solid #E8E8E8; border-bottom: 3px solid #E8E8E8; }
.capco-pmeta__aud .capco-ico { width: 30px; height: 26px; }
.capco-pmeta__row { display: flex; flex-direction: column; gap: 4px; padding: 14px 0; border-bottom: 3px solid #E8E8E8; }
.capco-pmeta__k { font-weight: 500; font-size: 17px; }
.capco-pmeta__v { font-size: 15px; color: #4F4D4E; }
.capco-pclient { display: none; }
.capco-ppage-hero { width: 100%; }
.capco-ppage-hero .elementor-widget-theme-post-featured-image img, .capco-ppage-hero img { display: block; width: 100%; height: auto; border-radius: var(--capco-r-img); }
.capco-ppage-content .capco-prose h2 { color: #363636; border: 0; padding: 0; font-size: 44px; line-height: 1.15; margin: 64px 0 40px; }
.capco-ppage-content .capco-prose .capco-gallery { margin-left: -270px; width: calc(100% + 270px); gap: 18px; }
.capco-ppage-content .capco-prose .capco-gallery img { height: 250px; }
.capco-ppage-content .capco-prose > img, .capco-ppage-content .capco-prose .elementor-widget-container > img { margin-left: -270px; width: calc(100% + 270px); max-width: none; }
/* ── Contact ── */
.capco-contact { background: #E8794A; color: #fff; }
.capco-contact__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; width: 100%; align-items: start; }
.capco-contact__col { text-align: center; position: relative; }
.capco-contact__title { font-family: var(--capco-font-display); font-weight: 600; font-size: 90px; line-height: 1.05; margin: 0 0 60px; }
.capco-contact__title--small { font-size: 90px; margin-top: 40px; }
.capco-contact__lines { font-weight: 700; font-size: 26px; line-height: 1.9; }
.capco-contact__lines a { color: #fff; text-decoration: none; transition: opacity var(--capco-t-fast); }
.capco-contact__lines a:hover { opacity: .85; }
.capco-contact__address { font-style: normal; font-weight: 700; font-size: 22px; line-height: 1.6; }
.capco-contact__w3w { margin-top: 36px; font-weight: 700; font-size: 20px; line-height: 1.6; }
.capco-contact__bubble { position: absolute; pointer-events: none; }
.capco-contact__bubble img { display: block; width: 100%; height: auto; }
.capco-contact__bubble--hi { width: 150px; right: 140px; bottom: -120px; }
.capco-contact__bubble--howdy { width: 340px; left: 50%; top: -240px; transform: translateX(-10%); }
.capco-contact__map { width: 100vw !important; max-width: none !important; margin-left: calc(-1 * (100vw - 100%) / 2) !important; }
.capco-contact__map img { display: block; width: 100%; height: auto; }
.capco-contact__hq { position: absolute; left: 58.5%; top: 43%; color: #E8794A; font-weight: 700; font-size: 26px; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.capco-contact__hq svg { width: 80px; height: 100px; fill: #E8794A; }
/* Inner-page mobile menu icons + audience bar use the real icon set */
.capco-audience .capco-ico, .capco-mgroup__list .capco-ico, .capco-mega__head .capco-ico { width: 30px; height: 26px; }
.capco-mgroup__list .capco-ico { color: #fff; }
.capco-mega__head .capco-ico { color: currentColor; }
/* Responsive */
@media (max-width: 1024px) {
	.capco-listing__bar { flex-direction: column; align-items: stretch; }
	.capco-listing--projects.is-list .capco-pcard { grid-template-columns: 1fr; gap: 24px; }
	.capco-listing--projects.is-grid .capco-listing__grid, .capco-listing--news .capco-listing__grid, .capco-related-projects { grid-template-columns: repeat(2, 1fr); }
	.capco-ppage-head { grid-template-columns: 1fr; } .capco-ppage-title { padding: 0; } .capco-ppage-head .capco-ppage-deco { display: none; }
	.capco-ppage-body { grid-template-columns: 1fr; gap: 40px; } .capco-pmeta { position: static; }
	.capco-ppage-content .capco-prose .capco-gallery, .capco-ppage-content .capco-prose > img { margin-left: 0; width: 100%; }
	.capco-contact__grid { grid-template-columns: 1fr; gap: 80px; } .capco-contact__title { font-size: 60px; }
}
@media (max-width: 767px) {
	.capco-pagetitle .elementor-heading-title { font-size: 42px !important; }
	.capco-listing__bar { gap: 16px; padding-bottom: 16px; margin-bottom: 20px; }
	.capco-listing__tools { flex-direction: row; gap: 14px; }
	.capco-search { width: 100%; padding-left: 16px; } .capco-search__btn { display: none; }
	.capco-tabs { gap: 6px 22px; } .capco-tab { font-size: 16px; }
	.capco-listing--projects.is-list .capco-listing__grid, .capco-listing--projects.is-grid .capco-listing__grid, .capco-listing--news .capco-listing__grid, .capco-related-projects { grid-template-columns: 1fr; gap: 14px; }
	.capco-listing--projects .capco-pcard { display: block !important; padding: 0 !important; border: 0 !important; }
	.capco-listing--projects .capco-pcard__text, .capco-listing--projects .capco-pcard__bar { display: none !important; }
	.capco-listing--projects .capco-pcard__media, .capco-pcard--grid .capco-pcard__media { aspect-ratio: 350 / 350 !important; }
	.capco-listing--projects .capco-pcard__gridbar, .capco-pcard--grid .capco-pcard__gridbar { display: flex !important; padding: 12px 16px 14px; }
	.capco-pcard__gridtitle { font-size: 13px; max-width: 60%; } .capco-pcard__ctalong { display: none; }
	.capco-ncard { min-height: 340px; padding: 28px 30px 32px; } .capco-ncard__title { font-size: 28px; } .capco-ncard__place { font-size: 18px; }
	.capco-ppage-title .elementor-widget-theme-post-title .elementor-heading-title { font-size: 36px; }
	.capco-ppage-title .elementor-widget-theme-post-excerpt { font-size: 16px; margin-top: 18px; }
	.capco-pmeta { border-top: 3px solid #E8E8E8; padding-top: 8px; }
	.capco-pmeta__aud { border: 0; padding: 8px 0 4px; } .capco-pmeta__row { border: 0; padding: 2px 0; flex-direction: row; gap: 8px; } .capco-pmeta__k { display: none; }
	.capco-pmeta__v { font-size: 15px; color: #363636; }
	.capco-ppage-content .capco-prose h2 { font-size: 30px; margin: 40px 0 20px; }
	.capco-ppage-content .capco-prose .capco-gallery { grid-template-columns: repeat(3, 1fr); gap: 6px; } .capco-ppage-content .capco-prose .capco-gallery img { height: 110px; }
	.capco-contact__title, .capco-contact__title--small { font-size: 42px; margin-bottom: 30px; }
	.capco-contact__lines { font-size: 20px; } .capco-contact__address { font-size: 18px; }
	.capco-contact__bubble--hi { width: 90px; right: 10px; bottom: -70px; } .capco-contact__bubble--howdy { width: 200px; top: -140px; }
	.capco-contact__hq { font-size: 16px; left: 56%; } .capco-contact__hq svg { width: 40px; height: 50px; }
}

/* ── Fix pass: kit button/link resets on custom controls, notch, contact sizing ── */
body .capco-view__btn, body .capco-view__btn:focus, body .capco-view__btn:hover { background: none !important; border: 0 !important; padding: 2px !important; border-radius: 0 !important; box-shadow: none !important; }
body .capco-view__btn { color: #BEBEBE !important; } body .capco-view__btn:hover { color: #808080 !important; } body .capco-view__btn[aria-pressed="true"] { color: #363636 !important; }
body .capco-search__btn { background: #36B37C !important; color: #fff !important; border: 2px solid #36B37C !important; border-radius: 999px !important; padding: 8px 26px !important; font-family: var(--capco-font-sans) !important; font-weight: 700 !important; font-size: 13px !important; line-height: 1.2 !important; }
body .capco-search__btn:hover { background: #fff !important; color: #36B37C !important; }
body .capco-search__input, body .capco-search__input:focus { background: none !important; border: 0 !important; box-shadow: none !important; color: #363636 !important; }
.capco-pcard__media, .capco-pcard__media *, .capco-pcard--grid, .capco-pcard--grid * { color: #fff; }
.capco-pcard__gridtitle { color: #fff !important; }
.elementor-widget-heading.capco-pagetitle .elementor-heading-title { color: #363636 !important; font-family: var(--capco-font-display) !important; font-weight: 600 !important; font-size: 75px !important; line-height: 1.1 !important; }
.capco-tab, .capco-tab:hover, .capco-tab.is-active { text-decoration: none !important; }
.capco-contact, .capco-footer { position: relative; }
.capco-contact { overflow: visible !important; }
.capco-contact__grid { padding: 40px 0 60px; }
.capco-contact__col { display: flex; flex-direction: column; align-items: center; }
.capco-contact__title { font-size: 106px; margin: 0 0 72px; }
.capco-contact__title--small { font-size: 106px; margin: 0 0 48px; }
.capco-contact__lines { position: relative; display: inline-block; text-align: center; }
.capco-contact__bubble--hi { right: -190px; bottom: -110px; width: 150px; }
.capco-contact__bubble--howdy { position: static; transform: none; width: 340px; margin: 0 0 4px 120px; }
.capco-contact__hq { display: none; }
.capco-contact__map { position: relative; z-index: 1; }
.capco-contact__mapwrap { margin-top: -1px !important; }
.capco-contact-map-sec { position: relative; overflow: hidden; }
@media (max-width: 1024px) { .capco-contact__title, .capco-contact__title--small { font-size: 64px; } .capco-contact__bubble--howdy { width: 240px; margin-left: 60px; } .capco-contact__bubble--hi { right: -120px; width: 110px; } }
@media (max-width: 767px) {
	.capco-contact__title, .capco-contact__title--small { font-size: 44px !important; margin-bottom: 30px !important; }
	.capco-contact__grid { padding: 0 0 40px; gap: 70px; }
	.capco-contact__bubble--howdy { width: 170px; margin: 0 0 0 40px; } .capco-contact__bubble--hi { right: -90px; bottom: -80px; width: 90px; }
	.capco-listing__bar { display: flex; flex-direction: column; }
	.capco-listing__tools { order: -1; }
	.capco-listing--projects .capco-tabs { padding-top: 4px; }
	.capco-search { padding: 4px 4px 4px 16px; } body .capco-search__btn { display: inline-block !important; padding: 8px 16px !important; }
}

/* ── Drip pattern (design-system): the section's colour hangs down into the next section as an organic tongue ── */
.capco-drip { position: relative; overflow: visible !important; }
.capco-drip::after { content: ""; position: absolute; left: 0; right: 0; top: calc(100% - 1px); height: 150px; background: var(--capco-drip, #fff); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1920 150' preserveAspectRatio='none'%3E%3Cpath d='M0 0H1920V1H1010C998 32 970 46 956 60C940 76 942 128 920 140C898 128 900 76 884 60C870 46 842 32 830 1H0Z'/%3E%3C/svg%3E") center top / 1920px 100% no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1920 150' preserveAspectRatio='none'%3E%3Cpath d='M0 0H1920V1H1010C998 32 970 46 956 60C940 76 942 128 920 140C898 128 900 76 884 60C870 46 842 32 830 1H0Z'/%3E%3C/svg%3E") center top / 1920px 100% no-repeat; z-index: 5; pointer-events: none; }
.capco-drip--short::after { height: 115px; }
@media (max-width: 767px) { .capco-drip::after { height: 90px; } .capco-drip--short::after { height: 70px; } }

/* ── Contact: full-width halves, comp offsets ── */
.capco-contact { --capco-drip: #E8794A; }
.capco-contact-map-sec { --capco-drip: #D2F8EB; }
.capco-contact__grid { width: 100vw; margin-left: calc(-1 * (100vw - 100%) / 2); grid-template-columns: 1fr 1fr; gap: 0; padding: 0; }
.capco-contact__col:first-child { padding-top: 130px; }
.capco-contact__title { margin: 0 0 56px; }
.capco-contact__title--small { margin: 0 0 36px; }
.capco-contact__bubble--howdy { width: 340px; margin: 0 0 16px 0; transform: translateX(-70px); }
.capco-contact__bubble--hi { left: 100%; right: auto; bottom: auto; top: -30px; margin-left: 12px; width: 150px; }
.capco-contact__map { z-index: auto; }
.capco-contact-map-sec { overflow: visible !important; }

/* ── Project page: comp geometry (title col at 960, meta beside the hero, 806px prose column) ── */
.capco-ppage { position: relative; }
.capco-ppage-head { grid-template-columns: 820px 1fr; }
.capco-ppage-head .capco-ppage-deco { position: static; }
.capco-ppage-head .capco-ppage-deco img { left: 110px; top: 190px; width: 648px; opacity: .35; }
.capco-ppage-title { padding: 0; }
.capco-ppage-title .elementor-widget-theme-post-title { max-width: 616px; }
.capco-ppage-title .elementor-widget-theme-post-excerpt { max-width: 516px; margin-top: 22px; }
.capco-ppage-herorow { display: grid !important; grid-template-columns: 414px 1fr; width: 100%; align-items: start; position: relative; z-index: 1; }
.capco-ppage-herorow > .e-con, .capco-ppage-body > .e-con { width: 100% !important; max-width: 100%; }
.capco-pmetawrap { padding-top: 16px; }
.capco-pmeta { position: static; width: 218px; }
.capco-pmeta__aud .capco-ico { width: 26px; height: 24px; }
.capco-ppage-hero img { aspect-ratio: 1224 / 554; object-fit: cover; }
.capco-ppage-body { display: block; }
.capco-ppage-content { margin-left: 692px; width: 806px; max-width: 806px; }
.capco-ppage-content .capco-prose h2 { font-size: 36px; line-height: 1.15; margin: 56px 0 30px; }
.capco-ppage-content .capco-prose .capco-gallery { margin-left: -278px; width: 1224px; gap: 14px; margin-top: 44px; margin-bottom: 52px; }
.capco-ppage-content .capco-prose .capco-gallery img { height: 280px; border-radius: 8px; }
.capco-ppage-content .capco-prose > img, .capco-ppage-content .capco-prose .elementor-widget-container > img { margin-left: -278px; width: 1224px; border-radius: 8px; }
@media (max-width: 1024px) {
	.capco-ppage-head { grid-template-columns: 1fr; } .capco-ppage-head .capco-ppage-deco img { display: none; }
	.capco-ppage-herorow { grid-template-columns: 200px 1fr; } .capco-pmeta { width: auto; }
	.capco-ppage-content { margin-left: 0; width: 100%; max-width: 100%; }
	.capco-ppage-content .capco-prose .capco-gallery, .capco-ppage-content .capco-prose > img { margin-left: 0; width: 100%; }
}
@media (max-width: 767px) {
	.capco-ppage-herorow { grid-template-columns: 1fr; gap: 28px; } .capco-ppage-herorow > .e-con:first-child { order: 2; }
	.capco-pmetawrap { padding-top: 0; } .capco-pmeta { position: static; }
}

/* ── Projects listing: comp card metrics ── */
.capco-listing--projects.is-list .capco-pcard { grid-template-columns: 460px 1fr; padding: 44px 0 40px; }
.capco-listing--projects.is-list .capco-pcard__text { padding-right: 30px; }
.capco-pcard__title { font-size: 50px; line-height: 1.08; margin: 0 0 40px; max-width: 470px; }
.capco-pcard__lede { font-size: 16px; line-height: 1.5; max-width: 440px; margin: 0 0 36px; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.capco-listing--projects.is-list .capco-pcard__media { aspect-ratio: 1178 / 550; }
.capco-tab { font-size: 15px; font-weight: 500; }
.capco-listing__bar { margin-top: 0; }

/* ── Fix pass 3: measured against comps 13/19/30 + iPhone 5/6 ── */
.elementor-widget.capco-listingwrap { width: 100% !important; max-width: 100%; }
.capco-listing--projects.is-list .capco-pcard { grid-template-columns: 540px 1fr; }
.capco-listing--projects.is-list .capco-pcard__media { aspect-ratio: 1090 / 550; }
.elementor-widget-heading.capco-pagetitle { margin-top: 54px !important; margin-bottom: 20px !important; }
.capco-ppage-title .elementor-heading-title { max-width: 616px; }
.capco-ppage-title .elementor-widget-theme-post-excerpt .elementor-widget-container { max-width: 516px; }
.capco-ppage-head .capco-ppage-deco img { top: 142px; }
.capco-ppage-body { display: grid !important; grid-template-columns: 692px 806px; }
.capco-ppage-body > .capco-ppage-content { grid-column: 2; width: 100% !important; }
.capco-contact__title { margin-bottom: 80px; }
.capco-contact__lines { font-size: 33px; line-height: 1.25; }
.capco-contact__title--small { margin-bottom: 64px; }
.capco-contact__address { font-size: 32px; line-height: 1.2; }
.capco-contact__w3w { font-size: 30px; line-height: 1.2; margin-top: 72px; }
@media (max-width: 1024px) {
	.capco-ppage-body { grid-template-columns: 1fr; } .capco-ppage-body > .capco-ppage-content { grid-column: 1; }
	.capco-contact__lines { font-size: 26px; } .capco-contact__address { font-size: 24px; } .capco-contact__w3w { font-size: 22px; margin-top: 40px; }
}
@media (max-width: 767px) {
	.elementor-widget-heading.capco-pagetitle .elementor-heading-title { font-size: 32px !important; line-height: 1.25 !important; }
	.elementor-widget-heading.capco-pagetitle { margin-top: 30px !important; margin-bottom: 24px !important; }
	.capco-ppage-title .elementor-widget-theme-post-title .elementor-heading-title { font-size: 32px; line-height: 1.25; }
	.capco-ppage-title .elementor-widget-theme-post-excerpt { font-size: 15px; line-height: 1.6; margin-top: 26px; }
	.capco-ppage-herowrap { width: calc(100% + 30px) !important; margin-left: -15px; }
	.capco-ppage-hero img { aspect-ratio: 350 / 260; border-radius: 8px; }
	.capco-pmeta { display: flex; flex-direction: column; }
	.capco-pmeta__aud { order: 1; } .capco-pmeta__row:nth-of-type(3) { order: 2; } .capco-pmeta__row:nth-of-type(1) { order: 3; } .capco-pmeta__row:nth-of-type(2) { order: 4; }
	.capco-listing--projects .capco-pcard { width: calc(100% + 30px); margin-left: -15px; }
	.capco-listing--projects .capco-pcard__media, .capco-listing--projects.is-list .capco-pcard__media { aspect-ratio: 350 / 267; }
	.capco-tab { font-size: 14px; }
	.capco-contact__lines { font-size: 22px; } .capco-contact__address { font-size: 20px; } .capco-contact__w3w { font-size: 18px; margin-top: 28px; }
	.capco-contact__col:first-child { padding-top: 40px; } .capco-contact__title { margin-bottom: 40px; } .capco-contact__title--small { margin-bottom: 28px; }
	.capco-contact__bubble--howdy { transform: translateX(-30px); }
}

/* ── Fix pass 4 ── */
.capco-map { --capco-drip: #E3FAF0; }
.capco-contact__bubble--howdy { width: 380px; }
.capco-ncard { justify-content: center; }
.capco-ncard__cat { position: absolute; top: 34px; left: 0; right: 0; }
.capco-ncard__more { position: absolute; bottom: 24px; left: 0; right: 0; }
.capco-listing__bar { margin-bottom: 12px; }
.capco-listing--projects.is-list .capco-pcard { padding: 44px 0 32px; }
.capco-pcard__lede { max-width: 480px; }
@media (max-width: 1024px) {
	.capco-contact__grid { grid-template-columns: 1fr; width: 100%; margin-left: 0; gap: 70px; }
	.capco-contact__col:first-child { padding-top: 60px; }
}
@media (max-width: 767px) {
	.capco-section.capco-listing-sec { padding-left: 35px !important; padding-right: 35px !important; }
	body .capco-search__btn { display: none !important; }
	.capco-search { padding: 4px 16px; }
	.capco-contact__bubble--howdy { width: 200px; }
	.capco-ncard__cat { top: 24px; } .capco-ncard__more { bottom: 18px; }
}

/* ── Fix pass 5 ── */
.capco-pmetawrap { padding-top: 0; }
.capco-pmeta__aud { padding: 8px 0 14px; }
.capco-ncard__more { bottom: 14px; }
.capco-pcard__lede { -webkit-line-clamp: 3; }
@media (max-width: 767px) {
	.capco-pmeta__aud { order: 1; } .capco-pmeta__row:nth-of-type(4) { order: 2; } .capco-pmeta__row:nth-of-type(2) { order: 3; } .capco-pmeta__row:nth-of-type(3) { order: 4; }
	.capco-ppage-hero img, .capco-ppage-hero .elementor-widget-theme-post-featured-image img { aspect-ratio: 350 / 260 !important; height: auto !important; }
	.capco-listing--projects .capco-pcard__media, .capco-listing--projects.is-grid .capco-pcard__media, .capco-listing--projects.is-list .capco-pcard__media, .capco-pcard--grid .capco-pcard__media { aspect-ratio: 350 / 267 !important; }
	.capco-tabs { gap: 10px 14px; } .capco-tab { font-size: 13px; }
	.capco-contact__col:first-child { padding-top: 16px; }
	.capco-contact__bubble--hi { left: auto; right: -78px; top: -8px; width: 72px; margin: 0; }
	.capco-contact__grid { gap: 56px; }
}

/* ── Fix pass 6 ── */
.capco-ppage-title .elementor-heading-title { max-width: 680px; }
@media (max-width: 767px) {
	.capco-section.capco-ppage { padding-top: 30px !important; }
	.capco-listing--projects .capco-pcard__gridbar { position: absolute; left: 0; right: 0; bottom: 0; align-items: center; justify-content: space-between; gap: 12px; background: rgba(28,28,28,.9); color: #fff; }
	.capco-map .elementor-widget { max-width: calc(100% - 32px); }
	.capco-map .elementor-button, .capco-map .elementor-widget-button .elementor-button { white-space: normal !important; text-align: center; line-height: 1.3 !important; }
	.capco-contact__bubble--hi { right: -66px; width: 66px; }
}

/* ── Fix pass 7 ── */
@media (max-width: 1024px) { .capco-ppage-head .capco-ppage-deco { display: none; } .capco-ppage-head { display: block; } }
@media (max-width: 767px) {
	.capco-pcard--grid .capco-pcard__gridbar { padding: 12px 16px 14px; gap: 12px; }
	.capco-pcard--grid .capco-pcard__gridbar .elementor-button { white-space: nowrap; }
}

/* ── Fix pass 8: boxed sections put their padding on .e-con-inner ── */
@media (max-width: 767px) { .capco-ppage > .e-con-inner { padding-top: 0 !important; } }

/* ═══════════════════════════════════════════════════════════════════════
   ROUND 5 — spacing scale, chip link, icons, mobile cinematic hero, mega menu, lightbox
   Spacing scale (design-system §4): 8 · 12 · 16 · 24 · 32 · 40 · 48 · 64 · 96 · 128
   ═══════════════════════════════════════════════════════════════════════ */
:root { --s-8: 8px; --s-12: 12px; --s-16: 16px; --s-24: 24px; --s-32: 32px; --s-40: 40px; --s-48: 48px; --s-64: 64px; --s-96: 96px; --s-128: 128px; --capco-section-y: var(--s-96); --capco-bar-h: 66px; }

/* icons: the designer's glyphs are filled shapes — never stroke them */
.capco-ico:not(.capco-ico--line), .capco-ico:not(.capco-ico--line) * { fill: currentColor !important; stroke: none !important; }
.capco-ico--line, .capco-ico--line * { fill: none !important; stroke: currentColor !important; } /* provisional About icons are line drawings, not filled glyphs */
.capco-audience svg, .capco-mgroup__list svg:not(.capco-ico--line), .capco-mega__head svg:not(.capco-ico--line) { fill: currentColor !important; stroke: none !important; } /* the About line icons (.capco-ico--line) stay stroked */

/* ── Home rhythm (desktop) ── */
.capco-section.capco-highlights { padding-top: var(--s-64) !important; padding-bottom: var(--capco-section-y) !important; }
.capco-section.capco-way, .capco-section.capco-thinking, .capco-section.capco-newsgrid, .capco-section.capco-stories { padding-top: var(--capco-section-y) !important; padding-bottom: var(--capco-section-y) !important; }
.capco-section.capco-follow { padding-top: 0 !important; padding-bottom: var(--s-128) !important; }
.capco-section.capco-mapsec { padding-top: 0 !important; padding-bottom: 0 !important; }
.capco-label .elementor-heading-title::after { margin-top: var(--s-12); }
.capco-highlights .capco-label, .capco-newsgrid .capco-label, .capco-stories .capco-label { margin-bottom: var(--s-16) !important; }
.capco-thinking .capco-label { margin-bottom: var(--s-32) !important; }
.capco-way .capco-label { margin-bottom: var(--s-64) !important; }
.capco-highlights .capco-btn { margin-top: var(--s-32) !important; }
.capco-way .capco-row + .capco-row { margin-top: 104px !important; }
.capco-way .capco-btn { margin-top: var(--s-48) !important; }
.capco-thinking .capco-col img { height: 430px; }
.capco-thinking .capco-col .elementor-widget-heading { margin-top: var(--s-24) !important; }
.capco-thinking .capco-btn { margin-top: 56px !important; }
.capco-news { min-height: 560px; }
.capco-newsgrid .capco-btn { margin-top: var(--s-40) !important; }
.capco-stories .capco-btn { margin-top: var(--s-24) !important; }
.capco-follow .capco-ig { margin-top: var(--s-40) !important; }
.capco-mapsec .capco-map { margin-top: var(--s-128) !important; }
/* slide caption: 8-scale */
.capco-slide__caption { padding: var(--s-16) var(--s-32); min-height: 72px; gap: var(--s-32); }
/* trust band: comp metrics (logos 38px, content left-aligned block) */
.capco-trust > .e-con-inner, .capco-trust.e-con { min-height: 90px; }
.capco-logos__list { gap: var(--s-40); }
.capco-logos__list img { height: 38px; max-width: 128px; }
.capco-trust .elementor-widget-button.capco-btn .elementor-button { font-size: 13px !important; padding: 10px 24px !important; }
@media (min-width: 1440px) { .capco-trust > .e-con-inner { padding-right: 152px; } }

/* ── Caption chip → link to the project (multiply layer keeps the photo visible) ── */
.capco-chipwrap { position: absolute !important; inset: 0; pointer-events: none; margin: 0 !important; }
a.capco-chip, .capco-chip { position: absolute; left: var(--s-24); right: auto; bottom: var(--s-24); transform: none; display: inline-flex; align-items: center; gap: var(--s-24); min-width: min(540px, calc(100% - 48px)); max-width: calc(100% - 48px); width: auto; padding: 13px var(--s-24); border-radius: 6px; background: none; color: #fff; font-size: 17px; line-height: 1.2; font-weight: 400; text-decoration: none; white-space: nowrap; pointer-events: auto; isolation: isolate; transition: transform var(--capco-t-fast) var(--capco-ease-out); }
.capco-bleed-left .capco-chip, .capco-photo--right-chip .capco-chip { left: auto; right: var(--s-24); }
.capco-chip::before { content: ""; position: absolute; inset: 0; border-radius: inherit; background: #4A4A4A; mix-blend-mode: multiply; z-index: -1; transition: background var(--capco-t-fast) var(--capco-ease-out), opacity var(--capco-t-fast); }
.capco-chip::after { content: ""; position: absolute; inset: 0; border-radius: inherit; background: #36B37C; opacity: 0; z-index: -1; transition: opacity var(--capco-t-fast) var(--capco-ease-out); }
.capco-chip > span:first-child { position: relative; overflow: hidden; text-overflow: ellipsis; }
.capco-chip b { font-weight: 700; }
.capco-chip .capco-chip__arrow { position: relative; margin-left: auto; width: 9px; height: 9px; border-right: 2.5px solid #fff; border-top: 2.5px solid #fff; transform: rotate(45deg); transition: transform var(--capco-t-fast) var(--capco-ease-out); }
a.capco-chip:hover::after, a.capco-chip:focus-visible::after { opacity: 1; }
a.capco-chip:hover .capco-chip__arrow, a.capco-chip:focus-visible .capco-chip__arrow { transform: rotate(45deg) translate(3px,-3px); }
a.capco-chip:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.capco-photo:hover .capco-chip__arrow { transform: rotate(45deg); }
.capco-photo:hover { box-shadow: none; }
.capco-slide__more:hover { color: #fff; }

/* ── Mega menu: comp geometry (146px inset, 5 equal columns, 32px cards, 4px radius, 28px icons) ── */
.capco-mega__inner { padding: 28px 154px 32px 146px; }
.capco-mega__title { font-size: 46px; margin-bottom: var(--s-12); }
.capco-mega__sub { font-size: 17px; }
.capco-mega__grid { gap: 0; margin-top: 80px; }
.capco-mega__item { padding: var(--s-32) var(--s-32) var(--s-24); border-radius: 4px; }
.capco-mega__head { gap: var(--s-16); font-size: 22px; margin-bottom: var(--s-12); }
.capco-mega__head svg, .capco-mega__head .capco-ico { width: 28px; height: 26px; }
.capco-mega__text { font-size: 15px; line-height: 1.6; margin-bottom: var(--s-16); }
.capco-mega__more { font-size: 18px; }

/* ── Lightbox ── */
.capco-lb-trigger { cursor: zoom-in; }
body.capco-lb-open { overflow: hidden; }
.capco-lb { position: fixed; inset: 0; z-index: 2000; display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity var(--capco-t-fast) var(--capco-ease-out); }
.capco-lb.is-open { opacity: 1; }
.capco-lb__backdrop { position: absolute; inset: 0; background: rgba(12,12,12,.94); }
.capco-lb__stage { position: relative; margin: 0; width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 72px 96px; box-sizing: border-box; }
.capco-lb__img { max-width: 100%; max-height: calc(100vh - 160px); width: auto; height: auto; object-fit: contain; border-radius: var(--capco-r-img); box-shadow: 0 24px 60px rgba(0,0,0,.5); opacity: 1; transition: opacity var(--capco-t-fast) var(--capco-ease-out), transform var(--capco-t-cozy) var(--capco-ease-out); }
.capco-lb__img.is-loading { opacity: .35; }
.capco-lb__stage.is-from-right .capco-lb__img { animation: capco-lb-in-r var(--capco-t-cozy) var(--capco-ease-out); }
.capco-lb__stage.is-from-left .capco-lb__img { animation: capco-lb-in-l var(--capco-t-cozy) var(--capco-ease-out); }
@keyframes capco-lb-in-r { from { opacity: 0; transform: translateX(24px); } to { opacity: 1; transform: none; } }
@keyframes capco-lb-in-l { from { opacity: 0; transform: translateX(-24px); } to { opacity: 1; transform: none; } }
.capco-lb__caption { color: #fff; font-size: 15px; line-height: 1.4; margin-top: var(--s-16); text-align: center; max-width: 900px; opacity: .9; }
.capco-lb__btn { position: absolute; z-index: 2; width: 56px; height: 56px; border: 0; border-radius: 50%; background: rgba(255,255,255,.1); cursor: pointer; padding: 0; transition: background var(--capco-t-fast), transform var(--capco-t-fast) var(--capco-ease-cozy); -webkit-tap-highlight-color: transparent; }
.capco-lb__btn:hover, .capco-lb__btn:focus-visible { background: #36B37C; }
.capco-lb__btn:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.capco-lb__close { top: var(--s-24); right: var(--s-24); }
.capco-lb__close span { position: absolute; left: 50%; top: 50%; width: 22px; height: 2.5px; background: #fff; border-radius: 2px; }
.capco-lb__close span:first-child { transform: translate(-50%,-50%) rotate(45deg); } .capco-lb__close span:last-child { transform: translate(-50%,-50%) rotate(-45deg); }
.capco-lb__close:hover { transform: rotate(90deg); }
.capco-lb__nav { top: 50%; transform: translateY(-50%); }
.capco-lb__nav::before { content: ""; position: absolute; top: 50%; left: 50%; width: 14px; height: 14px; border-right: 3px solid #fff; border-top: 3px solid #fff; }
.capco-lb__prev { left: var(--s-24); } .capco-lb__prev::before { transform: translate(-30%,-50%) rotate(-135deg); }
.capco-lb__next { right: var(--s-24); } .capco-lb__next::before { transform: translate(-70%,-50%) rotate(45deg); }
.capco-lb__nav:hover { transform: translateY(-50%) scale(1.06); }
.capco-lb.is-single .capco-lb__nav, .capco-lb.is-single .capco-lb__counter { display: none; }
.capco-lb__counter { position: absolute; left: 50%; bottom: var(--s-24); transform: translateX(-50%); color: #fff; font-size: 14px; font-weight: 700; letter-spacing: .5px; opacity: .85; }
@media (prefers-reduced-motion: reduce) { .capco-lb, .capco-lb__img, .capco-lb__btn { transition: none !important; animation: none !important; } }
@media (max-width: 767px) {
	.capco-lb__stage { padding: 64px 12px 56px; } .capco-lb__img { max-height: calc(100svh - 120px); border-radius: var(--capco-r-img); }
	.capco-lb__btn { width: 44px; height: 44px; } .capco-lb__close { top: 12px; right: 12px; }
	.capco-lb__nav { top: auto; bottom: 8px; transform: none; background: rgba(255,255,255,.14); } .capco-lb__prev { left: 12px; } .capco-lb__next { right: 12px; }
	.capco-lb__nav:hover { transform: scale(1.06); } .capco-lb__counter { bottom: 20px; }
}

/* ── MOBILE round 5: cinematic hero, fixed audience bar, logos, rhythm ── */
@media (max-width: 767px) {
	body { padding-bottom: var(--capco-bar-h); }
	.capco-hero { min-height: calc(100svh - 80px - var(--capco-bar-h)) !important; }
	.capco-hero > .e-con-inner { min-height: calc(100svh - 80px - var(--capco-bar-h)); justify-content: flex-start; }
	.capco-hero-bgwrap { display: block !important; }
	.capco-hero__bg { background-position: 58% 100%; }
	.capco-hero__wash { background: linear-gradient(180deg, rgba(0,0,0,.62) 0%, rgba(0,0,0,.42) 38%, rgba(0,0,0,.08) 62%, rgba(0,0,0,0) 80%); }
	.capco-hero-mobile-photo { display: none !important; }
	.capco-hero .capco-hero__content { padding: var(--s-24) 0 var(--s-32) !important; }
	.capco-hero__content .elementor-widget-heading { margin-bottom: var(--s-24) !important; }
	.capco-hero__content .elementor-widget-heading .elementor-heading-title { font-size: 32px !important; line-height: 1.25 !important; letter-spacing: 0; }
	.capco-hero__content .elementor-widget-text-editor { margin-bottom: var(--s-24) !important; font-size: 15px !important; line-height: 1.6 !important; }
	.capco-hero__content .e-con { flex-direction: column !important; align-items: flex-start !important; gap: var(--s-8) !important; }
	.capco-audience, .elementor-widget.capco-audience { position: fixed !important; left: 0 !important; right: 0 !important; bottom: 0 !important; top: auto !important; z-index: 850 !important; margin: 0 !important; width: auto !important; max-width: none !important; height: var(--capco-bar-h); box-shadow: 0 -6px 18px rgba(0,0,0,.25); }
	.capco-audience ul { padding: 10px 6px 8px; align-items: flex-start; }
	.capco-audience svg { width: 26px; height: 24px; margin: 0 auto 5px; }
	.capco-audience li { font-size: 9px; letter-spacing: .1px; }
	.capco-trust { padding: var(--s-40) 0 var(--s-48) !important; gap: 0 !important; }
	.capco-trust .elementor-widget-text-editor { margin-bottom: var(--s-64) !important; font-size: 15px !important; line-height: 1.6 !important; }
	.capco-logos__list { gap: var(--s-32) var(--s-24); }
	.capco-logos__list li { display: flex; justify-content: center; align-items: center; width: 100%; }
	.capco-logos__list img { height: 48px; max-width: 140px; margin: 0 auto; }
	.capco-trust .elementor-widget-button { margin-top: var(--s-48) !important; }
	.capco-section.capco-highlights { padding-top: var(--s-64) !important; padding-bottom: var(--s-64) !important; }
	.capco-highlights .capco-label { margin-bottom: var(--s-12) !important; }
	.capco-mcards, .capco-mcards > .elementor-widget-container { gap: var(--s-12); }
	.capco-highlights .capco-btn { margin-top: var(--s-24) !important; }
	.capco-mcard { height: 353px; }
	.capco-mcard__bar { padding: 10px 14px; font-size: 13px; }
	.capco-section.capco-way, .capco-section.capco-thinking, .capco-section.capco-newsgrid, .capco-section.capco-stories { padding-top: var(--s-64) !important; padding-bottom: var(--s-64) !important; }
	.capco-label .elementor-heading-title { font-size: 22px !important; }
	.capco-way .capco-label { margin-bottom: var(--s-24) !important; }
	.capco-way .capco-row + .capco-row { margin-top: var(--s-48) !important; }
	.capco-way .capco-btn { margin-top: var(--s-24) !important; }
	.capco-section.capco-follow { padding-bottom: var(--s-64) !important; }
	.capco-mapsec .capco-map { margin-top: var(--s-64) !important; }
	.capco-footer { padding-bottom: var(--s-24) !important; }
	body.capco-menu-open .capco-audience { display: none; }
	a.capco-chip, .capco-chip { left: var(--s-12); right: auto; bottom: var(--s-12); min-width: 0; max-width: calc(100% - 24px); padding: 9px 14px; font-size: 13px; gap: var(--s-12); border-radius: 4px; }
	.capco-bleed-left .capco-chip { left: var(--s-12); right: auto; }
}

/* lightbox buttons vs the theme button reset (pink focus) */
body .capco-lb__btn, body .capco-lb__btn:focus, body .capco-lb__btn:active { background: rgba(255,255,255,.1) !important; border: 0 !important; color: #fff !important; padding: 0 !important; }
body .capco-lb__btn:hover, body .capco-lb__btn:focus-visible { background: #36B37C !important; }
@media (max-width: 767px) { .capco-hero__bg { background-position: 74% 50%; } .capco-logos__list > li { display: flex !important; justify-content: center !important; width: 100% !important; margin: 0 !important; padding: 0 !important; } }

/* ── Round 5b: boxed sections carry their padding on .e-con-inner → target the inner ── */
.capco-section.capco-highlights, .capco-section.capco-way, .capco-section.capco-thinking, .capco-section.capco-newsgrid, .capco-section.capco-stories, .capco-section.capco-follow, .capco-section.capco-mapsec { padding-top: 0 !important; padding-bottom: 0 !important; }
.capco-section.capco-highlights > .e-con-inner { padding-top: var(--s-64) !important; padding-bottom: var(--capco-section-y) !important; }
.capco-section.capco-way > .e-con-inner, .capco-section.capco-thinking > .e-con-inner, .capco-section.capco-newsgrid > .e-con-inner { padding-top: var(--capco-section-y) !important; padding-bottom: var(--capco-section-y) !important; }
.capco-section.capco-stories > .e-con-inner { padding-top: 0 !important; padding-bottom: var(--capco-section-y) !important; gap: var(--s-24) !important; }
.capco-section.capco-follow > .e-con-inner { padding-top: 0 !important; padding-bottom: var(--s-128) !important; }
.capco-section.capco-mapsec > .e-con-inner { padding-top: 0 !important; padding-bottom: 0 !important; }
.capco-way .capco-row { margin-top: 0 !important; margin-bottom: 0 !important; }
.capco-way .capco-row + .capco-row { margin-top: 104px !important; }
.capco-thinking .capco-label { margin-bottom: var(--s-24) !important; }
.capco-thinking .capco-btn { margin-top: var(--s-40) !important; }
.capco-newsgrid .capco-news, .e-con.capco-news { min-height: 560px !important; }
@media (max-width: 767px) {
	.capco-section.capco-highlights > .e-con-inner, .capco-section.capco-way > .e-con-inner, .capco-section.capco-thinking > .e-con-inner, .capco-section.capco-newsgrid > .e-con-inner { padding-top: var(--s-64) !important; padding-bottom: var(--s-64) !important; }
	.capco-section.capco-stories > .e-con-inner { padding-bottom: var(--s-64) !important; gap: var(--s-16) !important; }
	.capco-section.capco-follow > .e-con-inner { padding-bottom: var(--s-64) !important; }
	.capco-way .capco-row + .capco-row { margin-top: var(--s-48) !important; }
	.capco-newsgrid .capco-news, .e-con.capco-news { min-height: 340px !important; }
	/* first screen = hero content area; the trust band sits below it */
	.capco-hero, .capco-hero > .e-con-inner { min-height: 0 !important; }
	.capco-hero .capco-hero__content { min-height: calc(100svh - 80px - var(--capco-bar-h)); box-sizing: border-box; }
	.capco-hero-bgwrap { bottom: auto !important; height: calc(100svh - 80px - var(--capco-bar-h)); }
}

@media (max-width: 767px) { .capco-trust .elementor-widget-html, .capco-trust .capco-logos__list { width: 100% !important; max-width: none !important; } }
.capco-follow .capco-ig { margin-top: var(--s-40) !important; }
.capco-follow .elementor-widget-heading { margin-bottom: 0 !important; }

@media (max-width: 767px) {
	/* cinematic reframe: photo sits in the lower part of the first screen, night sky above */
	.capco-hero { background: #060606 !important; }
	.capco-hero__bg { background-size: auto 66%; background-position: 72% 100%; background-color: #060606; background-repeat: no-repeat; }
	.capco-hero__wash { background: linear-gradient(180deg, rgba(6,6,6,.75) 0%, rgba(6,6,6,.55) 30%, rgba(6,6,6,.15) 48%, rgba(6,6,6,0) 60%); }
	.capco-hero__bg--a, .capco-hero__bg--b { animation-duration: 22s; }
}

/* the CAP.CO way section is full-width (no .e-con-inner): pad the section itself */
.capco-section.capco-way { padding-top: var(--capco-section-y) !important; padding-bottom: var(--capco-section-y) !important; }
@media (max-width: 767px) { .capco-section.capco-way { padding-top: var(--s-64) !important; padding-bottom: var(--s-64) !important; } }

.capco-follow .capco-igwrap { margin-top: var(--s-40) !important; }
/* CAP.CO way: right-hand photos bleed to the viewport edge like the left ones */
@media (min-width: 1025px) { .capco-way .capco-row > .e-con:last-child > .capco-photo:not(.capco-bleed-left) { width: calc(100% + 137px) !important; max-width: none !important; margin-right: -137px !important; } }

.capco-stories .capco-label { margin-bottom: 0 !important; }
.capco-stories .capco-btn { margin-top: 0 !important; }
.capco-follow .capco-ig { margin-top: 0 !important; }

@media (min-width: 1025px) { .capco-way .elementor-widget-heading .elementor-heading-title { font-size: 70px !important; line-height: 1.1 !important; } }
.capco-trust, .capco-trust > .e-con-inner { padding-right: 152px !important; }
.capco-logos__list { gap: 30px; }
.capco-logos__list img { max-width: 100px; }
@media (max-width: 1024px) { .capco-trust, .capco-trust > .e-con-inner { padding-right: 20px !important; } .capco-logos__list img { max-width: 140px; } }
@media (max-width: 767px) { .capco-hero__bg { background-size: auto 70%; } }

@media (max-width: 767px) {
	/* mobile section rhythm: 40 + 40 between sections (comp ≈ 75–80) */
	.capco-section.capco-highlights > .e-con-inner, .capco-section.capco-way, .capco-section.capco-thinking > .e-con-inner, .capco-section.capco-newsgrid > .e-con-inner { padding-top: var(--s-40) !important; padding-bottom: var(--s-40) !important; }
	.capco-section.capco-highlights > .e-con-inner { padding-top: var(--s-64) !important; }
	.capco-section.capco-stories > .e-con-inner, .capco-section.capco-follow > .e-con-inner { padding-bottom: var(--s-40) !important; }
	.capco-way .capco-label { margin-bottom: var(--s-12) !important; }
	.capco-way .elementor-widget-heading { margin-bottom: var(--s-32) !important; }
}

/* ── TABLET (768–1024): 40px gutters, desktop label size, 64px section rhythm ── */
@media (min-width: 768px) and (max-width: 1024px) {
	.capco-hero > .e-con-inner, .capco-hero .capco-hero__content { padding-left: 40px !important; padding-right: 40px !important; }
	.capco-hero .capco-hero__content { padding-top: 120px !important; }
	.capco-trust, .capco-trust > .e-con-inner { padding-left: 40px !important; padding-right: 40px !important; }
	.capco-section { padding-left: 40px !important; padding-right: 40px !important; }
	.capco-section.capco-highlights > .e-con-inner, .capco-section.capco-thinking > .e-con-inner, .capco-section.capco-newsgrid > .e-con-inner { padding-top: var(--s-64) !important; padding-bottom: var(--s-64) !important; }
	.capco-section.capco-way { padding-top: var(--s-64) !important; padding-bottom: var(--s-64) !important; }
	.capco-section.capco-stories > .e-con-inner, .capco-section.capco-follow > .e-con-inner { padding-bottom: var(--s-64) !important; }
	.capco-label .elementor-heading-title { font-size: 26px !important; }
	.capco-way .capco-label { margin-bottom: var(--s-24) !important; }
	.capco-way .elementor-widget-heading .elementor-heading-title { font-size: 52px !important; line-height: 1.12 !important; }
	.capco-way .capco-row + .capco-row { margin-top: var(--s-64) !important; }
	.capco-way .capco-photo { margin-left: 0 !important; width: 100% !important; max-width: none !important; margin-right: 0 !important; }
	.capco-logos__list { gap: 24px 32px; }
}

@media (min-width: 768px) and (max-width: 1024px) {
	.elementor-widget-heading.capco-pagetitle .elementor-heading-title { font-size: 56px !important; }
	.capco-pcard__title { font-size: 40px; }
	.capco-ppage-title .elementor-widget-theme-post-title .elementor-heading-title { font-size: 48px; }
}

@media (max-width: 767px) { .capco-thinking .capco-col { margin-bottom: var(--s-24) !important; } .capco-thinking .capco-col .elementor-widget-image { margin: 0 !important; } }

/* inner heroes: photo at its comp size on the right, dark wash on the left (assets cropped of baked text) */
.capco-hero--inner { background: #0B0B0B; }
.capco-hero--inner .capco-hero__bg { background-size: auto 100%; background-position: right center; background-repeat: no-repeat; background-color: #0B0B0B; }
@media (max-width: 767px) {
	/* inner heroes (Thinking/Process/Teams/Article comps): text block on black, photo fills the rest of the first screen */
	.capco-hero--inner { background: #0B0B0B !important; }
	.capco-hero--inner .capco-hero-bgwrap { display: none !important; }
	.capco-hero--inner > .e-con-inner { min-height: calc(100svh - 80px - var(--capco-bar-h)); display: flex; flex-direction: column; }
	.capco-hero--inner .capco-hero__content { min-height: 0; flex: 0 0 auto; justify-content: flex-start; padding: var(--s-24) 0 var(--s-24) !important; }
	.capco-hero--inner .capco-hero__rule { display: none; }
	.capco-hero--inner .capco-hero-mobile-photo { display: block !important; flex: 1 1 auto; min-height: 240px; margin: 0 -20px !important; width: calc(100% + 40px) !important; max-width: none !important; }
	.capco-hero--inner .capco-hero-mobile-photo, .capco-hero--inner .capco-hero-mobile-photo .elementor-widget-container { display: flex !important; }
	.capco-hero--inner .capco-hero-mobile-photo img { width: 100%; height: 100%; min-height: 240px; object-fit: cover; object-position: 60% 40%; display: block; }
	.capco-hero--inner .capco-hero__content .elementor-widget-text-editor { font-size: 16px !important; }
}
}

.capco-hero--inner .capco-hero__wash { background: linear-gradient(90deg, rgba(11,11,11,.96) 0%, rgba(11,11,11,.86) 26%, rgba(11,11,11,.3) 42%, rgba(11,11,11,0) 56%); }

/* ── Trust band: #242424 multiply layer (photo shows through), comp metrics: 130px tall, content centred at 907/950 ── */
.capco-trust { background: none !important; box-shadow: none !important; clip-path: none !important; z-index: auto; isolation: auto; min-height: 130px !important; }
.capco-trust::after { content: ""; position: absolute; inset: 0 -100vmax; background: #242424; mix-blend-mode: multiply; pointer-events: none; }
.capco-trust > * { position: relative; z-index: 1; }
.capco-trust, .capco-trust > .e-con-inner { min-height: 130px; padding-top: 64px !important; padding-bottom: 24px !important; align-items: center !important; }
.capco-trust .elementor-widget-text-editor { width: 616px !important; max-width: 616px; padding-right: 100px; box-sizing: border-box; font-size: 15px !important; line-height: 1.55 !important; }
.capco-logos__list { gap: 44px; align-items: center; }
.capco-logos__list img { height: 36px !important; max-height: 36px; width: auto; max-width: 110px; object-fit: contain; }
@media (max-width: 1024px) { .capco-trust, .capco-trust > .e-con-inner { min-height: 0 !important; padding-top: var(--s-40) !important; padding-bottom: var(--s-40) !important; } .capco-trust .elementor-widget-text-editor { width: 100% !important; max-width: none; padding-right: 0; } .capco-logos__list img { height: 48px !important; max-height: 48px; max-width: 140px; } }
@media (max-width: 767px) { .capco-trust, .capco-trust > .e-con-inner { padding-bottom: var(--s-48) !important; } .capco-logos__list img { height: 44px !important; max-height: 44px; } }

.capco-trust, .capco-trust > .e-con-inner { padding-top: 44px !important; }
.capco-trust .elementor-widget-text-editor { width: 576px !important; max-width: 576px; padding-right: 60px; font-weight: 500 !important; line-height: 1.3 !important; }
.capco-trust .elementor-widget-button.capco-btn .elementor-button { font-size: 12px !important; padding: 6px 22px !important; line-height: 1.4 !important; }
@media (max-width: 1024px) { .capco-trust .elementor-widget-button.capco-btn .elementor-button { font-size: 12px !important; padding: 10px 22px !important; } }

@media (max-width: 1024px) { .capco-trust .elementor-widget-text-editor { width: 100% !important; max-width: none !important; padding-right: 0 !important; } .capco-trust::after { inset: 0 -100vmax; } }
@media (max-width: 767px) { .capco-trust .elementor-widget-text-editor { font-size: 15px !important; line-height: 1.6 !important; } .capco-trust > * { position: relative; z-index: 1; } }

/* ═══ ROUND 6 — highlights magazine layout, slider, header shadow, interactive-image pattern, chips ═══ */
body.capco-catalogue .capco-header { box-shadow: 0 2px 6px rgba(0,0,0,.12); }
/* labels: one size everywhere */
.capco-label .elementor-heading-title { font-size: 26px !important; line-height: 1.2 !important; }
@media (max-width: 767px) { .capco-label .elementor-heading-title { font-size: 22px !important; } }
/* highlights fills the first catalogue screen, content centred (magazine spread) */
.capco-section.capco-highlights > .e-con-inner { min-height: calc(100svh - 84px); justify-content: center !important; padding-top: var(--s-48) !important; padding-bottom: var(--s-48) !important; box-sizing: border-box; }
.capco-highlights .capco-label { margin-bottom: var(--s-24) !important; }
.capco-highlights .capco-btn { margin-top: var(--s-40) !important; }
/* slider */
.capco-slider, .capco-slide { position: relative; border-radius: var(--capco-r-img); overflow: hidden; min-height: 630px; background: #191C1A; }
.capco-slider .capco-slider__track { position: absolute; inset: 0; }
.capco-slide-item { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: 0; transition: opacity 600ms var(--capco-ease-out), transform 600ms var(--capco-ease-out); transform: scale(1.02); will-change: opacity, transform; }
.capco-slide-item.is-active { opacity: 1; transform: none; z-index: 1; }
.capco-slide-item.is-next { transform: translateX(16px) scale(1.02); } .capco-slide-item.is-next-left { transform: translateX(-16px) scale(1.02); }
.capco-slide-item.is-active.is-next, .capco-slide-item.is-active.is-next-left { transform: none; }
.capco-slider .capco-slide__ui { position: absolute !important; inset: 0; z-index: 2; margin: 0 !important; pointer-events: none; }
.capco-slider .capco-slide__ui > * { pointer-events: auto; }
.capco-slide__arrow { top: 50%; transform: translateY(-50%); width: 56px; height: 56px; background: #1C1C1C; }
.capco-slide__arrow--prev { left: var(--s-24); } .capco-slide__arrow--next { right: var(--s-24); }
.capco-slide__arrow::before { width: 14px; height: 14px; border-width: 3px; }
body .capco-slide__arrow, body .capco-slide__arrow:focus { background: #1C1C1C !important; border: 0 !important; padding: 0 !important; } body .capco-slide__arrow:hover, body .capco-slide__arrow:focus-visible { background: #36B37C !important; }
.capco-slide__caption { position: absolute; left: 0; right: 0; bottom: 0; display: grid; grid-template-columns: 300px 1fr 200px; align-items: center; gap: var(--s-40); min-height: 128px; padding: var(--s-24) var(--s-32) var(--s-24) 34px; background: none; color: #fff; font-size: 15px; line-height: 1.4; isolation: isolate; transition: opacity 180ms var(--capco-ease-out); }
.capco-slide__caption::before { content: ""; position: absolute; inset: 0; background: #1C1C1C; mix-blend-mode: multiply; z-index: -1; opacity: .92; }
.capco-slide__caption.is-swapping { opacity: 0; }
.capco-slide__title { font-size: 15px; line-height: 1.4; } .capco-slide__title b { font-weight: 700; }
.capco-slide__desc { margin: 0; text-align: left; }
.capco-slide__more { text-align: right; color: #71E3B2; font-weight: 700; text-decoration: none; }
/* interactive image pattern: alpha .85, hover → zoom within the frame + alpha .95 */
.capco-photo img, .capco-pcard__media img, .capco-slide-item, .capco-ncard, .capco-mosaic__item img, .capco-gallery img, .capco-mcard, .capco-story__media img { transition: opacity var(--capco-t-cozy) var(--capco-ease-out), transform 700ms var(--capco-ease-out); }
.capco-pcard__media img, .capco-mosaic__item img, .capco-gallery img, .capco-story__media img { opacity: .85; --capco-alpha: .85; }
.capco-photo::after, .capco-slide-item::after, .capco-mcard::after { content: ""; position: absolute; inset: 0; background: #fff; opacity: .15; pointer-events: none; transition: opacity var(--capco-t-cozy) var(--capco-ease-out); }
.capco-photo:hover::after, .capco-slider:hover .capco-slide-item.is-active::after, .capco-mcard:hover::after { opacity: .05; }
.capco-photo { transition: none; } .capco-photo:hover { box-shadow: none; }
.capco-photo { background-size: 100% auto !important; background-position: center !important; transition: background-size 700ms var(--capco-ease-out) !important; }
.capco-photo:hover { background-size: 104% auto !important; }
.capco-pcard:hover .capco-pcard__media img, .capco-mosaic__item:hover img, .capco-gallery img:hover, .capco-story:hover .capco-story__media img { transform: scale(1.04); opacity: .95; }
.capco-slider:hover .capco-slide-item.is-active { transform: scale(1.03); }
.capco-ncard::before { opacity: .85; } .capco-ncard:hover::before { opacity: .78; }
.capco-ncard { background-size: 100% auto; transition: background-size 700ms var(--capco-ease-out), transform var(--capco-t-fast) var(--capco-ease-out), box-shadow var(--capco-t-fast); } .capco-ncard:hover { background-size: 105% auto; }
/* caption chip: #1C1C1C multiply */
.capco-chip::before { background: #1C1C1C; opacity: .92; }
/* storytelling photos: only the inner corners are rounded */
.capco-way .capco-row > .e-con:first-child .capco-photo, .capco-bleed-left { border-radius: 0 var(--capco-r-img) var(--capco-r-img) 0 !important; }
.capco-way .capco-row > .e-con:last-child .capco-photo { border-radius: var(--capco-r-img) 0 0 var(--capco-r-img) !important; }
@media (max-width: 1024px) { .capco-way .capco-photo { border-radius: var(--capco-r-img) !important; } }
@media (max-width: 767px) { .capco-section.capco-highlights > .e-con-inner { min-height: 0; } .capco-slide__caption { grid-template-columns: 1fr; gap: 8px; padding: 14px 16px; min-height: 0; } .capco-slide__more { text-align: left; } .capco-slide__arrow { width: 44px; height: 44px; } .capco-slide__arrow--prev { left: 12px; } .capco-slide__arrow--next { right: 12px; } }

/* ── Stories behind the play (from the `story` CPT) + news/slider wrappers ── */
.elementor-widget.capco-storieswrap, .elementor-widget.capco-newswrap, .elementor-widget.capco-sliderwrap { width: 100% !important; max-width: 100%; }
.capco-storieswrap .elementor-widget-container, .capco-newswrap .elementor-widget-container { width: 100%; }
.capco-stories-list { display: flex; flex-direction: column; gap: var(--s-24); width: 1360px; max-width: 100%; margin: 0 auto; }
.capco-story { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-64); align-items: center; text-decoration: none; color: #363636; }
.capco-story__media { position: relative; display: block; border-radius: var(--capco-r-img); overflow: hidden; background: #191C1A; aspect-ratio: 660 / 386; }
.capco-story__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.capco-story__body { display: flex; flex-direction: column; gap: var(--s-16); }
.capco-story__title { font-family: var(--capco-font-display); font-weight: 600; font-size: 34px; line-height: 1.15; color: #36B37C; transition: color var(--capco-t-fast); }
.capco-story__text { font-size: 17px; line-height: 1.6; }
.capco-story__more { align-self: flex-end; font-weight: 700; font-size: 20px; color: #36B37C; transition: transform var(--capco-t-fast) var(--capco-ease-out); }
.capco-story:hover .capco-story__more { transform: translateX(4px); }
.capco-listing--news.capco-listing--plain .capco-listing__grid { margin-top: 0; }
.capco-newswrap .capco-listing__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s-16); }
.capco-ppage-decosc { position: relative; }
.capco-ppage-decosc .capco-deco { position: absolute; left: 110px; top: 142px; width: 648px; max-width: none; opacity: .35; filter: grayscale(1); pointer-events: none; }
@media (max-width: 1024px) { .capco-story { grid-template-columns: 1fr; gap: var(--s-24); } .capco-ppage-decosc .capco-deco { display: none; } }
@media (max-width: 767px) { .capco-story__title { font-size: 26px; } .capco-story__text { font-size: 15px; } .capco-newswrap .capco-listing__grid { grid-template-columns: 1fr; } }

/* ── Reveal pattern (class-based, animations.js; design-system §6b, rewritten 2026-09-24) — fade + travel from the outside in on the individual
   `translate` property, so it never fights Elementor's `transform` transitions, the scenes engine's inline transform or the hover transforms.
   `!important`: Elementor's frontend CSS loads later and redeclares `transition` on every widget and container (the opacity used to switch at
   once); the hover properties stay in the list so cards keep their lift. Delay (cascade) through --capco-reveal-delay (an inline transition-delay
   cannot beat an important shorthand). Elements with a rest alpha below 1 declare --capco-alpha. ── */
.capco-reveal { transition: opacity var(--capco-t-reveal) var(--capco-ease-out) var(--capco-reveal-delay, 0ms), translate var(--capco-t-reveal) var(--capco-ease-out) var(--capco-reveal-delay, 0ms), transform var(--capco-t-fast) var(--capco-ease-out), box-shadow var(--capco-t-fast) var(--capco-ease-out) !important; }
.capco-reveal:not(.is-in) { opacity: 0; }
.capco-reveal--l { translate: calc(-1 * var(--capco-reveal-x)) 0; } .capco-reveal--r { translate: var(--capco-reveal-x) 0; } .capco-reveal--u { translate: 0 var(--capco-reveal-y); } .capco-reveal--d { translate: 0 calc(-1 * var(--capco-reveal-y)); }
.capco-reveal.is-in { opacity: var(--capco-alpha, 1); translate: none; }
.capco-pmeta.capco-reveal { translate: none; }
.capco-gallery img.capco-reveal { transition: opacity var(--capco-t-reveal) var(--capco-ease-out) var(--capco-reveal-delay, 0ms), translate var(--capco-t-reveal) var(--capco-ease-out) var(--capco-reveal-delay, 0ms), transform 700ms var(--capco-ease-out) !important; }   /* keeps the 700ms hover zoom */
@media (prefers-reduced-motion: reduce) { .capco-reveal, .capco-reveal:not(.is-in) { opacity: var(--capco-alpha, 1); translate: none; transition: none !important; } }
/* ── Instagram strip: comp tiles 398×400, 16px gaps, first tile peeks 124px at the left edge ── */
.elementor-widget.capco-igwrap { width: 100% !important; max-width: 100%; }
.capco-ig { width: 100vw !important; margin-left: calc(-1 * (100vw - 100%) / 2) !important; gap: 16px; }
.capco-ig img { width: 398px; height: 400px; opacity: .85; transition: opacity var(--capco-t-cozy) var(--capco-ease-out), transform 700ms var(--capco-ease-out); }
.capco-ig { --capco-ig-peek: 274px; } /* first tile peeks 124px from the left edge; ig.js scrolls the endless strip by this offset */
.capco-ig img:hover { opacity: .95; filter: none; }
.capco-ig a, .capco-ig span { display: block; overflow: hidden; flex: 0 0 auto; }
@media (max-width: 1024px) { .capco-ig img { width: 300px; height: 320px; } .capco-ig { --capco-ig-peek: 180px; } }
@media (max-width: 767px) { .capco-ig { width: 100vw !important; margin-left: -20px !important; gap: 10px; } .capco-ig img { width: 220px; height: 220px; } .capco-ig { --capco-ig-peek: 0px; } }

/* overlay layers must stay under the caption chip / card text; hover never recolours card text */
.capco-photo::after, .capco-mcard::after { z-index: 1; }
.capco-photo > .capco-chipwrap, .capco-mcard__bar, .capco-mcard__video { z-index: 2; }
.capco-ncard, .capco-ncard:hover, .capco-ncard:hover *, .capco-ncard:focus-visible * { color: #fff !important; }
.capco-story:hover .capco-story__title, .capco-story:hover .capco-story__more { color: #36B37C; }
.capco-story:hover .capco-story__text { color: #363636; }

.capco-ncard { background-size: auto 100% !important; } .capco-ncard:hover { background-size: auto 105% !important; }

/* storytelling photos: zoom on a cover-sized layer (background-size % on the container tiled the image) */
.capco-photo { background-size: cover !important; background-repeat: no-repeat !important; transition: none !important; }
.capco-photo.capco-reveal { transition: opacity var(--capco-t-reveal) var(--capco-ease-out) var(--capco-reveal-delay, 0ms), translate var(--capco-t-reveal) var(--capco-ease-out) var(--capco-reveal-delay, 0ms) !important; }   /* the reveal still animates (the zoom lives on ::before) */
.capco-photo:hover { background-size: cover !important; }
.capco-photo::before { content: "" !important; position: absolute; inset: 0; background: inherit; background-size: cover !important; background-position: center !important; background-repeat: no-repeat; z-index: 0; transition: transform 700ms var(--capco-ease-out); will-change: transform; }
.capco-photo:hover::before { transform: scale(1.04); }
.capco-photo > * { position: relative; z-index: 2; }
.capco-photo::after { z-index: 1; }

/* ── Listing bar sticks under the header once the page title has scrolled away ── */
.capco-listing, .capco-listingwrap, .capco-listingwrap .elementor-widget-container, .capco-listing-sec, .capco-listing-sec > .e-con-inner { overflow: visible !important; }
.capco-listing__bar { position: sticky; top: 84px; z-index: 40; background: #fff; padding-top: var(--s-16); margin-top: calc(-1 * var(--s-16)); transition: box-shadow var(--capco-t-fast) var(--capco-ease-out); }
.capco-listing__bar.is-stuck { box-shadow: 0 8px 16px -8px rgba(0,0,0,.12); }
@media (max-width: 767px) { .capco-listing__bar { top: 80px; } }

.capco-listing__bar, .capco-listing__bar.capco-reveal { opacity: 1 !important; transform: none !important; }

/* ── Project page hero: comp is a square-cornered 1224×554 image; article text is Rethink Sans Medium ── */
@media (min-width: 1025px) { .capco-ppage-herorow > .e-con.capco-ppage-herowrap { width: 1224px !important; max-width: 100%; justify-self: end; } }
.capco-ppage-hero img, .capco-ppage-hero .elementor-widget-theme-post-featured-image img { border-radius: 8px !important; }
.capco-prose, .capco-prose p, .capco-prose li, .capco-ppage-title .elementor-widget-theme-post-excerpt, .capco-pcard__lede, .capco-story__text, .capco-way .elementor-widget-text-editor, .capco-thinking .elementor-widget-text-editor, .capco-hero__content .elementor-widget-text-editor, .capco-ncard__place { font-weight: 500; }
.capco-prose b, .capco-prose strong { font-weight: 700; }
.capco-pmeta__v--empty { color: #9A9A9A; }

/* ── One radius for every photo inside posts/projects/stories (comp: 8px) ── */
:root { --capco-r-photo: 8px; }
.capco-prose img, .capco-prose figure img, .capco-prose .wp-block-image img, .capco-gallery img, .capco-ppage-content .capco-prose > img, .capco-ppage-content .capco-prose .capco-gallery img, .capco-mosaic__item img, .capco-mosaic__item, .capco-article-hero .capco-article-bg img, .capco-related-projects .capco-pcard__media, .capco-story__media, .capco-lb__img { border-radius: var(--capco-r-photo) !important; overflow: hidden; }
.capco-prose figure, .capco-prose .wp-block-image { overflow: visible; }
@media (max-width: 767px) { :root { --capco-r-photo: 8px; } }
.capco-related .elementor-post__thumbnail__link, .capco-pcard__media, .capco-mosaic__item { border-radius: var(--capco-r-photo) !important; }

/* ── Project meta (comp): all ink #363636, keys SemiBold 17, values Medium 17, icon in ink ── */
.capco-pmeta, .capco-pmeta__aud, .capco-pmeta__k, .capco-pmeta__v { color: #363636 !important; }
.capco-pmeta__aud { font-weight: 600; font-size: 17px; }
.capco-pmeta__aud .capco-ico { color: #363636 !important; }
.capco-pmeta__k { font-weight: 600; font-size: 17px; line-height: 1.3; }
.capco-pmeta__v { font-weight: 500; font-size: 17px; line-height: 1.4; }
.capco-pmeta__v--empty { color: #9A9A9A !important; }

/* ── Grid / related project cards: full-height photo, #1C1C1C multiply bar over it, 2-line clamped title ── */
.capco-pcard--grid, .capco-listing--projects.is-grid .capco-pcard { display: block; position: relative; }
.capco-pcard--grid .capco-pcard__media, .capco-listing--projects.is-grid .capco-pcard__media { position: relative; aspect-ratio: 525 / 480 !important; height: auto; border-radius: var(--capco-r-photo); overflow: hidden; background: #191C1A; }
.capco-pcard--grid .capco-pcard__media img, .capco-listing--projects.is-grid .capco-pcard__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.capco-pcard--grid .capco-pcard__gridbar, .capco-listing--projects.is-grid .capco-pcard__gridbar { position: absolute; left: 0; right: 0; bottom: 0; display: flex !important; align-items: center; justify-content: space-between; gap: var(--s-16); padding: var(--s-16) var(--s-24); min-height: 104px; background: none !important; color: #fff; isolation: isolate; z-index: 2; }
.capco-pcard--grid .capco-pcard__gridbar::before, .capco-listing--projects.is-grid .capco-pcard__gridbar::before { content: ""; position: absolute; inset: 0; background: #1C1C1C; mix-blend-mode: multiply; opacity: .92; z-index: -1; }
.capco-pcard__gridtitle { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-weight: 700; font-size: 15px; line-height: 1.3; text-transform: uppercase; max-width: 60%; }
.capco-pcard__gridbar .capco-btn { flex: 0 0 auto; }
@media (max-width: 767px) { .capco-pcard--grid .capco-pcard__gridbar, .capco-listing--projects .capco-pcard__gridbar { min-height: 0; padding: 12px 16px 14px; } }
.capco-related-sec .elementor-widget-shortcode, .capco-related-sec .elementor-shortcode { width: 100% !important; max-width: 100%; }

/* ── Related/grid cards measured from Web 19: 536×409, bar 68px, title 14/1.5 ×2 lines inset 24, button 39px inset 26 ── */
.capco-pcard--grid .capco-pcard__media, .capco-listing--projects.is-grid .capco-pcard__media { aspect-ratio: 536 / 409 !important; }
.capco-pcard--grid .capco-pcard__gridbar, .capco-listing--projects.is-grid .capco-pcard__gridbar { min-height: 68px; padding: 14px 26px 14px 24px; gap: var(--s-16); }
.capco-pcard__gridtitle { font-size: 14px; line-height: 1.5; max-width: 56%; }
.capco-pcard__gridbar .elementor-widget-button.capco-btn .elementor-button, .capco-pcard__gridbar .capco-btn .elementor-button { font-size: 12px !important; padding: 11px 22px !important; line-height: 1.4 !important; }
.capco-related-sec .capco-label { margin-bottom: var(--s-24) !important; }
.capco-section.capco-related-sec > .e-con-inner { padding-top: 0 !important; padding-bottom: var(--s-96) !important; }

.capco-pcard__gridbar .capco-btn .elementor-button, .capco-pcard__gridbar .elementor-widget-button.capco-btn .elementor-button { padding: 9px 22px !important; }
.capco-related-sec .capco-label { margin-bottom: 80px !important; }

/* ── Every photo caption bar: #1C1C1C multiply, full opacity (list cards, grid bars, chips, slider, mobile cards) ── */
.capco-pcard__bar, .capco-mcard__bar { position: absolute; left: 0; right: 0; bottom: 0; background: none !important; color: #fff; isolation: isolate; z-index: 2; }
.capco-pcard__bar::before, .capco-mcard__bar::before { content: ""; position: absolute; inset: 0; background: #1C1C1C; mix-blend-mode: multiply; z-index: -1; }
.capco-pcard__bar > *, .capco-mcard__bar > * { position: relative; }
.capco-pcard--grid .capco-pcard__gridbar::before, .capco-listing--projects.is-grid .capco-pcard__gridbar::before, .capco-chip::before, .capco-slide__caption::before { background: #1C1C1C; opacity: 1; }

/* ── Round 7: label sizes, smooth photo zoom, highlights bar per design, square-screen height, IG autoplay ── */
@media (min-width: 1025px) { .capco-way .capco-label .elementor-heading-title { font-size: 26px !important; line-height: 1.2 !important; } }
.capco-photo.e-con::before, .capco-photo::before { transition: transform 700ms var(--capco-ease-out) !important; }
.capco-slide__caption { min-height: 70px; padding: 14px 32px 14px 34px; gap: var(--s-24); grid-template-columns: 322px 1fr 200px; align-items: center; }
.capco-slide__title, .capco-slide__desc { font-size: 15px; line-height: 1.4; }
.capco-slide__more { font-size: 15px; }
.capco-highlights .capco-label { margin-bottom: var(--s-24) !important; }
.capco-highlights .capco-btn { margin-top: var(--s-32) !important; }
/* image height follows the viewport (1080 → 630, 1280 → 756) so squarer screens don't feel empty */
.capco-slider, .capco-slide { min-height: clamp(648px, calc(100svh * .6), 800px); }  /* design 648 @1080 → 768 @1280 */
.capco-ig { overflow: hidden; }
.capco-ig__track { display: flex; gap: 16px; will-change: transform; }
.capco-ig__track img { flex: 0 0 auto; }
@media (max-width: 1024px) { .capco-ig__track { gap: 16px; } }

/* ═══ ROUND 8 — mobile: cinematic bars (backdrop multiply), stable hero height, listing bar/modes, thinking grid, IG scroll, menu ═══ */
:root { --capco-vh: 100svh; }
.elementor-location-header { z-index: 960; }
.capco-mobile-menu { z-index: 950; }
body.capco-scroll-lock { position: fixed; left: 0; right: 0; overflow: hidden; }

/* ── Audience bar (in the header template → every page): dark over the hero, white over content ── */
.capco-audience { display: none; }
@media (max-width: 767px) {
	.capco-audience, .elementor-widget.capco-audience { display: block !important; position: fixed !important; left: 0 !important; right: 0 !important; bottom: 0 !important; top: auto !important; z-index: 850 !important; margin: 0 !important; width: auto !important; max-width: none !important; height: var(--capco-bar-h); background: transparent !important; -webkit-backdrop-filter: brightness(.141); backdrop-filter: brightness(.141); box-shadow: none; transition: background var(--capco-header-transition), box-shadow var(--capco-header-transition); }
	.capco-audience::before { content: ""; position: absolute; inset: 0; background: #080808; z-index: -1; opacity: 0; transition: opacity var(--capco-header-transition); } /* fallback where backdrop-filter is unsupported */
	@supports not (backdrop-filter: brightness(1)) { .capco-audience::before { opacity: 1; } }
	body.capco-bar-catalogue .capco-audience { background: #fff !important; -webkit-backdrop-filter: none; backdrop-filter: none; box-shadow: 0 -1px 0 rgba(0,0,0,.06), 0 -6px 18px rgba(0,0,0,.08); }
	body.capco-bar-catalogue .capco-audience::before { opacity: 0; }
	.capco-audience li, .capco-audience a { color: #36B37C; }
	body.capco-menu-open .capco-audience { display: none !important; }
}

@media (max-width: 767px) {
	/* ── Cinematic header: transparent + backdrop multiply over the hero; catalogue: white ── */
	body:not(.capco-catalogue) .capco-header { background: transparent !important; -webkit-backdrop-filter: brightness(.141); backdrop-filter: brightness(.141); }
	@supports not (backdrop-filter: brightness(1)) { body:not(.capco-catalogue) .capco-header { background: #080808 !important; } }
	body.capco-catalogue .capco-header { -webkit-backdrop-filter: none; backdrop-filter: none; }
	/* hero photo runs under the header and under the bottom bar; height fixed per device (JS --capco-vh), never per scroll */
	.capco-hero { margin-top: -80px !important; padding-top: 80px !important; background: #080808 !important; }
	.capco-hero > .e-con-inner { min-height: 0 !important; }
	.capco-hero .capco-hero__content { min-height: calc(var(--capco-vh) - 80px - var(--capco-bar-h)); padding: var(--s-24) 0 var(--s-32) !important; box-sizing: border-box; }
	.capco-hero-bgwrap { top: 0 !important; bottom: auto !important; height: var(--capco-vh); }
	.capco-hero__bg { background-size: auto 62%; background-position: 72% 100%; background-color: #080808; }
	.capco-hero__bg--a, .capco-hero__bg--b { animation: none !important; opacity: 1 !important; transform: none !important; }
	.capco-hero__bg--b { display: none; }
	.capco-hero__wash { background: linear-gradient(180deg, rgba(8,8,8,.7) 0%, rgba(8,8,8,.55) 32%, rgba(8,8,8,.15) 50%, rgba(8,8,8,0) 62%); }
	/* trust band: solid #080808, centred (no double padding) */
	.capco-trust, .capco-trust > .e-con-inner { padding-left: 0 !important; padding-right: 0 !important; }
	.capco-trust::after { background: #080808; mix-blend-mode: normal; opacity: 1; }
	/* labels: same size everywhere */
	.capco-way .capco-label .elementor-heading-title { font-size: 22px !important; line-height: 1.2 !important; }
	/* highlight cards: 12px apart */
	.capco-mcard + .capco-mcard { margin-top: var(--s-12); }
	/* The Thinking — comp: illustration column left, grey box right (bleeds to the edge) with heading + text */
	.capco-thinking .capco-col { display: grid !important; grid-template-columns: 150px 1fr; grid-template-rows: auto 1fr; column-gap: 0; row-gap: 0; align-items: start !important; margin: 0 0 var(--s-32) !important; width: 100% !important; }
	.capco-thinking .capco-col .elementor-widget-image, .capco-thinking .capco-col:first-child .elementor-widget-image { grid-column: 1; grid-row: 1 / span 2; width: 100% !important; margin: 0 !important; padding: 0 10px 0 0; box-sizing: border-box; }
	.capco-thinking .capco-col img { height: auto !important; max-height: 460px; width: 100%; object-fit: contain; object-position: top; }
	.capco-thinking .capco-col .elementor-widget-heading, .capco-thinking .capco-col:first-child .elementor-widget-heading { grid-column: 2; grid-row: 1; width: 100% !important; margin: 0 !important; padding: var(--s-24) 20px 0 var(--s-24); background: #F4F4F4; border-radius: 10px 0 0 0; }
	.capco-thinking .capco-col .elementor-widget-text-editor, .capco-thinking .capco-col:first-child .elementor-widget-text-editor { grid-column: 2; grid-row: 2; width: 100% !important; margin: 0 !important; padding: var(--s-12) 20px var(--s-24) var(--s-24); background: #F4F4F4; border-radius: 0 0 0 10px; font-size: 15px !important; line-height: 1.6 !important; }
	.capco-thinking .capco-col .elementor-widget-heading, .capco-thinking .capco-col .elementor-widget-text-editor { margin-right: -20px !important; width: calc(100% + 20px) !important; }
	.capco-thinking .capco-col .elementor-widget-heading .elementor-heading-title { font-size: 24px !important; line-height: 1.15 !important; text-align: left !important; }
	.capco-thinking .capco-col:nth-child(even) { grid-template-columns: 1fr 150px; }
	.capco-thinking .capco-col:nth-child(even) .elementor-widget-image { grid-column: 2; padding: 0 0 0 10px; }
	.capco-thinking .capco-col:nth-child(even) .elementor-widget-heading, .capco-thinking .capco-col:nth-child(even) .elementor-widget-text-editor { grid-column: 1; margin-right: 0 !important; margin-left: -20px !important; padding-left: 20px; padding-right: var(--s-24); }
	.capco-thinking .capco-col:nth-child(even) .elementor-widget-heading { border-radius: 0 10px 0 0; } .capco-thinking .capco-col:nth-child(even) .elementor-widget-text-editor { border-radius: 0 0 10px 0; }
	/* Instagram strip: native horizontal scroll with snap */
	.capco-ig { overflow-x: auto !important; overflow-y: hidden; -webkit-overflow-scrolling: touch; scroll-snap-type: x mandatory; scroll-padding-left: 20px; padding: 0 20px; box-sizing: border-box; scrollbar-width: none; }
	.capco-ig::-webkit-scrollbar { display: none; }
	.capco-ig .capco-ig__item { scroll-snap-align: start; }
	.capco-ig { --capco-ig-peek: 0px; }
	/* ── Projects listing bar: tools row (icons 28px + 44px search pill), tabs in one scrollable line ── */
	.capco-listing__bar { padding: var(--s-12) 0 var(--s-12); margin-bottom: var(--s-24); border-bottom: 3px solid #E8E8E8; gap: var(--s-16); }
	.capco-listing__tools { display: flex; align-items: center; gap: var(--s-16); order: -1; }
	.capco-view { display: flex; gap: var(--s-8); flex: 0 0 auto; }
	body .capco-view__btn { width: 28px !important; height: 28px !important; padding: 0 !important; }
	.capco-search { flex: 1 1 auto; height: 44px; padding: 0 16px; border-radius: 999px; display: flex; align-items: center; }
	.capco-search__input { font-size: 15px; width: 100%; }
	.capco-listing--projects .capco-tabs, .capco-listing--news .capco-tabs { display: flex; flex-wrap: nowrap; gap: var(--s-24); overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; padding: 4px 20px 6px; margin: 0 -20px; width: calc(100% + 40px); -webkit-mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 48px), transparent 100%); mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 48px), transparent 100%); }
	.capco-tabs::-webkit-scrollbar { display: none; }
	.capco-tab { flex: 0 0 auto; font-size: 15px; white-space: nowrap; }
	/* ── view modes: list = photo + title/lede/CTA (no bars); grid = photo + dark bar with title + EXPLORE ── */
	.capco-listing--projects.is-list .capco-pcard { display: flex !important; flex-direction: column; gap: var(--s-16); padding: 0 0 var(--s-24); margin: 0 0 var(--s-24); border-bottom: 3px solid #E8E8E8; }
	.capco-listing--projects.is-list .capco-pcard__media { order: -1; aspect-ratio: 350 / 205 !important; }
	.capco-listing--projects.is-list .capco-pcard__text { display: block !important; padding: 0; }
	.capco-listing--projects.is-list .capco-pcard__title { font-size: 26px; line-height: 1.2; margin: 0 0 var(--s-12); max-width: none; }
	.capco-listing--projects.is-list .capco-pcard__lede { font-size: 15px; -webkit-line-clamp: 4; margin: 0 0 var(--s-16); max-width: none; }
	.capco-listing--projects.is-list .capco-pcard__bar, .capco-listing--projects.is-list .capco-pcard__gridbar { display: none !important; }
	.capco-listing--projects.is-grid .capco-pcard { display: block !important; padding: 0; margin: 0 0 var(--s-12); border: 0; }
	.capco-listing--projects.is-grid .capco-pcard__media { aspect-ratio: 350 / 267 !important; }
	.capco-listing--projects.is-grid .capco-pcard__text, .capco-listing--projects.is-grid .capco-pcard__bar { display: none !important; }
	.capco-listing--projects.is-grid .capco-pcard__gridbar { display: flex !important; }
	.capco-listing--projects .capco-pcard { width: 100%; margin-left: 0; }
	.capco-listing--projects.is-list .capco-listing__grid, .capco-listing--projects.is-grid .capco-listing__grid { display: block; }
}
@media (min-width: 768px) { .capco-ig { overflow: hidden; } }

/* round 8b: header height var, menu keeps the header on screen, bleed specificity, thinking bleed */
:root { --capco-hdr: 84px; }
@media (max-width: 767px) {
	.capco-hero { margin-top: calc(-1 * var(--capco-hdr)) !important; padding-top: var(--capco-hdr) !important; }
	.capco-hero .capco-hero__content { min-height: calc(var(--capco-vh) - var(--capco-hdr) - var(--capco-bar-h)); }
	body.capco-menu-open .elementor-location-header { position: fixed; top: 0; left: 0; right: 0; }
	body.capco-menu-open .capco-header { background: #fff !important; -webkit-backdrop-filter: none; backdrop-filter: none; }
	body.capco-menu-open:not(.capco-catalogue) .capco-header { background: #171717 !important; box-shadow: none; }
	.capco-thinking .capco-col:first-child .elementor-widget-heading, .capco-thinking .capco-col:first-child .elementor-widget-text-editor, .capco-thinking .capco-col:nth-child(odd) .elementor-widget-heading, .capco-thinking .capco-col:nth-child(odd) .elementor-widget-text-editor { width: calc(100% + 20px) !important; margin-right: -20px !important; }
	.capco-thinking .capco-col:nth-child(even) .elementor-widget-heading, .capco-thinking .capco-col:nth-child(even) .elementor-widget-text-editor { width: calc(100% + 20px) !important; margin-left: -20px !important; margin-right: 0 !important; }
}

@media (max-width: 767px) {
	/* listing cards bleed to the 20px margin (comp) while the copy stays on the 35px text margin */
	.capco-listing--projects.is-list .capco-pcard, .capco-listing--projects.is-grid .capco-pcard { width: calc(100% + 30px) !important; margin-left: -15px !important; }
	.capco-listing--projects.is-list .capco-pcard__text { padding: 0 15px; }
	.capco-listing--projects.is-list .capco-pcard { border-bottom: 0; padding-bottom: var(--s-8); }
	.capco-listing--projects.is-list .capco-pcard::after { content: ""; display: block; height: 3px; background: #E8E8E8; margin: var(--s-16) 15px 0; }
}

@media (max-width: 767px) {
	/* first screen = hero only; the bottom bar overlays the photo, never the trust copy */
	.capco-hero .capco-hero__content { min-height: calc(var(--capco-vh) - var(--capco-hdr)); padding-bottom: calc(var(--capco-bar-h) + var(--s-24)) !important; }
}

@media (max-width: 767px) {
	/* inner heroes keep their comp layout: text block on black, photo filling the rest of the first screen (above the bar) */
	.capco-hero--inner .capco-hero__content { min-height: 0 !important; padding-bottom: var(--s-24) !important; }
	.capco-hero--inner > .e-con-inner { min-height: calc(var(--capco-vh) - var(--capco-hdr) - var(--capco-bar-h)) !important; display: flex; flex-direction: column; }
	.capco-hero--inner .capco-hero-mobile-photo { flex: 1 1 auto; min-height: 220px; }
}

@media (max-width: 767px) { .capco-hero--inner .capco-hero-mobile-photo, .capco-hero--inner .capco-hero-mobile-photo .elementor-widget-container { display: flex !important; } .capco-hero--inner .capco-hero-mobile-photo img { flex: 1 1 auto; height: auto !important; min-height: 100% !important; align-self: stretch; } }

@media (max-width: 767px) {
	/* The Thinking — areas 2 and 3 (comp): illustration full width on top, grey rounded box below */
	.capco-thinking .capco-col:nth-child(n+2) { display: flex !important; flex-direction: column !important; grid-template-columns: none; margin: 0 0 var(--s-24) !important; }
	.capco-thinking .capco-col:nth-child(n+2) .elementor-widget-image { grid-column: auto; grid-row: auto; width: 100% !important; padding: 0 !important; margin: 0 0 var(--s-16) !important; }
	.capco-thinking .capco-col:nth-child(n+2) img { width: 100%; height: auto !important; max-height: none; object-fit: contain; object-position: center bottom; }
	.capco-thinking .capco-col:nth-child(n+2) .elementor-widget-heading, .capco-thinking .capco-col:nth-child(n+2) .elementor-widget-text-editor { grid-column: auto; grid-row: auto; width: 100% !important; margin: 0 !important; padding-left: var(--s-24); padding-right: var(--s-24); }
	.capco-thinking .capco-col:nth-child(n+2) .elementor-widget-heading { padding-top: var(--s-24); border-radius: 10px 10px 0 0; }
	.capco-thinking .capco-col:nth-child(n+2) .elementor-widget-text-editor { padding-bottom: var(--s-24); border-radius: 0 0 10px 10px; }
	.capco-thinking .capco-col:nth-child(n+2) .elementor-widget-heading .elementor-heading-title { font-size: 24px !important; }
	.capco-thinking .capco-btn { margin-top: var(--s-8) !important; }
}

@media (max-width: 767px) {
	/* area 1: the grey box bleeds to the right edge (comp) */
	.capco-thinking .capco-col:first-child { width: calc(100% + 20px) !important; margin-left: 0 !important; margin-right: -20px !important; grid-template-columns: 150px 1fr; }
	.capco-thinking .capco-col:first-child .elementor-widget-heading, .capco-thinking .capco-col:first-child .elementor-widget-text-editor { width: 100% !important; margin-right: 0 !important; margin-left: 0 !important; }
}

/* ═══ ROUND 9 — Project Highlights from data: slider (desktop) + landscape grid cards (mobile), video pill → Elementor lightbox ═══ */
.elementor-widget.capco-highlightswrap { width: 100% !important; max-width: 100%; }
.capco-hl__mobile { display: none; }
.capco-slide__links { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; text-align: right; }
.capco-slide__video { color: #fff; font-weight: 700; font-size: 14px; text-decoration: none; display: inline-flex; align-items: center; gap: 8px; }
.capco-slide__video::after { content: ""; border-left: 8px solid #fff; border-top: 5px solid transparent; border-bottom: 5px solid transparent; }
.capco-slide__video:hover { color: #71E3B2; }
.capco-pcard__video { position: absolute; top: 14px; right: 14px; z-index: 3; background: #1C1C1C; color: #fff; font-size: 12px; font-weight: 700; border-radius: 999px; padding: 9px 14px; text-decoration: none; display: inline-flex; align-items: center; gap: 8px; transition: background var(--capco-t-fast), transform var(--capco-t-fast) var(--capco-ease-cozy); }
.capco-pcard__video::after { content: ""; border-left: 8px solid #fff; border-top: 5px solid transparent; border-bottom: 5px solid transparent; }
.capco-pcard__video:hover, .capco-pcard__video:focus-visible { background: #36B37C; color: #fff; }
.capco-pcard--hl { position: relative; }
.capco-pcard--hl .capco-pcard__media { display: block; }
.capco-pcard--hl .capco-pcard__gridbar .elementor-button { display: inline-block; }
@media (max-width: 767px) {
	.capco-hl__desktop { display: none !important; }
	.capco-hl__mobile { display: block; }
	.capco-mcards .capco-pcard--hl { display: block !important; width: 100% !important; margin: 0 0 var(--s-12) !important; padding: 0; border: 0; }
	.capco-mcards .capco-pcard--hl:last-child { margin-bottom: 0 !important; }
	.capco-mcards .capco-pcard--hl .capco-pcard__media { aspect-ratio: 350 / 267 !important; }
	.capco-mcards .capco-pcard--hl .capco-pcard__gridbar { display: flex !important; }
}

@media (max-width: 767px) {
	.capco-mcards { gap: var(--s-12); } .capco-mcards .capco-pcard--hl { margin: 0 !important; }
	.capco-mcards .capco-pcard--hl .capco-pcard__gridbar { min-height: 68px; padding: 12px 16px 14px; align-items: center; }
	.capco-mcards .capco-pcard--hl .capco-pcard__gridbar .capco-btn { display: inline-block; width: auto; flex: 0 0 auto; }
}

/* highlight cards: the section CTA margin must not leak into the card bar button */
.capco-highlights .capco-pcard__gridbar .capco-btn, .capco-highlights .capco-pcard__gridbar .elementor-widget-button { margin: 0 !important; }
/* vertical (9:16) videos in Elementor's lightbox: fit the viewport height */
.elementor-lightbox .elementor-aspect-ratio-916 .elementor-video-container { width: auto; height: 90vh; max-height: 90vh; aspect-ratio: 9 / 16; max-width: 92vw; }
.elementor-lightbox .elementor-aspect-ratio-916 .elementor-fit-aspect-ratio { padding-bottom: 0; height: 100%; }
@media (max-width: 767px) { .elementor-lightbox .elementor-aspect-ratio-916 .elementor-video-container { height: 80svh; max-height: 80svh; max-width: 100vw; } }

/* award/static slide caption on phones: single column (the desktop 3-column rule was appended after the earlier mobile override) */
@media (max-width: 767px) { .capco-slide__caption { grid-template-columns: 1fr !important; gap: var(--s-8); padding: 14px 16px; min-height: 0; } .capco-slide__links { align-items: flex-start; text-align: left; } .capco-slide__more { text-align: left; } }

/* ═══ ROUND 10 — Follow us strip: every tile is a link to Instagram, rounded like the other photos, endless on every device (ig.js) ═══ */
.capco-ig .capco-ig__item { display: block; flex: 0 0 auto; overflow: hidden; border-radius: var(--capco-radius-card); isolation: isolate; line-height: 0; -webkit-tap-highlight-color: transparent; }
.capco-ig .capco-ig__item img { border-radius: inherit; width: 398px !important; height: 400px !important; max-width: none; object-fit: cover; } /* inside a link Elementor's "a img { height: auto }" would undo the square crop */
@media (max-width: 1024px) { .capco-ig .capco-ig__item img { width: 300px !important; height: 320px !important; } }
@media (max-width: 767px) { .capco-ig .capco-ig__item img { width: 220px !important; height: 220px !important; } }
.capco-ig .capco-ig__item img { border-radius: inherit; } /* also covers the corners baked into some of the placeholder JPGs */
.capco-ig .capco-ig__item:focus-visible { outline-offset: -3px; border-radius: var(--capco-radius-card); }
@media (min-width: 768px) {
	.capco-ig.is-endless { overflow-x: auto !important; overflow-y: hidden; scrollbar-width: none; cursor: grab; user-select: none; -webkit-user-select: none; }
	.capco-ig.is-endless::-webkit-scrollbar { display: none; }
	.capco-ig.is-dragging { cursor: grabbing; } .capco-ig.is-dragging .capco-ig__item { pointer-events: none; }
	.capco-ig:not(.is-endless) .capco-ig__item:first-child { margin-left: calc(-1 * var(--capco-ig-peek)); } /* no-JS fallback keeps the peek */
}

/* ═══ ROUND 11 — Home desktop polish (comp Home -1920-): multiply header over the hero, green nav in both modes, 84px client bar ═══ */
/* nav + language switcher: brand green on black and on white (comp: ≈20px bold, "+Projects" 81px / "Contact" 70px wide) */
.capco-header .capco-nav > ul > li > a, body.capco-catalogue .capco-header .capco-nav > ul > li > a { color: #36B37C; font-size: 20px; font-weight: 700; }
.capco-header .capco-lang, body.capco-catalogue .capco-header .capco-lang { color: #36B37C; font-size: 20px; font-weight: 700; }
.capco-header .capco-nav > ul > li > a:hover { color: #71E3B2; }
body.capco-catalogue .capco-header .capco-nav > ul > li > a:hover { color: #2E2E2E; }
.capco-header .capco-nav > ul > li.is-open > a, body.capco-catalogue .capco-header .capco-nav > ul > li.is-open > a, .capco-header .capco-nav > ul > li.is-open > a:hover { color: #fff; }
@media (min-width: 1025px) {
	/* cinematic header = the client bar's treatment: #242424 multiplied over the photo, which now runs under it */
	body:not(.capco-catalogue) .capco-header { background: transparent; -webkit-backdrop-filter: brightness(.141); backdrop-filter: brightness(.141); }
	@supports not ((backdrop-filter: brightness(1)) or (-webkit-backdrop-filter: brightness(1))) { body:not(.capco-catalogue) .capco-header { background: #080808; } }
	.capco-hero { margin-top: calc(-1 * var(--capco-hdr)) !important; padding-top: var(--capco-hdr) !important; min-height: 100svh !important; box-sizing: border-box; }
	/* client bar: 84px like the header (it was 130px with 44/24 paddings), content centred; it only grows if the copy wraps */
	.capco-trust, .capco-trust > .e-con-inner { min-height: 84px !important; padding-top: 0 !important; padding-bottom: 0 !important; align-items: center !important; }
	.capco-trust { padding-top: 12px !important; padding-bottom: 12px !important; box-sizing: border-box; }
}
/* News cards: the zoom animated background-size (repainted per frame → visibly stepped). Same 700ms ease-out zoom as the other images, on a composited layer */
.capco-ncard { transition: transform var(--capco-t-fast) var(--capco-ease-out), box-shadow var(--capco-t-fast) !important; }
.capco-ncard.capco-reveal { transition: opacity var(--capco-t-reveal) var(--capco-ease-out) var(--capco-reveal-delay, 0ms), translate var(--capco-t-reveal) var(--capco-ease-out) var(--capco-reveal-delay, 0ms), transform var(--capco-t-fast) var(--capco-ease-out), box-shadow var(--capco-t-fast) !important; }   /* reveal + hover lift */
.capco-ncard, .capco-ncard:hover { background-size: cover !important; }
.capco-ncard::after { content: ""; position: absolute; inset: 0; z-index: -2; background-image: inherit; background-size: cover; background-position: center; transform: scale(1); transition: transform 700ms var(--capco-ease-out); will-change: transform; }
.capco-ncard:hover::after, .capco-ncard:focus-visible::after { transform: scale(1.05); }

/* ═══ ROUND 12 — Home hero photo + mobile composition. Masters, crops, variants and every number below: docs/hero-images.md
   (build/hero_variants.py prints them). Variants are cropped to what a screen can show; the final framing is CSS/JS. ═══ */
/* wide-desktop (crop 2.6035:1, roof at 26.3%, tower centre x 71.7%) — landscape screens: tower zone = 76% of the hero height
   → size .76/(1−.263) = 103%; tower centre at 74vw → x = 74vw − .7167 × 1.031 × 2.6035 × 100svh = 74vw − 192svh */
/* narrower than 16:9 the photo is sized from the width instead (58vw = 103.1svh at 16:9) so the tower and its annex never
   slide under the copy; a sky-coloured fade hides the photo's top edge when it no longer reaches the top of the hero */
.capco-hero:not(.capco-hero--inner) .capco-hero-bgwrap { container-type: size; } /* cqh/cqw = the hero box (it can be taller than the screen) */
.capco-hero:not(.capco-hero--inner) .capco-hero__bg { --h: min(103.1svh, 58vw); --x: min(0px, calc(74vw - 1.866 * var(--h))); }
@supports (width: 1cqh) { .capco-hero:not(.capco-hero--inner) .capco-hero__bg { --h: min(103.1cqh, 58cqw); --x: min(0px, calc(74cqw - 1.866 * var(--h))); } }
.capco-hero:not(.capco-hero--inner) .capco-hero__bg { --img: image-set(url("../img/hero/home-wide-desktop-2880.webp") 1x, url("../img/hero/home-wide-desktop-3874.webp") 2x);
	background-image: linear-gradient(180deg, #05060A 0, rgba(5,6,10,0) 100%), var(--img) !important; background-repeat: no-repeat !important; background-size: 100% 160px, auto var(--h) !important; background-position: 0 calc(100% - var(--h) + 160px), var(--x) 100% !important; background-color: #05060A; }
@media (max-width: 1280px) { .capco-hero:not(.capco-hero--inner) .capco-hero__bg { --img: image-set(url("../img/hero/home-wide-desktop-1920.webp") 1x, url("../img/hero/home-wide-desktop-3874.webp") 2x); } }
@media (min-width: 1921px) { .capco-hero:not(.capco-hero--inner) .capco-hero__bg { --img: url("../img/hero/home-wide-desktop-3874.webp"); } }
/* small landscape screens (iPad landscape): CTAs stacked like on phones and the tower a little further right, so they never meet */
@media (min-width: 768px) and (max-width: 1100px) and (orientation: landscape) {
	.capco-hero:not(.capco-hero--inner) .capco-hero__content .e-con { flex-direction: column !important; align-items: flex-start !important; gap: 10px !important; }
	@supports (width: 1cqh) { .capco-hero:not(.capco-hero--inner) .capco-hero__bg { --x: min(0px, calc(79cqw - 1.866 * var(--h))); } }
}
/* portrait composite (uncropped master + mirrored sky, 1:2, roof at 69.2%, construction annex→cabin at x 5–90%) — phones and
   portrait tablets. Composition rule (header.js fitHeroPhoto): the WHOLE construction stays visible across the screen, anchored
   to the bottom; it owns ≈30–40% of the first screen; its roof never rises above the CTAs (+8px); the sky runs behind the copy. */
.capco-hero:not(.capco-hero--inner) { --capco-hero-sky: .692; --capco-hero-ar: .5; --capco-hero-span-x0: .05; --capco-hero-span-w: .85; }
@media (max-width: 767px), (max-width: 1024px) and (orientation: portrait) {
	.capco-hero:not(.capco-hero--inner) .capco-hero__bg { background-image: image-set(url("../img/hero/home-portrait-1400.webp") 1x, url("../img/hero/home-portrait-2000.webp") 2x) !important; background-size: auto var(--capco-hero-photo-h, 135%) !important; background-position: var(--capco-hero-photo-x, 60%) var(--capco-hero-photo-y, 100%) !important; animation: none !important; opacity: 1 !important; transform: none !important; }
	.capco-hero:not(.capco-hero--inner) .capco-hero__bg--b { display: none; }
	/* first screen = hero only (the client band starts below the fold, as on phones), so the tower owns the space under the CTAs */
	.capco-hero:not(.capco-hero--inner) .capco-hero__content { min-height: calc(var(--capco-hero-h, var(--capco-vh)) - var(--capco-hdr)) !important; box-sizing: border-box; flex: 0 0 auto; }
	.capco-hero:not(.capco-hero--inner) .capco-hero-bgwrap { top: 0 !important; bottom: auto !important; height: var(--capco-hero-h, var(--capco-vh)) !important; }
	.capco-hero:not(.capco-hero--inner) .capco-hero__wash { background: linear-gradient(180deg, rgba(5,6,10,.55) 0, rgba(5,6,10,.4) calc(var(--capco-hero-copy-b, 56%) * .7), rgba(5,6,10,0) calc(var(--capco-hero-copy-b, 56%) + 24px)) !important; }
}
/* phones: capped at 2x (a 3x screen takes the 900px file: visually lossless for a night photo) */
@media (max-width: 767px) { .capco-hero:not(.capco-hero--inner) .capco-hero__bg { background-image: image-set(url("../img/hero/home-portrait-480.webp") 1x, url("../img/hero/home-portrait-900.webp") 2x) !important; } }
@media (max-width: 767px) {
	.capco-hero:not(.capco-hero--inner) .capco-hero__content { padding-top: clamp(12px, 2svh, 24px) !important; min-height: calc(var(--capco-hero-h, var(--capco-vh)) - var(--capco-hdr)) !important; }
	.capco-hero:not(.capco-hero--inner) .capco-hero__content .elementor-widget-heading { margin-bottom: clamp(12px, 2.2svh, 24px) !important; }
	.capco-hero:not(.capco-hero--inner) .capco-hero__content .elementor-widget-heading .elementor-heading-title { font-size: clamp(26px, 4.4svh, 32px) !important; line-height: 1.22 !important; }
	.capco-hero:not(.capco-hero--inner) .capco-hero__content .elementor-widget-text-editor { margin-bottom: clamp(14px, 2.4svh, 24px) !important; font-size: clamp(14px, 2.2svh, 15px) !important; line-height: 1.5 !important; }
	/* hero CTAs = comp: 30px sentence-case pills (designer decision 2026-09-18 — the only exception to the uppercase pill rule) */
	.capco-hero:not(.capco-hero--inner) .capco-hero__content .e-con { gap: 10px !important; }
	.capco-hero:not(.capco-hero--inner) .capco-hero__content .elementor-widget-button.capco-btn .elementor-button { text-transform: none; letter-spacing: 0; font-size: 13px !important; font-weight: 700 !important; line-height: 1 !important; min-height: 30px; padding: 0 24px !important; display: inline-flex; align-items: center; box-sizing: border-box; }
}

/* ═══ ROUND 13 — mobile Home pixel pass (2026-09-18): menu sub-items, highlight cards per comp, labels, storytelling bleed, image arrival ═══ */
/* menu sub-items: 18px (designer, 2026-09-18 — the comp's 22px read too large on the device); icons and rhythm scaled with them */
.capco-mgroup__list a { font-size: 18px; line-height: 24px; letter-spacing: 0; gap: 12px; margin: 9px 0; }
.capco-mobile-menu .capco-mgroup__list .capco-ico { width: 24px; height: 21px; flex: 0 0 24px; top: -1px; }
@media (max-height: 720px) { .capco-mgroup__list a, .capco-mgroup__list li:first-child a { margin-top: 7px; } .capco-mgroup__list a, .capco-mgroup__list li:last-child a { margin-bottom: 7px; } }
/* every section label = the same type at every width (the tablet display-heading rule was catching "The CAP.CO way": 52px) */
.elementor-widget-heading.capco-label.capco-label .elementor-heading-title { font-family: var(--capco-font-sans) !important; font-weight: 700 !important; font-size: 26px !important; line-height: 1.2 !important; letter-spacing: .78px !important; }
@media (max-width: 767px) { .elementor-widget-heading.capco-label.capco-label .elementor-heading-title { font-size: 22px !important; } } /* comp: "Project Highlights" 198px wide */
/* images that are still downloading when their block reveals fade in on arrival instead of popping (animations.js) */
.capco-img-fade { transition: opacity var(--capco-t-cozy) var(--capco-ease-out); }
.capco-img-wait { opacity: 0 !important; }
@media (max-width: 1024px) {
	/* storytelling photos: the square side sits on the wall (0), the rounded side keeps the margin — comp home-iphone */
	/* the photo grows by the side margin: square side on the wall, rounded side aligned with the text column (no stepping) */
	.capco-way .capco-row .capco-photo.capco-photo { width: calc(100% + (100vw - 100%) / 2) !important; max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; border-radius: var(--capco-r-img) 0 0 var(--capco-r-img) !important; }
	.capco-way .capco-row > .e-con:first-child .capco-photo.capco-photo, .capco-way .capco-row .capco-photo.capco-photo.capco-bleed-left { margin-left: calc((100% - 100vw) / 2) !important; margin-right: 0 !important; border-radius: 0 var(--capco-r-img) var(--capco-r-img) 0 !important; }
}
@media (max-width: 767px) {
	.capco-way .capco-photo { min-height: 185px !important; } /* comp: 350×164–193 */
	/* storytelling caption = the same full-width dark bar as the highlight cards (comp), not a floating chip */
	.capco-way .capco-photo a.capco-chip, .capco-way .capco-photo .capco-chip { left: 0 !important; right: 0 !important; bottom: 0 !important; width: 100% !important; max-width: none !important; min-width: 0 !important; min-height: 36px; box-sizing: border-box; padding: 8px 14px 9px !important; border-radius: 0 !important; font-size: 13px; gap: var(--s-12); justify-content: space-between; }
	.capco-way .capco-photo .capco-chip::before { background: rgba(17,17,17,.9); mix-blend-mode: normal; }
	/* Project Highlights card = the comp's component (photo rounded on every corner, dark caption bar with name, place, chevron; the whole card
	   is the link) on the agreed 350×267 proportion shared with the related-project cards (designer, 2026-09-16 / 09-18) — not the comp's 350×352 */
	.capco-mcards .capco-hlcard { position: relative; display: block; width: 100%; aspect-ratio: 350 / 267; margin: 0; border-radius: var(--capco-radius-card); overflow: hidden; background: #191C1A; isolation: isolate; flex: 0 0 auto; }
	.capco-hlcard__link, .capco-hlcard__link:is(:link, :visited, :hover, :focus, :active) { position: absolute; inset: 0; display: block; color: #fff; text-decoration: none; -webkit-tap-highlight-color: transparent; }
	.capco-hlcard__link:focus-visible { outline-offset: -3px; border-radius: var(--capco-radius-card); }
	.capco-hlcard img { display: block; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; }
	.capco-hlcard__bar { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: var(--s-12); min-height: 36px; box-sizing: border-box; padding: 8px 14px 9px; font-family: var(--capco-font-sans); font-size: 13px; line-height: 1.35; color: #fff; isolation: isolate; }
	.capco-hlcard__bar::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(17,17,17,.9); }
	.capco-hlcard__text { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 500; }
	.capco-hlcard__text b { font-weight: 700; }
	.capco-hlcard__bar .capco-chip__arrow { flex: 0 0 auto; width: 8px; height: 8px; margin-right: 4px; border-right: 2px solid #fff; border-top: 2px solid #fff; transform: rotate(45deg); }
	.capco-hlcard .capco-pcard__video { z-index: 3; }
}

/* ═══ Image corners: ONE radius everywhere — 8px (designer, 2026-09-18). Elementor's per-element radius settings lose to this. ═══ */
.capco-photo, .capco-slider, .capco-slide, .capco-mcard, .capco-hlcard, .capco-card__img, .capco-mosaic__item, .capco-prose img, .capco-gallery img, .capco-pcard__media, .capco-ncard, .capco-news, .capco-story__media,
.capco-ppage-hero img, .capco-related .elementor-post__thumbnail__link, .capco-ig .capco-ig__item, .capco-lb__img, .capco-hero-mobile-photo img, .capco-contact__map img, .capco-article-hero .capco-article-bg img { border-radius: var(--capco-r-img) !important; }
.capco-way .capco-row > .e-con:first-child .capco-photo.capco-photo, .capco-way .capco-photo.capco-photo.capco-bleed-left { border-radius: 0 var(--capco-r-img) var(--capco-r-img) 0 !important; }
.capco-way .capco-row > .e-con:last-child .capco-photo.capco-photo:not(.capco-bleed-left) { border-radius: var(--capco-r-img) 0 0 var(--capco-r-img) !important; }

/* ═══ Content migration (2026-09-23): embedded videos in articles, "+ Load more" on long listings ═══ */
.capco-prose .capco-embed { position: relative; aspect-ratio: 16 / 9; margin: 40px 0; border-radius: var(--capco-r-img); overflow: hidden; background: #191C1A; }
.capco-prose .capco-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.capco-prose ul, .capco-prose ol { margin: 0 0 28px; padding-left: 24px; }
.capco-prose li { margin: 0 0 8px; }
.capco-loadmore { display: flex; justify-content: center; margin-top: var(--s-48); }
.capco-loadmore[hidden] { display: none; }

/* ═══ ROUND 14 (2026-09-25) — Projects listing on phones per the designer's captures. Landing state = the original comp: the tools row (view
   toggle + search) above the scrollable tab strip, inside the gutters. Stuck state (scrolled past the title, `.is-stuck` from listing.js) = the
   categories only, edge to edge: the tools row leaves and its height becomes bottom margin (--capco-tools-h, measured by listing.js) so the
   cards below do not jump. List cards keep title/lede left and centre the CTA. Project page on phones: the basic-info block is closed by the
   same grey line that opens it; galleries in two columns (landscape tiles instead of three squares). ═══ */
@media (max-width: 767px) {
	.capco-listing--projects .capco-listing__bar { top: var(--capco-hdr, 84px); }
	.capco-listing--projects .capco-listing__bar.is-stuck .capco-listing__tools { display: none !important; }
	.capco-listing--projects .capco-listing__bar.is-stuck { width: 100vw; margin: calc(-1 * var(--s-16)) 0 calc(var(--s-24) + var(--capco-tools-h, 0px)) calc(50% - 50vw); padding: var(--s-12) 0 var(--s-12); border-bottom: 3px solid #E8E8E8; }   /* same top margin as the landing bar: only the tools row's height moves into the bottom margin */
	.capco-listing--projects .capco-listing__bar.is-stuck .capco-tabs { margin: 0; width: 100%; padding: 4px 8px 6px; }
	.capco-listing--projects.is-list .capco-pcard__cta { display: table; margin: var(--s-8) auto 0; }
	.capco-pmeta { border-bottom: 3px solid #E8E8E8; padding-bottom: 8px; }
	.capco-ppage-content .capco-prose .capco-gallery { grid-template-columns: repeat(2, 1fr); gap: 8px; }
	.capco-ppage-content .capco-prose .capco-gallery img { height: 120px; }
}
.capco-listing__bar.capco-reveal { translate: none !important; }
/* filtered-out cards must leave the flow on phones too: the mobile card rules above use `display … !important` and were beating `.is-hidden`, so a
   filter left a tall invisible gap and the matching cards thousands of pixels down ("the filter does nothing until you scroll") */
.capco-listing--projects .capco-listing__grid > .capco-pcard.is-hidden { display: none !important; }
/* the card photo must fill its 350×205 frame on phones (a `height: auto` image rule left an 8px strip of the frame's dark background under it) */
@media (max-width: 767px) { .capco-listing--projects .capco-pcard__media img { height: 100% !important; width: 100% !important; object-fit: cover; } }

/* ═══ ROUND 15 (2026-11-11) — FOOTER per the designer's comp (1920×1075) with the Royal Arms. One shortcode ([capco_footer], capco-core) inside
   the footer template; every desktop measure is the comp's pixel × --u (1px at ≥1920, proportional below), so the composition is identical from
   1200px up. Tablet and phone are derived versions (no comp): same order and voice, one calm centred column on phones. ═══ */
.capco-footer.capco-footer--v2 { padding: 0 !important; background: #40B37C; overflow: hidden; }
.capco-footer--v2 > .e-con-inner, .capco-footer--v2 .elementor-widget-shortcode, .capco-footer--v2 .elementor-shortcode { width: 100% !important; max-width: none !important; padding: 0 !important; margin: 0 !important; }
.capco-ft { --u: min(1px, calc(100vw / 1920)); position: relative; color: #fff; font-family: var(--capco-font-sans); }
.capco-ft a { color: #fff; text-decoration: none; }
.capco-ft__top { position: relative; width: calc(1920 * var(--u)); height: calc(687 * var(--u)); margin: 0 auto; }
.capco-ft__about { position: absolute; left: calc(134 * var(--u)); top: calc(129 * var(--u)); width: calc(352 * var(--u)); }
.capco-ft__text { margin: 0; font-weight: 700; font-size: calc(30 * var(--u)); line-height: calc(40 * var(--u)); letter-spacing: .01em; min-height: calc(360 * var(--u)); }
.capco-ft__btn { position: absolute; left: 0; top: calc(396 * var(--u)); display: flex; align-items: center; justify-content: center; width: calc(322 * var(--u)); height: calc(73 * var(--u)); border-radius: 999px; background: #fff; color: #36B37C !important; font-weight: 700; font-size: calc(19 * var(--u)); box-shadow: 0 calc(6 * var(--u)) calc(16 * var(--u)) rgba(0,0,0,.14); transition: transform var(--capco-t-fast) var(--capco-ease-out), box-shadow var(--capco-t-fast), background var(--capco-t-fast); }
.capco-ft__btn:hover, .capco-ft__btn:focus-visible { transform: translateY(-2px); background: var(--capco-mint-tint); box-shadow: 0 calc(10 * var(--u)) calc(22 * var(--u)) rgba(0,0,0,.18); }
.capco-ft__arms { position: absolute; left: calc(548 * var(--u)); top: calc(145 * var(--u)); width: calc(321 * var(--u)); margin: 0; display: flex; flex-direction: column; align-items: center; }
.capco-ft__arms img { display: block; width: 100%; height: auto; }
/* Royal Warrant legend: always with the Arms, same single colour, centred beneath them. Upper and lower case (designer 2026-11-11: the capitals
   were the smallest text on the site — 9.5px on laptops and phones): 14.5px at 1920, never under 12px, and narrower than the Arms at every width */
.capco-ft .capco-ft__legend { color: #fff; font-style: normal; display: flex; flex-direction: column; align-items: center; flex: none; width: max-content; max-width: calc(360 * var(--u)); margin-top: calc(18 * var(--u)); text-align: center; font-weight: 500; font-size: max(12px, calc(14.5 * var(--u))); line-height: 1.45; letter-spacing: .01em; white-space: nowrap; }
.capco-ft__legend span:first-child { font-weight: 700; }
.capco-ft__info { position: absolute; left: calc(1103 * var(--u)); top: 0; width: calc(674 * var(--u)); height: 100%; }
.capco-ft__reach { position: absolute; left: calc(83 * var(--u)); top: calc(208 * var(--u)); display: flex; flex-direction: column; font-weight: 700; font-size: calc(24 * var(--u)); line-height: calc(35 * var(--u)); letter-spacing: .01em; }
.capco-ft__reach > a:hover, .capco-ft__links a:hover { opacity: .85; }
.capco-ft__social { display: flex; gap: calc(24 * var(--u)); list-style: none; margin: calc(46 * var(--u)) 0 0; padding: 0; }
.capco-ft__social a { display: flex; align-items: center; justify-content: center; width: calc(58 * var(--u)); height: calc(58 * var(--u)); border-radius: 50%; background: #fff; transition: transform var(--capco-t-fast) var(--capco-ease-cozy), background var(--capco-t-fast); }
.capco-ft__social svg { width: 62%; height: 62%; fill: #40B37C; }
.capco-ft__social a:hover, .capco-ft__social a:focus-visible { transform: translateY(-3px) scale(1.04); background: var(--capco-mint-tint); }
.capco-ft__address { position: absolute; right: 0; top: calc(208 * var(--u)); margin: 0; font-style: normal; font-weight: 700; font-size: calc(24 * var(--u)); line-height: calc(35 * var(--u)); letter-spacing: .01em; text-align: right; }
/* links: the footer's own sans (same voice as the contact lines), centred between the two rules (designer 2026-11-11) */
.capco-ft__links { position: absolute; left: 0; right: 0; top: calc(412 * var(--u)); height: calc(103 * var(--u)); display: flex; align-items: center; justify-content: center; gap: calc(76 * var(--u)); border-top: 1px solid rgba(255,255,255,.9); border-bottom: 1px solid rgba(255,255,255,.9); }
.capco-ft__links a { position: relative; font-family: var(--capco-font-sans); font-weight: 700; font-size: max(15px, calc(24 * var(--u))); line-height: 1.2; letter-spacing: .01em; }
.capco-ft__links a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -6px; height: 2px; background: #fff; transition: right var(--capco-t-fast) var(--capco-ease-out); }
.capco-ft__links a:hover::after, .capco-ft__links a:focus-visible::after { right: 0; }
.capco-ft__copy { position: absolute; left: 0; right: 0; top: calc(533 * var(--u)); margin: 0; text-align: center; font-weight: 500; font-size: max(12px, calc(18 * var(--u))); line-height: calc(32 * var(--u)); letter-spacing: .01em; }
.capco-ft__giant { position: relative; width: 100%; height: calc(100vw * 388 / 1920); overflow: hidden; }
/* wordmark = 195.2 of the SVG's 310.2 units: measured on the comp (A at x=347, O at x=1562) → wordmark 2010px wide at 1920, 52px off the left edge, cropped 8px at the bottom */
.capco-ft .capco-ft__giant img { position: absolute; left: -2.73vw; top: 0; width: 166.4vw; max-width: none !important; height: auto; filter: brightness(0) invert(1); }
.capco-ft__tagline { position: absolute; right: 2.29vw; top: 7.3vw; text-align: right; color: #40B37C; font-weight: 800; font-size: 2.08vw; line-height: 1; text-transform: uppercase; letter-spacing: .005em; }
@media (max-width: 1199px) {   /* tablet: text + arms side by side, the contact block below on two columns */
	.capco-ft__top { width: auto; height: auto; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 48px 40px; padding: 180px 40px 56px; align-items: center; }
	.capco-ft__about, .capco-ft__arms, .capco-ft__info, .capco-ft__reach, .capco-ft__address, .capco-ft__links, .capco-ft__copy, .capco-ft__btn { position: static; width: auto; height: auto; }
	.capco-ft__text { font-size: 24px; line-height: 34px; min-height: 0; max-width: 460px; }
	.capco-ft__btn { display: inline-flex; width: 280px; height: 60px; margin-top: 32px; font-size: 17px; }
	.capco-ft .capco-ft__arms { width: 300px; justify-self: end; } .capco-ft__arms img { width: 220px; }
	.capco-ft .capco-ft__legend { max-width: 300px; margin-top: 14px; font-size: 12px; }
	.capco-ft__info { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
	.capco-ft__reach, .capco-ft__address { font-size: 20px; line-height: 32px; padding-bottom: 36px; }
	.capco-ft__social { gap: 18px; margin-top: 24px; } .capco-ft__social a { width: 52px; height: 52px; }
	.capco-ft__links { grid-column: 1 / -1; height: 84px; gap: 64px; justify-content: center; } .capco-ft__links a { font-size: 20px; }
	.capco-ft__copy { grid-column: 1 / -1; margin-top: 20px; font-size: 15px; line-height: 24px; }
}
@media (max-width: 767px) {   /* phone: one centred column — message, action, distinction, contact, links, signature */
	.capco-ft__top { display: flex; flex-direction: column; align-items: center; gap: 0; padding: 136px 20px 40px; text-align: center; }
	.capco-ft__about { display: flex; flex-direction: column; align-items: center; width: 100%; }
	.capco-ft__text { font-size: 20px; line-height: 29px; max-width: 320px; }
	.capco-ft__btn { width: 100%; max-width: 320px; height: 56px; margin-top: 28px; font-size: 16px; }
	.capco-ft .capco-ft__arms { width: 100%; margin: 48px 0 44px !important; justify-self: auto; } .capco-ft__arms img { width: 168px; }
	.capco-ft .capco-ft__legend { max-width: 320px; margin-top: 12px; font-size: 12px; }
	.capco-ft__info { display: flex; flex-direction: column; align-items: center; width: 100%; }
	.capco-ft__reach { align-items: center; font-size: 18px; line-height: 30px; padding-bottom: 28px; }
	.capco-ft__social { justify-content: center; gap: 16px; margin-top: 20px; } .capco-ft__social a { width: 48px; height: 48px; }
	.capco-ft__address { text-align: center; font-size: 16px; line-height: 26px; padding-bottom: 32px; }
	.capco-ft__links { width: 100%; height: auto; padding: 20px 0; gap: 28px; justify-content: center; } .capco-ft__links a { font-size: 16px; }
	.capco-ft__copy { margin-top: 18px; font-size: 13px; line-height: 20px; font-weight: 500; max-width: 300px; text-wrap: balance; }
	.capco-ft__giant { height: 19.8vw; margin-top: 8px; } .capco-ft .capco-ft__giant img { width: 158.9vw; left: 0; }   /* phones: the whole CAP.CO reads, edge to edge, standing on the bottom of the footer (designer 2026-11-11) */
	.capco-ft__tagline { display: none; }
	.capco-footer.capco-footer--v2 { padding-bottom: 0 !important; }
}

/* ═══ ROUND 15 — CONTACT characters (final SVGs, inline so GSAP can move their parts — assets/js/contact.js). Sizes are the comp's (Web 1920 – 30)
   × --k: "howdy!" bubble 217×160 with the mirrored letterform 240px to its right and 100px lower; "hi!" group 206×279 hanging off the phone line. ═══ */
.capco-chars { --k: 1; position: relative; pointer-events: auto; flex: 0 0 auto; }
.capco-chars .capco-char__svg { display: block; overflow: visible; }
.capco-chars--howdy { width: calc(338px * var(--k)); height: calc(202px * var(--k)); margin: 0 0 22px; left: calc(-75px * var(--k)); top: calc(12px * var(--k)); }
.capco-chars--howdy .capco-chars__in { position: absolute; left: 0; top: 0; width: 338px; height: 202px; transform: scale(var(--k)); transform-origin: 0 0; }
.capco-chars--howdy .capco-chars__bubble { position: absolute; left: -93px; top: -143px; width: 460.66px; height: 452.55px; pointer-events: none; }
.capco-chars--howdy .capco-chars__body { position: absolute; left: 240px; top: 100px; width: 93px; height: 101px; }
.capco-chars--hi { position: absolute; left: calc(100% - 6px * var(--k)); top: calc(-42px * var(--k)); width: calc(205.68px * var(--k)); }
.capco-chars--hi .capco-char__svg { width: 100%; height: auto; }
.capco-chars--hi .capco-chars__bubble { position: absolute; inset: 0; pointer-events: none; }   /* two layers of the same drawing: the letterform and its bubble move separately */
@media (max-width: 1024px) { .capco-chars { --k: .72; } }
@media (max-width: 767px) {
	.capco-chars { --k: .6; }
	.capco-chars--howdy { margin: 0 0 14px; left: -24px; }
	.capco-chars--hi { position: relative; left: auto; top: auto; display: block; margin: 6px 0 -18px 46%; }   /* below the phone line, to its right (it would leave the screen beside it) */
}

/* ═══ ROUND 15 — STORIES BEHIND THE PLAY. Story page = the Key reading comp (Web 1920 – 22: hero with lede, 800px reading column on the right,
   green H2 between rules, galleries bleeding left, closing statement) raised with: a lead paragraph, an opening heading without rules, automatic
   galleries for runs of images, lone images on the gallery measure, an aside (way back, reading time, "On this page") in the free left column on
   wide screens, and related readings as the site's grid cards. Archive page /stories/ = the Home's story rows. ═══ */
.single-story .capco-prose > p:first-of-type, .single-story .capco-prose > h2:first-child + p { font-size: 21px; line-height: 1.6; font-weight: 500; color: #1C1C1C; }
.single-story .capco-prose > h2:first-child { border: 0; padding: 0; margin: 0 0 28px; color: #363636; font-size: 40px; line-height: 1.15; }
.single-story .capco-prose > img { margin: 44px 0 48px; aspect-ratio: 16 / 9; object-fit: cover; }
.single-story .capco-prose .capco-gallery--2 { grid-template-columns: repeat(2, 1fr); }
.single-story .capco-prose .capco-gallery--auto img { height: auto; aspect-ratio: 4 / 5; }
.single-story .capco-prose .capco-gallery--2 img { aspect-ratio: 4 / 3; }
.single-story .capco-prose ul, .single-story .capco-prose ol { margin: 0 0 1.3em; padding-left: 1.2em; } .single-story .capco-prose li { margin-bottom: .5em; }
.single-story .capco-prose li::marker { color: #36B37C; font-weight: 700; }
.single-story .capco-prose blockquote { margin: 44px 0; padding: 4px 0 4px 28px; border-left: 3px solid #36B37C; font-family: var(--capco-font-display); font-weight: 600; font-size: 28px; line-height: 1.3; color: #363636; }
.single-story .capco-article-hero .elementor-widget-theme-post-excerpt { max-width: 560px; }
/* aside */
.capco-article-body > .elementor-widget.capco-sasidewrap { grid-column: 2; margin: 0 0 28px; }
@media (max-width: 1024px) { .capco-article-body > .elementor-widget.capco-sasidewrap { grid-column: 1; } }   /* one column there: a second one would squeeze the text */
.capco-saside { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 20px; padding: 0 0 16px; border-bottom: 3px solid #E8E8E8; font-size: 15px; color: #4F4D4E; }
.capco-saside__back { order: 3; margin-left: auto; font-weight: 700; color: #36B37C; text-decoration: none; transition: transform var(--capco-t-fast) var(--capco-ease-out); }
.capco-saside__back:hover { transform: translateX(-4px); }
.capco-saside__label { margin: 0; font-weight: 700; font-size: 17px; color: #E8794A; }
.capco-saside__time { margin: 0; font-weight: 500; }
.capco-saside__toc { display: none; }
@media (min-width: 1600px) {   /* the left column is free: the aside lives there and follows the reading */
	.single-story .capco-article-body { align-items: start; }
	.capco-article-body > .elementor-widget.capco-sasidewrap { grid-column: 1; grid-row: 1; position: sticky; top: 124px; width: 300px; margin: 0; align-self: start; z-index: 1; }
	.capco-article-body > .elementor-widget.capco-sasidewrap + .elementor-widget { grid-row: 1; }
	.capco-saside { flex-direction: column; align-items: flex-start; gap: 0; padding: 0; border: 0; }
	.capco-saside__back { order: 0; margin: 0 0 22px; }
	.capco-saside__label { width: 100%; padding: 16px 0 6px; border-top: 3px solid #E8E8E8; }
	.capco-saside__time { width: 100%; padding: 0 0 16px; border-bottom: 3px solid #E8E8E8; }
	.capco-saside__toc:not([hidden]) { display: block; width: 100%; padding: 16px 0 0; }
	.capco-saside__toctitle { display: block; font-weight: 700; font-size: 15px; color: #363636; margin-bottom: 10px; }
	.capco-saside__toc ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; }
	.capco-saside__toc a { display: block; padding-left: 14px; border-left: 3px solid transparent; font-size: 15px; line-height: 1.35; color: #4F4D4E; text-decoration: none; transition: color var(--capco-t-fast), border-color var(--capco-t-fast); }
	.capco-saside__toc a:hover { color: #36B37C; } .capco-saside__toc a.is-current { color: #36B37C; font-weight: 700; border-left-color: #36B37C; }
	.single-story .capco-prose > img { margin-left: calc(-1 * (800px * 0.51)); width: calc(100% + 800px * 0.51); max-width: none; }
}
/* related readings + archive */
.capco-pcard--story .capco-pcard__gridtitle { text-transform: none; font-family: var(--capco-font-display); font-weight: 600; font-size: 22px; line-height: 1.2; max-width: 70%; }
.capco-stories-archive .capco-stories-list { gap: var(--s-64); margin-top: var(--s-40); }
.capco-stories-archive .capco-story:nth-child(even) .capco-story__media { order: 2; }
.capco-stories-archive .capco-story__more { align-self: flex-start; }
.capco-stories-intro { max-width: 760px; font-size: 20px; line-height: 1.6; color: #363636; }
.elementor-widget.capco-stories-intro { margin: 0 0 var(--s-24) !important; }
@media (max-width: 1024px) { .capco-stories-archive .capco-story:nth-child(even) .capco-story__media { order: 0; } .capco-stories-archive .capco-stories-list { gap: var(--s-48); } }
@media (max-width: 767px) {
	.single-story .capco-prose > p:first-of-type, .single-story .capco-prose > h2:first-child + p { font-size: 18px; }
	.single-story .capco-prose > h2:first-child { font-size: 28px; margin-bottom: 20px; }
	.single-story .capco-prose > img { margin: 28px 0 32px; }
	.single-story .capco-prose .capco-gallery, .single-story .capco-prose .capco-gallery--2 { grid-template-columns: repeat(2, 1fr); gap: 8px; margin: 28px 0 32px; }
	.single-story .capco-prose .capco-gallery img, .single-story .capco-prose .capco-gallery--auto img { height: auto; aspect-ratio: 4 / 3; }
	.single-story .capco-prose blockquote { font-size: 22px; padding-left: 18px; margin: 32px 0; }
	.capco-saside { font-size: 14px; } .capco-saside__label { font-size: 15px; }
	.capco-pcard--story .capco-pcard__gridtitle { font-size: 17px; max-width: 64%; }
	.capco-stories-intro { font-size: 17px; }
	.capco-stories-archive .capco-story__title { font-size: 26px; } .capco-stories-archive .capco-story__text { font-size: 15px; }
}

/* article / story body: Elementor's later `.e-con { display: var(--display) }` was beating the grid, so the text ran the full 1640px instead of
   the comp's 800px reading column on the right (Web 1920 – 22) */
.capco-article-body.capco-article-body { display: grid !important; }

/* ═══ Map section parked (designer 2026-11-11: "hide the map and 'Find your nearest CAP.CO creation' until further notice" — the interactive map is a
   small app still to be built). Switch: CAPCO_HIDE_MAP in functions.php → body.capco-no-map. The footer then carries its own tongue of the page's
   colour (the map used to hang it into the footer), as in the footer comp. ═══ */
body.capco-no-map .capco-mapsec { display: none !important; }
/* the white way in at the top centre is the notch of the CAP.CO "C" itself, turned to point down: the two curves of the letterform
   (M71.344,51.044S92.968,49.721,92.968,31.48 … s0-18.461-21.624-18.461 of the mark) re-plotted in a 38.026 × 21.624 box. Comp: 320px wide, 182 deep, centred. */
.capco-footer.capco-footer--v2 { --u: min(1px, calc(100vw / 1920)); }
/* on the container, not on the content: the notch is part of the green box and is there whenever the box is */
.capco-footer.capco-footer--v2::after { content: ""; position: absolute; left: 50%; top: -1px; width: calc(320 * var(--u)); aspect-ratio: 38.026 / 21.624; transform: translateX(-50%); background: var(--capco-ft-drip, #fff); pointer-events: none; z-index: 1;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 38.026 21.624' preserveAspectRatio='none'%3E%3Cpath d='M0,0C18.241,0 19.564,21.624 19.564,21.624C19.565,0 38.026,0 38.026,0Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 38.026 21.624' preserveAspectRatio='none'%3E%3Cpath d='M0,0C18.241,0 19.564,21.624 19.564,21.624C19.565,0 38.026,0 38.026,0Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat; }
/* Contact: the way in is a window — the map carries on beneath the footer (designer's reference). The notch paints the same drawing, at the
   map's size and position: map = 100vw wide and cut after 920/1922 of its width (47.867vw); phones: 240vw, framed like .capco-hqmap__canvas */
body:has(.capco-hqmap) .capco-footer--v2::after { background: #D1F8EA url("../img/brand/contact-map.svg") no-repeat; background-size: 100vw auto; background-position: calc(-1 * (50vw - 160 * var(--u))) -47.867vw; }
@media (max-width: 1199px) { body:has(.capco-hqmap) .capco-footer--v2::after { background-position: calc(-1 * (50vw - 120px)) -47.867vw; } }
@media (max-width: 767px) { body:has(.capco-hqmap) .capco-footer--v2::after { background-size: 240vw auto; background-position: calc(-135.84vw + 84px) calc(-190px - 74.42vw); } }
.elementor-location-footer { position: relative; } .capco-mapsec .capco-drip::after, .capco-contact-map-sec.capco-drip::after, .capco-contact-map-sec .capco-drip::after { display: none; }   /* the old tongue into the footer is replaced by the notch */
@media (max-width: 1199px) { .capco-footer.capco-footer--v2::after { width: 240px; } }
@media (max-width: 767px) { .capco-footer.capco-footer--v2::after { width: 168px; } }
/* Stories archive = the Projects listing's reading cards (designer 2026-11-11: "like Projects"); no tabs or tools (7 items): the rule the bar draws under the title is drawn by the list itself */
.capco-listing--stories .capco-listing__bar { position: static; justify-content: flex-end; margin-top: 0; padding-top: 0; box-shadow: none; }   /* no categories: only the tools, and nothing to pin */
.capco-listing--stories .capco-pcard:last-child { border-bottom: 0; }
.capco-listing--stories.is-grid .capco-pcard__gridtitle { text-transform: none; font-family: var(--capco-font-display); font-weight: 600; font-size: 22px; line-height: 1.2; }
@media (max-width: 767px) { .capco-listing--stories .capco-listing__bar { margin-bottom: var(--s-24); } .capco-listing--stories.is-grid .capco-pcard__gridtitle { font-size: 17px; } }

/* ═══ ROUND 15 — CONTACT map (comp Web 1920 – 30 + the designer's SVG map and pin): the map is the comp's 1922×1166 drawing at 100vw, cut by the
   footer after 920 units; the pin's tip sits on Norfolk (1200, 596), "CAP.CO HQ" above it, and the "howdy" character stands in the North Sea
   saying "we are here!". Every measure is in map units × --k (map width / 1922, set by contact.js; 1 without JS). Phones: the map is shown at
   240vw, framed on the UK and the pin, so the pin and the character stay readable. ═══ */
.capco-hqmap { --k: var(--hq-k, 1); position: relative; height: calc(920px * var(--k)); overflow: hidden; background: #D1F8EA; }
.capco-hqmap__canvas { position: absolute; left: 0; top: 0; width: 100vw; aspect-ratio: 1922 / 1166; }
.capco-contact__map .capco-hqmap__img { display: block; width: 100%; height: auto; border-radius: 0 !important; }
.capco-hqmap__label { position: absolute; left: calc(1142px * var(--k)); top: calc(416px * var(--k)); margin: 0; font-family: var(--capco-font-sans); font-weight: 700; font-size: calc(32px * var(--k)); line-height: 1; color: #E8794A; white-space: nowrap; }
.capco-hqmap__pin { position: absolute; left: calc(1157.6px * var(--k)); top: calc(466.6px * var(--k)); width: calc(84.888px * var(--k)); }
.capco-hqmap__pin svg { display: block; width: 100%; height: auto; overflow: visible; }
/* designer 2026-11-11: the character stands to the LEFT of the pin (label + pin on the right, bubble over the land: a balanced pair) — the
   whole group is the right-hand one mirrored (scaleX −1 from its right edge); only the words are flipped back */
.capco-hqmap .capco-chars--here { --k: var(--hq-k, 1); position: absolute; left: calc(806px * var(--k)); top: calc(445px * var(--k)); width: calc(338px * var(--k)); height: calc(202px * var(--k)); margin: 0; }
.capco-chars--here .capco-chars__in { position: absolute; left: 100%; top: 0; width: 338px; height: 202px; transform: scale(calc(-1 * var(--k)), var(--k)); transform-origin: 0 0; }
.capco-chars--here .capco-chars__bubble { position: absolute; left: -29.66px; top: -143px; width: 460.66px; height: 452.55px; pointer-events: none; }
.capco-chars--here .capco-chars__bubble .capco-char__svg { transform: scaleX(-1); }   /* the howdy bubble mirrored: tail towards the letterform on its left */
.capco-chars--here .capco-chars__say { position: absolute; left: 283.7px; top: 229px; transform: translate(-50%, -50%) rotate(-17deg) scaleX(-1); font-family: var(--capco-font-display); font-weight: 600; font-size: 31px; line-height: 1.02; color: #E8794A; text-align: center; white-space: nowrap; }
.capco-chars--here .capco-chars__body { position: absolute; left: 5px; top: 100px; width: 93px; height: 101px; }
@media (max-width: 767px) {
	.capco-hqmap { height: 440px; }
	.capco-hqmap__canvas { width: 240vw; left: calc(64vw - 1200px * var(--k)); top: calc(250px - 596px * var(--k)); }   /* pin at 64vw: the character has the left half */
}
/* Contact → map: the orange way in is the same C notch as the footer's (comp Web 1920 – 30), not the round drip */
/* designer's reference 2026-11-11: flatter than the footer's (310 × 128 at 1920), its point landing on Scotland's north coast */
.capco-contact.capco-drip::after { left: 50%; right: auto; top: calc(100% - 1px); width: calc(310 * min(1px, 100vw / 1920)); height: calc(128 * min(1px, 100vw / 1920)); transform: translateX(-50%); z-index: 2;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 38.026 21.624' preserveAspectRatio='none'%3E%3Cpath d='M0,0C18.241,0 19.564,21.624 19.564,21.624C19.565,0 38.026,0 38.026,0Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 38.026 21.624' preserveAspectRatio='none'%3E%3Cpath d='M0,0C18.241,0 19.564,21.624 19.564,21.624C19.565,0 38.026,0 38.026,0Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat; }
@media (max-width: 1199px) { .capco-contact.capco-drip::after { width: 232px; height: 96px; } }
@media (max-width: 767px) { .capco-contact.capco-drip::after { width: 164px; height: 68px; } }

/* ═══════════════════ ROUND 16 — Policies (index /policies/ + `policy` template) ═══════════════════
   Composition of the project page: empty-ish left column (692) + the 806px reading column; type from .capco-prose, with the
   headings one step down (legal documents have a section every few lines: Domaine 30 for sections, sans 20 for sub-sections). */
.capco-policy-head, .capco-policy-body, .capco-policies-body { display: grid !important; grid-template-columns: 692px 806px; width: 100% !important; align-items: start; }
.capco-policy-head > .elementor-widget, .capco-policy-body > .elementor-widget.capco-prose, .capco-policies-body > .capco-policieswrap { grid-column: 2; width: 100%; max-width: 806px; }
.capco-policy-head { padding-top: 54px !important; }
.capco-policy__back { display: inline-block; font-weight: 700; font-size: 15px; color: #36B37C; text-decoration: none; transition: transform var(--capco-t-fast) var(--capco-ease-out); }
.capco-policy__back:hover, .capco-policy__back:focus-visible { transform: translateX(-4px); color: #36B37C; }
.elementor-widget.capco-policy-title { margin-top: 18px !important; }
.capco-policy-title .elementor-heading-title { font-family: var(--capco-font-display) !important; font-weight: 600 !important; font-size: 60px !important; line-height: 1.1 !important; color: #363636 !important; text-wrap: balance; }
.capco-policy__updated { margin: 22px 0 0; font-size: 15px; font-weight: 500; color: #4F4D4E; }
.capco-policy-head > .elementor-widget:last-child { padding-bottom: 28px; border-bottom: 3px solid #E8E8E8; }
.capco-policy-body { padding-top: 44px !important; }
.capco-policy-body > .capco-pasidewrap { grid-column: 1; grid-row: 1; width: 300px; position: sticky; top: 124px; }
.capco-policy-body > .elementor-widget.capco-prose { grid-row: 1; }
.capco-section.capco-policy { padding-bottom: 120px; }
/* the document */
.capco-prose--policy h2 { font-size: 30px; line-height: 1.2; color: #363636; border: 0; padding: 0; margin: 48px 0 18px; text-wrap: balance; }
.capco-prose--policy > h2:first-child, .capco-prose--policy .elementor-widget-container > h2:first-child { margin-top: 0; }
.capco-prose--policy h3 { font-family: var(--capco-font-sans); font-weight: 700; font-size: 20px; line-height: 1.3; margin: 32px 0 10px; }
.capco-prose--policy ul { list-style: none; margin: 0 0 1.3em; padding: 0; }
.capco-prose--policy li { position: relative; margin: 0 0 .55em; padding-left: 26px; }
.capco-prose--policy li::before { content: ""; position: absolute; left: 2px; top: .72em; width: 12px; height: 2px; background: #36B37C; }
.capco-prose--policy img { max-width: 620px; margin: 32px 0 36px; border-radius: 0 !important; }
.capco-prose--policy a { overflow-wrap: anywhere; }
.capco-prose--policy .capco-policy-sign { margin: 48px 0 0; padding-top: 22px; border-top: 3px solid #E8E8E8; font-weight: 500; line-height: 1.55; }
.capco-prose--policy .capco-policy-sign::first-line { font-weight: 700; }
/* aside: every policy, the current one marked */
.capco-paside__title { margin: 0 0 10px; font-weight: 700; font-size: 17px; color: #E8794A; }
.capco-paside ul { list-style: none; margin: 0; padding: 0; border-top: 3px solid #E8E8E8; }
.capco-paside li { border-bottom: 1px solid #E8E8E8; }
.capco-paside a { display: block; padding: 10px 0 10px 0; font-size: 15px; line-height: 1.35; color: #4F4D4E; text-decoration: none; transition: color var(--capco-t-fast), padding var(--capco-t-fast) var(--capco-ease-out); }
.capco-paside a:hover, .capco-paside a:focus-visible { color: #36B37C; padding-left: 6px; }
.capco-paside a[aria-current] { color: #363636; font-weight: 700; padding-left: 14px; box-shadow: inset 3px 0 0 #36B37C; }
/* index */
.capco-section.capco-policies-sec { padding-bottom: 120px; }
.capco-policies-body > .capco-policies-intro { grid-column: 1; grid-row: 1; max-width: 430px; font-size: 20px; line-height: 1.5; color: #363636; }
.capco-policies-body > .capco-policies-intro p { margin: 0; max-width: 430px; }
.capco-policies-body > .capco-policieswrap { grid-row: 1; }
.capco-policies { list-style: none; margin: 0; padding: 0; border-top: 3px solid #E8E8E8; }
.capco-policies__item { border-bottom: 3px solid #E8E8E8; }
.capco-policies__link { display: flex; align-items: center; justify-content: space-between; gap: 32px; padding: 26px 0; text-decoration: none; color: #363636; }
.capco-policies__text { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.capco-policies__title { font-family: var(--capco-font-display); font-weight: 600; font-size: 30px; line-height: 1.2; color: #363636; transition: color var(--capco-t-fast); }
.capco-policies__desc { font-size: 15px; line-height: 1.5; color: #4F4D4E; max-width: 560px; }
.capco-policies__meta { display: flex; align-items: center; gap: 20px; flex: none; }
.capco-policies__date { font-size: 13px; font-weight: 500; color: #7A7A7A; white-space: nowrap; }
.capco-policies__go { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; border: 2px solid #36B37C; color: #36B37C; font-size: 20px; line-height: 1; transition: transform var(--capco-t-fast) var(--capco-ease-out), background var(--capco-t-fast), color var(--capco-t-fast); }
.capco-policies__link:hover .capco-policies__title, .capco-policies__link:focus-visible .capco-policies__title { color: #36B37C; }
.capco-policies__link:hover .capco-policies__go, .capco-policies__link:focus-visible .capco-policies__go { transform: translateX(6px); background: #36B37C; color: #fff; }
@media (max-width: 1599px) {
	.capco-policy-head, .capco-policy-body, .capco-policies-body { grid-template-columns: minmax(240px, 1fr) minmax(0, 806px); column-gap: 64px; }
	.capco-policy-body > .capco-pasidewrap { width: auto; max-width: 300px; }
	.capco-policy-title .elementor-heading-title { font-size: 48px !important; }
}
@media (max-width: 1024px) {
	.capco-policy-head, .capco-policy-body, .capco-policies-body { grid-template-columns: minmax(0, 1fr); }
	.capco-policy-head > .elementor-widget, .capco-policy-body > .elementor-widget.capco-prose, .capco-policies-body > .capco-policieswrap, .capco-policies-body > .capco-policies-intro { grid-column: 1; grid-row: auto; max-width: 806px; }
	.capco-policy-body > .capco-pasidewrap { grid-column: 1; grid-row: 2; position: static; width: auto; max-width: 806px; margin-top: 64px; }   /* after the text: "more policies" */
	.capco-paside ul { columns: 2; column-gap: 40px; } .capco-paside li { break-inside: avoid; }
	.capco-policies-body > .capco-policies-intro { margin-bottom: 36px; max-width: 620px; }
}
@media (max-width: 767px) {
	.capco-policy-head { padding-top: 30px !important; }
	.capco-policy-title .elementor-heading-title { font-size: 32px !important; line-height: 1.2 !important; }
	.capco-policy__updated { margin-top: 16px; font-size: 14px; } .capco-policy-head > .elementor-widget:last-child { padding-bottom: 20px; }
	.capco-policy-body { padding-top: 30px !important; }
	.capco-section.capco-policy, .capco-section.capco-policies-sec { padding-bottom: 72px; }
	.capco-prose--policy h2 { font-size: 24px; margin: 36px 0 14px; } .capco-prose--policy h3 { font-size: 18px; margin: 26px 0 8px; }
	.capco-prose--policy li { padding-left: 22px; } .capco-prose--policy li::before { width: 10px; }
	.capco-paside ul { columns: 1; } .capco-paside a { padding: 12px 0; }
	.capco-policies-body > .capco-policies-intro { font-size: 17px; margin-bottom: 36px; }
	.capco-policies__link { padding: 20px 0; gap: 16px; } .capco-policies__title { font-size: 22px; } .capco-policies__desc { font-size: 14px; }
	.capco-policies__date { display: none; } .capco-policies__go { width: 38px; height: 38px; font-size: 17px; }
}

/* ═══ ROUND 16 — project page on laptops (review 2026-11-11). The comp's columns are fixed pixels of the 1640px container (414 + 1224 hero row,
   692 + 806 text, galleries 1224): below 1680px the hero, the galleries and the text ran off the right edge (cut at 1440 / 1366 / 1280).
   Between 1025 and 1679 the same composition scales with the container: every comp measure N becomes container width × N / 1640. Type sizes do not change. ═══ */
@media (min-width: 1025px) and (max-width: 1679px) {
	.capco-ppage { --pp: calc(100vw - 40px); }   /* the container's width; a comp measure N becomes --pp × N / 1640 */
	.capco-ppage-herorow { grid-template-columns: calc(var(--pp) * 414 / 1640) minmax(0, 1fr); }
	.capco-ppage-herorow > .e-con.capco-ppage-herowrap { width: calc(var(--pp) * 1224 / 1640) !important; }
	.capco-ppage-body { grid-template-columns: calc(var(--pp) * 692 / 1640) minmax(0, 806px); }
	.capco-ppage-content .capco-prose .capco-gallery { margin-left: calc(var(--pp) * -278 / 1640); width: calc(var(--pp) * 1224 / 1640); }
	.capco-ppage-content .capco-prose .capco-gallery img { height: calc(var(--pp) * 280 / 1640); }
	.capco-ppage-content .capco-prose > img, .capco-ppage-content .capco-prose .elementor-widget-container > img { margin-left: calc(var(--pp) * -278 / 1640); width: calc(var(--pp) * 1224 / 1640); }
	.capco-ppage-decosc .capco-deco { left: calc(var(--pp) * 110 / 1640); width: calc(var(--pp) * 648 / 1640); }
}
/* Teams mosaic on laptops (review 2026-11-11): its six columns are fixed pixels of the 1640px container (1365 + gaps) and ran off the right edge
   below ~1400px (1366 / 1280): between tablet and there the same six columns share the width in the comp's proportions. */
@media (min-width: 1025px) and (max-width: 1439px) {
	.capco-mosaic { grid-template-columns: 265fr 242fr 248fr 60fr 260fr 240fr; gap: 16px; }
	.capco-mosaic > * { min-width: 0; }
	.capco-mosaic__intro { padding-left: 24px; font-size: 19px; }
}
/* Article / story galleries on small laptops (review 2026-11-11): they bleed 408px to the left of the 800px reading column, but below ~1250px the
   left column is narrower than that and the first photos were cut by the screen edge: there the bleed is whatever the left column offers. */
@media (min-width: 1025px) and (max-width: 1259px) {
	.capco-article-body .capco-prose .capco-gallery { margin-left: calc(-1 * (100vw - 840px)); width: calc(100% + (100vw - 840px)); }
}
/* Thinking — "Our principles" cards on laptops (review 2026-11-11): the photos are fixed pixels of the 1640px container, so below it the text column
   was squeezed (at 1440 "Construction" was cut, at 1280 the column was 100px wide). Photos, gaps and titles follow the container there. */
@media (min-width: 1025px) and (max-width: 1679px) {
	.capco-card { --pc: calc(100vw - 40px); padding: calc(var(--pc) * 32 / 1640); gap: calc(var(--pc) * 36 / 1640); }
	.capco-card--h .capco-card__img { width: calc(var(--pc) * 265 / 1640); height: calc(var(--pc) * 440 / 1640); }
	.capco-card--s .capco-card__img { width: calc(var(--pc) * 500 / 1640); height: calc(var(--pc) * 424 / 1640); }
	.capco-card--kids .capco-card__img { width: calc(var(--pc) * 497 / 1640); height: calc(var(--pc) * 400 / 1640); }
	.capco-card--hands .capco-card__img { width: calc(var(--pc) * 312 / 1640); height: calc(var(--pc) * 400 / 1640); }
	.capco-card--logs .capco-card__img { width: calc(var(--pc) * 1040 / 1640); height: calc(var(--pc) * 400 / 1640); }
	.capco-card h3 { font-size: clamp(24px, calc(var(--pc) * 36 / 1640), 36px) !important; overflow-wrap: break-word; }
}

/* ═══ ROUND 16 — tablet + small-laptop pass on the editorial inner pages (review 2026-11-11). The comps are 1920 and 390; in between, three things
   broke: 70px headlines wider than their half-column (words cut by the screen: "Conversation", "Likeminded", "Collaborative"), the Process cards
   squeezed to one word per line, and the Process timeline's blobs covering each other's text. Derived rules, same components: ═══ */
/* 1 · two-column rows: the headline follows the width (70px at 1440 → 36px at 768) */
@media (min-width: 768px) and (max-width: 1439px) {
	.capco-row .capco-display .elementor-heading-title { font-size: clamp(36px, 4.6vw, 70px) !important; overflow-wrap: break-word; }
}
/* 2 · Process intro rows: below 1200 the copy and the percentage cards stop sharing a row (cards need ≥ 200px each to hold their text) */
@media (min-width: 768px) and (max-width: 1199px) {
	.capco-process-intro .capco-row { flex-direction: column !important; gap: 48px !important; }
	.capco-process-intro .capco-row > .e-con { width: 100% !important; max-width: 100% !important; }
	.capco-process-intro .capco-row .elementor-widget-text-editor { max-width: 640px !important; }
	.capco-process-intro .capco-stack { min-height: 420px; }
	.capco-process-intro .capco-stack--build { min-height: 0; }
}
/* 3 · Process timeline on tablets: one column of blobs, photo above its text (the phone composition with tablet measures), centred */
@media (min-width: 768px) and (max-width: 1024px) {
	.capco-timeline { max-width: 620px; margin-left: auto; margin-right: auto; padding-top: 80px; }
	.capco-step { grid-template-columns: 1fr; margin-bottom: 40px; }
	.capco-step__blob, .capco-step--left .capco-step__blob, .capco-step--right .capco-step__blob { grid-column: 1; margin: 0 !important; flex-direction: column !important; text-align: center !important; padding: 64px 72px 84px; min-height: 0; border-radius: 46% 54% 50% 50% / 26% 24% 74% 76%; }
	.capco-step:nth-child(even) .capco-step__blob { border-radius: 54% 46% 52% 48% / 24% 28% 72% 76%; }
	.capco-step__img, .capco-step--left .capco-step__img, .capco-step--right .capco-step__img { flex: 0 0 auto; width: 100%; max-width: 420px; margin: 0 0 22px !important; order: -1; }
	.capco-step__text { flex: 0 0 auto; max-width: 400px; }
	.capco-step::after { display: none; }
	/* Thinking principles on tablets: one card per row — the photo takes a share of the card instead of its desktop pixels */
	.capco-card--s .capco-card__img, .capco-card--kids .capco-card__img, .capco-card--hands .capco-card__img { width: 46%; height: 340px; }
	.capco-card--h .capco-card__img { width: 34%; height: 400px; }
	.capco-card--logs { flex-direction: column-reverse; align-items: flex-start; }
}
/* 4 · slider caption on tablets: the three fixed columns (322 | text | 200) left the description ~100px wide */
@media (min-width: 768px) and (max-width: 1100px) {
	.capco-slide__caption { grid-template-columns: minmax(0, 220px) minmax(0, 1fr) auto; gap: 20px; padding-left: 24px; padding-right: 24px; }
	.capco-slide__title, .capco-slide__desc { font-size: 14px; }
}
/* 5 · Process percentage cards beside the copy (1200–1439): a little less padding so the text keeps a readable column */
@media (min-width: 1200px) and (max-width: 1439px) { .capco-process-intro .capco-stack__body { padding: 32px 16px 28px; } .capco-process-intro .capco-stacks { gap: 24px; } }

/* ═══ ROUND 17 — project categories as CAP.CO asked (2026-11-11): Featured · Attractions & Leisure · Museums & Heritage · Schools ·
   Zoos & Farm Parks in the Projects mega menu, the mobile menu and the phone audience bar (five entries, the client's order). Residential &
   Private is secondary for the client: a filter inside Projects only. ═══ */
.capco-mega__grid--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.capco-mega__grid--5 .capco-mega__item { padding: var(--s-24) var(--s-24) var(--s-16); }
@media (max-width: 1799px) {   /* five in a row need ≥ 300px each for the names: below that, 3 + 2 */
	.capco-mega__grid--5 { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 48px; row-gap: 8px; }
	.capco-mega__grid--5 .capco-mega__item { padding: var(--s-24) var(--s-32) var(--s-16); }
}
@media (max-width: 767px) {
	.capco-audience li span { display: block; max-width: 70px; margin: 0 auto; text-wrap: balance; }   /* "Attractions & Leisure" on two balanced lines */
}
.capco-mega__text { text-wrap: balance; }
/* Projects listing bar with seven tabs: on laptops the search gives way so the tabs stay on one line ("Every project" was wrapping alone);
   below 1280 the tabs take the row and the tools sit under them, right-aligned */
@media (min-width: 1280px) and (max-width: 1599px) {
	.capco-listing--projects .capco-tabs { gap: 8px 18px; flex-wrap: nowrap; white-space: nowrap; }
	.capco-listing--projects .capco-search { width: 300px; }
}
@media (min-width: 1280px) and (max-width: 1365px) {
	.capco-listing--projects .capco-tabs { gap: 8px 14px; }
	.capco-listing--projects .capco-search { width: 240px; } .capco-listing--projects .capco-search__input::placeholder { color: transparent; }
	.capco-listing--projects .capco-listing__tools { gap: 12px; }
}
@media (min-width: 1025px) and (max-width: 1279px) {
	.capco-listing--projects .capco-listing__bar { flex-direction: column; align-items: stretch; gap: 16px; }
	.capco-listing--projects .capco-listing__tools { justify-content: flex-end; }
}

/* ═══ ROUND 17 — footer newsletter: the button opens an e-mail field in its own place (same pill, same size); a line about privacy beneath ═══ */
.capco-ft__news { position: absolute; left: 0; top: calc(396 * var(--u)); width: calc(322 * var(--u)); }
.capco-ft .capco-ft__news .capco-ft__btn { position: static; width: 100%; margin: 0; border: 0 !important; padding: 0; font-family: var(--capco-font-sans); letter-spacing: 0; text-transform: none; cursor: pointer; background: #fff !important; color: #36B37C !important; }
.capco-ft .capco-ft__news .capco-ft__btn:hover, .capco-ft .capco-ft__news .capco-ft__btn:focus-visible { background: var(--capco-mint-tint) !important; color: #36B37C !important; }
.capco-ft__news [hidden] { display: none !important; }
.capco-ft__form { display: flex; align-items: center; gap: calc(8 * var(--u)); width: 100%; height: calc(73 * var(--u)); min-height: 48px; margin: 0; padding: 0 calc(7 * var(--u)) 0 calc(26 * var(--u)); border-radius: 999px; background: #fff; box-shadow: 0 calc(6 * var(--u)) calc(16 * var(--u)) rgba(0,0,0,.14); }
.capco-ft .capco-ft__email, .capco-ft .capco-ft__email:focus { flex: 1 1 auto; min-width: 0; height: 100%; margin: 0; padding: 0 !important; border: 0 !important; border-radius: 0; background: none !important; box-shadow: none !important; outline: none; font-family: var(--capco-font-sans); font-weight: 600; font-size: max(15px, calc(17 * var(--u))); color: #363636 !important; }
.capco-ft .capco-ft__email::placeholder { color: #8A8A8A; font-weight: 500; }
.capco-ft .capco-ft__send, .capco-ft .capco-ft__send:hover, .capco-ft .capco-ft__send:focus { flex: 0 0 auto; height: calc(100% - calc(14 * var(--u))); min-height: 36px; margin: 0; padding: 0 calc(22 * var(--u)) !important; border: 0 !important; border-radius: 999px !important; background: #36B37C !important; color: #fff !important; font-family: var(--capco-font-sans); font-weight: 700; font-size: max(13px, calc(15 * var(--u))); letter-spacing: 0; text-transform: none; cursor: pointer; transition: background var(--capco-t-fast); }
.capco-ft .capco-ft__send:hover, .capco-ft .capco-ft__send:focus-visible { background: #2C9A69 !important; }
.capco-ft .capco-ft__send[disabled] { opacity: .7; cursor: default; }
.capco-ft__form:focus-within { box-shadow: 0 0 0 3px rgba(255,255,255,.55), 0 calc(6 * var(--u)) calc(16 * var(--u)) rgba(0,0,0,.14); }
.capco-ft__note { position: absolute; left: 0; top: calc(100% + 10px); width: max(100%, 300px); margin: 0; font-weight: 500; font-size: max(12px, calc(14 * var(--u))); line-height: 1.4; color: #fff; }
.capco-ft__note a { text-decoration: underline; text-underline-offset: 2px; }
@media (max-width: 1199px) {
	.capco-ft__news { position: static; width: 300px; max-width: 100%; margin-top: 32px; }
	.capco-ft__form { height: 60px; padding: 0 6px 0 22px; } .capco-ft .capco-ft__send { height: 48px; padding: 0 20px !important; }
	.capco-ft__note { position: static; width: auto; margin-top: 10px; font-size: 13px; }
}
@media (max-width: 767px) {
	.capco-ft__news { width: 100%; max-width: 320px; margin-top: 28px; }
	.capco-ft__form { height: 56px; } .capco-ft .capco-ft__send { height: 44px; }
	.capco-ft__note { text-align: center; }
}

/* ═══ ROUND 18 — film player (video.js): the Home hero's "Explore our play spaces ▶" plays CAP.CO's film full screen ═══ */
html.capco-film-open, html.capco-film-open body { overflow: hidden !important; }
.capco-film { position: fixed; inset: 0; z-index: 100001; display: flex; align-items: center; justify-content: center; background: #000; }
.capco-film__video { display: block; width: 100%; height: 100%; object-fit: contain; background: #000; outline: none; }
.capco-film .capco-film__close, .capco-film .capco-film__close:hover, .capco-film .capco-film__close:focus { position: absolute; top: max(16px, env(safe-area-inset-top)); right: max(16px, env(safe-area-inset-right)); width: 48px; height: 48px; margin: 0; padding: 0; border: 0 !important; border-radius: 50% !important; background: rgba(8,8,8,.55) !important; color: #fff !important; font-family: var(--capco-font-sans); font-size: 30px; font-weight: 500; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background var(--capco-t-fast), transform var(--capco-t-fast) var(--capco-ease-out); }
.capco-film .capco-film__close:hover, .capco-film .capco-film__close:focus-visible { background: #36B37C !important; transform: scale(1.06); }
.capco-film .capco-film__close:focus-visible { box-shadow: 0 0 0 3px rgba(255,255,255,.7); }

/* ═══════════════════ ROUND 19 — article + story hero: "the News card opens" (designer's choice among four variants, 2026-11-11) ═══════════════════
   The hero is the listing's card grown to the screen: the photo tinted with the category's colour (multiply, so the picture stays readable),
   the category on top, the title in white Domaine, the lede, then date · reading time. No button, no rule. It leaves with the Home's motion
   (scenes.js: photo parallax OUT + fade, page colour black → white) and on phones it runs behind the audience bar, which stays dark over it. */
body.capco-cat-events-awards { --capco-ahero: #537E34; } body.capco-cat-in-build { --capco-ahero: #117283; } body.capco-cat-design-development, body.capco-cat-on-the-drawing-board { --capco-ahero: #E96534; }
body.capco-cat-thoughts-thinking, body.capco-cat-story, body.capco-cat-none { --capco-ahero: #36B37C; }
.capco-hero.capco-article-hero { background: #080808 !important; }
.capco-article-hero .capco-article-bg img { width: 100%; height: 100% !important; object-fit: cover; object-position: 50% 45%; border-radius: 0 !important; filter: grayscale(.35) contrast(1.05); }
/* The tint lives INSIDE the photo's own layer (2026-11-11 fix): as a separate widget it was a second moving layer, and some browsers painted the
   photo without its parallax offset — the colour slid off the picture on the way down. One box, one transform, one fade. */
.capco-article-hero .capco-article-bg { overflow: hidden; isolation: isolate; }
.capco-article-hero .capco-article-bg::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; mix-blend-mode: multiply; background: linear-gradient(0deg, rgba(8,8,8,.28), rgba(8,8,8,.28)), var(--capco-ahero, #36B37C); }
.capco-hero--inner.capco-article-hero .capco-hero-bgwrap { display: none !important; }   /* the old wash widget (still in the template: harmless) */
.capco-hero--inner.capco-article-hero .capco-hero__content { align-items: center !important; justify-content: center !important; text-align: center; color: #fff; }
.capco-article-hero .elementor-widget-theme-post-title, .capco-article-hero .elementor-widget-theme-post-excerpt { width: 100% !important; max-width: none !important; }
.capco-article-hero .elementor-widget-theme-post-title .elementor-heading-title { color: #fff !important; max-width: 980px; margin: 0 auto; text-wrap: balance; }
.capco-article-hero .elementor-widget-theme-post-excerpt { color: #fff !important; font-weight: 500 !important; font-size: 19px !important; line-height: 1.6 !important; margin-top: 26px; }
.capco-article-hero .elementor-widget-theme-post-excerpt .elementor-widget-container { max-width: 620px; margin: 0 auto; text-wrap: balance; }
.capco-ahero__cat, .capco-ahero__cat:hover, .capco-ahero__cat:focus { display: inline-block; margin: 0 0 26px; font-family: var(--capco-font-sans); font-weight: 700; font-size: 17px; line-height: 1.3; color: #fff !important; text-decoration: none; }
.capco-ahero__cat:hover, .capco-ahero__cat:focus-visible { text-decoration: underline; text-underline-offset: 4px; }
.capco-ahero__foot { margin: 34px 0 0; font-family: var(--capco-font-sans); font-weight: 700; font-size: 15px; line-height: 1.3; color: #fff; }
.capco-article-hero .capco-hero__rule, .capco-article-hero .capco-hero__content .elementor-widget-button { display: none !important; }
@media (max-width: 767px) {
	.capco-hero--inner.capco-article-hero > .e-con-inner { min-height: calc(var(--capco-vh, 100svh) - var(--capco-hdr, 80px)) !important; }   /* down to the bottom of the screen: the bar sits ON the hero and stays dark */
	.capco-article-hero .capco-article-bg { display: block !important; }
	.capco-hero--inner.capco-article-hero .capco-hero-mobile-photo { display: none !important; }
	.capco-hero--inner.capco-article-hero .capco-hero__content { flex: 1 1 auto !important; padding: 24px 4px calc(var(--capco-bar-h, 66px) + 24px) !important; }
	.capco-article-hero .elementor-widget-theme-post-title .elementor-heading-title { font-size: 36px !important; line-height: 1.1 !important; }
	.capco-ahero__cat { font-size: 15px; margin-bottom: 20px; }
	.capco-article-hero .elementor-widget-theme-post-excerpt { font-size: 16px !important; margin-top: 20px; }
	.capco-ahero__foot { margin-top: 26px; font-size: 14px; }
}

/* ═══ ROUND 20 — footer motion (animations.js footer()): parts with the site reveal, the block with the vertical axis (top band parallax IN,
   giant wordmark rising inside its box). Layers only while the footer is on screen. ═══ */
.capco-ft--live .capco-ft__top, .capco-ft--live .capco-ft__giant img, .capco-ft--live .capco-ft__tagline { will-change: transform, opacity; }
.capco-ft .capco-ft__news.capco-reveal, .capco-ft .capco-ft__arms.capco-reveal { transition: opacity var(--capco-t-reveal) var(--capco-ease-out) var(--capco-reveal-delay, 0ms), translate var(--capco-t-reveal) var(--capco-ease-out) var(--capco-reveal-delay, 0ms) !important; }

