/* ==========================================================================
   Rzyki — Joomla 3.9.2 Template
   Soft Alpine Design — based on Prototype 6.2
   ========================================================================== */

/* CSS VARIABLES */
:root{
  --snow:#fafcff;--ice:#e8f2f8;--mist:#c5dce8;--lake:#5b9ab8;--pine:#2b5c3e;--stone:#6b7c8a;--dusk:#1e3344;--gold:#d4a843;--blush:#e8d5c4;--fog:rgba(91,154,184,.12);
  --ff:'Cormorant Garamond',Georgia,serif;--fb:'Outfit',system-ui,sans-serif
}

/* RESET */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--fb);background:var(--snow);color:var(--dusk);overflow-x:hidden}

/* FLOATING PARTICLES (CSS only) */
.particles{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:1}
.particle{position:absolute;border-radius:50%;animation:float linear infinite;opacity:0}
.particle:nth-child(1){width:3px;height:3px;background:rgba(255,255,255,.6);left:10%;top:80%;animation-duration:8s;animation-delay:-2s}
.particle:nth-child(2){width:2px;height:2px;background:rgba(255,255,255,.4);left:25%;top:90%;animation-duration:11s;animation-delay:-5s}
.particle:nth-child(3){width:4px;height:4px;background:rgba(255,255,255,.5);left:40%;top:70%;animation-duration:9s;animation-delay:-1s}
.particle:nth-child(4){width:2px;height:2px;background:rgba(255,255,255,.3);left:60%;top:85%;animation-duration:13s;animation-delay:-7s}
.particle:nth-child(5){width:3px;height:3px;background:rgba(255,255,255,.5);left:75%;top:75%;animation-duration:10s;animation-delay:-3s}
.particle:nth-child(6){width:2px;height:2px;background:rgba(255,255,255,.4);left:90%;top:90%;animation-duration:7s;animation-delay:-4s}
@keyframes float{0%{transform:translateY(0) translateX(0);opacity:0}10%{opacity:1}90%{opacity:1}100%{transform:translateY(-100vh) translateX(30px);opacity:0}}

/* TOPBAR */
.topbar{background:var(--dusk);color:rgba(255,255,255,.5);font-size:.72rem;padding:6px 48px;display:flex;justify-content:space-between;align-items:center;font-family:var(--fb);gap:12px}
.topbar a{color:rgba(255,255,255,.5);text-decoration:none;margin-left:12px;transition:color .2s}
.topbar a:hover{color:var(--gold)}
.topbar-status{display:flex;align-items:center;gap:6px;white-space:nowrap;flex-shrink:0}
.topbar-links{display:flex;align-items:center;flex-shrink:0}
.status-dot{width:6px;height:6px;background:#5bc84a;border-radius:50%;animation:blink 3s infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.4}}

/* TOPBAR WEATHER */
.tb-weather{display:flex;align-items:center;gap:10px;flex:1;justify-content:center;flex-wrap:wrap}
.tb-w-item{display:inline-flex;align-items:center;gap:3px;color:rgba(255,255,255,.65);font-size:.72rem;font-weight:500;white-space:nowrap}
.tb-w-dim{color:rgba(255,255,255,.4);font-size:.68rem}
.tb-sep{color:rgba(255,255,255,.15);margin:0 2px}
.aqi-badge-sm{padding:1px 7px;font-size:.64rem;border-radius:100px}

/* HEADER */
header{background:rgba(250,252,255,.95);backdrop-filter:blur(16px);border-bottom:1px solid var(--mist);position:sticky;top:0;z-index:200;transition:box-shadow .3s}
header.scrolled{box-shadow:0 4px 32px rgba(30,51,68,.08)}
.hdr{max-width:1300px;margin:0 auto;padding:0 48px;display:flex;align-items:center;height:72px;gap:32px}
.logo{text-decoration:none;display:flex;align-items:center;gap:12px;padding-right:28px;border-right:1px solid var(--mist)}
.logo-orb{width:42px;height:42px;background:linear-gradient(135deg,var(--pine),var(--lake));border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.2rem;box-shadow:0 4px 14px rgba(43,92,62,.3)}
.logo-orb img{width:28px;height:28px;object-fit:contain}
.logo-txt .vname{font-family:var(--ff);font-size:1.5rem;font-weight:600;color:var(--dusk);line-height:1;letter-spacing:.01em;display:block}
.logo-txt .vsub{font-size:.65rem;color:var(--stone);letter-spacing:.12em;text-transform:uppercase;display:block}
nav.main-nav{display:flex;gap:2px;flex:1}
nav.main-nav a,
nav.main-nav .nav-child a{text-decoration:none;color:var(--stone);font-size:.84rem;font-weight:500;padding:8px 14px;border-radius:8px;transition:all .2s;letter-spacing:.01em}
nav.main-nav a:hover,
nav.main-nav a.act,
nav.main-nav a.active,
nav.main-nav .active > a,
nav.main-nav .act > a{color:var(--pine);background:rgba(43,92,62,.08)}
/* Joomla menu items */
nav.main-nav ul{list-style:none;display:flex;gap:2px;margin:0;padding:0}
nav.main-nav li{position:relative}
nav.main-nav .nav-child{display:none;position:absolute;top:100%;left:0;background:#fff;border:1px solid var(--mist);border-radius:10px;padding:6px;min-width:200px;box-shadow:0 8px 24px rgba(30,51,68,.1);z-index:300;flex-direction:column}
nav.main-nav li:hover > .nav-child{display:flex}
nav.main-nav .nav-child a{padding:8px 12px;border-radius:6px;font-size:.82rem;white-space:nowrap}
nav.main-nav .nav-child{list-style:none}
nav.main-nav .nav-child li{position:static}
.hdr-end{margin-left:auto;display:flex;align-items:center;gap:10px}
.hdr-search{width:32px;height:32px;border:1px solid var(--mist);border-radius:8px;background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--stone);transition:all .2s;font-size:.9rem}
.hdr-search:hover{border-color:var(--lake);color:var(--lake)}
.hdr-cta{background:var(--pine);color:#fff;text-decoration:none;padding:8px 18px;border-radius:8px;font-size:.82rem;font-weight:600;transition:all .2s;box-shadow:0 2px 8px rgba(43,92,62,.25)}
.hdr-cta:hover{background:#1f4430;transform:translateY(-1px)}

/* HERO — FROSTED ALPINE */
.hero{position:relative;min-height:92vh;display:flex;align-items:center;overflow:hidden;background:var(--dusk)}
.hero-bg{position:absolute;inset:0;background:center/cover no-repeat;filter:brightness(.55) saturate(1.2);transform:scale(1.04);animation:gentle-zoom 20s ease-in-out infinite alternate}
@keyframes gentle-zoom{from{transform:scale(1.04)}to{transform:scale(1.10)}}
.hero-gradient{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(30,51,68,.4) 0%,rgba(30,51,68,.7) 60%,rgba(30,51,68,.95) 100%)}
.hero-inner{position:relative;z-index:3;max-width:1300px;margin:0 auto;padding:0 48px;width:100%;display:grid;grid-template-columns:1fr 480px;gap:60px;align-items:center}

/* FROSTED GLASS CARD */
.glass-card{background:rgba(255,255,255,.08);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);border:1px solid rgba(255,255,255,.2);border-radius:20px;padding:32px;box-shadow:0 20px 60px rgba(0,0,0,.3),inset 0 1px 0 rgba(255,255,255,.2)}
.gc-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.25);padding:6px 14px;border-radius:100px;margin-bottom:20px;font-size:.72rem;color:rgba(255,255,255,.85);font-weight:500;letter-spacing:.08em}
.gc-title{font-family:var(--ff);font-size:1.5rem;font-weight:600;color:#fff;line-height:1.25;margin-bottom:14px;letter-spacing:.01em}
.gc-excerpt{font-size:.84rem;color:rgba(255,255,255,.65);line-height:1.7;margin-bottom:20px;font-weight:300}
.gc-meta{display:flex;gap:14px;font-size:.73rem;color:rgba(255,255,255,.45)}
.gc-divider{border:none;border-top:1px solid rgba(255,255,255,.12);margin:20px 0}
.gc-links{display:flex;flex-direction:column;gap:8px}
.gc-link{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:rgba(255,255,255,.07);border-radius:8px;text-decoration:none;color:rgba(255,255,255,.75);font-size:.82rem;transition:all .2s;border:1px solid rgba(255,255,255,.08)}
.gc-link:hover{background:rgba(255,255,255,.14);color:#fff}
.gc-link-icon{font-size:1rem}

/* HERO TEXT */
.hero-eyebrow{display:flex;align-items:center;gap:10px;margin-bottom:20px;animation:hf .8s .2s both}
@keyframes hf{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.he-line{width:32px;height:2px;background:var(--gold)}
.he-txt{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:600}
.hero h1{font-family:var(--ff);font-size:clamp(2.8rem,5.5vw,5.2rem);font-weight:300;color:#fff;line-height:1.08;letter-spacing:-.02em;margin-bottom:22px;animation:hf .8s .4s both}
.hero h1 em{font-style:italic;color:rgba(255,255,255,.65)}
.hero h1 strong{font-weight:600}
.hero-sub{font-size:.95rem;color:rgba(255,255,255,.65);line-height:1.8;max-width:400px;margin-bottom:36px;animation:hf .8s .6s both;font-weight:300}
.hero-btns{display:flex;gap:12px;animation:hf .8s .8s both}
.btn-pine{background:var(--pine);color:#fff;text-decoration:none;padding:13px 26px;border-radius:10px;font-weight:600;font-size:.88rem;transition:all .25s;box-shadow:0 4px 16px rgba(43,92,62,.4)}
.btn-pine:hover{background:#1f4430;transform:translateY(-2px);box-shadow:0 8px 24px rgba(43,92,62,.5)}
.btn-frost{background:rgba(255,255,255,.1);color:#fff;text-decoration:none;padding:11px 24px;border-radius:10px;font-weight:500;font-size:.88rem;border:1px solid rgba(255,255,255,.2);transition:all .2s;backdrop-filter:blur(8px)}
.btn-frost:hover{background:rgba(255,255,255,.18)}
.hero-scroll{position:absolute;bottom:36px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;color:rgba(255,255,255,.4);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;animation:bob 2s ease-in-out infinite;z-index:3}
@keyframes bob{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(6px)}}
.scroll-line{width:1px;height:32px;background:linear-gradient(to bottom,rgba(255,255,255,.4),transparent)}

/* WAVE DIVIDER */
.wave-div{height:80px;background:var(--snow);position:relative;margin-top:-2px}
.wave-div svg{position:absolute;bottom:0;width:100%;height:100%}

/* WEATHER STRIP */
.weather-strip{background:var(--ice);border-bottom:1px solid var(--mist)}
.ws-inner{max-width:1300px;margin:0 auto;padding:0 48px;display:flex;align-items:center;gap:0}
.ws-item{flex:1;padding:14px 0;display:flex;align-items:center;gap:10px;font-size:.84rem;border-right:1px solid var(--mist)}
.ws-item:last-child{border-right:none}
.ws-item + .ws-item{padding-left:24px}
.ws-icon{font-size:1.4rem}
.ws-lbl{font-size:.68rem;color:var(--stone);text-transform:uppercase;letter-spacing:.08em;display:block;margin-bottom:1px}
.ws-val{font-weight:600;color:var(--dusk);font-size:.9rem}

/* AD BLOCK */
.ad-wrap{background:var(--ice);border:1px dashed var(--mist);border-radius:12px;position:relative;overflow:hidden}
.ad-wrap::before{content:'REKLAMA';position:absolute;top:7px;right:10px;font-size:.56rem;letter-spacing:.14em;color:var(--stone);opacity:.5;font-family:var(--fb);font-weight:600}
.ad-lead{padding:20px;min-height:80px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;text-align:center}
.ad-rect{padding:20px;min-height:220px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;text-align:center}
.ad-inline{padding:16px 20px;min-height:56px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.ad-icon-s{font-size:1.6rem;opacity:.3}
.ad-ttl{font-size:.88rem;font-weight:600;color:var(--dusk)}
.ad-txt{font-size:.72rem;color:var(--stone)}
.ad-btn{background:var(--lake);color:#fff;border:none;padding:8px 16px;border-radius:7px;font-size:.76rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .2s}
.ad-btn:hover{background:var(--dusk)}

/* MAIN CONTENT */
.main-wrap{max-width:1300px;margin:0 auto;padding:64px 48px;display:grid;grid-template-columns:1fr 340px;gap:48px}
.main-wrap.no-sidebar{grid-template-columns:1fr}

/* SECTION HEADER */
.sec-hd{margin-bottom:28px}
.sec-badge{display:inline-flex;align-items:center;gap:8px;font-size:.68rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--lake);margin-bottom:6px}
.sec-badge::before{content:'';width:14px;height:2px;background:var(--lake);border-radius:1px}
.sec-title{font-family:var(--ff);font-size:2rem;font-weight:400;color:var(--dusk);letter-spacing:.01em;line-height:1.2}
.sec-link{font-size:.82rem;color:var(--lake);text-decoration:none;font-weight:500;display:inline-flex;align-items:center;gap:5px;margin-top:8px;transition:gap .2s}
.sec-link:hover{gap:10px}

/* NEWS CARDS */
.news-grid{display:flex;flex-direction:column;gap:16px}
.n-card{background:#fff;border-radius:14px;border:1px solid var(--ice);overflow:hidden;text-decoration:none;color:inherit;transition:all .25s;display:flex;flex-direction:column}
.n-card:hover{box-shadow:0 8px 32px rgba(30,51,68,.1);transform:translateY(-3px)}
.n-card.big .n-img{height:240px}
.n-img{height:160px;overflow:hidden;position:relative}
.n-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.n-card:hover .n-img img{transform:scale(1.05)}
.n-cat{position:absolute;top:12px;left:12px;background:var(--pine);color:#fff;font-size:.64rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:4px 10px;border-radius:100px}
.n-body{padding:20px;flex:1;display:flex;flex-direction:column}
.n-date{font-size:.72rem;color:var(--stone);margin-bottom:6px}
.n-title{font-family:var(--ff);font-size:1.1rem;font-weight:500;color:var(--dusk);line-height:1.35;margin-bottom:8px;flex:1}
.n-card.big .n-title{font-size:1.4rem}
.n-excerpt{font-size:.82rem;color:var(--stone);line-height:1.65;margin-bottom:10px}
.n-read{font-size:.78rem;color:var(--lake);font-weight:600}
.news-secondary{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}

/* SIDEBAR */
.side{display:flex;flex-direction:column;gap:20px}
.widget{background:#fff;border-radius:14px;border:1px solid var(--ice);overflow:hidden}
.w-head{padding:14px 18px;border-bottom:1px solid var(--ice);display:flex;align-items:center;gap:8px;font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--stone)}
.w-head-dot{width:8px;height:8px;border-radius:50%;background:var(--lake)}
.w-body{padding:16px 18px}

/* WEATHER WIDGET */
.w-temp{font-family:var(--ff);font-size:3.8rem;font-weight:300;color:var(--dusk);line-height:1;letter-spacing:-.03em}
.w-temp sup{font-size:1.4rem;color:var(--lake)}
.w-icon-big{font-size:2.4rem;display:block;margin:4px 0}
.w-cond{font-size:.82rem;color:var(--stone);margin-bottom:14px}
.w-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.w-cell{background:var(--ice);border-radius:8px;padding:9px 12px}
.w-cell .k{font-size:.65rem;color:var(--stone);margin-bottom:2px}
.w-cell .v{font-size:.88rem;font-weight:600;color:var(--dusk)}

/* EVENTS */
.ev-row{display:flex;gap:12px;align-items:flex-start;padding:11px 0;border-bottom:1px solid var(--ice)}
.ev-row:last-child{border-bottom:none;padding-bottom:0}
.ev-date{text-align:center;min-width:44px;background:var(--lake);color:#fff;border-radius:8px;padding:8px 5px}
.ev-d{font-family:var(--ff);font-size:1.4rem;font-weight:600;line-height:1}
.ev-m{font-size:.58rem;text-transform:uppercase;letter-spacing:.1em;opacity:.8}
.ev-info{flex:1}
.ev-nm{font-size:.88rem;font-weight:600;color:var(--dusk);margin-bottom:2px}
.ev-t{font-size:.73rem;color:var(--stone)}

/* QUICK LINKS */
.ql{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;text-decoration:none;color:var(--dusk);font-size:.84rem;transition:all .18s}
.ql:hover{background:var(--ice);color:var(--pine)}
.ql-i{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:.9rem;flex-shrink:0}
.ql-arr{margin-left:auto;color:var(--mist);font-size:.9rem;transition:color .2s}
.ql:hover .ql-arr{color:var(--lake)}

/* ATTRACTIONS */
.attracts-section{background:linear-gradient(to bottom,var(--snow),var(--ice));padding:72px 48px;border-top:1px solid var(--mist)}
.attr-inner{max-width:1300px;margin:0 auto}
.attr-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:44px}
.attr-card{background:#fff;border-radius:16px;border:1px solid var(--mist);overflow:hidden;text-decoration:none;color:inherit;transition:all .25s;position:relative}
.attr-card:hover{transform:translateY(-5px);box-shadow:0 12px 40px rgba(30,51,68,.12)}
.attr-img{height:200px;overflow:hidden}
.attr-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s,filter .4s}
.attr-card:hover .attr-img img{transform:scale(1.06);filter:brightness(.9)}
.attr-badge{position:absolute;top:14px;right:14px;background:rgba(255,255,255,.9);backdrop-filter:blur(8px);border-radius:100px;padding:4px 12px;font-size:.66rem;font-weight:700;color:var(--pine);letter-spacing:.08em;text-transform:uppercase}
.attr-body{padding:22px}
.attr-icon{font-size:1.8rem;margin-bottom:10px;display:block}
.attr-title{font-family:var(--ff);font-size:1.2rem;font-weight:500;color:var(--dusk);margin-bottom:7px}
.attr-desc{font-size:.83rem;color:var(--stone);line-height:1.65;margin-bottom:12px}
.attr-link{font-size:.78rem;color:var(--lake);font-weight:600;display:inline-flex;gap:5px;align-items:center;transition:gap .2s}
.attr-card:hover .attr-link{gap:10px}

/* GALLERY */
.gallery-section{padding:72px 48px;background:var(--dusk)}
.gal-inner{max-width:1300px;margin:0 auto}
.gal-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:28px}
.gal-title{font-family:var(--ff);font-size:1.8rem;font-weight:300;color:#fff;letter-spacing:.01em}
.gal-link{color:var(--gold);font-size:.84rem;text-decoration:none;font-weight:500}
.gal-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:200px 160px;gap:8px;border-radius:16px;overflow:hidden}
.g-item{overflow:hidden;position:relative}
.g-item:nth-child(1){grid-column:span 2;grid-row:span 2}
.g-item:nth-child(3){grid-column:span 2}
.g-item img{width:100%;height:100%;object-fit:cover;transition:transform .5s,filter .4s;filter:brightness(.8) saturate(1.1)}
.g-item:hover img{transform:scale(1.06);filter:brightness(1) saturate(1.2)}
.g-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(30,51,68,.7) 0%,transparent 50%);opacity:0;transition:opacity .3s;display:flex;align-items:flex-end;padding:14px}
.g-item:hover .g-overlay{opacity:1}
.g-cap{font-family:var(--ff);font-style:italic;font-size:.88rem;color:#fff}

/* CTA BAND */
.cta-band{background:var(--pine);padding:56px 48px;text-align:center}
.cta-inner{max-width:1300px;margin:0 auto}
.cta-band h2{font-family:var(--ff);font-size:2.4rem;font-weight:400;color:#fff;margin-bottom:12px;letter-spacing:.01em}
.cta-band h2 em{font-style:italic;color:rgba(255,255,255,.7)}
.cta-band p{color:rgba(255,255,255,.65);font-size:.95rem;margin-bottom:28px;font-weight:300}
.cta-btns{display:flex;justify-content:center;gap:14px}
.cta-p{background:var(--gold);color:var(--dusk);text-decoration:none;padding:13px 28px;border-radius:10px;font-weight:700;font-size:.9rem;transition:all .2s}
.cta-p:hover{background:#e8b84a;transform:translateY(-2px)}
.cta-s{background:rgba(255,255,255,.12);color:#fff;text-decoration:none;padding:11px 26px;border-radius:10px;font-weight:500;font-size:.9rem;border:1px solid rgba(255,255,255,.25);transition:all .2s}
.cta-s:hover{background:rgba(255,255,255,.2)}

/* FOOTER */
footer{background:var(--dusk);color:rgba(232,242,248,.5);padding:60px 48px 28px}
.f-inner{max-width:1300px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:52px;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:28px}
.f-logo{font-family:var(--ff);font-size:1.6rem;font-weight:400;color:var(--snow);display:block;margin-bottom:12px;font-style:italic}
.f-desc{font-size:.84rem;line-height:1.75;margin-bottom:16px;font-weight:300}
.f-j{font-size:.68rem;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);padding:4px 10px;border-radius:5px;display:inline-block}
.f-col h4{font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:16px;font-weight:600}
.f-col ul{list-style:none;display:flex;flex-direction:column;gap:9px}
.f-col a{color:rgba(232,242,248,.45);text-decoration:none;font-size:.85rem;transition:color .2s}
.f-col a:hover{color:var(--gold)}
.f-btm{max-width:1300px;margin:0 auto;display:flex;justify-content:space-between;font-size:.73rem}

/* REVEAL ANIMATION */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(0.16,1,0.3,1),transform .7s cubic-bezier(0.16,1,0.3,1)}
.reveal.in{opacity:1;transform:none}
.reveal-r{opacity:0;transform:translateX(28px);transition:opacity .7s cubic-bezier(0.16,1,0.3,1),transform .7s cubic-bezier(0.16,1,0.3,1)}
.reveal-r.in{opacity:1;transform:none}

/* ==========================================================================
   JOOMLA ARTICLE OVERRIDES — Card & Single Article Styles
   ========================================================================== */

/* Blog / Featured view container */
.blog{margin-bottom:20px}

/* Cards without image — show colored top border */
.n-card:not(:has(.n-img)){border-top:3px solid var(--pine)}
.n-card:not(:has(.n-img)) .n-body{padding-top:16px}

/* Blog links list */
.blog-links{margin-top:24px;padding:20px;background:#fff;border-radius:14px;border:1px solid var(--ice)}
.blog-links ul{list-style:none;display:flex;flex-direction:column;gap:6px;margin:0;padding:0}
.blog-links li a{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:10px;text-decoration:none;color:var(--dusk);font-size:.88rem;font-weight:500;transition:all .2s;border:1px solid var(--ice)}
.blog-links li a:hover{background:var(--ice);color:var(--pine);border-color:var(--mist);transform:translateX(4px)}
.blog-link-date{font-size:.72rem;color:var(--stone);font-weight:400;background:var(--ice);padding:3px 8px;border-radius:5px;white-space:nowrap;flex-shrink:0}

/* Category description */
.category-desc{font-size:.9rem;color:var(--stone);line-height:1.7;margin-top:8px;max-width:600px}

/* ==========================================================================
   PAGINATION — Joomla 3.x compatible
   ========================================================================== */
.pagination-wrap{margin-top:36px;display:flex;justify-content:center}
/* Joomla outputs: <ul class="pagination-list"> or <ul class="pagination"> */
.pagination-wrap ul{display:flex;flex-wrap:wrap;gap:4px;list-style:none;margin:0;padding:0;justify-content:center}
.pagination-wrap li{display:inline}
.pagination-wrap li a,
.pagination-wrap li span{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;padding:6px 12px;border-radius:10px;font-size:.84rem;font-weight:500;text-decoration:none;color:var(--stone);background:#fff;border:1px solid var(--ice);transition:all .2s}
.pagination-wrap li a:hover{background:var(--ice);color:var(--pine);border-color:var(--mist)}
/* Active page */
.pagination-wrap li.active span,
.pagination-wrap li .active,
.pagination-wrap li.pagination-active span{background:var(--pine);color:#fff;border-color:var(--pine);font-weight:600}
/* Disabled (current page as span, or prev/next when unavailable) */
.pagination-wrap li.disabled span,
.pagination-wrap li.pagination-disabled span{opacity:.35;cursor:default;background:var(--snow)}
/* Start/End/Prev/Next buttons */
.pagination-wrap li.pagination-start a,
.pagination-wrap li.pagination-end a,
.pagination-wrap li.pagination-prev a,
.pagination-wrap li.pagination-next a{font-size:.78rem;color:var(--lake);border-color:transparent;background:transparent}
.pagination-wrap li.pagination-start a:hover,
.pagination-wrap li.pagination-end a:hover,
.pagination-wrap li.pagination-prev a:hover,
.pagination-wrap li.pagination-next a:hover{color:var(--pine);background:var(--ice)}
/* Page counter text (Strona X z Y) */
.pagination-wrap p.counter,
p.counter{text-align:center;font-size:.76rem;color:var(--stone);margin-top:10px}

/* ==========================================================================
   SINGLE ARTICLE VIEW
   ========================================================================== */
.article-single{margin-bottom:40px}

/* Hero image (fulltext image) */
.article-hero{position:relative;height:320px;border-radius:16px;overflow:hidden;margin-bottom:28px}
.article-hero img{width:100%;height:100%;object-fit:cover}
.article-hero-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(30,51,68,.3) 0%,transparent 50%)}

/* Header */
.article-header{margin-bottom:28px}
.n-cat-inline{display:inline-block;background:var(--pine);color:#fff;font-size:.64rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:4px 12px;border-radius:100px;margin-bottom:12px}
.article-title{font-family:var(--ff);font-size:clamp(1.6rem,3vw,2.4rem);font-weight:400;color:var(--dusk);line-height:1.25;margin-bottom:14px;letter-spacing:.01em}
.article-meta{display:flex;flex-wrap:wrap;gap:16px;font-size:.78rem;color:var(--stone)}
.article-meta-item{display:inline-flex;align-items:center;gap:4px}

/* Content body */
.article-content{font-size:.95rem;line-height:1.85;color:var(--dusk)}
.article-content p{margin-bottom:16px}
.article-content img{max-width:100%;height:auto;border-radius:12px;margin:20px 0}
.article-content h2{font-family:var(--ff);font-size:1.6rem;font-weight:400;color:var(--dusk);margin:32px 0 14px;padding-bottom:8px;border-bottom:1px solid var(--ice)}
.article-content h3{font-family:var(--ff);font-size:1.25rem;font-weight:500;color:var(--dusk);margin:24px 0 10px}
.article-content h4{font-size:1rem;font-weight:600;color:var(--dusk);margin:20px 0 8px}
.article-content a{color:var(--lake);text-decoration:underline;text-underline-offset:2px}
.article-content a:hover{color:var(--pine)}
.article-content ul,.article-content ol{margin:12px 0 16px 24px}
.article-content li{margin-bottom:6px}
.article-content blockquote{margin:20px 0;padding:16px 24px;border-left:3px solid var(--lake);background:var(--ice);border-radius:0 10px 10px 0;font-style:italic;color:var(--stone)}
.article-content table{width:100%;border-collapse:collapse;margin:16px 0;font-size:.88rem}
.article-content th{background:var(--ice);font-weight:600;text-align:left;padding:10px 14px;border-bottom:2px solid var(--mist)}
.article-content td{padding:10px 14px;border-bottom:1px solid var(--ice)}
.article-content pre,.article-content code{background:var(--ice);border-radius:6px;font-size:.85rem;padding:2px 6px}
.article-content pre{padding:16px;overflow-x:auto;margin:16px 0}

/* Tags */
.article-tags{margin-top:28px;padding-top:20px;border-top:1px solid var(--ice);display:flex;flex-wrap:wrap;gap:8px}
.article-tag{display:inline-block;padding:5px 14px;background:var(--ice);color:var(--lake);font-size:.78rem;font-weight:500;border-radius:100px;text-decoration:none;transition:all .2s;border:1px solid transparent}
.article-tag:hover{background:rgba(91,154,184,.15);border-color:var(--lake);color:var(--pine)}

/* Article navigation (prev/next) */
.article-nav{margin-top:28px;padding-top:20px;border-top:1px solid var(--ice)}
.article-nav .pager{list-style:none;display:flex;justify-content:space-between;gap:12px}
.article-nav .pager li a{display:inline-block;padding:10px 18px;background:#fff;border:1px solid var(--ice);border-radius:10px;text-decoration:none;color:var(--dusk);font-size:.84rem;transition:all .2s}
.article-nav .pager li a:hover{background:var(--ice);color:var(--pine)}

/* Edit link */
.article-edit{margin-top:16px}
.article-edit a{font-size:.78rem;color:var(--stone);text-decoration:none}
.article-edit a:hover{color:var(--lake)}

/* Responsive single article */
@media(max-width:768px){
  .article-hero{height:200px;border-radius:12px}
  .article-title{font-size:1.5rem}
  .article-meta{gap:10px}
  .news-secondary{grid-template-columns:1fr !important}
}

/* Joomla system messages */
#system-message-container{max-width:1300px;margin:0 auto;padding:12px 48px}
.alert{padding:14px 20px;border-radius:10px;margin-bottom:12px;font-size:.88rem}
.alert-message{background:var(--ice);border:1px solid var(--mist);color:var(--dusk)}
.alert-error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}
.alert-warning{background:#fffbeb;border:1px solid #fde68a;color:#92400e}

/* Pagination */
.pagination{display:flex;justify-content:center;gap:4px;margin:32px 0}
.pagination a,.pagination span{padding:8px 14px;border-radius:8px;font-size:.84rem;text-decoration:none;color:var(--stone);border:1px solid var(--ice);transition:all .2s}
.pagination a:hover{background:var(--ice);color:var(--pine)}
.pagination .active span{background:var(--pine);color:#fff;border-color:var(--pine)}

/* RESPONSIVE */
@media(max-width:1024px){
  .hero-inner{grid-template-columns:1fr;gap:32px}
  .glass-card{max-width:500px}
  .main-wrap{grid-template-columns:1fr}
  .attr-grid{grid-template-columns:1fr 1fr}
  .gal-grid{grid-template-columns:repeat(3,1fr);grid-template-rows:180px 150px}
  .f-inner{grid-template-columns:1fr 1fr}
}
@media(max-width:768px){
  .topbar{padding:6px 20px;flex-direction:column;gap:4px;text-align:center}
  .tb-weather{font-size:.64rem;gap:6px;justify-content:center}
  .tb-w-dim{display:none}
  .tb-sep{display:none}
  .hdr{padding:0 20px;height:60px;gap:12px}
  .logo{padding-right:12px;border-right:none}
  nav.main-nav{display:none}
  .hero{min-height:70vh}
  .hero-inner{padding:0 20px}
  .hero h1{font-size:clamp(2rem,8vw,3rem)}
  .glass-card{display:none}
  .ws-inner{padding:0 20px;flex-wrap:wrap}
  .ws-item{min-width:50%;border-right:none;border-bottom:1px solid var(--mist)}
  .main-wrap{padding:32px 20px}
  .news-secondary{grid-template-columns:1fr}
  .attracts-section{padding:48px 20px}
  .attr-grid{grid-template-columns:1fr}
  .gallery-section{padding:48px 20px}
  .gal-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto}
  .g-item:nth-child(1){grid-column:span 2}
  .g-item:nth-child(3){grid-column:span 1}
  .cta-band{padding:40px 20px}
  .cta-btns{flex-direction:column;align-items:center}
  footer{padding:40px 20px 20px}
  .f-inner{grid-template-columns:1fr;gap:28px}
  .f-btm{flex-direction:column;gap:8px;text-align:center}
  .hero-btns{flex-direction:column;align-items:flex-start}

  /* Mobile hamburger */
  .mobile-toggle{display:flex !important;width:36px;height:36px;border:1px solid var(--mist);border-radius:8px;background:transparent;align-items:center;justify-content:center;cursor:pointer;font-size:1.1rem;color:var(--stone)}
}
@media(min-width:769px){
  .mobile-toggle{display:none}
}

/* ==========================================================================
   AIR QUALITY BADGES
   ========================================================================== */
.aqi-badge{display:inline-block;padding:2px 10px;border-radius:100px;font-size:.76rem;font-weight:600;color:#fff;letter-spacing:.02em}
.aqi-good{background:#5bc84a}
.aqi-fair{background:#d4a843}
.aqi-moderate{background:#ff8c00}
.aqi-poor{background:#e53e3e}
.aqi-very-poor{background:#8b0000}
.aqi-unknown{background:var(--stone)}

/* AIR QUALITY SIDEBAR SECTION */
.aqi-sidebar{margin-top:14px;padding-top:14px;border-top:1px solid var(--ice)}
.aqi-sidebar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-size:.88rem;font-weight:600;color:var(--dusk)}
.aqi-sidebar-values{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.aqi-val{background:var(--ice);border-radius:8px;padding:9px 12px}
.aqi-val .k{font-size:.65rem;color:var(--stone);display:block;margin-bottom:2px}
.aqi-val .v{font-size:.88rem;font-weight:600;color:var(--dusk)}

/* ==========================================================================
   SOCIAL LINKS IN FOOTER
   ========================================================================== */
.f-social{display:flex;gap:10px;margin-top:14px}
.f-social a{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.5);text-decoration:none;font-size:.78rem;font-weight:600;transition:all .2s}
.f-social a:hover{background:rgba(255,255,255,.15);color:var(--gold)}

/* Footer bottom links */
.f-btm a{color:rgba(232,242,248,.45);text-decoration:none;transition:color .2s}
.f-btm a:hover{color:var(--gold)}

/* ==========================================================================
   SEARCH OVERLAY
   ========================================================================== */
.search-overlay{position:fixed;inset:0;z-index:1000;background:rgba(30,51,68,.85);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);display:flex;align-items:flex-start;justify-content:center;padding-top:18vh;opacity:0;visibility:hidden;transition:opacity .35s cubic-bezier(.16,1,.3,1),visibility .35s}
.search-overlay.search-open{opacity:1;visibility:visible}
.search-overlay-inner{width:100%;max-width:600px;padding:0 24px;transform:translateY(30px) scale(.96);transition:transform .4s cubic-bezier(.16,1,.3,1)}
.search-open .search-overlay-inner{transform:translateY(0) scale(1)}
.search-close{position:absolute;top:28px;right:32px;width:48px;height:48px;border:none;background:rgba(255,255,255,.1);border-radius:50%;color:#fff;font-size:1.8rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;line-height:1}
.search-close:hover{background:rgba(255,255,255,.2);transform:rotate(90deg)}
.search-box{text-align:center}
.search-icon{font-size:2.4rem;margin-bottom:20px;opacity:.5}
.search-form{display:flex;gap:0;border-radius:14px;overflow:hidden;box-shadow:0 12px 48px rgba(0,0,0,.3)}
.search-input{flex:1;padding:18px 24px;font-size:1.1rem;font-family:var(--fb);border:none;outline:none;background:#fff;color:var(--dusk);min-width:0}
.search-input::placeholder{color:var(--mist)}
.search-submit{padding:18px 28px;background:var(--pine);color:#fff;border:none;font-size:.92rem;font-weight:600;font-family:var(--fb);cursor:pointer;transition:background .2s;white-space:nowrap}
.search-submit:hover{background:#1f4430}
.search-hint{margin-top:14px;font-size:.76rem;color:rgba(255,255,255,.35);letter-spacing:.05em}
.search-advanced-link{color:rgba(255,255,255,.5);text-decoration:none;transition:color .2s}
.search-advanced-link:hover{color:var(--gold)}

/* ==========================================================================
   SEARCH PAGE (com_search)
   ========================================================================== */
.search-page{margin-bottom:40px}

/* Search form */
.sp-form{margin-bottom:32px}
.sp-input-row{display:flex;gap:0;border-radius:14px;overflow:hidden;box-shadow:0 4px 20px rgba(30,51,68,.08);border:1px solid var(--ice)}
.sp-input{flex:1;padding:16px 22px;font-size:1.05rem;font-family:var(--fb);border:none;outline:none;background:#fff;color:var(--dusk);min-width:0}
.sp-input::placeholder{color:var(--mist)}
.sp-input:focus{box-shadow:inset 0 0 0 2px var(--lake)}
.sp-btn{padding:16px 28px;background:var(--pine);color:#fff;border:none;font-size:.92rem;font-weight:600;font-family:var(--fb);cursor:pointer;transition:background .2s;white-space:nowrap}
.sp-btn:hover{background:#1f4430}

/* Options row */
.sp-options{display:flex;flex-wrap:wrap;gap:16px;margin-top:16px;align-items:center}
.sp-option-group{display:flex;align-items:center;gap:8px}
.sp-label{font-size:.78rem;color:var(--stone);font-weight:600;text-transform:uppercase;letter-spacing:.08em}
.sp-options select,
.sp-options input[type="radio"]{accent-color:var(--pine)}
.sp-options select{padding:6px 10px;border:1px solid var(--ice);border-radius:8px;font-size:.84rem;font-family:var(--fb);color:var(--dusk);background:#fff;cursor:pointer;outline:none}
.sp-options select:focus{border-color:var(--lake)}

/* Search areas checkboxes */
.sp-areas{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px;align-items:center}
.sp-area-label{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;background:var(--ice);border-radius:100px;font-size:.78rem;color:var(--dusk);cursor:pointer;transition:all .2s;border:1px solid transparent}
.sp-area-label:hover{border-color:var(--mist)}
.sp-area-label input[type="checkbox"]{accent-color:var(--pine);width:14px;height:14px}
.sp-area-text{font-weight:500}

/* Results */
.sp-results-head{margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid var(--ice)}
.sp-results-count{font-size:.88rem;color:var(--stone)}
.sp-no-results{color:var(--stone);font-style:italic}
.sp-results-list{display:flex;flex-direction:column;gap:0}
.sp-result-item{padding:20px 0;border-bottom:1px solid var(--ice);transition:background .15s}
.sp-result-item:first-child{padding-top:0}
.sp-result-item:last-child{border-bottom:none}
.sp-result-title{font-family:var(--ff);font-size:1.15rem;font-weight:500;margin-bottom:6px}
.sp-result-title a{color:var(--dusk);text-decoration:none;transition:color .2s}
.sp-result-title a:hover{color:var(--pine)}
.sp-result-section{display:inline-block;background:var(--ice);color:var(--lake);font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:3px 10px;border-radius:100px;margin-bottom:8px}
.sp-result-text{font-size:.88rem;color:var(--stone);line-height:1.7}
.sp-result-text mark,.sp-result-text .highlight{background:rgba(212,168,67,.2);color:var(--dusk);padding:1px 3px;border-radius:3px}
.sp-result-meta{font-size:.74rem;color:var(--mist);margin-top:8px}

/* Joomla radio buttons in search */
.sp-options fieldset{border:none;padding:0;margin:0;display:flex;gap:10px}
.sp-options fieldset label{display:inline-flex;align-items:center;gap:4px;font-size:.82rem;color:var(--dusk);cursor:pointer}
.sp-options fieldset input[type="radio"]{width:15px;height:15px}

@media(max-width:768px){
  .sp-input-row{flex-direction:column;border-radius:12px}
  .sp-input{padding:14px 18px}
  .sp-btn{padding:14px 18px}
  .sp-options{flex-direction:column;align-items:flex-start;gap:10px}
  .sp-areas{flex-direction:column;align-items:flex-start}
}
@media(max-width:768px){
  .search-overlay{padding-top:12vh}
  .search-close{top:16px;right:16px;width:40px;height:40px}
  .search-form{flex-direction:column;border-radius:12px}
  .search-input{padding:16px 20px;font-size:1rem}
  .search-submit{padding:14px 20px}
}

/* ==========================================================================
   BACK TO TOP BUTTON
   ========================================================================== */
.btt{position:fixed;bottom:28px;right:28px;z-index:500;width:46px;height:46px;border:none;border-radius:50%;background:var(--pine);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px rgba(43,92,62,.35);opacity:0;visibility:hidden;transform:translateY(20px) scale(.8);transition:opacity .35s cubic-bezier(.16,1,.3,1),transform .35s cubic-bezier(.16,1,.3,1),visibility .35s,background .2s,box-shadow .2s}
.btt-show{opacity:1;visibility:visible;transform:translateY(0) scale(1)}
.btt:hover{background:#1f4430;box-shadow:0 8px 28px rgba(43,92,62,.5);transform:translateY(-3px) scale(1.08)}
.btt:active{transform:translateY(0) scale(.95)}
.btt svg{transition:transform .2s}
.btt:hover svg{transform:translateY(-2px)}
@media(max-width:768px){
  .btt{bottom:20px;right:20px;width:42px;height:42px}
}
