/* Self-hosted Lato (subset Latin Extended) */
    @font-face {
      font-family: 'Lato';
      font-style: normal;
      font-weight: 300;
      font-display: swap;
      src: url('assets/fonts/lato-300.woff2') format('woff2');
    }
    @font-face {
      font-family: 'Lato';
      font-style: normal;
      font-weight: 400;
      font-display: swap;
      src: url('assets/fonts/lato-400.woff2') format('woff2');
    }
    @font-face {
      font-family: 'Lato';
      font-style: normal;
      font-weight: 700;
      font-display: swap;
      src: url('assets/fonts/lato-700.woff2') format('woff2');
    }


    /* ── A11Y: Skip-link ── */
    .skip-link {
      position: absolute;
      top: -50px;
      left: 16px;
      background: var(--forest);
      color: #fff;
      padding: 12px 22px;
      border-radius: 4px;
      text-decoration: none;
      z-index: 10000;
      font-weight: 700;
      font-size: 0.92rem;
      transition: top 0.2s ease;
      box-shadow: 0 4px 16px rgba(0,0,0,0.3);
    }
    .skip-link:focus {
      top: 16px;
      outline: 3px solid #fff;
      outline-offset: 2px;
    }
    /* widoczny focus dla wszystkich elementów interaktywnych */
    a:focus-visible,
    button:focus-visible,
    input:focus-visible,
    [tabindex]:focus-visible {
      outline: 3px solid var(--forest-light);
      outline-offset: 2px;
    }

    :root {
      --forest: #2d5016;
      --forest-mid: #3d6b1f;
      --forest-light: #5a8a2e;
      --bark: #6b4c2a;
      --bark-light: #9b7347;
      --sand: #e8d5b0;
      --sand-light: #f5ecd8;
      --water: #4a8fa8;
      --water-light: #6bafc8;
      --cream: #faf7f0;
      --dark: #1a1a18;
      --accent-red: #a8281a;        /* odcień czerwieni dopasowany do palety (rdza/burgund) */
      --accent-red-soft: #c44432;
    }

    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; }

    body {
      font-family: 'Lato', sans-serif;
      background-color: var(--cream);
      color: var(--dark);
      font-weight: 300;
    }

    h1, h2, h3, .display-font {
      font-family: 'Playfair Display', serif;
    }

    /* ── TOPBAR ── */
    .topbar {
      background: var(--forest);
      color: #fff;
      font-size: 0.82rem;
      padding: 6px 0;
      letter-spacing: 0.03em;
    }
    .topbar a { color: var(--sand); text-decoration: none; }
    .topbar a:hover { color: #fff; }
    .topbar .bi { font-size: 0.9rem; margin-right: 4px; }

    /* ── NAVBAR ── */
    .navbar {
      background: rgba(250, 247, 240, 0.97);
      border-bottom: 3px solid var(--forest-light);
      box-shadow: 0 2px 20px rgba(0,0,0,0.08);
      padding: 12px 0;
      transition: box-shadow 0.3s;
    }
    .navbar-brand {
      display: flex;
      align-items: center;
      gap: 12px;
    }
    .navbar-brand .brand-logo {
      width: 48px;
      height: 48px;
      flex: 0 0 48px;
      display: block;
    }
    .navbar-brand .brand-text {
      display: flex;
      flex-direction: column;
      justify-content: center;
      line-height: 1;
    }
    .navbar-brand .brand-name {
      font-family: 'Playfair Display', serif;
      font-size: 1.5rem;
      font-weight: 700;
      color: var(--forest);
      line-height: 1;
    }
    .navbar-brand .brand-sub {
      font-family: 'Lato', sans-serif;
      font-size: 0.7rem;
      font-weight: 400;
      color: var(--bark);
      letter-spacing: 0.15em;
      text-transform: uppercase;
      display: block;
      margin-top: 4px;
    }
    @media (max-width: 575.98px) {
      .navbar-brand .brand-logo { width: 40px; height: 40px; flex-basis: 40px; }
      .navbar-brand .brand-name { font-size: 1.25rem; }
      .navbar-brand .brand-sub { font-size: 0.6rem; letter-spacing: 0.12em; }
    }
    .navbar-nav .nav-link {
      font-family: 'Lato', sans-serif;
      font-weight: 700;
      font-size: 0.88rem;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: var(--forest) !important;
      padding: 8px 14px;
      border-radius: 4px;
      transition: background 0.2s, color 0.2s;
    }
    .navbar-nav .nav-link:hover,
    .navbar-nav .nav-link.active {
      background: var(--forest);
      color: #fff !important;
    }
    .navbar-toggler { border: 2px solid var(--forest); }
    .navbar-toggler-icon {
      background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%232d5016' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
    }

    /* ── HERO ── */
    .hero {
      position: relative;
      height: 90vh;
      min-height: 520px;
      max-height: 820px;
      overflow: hidden;
    }
    .hero-carousel,
    .hero-carousel .carousel-inner,
    .hero-carousel .carousel-item {
      height: 100%;
    }
    .hero-carousel .carousel-item {
      transition: opacity 1.2s ease-in-out;
    }
    .hero-carousel.carousel-fade .carousel-item.active {
      opacity: 1;
    }
    .hero-img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
      transform: scale(1.04);
      animation: heroZoom 8s ease-out forwards;
    }
    @keyframes heroZoom { to { transform: scale(1); } }
    .hero-content-wrap {
      position: absolute;
      inset: 0;
      z-index: 3;
      display: flex;
      align-items: center;
      pointer-events: none;
    }
    .hero-content-wrap .hero-content { pointer-events: auto; }
    /* strzałki karuzeli — subtelniejsze, bardziej eleganckie */
    .hero-carousel .carousel-control-prev,
    .hero-carousel .carousel-control-next {
      width: 5%;
      z-index: 4;
      opacity: 0.55;
      transition: opacity 0.2s;
    }
    .hero-carousel .carousel-control-prev:hover,
    .hero-carousel .carousel-control-next:hover { opacity: 1; }
    .hero-carousel .carousel-control-prev-icon,
    .hero-carousel .carousel-control-next-icon {
      filter: drop-shadow(0 2px 6px rgba(0,0,0,0.6));
      width: 2.4rem;
      height: 2.4rem;
    }
    .hero-content {
      position: relative;
      z-index: 2;
      color: #fff;
      max-width: 640px;
      padding: 36px 42px 38px;
      background: linear-gradient(135deg, rgba(45,80,22,0.45) 0%, rgba(26,26,24,0.40) 60%, rgba(74,143,168,0.45) 100%);
      backdrop-filter: blur(10px) saturate(1.1);
      -webkit-backdrop-filter: blur(10px) saturate(1.1);
      border: 1px solid rgba(255,255,255,0.18);
      border-radius: 10px;
      box-shadow: 0 16px 50px rgba(0,0,0,0.45);
    }
    @media (max-width: 575.98px) {
      .hero-content { padding: 26px 24px 28px; max-width: 100%; }
    }
    .hero-tag {
      display: inline-block;
      background: var(--bark);
      color: var(--sand);
      font-size: 0.75rem;
      font-weight: 700;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      padding: 5px 14px;
      border-radius: 2px;
      margin-bottom: 18px;
    }
    .hero h1 {
      font-size: clamp(2.2rem, 6vw, 4.2rem);
      font-weight: 700;
      text-shadow: 0 2px 20px rgba(0,0,0,0.4);
      line-height: 1.15;
      margin-bottom: 12px;
    }
    .hero h1 em {
      color: var(--sand);
      font-style: italic;
    }
    .hero-lead {
      font-size: clamp(1rem, 2vw, 1.2rem);
      font-weight: 300;
      opacity: 0.92;
      max-width: 560px;
      margin-bottom: 32px;
    }
    .btn-primary-morena {
      background: var(--forest);
      border: none;
      color: #fff;
      font-weight: 700;
      font-size: 0.88rem;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      padding: 14px 30px;
      border-radius: 4px;
      transition: background 0.2s, transform 0.2s;
      text-decoration: none;
      display: inline-block;
    }
    .btn-primary-morena:hover {
      background: var(--forest-mid);
      color: #fff;
      transform: translateY(-2px);
    }
    .btn-outline-morena {
      background: transparent;
      border: 2px solid rgba(255,255,255,0.7);
      color: #fff;
      font-weight: 700;
      font-size: 0.88rem;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      padding: 12px 30px;
      border-radius: 4px;
      transition: all 0.2s;
      text-decoration: none;
      display: inline-block;
    }
    .btn-outline-morena:hover {
      background: rgba(255,255,255,0.15);
      color: #fff;
      border-color: #fff;
    }
    .hero-badges {
      display: flex;
      gap: 16px;
      margin-top: 36px;
      flex-wrap: wrap;
    }
    .hero-badge {
      display: flex;
      align-items: center;
      gap: 7px;
      background: rgba(255,255,255,0.12);
      backdrop-filter: blur(8px);
      border: 1px solid rgba(255,255,255,0.3);
      color: #fff;
      font-size: 0.8rem;
      font-weight: 700;
      letter-spacing: 0.04em;
      padding: 6px 14px;
      border-radius: 30px;
    }
    .hero-badge .bi { font-size: 1rem; color: var(--sand); }
    @keyframes bounce {
      0%,100% { transform: translateY(0); }
      50% { transform: translateY(6px); }
    }

    /* ── SECTION HEADERS ── */
    .section-label {
      font-family: 'Lato', sans-serif;
      font-size: 0.72rem;
      font-weight: 700;
      letter-spacing: 0.25em;
      text-transform: uppercase;
      color: var(--bark);
      margin-bottom: 10px;
    }
    .section-title {
      font-family: 'Playfair Display', serif;
      font-size: clamp(1.8rem, 4vw, 2.6rem);
      color: var(--forest);
      margin-bottom: 0;
      line-height: 1.2;
    }
    .section-divider {
      width: 50px;
      height: 3px;
      background: var(--bark);
      margin: 16px 0 24px;
    }
    .section-divider.center { margin-left: auto; margin-right: auto; }

    /* ── ABOUT ── */
    .about-section { padding: 80px 0; background: var(--cream); }
    .about-text { font-size: 1.02rem; line-height: 1.85; color: #333; }
    .distance-card {
      background: var(--sand-light);
      border-left: 4px solid var(--forest);
      border-radius: 6px;
      padding: 14px 18px;
      margin-bottom: 12px;
    }
    .distance-card strong { color: var(--forest); }
    .amenity-pill {
      display: inline-flex;
      align-items: center;
      gap: 7px;
      background: var(--forest);
      color: #fff;
      font-size: 0.8rem;
      font-weight: 700;
      padding: 7px 14px;
      border-radius: 30px;
      margin: 4px 4px 4px 0;
    }
    .amenity-pill .bi { color: var(--sand); }

    /* ── CABINS ── */
    .cabins-section { padding: 80px 0; background: #f0ebe0; }
    .cabin-card {
      background: #fff;
      border-radius: 12px;
      overflow: hidden;
      box-shadow: 0 4px 24px rgba(0,0,0,0.07);
      transition: transform 0.3s, box-shadow 0.3s;
      height: 100%;
    }
    .cabin-card:hover {
      transform: translateY(-6px);
      box-shadow: 0 12px 40px rgba(45,80,22,0.15);
    }
    .cabin-card-img {
      height: 220px;
      background-size: cover;
      background-position: center;
      position: relative;
    }
    .cabin-badge {
      position: absolute;
      top: 14px;
      left: 14px;
      background: var(--forest);
      color: #fff;
      font-size: 0.72rem;
      font-weight: 700;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      padding: 4px 10px;
      border-radius: 3px;
    }
    .cabin-badge.plus {
      background: var(--accent-red);
      box-shadow: 0 2px 8px rgba(0,0,0,0.25);
    }
    .cabin-card-body { padding: 20px 22px 24px; }
    .cabin-card-title {
      font-family: 'Playfair Display', serif;
      font-size: 1.2rem;
      color: var(--forest);
      margin-bottom: 6px;
    }
    .cabin-meta { font-size: 0.82rem; color: #555; margin-bottom: 14px; }
    .cabin-meta .bi { color: var(--bark); margin-right: 4px; }
    .cabin-price {
      font-size: 1.4rem;
      font-weight: 700;
      color: var(--forest);
    }
    .cabin-price span { font-size: 0.8rem; font-weight: 400; color: #555; }
    .cabin-features { list-style: none; padding: 0; margin: 12px 0 0; }
    .cabin-features li {
      font-size: 0.82rem;
      padding: 3px 0;
      color: #555;
    }
    .cabin-features li::before {
      content: '✓';
      color: var(--forest-light);
      font-weight: 700;
      margin-right: 7px;
    }
    /* Etykieta wersu (PLUS / STANDARD) */
    .cabins-row-label {
      display: flex;
      align-items: center;
      gap: 14px;
      margin: 8px 0 18px;
      padding-bottom: 10px;
      border-bottom: 2px dashed rgba(45,80,22,0.18);
    }
    .cabins-row-pill {
      font-family: 'Lato', sans-serif;
      font-weight: 700;
      font-size: 0.78rem;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      padding: 6px 14px;
      border-radius: 999px;
      color: #fff;
    }
    .cabins-row-pill--plus { background: var(--accent-red); }
    .cabins-row-pill--std  { background: var(--forest); }
    .cabins-row-desc {
      font-family: 'Playfair Display', serif;
      font-style: italic;
      color: #555;
      font-size: 1.02rem;
    }
    /* CTA „Cena na zapytanie" */
    .cabin-price .cabin-ask {
      color: var(--accent-red);
      font-weight: 700;
      font-size: 1rem;
      letter-spacing: 0.01em;
    }


    /* Klikalny kafelek otwierający galerię */
    a.cabin-card,
    a.cabin-card:visited { color: inherit; text-decoration: none; display: block; height: 100%; }
    .cabin-card--clickable { cursor: pointer; }
    .cabin-card--clickable:hover .cabin-card-img { filter: brightness(0.92); }
    .cabin-card--clickable .cabin-card-img { position: relative; }
    .cabin-card-zoom {
      position: absolute;
      bottom: 14px;
      right: 14px;
      background: rgba(0,0,0,0.55);
      color: #fff;
      font-size: 0.75rem;
      font-weight: 700;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      padding: 6px 12px;
      border-radius: 999px;
      display: inline-flex;
      align-items: center;
      gap: 6px;
      backdrop-filter: blur(6px);
      transition: background 0.2s;
    }
    .cabin-card--clickable:hover .cabin-card-zoom {
      background: var(--accent-red);
    }

    /* Modal galerii */
    .gallery-modal .modal-content {
      background: #1a1a18;
      color: #fff;
      border: none;
      border-radius: 8px;
      overflow: hidden;
    }
    .gallery-modal .modal-header {
      background: rgba(255,255,255,0.04);
      border-bottom: 1px solid rgba(255,255,255,0.08);
      padding: 14px 22px;
    }
    .gallery-modal .modal-title {
      font-family: 'Playfair Display', serif;
      font-weight: 700;
      font-size: 1.2rem;
      color: var(--sand);
    }
    .gallery-modal .btn-close { filter: invert(1) brightness(2); }
    .gallery-modal .modal-body { padding: 0; background: #000; }
    .gallery-modal .carousel-item img {
      width: 100%;
      height: 70vh;
      object-fit: contain;
      background: #000;
    }
    .gallery-modal .carousel-control-prev,
    .gallery-modal .carousel-control-next {
      width: 8%;
    }
    .gallery-modal .carousel-indicators {
      margin-bottom: 10px;
    }
    .gallery-modal .carousel-indicators [data-bs-target] {
      width: 36px;
      height: 4px;
      background-color: rgba(255,255,255,0.5);
    }
    .gallery-modal .carousel-indicators .active { background-color: var(--accent-red); }
    @media (max-width: 575.98px) {
      .gallery-modal .carousel-item img { height: 55vh; }
    }


    /* ── COOKIE CONSENT ── */
    .cookie-banner {
      position: fixed;
      left: 0;
      right: 0;
      bottom: 0;
      z-index: 1080;
      background: #1a2812;
      color: #fff;
      box-shadow: 0 -8px 30px rgba(0,0,0,0.35);
      border-top: 3px solid var(--forest-light);
      padding: 18px 0;
      transform: translateY(100%);
      transition: transform 0.4s ease;
    }
    .cookie-banner.show { transform: translateY(0); }
    .cookie-banner h6 {
      font-family: 'Playfair Display', serif;
      color: var(--sand-light);
      margin: 0 0 6px;
      font-weight: 700;
      font-size: 1.05rem;
    }
    .cookie-banner p {
      margin: 0;
      font-size: 0.86rem;
      line-height: 1.5;
      color: rgba(255,255,255,0.85);
    }
    .cookie-banner p a { color: var(--sand); text-decoration: underline; }
    .cookie-banner p a:hover { color: #fff; }
    .cookie-banner .btn-row {
      display: flex;
      gap: 10px;
      flex-wrap: wrap;
      justify-content: flex-end;
    }
    .cookie-banner .btn {
      font-family: 'Lato', sans-serif;
      font-size: 0.84rem;
      font-weight: 700;
      letter-spacing: 0.04em;
      padding: 10px 18px;
      border-radius: 4px;
      border: 0;
      cursor: pointer;
      white-space: nowrap;
      transition: background 0.2s, color 0.2s, border-color 0.2s;
    }
    .cookie-banner .btn-cmp-accept   { background: var(--forest-light); color: #fff; }
    .cookie-banner .btn-cmp-accept:hover { background: var(--forest-mid); }
    .cookie-banner .btn-cmp-reject   { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,0.4); }
    .cookie-banner .btn-cmp-reject:hover { background: rgba(255,255,255,0.1); border-color: #fff; }
    .cookie-banner .btn-cmp-customize { background: transparent; color: var(--sand); border: 1px solid var(--sand); }
    .cookie-banner .btn-cmp-customize:hover { background: var(--sand); color: var(--forest); }
    @media (max-width: 767.98px) {
      .cookie-banner .btn-row { justify-content: stretch; }
      .cookie-banner .btn { flex: 1 1 auto; min-width: 110px; }
    }

    /* ── COOKIE PREFERENCES MODAL ── */
    .cmp-modal .modal-content { border: none; border-radius: 12px; overflow: hidden; }
    .cmp-modal .modal-header {
      background: var(--forest); color: var(--sand-light);
      border-bottom: 3px solid var(--forest-light);
    }
    .cmp-modal .modal-title { font-family: 'Playfair Display', serif; font-weight: 700; }
    .cmp-modal .btn-close { filter: invert(1) brightness(2); }
    .cmp-modal .modal-body { padding: 24px 28px; background: var(--cream); }
    .cmp-modal .cmp-cat {
      border: 1px solid #e5e0d2;
      background: #fff;
      border-radius: 8px;
      padding: 14px 16px;
      margin-bottom: 12px;
    }
    .cmp-modal .cmp-cat-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
    }
    .cmp-modal .cmp-cat-head h6 {
      margin: 0;
      font-family: 'Lato', sans-serif;
      font-weight: 700;
      color: var(--forest);
      font-size: 0.95rem;
    }
    .cmp-modal .cmp-cat-desc {
      margin: 8px 0 0;
      font-size: 0.84rem;
      color: #555;
      line-height: 1.55;
    }
    /* przełącznik */
    .cmp-switch {
      position: relative;
      display: inline-block;
      width: 46px;
      height: 24px;
      flex-shrink: 0;
    }
    .cmp-switch input { opacity: 0; width: 0; height: 0; }
    .cmp-slider {
      position: absolute;
      cursor: pointer;
      inset: 0;
      background: #ccc;
      transition: 0.2s;
      border-radius: 24px;
    }
    .cmp-slider::before {
      position: absolute;
      content: "";
      height: 18px; width: 18px;
      left: 3px; bottom: 3px;
      background: #fff;
      transition: 0.2s;
      border-radius: 50%;
    }
    .cmp-switch input:checked + .cmp-slider { background: var(--forest-light); }
    .cmp-switch input:checked + .cmp-slider::before { transform: translateX(22px); }
    .cmp-switch input:disabled + .cmp-slider { background: var(--bark-light); cursor: not-allowed; opacity: 0.85; }
    .cmp-modal .modal-footer {
      background: var(--sand-light);
      border-top: 1px solid rgba(0,0,0,0.08);
      gap: 8px;
    }
    .cmp-modal .modal-footer .btn { font-weight: 700; font-size: 0.85rem; padding: 10px 18px; border-radius: 4px; }
    .cmp-modal .btn-cmp-accept-all { background: var(--forest-light); border-color: var(--forest-light); color: #fff; }
    .cmp-modal .btn-cmp-accept-all:hover { background: var(--forest-mid); border-color: var(--forest-mid); color: #fff; }
    .cmp-modal .btn-cmp-save { background: var(--bark); border-color: var(--bark); color: #fff; }
    .cmp-modal .btn-cmp-save:hover { background: #4a3520; border-color: #4a3520; color: #fff; }
    .cmp-modal .btn-cmp-reject { background: transparent; border: 1px solid var(--bark); color: var(--bark); }
    .cmp-modal .btn-cmp-reject:hover { background: var(--bark); color: #fff; }

    /* Polityka prywatności – modal */
    .privacy-modal .modal-content {
      border: none; border-radius: 12px; overflow: hidden;
      box-shadow: 0 20px 60px rgba(0,0,0,0.3);
    }
    .privacy-modal .modal-header {
      background: var(--forest); color: var(--sand-light);
      border-bottom: 3px solid var(--forest-light);
    }
    .privacy-modal .modal-title { font-family: 'Playfair Display', serif; font-weight: 700; }
    .privacy-modal .btn-close { filter: invert(1) brightness(2); }
    .privacy-modal .modal-body {
      max-height: 70vh; overflow-y: auto;
      padding: 28px 32px; background: var(--cream);
    }
    .privacy-modal .modal-body h6 {
      font-family: 'Playfair Display', serif;
      color: var(--forest); margin: 18px 0 10px;
      font-size: 1.05rem; font-weight: 700;
    }
    .privacy-modal .modal-body h6:first-child { margin-top: 0; }
    .privacy-modal .modal-body p,
    .privacy-modal .modal-body li {
      font-size: 0.9rem; line-height: 1.6; color: #333;
    }
    .privacy-modal .modal-body table {
      width: 100%; font-size: 0.84rem; border-collapse: collapse; margin: 10px 0;
    }
    .privacy-modal .modal-body table th,
    .privacy-modal .modal-body table td {
      border: 1px solid #d8d2c0; padding: 8px 10px; text-align: left; vertical-align: top;
    }
    .privacy-modal .modal-body table th { background: var(--sand-light); font-weight: 700; color: var(--forest); }
    .privacy-modal .modal-footer {
      background: var(--sand-light);
      border-top: 1px solid rgba(0,0,0,0.08);
    }

    /* Footer link „Zarządzaj zgodą cookies" */
    .footer-bottom .cookie-mgr-link {
      color: var(--sand);
      text-decoration: none;
      border-bottom: 1px dotted rgba(255,255,255,0.4);
      cursor: pointer;
    }
    .footer-bottom .cookie-mgr-link:hover { color: #fff; border-color: #fff; }

    /* ── PRICING ── */
    .pricing-section { padding: 80px 0; background: var(--cream); }
    .pricing-table {
      border-radius: 12px;
      overflow: hidden;
      box-shadow: 0 4px 24px rgba(0,0,0,0.08);
    }
    .pricing-table thead {
      background: var(--forest);
      color: #fff;
    }
    .pricing-table thead th {
      font-family: 'Lato', sans-serif;
      font-weight: 700;
      font-size: 0.82rem;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      padding: 16px 18px;
      border: none;
    }
    .pricing-table tbody tr:nth-child(even) { background: var(--sand-light); }
    .pricing-table tbody td {
      padding: 13px 18px;
      border: none;
      font-size: 0.92rem;
      border-bottom: 1px solid rgba(0,0,0,0.05);
      vertical-align: middle;
    }
    .pricing-table tbody td:last-child { font-weight: 700; color: var(--forest); font-size: 1rem; }
    .pricing-type-header {
      background: var(--bark) !important;
      color: #fff !important;
      font-weight: 700;
      font-family: 'Playfair Display', serif;
      font-style: italic;
      font-size: 1rem !important;
    }
    .pricing-note {
      background: var(--sand-light);
      border-left: 4px solid var(--water);
      border-radius: 6px;
      padding: 14px 18px;
      font-size: 0.88rem;
      margin-top: 20px;
    }
    /* Akcent czerwieni — godziny i ceny w ramce „Doba hotelowa" */
    .hour-accent {
      color: var(--accent-red);
      font-weight: 700;
    }

    /* ── REGULAMIN MODAL ── */
    .regulamin-modal .modal-content {
      border: none;
      border-radius: 12px;
      box-shadow: 0 20px 60px rgba(0,0,0,0.3);
    }
    .regulamin-modal .modal-header {
      background: var(--forest);
      color: var(--sand-light);
      border-radius: 12px 12px 0 0;
      border-bottom: 3px solid var(--forest-light);
    }
    .regulamin-modal .modal-title {
      font-family: 'Playfair Display', serif;
      font-weight: 700;
    }
    .regulamin-modal .btn-close { filter: invert(1) brightness(2); }
    .regulamin-modal .modal-body {
      max-height: 70vh;
      overflow-y: auto;
      padding: 28px 32px;
      background: var(--cream);
    }
    .regulamin-modal .modal-body p {
      font-size: 0.92rem;
      line-height: 1.65;
      margin-bottom: 12px;
      color: #333;
    }
    .regulamin-modal .modal-body p .red {
      color: var(--accent-red);
      font-weight: 700;
    }
    .regulamin-modal .modal-footer {
      background: var(--sand-light);
      border-radius: 0 0 12px 12px;
      border-top: 1px solid rgba(0,0,0,0.08);
    }

    /* ── ATTRACTIONS ── */
    .attractions-section { padding: 80px 0; background: var(--forest); color: #fff; }
    .attractions-section .section-label { color: var(--sand); }
    .attractions-section .section-title { color: var(--sand-light); }
    .attractions-section .section-divider { background: var(--sand); }
    .attr-card {
      background: rgba(255,255,255,0.08);
      border: 1px solid rgba(255,255,255,0.15);
      border-radius: 10px;
      padding: 28px 22px;
      height: 100%;
      transition: background 0.2s;
    }
    .attr-card:hover { background: rgba(255,255,255,0.14); }
    .attr-icon {
      width: 54px;
      height: 54px;
      background: var(--bark);
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.5rem;
      color: #fff;
      margin-bottom: 16px;
    }
    .attr-card h4 {
      font-family: 'Playfair Display', serif;
      font-size: 1.1rem;
      color: var(--sand);
      margin-bottom: 8px;
    }
    .attr-card p { font-size: 0.88rem; color: rgba(255,255,255,0.75); line-height: 1.7; }
    .attr-card .attr-link {
      color: var(--sand-light);
      font-weight: 700;
      text-decoration: none;
      border-bottom: 1px dotted rgba(255,255,255,0.4);
      transition: color 0.2s, border-color 0.2s;
    }
    .attr-card .attr-link:hover { color: #fff; border-color: #fff; }

    /* ── CONTACT ── */
    .contact-section { padding: 80px 0; background: #f0ebe0; }
    .contact-card {
      background: #fff;
      border-radius: 12px;
      padding: 36px 32px;
      box-shadow: 0 4px 24px rgba(0,0,0,0.07);
      height: 100%;
    }
    .contact-item {
      display: flex;
      align-items: flex-start;
      gap: 16px;
      margin-bottom: 24px;
    }
    .contact-icon {
      width: 46px;
      height: 46px;
      min-width: 46px;
      background: var(--forest);
      color: #fff;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.1rem;
    }
    .contact-item h6 {
      font-size: 0.72rem;
      letter-spacing: 0.15em;
      text-transform: uppercase;
      color: var(--bark);
      margin-bottom: 3px;
      font-weight: 700;
    }
    .contact-item a { color: var(--forest); text-decoration: none; font-weight: 700; font-size: 1.05rem; }
    .contact-item a:hover { text-decoration: underline; }
    .contact-item p { margin: 0; color: #555; font-size: 0.95rem; }
    .map-embed {
      border-radius: 10px;
      overflow: hidden;
      box-shadow: 0 4px 20px rgba(0,0,0,0.1);
      height: 100%;
      min-height: 380px;
    }
    .map-embed iframe {
      width: 100%;
      height: 100%;
      min-height: 380px;
      display: block;
      border: 0;
    }

    /* ── FOOTER ── */
    footer {
      background: var(--dark);
      color: rgba(255,255,255,0.65);
      padding: 40px 0 20px;
    }
    footer .footer-brand {
      font-family: 'Playfair Display', serif;
      font-size: 1.3rem;
      color: #fff;
      margin-bottom: 6px;
    }
    footer a { color: rgba(255,255,255,0.5); text-decoration: none; font-size: 0.85rem; }
    footer a:hover { color: var(--sand); }
    footer .footer-links { display: flex; flex-wrap: wrap; gap: 12px 20px; margin-top: 10px; }
    .footer-divider { border-color: rgba(255,255,255,0.1); margin: 24px 0 16px; }
    .footer-bottom { font-size: 0.78rem; }

    /* ── MOBILE CALL BUTTON ── */
    .mobile-call-btn {
      position: fixed;
      bottom: 20px;
      right: 20px;
      z-index: 999;
      width: 58px;
      height: 58px;
      background: var(--forest);
      color: #fff;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.6rem;
      box-shadow: 0 4px 20px rgba(45,80,22,0.45);
      text-decoration: none;
      transition: background 0.2s, transform 0.2s;
    }
    .mobile-call-btn:hover { background: var(--forest-mid); color: #fff; transform: scale(1.08); }

    /* ── UTILS ── */
    .bg-forest { background: var(--forest); }
    .text-forest { color: var(--forest); }
    .text-bark { color: var(--bark); }
    section { scroll-margin-top: 70px; }

    @media (max-width: 768px) {
      .hero { height: 85vh; }
      .about-section, .cabins-section, .pricing-section,
      .attractions-section, .contact-section { padding: 56px 0; }
    }
