/* ================================================================
   STUDIO LEGALE INTERNAZIONALE BADRANE — v2 Premium
   Bootstrap 5 + Custom Design System
   ================================================================ */

/* ----------------------------------------------------------------
   TOKENS
   ---------------------------------------------------------------- */
:root {
  --navy:        #1a2a4a;
  --navy-deep:   #0f1d35;
  --navy-light:  #2a3f6a;
  --charcoal:    #2c3038;
  --body-color:  #4a4f5c;
  --muted:       #7a7f8c;
  --gold:        #b8975a;
  --gold-light:  #d4b87c;
  --gold-soft:   rgba(184,151,90,.12);
  --ivory:       #faf8f5;
  --border:      #e8e4df;
  --font-serif:  'Cormorant Garamond', Georgia, serif;
  --font-sans:   'Inter', system-ui, sans-serif;
}

/* ----------------------------------------------------------------
   BASE
   ---------------------------------------------------------------- */
body {
  font-family: var(--font-sans);
  color: var(--body-color);
  font-size: 1rem;
  line-height: 1.8;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
h1,h2,h3,h4,h5,h6 {
  font-family: var(--font-serif);
  color: var(--navy);
  font-weight: 600;
  line-height: 1.25;
}
a { color: var(--navy); transition: color .25s; }
a:hover { color: var(--gold); text-decoration: none; }
img { max-width: 100%; height: auto; }
::selection { background: var(--navy); color: #fff; }

/* ----------------------------------------------------------------
   TOPBAR
   ---------------------------------------------------------------- */
.badrane-topbar {
  background: var(--navy-deep);
  padding: 9px 0;
  font-size: .78rem;
  color: rgba(255,255,255,.6);
  letter-spacing: .02em;
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.topbar-item { margin-right: 1.75rem; }
.topbar-item i { color: var(--gold); margin-right: 6px; font-size: .72rem; }
.badrane-lang-switcher a {
  color: rgba(255,255,255,.5);
  font-weight: 600; font-size: .75rem;
  letter-spacing: .08em; text-decoration: none;
  padding: 2px 5px; transition: color .2s;
}
.badrane-lang-switcher a:hover,
.badrane-lang-switcher a.active { color: var(--gold); }
.badrane-lang-switcher .sep { color: rgba(255,255,255,.2); margin: 0 2px; }

/* ----------------------------------------------------------------
   NAVBAR — premium, airy, elegant
   ---------------------------------------------------------------- */
.badrane-navbar {
  background: transparent;
  position: absolute;
  top: 0; left: 0; right: 0;
  z-index: 1030;
  padding: 1.1rem 0;
  /* UX-P3-01: transition specifica (no `all`) — evita jank su prop non animate
     come font-rendering / text-shadow al toggle .scrolled. cubic-bezier
     premium (deep ease-out) coerente con resto del design. */
  transition:
    padding .38s cubic-bezier(.22,.6,.36,1),
    background-color .28s ease,
    box-shadow .28s ease,
    backdrop-filter .28s ease;
  /* GPU hint: il browser compone su layer dedicato durante lo scroll */
  will-change: padding, background-color, box-shadow;
}
.badrane-topbar + .badrane-navbar {
  top: 38px;
}
.badrane-navbar .nav-logo {
  height: 84px;
  width: auto;
  transition: all .35s ease;
}
.badrane-navbar .nav-link {
  font-family: var(--font-sans);
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: rgba(255,255,255,.85) !important;
  padding: .6rem 1rem !important;
  transition: color .25s;
}
.badrane-navbar .nav-link:hover,
.badrane-navbar .nav-link.active {
  color: var(--gold) !important;
}
.badrane-navbar .navbar-toggler {
  border: none; color: #fff; font-size: 1.5rem; padding: 0;
}
.badrane-navbar .btn-cta {
  background: var(--gold);
  color: #fff;
  font-family: var(--font-sans);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: .55rem 1.4rem;
  border-radius: 3px;
  border: none;
  transition: all .3s;
}
.badrane-navbar .btn-cta:hover {
  background: var(--gold-light);
  color: #fff;
  box-shadow: 0 4px 16px rgba(184,151,90,.3);
}
/* Dropdown — Premium Mega-style */
.badrane-navbar .dropdown-menu {
  border: none;
  border-radius: 8px;
  box-shadow: 0 16px 48px rgba(0,0,0,.14);
  padding: 1rem .5rem;
  margin-top: .5rem;
  min-width: 340px;
  border-top: 3px solid var(--gold);
  animation: dropdownFadeIn .25s ease;
}
@keyframes dropdownFadeIn {
  from { opacity: 0; transform: translateY(-8px); }
  to { opacity: 1; transform: translateY(0); }
}
.badrane-navbar .dropdown-item {
  font-size: .84rem;
  padding: .7rem 1rem;
  transition: all .25s;
  border-radius: 6px;
  display: flex;
  align-items: center;
  gap: .75rem;
  color: var(--body-color);
}
.badrane-navbar .dropdown-item i.dropdown-icon {
  width: 32px; height: 32px;
  border-radius: 50%;
  background: var(--gold-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--gold);
  font-size: .85rem;
  flex-shrink: 0;
  transition: all .25s;
}
.badrane-navbar .dropdown-item:hover {
  background: var(--ivory);
  color: var(--navy);
}
.badrane-navbar .dropdown-item:hover i.dropdown-icon {
  background: var(--gold);
  color: #fff;
}
.badrane-navbar .dropdown-item .dropdown-text {
  font-weight: 500;
  line-height: 1.3;
}
.badrane-navbar .dropdown-item .dropdown-desc {
  font-size: .72rem;
  color: var(--muted);
  font-weight: 400;
  display: block;
  margin-top: 1px;
}

/* Scrolled state — UX-P3-01: glassmorphism premium + CTA piu' leggibile */
.badrane-navbar.scrolled {
  position: fixed;
  top: 0 !important;
  /* Glass premium con fallback safe per browser senza backdrop-filter */
  background: rgba(255,255,255,.94);
  backdrop-filter: saturate(160%) blur(10px);
  -webkit-backdrop-filter: saturate(160%) blur(10px);
  /* Shadow piu' soft + warm tint per coerenza palette gold/cream */
  box-shadow: 0 4px 24px rgba(15,29,53,.08), 0 1px 0 rgba(184,151,90,.12);
  padding: .6rem 0;
}
.badrane-navbar.scrolled .nav-logo { height: 54px; }
.badrane-navbar.scrolled .nav-link {
  color: var(--charcoal) !important;
}
.badrane-navbar.scrolled .nav-link:hover,
.badrane-navbar.scrolled .nav-link.active {
  color: var(--gold) !important;
}
.badrane-navbar.scrolled .navbar-toggler { color: var(--navy); }
/* CTA scrolled: deep navy con text bianco esplicito + soft gold glow */
.badrane-navbar.scrolled .btn-cta {
  background: var(--navy);
  color: #fff !important;
  box-shadow: 0 2px 8px rgba(15,29,53,.18);
}
.badrane-navbar.scrolled .btn-cta:hover {
  background: var(--navy-deep);
  color: #fff !important;
  box-shadow: 0 4px 16px rgba(184,151,90,.32);
}

/* Mobile navbar */
@media (max-width: 991.98px) {
  .badrane-navbar {
    background: var(--navy-deep);
    position: relative;
    top: 0 !important;
    padding: .75rem 0;
  }
  .badrane-navbar .nav-logo { height: 60px; }
  .badrane-navbar .nav-link {
    padding: .5rem 0 !important;
    border-bottom: 1px solid rgba(255,255,255,.06);
  }
  .badrane-navbar .btn-cta {
    display: block;
    text-align: center;
    margin-top: .75rem;
  }
  .badrane-navbar.scrolled {
    position: fixed;
    background: #fff;
  }
  .badrane-navbar.scrolled .nav-link {
    border-color: rgba(0,0,0,.05);
  }
}

/* Mobile lang */
.badrane-mobile-lang {
  text-align: center;
  border-top: 1px solid rgba(255,255,255,.1);
  padding-top: .75rem;
}
.badrane-mobile-lang a {
  color: rgba(255,255,255,.5);
  font-weight: 600; font-size: .82rem;
  letter-spacing: .06em; text-decoration: none;
  padding: 4px 10px; transition: color .2s;
}
.badrane-mobile-lang a:hover,
.badrane-mobile-lang a.active { color: var(--gold); }

/* ----------------------------------------------------------------
   HERO
   ---------------------------------------------------------------- */
.badrane-hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  background-size: cover;
  background-position: center;
  overflow: hidden;
}
.badrane-hero .overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(160deg, rgba(15,29,53,.78) 0%, rgba(26,42,74,.68) 100%);
}
.badrane-hero .container { position: relative; z-index: 2; }
.hero-kicker {
  font-family: var(--font-sans);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 1rem;
}
.hero-title {
  font-family: var(--font-serif);
  font-size: 3.2rem;
  font-weight: 600;
  color: #fff;
  line-height: 1.15;
  margin-bottom: .75rem;
}
.hero-subtitle {
  font-family: var(--font-serif);
  font-size: 1.35rem;
  font-style: italic;
  color: var(--gold-light);
}
.hero-btns { margin-top: 2rem; }
.hero-btns .btn {
  padding: .8rem 2rem;
  font-size: .9rem;
  font-weight: 600;
  letter-spacing: .03em;
  border-radius: 3px;
}
.btn-hero-primary {
  background: var(--gold);
  color: #fff;
  border: 2px solid var(--gold);
}
.btn-hero-primary:hover {
  background: var(--gold-light);
  border-color: var(--gold-light);
  color: #fff;
  box-shadow: 0 6px 24px rgba(184,151,90,.3);
}
.btn-hero-outline {
  background: transparent;
  color: #fff;
  border: 2px solid rgba(255,255,255,.5);
}
.btn-hero-outline:hover {
  background: rgba(255,255,255,.1);
  border-color: #fff;
  color: #fff;
}

@media (max-width: 991.98px) {
  .badrane-hero { min-height: 90vh; }
  .hero-title { font-size: 2.2rem; }
  .hero-subtitle { font-size: 1.1rem; }
}
@media (max-width: 575.98px) {
  .badrane-hero { min-height: 100vh; padding-top: 100px; }
  .hero-title { font-size: 1.75rem; }
  .hero-btns .btn { display: block; width: 100%; margin-bottom: .75rem; }
}

/* Inner hero */
.badrane-page-hero {
  position: relative;
  background-size: cover;
  background-position: center;
  padding: 10rem 0 4rem;
  text-align: center;
}
.badrane-page-hero .overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(160deg, rgba(15,29,53,.76) 0%, rgba(26,42,74,.68) 100%);
}
.badrane-page-hero .container { position: relative; z-index: 2; }
.badrane-page-hero h1 {
  font-family: var(--font-serif);
  font-size: 2.5rem;
  color: #fff;
  font-weight: 600;
}
.badrane-page-hero .breadcrumb {
  justify-content: center;
  background: none;
  padding: 0;
  margin-top: 1rem;
}
.badrane-page-hero .breadcrumb-item,
.badrane-page-hero .breadcrumb-item a {
  color: rgba(255,255,255,.6);
  font-size: .85rem;
}
.badrane-page-hero .breadcrumb-item a:hover { color: var(--gold); }
.badrane-page-hero .breadcrumb-item.active { color: rgba(255,255,255,.9); }

/* ----------------------------------------------------------------
   SUBHEADING / SECTION LABEL
   ---------------------------------------------------------------- */
.section-label {
  font-family: var(--font-sans);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--gold);
  display: inline-block;
  margin-bottom: .75rem;
}

/* ----------------------------------------------------------------
   SECTIONS
   ---------------------------------------------------------------- */
.section { padding: 5.5rem 0; }
.section-light { background: var(--ivory); }

/* ----------------------------------------------------------------
   BUTTONS
   ---------------------------------------------------------------- */
.btn-primary-badrane {
  background: var(--navy);
  color: #fff;
  border: none;
  padding: .75rem 2rem;
  font-size: .88rem;
  font-weight: 600;
  letter-spacing: .03em;
  border-radius: 3px;
  transition: all .3s;
}
.btn-primary-badrane:hover {
  background: var(--navy-deep);
  color: #fff;
  box-shadow: 0 6px 24px rgba(26,42,74,.2);
}
.btn-gold {
  background: var(--gold);
  color: #fff;
  border: none;
  padding: .75rem 2rem;
  font-size: .88rem;
  font-weight: 600;
  border-radius: 3px;
  transition: all .3s;
}
.btn-gold:hover {
  background: var(--gold-light);
  color: #fff;
  box-shadow: 0 6px 24px rgba(184,151,90,.25);
}

/* ----------------------------------------------------------------
   PRACTICE CARDS
   ---------------------------------------------------------------- */
.practice-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 2.25rem 1.5rem 1.75rem;
  text-align: center;
  height: 100%;
  transition: all .35s ease;
  position: relative;
}
.practice-card:hover {
  border-color: var(--navy);
  box-shadow: 0 16px 48px rgba(26,42,74,.08);
  transform: translateY(-5px);
}
.practice-card .card-icon {
  width: 64px; height: 64px;
  border-radius: 50%;
  background: var(--gold-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1.25rem;
  font-size: 1.5rem;
  color: var(--gold);
  transition: all .3s;
}
.practice-card:hover .card-icon {
  background: var(--gold);
  color: #fff;
}
.practice-card h3 {
  font-size: 1.1rem;
  font-weight: 600;
  margin-bottom: .6rem;
}
.practice-card p {
  font-size: .86rem;
  color: var(--muted);
  line-height: 1.6;
}
.practice-card .card-link {
  display: inline-block;
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .03em;
  color: var(--navy);
  transition: color .2s;
  margin-top: auto;
}
.practice-card .card-link:hover { color: var(--gold); }

/* ----------------------------------------------------------------
   VALUE / WHY SECTION
   ---------------------------------------------------------------- */
.value-item { padding: 1.5rem 0; }
.value-number {
  font-family: var(--font-serif);
  font-size: 2.75rem;
  font-weight: 700;
  color: var(--gold);
  opacity: .4;
  line-height: 1;
  margin-bottom: .4rem;
}
.value-item h4 {
  font-size: 1.1rem;
  font-weight: 600;
  margin-bottom: .4rem;
}
.value-item p {
  font-size: .88rem;
  color: var(--muted);
}

/* ----------------------------------------------------------------
   DARK OVERLAY SECTION (international, CTA)
   ---------------------------------------------------------------- */
.section-dark-bg {
  position: relative;
  background-size: cover;
  background-position: center;
}
.section-dark-bg .overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(160deg, rgba(15,29,53,.75) 0%, rgba(26,42,74,.7) 100%);
}
.section-dark-bg .container { position: relative; z-index: 2; }

/* ----------------------------------------------------------------
   ATTORNEY
   ---------------------------------------------------------------- */
.attorney-portrait {
  border-radius: 6px;
  overflow: hidden;
}
.attorney-portrait img {
  width: 100%;
  display: block;
}
.attorney-role {
  font-family: var(--font-serif);
  font-style: italic;
  color: var(--muted);
  font-size: 1.05rem;
}
.attorney-badge {
  display: flex;
  align-items: center;
  gap: .6rem;
  background: var(--ivory);
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: .65rem 1rem;
  font-size: .82rem;
  font-weight: 500;
  color: var(--navy);
}
.attorney-badge i {
  color: var(--gold);
  font-size: 1.1rem;
}

/* ----------------------------------------------------------------
   STAT BLOCK — Premium
   ---------------------------------------------------------------- */
.stat-block {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 1.25rem 1rem;
  text-align: center;
  position: relative;
  overflow: hidden;
  transition: all .4s ease;
}
.stat-block::before {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 3px;
  background: var(--gold);
  transform: scaleX(0);
  transition: transform .4s ease;
}
.stat-block:hover::before {
  transform: scaleX(1);
}
.stat-block:hover {
  border-color: var(--gold);
  box-shadow: 0 8px 24px rgba(184,151,90,.1);
  transform: translateY(-3px);
}
.stat-block h4 {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 1.5rem;
  color: var(--gold);
  margin-bottom: .3rem;
  line-height: 1.15;
}
.stat-block p {
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--muted);
  margin: 0;
  line-height: 1.3;
}

/* ----------------------------------------------------------------
   VIDEO
   ---------------------------------------------------------------- */
.video-wrapper {
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 24px 64px rgba(26,42,74,.12);
  background: var(--navy-deep);
}
.video-wrapper video {
  width: 100%;
  display: block;
}

/* ----------------------------------------------------------------
   CHECK LIST ITEMS
   ---------------------------------------------------------------- */
.check-item {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  margin-bottom: .75rem;
}
.check-item i {
  color: var(--gold);
  font-size: 1.2rem;
  flex-shrink: 0;
  margin-top: 2px;
}

/* ----------------------------------------------------------------
   CONTACT FORM
   ---------------------------------------------------------------- */
.contact-form {
  background: var(--ivory);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 2.5rem;
}
.contact-form .form-control {
  border: 1.5px solid #cbc6be;
  border-radius: 4px;
  padding: .8rem 1.1rem;
  font-size: .9rem;
  background: #fff;
  transition: border-color .2s;
}
.contact-form .form-control:focus {
  border-color: var(--navy);
  box-shadow: 0 0 0 3px rgba(26,42,74,.08);
}
.contact-form .form-control::placeholder {
  color: var(--muted);
  font-size: .88rem;
}

.contact-info-item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.contact-info-item i {
  color: var(--gold);
  font-size: 1.4rem;
  flex-shrink: 0;
  margin-top: 3px;
}
.contact-info-item h6 {
  font-family: var(--font-sans);
  font-size: .78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--navy);
  margin-bottom: .15rem;
}
.contact-info-item p { font-size: .92rem; margin: 0; }
.contact-info-item a { color: var(--body-color); }
.contact-info-item a:hover { color: var(--gold); }

/* ----------------------------------------------------------------
   HIGHLIGHT BOX
   ---------------------------------------------------------------- */
.highlight-box {
  background: var(--ivory);
  border-left: 4px solid var(--gold);
  border-radius: 0 6px 6px 0;
  padding: 2rem 2.25rem;
}
.highlight-box h4 {
  font-size: 1.15rem;
  margin-bottom: 1rem;
}

/* ----------------------------------------------------------------
   SIDEBAR
   ---------------------------------------------------------------- */
.sidebar-nav li {
  list-style: none;
  border-bottom: 1px solid var(--border);
}
.sidebar-nav li a {
  display: block;
  padding: .65rem 0;
  font-size: .88rem;
  color: var(--body-color);
  transition: all .2s;
}
.sidebar-nav li a:hover,
.sidebar-nav li.active a {
  color: var(--navy);
  padding-left: .5rem;
}
.sidebar-cta {
  background: var(--navy);
  border-radius: 6px;
  padding: 1.75rem;
  color: #fff;
}
.sidebar-cta h4 { color: #fff; font-size: 1.1rem; }
.sidebar-cta p { color: rgba(255,255,255,.7); font-size: .88rem; }

/* ----------------------------------------------------------------
   FOOTER
   ---------------------------------------------------------------- */
.badrane-footer {
  background: var(--navy-deep);
  padding: 5rem 0 2rem;
  color: rgba(255,255,255,.6);
  font-size: .86rem;
  border-top: 3px solid var(--gold);
}
.badrane-footer .footer-heading {
  font-family: var(--font-sans);
  color: #fff;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  margin-bottom: 1.25rem;
  padding-bottom: .6rem;
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.badrane-footer h5 {
  font-family: var(--font-sans);
  color: #fff;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  margin-bottom: 1.25rem;
}
.footer-logo { max-height: 72px; margin-bottom: .75rem; opacity: .92; }
.footer-desc { font-size: .84rem; line-height: 1.7; color: rgba(255,255,255,.5); max-width: none; }
.badrane-footer a { color: rgba(255,255,255,.55); transition: color .2s; text-decoration: none; }
.badrane-footer a:hover { color: var(--gold); }
.badrane-footer .footer-link {
  display: block; padding: .35rem 0; font-size: .84rem;
  transition: padding-left .2s;
}
.badrane-footer .footer-link:hover { padding-left: .35rem; }
.badrane-footer .footer-link i { color: var(--gold); margin-right: .4rem; font-size: .6rem; }
.badrane-footer .footer-contact-item { display: flex; gap: .65rem; margin-bottom: .65rem; align-items: flex-start; }
.badrane-footer .footer-contact-item i { color: var(--gold); font-size: .9rem; margin-top: 3px; flex-shrink: 0; }
.footer-hours h6 { font-size: .72rem; font-weight: 700; color: rgba(255,255,255,.4); text-transform: uppercase; letter-spacing: .08em; margin-bottom: .35rem; }
.footer-hours p { font-size: .82rem; margin-bottom: .15rem; max-width: none; }
.footer-hours-note { font-size: .78rem; color: rgba(255,255,255,.35); font-style: italic; }
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,.06);
  padding-top: 1.75rem;
  margin-top: 3.5rem;
  text-align: center;
  font-size: .78rem;
  color: rgba(255,255,255,.3);
}
.footer-bottom a { color: rgba(255,255,255,.35); }
.footer-bottom a:hover { color: var(--gold); }

/* ----------------------------------------------------------------
   ALERT
   ---------------------------------------------------------------- */
.alert-success {
  background: #f0f7f0;
  border-color: #c8e6c9;
  color: #2e7d32;
  border-radius: 4px;
}

/* ----------------------------------------------------------------
   RESPONSIVE REFINEMENTS
   ---------------------------------------------------------------- */
@media (max-width: 767.98px) {
  .section { padding: 3.5rem 0; }
  h2 { font-size: 1.6rem; }
  .contact-form { padding: 1.5rem; }
  .attorney-badge { font-size: .78rem; padding: .5rem .75rem; }
}

/* ----------------------------------------------------------------
   UX-P2-06 — Mobile compact: riduce scroll length home senza perdere SEO
   - target phase 1: -10/-15% scrollHeight su /<lang>/ mobile <=767px;
   - solo padding/spacing, nessun contenuto rimosso o display:none;
   - overflow horizontal verificato 0 (gia' policy esistente).
   ---------------------------------------------------------------- */
@media (max-width: 767.98px) {
  /* Padding sezioni: 3.5rem → 1.75rem (phase 2: ulteriore -16px × 2 × ~14 sezioni) */
  .page-home .section { padding: 1.75rem 0; }

  /* Hero compact mobile: 100vh + 100px → 80vh + 80px (≈ -180px) */
  .page-home .badrane-hero {
    min-height: 80vh;
    padding-top: 80px;
    padding-bottom: 1.25rem;
  }
  /* Hero title font ridotto su mobile per coerenza scrollHeight */
  .page-home .badrane-hero .hero-title { font-size: 2.05rem; line-height: 1.2; }
  .page-home .badrane-hero .hero-subtitle { font-size: .92rem; line-height: 1.55; margin-bottom: 1.25rem; }

  /* Spazio tra sezioni adiacenti (oggi `4rem` su pa-grid-main margin-bottom) */
  .page-home .pa-grid-main { margin-bottom: 1rem !important; }
  .page-home .pa-grid-complement { margin-bottom: 1rem !important; }
}

/* ----------------------------------------------------------------
   UX-P2-06B — Phase 2 mobile compact: pa-section horizontal scroll snap
   + closing section compact + paragrafi mobile densi
   - target: ulteriore -10% (15489 → ~13900px)
   - SEO/accessibility: tutte le card restano nel DOM, scroll-snap accessibile
   ---------------------------------------------------------------- */
@media (max-width: 767.98px) {
  /* Pa-section: trasforma grid colonna unica (8 card stack 2562px) in
     horizontal scroll snap (1 card visible at time, scroll laterale nativo).
     Pattern industry-standard (Instagram stories, App Store cards).
     Saving stimato: ~-2000px su pa-section. */
  .page-home .pa-grid-main,
  .page-home .pa-grid-complement {
    display: flex !important;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    /* Edge spacing per la prima/ultima card */
    padding: .25rem 1rem .75rem;
    margin-left: -1rem;
    margin-right: -1rem;
    /* Soft scrollbar premium */
    scrollbar-width: thin;
    scrollbar-color: rgba(184,151,90,.4) transparent;
    gap: .85rem !important;
  }
  .page-home .pa-grid-main > .pa-card,
  .page-home .pa-grid-complement > .pa-card {
    flex: 0 0 78%;       /* card occupa ~78% width → preview prossima */
    max-width: 78%;
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }
  /* Scrollbar webkit sobria */
  .page-home .pa-grid-main::-webkit-scrollbar,
  .page-home .pa-grid-complement::-webkit-scrollbar { height: 6px; }
  .page-home .pa-grid-main::-webkit-scrollbar-thumb,
  .page-home .pa-grid-complement::-webkit-scrollbar-thumb {
    background: rgba(184,151,90,.4);
    border-radius: 3px;
  }
  .page-home .pa-grid-main::-webkit-scrollbar-track,
  .page-home .pa-grid-complement::-webkit-scrollbar-track { background: transparent; }

  /* Home-closing-section: padding e margin compact (era 1300px → ~900px) */
  .page-home .home-closing-section { padding: 1.5rem 0 !important; }
  .page-home .home-closing-section h2 { font-size: 1.5rem; line-height: 1.25; margin-bottom: .65rem; }
  .page-home .home-closing-section p { font-size: .9rem; line-height: 1.55; margin-bottom: 1rem; }

  /* Urgency / desk-home compact: ridurre gap e padding intra-section */
  .page-home .urgency-section-premium,
  .page-home .desk-home-section { padding: 1.5rem 0 !important; }

  /* Why-choose: heading + grid compact */
  .page-home .why-choose-section { padding: 1.5rem 0 !important; }

  /* Section paragraphs piu' densi mobile (riduce ~150px su sezioni con bio lunghe) */
  .page-home .section p { margin-bottom: .75rem; }
}

/* ----------------------------------------------------------------
   UX-P3-02 — Footer density cleanup (mobile-only) + desktop polish
   - target: ridurre footer mobile da ~1874px verso ~1100px (-40%)
   - tutti i link restano nel DOM (no display:none, no rimozione)
   - desktop preservato (solo polish footer-bottom mt)
   ---------------------------------------------------------------- */

/* Desktop polish: footer-bottom top margin meno aggressivo (era 3.5rem) */
.badrane-footer .footer-bottom-compact { margin-top: 2.5rem; }

@media (max-width: 767.98px) {
  /* Padding verticale footer compact (era 5rem 0 2rem = 96 + 48 = 144px) */
  .badrane-footer { padding: 2.25rem 0 1.25rem !important; }

  /* Gutter colonne ridotto: g-5 (3rem) e' troppo mobile, .row mb-5 mb 0 */
  .badrane-footer .row.g-5 { --bs-gutter-y: 1.5rem; --bs-gutter-x: 1rem; }
  .badrane-footer .row.mb-5 { margin-bottom: 1rem !important; }

  /* Heading colonne: piu' compatto (era 1.25rem mb + .6rem pb) */
  .badrane-footer .footer-heading {
    margin-bottom: .6rem;
    padding-bottom: .35rem;
    font-size: .72rem;
  }
  .badrane-footer h5 { margin-bottom: .6rem; font-size: .72rem; }

  /* Link footer densi (era .35rem padding) */
  .badrane-footer .footer-link {
    padding: .2rem 0;
    font-size: .82rem;
    line-height: 1.4;
  }

  /* Logo + descrizione brand colonna meno spaziata */
  .badrane-footer .footer-logo { max-height: 56px; margin-bottom: .5rem; }
  .badrane-footer .footer-desc { font-size: .8rem; line-height: 1.55; margin-top: .5rem !important; }
  .badrane-footer .footer-social { margin-top: .75rem !important; gap: .4rem; }
  .badrane-footer .footer-social-link { width: 30px; height: 30px; font-size: .82rem; }

  /* Contatti densi */
  .badrane-footer .footer-contact-item { margin-bottom: .45rem; }
  .badrane-footer .footer-contact-item i { font-size: .82rem; margin-top: 2px; }
  .badrane-footer .footer-vat { margin-top: .65rem !important; font-size: .72rem; }

  /* Hours block */
  .badrane-footer .footer-hours { margin-top: 1rem !important; }
  .badrane-footer .footer-hours h6 { font-size: .68rem; margin-bottom: .25rem; }
  .badrane-footer .footer-hours p { font-size: .78rem; margin-bottom: .1rem; }
  .badrane-footer .footer-hours-note { font-size: .72rem; }

  /* Footer bottom compact (era mt 3.5rem + pt 1.75rem) */
  .badrane-footer .footer-bottom {
    margin-top: 1.25rem;
    padding-top: 1rem;
    font-size: .72rem;
  }
  .badrane-footer .footer-bottom .footer-eeat { font-size: .68rem; line-height: 1.45; }

  /* Sticky CTA UX-P1-03 occupa circa 56px con safe-area: aggiungi spazio
     in fondo al footer per non far coprire l'ultima riga di copyright */
  .badrane-footer { padding-bottom: calc(1.25rem + 64px) !important; }
}

/* RTL: icona chevron del footer-link va flippata + margin opposto */
[dir="rtl"] .badrane-footer .footer-link i,
body.rtl .badrane-footer .footer-link i {
  margin-right: 0;
  margin-left: .4rem;
  transform: scaleX(-1);
}
[dir="rtl"] .badrane-footer .footer-link:hover,
body.rtl .badrane-footer .footer-link:hover {
  padding-left: 0;
  padding-right: .35rem;
}

/* ----------------------------------------------------------------
   VIDEO POSTER / THUMBNAIL — premium cover
   ---------------------------------------------------------------- */
.video-poster-wrap {
  position: relative;
  cursor: pointer;
  border-radius: 8px;
  overflow: hidden;
}
.video-poster-img {
  width: 100%;
  display: block;
  aspect-ratio: 16/9;
  object-fit: cover;
}
.video-poster-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(15,29,53,.15) 0%, rgba(15,29,53,.5) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .3s;
}
.video-poster-wrap:hover .video-poster-overlay {
  background: linear-gradient(180deg, rgba(15,29,53,.2) 0%, rgba(15,29,53,.6) 100%);
}
.video-play-btn {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  border: 3px solid rgba(255,255,255,.8);
  background: rgba(184,151,90,.85);
  color: #fff;
  font-size: 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-left: 5px;
  transition: all .3s;
  box-shadow: 0 8px 32px rgba(0,0,0,.2);
}
.video-poster-wrap:hover .video-play-btn {
  transform: scale(1.08);
  background: var(--gold);
  box-shadow: 0 12px 40px rgba(184,151,90,.4);
}

/* ----------------------------------------------------------------
   PREMIUM REFINEMENTS
   ---------------------------------------------------------------- */

/* Better section separation */
.section + .section-light,
.section-light + .section {
  border-top: 1px solid var(--border);
}

/* Card description max lines */
.practice-card {
  display: flex;
  flex-direction: column;
}
.practice-card p {
  flex-grow: 1;
}

/* Smoother headings */
h2 {
  font-size: 2.25rem;
  margin-bottom: 1rem;
}
@media (max-width: 767.98px) {
  h2 { font-size: 1.65rem; }
}

/* Body text better line-height */
p {
  line-height: 1.85;
  margin-bottom: 1.1rem;
}

/* Strong tag styling */
strong {
  font-weight: 600;
  color: var(--navy);
}

/* Better link in text */
.section a:not(.btn):not(.card-link) {
  text-decoration: underline;
  text-decoration-color: var(--gold);
  text-underline-offset: 3px;
}

/* Attorney portrait enhancement */
.attorney-portrait {
  box-shadow: 0 20px 48px rgba(26,42,74,.12);
}
.attorney-portrait img {
  aspect-ratio: 4/5;
  object-fit: cover;
  object-position: top center;
}

/* (stat-block styles consolidated above) */

/* Footer enhancement */
.badrane-footer {
  border-top: 3px solid var(--gold);
}

/* Page hero better height */
.badrane-page-hero {
  padding: 11rem 0 4.5rem;
}

/* Hero on inner pages more impactful */
.badrane-page-hero h1 {
  font-size: 2.75rem;
  letter-spacing: -.01em;
}
@media (max-width: 767.98px) {
  .badrane-page-hero { padding: 8rem 0 3rem; }
  .badrane-page-hero h1 { font-size: 1.8rem; }
}

/* Contact form enhancement */
.contact-form {
  box-shadow: 0 12px 40px rgba(0,0,0,.04);
}

/* Sidebar CTA pulse */
.sidebar-cta {
  box-shadow: 0 8px 32px rgba(26,42,74,.15);
}

/* Navbar mobile logo */
@media (max-width: 991.98px) {
  .badrane-navbar .nav-logo { height: 60px; }
}

/* ----------------------------------------------------------------
   CONSULTATION PROCESS — Steps
   ---------------------------------------------------------------- */
.process-step {
  text-align: center;
  padding: 2rem 1.5rem;
  position: relative;
}
.process-step-number {
  width: 56px; height: 56px;
  border-radius: 50%;
  background: var(--navy);
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-serif);
  font-size: 1.3rem; font-weight: 700;
  margin: 0 auto 1.25rem;
}
.process-step h4 {
  font-size: 1.05rem;
  margin-bottom: .5rem;
}
.process-step p {
  font-size: .88rem;
  color: var(--muted);
  line-height: 1.6;
}
/* Connector line between steps */
@media (min-width: 768px) {
  .process-step::after {
    content: '';
    position: absolute;
    top: 44px;
    right: -10%;
    width: 20%;
    height: 2px;
    background: var(--border);
  }
  .process-step:last-child::after { display: none; }
}

/* ----------------------------------------------------------------
   LOCATIONS / SEDI
   ---------------------------------------------------------------- */
.location-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 1.75rem;
  height: 100%;
  transition: all .3s;
}
.location-card:hover {
  border-color: var(--gold);
  box-shadow: 0 8px 24px rgba(0,0,0,.06);
}
.location-card .location-icon {
  width: 48px; height: 48px;
  border-radius: 50%;
  background: var(--gold-soft);
  display: flex; align-items: center; justify-content: center;
  color: var(--gold); font-size: 1.2rem;
  margin-bottom: 1rem;
}
.location-card h5 {
  font-size: 1.05rem;
  font-weight: 600;
  margin-bottom: .5rem;
}
.location-card p {
  font-size: .88rem;
  color: var(--muted);
  margin: 0;
  line-height: 1.5;
}

/* ----------------------------------------------------------------
   TESTIMONIALS
   ---------------------------------------------------------------- */
.testimonial-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 2rem;
  height: 100%;
  position: relative;
}
.testimonial-card .quote-icon {
  font-size: 2rem;
  color: var(--gold);
  opacity: .35;
  line-height: 1;
  margin-bottom: .75rem;
  font-family: Georgia, serif;
}
.testimonial-card blockquote {
  font-family: var(--font-serif);
  font-size: 1.05rem;
  font-style: italic;
  line-height: 1.7;
  color: var(--charcoal);
  margin: 0 0 1.25rem;
  border: none;
  padding: 0;
}
.testimonial-card .testimonial-author {
  font-family: var(--font-sans);
  font-size: .82rem;
  font-weight: 600;
  color: var(--navy);
}
.testimonial-card .testimonial-role {
  font-size: .78rem;
  color: var(--muted);
}

/* ----------------------------------------------------------------
   TEAM SECTION
   ---------------------------------------------------------------- */
.team-card {
  text-align: center;
  padding: 1.5rem;
}
.team-card .team-photo {
  width: 140px; height: 140px;
  border-radius: 50%;
  object-fit: cover;
  object-position: top center;
  margin: 0 auto 1rem;
  border: 3px solid var(--border);
  transition: border-color .3s;
}
.team-card:hover .team-photo {
  border-color: var(--gold);
}
.team-card h5 {
  font-size: 1rem;
  font-weight: 600;
  margin-bottom: .25rem;
}
.team-card p {
  font-size: .82rem;
  color: var(--muted);
}
/* Titolare highlight */
.team-card-principal .team-photo {
  width: 180px; height: 180px;
  border-width: 4px;
  border-color: var(--gold);
}

/* ----------------------------------------------------------------
   HERO SCROLL INDICATOR
   ---------------------------------------------------------------- */
.hero-scroll-indicator {
  position: absolute;
  bottom: 2.5rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 5;
}
.scroll-line {
  width: 1px;
  height: 48px;
  background: linear-gradient(to bottom, rgba(255,255,255,.6), transparent);
  animation: scrollPulse 2s ease-in-out infinite;
}
@keyframes scrollPulse {
  0%, 100% { opacity: .4; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.2); }
}

/* ----------------------------------------------------------------
   HIGHLIGHTS BAR — counters strip
   ---------------------------------------------------------------- */
.highlights-bar {
  background: var(--navy);
  padding: 2.5rem 0;
  position: relative;
  z-index: 10;
}
.highlight-counter {
  text-align: center;
  padding: 1rem .5rem;
  position: relative;
}
.highlight-counter::after {
  content: '';
  position: absolute;
  right: 0; top: 15%; height: 70%;
  width: 1px;
  background: rgba(255,255,255,.12);
}
.highlights-bar .row > div:last-child .highlight-counter::after { display: none; }
.counter-number {
  font-family: var(--font-serif);
  font-size: 2.75rem;
  font-weight: 700;
  color: var(--gold);
  line-height: 1;
}
.counter-suffix {
  font-family: var(--font-serif);
  font-size: 2rem;
  font-weight: 700;
  color: var(--gold);
}
.highlight-counter p {
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.6);
  margin: .5rem 0 0;
}
@media (max-width: 767.98px) {
  .counter-number { font-size: 2rem; }
  .highlights-bar { padding: 1.5rem 0; }
  .highlight-counter { padding: .5rem .25rem; }
}

/* ----------------------------------------------------------------
   ABOUT IMAGE STACK
   ---------------------------------------------------------------- */
.about-image-stack {
  position: relative;
  padding-bottom: 2rem;
  padding-right: 2rem;
}
.about-image-stack .img-main {
  position: relative;
  z-index: 2;
}
.about-image-stack .img-accent {
  position: absolute;
  bottom: 0; right: 0;
  width: 45%;
  z-index: 3;
  border: 4px solid #fff;
}
.experience-badge-float {
  position: absolute;
  top: 1.5rem; right: 0;
  background: var(--gold);
  color: #fff;
  padding: 1.25rem 1.5rem;
  border-radius: 6px;
  z-index: 4;
  text-align: center;
  box-shadow: 0 8px 24px rgba(184,151,90,.3);
}
.experience-badge-float strong {
  display: block;
  font-family: var(--font-serif);
  font-size: 2rem;
  font-weight: 700;
  color: #fff;
  line-height: 1;
}
.experience-badge-float span {
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  opacity: .85;
}
@media (max-width: 767.98px) {
  .about-image-stack { padding-bottom: 1.5rem; padding-right: 1.5rem; }
  .about-image-stack .img-accent { width: 40%; }
  .experience-badge-float { padding: .75rem 1rem; }
  .experience-badge-float strong { font-size: 1.5rem; }
}

/* ----------------------------------------------------------------
   TEAM PREMIUM CARDS
   ---------------------------------------------------------------- */
.team-card-premium {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
  transition: all .4s ease;
  height: 100%;
}
.team-card-premium:hover {
  border-color: var(--gold);
  box-shadow: 0 16px 48px rgba(26,42,74,.1);
  transform: translateY(-4px);
}
.team-photo-wrap {
  width: 100%;
  aspect-ratio: 1;
  overflow: hidden;
  background: var(--ivory);
}
.team-photo-premium {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  transition: transform .5s ease;
}
.team-card-premium:hover .team-photo-premium {
  transform: scale(1.04);
}
.team-info {
  padding: 1.25rem 1rem;
  text-align: center;
}
.team-info h5 {
  font-size: .95rem;
  font-weight: 600;
  margin-bottom: .25rem;
}
.team-info .team-role {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: .82rem;
  color: var(--gold);
  margin-bottom: .35rem;
}
.team-info .team-location {
  font-size: .75rem;
  color: var(--muted);
  margin: 0;
}
.team-info .team-location i {
  font-size: .65rem;
  color: var(--gold);
  margin-right: 3px;
}

/* Founder card — larger, with gold accent */
.team-card-founder {
  border-width: 2px;
  border-color: var(--gold);
}
.team-card-founder .team-info h5 {
  font-size: 1.05rem;
}

/* Counsel divider */
.counsel-divider {
  display: flex;
  align-items: center;
  gap: 1.25rem;
}
.counsel-divider::before,
.counsel-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--border);
}
.counsel-divider span {
  font-family: var(--font-sans);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--muted);
  white-space: nowrap;
}

/* ----------------------------------------------------------------
   APPROACH SECTION
   ---------------------------------------------------------------- */
.approach-items {
  margin-top: 1rem;
}
.approach-item {
  display: flex;
  gap: 1.25rem;
  padding: 1.25rem 0;
  border-bottom: 1px solid var(--border);
}
.approach-item:last-child { border-bottom: none; }
.approach-icon {
  width: 52px; height: 52px;
  border-radius: 50%;
  background: var(--gold-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  color: var(--gold);
  flex-shrink: 0;
  transition: all .3s;
}
.approach-item:hover .approach-icon {
  background: var(--gold);
  color: #fff;
}
.approach-item h5 {
  font-size: .95rem;
  font-weight: 600;
  margin-bottom: .25rem;
}
.approach-item p {
  font-size: .85rem;
  color: var(--muted);
  margin: 0;
  line-height: 1.55;
}

/* ----------------------------------------------------------------
   TESTIMONIALS PREMIUM
   ---------------------------------------------------------------- */
.section-testimonials {
  position: relative;
  background-size: cover;
  background-position: center;
  padding: 5.5rem 0;
}
.testimonial-card-premium {
  background: rgba(255,255,255,.95);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 2rem 1.75rem;
  height: 100%;
  display: flex;
  flex-direction: column;
  transition: all .35s;
  box-shadow: 0 8px 32px rgba(0,0,0,.08);
}
.testimonial-card-premium:hover {
  background: #fff;
  border-color: var(--gold);
  transform: translateY(-4px);
  box-shadow: 0 16px 48px rgba(0,0,0,.12);
}
.testimonial-quote-mark {
  color: var(--gold);
  font-size: 1.75rem;
  margin-bottom: .75rem;
  opacity: .6;
}
.testimonial-card-premium blockquote {
  font-family: var(--font-serif);
  font-size: 1rem;
  font-style: italic;
  line-height: 1.75;
  color: var(--charcoal);
  margin: 0 0 1.5rem;
  border: none;
  padding: 0;
  flex-grow: 1;
}
.testimonial-footer {
  display: flex;
  align-items: center;
  gap: .75rem;
}
.testimonial-author-avatar {
  width: 42px; height: 42px;
  border-radius: 50%;
  background: var(--gold);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-serif);
  font-size: .85rem;
  font-weight: 700;
  flex-shrink: 0;
}
.testimonial-author-name {
  font-family: var(--font-sans);
  font-size: .82rem;
  font-weight: 600;
  color: var(--navy);
}
.testimonial-author-case {
  font-size: .75rem;
  color: var(--muted);
}
.testimonial-stars {
  margin-top: 1rem;
  color: var(--gold);
  font-size: .7rem;
  letter-spacing: 2px;
}

/* ----------------------------------------------------------------
   INTERNATIONAL COUNTRY TAGS
   ---------------------------------------------------------------- */
.intl-countries {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}
.intl-country-tag {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 4px;
  padding: .45rem .9rem;
  font-size: .78rem;
  font-weight: 500;
  color: rgba(255,255,255,.8);
  transition: all .25s;
}
.intl-country-tag:hover {
  background: rgba(184,151,90,.2);
  border-color: var(--gold);
  color: #fff;
}
.intl-country-tag i {
  color: var(--gold);
  font-size: .7rem;
}

/* ----------------------------------------------------------------
   INTL MAP
   ---------------------------------------------------------------- */
.intl-map-wrap {
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 16px 48px rgba(0,0,0,.2);
}

/* ----------------------------------------------------------------
   ABOUT — Hero Image
   ---------------------------------------------------------------- */
.about-hero-image {
  position: relative;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 24px 64px rgba(26,42,74,.14);
}
.about-hero-image img {
  width: 100%;
  display: block;
  aspect-ratio: 4/5;
  object-fit: cover;
  object-position: center;
  transition: transform .7s ease;
}
.about-hero-image:hover img {
  transform: scale(1.02);
}
.about-hero-badge {
  position: absolute;
  bottom: 1.5rem;
  right: 1.5rem;
  background: var(--gold);
  color: #fff;
  padding: 1.1rem 1.4rem;
  border-radius: 6px;
  text-align: center;
  box-shadow: 0 8px 24px rgba(184,151,90,.35);
}
.about-hero-badge strong {
  display: block;
  font-family: var(--font-serif);
  font-size: 1.8rem;
  font-weight: 700;
  color: #fff;
  line-height: 1;
}
.about-hero-badge span {
  font-size: .65rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  opacity: .85;
}

/* About stats row */
.about-stats {
  display: flex;
  gap: 0;
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
}
.about-stat {
  flex: 1;
  text-align: center;
  padding: 1.25rem .75rem;
  border-right: 1px solid var(--border);
  transition: background .3s;
}
.about-stat:last-child { border-right: none; }
.about-stat:hover { background: var(--gold-soft); }
.about-stat-number {
  font-family: var(--font-serif);
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--gold);
  line-height: 1;
}
.about-stat-label {
  font-size: .65rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--muted);
  margin-top: .35rem;
}

/* ----------------------------------------------------------------
   VALUE CARDS (About page)
   ---------------------------------------------------------------- */
.value-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 2rem 1.5rem;
  height: 100%;
  text-align: center;
  transition: all .4s ease;
  position: relative;
  overflow: hidden;
}
.value-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: var(--gold);
  transform: scaleX(0);
  transition: transform .4s ease;
}
.value-card:hover::before {
  transform: scaleX(1);
}
.value-card:hover {
  box-shadow: 0 16px 48px rgba(26,42,74,.08);
  transform: translateY(-5px);
}
.value-card-icon {
  width: 56px; height: 56px;
  border-radius: 50%;
  background: var(--gold-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--gold);
  font-size: 1.3rem;
  margin: 0 auto 1.25rem;
  transition: all .35s;
}
.value-card:hover .value-card-icon {
  background: var(--gold);
  color: #fff;
  transform: scale(1.08);
}
.value-card h4 {
  font-size: 1rem;
  font-weight: 600;
  margin-bottom: .5rem;
}
.value-card p {
  font-size: .84rem;
  color: var(--muted);
  margin: 0;
  line-height: 1.55;
}

/* ----------------------------------------------------------------
   FOUNDER PORTRAIT (About page)
   ---------------------------------------------------------------- */
.founder-portrait {
  position: relative;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 24px 64px rgba(26,42,74,.12);
}
.founder-portrait img {
  width: 100%;
  display: block;
  aspect-ratio: 4/5;
  object-fit: cover;
  object-position: top center;
}
.founder-portrait-accent {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 5px;
  background: linear-gradient(to right, var(--gold), var(--gold-light));
}

/* Founder badges */
.founder-badges {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
}
.founder-badge {
  display: flex;
  align-items: center;
  gap: .5rem;
  background: var(--ivory);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: .6rem 1rem;
  font-size: .8rem;
  font-weight: 500;
  color: var(--navy);
  transition: all .3s;
}
.founder-badge:hover {
  border-color: var(--gold);
  background: var(--gold-soft);
}
.founder-badge i {
  color: var(--gold);
  font-size: 1rem;
}

/* ----------------------------------------------------------------
   TEAM MEMBER CARD v2 (overlay hover reveal)
   ---------------------------------------------------------------- */
.team-member-card {
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--border);
  transition: all .4s ease;
  height: 100%;
}
.team-member-card:hover {
  border-color: var(--gold);
  box-shadow: 0 16px 48px rgba(26,42,74,.1);
  transform: translateY(-4px);
}
.team-member-photo {
  position: relative;
  overflow: hidden;
  aspect-ratio: 1;
  background: var(--ivory);
}
.team-member-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  transition: transform .6s ease;
}
.team-member-card:hover .team-member-photo img {
  transform: scale(1.06);
}
.team-member-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(15,29,53,.7) 0%, transparent 50%);
  opacity: 0;
  transition: opacity .4s ease;
  display: flex;
  align-items: flex-end;
  padding: 1.25rem;
}
.team-member-card:hover .team-member-overlay {
  opacity: 1;
}
.team-member-overlay-content {
  width: 100%;
}
.team-member-tag {
  display: inline-block;
  background: var(--gold);
  color: #fff;
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: .3rem .7rem;
  border-radius: 3px;
}
.team-member-info {
  padding: 1.15rem 1rem;
  text-align: center;
}
.team-member-info h5 {
  font-size: .92rem;
  font-weight: 600;
  margin-bottom: .2rem;
}
.team-member-role {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: .8rem;
  color: var(--gold);
  margin-bottom: .3rem;
}
.team-member-loc {
  font-size: .72rem;
  color: var(--muted);
  margin: 0;
}
.team-member-loc i {
  color: var(--gold);
  font-size: .62rem;
  margin-right: 2px;
}

/* Founder card highlight */
.team-member-founder {
  border-width: 2px;
  border-color: var(--gold);
}

@media (max-width: 575.98px) {
  .about-stats { flex-wrap: wrap; }
  .about-stat { flex: 0 0 50%; border-bottom: 1px solid var(--border); }
  .about-stat:nth-child(2) { border-right: none; }
  .about-stat:nth-child(3), .about-stat:nth-child(4) { border-bottom: none; }
  .founder-badges { gap: .4rem; }
  .founder-badge { font-size: .75rem; padding: .45rem .7rem; }
}

/* ----------------------------------------------------------------
   PRACTICE DETAIL — Process Mini Cards
   ---------------------------------------------------------------- */
.process-mini-card {
  background: var(--ivory);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 1.5rem;
  height: 100%;
  text-align: center;
  transition: all .35s;
}
.process-mini-card:hover {
  border-color: var(--gold);
  box-shadow: 0 8px 24px rgba(0,0,0,.06);
  transform: translateY(-3px);
}
.process-mini-icon {
  width: 48px; height: 48px;
  border-radius: 50%;
  background: var(--gold-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--gold);
  font-size: 1.15rem;
  margin: 0 auto 1rem;
  transition: all .3s;
}
.process-mini-card:hover .process-mini-icon {
  background: var(--gold);
  color: #fff;
}
.process-mini-card h6 {
  font-size: .88rem;
  font-weight: 600;
  margin-bottom: .4rem;
}
.process-mini-card p {
  font-size: .8rem;
  color: var(--muted);
  margin: 0;
  line-height: 1.5;
}

/* Practice content blocks */
.practice-content-block { margin-bottom: 1.5rem; }
.practice-content-block p { margin-bottom: 1rem; }
.practice-content-block h4 { font-size: 1.1rem; font-weight: 600; color: var(--navy); margin: 2rem 0 .75rem; }
.practice-content-block ul { padding-left: 1.25rem; margin-bottom: 1rem; }
.practice-content-block ul li { margin-bottom: .4rem; font-size: .92rem; line-height: 1.7; color: var(--body-color); }
.practice-content-block ul li::marker { color: var(--gold); }
.practice-callout { background: var(--ivory); border-left: 4px solid var(--gold); border-radius: 0 6px 6px 0; padding: 1.25rem 1.5rem; margin: 1.5rem 0; font-size: .9rem; }
.practice-callout strong { color: var(--navy); }

/* Practice area featured image */
.practice-image-wrap {
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 12px 40px rgba(26,42,74,.1);
  position: relative;
}
.practice-area-img {
  width: 100%;
  display: block;
  aspect-ratio: 16/9;
  object-fit: cover;
  object-position: center;
  transition: transform .6s ease;
}
.practice-image-wrap:hover .practice-area-img {
  transform: scale(1.03);
}
/* Subtle gold bottom accent */
.practice-image-wrap::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 4px;
  background: linear-gradient(to right, var(--gold), var(--gold-light), var(--gold));
}

/* International tags (practice detail) */
.intl-tag {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  background: var(--ivory);
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: .4rem .85rem;
  font-size: .78rem;
  font-weight: 500;
  color: var(--navy);
  transition: all .25s;
}
.intl-tag:hover {
  background: var(--gold-soft);
  border-color: var(--gold);
}
.intl-tag i { color: var(--gold); font-size: .7rem; }

/* Text gold helper */
.text-gold { color: var(--gold); }

/* ----------------------------------------------------------------
   DUAL LOGO
   ---------------------------------------------------------------- */
.badrane-navbar .nav-logo-dark { display: none; }
.badrane-navbar .nav-logo-light { display: inline-block; }
.badrane-navbar.scrolled .nav-logo-dark { display: inline-block; }
.badrane-navbar.scrolled .nav-logo-light { display: none; }
@media (max-width: 991.98px) {
  .badrane-navbar .nav-logo-dark { display: none; }
  .badrane-navbar .nav-logo-light { display: inline-block; }
  .badrane-navbar.scrolled .nav-logo-dark { display: inline-block; }
  .badrane-navbar.scrolled .nav-logo-light { display: none; }
}

/* ----------------------------------------------------------------
   TOPBAR WHATSAPP
   ---------------------------------------------------------------- */
.topbar-whatsapp i { color: #25d366; }
.badrane-topbar a { color: rgba(255,255,255,.6); text-decoration: none; transition: color .2s; }
.badrane-topbar a:hover { color: var(--gold); }

/* ----------------------------------------------------------------
   ABOUT IMAGE SINGLE (replaces stack)
   ---------------------------------------------------------------- */
.about-image-single {
  position: relative;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 20px 48px rgba(26,42,74,.12);
}
.about-image-single img {
  width: 100%;
  display: block;
}

/* ----------------------------------------------------------------
   PROCESS TIMELINE (dynamic consultation steps)
   ---------------------------------------------------------------- */
.process-timeline {
  position: relative;
  display: flex;
  justify-content: center;
  gap: 0;
  padding: 2rem 0;
}
/* Horizontal connector line */
.process-timeline::before {
  content: '';
  position: absolute;
  top: 48px;
  left: 15%;
  right: 15%;
  height: 2px;
  background: linear-gradient(to right, var(--border), var(--gold), var(--border));
}
.timeline-step {
  flex: 1;
  text-align: center;
  position: relative;
  padding: 0 1.5rem;
}
.timeline-dot {
  width: 18px; height: 18px;
  background: var(--gold);
  border: 3px solid #fff;
  border-radius: 50%;
  margin: 0 auto 1.5rem;
  position: relative;
  z-index: 2;
  box-shadow: 0 0 0 4px var(--gold-soft);
  transition: all .4s;
}
.timeline-step:hover .timeline-dot {
  transform: scale(1.4);
  box-shadow: 0 0 0 10px var(--gold-soft);
}
.timeline-content {
  padding: 2rem 1.5rem;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  transition: all .4s ease;
  height: 100%;
}
.timeline-content:hover {
  border-color: var(--gold);
  box-shadow: 0 12px 36px rgba(26,42,74,.08);
  transform: translateY(-5px);
}
.timeline-icon {
  width: 56px; height: 56px;
  border-radius: 50%;
  background: var(--gold-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--gold);
  font-size: 1.3rem;
  margin: 0 auto 1rem;
  transition: all .4s;
}
.timeline-step:hover .timeline-icon {
  background: var(--gold);
  color: #fff;
  transform: scale(1.08);
}
.timeline-content h4 {
  font-size: 1.05rem;
  margin-bottom: .5rem;
}
.timeline-content p {
  font-size: .88rem;
  color: var(--muted);
  margin: 0;
  line-height: 1.6;
}
.timeline-spacer { display: none; }

@media (max-width: 767.98px) {
  .process-timeline {
    flex-direction: column;
    gap: 1.5rem;
    align-items: stretch;
  }
  .process-timeline::before {
    top: 0; bottom: 0;
    left: 24px; right: auto;
    width: 2px; height: auto;
    background: linear-gradient(to bottom, var(--border), var(--gold), var(--border));
  }
  .timeline-step {
    text-align: left;
    padding: 0 0 0 56px;
  }
  .timeline-dot {
    position: absolute;
    left: 16px;
    top: 2rem;
    margin: 0;
  }
  .timeline-icon { margin: 0 0 .75rem; }
}

/* ----------------------------------------------------------------
   PRACTICE CARD V2
   ---------------------------------------------------------------- */
.practice-card-v2 {
  text-align: left;
  border: none;
  border-top: 4px solid var(--gold);
  border-radius: 0 0 6px 6px;
  box-shadow: 0 4px 20px rgba(0,0,0,.05);
  position: relative;
  overflow: hidden;
}
.practice-card-v2 .card-icon {
  background: none;
  width: auto; height: auto;
  margin: 0 0 1rem;
  font-size: 2rem;
  border-radius: 0;
}
.practice-card-v2:hover .card-icon {
  background: none;
  color: var(--gold);
  transform: scale(1.1);
}
.practice-card-v2 .card-bg-number {
  position: absolute;
  top: -10px; right: 10px;
  font-family: var(--font-serif);
  font-size: 5rem;
  font-weight: 700;
  color: var(--navy);
  opacity: .04;
  line-height: 1;
  pointer-events: none;
}
.practice-card-v2:hover {
  border-color: var(--navy);
  box-shadow: 0 16px 48px rgba(26,42,74,.1);
}
.practice-card-v2 h3 { text-align: left; }
.practice-card-v2 p { text-align: left; }
.practice-card-v2 .card-link { text-align: left; }

/* ----------------------------------------------------------------
   WHY CHOOSE SECTION
   ---------------------------------------------------------------- */
.why-choose-section {
  background: var(--navy);
  padding: 5.5rem 0;
}
.why-choose-section h2 {
  color: #fff;
}
.why-choose-section .section-label {
  color: var(--gold);
}
.why-choose-section .why-intro {
  color: rgba(255,255,255,.85);
  font-size: 1rem;
  line-height: 1.8;
  font-weight: 400;
}
.why-feature {
  display: flex;
  gap: 1rem;
  padding: 1.25rem;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 8px;
  transition: all .35s;
  height: 100%;
}
.why-feature:hover {
  background: rgba(255,255,255,.08);
  border-color: rgba(184,151,90,.3);
}
.why-feature-icon {
  width: 48px; height: 48px;
  border-radius: 50%;
  background: var(--gold-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--gold);
  font-size: 1.15rem;
  flex-shrink: 0;
}
.why-feature h5 {
  color: #fff;
  font-size: .9rem;
  font-weight: 600;
  margin-bottom: .25rem;
  line-height: 1.3;
}
.why-feature p {
  color: rgba(255,255,255,.55);
  font-size: .8rem;
  margin: 0;
  line-height: 1.5;
  max-width: none;
}

/* ----------------------------------------------------------------
   EDITORIAL BLOCK (avv3 / studio feature)
   ---------------------------------------------------------------- */
.editorial-block {
  padding: 5.5rem 0;
  background: var(--ivory);
}
.editorial-image {
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 16px 48px rgba(26,42,74,.1);
}
.editorial-image img {
  width: 100%;
  display: block;
  aspect-ratio: 3/4;
  object-fit: cover;
  object-position: center;
}
.editorial-text {
  border-left: 4px solid var(--gold);
  padding-left: 2rem;
}
.editorial-quote {
  font-family: var(--font-serif);
  font-size: 1.5rem;
  font-style: italic;
  font-weight: 500;
  color: var(--navy);
  line-height: 1.5;
  margin-bottom: 1.5rem;
}
@media (max-width: 767.98px) {
  .editorial-quote { font-size: 1.2rem; }
  .editorial-text { padding-left: 1.25rem; }
}

/* ----------------------------------------------------------------
   CONTACT PAGE — INFO CARDS
   ---------------------------------------------------------------- */
.contact-info-card {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.1rem 1.25rem;
  background: var(--ivory);
  border: 1px solid var(--border);
  border-radius: 8px;
  margin-bottom: .6rem;
  transition: all .3s;
}
.contact-info-card:hover {
  border-color: var(--gold);
  box-shadow: 0 4px 16px rgba(0,0,0,.04);
}
.contact-info-card .contact-info-icon {
  width: 40px; height: 40px;
  border-radius: 50%;
  background: var(--gold-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--gold);
  font-size: 1rem;
  flex-shrink: 0;
}
.contact-info-whatsapp .contact-info-icon {
  background: rgba(37,211,102,.1);
  color: #25d366;
}
.contact-info-text { flex: 1; min-width: 0; }
.contact-info-card h6 {
  font-family: var(--font-sans);
  font-size: .7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--muted);
  margin: 0 0 .2rem;
  line-height: 1.3;
}
.contact-info-card p { font-size: .9rem; margin: 0; line-height: 1.5; max-width: none; }
.contact-info-card a { color: var(--navy); font-weight: 500; }
.contact-info-card a:hover { color: var(--gold); }
.contact-vat-block {
  padding: 1rem 1.25rem;
  background: rgba(26,42,74,.03);
  border-radius: 4px;
  color: var(--muted);
  margin-top: .5rem;
}

/* ----------------------------------------------------------------
   WHATSAPP FLOATING BUTTON
   ---------------------------------------------------------------- */
.whatsapp-float {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  width: 56px; height: 56px;
  border-radius: 50%;
  background: #25d366;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.6rem;
  z-index: 9999;
  box-shadow: 0 4px 16px rgba(37,211,102,.35);
  transition: all .3s;
  text-decoration: none;
}
.whatsapp-float:hover {
  background: #20bd5a;
  color: #fff;
  transform: scale(1.08);
  box-shadow: 0 6px 24px rgba(37,211,102,.45);
}
@media (max-width: 575.98px) {
  .whatsapp-float { bottom: 1.25rem; right: 1.25rem; width: 50px; height: 50px; font-size: 1.4rem; }
}

/* ----------------------------------------------------------------
   WHATSAPP INLINE CTA
   ---------------------------------------------------------------- */
.whatsapp-cta-inline {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.25rem 1.5rem;
  background: linear-gradient(135deg, rgba(37,211,102,.06), rgba(37,211,102,.02));
  border: 1px solid rgba(37,211,102,.15);
  border-radius: 8px;
}
.whatsapp-cta-inline > i {
  color: #25d366;
  font-size: 1.75rem;
  flex-shrink: 0;
}
.whatsapp-cta-inline strong {
  font-size: .88rem;
  color: var(--navy);
}
.whatsapp-cta-inline p { font-size: .85rem; }
.whatsapp-cta-inline a { color: #25d366; font-weight: 600; }

/* WhatsApp banner on home */
.whatsapp-banner {
  background: linear-gradient(135deg, rgba(37,211,102,.05), rgba(37,211,102,.02));
  border-top: 1px solid rgba(37,211,102,.1);
  border-bottom: 1px solid rgba(37,211,102,.1);
  padding: 1.5rem 0;
  text-align: center;
}
.whatsapp-banner a {
  color: #25d366;
  font-weight: 600;
  text-decoration: none;
}
.whatsapp-banner a:hover {
  color: #20bd5a;
}
.whatsapp-banner i {
  font-size: 1.2rem;
  vertical-align: middle;
  margin-right: .5rem;
}

/* ----------------------------------------------------------------
   FOOTER SOCIAL
   ---------------------------------------------------------------- */
.footer-social { display: flex; gap: .5rem; }
.footer-social-link {
  width: 34px; height: 34px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.12);
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,.45);
  font-size: .88rem;
  transition: all .3s;
}
.footer-social-link:hover {
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.25);
  color: #fff;
  transform: translateY(-2px);
}
.footer-social-wa:hover { border-color: #25d366; color: #25d366; }
.footer-vat {
  color: rgba(255,255,255,.3);
  font-size: .78rem;
}

/* ================================================================
   FINAL POLISH — Typography, Spacing, Micro-details
   ================================================================ */

/* ----------------------------------------------------------------
   INTERNATIONAL SECTION — enhanced bg
   ---------------------------------------------------------------- */
.section-intl {
  background-position: center 30%;
}
.section-intl .overlay {
  background: linear-gradient(160deg, rgba(15,29,53,.72) 0%, rgba(26,42,74,.65) 100%) !important;
}

/* ----------------------------------------------------------------
   TYPOGRAPHY REFINEMENTS
   ---------------------------------------------------------------- */
h1 { letter-spacing: -.02em; }
h2 {
  font-size: 2.4rem;
  letter-spacing: -.015em;
  margin-bottom: 1.25rem;
}
h3 { letter-spacing: -.01em; }
p {
  max-width: 680px;
  line-height: 1.9;
}
.text-center p { margin-left: auto; margin-right: auto; }

/* Hero typography */
.hero-title {
  font-size: 3.4rem;
  letter-spacing: -.02em;
  line-height: 1.12;
  text-shadow: 0 2px 20px rgba(0,0,0,.15);
}
.hero-subtitle {
  font-size: 1.4rem;
  text-shadow: 0 1px 8px rgba(0,0,0,.1);
}

/* Section labels breathe more */
.section-label {
  margin-bottom: 1rem;
  font-size: .73rem;
  letter-spacing: .24em;
}

@media (max-width: 767.98px) {
  h2 { font-size: 1.75rem; }
  .hero-title { font-size: 1.85rem; }
  .hero-subtitle { font-size: 1.05rem; }
  p { max-width: 100%; }
}

/* ----------------------------------------------------------------
   SPACING REFINEMENTS
   ---------------------------------------------------------------- */
.section { padding: 5.5rem 0; }
@media (max-width: 767.98px) {
  .section { padding: 3.5rem 0; }
}

/* ----------------------------------------------------------------
   BUTTON REFINEMENTS
   ---------------------------------------------------------------- */
.btn-primary-badrane,
.btn-gold,
.btn-hero-primary,
.btn-hero-outline {
  letter-spacing: .03em;
  border-radius: 3px;
  transition: all .3s ease;
  font-weight: 600;
}
.btn-primary-badrane {
  padding: .75rem 2rem;
  font-size: .88rem;
}
.btn-gold {
  padding: .75rem 2rem;
  font-size: .88rem;
}
.btn-primary-badrane:hover {
  box-shadow: 0 6px 24px rgba(26,42,74,.2);
}
.btn-gold:hover {
  box-shadow: 0 6px 24px rgba(184,151,90,.25);
}

/* ----------------------------------------------------------------
   NAVBAR POLISH
   ---------------------------------------------------------------- */
.badrane-navbar {
  padding: 1.2rem 0;
}
.badrane-navbar .nav-link {
  font-size: .8rem;
  letter-spacing: .07em;
  padding: .65rem 1.1rem !important;
}
.badrane-navbar .btn-cta {
  padding: .6rem 1.5rem;
  font-size: .76rem;
  letter-spacing: .07em;
  border-radius: 4px;
}
.badrane-navbar.scrolled {
  padding: .65rem 0;
  box-shadow: 0 2px 24px rgba(0,0,0,.06);
}
/* Active nav underline */
.badrane-navbar .nav-link.active {
  position: relative;
}
.badrane-navbar .nav-link.active::after {
  content: '';
  position: absolute;
  bottom: .35rem;
  left: 1.1rem;
  right: 1.1rem;
  height: 2px;
  background: var(--gold);
  border-radius: 1px;
}
.badrane-navbar.scrolled .nav-link.active::after {
  bottom: .2rem;
}

/* ----------------------------------------------------------------
   CARD HOVER POLISH
   ---------------------------------------------------------------- */
.practice-card,
.practice-card-v2,
.location-card,
.value-card,
.team-member-card {
  transition: all .4s cubic-bezier(.25,.1,.25,1);
}

/* ----------------------------------------------------------------
   TEAM POLISH
   ---------------------------------------------------------------- */
.team-member-info {
  padding: 1.25rem 1.15rem;
}
.team-member-info h5 {
  font-size: .9rem;
  letter-spacing: .01em;
}
.team-member-role {
  font-size: .78rem;
}
.team-member-loc {
  font-size: .7rem;
  letter-spacing: .02em;
}

/* ----------------------------------------------------------------
   FOOTER POLISH
   ---------------------------------------------------------------- */
.badrane-footer {
  padding: 5rem 0 2rem;
}
.footer-bottom {
  padding-top: 1.75rem;
  margin-top: 3.5rem;
  font-size: .78rem;
}

/* (contact-info-card styles consolidated above) */

/* ----------------------------------------------------------------
   MOBILE REFINEMENTS
   ---------------------------------------------------------------- */
@media (max-width: 575.98px) {
  .badrane-hero { padding-top: 90px; }
  .hero-btns .btn {
    padding: .75rem 1.5rem;
    font-size: .85rem;
  }
  .highlights-bar { padding: 1.25rem 0; }
  .counter-number { font-size: 1.8rem; }
  .highlight-counter p { font-size: .65rem; }
  .practice-card-v2 { padding: 1.75rem 1.25rem 1.5rem; }
  .practice-card-v2 .card-bg-number { font-size: 3.5rem; }
  .timeline-content { padding: 1.25rem; }
  .team-member-info { padding: 1rem .75rem; }
  .team-member-info h5 { font-size: .82rem; }
  .whatsapp-float { bottom: 1rem; right: 1rem; width: 48px; height: 48px; font-size: 1.3rem; }
}

@media (max-width: 767.98px) {
  .founder-portrait { margin-bottom: 1.5rem; }
  .about-hero-image { margin-bottom: 1.5rem; }
  .editorial-image { margin-bottom: 1.5rem; }
  .intl-map-wrap { margin-bottom: 1.5rem; }
}

/* ----------------------------------------------------------------
   IMAGES — consistent shadow & radius
   ---------------------------------------------------------------- */
.about-hero-image,
.founder-portrait,
.editorial-image,
.attorney-portrait,
.intl-map-wrap,
.practice-image-wrap {
  border-radius: 8px;
}

/* ----------------------------------------------------------------
   SMOOTH SCROLL
   ---------------------------------------------------------------- */
html { scroll-behavior: smooth; }

/* ----------------------------------------------------------------
   BOOKING CTA BANNER
   ---------------------------------------------------------------- */
.booking-cta-banner {
  background: var(--navy);
  border-radius: 10px;
  padding: 2rem 2.5rem;
  box-shadow: 0 8px 32px rgba(26,42,74,.15);
}
.booking-cta-banner-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}
.booking-cta-banner h4 {
  color: #fff;
  font-size: 1.15rem;
  margin-bottom: .25rem;
}
.booking-cta-banner p {
  color: rgba(255,255,255,.65);
  font-size: .88rem;
  margin: 0;
  max-width: none;
}
@media (max-width: 767.98px) {
  .booking-cta-banner { padding: 1.5rem; }
  .booking-cta-banner-content { flex-direction: column; align-items: flex-start; gap: 1rem; }
}

/* ----------------------------------------------------------------
   INTERACTIVE MAP + LOCATION SELECTOR
   ---------------------------------------------------------------- */
.map-container {
  position: relative;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 12px 40px rgba(26,42,74,.1);
  border: 1px solid var(--border);
}
.office-map {
  width: 100%;
  height: 480px;
  background: var(--ivory);
}
@media (max-width: 767.98px) {
  .office-map { height: 320px; }
}
.map-overlay-info {
  position: absolute;
  bottom: 1rem;
  left: 1rem;
  right: 1rem;
  background: rgba(255,255,255,.95);
  backdrop-filter: blur(8px);
  border-radius: 6px;
  padding: 1rem 1.25rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  box-shadow: 0 4px 16px rgba(0,0,0,.08);
  font-size: .85rem;
}
.map-overlay-info strong {
  font-size: .9rem;
  color: var(--navy);
  white-space: nowrap;
}
.map-overlay-info span {
  color: var(--muted);
  font-size: .8rem;
  flex-grow: 1;
}
.map-directions-btn {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  background: var(--gold);
  color: #fff;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .03em;
  padding: .45rem .9rem;
  border-radius: 4px;
  text-decoration: none;
  white-space: nowrap;
  transition: all .25s;
  flex-shrink: 0;
}
.map-directions-btn:hover {
  background: var(--gold-light);
  color: #fff;
}
@media (max-width: 575.98px) {
  .map-overlay-info {
    flex-direction: column;
    align-items: flex-start;
    gap: .5rem;
  }
}

/* Location selector cards */
.location-selector {
  display: flex;
  flex-direction: column;
  gap: .5rem;
}
.location-selector-card {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.15rem 1.25rem;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  cursor: pointer;
  transition: all .35s ease;
}
.location-selector-card:hover {
  border-color: var(--gold);
  box-shadow: 0 4px 16px rgba(184,151,90,.08);
}
.location-selector-card.active {
  border-color: var(--gold);
  border-width: 2px;
  background: var(--gold-soft);
  box-shadow: 0 4px 16px rgba(184,151,90,.12);
}
.location-selector-icon {
  width: 40px; height: 40px;
  border-radius: 50%;
  background: var(--gold-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--gold);
  font-size: 1rem;
  flex-shrink: 0;
  transition: all .3s;
}
.location-selector-card.active .location-selector-icon {
  background: var(--gold);
  color: #fff;
}
.location-selector-info {
  flex-grow: 1;
}
.location-selector-info h5 {
  font-size: .92rem;
  font-weight: 600;
  margin-bottom: .15rem;
}
.location-selector-info p {
  font-size: .78rem;
  color: var(--muted);
  margin: 0;
  line-height: 1.4;
  max-width: none;
}
.location-selector-arrow {
  color: var(--border);
  font-size: .85rem;
  transition: all .3s;
  flex-shrink: 0;
}
.location-selector-card.active .location-selector-arrow,
.location-selector-card:hover .location-selector-arrow {
  color: var(--gold);
  transform: translateX(3px);
}

/* ----------------------------------------------------------------
   GLOBAL SEARCH OVERLAY
   ---------------------------------------------------------------- */
.search-overlay {
  position: fixed; inset: 0; z-index: 9999;
  display: flex; align-items: flex-start; justify-content: center;
  padding-top: 12vh;
  opacity: 0; transition: opacity .25s ease;
}
.search-overlay.active { opacity: 1; }
.search-overlay-bg {
  position: absolute; inset: 0;
  background: rgba(15,29,53,.6);
  backdrop-filter: blur(8px);
}
.search-modal {
  position: relative; z-index: 1;
  width: 90%; max-width: 620px;
  background: #fff; border-radius: 12px;
  box-shadow: 0 24px 80px rgba(0,0,0,.2);
  overflow: hidden;
  transform: translateY(-10px);
  transition: transform .25s ease;
}
.search-overlay.active .search-modal { transform: translateY(0); }
.search-header {
  display: flex; align-items: center; gap: .75rem;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--border);
}
.search-input-icon { color: var(--gold); font-size: 1.1rem; flex-shrink: 0; }
.search-input {
  flex: 1; border: none; outline: none;
  font-size: 1.05rem; font-family: var(--font-sans);
  color: var(--navy); background: transparent;
}
.search-input::placeholder { color: var(--muted); }
.search-close {
  background: none; border: none; color: var(--muted);
  font-size: 1.1rem; cursor: pointer; padding: .25rem;
  transition: color .2s;
}
.search-close:hover { color: var(--navy); }
.search-results {
  max-height: 400px; overflow-y: auto;
  padding: .5rem;
}
.search-hint, .search-no-results {
  text-align: center; padding: 2rem 1rem;
  color: var(--muted); font-size: .88rem;
}
.search-hint i, .search-no-results i {
  display: block; font-size: 1.5rem; margin-bottom: .5rem; color: var(--gold); opacity: .5;
}
.search-result {
  display: flex; align-items: flex-start; gap: .75rem;
  padding: .75rem 1rem; border-radius: 8px;
  text-decoration: none; color: var(--body-color);
  transition: background .15s;
}
.search-result:hover, .search-result.active {
  background: var(--ivory); text-decoration: none; color: var(--navy);
}
.search-result-icon {
  width: 36px; height: 36px; border-radius: 8px;
  background: var(--gold-soft); display: flex;
  align-items: center; justify-content: center;
  color: var(--gold); font-size: .95rem; flex-shrink: 0;
  margin-top: .1rem;
}
.search-result.active .search-result-icon { background: var(--gold); color: #fff; }
.search-result-title {
  font-weight: 600; font-size: .9rem; color: var(--navy);
  margin-bottom: .1rem;
}
.search-result-cat {
  font-size: .7rem; color: var(--gold); font-weight: 600;
  letter-spacing: .04em; text-transform: uppercase;
}
.search-result-snippet {
  font-size: .8rem; color: var(--muted); line-height: 1.5;
  margin-top: .2rem;
}
.search-result-snippet mark {
  background: rgba(184,151,90,.2); color: var(--navy);
  padding: 0 2px; border-radius: 2px;
}
.search-footer {
  display: flex; justify-content: space-between;
  padding: .6rem 1.25rem; border-top: 1px solid var(--border);
  font-size: .72rem; color: var(--muted);
}
.search-footer kbd {
  background: #eae6e0; border: 1px solid #d4cfca;
  border-radius: 3px; padding: .15rem .4rem; font-size: .68rem;
  font-family: var(--font-sans); color: var(--navy);
}

/* ----------------------------------------------------------------
   AOS custom
   ---------------------------------------------------------------- */
[data-aos] {
  transition-timing-function: cubic-bezier(.25,.1,.25,1);
}
