/* =========================================================
   SMART DENT — Landing Page
   Tokens, base, componentes, secciones y animaciones
   ========================================================= */

:root{
  /* Color */
  --teal-50:  #EAFBFC;
  --teal-100: #D4F6F8;
  --teal-200: #AEEDF2;
  --teal-300: #6FD8E3;
  --teal-400: #2BC5D6;
  --teal-500: #06B6CE;
  --teal-600: #0B9DB3;
  --teal-700: #0C7E91;

  --purple-50:  #F1EDFF;
  --purple-100: #E6E1FF;
  --purple-300: #B6A4FB;
  --purple-500: #8565EE;
  --purple-600: #7249E0;

  --navy-900: #16334B;
  --navy-800: #1C3E5A;
  --navy-700: #234C6E;
  --navy-600: #2E5E84;

  --cream: #F8F4ED;

  --text-dark:  #16334B;
  --text-body:  #5C6F80;
  --text-muted: #93A6B4;
  --white: #FFFFFF;

  --radius-xl: 28px;
  --radius-lg: 20px;
  --radius-md: 14px;
  --radius-pill: 999px;

  --shadow-soft: 0 18px 40px -12px rgba(22, 51, 75, 0.16);
  --shadow-card: 0 14px 34px -14px rgba(22, 51, 75, 0.18);
  --shadow-btn:  0 12px 24px -8px rgba(6, 182, 206, 0.45);

  --font-display: 'Manrope', 'Inter', sans-serif;
  --font-body: 'Inter', sans-serif;

  --ease-soft: cubic-bezier(.22,1,.36,1);
}

*{box-sizing:border-box;}

html{scroll-behavior:smooth;}

body{
  font-family:var(--font-body);
  color:var(--text-body);
  background:var(--white);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

a{text-decoration:none;}
ul{margin:0;padding:0;}

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

::selection{background:var(--teal-200);color:var(--navy-900);}

/* =========================================================
   TIPOGRAFÍA
   ========================================================= */
.sd-h1, .sd-h2, .sd-brand-name, .sd-btn, .sd-card-title, .sd-contact-heading{
  font-family:var(--font-display);

}

.sd-h1{
  font-weight:800;
  color:var(--white);
  font-size:clamp(2.1rem, 4vw, 3.4rem);
  line-height:1.14;
  letter-spacing:-0.015em;
  margin-bottom:1.1rem;
}

.sd-h2{
  font-weight:700;
  color:var(--text-dark);
  font-size:clamp(1.9rem, 3.2vw, 2.8rem);
  line-height:1.2;
  letter-spacing:-0.01em;
  margin-bottom:.85rem;
}

.sd-h2-white{color:var(--white);}

.sd-lead{
  font-size:1.08rem;
  color:var(--white);
  max-width:480px;
  margin-bottom:1.9rem;
}

.sd-section-sub{
  color:#0a0a0a;
  margin:0 auto 0;
  font-size:1.1rem;
}

.sd-section-sub-2{
  color:#0e8797;
  font-weight: 700;
  margin:0 auto 0;
  font-size:1.1rem;
}

.sd-section-sub-light{color:#A9BBCB;margin-left:auto;margin-right:auto;}

.sd-text-left{margin-left:0;margin-right:0;}

/* =========================================================
   EYEBROW / PILLS
   ========================================================= */
.sd-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  font-size:.8rem;
  font-weight:600;
  padding:.5rem 1.1rem;
  border-radius:var(--radius-pill);
  margin-bottom:1.1rem;
  width:fit-content;
}

.sd-eyebrow-teal{
  background:var(--teal-100);
  color:var(--teal-700);
}

.sd-eyebrow-purple{
  background:var(--purple-100);
  color:var(--purple-600);
}

/* =========================================================
   BOTONES
   ========================================================= */
.sd-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  font-weight:600;
  font-size:.95rem;
  padding:.85rem 1.7rem;
  border:none;
  border-radius:var(--radius-pill);
  cursor:pointer;
  transition:transform .35s var(--ease-soft), box-shadow .35s var(--ease-soft), filter .35s var(--ease-soft);
  white-space:nowrap;
}

.sd-btn i{font-size:.85em;transition:transform .3s var(--ease-soft);}

.sd-btn:hover i{transform:translateX(3px);}

.sd-btn-teal{
  background:var(--teal-500);
  color:var(--white);
  box-shadow:var(--shadow-btn);
}

.sd-btn-teal:hover{
  transform:translateY(-3px);
  box-shadow:0 18px 30px -10px rgba(6,182,206,.55);
  filter:brightness(1.04);
  color:var(--white);
}

.sd-btn-sm{padding:.6rem 1.3rem;font-size:.85rem;}
.sd-btn-lg{padding:1rem 2rem;font-size:1rem;}

.sd-btn-gradient-teal{
  background:linear-gradient(95deg, var(--teal-400), var(--teal-600));
  color:var(--white);
  box-shadow:0 14px 26px -12px rgba(6,182,206,.5);
}

.sd-btn-gradient-teal:hover{
  transform:translateY(-3px);
  box-shadow:0 18px 32px -10px rgba(6,182,206,.6);
  color:var(--white);
}

.sd-btn-gradient-purple{
  background:linear-gradient(95deg, var(--purple-300), var(--purple-600));
  color:var(--white);
  box-shadow:0 14px 26px -12px rgba(114,73,224,.5);
}

.sd-btn-gradient-purple:hover{
  transform:translateY(-3px);
  box-shadow:0 18px 32px -10px rgba(114,73,224,.6);
  color:var(--white);
}

/* =========================================================
   NAVBAR
   ========================================================= */
.sd-navbar{
  position:fixed;
  top:0;left:0;right:0;
  z-index:1000;
  padding:.4rem 0;
  background:rgba(255,255,255,0);
  transition:background .4s var(--ease-soft), box-shadow .4s var(--ease-soft), padding .35s var(--ease-soft);
}

.sd-navbar.is-scrolled{
  backdrop-filter:blur(10px);
  box-shadow:0 8px 26px -14px rgba(22,51,75,.25);
  padding:.15rem 0;
}

.sd-brand{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  color:var(--text-dark);
}

.sd-brand img{
  max-width: 120px;
  transition: .5s;
}
.is-scrolled .sd-brand img{
  max-width: 50px;
  transition: .5s
}

.sd-brand-icon{
  width:38px;height:38px;
  display:inline-flex;
  align-items:center;justify-content:center;
  border-radius:50%;
  border:2px solid var(--teal-400);
  color:var(--teal-500);
  font-size:.95rem;
  transition:transform .4s var(--ease-soft);
}

.sd-brand:hover .sd-brand-icon{transform:rotate(-12deg) scale(1.08);}

.sd-brand-name{font-weight:700;font-size:1.18rem;color:var(--text-dark);}

.sd-nav-links{gap:.4rem;}

.sd-nav-links .nav-link{
  color:var(--text-dark);
  font-weight:500;
  font-size:.95rem;
  padding:.5rem .9rem;
  border-radius:var(--radius-pill);
  position:relative;
  transition:color .25s, background .25s;
}

.sd-nav-links .nav-link:hover{
  color:var(--teal-600);
  background:var(--teal-50);
}

.sd-toggler{border:none;padding:.3rem;}
.sd-toggler:focus{box-shadow:none;outline:2px solid var(--teal-300);}
.sd-toggler-bar{
  display:block;
  width:24px;height:2px;
  background:var(--white);
  margin:5px 0;
  border-radius:2px;
  transition:transform .3s, opacity .3s;
}

/* =========================================================
   HERO
   ========================================================= */
.sd-hero{
  position:relative;
  padding-top:12.5rem ;
  padding-bottom: 7rem;
  overflow:hidden;
  isolation:isolate;
}

.sd-hero-bg{
  position:absolute;
  inset:0;
  z-index:-2;
  background-size:cover;
  background-position:center;
  opacity:1;
}

.sd-hero::after{
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  /**background:linear-gradient(100deg, rgba(255,255,255,.97) 0%, rgba(255,255,255,.88) 26%, rgba(255,255,255,.5) 46%, rgba(214,245,248,.18) 64%, rgba(214,245,248,.04) 80%, transparent 100%);**/
  background: linear-gradient(100deg, rgb(21 26 81) 0%, rgb(20 44 87) 15%, rgb(31 56 101 / 50%) 30%, rgb(78 123 161 / 18%) 45%, rgb(68 82 101 / 4%) 60%, transparent 100%);;
}

@media (max-width:991.98px){
  .sd-hero::after{
    background:linear-gradient(180deg, rgb(21 26 81) 0%, rgb(20 44 87) 15%, rgb(31 56 101 / 50%) 30%, rgb(78 123 161 / 18%) 45%, rgb(68 82 101 / 4%) 60%, transparent 100%);;
}
}

.sd-hero-cases{
  position:relative;
  max-width:90%
  margin:0 auto;
  z-index:1;
  overflow:hidden;
}
.sd-hero-cases-swiper{
  overflow:hidden;
}
.sd-case-stack{
  display:flex;
  flex-direction:column;
  padding:.5rem 1.1rem 2.6rem;
}
.sd-polaroid{
  background:var(--white);
  margin:0;
  padding:0rem .6rem 1rem;
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-card);
  opacity:1;
  will-change:transform, opacity;
}
.sd-polaroid-top{
  align-self:flex-start;
  width:58%;
}
.sd-polaroid-bottom{
  align-self:flex-end;
  width:92%;
  margin-top:-1.6rem;
}
.sd-polaroid img{
  display:block;
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  border-radius:calc(var(--radius-md) - 6px);
  margin-top: 15px;
}
.sd-polaroid figcaption{
  padding-top:.55rem;
  text-align:center;
}
.sd-polaroid-tag{
  display:inline-block;
  font-family:var(--font-display);
  font-size:.7rem;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
  padding:.28rem .8rem;
  border-radius:var(--radius-pill);

}
.sd-polaroid-tag-before{
  background:var(--purple-100);
  color:var(--purple-600);
}
.sd-polaroid-tag-after{
  background:var(--teal-100);
  color:var(--teal-700);
}

/* ---------- Animación de entrada: las polaroids "caen" sobre la mesa ---------- */
@keyframes sdPolaroidDropTop{
  0%{
    opacity:1;
    transform:translate(-70px,-46px) rotate(-22deg) scale(.9);
  }
  65%{
    opacity:1;
    transform:translate(3px,2px) rotate(-2deg) scale(1.03);
  }
  100%{
    opacity:1;
    transform:translate(0,0) rotate(-5deg) scale(1);
  }
}
@keyframes sdPolaroidDropBottom{
  0%{
    opacity:1;
    transform:translate(70px,46px) rotate(22deg) scale(.9);
  }
  65%{
    opacity:1;
    transform:translate(-3px,-2px) rotate(3deg) scale(1.03);
  }
  100%{
    opacity:1;
    transform:translate(0,0) rotate(4deg) scale(1);
  }
}

.swiper-slide-active .sd-polaroid-top{
  animation:sdPolaroidDropTop .8s cubic-bezier(.22,.68,0,1.15) forwards;
}
.swiper-slide-active .sd-polaroid-bottom{
  animation:sdPolaroidDropBottom .8s .15s cubic-bezier(.22,.68,0,1.15) forwards;
}

@media (prefers-reduced-motion: reduce){
  .sd-polaroid{ animation:none !important; opacity:1; }
  .sd-polaroid-top{ transform:rotate(-5deg); }
  .sd-polaroid-bottom{ transform:rotate(4deg); }
}

.sd-hero-cases-pagination{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  display:flex;
  justify-content:center;
  gap:.4rem;
}
.sd-hero-cases-pagination .swiper-pagination-bullet{
  width:8px;
  height:8px;
  background:var(--teal-300);
  opacity:.5;
  border-radius:var(--radius-pill);
}
.sd-hero-cases-pagination .swiper-pagination-bullet-active{
  opacity:1;
  background:var(--teal-500);
}

@media (max-width: 991.98px){
  .sd-hero-cases{
    max-width:70%;
    margin:2rem auto 0;
  }
}

@media (max-width: 764.98px){
  .sd-hero-cases{
    max-width:90%;
    margin:2rem auto 0;
  }
}

.sd-highlight{
  position:relative;
  display:inline-block;
  color:#74e8f7;
  white-space:nowrap;
}

.sd-underline{
  position:absolute;
  left:0;bottom:-10px;
  width:100%;
  height:14px;
  overflow:visible;
}

.sd-underline path{
  fill:none;
  stroke:var(--teal-400);
  stroke-width:5;
  stroke-linecap:round;
  stroke-dasharray:300;
  stroke-dashoffset:300;
  animation:sdDraw 1.1s var(--ease-soft) .6s forwards;
}

.sd-check-list{
  display:flex;
  flex-wrap:wrap;
  gap:1.6rem;
  margin-top:2.2rem;
  list-style:none;
}

.sd-check-list li{
  display:flex;
  align-items:center;
  gap:.5rem;
  font-size:.92rem;
  font-weight:500;
  color:var(--text-dark);
}

.sd-check-list i{color:var(--teal-500);}

/* =========================================================
   MARQUEE DE CONFIANZA (frases debajo del hero)
   ========================================================= */
.sd-marquee-strip{
  background:linear-gradient(95deg, var(--teal-500), var(--teal-600));
  padding:.95rem 0;
  overflow:hidden;
  position:relative;
}

.sd-marquee-track{
  display:flex;
  align-items:center;
  width:max-content;
  gap:3rem;
  animation:sdMarqueeScroll 24s linear infinite;
}

.sd-marquee-strip:hover .sd-marquee-track{animation-play-state:paused;}

.sd-marquee-item{
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  font-family:var(--font-display);
  font-weight:700;
  font-size:.9rem;
  letter-spacing:.01em;
  color:var(--white);
  white-space:nowrap;
}

.sd-marquee-item i{color:var(--teal-100);font-size:.8rem;}

@keyframes sdMarqueeScroll{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}

@media (prefers-reduced-motion: reduce){
  .sd-marquee-track{animation:none;}
}

/* =========================================================
   ¿POR QUÉ ELEGIR SMART DENT? — lista editorial (no cards)
   ========================================================= */
.sd-why-wrap{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:3.2rem;
  align-items:start;
}

/**.sd-why-head{position:sticky;top:7rem;}**/

.sd-why-head .sd-h2 em{
  font-style:italic;
  color:var(--teal-500);
}

.sd-why-list{display:flex;flex-direction:column;}

.sd-why-row{
  display:grid;
  grid-template-columns:64px 1fr;
  gap:1.3rem;
  padding:1.7rem 0;
  border-top:1px solid rgba(22,51,75,.12);
  transition:padding-left .35s var(--ease-soft);
}

.sd-why-row:last-child{border-bottom:1px solid rgba(22,51,75,.12);}

.sd-why-row:hover{padding-left:.6rem;}

.sd-why-index{
  font-family:var(--font-display);
  font-weight:800;
  font-size:1.6rem;
  color:var(--teal-300);
  line-height:1;
}

.sd-why-row:nth-child(2) .sd-why-index{color:var(--purple-300);}
.sd-why-row:nth-child(3) .sd-why-index{color:var(--teal-500);}

.sd-why-title{
  font-family:var(--font-display);
  font-weight:800;
  font-size:1.08rem;
  color:var(--text-dark);
  line-height:1.35;
  margin-bottom:.5rem;
}

.sd-why-text{
  font-size:.9rem;
  color:var(--text-body);
  line-height:1.6;
  margin:0;
  max-width:440px;
}

@media (max-width:991.98px){
  .sd-why-wrap{grid-template-columns:1fr;gap:1.6rem;}
  .sd-why-head{position:static;}
}

/* =========================================================
   SOLUCIONES — bento asimétrico full-bleed (servicios)
   ========================================================= */
.sd-solutions-grid{
  display:grid;
  grid-template-columns:1.25fr 1fr;
  grid-template-rows:1fr 1fr;
  gap:1.3rem;
}

.sd-solution-card{
  position:relative;
  display:block;
  border-radius:var(--radius-lg);
  overflow:hidden;
  min-height:280px;
  box-shadow:var(--shadow-card);
  isolation:isolate;
  transition:transform .45s var(--ease-soft), box-shadow .45s var(--ease-soft);
}

.sd-solution-card-lg{grid-row:1 / 3;min-height:100%;}

.sd-solution-card:hover{
  transform:translateY(-6px);
  box-shadow:0 28px 48px -16px rgba(22,51,75,.3);
}

.sd-solution-card img{
  position:absolute;
  inset:0;
  width:100%;height:100%;
  object-fit:cover;
  transition:transform .7s var(--ease-soft);
}

.sd-solution-card:hover img{transform:scale(1.07);}

.sd-solution-card::after{
  content:'';
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(190deg, rgba(22,51,75,0) 28%, rgba(13,30,44,.94) 100%);
}

.sd-solution-num{
  position:absolute;
  top:1.2rem;left:1.2rem;
  z-index:2;
  width:38px;height:38px;
  border-radius:50%;
  background:rgba(255,255,255,.14);
  backdrop-filter:blur(6px);
  border:1px solid rgba(255,255,255,.35);
  color:var(--white);
  display:flex;
  align-items:center;justify-content:center;
  font-family:var(--font-display);
  font-weight:800;
  font-size:.9rem;
}

.sd-solution-body{
  position:absolute;
  left:0;right:0;bottom:0;
  z-index:2;
  padding:1.7rem 1.6rem;
}

.sd-solution-title{
  font-family:var(--font-display);
  font-weight:800;
  font-size:1.25rem;
  color:var(--white);
  line-height:1.24;
  margin-bottom:.55rem;
}

.sd-solution-card-lg .sd-solution-title{font-size:1.55rem;max-width:400px;}

.sd-solution-text{
  font-size:.86rem;
  color:rgba(255,255,255,.82);
  line-height:1.55;
  margin-bottom:1.15rem;
  max-width:360px;
}

.sd-solution-cta{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  font-family:var(--font-display);
  font-weight:700;
  font-size:.85rem;
  color:var(--white);
}

.sd-solution-cta i{
  width:32px;height:32px;
  border-radius:50%;
  background:var(--white);
  color:var(--teal-600);
  display:inline-flex;
  align-items:center;justify-content:center;
  font-size:.75rem;
  transition:transform .3s var(--ease-soft), background .3s var(--ease-soft), color .3s var(--ease-soft);
}

.sd-solution-card:hover .sd-solution-cta i{
  background:var(--teal-500);
  color:var(--white);
  transform:rotate(-40deg);
}

@media (max-width:991.98px){
  .sd-solutions-grid{grid-template-columns:1fr;grid-template-rows:none;}
  .sd-solution-card-lg{grid-row:auto;min-height:300px;}
  .sd-solution-card{min-height:260px;}
}

/* =========================================================
   NOSOTROS / EXCELENCIA — editorial apilado + stats flotantes
   ========================================================= */
.sd-excellence-head{
  max-width:660px;
  margin-bottom:2.6rem;
}

.sd-excellence-media{
  position:relative;
  margin-bottom:2.6rem;
}

.sd-excellence-img{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;

 
  display:block;
}

.sd-excellence-stats{
  position:absolute;
  right:1.6rem;
  bottom:-1.9rem;
  z-index:3;
  display:flex;
  gap:.9rem;
}

.sd-stat-float{
  background:var(--white);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-card);
  padding:1rem 1.15rem;
  min-width:104px;
  display:flex;
  flex-direction:column;
}

.sd-stat-pill{
  display:inline-block;
  width:fit-content;
  font-size:.6rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--teal-700);
  background:var(--teal-100);
  padding:.22rem .5rem;
  border-radius:var(--radius-pill);
  margin-bottom:.5rem;
}

.sd-stat-float:nth-child(2) .sd-stat-pill{color:var(--purple-600);background:var(--purple-100);}

.sd-stat-num{
  font-family:var(--font-display);
  font-size:1.5rem;
  font-weight:800;
  color:var(--teal-500);
  line-height:1;
}

.sd-stat-label{
  font-size:.72rem;
  color:var(--text-body);
  margin-top:.3rem;
}

@media (max-width:767.98px){
  .sd-excellence-stats{
    position:static;
    margin-top:1.2rem;
    flex-wrap:wrap;
  }
  .sd-excellence-media{margin-bottom:1.2rem;}
  .sd-excellence-img{aspect-ratio:4/3;}
}

/* =========================================================
   CASOS CON EL DOCTOR — mosaico escalonado
   ========================================================= */
.sd-doctor-cases-swiper{padding:1.4rem 0 3.2rem;overflow:visible;}

.sd-doctor-cases-swiper .swiper-slide{width:240px;}

.sd-doctor-case-slide{
  margin:0;
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow-card);
}

.sd-doctor-case-slide img{
  width:100%;height:100%;
  object-fit:cover;
  transition:transform .6s var(--ease-soft);
}

.sd-doctor-case-slide:hover img{transform:scale(1.06);}

.sd-case-portrait{aspect-ratio:1/1;}

.sd-case-landscape{
  aspect-ratio:1/1;
  margin-top:2.6rem;
}



@media (max-width:575.98px){
  .sd-doctor-cases-swiper .swiper-slide{width:190px;}
  .sd-case-landscape{margin-top:1.6rem;}
}

/* =========================================================
   PROCESO — timeline vertical en zigzag
   ========================================================= */
.sd-process-timeline{
  position:relative;
  max-width:700px;
  margin:2.8rem auto 0;
}

.sd-process-timeline::before{
  content:'';
  position:absolute;
  left:50%;
  top:4px;
  bottom:4px;
  width:2px;
  transform:translateX(-50%);
  background:repeating-linear-gradient(180deg, var(--teal-300) 0 8px, transparent 8px 16px);
  z-index:0;
}

.sd-process-row{
  position:relative;
  display:grid;
  grid-template-columns:1fr 56px 1fr;
  align-items:center;
  margin-bottom:1.8rem;
}

.sd-process-row:last-child{margin-bottom:0;}

.sd-process-content{
  background:var(--white);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-card);
  padding:1.05rem 1.3rem;
}

.sd-process-row:nth-child(odd) .sd-process-content{grid-column:1;text-align:right;}
.sd-process-row:nth-child(even) .sd-process-content{grid-column:3;text-align:left;}

.sd-process-num{
  grid-column:2;
  justify-self:center;
  position:relative;
  z-index:2;
  width:52px;height:52px;
  border-radius:50%;
  display:inline-flex;
  align-items:center;justify-content:center;
  font-family:var(--font-display);
  font-weight:800;
  font-size:1.1rem;
  color:var(--white);
  background:linear-gradient(135deg, var(--teal-400), var(--teal-600));
  box-shadow:var(--shadow-btn);
}

.sd-process-text{
  font-size:.9rem;
  color:var(--text-body);
  line-height:1.55;
  margin:0;
  font-weight:600;
}

.sd-process-content{color:var(--text-dark);}

@media (max-width:767.98px){
  .sd-process-timeline::before{left:26px;}
  .sd-process-row{grid-template-columns:56px 1fr;}
  .sd-process-row:nth-child(odd) .sd-process-content,
  .sd-process-row:nth-child(even) .sd-process-content{
    grid-column:2;
    text-align:left;
  }
  .sd-process-num{grid-column:1;}
  .sd-process-spacer{display:none;}
}

/* =========================================================
   TESTIMONIOS — número editorial oversized
   ========================================================= */
.sd-testi-wrap{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  justify-content:space-between;
  gap:2rem;
  padding-bottom:2.6rem;
  border-bottom:1px solid rgba(22,51,75,.1);
}

.sd-testi-stat{
  display:flex;
  align-items:center;
  gap:1rem;
}

.sd-testi-number{
  font-family:var(--font-display);
  font-weight:800;
  font-size:clamp(2.6rem, 5vw, 3.6rem);
  color:var(--teal-500);
  line-height:1;
}

.sd-testi-number span{color:var(--purple-500);}

.sd-testi-caption{
  font-size:.9rem;
  font-weight:600;
  color:var(--text-dark);
  line-height:1.35;
}

@media (max-width:767.98px){
  .sd-testi-wrap{flex-direction:column;align-items:flex-start;}
}

/* =========================================================
   CONTACTO — panel dividido
   ========================================================= */
.sd-contact-split{
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:3.2rem;
  align-items:center;
}

.sd-contact-cta .sd-btn{margin-top:1.6rem;}

.sd-contact-info{
  display:flex;
  flex-direction:column;
  border-left:1px solid rgba(255,255,255,.14);
  padding-left:2.4rem;
}

.sd-contact-row{
  display:flex;
  align-items:flex-start;
  gap:.9rem;
  padding:1.2rem 0;
  border-bottom:1px solid rgba(255,255,255,.1);
}

.sd-contact-row:last-child{border-bottom:none;}

@media (max-width:767.98px){
  .sd-contact-split{grid-template-columns:1fr;gap:2rem;}
  .sd-contact-info{border-left:none;padding-left:0;border-top:1px solid rgba(255,255,255,.14);padding-top:1.6rem;}
}


/* =========================================================
   SECCIONES GENERALES
   ========================================================= */
.sd-section{
  padding:6rem 0;
}

.sd-section-cream{background:var(--cream);}

.sd-section-head{
  max-width:680px;
  margin:0 auto 3.2rem;
}

.sd-section-head .sd-eyebrow{margin-left:auto;margin-right:auto;}

/* =========================================================
   SWIPER — controles genéricos reutilizables
   ========================================================= */
.sd-swiper-nav{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:1.2rem;
  margin-top:1.2rem;
}

.sd-swiper-arrow{
  width:42px;height:42px;
  border-radius:50%;
  border:1.5px solid var(--teal-200);
  background:var(--white);
  color:var(--teal-600);
  display:inline-flex;
  align-items:center;justify-content:center;
  cursor:pointer;
  transition:background .3s, color .3s, transform .3s;
}

.sd-swiper-arrow:hover{
  background:var(--teal-500);
  color:var(--white);
  transform:scale(1.07);
}

.sd-swiper-pagination{
  position:relative;
  display:flex;
  gap:.4rem;
  width:auto;
}

/* =========================================================
   TESTIMONIOS — tarjetas del carrusel (configuración original)
   El número editorial oversized vive arriba, junto a MARQUEE / WHY / SOLUCIONES.
   ========================================================= */
.sd-testimonials-swiper{padding-bottom:3.6rem;overflow:visible;}

.sd-testimonials-swiper .swiper-slide{height:auto;}

.sd-testimonial-card{
  position:relative;
  background:var(--white);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-card);
  height:100%;
  padding:2.4rem 1.7rem 1.8rem;
  display:flex;
  flex-direction:column;
  transition:transform .45s var(--ease-soft), box-shadow .45s var(--ease-soft);
}

.sd-testimonial-card:hover{
  transform:translateY(-8px);
  box-shadow:0 26px 46px -16px rgba(22,51,75,.26);
}

.sd-testimonial-quote-badge{
  position:absolute;
  top:-18px;left:1.7rem;
  width:42px;height:42px;
  border-radius:50%;
  display:inline-flex;
  align-items:center;justify-content:center;
  color:var(--white);
  font-size:.9rem;
  box-shadow:0 10px 18px -6px rgba(22,51,75,.3);
}

.sd-testimonial-quote-teal{background:linear-gradient(135deg, var(--teal-400), var(--teal-600));}
.sd-testimonial-quote-purple{background:linear-gradient(135deg, var(--purple-300), var(--purple-600));}

.sd-testimonial-stars{
  display:flex;
  gap:.25rem;
  color:#FFB93E;
  font-size:.85rem;
  margin-bottom:.9rem;
}

.sd-testimonial-title{
  font-family:var(--font-display);
  font-size:1.12rem;
  font-weight:800;
  color:var(--text-dark);
  margin-bottom:.6rem;
  line-height:1.3;
}

.sd-testimonial-text{
  font-size:.9rem;
  color:var(--text-body);
  line-height:1.6;
  font-style:italic;
  flex:1;
  margin-bottom:1.6rem;
}

.sd-testimonial-footer{
  display:flex;
  align-items:center;
  gap:.8rem;
  padding-top:1.2rem;
  border-top:1px solid rgba(22,51,75,.08);
}

.sd-testimonial-avatar{
  width:44px;height:44px;
  flex-shrink:0;
  border-radius:50%;
  display:inline-flex;
  align-items:center;justify-content:center;
  color:var(--white);
  font-family:var(--font-display);
  font-weight:700;
  font-size:.85rem;
}

.sd-testimonial-avatar-teal{background:linear-gradient(135deg, var(--teal-400), var(--teal-600));}
.sd-testimonial-avatar-purple{background:linear-gradient(135deg, var(--purple-300), var(--purple-600));}

.sd-testimonial-name{
  display:block;
  font-size:.92rem;
  font-weight:700;
  color:var(--text-dark);
}

.sd-testimonial-role{
  display:block;
  font-size:.76rem;
  color:var(--text-muted);
}

.sd-testimonials-swiper .swiper-pagination-bullet{
  width:9px;height:9px;
  background:var(--purple-100);
  opacity:1;
  transition:width .3s, background .3s;
}

.sd-testimonials-swiper .swiper-pagination-bullet-active{
  width:22px;
  border-radius:5px;
  background:var(--purple-600);
}

/* =========================================================
   NOSOTROS / EXCELENCIA
   ========================================================= */
/* .sd-excellence-* / .sd-stat-float ahora viven arriba, junto a MARQUEE / WHY / SOLUCIONES */

.sd-floating-card{
  position:absolute;
  left:-1.2rem;
  bottom:-1.6rem;
  z-index:3;
  background:#f7f7f7;
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-card);
  padding:.85rem 1.2rem;
  display:flex;
  align-items:center;
  gap:.8rem;
  animation:sdFloatCard 5s ease-in-out infinite;
}

.sd-floating-card span:not(.sd-floating-icon){
  display:flex;
  flex-direction:column;
  line-height:1.25;
}

.sd-floating-card strong{font-size:.88rem;color:var(--text-dark);}
.sd-floating-card small{font-size:.76rem;color:var(--text-muted);}

.sd-floating-icon{
  width:36px;height:36px;
  border-radius:50%;
  background:var(--teal-100);
  color:var(--teal-600);
  display:inline-flex;
  align-items:center;justify-content:center;
}

/* =========================================================
   CONTACTO
   ========================================================= */
.sd-contact{
  background:linear-gradient(180deg, var(--navy-900) 0%, #122B40 100%);
  padding:6rem 0 4rem;
  color:var(--white);
}

.sd-contact-heading{
  font-size:1.3rem;
  font-weight:600;
  color:var(--white);
  margin-bottom:1.6rem;
}

.sd-contact-item{
  display:flex;
  align-items:flex-start;
  gap:.9rem;
  margin-bottom:1.5rem;
}

.sd-contact-icon{
  width:42px;height:42px;
  flex-shrink:0;
  border-radius:50%;
  background:rgba(255,255,255,.08);
  color:var(--teal-300);
  display:inline-flex;
  align-items:center;justify-content:center;
  transition:background .3s, transform .3s;
}

.sd-contact-item:hover .sd-contact-icon{
  background:var(--teal-500);
  color:var(--white);
  transform:scale(1.06);
}

.sd-contact-label{
  display:block;
  font-size:.8rem;
  color:#8FA4B8;
  margin-bottom:.15rem;
}

.sd-contact-value{
  display:block;
  font-size:.96rem;
  color:var(--white);
  font-weight:500;
  line-height:1.4;
}

.sd-map-card{
  margin-top:1.4rem;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  border-radius:var(--radius-lg);
  padding:2.6rem 1.5rem;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:.15rem;
}

.sd-map-pin{
  width:46px;height:46px;
  border-radius:50%;
  background:var(--teal-500);
  color:var(--white);
  display:inline-flex;
  align-items:center;justify-content:center;
  font-size:1.05rem;
  margin-bottom:.8rem;
  box-shadow:0 0 0 0 rgba(6,182,206,.55);
  animation:sdPulse 2.4s ease-out infinite;
}

.sd-map-card strong{font-size:.95rem;color:var(--white);}
.sd-map-card small{font-size:.8rem;color:#8FA4B8;}

.sd-form{
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.08);
  border-radius:var(--radius-lg);
  padding:2.1rem;
}

.sd-form-label{
  display:block;
  font-size:.85rem;
  font-weight:600;
  color:var(--white);
  margin-bottom:.5rem;
}

.sd-form-control{
  width:100%;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
  border-radius:var(--radius-md);
  padding:.8rem 1rem;
  color:var(--white);
  font-size:.92rem;
  transition:border-color .25s, background .25s, box-shadow .25s;
}

.sd-form-control::placeholder{color:#7E93A6;}

.sd-form-control:focus{
  outline:none;
  border-color:var(--teal-400);
  background:rgba(255,255,255,.09);
  box-shadow:0 0 0 3px rgba(6,182,206,.18);
}

.sd-form-select{
  appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'><path d='M1 1l6 6 6-6' stroke='%237E93A6' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat:no-repeat;
  background-position:right 1rem center;
}

.sd-form-select option{color:#16334B;}

.sd-form .sd-btn{margin-top:.4rem;}

.sd-form-note{
  text-align:center;
  font-size:.78rem;
  color:#7E93A6;
  margin:.9rem 0 0;
}

/* =========================================================
   FOOTER
   ========================================================= */
.sd-footer{
  background:#0F2436;
  padding:1.8rem 0;
}

.sd-footer-inner{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}

.sd-brand-footer .sd-brand-name,
.sd-brand-footer{color:var(--white);}

.sd-footer-copy{
  margin:0;
  font-size:.84rem;
  color:#6D8398;
}

/* =========================================================
   TOAST
   ========================================================= */
.sd-toast{
  position:fixed;
  bottom:1.6rem;
  left:50%;
  transform:translate(-50%, 30px);
  background:var(--navy-900);
  color:var(--white);
  padding:.85rem 1.4rem;
  border-radius:var(--radius-pill);
  display:flex;
  align-items:center;
  gap:.6rem;
  font-size:.9rem;
  font-weight:500;
  box-shadow:0 16px 30px -10px rgba(0,0,0,.35);
  opacity:0;
  pointer-events:none;
  transition:opacity .4s var(--ease-soft), transform .4s var(--ease-soft);
  z-index:2000;
}

.sd-toast i{color:var(--teal-400);}

.sd-toast.is-visible{
  opacity:1;
  transform:translate(-50%, 0);
}

/* =========================================================
   ANIMACIONES — scroll reveal
   ========================================================= */
.reveal-up{
  opacity:0;
  transform:translateY(26px);
  transition:opacity .7s var(--ease-soft), transform .7s var(--ease-soft);
}

.reveal-fade{
  opacity:0;
  transition:opacity 1s var(--ease-soft);
}

.reveal-up.is-visible{opacity:1;transform:translateY(0);}
.reveal-fade.is-visible{opacity:.92;}

@keyframes sdFloat{
  0%,100%{transform:translateY(-50%);}
  50%{transform:translateY(-54%);}
}

@keyframes sdFloatCard{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-7px);}
}

@keyframes sdDraw{
  to{stroke-dashoffset:0;}
}

@keyframes sdPulse{
  0%{box-shadow:0 0 0 0 rgba(6,182,206,.55);}
  70%{box-shadow:0 0 0 14px rgba(6,182,206,0);}
  100%{box-shadow:0 0 0 0 rgba(6,182,206,0);}
}

@keyframes sdSpin{to{transform:rotate(360deg);}}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:991.98px){
  .sd-hero{padding:15rem .5rem 8rem.5rem;text-align:left;}
 
  .sd-nav-links{
    background:var(--white);
    margin-top:1rem;
    padding:1rem;
    border-radius:var(--radius-lg);
    box-shadow:var(--shadow-card);
    gap:.3rem !important;
  }
  .sd-nav-links li{width:100%;}
  .sd-nav-links .nav-link{display:block;}
  .sd-nav-links .ms-lg-2{margin-top:.4rem;}
  .sd-nav-links .sd-btn{width:100%;}
}

@media (max-width:767.98px){
  .sd-section{padding:4.2rem 0;}
  .sd-check-list{gap:1rem 1.4rem;}
  .sd-floating-card{left:.4rem;bottom:-1.2rem;padding:.7rem 1rem;}
  .sd-form{padding:1.5rem;}
}

/* Respeto a usuarios con preferencia de movimiento reducido */
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important;}
  html{scroll-behavior:auto;}
}
