/**
 * NIDO - Landing (inspirada en Kidscamp)
 * Paleta tierra: crema, terracota, salvia, chocolate, huevo · Poppins
 */

 @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700;800&display=swap');

 :root {
   --nido-cream: #E7D7C7;
   --nido-eggshell: #FAF6F1;
   --nido-terracotta: #B17A56;
   --nido-sage: #6F9B84;
   --nido-chocolate: #43352D;
 
   /* Alias internos (compatibilidad con clases existentes) */
   --nido-coral: var(--nido-terracotta);
   --nido-coral-dark: #9a6848;
   --nido-teal: var(--nido-sage);
   --nido-teal-dark: #5a8570;
   --nido-yellow: var(--nido-cream);
   --nido-purple: #8a7a6e;
   --nido-navy: var(--nido-chocolate);
   --nido-text: var(--nido-chocolate);
   --nido-muted: #7a6b62;
   --nido-bg: var(--nido-eggshell);
   --nido-white: #ffffff;
   --nido-mint-pale: #e8efe9;
   --nido-forest-rgb: 67, 53, 45;
   --nido-mint-rgb: 111, 155, 132;
   --nido-amber-rgb: 177, 122, 86;
   --nido-radius: 16px;
   --nido-radius-pill: 999px;
   --nido-shadow: 0 10px 40px rgba(var(--nido-forest-rgb), 0.08);
   --nido-font: 'Poppins', 'Segoe UI', sans-serif;
   --nido-display: 'Poppins', 'Segoe UI', sans-serif;
 }
 
 *, *::before, *::after { box-sizing: border-box; }
 
 html { scroll-behavior: smooth; }
 
 body.landing-body {
   margin: 0;
   font-family: var(--nido-font);
   color: var(--nido-text);
   background: var(--nido-bg);
   line-height: 1.6;
   -webkit-font-smoothing: antialiased;
 }
 
 img { max-width: 100%; height: auto; display: block; }
 
 a { text-decoration: none; color: inherit; }
 
 .container {
   width: min(1200px, 92vw);
   margin: 0 auto;
 }
 
 /* ========== HEADER ========== */
 
 .landing-header {
   position: fixed;
   top: 0;
   left: 0;
   right: 0;
   z-index: 1000;
   background: rgba(255, 255, 255, 0.95);
   backdrop-filter: blur(12px);
   border-bottom: 1px solid rgba(var(--nido-forest-rgb), 0.06);
   transition: box-shadow 0.3s;
 }
 
 .landing-header.is-scrolled {
   box-shadow: 0 4px 24px rgba(var(--nido-forest-rgb), 0.08);
 }
 
 .header-inner {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 1rem;
   padding: 0.85rem 0;
 }
 
 .logo-nido {
   display: flex;
   align-items: center;
   gap: 0.6rem;
   font-family: var(--nido-display);
   font-size: 1.65rem;
   font-weight: 800;
   color: var(--nido-navy);
   line-height: 1;
 }

 .logo-nido-img {
   display: block;
   height: 44px;
   width: auto;
 }

 .logo-nido-icon {
   width: 44px;
   height: 44px;
   border-radius: 14px;
   background: linear-gradient(135deg, var(--nido-coral), var(--nido-yellow));
   display: grid;
   place-items: center;
   color: white;
   font-size: 1.4rem;
 }
 
 .nav-desktop {
   display: flex;
   align-items: center;
   gap: 2rem;
 }
 
 .nav-desktop a {
   font-weight: 600;
   font-size: 0.95rem;
   color: var(--nido-text);
   transition: color 0.2s;
 }
 
 .nav-desktop a:hover { color: var(--nido-coral); }
 
 .header-actions {
   display: flex;
   align-items: center;
   gap: 0.75rem;
 }
 
 .header-phone {
   display: flex;
   align-items: center;
   gap: 0.4rem;
   font-weight: 700;
   color: var(--nido-navy);
   font-size: 0.9rem;
 }
 
 .btn {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   gap: 0.45rem;
   padding: 0.75rem 1.5rem;
   border-radius: var(--nido-radius-pill);
   font-family: var(--nido-font);
   font-weight: 700;
   font-size: 0.95rem;
   border: none;
   cursor: pointer;
   transition: transform 0.2s, box-shadow 0.2s, background 0.2s;
 }
 
 .btn:hover { transform: translateY(-2px); }
 
 .btn-primary {
   background: linear-gradient(135deg, var(--nido-teal), var(--nido-teal-dark));
   color: white;
   box-shadow: 0 8px 24px rgba(var(--nido-mint-rgb), 0.35);
 }

 .btn-primary:hover {
   box-shadow: 0 12px 32px rgba(var(--nido-mint-rgb), 0.45);
 }

 .btn-outline {
   background: transparent;
   color: var(--nido-teal);
   border: 2px solid var(--nido-teal);
 }

 .btn-outline:hover {
   background: var(--nido-teal);
   color: white;
 }

 .btn-teal {
   background: linear-gradient(135deg, var(--nido-teal), var(--nido-teal-dark));
   color: white;
   box-shadow: 0 8px 24px rgba(var(--nido-mint-rgb), 0.35);
 }

 .btn-teal:hover {
   box-shadow: 0 12px 32px rgba(var(--nido-mint-rgb), 0.45);
 }
 
 .btn-sm { padding: 0.55rem 1.15rem; font-size: 0.875rem; }
 
 .menu-toggle {
   display: none;
   width: 44px;
   height: 44px;
   border: none;
   background: var(--nido-bg);
   border-radius: 12px;
   font-size: 1.4rem;
   cursor: pointer;
   color: var(--nido-navy);
 }
 
 .mobile-nav {
   display: none;
   position: fixed;
   inset: 0;
   z-index: 999;
   background: rgba(var(--nido-forest-rgb), 0.5);
   opacity: 0;
   visibility: hidden;
   transition: opacity 0.3s, visibility 0.3s;
 }
 
 .mobile-nav.is-open {
   opacity: 1;
   visibility: visible;
 }
 
 .mobile-nav-panel {
   position: absolute;
   top: 0;
   right: 0;
   width: min(320px, 85vw);
   height: 100%;
   background: white;
   padding: 5rem 1.5rem 2rem;
   display: flex;
   flex-direction: column;
   gap: 0.5rem;
   transform: translateX(100%);
   transition: transform 0.3s;
 }
 
 .mobile-nav.is-open .mobile-nav-panel {
   transform: translateX(0);
 }
 
 .mobile-nav a {
   padding: 0.85rem 1rem;
   font-weight: 600;
   border-radius: 12px;
 }
 
 .mobile-nav a:hover { background: var(--nido-bg); }
 
 /* ========== HERO (limpio y moderno) ========== */
 
.hero--clean {
  position: relative;
  padding: 7rem 0 0;
  overflow: hidden;
  background-color: var(--nido-eggshell);
}

.hero--clean::before {
  content: '';
  position: absolute;
  inset: -12px;
  background-image: url('../../public/images/login-bg.png');
  background-size: cover;
  background-position: center;
  filter: blur(10px);
  transform: scale(1.03);
  opacity: 1;
  z-index: 0;
}

.hero--clean::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 20% 20%, rgba(var(--nido-mint-rgb), 0.08) 0%, transparent 45%),
    linear-gradient(180deg, rgba(250, 246, 241, 0.42) 0%, rgba(243, 235, 225, 0.52) 100%);
  z-index: 1;
  pointer-events: none;
}

.hero--clean .container {
  position: relative;
  z-index: 2;
}

.hero-clean-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(2rem, 4vw, 4rem);
  align-items: end;
  min-height: calc(100vh - 7rem);
}

.hero-clean-content {
  max-width: 520px;
  text-align: left;
  align-self: center;
  padding-bottom: 4rem;
}

.hero-clean-logo {
  display: block;
  width: auto;
  height: clamp(140px, 22vw, 220px);
  margin: 0 0 1.5rem;
  object-fit: contain;
}

.hero-clean-badge {
   display: inline-flex;
   align-items: center;
   gap: 0.45rem;
   padding: 0.5rem 1.1rem;
   margin-bottom: 1.75rem;
   background: #fff;
   border: 1px solid rgba(var(--nido-mint-rgb), 0.35);
   border-radius: var(--nido-radius-pill);
   font-size: 0.85rem;
   font-weight: 600;
   color: var(--nido-chocolate);
   box-shadow: 0 6px 20px rgba(var(--nido-forest-rgb), 0.06);
 }
 
 .hero-clean-badge i {
   color: var(--nido-sage);
   font-size: 1.05rem;
 }
 
.hero--clean h1 {
  margin: 0 0 1.25rem;
  font-family: var(--nido-display);
  font-size: clamp(2.2rem, 4.2vw, 3.6rem);
  line-height: 1.08;
  font-weight: 800;
  color: var(--nido-chocolate);
  letter-spacing: -0.02em;
}
 
 .hero--clean h1 span {
   color: var(--nido-terracotta);
 }
 
.hero--clean .hero-clean-content > p {
  max-width: none;
  margin: 0 0 2rem;
  font-size: 1.05rem;
  line-height: 1.75;
  color: var(--nido-muted);
}

.hero-clean-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: flex-start;
}
 
 .btn-lg {
   padding: 1rem 2.25rem;
   font-size: 1rem;
   border-radius: 10px;
 }
 
 .btn-soft {
   background: #fff;
   color: var(--nido-teal);
   border: 2px solid var(--nido-teal);
   box-shadow: 0 6px 20px rgba(var(--nido-mint-rgb), 0.12);
 }

 .btn-soft:hover {
   background: var(--nido-teal);
   color: white;
 }
 
.hero-clean-photo {
  margin: 0;
  padding: 0;
  border-radius: 0;
  overflow: visible;
  box-shadow: none;
  background: none;
  align-self: end;
  line-height: 0;
}

.hero-photo-slider {
  position: relative;
  width: 100%;
  min-height: min(82vh, 760px);
  display: flex;
  align-items: flex-end;
  justify-content: center;
}

.hero-photo-slide {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: auto;
  max-width: 100%;
  max-height: min(82vh, 760px);
  height: auto;
  object-fit: contain;
  object-position: bottom center;
  display: block;
  opacity: 0;
  transition: opacity 1s ease;
  pointer-events: none;
}

.hero-photo-slide.is-active {
  opacity: 1;
  z-index: 1;
}
 
 /* ========== SECTIONS COMMON ========== */
 
 .section {
   padding: 5rem 0;
 }
 
 .section-tag {
   display: inline-block;
   font-weight: 700;
   font-size: 0.85rem;
   text-transform: uppercase;
   letter-spacing: 0.08em;
   color: var(--nido-coral);
   margin-bottom: 0.75rem;
 }
 
 .section-title {
   font-family: var(--nido-display);
   font-size: clamp(1.75rem, 3.5vw, 2.5rem);
   font-weight: 800;
   color: var(--nido-navy);
   line-height: 1.25;
   margin: 0 0 1rem;
 }
 
 .section-desc {
   color: var(--nido-muted);
   max-width: 600px;
   margin: 0 auto 3rem;
   text-align: center;
 }
 
 .text-center { text-align: center; }
 
 /* ========== FEATURES ========== */
 
 .features-grid {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: 1.5rem;
 }
 
 .feature-card {
   background: white;
   padding: 2rem 1.5rem;
   border-radius: var(--nido-radius);
   text-align: center;
   box-shadow: var(--nido-shadow);
   transition: transform 0.3s;
   border: 2px solid transparent;
 }
 
 .feature-card:hover {
   transform: translateY(-6px);
   border-color: rgba(var(--nido-amber-rgb), 0.25);
 }
 
 .feature-icon {
   width: 72px;
   height: 72px;
   margin: 0 auto 1.25rem;
   border-radius: 20px;
   display: grid;
   place-items: center;
   font-size: 2rem;
   color: white;
 }
 
 .feature-icon.coral { background: linear-gradient(135deg, var(--nido-coral), var(--nido-coral-dark)); }
 .feature-icon.teal { background: linear-gradient(135deg, var(--nido-teal), var(--nido-teal-dark)); }
 .feature-icon.yellow { background: linear-gradient(135deg, var(--nido-cream), var(--nido-terracotta)); color: var(--nido-chocolate); }
 .feature-icon.purple { background: linear-gradient(135deg, #8a7a6e, var(--nido-chocolate)); }
 
 .feature-card h3 {
   font-family: var(--nido-display);
   font-size: 1.15rem;
   font-weight: 800;
   color: var(--nido-navy);
   margin: 0 0 0.75rem;
 }
 
 .feature-card p {
   font-size: 0.9rem;
   color: var(--nido-muted);
   margin: 0;
 }
 
 /* ========== ABOUT ========== */
 
 .about-section {
   background: white;
 }
 
 .about-grid {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 4rem;
   align-items: center;
 }
 
 .about-image {
   position: relative;
   border-radius: 24px;
   overflow: hidden;
   box-shadow: var(--nido-shadow);
 }
 
 .about-image img {
   width: 100%;
   aspect-ratio: 1;
   object-fit: cover;
 }
 
 .about-badge {
   position: absolute;
   bottom: 24px;
   right: 24px;
   background: var(--nido-coral);
   color: white;
   padding: 1.25rem 1.5rem;
   border-radius: 16px;
   text-align: center;
   font-family: var(--nido-display);
 }
 
 .about-badge strong {
   display: block;
   font-size: 2rem;
   line-height: 1;
 }
 
 .about-list {
   list-style: none;
   padding: 0;
   margin: 1.5rem 0 2rem;
 }
 
 .about-list li {
   display: flex;
   align-items: flex-start;
   gap: 0.75rem;
   margin-bottom: 0.85rem;
   font-weight: 600;
 }
 
 .about-list i {
   color: var(--nido-teal);
   font-size: 1.2rem;
   margin-top: 0.15rem;
 }
 
 /* ========== SERVICES / VERTICALES ========== */
 
 .services-section {
   background: linear-gradient(180deg, var(--nido-bg) 0%, var(--nido-mint-pale) 100%);
 }
 
 .services-grid {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: 2rem;
   text-align: left;
 }

 .service-card {
   background: white;
   border-radius: 24px;
   overflow: hidden;
   box-shadow: var(--nido-shadow);
   transition: transform 0.3s, box-shadow 0.3s;
   display: flex;
   flex-direction: column;
   border: 1px solid rgba(var(--nido-mint-rgb), 0.12);
 }

 .service-card:hover {
   transform: translateY(-8px);
   box-shadow: 0 20px 44px rgba(var(--nido-mint-rgb), 0.14);
 }

 .service-card-image {
   overflow: hidden;
   position: relative;
   background: var(--nido-mint-pale);
 }

 .service-card-image img {
   width: 100%;
   height: auto;
   display: block;
   object-fit: contain;
 }

 .service-card-tag {
   position: absolute;
   top: 16px;
   left: 16px;
   background: white;
   padding: 0.4rem 0.95rem;
   border-radius: var(--nido-radius-pill);
   font-weight: 700;
   font-size: 0.78rem;
   letter-spacing: 0.04em;
   text-transform: uppercase;
   color: var(--nido-teal);
   box-shadow: 0 4px 14px rgba(var(--nido-forest-rgb), 0.1);
 }

 .service-card-body {
   padding: 1.85rem 2rem 2rem;
   display: flex;
   flex-direction: column;
   flex: 1;
   gap: 0;
 }

 .service-card-body h3 {
   font-family: var(--nido-display);
   font-size: clamp(1.4rem, 2.2vw, 1.7rem);
   font-weight: 800;
   color: var(--nido-navy);
   margin: 0;
   line-height: 1.2;
   letter-spacing: -0.01em;
 }

 .service-card-body h3::after {
   content: '';
   display: block;
   width: 52px;
   height: 3px;
   margin-top: 0.7rem;
   border-radius: 999px;
   background: linear-gradient(90deg, var(--nido-teal), var(--nido-teal-dark));
 }

 .service-card-body p {
   color: var(--nido-muted);
   font-size: 0.95rem;
   line-height: 1.7;
   margin: 1.1rem 0 1.35rem;
 }

 .service-meta {
   display: grid;
   grid-template-columns: repeat(2, minmax(0, 1fr));
   gap: 0.75rem;
   margin-bottom: 1.5rem;
   padding: 1rem 1.1rem;
   background: var(--nido-mint-pale);
   border-radius: 16px;
   border: 1px solid rgba(var(--nido-mint-rgb), 0.18);
 }

 .service-meta span {
   display: flex;
   align-items: flex-start;
   gap: 0.5rem;
   font-size: 0.84rem;
   font-weight: 600;
   line-height: 1.4;
   color: var(--nido-navy);
 }

 .service-meta span i {
   flex-shrink: 0;
   margin-top: 0.1rem;
   font-size: 1.05rem;
   color: var(--nido-teal);
 }

 .service-card-body .btn {
   margin-top: auto;
   width: 100%;
 }

 /* ========== CATALOG / RESERVAR PAGES ========== */

 .catalog-body {
   background: var(--nido-bg);
 }

 .catalog-header .header-inner {
   gap: 1rem;
 }

 .catalog-back-link {
   display: inline-flex;
   align-items: center;
   gap: 0.4rem;
   font-weight: 600;
   font-size: 0.9rem;
   color: var(--nido-navy);
   text-decoration: none;
   margin-right: auto;
   margin-left: 1rem;
 }

 .catalog-back-link:hover {
   color: var(--nido-teal);
 }

 .catalog-page {
   padding-top: 6.5rem;
 }

 .catalog-hero {
   padding: 2.5rem 0 1.5rem;
   background: linear-gradient(180deg, white 0%, var(--nido-bg) 100%);
 }

 .catalog-title {
   font-family: var(--nido-display);
   font-weight: 800;
   font-size: clamp(1.85rem, 3.5vw, 2.6rem);
   color: var(--nido-navy);
   margin: 0.5rem 0 0.75rem;
   line-height: 1.15;
 }

 .catalog-lead {
   margin: 0;
   color: var(--nido-muted);
   font-size: 1.02rem;
   line-height: 1.65;
   max-width: 640px;
 }

 .catalog-section {
   padding: 1.5rem 0 4rem;
 }

 .catalog-toolbar {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   justify-content: space-between;
   gap: 1rem;
   margin-bottom: 1.75rem;
 }

 .catalog-search {
   flex: 1;
   min-width: min(100%, 320px);
   display: flex;
   align-items: center;
   gap: 0.65rem;
   padding: 0.85rem 1rem;
   border-radius: 14px;
   background: white;
   border: 1px solid rgba(var(--nido-mint-rgb), 0.22);
   box-shadow: var(--nido-shadow);
 }

 .catalog-search i {
   color: var(--nido-teal);
   font-size: 1.15rem;
 }

 .catalog-search input {
   width: 100%;
   border: none;
   outline: none;
   font-family: var(--nido-font);
   font-size: 0.95rem;
   color: var(--nido-navy);
   background: transparent;
 }

 .catalog-count {
   margin: 0;
   font-size: 0.9rem;
   font-weight: 600;
   color: var(--nido-muted);
 }

 .catalog-grid {
   display: grid;
   grid-template-columns: repeat(3, minmax(0, 1fr));
   gap: 1.5rem;
 }

 .catalog-pro-card {
   background: white;
   border-radius: 22px;
   overflow: hidden;
   box-shadow: var(--nido-shadow);
   border: 1px solid rgba(var(--nido-mint-rgb), 0.12);
   display: flex;
   flex-direction: column;
   transition: transform 0.25s, box-shadow 0.25s;
 }

 .catalog-pro-card:hover {
   transform: translateY(-6px);
   box-shadow: 0 18px 40px rgba(var(--nido-mint-rgb), 0.14);
 }

 .catalog-pro-photo-wrap {
   position: relative;
   aspect-ratio: 4 / 3;
   background: var(--nido-mint-pale);
   overflow: hidden;
 }

 .catalog-pro-photo {
   width: 100%;
   height: 100%;
   object-fit: cover;
   display: block;
 }

 .catalog-pro-photo-placeholder {
   width: 100%;
   height: 100%;
   display: grid;
   place-items: center;
   background: linear-gradient(135deg, var(--nido-teal), var(--nido-teal-dark));
   color: white;
   font-size: 2rem;
   font-weight: 800;
 }

 .catalog-pro-badge {
   position: absolute;
   top: 12px;
   left: 12px;
   display: inline-flex;
   align-items: center;
   gap: 0.3rem;
   padding: 0.35rem 0.7rem;
   border-radius: var(--nido-radius-pill);
   background: rgba(255, 255, 255, 0.95);
   color: var(--nido-teal);
   font-size: 0.75rem;
   font-weight: 700;
 }

 .catalog-pro-body {
   padding: 1.35rem 1.35rem 1.5rem;
   display: flex;
   flex-direction: column;
   flex: 1;
 }

 .catalog-pro-body h3 {
   font-family: var(--nido-display);
   font-weight: 800;
   font-size: 1.15rem;
   color: var(--nido-navy);
   margin: 0 0 0.25rem;
 }

 .catalog-pro-role {
   margin: 0 0 0.45rem;
   color: var(--nido-teal);
   font-weight: 600;
   font-size: 0.9rem;
 }

 .catalog-pro-meta {
   margin: 0 0 0.65rem;
   color: var(--nido-muted);
   font-size: 0.84rem;
   display: flex;
   align-items: center;
   gap: 0.3rem;
 }

 .catalog-pro-rating {
   display: flex;
   align-items: center;
   gap: 0.45rem;
   margin-bottom: 0.75rem;
 }

 .catalog-pro-stars {
   color: #d4a853;
   display: inline-flex;
   gap: 0.1rem;
 }

 .catalog-pro-rating strong {
   color: var(--nido-navy);
   font-size: 0.9rem;
 }

 .catalog-pro-bio {
   margin: 0 0 0.85rem;
   color: var(--nido-muted);
   font-size: 0.88rem;
   line-height: 1.55;
   flex: 1;
 }

 .catalog-pro-tags {
   display: flex;
   flex-wrap: wrap;
   gap: 0.45rem;
   margin-bottom: 0.9rem;
 }

 .catalog-pro-tag {
   padding: 0.28rem 0.65rem;
   border-radius: var(--nido-radius-pill);
   background: var(--nido-mint-pale);
   color: var(--nido-navy);
   font-size: 0.75rem;
   font-weight: 600;
 }

 .catalog-pro-price {
   margin: 0 0 1rem;
   color: var(--nido-muted);
   font-size: 0.88rem;
 }

 .catalog-pro-price strong {
   color: var(--nido-navy);
   font-size: 1rem;
 }

 .catalog-pro-btn {
   width: 100%;
 }

 .catalog-empty {
   grid-column: 1 / -1;
   text-align: center;
   padding: 3rem 1.5rem;
   background: white;
   border-radius: 20px;
   color: var(--nido-muted);
 }

 .catalog-empty i {
   font-size: 2rem;
   color: var(--nido-teal);
   display: block;
   margin-bottom: 0.75rem;
 }

 .catalog-footer {
   padding-top: 0;
 }

 /* ========== STATS ========== */
 
 .stats-section {
   background: linear-gradient(135deg, var(--nido-teal), var(--nido-teal-dark));
   color: white;
   padding: 4rem 0;
 }

 .stats-grid {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 2rem;
   text-align: center;
 }
 
 .stat-item h3 {
   font-family: var(--nido-display);
   font-size: 2.75rem;
   font-weight: 800;
   margin: 0 0 0.5rem;
   color: var(--nido-yellow);
 }
 
 .stat-item p {
   margin: 0;
   opacity: 0.85;
   font-size: 0.95rem;
 }
 
 /* ========== TESTIMONIALS ========== */

 .testimonials-section {
   position: relative;
   overflow: hidden;
   background: linear-gradient(145deg, var(--nido-teal-dark) 0%, var(--nido-teal) 50%, #7ead93 100%);
 }

 .testimonials-section::before,
 .testimonials-section::after {
   content: '';
   position: absolute;
   border-radius: 50%;
   background: rgba(255, 255, 255, 0.07);
   pointer-events: none;
 }

 .testimonials-section::before {
   width: 420px;
   height: 420px;
   top: -140px;
   right: -100px;
 }

 .testimonials-section::after {
   width: 320px;
   height: 320px;
   bottom: -120px;
   left: -80px;
 }

 .testimonials-section .container {
   position: relative;
   z-index: 1;
 }

 .testimonials-section .section-tag {
   color: rgba(255, 255, 255, 0.92);
 }

 .testimonials-section .section-title {
   color: white;
 }

 .testimonials-lead {
   max-width: 560px;
   margin: 0 auto 2.75rem;
   color: rgba(255, 255, 255, 0.88);
   font-size: 1.02rem;
   line-height: 1.65;
 }

 .testimonials-slider {
   position: relative;
   overflow: hidden;
 }

 .testimonials-track {
   display: flex;
   transition: transform 0.5s ease;
 }

 .testimonial-slide {
   min-width: 100%;
   padding: 0 0.5rem;
 }

 .testimonial-card {
   position: relative;
   background: white;
   padding: 2.75rem 2.5rem 2rem;
   border-radius: 28px;
   box-shadow: 0 28px 64px rgba(0, 0, 0, 0.18);
   max-width: 820px;
   margin: 0 auto;
   text-align: left;
   border: 1px solid rgba(255, 255, 255, 0.35);
 }

 .testimonial-card::after {
   content: '';
   position: absolute;
   top: 0;
   left: 2rem;
   right: 2rem;
   height: 4px;
   border-radius: 0 0 8px 8px;
   background: linear-gradient(90deg, var(--nido-teal), var(--nido-cream));
 }

 .testimonial-quote-icon {
   display: block;
   font-size: 3rem;
   line-height: 1;
   color: rgba(var(--nido-mint-rgb), 0.35);
   margin-bottom: 0.35rem;
 }

 .testimonial-stars {
   display: flex;
   gap: 0.25rem;
   margin-bottom: 1.15rem;
 }

 .testimonial-stars i {
   color: #d4a853;
   font-size: 1.1rem;
 }

 .testimonial-card p {
   font-size: clamp(1.05rem, 2vw, 1.22rem);
   color: var(--nido-navy);
   font-style: italic;
   font-weight: 500;
   margin: 0 0 1.75rem;
   line-height: 1.75;
 }

 .testimonial-author {
   display: flex;
   align-items: center;
   justify-content: flex-start;
   gap: 1rem;
   padding: 1.1rem 1.25rem;
   background: var(--nido-mint-pale);
   border-radius: 16px;
   border: 1px solid rgba(var(--nido-mint-rgb), 0.22);
 }

 .testimonial-avatar {
   width: 60px;
   height: 60px;
   border-radius: 50%;
   background: linear-gradient(135deg, var(--nido-teal), var(--nido-teal-dark));
   display: grid;
   place-items: center;
   color: white;
   font-weight: 800;
   font-size: 1.2rem;
   flex-shrink: 0;
   border: 3px solid white;
   box-shadow: 0 6px 18px rgba(var(--nido-mint-rgb), 0.35);
 }

 .testimonial-author strong {
   display: block;
   color: var(--nido-navy);
   font-weight: 700;
 }

 .testimonial-author span {
   font-size: 0.85rem;
   color: var(--nido-muted);
 }

 .testimonial-nav {
   display: flex;
   justify-content: center;
   gap: 0.55rem;
   margin-top: 2rem;
 }

 .testimonial-dot {
   width: 10px;
   height: 10px;
   border: none;
   border-radius: 999px;
   padding: 0;
   cursor: pointer;
   background: rgba(255, 255, 255, 0.35);
   transition: transform 0.2s, background 0.2s, width 0.25s ease;
 }

 .testimonial-dot.is-active {
   width: 30px;
   background: white;
 }
 
 /* ========== HOW IT WORKS ========== */
 
 .steps-grid {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 2rem;
 }
 
 .step-card {
   text-align: center;
   padding: 2rem 1.5rem;
 }
 
 .step-number {
   width: 64px;
   height: 64px;
   margin: 0 auto 1.25rem;
   border-radius: 50%;
   background: linear-gradient(135deg, var(--nido-teal), var(--nido-teal-dark));
   display: grid;
   place-items: center;
   font-family: var(--nido-display);
   font-size: 1.5rem;
   font-weight: 800;
   color: white;
 }
 
 .step-card h3 {
   font-family: var(--nido-display);
   font-weight: 800;
   color: var(--nido-navy);
   margin: 0 0 0.75rem;
 }
 
 .step-card p {
   color: var(--nido-muted);
   font-size: 0.95rem;
   margin: 0;
 }
 
 /* ========== CTA / REGISTRO ========== */
 
 .cta-section {
   background: linear-gradient(135deg, var(--nido-cream), var(--nido-mint-pale));
   padding: 5rem 0;
 }
 
 .cta-grid {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 3rem;
   align-items: start;
 }
 
 .cta-info h2 {
   font-family: var(--nido-display);
   font-size: 2rem;
   font-weight: 800;
   color: var(--nido-navy);
   margin: 0 0 1rem;
 }
 
 .cta-contacts {
   list-style: none;
   padding: 0;
   margin: 2rem 0 0;
 }
 
 .cta-contacts li {
   display: flex;
   align-items: flex-start;
   gap: 1rem;
   margin-bottom: 1.25rem;
 }
 
 .cta-contacts i {
   width: 48px;
   height: 48px;
   border-radius: 12px;
   background: white;
   display: grid;
   place-items: center;
   color: var(--nido-coral);
   font-size: 1.25rem;
   box-shadow: var(--nido-shadow);
   flex-shrink: 0;
 }
 
 .cta-form-card {
   background: white;
   padding: 2rem;
   border-radius: 24px;
   box-shadow: var(--nido-shadow);
 }
 
 .cta-form-card h3 {
   font-family: var(--nido-display);
   font-weight: 800;
   color: var(--nido-navy);
   margin: 0 0 1.5rem;
   text-align: center;
 }
 
 .form-row {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 1rem;
 }
 
 .form-group {
   margin-bottom: 1rem;
 }
 
 .form-group label {
   display: block;
   font-weight: 600;
   font-size: 0.875rem;
   margin-bottom: 0.4rem;
   color: var(--nido-navy);
 }
 
 .form-group input,
 .form-group select,
 .form-group textarea {
   width: 100%;
   padding: 0.75rem 1rem;
   border: 2px solid #ddd0c4;
   border-radius: 12px;
   font-family: var(--nido-font);
   font-size: 0.95rem;
   transition: border-color 0.2s;
 }
 
 .form-group input:focus,
 .form-group select:focus,
 .form-group textarea:focus {
   outline: none;
   border-color: var(--nido-teal);
 }
 
 .form-group textarea { resize: vertical; min-height: 90px; }
 
 .form-group.full { grid-column: 1 / -1; }
 
 /* ========== NEWSLETTER ========== */
 
 .newsletter-section {
   background: var(--nido-teal);
   color: white;
   padding: 4rem 0;
   text-align: center;
 }
 
 .newsletter-section .section-title { color: white; }
 
 .newsletter-form {
   display: flex;
   gap: 0.75rem;
   max-width: 480px;
   margin: 2rem auto 0;
 }
 
 .newsletter-form input {
   flex: 1;
   padding: 0.85rem 1.25rem;
   border: none;
   border-radius: var(--nido-radius-pill);
   font-family: var(--nido-font);
   font-size: 0.95rem;
 }
 
 /* ========== FOOTER ========== */
 
 .landing-footer {
   background: var(--nido-navy);
   color: rgba(255, 255, 255, 0.8);
   padding: 4rem 0 0;
 }
 
 .footer-grid {
   display: grid;
   grid-template-columns: 1.5fr 1fr 1fr 1fr;
   gap: 2.5rem;
   padding-bottom: 3rem;
   border-bottom: 1px solid rgba(255, 255, 255, 0.1);
 }
 
 .footer-logo {
   display: inline-flex;
   align-items: center;
   line-height: 0;
 }

 .footer-logo-img {
   display: block;
   height: 96px;
   width: auto;
   object-fit: contain;
 }

 .footer-brand p {
   margin: 1rem 0 0;
   font-size: 0.9rem;
   line-height: 1.7;
 }
 
 .footer-col h4 {
   font-family: var(--nido-display);
   font-weight: 800;
   color: white;
   margin: 0 0 1.25rem;
   font-size: 1.1rem;
 }
 
 .footer-col ul {
   list-style: none;
   padding: 0;
   margin: 0;
 }
 
 .footer-col li { margin-bottom: 0.6rem; }
 
 .footer-col a {
   font-size: 0.9rem;
   transition: color 0.2s;
 }
 
 .footer-col a:hover { color: var(--nido-yellow); }
 
 .footer-bottom {
   padding: 1.5rem 0;
   text-align: center;
   font-size: 0.85rem;
 }

 .footer-bottom a {
   color: var(--nido-yellow);
   font-weight: 700;
   text-decoration: none;
   transition: color 0.2s;
 }

 .footer-bottom a:hover {
   color: white;
 }
 
 .footer-social {
   display: flex;
   gap: 0.75rem;
   margin-top: 1.25rem;
 }
 
 .footer-social a {
   width: 40px;
   height: 40px;
   border-radius: 10px;
   background: rgba(255, 255, 255, 0.1);
   display: grid;
   place-items: center;
   font-size: 1.1rem;
   transition: background 0.2s;
 }
 
 .footer-social a:hover { background: var(--nido-coral); color: white; }
 
 /* ========== RESPONSIVE ========== */
 
@media (max-width: 1024px) {
  .features-grid { grid-template-columns: repeat(2, 1fr); }
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .hero-clean-grid {
    grid-template-columns: 1fr;
    min-height: auto;
    gap: 2.5rem;
    align-items: center;
  }

  .hero-clean-content {
    max-width: none;
    text-align: center;
    order: 0;
    padding-bottom: 0;
  }

  .hero-clean-logo {
    margin-left: auto;
    margin-right: auto;
  }

  .hero-clean-photo {
    order: 1;
    max-width: 420px;
    margin: 0 auto;
    align-self: center;
  }

  .hero-clean-photo img,
  .hero-photo-slider {
    max-height: 480px;
    min-height: 420px;
  }

  .hero-photo-slide {
    max-height: 480px;
  }

  .hero-clean-actions {
    justify-content: center;
  }
}
 
 @media (max-width: 768px) {
   .nav-desktop,
   .header-phone { display: none; }
 
   .menu-toggle { display: grid; place-items: center; }
 
   .mobile-nav { display: block; }
 
   .hero--clean { padding-top: 6rem; }
 
   .hero-clean-actions { flex-direction: column; align-items: stretch; }
 
   .about-grid,
   .cta-grid,
   .services-grid { grid-template-columns: 1fr; }

   .service-meta { grid-template-columns: 1fr; }

   .catalog-grid { grid-template-columns: 1fr; }

   .catalog-back-link { margin-left: 0; }
 
   .steps-grid { grid-template-columns: 1fr; }

   .testimonial-card {
     padding: 2rem 1.35rem 1.5rem;
   }

   .testimonial-card::after {
     left: 1.25rem;
     right: 1.25rem;
   }

   .form-row { grid-template-columns: 1fr; }
 
   .newsletter-form { flex-direction: column; }
 
   .footer-grid { grid-template-columns: 1fr; }
 }
 