/* ============================================================
   PURE ZONE, SEO & konverzijski moduli
   Kalkulator, kviz, FAQ, TOC, lead magnet, popup, sticky CTA.
   Sve animacije GPU-friendly: samo transform i opacity.
   ============================================================ */

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:-9999px;top:0;z-index:200;background:var(--gold);color:var(--ink);padding:.8rem 1.2rem;font-weight:600}
.skip-link:focus{left:0}

/* ---------- header dodaci ---------- */
.nav-phone{font-family:var(--sans);font-size:var(--step--1);font-weight:600;letter-spacing:.04em;color:var(--text-inv);white-space:nowrap}
.nav-phone:hover{color:var(--gold)}
@media (max-width:1100px){.nav-phone{display:none}}

.hero-cta-row{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:2rem}

/* ---------- TOC ---------- */
.pz-toc{border:1px solid var(--line);border-left:3px solid var(--gold);background:var(--paper-2);padding:1.4rem 1.6rem;border-radius:var(--radius);margin:0 0 2.6rem}
.pz-toc-h{font-family:var(--sans);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-deep);font-weight:600;margin-bottom:.9rem}
.pz-toc ol{margin:0;padding-left:1.1rem;columns:2;column-gap:2rem}
.pz-toc li{margin:.3rem 0;font-size:var(--step--1);break-inside:avoid}
.pz-toc a{color:var(--text-mute);text-decoration:none;transition:color .3s var(--ease)}
.pz-toc a:hover,.pz-toc a.on{color:var(--gold-deep);font-weight:600}
@media (max-width:640px){.pz-toc ol{columns:1}}

/* ---------- FAQ ---------- */
.pz-faq-list{display:grid;gap:.7rem;margin-top:2.2rem}
.pz-faq-i{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:border-color .4s var(--ease)}
.pz-faq-i[open]{border-color:var(--gold)}
.pz-faq-i summary{list-style:none;cursor:pointer;padding:1.15rem 3rem 1.15rem 1.4rem;position:relative;display:block}
.pz-faq-i summary::-webkit-details-marker{display:none}
.pz-faq-i summary h3{font-size:var(--step-0);font-family:var(--sans);font-weight:600;line-height:1.4;letter-spacing:0;display:inline}
.pz-faq-i summary::after{content:"";position:absolute;right:1.4rem;top:50%;width:10px;height:10px;border-right:2px solid var(--gold-deep);border-bottom:2px solid var(--gold-deep);transform:translateY(-70%) rotate(45deg);transition:transform .35s var(--ease)}
.pz-faq-i[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.pz-faq-a{padding:0 1.4rem 1.4rem;color:var(--text-mute)}
.pz-faq-a p{max-width:none;font-size:var(--step--1);line-height:1.7}

/* ---------- link grid (interlinking) ---------- */
.pz-link-grid{list-style:none;padding:0;margin:2.2rem 0 0;display:grid;gap:.6rem}
.pz-cols-2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.pz-cols-3{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.pz-cols-4{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.pz-link-grid a{display:block;padding:.85rem 1.1rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);font-size:var(--step--1);color:var(--text);transition:transform .35s var(--ease),border-color .35s var(--ease),color .35s var(--ease)}
.pz-link-grid a:hover{border-color:var(--gold);color:var(--gold-deep);transform:translateY(-2px)}

/* ---------- KALKULATOR ---------- */
.pzc{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1.4rem,3vw,2.6rem);max-width:900px;margin-inline:auto;box-shadow:0 30px 70px -50px rgba(0,0,0,.5)}
.pzc-row{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;margin-bottom:1.4rem}
.pzc-f{display:flex;flex-direction:column;gap:.55rem}
.pzc-f>span,.pzc-f legend{font-family:var(--sans);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-deep);font-weight:600}
.pzc select,.pzc input[type=number]{font-family:var(--sans);font-size:var(--step-0);padding:.85rem 1rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-2);color:var(--text);width:100%}
.pzc input[type=range]{width:100%;accent-color:var(--gold-deep);height:2rem}
.pzc-seg{border:0;padding:0;display:flex;flex-direction:column;gap:.55rem}
.pzc-seg>div,.pzc-seg{flex-wrap:wrap}
.pzc-seg label{display:inline-flex;align-items:center;gap:.4rem;cursor:pointer}
.pzc-seg{display:flex}
.pzc-seg label span{display:inline-block;padding:.55rem .9rem;border:1px solid var(--line);border-radius:var(--radius);font-size:var(--step--1);transition:.3s var(--ease)}
.pzc-seg input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.pzc-seg input:checked+span{background:var(--ink);color:var(--text-inv);border-color:var(--ink)}
.pzc-seg input:focus-visible+span{outline:2px solid var(--gold-deep);outline-offset:2px}
.pzc-seg legend{width:100%;margin-bottom:.55rem}
.pzc-seg{display:block}
.pzc-seg label{margin:0 .4rem .4rem 0}
.pzc-adds{border:0;padding:1.4rem 0 0;border-top:1px solid var(--line);margin-bottom:1.4rem}
.pzc-adds legend{font-family:var(--sans);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-deep);font-weight:600;padding:0}
.pzc-add-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.5rem;margin:1rem 0}
.pzc-add{display:flex;align-items:center;gap:.6rem;padding:.7rem .9rem;border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;font-size:var(--step--1);transition:.3s var(--ease)}
.pzc-add:has(input:checked){border-color:var(--gold);background:var(--gold-soft)}
.pzc-add em{margin-left:auto;font-style:normal;color:var(--text-mute);white-space:nowrap}
.pzc-add input{accent-color:var(--gold-deep)}
.pzc-qty{display:inline-flex;align-items:center;gap:.6rem;font-size:var(--step--1);margin-right:1.2rem}
.pzc-qty{white-space:nowrap}
.pzc-qty input{width:5.5rem}
.pzc-out{display:grid;grid-template-columns:1fr auto;gap:1.4rem;align-items:center;background:var(--ink);color:var(--text-inv);padding:1.5rem 1.8rem;border-radius:var(--radius);margin-bottom:1rem}
.pzc-lbl{display:block;font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:.3rem}
.pzc-price strong{font-family:var(--serif);font-size:clamp(1.9rem,5vw,3rem);line-height:1;display:block}
.pzc-time strong{font-family:var(--serif);font-size:var(--step-1);display:block}
.pzc-note{font-size:.72rem;color:var(--text-inv-mute)}
.pzc-disc{font-size:.76rem;color:var(--text-mute);margin-bottom:1.4rem;max-width:none}
@media (max-width:720px){.pzc-row{grid-template-columns:1fr}.pzc-out{grid-template-columns:1fr;text-align:left}}

/* ---------- KVIZ ---------- */
.pz-quiz .pzq{max-width:760px;margin-inline:auto}
.pzq-bar{height:2px;background:var(--line-dark);margin-bottom:2.4rem;overflow:hidden}
.pzq-bar i{display:block;height:100%;width:0;background:var(--gold);transition:width .5s var(--ease)}
.pzq-step{border:0;padding:0}
.pzq-q{font-family:var(--serif);font-size:var(--step-2);line-height:1.15;margin-bottom:1.6rem;display:block}
.pzq-n{display:block;font-family:var(--sans);font-size:.66rem;letter-spacing:.2em;color:var(--gold);font-weight:600;margin-bottom:.7rem}
.pzq-opts{display:grid;gap:.6rem}
.pzq-opt{text-align:left;background:transparent;border:1px solid var(--line-dark);color:var(--text-inv);padding:1.05rem 1.3rem;border-radius:var(--radius);font-family:var(--sans);font-size:var(--step-0);cursor:pointer;transition:transform .3s var(--ease),border-color .3s var(--ease),background .3s var(--ease)}
.pzq-opt:hover{border-color:var(--gold);background:rgba(198,166,103,.1);transform:translateX(4px)}
.pzq-result{text-align:center}
.pzq-result h3{font-size:var(--step-2);margin:.8rem 0 1rem;color:var(--gold)}
.pzq-result p{color:var(--text-inv-mute);margin-inline:auto}
.pzq-list{list-style:none;padding:0;margin:1.8rem auto;max-width:56ch;text-align:left;display:grid;gap:.6rem}
.pzq-list li{padding-left:1.5rem;position:relative;font-size:var(--step--1);color:var(--text-inv-mute)}
.pzq-list li::before{content:"";position:absolute;left:0;top:.55em;width:7px;height:7px;background:var(--gold);transform:rotate(45deg)}
.pzq-list a{color:var(--gold);text-decoration:underline;text-underline-offset:3px}
.pzq-again{background:none;border:0;color:var(--text-inv-mute);font-size:.76rem;text-decoration:underline;cursor:pointer;margin-top:1.6rem}

/* ---------- RECENZIJE ---------- */
.pz-rev{padding-block:clamp(2.4rem,5vw,3.6rem)}
.pz-rev-head{display:flex;flex-wrap:wrap;gap:1.2rem;align-items:center;justify-content:center;text-align:center}
.pz-rev-stars{color:var(--gold);font-size:1.5rem;letter-spacing:.1em}
.pz-rev-score{margin:0;font-size:var(--step-0)}
.pz-rev-score strong{font-family:var(--serif);font-size:var(--step-1)}

/* ---------- CJENIK ---------- */
.pz-price-tables{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:2rem;margin:2.4rem 0}
.pz-table{width:100%;border-collapse:collapse;font-size:var(--step--1)}
.pz-table caption{font-family:var(--sans);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-deep);font-weight:600;text-align:left;padding-bottom:.8rem}
.pz-table th,.pz-table td{border:1px solid var(--line);padding:.75rem .9rem;text-align:left}
.pz-table thead th{background:var(--ink);color:var(--text-inv);font-family:var(--sans);font-weight:600}
.pz-table tbody th{font-weight:500;font-family:var(--sans)}
.pz-table tbody tr:nth-child(even){background:var(--paper-2)}

/* ---------- SAVJETI ---------- */
.pz-tip-grid{list-style:none;counter-reset:t;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.6rem}
.pz-tip-grid li{counter-increment:t;background:var(--paper);border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:var(--radius);padding:1.8rem 1.6rem;position:relative}
.pz-tip-grid li::before{content:counter(t,decimal-leading-zero);font-family:var(--serif);font-size:2.4rem;color:var(--gold-soft);position:absolute;top:.6rem;right:1rem;line-height:1}
.pz-tip-grid h3{font-size:var(--step-1);margin-bottom:.7rem}
.pz-tip-grid p{font-size:var(--step--1);color:var(--text-mute);max-width:none}

/* ---------- LEAD MAGNET ---------- */
.pz-lm-box{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(1.6rem,4vw,3.4rem);background:var(--ink);color:var(--text-inv);padding:clamp(1.8rem,4vw,3.4rem);border-radius:var(--radius);align-items:center}
.pz-lm-copy h2{margin:.7rem 0 1rem;font-size:var(--step-2)}
.pz-lm-copy p{color:var(--text-inv-mute)}
.pz-lm-ticks{list-style:none;padding:0;margin:1.4rem 0 0;display:grid;gap:.5rem}
.pz-lm-ticks li{padding-left:1.5rem;position:relative;font-size:var(--step--1);color:var(--text-inv-mute)}
.pz-lm-ticks li::before{content:"";position:absolute;left:0;top:.45em;width:8px;height:4px;border-left:2px solid var(--gold);border-bottom:2px solid var(--gold);transform:rotate(-45deg)}
.pz-lm-form{display:grid;gap:.7rem;background:var(--ink-soft);padding:1.6rem;border:1px solid var(--line-dark);border-radius:var(--radius)}
.pz-lm-form label{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:600}
.pz-lm-form input[type=email]{padding:.9rem 1rem;border:1px solid var(--line-dark);background:var(--ink);color:var(--text-inv);border-radius:var(--radius);font-family:var(--sans);font-size:var(--step-0)}
.pz-lm-form small{font-size:.7rem;color:var(--text-inv-mute)}
@media (max-width:820px){.pz-lm-box{grid-template-columns:1fr}}

/* ---------- POPUP ---------- */
/* KRITICNO: [hidden] mora pobijediti display:grid, inace nevidljivi backdrop
   presretne svaki klik na stranici. */
.pz-pop{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:1.2rem}
.pz-pop[hidden]{display:none!important}
.pz-pop:not(.open){pointer-events:none}
.pz-pop.open{pointer-events:auto}
.pz-pop-bd{position:absolute;inset:0;background:rgba(14,14,15,.75);opacity:0;transition:opacity .3s var(--ease);backdrop-filter:blur(3px)}
.pz-pop-card{position:relative;background:var(--paper);border-radius:var(--radius);max-width:520px;width:100%;padding:clamp(1.8rem,4vw,2.8rem);text-align:center;opacity:0;transform:translateY(18px) scale(.98);transition:opacity .35s var(--ease),transform .35s var(--ease);box-shadow:0 40px 90px -40px rgba(0,0,0,.6);border-top:4px solid var(--gold);max-height:92vh;overflow-y:auto}
.pz-pop.open .pz-pop-bd{opacity:1}
.pz-pop.open .pz-pop-card{opacity:1;transform:none}
.pz-pop-card .eyebrow{justify-content:center}
.pz-pop-card h2{font-size:var(--step-2);margin:.8rem 0 .9rem}
.pz-pop-card p{color:var(--text-mute);font-size:var(--step--1);margin-inline:auto}
.pz-pop-form{display:flex;gap:.5rem;margin:1.6rem 0 .8rem;flex-wrap:wrap}
.pz-pop-form input[type=email]{flex:1 1 200px;padding:.95rem 1rem;border:1px solid var(--line);border-radius:var(--radius);font-family:var(--sans);font-size:var(--step-0)}
.pz-pop-x{position:absolute;top:.5rem;right:.8rem;background:none;border:0;font-size:1.7rem;line-height:1;color:var(--text-mute);cursor:pointer}
.pz-pop-x:hover{color:var(--ink)}
.pz-pop-fine{display:block;font-size:.68rem;color:var(--text-mute)}
.pz-pop-no{background:none;border:0;color:var(--text-mute);font-size:.74rem;text-decoration:underline;cursor:pointer;margin-top:1rem}
@media (prefers-reduced-motion:reduce){.pz-pop-card{transition:none;transform:none}}

/* ---------- STICKY CTA (mobitel) ---------- */
.pz-sticky{position:fixed;left:0;right:0;bottom:0;z-index:90;display:none;background:var(--ink);border-top:1px solid var(--line-dark);padding:.5rem calc(env(safe-area-inset-left) + .5rem) calc(env(safe-area-inset-bottom) + .5rem);gap:.4rem}
.pzs-btn{flex:1;text-align:center;padding:.85rem .4rem;border-radius:var(--radius);font-family:var(--sans);font-size:.74rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.pzs-call{background:var(--gold);color:var(--ink)}
.pzs-wa{background:#25D366;color:#06301a}
.pzs-quote{border:1px solid rgba(245,244,240,.4);color:var(--text-inv)}
@media (max-width:900px){.pz-sticky{display:flex}body{padding-bottom:4.2rem}.chat-fab{bottom:5.2rem}}

/* ---------- footer heading (bio h4, sad h2 zbog hijerarhije) ---------- */
.footer-h{font-family:var(--sans);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:1.1rem;line-height:1.4}
.nap-mail,.nap-hours{display:block;font-size:var(--step--1);color:var(--text-inv-mute);margin-top:.3rem}

/* ---------- reveal: bez stackanja, will-change se gasi ---------- */
[data-reveal].in{will-change:auto}
[data-reveal]:not(.in){will-change:opacity,transform}

/* ============================================================
   KONTAKT: forma i NAP blok
   Ove klase generira build.py (contact_form + build_kontakt).
   ============================================================ */
.pz-contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,5vw,4.5rem);align-items:start}
@media (max-width:900px){.pz-contact-grid{grid-template-columns:1fr}}

.pz-contact-info{background:var(--ink);color:var(--text-inv);padding:clamp(1.8rem,4vw,2.8rem);border-radius:var(--radius);position:sticky;top:6.5rem}
@media (max-width:900px){.pz-contact-info{position:static}}
.pz-contact-info h2{color:var(--text-inv);font-size:var(--step-2);margin-bottom:1.6rem}
.pz-contact-info .btn{margin-top:1.6rem}
.pz-nap-big{font-style:normal;display:grid;gap:0}
.pz-nap-big span{display:grid;gap:.25rem;padding-block:1rem;border-bottom:1px solid var(--line-dark);font-size:var(--step--1);color:var(--text-inv)}
.pz-nap-big span:last-child{border-bottom:0}
.pz-nap-big strong{font-family:var(--sans);font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:600}
.pz-nap-big a{color:var(--text-inv);transition:color .3s var(--ease)}
.pz-nap-big a:hover{color:var(--gold)}

.pz-contact-form{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1.5rem,3.5vw,2.6rem)}
.pz-form{display:grid;gap:1.1rem}
.pz-form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
@media (max-width:560px){.pz-form-row{grid-template-columns:1fr}}
.pz-form label{display:grid;gap:.45rem;font-family:var(--sans);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-deep);font-weight:600}
.pz-form input[type=text],.pz-form input[type=tel],.pz-form input[type=email],
.pz-form input[type=number],.pz-form select,.pz-form textarea{
  width:100%;padding:.95rem 1.05rem;font-family:var(--sans);font-size:var(--step-0);
  background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius);color:var(--text);
  text-transform:none;letter-spacing:normal;font-weight:400;
  transition:border-color .35s var(--ease),box-shadow .35s var(--ease),background .35s var(--ease)}
.pz-form input:focus,.pz-form select:focus,.pz-form textarea:focus{
  outline:none;border-color:var(--gold);background:var(--paper);box-shadow:0 0 0 3px var(--gold-soft)}
.pz-form textarea{resize:vertical;min-height:140px;line-height:1.6}
.pz-form select{appearance:none;-webkit-appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,var(--gold-deep) 50%),linear-gradient(135deg,var(--gold-deep) 50%,transparent 50%);
  background-position:calc(100% - 20px) 55%,calc(100% - 14px) 55%;
  background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:2.6rem}
.pz-check{display:flex!important;align-items:flex-start;gap:.65rem;font-size:.8rem;letter-spacing:normal;
  text-transform:none;color:var(--text-mute);font-weight:400;line-height:1.5;cursor:pointer}
.pz-check input{width:1.05rem;height:1.05rem;flex:0 0 auto;margin-top:.15rem;accent-color:var(--gold-deep)}
.pz-form button[type=submit]{justify-content:center;width:100%;margin-top:.4rem}
.pz-form-alt{font-size:var(--step--1);color:var(--text-mute);text-align:center;margin-top:.2rem;max-width:none}
.pz-form-alt a{color:var(--gold-deep);text-decoration:underline;text-underline-offset:3px}
.pz-form-alt a:hover{color:var(--ink)}

/* ---------- PODRUCJA hub: blok kvartova po cetvrti ---------- */
.pz-kv-block{margin-top:2.8rem;padding-top:2rem;border-top:1px solid var(--line)}
.pz-kv-block h3{font-size:var(--step-1);margin-bottom:.4rem}
.pz-kv-block .pz-link-grid{margin-top:1rem}

/* ---------- wrapperi sekcija (bez njih nasljeduju .section) ---------- */
.pz-links,.pz-lm,.pz-faq,.pz-calc,.pz-tips{position:relative}
.pz-rev-plain{padding-block:clamp(1.6rem,3vw,2.4rem);border-bottom:1px solid var(--line)}
.ba-before{z-index:1}
.ba-after{z-index:2}

/* ---------- sigurnosna mreza: ghost gumb na tamnoj podlozi ----------
   btn-ghost je taman tekst s tamnim rubom. Na tamnom panelu se ne vidi.
   Ovo ga automatski pretvara u svijetlu varijantu gdje god zavrsi. */
.section-dark .btn-ghost,
.pz-contact-info .btn-ghost,
.pz-lm-box .btn-ghost,
.cta-banner .btn-ghost,
.page-hero .btn-ghost,
.hero .btn-ghost,
.site-footer .btn-ghost{border-color:rgba(245,244,240,.35);color:var(--text-inv)}
.section-dark .btn-ghost:hover,
.pz-contact-info .btn-ghost:hover,
.pz-lm-box .btn-ghost:hover,
.cta-banner .btn-ghost:hover,
.page-hero .btn-ghost:hover,
.hero .btn-ghost:hover,
.site-footer .btn-ghost:hover{background:var(--gold);color:var(--ink);border-color:var(--gold)}
