/*
Theme Name: PCA Investigators
Theme URI: https://pcainvestigators.com
Description: Block theme for Percival, Carter & Associates Investigators. Probate research and missing-heir investigation site: brand colour and type scale, page patterns, intake form shortcodes, and NAP tokens driven from one place in functions.php. Standalone, with no parent theme.
Author: Maxxus Industries
Version: 1.1.0
Requires at least: 6.6
Tested up to: 7.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: pca-investigators
Tags: block-theme, business, professional, one-column, full-site-editing
*/

/*
 * Block themes are styled primarily through theme.json and the Site Editor.
 * Hand-written CSS lives here only where theme.json cannot express it.
 *
 * TYPOGRAPHY RULE: every font-size in this file references a --pcai-fs-* token.
 * Patterns must not carry inline font sizes. If a component needs a size, give
 * the component a rule here. That is what keeps the scale consistent.
 */

:root {
	--transition: .35s ease;

	/* Colour.
	   Two golds and two muteds: the light variants are for dark grounds, the
	   ink variants for cream and white. #b69d74 on cream is 2.46:1, which fails
	   WCAG AA, so it must never carry text on a light background. */
	--pcai-ink: #1d1c1c;
	--pcai-panel: #1f1e1e;
	--pcai-panel-2: #232121;
	--pcai-line: #383636;
	--pcai-gold: #b69d74;          /* accent + text on dark ground */
	--pcai-gold-dark: #9c8456;     /* hover */
	--pcai-gold-ink: #7a6134;      /* accent text on cream/white, 6.1:1 */
	--pcai-text: #c9c2b4;          /* body on dark */
	--pcai-muted: #9c968a;         /* secondary on dark, 5.6:1 */
	--pcai-muted-ink: #5f5b52;     /* secondary on cream/white, 6.4:1 */
	--pcai-body-ink: #3a3833;      /* body on cream/white */

	/* Type scale.
	   Body sizes are one step up from the first pass: 15px card copy against a
	   40px heading was a 2.7x jump that read as tiny. Headings came down a
	   little and body went up, so the ratio is now about 2.1x. */
	--pcai-fs-2xs: 14px;                        /* captions, notes, fine print */
	--pcai-fs-xs: 15px;                         /* tables, labels, footer links */
	--pcai-fs-sm: 17px;                         /* card copy, lists, secondary UI */
	--pcai-fs-base: 18px;                       /* body */
	--pcai-fs-lead: clamp(19px, 1.5vw, 23px);   /* section intros */
	--pcai-fs-h4: 20px;                         /* card and step headings */
	--pcai-fs-h3: clamp(21px, 1.8vw, 25px);     /* sub-section headings */
	--pcai-fs-h2-sm: clamp(25px, 2.4vw, 30px);  /* compact section headings */
	--pcai-fs-h2: clamp(28px, 3vw, 38px);       /* section headings */
	--pcai-fs-h1: clamp(32px, 4vw, 46px);       /* page headings */
	--pcai-fs-hero: clamp(38px, 5.4vw, 64px);   /* hero heading */
	--pcai-fs-display: 28px;                    /* hero stat numeral */
	--pcai-fs-numeral: 38px;                    /* process step numeral */
	--pcai-fs-price: 46px;                      /* price amount */

	/* Spacing scale. Sections breathe; grids and cards follow the same rhythm. */
	--pcai-sp-section: clamp(80px, 9vw, 130px);   /* major band, top and bottom */
	--pcai-sp-section-sm: clamp(56px, 6vw, 88px); /* CTA / narrow band */
	--pcai-sp-head: clamp(44px, 5vw, 66px);       /* section intro to its content */
	--pcai-sp-gap: clamp(24px, 2.4vw, 34px);      /* grid gap */
	--pcai-sp-card: clamp(28px, 2.6vw, 38px);     /* card padding */
	--pcai-measure: 60ch;                         /* readable line length */
	--pcai-bleed: var(--wp--preset--spacing--30); /* content inset; mobile carousels cancel it */

	/* Leading. Optically, leading tightens as type grows: one ratio for a 64px
	   headline and a 20px card heading makes the first look loose and the
	   second look cramped. Each step below is paired with a size step. */
	--pcai-lh-display: 1.06;  /* hero headline */
	--pcai-lh-h1: 1.12;
	--pcai-lh-h2: 1.18;
	--pcai-lh-h3: 1.28;       /* also .pcai-h2-sm */
	--pcai-lh-h4: 1.35;
	--pcai-lh-snug: 1.4;      /* labels, kickers, caps strips */
	--pcai-lh-copy: 1.6;      /* card copy, captions */
	--pcai-lh-body: 1.65;     /* long-form body */
	--pcai-lh-tight: 1.18;    /* legacy alias */

	/* Letter spacing */
	--pcai-ls-caps: 1.4px;
	--pcai-radius-lg: 30px;
	--pcai-radius-md: 15px;
}

html, body { overflow-x: clip; }
html { scroll-behavior: smooth; }

/* Remove the gap between the sticky header and the main content. */
.wp-site-blocks > main { margin-block-start: 0 !important; }

/* Hide all image captions site-wide. */
figcaption, .wp-element-caption { display: none !important; }

/* ==========================================================================
   Typography primitives
   ========================================================================== */

.pcai-lead { font-size: var(--pcai-fs-lead); line-height: var(--pcai-lh-copy); }

.pcai-kicker {
	font-family: var(--wp--preset--font-family--lora);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: var(--pcai-ls-caps);
	font-size: var(--pcai-fs-2xs);
	line-height: var(--pcai-lh-snug);
	color: var(--pcai-gold);
	margin-bottom: 10px;
}

/* Compact section heading. Replaces the four near-identical one-off clamps
   that used to live inline in the patterns. */
.pcai-h2-sm { font-size: var(--pcai-fs-h2-sm); }

/* Leading per heading level. The parent theme sets a flat 1.15 on
   .wp-block-heading, so these carry both the element and the class to outrank
   it rather than reaching for !important. */
h1.wp-block-heading, .pcai-hero-cover h1 { line-height: var(--pcai-lh-display); }
.pcai-page-head h1.wp-block-heading,
.pcai-section h1.wp-block-heading { line-height: var(--pcai-lh-h1); }
h2.wp-block-heading { line-height: var(--pcai-lh-h2); }
h2.wp-block-heading.pcai-h2-sm { line-height: var(--pcai-lh-h3); }
h3.wp-block-heading { line-height: var(--pcai-lh-h3); }
h4.wp-block-heading { line-height: var(--pcai-lh-h4); }

/* Utilities, for the rare case a component rule is not the right home. */
.pcai-fs-2xs { font-size: var(--pcai-fs-2xs); line-height: var(--pcai-lh-copy); }
.pcai-fs-sm  { font-size: var(--pcai-fs-sm); line-height: var(--pcai-lh-copy); }

.pcai-hero-cover h1 { font-size: var(--pcai-fs-hero); }

/* ==========================================================================
   Header / top bar
   ========================================================================== */

.pcai-topbar { font-size: var(--pcai-fs-2xs); line-height: var(--pcai-lh-snug); }
.pcai-topbar, .pcai-topbar p { color: #2a2416; }
.pcai-topbar p { font-size: var(--pcai-fs-2xs); }
.pcai-topbar a { color: #2a2416; font-weight: 600; text-decoration: none; }
.pcai-topbar a:hover { color: #000; text-decoration: underline; }

.pcai-header { border-bottom: 1px solid var(--pcai-line); }

/* Sticky across the whole page: the part wrapper is the first child of
   .wp-site-blocks, which spans the full page height. */
.wp-site-blocks > .wp-block-template-part:first-child { position: sticky; top: 0; z-index: 40; }

/* The logo file is near-black ink on transparency, which disappears against the
   header. brightness(0) forces every opaque pixel to black, invert(1) flips it
   to white; the transparent gaps carry the internal linework through. One
   source file stays in the media library instead of two colour variants. */
/* The flex item is the .wp-block-site-logo wrapper, not the img inside it, so
   the wrapper is what has to refuse to shrink. Without this the header row
   (nowrap) squeezes the logo to whatever is left over, which came out at 40px
   on a 390px screen rather than any size anyone chose. */
.pcai-header .wp-block-site-logo { flex: 0 0 auto; }
.pcai-header .custom-logo {
	width: 48px;
	height: auto;
	max-width: none;
	filter: brightness(0) invert(1);
	transition: width var(--transition);
}

.pcai-header .wp-block-site-title { font-size: var(--pcai-fs-h3); line-height: var(--pcai-lh-snug); }
.pcai-header .wp-block-site-title a { color: #fff; text-decoration: none; }
.pcai-header .wp-block-navigation,
.pcai-header .wp-block-navigation a { color: #fff; font-size: var(--pcai-fs-base); }
.pcai-header .wp-block-navigation a:hover { color: var(--pcai-gold); }
.pcai-header .is-style-outline .wp-block-button__link { color: #fff; border-color: #fff; background: transparent; }
.pcai-header .is-style-outline .wp-block-button__link:hover { background-color: #fff; color: var(--pcai-ink); }

/* Header actions: the primary is solid gold and larger than the outline Log In,
   so the two are not competing for the same weight. */
.pcai-header-cta { gap: 12px; flex-wrap: nowrap; }
.pcai-header-cta .wp-block-button__link {
	font-size: var(--pcai-fs-xs);
	padding: 14px 26px !important;
}
.pcai-header-cta .is-style-outline .wp-block-button__link {
	padding: 13px 20px !important;
	border-color: rgba(255, 255, 255, .5);
	font-weight: 600;
}

/* --------------------------------------------------------------------------
   Compact on scroll

   assets/header.js puts .pcai-compact on the sticky wrapper past 48px. Every
   size below is driven by that one class, so the two states stay legible as a
   pair. The inline paddings come from the header pattern's block attributes,
   which is why these need !important.
   -------------------------------------------------------------------------- */

.pcai-topbar {
	max-height: 60px;
	overflow: hidden;
	transition: max-height var(--transition), padding var(--transition), opacity var(--transition);
}
.pcai-header { transition: padding var(--transition); }
/* Collapsing the top bar shortens the document above the viewport, so the
   browser shifts scrollY by the same amount to keep the content the reader is
   looking at visually still. That shift is wanted; it is also why header.js
   compacts and expands at two different thresholds rather than one. */
.wp-site-blocks > .wp-block-template-part:first-child { transition: box-shadow var(--transition); }

/* The top bar carries the phone and email, which are repeated in the footer and
   on Contact, so it is the first thing to go. */
.pcai-compact .pcai-topbar {
	max-height: 0;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	opacity: 0;
	visibility: hidden;   /* keeps the collapsed links out of the tab order */
}

.pcai-compact .pcai-header { padding-top: 7px !important; padding-bottom: 0px !important; }
.pcai-compact .pcai-header .custom-logo { width: 34px; }
.pcai-compact .pcai-header .wp-block-site-title { font-size: var(--pcai-fs-base); }
.pcai-compact .pcai-header-cta .wp-block-button__link { padding: 10px 22px !important; }
.pcai-compact .pcai-header-cta .is-style-outline .wp-block-button__link { padding: 9px 17px !important; }

/* Once the page has scrolled the header floats over content, so it needs an
   edge the border alone does not give it. */
.pcai-compact { box-shadow: 0 6px 22px rgba(0, 0, 0, .38); }

@media (prefers-reduced-motion: reduce) {
	.pcai-topbar,
	.pcai-header,
	.pcai-header .custom-logo,
	.wp-site-blocks > .wp-block-template-part:first-child { transition: none; }
}

/* --------------------------------------------------------------------------
   Navigation block

   Ported from the former parent theme, which was the only thing it supplied
   that this site actually used. Measured: with the parent stylesheet blocked,
   16 elements changed on every page and all 16 were here.

   The first rule is the important one. WordPress renders .site-logo-title for
   the mobile menu overlay header; without display:none it paints inline on
   desktop as a full-width logo watermark and pushes the header to ~900px tall.
   -------------------------------------------------------------------------- */

@media (min-width: 600px) {
	.site-logo-title { display: none; }

	.wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) .wp-block-navigation__responsive-container-content .wp-block-navigation-item,
	.wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) .wp-block-navigation__responsive-container-content .wp-block-navigation__container,
	.wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) .wp-block-navigation__responsive-container-content .wp-block-page-list {
		align-items: flex-start !important;
	}
}

/* Menu overlay: site identity row across the top. */
.wp-block-navigation__responsive-container.has-modal-open.is-menu-open .site-logo-title {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: .5rem;
	max-width: 100%;
	padding-bottom: 18px;
	padding-inline-end: 52px;
	position: relative;
	border-bottom: 1px solid var(--pcai-line);
}
.wp-block-navigation__responsive-container.has-modal-open.is-menu-open .site-logo-title img {
	max-height: 42px !important;
	height: auto !important;
	width: auto !important;
}
.wp-block-navigation__responsive-container.has-modal-open.is-menu-open .site-logo-title .site-title {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: var(--pcai-fs-h4);
	font-weight: 700;
	line-height: var(--pcai-lh-snug);
	color: #fff;
}

.wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) .wp-block-navigation__responsive-container-content {
	padding-top: 18px;
}
.has-modal-open .wp-block-navigation__responsive-container-close {
	background-color: var(--pcai-panel-2);
	color: #fff;
	padding: .625rem;
	border-radius: 100%;
}
.has-modal-open .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) .wp-block-navigation__responsive-container-content .wp-block-navigation__container {
	gap: 0 !important;
	width: 100%;
}
.has-modal-open .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) .wp-block-navigation__responsive-container-content > ul.wp-block-navigation__container > li.wp-block-navigation-item:not(.wp-block-navigation__submenu-container) {
	border-bottom: 1px solid var(--pcai-line);
	padding: .75rem 0;
	width: 100%;
	max-width: 100%;
}
.has-modal-open .wp-block-navigation__responsive-container:not(.disable-default-overlay) .wp-block-navigation__responsive-dialog ul.wp-block-navigation__container > li:not(.wp-block-navigation__submenu-container) > a.wp-block-navigation-item__content {
	font-size: var(--pcai-fs-h4);
	font-weight: 600;
}

/* The overlay is position:fixed. Any transform, filter, or backdrop-filter on an
   ancestor would make the header its containing block and trap it inside a 94px
   strip. position:sticky alone does not, but this keeps it safe if the header
   ever gains an animation. */
html.has-modal-open header.wp-block-template-part,
html.has-modal-open header.wp-block-template-part :has(.wp-block-navigation__responsive-dialog) {
	backdrop-filter: none !important;
	transform: none !important;
	translate: none !important;
	filter: none !important;
	animation: none !important;
}

/* Mobile header: the CTA pair used to squeeze into one-letter-per-line columns. */
@media (max-width: 781px) {
	.pcai-header-cta { flex-wrap: wrap; gap: 8px; }
	.pcai-header-cta .wp-block-button__link {
		white-space: nowrap;
		padding: 9px 14px !important;
		font-size: var(--pcai-fs-2xs) !important;
	}
	.pcai-header .wp-block-site-title { font-size: var(--pcai-fs-h4) !important; }
	.pcai-header .wp-block-group { column-gap: 10px !important; }
}
@media (max-width: 460px) {
	/* Keep only the primary action beside the logo; Log In lives in the menu. */
	.pcai-header-cta .wp-block-button.is-style-outline { display: none; }
}

/* ==========================================================================
   Layout helpers
   ========================================================================== */

/* Dark sections. theme.json colours headings with the dark ink used for body
   copy on white, which is invisible on these grounds, so flip them here.
   Paragraphs inherit from the container rather than being targeted directly,
   so single-class helpers still win. */
.pcai-on-dark { color: var(--pcai-text); }
.pcai-on-dark h1,
.pcai-on-dark h2,
.pcai-on-dark h3,
.pcai-on-dark h4,
.pcai-on-dark .wp-block-heading,
.pcai-on-dark strong { color: #fff; }
.pcai-on-dark p,
.pcai-on-dark li { color: inherit; }
.pcai-on-dark a:not(.wp-block-button__link) { color: var(--pcai-gold); }
.pcai-on-dark .pcai-kicker { color: var(--pcai-gold); }
.pcai-on-dark .pcai-step-n { color: var(--pcai-gold); }
.pcai-on-dark .pcai-fieldset-head { color: #2a2416; }
.pcai-on-dark .pcai-price-amount { color: #fff; }
.pcai-on-dark .pcai-price-unit,
.pcai-on-dark .pcai-price-note,
.pcai-on-dark .pcai-form-note,
.pcai-on-dark .pcai-disclaimer { color: var(--pcai-muted); }

/* Light grounds (cream, white). The default accent is tuned for dark ground
   and drops to 2.46:1 on cream, so these sections use the ink variants. */
.pcai-on-light { color: var(--pcai-body-ink); }
.pcai-on-light p,
.pcai-on-light li { color: inherit; }
.pcai-on-light .wp-block-heading { color: var(--pcai-ink); }
.pcai-on-light .pcai-kicker { color: var(--pcai-gold-ink); }
.pcai-on-light .pcai-lead { color: var(--pcai-body-ink); }
.pcai-on-light .pcai-disclaimer,
.pcai-on-light .pcai-form-note,
.pcai-on-light .pcai-hint { color: var(--pcai-muted-ink); }
.pcai-on-light a:not(.wp-block-button__link) { color: var(--pcai-gold-ink); }
.pcai-on-light .pcai-step-n { color: var(--pcai-gold-ink); }

/* The form shell stays a dark panel even inside a cream section, so it has to
   re-assert the dark-ground colours or the ink variants land on near-black. */
.pcai-on-light .pcai-form-shell { color: var(--pcai-text); }
.pcai-on-light .pcai-form-shell .wp-block-heading { color: #ffffff; }
.pcai-on-light .pcai-form-shell .pcai-form-note,
.pcai-on-light .pcai-form-shell .pcai-hint { color: var(--pcai-muted); }
.pcai-on-light .pcai-form-shell a:not(.wp-block-button__link) { color: var(--pcai-gold); }

/* Solid gold buttons: dark ink. White on this gold fails contrast.
   The light-on-dark variants are excluded rather than overridden, so their
   own colour rules are not out-specified. */
.wp-block-button:not(.is-style-outline):not(.pcai-btn-ghost-light):not(.pcai-btn-dark) > .wp-block-button__link:not(.has-text-color) { color: #1d1c1c; }
.pcai-btn-ghost-light > .wp-block-button__link,
.pcai-btn-dark > .wp-block-button__link { color: #fff; }
.pcai-btn-ghost-light > .wp-block-button__link:hover { color: var(--pcai-ink); }

.pcai-section { padding-top: var(--pcai-sp-section); padding-bottom: var(--pcai-sp-section); }
.pcai-section-sm { padding-top: var(--pcai-sp-section-sm); padding-bottom: var(--pcai-sp-section-sm); }
.pcai-anchor { scroll-margin-top: 120px; }

/* Inner-page head: full top padding, reduced bottom so it flows into the
   section beneath it. Paired with .pcai-section-end on that next section. */
.pcai-page-head {
	padding-top: var(--pcai-sp-section);
	padding-bottom: clamp(28px, 3vw, 44px);
}
.pcai-section-end { padding-bottom: var(--pcai-sp-section); }

/* Centred section intro: kicker, heading, one-line lead. The wrapper owns the
   gap to the content below, so patterns carry no margin of their own. */
.pcai-section-head { margin-bottom: var(--pcai-sp-head); }
.pcai-section-head > :last-child { margin-bottom: 0; }
.pcai-section-head .wp-block-heading { margin-bottom: 18px; }
.pcai-section-head .pcai-lead,
.pcai-section-head > p:not(.pcai-kicker) {
	max-width: var(--pcai-measure);
	margin-left: auto;
	margin-right: auto;
}

/* Keep body copy to a readable measure wherever it is centred. */
.pcai-measure { max-width: var(--pcai-measure); margin-left: auto; margin-right: auto; }

/* Grid rhythm. Columns inside our sections share one gap value. */
.pcai-section > .wp-block-columns,
.pcai-section-sm > .wp-block-columns,
.pcai-section-end > .wp-block-columns { gap: var(--pcai-sp-gap); }

/* Split band: section head (kicker, heading, lead) in the left column, the
   detail copy and CTAs in the right. Wider gutter than the card grids so the
   two columns read as separate voices. Core stacks them below 782px, where the
   same margins still hold, so no breakpoint override is needed. */
.pcai-section > .wp-block-columns.pcai-split { gap: clamp(36px, 5vw, 76px); }
.pcai-split .pcai-kicker { margin-bottom: 14px; }
.pcai-split h2.wp-block-heading { margin-bottom: 18px; }
.pcai-split .wp-block-column > :first-child { margin-top: 0; }
.pcai-split .wp-block-column > :last-child { margin-bottom: 0; }
.pcai-split .wp-block-buttons + .pcai-disclaimer { margin-top: 24px; }

/* --------------------------------------------------------------------------
   Card carousels (mobile only)

   Below 782px the three- and four-up card grids would stack into a very long
   column: the home page ran to 4841px. Instead they scroll sideways with the
   next card deliberately half-visible. That peek is the affordance, which is
   why there are no arrows or dots to build, and why the cards are 82% wide
   rather than a round 100%.

   Scroll-snap does the work. No carousel library, no JS for the behaviour.
   -------------------------------------------------------------------------- */

@media (max-width: 781px) {
	.wp-block-columns.pcai-carousel {
		flex-wrap: nowrap !important;
		overflow-x: auto;
		overscroll-behavior-x: contain;
		scroll-snap-type: x mandatory;
		scroll-padding-left: var(--pcai-bleed);
		gap: 14px !important;
		/* Cancel the content inset so the peeking card is cut off by the screen
		   edge rather than stopping short of it. */
		margin-left: calc(-1 * var(--pcai-bleed));
		margin-right: calc(-1 * var(--pcai-bleed));
		padding: 2px var(--pcai-bleed) 8px;
		scrollbar-width: none;
		-ms-overflow-style: none;
	}
	.wp-block-columns.pcai-carousel::-webkit-scrollbar { display: none; }

	/* Core stacks columns at this width with `flex-basis: 100% !important`, so
	   beating it needs both the extra class and !important of our own. */
	.wp-block-columns.pcai-carousel:not(.is-not-stacked-on-mobile) > .wp-block-column {
		flex: 0 0 82% !important;
		min-width: 0;
		scroll-snap-align: start;
	}
	/* The last card snaps to the right edge, so the track ends flush. */
	.wp-block-columns.pcai-carousel > .wp-block-column:last-child { scroll-snap-align: end; }

	/* Equal heights keep the peek edge a clean vertical line. */
	.wp-block-columns.pcai-carousel > .wp-block-column > .wp-block-group { height: 100%; }

	/* carousel.js makes the track focusable when it actually scrolls. */
	.pcai-carousel:focus-visible { outline: 2px solid var(--pcai-gold); outline-offset: 3px; }
}

/* ==========================================================================
   Buttons
   ========================================================================== */

.wp-block-button__link,
.frm_style_formidable-style.with_frm_style .frm_submit button { position: relative; overflow: hidden; }
.wp-block-button__link::after,
.frm_style_formidable-style.with_frm_style .frm_submit button:after{
	content: "";
	position: absolute;
	top: 0; left: -150%;
	width: 75%; height: 100%;
	background: linear-gradient(120deg, transparent 0%, rgba(255,255,255,.3) 50%, transparent 100%);
	transform: skewX(-20deg);
	transition: left .7s ease;
	pointer-events: none;
}
.wp-block-button__link:hover::after,
.frm_style_formidable-style.with_frm_style .frm_submit button:hover:after{ left: 150%; }
.wp-block-button__link:hover,
.frm_style_formidable-style.with_frm_style .frm_submit button: hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(29,28,28,.18); }
.wp-element-button { transition: var(--transition) !important; }

.pcai-btn-ghost-light .wp-block-button__link { background-color: transparent; border-color: #fff; }
.pcai-btn-ghost-light .wp-block-button__link:hover { background-color: #fff; border-color: #fff; }
.pcai-btn-light .wp-block-button__link { background-color: #fff; border-color: #fff; color: var(--pcai-ink); }
.pcai-btn-light .wp-block-button__link:hover { background-color: #efe9dd; border-color: #efe9dd; }
.pcai-btn-dark .wp-block-button__link { background-color: var(--pcai-ink); border-color: var(--pcai-ink); }
.pcai-btn-dark .wp-block-button__link:hover { background-color: #000; border-color: #000; }
.wp-block-buttons.pcai-cta-top { margin-top: 24px; }
.wp-block-buttons.pcai-cta-center { justify-content: center; }
/* A CTA closing a band, rather than one attached to the copy above it. */
.wp-block-buttons.pcai-cta-lg { margin-top: var(--pcai-sp-head); }

/* ==========================================================================
   Hero
   ========================================================================== */

.pcai-hero { background: linear-gradient(150deg, #232121 0%, #1a1919 60%, #1d1c1c 100%); border-bottom: 1px solid var(--pcai-line); }
.pcai-hero-content { max-width: 640px; }

/* Image-background Cover hero. The dim overlay is darkened on the text side so
   the headline holds contrast wherever the photo is light. */
/* One flat dim plus one directional gradient. Three stacked darkening layers
   made the photograph read as mud while still not guaranteeing contrast where
   the text actually sits. The gradient does the work on the text side; the
   right side stays light enough for the image to be legible. */
.pcai-hero-cover { border-bottom: 1px solid var(--pcai-line); }
.pcai-hero-cover .wp-block-cover__background { background-color: rgba(20, 19, 19, .34) !important; }
.pcai-hero-cover h1 { color: #fff; }
.pcai-hero-cover p { color: #ece7dd; }
.pcai-hero-cover .pcai-lead { max-width: 34ch; }
/* Brand gold over the photograph measures 3.7:1 at the lightest sampled point,
   which fails AA for 14px text. This lighter gold measures 5.5:1. */
.pcai-hero-cover .pcai-kicker { color: #d9c49b; }
@media (min-width: 782px) {
	.pcai-hero-cover::after {
		content: "";
		position: absolute; inset: 0;
		background: linear-gradient(90deg, rgba(14, 13, 13, .92) 0%, rgba(14, 13, 13, .78) 34%, rgba(14, 13, 13, .18) 68%, rgba(14, 13, 13, 0) 100%);
		pointer-events: none; z-index: 0;
	}
	.pcai-hero-cover > .wp-block-cover__inner-container { position: relative; z-index: 1; }
}


/* Right-hand image card with the overlaid stat badge. */
.pcai-hero-media { position: relative; }
.pcai-hero-media .wp-block-image { margin: 0; }
.pcai-hero-media .wp-block-image img { display: block; width: 100%; box-shadow: 0 24px 60px rgba(0, 0, 0, .42); border-radius: var(--pcai-radius-lg);}
/* Sits flush inside the image as a caption bar. The previous version hung off
   the corner by 22px, which read as arbitrary rather than deliberate. */
.pcai-hero-badge {
	position: absolute;
	bottom: -3rem;
	left: -1rem;
	right: 0;
	padding: 18px 24px;
	border-left: 4px solid var(--pcai-gold);
	background-color: rgba(20, 19, 19, .93);
	max-width: 300px;
}
.pcai-hero-badge p { margin: 0; color: var(--pcai-text); font-size: var(--pcai-fs-2xs); line-height: var(--pcai-lh-snug); }
.pcai-badge-num {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: var(--pcai-fs-display) !important;
	font-weight: 700;
	line-height: 1;
	color: var(--pcai-gold) !important;
	margin-bottom: 5px !important;
}
@media (max-width: 781px) {
	.pcai-hero-media { margin-top: 34px; }
	.pcai-hero-badge { position: static; }
	.pcai-hero-cover .pcai-lead { max-width: none; }
}

/* ==========================================================================
   Trust bar
   ========================================================================== */

.pcai-trustbar {
	background: var(--pcai-panel);
	border-bottom: 1px solid var(--pcai-line);
	padding-top: clamp(28px, 3vw, 40px);
	padding-bottom: clamp(28px, 3vw, 40px);
}
/* Legacy four-column variant, kept so older saved pages keep their styling. */
.pcai-trust-item {
	position: relative;
	padding-left: 24px;
	font-size: var(--pcai-fs-sm);
	line-height: var(--pcai-lh-copy);
}
.pcai-trust-item::before { content: "\2726"; position: absolute; left: 0; color: var(--pcai-gold); }

/* Trust grid: three claims, each with a line of support beneath it. Replaces
   the one-line strip now that every claim explains itself. */
.pcai-trust-grid { gap: 0 !important; }
.pcai-trust-grid > .wp-block-column { padding: 0 clamp(20px, 3vw, 48px); }
.pcai-trust-grid > .wp-block-column:first-child { padding-left: 0; }
.pcai-trust-grid > .wp-block-column:last-child { padding-right: 0; }
.pcai-trust-grid > .wp-block-column + .wp-block-column {
	border-left: 1px solid rgba(182, 157, 116, .4);
}
.pcai-trust-label {
	font-family: var(--wp--preset--font-family--lora);
	font-size: var(--pcai-fs-xs);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 2px;
	line-height: var(--pcai-lh-snug);
	color: #e2dbcc;
	margin: 0 0 8px;
}
.pcai-trust-grid p:not(.pcai-trust-label) {
	margin: 0;
	font-size: var(--pcai-fs-sm);
	line-height: var(--pcai-lh-copy);
	color: var(--pcai-muted);
}
@media (max-width: 781px) {
	.pcai-trust-grid { gap: 22px 0 !important; }
	.pcai-trust-grid > .wp-block-column { padding: 0; border-left: 0 !important; }
}

/* Centred credential strip: three claims divided by gold rules. */
.pcai-trust-strip { gap: 0 clamp(20px, 3.2vw, 48px) !important; }
.pcai-trust-strip p {
	margin: 0;
	font-family: var(--wp--preset--font-family--lora);
	font-size: var(--pcai-fs-xs);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 2px;
	line-height: var(--pcai-lh-snug);
	color: #e2dbcc;
	padding-right: clamp(20px, 3.2vw, 48px);
	border-right: 1px solid rgba(182, 157, 116, .5);
}
.pcai-trust-strip p:last-child { padding-right: 0; border-right: 0; }
@media (max-width: 640px) {
	.pcai-trust-strip { gap: 12px 0 !important; }
	.pcai-trust-strip p {
		padding-right: 0;
		border-right: 0;
		flex-basis: 100%;
		text-align: center;
	}
}

/* ==========================================================================
   Cards
   ========================================================================== */

.pcai-card,
.pcai-card-light {
	padding: var(--pcai-sp-card);
	height: 100%;
	transition: var(--transition);
	border-radius: var(--pcai-radius-lg);
}
.pcai-card { background: var(--pcai-panel); border: 1px solid var(--pcai-line); }
.pcai-card-light { background: #fff; border: 1px solid #e9e9e9; }
.pcai-card:hover,
.pcai-card-light:hover { border-color: var(--pcai-gold); transform: translateY(-4px); }

.pcai-card .wp-block-heading,
.pcai-card-light .wp-block-heading {
	font-size: var(--pcai-fs-h4);
	line-height: var(--pcai-lh-h4);
	margin-bottom: 14px;
}
.pcai-card > :last-child,
.pcai-card-light > :last-child { margin-bottom: 0; }
.pcai-card p,
.pcai-card li,
.pcai-card-light p,
.pcai-card-light li { font-size: var(--pcai-fs-sm); line-height: var(--pcai-lh-copy); }
.pcai-card .wp-block-heading { color: #fff; }
.pcai-card-light .wp-block-heading { color: var(--pcai-ink); }
.pcai-card-light p { color: var(--pcai-body-ink); }
.pcai-card-light .pcai-kicker { color: var(--pcai-gold-ink); }
.pcai-card-rule {
	border-radius: var(--pcai-radius-lg);
	padding: 2.4rem 1.8rem 1.8rem;
	min-height: 300px;
}

/* Legacy aliases kept so older saved pages keep their styling. */
.pcai-pain-card { border: 1px solid #e9e9e9; border-top: 3px solid var(--pcai-gold); }
.pcai-dark-card { background-color: var(--pcai-panel); border: 1px solid var(--pcai-line); height: 100%; transition: var(--transition); }
.pcai-dark-card:hover { border-color: var(--pcai-gold); transform: translateY(-4px); }

/* Rotated diamond icon. */
/* WordPress's constrained layout centres every child with
   "margin-left:auto !important", so left-aligning the icon has to match that
   weight. Without it the icon centres while the copy beneath stays left. */
.pcai-card > .pcai-diamond,
.pcai-card-light > .pcai-diamond {
	margin-left: 0 !important;
	margin-right: auto !important;
}

.pcai-diamond {
	width: 58px; height: 58px;
	margin: 6px 0 26px;
	border: 1px solid var(--pcai-gold);
	transform: rotate(45deg);
	display: flex; align-items: center; justify-content: center;
	border-radius: var(--pcai-radius-md);
}
/* Two classes deep: the card body rules (.pcai-card p / .pcai-card-light p) are
   one class plus one element, so a single-class selector here would lose and
   the numeral would render at body size in body colour, which on the dark
   diamond is invisible. Both card variants must be listed. */
.pcai-diamond > *,
.pcai-card .pcai-diamond > *,
.pcai-card-light .pcai-diamond > * {
	transform: rotate(-45deg);
	margin: 0;
	font-family: var(--wp--preset--font-family--playfair);
	font-size: var(--pcai-fs-h3);
	line-height: 1;
	font-weight: 700;
	color: var(--pcai-gold);
}
.pcai-diamond-center { margin-left: auto; margin-right: auto; }

/* ==========================================================================
   Audience fork
   ========================================================================== */

/* The fork now sits under a section heading rather than standing alone, so its
   wrapper owns the top padding and the fork halves run flush to the next band. */
.pcai-whohelp {
	background: var(--pcai-ink);
	padding-top: var(--pcai-sp-section);
}

.pcai-fork-attorney { background: linear-gradient(135deg, #232121, #1a1919); }
.pcai-fork-heir { background: linear-gradient(135deg, #1f2b24, #1a1919); }
.pcai-fork p { color: #b6ae9f; max-width: 46ch; }

/* Fork columns own their padding here rather than inline in the pattern. */
.pcai-fork > .wp-block-column {
	padding: clamp(52px, 6vw, 84px) clamp(28px, 4vw, 64px);
}
.pcai-fork .wp-block-heading { margin-bottom: 16px; }
@media (min-width: 782px) { .pcai-fork-attorney { border-right: 1px solid var(--pcai-line); } }
@media (max-width: 781px) { .pcai-fork-attorney { border-bottom: 1px solid var(--pcai-line); } }

/* ==========================================================================
   Steps
   ========================================================================== */

.pcai-step { padding: 1.8rem; min-height: 300px; border-radius: var(--pcai-radius-lg); background-color: var(--pcai-body-ink);}
.pcai-step .wp-block-heading { font-size: var(--pcai-fs-h4); line-height: var(--pcai-lh-h4); margin-bottom: 12px; }
.pcai-step p { font-size: var(--pcai-fs-sm); line-height: var(--pcai-lh-copy); margin-bottom: 0; }
/* Same specificity note as .pcai-diamond: must outrank ".pcai-step p". */
.pcai-step .pcai-step-n,
.pcai-step-n {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: var(--pcai-fs-numeral);
	color: var(--pcai-gold);
	font-weight: 700;
	line-height: 1;
	margin-bottom: 8px;
}

/* ==========================================================================
   FAQ (core/details)
   ========================================================================== */

.pcai-faq .wp-block-details {
	border: 1px solid var(--pcai-line);
	background: var(--pcai-panel);
	margin-bottom: 14px;
	padding: 0;
	border-radius: var(--pcai-radius-lg);
}
.pcai-faq .wp-block-details[open] { border-color: var(--pcai-gold); }
.pcai-faq .wp-block-details summary {
	cursor: pointer;
	padding: 1em 54px 1em 24px;
	font-family: var(--wp--preset--font-family--playfair);
	font-size: var(--pcai-fs-h4);
	line-height: var(--pcai-lh-snug);
	color: #fff;
	position: relative;
	font-weight: 500;
	list-style: none;
	outline: none;
}
.pcai-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.pcai-faq .wp-block-details summary::after {
	content: "+";
	position: absolute; right: 24px; top: 0.875em;
	color: var(--pcai-gold); font-size: 25px; line-height: 1;
}
.pcai-faq .wp-block-details[open] summary::after { content: "\2013"; }
.pcai-faq .wp-block-details > :not(summary) { padding: 0 24px; }
.pcai-faq .wp-block-details > :last-child { padding-bottom: 22px; }
.pcai-faq .wp-block-details p { font-size: var(--pcai-fs-base); color: var(--pcai-text); }

/* FAQ on a cream ground. */
.pcai-on-light .wp-block-details { background: #ffffff; border-color: #e4e0d8; }
.pcai-on-light .wp-block-details[open] { border-color: var(--pcai-gold-ink); }
.pcai-on-light .wp-block-details summary { color: var(--pcai-ink); }
.pcai-on-light .wp-block-details summary::after { color: var(--pcai-gold-ink); }
.pcai-on-light .wp-block-details p { color: var(--pcai-body-ink); }

/* ==========================================================================
   Forms
   ========================================================================== */

.pcai-form-shell { background-color: var(--pcai-panel); border: 1px solid var(--pcai-line); padding: 36px; border-radius: var(--pcai-radius-lg); }
.pcai-form-shell .wp-block-heading { color: #fff; }

.pcai-fieldset-head {
	background: var(--pcai-gold);
	color: #2a2416;
	font-family: var(--wp--preset--font-family--playfair);
	font-size: var(--pcai-fs-h4);
	line-height: var(--pcai-lh-snug);
	font-weight: 700;
	padding: 12px 18px;
	margin: 0 0 22px;
}
.pcai-form .pcai-fieldset-head:not(:first-child) { margin-top: 30px; }
.pcai-field { margin-bottom: 20px; }
.pcai-field label {
	display: block;
	font-size: var(--pcai-fs-xs);
	line-height: var(--pcai-lh-snug);
	color: #e9e3d7;
	margin-bottom: 7px;
	font-weight: 600;
}
.pcai-req { color: var(--pcai-gold); }
.pcai-hint { display: block; font-size: var(--pcai-fs-2xs); color: var(--pcai-muted); margin-top: 6px; }
.pcai-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 620px) { .pcai-field-row { grid-template-columns: 1fr; } }

.pcai-form input[type=text],
.pcai-form input[type=email],
.pcai-form input[type=tel],
.pcai-form select,
.pcai-form textarea,
.pcai-form-shell input[type=text],
.pcai-form-shell input[type=email],
.pcai-form-shell input[type=tel],
.pcai-form-shell input[type=number],
.pcai-form-shell select,
.pcai-form-shell textarea {
	width: 100%;
	padding: 13px 14px;
	background-color: #161515 !important;
	border: 1px solid #3a3838 !important;
	color: #fff !important;
	font-family: var(--wp--preset--font-family--lora);
	font-size: 16px; /* 16px minimum stops iOS Safari zooming on focus. */
	transition: border-color var(--transition);
}
.pcai-form textarea { min-height: 130px; resize: vertical; }
.pcai-form input:focus, .pcai-form select:focus, .pcai-form textarea:focus { outline: none; border-color: var(--pcai-gold) !important; }

.pcai-btn {
	display: inline-block;
	padding: 15px 30px;
	border: 2px solid var(--pcai-gold);
	background: var(--pcai-gold);
	color: #1d1c1c;
	font-family: var(--wp--preset--font-family--lora);
	font-weight: 700;
	font-size: var(--pcai-fs-sm);
	text-transform: uppercase;
	letter-spacing: .6px;
	cursor: pointer;
	transition: var(--transition);
	text-align: center;
}
.pcai-btn:hover { background: var(--pcai-gold-dark); border-color: var(--pcai-gold-dark); color: #fff; }
.pcai-btn-block { display: block; width: 100%; }
.pcai-form-note {
	font-size: var(--pcai-fs-2xs);
	line-height: var(--pcai-lh-copy);
	color: var(--pcai-muted);
	border-top: 1px solid var(--pcai-line);
	padding-top: 16px;
	margin-top: 18px;
}

/* Formidable, when handed off, inherits the shell. */
.pcai-form-shell .frm_forms .frm_primary_label { color: #e9e3d7 !important; font-size: var(--pcai-fs-xs) !important; }
.pcai-form-shell .frm_forms .frm_submit button { background: var(--pcai-gold); color: #1d1c1c; border: 2px solid var(--pcai-gold); }

/* ==========================================================================
   Choice cards (Get Started)
   ========================================================================== */

.pcai-choice-card { height: 100%; background-color: var(--pcai-panel-2); border: 1px solid var(--pcai-line); transition: var(--transition); border-radius: var(--pcai-radius-lg); padding: 1.8rem; }
.pcai-choice-card:hover { border-color: var(--pcai-gold); transform: translateY(-4px); }
.pcai-choice-card p { font-size: var(--pcai-fs-sm); line-height: var(--pcai-lh-copy); }
.pcai-check-list { list-style: none; padding: 0; margin: 0 0 24px; }
.pcai-check-list li {
	padding: 7px 0 7px 24px;
	position: relative;
	font-size: var(--pcai-fs-sm);
	line-height: var(--pcai-lh-copy);
}
.pcai-check-list li::before { content: "\2713"; position: absolute; left: 0; color: var(--pcai-gold); font-weight: 700; }

/* ==========================================================================
   Pricing
   ========================================================================== */

.pcai-price-card { background: var(--pcai-panel); border: 1px solid var(--pcai-line); padding: 34px; height: 100%; border-radius: var(--pcai-radius-lg); }
.pcai-price-card.is-featured { border-color: var(--pcai-gold); }
.pcai-price-card .wp-block-heading { font-size: var(--pcai-fs-h3); line-height: var(--pcai-lh-h3); }
.pcai-price-card > p { font-size: var(--pcai-fs-sm); }
.pcai-price-amount {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: var(--pcai-fs-price) !important;
	font-weight: 700;
	color: #fff;
	line-height: 1;
	margin: 16px 0 4px;
}
.pcai-price-amount sup { font-size: .48em; top: -.55em; }
.pcai-price-unit { font-size: var(--pcai-fs-xs) !important; color: var(--pcai-muted); margin-top: -4px; }
.pcai-price-note {
	font-size: var(--pcai-fs-2xs) !important;
	line-height: var(--pcai-lh-copy);
	color: var(--pcai-muted);
	border-top: 1px solid var(--pcai-line);
	padding-top: 14px;
	margin-top: 18px;
}
.pcai-feature-checks { list-style: none; padding: 0; margin: 18px 0 24px; }
.pcai-feature-checks li {
	padding: 7px 0 7px 26px;
	position: relative;
	font-size: var(--pcai-fs-sm);
	line-height: var(--pcai-lh-copy);
	color: var(--pcai-text);
}
.pcai-feature-checks li::before { content: "\2713"; position: absolute; left: 0; color: var(--pcai-gold); font-weight: 700; }

.pcai-compare table { width: 100%; border-collapse: collapse; }
.pcai-compare td { padding: 14px 16px; border-bottom: 1px solid #e0dcd4; font-size: var(--pcai-fs-sm); }
.pcai-compare td:first-child { color: var(--pcai-ink); font-weight: 600; }
.pcai-compare .yes { color: #2f6f4f; font-weight: 600; }
.pcai-compare .no { color: #8a2b22; font-weight: 600; }

/* ==========================================================================
   Sample report mock
   ========================================================================== */

.pcai-report-mock {
	background: #fff; color: #222;
	padding: 40px; border: 1px solid #d9d4ca;
	position: relative; overflow: hidden;
	font-size: var(--pcai-fs-xs); line-height: var(--pcai-lh-copy);
}
.pcai-report-mock::after {
	content: "SAMPLE";
	position: absolute; top: 42%; left: 50%;
	transform: translate(-50%, -50%) rotate(-24deg);
	font-family: var(--wp--preset--font-family--playfair);
	font-size: clamp(70px, 13vw, 130px);
	color: rgba(182,157,116,.16);
	font-weight: 700; letter-spacing: 6px; pointer-events: none;
}
.pcai-report-mock h4 { font-family: var(--wp--preset--font-family--playfair); color: var(--pcai-ink); margin: 26px 0 8px; font-size: var(--pcai-fs-base); }
.pcai-report-mock p { color: #333; font-size: var(--pcai-fs-xs); }
.pcai-report-mock table { width: 100%; border-collapse: collapse; margin-top: 6px; }
.pcai-report-mock th, .pcai-report-mock td { border: 1px solid #e0dcd4; padding: 9px 11px; text-align: left; font-size: var(--pcai-fs-2xs); }
.pcai-report-mock th { background: #f6f3ee; font-family: var(--wp--preset--font-family--playfair); }
.pcai-report-mock .pcai-rm-head { border-bottom: 3px solid var(--pcai-gold); padding-bottom: 16px; margin-bottom: 20px; }
.pcai-report-mock .pcai-rm-title { font-family: var(--wp--preset--font-family--playfair); font-size: var(--pcai-fs-h3); color: var(--pcai-ink); margin: 0; }
.pcai-report-mock .pcai-rm-meta { font-size: var(--pcai-fs-2xs); color: #666; margin: 6px 0 0; }
.pcai-report-mock .pcai-rm-note { font-size: var(--pcai-fs-2xs); color: #666; margin-top: 10px; }
.pcai-report-mock .pcai-rm-hash {
	background: #f6f3ee; border-left: 3px solid var(--pcai-gold);
	padding: 13px 15px; font-family: ui-monospace, Consolas, monospace;
	font-size: var(--pcai-fs-2xs); word-break: break-all; color: #333;
}

.pcai-annot { display: flex; gap: 14px; align-items: flex-start; padding: 14px 0; border-bottom: 1px solid var(--pcai-line); }
.pcai-annot:last-child { border-bottom: 0; }
.pcai-annot .pcai-annot-n {
	flex: 0 0 30px; height: 30px;
	background: var(--pcai-gold); color: #1d1c1c;
	font-weight: 700; display: flex; align-items: center; justify-content: center;
	font-size: var(--pcai-fs-xs);
}
.pcai-annot p { margin: 0; font-size: var(--pcai-fs-sm); line-height: var(--pcai-lh-copy); }

/* ==========================================================================
   Contact
   ========================================================================== */

/* Unlike the card components above, these stack: five share one
   .wp-block-column. That column is a flex item stretched to the height of the
   taller form column beside it, so `height: 100%` made every card claim that
   full height (1156px each) and the stack overflowed past the footer. These
   size to their content; do not add a height here. */
.pcai-contact-method { border: 1px solid var(--pcai-line); background: var(--pcai-panel); padding: 24px; border-radius: var(--pcai-radius-lg); }
.pcai-contact-method .wp-block-heading { font-size: var(--pcai-fs-h4); line-height: var(--pcai-lh-h4); margin-bottom: 6px; color: #fff; }
.pcai-contact-method p,
.pcai-contact-method address { font-size: var(--pcai-fs-sm); line-height: var(--pcai-lh-copy); }
.pcai-contact-method address { font-style: normal; color: var(--pcai-text); }
.pcai-contact-note { font-size: var(--pcai-fs-2xs); color: var(--pcai-muted); }
.pcai-contact-big {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: var(--pcai-fs-h3) !important;
	line-height: var(--pcai-lh-snug);
	color: var(--pcai-gold);
	word-break: break-word;
}
.pcai-contact-big a { color: var(--pcai-gold); text-decoration: none; }
.pcai-contact-big a:hover { text-decoration: underline; }

/* Standby panel shown where an intake form is not yet wired to Formidable.
   Deliberately looks like a contact card and not like a form, so nobody starts
   typing into something that cannot receive it. */
.pcai-form-standby { text-align: center; padding: 8px 0 4px; }
.pcai-standby-line {
	font-size: var(--pcai-fs-sm);
	line-height: var(--pcai-lh-copy);
	color: var(--pcai-text);
	max-width: 42ch;
	margin: 0 auto 22px;
}
.pcai-standby-contact {
	font-family: var(--wp--preset--font-family--playfair);
	font-size: var(--pcai-fs-h3);
	line-height: var(--pcai-lh-snug);
	margin: 0 0 6px;
	word-break: break-word;
}
.pcai-standby-contact a { color: var(--pcai-gold); text-decoration: none; }
.pcai-standby-contact a:hover { text-decoration: underline; }
.pcai-standby-note {
	font-size: var(--pcai-fs-2xs);
	line-height: var(--pcai-lh-copy);
	color: var(--pcai-muted);
	max-width: 46ch;
	margin: 18px auto 0;
}

/* ==========================================================================
   Placeholder marker: impossible to publish by accident
   ========================================================================== */

.pcai-todo {
	display: inline-block;
	border: 2px dashed #c0392b;
	color: #ff8a7a;
	background: rgba(192,57,43,.12);
	padding: 2px 8px;
	font-family: ui-monospace, Consolas, monospace;
	font-size: var(--pcai-fs-2xs);
	letter-spacing: .5px;
}

/* ==========================================================================
   Footer
   ========================================================================== */

.pcai-footer .wp-block-site-title { font-size: var(--pcai-fs-h4); line-height: var(--pcai-lh-snug); }
.pcai-footer a { text-decoration: none; }
.pcai-footer a:hover { color: var(--pcai-gold); }
.pcai-footer p,
.pcai-footer address { font-size: var(--pcai-fs-xs); line-height: 2.1; }
.pcai-footer .pcai-footer-blurb { line-height: var(--pcai-lh-copy); color: var(--pcai-muted); }
.pcai-footer address { font-style: normal; line-height: 1.9; }
.pcai-footer .wp-block-heading {
	font-family: var(--wp--preset--font-family--lora);
	font-size: var(--pcai-fs-xs) !important;
	text-transform: uppercase;
	letter-spacing: 1.2px;
	color: var(--pcai-gold) !important;
	margin-bottom: 14px;
}
.pcai-disclaimer { font-size: var(--pcai-fs-2xs); line-height: var(--pcai-lh-copy); color: var(--pcai-muted); }

/* ==========================================================================
   Accessibility
   ========================================================================== */

.pcai-header a:focus-visible,
.pcai-footer a:focus-visible,
.pcai-form :focus-visible,
.wp-block-button__link:focus-visible {
	outline: 2px solid var(--pcai-gold);
	outline-offset: 3px;
}

/* WordPress's skip link renders gold-on-white (2.6:1) from the link element
   colour. Invert it so it is legible when focused. */
.skip-link.screen-reader-text:focus {
	background-color: var(--pcai-ink) !important;
	color: #ffffff !important;
	font-size: var(--pcai-fs-xs) !important;
	font-family: var(--wp--preset--font-family--lora) !important;
	padding: 14px 22px !important;
}

.wp-block-buttons .wp-block-button__link {
	border-radius: 30px;
	padding: 10px 2rem;
}
.frm-show-form {
	max-width: 1040px;
    margin-left: auto !important;
    margin-right: auto !important;
}
.with_frm_style .frm-show-form .frm_section_heading h3[class*="frm_pos_"] {
	margin: 2rem 0 1rem;
	border-radius: var(--pcai-radius-md);
}
.with_frm_style input[type=text],
.with_frm_style input[type=number],
.with_frm_style input[type=email],
.with_frm_style input[type=tel],
.with_frm_style textarea,
.with_frm_style select {
	border-radius: var(--pcai-radius-md);
}
.frm_style_formidable-style.with_frm_style .frm_submit button {
	border-radius: 30px;
    padding: 10px 2rem !important;
	color: #1d1c1c !important;
	font-size: 16px;
	text-transform: uppercase;
	font-family: inherit !important;
    font-style: inherit;
    font-weight: 700 !important;
    letter-spacing: 0.6px;
    line-height: inherit;
}
.with_frm_style .frm_form_fields > fieldset {
	background-color: transparent
}
.frm_style_formidable-style.with_frm_style .ui-datepicker-title > select,
.with_frm_style select option,
.frm_style_formidable-style.with_frm_style td:not(.ui-datepicker-current-day) .ui-state-hover{
	color: var(--fieldset-bg-color);
}
.with_frm_style input[type=text]:autofill {
   color: #fff !important;
	-webkit-text-fill-color: #fff !important;
}
input:-webkit-autofill {
   color: #fff !important;
	-webkit-text-fill-color: #fff !important;
}
.frm_forms  {
	max-width: 1040px;
    margin-left: auto !important;
    margin-right: auto !important;
}
.page-template-default .entry-content {
	padding: 0 !important;
}
.page-template-default .wp-container-core-post-content-is-layout-53c98f5c > * + * {
	margin: 0;
}
.page-template-default main h2{
	margin: 1em auto 0.5em !important;
}
.page-template-default main h3{
	margin: 1em auto 0.5em !important;
}