/* Generated from assets/css/[0-9][0-9]-*.css — edit those, not this. */

/* ---- 00-fonts.css ---- */
/* Self-hosted from Google Fonts (latin + latin-ext only). Generated — do not hand-edit. */
@font-face{font-family:'Bebas Neue';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/bebas-neue-latin-ext-0.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Bebas Neue';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/bebas-neue-latin-1.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Inter';font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/inter-italic-latin-ext-2.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Inter';font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/inter-italic-latin-3.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Oswald';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/oswald-latin-ext-4.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Oswald';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/oswald-latin-5.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Poppins';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/poppins-latin-ext-6.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Poppins';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/poppins-latin-7.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Poppins';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/poppins-latin-ext-8.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Poppins';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/poppins-latin-9.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Roboto';font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/roboto-italic-latin-ext-10.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Roboto';font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/roboto-italic-latin-11.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Roboto';font-style:italic;font-weight:700;font-display:swap;src:url(../fonts/roboto-italic-latin-ext-10.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Roboto';font-style:italic;font-weight:700;font-display:swap;src:url(../fonts/roboto-italic-latin-11.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Roboto';font-style:normal;font-weight:300;font-display:swap;src:url(../fonts/roboto-latin-ext-12.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Roboto';font-style:normal;font-weight:300;font-display:swap;src:url(../fonts/roboto-latin-13.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/roboto-latin-ext-12.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/roboto-latin-13.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Roboto';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/roboto-latin-ext-12.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Roboto';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/roboto-latin-13.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/roboto-latin-ext-12.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/roboto-latin-13.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

/* ---- 01-tokens.css ---- */
/* ==========================================================================
   01 — Tokens. Custom properties only. The only place a literal value lives.
   Source: Elementor kit 6 (registered) + compiled per-page CSS (promoted).
   Raw counts: _conversion/baseline/tokens-raw.txt
   ========================================================================== */

:root {
	/* --- Colour: registered in the kit (Elementor name in the comment) --- */
	--rtd-white: #ffffff;        /* Primary */
	--rtd-grey-200: #cccccc;     /* Secondary */
	--rtd-grey-400: #b0b0b0;     /* Text */
	--rtd-yellow: #f0d000;       /* Accent — 110 uses + alpha variants */
	--rtd-bg: #0c0c0c;           /* Main bg — page background */
	--rtd-card: #1a1a1a;         /* Card Bg */
	--rtd-navy-900: #111827;     /* New Global Color */

	/* --- Colour: inline-only in the layouts, promoted --- */
	--rtd-orange: #f07600;       /* glow gradient midpoint, venture pages (44) */
	--rtd-red: #b60000;          /* glow gradient end, venture pages (44) */
	--rtd-card-alt: #1b1b1b;     /* venture page cards (15) */
	--rtd-yellow-bright: #ffea00;/* archive + inner-page text accent (12) */
	--rtd-grey-100: #e0e0e0;     /* FAQ / testimonials text (10) */
	--rtd-grey-150: #e4e4e4;     /* venture + single post text (6) */
	--rtd-slate-800: #1f2937;    /* FAQ panels (6) */
	--rtd-divider: #3b3b3b;      /* testimonials dividers (4) */
	--rtd-rust: #742e19;         /* home + mission gradient end (4) */
	--rtd-black: #000000;

	/* Gradients used as-is in more than one place */
	--rtd-glow: linear-gradient(132deg, var(--rtd-yellow), var(--rtd-orange) 43%, var(--rtd-red));
	--rtd-fade-rust: linear-gradient(180deg, var(--rtd-bg) 0%, var(--rtd-rust) 100%);
	--rtd-spot-yellow: radial-gradient(at bottom center, var(--rtd-yellow) 18%, var(--rtd-bg) 100%);

	/* --- Type: families. Self-hosted in 00-fonts.css --- */
	--rtd-font-display: "Bebas Neue", sans-serif;  /* kit Primary + Secondary, uppercase */
	--rtd-font-body: "Roboto", sans-serif;         /* kit Text 400, Accent 500 uppercase */
	--rtd-font-condensed: "Oswald", sans-serif;    /* 700 only */
	--rtd-font-alt: "Poppins", sans-serif;         /* 400 / 600 — contact + testimonials */
	--rtd-font-inter: "Inter", sans-serif;         /* 400 italic — home quote */

	/* Hello Elementor reset base: 1rem / 1.5, headings 1.2 */
	--rtd-lh-body: 1.5;
	--rtd-lh-heading: 1.2;

	/* --- Layout ---
	   Desktop (>=1025): fixed 275px sidebar; body is offset by it (kit custom CSS).
	   Container max-width: calc(100vw - 395px) desktop, 1024 tablet, 767 mobile.
	   Note 100vw includes the scrollbar, exactly as Elementor computes it. */
	--rtd-sidebar: 275px;
	--rtd-container: calc(100vw - 395px);

	/* Elementor flex-container defaults (frontend.min.css), with the kit's 0 widget spacing */
	--rtd-con-pad: 10px;
	--rtd-con-gap: 0px;

	/* --- Motion — values taken from the custom CSS and Elementor's animation library --- */
	--rtd-ease-out-expo: cubic-bezier(.25, 1, .5, 1);   /* heading bar, ribbon headings — 0.8s */
	--rtd-ease-menu: cubic-bezier(.12, .75, .4, 1);     /* sidebar menu highlight — 0.35s */
	--rtd-t-menu: .35s;
	--rtd-t-reveal: .8s;
	--rtd-t-hover: .3s;                                  /* Elementor widget/background default */
	--rtd-t-overlay: .3s;                                /* --overlay-transition default */
	--rtd-anim-normal: 1.25s;                            /* Elementor entrance: normal */
	--rtd-anim-slow: 2s;
	--rtd-anim-fast: .75s;

	/* --- Z-index ladder --- */
	--rtd-z-base: 1;
	--rtd-z-raised: 10;
	--rtd-z-sidebar: 999;   /* header container z_index 999 */
	--rtd-z-drawer: 1000;
}

@media (max-width: 1024px) {
	:root { --rtd-container: 1024px; }
}

@media (max-width: 767px) {
	:root { --rtd-container: 767px; }
}

/* ---- 02-base.css ---- */
/* ==========================================================================
   02 — Base. Reset, body, type defaults, the page frame and the container primitive.
   Reproduces what the reference got from Hello Elementor's reset.css and
   Elementor's frontend.min.css — the defaults no page's JSON mentions.
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }

html { line-height: 1.15; -webkit-text-size-adjust: 100%; }

/* Elementor frontend.min.css — reduced-motion guarded, as there. */
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

/* Hello reset body; background from the kit ("Main bg"). Text colour #333 is Hello's and is
   what any unstyled text inherits — almost every widget sets its own. */
body {
	margin: 0;
	background-color: var(--rtd-bg);
	color: #333;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
	font-size: 1rem;
	font-weight: 400;
	line-height: var(--rtd-lh-body);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: clip;
}

/* Kit custom CSS: the fixed sidebar takes the first 275px on desktop. */
@media (min-width: 1025px) {
	body { margin-left: var(--rtd-sidebar); width: calc(100% - var(--rtd-sidebar)); }
}

h1, h2, h3, h4, h5, h6 {
	margin-block: .5rem 1rem;
	color: inherit;
	font-family: inherit;
	font-weight: 500;
	line-height: var(--rtd-lh-heading);
}
h1 { font-size: 2.5rem; }
h2 { font-size: 2rem; }
h3 { font-size: 1.75rem; }
h4 { font-size: 1.5rem; }
h5 { font-size: 1.25rem; }
h6 { font-size: 1rem; }

p { margin-block: 0 .9rem; }

a { background-color: transparent; color: #c36; text-decoration: none; }
a:hover, a:active { color: #336; }

b, strong { font-weight: bolder; }

/* Hello reset: no vertical-align (images sit on the baseline). Elementor image widgets middle theirs —
   set per component, not here. */
img { max-width: 100%; height: auto; border-style: none; }

ul, ol { margin-block: 0 .9rem; }

button, input, optgroup, select, textarea { margin: 0; font-family: inherit; font-size: 1rem; line-height: 1.5; }

label { display: inline-block; line-height: 1; vertical-align: middle; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
	word-wrap: normal !important;
}
.screen-reader-text:focus {
	position: fixed !important;
	top: 5px; left: 5px; z-index: 100000;
	width: auto; height: auto;
	padding: 15px 23px 14px;
	clip: auto;
	background: var(--rtd-white);
	color: var(--rtd-black);
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
}

/* --------------------------------------------------------------------------
   Container primitive — the Elementor flex container (.e-con) model.
   Every Elementor container becomes .rtd-con, with the same defaults:
   column flex, 10px padding, kit gap 0, width 100%.
   Boxed containers centre an inner box capped at the container width:
     content width = min(100%, var(--rtd-container))
   Section CSS overrides --pad-* / --gap / --dir etc., never width math.
   -------------------------------------------------------------------------- */
.rtd-con {
	--dir: column;
	--pad-t: var(--rtd-con-pad);
	--pad-r: var(--rtd-con-pad);
	--pad-b: var(--rtd-con-pad);
	--pad-l: var(--rtd-con-pad);
	--gap: var(--rtd-con-gap);
	--justify: normal;
	--align: normal;
	--wrap: nowrap;
	position: relative;
	display: flex;
	flex-direction: var(--dir);
	flex-wrap: var(--wrap);
	justify-content: var(--justify);
	align-items: var(--align);
	gap: var(--gap);
	width: 100%;
	min-width: 0;
	padding: var(--pad-t) var(--pad-r) var(--pad-b) var(--pad-l);
}

/* Boxed: outer carries vertical padding, inner carries the width cap and the flex layout. */
.rtd-con--boxed {
	display: block;
	padding-inline: var(--pad-l) var(--pad-r);
}
.rtd-con--boxed > .rtd-con__inner {
	display: flex;
	flex-direction: var(--dir);
	flex-wrap: var(--wrap);
	justify-content: var(--justify);
	align-items: var(--align);
	gap: var(--gap);
	width: 100%;
	max-width: min(100%, var(--rtd-container));
	height: 100%;
	margin: 0 auto;
}

/* Elementor: child flex items shrink by default, widgets take full width in a column. */
.rtd-con > * { flex: 0 1 auto; }

/* Elementor mobile: row containers wrap at <=767 unless told otherwise. */
@media (max-width: 767px) {
	.rtd-con { --wrap: var(--wrap-m, wrap); }
}

/* --------------------------------------------------------------------------
   Visibility helpers — Elementor's hide_desktop / hide_tablet / hide_mobile.
   Desktop >= 1025, tablet 768–1024, mobile <= 767.
   -------------------------------------------------------------------------- */
@media (min-width: 1025px) { .rtd-hide-d { display: none !important; } }
@media (min-width: 768px) and (max-width: 1024px) { .rtd-hide-t { display: none !important; } }
@media (max-width: 767px) { .rtd-hide-m { display: none !important; } }

/* Reduced motion: every transition and animation lands on its end state at once (heading-bar sweeps,
   card hovers, ribbons, the banner zoom). Scroll-linked effects (zoom.js, motionfx.js) follow the
   scroll without smoothing; carousels and background videos do not autoplay (their JS). */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		transition-delay: 0s !important;
	}
}

/* Keyboard focus (Phase 7 QA): the reference relied on the browser default, faint on this dark design.
   Yellow ring with a page-colour halo so it reads on black and on the yellow bars. Keyboard only. */
:focus-visible { outline: 2px solid var(--rtd-yellow); outline-offset: 2px; box-shadow: 0 0 0 4px var(--rtd-bg); }

/* ---- 03-components.css ---- */
/* ==========================================================================
   03 — Components. Global chrome first (header, menus, contact bar, footer),
   then the reusable pieces. Values: _conversion/baseline/geo/*, compiled post-19 / post-114.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Desktop sidebar (>= 1025). Elementor container 3fcd8e0: fixed, 275 wide,
   min-height 100vh, padding 60 0 60 20, three boxed zones of 20 / 60 / 20 vh.
   Each zone = outer 0 10px + inner 10px 0 → 10px all round, 235px content.
   -------------------------------------------------------------------------- */
.rtd-sidebar {
	position: fixed;
	top: 0;
	left: 0;
	z-index: var(--rtd-z-sidebar);
	display: flex;
	flex-direction: column;
	width: var(--rtd-sidebar);
	min-height: 100vh;
	padding: 60px 0 60px 20px;
	background-color: var(--rtd-bg);
}
.rtd-sidebar__brand,
.rtd-sidebar__nav,
.rtd-sidebar__social {
	display: flex;
	flex-direction: column;
	padding: 10px;
}
.rtd-sidebar__brand { min-height: 20vh; }
.rtd-sidebar__nav { min-height: 60vh; }
.rtd-sidebar__social { min-height: 20vh; }

.rtd-sidebar__logo { display: block; line-height: 0; }
.rtd-sidebar__logo img { width: 90%; vertical-align: middle; }

/* --------------------------------------------------------------------------
   Menus — shared reset. One WordPress menu rendered as .rtd-nav--side and .rtd-nav--drop.
   -------------------------------------------------------------------------- */
.rtd-nav,
.rtd-nav ul { margin: 0; padding: 0; font-size: 13px; line-height: normal; list-style: none; }
.rtd-nav li { position: relative; }
.rtd-nav .sub-menu { display: none; overflow: hidden; }
.rtd-nav .is-open > .sub-menu { display: block; }

.rtd-nav a {
	position: relative;
	font-family: var(--rtd-font-display);
	font-weight: 400;
	line-height: 20px;
	text-transform: uppercase;
	text-decoration: none;
}

/* Sidebar menu (Elementor nav-menu c1b9e2b, "dropdown" layout, always shown).
   Widget padding-top 60 + container margin-top 10 → first item 70px below the zone edge. */
.rtd-nav--side { margin-top: 70px; }

.rtd-nav--side > li > a {
	z-index: 1;
	display: inline-block;
	/* The reference's custom CSS reads `padding: 4px 10px` with no semicolon, which voids it and the
	   transition after it — so the widget's 10px 15px is what renders. Reproduced, not "fixed". */
	padding: 10px 15px;
	vertical-align: top;
	color: var(--rtd-white);
	font-size: 23px;
}
/* Yellow bar: grows from the left over .35s, but vanishes instantly — Elementor keeps the
   pseudo at opacity 0 unless hovered/focused/active, with no transition on opacity. */
.rtd-nav--side > li > a::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-color: var(--rtd-yellow);
	opacity: 0;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--rtd-t-menu) var(--rtd-ease-menu);
}
.rtd-nav--side > li > a:hover,
.rtd-nav--side > li > a:focus-visible,
.rtd-nav--side > li > a.is-highlighted { color: var(--rtd-bg); }
.rtd-nav--side > li > a:hover::before,
.rtd-nav--side > li > a:focus-visible::before,
.rtd-nav--side > li > a.is-highlighted::before { opacity: 1; transform: scaleX(1); }

.rtd-nav--side .sub-menu a {
	display: flex;
	align-items: center;
	padding: 10px 15px;
	border-left: 8px solid transparent;
	color: #f1f1f1;
	font-size: 20px;
	transition: color .3s ease;
}
.rtd-nav--side .sub-menu a:hover,
.rtd-nav--side .sub-menu a:focus-visible { color: var(--rtd-yellow); }

/* --------------------------------------------------------------------------
   Tablet / mobile bar (Elementor container 44fdf75, hidden on desktop). Scrolls with the page.
   -------------------------------------------------------------------------- */
.rtd-mbar {
	--tog: 45px;
	position: relative;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	padding: 20px;
}
.rtd-mbar__logo { flex: none; width: 50%; max-width: 50%; line-height: 0; }
.rtd-mbar__logo img { width: 55%; vertical-align: middle; }
.rtd-mbar__menu { display: flex; flex: none; flex-direction: column; align-self: center; width: 50%; max-width: 50%; }

.rtd-mbar__toggle {
	display: flex;
	justify-content: center;
	align-items: center;
	margin-left: auto;
	padding: .25em;
	border: 0;
	border-radius: 3px;
	background-color: rgba(0, 0, 0, .05);
	color: var(--rtd-white);
	font-size: 30px;
	line-height: 1.5;
	cursor: pointer;
}
.rtd-mbar__toggle .rtd-icon { display: block; width: 1em; height: 1em; fill: currentColor; }
.rtd-mbar__toggle .rtd-mbar__close,
.is-open > .rtd-mbar__toggle .rtd-mbar__open { display: none; }
.is-open > .rtd-mbar__toggle .rtd-mbar__close { display: block; }

/* Dropped panel: full viewport width, 10px below the toggle, folds open from the top (.3s).
   Transparent background, as the reference — the menu draws straight over the page. */
.rtd-mbar__panel {
	position: absolute;
	top: calc(50% + var(--tog) / 2 + 10px);
	left: 0;
	z-index: 9997;
	width: 100%;
	max-height: 0;
	overflow: hidden;
	background-color: transparent;
	transform: scaleY(0);
	transform-origin: top;
	transition: max-height .3s, transform .3s, visibility 0s linear .3s;
	visibility: hidden; /* closed: its links leave the tab order (the reference left them focusable) */
}
.is-open > .rtd-mbar__panel { max-height: var(--menu-height, 100vh); transform: scaleY(1); visibility: visible; transition-delay: 0s; }

.rtd-nav--drop a {
	display: flex;
	align-items: center;
	padding: 10px 15px;
	color: var(--rtd-white);
	font-size: 23px;
}
.rtd-nav--drop .sub-menu a { border-left: 8px solid transparent; }
.rtd-nav--drop a:hover,
.rtd-nav--drop a:focus-visible,
.rtd-nav--drop a.is-highlighted,
.rtd-nav--drop .current-menu-item > a { color: var(--rtd-yellow); }

.rtd-nav__caret {
	display: flex;
	align-items: center;
	margin-block: -10px;
	padding: 10px 0 10px 10px;
	line-height: 1;
}
.rtd-nav__caret .rtd-icon { width: 1em; height: 1em; fill: currentColor; }

@media (max-width: 767px) {
	.rtd-mbar { --tog: 36px; padding: 10px 20px; }
	.rtd-mbar__logo { width: 70%; max-width: 70%; }
	.rtd-mbar__logo img { width: 80%; }
	.rtd-mbar__menu { width: 28%; max-width: 28%; }
	.rtd-mbar__toggle { font-size: 24px; }
}

/* --------------------------------------------------------------------------
   Social icons. Elementor social-icons widget: inline-block items spaced by word-spacing on a
   zero font-size wrapper = a plain gap. icon box = size + 2 × .5em.
   -------------------------------------------------------------------------- */
.rtd-social {
	display: flex;
	flex-wrap: wrap;
	margin: 0;
	padding: 0;
	list-style: none;
}
.rtd-social__link {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	width: calc(var(--size) * 2);
	height: calc(var(--size) * 2);
	font-size: var(--size);
	line-height: var(--size);
	text-decoration: none;
	transition: all .3s;
}
.rtd-social__link .rtd-icon { display: block; width: 1em; height: 1em; fill: var(--icon, var(--rtd-white)); transition: fill .3s; }

/* Sidebar: 20px icons, 5px gap, rounded, no background; yellow + bounce-out on hover. */
.rtd-social--side { --size: 20px; gap: 0 5px; justify-content: flex-start; }
.rtd-social--side .rtd-social__link {
	border-radius: 10%;
	background-color: transparent;
	transition-duration: .5s;
}
.rtd-social--side .rtd-social__link:hover,
.rtd-social--side .rtd-social__link:focus-visible {
	--icon: var(--rtd-yellow);
	transform: scale(.8);
	transition-timing-function: cubic-bezier(.47, 2.02, .31, -.36);
}

/* Footer: 25px icons in brand-colour circles, 10px gap, centred; Elementor's .9 opacity hover. */
.rtd-social--foot { --size: 25px; gap: 0 10px; justify-content: center; }
.rtd-social--foot .rtd-social__link { border-radius: 50%; background-color: var(--brand, #69727d); }
.rtd-social--foot .rtd-social__link:hover { opacity: .9; }
.rtd-social__link--facebook { --brand: #3b5998; }
.rtd-social__link--x { --brand: #000; }
.rtd-social__link--linkedin { --brand: #0077b5; }
.rtd-social__link--youtube { --brand: #cd201f; }
.rtd-social__link--instagram { --brand: #262626; }
.rtd-social__link--spotify { --brand: #2ebd59; }

/* --------------------------------------------------------------------------
   Contact bar — the yellow email/phone strip at the top of every hero.
   34px: 5px + 24px line + 5px. Items 50px apart, 14px icons, Roboto 16 #1A1A1A.
   -------------------------------------------------------------------------- */
.rtd-cbar {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	background-color: var(--rtd-yellow);
}
.rtd-cbar__list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	margin: 0 -25px;
	padding: 5px 0;
	list-style: none;
	text-align: center;
}
.rtd-cbar__item {
	display: flex;
	justify-content: center;
	align-items: center;
	margin: 0 25px;
	font-family: var(--rtd-font-body);
	font-size: 16px;
	line-height: 24px;
}
.rtd-cbar__item .rtd-icon { width: 14px; height: 14px; margin-right: 3.5px; fill: var(--rtd-bg); }
.rtd-cbar__item a { padding-left: 5px; color: var(--rtd-card); text-decoration: none; }
.rtd-cbar__item a:hover { color: var(--rtd-card); }

/* --------------------------------------------------------------------------
   Footer (Elementor 114). min-height 596; boxed inner capped at the container width;
   60px top/bottom; three blocks spread with space-between. Background photo, fixed on
   desktop, under a #0C0C0C overlay at .36.
   -------------------------------------------------------------------------- */
.rtd-footer {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 596px;
	background: center / cover no-repeat; /* image: data-rtd-bg in site-footer.php (lazybg.js) */
}
.rtd-footer::before {
	content: "";
	position: absolute;
	inset: 0;
	background-color: var(--rtd-bg);
	opacity: .36;
}
@media (min-width: 1025px) { .rtd-footer { background-attachment: fixed; } }

.rtd-footer__inner {
	position: relative;
	display: flex;
	flex: 1 0 auto;
	flex-direction: column;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	max-width: min(100%, var(--rtd-container));
	margin: 0 auto;
	padding: 60px 0;
}
.rtd-footer__brand,
.rtd-footer__legal {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 100%;
	padding: 10px;
}
.rtd-footer__legal { justify-content: space-between; }

/* Image widget: the link shrink-wraps the 800px "large" file, capped by the column; image at 30%. */
.rtd-footer__logo { width: 800px; max-width: 100%; text-align: center; }
.rtd-footer__logo a { display: inline-block; width: 100%; line-height: 0; }
.rtd-footer__logo img { width: 30%; vertical-align: middle; }

.rtd-footer__title-wrap { padding-top: 10px; text-align: center; }
.rtd-footer__title {
	margin: 0;
	color: var(--rtd-white);
	font-family: var(--rtd-font-display);
	font-size: 26px;
	font-weight: 400;
	line-height: 1;
	text-align: center;
	text-transform: uppercase;
}

.rtd-footer__legal .rtd-social { padding-bottom: 30px; }
.rtd-footer__copy {
	margin: 0;
	color: var(--rtd-grey-400);
	font-family: var(--rtd-font-body);
	font-size: 16px;
	font-weight: 300;
	line-height: 1;
	text-transform: capitalize;
}
.rtd-footer__terms {
	margin: 0;
	color: var(--rtd-grey-200);
	font-family: var(--rtd-font-body);
	font-size: 14px;
	font-weight: 300;
	line-height: 1;
	text-decoration: underline;
	text-transform: capitalize;
}
a.rtd-footer__terms:hover { color: var(--rtd-yellow); }

/* --------------------------------------------------------------------------
   Subscribe form (footer). Elementor form d5e6e26: widget 36% wide, 10px column gap
   (−5px wrapper margin), label above (Oswald 18/700, 8px gap), field 40px, button end-aligned.
   -------------------------------------------------------------------------- */
.rtd-footer__form { width: 36%; max-width: 36%; }
.rtd-subscribe {
	display: flex;
	flex-wrap: wrap;
	margin: 0 -5px -10px;
}
.rtd-subscribe__field,
.rtd-subscribe__submit {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	width: 100%;
	margin-bottom: 10px;
	padding: 0 5px;
}
.rtd-subscribe__submit { justify-content: flex-end; align-items: flex-end; }
.rtd-subscribe__label {
	padding-bottom: 8px;
	color: var(--rtd-white);
	font-family: var(--rtd-font-condensed);
	font-size: 18px;
	font-weight: 700;
	line-height: 1;
}
.rtd-subscribe__input {
	width: 100%;
	min-height: 40px;
	padding: 8px 16px;
	border: 0;
	border-radius: 3px;
	background-color: rgba(255, 255, 255, .24);
	color: var(--rtd-bg);
	font-family: var(--rtd-font-body);
	font-size: 15px;
	line-height: 1.4;
	vertical-align: middle;
}
.rtd-subscribe__input:focus { outline: 0; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .1); }

.rtd-hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* Elementor button, size sm: 15px/1, 10px 20px, radius 4 (form sets it), Roboto 500 (kit accent). */
.rtd-btn {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	gap: 5px;
	border: 0;
	font-family: var(--rtd-font-body);
	font-weight: 500;
	line-height: 1;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: all .3s;
}
.rtd-btn--form {
	min-height: 40px;
	padding: 10px 20px;
	border-radius: 4px;
	background-color: var(--rtd-yellow);
	color: var(--rtd-bg);
	font-size: 15px;
	text-transform: uppercase; /* kit Accent typography: Roboto 500 uppercase */
}
.rtd-btn--form:hover,
.rtd-btn--form:focus-visible { color: var(--rtd-white); }

/* Phase 6 — D4 / D5: consent line under the footer form, consent checkbox in the enquiry form,
   Privacy Policy beside Terms. */
.rtd-footer__links { margin: 0; color: var(--rtd-grey-200); font-size: 14px; line-height: 1; }
.rtd-subscribe__consent { flex-basis: 100%; margin: 10px 0 0; padding: 0 5px; color: var(--rtd-grey-400); font-family: var(--rtd-font-body); font-size: 13px; line-height: 1.5; }
.rtd-subscribe__consent a { color: inherit; text-decoration: underline; }
.rtd-eform__group.rtd-eform__consent { display: flex; flex-wrap: nowrap; flex-basis: 100%; align-items: flex-start; gap: 10px; color: var(--rtd-grey-400); font-family: var(--rtd-font-body); font-size: 14px; line-height: 1.5; }
.rtd-eform__consent input { flex: none; width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--rtd-yellow); }
.rtd-eform__consent a { color: var(--rtd-yellow); text-decoration: underline; }
.rtd-eform__consent label { line-height: 1.5; }

/* Phase 7 QA — tap targets on tablets and phones: an invisible 44×44 hit area around controls the
   reference drew smaller (menu toggle 36px, contact-bar links 24px, carousel arrows 25px, small
   links). Nothing visible changes; desktop is left alone. */
@media (max-width: 1024px) {
	.rtd-mbar__toggle,
	.rtd-cbar__item a,
	.rtd-hinfo__title a,
	.rtd-footer__terms,
	a.rtd-ilist__text,
	.rtd-subscribe__consent a { position: relative; }
	.rtd-mbar__toggle::after,
	.rtd-cbar__item a::after,
	.rtd-carousel__arrow::after,
	.rtd-hinfo__title a::after,
	.rtd-footer__terms::after,
	a.rtd-ilist__text::after,
	.rtd-subscribe__consent a::after {
		content: "";
		position: absolute;
		top: 50%;
		left: 50%;
		width: max(100%, 44px);
		height: max(100%, 44px);
		transform: translate(-50%, -50%);
	}
	/* arrows sit on the screen edge: grow their hit area inwards, not past the edge */
	.rtd-carousel__arrow--prev::after { left: 0; transform: translateY(-50%); }
	.rtd-carousel__arrow--next::after { left: auto; right: 0; transform: translateY(-50%); }
}
.rtd-subscribe__msg { flex-basis: 100%; margin: 10px 0 0; padding: 0 5px; color: var(--rtd-yellow); font-family: var(--rtd-font-body); font-size: 14px; }
.rtd-subscribe__msg--error { color: #d9534f; }
.rtd-cbar { overflow-x: clip; } /* its list's -25px inline margins poked 15px past phones (reference too); x only, so the 44px tap areas keep their height */

/* ---- 03-content.css ---- */
/* ==========================================================================
   03 — Content components (after the chrome in 03-components.css).
   Each block names the Elementor widget it replaces and where its numbers came from.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Widget primitives — Elementor defaults with this kit's values.
   .rtd-h    heading widget title: line-height 1, no margin; kit Primary (Bebas, uppercase, white)
   .rtd-text text-editor widget: kit Text (Roboto 400, #B0B0B0). Paragraphs keep Hello's .9rem
             bottom margin, including the last one — the reference's sections are 14.4px taller for it.
   -------------------------------------------------------------------------- */
.rtd-h {
	margin: 0;
	padding: 0;
	color: var(--rtd-white);
	font-family: var(--rtd-font-display);
	font-weight: 400;
	line-height: 1;
	text-transform: uppercase;
}
.rtd-text {
	color: var(--rtd-grey-400);
	font-family: var(--rtd-font-body);
	font-weight: 400;
}
.rtd-text p { margin-block: 0 .9rem; }

/* Heading bar (site-wide snippet 669, class headingBar): a yellow block sweeps in from the left
   behind the heading once 10% of it is on screen. hbar.js adds .is-in. */
.rtd-hbar { position: relative; overflow: hidden; }
.rtd-hbar > * { position: relative; z-index: 10; }
.rtd-hbar::before {
	content: "";
	position: absolute;
	top: 0;
	left: -100%;
	z-index: 1;
	width: 100%;
	height: 100%;
	background-color: var(--rtd-yellow);
	transition: left var(--rtd-t-reveal) var(--rtd-ease-out-expo);
}
.rtd-hbar.is-in::before { left: 0; }

/* Entrance animations (Elementor Motion Effects → Entrance). Hidden only when JS runs (.js on <html>),
   revealed on first intersection after the element's delay (reveal.js). Keyframes are Elementor's. */
.js [data-rtd-anim]:not(.is-animated) { visibility: hidden; }
.is-animated { animation-duration: var(--rtd-anim-normal); animation-fill-mode: both; }
.is-animated[data-rtd-speed="slow"] { animation-duration: var(--rtd-anim-slow); }
.is-animated[data-rtd-speed="fast"] { animation-duration: var(--rtd-anim-fast); }
.is-animated[data-rtd-anim="fadeIn"] { animation-name: fadeIn; }
.is-animated[data-rtd-anim="fadeInDown"] { animation-name: fadeInDown; }
.is-animated[data-rtd-anim="fadeInUp"] { animation-name: fadeInUp; }
.is-animated[data-rtd-anim="fadeInLeft"] { animation-name: fadeInLeft; }
.is-animated[data-rtd-anim="fadeInRight"] { animation-name: fadeInRight; }
.is-animated[data-rtd-anim="rotateInDownLeft"] { animation-name: rotateInDownLeft; }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes fadeInDown { from { opacity: 0; transform: translate3d(0, -100%, 0); } to { opacity: 1; transform: none; } }
@keyframes fadeInUp { from { opacity: 0; transform: translate3d(0, 100%, 0); } to { opacity: 1; transform: none; } }
@keyframes fadeInLeft { from { opacity: 0; transform: translate3d(-100%, 0, 0); } to { opacity: 1; transform: none; } }
@keyframes fadeInRight { from { opacity: 0; transform: translate3d(100%, 0, 0); } to { opacity: 1; transform: none; } }
@keyframes rotateInDownLeft { from { transform-origin: left bottom; transform: rotate3d(0, 0, 1, -45deg); opacity: 0; } to { transform-origin: left bottom; transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
	.is-animated { animation: none !important; }
	.js [data-rtd-anim] { visibility: visible; }
}

/* --------------------------------------------------------------------------
   Buttons. Elementor .elementor-button: inline-block, line-height 1, radius 3, transition all .3s.
   No variant changes colour on hover: each widget's own colour outranks Elementor's :hover default.
   -------------------------------------------------------------------------- */
.rtd-button {
	display: inline-block;
	border: 0 solid;
	border-radius: 3px;
	line-height: 1;
	text-align: center;
	text-decoration: none;
	transition: all .3s;
}
/* Elementor .elementor-button-content-wrapper: the label is a flex row, so its box is exactly line-height 1. */
.rtd-button > span { display: flex; justify-content: center; }
/* CTA pair: "Retain Ryan" dark solid; "Consulting Inquiry" 2px outline. Bebas 22/500, 1.3px tracking. */
.rtd-button--solid,
.rtd-button--outline {
	font-family: var(--rtd-font-display);
	font-size: 22px;
	font-weight: 500;
	letter-spacing: 1.3px;
	text-transform: uppercase;
}
.rtd-button--solid,
.rtd-button--solid:hover,
.rtd-button--solid:focus-visible { padding: 18px 32px; background-color: var(--rtd-card); color: var(--rtd-white); }
.rtd-button--outline,
.rtd-button--outline:hover,
.rtd-button--outline:focus-visible {
	padding: 16px 30px;
	border: 2px solid var(--rtd-card);
	border-radius: 0;
	background-color: transparent;
	color: var(--rtd-card);
}

/* --------------------------------------------------------------------------
   Hero, "quote" variant (About, Mission, Testimonials, Contact, FAQ).
   Full-width container, background photo (fixed on desktop), black gradient overlay at .78;
   contact bar at the top, content pinned bottom-left by space-between.
   -------------------------------------------------------------------------- */
.rtd-hero {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: flex-start;
	min-height: var(--hero-min, 70vh);
	background-position: var(--hero-pos, center left);
	background-repeat: no-repeat;
	background-size: cover;
}
.rtd-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	/* #00000042 → #000000 */
	background-image: linear-gradient(180deg, rgba(0, 0, 0, .259) 0%, var(--rtd-black) 100%);
	opacity: .78;
}
.rtd-hero > * { position: relative; }
@media (min-width: 1025px) { .rtd-hero { background-attachment: fixed; } }
@media (max-width: 767px) { .rtd-hero { background-position: center right; } }

.rtd-hero__body { display: flex; flex-direction: column; width: 100%; padding: 0 0 60px 60px; }
.rtd-hero__mark { color: var(--rtd-yellow-bright); font-size: 110px; line-height: var(--mark-lh, 12px); }
.rtd-hero__title { font-size: 64px; }
.rtd-hero__text { width: 60%; max-width: 60%; }
@media (max-width: 767px) {
	.rtd-hero__body { padding: 0 0 30px 20px; }
	.rtd-hero__title { font-size: 48px; }
	.rtd-hero__text { width: 90%; max-width: 90%; }
}

/* --------------------------------------------------------------------------
   Accordion (Elementor nested-accordion as configured on FAQ): native <details>, one open at a time,
   first open on load, 400ms height animation (accordion.js). Titles Bebas 22 capitalize, 1.5 line,
   on #1A1A1A → #1F2937 hover/open, radius 8, white → yellow; +/− icon 15px at the end.
   -------------------------------------------------------------------------- */
.rtd-acc { display: flex; flex-direction: column; width: 100%; padding-top: 50px; }
.rtd-acc__item { position: relative; display: flex; flex-direction: column; }
.rtd-acc__item:not(:last-child) { margin-bottom: var(--acc-gap, 10px); }
.rtd-acc__title {
	display: flex;
	flex-grow: 1;
	justify-content: space-between;
	align-items: center;
	gap: 0 10px;
	padding: 25px 20px;
	border-radius: 8px;
	background-color: var(--rtd-card);
	color: var(--rtd-white);
	cursor: pointer;
	list-style: none;
}
.rtd-acc__title::-webkit-details-marker { display: none; }
.rtd-acc__item:not([open]):hover > .rtd-acc__title,
.rtd-acc__item[open] > .rtd-acc__title { color: var(--rtd-yellow); }
.rtd-acc__title:hover,
.rtd-acc__item[open] > .rtd-acc__title { background-color: var(--rtd-slate-800); }
.rtd-acc__text {
	display: flex;
	align-items: center;
	font-family: var(--rtd-font-display);
	font-size: 22px;
	font-weight: 400;
	text-transform: capitalize;
}
.rtd-acc__icon { position: relative; display: flex; align-items: center; width: fit-content; }
.rtd-acc__icon span { display: flex; height: 15px; }
.rtd-acc__icon .rtd-icon { width: 13.125px; height: 15px; fill: currentColor; } /* viewBox 448×512 at 15px */
.rtd-acc__icon .is-open-icon,
.rtd-acc__item[open] .rtd-acc__icon .is-closed-icon { display: none; }
.rtd-acc__item[open] .rtd-acc__icon .is-open-icon { display: flex; }
.rtd-acc__panel {
	display: flex;
	flex-direction: column;
	margin: 10px 0 20px;
	padding: 30px 20px;
	border-left: 4px solid var(--rtd-yellow);
	border-radius: 8px;
}
.rtd-acc__panel .rtd-text { color: var(--rtd-grey-100); }
.rtd-acc__item:not([open]) > .rtd-acc__panel { display: none; }

/* --------------------------------------------------------------------------
   CTA panel "Ready to elevate your standard?" — inner pages (About, Expert Witness, FAQ,
   Testimonials, Mission). Yellow band, boxed, centred column, 20px gap, 90px (60 tablet) padding.
   -------------------------------------------------------------------------- */
.rtd-cta { background-color: var(--rtd-yellow); }
.rtd-cta__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
	max-width: min(100%, var(--rtd-container));
	margin: 0 auto;
	padding: 90px 0;
}
.rtd-cta__title-wrap { padding: 5px 10px; text-align: center; }
.rtd-cta__title { color: var(--rtd-card); font-family: var(--rtd-font-condensed); font-size: 34px; font-weight: 700; }
.rtd-cta__text { color: var(--rtd-card); font-size: 18px; line-height: 24px; }
.rtd-cta__buttons { display: flex; justify-content: center; align-items: center; gap: 20px; width: 100%; padding-top: 20px; }
/* Venture variants. "spot": radial yellow glow from the bottom, title #0C0C0C (Hospitality, Marketing).
   "photo": photo under #1A1A1A at .5, white title / text / outline button, no heading bar (Music, Books). */
.rtd-cta--spot { background: var(--rtd-spot-yellow); }
.rtd-cta--spot .rtd-cta__title { color: var(--rtd-bg); }
.rtd-cta--photo { position: relative; background-color: var(--rtd-yellow); background-position: center center; background-repeat: no-repeat; background-size: cover; }
.rtd-cta--photo::before { content: ""; position: absolute; inset: 0; background-color: var(--rtd-card); opacity: .5; }
.rtd-cta--photo .rtd-cta__inner { position: relative; }
.rtd-cta--photo .rtd-cta__title,
.rtd-cta--photo .rtd-cta__text { color: var(--rtd-white); }
.rtd-cta--photo .rtd-button--outline { border-color: var(--rtd-white); color: var(--rtd-white); }
@media (max-width: 1024px) {
	.rtd-cta { padding: 0 20px; }
	.rtd-cta__inner { padding: 60px 0; }
	.rtd-cta__text { text-align: center; }
}
@media (max-width: 767px) {
	.rtd-cta__buttons { flex-wrap: wrap; }
}

/* --------------------------------------------------------------------------
   Enquiry form (Elementor form, global 955 on Contact; same fields on Home). Labels above;
   fields "lg" (59px, 7px 20px, radius 5, Roboto 14/1.4 #B0B0B0 on #111827, no border);
   8px column gap, 30px row gap; Bebas 20/600 labels; required mark #666D75; full-width
   Poppins 14/600 button on yellow, #111827 → #0C0C0C on hover.
   -------------------------------------------------------------------------- */
.rtd-eform__fields { display: flex; flex-wrap: wrap; margin: 0 -4px -30px; }
.rtd-eform__group {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	width: 100%;
	margin-bottom: 30px;
	padding: 0 4px;
}
@media (min-width: 768px) { .rtd-eform__group--half { width: 50%; } }
.rtd-eform__group--submit { align-items: flex-end; }
.rtd-eform__label {
	padding-bottom: 8px;
	color: var(--rtd-white);
	font-family: var(--rtd-font-display);
	font-size: 20px;
	font-weight: 600;
	cursor: pointer;
}
.rtd-eform__group.is-required .rtd-eform__label::after { content: "*"; padding-inline-start: .2em; color: #666d75; }
.rtd-eform__input {
	flex-basis: 100%;
	width: 100%;
	max-width: 100%;
	min-height: 59px;
	padding: 7px 20px;
	border: 0;
	border-radius: 5px;
	background-color: var(--rtd-navy-900);
	color: var(--rtd-grey-400);
	font-family: var(--rtd-font-body);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.4;
	vertical-align: middle;
	transition: .3s;
}
.rtd-eform__input::placeholder { color: inherit; font-family: inherit; opacity: .6; }
.rtd-eform__input:focus { outline: 0; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .1); }
.rtd-eform__select { position: relative; display: flex; flex-basis: 100%; width: 100%; color: var(--rtd-grey-400); font-family: var(--rtd-font-body); font-size: 14px; line-height: 1.5; }
.rtd-eform__select select { flex-basis: 100%; padding-inline-end: 20px; line-height: inherit; appearance: none; }
.rtd-eform__caret {
	position: absolute;
	top: 50%;
	inset-inline-end: 10px;
	font-size: 11px;
	pointer-events: none;
	transform: translateY(-50%);
}
.rtd-eform__caret .rtd-icon { display: block; width: 1em; height: 1.5em; fill: currentColor; overflow: visible; }
.rtd-eform__button {
	display: flex;
	flex-basis: 100%;
	justify-content: center;
	align-items: center;
	width: 100%;
	min-height: 59px;
	padding: 0 40px;
	border: none;
	border-radius: 5px;
	background-color: var(--rtd-yellow);
	color: var(--rtd-navy-900);
	font-family: var(--rtd-font-alt);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .5px;
	line-height: 1;
	text-transform: uppercase;
	cursor: pointer;
	transition: all .3s;
}
.rtd-eform__button:hover, .rtd-eform__button:focus-visible { color: var(--rtd-bg); }
.rtd-eform__msg { margin: 40px 0 0; color: var(--rtd-yellow); font-family: var(--rtd-font-body); }
.rtd-eform__msg--error { color: #d9534f; } /* Elementor form error colour */

/* --------------------------------------------------------------------------
   Icon box (Elementor icon-box, icon left, vertically centred, 15px gap). Contact "Direct Comms":
   24px yellow icon; title <h3> Bebas 18/1.2 uppercase #B0B0B0 (keeps Hello's .5rem top margin);
   text Roboto 17/500/1.5 white.
   -------------------------------------------------------------------------- */
.rtd-ibox { display: flex; align-items: center; gap: 15px; text-align: start; }
.rtd-ibox__icon { display: inline-flex; flex: none; color: var(--rtd-yellow); font-size: 24px; line-height: 1; }
.rtd-ibox__icon .rtd-icon { display: block; width: 1em; height: 1em; fill: currentColor; }
.rtd-ibox__content { flex-grow: 1; }
.rtd-ibox__title {
	margin-block: .5rem 0;
	color: var(--rtd-grey-400);
	font-family: var(--rtd-font-display);
	font-size: 18px;
	font-weight: 400;
	line-height: 1.2;
	text-transform: uppercase;
}
.rtd-ibox__text { margin: 0; color: var(--rtd-white); font-family: var(--rtd-font-body); font-size: 17px; font-weight: 500; line-height: 1.5; }
.rtd-ibox__text a { color: inherit; text-decoration: none; }
/* Mobile: Elementor icon-box default "top" position — stacked, centred, full-width rows. */
@media (max-width: 767px) {
	.rtd-ibox:not(.rtd-ibox--start) { text-align: center; }
	.rtd-ibox { flex-direction: column; align-items: stretch; }
	.rtd-ibox__icon { display: block; line-height: 0; }
	.rtd-ibox__icon .rtd-icon { display: inline-block; }
}

/* Icon box, "top" position (Elementor default): icon block above, 15px gap, start-aligned text,
   the title keeping Hello's h3 margins (.5rem top, 1rem bottom). Icon inline-block in a line-height-0 box. */
.rtd-ibox--top { flex-direction: column; align-items: stretch; }
.rtd-ibox--top .rtd-ibox__icon { display: block; line-height: 0; }
.rtd-ibox--top .rtd-ibox__icon > span { display: inline-block; color: var(--rtd-white); font-size: 50px; line-height: 1; }
.rtd-ibox--top .rtd-ibox__title { margin-block: .5rem 1rem; }

/* --------------------------------------------------------------------------
   Brand card (custom CSS block "brandCard", used on Home and Mission & Vision): a bordered link
   card, content pushed to the bottom; a gradient panel behind it fades in on hover / focus (.3s).
   The reference's own per-element bottom:0 outranks the snippet's bottom:-50%, so the panel only
   fades — it never slides. Reproduced as rendered.
   -------------------------------------------------------------------------- */
.rtd-bcard {
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-width: 0;
	padding: 20px;
	overflow: hidden;
	border: 1px solid var(--rtd-grey-200);
	color: #c36; /* Hello link colour; every child sets its own */
	text-decoration: none;
	cursor: pointer;
}
.rtd-bcard__icon { line-height: 24px; }
.rtd-bcard__icon > span { display: inline-block; color: var(--rtd-white); font-size: 50px; line-height: 1; }
.rtd-bcard__icon .rtd-icon,
.rtd-ibox--top .rtd-ibox__icon .rtd-icon { display: block; width: 1em; height: 1em; fill: currentColor; }
.rtd-bcard__title-wrap { position: relative; z-index: 2; padding-top: 20px; }
.rtd-bcard__title { font-size: 1.75rem; }
.rtd-bcard__text { position: relative; z-index: 1; padding-top: 10px; }
.rtd-bcard__bg {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: -1;
	min-height: 250px;
	opacity: 0;
	transition: bottom .3s ease-in-out, opacity .3s ease-in-out;
}
.rtd-bcard:hover .rtd-bcard__bg,
.rtd-bcard:focus-within .rtd-bcard__bg,
.rtd-bcard:focus-visible .rtd-bcard__bg { opacity: 1; }

/* --------------------------------------------------------------------------
   Divider (Elementor divider): 15px above and below, centred rule of a set width.
   -------------------------------------------------------------------------- */
.rtd-divider { display: block; width: 100%; padding-block: 15px; text-align: center; }
.rtd-divider > span { display: flex; width: var(--rule-w, 100%); margin: 0 auto; border-top: var(--rule-t, 1px) solid var(--rule-c, var(--rtd-grey-400)); }

/* --------------------------------------------------------------------------
   Carousel (replaces Swiper): viewport clips, track translates; slide width from carousel.js.
   Bullets: Swiper's — 6px dots, 12px apart, black at .2, the active one at 1, 5px from the bottom.
   -------------------------------------------------------------------------- */
[data-rtd-carousel] { position: relative; }
.rtd-carousel__viewport { overflow: hidden; touch-action: pan-y; }
.rtd-carousel__track { display: flex; gap: var(--slide-gap, 0); will-change: transform; }
.rtd-carousel__slide { flex: 0 0 var(--slide-w, 100%); min-width: 0; }
.rtd-carousel__bullets {
	position: absolute;
	right: 0;
	bottom: 5px;
	left: 0;
	height: 24px;
	font-size: 16px;
	line-height: 24px;
	text-align: center;
}
.rtd-carousel__bullet {
	display: inline-block;
	width: 6px;
	height: 6px;
	margin: 0 6px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--rtd-black);
	opacity: .2;
	cursor: pointer;
}
.rtd-carousel__bullet.is-active { opacity: 1; }

/* --------------------------------------------------------------------------
   Video card (Elementor video widget, image overlay, lightbox): square cover image, radius 8 on the
   widget; black card, 10px gap, text block 15px padding / 5px gap; title Bebas 28 (h3), 10px above.
   -------------------------------------------------------------------------- */
.rtd-vcard { display: flex; flex-direction: column; gap: 10px; min-width: 0; border-radius: 8px; background-color: var(--rtd-black); }
.rtd-vcard__media {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	padding: 0;
	overflow: hidden;
	border: 0;
	border-radius: 8px;
	background: none;
	cursor: pointer;
}
.rtd-vcard__img { display: block; width: 100%; height: 100%; object-fit: cover; }
.rtd-vcard__body { display: flex; flex-direction: column; gap: 5px; padding: 15px; }
.rtd-vcard__title-wrap { padding-top: 10px; }
.rtd-vcard__title { font-size: 1.75rem; }

/* Lightbox (lightbox.js): Elementor's — black at .8, square video at min(90vw, 90vh), close top-right. */
.rtd-lightbox {
	width: 100vw;
	max-width: none;
	height: 100vh;
	max-height: none;
	margin: 0;
	padding: 0;
	border: 0;
	background: rgba(0, 0, 0, .8);
}
.rtd-lightbox::backdrop { background: transparent; }
.rtd-lightbox[open] { display: flex; justify-content: center; align-items: center; }
/* The iframe stays inline, as Elementor's: its line box adds 6px under it, and the centred wrapper
   (816px at 1440×900) puts the video at y 42 — the reference's position. */
.rtd-lightbox__frame { width: 100%; text-align: center; }
.rtd-lightbox__frame iframe { width: min(90vw, 90vh); height: min(90vw, 90vh); border: 0; background: #000; }
.rtd-lightbox__close {
	position: absolute;
	top: 13px;
	right: 15px;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 30px;
	height: 30px;
	padding: 0;
	border: 0;
	background: none;
	color: rgba(237, 237, 237, .9);
	font-size: 20px;
	cursor: pointer;
}
.rtd-lightbox__close .rtd-icon { width: 1em; height: 1em; fill: currentColor; }

/* --------------------------------------------------------------------------
   Testimonial (Elementor testimonial carousel slide): #1A1A1A, 5px yellow left rule, radius 10,
   20px padding; quote Roboto 1.3em italic / 1.5 #E0E0E0; footer 25px below — 50px round photo,
   cite Bebas 14 / 1.5 (name #B0B0B0, title white) 20px from it.
   -------------------------------------------------------------------------- */
.rtd-quote {
	margin: 0;
	padding: 20px;
	border-left: 5px solid var(--rtd-yellow);
	border-radius: 10px;
	background-color: var(--rtd-card);
	text-align: left;
}
/* Roboto on the quote only: the photo line box stays in the body font, as the reference (56px, not 57). */
.rtd-quote__text { margin: 0; color: var(--rtd-grey-100); font-family: var(--rtd-font-body); font-size: 1.3em; font-style: italic; line-height: 1.5; }
.rtd-quote__footer { display: flex; align-items: center; margin-top: 25px; }
.rtd-quote__image img { width: 50px; height: 50px; border-radius: 999px; object-fit: cover; }
.rtd-quote__cite {
	display: flex;
	flex-direction: column;
	padding-inline-start: 20px;
	font-family: var(--rtd-font-display);
	font-size: 14px;
	font-style: normal;
	line-height: 1.5;
	text-transform: uppercase;
}
.rtd-quote__name { color: var(--rtd-grey-400); }
.rtd-quote__title { color: var(--rtd-white); }

/* --------------------------------------------------------------------------
   Marquee (the reference's "infinite-marquee" nested carousels): slides run left at one slide width
   per 5s, linear, forever; "is-reverse" runs right. 4 / 2 / 1 slides per view across the marquee's own
   width (container query units). Slides are equal height (Swiper: slide container 100%).
   Reduced motion: stopped at the start position.
   -------------------------------------------------------------------------- */
/* Swiper breakpoints are min-width (>=1024: 4, >=767: 2), not Elementor's max-width CSS tiers — so
   at exactly 1024 it shows 4 and at 767 it shows 2. */
.rtd-marquee { --pv: 4; container-type: inline-size; overflow: hidden; }
@media (max-width: 1023px) { .rtd-marquee { --pv: 2; } }
@media (max-width: 766px) { .rtd-marquee { --pv: 1; } }
.rtd-marquee__track {
	display: flex;
	width: max-content;
	animation: rtd-marquee calc(var(--n) * 5s) linear infinite;
}
.rtd-marquee.is-reverse .rtd-marquee__track { animation-direction: reverse; }
.rtd-marquee__slide { display: flex; flex: none; width: calc(100cqw / var(--pv)); }
.rtd-marquee__slide > * { flex: 1; }
@keyframes rtd-marquee { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-50%, 0, 0); } }
@media (prefers-reduced-motion: reduce) { .rtd-marquee__track { animation: none; } }

/* Press tile (About "Featured In"): yellow, 20/10/10/20 padding, name centred, Bebas 32 #0C0C0C. */
.rtd-press { display: flex; flex-direction: column; justify-content: center; padding: 20px 10px 10px 20px; background-color: var(--rtd-yellow); }
.rtd-press__inner { display: flex; flex-direction: column; justify-content: center; align-items: center; }
.rtd-press__name { color: var(--rtd-bg); font-size: 32px; }

/* Person card (About client portfolio): photo, overlay recipe per card (--ov-img at --ov), name at the
   bottom. "Boxed" cards carry the name in an inner box (20/20/40/20); the rest pad the card (20/20/30/20). */
.rtd-person {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	align-items: center;
	min-height: 400px;
	padding: 20px 20px 30px;
	background-size: cover;
}
.rtd-person::before { content: ""; position: absolute; inset: 0; background-image: var(--ov-img); opacity: var(--ov); }
.rtd-person > * { position: relative; }
.rtd-person--boxed { align-items: stretch; padding: 0; }
.rtd-person__box { display: flex; flex-direction: column; align-items: center; padding: 20px 20px 40px; }
.rtd-person__name { font-size: 32px; }

/* --------------------------------------------------------------------------
   Counter (Elementor counter): title under the number (column-reverse), 15px apart. Number Bebas 69
   yellow, centred between prefix and suffix that each take half the slack; title Bebas 20/24 white.
   counter.js counts 0 → target over 2s on first view; the target is in the markup.
   -------------------------------------------------------------------------- */
.rtd-counter { display: flex; flex-direction: column-reverse; gap: 15px; }
.rtd-counter__number {
	display: flex;
	justify-content: center;
	color: var(--rtd-yellow);
	font-family: var(--rtd-font-display);
	font-size: 69px;
	font-weight: 400;
	line-height: 1;
	text-transform: uppercase;
}
.rtd-counter__pre,
.rtd-counter__suf { flex-grow: 1; white-space: pre-wrap; }
.rtd-counter__pre { text-align: end; }
.rtd-counter__suf { text-align: start; }
.rtd-counter__title {
	display: flex;
	justify-content: center;
	color: var(--rtd-white);
	font-family: var(--rtd-font-display);
	font-size: 20px;
	font-weight: 400;
	line-height: 24px;
	text-transform: uppercase;
}

/* --------------------------------------------------------------------------
   Google map (Elementor google_maps): 400px iframe, dimmed until hover over 1s, radius 8 on the
   widget (not clipped — as the reference).
   -------------------------------------------------------------------------- */
.rtd-map { width: 100%; border-radius: 8px; line-height: 0; }
.rtd-map iframe {
	width: 100%;
	height: 400px;
	border: 0;
	filter: brightness(65%) contrast(84%) saturate(88%) blur(0) hue-rotate(0deg);
	transition: filter 1s;
}
.rtd-map:hover iframe { filter: brightness(100%) contrast(100%) saturate(100%) blur(0) hue-rotate(0deg); }
.rtd-bcard--static { cursor: default; }
.rtd-subscribe__input:focus-visible, .rtd-eform__input:focus-visible { outline: 2px solid var(--rtd-yellow); outline-offset: 2px; } /* their :focus rules drop the outline (reference); keep it for keyboard focus */

/* ---- 04-sections.css ---- */
/* ==========================================================================
   04 — Page sections. One block per section, named after its page; numbers from
   _conversion/specs/<page>.txt (compiled CSS per element) and checked with geo.js.
   ========================================================================== */

/* --------------------------------------------------------------------------
   FAQ (457) — three accordion columns. Boxed row, 2% gap, 120px top/bottom.
   Tablet: wraps to one column, 37px gap, 90px / 20px padding.
   -------------------------------------------------------------------------- */
.rtd-faq { padding: 0; }
.rtd-faq__inner {
	display: flex;
	gap: 2%;
	max-width: min(100%, var(--rtd-container));
	margin: 0 auto;
	padding: 120px 0;
}
.rtd-faq__col { display: flex; flex: 0 1 auto; flex-direction: column; gap: 10px; width: 100%; min-width: 0; }
.rtd-faq__title { color: var(--rtd-yellow); font-size: 2rem; }
@media (max-width: 1024px) {
	.rtd-faq { padding: 0 20px; }
	.rtd-faq__inner { flex-wrap: wrap; gap: 37px; padding: 90px 0; }
}

/* --------------------------------------------------------------------------
   Contact (28). Info column + form column in a boxed row (2% gap, 120px padding; tablet 90/20).
   Both columns are width 100% / flex 0 1 auto, so they shrink by content size exactly as the
   reference does (495.8 / 528.3 at 1440 — the form column's padding makes it the wider one).
   -------------------------------------------------------------------------- */
.rtd-contact__inner {
	display: flex;
	gap: 2%;
	max-width: min(100%, var(--rtd-container));
	margin: 0 auto;
	padding: 120px 0;
}
.rtd-contact__info { display: flex; flex: 0 1 auto; flex-direction: column; justify-content: space-between; gap: 20px; width: 100%; min-width: 0; }
.rtd-contact__hq { display: flex; flex-direction: column; gap: 20px; }
.rtd-contact__hq-title { color: var(--rtd-yellow); font-size: 42px; }
.rtd-contact__office {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	padding: 10px 0 10px 20px;
	border-left: 3px solid var(--rtd-yellow);
}
.rtd-contact__office--alt { border-left-color: var(--rtd-navy-900); }
.rtd-contact__office-name { font-size: 28px; }
.rtd-contact__office-note { color: #d8d8d8; font-family: var(--rtd-font-body); font-size: 16px; text-transform: capitalize; }
.rtd-contact__comms {
	display: flex;
	flex-direction: column;
	gap: 15px;
	padding: 30px;
	border: 1px solid var(--rtd-navy-900);
	border-radius: 8px;
	background-color: var(--rtd-navy-900);
}
.rtd-contact__comms-title { color: var(--rtd-yellow); font-size: 26px; text-transform: capitalize; }
.rtd-contact__form {
	display: flex;
	flex: 0 1 auto;
	flex-direction: column;
	width: 100%;
	min-width: 0;
	padding: 30px;
	border: 1px solid var(--rtd-navy-900);
	border-radius: 8px;
}
@media (max-width: 1024px) {
	.rtd-contact { padding: 0 20px; }
	.rtd-contact__inner { padding: 90px 0; }
}
@media (max-width: 767px) {
	.rtd-contact__inner { flex-wrap: wrap; }
	.rtd-contact__form { margin-top: 40px; padding: 0; }
}

/* Map band: boxed, column, 120px bottom padding. */
.rtd-contact-map__inner { max-width: min(100%, var(--rtd-container)); margin: 0 auto; padding: 0 0 120px; }

/* Confidentiality band: yellow, boxed row, 30px gap, 60px padding (tablet 60/20). */
.rtd-contact-band { background-color: var(--rtd-yellow); }
.rtd-contact-band__inner {
	display: flex;
	align-items: center;
	gap: 30px;
	max-width: min(100%, var(--rtd-container));
	margin: 0 auto;
	padding: 60px 0;
}
/* Icon and text are content-sized and shrink by size, as the reference: the 50px icon sits in a 31px
   slot at 1440 (it overflows visibly, as there) and the text gets the rest. */
.rtd-contact-band__icon { flex: 0 1 auto; min-width: 0; text-align: center; }
/* Inline-block on a 24px text line, as Elementor icon widget: the baseline adds 6px under the 50px icon. */
.rtd-contact-band__icon span { display: inline-block; color: var(--rtd-navy-900); font-size: 50px; line-height: 1; }
.rtd-contact-band__icon .rtd-icon { display: block; width: 1em; height: 1em; fill: currentColor; }
.rtd-contact-band__text {
	flex: 0 1 auto;
	min-width: 0;
	margin: 0;
	color: var(--rtd-card);
	font-family: var(--rtd-font-body);
	font-size: 24px;
	font-weight: 500;
	text-align: center;
	text-transform: capitalize;
}
@media (max-width: 1024px) { .rtd-contact-band { padding: 0 20px; } }
@media (max-width: 767px) { .rtd-contact-band__inner { flex-wrap: wrap; } }

/* --------------------------------------------------------------------------
   Mission & Vision (463)
   -------------------------------------------------------------------------- */
/* Mission split: boxed row, 90px padding. Map panel 40% (black overlay .8, 4px yellow right rule —
   bottom rule on phones), text panel 60% on #1A1A1A, 80/60 padding (30 on phones). */
.rtd-mission__inner {
	display: flex;
	max-width: min(100%, var(--rtd-container));
	margin: 0 auto;
	padding: 90px 0;
}
.rtd-mission__map {
	position: relative;
	display: flex;
	flex: 0 0 auto;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 40%;
	min-height: 400px;
	border-right: 4px solid var(--rtd-yellow);
	background-position: center center;
	background-size: cover;
}
.rtd-mission__map::before { content: ""; position: absolute; inset: 0; background-color: var(--rtd-black); opacity: .8; }
.rtd-mission__map > * { position: relative; }
.rtd-mission__map-title { font-size: 100px; text-align: center; }
.rtd-mission__text {
	display: flex;
	flex: 0 0 auto;
	flex-direction: column;
	width: 60%;
	padding: 80px 60px;
	background-color: var(--rtd-card);
}
.rtd-mission__ibox .rtd-ibox__title { color: var(--rtd-white); font-size: 32px; }
.rtd-mission__ibox .rtd-ibox__text { color: var(--rtd-grey-400); font-size: 18px; font-weight: 400; }
@media (max-width: 767px) {
	.rtd-mission__inner { flex-wrap: wrap; }
	.rtd-mission__map,
	.rtd-mission__text { width: 100%; }
	.rtd-mission__map { min-height: 200px; border-right: 0; border-bottom: 4px solid var(--rtd-yellow); }
	.rtd-mission__map-title { font-size: 80px; }
	.rtd-mission__text { padding: 30px; }
}

/* The Vision — desktop + tablet: 10px hazard-striped rules (custom CSS block 16 overrides Elementor's
   8px / 4px yellow borders at both widths). Phones: the reference's second copy, plain 4px yellow
   rules, 60/30 padding. Outlined 100px title (80 on phones), 60% / 90% centred text. */
.rtd-vision { padding: 0 120px; }
.rtd-vision__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	max-width: min(100%, var(--rtd-container));
	margin: 0 auto;
	padding: 120px 0;
}
.rtd-vision--wide {
	border-top: 10px solid transparent;
	border-bottom: 10px solid transparent;
	background-image:
		linear-gradient(#000, #000),
		repeating-linear-gradient(45deg, var(--rtd-yellow), var(--rtd-yellow) 10px, #000 10px, #000 20px);
	background-origin: border-box;
	background-clip: content-box, border-box;
}
.rtd-vision--phone { padding: 0 30px; border-block: 4px solid var(--rtd-yellow); }
.rtd-vision--phone .rtd-vision__inner { padding: 60px 0; }
.rtd-vision__title {
	color: transparent;
	font-size: 100px;
	text-align: center;
	-webkit-text-stroke: 2px var(--rtd-white);
}
.rtd-vision__text {
	width: 60%;
	max-width: 60%;
	padding-top: 30px;
	color: var(--rtd-white);
	font-size: 18px;
	text-align: center;
}
@media (max-width: 767px) {
	.rtd-vision__title { font-size: 80px; }
	.rtd-vision__text { width: 90%; max-width: 90%; }
}

/* Values ("The Mission" cards): full-width photo band, #0C0C0C overlay .63, 90px padding; 100px title
   (80 on phones); 4 / 2 / 1-column grid of brand cards, 60px above, no gaps, 99.925% wide (as set). */
.rtd-values {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 90px 0;
	background-position: center center;
	background-size: cover;
}
.rtd-values::before { content: ""; position: absolute; inset: 0; background-color: var(--rtd-bg); opacity: .63; }
.rtd-values > * { position: relative; }
.rtd-values__title { font-size: 100px; text-align: center; }
.rtd-values__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	width: 99.925%;
	padding-top: 60px;
}
@media (max-width: 1024px) { .rtd-values__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 767px) {
	.rtd-values__title { font-size: 80px; }
	.rtd-values__grid { grid-template-columns: 1fr; width: 100%; }
}

/* --------------------------------------------------------------------------
   Testimonials (460). Four boxed sections, 90px padding, each opened by a left-aligned heading bar
   (Oswald 34/700, #0C0C0C on the sweep), then a row/grid 90px below it (tablet: 90/20 all round).
   -------------------------------------------------------------------------- */
.rtd-tsec__inner {
	display: flex;
	flex-direction: column;
	max-width: min(100%, var(--rtd-container));
	margin: 0 auto;
	padding: 90px 0;
}
.rtd-tsec--trusted .rtd-tsec__inner { align-items: center; }
.rtd-tsec__label { align-self: flex-start; padding: 5px 10px; text-align: center; }
.rtd-tsec__label-text { color: var(--rtd-bg); font-family: var(--rtd-font-condensed); font-size: 34px; font-weight: 700; }

.rtd-tvideos,
.rtd-tcases,
.rtd-tvoices { display: flex; gap: 2%; width: 100%; padding-top: 90px; }
.rtd-vcard { flex: 0 1 auto; width: 100%; }
@media (max-width: 1024px) {
	.rtd-tvideos,
	.rtd-tcases,
	.rtd-tvoices { flex-wrap: wrap; padding: 90px 20px; }
}
@media (min-width: 768px) and (max-width: 1024px) {
	.rtd-vcard--half { width: 49%; }
	.rtd-vcard--full { width: 100%; }
}
@media (max-width: 767px) { .rtd-tvideos { flex-wrap: wrap; } }

/* "Retained By" cases: 3-column grid, 2% gaps (1 column on phones); white cards, radius 8, 50/30
   padding, 10px gap. The badge is absolute 20px from the top and right, 120px wide from 768 up —
   below that it is 100% wide and still 20px from the right, so it overhangs the left edge (as rendered). */
.rtd-tcases__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2%; width: 100%; }
@media (max-width: 767px) { .rtd-tcases__grid { grid-template-columns: 1fr; } }
.rtd-case {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 10px;
	min-width: 0;
	padding: 50px 30px;
	border: 1px solid var(--rtd-grey-200);
	border-radius: 8px;
	background-color: var(--rtd-white);
}
.rtd-case__cat { color: #595959; /* was #B0B0B0, 2.1:1 on white */ font-family: var(--rtd-font-body); font-size: 22px; font-weight: 500; text-transform: capitalize; }
.rtd-case__firm { color: var(--rtd-card); font-size: 2rem; }
.rtd-case__rule { --rule-w: 95%; --rule-t: 1.5px; --rule-c: #d0d0d0; }
.rtd-case__name,
.rtd-case__type { font-family: var(--rtd-font-alt); font-weight: 400; text-transform: capitalize; }
.rtd-case__name { color: #303030; font-size: 19px; text-transform: none; } /* stored properly cased: "v." must not become "V." */
.rtd-case__type { color: #505050; font-size: 16px; }
.rtd-case__badge {
	position: absolute;
	top: 20px;
	right: 20px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 100%;
	padding: 10px;
	border-radius: 4px;
	background-color: var(--rtd-yellow);
}
/* Phones: the badge sits in the flow above the category (absolute at 100% wide it ran off the card over the label). */
@media (max-width: 767px) { .rtd-case__badge { position: static; order: -1; align-self: flex-start; width: auto; padding: 8px 16px; } }
@media (min-width: 768px) { .rtd-case { padding-top: 80px; } .rtd-case__badge { width: 120px; } } /* badge clears the category */
.rtd-case__badge .rtd-h { color: var(--rtd-card); font-size: 20px; font-weight: 900; }

/* Industry voices: the testimonial carousel, 40px reserved under the slides for its bullets. */
.rtd-quotes { width: 100%; padding-bottom: 40px; }

/* Trusted by: centred column 60px below the heading; rows 70% wide from 768 (full below, wrapping),
   60px round logo + Bebas 38 name, 20px gap; #3B3B3B rules between, of differing widths. */
.rtd-trusted { display: flex; flex-direction: column; justify-content: center; align-items: center; width: 100%; padding-top: 60px; }
.rtd-trusted__row { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 20px; width: 100%; padding: 10px; }
@media (min-width: 768px) { .rtd-trusted__row { flex-wrap: nowrap; width: 70%; } }
.rtd-trusted__img { width: 60px; height: 60px; border-radius: 100px; object-fit: cover; object-position: center center; }
.rtd-trusted__name { font-size: 38px; text-transform: capitalize; }
.rtd-trusted__rule { --rule-c: var(--rtd-divider); }

/* --------------------------------------------------------------------------
   About (25)
   -------------------------------------------------------------------------- */
/* Featured In: full-width row, centred; label 15% (tablet 30%), strip 85% (70%); stacked on phones. */
.rtd-featured { display: flex; flex-wrap: wrap; align-items: center; }
.rtd-featured__label { display: flex; flex: 0 1 auto; flex-direction: column; width: 100%; padding: 5px 10px; text-align: center; }
.rtd-featured__title { color: var(--rtd-yellow); font-family: var(--rtd-font-condensed); font-size: 34px; font-weight: 700; }
.rtd-featured__strip { display: flex; flex: 0 1 auto; flex-direction: column; width: 100%; min-width: 0; }
@media (min-width: 768px) {
	.rtd-featured { flex-wrap: nowrap; }
	.rtd-featured__label { width: 15%; }
	.rtd-featured__strip { width: 85%; }
}
@media (min-width: 768px) and (max-width: 1024px) {
	.rtd-featured__label { width: 30%; }
	.rtd-featured__strip { width: 70%; }
}

/* The Standard of Care: boxed row, 60px top (tablet: column, 20px all round). Text 50% with 30px
   padding and 20px gap (heading 48, copy 80% Roboto 18/24 white, CV bar); photo 45%, 500px tall. */
.rtd-soc__inner {
	display: flex;
	max-width: min(100%, var(--rtd-container));
	margin: 0 auto;
	padding: 60px 0 0;
}
.rtd-soc__text { display: flex; flex: 0 1 auto; flex-direction: column; gap: 20px; width: 50%; padding: 30px; }
.rtd-soc__title { font-size: 48px; }
.rtd-soc__copy { width: 80%; max-width: 80%; color: var(--rtd-white); font-size: 18px; line-height: 24px; }
.rtd-soc__cv { align-self: flex-start; padding: 5px 10px; text-align: center; }
.rtd-soc__cv-text { color: var(--rtd-bg); font-family: var(--rtd-font-condensed); font-size: 34px; font-weight: 700; }
.rtd-soc__media { display: flex; flex: 0 0 auto; flex-direction: column; align-items: center; width: 45%; text-align: center; }
/* No width rule: the width attribute (570) and max-width 100% give 470 / 570 / 350 as the reference. */
.rtd-soc__img { display: inline-block; height: 500px; border-radius: 8px; object-fit: cover; object-position: center center; vertical-align: middle; }
@media (max-width: 1024px) {
	.rtd-soc { padding: 0 20px; }
	.rtd-soc__inner { flex-direction: column; max-width: 100%; padding: 20px 0; }
	.rtd-soc__text { width: 100%; padding: 10px; }
	.rtd-soc__media { width: 100%; }
}
@media (max-width: 767px) {
	.rtd-soc__text { padding: 30px 0 0; }
	.rtd-soc__copy { width: 100%; max-width: 100%; }
}

/* Counters: boxed 4-column grid, 90px padding (tablet 2 columns, 20px gaps; phones 1). */
.rtd-counters__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	max-width: min(100%, var(--rtd-container));
	margin: 0 auto;
	padding: 90px 0;
}
@media (max-width: 1024px) { .rtd-counters__grid { grid-template-columns: repeat(2, 1fr); gap: 20px; } }
@media (max-width: 767px) { .rtd-counters__grid { grid-template-columns: 1fr; } }

/* Expanding panels (custom CSS "image accordion"): full-width row, 90px padding; from 600px the row is
   70vh (padding included) and a hovered panel grows to twice the others over .6s; text sits at .7
   until hovered. Below 768 the panels stack (Elementor mobile direction). */
.rtd-panels { display: flex; padding: 90px 0; }
.rtd-panel {
	position: relative;
	display: flex;
	flex: 0 1 auto;
	flex-direction: column;
	justify-content: flex-end;
	gap: 10px;
	width: 100%;
	min-width: 0;
	padding: 30px;
	background-position: center center;
	background-repeat: no-repeat;
}
.rtd-panel::before { content: ""; position: absolute; inset: 0; background-image: var(--ov-img); }
.rtd-panel > * { position: relative; }
.rtd-panel__title { font-size: 34px; }
.rtd-panel__text { color: var(--rtd-white); font-size: 18px; line-height: 24px; }
@media (min-width: 600px) {
	.rtd-panels { width: 100%; height: 70vh; overflow: hidden; gap: 0; }
	.rtd-panel { flex: 1; cursor: pointer; transition: flex .6s cubic-bezier(.25, 1, .5, 1); }
	.rtd-panel:hover { flex: 2; }
	.rtd-panel > * { opacity: .7; transition: opacity .4s ease; }
	.rtd-panel:hover > * { opacity: 1; }
}
@media (max-width: 767px) { .rtd-panels { flex-direction: column; } }

/* Client portfolio: full width, 90px bottom; boxed heading bar, then three marquees (first 90px down). */
.rtd-portfolio { display: flex; flex-direction: column; padding-bottom: 90px; }
.rtd-portfolio__head { display: flex; width: 100%; max-width: min(100%, var(--rtd-container)); margin: 0 auto; }
.rtd-portfolio__label { padding: 5px 10px; text-align: center; }
.rtd-portfolio__title { color: var(--rtd-bg); font-family: var(--rtd-font-condensed); font-size: 34px; font-weight: 700; }
.rtd-portfolio__row--first { padding-top: 90px; }

/* Commanding the Stage: 90px above a full-width crowd photo (black overlay .6, 90px top padding, 10px
   gap, centred): heading bar, line, a 3-column grid of tiles (75% wide, 95% on tablet, 5% gaps, 60/30
   padding), and a 4-up strip of event logos 90px below. */
.rtd-stage { display: flex; flex-direction: column; align-items: center; padding-top: 90px; }
.rtd-stage__band {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 10px;
	width: 100%;
	padding-top: 90px;
	background-position: center center;
	background-size: cover;
}
.rtd-stage__band::before { content: ""; position: absolute; inset: 0; background-color: var(--rtd-black); opacity: .6; }
.rtd-stage__band > * { position: relative; }
.rtd-stage__label { padding: 5px 10px; text-align: center; }
.rtd-stage__title { font-family: var(--rtd-font-condensed); font-size: 34px; font-weight: 700; }
.rtd-stage__text { color: var(--rtd-white); font-size: 18px; line-height: 24px; }
.rtd-stage__tiles {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 5%;
	width: 75%;
	padding: 60px 0 30px;
}
.rtd-stage__tile { display: flex; flex-direction: column; padding: 20px; border-radius: 16px; background-color: rgba(0, 0, 0, .49); }
.rtd-stage__ibox { text-align: center; }
.rtd-stage__ibox .rtd-ibox__title { margin: 0; color: var(--rtd-white); font-size: 28px; line-height: 65px; }
.rtd-stage__logos { display: grid; grid-template-columns: repeat(4, 1fr); width: 100%; margin-top: 90px; }
.rtd-stage__logo { background-position: center center; background-size: cover; }
@media (min-width: 768px) and (max-width: 1024px) { .rtd-stage__tiles { width: 95%; } }
@media (max-width: 1024px) { .rtd-stage__ibox--wrap .rtd-ibox__title { line-height: 1.2em; } }
@media (max-width: 767px) {
	.rtd-stage__tiles { grid-template-columns: 1fr; width: 100%; }
	.rtd-stage__logos { grid-template-columns: 1fr; }
}

/* ---- 05-venture.css ---- */
/* ==========================================================================
   05 — Venture pages (template-parts/venture.php). Numbers from _conversion/specs/34-*.txt etc.,
   checked against _conversion/parity/v-ref-*.json. Boxed sections follow the site pattern: inner
   max-width = container, 20px side padding on the outer from tablet down.
   ========================================================================== */

/* Section headings: Bebas 65 (45 on phones). Some are centred on phones only. */
.rtd-vsec-title { font-size: 65px; }
@media (max-width: 767px) {
	.rtd-vsec-title { font-size: 45px; }
	.rtd-vsec-title--m-center { text-align: center; }
}

/* --------------------------------------------------------------------------
   1 Hero — the quote hero's frame (photo, gradient at .78, contact bar, 60px inset) at 80vh;
   body gap 15. Tag: Elementor button, transparent, 1px yellow, Bebas 20/500, 12/24 padding.
   Title: two Bebas 68 words 5px apart (48 on phones), the second outlined (1px white stroke).
   -------------------------------------------------------------------------- */
.rtd-vhero__body { gap: 15px; }
.rtd-vhero__tag-wrap { display: flex; }
.rtd-vhero__tag {
	display: inline-block;
	padding: 12px 24px;
	border: 1px solid var(--rtd-yellow);
	color: var(--rtd-yellow);
	font-family: var(--rtd-font-display);
	font-size: 20px;
	font-weight: 500;
	line-height: 1;
	text-transform: uppercase;
}
.rtd-vhero__tag > span { display: block; }
.rtd-vhero__title { display: flex; gap: var(--title-gap, 5px); margin: 0; font-size: 68px; font-weight: 400; line-height: 1; }
.rtd-vhero__title > span { display: block; }
.rtd-vhero__outline { color: transparent; -webkit-text-stroke: 1px var(--rtd-white); }
.rtd-vhero__text { width: 60%; max-width: 60%; color: var(--rtd-white); }
@media (max-width: 767px) {
	.rtd-vhero__title { flex-wrap: wrap; font-size: 48px; } /* Elementor rows wrap on phones */
	.rtd-vhero__text { width: 90%; max-width: 90%; }
}

/* --------------------------------------------------------------------------
   2 Problem — boxed row, 2% gap, 120 padding (90/20 tablet). Intro column centred vertically, 20 gap,
   text #E4E4E4. Stat stack: 600 tall, 30 right padding, three absolutely placed cards (offsets from the
   right; tablet offsets in brackets): 1 top 0 right 51 (30) · 2 bottom 107 right 196 (90) · 3 top 120
   right 72 (40). Cards #1A1A1A, 1px #F0D000 at .25 → solid + glow on hover, 20 padding, 5 gap.
   Motion-effect elements only transition transform + opacity (Elementor Pro's rule outranks the
   container's border transition), so the hover border snaps — reproduced.
   -------------------------------------------------------------------------- */
.rtd-vprob__inner {
	display: flex;
	gap: 2%;
	max-width: min(100%, var(--rtd-container));
	margin: 0 auto;
	padding: 120px 0;
}
.rtd-vprob__intro { display: flex; flex: 0 1 auto; flex-direction: column; justify-content: center; gap: 20px; width: 100%; min-width: 0; }
.rtd-vprob__text { color: var(--rtd-grey-150); }
.rtd-vprob__stack {
	position: relative;
	display: flex;
	flex: 0 1 auto;
	flex-direction: column;
	align-items: flex-end;
	width: 100%;
	min-width: 0;
	min-height: 600px;
	padding-right: 30px;
}
.rtd-vstat {
	position: absolute;
	display: flex;
	flex-direction: column;
	gap: 5px;
	width: 250px;
	min-height: 110px;
	padding: 20px;
	border: 1px solid rgba(240, 208, 0, .25);
	background-color: var(--rtd-card);
}
.rtd-vstat:hover { border-color: var(--rtd-yellow); box-shadow: 0 5px 15px 0 rgba(240, 208, 0, .302); }
.rtd-vstat--1 { top: 0; right: 51px; z-index: 1; }
.rtd-vstat--2 { right: 196px; bottom: 107px; z-index: 2; }
.rtd-vstat--3 {
	top: 120px;
	right: 72px;
	justify-content: flex-end;
	width: 330px;
	min-height: 230px;
	background-position: top center;
	background-size: cover;
}
.rtd-vstat--3::before { content: ""; position: absolute; inset: -1px; background-color: var(--rtd-card); opacity: .6; }
.rtd-vstat--3 > * { position: relative; }
.rtd-vstat__value { color: var(--rtd-yellow); font-size: 45px; }
.rtd-vstat__value span { color: var(--rtd-white); }
@media (max-width: 1024px) {
	.rtd-vprob { padding: 0 20px; }
	.rtd-vprob__inner { padding: 90px 0; }
	.rtd-vstat--1 { right: 30px; }
	.rtd-vstat--2 { right: 90px; }
	.rtd-vstat--3 { right: 40px; }
}
@media (max-width: 767px) {
	.rtd-vprob__inner { flex-wrap: wrap; }
}

/* Motion effects (motionfx.js) — Elementor Pro: 1s cubic-bezier(0,.33,.07,1.03) on transform + opacity. */
.rtd-fx { transition: transform 1s cubic-bezier(0, .33, .07, 1.03), opacity 1s cubic-bezier(0, .33, .07, 1.03); }
.rtd-fx-perspective { perspective: 1200px; }

/* --------------------------------------------------------------------------
   3 Protocol — boxed column, centred, 30/120 padding (90/90 + 20 sides tablet). Row of two columns
   (60 top padding); the left one carries a 1px yellow rule on its right (none on phones). Each column
   stacks 60px-padded cells 60 apart, centred vertically. Step card: 450 wide (340 tablet, full on
   phones), #1B1B1B, 1px #F0D000 at .33 → solid + soft glow on hover (.3s), 30 padding, 15 gap,
   right-aligned (left for step 3). Icon: Elementor stacked circle, 30px glyph, 26 padding, yellow on
   #0C0C0C, inline-block in a normal line box (88 tall). Number: 60px yellow disc, yellow shadow,
   Bebas 38 #111827. Cells pad 10 on phones; the number cells are hidden there.
   -------------------------------------------------------------------------- */
.rtd-vproto__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	max-width: min(100%, var(--rtd-container));
	margin: 0 auto;
	padding: 30px 0 120px;
}
.rtd-vproto__row { display: flex; width: 100%; padding-top: 60px; }
.rtd-vproto__col {
	display: flex;
	flex: 0 1 auto;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 60px;
	width: 100%;
	min-width: 0;
}
.rtd-vproto__col--left { border-right: 1px solid var(--rtd-yellow); }
.rtd-vproto__cell { display: flex; flex-direction: column; align-items: center; width: 100%; padding: 60px; }
.rtd-vproto__cell--num { justify-content: center; }
.rtd-vstep {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 15px;
	width: 450px; /* wider than the 402px cell at 1440: overflows both sides, centred, as the reference */
	padding: 30px;
	border: 1px solid rgba(240, 208, 0, .33);
	background-color: var(--rtd-card-alt);
	text-align: end;
	transition: border var(--rtd-t-hover), box-shadow var(--rtd-t-hover);
}
.rtd-vstep:hover { border-color: var(--rtd-yellow); box-shadow: 0 0 10px 0 rgba(240, 208, 0, .24); }
.rtd-vstep--start { align-items: flex-start; text-align: start; }
.rtd-vstep__iconw { text-align: center; }
.rtd-vstep__icon {
	display: inline-block;
	padding: 26px;
	border-radius: 50%;
	background-color: var(--rtd-yellow);
	color: var(--rtd-bg);
	font-size: 30px;
	line-height: 1;
}
.rtd-vstep__icon .rtd-icon { display: block; width: 1em; height: 30px; fill: currentColor; }
.rtd-vstep__title { font-size: 38px; letter-spacing: .3px; }
.rtd-vnum {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 60px;
	min-height: 60px;
	border-radius: 100px;
	background-color: var(--rtd-yellow);
	box-shadow: 0 5px 15px 0 rgba(240, 208, 0, .3);
}
.rtd-vnum__n { color: var(--rtd-navy-900); font-size: 38px; }
@media (max-width: 1024px) {
	.rtd-vproto { padding: 0 20px; }
	.rtd-vproto__inner { padding: 90px 0; }
	.rtd-vstep { width: 340px; }
}
/* Phones, Expert Witness: the two columns stacked read Phase 01, 03, 02 beside the numbers 2, 1, 3; one
   column ordered by number instead (the numbers show on phones only on this page). */
@media (max-width: 767px) {
	.rtd-vproto.is-ew .rtd-vproto__row { flex-direction: column; }
	.rtd-vproto.is-ew .rtd-vproto__col { display: contents; }
	.rtd-vproto.is-ew .rtd-vproto__col:not(.rtd-vproto__col--left) > :nth-child(1) { order: 1; }
	.rtd-vproto.is-ew .rtd-vproto__col--left > :nth-child(1) { order: 2; }
	.rtd-vproto.is-ew .rtd-vproto__col--left > :nth-child(2) { order: 3; }
	.rtd-vproto.is-ew .rtd-vproto__col:not(.rtd-vproto__col--left) > :nth-child(2) { order: 4; }
	.rtd-vproto.is-ew .rtd-vproto__col:not(.rtd-vproto__col--left) > :nth-child(3) { order: 5; }
	.rtd-vproto.is-ew .rtd-vproto__col--left > :nth-child(3) { order: 6; }
}
@media (max-width: 767px) {
	.rtd-vproto__row { flex-wrap: wrap; }
	.rtd-vproto__col--left { border-right: 0; }
	.rtd-vproto__cell { padding: 10px; }
	.rtd-vstep { width: 100%; }
}

/* --------------------------------------------------------------------------
   4 Cards — boxed column, 30/120 padding. Grid 2 × 1fr (1 on phones), gap 5% 4%, 60 top padding
   (60/20 all round from tablet). Glow card (custom CSS "glow-card"): 2px #1A1A1A frame whose gradient
   ::before (yellow → orange → red, triple glow shadow) fades in on hover in .5s. Inner: 1px #F0D000
   at .29, radius 2, 30 padding. Icon box, top position: 50px yellow icon, 15 gap, title Bebas 28/1.2
   white (h3 margins .5rem / 1rem), description Roboto 16/24 #B0B0B0.
   -------------------------------------------------------------------------- */
.rtd-vcards__inner {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	max-width: min(100%, var(--rtd-container));
	margin: 0 auto;
	padding: 30px 0 120px;
}
.rtd-vcards__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-template-rows: repeat(2, 1fr);
	gap: 5% 4%;
	align-content: start;
	width: 100%;
	padding-top: 60px;
}
.rtd-glow { position: relative; z-index: 1; display: flex; flex-direction: column; padding: 2px; background-color: var(--rtd-card); }
/* Books: every inner box is 250 tall at least; of the frames only the third carries the 250 too (as built). */
.rtd-glow:nth-child(3) { min-height: var(--card-min, auto); }
.rtd-glow::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	border-radius: 2px;
	background: var(--rtd-glow);
	box-shadow: 0 0 12px var(--rtd-yellow), 0 0 24px var(--rtd-orange), 0 0 36px var(--rtd-red);
	opacity: 0;
	transition: opacity .5s ease-in-out;
}
.rtd-glow:hover::before { opacity: 1; }
.rtd-glow__inner {
	display: flex;
	flex-direction: column;
	flex-grow: 1;
	min-height: var(--card-min, auto);
	padding: 30px;
	border: 1px solid rgba(240, 208, 0, .29);
	border-radius: 2px;
	background-color: var(--rtd-card);
}
.rtd-vcard-box .rtd-ibox__icon > span { color: var(--rtd-yellow); }
.rtd-vcard-box .rtd-ibox__title { color: var(--rtd-white); font-size: 1.75rem; }
.rtd-vcard-box .rtd-ibox__text { color: var(--rtd-grey-400); font-size: 16px; font-weight: 400; line-height: 1.5; }
@media (max-width: 1024px) {
	.rtd-vcards__grid { padding: 60px 20px; }
}
@media (max-width: 767px) {
	.rtd-vcards__grid { grid-template-columns: repeat(1, 1fr); }
}

/* --------------------------------------------------------------------------
   5 Results — full width, 90 padding, centred. Venue marquee: Elementor nested carousel at opacity .1
   (custom CSS), 60 top padding, 3 per view (4 on Music / Books; 1 below 1024), no gap; Swiper autoplay
   every 5s with a 5s linear move — so it steps rather than glides. Tiles reuse the press tile.
   Quotes: boxed column, 10px container padding, 40 gap; card 46% (75% tablet, full on phones),
   #1A1A1A, 1px #F0D000 at .29, 30 padding; the second card alone has a hover state (reproduced).
   Text Roboto 24/36 white. Attribution = Elementor image box, image left from 768 up: 60px figure
   (it shrinks, as Elementor's does), 15 gap, photo 53 tall, round; name Roboto 18/1.2 capitalised
   white, role Roboto 16/1.5 #B0B0B0. Phones: stacked and centred.
   -------------------------------------------------------------------------- */
.rtd-vres { display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 90px 0; }
.rtd-vres__venues { width: 100%; padding-top: 60px; opacity: .1; }
.rtd-vres__venues .rtd-carousel__slide { cursor: pointer; }
.rtd-vquotes { width: 100%; padding: 10px; }
.rtd-vquotes__inner {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 40px;
	max-width: min(100%, var(--rtd-container));
	margin: 0 auto;
}
.rtd-vquote {
	display: flex;
	flex-direction: column;
	width: 46%;
	margin: 0;
	padding: 30px;
	border: 1px solid rgba(240, 208, 0, .29);
	background-color: var(--rtd-card);
	transition: border var(--rtd-t-hover), box-shadow var(--rtd-t-hover);
}
.rtd-vquote:nth-child(2):hover { border-color: var(--rtd-yellow); box-shadow: 0 0 10px 0 rgba(240, 208, 0, .23); }
.rtd-vquote__text { margin: 0; color: var(--rtd-white); font-family: var(--rtd-font-body); font-size: 24px; font-weight: 400; line-height: 1.5; }
.rtd-ibx { display: block; padding-top: 20px; }
.rtd-ibx__wrap { display: block; text-align: center; }
.rtd-ibx__img { display: inline-block; width: 60px; }
.rtd-ibx__img img { display: block; width: 100%; height: 53px; border-radius: 100px; object-fit: cover; object-position: top center; line-height: 0; transition-duration: .3s; }
.rtd-ibx__content { display: block; width: 100%; }
.rtd-ibx__title {
	display: block;
	margin: .5rem 0 0;
	color: var(--rtd-white);
	font-family: var(--rtd-font-body);
	font-size: 18px;
	font-weight: 400;
	line-height: 1.2;
	text-transform: capitalize;
}
.rtd-ibx__desc { display: block; color: var(--rtd-grey-400); font-family: var(--rtd-font-body); font-size: 16px; line-height: 1.5; }
@media (min-width: 768px) {
	.rtd-ibx__wrap { display: flex; flex-direction: row; align-items: flex-start; text-align: start; }
	.rtd-ibx__img { margin-right: 15px; }
}
@media (min-width: 768px) and (max-width: 1024px) {
	.rtd-vquote { width: 75%; }
}
@media (max-width: 767px) {
	.rtd-vquote { width: 100%; }
	.rtd-ibx__img { margin-inline: auto; } /* Elementor's 15px phone margin computes to 0 on the reference */
}

/* --------------------------------------------------------------------------
   6 Beyond — boxed column, 120 padding. Row of three photo cards 5% apart (60 top padding); from
   tablet down they wrap full width, 30 apart, row padded 60/20. Card: 600 tall, content at the bottom,
   0/20/30 padding, #111827 overlay at .58 → transparent at .5 on hover (1.1s). The first card also
   nudges 1px right on hover (.5s) — its Elementor hover transform. Title Bebas 38.
   -------------------------------------------------------------------------- */
.rtd-vbeyond__inner {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	max-width: min(100%, var(--rtd-container));
	margin: 0 auto;
	padding: 120px 0;
}
.rtd-vbeyond__row { display: flex; gap: 5%; width: 100%; padding-top: 60px; }
.rtd-vbeyond__card {
	position: relative;
	display: flex;
	flex: 0 1 auto;
	flex-direction: column;
	justify-content: flex-end;
	width: 100%;
	min-width: 0;
	min-height: 600px;
	padding: 0 20px 30px;
	background-position: center center;
	background-size: cover;
	text-decoration: none;
	transition: transform .5s;
}
.rtd-vbeyond__card::before {
	content: "";
	position: absolute;
	inset: 0;
	background-color: var(--rtd-navy-900);
	opacity: .58;
	transition: background 1.1s, opacity 1.1s;
}
.rtd-vbeyond__card:hover::before { background-color: transparent; opacity: .5; }
.rtd-vbeyond__card:first-child:hover { transform: translateX(1px); }
.rtd-vbeyond__card > * { position: relative; }
.rtd-vbeyond__title { font-size: 38px; }
@media (max-width: 1024px) {
	.rtd-vbeyond__row { flex-wrap: wrap; gap: 30px 0; padding: 60px 20px; }
}

/* --------------------------------------------------------------------------
   Music (44) and Books (47) extras.
   Hero background video (Elementor background video): fills the hero, cover, under its own copy of
   the gradient at .78; not shown on phones (no fallback image set, so phones get the gradient on black).
   -------------------------------------------------------------------------- */
.rtd-hero > .rtd-vhero__video { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.rtd-vhero__video::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background-image: linear-gradient(180deg, rgba(0, 0, 0, .259) 0%, var(--rtd-black) 100%);
	opacity: .78;
}
.rtd-vhero__video video { display: block; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 767px) { .rtd-hero > .rtd-vhero__video { display: none; } }

/* Glow blobs (page custom CSS): 250px yellow radial, blurred 50px, behind the content (z −1).
   Problem: top-left, 10% outside. Results: bottom-right, 10% outside. Protocol (class "content"):
   clipped to the section, the left blob drifting top 0 → 100% − 150px over 15s and back;
   Books adds a fixed one top-right. */
.rtd-vglow-tl,
.rtd-vglow-br { position: relative; }
.rtd-vglow-tl::before,
.rtd-vglow-br::after,
.rtd-vproto--glow::before,
.rtd-vproto--books::after,
.rtd-vprob.is-ew::after,
.rtd-vproto.is-ew::before {
	content: "";
	position: absolute;
	z-index: -1;
	width: 250px;
	height: 250px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(240, 208, 0, 1) 0%, rgba(240, 208, 0, .5) var(--blob-mid, 30%), rgba(240, 208, 0, 0) 70%);
	filter: blur(50px);
	pointer-events: none;
}
.rtd-vglow-tl::before { top: -10%; left: -10%; }
.rtd-vglow-br::after { right: -10%; bottom: -10%; }
.rtd-vglow-br { overflow-x: clip; } /* the glow sat 10% past the right edge and widened the page on phones (reference too); x only, it still spills down */
.rtd-vproto--glow,
.rtd-vproto.is-ew { position: relative; z-index: 1; overflow: hidden; }
.rtd-vproto--glow::before,
.rtd-vproto.is-ew::before { left: -10%; animation: rtd-move-ball 15s ease-in-out infinite alternate; }
.rtd-vproto--books::after { top: -10%; right: -10%; }
@keyframes rtd-move-ball { from { top: 0; } to { top: calc(100% - 150px); } }
@media (prefers-reduced-motion: reduce) { .rtd-vproto--glow::before, .rtd-vproto.is-ew::before { animation: none; top: 0; } }

/* Protocol row at 80% from 768 up (Music, Books). */
@media (min-width: 768px) { .rtd-vproto__row--narrow { width: 80%; } }

/* --------------------------------------------------------------------------
   Expert Witness (31), .is-ew — the first build of the layout. Same numbers, minus later refinements:
   headings stay 65px and start-aligned on phones; problem = intro + 512px-wide photo column; the problem
   and protocol sections clip their blobs (overflow hidden, z 1; blob gradient mid-stop 40%), the
   problem blob at the top-right. Protocol: 80px step images, every card right-aligned, 450 wide down to
   768, and on phones the cells keep 60px padding, the numbers and the yellow rule. Cards: three columns,
   no tablet padding. Quotes 46% from 768 up (no tablet step), photos centred. Beyond: a row until phones.
   -------------------------------------------------------------------------- */
.is-ew { --blob-mid: 40%; }
.rtd-vprob.is-ew { position: relative; z-index: 1; overflow: hidden; }
.rtd-vprob.is-ew::after { top: 0; right: -10%; }
.rtd-vprob__media { flex: 0 1 auto; width: 100%; min-width: 0; text-align: center; } /* image widget: centred inline image */
.rtd-vprob__media img { display: inline-block; max-width: 100%; height: auto; vertical-align: middle; }
.rtd-vstep__img { line-height: 0; }
.rtd-vstep__img img { display: inline-block; max-width: 100%; height: auto; }
.rtd-vcards.is-ew .rtd-vcards__grid { grid-template-columns: repeat(3, 1fr); }
.rtd-vres.is-ew .rtd-ibx__img img { object-position: center center; }
@media (max-width: 1024px) {
	.rtd-vproto.is-ew .rtd-vstep { width: 450px; }
	.rtd-vcards.is-ew .rtd-vcards__grid { padding: 60px 0 0; }
	.rtd-vres.is-ew .rtd-vquote { width: 46%; }
	.rtd-vbeyond.is-ew .rtd-vbeyond__row { flex-wrap: nowrap; gap: 5%; padding: 60px 0 0; }
}
@media (max-width: 767px) {
	.is-ew .rtd-vsec-title { font-size: 65px; text-align: start; }
	.rtd-vproto.is-ew .rtd-vproto__col--left { border-right: 1px solid var(--rtd-yellow); }
	.rtd-vproto.is-ew .rtd-vproto__cell { padding: 60px; }
	.rtd-vproto.is-ew .rtd-vstep { width: 100%; }
	.rtd-vcards.is-ew .rtd-vcards__grid { grid-template-columns: repeat(1, 1fr); }
	.rtd-vres.is-ew .rtd-vquote { width: 100%; }
	.rtd-vbeyond.is-ew .rtd-vbeyond__row { flex-wrap: wrap; }
}

/* ---- 06-blog.css ---- */
/* ==========================================================================
   06 — Blog: index, category archives, search, 404. Numbers from _conversion/specs/1137-*.txt,
   907 (loop item) and the measurements in _conversion/parity/blog-ref-*.txt.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Grid section (loop grid): boxed, 90px top/bottom (60 + 30 sides from tablet). 3 / 2 / 1 columns,
   30px gaps; every row as tall as its tallest card (grid-auto-rows 1fr, cards fill their cell).
   -------------------------------------------------------------------------- */
.rtd-blog__inner {
	display: flex;
	flex-direction: column;
	max-width: min(100%, var(--rtd-container));
	margin: 0 auto;
	padding: 90px 0;
}
.rtd-blog__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	grid-auto-rows: 1fr;
	gap: 30px;
}
@media (max-width: 1024px) {
	.rtd-blog { padding: 0 30px; }
	.rtd-blog__inner { padding: 60px 0; }
	.rtd-blog__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
	.rtd-blog__grid { grid-template-columns: minmax(0, 1fr); }
}
.rtd-blog__empty { display: flex; flex-direction: column; gap: 20px; max-width: 640px; }
.rtd-blog__empty .rtd-text { margin: 0; color: var(--rtd-grey-100); font-size: 18px; }

/* Card (loop item 907): black; image 300 tall, cover; body 30/20/20 padding, 15 gap. */
.rtd-pcard { position: relative; display: flex; flex-direction: column; background-color: var(--rtd-black); }
.rtd-pcard__media { line-height: 0; text-align: center; }
/* Width comes from the image's width attribute, capped at the card: narrow cards fill, a wide phone
   card shows the 547px "large" image centred — as the reference. */
.rtd-pcard__img { display: inline-block; max-width: 100%; height: 300px; object-fit: cover; object-position: center center; }
.rtd-pcard__body { display: flex; flex-direction: column; gap: 15px; padding: 30px 20px 20px; }
.rtd-pcard__title { font-size: 1.75rem; }
.rtd-pcard__title a { display: block; color: inherit; text-decoration: none; }
/* The whole card opens the post; the category link sits above the stretched title link. */
.rtd-pcard__title a::after { content: ""; position: absolute; inset: 0; }
.rtd-pcard__title a:focus-visible { outline: 0; }
.rtd-pcard:has(.rtd-pcard__title a:focus-visible) { outline: 2px solid var(--rtd-yellow); outline-offset: 2px; }
.rtd-pcard__excerpt { color: #e6e6e6; font-family: var(--rtd-font-body); font-weight: 400; }

/* Post info (Elementor post-info, inline): items 8px apart, 14px yellow icons, Roboto 16/24 yellow. */
.rtd-pinfo { display: flex; flex-wrap: wrap; margin: 0 -8px; padding: 0; list-style: none; }
.rtd-pinfo__item { display: flex; align-items: center; margin: 0 8px; font-family: var(--rtd-font-body); font-weight: 400; }
.rtd-pinfo__icon { display: flex; flex: none; width: 14px; color: var(--rtd-yellow); }
.rtd-pinfo__icon .rtd-icon { display: block; width: 14px; height: 14px; fill: currentColor; }
.rtd-pinfo__text { padding-left: 5px; color: var(--rtd-yellow); }
.rtd-pinfo__text a { position: relative; z-index: 1; color: inherit; text-decoration: none; }

/* Pager (only past one page). */
.rtd-pager { margin-top: 60px; }
.rtd-pager .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.rtd-pager .page-numbers {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 14px;
	border: 1px solid rgba(240, 208, 0, .33);
	color: var(--rtd-white);
	font-family: var(--rtd-font-display);
	font-size: 20px;
	text-decoration: none;
	text-transform: uppercase;
	transition: border-color var(--rtd-t-hover), color var(--rtd-t-hover);
}
.rtd-pager .page-numbers:hover,
.rtd-pager .page-numbers:focus-visible { border-color: var(--rtd-yellow); color: var(--rtd-yellow); }
.rtd-pager .page-numbers.current { border-color: var(--rtd-yellow); background-color: var(--rtd-yellow); color: var(--rtd-bg); }

/* --------------------------------------------------------------------------
   Search box (search page, 404, empty results): footer-form field + yellow button.
   -------------------------------------------------------------------------- */
.rtd-search { display: flex; gap: 10px; width: 100%; max-width: 640px; }
.rtd-search__input {
	flex: 1 1 auto;
	min-width: 0;
	min-height: 48px;
	padding: 8px 16px;
	border: 1px solid rgba(240, 208, 0, .33);
	border-radius: 3px;
	background-color: var(--rtd-card);
	color: var(--rtd-white);
	font-family: var(--rtd-font-body);
	font-size: 16px;
}
.rtd-search__input::placeholder { color: var(--rtd-grey-400); opacity: 1; }
.rtd-search__input:focus { border-color: var(--rtd-yellow); outline: 0; }
.rtd-search__button {
	flex: none;
	min-height: 48px;
	padding: 0 24px;
	border: 0;
	border-radius: 3px;
	background-color: var(--rtd-yellow);
	color: var(--rtd-bg);
	font-family: var(--rtd-font-display);
	font-size: 20px;
	letter-spacing: 1px;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color var(--rtd-t-hover);
}
.rtd-search__button:hover,
.rtd-search__button:focus-visible { background-color: var(--rtd-yellow-bright); }

/* Search page: the box sits under the hero, aligned with the grid. */
.rtd-search-bar__inner { max-width: min(100%, var(--rtd-container)); margin: 0 auto; padding: 60px 0 0; }
.rtd-search-bar + .rtd-blog .rtd-blog__inner { padding-top: 40px; }
@media (max-width: 1024px) { .rtd-search-bar { padding: 0 30px; } }

/* 404: search + the main pages as outlined tags (the venture hero tag). */
.rtd-notfound__inner {
	display: flex;
	flex-direction: column;
	gap: 40px;
	max-width: min(100%, var(--rtd-container));
	margin: 0 auto;
	padding: 90px 0;
}
.rtd-notfound__links { display: flex; flex-wrap: wrap; gap: 15px; }
.rtd-tag-link {
	display: inline-block;
	padding: 12px 24px;
	border: 1px solid var(--rtd-yellow);
	color: var(--rtd-yellow);
	font-family: var(--rtd-font-display);
	font-size: 20px;
	font-weight: 500;
	line-height: 1;
	text-decoration: none;
	text-transform: uppercase;
	transition: background-color var(--rtd-t-hover), color var(--rtd-t-hover);
}
.rtd-tag-link:hover,
.rtd-tag-link:focus-visible { background-color: var(--rtd-yellow); color: var(--rtd-bg); }
@media (max-width: 1024px) {
	.rtd-notfound { padding: 0 20px; }
	.rtd-notfound__inner { padding: 60px 0; }
}

/* ---- 07-single.css ---- */
/* ==========================================================================
   07 — Single post. Elementor single-post template 895: _conversion/specs/895-*.txt and the
   measurements in _conversion/parity/single/ref-*.txt (staging, 1440 / 1024 / 390).
   ========================================================================== */

/* --------------------------------------------------------------------------
   Hero (container 01aacb2): featured image, top centre, cover, under a 50% page-colour overlay.
   Min 70vh; boxed inner, content at the bottom (60px), 15px gap. From tablet the outer box takes a
   60px left padding and the inner is no longer centred.
   -------------------------------------------------------------------------- */
.rtd-shero {
	position: relative;
	display: flex;
	min-height: 70vh;
	overflow: clip; /* the post info's -8px row margin poked 8px past phones and let the page scroll sideways */
	background-color: var(--rtd-bg);
	background-position: top center;
	background-size: cover;
}
.rtd-shero::before {
	content: "";
	position: absolute;
	inset: 0;
	background-color: var(--rtd-bg);
	opacity: .5;
}
.rtd-shero__inner {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	gap: 15px;
	width: 100%;
	max-width: min(100%, var(--rtd-container));
	margin: 0 auto;
	padding-bottom: 60px;
}
.rtd-shero__title { flex: 0 0 auto; width: 65%; max-width: 65%; font-size: 56px; }
@media (max-width: 1024px) {
	.rtd-shero { padding-left: 60px; }
	.rtd-shero__inner { margin: 0; }
	/* Tablet width carries on down to phones, where the column caps it (539 at 767, 330 at 390). */
	.rtd-shero__title { width: 539.438px; max-width: min(100%, 539.438px); }
}

/* Post info, hero variant: white icons, #CCC text (kit Primary / Secondary). */
.rtd-pinfo--light .rtd-pinfo__icon { color: var(--rtd-white); }
.rtd-pinfo--light .rtd-pinfo__text { color: var(--rtd-grey-200); }

/* --------------------------------------------------------------------------
   Body row (container f4842e2): 60px top/bottom. Desktop: content 72% (60px left padding) beside a
   28% sidebar (20px sides, 40px gap). Tablet: stacked, content 95%, the sidebar a row of two halves
   (40 / 20 / 20 padding). Phone: everything full width, the sidebar's two boxes stacked 40px apart.
   -------------------------------------------------------------------------- */
.rtd-single { display: flex; justify-content: space-between; padding: 60px 0; }
.rtd-single__main { width: 72%; padding-left: 60px; }
.rtd-single__aside { display: flex; flex-direction: column; gap: 40px; width: 28%; padding: 0 20px; }
@media (max-width: 1024px) {
	.rtd-single { flex-direction: column; }
	.rtd-single__main { width: 95%; }
	.rtd-single__aside { flex-direction: row; width: 100%; padding: 40px 20px 20px; }
	.rtd-single__aside > * { flex: 1 1 0; min-width: 0; }
}
@media (max-width: 767px) {
	.rtd-single__main { width: 100%; }
	.rtd-single__aside { flex-direction: column; }
}

/* Post content (theme-post-content 4114a71): Roboto 18 / 1.5, #E4E4E4. The rest is the Hello reset. */
.rtd-single__content { color: var(--rtd-grey-150); font-family: var(--rtd-font-body); font-size: 18px; font-weight: 400; }
/* Links in post copy: site yellow, underlined (Hello's #C36 pink was 3.7:1 on black). */
.rtd-single__content a { color: var(--rtd-yellow); text-decoration: underline; text-underline-offset: 3px; }
.rtd-single__content a:hover { text-decoration-thickness: 2px; }
.rtd-single__content ul,
.rtd-single__content ol { margin-block: 0; }

/* --------------------------------------------------------------------------
   "Categories" box (container 47d4540): yellow title tab (Bebas 38, radius 8 8 0 0, 10px padding),
   then the blog categories, styled as the reference's vertical nav-menu: padding 10 0 0 10; items Bebas
   24/20, 13px 20px, white, a 3px yellow underline that fades in on hover (.3s).
   -------------------------------------------------------------------------- */
.rtd-scats__tab { padding: 10px 0; border-radius: 8px 8px 0 0; background-color: var(--rtd-yellow); }
.rtd-scats__title { color: var(--rtd-bg); font-size: 38px; text-align: center; }
.rtd-nav--post { padding: 10px 0 0 10px; }
.rtd-nav--post > li > a {
	display: flex;
	align-items: center;
	padding: 13px 20px;
	color: var(--rtd-white);
	font-size: 24px;
}
.rtd-nav--post > li > a::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	z-index: 2;
	width: 100%;
	height: 3px;
	background-color: var(--rtd-yellow);
	opacity: 0;
	transition: opacity var(--rtd-t-hover) cubic-bezier(.58, .3, .005, 1);
}
.rtd-nav--post > li > a:hover::after,
.rtd-nav--post > li > a:focus-visible::after { opacity: 1; }


/* --------------------------------------------------------------------------
   Appointment card (container 12c0842): #1A1A1A, radius 8. Image 300px, cover, bottom centre, top
   corners rounded; body 20px padding, 20px gap; title Bebas 28 centred; Elementor icon list — 16px
   white icons (+4 margin, +5 padding), Roboto 16/24 #CCC text, 3px above / below each row.
   Sticky at the top, within its own column.
   -------------------------------------------------------------------------- */
.rtd-appt {
	position: sticky;
	top: 0;
	display: flex;
	flex-direction: column;
	align-self: flex-start;
	width: 100%;
	border-radius: 8px;
	background-color: var(--rtd-card);
}
/* The image keeps its own width (600, "large"), capped at the card and centred — wider than the card
   everywhere but phone widths over ~640, where it sits centred, as the reference. */
.rtd-appt__media { line-height: 0; text-align: center; }
.rtd-appt__img {
	display: inline-block;
	max-width: 100%;
	height: 300px;
	vertical-align: middle;
	border-radius: 8px 8px 0 0;
	object-fit: cover;
	object-position: 50% 20%;
	object-position: bottom center;
}
.rtd-appt__body { display: flex; flex-direction: column; gap: 20px; padding: 20px; }
.rtd-appt__title { font-size: 28px; text-align: center; }
.rtd-appt__title a { color: inherit; }
.rtd-appt__title a:hover { color: var(--rtd-yellow); }

.rtd-ilist { margin: 0; padding: 0; list-style: none; }
.rtd-ilist__item { display: flex; align-items: center; }
.rtd-ilist__item:not(:last-child) { padding-bottom: 3px; }
.rtd-ilist__item:not(:first-child) { margin-top: 3px; }
.rtd-ilist__icon { display: flex; flex: none; padding-right: 5px; color: var(--rtd-white); }
.rtd-ilist__icon .rtd-icon { width: 16px; height: 16px; margin-right: 4px; fill: currentColor; }
.rtd-ilist__text { padding-left: 5px; color: var(--rtd-grey-200); font-family: var(--rtd-font-body); font-weight: 400; }
a.rtd-ilist__text:hover { color: var(--rtd-grey-200); }

/* Generic pages (Privacy Policy, Terms): the post body's text on the boxed width, 90px around. */
.rtd-legal { padding: 90px 0; }
.rtd-legal__inner { max-width: min(100%, var(--rtd-container)); margin: 0 auto; }
.rtd-legal h2 { margin-block: 2rem 1rem; color: var(--rtd-white); font-size: 28px; }
.rtd-legal ul { margin-block: 0 .9rem; }
.rtd-legal a { color: var(--rtd-yellow); text-decoration: underline; }
@media (max-width: 1024px) { .rtd-legal { padding: 60px 30px; } }
@media (max-width: 767px) { .rtd-legal { padding: 60px 20px; } }

/* ---- 08-home.css ---- */
/* ==========================================================================
   08 — Home (Elementor page 11). Numbers: _conversion/specs/11-home.txt and the measurements in
   _conversion/parity/home/ref-*.txt (staging, 1440 / 1024 / 390).
   Several sections set their content width to calc(100vw - 395px) from 768px up — tablet included,
   so at 1024 they are 629px wide and centred. That is the reference; --home-w carries it.
   ========================================================================== */
:root { --home-w: 100%; }
@media (min-width: 768px) { :root { --home-w: calc(100vw - 395px); } }

/* Heading bar text (Elementor heading in .headingBar): Oswald 34 / 700, page colour, 5px 10px box. */
.home .rtd-hbar { align-self: flex-start; padding: 5px 10px; text-align: center; }
.rtd-hbar__text { color: var(--rtd-bg); font-family: var(--rtd-font-condensed); font-size: 34px; font-weight: 700; }
.rtd-hbar__text a { color: inherit; }

/* --------------------------------------------------------------------------
   Hero (1074b6c): 100vh, photo under a 50% page-colour overlay, contact bar on top, text at the bottom.
   -------------------------------------------------------------------------- */
.rtd-hhero {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	min-height: 100vh;
	background-color: var(--rtd-bg);
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
}
.rtd-hhero::before { content: ""; position: absolute; inset: 0; background-color: var(--rtd-bg); opacity: .5; }
.rtd-hhero > * { position: relative; }
.rtd-hhero__body { display: flex; flex-direction: column; padding: 0 60px 60px; }
.rtd-hhero__name { padding-bottom: 15px; font-size: 24px; }
.rtd-hhero__title { font-size: 64px; }
@media (max-width: 767px) {
	.rtd-hhero__body { padding: 0 30px 30px; }
	/* Phones: a portrait crop of Ryan (the wide desktop photo cropped to an arm and the background). */
	.rtd-hhero { background-image: var(--hero-m) !important; background-position: center top; }
}

/* --------------------------------------------------------------------------
   Quote + venture cards (ee6cb4e): 90px top / bottom, 20px gaps. Cards: 3 / 3 / 1 columns, 400px,
   heading and line fade out on hover while "Learn More" rises and grows in (.5s, custom CSS "card").
   -------------------------------------------------------------------------- */
.rtd-hquote { display: flex; flex-direction: column; gap: 20px; padding: 90px 0; }
.rtd-hquote__head { display: flex; flex-direction: column; gap: 20px; }
.rtd-hquote__title { font-size: 93px; text-align: center; }
.home .rtd-hquote__by { align-self: center; }
@media (max-width: 767px) { .rtd-hquote__title { font-size: 64px; } }

.rtd-hcards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 20px; }
@media (max-width: 767px) { .rtd-hcards { grid-template-columns: minmax(0, 1fr); } }
.rtd-hcard {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	align-items: center;
	gap: 10px;
	min-height: 400px;
	padding: 30px;
	overflow: hidden;
	background-position: top center;
	background-size: cover;
	text-decoration: none;
	cursor: pointer;
}
.rtd-hcard::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(180deg, #0000004d 16%, #000000c7 100%); }
.rtd-hcard > * { position: relative; }
.rtd-hcard__title { font-size: 32px; font-weight: 500; line-height: 40px; }
.rtd-hcard__sub { font-family: var(--rtd-font-inter); font-size: 17px; font-style: italic; text-transform: capitalize; }
.rtd-hcard__title,
.rtd-hcard__sub { transition: all .5s ease-in-out; }
.rtd-hcard__btn {
	position: absolute;
	padding-top: 20px;
	transform: translateY(80px) scale(.7);
	transition: all .5s ease-in-out;
}
.rtd-hcard__btn-box {
	display: inline-block;
	padding: 12px 24px;
	border: 1px solid var(--rtd-white);
	border-radius: 3px;
	color: var(--rtd-white);
	font-family: var(--rtd-font-body);
	font-size: 15px;
	font-weight: 500;
	line-height: 1;
	text-transform: uppercase;
}
.rtd-hcard:hover .rtd-hcard__btn,
.rtd-hcard:focus-visible .rtd-hcard__btn { transform: translateY(0) scale(1); }
.rtd-hcard:hover .rtd-hcard__title,
.rtd-hcard:hover .rtd-hcard__sub,
.rtd-hcard:focus-visible .rtd-hcard__title,
.rtd-hcard:focus-visible .rtd-hcard__sub { opacity: 0; }

/* Holy Grail banner (25ebe02): 600px (206 on phones), stretched to the width as the reference (no
   object-fit); grows 5% on hover over 1s. */
.rtd-grail { line-height: 0; text-align: center; transition: all 1s ease-in-out; }
.rtd-grail:hover { transform: scale(1.05); }
.rtd-grail__img { display: inline-block; width: 100%; height: 600px; vertical-align: middle; }
@media (max-width: 767px) { .rtd-grail__img { height: 206px; } }

/* --------------------------------------------------------------------------
   Books (#books, c8be4b5): image 45% beside text 50%; from tablet stacked (image 54.909%, then full).
   -------------------------------------------------------------------------- */
.rtd-books__inner { display: flex; max-width: min(100%, var(--home-w)); margin: 0 auto; }
.rtd-books__media { flex: 0 0 auto; width: 45%; text-align: center; line-height: 0; }
.rtd-books__img { display: inline-block; max-width: 100%; height: auto; vertical-align: middle; }
.rtd-books__text { display: flex; flex-direction: column; gap: 20px; width: 50%; padding: 30px; }
.rtd-books__title { font-size: 48px; }
.rtd-books__copy { width: 80%; max-width: 80%; color: var(--rtd-white); font-size: 18px; line-height: 24px; }
@media (max-width: 1024px) {
	.rtd-books { padding: 0 20px; }
	.rtd-books__inner { flex-direction: column; max-width: 100%; padding: 20px 0; }
	.rtd-books__text { width: 100%; }
}
@media (min-width: 768px) and (max-width: 1024px) { .rtd-books__media { width: 54.909%; } }
@media (max-width: 767px) {
	.rtd-books__media { width: 100%; }
	.rtd-books__text { padding: 30px 0 0; }
	.rtd-books__copy { width: 100%; max-width: 100%; }
}

/* Order cards (1339a1a): three 400px book images, 40px apart; tablet 47 / 47 / 50% wrapping;
   phones stacked. "Order Now" ribbons (html widget 00f0288): vertical Bebas 36 on a swallow-tail. */
.rtd-orders__inner { display: flex; gap: 40px; max-width: min(100%, var(--home-w)); margin: 0 auto; padding: 60px 0; }
.rtd-orders__card { color: inherit; position: relative; display: flex; flex-direction: column; align-items: center; flex: 1 1 0; min-width: 0; line-height: 0; text-align: center; }
.rtd-orders__img { display: inline-block; max-width: 100%; height: 400px; vertical-align: middle; }
@media (max-width: 1024px) {
	.rtd-orders__inner { flex-wrap: wrap; max-width: 100%; }
	.rtd-orders__card { flex: 0 0 auto; width: 47%; }
	.rtd-orders__card:nth-child(3) { width: 50%; }
}
@media (max-width: 767px) { .rtd-orders__card, .rtd-orders__card:nth-child(3) { width: 100%; } }

.rtd-ribbon { position: absolute; top: 0; left: 20px; z-index: 10; overflow: hidden; font-size: 16px; line-height: 24px; text-align: left; }
.rtd-ribbon__text {
	position: relative;
	display: inline-block;
	padding: 15px 10px 25px;
	color: var(--rtd-bg);
	font-size: 36px;
	letter-spacing: 1px;
	writing-mode: vertical-rl;
	text-orientation: mixed;
	transform: translateY(-105%);
	transition: transform .8s var(--rtd-ease-out-expo) var(--ribbon-delay, 0s);
}
.rtd-ribbon__text::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-color: var(--rtd-yellow);
	clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 90%, 0 100%);
}
.rtd-ribbon.is-in .rtd-ribbon__text { transform: translateY(0); }

/* --------------------------------------------------------------------------
   Read this / Watch this (#podcast, da68fbe): two columns 60px apart; from tablet one column.
   -------------------------------------------------------------------------- */
.rtd-pod__inner {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 60px;
	max-width: min(100%, var(--home-w));
	margin: 0 auto;
	padding: 90px 0 60px;
}
.rtd-pod__col { display: flex; flex-direction: column; justify-content: space-between; gap: 20px; }
.rtd-pod__col--read { padding: 10px; }
.rtd-pod__title { font-size: 48px; }
@media (max-width: 1024px) {
	.rtd-pod { padding: 0 20px; }
	.rtd-pod__inner { grid-template-columns: minmax(0, 1fr); max-width: 100%; padding: 0; }
}

/* "Read this" card (loop item 172) in a 1 / 2 / 1-column grid: photo under a dark gradient (.83),
   title Bebas 35, author + category, the excerpt trimmed to 20 words. */
.rtd-ocard {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: 400px;
	padding: 30px;
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
}
.rtd-ocard::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(180deg, #00000070 0%, #000000d1 100%); opacity: .83; }
.rtd-ocard__inner { position: relative; display: flex; flex-direction: column; }
.rtd-ocard__title { font-size: 35px; }
.rtd-ocard__title a { display: block; color: inherit; }
.rtd-ocard .rtd-pinfo { padding-top: 10px; }
.rtd-pinfo--over .rtd-pinfo__text { color: var(--rtd-grey-200); }
.rtd-ocard__excerpt { padding-top: 10px; color: var(--rtd-grey-400); font-family: var(--rtd-font-body); font-weight: 400; }
@media (min-width: 768px) and (max-width: 1024px) { .rtd-ocard { width: calc((100% - 30px) / 2); } }

.rtd-pod__video { overflow: hidden; border-radius: 8px; aspect-ratio: 4 / 3; background-color: var(--rtd-black); }
.rtd-pod__video iframe { display: block; width: 100%; height: 100%; border: 0; }

/* --------------------------------------------------------------------------
   Quote band (79ff35c): 400px, photo (fixed from 1025px) under a dark gradient, Elementor's
   "opacity tilt" shape divider at the foot (127px, flipped, page colour).
   -------------------------------------------------------------------------- */
.rtd-qband {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 400px;
	background-position: top center;
	background-repeat: no-repeat;
	background-size: cover;
}
@media (min-width: 1025px) { .rtd-qband { background-attachment: fixed; } }
.rtd-qband::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(180deg, #0000002e 0%, #000000d6 100%); }
.rtd-qband__shape { position: absolute; bottom: -1px; left: 0; width: 100%; overflow: hidden; line-height: 0; direction: ltr; }
.rtd-qband__shape svg { position: relative; left: 50%; display: block; width: calc(100% + 1.3px); height: 127px; transform: translateX(-50%) rotateY(180deg); }
.rtd-qband__shape path { fill: var(--rtd-bg); }
.rtd-qband__inner {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	flex-grow: 1;
	width: 100%;
	max-width: min(100%, var(--rtd-container));
	margin: 0 auto;
	padding-bottom: 60px;
}
.rtd-qband__mark { color: var(--rtd-yellow); font-size: 105px; line-height: 10px; }
.rtd-qband__text { width: 50%; max-width: 50%; font-size: 45px; line-height: 50px; }
@media (max-width: 1024px) {
	.rtd-qband { padding: 0 30px; }
	.rtd-qband__inner { padding-bottom: 20px; }
}
@media (max-width: 767px) { .rtd-qband__text { font-size: 24px; line-height: 1.1em; } }

/* --------------------------------------------------------------------------
   Ventures (#Founder, #Co-Founder, #author): heading bar 60px above and below, then the cards —
   4 / 2 / 1 columns, rows of equal height. Card: custom CSS "brandCard" — logo and name sit 90px low and
   rise on hover / focus (.8s) while the description slides up and fades in (.9s) over the gradient.
   -------------------------------------------------------------------------- */
.rtd-ventures__head,
.rtd-story__head { display: flex; flex-direction: column; max-width: min(100%, var(--home-w)); margin: 0 auto; padding: 60px 0; }
.rtd-ventures__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-rows: repeat(var(--rows, 1), 1fr); }
.rtd-ventures--co-founder .rtd-ventures__grid { width: 99.925%; }
@media (max-width: 1024px) { .rtd-ventures__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) {
	.rtd-ventures__grid { grid-template-columns: minmax(0, 1fr); }
	.rtd-ventures--co-founder .rtd-ventures__grid { width: 100%; }
}

.rtd-bcard--logo { border-color: var(--rtd-white); }
.rtd-bcard__logo { position: relative; z-index: 1; transform: translateY(90px); transition: transform .8s ease-in-out; }
.rtd-bcard__logo img { display: inline-block; max-width: 100%; height: auto; vertical-align: middle; }
.rtd-bcard--logo .rtd-bcard__title-wrap { transform: translateY(90px); transition: transform .8s ease-in-out, opacity .8s ease-in-out; }
.rtd-bcard--logo .rtd-bcard__text { color: var(--rtd-grey-400); opacity: 0; transform: translateY(100%); transition: transform .9s ease-in-out, opacity .9s ease-in-out; }
.rtd-bcard--light .rtd-bcard__text { color: var(--rtd-grey-200); }
.rtd-bcard--dark .rtd-bcard__text { color: var(--rtd-bg); }
.rtd-bcard--logo:hover .rtd-bcard__logo,
.rtd-bcard--logo:focus-within .rtd-bcard__logo,
.rtd-bcard--logo:hover .rtd-bcard__title-wrap,
.rtd-bcard--logo:focus-within .rtd-bcard__title-wrap,
.rtd-bcard--logo:hover .rtd-bcard__text,
.rtd-bcard--logo:focus-within .rtd-bcard__text { opacity: 1; transform: translateY(0); }

/* --------------------------------------------------------------------------
   Ryan's Story (57866e6, hidden on phones): a 300vh track; the camera sticks for 200vh while zoom.js
   flies five cards out to the edges and grows the centre card to the full width × 100vh.
   -------------------------------------------------------------------------- */
.rtd-zoom { min-height: 300vh; }
.rtd-zoom__camera {
	position: sticky;
	top: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100vh;
	overflow: hidden;
}
@media (max-width: 767px) { .rtd-zoom { display: none; } }
.rtd-zcard {
	position: absolute;
	z-index: 1;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	gap: 10px;
	padding: 20px;
	background-position: top center;
	background-size: cover;
	will-change: transform, opacity;
}
.rtd-zcard::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(180deg, #00000057 0%, var(--rtd-card) 100%); }
.rtd-zcard > * { position: relative; }
.rtd-zcard--1 { top: 0; left: 0; width: 45%; min-height: 26vh; }
.rtd-zcard--2 { top: 0; right: 0; width: 55%; min-height: 26vh; }
.rtd-zcard--3 { top: 26%; left: 0; width: 28%; min-height: 48vh; }
.rtd-zcard--4 { right: 0; bottom: 0; width: 28%; min-height: 74vh; }
.rtd-zcard--5 { bottom: 0; left: 0; width: 72%; min-height: 26vh; }
.rtd-zcard--center { z-index: 10; width: 44%; min-height: 48vh; overflow: hidden; will-change: width, height; }
.rtd-zcard__year,
.rtd-zoom__stray { color: var(--rtd-yellow); font-size: 26px; }
.rtd-zcard__title { font-size: 28px; }

/* --------------------------------------------------------------------------
   Party rentals (#party, eb59890): nested carousel, 3 / 2 / 1 per view, no gaps, 60px above; each slide
   a YouTube background video cropped to cover (tablet and up; phones show its poster). Arrows inside, Swiper's bullets below.
   -------------------------------------------------------------------------- */
.rtd-party__inner { display: flex; flex-direction: column; max-width: min(100%, var(--home-w)); margin: 0 auto; padding: 60px 0; }
@media (max-width: 1024px) { .rtd-party__inner { max-width: 100%; } }
.rtd-party__carousel { padding-top: 60px; }
.rtd-party__carousel .rtd-carousel__viewport { padding-bottom: 16px; }
.rtd-party__slide { position: relative; height: 228px; padding: 10px; overflow: hidden; }
.rtd-party__video {
	position: absolute;
	inset: 0;
	container-type: size;
	background-position: center;
	background-size: cover;
	pointer-events: none;
}
.rtd-party__video iframe {
	position: absolute;
	top: 50%;
	left: 50%;
	width: max(100cqw, 177.78cqh);
	height: max(100cqh, 56.25cqw);
	border: 0;
	transform: translate(-50%, -50%);
}
/* Phones: the poster only (no video, as the reference hid it) — Phase 6: was an empty slide. */
.rtd-carousel__arrow {
	position: absolute;
	top: 137px;
	z-index: 1;
	display: flex;
	padding: 0;
	border: 0;
	background: none;
	color: rgba(237, 237, 237, .9);
	font-size: 25px;
	line-height: 1;
	cursor: pointer;
	transform: translateY(-50%);
}
.rtd-carousel__arrow .rtd-icon { width: 1em; height: 1em; fill: currentColor; }
.rtd-carousel__arrow--prev { left: 0; }
.rtd-carousel__arrow--next { right: 0; }
.rtd-party__carousel .rtd-carousel__bullets { bottom: 0; height: 6px; font-size: 6px; line-height: 6px; }

/* Expert Insights (70aefbd): 90px around, the grid 90px below the heading bar; 3 / 2 / 1 columns, 30px
   gaps; cards keep their own height (no equal-height rows here, unlike the blog). */
.rtd-insights__inner { display: flex; flex-direction: column; max-width: min(100%, var(--rtd-container)); margin: 0 auto; padding: 90px 0; }
.rtd-insights__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: 1fr; align-items: stretch; gap: 30px; margin-top: 90px; } /* equal-height cards (Saifur, 16 Oct 2026; the reference let them follow their text) */
.rtd-insights__grid .rtd-pcard__body { flex-grow: 1; }
@media (max-width: 1024px) { .rtd-insights__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .rtd-insights__grid { grid-template-columns: minmax(0, 1fr); } }

/* --------------------------------------------------------------------------
   Booking (a36a21d): team photo 44% beside the enquiry form 56%; phones stacked.
   -------------------------------------------------------------------------- */
.rtd-hcontact__inner { display: flex; max-width: min(100%, var(--home-w)); margin: 0 auto; padding-top: 60px; }
.rtd-hcontact__media { display: flex; flex-direction: column; justify-content: flex-end; width: 44%; background-position: center center; background-repeat: no-repeat; background-size: cover; }
.rtd-hcontact__form { display: flex; flex-direction: column; width: 56%; padding: 60px 50px; }
@media (max-width: 1024px) {
	.rtd-hcontact__media { justify-content: center; }
	.rtd-hcontact__form { padding: 50px 23px 60px; }
}
@media (max-width: 767px) {
	.rtd-hcontact__inner { flex-direction: column; }
	.rtd-hcontact__media { width: 100%; min-height: 298px; padding: 50px 20px; }
	.rtd-hcontact__form { width: 100%; padding: 60px 20px; }
}

/* --------------------------------------------------------------------------
   Contact strip (e8b6d13): three icon boxes 34 / 34 / 33%, dashed brown dividers. The reference's icons were an
   ElementsKit font it never loaded (empty boxes); Phase 6 fills them from the sprite.
   -------------------------------------------------------------------------- */
.rtd-hinfo__inner { display: flex; max-width: min(100%, var(--home-w)); margin: 0 auto; padding: 60px 0; }
.rtd-hinfo__col { display: flex; flex-direction: column; gap: 20px; width: 34%; padding: 20px 40px; border-right: 2px dashed #a6735552; }
.rtd-hinfo__col:last-child { width: 33%; gap: 0; border-right: 0; }
.rtd-hinfo__box { display: flex; align-items: center; gap: 25px; }
.rtd-hinfo__icon { flex: none; width: 40px; height: 40px; color: var(--rtd-white); }
.rtd-hinfo__icon .rtd-icon { display: block; width: 100%; height: 100%; fill: currentColor; }
.rtd-hinfo__content { flex-grow: 1; min-width: 0; }
.rtd-hinfo__title { margin-bottom: 10px; font-size: 26px; font-weight: 600; line-height: 1.5; }
.rtd-hinfo__title a { color: inherit; }
.rtd-hinfo__text { margin: 0; color: var(--rtd-grey-200); font-family: var(--rtd-font-body); font-size: 15px; font-weight: 400; line-height: 1.5; }
.rtd-hinfo__text a { color: inherit; }
.rtd-hinfo__btn {
	display: inline-block;
	align-self: flex-start;
	margin: -10px 0 0 40px;
	padding: 12px 24px;
	border-radius: 3px;
	color: var(--rtd-yellow);
	font-family: var(--rtd-font-alt);
	font-size: 15px;
	font-weight: 600;
	line-height: 1;
	text-decoration: underline;
	text-transform: uppercase;
}
.rtd-hinfo__btn > span { display: block; } /* Elementor button-content-wrapper: a flex box, so a 15px line */
.rtd-hinfo__btn:hover { color: var(--rtd-yellow); }
@media (max-width: 1024px) {
	.rtd-hinfo { padding: 0 30px; }
	.rtd-hinfo__inner { padding: 50px 0; }
	.rtd-hinfo__col { padding: 0 15px; }
	.rtd-hinfo__box { gap: 15px; }
	.rtd-hinfo__icon { width: 28px; height: 28px; }
	.rtd-hinfo__title { margin-bottom: 12px; font-size: 22px; }
	.rtd-hinfo__text { font-size: 13px; }
	.rtd-hinfo__btn { margin-left: 25px; }
}
@media (max-width: 767px) {
	.rtd-hinfo__inner { flex-direction: column; }
	.rtd-hinfo__col,
	.rtd-hinfo__col:last-child { align-items: center; width: 100%; }
	.rtd-hinfo__col:first-child { padding: 0; }
	.rtd-hinfo__col:nth-child(2) { margin-top: 25px; padding: 0 25px; }
	.rtd-hinfo__col:last-child { margin-top: 25px; }
	.rtd-hinfo__box { align-self: stretch; }
	.rtd-hinfo__icon { width: 30px; height: 30px; }
	.rtd-hinfo__title { font-size: 24px; }
	.rtd-hinfo__text { font-size: 15px; }
	.rtd-hinfo__btn { align-self: center; margin: -10px 0 0; }
}

/* Home form (Elementor form c41ba40): the Contact form's layout, with translucent white fields
   (#FFFFFF1A) and page-colour button text instead of the Contact form's navy. */
.rtd-hcontact .rtd-eform__input { background-color: #ffffff1a; }
.rtd-hcontact .rtd-eform__button,
.rtd-hcontact .rtd-eform__button:hover { color: var(--rtd-bg); }
