/* ================================================================
   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;
  transition: all .4s ease;
}
.badrane-topbar + .badrane-navbar {
  top: 38px;
}
.badrane-navbar .nav-logo {
  height: 64px;
  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 */
.badrane-navbar.scrolled {
  position: fixed;
  top: 0 !important;
  background: #fff;
  box-shadow: 0 2px 20px rgba(0,0,0,.08);
  padding: .6rem 0;
}
.badrane-navbar.scrolled .nav-logo { height: 44px; }
.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); }
.badrane-navbar.scrolled .btn-cta {
  background: var(--navy);
}

/* 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: 40px; }
  .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: 4.5rem 0 2rem;
  color: rgba(255,255,255,.6);
  font-size: .88rem;
}
.badrane-footer h5 {
  font-family: var(--font-serif);
  color: #fff;
  font-size: 1.05rem;
  font-weight: 600;
  margin-bottom: 1.25rem;
}
.footer-logo { max-height: 56px; margin-bottom: 1rem; opacity: .9; }
.badrane-footer a { color: rgba(255,255,255,.55); transition: color .2s; }
.badrane-footer a:hover { color: var(--gold); }
.badrane-footer .footer-link { display: block; padding: .3rem 0; }
.badrane-footer .footer-link i { color: var(--gold); margin-right: .5rem; font-size: .7rem; }
.badrane-footer .footer-contact-item { display: flex; gap: .75rem; margin-bottom: .75rem; }
.badrane-footer .footer-contact-item i { color: var(--gold); font-size: 1rem; margin-top: 3px; }
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,.08);
  padding-top: 1.5rem;
  margin-top: 3rem;
  text-align: center;
  font-size: .82rem;
  color: rgba(255,255,255,.35);
}
.footer-bottom a { color: rgba(255,255,255,.4); }
.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; }
}

/* ----------------------------------------------------------------
   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: 48px; }
}

/* ----------------------------------------------------------------
   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 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: flex-start;
  gap: 1rem;
  padding: 1.25rem;
  background: var(--ivory);
  border: 1px solid var(--border);
  border-radius: 6px;
  margin-bottom: .75rem;
  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: 42px; height: 42px;
  border-radius: 50%;
  background: var(--gold-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--gold);
  font-size: 1.1rem;
  flex-shrink: 0;
}
.contact-info-whatsapp .contact-info-icon {
  background: rgba(37,211,102,.1);
  color: #25d366;
}
.contact-info-card h6 {
  font-family: var(--font-sans);
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--navy);
  margin-bottom: .1rem;
}
.contact-info-card p { font-size: .9rem; margin: 0; }
.contact-info-card a { color: var(--body-color); }
.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: .75rem; }
.footer-social-link {
  width: 36px; height: 36px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.15);
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,.5);
  font-size: .95rem;
  transition: all .25s;
}
.footer-social-link:hover {
  background: var(--gold);
  border-color: var(--gold);
  color: #fff;
}
.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 PAGE CARDS — tighter
   ---------------------------------------------------------------- */
.contact-info-card {
  padding: 1.1rem 1.15rem;
  margin-bottom: .6rem;
}

/* ----------------------------------------------------------------
   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);
}

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