/* ══════════════════════════════════════════════════════════════
   CONTROL MANUAL DE ENCUADRE — SAVI SALON
   ══════════════════════════════════════════════════════════════

   CÓMO AJUSTAR CADA IMAGEN:
   - Para SUBIR la imagen:   reducir el %  →  center 50% → center 20%
   - Para BAJAR la imagen:   aumentar el % →  center 20% → center 60%
   - Para mover a IZQUIERDA: cambiar center por left  →  left 40%
   - Para mover a DERECHA:   cambiar center por right →  right 40%
   - Para centrar exacto:    center center

   Solo edita el object-position. No cambies object-fit ni otras propiedades.
   ══════════════════════════════════════════════════════════════ */

/* ── SERVICIOS — encuadre individual ── */

/* ── SERVICIOS — todas las imágenes muestran la foto completa ──
   object-fit: contain = imagen completa, sin recorte
   object-position: center center = centrada en el cuadro

   Para SUBIR la imagen dentro del cuadro: center 30% → center 10%
   Para BAJAR la imagen dentro del cuadro: center 30% → center 70%
   Para mover a IZQUIERDA: left center
   Para mover a DERECHA:  right center
   ────────────────────────────────────────────────────────────── */

.img-unas       { object-fit: cover; object-position: center center; }
.img-cortes     { object-fit: cover; object-position: center center; }
.img-planchados { object-fit: cover; object-position: center center; }
.img-pedicura   { object-fit: cover; object-position: center center; }
.img-faciales   { object-fit: cover; object-position: center center; }
.img-luces      { object-fit: cover; object-position: center center; }
.img-keratinas  { object-fit: cover; object-position: center center; }
.img-alisados   { object-fit: cover; object-position: center center; }
.img-botox      { object-fit: cover; object-position: center center; }
.img-cejas      { object-fit: cover; object-position: center center; }

/* ── GALERÍA — encuadre individual ── */

/* Galería 1 — uñas */
.gal-1  { object-position: center center; }
/* Galería 2 */
.gal-2  { object-position: center 20%; }
/* Galería 3 */
.gal-3  { object-position: center 20%; }
/* Galería 4 */
.gal-4  { object-position: center 20%; }
/* Galería 5 */
.gal-5  { object-position: center 20%; }
/* Galería 6 */
.gal-6  { object-position: center 20%; }
/* Galería 7 */
.gal-7  { object-position: center 20%; }
/* Galería 8 */
.gal-8  { object-position: center 20%; }
/* Galería 9 */
.gal-9  { object-position: center 20%; }
/* Galería 10 */
.gal-10 { object-position: center 20%; }
/* Galería 11 */
.gal-11 { object-position: center 20%; }
/* Galería 12 */
.gal-12 { object-position: center 20%; }
/* Galería 13 */
.gal-13 { object-position: center 20%; }
/* Galería 14 */
.gal-14 { object-position: center 20%; }
/* Galería 15 */
.gal-15 { object-position: center 20%; }
/* Galería 16 */
.gal-16 { object-position: center 20%; }
/* Galería 17 */
.gal-17 { object-position: center 20%; }
/* Galería 18 */
.gal-18 { object-position: center 20%; }

/* ── Reset base ── */
*, *::before, *::after {
  box-sizing: border-box;
}

/* Las insignias de confianza deben conservar contraste sobre el fondo
   diagonal claro del hero, especialmente "Cita con anticipo". */
.trust span {
  background: rgba(28, 32, 40, .88) !important;
  border-color: rgba(255, 255, 255, .28) !important;
  color: #fff !important;
}

/* El botón secundario del hero cruza el fondo diagonal; se mantiene oscuro
   para conservar legibilidad sobre ambas zonas del diseño. */
.btn-outline {
  background: rgba(28, 32, 40, .88) !important;
  border-color: rgba(255, 255, 255, .38) !important;
  color: #fff !important;
}

html, body {
  margin: 0;
  padding: 0;
  overflow-x: hidden;
  max-width: 100%;
  width: 100%;
}

img {
  max-width: 100%;
  display: block;
}

section {
  width: 100%;
}

/* ── Imagen Hero ── */
.photo-box {
  position: relative;
  overflow: hidden;
  border-radius: 20px;
}

.photo-box > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 20px;
  z-index: 2;
  transition: opacity 0.3s;
}

.photo-fallback {
  position: relative;
  z-index: 1;
}

/* ── Imágenes de Galería ── */
.gallery-item {
  position: relative;
  overflow: hidden;
}

.gallery-item > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
  z-index: 2;
  transition: opacity 0.3s;
}

.gallery-item > .gallery-label {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 3;
  padding: 0.6rem 0.9rem;
  background: linear-gradient(transparent, rgba(28, 32, 40, 0.85));
  color: #fff;
}

.gallery-item > .gallery-label strong {
  display: block;
  font-size: 0.9rem;
  font-weight: 700;
}

.gallery-item > .gallery-label span {
  font-size: 0.74rem;
  opacity: 0.75;
}

.gallery-fallback {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: Georgia, serif;
  font-size: 1rem;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.04em;
}

/* ── Botón flotante WhatsApp ── */
.wa-float {
  position: fixed;
  bottom: 1.5rem;
  right: 1.5rem;
  z-index: 999;
  background: #25d366;
  border-radius: 50%;
  width: 58px;
  height: 58px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 18px rgba(37,211,102,.45);
  transition: transform .2s, box-shadow .2s;
}
.wa-float:hover {
  transform: scale(1.1);
  box-shadow: 0 6px 24px rgba(37,211,102,.6);
}

/* ── Testimonios ── */
.testimonio-footer strong { display: block; }
.testimonio-footer small { display: block; }

/* ── Galería grande ── */
.gallery .photos {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: .75rem;
  margin-top: 1.6rem;
}
.gallery .photos .gallery-item:nth-child(1),
.gallery .photos .gallery-item:nth-child(6) {
  grid-column: span 2;
  grid-row: span 2;
}
@media (max-width: 1024px) {
  .gallery .photos {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* ══════════════════════════════════════════
   RESPONSIVE MÓVIL — max-width: 768px
   ══════════════════════════════════════════ */
@media (max-width: 768px) {

  /* Prevenir desbordamiento */
  .container, main, section, figure, .hero-wrap, .footer-premium {
    max-width: 100%;
    width: 100%;
  }

  /* ── NAV móvil ── */
  nav.container-fluid {
    padding: .45rem .9rem;
    overflow: visible;
  }
  nav ul:first-child {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    overflow: visible !important;
  }
  nav ul:first-child li {
    overflow: visible !important;
  }
  nav ul:last-child {
    flex-shrink: 0 !important;
  }
  nav ul:last-child li:not(:last-child) {
    display: none;
  }
  .brand {
    overflow: visible !important;
    flex-shrink: 0 !important;
    gap: .5rem !important;
  }
  .logo {
    width: 36px !important;
    height: 36px !important;
    font-size: 1.3rem !important;
    overflow: visible !important;
  }
  .brand-text {
    white-space: nowrap !important;
    overflow: visible !important;
  }
  .brand-text span {
    font-size: .82rem !important;
    white-space: nowrap !important;
  }
  .brand-text small {
    font-size: .67rem !important;
    white-space: nowrap !important;
    display: block !important;
  }

  /* ── HERO — una columna ── */
  .hero-wrap {
    background: linear-gradient(180deg, #1c2028 0%, #2e3340 55%, #f5d6e8 85%, #fff9fc 100%) !important;
  }
  .hero {
    display: flex !important;
    flex-direction: column !important;
    min-height: auto !important;
    padding: 2rem 0 1.6rem !important;
    gap: 1.6rem !important;
  }
  .hero > div {
    width: 100%;
  }
  .eyebrow {
    font-size: .7rem !important;
    letter-spacing: .1em !important;
  }
  .hero h1 {
    font-size: clamp(2rem, 9vw, 3rem) !important;
    line-height: 1.05 !important;
    letter-spacing: -.03em !important;
  }
  .hero p {
    font-size: .94rem !important;
    max-width: 100% !important;
    line-height: 1.58 !important;
  }
  .actions {
    flex-direction: column !important;
    gap: .65rem !important;
  }
  .actions .btn {
    width: 100% !important;
    justify-content: center !important;
    padding: .82rem 1.2rem !important;
  }
  .trust {
    gap: .42rem !important;
    margin-top: .9rem !important;
  }
  .trust span {
    font-size: .78rem !important;
    padding: .32rem .6rem !important;
  }

  /* ── HERO card ── */
  .hero-card {
    width: 100% !important;
    max-width: 340px !important;
    margin: 0 auto !important;
    padding: .65rem .65rem .9rem !important;
    border-radius: 1.2rem !important;
  }
  .photo-box {
    min-height: 220px !important;
    border-radius: 14px !important;
    align-items: flex-start !important;
  }
  .photo-box > img {
    border-radius: 14px !important;
    object-position: center top;
  }
  .photo-inner {
    padding: 1.4rem 1.5rem 1rem !important;
  }
  .seal {
    border-radius: .75rem !important;
    padding: .55rem .8rem !important;
    gap: .55rem !important;
    margin-top: .5rem !important;
  }
  .seal .logo {
    width: 34px !important;
    height: 34px !important;
    font-size: 1.2rem !important;
    overflow: visible !important;
  }
  .seal strong { font-size: .9rem !important; white-space: nowrap !important; }
  .seal-text span { font-size: .72rem !important; white-space: nowrap !important; }

  /* ── Secciones ── */
  .block {
    padding: 2.4rem 0 !important;
  }
  h2 {
    font-size: clamp(1.55rem, 6vw, 2.1rem) !important;
  }
  .lead {
    font-size: .88rem !important;
    margin-bottom: 1.4rem !important;
  }

  /* ── SERVICIOS — 1 columna premium ── */
  .grid-3 {
    grid-template-columns: 1fr !important;
    gap: 1rem !important;
  }
  .grid-2 {
    grid-template-columns: 1fr !important;
    gap: .75rem !important;
  }
  .svc-card {
    border-radius: 1.2rem !important;
    box-shadow: 0 6px 20px rgba(28,32,40,.09) !important;
    margin-bottom: 0 !important;
  }
  .svc-photo {
    height: 220px !important;
  }
  .svc-body {
    padding: 1rem 1.1rem 1.1rem !important;
  }
  .svc-tag {
    font-size: .68rem !important;
    padding: .18rem .55rem !important;
    margin-bottom: .45rem !important;
  }
  .svc-card h3 {
    font-size: 1.05rem !important;
    margin-bottom: .15rem !important;
    font-weight: 700 !important;
  }
  .svc-price {
    font-size: 1.2rem !important;
    margin: .2rem 0 .4rem !important;
  }
  .svc-desc {
    font-size: .85rem !important;
    line-height: 1.52 !important;
    margin-bottom: .65rem !important;
  }
  .svc-btn {
    font-size: .78rem !important;
    padding: .38rem .85rem !important;
  }

  /* ── CONFIANZA — 2 columnas ── */
  .confianza-section {
    padding: 2.2rem 0 !important;
  }
  .confianza-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: .75rem !important;
    margin-top: 1.2rem !important;
  }
  .confianza-item:last-child {
    grid-column: 1 / -1;
  }
  .confianza-item {
    padding: .75rem .5rem !important;
  }
  .confianza-icon {
    font-size: 1.6rem !important;
  }
  .confianza-item strong {
    font-size: .8rem !important;
  }
  .confianza-item span {
    font-size: .73rem !important;
  }

  /* ── GALERÍA — 2 columnas ── */
  .gallery .photos {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: .65rem !important;
  }
  .gallery .photos .gallery-item:nth-child(1),
  .gallery .photos .gallery-item:nth-child(6) {
    grid-column: span 1 !important;
    grid-row: span 1 !important;
  }
  .gallery-item {
    height: 180px !important;
    border-radius: 1rem !important;
  }
  .gallery-item:first-child {
    height: 180px !important;
  }
  .gallery-item > img {
    object-position: center 20% !important;
  }
  .gallery-item > .gallery-label {
    padding: .5rem .7rem !important;
  }
  .gallery-item > .gallery-label strong {
    font-size: .82rem !important;
  }
  .gallery-item > .gallery-label span {
    font-size: .68rem !important;
  }
  .gallery {
    padding: 2.4rem 0 !important;
  }

  /* ── TESTIMONIOS — 1 columna premium ── */
  .testimonios-grid {
    grid-template-columns: 1fr !important;
    gap: .85rem !important;
    margin-top: 1.2rem !important;
  }
  .testimonios-wrap {
    padding: 2.4rem 0 !important;
  }
  .testimonio {
    padding: 1.1rem 1.2rem !important;
    border-radius: 14px !important;
    gap: .55rem !important;
  }
  .testimonio p {
    font-size: .88rem !important;
    line-height: 1.55 !important;
  }
  .testimonio .estrellas {
    font-size: .95rem !important;
  }
  .testimonio-footer strong {
    font-size: .85rem !important;
  }
  .testimonio-footer small {
    font-size: .73rem !important;
  }

  /* ── RESERVA — 1 columna ── */
  .reservation {
    grid-template-columns: 1fr !important;
    padding: 1.4rem !important;
    border-radius: 1.2rem !important;
    gap: 1rem !important;
  }
  .reservation h2,
  .reservation .sub {
    text-align: left !important;
  }
  .step {
    padding: .75rem .85rem !important;
  }

  /* ── CTA FINAL ── */
  .cta-final {
    padding: 3.2rem 0 !important;
  }
  .cta-final h2 {
    font-size: clamp(1.5rem, 6vw, 2rem) !important;
  }
  .cta-final p {
    font-size: .9rem !important;
    margin-bottom: 1.4rem !important;
  }
  .cta-final .btn-wa-large {
    width: 100% !important;
    justify-content: center !important;
    font-size: .97rem !important;
    padding: .9rem 1.4rem !important;
  }

  /* ── FOOTER PREMIUM ── */
  .footer-top {
    grid-template-columns: 1fr !important;
    gap: 1.6rem !important;
    padding-bottom: 1.6rem !important;
  }
  .footer-brand-block p {
    max-width: 100% !important;
    font-size: .82rem !important;
  }
  .footer-brand-block .brand {
    overflow: visible !important;
  }
  .footer-brand-block .brand-text span {
    color: #fff !important;
    white-space: nowrap !important;
  }
  .footer-brand-block .brand-text small {
    color: #f8c7dc !important;
    white-space: nowrap !important;
    display: block !important;
  }
  .footer-bottom {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: .5rem !important;
    padding-top: 1rem !important;
  }

  /* ── WhatsApp flotante — posición segura en iOS ── */
  .wa-float {
    bottom: calc(env(safe-area-inset-bottom, 0px) + 82px) !important;
    right: 18px !important;
    width: 54px !important;
    height: 54px !important;
  }
}

/* ── Pantallas muy pequeñas (< 400px) ── */
@media (max-width: 400px) {
  .grid-3 {
    grid-template-columns: 1fr !important;
    gap: .85rem !important;
  }
  .svc-photo {
    height: 200px !important;
  }
  .hero-card {
    max-width: 100% !important;
  }
  .gallery-item {
    height: 160px !important;
  }
}

/* ── Espacio inferior — evita que barra iOS tape contenido ── */
@media (max-width: 768px) {
  body {
    padding-bottom: 110px !important;
  }
}
