/*
Theme Name: Law Offices of Rajiv Syed
Theme URI: https://rajivsyedlaw.com
Author: Law Offices of Rajiv Syed, PLLC
Description: Attorney site theme for the Law Offices of Rajiv Syed, PLLC — Fresh Meadows, NY. Single stylesheet, no inline styles.
Version: 1.4.2
Requires PHP: 7.4
Text Domain: rajiv-syed-law
*/

/* ===================== Tokens ===================== */
:root{
  --ink-900:#141414;
  --ink-800:#0e0e0e;
  --ink-700:#1d1d1d;
  --ink-600:#333333;
  --ink-500:#4a4a4a;
  --ink-400:#666666;
  --ink-300:#8f8f8f;
  --ink-200:#9a9a9a;
  --ink-100:#c6c6c6;

  --red-600:#d21f2b;
  --red-700:#b5121f;
  --red-800:#a31621;
  --red-light:#ef6a6a;
  --gold:#e8a33d;

  --border:#dcdcdc;
  --border-2:#ebebeb;
  --border-dark:#2e2e2e;
  --border-dark-2:#3a3a3a;

  --cream:#f5f4f2;
  --panel:#ebebeb;
  --white:#ffffff;

  /* Named fallbacks, not bare serif/sans-serif: the webfont CSS loads
     asynchronously and display=swap paints fallback text first, so what
     these resolve to is briefly visible on every cold load. */
  --font-serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --font-sans:'Libre Franklin',-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;

  --container:1240px;
  --legal-container:820px;
}

/* ===================== Reset / base ===================== */
*,*::before,*::after{box-sizing:border-box;min-width:0}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font-sans);color:var(--ink-900);background:var(--cream);-webkit-font-smoothing:antialiased}
a{color:var(--ink-900);text-decoration-color:var(--red-600);text-underline-offset:3px}
a:hover{color:var(--red-800)}
img,svg,video{max-width:100%;height:auto;display:block}
h1,h2,h3{font-family:var(--font-serif);font-weight:600;margin:0}
p{margin:0}
ul{margin:0;padding:0;list-style:none}
button{font-family:inherit;cursor:pointer}
input,textarea,select{font-family:var(--font-sans);box-sizing:border-box;width:100%;min-width:0;font-size:max(1em,16px)}
:focus-visible{outline:3px solid var(--red-600);outline-offset:2px}
::selection{background:#f5c9cc}
.rsl-visually-hidden{position:absolute;left:-9999px;top:0}
.rsl-skip-link{position:absolute;left:-9999px;top:0;background:var(--ink-800);color:var(--white);padding:12px 20px;z-index:200;font-weight:600;text-decoration:none}
.rsl-skip-link:focus{left:0}

@keyframes rsl-runner{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion: reduce){.rsl-runner{animation:none !important}}

/* ===================== Layout primitives ===================== */
.container{max-width:var(--container);margin:0 auto;padding:0 clamp(20px,4vw,48px)}
.container--legal{max-width:var(--legal-container);margin:0 auto;padding:0 clamp(20px,4vw,48px)}
.section{padding:clamp(52px,8vw,92px) 0}
.section--tight{padding:clamp(48px,7vw,80px) 0}
.eyebrow{margin:0 0 10px;font-size:12px;letter-spacing:0.24em;text-transform:uppercase;color:var(--red-800);font-weight:600}
.eyebrow--light{color:var(--red-light)}

/* ===================== Buttons (bold, offset-shadow "brutalist" style) ===================== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;text-decoration:none;background:var(--red-600);color:var(--white);padding:16px 28px;font-size:14px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;border:none;cursor:pointer;box-shadow:4px 4px 0 var(--ink-800);transition:box-shadow 0.15s ease,transform 0.15s ease}
.btn:hover{background:var(--red-700);color:var(--white);box-shadow:0 0 0 var(--ink-800);transform:translate(4px,4px)}
.btn--sm{padding:14px 24px;font-size:13.5px}
.btn--outline{background:transparent;color:var(--white);border:2px solid var(--white);box-shadow:4px 4px 0 var(--red-600)}
.btn--outline:hover{background:rgba(255,255,255,0.1);color:var(--white);box-shadow:0 0 0 var(--red-600);transform:translate(4px,4px)}
.btn--outline-dark{background:var(--white);color:var(--ink-900);border:2px solid var(--ink-900);box-shadow:4px 4px 0 var(--red-600)}
.btn--outline-dark:hover{box-shadow:0 0 0 var(--red-600);transform:translate(4px,4px)}
.btn--plain{background:transparent;color:var(--ink-900);border:1px solid var(--ink-900);box-shadow:none;text-transform:none;letter-spacing:0.06em;font-weight:600;padding:14px 24px}
.btn--plain:hover{background:var(--panel)}
.btn--block{width:100%;display:flex}

/* ===================== Header / nav ===================== */
.site-header{position:sticky;top:0;z-index:50;background:var(--ink-800);border-bottom:1px solid var(--border-dark)}
.site-header__row{max-width:var(--container);margin:0 auto;padding:10px clamp(20px,4vw,48px);min-height:64px;display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.site-header__logo{text-decoration:none;display:flex;align-items:center}
.site-header__logo img{height:60px;width:auto;display:block}

.site-nav{display:flex;gap:6px;margin-left:40px;margin-right:auto;flex-wrap:wrap;align-items:center}
.site-nav__link{color:#f5f4f2;text-decoration:none;font-size:18px;font-weight:600;letter-spacing:0.04em;padding:12px 16px;border-bottom:2px solid transparent;background:transparent;border-top:none;border-left:none;border-right:none}
.site-nav__link:hover{background:#222222;color:#f5f4f2}
.site-nav__link.is-active{border-bottom-color:var(--red-600)}
.site-nav__item{position:static}
.site-nav__toggle{display:flex;align-items:center;gap:6px;border:none}
.site-nav__caret{width:12px;height:12px}

/* Mega menu — anchored to .site-header (its nearest positioned ancestor via
   position:sticky) with position:absolute, not position:fixed + top:auto:
   a fixed element's "auto" offset is computed once from the page's
   unscrolled layout and doesn't reliably track the header once the page
   has actually been scrolled, leaving the dropdown rendered in the wrong
   place and unclickable. Being part of the header's own positioning
   context means it's always correctly placed at any scroll position. */
.mega-menu{display:none;position:absolute;left:0;right:0;top:100%;background:var(--ink-900);border-bottom:2px solid var(--red-600);box-shadow:0 18px 44px rgba(0,0,0,0.5);max-height:76vh;overflow:auto;z-index:60}
.site-nav__item.is-open .mega-menu{display:block}
.mega-menu__grid{max-width:var(--container);margin:0 auto;padding:clamp(28px,4vw,44px) clamp(20px,4vw,48px);display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:clamp(28px,4vw,56px)}
.mega-menu__intro{display:flex;flex-direction:column;gap:14px;border-right:1px solid var(--border-dark);padding-right:clamp(20px,3vw,44px)}
.mega-menu__intro-kicker{margin:0;font-size:11px;letter-spacing:0.24em;text-transform:uppercase;color:var(--red-light);font-weight:700}
.mega-menu__intro-title{margin:0;font-family:var(--font-serif);font-weight:600;font-size:clamp(22px,2.2vw,30px);line-height:1.15;color:#fff}
.mega-menu__intro-sub{margin:0;font-size:13.5px;line-height:1.65;color:var(--ink-200)}
.mega-menu__intro-cta{margin-top:4px;align-self:flex-start;text-decoration:none;color:#fff;border:2px solid #555555;padding:11px 18px;font-size:12px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase}
.mega-menu__intro-cta:hover{border-color:var(--red-600);background:var(--ink-700);color:#fff}
.mega-menu__cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:clamp(24px,3vw,40px)}
.mega-menu__col{display:flex;flex-direction:column;gap:8px}
.mega-menu__col-title{display:flex;align-items:baseline;gap:10px;color:#fff;text-decoration:none;padding-bottom:10px;margin-bottom:4px;border-bottom:1px solid var(--border-dark-2)}
.mega-menu__col-title:hover{border-color:var(--red-600);color:#fff}
.mega-menu__col-num{font-family:var(--font-serif);font-weight:600;font-size:15px;color:var(--red-600)}
.mega-menu__col-label{font-size:14px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase}
.mega-menu__list{display:flex;flex-direction:column;gap:4px}
.mega-menu__list a{color:var(--ink-100);text-decoration:none;font-size:14.5px;letter-spacing:0.02em;padding:4px 0;border-left:2px solid transparent}
.mega-menu__list a:hover{color:#fff;border-left-color:var(--red-600);padding-left:10px}
.mega-menu__foot{border-top:1px solid var(--border-dark);background:var(--ink-800)}
.mega-menu__foot-row{max-width:var(--container);margin:0 auto;padding:14px clamp(20px,4vw,48px);display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}
.mega-menu__foot-text{margin:0;font-size:12.5px;letter-spacing:0.06em;color:var(--ink-200)}
.mega-menu__foot-text strong{color:#fff;font-weight:600}
.mega-menu__foot-call{text-decoration:none;color:#fff;font-size:13.5px;font-weight:700;letter-spacing:0.06em;display:flex;align-items:center;gap:8px}
.mega-menu__foot-call:hover{color:var(--red-light)}

.header-call{text-decoration:none;background:var(--red-600);color:var(--white);padding:11px 22px;white-space:nowrap;display:flex;align-items:center;gap:12px;box-shadow:3px 3px 0 rgba(255,255,255,0.25)}
.header-call:hover{background:var(--red-700);color:var(--white);box-shadow:0 0 0 rgba(255,255,255,0.25);transform:translate(3px,3px)}
.header-call__label{display:flex;flex-direction:column;line-height:1.15;text-align:left}
.header-call__tag{font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:#ffd7da;font-weight:600}
.header-call__num{font-size:16px;font-weight:700;letter-spacing:0.03em}

.nav-burger{display:none;margin-left:auto;width:48px;height:48px;background:transparent;border:1px solid var(--border-dark-2);color:var(--white);align-items:center;justify-content:center}
.nav-burger:hover{background:#222222}
.nav-burger svg{display:block}

.mobile-nav{display:none;background:var(--ink-900);border-top:1px solid var(--border-dark);max-height:calc(100vh - 90px);overflow:auto;padding:10px clamp(20px,4vw,48px) 26px;flex-direction:column}
.mobile-nav.is-open{display:flex}
.mobile-nav__link{color:#ffffff;text-decoration:none;font-size:16px;font-weight:600;padding:14px 0;border-bottom:1px solid var(--border-dark)}
.mobile-nav__sub-link{color:var(--ink-100);text-decoration:none;font-size:14.5px;padding:11px 0 11px 16px;border-bottom:1px solid #222222;display:block}
.mobile-nav__cta{margin-top:18px;text-decoration:none;background:var(--red-600);color:#ffffff;padding:15px 20px;font-size:15px;font-weight:600;letter-spacing:0.06em;text-align:center}
.mobile-nav__cta:hover{background:var(--red-700);color:#fff}

@media (max-width:940px){
  .site-nav,.header-call{display:none !important}
  .nav-burger{display:flex !important}
}

/* ===================== Hero carousel ===================== */
.hero{position:relative;background:var(--ink-800);overflow:hidden;min-height:min(78vh,720px);display:flex;flex-direction:column;justify-content:center}
.hero__slide{position:absolute;inset:0;opacity:0;transition:opacity 0.9s ease;pointer-events:none;background-size:cover;background-position:center}
.hero__slide.is-active{opacity:1;pointer-events:auto}
/* Set only while the inline re-randomiser swaps the opening slide, so
   the initial state doesn't animate in as if the visitor triggered it. */
.hero.is-init .hero__slide{transition:none}
.hero__slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* <picture> is a layout box the old markup didn't have. display:contents
   removes it so .hero__slide img / .about-portrait img keep applying exactly
   as before. */
.hero__slide picture,.about-portrait picture{display:contents}
.hero__scrim{position:absolute;inset:0;background:linear-gradient(to right, rgba(8,8,8,0.88) 0%, rgba(8,8,8,0.62) 48%, rgba(8,8,8,0.18) 100%);pointer-events:none}
.hero__inner{position:relative;width:100%;max-width:var(--container);margin:0 auto;padding:clamp(48px,6vw,80px) clamp(20px,4vw,48px) clamp(96px,10vw,130px);display:flex;flex-direction:column;gap:26px;box-sizing:border-box}
.hero__kicker{margin:0;font-size:12px;letter-spacing:0.24em;text-transform:uppercase;color:var(--red-light);font-weight:600}
.hero__title{margin:0;font-weight:600;font-size:clamp(40px,5.4vw,72px);line-height:1.02;letter-spacing:-0.01em;max-width:16ch;color:#ffffff}
.hero__sub{margin:0;font-size:18px;line-height:1.65;max-width:52ch;color:#dcdcdc}
.hero__actions{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.hero__play{font-family:var(--font-sans);background:transparent;border:none;cursor:pointer;color:#ffffff;display:flex;align-items:center;gap:12px;font-size:14px;font-weight:600;letter-spacing:0.04em;padding:8px 4px;text-decoration:none}
.hero__play:hover{color:var(--red-light)}
.hero__play-icon{width:46px;height:46px;border-radius:50%;border:2px solid #ffffff;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0.35)}
.hero__controls{position:absolute;left:0;right:0;bottom:0}
.hero__controls-inner{max-width:var(--container);margin:0 auto;padding:0 clamp(20px,4vw,48px) 26px;display:flex;align-items:center;gap:18px}
.hero__arrows{display:flex;gap:8px}
.hero__arrow{width:44px;height:44px;background:rgba(0,0,0,0.45);border:1px solid #555555;color:#ffffff;display:flex;align-items:center;justify-content:center}
.hero__arrow:hover{background:var(--red-600);border-color:var(--red-600)}
.hero__dots{display:flex;gap:8px}
.hero__dot{width:34px;height:44px;background:transparent;border:none;padding:0;display:flex;align-items:center}
.hero__dot:hover{opacity:0.8}
.hero__dot-bar{display:block;width:100%;height:3px;background:#666666}
.hero__dot.is-active .hero__dot-bar{background:var(--red-600)}
.hero__count{margin:0 0 0 auto;font-size:12px;letter-spacing:0.18em;color:var(--ink-100);font-weight:600}
@media (max-width:760px){
  .hero__actions{flex-direction:column;align-items:stretch}
  .hero__actions a{text-align:center}
  .hero__arrows,.hero__dots{display:none}
}

/* ===================== Welcome section ===================== */
.welcome{background:var(--ink-900);color:var(--cream)}
.welcome__grid{max-width:var(--container);margin:0 auto;padding:clamp(44px,6vw,72px) clamp(20px,4vw,48px);display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(32px,5vw,72px);align-items:center}
.welcome__text{display:flex;flex-direction:column;gap:16px}
.welcome__text h2{font-weight:600;font-size:clamp(26px,3.2vw,40px);line-height:1.1;color:#fff}
.welcome__text p{margin:0;font-size:15.5px;line-height:1.7;color:var(--ink-100);max-width:52ch}
.welcome__link{align-self:flex-start;text-decoration:none;color:#fff;border:1px solid #555555;padding:12px 20px;font-size:13.5px;font-weight:600;letter-spacing:0.06em}
.welcome__link:hover{border-color:var(--red-600);background:var(--ink-700);color:#fff}
.welcome__stats{display:grid;grid-template-columns:1fr 1fr;gap:0}
.welcome__stat{padding:22px 24px;border:1px solid var(--border-dark);margin:-0.5px}
.welcome__stat-num{margin:0;font-family:var(--font-serif);font-weight:700;font-size:clamp(34px,3.5vw,46px);line-height:1;color:var(--red-600)}
.welcome__stat-label{margin:8px 0 0;font-size:11.5px;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-200);font-weight:600;line-height:1.5}
@media (max-width:760px){.welcome__stats{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.welcome__stats{grid-template-columns:1fr}}

/* ===================== Awards strip ===================== */
/* border-TOP, not bottom: this section is now last on the homepage, so the
   divider it needs is the one separating it from the CTA banner above.
   A bottom border would sit against the near-black footer and do nothing. */
.awards-strip{border-top:1px solid var(--border);background:var(--white)}
.awards-strip__inner{max-width:var(--container);margin:0 auto;padding:clamp(36px,5vw,56px) clamp(20px,4vw,48px);display:flex;flex-direction:column;gap:28px}
.awards-strip__head{display:flex;align-items:center;gap:20px}
.awards-strip__head h2{margin:0;font-size:12px;letter-spacing:0.24em;text-transform:uppercase;color:var(--red-800);font-weight:600;white-space:nowrap}
.awards-strip__rule{flex:1;height:1px;background:var(--border)}
.awards-strip__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}
.awards-strip__item{border:1px solid var(--border-2);background:#fafafa;padding:20px 16px;display:flex;align-items:center;justify-content:center;min-height:104px;filter:grayscale(1);opacity:0.75;transition:filter 0.25s ease,opacity 0.25s ease,border-color 0.25s ease}
.awards-strip__item:hover{filter:grayscale(0);opacity:1;border-color:var(--red-600)}
.awards-strip__item img{max-height:64px;max-width:100%;width:auto}
.awards-strip__dots{display:none}

/* Phone/small-tablet only: the 7 affiliation logos become a swipeable
   carousel instead of four rows of grid the visitor has to scroll past.
   Desktop keeps the grid — there is room for all of them at once, and a
   carousel would hide content for no reason.

   Built on CSS scroll-snap rather than a JS slider: native momentum
   scrolling, works before JS loads, and degrades to a plain scroller if
   JS never runs. */
@media (max-width:760px){
  .awards-strip__grid{
    display:flex;
    /* One source of truth for the gap: the card width is derived from it,
       so changing it here keeps exactly-N-per-view intact. */
    --awards-gap:12px;
    gap:var(--awards-gap);
    overflow-x:auto;
    overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    padding-bottom:2px;
  }
  .awards-strip__grid::-webkit-scrollbar{display:none}
  .awards-strip__grid:focus-visible{outline:3px solid var(--red-600);outline-offset:3px}
  /* Exactly two cards per view: two card widths plus one gap fill the
     track precisely. A percentage like 42% leaves a partial third card
     that reads as a rendering fault rather than an affordance — the dots
     below already signal that it scrolls. */
  .awards-strip__item{
    flex:0 0 calc((100% - var(--awards-gap)) / 2);
    /* start, not center: an item narrower than half the viewport can never
       reach the centre at either end of the scroll range, so the first and
       last cards would never register as current and their dot would never
       light. */
    scroll-snap-align:start;
    min-height:96px;
    /* Grayscale-on-hover never fires on touch, so show them as intended. */
    filter:grayscale(1);
    opacity:0.85;
  }
  .awards-strip__dots{
    display:flex;
    justify-content:center;
    gap:8px;
    margin-top:2px;
  }
  .awards-strip__dot{
    width:7px;height:7px;padding:0;border:0;border-radius:50%;
    background:var(--border);cursor:pointer;
    transition:background 0.2s ease,transform 0.2s ease;
  }
  .awards-strip__dot.is-active{background:var(--red-600);transform:scale(1.4)}
  .awards-strip__dot:focus-visible{outline:2px solid var(--red-600);outline-offset:3px}
}
/* 600-760px: two cards would be ~350px each, far bigger than any of these
   logos need. Three fits the space without shrinking them. */
@media (min-width:600px) and (max-width:760px){
  .awards-strip__item{flex:0 0 calc((100% - var(--awards-gap) * 2) / 3)}
}
@media (max-width:760px) and (prefers-reduced-motion:reduce){
  .awards-strip__grid{scroll-behavior:auto}
}
@media (max-width:640px){.awards-strip__head h2{white-space:normal}}

/* ===================== Section heads ===================== */
.section-head{max-width:var(--container);margin:0 auto;padding:0 clamp(20px,4vw,48px);display:flex;flex-wrap:wrap;gap:20px;align-items:flex-end;justify-content:space-between}
.section-head h2{font-weight:600;font-size:clamp(26px,3.4vw,44px);line-height:1.05;white-space:nowrap}
.section-head--dark h2{color:#ffffff}
@media (max-width:760px){.section-head h2{white-space:normal}}

/* ===================== Runner (marquee) ===================== */
.runner-region{padding:40px 0 clamp(52px,8vw,80px);overflow:hidden}
.runner-region--tight{padding:36px 0 clamp(48px,7vw,72px)}
.rsl-runner{display:flex;gap:20px;width:max-content;animation:rsl-runner 45s linear infinite}
.rsl-runner:hover{animation-play-state:paused}
.rsl-runner--reviews{animation-duration:60s}
@media (max-width:640px){.rsl-runner .area-card,.rsl-runner .review-card{width:min(320px,86vw) !important}}

.area-card{display:flex;flex-direction:column;gap:12px;text-decoration:none;width:min(340px,82vw);flex:none;padding:28px;background:var(--white);border:1px solid var(--border)}
.area-card:hover{border-color:var(--red-600);background:#fafafa}
.area-card__num{margin:0;font-size:11px;letter-spacing:0.2em;text-transform:uppercase;color:var(--red-600);font-weight:700}
.area-card__title{margin:0;font-weight:700;font-size:26px;line-height:1.1}
.area-card__blurb{margin:0;font-size:14.5px;line-height:1.6;color:var(--ink-500)}
.area-card__cta{margin:auto 0 0;font-size:13px;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;color:var(--red-800)}
.area-card--grid{width:auto}

.review-card{margin:0;width:min(360px,82vw);flex:none;padding:26px;border:1px solid #333333;background:var(--ink-700);display:flex;flex-direction:column;gap:14px}
.review-card__top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.review-card__stars{margin:0;color:var(--gold);font-size:14px;letter-spacing:0.18em}
.review-card__src{margin:0;font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-300)}
.review-card__quote{margin:0;font-size:14.5px;line-height:1.6;color:#e6e6e6;flex:1}
.review-card__foot{border-top:1px solid #333333;padding-top:12px}
.review-card__name{margin:0;font-weight:600;font-size:13.5px;color:#ffffff}
.review-card__matter{margin:2px 0 0;font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:var(--ink-200)}

/* ===================== Inline video (no popup) ===================== */
.video-section{border-bottom:1px solid var(--border);background:var(--white)}
.video-section__inner{max-width:var(--container);margin:0 auto;padding:clamp(52px,8vw,92px) clamp(20px,4vw,48px);display:flex;flex-direction:column;align-items:center;gap:36px}
.video-section__head{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px}
.video-section__head h2{font-weight:600;font-size:clamp(30px,4.5vw,48px);line-height:1.05;max-width:100%}
.video-section__head p{margin:0;font-size:16px;line-height:1.7;color:var(--ink-500);max-width:56ch}
/* The iframe used to carry a hard-coded height="540" against a 100%-wide
   container. On a ~375px phone that produced a PORTRAIT box holding a
   landscape video, so Wistia letterboxed it — measured on a real device:
   67% of the box was black bars, 373px above and below.
   The container now owns the shape and the iframe fills it.
   --video-aspect is 979/537 (~1.823), taken from an actual frame of the
   video — not a guess. It matches an independent measurement of the
   playing video from a phone screenshot (1.817), and it is neither 16/9
   nor 1.85/1, so don't "correct" it to either. If the video is ever
   re-cut at a different ratio, change this one value and the poster to
   match. */
.video-section__embed{--video-aspect:979/537;width:min(980px,100%);aspect-ratio:var(--video-aspect);border:1px solid var(--border);background:var(--ink-800);overflow:hidden}
.video-section__embed iframe{display:block;width:100%;height:100%;border:0}
.video-section__actions{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}
.video-facade{position:relative;padding:0;line-height:0}
.video-facade__btn{display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:pointer;position:relative;line-height:0}
.video-facade picture{display:contents}
.video-facade__poster{display:block;width:100%;height:100%;object-fit:cover}
.video-facade__btn::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0.05) 0%,rgba(0,0,0,0.45) 100%);transition:background 0.25s ease}
.video-facade__btn:hover::after,.video-facade__btn:focus-visible::after{background:linear-gradient(180deg,rgba(0,0,0,0.15) 0%,rgba(0,0,0,0.55) 100%)}
.video-facade__icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;display:flex;align-items:center;justify-content:center;width:84px;height:84px;background:var(--red-600);color:var(--white);box-shadow:6px 6px 0 var(--ink-800);transition:transform 0.18s ease,box-shadow 0.18s ease;padding-left:5px}
.video-facade__btn:hover .video-facade__icon{transform:translate(-50%,-50%) translate(-2px,-2px);box-shadow:9px 9px 0 var(--ink-800)}
.video-facade__btn:focus-visible{outline:3px solid var(--red-600);outline-offset:3px}
.video-facade__label{position:absolute;left:0;right:0;bottom:22px;z-index:2;color:var(--white);font-family:var(--font-sans);font-size:13px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;line-height:1.4;text-align:center}
.video-facade.is-loaded{line-height:normal}
@media (prefers-reduced-motion:reduce){.video-facade__icon,.video-facade__btn::after{transition:none}}
@media (max-width:640px){.video-facade__icon{width:64px;height:64px}.video-facade__label{font-size:11px;bottom:14px}}
@media (max-width:640px){.video-section__embed{border:none}}

/* ===================== Banner CTA ===================== */
.banner-cta{max-width:var(--container);margin:0 auto;padding:clamp(52px,8vw,92px) clamp(20px,4vw,48px);display:flex;flex-wrap:wrap;gap:32px;align-items:center;justify-content:space-between}
.banner-cta h2{font-weight:600;font-size:clamp(30px,4.5vw,48px);line-height:1.05;max-width:20ch}
.banner-cta p{margin:0;font-size:16px;color:var(--ink-500);max-width:52ch}
.banner-cta__actions{display:flex;gap:14px;flex-wrap:wrap}

.dark-cta{background:var(--ink-800);color:#ffffff;padding:clamp(32px,5vw,52px);display:flex;flex-wrap:wrap;gap:28px;align-items:center;justify-content:space-between}
.dark-cta h2{margin:0 0 8px;font-weight:600;font-size:clamp(26px,3.5vw,38px);line-height:1.08;color:#ffffff;max-width:26ch}
.dark-cta p{margin:0;font-size:14.5px;color:var(--ink-100)}
.dark-cta__actions{display:flex;gap:14px;flex-wrap:wrap}

/* ===================== Generic page hero ===================== */
.page-hero{max-width:var(--container);margin:0 auto;padding:clamp(52px,8vw,88px) clamp(20px,4vw,48px) 0}
.page-hero h1{margin:0 0 18px;font-weight:600;font-size:clamp(36px,5.5vw,64px);line-height:1.02}
.page-hero p{margin:0 0 52px;font-size:17px;line-height:1.65;max-width:62ch;color:var(--ink-500)}
.page-hero--tight p{margin-bottom:0}

.breadcrumb{margin-bottom:22px}
.breadcrumb a{font-size:12.5px;letter-spacing:0.1em;text-transform:uppercase;font-weight:600;color:var(--red-800);text-decoration:none}
.breadcrumb a:hover{color:var(--red-600)}

/* ===================== Practice areas hub / grid ===================== */
.page-body{max-width:var(--container);margin:0 auto;padding:0 clamp(20px,4vw,48px) clamp(52px,8vw,92px)}
.areas-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:20px;margin-bottom:0}

/* ===================== Single practice area ===================== */
.practice-single{max-width:var(--container);margin:0 auto;padding:clamp(52px,8vw,88px) clamp(20px,4vw,48px)}
.practice-single__num{margin:0 0 10px}
.practice-single__intro{margin:0 0 36px;font-size:17px;line-height:1.7;max-width:64ch;color:var(--ink-600)}

.practice-cta-band{margin-bottom:52px;background:var(--red-600);color:#fff;padding:clamp(20px,3vw,28px) clamp(20px,3vw,32px);display:flex;flex-wrap:wrap;gap:18px;align-items:center;justify-content:space-between;box-shadow:6px 6px 0 var(--ink-800)}
.practice-cta-band__text{display:flex;flex-direction:column;gap:4px}
.practice-cta-band__text p:first-child{margin:0;font-family:var(--font-serif);font-weight:700;font-size:clamp(20px,2.4vw,26px);line-height:1.15}
.practice-cta-band__text p:last-child{margin:0;font-size:13px;letter-spacing:0.06em;color:#ffd7da}
.practice-cta-band__actions{display:flex;gap:12px;flex-wrap:wrap}
.practice-cta-band__actions a{text-decoration:none;padding:14px 24px;font-size:13.5px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;transition:background 0.15s ease}
.practice-cta-band__call{background:var(--ink-800);color:#fff}
.practice-cta-band__call:hover{background:#2a2a2a;color:#fff}
.practice-cta-band__book{background:#fff;color:var(--red-600)}
.practice-cta-band__book:hover{background:#ffe3e5;color:var(--red-600)}
@media (max-width:760px){
  .practice-cta-band{flex-direction:column;align-items:flex-start}
}

.svc-list{border-top:2px solid var(--ink-900);margin-bottom:56px}
.svc-row{display:grid;grid-template-columns:minmax(64px,90px) minmax(220px,1fr) 2fr;gap:clamp(16px,3vw,44px);padding:clamp(28px,4vw,44px) clamp(12px,1.5vw,20px);border-bottom:1px solid var(--border);transition:transform 0.25s ease,box-shadow 0.25s ease,background 0.25s ease}
.svc-row:hover{transform:translateX(8px);box-shadow:inset 4px 0 0 var(--red-600);background:linear-gradient(to right, rgba(210,31,43,0.06), transparent 60%)}
.svc-row__num{margin:0;font-family:var(--font-serif);font-weight:600;font-size:clamp(34px,4vw,54px);line-height:0.9;color:#d9d0cd;transition:color 0.25s ease}
.svc-row:hover .svc-row__num{color:var(--red-600)}
.svc-row h2{margin:0;font-weight:700;font-size:clamp(24px,2.6vw,32px);line-height:1.1;max-width:14ch}
.svc-row__body{display:flex;flex-direction:column;gap:16px;min-width:0}
.svc-row__body p{margin:0;font-size:15px;line-height:1.7;color:var(--ink-500);max-width:66ch}
.svc-row__chips{margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.svc-row__chips li{font-size:12.5px;line-height:1.4;color:var(--ink-900);font-weight:600;letter-spacing:0.03em;border:1px solid var(--border);background:var(--white);padding:7px 12px}
@media (max-width:760px){
  .svc-row{grid-template-columns:1fr;gap:10px}
  .svc-row__num{font-size:28px}
  .svc-row h2{max-width:none}
}

/* ===================== Reviews page ===================== */
.reviews-hero{background:var(--ink-800);color:var(--cream)}
.reviews-hero__grid{max-width:var(--container);margin:0 auto;padding:clamp(52px,8vw,88px) clamp(20px,4vw,48px);display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(32px,5vw,72px);align-items:center}
.reviews-hero__text{display:flex;flex-direction:column;gap:18px}
.reviews-hero__text h1{font-weight:600;font-size:clamp(28px,3.6vw,52px);line-height:1.02;color:#fff}
.reviews-hero__text p{margin:0;font-size:16px;line-height:1.7;color:var(--ink-100);max-width:50ch}
.reviews-hero__card{display:flex;flex-direction:column;border:1px solid var(--border-dark);background:var(--ink-900);max-width:380px;justify-self:end;width:100%}
.reviews-hero__card-top{padding:28px 30px;display:flex;align-items:center;gap:20px;border-bottom:1px solid var(--border-dark)}
.reviews-hero__num{margin:0;font-family:var(--font-serif);font-weight:700;font-size:72px;line-height:0.9;color:#fff}
.reviews-hero__stars{margin:0;color:var(--gold);font-size:18px;letter-spacing:0.16em}
.reviews-hero__stars-label{margin:6px 0 0;font-size:11.5px;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-200);font-weight:600}
.reviews-hero__card-bottom{padding:16px 30px;display:flex;justify-content:space-between;gap:12px}
.reviews-hero__card-bottom p:first-child{margin:0;font-size:12px;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-200);font-weight:600}
.reviews-hero__card-bottom p:last-child{margin:0;font-size:12px;letter-spacing:0.1em;text-transform:uppercase;color:var(--red-light);font-weight:700}
@media (max-width:760px){.reviews-hero__card{justify-self:stretch;max-width:none}}

.featured-quote{margin:0 0 56px;position:relative;background:var(--white);border:1px solid var(--border);border-left:6px solid var(--red-600);padding:clamp(32px,5vw,56px) clamp(24px,5vw,64px)}
.featured-quote__mark{position:absolute;top:-6px;left:clamp(16px,3vw,40px);margin:0;font-family:var(--font-serif);font-size:130px;line-height:1;color:#f0dbdd;pointer-events:none;user-select:none}
.featured-quote blockquote{position:relative;margin:0;font-family:var(--font-serif);font-style:italic;font-weight:500;font-size:clamp(22px,2.8vw,32px);line-height:1.4;color:var(--ink-900);max-width:34ch}
.featured-quote figcaption{position:relative;margin-top:20px;display:flex;align-items:center;gap:14px}
.featured-quote__avatar{width:44px;height:44px;background:var(--red-600);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;flex:none}
.featured-quote__name{display:block;font-weight:700;font-size:14.5px}
.featured-quote__meta{display:block;font-size:11.5px;letter-spacing:0.12em;text-transform:uppercase;color:var(--ink-300)}

.reviews-masonry{columns:3 320px;column-gap:18px;margin-bottom:56px}
.review-tile{margin:0 0 18px;break-inside:avoid;padding:26px 28px;border:1px solid var(--border);background:var(--white);display:flex;flex-direction:column;gap:14px;transition:border-color 0.2s ease,box-shadow 0.2s ease}
.review-tile:hover{border-color:var(--red-600);box-shadow:6px 6px 0 rgba(210,31,43,0.12)}
.review-tile__head{display:flex;align-items:center;gap:12px}
.review-tile__avatar{width:40px;height:40px;flex:none;background:var(--ink-900);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}
.review-tile__name{margin:0;font-weight:700;font-size:14px}
.review-tile__matter{margin:2px 0 0;font-size:10.5px;letter-spacing:0.12em;text-transform:uppercase;color:var(--ink-300)}
.review-tile__meta{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--border-2);border-bottom:1px solid var(--border-2);padding:8px 0}
.review-tile__stars{margin:0;color:var(--gold);font-size:13px;letter-spacing:0.18em}
.review-tile__date{margin:0;font-size:10.5px;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-300)}
.review-tile__quote{margin:0;font-size:14.5px;line-height:1.65;color:var(--ink-600)}
@media (max-width:900px){.reviews-masonry{columns:2 280px}}
@media (max-width:600px){.reviews-masonry{columns:1}}

.reviews-cta{position:relative;background:var(--ink-800);color:#fff;padding:clamp(40px,6vw,72px) clamp(28px,5vw,64px);overflow:hidden}
.reviews-cta__watermark{position:absolute;top:-30px;right:clamp(8px,3vw,40px);margin:0;font-family:var(--font-serif);font-size:clamp(120px,18vw,220px);line-height:1;color:var(--ink-700);pointer-events:none;user-select:none}
.reviews-cta__inner{position:relative;display:flex;flex-direction:column;gap:20px;max-width:640px}
.reviews-cta__stars{margin:0;color:var(--gold);font-size:17px;letter-spacing:0.22em}
.reviews-cta__inner h2{margin:0;font-weight:600;font-size:clamp(28px,3.8vw,50px);line-height:1.06;color:#fff}
.reviews-cta__inner p{margin:0;font-size:15.5px;line-height:1.7;color:var(--ink-100);max-width:52ch}
.reviews-cta__actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:6px}

/* ===================== About page ===================== */
.about-grid{max-width:var(--container);margin:0 auto;padding:clamp(52px,8vw,88px) clamp(20px,4vw,48px);display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(32px,5vw,64px);align-items:start}
.about-portrait-col{display:flex;flex-direction:column;gap:18px;max-width:420px}
.about-portrait{width:100%;aspect-ratio:4/5;border:1px solid var(--border);background:var(--white);overflow:hidden}
.about-portrait img{width:100%;height:100%;object-fit:cover}
.about-portrait-cap{border-left:3px solid var(--red-600);padding-left:16px}
.about-portrait-cap__name{margin:0;font-family:var(--font-serif);font-weight:700;font-size:24px}
.about-portrait-cap__role{margin:4px 0 0;font-size:12px;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-400);font-weight:600}
.about-body{display:flex;flex-direction:column;gap:22px}
.about-body h1{font-weight:600;font-size:clamp(34px,4.8vw,56px);line-height:1.04}
.about-body p{margin:0;font-size:16px;line-height:1.75}
.about-lists{border-top:1px solid var(--border);padding-top:24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}
.about-lists h2{margin:0 0 10px;font-size:12px;letter-spacing:0.18em;text-transform:uppercase;color:var(--red-800);font-weight:700}
.about-lists ul{display:flex;flex-direction:column;gap:6px;font-size:14px;line-height:1.5}

/* ===================== Contact page ===================== */
.contact-grid{max-width:var(--container);margin:0 auto;padding:clamp(52px,8vw,88px) clamp(20px,4vw,48px);display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(32px,5vw,64px);align-items:start}
.contact-info{display:flex;flex-direction:column;gap:22px}
.contact-info h1{font-weight:600;font-size:clamp(34px,4.8vw,56px);line-height:1.04}
.contact-info p{margin:0;font-size:16px;line-height:1.7;color:var(--ink-500);max-width:50ch}
.contact-dl{margin:0;display:flex;flex-direction:column;border-top:1px solid var(--border)}
.contact-dl__row{display:grid;grid-template-columns:120px 1fr;gap:16px;padding:16px 0;border-bottom:1px solid var(--border)}
.contact-dl dt{font-size:12px;letter-spacing:0.16em;text-transform:uppercase;color:var(--red-800);font-weight:700;padding-top:2px}
.contact-dl dd{margin:0;font-size:15px;line-height:1.6}
@media (max-width:640px){.contact-dl__row{grid-template-columns:1fr;gap:4px}}

.contact-form{display:flex;flex-direction:column;gap:18px;background:var(--white);border:1px solid var(--border);border-top:3px solid var(--red-600);padding:clamp(24px,3vw,36px)}
.contact-form h2{margin:0;font-weight:700;font-size:26px}
.field-group{display:flex;flex-direction:column;gap:6px}
.field-group label{font-size:13px;font-weight:600;letter-spacing:0.04em}
.field-group .required{color:var(--red-600)}
.field-hint{margin:2px 0 0;font-size:12px;line-height:1.5;color:var(--ink-400)}
/* Scoped to the masked phone field: it has a placeholder, so :placeholder-shown
   suppresses the red border until the visitor has actually typed something.
   Applied to inputs without a placeholder it would flag every empty required
   field on page load. */
.field[data-phone-mask]:invalid:not(:placeholder-shown){border-color:var(--red-600)}
.field{font-family:var(--font-sans);font-size:15px;padding:12px 14px;border:1px solid #b5b5b5;background:#fff;color:var(--ink-900)}
.field:focus{outline:3px solid var(--red-600);outline-offset:1px}
textarea.field{resize:vertical}
.form-note{margin:0;font-size:12px;line-height:1.55;color:var(--ink-400)}
.form-success{margin:0;padding:16px 18px;background:#eaf6ee;border:1px solid #bfe3cc;color:#1a5c31;font-size:14.5px;font-weight:600}
.form-error{margin:0;padding:16px 18px;background:#fbeaea;border:1px solid #eec2c2;color:#8a1f1f;font-size:14.5px;font-weight:600}

/* Honeypot — hidden from sighted users, still reachable by simple bots */
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}

.captcha-fieldset{margin:0;padding:16px 18px;border:1px solid #b5b5b5;background:#fafafa;display:flex;flex-direction:column;gap:10px}
.captcha-fieldset legend{font-size:12px;letter-spacing:0.14em;text-transform:uppercase;font-weight:700;color:var(--red-800);padding:0 6px}
.captcha-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.captcha-row label{font-size:14.5px;font-weight:600}
.captcha-row input{font-family:var(--font-sans);font-size:15px;padding:10px 12px;border:2px solid #b5b5b5;background:#fff;color:var(--ink-900);width:90px;text-align:center}
.captcha-row input.has-error{border-color:var(--red-600)}
.captcha-status{margin:0;font-size:12.5px;font-weight:600;color:var(--ink-400)}
.recaptcha-notice{margin:10px 0 0;font-size:11.5px;line-height:1.5;color:var(--ink-400)}
.recaptcha-notice a{color:var(--ink-400);text-decoration:underline}
.recaptcha-notice a:hover{color:var(--red-700)}
.g-recaptcha{max-width:100%;overflow:hidden}
.captcha-status.has-error{color:var(--red-600)}
@media (max-width:760px){
  .captcha-row{flex-direction:column;align-items:stretch}
  .captcha-row input{width:100%}
}
/* Google renders the v2 widget at a fixed 304px, which overflows the form
   padding on a 320px phone. Scaling is the only lever — the iframe's width
   can't be changed. */
@media (max-width:400px){
  .g-recaptcha{transform:scale(0.86);transform-origin:0 0}
}

/* ===================== Legal pages ===================== */
.legal-body{display:flex;flex-direction:column;gap:26px}
.legal-body h1{font-weight:600;font-size:clamp(34px,5vw,54px);line-height:1.04}
.legal-body .updated{margin:0;font-size:13px;color:var(--ink-400)}
.legal-body h2{margin:12px 0 0;font-weight:700;font-size:28px}
.legal-body p{margin:0;font-size:15.5px;line-height:1.75}
.legal-body ul{margin:0;padding-left:22px;list-style:disc;font-size:15.5px;line-height:1.85;display:flex;flex-direction:column;gap:4px}

/* ===================== Accessibility widget ===================== */
.a11y-toggle{position:fixed;right:20px;bottom:20px;z-index:90;width:56px;height:56px;border-radius:50%;background:var(--ink-800);color:#ffffff;border:2px solid #ffffff;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(0,0,0,0.35)}
.a11y-toggle:hover{background:var(--red-600)}
.a11y-panel{display:none;position:fixed;right:20px;bottom:88px;z-index:90;width:min(340px,calc(100vw - 40px));background:#ffffff;border:1px solid var(--border);border-top:4px solid var(--red-600);box-shadow:0 18px 44px rgba(0,0,0,0.3);flex-direction:column;max-height:min(70vh,560px);overflow:auto}
.a11y-panel.is-open{display:flex}
.a11y-panel__head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 18px;border-bottom:1px solid var(--border-2)}
.a11y-panel__head h2{margin:0;font-weight:700;font-size:22px}
.a11y-panel__close{width:36px;height:36px;background:transparent;border:1px solid var(--border);color:var(--ink-900);display:flex;align-items:center;justify-content:center}
.a11y-panel__close:hover{background:var(--border-2)}
.a11y-panel__body{padding:16px 18px;display:flex;flex-direction:column;gap:10px}
.a11y-btn{font-family:var(--font-sans);display:flex;align-items:center;gap:12px;padding:13px 14px;background:#ffffff;color:var(--ink-900);border:1px solid var(--ink-900);font-size:14px;font-weight:600;text-align:left}
.a11y-btn:hover{border-color:var(--red-600)}
.a11y-btn.is-active{background:var(--red-600);color:#ffffff}
.a11y-textsize-row{display:flex;align-items:center;gap:10px}
.a11y-textsize-row p{margin:0;font-size:14px;font-weight:600;flex:1}
.a11y-textsize-row .a11y-step{width:44px;height:44px;background:#ffffff;border:1px solid var(--ink-900);font-size:15px;font-weight:700}
.a11y-textsize-row .a11y-step:hover{background:var(--border-2)}
.a11y-panel__toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;background:#ffffff;color:var(--ink-900);border:1px solid var(--border);font-size:14px;font-weight:600;text-align:left}
.a11y-panel__toggle:hover{border-color:var(--red-600)}
.a11y-switch{flex:none;width:40px;height:22px;border-radius:11px;background:#c6c6c6;position:relative;transition:background 0.15s}
.a11y-switch__knob{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#ffffff;box-shadow:0 1px 3px rgba(0,0,0,0.3);transition:left 0.15s}
.a11y-panel__toggle.is-active .a11y-switch{background:var(--red-600)}
.a11y-panel__toggle.is-active .a11y-switch__knob{left:20px}
.a11y-reset{font-family:var(--font-sans);padding:12px 14px;background:var(--ink-800);color:#ffffff;border:none;font-size:13.5px;font-weight:600;letter-spacing:0.04em}
.a11y-reset:hover{background:var(--red-600)}
.a11y-panel__foot{margin:0;font-size:12px;line-height:1.55;color:var(--ink-400)}
.rsl-a11y-links a{text-decoration:underline !important;background:#fff3b0 !important;color:#141414 !important}
.rsl-a11y-motion *,.rsl-a11y-motion *::before,.rsl-a11y-motion *::after{animation:none !important;transition:none !important}
.rsl-a11y-font body,.rsl-a11y-font body *{font-family:Verdana,Arial,sans-serif !important;letter-spacing:0.02em !important}
.rsl-a11y-contrast{filter:contrast(1.2) saturate(1.1)}
@media (max-width:760px){.a11y-toggle{left:12px;right:auto;bottom:12px}}

/* ===================== Footer ===================== */
.site-footer{background:#0c0c0c;color:var(--ink-100)}
.site-footer__grid{max-width:var(--container);margin:0 auto;padding:clamp(44px,6vw,64px) clamp(20px,4vw,48px);display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:40px}
.site-footer__brand{display:flex;flex-direction:column;gap:16px}
.site-footer__brand img{height:56px;width:auto;align-self:flex-start}
.site-footer__brand p{margin:0;font-size:13.5px;line-height:1.75;color:var(--ink-200)}
.site-footer__stars{margin:0;font-size:13px;color:var(--gold);letter-spacing:0.16em}
.site-footer__stars span{color:var(--ink-200);letter-spacing:0.06em;font-size:12px}
.site-footer__col{display:flex;flex-direction:column;gap:0}
.site-footer__col-title{margin:0 0 14px;font-size:11px;letter-spacing:0.2em;text-transform:uppercase;color:var(--ink-300);font-weight:700;border-bottom:1px solid var(--border-dark);padding-bottom:10px}
.site-footer__links{display:flex;flex-direction:column;gap:10px}
.site-footer__col a{color:var(--ink-100);text-decoration:none;font-size:14px;border-left:2px solid transparent;transition:color 0.15s ease,padding-left 0.15s ease}
.site-footer__col a:hover{color:#ffffff;border-left-color:var(--red-600);padding-left:10px}
.site-footer__col p{margin:0;font-size:12.5px;line-height:1.7;color:var(--ink-200)}
.site-footer__contact{display:flex;flex-direction:column;gap:12px;font-size:14px;line-height:1.65}
.site-footer__contact-row{margin:0;display:flex;gap:10px}
.site-footer__contact-row svg{flex:none;margin-top:3px}
.site-footer__contact-row a{color:#ffffff;text-decoration:none}
.site-footer__contact-row a:hover{color:var(--red-light)}
.site-footer__legal-block{margin-bottom:16px}
.site-footer__bottom{border-top:1px solid var(--border-dark)}
.site-footer__bottom-row{max-width:var(--container);margin:0 auto;padding:20px clamp(20px,4vw,48px);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center}
.site-footer__disclaimer{margin:0;font-size:12px;line-height:1.6;color:var(--ink-300);max-width:78ch}
.site-footer__copy{margin:0;font-size:12px;color:var(--ink-300)}
