@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Poppins:wght@600;700;800&display=swap');

:root {
  --background: 210 20% 98%;
  --foreground: 215 25% 15%;
  --card: 0 0% 100%;
  --card-foreground: 215 25% 15%;
  --primary: 210 85% 45%;
  --primary-foreground: 0 0% 100%;
  --secondary: 195 80% 50%;
  --secondary-foreground: 0 0% 100%;
  --muted: 210 20% 95%;
  --muted-foreground: 215 15% 50%;
  --accent: 45 100% 55%;
  --accent-foreground: 215 25% 15%;
  --destructive: 0 84.2% 60.2%;
  --destructive-foreground: 210 40% 98%;
  --border: 210 20% 90%;
  --input: 210 20% 90%;
  --ring: 210 85% 45%;
  --radius: 0.9rem;
  --hero-overlay: 210 85% 20%;
  --cta-gradient-from: 210 85% 45%;
  --cta-gradient-to: 195 80% 50%;
  --section-alt: 210 25% 96%;
  --whatsapp: 142 70% 40%;
  --whatsapp-foreground: 0 0% 100%;
  --page-gutter: clamp(1rem, 4vw, 2.25rem);
  --section-y: clamp(3.5rem, 7vw, 6rem);
}

*, *::before, *::after { box-sizing: border-box; border-color: hsl(var(--border)); }
html { scroll-behavior: smooth; scroll-padding-top: 5.25rem; }
body {
  margin: 0;
  min-width: 320px;
  overflow-x: hidden;
  font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  background: hsl(var(--background));
  color: hsl(var(--foreground));
  line-height: 1.6;
  text-rendering: geometricPrecision;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, h6 {
  font-family: 'Poppins', 'Inter', system-ui, sans-serif;
  letter-spacing: -0.035em;
  line-height: 1.08;
}
a { color: inherit; text-decoration: none; }
img, svg { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }

.container {
  width: min(100% - (var(--page-gutter) * 2), 1280px);
  margin-inline: auto;
  padding-inline: 0 !important;
}
section { position: relative; }
section:not(#inicio) { padding-block: var(--section-y); }
.section-heading { max-width: 820px; margin-inline: auto; }
.section-heading p { font-size: clamp(0.95rem, 2vw, 1.05rem); }

.gradient-primary {
  background: linear-gradient(135deg, hsl(var(--cta-gradient-from)), hsl(var(--cta-gradient-to)));
}
.gradient-hero-overlay {
  background:
    radial-gradient(circle at 22% 42%, hsl(var(--primary) / 0.45), transparent 34%),
    linear-gradient(90deg, hsl(var(--hero-overlay) / 0.88) 0%, hsl(var(--hero-overlay) / 0.64) 46%, hsl(var(--hero-overlay) / 0.28) 100%);
}
.text-gradient {
  background: linear-gradient(135deg, hsl(var(--primary)), hsl(var(--secondary)));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.shadow-card { box-shadow: 0 14px 42px -26px hsl(var(--primary) / 0.42), 0 8px 22px -18px hsl(var(--foreground) / 0.24); }
.shadow-card-hover { box-shadow: 0 28px 60px -32px hsl(var(--primary) / 0.58), 0 16px 34px -24px hsl(var(--foreground) / 0.28); }


/* Botones con fondo sólido y estados consistentes */
:is(button, a)[data-combo-button],
:is(button, a)[data-payment-toggle],
:is(button, a)[data-detail-support],
:is(button, a)[data-autopay-button],
:is(button, a)[data-payment-support],
#bookingForm button[type="submit"],
#bookingForm [data-booking-email],
#depositForm button[type="submit"],
#expressForm button[type="submit"] {
  border: 1px solid transparent;
  box-shadow: 0 14px 28px -18px hsl(var(--foreground) / .5);
  min-height: 50px;
  position: relative;
  overflow: hidden;
}
:is(button, a)[data-combo-button],
:is(button, a)[data-payment-toggle],
#bookingForm button[type="submit"] {
  background: linear-gradient(135deg, hsl(var(--primary)), hsl(var(--secondary))) !important;
  color: hsl(var(--primary-foreground)) !important;
}
:is(button, a)[data-detail-support],
#depositForm button[type="submit"] {
  background: hsl(var(--whatsapp)) !important;
  color: hsl(var(--whatsapp-foreground)) !important;
}
:is(button, a)[data-autopay-button],
#expressForm button[type="submit"] {
  background: hsl(var(--foreground)) !important;
  color: hsl(var(--background)) !important;
}
:is(button, a)[data-payment-support],
#bookingForm [data-booking-email] {
  background: hsl(var(--secondary)) !important;
  color: hsl(var(--secondary-foreground)) !important;
  border-color: hsl(var(--secondary)) !important;
}
:is(button, a)[data-combo-button]:hover,
:is(button, a)[data-payment-toggle]:hover,
:is(button, a)[data-detail-support]:hover,
:is(button, a)[data-autopay-button]:hover,
:is(button, a)[data-payment-support]:hover,
#bookingForm button[type="submit"]:hover,
#bookingForm [data-booking-email]:hover,
#depositForm button[type="submit"]:hover,
#expressForm button[type="submit"]:hover {
  transform: translateY(-1px);
  filter: saturate(1.08) brightness(1.02);
}
:is(button, a)[data-combo-button]:focus-visible,
:is(button, a)[data-payment-toggle]:focus-visible,
:is(button, a)[data-detail-support]:focus-visible,
:is(button, a)[data-autopay-button]:focus-visible,
:is(button, a)[data-payment-support]:focus-visible,
#bookingForm button[type="submit"]:focus-visible,
#bookingForm [data-booking-email]:focus-visible,
#depositForm button[type="submit"]:focus-visible,
#expressForm button[type="submit"]:focus-visible,
[data-mobile-menu-toggle]:focus-visible,
[data-language-toggle]:focus-visible {
  outline: 3px solid hsl(var(--ring) / .22);
  outline-offset: 3px;
}
[data-mobile-menu-toggle],
[data-social-close],
[data-urgency-close] {
  box-shadow: 0 10px 22px -18px hsl(var(--foreground) / .55);
}

/* Header y navegación */
header .container { min-height: 4rem; }
header nav a { white-space: nowrap; }
.language-menu[aria-hidden="true"] { display: none; }
.language-menu { animation: menuFade .18s ease-out both; }
@keyframes menuFade { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } }
summary::-webkit-details-marker { display: none; }

/* Hero */
#inicio { min-height: clamp(640px, 92vh, 820px); isolation: isolate; }
#inicio .container { padding-block: clamp(5rem, 11vw, 8rem); }
#inicio h1 { max-width: 780px; font-size: clamp(2.45rem, 7vw, 4.75rem); }
#inicio p { max-width: 660px; }
#inicio .inline-flex,
#inicio a { min-height: 48px; }

/* Formularios */
#reservar form,
#depositForm,
#expressForm { border: 1px solid hsl(var(--border) / .85); }
input, select, textarea {
  min-height: 48px;
  transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}
textarea { min-height: 110px; resize: vertical; }
input:focus, select:focus, textarea:focus {
  border-color: hsl(var(--primary));
  box-shadow: 0 0 0 4px hsl(var(--primary) / .12);
}
#bookingForm { gap: clamp(.85rem, 2vw, 1.1rem); }
#bookingForm button,
#bookingForm a,
#depositForm button,
#expressForm button { min-height: 50px; }

/* Tarjetas y grillas */
#servicios .grid > div,
#testimonios .grid > div,
#contacto .grid > a,
.package-card {
  border: 1px solid hsl(var(--border) / .72);
  transform: translateY(0);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
#servicios .grid > div:hover,
#testimonios .grid > div:hover,
#contacto .grid > a:hover,
.package-card:hover {
  transform: translateY(-4px);
  border-color: hsl(var(--primary) / .28);
}
.package-grid { align-items: stretch; }
.package-card { height: 100%; }
.package-card-body { height: 100%; display: flex; flex-direction: column; }
.package-description { min-height: 3rem; }
.package-includes { flex: 1; }
.package-card-featured { position: relative; }
.package-card-featured::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, hsl(var(--primary) / .08), transparent 28%);
}
.stats-strip-wrap { scrollbar-width: thin; }
.stats-strip {
  border: 1px solid hsl(var(--border) / .72);
  background: hsl(var(--card) / .86);
  border-radius: 999px;
  padding: .75rem 1.2rem;
  box-shadow: 0 12px 28px -24px hsl(var(--foreground) / .4);
}

/* Panel de detalles y pago */
.booking-details-panel[hidden],
.payment-actions[hidden] { display: none !important; }
.booking-details-panel {
  scroll-margin-top: 6rem;
  position: relative;
}
.booking-details-panel::before {
  content: '';
  position: absolute;
  inset: 0 0 auto 0;
  height: 4px;
  background: linear-gradient(90deg, hsl(var(--primary)), hsl(var(--secondary)), hsl(var(--accent)));
}
.detail-metrics > div,
.detail-include-item,
.payment-card {
  border: 1px solid hsl(var(--border) / .72);
}
.payment-card { background: hsl(var(--card) / .82); }
.payment-actions { animation: revealPayment .22s ease-out both; }
@keyframes revealPayment { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
.payment-option { min-height: 48px; }

/* FAQ y elementos flotantes */
.faq-details { overflow: hidden; }
.faq-details[open] .faq-plus { transform: rotate(45deg); }
.social-toast.hidden-state { opacity: 0; transform: translateY(2rem); pointer-events: none; }
.sticky-urgency.hidden-state { opacity: 0; transform: translateY(100%); pointer-events: none; }
#app-toast { animation: toastIn .2s ease-out both; }
@keyframes toastIn { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } }

/* Responsive */
@media (max-width: 1024px) {
  :root { --page-gutter: clamp(1rem, 3.5vw, 1.5rem); --section-y: clamp(3.25rem, 7vw, 4.5rem); }
  header .container { min-height: 4.25rem; }
  #inicio { min-height: 680px; }
  .stats-strip-wrap { justify-content: flex-start; margin-inline: calc(var(--page-gutter) * -1); padding-inline: var(--page-gutter); }
}

@media (max-width: 767px) {
  html { scroll-padding-top: 4.6rem; }
  body { font-size: 15.5px; }
  .container { width: min(100% - 2rem, 1280px); }
  section:not(#inicio) { padding-block: 3.4rem; }

  header .container { min-height: 4rem; }
  header img { max-height: 2.45rem; }
  header .leading-tight span:first-child { max-width: 150px; display: inline-block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

  #inicio {
    min-height: 650px;
    text-align: left;
  }
  #inicio .container { padding-block: 5.25rem 4.5rem; }
  #inicio h1 { font-size: clamp(2.35rem, 11vw, 3.25rem); }
  #inicio p { font-size: 1rem; }
  #inicio .flex.flex-wrap.gap-3 { display: grid; grid-template-columns: 1fr; }
  #inicio a { width: 100%; justify-content: center; }

  #bookingForm,
  #depositForm,
  #expressForm,
  .package-card-body,
  #contacto .grid > a { padding: 1.25rem !important; }
  #reservar .text-center,
  #servicios .text-center,
  .section-heading { margin-bottom: 2rem !important; }
  #bookingForm .flex.flex-col.sm\:flex-row { gap: .75rem; }

  .stats-strip {
    border-radius: 1.25rem;
    align-items: flex-start;
    gap: 1rem;
    padding: .85rem 1rem;
  }
  .package-description { min-height: auto; }
  .detail-metrics { grid-template-columns: 1fr; }
  .booking-details-panel { border-radius: 1.35rem; }
  .booking-details-panel .grid { display: block; }
  .booking-details-panel aside { padding-top: 0 !important; }

  .fixed.right-6.bottom-24 { right: 1rem; bottom: 5.25rem; }
  .fixed.bottom-6.right-6 { right: 1rem; bottom: 1rem; }
  #socialProofToast { left: 1rem; right: 1rem; max-width: none; bottom: 5.25rem; }
  #stickyUrgency .flex { align-items: flex-start; }
  #stickyUrgency [data-urgency-link] { padding-inline: .75rem; }
}

@media (max-width: 420px) {
  .container { width: min(100% - 1.5rem, 1280px); }
  #inicio h1 { font-size: 2.15rem; }
  .text-3xl { font-size: 1.75rem !important; }
  .text-4xl { font-size: 2rem !important; }
  .stats-strip { font-size: .8rem; }
  .package-card-body { padding: 1rem !important; }
}

@media (min-width: 768px) {
  .sticky-urgency.hidden-state { transform: translateY(1rem); }
}

/* =========================================================
   Dominican Carry — estilo tipo Lovable / landing premium
   ========================================================= */
:root {
  --background: 210 40% 98%;
  --foreground: 222 47% 11%;
  --card: 0 0% 100%;
  --card-foreground: 222 47% 11%;
  --primary: 203 89% 43%;
  --primary-foreground: 0 0% 100%;
  --secondary: 188 92% 42%;
  --secondary-foreground: 0 0% 100%;
  --accent: 38 96% 55%;
  --accent-foreground: 222 47% 11%;
  --muted: 210 40% 96%;
  --muted-foreground: 215 20% 45%;
  --section-alt: 210 45% 97%;
  --border: 214 32% 88%;
  --ring: 203 89% 43%;
  --whatsapp: 142 70% 40%;
  --radius: 1.25rem;
  --section-y: clamp(4.25rem, 7vw, 7rem);
}

body {
  background:
    radial-gradient(circle at top left, hsl(var(--secondary) / .12), transparent 32rem),
    radial-gradient(circle at top right, hsl(var(--accent) / .11), transparent 28rem),
    hsl(var(--background));
}

body::before {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  background-image:
    linear-gradient(hsl(var(--primary) / .035) 1px, transparent 1px),
    linear-gradient(90deg, hsl(var(--primary) / .035) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(to bottom, black 0%, transparent 70%);
  z-index: -1;
}

.container { width: min(100% - (var(--page-gutter) * 2), 1180px); }
section:not(#inicio) { padding-block: var(--section-y); }
.section-heading { max-width: 760px; }
.section-heading span,
#servicios .text-center > span,
#destinos .text-center > span,
#nosotros .text-center > span,
#testimonios .text-center > span,
#faq .text-center > span,
#contacto .text-center > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .45rem .8rem;
  border-radius: 999px;
  background: hsl(var(--primary) / .09);
  color: hsl(var(--primary));
  letter-spacing: .12em;
}

h2 { letter-spacing: -.05em; }
.shadow-card { box-shadow: 0 18px 55px -38px hsl(var(--foreground) / .45), 0 2px 10px -6px hsl(var(--foreground) / .14); }
.shadow-card-hover { box-shadow: 0 30px 80px -42px hsl(var(--primary) / .52), 0 18px 46px -34px hsl(var(--foreground) / .38); }
.gradient-primary,
.btn-main {
  background: linear-gradient(135deg, hsl(var(--primary)) 0%, hsl(var(--secondary)) 100%) !important;
  color: hsl(var(--primary-foreground)) !important;
}

.btn-main,
.btn-whatsapp,
.btn-secondary,
.btn-outline,
:is(button, a)[data-combo-button],
:is(button, a)[data-payment-toggle],
:is(button, a)[data-detail-support],
:is(button, a)[data-autopay-button],
:is(button, a)[data-payment-support],
#bookingForm button[type="submit"],
#bookingForm [data-booking-email],
#depositForm button[type="submit"],
#expressForm button[type="submit"] {
  min-height: 50px;
  border: 1px solid transparent;
  border-radius: 1rem;
  box-shadow: 0 14px 28px -18px hsl(var(--foreground) / .5);
  transition: transform .22s ease, box-shadow .22s ease, filter .22s ease, background-color .22s ease;
}

.btn-main:hover,
.btn-whatsapp:hover,
.btn-secondary:hover,
.btn-outline:hover,
:is(button, a)[data-combo-button]:hover,
:is(button, a)[data-payment-toggle]:hover,
:is(button, a)[data-detail-support]:hover,
:is(button, a)[data-autopay-button]:hover,
:is(button, a)[data-payment-support]:hover,
#bookingForm button[type="submit"]:hover,
#bookingForm [data-booking-email]:hover,
#depositForm button[type="submit"]:hover,
#expressForm button[type="submit"]:hover {
  transform: translateY(-2px);
  box-shadow: 0 22px 44px -24px hsl(var(--foreground) / .55);
  filter: saturate(1.06) brightness(1.02);
}

.btn-whatsapp,
:is(button, a)[data-detail-support] {
  background: linear-gradient(135deg, hsl(var(--whatsapp)), hsl(150 72% 34%)) !important;
  color: hsl(var(--whatsapp-foreground)) !important;
}

.btn-secondary,
#bookingForm [data-booking-email],
:is(button, a)[data-payment-support] {
  background: linear-gradient(135deg, hsl(var(--accent)), hsl(31 96% 52%)) !important;
  color: hsl(var(--accent-foreground)) !important;
}

.btn-outline {
  background: hsl(var(--card) / .78) !important;
  color: hsl(var(--foreground)) !important;
  border-color: hsl(var(--border) / .9) !important;
  backdrop-filter: blur(12px);
}

:is(button, a)[data-autopay-button] {
  background: linear-gradient(135deg, hsl(var(--foreground)), hsl(222 40% 23%)) !important;
  color: hsl(var(--background)) !important;
}

/* Header */
header.sticky {
  top: .75rem;
  width: min(100% - 1.5rem, 1180px);
  margin-inline: auto;
  border-radius: 1.25rem;
  border: 1px solid hsl(var(--border) / .78) !important;
  background: hsl(var(--card) / .86) !important;
  box-shadow: 0 18px 48px -34px hsl(var(--foreground) / .45);
  backdrop-filter: blur(18px);
}
header.sticky .container { width: 100%; padding-inline: clamp(.8rem, 2vw, 1.2rem) !important; }
header nav a:not(.gradient-primary) { font-weight: 700; }
header nav a.gradient-primary { border-radius: 999px; box-shadow: 0 14px 30px -20px hsl(var(--primary) / .9); }
[data-language-toggle],
[data-mobile-menu-toggle] { background: hsl(var(--card)) !important; border-color: hsl(var(--border) / .85) !important; }
[data-mobile-menu] { border-radius: 0 0 1.25rem 1.25rem; margin-top: -.25rem; }

/* Hero Lovable */
.hero-lovable {
  min-height: clamp(760px, 94vh, 920px);
  display: flex;
  align-items: center;
  padding-top: 3rem;
  background:
    linear-gradient(135deg, hsl(203 100% 96%) 0%, hsl(0 0% 100%) 45%, hsl(188 88% 94%) 100%);
  isolation: isolate;
}
.hero-bg-pattern {
  background:
    radial-gradient(circle at 16% 18%, hsl(var(--accent) / .2), transparent 15rem),
    radial-gradient(circle at 86% 24%, hsl(var(--secondary) / .22), transparent 18rem),
    radial-gradient(circle at 50% 95%, hsl(var(--primary) / .12), transparent 26rem);
}
.hero-pill {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .55rem .9rem;
  border: 1px solid hsl(var(--primary) / .16);
  border-radius: 999px;
  background: hsl(var(--card) / .68);
  color: hsl(var(--primary));
  font-size: .78rem;
  font-weight: 800;
  box-shadow: 0 8px 22px -18px hsl(var(--foreground) / .45);
  backdrop-filter: blur(14px);
}
.hero-rating {
  padding: .65rem .95rem;
  border-radius: 999px;
  background: hsl(var(--card) / .86);
  border: 1px solid hsl(var(--border) / .8);
  box-shadow: 0 12px 28px -22px hsl(var(--foreground) / .45);
  color: hsl(var(--foreground));
  font-size: .88rem;
  font-weight: 800;
}
.hero-title span {
  background: linear-gradient(135deg, hsl(var(--primary)), hsl(var(--secondary)) 54%, hsl(var(--accent)) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.hero-subtitle { line-height: 1.75; }
.hero-actions a { text-align: center; }
.hero-stats > div {
  background: hsl(var(--card) / .72);
  border: 1px solid hsl(var(--border) / .7);
  border-radius: 1.25rem;
  padding: 1rem;
  box-shadow: 0 14px 32px -26px hsl(var(--foreground) / .45);
  backdrop-filter: blur(14px);
}
.hero-stats strong { display: block; font-size: clamp(1.35rem, 3vw, 2rem); line-height: 1; color: hsl(var(--foreground)); }
.hero-stats span { display: block; margin-top: .35rem; color: hsl(var(--muted-foreground)); font-size: .78rem; font-weight: 700; }
.hero-visual-wrap { position: relative; }
.hero-visual-card {
  position: relative;
  min-height: clamp(390px, 52vw, 610px);
  border-radius: 2rem;
  overflow: hidden;
  border: 1px solid hsl(var(--card) / .9);
  box-shadow: 0 35px 90px -48px hsl(var(--primary) / .75), 0 24px 60px -44px hsl(var(--foreground) / .55);
  transform: rotate(1.5deg);
}
.hero-visual-card::after {
  content: '';
  position: absolute;
  inset: 1rem;
  border-radius: 1.45rem;
  border: 1px solid hsl(0 0% 100% / .35);
  pointer-events: none;
}
.hero-visual-img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.hero-floating-card {
  position: absolute;
  display: grid;
  gap: .2rem;
  padding: .9rem 1rem;
  min-width: 190px;
  border-radius: 1.25rem;
  background: hsl(var(--card) / .86);
  border: 1px solid hsl(0 0% 100% / .68);
  box-shadow: 0 20px 40px -26px hsl(var(--foreground) / .65);
  backdrop-filter: blur(16px);
}
.hero-floating-card span { display: inline-flex; align-items: center; gap: .35rem; font-size: .75rem; font-weight: 800; color: hsl(var(--primary)); }
.hero-floating-card strong { font-size: .95rem; color: hsl(var(--foreground)); }
.hero-card-top { top: 1.25rem; left: 1.25rem; }
.hero-card-bottom { right: 1.25rem; bottom: 1.25rem; }
.hero-mini-booking {
  position: relative;
  z-index: 2;
  width: min(92%, 530px);
  margin: -3.25rem auto 0;
  border-radius: 1.5rem;
  border: 1px solid hsl(var(--border) / .75);
  background: hsl(var(--card) / .88);
  padding: 1.25rem;
  box-shadow: 0 26px 70px -42px hsl(var(--foreground) / .55);
  backdrop-filter: blur(18px);
}

/* Forms */
#reservar { margin-top: -1px; background: linear-gradient(180deg, hsl(var(--background)), hsl(var(--section-alt))); }
#reservar form,
#depositForm,
#expressForm {
  border-radius: 1.75rem !important;
  border: 1px solid hsl(var(--border) / .75) !important;
  box-shadow: 0 28px 85px -54px hsl(var(--foreground) / .65), 0 1px 0 hsl(0 0% 100% / .8) inset;
}
input, select, textarea {
  border-radius: 1rem !important;
  background: hsl(var(--background)) !important;
  border-color: hsl(var(--border) / .88) !important;
}
input:focus, select:focus, textarea:focus { box-shadow: 0 0 0 4px hsl(var(--primary) / .12) !important; }

/* Cards */
#servicios .grid > div,
#nosotros .grid > div,
#testimonios .grid > div,
#contacto .grid > a,
.faq-details,
.package-card,
#destinos .grid > div {
  border-radius: 1.5rem !important;
  background: hsl(var(--card) / .86) !important;
  border: 1px solid hsl(var(--border) / .72) !important;
  box-shadow: 0 18px 58px -42px hsl(var(--foreground) / .48);
  backdrop-filter: blur(12px);
}
#servicios .grid > div:hover,
#nosotros .grid > div:hover,
#testimonios .grid > div:hover,
#contacto .grid > a:hover,
.package-card:hover,
#destinos .grid > div:hover { transform: translateY(-6px); }

.excursion-section {
  background:
    radial-gradient(circle at 15% 15%, hsl(var(--primary) / .1), transparent 20rem),
    radial-gradient(circle at 90% 20%, hsl(var(--accent) / .12), transparent 20rem),
    hsl(var(--section-alt)) !important;
}
.stats-strip {
  background: hsl(var(--card) / .88) !important;
  border-radius: 999px;
  border-color: hsl(var(--border) / .7) !important;
  backdrop-filter: blur(14px);
}
.dc-tour-card { overflow: hidden; }
.dc-tour-image-wrap { position: relative; height: 225px; overflow: hidden; }
.dc-tour-image { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.dc-tour-card:hover .dc-tour-image { transform: scale(1.06); }
.dc-tour-image-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, hsl(222 47% 11% / .08), hsl(222 47% 11% / .48)); }
.dc-popular-badge,
.dc-discount-badge,
.dc-price-chip {
  position: absolute;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  border-radius: 999px;
  font-weight: 900;
  box-shadow: 0 16px 34px -22px hsl(var(--foreground) / .72);
}
.dc-popular-badge { top: .95rem; left: .95rem; padding: .48rem .8rem; font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; background: linear-gradient(135deg, hsl(var(--primary)), hsl(var(--secondary))); color: white; }
.dc-discount-badge { top: .95rem; right: .95rem; padding: .5rem .72rem; background: hsl(var(--accent)); color: hsl(var(--accent-foreground)); font-size: .78rem; }
.dc-price-chip { right: .95rem; bottom: .95rem; flex-direction: column; align-items: flex-start; gap: 0; padding: .75rem .9rem; background: hsl(var(--card) / .9); backdrop-filter: blur(14px); color: hsl(var(--foreground)); }
.dc-price-chip span { font-size: .65rem; text-transform: uppercase; letter-spacing: .08em; color: hsl(var(--muted-foreground)); }
.dc-price-chip strong { font-size: 1.35rem; line-height: 1; }
.dc-small-pill { display: inline-flex; align-items: center; gap: .35rem; padding: .42rem .65rem; border-radius: 999px; background: hsl(var(--primary) / .08); color: hsl(var(--primary)); font-size: .72rem; font-weight: 900; }
.dc-pill-danger { background: hsl(var(--destructive) / .1); color: hsl(var(--destructive)); }
.dc-price-row { display: flex; align-items: center; gap: .55rem; flex-wrap: wrap; }
.package-includes { flex: 1; }

.booking-details-panel {
  border-radius: 1.75rem !important;
  border-color: hsl(var(--primary) / .18) !important;
  box-shadow: 0 34px 110px -60px hsl(var(--primary) / .75), 0 22px 50px -45px hsl(var(--foreground) / .6) !important;
}
.detail-metrics > div,
.detail-include-item,
.payment-card {
  border-radius: 1.25rem !important;
  background: hsl(var(--card) / .78) !important;
  border-color: hsl(var(--border) / .75) !important;
}
.payment-card { backdrop-filter: blur(16px); }

/* CTA y barras flotantes */
.social-toast { border-radius: 1.25rem !important; }
.sticky-urgency { border: 1px solid hsl(0 0% 100% / .22); }
footer { background: hsl(222 47% 11%) !important; }

@media (max-width: 1024px) {
  header.sticky { top: .55rem; width: min(100% - 1rem, 1180px); }
  .hero-lovable { min-height: auto; padding-top: 4.25rem; }
  .hero-visual-card { transform: none; min-height: 460px; }
  .hero-copy { text-align: left; }
}

@media (max-width: 767px) {
  :root { --page-gutter: 1rem; }
  body { background-size: auto; }
  header.sticky { border-radius: 1rem; }
  header .container { min-height: 4rem; }
  .hero-lovable { padding-top: 3.75rem; }
  .hero-lovable .container { padding-block: 4.8rem 3.4rem !important; }
  .hero-title { font-size: clamp(2.45rem, 10vw, 3.4rem) !important; }
  .hero-subtitle { font-size: 1rem; }
  .hero-actions { display: grid; grid-template-columns: 1fr; }
  .hero-stats { grid-template-columns: 1fr; }
  .hero-visual-card { min-height: 360px; border-radius: 1.5rem; }
  .hero-floating-card { min-width: 160px; padding: .75rem; }
  .hero-card-top { top: .75rem; left: .75rem; }
  .hero-card-bottom { right: .75rem; bottom: .75rem; }
  .hero-mini-booking { width: calc(100% - 1rem); margin-top: -2rem; padding: 1rem; border-radius: 1.25rem; }
  .stats-strip { border-radius: 1.25rem !important; }
  .dc-tour-image-wrap { height: 215px; }
  .package-card-body { padding: 1.25rem !important; }
  #socialProofToast { bottom: 6rem !important; }
  .fixed.right-6.bottom-24 { display: none !important; }
}

@media (max-width: 420px) {
  .container { width: min(100% - 1.25rem, 1180px); }
  .hero-title { font-size: 2.25rem !important; }
  .hero-rating { align-items: flex-start; border-radius: 1rem; }
  .hero-visual-card { min-height: 315px; }
  .hero-floating-card { position: static; margin: .75rem; }
  .hero-card-top, .hero-card-bottom { right: auto; bottom: auto; top: auto; left: auto; }
  .hero-visual-card { display: flex; flex-direction: column; justify-content: end; }
}


/* === Ajuste header + hero tipo referencia Dominican Carry === */
header.sticky {
  top: 0 !important;
  width: 100% !important;
  margin-inline: 0 !important;
  border-radius: 0 !important;
  border-left: 0 !important;
  border-right: 0 !important;
  box-shadow: 0 10px 36px -28px hsl(var(--foreground) / .4) !important;
}
header.sticky .container {
  max-width: 1280px !important;
  padding-inline: clamp(1rem, 2vw, 1.6rem) !important;
}
header nav a:not(.gradient-primary) { color: hsl(var(--foreground) / .72) !important; }
header nav a:not(.gradient-primary):hover { color: hsl(var(--primary)) !important; }
header nav a.gradient-primary {
  border-radius: 1rem !important;
  padding-inline: 1.4rem !important;
  padding-block: .9rem !important;
}

.hero-dc {
  position: relative;
  min-height: clamp(640px, 78vh, 840px);
  display: flex;
  align-items: center;
  isolation: isolate;
  background: hsl(205 85% 35%);
}
.hero-dc-bg {
  position: absolute;
  inset: 0;
  background-image: url('../images/transporte-dominican-carry.jpg');
  background-size: cover;
  background-position: center center;
  transform: scale(1.02);
}
.hero-dc-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(0, 44, 97, 0.74) 0%, rgba(0, 67, 145, 0.62) 38%, rgba(0, 108, 201, 0.20) 72%, rgba(0, 0, 0, 0.06) 100%),
    linear-gradient(180deg, rgba(6, 42, 87, .18) 0%, rgba(7, 70, 135, .26) 100%);
}
.hero-dc-copy { padding-top: clamp(1.5rem, 3vw, 2rem); }
.hero-dc-pill {
  display: inline-flex;
  align-items: center;
  padding: .55rem .9rem;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.24);
  color: #fff;
  font-size: .83rem;
  font-weight: 700;
  backdrop-filter: blur(6px);
}
.hero-dc-title {
  font-size: clamp(3.3rem, 7vw, 6rem);
  text-shadow: 0 10px 32px rgba(0,0,0,.18);
}
.hero-dc-subtitle {
  font-size: clamp(1.08rem, 2vw, 1.15rem);
  line-height: 1.55;
  text-shadow: 0 4px 18px rgba(0,0,0,.15);
}
.hero-dc-actions a { text-align: center; }
.hero-dc-outline {
  background: rgba(255,255,255,.16) !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.34) !important;
  backdrop-filter: blur(8px);
}
.hero-dc-outline:hover { background: rgba(255,255,255,.22) !important; }

@media (max-width: 991px) {
  .hero-dc { min-height: 620px; }
  .hero-dc-bg { background-position: 60% center; }
}

@media (max-width: 768px) {
  .hero-dc { min-height: 580px; }
  .hero-dc-bg { background-position: 68% center; }
  .hero-dc-overlay {
    background: linear-gradient(180deg, rgba(0, 61, 132, 0.56) 0%, rgba(0, 53, 117, 0.62) 100%), linear-gradient(90deg, rgba(2, 39, 85, 0.58) 0%, rgba(0, 94, 173, 0.18) 100%);
  }
  .hero-dc-copy { max-width: 100%; }
  .hero-dc-title { font-size: clamp(2.7rem, 12vw, 4rem); }
  .hero-dc-subtitle { font-size: 1rem; max-width: 36rem; }
  .hero-dc-actions { display: grid; grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
  .hero-dc { min-height: 540px; }
  .hero-dc-bg { background-position: 71% center; }
  .hero-dc-pill { font-size: .73rem; padding: .45rem .7rem; }
  .hero-dc-title { font-size: 2.75rem; }
}


/* === Correcciones visuales según captura del usuario === */
.social-toast {
  top: 1rem !important;
  left: 1rem !important;
  bottom: auto !important;
  max-width: 285px !important;
  border-radius: 1.1rem !important;
  background: #ffffff !important;
  border: 1px solid #e7edf5 !important;
  box-shadow: 0 22px 44px -28px rgba(17, 24, 39, .35) !important;
  z-index: 46 !important;
}
.social-toast .text-sm { font-size: .95rem; }
.social-toast .text-xs { font-size: .86rem; }

.sticky-urgency {
  left: 1rem !important;
  right: auto !important;
  bottom: auto !important;
  top: 7.2rem !important;
  width: min(450px, calc(100vw - 2rem)) !important;
  border-radius: 1rem !important;
  background: linear-gradient(90deg, #ff5a1f, #f54b24) !important;
  box-shadow: 0 22px 42px -26px rgba(239, 68, 68, .45) !important;
  z-index: 45 !important;
}
.sticky-urgency .px-4 { padding-left: 1.2rem !important; padding-right: 1.2rem !important; }
.sticky-urgency a[data-urgency-link] {
  background: #fff !important;
  color: #ef4444 !important;
  padding-inline: 1rem !important;
}

.dc-floating-stack { gap: .15rem; }
.dc-float-btn {
  width: 56px;
  height: 56px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  box-shadow: 0 18px 32px -20px rgba(15, 23, 42, .45);
  transition: transform .2s ease, opacity .2s ease;
}
.dc-float-btn:hover { transform: scale(1.06); }
.dc-float-whatsapp { background: linear-gradient(180deg, #31d261, #18b64a); }
.dc-float-call { background: linear-gradient(180deg, #38a7ff, #1975ea); margin-top: -4px; }
.dc-float-email { background: linear-gradient(180deg, #42c8ff, #28a8e9); margin-top: -4px; }
.dc-float-bottom { margin-top: -4px; }

.excursion-section { background: #f7f9fc !important; }
.dc-stats-strip { color: #64748b !important; font-size: .96rem; }
.dc-package-grid { align-items: stretch; }
.dc-clean-card {
  border-radius: 18px !important;
  border: 1px solid #e6edf5 !important;
  background: #fff !important;
  box-shadow: 0 10px 22px -18px rgba(15, 23, 42, .22) !important;
}
.dc-clean-card-featured {
  border-color: #d4e3f8 !important;
  box-shadow: 0 18px 36px -24px rgba(34, 116, 212, .25) !important;
}
.dc-card-topbar {
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 34px;
  border-radius: 18px 18px 0 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  font-size: .82rem;
  font-weight: 800;
  color: #fff;
  background: linear-gradient(90deg, #1e75d8, #28b0e5);
}
.dc-small-pill {
  display: inline-flex; align-items: center; gap: .35rem;
  padding: .32rem .6rem; border-radius: 999px; font-size: .73rem; font-weight: 700;
}
.dc-pill-danger { color: #ef4444; background: #fff1f2; }
.dc-pill-muted { color: #64748b; background: #f8fafc; }
.dc-discount-chip {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 52px; height: 28px; padding: 0 .7rem;
  border-radius: 999px; background: #e9f1fb; color: #2563eb; font-size: .82rem; font-weight: 800;
}
.dc-rating-row svg { color: #f5b301 !important; fill: currentColor; }
.dc-card-button {
  background: #e9f0fa !important;
  color: #1d6fd7 !important;
  border-radius: 12px !important;
}
.dc-card-button-featured {
  background: linear-gradient(90deg, #1d73d8, #28aee4) !important;
  color: #fff !important;
}

.dc-compare-grid { align-items: stretch; }
.dc-compare-card {
  border-radius: 18px;
  border: 1.5px solid #dce7f5;
  box-shadow: 0 10px 24px -20px rgba(15, 23, 42, .18);
}
.dc-compare-left { border-color: rgba(248, 113, 113, .55); }
.dc-compare-right { border-color: rgba(37, 99, 235, .7); }
.dc-compare-badge {
  position: absolute;
  top: -11px; left: 18px;
  display: inline-flex; align-items: center; gap: .35rem;
  padding: .25rem .7rem; border-radius: 999px;
  font-size: .72rem; font-weight: 800; color: #fff;
}
.dc-compare-badge-left { background: #ef4444; }
.dc-compare-badge-right { background: linear-gradient(90deg, #1e75d8, #28b0e5); }
.dc-saving-box {
  background: #eef4fb;
  border-radius: 12px;
  padding: .9rem 1rem;
}

@media (max-width: 1024px) {
  .sticky-urgency { top: auto !important; bottom: 1rem !important; }
  .social-toast { top: auto !important; bottom: 5.6rem !important; }
  .dc-floating-stack { right: .9rem; }
}

@media (max-width: 768px) {
  .dc-float-btn { width: 52px; height: 52px; }
  .social-toast { max-width: calc(100vw - 2rem) !important; }
  .sticky-urgency { width: calc(100vw - 2rem) !important; }
  .dc-card-topbar { font-size: .75rem; }
}

@media (max-width: 520px) {
  .dc-floating-stack { top: auto !important; bottom: 5rem !important; transform: none !important; }
}

/* =========================================================
   CORRECCIÓN FINAL 03/07/2026
   Elementos absolutos/fijos según captura correcta:
   - Toast social abajo a la izquierda
   - Barra de urgencia abajo a la izquierda
   - Botones flotantes abajo a la derecha
   - Footer siempre visible y separado de overlays
   ========================================================= */
.social-toast {
  top: auto !important;
  left: 1rem !important;
  right: auto !important;
  bottom: 6rem !important;
  width: 285px !important;
  max-width: calc(100vw - 2rem) !important;
  z-index: 60 !important;
}

.social-toast.hidden-state {
  transform: translateY(1rem) !important;
}

.sticky-urgency {
  top: auto !important;
  left: 1rem !important;
  right: auto !important;
  bottom: 1rem !important;
  width: min(450px, calc(100vw - 2rem)) !important;
  max-width: calc(100vw - 2rem) !important;
  z-index: 59 !important;
}

.sticky-urgency.hidden-state {
  transform: translateY(1rem) !important;
}

.dc-floating-stack {
  top: auto !important;
  right: 1.35rem !important;
  bottom: 2.25rem !important;
  transform: none !important;
  z-index: 70 !important;
}

footer {
  display: block !important;
  position: relative !important;
  z-index: 1 !important;
  clear: both !important;
  background: hsl(222 47% 11%) !important;
  padding-bottom: max(3rem, calc(3rem + env(safe-area-inset-bottom))) !important;
}

body {
  min-height: 100vh;
  overflow-y: auto;
}

@media (max-width: 1024px) {
  .social-toast {
    top: auto !important;
    bottom: 6rem !important;
  }

  .sticky-urgency {
    top: auto !important;
    bottom: 1rem !important;
  }

  .dc-floating-stack {
    top: auto !important;
    right: .9rem !important;
    bottom: 2rem !important;
    transform: none !important;
  }
}

@media (max-width: 640px) {
  .social-toast {
    left: 1rem !important;
    right: 1rem !important;
    bottom: 6rem !important;
    width: auto !important;
    max-width: none !important;
  }

  .sticky-urgency {
    left: 1rem !important;
    right: 1rem !important;
    bottom: 1rem !important;
    width: auto !important;
    max-width: none !important;
  }

  .dc-floating-stack {
    right: .75rem !important;
    bottom: 5.5rem !important;
  }
}


/* =========================================================
   AJUSTE RESPONSIVE 04/07/2026
   Menos saturación en móvil:
   - Se ocultan barras/toasts invasivos en pantallas pequeñas.
   - Queda solo un botón flotante de WhatsApp.
   - Header, hero y secciones respiran mejor.
   ========================================================= */
@media (max-width: 767px) {
  :root {
    --page-gutter: .95rem;
    --section-y: 2.75rem;
  }

  html { scroll-padding-top: 4.35rem !important; }
  body { font-size: 15px !important; }
  .container { width: min(100% - 1.75rem, 1280px) !important; }
  section:not(#inicio) { padding-block: var(--section-y) !important; }

  /* Barra superior limpia */
  .top-contact-bar-dc { display: none !important; }

  .promo-banner-dc {
    padding: .55rem .75rem !important;
  }
  .promo-banner-dc .container {
    width: min(100% - 1rem, 1280px) !important;
    gap: .35rem !important;
  }
  .promo-banner-dc .font-bold {
    font-size: .78rem !important;
    line-height: 1.25 !important;
  }
  .promo-banner-dc .promo-countdown,
  .promo-banner-dc .promo-cta,
  .promo-banner-dc .hidden.md\:inline {
    display: none !important;
  }

  /* Header móvil más respirado */
  .site-header-dc .container {
    height: 4.45rem !important;
    min-height: 4.45rem !important;
    padding-inline: .85rem !important;
    gap: .75rem !important;
  }
  .site-header-dc img {
    max-height: 3.15rem !important;
    width: auto !important;
  }
  .site-header-dc [data-language-switcher] {
    display: none !important;
  }
  [data-mobile-menu] {
    padding: .35rem 1rem 1rem !important;
    border-radius: 0 0 1rem 1rem !important;
  }
  [data-mobile-menu] a {
    padding-block: .68rem !important;
    font-size: .92rem !important;
  }

  /* Hero móvil: menos alto, menos ruido, CTA claro */
  .hero-dc,
  #inicio {
    min-height: auto !important;
  }
  .hero-dc .container,
  #inicio .container {
    padding-top: 3.35rem !important;
    padding-bottom: 3.25rem !important;
  }
  .hero-dc-bg {
    background-position: 70% center !important;
    transform: scale(1.01) !important;
  }
  .hero-dc-overlay {
    background:
      linear-gradient(180deg, rgba(0, 55, 120, .68) 0%, rgba(0, 45, 100, .72) 100%),
      linear-gradient(90deg, rgba(0, 32, 75, .68) 0%, rgba(0, 90, 168, .18) 100%) !important;
  }
  .hero-dc .flex.flex-wrap.gap-2.mb-6 {
    margin-bottom: .95rem !important;
    gap: .45rem !important;
  }
  .hero-dc-pill {
    font-size: .72rem !important;
    padding: .42rem .65rem !important;
  }
  .hero-dc-pill:nth-child(n+3) {
    display: none !important;
  }
  .hero-dc-title {
    font-size: clamp(2.1rem, 9.7vw, 2.95rem) !important;
    line-height: 1.02 !important;
    letter-spacing: -.045em !important;
  }
  .hero-dc-subtitle {
    margin-top: 1rem !important;
    font-size: .96rem !important;
    line-height: 1.45 !important;
    max-width: 100% !important;
  }
  .hero-dc-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .75rem !important;
    margin-top: 1.35rem !important;
  }
  .hero-dc-actions a {
    width: 100% !important;
    min-height: 46px !important;
    padding: .82rem 1rem !important;
    border-radius: .95rem !important;
    font-size: .92rem !important;
  }
  .hero-dc-actions .hero-dc-outline {
    display: none !important;
  }

  /* Formularios y tarjetas con menos peso visual */
  #bookingForm,
  #depositForm,
  #expressForm,
  .package-card-body,
  #contacto .grid > a {
    padding: 1.05rem !important;
  }
  .section-heading,
  #reservar .text-center,
  #servicios .text-center,
  #destinos .text-center,
  #nosotros .text-center,
  #testimonios .text-center,
  #faq .text-center,
  #contacto .text-center {
    margin-bottom: 1.65rem !important;
  }
  .section-heading h2,
  #reservar h2,
  #servicios h2,
  #destinos h2,
  #nosotros h2,
  #testimonios h2,
  #faq h2,
  #contacto h2 {
    font-size: clamp(1.75rem, 7vw, 2.15rem) !important;
    line-height: 1.12 !important;
  }
  .section-heading p,
  #reservar .text-center p,
  #servicios .text-center p,
  #destinos .text-center p,
  #nosotros .text-center p,
  #testimonios .text-center p,
  #faq .text-center p,
  #contacto .text-center p {
    font-size: .94rem !important;
    line-height: 1.5 !important;
  }
  .stats-strip,
  .dc-stats-strip {
    display: none !important;
  }

  /* Elementos flotantes: evitar saturación */
  .social-toast,
  .sticky-urgency {
    display: none !important;
  }
  .dc-floating-stack {
    top: auto !important;
    right: .85rem !important;
    bottom: calc(.85rem + env(safe-area-inset-bottom)) !important;
    transform: none !important;
    gap: 0 !important;
    z-index: 80 !important;
  }
  .dc-floating-stack .dc-float-call,
  .dc-floating-stack .dc-float-email,
  .dc-floating-stack .dc-float-bottom {
    display: none !important;
  }
  .dc-floating-stack .dc-float-btn {
    width: 54px !important;
    height: 54px !important;
    margin-top: 0 !important;
    box-shadow: 0 16px 30px -18px rgba(15, 23, 42, .6) !important;
  }

  .min-h-screen.pb-16,
  .min-h-screen {
    padding-bottom: 0 !important;
  }
  footer {
    padding-top: 2.5rem !important;
    padding-bottom: calc(2.25rem + env(safe-area-inset-bottom)) !important;
  }
  footer .grid {
    gap: 1.5rem !important;
  }
}

@media (max-width: 420px) {
  .container { width: min(100% - 1.35rem, 1280px) !important; }
  .site-header-dc .container {
    height: 4.15rem !important;
    min-height: 4.15rem !important;
  }
  .site-header-dc img { max-height: 2.85rem !important; }
  .hero-dc .container,
  #inicio .container {
    padding-top: 2.85rem !important;
    padding-bottom: 2.85rem !important;
  }
  .hero-dc-title { font-size: 2.08rem !important; }
  .hero-dc-subtitle { font-size: .93rem !important; }
  .hero-dc-pill:nth-child(n+2) { display: none !important; }
  .promo-banner-dc .font-bold { font-size: .73rem !important; }
}

/* Footer: contraste fijo para que los textos no se pierdan sobre el fondo oscuro */
.dc-footer {
  display: block !important;
  position: relative !important;
  z-index: 1 !important;
  clear: both !important;
  background: hsl(222 47% 11%) !important;
  color: rgba(255, 255, 255, .82) !important;
  padding-top: 3rem !important;
  padding-bottom: max(3rem, calc(3rem + env(safe-area-inset-bottom))) !important;
}

.dc-footer,
.dc-footer p,
.dc-footer a,
.dc-footer span,
.dc-footer div,
.dc-footer h4 {
  color: rgba(255, 255, 255, .82) !important;
}

.dc-footer .dc-footer-title,
.dc-footer .dc-footer-heading {
  color: #ffffff !important;
}

.dc-footer .dc-footer-legal,
.dc-footer .dc-footer-copy {
  color: rgba(255, 255, 255, .58) !important;
}

.dc-footer .dc-footer-text,
.dc-footer .dc-footer-contact p,
.dc-footer .dc-footer-links a {
  color: rgba(255, 255, 255, .76) !important;
}

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

.dc-footer .dc-footer-copy {
  border-top-color: rgba(255, 255, 255, .22) !important;
}

.dc-footer-grid {
  align-items: flex-start;
}

.dc-footer-brand img {
  flex: 0 0 auto;
}

@media (max-width: 640px) {
  .dc-footer {
    padding-top: 2.5rem !important;
    padding-bottom: calc(2.25rem + env(safe-area-inset-bottom)) !important;
  }
  .dc-footer-grid {
    gap: 1.5rem !important;
  }
}

