/* =============================================================
   DESKTOP — min-width: 1024px
   ============================================================= */
.section { padding-block: 10rem; }
.section__title { font-size: 4.4rem; }
.hero { padding-block: 6rem 8rem; }
.hero__grid { grid-template-columns: minmax(0, 1fr) 46rem; gap: 6rem; }
.hero__ctas .btn { white-space: nowrap; }
.hero__title { font-size: 5.4rem; }
.hero__visual { max-width: none; width: 46rem; margin: 0; }
.hero__photo { width: 46rem; height: 54rem; }
.hero__card {
  position: absolute;
  left: -3.6rem;
  top: 20rem;
  width: 38rem;
  margin: 0;
  padding: 2.4rem;
}
.hero__visual { padding-bottom: 2rem; }
.hero__float--seal { top: 2.4rem; right: -2rem; }
.hero__float--speed { top: auto; bottom: -1.6rem; right: 2rem; }

.services-grid { grid-template-columns: repeat(3, 1fr); }
.steps__grid { grid-template-columns: repeat(4, 1fr); }
.step:not(:last-child)::after {
  content: "›";
  position: absolute;
  top: 50%;
  right: -1.4rem;
  transform: translateY(-50%);
  font-size: 2.4rem;
  line-height: 1;
  color: var(--color-text-muted);
  z-index: 2;
}
.testimonials-grid { grid-template-columns: repeat(3, 1fr); }
.guarantee { grid-template-columns: 1fr auto; align-items: center; padding: 4.8rem 5.6rem; }
.guarantee__actions { flex-direction: column; align-items: stretch; }
.about__grid { grid-template-columns: 1fr 1fr; gap: 7rem; }
.about__photo--a { height: 36rem; }
.about__photo--b { height: 30rem; }
.contact__grid { grid-template-columns: 1fr 1fr; gap: 6rem; }
.page-layout { grid-template-columns: 1fr 34rem; gap: 6rem; align-items: start; }
.sidebar-card { position: sticky; top: 12rem; }
.cta-band__inner { flex-direction: row; align-items: center; justify-content: space-between; padding: 4rem; }
.cta-band__inner .cta-band__actions { flex-wrap: nowrap; }
.page-hero__title { font-size: 4.8rem; }
.page-hero__subtitle { font-size: 1.7rem; }
.contact__map { height: 28rem; }
.site-footer__grid { grid-template-columns: 1.4fr 1fr 1fr 1.3fr; }
.site-footer__bottom { padding-block: 2.8rem; }
.trust-bar { padding-block: 3.6rem; }
.services-grid .card { padding: 3.2rem; }

/* Header: 1024–1279 usa hamburguesa (el menú horizontal no cabe, medido: +67px).
   Desde 1280 el menú es horizontal. */
.brand { flex-shrink: 0; }
.brand__name { overflow: visible; }
.navbar__actions { flex-shrink: 0; }
.navbar__actions .btn { display: inline-flex; }
.phone-pill { display: none; } /* 1024–1279: solo "Agendar cita" */

@media (min-width: 1280px) {
.nav-toggle { display: none; }
.navbar { gap: 1.6rem; }
.navbar__nav {
  position: static;
  display: block;
  padding: 0;
  border: 0;
  background: none;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  flex: 1;
  min-width: 0;
}
.navbar__nav ul { flex-direction: row; justify-content: center; gap: 1rem; }
.navbar__nav > ul > li > a { padding: .9rem .8rem; font-size: 1.35rem; }
.navbar__nav a { white-space: nowrap; }
.navbar__actions { gap: .8rem; }
/* Pill de teléfono solo con ícono para que el menú quepa */
.phone-pill { display: inline-flex; padding: 1rem; }
.phone-pill span { display: none; }

.navbar__nav .sub-menu {
  position: absolute;
  top: calc(100% + .8rem);
  left: 0;
  min-width: 22rem;
  padding: .8rem;
  border-radius: var(--radius-md);
  background: rgba(20,13,8,.96);
  border: 1px solid var(--color-border);
  box-shadow: var(--shadow-lg);
  opacity: 0;
  visibility: hidden;
  transform: translateY(.6rem);
  transition: opacity var(--transition), transform var(--transition), visibility var(--transition);
}
.navbar__nav li:hover > .sub-menu,
.navbar__nav li:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: none;
}
.navbar__nav .sub-menu { flex-direction: column; gap: .2rem; margin: 0; padding: .8rem; border-left: 1px solid var(--color-border); }
.navbar__nav .sub-menu a { color: var(--color-text-2); }
}
