html { scroll-behavior: smooth; }
body { margin: 0; background: #FCFAF7; color: #2B2523; font-family: 'Mulish', system-ui, sans-serif; -webkit-font-smoothing: antialiased; }
*, *::before, *::after { box-sizing: border-box; }
a { color: #47141D; text-decoration: none; }
a:hover { color: #8F6333; }
.header-phones a:hover, footer a:hover { color: #CB9F6E; }
.gold-btn:hover { color: rgb(58, 15, 22); }
img { max-width: 100%; }
input, textarea, button { font-family: inherit; }
summary::-webkit-details-marker { display: none; }
button { font: inherit; }

.mobile-nav { display: none; border-top: 1px solid #EFE3D6; background: #FFFFFF; padding: 10px 24px 22px; flex-direction: column; }
.mobile-nav.is-open { display: flex; }
.mobile-nav-link { padding: 13px 0; border-bottom: 1px solid #F1E8DC; font-size: 15px; font-weight: 600; color: #47141D; }
.mobile-nav-heading { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 15px 0 6px; border: none; background: none; text-align: left; cursor: pointer; font-family: 'Cormorant SC', serif; font-size: 12px; letter-spacing: 0.22em; color: #866632; }
.mobile-nav-heading::after { content: ''; width: 7px; height: 7px; border-right: 1.5px solid #866632; border-bottom: 1.5px solid #866632; transform: rotate(-45deg); transition: transform 0.2s ease; }
.mobile-nav-heading[aria-expanded="true"]::after { transform: rotate(45deg); }
.mobile-nav-group { display: none; flex-direction: column; }
.mobile-nav-group.is-open { display: flex; }
.mobile-nav-sublink { padding: 11px 0 11px 14px; border-bottom: 1px solid #F1E8DC; font-size: 14.5px; color: #3A302D; }
[data-nav-desktop] { display: none; }
[data-burger] { display: flex; }
@media (min-width: 1040px) {
  [data-nav-desktop] { display: flex; }
  [data-burger] { display: none; }
  .mobile-nav { display: none !important; }
}

.header-phones { justify-content: flex-end; }
@media (max-width: 640px) {
  /* En pantallas estrechas, justify-content:flex-end puede desbordar la fila a la
     derecha en vez de hacer wrap (bug de layout observado); flex-start es estable. */
  .header-phones { justify-content: flex-start; }
  .header-bar { padding-left: 16px; padding-right: 16px; }
}

@media (max-width: 480px) {
  /* En móvil estrecho los teléfonos ya están en el footer y en Contacto;
     ocultarlos aquí evita que la cabecera fija ocupe demasiada altura. */
  .header-phones { display: none !important; }
}

.carousel-slide { transition: opacity 0.6s ease; }
.carousel-dot { cursor: pointer; }
