/* ==========================================================================
   Yess Dental — Bază: reset, tipografie, layout, butoane
   ========================================================================== */

*,*::before,*::after{box-sizing:border-box;}

html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;}
}

body{
  margin:0;
  font-family:var(--yd-font-body);
  font-size:var(--yd-body);
  line-height:1.7;
  color:var(--yd-ink);
  background:var(--yd-white);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}

/* Blocare scroll când meniul mobil sau un modal e deschis */
body.yd-no-scroll{overflow:hidden;}

img,picture,video,canvas,svg{display:block;max-width:100%;height:auto;}
img{border-style:none;}

input,button,textarea,select{font:inherit;color:inherit;}
button{background:none;border:0;padding:0;cursor:pointer;}

a{color:var(--yd-blue);text-decoration:none;transition:color var(--yd-t);}
a:hover{color:var(--yd-blue-hover);}

/* --- Titluri --- */
h1,h2,h3,h4,h5,h6{
  font-family:var(--yd-font-head);
  color:var(--yd-navy);
  margin:0 0 .5em;
  text-wrap:balance;
}
h1{font-weight:800;font-size:var(--yd-h1);line-height:1.05;letter-spacing:-.02em;}
h2{font-weight:600;font-size:var(--yd-h2);line-height:1.08;letter-spacing:-.015em;}
h3{font-weight:700;font-size:var(--yd-h3);line-height:1.15;letter-spacing:-.01em;}
h4{font-weight:700;font-size:var(--yd-h4);line-height:1.25;}

p{margin:0 0 1em;text-wrap:pretty;}
p:last-child{margin-bottom:0;}
strong,b{font-weight:800;color:var(--yd-navy);}

ul,ol{margin:0 0 1em;padding-left:1.25em;}

hr{border:0;border-top:1px solid var(--yd-line);margin:2rem 0;}

blockquote{
  margin:1.5rem 0;padding:1rem 1.25rem;
  border-left:4px solid var(--yd-blue);
  background:var(--yd-blue-150);border-radius:0 var(--yd-r-lg) var(--yd-r-lg) 0;
  color:var(--yd-navy);
}

table{width:100%;border-collapse:collapse;}
th,td{padding:12px 14px;border-bottom:1px solid var(--yd-line);text-align:left;}
th{font-family:var(--yd-font-head);font-weight:700;color:var(--yd-navy);}

::selection{background:var(--yd-blue-200);color:var(--yd-navy);}

/* --- Focus vizibil (accesibilitate) --- */
:focus-visible{
  outline:3px solid var(--yd-blue);
  outline-offset:2px;
  border-radius:4px;
}
:focus:not(:focus-visible){outline:none;}

/* --- Skip link --- */
.yd-skip{
  position:absolute;left:-9999px;top:0;z-index:100000;
  background:var(--yd-blue);color:#fff;padding:14px 20px;
  font-family:var(--yd-font-head);font-weight:700;border-radius:0 0 var(--yd-r-sm) 0;
}
.yd-skip:focus{left:0;color:#fff;}

/* --- Screen reader only --- */
.yd-sr{
  position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

/* ==========================================================================
   Layout
   ========================================================================== */

.yd-container{
  max-width:var(--yd-container);
  margin-inline:auto;
  padding-inline:var(--yd-gutter);
  width:100%;
}
.yd-container--wide{padding-inline:var(--yd-gutter-lg);}

.yd-section{padding-block:var(--yd-section-y);}
.yd-section--lg{padding-block:var(--yd-section-y-lg);}
.yd-section--white{background:var(--yd-white);}
.yd-section--tint{background:var(--yd-blue-150);}
.yd-section--blue{background:var(--yd-blue);color:#fff;}
.yd-section--navy{background:var(--yd-navy);color:#fff;}

.yd-section--blue h1,.yd-section--blue h2,.yd-section--blue h3,.yd-section--blue h4,
.yd-section--navy h1,.yd-section--navy h2,.yd-section--navy h3,.yd-section--navy h4{color:#fff;}

/* Grilă auto-fit, exact ca în design */
.yd-grid{display:grid;gap:16px;}
.yd-grid--2{grid-template-columns:repeat(auto-fit,minmax(min(100%,480px),1fr));gap:64px;align-items:center;}
.yd-grid--3{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:20px;}
.yd-grid--4{grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:16px;}

/* ==========================================================================
   Elemente de tipar comune
   ========================================================================== */

.yd-eyebrow{
  font-family:var(--yd-font-head);
  font-weight:600;
  font-size:var(--yd-eyebrow);
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--yd-blue);
  margin:0;
}
.yd-section--blue .yd-eyebrow,
.yd-section--navy .yd-eyebrow{color:#fff;}

.yd-lead{font-size:var(--yd-lead);font-weight:600;line-height:1.55;}

.yd-muted{color:var(--yd-muted);}

.yd-head{
  display:flex;flex-wrap:wrap;gap:24px;
  justify-content:space-between;align-items:flex-end;
  margin-bottom:44px;
}
.yd-head__text{max-width:640px;}
.yd-head__text h2{margin:14px 0 0;}
.yd-head--center{justify-content:center;text-align:center;}
.yd-head--center .yd-head__text{max-width:720px;}

/* --- Listă cu bifă --- */
.yd-checks{display:flex;flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;}
.yd-checks li{
  display:flex;gap:14px;align-items:center;
  font-weight:700;font-size:16px;color:var(--yd-navy);
}
.yd-checks li::before{
  content:"✓";
  width:26px;height:26px;flex-shrink:0;border-radius:50%;
  background:var(--yd-blue-200);color:var(--yd-blue);
  display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:800;
}
.yd-section--blue .yd-checks li{color:#fff;}
.yd-section--blue .yd-checks li::before{background:rgba(255,255,255,.22);color:#fff;}

/* ==========================================================================
   Butoane
   ========================================================================== */

.yd-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--yd-font-head);font-weight:700;font-size:16px;line-height:1.2;
  padding:15px 22px;border-radius:var(--yd-r-md);
  text-align:center;white-space:nowrap;
  transition:background var(--yd-t),color var(--yd-t),border-color var(--yd-t),transform var(--yd-t);
  cursor:pointer;
}
.yd-btn:active{transform:translateY(1px);}

.yd-btn--primary{background:var(--yd-blue);color:#fff;}
.yd-btn--primary:hover{background:var(--yd-blue-hover);color:#fff;}

.yd-btn--white{background:#fff;color:var(--yd-blue);}
.yd-btn--white:hover{background:var(--yd-blue-200);color:var(--yd-blue);}

.yd-btn--navy{background:#fff;color:var(--yd-navy);}
.yd-btn--navy:hover{background:var(--yd-blue-200);color:var(--yd-navy);}

.yd-btn--outline{background:transparent;color:var(--yd-navy);border:2px solid var(--yd-border);}
.yd-btn--outline:hover{border-color:var(--yd-blue);color:var(--yd-blue);}

.yd-btn--wa{background:var(--yd-wa);color:#fff;}
.yd-btn--wa:hover{background:var(--yd-wa-hover);color:#fff;}

.yd-btn--lg{font-size:17px;padding:18px 24px;}
.yd-btn--block{width:100%;}

/* Link subliniat, ca în design */
.yd-link{
  display:inline-block;
  font-family:var(--yd-font-head);font-weight:700;font-size:16px;
  color:var(--yd-blue);border-bottom:2px solid var(--yd-blue);
  padding-bottom:3px;
}
.yd-link:hover{color:var(--yd-blue-hover);border-color:var(--yd-blue-hover);}

/* ==========================================================================
   Carduri
   ========================================================================== */

.yd-card{
  background:#fff;border:1px solid var(--yd-line);
  border-radius:var(--yd-r-xl);padding:26px;
  transition:border-color var(--yd-t),box-shadow var(--yd-t),transform var(--yd-t);
}
.yd-card--hover:hover{
  border-color:var(--yd-blue-400);
  box-shadow:var(--yd-shadow-card-hover);
  transform:translateY(-2px);
}
.yd-card--glass{
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.4);
  color:#fff;
}
.yd-card--glass:hover{background:rgba(255,255,255,.22);border-color:#fff;}

/* Imagine în card, raport fix */
.yd-ratio{position:relative;overflow:hidden;border-radius:var(--yd-r-xl);background:var(--yd-blue-150);}
.yd-ratio > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.yd-ratio--4-3{aspect-ratio:4/3;}
.yd-ratio--3-2{aspect-ratio:3/2;}
.yd-ratio--1-1{aspect-ratio:1/1;}
.yd-ratio--16-9{aspect-ratio:16/9;}

/* ==========================================================================
   Preț
   ========================================================================== */

.yd-price{display:flex;align-items:baseline;gap:6px;font-family:var(--yd-font-head);}
.yd-price__val{font-weight:800;font-size:42px;letter-spacing:-.02em;line-height:1;}
.yd-price__cur{font-weight:700;font-size:18px;}
.yd-price__unit{font-family:var(--yd-font-body);font-size:14px;font-weight:700;}

/* ==========================================================================
   Badge
   ========================================================================== */

.yd-badge{
  display:inline-flex;align-items:center;gap:6px;
  font-family:var(--yd-font-head);font-weight:700;font-size:12.5px;
  letter-spacing:.04em;text-transform:uppercase;
  padding:6px 12px;border-radius:var(--yd-r-pill);
  background:var(--yd-green-050);color:var(--yd-green);
}
.yd-badge--blue{background:var(--yd-blue-200);color:var(--yd-blue);}
.yd-badge--white{background:rgba(255,255,255,.2);color:#fff;}

/* ==========================================================================
   Scrollere orizontale (mobil)
   ========================================================================== */

.yd-scroller{
  display:flex;gap:10px;overflow-x:auto;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;-ms-overflow-style:none;
  padding-bottom:4px;
}
.yd-scroller::-webkit-scrollbar{display:none;}
.yd-scroller > *{scroll-snap-align:start;flex:0 0 auto;}

/* ==========================================================================
   Elementor: neutralizăm containerul implicit pe paginile full-width
   ========================================================================== */

.yd-page-content > .elementor{width:100%;}
.elementor-widget-container > :last-child{margin-bottom:0;}

/* Offset pentru headerul fix */
.yd-main{padding-top:var(--yd-header-h);}
.yd-main--flush{padding-top:0;}

/* Ancore sub headerul fix */
:target{scroll-margin-top:calc(var(--yd-header-h) + 16px);}
