/**
 * TOP BAR LANG FIX
 * Correction affichage top bar sur pages EN/ES
 */

/* Top bar - affichage cohérent sur toutes les langues */
.top-bar.top-bar--conversion {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 0.5rem 2rem !important;
  background: rgba(11, 11, 11, 0.94) !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
  min-height: 44px !important;
}

/* Tagline - texte principal */
.top-bar--conversion .top-bar-tagline {
  color: rgba(255, 255, 255, 0.75) !important;
  font-weight: 500 !important;
  font-size: 0.875rem !important;
  flex: 1 1 auto !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

/* Liens téléphone et tarifs */
.top-bar--conversion .top-bar-tel,
.top-bar--conversion .top-bar-link {
  color: #e4e4e7 !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  transition: color 0.2s ease !important;
}

.top-bar--conversion .top-bar-tel:hover,
.top-bar--conversion .top-bar-link:hover {
  color: #fafafa !important;
}

/* Actions - boutons et langue */
.top-bar-actions {
  display: flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
  flex-shrink: 0 !important;
}

/* Boutons téléphone et WhatsApp mobile */
.top-bar-cta-phone,
.top-bar-cta-wa {
  display: none !important;
}

@media (max-width: 1024px) {
  .top-bar-cta-phone,
  .top-bar-cta-wa {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.375rem !important;
    padding: 0.375rem 0.75rem !important;
    border-radius: 6px !important;
    font-size: 0.8125rem !important;
    font-weight: 500 !important;
    text-decoration: none !important;
    transition: all 0.2s ease !important;
  }
  
  .top-bar-cta-phone {
    background: #2563eb !important;
    color: #ffffff !important;
  }
  
  .top-bar-cta-wa {
    background: #25D366 !important;
    color: #ffffff !important;
  }
  
  .top-bar-tagline {
    display: none !important;
  }
}

/* Responsive - cacher sur petit mobile */
@media (max-width: 1024px) {
  .top-bar.top-bar--conversion {
    display: none !important;
  }
}

/* Desktop large */
@media (min-width: 1440px) {
  .top-bar.top-bar--conversion {
    max-width: 1320px !important;
    margin: 0 auto !important;
    padding: 0.5rem 2.5rem !important;
  }
}

/* Logo branding polish (desktop + mobile) */
.header--conversion .header-logo-text,
.header--conversion .mobile-header-logo-text {
  font-family: var(--font-display), "Plus Jakarta Sans", system-ui, sans-serif !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
  text-shadow: 0 1px 10px rgba(0, 0, 0, 0.22) !important;
}

/* Keep visible separation: "Réservation Taxi Paris" */
.header--conversion .header-logo .logo-accent,
.header--conversion .mobile-header-logo .logo-accent {
  margin-left: 0.28rem !important;
  color: #e5e7eb !important;
  letter-spacing: 0.045em !important;
  font-weight: 700 !important;
}

/* Footer branding polish */
.footer .footer-brand .logo {
  display: inline-flex !important;
  align-items: baseline !important;
  gap: 0.42rem !important;
  font-family: var(--font-display), "Plus Jakarta Sans", system-ui, sans-serif !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
  word-spacing: 0.08em !important;
  color: #f5f5f5 !important;
  text-shadow: 0 1px 14px rgba(0, 0, 0, 0.24) !important;
}

.footer .footer-brand .logo .logo-accent {
  margin-left: 0.24rem !important;
  padding: 0.08rem 0.36rem !important;
  border-radius: 999px !important;
  color: #ffffff !important;
  background: linear-gradient(135deg, rgba(229, 231, 235, 0.2), rgba(212, 212, 216, 0.08)) !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  letter-spacing: 0.05em !important;
  font-weight: 700 !important;
}

/* Hard fix for "TaxiParis" glue on some breakpoints */
.footer .footer-brand .logo .logo-accent::before {
  content: "\00a0" !important;
}

@media (min-width: 901px) and (max-width: 1280px) {
  .footer .footer-inner {
    column-gap: clamp(2.8rem, 4vw, 3.6rem) !important;
  }

  .footer .footer-brand {
    padding-right: 1.35rem !important;
    min-width: 0 !important;
  }

  .footer .footer-brand .logo {
    max-width: 100% !important;
    flex-wrap: wrap !important;
    row-gap: 0.2rem !important;
  }

  .footer .footer-nav {
    margin-left: 0.2rem !important;
  }
}

/* Large desktop: open up footer layout */
@media (min-width: 1400px) {
  .footer .container.footer-inner,
  .footer .container {
    max-width: 1520px !important;
  }

  .footer .footer-inner {
    grid-template-columns: minmax(280px, 360px) minmax(760px, 1fr) minmax(250px, 320px) !important;
    column-gap: clamp(2.2rem, 3.2vw, 3.2rem) !important;
    align-items: start !important;
  }

  .footer .footer-nav {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(185px, 1fr)) !important;
    column-gap: clamp(1.6rem, 2.4vw, 2.4rem) !important;
    row-gap: 0 !important;
    margin-left: 0 !important;
    max-width: none !important;
  }

  .footer .footer-col-details {
    border: 0 !important;
    padding: 0 !important;
  }

  .footer .footer-col-details summary {
    padding: 0 0 0.65rem !important;
    pointer-events: none !important;
  }

  .footer .footer-brand p {
    max-width: 32ch !important;
    font-size: 1rem !important;
    line-height: 1.65 !important;
  }

  .footer .footer-col-links a,
  .footer .footer-col a {
    font-size: 1rem !important;
    line-height: 1.5 !important;
  }

  .footer .footer-contact {
    max-width: 290px !important;
    justify-self: end !important;
  }

  .footer .footer-brand .logo {
    font-size: 1.85rem !important;
    line-height: 1.22 !important;
  }

  .footer .footer-col-title,
  .footer .footer-contact-label {
    font-size: 0.8rem !important;
    margin-bottom: 0.55rem !important;
  }

  .footer .footer-col-links {
    gap: 0.72rem !important;
  }
}

@media (max-width: 900px) {
  .footer .footer-brand .logo {
    gap: 0.34rem !important;
    font-size: clamp(1.2rem, 5.4vw, 1.45rem) !important;
    letter-spacing: 0.015em !important;
    word-spacing: 0.06em !important;
  }

  .footer .footer-brand .logo .logo-accent {
    margin-left: 0.2rem !important;
    padding: 0.06rem 0.3rem !important;
  }
}

/* Footer full premium polish */
.footer {
  position: relative !important;
  background: radial-gradient(120% 120% at 50% 0%, rgba(255, 255, 255, 0.05) 0%, rgba(9, 9, 11, 0.94) 48%, #060607 100%) !important;
}

.footer .footer-col-title,
.footer .footer-contact-label {
  letter-spacing: 0.12em !important;
  color: #e7e5e4 !important;
  opacity: 0.95 !important;
}

/* Specialized services blocks (taxi-paris) */
.specialized-services .specialized-services-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
  gap: 1rem !important;
}

.specialized-services .specialized-service-card {
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.02)) !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  border-radius: 14px !important;
  padding: 1rem 1rem 0.85rem !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.22) !important;
}

.specialized-services .specialized-service-card h3 {
  margin: 0 0 0.55rem !important;
  font-size: 1.02rem !important;
  color: #f8fafc !important;
}

.specialized-services .specialized-service-card ul {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  display: grid !important;
  gap: 0.45rem !important;
}

.specialized-services .specialized-service-card li a {
  display: inline-block !important;
  color: #d6d3d1 !important;
  text-decoration: none !important;
  border-bottom: 1px solid transparent !important;
  transition: color 0.2s ease, border-color 0.2s ease !important;
}

.specialized-services .specialized-service-card li a:hover {
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, 0.4) !important;
}

.footer .footer-col-links a,
.footer .footer-col a {
  position: relative !important;
  color: rgba(245, 243, 239, 0.78) !important;
  transition: color 0.2s ease, transform 0.2s ease !important;
}

.footer .footer-col-links a:hover,
.footer .footer-col a:hover {
  color: #ffffff !important;
  transform: translateX(2px) !important;
}

.footer .footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.12) !important;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(0, 0, 0, 0.3)) !important;
}

.footer .footer-bottom p {
  color: rgba(245, 243, 239, 0.82) !important;
  letter-spacing: 0.015em !important;
  white-space: normal !important;
}

/* Copyright spacing fix: avoid "2026Réservation" and "Paris.Tous" */
.footer .footer-bottom p #year {
  display: inline !important;
  margin-right: 0.32rem !important;
}

.footer .footer-bottom p > span:last-child {
  display: inline !important;
  margin-left: 0.32rem !important;
}

@media (max-width: 900px) {
  .footer .footer-nav {
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    border-radius: 14px !important;
    background: rgba(255, 255, 255, 0.02) !important;
    padding: 0.25rem 0.85rem !important;
  }

  .footer .footer-col-details summary {
    font-weight: 650 !important;
    letter-spacing: 0.06em !important;
  }

  .footer .footer-col-details {
    border-bottom: 1px solid rgba(255, 255, 255, 0.09) !important;
  }

  .footer .footer-col-details:last-child {
    border-bottom: none !important;
  }
}

/* Footer premium strong variant */
.footer::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  pointer-events: none !important;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.035), transparent 22%, transparent 78%, rgba(0, 0, 0, 0.24)) !important;
}

.footer .footer-inner {
  position: relative !important;
  z-index: 1 !important;
}

.footer .footer-contact {
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  border-radius: 14px !important;
  background: rgba(255, 255, 255, 0.025) !important;
  padding: 0.95rem !important;
}

.footer .footer-contact a.footer-tel {
  color: #ffffff !important;
  font-weight: 700 !important;
  letter-spacing: 0.03em !important;
}

.footer .footer-contact .footer-whatsapp {
  border: 1px solid rgba(255, 255, 255, 0.18) !important;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.24) !important;
}

@media (min-width: 901px) {
  .footer .footer-col-links a::before,
  .footer .footer-col a::before {
    content: "" !important;
    display: inline-block !important;
    width: 0.32rem !important;
    height: 0.32rem !important;
    border-radius: 50% !important;
    margin-right: 0.45rem !important;
    background: rgba(255, 255, 255, 0.32) !important;
    transform: translateY(-0.03rem) !important;
  }
}

/* Luxe subtle pass */
.footer {
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 -18px 40px rgba(0, 0, 0, 0.35) !important;
}

.footer .footer-brand p {
  color: rgba(245, 243, 239, 0.7) !important;
}

.footer .footer-col-links a,
.footer .footer-col a {
  text-shadow: 0 1px 10px rgba(0, 0, 0, 0.2) !important;
}

.footer .footer-col-links a:hover,
.footer .footer-col a:hover {
  text-decoration: underline !important;
  text-decoration-color: rgba(255, 255, 255, 0.35) !important;
  text-underline-offset: 0.18em !important;
}

.footer .footer-contact {
  backdrop-filter: blur(8px) saturate(110%) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12), 0 10px 26px rgba(0, 0, 0, 0.24) !important;
}

.footer .footer-bottom {
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08) !important;
}

/* Palace micro-pass: refined and subtle */
.footer {
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06), 0 -12px 28px rgba(0, 0, 0, 0.26) !important;
}

.footer .footer-brand .logo {
  letter-spacing: 0.015em !important;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.18) !important;
}

.footer .footer-col-title,
.footer .footer-contact-label {
  letter-spacing: 0.115em !important;
  color: rgba(245, 243, 239, 0.92) !important;
}

.footer .footer-col-links a,
.footer .footer-col a {
  color: rgba(245, 243, 239, 0.74) !important;
  text-shadow: none !important;
}

.footer .footer-col-links a:hover,
.footer .footer-col a:hover {
  transform: translateX(1px) !important;
  text-decoration-color: rgba(255, 255, 255, 0.28) !important;
}

.footer .footer-contact {
  backdrop-filter: blur(6px) saturate(106%) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 8px 18px rgba(0, 0, 0, 0.2) !important;
}

/* Surgical mobile footer hardening */
@media (max-width: 900px) {
  html body .footer .container.footer-inner {
    display: grid !important;
    grid-template-columns: 1fr !important;
    row-gap: 1.1rem !important;
    padding-top: 2rem !important;
    padding-bottom: 1.1rem !important;
  }

  html body .footer .footer-brand,
  html body .footer .footer-nav,
  html body .footer .footer-contact {
    width: 100% !important;
    max-width: 520px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
  }

  html body .footer .footer-brand {
    text-align: left !important;
    padding-bottom: 0.15rem !important;
  }

  html body .footer .footer-brand .logo {
    display: inline-flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 0.26rem !important;
    font-size: clamp(1.16rem, 4.8vw, 1.35rem) !important;
    margin-bottom: 0.5rem !important;
  }

  html body .footer .footer-brand p {
    margin: 0 !important;
    font-size: 0.93rem !important;
    line-height: 1.55 !important;
  }

  html body .footer .footer-nav {
    border-radius: 12px !important;
    padding: 0.2rem 0.8rem !important;
  }

  html body .footer .footer-col-details summary {
    padding-top: 0.82rem !important;
    padding-bottom: 0.82rem !important;
  }

  html body .footer .footer-col-links {
    margin-top: 0.45rem !important;
    padding-bottom: 0.75rem !important;
    gap: 0.6rem !important;
  }

  html body .footer .footer-col-links a {
    font-size: 0.95rem !important;
    line-height: 1.45 !important;
    word-break: break-word !important;
  }

  html body .footer .footer-contact {
    margin-top: 0.1rem !important;
    margin-bottom: 0.85rem !important;
    padding: 0.85rem !important;
    gap: 0.5rem !important;
  }

  html body .footer .footer-contact-label {
    text-align: left !important;
    margin-bottom: 0.3rem !important;
  }

  html body .footer .footer-contact a.footer-tel,
  html body .footer .footer-contact a.footer-tel:visited,
  html body .footer .footer-contact a.footer-tel:hover {
    font-size: 1rem !important;
    padding: 0.72rem 0.85rem !important;
  }

  html body .footer .footer-contact .footer-whatsapp {
    min-height: 44px !important;
  }

  html body .footer .footer-contact a[href^="mailto:"],
  html body .footer .footer-contact .footer-gbp {
    font-size: 0.88rem !important;
    line-height: 1.4 !important;
  }

  html body .footer .footer-bottom {
    padding-top: 1rem !important;
    padding-bottom: max(1.05rem, env(safe-area-inset-bottom)) !important;
  }

  html body .footer .footer-bottom p {
    font-size: 0.8rem !important;
    line-height: 1.4 !important;
    text-align: center !important;
  }
}

/* Small mobile: keep footer fully visible above sticky CTA bar */
@media (max-width: 768px) {
  html body .footer .footer-contact {
    margin-bottom: calc(5.8rem + env(safe-area-inset-bottom)) !important;
  }

  html body .footer .footer-bottom {
    padding-bottom: calc(4.9rem + env(safe-area-inset-bottom)) !important;
  }
}

/* Hero title balance on mobile (homepage card) */
@media (max-width: 768px) {
  html body .hero-content-overlay .hero-title,
  html body .hero-title {
    font-size: clamp(1.45rem, 6.2vw, 2.05rem) !important;
    line-height: 1.14 !important;
    letter-spacing: -0.02em !important;
  }
}

@media (max-width: 480px) {
  html body .hero-content-overlay .hero-title,
  html body .hero-title {
    font-size: clamp(1.35rem, 6.8vw, 1.85rem) !important;
    line-height: 1.12 !important;
  }
}
