/* ============================================================
   NatDentist Premium Patient Experiences v2.0.0
   Reference-matched full-viewport composition
   ============================================================ */

.nd-testimonials-premium{
  --ndt-navy:#0a2f5f;
  --ndt-blue:#1687f8;
  --ndt-cyan:#13b9c4;
  --ndt-muted:#687f99;
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:68px 0 58px;
  min-height:940px;
  background:
    radial-gradient(circle at 50% 39%,rgba(81,167,255,.11),transparent 34%),
    linear-gradient(180deg,#fbfdff 0%,#f7fbff 63%,#fff 100%);
}

.nd-testimonials-premium::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-4;
  pointer-events:none;
  background:
    linear-gradient(134deg,rgba(225,242,255,.30) 0 15%,transparent 15.2% 48%,rgba(240,249,255,.24) 48.2% 100%),
    radial-gradient(circle at 81% 84%,rgba(16,181,202,.055),transparent 25%);
}

.ndt-container{
  position:relative;
  z-index:3;
  max-width:1180px!important;
}

.ndt-orb{
  position:absolute;
  z-index:-3;
  width:360px;
  height:360px;
  border:1px solid rgba(48,163,224,.13);
  border-radius:50%;
  background:linear-gradient(135deg,rgba(228,247,255,.60),rgba(255,255,255,.04));
  pointer-events:none;
}
.ndt-orb-left{left:-205px;top:-115px}
.ndt-orb-right{right:-220px;top:-155px}

.ndt-tooth-line{
  position:absolute;
  z-index:-2;
  left:-27px;
  bottom:44px;
  width:122px;
  height:156px;
  opacity:.07;
  border:4px solid #169be6;
  border-radius:48% 52% 54% 46% / 22% 22% 78% 78%;
  transform:rotate(13deg);
  pointer-events:none;
}

.ndt-hand{
  position:absolute;
  z-index:1;
  color:rgba(58,143,210,.56);
  font-family:"Segoe Script","Bradley Hand","Brush Script MT",cursive;
  font-size:26px;
  font-weight:400;
  line-height:1.15;
  white-space:pre-line;
  pointer-events:none;
  transform:rotate(-6deg);
  text-shadow:0 1px 0 rgba(255,255,255,.55);
}
.ndt-hand::after{
  content:"";
  display:block;
  width:58px;
  height:3px;
  margin-top:8px;
  border-radius:99px;
  background:linear-gradient(90deg,#1a84ef,#10b9c4);
}
.ndt-hand-left{
  top:82px;
  left:4.5vw;
}
.ndt-hand-right{
  top:70px;
  right:5.5vw;
  text-align:center;
  transform:rotate(5deg);
}
.ndt-hand-right::after{margin-left:auto;margin-right:auto;width:0}

.ndt-plant{
  position:absolute;
  right:-20px;
  bottom:-35px;
  width:205px;
  height:250px;
  z-index:0;
  opacity:.42;
  filter:blur(4px);
  pointer-events:none;
  transform:rotate(-17deg);
}
.ndt-plant::before{
  content:"";
  position:absolute;
  left:94px;
  top:6px;
  width:8px;
  height:238px;
  border-radius:50%;
  background:linear-gradient(#6b9d67,#397846);
  transform:rotate(12deg);
}
.ndt-plant i{
  position:absolute;
  display:block;
  width:70px;
  height:30px;
  border-radius:100% 5% 100% 5%;
  background:linear-gradient(135deg,rgba(78,128,75,.82),rgba(43,102,57,.58));
}
.ndt-plant i:nth-child(1){left:40px;top:55px;transform:rotate(22deg)}
.ndt-plant i:nth-child(2){left:102px;top:86px;transform:rotate(150deg)}
.ndt-plant i:nth-child(3){left:29px;top:133px;transform:rotate(30deg)}
.ndt-plant i:nth-child(4){left:105px;top:170px;transform:rotate(155deg)}

.ndt-heading{
  max-width:790px;
  margin:0 auto 27px;
  padding:0 12px;
  text-align:center;
}
.ndt-heading::before{
  content:"";
  display:block;
  width:58px;
  height:3px;
  margin:0 auto 18px;
  border-radius:99px;
  background:linear-gradient(90deg,#1683ef,#12b9c5);
}
.ndt-heading .ndt-eyebrow{
  display:block;
  margin:0 0 14px;
  color:#3d6288;
  font-size:10px;
  font-weight:700;
  line-height:1.3;
  letter-spacing:.34em;
  text-transform:uppercase;
}
.ndt-heading h2{
  margin:0;
  font-size:clamp(48px,3.85vw,64px);
  line-height:1.03;
  font-weight:700;
  letter-spacing:-.046em;
  background:linear-gradient(95deg,#082d5e 16%,#187fd9 61%,#13b5bd 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  -webkit-text-fill-color:transparent;
}
.ndt-heading p{
  margin:13px 0 0;
  color:#607895;
  font-size:16px;
  line-height:1.55;
}

/* Full viewport on purpose: reference arrows/side cards live outside Bootstrap container. */
.ndt-carousel{
  position:relative;
  left:50%;
  width:100vw;
  min-height:660px;
  margin-left:-50vw;
  touch-action:pan-y pinch-zoom;
  -webkit-tap-highlight-color:transparent;
}

.ndt-stage{
  position:relative;
  width:100%;
  height:530px;
  overflow:visible;
  perspective:1500px;
  touch-action:pan-y pinch-zoom;
}

.ndt-card{
  position:absolute;
  top:9px;
  left:50%;
  width:clamp(640px,38.5vw,760px);
  min-height:clamp(510px,30.85vw,610px);
  box-sizing:border-box;
  padding:clamp(145px,8.7vw,168px) clamp(48px,3.2vw,66px) 38px;
  border:1px solid rgba(75,149,218,.16);
  border-radius:30px;
  background:rgba(255,255,255,.955);
  box-shadow:
    0 30px 94px rgba(35,113,177,.12),
    0 9px 30px rgba(31,86,130,.045),
    inset 0 1px 0 rgba(255,255,255,.97);
  text-align:center;
  opacity:0;
  pointer-events:none;
  transform:translate3d(-50%,0,0) scale(.86);
  transition:
    transform .56s cubic-bezier(.22,.7,.2,1),
    opacity .40s ease,
    filter .40s ease,
    box-shadow .40s ease;
  will-change:transform,opacity;
}

.ndt-card.is-active{
  z-index:5;
  opacity:1;
  pointer-events:auto;
  filter:none;
  transform:translate3d(-50%,0,0) scale(1);
}

.ndt-card.is-prev,
.ndt-card.is-next{
  z-index:2;
  opacity:.26;
  filter:blur(2.6px) saturate(.72);
  pointer-events:none;
}
.ndt-card.is-prev{transform:translate3d(-128%,34px,0) scale(.84) rotateY(3deg)}
.ndt-card.is-next{transform:translate3d(28%,34px,0) scale(.84) rotateY(-3deg)}
.ndt-card.is-hidden{
  z-index:1;
  opacity:0;
  transform:translate3d(-50%,35px,0) scale(.80);
}
.ndt-card.ndt-visual-clone{
  pointer-events:none!important;
}
.ndt-card::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  background:linear-gradient(135deg,rgba(255,255,255,.50),transparent 36%,rgba(29,153,246,.012));
}

.ndt-avatar-wrap{
  position:absolute;
  top:14px;
  left:50%;
  width:clamp(118px,7.05vw,140px);
  height:clamp(118px,7.05vw,140px);
  transform:translateX(-50%);
}
.ndt-avatar{
  width:100%;
  height:100%;
  border:5px solid #fff;
  border-radius:50%;
  background-size:cover;
  background-position:center;
  box-shadow:
    0 10px 31px rgba(17,81,136,.17),
    0 0 0 1px rgba(40,132,207,.14);
}
.ndt-avatar-quote{
  position:absolute;
  right:-2px;
  bottom:2px;
  display:grid;
  place-items:center;
  width:clamp(42px,2.7vw,50px);
  height:clamp(42px,2.7vw,50px);
  padding-top:3px;
  border:4px solid #fff;
  border-radius:50%;
  color:#fff;
  background:linear-gradient(135deg,#1685ff,#10bbc5);
  font-family:Georgia,serif;
  font-size:29px;
  font-weight:700;
  line-height:1;
  box-shadow:0 8px 20px rgba(17,131,211,.22);
}

.ndt-quote-mark{
  position:absolute;
  z-index:0;
  color:#e7f3fd;
  font-family:Georgia,serif;
  font-size:clamp(92px,6vw,116px);
  font-weight:700;
  line-height:1;
  pointer-events:none;
  user-select:none;
}
.ndt-quote-mark-left{left:42px;top:35px}
.ndt-quote-mark-right{right:40px;bottom:-8px}

.ndt-stars{
  position:relative;
  z-index:1;
  display:flex;
  justify-content:center;
  gap:5px;
  margin:10px 0 20px;
  color:#ffae13;
  font-size:clamp(22px,1.38vw,27px);
  line-height:1;
  letter-spacing:.02em;
}
.ndt-stars .is-empty{color:#e4eaf0}

.ndt-comment{
  position:relative;
  z-index:1;
  max-width:560px;
  margin:0 auto 21px;
  padding:0!important;
  border:0!important;
  color:#14365c;
  font-size:clamp(18px,1.15vw,22px);
  font-weight:400;
  line-height:1.58;
  letter-spacing:-.014em;
}
.ndt-comment::before,.ndt-comment::after{display:none!important}

.ndt-person{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:8px 12px;
  margin:0 auto 13px;
}
.ndt-person strong{
  width:100%;
  color:#082d5d;
  font-size:clamp(19px,1.22vw,23px);
  font-weight:700;
  line-height:1.2;
}
.ndt-country{
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:#667d97;
  font-size:clamp(14px,.85vw,16px);
}
.ndt-flag{font-size:19px;line-height:1}

.ndt-treatment{
  position:relative;
  z-index:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:40px;
  padding:8px 17px;
  border:1px solid rgba(29,133,242,.08);
  border-radius:999px;
  color:#1178dc;
  background:linear-gradient(180deg,#eef8ff,#e6f3ff);
  font-size:clamp(14px,.88vw,16px);
  font-weight:600;
}
.ndt-treatment svg{width:21px;height:21px;color:#1388e6}

.ndt-video-btn{
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-width:230px;
  min-height:54px;
  margin:15px auto 0;
  padding:11px 25px;
  border:0;
  border-radius:999px;
  color:#fff;
  background:linear-gradient(105deg,#0968f4,#1aa9ee);
  font:inherit;
  font-size:16px;
  font-weight:700;
  cursor:pointer;
  box-shadow:0 13px 30px rgba(16,116,229,.25);
  transition:transform .2s ease,box-shadow .2s ease,filter .2s ease;
}
.ndt-video-btn:hover{transform:translateY(-2px);box-shadow:0 17px 35px rgba(16,116,229,.30)}
.ndt-play{
  display:grid;
  place-items:center;
  width:31px;
  height:31px;
  border-radius:50%;
  color:#1183ee;
  background:#fff;
}
.ndt-play svg{width:18px;height:18px}

.ndt-arrow{
  position:absolute;
  z-index:8;
  top:235px;
  display:grid;
  place-items:center;
  width:58px;
  height:58px;
  padding:0;
  border:1px solid rgba(53,122,188,.11);
  border-radius:50%;
  color:#0c4988;
  background:rgba(255,255,255,.96);
  box-shadow:0 14px 38px rgba(29,87,137,.10);
  cursor:pointer;
  transition:transform .2s ease,box-shadow .2s ease,color .2s ease;
}
.ndt-arrow svg{width:25px;height:25px}
.ndt-arrow:hover{color:#1389f4;transform:scale(1.055);box-shadow:0 16px 42px rgba(29,87,137,.15)}
.ndt-arrow-prev{left:4.45vw}
.ndt-arrow-next{right:4.45vw}

.ndt-dots{
  position:absolute;
  z-index:9;
  top:545px;
  left:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  transform:translateX(-50%);
}
.ndt-dot{
  width:10px;
  height:10px;
  padding:0;
  border:0;
  border-radius:50%;
  background:#bdddfa;
  cursor:pointer;
  transition:width .25s ease,background .25s ease;
}
.ndt-dot.is-active{
  width:25px;
  border-radius:99px;
  background:linear-gradient(90deg,#1681f5,#12b9c5);
}

.ndt-proof{
  position:absolute;
  z-index:5;
  left:4.4vw;
  top:595px;
  display:flex;
  align-items:center;
  gap:22px;
  color:#395a7d;
}
.ndt-proof-item{display:flex;align-items:center;gap:12px}
.ndt-proof-icon{
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border:1px solid rgba(35,136,220,.10);
  border-radius:50%;
  color:#1688ec;
  background:rgba(239,248,255,.90);
}
.ndt-proof-icon svg{width:24px;height:24px}
.ndt-proof-item p{margin:0;line-height:1.05}
.ndt-proof-item strong{
  display:block;
  color:#0b315f;
  font-size:17px;
  font-weight:800;
}
.ndt-proof-item p span{
  display:block;
  margin-top:5px;
  color:#71839a;
  font-size:12px;
}
.ndt-proof-sep{width:1px;height:34px;background:#cbddea}

.ndt-tagline{
  position:absolute;
  z-index:4;
  right:5.3vw;
  top:612px;
  display:flex;
  align-items:center;
  gap:12px;
  max-width:310px;
  color:#7799b7;
  text-align:right;
  font-size:10px;
  font-weight:700;
  line-height:1.55;
  letter-spacing:.22em;
}
.ndt-tagline span{width:29px;height:1px;background:#98bfdd;flex:0 0 auto}
.ndt-tagline b{font-weight:700}

.ndt-empty{
  max-width:720px;
  margin:44px auto 20px;
  padding:35px;
  border:1px solid rgba(43,126,205,.14);
  border-radius:24px;
  color:var(--ndt-muted);
  background:#fff;
  text-align:center;
}

/* Video modal */
.ndt-video-modal{
  position:fixed;
  inset:0;
  z-index:99999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  opacity:0;
  visibility:hidden;
  background:rgba(5,23,43,.78);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
  transition:opacity .25s ease,visibility .25s ease;
}
.ndt-video-modal.is-open{opacity:1;visibility:visible}
.ndt-video-dialog{
  position:relative;
  width:min(980px,100%);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.12);
  border-radius:24px;
  background:#03172b;
  box-shadow:0 35px 100px rgba(0,0,0,.42);
}
.ndt-video-frame{position:relative;width:100%;aspect-ratio:16/9;background:#000}
.ndt-video-frame iframe,.ndt-video-frame video{display:block;width:100%;height:100%;border:0;object-fit:contain;background:#000}
.ndt-video-close{
  position:absolute;
  z-index:3;
  top:12px;
  right:12px;
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  padding:0;
  border:1px solid rgba(255,255,255,.16);
  border-radius:50%;
  color:#fff;
  background:rgba(4,24,44,.78);
  font-size:26px;
  cursor:pointer;
}
body.ndt-modal-open{overflow:hidden!important}

/* Safari: no touch listener; native vertical scroll stays untouched. */
html.nd-ios-safari .ndt-carousel,
html.nd-ios-safari .ndt-stage,
html.nd-ios-safari .ndt-card{
  touch-action:pan-y pinch-zoom!important;
}

@media (max-width:1199.98px){
  .ndt-card{width:clamp(620px,44vw,700px);min-height:535px;padding-top:148px}
  .ndt-card.is-prev{transform:translate3d(-122%,32px,0) scale(.82)}
  .ndt-card.is-next{transform:translate3d(22%,32px,0) scale(.82)}
  .ndt-hand{font-size:21px}
}

@media (max-width:991.98px){
  .nd-testimonials-premium{padding-top:64px;min-height:870px}
  .ndt-hand,.ndt-plant{display:none}
  .ndt-carousel{min-height:630px}
  .ndt-stage{height:515px}
  .ndt-card{
    width:min(650px,calc(100vw - 86px));
    min-height:500px;
    padding:140px 40px 34px;
  }
  .ndt-card.is-prev,.ndt-card.is-next{opacity:.12;filter:blur(3px)}
  .ndt-card.is-prev{transform:translate3d(-108%,28px,0) scale(.78)}
  .ndt-card.is-next{transform:translate3d(8%,28px,0) scale(.78)}
  .ndt-arrow{top:230px}
  .ndt-dots{top:530px}
  .ndt-proof{top:575px}
  .ndt-tagline{top:592px}
}

@media (max-width:767.98px){
  .nd-testimonials-premium{
    min-height:auto;
    padding:58px 0 38px;
  }
  .ndt-heading{margin-bottom:22px}
  .ndt-heading .ndt-eyebrow{font-size:8.5px;letter-spacing:.24em}
  .ndt-heading h2{font-size:38px}
  .ndt-heading p{font-size:14px}
  .ndt-carousel{
    left:0;
    width:100%;
    min-height:610px;
    margin-left:0;
    padding-bottom:105px;
  }
  .ndt-stage{height:485px}
  .ndt-card{
    top:10px;
    width:calc(100vw - 34px);
    min-height:466px;
    padding:128px 22px 28px;
    border-radius:25px;
  }
  .ndt-card.is-prev,.ndt-card.is-next,.ndt-card.is-hidden,.ndt-card.ndt-visual-clone{
    opacity:0!important;
    pointer-events:none!important;
    transform:translate3d(-50%,10px,0) scale(.96)!important;
  }
  .ndt-avatar-wrap{width:105px;height:105px}
  .ndt-stars{font-size:20px;margin:8px 0 15px}
  .ndt-comment{font-size:16px;line-height:1.54;margin-bottom:16px}
  .ndt-person strong{font-size:18px}
  .ndt-country{font-size:13px}
  .ndt-treatment{font-size:13px;min-height:38px}
  .ndt-video-btn{min-width:190px;min-height:46px;font-size:14px}
  .ndt-quote-mark{font-size:80px}
  .ndt-quote-mark-left{left:20px}
  .ndt-quote-mark-right{right:20px}
  .ndt-arrow{
    top:222px;
    width:44px;
    height:44px;
  }
  .ndt-arrow-prev{left:4px}
  .ndt-arrow-next{right:4px}
  .ndt-arrow svg{width:20px;height:20px}
  .ndt-dots{top:500px}
  .ndt-proof{
    top:548px;
    left:50%;
    width:100%;
    justify-content:center;
    gap:14px;
    transform:translateX(-50%);
  }
  .ndt-proof-item{gap:8px}
  .ndt-proof-icon{width:37px;height:37px}
  .ndt-proof-icon svg{width:20px;height:20px}
  .ndt-proof-item strong{font-size:15px}
  .ndt-proof-item p span{font-size:10px}
  .ndt-tagline{display:none}
}

@media (max-width:390px){
  .ndt-card{width:calc(100vw - 22px);padding-left:18px;padding-right:18px}
  .ndt-proof{gap:9px}
}

@media (prefers-reduced-motion:reduce){
  .ndt-card,.ndt-arrow,.ndt-dot,.ndt-video-modal,.ndt-video-btn{transition:none!important}
}
