.elementor-kit-1868{--e-global-color-primary:#202D40;--e-global-color-secondary:#54595F;--e-global-color-text:#202D40;--e-global-color-accent:#CC7D51;--e-global-color-copper_text:#A65F38;--e-global-color-copper_light:#D9946C;--e-global-color-paper:#F7F8F8;--e-global-color-white:#FFFFFF;--e-global-color-rule:#DDE1E5;--e-global-color-navy_deep:#172131;--e-global-typography-primary-font-family:"Astro";--e-global-typography-primary-font-size:44px;--e-global-typography-primary-font-weight:500;--e-global-typography-primary-line-height:1.15em;--e-global-typography-secondary-font-family:"Astro";--e-global-typography-secondary-font-size:22px;--e-global-typography-secondary-font-weight:300;--e-global-typography-secondary-line-height:1.5em;--e-global-typography-text-font-family:"Astro";--e-global-typography-text-font-size:17px;--e-global-typography-text-font-weight:500;--e-global-typography-text-line-height:1.65em;--e-global-typography-accent-font-family:"Astro";--e-global-typography-accent-font-size:18px;--e-global-typography-accent-font-weight:500;--e-global-typography-accent-text-transform:uppercase;--e-global-typography-accent-line-height:1.4em;--e-global-typography-accent-letter-spacing:2.4px;--e-global-typography-display-font-family:"Astro";--e-global-typography-display-font-size:64px;--e-global-typography-display-font-weight:500;--e-global-typography-display-line-height:1.08em;--e-global-typography-display-letter-spacing:-0.5px;--e-global-typography-card_title-font-family:"Astro";--e-global-typography-card_title-font-size:24px;--e-global-typography-card_title-font-weight:500;--e-global-typography-card_title-line-height:1.3em;--e-global-typography-meta-font-family:"Astro";--e-global-typography-meta-font-size:14px;--e-global-typography-meta-font-weight:500;--e-global-typography-meta-line-height:1.4em;background-color:#FFFFFF;color:#202D40;font-family:"Astro", Sans-serif;font-size:17px;font-weight:500;line-height:1.65em;}.elementor-kit-1868 button,.elementor-kit-1868 input[type="button"],.elementor-kit-1868 input[type="submit"],.elementor-kit-1868 .elementor-button{background-color:#202D40;font-family:"Astro", Sans-serif;font-size:14px;font-weight:500;text-transform:uppercase;line-height:1.2em;letter-spacing:1.5px;color:#FFFFFF;border-style:solid;border-width:1px 1px 1px 1px;border-color:#202D40;border-radius:0px 0px 0px 0px;padding:18px 32px 18px 32px;}.elementor-kit-1868 button:hover,.elementor-kit-1868 button:focus,.elementor-kit-1868 input[type="button"]:hover,.elementor-kit-1868 input[type="button"]:focus,.elementor-kit-1868 input[type="submit"]:hover,.elementor-kit-1868 input[type="submit"]:focus,.elementor-kit-1868 .elementor-button:hover,.elementor-kit-1868 .elementor-button:focus{background-color:#A65F38;color:#FFFFFF;}.elementor-kit-1868 e-page-transition{background-color:#FFBC7D;}.elementor-kit-1868 p{margin-block-end:20px;}.elementor-kit-1868 a{color:#A65F38;}.elementor-kit-1868 a:hover{color:#202D40;}.elementor-kit-1868 h1{color:#202D40;font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );line-height:var( --e-global-typography-primary-line-height );}.elementor-kit-1868 h2{color:#202D40;font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );line-height:var( --e-global-typography-primary-line-height );}.elementor-kit-1868 h3{color:#202D40;font-family:"Astro", Sans-serif;font-size:32px;font-weight:500;line-height:1.2em;}.elementor-kit-1868 h4{color:#202D40;font-family:"Astro", Sans-serif;font-size:24px;font-weight:500;line-height:1.3em;}.elementor-kit-1868 h5{color:#202D40;font-family:"Astro", Sans-serif;font-size:18px;font-weight:500;text-transform:uppercase;line-height:1.4em;letter-spacing:1px;}.elementor-kit-1868 h6{color:#202D40;font-family:"Astro", Sans-serif;font-size:13px;font-weight:500;text-transform:uppercase;line-height:1.4em;letter-spacing:2px;}.elementor-kit-1868 label{font-size:14px;font-weight:500;}.elementor-kit-1868 input:not([type="button"]):not([type="submit"]),.elementor-kit-1868 textarea,.elementor-kit-1868 .elementor-field-textual{font-family:"Astro", Sans-serif;font-size:16px;color:#202D40;background-color:#FFFFFF;border-style:solid;border-width:1px 1px 1px 1px;border-color:#8A9099;border-radius:0px 0px 0px 0px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1280px;}.e-con{--container-max-width:1280px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-kit-1868{--e-global-typography-primary-font-size:36px;--e-global-typography-secondary-font-size:20px;--e-global-typography-text-font-size:17px;--e-global-typography-accent-font-size:18px;--e-global-typography-display-font-size:48px;--e-global-typography-card_title-font-size:22px;--e-global-typography-meta-font-size:14px;}.elementor-kit-1868 h1{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );}.elementor-kit-1868 h2{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );}.elementor-kit-1868 h3{font-size:28px;}.elementor-kit-1868 h4{font-size:22px;}.elementor-kit-1868 h5{font-size:17px;}.elementor-kit-1868 h6{font-size:13px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-1868{--e-global-typography-primary-font-size:30px;--e-global-typography-secondary-font-size:19px;--e-global-typography-text-font-size:16px;--e-global-typography-accent-font-size:16px;--e-global-typography-display-font-size:36px;--e-global-typography-card_title-font-size:21px;--e-global-typography-meta-font-size:13px;font-size:16px;}.elementor-kit-1868 h1{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );}.elementor-kit-1868 h2{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );}.elementor-kit-1868 h3{font-size:24px;}.elementor-kit-1868 h4{font-size:21px;}.elementor-kit-1868 h5{font-size:16px;}.elementor-kit-1868 h6{font-size:12px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* ---- 00-global.css ---- */
/* Prospera global styles (Site Settings > Custom CSS). Lead-owned: request changes in .gauntlet/GAPS.md. */
:root {
	--pr-navy: #202D40;
	--pr-navy-deep: #172131;
	--pr-slate: #54595F;
	--pr-copper: #CC7D51;
	--pr-copper-text: #A65F38;
	--pr-copper-light: #D9946C;
	--pr-paper: #F7F8F8;
	--pr-rule: #DDE1E5;
	/* Spacing scale. Use these (custom unit) for section and block rhythm. */
	/* Tightened in the Oct 22 client revision ("feels like too much white space"). */
	--pr-section-y: clamp(64px, 7vw, 104px);
	--pr-section-y-sm: clamp(44px, 5vw, 72px);
	--pr-gutter: clamp(20px, 5vw, 64px);
	--pr-gap-lg: clamp(40px, 5vw, 72px);
	--pr-gap: clamp(24px, 3vw, 40px);
	--pr-measure: 42rem;
	--pr-header-h: 88px;
}

body {
	/* Astro Web's kerning table closes the space after a period ("collaborators.Complete").
	   Kerning off restores normal sentence spacing everywhere. */
	font-kerning: none;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

img { height: auto; }

/* Hello gives every <p> a bottom margin; headings set to the p tag (eyebrows, meta lines) shouldn't inherit it. */
p.elementor-heading-title { margin: 0; }
/* Text widgets: no trailing paragraph margin, so container gaps alone set the rhythm. */
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* Site rhythm (one rule per element, every page):
   - inner-page hero: top padding var(--pr-section-y-sm); eyebrow -> H1 24px; H1 -> lead var(--pr-gap); lead = kit "Secondary" (22/20/19, 300, navy);
   - text columns: 24px between eyebrow, heading, lead and body; body -> action var(--pr-gap) (add "pr-action" to the action widget);
   - item grids (principles, pillars): 16px number -> title -> text, card-title type (24/22/21);
   - body copy navy, kit weight, 17/1.65 (16 mobile); slate only for meta and help text. */
.elementor .e-con > .elementor-widget.pr-action { margin-top: calc(var(--pr-gap) - 24px); }

/* Section shell: apply class "pr-section" to a top-level container. */
.pr-section {
	padding-block: var(--pr-section-y);
	padding-inline: var(--pr-gutter);
}
.pr-section--tight { padding-block: var(--pr-section-y-sm); }
.pr-paper { background-color: var(--pr-paper); }
.pr-navy { background-color: var(--pr-navy); color: #fff; }
.pr-navy :is(h1, h2, h3, h4, h5, p, li) { color: #fff; }

/* Eyebrow label: caps copper section label (copper light on navy). Sized up from 13px to 18px in the
   client revision (Oct 22: "make larger", on seven labels); the category label inside cards (pr-card-kicker) stays small. */
.pr-eyebrow .elementor-heading-title,
.pr-eyebrow {
	font-size: 18px;
	font-weight: 500;
	letter-spacing: 2.4px;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--pr-copper-text);
}
@media (max-width: 767px) {
	.pr-eyebrow .elementor-heading-title,
	.pr-eyebrow { font-size: 16px; letter-spacing: 2px; }
}
.pr-card-kicker .elementor-heading-title,
.pr-card-kicker { font-size: 13px; letter-spacing: 2px; }
.pr-navy .pr-eyebrow .elementor-heading-title { color: var(--pr-copper-light); }

/* Comfortable reading width for long copy. Specific enough to beat Elementor's
   `.e-con > .elementor-widget { max-width: 100% }` for widgets placed directly in a container. */
.pr-measure, .pr-measure .elementor-widget-container,
.elementor .e-con > .elementor-widget.pr-measure { max-width: var(--pr-measure); }

/* Text link with arrow (e.g. "Explore Our Approach →"). Apply to a Button widget.
   Kit button type (14px, 500, 1.5px tracking, caps); an invisible hit area makes the tap target 44px tall. */
.pr-textlink .elementor-button {
	position: relative;
	background: transparent !important;
	border: 0 !important;
	padding: 4px 0 !important;
	color: var(--pr-navy) !important;
	border-bottom: 1px solid var(--pr-copper) !important;
	border-radius: 0;
}
.pr-textlink .elementor-button::after { content: ""; position: absolute; inset: -9px 0; }
.pr-textlink .elementor-button:hover,
.pr-textlink .elementor-button:focus-visible { color: var(--pr-copper-text) !important; border-bottom-color: var(--pr-navy) !important; }
.pr-navy .pr-textlink .elementor-button { color: #fff !important; border-bottom-color: var(--pr-copper-light) !important; }

/* Outline button on dark backgrounds. Apply to a Button widget. */
.pr-btn-ghost .elementor-button { background: transparent; border: 1px solid #fff; color: #fff; }
.pr-btn-ghost .elementor-button:hover,
.pr-btn-ghost .elementor-button:focus-visible { background: #fff; color: var(--pr-navy); border-color: #fff; }

/* Visible keyboard focus everywhere. */
:focus-visible { outline: 2px solid var(--pr-copper-text); outline-offset: 3px; }
.pr-navy :focus-visible,
.elementor-location-header :focus-visible,
.elementor-location-footer :focus-visible { outline-color: var(--pr-copper-light); }
.elementor-button { transition: background-color .25s ease, color .25s ease, border-color .25s ease; }

/* Skip link (Hello). */
.skip-link.screen-reader-text:focus {
	background: var(--pr-navy);
	color: #fff;
	padding: 12px 20px;
	z-index: 100000;
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* A heading inside a text widget that should keep the widget's own type (e.g. a statement or tagline
   that is semantically a subheading). Apply "pr-heading-inherit" to the text widget. */
.pr-heading-inherit :is(h2, h3, h4) { font: inherit; color: inherit; letter-spacing: inherit; text-transform: inherit; margin: 0; }

/* ---- about.css ---- */
/* About page (tools/pages/about.php). Classes prefixed pr-about-. */

/* Rail + main grid: rail is a fixed 30% column, main takes the rest (rows only, >=768). */
.elementor .e-con.pr-about-rail { --flex-shrink: 0; flex-shrink: 0; }
@media (min-width: 768px) {
	.elementor .e-con.pr-about-main { --flex-grow: 1; --flex-shrink: 1; --flex-basis: 0%; flex: 1 1 0%; min-width: 0; }
}

/* Our Story statement: a little wider than the body measure. */
.elementor .e-con > .elementor-widget.pr-about-statement--wide { max-width: 48rem; }

/* Who We Are video (Oct 26): the loop's own 588 x 640 frame, near its native width; pause button bottom-right. */
.elementor .e-con.pr-about-hero-media { --flex-shrink: 0; flex-shrink: 0; max-width: 480px; position: relative; }
.elementor .pr-about-hero-video .elementor-wrapper { --video-aspect-ratio: 588 / 640 !important; aspect-ratio: 588 / 640 !important; } /* Elementor sets 1:1 on the wrapper */
.pr-about-hero-video .elementor-wrapper video { display: block; width: 100%; height: 100%; object-fit: cover; background: #202D40; }
.elementor .e-con > .elementor-widget.pr-about-video-control { position: absolute; right: 16px; bottom: 16px; z-index: 2; width: auto; margin: 0; }
.pr-about-hero-media .pr-video-toggle, .pr-about-hero-media .pr-video-toggle:active { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 1px solid rgba(255,255,255,.7); border-radius: 50%; background: rgba(23,33,49,.45); color: #fff; font-size: 0; line-height: 1; box-shadow: none; cursor: pointer; transition: background-color .2s ease, border-color .2s ease; }
.pr-about-hero-media .pr-video-toggle:hover, .pr-about-hero-media .pr-video-toggle:focus, .pr-about-hero-media .pr-video-toggle:focus-visible { background: rgba(23,33,49,.75); border-color: #fff; }
.pr-about-hero-media .pr-video-toggle:focus-visible { outline: 2px solid var(--pr-copper-text); outline-offset: 3px; }
@media (max-width: 767px) { .elementor .e-con.pr-about-hero-media { max-width: 420px; } }

/* Leadership: anchor clears the sticky header; portrait 4:5, square on phones. */
.pr-about-leadership { scroll-margin-top: var(--pr-header-h); }
.elementor .e-con.pr-about-portrait-col { max-width: 420px; }
.pr-about-portrait img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 25%; }

/* Below 900px the portrait column gets too narrow beside the bio: stack it. */
@media (max-width: 900px) {
	.elementor .e-con.e-flex.pr-about-leadrow.pr-about-leadrow { --flex-direction: column; flex-direction: column; }
	.elementor .e-con.pr-about-leadrow > .e-con.pr-about-portrait-col { --width: 100%; width: 100%; max-width: 360px; }
	.elementor .e-con.pr-about-leadrow > .e-con.pr-about-main { --flex-grow: 0; --flex-shrink: 1; --flex-basis: auto; flex: 0 1 auto; width: 100%; }
}
@media (max-width: 767px) {
	.elementor .e-con.pr-about-leadrow > .e-con.pr-about-portrait-col { max-width: none; }
	.pr-about-portrait img { aspect-ratio: 1 / 1; object-position: 50% 18%; }
}

/* Leadership: "Learn More About Ellen" expands the rest of the bio (Nested Accordion, Oct 22 revision).
   Title in the site's text-link style (14px caps, copper underline), copper plus/minus; no box. */
.pr-about-more { --n-accordion-border-width: 0px; --n-accordion-padding: 0px; --n-accordion-item-title-space-between: 0px; }
.pr-about-more .e-n-accordion-item { border: 0; }
.elementor .pr-about-more .e-n-accordion-item-title { border: 0 !important; padding: 0 !important; background: transparent !important; }
.elementor .pr-about-more .e-n-accordion-item-title { flex-direction: row !important; }
.pr-about-more .e-n-accordion-item-title-header { order: 1; }
.elementor .pr-about-more .e-n-accordion-item-title > .e-n-accordion-item-title-icon { order: 2 !important; }
.pr-about-more .e-n-accordion-item-title {
	display: inline-flex; flex-direction: row; justify-content: flex-start; align-items: center; gap: 8px;
	min-height: 44px; padding: 0; border: 0; background: transparent; cursor: pointer;
}
.pr-about-more .e-n-accordion-item-title-header { flex-grow: 0; }
.pr-about-more .e-n-accordion-item-title-text {
	padding: 4px 0; border-bottom: 1px solid var(--pr-copper);
	font-size: 14px; font-weight: 500; letter-spacing: 1.5px; line-height: 1.2; text-transform: uppercase; color: var(--pr-navy);
	transition: color .25s ease, border-color .25s ease;
}
.pr-about-more .e-n-accordion-item-title:hover .e-n-accordion-item-title-text,
.pr-about-more .e-n-accordion-item-title:focus-visible .e-n-accordion-item-title-text { color: var(--pr-copper-text); border-bottom-color: var(--pr-navy); }
.pr-about-more .e-n-accordion-item-title-icon svg { width: 11px; height: 11px; fill: var(--pr-copper-text); }
.pr-about-more .e-n-accordion-item > .e-con { border: 0; }
/* Her LinkedIn on the role line: copper mark, 44px target that doesn't add height to the line. */
.pr-about-linkedin .elementor-social-icon { width: 44px; height: 44px; margin: -12px 0; }
.pr-about-linkedin .elementor-social-icon:hover svg,
.pr-about-linkedin .elementor-social-icon:focus-visible svg { fill: var(--pr-navy); }
.elementor .pr-about-more .e-n-accordion-item-title { width: fit-content; }
.elementor .pr-about-more .e-n-accordion-item-title:focus-visible { outline: 2px solid var(--pr-copper-text); outline-offset: 4px; }
/* Bio sections inside "Learn More About Ellen" (Oct 26, her document): small navy subheads, then her text. */
.pr-about-more-head .elementor-heading-title { font-size: 20px; font-weight: 500; line-height: 1.3; color: var(--pr-navy); }
.elementor .pr-about-more .e-con > .elementor-widget.pr-about-more-head:not(:first-child) { margin-top: 16px; }
.pr-about-projects { margin: 0; padding-left: 1.1em; }
.pr-about-projects li { margin: 0 0 8px; }
.pr-about-projects li::marker { color: var(--pr-copper-text); }

/* ---- contact.css ---- */
/* Contact + legal pages (tools/pages/contact.php, disclaimers.php, terms-of-use.php). */

/* ---- Contact: split layout ---- */
/* Eyebrow + H1 span the page; below them the lead and the form panel start on one line (Oct 26 revision).
   Keep the split through tablet; stack below 900px with the form capped at a readable width. */
.pr-contact-lead p:last-child { margin-bottom: 0; }
.pr-contact-lead p { margin-top: -0.3em; } /* the lead's cap height, not its line box, meets the panel's copper rule */
@media (max-width: 900px) {
	.elementor .e-con.pr-contact-split.pr-contact-split { --flex-direction: column; --align-items: stretch; }
	.elementor .pr-contact-split.pr-contact-split > .e-con.e-con { --width: 100%; }
	.elementor .pr-contact-split .pr-contact-form.pr-contact-form { max-width: 720px; }
	.pr-contact-lead p { margin-top: 0; }
}

/* ---- Contact: form fields and states ---- */
.pr-contact-form .elementor-field-group .elementor-field-textual {
	min-height: 54px; padding: 14px 16px; border: 1px solid #C3CAD2; border-radius: 2px;
	background: #fff; box-shadow: none; transition: border-color .2s ease, box-shadow .2s ease;
}
.pr-contact-form .elementor-field-group textarea.elementor-field-textual { min-height: 168px; resize: vertical; }
.pr-contact-form .elementor-field-group .elementor-field-textual:hover { border-color: var(--pr-slate); }
.pr-contact-form .elementor-field-group .elementor-field-textual:focus,
.pr-contact-form .elementor-field-group .elementor-field-textual:focus-visible {
	outline: none; border-color: var(--pr-copper-text); box-shadow: 0 0 0 3px rgba(204, 125, 81, .3);
}
.pr-contact-form .elementor-field-group .elementor-field-textual:user-invalid,
.pr-contact-form .elementor-field-group.elementor-error .elementor-field-textual { border-color: #B3261E; }
.pr-contact-form .elementor-field-group.elementor-error .elementor-field-textual:focus { box-shadow: 0 0 0 3px rgba(179, 38, 30, .2); }
.pr-contact-form .elementor-field-group .elementor-message.elementor-help-inline { color: #B3261E; font-size: 14px; margin-top: 8px; }
.pr-contact-form .elementor-mark-required .elementor-field-label:after { color: var(--pr-copper-text); }
.pr-contact-form .elementor-form .elementor-field-type-submit { margin-top: 12px; }
.pr-contact-form .elementor-form .elementor-button { padding: 18px 32px; border-radius: 0; } /* kit button size */
.pr-contact-form .elementor-form .elementor-button:focus-visible { outline: 2px solid var(--pr-copper-text); outline-offset: 3px; }
.pr-contact-form .elementor-message { font-size: 16px; line-height: 1.6; margin-top: 24px; }
.pr-contact-form .elementor-message.elementor-message-success {
	color: var(--pr-navy); background: #fff; border-left: 3px solid var(--pr-copper); padding: 16px 20px;
}
.pr-contact-form .elementor-message::before { display: none; }
@media (max-width: 767px) {
	.pr-contact-form .elementor-form .elementor-button { width: 100%; }
}

/* ---- Legal pages (Disclaimers, Terms of Use): centered reading column ---- */
/* Eyebrow, H1, text widgets and the contents box share one centered ~620px column (one left edge). */
.elementor.elementor .e-con > .pr-legal-col.pr-legal-col,
.elementor .e-con.e-con > .e-con-inner > .pr-legal-col.pr-legal-col { width: 100%; max-width: 38rem; margin-inline: auto; }
.pr-legal { color: var(--pr-navy); }
.pr-legal .elementor-widget-text-editor { font-size: 17px; line-height: 1.65; }
.pr-legal .elementor-widget-text-editor p { margin: 0 0 1.15em; }
.pr-legal .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.pr-legal .elementor-widget-text-editor h2 {
	font-size: 28px; line-height: 1.25; font-weight: 500; color: var(--pr-navy); letter-spacing: 0;
	margin: 0 0 .8em; padding-top: 40px; border-top: 1px solid var(--pr-rule);
	scroll-margin-top: calc(var(--pr-header-h) + 24px);
}
.pr-legal .elementor-widget-text-editor ul { margin: 0 0 1.15em; padding-left: 1.3em; }
.pr-legal .elementor-widget-text-editor ul li { margin-bottom: .65em; padding-left: .35em; }
.pr-legal .elementor-widget-text-editor ul li::marker { color: var(--pr-copper); }
.pr-legal-toc ol { margin: 0; padding: 0; list-style: none; counter-reset: toc; columns: 2; column-gap: 32px; }
.pr-legal-toc li {
	counter-increment: toc; break-inside: avoid; display: flex; gap: 14px;
	padding: 9px 0; border-bottom: 1px solid var(--pr-rule); font-size: 16px; line-height: 1.45;
}
.pr-legal-toc li::before {
	content: counter(toc, decimal-leading-zero); flex: 0 0 auto; min-width: 22px; padding-top: 3px;
	color: var(--pr-copper-text); font-size: 13px; font-weight: 500; letter-spacing: 1px; font-variant-numeric: tabular-nums;
}
.pr-legal-toc a { color: var(--pr-navy); text-decoration: none; transition: color .2s ease; }
.pr-legal-toc a:hover,
.pr-legal-toc a:focus-visible { color: var(--pr-copper-text); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 767px) {
	.pr-legal .elementor-widget-text-editor { font-size: 16px; }
	.pr-legal .elementor-widget-text-editor h2 { font-size: 24px; padding-top: 32px; }
	.pr-legal-toc ol { columns: 1; }
	.pr-legal-toc li { padding: 0; }
	.pr-legal-toc a { display: block; padding: 11px 0; }
	.pr-legal-toc li::before { padding-top: 14px; }
}

/* ---- header-footer.css ---- */
/* Header & footer (piece: header-footer). Classes set in tools/templates/header.php, footer.php. */

/* ---------- Header (container .pr-header; Home variant adds .pr-header--overlay) ---------- */
.elementor-location-header .e-con.pr-header { transition: background-color .3s ease, box-shadow .3s ease, border-color .3s ease; }
.elementor-location-header .e-con.pr-header.elementor-sticky--effects { box-shadow: 0 10px 30px -18px rgba(32,45,64,.35); }

/* Desktop menu: quiet caps, copper underline for hover and the current page. */
.elementor-location-header .pr-header .elementor-nav-menu--main .elementor-item { line-height: 20px; }
.elementor-location-header .pr-header .elementor-nav-menu--main .elementor-item:focus-visible { outline-offset: 6px; }

/* Burger: a 44px tap target, no box; the icon follows the text colour in every state. */
.elementor-location-header .pr-header .elementor-menu-toggle { width: 44px; height: 44px; padding: 0; margin-right: -10px; justify-content: center; background: transparent; border-radius: 0; }
.elementor-location-header .pr-header .elementor-menu-toggle svg { fill: currentColor !important; }

/* Open state: the bar turns navy and the panel fills the screen below it. */
.elementor-location-header .e-con.pr-header:has(.elementor-menu-toggle.elementor-active) { background-color: #202D40 !important; background-image: none !important; border-bottom-color: rgba(255,255,255,.14) !important; box-shadow: none !important; }
.elementor-location-header .pr-header:has(.elementor-menu-toggle.elementor-active) .elementor-menu-toggle { color: #FFFFFF !important; }
.elementor-location-header .pr-header:has(.elementor-menu-toggle.elementor-active) .elementor-menu-toggle:hover { color: #D9946C !important; }
/* Panel offset: 22px below the toggle (nav-menu control "dropdown_top_distance"); 14px on mobile, where the bar is 72px. */
.elementor-location-header .pr-header .elementor-menu-toggle.elementor-active + .elementor-nav-menu__container { min-height: calc(100vh - 88px); min-height: calc(100dvh - 88px); padding: 8px 0 40px; }
.elementor-location-header .pr-header .elementor-nav-menu--dropdown .elementor-item { border-left: 3px solid transparent; padding-left: calc(var(--pr-gutter) - 3px) !important; padding-right: var(--pr-gutter) !important; }
.elementor-location-header .pr-header .elementor-nav-menu--dropdown .elementor-item.elementor-item-active { border-left-color: #D9946C; }
.elementor-location-header .pr-header .elementor-nav-menu--dropdown .elementor-item:focus-visible { outline-offset: -4px; }
@media (max-width: 767px) {
	.elementor-location-header .e-con.pr-header .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container { margin-top: 14px !important; }
	.elementor-location-header .pr-header .elementor-menu-toggle.elementor-active + .elementor-nav-menu__container { min-height: calc(100vh - 72px); min-height: calc(100dvh - 72px); }
}

/* Home: over the hero, a navy fade keeps the logo and the white menu legible on any video frame. */
.elementor-location-header .e-con.pr-header--overlay { background-image: linear-gradient(180deg, rgba(23,33,49,.8) 0%, rgba(23,33,49,.45) 70%, rgba(23,33,49,0) 100%); } /* keeps the white menu ≥ AA over the video */
/* The logo stays in brand copper in every state, over the video and on the navy open menu too
   (client revision, Oct 22; brand guidelines show the copper logo on navy). */
/* Home, scrolled: solid white, navy menu. */
.elementor-location-header .e-con.pr-header--overlay.elementor-sticky--effects { background-color: #FFFFFF !important; background-image: none; border-bottom-color: #DDE1E5 !important; }
.elementor-location-header .pr-header--overlay.elementor-sticky--effects .elementor-nav-menu--main .elementor-item,
.elementor-location-header .pr-header--overlay.elementor-sticky--effects .elementor-menu-toggle { color: #202D40 !important; }
.elementor-location-header .pr-header--overlay.elementor-sticky--effects .elementor-nav-menu--main .elementor-item:hover,
.elementor-location-header .pr-header--overlay.elementor-sticky--effects .elementor-nav-menu--main .elementor-item:focus { color: #A65F38 !important; }
.elementor-location-header .pr-header--overlay.elementor-sticky--effects .elementor-nav-menu--main .elementor-item::after { background-color: #CC7D51 !important; }
.elementor-location-header .e-con.pr-header--overlay.elementor-sticky--effects:has(.elementor-menu-toggle.elementor-active) { background-color: #202D40 !important; }
.elementor-location-header .pr-header--overlay.elementor-sticky--effects:has(.elementor-menu-toggle.elementor-active) .elementor-menu-toggle { color: #FFFFFF !important; }

/* ---------- Footer (container .pr-footer; widgets .pr-footer-menu, .pr-footer-legal) ---------- */
.pr-footer .elementor-nav-menu--main .elementor-item { transition: color .2s ease; }
.pr-footer .elementor-nav-menu--main .elementor-item:focus-visible { outline-offset: 4px; }
.pr-footer .elementor-widget-heading .elementor-heading-title { margin: 0; }
/* © line: balanced wrap so "Real Estate Collective" never leaves a lone word at 320. */
.pr-footer .pr-footer-copy .elementor-heading-title { text-wrap: balance; }
@media (min-width: 768px) and (max-width: 1024px) {
	/* All seven on one row at 768-1024: tighter gap and tracking. */
	.pr-footer .pr-footer-menu .elementor-nav-menu { flex-wrap: wrap; column-gap: 20px; }
	.pr-footer .pr-footer-menu .elementor-item { letter-spacing: 1.4px !important; }
	.pr-footer .pr-footer-menu .elementor-nav-menu > li,
	.pr-footer .pr-footer-menu .elementor-item { margin: 0 !important; }
}
@media (max-width: 767px) {
	/* Main menu as a two-column list (one column at 320) with 44px rows. */
	.pr-footer .pr-footer-menu,
	.pr-footer .pr-footer-menu nav { width: 100%; }
	.pr-footer .pr-footer-menu .elementor-nav-menu { display: grid; grid-template-columns: repeat(auto-fill, minmax(156px, 1fr)); column-gap: 24px; width: 100%; }
	.pr-footer .pr-footer-menu .elementor-nav-menu > li,
	.pr-footer .pr-footer-menu .elementor-item { margin: 0 !important; }
	/* 44px tap rows for every footer link. */
	.pr-footer .pr-footer-menu .elementor-item,
	.pr-footer .pr-footer-legal .elementor-item { padding-top: 12px !important; padding-bottom: 12px !important; }
	.pr-footer .pr-footer-legal .elementor-nav-menu { column-gap: 32px; }
	.pr-footer .pr-footer-legal .elementor-nav-menu > li,
	.pr-footer .pr-footer-legal .elementor-item { margin: 0 !important; }
	.pr-footer .pr-footer-legal .elementor-nav-menu > li:first-child,
	.pr-footer .pr-footer-legal .elementor-nav-menu > li:first-child .elementor-item { margin-left: 0 !important; }
	/* LinkedIn right after the legal links, same spacing as between them. */
	.elementor .e-con.pr-footer-end { --gap: 8px; gap: 8px; } /* + the icon's 13px inset ≈ the 32px between the links */
	.pr-footer .pr-footer-legal, .pr-footer .pr-footer-legal nav { width: auto; flex: 0 0 auto; }
}

/* Single posts and category archives belong to "Insights & Media" (piece: insights; authorized rule). */
body.single-post .elementor-location-header .pr-header .elementor-nav-menu--main a.elementor-item[href$="/insights/"],
body.category .elementor-location-header .pr-header .elementor-nav-menu--main a.elementor-item[href$="/insights/"] { color: #202D40; }
body.single-post .elementor-location-header .pr-header .elementor-nav-menu--main a.elementor-item[href$="/insights/"]::after,
body.category .elementor-location-header .pr-header .elementor-nav-menu--main a.elementor-item[href$="/insights/"]::after { opacity: 1; transform: scale(1); background-color: #CC7D51; }
body.single-post .elementor-location-header .pr-header .elementor-nav-menu--dropdown a.elementor-item[href$="/insights/"],
body.category .elementor-location-header .pr-header .elementor-nav-menu--dropdown a.elementor-item[href$="/insights/"] { border-left-color: #D9946C; color: #D9946C; }
body.single-post .elementor-location-footer .pr-footer .elementor-nav-menu--main a.elementor-item[href$="/insights/"],
body.category .elementor-location-footer .pr-footer .elementor-nav-menu--main a.elementor-item[href$="/insights/"] { color: #D9946C; }

/* Footer: legal links + LinkedIn sized to their content at the right of the © line. */
.elementor .e-con.pr-footer-end { --width: auto; width: auto; flex: 0 0 auto; }
/* Footer LinkedIn mark (Oct 22): copper light, white on hover/focus; 44px target, optically on the legal links' baseline. */
.pr-footer-social .elementor-social-icon { width: 44px; height: 44px; margin: -12px -13px -12px 0; transition: color .2s ease; }
.pr-footer-social .elementor-social-icon:hover i,
.pr-footer-social .elementor-social-icon:focus-visible i { color: #fff; }
.pr-footer-social .elementor-social-icon:hover svg,
.pr-footer-social .elementor-social-icon:focus-visible svg { fill: #fff; }

/* ---- home.css ---- */
/* Home (tools/pages/home.php). Classes prefixed pr-home-. */

/* Latest Insights header: below ~360px the eyebrow and the "Insights & Media" link can't share a row;
   stack them as one tidy block (label over link, tight gap) instead of a loose wrap. */
@media (max-width: 359px) {
	.elementor .e-con.pr-home-insights__head { --flex-direction: column; --align-items: flex-start; --row-gap: 8px; --gap: 8px 8px; flex-direction: column; align-items: flex-start; row-gap: 8px; }
}

/* Background video pause/play control (bottom-right of the hero). */
.pr-home-hero > .pr-video-control { position: absolute; right: var(--pr-gutter); bottom: 24px; z-index: 3; width: auto; }
.pr-home-hero .pr-video-toggle, .pr-home-hero .pr-video-toggle:active { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 1px solid rgba(255,255,255,.7); border-radius: 50%; background: rgba(23,33,49,.35); color: #fff; font-size: 0; line-height: 1; box-shadow: none; cursor: pointer; transition: background-color .2s ease, border-color .2s ease; }
.pr-home-hero .pr-video-toggle:hover, .pr-home-hero .pr-video-toggle:focus, .pr-home-hero .pr-video-toggle:focus-visible { background: rgba(23,33,49,.7); border-color: #fff; }
.pr-home-hero .pr-video-toggle:focus-visible { outline: 2px solid var(--pr-copper-light); outline-offset: 3px; }
.pr-video-toggle__icon { position: relative; width: 12px; height: 14px; }
.pr-video-toggle__icon::before, .pr-video-toggle__icon::after { content: ""; position: absolute; top: 0; width: 4px; height: 14px; background: currentColor; }
.pr-video-toggle__icon::before { left: 0; }
.pr-video-toggle__icon::after { right: 0; }
.pr-video-toggle.is-paused .pr-video-toggle__icon::before { left: 2px; width: 0; height: 0; background: none; border-style: solid; border-width: 7px 0 7px 11px; border-color: transparent transparent transparent currentColor; }
.pr-video-toggle.is-paused .pr-video-toggle__icon::after { display: none; }
@media (max-width: 767px) { .pr-home-hero > .pr-video-control { bottom: 16px; } }

/* Phones: still image fills the hero behind the overlay (the video plays on tablet/desktop only). */
.pr-home-hero > .pr-hero-mobile-img { position: absolute; inset: 0; z-index: 0; margin: 0; width: 100%; height: 100%; }
.pr-home-hero > .pr-hero-mobile-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pr-home-hero > .pr-video-control { z-index: 3; }
@media (max-width: 767px) { .pr-home-hero > .pr-video-control { display: none; } }
/* The still sits above Elementor's video overlay, so it carries the same navy gradient itself; content stays on top. */
.pr-home-hero > .pr-hero-mobile-img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(20deg, rgba(23,33,49,.88) 0%, rgba(32,45,64,.5) 100%); pointer-events: none; }
.pr-home-hero > .e-con { position: relative; z-index: 1; }

/* Latest Insights band (navy, text-only items from the "Insights Band Item" loop template; Oct 22 revision).
   Three equal columns: the grid's column gap holds a centered hairline; on phones the items stack as rows. */
.pr-home-insights__grid .elementor-loop-container > .e-loop-item { position: relative; }
.pr-home-insights__grid .elementor-loop-container > .e-loop-item + .e-loop-item::before { content: ""; position: absolute; top: 4px; bottom: 4px; left: calc(var(--grid-column-gap, 64px) / -2); width: 1px; background: rgba(255,255,255,.18); }
@media (max-width: 767px) {
	.pr-home-insights__grid .elementor-loop-container > .e-loop-item { padding: 24px 0; }
	.pr-home-insights__grid .elementor-loop-container > .e-loop-item:last-of-type { padding-bottom: 0; }
	.pr-home-insights__grid .elementor-loop-container > .e-loop-item + .e-loop-item::before { top: 0; bottom: auto; left: 0; right: 0; width: auto; height: 1px; }
}
/* Hero sub-text: no one-word last lines when the sentences wrap on phones. */
.pr-home-hero__sub p { text-wrap: pretty; }
.pr-home-hero h1.elementor-heading-title { text-wrap: balance; }
.pr-band-title .elementor-heading-title { text-wrap: pretty; }
.pr-band-item { position: relative; height: 100%; }
.pr-band-title .elementor-heading-title a {
	color: inherit;
	background-image: linear-gradient(currentColor, currentColor);
	background-size: 0 1px;
	background-repeat: no-repeat;
	background-position: 0 100%;
	transition: background-size .35s ease, color .25s ease;
}
.pr-band-item:hover .pr-band-title .elementor-heading-title a,
.pr-band-title .elementor-heading-title a:focus-visible { color: var(--pr-copper-light); background-size: 100% 1px; }
/* Whole item clickable through the title link: one tab stop per item. */
.pr-band-title .elementor-heading-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.pr-band-title .elementor-heading-title a:focus-visible { outline: none; }
.pr-band-item:focus-within { outline: 2px solid var(--pr-copper-light); outline-offset: 6px; }
.pr-band-date .elementor-heading-title::before { content: "\00B7"; margin: 0 .5em; }
/* Our Philosophy photo (Oct 26, Ellen asked for a darker gradient): the sunny photo is toned down, then a navy
   multiply gradient (darkens without a grey haze), deepest at the bottom-left corner. */
.elementor .elementor-widget.pr-home-philosophy__img { position: relative; line-height: 0; }
.pr-home-philosophy__img img { filter: brightness(.92) contrast(1.06); }
.elementor .elementor-widget.pr-home-philosophy__img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(20deg, rgba(32,45,64,.85) 0%, rgba(32,45,64,.45) 45%, rgba(32,45,64,.12) 100%); mix-blend-mode: multiply; pointer-events: none; }

/* ---- insights.css ---- */
/* Insights & Media: page, Insights card and row (loop items), single post, archive. Owner: Insights builder. */

/* ---------- Insights card (loop-card + loop-card-featured) ---------- */
.pr-card-root { position: relative; }
.pr-card-media { overflow: hidden; background: var(--pr-paper); }
.pr-card-media img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform .6s cubic-bezier(.2, .6, .2, 1); }
.pr-card-root:hover .pr-card-media img { transform: scale(1.025); }
.pr-card-title .elementor-heading-title a {
	color: inherit;
	background-image: linear-gradient(currentColor, currentColor);
	background-size: 0 1px;
	background-repeat: no-repeat;
	background-position: 0 100%;
	transition: background-size .35s ease, color .25s ease;
}
.pr-card-root:hover .pr-card-title .elementor-heading-title a,
.pr-card-title .elementor-heading-title a:focus-visible { color: var(--pr-copper-text); background-size: 100% 1px; }
/* Whole card clickable through the title link: one tab stop per card. */
.pr-card-title .elementor-heading-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.pr-card-title .elementor-heading-title a:focus-visible { outline: none; }
.pr-card-root:focus-within { outline: 2px solid var(--pr-copper-text); outline-offset: 6px; }
.pr-card-lead .pr-card-date .elementor-heading-title::before { content: "\00B7"; margin: 0 .5em; }
@media (prefers-reduced-motion: reduce) { .pr-card-root:hover .pr-card-media img { transform: none; } }

/* ---------- Insights & Media page (reorganized in the Oct 22 client revision) ---------- */
/* Featured: the lead story is text only; the two other featured stories sit beside it on a hairline. */
.pr-card-lead .pr-card-title .elementor-heading-title { text-wrap: balance; }
.pr-card-lead .pr-card-dek .elementor-heading-title { max-width: 40rem; }
.pr-insights-featured-pair .elementor-loop-container > .e-loop-item { padding: 28px 0; border-bottom: 1px solid var(--pr-rule); }
.pr-insights-featured-pair .elementor-loop-container > .e-loop-item:first-of-type { padding-top: 0; }
.pr-insights-featured-pair .elementor-loop-container > .e-loop-item:last-of-type { border-bottom: 0; padding-bottom: 0; }
@media (min-width: 1025px) {
	.elementor .e-con.pr-insights-pair-col { padding-left: var(--pr-gap-lg); border-left: 1px solid var(--pr-rule); }
}
@media (min-width: 768px) and (max-width: 1024px) {
	.elementor .e-con.pr-insights-pair-col { padding-top: var(--pr-gap); border-top: 1px solid var(--pr-rule); }
	.pr-insights-featured-pair .elementor-loop-container > .e-loop-item { padding: 0; border-bottom: 0; }
}
@media (max-width: 767px) {
	.elementor .e-con.pr-insights-pair-col { padding-top: 28px; border-top: 1px solid var(--pr-rule); }
}
.pr-card-text .pr-card-date .elementor-heading-title::before { content: "\00B7"; margin: 0 .5em; }

/* Section bands: H2 on a hairline with "View all …" at the right. */
.pr-insights-viewall .elementor-button { padding-bottom: 2px !important; }

/* Category rows (Insights Row loop item), in her editorial-index layout: copper label (publication) | title | date.
   Text only, ruled, whole row clickable through the title. */
.pr-row { position: relative; border-bottom: 1px solid var(--pr-rule); }
.elementor .pr-row > .elementor-widget.pr-row-label { flex: 0 0 220px; width: 220px; max-width: 220px; } /* long publication names on one line */
.pr-row-label .elementor-heading-title { line-height: 1.5; }
.elementor .pr-row > .elementor-widget.pr-row-title { flex: 1 1 auto; min-width: 0; max-width: 46rem; }
.pr-row-title .elementor-heading-title { overflow-wrap: anywhere; }
@media (min-width: 768px) and (max-width: 1024px) {
	.elementor .pr-row > .elementor-widget.pr-row-label { flex-basis: 150px; width: 150px; max-width: 150px; }
	.pr-list-label { flex-basis: 150px; }
}
.elementor .pr-row > .elementor-widget.pr-row-date { margin-left: auto; flex-shrink: 0; }
.pr-row-title .elementor-heading-title a {
	color: inherit;
	background-image: linear-gradient(currentColor, currentColor);
	background-size: 0 1px;
	background-repeat: no-repeat;
	background-position: 0 100%;
	transition: background-size .35s ease, color .25s ease;
}
.pr-row:hover .pr-row-title .elementor-heading-title a { color: var(--pr-copper-text); background-size: 100% 1px; }
.pr-row-title .elementor-heading-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.pr-row-title .elementor-heading-title a:focus-visible { outline: none; }
.pr-row:focus-within { outline: 2px solid var(--pr-copper-text); outline-offset: 4px; }
.pr-row-date .elementor-heading-title { white-space: nowrap; }
@media (max-width: 767px) {
	.elementor .pr-row > .elementor-widget.pr-row-label { flex: 0 0 auto; width: auto; max-width: none; }
	.elementor .pr-row > .elementor-widget.pr-row-date { margin-left: 0; }
}

/* Lead story: "Read the piece →" in copper after the date (as her example). */
.pr-card-read .elementor-heading-title { font-size: 14px; font-weight: 500; line-height: 1.4; color: var(--pr-copper-text); }
.pr-card-read .elementor-heading-title::before { content: "\00B7"; margin: 0 .5em; color: var(--pr-slate); }

/* Static lists in the row style: Awards & Recognition, Podcasts & Interviews. */
.pr-insights-list { list-style: none; margin: 0; padding: 0; }
.pr-insights-list li {
	position: relative;
	display: flex;
	align-items: baseline;
	gap: 32px;
	margin: 0;
	padding: 22px 0;
	border-bottom: 1px solid var(--pr-rule);
	color: var(--pr-navy);
}
.pr-list-label { flex: 0 0 220px; font-size: 13px; font-weight: 500; letter-spacing: 2px; line-height: 1.5; text-transform: uppercase; color: var(--pr-copper-text); }
.pr-list-main { display: flex; flex-direction: column; gap: 6px; flex: 1 1 auto; min-width: 0; max-width: 46rem; }
.pr-list-title { font-size: 21px; font-weight: 500; line-height: 1.35; }
.pr-list-meta, .pr-list-date { font-size: 14px; font-weight: 500; line-height: 1.4; color: var(--pr-slate); }
.pr-list-date { flex-shrink: 0; margin-left: auto; white-space: nowrap; }
.pr-list-title a {
	color: inherit;
	background-image: linear-gradient(currentColor, currentColor);
	background-size: 0 1px;
	background-repeat: no-repeat;
	background-position: 0 100%;
	transition: background-size .35s ease, color .25s ease;
}
.pr-list-title a::after { content: ""; position: absolute; inset: 0; }
.pr-insights-list li:hover .pr-list-title a { color: var(--pr-copper-text); background-size: 100% 1px; }
.pr-list-title a:focus-visible { outline: none; }
.pr-insights-list li:focus-within { outline: 2px solid var(--pr-copper-text); outline-offset: 4px; }
/* Speaking & Events: the rest of the line-up as one line under the talks. */
.pr-insights-more p { display: flex; align-items: baseline; gap: 32px; margin: 0; padding-top: 22px; font-size: 18px; line-height: 1.7; color: var(--pr-navy); }
/* Label in the rows' label column, names in the title column. */
.pr-insights-more__label { flex: 0 0 220px; font-size: 13px; font-weight: 500; letter-spacing: 2px; text-transform: uppercase; color: var(--pr-copper-text); }
@media (min-width: 768px) and (max-width: 1024px) { .pr-insights-more__label { flex-basis: 150px; } }
@media (max-width: 767px) { .pr-insights-more p { display: block; } .pr-insights-more__label { display: block; margin-bottom: 4px; } }
.pr-insights-more__sep { color: var(--pr-copper); }
/* Awards: on the blush panel, year in copper. */
.pr-insights-static--awards li { padding: 18px 0; border-bottom-color: rgba(166, 95, 56, .22); }
.pr-insights-static--awards li:last-child { border-bottom: 0; padding-bottom: 0; }
.pr-insights-static--awards .pr-list-title { font-size: 19px; }
.pr-insights-static--awards .pr-list-date { color: #8C4E2B; letter-spacing: 1px; } /* deeper copper: 5.7:1 on the blush panel */
.elementor .e-con.pr-insights-awards { border-top: 4px solid var(--pr-copper); }
@media (max-width: 767px) {
	.pr-insights-list li { flex-direction: column; gap: 6px; padding: 18px 0; }
	.pr-list-label { flex: none; }
	.pr-list-date { margin-left: 0; }
	.pr-list-title { font-size: 19px; }
	.pr-insights-static--awards .pr-list-title { font-size: 18px; }
	/* Each sentence starts a line on wider screens; on phones they flow, so no one-word lines. */
	.pr-insights-intro h1 br { display: none; }
	.pr-insights-static--awards li { flex-direction: row; gap: 16px; }
}

/* ---------- Single post ---------- */
.pr-article-kicker .elementor-heading-title a { color: inherit; display: inline-block; padding: 10px 0; margin: -10px 0; transition: color .2s ease; }
.pr-article-kicker .elementor-heading-title a:hover,
.pr-article-kicker .elementor-heading-title a:focus-visible { color: var(--pr-navy); }
.pr-article-date .elementor-heading-title::before { content: "\00B7"; margin: 0 .55em; }
.pr-article-image img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }

.pr-article-content strong, .pr-article-content h2, .pr-article-content h3, .pr-article-content blockquote { color: var(--pr-navy); }
.pr-article-content p { margin: 0 0 1.4em; }
.pr-article-content > p:first-of-type { font-size: 22px; line-height: 1.5; font-weight: 300; }
.pr-article-content h2,
.pr-article-content h3 { margin: 1.8em 0 .6em; font-size: 28px; line-height: 1.25; font-weight: 500; }
.pr-article-content ul,
.pr-article-content ol { margin: 0 0 1.4em; padding-left: 1.2em; }
.pr-article-content li { margin-bottom: .5em; }
.pr-article-content li::marker { color: var(--pr-copper); }
.pr-article-content a { color: var(--pr-navy); text-decoration: underline; text-decoration-color: var(--pr-copper); text-underline-offset: 3px; transition: color .2s ease; }
.pr-article-content a:hover,
.pr-article-content a:focus-visible { color: var(--pr-copper-text); }
.pr-article-content blockquote { margin: 2em 0; padding: 0 0 0 28px; border-left: 2px solid var(--pr-copper); font-size: 22px; line-height: 1.5; font-weight: 300; }
.pr-article-content blockquote p:last-child { margin-bottom: 0; }
.pr-article-content figure { margin: 2.4em 0; }
.pr-article-content img { display: block; max-width: 100%; height: auto; }
.pr-article-content > *:last-child { margin-bottom: 0; }
@media (max-width: 767px) {
	.pr-article-content > p:first-of-type,
	.pr-article-content blockquote { font-size: 19px; }
	.pr-article-content h2,
	.pr-article-content h3 { font-size: 24px; }
}
.pr-article-readat .elementor-button-icon svg { width: 12px; fill: currentColor; transition: transform .25s ease; }
.pr-article-readat .elementor-button:hover .elementor-button-icon svg,
.pr-article-readat .elementor-button:focus-visible .elementor-button-icon svg { transform: translateX(4px); }

/* ---------- Archive ---------- */
.pr-insights-archive-eyebrow .elementor-heading-title a { color: inherit; display: inline-block; padding: 10px 0; margin: -10px 0; transition: color .2s ease; }
.pr-insights-archive-eyebrow .elementor-heading-title a:hover,
.pr-insights-archive-eyebrow .elementor-heading-title a:focus-visible { color: var(--pr-navy); }
.pr-insights-archive-grid .elementor-pagination {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 4px 8px;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 1.5px;
	text-transform: uppercase;
}
.pr-insights-archive-grid .elementor-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 10px;
	color: var(--pr-slate);
	border-bottom: 2px solid transparent;
	transition: color .2s ease;
}
.pr-insights-archive-grid .elementor-pagination a.page-numbers:hover,
.pr-insights-archive-grid .elementor-pagination a.page-numbers:focus-visible { color: var(--pr-copper-text); }
.pr-insights-archive-grid .elementor-pagination .page-numbers.current { color: var(--pr-navy); border-bottom-color: var(--pr-copper); }

/* "Read at {publication}" on small phones: label left, arrow inline right after the last word. */
@media (max-width: 480px) {
	.pr-article-readat.pr-article-readat .elementor-button { padding-left: 24px; padding-right: 24px; line-height: 1.5; text-align: left; }
	.pr-article-readat.pr-article-readat .elementor-button-content-wrapper { justify-content: flex-start; }
	.pr-article-readat.pr-article-readat .elementor-button-icon { display: none; }
	.pr-article-readat.pr-article-readat .elementor-button-text::after { content: "\2192"; display: inline-block; margin-left: 10px; transition: transform .25s ease; }
	.pr-article-readat.pr-article-readat .elementor-button:hover .elementor-button-text::after,
	.pr-article-readat.pr-article-readat .elementor-button:focus-visible .elementor-button-text::after { transform: translateX(4px); }
}
/* No disabled "Previous" on the first page or "Next" on the last. */
.pr-insights-archive-grid .elementor-pagination span.page-numbers.prev,
.pr-insights-archive-grid .elementor-pagination span.page-numbers.next { display: none; }

/* Intro: a small photo from one of Ellen's panels beside the lead (Oct 26 revision). Kept small: "just enough to show engagement". */
.elementor .e-con > .elementor-widget.pr-insights-intro-photo { flex: 0 0 auto; width: 320px; max-width: 100%; }
.pr-insights-intro-photo img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
@media (max-width: 1024px) { .elementor .e-con > .elementor-widget.pr-insights-intro-photo { width: 260px; } }
@media (max-width: 767px) { .elementor .e-con > .elementor-widget.pr-insights-intro-photo { width: 100%; max-width: 360px; } }

/* ---- invest.css ---- */
/* Invest (tools/pages/invest.php). One column system: the pillar thirds (3 columns, 40px gutter). */

/* Desktop: the intro lead and the Areas of Focus list span two of the three pillar columns. */
@media (min-width: 1025px) {
	.elementor .e-con > .e-con.pr-invest-span2,
	.elementor .e-con > .e-con-inner > .e-con.pr-invest-span2 { grid-column: span 2; }
}
/* Tablet and mobile: the intro stacks (lead, then the aside) on one reading width, both edges aligned. */
@media (max-width: 1024px) {
	.elementor .e-con.pr-invest-intro > .e-con { width: 100%; max-width: 46rem; }
}

/* ---- our-approach.css ---- */
/* Our Approach (tools/pages/our-approach.php). Piece-owned; classes prefixed pr-approach-. */

/* Sections: keep in-page anchor targets clear of the sticky header. */
.pr-approach-section { scroll-margin-top: var(--pr-header-h, 88px); }

/* Triad section headings (People / Place / Partners): copper accent rule above the H2 (96 x 4, as sitewide). */
.pr-approach-h2 .elementor-heading-title::before {
	content: "";
	display: block;
	width: 96px;
	height: 4px;
	margin-bottom: 28px;
	background: var(--pr-copper);
}
/* Desktop: the People label rides alongside the six principles. */
@media (min-width: 1025px) {
	.pr-approach-sticky.elementor-widget {
		position: sticky;
		top: calc(var(--pr-header-h, 88px) + 48px);
		align-self: start;
	}
}

/* Text blocks: reading widths. */
.pr-approach-intro p { max-width: 40rem; }
.pr-approach-statement p { max-width: 46rem; }
.pr-approach-measure p { max-width: 38rem; } /* ≈70ch at body size; Place/Partners leads share it */

/* How We Think: People / Place / Partners jump links. */
.pr-approach-triad .elementor-heading-title { margin: 0; }
.pr-approach-triad .elementor-heading-title a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	min-height: 44px;
	padding-top: 20px;
	border-top: 1px solid rgba(255, 255, 255, .28);
	color: #fff;
	transition: color .25s ease, border-color .25s ease;
}
.pr-approach-triad .elementor-heading-title a::after {
	content: "\2193";
	font-size: 20px;
	color: var(--pr-copper-light);
	transition: transform .25s ease;
}
.pr-approach-triad .elementor-heading-title a:hover,
.pr-approach-triad .elementor-heading-title a:focus-visible {
	color: var(--pr-copper-light);
	border-top-color: var(--pr-copper-light);
}
.pr-approach-triad .elementor-heading-title a:hover::after { transform: translateY(4px); }

/* Place: the street drawing stands on the section's floor, right-aligned. */
.pr-approach-street.elementor-widget { margin-top: calc(var(--pr-gap) * .5); }
.pr-approach-street img { display: block; width: 100%; max-width: 620px; margin-left: auto; }

/* Partners: hands drawing under the H2 (desktop only, hidden by widget setting below 1025). */
.pr-approach-hands.elementor-widget { margin-top: 32px; }
.pr-approach-hands img { display: block; width: 100%; max-width: 200px; }

/* ---- our-work.css ---- */
/* Our Work page + THRIVE request-access popup (piece: our-work). */

/* Consistent image ratios: projects 3:2; cinematic hero 21:9 / 16:9 / 4:3. */
.pr-work-img img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.pr-work-hero img { display: block; width: 100%; aspect-ratio: 21 / 9; object-fit: cover; object-position: 50% 78%; } /* the lit plaza and its people */
@media (max-width: 1024px) { .pr-work-hero img { aspect-ratio: 16 / 9; } }
@media (max-width: 767px) { .pr-work-hero img { aspect-ratio: 4 / 3; } }

/* THRIVE: its line sits in copper under the navy H3, a second tier between the name and the copy. */
.pr-work-thrive-lead :is(h4, p) { color: #55705A; font-family: Georgia, "Times New Roman", serif; font-style: italic; } /* THRIVE's sage, deepened to 5.4:1 for text */
/* THRIVE is its own brand (Ellen's spec: Georgia, sage #8fa890). Since Oct 26 it sits on its own light sage band with her
   drawing; the THRIVE name in headings uses Georgia in navy so it stays readable. */
.pr-work-thrive-band .pr-work-img img { background: #fff; }
#thrive .pr-work-text h3.elementor-heading-title,
.pr-thrive-name .elementor-heading-title { font-family: Georgia, "Times New Roman", serif; font-weight: 400; letter-spacing: 0; }
#thrive .pr-work-text h3.elementor-heading-title { font-size: 34px; } /* Georgia sets optically smaller than Astro 50 at 32 */
@media (max-width: 767px) { #thrive .pr-work-text h3.elementor-heading-title { font-size: 26px; } }

/* Small tablets (768-900): stack like mobile, image first; the side-by-side split gets too narrow.
   Raised specificity to beat Elementor's per-element variables. */
@media (min-width: 768px) and (max-width: 900px) {
	.elementor-element.e-con.pr-work-project.pr-work-project { --flex-direction: column; --align-items: stretch; --gap: 32px 32px; --row-gap: 32px; --column-gap: 32px; }
	.elementor-element.e-con.pr-work-media.pr-work-media,
	.elementor-element.e-con.pr-work-text.pr-work-text { --width: 100%; --padding-left: 0px; --padding-right: 0px; }
}
@media (max-width: 900px) { .pr-work-text { max-width: 600px; } }

/* Intro: H1 left, the lead and subhead right (one column below 1025px, at the reading measure); balanced H1 lines. */
@media (max-width: 1024px) { .elementor .e-con.pr-work-intro { max-width: 46rem; } }
.pr-work-h1 .elementor-heading-title { max-width: 46rem; text-wrap: balance; }

/* THRIVE popup (popup "CSS classes" setting = pr-thrive-popup, on the modal wrapper). */
.pr-thrive-popup .dialog-message { max-height: 100vh; max-height: 100dvh; overflow-y: auto; }
.pr-thrive-popup .dialog-close-button { width: 44px; height: 44px; align-items: center; justify-content: center; }
.pr-thrive-popup .dialog-close-button svg { width: 20px; height: 20px; fill: var(--pr-navy); transition: fill .2s ease; }
.pr-thrive-popup .dialog-close-button i { color: var(--pr-navy); }
.pr-thrive-popup .dialog-close-button:hover svg,
.pr-thrive-popup .dialog-close-button:focus-visible svg { fill: var(--pr-copper-text); }
.pr-thrive-popup .dialog-close-button:hover i,
.pr-thrive-popup .dialog-close-button:focus-visible i { color: var(--pr-copper-text); }
.pr-thrive-popup .dialog-close-button:focus-visible { outline: 2px solid var(--pr-copper-text); outline-offset: 0; }
.pr-thrive-popup .elementor-field-group .elementor-field:focus { border-color: var(--pr-navy); box-shadow: inset 0 0 0 1px var(--pr-navy); }
.pr-thrive-popup .elementor-field-textual,
.pr-thrive-popup .elementor-select-wrapper select { min-height: 48px; }
.pr-thrive-popup .elementor-message { font-size: 16px; color: var(--pr-navy); }

/* THRIVE ™ after "Prospera" (Oct 26 revision): a small raised mark, not a full-height glyph. */
.pr-tm { font-size: 0.45em; line-height: 0; vertical-align: 0.95em; margin-left: 0.06em; }/* End custom CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'Astro';
	font-style: normal;
	font-weight: 300;
	font-display: auto;
	src: url('https://prosperaco.com/wp-content/uploads/2026/09/AstroWeb-30.woff2') format('woff2');
}
@font-face {
	font-family: 'Astro';
	font-style: normal;
	font-weight: 500;
	font-display: auto;
	src: url('https://prosperaco.com/wp-content/uploads/2026/09/AstroWeb-50.woff2') format('woff2');
}
/* End Custom Fonts CSS */