/* 13-formularz-i-kontakt.css: Formularz „Napisz do nas”, plansza obok formularza, duże dane kontaktowe, kontakty do działów.
   Style globalne motywu QS GPS; zasady i spis plików w 01-tokeny.css. */

/* Formularz „Napisz do nas”: [qs_formularz] (parts/formularz.php). Obok formularza kolumna .form-aside.
   <div class="form-layout">[qs_formularz]<aside class="form-aside">…</aside></div>
   Pola zamówienia (.form__order) bez skryptu są widoczne; ze skryptem tylko po wybraniu „Zamówienie urządzenia”. */
.form-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:var(--gap-lg);align-items:start}
.form{position:relative;display:grid;gap:22px;padding:clamp(20px,3vw,36px);border-radius:var(--r);background:var(--white);border:1px solid var(--line)}
.form__temat,.form__choice,.form__check,.form__legend,.form__field>span{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}
.form__hp{position:absolute;top:0;left:0;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.form__group{display:grid;gap:12px;margin:0;padding:0;border:0;min-width:0}
.form__legend{padding:0;margin:0;color:var(--ink);font-weight:700;font-size:var(--fs-sm)}
.form__legend{float:left;width:100%} /* float: legenda w środku ramki, jako zwykły element siatki */
.form__order>.form__legend{font-size:1.1rem;font-weight:800}
.form__legend--duza{margin-bottom:2px;font-size:clamp(1.15rem,1.8vw,1.35rem);font-weight:800;letter-spacing:-.01em}
/* Wybór tematu: 4 kafelki 2 × 2 o stałej wysokości i szerokości (ikona, nazwa, opis w jednej linii); wybrany ma niebieską ramkę i niebieski kafelek ikony */
.form__tematy{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(78px,auto);gap:10px}
.form__temat{position:relative;display:block;cursor:pointer}
.form__temat input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.form__temat-box{display:flex;align-items:center;gap:14px;height:100%;padding:12px 16px;border-radius:var(--r-sm);background:var(--white);border:1px solid var(--line-strong);transition:border-color .2s,background .2s,box-shadow .2s}
.form__temat-ico{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:var(--r-xs);background:var(--pale);color:var(--blue);transition:background .2s,color .2s}
.form__temat-ico svg{width:24px;height:24px}
.form__temat strong{display:block;color:var(--ink);font-size:.95rem;line-height:1.3}
.form__temat small{display:block;margin-top:2px;color:var(--muted);font-size:var(--fs-xs);line-height:1.4}
.form__temat:hover .form__temat-box{border-color:var(--blue)}
.form__temat input:checked+.form__temat-box{background:var(--pale-2);border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}
.form__temat input:checked+.form__temat-box .form__temat-ico{background:var(--grad);color:var(--white)}
.form__temat input:focus-visible+.form__temat-box{outline:3px solid var(--focus);outline-offset:2px}
@media (max-width:600px){.form__tematy{grid-template-columns:minmax(0,1fr);grid-auto-rows:minmax(72px,auto)}}
.form__choices{display:flex;flex-wrap:wrap;gap:8px}
.form__choice{position:relative}
.form__choice input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.form__choice span{display:inline-flex;align-items:center;min-height:44px;padding:10px 18px;border-radius:var(--r-pill);background:var(--pale-2);border:1px solid var(--line-strong);color:var(--ink);font-weight:700;font-size:var(--fs-sm);transition:background .2s,border-color .2s,color .2s}
.form__choice input:checked+span{background:var(--blue);border-color:var(--blue);color:var(--white)}
.form__choice input:focus-visible+span{outline:3px solid var(--focus);outline-offset:2px}
.form__choices--small{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;border-radius:var(--r-pill);background:var(--white);border:1px solid var(--line-strong)}
.form__choices--small .form__choice span{justify-content:center;width:100%;min-height:40px;padding:8px 12px;border:0;background:transparent;white-space:nowrap}
.form__choices--small .form__choice input:checked+span{background:var(--blue);color:var(--white)}
.form__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap) 20px}
.form__field{display:grid;gap:6px;align-content:start}
.form__field>span{color:var(--ink);font-weight:600;font-size:var(--fs-sm)}
.form__field--wide{grid-column:1/-1}
.form input:not([type=radio]):not([type=checkbox]),.form select,.form textarea{width:100%;min-height:52px;padding:12px 16px;border:1px solid var(--line-strong);border-radius:var(--r-sm);font:inherit;color:var(--ink);background:var(--white)}
.form textarea{min-height:120px;resize:vertical}
.form ::placeholder{color:var(--placeholder);opacity:1} /* podpowiedzi „np. …” w każdym polu (właściciel 27.09), wyraźnie jaśniejsze od wpisanego tekstu */
.form input:focus,.form select:focus,.form textarea:focus{outline:3px solid var(--focus);outline-offset:1px;border-color:var(--blue)}
.form__order{padding:clamp(16px,2.5vw,24px);border-radius:var(--r-sm);background:var(--pale-2);border:1px solid var(--line)}
.js .form__order:not(.is-on){display:none}
.form__checks{display:grid;gap:12px}
.form__check{display:flex;align-items:center;gap:12px;font-size:var(--fs-sm);line-height:1.5;cursor:pointer}
.form input[type=checkbox]{appearance:none;-webkit-appearance:none;position:relative;flex:none;width:42px;height:24px;margin:0;border-radius:var(--r-pill);background:color-mix(in srgb,var(--muted) 45%,var(--white));cursor:pointer;transition:background .2s}
.form input[type=checkbox]::before{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--white);box-shadow:0 1px 3px var(--check-ring);transition:transform .2s}
.form input[type=checkbox]:checked{background:var(--blue)}
.form input[type=checkbox]:checked::before{transform:translateX(18px)}
.form input[type=checkbox]:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.form__check--dlugi{align-items:flex-start;margin-top:6px}.form__check--dlugi input{margin-top:1px}
.form__check a{display:inline-block;padding-block:2px;color:var(--blue);text-decoration:underline;text-underline-offset:3px}
.form__note{margin:0;padding:14px 18px;border-radius:var(--r-sm);font-weight:700;font-size:var(--fs-sm)}
.form__note--ok{background:var(--pale);border:1px solid var(--line-strong);color:var(--blue)}
.form__note--blad{background:var(--blad-tlo);border:1px solid var(--blad);color:var(--blad)}
.form__submit{justify-self:start}
/* Niebieska plansza obok formularza: kroki „Co dalej”, liczby firmy, telefon (.cta__row); bez mockupów */
.form-aside{position:sticky;top:calc(var(--header) + 16px);display:grid;gap:22px;padding:clamp(24px,3vw,36px);border-radius:var(--r-lg);background:var(--grad-cta);color:var(--on-dark);overflow:hidden}
.form-aside h2{color:var(--white);font-size:var(--fs-h3)}
.form-aside ol{display:grid;gap:14px;margin:0;padding:0;list-style:none;counter-reset:krok}
.form-aside ol[hidden]{display:none} /* kroki innego tematu */
.form-aside ol li{position:relative;padding-left:52px;counter-increment:krok;font-size:.95rem;line-height:1.5}
.form-aside ol li::before{content:counter(krok,decimal-leading-zero);position:absolute;left:0;top:0;display:grid;place-items:center;width:38px;height:38px;border-radius:var(--r-xs);background:var(--white);color:var(--blue);font-weight:800;font-size:.85rem}
.form-aside ol strong{display:block;color:var(--white)}
.form-aside__liczby{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap);margin:0;padding:18px 0 0;border-top:1px solid var(--on-dark-line);list-style:none}
.form-aside__liczby b{display:block;color:var(--white);font-size:1.5rem;font-weight:800;line-height:1.1;letter-spacing:-.02em}
.form-aside__liczby span{display:block;margin-top:4px;font-size:var(--fs-xs)}
.form-aside .more{color:var(--white)}
/* Kontakt na planszy: napis nad dwoma równymi wierszami (ikona + numer, ikona + e-mail) */
.form-aside__kontakt{display:grid;gap:8px;padding:18px 20px;border-radius:var(--r-md);background:var(--glass-soft);border:1px solid var(--glass-strong)}
.form-aside__kontakt p{margin-bottom:4px;color:var(--white);font-size:var(--fs-min);font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.form-aside__kontakt a{display:flex;align-items:center;gap:12px;width:fit-content;color:var(--white);font-weight:700;text-decoration:none}
.form-aside__kontakt a svg{flex:none;width:36px;height:36px;padding:8px;border-radius:var(--r-xs);background:var(--white);color:var(--blue)}
.form-aside__kontakt a:hover{text-decoration:underline;text-underline-offset:3px}
@media (max-width:900px){.form-aside{position:static}}
/* Duże dane kontaktowe (Kontakt), typografia jak w stopce: <div class="contact-big"><div><p class="contact-big__label">Telefon</p><a class="contact-big__main" …>…</a><a class="contact-big__small" …>…</a></div>…</div> */
.contact-big{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-radius:var(--r-lg);background:var(--white);border:1px solid var(--line)}
.contact-big>div{display:grid;align-content:start;gap:4px;padding:clamp(22px,3vw,34px)}
.contact-big>div+div{border-left:1px solid var(--line)}
.contact-big__label{display:flex;align-items:center;gap:10px;margin-bottom:6px;color:var(--blue);font-size:var(--fs-min);font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.contact-big__label svg{width:20px;height:20px}
.contact-big__main{width:fit-content;font-size:clamp(1.3rem,2.2vw,1.8rem);font-weight:800;letter-spacing:-.02em;line-height:1.2;color:var(--ink);text-decoration:none}
.contact-big__small{width:fit-content;padding-block:3px;font-weight:600;color:var(--text);text-decoration:none}
.contact-big a:hover{color:var(--blue)}
.contact-big--male .contact-big__main{font-size:clamp(1rem,1.4vw,1.15rem)} /* mniejszy tekst, np. dane w nagłówku strony prawnej */
.contact-big--male .contact-big__main a{display:inline-block;padding-block:3px;color:var(--blue);text-decoration:none}
.contact-big--2{grid-template-columns:repeat(2,minmax(0,1fr))} /* dwie pozycje, np. telefon i e-mail na Logowaniu */
.page-hero .contact-big{margin-top:clamp(28px,4vw,40px)}
@media (max-width:900px){.contact-big{grid-template-columns:minmax(0,1fr)}.contact-big>div+div{border-left:0;border-top:1px solid var(--line)}}
@media (max-width:900px){.form-layout{grid-template-columns:minmax(0,1fr)}}
@media (max-width:600px){.form__grid{grid-template-columns:minmax(0,1fr)}.form__submit{justify-self:stretch;justify-content:center}}
/* Kontakty do działów: karty tej samej wysokości, jedna osoba i jeden numer na kartę, e-mail zawsze na dole (w jednej linii we wszystkich kartach).
   <ul class="people"><li class="person"><span class="person__ico">[qs_ikona nazwa="…"]</span><p class="person__dzial">Dział</p><p class="person__who">Imię</p><a class="person__tel" href="tel:…">[qs_ikona nazwa="ui-telefon"]…</a><a class="person__mail" href="mailto:…">[qs_ikona nazwa="ui-email"]…</a></li></ul> */
.people{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap);margin:0;padding:0;list-style:none}
.person{--akcent:var(--akcent-niebieski);position:relative;display:flex;flex-direction:column;gap:4px;padding:26px 22px 22px;border-radius:var(--r);background:var(--white);border:1px solid var(--line);overflow:hidden;transition:transform .25s,border-color .25s}
.person::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:var(--akcent)}
.person:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--akcent) 40%,var(--line))}
.person__ico{display:grid;place-items:center;width:52px;height:52px;margin-bottom:14px;border-radius:var(--r-sm);background:color-mix(in srgb,var(--akcent) 12%,var(--white));color:var(--akcent)}
.person__ico svg{width:28px;height:28px}
.person__dzial{color:var(--akcent);font-size:var(--fs-min);font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.person__who{margin-bottom:12px;color:var(--ink);font-weight:800;font-size:var(--fs-h3);line-height:1.3}
.person a{display:flex;align-items:center;gap:10px;min-height:36px;color:var(--ink);font-weight:700;text-decoration:none;white-space:nowrap}
.person a svg{flex:none;width:18px;height:18px;color:var(--akcent)}
.person a:hover{color:var(--blue)}
.person a.person__mail{margin-top:auto;padding-top:12px;border-top:1px solid var(--line);color:var(--akcent);font-weight:600;font-size:var(--fs-sm)} /* po .person a:hover: e-mail zostaje w kolorze akcentu */
.person__tel+.person__mail{margin-top:auto}
@media (max-width:1000px){.people{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){.people{grid-template-columns:minmax(0,1fr)}}
