:root {
    --bg: #120b16;
    --bg-2: #1b1020;
    --panel: rgba(255,255,255,.075);
    --panel-strong: rgba(255,255,255,.12);
    --text: #f7edf6;
    --muted: #d8c8d3;
    --soft: #a996a5;
    --gold: #d8b76a;
    --gold-2: #ffdd8d;
    --wine: #6f2346;
    --line: rgba(255,255,255,.16);
    --shadow: 0 30px 90px rgba(0,0,0,.45);
    --radius: 28px;
    --max: 1180px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    font-family: ui-serif, Georgia, Cambria, "Times New Roman", serif;
    color: var(--text);
    background:
        radial-gradient(circle at 15% 0%, rgba(216,183,106,.20), transparent 34rem),
        radial-gradient(circle at 90% 20%, rgba(111,35,70,.36), transparent 32rem),
        linear-gradient(180deg, #120b16 0%, #100912 45%, #170d1c 100%);
    line-height: 1.65;
}
body.nav-open { overflow: hidden; }
a { color: inherit; }
img { max-width: 100%; height: auto; }
code { color: var(--gold-2); background: rgba(255,255,255,.09); padding: .1rem .35rem; border-radius: .4rem; }
.container { width: min(var(--max), calc(100% - 40px)); margin-inline: auto; }
.section-pad { padding: 96px 0; position: relative; }
.skip-link { position: fixed; left: 1rem; top: -4rem; z-index: 1000; padding: .7rem 1rem; background: #fff; color: #111; border-radius: .7rem; }
.skip-link:focus { top: 1rem; }
.site-header {
    position: sticky;
    top: 0;
    z-index: 50;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    width: min(1240px, calc(100% - 28px));
    margin: 14px auto 0;
    padding: 12px 16px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: rgba(18,11,22,.78);
    backdrop-filter: blur(18px);
    box-shadow: 0 18px 40px rgba(0,0,0,.24);
}
.brand { display: flex; align-items: center; gap: 12px; text-decoration: none; min-width: 235px; }
.brand img { width: 48px; height: 48px; filter: invert(1) brightness(1.6); }
.brand strong { display: block; letter-spacing: .03em; }
.brand small { display: block; color: var(--muted); font-size: .76rem; line-height: 1.15; }
.main-nav { display: flex; align-items: center; gap: 6px; font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, sans-serif; }
.main-nav a { text-decoration: none; color: var(--muted); padding: .7rem .9rem; border-radius: 999px; transition: .25s ease; font-size: .94rem; }
.main-nav a:hover { color: var(--text); background: rgba(255,255,255,.08); }
.nav-toggle { display: none; border: 0; background: var(--panel); color: var(--text); border-radius: 999px; width: 44px; height: 44px; font-size: 1.3rem; }
.hero { min-height: calc(100vh - 84px); display: grid; align-items: center; overflow: hidden; }
.hero-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr); gap: 48px; align-items: center; }
.eyebrow { margin: 0 0 14px; color: var(--gold-2); text-transform: uppercase; letter-spacing: .16em; font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, sans-serif; font-size: .78rem; font-weight: 700; }
h1, h2, h3 { line-height: 1.08; margin: 0; }
h1 { font-size: clamp(3.1rem, 8vw, 7.2rem); letter-spacing: -.055em; max-width: 950px; }
h2 { font-size: clamp(2.2rem, 4.5vw, 4.7rem); letter-spacing: -.045em; }
h3 { font-size: 1.35rem; }
p { color: var(--muted); margin: 1rem 0 0; }
.lead { font-size: clamp(1.08rem, 1.7vw, 1.35rem); max-width: 780px; color: #eadfea; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 32px; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; min-height: 48px; padding: .85rem 1.15rem; border-radius: 999px; border: 1px solid var(--line); text-decoration: none; font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, sans-serif; font-weight: 750; cursor: pointer; transition: transform .25s ease, background .25s ease, border-color .25s ease; }
.btn:hover { transform: translateY(-2px); }
.btn-primary { background: linear-gradient(135deg, var(--gold), var(--gold-2)); color: #20120c; border-color: rgba(255,255,255,.25); }
.btn-secondary, .btn-small { background: rgba(255,255,255,.08); color: var(--text); }
.btn-small { min-height: 40px; font-size: .88rem; }
.hero-facts { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 12px; margin: 34px 0 0; }
.hero-facts div, .hero-card, .card, .feature-list article, .seo-panel, .keyword-cloud, .empty-gallery, .contact-form, .faq details, .steps li {
    border: 1px solid var(--line);
    background: var(--panel);
    box-shadow: var(--shadow);
    border-radius: var(--radius);
}
.hero-facts div { padding: 16px; box-shadow: none; }
dt { color: var(--gold-2); font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, sans-serif; font-weight: 700; font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; }
dd { margin: 4px 0 0; color: var(--muted); font-size: .94rem; line-height: 1.35; }
.hero-card { padding: 34px; transform: rotate(1.5deg); }
.hero-card img { width: 160px; display: block; margin: 0 auto 24px; filter: invert(1) brightness(1.65); opacity: .9; }
.hero-card a { color: var(--gold-2); font-weight: 700; }
.orb { position: absolute; pointer-events: none; filter: blur(5px); border-radius: 999px; opacity: .45; }
.orb-one { width: 260px; height: 260px; left: -90px; top: 20%; background: rgba(216,183,106,.16); }
.orb-two { width: 360px; height: 360px; right: -120px; bottom: 6%; background: rgba(111,35,70,.33); }
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 46px; align-items: center; }
.reverse { grid-template-columns: .92fr 1.08fr; }
.feature-list { display: grid; gap: 16px; }
.feature-list article, .card, .seo-panel, .keyword-cloud, .empty-gallery { padding: 28px; }
.section-head { max-width: 850px; margin-bottom: 34px; }
.cards-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; }
.card { min-height: 220px; transition: transform .25s ease, background .25s ease; }
.card:hover { transform: translateY(-5px); background: var(--panel-strong); }
.keyword-cloud { display: flex; flex-wrap: wrap; gap: 12px; box-shadow: none; }
.keyword-cloud span { padding: .72rem .9rem; border: 1px solid rgba(216,183,106,.28); border-radius: 999px; color: #f2e6c8; background: rgba(216,183,106,.08); font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, sans-serif; }
.gallery-tools { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; color: var(--muted); font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, sans-serif; }
.gallery-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 14px; }
.gallery-item { display: block; position: relative; aspect-ratio: 3 / 4; padding: 0; border: 1px solid var(--line); border-radius: 22px; overflow: hidden; background: rgba(255,255,255,.06); cursor: zoom-in; box-shadow: 0 16px 40px rgba(0,0,0,.24); }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .45s ease, opacity .45s ease; }
.gallery-item:hover img { transform: scale(1.06); opacity: .82; }
.gallery-item span { position: absolute; left: 10px; right: 10px; bottom: 10px; padding: .55rem .7rem; border-radius: 16px; background: rgba(0,0,0,.55); color: #fff; font-size: .82rem; font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, sans-serif; backdrop-filter: blur(8px); }
.empty-gallery { text-align: center; }
.steps { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 16px; }
.steps li { padding: 24px; box-shadow: none; }
.steps strong, .steps span { display: block; }
.steps strong { color: var(--gold-2); margin-bottom: 10px; }
.steps span { color: var(--muted); }
.faq-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; }
.faq details { padding: 20px 22px; box-shadow: none; }
.faq summary { cursor: pointer; font-weight: 800; color: #fff; }
.contact-grid { display: grid; grid-template-columns: .95fr 1.05fr; gap: 42px; align-items: start; }
.contact-cards { display: grid; gap: 12px; margin-top: 24px; }
.contact-cards a { display: block; padding: 18px; border: 1px solid var(--line); border-radius: 20px; background: rgba(255,255,255,.06); text-decoration: none; }
.contact-cards strong { display: block; color: var(--gold-2); }
.contact-cards span { color: var(--muted); }
.contact-form { padding: 28px; display: grid; gap: 14px; }
.contact-form label { display: grid; gap: 6px; color: var(--gold-2); font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, sans-serif; font-weight: 700; font-size: .92rem; }
.contact-form input, .contact-form textarea { width: 100%; border: 1px solid var(--line); background: rgba(0,0,0,.25); color: var(--text); border-radius: 16px; padding: .95rem 1rem; font: inherit; font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, sans-serif; }
.contact-form input:focus, .contact-form textarea:focus { outline: 2px solid rgba(216,183,106,.55); border-color: rgba(216,183,106,.55); }
.form-note { font-size: .86rem; margin: 0; }
.site-footer { border-top: 1px solid var(--line); padding: 34px 0; background: rgba(0,0,0,.18); }
.footer-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 22px; color: var(--muted); }
.footer-grid strong { color: #fff; }
.footer-grid p { margin: .3rem 0 0; }
.footer-bottom {opacity: 0.4}
.lightbox { position: fixed; inset: 0; display: none; align-items: center; justify-content: center; z-index: 100; background: rgba(5,3,8,.88); backdrop-filter: blur(16px); padding: 28px; }
.lightbox.is-open { display: flex; }
.lightbox figure { margin: 0; width: min(980px, 100%); text-align: center; }
.lightbox img { max-height: 82vh; width: auto; border-radius: 22px; box-shadow: var(--shadow); }
.lightbox figcaption { margin-top: 12px; color: var(--text); font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, sans-serif; }
.lightbox button { position: absolute; border: 1px solid var(--line); background: rgba(255,255,255,.11); color: #fff; width: 48px; height: 48px; border-radius: 999px; cursor: pointer; font-size: 2rem; line-height: 1; }
.lightbox-close { top: 22px; right: 22px; }
.lightbox-prev { left: 22px; top: 50%; transform: translateY(-50%); }
.lightbox-next { right: 22px; top: 50%; transform: translateY(-50%); }
[data-animate] { opacity: 0; transform: translateY(22px); transition: opacity .75s ease, transform .75s ease; }
[data-animate].is-visible { opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } [data-animate] { transition: none; opacity: 1; transform: none; } .btn:hover, .card:hover, .gallery-item:hover img { transform: none; } }
@media (max-width: 960px) {
    .nav-toggle { display: inline-grid; place-items: center; }
    .main-nav { position: fixed; inset: 84px 14px auto 14px; display: none; flex-direction: column; align-items: stretch; padding: 16px; background: rgba(18,11,22,.96); border: 1px solid var(--line); border-radius: 24px; box-shadow: var(--shadow); }
    body.nav-open .main-nav { display: flex; }
    .main-nav a { text-align: center; }
    .hero-grid, .two-col, .reverse, .contact-grid { grid-template-columns: 1fr; }
    .hero { min-height: auto; }
    .hero-facts, .cards-grid, .steps { grid-template-columns: 1fr 1fr; }
    .gallery-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
    .footer-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .container { width: min(var(--max), calc(100% - 28px)); }
    .section-pad { padding: 70px 0; }
    .brand small { display: none; }
    .brand { min-width: 0; }
    h1 { font-size: clamp(2.75rem, 14vw, 4.8rem); }
    .hero-facts, .cards-grid, .steps, .faq-grid, .gallery-grid { grid-template-columns: 1fr; }
    .gallery-tools { align-items: flex-start; flex-direction: column; }
    .hero-card { transform: none; }
    .lightbox-prev, .lightbox-next { top: auto; bottom: 20px; transform: none; }
    .lightbox-prev { left: calc(50% - 58px); }
    .lightbox-next { right: calc(50% - 58px); }
}

/* --- Aktualizacja UX: hero 90vh, mapa OSM, kropki sekcji, ikonki i separatory --- */
.hero {
    min-height: 90vh;
    padding-top: 76px;
    padding-bottom: 54px;
}
.brand img,
.hero-card img {
    filter: none;
}
.section-pad:not(.hero)::before {
    content: "";
    position: absolute;
    top: -22px;
    left: 50%;
    width: min(360px, 58vw);
    height: 44px;
    transform: translateX(-50%);
    background: rgba(255,255,255,.52);
    -webkit-mask: url("img/separator-white.svg") center / contain no-repeat;
    mask: url("img/separator-white.svg") center / contain no-repeat;
    pointer-events: none;
    opacity: .52;
}
.section-head::after {
    content: "";
    display: block;
    width: 92px;
    height: 14px;
    margin-top: 18px;
    background: var(--gold-2);
    -webkit-mask: url("img/separator-violet.svg") left center / contain no-repeat;
    mask: url("img/separator-violet.svg") left center / contain no-repeat;
    opacity: .95;
}
.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}
.eyebrow::before {
    content: "";
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    background: var(--gold-2);
    clip-path: polygon(50% 0, 62% 34%, 100% 34%, 69% 55%, 82% 100%, 50% 72%, 18% 100%, 31% 55%, 0 34%, 38% 34%);
    box-shadow: 0 0 22px rgba(255,221,141,.55);
}
.card,
.feature-list article,
.steps li,
.contact-cards a {
    position: relative;
}
.card::before,
.feature-list article::before,
.steps li::before,
.contact-cards a::before {
    content: "";
    display: block;
    width: 30px;
    height: 30px;
    margin-bottom: 16px;
    background: linear-gradient(135deg, var(--gold), var(--gold-2));
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2c1.6 2.9 3.6 4.7 7 5.2-2.2 2.1-3.1 4.8-2.3 8.1-2.7-1.5-5.6-1.5-8.3 0 .8-3.3-.1-6-2.3-8.1C9.3 6.7 10.4 4.9 12 2Zm0 5.4-1.5 2.2-2.6.7 1.7 2.1-.1 2.7 2.5-1 2.5 1-.1-2.7 1.7-2.1-2.6-.7L12 7.4Z'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2c1.6 2.9 3.6 4.7 7 5.2-2.2 2.1-3.1 4.8-2.3 8.1-2.7-1.5-5.6-1.5-8.3 0 .8-3.3-.1-6-2.3-8.1C9.3 6.7 10.4 4.9 12 2Zm0 5.4-1.5 2.2-2.6.7 1.7 2.1-.1 2.7 2.5-1 2.5 1-.1-2.7 1.7-2.1-2.6-.7L12 7.4Z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.scroll-cue {
    position: absolute;
    left: 50%;
    bottom: 18px;
    transform: translateX(-50%);
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    color: rgba(255,255,255,.76);
    text-decoration: none;
    font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, sans-serif;
    font-size: .78rem;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.scroll-cue span {
    width: 30px;
    height: 48px;
    border: 1px solid rgba(255,255,255,.34);
    border-radius: 999px;
    position: relative;
    background: rgba(255,255,255,.04);
}
.scroll-cue span::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 9px;
    width: 6px;
    height: 6px;
    transform: translateX(-50%);
    border-radius: 999px;
    background: var(--gold-2);
    animation: bouffalScrollDot 1.55s infinite ease-in-out;
}
@keyframes bouffalScrollDot {
    0% { transform: translate(-50%, 0); opacity: 0; }
    30% { opacity: 1; }
    100% { transform: translate(-50%, 20px); opacity: 0; }
}
.section-dots {
    position: fixed;
    right: 22px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 45;
    display: flex;
    flex-direction: column;
    gap: 11px;
    padding: 10px 8px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 999px;
    background: rgba(18,11,22,.52);
    backdrop-filter: blur(14px);
}
.section-dots a {
    width: 11px;
    height: 11px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,.38);
    background: rgba(255,255,255,.16);
    text-indent: -9999px;
    overflow: hidden;
    transition: transform .22s ease, background .22s ease, border-color .22s ease, box-shadow .22s ease;
}
.section-dots a:hover,
.section-dots a.is-active {
    transform: scale(1.35);
    background: var(--gold-2);
    border-color: var(--gold-2);
    box-shadow: 0 0 0 5px rgba(216,183,106,.13), 0 0 18px rgba(216,183,106,.42);
}
.map-panel {
    min-height: 520px;
    padding: 18px;
    border: 1px solid var(--line);
    background: var(--panel);
    box-shadow: var(--shadow);
    border-radius: var(--radius);
    overflow: hidden;
    display: grid;
    grid-template-rows: auto 1fr auto;
    gap: 14px;
}
.map-head {
    padding: 10px 10px 0;
}
.map-head p {
    margin-top: 6px;
}
.map-panel iframe {
    width: 100%;
    min-height: 370px;
    height: 100%;
    border: 0;
    border-radius: 22px;
    filter: saturate(.82) contrast(1.02) brightness(.86);
}
.map-link {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-height: 46px;
    padding: .8rem 1rem;
    border-radius: 999px;
    border: 1px solid rgba(216,183,106,.34);
    color: var(--gold-2);
    text-decoration: none;
    font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, sans-serif;
    font-weight: 760;
    background: rgba(216,183,106,.08);
}
.contact-cards a::before {
    width: 24px;
    height: 24px;
    margin-bottom: 10px;
}
@media (max-width: 960px) {
    .hero { min-height: 90vh; }
    .section-dots { display: none; }
    .map-panel { min-height: 430px; }
}
@media (max-width: 640px) {
    .hero { min-height: 90vh; padding-top: 54px; }
    .scroll-cue em { display: none; }
    .section-pad:not(.hero)::before { width: 230px; opacity: .38; }
}


/* --- Aktualizacja v3: lekkie ikonki inline, nieklikalne FAQ, hover kontaktu --- */

/* Nie pokazuj separatora bezpośrednio pod komunikatem "Przewiń dalej". */
#o-nas::before {
    display: none;
}

/* Ikony jako lekkie, lokalne maski SVG inspirowane zestawami typu Font Awesome.
   Dzięki temu nie ładujemy ciężkiego fontu ani zewnętrznego CDN. */
.icon {
    --icon-size: 1.08em;
    display: inline-block;
    width: var(--icon-size);
    height: var(--icon-size);
    flex: 0 0 var(--icon-size);
    vertical-align: -0.15em;
    background: currentColor;
    -webkit-mask: var(--icon-url) center / contain no-repeat;
    mask: var(--icon-url) center / contain no-repeat;
}

.icon-mask {
    --icon-url: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M320 64c40 0 73 12 99 32 26-20 59-32 99-32 39 0 78 12 122 36-4 117-54 220-122 220-44 0-79-27-99-62-20 35-55 62-99 62s-79-27-99-62c-20 35-55 62-99 62C54 320 4 217 0 100c44-24 83-36 122-36 40 0 73 12 99 32 26-20 59-32 99-32Zm-198 88c-24 0-45 7-70 20 12 56 39 100 70 100 34 0 56-34 70-76-20-28-42-44-70-44Zm396 0c-28 0-50 16-70 44 14 42 36 76 70 76 31 0 58-44 70-100-25-13-46-20-70-20ZM320 136c-30 0-55 18-78 50 16 49 40 86 78 86s62-37 78-86c-23-32-48-50-78-50Z'/%3E%3C/svg%3E");
}
.icon-theatre {
    --icon-url: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M64 64c74 0 124-18 176-48 52 30 102 48 176 48 22 0 42-2 64-6v170c0 126-92 236-240 268C92 464 0 354 0 228V58c22 4 42 6 64 6Zm88 96c-23 0-42 19-42 42s19 42 42 42 42-19 42-42-19-42-42-42Zm176 0c-23 0-42 19-42 42s19 42 42 42 42-19 42-42-19-42-42-42ZM144 334c42 47 150 47 192 0-60 17-132 17-192 0Z'/%3E%3C/svg%3E");
}
.icon-sparkle, .icon-star {
    --icon-url: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M316.9 18.6 370 126.3l118.9 17.3c26 3.8 36.4 35.8 17.6 54.1l-86 83.8 20.3 118.4c4.5 25.9-22.7 45.7-45.9 33.5L288.5 377.4 182.1 433.3c-23.2 12.2-50.4-7.6-45.9-33.5l20.3-118.4-86-83.8c-18.8-18.3-8.4-50.3 17.6-54.1L207 126.3 260.1 18.6c11.6-23.5 45.2-23.5 56.8 0Z'/%3E%3C/svg%3E");
}
.icon-images {
    --icon-url: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M160 80h352c35.3 0 64 28.7 64 64v256c0 35.3-28.7 64-64 64H160c-35.3 0-64-28.7-64-64V144c0-35.3 28.7-64 64-64Zm44 88a52 52 0 1 0 0 104 52 52 0 0 0 0-104Zm308 208-94-126c-10-13-29-13-39 1l-72 94-31-39c-10-12-28-12-38 0l-61 70h335ZM0 128c0-17.7 14.3-32 32-32s32 14.3 32 32v288c0 53 43 96 96 96h320c17.7 0 32-14.3 32-32s-14.3-32-32-32H160c-17.7 0-32-14.3-32-32V128c0-17.7-14.3-32-32-32S64 110.3 64 128v288c0 17.7-14.3 32-32 32S0 433.7 0 416V128Z'/%3E%3C/svg%3E");
}
.icon-route {
    --icon-url: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M160 64a96 96 0 1 0 0 192 96 96 0 0 0 0-192Zm0 56a40 40 0 1 1 0 80 40 40 0 0 1 0-80Zm192 136a96 96 0 1 0 0 192 96 96 0 0 0 0-192Zm0 56a40 40 0 1 1 0 80 40 40 0 0 1 0-80ZM160 288h80c26.5 0 48 21.5 48 48s21.5 48 48 48h16v64h-16c-61.9 0-112-50.1-112-112 0-8.8-7.2-16-16-16h-48v-32Z'/%3E%3C/svg%3E");
}
.icon-question {
    --icon-url: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath d='M96 160c0-35.3 28.7-64 64-64s64 28.7 64 64c0 24-13.3 44.9-32.9 55.8-33.9 18.9-63.1 49.8-63.1 88.2v16h64v-16c0-12.5 10-25.1 30.3-36.4C261.1 246 288 204.6 288 160 288 89.3 230.7 32 160 32S32 89.3 32 160h64Zm96 256a32 32 0 1 0-64 0 32 32 0 0 0 64 0Z'/%3E%3C/svg%3E");
}
.icon-location {
    --icon-url: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M192 512s192-181.1 192-320C384 86 298 0 192 0S0 86 0 192c0 138.9 192 320 192 320Zm0-224a96 96 0 1 1 0-192 96 96 0 0 1 0 192Z'/%3E%3C/svg%3E");
}
.icon-phone {
    --icon-url: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2L29.7 25.4C12.1 30.2 0 46.2 0 64c0 247.4 200.6 448 448 448 17.8 0 33.8-12.1 38.6-29.7l24-87.8c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3l49.3-40.3c13.7-11.2 18.4-30 11.6-46.3l-40-96Z'/%3E%3C/svg%3E");
}
.icon-wand {
    --icon-url: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M18.4 445.5 445.5 18.4c24.5-24.5 64.1-24.5 88.6 0l23.5 23.5c24.5 24.5 24.5 64.1 0 88.6L130.5 557.6c-24.5 24.5-64.1 24.5-88.6 0l-23.5-23.5c-24.5-24.5-24.5-64.1 0-88.6ZM448 96l32 32 32-32-32-32-32 32ZM64 480l32 32 352-352-32-32L64 480Z'/%3E%3C/svg%3E");
}
.icon-landmark {
    --icon-url: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M256 0 496 128v32H16v-32L256 0ZM64 192h64v192h32V192h64v192h64V192h64v192h32V192h64v224H64V192ZM32 448h448v64H32v-64Z'/%3E%3C/svg%3E");
}
.icon-camera {
    --icon-url: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M149.1 64 128 96H64C28.7 96 0 124.7 0 160v256c0 35.3 28.7 64 64 64h384c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64h-64l-21.1-32H149.1ZM256 176a112 112 0 1 1 0 224 112 112 0 0 1 0-224Zm0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96Z'/%3E%3C/svg%3E");
}
.icon-gem {
    --icon-url: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M72 64h432l72 112L288 512 0 176 72 64Zm48 64-32 48 88 0 48-48H120Zm168 0-48 48h96l-48-48Zm168 0h-104l48 48h88l-32-48ZM192 224l96 176 96-176H192Z'/%3E%3C/svg%3E");
}
.icon-envelope {
    --icon-url: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M48 64h416c26.5 0 48 21.5 48 48v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48Zm0 80v8l208 128 208-128v-8L256 272 48 144Z'/%3E%3C/svg%3E");
}
.icon-map {
    --icon-url: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M384 476.1 192 421.2 64 476.1c-31.5 13.5-64-9.6-64-43.9V96.1c0-19.1 11.3-36.4 28.8-44L192 0l192 54.9L512 0c31.5-13.5 64 9.6 64 43.9v336.1c0 19.1-11.3 36.4-28.8 44L384 476.1ZM224 64v301.2l128 36.6V100.6L224 64Z'/%3E%3C/svg%3E");
}

.eyebrow::before,
.card::before,
.feature-list article::before,
.steps li::before,
.contact-cards a::before {
    display: none;
}

.eyebrow .icon {
    --icon-size: 1.12rem;
    color: var(--gold-2);
    filter: drop-shadow(0 0 14px rgba(255,221,141,.42));
}

.hero-facts dt {
    display: flex;
    align-items: center;
    gap: 8px;
}
.hero-facts dt .icon {
    --icon-size: 1rem;
    color: var(--gold-2);
}

.card h3,
.feature-list h3 {
    display: flex;
    align-items: center;
    gap: 10px;
}
.card h3 .icon,
.feature-list h3 .icon,
.steps li .icon {
    --icon-size: 1.05rem;
    color: var(--gold-2);
}

/* FAQ ma być zawsze rozwinięte i nieklikalne. */
.faq details {
    display: none;
}
.faq-item {
    position: relative;
    overflow: hidden;
    padding: 22px 24px;
    border: 1px solid var(--line);
    background: var(--panel);
    border-radius: var(--radius);
    box-shadow: none;
}
.faq-item::after {
    content: "?";
    position: absolute;
    right: 18px;
    bottom: -34px;
    font-family: ui-serif, Georgia, Cambria, "Times New Roman", serif;
    font-size: 8.5rem;
    line-height: 1;
    color: rgba(255,255,255,.20);
    pointer-events: none;
    z-index: 0;
}
.faq-item h3,
.faq-item p {
    position: relative;
    z-index: 1;
}
.faq-item h3 {
    font-size: 1.15rem;
    color: #fff;
}
.faq-item p {
    margin-top: .75rem;
}

/* Karty kontaktowe są linkami, więc mają wyraźną reakcję na hover/focus. */
.contact-cards a {
    border-color: rgba(216,183,106,.26);
    transition:
        transform .24s ease,
        border-color .24s ease,
        background .24s ease,
        box-shadow .24s ease;
}
.contact-cards a:hover,
.contact-cards a:focus-visible {
    transform: translateY(-3px);
    border-color: rgba(255,221,141,.72);
    background: linear-gradient(135deg, rgba(216,183,106,.14), rgba(255,255,255,.075));
    box-shadow: 0 18px 44px rgba(0,0,0,.28), 0 0 0 1px rgba(255,221,141,.14) inset;
    outline: none;
}
.contact-cards strong {
    display: flex;
    align-items: center;
    gap: 9px;
}
.contact-cards strong .icon {
    --icon-size: 1rem;
    color: var(--gold-2);
}
.contact-cards span {
    display: block;
    margin-top: 6px;
}

.map-link {
    gap: 8px;
}
.map-link .icon {
    --icon-size: 1rem;
}

@media (max-width: 640px) {
    .card h3,
    .feature-list h3 {
        align-items: flex-start;
    }
}

/* --- Aktualizacja v4.1: ograniczony podgląd galerii i slideshow lightbox --- */
.gallery-preview {
    position: relative;
    overflow: visible;
    transition: max-height .45s ease;
}

.gallery-preview.is-collapsed {
    overflow: hidden;
}

.gallery-preview.is-collapsed::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 180px;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(18,11,22,0), rgba(18,11,22,.93) 72%, rgba(18,11,22,1));
}

.gallery-more {
    display: flex;
    justify-content: center;
    margin-top: 28px;
}

.gallery-more .btn {
    min-width: min(100%, 270px);
}

.lightbox figure {
    position: relative;
}

.lightbox-progress {
    position: absolute;
    left: 50%;
    bottom: 22px;
    width: min(520px, calc(100% - 120px));
    height: 4px;
    transform: translateX(-50%);
    border-radius: 999px;
    overflow: hidden;
    background: rgba(255,255,255,.18);
    box-shadow: 0 0 24px rgba(0,0,0,.28);
}

.lightbox-progress span {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: inherit;
    transform: scaleX(0);
    transform-origin: left center;
    background: linear-gradient(90deg, var(--gold), var(--gold-2));
    will-change: transform;
}

@media (max-width: 640px) {
    .gallery-preview.is-collapsed::after {
        height: 130px;
    }

    .lightbox-progress {
        bottom: 82px;
        width: min(360px, calc(100% - 48px));
    }
}
