/*
Theme Name: Siedliski Boks
Theme URI: https://ppwebstudio.pl
Author: PPWebStudio
Author URI: https://ppwebstudio.pl
Description: Motyw strony trenera boksu Jakuba Siedliskiego (Tarnowskie Góry). Panel ustawień (dane kontaktowe, cennik, opinie), panel zapytań z formularza, licencja RSL 1.0 oraz zabezpieczenia.
Version: 1.1.0
Requires at least: 6.3
Tested up to: 6.8
Requires PHP: 7.4
License: Proprietary
Text Domain: siedliski
*/

:root{
  --ring:#16191d;--canvas:#1f2328;--deep:#121417;
  --rope:#a3151c;--rope-hi:#c42129;
  --tape:#ebe7df;--soft:#cfcac0;--muted:#9aa0a8;
  --brass:#c7a45a;
  --line:rgba(235,231,223,.14);
  --display:"Big Shoulders Display","Impact","Arial Narrow",sans-serif;
  --body:"Archivo","Segoe UI",system-ui,sans-serif;
  color-scheme:dark;box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--ring:#16191d;--canvas:#1f2328;--tape:#ebe7df}}
:root[data-theme="dark"]{--ring:#16191d;--canvas:#1f2328;--tape:#ebe7df}
*,*::before,*::after{box-sizing:inherit}
html{scroll-behavior:smooth;scroll-padding-top:calc(72px + env(safe-area-inset-top,0px))}
body{margin:0;background:var(--ring);color:var(--tape);font-family:var(--body);font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--ring)}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:3px solid var(--brass);outline-offset:3px}
.wrap{width:min(1180px,100% - 2.5rem);margin-inline:auto}
.todo{background:rgba(199,164,90,.18);border-bottom:1px dashed var(--brass);padding:0 .2em}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* nawigacja */
.nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:rgba(22,25,29,.92);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--line);transition:background .3s}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:68px}
.logo{font-family:var(--display);font-weight:900;font-size:1.6rem;letter-spacing:.02em;text-decoration:none;line-height:1}
.logo span{color:var(--rope-hi)}
.nav ul{list-style:none;display:flex;gap:1.5rem;margin:0;padding:0}
.nav ul a{text-decoration:none;font-size:.95rem;color:var(--muted);position:relative}
.nav ul a::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;background:var(--rope-hi);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.nav ul a:hover{color:var(--tape)}
.nav ul a:hover::after{transform:scaleX(1)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font:700 1rem var(--body);padding:.9rem 1.5rem;border-radius:3px;text-decoration:none;cursor:pointer;border:2px solid var(--rope);background:var(--rope);color:#fff;transition:background .2s,border-color .2s,transform .15s}
.btn:hover{background:var(--rope-hi);border-color:var(--rope-hi)}
.btn:active{transform:scale(.97)}
.btn.ghost{background:transparent;border-color:var(--line);color:var(--tape)}
.btn.ghost:hover{border-color:var(--tape)}
.nav .btn{padding:.55rem 1rem;font-size:.9rem}
.burger{display:none;background:none;border:0;color:var(--tape);font-size:1.6rem;cursor:pointer;padding:.4rem}
@media (max-width:960px){
  .nav{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--ring)}
  .nav ul{position:fixed;top:calc(68px + env(safe-area-inset-top,0px));left:0;right:0;bottom:0;display:flex;flex-direction:column;gap:0;padding:1.2rem 1.5rem calc(4.5rem + env(safe-area-inset-bottom,0px));background:var(--ring);overflow-y:auto;visibility:hidden;opacity:0;transition:opacity .25s,visibility 0s .3s}
  .nav ul::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--rope);transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.2,.8,.2,1)}
  .nav ul.open{visibility:visible;opacity:1;transition:opacity .25s}
  .nav ul.open::before{transform:scaleX(1)}
  .nav ul li{opacity:0;transform:translateX(-18px);transition:opacity .35s,transform .45s cubic-bezier(.2,.8,.2,1)}
  .nav ul.open li{opacity:1;transform:none;transition-delay:calc(var(--i,0) * 35ms + 80ms)}
  .nav ul a{display:flex;justify-content:space-between;align-items:center;padding:.55rem 0;border-bottom:1px solid var(--line);font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(1.7rem,8vw,2.3rem);line-height:1.05;letter-spacing:.01em;color:var(--tape);text-decoration:none}
  .nav ul a:active{color:var(--rope-hi)}
  .nav ul a::after{display:none}
  .nav ul li:not(.menu-cta):not(.menu-alt) a::before{content:"";order:2;width:10px;height:10px;border-top:2px solid var(--muted);border-right:2px solid var(--muted);transform:rotate(45deg);flex:none}
  .nav ul li.menu-cta{margin-top:auto;padding-top:1.4rem}
  .nav ul li.menu-cta a{justify-content:center;background:var(--rope);border:0;border-radius:3px;color:#fff;font-size:1.6rem;padding:1rem}
  .nav ul li.menu-alt{text-align:center;padding-top:.9rem;font-size:.92rem;color:var(--muted)}
  .nav ul li.menu-alt a{display:inline;padding:0;border:0;font-family:var(--body);font-weight:700;font-size:inherit;text-transform:none;color:var(--tape);text-decoration:underline;text-underline-offset:3px}
  .burger{display:block;width:44px;height:44px;line-height:1}
  .nav .btn{display:none}
  html.menu-open{overflow:hidden}
  html.menu-open .cookie,html.menu-open .mobile-cta{display:none}
}
@media (min-width:961px){.nav ul li.menu-cta,.nav ul li.menu-alt{display:none}}

/* hero */
.hero{position:relative;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:2rem;align-items:end;min-height:min(86vh,820px);padding-top:4rem}
.hero-copy{padding-bottom:4.5rem;position:relative;z-index:2}
.hero h1{margin:0;font-weight:400}
.role{display:block;font-family:var(--display);font-weight:600;font-size:1.5rem;line-height:1.2;color:var(--brass);margin:0 0 .6rem}
.name{display:block;font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:clamp(4rem,12.5vw,10.5rem);line-height:.82;letter-spacing:-.01em}
.name > span{display:block;overflow:hidden;padding-bottom:.04em}
.name > span > span{display:block}
.name .outline{-webkit-text-stroke:2px var(--tape);color:transparent}
.lead{max-width:36ch;font-size:1.2rem;color:var(--soft);margin:1.6rem 0 2rem}
.cta{display:flex;flex-wrap:wrap;gap:.8rem}
.ropes{position:absolute;inset:0;pointer-events:none;z-index:1}
.ropes span{position:absolute;left:-5%;right:-5%;height:7px;border-radius:7px;background:linear-gradient(180deg,var(--rope-hi),#7d0f14);box-shadow:0 6px 14px rgba(0,0,0,.45);transform-origin:left center;transform:translateY(var(--py,0)) rotate(-3deg)}
.ropes span:nth-child(1){top:30%}.ropes span:nth-child(2){top:52%}.ropes span:nth-child(3){top:74%}
.hero-photo{align-self:stretch;position:relative;z-index:0;min-height:440px;overflow:hidden}
.hero-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 20%}
.hero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,var(--ring) 100%),linear-gradient(90deg,var(--ring) 0%,transparent 18%)}
@media (max-width:880px){
  .hero .wrap{grid-template-columns:1fr;min-height:auto;padding-top:0;gap:0}
  .hero-photo{order:-1;min-height:0;height:min(48vh,360px);margin-inline:-1.25rem}
  .hero-photo img{object-position:center 25%}
  .hero-photo::after{background:linear-gradient(180deg,transparent 50%,var(--ring) 100%)}
  .hero-copy{padding-bottom:2.2rem;margin-top:-2.2rem}
  .role{font-size:1.1rem;margin-bottom:.35rem}
  .name{font-size:clamp(2.8rem,14vw,4.2rem)}
  .name .outline{-webkit-text-stroke:1.5px var(--tape)}
  .lead{font-size:1rem;margin:1rem 0 1.4rem}
  .cta .btn{flex:1 1 auto;padding:.8rem 1rem;font-size:.95rem}
  .ropes span{height:5px}
  .ropes span:nth-child(1){top:22%}.ropes span:nth-child(2){top:34%}.ropes span:nth-child(3){top:46%}
  .ticker-track{font-size:1.1rem;padding:.65rem 0}
}

/* pasek miast */
.ticker{background:var(--rope);color:#fff;overflow:hidden;white-space:nowrap;border-block:1px solid #7d0f14;position:relative;z-index:3}
.ticker-track{display:inline-flex;gap:2.5rem;padding:.85rem 0;font-family:var(--display);font-weight:800;font-size:1.35rem;text-transform:uppercase;letter-spacing:.03em}
.ticker-track span::after{content:"✦";margin-left:2.5rem;color:var(--brass)}

/* sekcje */
section{padding-block:clamp(4rem,9vw,7rem)}
h2{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(2.6rem,6vw,4.4rem);line-height:.92;margin:0 0 1.5rem}
.intro{max-width:60ch;color:var(--soft)}
.alt{background:var(--canvas)}

/* o mnie */
.about .wrap{display:grid;grid-template-columns:minmax(0,400px) 1fr;gap:clamp(2rem,6vw,6rem);align-items:center}
.about-photo{position:relative}
.about-photo img{width:100%;height:auto;aspect-ratio:2/3;object-fit:cover;border-radius:3px}
.about-photo::after{content:"";position:absolute;left:-14px;bottom:-14px;width:45%;height:45%;border-left:6px solid var(--rope);border-bottom:6px solid var(--rope);pointer-events:none}
.about-photo figcaption{font-size:.75rem;color:var(--muted);margin-top:.6rem;text-align:right}
@media (max-width:880px){.about .wrap{grid-template-columns:1fr}.about-photo{max-width:340px;margin-left:14px!important}}

/* odznaka google */
.gbadge{display:flex;align-items:center;gap:1.4rem;margin-top:2rem;padding:1.3rem 1.5rem;border:1px solid var(--line);border-radius:4px;background:var(--deep);text-decoration:none;transition:border-color .25s,transform .25s}
.gbadge:hover{border-color:var(--brass);transform:translateY(-2px)}
.gscore{font-family:var(--display);font-weight:900;font-size:3.6rem;line-height:.9;font-variant-numeric:tabular-nums}
.stars{position:relative;display:inline-block;font-size:1.3rem;letter-spacing:.12em;color:rgba(235,231,223,.18);line-height:1}
.stars i{position:absolute;inset:0;width:var(--fill,0%);overflow:hidden;color:#f5b301;font-style:normal;white-space:nowrap;transition:width 1.4s cubic-bezier(.2,.8,.2,1)}
.gmeta small{display:block;color:var(--muted);font-size:.9rem;margin-top:.35rem}
.gmeta b{color:var(--tape)}
.place{display:flex;gap:.7rem;align-items:flex-start;margin-top:1.2rem;color:var(--soft);font-size:.98rem}
.place svg{flex:none;margin-top:.2rem;color:var(--rope-hi)}

/* galeria */
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;margin-top:2.5rem}
.gallery-grid figure{margin:0;overflow:hidden;border-radius:3px;background:var(--canvas);aspect-ratio:1/1}
.g-toggle:not(:checked) ~ .gallery-grid figure:nth-child(n+9){display:none}
.g-toggle:checked ~ .g-more .g-m,.g-toggle:not(:checked) ~ .g-more .g-l{display:none}
.g-toggle:focus-visible ~ .g-more .btn{outline:3px solid var(--brass);outline-offset:3px}
.g-more .btn{cursor:pointer;user-select:none}
.g-open{display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:zoom-in}
.gallery-grid img{width:100%;height:100%;object-fit:cover;object-position:center 30%;filter:grayscale(.35) contrast(1.05);transition:transform .7s cubic-bezier(.2,.8,.2,1),filter .5s}
.gallery-grid figure:hover img,.g-open:focus-visible img{transform:scale(1.04);filter:none}
.g-more{text-align:center;margin-top:1.5rem}
.lightbox{border:0;padding:0;background:transparent;max-width:100vw;max-height:100vh;width:100vw;height:100vh;margin:0}
.lightbox::backdrop{background:rgba(10,11,13,.94)}
.lightbox[open]{display:grid;place-items:center}
.lightbox img{max-width:min(92vw,1200px);max-height:84vh;object-fit:contain;border-radius:3px;animation:lbIn .35s cubic-bezier(.2,.8,.2,1)}
@keyframes lbIn{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}
.lb-btn{position:fixed;background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.18);width:52px;height:52px;border-radius:50%;font-size:1.8rem;line-height:1;cursor:pointer;display:grid;place-items:center;transition:background .2s}
.lb-btn:hover{background:var(--rope)}
.lb-close{top:calc(1rem + env(safe-area-inset-top,0px));right:1rem;font-size:1.2rem}
.lb-prev{left:1rem;top:50%;transform:translateY(-50%)}.lb-next{right:1rem;top:50%;transform:translateY(-50%)}
.lb-count{position:fixed;bottom:calc(1rem + env(safe-area-inset-bottom,0px));left:0;right:0;text-align:center;color:var(--muted);margin:0;font-size:.9rem}
@media (max-width:900px) and (min-width:601px){.gallery-grid{grid-template-columns:repeat(3,1fr)}.g-toggle:not(:checked) ~ .gallery-grid figure:nth-child(n+7){display:none}}
@media (max-width:600px){.g-toggle:not(:checked) ~ .gallery-grid figure:nth-child(n+5){display:none}}
@media (max-width:600px){.lb-prev,.lb-next{top:auto;bottom:calc(.6rem + env(safe-area-inset-bottom,0px));transform:none;width:46px;height:46px}.gallery-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}}

/* treningi */
.offer-list{margin-top:2.5rem;border-top:1px solid var(--line)}
.offer-row{display:grid;grid-template-columns:1fr 1.4fr auto;gap:2rem;align-items:start;padding:2rem 1rem;margin-inline:-1rem;border-bottom:1px solid var(--line);position:relative;transition:background .3s}
.offer-row::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--rope-hi);transform:scaleY(0);transform-origin:top;transition:transform .35s}
.offer-row:hover{background:rgba(255,255,255,.025)}
.offer-row:hover::before{transform:scaleY(1)}
.offer-row h3{font-family:var(--display);font-weight:800;font-size:2rem;line-height:1;margin:0;text-transform:uppercase}
.offer-row p{margin:0;color:var(--soft);max-width:52ch}
.offer-row .for{font-size:.9rem;color:var(--muted);margin-top:.6rem}
.offer-row a{white-space:nowrap;color:var(--brass);font-weight:700;text-decoration:none;border-bottom:2px solid transparent}
.offer-row a:hover{border-color:var(--brass)}
@media (max-width:760px){.offer-row{grid-template-columns:1fr;gap:.8rem}}

/* rundy */
.rounds{display:grid;grid-template-columns:repeat(3,1fr);margin-top:2.5rem;position:relative}
.round{padding:2rem 2rem 2rem 0;border-top:6px solid var(--line);position:relative}
.round::before{content:"";position:absolute;left:0;right:0;top:-6px;height:6px;background:var(--rope-hi);transform:scaleX(0);transform-origin:left;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.round.in::before{transform:scaleX(1)}
.round:nth-child(2)::before{transition-delay:.35s}.round:nth-child(3)::before{transition-delay:.7s}
.round + .round{padding-left:2rem;border-left:1px solid var(--line)}
.round small{font-family:var(--display);font-weight:800;font-size:1.25rem;color:var(--brass)}
.round h3{font-size:1.25rem;margin:.4rem 0 .6rem}
.round p{margin:0;color:var(--soft)}
@media (max-width:820px){.rounds{grid-template-columns:1fr}.round,.round+.round{padding:1.6rem 0;border-left:0}}

/* cennik */
.price-table{width:100%;border-collapse:collapse;margin-top:2rem}
.price-table td{padding:1.2rem 0;border-bottom:1px solid var(--line);vertical-align:baseline}
.price-table td:first-child{font-weight:700;font-size:1.1rem;padding-right:1rem}
.price-table td:first-child small{display:block;font-weight:400;color:var(--muted);font-size:.9rem}
.price-table td:last-child{text-align:right;font-family:var(--display);font-weight:900;font-size:2rem;white-space:nowrap}
.price-table td:last-child small{font-family:var(--body);font-weight:400;font-size:.85rem;color:var(--muted);display:block}
.tag{display:inline-block;margin-left:.6rem;font-size:.72rem;font-weight:700;background:var(--rope);color:#fff;padding:.2rem .5rem;border-radius:2px;vertical-align:middle}
.note{font-size:.9rem;color:var(--muted);margin-top:1.2rem}

/* timer */
.timer-box{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
.clock{border:1px solid var(--line);border-radius:4px;padding:2rem;text-align:center;background:var(--canvas);position:relative;overflow:hidden}
.clock .bar{position:absolute;left:0;bottom:0;height:4px;background:var(--rope-hi);width:var(--p,0%);transition:width 1s linear}
.clock.rest .bar{background:var(--brass)}
.clock .state{font-family:var(--display);font-weight:800;font-size:1.4rem;text-transform:uppercase;color:var(--brass);min-height:1.4em}
.clock .state.fight{color:#ff4b52}
.clock .time{font-family:var(--display);font-weight:900;font-size:clamp(5rem,14vw,8.5rem);line-height:1;font-variant-numeric:tabular-nums}
.clock .meta{color:var(--muted);margin-bottom:1.4rem}
.clock .controls{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap}
.settings{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.5rem}
.settings label{font-size:.9rem;color:var(--muted);display:flex;flex-direction:column;gap:.3rem}
.settings select{font:inherit;color:var(--tape);background:var(--ring);border:1px solid var(--line);padding:.55rem .7rem;border-radius:3px}
@media (max-width:820px){.timer-box{grid-template-columns:1fr}}

/* opinie */
.reviews-head{display:flex;justify-content:space-between;align-items:end;gap:1.5rem;flex-wrap:wrap}
.reviews-head a{color:var(--brass);font-weight:700;text-decoration:none}
.reviews-head a:hover{text-decoration:underline}
.quotes{columns:3 300px;column-gap:2.5rem;margin-top:2.5rem}
.quotes blockquote{break-inside:avoid;margin:0 0 2.5rem;border-left:3px solid var(--rope);padding-left:1.2rem}
.quotes .s{color:#f5b301;font-size:.95rem;letter-spacing:.1em;margin-bottom:.5rem}
.quotes p{margin:0 0 .8rem;font-size:1.05rem}
.quotes cite{font-style:normal;color:var(--muted);font-size:.9rem}

/* lokalnie */
.local .wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:start}
.towns{list-style:none;margin:1.5rem 0 0;padding:0}
.towns li{display:grid;grid-template-columns:1fr auto;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line)}
.towns b{font-size:1.1rem}
.towns span{color:var(--muted);font-size:.95rem}
.towns p{grid-column:1/-1;margin:0;color:var(--soft);font-size:.95rem}
.map{position:relative;aspect-ratio:4/3;border:1px solid var(--line);border-radius:4px;overflow:hidden;background:
  repeating-linear-gradient(0deg,transparent 0 38px,rgba(235,231,223,.05) 38px 39px),
  repeating-linear-gradient(90deg,transparent 0 38px,rgba(235,231,223,.05) 38px 39px),var(--deep)}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.3) invert(.9) hue-rotate(180deg)}
.map-ph{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;text-align:center;gap:.8rem;padding:1.5rem}
.map-ph p{margin:0;color:var(--muted);font-size:.9rem;max-width:34ch}
.pin{width:22px;height:22px;border-radius:50% 50% 50% 0;background:var(--rope-hi);transform:rotate(-45deg);box-shadow:0 0 0 8px rgba(196,33,41,.18)}
@media (max-width:880px){.local .wrap{grid-template-columns:1fr}}

/* faq */
.faq .wrap{max-width:860px}
details{border-bottom:1px solid var(--line)}
summary{cursor:pointer;list-style:none;padding:1.3rem 2.5rem 1.3rem 0;font-weight:700;font-size:1.1rem;position:relative}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";position:absolute;right:0;top:50%;transform:translateY(-50%);font-family:var(--display);font-size:2rem;color:var(--rope-hi);transition:transform .25s}
details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
details p{margin:0 0 1.4rem;color:var(--soft);max-width:65ch}
details[open] p{animation:drop .35s ease}
@keyframes drop{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* kontakt */
.contact .wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem)}
.channels{list-style:none;padding:0;margin:2rem 0 0}
.channels li{padding:1rem 0;border-bottom:1px solid var(--line)}
.channels small{display:block;color:var(--muted);font-size:.85rem}
.channels a{font-size:1.25rem;font-weight:700;text-decoration:none}
.channels a:hover{color:var(--brass)}
form{display:grid;gap:1rem}
form label{display:grid;gap:.35rem;font-size:.9rem;color:var(--muted)}
input,select,textarea{font:inherit;font-size:1rem;color:var(--tape);background:var(--canvas);border:1px solid var(--line);border-radius:3px;padding:.85rem 1rem;width:100%}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brass)}
textarea{min-height:130px;resize:vertical}
.consent{display:flex!important;gap:.6rem;align-items:flex-start;font-size:.85rem}
.consent input{width:auto;margin-top:.25rem}
.consent a{color:var(--tape)}
.form-msg{min-height:1.4em;font-size:.95rem;color:var(--brass)}
@media (max-width:880px){.contact .wrap{grid-template-columns:1fr}}

/* stopka */
.footer{background:var(--deep);border-top:4px solid var(--rope);padding:4rem 0 0;font-size:.95rem;color:var(--muted)}
.f-grid{display:grid;grid-template-columns:1.4fr 1fr 1.2fr 1fr;gap:2.5rem}
.footer h3{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:1.3rem;color:var(--tape);margin:0 0 1rem;letter-spacing:.02em}
.footer ul{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.footer a{color:var(--muted);text-decoration:none;transition:color .2s}
.footer a:hover{color:var(--tape)}
.f-brand p{margin:.9rem 0 1.3rem;max-width:34ch}
.f-brand .logo{font-size:2rem;color:var(--tape)}
.social{display:flex;gap:.6rem}
.social a{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:50%;color:var(--tape);transition:background .2s,border-color .2s}
.social a:hover{background:var(--rope);border-color:var(--rope)}
.f-contact li{display:grid;gap:.1rem}
.f-contact small{color:#6f757d;font-size:.8rem}
.f-contact a,.f-contact span{color:var(--tape)}
.f-bottom{margin-top:3rem;border-top:1px solid var(--line);padding:1.4rem 0 1.6rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:.85rem}
.f-bottom nav{display:flex;flex-wrap:wrap;gap:1.2rem}
.f-bottom button{background:none;border:0;padding:0;font:inherit;color:var(--muted);cursor:pointer}
.f-bottom button:hover{color:var(--tape)}
.credit a{color:var(--tape)}
@media (max-width:900px){.f-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.f-grid{grid-template-columns:1fr}}

/* baner cookies */
.cookie{position:fixed;left:1rem;right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom,0px));z-index:80;max-width:560px;margin-inline:auto;background:var(--canvas);border:1px solid var(--line);border-top:4px solid var(--rope);border-radius:4px;padding:1.3rem 1.4rem;box-shadow:0 20px 50px rgba(0,0,0,.5);transform:translateY(140%);transition:transform .5s cubic-bezier(.2,.9,.3,1.2);visibility:hidden}
.cookie.show{transform:none;visibility:visible}
.cookie h2{font-size:1.5rem;margin:0 0 .5rem}
.cookie p{margin:0 0 1rem;font-size:.92rem;color:var(--soft)}
.cookie .row{display:flex;gap:.6rem;flex-wrap:wrap}
.cookie .btn{padding:.65rem 1.1rem;font-size:.92rem}

.mobile-cta{display:none}
@media (max-width:880px){
  .mobile-cta{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;gap:.5rem;padding:.6rem .8rem calc(.6rem + env(safe-area-inset-bottom,0px));background:rgba(22,25,29,.96);border-top:1px solid var(--line);transform:translateY(110%);transition:transform .35s}
  .mobile-cta.show{transform:none}
  .mobile-cta .btn{flex:1;padding:.75rem}
  .footer{padding-bottom:5rem}
}

/* ---------- animacje ---------- */
@media (prefers-reduced-motion:no-preference){
  .ropes span{animation:snap .9s cubic-bezier(.2,1.4,.4,1) both}
  .ropes span:nth-child(2){animation-delay:.12s}.ropes span:nth-child(3){animation-delay:.24s}
  @keyframes snap{from{transform:translateY(0) rotate(-3deg) scaleX(0)}to{transform:translateY(0) rotate(-3deg) scaleX(1)}}
  .ropes.hit span{animation:wobble .7s ease-out both}
  .ropes.hit span:nth-child(2){animation-delay:.05s}.ropes.hit span:nth-child(3){animation-delay:.1s}
  @keyframes wobble{0%{transform:translateY(var(--py,0)) rotate(-3deg)}20%{transform:translateY(calc(var(--py,0px) + 10px)) rotate(-2deg)}45%{transform:translateY(calc(var(--py,0px) - 6px)) rotate(-3.6deg)}70%{transform:translateY(calc(var(--py,0px) + 3px)) rotate(-2.8deg)}100%{transform:translateY(var(--py,0)) rotate(-3deg)}}
  .name > span > span{animation:rise .9s cubic-bezier(.2,.9,.2,1) both}
  .name > span:nth-child(2) > span{animation-delay:.12s}
  @keyframes rise{from{transform:translateY(105%)}to{transform:none}}
  .role,.lead,.cta{animation:fade .8s .35s both}
  .lead{animation-delay:.45s}.cta{animation-delay:.55s}
  @keyframes fade{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
  .hero-photo img{animation:punch 1.4s cubic-bezier(.2,.8,.2,1) both}
  @keyframes punch{from{transform:scale(1.12);filter:brightness(.4)}to{transform:none;filter:none}}
  .ticker-track{animation:marquee 32s linear infinite}
  .ticker:hover .ticker-track{animation-play-state:paused}
  @keyframes marquee{to{transform:translateX(-50%)}}
  [data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1);transition-delay:var(--d,0s)}
  [data-reveal].in{opacity:1;transform:none}
  .clock.ding{animation:ding .5s}
  @keyframes ding{20%{transform:translateX(-6px)}40%{transform:translateX(5px)}60%{transform:translateX(-3px)}80%{transform:translateX(2px)}}
}

/* ---------- strony tekstowe (polityki, 404) ---------- */
.doc{padding:clamp(3rem,7vw,5rem) 0 clamp(4rem,8vw,6rem)}
.doc .wrap{max-width:820px}
.doc h1{font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:clamp(2.6rem,7vw,4rem);line-height:.95;margin:0 0 .8rem}
.doc h2{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:1.6rem;line-height:1.1;margin:2.6rem 0 .8rem}
.doc p,.doc li{color:var(--soft)}
.doc a{color:var(--brass)}
.doc table{width:100%;border-collapse:collapse;font-size:.92rem;margin:1rem 0;display:block;overflow-x:auto}
.doc th,.doc td{text-align:left;padding:.7rem .5rem;border-bottom:1px solid var(--line);vertical-align:top;color:var(--soft)}
.doc th{color:var(--tape)}
.doc .box{background:var(--canvas);border-left:4px solid var(--rope);padding:1rem 1.2rem;border-radius:3px}
.doc .upd{color:var(--muted);font-size:.9rem}

/* ---------- formularz: stany ---------- */
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.form-msg.ok{color:#7bd389}
.form-msg.err{color:#ff7b7b}
form[aria-busy="true"] button[type="submit"]{opacity:.6;pointer-events:none}
.admin-bar .nav{top:32px}
@media (max-width:782px){.admin-bar .nav{top:46px}}

.doc a.btn{color:#fff}
