/* Ś.F.R. GROUP – style witryny (wartości 1:1 z projektu) */

body{margin:0;background:#F6F7F8}
a{color:#1F2328}a:hover{color:#1F2328}
.sfr *{box-sizing:border-box}
.sfr [hidden]{display:none !important}
.sfr :focus-visible{outline:3px solid #1F2328;outline-offset:2px}
.sfr .on-dark :focus-visible{outline-color:#FFFFFF}
.skip{position:absolute;left:16px;top:-120px;z-index:100;padding:12px 20px;border-radius:999px;background:#1F2328;color:#FFFFFF !important;font-family:Montserrat,sans-serif;font-weight:600;font-size:15px;text-decoration:none}
.skip:focus{top:16px}

/* Przyklejony nagłówek (z przesunięciem pod pasek administratora WordPress) */
.hdr-sticky{position:sticky;top:0;z-index:40;display:block}
.admin-bar .hdr-sticky{top:32px}
@media (max-width:782px){.admin-bar .hdr-sticky{top:46px}}
@media (max-width:600px){.admin-bar .hdr-sticky{top:0}}

/* Przyciski i linki */
.btn{transition:background-color 150ms ease,color 150ms ease,border-color 150ms ease,transform 300ms cubic-bezier(0.22,1,0.36,1),box-shadow 300ms cubic-bezier(0.22,1,0.36,1)}
.btn:hover,.btn:focus-visible{transform:scale(1.06)}
.btn:active{transform:scale(0.97);transition-duration:120ms}
.btn-cta:hover,.btn-cta:focus-visible{box-shadow:0 10px 24px rgba(240,122,34,0.32)}
.btn-cta:hover{background:#E66A10 !important}
.btn-sec:hover{background:#1F2328 !important;color:#FFFFFF !important}
.btn-ghost-dark:hover{background:#FFFFFF !important;color:#16213E !important}
.btn-soft:hover{background:#E1E4E8 !important}
.btn[disabled]{opacity:0.7;cursor:progress !important}
.nav-link{transition:background-color 200ms ease,transform 300ms cubic-bezier(0.22,1,0.36,1)}
.nav-link:hover,.nav-link:focus-visible{transform:scale(1.08)}
.nav-link:active{transform:scale(0.97)}
.nav-link:hover,.nav-link.is-active{background:#F1F2F4 !important}
.lnk svg,.tile-more svg{transition:transform 300ms cubic-bezier(0.22,1,0.36,1)}
.lnk:hover svg,.lnk:focus-visible svg,.tile:hover .tile-more svg,.tile:focus-visible .tile-more svg{transform:translateX(4px)}
.lnk:hover,.tile:hover .tile-more{text-decoration:underline !important;text-underline-offset:3px}

/* Karty, powiększenie zdjęć, efekt 3D kafelków */
.card-lift{transition:box-shadow 450ms cubic-bezier(0.22,1,0.36,1),transform 450ms cubic-bezier(0.22,1,0.36,1)}
.card-lift:hover{box-shadow:0 8px 24px rgba(31,35,40,0.08) !important}
.card-lift.zoom:hover,.card-lift.zoom:focus-visible,.card-lift.zoom:focus-within{transform:translateY(-6px);box-shadow:0 18px 40px rgba(31,35,40,0.14) !important}
.zoom img{transition:transform 800ms cubic-bezier(0.22,1,0.36,1),filter 800ms cubic-bezier(0.22,1,0.36,1);will-change:transform;backface-visibility:hidden}
.zoom:hover img,.zoom:focus-visible img,.zoom:focus-within img{transform:scale(1.08);filter:brightness(1.04)}
.zoom:hover img.no-zoom,.zoom:focus-visible img.no-zoom,.zoom:focus-within img.no-zoom{transform:none;filter:none}
.logo-link img{transition:transform 450ms cubic-bezier(0.22,1,0.36,1);transform-origin:50% 50%}
.logo-link:hover img,.logo-link:focus-visible img{transform:scale(1.12)}
.logo-link:active img{transform:scale(1.04);transition-duration:120ms}
.tilt{position:relative;transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform var(--tdur,700ms) cubic-bezier(0.22,1,0.36,1),box-shadow 450ms cubic-bezier(0.22,1,0.36,1);will-change:transform}
.tilt.card-lift.zoom:hover,.tilt.card-lift.zoom:focus-visible,.tilt.card-lift.zoom:focus-within{transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(-8px) scale(1.015)}
.tilt-glare{position:absolute;inset:0;z-index:3;pointer-events:none;border-radius:inherit;background:radial-gradient(520px circle at var(--gx,50%) var(--gy,30%),rgba(255,255,255,0.32),rgba(255,255,255,0.08) 30%,rgba(255,255,255,0) 55%);opacity:0;transition:opacity 450ms ease}
.tilt:hover .tilt-glare{opacity:1}

/* Przejścia między stronami */
@keyframes sfr-leave{to{opacity:0;translate:0 -18px;filter:blur(8px)}}
.is-leaving main,.is-leaving footer{animation:sfr-leave 420ms cubic-bezier(0.4,0,0.2,1) forwards;pointer-events:none}
.from-nav .hdr-wrap{animation:none}
.from-tile .hero-fig,.from-tile .hero-fig img{animation:none}
.tr-fly{position:fixed;z-index:300;pointer-events:none;overflow:hidden;background:#E1E4E8;box-shadow:0 30px 80px rgba(20,23,27,0.35);transition-property:left,top,width,height,border-radius,opacity}

/* Nagłówek */
.hdr-phone{transition:transform 300ms cubic-bezier(0.22,1,0.36,1),background-color 200ms ease}
.hdr-phone:hover,.hdr-phone:focus-visible{transform:scale(1.08);background:#F1F2F4}
.hdr-phone:active{transform:scale(0.97);transition-duration:120ms}
.ring{transform-origin:50% 50%;animation:sfr-ring 5s ease-in-out infinite}
.ring-wrap:hover .ring,.ring-wrap:focus-visible .ring{animation:sfr-ring-on 900ms ease-in-out infinite}
@keyframes sfr-ring{0%,60%,100%{transform:rotate(0deg)}62%{transform:rotate(-18deg)}64%{transform:rotate(15deg)}66%{transform:rotate(-15deg)}68%{transform:rotate(12deg)}70%{transform:rotate(-10deg)}72%{transform:rotate(8deg)}74%{transform:rotate(-5deg)}76%{transform:rotate(0deg)}}
@keyframes sfr-ring-on{0%,100%{transform:rotate(0deg)}10%{transform:rotate(-16deg)}20%{transform:rotate(14deg)}30%{transform:rotate(-12deg)}40%{transform:rotate(10deg)}50%{transform:rotate(-6deg)}60%{transform:rotate(0deg)}}
.hdr-bar{height:96px}.hdr-plate{padding:0 12px 0 24px}.hdr-logo{height:72px}
.hdr-wrap{padding-top:12px;transition:padding-top 500ms cubic-bezier(0.22,1,0.36,1)}
.hdr-bar{transition:height 500ms cubic-bezier(0.22,1,0.36,1),box-shadow 500ms cubic-bezier(0.22,1,0.36,1),background-color 500ms ease}
.hdr-logo{transition:height 500ms cubic-bezier(0.22,1,0.36,1)}
.hdr-progress{position:absolute;left:0;right:0;bottom:0;height:3px;background:#F07A22;transform-origin:0 50%;transform:scaleX(var(--sfr-progress,0));opacity:0;transition:opacity 400ms ease;pointer-events:none}
.is-stuck .hdr-wrap{padding-top:8px}
.is-stuck .hdr-bar{height:76px;background:rgba(255,255,255,0.86) !important;-webkit-backdrop-filter:saturate(1.6) blur(14px);backdrop-filter:saturate(1.6) blur(14px);box-shadow:0 1px 2px rgba(31,35,40,0.08),0 16px 40px rgba(31,35,40,0.16) !important}
.is-stuck .hdr-logo{height:58px}
.is-stuck .hdr-progress{opacity:1}

/* Animacje wejścia */
@keyframes sfr-down{from{opacity:0;translate:0 -28px}to{opacity:1;translate:0 0}}
@keyframes sfr-up{from{opacity:0;translate:0 32px}to{opacity:1;translate:0 0}}
@keyframes sfr-blur{from{opacity:0;translate:0 36px;filter:blur(10px)}to{opacity:1;translate:0 0;filter:blur(0)}}
@keyframes sfr-pop{from{opacity:0;scale:0.82}to{opacity:1;scale:1}}
@keyframes sfr-wipe{from{clip-path:inset(0 100% 0 0 round 24px)}to{clip-path:inset(0 0 0 0 round 24px)}}
@keyframes sfr-settle{from{scale:1.18}to{scale:1}}
@keyframes sfr-fade{from{opacity:0}to{opacity:1}}
.intro-down{animation:sfr-down 900ms cubic-bezier(0.22,1,0.36,1) both}
.intro-up,.intro-list>li{animation:sfr-up 1000ms cubic-bezier(0.22,1,0.36,1) both}
.intro-blur{animation:sfr-blur 1200ms cubic-bezier(0.22,1,0.36,1) both}
.intro-pop{animation:sfr-pop 900ms cubic-bezier(0.34,1.56,0.64,1) both}
.intro-wipe{animation:sfr-wipe 1400ms cubic-bezier(0.77,0,0.18,1) both}
.intro-wipe img{animation:sfr-settle 2000ms cubic-bezier(0.22,1,0.36,1) both}
.seg-in{animation:sfr-up 800ms cubic-bezier(0.22,1,0.36,1) both}
.d1{animation-delay:150ms}.d2,.intro-wipe.d2 img{animation-delay:250ms}.d3{animation-delay:350ms}.d4{animation-delay:500ms}.d5{animation-delay:620ms}.d6{animation-delay:740ms}.d7{animation-delay:860ms}

/* Odsłanianie przy przewijaniu (klasa rv-on dodawana przez skrypt; bez JS treść jest widoczna) */
.rv-on .rv,.rv-on .rv-s,.rv-on .rv-grid>*{opacity:0;translate:0 56px;transition-property:opacity,translate,scale,filter,transform,box-shadow;transition-duration:1000ms,1100ms,1100ms,900ms,var(--tdur,450ms),450ms;transition-timing-function:cubic-bezier(0.22,1,0.36,1);transition-delay:0ms,0ms,0ms,0ms,0ms,0ms}
.rv-on .rv{filter:blur(8px)}
.rv-on .rv-s,.rv-on .rv-grid>*{scale:0.94}
.rv-on .rv-grid>*:nth-child(4n+2){transition-delay:110ms,110ms,110ms,110ms,0ms,0ms}
.rv-on .rv-grid>*:nth-child(4n+3){transition-delay:220ms,220ms,220ms,220ms,0ms,0ms}
.rv-on .rv-grid>*:nth-child(4n+4){transition-delay:330ms,330ms,330ms,330ms,0ms,0ms}
.rv-on .rv.is-in,.rv-on .rv-s.is-in,.rv-on .rv-grid>.is-in{opacity:1;translate:0 0;scale:1;filter:blur(0)}

/* Widoczność zależna od szerokości ekranu */
@media (max-width:1199px){.xl-only{display:none !important}}
@media (max-width:1023px){.d-only{display:none !important}.hdr-bar{height:72px}.hdr-plate{padding:0 8px 0 16px}.hdr-logo{height:52px}.is-stuck .hdr-bar{height:62px}.is-stuck .hdr-logo{height:44px}}
@media (min-width:1024px){.m-only{display:none !important}}
@media (max-width:767px){.t-up{display:none !important}}
@media (min-width:768px){.p-only{display:none !important}}

@media (prefers-reduced-motion:reduce){.sfr *{transition:none !important;animation:none !important}.zoom:hover img,.zoom:focus-visible img,.zoom:focus-within img{transform:none;filter:none}.card-lift.zoom:hover,.card-lift.zoom:focus-visible,.card-lift.zoom:focus-within{transform:none}.btn:hover,.btn:focus-visible,.btn:active,.nav-link:hover,.nav-link:focus-visible,.nav-link:active,.lnk:hover svg,.lnk:focus-visible svg,.tile:hover .tile-more svg,.logo-link:hover img,.logo-link:focus-visible img,.logo-link:active img,.tilt,.tilt.card-lift.zoom:hover,.tilt.card-lift.zoom:focus-visible,.tilt.card-lift.zoom:focus-within{transform:none}.tilt-glare{display:none}.hdr-phone:hover,.hdr-phone:focus-visible,.hdr-phone:active,.ring{transform:none}}

/* Menu mobilne */
.mm{animation:sfr-fade 220ms ease both}

/* Mapa w sekcji kontaktu */
.map-card .map-bg{transition:transform 1100ms cubic-bezier(0.22,1,0.36,1);transform-origin:50% 46%}
.map-card:hover .map-bg{transform:scale(1.08)}
.map-card .mp-park{transition:fill 600ms ease}
.map-card:hover .mp-park{fill:#C6DECB}
.map-ring{position:absolute;left:0;top:0;width:110px;height:110px;margin:-55px 0 0 -55px;border-radius:50%;background:rgba(31,35,40,0.12);animation:map-pulse 2800ms cubic-bezier(0.22,1,0.36,1) infinite;transition:background-color 400ms ease}
.map-ring.r2{animation-delay:1400ms}
.map-card:hover .map-ring{background:rgba(240,122,34,0.22)}
@keyframes map-pulse{0%{transform:scale(0.25);opacity:0.9}100%{transform:scale(1.5);opacity:0}}
.map-pin-ico{position:absolute;left:-20px;top:-52px;width:40px;height:52px;overflow:visible;transform-origin:50% 100%;filter:drop-shadow(0 6px 10px rgba(31,35,40,0.28))}
.map-pin-body{transition:fill 400ms ease}
.map-card:hover .map-pin-body{fill:#F07A22}
.map-card:hover .map-pin-ico{animation:map-bounce 950ms cubic-bezier(0.22,1,0.36,1) both}
@keyframes map-bounce{0%{transform:translateY(0) scale(1)}35%{transform:translateY(-18px) scale(1.14)}60%{transform:translateY(0) scale(1.12,0.94)}80%{transform:translateY(-5px) scale(1.1)}100%{transform:translateY(0) scale(1.1)}}
.map-cap{transition:transform 500ms cubic-bezier(0.22,1,0.36,1),box-shadow 500ms cubic-bezier(0.22,1,0.36,1)}
.map-card:hover .map-cap{transform:translateY(-4px);box-shadow:0 16px 36px rgba(31,35,40,0.18) !important}
@media (prefers-reduced-motion:reduce){.map-card .map-bg,.map-card:hover .map-bg,.map-cap,.map-card:hover .map-cap{transition:none;transform:none}.map-ring{animation:none;opacity:0.5;transform:scale(0.6)}.map-card:hover .map-pin-ico{animation:none}}

/* Stopka */
.ft-link{transition:transform 300ms cubic-bezier(0.22,1,0.36,1),background-color 200ms ease,color 150ms ease}
.ft-link:hover,.ft-link:focus-visible{transform:scale(1.08);background:#F1F2F4;color:#1F2328 !important}
.ft-link:active{transform:scale(0.97);transition-duration:120ms}
@media (prefers-reduced-motion:reduce){.ft-link,.ft-link:hover,.ft-link:focus-visible,.ft-link:active{transition:none;transform:none}}

/* Okienko wyceny */
.qf-panel{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:24px}
.qf-backdrop{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;background:rgba(30,34,39,0.55);cursor:default;animation:qf-fade 250ms ease both}
.qf-panel .qf-box{position:relative;width:min(640px,100%);max-height:100%;overflow-y:auto;overscroll-behavior:contain;background:#FFFFFF;border-radius:24px;box-shadow:0 24px 64px rgba(20,23,27,0.28);animation:qf-in 380ms cubic-bezier(0.22,1,0.36,1) both}
.qf-panel .qf-head{position:sticky;top:0;z-index:2;border-bottom:1px solid #E1E4E8}
.qf-inline .qf-box{background:#FFFFFF;border-radius:24px;box-shadow:0 1px 2px rgba(31,35,40,0.04),0 12px 32px rgba(31,35,40,0.06)}
.qf-inline .qf-head{border-radius:24px 24px 0 0}
.qf-opt{transition:border-color 150ms ease,background-color 150ms ease}
.qf-opt:hover{border-color:#1F2328 !important}
@keyframes qf-fade{from{opacity:0}to{opacity:1}}
@keyframes qf-in{from{opacity:0;translate:0 16px;scale:0.97}to{opacity:1;translate:0 0;scale:1}}
@media (max-width:767px){.qf-panel{padding:0}.qf-panel .qf-box{width:100%;height:100%;max-height:none;border-radius:0}}
@media (prefers-reduced-motion:reduce){.qf-backdrop,.qf-panel .qf-box{animation:none}}
.admin-bar .qf-panel{top:32px}
@media (max-width:782px){.admin-bar .qf-panel{top:46px}}

/* Plakietka pory roku */
.season-chip .season-ico{transition:transform 600ms cubic-bezier(0.34,1.56,0.64,1)}
.zoom:hover .season-ico{transform:rotate(-12deg) scale(1.12)}

/* Oferta: wybór rodzaju klienta */
.seg-card .seg-go{transition:transform 300ms cubic-bezier(0.22,1,0.36,1),background-color 200ms ease,color 200ms ease}
.seg-card:hover .seg-go,.seg-card:focus-visible .seg-go{transform:translateX(4px);background:#1F2328;color:#FFFFFF}
.seg-card.is-picked{box-shadow:0 0 0 3px #1F2328,0 18px 40px rgba(31,35,40,0.14) !important}
.seg-card.is-picked .seg-go{background:#1F2328;color:#FFFFFF}

/* Galeria: filtr i podgląd powiększenia */
.g-btn[aria-pressed="true"]{background:#1F2328 !important;color:#FFFFFF !important;border-color:#1F2328 !important}
.g-btn:hover{border-color:#1F2328 !important}
.lb{animation:sfr-fade 220ms ease both}
.lb-img{animation:sfr-pop 420ms cubic-bezier(0.22,1,0.36,1) both}
.lb .btn:hover{background:rgba(255,255,255,0.24) !important}
@media (max-width:767px){.lb-nav{position:absolute;bottom:88px}.lb-nav:first-of-type{left:16px}.lb-nav:last-of-type{right:16px}}
.admin-bar .lb{top:32px}
@media (max-width:782px){.admin-bar .lb{top:46px}}

/* Treść stron zapasowych */
.sfr-content > article > :where(p, ul, ol){margin:0 0 1em}
.sfr-content :where(h2, h3){font-family:Montserrat,sans-serif;font-weight:700;letter-spacing:-0.01em;line-height:1.25}
