/* Granica Portal: strona główna jako „tablica” (P10b, motyw alpha14).
   Jedna siatka, jeden rytm odstępów, kolumny o równej wysokości, nic nie wisi samo w pustym polu.
   Aktualności po lewej, tabela i strzelcy po prawej; liczby sezonu razem z faktami; zawodnicy i Granica TV wypełniają szerokość.
   Tylko CSS (bez obrazów i bez obcych hostów); mobile wraca do kolumny i przewijanych szyn. */

.gp-home{--gap:clamp(24px,3.2vw,44px);--rhythm:clamp(44px,6vw,72px)}
.gp-home .gp-pad{padding-top:calc(var(--rhythm) * .45);padding-bottom:12px}
main.gp-home ~ .gp-foot{margin-top:16px}
.gp-home .gp-sec,.gp-home .gp-board,.gp-home .gp-ribbon{margin-top:var(--rhythm)}
.gp-home .gp-pad>:first-child{margin-top:0}

/* ---------- wyniki: pięć biletów na całą szerokość ---------- */
@media (min-width:901px){
 .gp-home .gp-strip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:14px;margin-top:calc(var(--rhythm) * .5);overflow:visible}
 .gp-home .gp-strip .gp-res{min-width:0;padding:14px 18px 13px 22px}
 .gp-home .gp-strip .gp-res b{font-size:clamp(30px,3vw,40px)}
 .gp-home .gp-strip .gp-res{font-size:calc(14px * var(--gp-fs,1))}
}

/* ---------- tablica: aktualności | tabela + strzelcy ---------- */
.gp-board{display:grid;grid-template-columns:minmax(0,1.32fr) minmax(0,1fr);gap:var(--gap);align-items:stretch}
.gp-board .gp-card{margin:0;display:flex;flex-direction:column}
.gp-board--news{grid-template-columns:1fr}
.gp-board-side{display:grid;grid-auto-rows:auto;gap:calc(var(--gap) * .8);align-content:start;min-width:0}
.gp-board--pair .gp-board-side{grid-column:1/-1;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:var(--gap)}
.gp-board .gp-more{margin-top:auto;padding-top:14px;align-self:flex-start}

/* aktualności: duży kafel + wiersze rozciągnięte do wysokości kolumny */
.gp-card-news .gp-news{flex:1;display:flex;flex-direction:column;gap:0}
.gp-card-news .gp-news-top{flex:1 1 auto;min-height:clamp(240px,26vw,380px);margin-bottom:6px}
.gp-card-news .gp-news-row{padding:12px 0;align-items:center}
.gp-card-news .gp-news-row .gp-th{width:84px;height:58px;flex:0 0 84px}
.gp-card-news .gp-news-row span{font-size:calc(16px * var(--gp-fs,1));line-height:1.3}

/* tabela: cztery kolumny, nasza drużyna wyróżniona, bez ściskania nazw */
.gp-board .gp-tab{table-layout:auto}
.gp-board .gp-tab td:nth-child(2){width:100%}
.gp-board .gp-tab th:nth-child(3),.gp-board .gp-tab th:nth-child(4),.gp-board .gp-tab td:nth-child(3),.gp-board .gp-tab td:nth-child(4){text-align:right;white-space:nowrap;padding-left:14px}
.gp-board .gp-tab td{padding:9px 8px}
.gp-board .gp-card .gp-h4{white-space:normal}

/* strzelcy: numer miejsca, nazwa, kreska, gole; wiersze równo rozłożone */
.gp-board .gp-bars{display:grid;gap:2px}
.gp-board .gp-bars .gp-bar-r{grid-template-columns:28px minmax(0,1fr) 38px;grid-template-areas:"n name g" ". bar g";column-gap:12px;row-gap:5px;margin:0;padding:9px 0;border-bottom:1px solid var(--rule);align-items:center}
.gp-board .gp-bars .gp-bar-r:last-child{border-bottom:0}
.gp-board .gp-bars .gp-bar-r>span{grid-area:name;font-weight:700;font-size:calc(15px * var(--gp-fs,1))}
.gp-board .gp-bars .gp-bar-r>.gp-b{grid-area:bar}
.gp-board .gp-bars .gp-bar-r>b{grid-area:g;font-size:30px;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}
.gp-board .gp-bars{counter-reset:sc}
.gp-board .gp-bars .gp-bar-r::before{counter-increment:sc;content:counter(sc);grid-area:n;font:800 20px var(--hf);color:var(--mut);text-align:left}
.gp-board .gp-bars .gp-bar-r:first-child::before{color:var(--green-d)}
.gp-board .gp-bars .gp-bar-r:first-child>b{color:var(--green-d)}

/* ---------- nasze szanse: liczby razem z faktami ---------- */
.gp-season-grid{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:var(--gap);align-items:stretch}
.gp-season-grid .gp-card{display:flex;flex-direction:column}
.gp-nums{display:grid;grid-template-columns:1.5fr 1fr 1fr;margin:2px 0 18px;border-bottom:1px solid var(--rule)}
.gp-nums>div{padding:6px 14px 14px;border-left:1px solid var(--rule);text-align:left}
.gp-nums>div:first-child{border-left:0;padding-left:0}
.gp-nums b{display:block;font:800 clamp(52px,6vw,96px)/.95 var(--hf);color:var(--ink);font-variant-numeric:tabular-nums}
.gp-nums-main b{color:transparent;-webkit-text-stroke:2px var(--green);font-size:clamp(72px,9vw,132px)}
.gp-nums small{display:block;margin-top:6px;font:700 12px var(--hf);letter-spacing:.18em;text-transform:uppercase;color:var(--mut)}
.gp-season-main .gp-dl>div{padding:9px 0}
.gp-season-main .gp-dl dt{font-size:calc(15px * var(--gp-fs,1))}
.gp-season-main .gp-dl dd{font-size:calc(16px * var(--gp-fs,1))}
.gp-season-grid .gp-more{margin-top:auto;padding-top:14px}
.gp-cmp{width:100%}

/* bez porównania z poprzednim sezonem: jedna szeroka karta, liczby po lewej, fakty po prawej */
@media (min-width:901px){
 .gp-season-solo{grid-template-columns:1fr}
 .gp-season-solo .gp-season-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);column-gap:var(--gap);align-items:start}
 .gp-season-solo .gp-nums{grid-column:1;grid-row:1/span 3;margin:0;border-bottom:0;align-self:center}
 .gp-season-solo .gp-dl,.gp-season-solo .gp-form-line,.gp-season-solo .gp-more{grid-column:2}
}

/* ---------- zawodnicy i Granica TV: pełna szerokość zamiast szyny z pustym polem ---------- */
@media (min-width:901px){
 .gp-rail-fill{display:grid;overflow:visible;gap:18px 16px;padding-bottom:0}
 .gp-rail-fill.gp-n6,.gp-rail-fill.gp-n5{grid-template-columns:repeat(6,minmax(0,1fr))}
 .gp-rail-fill.gp-n4{grid-template-columns:repeat(4,minmax(0,1fr))}
 .gp-rail-fill.gp-n3{grid-template-columns:repeat(3,minmax(0,1fr))}
 .gp-rail-fill.gp-n2{grid-template-columns:repeat(2,minmax(0,1fr))}
 .gp-rail-fill.gp-n1{grid-template-columns:minmax(0,1fr)}
 .gp-rail-fill .gp-pcard,.gp-rail-fill .gp-vid{flex:none;min-width:0}
 .gp-rail-fill .gp-vid .gp-tn{display:block;aspect-ratio:16/9;width:100%}
 .gp-rail-fill .gp-vid .gp-tn img{width:100%;height:100%;object-fit:cover;display:block}
}

/* ---------- ścianka sponsorów: ten sam rytm ---------- */
.gp-home .gps-wall{margin-top:var(--rhythm)}

/* ---------- telefon i tablet: jedna kolumna ---------- */
@media (max-width:900px){
 .gp-board,.gp-board--pair .gp-board-side,.gp-season-grid{grid-template-columns:1fr}
 .gp-board--pair .gp-board-side{grid-column:auto}
 .gp-card-news .gp-news-top{min-height:220px}
 .gp-nums{grid-template-columns:1.4fr 1fr 1fr}
 .gp-nums>div{padding:4px 8px 12px}
 .gp-nums b{font-size:clamp(44px,13vw,72px)}
 .gp-nums-main b{font-size:clamp(64px,22vw,110px)}
 .gp-home{--rhythm:40px}
}

/* ---------- dostępność dotyku i czytelność (audyt P10) ---------- */
.gp-brand-nm small,.gp-res small,.gp-vid small,.gp-rd-live{font-size:12px}
@media (pointer:coarse),(max-width:900px){
 .gp-burger{min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center}
 .gp-hc{width:44px;height:44px}
 .gp-dot{position:relative}
 .gp-dot::before{content:"";position:absolute;inset:-18px -6px}
 .gp-more,.gp-credit,.gp-rd-link,.gn-h-more,.gp-btn{display:inline-flex;align-items:center;min-height:44px}
 .gp-rd-exp,.gc-push-btn{min-width:44px;min-height:44px}
 .gp-foot summary,.gp-main summary{min-height:44px;box-sizing:border-box;padding-block:11px}
 .gp-sec summary,.gp-main details>summary{display:flex;align-items:center}
}

/* przycisk powiadomień na tablecie i telefonie: sama ikona dzwonka (nie zasłania treści), nazwa dla czytników ekranu zostaje w tekście przycisku */
@media (max-width:900px){
 .gc-push-btn{font-size:0;letter-spacing:0;padding:0;width:48px;height:48px;min-width:48px;clip-path:polygon(10px 0,100% 0,calc(100% - 10px) 100%,0 100%)}
 .gc-push-btn::before{left:18px;top:15px}
 .gc-push-btn::after{left:22px;top:30px}
}

/* boczna kontrolka wielkości tekstu na tablecie i telefonie: pole dotyku 40x44 */
@media (max-width:900px){
 .gp-fs button{width:40px;height:44px}
 .gp-hero-ctl .gp-hc{width:44px;height:44px}
}

/* krótsza kolumna jedzie za dłuższą: skrypt oznacza kontener (gp-follow-on) i krótszą kolumnę (gp-follow); bez skryptu kolumny są równe */
@media (min-width:901px){
 .gp-follow-on{align-items:start!important}
 .gp-follow-on>.gp-follow{position:sticky;top:calc(var(--head-h,64px) + 18px);align-self:start}
}

/* tło strony: tylko papier (żadnego zdjęcia pod treścią, także z dawnych ustawień motywu ani z własnego tła WordPressa) */
.gp-bg,.gp-veil{display:none!important}
body,body.custom-background{background-color:var(--paper)!important;background-image:none!important}

/* stopka: trzy kolumny linków o zbliżonej liczbie pozycji, wspólna linia nagłówków i równe odstępy */
@media (min-width:721px){
 .gp-foot-grid.has-info{grid-template-columns:minmax(0,1.1fr) repeat(3,minmax(0,1fr));align-items:start;column-gap:clamp(20px,3vw,48px)}
 .gp-foot-grid .gp-fbrand{align-self:start;padding-top:2px}
 .gp-foot-grid .gp-facc{min-width:0}
 .gp-foot-grid .gp-fl-list li{margin:0;padding:0}
 .gp-foot-grid .gp-fl-list a{display:block;padding:4px 0;line-height:1.35}
}

/* menu główne: lista rozwijana (Granica NEWS: Aktualności, Komunikaty); komputer: po najechaniu i z klawiatury; telefon: zagnieżdżone w szufladzie */
@media (min-width:901px){
 .gp-menu .menu-item-has-children{position:relative}
 .gp-menu .menu-item-has-children>a{margin-right:16px}
 .gp-menu .menu-item-has-children>a::before{content:"";position:absolute;right:-15px;top:50%;width:6px;height:6px;margin-top:-5px;border-right:2px solid var(--yellow);border-bottom:2px solid var(--yellow);transform:rotate(45deg);transition:transform .18s}
 .gp-menu .menu-item-has-children:hover>a::before,.gp-menu .menu-item-has-children:focus-within>a::before{transform:rotate(225deg);margin-top:-2px}
 .gp-menu .sub-menu{display:block;position:absolute;left:-14px;top:100%;min-width:220px;margin:0;padding:10px 0 8px;list-style:none;background:var(--green-dd,#00682b);border-top:3px solid var(--yellow);box-shadow:0 14px 30px rgba(0,40,16,.32);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .18s,transform .18s,visibility .18s;z-index:60;clip-path:polygon(0 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%)}
 .gp-menu .menu-item-has-children:hover>.sub-menu,.gp-menu .menu-item-has-children:focus-within>.sub-menu{opacity:1;visibility:visible;transform:none}
 .gp-menu .sub-menu li{margin:0;display:block}
 .gp-menu .sub-menu a{display:block;padding:10px 22px;white-space:nowrap;letter-spacing:.07em;color:#fff;opacity:1}
 .gp-menu .sub-menu a::after{display:none}
 .gp-menu .sub-menu a:hover,.gp-menu .sub-menu a:focus-visible{background:rgba(255,255,255,.12);color:var(--yellow)}
}
@media (prefers-reduced-motion:reduce){.gp-menu .sub-menu{transition:none}}

/* wielkość tekstu (A+ A= A-): skala całej treści strony i stopki jak powiększenie w przeglądarce; nagłówek, pasek radia i duże tytuły sekcji startowych zostają bez zmian */
@supports (zoom:1){
 html{--gp-fs:1!important}
 .gp-main,.gp-foot,.gp-appband{zoom:var(--gp-zoom,1)}
 .gp-hero,.gp-pagehead{zoom:calc(1 / var(--gp-zoom,1))}
}
