/*
Theme Name: First Chair Advisors
Author: First Chair Advisors
Description: Responsive classic theme. Editable ACF Pro sections and Gravity Forms contact integration.
Version: 1.0.1
Requires at least: 6.5
Requires PHP: 8.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: first-chair-advisors
Tags: custom-logo, custom-menu, featured-images, one-column, two-columns
*/

:root {
    --fca-ink: #22232c;
    --fca-paper: #f4f3ef;
    --fca-stone: #c7c4bd;
    --fca-gold: #988042;
    --fca-gold-action: #806a32;
    --fca-gold-light: #bba265;
    --fca-line: #d3d1cb;
    --fca-font: "DM Sans", Arial, Helvetica, sans-serif;
    --fca-width: 1088px;
    --fca-form-gap-x: 32px;
    --fca-form-gap-y: 20px;
    --fca-control-height: 64px;
    --fca-control-font-size: 24px;
    --fca-control-padding-x: 22px;
    --fca-control-padding-y: 16px;
    --fca-textarea-height: 165px;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 24px; }
body { -webkit-font-smoothing: antialiased; }
body { margin: 0; background: var(--fca-paper); color: var(--fca-ink); font: 400 18px/1.58 var(--fca-font); }
img { max-width: 100%; height: auto; vertical-align: middle; }
button, input, textarea, select { font: inherit; }
button, a, input, textarea, select { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-underline-offset: .2em; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--fca-gold-light); outline-offset: 5px; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { line-height: 1.22; overflow-wrap: break-word; }
h2 { font-size: 42px; margin-bottom: 30px; font-weight: 700; }
h3 { font-size: 26px; margin-bottom: 16px; }
p { margin-bottom: 1em; }
mark { background: var(--fca-gold); color: #fff; padding: .07em .23em .12em; font-weight: 700; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
mark, strong { font-weight: 700; }
.container { width: min(var(--fca-width), calc(100% - 48px)); margin-inline: auto; }
.section { padding-block: 90px; }
.rich-text > :last-child { margin-bottom: 0; }
.rich-text p { margin-bottom: 1em; }
.button { display: inline-flex; justify-content: center; align-items: center; min-width: 250px; min-height: 46px; padding: 12px 26px; border: 1px solid transparent; border-radius: 0; background: var(--fca-gold-action); color: #fff; font-size: 14px; font-weight: 600; line-height: 1.2; letter-spacing: .04em; text-decoration: none; text-transform: uppercase; cursor: pointer; transition: background-color .18s; }
.button:hover { background: #675526; text-decoration: none; }
.button:disabled { cursor: not-allowed; opacity: 1; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.skip-link { position: fixed; top: 12px; left: 12px; z-index: 10000; padding: 12px 20px; transform: translateY(-200%); background: #fff; color: var(--fca-ink); }
.skip-link:focus { transform: translateY(0); }

/* Branding and navigation. Mobile links remain accessible if JavaScript is off. */
.site-header { position: relative; z-index: 20; padding: 55px 0; background: var(--fca-ink); color: #fff; }
.fca-home .site-header { position: absolute; inset: 0 0 auto; background: transparent; padding-top: 90px; }
.site-header__inner { width: min(1224px, calc(100% - 64px)); margin-inline: auto; display: flex; align-items: center; justify-content: space-between; gap: 42px; }
.site-branding { flex: 0 0 255px; }
.brand-link, .custom-logo-link { display: inline-block; text-decoration: none; }
.brand-logo, .custom-logo { width: 255px; height: auto; max-height: 90px; object-fit: contain; }
.brand-name { display: block; font-size: 24px; font-weight: 700; line-height: 1.15; }
.site-navigation { display: flex; align-items: center; gap: 20px; }
.primary-menu { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; list-style: none; margin: 0; padding: 0; }
.primary-menu a { display: block; padding-block: 12px; color: #fff; font-size: 16px; font-weight: 600; line-height: 1.2; text-transform: uppercase; text-decoration: none; }
.primary-menu a:hover { color: var(--fca-gold-light); }
.button--header { min-width: 122px; min-height: 48px; }
.menu-toggle { display: none; width: 48px; height: 48px; padding: 12px; background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.45); border-radius: 0; cursor: pointer; }
.menu-toggle__icon { display: flex; flex-direction: column; gap: 5px; }
.menu-toggle__icon span { display: block; width: 22px; height: 2px; background: currentColor; }
.menu-is-open .menu-toggle__icon span:first-child { transform: translateY(7px) rotate(45deg); }
.menu-is-open .menu-toggle__icon span:nth-child(2) { opacity: 0; }
.menu-is-open .menu-toggle__icon span:last-child { transform: translateY(-7px) rotate(-45deg); }

/* Hero geometry and route line. Text stays in normal flow as editors change it. */
.hero { position: relative; isolation: isolate; padding-bottom: 40px; background: var(--fca-ink); color: #fff; }
.hero__visual { position: absolute; inset: 0; z-index: -1; overflow: hidden; clip-path: polygon(79% 0, 100% 0, 100% 100%, 12% 100%); }
.hero__image { position: absolute; top: 0; left: 12%; width: 127%; max-width: none; height: auto; min-height: 100%; object-fit: cover; object-position: left top; opacity: .5; }
.hero__inner { position: relative; padding-top: 210px; }
.hero__heading { max-width: 715px; margin: 0; font-size: clamp(46px, 4.3vw, 60px); font-weight: 400; line-height: 1.23; }
.hero__heading mark { white-space: normal; }
.hero__intro { position: relative; width: min(975px, calc(100% - 48px)); margin: 50px 0 0 auto; padding: 50px 60px; background: var(--fca-stone); color: var(--fca-ink); font-size: 24px; line-height: 1.58; }
.hero__explore { position: relative; width: 250px; margin: 95px 0 0 calc(65% - 125px); }
.hero__route-line { position: absolute; top: 47%; left: 65%; bottom: -65px; width: 1px; background: var(--fca-stone); }
.direction-cue { position: absolute; display: flex; gap: 6px; pointer-events: none; }
.direction-cue i { display: block; width: 0; height: 0; border-style: solid; }
.direction-cue i:first-child { --cue-color: var(--fca-gold); }
.direction-cue i:nth-child(2) { --cue-color: var(--fca-stone); }
.direction-cue i:last-child { --cue-color: #dfddd7; }
.direction-cue--down { top: calc(100% + 35px); left: calc(65% - 10px); flex-direction: column; }
.direction-cue--down i { border-width: 16px 10px 0; border-color: var(--cue-color) transparent transparent; }
.direction-cue--left { top: 110px; right: 0; flex-direction: row-reverse; }
.direction-cue--left::after { content: ''; position: absolute; top: 9px; left: 100%; width: 400px; height: 1px; background: var(--fca-stone); }
.direction-cue--left i { border-width: 9px 16px 9px 0; border-color: transparent var(--cue-color) transparent transparent; }
.direction-cue--right { top: 48px; left: 0; }
.direction-cue--right::before { content: ''; width: 164px; height: 1px; background: var(--fca-stone); align-self: center; }
.direction-cue--right i { border-width: 9px 0 9px 16px; border-color: transparent transparent transparent var(--cue-color); }

/* The nested frame uses a supplied graphic, and is changeable in site settings. */
.patterned { position: relative; isolation: isolate; }
.frame-pattern { position: absolute; z-index: -1; pointer-events: none; }
.frame-pattern__image { width: 100%; height: 100%; object-fit: fill; filter: brightness(0); opacity: .18; }
.patterned > .frame-pattern { inset: 55px -70px -42px 110px; }
.frame-pattern--hero { left: -835px; top: 180px; width: 960px; height: 282px; }
.frame-pattern--hero .frame-pattern__image { filter: none; opacity: .13; }

.placement { padding-top: 100px; padding-bottom: 90px; }
.placement__heading { font-weight: 400; line-height: 1.35; margin-bottom: 24px; }
.placement__intro { margin-bottom: 80px; }
.placement__cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 38px; }
.placement-card { position: relative; min-width: 0; padding: 56px 32px 36px; border: 1px solid var(--fca-line); background: var(--fca-paper); }
.placement-card h3 { font-size: 25px; font-weight: 400; text-transform: uppercase; }
.icon-badge { position: absolute; top: -42px; left: 32px; display: grid; place-items: center; width: 82px; height: 82px; border-radius: 50%; background: var(--fca-gold); }
.icon-badge img { width: 45px; height: 45px; object-fit: contain; }

.process { padding-top: 60px; padding-bottom: 0; }
.process__steps { list-style: none; padding: 0; margin: 46px 0 64px; }
.process-step { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 40px; align-items: start; margin-bottom: 44px; }
.process-step:last-child { margin-bottom: 0; }
.process-step__number { font-size: 220px; font-weight: 700; color: var(--fca-stone); line-height: .82; letter-spacing: -.07em; }
.process-step__content { padding-top: 10px; }
.process-step h3 { font-size: 36px; margin-bottom: 24px; line-height: 1.4; }
.process-step .rich-text { font-size: 24px; line-height: 1.55; }
.platforms-callout { padding: 40px 70px; text-align: center; background: var(--fca-stone); }
.platforms-callout h3 { font-size: 24px; font-weight: 400; margin-bottom: 16px; }

.beyond { position: relative; overflow: hidden; padding-top: 72px; padding-bottom: 120px; text-align: center; }
.beyond h2 { margin-bottom: 16px; }
.beyond .direction-cue { right: calc(50% - 406px); }
.beyond__lead { font-size: 24px; line-height: 1.45; margin-bottom: 20px; }
.beyond .button { margin-top: 30px; }

.experience { padding-block: 0; }
.experience__panel { position: relative; isolation: isolate; width: calc(100% - 40px); margin-left: 40px; background: transparent; color: var(--fca-paper); }
/* The cover sits above the decorative frame and below the photograph. */
.experience__panel::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--fca-ink); pointer-events: none; }
.frame-pattern--experience { inset: -65px 90px -90px 230px; z-index: -2; }
.experience__visual { position: absolute; top: 0; left: -40px; width: 56%; height: 920px; overflow: hidden; clip-path: polygon(0 0, 100% 0, 0 100%); z-index: -1; }
/* Source PSD crop: wide meeting photo offset above and to the left of the panel. */
.experience__image { position: absolute; left: -26.86vw; top: -30.5vw; width: 117.15vw; max-width: none; height: auto; opacity: .5; }
.experience__inner { max-width: 1208px; padding-block: 125px 105px; }
.experience__content { width: min(810px, 100%); margin-left: auto; }
.experience h2 { margin-bottom: 35px; font-size: 54px; font-weight: 400; line-height: 1.35; }
.experience__intro { margin-bottom: 36px; font-size: 24px; line-height: 1.55; }
.experience__roles { display: grid; gap: 20px; }
.experience-card { border: 1px solid rgba(255,255,255,.25); padding: 32px; }
.experience-card h3 { color: var(--fca-gold-light); font-size: 25px; text-transform: uppercase; margin-bottom: 16px; }
.experience-card h3 em { font-weight: 400; }

.founders { position: relative; padding-top: 150px; padding-bottom: 110px; }
.founders h2 { margin-bottom: 40px; }
.founders__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 75px; }
.founder__header { display: flex; align-items: center; gap: 24px; margin-bottom: 22px; }
.founder__header > div:last-child { flex: 1; min-width: 0; }
.founder__photo { flex: 0 0 200px; width: 200px; height: 200px; overflow: hidden; border-radius: 50%; }
.founder__photo img { width: 100%; height: 100%; object-fit: cover; }
.founder__photo--placeholder { background: var(--fca-stone); }
.founder h3 { font-size: 24px; letter-spacing: -.01em; text-transform: uppercase; margin: 0 0 4px; }
.founder__role { font-size: 24px; font-style: italic; margin: 0; line-height: 1.3; }

.audiences { padding-top: 0; padding-bottom: 140px; }
.audience + .audience { margin-top: 120px; }
.audience__panel { position: relative; display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: 40px; align-items: center; padding: 55px 40px; background: var(--fca-paper); border: 1px solid var(--fca-line); }
.audience h2 { font-size: 36px; line-height: 1.35; margin-bottom: 20px; }
.audience h2 mark { white-space: nowrap; }
.benefits { margin: 0; padding: 0; list-style: none; }
.benefits li { display: flex; gap: 16px; align-items: center; padding: 12px 0; line-height: 1.55; }
.benefits li + li { border-top: 1px solid var(--fca-line); }
.benefits__check { position: relative; flex: 0 0 36px; width: 36px; height: 36px; border-radius: 50%; background: var(--fca-stone); }
.benefits__check::after { content: ''; position: absolute; left: 11px; top: 9px; width: 9px; height: 14px; border-right: 2px solid var(--fca-ink); border-bottom: 2px solid var(--fca-ink); transform: rotate(42deg); }

/* Contact section. Gravity Forms keeps ownership of its layout and validation. */
.contact { position: relative; z-index: 1; background: var(--fca-ink); color: var(--fca-paper); text-align: center; padding-block: 86px; }
.contact h2 { font-size: 54px; margin-bottom: 36px; line-height: 1.5; }
.contact__intro { max-width: 900px; margin: 0 auto 6px; font-size: 24px; line-height: 1.55; }
.contact__email { display: inline-block; max-width: 100%; overflow-wrap: anywhere; margin-bottom: 32px; font-size: 24px; font-weight: 700; color: var(--fca-gold-light); text-decoration: none; }
.contact__email:hover { text-decoration: underline; }
.contact__form { max-width: 854px; margin-inline: auto; text-align: left; }

.form-preview fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.form-preview__notice { margin: 0 0 18px; text-align: center; font-size: 15px; color: var(--fca-stone); }
.form-preview__grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); column-gap: 32px; row-gap: 20px; }
.form-preview__field { min-width: 0; }
.form-preview__field--full { grid-column: 1 / -1; }
.form-preview :is(input, textarea, select) { width: 100%; min-height: 64px; padding: 16px 22px; border: 1px solid var(--fca-stone); border-radius: 0; background: var(--fca-stone); color: var(--fca-ink); font-size: 24px; opacity: 1; -webkit-text-fill-color: var(--fca-ink); }
.form-preview textarea { min-height: 165px; resize: vertical; }
.form-preview :is(input, textarea)::placeholder { color: var(--fca-ink); opacity: 1; }
.form-preview__footer { margin-top: 30px; text-align: center; }

/* Gravity Forms 3.x / Orbital, scoped to the homepage contact section. */
#contact .gform_wrapper.gform-theme[data-form-index] {
    --gf-font-family-base: var(--fca-font);
    --gf-font-family-primary: var(--fca-font);
    --gf-font-family-secondary: var(--fca-font);
    --gf-font-family-tertiary: var(--fca-font);
    --gf-ctrl-font-family: var(--fca-font);
    --gf-ctrl-font-size: var(--fca-control-font-size);
    --gf-ctrl-size: var(--fca-control-height);
    --gf-color-primary: var(--fca-gold-action);
    --gf-color-primary-rgb: 128, 106, 50;
    --gf-color-primary-contrast: #fff;
    --gf-color-in-ctrl: var(--fca-stone);
    --gf-color-in-ctrl-rgb: 199, 196, 189;
    --gf-color-in-ctrl-contrast: var(--fca-ink);
    --gf-color-in-ctrl-contrast-rgb: 34, 35, 44;
    --gf-ctrl-bg-color: var(--fca-stone);
    --gf-ctrl-bg-color-hover: var(--fca-stone);
    --gf-ctrl-bg-color-focus: var(--fca-stone);
    --gf-ctrl-color: var(--fca-ink);
    --gf-ctrl-border-color: var(--fca-stone);
    --gf-ctrl-border-color-focus: var(--fca-gold-light);
    --gf-ctrl-radius: 0;
    --gf-ctrl-shadow: none;
    --gf-ctrl-shadow-focus: none;
    --gf-ctrl-label-color-primary: var(--fca-paper);
    --gf-ctrl-label-color-secondary: var(--fca-paper);
    --gf-ctrl-label-color-tertiary: var(--fca-stone);
    --gf-ctrl-btn-font-family: var(--fca-font);
    --gf-ctrl-btn-bg-color-primary: var(--fca-gold-action);
    --gf-ctrl-btn-bg-color-hover-primary: #675526;
    --gf-ctrl-btn-color-primary: #fff;
    --gf-ctrl-btn-radius: 0;
    --gf-ctrl-btn-shadow: none;
    --gf-field-gap-x: var(--fca-form-gap-x);
    --gf-field-gap-y: var(--fca-form-gap-y);
    --gf-radius: 0;
}
#contact .gform_wrapper { margin: 0; color: var(--fca-paper); font-family: var(--fca-font); }
#contact .gform_wrapper .gform_fields { column-gap: var(--fca-form-gap-x); row-gap: var(--fca-form-gap-y); }
#contact .gform_wrapper .gfield { min-width: 0; }
#contact .gform_wrapper :is(.gfield_label, .gform-field-label, .gfield_description, .ginput_complex label, .gform_description) { color: var(--fca-paper); font-family: var(--fca-font); }

/* Name is itself a grid row. Match the same columns and gutters as Email/Phone. */
#contact .gform_wrapper .ginput_container_name { margin: 0; width: 100%; max-width: 100%; }
#contact .gform_wrapper .ginput_container_name.gf_name_has_2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--fca-form-gap-x); row-gap: var(--fca-form-gap-y); }
#contact .gform_wrapper .ginput_container_name > .gform-grid-col { min-width: 0; width: auto; margin: 0; padding: 0; }

/* :where keeps input exclusions from overriding textarea and validation rules. */
#contact .contact__form .gform_wrapper .gfield .ginput_container :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="file"]):not([type="range"]), textarea, select) {
    width: 100%;
    max-width: 100%;
    min-height: var(--fca-control-height);
    padding: var(--fca-control-padding-y) var(--fca-control-padding-x);
    border: 1px solid var(--fca-stone);
    border-radius: 0;
    background-color: var(--fca-stone);
    color: var(--fca-ink);
    font-family: var(--fca-font);
    font-size: var(--fca-control-font-size);
    font-weight: 400;
    line-height: 1.25;
    box-shadow: none;
}
#contact .contact__form .gform_wrapper .gfield .ginput_container textarea {
    display: block;
    height: var(--fca-textarea-height);
    min-height: var(--fca-textarea-height);
    resize: vertical;
    line-height: 1.5;
}
#contact .contact__form .gform_wrapper .gfield .ginput_container :is(input, textarea)::placeholder {
    color: var(--fca-ink);
    opacity: 1;
    font-family: inherit !important;
    font-size: inherit !important;
    font-weight: 400;
    line-height: inherit;
}
#contact .contact__form .gform_wrapper .gfield .ginput_container select {
    appearance: none;
    -webkit-appearance: none;
    padding-right: 58px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 10'%3E%3Cpath d='M0 0h18L9 10z' fill='%233b3b3c'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 24px center;
    background-size: 18px 10px;
}
#contact .gform_wrapper :is(input[type="checkbox"], input[type="radio"]) { accent-color: var(--fca-gold-action); }
#contact .gform_wrapper :is(.gform_footer, .gform-footer, .gform_page_footer) { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; margin: 30px 0 0; padding: 0; }
#contact .gform_wrapper :is(input[type="submit"], input[type="button"], button[type="submit"], button.gform_next_button, button.gform_previous_button) {
    min-width: 250px;
    min-height: 46px;
    padding: 12px 26px;
    border: 1px solid transparent;
    border-radius: 0;
    background: var(--fca-gold-action);
    color: #fff;
    font: 600 14px/1.2 var(--fca-font);
    letter-spacing: .04em;
    text-transform: uppercase;
    cursor: pointer;
    box-shadow: none;
}
#contact .gform_wrapper :is(input[type="submit"], input[type="button"], button[type="submit"]):hover { background: #675526; }
#contact .gform_wrapper :is(input[type="submit"], button[type="submit"]):disabled { cursor: progress; opacity: .65; }
#contact .gform_wrapper :is(input, select, textarea):focus-visible { outline: 3px solid var(--fca-gold-light); outline-offset: 3px; }
#contact .contact__form .gform_wrapper .gfield_error .ginput_container :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="file"]):not([type="range"]), select, textarea) { border-color: #e79283; }
#contact .gform_wrapper :is(.validation_message, .gfield_validation_message) { color: #ffd1c7; background: transparent; border: 0; font: 400 16px/1.5 var(--fca-font); }
#contact .gform_wrapper .gform_validation_errors { color: var(--fca-ink); background: #fff3f0; border: 2px solid #e79283; border-radius: 0; padding: 22px; }
#contact .gform_wrapper .gform_validation_errors :is(h2, a) { margin: 0; color: #812d23; font-size: 18px; line-height: 1.4; text-align: left; }
#contact .gform_confirmation_message { padding: 30px; border: 1px solid var(--fca-gold-light); color: var(--fca-paper); font-family: var(--fca-font); text-align: center; }

.site-footer { position: relative; background: #fff; padding-bottom: 66px; }
.site-footer__decoration { position: relative; height: 145px; }
.frame-pattern--footer { top: -222px; left: -117px; right: 158px; height: 308px; z-index: 0; overflow: hidden; }
/* The bundled PNG has transparent margins; this produces a visible 65px mark. */
.site-footer__mark { position: absolute; top: -6px; right: 36px; width: 122px; height: 122px; object-fit: contain; }
.site-footer__legal { width: min(1240px, calc(100% - 48px)); text-align: center; font-size: 14px; line-height: 1.55; }
.site-footer__legal p { margin-bottom: 14px; }
.site-footer__links { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 10px; }
.site-footer__links > * + *::before { content: '|'; display: inline-block; margin-right: 10px; }
.site-footer__links a { text-decoration: none; }
.site-footer__links a:hover { text-decoration: underline; }

/* Core templates, Gutenberg content, and WordPress alignment helpers. */
.content-page { padding-block: 72px 100px; min-height: 55vh; }
.content-page h1 { font-size: clamp(36px, 4vw, 56px); }
.content-page h2 { font-size: 36px; }
.content-page h3 { font-size: 28px; }
.post-summary { border-bottom: 1px solid var(--fca-line); margin-bottom: 40px; padding-bottom: 40px; }
.post-summary h2 a { text-decoration: none; }
.post-summary img { margin-bottom: 24px; }
.entry-content::after { content: ''; display: block; clear: both; }
.entry-content :is(table, pre) { max-width: 100%; overflow: auto; }
.entry-content table { display: block; border-collapse: collapse; }
.entry-content :is(td, th) { padding: 8px 14px; border: 1px solid var(--fca-line); }
.entry-content iframe { max-width: 100%; }
.alignleft { float: left; margin: 0 24px 24px 0; }
.alignright { float: right; margin: 0 0 24px 24px; }
.aligncenter { display: block; margin-inline: auto; }
.alignwide, .alignfull { width: 100%; margin-inline: 0; }
.wp-caption { max-width: 100%; }
.wp-caption-text { font-size: 14px; }
.gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 20px; }
.gallery-item { margin: 0; }
.sticky { border-left: 4px solid var(--fca-gold); padding-left: 24px; }
.navigation .nav-links { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 20px; margin-block: 32px; }
.search-form { display: flex; gap: 12px; flex-wrap: wrap; }
.search-field { max-width: 100%; min-height: 46px; padding: 10px 14px; border: 1px solid var(--fca-line); background: #fff; }
.search-submit { border: 0; border-radius: 0; padding: 12px 24px; background: var(--fca-gold-action); color: #fff; cursor: pointer; }
.admin-bar.fca-home .site-header { top: 32px; }

@media (max-width: 1250px) {
    .site-header__inner { gap: 24px; }
    .site-branding { flex-basis: 220px; }
    .brand-logo, .custom-logo { width: 220px; }
    .primary-menu { gap: 14px; }
    .primary-menu a { font-size: 14px; }
    .placement-card { padding-inline: 24px; }
    .founders__grid { gap: 40px; }
    .founder__photo { flex-basis: 160px; width: 160px; height: 160px; }
    .founder__header { gap: 20px; }
}
@media (max-width: 1100px) {
    .site-header, .fca-home .site-header { padding-block: 28px; }
    .site-header__inner { flex-wrap: wrap; gap: 0; }
    .site-navigation { flex: 0 0 100%; flex-direction: column; align-items: stretch; gap: 18px; margin-top: 24px; padding: 24px; background: var(--fca-ink); border: 1px solid rgba(255,255,255,.15); }
    .primary-menu { flex-direction: column; align-items: stretch; gap: 2px; }
    .primary-menu a { padding: 14px 8px; font-size: 15px; }
    .button--header { width: 100%; }
    .has-navigation-js .menu-toggle { display: block; }
    .has-navigation-js .site-navigation { display: none; }
    .has-navigation-js.menu-is-open .site-navigation { display: flex; }
    .fca-home .site-header:not(.has-navigation-js) { position: relative; background: var(--fca-ink); }
    .hero__inner { padding-top: 165px; }
    .site-header:not(.has-navigation-js) + main .hero__inner { padding-top: 60px; }
    .hero__heading { max-width: 660px; font-size: 50px; }
    .hero__intro { padding: 36px 40px; font-size: 22px; }
    .patterned > .frame-pattern { right: -18px; left: 70px; }
    .placement__cards { gap: 24px; }
    .process-step { gap: 30px; grid-template-columns: 130px minmax(0, 1fr); }
    .process-step__number { font-size: 190px; }
    .process-step h3 { font-size: 32px; }
    .process-step .rich-text { font-size: 22px; }
    .experience__content { width: 78%; }
    .experience h2 { font-size: 44px; }
    .experience__intro { font-size: 22px; }
    .founder__header { flex-direction: column; align-items: flex-start; }
    .audience__panel { gap: 28px; padding-inline: 32px; }
    .audience h2 { font-size: 30px; }
}
@media (max-width: 800px) {
    h2 { font-size: 34px; }
    body { font-size: 17px; }
    .section { padding-block: 65px; }
    .hero__visual { clip-path: none; }
    .hero__visual::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(34,35,44,.75), rgba(34,35,44,.35)); }
    .hero__image { left: 0; width: 100%; height: 100%; min-height: 0; object-position: 60% center; }
    .hero__heading { max-width: 610px; font-size: 44px; }
    .hero__intro { width: calc(100% - 24px); padding: 30px; font-size: 20px; margin-top: 38px; }
    .hero__explore { margin-top: 60px; }
    .placement { padding-top: 105px; }
    .placement__intro { margin-bottom: 70px; }
    .placement__cards { grid-template-columns: 1fr; gap: 64px; }
    .placement-card { min-height: 0; padding: 56px 30px 30px; }
    .patterned > .frame-pattern { inset: 60px -14px -26px 48px; }
    .process { padding-top: 25px; padding-bottom: 0; }
    .process__steps { margin-top: 35px; margin-bottom: 42px; }
    .process-step { grid-template-columns: 85px minmax(0, 1fr); gap: 24px; margin-bottom: 36px; }
    .process-step__number { font-size: 125px; }
    .process-step__content { padding-top: 0; }
    .process-step h3 { font-size: 28px; margin-bottom: 16px; }
    .process-step .rich-text { font-size: 19px; }
    .platforms-callout { padding: 30px; }
    .platforms-callout h3 { font-size: 22px; }
    .beyond { padding-bottom: 85px; }
    .beyond .direction-cue { display: none; }
    .beyond__lead { font-size: 22px; }
    .experience { padding: 0; }
    .experience__panel { margin-left: 16px; width: calc(100% - 16px); }
    .experience__visual { left: -16px; width: 82%; height: 580px; }
    .experience__image { left: 0; top: 0; width: 100%; max-width: 100%; height: 100%; object-fit: cover; object-position: 55% 65%; opacity: .25; }
    .experience__inner { padding-block: 75px; }
    .experience__content { width: 100%; }
    .experience h2 { font-size: 40px; }
    .experience__intro { font-size: 20px; }
    .experience-card { padding: 24px; }
    .experience-card h3 { font-size: 22px; }
    .frame-pattern--experience { left: 40px; right: 24px; inset-block: -30px -40px; }
    .founders { padding-top: 110px; padding-bottom: 100px; }
    .founders__grid { grid-template-columns: 1fr; gap: 48px; }
    .founder__header { flex-direction: row; align-items: center; }
    .founder__photo { flex-basis: 150px; width: 150px; height: 150px; }
    .founder h3 { font-size: 22px; }
    .founder__role { font-size: 22px; }
    .audiences { padding-top: 0; padding-bottom: 90px; }
    .audience + .audience { margin-top: 96px; }
    .audience__panel { grid-template-columns: 1fr; gap: 24px; padding: 56px 28px 28px; }
    .audience h2 { font-size: 30px; }
    .contact { padding-block: 60px; }
    .contact h2 { font-size: 44px; margin-bottom: 28px; }
    .contact__intro, .contact__email { font-size: 20px; }
    #contact { --fca-form-gap-x: 20px; --fca-control-height: 58px; --fca-control-font-size: 20px; --fca-control-padding-x: 18px; --fca-control-padding-y: 15px; }
    .form-preview :is(input, textarea, select) { min-height: 58px; padding: 15px 18px; font-size: 20px; }
    .form-preview__grid { column-gap: 20px; }
    .site-footer__legal { font-size: 13px; }
}
@media (max-width: 782px) {
    .admin-bar.fca-home .site-header { top: 46px; }
}
@media (max-width: 640px) {
    .form-preview__grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
    #contact { --fca-form-gap-y: 16px; }
    #contact .gform_wrapper .gform_fields { grid-template-columns: minmax(0,1fr) !important; }
    #contact .gform_wrapper .gfield[class*="gfield--width"] { grid-column: 1 / -1 !important; }
    #contact .gform_wrapper .ginput_container_name.gf_name_has_2 { grid-template-columns: minmax(0, 1fr); }
    #contact .gform_wrapper .ginput_container_name > .gform-grid-col { width: 100%; }
    .audience h2 mark { white-space: normal; }
    .site-footer__links { flex-direction: column; gap: 8px; }
    .site-footer__links > * + *::before { content: none; }
}
@media (max-width: 480px) {
    .container { width: calc(100% - 40px); }
    .site-header__inner { width: calc(100% - 40px); }
    .site-branding { flex-basis: 210px; }
    .brand-logo, .custom-logo { width: 210px; }
    h2 { font-size: 30px; }
    .hero__inner { padding-top: 148px; }
    .hero__heading { font-size: clamp(32px, 8.8vw, 42px); line-height: 1.3; }
    .hero__intro { padding: 26px 24px; font-size: 18px; }
    .hero__explore { width: 220px; margin-left: calc(50% - 110px); }
    .hero__explore .button { min-width: 220px; }
    .hero__route-line { left: 50%; top: 52%; }
    .direction-cue--down { left: calc(50% - 10px); }
    .placement__heading { font-size: 29px; }
    .icon-badge { width: 76px; height: 76px; top: -38px; left: 24px; }
    .placement-card h3 { font-size: 23px; }
    .process-step { grid-template-columns: 44px minmax(0,1fr); gap: 16px; }
    .process-step__number { font-size: 72px; line-height: 1; }
    .process-step h3 { font-size: 25px; }
    .process-step .rich-text { font-size: 17px; }
    .platforms-callout { padding: 26px 20px; }
    .platforms-callout h3 { font-size: 20px; }
    .beyond__lead { font-size: 20px; }
    .experience h2 { font-size: 34px; }
    .experience__intro { font-size: 18px; }
    .experience-card { padding: 22px 20px; }
    .founder__photo { flex-basis: 120px; width: 120px; height: 120px; }
    .founder__header { gap: 18px; }
    .founder h3 { font-size: 20px; }
    .founder__role { font-size: 19px; }
    .audience__panel { padding-inline: 24px; }
    .audience h2 { font-size: 28px; }
    .benefits li { gap: 12px; font-size: 16px; }
    .benefits__check { flex-basis: 32px; width: 32px; height: 32px; }
    .benefits__check::after { top: 7px; left: 10px; }
    .contact h2 { font-size: 38px; }
    .contact__intro { font-size: 18px; }
    .contact__email { font-size: 19px; }
    #contact { --fca-control-height: 56px; --fca-control-font-size: 18px; }
    .frame-pattern--footer { top: 0; left: -20px; right: 100px; height: auto; aspect-ratio: 3384 / 992; }
    .site-footer__mark { top: -3px; right: 0; width: 104px; height: 104px; }
    .site-footer__decoration { height: 108px; }
    .site-footer { padding-bottom: 40px; }
    .alignleft, .alignright { float: none; margin: 0 0 24px; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { transition: none !important; animation: none !important; }
}

/* Keep the experience frame proportional. */
#why-us .frame-pattern--experience {
    inset: -65px 90px -90px 230px;
    overflow: hidden;
}

#why-us .frame-pattern--experience .frame-pattern__image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: auto;
    object-fit: contain;
}

/* Separate proportional graphic for the lower edge. */
#why-us .frame-pattern--experience::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    aspect-ratio: 3384 / 992;
    background: url("assets/images/frame-pattern.png")
        center bottom / 100% auto no-repeat;
    filter: brightness(0);
    opacity: .18;
}

@media (max-width: 800px) {
    #why-us .frame-pattern--experience {
        inset: -30px 24px -40px 40px;
    }
}

/* Center the tick independently of the circle size. */
.benefits .benefits__check::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    right: auto;
    bottom: auto;
    width: 18px;
    height: 14px;
    border: 0;
    transform: translate(-50%, -50%);
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 14'%3E%3Cpath d='M1 7l5 5L17 2' fill='none' stroke='%2322232c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")
        center / contain no-repeat;
}