/* cta.css — velké kontaktní CTA (panel z hlavní stránky) pro stránky nástrojů.
   Styly jsou převzaté 1:1 z inline <style> článku (site/clanky/co-je-dip.html),
   ten je zase kopií home.css. Vytaženo do sdíleného souboru 2026-08-02, aby se
   stejný blok nemusel psát do osmi souborů nástrojů zvlášť.
   Načítá se JEN na stránkách nástrojů v /kalkulacky/. Ostatní stránky mají styly dál inline.
   Nepřihlášenému se panel ukáže, přihlášenému ho skryje pravidlo z base.css
   (html.jl-in .contact-panel{display:none}). */

/* obal, který panelu dá odstup od obsahu stránky (v článcích to dělá .fn-sec) */
.tools-contact{margin:clamp(2.6rem,6vw,4.5rem) 0 0}

/* ── VELKÉ CTA — kontaktní panel z hlavní stránky (styly převzaté z home.css) ──
   Kopie 1:1 vč. mikro-interakcí a inline mapové bubliny. */
.contact-panel{position:relative;scroll-margin-top:110px;overflow:hidden;border-radius:var(--rxl);background:linear-gradient(150deg,#00838f,#00636f);padding:clamp(2.6rem,6vw,5rem) clamp(.8rem,4vw,3rem);text-align:center;color:#fff;box-shadow:var(--sh)}
.contact-panel::before{content:"";position:absolute;width:540px;height:540px;border-radius:50%;background:radial-gradient(closest-side,rgba(255,255,255,.95) 0%,rgba(255,255,255,.55) 32%,rgba(255,255,255,0) 72%);opacity:.2;top:-260px;right:-140px;pointer-events:none}
[data-theme="dark"] .contact-panel{background:linear-gradient(150deg,#0d4550,#07303a)}
[data-theme="dark"] .contact-panel::before{opacity:.1}
.contact-panel h2{position:relative;font-family:"Karma",Georgia,serif;font-weight:600;letter-spacing:-.018em;line-height:1.07;font-size:var(--fs-h2-panel);margin:0 auto.9rem;max-width:18ch;color:#fff;text-wrap:balance}
.contact-panel p{position:relative;opacity:1;max-width:46ch;margin:0 auto clamp(1.8rem,3.5vw,2.4rem)}
.quickform{position:relative;display:flex;align-items:stretch;gap:0;max-width:560px;margin:0 auto;border-radius:999px;overflow:hidden;box-shadow:0 20px 46px -20px rgba(0,45,61,.6);transition:box-shadow.45s var(--eo)}
.quickform:hover,.quickform:focus-within{box-shadow:0 20px 46px -20px rgba(0,45,61,.6),0 0 0 3px rgba(255,255,255,.65),0 0 0 11px rgba(255,255,255,.18)}
.qf-field{flex:1;min-width:0;display:flex;align-items:center;gap:.75rem;background:#fff;padding:.7rem 1rem.7rem 1.6rem}
.qf-field .qf-ic{flex:0 0 auto;color:var(--hero-deep);display:grid;place-items:center}
.qf-field .qf-ic svg{width:20px;height:20px}
.quickform input{flex:1;min-width:0;border:0;background:transparent;-webkit-appearance:none;appearance:none;font-family:"TT Commons","Poppins",Arial,sans-serif;font-size:1.06rem;color:#0b272f;padding:.55rem 0;outline:none}
.quickform input::placeholder{color:#5d6b6f}
.quickform input:focus-visible{outline:none}
.qf-ok{flex:0 0 auto;width:26px;height:26px;margin-left:.4rem;border-radius:50%;display:grid;place-items:center;background:var(--calm-soft);color:var(--hero-deep);opacity:0;transform:scale(.5);transition:opacity.35s var(--eo),transform.42s var(--eo)}
.qf-ok svg{width:15px;height:15px}
.qf-field.is-valid .qf-ok{opacity:1;transform:scale(1)}
.qf-send{flex:0 0 auto;align-self:stretch;border:0;border-radius:0;padding:1.05em 1.9em;box-shadow:none}
.qf-send:hover{transform:none;box-shadow:none}
.qf-send:disabled{opacity:.65;cursor:default}
.qf-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}
.contact-panel p.qf-gdpr,.qf-gdpr{position:relative;font-size:clamp(.72rem,3.1cqi,.78rem);opacity:1;margin:1.15rem auto 0;max-width:56ch;text-wrap:pretty}
.qf-gdpr a{text-decoration:underline;text-underline-offset:2px}
.contact-panel p.quick-note{font-size:1.08rem;font-weight:500;opacity:.96;margin:1rem auto 0;max-width:46ch}
.quick-note:empty{display:none;margin:0}
.contact-cta{container-type:inline-size}
.contact-info{position:relative;display:flex;flex-wrap:nowrap;justify-content:center;align-items:flex-start;gap:clamp(1rem,5cqi,4.5rem);margin-top:clamp(1.6rem,3vw,2.2rem)}
.ci-person{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;min-width:0}
.ci-name{font-family:"TT Commons","Poppins",Arial,sans-serif;font-weight:700;font-size:clamp(.78rem,calc(3.1cqi + .5px),1.05rem);letter-spacing:.01em;color:#fff;opacity:.95}
.contact-info a{display:inline-flex;align-items:center;gap:clamp(.34rem,1.8cqi,.6rem);font-family:"TT Commons","Poppins",Arial,sans-serif;font-weight:500;font-size:clamp(.42rem,calc(3.2cqi - 3px),.95rem);color:#fff;transition:opacity.3s;overflow-wrap:anywhere;max-width:100%}
.contact-info a:hover{opacity:.8}
.contact-info a:focus-visible{outline:3px solid #fff;outline-offset:3px;border-radius:8px}
.contact-info .ci{width:clamp(24px,6.4cqi,40px);height:clamp(24px,6.4cqi,40px);border-radius:clamp(8px,2.2cqi,12px);background:rgba(255,255,255,.16);display:grid;place-items:center;flex:0 0 auto}
.contact-info .ci svg{width:clamp(13px,3.3cqi,19px);height:clamp(13px,3.3cqi,19px)}
/* mobilní přepočet kontaktů (container + písmo na maximum šířky, 2 sloupce) žije v calc.css, sdílený pro všechny kopie panelu */
/* dvousloupcová varianta: CTA vlevo, karta kanceláře vpravo */
.contact-grid{position:relative;display:grid;grid-template-columns:1.2fr.8fr;gap:clamp(1.8rem,3.2vw,3.2rem);align-items:center;text-align:left}
.contact-grid>*{min-width:0}
.contact-grid h2{margin:0 0 .9rem;max-width:none;font-size:var(--fs-h2-panel)}
.contact-grid .contact-cta p{margin:0 0 clamp(1.2rem,2.4vw,1.7rem);max-width:42ch}
.contact-grid .quickform{margin:1.6rem 0 0}
.contact-grid .quick-note{margin-top:1rem}
.contact-grid .contact-info{margin-top:1.5rem}
.contact-grid .contact-cta p.qf-gdpr{max-width:none;margin:1.15rem 0 0} /* nedědit 42ch limit — věta se vejde na 1 řádek */
.contact-loc{position:relative;background:#fff;border-radius:var(--rl);padding:clamp(1.5rem,2.4vw,2rem);box-shadow:0 34px 70px -30px rgba(0,45,61,.55);color:var(--ink);text-align:left}
[data-theme="dark"] .contact-loc{background:var(--paper-3)}
.contact-loc .photo{border-radius:var(--r);overflow:hidden;aspect-ratio:16/10;margin-bottom:1.3rem}
.contact-loc .photo img{width:100%;height:100%;object-fit:cover}
.contact-loc h3{font-family:"TT Commons","Poppins",Arial,sans-serif;font-weight:700;font-size:var(--fs-h3);margin-bottom:.5rem;color:var(--serious)}
[data-theme="dark"] .contact-loc h3{color:var(--ink)}
.contact-loc .addr{font-style:normal;font-weight:600;font-size:1.18rem;line-height:1.45;color:var(--serious);margin-bottom:1.3rem}
[data-theme="dark"] .contact-loc .addr{color:var(--ink)}
.contact-loc .addr small{display:block;font-weight:500;font-size:.93rem;margin-top:.25rem;color:var(--support)}
.contact-loc .btn{width:100%;justify-content:center}
/* mapa se otevírá jako „bublina“ – scale-out z tlačítka, překryje kartu (1:1 z home.css) */
.map-toggle .mt-ic{transition:transform.4s var(--eo)}
.loc-map{position:absolute;inset:0;z-index:5;border-radius:var(--rl);overflow:hidden;background:var(--paper-2);box-shadow:0 30px 64px -26px rgba(0,45,61,.6);opacity:0;visibility:hidden;transform:scale(.72);transform-origin:50% 92%;transition:transform.44s var(--eo),opacity.34s var(--eo),visibility 0s linear.44s}
.loc-map.open{opacity:1;visibility:visible;transform:scale(1);transition:transform.44s var(--eo),opacity.34s var(--eo)}
.loc-map-frame{position:absolute;inset:0;background:var(--paper-2)}
.loc-map-frame iframe{width:100%;height:100%;border:0;display:block}
.loc-map-x{position:absolute;top:3.75rem;right:1rem;z-index:6;width:38px;height:38px;border-radius:50%;border:0;cursor:pointer;background:rgba(255,255,255,.96);box-shadow:0 8px 20px -8px rgba(0,45,61,.6);display:grid;place-items:center;color:var(--serious);transition:transform.3s var(--eo)}
.loc-map-x:hover{transform:scale(1.08)}
.loc-map-x svg{width:17px;height:17px}
@media(max-width:1180px){
  .contact-grid{grid-template-columns:1fr;text-align:center}
  .contact-grid .contact-cta p{margin-inline:auto}
  .contact-grid .quickform{margin-inline:auto}
  .contact-loc{text-align:center}
}
/* mikro-interakce 1:1 z home.css (zvonění telefonu, dýchání pillu, plující flek) */
.qf-field .qf-ic{transition:color.4s var(--eo),transform.5s var(--eo)}
.quickform:focus-within .qf-ic{transform:scale(1.08)}
@keyframes phoneRing{0%,100%{transform:rotate(0)}10%{transform:rotate(-13deg)}24%{transform:rotate(10deg)}38%{transform:rotate(-7deg)}52%{transform:rotate(5deg)}66%{transform:rotate(-3deg)}80%{transform:rotate(1deg)}}
@media(prefers-reduced-motion:no-preference){
  .qf-field:hover .qf-ic{animation:phoneRing .8s var(--eo) 1}
  .quickform:hover,.quickform:focus-within{animation:qfBreath 2.8s ease-in-out infinite}
  .contact-panel::before{animation:blobB 21s ease-in-out infinite}
}
@keyframes qfBreath{0%,100%{box-shadow:0 20px 46px -20px rgba(0,45,61,.6),0 0 0 3px rgba(255,255,255,.5),0 0 0 8px rgba(255,255,255,.12)}50%{box-shadow:0 20px 46px -20px rgba(0,45,61,.6),0 0 0 4px rgba(255,255,255,.62),0 0 0 13px rgba(255,255,255,.04)}}
@keyframes blobB{0%,100%{transform:translate(0,0) scale(1);opacity:.2}50%{transform:translate(-28px,26px) scale(1.12);opacity:.3}}


/* mobil: pole na telefon bylo na 390px jen 68px siroke (390px), tlacitko si bralo 137px.
   Stejna pravidla ma home.css v @media(max-width:620px), inline kopie je nemela. */
@media(max-width:620px){.quickform{border-radius:999px}.qf-field{padding:.7rem .5rem .7rem 1rem;gap:.45rem}.quickform input{font-size:1rem}.qf-send{padding:1em 1.15em}}

/* Fajfka validace rezervovala misto, i kdyz je nevidet (opacity:0). Na uzkem telefonu
   proto nezbylo na text „Telefonni cislo". Misto si bere teprve az svitit zacne. */
.qf-ok{width:0;margin-left:0;overflow:hidden;transition:width .35s var(--eo),margin-left .35s var(--eo),opacity .3s var(--eo),transform .3s var(--eo)}
.qf-field.is-valid .qf-ok{width:26px;margin-left:.4rem}

@media print{.tools-contact,.contact-panel{display:none!important}}
