/* =========================================================================
 * Michael T. Gibson, P.A. — global.css
 * Design system + shared chrome (nav, footer, global map CTA, popup shell,
 * buttons, utilities). Tokens + base extracted VERBATIM from Daedalus's
 * approved homepage stylesheet. Single source of truth for shared selectors.
 *
 * Architecture: every template loads global.css. Each template additionally
 * loads ONLY its unique sections (home.css, blog.css, ...). Chrome lives here
 * once (pre-ship-qc B1 — one source of truth per shared component).
 * ========================================================================= */

:root {
  /* Core navy + warm palette */
  --navy: #0b1628;
  --navy-90: #0f1d33;
  --navy-80: #142540;
  --navy-70: #1a2f50;
  --navy-surface: #111e34;
  /* Solar Bears influence — purple-kissed navy for depth */
  --deep: #0e1730;
  --deep-purple: #12172e;
  /* Primary fire */
  --fire: #f46421;
  --fire-deep: #d4551a;
  --fire-glow: rgba(244,100,33,0.15);
  /* Solar Bears teal — secondary accent */
  --teal: #00b4d8;
  --teal-dim: rgba(0,180,216,0.15);
  --teal-faint: rgba(0,180,216,0.06);
  /* Solar Bears gold — testimonial warmth */
  --gold: #f5b731;
  --gold-dim: rgba(245,183,49,0.12);
  /* Warm light tones */
  --chalk: #f8f7f4;
  --chalk-warm: #f3f0ea;
  --parchment: #eae6de;
  --ink: #1a1a1a;
  --smoke: rgba(255,255,255,0.6);
  --smoke-light: rgba(255,255,255,0.4);
  --smoke-faint: rgba(255,255,255,0.1);
  /* Type */
  --display: 'Cormorant Garamond', Georgia, serif;
  --body: 'Outfit', -apple-system, sans-serif;
  --ease: cubic-bezier(0.23, 1, 0.32, 1);

  /* Semantic content + surface tokens (light) — single source of truth.
     Verbatim from the approved source :root. Every template inherits these;
     no per-template :root may redefine them (pre-ship-qc B1). */
  --body-text: #555;
  --body-text-soft: #666;
  --body-text-strong: #444;
  --muted-text: #777;
  --softer-text: #888;
  --faint-text: #999;
  --border-soft: #d8d4cc;
  --border-softer: #e8e4dc;
  --surface-card: #fff;
}

/* Semantic tokens + warm-surface remap (dark) — verbatim from source. */
[data-theme="dark"] {
  --chalk: #0e1a30;
  --chalk-warm: #121d35;
  --parchment: #152440;
  --ink: #f0ede6;
  --body-text: rgba(255,255,255,0.72);
  --body-text-soft: rgba(255,255,255,0.65);
  --body-text-strong: rgba(255,255,255,0.8);
  --muted-text: rgba(255,255,255,0.55);
  --softer-text: rgba(255,255,255,0.45);
  --faint-text: rgba(255,255,255,0.4);
  --border-soft: rgba(255,255,255,0.1);
  --border-softer: rgba(255,255,255,0.08);
  --surface-card: var(--navy-surface);
}

/* ── BASE (verbatim) ── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--body); color: var(--ink);
  background: var(--navy); line-height: 1.7; font-size: 17px;
  -webkit-font-smoothing: antialiased; overflow-x: hidden;
}
img { max-width:100%; height:auto; display:block; }
a { color:inherit; text-decoration:none; }

/* A generic spacing rule (.sidebar .widget, .page-header, .widget-area
   .main-navigation, .site-main > * { margin-bottom: 50px }) targets the bare
   .page-header class and pushed a 50px gap below every interior hero — the
   dark body background showed through as a flat strip (the "blue bar"). Our
   full-bleed heroes self-space via their own padding and the next section's
   top padding, so the trailing margin must be zero. Specificity (0,2,0) beats
   the source's (0,1,0); no !important needed. Fixed 2026-06-18. */
body.separate-containers .page-header { margin-bottom: 0; }
/* In-content hyperlinks — fire orange + underline so readers know it's a link.
   Scoped to <p> so nav, buttons, footer, and card links (class-styled) win. */
p a { color:var(--fire); text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px; transition:color .2s var(--ease); }
p a:hover { color:var(--fire-deep); }

/* ── GLOBAL UTILITIES (verbatim) ── */
.container { max-width: 1200px; margin: 0 auto; padding: 0 48px; }
.eyebrow {
  font-family: var(--body); font-size: 14px; font-weight: 600;
  letter-spacing: 4px; text-transform: uppercase; color: var(--fire);
  display: inline-flex; align-items: center;
}
.h-xl { font-family: var(--display); font-size: clamp(2.8rem, 6vw, 4.6rem); font-weight: 600; line-height: 1.08; color: var(--ink); }
.h-lg { font-family: var(--display); font-size: clamp(2.3rem, 4.2vw, 3.4rem); font-weight: 600; line-height: 1.12; color: var(--ink); }
.prose { font-size: 1.15rem; line-height: 1.8; font-weight: 400; max-width: 620px; }
.prose p + p { margin-top: 16px; }
.text-w { color: #fff; }
.text-s { color: var(--smoke); }

/* ── REVEALS (disabled per LGD doctrine — Googlebot doesn't scroll) ── */
.rv { opacity:1; transform:none; transition:none; }
.rv.vis { opacity:1; transform:none; }

/* ── Accessibility ── */
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.skip-link:focus{position:fixed;top:8px;left:8px;z-index:10000;width:auto;height:auto;clip:auto;padding:.6rem 1rem;background:var(--fire);color:#fff}
body.mtg-no-scroll{overflow:hidden}

/* Weglot switcher — header, beside the theme toggle */
.mtg-lang{ display:inline-flex; align-items:center; margin-left:16px; }

.mtg-lang .country-selector{
  position:static !important; display:inline-flex !important; align-items:center !important;
  gap:6px !important; padding:0 !important; min-width:0 !important;
  background:none !important; border:0 !important; box-shadow:none !important; color: #fff !important;
}
.mtg-lang .weglot_choice{ display:none !important; }

.mtg-lang .country-selector ul{
  position:static !important; display:inline-flex !important; align-items:center !important; gap:6px !important;
  margin:0 !important; padding:0 !important; list-style:none !important;
  opacity:1 !important; visibility:visible !important; max-height:none !important; width:auto !important;
  background:none !important; border:0 !important; box-shadow:none !important;
}
.mtg-lang .country-selector li{ margin:0 !important; padding:0 !important; background:none !important; }

.mtg-lang .country-selector ul::before{
  content:"/"; color:#fff !important; opacity:.4; font-size:11px; margin-right:6px;
}

.mtg-lang .wgcurrent,
.mtg-lang .country-selector ul a{
  display:inline-flex !important; align-items:center !important; margin:0 !important; padding:0 2px !important;
  font-size:11px !important; font-weight:500 !important; letter-spacing:.4px !important; line-height:1 !important;
  text-transform:uppercase !important; text-decoration:none !important; cursor:pointer !important;
  color:#fff !important; background:none !important; border:0 !important;
}
.mtg-lang .wglanguage-name{ font-size:11px !important; color:#fff !important; }

.mtg-lang .country-selector ul a{ opacity:.55 !important; }
.mtg-lang .country-selector ul a:hover{ opacity:1 !important; }
.mtg-lang .wgcurrent{ opacity:1 !important; }

.mtg-lang .country-selector::after, .mtg-lang .wgcurrent::after{ display:none !important; }
.mtg-lang [class*="flag"]{ background-image:none !important; }

@media (max-width: 1024px){
  .mtg-lang{ margin:28px 0 0 !important; width:100%; justify-content:center; }
  .mtg-lang .country-selector{ gap:12px !important; justify-content:center; }
  .mtg-lang .country-selector ul{ gap:12px !important; }
  .mtg-lang .wgcurrent,
  .mtg-lang .country-selector ul a,
  .mtg-lang .wglanguage-name{
    font-size:17px !important;
    letter-spacing:1.5px !important;
    padding:6px 10px !important;
  }
  .mtg-lang .country-selector ul::before{
    font-size:17px !important;
    margin-right:12px !important;
  }
}

/* =========================================================================
 * NAV (verbatim chrome from approved homepage)
 * ========================================================================= */
#mainNav { position:fixed; top:0; left:0; right:0; z-index:9999; transition: background .5s, box-shadow .5s; }
nav.pinned { background:rgba(11,22,40,0.92); backdrop-filter:blur(24px) saturate(1.3); box-shadow:0 1px 0 rgba(244,100,33,0.25); }
.nav-bar { max-width:1800px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; padding:22px 48px; transition:padding .4s; }
nav.pinned .nav-bar { padding:14px 48px; }
.nav-logo { justify-self:start; display:flex; align-items:center; }
.nav-logo img { height:70px; width:auto; transition:.3s; }
nav.pinned .nav-logo img { height:60px; }
.nav-menu { display:flex; align-items:center; gap:32px; }
/* wp_nav_menu() wraps every item in <li> (it cannot emit bare <a>). Reset the
   list chrome so the WP-rendered menu matches Daedalus's bare-anchor design:
   no bullets, no list margins, <li> transparent to the flex row. Covers the
   nav (.nav-menu) and both footer columns (.ft-menu-col ul). Austin 2026-06-03. */
.nav-menu, .ft-menu-col ul { list-style:none; margin:0; padding:0; }
.nav-menu li, .ft-menu-col li { list-style:none; margin:0; padding:0; }
.ft-menu-col ul { display:flex; flex-direction:column; gap:12px; }
.nav-menu a { color:rgba(255,255,255,0.58); text-decoration:none; font-size:12px; font-weight:500; letter-spacing:2.5px; text-transform:uppercase; transition:color .3s; position:relative; font-family:var(--body); white-space:nowrap; }
.nav-menu a::after { content:''; position:absolute; bottom:-3px; left:0; width:0; height:1px; background:var(--fire); transition:width .3s; }
.nav-menu a:hover { color:#fff; }
.nav-menu a:hover::after { width:100%; }
.nav-menu a.active, .nav-menu .current-menu-item a { color:var(--fire); }
.nav-menu a.active::after, .nav-menu .current-menu-item a::after { width:100%; }
.nav-cta { display:flex; flex-direction:column; align-items:flex-end; text-align:right; text-decoration:none; line-height:1.2; gap:4px; transition:opacity .2s; }
.nav-cta::after { display:none !important; }
.nav-cta:hover { opacity:0.92; }
.nav-cta:hover .nav-cta-phone { color:var(--fire-deep); }
.nav-cta-label { font-family:var(--body); font-size:11px; font-weight:600; letter-spacing:2.5px; text-transform:uppercase; color:#fff; white-space:nowrap; }
.nav-cta-phone { display:inline-flex; align-items:center; gap:10px; font-family:var(--body); font-size:2rem; font-weight:700; color:var(--fire); letter-spacing:-0.3px; line-height:1; transition:color .2s; white-space:nowrap; }
.nav-cta-icon { width:24px; height:24px; flex-shrink:0; }
.burger{display:none;cursor:pointer;width:26px;height:18px;position:relative}
.burger span{display:block;position:absolute;width:100%;height:1.5px;background:#fff;transition:.3s}
.burger span:nth-child(1){top:0}.burger span:nth-child(2){top:50%;transform:translateY(-50%)}.burger span:nth-child(3){bottom:0}

/* Theme toggle (single-button Feldstein pattern, in-nav) */
.theme-toggle { position:relative; width:58px; height:30px; border-radius:30px; border:1px solid rgba(255,255,255,0.18); background:rgba(255,255,255,0.06); cursor:pointer; display:inline-flex; align-items:center; justify-content:space-between; padding:0 7px; transition:background .3s,border-color .3s; }
.theme-toggle:hover { border-color:var(--fire); }
.theme-toggle:focus-visible { outline:2px solid var(--fire); outline-offset:2px; }
.theme-toggle-icon { width:14px; height:14px; z-index:1; }
.theme-toggle-sun { color:#fff; }
.theme-toggle-moon { color:var(--fire); }
.theme-toggle-thumb { position:absolute; top:3px; left:3px; width:22px; height:22px; border-radius:50%; background:var(--fire); transition:transform .3s var(--ease); }
[data-theme="dark"] .theme-toggle-thumb { transform: translateX(28px); }
[data-theme="dark"] .theme-toggle-sun { color: var(--fire); }
[data-theme="dark"] .theme-toggle-moon { color: #fff; }
[data-theme="dark"] .theme-toggle { background:rgba(255,255,255,0.06); }
[data-theme="dark"] .theme-toggle:hover { border-color:var(--fire); }

/* =========================================================================
 * BUTTONS (verbatim)
 * ========================================================================= */
.cta-btn { display:inline-flex; align-items:center; gap:10px; background:linear-gradient(135deg,var(--fire),var(--fire-deep)); color:#fff; font-family:var(--body); font-weight:700; font-size:1rem; letter-spacing:0.3px; padding:18px 38px; border:none; border-radius:2px; cursor:pointer; text-decoration:none; transition:transform .3s var(--ease),box-shadow .3s var(--ease); box-shadow:0 8px 30px rgba(244,100,33,0.25); }
.cta-btn:hover { transform:translateY(-3px); box-shadow:0 12px 40px rgba(0,0,0,0.3); }
.btn-ghost { display:inline-flex; align-items:center; gap:10px; border:1px solid rgba(255,255,255,0.25); color:#fff; font-family:var(--body); font-weight:600; padding:16px 32px; border-radius:2px; text-decoration:none; transition:border-color .3s,color .3s; }
.btn-ghost:hover { border-color:var(--fire); color:var(--fire); }

/* =========================================================================
 * CTA CLOSE BAND (verbatim from source) — canonical single source of truth.
 * Rendered by mtg_render_oasis_close(); used by blog/post/news/interior/
 * press-release/page-default/case-results. Do NOT duplicate in template CSS.
 * ========================================================================= */
.cta { padding:120px 0; background:linear-gradient(135deg, var(--navy) 0%, var(--deep-purple) 50%, var(--fire-deep) 100%); text-align:center; position:relative; overflow:hidden; }
.cta::before { content:''; position:absolute; inset:0; background:linear-gradient(160deg,rgba(255,255,255,0.08) 0%,transparent 40%); }
.cta-inner { position:relative; z-index:1; }
.cta h2 { font-family:var(--display); font-size:clamp(2.5rem,5vw,4rem); font-weight:700; color:#fff; line-height:1.08; margin-bottom:20px; }
.cta p { font-size:1.05rem; color:rgba(255,255,255,0.85); max-width:500px; margin:0 auto 36px; line-height:1.7; }

/* =========================================================================
 * GLOBAL ABOVE-FOOTER MAP (full-width, eager iframe — LGD doctrine 2026-05-19)
 * ========================================================================= */
.global-map { width:100%; line-height:0; }
.global-map iframe { width:100%; height:440px; border:0; display:block; }

/* =========================================================================
 * FOOTER (verbatim chrome)
 * ========================================================================= */
footer { background:var(--navy); padding:48px 48px; border-top:1px solid rgba(255,255,255,0.04); }
.ft-inner { max-width:1800px; margin:0 auto; display:flex; align-items:flex-start; justify-content:space-between; gap:64px; }
.ft-brand-col { display:flex; flex-direction:column; gap:20px; flex:0 0 340px; max-width:340px; }
.ft-logo { display:inline-flex; }
.ft-logo img { height:70px; width:auto; opacity:0.45; }
.ft-nap { font-style:normal; display:flex; flex-direction:column; gap:8px; }
.ft-nap-name { font-family:var(--display); font-size:1.15rem; font-weight:600; color:#fff; line-height:1.3; }
.ft-nap-line { font-size:0.92rem; color:var(--smoke); line-height:1.6; }
.ft-nap-line a { color:#fff; text-decoration:none; transition:color .2s; }
.ft-nap-line a:hover { color:var(--fire); }
.ft-social { display:flex; gap:14px; }
.ft-social a { width:36px; height:36px; display:inline-grid; place-items:center; border:1px solid rgba(255,255,255,0.16); border-radius:50%; color:var(--smoke); transition:color .2s,border-color .2s; }
.ft-social a:hover { color:var(--fire); border-color:var(--fire); }
.ft-social svg { width:16px; height:16px; }
.ft-disclaimer { font-size:0.78rem; color:var(--smoke-light); line-height:1.6; }
.ft-disclaimer a { color:var(--fire); text-decoration:none; }
.ft-menu { display:flex; flex:1 1 auto; gap:56px; }
.ft-menu-col { display:flex; flex-direction:column; gap:12px; }
.ft-menu-heading { font-size:11px; font-weight:600; letter-spacing:2.5px; text-transform:uppercase; color:var(--fire); margin-bottom:4px; }
.ft-menu-col a { font-size:0.9rem; color:var(--smoke); text-decoration:none; transition:color .2s; }
.ft-menu-col a:hover { color:#fff; }
/* Footer practice-areas list — curated 9 items, balanced into two columns so
   the block sits at a height close to the Company column instead of one tall
   stack. NOTE: ul.ft-areas-list (higher specificity) is required to beat the
   .ft-menu-col ul { display:flex } rule above — without display:block the
   multicol is ignored. Austin 2026-06-18. */
.ft-menu-col--areas { flex:0 0 auto; max-width:none; }
.ft-menu-col ul.ft-areas-list { display:block; columns:2; column-gap:40px; width:420px; max-width:100%; }
.ft-areas-list li { margin:0 0 11px; break-inside:avoid; }
.ft-areas-list a { font-size:0.88rem; color:var(--smoke); text-decoration:none; transition:color .2s; line-height:1.35; white-space:nowrap; }
.ft-areas-list a:hover { color:#fff; }
/* Company column labels stay on one line; Resources holds a long label
   ("Car Accident Settlement Calculator") that must wrap rather than overflow. */
.ft-menu-col--company a { white-space:nowrap; }

/* Footer sub-bar: legal links (left) + agency credit (right), divided from the
   main grid by a hairline rule. Austin 2026-06-18. */
.ft-subbar { border-top:1px solid rgba(255,255,255,0.08); margin-top:44px; padding-top:24px; }
.ft-subbar-inner { max-width:1800px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.ft-legal-links { display:flex; flex-wrap:wrap; gap:28px; }
.ft-legal-links a, .ft-credit { font-size:0.8rem; color:var(--smoke-light); text-decoration:none; }
.ft-legal-links a { transition:color .2s; }
.ft-legal-links a:hover { color:#fff; }
.ft-credit a { color:var(--fire); text-decoration:none; transition:opacity .2s; }
.ft-credit a:hover { opacity:0.8; }

/* ── Oasis horizon rule (decorative divider) ── */
.oasis-horizon{height:1px;background:linear-gradient(90deg,transparent,rgba(244,100,33,0.4),transparent)}

/* =========================================================================
 * 404 / ERROR PAGE — self-contained (lives in global.css because 404.php has
 * no dedicated stylesheet and home.css only loads on the front page).
 * ========================================================================= */
.error-hero{position:relative;min-height:70vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:140px 24px 100px;background:radial-gradient(ellipse 70% 60% at 50% 35%,rgba(244,100,33,0.08) 0%,transparent 60%),linear-gradient(160deg,var(--navy) 0%,var(--deep-purple) 55%,var(--navy-90) 100%);overflow:hidden}
.error-inner{position:relative;z-index:1;max-width:680px}
.error-code{font-family:var(--display);font-weight:700;font-size:clamp(6rem,18vw,12rem);line-height:.9;color:var(--fire);opacity:.18;margin-bottom:-1.5rem}
.error-eyebrow{font-family:var(--body);font-size:12px;font-weight:600;letter-spacing:4px;text-transform:uppercase;color:var(--fire);margin-bottom:16px}
.error-title{font-family:var(--display);font-weight:700;font-size:clamp(2.2rem,5vw,3.4rem);line-height:1.1;color:#fff;margin-bottom:18px}
.error-text{font-family:var(--body);font-size:1.1rem;line-height:1.7;color:rgba(255,255,255,0.7);max-width:520px;margin:0 auto 36px}
.error-actions{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;margin-bottom:40px}
.error-links{display:flex;gap:24px;justify-content:center;flex-wrap:wrap}
.error-links a{font-family:var(--body);font-size:13px;font-weight:500;letter-spacing:1px;text-transform:uppercase;color:rgba(255,255,255,0.6);text-decoration:none;transition:color .2s var(--ease)}
.error-links a:hover{color:var(--fire)}
@media (max-width:600px){
  .error-actions{flex-direction:column;align-items:center}
  .error-links{gap:14px 20px}
}

/* =========================================================================
 * MOBILE STICKY PHONE BAR
 * ========================================================================= */
.mobile-phone-bar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:1200;align-items:center;justify-content:center;gap:10px;padding:14px;background:linear-gradient(135deg,var(--fire),var(--fire-deep));color:#fff;font-family:var(--body);font-weight:700;box-shadow:0 -4px 20px rgba(0,0,0,0.25);transition:transform .3s var(--ease)}

/* =========================================================================
 * URGENCY POPUP (verbatim chrome shell — markup parity from homepage)
 * Suppression: sessionStorage 'mtg-popup-shown'
 * ========================================================================= */
.popup-backdrop { position:fixed; inset:0; z-index:10001; display:none; align-items:center; justify-content:center; padding:24px; background:rgba(7,15,28,0.78); backdrop-filter:blur(6px); }
.popup-backdrop.is-active { display:flex; }
.popup-modal { position:relative; max-width:520px; width:100%; background:var(--navy-90); border:1px solid rgba(244,100,33,0.25); border-radius:4px; padding:52px 44px 36px; box-shadow:0 40px 120px rgba(0,0,0,0.5); }
.popup-modal::before { content:''; position:absolute; inset:0; border-radius:4px; background:radial-gradient(ellipse 60% 50% at 50% 0%, rgba(244,100,33,0.08), transparent 70%); pointer-events:none; }
.popup-close { position:absolute; top:16px; right:16px; width:34px; height:34px; border:none; background:transparent; color:var(--smoke); font-size:1.6rem; line-height:1; cursor:pointer; transition:color .2s; }
.popup-close:hover { color:var(--fire); }
.popup-eyebrow { display:inline-flex; align-items:center; gap:8px; font-size:12px; font-weight:600; letter-spacing:3px; text-transform:uppercase; color:var(--fire); margin-bottom:18px; }
.popup-eyebrow .clock-icon { display:inline-flex; width:14px; height:14px; }
.popup-modal h2 { font-family:var(--display); font-size:2.1rem; font-weight:700; color:#fff; line-height:1.15; margin-bottom:14px; }
.popup-modal h2 em { font-style:italic; font-weight:400; color:var(--fire); }
.popup-modal .lede { font-size:15px; color:var(--smoke); line-height:1.7; margin-bottom:14px; }
.popup-modal .body { font-size:14px; color:var(--smoke-light); line-height:1.7; margin-bottom:24px; }
.popup-modal .body strong { color:rgba(255,255,255,0.85); font-weight:500; }
.popup-cta { display:inline-flex; align-items:center; gap:10px; width:100%; justify-content:center; background:linear-gradient(135deg,var(--fire),var(--fire-deep)); color:#fff; font-weight:700; padding:18px 28px; border-radius:2px; text-decoration:none; transition:transform .25s var(--ease),box-shadow .25s var(--ease); }
.popup-cta:hover { transform:translateY(-2px); box-shadow:0 12px 36px rgba(244,100,33,0.3); }
.popup-secondary { display:block; text-align:center; margin-top:16px; font-size:13px; color:var(--smoke); text-decoration:none; transition:color .2s; }
.popup-secondary:hover { color:var(--fire); }
.popup-footnote { margin-top:18px; font-size:12px; color:var(--smoke-light); text-align:center; line-height:1.5; }
.popup-footnote strong { color:rgba(255,255,255,0.7); font-weight:600; }

/* =========================================================================
 * DARK THEME — base chrome (persisted via localStorage 'mtg-theme')
 * ========================================================================= */
[data-theme="dark"] body { background:var(--deep); }

/* =========================================================================
 * RESPONSIVE — shared chrome only
 * ========================================================================= */
/* Mid-width nav: tighten the row as it narrows so the logo + 7 items + phone
   stay on ONE line (links also carry white-space:nowrap), before the burger
   menu takes over at <=1024. Graduated so nothing snaps. Austin 2026-06-24. */
@media (max-width:1560px){
  .nav-bar{padding:20px 32px}
  .nav-logo img{height:58px}
  .nav-menu{gap:20px}
  .nav-cta-phone{font-size:1.55rem}
  .nav-cta-icon{width:21px;height:21px}
}
@media (max-width:1300px){
  .nav-cta-label{display:none}          /* drop the "Free Consultations..." line early */
  .nav-bar{padding:18px 28px}
  .nav-menu{gap:13px}
  .nav-menu a{font-size:11px;letter-spacing:1.4px}
  .nav-cta-phone{font-size:1.35rem}
  .nav-cta-icon{width:19px;height:19px}
}
@media (max-width:900px){
  /* Stacked footer: reset the desktop flex bases so they don't apply to the
     now-vertical main axis (would lock the brand column's height). */
  .ft-inner{flex-direction:column;gap:36px}
  .ft-brand-col{flex:0 0 auto;max-width:none}
  .ft-menu{flex:0 0 auto;gap:48px;flex-wrap:wrap}
  .global-map iframe{height:320px}
}
@media (max-width:1024px){
  /* Burger + full-screen overlay take over here (raised from 768): a 7-item
     horizontal nav + tall logo + phone cannot fit below ~1024 without crowding,
     so switch to the mobile menu while there is still room. Austin 2026-06-24.
     Logo + burger sit above the overlay so the menu can be closed while open. */
  .burger{display:block; position:relative; z-index:2}
  .nav-logo{position:relative; z-index:2}
  /* Full-screen frosted overlay menu (replaces the dropdown panel). Fades in
     via opacity/visibility on .active. Austin 2026-06-18. */
  #mainNav .nav-menu {
    position:fixed; inset:0; height:100vh; height:100dvh; z-index:1;
    display:flex; flex-direction:column; justify-content:center; align-items:center;
    gap:6px;
    background:rgba(11,22,40,0.98);
    -webkit-backdrop-filter:blur(24px); backdrop-filter:blur(24px);
    padding:100px 32px 56px;
    opacity:0; visibility:hidden; pointer-events:none;
    transition:opacity .35s var(--ease), visibility .35s var(--ease);
  }
  #mainNav .nav-menu.active { opacity:1; visibility:visible; pointer-events:auto; }
  #mainNav .nav-menu a { padding:18px 0; font-size:20px; letter-spacing:3px; }
  #mainNav .nav-menu a::after { left:50%; transform:translateX(-50%); }
  #mainNav .nav-menu .theme-toggle { margin-top:28px; }
  /* Burger morphs to an X when the overlay is open. */
  .burger.open span:nth-child(1){ top:50%; transform:translateY(-50%) rotate(45deg); }
  .burger.open span:nth-child(2){ opacity:0; }
  .burger.open span:nth-child(3){ top:50%; bottom:auto; transform:translateY(-50%) rotate(-45deg); }
  .nav-cta{display:none}
  .mobile-phone-bar{display:flex}
  .ft-menu{gap:32px}
  /* Practice-area list collapses to a single column so long labels don't
     overflow their multicol track on narrow screens. */
  .ft-menu-col ul.ft-areas-list{columns:1;width:auto}
  .ft-areas-list a{white-space:normal}
  /* Stack the sub-bar: legal links over the agency credit, both left-aligned. */
  .ft-subbar-inner{flex-direction:column;align-items:flex-start;gap:16px}
  .ft-legal-links{gap:20px}
  body{padding-bottom:52px}
}
@media (max-width:480px){
  .container{padding:0 24px}
  .nav-bar{padding:18px 24px}
  footer{padding:36px 24px}
  .global-map iframe{height:280px}
}

/* ===================================================================
   SHARED TEAM CARD GRID (Feldstein-style). Driven by
   mtg_render_team_card() over the team_member CPT, used by the
   practice-area page template, the homepage team section, and the
   Our Team page. Update a team member once -> updates everywhere.
   =================================================================== */
.pa-team-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:26px;max-width:1800px;margin:52px auto 0;padding:0 48px;}
.pa-card{display:flex;flex-direction:column;border-radius:14px;overflow:hidden;text-decoration:none;color:inherit;background:#fff;border:1px solid rgba(0,0,0,0.07);box-shadow:0 14px 38px rgba(20,30,50,0.08);transition:transform .3s,box-shadow .3s;}
.pa-card:hover{transform:translateY(-4px);box-shadow:0 24px 56px rgba(20,30,50,0.14);}
.pa-card-photo{position:relative;aspect-ratio:4/5;overflow:hidden;padding-top:16px;background:linear-gradient(180deg,#ece6db 0%,#f7f3ed 100%);}
.pa-card-photo img,.pa-card-photo svg{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;}
.pa-card-photo::after{content:'';position:absolute;left:0;right:0;bottom:0;height:40%;background:linear-gradient(to top,#fff,transparent);}
.pa-card-body{padding:22px 18px 26px;text-align:center;display:flex;flex-direction:column;flex:1;}
.pa-card-name{font-family:var(--display);font-size:1.18rem;font-weight:700;color:var(--ink);line-height:1.2;}
.pa-card-role{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--fire);margin-top:8px;}
.pa-card-bio{font-size:.9rem;font-style:italic;color:rgba(0,0,0,0.6);line-height:1.6;margin-top:14px;}
.pa-team-title{color:var(--ink);}
[data-theme="dark"] .pa-card{background:linear-gradient(180deg,rgba(255,255,255,0.06),rgba(255,255,255,0.02));border:1px solid rgba(255,255,255,0.09);box-shadow:0 24px 60px rgba(0,0,0,0.35);}
[data-theme="dark"] .pa-card-photo{background:linear-gradient(180deg,#22324f 0%,#0f1b30 100%);}
[data-theme="dark"] .pa-card-photo::after{background:linear-gradient(to top,rgba(15,27,48,0.9),transparent);}
[data-theme="dark"] .pa-card-name{color:#fff;}
[data-theme="dark"] .pa-card-bio{color:var(--smoke);}
@media (max-width:1500px){.pa-team-grid{grid-template-columns:repeat(4,1fr);}}
@media (max-width:1100px){.pa-team-grid{grid-template-columns:repeat(3,1fr);}}
@media (max-width:820px){.pa-team-grid{grid-template-columns:repeat(2,1fr);padding:0 24px;}}
@media (max-width:520px){.pa-team-grid{grid-template-columns:1fr;}}
