/**
 * therapy template — "Midnight & Leather". Source: MOCKUP/assets/css/johnnicholspsychotherapy.css (kept in sync).
 * Binding rules: RESEARCH/design-system.md. Palette only via tokens.css (--template-*);
 * brass on navy only; 3px max radius; Oswald headings/labels/buttons, Open Sans body.
 */

@font-face { font-family: "Oswald"; src: url("../fonts/oswald-latin.woff2") format("woff2"); font-weight: 200 700; font-display: swap; }
@font-face { font-family: "Open Sans"; src: url("../fonts/open-sans-latin.woff2") format("woff2"); font-weight: 300 800; font-display: swap; }

:root {
    --navy: var(--template-primary);
    --navy-deep: var(--template-primary-active);
    --leather: var(--template-secondary);
    --brass: var(--template-accent);
    --brass-light: var(--template-accent-hover);
    --paper: var(--template-bg-alt);
    --white: var(--template-bg);
    --slate: var(--template-text-secondary);
    --line: var(--template-border);
    --bottom-text: #B9C0CA;

    --f-label: "Oswald", "Arial Narrow", Arial, sans-serif;
    --f-body: "Open Sans", Arial, Helvetica, sans-serif;
    --r: 3px;
    --ease: cubic-bezier(0.32, 0.72, 0, 1);
    --dur: 500ms;
    --header-h: 88px;
    --shadow-1: 0 1px 2px rgba(28, 43, 58, .06), 0 4px 16px rgba(28, 43, 58, .06);
    --shadow-2: 0 2px 12px rgba(28, 43, 58, .10);
    --section-y: clamp(3rem, 4vw, 4rem);

    --bs-body-font-family: var(--f-body);
    --bs-body-color: var(--navy);
    --bs-body-bg: var(--white);
    --bs-border-color: var(--line);
    --bs-border-radius: var(--r);
}

/* ---------- Base ---------- */
html { scroll-padding-top: calc(var(--header-h) + 1rem); }
body { font-family: var(--f-body); font-size: 0.875rem; line-height: 1.65; color: var(--navy); background: var(--white); -webkit-font-smoothing: antialiased; }
p { max-width: 68ch; }
h1, h2, h3 { font-family: var(--f-label); font-weight: 500; color: inherit; letter-spacing: 0.01em; text-wrap: balance; }
h1, h2 { text-transform: uppercase; }
h1 { font-size: clamp(2rem, 5vw, 3rem); line-height: 1.12; }
h2 { font-size: clamp(1.5rem, 3.2vw, 2.25rem); line-height: 1.18; }
h3 { font-size: 1.25rem; line-height: 1.25; }
a { color: var(--leather); text-underline-offset: 0.2em; }
a:hover { color: var(--navy); }
.lead { font-size: 1rem; line-height: 1.6; }
.text-slate { color: var(--slate); }


:focus-visible { outline: 3px solid var(--leather); outline-offset: 2px; }
.on-navy :focus-visible, .site-footer :focus-visible, .utility-bar :focus-visible { outline-color: var(--brass); }
.skip-link { position: absolute; left: 1rem; top: -200px; z-index: 2100; background: var(--navy); color: var(--white); font-family: var(--f-label); text-transform: uppercase; letter-spacing: .06em; padding: .75rem 1.25rem; border-radius: var(--r); text-decoration: none; }
.skip-link:focus { top: .75rem; color: var(--white); outline-color: var(--brass); }

/* ---------- Labels ---------- */
.eyebrow {
    display: inline-flex; align-items: center; gap: .75rem; margin-bottom: 1.25rem;
    font-family: var(--f-label); font-weight: 500; font-size: .8rem; line-height: 1.3; letter-spacing: .14em; text-transform: uppercase; color: var(--leather);
}
.eyebrow::before { content: ""; width: 2.5rem; height: 1px; background: currentColor; }
.on-navy .eyebrow { color: var(--brass-light); }
.on-navy .eyebrow::before { background: var(--brass); }
.eyebrow.centered { justify-content: center; }

/* ---------- Buttons: square-cornered, with a boxed trailing icon ---------- */
.btn-lux {
    --btn-bg: var(--navy); --btn-fg: var(--white); --btn-bd: var(--navy); --btn-icobg: rgba(255, 255, 255, .12);
    display: inline-flex; align-items: center; gap: 1rem; min-height: 52px; padding: .4rem .45rem .4rem 1.5rem;
    background: var(--btn-bg); color: var(--btn-fg); border: 1px solid var(--btn-bd); border-radius: var(--r);
    font-family: var(--f-label); font-weight: 500; font-size: .95rem; line-height: 1; letter-spacing: .06em; text-transform: uppercase; text-decoration: none;
    transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease), border-color var(--dur) var(--ease), transform 200ms var(--ease);
}
.btn-lux .btn-ico { display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; border-radius: 2px; background: var(--btn-icobg); transition: transform var(--dur) var(--ease); }
.btn-lux .btn-ico svg { width: 1rem; height: 1rem; }
.btn-lux:hover { color: var(--btn-fg); }
.btn-lux:hover .btn-ico { transform: translateX(3px); }
.btn-lux:active { transform: scale(.98); }
.btn-lux.primary:hover { --btn-bg: var(--template-primary-hover); border-bottom-color: var(--brass); }
.btn-lux.brass { --btn-bg: var(--brass); --btn-fg: var(--navy); --btn-bd: var(--brass); --btn-icobg: rgba(28, 43, 58, .12); }
.btn-lux.brass:hover { --btn-bg: var(--brass-light); --btn-bd: var(--brass-light); }
.btn-lux.ghost-light { --btn-bg: transparent; --btn-fg: var(--paper); --btn-bd: rgba(250, 248, 244, .55); --btn-icobg: rgba(250, 248, 244, .1); }
.btn-lux.ghost-light:hover { --btn-bg: var(--paper); --btn-fg: var(--navy); --btn-bd: var(--paper); --btn-icobg: rgba(28, 43, 58, .08); }
.btn-lux.ghost { --btn-bg: transparent; --btn-fg: var(--navy); --btn-bd: var(--navy); --btn-icobg: rgba(28, 43, 58, .07); }
.btn-lux.ghost:hover { --btn-bg: var(--navy); --btn-fg: var(--white); --btn-icobg: rgba(255, 255, 255, .12); }
.btn-row { display: flex; flex-wrap: wrap; gap: .75rem; }

.link-lux { display: inline-flex; align-items: center; gap: .6rem; min-height: 44px; font-family: var(--f-label); font-weight: 500; font-size: .9rem; letter-spacing: .08em; text-transform: uppercase; color: var(--leather); text-decoration: none; }
.link-lux svg { width: 1rem; height: 1rem; transition: transform var(--dur) var(--ease); }
.link-lux:hover { color: var(--navy); }
.link-lux:hover svg, .persona:hover .link-lux svg { transform: translateX(4px); }
.on-navy .link-lux { color: var(--brass-light); }
.on-navy .link-lux:hover { color: var(--paper); }

.ico { width: 1.15rem; height: 1.15rem; flex: none; fill: none; stroke: currentColor; stroke-width: 1.25; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- Utility bar + header ---------- */
.utility-bar { background: var(--navy); color: var(--paper); font-size: .8rem; border-bottom: 1px solid rgba(184, 146, 90, .35); }
.utility-bar .container { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 38px; }
.utility-bar p { margin: 0; letter-spacing: .02em; }
.utility-bar p strong { color: var(--brass-light); font-weight: 600; }
.utility-bar ul { display: flex; gap: 1.5rem; margin: 0; padding: 0; list-style: none; }
.utility-bar a { display: inline-flex; align-items: center; gap: .4rem; min-height: 24px; color: var(--paper); text-decoration: none; }
.utility-bar a:hover { color: var(--brass-light); }
.utility-bar .ico { width: .95rem; height: .95rem; color: var(--brass); }
@media (max-width: 767.98px) { .utility-bar .container { justify-content: center; } .utility-bar .u-msg, .utility-bar .u-portal { display: none; } }

.site-header { position: sticky; top: 0; z-index: 1030; background: var(--white); border-bottom: 1px solid var(--line); transition: box-shadow var(--dur) var(--ease); }
.site-header.is-scrolled { box-shadow: var(--shadow-2); }
.site-header .navbar { min-height: var(--header-h); padding: .5rem 0; transition: min-height var(--dur) var(--ease); }
.site-header.is-scrolled .navbar { min-height: 68px; }
.navbar-brand { padding: 0; margin-right: 2rem; }
.navbar-brand img { display: block; height: 52px; width: auto; transition: height var(--dur) var(--ease); }
.site-header.is-scrolled .navbar-brand img { height: 42px; }
@media (max-width: 575.98px) { .navbar-brand img { height: 40px; } }
.site-header .nav-link {
    position: relative; display: inline-flex; align-items: center; gap: .3rem; padding: .9rem .85rem;
    font-family: var(--f-label); font-weight: 500; font-size: .95rem; line-height: 1; letter-spacing: .06em; text-transform: uppercase; color: var(--navy);
}
.site-header .nav-link::before { content: ""; position: absolute; left: .85rem; right: .85rem; bottom: .45rem; height: 1px; background: var(--leather); transform: scaleX(0); transform-origin: left; transition: transform var(--dur) var(--ease); }
.site-header .nav-link:hover::before, .site-header .nav-link.active::before, .site-header .nav-link[aria-expanded="true"]::before { transform: scaleX(1); }
.site-header .nav-link:hover, .site-header .nav-link:focus-visible { color: var(--leather); }
.site-header .nav-link:focus-visible, .dropdown-item:focus-visible, .btn-close:focus-visible { outline: 3px solid var(--leather); outline-offset: 2px; box-shadow: none; }
.site-header .dropdown-toggle::after { border-top-color: currentColor; margin-left: .2rem; }
.site-header .dropdown-menu { border: 1px solid var(--line); border-top: 2px solid var(--leather); border-radius: var(--r); box-shadow: var(--shadow-2); padding: .5rem 0; min-width: 16rem; }
.site-header .dropdown-item { font-size: .875rem; padding: .6rem 1.15rem; color: var(--navy); }
.site-header .dropdown-item:hover, .site-header .dropdown-item:focus { background: var(--paper); color: var(--leather); }
.header-actions { display: flex; align-items: center; gap: .5rem; margin-left: auto; }
.header-actions .btn-lux { min-height: 46px; }
@media (min-width: 1200px) {
    .header-actions { margin-left: 2.5rem; padding-left: 2.5rem; border-left: 1px solid var(--line); }
}
.btn-square { width: 46px; height: 46px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--navy); border-radius: var(--r); background: transparent; color: var(--navy); }
.btn-square:hover { background: var(--navy); color: var(--white); }
@media (max-width: 1199.98px) {
    .offcanvas-navy { background: var(--navy); color: var(--paper); }
    .offcanvas-navy .offcanvas-header { border-bottom: 1px solid rgba(184, 146, 90, .5); }
    .offcanvas-navy .nav-link { width: 100%; justify-content: space-between; color: var(--paper); font-size: 1.1rem; padding: .95rem 0; border-bottom: 1px solid rgba(250, 248, 244, .12); }
    .offcanvas-navy .nav-link::before { display: none; }
    .offcanvas-navy .nav-link:hover, .offcanvas-navy .nav-link.active { color: var(--brass-light); }
    .offcanvas-navy .nav-link:focus-visible, .offcanvas-navy .dropdown-item:focus-visible, .offcanvas-navy .btn-close:focus-visible { outline-color: var(--brass); }
    .offcanvas-navy .dropdown-menu { position: static; background: transparent; border: 0; box-shadow: none; padding: 0 0 .5rem 1rem; }
    .offcanvas-navy .dropdown-item { color: var(--brass-light); padding: .55rem 0; }
    .offcanvas-navy .dropdown-item:hover, .offcanvas-navy .dropdown-item:focus { background: transparent; color: var(--paper); }
    .offcanvas-navy .btn-close { filter: invert(1) grayscale(1) brightness(2); opacity: 1; }
    .offcanvas-navy .offcanvas-foot { margin-top: auto; padding-top: 1.5rem; font-size: .8rem; color: var(--bottom-text); }
    .offcanvas-navy .offcanvas-foot a { color: var(--brass-light); }
}
@media (min-width: 1200px) { .offcanvas-only { display: none !important; } }

/* ---------- Hero (silent video loop, poster placeholder) ---------- */
.hero { position: relative; isolation: isolate; overflow: hidden; background: var(--navy); color: var(--paper); }
.hero-media { position: absolute; inset: 0; z-index: -2; }
.hero-media img, .hero-media video { width: 100%; height: 100%; object-fit: cover; object-position: 60% 50%; display: block; }
.hero::before {
    content: ""; position: absolute; inset: 0; z-index: -1;
    background:
        linear-gradient(90deg, rgba(20, 31, 42, .94) 0%, rgba(28, 43, 58, .82) 38%, rgba(28, 43, 58, .30) 72%, rgba(28, 43, 58, .15) 100%),
        linear-gradient(0deg, rgba(20, 31, 42, .85) 0%, rgba(20, 31, 42, 0) 35%);
}
@media (max-width: 991.98px) { .hero::before { background: linear-gradient(180deg, rgba(20, 31, 42, .70) 0%, rgba(28, 43, 58, .88) 55%, rgba(20, 31, 42, .97) 100%); } }
.hero-inner { min-height: clamp(560px, 78vh, 820px); display: flex; flex-direction: column; justify-content: flex-end; padding-top: clamp(4rem, 10vw, 8rem); }
.hero-copy { max-width: 40rem; padding-bottom: clamp(2.5rem, 6vw, 4.5rem); }
.hero h1 { font-size: clamp(2rem, 5vw, 3rem); line-height: 1.15; color: var(--white); margin-bottom: 1.5rem; }
.hero h1 .accent { color: var(--brass-light); }
.hero .lead { font-size: clamp(1rem, 1.4vw, 1.125rem); color: var(--paper); max-width: 34rem; margin-bottom: 2.25rem; }
.hero-assure { display: grid; gap: 1rem; border-top: 1px solid rgba(184, 146, 90, .45); padding: 1.5rem 0 2rem; margin: 0; list-style: none; }
@media (min-width: 768px) { .hero-assure { grid-template-columns: repeat(3, auto); justify-content: space-between; } }
.hero-assure li { display: flex; align-items: center; gap: .75rem; font-family: var(--f-label); font-weight: 500; font-size: .85rem; letter-spacing: .1em; text-transform: uppercase; color: var(--paper); }
.hero-assure .ico { color: var(--brass); width: 1.35rem; height: 1.35rem; }
.video-toggle {
    position: absolute; right: 1.5rem; top: 1.5rem; z-index: 2; display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; padding: 0 1rem;
    background: rgba(20, 31, 42, .55); color: var(--paper); border: 1px solid rgba(250, 248, 244, .35); border-radius: var(--r);
    font-family: var(--f-label); font-size: .8rem; letter-spacing: .1em; text-transform: uppercase;
}
.video-toggle:hover { border-color: var(--brass); color: var(--brass-light); }
.video-toggle .ico { width: 1rem; height: 1rem; }
.placeholder-tag { position: absolute; left: 50%; top: 1.5rem; transform: translateX(-50%); z-index: 2; padding: .35rem .75rem; border: 1px dashed rgba(201, 169, 120, .8); color: var(--brass-light); font-family: var(--f-label); font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; background: rgba(20, 31, 42, .6); border-radius: var(--r); }
@media (max-width: 767.98px) { .placeholder-tag { display: none; } }

/* ---------- Sections ---------- */
.sec { padding-block: var(--section-y); }
.bg-paper { background: var(--paper); }
.on-navy { background: var(--navy); color: var(--paper); }
.on-navy h2, .on-navy h3 { color: var(--white); }

/* Statement / "Sound familiar?" */
.statement h2 { font-size: clamp(1.9rem, 4vw, 3rem); line-height: 1.12; }
.statement .kicker { font-size: 1rem; color: var(--navy); max-width: 30rem; }
.needs { list-style: none; margin: 0; padding: 0; display: grid; border-top: 1px solid rgba(140, 90, 43, .35); }
@media (min-width: 768px) { .needs { grid-template-columns: 1fr 1fr; column-gap: 2.5rem; } }
.needs li { display: grid; grid-template-columns: 2.5rem 1fr; gap: .5rem; align-items: baseline; padding: 1.25rem 0; border-bottom: 1px solid rgba(140, 90, 43, .35); font-size: 1.05rem; line-height: 1.45; }
.needs .n { font-family: var(--f-label); font-size: .8rem; letter-spacing: .1em; color: var(--leather); }
.needs em { font-style: normal; font-weight: 600; }

/* Personas: paper section, white cards (DESIGN.md pillar cards), aligned 4-up. */
#j2c-home-personas > .container-fluid { padding-inline: clamp(1rem, 4vw, 4.5rem); }
.personas-head { display: grid; gap: 1.5rem; margin-bottom: clamp(2.5rem, 5vw, 4rem); }
@media (min-width: 992px) { .personas-head { grid-template-columns: 1.1fr 1fr; align-items: end; } }
.personas-head p { margin: 0; font-size: 1rem; }
.persona-grid { display: grid; gap: 1.5rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .persona-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1200px) { .persona-grid { grid-template-columns: repeat(4, 1fr); gap: clamp(1.5rem, 2.2vw, 2.75rem); } }
.persona { position: relative; margin: 0; display: flex; flex-direction: column; background: var(--white); border: 1px solid var(--line); border-top: 3px solid var(--line); border-radius: var(--r); padding: .6rem; transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease); }
.persona:hover, .persona:focus-within { border-top-color: var(--brass); box-shadow: var(--shadow-1); }
.persona-img { position: relative; overflow: hidden; border-radius: 2px; aspect-ratio: 1 / 1; background: var(--paper); }
.persona-img img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; display: block; transition: transform 900ms var(--ease); }
.persona:hover .persona-img img, .persona:focus-within .persona-img img { transform: scale(1.05); }
.persona-body { padding: 1.5rem 1.1rem 1rem; display: flex; flex-direction: column; gap: .65rem; flex: 1; }
.persona-label { display: flex; align-items: center; gap: .6rem; font-family: var(--f-label); font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: var(--leather); }
.persona-label::before { content: ""; width: 1.25rem; height: 1px; background: var(--leather); }
.persona h3 { font-size: 1.3rem; line-height: 1.22; margin: 0; color: var(--navy); }
.persona p { margin: 0; font-size: .875rem; }
.persona .link-lux { margin-top: auto; padding-top: .5rem; }
.persona .stretched-link:focus-visible { outline: none; }
.persona .stretched-link:focus-visible::after { outline: 3px solid var(--leather); outline-offset: 2px; }

/* How it works */
.steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 2.5rem; counter-reset: s; position: relative; }
@media (min-width: 768px) {
    .steps { grid-template-columns: repeat(3, 1fr); gap: 3rem; }
    .steps::before { content: ""; position: absolute; top: 2.25rem; left: 0; right: 0; height: 1px; background: var(--line); }
}
.steps li { counter-increment: s; position: relative; }
.steps li::before {
    content: counter(s, decimal-leading-zero); position: relative; display: inline-flex; align-items: center; justify-content: center;
    width: 4.5rem; height: 4.5rem; margin-bottom: 1.5rem; background: var(--white); border: 1px solid var(--leather); border-radius: var(--r);
    font-family: var(--f-label); font-weight: 500; font-size: 1.6rem; color: var(--leather); letter-spacing: .04em;
}
.steps h3 { margin-bottom: .5rem; }
.steps p { margin: 0; font-size: .95rem; }

/* How it works on navy (wireframe 1a): brass numerals, paper copy. */
.on-navy .steps::before { background: rgba(184, 146, 90, .35); }
.on-navy .steps li::before { background: var(--navy); border-color: var(--brass); color: var(--brass); }
.on-navy .steps p, .on-navy p { color: var(--paper); }

/* Meet John */
.john-figure { position: relative; margin: 0; max-width: 460px; }
.john-frame { display: block; padding: .75rem; border: 1px solid var(--leather); border-radius: var(--r); }
.john-frame img { width: 100%; height: auto; display: block; border-radius: var(--r); }
.john-figure figcaption { margin-top: .75rem; font-size: .8rem; color: var(--slate); }
.creds { display: grid; gap: 0; margin: 2rem 0; border-top: 1px solid var(--line); }
@media (min-width: 576px) { .creds { grid-template-columns: 1fr 1fr; column-gap: 2rem; } }
.creds div { padding: 1rem 0; border-bottom: 1px solid var(--line); }
.creds dt { font-family: var(--f-label); font-weight: 500; font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: var(--leather); margin-bottom: .2rem; }
.creds dd { margin: 0; font-size: .9rem; }

.endorse { margin: clamp(3.5rem, 7vw, 6rem) auto 0; max-width: 52rem; text-align: center; }
.endorse::before { content: "\201C"; display: block; font-family: var(--f-label); font-size: 5rem; line-height: .6; color: var(--leather); margin-bottom: 1rem; }
.endorse blockquote { margin: 0; font-family: var(--f-body); font-weight: 400; font-size: clamp(1.15rem, 2.2vw, 1.5rem); line-height: 1.55; color: var(--navy); }
.endorse figcaption { margin-top: 1.5rem; font-family: var(--f-label); font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; color: var(--leather); }
.endorse figcaption span { display: block; margin-top: .35rem; font-family: var(--f-body); letter-spacing: 0; text-transform: none; color: var(--slate); }

/* Investment */
.invest-card { background: var(--white); border: 1px solid var(--line); border-top: 3px solid var(--navy); border-radius: var(--r); padding: clamp(1.75rem, 4vw, 2.75rem); box-shadow: var(--shadow-1); }
.fees { list-style: none; margin: 0; padding: 0; }
.fees li { display: grid; grid-template-columns: auto 1fr; gap: .25rem 1.5rem; align-items: baseline; padding: 1.25rem 0; border-bottom: 1px solid var(--line); }
.fees li:first-child { padding-top: 0; }
.fees .price.price-word { font-size: clamp(1.35rem, 2.6vw, 1.7rem); }
.fees .price { grid-row: span 2; font-family: var(--f-label); font-weight: 500; font-size: clamp(2rem, 4vw, 2.6rem); line-height: 1; color: var(--navy); font-variant-numeric: tabular-nums; min-width: 7.25rem; }
.fees .what { font-family: var(--f-label); font-size: .9rem; letter-spacing: .08em; text-transform: uppercase; }
.fees .note { font-size: .85rem; color: var(--slate); }
.benefits { list-style: none; margin: 1.75rem 0; padding: 0; display: grid; gap: 1rem; }
.benefits li { display: grid; grid-template-columns: 1.5rem 1fr; gap: .75rem; }
.benefits .ico { color: var(--leather); margin-top: .1rem; }
.benefits strong { display: block; font-weight: 600; }

/* Journal */
.post { position: relative; display: flex; flex-direction: column; height: 100%; }
.post-img { overflow: hidden; border-radius: var(--r); margin-bottom: 1.25rem; aspect-ratio: 3 / 2; background: var(--line); }
.post-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 900ms var(--ease); }
.post:hover .post-img img { transform: scale(1.04); }
.post-meta { font-family: var(--f-label); font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; color: var(--leather); margin-bottom: .5rem; }
.post h3 { font-size: 1.2rem; margin-bottom: .6rem; }
.post h3 a { color: var(--navy); text-decoration: none; background: linear-gradient(var(--leather), var(--leather)) 0 100% / 0 1px no-repeat; transition: background-size var(--dur) var(--ease); }
.post:hover h3 a, .post h3 a:focus-visible { background-size: 100% 1px; }
.post p { margin: 0; }
.post .stretched-link:focus-visible { outline: none; }
.post .stretched-link:focus-visible::after { outline: 3px solid var(--leather); outline-offset: 4px; }

/* FAQ */
.faq { border-top: 1px solid var(--line); }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 44px; padding: 1.35rem 0; font-family: var(--f-label); font-weight: 500; font-size: 1.1rem; letter-spacing: .02em; color: var(--navy); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
    content: ""; flex: none; width: 16px; height: 16px; transition: transform var(--dur) var(--ease);
    background: linear-gradient(var(--leather), var(--leather)) center / 100% 1.5px no-repeat, linear-gradient(var(--leather), var(--leather)) center / 1.5px 100% no-repeat;
}
.faq details[open] > summary::after { transform: rotate(135deg); }
.faq summary:hover { color: var(--leather); }
.faq .a { padding: 0 3rem 1.5rem 0; }
.faq .a p { margin: 0; }

/* CTA band (global) */
.cta-band { background: var(--paper); text-align: center; border-top: 1px solid var(--line); }
.cta-band h2 { max-width: 44rem; margin: 0 auto 1rem; font-size: clamp(1.6rem, 3.4vw, 2.5rem); }
.cta-band p { margin: 0 auto 2rem; font-size: 1rem; }
.cta-band .btn-row { justify-content: center; }

/* Footer */
.site-footer { background: var(--navy); color: var(--paper); border-top: 4px solid var(--brass); font-size: .875rem; }
.site-footer .f-main { padding: clamp(3rem, 6vw, 5rem) 0 3rem; }
.site-footer h2 { font-family: var(--f-label); font-weight: 500; font-size: .85rem; letter-spacing: .14em; text-transform: uppercase; color: var(--brass-light); margin-bottom: 1.1rem; }
.site-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .3rem; }
.site-footer a { display: inline-flex; align-items: center; min-height: 28px; color: var(--brass-light); text-decoration: none; }
.site-footer a:hover { color: var(--paper); text-decoration: underline; }
.site-footer address { font-style: normal; margin-bottom: .75rem; }
.f-logo img {width:100%; height: auto; display: block; margin-bottom: 1.25rem; }
.f-bottom { background: var(--navy-deep); color: var(--bottom-text); font-size: .8rem; padding: 1.1rem 0; }
.f-bottom ul { display: flex; flex-wrap: wrap; gap: .25rem 1.5rem; }
.f-bottom a { color: var(--bottom-text); text-decoration: underline; text-decoration-color: rgba(185, 192, 202, .4); min-height: 24px; }
.f-bottom a:hover { color: var(--paper); }
.f-bottom .crisis, .f-bottom .crisis a { color: var(--paper); font-weight: 600; }
.f-bottom p { max-width: none; margin: .5rem 0 0; }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; scroll-behavior: auto !important; }
    .persona:hover .persona-img img, .post:hover .post-img img { transform: none; }
}

/* =====================================================================
   Inner pages (v2) — generated by MOCKUP/_dev/gen; same tokens as home.
   ===================================================================== */
.kicker { font-size: 1rem; color: var(--navy); }
.sec-tight { padding-block: clamp(2.5rem, 5vw, 4.5rem); }
.site-header .dropdown-item.active, .site-header .dropdown-item:active { background: var(--paper); color: var(--leather); }
@media (max-width: 1199.98px) { .offcanvas-navy .dropdown-item.active { background: transparent; color: var(--paper); text-decoration: underline; } }

/* Page hero: the page's one navy band */
.page-hero { padding-block: clamp(2rem, 4vw, 3rem) clamp(3rem, 7vw, 3.5rem); border-bottom: 1px solid rgba(184, 146, 90, .45); }
.page-hero h1 { color: var(--white); margin-bottom: 1.25rem; }
.page-hero h1 .accent { color: var(--brass-light); }
.page-hero .lead { font-size: clamp(1rem, 1.4vw, 1.125rem); max-width: 38rem; margin-bottom: 2rem; }
.page-hero .lead:last-child { margin-bottom: 0; }
.page-hero .hero-updated { display: flex; align-items: center; gap: .5rem; font-family: var(--f-label); font-size: .8rem; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: var(--brass-light); margin:0; }
.page-hero .hero-updated .ico { width: 1rem; height: 1rem; }
.page-hero .breadcrumb { --bs-breadcrumb-divider-color: var(--brass); --bs-breadcrumb-item-active-color: var(--paper); margin-bottom: clamp(2rem, 5vw, 3.5rem); font-size: .8rem; }
.page-hero .breadcrumb-item, .page-hero .breadcrumb-item a { color: var(--brass-light); }
.page-hero .breadcrumb-item.active { color: var(--paper); }
.page-hero .breadcrumb-item a { text-decoration: none; display: inline-flex; min-height: 24px; align-items: center; }
.page-hero .breadcrumb-item a:hover { color: var(--paper); text-decoration: underline; }
.page-hero-frame { display: block; padding: .75rem; border: 1px solid var(--brass); border-radius: var(--r); }
.page-hero-frame img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 4.4; object-fit: cover; object-position: 50% 30%; border-radius: var(--r); }
.page-hero-figure.portrait { max-width: 360px; margin-inline: auto 0; }
.page-hero-figure.portrait img { aspect-ratio: 2 / 3; }
@media (max-width: 991.98px) { .page-hero-figure { max-width: 420px; } .page-hero-figure.portrait { margin-inline: 0; } }
.jump-list { display: flex; flex-wrap: wrap; gap: .5rem; margin: 2rem 0 0; padding: 0; list-style: none; }
.jump-list a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 1rem; border: 1px solid rgba(250, 248, 244, .45); border-radius: var(--r); color: var(--paper); font-family: var(--f-label); font-size: .85rem; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; }
.jump-list a:hover { border-color: var(--brass); color: var(--brass-light); }

/* Therapy pages (1g): content + sticky booking rail */
.rail-layout { display: grid; gap: 3rem; }
@media (min-width: 1200px) { .rail-layout { grid-template-columns: minmax(0, 1fr) 320px; gap: 5rem; align-items: start; } }
.content-col > section + section { margin-top: clamp(3.5rem, 7vw, 5.5rem); padding-top: clamp(3.5rem, 7vw, 5.5rem); border-top: 1px solid var(--line); }
.content-col h2 { margin-bottom: 1.75rem; }
.booking-rail { background: var(--white); border: 1px solid var(--line); border-top: 3px solid var(--navy); border-radius: var(--r); padding: 1.75rem; box-shadow: var(--shadow-1); }
@media (min-width: 1200px) { .rail-layout .booking-rail { position: sticky; top: calc(68px + 1.5rem); } }
.booking-rail .eyebrow { margin-bottom: .75rem; }
.booking-rail h2 { font-size: 1.5rem; margin-bottom: .75rem; }
.booking-rail .btn-lux { width: 100%; }
.rail-facts { list-style: none; margin: 1.5rem 0 0; padding: 1.25rem 0 0; border-top: 1px solid var(--line); display: grid; gap: 1rem; font-size: .85rem; }
.rail-facts li { display: grid; grid-template-columns: 1.4rem 1fr; gap: .75rem; }
.rail-facts .ico { color: var(--leather); margin-top: .1rem; }
.rail-facts strong { display: block; font-family: var(--f-label); font-weight: 500; font-size: 1rem; letter-spacing: .02em; }
.work-grid { display: grid; gap: 0 2.5rem; border-top: 1px solid rgba(140, 90, 43, .35); counter-reset: w; }
@media (min-width: 768px) { .work-grid { grid-template-columns: 1fr 1fr; } }
.work-item { padding: 1.5rem 0; border-bottom: 1px solid rgba(140, 90, 43, .35); counter-increment: w; }
.work-item h3 { display: flex; gap: .75rem; align-items: baseline; margin-bottom: .5rem; }
.work-item h3::before { content: counter(w, decimal-leading-zero); font-size: .8rem; letter-spacing: .1em; color: var(--leather); }
.work-item p { margin: 0; }
.method-note { margin-top: 2rem; background: var(--paper); border-left: 3px solid var(--leather); border-radius: 0 var(--r) var(--r) 0; padding: 1.5rem 1.75rem; }
.method-note h3 { margin-bottom: .4rem; }
.method-note p { margin: 0; }
.steps-compact::before { display: none; }
@media (min-width: 768px) { .steps-compact { gap: 2rem; } }
.steps-compact li::before { width: 3.5rem; height: 3.5rem; font-size: 1.25rem; margin-bottom: 1.1rem; }
.invest-line { font-size: 1rem; }
.endorse-inline { margin-top: 2.5rem; padding: 2.5rem 1.5rem 2rem; background: var(--paper); border-radius: var(--r); }
.endorse-inline blockquote { font-size: clamp(1.05rem, 1.8vw, 1.25rem); }
@media (min-width: 1200px) { .persona-grid.cols-3 { grid-template-columns: repeat(3, 1fr); } }
.personas-head p .link-lux { display: flex; margin-top: .5rem; }

/* Areas */
.area-grid { display: grid; gap: 1.5rem; grid-template-columns: 1fr; }
@media (min-width: 576px) { .area-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1200px) { .area-grid { grid-template-columns: repeat(4, 1fr); } }
.area-card { position: relative; display: flex; flex-direction: column; gap: .6rem; background: var(--white); border: 1px solid var(--line); border-top: 3px solid var(--line); border-radius: var(--r); padding: 1.5rem 1.4rem 1rem; transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease); }
.area-card:first-child { border-top-color: var(--navy); }
.area-card:hover, .area-card:focus-within { border-top-color: var(--brass); box-shadow: var(--shadow-1); }
.area-card h3 { margin: 0; font-size: 1.4rem; }
.area-card p { margin: 0; color: var(--slate); }
.area-card .link-lux { margin-top: auto; }
.area-card .stretched-link:focus-visible { outline: none; }
.area-card .stretched-link:focus-visible::after { outline: 3px solid var(--leather); outline-offset: 2px; }
.area-card-wide { grid-column: 1 / -1; }
.map-frame { border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; background: var(--paper); aspect-ratio: 4 / 3; }
.map-frame iframe { display: block; width: 100%; height: 100%; border: 0; }
.office-grid { display: grid; gap: 1.5rem; }
@media (min-width: 768px) { .office-grid { grid-template-columns: 1fr 1fr; gap: 2.5rem; } }
.office-grid figure { margin: 0; }
.office-grid img { width: 100%; height: auto; display: block; border-radius: var(--r); }
.office-grid figcaption { margin-top: .75rem; font-size: .8rem; color: var(--slate); }

/* Fees */
.feature-row { list-style: none; margin: 0; padding: 0; display: grid; gap: 2.5rem; border-top: 1px solid var(--line); }
@media (min-width: 768px) { .feature-row { grid-template-columns: repeat(3, 1fr); gap: 3rem; } }
.feature-row li { padding-top: 2rem; }
.feature-row .ico { width: 2rem; height: 2rem; color: var(--leather); margin-bottom: 1.25rem; }
.feature-row h3 { margin-bottom: .5rem; }
.feature-row p { margin: 0; }

/* Blog */
.filter-bar { border-bottom: 1px solid var(--line); background: var(--white); }
.filter-bar ul { display: flex; flex-wrap: wrap; gap: 0 2rem; margin: 0; padding: 0; list-style: none; }
.filter-bar a { position: relative; display: inline-flex; align-items: center; min-height: 56px; font-family: var(--f-label); font-size: .9rem; letter-spacing: .08em; text-transform: uppercase; color: var(--navy); text-decoration: none; }
.filter-bar a[aria-current="page"], .filter-bar a:hover { color: var(--leather); }
.filter-bar a[aria-current="page"]::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--leather); }
.post-feature { display: grid; gap: 1.5rem; }
@media (min-width: 992px) { .post-feature { grid-template-columns: 1.25fr 1fr; gap: 3.5rem; align-items: center; } }
.post-feature .post-img { margin: 0; }
.post-feature h2 { font-size: clamp(1.6rem, 3vw, 2.25rem); margin-bottom: 1rem; }
.post-feature h2 a { color: var(--navy); text-decoration: none; background: linear-gradient(var(--leather), var(--leather)) 0 100% / 0 1px no-repeat; transition: background-size var(--dur) var(--ease); }
.post-feature:hover h2 a, .post-feature h2 a:focus-visible { background-size: 100% 1px; }
.post-feature-body p { font-size: 1rem; margin-bottom: 1rem; }
.pagination-lux { --bs-pagination-color: var(--navy); --bs-pagination-hover-color: var(--leather); --bs-pagination-hover-bg: var(--paper); --bs-pagination-border-color: var(--line); --bs-pagination-active-bg: var(--navy); --bs-pagination-active-border-color: var(--navy); --bs-pagination-focus-box-shadow: none; --bs-pagination-border-radius: var(--r); gap: .5rem; }
.pagination-lux .page-link { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--r) !important; font-family: var(--f-label); letter-spacing: .06em; text-transform: uppercase; }

/* Long-form text: About letter + blog article */
.letter, .article { max-width: 44rem; margin-inline: auto; font-size: 1rem; line-height: 1.75; }
.letter p, .article p { max-width: none; }
.salutation { font-family: var(--f-label); font-size: 1.25rem; letter-spacing: .02em; margin-bottom: 1.5rem; }
.dropcap::first-letter { float: left; font-family: var(--f-label); font-weight: 500; font-size: 4.2rem; line-height: .85; margin: .35rem .6rem 0 0; color: var(--leather); }
.letter-figure, .article-figure { margin: 2.5rem 0; }
.letter-figure img, .article-figure img { width: 100%; height: auto; display: block; border-radius: var(--r); }
.letter-figure figcaption { margin-top: .75rem; font-size: .8rem; color: var(--slate); }
.article-figure { margin-top: 0; }
.pull, .article blockquote { margin: 2.5rem 0; padding: .25rem 0 .25rem 1.75rem; border-left: 3px solid var(--leather); font-size: clamp(1.15rem, 2vw, 1.4rem); line-height: 1.5; }
.article blockquote p { margin: 0; }
.signoff { font-family: var(--f-label); font-size: 1.6rem; letter-spacing: .04em; margin-top: 2rem; }
.signoff::before { content: "\2014\00a0"; color: var(--leather); }
.article h2 { font-size: clamp(1.3rem, 2.4vw, 1.6rem); margin: 2.75rem 0 1rem; }
.article ul { padding-left: 1.25rem; }
.article li { margin-bottom: .4rem; }
.article li::marker { color: var(--leather); }
.soft-ask { margin: 3rem 0; background: var(--paper); border-top: 3px solid var(--navy); border-radius: var(--r); padding: clamp(1.75rem, 4vw, 2.5rem); }
.soft-ask h2 { margin-top: 0; }
.soft-ask .btn-row { align-items: center; gap: 1.25rem; }
.article-byline { font-size: .875rem; color: var(--slate); border-top: 1px solid var(--line); padding-top: 1.5rem; }
.page-footnote { font-size: .875rem; color: var(--slate); }

/* Contact (1k): booking embed first */
.booking-embed { background: var(--white); border: 1px solid var(--line); border-top: 3px solid var(--navy); border-radius: var(--r); padding: clamp(1.5rem, 4vw, 2.5rem); box-shadow: var(--shadow-1); }
.booking-embed h2 { margin-bottom: .5rem; }
.booking-embed fieldset { margin-bottom: 1.75rem; }
.booking-embed legend { font-family: var(--f-label); font-weight: 500; text-transform: uppercase; letter-spacing: .1em; font-size: .85rem; color: var(--leather); margin-bottom: .75rem; }
.slot-grid { display: flex; flex-wrap: wrap; gap: .5rem; }
.slot-grid input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.slot-grid label { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; min-width: 5.5rem; min-height: 48px; padding: .5rem .9rem; border: 1px solid var(--slate); border-radius: var(--r); background: var(--white); cursor: pointer; font-size: .85rem; line-height: 1.3; transition: background-color 150ms, border-color 150ms; }
.slot-grid label strong { font-family: var(--f-label); font-weight: 500; font-size: .95rem; letter-spacing: .06em; text-transform: uppercase; }
.slot-grid label { position: relative; }
.sqs__star { color: var(--brass-light); display: none; height: 14px; left: 6px; position: absolute; top: 6px; width: 14px; }
.slot-grid input:checked + label .sqs__star { display: block; }
.slot-grid label:hover { border-color: var(--navy); background: var(--paper); }
.slot-grid input:checked + label { background: var(--navy); border-color: var(--navy); color: var(--white); }
.slot-grid input:focus-visible + label { outline: 3px solid var(--leather); outline-offset: 2px; }
.embed-note { font-size: .8rem; color: var(--slate); margin: 1rem 0 0;text-align:center;}
.embed-note:empty { display: none; }
.booking-embed [hidden] { display: none !important; }
.booking-embed .form-label { font-family: var(--f-label); font-size: .85rem; letter-spacing: .06em; text-transform: uppercase; color: var(--leather); }
.booking-embed .form-control { border: 1px solid var(--slate); border-radius: var(--r); min-height: 48px; }
.booking-embed .form-control:focus-visible, .booking-embed .form-check-input:focus-visible { outline: 3px solid var(--leather); outline-offset: 2px; box-shadow: none; }
.booking-embed .sqs__scroller { align-items: center; display: flex; gap: .25rem; }
.booking-embed .sqs__row { flex: 1 1 0; flex-wrap: nowrap; min-width: 0; overflow-x: auto; padding: 6px 4px; position: relative; scroll-padding-inline: 4px; scroll-snap-type: x mandatory; scrollbar-width: none; }
.booking-embed .sqs__row::-webkit-scrollbar { display: none; }
.booking-embed .sqs__row:focus-within { scroll-snap-type: none; }
.booking-embed .sqs__row label { flex: none; scroll-snap-align: center; }
.booking-embed .sqs__arrow { align-items: center; background: var(--white); border: 1px solid var(--slate); border-radius: var(--r); color: var(--navy); cursor: pointer; display: inline-flex; flex: none; height: 48px; justify-content: center; padding: 0; width: 48px; }
.booking-embed .sqs__arrow svg { height: 1.25rem; width: 1.25rem; }
.booking-embed .sqs__arrow:hover:not(:disabled) { border-color: var(--navy); background: var(--paper); }
.booking-embed .sqs__arrow:disabled { cursor: default; opacity: .4; }
.booking-embed .sqs__arrow:focus-visible { outline: 3px solid var(--leather); outline-offset: 2px; }
.booking-embed .sqs__select { background: var(--white); border: 1px solid var(--slate); border-radius: var(--r); color: inherit; font: inherit; max-width: 100%; min-height: 48px; padding: .5rem 3rem .5rem .75rem; width: 100%; appearance: none; background: var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%231c2b3a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M3 6l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 1.1rem center / 1rem; }
.booking-embed .sqs__select:focus-visible { outline: 3px solid var(--leather); outline-offset: 2px; }
.booking-embed .sqs__list--select { display: block; }
.booking-embed .sqs__step-value { font-family: var(--f-body); font-size: .875rem; font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--navy); }
.booking-embed legend .sqs__step-value:not(:empty)::before { content: " - "; white-space: pre; }
@media (max-width: 575.98px) {
  .booking-embed legend .sqs__step-value { display: block; margin-top: .15rem; }
  .booking-embed legend .sqs__step-value:not(:empty)::before { content: none; }
}
.booking-embed .sqs__error { color: #a4231a; font-size: .85rem; margin: .35rem 0 0; }
.booking-embed [aria-invalid="true"] { border-color: #a4231a; border-width: 2px; }
@media (forced-colors: active) { .booking-embed .sqs__select { appearance: auto; } }
@media (prefers-reduced-motion: reduce) { .booking-embed *, .booking-embed *::before, .booking-embed *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }
.booking-confirm { border: 2px solid var(--navy); border-radius: var(--r); padding: 1.5rem; margin-top: 1rem; }
.booking-confirm:focus-visible { outline: 3px solid var(--leather); outline-offset: 2px; }
.booking-embed [data-sqs-fallback]:focus-visible { outline: 3px solid var(--leather); outline-offset: 2px; }
.booking-embed .sqs__policy { background: var(--paper); border-left: 3px solid var(--navy); border-radius: var(--r); margin: 0 0 1rem; padding: .85rem 1.1rem; }
.booking-embed .sqs__policy-title { font-family: var(--f-label); font-size: .85rem; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--leather); margin: 0 0 .35rem; }
.booking-embed .sqs__policy-text { font-size: .875rem; color: var(--navy); }
.booking-embed .sqs__policy-text > :last-child { margin-bottom: 0; }
.booking-embed .sqs__submit-slot { font-size: .875rem; font-weight: 700; color: var(--navy); margin: 0 0 .6rem; }
.booking-embed .sqs__submit-slot:empty, .booking-embed .sqs__submit-long { display: none; }
.booking-embed [data-sqs-submit] { display: flex; margin-inline: auto; max-width: 100%; white-space: normal; text-align: left; width: fit-content; }
.booking-embed .sqs__submit-slot { text-align: center; }
@media (min-width: 576px) {
  .booking-embed .sqs__submit-slot { display: none; }
  .booking-embed .sqs__submit-long:not(:empty) { display: inline; }
  .booking-embed .sqs__submit-long:not(:empty) + .sqs__submit-short { display: none; }
}
.booking-confirm h3 { margin-bottom: .5rem; }
.hours-table { width: 100%; margin: 0 0 1.5rem; border-top: 1px solid var(--line); }
.hours-table caption { caption-side: top; padding: 0 0 .5rem; font-family: var(--f-label); font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; color: var(--leather); }
.hours-table th, .hours-table td { padding: .75rem 0; border-bottom: 1px solid var(--line); font-size: .9rem; }
.hours-table th { font-weight: 600; }
.hours-table td { text-align: right; font-variant-numeric: tabular-nums; }
.privacy-strip { background: var(--paper); border-top: 1px solid var(--line); padding: 1.5rem 0; }
.privacy-strip p { display: flex; gap: .75rem; align-items: flex-start; margin: 0; max-width: none; font-size: .85rem; }
.privacy-strip .ico { color: var(--leather); margin-top: .15rem; }
@media (prefers-reduced-motion: reduce) { .post-feature:hover .post-img img { transform: none; } }
/* Keep white/paper alternation when the last section before the CTA band is already paper. */
main:has(> section:last-child.bg-paper) + .cta-band { background: var(--white); }

/* =====================================================================
   Joomla markup adaptations (therapy template). Everything above is the
   mockup stylesheet verbatim; below maps it onto core/override markup.
   ===================================================================== */
.skip-link:focus-visible { top: .75rem; }
main:focus { outline: none; }

/* Navbar override: top-level toggles are <button>s */
.site-header .navbar-nav { gap: 0; }
.site-header button.nav-link { background: none; border: 0; }
@media (min-width: 1200px) {
    .site-header .navbar-nav .nav-item:has(> .offcanvas-only) { display: none; }
    .site-header .offcanvas { --bs-offcanvas-width: auto; }
}
.site-header .dropdown-menu .dropdown-li { list-style: none; }
.site-header .dropdown-item.active { background: var(--paper); color: var(--leather); }
@media (max-width: 1199.98px) { .offcanvas-navy .dropdown-item.active { background: transparent; color: var(--paper); text-decoration: underline; } }

/* Core mod_breadcrumbs inside the hero / standalone strip */
.mod-breadcrumbs__wrapper .breadcrumb { padding: 0 !important; background: none; margin-bottom: clamp(2rem, 5vw, 3.5rem); font-size: .8rem; }
.mod-breadcrumbs__here { display: none; }
.mod-breadcrumbs .divider, .mod-breadcrumbs .icon-location { display: none; }
.page-hero .breadcrumb-item, .page-hero .breadcrumb-item a, .page-hero .breadcrumb-item span { color: var(--brass-light); }
.page-hero .breadcrumb-item.active, .page-hero .breadcrumb-item.active span { color: var(--paper); }
.page-hero-plain .breadcrumb-item a { color: var(--leather); }
.breadcrumb-strip { border-bottom: 1px solid var(--line); padding-top: 1rem; }
.breadcrumb-strip .breadcrumb { margin-bottom: 1rem; }

/* Hero variants (includes/hero.php) */
.page-hero-cover { position: relative; isolation: isolate; overflow: hidden; }
.page-hero-bg { position: absolute; inset: 0; z-index: -2; }
.page-hero-bg img { width: 100%; height: 100%; object-fit: cover; object-position: 68% 50%; display: block; }
.page-hero-cover::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(20, 31, 42, .94) 0%, rgba(28, 43, 58, .8) 50%, rgba(28, 43, 58, .4) 100%); }
.page-hero-plain { background: var(--paper); color: var(--navy); border-bottom: 1px solid var(--line); }
.page-hero-plain h1 { color: var(--navy); }
.page-hero-plain h1 .accent { color: var(--leather); }
.page-hero .eyebrow > span[aria-hidden] { margin-right: .4rem; }
.page-hero .lead { color: inherit; }

/* Band chromes (includes/chrome-section-body.php) */
.section-head { display: grid; gap: 1.5rem; margin-bottom: clamp(2.5rem, 5vw, 4rem); }
@media (min-width: 992px) { .section-head.has-aside { grid-template-columns: 1.1fr 1fr; align-items: end; } }
.section-head .module-title { margin-bottom: 0; }
.section-head-aside p { margin: 0; font-size: 1rem; }
.section-head-aside .link-lux { margin-top: .5rem; }
.sec > .container-fluid, .sec.personas-band > .container { max-width: none; padding-inline: clamp(1rem, 4vw, 4.5rem); }

/* Page layout (pagecontent.php) */
.page-body { padding-block: 0; }
.page-layout .booking-rail .btn-lux { width: 100%; }
@media (min-width: 992px) { .page-sidebar.is-sticky .booking-rail { position: sticky; top: calc(68px + 1.5rem); } }
.com-content-article__body > :first-child { margin-top: 0; }
.com-content-article .page-header:empty { display: none; }
.bg-type-color .main { background: var(--paper); }

/* Footer chrome + bottom bar */
.site-footer .f-col .module-title { font-family: var(--f-label); font-weight: 500; font-size: .85rem; letter-spacing: .14em; text-transform: uppercase; color: var(--brass-light); margin-bottom: 1.1rem; }
.site-footer .f-col p { color: var(--paper); }
.site-footer .nav { flex-wrap: nowrap; }
.f-bottom-row { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem 1.5rem; }
.f-bottom-row > *, .f-bottom-row p { margin: 0; }
.f-bottom-row .mod-footer, .f-bottom-row .footer1 { display: inline; }
.f-bottom-row ul { display: flex; flex-wrap: wrap; gap: .25rem 1.5rem; margin: 0; padding: 0; list-style: none; }
.f-bottom .crisis { color: var(--paper); font-weight: 600; }
.f-bottom .crisis a { color: var(--paper); }
.f-note { margin: .5rem 0 0; max-width: none; }

/* Blog: core category blog + journal module */
.com-content-category-blog .blog-item .item-image, .post-img figure, .post-img .item-image { margin: 0; float: none !important; }
.post-img img { width: 100%; height: 100%; object-fit: cover; }
.com-content-category-blog .post h2 { font-size: 1.2rem; text-transform: none; margin-bottom: .6rem; }
.com-content-category-blog .post h2 a { color: var(--navy); text-decoration: none; }
.com-content-category-blog .post h2 a:hover { color: var(--leather); }
.com-content-category-blog .items-leading .post { display: grid; gap: 1.5rem; margin-bottom: 3rem; }
@media (min-width: 992px) { .com-content-category-blog .items-leading .post { grid-template-columns: 1.25fr 1fr; gap: 3.5rem; align-items: center; } .com-content-category-blog .items-leading h2 { font-size: clamp(1.6rem, 3vw, 2.25rem); text-transform: uppercase; } }
.com-content-category-blog .article-info, .post .article-info, .com-content-article .article-info { font-family: var(--f-label); font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; color: var(--leather); margin-bottom: .5rem; }
.com-content-category-blog .article-info dd, .com-content-article .article-info dd { display: inline; margin: 0 .75rem 0 0; }
.com-content-category-blog .article-info dt, .com-content-article .article-info dt { display: none; }
.com-content-category-blog .pagination { --bs-pagination-color: var(--navy); --bs-pagination-active-bg: var(--navy); --bs-pagination-active-border-color: var(--navy); --bs-pagination-border-color: var(--line); justify-content: center; margin-top: 3rem; }
.mod-articles-title a { color: var(--navy); text-decoration: none; }
.mod-articles-title { font-size: 1.2rem; text-transform: none; margin-bottom: .6rem; }
.post-intro p { margin: 0; }
.article .com-content-article__body { font-size: 1rem; line-height: 1.75; }
.article .item-image { margin: 0 0 2.5rem; }
.article .item-image img { width: 100%; height: auto; border-radius: var(--r); }

/* Error page */
.error-hero { min-height: 100vh; display: flex; align-items: center; }
.on-navy .accent, .site-footer .accent { color: var(--brass-light); }
.accent { color: var(--leather); }

/* Module-driven bands (mod_articles / mod_customfields / mod_j2commerce_tools layouts) */
/* Module Class "band-split": the chrome wraps head (col-lg-5) and content (col-lg-7) in a .row; "band-center" adds align-items-center. */
.band-split .section-head { margin-bottom: 0; }
.band-split .section-head.has-aside { grid-template-columns: 1fr; }
.band-split .section-head .module-title { margin-bottom: 0; }
.statement .section-head-aside p { color: var(--navy); max-width: 30rem; }
.persona-grid-other.cols-3 { grid-template-columns: 1fr; }
@media (min-width: 640px) { .persona-grid-other.cols-3 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1200px) { .persona-grid-other.cols-3 { grid-template-columns: repeat(3, 1fr); } }
.hero-media video { position: absolute; inset: 0; }
.contact-position { color: var(--slate); }
.booking-rail--dark { background: var(--navy); color: var(--paper); border-color: var(--navy); border-top-color: var(--brass); }
.booking-rail--dark h2 { color: var(--white); }
.booking-rail--dark .rail-facts { border-top-color: rgba(250, 248, 244, .2); }
.booking-rail--dark .rail-facts .ico { color: var(--brass); }
.booking-rail--dark a { color: var(--brass-light); }
.booking-rail--minimal { background: none; border: 0; box-shadow: none; padding: 0; }
.booking-rail-img { display: block; width: calc(100% + 3.5rem); max-width: none; height: auto; margin: -1.75rem -1.75rem 1.5rem; border-radius: var(--r) var(--r) 0 0; }
.rail-note { margin: 1rem 0 0; font-size: .8rem; color: var(--slate); }
.booking-rail--dark .rail-note { color: var(--bottom-text); }

/* Migrated blog posts: the WordPress body elements the mockup article never used */
.article h3 { font-size: clamp(1.15rem, 2vw, 1.3rem); margin: 2.25rem 0 .75rem; }
.article ol { padding-left: 1.25rem; }
.article figure { margin: 2rem 0; }
.article table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.article th, .article td { padding: .75rem 1rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.article thead th, .article tr:first-child td { font-family: var(--f-label); font-weight: 500; color: var(--navy); }
.article .faq { margin: 2rem 0; }
.article .faq details > :not(summary) { margin: 0 3rem 1.25rem 0; }
.article-info a { color: inherit; }

/* Author page (com_contact contact view) */
.author-profile { display: grid; gap: 2.5rem; align-items: start; }
@media (min-width: 768px) { .author-profile { grid-template-columns: minmax(0, 18rem) 1fr; } }
.author-bio { font-size: 1.1rem; line-height: 1.75; }
.author-posts-title { margin-top: 3.5rem; }
.author-posts { border-top: 1px solid var(--line); }
.author-posts li { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: .25rem 1.5rem; padding: 1rem 0; border-bottom: 1px solid var(--line); }
.author-posts time { font-size: .85rem; color: var(--slate); white-space: nowrap; }

/* Pagination arrows: core emits icon-font classes; the template ships no icon font, so draw them */
.pagination [class^="icon-angle"]::before { font-family: var(--f-label); font-size: 1.1rem; line-height: 1; }
.pagination .icon-angle-left::before { content: "\2039"; }
.pagination .icon-angle-right::before { content: "\203A"; }
.pagination .icon-angle-double-left::before { content: "\00AB"; }
.pagination .icon-angle-double-right::before { content: "\00BB"; }

/* Article author band (post layout) */
.author-band { display: grid; gap: 1.75rem; align-items: start; margin-top: 3.5rem; padding: 2rem; border: 1px solid var(--line); border-radius: var(--r); background: var(--paper); }
@media (min-width: 576px) { .author-band { grid-template-columns: 9rem 1fr; } }
.author-band-photo { max-width: 9rem; padding: .5rem; }
.author-band-photo img { width: 100%; height: auto; display: block; border-radius: var(--r); }
.author-band .eyebrow { margin-bottom: .5rem; }
.author-band-name { font-size: clamp(1.25rem, 2.2vw, 1.5rem); margin: 0 0 .75rem; }
.author-band-bio { margin-bottom: 1.25rem; }
.author-band-bio p:last-child { margin-bottom: 0; }

/* Blog sidebar: Recent Articles (core mod_articles titles list) */
.page-sidebar > * + * { margin-top: 1.5rem; }
.sidebar-recent .mod-list { list-style: none; margin: 0; padding: 0; }
.sidebar-recent .mod-list li { padding: .75rem 0; border-bottom: 1px solid var(--line); line-height: 1.4; }
.sidebar-recent .mod-list li:last-child { border-bottom: 0; padding-bottom: 0; }
.sidebar-recent .mod-list a { text-decoration: none; color: var(--navy); }
.sidebar-recent .mod-list a:hover, .sidebar-recent .mod-list a:focus-visible { color: var(--leather); text-decoration: underline; }

/* Beside a sidebar the reading column sits left, not centered in the main column */
.row:has(> .page-sidebar) .article { margin-inline: 0; }

/* Service pages (2026-10-03 rev): definition lead, outcomes, is/isn't, therapy vs coaching, reading list */
.lead-sm { font-size: 1.1rem; line-height: 1.7; color: var(--navy); }
.outcomes { list-style: none; margin: 0; padding: 0; display: grid; gap: .25rem 2.5rem; }
@media (min-width: 768px) { .outcomes { grid-template-columns: 1fr 1fr; } }
.outcomes li { display: grid; grid-template-columns: 1.5rem 1fr; gap: .5rem; align-items: baseline; padding: .75rem 0; border-bottom: 1px solid var(--line); }
.outcomes .ico { width: 1.1rem; height: 1.1rem; color: var(--leather); fill: none; stroke: currentColor; stroke-width: 2; transform: translateY(.15rem); }
.compare { width: 100%; border-collapse: collapse; font-size: .95rem; margin: 0; }
.compare th, .compare td { padding: .85rem 1rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.compare thead th { font-family: var(--f-label); font-weight: 500; letter-spacing: .08em; text-transform: uppercase; font-size: .8rem; color: var(--leather); }
.compare tbody th { font-family: var(--f-label); font-weight: 500; color: var(--navy); white-space: nowrap; }
.compare td:last-child { background: var(--paper); }
.method-note-limit { border-left-color: var(--navy); }
.reading-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.reading-list li { padding: .85rem 0; border-bottom: 1px solid var(--line); }
.reading-list a { color: var(--navy); text-decoration: none; font-weight: 500; }
.reading-list a:hover, .reading-list a:focus-visible { color: var(--leather); text-decoration: underline; }


/* Legal / policy pages (templates/therapy/html/com_content/article/legal.php) */
.doc-switcher { background: var(--white); border-bottom: 1px solid var(--line); position: sticky; top: 68px; z-index: 1020; }
.doc-switcher-inner { display: flex; align-items: stretch; gap: 0; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
.doc-switcher-inner::-webkit-scrollbar { display: none; }
.doc-tab { display: inline-flex; align-items: center; gap: .5rem; padding: 1rem 1.5rem; font-family: var(--f-label); font-size: .85rem; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: var(--slate); text-decoration: none; border-bottom: 3px solid transparent; white-space: nowrap; margin-bottom: -1px; transition: color var(--dur) var(--ease), border-color var(--dur) var(--ease); }
.doc-tab:hover, .doc-tab:focus-visible { color: var(--navy); }
.doc-tab.active { color: var(--leather); border-bottom-color: var(--brass); }
.doc-tab .ico { width: 1rem; height: 1rem; opacity: .75; }

.legal-section { padding-block: clamp(3rem, 6vw, 5rem); }
.legal-layout { display: grid; grid-template-columns: 260px 1fr; gap: clamp(2rem, 4vw, 3.5rem); align-items: start; }
.legal-layout .article { margin-inline: 0; max-width: none; }

.legal-sidenav { position: sticky; top: calc(68px + 49px + 1.5rem); max-height: calc(100vh - 68px - 49px - 2rem); overflow-y: auto; scrollbar-width: thin; scrollbar-color: var(--line) transparent; }
.legal-sidenav > * + * { margin-top: 2rem; }

.sidenav-label { display: block; font-family: var(--f-label); font-size: .75rem; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--slate); margin-bottom: .75rem; }

.legal-policies-list .mod-list { list-style: none; margin: 0; padding: 0; }
.legal-policies-list .legal-policy-link { display: flex; align-items: center; gap: .6rem; padding: .6rem .75rem; border-radius: var(--r); font-size: .9rem; color: var(--slate); text-decoration: none; transition: background var(--dur) var(--ease), color var(--dur) var(--ease); }
.legal-policies-list .legal-policy-link:hover, .legal-policies-list .legal-policy-link:focus-visible { background: var(--paper); color: var(--navy); }
.legal-policies-list .legal-policy-link.active { background: var(--paper); color: var(--leather); font-weight: 500; }
.legal-policies-list .legal-policy-link .ico { width: 1rem; height: 1rem; flex-shrink: 0; opacity: .75; }

.sidenav-toc { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .15rem; }
.sidenav-toc li a { display: block; padding: .4rem .75rem; font-size: .85rem; color: var(--slate); text-decoration: none; border-left: 2px solid var(--line); line-height: 1.4; transition: color var(--dur) var(--ease), border-color var(--dur) var(--ease), background var(--dur) var(--ease); }
.sidenav-toc li a:hover, .sidenav-toc li a:focus-visible { color: var(--navy); border-left-color: var(--brass-light); background: var(--paper); }
.sidenav-toc li.toc-active a { color: var(--leather); border-left-color: var(--brass); background: var(--paper); font-weight: 500; }

.legal-prose h2[id] { scroll-margin-top: calc(68px + 49px + 1.5rem); }

@media (max-width: 991.98px) {
    .legal-layout { grid-template-columns: 1fr; }
    .legal-sidenav { position: static; max-height: none; overflow-y: visible; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r); padding: 1.5rem; }
    .legal-prose { max-width: 100%; }
}

@media (max-width: 575.98px) {
    .doc-tab { padding: .75rem 1.1rem; font-size: .8rem; }
}

/***Custom***/
.faq p {max-width: none;}




/***End Custom***/

/* Footer link with an Image (Template Options -> Footer Links): badge at its 300px design width. */
.site-footer .f-badge img { display: block; width: 300px; max-width: 100%; height: auto; }


/* ---------- Editor-safe icons (generated: TEMPLATE/seed/editor-safe.php --css) ----------
   TinyMCE strips inline <svg>, so article icons are <span class="ico i-NAME" aria-hidden="true">&nbsp;</span>.
   The span keeps the .ico class, so every sizing/colour rule written for the SVG still applies;
   the shape is a CSS mask in currentColor. inline-flex + flex-end puts the (invisible, zero-size)
   text line at the bottom, so baseline alignment matches the SVG it replaced. */
:root {
    --i-arrow: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.25%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5%2012h14M13%206l6%206-6%206%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E");
    --i-check: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.25%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M20%206L9%2017l-5-5%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E");
    --i-video: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.25%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M16%209l5-3v12l-5-3%22%3E%3C%2Fpath%3E%3Crect%20height%3D%2212%22%20rx%3D%221%22%20width%3D%2214%22%20x%3D%222%22%20y%3D%226%22%3E%3C%2Frect%3E%3C%2Fsvg%3E");
    --i-clock: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.25%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%3E%3C%2Fcircle%3E%3Cpath%20d%3D%22M12%207v5l3%202%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E");
    --i-pin: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.25%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%2021s-7-6.2-7-11.5A7%207%200%200%201%2019%209.5C19%2014.8%2012%2021%2012%2021z%22%3E%3C%2Fpath%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%229.5%22%20r%3D%222.5%22%3E%3C%2Fcircle%3E%3C%2Fsvg%3E");
    --i-nav: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.25%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2011l18-8-8%2018-2-8z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E");
    --i-phone: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.25%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M22%2016.92v3a2%202%200%200%201-2.18%202%2019.79%2019.79%200%200%201-8.63-3.07%2019.5%2019.5%200%200%201-6-6%2019.79%2019.79%200%200%201-3.07-8.67A2%202%200%200%201%204.11%202h3a2%202%200%200%201%202%201.72%2012.84%2012.84%200%200%200%20.7%202.81%202%202%200%200%201-.45%202.11L8.09%209.91a16%2016%200%200%200%206%206l1.27-1.27a2%202%200%200%201%202.11-.45%2012.84%2012.84%200%200%200%202.81.7A2%202%200%200%201%2022%2016.92z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E");
    --i-lock: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.25%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20height%3D%2210%22%20rx%3D%221%22%20width%3D%2216%22%20x%3D%224%22%20y%3D%2211%22%3E%3C%2Frect%3E%3Cpath%20d%3D%22M8%2011V7a4%204%200%200%201%208%200v4%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E");
    --i-doc: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.25%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M14%203H6a1%201%200%200%200-1%201v16a1%201%200%200%200%201%201h12a1%201%200%200%200%201-1V8z%22%3E%3C%2Fpath%3E%3Cpath%20d%3D%22M14%203v5h5M9%2013h6M9%2017h6%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E");
    --i-compass: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.25%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%3E%3C%2Fcircle%3E%3Cpath%20d%3D%22M15.5%208.5l-2%205-5%202%202-5z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E");
    --i-card: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.25%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20height%3D%2214%22%20rx%3D%221%22%20width%3D%2220%22%20x%3D%222%22%20y%3D%225%22%3E%3C%2Frect%3E%3Cpath%20d%3D%22M2%2010h20%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E");
    --i-star: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.25%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%203l2.6%205.6%206%20.7-4.5%204.1%201.2%206L12%2016.4%206.7%2019.4l1.2-6L3.4%209.3l6-.7z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E");
    --i-mail: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.25%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20height%3D%2214%22%20rx%3D%221%22%20width%3D%2218%22%20x%3D%223%22%20y%3D%225%22%3E%3C%2Frect%3E%3Cpath%20d%3D%22M3%207l9%206%209-6%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E");
    --i-alert: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.25%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M10.3%203.9L1.8%2018a2%202%200%200%200%201.7%203h17a2%202%200%200%200%201.7-3L13.7%203.9a2%202%200%200%200-3.4%200z%22%3E%3C%2Fpath%3E%3Cpath%20d%3D%22M12%209v4M12%2017h.01%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E");
    --i-check-2: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M20%206L9%2017l-5-5%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E");
}
span.ico { display: inline-flex; align-items: flex-end; overflow: hidden; font-size: 0; line-height: 0; background-color: currentColor; -webkit-mask: var(--i) center / contain no-repeat; mask: var(--i) center / contain no-repeat; }
.i-arrow { --i: var(--i-arrow); }
.i-check { --i: var(--i-check); }
.i-video { --i: var(--i-video); }
.i-clock { --i: var(--i-clock); }
.i-pin { --i: var(--i-pin); }
.i-nav { --i: var(--i-nav); }
.i-phone { --i: var(--i-phone); }
.i-lock { --i: var(--i-lock); }
.i-doc { --i: var(--i-doc); }
.i-compass { --i: var(--i-compass); }
.i-card { --i: var(--i-card); }
.i-star { --i: var(--i-star); }
.i-mail { --i: var(--i-mail); }
.i-alert { --i: var(--i-alert); }
.outcomes .i-check { --i: var(--i-check-2); }
.btn-lux .btn-ico span.ico { width: 1rem; height: 1rem; }
.link-lux span.ico { width: 1rem; height: 1rem; transition: transform var(--dur) var(--ease); }
.link-lux:hover span.ico, .persona:hover .link-lux span.ico { transform: translateX(4px); }
/* <dl class="creds"> as plain dt/dd pairs (TinyMCE flattens <div> inside <dl>): same cards, each dt
   over its dd, two per row from 576px; "dense" packs the second pair of each row back up beside the first. */
.creds:not(:has(> div)) dt { margin: 0; padding-top: 1rem; padding-bottom: .2rem; }
.creds:not(:has(> div)) dd { padding-bottom: 1rem; border-bottom: 1px solid var(--line); }
@media (min-width: 576px) {
    .creds:not(:has(> div)) { grid-auto-flow: row dense; }
    .creds:not(:has(> div)) dt:nth-of-type(odd), .creds:not(:has(> div)) dd:nth-of-type(odd) { grid-column: 1; }
    .creds:not(:has(> div)) dt:nth-of-type(even), .creds:not(:has(> div)) dd:nth-of-type(even) { grid-column: 2; }
}
/* A quote inside a post or section (the Blog: Quote template); .endorse styles its own. */
:not(figure) > blockquote { margin: 2rem 0; padding: .25rem 0 .25rem 1.5rem; border-left: 3px solid var(--leather); font-size: clamp(1.05rem, 1.6vw, 1.25rem); line-height: 1.55; color: var(--navy); }
:not(figure) > blockquote p:last-child { margin-bottom: 0; }
/* ---------- end editor-safe ---------- */
