html.show-intro body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 90;
    background: linear-gradient(180deg, #0c1c33, #081324);
    pointer-events: none;
    animation: introCurtain 0.95s cubic-bezier(0.76, 0, 0.24, 1) 1.05s forwards;
    will-change: transform;
}
html.show-intro body::after {
    content: "DESTINARIO";
    position: fixed;
    inset: 0;
    z-index: 91;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #e6c47f;
    font-family: "Cinzel", Georgia, serif;
    font-size: clamp(1.1rem, 2.6vw, 1.7rem);
    font-weight: 600;
    letter-spacing: 0.42em;
    text-indent: 0.42em;
    pointer-events: none;
    opacity: 0;
    animation:
        introMark 0.7s cubic-bezier(0.2, 0.8, 0.2, 1) 0.1s forwards,
        introMarkOut 0.4s ease 1s forwards;
}
@keyframes introCurtain {
    to { transform: translateY(-101%); visibility: hidden; }
}
@keyframes introMark {
    from { opacity: 0; transform: translateY(16px); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes introMarkOut {
    to { opacity: 0; visibility: hidden; }
}

/* =========================================================================
   NAGŁÓWKI — ciaśniejsze, mniej łamania na wiele linii
   ========================================================================= */
.home-landing .home-hero h1 .line-strong {
    font-size: clamp(2rem, 4.4vw, 3.9rem);
    white-space: nowrap;
}
.home-landing .home-hero h1 .line-accent {
    font-size: clamp(1.35rem, 3vw, 2.7rem);
    white-space: nowrap;
}
@media (max-width: 640px) {
    .home-landing .home-hero h1 .line-strong,
    .home-landing .home-hero h1 .line-accent { white-space: normal; }
}
.home-landing .home-section h2,
.home-landing .home-why-head h2,
.home-landing .home-investment-panel h2,
.home-landing .home-final-cta h2 {
    font-size: clamp(1.5rem, 2.9vw, 2.3rem);
    line-height: 1.14;
    letter-spacing: -0.015em;
    max-width: none;
    text-wrap: balance;
}

/* =========================================================================
   REVEAL — wjazd elementów w kadr (kierunkowy + clip)
   Bazowy stan; klasa .in dokładana przez home-scroll.js gdy element widoczny
   ========================================================================= */
.js-scroll [data-reveal] {
    opacity: 0;
    transform: translateY(48px);
    transition:
        opacity 0.9s cubic-bezier(0.2, 0.8, 0.2, 1),
        transform 1s cubic-bezier(0.2, 0.8, 0.2, 1);
    transition-delay: var(--rd, 0ms);
    will-change: opacity, transform;
}
.js-scroll [data-reveal="left"]  { transform: translateX(-60px); }
.js-scroll [data-reveal="right"] { transform: translateX(60px); }
.js-scroll [data-reveal="zoom"]  { transform: scale(0.9); }

.js-scroll [data-reveal].in {
    opacity: 1;
    transform: none;
}

/* Odsłanianie zdjęć — clip-path „kurtyna" + delikatny zoom */
.js-scroll [data-img-reveal] {
    overflow: hidden;
}
.js-scroll [data-img-reveal] img {
    clip-path: inset(0 0 100% 0);
    transform: scale(1.18);
    transition:
        clip-path 1.1s cubic-bezier(0.2, 0.8, 0.2, 1),
        transform 1.4s cubic-bezier(0.2, 0.8, 0.2, 1);
    transition-delay: var(--rd, 0ms);
    will-change: clip-path, transform;
}
.js-scroll [data-img-reveal].in img {
    clip-path: inset(0 0 0 0);
    transform: none;
}

/* =========================================================================
   SPLIT TEXT — nagłówki linia po linii
   ========================================================================= */
.line-mask {
    display: inline-block;
    overflow: hidden;
    vertical-align: baseline;
    line-height: inherit;
    padding: 0.1em 0.08em 0.16em; /* zapas dla Cinzel oraz znaków interpunkcyjnych */
    margin: -0.1em -0.08em -0.16em;
}
.line-inner {
    display: inline-block;
    transform: translateY(115%);
    transition: transform 0.9s cubic-bezier(0.2, 0.85, 0.2, 1);
    transition-delay: var(--ld, 0ms);
    will-change: transform;
}
.js-scroll [data-split].in .line-inner {
    transform: translateY(0);
}
/* zanim JS podzieli tekst — pełna widoczność (bez FOUC) */
.js-scroll [data-split]:not(.is-split) { opacity: 1; }

/* =========================================================================
   PARALLAX — warstwy jadące ze scrollem (--pos ustawiane w JS)
   ========================================================================= */
.js-scroll [data-parallax] {
    transform: translate3d(0, var(--pos, 0px), 0);
    will-change: transform;
}
.js-scroll [data-parallax-x] {
    transform: translate3d(var(--posx, 0px), 0, 0);
    will-change: transform;
}


/* watermark DESTINARIO — dryf w poziomie */
.home-watermark[data-parallax-x] {
    will-change: transform;
}

/* =========================================================================
   COUNT-UP — statystyki / liczby
   ========================================================================= */
.js-scroll [data-count] {
    font-variant-numeric: tabular-nums;
}

/* =========================================================================
   STICKY-STORY — sekcja „Perspektywa" jako przyklejony blok z krokami
   ========================================================================= */
.story-scene {
    position: relative;
}
.story-steps > div {
    transition:
        opacity 0.6s ease,
        transform 0.6s cubic-bezier(0.2, 0.8, 0.2, 1),
        border-color 0.4s ease;
}
.js-scroll .story-steps > div[data-story-step] {
    opacity: 0.6;
    transform: translateX(0);
}
/* bez JS lub bez IntersectionObserver — pełna widoczność */
html:not(.js-scroll) .story-steps > div[data-story-step] {
    opacity: 1;
}
.js-scroll .story-steps > div[data-story-step].active {
    opacity: 1;
    transform: translateX(6px);
    border-color: rgba(185, 138, 58, 0.6);
    box-shadow: 0 12px 30px rgba(16, 35, 63, 0.12);
}



/* =========================================================================
   Szacunek dla preferencji ruchu
   ========================================================================= */
@media (prefers-reduced-motion: reduce) {
    body::before, html.show-intro body::after { display: none; }

    .js-scroll [data-reveal],
    .js-scroll [data-img-reveal] img,
    .js-scroll .line-inner {
        opacity: 1 !important;
        transform: none !important;
        clip-path: none !important;
        transition: none !important;
    }
    .js-scroll [data-parallax],
    .js-scroll [data-parallax-x],
    .js-scroll .story-steps > div[data-story-step] { opacity: 1 !important; }

    .js-scroll .story-steps > div[data-story-step] {
        transform: none !important;
        transition: none !important;
    }
}

/* =========================================================================
   POPRAWKI — hero stats font, link "Wszystkie oferty", hover kart ofert
   ========================================================================= */
/* etykiety statystyk hero: Montserrat zamiast Cinzel */
.home-landing .home-hero-stat span {
    font-family: "Montserrat", sans-serif;
    letter-spacing: 0.14em;
}
/* "Wszystkie oferty" w stylu eyebrow ("Wybrane oferty") */
.home-landing .home-text-link {
    color: #a9762b;
    font-family: "Cinzel", Georgia, serif;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.26em;
    text-transform: uppercase;
}
.home-landing .home-text-link:hover {
    color: #10233f;
}
/* płynniejszy, spokojniejszy hover karty oferty */
.home-landing .home-offer-card {
    transition:
        transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1),
        border-color 0.3s ease;
}
.home-landing .home-offer-card:hover {
    transform: translateY(-4px);
    border-color: rgba(185, 138, 58, 0.45);
    box-shadow: 0 24px 54px rgba(16, 35, 63, 0.16);
}
.home-landing .home-offer-card .home-offer-media img {
    transition:
        transform 0.6s cubic-bezier(0.22, 1, 0.36, 1),
        clip-path 1.1s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.home-landing .home-offer-card:hover .home-offer-media img {
    transform: scale(1.05);
}

/* =========================================================================
   GLOW-CARD — płynny hover + podświetlenie bordera podążające za kursorem
   (Nasze podejście, Dlaczego Destinario, Lokalizacje)
   ========================================================================= */
.glow-card {
    position: relative;
    transition:
        transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
.glow-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 44px rgba(16, 35, 63, 0.12);
}
.home-location-card.glow-card::after {
    /* home-landing.css używa ::after na kaflu lokalizacji — nasz ring jest elementem .glow-ring */
    content: none;
}
.glow-card .glow-ring {
    display: block;
    position: absolute;
    inset: -1px;
    z-index: 2;
    width: auto;
    height: auto;
    margin: 0;
    border: 0;
    background:
        radial-gradient(140px circle at var(--mx, 50%) var(--my, 50%), rgba(230, 196, 127, 0.7), rgba(199, 154, 69, 0.22) 45%, transparent 70%);
    border-radius: inherit;
    padding: 1.5px;
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    mask-composite: exclude;
    opacity: 0;
    transition: opacity 0.18s ease-out;
    pointer-events: none;
    will-change: opacity;
}
.glow-card:hover .glow-ring {
    opacity: 1;
}
@media (prefers-reduced-motion: reduce) {
    .glow-card, .glow-card:hover { transform: none; }
    .glow-card .glow-ring { display: none; }
}

/* miękkie podświetlenie białego tła kafla, podąża za kursorem */
.glow-card::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    border-radius: inherit;
    background:
        radial-gradient(160px circle at var(--mx, 50%) var(--my, 50%), rgba(230, 196, 127, 0.05), transparent 70%),
        linear-gradient(rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.07));
    opacity: 0;
    transition: opacity 0.18s ease-out;
    pointer-events: none;
}
.glow-card:hover::before {
    opacity: 1;
}
.glow-card > * { position: relative; z-index: 1; }
@media (prefers-reduced-motion: reduce) {
    .glow-card::before { display: none; }
}

/* spójny, miękki hover kafli (Nasze podejście, Lokalizacje) */
.home-landing .home-intro-highlights article,
.home-landing .home-location-card {
    transition:
        transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1),
        border-color 0.3s ease;
}
.home-landing .home-intro-highlights article:hover,
.home-landing .home-location-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 44px rgba(16, 35, 63, 0.12);
}
