/* ==========================================================================
RC Advisors — Site Stylesheet
Colour palette is intentionally kept as CSS custom properties (variables)
so the whole site's tone can be retuned from one place, per Terry's
direction (5 Aug): logo is locked, the colour swatch is not.
========================================================================== */

:root {
/* --- Brand colour (working defaults — tune here, not locked) --- */
--navy: #344765; /* sampled from the actual logo pixels (4.png) */
--navy-dark: #24334a; /* darker shade for hover/depth */
--navy-tint-10: #eef1f5; /* very light navy tint for section bands */
--gold: #F5C13A; /* logo dot colour */
--gold-deep: #E8A61C; /* House Style accent alt */
--red: #D9362E; /* FREE splash fill, 3 Sep */

--body-text: #222222;
--meta-grey: #6B7280;
--border-grey: #E2E5EA;
--white: #FFFFFF;

/* --- Type --- */
--font-base: "Calibri", "Segoe UI", Arial, sans-serif;

/* --- Layout --- */
--max-width: 1160px;
--radius: 10px;
--shadow-card: 0 2px 8px rgba(52, 71, 101, 0.08);
--shadow-card-hover: 0 10px 24px rgba(52, 71, 101, 0.16);
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
margin: 0;
font-family: var(--font-base);
color: var(--body-text);
line-height: 1.6;
background: var(--white);
}

img { max-width: 100%; display: block; }

a { color: var(--navy); text-decoration: none; }
a:hover { color: var(--gold-deep); }

.wrap {
max-width: var(--max-width);
margin: 0 auto;
padding: 0 24px;
}

/* --- Header --- */
.site-header {
border-bottom: 3px solid var(--gold);
background: var(--white);
position: sticky;
top: 0;
z-index: 100;
}

.site-header .wrap {
display: flex;
align-items: center;
justify-content: space-between;
padding-top: 14px;
padding-bottom: 14px;
}

.brand img { height: 110px; width: auto; } /* 2.5x the original 44px, per Terry's instruction (5 Aug) */

.main-nav ul {
list-style: none;
display: flex;
gap: 10px;
margin: 0;
padding: 0;
}

/* Restyled 31 Aug — every tab is now the agreed "Style D" button (navy fill,
gold accent foot), per Terry. See RCA CTA Styles artifact. */
.main-nav a {
position: relative;
display: inline-block;
background: var(--navy);
color: var(--white);
font-weight: 700;
font-size: 0.85rem;
padding: 9px 16px 12px;
border-radius: 6px 6px 2px 2px;
transition: background 0.15s ease;
}

.main-nav a::after {
content: "";
position: absolute;
left: 0; right: 0; bottom: 0;
height: 3.45px;
background: var(--gold);
border-radius: 0 0 2px 2px;
}

.main-nav a:hover { background: var(--navy-dark); }

/* --- Nav active-state (current page indicator) — the D treatment inverted,
so "you are here" stays instantly readable among five identical buttons. --- */
.main-nav a[aria-current="page"] {
background: var(--gold);
color: var(--navy-dark);
}

.main-nav a[aria-current="page"]::after { background: var(--navy); }
.main-nav a[aria-current="page"]:hover { background: var(--gold-deep); }

/* --- Hero --- */
.hero {
background: linear-gradient(160deg, var(--navy) 0%, var(--navy-dark) 100%);
color: var(--white);
padding: 72px 0 88px;
}

.hero .wrap { max-width: 880px; text-align: center; }

.hero h1 {
font-size: 2.5rem;
line-height: 1.2;
margin: 0 0 22px;
font-weight: 700;
}

.hero p {
font-size: 1.15rem;
color: #DCE3EC;
margin: 0 auto 16px;
max-width: 700px;
}

.hero .hero-tags {
margin-top: 32px;
display: flex;
justify-content: center;
gap: 14px;
flex-wrap: wrap;
}

.hero .hero-tags a {
color: var(--white);
border: 1.5px solid rgba(255,255,255,0.5);
padding: 9px 20px;
border-radius: 30px;
font-size: 0.92rem;
font-weight: 600;
}

.hero .hero-tags a:hover {
background: var(--gold);
border-color: var(--gold);
color: var(--navy-dark);
}
.hero .hero-badges {
list-style: none;
margin: 40px auto 0;
padding: 0;
max-width: 700px;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
}

.hero .hero-badges li {
width: 170px;
height: 170px;
border-radius: 50%;
background: var(--gold);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
padding: 20px;
box-sizing: border-box;
}

.hero .hero-badges .badge-head {
color: var(--navy);
font-weight: 700;
font-size: 1rem;
line-height: 1.25;
}

.hero .hero-badges .badge-sub {
color: var(--navy);
font-weight: 500;
font-size: 0.8rem;
line-height: 1.25;
margin-top: 6px;
}

/* Done For You badge doubles as a link through to its page (added 1 Sep) —
fills the circle so the whole badge stays clickable, not just the text. */
.hero .hero-badges .badge-link {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
color: inherit;
text-decoration: none;
transition: transform 0.15s ease, filter 0.15s ease;
}

.hero .hero-badges .badge-link:hover,
.hero .hero-badges .badge-link:focus-visible {
transform: scale(1.05);
filter: brightness(1.08);
}

.hero .hero-callout {
color: #DCE3EC;
font-size: 0.9rem;
font-weight: 600;
margin: 20px 0 0;
}

/* --- Trustee Training badge: "FREE" starburst splash (updated 23 Aug,
restyled 3 Sep). Pure-CSS starburst — two stacked clip-path shapes, a
white outline behind a red fill. Per Terry (3 Sep): fill is red, and the
splash sits in FRONT of the badge circle (z-index raised above it),
rather than tucked behind it as originally built. --- */
.hero .hero-badges li.badge-with-splash {
position: relative;
background: transparent;
padding: 0;
}

.badge-circle {
position: relative;
width: 100%;
height: 100%;
box-sizing: border-box;
border-radius: 50%;
background: var(--gold);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
padding: 20px;
box-shadow: 4px 10px 18px rgba(0,0,0,0.42);
}

.trustee-badge-splash {
position: absolute;
top: -37px;
left: -29px;
width: 94px;
height: 94px;
pointer-events: none;
transform: rotate(-13deg);
filter: drop-shadow(2px 5px 6px rgba(0,0,0,0.35));
z-index: 2;
}

.splash-shape {
position: absolute;
inset: 0;
clip-path: polygon(50.00% 0.00%, 59.84% 13.29%, 75.00% 6.70%, 76.87% 23.13%, 93.30% 25.00%, 86.71% 40.16%, 100.00% 50.00%, 86.71% 59.84%, 93.30% 75.00%, 76.87% 76.87%, 75.00% 93.30%, 59.84% 86.71%, 50.00% 100.00%, 40.16% 86.71%, 25.00% 93.30%, 23.13% 76.87%, 6.70% 75.00%, 13.29% 59.84%, 0.00% 50.00%, 13.29% 40.16%, 6.70% 25.00%, 23.13% 23.13%, 25.00% 6.70%, 40.16% 13.29%);
}

.splash-shape-outline {
background: var(--white);
transform: scale(1.1);
}

.splash-shape-fill {
background: var(--red);
}

.splash-text {
position: absolute;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
font-weight: 800;
font-size: 0.94rem;
letter-spacing: 0.03em;
color: var(--white);
}
/* --- Section bands --- */
section { padding: 68px 0; }

.band-tint { background: var(--navy-tint-10); }

.section-head {
max-width: 760px;
margin: 0 auto 44px;
text-align: center;
}

.section-head h2 {
color: var(--navy);
font-size: 1.9rem;
margin: 0 0 14px;
}

.section-head p {
color: var(--meta-grey);
font-size: 1.05rem;
margin: 0;
}

/* --- Accountant-introduction explainer --- */
.explainer {
background: var(--white);
border: 1px solid var(--border-grey);
border-left: 5px solid var(--gold);
border-radius: var(--radius);
padding: 40px 44px;
max-width: 820px;
margin: 0 auto;
box-shadow: var(--shadow-card);
}

.explainer h3 {
color: var(--navy);
font-size: 1.35rem;
margin: 0 0 16px;
}

.explainer p { margin: 0 0 14px; }
.explainer p:last-child { margin-bottom: 0; }

/* --- Audience cards --- */
.audience-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 28px;
}

.audience-card {
background: var(--white);
border: 2px solid var(--navy);
border-radius: var(--radius);
padding: 32px 28px;
text-align: left;
box-shadow: var(--shadow-card);
transition: box-shadow 0.2s ease, transform 0.2s ease;
overflow: hidden;
display: flex;
flex-direction: column;
}

.audience-card:hover {
box-shadow: var(--shadow-card-hover);
transform: translateY(-4px);
}

/* icon-tile rule removed per Terry's instruction (5 Aug) — icons dropped everywhere, the owls do that job */

.audience-card h3 {
color: var(--navy);
font-size: 1.15rem;
margin: 0 0 10px;
}

.audience-card p {
color: var(--body-text);
font-size: 0.97rem;
margin: 0 0 18px;
}

.audience-card .card-link {
font-weight: 700;
font-size: 0.92rem;
color: var(--white);
display: flex;
align-items: center;
justify-content: center;
text-align: center;
background: var(--navy);
min-height: 76px;
padding: 10px 28px;
margin-top: auto;
margin-right: -28px;
margin-bottom: -32px;
margin-left: -28px;
}

.audience-card .card-link::after { content: " \2192"; }

.audience-card .card-links {
display: flex;
flex-direction: column;
gap: 10px;
margin-top: auto;
}

/* --- What we do: service pillars (icon badges removed per Terry's
instruction, 5 Aug — the owl illustrations will do that job once
generated; drop the relevant <img> straight into each .pillar-card
when ready) --- */
.pillar-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 28px;
margin-top: 8px;
}

.pillar-card {
padding: 34px 28px;
border-radius: var(--radius);
background: var(--white);
border: 2px solid var(--navy);
box-shadow: var(--shadow-card);
transition: box-shadow 0.2s ease, transform 0.2s ease;
overflow: hidden;
display: flex;
flex-direction: column;
}

.pillar-card:hover {
box-shadow: var(--shadow-card-hover);
transform: translateY(-4px);
}

.pillar-card h3 {
color: var(--navy);
margin: 0 0 10px;
font-size: 1.12rem;
}

.pillar-card p {
margin: 0 0 16px;
color: var(--meta-grey);
font-size: 0.95rem;
}

.pillar-card .card-link {
font-weight: 700;
font-size: 0.92rem;
color: var(--white);
display: flex;
align-items: center;
justify-content: center;
text-align: center;
background: var(--navy);
min-height: 76px;
padding: 10px 28px;
margin-top: auto;
margin-right: -28px;
margin-bottom: -34px;
margin-left: -28px;
}
.pillar-card .card-link::after { content: " \2192"; }

/* --- Our services: horizontal row of vertical cards (1 Sep) — Terry
wanted "Our services" visually distinct from the Masterclasses grid
below it. With 5 items, the 4-column .pillar-grid left an orphan card
stranded on its own row; this instead lays all 5 out as one flexible
row that stretches to fill the full page width, each card the same
height and width. Reuses .pillar-card's own internal layout (owl icon,
h3, p, full-bleed card-link footer) unchanged — only the *grouping*
container differs from .pillar-grid. */
.services-row {
display: flex;
gap: 20px;
align-items: stretch;
margin-top: 8px;
}

.services-row .pillar-card {
flex: 1 1 0;
min-width: 0;
}

.services-row .pillar-card h3 { font-size: 1.05rem; }

/* --- Sub-page furniture (added 5 Aug for Existing Trustees / Accountants
Only / RCA Clients hub pages and their sub-pages) --- */
/* "Exit sign" arrow, take 3 (1 Sep) — Terry asked for a bigger arrowhead
and for the navy to read as a single band around the WHOLE arrow rather
than a bar cutting across the seam where the head met the shaft. Rebuilt
as one merged shape (shaft + arrowhead in a single clip-path outline) in
two layers: the element's own box is the navy layer at full size, and a
::before inset 4px in on every side is the gold layer — same silhouette,
smaller — so the 4px of navy showing round the edge is a true band with
no internal dividing line. The label text is wrapped in .back-link-text
and given its own stacking layer (position:relative + z-index:1) so it
reliably paints above the gold ::before — an un-positioned text run does
not get the same painting priority as the pseudo-element in practice. */
.back-link {
position: relative;
display: inline-flex;
align-items: center;
height: 44px;
margin-bottom: 20px;
padding: 0 20px 0 36px;
font-weight: 700;
font-size: 0.8rem;
letter-spacing: 0.03em;
text-transform: uppercase;
color: var(--navy-dark);
background: var(--navy);
clip-path: polygon(100% 8px, 35px 8px, 35px 0, 0 22px, 35px 44px, 35px 36px, 100% 36px);
}

.back-link::before {
content: "";
position: absolute;
top: 4px;
right: 4px;
bottom: 4px;
left: 4px;
background: var(--gold);
clip-path: polygon(100% 8px, 27px 8px, 27px 0, 0 18px, 27px 36px, 27px 28px, 100% 28px);
transition: background 0.15s ease;
}

.back-link-text {
position: relative;
z-index: 1;
}

.back-link:hover::before { background: var(--gold-deep); }

.page-content {
max-width: 820px;
margin: 0 auto;
}

.page-content h2 {
color: var(--navy);
font-size: 1.4rem;
margin: 40px 0 14px;
}

.page-content h2:first-child { margin-top: 0; }

.page-content p { margin: 0 0 16px; }
.page-content ul { margin: 0 0 16px; padding-left: 22px; }
.page-content li { margin-bottom: 8px; }

.note-box {
background: var(--navy-tint-10);
border-radius: var(--radius);
padding: 20px 24px;
font-size: 0.92rem;
color: var(--meta-grey);
margin: 28px 0;
}

/* --- Topic cards as full-card links (101 SSAS Questions — added 24 Aug,
per Terry: clicking anywhere on a subject card should jump to its
questions, not just a link at the bottom). Resets the anchor defaults;
.pillar-card's own layout rules (flex column, border, shadow, hover
lift) are unchanged and apply identically whether the element is a
<div> (as on other pages) or an <a> (as here). --- */
a.pillar-card {
text-decoration: none;
color: inherit;
}

/* --- Ask a question search box (101 SSAS Questions — added 24 Aug).
Pure client-side keyword match against the .qa-pair blocks already on
the page — no content is generated, it only ever scrolls to and briefly
highlights an existing, already-approved answer. See inline <script>
on that page for the matching logic. --- */
.ask-question-box {
max-width: 640px;
margin: 0 auto;
text-align: center;
}

.ask-question-box h2 {
color: var(--navy);
margin: 0 0 8px;
}

.ask-question-box > p {
color: var(--meta-grey);
margin: 0 0 20px;
}

.ask-form {
display: flex;
gap: 10px;
flex-wrap: wrap;
justify-content: center;
}

.ask-form input[type="text"] {
flex: 1 1 320px;
padding: 14px 18px;
border-radius: var(--radius);
border: 2px solid var(--border-grey);
font-family: var(--font-base);
font-size: 1rem;
color: var(--body-text);
box-sizing: border-box;
}

.ask-form input[type="text"]:focus {
outline: none;
border-color: var(--navy);
}

.ask-form button {
padding: 15px 30px;
border-radius: 999px;
border: none;
outline: 3.45px solid var(--navy);
outline-offset: 4px;
background: var(--gold);
color: var(--navy-dark);
font-weight: 700;
font-size: 0.88rem;
letter-spacing: 0.03em;
text-transform: uppercase;
cursor: pointer;
transition: background 0.2s ease, box-shadow 0.2s ease;
}

.ask-form button:hover {
background: var(--gold-deep);
box-shadow: 0 6px 16px rgba(232, 166, 28, 0.35);
}

.ask-feedback {
margin: 16px 0 0;
font-size: 0.9rem;
color: var(--navy);
min-height: 1.3em;
}

.ask-feedback a {
color: var(--navy);
font-weight: 700;
}

/* --- Q&A pair wrapper + jump-to highlight flash --- */
.qa-pair {
padding: 6px 10px;
margin: 0 -10px 6px;
border-radius: 8px;
}

.question-highlight {
background: rgba(245, 193, 58, 0.3);
transition: background 0.6s ease;
}

/* --- Downloadable resource list (toolkit / aids / forms — most items are
marked "coming soon" until the actual PDFs exist, so the page reads as
intentional rather than broken) --- */
.resource-list {
display: flex;
flex-direction: column;
gap: 14px;
margin: 24px 0 32px;
}

.resource-item {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
background: var(--white);
border: 1px solid var(--border-grey);
border-radius: var(--radius);
padding: 18px 22px;
box-shadow: var(--shadow-card);
}

.resource-item h4 {
color: var(--navy);
margin: 0 0 4px;
font-size: 1rem;
}

.resource-item p {
margin: 0;
color: var(--meta-grey);
font-size: 0.88rem;
}

.resource-status {
flex-shrink: 0;
font-size: 0.78rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.03em;
padding: 6px 12px;
border-radius: 20px;
background: var(--navy-tint-10);
color: var(--navy);
white-space: nowrap;
}

.resource-status.available {
background: var(--gold);
color: var(--navy-dark);
}

/* --- Toolkit offer (bundle price, status and interest-capture CTA) --- */
.toolkit-offer {
background: var(--white);
border: 1px solid var(--border-grey);
border-left: 5px solid var(--gold);
border-radius: var(--radius);
padding: 28px 32px;
margin: 24px 0 32px;
display: flex;
align-items: center;
gap: 20px;
flex-wrap: wrap;
box-shadow: var(--shadow-card);
}

.toolkit-offer-price {
color: var(--navy);
font-size: 1.8rem;
font-weight: 700;
}

.toolkit-offer-price span {
display: block;
color: var(--meta-grey);
font-size: 0.82rem;
font-weight: 500;
}

.toolkit-offer .cta-button {
margin-top: 0;
margin-left: auto;
}

/* --- Process flow (numbered step sequence — e.g. Done For You) --- */
.process-flow {
list-style: none;
margin: 32px 0;
padding: 0;
}

.process-step {
display: flex;
gap: 20px;
position: relative;
padding-bottom: 32px;
}

.process-step:last-child { padding-bottom: 0; }

.process-step::before {
content: "";
position: absolute;
left: 19px;
top: 44px;
bottom: 0;
width: 2px;
background: var(--border-grey);
}

.process-step:last-child::before { display: none; }

.process-step-number {
flex-shrink: 0;
width: 40px;
height: 40px;
border-radius: 50%;
background: var(--navy);
color: var(--white);
display: flex;
align-items: center;
justify-content: center;
font-weight: 700;
font-size: 1.05rem;
z-index: 1;
}

.process-step-body { padding-top: 6px; }

.process-step-body h4 {
color: var(--navy);
margin: 0 0 6px;
font-size: 1.05rem;
}

.process-step-body p {
margin: 0;
color: var(--body-text);
font-size: 0.95rem;
}

/* --- Accountants gate (interstitial page) --- */
.gate-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 28px;
margin: 32px 0;
}

.gate-card {
background: var(--white);
border: 2px solid var(--navy);
border-radius: var(--radius);
padding: 32px 28px;
box-shadow: var(--shadow-card);
overflow: hidden;
display: flex;
flex-direction: column;
}

.gate-card h3 {
color: var(--navy);
font-size: 1.15rem;
margin: 0 0 10px;
}

.gate-card p { margin: 0 0 18px; }
.gate-card p:last-child { margin-bottom: 0; }

.gate-card .card-link {
font-weight: 700;
font-size: 0.92rem;
color: var(--white);
display: flex;
align-items: center;
justify-content: center;
text-align: center;
background: var(--navy);
min-height: 76px;
padding: 10px 28px;
margin-top: auto;
margin-right: -28px;
margin-bottom: -32px;
margin-left: -28px;
}

.gate-form {
display: flex;
flex-direction: column;
gap: 12px;
flex: 1;
}

.gate-form input[type="password"] {
flex: none;
padding: 10px 14px;
border: 1px solid var(--border-grey);
border-radius: 6px;
font-family: var(--font-base);
font-size: 0.95rem;
color: var(--body-text);
}

.gate-form input[type="password"]:focus {
outline: 2px solid var(--gold);
border-color: var(--navy);
}

/* Restyled 31 Aug to the agreed "Style C" pill CTA — this is one of the
site's genuine calls to action ("Enter"), so it drops the old flush-bleed
card-footer bar in favour of an inset pill, matching Book Your DFY Call
and Find my answer. */
.gate-submit {
background: var(--gold);
color: var(--navy-dark);
border: none;
outline: 3.45px solid var(--navy);
outline-offset: 4px;
padding: 15px 30px;
border-radius: 999px;
display: flex;
align-items: center;
justify-content: center;
min-height: 0;
margin-top: auto;
font-weight: 700;
font-size: 0.88rem;
letter-spacing: 0.03em;
text-transform: uppercase;
cursor: pointer;
font-family: var(--font-base);
transition: background 0.15s ease, box-shadow 0.15s ease;
}

.gate-submit:hover { background: var(--gold-deep); box-shadow: 0 6px 16px rgba(232, 166, 28, 0.35); }

.gate-error {
color: var(--navy-dark);
font-weight: 700;
font-size: 0.88rem;
margin: 12px 0 0;
}

@media (max-width: 640px) {
.gate-grid { grid-template-columns: 1fr; }
}

/* --- Become an Introducer: application form (1 Sep) — replaces the
"application being finalised" placeholder now the real form is live.
Submits via fetch() to Formspree so the visitor never leaves the page;
success/error states are swapped in inline, matching the gate-form's
existing show/hide pattern rather than a full-page redirect. --- */
.intro-form {
display: flex;
flex-direction: column;
gap: 20px;
max-width: 640px;
margin: 28px 0;
}

.intro-form[hidden] { display: none !important; }

.intro-form .field-row {
display: flex;
gap: 16px;
flex-wrap: wrap;
}

.intro-form .field-row .field { flex: 1 1 240px; }

.intro-form label {
display: block;
font-weight: 700;
font-size: 0.88rem;
color: var(--navy);
margin-bottom: 6px;
}

.intro-form input[type="text"],
.intro-form input[type="email"],
.intro-form input[type="url"],
.intro-form select,
.intro-form textarea {
width: 100%;
padding: 12px 14px;
border: 1px solid var(--border-grey);
border-radius: 8px;
font-family: var(--font-base);
font-size: 0.95rem;
color: var(--body-text);
box-sizing: border-box;
background: var(--white);
}

.intro-form input:focus,
.intro-form select:focus,
.intro-form textarea:focus {
outline: 2px solid var(--gold);
border-color: var(--navy);
}

.intro-form textarea { resize: vertical; min-height: 90px; }

.intro-form .field-hint {
font-size: 0.82rem;
color: var(--meta-grey);
margin-top: 6px;
}

.intro-form .field-warning {
font-size: 0.82rem;
color: var(--navy-dark);
background: var(--navy-tint-10);
border-radius: 6px;
padding: 6px 10px;
margin-top: 6px;
display: none;
}

.intro-form .other-body-field { display: none; margin-top: 12px; }
.intro-form .other-body-field.visible { display: block; }

.intro-form .checkbox-field {
display: flex;
align-items: flex-start;
gap: 10px;
}

.intro-form .checkbox-field input[type="checkbox"] {
margin-top: 4px;
width: 18px;
height: 18px;
flex-shrink: 0;
accent-color: var(--navy);
}

.intro-form .checkbox-field label {
font-weight: 400;
color: var(--body-text);
font-size: 0.92rem;
margin-bottom: 0;
}

.intro-form .form-privacy-note {
font-size: 0.82rem;
color: var(--meta-grey);
margin: 0;
}

button.cta-button {
border: none;
cursor: pointer;
font-family: var(--font-base);
align-self: flex-start;
}

button.cta-button:disabled {
opacity: 0.6;
cursor: not-allowed;
}

.intro-form .form-error-msg {
color: #A6341E;
font-weight: 600;
font-size: 0.88rem;
margin: 0;
display: none;
}

.form-success {
background: var(--navy-tint-10);
border-radius: var(--radius);
padding: 32px;
text-align: center;
color: var(--navy);
}

.form-success h3 { margin: 0 0 8px; }
.form-success p { margin: 0; color: var(--body-text); }

@media (max-width: 640px) {
.intro-form .field-row { flex-direction: column; }
}

/* --- Contact details block (RCA Clients page) --- */
.contact-details {
background: var(--white);
border: 1px solid var(--border-grey);
border-left: 5px solid var(--gold);
border-radius: var(--radius);
padding: 28px 32px;
margin: 24px 0 32px;
}

.contact-details h3 {
color: var(--navy);
margin: 0 0 14px;
font-size: 1.1rem;
}

.contact-details ul { list-style: none; padding: 0; margin: 0; }

.contact-details li {
margin-bottom: 10px;
font-size: 0.95rem;
}

.contact-details li strong { color: var(--navy); }

/* --- Video explainer placeholder (added 9 Aug — avatar video explainers,
3 audiences, per RC Advisors Website — Avatar Video Explainers (8 Aug)) --- */
.video-placeholder {
background: var(--navy-tint-10);
border: 2px dashed var(--border-grey);
border-radius: var(--radius);
padding: 40px 28px;
text-align: center;
margin: 28px 0;
}

.video-placeholder .video-icon {
font-size: 2.1rem;
margin-bottom: 10px;
}

.video-placeholder h4 {
color: var(--navy);
margin: 0 0 6px;
font-size: 1.02rem;
}

.video-placeholder p {
color: var(--meta-grey);
font-size: 0.88rem;
margin: 0;
}

/* --- Real video embeds (Cloudflare Stream), replacing the coming-soon
placeholders above wherever a finished video is live — added 31 Aug. */
.video-embed {
position: relative;
width: 100%;
padding-top: 56.25%;
border-radius: var(--radius);
overflow: hidden;
margin: 28px 0 12px;
box-shadow: var(--shadow-card);
background: var(--navy-dark);
}

.video-embed iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border: none;
}

.video-embed-caption {
margin: 0 0 28px;
color: var(--meta-grey);
font-size: 0.88rem;
text-align: center;
}

/* Book Your DFY Call CTA sits directly under each video's caption (added
1 Sep) — center it to stay visually anchored under the centered video. */
.video-embed-caption + p {
text-align: center;
}

/* Secondary/echoed video block (e.g. the Done For You video repeated on
Existing Trustees and Accountants Only, per the 30 Aug placement decision). */
.video-secondary {
margin: 44px 0 4px;
padding-top: 32px;
border-top: 1px solid var(--border-grey);
}

.video-secondary h3 {
color: var(--navy);
font-size: 1.15rem;
margin: 0 0 14px;
}

/* --- CTA button (added 9 Aug — Done For You booking CTA; restyled 31 Aug to
the agreed "Style C" pill treatment — see RCA CTA Styles artifact) --- */
.cta-button {
display: inline-block;
background: var(--gold);
color: var(--navy-dark);
font-weight: 700;
font-size: 0.92rem;
letter-spacing: 0.03em;
text-transform: uppercase;
padding: 15px 34px;
border-radius: 999px;
margin-top: 12px;
outline: 3.45px solid var(--navy);
outline-offset: 4px;
transition: background 0.15s ease, box-shadow 0.15s ease, outline-color 0.15s ease;
}

.cta-button:hover {
background: var(--gold-deep);
color: var(--navy-dark);
box-shadow: 0 6px 16px rgba(232, 166, 28, 0.35);
}

/* the ring flips white wherever a CTA sits on the navy hero */
.hero .cta-button { outline-color: var(--white); }

/* --- Owl illustrations (recurring site-wide theme, confirmed 9 Aug —
3 pose assets reused across every page: card icon on grid pages, hero
accent on simple sub-pages, sign-holding pose on Home's trustee card) --- */
.card-owl {
width: 72.6px;
height: 72.6px;
object-fit: contain;
margin: 0 0 16px;
filter: drop-shadow(0 2px 4px rgba(36, 51, 74, 0.35));
}

.hero-owl {
width: 92px;
height: auto;
margin: 0 auto 18px;
}

.sign-owl {
position: relative;
width: 190px;
margin: 0 0 18px;
}

.sign-owl img {
width: 100%;
height: auto;
display: block;
}

.sign-owl-text {
position: absolute;
left: 12%;
right: 15%;
top: 51%;
bottom: 23%;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
font-size: 0.68rem;
font-weight: 700;
line-height: 1.2;
color: var(--navy-dark);
}

/* --- Footer --- */
.site-footer {
border-top: 3px solid var(--gold);
padding: 28px 0;
text-align: center;
color: var(--meta-grey);
font-size: 0.82rem;
}

.site-footer p { margin: 0; }

.site-footer .footer-links { margin: 0 0 10px; }

.site-footer .footer-links a {
color: var(--navy);
font-weight: 600;
}

/* --- Responsive --- */
@media (max-width: 1024px) {
.pillar-grid { grid-template-columns: repeat(2, 1fr); }
.services-row { flex-wrap: wrap; }
.services-row .pillar-card { flex: 1 1 calc(50% - 10px); }
}

@media (max-width: 880px) {
.audience-grid, .pillar-grid { grid-template-columns: 1fr; }
.hero h1 { font-size: 2rem; }
.main-nav ul { gap: 8px; }
.main-nav a { font-size: 0.8rem; padding: 8px 12px 11px; }
.explainer { padding: 28px 24px; }
}

@media (max-width: 640px) {
.services-row { flex-direction: column; }
.services-row .pillar-card { flex: 1 1 auto; }
}

@media (max-width: 640px) {
.site-header .wrap { flex-direction: column; gap: 12px; }
.main-nav ul { flex-wrap: wrap; justify-content: center; }
.hero .hero-badges { gap: 12px; justify-content: center; max-width: none; }
.hero .hero-badges li { width: 128px; height: 128px; padding: 14px; }
.hero .hero-badges .badge-head { font-size: 0.8rem; }
.hero .hero-badges .badge-sub { font-size: 0.65rem; margin-top: 4px; }
.trustee-badge-splash { top: -28px; left: -22px; width: 70px; height: 70px; }
.splash-text { font-size: 0.7rem; }
}

/* --- Sitewide "Got a SSAS question?" CTA (7 Sep 2026) — persistent,
secondary-weight entry point injected into every page's <body> via a
Cloudflare Pages Function (functions/_middleware.js), rather than pasted
into each of the 20+ static HTML pages individually, so any future change
to copy, styling or behaviour happens in one place. Reuses the existing
.sign-owl / .sign-owl-text pattern (owl-sign-blank.png + text overlay)
already established on the Home page's "Already Have a SSAS?" card, for
visual consistency with that approved owl illustration system. --- */
.ask-cta {
position: fixed;
right: 20px;
bottom: 20px;
z-index: 500;
filter: drop-shadow(0 6px 16px rgba(36, 51, 74, 0.28));
}

.ask-cta-link {
display: block;
text-decoration: none;
}

.ask-cta-owl {
width: 108px;
margin: 0;
transition: transform 0.15s ease;
}

.ask-cta-link:hover .ask-cta-owl,
.ask-cta-link:focus-visible .ask-cta-owl {
transform: scale(1.05);
}

.ask-cta-text {
font-size: 1.05rem;
line-height: 1.2;
flex-direction: column;
align-items: center;
}

.ask-cta-subtext {
display: block;
font-size: 0.62rem;
font-weight: 600;
margin-top: 4px;
text-decoration: underline;
}

.ask-cta-close {
position: absolute;
top: -8px;
left: -8px;
width: 22px;
height: 22px;
border-radius: 50%;
border: none;
background: var(--navy);
color: var(--white);
font-size: 0.85rem;
line-height: 1;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
z-index: 1;
}

.ask-cta-close:hover { background: var(--navy-dark); }

@media (max-width: 640px) {
.ask-cta { right: 12px; bottom: 12px; }
.ask-cta-owl { width: 84px; }
.ask-cta-text { font-size: 0.88rem; }
.ask-cta-subtext { font-size: 0.55rem; }
}
