/* Vodič kroz faze Hollywood smile zahvata — koristi promenljive sajta, sa rezervnim vrednostima */
.hsg{--hs-navy:var(--navy,#102e50);--hs-blue:var(--blue,#1265d8);--hs-ink:var(--ink,#15344f);--hs-muted:var(--muted,#536679);
  --hs-line:var(--line,#dce5ed);--hs-pale:var(--pale,#f4f8fc);--hs-sky:var(--sky,#eaf3fb);--hs-r:var(--radius,22px);--hs-cyan:#5ee6f2;
  color:var(--hs-ink);font-family:inherit;padding:0}
.hsg *{box-sizing:border-box}
.hsg-wrap{max-width:1320px;margin:0 auto;padding:0 40px}
.hsg-eyebrow{margin:0;font-size:14px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#3c5d7f}
.hsg-h2{margin:18px 0 44px;font-weight:400;font-size:clamp(32px,4.4vw,62px);line-height:1.08;letter-spacing:-.045em;color:var(--hs-ink)}
.hsg-h2 span{color:var(--hs-blue)}
.hsg-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:28px;align-items:start}

/* ---------- scena ---------- */
.hsg-stage{position:sticky;top:110px;background:#fff;border:1px solid var(--hs-line);border-radius:var(--hs-r);padding:22px;overflow:hidden;
  box-shadow:0 30px 60px -40px rgba(16,46,80,.35)}
.hsg-stage:before{content:"";position:absolute;left:50%;top:46%;width:78%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;
  background:radial-gradient(circle,var(--hs-sky) 0%,rgba(234,243,251,0) 70%);pointer-events:none}
.hsg-stage-top{position:relative;display:flex;justify-content:space-between;align-items:center}
.hsg-count{font-size:14px;color:var(--hs-muted);font-weight:600}
.hsg-count b{color:var(--hs-navy);font-size:18px}
.hsg-ctrl{display:flex;gap:6px}
.hsg-ctrl button{width:38px;height:38px;border-radius:12px;border:1px solid var(--hs-line);background:#fff;color:var(--hs-navy);font:700 15px inherit;cursor:pointer;transition:.2s}
.hsg-ctrl button:hover{border-color:var(--hs-blue);color:var(--hs-blue)}
.hsg-visual{position:relative;padding:8px 0 0}
.hsg-smile{display:block;width:100%;height:auto;overflow:visible}
.hsg-stage-bottom{position:relative;display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-top:6px}

/* skala boje */
.hsg-shade{display:flex;gap:6px}
.hsg-shade span{display:flex;flex-direction:column;align-items:center;gap:5px;font-size:11px;font-weight:700;color:var(--hs-muted);transition:.3s}
.hsg-shade i{width:24px;height:32px;border-radius:7px 7px 11px 11px;border:1.5px solid var(--hs-line);transition:.3s}
.hsg-shade span.on{color:var(--hs-navy)}
.hsg-shade span.on i{border-color:var(--hs-blue);box-shadow:0 0 0 3px rgba(18,101,216,.18);transform:translateY(-4px)}
.hsg-shade span.target i{border-style:dashed;border-color:var(--hs-blue)}

/* kartica */
.hsg-card-wrap{animation:hsCardIn .55s cubic-bezier(.2,.8,.2,1) both}
@keyframes hsCardIn{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
.hsg-card{display:flex;align-items:center;gap:12px;background:var(--hs-navy);color:#fff;border-radius:16px;padding:12px 16px 12px 12px;min-width:240px;
  box-shadow:0 18px 30px -18px rgba(16,46,80,.7)}
.hsg-card b{display:block;font-size:15px;font-weight:700}
.hsg-card small{display:block;font-size:13px;color:rgba(255,255,255,.7);margin-top:2px}
.hsg-card em{font-style:normal;color:var(--hs-cyan);font-weight:700}
.hsg-card-ico{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:rgba(94,230,242,.14);color:var(--hs-cyan);flex:none}
.hsg-card-final .hsg-card-ico{background:var(--hs-cyan);color:var(--hs-navy)}
.hsg-tag{margin-left:auto;font-size:11px;font-weight:700;letter-spacing:.04em;padding:4px 8px;border-radius:999px;border:1px dashed rgba(255,255,255,.45);color:rgba(255,255,255,.85)}
.hsg-cal{flex-direction:column;align-items:stretch;gap:10px;min-width:250px}
.hsg-cal-head{display:flex;align-items:center;gap:8px;color:var(--hs-cyan)}
.hsg-cal-head b{color:#fff}
.hsg-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.hsg-cal-grid span{font-size:11px;text-align:center;padding:5px 0;border-radius:7px;background:rgba(255,255,255,.07);color:rgba(255,255,255,.75)}
.hsg-cal-grid span.on{background:var(--hs-cyan);color:var(--hs-navy);font-weight:800;animation:hsPulse 1.6s .5s infinite}
@keyframes hsPulse{50%{box-shadow:0 0 0 5px rgba(94,230,242,.25)}}
.hsg-toggle{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:rgba(255,255,255,.85)}
.hsg-toggle i{width:36px;height:20px;border-radius:999px;background:rgba(255,255,255,.2);position:relative;animation:hsToggleBg .4s 1s forwards}
.hsg-toggle i:after{content:"";position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:50%;background:#fff;animation:hsToggle .4s 1s forwards}
@keyframes hsToggle{to{transform:translateX(16px)}}
@keyframes hsToggleBg{to{background:var(--hs-cyan)}}

/* ---------- ilustracija: stanja po koraku ---------- */
.hsg-tooth{transition:transform .9s cubic-bezier(.2,.8,.2,1)}
.hsg-enamel{transition:fill .9s ease}
.hsg-gloss{opacity:0;transition:opacity .8s .6s}
.st-5 .hsg-gloss{opacity:.35}
.st-6 .hsg-gloss{opacity:1}
.hsg-missing{opacity:0;scale:.6;transition:opacity .5s,scale .5s}
.st-4 .hsg-missing{animation:hsCrown .7s 1.25s both}
.st-5 .hsg-missing,.st-6 .hsg-missing{opacity:1;scale:1}
@keyframes hsCrown{from{opacity:0;scale:.6}to{opacity:1;scale:1}}
.hsg-implant{opacity:0}
.st-4 .hsg-implant{animation:hsImplant 1.1s cubic-bezier(.2,.8,.2,1) .2s both}
@keyframes hsImplant{from{opacity:0;translate:0 70px}to{opacity:1;translate:0 0}}
.st-5 .hsg-tooth{animation:hsPrep 1.7s ease both}
@keyframes hsPrep{0%{scale:1}35%,55%{scale:.84}100%{scale:1}}
.hsg-plan path{fill:none;stroke:var(--hs-blue);stroke-width:1.6;stroke-dasharray:5 4;opacity:0;transition:opacity .5s}
.st-1 .hsg-plan path{opacity:.95;animation:hsDash 1.2s linear infinite}
.hsg-plan .hsg-plan-line{stroke:var(--hs-cyan);stroke-width:2.2}
@keyframes hsDash{to{stroke-dashoffset:-18}}
.hsg-scan{opacity:0}
.st-0 .hsg-scan{opacity:1;animation:hsScan 2.4s cubic-bezier(.45,0,.55,1) infinite}
@keyframes hsScan{from{transform:translateX(0)}to{transform:translateX(480px)}}
.hsg-mark{fill:rgba(94,230,242,.25);stroke:var(--hs-cyan);stroke-width:2;opacity:0;transform-box:fill-box;transform-origin:center}
.st-0 .hsg-mark{animation:hsMark .5s cubic-bezier(.2,.8,.2,1) both}
@keyframes hsMark{from{opacity:0;scale:.3}to{opacity:1;scale:1}}
.hsg-sparkles path{opacity:0;transform-box:fill-box;transform-origin:center}
.st-6 .hsg-sparkles path{animation:hsTwinkle 1.8s ease-in-out .9s infinite}
@keyframes hsTwinkle{0%,100%{opacity:0;scale:.3}45%{opacity:1;scale:1}}

/* ---------- lista koraka ---------- */
.hsg-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;position:relative}
.hsg-steps:before{content:"";position:absolute;left:39px;top:30px;bottom:30px;width:2px;background:var(--hs-line)}
.hsg-step{position:relative}
.hsg-step>button{position:relative;width:100%;display:flex;gap:16px;align-items:flex-start;text-align:left;background:#fff;border:1px solid var(--hs-line);border-radius:18px;
  padding:16px 18px 16px 16px;cursor:pointer;font-family:inherit;color:inherit;overflow:hidden;transition:border-color .25s,box-shadow .25s,transform .25s}
.hsg-step>button:hover{border-color:#b9cde0}
.hsg-num{flex:none;width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:var(--hs-navy);color:var(--hs-cyan);font-weight:800;font-size:17px;position:relative;z-index:1;transition:.25s}
.hsg-step.opt .hsg-num{background:#fff;color:var(--hs-navy);border:2px dashed #9fb4c9}
.hsg-step.done .hsg-num{background:var(--hs-sky);color:var(--hs-blue);border:0}
.hsg-body{display:flex;flex-direction:column;gap:4px;padding-top:2px}
.hsg-body b{font-size:18px;font-weight:700;color:var(--hs-ink)}
.hsg-body em{font-style:normal;font-weight:400;color:var(--hs-muted)}
.hsg-text{font-size:15.5px;line-height:1.5;color:var(--hs-muted);max-height:0;opacity:0;overflow:hidden;transition:max-height .45s ease,opacity .35s}
.hsg-step.on>button{border-color:var(--hs-blue);box-shadow:0 16px 34px -22px rgba(18,101,216,.55);transform:translateX(6px)}
.hsg-step.on .hsg-num{background:var(--hs-blue);color:#fff;border:0}
.hsg-step.on .hsg-text{max-height:120px;opacity:1}
.hsg-prog{position:absolute;left:0;bottom:0;height:3px;width:0;background:var(--hs-blue)}
.hsg-prog.run{animation:hsProg var(--hs-dur) linear forwards}
@keyframes hsProg{to{width:100%}}
.hsg-inline{position:absolute;right:18px;top:18px;font-size:14px;font-weight:700;color:var(--hs-blue);text-decoration:none}
.hsg-inline:hover{text-decoration:underline}
.hsg-more{display:inline-flex;gap:12px;align-items:center;margin-top:40px;font-weight:700;font-size:17px;color:var(--hs-ink);text-decoration:none}
.hsg-more span{transition:transform .2s}.hsg-more:hover span{transform:translateX(4px)}

/* ---------- mobilni ---------- */
@media (max-width:980px){
  .hsg{padding:64px 0}
  .hsg-wrap{padding:0 16px}
  .hsg-h2{margin-bottom:28px}
  .hsg-grid{grid-template-columns:minmax(0,1fr);gap:16px}
  .hsg-stage{position:relative;top:0;padding:16px}
  .hsg-card{min-width:0;width:100%}
  .hsg-stage-bottom{flex-direction:column;align-items:stretch}
  .hsg-shade{justify-content:center}
  .hsg-step.on>button{transform:none}
  .hsg-steps:before{left:39px}
  .hsg-body b{font-size:16px}
  .hsg-inline{position:static;display:inline-block;margin:8px 0 0 78px}
}
@media (prefers-reduced-motion:reduce){.hsg *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
