/**
 * NP-Law Self-Hosted Fonts
 * GDPR-compliant — no external requests to Google Fonts CDN.
 *
 * Montserrat (headings): weights 700, 800, 900
 * Source Sans 3 (body):  weights 300, 400, 600
 *
 * Subsets: cyrillic-ext, cyrillic, latin-ext, latin
 * Format: woff2
 *
 * NOTE: Google Fonts v31 Montserrat and v19 Source Sans 3 are variable fonts.
 * A single woff2 file per subset covers all requested weights.
 * We declare separate @font-face rules per weight for explicit browser mapping,
 * but they reference the same underlying file per subset.
 */

/* ==========================================================================
   MONTSERRAT — Headings (700, 800, 900)
   ========================================================================== */

/* --- Weight 700 (Bold) --- */

/* cyrillic-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/montserrat/montserrat-700-cyrillic-ext.woff2') format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/montserrat/montserrat-700-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/montserrat/montserrat-700-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/montserrat/montserrat-700-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* --- Weight 800 (ExtraBold) --- */

/* cyrillic-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('../fonts/montserrat/montserrat-700-cyrillic-ext.woff2') format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('../fonts/montserrat/montserrat-700-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('../fonts/montserrat/montserrat-700-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('../fonts/montserrat/montserrat-700-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* --- Weight 900 (Black) --- */

/* cyrillic-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url('../fonts/montserrat/montserrat-700-cyrillic-ext.woff2') format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url('../fonts/montserrat/montserrat-700-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url('../fonts/montserrat/montserrat-700-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url('../fonts/montserrat/montserrat-700-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


/* ==========================================================================
   SOURCE SANS 3 — Body text (300, 400, 600)
   ========================================================================== */

/* --- Weight 300 (Light) --- */

/* cyrillic-ext */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('../fonts/source-sans-3/source-sans-3-cyrillic-ext.woff2') format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('../fonts/source-sans-3/source-sans-3-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* latin-ext */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('../fonts/source-sans-3/source-sans-3-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('../fonts/source-sans-3/source-sans-3-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* --- Weight 400 (Regular) --- */

/* cyrillic-ext */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/source-sans-3/source-sans-3-cyrillic-ext.woff2') format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/source-sans-3/source-sans-3-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* latin-ext */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/source-sans-3/source-sans-3-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/source-sans-3/source-sans-3-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* --- Weight 600 (SemiBold) --- */

/* cyrillic-ext */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/source-sans-3/source-sans-3-cyrillic-ext.woff2') format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/source-sans-3/source-sans-3-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* latin-ext */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/source-sans-3/source-sans-3-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/source-sans-3/source-sans-3-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* ============================================
   NP-Law - Design System (main.css)
   Nikolov & Partners Law Firm
   ============================================ */

/* --- CSS Custom Properties (Design Tokens) --- */
:root {
  /* Colors */
  --color-primary: #002871;
  --color-primary-light: #1a3a8a;
  --color-primary-dark: #001a4d;
  --color-accent: #D4A853;
  --color-accent-light: #e0bb6f;
  --color-accent-dark: #b89343;
  --color-bg: #FFFFFF;
  --color-bg-alt: #F9FAFB;
  --color-bg-card: #FFFFFF;
  --color-text: #002871;
  --color-text-body: #6B7280;
  --color-text-muted: #9CA3AF;
  --color-text-inverse: #FFFFFF;
  --color-border: #E0E2E8;
  --color-border-light: #F3F4F6;

  /* Fonts */
  --font-heading: 'Montserrat', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-body: 'Source Sans 3', -apple-system, BlinkMacSystemFont, sans-serif;

  /* Font weights */
  --weight-light: 300;
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;
  --weight-extrabold: 800;
  --weight-black: 900;

  /* Font sizes */
  --text-xs: 0.75rem;     /* 12px */
  --text-sm: 0.875rem;    /* 14px */
  --text-base: 1rem;      /* 16px */
  --text-lg: 1.125rem;    /* 18px */
  --text-xl: 1.25rem;     /* 20px */
  --text-2xl: 1.5rem;     /* 24px */
  --text-3xl: 1.875rem;   /* 30px */
  --text-4xl: 2.25rem;    /* 36px */
  --text-5xl: 3rem;       /* 48px */
  --text-6xl: 3.75rem;    /* 60px */
  --text-hero: 3.5rem;    /* 56px */

  /* Line heights */
  --leading-none: 1;
  --leading-tight: 1.1;
  --leading-snug: 1.375;
  --leading-normal: 1.6;
  --leading-relaxed: 1.75;
  --leading-loose: 2;

  /* Letter spacing */
  --tracking-tighter: -0.05em;
  --tracking-tight: -0.025em;
  --tracking-normal: 0;
  --tracking-wide: 0.025em;
  --tracking-wider: 0.05em;
  --tracking-widest: 0.1em;

  /* Spacing */
  --space-xs: 0.25rem;    /* 4px */
  --space-sm: 0.5rem;     /* 8px */
  --space-md: 1rem;       /* 16px */
  --space-lg: 1.5rem;     /* 24px */
  --space-xl: 2rem;       /* 32px */
  --space-2xl: 3rem;      /* 48px */
  --space-3xl: 4rem;      /* 64px */
  --space-4xl: 5rem;      /* 80px */
  --space-5xl: 6rem;      /* 96px */

  /* Border radius */
  --radius-none: 0;
  --radius-sm: 0.375rem;  /* 6px */
  --radius-md: 0.5rem;    /* 8px */
  --radius-lg: 0.75rem;   /* 12px */
  --radius-xl: 1rem;      /* 16px */
  --radius-full: 9999px;

  /* Shadows */
  --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
  --shadow-md: 0 4px 16px rgba(0, 0, 0, 0.08);
  --shadow-lg: 0 10px 25px rgba(0, 0, 0, 0.1);
  --shadow-xl: 0 20px 40px rgba(0, 0, 0, 0.15);

  /* Transitions */
  --transition-fast: 0.15s ease;
  --transition-base: 0.3s ease;
  --transition-slow: 0.5s ease;

  /* Layout */
  --header-height: 80px;
  --container-max: 1280px;
  --container-wide: 1440px;
  --container-narrow: 960px;
  --container-pad: 1.5rem;
  --grid-gap: 1.5rem;

  /* Z-index */
  --z-dropdown: 1000;
  --z-sticky: 1020;
  --z-fixed: 1030;
  --z-overlay: 9999;
  --z-modal-backdrop: 1040;
  --z-modal: 1050;
  --z-tooltip: 1070;
}

/* --- CSS Reset (Modern, Minimal) --- */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-height) + 20px);
  line-height: 1.15;
  font-size: 100%; /* 16px base */
}

body {
  font-family: var(--font-body);
  font-size: var(--text-base);
  font-weight: var(--weight-regular);
  line-height: var(--leading-normal);
  color: var(--color-text-body);
  background-color: var(--color-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
  padding-top: var(--header-height);
  min-height: 100vh;
}

img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
}

img {
  height: auto;
}

input,
button,
textarea,
select {
  font: inherit;
  color: inherit;
}

button {
  cursor: pointer;
  border: none;
  background: none;
}

a {
  color: var(--color-primary);
  text-decoration: none;
  transition: color var(--transition-fast);
}

a:hover {
  color: var(--color-primary-light);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

ul,
ol {
  list-style: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

fieldset {
  border: none;
}

/* Remove animations for people who prefer not to see them */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* @font-face declarations are in fonts.css (loaded separately) */

/* --- Base Typography --- */

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
  color: var(--color-text);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-tight);
  margin-bottom: var(--space-md);
}

h1 {
  font-size: var(--text-5xl);
  font-weight: var(--weight-black);
}

h2 {
  font-size: var(--text-4xl);
  font-weight: var(--weight-extrabold);
}

h3 {
  font-size: var(--text-2xl);
  font-weight: var(--weight-bold);
}

h4 {
  font-size: var(--text-xl);
  font-weight: var(--weight-bold);
}

h5 {
  font-size: var(--text-lg);
  font-weight: var(--weight-bold);
}

h6 {
  font-size: var(--text-base);
  font-weight: var(--weight-bold);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wide);
}

p {
  margin-bottom: var(--space-md);
  color: var(--color-text-body);
}

p:last-child {
  margin-bottom: 0;
}

strong, b {
  font-weight: var(--weight-semibold);
}

small {
  font-size: var(--text-sm);
}

blockquote {
  border-left: 4px solid var(--color-accent);
  padding: var(--space-lg) var(--space-xl);
  margin: var(--space-xl) 0;
  background-color: var(--color-bg-alt);
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
  font-style: italic;
  color: var(--color-text);
}

blockquote p {
  margin-bottom: 0;
  font-size: var(--text-lg);
}

hr {
  border: none;
  border-top: 1px solid var(--color-border);
  margin: var(--space-2xl) 0;
}

/* --- Layout --- */

.container {
  width: 100%;
  max-width: var(--container-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--container-pad);
  padding-right: var(--container-pad);
}

.container--narrow {
  max-width: var(--container-narrow);
}

.container--wide {
  max-width: var(--container-wide);
}

.section {
  padding-top: var(--space-4xl);
  padding-bottom: var(--space-4xl);
}

.section--sm {
  padding-top: var(--space-2xl);
  padding-bottom: var(--space-2xl);
}

.section--lg {
  padding-top: var(--space-5xl);
  padding-bottom: var(--space-5xl);
}

/* Section backgrounds */
.section-white {
  background-color: var(--color-bg);
}

.section-alt {
  background-color: var(--color-bg-alt);
}

.section-navy {
  background-color: var(--color-primary);
  color: var(--color-text-inverse);
}

.section-navy h1,
.section-navy h2,
.section-navy h3,
.section-navy h4,
.section-navy h5,
.section-navy h6 {
  color: var(--color-text-inverse);
}

.section-navy p {
  color: rgba(255, 255, 255, 0.85);
}

.section-navy a {
  color: var(--color-accent);
}

.section-navy a:hover {
  color: var(--color-accent-light);
}

/* Section header (centered titles) */
.section-header {
  text-align: center;
  max-width: 700px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: var(--space-3xl);
}

.section-header p {
  font-size: var(--text-lg);
  color: var(--color-text-body);
  margin-top: var(--space-sm);
}

.section-label {
  font-family: var(--font-heading);
  font-size: var(--text-sm);
  font-weight: var(--weight-bold);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wider);
  color: var(--color-accent);
  margin-bottom: var(--space-sm);
  display: block;
}

/* --- Grid Helpers --- */

.grid {
  display: grid;
  gap: var(--grid-gap);
}

.grid-2 {
  grid-template-columns: repeat(2, 1fr);
}

.grid-3 {
  grid-template-columns: repeat(3, 1fr);
}

.grid-4 {
  grid-template-columns: repeat(4, 1fr);
}

/* --- Flex Helpers --- */

.flex {
  display: flex;
}

.flex-center {
  display: flex;
  align-items: center;
  justify-content: center;
}

.flex-between {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.gap-sm { gap: var(--space-sm); }
.gap-md { gap: var(--space-md); }
.gap-lg { gap: var(--space-lg); }
.gap-xl { gap: var(--space-xl); }

/* --- Button Styles --- */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-sm);
  padding: 0.875rem 2rem;
  font-family: var(--font-heading);
  font-size: var(--text-sm);
  font-weight: var(--weight-medium);
  line-height: 1;
  border: 2px solid transparent;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition:
    background-color var(--transition-base),
    color var(--transition-base),
    border-color var(--transition-base),
    box-shadow var(--transition-base),
    transform var(--transition-fast);
  text-decoration: none;
  white-space: nowrap;
}

.btn:hover {
  transform: translateY(-1px);
}

.btn:active {
  transform: translateY(0);
}

/* Primary (Navy) */
.btn--primary {
  background-color: var(--color-primary);
  color: var(--color-text-inverse);
  border-color: var(--color-primary);
}

.btn--primary:hover {
  background-color: var(--color-primary-light);
  border-color: var(--color-primary-light);
  color: var(--color-text-inverse);
  box-shadow: var(--shadow-md);
}

.btn--primary:active {
  background-color: var(--color-primary-dark);
  border-color: var(--color-primary-dark);
}

/* Accent (Gold) */
.btn--accent {
  background-color: var(--color-accent);
  color: var(--color-primary-dark);
  border-color: var(--color-accent);
}

.btn--accent:hover {
  background-color: var(--color-accent-light);
  border-color: var(--color-accent-light);
  color: var(--color-primary-dark);
  box-shadow: var(--shadow-md);
}

.btn--accent:active {
  background-color: var(--color-accent-dark);
  border-color: var(--color-accent-dark);
}

/* Outline */
.btn--outline {
  background-color: transparent;
  color: var(--color-primary);
  border-color: var(--color-primary);
}

.btn--outline:hover {
  background-color: var(--color-primary);
  color: var(--color-text-inverse);
}

/* Outline White (for dark backgrounds) */
.btn--outline-white {
  background-color: transparent;
  color: var(--color-text-inverse);
  border-color: rgba(255, 255, 255, 0.6);
}

.btn--outline-white:hover {
  background-color: var(--color-text-inverse);
  color: var(--color-primary);
  border-color: var(--color-text-inverse);
}

/* Button sizes */
.btn--lg {
  padding: 1rem 2.25rem;
  font-size: var(--text-base);
}

.btn--sm {
  padding: 0.5rem 1.25rem;
  font-size: var(--text-xs);
}

/* --- Utility Classes --- */

.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }

.text-primary { color: var(--color-primary); }
.text-accent { color: var(--color-accent); }
.text-muted { color: var(--color-text-muted); }
.text-inverse { color: var(--color-text-inverse); }

.font-heading { font-family: var(--font-heading); }
.font-body { font-family: var(--font-body); }

.fw-light { font-weight: var(--weight-light); }
.fw-regular { font-weight: var(--weight-regular); }
.fw-medium { font-weight: var(--weight-medium); }
.fw-semibold { font-weight: var(--weight-semibold); }
.fw-bold { font-weight: var(--weight-bold); }
.fw-extrabold { font-weight: var(--weight-extrabold); }
.fw-black { font-weight: var(--weight-black); }

.mt-0 { margin-top: 0; }
.mb-0 { margin-bottom: 0; }
.mb-sm { margin-bottom: var(--space-sm); }
.mb-md { margin-bottom: var(--space-md); }
.mb-lg { margin-bottom: var(--space-lg); }
.mb-xl { margin-bottom: var(--space-xl); }
.mb-2xl { margin-bottom: var(--space-2xl); }

/* Screen reader only */
.sr-only,
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Skip link */
.skip-link {
  position: absolute;
  top: -100%;
  left: 0;
  z-index: 10000;
  padding: var(--space-sm) var(--space-md);
  background: var(--color-primary);
  color: var(--color-text-inverse);
  font-weight: var(--weight-bold);
}

.skip-link:focus {
  top: 0;
}

/* WordPress specific */
.wp-caption {
  max-width: 100%;
}

.aligncenter {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.alignleft {
  float: left;
  margin-right: var(--space-lg);
  margin-bottom: var(--space-md);
}

.alignright {
  float: right;
  margin-left: var(--space-lg);
  margin-bottom: var(--space-md);
}

/* Site main wrapper */
.site-main {
  min-height: 60vh;
}

/* Skip to content - Accessibility */
.skip-to-content {
    position: absolute;
    top: -100%;
    left: 16px;
    z-index: 10000;
    padding: 8px 16px;
    background: #002871;
    color: #fff;
    border-radius: 0 0 4px 4px;
    font-size: 14px;
    text-decoration: none;
    transition: top 0.2s;
}
.skip-to-content:focus {
    top: 0;
}

/* Focus visible styles */
:focus-visible {
    outline: 2px solid #002871;
    outline-offset: 2px;
}
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 2px solid #002871;
    outline-offset: 2px;
}
/* ============================================
   NP-Law - Component Styles
   Nikolov & Partners Law Firm
   MERGED: Original structure + Sub-agent visual improvements
   ============================================ */

/* --- Sticky Header Wrapper --- */
.sticky-header-wrap {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: var(--z-sticky);
  background-color: var(--color-bg);
  transition: box-shadow var(--transition-base);
}

.sticky-header-wrap.is-scrolled {
  box-shadow: var(--shadow-lg);
}

/* --- Site Header --- */
.site-header {
  background-color: var(--color-bg);
  height: var(--header-height);
  display: flex;
  align-items: center;
  transition: box-shadow var(--transition-base), transform 0.3s ease;
}

.site-header .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.site-header.is-scrolled {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.site-header.is-hidden {
  transform: translateY(-100%);
}

/* Logo */
.site-logo {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.site-logo a {
  display: flex;
  align-items: center;
}

.site-logo img {
  height: 50px;
  width: auto;
}

.site-logo__text {
  font-family: var(--font-heading);
  font-size: var(--text-xl);
  font-weight: var(--weight-black);
  color: var(--color-primary);
  text-decoration: none;
  letter-spacing: var(--tracking-tight);
}

.site-logo__text:hover {
  color: var(--color-primary);
}

.site-logo__text span {
  color: var(--color-accent);
}

/* Primary Navigation */
.primary-nav {
  display: flex;
  align-items: center;
}

.primary-nav__list {
  display: flex;
  align-items: center;
  gap: var(--space-xl);
  list-style: none;
  margin: 0;
  padding: 0;
}

.primary-nav__item {
  position: relative;
}

.primary-nav__link {
  font-family: var(--font-heading);
  font-size: var(--text-sm);
  font-weight: var(--weight-bold);
  color: var(--color-text);
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: var(--tracking-wide);
  padding: var(--space-sm) 0;
  transition: color var(--transition-fast);
  position: relative;
}

.primary-nav__link::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 2px;
  background-color: var(--color-accent);
  transition: width var(--transition-base);
}

.primary-nav__link:hover,
.primary-nav__item.current-menu-item > .primary-nav__link,
.primary-nav__item.current_page_item > .primary-nav__link {
  color: var(--color-primary);
}

.primary-nav__link:hover::after,
.primary-nav__item.current-menu-item > .primary-nav__link::after,
.primary-nav__item.current_page_item > .primary-nav__link::after {
  width: 100%;
}

/* Header CTA button */
.header-cta {
  margin-left: var(--space-lg);
}

/* Hamburger / Menu Toggle */
.menu-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 44px;
  height: 44px;
  background: none;
  border: none;
  cursor: pointer;
  z-index: calc(var(--z-overlay) + 1);
  padding: 8px;
}

.menu-toggle__bar {
  display: block;
  width: 24px;
  height: 2px;
  background-color: var(--color-primary);
  border-radius: 2px;
  transition:
    transform var(--transition-base),
    opacity var(--transition-base);
}

/* Hamburger open state (improved animation) */
.menu-toggle[aria-expanded="true"] .menu-toggle__bar:nth-child(1) {
  transform: rotate(45deg) translate(5px, 5px);
}

.menu-toggle[aria-expanded="true"] .menu-toggle__bar:nth-child(2) {
  opacity: 0;
}

.menu-toggle[aria-expanded="true"] .menu-toggle__bar:nth-child(3) {
  transform: rotate(-45deg) translate(6px, -6px);
}

/* Mobile nav overlay (improved version from sub-agent) */
.mobile-nav-overlay {
  position: fixed;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 9999;
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--transition-base), visibility var(--transition-base);
}

.mobile-nav-overlay.is-active {
  opacity: 1;
  visibility: visible;
}

.mobile-nav {
  position: absolute;
  right: 0;
  top: 0;
  width: 300px;
  max-width: 85vw;
  height: 100%;
  background: #fff;
  padding: 2rem 1.5rem;
  transform: translateX(100%);
  transition: transform 0.3s ease;
  overflow-y: auto;
  box-shadow: -4px 0 20px rgba(0, 0, 0, 0.1);
}

.mobile-nav-overlay.is-active .mobile-nav {
  transform: translateX(0);
}

.mobile-nav__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 2rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--color-border);
}

.mobile-nav__title {
  font-family: var(--font-heading);
  font-weight: 700;
  color: var(--color-primary);
  font-size: 1.125rem;
}

.mobile-nav__close {
  background: none;
  border: none;
  padding: 0.5rem;
  cursor: pointer;
  color: var(--color-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.2s;
}

.mobile-nav__close:hover {
  color: var(--color-primary-light);
}

.mobile-nav__close svg {
  width: 24px;
  height: 24px;
}

.mobile-nav__list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.mobile-nav__list li {
  border-bottom: 1px solid var(--color-border-light);
}

.mobile-nav__list li:last-child {
  border-bottom: none;
}

.mobile-nav__list a {
  display: block;
  padding: 1rem 0;
  color: var(--color-primary);
  font-weight: 500;
  text-decoration: none;
  font-size: 1rem;
  transition: color 0.2s, padding-left 0.2s;
}

.mobile-nav__list a:hover,
.mobile-nav__list a.is-active {
  color: var(--color-primary-light);
  padding-left: 0.5rem;
}

.mobile-nav__list .menu-item-has-children {
  position: relative;
}

.mobile-nav__list .menu-item-has-children > a::after {
  content: '';
  display: inline-block;
  width: 6px;
  height: 6px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  margin-left: 0.5rem;
  transition: transform 0.2s;
}

.mobile-nav__list .menu-item-has-children.is-open > a::after {
  transform: rotate(-135deg);
}

.mobile-nav__list .sub-menu {
  display: none;
  padding-left: 1rem;
  margin-top: 0.5rem;
}

.mobile-nav__list .menu-item-has-children.is-open > .sub-menu {
  display: block;
}

.mobile-nav__list .sub-menu a {
  font-size: 0.9375rem;
  padding: 0.75rem 0;
  color: var(--color-text-body);
}

.mobile-nav__footer {
  margin-top: 2rem;
  padding-top: 2rem;
  border-top: 1px solid var(--color-border);
}

/* Prevent body scroll when mobile nav is open */
body.nav-open {
  overflow: hidden;
}

/* Language switcher in header */
.header-lang {
  margin-left: var(--space-md);
}

/* Header Actions (lang switcher + hamburger wrapper) */
.header-actions {
  display: flex;
  align-items: center;
  gap: var(--space-md);
}

/* --- Language Switcher --- */
.language-switcher {
  display: flex;
  align-items: center;
  gap: 2px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  overflow: hidden;
}

.language-switcher__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 10px;
  font-family: var(--font-heading);
  font-size: var(--text-xs);
  font-weight: var(--weight-bold);
  color: var(--color-text-muted);
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: var(--tracking-wide);
  transition: background-color var(--transition-fast), color var(--transition-fast);
}

.language-switcher__link:hover {
  background-color: var(--color-bg-alt);
  color: var(--color-primary);
}

.language-switcher__link.is-active {
  background-color: var(--color-primary);
  color: var(--color-text-inverse);
}

.language-switcher__divider {
  width: 1px;
  height: 20px;
  background-color: var(--color-border);
}

/* ===================
   HERO SECTION (Figma-matched version)
   =================== */

.hero {
  background: #FFFFFF;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.hero__container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 3rem;
  position: relative;
  z-index: 2;
}

.hero__content {
  max-width: 600px;
}

.hero__label {
  text-transform: uppercase;
  letter-spacing: 3px;
  font-size: 0.8125rem;
  color: var(--color-primary);
  font-weight: var(--weight-bold);
  margin-bottom: 1.5rem;
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.hero__title {
  font-size: clamp(2.5rem, 5vw, 3.5rem);
  font-weight: 800;
  color: var(--color-primary);
  line-height: 1.1;
  margin-bottom: 1.5rem;
  font-family: var(--font-heading);
}

.hero__subtitle {
  font-size: 1.125rem;
  color: var(--color-text-body);
  line-height: 1.6;
  max-width: 480px;
  margin-bottom: 2rem;
}

.hero__cta,
.hero__actions {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  flex-wrap: wrap;
}

.hero__visual {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 400px;
}

/* Button text variant (used in hero) */
.btn--text {
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
  background: none;
  border: none;
  color: var(--color-primary);
  font-family: var(--font-heading);
  font-size: var(--text-sm);
  font-weight: var(--weight-medium);
  padding: 0;
  text-decoration: none;
  transition: color var(--transition-fast);
}

.btn--text:hover {
  color: var(--color-primary-light);
}

.btn--text svg {
  transition: transform var(--transition-fast);
}

.btn--text:hover svg {
  transform: translateX(4px);
}

/* Page hero (inner pages) */
.page-hero {
  background-color: var(--color-primary);
  padding: var(--space-3xl) 0;
  text-align: center;
}

.page-hero .page-title {
  font-size: var(--text-4xl);
  font-weight: var(--weight-black);
  color: var(--color-text-inverse);
  margin-bottom: var(--space-sm);
}

.page-hero .page-subtitle {
  font-size: var(--text-lg);
  color: rgba(255, 255, 255, 0.8);
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}

.page-header {
  background: var(--color-primary);
  color: #fff;
  padding: 5rem 0 3rem;
  text-align: center;
}

.page-header__title {
  color: #fff;
  font-size: 3rem;
  font-weight: 700;
  margin-bottom: 1rem;
  font-family: var(--font-heading);
}

.page-header__subtitle {
  color: rgba(255, 255, 255, 0.9);
  font-size: 1.25rem;
  max-width: 700px;
  margin: 0 auto;
}

/* ===================
   STATS BAR (Sub-agent improved version)
   =================== */

.stats-bar {
  padding: 3rem 0;
  border-top: 1px solid var(--color-border);
  background: #FFFFFF;
}

.stats-bar .container {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-3xl);
}

.stats-bar__inner {
  display: flex;
  justify-content: flex-start;
  gap: 4rem;
  flex-wrap: wrap;
}

.stats-bar__item,
.stat-item {
  flex: 0 0 auto;
  text-align: center;
}

.stats-bar__number,
.stat-item__number {
  font-size: 2.5rem;
  font-weight: 800;
  color: var(--color-primary);
  line-height: 1;
  margin-bottom: 0.5rem;
  font-family: var(--font-heading);
  display: block;
}

.stats-bar__label,
.stat-item__label {
  text-transform: uppercase;
  letter-spacing: 2px;
  font-size: 0.75rem;
  color: var(--color-text-body);
  font-weight: var(--weight-medium);
  display: block;
}

.stats-bar__divider {
  width: 1px;
  height: 40px;
  background-color: var(--color-border);
  flex-shrink: 0;
}

/* ===================
   EXPERTISE BANNER (Sub-agent version)
   =================== */

.expertise-banner {
  background: var(--color-primary);
  padding: 2.5rem 0;
  text-align: center;
}

.expertise-banner .container {
  text-align: right;
}

.expertise-banner__label {
  color: rgba(255, 255, 255, 0.6);
  text-transform: uppercase;
  letter-spacing: 3px;
  font-size: 0.8125rem;
  font-weight: var(--weight-bold);
  margin-bottom: 0.5rem;
  display: block;
}

.expertise-banner__heading {
  color: #fff;
  font-size: 1.75rem;
  font-weight: 700;
  margin: 0;
  font-family: var(--font-heading);
}

/* --- Grid Layouts (content-specific) --- */
.practices-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
  padding: 3rem 0;
}

.team-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  padding: 3rem 0;
}

.blog-grid {
  display: grid;
  gap: var(--space-lg);
}

.blog-grid--3 {
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  padding: 3rem 0;
}

.blog-grid--2 {
  grid-template-columns: repeat(2, 1fr);
}

/* --- Section Action (View All buttons) --- */
.section-action {
  text-align: center;
  margin-top: var(--space-2xl);
}

/* --- Section Alternate Background --- */
.section--alt {
  background-color: var(--color-bg-alt);
}

/* ===================
   PRACTICE AREA CARDS (Sub-agent improved version with icon support)
   =================== */

.card-practice {
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  transition: all 0.3s ease;
  position: relative;
}

.card-practice::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 0;
  background: var(--color-primary);
  border-radius: 8px 8px 0 0;
  transition: height 0.3s ease;
}

.card-practice:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}

.card-practice:hover::before {
  height: 3px;
}

.card-practice__link {
  display: flex;
  flex-direction: column;
  padding: 1.5rem;
  min-height: 160px;
  text-decoration: none;
  color: inherit;
  position: relative;
  z-index: 1;
}

.card-practice__icon {
  color: var(--color-primary);
  margin-bottom: 1rem;
  flex-shrink: 0;
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgba(0, 40, 113, 0.08);
  border-radius: var(--radius-md);
  transition: background-color var(--transition-base);
}

.card-practice:hover .card-practice__icon {
  background-color: var(--color-primary);
  color: var(--color-text-inverse);
}

.card-practice__icon svg,
.card-practice__icon img {
  width: 28px;
  height: 28px;
  stroke-width: 1.5;
  display: block;
}

.card-practice__title {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--color-primary);
  margin-bottom: auto;
  line-height: 1.4;
  font-family: var(--font-heading);
  transition: color var(--transition-fast);
}

.card-practice:hover .card-practice__title {
  color: var(--color-primary);
}

.card-practice__desc {
  font-size: var(--text-sm);
  color: var(--color-text-body);
  line-height: var(--leading-normal);
  flex-grow: 1;
  margin-bottom: var(--space-lg);
}

.card-practice__link-text {
  text-transform: uppercase;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 1px;
  color: var(--color-primary);
  display: flex;
  align-items: center;
  gap: 0.25rem;
  margin-top: 1rem;
  transition: gap 0.2s ease;
}

.card-practice:hover .card-practice__link-text {
  gap: 0.5rem;
}

.card-practice__link-text svg {
  width: 12px;
  height: 12px;
}

/* ===================
   TEAM CARDS (Sub-agent improved flip version)
   =================== */

.card-team {
  perspective: 1000px;
  height: 380px;
}

.card-team__inner {
  position: relative;
  width: 100%;
  height: 100%;
  transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
  transform-style: preserve-3d;
}

.card-team:hover .card-team__inner {
  transform: rotateY(180deg);
}

.card-team__front,
.card-team__back {
  position: absolute;
  width: 100%;
  height: 100%;
  backface-visibility: hidden;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: var(--shadow-md);
}

/* Front */
.card-team__front {
  background: #fff;
  border: 1px solid var(--color-border);
  display: flex;
  flex-direction: column;
}

.card-team__photo {
  width: 100%;
  height: 260px;
  object-fit: cover;
  background-color: var(--color-bg-alt);
}

.card-team__photo-placeholder {
  background: var(--color-border);
  display: flex;
  align-items: center;
  justify-content: center;
  height: 260px;
  color: var(--color-text-muted);
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 1px;
  width: 100%;
  background-color: var(--color-primary);
  color: rgba(255, 255, 255, 0.3);
}

.card-team__photo-placeholder svg {
  width: 64px;
  height: 64px;
  opacity: 0.3;
}

.card-team__info {
  padding: 1rem 1.5rem;
  background: #fff;
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
}

.card-team__name {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--color-primary);
  margin-bottom: 0.25rem;
  font-family: var(--font-heading);
}

.card-team__position {
  font-size: 0.875rem;
  color: var(--color-text-body);
  color: var(--color-accent-dark);
  font-weight: var(--weight-semibold);
}

/* Back */
.card-team__back {
  background: var(--color-primary);
  color: #fff;
  transform: rotateY(180deg);
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.card-team__bio,
.card-team__back-bio {
  font-size: 0.875rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: 1rem;
  flex-grow: 1;
}

.card-team__expertise,
.card-team__back-expertise {
  margin-bottom: 1rem;
}

.card-team__expertise-label,
.card-team__back-expertise-title {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 0.5rem;
  color: rgba(255, 255, 255, 0.7);
  color: var(--color-accent);
}

.card-team__expertise-list,
.card-team__back-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.card-team__expertise-tag,
.card-team__back-tag {
  font-size: 0.75rem;
  padding: 0.25rem 0.75rem;
  background: rgba(255, 255, 255, 0.2);
  border-radius: 12px;
  color: #fff;
  color: rgba(255, 255, 255, 0.7);
  background-color: rgba(255, 255, 255, 0.1);
  border-radius: var(--radius-sm);
}

.card-team__linkedin,
.card-team__back-links {
  display: flex;
  gap: 1rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  color: var(--color-accent);
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  transition: color var(--transition-fast);
  margin-top: auto;
}

.card-team__linkedin:hover,
.card-team__back-link:hover {
  color: var(--color-accent-light);
}

.card-team__back-link {
  color: #fff;
  font-size: 0.875rem;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  transition: color 0.2s;
}

.card-team__back-link:hover {
  color: var(--color-accent);
}

.card-team__back-link svg {
  width: 16px;
  height: 16px;
}

/* ===================
   BLOG CARDS (Sub-agent improved version)
   =================== */

.card-blog {
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  overflow: hidden;
  transition: all 0.3s ease;
  display: flex;
  flex-direction: column;
}

.card-blog:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}

.card-blog__image-wrapper {
  width: 100%;
  height: 200px;
  overflow: hidden;
  background: var(--color-bg-alt);
  position: relative;
}

.card-blog__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
  background-color: var(--color-bg-alt);
}

.card-blog:hover .card-blog__image {
  transform: scale(1.05);
}

.card-blog__image-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-border);
  color: var(--color-text-muted);
}

.card-blog__image-placeholder svg {
  width: 48px;
  height: 48px;
  opacity: 0.4;
}

.card-blog__body {
  padding: 1.5rem;
  flex-grow: 1;
  display: flex;
  flex-direction: column;
}

.card-blog__category {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--color-accent);
  font-weight: 600;
  margin-bottom: 0.75rem;
  display: inline-block;
  font-weight: var(--weight-bold);
  color: var(--color-accent-dark);
  background-color: rgba(212, 168, 83, 0.12);
  padding: 2px var(--space-sm);
  border-radius: var(--radius-sm);
}

.card-blog__title {
  margin-bottom: 0.75rem;
  font-family: var(--font-heading);
  font-size: var(--text-lg);
  font-weight: var(--weight-bold);
  color: var(--color-text);
  line-height: var(--leading-snug);
}

.card-blog__title a {
  color: var(--color-primary);
  font-weight: 700;
  font-size: 1.125rem;
  text-decoration: none;
  line-height: 1.4;
  transition: color 0.2s;
  font-family: var(--font-heading);
}

.card-blog__title a:hover {
  color: var(--color-primary-light);
  color: var(--color-primary);
}

.card-blog__excerpt {
  color: var(--color-text-body);
  font-size: 0.875rem;
  line-height: 1.6;
  margin: 0.75rem 0;
  flex-grow: 1;
  margin-bottom: var(--space-md);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.card-blog__meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 1rem;
  border-top: 1px solid var(--color-border-light);
  margin-top: auto;
}

.card-blog__date {
  font-size: 0.8125rem;
  color: var(--color-text-muted);
}

.card-blog__read-more {
  color: var(--color-primary);
  font-size: 0.8125rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 0.25rem;
  text-decoration: none;
  transition: gap 0.2s ease;
  font-family: var(--font-heading);
  font-weight: var(--weight-bold);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wide);
  display: inline-flex;
}

.card-blog__read-more:hover {
  gap: 0.5rem;
  color: var(--color-accent);
}

.card-blog__read-more svg {
  width: 14px;
  height: 14px;
}

/* ===================
   CONTACT CTA SECTION (Sub-agent version)
   =================== */

.contact-cta,
.section-cta {
  background: var(--color-primary);
  color: #fff;
  padding: 5rem 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.section-cta::before {
  content: '';
  position: absolute;
  top: -50%;
  right: -20%;
  width: 500px;
  height: 500px;
  background: radial-gradient(circle, rgba(212, 168, 83, 0.1) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}

.contact-cta__title,
.section-cta__title {
  color: #fff;
  font-size: 2.5rem;
  font-weight: 700;
  margin-bottom: 1.5rem;
  font-family: var(--font-heading);
  font-weight: var(--weight-extrabold);
  margin-bottom: var(--space-md);
}

.contact-cta__subtitle,
.section-cta__text {
  color: rgba(255, 255, 255, 0.9);
  font-size: 1.125rem;
  max-width: 600px;
  margin: 0 auto 2rem;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: var(--space-2xl);
}

.contact-cta__buttons,
.section-cta__actions {
  display: flex;
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
  align-items: center;
}

/* --- Breadcrumbs --- */
.breadcrumbs {
  background-color: var(--color-bg-alt);
  padding: var(--space-md) 0;
  border-bottom: 1px solid var(--color-border);
}

.breadcrumbs__list {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.breadcrumbs__item {
  display: flex;
  align-items: center;
  font-size: var(--text-sm);
  gap: 0.5rem;
  color: var(--color-text-body);
}

.breadcrumbs__item a,
.breadcrumbs__link {
  color: var(--color-text-muted);
  text-decoration: none;
  transition: color var(--transition-fast);
}

.breadcrumbs__item a:hover,
.breadcrumbs__link:hover {
  color: var(--color-primary);
}

.breadcrumbs__sep,
.breadcrumbs__separator {
  color: var(--color-text-muted);
  margin: 0 var(--space-sm);
  user-select: none;
}

.breadcrumbs__current {
  color: var(--color-text);
  font-weight: var(--weight-semibold);
  color: var(--color-text-muted);
}

/* --- Forms (FROM ORIGINAL - CRITICAL) --- */
.form-group {
  margin-bottom: var(--space-lg);
}

.form-group label {
  display: block;
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  color: var(--color-text);
  margin-bottom: var(--space-xs);
}

.form-group input[type="text"],
.form-group input[type="email"],
.form-group input[type="tel"],
.form-group input[type="url"],
.form-group input[type="number"],
.form-group textarea,
.form-group select,
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 textarea,
.wpcf7 select {
  width: 100%;
  padding: 0.75rem 1rem;
  font-size: var(--text-base);
  color: var(--color-text);
  background-color: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus,
.wpcf7 input:focus,
.wpcf7 textarea:focus,
.wpcf7 select:focus {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(0, 40, 113, 0.1);
  outline: none;
}

.form-group textarea,
.wpcf7 textarea {
  min-height: 140px;
  resize: vertical;
}

.wpcf7-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 2rem;
  font-family: var(--font-heading);
  font-size: var(--text-sm);
  font-weight: var(--weight-bold);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wide);
  color: var(--color-text-inverse);
  background-color: var(--color-primary);
  border: 2px solid var(--color-primary);
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: background-color var(--transition-base), box-shadow var(--transition-base);
}

.wpcf7-submit:hover {
  background-color: var(--color-primary-light);
  box-shadow: var(--shadow-md);
}

/* CF7 validation */
.wpcf7-not-valid-tip {
  font-size: var(--text-sm);
  color: var(--color-error);
  margin-top: var(--space-xs);
}

.wpcf7-response-output {
  padding: var(--space-md) var(--space-lg);
  border-radius: var(--radius-md);
  font-size: var(--text-sm);
  margin-top: var(--space-lg);
}

/* Contact page specific */
.contact-info {
  padding-right: var(--space-2xl);
}

.contact-details {
  margin-top: var(--space-xl);
}

.contact-item {
  display: flex;
  align-items: flex-start;
  gap: var(--space-md);
  padding: var(--space-md) 0;
  border-bottom: 1px solid var(--color-border);
}

.contact-item:last-child {
  border-bottom: none;
}

.contact-item svg {
  flex-shrink: 0;
  margin-top: 2px;
  color: var(--color-accent);
}

.contact-form-wrap {
  background-color: var(--color-bg-alt);
  padding: var(--space-2xl);
  border-radius: var(--radius-lg);
}

/* Working hours */
.working-hours {
  margin-top: var(--space-xl);
}

.working-hours__title {
  font-size: var(--text-base);
  font-weight: var(--weight-bold);
  color: var(--color-text);
  margin-bottom: var(--space-md);
}

.working-hours__item {
  display: flex;
  justify-content: space-between;
  padding: var(--space-xs) 0;
  font-size: var(--text-sm);
}

.working-hours__day {
  color: var(--color-text-body);
}

.working-hours__time {
  font-weight: var(--weight-semibold);
  color: var(--color-text);
}

/* Contact hours */
.contact-hours {
  margin-top: var(--space-2xl);
  padding-top: var(--space-xl);
  border-top: 1px solid var(--color-border);
}

.contact-hours__title {
  font-family: var(--font-heading);
  font-size: var(--text-lg);
  font-weight: var(--weight-bold);
  color: var(--color-text);
  margin-bottom: var(--space-md);
}

.contact-hours__list {
  margin: 0;
}

.contact-hours__row {
  display: flex;
  justify-content: space-between;
  padding: var(--space-sm) 0;
  border-bottom: 1px solid var(--color-border);
}

.contact-hours__row:last-child {
  border-bottom: none;
}

.contact-hours__day {
  color: var(--color-text-body);
  font-size: var(--text-sm);
}

.contact-hours__time {
  font-weight: var(--weight-semibold);
  color: var(--color-text);
  font-size: var(--text-sm);
}

/* Contact form fields */
.contact-form__field {
  margin-bottom: var(--space-lg);
}

.contact-form__label {
  display: block;
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  color: var(--color-text);
  margin-bottom: var(--space-xs);
}

.contact-form__label .required {
  color: var(--color-error, #dc3545);
}

.contact-form__input,
.contact-form__textarea {
  width: 100%;
  padding: 0.75rem 1rem;
  font-size: var(--text-base);
  color: var(--color-text);
  background-color: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.contact-form__input:focus,
.contact-form__textarea:focus {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(0, 40, 113, 0.1);
  outline: none;
}

.contact-form__textarea {
  min-height: 140px;
  resize: vertical;
}

/* Map */
.map-container {
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-md);
}

.map-container iframe {
  display: block;
  width: 100%;
  border: 0;
}

/* --- Values Grid (About page - FROM ORIGINAL) --- */
.values-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-2xl);
}

.value-card {
  text-align: center;
  padding: var(--space-xl);
}

.value-card__icon {
  width: 64px;
  height: 64px;
  margin: 0 auto var(--space-lg);
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgba(0, 40, 113, 0.06);
  border-radius: var(--radius-full);
  color: var(--color-primary);
}

.value-card__title {
  font-family: var(--font-heading);
  font-size: var(--text-lg);
  font-weight: var(--weight-bold);
  color: var(--color-text);
  margin-bottom: var(--space-sm);
}

.value-card__desc {
  font-size: var(--text-sm);
  color: var(--color-text-body);
  line-height: var(--leading-normal);
}

/* --- Timeline (About page - FROM ORIGINAL) --- */
.timeline {
  position: relative;
  padding-left: var(--space-2xl);
}

.timeline::before {
  content: '';
  position: absolute;
  left: 10px;
  top: 0;
  bottom: 0;
  width: 2px;
  background-color: var(--color-border);
}

.timeline__item {
  position: relative;
  padding-bottom: var(--space-2xl);
  padding-left: var(--space-xl);
}

.timeline__item:last-child {
  padding-bottom: 0;
}

.timeline__dot {
  position: absolute;
  left: calc(-1 * var(--space-2xl) + 4px);
  top: 4px;
  width: 14px;
  height: 14px;
  background-color: var(--color-accent);
  border-radius: var(--radius-full);
  border: 3px solid var(--color-bg);
  box-shadow: 0 0 0 2px var(--color-accent);
}

.timeline__year {
  font-family: var(--font-heading);
  font-size: var(--text-sm);
  font-weight: var(--weight-bold);
  color: var(--color-accent-dark);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wide);
  margin-bottom: var(--space-xs);
}

.timeline__text {
  font-size: var(--text-base);
  color: var(--color-text-body);
  line-height: var(--leading-normal);
}

/* --- Back to Top Button (FROM ORIGINAL) --- */
.back-to-top {
  position: fixed;
  bottom: var(--space-xl);
  right: var(--space-xl);
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--color-primary);
  color: var(--color-text-inverse);
  border-radius: var(--radius-full);
  box-shadow: var(--shadow-lg);
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--transition-base), visibility var(--transition-base), transform var(--transition-fast);
  z-index: var(--z-dropdown);
  border: none;
}

.back-to-top.is-visible {
  opacity: 1;
  visibility: visible;
}

.back-to-top:hover {
  transform: translateY(-2px);
  background-color: var(--color-primary-light);
}

/* --- Pagination --- */
.pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-sm);
  margin-top: var(--space-3xl);
}

.pagination .page-numbers,
.pagination__link,
.pagination__current {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  color: var(--color-text-body);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  text-decoration: none;
  transition: background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
}

.pagination .page-numbers:hover,
.pagination__link:hover {
  background-color: var(--color-bg-alt);
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.pagination .page-numbers.current,
.pagination__current {
  background-color: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-text-inverse);
}

/* ===================
   CONTENT BLOCKS (Sub-agent version)
   =================== */

.content-block {
  padding: 4rem 0;
}

.content-block__title {
  font-size: 2rem;
  font-weight: 700;
  color: var(--color-primary);
  margin-bottom: 1.5rem;
  font-family: var(--font-heading);
}

.content-block__content {
  font-size: 1rem;
  line-height: 1.8;
  color: var(--color-text-body);
}

.content-block__content h2,
.content-block__content h3,
.content-block__content h4 {
  margin-top: 2rem;
  margin-bottom: 1rem;
}

.content-block__content ul,
.content-block__content ol {
  list-style: disc;
  margin-left: 1.5rem;
  margin-bottom: 1.5rem;
}

.content-block__content ol {
  list-style: decimal;
}

.content-block__content li {
  margin-bottom: 0.5rem;
  line-height: 1.8;
}

/* ===================
   SIDEBAR LAYOUT (Sub-agent version)
   =================== */

.sidebar-layout {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 3rem;
  padding: 3rem 0;
}

.sidebar-layout__main {
  min-width: 0;
}

.sidebar-layout__sidebar {
  position: sticky;
  top: calc(var(--header-height) + 2rem);
  align-self: start;
}

.sidebar-widget {
  background: var(--color-bg-alt);
  border: 1px solid var(--color-border);
  border-radius: 8px;
  padding: 1.5rem;
  margin-bottom: 2rem;
}

.sidebar-widget__title {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--color-primary);
  margin-bottom: 1rem;
  font-family: var(--font-heading);
}

.sidebar-widget__list {
  list-style: none;
}

.sidebar-widget__list-item {
  padding: 0.5rem 0;
  border-bottom: 1px solid var(--color-border-light);
}

.sidebar-widget__list-item:last-child {
  border-bottom: none;
}

.sidebar-widget__link {
  color: var(--color-text-body);
  text-decoration: none;
  transition: color 0.2s;
  font-size: 0.9375rem;
}

.sidebar-widget__link:hover {
  color: var(--color-primary);
}

/* ===================
   ARCHIVE HEADER (Sub-agent version)
   =================== */

.archive-header {
  padding: 3rem 0 2rem;
  border-bottom: 1px solid var(--color-border);
  margin-bottom: 3rem;
}

.archive-header__title {
  font-size: 2.5rem;
  font-weight: 700;
  color: var(--color-primary);
  margin-bottom: 0.5rem;
  font-family: var(--font-heading);
}

.archive-header__description {
  font-size: 1.125rem;
  color: var(--color-text-body);
  line-height: 1.6;
}

/* ===================
   NO RESULTS / 404 (Sub-agent version)
   =================== */

.no-results,
.error-404 {
  text-align: center;
  padding: 5rem 0;
}

.no-results__title,
.error-404__title {
  font-size: 3rem;
  font-weight: 700;
  color: var(--color-primary);
  margin-bottom: 1rem;
  font-family: var(--font-heading);
}

.no-results__message,
.error-404__message {
  font-size: 1.125rem;
  color: var(--color-text-body);
  margin-bottom: 2rem;
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}

.error-404__number {
  font-size: 8rem;
  font-weight: 900;
  color: var(--color-border);
  line-height: 1;
  margin-bottom: 1rem;
  font-family: var(--font-heading);
}

/* --- Text Logo Fallback (no custom logo uploaded) --- */
.site-logo__monogram {
  font-family: var(--font-heading);
  font-size: var(--text-2xl);
  font-weight: var(--weight-black);
  color: var(--color-accent);
  margin-right: var(--space-sm);
  line-height: 1;
}

.site-logo__name {
  font-family: var(--font-heading);
  font-size: var(--text-base);
  font-weight: var(--weight-bold);
  color: var(--color-primary);
  line-height: 1.2;
}

/* --- Footer (FROM ORIGINAL - CRITICAL SECTION) --- */
.site-footer {
  background-color: var(--color-primary-dark);
  color: rgba(255, 255, 255, 0.85);
  padding-top: var(--space-4xl);
  padding-bottom: var(--space-lg);
}

.site-footer a {
  color: rgba(255, 255, 255, 0.75);
  transition: color var(--transition-fast);
}

.site-footer a:hover {
  color: var(--color-accent);
}

.footer-widgets {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: var(--space-2xl);
  margin-bottom: var(--space-3xl);
}

.footer-col h4,
.footer-col .widget-title,
.footer-col__title {
  font-family: var(--font-heading);
  font-size: var(--text-base);
  font-weight: var(--weight-bold);
  color: var(--color-text-inverse);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wide);
  margin-bottom: var(--space-lg);
  position: relative;
  padding-bottom: var(--space-sm);
}

.footer-col .widget-title::after,
.footer-col__title::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 30px;
  height: 2px;
  background-color: var(--color-accent);
}

.footer-col p,
.footer-col__desc {
  color: rgba(255, 255, 255, 0.7);
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
}

.footer-col ul,
.footer-nav {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-col ul li,
.footer-nav li {
  margin-bottom: var(--space-sm);
}

.footer-col ul li a,
.footer-nav li a {
  font-size: var(--text-sm);
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
}

.footer-logo {
  margin-bottom: var(--space-lg);
}

.footer-logo img {
  height: 40px;
  width: auto;
}

/* Text logo in footer */
.footer-logo-text {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  text-decoration: none;
  margin-bottom: var(--space-lg);
}

.footer-logo-text__monogram {
  font-family: var(--font-heading);
  font-size: var(--text-2xl);
  font-weight: var(--weight-black);
  color: var(--color-accent);
  line-height: 1;
}

.footer-logo-text__name {
  font-family: var(--font-heading);
  font-size: var(--text-base);
  font-weight: var(--weight-bold);
  color: var(--color-text-inverse);
  line-height: 1.2;
}

.footer-social {
  display: flex;
  gap: var(--space-md);
  margin-top: var(--space-lg);
}

.footer-social a,
.footer-social__link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: var(--radius-full);
  color: rgba(255, 255, 255, 0.7);
  transition: background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);
}

.footer-social a:hover,
.footer-social__link:hover {
  background-color: var(--color-accent);
  border-color: var(--color-accent);
  color: var(--color-primary-dark);
}

.footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.15);
  padding-top: var(--space-xl);
  padding-bottom: var(--space-md);
  margin-top: var(--space-xl);
}

.footer-bottom .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.footer-bottom p,
.footer-copyright {
  font-size: var(--text-sm);
  color: rgba(255, 255, 255, 0.5);
  margin: 0;
}

/* Footer bottom layout */
.footer-bottom__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--space-lg);
}

.footer-bottom__contact {
  display: flex;
  align-items: center;
  gap: var(--space-xl);
  flex-wrap: wrap;
}

.footer-bottom__item {
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
  font-size: var(--text-sm);
  color: rgba(255, 255, 255, 0.6);
  text-decoration: none;
  transition: color var(--transition-fast);
}

a.footer-bottom__item:hover {
  color: var(--color-accent);
}

.footer-bottom__right {
  display: flex;
  align-items: center;
  gap: var(--space-xl);
}

/* --- Single Practice Area Page (FROM ORIGINAL) --- */
.page-hero--practice {
  position: relative;
  overflow: hidden;
}

.page-hero--practice .page-hero__bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #002871 0%, #001a4d 100%);
  z-index: 0;
}

.page-hero--practice .page-hero__content {
  position: relative;
  z-index: 1;
}

.practice-hero__inner {
  display: flex;
  align-items: center;
  gap: var(--space-xl);
  padding: var(--space-xl) 0;
}

.practice-hero__icon {
  width: 72px;
  height: 72px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgba(255, 255, 255, 0.1);
  border-radius: var(--radius-lg);
  flex-shrink: 0;
  color: var(--color-accent);
}

.practice-hero__icon img,
.practice-hero__icon svg {
  width: 36px;
  height: 36px;
}

.page-hero__title {
  font-size: var(--text-4xl);
  font-weight: var(--weight-black);
  color: var(--color-text-inverse);
  margin-bottom: var(--space-sm);
}

.page-hero__subtitle {
  font-size: var(--text-lg);
  color: rgba(255, 255, 255, 0.8);
  max-width: 600px;
}

/* Content area */
.content-area__body {
  font-size: var(--text-base);
  line-height: var(--leading-relaxed);
  color: var(--color-text-body);
}

.content-area__body h2,
.content-area__body h3 {
  margin-top: var(--space-2xl);
  margin-bottom: var(--space-md);
}

.content-area__body ul,
.content-area__body ol {
  list-style: disc;
  padding-left: var(--space-xl);
  margin-bottom: var(--space-lg);
}

.content-area__body li {
  margin-bottom: var(--space-sm);
}

.content-area__featured {
  margin-bottom: var(--space-2xl);
  border-radius: var(--radius-lg);
  overflow: hidden;
}

/* Key services list */
.services-list {
  max-width: 800px;
  margin: 0 auto;
}

.service-item {
  display: flex;
  align-items: flex-start;
  gap: var(--space-lg);
  padding: var(--space-lg) 0;
  border-bottom: 1px solid var(--color-border);
}

.service-item:last-child {
  border-bottom: none;
}

.service-item__marker {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgba(0, 40, 113, 0.08);
  border-radius: var(--radius-full);
  color: var(--color-primary);
}

.service-item__title {
  font-family: var(--font-heading);
  font-size: var(--text-lg);
  font-weight: var(--weight-bold);
  color: var(--color-text);
  margin-bottom: var(--space-xs);
}

.service-item__desc {
  font-size: var(--text-sm);
  color: var(--color-text-body);
  line-height: var(--leading-normal);
}

/* --- Single Team Member Profile (FROM ORIGINAL) --- */
.page-hero--member {
  padding: var(--space-xl) 0 var(--space-md);
  position: relative;
}

.page-hero--member .page-hero__bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #002871 0%, #001a4d 100%);
  z-index: 0;
}

.page-hero--member .container {
  position: relative;
  z-index: 1;
}

.member-profile {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: var(--space-3xl);
  align-items: start;
  margin-top: calc(-1 * var(--space-4xl));
}

.member-profile__img {
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-xl);
  width: 100%;
  height: auto;
}

.member-profile__placeholder {
  width: 100%;
  aspect-ratio: 1;
  background-color: var(--color-primary);
  border-radius: var(--radius-lg);
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.3);
  font-size: var(--text-4xl);
  font-weight: var(--weight-black);
  box-shadow: var(--shadow-xl);
}

.member-profile__name {
  font-size: var(--text-3xl);
  font-weight: var(--weight-black);
  color: var(--color-text);
  margin-bottom: var(--space-xs);
}

.member-profile__position {
  font-size: var(--text-lg);
  font-weight: var(--weight-semibold);
  color: var(--color-accent-dark);
  margin-bottom: var(--space-sm);
}

.member-profile__position-bg {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  margin-bottom: var(--space-lg);
}

.member-profile__contact {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-lg);
}

.member-contact__item {
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
  font-size: var(--text-sm);
  color: var(--color-text-body);
  text-decoration: none;
  transition: color var(--transition-fast);
}

.member-contact__item:hover {
  color: var(--color-primary);
}

.member-contact__item svg {
  color: var(--color-accent);
}

/* Member section titles */
.member-section__title {
  font-size: var(--text-2xl);
  font-weight: var(--weight-bold);
  color: var(--color-text);
  margin-bottom: var(--space-xl);
}

/* Expertise tags */
.expertise-tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
}

.expertise-tag {
  display: inline-flex;
  align-items: center;
  padding: var(--space-sm) var(--space-lg);
  background-color: rgba(0, 40, 113, 0.06);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-full);
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  color: var(--color-primary);
}

.expertise-tag a {
  color: inherit;
  text-decoration: none;
}

.expertise-tag a:hover {
  color: var(--color-accent);
}

/* Education list */
.education-item {
  display: flex;
  align-items: flex-start;
  gap: var(--space-xl);
  padding: var(--space-lg) 0;
  border-bottom: 1px solid var(--color-border);
}

.education-item:last-child {
  border-bottom: none;
}

.education-item__year {
  font-family: var(--font-heading);
  font-size: var(--text-sm);
  font-weight: var(--weight-bold);
  color: var(--color-accent-dark);
  min-width: 60px;
}

.education-item__degree {
  font-size: var(--text-lg);
  font-weight: var(--weight-bold);
  color: var(--color-text);
  margin-bottom: var(--space-xs);
}

.education-item__institution {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}

/* Languages */
.languages-list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-md);
}

.language-item {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  padding: var(--space-sm) var(--space-lg);
  background-color: var(--color-bg-alt);
  border-radius: var(--radius-sm);
}

.language-item__name {
  font-weight: var(--weight-semibold);
  color: var(--color-text);
}

.language-item__level {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}

/* Publications */
.publication-item {
  padding: var(--space-md) 0;
  border-bottom: 1px solid var(--color-border);
}

.publication-item:last-child {
  border-bottom: none;
}

.publication-item__title {
  font-weight: var(--weight-semibold);
  color: var(--color-text);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
}

a.publication-item__title:hover {
  color: var(--color-primary);
}

.publication-item__year {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  margin-left: var(--space-sm);
}

/* Content prose (used in about page) */
.content-prose {
  font-size: var(--text-base);
  line-height: var(--leading-relaxed);
  color: var(--color-text-body);
}

.content-prose p {
  margin-bottom: var(--space-md);
}

.content-prose ul,
.content-prose ol {
  list-style: disc;
  padding-left: var(--space-xl);
  margin-bottom: var(--space-lg);
}

.content-prose li {
  margin-bottom: var(--space-sm);
}

/* Breadcrumbs inside page-hero: transparent, no border */
.page-hero .breadcrumbs {
  background: transparent;
  border-bottom: none;
  padding: 0 0 var(--space-md) 0;
}
.page-hero .breadcrumbs__item,
.page-hero .breadcrumbs__item a,
.page-hero .breadcrumbs__current,
.page-hero .breadcrumbs__sep {
  color: rgba(255, 255, 255, 0.6);
}
.page-hero .breadcrumbs__item a:hover {
  color: #fff;
}
.page-hero .breadcrumbs .container {
  padding: 0;
  max-width: none;
}

/* Footer: 4-column layout with Contact column */
.footer-widgets {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: var(--space-2xl);
}

.footer-col--contact .footer-contact-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.footer-col--contact .footer-contact-list li {
  display: flex;
  align-items: flex-start;
  gap: var(--space-sm);
  font-size: var(--text-sm);
  color: rgba(255, 255, 255, 0.7);
  line-height: 1.5;
}

.footer-col--contact .footer-contact-list li svg {
  flex-shrink: 0;
  margin-top: 2px;
  opacity: 0.6;
}

.footer-col--contact .footer-contact-list li a {
  color: rgba(255, 255, 255, 0.7);
  text-decoration: none;
  transition: color 0.2s;
}

.footer-col--contact .footer-contact-list li a:hover {
  color: #fff;
}

/* Footer bottom: centered copyright only */
.footer-bottom__inner {
  justify-content: center;
  text-align: center;
}

@media (max-width: 768px) {
  .footer-widgets {
    grid-template-columns: 1fr;
    gap: var(--space-xl);
  }
}

@media (min-width: 769px) and (max-width: 1024px) {
  .footer-widgets {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-xl);
  }
}
/* ============================================
   NP-Law - Responsive Styles (responsive.css)
   Mobile-first breakpoints
   ============================================ */

/* --- Breakpoints ---
   Mobile: < 768px (default)
   Tablet: 768px - 1024px
   Desktop: > 1024px
*/

/* ===================
   TABLET & BELOW (max-width: 768px)
   =================== */

@media (max-width: 768px) {
  
  /* Container padding */
  :root {
    --container-pad: 1rem;
    --header-height: 70px;
  }
  
  /* Hero */
  .hero {
    min-height: auto;
  }

  .hero__container {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .hero__visual {
    display: none;
  }

  .hero__title {
    font-size: 2rem;
  }

  .hero__subtitle {
    font-size: 1rem;
  }

  .hero__cta {
    flex-direction: column;
    align-items: stretch;
  }

  .hero__cta .btn {
    width: 100%;
    justify-content: center;
  }

  /* Stats bar (standalone fallback) */
  .stats-bar {
    padding: 2rem 0;
  }

  .stats-bar__inner {
    flex-wrap: wrap;
    gap: 2rem;
    justify-content: center;
    text-align: center;
  }

  .stats-bar__item {
    flex: 0 0 calc(50% - 1rem);
  }

  /* Hero stats (integrated) */
  .hero__stats {
    padding: 2rem 0;
  }

  .hero__stats-inner {
    flex-wrap: wrap;
    gap: 1.5rem;
    justify-content: center;
  }

  .hero__stat-item {
    text-align: center;
    flex: 0 0 calc(50% - 1rem);
  }

  .hero__stat-number {
    font-size: 1.75rem;
  }
  
  /* Expertise banner */
  .expertise-banner {
    padding: 2rem 0;
  }
  
  .expertise-banner .container {
    text-align: center;
  }
  
  .expertise-banner__heading {
    font-size: 1.5rem;
  }
  
  /* Practice cards */
  .practices-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
    padding: 2rem 0;
  }
  
  .card-practice__link {
    padding: 1.25rem;
    min-height: 140px;
  }
  
  .card-practice__title {
    font-size: 0.875rem;
  }
  
  /* Team cards */
  .team-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
    padding: 2rem 0;
  }
  
  .card-team {
    height: 340px;
  }
  
  .card-team__photo-placeholder {
    height: 220px;
  }
  
  .card-team__name {
    font-size: 1rem;
  }
  
  .card-team__position {
    font-size: 0.8125rem;
  }
  
  .card-team__back {
    padding: 1.25rem;
  }
  
  .card-team__back-bio {
    font-size: 0.8125rem;
  }
  
  /* Blog cards */
  .blog-grid--3 {
    grid-template-columns: 1fr;
    gap: 1.5rem;
    padding: 2rem 0;
  }
  
  .card-blog__image-wrapper {
    height: 180px;
  }
  
  /* Contact CTA */
  .contact-cta {
    padding: 3rem 0;
  }
  
  .contact-cta__title {
    font-size: 2rem;
  }
  
  .contact-cta__subtitle {
    font-size: 1rem;
  }
  
  .contact-cta__buttons {
    flex-direction: column;
    align-items: stretch;
  }
  
  .contact-cta__buttons .btn {
    width: 100%;
  }
  
  /* Page header */
  .page-header {
    padding: 3rem 0 2rem;
  }
  
  .page-header__title {
    font-size: 2rem;
  }
  
  .page-header__subtitle {
    font-size: 1rem;
  }
  
  /* Sidebar layout */
  .sidebar-layout {
    grid-template-columns: 1fr;
    gap: 2rem;
    padding: 2rem 0;
  }
  
  .sidebar-layout__sidebar {
    position: static;
  }
  
  /* Section spacing */
  .section {
    padding-top: 3rem;
    padding-bottom: 3rem;
  }
  
  .section--sm {
    padding-top: 2rem;
    padding-bottom: 2rem;
  }
  
  .section--lg {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }
  
  /* Grid helpers */
  .grid-2,
  .grid-3,
  .grid-4 {
    grid-template-columns: 1fr;
  }
  
  /* Typography */
  h1 {
    font-size: 2rem;
  }
  
  h2 {
    font-size: 1.75rem;
  }
  
  h3 {
    font-size: 1.5rem;
  }
  
  h4 {
    font-size: 1.25rem;
  }
  
  /* Archive header */
  .archive-header {
    padding: 2rem 0 1.5rem;
    margin-bottom: 2rem;
  }
  
  .archive-header__title {
    font-size: 2rem;
  }
  
  .archive-header__description {
    font-size: 1rem;
  }
  
  /* Error 404 */
  .error-404 {
    padding: 3rem 0;
  }
  
  .error-404__number {
    font-size: 5rem;
  }
  
  .error-404__title {
    font-size: 2rem;
  }
  
  .error-404__message {
    font-size: 1rem;
  }

  /* Show mobile menu toggle */
  .menu-toggle {
    display: flex;
  }

  /* Hide desktop navigation */
  .primary-nav {
    display: none;
  }

  .header-cta {
    display: none;
  }

  /* Footer stacks */
  .footer-widgets {
    grid-template-columns: 1fr;
    gap: var(--space-2xl);
  }

  .footer-bottom .container,
  .footer-bottom__inner {
    flex-direction: column;
    text-align: center;
    gap: var(--space-sm);
  }

  .footer-bottom__contact {
    flex-direction: column;
    justify-content: center;
  }

  .footer-bottom__right {
    flex-direction: column;
  }

  /* Values grid */
  .values-grid {
    grid-template-columns: 1fr;
    gap: var(--space-xl);
  }

  /* Timeline */
  .timeline {
    padding-left: var(--space-xl);
  }

  /* Member profile: stack on mobile */
  .member-profile {
    grid-template-columns: 1fr;
    gap: var(--space-xl);
    margin-top: var(--space-lg);
  }

  .member-profile__photo {
    max-width: 200px;
    margin: 0 auto;
  }

  .practice-hero__inner {
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
  }

  /* Back to top */
  .back-to-top {
    bottom: var(--space-md);
    right: var(--space-md);
    width: 40px;
    height: 40px;
  }

  /* Contact info */
  .contact-info {
    padding-right: 0;
  }
}

/* ===================
   MOBILE ONLY (max-width: 480px)
   =================== */

@media (max-width: 480px) {
  
  /* Practice cards - single column */
  .practices-grid {
    grid-template-columns: 1fr;
  }
  
  /* Team cards - single column */
  .team-grid {
    grid-template-columns: 1fr;
  }
  
  .card-team {
    height: 360px;
  }
  
  /* Stats bar */
  .stats-bar__inner {
    flex-direction: column;
    gap: 1.5rem;
  }
  
  .stats-bar__item {
    flex: 1 1 100%;
  }
  
  .stats-bar__number {
    font-size: 2rem;
  }
  
  /* Hero */
  .hero__title {
    font-size: 1.75rem;
  }
  
  .hero__label {
    font-size: 0.75rem;
    letter-spacing: 2px;
  }
  
  /* Buttons */
  .btn {
    padding: 0.75rem 1.5rem;
    font-size: 0.8125rem;
  }
  
  .btn--lg {
    padding: 0.875rem 1.75rem;
    font-size: 0.9375rem;
  }
  
  /* Pagination */
  .pagination {
    gap: 0.25rem;
  }
  
  .pagination__link,
  .pagination__current,
  .pagination .page-numbers {
    width: 36px;
    height: 36px;
    font-size: 0.875rem;
  }
  
  /* Contact CTA */
  .contact-cta__title {
    font-size: 1.75rem;
  }
  
  /* Page header */
  .page-header__title {
    font-size: 1.75rem;
  }
}

/* ---- Small tablets (>= 576px) ---- */
@media (min-width: 576px) {
  .grid-2,
  .practices-grid,
  .blog-grid--2 {
    grid-template-columns: repeat(2, 1fr);
  }

  .stats-bar .container {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
  }

  .stats-bar__inner {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
  }

  .stats-bar__divider {
    width: 1px;
    height: 40px;
  }

  .hero__cta,
  .hero__actions {
    flex-direction: row;
    align-items: center;
  }

  .values-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .footer-bottom__contact {
    flex-direction: row;
  }

  .footer-bottom__inner {
    flex-direction: row;
    text-align: left;
  }

  .footer-bottom__right {
    flex-direction: row;
  }
}

/* ---- Tablets (>= 768px) ---- */
@media (min-width: 768px) {
  .grid-3,
  .team-grid,
  .blog-grid--3 {
    grid-template-columns: repeat(2, 1fr);
  }

  .grid-4,
  .practices-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .footer-widgets {
    grid-template-columns: repeat(2, 1fr);
  }

  .hero {
    min-height: 60vh;
  }

  .hero__title {
    font-size: var(--text-4xl);
  }

  .hero__subtitle {
    font-size: var(--text-lg);
  }

  .page-hero .page-title {
    font-size: var(--text-3xl);
  }

  .section {
    padding-top: var(--space-3xl);
    padding-bottom: var(--space-3xl);
  }

  .section-header h2 {
    font-size: var(--text-3xl);
  }

  .section-cta__title {
    font-size: var(--text-3xl);
  }

  .card-team {
    height: 400px;
  }

  .member-profile {
    grid-template-columns: 250px 1fr;
    margin-top: calc(-1 * var(--space-3xl));
  }

  .member-profile__photo {
    max-width: none;
  }

  .practice-hero__inner {
    flex-direction: row;
    align-items: center;
  }
}

/* ---- Desktop (>= 992px) ---- */
@media (min-width: 992px) {
  /* Navigation: horizontal on desktop */
  .menu-toggle {
    display: none;
  }

  .mobile-nav-overlay {
    display: none;
  }

  .primary-nav {
    display: flex;
  }

  .header-cta {
    display: inline-flex;
    margin-left: var(--space-lg);
  }

  .header-lang {
    margin-left: var(--space-md);
  }

  /* Grids */
  .grid-3,
  .team-grid,
  .blog-grid--3 {
    grid-template-columns: repeat(3, 1fr);
  }

  .grid-4,
  .practices-grid {
    grid-template-columns: repeat(4, 1fr);
  }

  /* Hero split layout on desktop */
  .hero__container {
    flex-direction: row;
  }

  .hero__visual {
    display: block;
  }

  /* Footer */
  .footer-widgets {
    grid-template-columns: 2fr 1fr 1fr 1fr;
  }

  .footer-bottom .container {
    flex-direction: row;
    text-align: left;
  }

  /* Hero */
  .hero {
    min-height: 70vh;
  }

  .hero__title {
    font-size: var(--text-5xl);
  }

  .page-hero .page-title {
    font-size: var(--text-4xl);
  }

  /* Sections */
  .section {
    padding-top: var(--space-4xl);
    padding-bottom: var(--space-4xl);
  }

  .section-header h2 {
    font-size: var(--text-4xl);
  }

  .section-cta__title {
    font-size: var(--text-4xl);
  }

  /* Values */
  .values-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  /* Team cards */
  .card-team {
    height: 420px;
  }

  /* Stats */
  .stat-item__number {
    font-size: var(--text-4xl);
  }
}

/* ---- Large desktop (>= 1200px) ---- */
@media (min-width: 1200px) {
  .hero__content {
    max-width: 750px;
  }

  .hero__title {
    font-size: var(--text-hero);
  }

  /* Wider navigation gaps */
  .primary-nav__list {
    gap: var(--space-2xl);
  }
}

/* ===================
   LARGE DESKTOP (min-width: 1440px)
   =================== */

@media (min-width: 1440px) {
  
  :root {
    --container-max: 1360px;
  }
  
  /* Hero */
  .hero__title {
    font-size: 3.75rem;
  }
  
  .hero__subtitle {
    font-size: 1.25rem;
  }
  
  /* Stats bar */
  .stats-bar__number {
    font-size: 3rem;
  }
  
  .stats-bar__label {
    font-size: 0.8125rem;
  }
  
  /* Cards can breathe more */
  .practices-grid {
    gap: 1.5rem;
  }
  
  .team-grid {
    gap: 2rem;
  }
  
  .blog-grid--3 {
    gap: 2rem;
  }
}

/* ===================
   PRINT STYLES
   =================== */

@media print {
  
  body {
    padding-top: 0;
  }
  
  .site-header,
  .site-footer,
  .btn,
  .hero__cta,
  .contact-cta,
  .pagination,
  .breadcrumbs,
  .sidebar-widget {
    display: none !important;
  }
  
  .hero {
    min-height: auto;
    padding: 1rem 0;
  }
  
  .card-team {
    page-break-inside: avoid;
  }
  
  .card-blog {
    page-break-inside: avoid;
  }
  
  a {
    text-decoration: underline;
  }
  
  a[href^="http"]:after {
    content: " (" attr(href) ")";
    font-size: 0.8em;
    color: #666;
  }
}

/* ===================
   ACCESSIBILITY
   =================== */

/* High contrast mode support */
@media (prefers-contrast: high) {
  
  :root {
    --color-border: #000;
  }
  
  .card-practice,
  .card-team__front,
  .card-blog {
    border-width: 2px;
  }
  
  .btn {
    border-width: 3px;
  }
}

/* Reduced transparency for low-vision users */
@media (prefers-reduced-transparency: reduce) {
  
  .hero__particles {
    opacity: 1;
  }
  
  .card-team__back-tag {
    background: rgba(255, 255, 255, 0.4);
  }
}
/* ============================================
   NP-Law Visual Overhaul
   Aligns with Figma designs (all 3 pages)
   Modern, rich, not flat white
   ============================================ */

/* --- Hero Figma-matched (white bg, geometric right, integrated stats) --- */
.hero--figma {
  background: #FFFFFF;
  position: relative;
  min-height: auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
  padding: 5rem 0 0;
}

.hero--figma .hero__container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-3xl);
  align-items: center;
  min-height: 70vh;
}

/* Label with line prefix */
.hero--figma .hero__label {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  color: var(--color-primary);
  font-family: var(--font-heading);
  font-size: 0.8125rem;
  font-weight: var(--weight-semibold);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  margin-bottom: 1.5rem;
}

.hero__label-line {
  display: inline-block;
  width: 40px;
  height: 2px;
  background-color: var(--color-primary);
}

.hero--figma .hero__title {
  color: var(--color-primary);
  font-size: clamp(2.5rem, 5vw, 3.75rem);
  font-weight: var(--weight-black);
  line-height: 1.08;
  margin-bottom: 1.5rem;
  font-family: var(--font-heading);
}

.hero--figma .hero__subtitle {
  color: var(--color-text-body);
  font-size: 1.125rem;
  line-height: 1.65;
  margin-bottom: 2.5rem;
  max-width: 500px;
}

/* CTA: navy rectangle button (not rounded pill) */
.hero--figma .hero__cta .btn--primary {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
  padding: 1rem 2.25rem;
  border-radius: var(--radius-sm);
  font-weight: var(--weight-semibold);
  font-size: var(--text-base);
  transition: all 0.3s ease;
}

.hero--figma .hero__cta .btn--primary:hover {
  background: var(--color-primary-light);
  border-color: var(--color-primary-light);
  box-shadow: var(--shadow-md);
  transform: translateY(-1px);
}

.hero--figma .hero__cta .btn--text {
  color: var(--color-text-body);
  font-weight: var(--weight-medium);
  font-size: var(--text-base);
}

.hero--figma .hero__cta .btn--text:hover {
  color: var(--color-primary);
}

/* Geometric Illustration (no animation, Figma-matched) */
.hero__geometric {
  width: 100%;
  max-width: 560px;
  margin-left: auto;
}

.hero__geometric-svg {
  width: 100%;
  height: auto;
}

/* Stats bar integrated into hero */
.hero__stats {
  border-top: 1px solid var(--color-border);
  padding: 2.5rem 0 3rem;
  margin-top: 0;
}

.hero__stats-inner {
  display: flex;
  gap: 4rem;
}

.hero__stat-item {
  text-align: left;
}

.hero__stat-number {
  display: block;
  font-family: var(--font-heading);
  font-size: 2.5rem;
  font-weight: var(--weight-black);
  color: var(--color-primary);
  line-height: 1;
  margin-bottom: 0.5rem;
}

.hero__stat-label {
  display: block;
  font-size: 0.75rem;
  font-weight: var(--weight-medium);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-text-body);
}

/* --- Section Backgrounds (Alternating) --- */
.section--gray {
  background-color: #f5f7fa;
}

.section--practices {
  background-color: #fff;
  padding: var(--space-4xl) 0;
}

.section--team {
  background-color: #f5f7fa;
  padding: var(--space-4xl) 0;
}

.section--blog {
  padding: var(--space-4xl) 0;
}

/* --- Section Header with Accent Line --- */
.section-header__label {
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
  font-size: var(--text-sm);
  font-weight: var(--weight-bold);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  color: var(--color-text-muted);
  margin-bottom: var(--space-md);
}

.section-header__accent {
  display: inline-block;
  width: 32px;
  height: 3px;
  background: #4361EE;
  border-radius: 2px;
}

.section-header__title {
  font-size: clamp(2rem, 4vw, 2.75rem);
  font-weight: var(--weight-black);
  color: var(--color-primary-dark);
  margin-bottom: var(--space-md);
}

.section-header__text {
  font-size: var(--text-lg);
  color: var(--color-text-body);
  max-width: 600px;
  line-height: var(--leading-relaxed);
}

/* --- Practice Area Cards (Redesigned) --- */
.card-practice {
  background: #fff;
  border-radius: 16px;
  padding: var(--space-xl);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04), 0 4px 12px rgba(0, 0, 0, 0.04);
  transition: all 0.3s ease;
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(0, 0, 0, 0.04);
}

.card-practice:hover {
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08), 0 2px 8px rgba(0, 0, 0, 0.04);
  transform: translateY(-4px);
  border-color: transparent;
}

/* Left accent border on hover */
.card-practice::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background: var(--color-primary);
  transform: scaleY(0);
  transition: transform 0.3s ease;
  border-radius: 0 2px 2px 0;
}

.card-practice:hover::before {
  transform: scaleY(1);
}

.card-practice__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  text-decoration: none;
  color: inherit;
}

/* Color-coded icon badge */
.card-practice__icon-badge {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--space-lg);
  flex-shrink: 0;
}

.card-practice__icon-badge svg {
  width: 24px;
  height: 24px;
  stroke: white;
  fill: none;
}

.card-practice__icon-badge img {
  width: 24px;
  height: 24px;
  filter: brightness(0) invert(1);
}

/* Hide old icon div if present */
.card-practice__icon {
  display: none;
}

.card-practice__title {
  font-size: var(--text-lg);
  font-weight: var(--weight-bold);
  color: var(--color-primary-dark);
  margin-bottom: var(--space-sm);
  line-height: var(--leading-snug);
}

.card-practice__desc {
  font-size: var(--text-sm);
  color: var(--color-text-body);
  line-height: var(--leading-relaxed);
  margin-bottom: var(--space-md);
  flex-grow: 1;
}

.card-practice__divider {
  height: 1px;
  background: var(--color-border-light);
  margin-bottom: var(--space-md);
}

.card-practice__link-text {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  color: var(--color-text-muted);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  transition: all 0.2s ease;
}

.card-practice:hover .card-practice__link-text {
  color: #4361EE;
}

.card-practice:hover .card-practice__link-text svg {
  transform: translateX(4px);
}

.card-practice__link-text svg {
  transition: transform 0.2s ease;
}

/* Practices Grid */
.practices-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-xl);
}

/* --- Stats Bar Enhancement --- */
.stats-bar {
  background: #fff;
  padding: var(--space-2xl) 0;
  border-bottom: 1px solid var(--color-border-light);
  position: relative;
}

.stats-bar__inner {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: var(--space-3xl);
}

.stats-bar__number {
  font-size: var(--text-4xl);
  font-weight: var(--weight-black);
  color: var(--color-primary);
  font-family: var(--font-heading);
  line-height: 1;
  display: block;
}

.stats-bar__label {
  font-size: var(--text-xs);
  font-weight: var(--weight-bold);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  color: var(--color-text-muted);
  margin-top: var(--space-xs);
  display: block;
}

.stats-bar__item {
  text-align: center;
}

.stats-bar__divider {
  width: 1px;
  height: 48px;
  background: var(--color-border);
}

/* --- Expertise Banner Enhancement --- */
.expertise-banner {
  padding: var(--space-3xl) 0;
  background: linear-gradient(135deg, #002871 0%, #001a4d 100%);
}

.expertise-banner .container {
  text-align: right;
}

.expertise-banner__label {
  display: block;
  font-size: var(--text-sm);
  font-weight: var(--weight-bold);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.5);
  margin-bottom: var(--space-sm);
}

.expertise-banner__heading {
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: var(--weight-black);
  color: #fff;
  text-transform: uppercase;
  letter-spacing: var(--tracking-wide);
}

/* --- Team Cards Enhancement --- */
.team-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-xl);
}

.card-team {
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04), 0 4px 12px rgba(0, 0, 0, 0.04);
  transition: all 0.3s ease;
  background: #fff;
}

.card-team:hover {
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1);
  transform: translateY(-4px);
}

/* Color accent per team member */
.card-team:nth-child(1) .card-team__position { color: #0ea5e9; }
.card-team:nth-child(2) .card-team__position { color: #22c55e; }
.card-team:nth-child(3) .card-team__position { color: #f59e0b; }
.card-team:nth-child(4) .card-team__position { color: #6366f1; }

.card-team:nth-child(1) .card-team__front .card-team__info::before { background: #0ea5e9; }
.card-team:nth-child(2) .card-team__front .card-team__info::before { background: #22c55e; }
.card-team:nth-child(3) .card-team__front .card-team__info::before { background: #f59e0b; }
.card-team:nth-child(4) .card-team__front .card-team__info::before { background: #6366f1; }

.card-team__front .card-team__info {
  position: relative;
  padding: var(--space-lg);
}

.card-team__front .card-team__info::before {
  content: '';
  position: absolute;
  top: 0;
  left: var(--space-lg);
  right: var(--space-lg);
  height: 3px;
  background: var(--color-primary);
  border-radius: 2px;
}

.card-team__name {
  font-size: var(--text-lg);
  font-weight: var(--weight-bold);
  color: var(--color-primary-dark);
}

.card-team__position {
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
}

.card-team__photo-placeholder {
  background: linear-gradient(135deg, #e2e8f0 0%, #cbd5e1 100%);
  height: 280px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.card-team__photo-placeholder svg {
  color: #94a3b8;
}

/* --- Blog Cards Enhancement --- */
.blog-grid {
  display: grid;
  gap: var(--space-xl);
}

.blog-grid--3 {
  grid-template-columns: repeat(3, 1fr);
}

.card-blog {
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04), 0 4px 12px rgba(0, 0, 0, 0.04);
  transition: all 0.3s ease;
  border: 1px solid rgba(0, 0, 0, 0.04);
}

.card-blog:hover {
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
  transform: translateY(-4px);
}

/* --- Footer Bottom Cleanup --- */
.footer-bottom__contact {
  display: none !important;
}

.footer-bottom__inner {
  justify-content: center !important;
  text-align: center;
}

.footer-bottom__right {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* --- Modern Buttons --- */
.btn--outline {
  border: 2px solid var(--color-primary);
  color: var(--color-primary);
  background: transparent;
  padding: 0.75rem 2rem;
  border-radius: 50px;
  font-weight: var(--weight-semibold);
  font-size: var(--text-sm);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  transition: all 0.3s ease;
  display: inline-block;
  text-decoration: none;
}

.btn--outline:hover {
  background: var(--color-primary);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 4px 15px rgba(0, 40, 113, 0.3);
}

/* Section Action (View All buttons) */
.section-action {
  text-align: center;
  margin-top: var(--space-2xl);
}

/* --- Scroll Animations --- */
[data-aos="fade-up"] {
  opacity: 0;
  transform: translateY(30px);
  transition: all 0.6s ease;
}

[data-aos="fade-up"].aos-animate,
[data-aos="fade-up"].is-visible {
  opacity: 1;
  transform: translateY(0);
}

[data-aos="fade-left"] {
  opacity: 0;
  transform: translateX(30px);
  transition: all 0.6s ease;
}

[data-aos="fade-left"].aos-animate,
[data-aos="fade-left"].is-visible {
  opacity: 1;
  transform: translateX(0);
}

[data-aos="fade-right"] {
  opacity: 0;
  transform: translateX(-30px);
  transition: all 0.6s ease;
}

[data-aos="fade-right"].aos-animate,
[data-aos="fade-right"].is-visible {
  opacity: 1;
  transform: translateX(0);
}

/* --- Page Hero for inner pages --- */
.page-hero {
  background: linear-gradient(135deg, #002871 0%, #001a4d 100%);
  padding: var(--space-4xl) 0 var(--space-3xl);
  text-align: center;
  position: relative;
  overflow: hidden;
}

.page-hero::before {
  content: '';
  position: absolute;
  top: -50%;
  right: -20%;
  width: 500px;
  height: 500px;
  background: radial-gradient(circle, rgba(67, 97, 238, 0.1) 0%, transparent 70%);
  border-radius: 50%;
}

/* --- CTA Section Enhancement --- */
.section-cta {
  background: linear-gradient(135deg, #002871 0%, #001a4d 100%);
  padding: var(--space-5xl) 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.section-cta::before {
  content: '';
  position: absolute;
  top: -100px;
  right: -100px;
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, rgba(67, 97, 238, 0.15) 0%, transparent 70%);
  border-radius: 50%;
}

.section-cta::after {
  content: '';
  position: absolute;
  bottom: -100px;
  left: -100px;
  width: 300px;
  height: 300px;
  background: radial-gradient(circle, rgba(212, 168, 83, 0.1) 0%, transparent 70%);
  border-radius: 50%;
}

.section-cta__title {
  font-size: clamp(2rem, 4vw, 2.75rem);
  font-weight: var(--weight-black);
  color: #fff;
  margin-bottom: var(--space-lg);
}

.section-cta__text {
  font-size: var(--text-lg);
  color: rgba(255, 255, 255, 0.75);
  max-width: 600px;
  margin: 0 auto var(--space-xl);
  line-height: var(--leading-relaxed);
}

.section-cta__content {
  position: relative;
  z-index: 1;
}

.btn--outline-white {
  border: 2px solid rgba(255, 255, 255, 0.8);
  color: #fff;
  background: transparent;
  padding: 0.875rem 2.5rem;
  border-radius: 50px;
  font-weight: var(--weight-semibold);
  font-size: var(--text-base);
  transition: all 0.3s ease;
  text-decoration: none;
  display: inline-block;
}

.btn--outline-white:hover {
  background: #fff;
  color: var(--color-primary);
  transform: translateY(-2px);
  box-shadow: 0 4px 20px rgba(255, 255, 255, 0.2);
}

/* --- Footer Enhancement --- */
.site-footer {
  background: linear-gradient(180deg, #001a4d 0%, #001240 100%);
  color: rgba(255, 255, 255, 0.7);
  padding-top: var(--space-4xl);
}

.footer-col__title {
  color: #fff;
  font-size: var(--text-sm);
  font-weight: var(--weight-bold);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  margin-bottom: var(--space-lg);
  position: relative;
  padding-bottom: var(--space-sm);
}

.footer-col__title::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 24px;
  height: 2px;
  background: #4361EE;
  border-radius: 1px;
}

.footer-nav li {
  margin-bottom: var(--space-sm);
}

.footer-nav a {
  color: rgba(255, 255, 255, 0.6);
  text-decoration: none;
  font-size: var(--text-sm);
  transition: all 0.2s ease;
  display: inline-block;
}

.footer-nav a:hover {
  color: #fff;
  transform: translateX(4px);
}

.footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding: var(--space-lg) 0;
  margin-top: var(--space-3xl);
}

.footer-copyright {
  color: rgba(255, 255, 255, 0.4);
  font-size: var(--text-sm);
}

.footer-social {
  display: flex;
  gap: var(--space-md);
  margin-bottom: var(--space-md);
}

.footer-social__link {
  color: rgba(255, 255, 255, 0.5);
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.footer-social__link:hover {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.3);
  background: rgba(255, 255, 255, 0.05);
}

/* --- Responsive: Mobile --- */
@media (max-width: 768px) {
  .hero--figma {
    padding: 3rem 0 0;
  }

  .hero--figma .hero__container {
    grid-template-columns: 1fr;
    min-height: auto;
    text-align: center;
  }

  .hero__geometric {
    display: none;
  }

  .hero--figma .hero__subtitle {
    margin-left: auto;
    margin-right: auto;
  }

  .hero--figma .hero__cta {
    justify-content: center;
  }

  .hero--figma .hero__label {
    justify-content: center;
  }

  .hero__stats-inner {
    flex-wrap: wrap;
    gap: 2rem;
    justify-content: center;
  }

  .hero__stat-item {
    text-align: center;
  }

  .hero__stat-number {
    font-size: 2rem;
  }

  .practices-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-md);
  }

  .team-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-md);
  }

  .blog-grid--3 {
    grid-template-columns: 1fr;
    gap: var(--space-md);
  }

  .stats-bar__inner {
    flex-wrap: wrap;
    gap: var(--space-xl);
  }

  .stats-bar__number {
    font-size: var(--text-3xl);
  }

  .expertise-banner .container {
    text-align: center;
  }

  .section-header {
    text-align: center;
  }

  .section-header__label {
    justify-content: center;
  }

  .footer-widgets {
    grid-template-columns: 1fr !important;
    gap: var(--space-xl) !important;
  }
}

@media (min-width: 769px) and (max-width: 1024px) {
  .hero--figma .hero__container {
    grid-template-columns: 1.2fr 0.8fr;
  }

  .practices-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .team-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .blog-grid--3 {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* --- Smooth page transitions --- */
.section {
  padding: var(--space-4xl) 0;
}

/* Separator between white sections */
.section + .section:not(.section--gray):not(.section-navy) {
  border-top: 1px solid var(--color-border-light);
}

/* --- Logo Fix from Figma --- */
.site-logo__img {
  height: 48px;
  width: auto;
}

/* Header background tweak for light hero */
.site-header {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

/* Hero Figma: no gradient overlay, clean white */
.hero--figma .hero__container {
  position: relative;
  z-index: 2;
}

/* Practices - cleaner design per Simeon preference */
.card-practice__icon-badge {
  width: 44px;
  height: 44px;
  border-radius: 10px;
}

.card-practice {
  padding: var(--space-lg) var(--space-xl);
}

.card-practice__desc {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}
/* ============================================
   Dropdown Menu + Contact Form Styles
   ============================================ */

/* --- Dropdown Menu --- */
.primary-nav__list .menu-item-has-children {
  position: relative;
}

.primary-nav__list .menu-item-has-children > a {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

/* Dropdown arrow */
.primary-nav__list .menu-item-has-children > a::after {
  content: '';
  display: inline-block;
  width: 6px;
  height: 6px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  margin-top: -2px;
  transition: transform 0.2s ease;
}

.primary-nav__list .menu-item-has-children:hover > a::after {
  transform: rotate(-135deg);
}

/* Dropdown panel */
.primary-nav__list .sub-menu {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(8px);
  min-width: 260px;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.06);
  padding: var(--space-sm) 0;
  opacity: 0;
  visibility: hidden;
  transition: all 0.25s ease;
  z-index: 1000;
  list-style: none;
  border: 1px solid rgba(0, 0, 0, 0.04);
}

.primary-nav__list .menu-item-has-children:hover > .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}

.primary-nav__list .sub-menu li {
  margin: 0;
}

.primary-nav__list .sub-menu a {
  display: block;
  padding: 0.625rem 1.25rem;
  font-size: var(--text-sm);
  color: var(--color-text-body);
  text-decoration: none;
  transition: all 0.15s ease;
  font-weight: var(--weight-medium);
  white-space: nowrap;
}

.primary-nav__list .sub-menu a:hover {
  background: #f5f7fa;
  color: var(--color-primary);
  padding-left: 1.5rem;
}

/* Mobile nav dropdown */
.mobile-nav__list .menu-item-has-children > .sub-menu {
  display: none;
  list-style: none;
  padding-left: var(--space-lg);
  margin-top: var(--space-xs);
}

.mobile-nav__list .menu-item-has-children.is-open > .sub-menu {
  display: block;
}

.mobile-nav__list .sub-menu a {
  font-size: var(--text-sm);
  color: rgba(255, 255, 255, 0.7);
  padding: var(--space-xs) 0;
  display: block;
}

/* --- Contact Form 7 Styling --- */
.contact-form-wrapper {
  background: #fff;
  border-radius: 16px;
  padding: var(--space-2xl);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04), 0 8px 24px rgba(0, 0, 0, 0.06);
  border: 1px solid rgba(0, 0, 0, 0.04);
}

.contact-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-3xl);
  align-items: start;
}

.contact-info {
  padding: var(--space-xl) 0;
}

.contact-info__title {
  font-size: var(--text-2xl);
  font-weight: var(--weight-bold);
  color: var(--color-primary-dark);
  margin-bottom: var(--space-md);
}

.contact-info__text {
  color: var(--color-text-body);
  line-height: var(--leading-relaxed);
  margin-bottom: var(--space-xl);
}

.contact-info__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.contact-info__item {
  display: flex;
  align-items: flex-start;
  gap: var(--space-md);
}

.contact-info__icon {
  width: 44px;
  height: 44px;
  min-width: 44px;
  border-radius: 12px;
  background: #f0f3ff;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #4361EE;
}

.contact-info__item-text {
  font-size: var(--text-base);
  color: var(--color-text-body);
  line-height: 1.5;
}

.contact-info__item-text strong {
  display: block;
  color: var(--color-primary-dark);
  font-weight: var(--weight-semibold);
  margin-bottom: 2px;
}

.contact-info__item-text a {
  color: var(--color-text-body);
  text-decoration: none;
  transition: color 0.2s;
}

.contact-info__item-text a:hover {
  color: #4361EE;
}

/* CF7 Form Fields */
.wpcf7 .wpcf7-form {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.wpcf7 .form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-lg);
}

.wpcf7 .form-group {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.wpcf7 .form-group label {
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  color: var(--color-primary-dark);
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 select,
.wpcf7 textarea {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 1.5px solid var(--color-border);
  border-radius: 10px;
  font-family: var(--font-body);
  font-size: var(--text-base);
  color: var(--color-text);
  background: #fff;
  transition: all 0.2s ease;
  outline: none;
}

.wpcf7 input:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
  border-color: #4361EE;
  box-shadow: 0 0 0 3px rgba(67, 97, 238, 0.1);
}

.wpcf7 textarea {
  min-height: 140px;
  resize: vertical;
}

.wpcf7 input[type="submit"] {
  background: #4361EE;
  color: #fff;
  border: none;
  padding: 0.875rem 2.5rem;
  border-radius: 50px;
  font-family: var(--font-heading);
  font-size: var(--text-base);
  font-weight: var(--weight-semibold);
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 4px 15px rgba(67, 97, 238, 0.3);
  align-self: flex-start;
}

.wpcf7 input[type="submit"]:hover {
  background: #3451d1;
  box-shadow: 0 6px 25px rgba(67, 97, 238, 0.4);
  transform: translateY(-2px);
}

.wpcf7-response-output {
  border-radius: 10px !important;
  padding: var(--space-md) !important;
  font-size: var(--text-sm) !important;
}

/* --- Footer Logo Fix --- */
.footer-col--about .footer-logo__link {
  display: inline-block;
  margin-bottom: var(--space-lg);
}

.footer-col--about .footer-logo__img {
  height: 40px;
  width: auto;
  opacity: 0.9;
}

.footer-col--about .footer-logo__link:hover .footer-logo__img {
  opacity: 1;
}

.footer-col--about {
  padding-right: var(--space-xl);
}

.footer-col__desc {
  font-size: var(--text-sm);
  color: rgba(255, 255, 255, 0.6);
  line-height: var(--leading-relaxed);
}

/* --- Responsive --- */
@media (max-width: 768px) {
  .contact-layout {
    grid-template-columns: 1fr;
    gap: var(--space-xl);
  }
  
  .wpcf7 .form-row {
    grid-template-columns: 1fr;
  }

  .contact-form-wrapper {
    padding: var(--space-lg);
  }
  
  .primary-nav__list .sub-menu {
    display: none !important;
  }
}
/* ============================================
   NP-Law Mobile Fixes
   ============================================ */

/* --- Mobile Nav: Remove logo from hamburger menu --- */
.mobile-nav__header .mobile-nav__logo {
  display: none !important;
}

.mobile-nav__header {
  justify-content: flex-end !important;
  border-bottom: none !important;
  padding-bottom: 0 !important;
  margin-bottom: var(--space-md) !important;
}

/* --- Mobile Nav: Show sub-menus (Practices, Blog dropdowns) --- */
.mobile-nav__list .menu-item-has-children > a {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.mobile-nav__list .menu-item-has-children > a::after {
  content: '';
  display: inline-block;
  width: 8px;
  height: 8px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  transition: transform 0.2s ease;
  margin-left: auto;
  flex-shrink: 0;
}

.mobile-nav__list .menu-item-has-children.is-open > a::after {
  transform: rotate(-135deg);
}

.mobile-nav__list .sub-menu {
  display: none;
  list-style: none;
  padding: 0;
  margin: 0;
  padding-left: var(--space-lg);
  border-left: 2px solid var(--color-border-light);
  margin-top: var(--space-xs);
  margin-bottom: var(--space-sm);
}

.mobile-nav__list .menu-item-has-children.is-open > .sub-menu {
  display: block;
}

.mobile-nav__list .sub-menu li {
  margin: 0;
}

.mobile-nav__list .sub-menu a {
  font-size: var(--text-sm) !important;
  padding: 0.5rem 0 !important;
  color: var(--color-text-body) !important;
  display: block;
}

.mobile-nav__list .sub-menu a:hover {
  color: var(--color-primary) !important;
}

/* --- Mobile: Better nav list styling --- */
.mobile-nav__list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.mobile-nav__list > li {
  border-bottom: 1px solid var(--color-border-light);
}

.mobile-nav__list > li > a {
  display: block;
  padding: var(--space-md) 0;
  font-size: var(--text-lg);
  font-weight: var(--weight-semibold);
  color: var(--color-primary-dark);
  text-decoration: none;
}

/* --- Mobile: Practices single column --- */
@media (max-width: 768px) {
  .practices-grid {
    grid-template-columns: 1fr !important;
    gap: var(--space-md) !important;
  }

  .card-practice {
    padding: var(--space-lg) !important;
  }

  .card-practice__link {
    flex-direction: row;
    align-items: flex-start;
    gap: var(--space-md);
  }

  .card-practice__icon-badge {
    margin-bottom: 0 !important;
    flex-shrink: 0;
  }

  .card-practice__divider {
    display: none;
  }

  .card-practice__link-text {
    margin-top: var(--space-sm);
  }

  /* Team grid: single column on small screens */
  .team-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: var(--space-md) !important;
  }

  /* Blog grid: single column */
  .blog-grid--3 {
    grid-template-columns: 1fr !important;
  }

  /* Hero: better mobile spacing */
  .hero--light {
    min-height: auto !important;
    padding: var(--space-3xl) 0 var(--space-2xl) !important;
  }

  .hero--light .hero__container {
    min-height: auto !important;
    padding: var(--space-xl) 0 !important;
  }

  .hero--light .hero__title {
    font-size: 2rem !important;
    line-height: 1.2 !important;
  }

  .hero--light .hero__subtitle {
    font-size: var(--text-base) !important;
  }

  .hero--light .hero__cta {
    flex-direction: column;
    align-items: center;
    gap: var(--space-md);
  }

  .hero--light .hero__cta .btn--primary {
    width: 100%;
    text-align: center;
  }

  /* Stats bar: 2x2 grid */
  .stats-bar__inner {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: var(--space-lg) !important;
    text-align: center;
  }

  .stats-bar__divider {
    display: none !important;
  }

  .stats-bar__number {
    font-size: var(--text-2xl) !important;
  }

  /* Expertise banner */
  .expertise-banner {
    padding: var(--space-2xl) 0 !important;
  }

  .expertise-banner .container {
    text-align: center !important;
  }

  .expertise-banner__heading {
    font-size: 1.5rem !important;
  }

  /* Section spacing */
  .section {
    padding: var(--space-2xl) 0 !important;
  }

  .section-header__title {
    font-size: 1.5rem !important;
  }

  /* Footer: single column always */
  .footer-widgets {
    grid-template-columns: 1fr !important;
    gap: var(--space-xl) !important;
    text-align: center;
  }

  .footer-col__title::after {
    left: 50%;
    transform: translateX(-50%);
  }

  .footer-nav {
    text-align: center;
  }

  .footer-contact-list li {
    justify-content: center;
  }

  /* Contact page */
  .contact-layout {
    grid-template-columns: 1fr !important;
  }

  /* Page hero */
  .page-hero {
    padding: var(--space-2xl) 0 var(--space-xl) !important;
  }

  .page-hero__title {
    font-size: 1.75rem !important;
  }

  /* CTA section */
  .section-cta {
    padding: var(--space-3xl) 0 !important;
  }

  .section-cta__title {
    font-size: 1.5rem !important;
  }

  .section-cta__actions {
    flex-direction: column;
    align-items: center;
    gap: var(--space-md);
  }

  .btn--outline-white {
    width: 100%;
    text-align: center;
  }

  /* Category filter pills scroll */
  .category-filter {
    justify-content: flex-start !important;
    overflow-x: auto;
    flex-wrap: nowrap !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: var(--space-sm);
  }

  .category-filter::-webkit-scrollbar {
    display: none;
  }

  .category-filter__item {
    white-space: nowrap;
    flex-shrink: 0;
  }
}

/* Small phones (< 380px) */
@media (max-width: 380px) {
  .team-grid {
    grid-template-columns: 1fr !important;
  }

  .hero--light .hero__title {
    font-size: 1.75rem !important;
  }

  .stats-bar__inner {
    grid-template-columns: 1fr !important;
  }
}

/* Tablet tweaks */
@media (min-width: 769px) and (max-width: 1024px) {
  .practices-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  .team-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  .blog-grid--3 {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  .hero--light .hero__container {
    grid-template-columns: 1.2fr 0.8fr !important;
  }
}

/* ============================================
   Footer Bottom Bar — Compact Spacing Fix
   ============================================ */
.footer-bottom {
  padding-top: var(--space-md) !important;
  padding-bottom: var(--space-md) !important;
  margin-top: var(--space-lg) !important;
}

.footer-bottom__inner {
  gap: var(--space-sm) !important;
}

.footer-bottom__right {
  gap: var(--space-sm) !important;
}

.footer-social {
  margin-bottom: 0 !important;
}

.footer-copyright {
  margin-top: 0 !important;
  font-size: var(--text-xs) !important;
}
/* ============================================
   NP-Law - Animations
   Scroll reveals, hover effects, particles
   ============================================ */

/* --- Smooth Scrolling --- */
html {
  scroll-behavior: smooth;
}

/* --- AOS-like Scroll Reveal Animations --- */

/* Base: hidden state before animation */
[data-aos] {
  opacity: 0;
  transition-property: opacity, transform;
  transition-duration: 600ms;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

/* Animated state (added by JS IntersectionObserver) */
[data-aos].aos-animate {
  opacity: 1;
  transform: none;
}

/* Fade Up */
[data-aos="fade-up"] {
  transform: translateY(30px);
}

/* Fade Down */
[data-aos="fade-down"] {
  transform: translateY(-30px);
}

/* Fade Left */
[data-aos="fade-left"] {
  transform: translateX(30px);
}

/* Fade Right */
[data-aos="fade-right"] {
  transform: translateX(-30px);
}

/* Zoom In */
[data-aos="zoom-in"] {
  transform: scale(0.9);
}

/* Zoom Out */
[data-aos="zoom-out"] {
  transform: scale(1.1);
}

/* Flip Up */
[data-aos="flip-up"] {
  transform: perspective(600px) rotateX(15deg);
}

/* --- Delay Support via data-aos-delay --- */
[data-aos][data-aos-delay="100"] { transition-delay: 100ms; }
[data-aos][data-aos-delay="200"] { transition-delay: 200ms; }
[data-aos][data-aos-delay="300"] { transition-delay: 300ms; }
[data-aos][data-aos-delay="400"] { transition-delay: 400ms; }
[data-aos][data-aos-delay="500"] { transition-delay: 500ms; }
[data-aos][data-aos-delay="600"] { transition-delay: 600ms; }
[data-aos][data-aos-delay="700"] { transition-delay: 700ms; }
[data-aos][data-aos-delay="800"] { transition-delay: 800ms; }

/* Custom delay applied by JS */
[data-aos].aos-animate[data-aos-delay="100"] { transition-delay: 100ms; }
[data-aos].aos-animate[data-aos-delay="200"] { transition-delay: 200ms; }
[data-aos].aos-animate[data-aos-delay="300"] { transition-delay: 300ms; }
[data-aos].aos-animate[data-aos-delay="400"] { transition-delay: 400ms; }
[data-aos].aos-animate[data-aos-delay="500"] { transition-delay: 500ms; }

/* --- Card Hover Effects --- */

/* Lift shadow on hover (practice cards) */
.card-practice {
  transition:
    transform var(--transition-base),
    box-shadow var(--transition-base),
    border-color var(--transition-base);
}

.card-practice:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-xl);
}

/* Team card 3D flip — handled in components.css
   Additional smoothing here */
.card-team__inner {
  transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Blog card hover lift */
.card-blog {
  transition:
    transform var(--transition-base),
    box-shadow var(--transition-base);
}

.card-blog:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lg);
}

/* --- Button Hover Transitions --- */
.btn {
  transition:
    background-color var(--transition-base),
    color var(--transition-base),
    border-color var(--transition-base),
    box-shadow var(--transition-base),
    transform var(--transition-fast);
}

.btn:hover {
  transform: translateY(-1px);
}

.btn:active {
  transform: translateY(0);
}

/* --- Hero Particle Canvas --- */
.hero__canvas {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}

.hero__canvas canvas {
  display: block;
  width: 100%;
  height: 100%;
}

/* --- Counter Animation Styles --- */
.stat-item__number[data-count] {
  display: inline-block;
}

/* --- Header scroll transition --- */
.sticky-header-wrap {
  transition: box-shadow var(--transition-base);
}

.sticky-header-wrap.is-scrolled {
  box-shadow: var(--shadow-lg);
}

/* --- Nav link underline animation --- */
.primary-nav__link::after {
  transition: width var(--transition-base);
}

/* --- Footer link hover --- */
.site-footer a {
  transition: color var(--transition-fast);
}

/* --- Focus ring animation --- */
a:focus-visible,
button:focus-visible {
  transition: outline-offset var(--transition-fast);
}

/* --- Loading / Page transition --- */
.site-main {
  animation: fadeInContent 0.4s ease-out;
}

@keyframes fadeInContent {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* --- Prefers Reduced Motion ---
   Disables ALL animations and transitions for accessibility */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  /* Ensure AOS elements are visible without animation */
  [data-aos] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  /* Disable card hover transforms */
  .card-practice:hover,
  .card-blog:hover,
  .btn:hover {
    transform: none !important;
  }

  /* Disable team card flip */
  .card-team:hover .card-team__inner {
    transform: none !important;
  }

  /* Show back content on focus instead */
  .card-team:focus-within .card-team__back {
    visibility: visible;
    position: static;
    transform: none;
    backface-visibility: visible;
  }

  /* Disable particle canvas */
  .hero__canvas,
  .hero__particles {
    display: none !important;
  }

  /* Disable page transition */
  .site-main {
    animation: none !important;
  }
}

/* AOS Fallback: ensure content visible for crawlers and no-JS */
[data-aos] {
    /* Override: keep elements visible by default, animate on scroll */
}

/* Noscript: if JS disabled, show everything */
.no-js [data-aos] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
}

/* Fix: Above-fold elements should be visible immediately for SEO crawlers */
/* Stats bar and hero elements - always visible */
.stats-bar [data-aos],
.hero-section [data-aos],
.page-hero [data-aos] {
    opacity: 1 !important;
    transform: none !important;
}
/* ============================================================
   NP-Law Modernization v2.0
   Modern design system: grid overlay, section markers,
   bold typography, confident spacing, smooth transitions.
   ============================================================ */

/* --- CSS Custom Properties (additions) --- */
:root {
  --gold: #D4A853;
  --gold-dark: #B89343;
  --navy: #002871;
  --navy-dark: #001A4D;
  --navy-light: rgba(0, 40, 113, 0.06);
  --alt-bg: #F9FAFB;
  --text-body: #6B7280;
  --text-muted: #9CA3AF;
  --border-light: #E5E7EB;
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.06);
  --shadow-md: 0 4px 12px rgba(0,0,0,0.08);
  --shadow-lg: 0 8px 24px rgba(0,0,0,0.12);
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  --section-padding: 100px;
  --section-padding-mobile: 56px;
}


/* ============================================================
   FIX: Disable AOS hidden state globally
   All content visible immediately. Hover transforms preserved.
   ============================================================ */
[data-aos] {
  opacity: 1 !important;
  transform: none !important;
}

/* Preserve hover/interaction transitions */
[data-aos] {
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
              box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1),
              border-color 0.3s cubic-bezier(0.4, 0, 0.2, 1),
              background 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

/* Re-enable hover transforms for cards */
.card-practice:hover,
.practice-card:hover,
.card-team:hover,
.card-blog:hover,
.post-card:hover {
  transform: translateY(-4px) !important;
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

/* ============================================================
   1. GLOBAL: SECTION MARKERS [NP.01]
   ============================================================ */
.section-header__label {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--gold);
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.section-header__label::before {
  content: attr(data-marker);
  font-family: 'Source Sans 3', sans-serif;
  font-weight: 600;
  font-size: 12px;
  color: var(--text-muted);
  letter-spacing: 1px;
}

/* ============================================================
   2. GLOBAL: TYPOGRAPHY SCALE — bolder, more confident
   ============================================================ */
.hero__title,
h1 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: -0.02em;
}

.section-header__title,
.page-hero__title {
  font-size: clamp(28px, 4vw, 40px);
  font-weight: 800;
  letter-spacing: -0.01em;
  line-height: 1.15;
  color: var(--navy);
}

.hero__title {
  font-size: clamp(36px, 5.5vw, 64px) !important;
}

/* ============================================================
   3. GLOBAL: CARD SYSTEM — shadows instead of borders
   ============================================================ */
.practice-card,
.team-card,
.blog-card,
.post-card {
  background: #fff;
  border-radius: var(--radius-md);
  border: 1px solid transparent;
  box-shadow: var(--shadow-sm);
  transition: all var(--transition);
  overflow: hidden;
  position: relative;
}

.practice-card:hover,
.team-card:hover,
.blog-card:hover,
.post-card:hover {
  box-shadow: var(--shadow-lg);
  transform: translateY(-4px);
  border-color: transparent;
}

/* Gold left accent on hover */
.practice-card::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background: var(--gold);
  transform: scaleY(0);
  transition: transform var(--transition);
  border-radius: 4px 0 0 4px;
  z-index: 2;
}

.practice-card:hover::before {
  transform: scaleY(1);
}

/* ============================================================
   4. GLOBAL: LINKS & BUTTONS — smooth, modern
   ============================================================ */
.btn {
  transition: all var(--transition);
  font-weight: 700;
  letter-spacing: 0.5px;
  border-radius: var(--radius-sm);
}

.btn--primary {
  box-shadow: 0 2px 8px rgba(0, 40, 113, 0.25);
}

.btn--primary:hover {
  box-shadow: 0 4px 16px rgba(0, 40, 113, 0.35);
  transform: translateY(-1px);
}

.btn--outline:hover {
  background: var(--navy);
  color: #fff;
  border-color: var(--navy);
}

/* Learn more → style links */
.card-link,
.practice-card__link,
a[class*=more] {
  font-weight: 700;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--navy);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: gap var(--transition), color var(--transition);
}

.card-link:hover,
.practice-card__link:hover,
a[class*=more]:hover {
  gap: 10px;
  color: var(--gold-dark);
}

/* ============================================================
   5. GLOBAL: SECTION SPACING — breathing room
   ============================================================ */
.section {
  padding: var(--section-padding) 0;
}

.section--gray,
.section--alt {
  background-color: var(--alt-bg);
}

/* ============================================================
   6. STICKY HEADER with glassmorphism
   ============================================================ */
.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  transition: all var(--transition);
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.site-header.scrolled {
  box-shadow: 0 1px 8px rgba(0,0,0,0.08);
}

.site-header.scrolled .header__inner {
  padding-top: 8px;
  padding-bottom: 8px;
}

/* Active nav link indicator */
.primary-nav a.current,
.primary-nav .current-menu-item > a {
  color: var(--navy);
  position: relative;
}

.primary-nav a.current::after,
.primary-nav .current-menu-item > a::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--gold);
  border-radius: 2px;
}

/* ============================================================
   7. HERO — bigger, bolder
   ============================================================ */
.hero--light,
.hero--figma {
  position: relative;
  overflow: hidden;
  background: #fff !important;
}

/* Remove grid pattern for figma hero */
.hero--figma::after {
  display: none !important;
}

.hero__container {
  position: relative;
  z-index: 2;
}

/* ============================================================
   8. STATS BAR — redesigned
   ============================================================ */
.stats-bar {
  background: var(--navy);
  padding: 32px 0;
  position: relative;
}

.stats-bar .stat__number {
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  font-size: clamp(36px, 5vw, 56px);
  color: #fff;
  line-height: 1;
  letter-spacing: -0.02em;
}

.stats-bar .stat__label {
  font-family: 'Source Sans 3', sans-serif;
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.6);
  margin-top: 8px;
}

.stats-bar .stat {
  text-align: center;
  position: relative;
}

/* Gold vertical divider between stats */
.stats-bar .stat + .stat::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  height: 40px;
  width: 1px;
  background: rgba(212, 168, 83, 0.3);
}

/* ============================================================
   9. PRACTICE AREA CARDS — redesigned
   ============================================================ */
.practice-card {
  padding: 32px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.practice-card__icon,
.card-practice__icon-badge {
  width: 56px;
  height: 56px;
  background: var(--navy) !important;
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background var(--transition);
  color: #fff;
}

.card-practice__icon-badge svg {
  stroke: #fff;
  color: #fff;
}

.practice-card:hover .practice-card__icon,
.card-practice:hover .card-practice__icon-badge {
  background: var(--gold) !important;
}

.practice-card__title {
  font-size: 18px;
  font-weight: 700;
  color: var(--navy);
  margin: 0;
}

.practice-card__desc {
  font-size: 15px;
  color: var(--text-body);
  line-height: 1.6;
  margin: 0;
}

/* ============================================================
   10. TEAM CARDS — hover overlay
   ============================================================ */
.team-card {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-md);
}

.team-card__photo {
  width: 100%;
  aspect-ratio: 3/4;
  object-fit: cover;
  transition: transform var(--transition);
}

.team-card:hover .team-card__photo {
  transform: scale(1.05);
}

.team-card__info {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 24px;
  background: linear-gradient(transparent, rgba(0, 26, 77, 0.85));
  color: #fff;
  transform: translateY(calc(100% - 80px));
  transition: transform var(--transition);
}

.team-card:hover .team-card__info {
  transform: translateY(0);
}

.team-card__name {
  font-size: 20px;
  font-weight: 700;
  margin: 0 0 4px;
}

.team-card__position {
  font-size: 14px;
  color: var(--gold);
  font-weight: 600;
  margin: 0 0 12px;
}

.team-card__bio {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.8);
  line-height: 1.5;
  opacity: 0;
  transition: opacity var(--transition) 0.1s;
}

.team-card:hover .team-card__bio {
  opacity: 1;
}

/* ============================================================
   11. BLOG CARDS — date badge + category
   ============================================================ */
.blog-card,
.post-card {
  overflow: hidden;
}

.blog-card__image-wrap {
  position: relative;
  overflow: hidden;
}

.blog-card__image {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  transition: transform var(--transition);
}

.blog-card:hover .blog-card__image {
  transform: scale(1.05);
}

/* Date badge overlay */
.blog-card__date-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  background: var(--navy);
  color: #fff;
  padding: 6px 12px;
  border-radius: var(--radius-sm);
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 1px;
  text-transform: uppercase;
  z-index: 2;
}

/* Category pill */
.blog-card__category {
  display: inline-block;
  padding: 4px 12px;
  border-radius: 9999px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: var(--gold-dark);
  background: rgba(212, 168, 83, 0.12);
  margin-bottom: 8px;
}

.blog-card__content {
  padding: 24px;
}

.blog-card__title {
  font-size: 18px;
  font-weight: 700;
  color: var(--navy);
  line-height: 1.35;
  margin: 8px 0 12px;
}

.blog-card__excerpt {
  font-size: 15px;
  color: var(--text-body);
  line-height: 1.6;
  margin: 0 0 16px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ============================================================
   12. CTA SECTION — bolder
   ============================================================ */
.section-cta {
  background: var(--navy);
  position: relative;
  overflow: hidden;
  text-align: center;
  padding: 80px 0;
}

/* Grid pattern overlay on CTA */
.section-cta::before {
  content: '';
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  background-image: 
    linear-gradient(rgba(255,255,255,0.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.02) 1px, transparent 1px);
  background-size: 80px 80px;
  pointer-events: none;
}

.section-cta__title {
  font-size: clamp(28px, 4vw, 44px);
  font-weight: 800;
  color: #fff;
  letter-spacing: -0.01em;
  line-height: 1.15;
  margin-bottom: 16px;
  position: relative;
}

.section-cta .btn--white {
  background: #fff;
  color: var(--navy);
  font-weight: 700;
  padding: 14px 36px;
  border-radius: var(--radius-sm);
}

.section-cta .btn--white:hover {
  background: var(--gold);
  color: var(--navy);
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(212, 168, 83, 0.4);
}

/* ============================================================
   13. CONTACT PAGE — modern redesign
   ============================================================ */
.contact-form input[type=text],
.contact-form input[type=email],
.contact-form input[type=tel],
.contact-form select,
.contact-form textarea {
  border: none;
  border-bottom: 2px solid var(--border-light);
  border-radius: 0;
  padding: 12px 0;
  font-size: 16px;
  background: transparent;
  transition: border-color var(--transition);
  width: 100%;
}

.contact-form input:focus,
.contact-form textarea:focus {
  border-bottom-color: var(--gold);
  outline: none;
  box-shadow: none;
}

.contact-form label {
  font-weight: 600;
  font-size: 14px;
  color: var(--navy);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 4px;
  display: block;
}

/* Tab switcher for contact */
.contact-tabs {
  display: flex;
  gap: 0;
  margin-bottom: 32px;
  border-bottom: 2px solid var(--border-light);
}

.contact-tabs__tab {
  padding: 12px 24px;
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 16px;
  color: var(--text-muted);
  cursor: pointer;
  border: none;
  background: none;
  position: relative;
  transition: color var(--transition);
}

.contact-tabs__tab.active {
  color: var(--navy);
}

.contact-tabs__tab.active::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--navy);
}

/* Contact info items */
.contact-item {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 16px 0;
  border-bottom: 1px solid var(--border-light);
  transition: all var(--transition);
}

.contact-item:hover {
  padding-left: 8px;
}

.contact-item__icon {
  width: 40px;
  height: 40px;
  background: var(--navy-light);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

/* ============================================================
   14. FOOTER — gradient + grid lines
   ============================================================ */
.site-footer {
  background: linear-gradient(180deg, var(--navy-dark) 0%, var(--navy) 100%);
  position: relative;
}

.footer__columns {
  display: grid;
  gap: 0;
}

/* Subtle vertical grid lines between footer columns */
.footer__column {
  position: relative;
  padding: 0 32px;
}

.footer__column + .footer__column::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 1px;
  background: rgba(255, 255, 255, 0.08);
}

.footer__heading {
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: #fff;
  margin-bottom: 8px;
}

.footer__heading::after {
  content: '';
  display: block;
  width: 24px;
  height: 2px;
  background: var(--gold);
  margin-top: 8px;
}

/* Back to top */
.back-to-top {
  position: fixed;
  bottom: 24px;
  right: 24px;
  width: 44px;
  height: 44px;
  background: var(--navy);
  color: #fff;
  border: none;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transform: translateY(16px);
  transition: all var(--transition);
  z-index: 900;
  box-shadow: var(--shadow-md);
}

.back-to-top.visible {
  opacity: 1;
  transform: translateY(0);
}

.back-to-top:hover {
  background: var(--gold);
  transform: translateY(-2px);
}

/* ============================================================
   15. READING PROGRESS BAR (blog posts)
   ============================================================ */
.reading-progress {
  position: fixed;
  top: 0;
  left: 0;
  height: 3px;
  background: var(--gold);
  z-index: 1001;
  width: 0%;
  transition: width 0.15s linear;
}

/* ============================================================
   16. MOBILE STICKY CTA BAR
   ============================================================ */
.mobile-cta-bar {
  display: none;
}

@media (max-width: 768px) {
  .mobile-cta-bar {
    display: flex;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    height: 60px;
    background: #fff;
    box-shadow: 0 -2px 12px rgba(0,0,0,0.1);
    z-index: 998;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 0 16px;
    transform: translateY(0);
    transition: transform var(--transition);
  }

  .mobile-cta-bar.hidden {
    transform: translateY(100%);
  }

  .mobile-cta-bar__btn {
    flex: 1;
    height: 44px;
    border-radius: var(--radius-sm);
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    text-decoration: none;
  }

  .mobile-cta-bar__btn--primary {
    background: var(--gold);
    color: var(--navy);
  }

  .mobile-cta-bar__btn--call {
    background: var(--navy);
    color: #fff;
    flex: 0 0 44px;
    border-radius: 50%;
  }

  /* Add bottom padding to body for sticky bar */
  body {
    padding-bottom: 60px;
  }

  /* Hide on contact page */
  .page-template-page-contact .mobile-cta-bar {
    display: none;
  }
  .page-template-page-contact body {
    padding-bottom: 0;
  }
}

/* ============================================================
   17. MOBILE MENU — full-screen overlay
   ============================================================ */
@media (max-width: 768px) {
  .mobile-nav-overlay {
    background: rgba(0, 26, 77, 0.97) !important;
    backdrop-filter: blur(8px);
  }

  .mobile-nav {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    padding: 32px;
  }

  .mobile-nav a {
    font-family: 'Montserrat', sans-serif;
    font-size: 24px;
    font-weight: 700;
    color: #fff;
    text-decoration: none;
    padding: 16px 0;
    display: block;
    text-align: center;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    width: 100%;
    transition: color var(--transition);
  }

  .mobile-nav a:hover,
  .mobile-nav a:active {
    color: var(--gold);
  }

  .mobile-nav__contact {
    margin-top: auto;
    padding-top: 24px;
    text-align: center;
    color: rgba(255, 255, 255, 0.6);
    font-size: 14px;
  }

  .mobile-nav__contact a {
    font-size: 14px !important;
    color: var(--gold) !important;
    border: none !important;
    padding: 8px 0 !important;
  }
}

/* ============================================================
   18. MOBILE RESPONSIVE — key overrides
   ============================================================ */
@media (max-width: 768px) {
  :root {
    --section-padding: 56px;
  }

  .section {
    padding: var(--section-padding-mobile) 0;
  }

  /* Stats: 2x2 grid */
  .stats-bar .stats-grid,
  .stats-bar .container > div {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
  }

  .stats-bar .stat + .stat::before {
    display: none;
  }

  .stats-bar .stat__number {
    font-size: 36px;
  }

  /* Practice cards: full-width stack */
  .practices-grid {
    grid-template-columns: 1fr !important;
    gap: 16px;
  }

  .practice-card {
    padding: 24px;
    flex-direction: row;
    align-items: flex-start;
  }

  .practice-card__icon {
    width: 48px;
    height: 48px;
    flex-shrink: 0;
  }

  /* Team: horizontal scroll */
  .team-grid {
    display: flex !important;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    gap: 16px;
    padding-bottom: 16px;
    -webkit-overflow-scrolling: touch;
  }

  .team-grid > * {
    flex: 0 0 75%;
    scroll-snap-align: start;
  }

  /* Blog: vertical stack */
  .blog-grid,
  .blog-grid--3 {
    grid-template-columns: 1fr !important;
    gap: 24px;
  }

  /* Footer accordion */
  .footer__column {
    padding: 0 16px;
    border-bottom: 1px solid rgba(255,255,255,0.06);
  }

  .footer__column + .footer__column::before {
    display: none;
  }

  .footer__heading {
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 0;
  }

  .footer__heading::after {
    content: '+';
    font-size: 20px;
    color: var(--gold);
    width: auto;
    height: auto;
    background: none;
    margin: 0;
    display: inline;
  }

  .footer__heading.open::after {
    content: '−';
  }

  .footer__links {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
  }

  .footer__heading.open + .footer__links {
    max-height: 400px;
  }

  /* Contact page: stacked */
  .contact-layout {
    flex-direction: column !important;
  }

  /* Single practice: sidebar under content */
  .practice-layout {
    grid-template-columns: 1fr !important;
  }

  .practice-sidebar {
    order: 2;
  }

  /* Single practice: horizontal scroll pills */
  .sidebar-nav-mobile {
    display: flex;
    overflow-x: auto;
    gap: 8px;
    padding: 12px 0;
    -webkit-overflow-scrolling: touch;
  }

  .sidebar-nav-mobile a {
    white-space: nowrap;
    padding: 8px 16px;
    border-radius: 9999px;
    font-size: 13px;
    font-weight: 600;
    background: var(--alt-bg);
    color: var(--navy);
    text-decoration: none;
    border: 1px solid var(--border-light);
    flex-shrink: 0;
  }

  .sidebar-nav-mobile a.active {
    background: var(--navy);
    color: #fff;
    border-color: var(--navy);
  }

  /* Blog post mobile */
  .single-post .featured-image {
    margin-left: -16px;
    margin-right: -16px;
    border-radius: 0;
  }

  /* Team member mobile */
  .member-profile {
    flex-direction: column !important;
  }

  .member-profile__photo {
    width: 100% !important;
    height: 300px;
    object-fit: cover;
    border-radius: var(--radius-md);
  }
}

/* ============================================================
   19. TABLET (769-1024px)
   ============================================================ */
@media (min-width: 769px) and (max-width: 1024px) {
  .practices-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  .team-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  .blog-grid--3 {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

/* ============================================================
   20. PRINT STYLES
   ============================================================ */
@media print {
  .mobile-cta-bar,
  .back-to-top,
  .reading-progress {
    display: none !important;
  }
}

/* ============================================================
   FIX: Hero CTA button — navy not purple
   ============================================================ */
.hero__cta .btn--primary {
  background-color: var(--navy) !important;
  border-color: var(--navy) !important;
  color: #fff;
  border-radius: var(--radius-sm);
  padding: 14px 32px;
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.5px;
  box-shadow: 0 4px 16px rgba(0, 40, 113, 0.3);
}

.hero__cta .btn--primary:hover {
  background-color: var(--navy-dark) !important;
  box-shadow: 0 6px 24px rgba(0, 40, 113, 0.4);
  transform: translateY(-2px);
}

/* Hero label — Figma style: navy with line prefix */
.hero__label {
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  color: var(--navy, #002871) !important;
  display: flex !important;
  align-items: center;
  gap: 0.75rem;
}

.hero__label-line {
  display: inline-block;
  width: 40px;
  height: 2px;
  background-color: var(--navy, #002871);
}

/* Hero visual — subtle SVG (Figma-matched, respect per-element opacity) */
.hero__geometric-svg {
  opacity: 1 !important;
}

.hero__geometric rect,
.hero__geometric line,
.hero__geometric circle {
  /* Let individual element opacities control visibility */
}

/* ============================================================
   FIX: Blog section — 3-column card grid
   ============================================================ */
.blog-grid--3 {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 24px !important;
}

.blog-grid--3 .card-blog {
  display: flex !important;
  flex-direction: column !important;
  background: #fff;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
  transition: all var(--transition);
  border: 1px solid var(--border-light);
}

.blog-grid--3 .card-blog:hover {
  box-shadow: var(--shadow-lg);
  transform: translateY(-4px);
}

/* Fix blog placeholder image */
.card-blog__image,
.blog-card__image {
  width: 100% !important;
  height: 200px !important;
  object-fit: cover !important;
  display: block !important;
}

/* Placeholder when no featured image */
.card-blog__image[style*="display: flex"] {
  height: 200px !important;
  min-height: 200px !important;
  background: linear-gradient(135deg, #f0f4f8 0%, #e2e8f0 100%) !important;
}

.card-blog__body {
  padding: 24px !important;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.card-blog__title {
  font-size: 17px !important;
  line-height: 1.4 !important;
  margin-bottom: 8px !important;
}

.card-blog__title a {
  color: var(--navy) !important;
  text-decoration: none !important;
}

.card-blog__title a:hover {
  color: var(--gold-dark) !important;
}

.card-blog__excerpt {
  font-size: 14px !important;
  line-height: 1.6 !important;
  color: var(--text-body) !important;
  flex: 1;
}

.card-blog__meta {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  margin-top: auto !important;
  padding-top: 16px !important;
  border-top: 1px solid var(--border-light) !important;
}

.card-blog__category {
  display: inline-block !important;
  padding: 4px 10px !important;
  border-radius: 4px !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.5px !important;
  text-transform: uppercase !important;
  color: var(--navy) !important;
  background: var(--navy-light) !important;
  margin-bottom: 8px !important;
}

.card-blog__read-more {
  font-weight: 700 !important;
  font-size: 13px !important;
  color: var(--navy) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
}

@media (max-width: 768px) {
  .blog-grid--3 {
    grid-template-columns: 1fr !important;
  }
}

@media (min-width: 769px) and (max-width: 1024px) {
  .blog-grid--3 {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

/* ============================================================
   FIX: CTA buttons — primary/secondary hierarchy
   ============================================================ */
.section-cta__actions {
  display: flex;
  gap: 16px;
  justify-content: center;
}

.section-cta__actions .btn:first-child {
  background: var(--gold) !important;
  color: var(--navy) !important;
  border: 2px solid var(--gold) !important;
  font-weight: 800 !important;
  padding: 14px 36px !important;
}

.section-cta__actions .btn:first-child:hover {
  background: var(--gold-dark) !important;
  border-color: var(--gold-dark) !important;
  transform: translateY(-2px);
}

.section-cta__actions .btn:last-child {
  background: transparent !important;
  color: #fff !important;
  border: 2px solid rgba(255,255,255,0.4) !important;
  padding: 14px 36px !important;
}

.section-cta__actions .btn:last-child:hover {
  border-color: #fff !important;
  background: rgba(255,255,255,0.1) !important;
}

/* ============================================================
   FIX: Expertise banner — consistent alignment
   ============================================================ */
.expertise-banner {
  text-align: center;
  padding: 60px 0 !important;
}

.expertise-banner .section-header__label,
.expertise-banner__label {
  justify-content: center !important;
  margin-bottom: 16px;
}

.expertise-banner__heading {
  font-size: clamp(24px, 3.5vw, 36px) !important;
  font-weight: 800 !important;
  letter-spacing: 2px !important;
}

/* ============================================================
   FIX: Footer improvements
   ============================================================ */
.footer-col--about {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.footer-col--about .footer-logo {
  max-width: 160px;
  height: auto;
  margin-bottom: 8px;
}

.footer-social {
  display: flex !important;
  gap: 12px !important;
  margin-bottom: 16px !important;
}

.footer-social__link {
  width: 36px;
  height: 36px;
  display: flex !important;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(255,255,255,0.08);
  color: rgba(255,255,255,0.7);
  transition: all var(--transition);
}

.footer-social__link:hover {
  background: var(--gold);
  color: var(--navy);
}

.footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.08);
  margin-top: 40px;
  padding-top: 24px;
}

/* ============================================================
   MOBILE RESPONSIVE — CRITICAL FIXES
   ============================================================ */
@media (max-width: 768px) {
  /* Header: hide nav items, show only hamburger */
  .primary-nav {
    display: none !important;
  }
  
  .menu-toggle {
    display: flex !important;
  }

  /* Hero: hide SVG, stack content */
  .hero__visual,
  .hero__geometric {
    display: none !important;
  }

  .hero__content {
    max-width: 100% !important;
    text-align: center;
  }

  .hero__title {
    font-size: 32px !important;
    line-height: 1.1 !important;
  }

  .hero__subtitle {
    font-size: 16px !important;
  }

  .hero__cta {
    flex-direction: column !important;
    align-items: center !important;
    gap: 12px !important;
  }

  .hero__cta .btn--primary {
    width: 100% !important;
    max-width: 280px;
    text-align: center;
    justify-content: center;
  }

  /* Stats: 2x2 grid */
  .stats-bar__inner {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 16px !important;
  }

  .stats-bar__divider {
    display: none !important;
  }

  .stats-bar__number,
  .stat__number {
    font-size: 32px !important;
  }

  /* Practice cards: 1 column stack */
  .practices-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  .card-practice {
    padding: 20px !important;
  }

  /* Team: 2 columns */
  .team-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 16px !important;
  }

  /* Footer: stack columns */
  .footer-widgets {
    display: flex !important;
    flex-direction: column !important;
    gap: 24px !important;
  }

  .footer-col {
    padding: 0 !important;
  }

  .footer-col + .footer-col::before {
    display: none !important;
  }

  /* Section padding */
  .section,
  .section--practices,
  .section--team,
  .section--blog {
    padding: 48px 0 !important;
  }

  /* Expertise banner */
  .expertise-banner {
    padding: 40px 0 !important;
  }

  .expertise-banner__heading {
    font-size: 20px !important;
    letter-spacing: 1px !important;
  }
}

@media (min-width: 769px) and (max-width: 1024px) {
  .practices-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  
  .team-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

/* ============================================================
   FIX: Practice cards — equal heights, cleaner divider
   ============================================================ */
.practices-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

.card-practice,
.card-practice.practice-card {
  display: flex !important;
  flex-direction: column !important;
  padding: 28px !important;
  background: #fff !important;
  border-radius: var(--radius-md) !important;
  border: 1px solid var(--border-light) !important;
  box-shadow: var(--shadow-sm) !important;
  transition: all 0.3s ease !important;
  min-height: 280px;
}

.card-practice:hover {
  box-shadow: var(--shadow-lg) !important;
  transform: translateY(-4px) !important;
  border-color: var(--gold) !important;
}

.card-practice__divider {
  margin-top: auto !important;
  border-top: 1px solid var(--border-light);
  padding-top: 16px;
}

.card-practice__link-text {
  font-weight: 700 !important;
  font-size: 13px !important;
  letter-spacing: 1px !important;
  text-transform: uppercase !important;
  color: var(--navy) !important;
}

.card-practice:hover .card-practice__link-text {
  color: var(--gold-dark) !important;
}

/* Team cards — better image handling */
.card-team__front {
  overflow: hidden;
  border-radius: var(--radius-md);
}

.card-team__photo,
.card-team__front img {
  width: 100% !important;
  aspect-ratio: 3/4 !important;
  object-position: top !important;
  object-fit: cover !important;
}

.card-team__info {
  text-align: center;
  padding: 16px 12px;
}

.card-team__position {
  color: var(--gold) !important;
  font-weight: 600 !important;
  font-size: 13px !important;
}

/* ============================================================
   FIX: Section headers — consistent styling
   ============================================================ */
.section-header {
  text-align: center;
  margin-bottom: 48px;
}

.section-header__label {
  justify-content: center;
}

.section-header__title {
  margin-top: 8px;
}

.section-header__text {
  max-width: 600px;
  margin: 12px auto 0;
  color: var(--text-body);
  font-size: 17px;
  line-height: 1.6;
}

/* Section action buttons */
.section-action {
  text-align: center;
  margin-top: 40px;
}

.section-action .btn--outline {
  border: 2px solid var(--navy);
  color: var(--navy);
  font-weight: 700;
  padding: 12px 32px;
  border-radius: var(--radius-sm);
  text-transform: uppercase;
  letter-spacing: 1px;
  font-size: 13px;
}

.section-action .btn--outline:hover {
  background: var(--navy);
  color: #fff;
}
/* ============================================================
   NP-Law Mobile Polish v1.3.0 — World-class mobile experience
   Appended to modernize.css
   ============================================================ */

/* === MOBILE HEADER POLISH === */
@media (max-width: 991px) {
  .site-header {
    padding: 10px 0;
  }
  
  .site-header .container {
    padding-left: 16px;
    padding-right: 16px;
  }
  
  .site-header__inner {
    min-height: 50px;
  }
  
  /* Logo sizing on mobile */
  .site-header .custom-logo,
  .site-header__logo img {
    max-height: 36px;
    width: auto;
  }
  
  /* Hamburger button styling */
  .menu-toggle {
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
    border-radius: 8px;
    transition: background-color 0.2s ease;
  }
  
  .menu-toggle:hover,
  .menu-toggle:focus-visible {
    background-color: rgba(0, 40, 113, 0.08);
  }
  
  .menu-toggle svg,
  .menu-toggle .hamburger-icon {
    width: 24px;
    height: 24px;
  }
}

/* === HERO — MOBILE POLISH === */
@media (max-width: 768px) {
  .hero {
    padding: 48px 0 40px;
    min-height: auto;
    text-align: center;
  }
  
  .hero__label {
    font-size: 11px;
    letter-spacing: 3px;
    margin-bottom: 12px;
    justify-content: center;
  }
  
  .hero__title {
    font-size: clamp(1.75rem, 7vw, 2.5rem) !important;
    line-height: 1.15;
    margin-bottom: 16px;
  }
  
  .hero__subtitle {
    font-size: 0.95rem;
    line-height: 1.6;
    opacity: 0.85;
    margin-bottom: 24px;
    max-width: 340px;
    margin-left: auto;
    margin-right: auto;
  }
  
  .hero__cta {
    flex-direction: column;
    align-items: center;
    gap: 12px;
  }
  
  .hero__cta .btn {
    width: 100%;
    max-width: 280px;
    justify-content: center;
    padding: 14px 24px;
    font-size: 0.9375rem;
  }
}

/* === STATS BAR — MOBILE POLISH === */
@media (max-width: 768px) {
  .stats-bar {
    padding: 24px 16px;
  }
  
  .stats-bar__inner {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 20px 16px;
    max-width: 380px;
    margin: 0 auto;
  }
  
  .stats-bar__item {
    text-align: center;
    flex: none !important;
  }
  
  .stats-bar__number,
  .stat-item__number {
    font-size: 1.75rem !important;
    font-weight: 700;
    line-height: 1;
    margin-bottom: 4px;
  }
  
  .stats-bar__label,
  .stat-item__label {
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    opacity: 0.8;
    line-height: 1.3;
  }
  
  /* Hide dividers on mobile */
  .stats-bar__divider {
    display: none;
  }
}

/* === SECTION HEADERS — MOBILE === */
@media (max-width: 768px) {
  .section-header {
    margin-bottom: 32px;
    padding: 0 16px;
  }
  
  .section-header__label {
    font-size: 11px;
    letter-spacing: 2px;
    margin-bottom: 8px;
  }
  
  .section-header__title,
  .section-header h2 {
    font-size: clamp(1.5rem, 6vw, 2rem) !important;
    line-height: 1.2;
  }
  
  .section-header p {
    font-size: 0.9375rem;
    max-width: 340px;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.6;
  }
}

/* === PRACTICE CARDS — MOBILE === */
@media (max-width: 480px) {
  .practices-grid {
    grid-template-columns: 1fr !important;
    gap: 12px;
    padding: 0 16px;
  }
  
  .card-practice__link {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 16px;
    padding: 20px;
    min-height: auto;
  }
  
  .card-practice__icon-wrap {
    flex-shrink: 0;
    width: 48px;
    height: 48px;
  }
  
  .card-practice__content {
    flex: 1;
    text-align: left;
  }
  
  .card-practice__title {
    font-size: 1rem !important;
    margin-bottom: 4px;
  }
  
  .card-practice__desc {
    font-size: 0.8125rem;
    line-height: 1.5;
    opacity: 0.7;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
}

@media (min-width: 481px) and (max-width: 768px) {
  .practices-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 12px;
    padding: 0 16px;
  }
  
  .card-practice__link {
    padding: 16px;
    min-height: 160px;
  }
  
  .card-practice__title {
    font-size: 0.875rem !important;
  }
  
  .card-practice__desc {
    font-size: 0.75rem;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
}

/* === TEAM CARDS — MOBILE === */
@media (max-width: 480px) {
  /* Single column on very small phones — photos are too tiny in 2-col */
  .team-grid {
    grid-template-columns: 1fr !important;
    gap: 20px;
    max-width: 380px;
    margin-left: auto;
    margin-right: auto;
    padding: 0 16px;
  }
  
  .card-team {
    height: auto !important;
    min-height: 320px;
  }
  
  .card-team__photo,
  .card-team__front img {
    aspect-ratio: 4/5 !important;
    object-position: top !important;
    border-radius: 8px 8px 0 0;
  }
  
  .card-team__info {
    padding: 16px;
  }
  
  .card-team__name {
    font-size: 1.125rem !important;
  }
  
  .card-team__position {
    font-size: 0.8125rem !important;
  }
}

@media (min-width: 481px) and (max-width: 768px) {
  .team-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 16px;
    padding: 0 16px;
  }
  
  .card-team {
    height: auto !important;
    min-height: 280px;
  }
  
  .card-team__photo,
  .card-team__front img {
    aspect-ratio: 4/5 !important;
    object-position: top !important;
  }
  
  .card-team__name {
    font-size: 1rem !important;
  }
}

/* === BLOG CARDS — MOBILE === */
@media (max-width: 768px) {
  .blog-grid,
  .blog-grid--3 {
    grid-template-columns: 1fr !important;
    gap: 24px;
    padding: 0 16px;
  }
  
  .card-blog,
  .blog-card {
    border-radius: 12px;
    overflow: hidden;
  }
  
  .card-blog__image-wrapper,
  .blog-card__image-wrap {
    height: 200px !important;
  }
  
  .card-blog__image-wrapper img,
  .blog-card__image-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  
  .card-blog__content,
  .blog-card__content {
    padding: 16px 20px 20px;
  }
  
  .card-blog__title,
  .blog-card__title {
    font-size: 1rem !important;
    line-height: 1.4;
    margin-bottom: 8px;
  }
  
  .card-blog__excerpt,
  .blog-card__excerpt {
    font-size: 0.875rem;
    line-height: 1.6;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  
  .card-blog__meta,
  .blog-card__meta {
    font-size: 0.75rem;
    margin-top: 12px;
  }
}

/* === CTA SECTION — MOBILE === */
@media (max-width: 768px) {
  .section-cta,
  .contact-cta {
    padding: 48px 20px;
    text-align: center;
  }
  
  .section-cta__title,
  .contact-cta__title {
    font-size: clamp(1.375rem, 5.5vw, 1.75rem) !important;
    line-height: 1.25;
    margin-bottom: 12px;
  }
  
  .section-cta__subtitle,
  .contact-cta__subtitle {
    font-size: 0.9375rem;
    line-height: 1.6;
    margin-bottom: 24px;
    max-width: 340px;
    margin-left: auto;
    margin-right: auto;
  }
  
  .section-cta__buttons,
  .contact-cta__buttons {
    flex-direction: column;
    align-items: center;
    gap: 12px;
  }
  
  .section-cta__buttons .btn,
  .contact-cta__buttons .btn {
    width: 100%;
    max-width: 280px;
    padding: 14px 24px;
    font-size: 0.9375rem;
    justify-content: center;
  }
}

/* === FOOTER — MOBILE POLISH === */
@media (max-width: 768px) {
  .site-footer {
    padding-top: 40px;
  }
  
  /* Footer logo & description */
  .footer-brand,
  .footer-widgets > div:first-child {
    text-align: center;
    margin-bottom: 24px;
    padding: 0 16px;
  }
  
  .footer-brand p,
  .footer-widgets > div:first-child p {
    font-size: 0.8125rem;
    line-height: 1.6;
    max-width: 340px;
    margin-left: auto;
    margin-right: auto;
    opacity: 0.75;
  }
  
  /* Footer accordion sections */
  .footer-widgets {
    gap: 0 !important;
  }
  
  .footer-col h4,
  .footer-widgets h4 {
    font-size: 0.8125rem;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    padding: 16px 20px;
    margin: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  
  .footer-col ul,
  .footer-widgets ul {
    padding: 0 20px 16px;
  }
  
  .footer-col ul li,
  .footer-widgets ul li {
    padding: 6px 0;
  }
  
  .footer-col ul li a,
  .footer-widgets ul li a {
    font-size: 0.875rem;
    opacity: 0.7;
    transition: opacity 0.2s;
  }
  
  .footer-col ul li a:hover {
    opacity: 1;
  }
  
  /* Footer bottom */
  .footer-bottom {
    padding: 20px 16px;
    text-align: center;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    margin-top: 16px;
  }
  
  .footer-bottom p {
    font-size: 0.75rem;
    opacity: 0.6;
  }
}

/* === MOBILE STICKY CTA BAR === */
@media (max-width: 768px) {
  .mobile-cta-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    display: flex;
    background: #fff;
    box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.1);
    padding: 8px 12px;
    gap: 8px;
    padding-bottom: max(8px, env(safe-area-inset-bottom));
  }
  
  .mobile-cta-bar a {
    flex: 1;
    padding: 12px;
    text-align: center;
    border-radius: 8px;
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: none;
    transition: transform 0.2s, box-shadow 0.2s;
  }
  
  .mobile-cta-bar a:active {
    transform: scale(0.97);
  }
  
  /* Space for sticky CTA bar */
  body {
    padding-bottom: 72px;
  }
}

@media (min-width: 769px) {
  .mobile-cta-bar {
    display: none !important;
  }
  
  body {
    padding-bottom: 0;
  }
}

/* === "VIEW ALL" BUTTONS — MOBILE === */
@media (max-width: 768px) {
  .section__cta,
  a[href*="our-team"],
  a[href*="blog/"] {
    margin-top: 24px;
  }
  
  .btn--outline {
    font-size: 0.875rem;
    padding: 12px 28px;
  }
}

/* === GENERAL MOBILE SPACING === */
@media (max-width: 768px) {
  .section,
  section[class*="section"] {
    padding-top: 40px;
    padding-bottom: 40px;
  }
  
  .container {
    padding-left: 16px;
    padding-right: 16px;
  }
  
  /* Remove horizontal overflow */
  html, body {
    overflow-x: hidden;
  }
}

/* === BACK TO TOP — MOBILE SAFE AREA === */
@media (max-width: 768px) {
  .back-to-top {
    bottom: 80px; /* Above mobile CTA bar */
    right: 16px;
    width: 40px;
    height: 40px;
  }
}

/* === READING PROGRESS BAR — MOBILE === */
@media (max-width: 768px) {
  .reading-progress {
    height: 2px;
  }
}

/* === iPhone SE (320px) SPECIFIC === */
@media (max-width: 360px) {
  .hero__title {
    font-size: 1.625rem !important;
  }
  
  .stats-bar__inner {
    max-width: 280px;
  }
  
  .stats-bar__number,
  .stat-item__number {
    font-size: 1.5rem !important;
  }
  
  .section-header__title,
  .section-header h2 {
    font-size: 1.375rem !important;
  }
  
  .card-practice__link {
    padding: 16px;
    gap: 12px;
  }
}

/* === TABLET LANDSCAPE (iPad) === */
@media (min-width: 769px) and (max-width: 1024px) {
  .hero__title {
    font-size: clamp(2rem, 4.5vw, 3rem) !important;
  }
  
  .practices-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 16px;
  }
  
  .team-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 20px;
  }
  
  .blog-grid--3 {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 20px;
  }
}

/* === TOUCH DEVICE IMPROVEMENTS === */
@media (hover: none) and (pointer: coarse) {
  /* Disable flip card on touch — show front only */
  .card-team__inner {
    transform: none !important;
  }
  
  .card-team:hover .card-team__inner,
  .card-team:focus .card-team__inner {
    transform: none !important;
  }
  
  /* Make the card link clickable for profile instead */
  .card-team__front {
    cursor: pointer;
  }
  
  /* Larger touch targets */
  .card-practice__link {
    min-height: 56px;
  }
  
  /* Disable hover effects that look weird on touch */
  .card-practice:hover,
  .card-blog:hover,
  .blog-card:hover {
    transform: none !important;
  }
}

/* === LANDSCAPE MODE PHONE === */
@media (max-height: 500px) and (orientation: landscape) {
  .hero {
    padding: 24px 0;
    min-height: auto;
  }
  
  .hero__title {
    font-size: 1.5rem !important;
  }
  
  .stats-bar__inner {
    display: flex !important;
    flex-direction: row;
    gap: 24px;
  }
}

/* === TEAM CARD PHOTO FIX — ensure photos display large on mobile === */
@media (max-width: 480px) {
  .card-team .card-team__front {
    display: flex;
    flex-direction: column;
  }

  .card-team .card-team__front img,
  .card-team .card-team__photo {
    width: 100% !important;
    height: auto !important;
    min-height: 280px;
    aspect-ratio: 4/5 !important;
    object-fit: cover !important;
    object-position: top center !important;
    display: block;
  }

  .card-team__photo-placeholder {
    min-height: 280px;
  }
}

/* === Stats grid fix — consistent on all phone sizes === */
@media (max-width: 480px) {
  .stats-bar__inner {
    max-width: 340px;
  }
}

/* === CRITICAL FIX: Disable flip card on mobile === */
@media (max-width: 768px) {
  .card-team {
    height: auto !important;
    perspective: none !important;
  }

  .card-team__inner {
    transform-style: flat !important;
    transform: none !important;
    transition: none !important;
  }

  .card-team:hover .card-team__inner,
  .card-team:focus-within .card-team__inner {
    transform: none !important;
  }

  .card-team__front {
    position: relative !important;
    backface-visibility: visible !important;
    transform: none !important;
  }

  .card-team__back {
    display: none !important;
  }

  /* Photo fills card width naturally */
  .card-team__front img.card-team__photo,
  .card-team__front img {
    width: 100% !important;
    height: auto !important;
    min-height: 300px;
    max-height: 420px;
    aspect-ratio: 3/4 !important;
    object-fit: cover !important;
    object-position: top center !important;
    display: block !important;
    border-radius: 12px 12px 0 0;
  }

  .card-team__info {
    padding: 16px 20px 20px;
    text-align: center;
    background: #fff;
    border-radius: 0 0 12px 12px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
  }

  .card-team__name {
    font-size: 1.125rem !important;
    font-weight: 700;
    color: var(--navy, #002871);
    margin-bottom: 4px;
  }

  .card-team__position {
    font-size: 0.8125rem !important;
    color: var(--gold, #D4A853) !important;
    font-weight: 600;
  }

  /* Card wrapper shadow */
  .card-team {
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08);
  }

  /* Team grid — wider on phones */
  .team-grid {
    max-width: 400px !important;
    margin-left: auto;
    margin-right: auto;
  }
}

/* === Tablet: 2-col team but still no flip === */
@media (min-width: 481px) and (max-width: 768px) {
  .team-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    max-width: 100% !important;
    gap: 20px;
  }

  .card-team__front img.card-team__photo,
  .card-team__front img {
    min-height: 220px;
    max-height: 320px;
  }
}

/* ============================================================
   NP-LAW MEGAFIX v1.4.0 — Mobile overhaul
   Fixes: practice cards huge, header/footer, menu, spacing
   ============================================================ */

/* === PRACTICE CARDS: COMPACT ON MOBILE === */
@media (max-width: 768px) {
  /* Kill the giant min-height on the card wrapper */
  .card-practice,
  .card-practice.practice-card,
  article.card-practice {
    min-height: auto !important;
    height: auto !important;
    padding: 0 !important;
    display: block !important;
  }

  /* The link inside — horizontal layout */
  .card-practice__link {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 14px !important;
    padding: 16px 18px !important;
    min-height: auto !important;
  }

  /* Icon badge — compact */
  .card-practice__icon-badge {
    flex-shrink: 0;
    width: 44px !important;
    height: 44px !important;
    border-radius: 10px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .card-practice__icon-badge svg,
  .card-practice__icon-badge img {
    width: 20px !important;
    height: 20px !important;
  }

  /* Title — inline, no weird margin */
  .card-practice__title,
  .card-practice__title.practice-card__title {
    font-size: 0.9375rem !important;
    margin-bottom: 2px !important;
    margin-top: 0 !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
    flex: 1;
  }

  /* Description — hidden on very small, shown compact on larger */
  .card-practice__desc,
  .card-practice__desc.practice-card__desc {
    font-size: 0.8125rem !important;
    line-height: 1.4 !important;
    margin-bottom: 0 !important;
    display: none !important; /* Hide desc on mobile — title is enough */
  }

  /* Divider — hide on mobile */
  .card-practice__divider {
    display: none !important;
  }

  /* "Learn more" → small arrow only */
  .card-practice__link-text {
    flex-shrink: 0;
    font-size: 0 !important; /* hide text */
    margin-top: 0 !important;
    gap: 0 !important;
  }

  .card-practice__link-text svg {
    width: 18px !important;
    height: 18px !important;
    color: var(--navy, #002871) !important;
    opacity: 0.4;
  }

  /* Practice grid — tight spacing */
  .practices-grid {
    gap: 8px !important;
    padding: 0 16px !important;
  }

  /* Card hover — subtle on mobile */
  .card-practice:hover {
    transform: none !important;
    box-shadow: var(--shadow-sm, 0 1px 3px rgba(0,0,0,.08)) !important;
  }

  /* ::before accent — remove on mobile */
  .card-practice::before {
    display: none !important;
  }
}

/* === Tablet (481-768): 2-col compact cards === */
@media (min-width: 481px) and (max-width: 768px) {
  .card-practice__desc,
  .card-practice__desc.practice-card__desc {
    display: block !important; /* Show desc on tablets */
    font-size: 0.75rem !important;
  }

  .card-practice__link-text {
    font-size: 0.6875rem !important;
  }
}

/* === HEADER: CLEANER MOBILE === */
@media (max-width: 991px) {
  .site-header {
    padding: 8px 0 !important;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
    background: #fff !important;
  }

  .site-header .container,
  .site-header__inner {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 0 16px !important;
    min-height: 48px !important;
  }

  /* Logo — smaller and cleaner */
  .site-header .custom-logo,
  .site-header__logo img,
  .site-header a[href="/"] img,
  .logo img {
    max-height: 32px !important;
    width: auto !important;
  }

  /* Hamburger */
  .menu-toggle {
    width: 40px !important;
    height: 40px !important;
    padding: 6px !important;
    border: none !important;
    background: none !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 8px !important;
  }

  .menu-toggle:active {
    background: rgba(0,40,113,0.06) !important;
  }

  .menu-toggle svg,
  .menu-toggle .hamburger-icon {
    width: 22px !important;
    height: 22px !important;
    color: var(--navy, #002871) !important;
  }

  /* Reading progress bar — thinner */
  .reading-progress {
    height: 2px !important;
  }
}

/* === MOBILE NAV OVERLAY === */
@media (max-width: 991px) {
  .mobile-nav-overlay,
  .mobile-nav {
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 85vw !important;
    max-width: 360px !important;
    background: #fff !important;
    z-index: 10000 !important;
    padding: 24px !important;
    box-shadow: -4px 0 20px rgba(0,0,0,0.12) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }

  .mobile-nav-overlay .nav-link,
  .mobile-nav a {
    display: block !important;
    padding: 14px 0 !important;
    font-size: 1rem !important;
    font-weight: 600 !important;
    color: var(--navy, #002871) !important;
    text-decoration: none !important;
    border-bottom: 1px solid rgba(0,40,113,0.06) !important;
  }

  .mobile-nav-overlay .nav-link:last-child,
  .mobile-nav a:last-child {
    border-bottom: none !important;
  }

  /* Close button */
  .mobile-nav-close,
  .mobile-nav__close {
    position: absolute !important;
    top: 16px !important;
    right: 16px !important;
    width: 40px !important;
    height: 40px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: none !important;
    border: none !important;
    font-size: 24px !important;
    cursor: pointer !important;
    border-radius: 8px !important;
  }

  /* Backdrop */
  .mobile-nav-backdrop,
  .overlay-bg {
    position: fixed !important;
    inset: 0 !important;
    background: rgba(0,0,0,0.4) !important;
    z-index: 9999 !important;
  }
}

/* === FOOTER: MOBILE POLISH === */
@media (max-width: 768px) {
  .site-footer {
    padding: 32px 0 16px !important;
  }

  .site-footer .container {
    padding: 0 16px !important;
  }

  /* Footer brand/description area */
  .site-footer .footer-brand,
  .footer-widgets > *:first-child {
    margin-bottom: 24px !important;
    text-align: center !important;
  }

  .site-footer .footer-brand p,
  .footer-widgets > *:first-child p {
    font-size: 0.8125rem !important;
    line-height: 1.6 !important;
    opacity: 0.7 !important;
    max-width: 320px !important;
    margin: 8px auto 0 !important;
  }

  /* Footer columns as accordion */
  .footer-col,
  .footer-widgets > div:not(:first-child) {
    border-top: 1px solid rgba(255,255,255,0.08) !important;
  }

  .footer-col h4,
  .footer-widgets h4 {
    padding: 14px 0 !important;
    margin: 0 !important;
    font-size: 0.75rem !important;
    letter-spacing: 1.5px !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    user-select: none !important;
  }

  .footer-col ul {
    padding: 0 0 12px !important;
    margin: 0 !important;
    list-style: none !important;
  }

  .footer-col ul li {
    padding: 5px 0 !important;
  }

  .footer-col ul li a {
    font-size: 0.875rem !important;
    opacity: 0.65 !important;
  }

  .footer-col ul li a:hover {
    opacity: 1 !important;
  }

  /* Contact info in footer */
  .footer-contact li {
    display: flex !important;
    align-items: flex-start !important;
    gap: 8px !important;
    padding: 6px 0 !important;
  }

  /* Footer bottom bar */
  .footer-bottom,
  .site-footer__bottom {
    text-align: center !important;
    padding: 16px 0 8px !important;
    margin-top: 24px !important;
    border-top: 1px solid rgba(255,255,255,0.08) !important;
  }

  .footer-bottom p,
  .site-footer__bottom p {
    font-size: 0.6875rem !important;
    opacity: 0.5 !important;
  }
}

/* === SECTION SPACING — TIGHTER ON MOBILE === */
@media (max-width: 768px) {
  .section,
  section[class*="section--"],
  section[data-marker] {
    padding-top: 36px !important;
    padding-bottom: 36px !important;
  }

  /* Hero has its own padding */
  .hero,
  .section--hero {
    padding-top: 32px !important;
    padding-bottom: 32px !important;
  }
}

/* === STATS BAR — COMPACT === */
@media (max-width: 480px) {
  .stats-bar {
    padding: 20px 16px !important;
  }
}

/* === CTA SECTION — COMPACT MOBILE === */
@media (max-width: 768px) {
  .section-cta,
  .section--cta {
    padding: 36px 20px !important;
  }

  .section-cta h2,
  .section-cta__title {
    font-size: 1.375rem !important;
    line-height: 1.3 !important;
    margin-bottom: 10px !important;
  }
}

/* === BACK TO TOP — proper position above mobile CTA === */
@media (max-width: 768px) {
  .back-to-top {
    bottom: 76px !important;
    right: 12px !important;
    width: 36px !important;
    height: 36px !important;
    font-size: 14px !important;
    z-index: 999 !important;
  }
}

/* === "VIEW ALL" BUTTONS — consistent === */
@media (max-width: 768px) {
  .section__cta,
  .section > .container > a.btn,
  a.btn--outline[href*="our-team"],
  a.btn--outline[href*="blog"] {
    display: block !important;
    text-align: center !important;
    max-width: 200px !important;
    margin: 24px auto 0 !important;
    font-size: 0.8125rem !important;
    padding: 10px 24px !important;
  }
}

/* === ENSURE NO HORIZONTAL OVERFLOW === */
@media (max-width: 768px) {
  html {
    overflow-x: hidden !important;
  }

  body {
    overflow-x: hidden !important;
    width: 100% !important;
  }

  .container {
    max-width: 100% !important;
    overflow: hidden !important;
  }
}

/* ============================================================
   NP-LAW AUDIT FIX v1.4.1
   Fixes ALL 10 issues from mobile audit
   ============================================================ */

/* === FIX #1: "View All Team Members" + all outline buttons text overflow === */
.btn--outline {
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

@media (max-width: 768px) {
  .btn--outline {
    font-size: 0.75rem !important;
    padding: 10px 20px !important;
    max-width: 220px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    display: block !important;
    text-align: center !important;
  }
}

/* === FIX #2: Mobile nav off-screen overflow === */
.mobile-nav {
  transform: translateX(100%);
  transition: transform 0.3s ease;
}

.mobile-nav.is-open,
.mobile-nav.active,
body.nav-open .mobile-nav {
  transform: translateX(0);
}

/* Prevent body horizontal scroll from nav */
.site-header {
  overflow: hidden !important;
}

/* Double insurance */
html, body {
  overflow-x: hidden !important;
}

/* === FIX #3: CTA buttons too wide === */
@media (max-width: 768px) {
  .section-cta .btn,
  .section-cta__buttons .btn,
  .section--cta .btn,
  .contact-cta .btn,
  .contact-cta__buttons .btn {
    max-width: 260px !important;
    width: auto !important;
    padding: 14px 28px !important;
    font-size: 0.875rem !important;
    display: block !important;
    margin: 0 auto !important;
  }

  .section-cta__buttons,
  .contact-cta__buttons {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 10px !important;
  }
}

/* === FIX #4: Hero buttons — not full-width stretched === */
@media (max-width: 768px) {
  .hero__cta {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 10px !important;
  }

  .hero__cta .btn,
  .hero__cta a.btn {
    max-width: 220px !important;
    width: auto !important;
    padding: 12px 28px !important;
    font-size: 0.875rem !important;
    text-align: center !important;
  }

  /* "Our practices" — style as text link, not button */
  .hero__cta .btn--text,
  .hero__cta a:not(.btn--primary):not(.btn--gold) {
    background: none !important;
    border: none !important;
    padding: 8px 0 !important;
    font-size: 0.875rem !important;
    color: var(--navy, #002871) !important;
    font-weight: 600 !important;
    max-width: none !important;
    width: auto !important;
  }
}

/* === FIX #5: Header — reduce to 56px === */
@media (max-width: 991px) {
  .site-header {
    padding: 0 !important;
  }

  .site-header .container {
    padding: 0 16px !important;
    min-height: 56px !important;
    max-height: 56px !important;
    display: flex !important;
    align-items: center !important;
  }

  .site-header .site-logo img,
  .site-header .site-logo__img {
    max-height: 28px !important;
    width: auto !important;
  }

  /* Sticky header also compact */
  .site-header.is-scrolled,
  .site-header.scrolled {
    padding: 0 !important;
    box-shadow: 0 1px 8px rgba(0,0,0,0.08) !important;
  }

  .site-header.is-scrolled .container,
  .site-header.scrolled .container {
    min-height: 48px !important;
    max-height: 48px !important;
  }

  .site-header.is-scrolled .site-logo img {
    max-height: 24px !important;
  }
}

/* === FIX #6: Footer accordion — collapse by default on mobile === */
@media (max-width: 768px) {
  /* Hide list items by default */
  .footer-col--practices .footer-nav,
  .footer-col--practices .footer__links,
  .footer-col--links .footer-nav,
  .footer-col--links .footer__links {
    max-height: 0 !important;
    overflow: hidden !important;
    transition: max-height 0.3s ease !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  /* When expanded (via JS toggle) */
  .footer-col.is-expanded .footer-nav,
  .footer-col.is-expanded .footer__links,
  .footer-col--practices.is-expanded .footer-nav,
  .footer-col--links.is-expanded .footer-nav {
    max-height: 500px !important;
    padding-bottom: 12px !important;
  }

  /* Contact section stays open */
  .footer-col--contact .footer-contact-list {
    max-height: none !important;
    overflow: visible !important;
  }

  /* Toggle indicator rotation */
  .footer-col__title::after,
  .footer__heading::after {
    content: '+' !important;
    float: right !important;
    font-weight: 300 !important;
    font-size: 1.25rem !important;
    color: var(--gold, #D4A853) !important;
    transition: transform 0.3s ease !important;
  }

  .footer-col.is-expanded .footer-col__title::after,
  .footer-col.is-expanded .footer__heading::after {
    content: '−' !important;
  }

  /* Remove existing + from h4 text content */
  .footer-col__title,
  .footer__heading {
    cursor: pointer !important;
  }
}

/* === FIX #7: "Our practices" link in hero — simpler style === */
/* Already handled in Fix #4 above */

/* === FIX #8: Consistent section spacing === */
@media (max-width: 768px) {
  .section,
  section[class*="section--"],
  section[data-marker] {
    padding-top: 32px !important;
    padding-bottom: 32px !important;
  }

  .hero,
  .section--hero {
    padding-top: 28px !important;
    padding-bottom: 24px !important;
  }

  .stats-bar {
    padding: 20px 0 !important;
  }

  /* Expertise banner (above practice cards) */
  .expertise-banner {
    padding: 24px 0 !important;
  }
}

/* === FIX #9: Blog cards — more compact === */
@media (max-width: 768px) {
  .blog-card__image-wrap,
  .card-blog__image-wrapper {
    height: 160px !important;
    max-height: 160px !important;
  }

  .blog-card__excerpt,
  .card-blog__excerpt {
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    font-size: 0.8125rem !important;
    line-height: 1.5 !important;
  }

  .blog-card__title,
  .card-blog__title {
    font-size: 0.9375rem !important;
    line-height: 1.3 !important;
  }

  /* "Read More" link — subtle */
  .blog-card__link,
  .card-blog__link,
  .card-blog a[class*="link-text"],
  .blog-card a[class*="read-more"] {
    font-size: 0.75rem !important;
  }
}

/* === FIX #10: Stats bar — better proportions === */
@media (max-width: 480px) {
  .stats-bar .container,
  .stats-bar__inner {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 16px 12px !important;
    max-width: 320px !important;
    margin: 0 auto !important;
    padding: 0 16px !important;
  }

  .stat-item__number,
  .stats-bar__number {
    font-size: 1.5rem !important;
    font-weight: 800 !important;
    line-height: 1.1 !important;
  }

  .stat-item__label,
  .stats-bar__label {
    font-size: 0.625rem !important;
    letter-spacing: 0.5px !important;
    text-transform: uppercase !important;
    opacity: 0.75 !important;
    margin-top: 2px !important;
  }
}

/* === TARGETED FIX: Button overflow + mobile-nav === */
/* Fix "View All Team Members" overflow — higher specificity */
@media (max-width: 768px) {
  a.btn.btn--outline,
  .section a.btn.btn--outline,
  a.btn--outline[href*="our-team"],
  a.btn--outline[href*="blog"] {
    max-width: 240px !important;
    padding: 10px 16px !important;
    font-size: 0.6875rem !important;
    letter-spacing: 0.5px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
}

/* Fix mobile-nav: use display:none when closed */
.mobile-nav:not(.is-open):not(.active) {
  display: none !important;
}

body.nav-open .mobile-nav,
.mobile-nav.is-open,
.mobile-nav.active {
  display: flex !important;
}
