
      :root {
        --bg: #fcfbf7;
        --bg-soft: #f4f1eb;
        --panel: rgba(255, 255, 255, 0.86);
        --panel-strong: rgba(255, 255, 255, 0.96);
        --text: #2f2b2b;
        --muted: #655f5b;
        --muted-2: #8a857f;
        --olive: #bbbca0;
        --olive-deep: #90937a;
        --line: rgba(47, 43, 43, 0.1);
        --line-strong: rgba(47, 43, 43, 0.16);
        --white: #ffffff;
        --shadow: 0 30px 70px rgba(32, 27, 23, 0.08);
        --shadow-soft: 0 18px 36px rgba(32, 27, 23, 0.06);
        --radius-xl: 36px;
        --radius-lg: 28px;
        --radius-md: 22px;
        --radius-sm: 18px;
        --shell: min(1240px, calc(100vw - 56px));
      }

      * {
        box-sizing: border-box;
      }

      html {
        scroll-behavior: smooth;
      }

      body {
        margin: 0;
        color: var(--text);
        font-family: "Manrope", sans-serif;
        background:
          radial-gradient(circle at top left, rgba(187, 188, 160, 0.16), transparent 32%),
          linear-gradient(180deg, #ffffff 0%, var(--bg) 34%, #ffffff 100%);
        overflow-x: hidden;
      }

      img {
        display: block;
        max-width: 100%;
      }

      a {
        color: inherit;
        text-decoration: none;
      }

      button,
      input,
      select {
        font: inherit;
      }

      .shell {
        width: var(--shell);
        margin: 0 auto;
      }

      .section {
        position: relative;
        padding: 110px 0;
      }

      .section--soft {
        background:
          radial-gradient(circle at 85% 15%, rgba(187, 188, 160, 0.16), transparent 24%),
          linear-gradient(180deg, rgba(244, 241, 235, 0.72), rgba(255, 255, 255, 0.98));
      }

      .section--line::before {
        content: "";
        position: absolute;
        inset: 0 auto auto 0;
        width: 100%;
        height: 1px;
        background: linear-gradient(90deg, transparent, rgba(47, 43, 43, 0.08), transparent);
      }

      .eyebrow {
        display: inline-flex;
        align-items: center;
        gap: 12px;
        margin-bottom: 20px;
        font-size: 0.78rem;
        line-height: 1;
        letter-spacing: 0.18em;
        text-transform: uppercase;
        color: rgba(47, 43, 43, 0.55);
      }

      .eyebrow::before,
      .eyebrow::after {
        content: "";
        width: 30px;
        height: 1px;
        background: currentColor;
      }

      .section-head {
        display: grid;
        grid-template-columns: minmax(0, 1.06fr) minmax(0, 0.94fr);
        gap: 36px;
        align-items: end;
        margin-bottom: 42px;
      }

      .section-head--center {
        grid-template-columns: 1fr;
        text-align: center;
        justify-items: center;
      }

      .section-head h2,
      .hero-copy h1,
      .cta-card h2,
      .booking-head h2 {
        margin: 0;
        font-family: "Open Sans", sans-serif;
        font-weight: 700;
        letter-spacing: -0.04em;
      }

      .section-head h2 {
        max-width: 18ch;
        font-size: clamp(1.9rem, 2.5vw, 2.1875rem);
        line-height: 1.12;
        text-wrap: balance;
      }

      .section-head--center h2 {
        max-width: 20ch;
      }

      .section-head p,
      .hero-copy p,
      .booking-head p {
        margin: 0;
        color: var(--muted);
        line-height: 1.74;
        font-size: 1rem;
      }

      .glass-btn,
      .primary-btn,
      .secondary-btn,
      .ghost-btn {
        min-height: 56px;
        padding: 0 24px;
        border-radius: 999px;
        border: 1px solid transparent;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
        font-weight: 700;
        transition:
          transform 220ms ease,
          box-shadow 220ms ease,
          background 220ms ease,
          border-color 220ms ease;
        cursor: pointer;
      }

      .glass-btn:hover,
      .primary-btn:hover,
      .secondary-btn:hover,
      .ghost-btn:hover {
        transform: translateY(-1px);
      }

      .glass-btn {
        color: var(--white);
        background: linear-gradient(180deg, rgba(255, 255, 255, 0.24), rgba(255, 255, 255, 0.12));
        border-color: rgba(255, 255, 255, 0.24);
        backdrop-filter: blur(16px);
        box-shadow:
          inset 0 1px 0 rgba(255, 255, 255, 0.44),
          0 18px 40px rgba(0, 0, 0, 0.16);
      }

      .primary-btn {
        color: var(--white);
        background: linear-gradient(180deg, #433d3d, #2f2b2b);
        box-shadow: 0 18px 36px rgba(47, 43, 43, 0.18);
      }

      .secondary-btn {
        color: var(--text);
        background: rgba(255, 255, 255, 0.88);
        border-color: var(--line-strong);
        box-shadow: var(--shadow-soft);
      }

      .ghost-btn {
        color: var(--text);
        background: rgba(187, 188, 160, 0.14);
        border-color: rgba(187, 188, 160, 0.24);
      }

      .hero {
        position: relative;
        min-height: clamp(720px, 88svh, 860px);
        color: var(--white);
        background:
          linear-gradient(90deg, rgba(22, 23, 18, 0.93) 0%, rgba(27, 29, 23, 0.8) 26%, rgba(30, 31, 25, 0.46) 48%, rgba(18, 20, 17, 0.18) 73%, rgba(15, 16, 13, 0.38) 100%),
          linear-gradient(180deg, rgba(8, 10, 10, 0.58) 0%, rgba(16, 17, 14, 0.08) 43%, rgba(10, 11, 9, 0.62) 100%),
          url("../casa-de-milla-kapolcs-vendeghaz.webp") center center / cover no-repeat;
        overflow: hidden;
      }

      @media (max-width: 760px) {
        .hero {
          background:
            linear-gradient(90deg, rgba(22, 23, 18, 0.93) 0%, rgba(27, 29, 23, 0.8) 26%, rgba(30, 31, 25, 0.46) 48%, rgba(18, 20, 17, 0.18) 73%, rgba(15, 16, 13, 0.38) 100%),
            linear-gradient(180deg, rgba(8, 10, 10, 0.58) 0%, rgba(16, 17, 14, 0.08) 43%, rgba(10, 11, 9, 0.62) 100%),
            url("../casa-de-milla-kapolcs-vendeghaz-768.webp") center center / cover no-repeat;
        }
      }

      .hero::after {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        bottom: -2px;
        height: 64px;
        background: #d4d6c8;
        clip-path: polygon(0 18px, 100% 0, 100% 100%, 0 100%);
        pointer-events: none;
        z-index: 3;
      }

      .hero::before {
        content: "";
        position: absolute;
        inset: 0;
        background:
          radial-gradient(circle at 34% 48%, rgba(187, 188, 160, 0.12), transparent 26%),
          radial-gradient(circle at 79% 22%, rgba(255, 255, 255, 0.05), transparent 24%);
        pointer-events: none;
        z-index: 0;
      }

      @media (min-width: 1024px) {
        .hero,
        .cta-strip,
        .booking-section {
          background-attachment: fixed;
        }
      }

      .hero-inner {
        position: relative;
        z-index: 2;
        min-height: inherit;
        display: flex;
        flex-direction: column;
      }

      .topbar {
        width: var(--shell);
        margin: 0 auto;
        padding: 22px 0 0;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 24px;
      }

      .brand {
        display: inline-flex;
        align-items: center;
        gap: 16px;
      }

      .brand-mark {
        width: 88px;
      }

      .brand-mark img {
        display: block;
        width: 100%;
        height: auto;
        mix-blend-mode: screen;
        opacity: 0.98;
      }

      .brand-meta {
        display: grid;
        gap: 4px;
      }

      .brand-meta strong {
        font-size: 0.95rem;
        font-weight: 800;
        letter-spacing: 0.2em;
        text-transform: uppercase;
      }

      .brand-meta span {
        font-size: 0.84rem;
        color: rgba(255, 255, 255, 0.76);
      }

      .nav {
        display: flex;
        align-items: center;
        gap: 16px;
        position: relative;
      }

      .nav-links {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 8px;
        border-radius: 999px;
        background: rgba(255, 255, 255, 0.08);
        border: 1px solid rgba(255, 255, 255, 0.12);
        backdrop-filter: blur(14px);
      }

      .nav-links a {
        padding: 12px 16px;
        border-radius: 999px;
        font-size: 0.92rem;
        color: rgba(255, 255, 255, 0.86);
      }

      .nav-links a:hover {
        color: var(--white);
        background: rgba(255, 255, 255, 0.08);
      }

      .language-switch {
        display: inline-flex;
        min-width: 52px;
        height: 52px;
        padding: 0 13px;
        align-items: center;
        justify-content: center;
        gap: 7px;
        flex: 0 0 auto;
        border: 1px solid rgba(255, 255, 255, 0.22);
        border-radius: 999px;
        color: #fff;
        background: rgba(255, 255, 255, 0.1);
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12);
        backdrop-filter: blur(14px);
        transition: background-color 180ms ease, border-color 180ms ease, transform 180ms ease;
      }

      .language-switch:hover,
      .language-switch:focus-visible {
        color: #fff;
        background: rgba(255, 255, 255, 0.18);
        border-color: rgba(255, 255, 255, 0.48);
        transform: translateY(-1px);
        outline: none;
      }

      .language-switch-flag {
        font-size: 1.28rem;
        line-height: 1;
      }

      .language-switch-code {
        font-size: 0.67rem;
        font-weight: 800;
        letter-spacing: 0.12em;
      }

      .menu-toggle {
        display: none;
        width: 52px;
        height: 52px;
        padding: 0;
        border-radius: 999px;
        color: var(--white);
        border: 1px solid rgba(255, 255, 255, 0.2);
        background: rgba(255, 255, 255, 0.1);
        backdrop-filter: blur(14px);
        align-items: center;
        justify-content: center;
        flex-direction: column;
        gap: 5px;
        cursor: pointer;
      }

      .menu-toggle span {
        width: 18px;
        height: 1.5px;
        border-radius: 999px;
        background: currentColor;
        transition:
          transform 220ms ease,
          opacity 220ms ease;
      }

      .menu-toggle[aria-expanded="true"] span:nth-child(1) {
        transform: translateY(6.5px) rotate(45deg);
      }

      .menu-toggle[aria-expanded="true"] span:nth-child(2) {
        opacity: 0;
      }

      .menu-toggle[aria-expanded="true"] span:nth-child(3) {
        transform: translateY(-6.5px) rotate(-45deg);
      }

      .hero-copy {
        width: var(--shell);
        margin: 0 auto;
        flex: 1;
        min-height: auto;
        display: grid;
        align-items: center;
        justify-items: start;
        padding: clamp(28px, 6vh, 54px) 0 clamp(110px, 14vh, 132px);
        text-align: left;
      }

      .hero-copy-inner {
        width: min(640px, 52%);
        display: grid;
        justify-items: start;
        gap: 18px;
        transform: translateY(-8px);
        margin-left: clamp(26px, 4vw, 72px);
        padding-left: clamp(28px, 3.2vw, 54px);
        position: relative;
      }

      .hero-copy-inner::before {
        content: "";
        position: absolute;
        left: 0;
        top: 4px;
        bottom: 4px;
        width: 3px;
        border-radius: 999px;
        background: linear-gradient(180deg, rgba(211, 211, 182, 0.95), rgba(187, 188, 160, 0.58));
        box-shadow: 0 0 24px rgba(187, 188, 160, 0.18);
      }

      .hero-badge {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 12px;
        padding: 12px 20px;
        border-radius: 999px;
        background: rgba(34, 35, 28, 0.28);
        border: 1px solid rgba(211, 211, 182, 0.42);
        backdrop-filter: blur(12px);
        font-size: 0.78rem;
        letter-spacing: 0.17em;
        text-transform: uppercase;
        color: rgba(255, 255, 255, 0.88);
      }

      .hero-copy h1 {
        max-width: 650px;
        margin: 0;
        font-family: "Cormorant Garamond", Georgia, serif;
        font-weight: 600;
        font-size: clamp(2.8rem, 4.2vw, 4rem);
        line-height: 0.98;
        letter-spacing: -0.028em;
        text-wrap: balance;
        text-shadow: 0 5px 28px rgba(0, 0, 0, 0.28);
      }

      .hero-copy p {
        max-width: 43ch;
        font-size: 1.02rem;
        line-height: 1.78;
        color: rgba(255, 255, 255, 0.8);
      }

      .hero-actions {
        display: flex;
        justify-content: flex-start;
        gap: 14px;
        flex-wrap: wrap;
      }

      .hero-actions .glass-btn {
        min-width: 152px;
        min-height: 56px;
        padding: 0 22px 0 26px;
        gap: 17px;
        background: linear-gradient(135deg, rgba(198, 199, 170, 0.92), rgba(159, 160, 134, 0.9));
        border-color: rgba(240, 240, 222, 0.66);
        color: #fff;
        box-shadow: 0 16px 35px rgba(0, 0, 0, 0.22), inset 0 1px 0 rgba(255, 255, 255, 0.25);
      }

      .nav > .glass-btn {
        min-height: 52px;
        padding: 0 20px;
        background: linear-gradient(135deg, rgba(198, 199, 170, 0.92), rgba(159, 160, 134, 0.9));
        border-color: rgba(240, 240, 222, 0.66);
        color: #fff;
        box-shadow: 0 16px 35px rgba(0, 0, 0, 0.22), inset 0 1px 0 rgba(255, 255, 255, 0.25);
      }

      .hero-actions .glass-btn::after {
        content: "→";
        font-size: 1.45rem;
        font-weight: 400;
        line-height: 1;
        transition: transform 220ms ease;
      }

      .hero-actions .glass-btn:hover::after {
        transform: translateX(4px);
      }

      .hero-scroll {
        position: absolute;
        left: 50%;
        bottom: 86px;
        width: min(100%, var(--shell));
        transform: translateX(-50%);
        display: flex;
        justify-content: center;
        z-index: 5;
        pointer-events: none;
      }

      .hero-scroll a {
        display: grid;
        justify-items: center;
        gap: 12px;
        color: rgba(255, 255, 255, 0.84);
        font-size: 0.76rem;
        letter-spacing: 0.2em;
        text-transform: uppercase;
        pointer-events: auto;
        text-shadow: 0 2px 16px rgba(0, 0, 0, 0.45);
      }

      .hero-scroll-arrow {
        font-size: 1.5rem;
        line-height: 1;
        color: rgba(255, 255, 255, 0.92);
        animation: hero-scroll-pulse 1.85s cubic-bezier(0.45, 0, 0.55, 1) infinite;
      }

      @keyframes hero-scroll-pulse {
        0%,
        100% {
          transform: translateY(0);
          opacity: 0.68;
        }

        52% {
          transform: translateY(9px);
          opacity: 1;
        }
      }

      .cdm-booking .cdm-booking__contact-list {
        display: grid;
        gap: 10px;
        width: min(100%, 320px);
        margin-top: 22px;
      }

      .cdm-booking .cdm-booking__contact-item {
        position: relative;
        isolation: isolate;
        display: flex;
        align-items: center;
        gap: 12px;
        width: 100%;
        min-height: 60px;
        padding: 11px 18px 11px 11px;
        overflow: visible;
        color: #ffffff;
        border: 1px solid rgba(255, 255, 255, 0.32);
        border-radius: 20px 20px 20px 8px;
        background:
          radial-gradient(circle at 16% 8%, rgba(255, 255, 255, 0.2), transparent 38%),
          linear-gradient(145deg, #b86d3f 0%, #a65d36 55%, #96502d 100%);
        box-shadow:
          inset 0 1px 0 rgba(255, 255, 255, 0.28),
          inset 0 -1px 0 rgba(88, 39, 20, 0.18),
          0 16px 34px rgba(126, 67, 36, 0.24);
        backdrop-filter: blur(18px) saturate(1.12);
        -webkit-backdrop-filter: blur(18px) saturate(1.12);
        text-decoration: none;
      }

      .cdm-booking a.cdm-booking__contact-item {
        transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
      }

      .cdm-booking a.cdm-booking__contact-item:hover {
        transform: translateY(-2px);
        border-color: rgba(255, 255, 255, 0.52);
        box-shadow:
          inset 0 1px 0 rgba(255, 255, 255, 0.34),
          0 19px 40px rgba(126, 67, 36, 0.3);
      }

      .cdm-booking .cdm-booking__contact-item::after {
        content: "";
        position: absolute;
        z-index: -1;
        right: 14px;
        bottom: -5px;
        width: 48px;
        height: 13px;
        border-radius: 50%;
        background: rgba(101, 45, 23, 0.22);
        filter: blur(8px);
      }

      .cdm-booking .cdm-booking__contact-item img {
        width: 38px;
        height: 38px;
        flex: 0 0 38px;
        padding: 7px;
        border-radius: 50%;
        background: rgba(255, 255, 255, 0.14);
        box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.2);
      }

      .cdm-booking .cdm-booking__contact-item address,
      .cdm-booking .cdm-booking__contact-item span {
        margin: 0;
        color: #ffffff;
        font: normal 700 15px/1.35 "Avenir Next", "Trebuchet MS", sans-serif;
        letter-spacing: 0.01em;
      }

      @media (min-width: 981px) {
        .cdm-booking .cdm-booking__photo {
          inset: 390px 0 0;
        }
      }

      @media (max-width: 680px) {
        .cdm-booking .cdm-booking__contact-list {
          width: 100%;
          max-width: 340px;
          margin-top: 18px;
        }

        .cdm-booking .cdm-booking__contact-item {
          gap: 10px;
          padding: 10px 14px 10px 10px;
          border-radius: 18px 18px 18px 7px;
        }

        .cdm-booking .cdm-booking__contact-item img {
          width: 36px;
          height: 36px;
          flex-basis: 36px;
          padding: 7px;
        }

        .cdm-booking .cdm-booking__contact-item address,
        .cdm-booking .cdm-booking__contact-item span {
          font-size: 14px;
        }
      }

      @media (prefers-reduced-motion: reduce) {
        .hero-scroll-arrow {
          animation: none;
        }
      }

      .proof-section {
        isolation: isolate;
        overflow: hidden;
        padding: 72px 0 64px;
        background: #d4d6c8;
      }

      .proof-section::after {
        content: "";
        position: absolute;
        z-index: -1;
        inset: 0;
        opacity: 0.23;
        background-image: radial-gradient(rgba(255, 255, 255, 0.45) 0.55px, transparent 0.55px);
        background-size: 5px 5px;
        pointer-events: none;
      }

      .proof-section .section-head {
        margin-bottom: 34px;
      }

      .proof-section .section-head h2 {
        max-width: 25ch;
        color: #2f2b2b;
        font-size: clamp(1.9rem, 2.4vw, 2.25rem);
        line-height: 1.18;
        letter-spacing: -0.035em;
        text-shadow: none;
      }

      .proof-section .section-head p {
        max-width: 52ch;
        color: rgba(47, 43, 43, 0.72);
        font-size: 1rem;
        line-height: 1.65;
        text-wrap: balance;
        text-shadow: none;
      }

      .proof-shell {
        position: relative;
        width: min(1120px, calc(100% - 116px));
        margin: 0 auto;
      }

      .proof-track-wrap {
        overflow: hidden;
        padding: 16px 8px 18px;
      }

      .proof-track {
        display: flex;
        align-items: center;
        gap: 20px;
        transition: transform 560ms cubic-bezier(0.22, 1, 0.36, 1);
        will-change: transform;
      }

      .proof-card {
        position: relative;
        flex: 0 0 calc((100% - 40px) / 3);
        min-height: clamp(330px, 25vw, 390px);
        border-radius: 26px;
        overflow: hidden;
        box-shadow: none;
        display: flex;
        align-items: end;
        transform: scale(0.94) translateY(8px);
        opacity: 0.86;
        transition:
          transform 500ms cubic-bezier(0.22, 1, 0.36, 1),
          opacity 300ms ease,
          box-shadow 300ms ease;
      }

      .proof-card.is-focus {
        z-index: 2;
        transform: scale(1.035) translateY(0);
        opacity: 1;
        box-shadow: none;
      }

      .proof-card::before {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(180deg, rgba(20, 18, 16, 0.01) 0%, rgba(20, 18, 16, 0.05) 48%, rgba(20, 18, 16, 0.3) 100%);
        z-index: 1;
      }

      .proof-card-media {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        z-index: 0;
      }

      .proof-glass {
        position: relative;
        z-index: 2;
        width: calc(100% - 20px);
        min-height: 132px;
        margin: 10px;
        padding: 20px 22px 21px;
        border-radius: 20px;
        color: var(--text);
        background: linear-gradient(145deg, rgba(255, 253, 247, 0.62), rgba(245, 242, 234, 0.48));
        border: 1px solid rgba(255, 255, 255, 0.68);
        -webkit-backdrop-filter: blur(13px) saturate(116%);
        backdrop-filter: blur(13px) saturate(116%);
        box-shadow:
          0 14px 30px rgba(32, 27, 23, 0.11),
          inset 0 1px 0 rgba(255, 255, 255, 0.88),
          inset 0 -1px 0 rgba(255, 255, 255, 0.2);
      }

      .proof-title-row {
        display: flex;
        align-items: baseline;
        gap: 10px;
      }

      .proof-number {
        flex: 0 0 auto;
        color: rgba(47, 43, 43, 0.48);
        font-family: "Cormorant Garamond", serif;
        font-size: 1rem;
        font-weight: 600;
      }

      .proof-glass h3 {
        margin: 0;
        font-family: "Open Sans", sans-serif;
        font-size: 1.08rem;
        line-height: 1.3;
        letter-spacing: -0.025em;
      }

      .proof-glass p {
        margin: 11px 0 0 32px;
        color: rgba(47, 43, 43, 0.7);
        line-height: 1.55;
        font-size: 0.84rem;
      }

      .proof-controls {
        display: contents;
      }

      .proof-nav {
        display: contents;
      }

      .proof-arrow {
        position: absolute;
        z-index: 4;
        top: 50%;
        width: 54px;
        height: 54px;
        border-radius: 999px;
        border: 1px solid rgba(255, 255, 255, 0.65);
        background: rgba(255, 253, 247, 0.9);
        color: var(--text);
        box-shadow: 0 16px 36px rgba(44, 43, 35, 0.16);
        -webkit-backdrop-filter: blur(12px);
        backdrop-filter: blur(12px);
        cursor: pointer;
        transform: translateY(-50%);
        transition:
          transform 220ms ease,
          background 220ms ease,
          opacity 220ms ease;
      }

      .proof-arrow:hover:not(:disabled) {
        background: #fff;
        transform: translateY(-50%) scale(1.05);
      }

      .proof-arrow:disabled {
        opacity: 0.38;
        cursor: default;
      }

      #proof-prev {
        left: -72px;
      }

      #proof-next {
        right: -72px;
      }

      .proof-dots {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 9px;
        min-height: 18px;
        margin-top: 15px;
      }

      .proof-dots button {
        width: 8px;
        height: 8px;
        border-radius: 999px;
        border: 0;
        padding: 0;
        background: rgba(255, 255, 255, 0.5);
        cursor: pointer;
        transition:
          width 250ms ease,
          background 250ms ease,
          transform 250ms ease;
      }

      .proof-dots button:hover {
        transform: scale(1.2);
      }

      .proof-dots button.is-active {
        width: 28px;
        background: rgba(47, 43, 43, 0.86);
      }

      .amenities-section {
        padding: clamp(74px, 8vw, 112px) 0 clamp(80px, 8vw, 116px);
        background:
          radial-gradient(circle at 12% 8%, rgba(255, 255, 255, 0.92), transparent 28%),
          radial-gradient(circle at 88% 100%, rgba(216, 209, 191, 0.28), transparent 26%),
          #f7f5ef;
      }

      .amenities-section::before {
        display: none;
      }

      .amenities-head {
        margin: 0 auto clamp(34px, 4.2vw, 52px);
        text-align: center;
      }

      .amenities-kicker {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
        margin-bottom: 14px;
        color: #aaa58f;
        font-size: 0.74rem;
        font-weight: 600;
        letter-spacing: 0.02em;
      }

      .amenities-kicker::before,
      .amenities-kicker::after {
        content: "";
        width: 45px;
        height: 1px;
        background: rgba(170, 165, 143, 0.38);
      }

      .amenities-head h2 {
        max-width: none;
        margin: 0;
        color: #373433;
        font-family: "Open Sans", sans-serif;
        font-size: clamp(1.65rem, 2.2vw, 2.08rem);
        font-weight: 700;
        letter-spacing: -0.045em;
        line-height: 1.16;
        text-wrap: balance;
      }

      .amenities-sprig {
        display: block;
        width: 34px;
        height: 20px;
        margin: 8px auto 5px;
        object-fit: contain;
      }

      .amenities-head p {
        max-width: 62ch;
        margin: 9px auto 0;
        color: #77726c;
        font-size: 0.84rem;
        line-height: 1.65;
        text-wrap: balance;
      }

      .amenities-grid {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 12px;
      }

      .amenity-card {
        overflow: hidden;
        border: 1px solid #e5ded0;
        border-radius: 15px;
        background: rgba(255, 253, 248, 0.72);
        box-shadow: 0 12px 30px rgba(73, 61, 43, 0.045);
        transition: transform 320ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 320ms ease;
      }

      .amenity-card:hover {
        transform: translateY(-5px);
        box-shadow: 0 20px 42px rgba(73, 61, 43, 0.12);
      }

      .amenity-card-media {
        aspect-ratio: 1.59 / 1;
        overflow: hidden;
      }

      .amenity-card-media picture,
      .amenity-card-media img {
        display: block;
        width: 100%;
        height: 100%;
      }

      .amenity-card-media img {
        object-fit: cover;
        transition: transform 600ms cubic-bezier(0.22, 1, 0.36, 1);
      }

      .amenity-card:hover .amenity-card-media img {
        transform: scale(1.035);
      }

      .amenity-card-body {
        display: grid;
        grid-template-columns: 52px minmax(0, 1fr);
        gap: 13px;
        align-items: center;
        min-height: 106px;
        padding: 11px 15px 12px;
      }

      .amenity-icon {
        display: grid;
        width: 48px;
        height: 48px;
        place-items: center;
        border: 1px solid #d5d0be;
        border-radius: 50%;
        color: #888772;
      }

      .amenity-icon img {
        width: 34px;
        height: 34px;
        object-fit: contain;
      }

      .amenity-card h3 {
        margin: 0;
        color: #626047;
        font-family: "Cormorant Garamond", serif;
        font-size: clamp(1.38rem, 1.65vw, 1.72rem);
        font-weight: 600;
        line-height: 1;
      }

      .amenity-card p {
        margin: 6px 0 0;
        color: #807b73;
        font-size: 0.73rem;
        line-height: 1.48;
      }

      .area-section {
        overflow: hidden;
        padding: clamp(82px, 8vw, 118px) 0;
        background: #f9f5eb;
      }

      .area-section.section--line::before {
        display: none;
      }

      .area-stage {
        --area-ink: #41432f;
        --area-rust: #aa6035;
        --area-paper: #f9f5eb;
        position: relative;
        isolation: isolate;
      }

      .area-head {
        position: relative;
        z-index: 7;
        width: min(780px, calc(100% - 32px));
        margin: 0 auto 34px;
        text-align: center;
      }

      .area-head h2 {
        margin: 0;
        color: #343528;
        font-family: "Cormorant Garamond", Georgia, serif;
        font-size: clamp(2.75rem, 4.4vw, 4.15rem);
        font-weight: 600;
        line-height: 0.98;
        letter-spacing: -0.035em;
        text-wrap: balance;
      }

      .area-head p {
        width: min(660px, 100%);
        margin: 14px auto 0;
        color: rgba(52, 53, 40, 0.7);
        font-size: 0.98rem;
        line-height: 1.7;
        text-wrap: balance;
      }

      .area-divider {
        width: min(230px, 54%);
        margin: 20px auto 0;
        display: grid;
        grid-template-columns: 1fr 42px 1fr;
        align-items: center;
        gap: 10px;
      }

      .area-divider::before,
      .area-divider::after {
        content: "";
        height: 1px;
        background: linear-gradient(90deg, transparent, rgba(112, 112, 81, 0.52));
      }

      .area-divider::after {
        transform: rotate(180deg);
      }

      .area-divider img {
        width: 38px;
        height: 24px;
        margin: 0 auto;
        object-fit: contain;
        opacity: 0.76;
      }

      .area-board {
        position: relative;
        min-height: 850px;
        overflow: visible;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
      }

      .area-board::before,
      .area-board::after {
        content: "";
        position: absolute;
        z-index: 0;
        pointer-events: none;
      }

      .area-board::before {
        display: none;
      }

      .area-board::after {
        display: none;
      }

      .area-map {
        position: absolute;
        z-index: 1;
        left: 50%;
        top: 47%;
        width: min(880px, 76%);
        aspect-ratio: 3 / 2;
        transform: translate(-50%, -50%);
      }

      .area-map::after {
        content: "";
        position: absolute;
        z-index: 2;
        inset: -2px;
        display: block;
        background:
          linear-gradient(90deg, #f9f5eb 0%, rgba(249, 245, 235, 0.94) 5%, rgba(249, 245, 235, 0.5) 12%, transparent 22%, transparent 78%, rgba(249, 245, 235, 0.5) 88%, rgba(249, 245, 235, 0.94) 95%, #f9f5eb 100%),
          linear-gradient(180deg, #f9f5eb 0%, rgba(249, 245, 235, 0.92) 5%, rgba(249, 245, 235, 0.45) 12%, transparent 22%, transparent 78%, rgba(249, 245, 235, 0.45) 88%, rgba(249, 245, 235, 0.92) 95%, #f9f5eb 100%);
        pointer-events: none;
      }

      .area-map-art {
        width: 100%;
        height: 100%;
        object-fit: cover;
        opacity: 0.94;
        filter: saturate(0.88) contrast(0.98);
        mix-blend-mode: multiply;
        -webkit-mask-image: radial-gradient(ellipse closest-side at 50% 50%, #000 0 58%, rgba(0, 0, 0, 0.92) 72%, rgba(0, 0, 0, 0.48) 87%, transparent 100%);
        mask-image: radial-gradient(ellipse closest-side at 50% 50%, #000 0 58%, rgba(0, 0, 0, 0.92) 72%, rgba(0, 0, 0, 0.48) 87%, transparent 100%);
        -webkit-mask-repeat: no-repeat;
        mask-repeat: no-repeat;
        -webkit-mask-size: 100% 100%;
        mask-size: 100% 100%;
      }

      .area-connectors {
        position: absolute;
        z-index: 2;
        inset: 0;
        width: 100%;
        height: 100%;
        overflow: visible;
        pointer-events: none;
      }

      .area-connector {
        fill: none;
        stroke: rgba(91, 91, 61, 0.56);
        stroke-width: 1.45;
        stroke-linecap: round;
        stroke-dasharray: 4 7;
        opacity: 0.52;
        transition:
          stroke 260ms ease,
          stroke-width 260ms ease,
          opacity 260ms ease;
      }

      .area-connector.is-active {
        stroke: var(--area-rust);
        stroke-width: 2.35;
        opacity: 1;
        animation: area-route-flow 13s linear infinite;
        filter: drop-shadow(0 2px 5px rgba(170, 96, 53, 0.22));
      }

      @keyframes area-route-flow {
        to {
          stroke-dashoffset: -110;
        }
      }

      .area-marker {
        position: absolute;
        z-index: 4;
        display: inline-grid;
        grid-template-columns: 30px auto;
        align-items: center;
        gap: 6px;
        min-height: 40px;
        padding: 4px 10px 4px 5px;
        border: 1px solid rgba(93, 93, 64, 0.24);
        border-radius: 999px;
        color: var(--area-ink);
        background: rgba(255, 253, 247, 0.82);
        box-shadow: 0 8px 22px rgba(62, 55, 43, 0.1);
        -webkit-backdrop-filter: blur(9px);
        backdrop-filter: blur(9px);
        cursor: pointer;
        transform: translate(-50%, -50%);
        transition:
          transform 220ms ease,
          border-color 220ms ease,
          background 220ms ease,
          box-shadow 220ms ease;
      }

      .area-marker:hover,
      .area-marker:focus-visible,
      .area-marker.is-active {
        z-index: 6;
        border-color: rgba(170, 96, 53, 0.7);
        background: rgba(255, 253, 248, 0.97);
        box-shadow: 0 12px 28px rgba(83, 61, 40, 0.17);
        outline: 0;
        transform: translate(-50%, -50%) scale(1.06);
      }

      .area-marker::after {
        content: "";
        position: absolute;
        z-index: -1;
        left: 18px;
        top: 50%;
        width: 34px;
        height: 34px;
        border: 1px solid rgba(170, 96, 53, 0.52);
        border-radius: 50%;
        opacity: 0;
        transform: translate(-50%, -50%) scale(0.7);
      }

      .area-marker.is-active::after {
        animation: area-marker-pulse 2.2s ease-out infinite;
      }

      @keyframes area-marker-pulse {
        0% {
          opacity: 0.54;
          transform: translate(-50%, -50%) scale(0.68);
        }

        74%,
        100% {
          opacity: 0;
          transform: translate(-50%, -50%) scale(1.45);
        }
      }

      .area-marker-icon {
        display: grid;
        width: 30px;
        height: 30px;
        place-items: center;
        border-radius: 50%;
        background: rgba(187, 188, 160, 0.22);
      }

      .area-marker-icon img {
        width: 24px;
        height: 24px;
        object-fit: contain;
      }

      .area-marker-label {
        white-space: nowrap;
        font-family: "Cormorant Garamond", Georgia, serif;
        font-size: 0.98rem;
        font-weight: 600;
        line-height: 1;
      }

      .area-marker--kapolcs {
        left: 34%;
        top: 32%;
      }

      .area-marker--kali {
        left: 57%;
        top: 43%;
      }

      .area-marker--balaton {
        left: 74%;
        top: 72%;
      }

      .area-marker--tapolca {
        left: 29%;
        top: 61%;
      }

      .area-marker--wine {
        left: 48%;
        top: 56%;
      }

      .area-marker--gastronomy {
        left: 65%;
        top: 61%;
      }

      .area-card-list {
        position: absolute;
        z-index: 5;
        inset: 0;
        pointer-events: none;
      }

      .area-card {
        --card-shift-x: 0;
        position: absolute;
        z-index: 5;
        width: 310px;
        min-height: 182px;
        padding: 18px;
        display: grid;
        grid-template-columns: minmax(0, 1fr) 104px;
        gap: 14px;
        align-items: stretch;
        border: 1px solid rgba(134, 116, 86, 0.22);
        border-radius: 20px;
        background: linear-gradient(145deg, rgba(255, 254, 250, 0.94), rgba(249, 246, 238, 0.88));
        box-shadow:
          0 18px 38px rgba(59, 49, 35, 0.11),
          inset 0 1px 0 rgba(255, 255, 255, 0.9);
        -webkit-backdrop-filter: blur(14px) saturate(112%);
        backdrop-filter: blur(14px) saturate(112%);
        pointer-events: auto;
        transform: translateX(var(--card-shift-x));
        transition:
          transform 280ms cubic-bezier(0.22, 1, 0.36, 1),
          border-color 240ms ease,
          box-shadow 240ms ease,
          background 240ms ease;
      }

      .area-card:hover,
      .area-card:focus-within,
      .area-card.is-active {
        border-color: rgba(170, 96, 53, 0.58);
        background: linear-gradient(145deg, rgba(255, 254, 250, 0.99), rgba(250, 245, 236, 0.96));
        box-shadow:
          0 24px 48px rgba(73, 54, 36, 0.16),
          inset 0 1px 0 rgba(255, 255, 255, 0.95);
        transform: translateX(var(--card-shift-x)) translateY(-5px);
      }

      .area-card-action {
        position: absolute;
        z-index: 4;
        inset: 0;
        width: 100%;
        height: 100%;
        padding: 0;
        border: 0;
        border-radius: inherit;
        background: transparent;
        cursor: pointer;
      }

      .area-card-action:focus-visible {
        outline: 2px solid var(--area-rust);
        outline-offset: 4px;
      }

      .area-card-index {
        position: absolute;
        z-index: 6;
        left: 50%;
        top: -17px;
        width: 38px;
        height: 38px;
        display: grid;
        place-items: center;
        border: 3px solid rgba(247, 241, 231, 0.96);
        border-radius: 50%;
        color: #fff;
        background: linear-gradient(145deg, #b86d3f, #96502d);
        box-shadow: 0 8px 18px rgba(103, 59, 32, 0.22);
        font-family: "Manrope", sans-serif;
        font-size: 0.7rem;
        font-weight: 700;
        letter-spacing: 0.02em;
        transform: translateX(-50%);
      }

      .area-card-body {
        min-width: 0;
        align-self: center;
      }

      .area-icon {
        width: 36px;
        height: 36px;
        margin-bottom: 8px;
        object-fit: contain;
      }

      .area-card h3 {
        margin: 0;
        color: #3d3e2e;
        font-family: "Cormorant Garamond", Georgia, serif;
        font-size: 1.6rem;
        font-weight: 600;
        line-height: 1;
        letter-spacing: -0.02em;
      }

      .area-card p {
        margin: 8px 0 0;
        color: rgba(61, 62, 46, 0.72);
        font-size: 0.72rem;
        line-height: 1.55;
      }

      .area-card-media {
        min-height: 146px;
        overflow: hidden;
        border-radius: 14px;
        background: #ded8ca;
      }

      .area-card-media img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform 700ms cubic-bezier(0.22, 1, 0.36, 1);
      }

      .area-card:hover .area-card-media img,
      .area-card:focus-within .area-card-media img,
      .area-card.is-active .area-card-media img {
        transform: scale(1.045);
      }

      .area-card-anchor {
        position: absolute;
        z-index: 7;
        top: 50%;
        width: 13px;
        height: 13px;
        border: 3px solid rgba(255, 253, 248, 0.96);
        border-radius: 50%;
        background: #7f8062;
        box-shadow: 0 3px 9px rgba(57, 53, 39, 0.2);
        pointer-events: none;
        transform: translateY(-50%);
        transition: background 220ms ease, transform 220ms ease;
      }

      .area-card.is-active .area-card-anchor {
        background: var(--area-rust);
        transform: translateY(-50%) scale(1.16);
      }

      .area-card--kapolcs,
      .area-card--kali,
      .area-card--tapolca {
        left: 18px;
      }

      .area-card--kapolcs {
        top: 48px;
      }

      .area-card--kali {
        top: 298px;
      }

      .area-card--tapolca {
        top: 548px;
      }

      .area-card--kapolcs .area-card-anchor,
      .area-card--kali .area-card-anchor,
      .area-card--tapolca .area-card-anchor {
        right: -8px;
      }

      .area-card--balaton,
      .area-card--gastronomy {
        right: 18px;
      }

      .area-card--balaton {
        top: 82px;
      }

      .area-card--gastronomy {
        top: 548px;
      }

      .area-card--balaton .area-card-anchor,
      .area-card--gastronomy .area-card-anchor {
        left: -8px;
      }

      .area-card--wine {
        --card-shift-x: -50%;
        left: 50%;
        bottom: 24px;
        width: 342px;
        min-height: 194px;
        grid-template-columns: 1fr;
        padding-bottom: 14px;
      }

      .area-card--wine .area-card-body {
        padding: 0 4px;
      }

      .area-card--wine .area-icon {
        float: left;
        margin: 0 12px 7px 0;
      }

      .area-card--wine .area-card-media {
        width: 100%;
        min-height: 78px;
        max-height: 78px;
      }

      .area-card--wine .area-card-media img {
        object-position: center 52%;
      }

      .area-card--wine .area-card-anchor {
        left: calc(50% + 52px);
        top: -8px;
        transform: translate(-50%, 0);
      }

      .area-card--wine.is-active .area-card-anchor {
        transform: translate(-50%, 0) scale(1.16);
      }

      .area-status {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
      }

      .area-mobile-nav {
        display: none;
      }

      @media (prefers-reduced-motion: reduce) {
        .area-connector.is-active,
        .area-marker.is-active::after {
          animation: none;
        }

        .area-card,
        .area-card-media img,
        .area-marker {
          transition-duration: 0.01ms;
        }
      }

      .cta-strip {
        position: relative;
        padding: 0;
        overflow: hidden;
        color: var(--white);
        background: #74775f;
      }

      .cta-strip-media,
      .cta-strip-overlay {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
      }

      .cta-strip-media {
        z-index: 0;
        object-fit: cover;
        object-position: center center;
      }

      .cta-strip-overlay {
        z-index: 1;
        background:
          linear-gradient(90deg, rgba(17, 18, 14, 0.66) 0%, rgba(17, 18, 14, 0.48) 35%, rgba(17, 18, 14, 0.1) 64%, rgba(17, 18, 14, 0.08) 100%),
          linear-gradient(180deg, rgba(12, 13, 10, 0.05), rgba(12, 13, 10, 0.28));
        pointer-events: none;
      }

      .cta-strip::before,
      .cta-strip::after {
        content: "";
        position: absolute;
        z-index: 2;
        pointer-events: none;
        background: center / contain no-repeat;
        filter: grayscale(1) sepia(0.45) brightness(1.7);
      }

      .cta-strip::before {
        top: -64px;
        left: -66px;
        width: 250px;
        height: 250px;
        background-image: url("../pricing-icon-late-season-320.webp");
        opacity: 0.11;
        transform: rotate(-18deg);
      }

      .cta-strip::after {
        bottom: -82px;
        left: -58px;
        width: 270px;
        height: 270px;
        background-image: url("../pricing-icon-early-season-320.webp");
        opacity: 0.1;
        transform: rotate(-36deg);
      }

      .cta-shell {
        position: relative;
        z-index: 3;
        min-height: clamp(600px, 50vw, 700px);
        padding: 76px 0;
        display: grid;
        align-items: center;
        justify-items: start;
      }

      .cta-card {
        width: min(650px, 58vw);
        padding: 0;
        text-align: left;
        border: 0;
        border-radius: 0;
        background: transparent;
        backdrop-filter: none;
        box-shadow: none;
      }

      .cta-card .eyebrow {
        margin-bottom: 22px;
        color: rgba(218, 199, 168, 0.86);
        justify-content: flex-start;
      }

      .cta-card h2 {
        max-width: none;
        margin: 0;
        color: #f6f1e8;
        font-family: "Cormorant Garamond", Georgia, serif;
        font-size: clamp(3.15rem, 4.1vw, 3.8rem);
        font-weight: 500;
        line-height: 1.02;
        letter-spacing: -0.035em;
        text-wrap: balance;
      }

      .cta-card h2 span {
        display: block;
      }

      .cta-card p {
        max-width: 36ch;
        margin: 24px 0 0;
        color: rgba(255, 255, 255, 0.86);
        font-size: 1.05rem;
        line-height: 1.68;
      }

      .cta-card .glass-btn {
        width: auto;
        min-height: 64px;
        margin-top: 30px;
        padding: 0 34px;
        color: #ffffff;
        background: #a2a188;
        border-color: rgba(255, 255, 255, 0.44);
        backdrop-filter: none;
        box-shadow:
          inset 0 1px 0 rgba(255, 255, 255, 0.34),
          0 18px 34px rgba(15, 16, 12, 0.22);
        font-family: "Cormorant Garamond", Georgia, serif;
        font-size: 1.28rem;
        font-weight: 600;
      }

      .cta-card .glass-btn:hover {
        background: #8f8e76;
        box-shadow:
          inset 0 1px 0 rgba(255, 255, 255, 0.4),
          0 22px 38px rgba(15, 16, 12, 0.28);
      }

      .gallery-section {
        overflow: hidden;
        background: #ffffff;
      }

      .gallery-head {
        max-width: 820px;
        margin: 0 auto 46px;
        text-align: center;
      }

      .gallery-flourish {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 14px;
        margin-bottom: 15px;
        color: #a6a78c;
      }

      .gallery-flourish::before,
      .gallery-flourish::after {
        content: "";
        width: 42px;
        height: 1px;
        background: linear-gradient(90deg, transparent, currentColor);
      }

      .gallery-flourish::after {
        background: linear-gradient(90deg, currentColor, transparent);
      }

      .gallery-flourish svg {
        width: 28px;
        height: 28px;
        fill: none;
        stroke: currentColor;
        stroke-linecap: round;
        stroke-linejoin: round;
        stroke-width: 1.45;
      }

      .gallery-head h2 {
        margin: 0;
        font-family: "Cormorant Garamond", Georgia, serif;
        font-size: clamp(3rem, 5vw, 4.65rem);
        font-weight: 600;
        line-height: 0.98;
        letter-spacing: -0.04em;
        text-wrap: balance;
      }

      .gallery-head p {
        margin: 18px auto 0;
        color: rgba(47, 43, 43, 0.62);
        font-size: 1rem;
        line-height: 1.7;
      }

      .gallery-composition {
        --gallery-height: clamp(520px, 48vw, 620px);
        display: grid;
        grid-template-columns: minmax(0, 1.82fr) minmax(280px, 0.78fr);
        gap: 12px;
        height: var(--gallery-height);
      }

      .gallery-stage {
        position: relative;
        min-width: 0;
        height: 100%;
        margin: 0;
        overflow: hidden;
        border-radius: 30px;
        background: #d9d4ca;
        box-shadow: 0 28px 58px rgba(38, 33, 27, 0.12);
        isolation: isolate;
      }

      .gallery-backdrop,
      .gallery-main {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        transition: opacity 240ms ease, transform 560ms cubic-bezier(0.22, 1, 0.36, 1);
      }

      .gallery-backdrop {
        inset: -9%;
        width: 118%;
        height: 118%;
        object-fit: cover;
        filter: blur(25px) saturate(0.88) brightness(0.82);
        opacity: 0.82;
        transform: scale(1.04);
      }

      .gallery-main {
        z-index: 1;
        object-fit: contain;
      }

      .gallery-backdrop.is-changing,
      .gallery-main.is-changing {
        opacity: 0;
        transform: scale(1.025);
      }

      .gallery-stage::after {
        content: "";
        position: absolute;
        z-index: 2;
        inset: auto 0 0;
        height: 28%;
        pointer-events: none;
        background: linear-gradient(180deg, transparent, rgba(15, 14, 11, 0.2));
      }

      .gallery-controls {
        position: absolute;
        z-index: 3;
        right: 20px;
        bottom: 20px;
        display: flex;
        gap: 9px;
      }

      .gallery-arrow {
        width: 48px;
        height: 48px;
        padding: 0;
        display: grid;
        place-items: center;
        color: #ffffff;
        border: 1px solid rgba(255, 255, 255, 0.5);
        border-radius: 50%;
        background: rgba(46, 43, 36, 0.36);
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2);
        backdrop-filter: blur(12px);
        cursor: pointer;
        transition: background-color 180ms ease, border-color 180ms ease, transform 180ms ease;
      }

      .gallery-arrow svg {
        width: 20px;
        height: 20px;
        fill: none;
        stroke: currentColor;
        stroke-linecap: round;
        stroke-linejoin: round;
        stroke-width: 1.7;
      }

      .gallery-arrow:hover {
        border-color: rgba(255, 255, 255, 0.82);
        background: rgba(46, 43, 36, 0.56);
        transform: translateY(-2px);
      }

      .gallery-arrow:focus-visible {
        outline: 2px solid #ffffff;
        outline-offset: 3px;
      }

      .gallery-thumbs {
        min-width: 0;
        height: 100%;
        display: grid;
        grid-auto-rows: calc((100% - 36px) / 4);
        gap: 12px;
        padding: 0 2px 0 0;
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior: contain;
        scroll-behavior: smooth;
        scroll-snap-type: y proximity;
        scrollbar-width: none;
      }

      .gallery-thumbs::-webkit-scrollbar {
        display: none;
      }

      .gallery-thumb {
        position: relative;
        min-height: 0;
        padding: 0;
        overflow: hidden;
        border: 1px solid rgba(47, 43, 43, 0.08);
        border-radius: 19px;
        background: #f2efe9;
        cursor: pointer;
        scroll-snap-align: start;
        box-shadow: 0 12px 26px rgba(38, 33, 27, 0.06);
        transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
      }

      .gallery-thumb::after {
        content: "";
        position: absolute;
        inset: 0;
        pointer-events: none;
        background: rgba(39, 36, 30, 0.16);
        transition: opacity 180ms ease;
      }

      .gallery-thumb img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform 560ms cubic-bezier(0.22, 1, 0.36, 1);
      }

      .gallery-thumb:hover {
        transform: translateX(-3px);
      }

      .gallery-thumb:hover img {
        transform: scale(1.045);
      }

      .gallery-thumb.is-active {
        display: none;
      }

      .gallery-thumb.is-active::after {
        opacity: 0;
      }

      .gallery-thumb:focus-visible {
        outline: 2px solid var(--olive-deep);
        outline-offset: 3px;
      }

      .pricing-section {
        background: #ffffff;
      }

      .pricing-layout {
        display: block;
      }

      .faq-item,
      .booking-card {
        background: var(--panel-strong);
        border: 1px solid var(--line);
        box-shadow: var(--shadow-soft);
      }

      .booking-card {
        border-radius: 32px;
      }

      .pricing-showcase {
        margin-bottom: 30px;
      }

      .pricing-showcase-head {
        max-width: 760px;
        margin: 0 auto 42px;
        text-align: center;
      }

      .pricing-showcase-kicker {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 13px;
        color: rgba(79, 70, 62, 0.66);
        font-size: 0.82rem;
        letter-spacing: 0.19em;
        text-transform: uppercase;
      }

      .pricing-showcase-kicker img {
        width: 32px;
        height: 32px;
        object-fit: contain;
        opacity: 0.82;
      }

      .pricing-showcase-head h2 {
        margin: 14px 0 0;
        font-family: "Cormorant Garamond", serif;
        font-size: clamp(3.6rem, 6vw, 5.25rem);
        font-weight: 600;
        line-height: 0.92;
        letter-spacing: -0.04em;
      }

      .pricing-showcase-head p {
        max-width: 54ch;
        margin: 18px auto 0;
        color: rgba(47, 43, 43, 0.66);
        font-size: 1rem;
        line-height: 1.7;
      }

      .pricing-season-grid {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 18px;
        align-items: stretch;
      }

      .season-price-card {
        min-width: 0;
        padding: 14px;
        border-radius: 26px;
        background: #ffffff;
        border: 1px solid rgba(110, 98, 85, 0.1);
        box-shadow: 0 20px 46px rgba(61, 52, 43, 0.08);
        display: flex;
        flex-direction: column;
        overflow: hidden;
      }

      .season-price-visual {
        position: relative;
        min-height: 170px;
        border-radius: 18px;
        background:
          radial-gradient(circle at 50% 38%, rgba(255, 255, 255, 0.96), rgba(255, 255, 255, 0.22) 43%, transparent 68%),
          linear-gradient(135deg, #f6f1e7, #f1eee7);
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 12px;
        overflow: hidden;
      }

      .season-price-card--summer .season-price-visual {
        background:
          radial-gradient(circle at 50% 42%, rgba(255, 255, 255, 0.95), rgba(255, 244, 224, 0.42) 44%, transparent 70%),
          linear-gradient(135deg, #fbf4e8, #f7eadb);
      }

      .season-price-card--winter .season-price-visual {
        background:
          radial-gradient(circle at 50% 42%, rgba(255, 255, 255, 0.98), rgba(245, 246, 243, 0.45) 44%, transparent 70%),
          linear-gradient(135deg, #f3f3ef, #ecece7);
      }

      .season-price-visual::before,
      .season-price-visual::after {
        content: "";
        position: absolute;
        top: 50%;
        width: 5px;
        height: 5px;
        border-radius: 50%;
        background: rgba(160, 126, 86, 0.58);
        transform: translateY(-50%);
      }

      .season-price-visual::before {
        left: 34px;
      }

      .season-price-visual::after {
        right: 34px;
      }

      .season-emblem {
        position: relative;
        width: 110px;
        height: 110px;
        border-radius: 50%;
        background: rgba(255, 255, 255, 0.48);
        border: 1px solid rgba(126, 113, 96, 0.28);
        box-shadow:
          inset 0 0 0 6px rgba(255, 255, 255, 0.32),
          0 8px 18px rgba(71, 61, 50, 0.06);
        display: flex;
        align-items: center;
        justify-content: center;
        flex: 0 0 auto;
      }

      .season-emblem img {
        width: 82%;
        height: 82%;
        object-fit: contain;
      }

      .season-price-visual--dual .season-emblem {
        width: 92px;
        height: 92px;
      }

      .season-price-visual--dual .season-emblem:first-child {
        transform: translateX(5px) rotate(-5deg);
      }

      .season-price-visual--dual .season-emblem:last-child {
        transform: translateX(-5px) rotate(5deg);
      }

      .season-price-body {
        flex: 1 1 auto;
        padding: 22px 5px 4px;
        display: flex;
        flex-direction: column;
      }

      .season-price-body h3 {
        max-width: 16ch;
        margin: 0 auto;
        font-family: "Cormorant Garamond", serif;
        font-size: clamp(1.9rem, 2.7vw, 2.28rem);
        font-weight: 600;
        line-height: 0.98;
        letter-spacing: -0.035em;
        text-align: center;
        text-transform: uppercase;
        text-wrap: balance;
      }

      .season-price-ornament {
        width: 106px;
        height: 10px;
        margin: 15px auto 0;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        color: rgba(151, 126, 96, 0.44);
      }

      .season-price-ornament::before,
      .season-price-ornament::after {
        content: "";
        width: 38px;
        height: 1px;
        background: currentColor;
      }

      .season-price-ornament span {
        width: 6px;
        height: 6px;
        border: 1px solid currentColor;
        transform: rotate(45deg);
      }

      .season-price-dates {
        min-height: 56px;
        margin: 12px auto 18px;
        color: rgba(47, 43, 43, 0.68);
        font-size: 0.92rem;
        line-height: 1.58;
        text-align: center;
      }

      .season-price-table {
        margin-top: auto;
        border-top: 1px solid rgba(99, 87, 75, 0.14);
      }

      .season-price-row {
        min-height: 68px;
        padding: 9px 2px;
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        gap: 12px;
        border-bottom: 1px solid rgba(99, 87, 75, 0.14);
      }

      .season-price-row:last-child {
        border-bottom: 0;
      }

      .season-price-row > span {
        font-size: 0.92rem;
        font-weight: 500;
        color: rgba(47, 43, 43, 0.78);
      }

      .season-price-row strong {
        display: grid;
        justify-items: end;
        gap: 1px;
        text-align: right;
      }

      .season-price-row strong b {
        font-family: "Manrope", sans-serif;
        font-size: 1.42rem;
        font-weight: 800;
        line-height: 1;
        letter-spacing: -0.035em;
        font-variant-numeric: tabular-nums;
      }

      .season-price-row strong small {
        color: rgba(47, 43, 43, 0.58);
        font-size: 0.7rem;
        font-weight: 500;
        line-height: 1.25;
      }

      .pricing-mini-facts {
        max-width: 580px;
        margin: 34px auto 0;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px;
      }

      .pricing-mini-fact {
        min-height: 68px;
        padding: 10px 20px;
        border-radius: 16px;
        background: #ffffff;
        border: 1px solid rgba(151, 126, 96, 0.2);
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 13px;
      }

      .pricing-mini-fact img {
        width: 42px;
        height: 42px;
        flex: 0 0 42px;
      }

      .pricing-mini-fact strong {
        color: rgba(47, 43, 43, 0.84);
        font-size: 0.96rem;
        font-weight: 600;
      }

      .pricing-notes {
        grid-column: 1 / -1;
        margin-top: 20px;
        border-radius: 30px;
        background: rgba(255, 255, 255, 0.84);
        border: 1px solid rgba(47, 43, 43, 0.08);
        box-shadow: 0 18px 36px rgba(61, 55, 50, 0.06);
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }

      .side-box {
        padding: 34px 30px 32px;
        display: grid;
        align-content: start;
        gap: 16px;
      }

      .side-box + .side-box {
        border-left: 1px solid rgba(47, 43, 43, 0.08);
      }

      .side-box-head {
        display: flex;
        align-items: center;
        gap: 16px;
      }

      .side-box-head img {
        width: 68px;
        height: 68px;
        flex: 0 0 68px;
        object-fit: contain;
      }

      .side-box h3 {
        margin: 0;
        font-family: "Instrument Serif", serif;
        font-size: 1.9rem;
        font-weight: 400;
        line-height: 1;
      }

      .side-box p,
      .side-box li {
        color: rgba(47, 43, 43, 0.72);
        line-height: 1.74;
        font-size: 1rem;
      }

      .side-box ul {
        margin: 0;
        padding-left: 20px;
      }

      .side-box li + li {
        margin-top: 10px;
      }

      .pricing-rule-link {
        justify-self: start;
        margin-top: 4px;
        padding: 0 22px 0 24px;
        color: #ffffff;
        background: #b0b097;
        border-color: #b0b097;
        box-shadow: 0 12px 26px rgba(115, 115, 91, 0.16);
      }

      .pricing-rule-link:hover,
      .pricing-rule-link:focus-visible {
        color: #ffffff;
        background: #a6a68c;
        border-color: #a6a68c;
        outline: none;
      }

      .pricing-rule-link img {
        width: 18px;
        height: 18px;
        filter: brightness(0) invert(1);
        opacity: 0.92;
      }

      .pricing-rule-link svg {
        width: 17px;
        height: 17px;
        fill: none;
        stroke: #ffffff;
        stroke-width: 2;
        stroke-linecap: round;
        stroke-linejoin: round;
      }

      .booking-section {
        position: relative;
        overflow: clip;
        background:
          linear-gradient(180deg, rgba(252, 248, 241, 0.72), rgba(248, 242, 234, 0.88)),
          url("../casa-de-milla-foglalas-hatter.webp") center center / cover no-repeat;
      }

      .booking-section::before {
        content: "";
        position: absolute;
        inset: 0;
        background:
          radial-gradient(circle at 22% 24%, rgba(255, 255, 255, 0.22), transparent 30%),
          linear-gradient(180deg, rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0.24));
        pointer-events: none;
      }

      .booking-shell {
        position: relative;
        z-index: 1;
      }

      .booking-panel {
        padding: clamp(22px, 3.8vw, 40px);
        border-radius: 40px;
        background: rgba(255, 251, 246, 0.74);
        border: 1px solid rgba(255, 255, 255, 0.42);
        backdrop-filter: blur(22px);
        box-shadow:
          inset 0 1px 0 rgba(255, 255, 255, 0.62),
          0 28px 70px rgba(77, 67, 55, 0.12);
      }

      .booking-header {
        max-width: 60ch;
        margin: 0 auto 30px;
        text-align: center;
      }

      .booking-header .eyebrow {
        justify-content: center;
      }

      .booking-header h2 {
        max-width: 16ch;
        margin: 10px auto 0;
        font-size: clamp(2.2rem, 3vw, 3rem);
        line-height: 1.06;
      }

      .booking-header p {
        max-width: 48ch;
        margin: 14px auto 0;
        color: rgba(47, 43, 43, 0.7);
      }

      .booking-layout {
        display: grid;
        grid-template-columns: minmax(0, 1.12fr) minmax(340px, 0.88fr);
        gap: 24px;
        align-items: stretch;
      }

      .booking-form-column {
        display: grid;
        gap: 18px;
      }

      .booking-fields {
        display: grid;
        gap: 16px;
      }

      .booking-field-grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px;
      }

      .field,
      .field--full {
        display: grid;
        gap: 10px;
      }

      .field--full {
        grid-column: 1 / -1;
      }

      .field label,
      .field--full label {
        font-size: 0.8rem;
        letter-spacing: 0.14em;
        text-transform: uppercase;
        color: rgba(47, 43, 43, 0.58);
      }

      .field input,
      .field select,
      .field textarea,
      .booking-range,
      .booking-range-display,
      .booking-range-fallback {
        width: 100%;
        min-height: 62px;
        padding: 0 18px;
        border-radius: 18px;
        border: 1px solid rgba(47, 43, 43, 0.12);
        background: rgba(255, 255, 255, 0.92);
        color: var(--text);
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
      }

      .guest-stepper {
        min-height: 62px;
        padding: 6px;
        border-radius: 18px;
        border: 1px solid rgba(47, 43, 43, 0.12);
        background: rgba(255, 255, 255, 0.92);
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
        display: grid;
        grid-template-columns: 50px minmax(0, 1fr) 50px;
        align-items: center;
      }

      .guest-stepper button {
        width: 38px;
        height: 38px;
        border: 0;
        border-radius: 999px;
        background: rgba(47, 43, 43, 0.08);
        color: var(--text);
        font-size: 1.3rem;
        line-height: 1;
        cursor: pointer;
        justify-self: center;
      }

      .guest-stepper button:disabled {
        opacity: 0.4;
        cursor: default;
      }

      .guest-stepper-value {
        text-align: center;
        font-weight: 600;
        color: rgba(47, 43, 43, 0.82);
      }

      .booking-range {
        cursor: pointer;
      }

      .booking-range-display {
        cursor: pointer;
      }

      .booking-range::placeholder {
        color: rgba(47, 43, 43, 0.38);
      }

      .booking-range-display::placeholder {
        color: rgba(47, 43, 43, 0.38);
      }

      .booking-range:focus,
      .booking-range-display:focus,
      .field input:focus,
      .field select:focus {
        outline: none;
        border-color: rgba(125, 115, 106, 0.34);
        box-shadow:
          0 0 0 4px rgba(187, 188, 160, 0.16),
          inset 0 1px 0 rgba(255, 255, 255, 0.7);
      }

      .booking-range-fallback {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px;
        padding: 14px;
      }

      .booking-range-fallback[hidden] {
        display: none;
      }

      .booking-range-fallback input {
        min-height: 52px;
        border-radius: 14px;
        border: 1px solid rgba(47, 43, 43, 0.12);
        padding: 0 14px;
      }

      .booking-summary-card {
        position: relative;
        overflow: hidden;
        padding: clamp(28px, 4vw, 38px);
        border-radius: 32px;
        background:
          linear-gradient(180deg, rgba(247, 240, 229, 0.98), rgba(236, 227, 214, 0.96)),
          url("../ikon-ag-reszletes.png") right 18px bottom 18px / 210px no-repeat;
        border: 1px solid rgba(47, 43, 43, 0.08);
        box-shadow: 0 20px 46px rgba(79, 68, 55, 0.1);
        display: flex;
        flex-direction: column;
        justify-content: center;
        min-height: 100%;
      }

      .booking-summary-card::after {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(180deg, rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0));
        pointer-events: none;
      }

      .booking-summary-content {
        position: relative;
        z-index: 1;
      }

      .booking-summary-kicker {
        color: rgba(47, 43, 43, 0.56);
        font-size: 0.8rem;
        letter-spacing: 0.16em;
        text-transform: uppercase;
      }

      .booking-summary-title {
        margin-top: 20px;
        font-family: "Instrument Serif", serif;
        font-size: clamp(2.4rem, 4vw, 4rem);
        font-weight: 400;
        line-height: 1;
        letter-spacing: -0.03em;
      }

      .booking-summary-price {
        margin-top: 18px;
        font-family: "Instrument Serif", serif;
        font-size: clamp(2.8rem, 5vw, 4.6rem);
        font-weight: 400;
        line-height: 0.94;
        letter-spacing: -0.04em;
      }

      .booking-summary-note {
        margin-top: 18px;
        max-width: 30ch;
        color: rgba(47, 43, 43, 0.72);
        line-height: 1.74;
      }

      .booking-summary-meta {
        margin-top: 18px;
        padding-top: 18px;
        border-top: 1px solid rgba(47, 43, 43, 0.1);
        color: rgba(47, 43, 43, 0.58);
        line-height: 1.68;
      }

      .booking-helper {
        padding-top: 18px;
        border-top: 1px solid rgba(47, 43, 43, 0.08);
        color: rgba(47, 43, 43, 0.62);
        line-height: 1.74;
        font-size: 0.98rem;
      }

      .booking-actions {
        display: grid;
        grid-template-columns: 1fr;
        justify-items: center;
        gap: 14px;
      }

      .booking-actions .primary-btn {
        width: min(320px, 100%);
      }

      .booking-section .flatpickr-input,
      .booking-section .booking-range-display {
        min-height: 62px;
        border-radius: 18px;
        border: 1px solid rgba(47, 43, 43, 0.12);
        background: rgba(255, 255, 255, 0.92);
        color: var(--text);
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
      }

      .booking-section .flatpickr-calendar {
        border-radius: 24px;
        border: 1px solid rgba(47, 43, 43, 0.1);
        box-shadow: 0 28px 64px rgba(54, 46, 39, 0.16);
      }

      .booking-section .flatpickr-day.selected,
      .booking-section .flatpickr-day.startRange,
      .booking-section .flatpickr-day.endRange {
        background: var(--text);
        border-color: var(--text);
      }

      .booking-section .flatpickr-day.inRange {
        background: rgba(47, 43, 43, 0.12);
        border-color: rgba(47, 43, 43, 0.12);
        box-shadow: -5px 0 0 rgba(47, 43, 43, 0.12), 5px 0 0 rgba(47, 43, 43, 0.12);
      }

      .booking-section .flatpickr-day.disabled,
      .booking-section .flatpickr-day.flatpickr-disabled {
        color: rgba(47, 43, 43, 0.24);
      }

      .booking-section .flatpickr-day.today {
        border-color: rgba(47, 43, 43, 0.16);
      }

      .booking-section .flatpickr-months .flatpickr-month {
        background: transparent;
      }

      .faq-section {
        padding: clamp(82px, 8vw, 112px) 0;
        background: #fff;
      }

      .faq-section.section--line::before {
        display: none;
      }

      .faq-head {
        width: min(760px, 100%);
        margin: 0 auto 38px;
        text-align: center;
      }

      .faq-head h2 {
        margin: 0;
        color: #343528;
        font-family: "Cormorant Garamond", Georgia, serif;
        font-size: clamp(2.9rem, 4.3vw, 4rem);
        font-weight: 600;
        line-height: 1;
        letter-spacing: -0.035em;
      }

      .faq-head p {
        margin: 11px 0 0;
        color: rgba(52, 53, 40, 0.72);
        font-size: 0.93rem;
        line-height: 1.55;
      }

      .faq-head .faq-rule-note {
        margin-top: 3px;
      }

      .faq-rule-note a {
        color: #a55d38;
        font-weight: 600;
        text-decoration: underline;
        text-decoration-thickness: 1px;
        text-underline-offset: 3px;
      }

      .faq-rule-note a:hover,
      .faq-rule-note a:focus-visible {
        color: #7f4327;
        outline: 0;
      }

      .faq-list {
        display: grid;
        width: min(900px, 100%);
        margin: 0 auto;
        gap: 8px;
      }

      .faq-item {
        overflow: hidden;
        border: 1px solid rgba(139, 143, 111, 0.34);
        border-radius: 12px;
        background: rgba(255, 255, 255, 0.98);
        box-shadow: 0 5px 16px rgba(66, 61, 45, 0.045);
        transition: border-color 200ms ease, background 200ms ease, box-shadow 200ms ease;
      }

      .faq-item:hover,
      .faq-item:focus-within,
      .faq-item.is-open {
        border-color: rgba(139, 143, 111, 0.62);
        box-shadow: 0 8px 22px rgba(66, 61, 45, 0.07);
      }

      .faq-item.is-open {
        background: #f7f7f1;
      }

      .faq-toggle {
        display: grid;
        width: 100%;
        min-height: 58px;
        padding: 8px 13px 8px 10px;
        grid-template-columns: 40px minmax(0, 1fr) 34px;
        align-items: center;
        gap: 14px;
        border: 0;
        color: #34352c;
        background: transparent;
        text-align: left;
        cursor: pointer;
      }

      .faq-toggle:focus-visible {
        outline: 2px solid rgba(139, 143, 111, 0.72);
        outline-offset: -3px;
      }

      .faq-number {
        display: grid;
        width: 40px;
        height: 40px;
        place-items: center;
        border-radius: 9px;
        color: #fff;
        background: linear-gradient(145deg, #b7baa0, #969a78);
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.34);
        font-size: 0.78rem;
        font-weight: 700;
        letter-spacing: 0.02em;
      }

      .faq-toggle strong {
        font-size: 0.96rem;
        font-weight: 650;
        line-height: 1.38;
      }

      .faq-icon {
        display: grid;
        width: 34px;
        height: 34px;
        place-items: center;
        border-radius: 50%;
        color: #fff;
        background: #b5b99d;
        font-size: 1.25rem;
        font-weight: 400;
        line-height: 1;
        transition: background 180ms ease, transform 180ms ease;
      }

      .faq-item.is-open .faq-icon {
        background: #969a78;
        transform: rotate(180deg);
      }

      .faq-content {
        max-height: 0;
        overflow: hidden;
        border-top: 1px solid transparent;
        transition: max-height 320ms ease, border-color 220ms ease;
      }

      .faq-content-inner {
        padding: 14px 58px 20px 64px;
        color: rgba(52, 53, 40, 0.72);
        font-size: 0.89rem;
        line-height: 1.7;
      }

      .faq-item.is-open .faq-content {
        max-height: 440px;
        border-top-color: rgba(139, 143, 111, 0.22);
      }

      @media (max-width: 720px) {
        .faq-section {
          padding: 72px 0 78px;
        }

        .faq-head {
          margin-bottom: 28px;
        }

        .faq-head h2 {
          font-size: clamp(2.55rem, 13vw, 3.2rem);
        }

        .faq-head p {
          width: min(34ch, 100%);
          margin-inline: auto;
          font-size: 0.84rem;
        }

        .faq-list {
          gap: 7px;
        }

        .faq-toggle {
          min-height: 60px;
          padding: 8px;
          grid-template-columns: 36px minmax(0, 1fr) 32px;
          gap: 10px;
        }

        .faq-number {
          width: 36px;
          height: 36px;
          border-radius: 8px;
          font-size: 0.72rem;
        }

        .faq-toggle strong {
          font-size: 0.84rem;
          line-height: 1.35;
        }

        .faq-icon {
          width: 32px;
          height: 32px;
          font-size: 1.12rem;
        }

        .faq-content-inner {
          padding: 12px 46px 18px 54px;
          font-size: 0.82rem;
          line-height: 1.62;
        }
      }

      .site-footer {
        position: relative;
        isolation: isolate;
        overflow: hidden;
        padding: clamp(62px, 6.5vw, 92px) 0 30px;
        color: #ffffff;
        background:
          radial-gradient(circle at 50% -18%, rgba(255, 255, 255, 0.22), transparent 38%),
          radial-gradient(circle at 8% 92%, rgba(103, 106, 81, 0.16), transparent 30%),
          radial-gradient(circle at 92% 76%, rgba(255, 255, 255, 0.09), transparent 28%),
          #a8aa8f;
      }

      .site-footer::before {
        content: "";
        position: absolute;
        z-index: -1;
        inset: 0;
        opacity: 0.2;
        background-image: radial-gradient(rgba(255, 255, 255, 0.5) 0.55px, transparent 0.55px);
        background-size: 7px 7px;
        -webkit-mask-image: linear-gradient(180deg, transparent, #000 26%, #000 78%, transparent);
        mask-image: linear-gradient(180deg, transparent, #000 26%, #000 78%, transparent);
        pointer-events: none;
      }

      .footer-shell {
        position: relative;
        z-index: 1;
        display: grid;
        justify-items: center;
        text-align: center;
      }

      .footer-brand {
        display: inline-flex;
        width: clamp(116px, 9vw, 142px);
        transition: transform 260ms ease, opacity 260ms ease;
      }

      .footer-brand:hover {
        opacity: 0.92;
        transform: translateY(-2px);
      }

      .footer-brand img {
        width: 100%;
        height: auto;
        object-fit: contain;
      }

      .footer-tagline {
        width: min(620px, 100%);
        margin: 18px auto 0;
        color: rgba(255, 255, 255, 0.82);
        font-size: 0.86rem;
        line-height: 1.75;
        text-wrap: balance;
      }

      .footer-nav {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-wrap: wrap;
        gap: 30px;
        margin-top: 30px;
      }

      .footer-nav a {
        position: relative;
        padding: 7px 2px;
        color: rgba(255, 255, 255, 0.96);
        font-family: "Cormorant Garamond", Georgia, serif;
        font-size: 0.87rem;
        font-weight: 600;
        line-height: 1;
        letter-spacing: 0.12em;
        text-transform: uppercase;
        transition: color 180ms ease, transform 180ms ease;
      }

      .footer-nav a:not(:last-child)::after {
        content: "";
        position: absolute;
        top: 50%;
        right: -17px;
        width: 3px;
        height: 3px;
        border-radius: 50%;
        background: rgba(255, 255, 255, 0.62);
        transform: translateY(-50%);
      }

      .footer-nav a:hover,
      .footer-nav a:focus-visible {
        color: #ffffff;
        outline: none;
        transform: translateY(-1px);
      }

      .footer-rule {
        width: min(880px, 100%);
        height: 1px;
        margin: 20px auto 0;
        background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.48) 18%, rgba(255, 255, 255, 0.48) 82%, transparent);
      }

      .footer-legal {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 12px;
        margin-top: 15px;
        color: rgba(255, 255, 255, 0.72);
        font-size: 0.72rem;
      }

      .footer-legal a {
        transition: color 180ms ease;
      }

      .footer-legal a:hover,
      .footer-legal a:focus-visible {
        color: #ffffff;
        outline: none;
      }

      .footer-action-row {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-wrap: wrap;
        gap: 12px;
        margin-top: 18px;
      }

      .footer-contact-link {
        display: inline-grid;
        width: 44px;
        height: 44px;
        place-items: center;
        border: 1px solid rgba(255, 255, 255, 0.28);
        border-radius: 50%;
        color: #ffffff;
        background: rgba(255, 255, 255, 0.09);
        -webkit-backdrop-filter: blur(12px) saturate(118%);
        backdrop-filter: blur(12px) saturate(118%);
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.24), 0 10px 24px rgba(73, 76, 57, 0.1);
        transition: transform 200ms ease, background 200ms ease, border-color 200ms ease;
      }

      .footer-contact-link svg {
        width: 19px;
        height: 19px;
        fill: none;
        stroke: currentColor;
        stroke-width: 1.6;
        stroke-linecap: round;
        stroke-linejoin: round;
      }

      .footer-social-link--facebook svg,
      .footer-social-link--tiktok svg,
      .footer-social-link .footer-social-dot {
        fill: currentColor;
        stroke: none;
      }

      .footer-contact-link:hover,
      .footer-contact-link:focus-visible {
        border-color: rgba(255, 255, 255, 0.5);
        background: rgba(255, 255, 255, 0.16);
        outline: none;
        transform: translateY(-2px);
      }

      .footer-booking-cta {
        display: inline-flex;
        min-height: 48px;
        align-items: center;
        justify-content: center;
        margin-left: 8px;
        padding: 0 30px;
        border: 1px solid rgba(255, 255, 255, 0.72);
        border-radius: 16px;
        color: var(--olive-deep);
        background: #ffffff;
        -webkit-backdrop-filter: blur(16px) saturate(125%);
        backdrop-filter: blur(16px) saturate(125%);
        box-shadow:
          inset 0 1px 0 rgba(255, 255, 255, 0.72),
          0 14px 30px rgba(74, 77, 58, 0.14);
        font-family: "Cormorant Garamond", Georgia, serif;
        font-size: 1rem;
        font-weight: 600;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        transition: transform 220ms ease, background 220ms ease, box-shadow 220ms ease;
      }

      .footer-booking-cta svg {
        width: 22px;
        height: 22px;
        fill: none;
        stroke: currentColor;
        stroke-width: 1.45;
        stroke-linecap: round;
        stroke-linejoin: round;
      }

      .footer-booking-cta:hover,
      .footer-booking-cta:focus-visible {
        color: #74775f;
        background: rgba(255, 255, 255, 0.92);
        box-shadow:
          inset 0 1px 0 rgba(255, 255, 255, 0.8),
          0 18px 36px rgba(74, 77, 58, 0.18);
        outline: none;
        transform: translateY(-2px);
      }

      .footer-ornament {
        display: grid;
        width: min(940px, 100%);
        grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
        align-items: center;
        gap: 18px;
        margin-top: 28px;
        color: rgba(255, 255, 255, 0.72);
      }

      .footer-ornament::before,
      .footer-ornament::after {
        content: "";
        height: 1px;
        background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.44));
      }

      .footer-ornament::after {
        transform: rotate(180deg);
      }

      .footer-ornament svg {
        width: 72px;
        height: 22px;
        fill: none;
        stroke: currentColor;
        stroke-width: 1.25;
        stroke-linecap: round;
        stroke-linejoin: round;
      }

      .footer-copyright {
        margin: 16px 0 0;
        color: rgba(255, 255, 255, 0.66);
        font-size: 0.7rem;
        line-height: 1.5;
      }

      @media (max-width: 720px) {
        .site-footer {
          padding: 56px 0 24px;
        }

        .footer-brand {
          width: 112px;
        }

        .footer-tagline {
          width: min(33ch, 100%);
          margin-top: 14px;
          font-size: 0.8rem;
          line-height: 1.7;
        }

        .footer-nav {
          width: min(300px, 100%);
          display: grid;
          grid-template-columns: repeat(2, minmax(0, 1fr));
          gap: 8px 20px;
          margin-top: 24px;
        }

        .footer-nav a {
          padding: 9px 4px;
          font-size: 0.8rem;
        }

        .footer-nav a::after {
          display: none;
        }

        .footer-rule {
          margin-top: 17px;
        }

        .footer-action-row {
          width: min(290px, 100%);
          margin-top: 17px;
        }

        .footer-booking-cta {
          width: 100%;
          min-height: 52px;
          margin: 4px 0 0;
        }

        .footer-ornament {
          gap: 12px;
          margin-top: 24px;
        }

        .footer-ornament svg {
          width: 58px;
        }

        .footer-copyright {
          max-width: 32ch;
        }
      }

      .reveal {
        opacity: 0;
        transform: translateY(24px);
        transition: opacity 700ms ease, transform 700ms ease;
      }

      .reveal.is-visible {
        opacity: 1;
        transform: translateY(0);
      }

      @media (max-width: 1180px) and (min-width: 981px) {
        .area-board {
          min-height: 780px;
        }

        .area-map {
          width: 78%;
        }

        .area-card {
          width: 270px;
          min-height: 164px;
          grid-template-columns: minmax(0, 1fr) 86px;
          gap: 11px;
          padding: 16px;
        }

        .area-card h3 {
          font-size: 1.42rem;
        }

        .area-card p {
          font-size: 0.66rem;
        }

        .area-card-media {
          min-height: 130px;
        }

        .area-card--kapolcs {
          top: 42px;
        }

        .area-card--kali {
          top: 266px;
        }

        .area-card--tapolca {
          top: 490px;
        }

        .area-card--balaton {
          top: 74px;
        }

        .area-card--gastronomy {
          top: 490px;
        }

        .area-card--wine {
          width: 314px;
          min-height: 184px;
        }
      }

      @media (max-width: 1120px) {
        .section-head {
          grid-template-columns: 1fr;
        }

        .gallery-composition {
          grid-template-columns: minmax(0, 1.66fr) minmax(250px, 0.74fr);
        }

        .amenities-grid {
          grid-template-columns: repeat(2, minmax(0, 1fr));
        }

        .pricing-notes {
          grid-template-columns: 1fr;
        }

        .side-box + .side-box {
          border-left: 0;
          border-top: 1px solid rgba(47, 43, 43, 0.08);
        }

        .booking-layout {
          grid-template-columns: 1fr;
        }
      }

      @media (max-width: 980px) {
        :root {
          --shell: min(1240px, calc(100vw - 32px));
        }

        .gallery-composition {
          height: auto;
          display: grid;
          grid-template-columns: 1fr;
          gap: 12px;
        }

        .gallery-stage {
          height: auto;
          aspect-ratio: 16 / 10;
        }

        .gallery-thumbs {
          height: auto;
          grid-template-columns: none;
          grid-auto-flow: column;
          grid-auto-columns: minmax(180px, 28vw);
          grid-auto-rows: 112px;
          gap: 10px;
          padding: 2px 2px 9px;
          overflow-x: auto;
          overflow-y: hidden;
          scroll-snap-type: x mandatory;
        }

        .gallery-thumb:hover {
          transform: translateY(-2px);
        }

        .pricing-season-grid {
          grid-template-columns: repeat(2, minmax(0, 1fr));
        }

        .season-price-card--winter {
          width: calc(50% - 9px);
          grid-column: 1 / -1;
          justify-self: center;
        }

        .topbar {
          position: relative;
          z-index: 82;
          align-items: center;
          gap: 14px;
        }

        body.menu-open {
          overflow: hidden;
        }

        body.menu-open .hero {
          z-index: 1000;
          overflow: visible;
        }

        body.menu-open .hero::after {
          opacity: 0;
        }

        body.menu-open .hero-scroll {
          opacity: 0;
          visibility: hidden;
          pointer-events: none;
        }

        .brand-meta {
          display: none;
        }

        .brand {
          flex: 1 1 auto;
          min-width: 0;
          position: relative;
          z-index: 82;
        }

        .brand-mark {
          width: 74px;
        }

        .nav {
          margin-left: auto;
          gap: 10px;
          position: static;
        }

        .menu-toggle {
          display: inline-flex;
          position: relative;
          z-index: 82;
          transition:
            background-color 220ms ease,
            border-color 220ms ease;
        }

        .language-switch {
          position: relative;
          z-index: 82;
          width: 46px;
          min-width: 46px;
          height: 46px;
          padding: 0;
        }

        .language-switch-code {
          position: absolute;
          width: 1px;
          height: 1px;
          padding: 0;
          margin: -1px;
          overflow: hidden;
          clip: rect(0, 0, 0, 0);
          white-space: nowrap;
          border: 0;
        }

        .menu-toggle:focus {
          outline: none;
        }

        .menu-toggle:focus-visible {
          outline: 2px solid rgba(255, 255, 255, 0.88);
          outline-offset: 3px;
        }

        .nav-links {
          display: flex;
          position: fixed;
          z-index: 80;
          inset: 0;
          width: 100vw;
          height: 100dvh;
          min-height: 100svh;
          flex-direction: column;
          align-items: stretch;
          justify-content: center;
          gap: 0;
          padding:
            max(124px, calc(env(safe-area-inset-top) + 108px))
            max(28px, calc((100vw - 660px) / 2))
            max(54px, calc(env(safe-area-inset-bottom) + 42px));
          overflow-y: auto;
          border: 0;
          border-radius: 0;
          background:
            radial-gradient(circle at 84% 12%, rgba(255, 255, 255, 0.2), transparent 30%),
            radial-gradient(circle at 8% 90%, rgba(50, 52, 39, 0.14), transparent 34%),
            linear-gradient(145deg, #aaab94 0%, #a2a188 52%, #919379 100%);
          box-shadow:
            inset 0 1px 0 rgba(255, 255, 255, 0.24),
            inset 0 -1px 0 rgba(55, 57, 43, 0.12);
          backdrop-filter: none;
          clip-path: inset(0 0 100% 0);
          opacity: 0;
          visibility: hidden;
          pointer-events: none;
          transition:
            clip-path 520ms cubic-bezier(0.76, 0, 0.24, 1),
            opacity 260ms ease,
            visibility 0s linear 520ms;
        }

        .nav-links.is-open {
          clip-path: inset(0 0 0 0);
          opacity: 1;
          visibility: visible;
          pointer-events: auto;
          transition-delay: 0s;
        }

        .nav-links::after {
          content: "Casa de Milla · Kapolcs";
          position: absolute;
          right: 0;
          bottom: max(22px, env(safe-area-inset-bottom));
          left: 0;
          color: rgba(255, 255, 255, 0.68);
          font-size: 0.68rem;
          font-weight: 700;
          letter-spacing: 0.2em;
          text-align: center;
          text-transform: uppercase;
        }

        .nav-links a {
          display: grid;
          grid-template-columns: 38px minmax(0, 1fr);
          align-items: center;
          gap: 12px;
          width: min(610px, 100%);
          margin: 0 auto;
          padding: 19px 4px;
          border-bottom: 1px solid rgba(255, 255, 255, 0.26);
          border-radius: 0;
          color: #ffffff;
          background: transparent;
          font-family: "Cormorant Garamond", Georgia, serif;
          font-size: clamp(2.2rem, 7vw, 3.4rem);
          font-weight: 600;
          line-height: 1;
          letter-spacing: -0.025em;
          opacity: 0;
          transform: translateY(18px);
          transition:
            color 180ms ease,
            background-color 180ms ease,
            padding-left 180ms ease,
            opacity 360ms ease,
            transform 360ms ease;
        }

        .nav-links a::before {
          color: rgba(255, 255, 255, 0.58);
          font-family: "Manrope", sans-serif;
          font-size: 0.68rem;
          font-weight: 700;
          line-height: 1;
          letter-spacing: 0.14em;
        }

        .nav-links a:nth-child(1)::before {
          content: "01";
        }

        .nav-links a:nth-child(2)::before {
          content: "02";
        }

        .nav-links a:nth-child(3)::before {
          content: "03";
        }

        .nav-links a:nth-child(4)::before {
          content: "04";
        }

        .nav-links a:nth-child(5)::before {
          content: "05";
        }

        .nav-links.is-open a {
          opacity: 1;
          transform: translateY(0);
        }

        .nav-links.is-open a:nth-child(1) {
          transition-delay: 140ms;
        }

        .nav-links.is-open a:nth-child(2) {
          transition-delay: 190ms;
        }

        .nav-links.is-open a:nth-child(3) {
          transition-delay: 240ms;
        }

        .nav-links.is-open a:nth-child(4) {
          transition-delay: 290ms;
        }

        .nav-links.is-open a:nth-child(5) {
          transition-delay: 340ms;
        }

        .nav-links a:hover,
        .nav-links a:focus-visible {
          padding-left: 12px;
          color: #ffffff;
          background: rgba(255, 255, 255, 0.08);
          outline: none;
        }

        .nav > .glass-btn {
          position: relative;
          z-index: 82;
          transition:
            color 220ms ease,
            background 220ms ease,
            border-color 220ms ease,
            box-shadow 220ms ease;
        }

        body.menu-open .menu-toggle {
          background: rgba(255, 255, 255, 0.14);
          border-color: rgba(255, 255, 255, 0.58);
        }

        body.menu-open .nav > .glass-btn {
          color: #74765f;
          background: rgba(255, 255, 255, 0.94);
          border-color: rgba(255, 255, 255, 0.72);
          box-shadow:
            inset 0 1px 0 rgba(255, 255, 255, 0.9),
            0 12px 30px rgba(70, 72, 55, 0.16);
        }

        .proof-card {
          flex-basis: calc((100% - 40px) / 3);
        }

        .proof-shell {
          width: calc(100% - 88px);
        }

        #proof-prev {
          left: -54px;
        }

        #proof-next {
          right: -54px;
        }

        .pricing-layout {
          gap: 24px;
        }

        .area-section {
          padding: 78px 0 86px;
        }

        .area-head {
          margin-bottom: 28px;
        }

        .area-head h2 {
          font-size: clamp(2.55rem, 7vw, 3.8rem);
          line-height: 1;
        }

        .area-board {
          min-height: 0;
          padding: 0;
          border-radius: 0;
        }

        .area-map {
          position: relative;
          left: auto;
          top: auto;
          width: calc(100% + 28px);
          aspect-ratio: 3 / 2;
          margin: 0 -14px 22px;
          overflow: visible;
          border: 0;
          border-radius: 0;
          background: transparent;
          transform: none;
        }

        .area-map-art {
          -webkit-mask-image: radial-gradient(ellipse closest-side at 50% 50%, #000 0 56%, rgba(0, 0, 0, 0.9) 70%, rgba(0, 0, 0, 0.45) 86%, transparent 100%);
          mask-image: radial-gradient(ellipse closest-side at 50% 50%, #000 0 56%, rgba(0, 0, 0, 0.9) 70%, rgba(0, 0, 0, 0.45) 86%, transparent 100%);
        }

        .area-connectors {
          display: none;
        }

        .area-card-list {
          position: relative;
          z-index: 6;
          inset: auto;
          display: flex;
          gap: 20px;
          overflow-x: auto;
          padding: 30px 10px 24px;
          scroll-padding-inline: 10px;
          scroll-snap-type: x mandatory;
          scrollbar-width: none;
          -webkit-overflow-scrolling: touch;
          pointer-events: auto;
        }

        .area-card-list::-webkit-scrollbar {
          display: none;
        }

        .area-card,
        .area-card--wine {
          --card-shift-x: 0;
          position: relative;
          left: auto;
          right: auto;
          top: auto;
          bottom: auto;
          flex: 0 0 100%;
          width: 100%;
          min-height: 206px;
          padding: 18px;
          grid-template-columns: minmax(0, 1fr) 112px;
          scroll-snap-align: start;
          scroll-snap-stop: always;
          box-shadow: none;
          transform: none;
        }

        .area-card:hover,
        .area-card:focus-within,
        .area-card.is-active {
          box-shadow: none;
          transform: translateY(-3px);
        }

        .area-card--wine .area-card-body {
          padding: 0;
        }

        .area-card--wine .area-icon {
          float: none;
          margin: 0 0 8px;
        }

        .area-card--wine .area-card-media {
          width: auto;
          min-height: 160px;
          max-height: none;
        }

        .area-card-anchor {
          display: none;
        }

        .area-mobile-nav {
          position: relative;
          z-index: 7;
          display: flex;
          width: min(260px, 100%);
          margin: 4px auto 0;
          align-items: center;
          justify-content: space-between;
          gap: 18px;
        }

        .area-mobile-arrow {
          display: inline-grid;
          width: 48px;
          height: 48px;
          flex: 0 0 48px;
          padding: 0;
          place-items: center;
          border: 1px solid rgba(93, 93, 64, 0.3);
          border-radius: 50%;
          color: var(--area-ink);
          background: rgba(255, 253, 247, 0.82);
          box-shadow: 0 10px 24px rgba(62, 55, 43, 0.08);
          font-size: 1.2rem;
          cursor: pointer;
          transition: transform 180ms ease, border-color 180ms ease, background 180ms ease, opacity 180ms ease;
        }

        .area-mobile-arrow:hover,
        .area-mobile-arrow:focus-visible {
          border-color: rgba(170, 96, 53, 0.64);
          background: #fffdf7;
          outline: 0;
          transform: translateY(-2px);
        }

        .area-mobile-arrow:disabled {
          opacity: 0.34;
          cursor: default;
          transform: none;
        }

        .area-mobile-position {
          display: inline-flex;
          align-items: baseline;
          gap: 7px;
          color: rgba(65, 67, 47, 0.58);
          font-size: 0.74rem;
          font-weight: 700;
          letter-spacing: 0.12em;
        }

        .area-mobile-position [data-area-current] {
          color: var(--area-ink);
          font-family: "Cormorant Garamond", Georgia, serif;
          font-size: 1.42rem;
          font-weight: 600;
          letter-spacing: 0;
        }
      }

      @media (max-width: 720px) {
        .section {
          padding: 84px 0;
        }

        .gallery-section {
          padding: 76px 0 82px;
        }

        .gallery-head {
          margin-bottom: 30px;
        }

        .gallery-flourish {
          margin-bottom: 13px;
        }

        .gallery-flourish::before,
        .gallery-flourish::after {
          width: 30px;
        }

        .gallery-head h2 {
          max-width: 11ch;
          margin-inline: auto;
          font-size: clamp(2.85rem, 13vw, 3.65rem);
          line-height: 0.98;
        }

        .gallery-head p {
          margin-top: 14px;
          font-size: 0.95rem;
        }

        .gallery-stage {
          aspect-ratio: 1 / 1;
          border-radius: 24px;
        }

        .gallery-controls {
          right: 14px;
          bottom: 14px;
        }

        .gallery-arrow {
          width: 46px;
          height: 46px;
        }

        .gallery-thumbs {
          grid-auto-columns: 124px;
          grid-auto-rows: 88px;
          gap: 8px;
        }

        .gallery-thumb {
          border-radius: 15px;
        }

        .hero {
          min-height: clamp(640px, 86svh, 760px);
        }

        .topbar {
          padding-top: 18px;
        }

        .language-switch {
          width: 42px;
          min-width: 42px;
          height: 42px;
        }

        .language-switch-flag {
          font-size: 1.12rem;
        }

        @media (max-width: 380px) {
          .brand-mark {
            width: 62px;
          }

          .nav {
            gap: 7px;
          }

          .language-switch {
            width: 36px;
            min-width: 36px;
            height: 36px;
          }

          .nav > .glass-btn {
            min-height: 44px;
            padding: 0 12px;
            font-size: 0.86rem;
          }
        }

        .hero-copy h1 {
          font-family: "Open Sans", sans-serif;
          font-size: clamp(2.2rem, 8vw, 2.8125rem);
          font-weight: 700;
          line-height: 1.16;
          letter-spacing: -0.04em;
          max-width: 18ch;
        }

        .hero::after {
          height: 56px;
          clip-path: polygon(0 14px, 100% 0, 100% 100%, 0 100%);
        }

        .hero-scroll {
          bottom: 70px;
        }

        .hero-actions {
          width: 100%;
          flex-direction: column;
        }

        .hero-actions a,
        .cta-card .glass-btn,
        .booking-actions .primary-btn,
        .booking-actions .secondary-btn {
          width: 100%;
        }

        .proof-card {
          flex-basis: 100%;
          min-height: 455px;
          transform: none;
          opacity: 1;
        }

        .proof-card.is-focus {
          transform: none;
        }

        .proof-glass p {
          font-size: 0.95rem;
          line-height: 1.55;
        }

        .hero-copy {
          justify-items: center;
          padding-top: 24px;
          padding-bottom: 92px;
          text-align: center;
        }

        .hero-copy-inner {
          width: min(560px, 100%);
          justify-items: center;
          gap: 16px;
          transform: translateY(-8px);
          margin-left: 0;
          padding-left: 0;
        }

        .hero-copy-inner::before {
          display: none;
        }

        .hero-actions {
          justify-content: center;
          gap: 12px;
        }

        .hero-badge {
          padding: 11px 16px;
          font-size: 0.72rem;
          letter-spacing: 0.14em;
        }

        .nav > .glass-btn {
          width: auto;
          flex: 0 0 auto;
          min-height: 50px;
          padding: 0 18px;
          font-size: 0.95rem;
        }

        .proof-section {
          padding: 68px 0 62px;
        }

        .proof-section .section-head {
          margin-bottom: 30px;
        }

        .proof-section .section-head h2 {
          max-width: 18ch;
          font-size: 2rem;
        }

        .proof-shell {
          width: 100%;
        }

        .proof-track-wrap {
          padding: 8px 0 14px;
        }

        .proof-controls {
          display: flex;
          flex-direction: column;
          align-items: center;
          gap: 18px;
        }

        .proof-nav {
          display: flex;
          gap: 12px;
          order: 2;
        }

        .proof-arrow {
          position: static;
          width: 50px;
          height: 50px;
          transform: none;
        }

        .proof-arrow:hover:not(:disabled) {
          transform: scale(1.04);
        }

        .proof-dots {
          order: 1;
          margin-top: 4px;
        }

        .amenities-grid {
          grid-template-columns: 1fr;
        }

        .amenities-section {
          padding: 72px 0 78px;
        }

        .amenities-head {
          margin-bottom: 30px;
        }

        .amenities-kicker::before,
        .amenities-kicker::after {
          width: 32px;
        }

        .amenity-card-body {
          min-height: 100px;
        }

        .side-box {
          border-radius: 22px;
        }

        .side-box {
          padding: 24px 20px 24px;
        }

        .pricing-showcase-head {
          margin-bottom: 32px;
        }

        .pricing-showcase-head h2 {
          font-size: clamp(3.25rem, 15vw, 4.25rem);
        }

        .pricing-showcase-kicker {
          gap: 8px;
          font-size: 0.68rem;
          letter-spacing: 0.14em;
        }

        .pricing-showcase-kicker img {
          width: 28px;
          height: 28px;
        }

        .pricing-season-grid {
          grid-template-columns: 1fr;
          gap: 16px;
        }

        .season-price-card--winter {
          width: 100%;
          grid-column: auto;
        }

        .season-price-card {
          max-width: 540px;
          width: 100%;
          margin-inline: auto;
          border-radius: 22px;
        }

        .season-price-visual {
          min-height: 156px;
        }

        .season-price-body {
          padding-top: 20px;
        }

        .season-price-body h3 {
          font-size: 2rem;
        }

        .pricing-mini-facts {
          max-width: 540px;
          grid-template-columns: 1fr;
          gap: 10px;
          margin-top: 24px;
        }

        .booking-header {
          margin-bottom: 24px;
        }

        .booking-header h2 {
          font-size: clamp(2rem, 8vw, 2.7rem);
        }

        .booking-field-grid {
          grid-template-columns: 1fr;
        }

        .booking-range-fallback {
          grid-template-columns: 1fr;
        }

        .booking-actions {
          grid-template-columns: 1fr;
        }

        .booking-summary-card {
          min-height: 0;
          padding: 26px 22px;
        }

        .booking-summary-price {
          font-size: clamp(2.4rem, 12vw, 3.4rem);
        }

        .booking-panel {
          padding: 24px;
        }

        .area-section {
          padding: 68px 0 76px;
        }

        .area-head {
          width: 100%;
          margin-bottom: 24px;
        }

        .area-head h2 {
          font-size: clamp(2.35rem, 12vw, 3.15rem);
          line-height: 0.98;
        }

        .area-head p {
          width: 100%;
          max-width: none;
          margin-top: 13px;
          font-size: 0.88rem;
          line-height: 1.62;
        }

        .area-divider {
          width: min(290px, 84%);
          grid-template-columns: 1fr 76px 1fr;
          gap: 12px;
          margin-top: 17px;
        }

        .area-divider img {
          width: 76px;
          height: 48px;
          opacity: 0.82;
        }

        .area-board {
          padding: 0;
          border-radius: 0;
        }

        .area-map {
          width: calc(100% + 36px);
          aspect-ratio: 1 / 1.04;
          margin: 0 -18px 18px;
          border-radius: 0;
        }

        .area-map-art {
          object-position: 58% center;
        }

        .area-marker {
          grid-template-columns: 38px;
          min-height: 46px;
          padding: 4px;
        }

        .area-marker-icon {
          width: 38px;
          height: 38px;
        }

        .area-marker-icon img {
          width: 30px;
          height: 30px;
        }

        .area-marker-label {
          position: absolute;
          left: 50%;
          top: calc(100% + 5px);
          padding: 4px 8px;
          border-radius: 999px;
          background: rgba(255, 253, 247, 0.88);
          box-shadow: 0 4px 12px rgba(62, 55, 43, 0.08);
          font-size: 0.82rem;
          opacity: 0;
          pointer-events: none;
          transform: translateX(-50%) translateY(-2px) scale(0.94);
          transition: opacity 180ms ease, transform 180ms ease;
        }

        .area-marker:hover .area-marker-label,
        .area-marker:focus-visible .area-marker-label,
        .area-marker.is-active .area-marker-label {
          opacity: 1;
          transform: translateX(-50%) translateY(0) scale(1);
        }

        .area-card-list {
          gap: 20px;
          padding-top: 30px;
        }

        .area-card,
        .area-card--wine {
          flex-basis: 100%;
          min-height: 202px;
          grid-template-columns: minmax(0, 1fr) 96px;
          gap: 12px;
          padding: 16px;
        }

        .area-card h3 {
          font-size: 1.65rem;
          line-height: 1.04;
        }

        .area-card p {
          font-size: 0.78rem;
          line-height: 1.58;
        }

        .area-card-media,
        .area-card--wine .area-card-media {
          min-height: 154px;
        }

        .cta-card {
          width: 100%;
          padding: 0;
          text-align: left;
        }

        .cta-strip {
          background: #74775f;
        }

        .cta-strip-media {
          object-position: 72% center;
        }

        .cta-strip-overlay {
          background:
            linear-gradient(90deg, rgba(17, 18, 14, 0.82), rgba(17, 18, 14, 0.58)),
            linear-gradient(180deg, rgba(12, 13, 10, 0.12), rgba(12, 13, 10, 0.42));
        }

        .cta-strip::before {
          top: -46px;
          left: -72px;
          width: 190px;
          height: 190px;
          opacity: 0.08;
        }

        .cta-strip::after {
          display: none;
        }

        .cta-shell {
          min-height: 630px;
          padding: 72px 0 68px;
        }

        .cta-card .eyebrow {
          margin-bottom: 18px;
          font-size: 0.7rem;
        }

        .cta-card h2 {
          max-width: 13ch;
          font-size: clamp(2.75rem, 12.8vw, 3.4rem);
          line-height: 1.03;
        }

        .cta-card h2 span {
          display: inline;
        }

        .cta-card h2 span::after {
          content: " ";
        }

        .cta-card h2 span:last-child::after {
          content: "";
        }

        .cta-card p {
          max-width: 31ch;
          margin-top: 22px;
          font-size: 0.98rem;
          line-height: 1.65;
        }

        .cta-card .glass-btn {
          width: auto;
          min-height: 60px;
          margin-top: 28px;
          padding: 0 30px;
          font-size: 1.18rem;
        }
      }

      @media (prefers-reduced-motion: reduce) {
        .nav-links,
        .nav-links a,
        .menu-toggle,
        .nav > .glass-btn,
        .language-switch,
        .gallery-backdrop,
        .gallery-main,
        .gallery-arrow,
        .gallery-thumb,
        .gallery-thumb img {
          transition-duration: 0.01ms !important;
        }
      }
    
.hero{background:#20251f!important}.hero-media{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover}.hero-media-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(22,23,18,.93) 0%,rgba(27,29,23,.8) 26%,rgba(30,31,25,.46) 48%,rgba(18,20,17,.18) 73%,rgba(15,16,13,.38) 100%),linear-gradient(180deg,rgba(8,10,10,.58) 0%,rgba(16,17,14,.08) 43%,rgba(10,11,9,.62) 100%);pointer-events:none}.hero::before{z-index:1}.brand-mark-image{display:block;width:100%;height:auto;object-fit:contain}.footer-privacy-notice{margin:8px 0 0;color:rgba(255,255,255,.72);font-size:12px}.wp-site-blocks{padding:0}.cdm-equipment-details{margin-top:40px;padding:32px;border:1px solid #c9cbbc;border-radius:16px;background:#f7f5ed}.cdm-equipment-details h3{margin:0 0 22px;font-size:26px}.cdm-equipment-details ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 40px;padding-left:20px;margin:0;line-height:1.6}.cdm-equipment-details li{padding-left:4px}@media(max-width:640px){.cdm-equipment-details{padding:24px}.cdm-equipment-details ul{grid-template-columns:1fr}}
/* Elementor wrappers do not add space to the approved section composition. */
body.casa-elementor-page { margin:0; color:var(--text); font-family:"Manrope",sans-serif; }
.casa-elementor-page .casa-elementor-root { display:block; width:100%; max-width:none; margin:0; padding:0; gap:0; }
.casa-elementor-page .casa-elementor-root > .elementor-element { width:100%; margin-block:0; }
.casa-elementor-page .casa-elementor-root > .elementor-element > .elementor-widget-container { margin:0; }
.casa-elementor-page img.amenities-sprig { height:20px; }
/* Keep each photograph's approved crop instead of Elementor's generic height:auto. */
.casa-elementor-page img.hero-media,
.casa-elementor-page img.proof-card-media,
.casa-elementor-page img.area-map-art,
.casa-elementor-page img.cta-strip-media,
.casa-elementor-page img.gallery-main { height:100%; }
.casa-elementor-page img.gallery-backdrop { height:118%; }
/* Match the booking layout despite Elementor's generic figure reset. */
@media (max-width:980px) { .casa-elementor-page .elementor .elementor-widget-casa-booking figure.cdm-booking__photo { margin-top:-26px; } }
@media (max-width:680px) { .casa-elementor-page .elementor .elementor-widget-casa-booking figure.cdm-booking__photo { margin-top:-14px; } }
.casa-elementor-page.elementor-editor-active .reveal { opacity:1; transform:none; }
.casa-elementor-page.elementor-editor-active .cdm-booking form { pointer-events:none; }
.casa-elementor-page.elementor-editor-active .elementor-widget-casa-booking::after { content:"A foglalási űrlap szerkesztői előnézetben nem küld foglalást."; display:block; padding:12px; background:#f7f5ed; text-align:center; font:14px sans-serif; }
