    /* ============================================
       CSS CUSTOM PROPERTIES — PALETA KOLORÓW
       ============================================ */
    :root {
      --forest:   #2D3A1E;   /* ciemna zieleń leśna */
	  --forest-dark: #182418;   /* bardzo ciemna zieleń leśna */
      --olive:    #9DB53A;   /* żywa oliwkowa/limonkowa */
      --gold:     #F5D876;   /* ciepły złoty żółty */
      --navy:     #252D3D;   /* granat/antracyt */
      --sage:     #E8EDD4;   /* jasny szałwiowy kremowy */
      --white:    #FFFFFF;

      --forest-80: rgba(45,58,30,.8);
      --forest-60: rgba(45,58,30,.6);
      --navy-90:   rgba(37,45,61,.9);

      --ff-display: 'Cormorant Garamond', serif;
      --ff-body:    'Raleway', sans-serif;

      --container: 1200px;
      --gap: 2rem;

      /* ── Skala typograficzna ──────────────────────────
         Zmień wartości tutaj — działają w całej stronie.
         Bazowy font-size: 16px (html).
      ───────────────────────────────────────────────── */
      --fs-2xs: 0.75rem;   /* 12px   — mikro caps, badges, dekoracyjne */
      --fs-xs:  0.85rem;   /* 13.6px — etykiety section-label, nav, footer */
      --fs-sm:  0.95rem;   /* 15.2px — notki, opisy, secondary body */
      --fs-md:  1.1rem;   /* 16.8px — body primary */
      --fs-lg:  1.2rem;    /* 19.2px — subtitles, taglines, card titles */
      --fs-xl:  1.45rem;   /* 23.2px — callouts, większe etykiety kart */
      --fs-2xl: 1.7rem;    /* 27.2px — small section headings */
    }

    /* ============================================
       RESET & BASE
       ============================================ */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    html { scroll-behavior: smooth; font-size: 16px; }

    body {
      font-family: var(--ff-body);
      color: var(--navy);
      background: var(--white);
      line-height: 1.6;
      overflow-x: hidden;
    }

    /* ============================================
       UTILITY
       ============================================ */
    .container {
      max-width: var(--container);
      margin-inline: auto;
      padding-inline: 2rem;
    }

    .section-label {
      display: inline-block;
      font-family: var(--ff-body);
      font-weight: 700;
      font-size: var(--fs-2xs);
      letter-spacing: .22em;
      text-transform: uppercase;
      color: var(--olive);
      margin-bottom: 1rem;
    }

    .section-label--light { color: var(--gold); }
    .section-label--sage  { color: var(--sage); opacity: .8; }

    h1, h2, h3, h4 {
      font-family: var(--ff-display);
      font-weight: 400;
      line-height: 1.15;
    }

    /* placeholder dla zdjęć */
    .img-placeholder {
      background: linear-gradient(135deg, var(--sage) 0%, #d3dbc0 100%);
      display: flex;
      align-items: center;
      justify-content: center;
      flex-direction: column;
      gap: .5rem;
      color: var(--forest);
      opacity: .7;
      font-family: var(--ff-body);
      font-size: var(--fs-xs);
      font-weight: 600;
      letter-spacing: .08em;
      text-transform: uppercase;
    }
    .img-placeholder svg { opacity: .35; }

    .img-placeholder--dark {
      background: linear-gradient(135deg, #3a4a28 0%, var(--forest) 100%);
      color: var(--sage);
    }

    /* btn */
    .btn {
      display: inline-flex;
      align-items: center;
      gap: .6rem;
      font-family: var(--ff-body);
      font-weight: 700;
      font-size: var(--fs-xs);
      letter-spacing: .12em;
      text-transform: uppercase;
      text-decoration: none;
      cursor: pointer;
      border: none;
      border-radius: 5px;
      transition: all .25s ease;
    }
    .btn--primary {
      background: var(--olive);
      color: var(--white);
      padding: .9rem 2rem;
      border-radius: 5px;
    }
    .btn--primary:hover { background: #85a02e; }

    .btn--outline {
      background: transparent;
      color: var(--white);
      border: 1.5px solid rgba(255,255,255,.55);
      padding: .8rem 1.8rem;
      border-radius: 5px;
    }
    .btn--outline:hover { border-color: var(--gold); color: var(--gold); }

    .btn--dark {
      background: var(--forest);
      color: var(--gold);
      padding: .9rem 2.2rem;
      border-radius: 5px;
    }
    .btn--dark:hover { background: #1e2814; }

    .btn--ghost {
      background: transparent;
      color: var(--olive);
      border: 1.5px solid var(--olive);
      padding: .8rem 1.8rem;
      border-radius: 5px;
    }
    .btn--ghost:hover { background: var(--olive); color: var(--white); }

    /* divider ornament */
    .ornament {
      display: flex;
      align-items: center;
      gap: 1.2rem;
      margin-block: 2rem;
    }
    .ornament::before, .ornament::after {
      content: '';
      flex: 1;
      height: 1px;
      background: currentColor;
      opacity: .2;
    }
    .ornament-leaf {
      color: var(--olive);
      font-size: var(--fs-md);
      opacity: .7;
    }

    /* ============================================
       GHOST WORD — dekoracyjny tekst tła nagłówków
       ============================================ */
    .ghost-word {
      position: absolute;
      font-family: var(--ff-display);
      font-weight: 700;
      font-size: clamp(4.5rem, 11vw, 13rem);
      line-height: 1;
      letter-spacing: -.025em;
      text-transform: uppercase;
      white-space: nowrap;
      pointer-events: none;
      user-select: none;
      z-index: 0;
      /* domyślnie: lewostronnie, dolna krawędź h2 */
      bottom: -0.1em;
      left: -0.04em;
    }

    /* wyśrodkowanie — sekcje z text-align: center */
    .ghost-word--center {
      left: 50%;
      transform: translateX(-50%);
    }

    /* wariant na jasnym tle (white, sage) */
    .ghost-word--on-light {
      color: var(--forest);
      opacity: .065;
    }

    /* wariant na ciemnym tle (forest, forest-dark) */
    .ghost-word--on-dark {
      color: var(--sage);
      opacity: .10;
    }

    /* ============================================
       NAV
       ============================================ */
    .nav {
      position: fixed;
      top: 0; left: 0; right: 0;
      z-index: 100;
      padding: 1.4rem 0;
      transition: background .3s, padding .3s;
    }

    /* scrolled state hint */
    .nav.scrolled {
      background: var(--forest);
      backdrop-filter: blur(10px);
      padding: .9rem 0;
    }

    .nav__inner {
      display: flex;
      align-items: center;
      justify-content: space-between;
    }

    .nav__logo {
      font-family: var(--ff-display);
      font-size: var(--fs-2xl);
      font-weight: 600;
      color: var(--white);
      text-decoration: none;
      letter-spacing: .02em;
      line-height: 1;
    }
    .nav__logo em {
      font-style: italic;
      font-weight: 300;
      color: var(--gold);
    }

    .nav__links {
      display: flex;
      list-style: none;
      gap: 2.2rem;
    }
    .nav__links a {
      font-size: var(--fs-sm);
      font-weight: 600;
      letter-spacing: .08em;
      text-transform: uppercase;
      color: rgba(255,255,255,.8);
      text-decoration: none;
      transition: color .2s;
    }
    .nav__links a:hover { color: var(--gold); }

    .nav__cta { flex-shrink: 0; }

    /* nav CTA — mniejszy padding */
    .nav__cta .btn--primary {
      padding: .65rem 1.5rem;
      font-size: var(--fs-xs);
    }

    /* ============================================
       HERO
       ============================================ */
    .hero {
      position: relative;
      height: 100vh;
      min-height: 640px;
      display: flex;
      flex-direction: column;
      justify-content: flex-end;
      overflow: hidden;
    }

    .hero__bg {
      position: absolute;
      inset: 0;
      z-index: 0;
    }

    .hero__bg .img-placeholder {
      width: 100%;
      height: 100%;
      opacity: 1;
    }

    .hero__bg img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center 30%;
      display: block;
    }

    /* gradient overlay — nad bg, pod contentem */
    .hero__overlay {
      position: absolute;
      inset: 0;
      z-index: 1;
      background: linear-gradient(
        to bottom,
        rgba(20,26,14,.58) 0%,
        rgba(20,26,14,.20) 20%,
        rgba(20,26,14,.40) 55%,
        rgba(20,26,14,.60) 80%
      );
    }

    .hero__content {
      position: relative;
      z-index: 2;
      /* padding-top = nav height (~70px) + odstęp */
      padding: 7rem 2rem 5rem;
      max-width: 900px;
      margin: 0 auto;
      text-align: center;
      width: 100%;
    }

    .hero__eyebrow {
      display: inline-block;
      font-family: var(--ff-body);
      font-weight: 600;
      font-size: var(--fs-2xs);
      letter-spacing: .3em;
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: 1.4rem;
      opacity: .9;
    }

    .hero__h1 {
      font-family: 'Cormorant Garamond', serif;
      font-size: clamp(2.4rem, 5.5vw, 5.8rem);
      font-weight: 600;
      color: var(--white);
      margin-bottom: .5rem;
      letter-spacing: -.01em;
      white-space: nowrap;          /* jedna linia zawsze */
    }

    .hero__h1 em {
      font-style: italic;
      font-weight: 300;
      color: var(--gold);
    }

    .hero__sub {
      font-family: var(--ff-display);
      font-style: italic;
      font-size: clamp(1.1rem, 2.5vw, 1.55rem);
      font-weight: 300;
      color: rgba(255,255,255,.82);
      margin-bottom: 2.5rem;
      line-height: 1.4;
    }

    .hero__actions {
      display: flex;
      gap: 1rem;
      justify-content: center;
      flex-wrap: wrap;
      margin-bottom: 3.5rem;
    }

    /* USP strip */
    .hero__usps {
      display: flex;
      justify-content: center;
      gap: 2.5rem;
      flex-wrap: wrap;
      border-top: 1px solid rgba(255,255,255,.15);
      padding-top: 2rem;
    }

    .hero__usp {
      display: flex;
      align-items: center;
      gap: .6rem;
      font-size: var(--fs-xs);
      font-weight: 600;
      letter-spacing: .1em;
      text-transform: uppercase;
      color: rgba(255,255,255,.75);
    }

    .hero__usp-icon {
      width: 32px;
      height: 32px;
      background: rgba(157,181,58,.25);
      border: 1px solid rgba(157,181,58,.4);
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: var(--fs-md);
      flex-shrink: 0;
    }

    /* scroll hint */
    .hero__scroll {
      position: absolute;
      bottom: 2rem;
      right: 3rem;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: .5rem;
      color: rgba(255,255,255,.45);
      font-size: var(--fs-2xs);
      font-weight: 700;
      letter-spacing: .18em;
      text-transform: uppercase;
    }

    .hero__scroll-line {
      width: 1px;
      height: 50px;
      background: linear-gradient(to bottom, rgba(255,255,255,.4), transparent);
    }

    /* ============================================
       FILOZOFIA
       ============================================ */
    .filozofia {
      background: var(--white);
      padding: 8rem 0;
    }

    .filozofia__grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 6rem;
      align-items: center;
    }

    .filozofia__quote-wrap {
      position: relative;
    }

    .filozofia__big-quote {
      font-family: var(--ff-display);
      font-size: 14rem;
      font-weight: 700;
      color: var(--sage);
      line-height: 1;
      position: absolute;
      top: -4rem;
      left: -2rem;
      pointer-events: none;
      user-select: none;
    }

    .filozofia__content { position: relative; z-index: 1; }

    .filozofia__h2 {
      font-size: clamp(2.2rem, 4vw, 3.6rem);
      color: var(--forest);
      margin-bottom: 1rem;
    }
    .filozofia__h2 em {
      font-style: italic;
      color: var(--olive);
    }

    .filozofia__text {
      font-size: var(--fs-sm);
      color: #4a5568;
      line-height: 1.85;
      margin-bottom: 1.5rem;
    }

    /* manifest boxes */
    .manifest {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 1px;
      background: var(--sage);
      border: 1px solid var(--sage);
      margin-top: 3rem;
    }

    .manifest__item {
      background: var(--white);
      padding: 1.6rem 1.4rem;
      text-align: center;
    }

    .manifest__step {
      font-size: var(--fs-2xs);
      font-weight: 700;
      letter-spacing: .2em;
      text-transform: uppercase;
      color: var(--olive);
      margin-bottom: .5rem;
    }

    .manifest__word {
      font-family: var(--ff-display);
      font-size: var(--fs-2xl);
      font-weight: 600;
      color: var(--forest);
      margin-bottom: .4rem;
    }

    .manifest__desc {
      font-size: var(--fs-sm);
      color: #6b7280;
      line-height: 1.5;
    }

    /* foto Jola */
    .filozofia__photo {
      position: relative;
    }

    .filozofia__photo-frame {
      width: 100%;
      aspect-ratio: 3/4;
      position: relative;
    }

    .filozofia__photo-frame .img-placeholder {
      width: 100%;
      height: 100%;
    }

    .filozofia__photo-badge {
      position: absolute;
      bottom: -2rem;
      left: -2rem;
      background: var(--forest);
      color: var(--white);
      padding: 1.5rem 2rem;
      max-width: 220px;
    }

    .filozofia__photo-badge-name {
      font-family: var(--ff-display);
      font-size: var(--fs-xl);
      font-weight: 600;
      color: var(--gold);
      display: block;
      margin-bottom: .3rem;
    }

    .filozofia__photo-badge-role {
      font-size: var(--fs-2xs);
      font-weight: 600;
      letter-spacing: .12em;
      text-transform: uppercase;
      opacity: .7;
    }

    /* ============================================
       DOMEK (WNĘTRZA)
       ============================================ */
    .domek {
      background: var(--sage);
      padding: 8rem 0;
    }

    .domek__header {
      text-align: center;
      margin-bottom: 4rem;
      position: relative;
      overflow: hidden;
    }

    .domek__h2 {
      font-size: clamp(2rem, 4vw, 3.4rem);
      color: var(--forest);
      margin-bottom: .8rem;
    }

    .domek__sub {
      font-family: var(--ff-display);
      font-style: italic;
      font-size: 24px;
      color: #6b7280;
      max-width: 580px;
      margin: 0 auto;
    }

    /* GALERIA grid */
    .domek__gallery {
      display: grid;
      grid-template-columns: 2fr 1fr 1fr;
      grid-template-rows: 280px 280px;
      gap: 1rem;
      margin-bottom: 4rem;
    }

    .domek__gallery-item { overflow: hidden; }
    .domek__gallery-item .img-placeholder { width: 100%; height: 100%; }
    .domek__gallery-item img {
      transition: transform .7s cubic-bezier(.25,.46,.45,.94);
    }
    .domek__gallery-item:hover img {
      transform: scale(1.05);
    }

    .domek__gallery-item--main {
      grid-row: 1 / 3;
    }

    /* amenity cards — 8 kart w 2 rzędach */
    .domek__amenities {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 1.2rem;
    }

    .amenity-card {
      background: var(--white);
      border: 1px solid rgba(45,58,30,.08);
      overflow: hidden;
      transition: box-shadow .25s, transform .25s;
      cursor: default;
    }

    .amenity-card:hover {
      box-shadow: 0 8px 32px rgba(45,58,30,.12);
      transform: translateY(-3px);
    }

    /* 200px image/icon area — top-left anchored */
    .amenity-card__visual {
      width: 200px;
      height: 200px;
      background: linear-gradient(135deg, var(--sage) 0%, #cfd9b5 100%);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: .5rem;
      /* left-aligned, not stretching full width */
      margin: 0; /* flush to top-left */
      position: relative;
    }

    /* label overlay on visual */
    .amenity-card__visual-label {
      position: absolute;
      bottom: 0; left: 0; right: 0;
      background: rgba(45,58,30,.45);
      color: var(--sage);
      font-size: var(--fs-2xs);
      font-weight: 700;
      letter-spacing: .14em;
      text-transform: uppercase;
      text-align: center;
      padding: .3rem;
    }

    .amenity-card__visual-icon {
      font-size: 3rem;
      line-height: 1;
    }

    .amenity-card__visual-hint {
      font-size: var(--fs-2xs);
      font-weight: 600;
      letter-spacing: .1em;
      text-transform: uppercase;
      color: var(--forest);
      opacity: .5;
      text-align: center;
      padding: 0 .5rem;
    }

    /* body below visual */
    .amenity-card__body {
      padding: 1.3rem 1.4rem 1.6rem;
    }

    .amenity-card__num {
      font-family: var(--ff-display);
      font-size: var(--fs-xs);
      font-weight: 600;
      color: var(--olive);
      letter-spacing: .12em;
      margin-bottom: .3rem;
    }

    .amenity-card__title {
      font-family: var(--ff-display);
      font-size: var(--fs-lg);
      font-weight: 600;
      color: var(--forest);
      margin-bottom: .55rem;
      line-height: 1.2;
    }

    .amenity-card__text {
      font-size: var(--fs-sm);
      color: #6b7280;
      line-height: 1.65;
    }

    .amenity-card__tag {
      display: inline-block;
      margin-top: .8rem;
      font-size: var(--fs-2xs);
      font-weight: 700;
      letter-spacing: .14em;
      text-transform: uppercase;
      color: var(--white);
      background: var(--olive);
      padding: .25rem .65rem;
    }

    /* ============================================
       OFERTA — DWA APARTAMENTY
       ============================================ */
    .oferta {
      background: var(--white);
      padding: 8rem 0 0;
    }

    .oferta__header {
      text-align: center;
      margin-bottom: 5rem;
      position: relative;
      overflow: hidden;
    }

    .oferta__h2 {
      font-size: clamp(2rem, 4vw, 3.4rem);
      color: var(--forest);
      margin-bottom: .8rem;
    }

    .oferta__sub {
      font-family: var(--ff-display);
      font-style: italic;
      font-size: var(--fs-xl);
      color: #6b7280;
      max-width: 560px;
      margin: 0 auto;
    }

    /* ---- KARTY APARTAMENTÓW ---- */
    .oferta__apts {
      display: grid;
      grid-template-columns: 1fr auto 1fr;
      gap: 0;
      align-items: stretch;
      margin-bottom: 0;
    }

    .apt-card {
      display: flex;
      flex-direction: column;
      background: var(--white);
      border: 1px solid rgba(45,58,30,.1);
      overflow: hidden;
      transition: box-shadow .3s;
    }

    .apt-card:hover {
      box-shadow: 0 16px 48px rgba(45,58,30,.12);
    }

    /* Photo top */
    .apt-card__photo {
      position: relative;
      height: 300px;
      overflow: hidden;
      flex-shrink: 0;
    }

    .apt-card__photo .img-placeholder {
      width: 100%;
      height: 100%;
    }

    /* Exposure badge — góra karty */
    .apt-card__badge {
      position: absolute;
      top: 1.2rem;
      right: 1.2rem;
      background: var(--forest);
      color: var(--gold);
      font-family: var(--ff-body);
      font-size: var(--fs-2xs);
      font-weight: 700;
      letter-spacing: .18em;
      text-transform: uppercase;
      padding: .4rem .9rem;
      display: flex;
      align-items: center;
      gap: .5rem;
    }

    .apt-card__badge svg { flex-shrink: 0; }

    /* Body */
    .apt-card__body {
      padding: 2.2rem 2.4rem 2.8rem;
      flex: 1;
      display: flex;
      flex-direction: column;
    }

    .apt-card__name {
      font-family: var(--ff-display);
      font-size: clamp(2.2rem, 3.5vw, 3rem);
      font-weight: 300;
      color: var(--forest);
      letter-spacing: -.01em;
      margin-bottom: .25rem;
      line-height: 1;
    }

    .apt-card__name em {
      font-style: italic;
      color: var(--olive);
    }

    .apt-card__tagline {
      font-family: var(--ff-display);
      font-style: italic;
      font-size: var(--fs-md);
      color: #9ca3af;
      margin-bottom: 1.8rem;
    }

    .apt-card__features {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: .75rem;
      margin-bottom: 2rem;
      flex: 1;
    }

    .apt-card__features li {
      font-size: var(--fs-sm);
      color: #4b5563;
      display: flex;
      align-items: flex-start;
      gap: .75rem;
      line-height: 1.5;
    }

    .apt-card__features li::before {
      content: '';
      width: 5px;
      height: 5px;
      background: var(--olive);
      border-radius: 50%;
      flex-shrink: 0;
      margin-top: .55em;
    }

    .apt-card__cta {
      display: inline-flex;
      align-items: center;
      gap: .5rem;
      font-family: var(--ff-body);
      font-size: var(--fs-xs);
      font-weight: 700;
      letter-spacing: .14em;
      text-transform: uppercase;
      color: var(--olive);
      text-decoration: none;
      border-bottom: 1.5px solid var(--olive);
      padding-bottom: .15rem;
      align-self: flex-start;
      transition: color .2s, border-color .2s;
    }

    .apt-card__cta:hover { color: var(--forest); border-color: var(--forest); }

    /* ---- CONNECTOR — galerie ---- */
    .apt-connector {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 1.6rem;
      padding: 0 2rem;
      background: var(--forest);
      min-width: 160px;
      position: relative;
      z-index: 1;
    }

    .apt-gallery-btn {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: .55rem;
      text-decoration: none;
      transition: transform .2s;
    }
    .apt-gallery-btn:hover { transform: scale(1.1); }

    .apt-gallery-btn__circle {
      width: 58px;
      height: 58px;
      background: var(--olive);
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      box-shadow: 0 3px 14px rgba(0,0,0,.35);
      transition: background .2s, box-shadow .2s;
    }
    .apt-gallery-btn:hover .apt-gallery-btn__circle {
      background: #85a02e;
      box-shadow: 0 4px 18px rgba(0,0,0,.45);
    }

    .apt-gallery-btn__arrow {
      font-size: 1.1rem;
      color: rgba(255,255,255,.45);
      line-height: 1;
      transition: color .2s;
    }
    .apt-gallery-btn:hover .apt-gallery-btn__arrow { color: var(--gold); }

    /* ---- CENNIK ---- */
    .oferta__pricing {
      background: var(--forest);
      padding: 5rem 0;
      margin-top: 0;
    }

    .oferta__pricing-header {
      text-align: center;
      margin-bottom: 3.5rem;
    }

    .oferta__pricing-h3 {
      font-size: clamp(1.6rem, 3vw, 2.4rem);
      color: var(--white);
      margin-bottom: .5rem;
    }

    .oferta__pricing-sub {
      font-family: var(--ff-display);
      font-style: italic;
      font-size: var(--fs-xl);
      color: rgba(255,255,255,.45);
    }

    /* Trzy karty cenowe */
    .pricing-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 1px;
      background: rgba(255,255,255,.08);
      border: 1px solid rgba(255,255,255,.08);
      margin-bottom: 3rem;
    }

    .pricing-card {
      background: rgba(255,255,255,.04);
      padding: 2.5rem 2rem;
      text-align: center;
      position: relative;
      transition: background .2s;
    }

    .pricing-card:hover {
      background: rgba(255,255,255,.09);
    }

    .pricing-card--featured {
      background: rgba(157,181,58,.12);
      border-top: 3px solid var(--olive);
    }

    .pricing-card--featured:hover {
      background: rgba(157,181,58,.18);
    }

    .pricing-card__badge {
      display: inline-block;
      font-size: var(--fs-2xs);
      font-weight: 700;
      letter-spacing: .18em;
      text-transform: uppercase;
      color: var(--forest);
      background: var(--olive);
      padding: .25rem .75rem;
      margin-bottom: 1.5rem;
    }

    .pricing-card__persons {
      font-family: var(--ff-display);
      font-size: var(--fs-md);
      color: rgba(255,255,255,.5);
      margin-bottom: .5rem;
      letter-spacing: .05em;
    }

    .pricing-card__price {
      display: flex;
      align-items: baseline;
      justify-content: center;
      gap: .3rem;
      margin-bottom: .4rem;
    }

    .pricing-card__amount {
      font-family: var(--ff-display);
      font-size: clamp(2.8rem, 5vw, 4rem);
      font-weight: 600;
      color: var(--gold);
      line-height: 1;
    }

    .pricing-card__currency {
      font-family: var(--ff-body);
      font-size: var(--fs-sm);
      font-weight: 600;
      color: rgba(245,216,118,.6);
    }

    .pricing-card__unit {
      font-family: var(--ff-display);
      font-style: italic;
      font-size: var(--fs-lg);
      color: rgba(255,255,255,.35);
    }

    /* Minimalne pobyty — tabela info */
    .stay-rules {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 1px;
      background: rgba(255,255,255,.06);
      border: 1px solid rgba(255,255,255,.06);
      margin-bottom: 2.5rem;
    }

    .stay-rule {
      padding: 2rem 2rem 1.8rem;
      background: rgba(255,255,255,.02);
      display: flex;
      flex-direction: column;
      align-items: center;
    }

    .stay-rule__icon {
      font-size: var(--fs-xl);
      flex-shrink: 0;
      margin-top: .1rem;
    }

    .stay-rule__label {
      font-size: var(--fs-2xs);
      font-weight: 700;
      letter-spacing: .16em;
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: .25rem;
    }

    .stay-rule__nights {
      font-family: var(--ff-display);
      font-size: var(--fs-2xl);
      color: var(--white);
      line-height: 1.1;
      margin-bottom: .2rem;
    }

    .stay-rule__desc {
      font-size: var(--fs-xs);
      color: rgba(255,255,255,.4);
      line-height: 1.5;
    }

    /* Nota o wyjątkach */
    .oferta__note {
      display: flex;
      align-items: flex-start;
      gap: 1.3rem;
      background: rgba(245,216,118,.07);
      border: 1px solid rgba(245,216,118,.18);
      border-left: 3px solid var(--gold);
      padding: 1.6rem 2rem;
      max-width: 820px;
      margin: 0 auto;
    }

    .oferta__note-icon {
      font-size: var(--fs-xl);
      flex-shrink: 0;
      margin-top: .1rem;
    }

    .oferta__note-text {
      font-family: var(--ff-display);
      font-style: italic;
      font-size: var(--fs-lg);
      color: rgba(255,255,255,.85);
      line-height: 1.65;
    }

    .oferta__note-text strong {
      color: var(--gold);
      font-style: normal;
      font-weight: 600;
    }

    .oferta__note-text a {
      color: var(--olive);
      text-decoration: none;
      font-style: normal;
      font-weight: 600;
      border-bottom: 1px solid rgba(157,181,58,.4);
    }

    /* ── Karta świąt i długich weekendów ───────────────── */
    .oferta__holidays {
      margin-top: 2.5rem;
      background: rgba(255,255,255,.04);
      border: 1px solid rgba(255,255,255,.10);
      border-radius: 10px;
      overflow: hidden;
    }

    .oferta__holidays-header {
      display: flex;
      align-items: baseline;
      gap: 1rem;
      flex-wrap: wrap;
      padding: 1.1rem 1.6rem;
      border-bottom: 1px solid rgba(255,255,255,.08);
      background: rgba(255,255,255,.03);
    }

    .oferta__holidays-title {
      font-family: var(--ff-body);
      font-size: var(--fs-2xs);
      font-weight: 700;
      letter-spacing: .16em;
      text-transform: uppercase;
      color: var(--gold);
    }

    .oferta__holidays-sub {
      font-size: var(--fs-xs);
      color: rgba(255,255,255,.45);
      font-family: var(--ff-body);
    }

    /* Siatka wierszy */
    .oferta__holidays-grid {
      display: flex;
      flex-direction: column;
    }

    .oh-row {
      display: grid;
      grid-template-columns: 2fr 1fr 1fr 1fr;
      align-items: center;
      border-bottom: 1px solid rgba(255,255,255,.06);
    }
    .oh-row:last-child { border-bottom: none; }

    .oh-row--head {
      background: rgba(255,255,255,.03);
    }

    .oh-row--featured {
      background: rgba(245,216,118,.06);
    }

    .oh-row--inquiry {
      background: rgba(157,181,58,.05);
    }

    .oh-col {
      padding: .85rem 1.2rem;
      font-family: var(--ff-body);
      font-size: var(--fs-sm);
    }

    /* Nagłówki kolumn */
    .oh-row--head .oh-col {
      font-size: var(--fs-2xs);
      font-weight: 700;
      letter-spacing: .1em;
      text-transform: uppercase;
      color: rgba(255,255,255,.40);
    }

    /* Kolumna z nazwą okazji */
    .oh-col--event {
      display: flex;
      flex-direction: column;
      gap: .15rem;
    }

    .oh-event-name {
      font-family: var(--ff-display);
      font-size: var(--fs-lg);
      font-weight: 400;
      color: var(--white);
      line-height: 1.2;
    }

    .oh-event-dates {
      font-size: var(--fs-xs);
      color: rgba(255,255,255,.45);
    }

    /* Kolumny z cenami */
    .oh-col--price {
      text-align: center;
      font-family: var(--ff-display);
      font-size: var(--fs-xl);
      color: var(--gold);
      font-weight: 400;
    }

    .oh-unit {
      display: block;
      font-family: var(--ff-body);
      font-size: var(--fs-2xs);
      color: rgba(255,255,255,.45);
      font-weight: 400;
      letter-spacing: .05em;
    }

    /* Kolumna zapytanie — rozciąga się na 3 kolumny */
    .oh-col--span3 {
      grid-column: 2 / 5;
      text-align: left;
      font-family: var(--ff-body);
      font-size: var(--fs-sm);
      color: rgba(255,255,255,.55);
      font-style: italic;
    }

    /* Notka "Czasami są możliwe wyjątki..." */
    .oferta__exceptions {
      margin-top: 1.1rem;
      text-align: center;
      font-family: var(--ff-display);
      font-style: italic;
      font-size: calc(var(--fs-md) * 1.5);
      color: rgba(255,255,255,.70);
    }
    .oferta__exceptions .oh-star {
      font-style: normal;
      color: var(--gold);
      margin-right: .35em;
    }

    /* Responsive */
    @media (max-width: 640px) {
      .oh-row { grid-template-columns: 1fr 1fr 1fr 1fr; }
      .oh-col { padding: .7rem .7rem; font-size: var(--fs-xs); }
      .oh-event-name { font-size: var(--fs-md); }
      .oh-col--price { font-size: var(--fs-lg); }
      .oh-col--span3 { font-size: var(--fs-xs); }
    }
    @media (max-width: 480px) {
      .oh-row { grid-template-columns: 1.4fr 1fr 1fr 1fr; }
      .oh-col { padding: .6rem .5rem; }
    }

    /* ---- RESPONSIVE OFERTA ---- */
    @media (max-width: 960px) {
      .oferta__apts {
        grid-template-columns: 1fr;
      }
      .apt-connector {
        flex-direction: row;
        min-width: unset;
        padding: 1.5rem 2rem;
        gap: 1.5rem;
        justify-content: flex-start;
      }
      .apt-connector__divider { width: 3rem; height: 1px; margin: 0; }
      .pricing-grid { grid-template-columns: 1fr; gap: 1px; }
      .stay-rules { grid-template-columns: 1fr; }
      .pricing-card--featured { border-top: none; border-left: 3px solid var(--olive); }
    }

    @media (max-width: 560px) {
      .apt-card__photo { height: 220px; }
      .apt-card__body { padding: 1.6rem 1.4rem 2rem; }
      .oferta__note { flex-direction: column; gap: .6rem; }
    }

    /* ============================================
       REVEAL ANIMATIONS (IntersectionObserver)
       Animują się TYLKO elementy wewnątrz sekcji —
       nie tła, nie sekcje jako całość.
       ============================================ */
    .reveal {
      opacity: 0;
      transform: translateY(32px);
      transition: opacity .7s cubic-bezier(.22,1,.36,1),
                  transform .7s cubic-bezier(.22,1,.36,1);
    }
    .reveal.is-visible {
      opacity: 1;
      transform: translateY(0);
    }
    .reveal-d1 { transition-delay: .13s; }
    .reveal-d2 { transition-delay: .26s; }
    .reveal-d3 { transition-delay: .39s; }

    /* ============================================
       GALERIA — Miejsce, które czuć już na zdjęciach
       ============================================ */
    .galeria {
      background: var(--forest-dark);
      padding: 7rem 0 6rem;
    }

    .galeria__header {
      max-width: var(--container);
      margin: 0 auto;
      padding-inline: var(--gap);
      margin-bottom: 3.5rem;
      position: relative;
      overflow: hidden;
    }

    .galeria__header h2 {
      font-size: clamp(2.2rem, 3.8vw, 3.4rem);
      color: var(--white);
      font-weight: 300;
      line-height: 1.12;
      margin-top: .2rem;
    }

    .galeria__header h2 em {
      color: var(--gold);
      font-style: italic;
    }

    .galeria__grid {
      max-width: var(--container);
      margin: 0 auto;
      padding-inline: var(--gap);
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      grid-auto-rows: 340px;
      gap: .9rem;
    }

    .galeria__item {
      overflow: hidden;
      margin: 0;
      position: relative;
      cursor: pointer;
    }

    .galeria__item img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      transition: transform .7s cubic-bezier(.25,.46,.45,.94);
    }

    .galeria__item:hover img {
      transform: scale(1.05);
    }

    .galeria__item figcaption {
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      padding: 1.2rem 1.1rem .85rem;
      background: linear-gradient(transparent, rgba(20,26,14,.82));
      color: rgba(255,255,255,.88);
      font-family: var(--ff-body);
      font-size: var(--fs-xs);
      font-weight: 500;
      letter-spacing: .04em;
      opacity: 0;
      transform: translateY(6px);
      transition: opacity .35s ease, transform .35s ease;
    }

    .galeria__item:hover figcaption {
      opacity: 1;
      transform: translateY(0);
    }

    .galeria__item--wide {
      grid-column: span 2;
    }

    /* ── Kafel z filmem (YouTube — facade + lazy iframe) ── */
    .galeria__item--film {
      grid-column: 1 / -1;
      grid-row: span 2;
      background: var(--forest-dark);
    }

    .galeria__film-btn {
      position: absolute;
      inset: 0;
      display: block;
      width: 100%;
      height: 100%;
      padding: 0;
      border: 0;
      background: none;
      color: inherit;
      font: inherit;
      cursor: pointer;
    }

    .galeria__film-veil {
      position: absolute;
      inset: 0;
      background: linear-gradient(rgba(24,36,24,.30), rgba(24,36,24,.58));
      transition: background .5s ease;
    }

    .galeria__item--film:hover .galeria__film-veil {
      background: linear-gradient(rgba(24,36,24,.18), rgba(24,36,24,.46));
    }

    .galeria__film-cta {
      position: absolute;
      inset: 0;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: .95rem;
      pointer-events: none;
    }

    .galeria__film-play {
      width: 84px;
      height: 84px;
      border-radius: 50%;
      display: grid;
      place-items: center;
      color: var(--gold);
      border: 1px solid rgba(245,216,118,.5);
      background: rgba(24,36,24,.32);
      -webkit-backdrop-filter: blur(3px);
      backdrop-filter: blur(3px);
      transition: transform .5s cubic-bezier(.25,.46,.45,.94), background .5s ease, border-color .5s ease;
    }

    .galeria__film-play svg { margin-left: 4px; }

    .galeria__item--film:hover .galeria__film-play {
      transform: scale(1.08);
      background: rgba(245,216,118,.14);
      border-color: var(--gold);
    }

    .galeria__film-label {
      font-family: var(--ff-body);
      font-size: var(--fs-xs);
      font-weight: 500;
      letter-spacing: .2em;
      text-transform: uppercase;
      color: rgba(255,255,255,.9);
    }

    .galeria__film-btn:focus-visible {
      outline: 2px solid var(--gold);
      outline-offset: -5px;
    }

    .galeria__item--film iframe {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      border: 0;
      display: block;
    }

    .galeria__item--film.is-playing { cursor: default; }
    .galeria__item--film.is-playing figcaption { display: none; }

    @media (prefers-reduced-motion: reduce) {
      .galeria__film-play,
      .galeria__film-veil { transition: none; }
      .galeria__item--film:hover .galeria__film-play { transform: none; }
    }

    /* ============================================
       NATURA (TEREN ZEWNĘTRZNY)
       ============================================ */
    .natura {
      position: relative;
      min-height: 600px;
      display: grid;
      grid-template-columns: 1fr 1fr;
    }

    .natura__photo {
      position: relative;
      min-height: 500px;
      background: var(--forest);   /* tło widoczne przed wjazdem zdjęcia */
      overflow: hidden;
    }

    .natura__photo .img-placeholder { width: 100%; height: 100%; }

    .natura__content {
      background: var(--sage);
      padding: 6rem 4rem;
      display: flex;
      flex-direction: column;
      justify-content: center;
    }

    .natura__h2 {
      font-size: clamp(2rem, 3.5vw, 3rem);
      color: var(--forest);
      margin-bottom: 1rem;
    }
    .natura__h2 em { font-style: italic; color: var(--olive); }

    .natura__text {
      font-size: var(--fs-md);
      color: #4a5568;
      line-height: 1.8;
      margin-bottom: 2.5rem;
    }

    .natura__items {
      display: flex;
      flex-direction: column;
      gap: 1.5rem;
    }

    .natura__item {
      display: flex;
      align-items: center;
      gap: 1.1rem;
    }

    .natura__item-icon {
      width: 90px;
      height: 90px;
      flex-shrink: 0;
      border-radius: 12px;
      overflow: hidden;
    }

    .natura__item-icon img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }

    .natura__item-title {
      font-weight: 700;
      font-size: var(--fs-sm);
      letter-spacing: .04em;
      color: var(--forest);
      margin-bottom: .2rem;
    }

    .natura__item-desc {
      font-size: var(--fs-sm);
      color: #6b7280;
      line-height: 1.5;
    }

    /* ============================================
       OKOLICA (ATRAKCJE)
       ============================================ */
    .okolica {
      background: var(--white);
      padding: 8rem 0 0;        /* brak padding-bottom — mapa dosiega dołu */
      overflow: hidden;
      position: relative;
    }

    /* ── Karta — kontener z overflow: hidden ── */
    .activity-tab {
      background: var(--sage);
      border-left: 4px solid transparent;
      cursor: pointer;
      position: relative;
      overflow: hidden;           /* klipuje sylwetkę i foto przy wyjściu */
      min-height: 190px;
      transition: background .3s, border-color .3s, box-shadow .3s;
      /* NIE display:flex — dzieci pozycjonowane absolutnie lub przez padding */
    }

    .activity-tab.active {
      background: var(--white);
      border-left-color: var(--olive);
      box-shadow: 0 4px 24px rgba(45,58,30,.08);
    }

    /* ── SYLWETKA — absolutnie lewa strefa ── */
    .activity-tab__silhouette {
      position: absolute;
      left: 0; top: 0; bottom: 0;
      width: 260px;
      z-index: 2;
      pointer-events: none;
      overflow: hidden;
      transform: translateX(0);                           /* INACTIVE: widoczna */
      transition: transform .65s cubic-bezier(.22,1,.36,1);
    }

    .activity-tab__silhouette img {
      position: absolute;
      bottom: 0; left: 0;
      height: 100%;                                       /* pełna wysokość karty */
      width: auto;
      display: block;
      object-fit: contain;
      object-position: bottom left;
    }

    .activity-tab.active .activity-tab__silhouette {
      transform: translateX(-100%);                       /* ACTIVE: chowa się w lewo */
    }

    /* ── FOTO — absolutnie prawa strefa ── */
    .activity-tab__photo {
      position: absolute;
      right: 0; top: 0; bottom: 0;
      width: 38%;
      z-index: 2;
      overflow: hidden;
      transform: translateX(100%);                        /* INACTIVE: poza prawą krawędzią */
      transition: transform .65s cubic-bezier(.22,1,.36,1);
    }

    .activity-tab__photo img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }

    /* placeholder zdjęcia w karcie */
    .activity-tab__photo .img-placeholder {
      width: 100%;
      height: 100%;
      font-size: var(--fs-2xs);
      text-align: center;
    }

    .activity-tab.active .activity-tab__photo {
      transform: translateX(0);                           /* ACTIVE: wjeżdża z prawej */
    }

    /* ── BODY — tekst środkowy, padding steruje przestrzenią ── */
    .activity-tab__body {
      position: relative;
      z-index: 1;
      /* INACTIVE: padding-left = szerokość sylwetki, tekst wypychany w prawo */
      padding: 1.8rem 2.5rem 1.8rem calc(260px + 2.5rem);
      display: flex;
      flex-direction: column;
      justify-content: center;
      transition: padding .65s cubic-bezier(.22,1,.36,1);
    }

    .activity-tab.active .activity-tab__body {
      /* ACTIVE: padding-left normalny, padding-right = szerokość foto */
      padding: 1.8rem calc(38% + 2.5rem) 1.8rem 2.5rem;
    }

    .activity-tab__desc {
      font-size: var(--fs-sm);
      color: #6b7280;
      line-height: 1.6;
      margin-top: .6rem;
      max-width: 480px;
    }

    /* ============================================
       KARUZELA OKOLICY
       ============================================ */
    .okolica-karuzela {
      background: var(--forest-dark);
      overflow: hidden;
      padding: 5rem 0;
    }

    .okolica-karuzela__header {
      padding-inline: max(2rem, calc((100vw - var(--container)) / 2 + 2rem));
      margin-bottom: 3rem;
    }

    .okolica-karuzela__h3 {
      font-family: var(--ff-display);
      font-weight: 400;
      font-size: clamp(2rem, 4vw, 3.4rem);
      line-height: 1.15;
      color: var(--white);
      margin-bottom: .4rem;
    }

    .okolica-karuzela__sub {
      font-family: var(--ff-display);
      font-style: italic;
      font-size: var(--fs-md);
      color: rgba(255,255,255,.4);
    }

    /* Wrapper — full bleed, clips track */
    .carousel {
      width: 100%;
      overflow: hidden;
      cursor: grab;
      user-select: none;
      -webkit-user-select: none;
    }
    .carousel.is-grabbing { cursor: grabbing; }

    /* Scrolling track */
    .carousel__track {
      display: flex;
      gap: 10px;
      padding-left: max(2rem, calc((100vw - var(--container)) / 2 + 2rem));
      padding-right: max(2rem, calc((100vw - var(--container)) / 2 + 2rem));
      will-change: transform;
      transition: transform .55s cubic-bezier(.25,.46,.45,.94);
    }

    /* Individual slide */
    .carousel__slide {
      flex: 0 0 calc(46% - 5px);
      height: 460px;
      position: relative;
      overflow: hidden;
      border-radius: 2px;
      margin: 0;
      flex-shrink: 0;
    }

    .carousel__slide img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      pointer-events: none;
      transition: transform .65s cubic-bezier(.25,.46,.45,.94);
    }

    .carousel__slide:hover img { transform: scale(1.04); }

    /* Hover overlay */
    .carousel__overlay {
      position: absolute;
      inset: 0;
      background: linear-gradient(
        to top,
        rgba(20,26,14,.82) 0%,
        rgba(20,26,14,.18) 45%,
        transparent 100%
      );
      display: flex;
      align-items: flex-end;
      padding: 1.8rem;
      opacity: 0;
      transition: opacity .35s;
    }
    .carousel__slide:hover .carousel__overlay { opacity: 1; }

    .carousel__overlay span {
      font-family: var(--ff-display);
      font-size: var(--fs-xl);
      font-weight: 400;
      color: var(--white);
      line-height: 1.2;
      display: block;
    }

    .carousel__overlay span em {
      display: block;
      font-family: var(--ff-body);
      font-size: var(--fs-xs);
      font-style: normal;
      color: var(--gold);
      letter-spacing: .1em;
      text-transform: uppercase;
      margin-top: 5px;
    }

    /* Navigation dots */
    .carousel__dots {
      display: flex;
      justify-content: center;
      gap: 9px;
      margin-top: 2rem;
      padding-bottom: .5rem;
    }

    .carousel__dot {
      width: 7px;
      height: 7px;
      border-radius: 50%;
      border: none;
      background: rgba(255,255,255,.22);
      cursor: pointer;
      padding: 0;
      transition: background .25s, transform .25s, width .25s;
    }

    .carousel__dot.active {
      background: var(--gold);
      transform: scale(1.25);
      width: 20px;
      border-radius: 4px;
    }

    @media (max-width: 768px) {
      .carousel__slide { flex: 0 0 calc(84% - 5px); height: 280px; }
      .carousel__track { padding-left: 1.2rem; padding-right: 1.2rem; }
    }

    .okolica__header {
      margin-bottom: 4rem;
      padding-inline: max(2rem, calc((100vw - var(--container)) / 2 + 2rem));
      position: relative;
      overflow: visible;
    }

    .okolica__h2 {
      font-size: clamp(2rem, 4vw, 3.4rem);
      color: var(--forest);
      margin-bottom: .8rem;
    }

    .okolica__sub {
      font-size: var(--fs-sm);
      color: #6b7280;
      line-height: 1.7;
    }

    /* Karty — max 1200px wyśrodkowane */
    .okolica__grid {
      width: 100%;
    }

    .okolica__tabs-col {
      width: 100%;
    }

    /* tab-like activity cards */
    .activity-tabs {
      display: flex;
      flex-direction: column;
      gap: 1px;
      max-width: var(--container);
      margin: 0 auto;
    }

    .activity-tab__season {
      font-size: var(--fs-2xs);
      font-weight: 700;
      letter-spacing: .2em;
      text-transform: uppercase;
      color: var(--olive);
      margin-bottom: .4rem;
    }

    .activity-tab__title {
      font-family: var(--ff-display);
      font-size: var(--fs-xl);
      color: var(--forest);
      margin-bottom: .5rem;
    }

    .activity-tab__list {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: .3rem;
    }

    .activity-tab__list li {
      font-size: var(--fs-sm);
      color: #6b7280;
      display: flex;
      align-items: center;
      gap: .5rem;
    }

    .activity-tab__list li::before {
      content: '';
      width: 5px;
      height: 5px;
      background: var(--olive);
      border-radius: 50%;
      flex-shrink: 0;
    }

    /* Mapa — pełna wysokość gridu, do prawej krawędzi przeglądarki */
    .okolica__map-col {
      position: relative;
      overflow: hidden;
    }

    .okolica__map {
      position: absolute;
      inset: 0;                   /* wypełnia całą kolumnę */
      width: 100%;
      height: 100%;
      background: linear-gradient(145deg, #c9d4b5 0%, #a8be8a 40%, #b0c09a 100%);
      display: flex;
      align-items: center;
      justify-content: center;
      flex-direction: column;
      gap: .8rem;
      color: var(--forest);
      font-family: var(--ff-body);
      font-size: var(--fs-xs);
      font-weight: 700;
      letter-spacing: .12em;
      text-transform: uppercase;
      margin: 0;                  /* reset */
    }

    .okolica__map-inner {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: .8rem;
    }

    /* points overlay na mapie */
    .okolica__points {
      position: absolute;
      bottom: 2rem;
      left: 2rem;
      right: 2rem;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: .5rem;
      background: rgba(255,255,255,.75);
      backdrop-filter: blur(4px);
      padding: 1rem 1.2rem;
    }

    .okolica__point {
      font-size: var(--fs-xs);
      color: var(--forest);
      display: flex;
      align-items: center;
      gap: .5rem;
      font-weight: 600;
    }

    .okolica__point::before {
      content: '';
      width: 7px;
      height: 7px;
      background: var(--olive);
      border-radius: 50%;
      flex-shrink: 0;
    }

    /* ============================================
       REZERWACJA
       ============================================ */
    .rezerwacja {
      background: var(--forest);
      padding: 8rem 0;
    }

    .rezerwacja__grid {
      display: grid;
      grid-template-columns: 1.2fr 1fr;
      gap: 5rem;
      align-items: start;
    }

    .rezerwacja__main { position: relative; overflow: hidden; }

    .rezerwacja__h2 {
      font-size: clamp(2.2rem, 4vw, 3.8rem);
      color: var(--white);
      margin-bottom: .6rem;
    }
    .rezerwacja__h2 em { color: var(--gold); font-style: italic; }

    .rezerwacja__sub {
      font-family: var(--ff-display);
      font-style: italic;
      font-size: var(--fs-lg);
      color: rgba(255,255,255,.55);
      margin-bottom: 2.5rem;
    }

    /* ---- Jak zarezerwować — 3 kroki ---- */
    .rez-steps {
      display: flex;
      flex-direction: column;
      gap: 0;
      margin-bottom: 2.8rem;
    }

    .rez-step {
      display: grid;
      grid-template-columns: 52px 1fr;
      gap: 1.2rem;
      align-items: flex-start;
      padding: 1.4rem 0;
      border-bottom: 1px solid rgba(255,255,255,.07);
    }

    .rez-step:first-child { padding-top: 0; }
    .rez-step:last-child  { border-bottom: none; }

    .rez-step__num {
      width: 52px;
      height: 52px;
      border: 1.5px solid rgba(157,181,58,.45);
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: var(--ff-display);
      font-size: var(--fs-xl);
      font-weight: 300;
      color: var(--olive);
      flex-shrink: 0;
    }

    .rez-step__label {
      font-size: var(--fs-2xs);
      font-weight: 700;
      letter-spacing: .2em;
      text-transform: uppercase;
      color: var(--olive);
      margin-bottom: .25rem;
    }

    .rez-step__title {
      font-family: var(--ff-display);
      font-size: var(--fs-lg);
      color: var(--white);
      margin-bottom: .3rem;
      line-height: 1.2;
    }

    .rez-step__desc {
      font-size: var(--fs-sm);
      color: rgba(255,255,255,.45);
      line-height: 1.6;
    }

    /* CTA główny */
    .rez-cta {
      display: flex;
      flex-direction: column;
      gap: .8rem;
      margin-bottom: 3rem;
    }

    /* ---- FAQ Accordion ---- */
    .faq {
      border-top: 1px solid rgba(255,255,255,.1);
      padding-top: 2rem;
    }

    .faq__label {
      font-size: var(--fs-2xs);
      font-weight: 700;
      letter-spacing: .2em;
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: 1.2rem;
      display: flex;
      align-items: center;
      gap: .6rem;
    }

    .faq__label::after {
      content: '';
      flex: 1;
      height: 1px;
      background: rgba(245,216,118,.15);
    }

    .faq-item {
      border-left: 3px solid transparent;
      margin-bottom: 4px;
      transition: border-color .25s;
    }

    .faq-item.is-open {
      border-left-color: var(--olive);
    }

    .faq-item__trigger {
      width: 100%;
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 1rem;
      padding: 1rem 1.2rem;
      background: rgba(255,255,255,.04);
      border: none;
      cursor: pointer;
      text-align: left;
      transition: background .2s;
    }

    .faq-item__trigger:hover,
    .faq-item.is-open .faq-item__trigger {
      background: rgba(255,255,255,.07);
    }

    .faq-item__question {
      font-family: var(--ff-display);
      font-size: var(--fs-md);
      color: var(--white);
      line-height: 1.3;
    }

    .faq-item__icon {
      flex-shrink: 0;
      width: 20px;
      height: 20px;
      border: 1px solid rgba(245,216,118,.3);
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: transform .3s, border-color .3s;
    }

    .faq-item__icon svg {
      width: 10px;
      height: 10px;
      stroke: var(--gold);
      fill: none;
      stroke-width: 2;
      stroke-linecap: round;
      transition: transform .3s;
    }

    .faq-item.is-open .faq-item__icon {
      border-color: var(--olive);
    }

    .faq-item.is-open .faq-item__icon svg {
      transform: rotate(180deg);
      stroke: var(--olive);
    }

    .faq-item__body {
      overflow: hidden;
      max-height: 0;
      transition: max-height .35s ease;
    }

    .faq-item.is-open .faq-item__body {
      max-height: 600px;
    }

    .faq-item__answer {
      padding: .8rem 1.2rem 1.2rem;
      background: rgba(255,255,255,.02);
      font-size: var(--fs-sm);
      color: rgba(255,255,255,.6);
      line-height: 1.7;
    }

    .faq-item__answer p { margin: 0 0 .6rem; }
    .faq-item__answer p:last-child { margin-bottom: 0; }

    .faq-item__answer ul {
      margin: .4rem 0 .6rem 0;
      padding-left: 1.2rem;
    }

    .faq-item__answer ul li {
      margin-bottom: .3rem;
      color: rgba(255,255,255,.55);
    }

    .faq-item__answer strong {
      color: rgba(255,255,255,.85);
      font-weight: 600;
    }

    /* ---- Slider zdjęć 1:1 w rezerwacji ---- */
    .rez-slider {
      margin-top: 2rem;
      position: relative;
    }

    .rez-slider__track {
      position: relative;
      width: 100%;
      aspect-ratio: 1 / 1;
      overflow: hidden;
      border-radius: 2px;
    }

    .rez-slider__img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      opacity: 0;
      transition: opacity 1.1s ease;
    }

    .rez-slider__img.active {
      opacity: 1;
    }

    .rez-slider__dots {
      display: flex;
      justify-content: center;
      gap: 8px;
      margin-top: 1rem;
    }

    .rez-slider__dot {
      width: 7px;
      height: 7px;
      border-radius: 50%;
      border: none;
      background: rgba(255,255,255,.2);
      cursor: pointer;
      padding: 0;
      transition: background .25s, width .25s, border-radius .25s;
    }

    .rez-slider__dot.active {
      background: var(--gold);
      width: 20px;
      border-radius: 4px;
    }

    /* ---- Rezerwacja zasady ---- */
    .rezerwacja__rules {
      background: var(--forest);
      border-radius: 16px;
      padding: 2rem;
    }

    .rule-item {
      border-bottom: 1px solid rgba(255,255,255,.08);
      padding: 1.3rem 0;
      display: grid;
      grid-template-columns: 70px 1fr;
      gap: 1.2rem;
      align-items: center;
    }

    .rule-item:first-child { border-top: 1px solid rgba(255,255,255,.08); }

    .rule-icon {
      width: 70px;
      height: auto;
      border-radius: 10px;
      overflow: hidden;
      flex-shrink: 0;
    }

    .rule-icon img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }

    .rule-title {
      font-size: var(--fs-xs);
      font-weight: 700;
      letter-spacing: .14em;
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: .3rem;
    }

    .rule-text {
      font-size: var(--fs-sm);
      color: rgba(255,255,255,.65);
      line-height: 1.55;
    }

    .rule-text strong {
      color: var(--white);
    }

    /* check-in strip */
    .checkin-strip {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 1.5rem;
      margin-top: 2.5rem;
    }

    .checkin-box {
      background: rgba(255,255,255,.05);
      border: 1px solid rgba(255,255,255,.1);
      padding: 1.4rem;
      text-align: center;
    }

    .checkin-label {
      font-size: var(--fs-2xs);
      font-weight: 700;
      letter-spacing: .2em;
      text-transform: uppercase;
      color: rgba(255,255,255,.4);
      margin-bottom: .4rem;
    }

    .checkin-time {
      font-family: var(--ff-display);
      font-size: 2.4rem;
      font-weight: 600;
      color: var(--gold);
      line-height: 1;
    }

    .checkin-sub {
      font-size: var(--fs-sm);
      color: rgba(255,255,255,.4);
      margin-top: .3rem;
    }

    /* ============================================
       CTA BANNER (przed footerem)
       ============================================ */
    .cta-banner {
      position: relative;
      min-height: 380px;
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: hidden;
    }

    .cta-banner__bg {
      position: absolute;
      inset: 0;
    }

    .cta-banner__bg .img-placeholder { width: 100%; height: 100%; }

    .cta-banner__overlay {
      position: absolute;
      inset: 0;
      background: var(--forest-80);
    }

    .cta-banner__content {
      position: relative;
      z-index: 2;
      text-align: center;
      padding: 4rem 2rem;
    }

    .cta-banner__h2 {
      font-size: clamp(2rem, 4vw, 3.5rem);
      color: var(--white);
      margin-bottom: .8rem;
    }
    .cta-banner__h2 em { color: var(--gold); font-style: italic; }

    .cta-banner__sub {
      font-family: var(--ff-display);
      font-style: italic;
      font-size: var(--fs-lg);
      color: rgba(255,255,255,.7);
      margin-bottom: 2.5rem;
    }

    .cta-banner__actions {
      display: flex;
      gap: 1rem;
      justify-content: center;
      flex-wrap: wrap;
    }

    /* ============================================
       FOOTER
       ============================================ */
    .footer {
      background: #151a0d;
      padding: 5rem 0 2.5rem;
    }

    .footer__grid {
      display: grid;
      grid-template-columns: 2fr 1fr 1fr 1fr;
      gap: 3rem;
      padding-bottom: 3rem;
      border-bottom: 1px solid rgba(255,255,255,.08);
      margin-bottom: 2rem;
    }

    .footer__brand-logo {
      font-family: var(--ff-display);
      font-size: 2rem;
      font-weight: 600;
      color: var(--white);
      margin-bottom: .8rem;
      line-height: 1;
    }
    .footer__brand-logo em {
      font-style: italic;
      font-weight: 300;
      color: var(--gold);
    }

    .footer__brand-desc {
      font-size: var(--fs-sm);
      color: rgba(255,255,255,.45);
      line-height: 1.75;
      margin-bottom: 1.5rem;
    }

    .footer__social {
      display: flex;
      gap: .8rem;
    }

    .footer__social-btn {
      width: 38px;
      height: 38px;
      background: rgba(255,255,255,.07);
      border: 1px solid rgba(255,255,255,.1);
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: var(--fs-sm);
      cursor: pointer;
      transition: all .2s;
    }
    .footer__social-btn:hover {
      background: var(--olive);
      border-color: var(--olive);
    }

    .footer__col-title {
      font-size: var(--fs-2xs);
      font-weight: 700;
      letter-spacing: .22em;
      text-transform: uppercase;
      color: var(--olive);
      margin-bottom: 1.2rem;
    }

    .footer__links {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: .65rem;
    }

    .footer__links a {
      font-size: var(--fs-sm);
      color: rgba(255,255,255,.5);
      text-decoration: none;
      transition: color .2s;
    }
    .footer__links a:hover { color: var(--gold); }

    .footer__contact-item {
      display: flex;
      align-items: flex-start;
      gap: .7rem;
      margin-bottom: .55rem;
    }

    .footer__contact-icon {
      color: var(--olive);
      font-size: var(--fs-sm);
      margin-top: .1rem;
      flex-shrink: 0;
    }

    .footer__contact-text {
      font-size: var(--fs-sm);
      color: rgba(255,255,255,.55);
      line-height: 1.5;
    }

    /* map small */
    .footer__map {
      width: 100%;
      height: 120px;
      background: linear-gradient(135deg, #1d2a12, #2d3f1a);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: var(--fs-2xs);
      font-weight: 700;
      letter-spacing: .12em;
      text-transform: uppercase;
      color: rgba(157,181,58,.5);
      margin-top: .8rem;
      cursor: pointer;
    }

    .footer__bottom {
      display: flex;
      justify-content: space-between;
      align-items: center;
      flex-wrap: wrap;
      gap: 1rem;
    }

    .footer__copy {
      font-size: var(--fs-sm);
      color: rgba(255,255,255,.25);
    }

    .footer__legal {
      display: flex;
      gap: 1.5rem;
    }

    .footer__legal a {
      font-size: var(--fs-sm);
      color: rgba(255,255,255,.25);
      text-decoration: none;
      transition: color .2s;
    }
    .footer__legal a:hover { color: rgba(255,255,255,.55); }

    /* ============================================
       AMENITY GRID — 8 kart 2×4
       ============================================ */

    .amenity-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 1.5rem;
    }

    .amenity-card {
      background: var(--white);
      display: flex;
      flex-direction: column;
      overflow: hidden;
      border: 1px solid rgba(45,58,30,.07);
      transition: box-shadow .25s, transform .25s;
    }

    .amenity-card:hover {
      box-shadow: 0 12px 40px rgba(45,58,30,.13);
      transform: translateY(-3px);
    }

    /* slot na zdjęcie/ikonę — 200px wysokości */
    .amenity-card__img-slot {
      width: 100%;
      height: 200px;
      flex-shrink: 0;
    }

    .amenity-card__img-placeholder {
      width: 100%;
      height: 100%;
      font-size: var(--fs-2xs);
      text-align: center;
    }

    .amenity-card__icon {
      width: 100%;
      height: 100%;
      object-fit: contain;
      object-position: center;
      padding: 2rem;
      background: #fff;
      display: block;
    }

    .amenity-card__body {
      padding: 1.4rem 1.6rem 1.8rem;
      display: flex;
      flex-direction: column;
      flex: 1;
    }

    .amenity-card__num {
      font-family: var(--ff-display);
      font-size: 2.2rem;
      font-weight: 300;
      color: var(--olive);
      line-height: 1;
      margin-bottom: .3rem;
      opacity: .55;
    }

    .amenity-card__title {
      font-family: var(--ff-display);
      font-size: var(--fs-lg);
      font-weight: 600;
      color: var(--forest);
      margin-bottom: .6rem;
      line-height: 1.2;
    }

    .amenity-card__text {
      font-size: var(--fs-sm);
      color: #6b7280;
      line-height: 1.7;
      flex: 1;
    }

    /* ============================================
       BACK TO TOP
       ============================================ */
    .back-to-top {
      position: fixed;
      bottom: 1.5rem;
      right: 1.5rem;
      width: 46px;
      height: 46px;
      background: var(--forest);
      border: none;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      z-index: 999;
      box-shadow: 0 4px 16px rgba(0,0,0,.28);
      opacity: 0;
      transform: translateY(12px);
      transition: opacity .3s ease, transform .3s ease, background .2s;
      pointer-events: none;
    }
    .back-to-top.visible {
      opacity: 1;
      transform: translateY(0);
      pointer-events: auto;
    }
    .back-to-top:hover {
      background: var(--forest-dark);
    }
    .back-to-top svg {
      width: 20px;
      height: 20px;
      stroke: var(--gold);
      fill: none;
      stroke-width: 2.2;
      stroke-linecap: round;
      stroke-linejoin: round;
    }

    /* ============================================
       SECTION SPACING
       ============================================ */
    section { position: relative; }

    .pt-section { padding-top: 8rem; }
    .pb-section { padding-bottom: 8rem; }

    /* ============================================
       HAMBURGER & MOBILE MENU
       ============================================ */
    .nav__hamburger {
      display: none;
      flex-direction: column;
      justify-content: center;
      gap: 5px;
      width: 36px;
      height: 36px;
      cursor: pointer;
      background: none;
      border: none;
      padding: 4px;
      z-index: 200;
      flex-shrink: 0;
    }

    .nav__hamburger span {
      display: block;
      width: 100%;
      height: 2px;
      background: var(--white);
      border-radius: 2px;
      transition: transform .3s ease, opacity .3s ease, width .3s ease;
      transform-origin: center;
    }

    /* X state */
    .nav__hamburger.is-open span:nth-child(1) {
      transform: translateY(7px) rotate(45deg);
    }
    .nav__hamburger.is-open span:nth-child(2) {
      opacity: 0;
      width: 0;
    }
    .nav__hamburger.is-open span:nth-child(3) {
      transform: translateY(-7px) rotate(-45deg);
    }

    /* Mobile drawer — otwierane z góry */
    .nav__mobile-menu {
      display: none;
      position: fixed;
      top: 0; left: 0; right: 0;
      z-index: 150;
      background: var(--forest-dark);
      padding: 6rem 2rem 2.5rem;
      transform: translateY(-100%);
      transition: transform .4s cubic-bezier(.4,0,.2,1);
      box-shadow: 0 20px 60px rgba(0,0,0,.35);
    }

    .nav__mobile-close {
      position: absolute;
      top: 1.1rem; right: 1.2rem;
      width: 42px; height: 42px;
      display: flex; align-items: center; justify-content: center;
      background: rgba(255,255,255,.08);
      border: 1px solid rgba(255,255,255,.12);
      border-radius: 50%;
      cursor: pointer;
      color: rgba(255,255,255,.75);
      font-size: 1.3rem;
      line-height: 1;
      transition: background .2s, color .2s;
    }
    .nav__mobile-close:hover {
      background: rgba(255,255,255,.18);
      color: #fff;
    }

    .nav__mobile-menu.is-open {
      transform: translateY(0);
    }

    .nav__mobile-links {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: 0;
      margin-bottom: 2rem;
    }

    .nav__mobile-links li {
      border-bottom: 1px solid rgba(255,255,255,.07);
    }

    .nav__mobile-links a {
      display: block;
      padding: 1.1rem 0;
      font-family: var(--ff-display);
      font-size: var(--fs-2xl);
      font-weight: 400;
      color: rgba(255,255,255,.85);
      text-decoration: none;
      letter-spacing: .01em;
      transition: color .2s, padding-left .2s;
    }

    .nav__mobile-links a:hover {
      color: var(--gold);
      padding-left: .6rem;
    }

    .nav__mobile-cta {
      display: flex;
      flex-direction: column;
      gap: .8rem;
      padding-top: 1.5rem;
      border-top: 1px solid rgba(255,255,255,.07);
    }

    .nav__mobile-cta .btn {
      width: 100%;
      justify-content: center;
      font-size: var(--fs-sm);
    }

    /* ============================================
       RESPONSIVE — MOBILE FIRST
       ============================================ */
    @media (max-width: 900px) {

      /* NAV */
      .nav__links  { display: none; }
      .nav__cta    { display: none; }
      .nav__hamburger { display: flex; }
      .nav__mobile-menu { display: block; }

      /* HERO */
      .hero__content { padding: 0 1.2rem 4rem; }
      .hero__usps { gap: 1.2rem; flex-direction: column; align-items: center; }
      .hero__actions { flex-direction: column; align-items: center; }
      .hero__scroll { display: none; }

      /* FILOZOFIA */
      .filozofia { padding: 5rem 0; }
      .filozofia__grid {
        grid-template-columns: 1fr;
        gap: 3rem;
      }
      .filozofia__big-quote { font-size: 8rem; top: -2rem; left: -1rem; }
      .filozofia__photo { margin-top: 4rem; }
      .filozofia__photo-badge { left: 0; bottom: -1.5rem; }
      .manifest { grid-template-columns: 1fr; }

      /* DOMEK */
      .domek { padding: 5rem 0; }
      .domek__gallery {
        grid-template-columns: 1fr;
        grid-template-rows: 240px 180px 180px 180px 180px;
      }
      .domek__gallery-item--main { grid-row: auto; }

      .amenity-grid {
        grid-template-columns: 1fr 1fr;
        gap: 1rem;
      }

      /* GALERIA */
      .galeria { padding: 5rem 0 4rem; }
      .galeria__grid {
        grid-template-columns: 1fr 1fr;
        grid-auto-rows: 280px;
      }
      .galeria__item--wide { grid-column: span 2; }
      .galeria__item--film { grid-column: 1 / -1; grid-row: span 2; }
      .galeria__film-play { width: 70px; height: 70px; }

      /* NATURA */
      .natura {
        grid-template-columns: 1fr;
      }
      .natura__photo { min-height: 320px; }
      .natura__content { padding: 3.5rem 2rem; }
      .natura__items { grid-template-columns: 1fr; gap: 1.2rem; }

      /* OKOLICA */
      .okolica { padding: 5rem 0 0; }
      .okolica__header { padding-inline: 1.5rem; }
      .activity-tab__silhouette { width: 160px; }
      .activity-tab__body {
        padding: 1.4rem 1.5rem 1.4rem calc(160px + 1.5rem);
      }
      .activity-tab.active .activity-tab__body {
        padding: 1.4rem calc(40% + 1.5rem) 1.4rem 1.5rem;
      }
      .activity-tab__photo { width: 40%; }
      .okolica-mapa { min-height: 300px; }

      /* REZERWACJA */
      .rezerwacja { padding: 5rem 0; }
      .rezerwacja__grid {
        grid-template-columns: 1fr;
        gap: 3rem;
      }

      /* FOOTER */
      .footer { padding: 4rem 0 2rem; }
      .footer__grid {
        grid-template-columns: 1fr 1fr;
        gap: 2.5rem;
      }
    }

    @media (max-width: 560px) {

      /* container */
      .container { padding-inline: 1.2rem; }

      /* HERO */
      .hero__h1 {
        font-size: clamp(1.9rem, 8.5vw, 3rem);
        white-space: normal;      /* na małych może łamać */
      }
      .hero__sub { font-size: var(--fs-md); }
      .hero__usps { gap: .8rem; }

      /* domek gallery */
      .domek__gallery {
        grid-template-rows: 220px 160px 160px 160px 160px;
      }

      /* GALERIA — 1 kolumna na najmniejszych */
      .galeria__grid {
        grid-template-columns: 1fr;
        grid-auto-rows: 260px;
      }
      .galeria__item--wide { grid-column: span 1; }
      .galeria__item--film { grid-column: 1 / -1; grid-row: span 1; }
      .galeria__film-play { width: 60px; height: 60px; }
      .galeria__film-label { font-size: var(--fs-2xs); letter-spacing: .14em; }

      /* KLUCZOWE — amenity 1 kolumna na małych */
      .amenity-grid {
        grid-template-columns: 1fr;
      }

      /* Taby okolica — na bardzo małych ukrywamy foto, sylwetkę redukujemy */
      .activity-tab { min-height: 160px; }
      .activity-tab__silhouette { width: 110px; opacity: .5; }
      .activity-tab__photo { display: none; }
      .activity-tab__body {
        padding: 1.2rem 1.2rem 1.2rem calc(110px + 1.2rem) !important;
      }
      .activity-tab.active .activity-tab__body {
        padding: 1.2rem 1.2rem !important;
      }

      /* checkin strip */
      .checkin-strip { grid-template-columns: 1fr; gap: 1rem; }

      /* footer */
      .footer__grid { grid-template-columns: 1fr; gap: 2rem; }
      .footer__bottom { flex-direction: column; align-items: flex-start; gap: .5rem; }

      /* nav mobile menu — większy font na małych */
      .nav__mobile-links a { font-size: var(--fs-xl); }

      /* cta banner */
      .cta-banner__h2 { font-size: 1.9rem; }
      .cta-banner__actions { flex-direction: column; align-items: center; }
      .cta-banner__actions .btn { width: 100%; justify-content: center; }
    }

    /* ============================================
       HERO ENTRANCE ANIMATIONS
       ============================================ */
    @keyframes heroFadeUp {
      from { opacity: 0; transform: translateY(18px); }
      to   { opacity: 1; transform: translateY(0); }
    }

    @keyframes heroFadeIn {
      from { opacity: 0; }
      to   { opacity: 1; }
    }

    .hero__bg img {
      animation: heroFadeIn 1.4s ease forwards;
    }

    .hero__eyebrow {
      animation: heroFadeUp .7s ease both;
      animation-delay: .25s;
      opacity: 0;
    }

    .hero__h1 {
      animation: heroFadeUp .8s ease both;
      animation-delay: .45s;
      opacity: 0;
    }

    .hero__sub {
      animation: heroFadeUp .8s ease both;
      animation-delay: .65s;
      opacity: 0;
    }

    .hero__actions {
      animation: heroFadeUp .7s ease both;
      animation-delay: .85s;
      opacity: 0;
    }

    .hero__scroll {
      animation: heroFadeIn .8s ease both;
      animation-delay: 1.2s;
      opacity: 0;
    }

    /* ── OPINIE ── */
    .opinie { background: var(--sage); padding: 6rem 0 7rem; }
    .opinie__intro {
      max-width: 680px; margin: 0 auto 3.5rem; text-align: center;
      padding-inline: var(--gap);
    }
    .opinie__intro p {
      font-size: var(--fs-lg); color: rgba(37,45,61,1); line-height: 1.85;
      font-style: italic; font-family: var(--ff-display); font-weight: 300;
    }
    .opinie__intro .opinie__signature {
      display: block; margin-top: .6rem;
      font-family: var(--ff-display); font-size: var(--fs-lg); font-weight: 400;
      font-style: italic; color: var(--olive);
    }
    .opinie__grid {
      max-width: var(--container); margin: 0 auto;
      padding-inline: var(--gap);
      display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.4rem;
    }
    .opinia {
      background: var(--white); border-radius: 10px;
      padding: 1.8rem 1.6rem 1.6rem;
      display: flex; flex-direction: column; gap: .9rem;
      box-shadow: 0 2px 18px rgba(45,58,30,.07);
      position: relative;
    }
    .opinia__quote {
      font-size: 3.2rem; line-height: .8; color: var(--olive); opacity: .35;
      font-family: var(--ff-display); font-weight: 700;
      position: absolute; top: 1rem; left: 1.4rem;
    }
    .opinia__stars { display: flex; gap: 3px; color: var(--olive); font-size: 1rem; padding-top: 1.2rem; }
    .opinia__text {
      font-size: var(--fs-md); color: rgba(37,45,61,1); line-height: 1.75;
      font-family: var(--ff-display); font-weight: 300; font-style: italic;
      flex: 1;
    }
    .opinia__author { display: flex; flex-direction: column; gap: .15rem; margin-top: .4rem; }
    .opinia__name {
      font-size: var(--fs-xs); font-weight: 700; color: var(--forest);
      letter-spacing: .04em;
    }
    .opinia__date { font-size: var(--fs-2xs); color: rgba(37,45,61,.4); letter-spacing: .06em; }
    @media (max-width: 900px) { .opinie__grid { grid-template-columns: repeat(2, 1fr); } }
    @media (max-width: 560px) { .opinie__grid { grid-template-columns: 1fr; } }

    /* ============================================
       REZ-INFO — sekcja z akordeonami (jak rezerwować)
       ============================================ */
    .rez-info {
      background: var(--forest);
      padding: 1rem 0 4rem;
    }
    .rez-info__header {
      text-align: center;
      margin-bottom: 3rem;
    }
    .rez-info__h2 {
      font-family: var(--ff-display);
      font-size: clamp(2rem, 4vw, 2.8rem);
      font-weight: 300;
      color: var(--white);
      margin-top: .4rem;
      line-height: 1.2;
    }
    .rez-info__h2 em { color: var(--gold); font-style: italic; }

    /* Siatka 2 kolumny */
    .rez-info__grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 1.2rem;
    }

    /* ── Pojedynczy akordeon (ciemny — na tle forest) ── */
    .rez-acc {
      background: rgba(255,255,255,.055);
      border: 1px solid rgba(255,255,255,.10);
      border-radius: 10px;
      overflow: hidden;
      transition: border-color .25s;
    }
    .rez-acc:hover { border-color: rgba(245,216,118,.35); }
    .rez-acc.is-open { border-color: rgba(245,216,118,.45); }

    /* Przycisk nagłówka */
    .rez-acc__btn {
      display: flex;
      align-items: center;
      gap: 1.1rem;
      width: 100%;
      padding: 1.3rem 1.5rem;
      background: none;
      border: none;
      cursor: pointer;
      text-align: left;
    }

    /* Kółko z ikoną */
    .rez-acc__icon {
      flex-shrink: 0;
      width: 58px;
      height: 58px;
      border-radius: 50%;
      border: 1.5px solid rgba(245,216,118,.35);
      background: rgba(245,216,118,.07);
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--gold);
      /* Placeholder: zastąp treścią <img> kiedy będą ikony */
    }
    .rez-acc__icon img {
      width: 58px;
      height: 58px;
      object-fit: contain;
    }

    /* Teksty w nagłówku */
    .rez-acc__meta { flex: 1; min-width: 0; }
    .rez-acc__title {
      display: block;
      font-family: var(--ff-body);
      font-size: var(--fs-2xs);
      font-weight: 700;
      letter-spacing: .18em;
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: .25rem;
    }
    .rez-acc__sub {
      display: block;
      font-family: var(--ff-body);
      font-size: var(--fs-sm);
      color: rgba(255,255,255,.72);
      line-height: 1.45;
    }

    /* Strzałka chevron */
    .rez-acc__chev {
      flex-shrink: 0;
      color: var(--gold);
      opacity: .65;
      transition: transform .3s ease, opacity .2s;
    }
    .rez-acc.is-open .rez-acc__chev { transform: rotate(180deg); opacity: 1; }

    /* Treść rozwijana */
    .rez-acc__body {
      display: none;
      padding: 0 1.5rem 1.5rem;
      /* wcięcie na szerokość ikony + gap */
      padding-left: calc(1.5rem + 58px + 1.1rem);
    }
    .rez-acc.is-open .rez-acc__body { display: block; }
    .rez-acc__body p {
      font-size: var(--fs-sm);
      color: rgba(255,255,255,.82);
      line-height: 1.75;
    }
    .rez-acc__body strong { color: var(--white); font-weight: 600; }

    /* ── Wariant jasny (na tle sage — sekcja Nie Regulamin) ── */
    .rez-acc--light {
      background: var(--white);
      border-color: rgba(45,58,30,.12);
    }
    .rez-acc--light:hover { border-color: rgba(157,181,58,.5); }
    .rez-acc--light.is-open { border-color: rgba(157,181,58,.6); }
    .rez-acc--light .rez-acc__icon {
      border-color: rgba(157,181,58,.4);
      background: rgba(157,181,58,.08);
      color: var(--olive);
    }
    .rez-acc--light .rez-acc__icon img {
      width: 58px;
      height: 58px;
      object-fit: contain;
    }
    .rez-acc--light .rez-acc__title { color: var(--olive); }
    .rez-acc--light .rez-acc__sub { color: rgba(37,45,61,.70); }
    .rez-acc--light .rez-acc__chev { color: var(--olive); }
    .rez-acc--light .rez-acc__body p { color: var(--navy); }
    .rez-acc--light .rez-acc__body ul {
      margin-top: .7rem;
      padding-left: 1.1rem;
      display: flex;
      flex-direction: column;
      gap: .55rem;
    }
    .rez-acc--light .rez-acc__body li {
      font-size: var(--fs-sm);
      color: var(--navy);
      line-height: 1.65;
      list-style: disc;
    }

    /* ============================================
       NIE REGULAMIN — sekcja
       ============================================ */
    .nieregulamin {
      background: var(--sage);
      padding: 5rem 0 4rem;
    }
    .nieregulamin__header {
      text-align: center;
      margin-bottom: 3rem;
    }
    .nieregulamin__h2 {
      font-family: var(--ff-display);
      font-size: clamp(2rem, 4vw, 2.8rem);
      font-weight: 300;
      color: var(--forest);
      margin-top: .4rem;
      line-height: 1.2;
    }
    .nieregulamin__h2 em { color: var(--olive); font-style: italic; }

    /* ── Responsive ── */
    @media (max-width: 860px) {
      .rez-info__grid { grid-template-columns: 1fr; }
      .rez-acc__body { padding-left: 1.5rem; }
    }
    @media (max-width: 560px) {
      .rez-acc__icon { width: 48px; height: 48px; }
      .rez-acc__icon img { width: 48px; height: 48px; }
      .rez-acc__btn { gap: .9rem; padding: 1.1rem 1.2rem; }
    }
