/* ==========================================================================
   Amilex Chambers — site stylesheet
   Built on Bootstrap 5.3 (grid, utilities, collapse, tabs). Everything brand-
   specific lives here and is driven by the tokens below.
   Breakpoints (Bootstrap): sm 576 · md 768 · lg 992 · xl 1200
   ========================================================================== */

/* ---------- Fonts (self-hosted Montserrat, same family as the previous site) ---------- */
@font-face {
    font-family: 'Montserrat';
    src: url('../fonts/montserrat-var.woff2') format('woff2');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Montserrat';
    src: url('../fonts/montserrat-var-italic.woff2') format('woff2');
    font-weight: 100 900;
    font-style: italic;
    font-display: swap;
}

/* ---------- Tokens ---------- */
:root {
    /* brand */
    --navy-950: #071422;
    --navy-900: #0a1c2e;
    --navy-800: #12293f;
    --navy-700: #1d3a57;
    --red-500: #e83a3a;          /* brand red: buttons, accents, large text */
    --red-600: #c92a2a;          /* red for small text on white (AA) */
    --red-btn: #d32f2f;          /* button fill: white text passes AA */
    --gold-400: #c9a45c;         /* fine accent lines only */

    /* neutrals */
    --ink: #17202b;
    --body: #3d4855;
    --muted: #5d6876;
    --line: #e3e7ec;
    --surface: #f5f7f9;
    --white: #ffffff;

    /* type */
    --font-sans: 'Montserrat', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    --font-serif: var(--font-sans); /* headings use Montserrat bold, like the previous site */
    --fs-xs: .8125rem;   /* 13 */
    --fs-sm: .9375rem;   /* 15 */
    --fs-base: 1rem;     /* 16 */
    --fs-lg: 1.125rem;   /* 18 */
    --fs-h4: 1.25rem;
    --fs-h3: clamp(1.4rem, 1.2rem + .8vw, 1.75rem);
    --fs-h2: clamp(1.45rem, 1.3rem + .7vw, 1.9rem);
    --fs-h1: clamp(2rem, 1.5rem + 2.2vw, 3.2rem);

    /* space (4px base) */
    --s-1: .25rem; --s-2: .5rem; --s-3: .75rem; --s-4: 1rem; --s-5: 1.5rem;
    --s-6: 2rem; --s-7: 3rem; --s-8: 4rem; --s-9: 6rem;
    --section-y: clamp(1.75rem, 1.5rem + 1vw, 2.5rem);

    --radius: 10px;
    --radius-sm: 6px;
    --shadow-sm: 0 1px 2px rgba(10, 28, 46, .06), 0 1px 3px rgba(10, 28, 46, .08);
    --shadow: 0 10px 30px -12px rgba(10, 28, 46, .18);
    --shadow-lg: 0 24px 50px -20px rgba(10, 28, 46, .35);
    --ease: cubic-bezier(.2, .8, .2, 1);
    --nav-h: 76px;

    /* Bootstrap overrides */
    --bs-body-font-family: var(--font-sans);
    --bs-body-font-size: var(--fs-base);
    --bs-body-color: var(--body);
    --bs-link-color: var(--red-600);
    --bs-link-color-rgb: 201, 42, 42;
    --bs-link-hover-color: var(--navy-900);
    --bs-border-color: var(--line);
}

/* ---------- Base ---------- */
html { scroll-padding-top: calc(var(--nav-h) + 16px); }
@media (prefers-reduced-motion: no-preference) {
    html { scroll-behavior: smooth; }
}
body {
    font-family: var(--font-sans);
    font-size: var(--fs-base);
    line-height: 1.7;
    color: var(--body);
    background: var(--white);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
h1, h2, h3, h4, h5, h6 {
    color: var(--ink);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -.01em;
}
h1, h2, .h1, .h2, .display-serif {
    font-family: var(--font-serif);
    font-variant-numeric: lining-nums;
    font-weight: 700;
    letter-spacing: -.01em;
}
h1, .h1 { font-size: var(--fs-h1); }
h2, .h2 { font-size: var(--fs-h2); }
h3, .h3 { font-size: var(--fs-h3); }
h4, .h4 { font-size: var(--fs-h4); }
p { margin-bottom: 1.1em; }
a { text-decoration: none; transition: color .2s var(--ease); }
img { max-width: 100%; height: auto; }
picture { display: contents; }
strong { color: var(--ink); font-weight: 600; }

:focus-visible {
    outline: 3px solid var(--red-500);
    outline-offset: 3px;
    border-radius: 2px;
}
.skip-link {
    position: absolute; left: 1rem; top: -100px; z-index: 2000;
    background: var(--white); color: var(--navy-900); padding: .6rem 1rem;
    border-radius: var(--radius-sm); font-weight: 600; box-shadow: var(--shadow);
}
.skip-link:focus { top: 1rem; }

.container-site { max-width: 1240px; }
.section { padding-block: var(--section-y); }
.section-sm { padding-block: calc(var(--section-y) * .6); }
.bg-surface { background: var(--surface); }
.bg-navy { background: var(--navy-900); color: rgba(255, 255, 255, .78); }
.bg-navy h1, .bg-navy h2, .bg-navy h3, .bg-navy h4, .bg-navy h5, .bg-navy strong { color: var(--white); }
.text-muted-2 { color: var(--muted) !important; }
.lead-lg { font-size: var(--fs-lg); line-height: 1.65; }
.measure { max-width: 68ch; }

/* Eyebrow + section heading */
.eyebrow {
    display: inline-flex; align-items: center; gap: .6rem;
    font-size: var(--fs-xs); font-weight: 700; letter-spacing: .14em;
    text-transform: uppercase; color: var(--red-600); margin-bottom: var(--s-3);
}
.eyebrow::before { content: ''; width: 28px; height: 2px; background: currentColor; }
.bg-navy .eyebrow, .on-dark .eyebrow { color: #ff8a8a; }
.section-head { max-width: 720px; margin-bottom: var(--s-4); }
.section-head.text-center { margin-inline: auto; }
.section-head.text-center .eyebrow { justify-content: center; }
.section-head p { color: var(--muted); font-size: var(--fs-lg); margin: var(--s-3) 0 0; }
.bg-navy .section-head p { color: rgba(255, 255, 255, .72); }

/* ---------- Buttons ---------- */
.btn {
    --bs-btn-font-weight: 600;
    --bs-btn-padding-x: 1.4rem;
    --bs-btn-padding-y: .8rem;
    --bs-btn-font-size: var(--fs-sm);
    --bs-btn-border-radius: var(--radius-sm);
    display: inline-flex; align-items: center; justify-content: center; gap: .55rem;
    letter-spacing: .01em;
    white-space: nowrap;
    transition: background-color .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease), transform .2s var(--ease), box-shadow .2s var(--ease);
}
.btn:active { transform: translateY(1px); }
.btn-lg { --bs-btn-padding-x: 1.8rem; --bs-btn-padding-y: .95rem; --bs-btn-font-size: 1rem; }
.btn-brand {
    --bs-btn-color: #fff; --bs-btn-bg: var(--red-btn); --bs-btn-border-color: var(--red-btn);
    --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #b71c1c; --bs-btn-hover-border-color: #b71c1c;
    --bs-btn-active-bg: #b71c1c; --bs-btn-active-color: #fff;
    box-shadow: 0 8px 20px -10px rgba(232, 58, 58, .7);
}
.btn-navy {
    --bs-btn-color: #fff; --bs-btn-bg: var(--navy-900); --bs-btn-border-color: var(--navy-900);
    --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--navy-700); --bs-btn-hover-border-color: var(--navy-700);
    --bs-btn-active-bg: var(--navy-800); --bs-btn-active-color: #fff;
}
.btn-ghost-light {
    --bs-btn-color: #fff; --bs-btn-border-color: rgba(255, 255, 255, .45);
    --bs-btn-hover-color: var(--navy-900); --bs-btn-hover-bg: #fff; --bs-btn-hover-border-color: #fff;
    --bs-btn-active-bg: #fff; --bs-btn-active-color: var(--navy-900);
}
.btn-ghost {
    --bs-btn-color: var(--navy-900); --bs-btn-border-color: var(--line);
    --bs-btn-hover-color: var(--navy-900); --bs-btn-hover-bg: var(--surface); --bs-btn-hover-border-color: var(--navy-900);
    --bs-btn-active-bg: var(--surface);
}
.link-arrow {
    display: inline-flex; align-items: center; gap: .45rem;
    font-weight: 600; font-size: var(--fs-sm); color: var(--red-600);
}
.link-arrow i { transition: transform .2s var(--ease); font-size: .8em; }
.link-arrow:hover { color: var(--navy-900); }
.link-arrow:hover i { transform: translateX(4px); }
.on-dark .link-arrow, .bg-navy .link-arrow, .contact-section .link-arrow, .panel-navy .link-arrow { color: #ff9a9a; }
.on-dark .link-arrow:hover, .bg-navy .link-arrow:hover, .contact-section .link-arrow:hover, .panel-navy .link-arrow:hover { color: #fff; }

/* ---------- Top bar + Navigation ---------- */
.topbar {
    background: var(--navy-950); color: rgba(255, 255, 255, .72);
    font-size: var(--fs-xs); padding: .45rem 0;
}
.topbar a { color: rgba(255, 255, 255, .8); }
.topbar a:hover { color: #fff; }
.topbar i { color: var(--red-500); margin-right: .4rem; }
.topbar .fab { color: rgba(255, 255, 255, .8); font-size: .85rem; }
.topbar a:hover .fab { color: #fff; }
.topbar .sep { opacity: .3; margin: 0 .75rem; }

.site-nav {
    position: sticky; top: 0; z-index: 1030;
    background: rgba(10, 28, 46, .97);
    backdrop-filter: saturate(160%) blur(10px);
    -webkit-backdrop-filter: saturate(160%) blur(10px);
    transition: box-shadow .25s var(--ease);
}
.site-nav.is-scrolled { box-shadow: 0 10px 30px -15px rgba(0, 0, 0, .6); }
.site-nav .navbar { min-height: var(--nav-h); padding: .5rem 0; }
.brand-mark {
    display: inline-flex; align-items: center; gap: .75rem; color: #fff;
}
.brand-mark .logo-disc {
    width: 52px; height: 52px; border-radius: 50%; background: #fff;
    display: grid; place-items: center; flex-shrink: 0;
}
.brand-mark .logo-disc img { width: 42px; height: auto; }
.brand-mark .brand-text { line-height: 1.1; }
@media (max-width: 575.98px) {
    .site-nav .brand-mark .brand-sub { display: none !important; }
    .site-nav .brand-mark .brand-name { font-size: 1.05rem; }
    .site-nav .brand-mark .logo-disc { width: 44px; height: 44px; }
    .site-nav .brand-mark .logo-disc img { width: 36px; }
}
.brand-mark .brand-name { font-size: 1.15rem; font-weight: 700; color: #fff; letter-spacing: -.01em; }
.brand-mark .brand-sub { font-size: .66rem; letter-spacing: .2em; text-transform: uppercase; color: rgba(255, 255, 255, .6); }

.site-nav .nav-link {
    color: rgba(255, 255, 255, .8);
    font-size: var(--fs-sm); font-weight: 500;
    padding: .55rem .9rem !important;
    position: relative;
}
.site-nav .nav-link:hover, .site-nav .nav-link:focus-visible { color: #fff; }
.site-nav .nav-link.active { color: #fff; }
.site-nav .nav-link.active::after {
    content: ''; position: absolute; left: .9rem; right: .9rem; bottom: .2rem;
    height: 2px; background: var(--red-500); border-radius: 2px;
}
.site-nav .dropdown-menu {
    --bs-dropdown-link-active-bg: var(--surface);
    --bs-dropdown-link-active-color: var(--navy-900);
    border: 0; border-radius: var(--radius); box-shadow: var(--shadow-lg);
    padding: .5rem; min-width: 290px; margin-top: .5rem;
}
.site-nav .dropdown-item {
    border-radius: var(--radius-sm); padding: .6rem .75rem; font-size: var(--fs-sm);
    display: flex; gap: .75rem; align-items: center; color: var(--ink); white-space: normal;
}
.site-nav .dropdown-item i { width: 18px; color: var(--red-500); text-align: center; }
.site-nav .dropdown-item:hover { background: var(--surface); }
.site-nav .dropdown-divider { margin: .35rem .5rem; }
.navbar-toggler {
    border: 1px solid rgba(255, 255, 255, .3); padding: .5rem .65rem; color: #fff;
    border-radius: var(--radius-sm);
}
.navbar-toggler:focus { box-shadow: none; }
.navbar-toggler-bars { display: block; width: 22px; height: 2px; background: #fff; position: relative; }
.navbar-toggler-bars::before, .navbar-toggler-bars::after {
    content: ''; position: absolute; left: 0; width: 22px; height: 2px; background: #fff;
    transition: transform .25s var(--ease), top .25s var(--ease);
}
.navbar-toggler-bars::before { top: -7px; }
.navbar-toggler-bars::after { top: 7px; }
.navbar-toggler[aria-expanded="true"] .navbar-toggler-bars { background: transparent; }
.navbar-toggler[aria-expanded="true"] .navbar-toggler-bars::before { top: 0; transform: rotate(45deg); }
.navbar-toggler[aria-expanded="true"] .navbar-toggler-bars::after { top: 0; transform: rotate(-45deg); }

@media (max-width: 1199.98px) {
    .site-nav .navbar-collapse {
        border-top: 1px solid rgba(255, 255, 255, .1); margin-top: .5rem; padding: .75rem 0 1.25rem;
        max-height: calc(100vh - var(--nav-h)); overflow-y: auto;
    }
    .site-nav .nav-link { padding: .75rem 0 !important; font-size: 1rem; }
    .site-nav .nav-link.active::after { left: 0; right: auto; width: 24px; bottom: .45rem; }
    .site-nav .dropdown-menu { background: rgba(255, 255, 255, .05); box-shadow: none; margin: 0 0 .5rem; }
    .site-nav .dropdown-item { color: rgba(255, 255, 255, .85); }
    .site-nav .dropdown-item:hover { background: rgba(255, 255, 255, .08); color: #fff; }
    .site-nav .dropdown-divider { border-color: rgba(255, 255, 255, .1); }
    .site-nav .nav-cta { margin-top: .75rem; width: 100%; }
}

/* ---------- Hero (home) ---------- */
.hero {
    position: relative; isolation: isolate; color: #fff;
    min-height: min(86vh, 760px);
    display: flex; align-items: center;
    padding-block: clamp(4rem, 3rem + 6vw, 8rem);
    background: var(--navy-900);
    overflow: hidden;
}
.hero-bg { position: absolute; inset: 0; z-index: -2; }
.hero-bg img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; }
.hero::before {
    content: ''; position: absolute; inset: 0; z-index: -1;
    background:
        linear-gradient(90deg, rgba(7, 20, 34, .94) 0%, rgba(7, 20, 34, .82) 45%, rgba(7, 20, 34, .45) 100%),
        linear-gradient(0deg, rgba(7, 20, 34, .7) 0%, rgba(7, 20, 34, 0) 40%);
}
.hero h1 { color: #fff; max-width: 20ch; margin-bottom: var(--s-5); }
.hero h1 em { font-style: normal; color: #ff8f8f; }
.hero .hero-lead { font-size: var(--fs-lg); color: rgba(255, 255, 255, .82); max-width: 54ch; margin-bottom: var(--s-6); }
.hero-actions { display: flex; flex-wrap: wrap; gap: var(--s-3); }
.hero-facts {
    display: flex; flex-wrap: wrap; gap: var(--s-4) var(--s-6);
    margin-top: var(--s-7); padding-top: var(--s-5);
    border-top: 1px solid rgba(255, 255, 255, .15);
    font-size: var(--fs-sm); color: rgba(255, 255, 255, .75);
}
.hero-facts li { display: flex; align-items: center; gap: .55rem; }
.hero-facts i { color: var(--gold-400); }

/* ---------- Page hero (inner pages) ---------- */
.page-hero {
    position: relative; isolation: isolate; color: #fff;
    background: var(--navy-900);
    padding-block: clamp(2rem, 1.5rem + 2vw, 3.25rem);
    overflow: hidden;
}
.page-hero.has-image::before {
    content: ''; position: absolute; inset: 0; z-index: -1;
    background: linear-gradient(90deg, rgba(7, 20, 34, .96) 0%, rgba(7, 20, 34, .88) 50%, rgba(7, 20, 34, .7) 100%);
}
.page-hero .page-hero-bg { position: absolute; inset: 0; z-index: -2; }
.page-hero .page-hero-bg img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(.3); }
.page-hero h1 { color: #fff; margin: 0; max-width: 22ch; }
.page-hero .page-hero-lead { color: rgba(255, 255, 255, .78); font-size: var(--fs-lg); max-width: 60ch; margin: var(--s-4) 0 0; }
.page-hero::after {
    content: ''; position: absolute; right: -120px; top: -120px; width: 420px; height: 420px; z-index: -1;
    border: 1px solid rgba(201, 164, 92, .18); border-radius: 50%;
}
.crumbs {
    display: flex; flex-wrap: wrap; gap: .4rem; list-style: none; padding: 0; margin: 0 0 var(--s-4);
    font-size: var(--fs-xs); color: rgba(255, 255, 255, .6);
}
.crumbs a { color: rgba(255, 255, 255, .75); }
.crumbs a:hover { color: #fff; }
.crumbs li + li::before { content: '/'; margin-right: .4rem; opacity: .5; }
.crumbs [aria-current] { color: #ff9a9a; }

/* ---------- Trust strip ---------- */
.trust-strip { border-bottom: 1px solid var(--line); background: var(--white); }
.trust-strip .trust-item { display: flex; gap: var(--s-3); align-items: flex-start; padding: var(--s-5) 0; }
.trust-strip .trust-item i {
    width: 44px; height: 44px; border-radius: 50%; flex-shrink: 0;
    display: grid; place-items: center; background: var(--surface); color: var(--navy-900);
}
.trust-strip .trust-item strong { display: block; font-size: var(--fs-sm); color: var(--ink); }
.trust-strip .trust-item span { font-size: var(--fs-xs); color: var(--muted); line-height: 1.5; }

/* ---------- About / intro ---------- */
.about-figure { position: relative; }
.about-figure img { border-radius: var(--radius); box-shadow: var(--shadow-lg); width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.about-figure .badge-year {
    position: absolute; left: -18px; bottom: 28px;
    background: var(--red-500); color: #fff; border-radius: var(--radius);
    padding: 1rem 1.25rem; box-shadow: var(--shadow-lg); line-height: 1.1;
}
.about-figure .badge-year strong { font-variant-numeric: lining-nums; display: block; color: #fff; font-family: var(--font-serif); font-size: 2rem; }
.about-figure .badge-year span { font-size: var(--fs-xs); letter-spacing: .08em; text-transform: uppercase; }
@media (max-width: 575.98px) { .about-figure .badge-year { left: 12px; } }
.value-list { list-style: none; padding: 0; margin: var(--s-5) 0 0; display: grid; gap: var(--s-4); }
.value-list li { display: flex; gap: var(--s-3); }
.value-list i { color: var(--red-500); margin-top: .35rem; }
.value-list strong { display: block; }
.value-list span { color: var(--muted); font-size: var(--fs-sm); }
.partner-card {
    border: 1px solid var(--line); border-radius: var(--radius); padding: var(--s-5);
    background: var(--white); margin-top: var(--s-6);
}
.partner-card h3 { font-family: var(--font-sans); font-size: var(--fs-sm); text-transform: uppercase; letter-spacing: .1em; color: var(--muted); margin-bottom: var(--s-3); }
.partner-card ul { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--s-2); }
.partner-card li { display: flex; gap: .6rem; align-items: baseline; font-size: var(--fs-sm); }
.partner-card li i { color: var(--gold-400); font-size: .8rem; }

/* ---------- Practice cards ---------- */
.practice-card {
    position: relative; height: 100%;
    display: flex; flex-direction: column;
    background: var(--white); border: 1px solid var(--line); border-radius: var(--radius);
    padding: var(--s-5) var(--s-5) var(--s-4);
    color: var(--body);
    transition: transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.practice-card::before {
    content: ''; position: absolute; left: 0; top: 0; height: 3px; width: 0;
    background: var(--red-500); border-radius: var(--radius) var(--radius) 0 0;
    transition: width .35s var(--ease);
}
.practice-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: transparent; color: var(--body); }
.practice-card:hover::before { width: 100%; }
.practice-card .icon {
    width: 56px; height: 56px; border-radius: 12px;
    display: grid; place-items: center; font-size: 1.35rem;
    background: var(--navy-900); color: #fff; margin-bottom: var(--s-4);
    transition: background-color .3s var(--ease);
}
.practice-card:hover .icon { background: var(--red-500); }
.practice-card h3 { font-family: var(--font-sans); font-size: 1.15rem; font-weight: 700; margin-bottom: var(--s-3); }
.practice-card p { font-size: var(--fs-sm); color: var(--muted); flex-grow: 1; margin-bottom: var(--s-4); }
.practice-card .link-arrow::after { content: ''; position: absolute; inset: 0; } /* whole card clickable */

.recog-img { max-width: 260px; }
@media (min-width: 768px) { .recog-img { max-width: none; } }

/* ---------- Why us ---------- */
.why-item { padding: var(--s-5) 0; border-top: 1px solid rgba(255, 255, 255, .12); height: 100%; }
.why-item .num { font-family: var(--font-serif); font-size: 1.1rem; color: var(--gold-400); margin-bottom: var(--s-3); }
.why-item h3 { font-family: var(--font-sans); font-size: 1.1rem; margin-bottom: var(--s-2); }
.why-item p { font-size: var(--fs-sm); color: rgba(255, 255, 255, .7); margin: 0; }

/* ---------- Team ---------- */
.team-card {
    position: relative; display: block; height: 100%;
    border-radius: var(--radius); overflow: hidden; background: var(--white);
    box-shadow: var(--shadow-sm); border: 1px solid var(--line);
    color: var(--body);
    transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.team-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); color: var(--body); }
.team-card .photo { aspect-ratio: 1 / 1; overflow: hidden; background: var(--surface); }
.team-card .photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; transition: transform .6s var(--ease); }
.team-card:hover .photo img { transform: scale(1.04); }
.team-card .body { padding: var(--s-4) var(--s-4) var(--s-5); }
.team-card h3 { font-family: var(--font-sans); font-size: 1rem; font-weight: 700; margin: 0 0 .2rem; }
.team-card .role { font-size: var(--fs-xs); color: var(--muted); margin: 0; letter-spacing: .02em; }
.team-card .stretched { position: absolute; inset: 0; z-index: 1; }
.team-card .social { position: relative; z-index: 2; margin-top: var(--s-3); display: flex; gap: .5rem; }
.icon-btn {
    width: 34px; height: 34px; border-radius: 50%;
    display: inline-grid; place-items: center; font-size: .85rem;
    border: 1px solid var(--line); color: var(--navy-900); background: var(--white);
}
.icon-btn:hover { background: var(--navy-900); color: #fff; border-color: var(--navy-900); }

/* ---------- Stats ---------- */
.stats { position: relative; isolation: isolate; overflow: hidden; }
.stats .stats-bg { position: absolute; inset: 0; z-index: -2; }
.stats .stats-bg img { width: 100%; height: 100%; object-fit: cover; }
.stats::before { content: ''; position: absolute; inset: 0; z-index: -1; background: rgba(7, 20, 34, .9); }
.stat { text-align: center; padding: var(--s-4) var(--s-2); }
.stat .value { font-variant-numeric: lining-nums; font-size: clamp(2.2rem, 1.7rem + 2vw, 3rem); color: #fff; line-height: 1; font-weight: 700; }
.stat .value .accent { color: var(--red-500); }
.stat .label { margin-top: var(--s-3); font-size: var(--fs-sm); color: rgba(255, 255, 255, .72); }
@media (min-width: 992px) {
    .stats .col-lg-3 + .col-lg-3 .stat { border-left: 1px solid rgba(255, 255, 255, .12); }
}

/* ---------- Testimonials ---------- */
.quote-card {
    height: 100%; display: flex; flex-direction: column;
    background: var(--white); border-radius: var(--radius); padding: var(--s-5) var(--s-5) var(--s-4);
    border: 1px solid var(--line); position: relative;
}
.quote-card .qmark { font-family: var(--font-serif); font-size: 4rem; line-height: .6; color: var(--red-500); opacity: .25; height: 1.6rem; }
.quote-card h3 { font-family: var(--font-sans); font-size: 1.05rem; margin: var(--s-2) 0 var(--s-3); }
.quote-card blockquote { font-size: var(--fs-sm); color: var(--body); margin: 0 0 var(--s-5); flex-grow: 1; }
.quote-card blockquote p:last-child { margin: 0; }
.quote-card figcaption { display: flex; align-items: center; gap: var(--s-3); padding-top: var(--s-4); border-top: 1px solid var(--line); }
.avatar-initials {
    width: 44px; height: 44px; border-radius: 50%; flex-shrink: 0;
    display: grid; place-items: center; font-weight: 700; font-size: .9rem;
    background: var(--navy-900); color: #fff; letter-spacing: .03em;
}
.quote-card .who strong { display: block; font-size: var(--fs-sm); }
.quote-card .who span { font-size: var(--fs-xs); color: var(--muted); }
.quote-card.is-clamped blockquote { display: -webkit-box; -webkit-line-clamp: 7; -webkit-box-orient: vertical; overflow: hidden; }
.quote-more { background: none; border: 0; padding: 0; color: var(--red-600); font-weight: 600; font-size: var(--fs-xs); margin: -1rem 0 1.25rem; align-self: flex-start; }

/* ---------- Post cards ---------- */
.post-card {
    position: relative; height: 100%; display: flex; flex-direction: column;
    background: var(--white); border-radius: var(--radius); overflow: hidden;
    border: 1px solid var(--line);
    transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.post-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.post-card .thumb { aspect-ratio: 16 / 9; overflow: hidden; background: var(--surface); }
.post-card .thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.post-card:hover .thumb img { transform: scale(1.04); }
.post-card .body { padding: var(--s-4); display: flex; flex-direction: column; flex-grow: 1; }
.post-card h3 { font-family: var(--font-sans); font-size: 1.1rem; line-height: 1.4; margin: 0 0 var(--s-3); }
.post-card h3 a { color: var(--ink); }
.post-card h3 a::after { content: ''; position: absolute; inset: 0; }
.post-card h3 a:hover { color: var(--red-600); }
.post-card p { font-size: var(--fs-sm); color: var(--muted); flex-grow: 1; }
.post-meta { display: flex; flex-wrap: wrap; gap: .35rem 1rem; font-size: var(--fs-xs); color: var(--muted); margin-bottom: var(--s-3); }
.post-meta i { margin-right: .3rem; color: var(--red-500); }
.post-card.is-featured { display: grid; grid-template-columns: 1fr; }
@media (min-width: 768px) {
    .post-card.is-featured { grid-template-columns: 1.15fr 1fr; }
    .post-card.is-featured .thumb { aspect-ratio: auto; height: 100%; min-height: 320px; }
    .post-card.is-featured .body { padding: var(--s-6); justify-content: center; }
    .post-card.is-featured h3 { font-size: 1.6rem; font-weight: 700; }
}
.tag {
    display: inline-block; font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
    color: var(--red-600); background: #fdecec; padding: .3rem .6rem; border-radius: 999px; margin-bottom: var(--s-3);
    align-self: flex-start;
}

/* ---------- Generic cards / panels ---------- */
.panel {
    background: var(--white); border: 1px solid var(--line); border-radius: var(--radius);
    padding: var(--s-4) var(--s-5);
}
.panel + .panel { margin-top: var(--s-4); }
.panel h2, .panel h3 { font-family: var(--font-sans); font-size: 1rem; text-transform: uppercase; letter-spacing: .08em; color: var(--ink); margin-bottom: var(--s-4); }
.panel-navy { background: var(--navy-900); border-color: var(--navy-900); color: rgba(255, 255, 255, .78); }
.panel-navy h2, .panel-navy h3 { color: #fff; }
.sticky-aside { position: sticky; top: calc(var(--nav-h) + 24px); }

.list-links { list-style: none; padding: 0; margin: 0; }
.list-links li + li { border-top: 1px solid var(--line); }
.list-links a { display: flex; align-items: center; gap: .75rem; padding: .7rem 0; color: var(--ink); font-size: var(--fs-sm); font-weight: 500; }
.list-links a i:first-child { width: 20px; text-align: center; color: var(--red-500); }
.list-links a .chev { margin-left: auto; font-size: .7rem; color: var(--muted); transition: transform .2s var(--ease); }
.list-links a:hover { color: var(--red-600); }
.list-links a:hover .chev { transform: translateX(3px); }
.list-links a[aria-current="page"] { color: var(--red-600); }

.contact-lines { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--s-3); font-size: var(--fs-sm); }
.contact-lines li { display: flex; gap: .75rem; align-items: flex-start; }
.contact-lines i { color: var(--red-500); width: 18px; text-align: center; margin-top: .3rem; }
.contact-lines a { color: inherit; }
.contact-lines a:hover { color: var(--red-500); }
.panel-navy .contact-lines a:hover { color: #fff; }

/* Check list */
.check-list { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--s-3); }
.check-list li { display: flex; gap: .85rem; align-items: flex-start; padding: var(--s-4); background: var(--surface); border-radius: var(--radius-sm); color: var(--ink); }
.check-list li i { color: var(--white); background: var(--red-500); width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; font-size: .7rem; flex-shrink: 0; margin-top: .15rem; }

.callout {
    border-left: 3px solid var(--gold-400); padding: var(--s-4) var(--s-5);
    background: linear-gradient(90deg, #fbf7ef, rgba(251, 247, 239, 0));
    border-radius: 0 var(--radius) var(--radius) 0; margin: var(--s-5) 0;
}
.callout h2, .callout h3 { font-size: 1.35rem; margin-bottom: var(--s-2); }
.callout p { margin: 0; color: var(--body); }
.callout-quote p { font-style: italic; font-size: 1.05rem; line-height: 1.6; color: var(--ink); }

/* Services overview */
.service-block { padding: var(--s-5) 0; border-top: 1px solid var(--line); }
.service-block:first-child { border-top: 0; padding-top: 0; }
.service-block .icon { width: 52px; height: 52px; border-radius: 12px; display: grid; place-items: center; background: var(--navy-900); color: #fff; font-size: 1.2rem; }
.service-block h2 { font-family: var(--font-sans); font-size: 1.35rem; font-weight: 700; margin: 0 0 var(--s-2); }
.service-block ul { columns: 1; padding-left: 1.1rem; margin: var(--s-4) 0; font-size: var(--fs-sm); }
.service-block ul li { margin-bottom: .4rem; break-inside: avoid; }
.service-block ul li::marker { color: var(--red-500); }
@media (min-width: 768px) { .service-block ul { columns: 2; column-gap: 2.5rem; } }

.offer-grid { counter-reset: offer; display: grid; gap: var(--s-4); grid-template-columns: 1fr; }
@media (min-width: 768px) { .offer-grid { grid-template-columns: 1fr 1fr; } }
.offer-grid li { list-style: none; display: flex; gap: var(--s-4); background: var(--white); border-radius: var(--radius); padding: var(--s-4) var(--s-5); font-size: var(--fs-sm); border: 1px solid var(--line); }
.offer-grid li::before {
    counter-increment: offer; content: counter(offer, decimal-leading-zero);
    font-family: var(--font-serif); font-weight: 700; color: var(--red-500); font-size: 1.15rem; line-height: 1.4;
}

/* ---------- CTA band ---------- */
.cta-band {
    position: relative; isolation: isolate; overflow: hidden;
    background: linear-gradient(120deg, var(--navy-900) 0%, var(--navy-700) 100%);
    border-radius: calc(var(--radius) * 1.5);
    padding: clamp(1.5rem, 1.25rem + 2vw, 2.5rem);
    color: rgba(255, 255, 255, .8);
}
.cta-band::after {
    content: ''; position: absolute; right: -80px; bottom: -160px; width: 380px; height: 380px; z-index: -1;
    border-radius: 50%; background: radial-gradient(circle, rgba(232, 58, 58, .35), rgba(232, 58, 58, 0) 70%);
}
.cta-band h2 { color: #fff; font-size: clamp(1.6rem, 1.3rem + 1.2vw, 2.2rem); margin-bottom: var(--s-3); }
.cta-band p { margin: 0; max-width: 56ch; }

/* ---------- Forms ---------- */
.form-panel { background: var(--white); border-radius: calc(var(--radius) * 1.5); padding: clamp(1.25rem, 1rem + 1.5vw, 2rem); box-shadow: var(--shadow-lg); color: var(--body); }
.form-panel h2 { font-size: 1.75rem; }
.form-label { font-size: var(--fs-xs); font-weight: 600; color: var(--ink); letter-spacing: .02em; margin-bottom: .35rem; }
.form-control {
    font-size: var(--fs-sm); padding: .65rem .9rem; border-radius: var(--radius-sm);
    border-color: #d5dbe2; background: #fbfcfd;
}
.form-control:focus { border-color: var(--navy-700); box-shadow: 0 0 0 .2rem rgba(29, 58, 87, .15); background: #fff; }
textarea.form-control { min-height: 120px; }
.form-hint { font-size: var(--fs-xs); color: var(--muted); }
.form-hint a, p a:not(.btn):not(.link-arrow) { text-decoration: underline; text-underline-offset: 2px; }
.hp-field { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.alert { border-radius: var(--radius-sm); font-size: var(--fs-sm); }

.contact-section { background: var(--navy-900); color: rgba(255, 255, 255, .78); }
.contact-section h2 { color: #fff; }
.contact-section .form-panel h2 { color: var(--ink); }
.map-frame { border-radius: var(--radius); overflow: hidden; border: 0; width: 100%; height: 280px; display: block; filter: grayscale(.2); }
.contact-card { display: flex; gap: var(--s-4); align-items: flex-start; padding: var(--s-5); border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); height: 100%; color: var(--body); }
.contact-card i { width: 46px; height: 46px; border-radius: 12px; display: grid; place-items: center; background: var(--surface); color: var(--red-500); flex-shrink: 0; font-size: 1.1rem; }
.contact-card strong { display: block; color: var(--ink); }
.contact-card span, .contact-card a { font-size: var(--fs-sm); color: var(--muted); }
a.contact-card:hover { border-color: var(--navy-900); }
a.contact-card:hover a, a.contact-card:hover span { color: var(--ink); }

/* ---------- Profile ---------- */
.profile-hero { background: var(--navy-900); color: rgba(255, 255, 255, .78); padding-block: clamp(2rem, 1.5rem + 2vw, 3.25rem); position: relative; overflow: hidden; isolation: isolate; }
.profile-hero::after { content: ''; position: absolute; right: -140px; top: -140px; width: 480px; height: 480px; border: 1px solid rgba(201, 164, 92, .18); border-radius: 50%; z-index: -1; }
.profile-photo { border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-lg); aspect-ratio: 4 / 5; background: var(--navy-800); max-width: 340px; }
.profile-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
.profile-hero h1 { color: #fff; font-size: clamp(2rem, 1.5rem + 2vw, 3rem); margin-bottom: var(--s-2); }
.profile-hero .role { font-size: var(--fs-lg); color: #ffb4b4; margin-bottom: var(--s-1); }
.profile-hero .sub { color: rgba(255, 255, 255, .7); margin-bottom: var(--s-5); }
.profile-actions { display: flex; flex-wrap: wrap; gap: var(--s-2); }
.profile-tabs { border-bottom: 1px solid var(--line); gap: var(--s-1); flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
.profile-tabs::-webkit-scrollbar { display: none; }
.profile-tabs .nav-link {
    border: 0; border-bottom: 2px solid transparent; border-radius: 0; white-space: nowrap;
    color: var(--muted); font-weight: 600; font-size: var(--fs-sm); padding: .9rem 1rem; margin-bottom: -1px;
}
.profile-tabs .nav-link:hover { color: var(--ink); }
.profile-tabs .nav-link.active { color: var(--ink); border-bottom-color: var(--red-500); background: none; }
.facts dt { font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: .08em; color: var(--muted); font-weight: 600; }
.facts dd { margin-bottom: var(--s-4); color: var(--ink); font-size: var(--fs-sm); }
.chip-list { display: flex; flex-wrap: wrap; gap: .4rem; list-style: none; padding: 0; margin: 0; }
.chip-list li { font-size: var(--fs-xs); background: var(--surface); border: 1px solid var(--line); padding: .3rem .65rem; border-radius: 999px; color: var(--ink); }
.team-pager { display: flex; justify-content: space-between; gap: var(--s-4); border-top: 1px solid var(--line); padding-top: var(--s-4); margin-top: var(--s-5); }
.team-pager a { display: flex; flex-direction: column; color: var(--ink); font-weight: 600; font-size: var(--fs-sm); max-width: 48%; }
.team-pager a span { font-size: var(--fs-xs); color: var(--muted); font-weight: 500; text-transform: uppercase; letter-spacing: .08em; }
.team-pager a:hover { color: var(--red-600); }
.team-pager .next { text-align: right; margin-left: auto; }

/* ---------- Long-form text (blog, bios) ---------- */
.prose { font-size: var(--fs-base); line-height: 1.85; color: var(--body); max-width: 72ch; overflow-wrap: anywhere; }
.prose-lg { font-size: 1.0625rem; }
.prose > :first-child { margin-top: 0; }
.prose h2, .prose h3, .prose h4 { margin: 2em 0 .6em; }
.prose h2 { font-size: 1.75rem; }
.prose h3 { font-size: 1.35rem; font-family: var(--font-sans); }
.prose h4 { font-size: 1.15rem; font-family: var(--font-sans); }
.prose p, .prose li { text-align: left !important; } /* admin editor sometimes injects justify */
.prose ul, .prose ol { padding-left: 1.3rem; margin-bottom: 1.2em; }
.prose li { margin-bottom: .45em; }
.prose li::marker { color: var(--red-500); }
.prose a { color: var(--red-600); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.prose a:hover { color: var(--navy-900); }
.prose blockquote { border-left: 3px solid var(--gold-400); padding: .25rem 0 .25rem 1.25rem; font-style: italic; font-size: 1.1rem; color: var(--ink); margin: 1.6em 0; }
.prose img { border-radius: var(--radius); margin: 1em 0; height: auto !important; }
.prose table { width: 100%; font-size: var(--fs-sm); margin: 1.5em 0; border-collapse: collapse; display: block; overflow-x: auto; }
.prose th, .prose td { border: 1px solid var(--line); padding: .6rem .75rem; }
.prose th { background: var(--surface); }
.prose iframe, .prose embed, .prose object { max-width: 100%; }
.prose strong, .prose b { color: var(--ink); }
.prose span, .prose font { font-family: inherit !important; font-size: inherit !important; } /* strip pasted Word styling */

/* ---------- Article ---------- */
.article-hero { background: var(--navy-900); color: rgba(255, 255, 255, .75); padding-top: clamp(2.5rem, 2rem + 3vw, 4rem); position: relative; isolation: isolate; overflow: hidden; }
.article-hero h1 { color: #fff; font-size: clamp(2rem, 1.4rem + 2.6vw, 3.25rem); max-width: 24ch; margin-bottom: var(--s-4); }
.article-hero .lede { font-size: var(--fs-lg); color: rgba(255, 255, 255, .8); max-width: 60ch; }
.article-hero .post-meta { color: rgba(255, 255, 255, .7); font-size: var(--fs-sm); }
.article-cover { margin-top: var(--s-6); margin-bottom: calc(-1 * clamp(4rem, 3rem + 6vw, 9rem)); position: relative; z-index: 2; }
.article-cover img { width: 100%; border-radius: var(--radius); box-shadow: var(--shadow-lg); aspect-ratio: 16 / 8; object-fit: cover; background: var(--navy-800); }
.article-body { padding-top: calc(clamp(4rem, 3rem + 6vw, 9rem) + var(--s-6)); }
.share-row { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; padding: var(--s-4) 0; border-block: 1px solid var(--line); margin-top: var(--s-5); }
.share-row > span { font-size: var(--fs-xs); font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); margin-right: .5rem; }
.author-card { display: flex; gap: var(--s-4); align-items: center; margin-top: var(--s-5); padding: var(--s-4); background: var(--surface); border-radius: var(--radius); }
.author-card strong { display: block; }
.author-card span { font-size: var(--fs-sm); color: var(--muted); }
.reading-progress { position: fixed; top: 0; left: 0; height: 3px; width: 0; background: var(--red-500); z-index: 1100; transition: width .1s linear; }

/* Pagination */
.pagination { --bs-pagination-color: var(--navy-900); --bs-pagination-active-bg: var(--navy-900); --bs-pagination-active-border-color: var(--navy-900); --bs-pagination-hover-color: var(--red-600); --bs-pagination-focus-box-shadow: 0 0 0 .2rem rgba(232, 58, 58, .25); gap: .35rem; }
.pagination .page-link { border-radius: var(--radius-sm) !important; min-width: 42px; text-align: center; font-size: var(--fs-sm); font-weight: 600; }

/* ---------- Footer ---------- */
.site-footer { background: var(--navy-950); color: rgba(255, 255, 255, .65); font-size: var(--fs-sm); }
.site-footer .footer-main { padding-block: clamp(2.5rem, 2rem + 2vw, 3.5rem); }
.site-footer h2 { font-family: var(--font-sans); font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; color: #fff; margin-bottom: var(--s-4); }
.site-footer a { color: rgba(255, 255, 255, .72); }
.site-footer a:hover { color: #fff; }
.site-footer ul.links { list-style: none; padding: 0; margin: 0; display: grid; gap: .55rem; }
.site-footer .brand-mark { margin-bottom: var(--s-4); }
.site-footer .social { display: flex; gap: .5rem; margin-top: var(--s-5); }
.site-footer .social a { width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; border: 1px solid rgba(255, 255, 255, .2); }
.site-footer .social a:hover { background: var(--red-500); border-color: var(--red-500); color: #fff; }
.site-footer .footer-bottom { border-top: 1px solid rgba(255, 255, 255, .08); padding-block: var(--s-5); font-size: var(--fs-xs); color: rgba(255, 255, 255, .5); }

/* ---------- Floating actions ---------- */
.float-stack { position: fixed; right: 18px; bottom: 18px; z-index: 1040; display: flex; flex-direction: column; gap: .6rem; align-items: flex-end; }
.float-btn {
    width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; font-size: 1.25rem;
    box-shadow: var(--shadow-lg); border: 0; color: #fff;
    transition: transform .25s var(--ease), opacity .25s var(--ease), visibility .25s;
}
.float-btn:hover { transform: translateY(-3px); color: #fff; }
.float-top { background: var(--navy-900); opacity: 0; visibility: hidden; transform: translateY(10px); }
.float-top.is-visible { opacity: 1; visibility: visible; transform: none; }

/* ---------- Reveal on scroll (both directions; only when JS + motion allowed) ---------- */
@media (prefers-reduced-motion: no-preference) {
    .js [data-reveal] {
        opacity: 0;
        transform: translate3d(0, 28px, 0);
        transition: opacity .7s var(--ease), transform .8s var(--ease);
        will-change: opacity, transform;
    }
    .js [data-reveal].from-top { transform: translate3d(0, -28px, 0); }          /* entering while scrolling up */
    .js [data-reveal="left"] { transform: translate3d(-40px, 0, 0); }
    .js [data-reveal="right"] { transform: translate3d(40px, 0, 0); }
    .js [data-reveal="zoom"] { transform: scale(.94) translate3d(0, 16px, 0); }
    .js [data-reveal="zoom"].from-top { transform: scale(.94) translate3d(0, -16px, 0); }
    .js [data-reveal].is-in { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* ---------- Print ---------- */
@media print {
    .topbar, .site-nav, .float-stack, .site-footer, .share-row, .cta-band, .reading-progress { display: none !important; }
    .page-hero, .article-hero, .profile-hero { background: none !important; color: #000 !important; padding: 0 !important; }
    .page-hero h1, .article-hero h1, .profile-hero h1 { color: #000 !important; }
}

/* ---------- Blog (list + article) ---------- */
.blog-wrap { background: var(--surface); }
.blog-sidebar { display: grid; gap: var(--s-4); }
.widget { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: var(--s-4) var(--s-5); font-size: var(--fs-sm); }
.widget-title {
    font-family: var(--font-sans); font-size: .95rem; font-weight: 700; color: var(--ink);
    margin: 0 0 var(--s-4); padding-bottom: var(--s-3); border-bottom: 1px solid var(--line); position: relative;
}
.widget-title::after { content: ''; position: absolute; left: 0; bottom: -1px; width: 36px; height: 2px; background: var(--red-500); }
.widget p { color: var(--muted); }
.widget-search { position: relative; }
.widget-search .form-control { padding-right: 3rem; }
.widget-search button { position: absolute; right: 4px; top: 4px; bottom: 4px; width: 42px; border: 0; border-radius: var(--radius-sm); background: var(--navy-900); color: #fff; }
.widget-search button:hover { background: var(--red-btn); }
.recent-posts { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--s-4); }
.recent-posts a { display: flex; gap: var(--s-3); align-items: center; color: var(--ink); }
.recent-posts img { width: 72px; height: 72px; border-radius: var(--radius-sm); object-fit: cover; flex-shrink: 0; background: var(--surface); }
.recent-posts .rp-title { display: block; font-weight: 600; line-height: 1.4; font-size: var(--fs-sm); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.recent-posts .rp-date { display: block; font-size: var(--fs-xs); color: var(--muted); margin-top: .2rem; }
.recent-posts a:hover .rp-title { color: var(--red-600); }
.widget-cta { background: var(--navy-900); border-color: var(--navy-900); color: rgba(255, 255, 255, .78); }
.widget-cta .widget-title { color: #fff; border-color: rgba(255, 255, 255, .12); }
.widget-cta p { color: rgba(255, 255, 255, .72); }
.widget-cta a:not(.btn) { color: #fff; }

/* list: full-width "classic" entries */
.blog-entry { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; position: relative; transition: box-shadow .3s var(--ease); }
.blog-entry + .blog-entry { margin-top: var(--s-5); }
.blog-entry:hover { box-shadow: var(--shadow); }
.blog-entry .thumb { aspect-ratio: 16 / 8; overflow: hidden; background: var(--surface); }
.blog-entry .thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.blog-entry:hover .thumb img { transform: scale(1.03); }
.blog-entry .body { padding: var(--s-4) var(--s-5) var(--s-5); }
.blog-entry h2 { font-size: clamp(1.35rem, 1.15rem + .8vw, 1.75rem); margin: 0 0 var(--s-3); line-height: 1.3; }
.blog-entry h2 a { color: var(--ink); }
.blog-entry h2 a:hover { color: var(--red-600); }
.blog-entry p { color: var(--muted); }
.blog-entry .post-meta { font-size: var(--fs-sm); }
.blog-entry.is-compact { display: grid; grid-template-columns: 1fr; }
@media (min-width: 768px) {
    .blog-entry.is-compact { grid-template-columns: 300px 1fr; }
    .blog-entry.is-compact .thumb { aspect-ratio: auto; height: 100%; min-height: 220px; }
    .blog-entry.is-compact .body { padding: var(--s-5); display: flex; flex-direction: column; justify-content: center; }
    .blog-entry.is-compact h2 { font-size: 1.3rem; }
}
@media (max-width: 575.98px) { .blog-entry .body { padding: var(--s-4) var(--s-4) var(--s-5); } }
.search-note { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: var(--s-4) var(--s-5); margin-bottom: var(--s-5); display: flex; justify-content: space-between; align-items: center; gap: var(--s-3); flex-wrap: wrap; font-size: var(--fs-sm); }

/* article */
.post-hero { position: relative; isolation: isolate; color: #fff; min-height: 380px; display: flex; align-items: flex-end; padding: clamp(3rem, 2rem + 4vw, 5rem) 0 clamp(2rem, 1.5rem + 2vw, 3rem); overflow: hidden; background: var(--navy-900); }
.post-hero .post-hero-bg { position: absolute; inset: 0; z-index: -2; }
.post-hero .post-hero-bg img { width: 100%; height: 100%; object-fit: cover; }
.post-hero::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(7, 20, 34, .95) 0%, rgba(7, 20, 34, .72) 45%, rgba(7, 20, 34, .35) 100%); }
.post-hero h1 { color: #fff; font-size: clamp(2rem, 1.4rem + 2.6vw, 3.25rem); max-width: 26ch; margin-bottom: var(--s-4); }
.post-hero .post-meta { color: rgba(255, 255, 255, .8); font-size: var(--fs-sm); margin: 0; }
.post-hero .post-meta i { color: #ff8a8a; }
.post-hero .tag { background: rgba(232, 58, 58, .9); color: #fff; }
.article-card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: clamp(1.25rem, 1rem + 1.5vw, 2.25rem); }
.article-card .lede { font-size: 1.2rem; line-height: 1.7; color: var(--ink); padding-bottom: var(--s-5); margin-bottom: var(--s-5); border-bottom: 1px solid var(--line); }
.article-card .share-row { margin-top: var(--s-6); border-bottom: 0; padding-bottom: 0; }
.post-nav { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-4); margin-top: var(--s-5); }
.post-nav a { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: var(--s-4) var(--s-5); color: var(--ink); font-weight: 600; font-size: var(--fs-sm); line-height: 1.4; }
.post-nav a span { display: block; font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: .08em; color: var(--muted); font-weight: 600; margin-bottom: .3rem; }
.post-nav a:hover { border-color: var(--navy-900); color: var(--red-600); }
.post-nav .next { text-align: right; grid-column: 2; }
.icon-btn.is-copied { background: var(--navy-900); color: #fff; }

/* ---------- Home: feedback carousel + recent blogs ---------- */
.carousel-arrows { display: flex; gap: .5rem; }
.carousel-arrows button {
    width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--line); background: var(--white);
    color: var(--navy-900); display: grid; place-items: center; font-size: .85rem;
    transition: background-color .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease);
}
.carousel-arrows button:hover { background: var(--navy-900); border-color: var(--navy-900); color: #fff; }
.feedback-card { min-height: 280px; box-shadow: var(--shadow-sm); }
.feedback-card blockquote { font-size: var(--fs-base); line-height: 1.75; }
.carousel-dots { display: flex; gap: .4rem; margin-top: var(--s-4); }
.carousel-dots button { width: 8px; height: 8px; border-radius: 999px; border: 0; padding: 0; background: #c9d0d8; transition: width .25s var(--ease), background-color .25s var(--ease); }
.carousel-dots button.active { width: 24px; background: var(--red-500); }
.recent-blog-list { list-style: none; padding: 0; margin: 0; }
.recent-blog-list li + li { border-top: 1px solid var(--line); }
.recent-blog-list a { display: flex; gap: var(--s-4); align-items: flex-start; padding: var(--s-4) 0; color: var(--body); }
.recent-blog-list li:first-child a { padding-top: 0; }
.recent-blog-list img { width: 96px; height: 96px; border-radius: var(--radius-sm); object-fit: cover; flex-shrink: 0; background: var(--white); }
.recent-blog-list .rb-title { display: block; font-weight: 700; color: var(--ink); line-height: 1.4; margin-bottom: .3rem; transition: color .2s var(--ease); }
.recent-blog-list .rb-excerpt { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: var(--fs-sm); color: var(--muted); line-height: 1.6; }
.recent-blog-list .rb-date { display: block; font-size: var(--fs-xs); color: var(--muted); margin-top: .35rem; }
.recent-blog-list .rb-date i { color: var(--red-500); }
.recent-blog-list a:hover .rb-title { color: var(--red-600); }
@media (max-width: 575.98px) { .recent-blog-list img { width: 76px; height: 76px; } }

/* ---------- Home: hero slider ---------- */
.hero-slider { position: relative; background: var(--navy-900); }
.hero-slider .hero { min-height: min(78vh, 640px); padding-block: 4rem 5.5rem; }
.hero-slider .hero h1, .hero-slider .hero .h1 { color: #fff; max-width: 20ch; margin-bottom: var(--s-5); }
.hero-slider .hero-copy { max-width: 760px; }
.hero-slider .carousel-item.active .hero-copy > * { animation: heroIn .8s var(--ease) both; }
.hero-slider .carousel-item.active .hero-copy > :nth-child(2) { animation-delay: .1s; }
.hero-slider .carousel-item.active .hero-copy > :nth-child(3) { animation-delay: .2s; }
.hero-slider .carousel-item.active .hero-copy > :nth-child(4) { animation-delay: .3s; }
@keyframes heroIn { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
.hero-slider .carousel-item.active .hero-bg img { animation: heroZoom 7s ease-out both; }
@keyframes heroZoom { from { transform: scale(1.06); } to { transform: scale(1); } }
.hero-slider .carousel-control-prev, .hero-slider .carousel-control-next { width: 7%; min-width: 64px; opacity: 1; z-index: 3; }
.hero-arrow {
    width: 50px; height: 50px; border-radius: 50%; display: grid; place-items: center;
    border: 1px solid rgba(255, 255, 255, .35); color: #fff; background: rgba(7, 20, 34, .25);
    transition: background-color .2s var(--ease), border-color .2s var(--ease);
}
.hero-slider .carousel-control-prev:hover .hero-arrow, .hero-slider .carousel-control-next:hover .hero-arrow,
.hero-slider .carousel-control-prev:focus-visible .hero-arrow, .hero-slider .carousel-control-next:focus-visible .hero-arrow { background: var(--red-btn); border-color: var(--red-btn); }
.hero-slider .carousel-indicators { bottom: 1.25rem; margin-bottom: 0; z-index: 3; }
.hero-slider .carousel-indicators [data-bs-target] { width: 10px; height: 10px; border-radius: 999px; border: 0; margin: 0 5px; opacity: .55; background: #fff; transition: width .3s var(--ease), opacity .3s; }
.hero-slider .carousel-indicators .active { width: 30px; opacity: 1; background: var(--red-500); }
.hero-facts-bar { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; border-top: 1px solid rgba(255, 255, 255, .12); background: rgba(7, 20, 34, .55); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.hero-facts-bar .hero-facts { margin: 0; padding: 1rem 0; border: 0; }
.hero-facts-bar a { color: #fff; font-weight: 600; }
.scroll-cue { position: absolute; left: 50%; bottom: 2.6rem; transform: translateX(-50%); z-index: 3; color: rgba(255, 255, 255, .8); font-size: 1.1rem; }
.scroll-cue:hover { color: #fff; }
@media (max-width: 767.98px) { .scroll-cue { display: none; } }
@media (prefers-reduced-motion: no-preference) {
    .scroll-cue { animation: cue 2s ease-in-out infinite; }
    @keyframes cue { 0%, 100% { transform: translate(-50%, 0); } 50% { transform: translate(-50%, 6px); } }
}
@media (max-width: 767.98px) {
    .hero-slider .carousel-control-prev, .hero-slider .carousel-control-next { display: none; }
    .hero-slider .carousel-indicators { bottom: auto; top: 1.25rem; justify-content: flex-start; margin: 0; left: 12px; right: auto; }
    .hero-facts-bar .hero-facts { gap: .5rem 1.25rem; font-size: var(--fs-xs); }
    .hero-slider .hero { padding-block: 3.5rem 4rem; }
}


/* ---------- Home: About (two-column, as on the previous site) ---------- */
.about-split { overflow: hidden; }
.about-dark { background: var(--navy-900); color: rgba(255, 255, 255, .82); }
.about-light { position: relative; isolation: isolate; background: var(--surface); }
.about-light-bg { position: absolute; inset: 0; z-index: -1; opacity: .08; }
.about-light-bg img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; filter: grayscale(1); }
.about-inner { padding: clamp(2rem, 1.5rem + 2vw, 3.25rem) clamp(1rem, 1rem + 2vw, 3rem); max-width: 640px; }
.about-split h2 { font-size: clamp(1.4rem, 1.2rem + .8vw, 1.85rem); margin-bottom: var(--s-4); }
.about-dark h2 { color: #fff; }
.about-dark h2 i { color: var(--red-500); }
.about-split p { font-size: var(--fs-sm); line-height: 1.8; }
.about-dark strong { color: #fff; }

/* ---------- Home: call band ---------- */
.call-band { padding-block: clamp(1.5rem, 1.25rem + 1vw, 2.25rem); border-bottom: 1px solid var(--line); background: var(--white); }
.call-band h2 { font-size: clamp(1.2rem, 1.05rem + .6vw, 1.5rem); font-style: italic; margin-bottom: var(--s-2); }
.call-band p { max-width: 75ch; margin: 0 auto; color: var(--muted); font-size: var(--fs-sm); line-height: 1.65; }

/* ---------- Practice pages (structure of the previous site) ---------- */
.practice-title { font-size: clamp(1.5rem, 1.3rem + .8vw, 2rem); margin-bottom: var(--s-3); }
.practice-subtitle { font-size: 1.2rem; margin-top: var(--s-5); margin-bottom: 0; }
.num-list { counter-reset: num; list-style: none; padding: 0; margin: var(--s-4) 0 0; }
.num-list li + li { margin-top: var(--s-3); }
@media (min-width: 768px) { .num-list { columns: 2; column-gap: var(--s-6); } .num-list li { break-inside: avoid; } .num-list li + li { margin-top: 0; } .num-list li { margin-bottom: var(--s-3); } }
.num-list li { position: relative; padding-left: 2.4rem; font-size: var(--fs-sm); color: var(--ink); line-height: 1.6; }
.num-list li::before {
    counter-increment: num; content: counter(num);
    position: absolute; left: 0; top: 0; width: 26px; height: 26px; border-radius: 50%;
    background: var(--red-btn); color: #fff; font-size: .75rem; font-weight: 700; display: grid; place-items: center;
}
.related-practices { margin-top: var(--s-6); padding-top: var(--s-5); border-top: 1px solid var(--line); }
.related-practices h3 { font-size: 1.15rem; margin-bottom: var(--s-4); }
.related-card {
    display: block; height: 100%; padding: var(--s-4); border-radius: var(--radius-sm);
    background: var(--white); border: 1px solid var(--line); border-left: 3px solid var(--navy-900);
    box-shadow: var(--shadow-sm); color: var(--body); transition: transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease);
}
.related-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); border-left-color: var(--red-500); color: var(--body); }
.related-card strong { display: flex; gap: .5rem; align-items: center; font-size: var(--fs-sm); color: var(--ink); margin-bottom: .35rem; }
.related-card strong i { color: var(--red-500); }
.related-card span { font-size: var(--fs-xs); color: var(--muted); line-height: 1.5; display: block; }


/* ---------- Home: practice tiles (photo cards, as on the previous site) ---------- */
.practice-tile {
    position: relative; isolation: isolate; display: flex; align-items: flex-end;
    height: 230px; border-radius: var(--radius); overflow: hidden; color: #fff;
    box-shadow: var(--shadow-sm);
}
.practice-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .8s var(--ease); }
.practice-tile::before {
    content: ''; position: absolute; inset: 0; z-index: -1;
    background: linear-gradient(0deg, rgba(7, 20, 34, .95) 0%, rgba(7, 20, 34, .72) 45%, rgba(7, 20, 34, .35) 100%);
    transition: background-color .4s var(--ease);
}
.practice-tile::after { content: ''; position: absolute; left: 0; bottom: 0; height: 3px; width: 0; background: var(--red-500); transition: width .45s var(--ease); }
.practice-tile:hover { color: #fff; box-shadow: var(--shadow-lg); }
.practice-tile:hover img { transform: scale(1.08); }
.practice-tile:hover::after { width: 100%; }
.tile-body { display: block; padding: var(--s-4) var(--s-5); width: 100%; }
.tile-icon { width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; background: var(--red-btn); font-size: .95rem; margin-bottom: var(--s-3); transition: transform .4s var(--ease); }
.practice-tile:hover .tile-icon { transform: translateY(-3px) rotate(-6deg); }
.tile-title { display: block; font-weight: 700; font-size: 1.05rem; line-height: 1.3; }
.tile-desc { display: block; font-size: var(--fs-xs); color: rgba(255, 255, 255, .78); margin-top: .25rem; }
.tile-more { display: inline-flex; align-items: center; gap: .4rem; font-size: var(--fs-xs); font-weight: 700; color: #ff9a9a; margin-top: .5rem; max-height: 0; opacity: 0; overflow: hidden; transition: max-height .35s var(--ease), opacity .35s var(--ease); }
.practice-tile:hover .tile-more, .practice-tile:focus-visible .tile-more { max-height: 24px; opacity: 1; }
@media (hover: none) { .tile-more { max-height: 24px; opacity: 1; } }
@media (max-width: 575.98px) { .practice-tile { height: 190px; } }
.section-head h2 { margin-bottom: 0; }


/* ---------- Blog list: featured + 2-column cards ---------- */
.blog-featured {
    display: grid; grid-template-columns: 1fr; background: var(--white); border: 1px solid var(--line);
    border-radius: var(--radius); overflow: hidden; margin-bottom: var(--s-5); transition: box-shadow .3s var(--ease);
}
.blog-featured:hover { box-shadow: var(--shadow); }
.blog-featured .thumb { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--surface); }
.blog-featured .thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.blog-featured:hover .thumb img { transform: scale(1.04); }
.blog-featured .thumb .tag { position: absolute; left: 14px; top: 14px; margin: 0; background: var(--red-btn); color: #fff; }
.blog-featured .body { padding: var(--s-4) var(--s-5) var(--s-5); display: flex; flex-direction: column; }
.blog-featured h2 { font-size: clamp(1.25rem, 1.1rem + .6vw, 1.6rem); line-height: 1.3; margin: 0 0 var(--s-2); }
.blog-featured h2 a { color: var(--ink); }
.blog-featured h2 a:hover { color: var(--red-600); }
.blog-featured p { color: var(--muted); font-size: var(--fs-sm); margin-bottom: var(--s-4); }
.blog-featured .byline { display: inline-flex; align-items: center; gap: .55rem; font-size: var(--fs-xs); font-weight: 600; color: var(--ink); }
.blog-featured .byline .avatar-initials { width: 30px; height: 30px; font-size: .7rem; }
@media (min-width: 768px) {
    .blog-featured { grid-template-columns: 1.1fr 1fr; }
    .blog-featured .thumb { aspect-ratio: auto; height: 100%; min-height: 280px; }
    .blog-featured .body { padding: var(--s-5); justify-content: center; }
}

.blog-card {
    position: relative; height: 100%; display: flex; flex-direction: column; background: var(--white);
    border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden;
    transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.blog-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); }
.blog-card .thumb { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--surface); }
.blog-card .thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.blog-card:hover .thumb img { transform: scale(1.05); }
.blog-card .body { padding: var(--s-3) var(--s-4) var(--s-4); display: flex; flex-direction: column; flex-grow: 1; }
.blog-card h2 { font-size: 1.05rem; line-height: 1.4; margin: 0 0 var(--s-2); }
.blog-card h2 a { color: var(--ink); }
.blog-card h2 a::after { content: ''; position: absolute; inset: 0; }
.blog-card h2 a:hover { color: var(--red-600); }
.blog-card p { font-size: var(--fs-sm); color: var(--muted); line-height: 1.6; margin-bottom: var(--s-3);
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.blog-card .link-arrow { font-size: var(--fs-xs); }
.blog-featured .post-meta, .blog-card .post-meta { flex-wrap: nowrap; white-space: nowrap; font-size: var(--fs-xs); margin-bottom: var(--s-2); }
.blog-wrap .page-hero + .section, .blog-wrap { padding-top: var(--s-6); }

/* search */
.blog-card mark, .blog-featured mark { background: #fde2e2; color: inherit; padding: 0 .1em; border-radius: 3px; }
.search-note { padding: var(--s-3) var(--s-4); margin-bottom: var(--s-4); }
.suggest-head { display: flex; justify-content: space-between; align-items: baseline; gap: var(--s-3); margin: var(--s-6) 0 var(--s-4); padding-top: var(--s-4); border-top: 1px solid var(--line); }
.suggest-head h2 { font-size: 1.2rem; margin: 0; }

/* practice pages: recent blogs in the main column + compact sidebar */
.mini-post { display: flex; gap: var(--s-3); align-items: center; padding: var(--s-3); border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--white); color: var(--ink); height: 100%; transition: box-shadow .25s var(--ease), border-color .25s var(--ease); }
.mini-post:hover { box-shadow: var(--shadow); border-color: transparent; color: var(--ink); }
.mini-post img { width: 84px; height: 64px; border-radius: 6px; object-fit: cover; flex-shrink: 0; background: var(--surface); }
.mini-post .mp-title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-weight: 600; font-size: var(--fs-sm); line-height: 1.4; }
.mini-post .mp-date { display: block; font-size: var(--fs-xs); color: var(--muted); margin-top: .25rem; }
.mini-post .mp-date i { color: var(--red-500); }
.mini-post:hover .mp-title { color: var(--red-600); }
.compact-aside { gap: var(--s-3); }
.compact-aside .widget { padding: var(--s-4); }
.compact-aside .widget-title { margin-bottom: var(--s-2); padding-bottom: var(--s-2); }
.compact-aside .list-links a { padding: .5rem 0; }
.compact-aside .contact-lines { gap: var(--s-2); }
.related-practices { margin-top: var(--s-5); padding-top: var(--s-4); }

/* ---------- Article page: news-portal layout ---------- */
.news-head { margin-bottom: var(--s-4); }
.news-head .crumbs { margin-bottom: var(--s-2); }
.crumbs-dark { color: var(--muted); }
.crumbs-dark a { color: var(--muted); }
.crumbs-dark a:hover { color: var(--red-600); }
.crumbs-dark [aria-current] { color: var(--ink); }
.news-head-inner { padding: 0; }
.kicker {
    display: inline-block; font-size: var(--fs-xs); font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
    color: var(--red-600); border-bottom: 2px solid var(--red-500); padding-bottom: .1rem; margin-bottom: var(--s-2);
}
.kicker:hover { color: var(--navy-900); }
.news-head h1 { font-size: clamp(1.5rem, 1.25rem + 1vw, 2.05rem); line-height: 1.2; letter-spacing: -.015em; color: var(--ink); margin-bottom: var(--s-2); }
.standfirst { font-size: 1.05rem; line-height: 1.55; color: var(--muted); margin-bottom: var(--s-3); max-width: 70ch; }
.byline-bar {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s-3);
    padding-top: var(--s-3); border-top: 1px solid var(--line);
}
.byline { display: flex; align-items: center; gap: var(--s-3); }
.byline img, .byline .avatar-initials { width: 40px; height: 40px; font-size: .8rem; border-radius: 50%; object-fit: cover; object-position: center 20%; flex-shrink: 0; }
.byline-name { font-size: var(--fs-sm); color: var(--muted); }
.byline-name a, .byline-name strong { color: var(--ink); font-weight: 700; }
.byline-name a:hover { color: var(--red-600); }
.byline-meta { display: flex; flex-wrap: wrap; gap: .15rem .5rem; font-size: var(--fs-xs); color: var(--muted); }
.byline-meta span + span::before { content: '·'; margin-right: .5rem; color: #b8c0c9; }
.share-inline { display: flex; gap: .4rem; flex-wrap: wrap; }

.news-body { padding: var(--s-4) 0 var(--section-y); }
.news-body .sticky-aside { top: calc(var(--nav-h) + 16px); }
.news-figure { margin: 0 0 var(--s-4); }
.news-figure img { width: 100%; aspect-ratio: 16 / 8; max-height: 440px; object-fit: cover; border-radius: var(--radius); background: var(--surface); }
.news-columns { display: flex; gap: var(--s-5); align-items: flex-start; }
.share-rail { position: sticky; top: calc(var(--nav-h) + 24px); flex-direction: column; align-items: center; gap: .45rem; flex-shrink: 0; }
.share-rail > span { font-size: .65rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); margin-bottom: .2rem; }
.news-text { flex: 1; min-width: 0; }

.prose-news { max-width: 70ch; font-size: 1.0625rem; line-height: 1.85; color: #2b3440; }
.prose-news p.dropcap::first-letter {
    float: left; font-size: 3.6em; line-height: .85; font-weight: 700; color: var(--navy-900);
    margin: .08em .12em 0 0; padding: .02em .06em 0 0;
}
.prose-news h2 { font-size: 1.5rem; margin-top: 1.8em; padding-top: .6em; border-top: 1px solid var(--line); }
.prose-news h3 { font-size: 1.2rem; margin-top: 1.6em; }
.prose-news blockquote {
    border: 0; border-left: 4px solid var(--red-500); background: var(--surface); border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
    padding: var(--s-4) var(--s-5); font-size: 1.15rem; font-weight: 600; font-style: normal; color: var(--ink); line-height: 1.6;
}
.prose-news img { width: 100%; }
.prose-news hr { margin: 2em 0; border-color: var(--line); opacity: 1; }

.share-end { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s-3); margin-top: var(--s-5); padding: var(--s-3) 0; border-block: 1px solid var(--line); }
.share-end > strong { font-size: var(--fs-sm); }
.share-pill { display: inline-flex; align-items: center; gap: .45rem; padding: .45rem .9rem; border-radius: 999px; font-size: var(--fs-xs); font-weight: 600; color: #fff; transition: filter .2s var(--ease), transform .2s var(--ease); }
.share-pill:hover { color: #fff; filter: brightness(1.1); transform: translateY(-1px); }
.share-li { background: #0a66c2; }
.share-x { background: #111; }
.share-fb { background: #1877f2; }
.share-em { background: var(--navy-700); }

.author-box { display: flex; gap: var(--s-4); align-items: flex-start; margin-top: var(--s-4); padding: var(--s-4); background: var(--surface); border-radius: var(--radius); border-left: 4px solid var(--navy-900); }
.author-box img, .author-box .avatar-initials { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; object-position: center 20%; flex-shrink: 0; font-size: 1.3rem; }
.author-box .ab-label { display: block; font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--red-600); }
.author-box strong { display: block; font-size: 1.05rem; }
.author-box .ab-role { display: block; font-size: var(--fs-sm); color: var(--muted); }

.most-read { list-style: none; padding: 0; margin: 0; counter-reset: none; }
.most-read li + li { border-top: 1px solid var(--line); }
.most-read a { display: flex; gap: var(--s-3); align-items: flex-start; padding: .5rem 0; color: var(--ink); }
.most-read .mr-num { font-size: 1.35rem; font-weight: 800; line-height: 1; color: var(--red-500); opacity: .85; min-width: 1.4rem; }
.most-read .mr-title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-weight: 600; font-size: var(--fs-sm); line-height: 1.4; }
.most-read .mr-meta { display: block; font-size: var(--fs-xs); color: var(--muted); margin-top: .2rem; }
.most-read a:hover .mr-title { color: var(--red-600); }

@media print {
    .share-rail, .share-inline, .share-end, .post-nav, .col-lg-4 .sticky-aside, .reading-progress { display: none !important; }
    .news-body .col-lg-8 { width: 100% !important; }
}

.prose-news p:has(> .bullet:first-child) { position: relative; padding-left: 1.4rem; }
.prose-news .bullet { position: absolute; left: .2rem; color: var(--red-500); font-weight: 700; }

.share-inline .icon-btn { width: 32px; height: 32px; font-size: .8rem; }


/* ---------- Article page: card layout (Imvaho-style) ---------- */
.news-body { background: var(--surface); padding-top: var(--s-5); }
.news-card { background: var(--white); border: 1px solid var(--line); border-radius: 14px; padding: clamp(1.25rem, 1rem + 1.5vw, 2.25rem); }
.news-head { margin-bottom: var(--s-4); }
.news-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; list-style: none; padding: 0; margin: 0 0 var(--s-3); font-size: var(--fs-sm); }
.news-crumbs li + li::before { content: '›'; margin-right: .5rem; color: var(--muted); }
.news-crumbs a { color: var(--muted); }
.news-crumbs a:hover { color: var(--red-600); }
.news-crumbs a.cat { color: var(--red-600); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; font-size: var(--fs-xs); }
.news-head h1 { font-size: clamp(1.6rem, 1.3rem + 1.3vw, 2.35rem); line-height: 1.2; margin-bottom: var(--s-3); }
.news-head .standfirst { margin-bottom: var(--s-4); }
.news-head .byline-bar { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: var(--s-4) 0; }
.byline img, .byline .avatar-initials { width: 52px; height: 52px; }
.byline .avatar-initials { background: var(--navy-900); font-size: 1.1rem; }
.byline-label { display: block; font-size: .68rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--red-600); }
.byline-name { font-size: 1.05rem; color: var(--ink); line-height: 1.3; }
.byline-name a, .byline-name strong { font-weight: 700; color: var(--ink); }
.byline-meta { margin-top: .2rem; gap: .2rem 1.1rem; font-size: var(--fs-sm); }
.byline-meta span + span::before { content: none; }
.byline-meta i { color: var(--red-500); margin-right: .35rem; }
.share-inline { gap: .45rem; }
.share-dot {
    width: 38px; height: 38px; border-radius: 50%; display: inline-grid; place-items: center;
    border: 0; color: #fff; font-size: .9rem; transition: transform .2s var(--ease), filter .2s var(--ease);
}
.share-dot:hover { color: #fff; transform: translateY(-2px); filter: brightness(1.1); }
.share-copy { background: var(--navy-700); }
.share-copy.is-copied { background: #1f9d55; }
.news-figure img { border-radius: 10px; aspect-ratio: 16 / 9; max-height: 480px; }
.news-columns { display: block; }
.news-body .compact-aside .widget { border-radius: 14px; }
@media (max-width: 575.98px) {
    .news-card { border-radius: 0; border-inline: 0; margin-inline: calc(-1 * var(--bs-gutter-x) * .5); }
    .share-dot { width: 34px; height: 34px; }
}

/* article footer alignment */
.author-box { align-items: center; }
.author-box > div { min-width: 0; }
.author-box .d-flex { margin-top: .4rem !important; }
.share-end { align-items: center; }
.share-end > strong { white-space: nowrap; }
.post-nav { align-items: stretch; }
.post-nav a { display: flex; flex-direction: column; justify-content: center; }
.post-nav a:only-child { grid-column: 1 / -1; text-align: left; flex-direction: row; align-items: center; justify-content: space-between; gap: var(--s-4); }
.post-nav a.next:only-child span { order: 2; margin: 0; white-space: nowrap; }
@media (max-width: 575.98px) {
    .post-nav { grid-template-columns: 1fr; }
    .post-nav .next { grid-column: auto; }
    .share-end { flex-direction: column; align-items: flex-start; }
}

/* article: no double gap between the article area and "More from the blog" */
.news-body { padding-bottom: var(--section-y); }
.related-strip { padding-top: var(--s-4); border-top: 1px solid var(--line); }
.related-strip .suggest-head { margin-bottom: var(--s-3); }


/* ---------- Spacing: one gap, not two, between back-to-back white sections ---------- */
section.section:not(.bg-surface):not(.bg-navy):not(.contact-section):not(.stats):not(.news-body)
  + section.section:not(.bg-surface):not(.bg-navy):not(.contact-section):not(.stats):not(.news-body) { padding-top: 0; }
.team-card .photo img { object-position: center 15%; }
.team-card .body { padding: var(--s-3) var(--s-3) var(--s-4); }
.team-card .social { margin-top: var(--s-2); }

/* ---------- Home About: match the previous site's alignment ---------- */
.about-inner { max-width: none; padding: clamp(1.75rem, 1.25rem + 2vw, 3rem) clamp(1.25rem, 1rem + 2.5vw, 3.5rem); }
.about-split h2 { font-size: clamp(1.15rem, .5rem + 1vw, 1.6rem); line-height: 1.3; margin-bottom: var(--s-4); }
.about-split h2 i { margin-right: .5rem; }
.about-dark h2 i { color: #fff; }
.about-split p { font-size: var(--fs-base); line-height: 1.8; text-align: justify; -webkit-hyphens: auto; hyphens: auto; }
.about-split p + p { margin-top: var(--s-3); }

@media (max-width: 575.98px) { .about-split p { text-align: left; -webkit-hyphens: manual; hyphens: manual; } }


/* ---------- Profile header: light card ---------- */
.profile-head { background: var(--surface); padding: var(--s-4) 0 var(--s-5); border-bottom: 1px solid var(--line); }
.news-crumbs .cur { color: var(--ink); font-weight: 500; }
.profile-card {
    display: grid; grid-template-columns: 1fr; gap: var(--s-5);
    background: var(--white); border: 1px solid var(--line); border-radius: 14px;
    padding: clamp(1rem, .75rem + 1.5vw, 2rem); box-shadow: var(--shadow-sm);
}
@media (min-width: 768px) { .profile-card { grid-template-columns: 260px 1fr; align-items: center; } }
.profile-card-photo { border-radius: 10px; overflow: hidden; aspect-ratio: 4 / 5; background: var(--surface); max-width: 300px; }
.profile-card-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 18%; }
.profile-role { display: inline-block; font-size: var(--fs-xs); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--red-600); margin-bottom: .35rem; }
.profile-card h1 { font-size: clamp(1.6rem, 1.3rem + 1.2vw, 2.3rem); line-height: 1.15; margin: 0 0 .35rem; color: var(--ink); }
.profile-sub { color: var(--muted); font-size: var(--fs-sm); margin: 0 0 var(--s-3); }
.profile-chips { margin-bottom: var(--s-4); }
.profile-contact { display: grid; grid-template-columns: 1fr; gap: .55rem var(--s-5); margin: 0 0 var(--s-4); padding: var(--s-3) 0; border-block: 1px solid var(--line); }
@media (min-width: 992px) { .profile-contact { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.profile-contact > div { display: flex; flex-direction: column; min-width: 0; }
.profile-contact dt { font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.profile-contact dt i { color: var(--red-500); margin-right: .4rem; }
.profile-contact dd { margin: 0; font-size: var(--fs-sm); overflow-wrap: anywhere; }
.profile-contact dd a { color: var(--ink); font-weight: 500; }
.profile-contact dd a:hover { color: var(--red-600); }
.profile-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.icon-btn-lg { width: 46px; height: 46px; font-size: 1rem; }

/* profile: compact */
.profile-head { padding: var(--s-3) 0 var(--s-4); }
.profile-head .news-crumbs { margin-bottom: var(--s-2); }
.profile-card { gap: var(--s-4); padding: clamp(.9rem, .75rem + 1vw, 1.5rem); }
@media (min-width: 768px) { .profile-card { grid-template-columns: 210px 1fr; align-items: start; } }
.profile-card-photo { max-width: 210px; }
.profile-role { margin-bottom: .15rem; }
.profile-card h1 { margin-bottom: .2rem; }
.profile-sub { margin-bottom: var(--s-2); }
.profile-chips { margin-bottom: var(--s-3); gap: .3rem; }
.profile-chips li { padding: .2rem .55rem; }
.profile-contact { gap: .4rem var(--s-4); margin-bottom: var(--s-3); padding: var(--s-2) 0; }
@media (min-width: 992px) { .profile-contact { grid-template-columns: repeat(3, minmax(0, auto)); justify-content: start; } }
.profile-actions .btn { --bs-btn-padding-y: .6rem; --bs-btn-padding-x: 1.1rem; }
.icon-btn-lg { width: 40px; height: 40px; }
.profile-body { padding-top: var(--s-4); }
.profile-tabs .nav-link { padding: .7rem .9rem; }
.profile-body .tab-content .prose { font-size: var(--fs-base); line-height: 1.75; }
@media (max-width: 767.98px) {
    .profile-card-photo { max-width: 160px; }
}

/* profile list tabs as a card grid */
.prose .fact-grid { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr; gap: .6rem; }
@media (min-width: 768px) { .prose .fact-grid { grid-template-columns: 1fr 1fr; } }
.prose .fact-grid li { display: flex; gap: .7rem; align-items: flex-start; margin: 0; padding: .7rem .9rem; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-sm); font-size: var(--fs-sm); line-height: 1.5; color: var(--ink); }
.prose .fact-grid li::marker { content: none; }
.prose .fact-grid li i { color: var(--red-500); margin-top: .2rem; width: 16px; text-align: center; flex-shrink: 0; }
.profile-body .team-pager { margin-top: var(--s-4); }

/* ---------- Smooth page-to-page navigation (cross-document View Transitions) ----------
   Supported browsers cross-fade between pages and keep the header in place;
   others simply ignore this and load normally. */
@media (prefers-reduced-motion: no-preference) {
    @view-transition { navigation: auto; }
    .topbar { view-transition-name: topbar; }
    .site-nav { view-transition-name: site-nav; }
    ::view-transition-old(root) { animation: vt-out .18s ease both; }
    ::view-transition-new(root) { animation: vt-in .28s cubic-bezier(.2, .8, .2, 1) both; }
    @keyframes vt-out { to { opacity: 0; } }
    @keyframes vt-in { from { opacity: 0; transform: translateY(8px); } }
}

/* ---------- Profile: team photo column (as on the previous site) ---------- */
.profile-page { padding: var(--s-3) 0 var(--section-y); background: var(--surface); }
.profile-page .news-crumbs { margin-bottom: var(--s-3); }
.profile-visual { position: sticky; top: calc(var(--nav-h) + 16px); border-radius: 14px; overflow: hidden; height: calc(100vh - var(--nav-h) - 32px); max-height: 820px; min-height: 520px; isolation: isolate; }
.profile-visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 30%; z-index: -2; }
.profile-visual::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(7, 20, 34, .92) 0%, rgba(7, 20, 34, .55) 28%, rgba(7, 20, 34, 0) 55%); }
.profile-visual-cta { position: absolute; left: 0; right: 0; bottom: 0; padding: var(--s-5); color: rgba(255, 255, 255, .8); font-size: var(--fs-sm); }
.profile-visual-cta strong { display: block; color: #fff; font-size: 1.1rem; margin-bottom: .3rem; }
.profile-visual-cta span { display: block; margin-bottom: var(--s-3); line-height: 1.5; }
.profile-page .profile-card { box-shadow: none; }
@media (min-width: 768px) { .profile-page .profile-card { grid-template-columns: 170px 1fr; } }
.profile-page .profile-card-photo { max-width: 170px; }
.profile-tabs-wrap { background: var(--white); border: 1px solid var(--line); border-radius: 14px; padding: 0 clamp(1rem, .75rem + 1vw, 1.75rem) clamp(1rem, .75rem + 1vw, 1.5rem); margin-top: var(--s-3); }
.profile-tabs-wrap .profile-tabs { margin-bottom: var(--s-4) !important; }
.profile-tabs-wrap .prose { max-width: none; }
.profile-tabs-wrap .team-pager { margin-top: var(--s-4); }
/* publications already carry their own numbers: no extra bullet */
#publications .prose ul, #publications .prose ol { list-style: none; padding-left: 0; }
#publications .prose li { padding-left: 0; }
@media (max-width: 991.98px) { .profile-page { padding-top: var(--s-2); } }
.profile-visual { height: calc(100vh - var(--nav-h) - 96px); }
.profile-tabs-wrap .profile-tabs .nav-link { padding: .75rem .7rem; }

/* profile card: simple, like the previous site */
.profile-page .profile-card { align-items: center; }
.profile-card h1 { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; margin-bottom: .35rem; }
.profile-li { color: #0a66c2; font-size: .75em; line-height: 1; }
.profile-li:hover { color: var(--navy-900); }
.profile-card .profile-role { display: block; margin: 0 0 .15rem; font-size: 1rem; font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--ink); }
.profile-card .profile-sub { margin-bottom: var(--s-3); }
.profile-lines { list-style: none; padding: 0; margin: 0 0 var(--s-4); display: grid; gap: .4rem; font-size: var(--fs-sm); }
.profile-lines li { display: flex; gap: .6rem; align-items: baseline; }
.profile-lines i { color: var(--red-500); width: 16px; text-align: center; }
.profile-lines a { color: var(--ink); }
.profile-lines a:hover { color: var(--red-600); }

/* blog: in-place pagination */
#blogList { transition: opacity .2s ease; }
#blogList.is-loading { opacity: .45; pointer-events: none; }

/* ---------- Inner-page header band: compact ---------- */
.page-hero { padding-block: clamp(1.25rem, 1rem + 1.2vw, 2rem); }
.page-hero .crumbs { margin-bottom: .4rem; }
.page-hero h1 { font-size: clamp(1.5rem, 1.25rem + 1vw, 2.1rem); line-height: 1.2; }
.page-hero .page-hero-lead { font-size: var(--fs-base); margin-top: .35rem; }
.page-hero::after { width: 260px; height: 260px; right: -90px; top: -110px; }

/* ---------- Header band: title left, actions right ---------- */
.page-hero-row { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--s-4) var(--s-6); }
.page-hero-main { min-width: 0; flex: 1 1 420px; }
.page-hero-aside { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; flex: 0 1 auto; }
.hero-phone { display: inline-flex; align-items: center; gap: .7rem; color: #fff; padding: .45rem 1rem .45rem .45rem; border: 1px solid rgba(255, 255, 255, .18); border-radius: 999px; background: rgba(255, 255, 255, .04); transition: background-color .2s var(--ease), border-color .2s var(--ease); }
.hero-phone:hover { color: #fff; background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .35); }
.hero-phone i { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--red-btn); font-size: .85rem; }
.hero-phone span { display: flex; flex-direction: column; line-height: 1.2; font-weight: 600; font-size: var(--fs-sm); }
.hero-phone small { font-size: .68rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: rgba(255, 255, 255, .6); }
.hero-search { position: relative; width: min(380px, 100%); }
.hero-search input { width: 100%; height: 48px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .2); background: rgba(255, 255, 255, .08); color: #fff; padding: 0 3.4rem 0 1.25rem; font-size: var(--fs-sm); }
.hero-search input::placeholder { color: rgba(255, 255, 255, .6); }
.hero-search input:focus { outline: none; border-color: rgba(255, 255, 255, .5); background: rgba(255, 255, 255, .12); }
.hero-search button { position: absolute; right: 5px; top: 5px; width: 38px; height: 38px; border-radius: 50%; border: 0; background: var(--red-btn); color: #fff; }
@media (max-width: 767.98px) {
    .page-hero-aside { width: 100%; }
    .hero-search { width: 100%; }
}

/* ---------- Inner-page header: light, like the profile page (no dark band) ---------- */
.page-hero, .page-hero.has-image { background: var(--surface); color: var(--body); padding-block: var(--s-3) var(--s-4); border-bottom: 1px solid var(--line); }
.page-hero::before, .page-hero::after, .page-hero .page-hero-bg { display: none; }
.page-hero .crumbs { font-size: var(--fs-sm); color: var(--muted); gap: .5rem; margin-bottom: var(--s-2); }
.page-hero .crumbs a { color: var(--muted); }
.page-hero .crumbs a:hover { color: var(--red-600); }
.page-hero .crumbs li + li::before { content: '›'; opacity: 1; color: var(--muted); }
.page-hero .crumbs [aria-current] { color: var(--ink); font-weight: 500; }
.page-hero h1 { color: var(--ink); font-size: clamp(1.45rem, 1.2rem + .9vw, 1.95rem); }
.page-hero .page-hero-lead { color: var(--muted); }
.page-hero-row { align-items: center; }
.page-hero .hero-phone { color: var(--ink); background: var(--white); border-color: var(--line); }
.page-hero .hero-phone:hover { color: var(--ink); background: var(--white); border-color: var(--navy-900); }
.page-hero .hero-phone small { color: var(--muted); }
.page-hero .hero-search input { background: var(--white); border-color: var(--line); color: var(--ink); }
.page-hero .hero-search input::placeholder { color: var(--muted); }
.page-hero .hero-search input:focus { border-color: var(--navy-700); background: var(--white); }
/* content right under a light header: no extra top gap */
.page-hero + .section, .page-hero + .section-sm { padding-top: var(--s-4); }

/* ---------- One consistent start for every inner page ----------
   light grey strip under the nav -> breadcrumb at the same spot -> content */
.page-hero, .news-body, .profile-page, .page-hero.has-image { padding-top: var(--s-3); }
.page-hero .crumbs, .news-body .news-crumbs, .profile-page .news-crumbs { font-size: var(--fs-sm); margin: 0 0 var(--s-3); line-height: 1.5; }
.news-body .news-crumbs .cur, .profile-page .news-crumbs .cur { color: var(--ink); font-weight: 500; }
.page-hero .crumbs [aria-current] { font-weight: 500; }
.news-head .news-crumbs { display: none; }
@media (max-width: 575.98px) { .page-hero-aside .hero-phone { display: none; } .page-hero-aside .btn { width: 100%; } }

/* search fields: no native clear "x" (it pushed the text away from the button) */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; appearance: none; display: none; }
input[type="search"] { -webkit-appearance: none; appearance: none; }
.hero-search input { height: 46px; padding: 0 3.25rem 0 1.15rem; box-sizing: border-box; }
.hero-search button { top: 4px; right: 4px; width: 38px; height: 38px; display: grid; place-items: center; padding: 0; }
/* search highlight: no padding, so it doesn't add gaps between words */
.blog-card mark, .blog-featured mark { padding: 0; border-radius: 2px; background: #fde2e2; }

/* search results: full-width rows, so 1 or 2 results never leave an empty half */
.search-results { display: grid; gap: var(--s-3); }
.search-row { position: relative; display: grid; grid-template-columns: 1fr; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; transition: box-shadow .25s var(--ease), transform .25s var(--ease); }
.search-row:hover { box-shadow: var(--shadow); transform: translateY(-2px); }
.search-row .thumb { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--surface); }
.search-row .thumb img { width: 100%; height: 100%; object-fit: cover; }
.search-row .body { padding: var(--s-3) var(--s-4) var(--s-4); display: flex; flex-direction: column; justify-content: center; }
.search-row h2 { font-size: 1.1rem; line-height: 1.4; margin: 0 0 .35rem; }
.search-row h2 a { color: var(--ink); }
.search-row h2 a::after { content: ''; position: absolute; inset: 0; }
.search-row h2 a:hover { color: var(--red-600); }
.search-row p { font-size: var(--fs-sm); color: var(--muted); margin: 0 0 .5rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.search-row .post-meta { margin-bottom: .35rem; font-size: var(--fs-xs); }
.search-row .link-arrow { font-size: var(--fs-xs); }
.search-row mark { padding: 0; border-radius: 2px; background: #fde2e2; }
@media (min-width: 768px) {
    .search-row { grid-template-columns: 220px 1fr; }
    .search-row .thumb { aspect-ratio: auto; height: 100%; min-height: 140px; }
}
/* search rows: the image fills the row instead of setting its height */
@media (min-width: 768px) {
    .search-row .thumb { position: relative; height: auto; min-height: 150px; }
    .search-row .thumb img { position: absolute; inset: 0; }
}

/* ---------- Article: Related Articles slider ---------- */
.related-articles { margin-top: var(--s-5); }
.related-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: var(--s-3); }
.related-head h2 { font-size: 1.35rem; margin: 0; }
.carousel-arrows button:disabled { opacity: .35; cursor: default; background: var(--white); color: var(--navy-900); border-color: var(--line); }
.related-track {
    display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 2rem) / 3); gap: 1rem;
    overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 2px;
}
.related-track::-webkit-scrollbar { display: none; }
.related-item { scroll-snap-align: start; }
.related-item h2 { font-size: .98rem; }
@media (max-width: 991.98px) { .related-track { grid-auto-columns: calc((100% - 1rem) / 2); } }
@media (max-width: 575.98px) { .related-track { grid-auto-columns: 82%; } }
/* services: team photo column like production */
.services-visual { max-height: 760px; }

/* nav: keep "Practice Areas" white while its menu is open (Bootstrap's default turns it dark) */
.site-nav .nav-link.show,
.site-nav .nav-link:focus,
.site-nav .nav-link:active,
.site-nav .dropdown-toggle[aria-expanded="true"] { color: #fff; }
.site-nav .nav-link.dropdown-toggle.show::after { transform: rotate(180deg); }
.site-nav .dropdown-toggle::after { transition: transform .2s var(--ease); vertical-align: .15em; }

/* ---------- Services: Amilex Corporate Offer (in the right column, like production) ---------- */
.corporate-offer { margin-top: var(--s-5); background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: clamp(1.25rem, 1rem + 1.5vw, 2.25rem); }
.corporate-offer h2 { font-size: clamp(1.4rem, 1.2rem + .8vw, 1.9rem); margin-bottom: var(--s-4); }
.offer-list { counter-reset: offer; list-style: none; padding: 0; margin: 0 0 var(--s-4); }
.offer-list li { position: relative; padding-left: 3rem; margin-bottom: var(--s-4); font-size: var(--fs-sm); line-height: 1.7; color: var(--ink); break-inside: avoid; }
.offer-list li::before {
    counter-increment: offer; content: counter(offer);
    position: absolute; left: 0; top: .1rem; width: 32px; height: 32px; border-radius: 50%;
    background: var(--red-btn); color: #fff; font-weight: 700; font-size: .85rem; display: grid; place-items: center;
    box-shadow: 0 6px 14px -6px rgba(211, 47, 47, .7);
}
@media (min-width: 768px) { .offer-list { columns: 2; column-gap: var(--s-6); } }
.corporate-offer .callout { background: var(--white); margin: 0 0 var(--s-4); }
.corporate-offer > p { font-size: var(--fs-sm); color: var(--body); }

/* ---------- Back to top with scroll-progress ring ---------- */
.float-top { position: relative; width: 56px; height: 56px; background: var(--navy-900); font-size: 1rem; }
.float-top i { position: relative; z-index: 1; }
.top-ring { position: absolute; inset: -4px; width: calc(100% + 8px); height: calc(100% + 8px); transform: rotate(-90deg); pointer-events: none; }
.top-ring circle { fill: none; stroke-width: 3; }
.top-ring .ring-bg { stroke: rgba(10, 28, 46, .15); }
.top-ring .ring-fill { stroke: var(--red-500); stroke-linecap: round; stroke-dasharray: 157.08; stroke-dashoffset: 157.08; transition: stroke-dashoffset .1s linear; }


/* ---------- Responsive tiers (same as Imvaho / La Nouvelle):
   phone < 576 · tablet 576–991 · laptop 992–1399 · wide >= 1400 ---------- */

/* Page gutter: 16px on phones, growing to 24px; rows never wider than the container */
.container-site { padding-inline: clamp(16px, 3vw, 24px); }
.row.g-5 { --bs-gutter-x: 2rem; }
@media (max-width: 991.98px) { .row.g-5, .row.g-4 { --bs-gutter-x: 1.5rem; } }

/* Menu button: clean, no box */
.navbar-toggler {
    border: 0; border-radius: 999px; padding: .55rem .9rem .55rem .8rem;
    background: rgba(255, 255, 255, .08); display: inline-flex; align-items: center; gap: .6rem;
    transition: background-color .2s var(--ease);
}
.navbar-toggler:hover, .navbar-toggler[aria-expanded="true"] { background: rgba(255, 255, 255, .16); }
.navbar-toggler:focus-visible { outline: 3px solid var(--red-500); outline-offset: 2px; }
.navbar-toggler-bars, .navbar-toggler-bars::before, .navbar-toggler-bars::after { width: 18px; height: 2px; border-radius: 2px; }
.navbar-toggler-bars::before { top: -6px; }
.navbar-toggler-bars::after { top: 6px; }
.toggler-label { color: #fff; font-size: .8rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }

/* Laptop 1200–1399: a little tighter so the full menu fits on one line */
@media (min-width: 1200px) and (max-width: 1399.98px) {
    .site-nav .nav-link { padding-inline: .7rem !important; }
    .site-nav .nav-item.ms-xl-3 { margin-left: .5rem !important; }
}

/* Long buttons may wrap on very small phones */
@media (max-width: 399.98px) {
    .btn { white-space: normal; text-align: center; }
    .hero h1, .hero-slider .hero .h1 { font-size: 1.75rem; }
}
/* Tablet: profile/practice/services photo column is hidden below 992; keep cards full width */
@media (max-width: 575.98px) {
    .page-hero h1 { font-size: 1.4rem; }
    .news-card, .profile-card, .corporate-offer, .profile-tabs-wrap { border-radius: 10px; }
}
/* slide-in animations start off-canvas: never let them create a sideways scroll
   (clip, unlike hidden, keeps position: sticky working) */
html, body { overflow-x: clip; }
@media (max-width: 991.98px) {
    .js [data-reveal="left"], .js [data-reveal="right"] { transform: translate3d(0, 24px, 0); }
}
/* tablet: slider arrows would sit on top of the caption; swipe + dots instead */
@media (max-width: 991.98px) {
    .hero-slider .carousel-control-prev, .hero-slider .carousel-control-next { display: none; }
}
/* sub-headings on practice pages (h2 for correct outline, same look as before) */
.practice-subtitle, .related-practices .h-sub { font-size: 1.2rem; font-weight: 700; font-family: var(--font-sans); letter-spacing: 0; }
.related-practices .h-sub { font-size: 1.15rem; margin-bottom: var(--s-4); }
/* dots: same look, 24px tap target */
.carousel-dots button, .hero-slider .carousel-indicators [data-bs-target] {
    box-sizing: content-box; border: 8px solid transparent !important; background-clip: padding-box; margin: 0 -2px;
}
/* slider dots: Bootstrap sets fixed 3px-high indicators; give each a full 24px tap area */
.hero-slider .carousel-indicators [data-bs-target] { width: 10px; height: 10px; padding: 0; margin: 0 2px; text-indent: 0; }
.hero-slider .carousel-indicators .active { width: 30px; }
.hero-slider .carousel-indicators { gap: 2px; }
