/* WordPress integration layer for the approved GORKE frontend. */
.brand-header{font-size:23px}.brand-header .brand-mark{width:47px;height:47px;border-radius:13px 13px 5px 13px}.brand-header .brand-mark:after{width:9px;height:9px}.brand-logo-image{width:auto;object-fit:contain}.brand-logo-image-header{max-width:190px;max-height:54px}.about-brand{min-height:90px;display:inline-flex;align-items:center;justify-content:center;gap:20px;margin:0 auto 25px;color:var(--navy);font-size:43px;font-weight:900;letter-spacing:.04em;line-height:.85}.about-brand .brand-mark{width:76px;height:76px;border-radius:21px 21px 7px 21px}.about-brand .brand-mark:after{width:14px;height:14px;right:9px;top:9px;border-width:3px}.about-brand small{display:block;margin-top:12px;color:var(--muted);font-size:13px;letter-spacing:.28em}.brand-logo-image-about{max-width:min(360px,80vw);max-height:110px}
body.admin-bar .topline{top:32px}body.admin-bar .header{top:calc(32px + var(--topline-h))}
.language-switcher a,.language-switcher span,.language-switcher button{min-width:27px;height:30px;display:grid;place-items:center;padding:0 5px;color:var(--muted);background:transparent;border:0;border-radius:7px;font-size:10px;font-weight:850;cursor:pointer}
.language-switcher .is-active{color:#fff;background:var(--navy)}
.product-photo{height:520px;display:flex;align-items:center;justify-content:center;padding:30px;background:#fff;border:1px solid var(--line);border-radius:25px}
.product-photo img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.document-unavailable{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 0;color:var(--muted);border-bottom:1px solid var(--line)}
.document-unavailable b,.document-unavailable small{display:block}.document-unavailable small{font-size:10px}
.wp-content{max-width:900px}.wp-content h2,.wp-content h3{color:var(--navy)}.wp-content a{color:var(--blue);text-decoration:underline}
.gorke-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.form-message{grid-column:1/-1;margin:0 0 16px;padding:12px 14px;border-radius:10px;font-weight:750}.form-message.success{color:#17613b;background:#eaf8f0}.form-message.error{color:#9b2c38;background:#fff0f1}
.featured-card{min-width:0;overflow:hidden;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--radius);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.featured-card:hover{border-color:rgba(45,98,220,.35);box-shadow:var(--shadow);transform:translateY(-6px)}
.featured-card-image{height:235px;position:relative;overflow:hidden;display:flex;flex:0 0 auto;align-items:center;justify-content:center;padding:18px;background:#fff;border-bottom:1px solid var(--line)}.featured-card-image>img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.featured-card-image>.device-visual{width:100%;flex:1 1 auto;align-self:stretch;min-height:0}.featured-status{position:absolute;left:16px;top:16px;z-index:3;padding:6px 10px;color:#fff;background:var(--blue);border-radius:999px;box-shadow:0 7px 18px rgba(9,24,71,.14);font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.featured-status.is-new{color:var(--navy);background:#8be3ec}.featured-status.is-promoted{background:var(--blue)}
.featured-card-body{height:100%;display:flex;flex-direction:column;padding:24px}.featured-card-body h3{margin:8px 0 2px;color:var(--navy);font-size:1.7rem;letter-spacing:-.04em}.featured-card-body .card-name{min-height:28px;margin:0 0 10px;color:var(--navy)}.featured-card-body>p{margin:0 0 17px;color:var(--muted);font-size:var(--text-body);line-height:var(--leading-body)}.featured-card .spec-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:auto}.featured-card .spec-row span{padding:5px 8px;background:var(--soft);border-radius:7px;font-size:10px}.featured-card-body>a{display:flex;align-items:center;justify-content:space-between;margin-top:20px;padding-top:15px;color:var(--blue);border-top:1px solid var(--line);font-weight:850}
.product-gallery-thumbs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}.product-gallery-thumbs a{height:125px;display:flex;align-items:center;justify-content:center;padding:8px;background:#fff;border:1px solid var(--line);border-radius:12px}.product-gallery-thumbs img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.catalog-card-image{height:220px;display:flex;align-items:center;justify-content:center;padding:18px;background:#fff;border-bottom:1px solid var(--line)}.catalog-card-image img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.nav-search-link{padding:9px 10px;color:var(--blue);background:transparent;border:0;border-radius:9px;font-size:14px;font-weight:800;cursor:pointer}.nav-search-link:hover{background:var(--soft)}
.compare-page .compare-dock{display:none}
.about-section{position:relative;overflow:hidden;background:linear-gradient(180deg,#f8fafd,#f0f5fb)}.about-section:after{width:360px;height:360px;position:absolute;right:-220px;top:-220px;content:"";border:1px solid rgba(45,98,220,.1);border-radius:50%;box-shadow:0 0 0 55px rgba(45,98,220,.025)}.about-editorial{max-width:1040px;position:relative;z-index:1;text-align:center}.about-editorial .eyebrow{justify-content:center}.about-editorial h2{margin:0;color:var(--navy)}.about-text{display:grid;grid-template-columns:1fr 1fr;gap:46px;margin:38px 0 0;padding-top:33px;border-top:1px solid rgba(9,24,71,.12);text-align:left}.about-text p{margin:0;color:#465570;font-size:var(--text-body);line-height:var(--leading-body)}.about-action{display:inline-flex;align-items:center;justify-content:center;min-height:48px;margin-top:34px;padding:11px 18px;color:#fff;background:var(--blue);border-radius:11px;font-size:14px;font-weight:800;transition:.2s ease}.about-action:hover{background:var(--navy);transform:translateY(-2px)}.promoted-products-section{background:#fff}.home-catalog-section{background:linear-gradient(180deg,#f6f9fd,#edf4fb)}
@media(max-width:782px){body.admin-bar .topline{top:46px}body.admin-bar .header{top:calc(46px + var(--topline-h))}}
/* A low window — a landscape phone, or 400% zoom, where the top bar and the header took 42% of the screen (WCAG 1.4.10) — keeps nothing stuck to its top: the bar and the header scroll away with the page, and so do the panels that would have stood under them. After the admin-bar rules above, which it has to outrank. */
@media(max-height:500px){.topline,.header,body.admin-bar .topline,body.admin-bar .header{position:relative;top:auto}.filters-panel,.enquiry-side,.installer-application-copy{position:static}html{scroll-padding-top:16px}}
@media(max-width:760px){.product-photo{height:340px}.product-gallery-thumbs{grid-template-columns:repeat(2,minmax(0,1fr))}.featured-card-image{height:220px}.nav.is-open{max-height:calc(100dvh - 88px - var(--topline-h));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.installer-benefit-grid article{min-height:215px}.installer-benefit-grid h3{margin-top:30px}.about-brand{min-height:70px;gap:15px;margin-bottom:21px;font-size:34px}.about-brand .brand-mark{width:60px;height:60px}.about-brand .brand-mark:after{width:11px;height:11px;right:7px;top:7px;border-width:2px}.about-brand small{margin-top:9px;font-size:10px}.about-text{grid-template-columns:1fr;gap:18px;margin-top:29px;padding-top:25px}}
@media(max-width:480px){.brand-header{font-size:18px}.brand-header .brand-mark{width:39px;height:39px}.brand-logo-image-header{max-width:150px;max-height:43px}}
@media(max-width:360px){.nav-wrap{gap:8px}.brand-header{font-size:16px}.brand-header small{letter-spacing:.16em}.brand-logo-image-header{max-width:126px}.language-switcher{gap:0}.language-switcher a,.language-switcher span,.language-switcher button{min-width:24px}.menu-button{width:42px;height:42px}}

/* 1.5.13 — quiet installer quick links above the search */
[data-product-card]{cursor:pointer}
[data-product-card] .product-title-link{color:inherit;transition:color .18s ease}
[data-product-card]:hover .product-title-link,[data-product-card]:focus-within .product-title-link{color:var(--blue)}
.catalog-card{transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.catalog-card:hover{border-color:rgba(45,98,220,.35);box-shadow:var(--shadow);transform:translateY(-5px)}

.language-switcher{position:relative;display:block;margin:0;padding:0;background:transparent;border:0;border-radius:0}
.language-switcher .language-current{min-width:54px;height:44px;display:flex;align-items:center;justify-content:center;gap:5px;padding:4px 8px;color:var(--navy);background:var(--soft);border:1px solid var(--line);border-radius:11px;font-size:20px;cursor:pointer;transition:.18s ease}
.language-switcher .language-current:hover,.language-switcher.is-open .language-current{background:#fff;border-color:rgba(45,98,220,.38);box-shadow:0 8px 24px rgba(9,24,71,.1)}
.language-switcher .language-flag{min-width:0;padding:0;font-size:20px;line-height:1}
.language-switcher .nav-chevron{width:12px;height:12px}
.language-switcher.is-open .nav-chevron{transform:rotate(180deg)}
.language-options{width:132px;position:absolute;right:0;top:calc(100% + 10px);z-index:120;padding:8px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 55px rgba(9,24,71,.18)}
.language-options[hidden]{display:none}
.language-options a{min-height:46px;display:flex;align-items:center;gap:12px;padding:7px 14px;color:var(--navy);border-radius:9px}
.language-options .language-code{min-width:0;height:auto;display:block;padding:0;color:inherit;font-size:14px;font-weight:800;letter-spacing:.06em}
.language-options a:hover{color:var(--blue);background:var(--soft)}
.language-options a.is-active{color:#fff;background:var(--navy)}.language-options .language-check{min-width:0;height:auto;margin-left:auto;padding:0;color:inherit;font-size:14px;font-weight:800}

.nav-product-search{width:180px;position:relative;display:flex;align-items:center;margin-left:5px;background:#fff;border:1px solid #7d879b;border-radius:12px;transition:width .22s ease,border-color .22s ease,box-shadow .22s ease}
.nav-product-search:focus-within{width:270px;border-color:var(--blue);box-shadow:0 0 0 1px var(--blue),0 10px 28px rgba(9,24,71,.1)}
.nav-product-search>button{width:45px;height:42px;display:grid;place-items:center;flex:0 0 auto;padding:0;color:var(--blue);background:transparent;border:0;cursor:pointer}
.nav-product-search svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.nav-product-search>input{width:100%;min-width:0;height:42px;padding:0 12px 0 0;color:var(--navy);background:transparent;border:0;outline:0;font-size:12px;font-weight:650}
.nav-product-search>input::placeholder{color:var(--muted)}
.nav-search-suggestions{width:390px;position:absolute;right:0;top:calc(100% + 9px);z-index:125;overflow:hidden;padding:7px;background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 24px 65px rgba(9,24,71,.2)}
.nav-search-suggestions[hidden]{display:none}
.nav-search-suggestions>a{min-height:69px;display:grid;grid-template-columns:56px 1fr;align-items:center;gap:12px;padding:7px!important;color:var(--navy)!important;border-radius:10px}
.nav-search-suggestions>a:hover,.nav-search-suggestions>a.is-active{background:var(--soft)!important}.nav-search-suggestions>a.is-active{box-shadow:inset 0 0 0 2px var(--blue)}
.nav-search-suggestions img,.nav-result-placeholder{width:56px;height:54px;display:grid;place-items:center;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:9px;color:var(--blue);font-size:11px;font-weight:900}
.nav-search-suggestions strong,.nav-search-suggestions small,.nav-search-suggestions em{display:block}
.nav-search-suggestions strong{font-size:13px}.nav-search-suggestions small{overflow:hidden;color:var(--muted);font-size:11px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.nav-search-suggestions em{color:var(--blue);font-size:9px;font-style:normal;font-weight:800}
.nav-search-suggestions>p{margin:0;padding:17px;color:var(--muted);font-size:12px;text-align:center}

.home-catalog-filters{display:grid;grid-template-columns:minmax(220px,1.5fr) minmax(180px,1fr) minmax(160px,.8fr) auto;align-items:end;gap:12px;margin:28px 0 14px;padding:16px;background:#fff;border:1px solid var(--line);border-radius:17px;box-shadow:0 13px 36px rgba(9,24,71,.06)}
.home-catalog-filters label>span{display:block;margin:0 0 6px;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.home-catalog-filters input,.home-catalog-filters select{width:100%;height:48px;padding:0 13px;color:var(--navy);background:var(--soft);border:1px solid #7d879b;border-radius:10px;outline:0}
.home-catalog-filters input:focus,.home-catalog-filters select:focus{background:#fff;border-color:var(--blue)}
.home-catalog-filters .primary-action{height:48px;border:0;cursor:pointer;white-space:nowrap}
.home-catalog-result{margin:0 0 20px;color:var(--muted);font-size:12px}.home-catalog-result strong{color:var(--blue);font-size:18px}
.category-grid{grid-template-columns:repeat(3,minmax(0,1fr))}

.comparison-table thead th{height:auto;min-height:300px}
.comparison-product-image{height:130px;display:flex;align-items:center;justify-content:center;margin:-3px -3px 12px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:11px}
.comparison-product-image img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.comparison-product-image.is-placeholder span{color:var(--blue);font-size:13px;font-weight:900}
.comparison-product-title{display:block;color:var(--navy)}
.comparison-product-title:hover strong,.comparison-product-title:hover small{color:var(--blue)}
.comparison-table thead .comparison-product-title strong{margin-top:7px}
.comparison-features{margin:0;padding:0;list-style:none}.comparison-features li{margin-bottom:5px;padding-left:14px;position:relative}.comparison-features li:before{position:absolute;left:0;color:var(--blue);content:'✓'}
.comparison-document{display:inline-flex;align-items:center;gap:7px;padding:7px 9px;color:var(--blue);background:var(--ice);border-radius:8px;font-weight:850}
.comparison-unavailable{color:#9099aa;font-size:10px}
.comparison-actions a{display:inline-flex;padding:8px 10px;color:#fff;background:var(--blue);border-radius:8px}

@media(max-width:1180px){.nav-wrap{gap:12px}.nav a,.nav-menu-trigger{padding-inline:6px}.nav-product-search{width:170px}.nav-product-search:focus-within{width:220px}.brand-logo-image-header{max-width:165px}}
@media(max-width:1060px){.nav.is-open{max-height:calc(100dvh - 110px - var(--topline-h));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.nav.is-open .nav-product-search{width:100%;margin:5px 0 0}.nav.is-open .nav-product-search:focus-within{width:100%}.nav-search-suggestions{left:0;right:auto;width:min(390px,100%)}.home-catalog-filters{grid-template-columns:1fr 1fr}.home-catalog-filters .primary-action{width:100%}}
@media(max-width:760px){.language-switcher{margin-left:auto}.language-switcher .language-current{min-width:48px;height:42px}.language-options{position:fixed;right:20px;top:calc(82px + var(--topline-h))}.category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-catalog-filters{grid-template-columns:1fr}.home-catalog-filters .primary-action{min-height:48px}.comparison-table thead th{min-width:190px}.comparison-product-image{height:115px}}
@media(max-width:480px){.category-grid{grid-template-columns:1fr}.nav-search-suggestions{width:calc(100vw - 40px)}}
/* Przełącznik języka stoi za koszykiem, na samym prawym skraju strony, 24 px od krawędzi
   — poza kolumną treści, w jej marginesie. Wyszukiwarka zajmuje miejsce, które przełącznik
   zwolnił (180 px + 26 px odstępu + 54 px przycisku = 260 px), a zaczyna się tam, gdzie
   zawsze. Mieści się to od 1440 px, gdy margines ma 100 px; węższy ekran zostawia
   przełącznik w nagłówku, zaraz za koszykiem. .wrap ma position:relative, więc odległość od
   krawędzi okna liczy się od prawego brzegu kolumny: (100% − 100vw) / 2. */
@media(min-width:1440px){.language-switcher{position:absolute;top:50%;right:calc((100% - 100vw) / 2 + 24px);transform:translateY(-50%)}.nav-product-search{width:260px}.nav-product-search:focus-within{width:300px}}

/* 1.5.14 — one complete product-filter pattern across entry pages */
.home-catalog-filters.unified-product-filters,.installer-hero-search.unified-product-filters{grid-template-columns:minmax(235px,1.5fr) minmax(145px,.8fr) minmax(130px,.7fr) minmax(125px,.65fr) minmax(145px,.75fr) auto}
.unified-product-filters .unified-filter-features{min-width:0;grid-column:1/-1;margin:2px 0 0;padding:9px 12px 12px;border:1px solid var(--line);border-radius:12px}
.unified-product-filters .unified-filter-features legend{padding:0 6px;color:var(--navy);font-size:10px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}
.unified-product-filters .unified-filter-features>small{display:block;margin:0 0 8px;color:var(--muted);font-size:10px}
.unified-product-filters .unified-filter-features>div{display:flex;flex-wrap:wrap;gap:7px}
.unified-product-filters .unified-filter-features label{min-height:34px;display:inline-flex;align-items:center;gap:7px;padding:7px 10px;color:var(--navy);background:var(--soft);border:1px solid transparent;border-radius:9px;font-size:11px;font-weight:800;cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .18s ease}
.unified-product-filters .unified-filter-features label:hover{background:#fff;border-color:rgba(45,98,220,.3);transform:translateY(-1px)}
.unified-product-filters .unified-filter-features label>span,.home-catalog-filters.unified-product-filters .unified-filter-features label>span{display:inline;margin:0;color:inherit;font-size:inherit;font-weight:inherit;letter-spacing:0;text-transform:none}
.home-catalog-filters.unified-product-filters .unified-filter-features input[type=checkbox]{width:16px;height:16px;flex:0 0 auto;margin:0;padding:0;accent-color:var(--blue)}
.installer-hero-search.unified-product-filters .unified-filter-features{border-color:rgba(255,255,255,.2)}
.installer-hero-search.unified-product-filters .unified-filter-features legend{color:#fff}
.installer-hero-search.unified-product-filters .unified-filter-features>small{color:rgba(255,255,255,.65)}
.installer-hero-search.unified-product-filters .unified-filter-features label{color:#fff;background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.12)}
.installer-hero-search.unified-product-filters .unified-filter-features label:hover{background:rgba(255,255,255,.18);border-color:rgba(139,227,236,.5)}
.installer-hero-search.unified-product-filters .unified-filter-features input{width:16px;height:16px;margin:0;accent-color:#8be3ec}
.installer-hero-search.unified-product-filters .installer-search-suggestions{top:calc(100% - 7px)}
@media(max-width:1120px){.home-catalog-filters.unified-product-filters,.installer-hero-search.unified-product-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.home-catalog-filters.unified-product-filters>label:first-child,.installer-hero-search.unified-product-filters>.installer-hero-query{grid-column:1/-1}.home-catalog-filters.unified-product-filters>button,.installer-hero-search.unified-product-filters>button{width:100%}}
@media(max-width:760px){.home-catalog-filters.unified-product-filters,.installer-hero-search.unified-product-filters{grid-template-columns:1fr}.home-catalog-filters.unified-product-filters>label:first-child,.installer-hero-search.unified-product-filters>.installer-hero-query{grid-column:auto}.unified-product-filters .unified-filter-features>div{display:grid;grid-template-columns:1fr 1fr}.unified-product-filters .unified-filter-features label{width:100%}}
@media(max-width:420px){.unified-product-filters .unified-filter-features>div{grid-template-columns:1fr}}

/* 1.5.15 — installer shortcuts belong to the all-in-one resources section */
.installer-resource-paths{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin:28px 0 24px}
.installer-resource-paths a{min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;color:#fff;background:#091847;border:1px solid #091847;border-radius:13px;box-shadow:0 11px 27px rgba(9,24,71,.14);font-size:13px;font-weight:900;line-height:1.25;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}
.installer-resource-paths a:hover,.installer-resource-paths a:focus-visible{color:#fff;background:#172b5e;border-color:#172b5e;box-shadow:0 16px 38px rgba(9,24,71,.2);transform:translateY(-3px)}
.installer-resource-paths a span{color:#8be3ec;font-size:18px}
@media(max-width:900px){.installer-resource-paths{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.installer-resource-paths{grid-template-columns:1fr}.installer-resource-paths a{min-height:60px}}
.gorke-lightbox{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:32px;background:rgba(9,24,71,.88);backdrop-filter:blur(2px)}
.gorke-lightbox[hidden]{display:none}
.gorke-lightbox figure{max-width:min(1100px,92vw);max-height:88vh;margin:0;display:grid;place-items:center}
.gorke-lightbox img{max-width:100%;max-height:88vh;width:auto;height:auto;object-fit:contain;background:#fff;border-radius:14px;box-shadow:0 24px 70px rgba(0,0,0,.45)}
.gorke-lightbox-close{position:absolute;top:18px;right:22px;width:44px;height:44px;display:grid;place-items:center;color:#fff;background:rgba(255,255,255,.14);border:0;border-radius:12px;font-size:26px;line-height:1;cursor:pointer}
.gorke-lightbox-close:hover{background:rgba(255,255,255,.24)}
.gorke-lightbox-close:focus-visible{outline:2px solid #fff;outline-offset:3px}
body.gorke-lightbox-open{overflow:hidden}
/* Strzałki po bokach ekranu. Nakładka jest tu siatką, nie rzędem jak w site.css, więc
   bez tego stawały nad i pod zdjęciem. */
.gorke-lightbox-step{position:absolute;top:50%;z-index:1;transform:translateY(-50%)}
.gorke-lightbox-step[data-step="-1"]{left:22px}
.gorke-lightbox-step[data-step="1"]{right:22px}

/* 1.9.5 — jedna para akcji na karcie, białe pola zdjęć, zdjęcie mieszczące się w polu */

/* Porównaj i Dodaj do zapytania stoją obok siebie i wyglądają tak samo.
   `.card-tools` przed `.configurator-add-inline` jest konieczne: reguła
   `.catalog-card button` w site.css ma specyficzność (0,1,1) i bez tego
   wygrywa z samą klasą (0,1,0), przez co przycisk wracał do wyglądu
   linku na całą szerokość karty. */
.card-topline{flex-wrap:wrap}
.card-tools{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.card-tools .compare-toggle,.card-tools .configurator-add-inline{min-height:36px;display:inline-flex;align-items:center;gap:7px;margin:0;width:auto;padding:8px 13px;color:var(--navy);background:var(--ice);border:1px solid rgba(45,98,220,.22);border-radius:10px;font-size:12px;font-weight:800;line-height:1.15;white-space:nowrap;cursor:pointer;transition:color .18s ease,background .18s ease,border-color .18s ease}
.card-tools .compare-toggle input{width:15px;height:15px;flex:0 0 auto;margin:0;accent-color:var(--blue)}
.card-tools .compare-toggle:hover,.card-tools .configurator-add-inline:hover,.card-tools .configurator-add-inline:focus-visible{color:#fff;background:var(--blue);border-color:var(--blue)}
.card-tools .compare-toggle:has(input:checked){color:#fff;background:var(--navy);border-color:var(--navy)}

/* Ta sama para, w większym rozmiarze, na stronie produktu. */
.product-actions .compare-toggle-large,.product-actions .configurator-add-large{min-height:52px;display:inline-flex;align-items:center;gap:9px;margin:0;padding:13px 20px;color:var(--navy);background:var(--ice);border:1px solid rgba(45,98,220,.22);border-radius:11px;font-size:14px;font-weight:850}
.product-actions .compare-toggle-large input{width:17px;height:17px;flex:0 0 auto;margin:0;accent-color:var(--blue)}
.product-actions .compare-toggle-large:hover,.product-actions .configurator-add-large:hover,.product-actions .configurator-add-large:focus-visible{color:#fff;background:var(--blue);border-color:var(--blue)}
.product-actions .compare-toggle-large:has(input:checked){color:#fff;background:var(--navy);border-color:var(--navy)}
.product-actions .primary-action{min-height:52px}
/* Strona główna od września 2026. Kilka pól treści ma teraz po kilka akapitów, a jedno —
   prawa kolumna „O nas” — listę; wszystkie przechodzą przez gorke_theme_render_prose(),
   więc dostają zwykłe <p> i <ul> bez klas i style trzeba im nadać od zewnątrz. Szybki
   wybór to odnośniki, nie przyciski. Pasek katalogu pod kartami zastosowań ma własny blok
   z tego samego powodu co .group-info-cta: `.section-head a` bije `.primary-action`. */
.hero-details{max-width:720px;margin:0 0 30px}
.hero-details p{margin:0 0 10px;color:var(--muted);font-size:var(--text-body);line-height:var(--leading-body)}
.popular a{color:var(--blue);font-weight:800}
.section-lead{max-width:720px;margin-top:22px}
.section-lead p{margin:0 0 10px;color:var(--muted);font-size:var(--text-body);line-height:var(--leading-body)}
.about-text ul{margin:0;padding-left:22px;color:#465570;font-size:var(--text-body);line-height:var(--leading-body)}
.about-conclusion{max-width:760px;margin:34px auto 0;color:var(--navy);font-size:var(--text-body);line-height:var(--leading-body)}
.home-catalog-cta{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:28px 32px;background:#fff;border:1px solid var(--line);border-radius:21px}
.home-catalog-cta h3{margin:0 0 6px;color:var(--navy);font-size:clamp(1.25rem,2vw,1.6rem);letter-spacing:-.03em}
.home-catalog-cta p{max-width:640px;margin:0;color:var(--muted);font-size:var(--text-body);line-height:var(--leading-body)}
.home-catalog-cta .primary-action{flex:0 0 auto}
.home-project-result{max-width:none;margin:28px 0 0;color:var(--navy);font-size:var(--text-body);line-height:var(--leading-body)}
.project-form-more{display:inline-block;justify-self:start;margin:-8px 0 0;color:var(--blue);font-size:13px;font-weight:400;line-height:1.55}
.footer-grid>div>span{margin:8px 0}
.hero-details p:last-child{margin-bottom:0}
.section-lead p:last-child{margin-bottom:0}
.about-text>div>p+p,.about-text>div>ul+p{margin-top:18px}
.about-text>div>p+ul{margin-top:8px}
@media(max-width:760px){.home-catalog-cta{align-items:stretch;flex-direction:column;padding:24px}.home-catalog-cta .primary-action{width:100%}}
/* Górna sekcja strony głównej. Wstęp i kolejne akapity mają jeden krój i jeden stopień
   pisma, więc czytają się jako jeden tekst. Kolumna z tekstem jest odrobinę szersza, żeby
   szybki wybór mieścił się w jednym wierszu od 1280 px, a grafika stoi przy nagłówku
   zamiast na środku wysokiej kolumny. */
.hero-copy .lead{margin:22px 0 10px}
.hero-search{gap:4px;padding:6px;border-radius:14px;box-shadow:0 12px 34px rgba(9,24,71,.08)}
.hero-search .hero-search-icon{width:40px;display:grid;place-items:center;flex:0 0 auto;margin-left:4px;font-size:0}
.hero-search-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
#hero-query{height:46px;font-size:15px;text-overflow:ellipsis}
#hero-query::placeholder{color:var(--muted)}
.hero-search button{min-height:46px;padding:0 18px;border-radius:10px;font-size:14px;white-space:nowrap}
.popular{gap:8px 14px;margin-top:18px;font-size:12px}
.popular>*{white-space:nowrap}
@media(min-width:1061px){.hero-grid{grid-template-columns:1.1fr .9fr}}
/* Pasek zaufania. Symbol ma kształt znaku GORKE — kwadratowy granatowy kafel z ostrzejszym
   prawym dolnym rogiem i turkusową kropką — a jednostkę, jeśli jest, pod liczbą, tak jak
   ELECTRONIC pod GORKE. Tytuł stoi obok kafla i mieści do trzech wierszy w jego wysokości,
   więc opisy zaczynają się na jednej linii bez względu na to, jak zawinie się tytuł. */
.trust .trust-grid>div{display:grid;grid-template-columns:auto minmax(0,1fr);align-content:start;align-items:center;gap:14px 16px}
.trust-grid b{width:64px;height:64px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;background:var(--navy);border-radius:16px 16px 5px;box-shadow:0 10px 24px rgba(9,24,71,.16);font-size:17px;font-weight:900;line-height:1;letter-spacing:.01em;white-space:nowrap}
.trust-grid b:after{width:8px;height:8px;position:absolute;right:6px;top:6px;content:"";background:var(--cyan);border:2px solid var(--navy);border-radius:50%}
.trust-grid .trust-unit{margin-top:5px;font-size:9.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.trust-grid .trust-title{font-size:15px;line-height:1.3;text-wrap:balance}
.trust-grid .trust-note{grid-column:1/-1;font-size:var(--text-body);line-height:var(--leading-body)}
@media(min-width:761px){.trust-grid>div{padding:26px clamp(18px,2.2vw,30px)}.trust-grid>div:last-child{padding-right:0}}
@media(min-width:761px) and (max-width:1060px){.trust-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.trust-grid>div:nth-child(odd){padding-left:0}.trust-grid>div:nth-child(even){padding-right:0;border-right:0}.trust-grid>div:nth-child(-n+2){border-bottom:1px solid var(--line)}}
/* Sekcja „O nas”. Wstęp pod nagłówkiem i nagłówki obu kolumn to osobne pola treści;
   nagłówki kolumn mają krój małych nagłówków strony (wersaliki, rozstrzelone), więc
   tekst w polu zostaje zwykłym zdaniem. Pole wyczyszczone w panelu nie zostawia pustego
   odstępu — stąd :empty, bez warunku w szablonie. */
.about-lead{max-width:780px;margin:20px auto 0;color:var(--muted);font-size:var(--text-body);line-height:var(--leading-body)}
.about-column-title{margin:0 0 16px;color:var(--blue);font-size:13px;font-weight:850;letter-spacing:.12em;line-height:1.45;text-transform:uppercase}
.about-lead:empty,.about-column-title:empty{display:none}
@media(max-width:760px){.about-text{gap:34px}}
/* Jeden stopień pisma dla tekstu ciągłego. Wstępy, akapity sekcji, opisy na kartach
   i wyróżnione zdania biorą rozmiar z --text-body i --leading-body (:root w site.css),
   więc zmienia się go w jednym miejscu. Inny rozmiar mają tylko nagłówki i elementy
   interfejsu: małe nagłówki, przyciski, etykiety, znaczniki, stopka. */
/* „Najczęściej zamawiane urządzenia”. Wstęp biegnie przez całą szerokość strony, a odnośnik
   do katalogu stoi na wysokości nagłówka. Dziecko .section-head ma display:contents, żeby
   nagłówek, wstęp i odnośnik były w jednej siatce — na telefonie zostaje zwykła kolumna. */
.promoted-products-section .section-lead{max-width:none}
@media(min-width:761px){.promoted-products-section .section-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:0 35px}.promoted-products-section .section-head>div{display:contents}.promoted-products-section .section-head .eyebrow{grid-area:1/1}.promoted-products-section .section-head h2{grid-area:2/1}.promoted-products-section .section-head>a{grid-area:2/2}.promoted-products-section .section-lead{grid-area:3/1/4/3}}
/* Karta bez zasięgu nie pokazuje pustej plakietki, a nazwa grupy zawsze stoi nad
   przyciskami — inaczej krótka nazwa mieściła się obok nich i tytuł jednej karty
   wypadał wyżej niż w sąsiednich. */
.featured-card .spec-row span:empty{display:none}
.featured-card .card-topline{flex-direction:column;align-items:flex-start}
/* The cards' heading comes first in their markup (catalog.js, home.js, front-page.php) and the
   group with the controls after it; on screen they stand over it, as before. */
.catalog-card .card-topline,.featured-card .card-topline{order:-1}
.card-name{font-weight:700}
/* Mały nagłówek z pustym polem w Treściach strony znika razem z kreską przed nim. */
.eyebrow:empty{display:none}
/* Sekcja projektów: nagłówek i wstęp biegną przez całą szerokość strony, jak w „Najczęściej zamawianych urządzeniach”. */
.home-projects .section-head>div,.home-projects .section-lead{max-width:none}
/* Zdanie zamiast pola zgody: wysłanie zapytania samo oznacza zgodę na kontakt. */
.form-contact-note{margin:0;color:var(--muted);font-size:13px;line-height:1.55}
/* Oba formularze zapytania — formularz projektu (strona główna i /projekty-indywidualne/)
   i ostatni krok Kreatora na /zapytanie/ — według rysunku właścicielki z 2026-10-20. Biała
   karta: u góry „* Pola wymagane”, pod tym firma i dane kontaktowe obok siebie, rozdzielone
   pionową kreską, każda grupa pod nagłówkiem z niebieską ikoną; pod poziomą kreską opis
   i załączniki w przerywanej ramce; na dole zgoda z klauzulą RODO obok dużego przycisku.
   Tylko te dwa formularze używają .fields, więc reguły dla pól są wspólne.
   Nagłówki grup to legendy fieldsetów — czytnik ekranu nadal słyszy, w której grupie jest
   pole — a float sprawia, że legenda jest zwykłym blokiem, a nie napisem w ramce.
   Karta i nagłówek nad nią zaczynają się tam, gdzie tekst strony — studia przypadków,
   tabele zestawienia — ale pola stoją w kolumnie najwyżej 1040 px pośrodku karty: na całej
   szerokości strony były za daleko od siebie.
   Trzy style pisma: etykieta 14 px i 600, treść pól 14 px i 400, wszystko drobne 13 px
   i 400 — zgoda, klauzula, podpowiedź pod załącznikami, komunikaty, zdanie pod przyciskiem.
   Na telefonie treść pól ma 16 px, bo iOS powiększa stronę przy każdym polu poniżej 16 px.
   Pola mają własny krój, bo inaczej dziedziczą go po etykiecie. Pusta lista wyboru jest
   :invalid (ma required), więc „Wybierz rolę” wygląda jak podpowiedź, nie jak wybór. */
.projects-enquiry{background:var(--soft)}
.projects-enquiry .section-head{margin-bottom:24px}
.form-title-dot{color:var(--blue)}
.form-card{display:grid;grid-template-columns:minmax(0,1040px);justify-content:center;gap:22px;padding:30px 36px;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 12px 38px rgba(9,24,71,.06)}
.form-card>.form-message{margin:0}
/* A form the server sent back: the reasons listed in the message, each wrong field framed and its own sentence under it. The sentence says it, not the colour alone. */
.form-message.error p{margin:0}.form-message.error ul{margin:8px 0 0;padding-left:20px}.form-message.error a{color:inherit}
.form-card [aria-invalid="true"]{border-color:#9b2c38}
.form-card .field-error{display:block;margin-top:6px;color:#9b2c38;font-size:13px;font-weight:650}
.form-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px 24px;flex-wrap:wrap}
.form-card-head .enquiry-form-intro{margin:0}
.withdrawal-form .enquiry-form-intro h2{margin:0 0 6px;color:var(--navy);font-size:24px;line-height:1.04;letter-spacing:-.05em}
.withdrawal-form .enquiry-form-intro h2+p{margin:0;color:var(--muted);font-size:13px}
.order-withdrawal{margin:12px 0 0;color:var(--navy);font-weight:650}
.form-card-title{margin:0;color:var(--navy);font-size:15px;font-weight:600}
.form-card-required{margin:0;color:var(--muted);font-size:13px;white-space:nowrap}.field-required{color:var(--blue)}
.form-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.form-group{min-width:0;margin:0;padding:0;border:0}
.form-columns+.form-group{padding-top:22px;border-top:1px solid var(--line)}
.form-columns>.form-group:first-child{padding-right:30px;border-right:1px solid var(--line)}
.form-columns>.form-group:last-child{padding-left:30px}
.form-group-head{float:left;width:100%;display:flex;align-items:center;gap:10px;margin:0 0 16px;padding:0;color:var(--navy);font-size:19px;font-weight:700;line-height:1.2;letter-spacing:-.025em}
.form-group-head .shop-icon{width:20px;height:20px;flex:0 0 auto;color:var(--blue)}
.form-group-lead,.form-group>.fields{clear:both}
.form-group-lead{margin:-6px 0 14px;color:var(--muted);font-size:14px;line-height:1.55}
.form-card .fields{gap:14px}
.fields label{gap:7px;font-size:14px;font-weight:600}
.fields input,.fields select,.fields textarea{min-height:44px;padding:10px 14px;color:var(--ink);background:#fff;border-radius:10px;font-size:14px;font-weight:400;text-overflow:ellipsis}
.fields textarea{min-height:110px}
.fields ::placeholder{color:var(--muted);opacity:1}
.fields select:invalid{color:var(--muted)}
.fields option{color:var(--ink)}
@media(max-width:760px){.fields input,.fields select,.fields textarea{font-size:16px}}
/* Załączniki: cała ramka jest etykietą pola, więc kliknięcie w nią otwiera wybór plików.
   Pole zostaje przeglądarkowe — tylko ono mówi, które pliki wybrano. */
.fields .form-attach{display:flex;align-items:center;gap:14px;padding:14px 18px;background:var(--soft);border:1px dashed #cdd6e4;border-radius:14px;cursor:pointer}
.fields .form-attach:focus-within{border-color:var(--blue)}
.form-attach-icon{display:grid;place-items:center;color:var(--muted)}
.form-attach-icon .shop-icon{width:22px;height:22px}
.form-attach-copy{display:grid;gap:3px;flex:1 1 auto;min-width:0}
.form-attach-title{color:var(--navy);font-size:14px;font-weight:600}
.form-attach-note{color:var(--muted);font-size:13px;font-weight:400}
.fields .form-attach input[type=file]{width:auto;max-width:300px;min-height:0;padding:0;color:var(--muted);background:none;border:0;border-radius:0;font-size:13px;cursor:pointer}
.form-attach input[type=file]::file-selector-button{margin-right:10px;padding:8px 14px;color:var(--blue);background:#fff;border:1px solid var(--line);border-radius:9px;font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.form-attach-hint{margin-top:-6px;color:var(--muted);font-size:13px;font-weight:400;line-height:1.55}
/* Stopka: zgoda i klauzula RODO po lewej — klauzula tu jest zwykłym odnośnikiem ze strzałką
   w dół, nie ramką, jak pod formularzem konta — a przycisk po prawej. */
.form-foot{display:flex;align-items:flex-start;justify-content:space-between;gap:16px 32px;flex-wrap:wrap;padding-top:22px;border-top:1px solid var(--line)}
.form-foot-notes{display:grid;gap:8px;flex:1 1 320px;min-width:0}
.rodo-note summary,.rodo-note p,.rodo-note a{font-size:13px;font-weight:400;line-height:1.55}
.form-foot .rodo-note{padding:0;background:none;border:0;border-radius:0}
.form-foot .rodo-note summary{display:inline-flex;align-items:center;gap:10px;color:var(--navy);font-size:13px;font-weight:500}
.form-foot .rodo-note summary:before{content:none}
.form-foot .rodo-note summary:after{width:7px;height:7px;margin-top:-4px;content:"";border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:rotate(45deg);transition:transform .18s}
.form-foot .rodo-note[open] summary:after{margin-top:3px;transform:rotate(-135deg)}
.form-foot .submit{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:50px;margin:0;padding:12px 28px;border-radius:12px;font-size:16px;font-weight:600}
.form-foot .shop-icon{width:18px;height:18px;flex:0 0 auto}
.form-card .project-form-note{margin:-8px 0 0;font-size:13px;font-weight:400;line-height:1.55}
/* Zapytanie projektowe as the owner drew it on 2026-10-21 (template-parts/project-form.php), with
   what a brief needs — the object, the task, the scale — and the office's telephone in a band above
   the form, three columns between hairlines, and the form at the width it always had: the card the
   section's width, its fields the 1040 px column in the middle. The photo of the devices on a
   building's plans lies behind the card's top, the card's width and half the photo's own height
   (6:1, as the owner asked the same day), lightly blurred and fading into the card from its middle
   down; scaled a little so the blur leaves no pale rim at the card's edges. The title and *Pola wymagane* stand about 6 cm under the card's edge, as the
   owner asked the same day, and every space in the form is tighter than the wizard's send step on
   /zapytanie/, which shares the card. */
.project-brief{display:grid;gap:26px}
.project-brief-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto;align-items:start}
.project-brief-points,.project-brief-call{margin-left:32px;padding-left:32px;border-left:1px solid var(--line)}
.project-brief-title{margin:0;color:var(--navy);font-size:clamp(26px,2.3vw,32px);line-height:1.12;letter-spacing:-.04em}
.project-brief-title .form-title-dot{color:var(--cyan)}
.project-brief-lead{margin:10px 0 0;color:var(--muted);font-size:15px;line-height:1.55}
.project-brief-points{display:grid;gap:10px;margin-top:0;margin-bottom:0}
.project-brief-point{display:grid;grid-template-columns:110px minmax(0,1fr);gap:2px 12px;align-items:start}
.project-brief-label{display:flex;align-items:center;gap:10px;color:var(--navy);font-size:15px;font-weight:600;line-height:1.5}
.project-brief-point .shop-icon{width:20px;height:20px;flex:0 0 auto;color:var(--blue)}
.project-brief-question{margin:0;color:var(--muted);font-size:14px;line-height:1.6}
.project-brief-call-label{margin:0 0 6px;color:var(--muted);font-size:14px}
.project-brief-phone{display:inline-flex;align-items:center;gap:12px;color:var(--blue);font-size:21px;font-weight:700;letter-spacing:-.01em;white-space:nowrap}
.project-brief-phone:hover{color:var(--navy)}
.project-brief-call .shop-icon{width:22px;height:22px;flex:0 0 auto}
.project-brief-call .shop-icon-arrow{width:16px;height:16px;margin-left:4px}
.project-form.form-card{position:relative;grid-template-columns:minmax(0,1fr);gap:0;padding:0;overflow:hidden}
.project-form-photo{position:absolute;top:0;left:0;z-index:0;display:block;width:100%;height:auto;aspect-ratio:2080/347;object-fit:cover;object-position:center 45%;opacity:.6;filter:blur(.5px);transform:scale(1.01);-webkit-mask-image:linear-gradient(180deg,#000 50%,transparent 100%);mask-image:linear-gradient(180deg,#000 50%,transparent 100%);pointer-events:none}
.project-form-head{align-items:center;padding-bottom:14px;border-bottom:1px solid var(--line)}
.project-form-head .form-card-title{display:flex;align-items:center;gap:10px;font-size:17px}
.project-form-head .shop-icon{width:20px;height:20px;flex:0 0 auto;color:var(--blue)}
.project-form-body{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1040px);justify-content:center;gap:16px;padding:225px 36px 26px}
.project-form .form-group-head{margin-bottom:12px}
.project-form .form-group-lead{margin:-4px 0 10px}
.project-form .form-group+.form-group{margin-top:4px}
.project-form .fields{gap:12px 20px}
.project-form.form-card .fields input,.project-form.form-card .fields select,.project-form.form-card .fields textarea{min-height:40px;padding:8px 12px}
.project-form.form-card .fields textarea{min-height:92px}
.project-form .fields .form-attach{padding:10px 16px}
.project-form .form-foot{padding-top:16px}
.project-form .form-foot .submit{min-height:44px;padding:10px 24px}
.form-group-head.is-ruled:after{flex:1 1 auto;height:1px;margin-left:8px;content:"";background:var(--line)}
.field-optional{margin-left:4px;color:var(--muted);font-size:13px;font-weight:400}
@media(max-width:1060px){.project-brief-intro{grid-template-columns:minmax(0,1fr) auto;row-gap:22px}.project-brief-text{grid-column:1/-1}.project-brief-points{margin-left:0;padding-left:0;border-left:0}}
@media(max-width:760px){.project-brief-intro{grid-template-columns:minmax(0,1fr);row-gap:18px}.project-brief-points{padding-top:18px;border-top:1px solid var(--line)}.project-brief-call{margin-left:0;padding:18px 0 0;border-top:1px solid var(--line);border-left:0}.project-form-body{padding:72px 18px 22px}.project-brief-point{grid-template-columns:100px minmax(0,1fr)}.project-brief-phone{font-size:20px}}
@media(max-width:900px){.form-columns{grid-template-columns:minmax(0,1fr);gap:22px}.form-columns>.form-group:first-child{padding:0 0 22px;border-right:0;border-bottom:1px solid var(--line)}.form-columns>.form-group:last-child{padding-left:0}}
@media(max-width:760px){.form-card{gap:20px;padding:22px 18px;border-radius:18px}.form-group-head{font-size:18px}.fields .form-attach{flex-wrap:wrap;min-width:0;padding:14px}.fields .form-attach input[type=file]{min-width:0;max-width:100%}.form-foot .submit{width:100%}}
/* Sklep na stronie produktu: cena, wersja, ilość i koszyk dla zalogowanego klienta, odnośnik do logowania dla gościa. */
.product-buy{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin:-10px 0 28px;padding:18px;background:var(--soft);border:1px solid var(--line);border-radius:14px}
.product-buy>label,.product-buy-version,.product-buy-price{display:flex;flex-direction:column;gap:5px;margin:0}
.product-buy>label>span,.product-buy-version>label,.product-buy-price>span{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}
.product-buy-price strong{color:var(--navy);font-size:1.6rem;line-height:1.1}
.product-buy-price small{margin-top:-2px;color:var(--muted);font-size:13px;font-weight:400}
.product-buy-price s{color:var(--muted);font-size:12px}
.product-buy select,.product-buy input[type=number]{min-height:48px;padding:10px 12px;color:var(--navy);background:#fff;border:1px solid #7d879b;border-radius:11px;font:inherit;font-weight:750}
.product-buy input[type=number]{width:96px}
.product-buy select{padding-right:44px;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23091847' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:12px 8px;cursor:pointer}
.product-buy-version-price{flex-basis:100%;order:1}.product-buy-price[hidden]{display:none}
.product-buy .primary-action{border:0;cursor:pointer}
.product-buy .product-buy-button{width:64px;min-height:48px;padding:0}
.product-buy-button svg{width:22px;height:22px}
.product-buy-note{order:2;width:100%;margin:0;color:var(--muted);font-size:11px}
.product-buy-guest{display:block}
.product-buy-guest a{color:var(--blue);font-weight:850}
/* Urządzenie główne i jego wersje (inc/product-page.php): blok na wersję, widoczny jeden.
   Atrybut `hidden` przegrywa z każdą regułą `display`, więc tu wygrywa on. Blok bez
   własnego elementu jest `display: contents` — układ strony zostaje, jaki był. */
[data-version][hidden]{display:none!important}
.product-version{display:contents}
.documents-panel>.product-version>a{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0;border-top:1px solid var(--line)}
.product-versions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:18px 0 22px;padding:16px 18px;background:var(--soft);border:1px solid var(--line);border-radius:14px}
.product-versions label{width:100%;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}
.product-versions select{flex:1 1 260px;min-height:48px;padding:10px 44px 10px 12px;color:var(--navy);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23091847' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 16px center/12px 8px;border:1px solid #7d879b;border-radius:11px;font:inherit;font-weight:750;appearance:none;cursor:pointer}
.product-versions-show{min-height:48px;padding:10px 18px;color:#fff;background:var(--blue);border:0;border-radius:11px;font-weight:850;cursor:pointer}
.product-versions-base{width:100%;margin:0;color:var(--muted);font-size:13px}
.product-versions-base strong{color:var(--navy)}
/* Sklep w katalogu: cena i „Do koszyka” na każdej karcie, dla zalogowanego klienta (assets/js/shop-add.js). Ostatnia w kolumnie karty, więc widać ją też w miniaturach, gdzie reszta akcji karty jest ukryta. */
.card-buy{display:flex;order:2;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.card-buy-prices{display:flex;flex-direction:column;gap:1px}
.card-buy-price{color:var(--muted);font-size:12px;font-weight:700;line-height:1.25;white-space:nowrap}
.card-buy-price b{color:var(--navy);font-size:1.05rem;font-weight:900}
.card-buy-net{color:var(--muted);font-size:11px;font-weight:400;line-height:1.3;white-space:nowrap}
.card-buy-choice{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1 1 150px}
.card-buy-choice+.card-buy-button{align-self:flex-start}
.card-buy select{width:100%;min-height:40px;padding:8px 10px;color:var(--navy);background:var(--soft);border:1px solid #7d879b;border-radius:10px;font-size:12px;font-weight:750}
.catalog-card .card-buy-button{width:48px;height:40px;display:inline-grid;place-items:center;flex:0 0 auto;margin:0;padding:0;color:#fff;background:var(--blue);border:0;border-radius:10px}
.card-buy-button svg{width:20px;height:20px}
.catalog-card .card-buy-button:hover{transform:translateY(-1px)}
.catalog-card .card-buy-button.is-done{background:#17613b}
.catalog-card .card-buy-button:disabled,.catalog-card .card-buy-button[aria-disabled="true"]{opacity:.7;cursor:progress}
.catalog-grid.is-compact .card-buy{margin-top:10px;padding-top:10px}
.catalog-grid.is-compact .card-buy-button{flex:1 1 100%;height:36px}
.card-buy-choose{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-height:40px;padding:8px 14px;color:#fff;background:var(--blue);border-radius:10px;font-size:12px;font-weight:850;white-space:nowrap}
.catalog-grid.is-compact .card-buy-choose{flex:1 1 100%;min-height:36px}

/* Karty jednego rzędu są równe, a cena i „Do koszyka” stoją na dole każdej z nich, w tej samej linii.
   Wolne miejsce bierze pusty element za treścią (`order` stawia go przed blokiem zakupu, który
   ma `order:2` wyżej), więc `margin-top` bloku zostaje najmniejszym odstępem od opisu, a karta
   gościa wygląda jak dotąd.
   Zastępczy rysunek urządzenia ma wysokość zdjęcia (było 245 wobec 220 px). W miniaturach nazwa
   zajmuje zawsze dwa wiersze, a opis trzy, więc wszystkie karty mają ten sam kształt. Cena ma
   wysokość listy wersji, którą dostaje model z kilkoma pozycjami w cenniku. */
.catalog-grid>.catalog-card{display:flex;flex-direction:column}
.catalog-card>.catalog-card-image,.catalog-card>.device-visual{flex:0 0 auto}
.catalog-card>.device-visual{height:220px;border-bottom:1px solid var(--line)}
.catalog-card>div:last-child{display:flex;flex:1 1 auto;flex-direction:column}
.catalog-card>div:last-child:after{flex:1 1 auto;order:1;content:""}
.catalog-grid.is-compact .catalog-card .card-name{min-height:3.2em;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.catalog-grid.is-compact .catalog-card p{min-height:4.35em}

/* Konto i koszyk w nagłówku, w miejscu dawnego przycisku „Sklep” (gorke_theme_shop_header_links()):
   ikona nad podpisem, liczba urządzeń na rogu koszyka. Poniżej 1280 px podpisy znikają z widoku, ale
   nie z czytnika ekranu — inaczej menu łamałoby się na dwa wiersze — a ikony zostają w nagłówku także
   na telefonie, więc menu ich nie powtarza. Wyszukiwarka w menu oddała im 40 px (220 → 180). Przełącznik języka stoi
   za nimi (od 2026-10-20); gdy zwinięte menu znika, ikony i przełącznik przesuwają się razem w prawo. */
.header-shop{display:flex;align-items:center;gap:2px}
.header-shop-link{min-width:56px;position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 7px;color:var(--navy);border-radius:11px;font-size:11px;font-weight:750;line-height:1.15;white-space:nowrap;transition:color .18s ease,background .18s ease}
.header-shop-link:hover,.header-shop-link[aria-current]{color:var(--blue);background:var(--soft)}
.header-shop-link .shop-icon{width:24px;height:24px}
.shop-link-count{min-width:20px;height:20px;position:absolute;top:0;left:calc(50% + 3px);display:grid;place-items:center;padding:0 5px;color:#fff;background:#d92d38;border:2px solid #fff;border-radius:999px;font-size:10px;font-weight:900;line-height:1}
.shop-link-count[hidden]{display:none}.header-shop-link:not(:has(.shop-link-count:not([hidden]))) .header-shop-unit{display:none}
@media(max-width:1060px){.header-shop{margin-left:auto}.language-switcher{margin-left:0}}
@media(max-width:1279px){.header-shop-link{min-width:0;padding:9px 8px}.header-shop-label{width:1px;height:1px;position:absolute;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}
