/* ============================================================
   OSPA Rishon LeZion - the new Bento design (default; the previous design is at ?design=1)
   Loaded after main.css and scoped to body.rz, so no other page is affected.
   Language: Bento. Soft rounded tiles on a warm canvas, Google Sans,
   the logo's own charcoal + sand (dark tiles are a warm espresso-charcoal, never blue),
   and the golden Japanese water arch as the living brand motif.
   ============================================================ */

.rz {
    --rz-bg:        #f6f2ea;
    --rz-paper:     #fffdfa;
    --rz-sand:      #ebe4d6;
    --rz-sand-deep: #dcd6c8;
    --rz-line:      rgba(31, 29, 26, 0.08);
    --rz-ink:       #1f1d1a;
    --rz-body:      #55504a;
    --rz-muted:     #7d776d;
    --rz-gold:      #d2a866;
    --rz-gold-soft: #ecd3a4;
    --rz-gold-deep: #8a6736;
    --rz-sea:       #2a2521; /* dark tile tone: warm charcoal from the logo (the name is historical) */
    --rz-sea-deep:  #191613;
    --rz-water:     #f4ead6;
    --rz-on-dark:   rgba(240, 236, 226, 0.82);
    --rz-r-tile:    32px;
    --rz-r-inner:   22px;
    --rz-gap:       16px;
    --rz-header-h:  68px;
    --rz-section:   96px;
    --rz-shadow:    none; /* boxes are flat: no shadows on tiles, tables, FAQ items or gallery photos */
    --rz-ease:      cubic-bezier(0.16, 1, 0.3, 1);

    background: var(--rz-bg);
    color: var(--rz-body);
    font-family: var(--font-sans);
    font-size: 17px;
    line-height: 1.7;
}
.rz ::selection { background: var(--rz-sea); color: #fff; }
.rz :focus-visible { outline: 2px solid var(--rz-gold-deep); outline-offset: 3px; border-radius: 10px; }
html:has(body.rz) { scroll-padding-top: 104px; }

.rz-wrap { width: 100%; max-width: 1280px; margin-inline: auto; padding-inline: 24px; }

/* ---------- Type ---------- */
/* main.css colours every paragraph; inside the new tiles text follows its tile instead */
:where(.rz) p { color: inherit; }
.rz h1, .rz h2, .rz h3 { color: var(--rz-ink); font-weight: 600; text-wrap: balance; }
.rz-section h2,
.rz-cta h2 { font-size: clamp(28px, 3.3vw, 44px); line-height: 1.14; letter-spacing: -1.1px; }
.rz-eyebrow,
.rz-chip {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
    padding: 7px 16px;
    border-radius: 999px;
    background: var(--rz-sand);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
    color: var(--rz-gold-deep);
}
.rz-tile--sand .rz-eyebrow { background: var(--rz-paper); }
.rz-eyebrow--light,
.rz-chip--light { background: rgba(255, 255, 255, 0.1); color: var(--rz-gold-soft); backdrop-filter: blur(6px); }
.rz-lead { margin-top: 12px; font-size: 19px; color: var(--rz-muted); }
.rz-kicker { font-size: 13px; font-weight: 600; color: var(--rz-gold-deep); }

.rz-pulse { position: relative; width: 8px; height: 8px; border-radius: 50%; background: var(--rz-gold-soft); flex: none; }
.rz-pulse::after {
    content: "";
    position: absolute;
    inset: -5px;
    border-radius: 50%;
    box-shadow: 0 0 0 1px var(--rz-gold-soft);
    opacity: 0;
    animation: rz-pulse 2.6s ease-out infinite;
}
@keyframes rz-pulse {
    0%   { transform: scale(0.5); opacity: 0.9; }
    100% { transform: scale(1.5); opacity: 0; }
}

/* ---------- Buttons ---------- */
.rz-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 48px;
    padding: 12px 26px;
    border: none;
    border-radius: 999px;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.2;
    text-align: center;
    cursor: pointer;
    transition: background-color 220ms ease, color 220ms ease,
                transform 320ms var(--rz-ease), box-shadow 320ms var(--rz-ease);
}
.rz-btn:hover { transform: translateY(-2px); }
.rz-btn:active { transform: translateY(0) scale(0.98); }
.rz-btn--lg { min-height: 56px; padding: 14px 32px; font-size: 16px; }
.rz-btn--sm { min-height: 42px; padding: 9px 20px; font-size: 14px; }
.rz-btn--block { width: 100%; }
.rz-btn--dark { background: var(--rz-ink); color: #fff; }
.rz-btn--dark:hover { background: #3d362f; }
.rz-btn--gold { background: linear-gradient(135deg, #f1dab0, var(--rz-gold)); color: var(--rz-ink); }
.rz-btn--gold:hover { filter: brightness(1.04); }
.rz-btn--glass { background: rgba(255, 255, 255, 0.14); color: #fff; backdrop-filter: blur(6px); }
.rz-btn--glass:hover { background: rgba(255, 255, 255, 0.24); }
.rz-btn--line { color: var(--rz-ink); background: var(--rz-sand); }
.rz-btn--line:hover { background: var(--rz-sand-deep); }
.rz-btn--soft { background: var(--rz-sand); color: var(--rz-ink); }
.rz-btn--soft:hover { background: var(--rz-ink); color: #fff; }
.rz-arrow { width: 16px; height: 16px; transition: transform 320ms var(--rz-ease); }
.rz-btn:hover .rz-arrow { transform: translateX(-4px); }

.rz-tag {
    display: inline-flex;
    align-items: center;
    padding: 4px 11px;
    border-radius: 999px;
    background: var(--rz-sand);
    font-size: 11px;
    font-weight: 600;
    color: var(--rz-gold-deep);
    vertical-align: middle;
}
.rz-tag--open { color: #1f6a47; background: #dff3e7; }

.rz-icon {
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 16px;
    background: var(--rz-sand);
    color: var(--rz-gold-deep);
    transition: transform 420ms var(--rz-ease), background-color 220ms ease, color 220ms ease;
}
.rz-tile--sand .rz-icon { background: var(--rz-paper); }
.rz-tile--sea .rz-icon { background: rgba(255, 255, 255, 0.1); color: var(--rz-gold-soft); }
.rz-tile:hover > .rz-icon { transform: rotate(-8deg) scale(1.06); }

/* ---------- Bento tiles ---------- */
.rz-bento { display: grid; gap: var(--rz-gap); list-style: none; }
.rz-tile {
    position: relative;
    overflow: hidden;
    padding: 36px;
    border-radius: var(--rz-r-tile);
    background: var(--rz-paper);
    box-shadow: var(--rz-shadow);
    transition: transform 520ms var(--rz-ease), box-shadow 520ms var(--rz-ease);
}
.rz-tile--sand { background: var(--rz-sand); box-shadow: none; }
.rz-tile--sea {
    background: linear-gradient(150deg, #3d362f 0%, var(--rz-sea) 45%, var(--rz-sea-deep) 100%);
    color: var(--rz-on-dark);
}
.rz-tile--night {
    background:
        radial-gradient(420px 320px at 50% 38%, rgba(210, 168, 102, 0.2), transparent 70%),
        linear-gradient(180deg, #2e2823 0%, var(--rz-sea-deep) 100%);
    color: var(--rz-on-dark);
}
.rz .rz-tile--sea h1, .rz .rz-tile--sea h2, .rz .rz-tile--sea h3,
.rz .rz-tile--night h2 { color: #fff; }
.rz-tile--photo { padding: 0; }
.rz-tile--photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 1200ms var(--rz-ease); }
.rz-tile--photo:hover img { transform: scale(1.05); }

/* Cursor spotlight: a soft warm light that follows the pointer across a tile */
.rz-tile[data-glow]::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: radial-gradient(360px circle at var(--mx, 50%) var(--my, 50%), rgba(210, 168, 102, 0.2), transparent 65%);
    opacity: 0;
    transition: opacity 420ms ease;
}
.rz-tile--sea[data-glow]::before { background: radial-gradient(380px circle at var(--mx, 50%) var(--my, 50%), rgba(244, 234, 214, 0.2), transparent 65%); }
.rz-tile[data-glow]:hover::before { opacity: 1; }
.rz-tile[data-glow] > * { position: relative; }
@media (hover: hover) {
    .rz-tile[data-glow]:hover { transform: translateY(-4px); }
}

/* ---------- Header: a floating pill ---------- */
.rz-header {
    position: sticky;
    top: 12px;
    z-index: 100;
    width: calc(100% - 32px);
    margin-top: 12px;
    max-width: 1232px;
    margin-inline: auto;
    border-radius: 999px;
    background: var(--rz-paper);
    box-shadow: 0 1px 2px rgba(31, 29, 26, 0.04), 0 10px 30px rgba(31, 29, 26, 0.06);
    transition: box-shadow 320ms ease;
}
.rz-header.is-stuck { box-shadow: 0 16px 40px rgba(31, 29, 26, 0.12); }
.rz-header-inner { display: flex; align-items: center; gap: 24px; height: var(--rz-header-h); padding-inline: 12px 24px; }
.rz-logo { flex: none; }
.rz-logo img {
    width: auto;
    height: 38px;
    /* The mark and the letters fill only the top three quarters of the file (the rest is the tail of
       the "p"), so the image is nudged down to centre what the eye sees, not the file's box */
    transform: translateY(11%);
}
.rz-nav { flex: 1; display: flex; justify-content: center; }
.rz-nav-list { display: flex; align-items: center; gap: 2px; list-style: none; }
.rz-nav-list > li { position: relative; }
.rz-nav-list > li > a,
.rz-nav-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 15px;
    border-radius: 999px;
    font-size: 15px;
    font-weight: 500;
    color: var(--rz-body);
    background: none;
    transition: color 160ms ease, background-color 160ms ease;
}
.rz-nav-list > li > a:hover,
.rz-nav-group:hover > .rz-nav-toggle,
.rz-nav-group.is-open > .rz-nav-toggle { background: var(--rz-sand); color: var(--rz-ink); }
.rz-nav-caret { width: 14px; height: 14px; transition: transform 240ms var(--rz-ease); }
.rz-nav-group.is-open .rz-nav-caret,
.rz-nav-group:hover .rz-nav-caret { transform: rotate(180deg); }
.rz-nav-menu {
    position: absolute;
    top: calc(100% + 16px);
    inset-inline-start: -12px;
    min-width: 310px;
    padding: 10px;
    list-style: none;
    border-radius: 26px;
    background: var(--rz-paper);
    box-shadow: 0 30px 70px rgba(31, 29, 26, 0.16);
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px) scale(0.98);
    transform-origin: top;
    transition: opacity 240ms ease, transform 320ms var(--rz-ease), visibility 240ms;
}
.rz-nav-menu::before { content: ""; position: absolute; inset-inline: 0; top: -20px; height: 20px; }
.rz-nav-menu a { display: block; padding: 12px 16px; border-radius: 18px; transition: background-color 160ms ease; }
.rz-nav-menu a:hover,
.rz-nav-menu a[aria-current="page"] { background: var(--rz-sand); }
.rz-nav-menu-title { display: flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 600; color: var(--rz-ink); }
.rz-nav-menu-sub { display: block; margin-top: 2px; font-size: 13px; line-height: 1.45; color: var(--rz-muted); }
.rz-nav-mobile-foot { display: none; }
.rz-header-actions { flex: none; display: flex; align-items: center; gap: 8px; margin-inline-end: -12px; }
.rz-burger { display: none; }

@media (min-width: 1100px) {
    .rz-nav-group:hover .rz-nav-menu,
    .rz-nav-group:focus-within .rz-nav-menu,
    .rz-nav-group.is-open .rz-nav-menu { opacity: 1; visibility: visible; transform: translateY(0) scale(1); }
}

@media (max-width: 1099px) {
    .rz { --rz-header-h: 60px; }
    .rz-header { top: 8px; width: calc(100% - 24px); margin-top: 8px; }
    /* The menu circle keeps the same 8px gap from the pill's edge as it has above and below */
    .rz-header-inner { justify-content: space-between; gap: 12px; padding-inline: 16px 8px; }
    .rz-header-actions { margin-inline-end: 0; }
    .rz-logo img { height: 32px; }
    .rz-header-gift { display: none; }
    .rz-burger {
        display: inline-flex;
        flex-direction: column;
        justify-content: center;
        gap: 5px;
        width: 44px;
        height: 44px;
        padding: 0 12px;
        border-radius: 50%;
        background: var(--rz-sand);
    }
    .rz-burger span { display: block; height: 2px; border-radius: 2px; background: var(--rz-ink); transition: transform 320ms var(--rz-ease), opacity 200ms ease; }
    .rz-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
    .rz-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
    .rz-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

    .rz-nav {
        position: fixed;
        inset: 0;
        z-index: -1;
        display: block;
        padding: 96px 20px 32px;
        overflow-y: auto;
        background: var(--rz-bg);
        opacity: 0;
        visibility: hidden;
        transition: opacity 280ms ease, visibility 280ms;
    }
    .rz-nav.is-open { opacity: 1; visibility: visible; }
    .rz-nav-list { flex-direction: column; align-items: stretch; gap: 8px; }
    .rz-nav-list > li { border-radius: 24px; background: var(--rz-paper); }
    .rz-nav-list > li > a,
    .rz-nav-toggle { width: 100%; justify-content: space-between; padding: 18px 22px; border-radius: 24px; font-size: 19px; font-weight: 600; color: var(--rz-ink); }
    .rz-nav-list > li > a:hover,
    .rz-nav-group:hover > .rz-nav-toggle,
    .rz-nav-group.is-open > .rz-nav-toggle { background: none; }
    .rz-nav-group:hover .rz-nav-caret { transform: none; }
    .rz-nav-group.is-open .rz-nav-caret { transform: rotate(180deg); }
    .rz-nav-caret { width: 18px; height: 18px; }
    .rz-nav-menu {
        position: static;
        display: none;
        min-width: 0;
        padding: 0 10px 12px;
        box-shadow: none;
        background: none;
        opacity: 1;
        visibility: visible;
        transform: none;
    }
    .rz-nav-menu::before { display: none; }
    .rz-nav-group.is-open .rz-nav-menu { display: block; }
    .rz-nav-mobile-foot { display: grid; gap: 10px; margin-top: 20px; }
    .rz-nav-mobile-foot p { display: flex; align-items: center; justify-content: center; gap: 6px; margin-top: 8px; font-size: 14px; color: var(--rz-muted); }
}

/* ---------- Hero bento ---------- */
.rz-hero { padding-block: 20px 0; }
.rz-hero-bento { grid-template-columns: repeat(12, minmax(0, 1fr)); }
.rz-hero-copy {
    grid-column: 1 / span 7;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-height: 440px;
    padding: 56px;
}
.rz-hero-copy > * { position: relative; }
/* A treatment video plays quietly behind the headline; the veil keeps the text readable */
.rz-hero-copy > .rz-hero-media { position: absolute; inset: 0; pointer-events: none; }
.rz-hero-video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
    /* The footage is lit with blue LEDs; warm it so it sits inside the brand's charcoal-sand-gold palette */
    filter: grayscale(0.55) sepia(0.5) saturate(0.85) brightness(0.92);
    animation: rz-video-in 1400ms ease both;
}
@keyframes rz-video-in { from { opacity: 0; transform: scale(1.06); } to { opacity: 1; transform: scale(1); } }
.rz-hero-copy > .rz-hero-veil {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(270deg, rgba(25, 22, 19, 0.9) 0%, rgba(25, 22, 19, 0.72) 48%, rgba(25, 22, 19, 0.3) 100%),
        linear-gradient(180deg, rgba(25, 22, 19, 0.15) 30%, rgba(25, 22, 19, 0.78) 100%);
}
.rz-hero-title { font-size: clamp(36px, 4.5vw, 62px); line-height: 1.06; letter-spacing: -1.8px; }
.rz-hero-title em {
    font-style: normal;
    background: linear-gradient(120deg, #f6e3bd, var(--rz-gold));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
/* Benefit tags, always drifting: two rows moving in opposite directions */
.rz-tags {
    align-self: stretch;
    display: grid;
    gap: 10px;
    margin: 28px -56px 0;
    direction: ltr;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 9%, #000 91%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 9%, #000 91%, transparent);
}
.rz-tags-row { display: flex; width: max-content; animation: rz-marquee 38s linear infinite; }
.rz-tags-row--reverse { animation-direction: reverse; animation-duration: 46s; }
.rz-tags:hover .rz-tags-row { animation-play-state: paused; }
@keyframes rz-marquee { to { transform: translateX(-50%); } }
.rz-tags-track { display: flex; gap: 10px; padding-inline-end: 10px; list-style: none; direction: rtl; }
.rz-tagchip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 18px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.13);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    font-size: 15px;
    font-weight: 500;
    line-height: 1.2;
    white-space: nowrap;
    color: #fff;
}
.rz-tagchip svg { flex: none; color: var(--rz-gold-soft); }
.rz-tagchip--gold { background: linear-gradient(135deg, rgba(241, 218, 176, 0.95), rgba(210, 168, 102, 0.95)); color: var(--rz-ink); font-weight: 600; }
.rz-tagchip--gold svg { color: var(--rz-ink); }
.rz-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }

/* Hero calls to action: an arrow that keeps nudging, a slow shine, a gift that wiggles. No shadows, no borders. */
.rz-cta-main { position: relative; overflow: hidden; gap: 14px; padding-inline: 30px 8px; font-weight: 700; }
.rz-cta-main:hover { box-shadow: none; }
.rz-cta-label { position: relative; }
.rz-cta-arrow {
    position: relative;
    flex: none;
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--rz-ink);
    color: var(--rz-gold-soft);
    transition: transform 420ms var(--rz-ease), background-color 220ms ease;
}
.rz-cta-arrow svg { width: 20px; height: 20px; animation: rz-nudge 1.6s var(--rz-ease) infinite; }
@keyframes rz-nudge {
    0%, 100% { transform: translateX(3px); }
    50%      { transform: translateX(-4px); }
}
.rz-cta-main:hover .rz-cta-arrow { transform: scale(1.1); }
.rz-cta-main::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(105deg, transparent 38%, rgba(255, 255, 255, 0.65) 50%, transparent 62%);
    transform: translateX(-120%);
    animation: rz-shine 3.6s ease-in-out 1s infinite;
    pointer-events: none;
}
@keyframes rz-shine {
    0%, 55% { transform: translateX(-120%); }
    100%    { transform: translateX(120%); }
}
.rz-cta-gift { gap: 10px; }
.rz-cta-gift-icon { display: inline-flex; color: var(--rz-gold-soft); transform-origin: 50% 80%; animation: rz-wiggle 4s ease-in-out 1.5s infinite; }
@keyframes rz-wiggle {
    0%, 82%, 100% { transform: rotate(0); }
    86% { transform: rotate(-14deg) scale(1.12); }
    90% { transform: rotate(12deg) scale(1.12); }
    94% { transform: rotate(-8deg); }
    98% { transform: rotate(4deg); }
}

/* The Japanese water arch, with the opening countdown standing in its water */
.rz-hero-arch {
    grid-column: 8 / span 5;
    grid-row: 1 / span 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 36px 32px 32px;
    cursor: pointer;
    touch-action: pan-y;
    -webkit-tap-highlight-color: transparent;
}
.rz-open-head { display: grid; justify-items: center; gap: 6px; text-align: center; }
.rz-open-kicker { display: inline-flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 500; color: var(--rz-gold-soft); }
.rz-open-date { font-size: clamp(30px, 3vw, 42px); font-weight: 600; line-height: 1.1; letter-spacing: -1.2px; color: #fff; }
.rz-arch-stage { position: relative; width: 100%; display: flex; justify-content: center; padding-bottom: 34px; }
.rz-arch-svg { width: min(100%, 430px); height: auto; overflow: visible; animation: rz-float 7s ease-in-out infinite; }
@keyframes rz-float {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-8px); }
}
.rz-arch-ring { stroke-width: 11; stroke-linecap: round; }
.rz-arch-glow { stroke-width: 26; stroke-linecap: round; opacity: 0.28; filter: blur(12px); transition: opacity 500ms ease; }
.rz-arch-shine { stroke: rgba(255, 255, 255, 0.6); stroke-width: 2.5; stroke-linecap: round; }
.rz-stream-body { stroke: rgba(244, 234, 214, 0.14); stroke-width: 1.2; }
.rz-stream {
    stroke: rgba(255, 247, 232, 0.92);
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-dasharray: 9 15;
    animation: rz-flow var(--t, 1s) linear infinite;
    animation-delay: var(--d, 0s);
    transition: stroke-width 400ms ease;
}
@keyframes rz-flow { to { stroke-dashoffset: -48; } }
.rz-arch-ripples ellipse {
    fill: none;
    stroke: rgba(244, 234, 214, 0.55);
    stroke-width: 1.2;
    transform-box: fill-box;
    transform-origin: center;
    opacity: 0;
    animation: rz-ripple 3.3s ease-out infinite;
    animation-delay: var(--d, 0s);
}
@keyframes rz-ripple {
    0%   { transform: scale(0.4); opacity: 0.85; }
    100% { transform: scale(3.6); opacity: 0; }
}
[data-arch]:hover .rz-arch-glow,
[data-arch].is-boost .rz-arch-glow { opacity: 0.5; }
[data-arch].is-boost .rz-stream { stroke-width: 2.8; stroke-dasharray: 14 10; }
[data-arch].is-boost .rz-arch-ripples ellipse { animation-duration: 1.4s; }

/* The foot of the arch dissolves into the tile, so the countdown seems to rise out of the water */
.rz-arch-stage .rz-arch-svg {
    -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 54%, rgba(0, 0, 0, 0.35) 74%, transparent 90%);
    mask-image: linear-gradient(180deg, #000 0%, #000 54%, rgba(0, 0, 0, 0.35) 74%, transparent 90%);
}

/* Countdown: four glass tiles at the foot of the arch, the water falls onto them */
.rz-count-timer {
    position: absolute;
    inset-inline: 0;
    bottom: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    /* Read like a clock, days on the left and seconds on the right (as on the old page) */
    direction: ltr;
    gap: 10px;
}
.rz-count-unit {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 18px 4px 14px;
    border-radius: 24px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.08));
    box-shadow: none;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    animation: rz-bob 5s ease-in-out infinite;
}
.rz-count-unit:nth-child(2) { animation-delay: -1.2s; }
.rz-count-unit:nth-child(3) { animation-delay: -2.4s; }
.rz-count-unit:nth-child(4) { animation-delay: -3.6s; }
@keyframes rz-bob {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-5px); }
}
.rz-count-num {
    font-size: clamp(34px, 3.6vw, 52px);
    font-weight: 600;
    line-height: 1;
    letter-spacing: -1.8px;
    font-variant-numeric: tabular-nums;
    background: linear-gradient(180deg, #fff 30%, var(--rz-gold-soft));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.rz-count-num.is-ticking { animation: rz-tick 520ms var(--rz-ease); }
@keyframes rz-tick {
    0%   { opacity: 0.2; transform: translateY(-12px); }
    100% { opacity: 1; transform: translateY(0); }
}
.rz-count-label { margin-top: 8px; font-size: 13px; font-weight: 500; color: rgba(240, 236, 226, 0.75); }
.rz-count-done { text-align: center; font-size: 18px; font-weight: 600; color: var(--rz-gold-soft); }

.rz-hero-photo { grid-column: 1 / span 4; min-height: 300px; margin: 0; }
.rz-hero-photo img { position: absolute; inset: 0; }
.rz-hero-photo figcaption {
    position: absolute;
    inset-inline-start: 16px;
    bottom: 16px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 16px 8px 10px;
    border-radius: 999px;
    background: rgba(31, 29, 26, 0.72);
    backdrop-filter: blur(8px);
    font-size: 14px;
    font-weight: 600;
    color: #fff;
}
.rz-hero-photo figcaption img { position: static; width: 28px; height: 28px; transform: none !important; }
.rz-hero-perks { grid-column: 5 / span 3; display: grid; gap: var(--rz-gap); list-style: none; }
.rz-perk { display: flex; align-items: center; gap: 14px; padding: 20px 22px; font-size: 16px; font-weight: 600; line-height: 1.35; color: var(--rz-ink); }

/* ---------- Breadcrumbs ---------- */
.rz-crumbs { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding-top: 22px; font-size: 13px; color: var(--rz-muted); }
.rz-crumbs a { color: var(--rz-muted); transition: color 160ms ease; }
.rz-crumbs a:hover { color: var(--rz-ink); }
.rz-crumbs [aria-current] { color: var(--rz-ink); font-weight: 500; }

/* ---------- Sections ---------- */
.rz-section { padding-block: calc(var(--rz-section) / 2); }
.rz-head { max-width: 720px; margin-bottom: 36px; }
.rz-head--center { margin-inline: auto; text-align: center; }

/* Videos: the shared carousel in softer clothes */
.rz-videos { padding-top: 56px; overflow: visible; overflow-x: clip; }
.rz-videos .rz-head { margin-bottom: 20px; }
.rz .video-card { border-radius: 30px; border: none; box-shadow: 0 16px 34px rgba(31, 29, 26, 0.14); }
.rz .video-play { background: rgba(255, 253, 250, 0.92); backdrop-filter: blur(6px); }
.rz .video-number { background: rgba(31, 29, 26, 0.6); color: #fff; backdrop-filter: blur(6px); }
.rz .video-nav { border: none; background: var(--rz-paper); box-shadow: var(--rz-shadow); }
.rz .video-nav:hover { background: var(--rz-ink); color: #fff; }

/* On desktop the carousel uses the full content width, like the tiles around it */
@media (min-width: 1100px) {
    .rz .video-carousel { min-height: 600px; }
    .rz .video-stage { width: 100%; height: 600px; }
    .rz .video-card { width: 310px; }
    .rz .video-card.is-prev { transform: translate(calc(-50% - 290px), -50%) scale(0.8) rotate(2deg); }
    .rz .video-card.is-next { transform: translate(calc(-50% + 290px), -50%) scale(0.8) rotate(-2deg); }
    .rz .video-card.is-far-prev { transform: translate(calc(-50% - 520px), -50%) scale(0.62) rotate(4deg); }
    .rz .video-card.is-far-next { transform: translate(calc(-50% + 520px), -50%) scale(0.62) rotate(-4deg); }
    .rz .video-nav { width: 56px; height: 56px; }
    .rz .video-nav--prev { inset-inline-start: 0; }
    .rz .video-nav--next { inset-inline-end: 0; }
}

/* Story */
.rz-story-head { max-width: 780px; }
/* The landing: a dashed route that keeps flowing from Japan to Rishon, a plane flying it, ripples where it lands */
.rz-flight { display: block; width: min(100%, 560px); height: auto; margin: 18px auto 0; overflow: visible; }
.rz-flight-route { stroke-width: 2; stroke-linecap: round; stroke-dasharray: 2 9; animation: rz-route 1.4s linear infinite; }
@keyframes rz-route { to { stroke-dashoffset: -22; } }
.rz-flight-origin circle:first-child { fill: rgba(210, 168, 102, 0.2); }
.rz-flight-origin circle:last-child { fill: var(--rz-gold); }
.rz-flight-landing circle:last-child { fill: var(--rz-ink); }
.rz-flight-ripple {
    fill: none;
    stroke: var(--rz-gold-deep);
    stroke-width: 1.4;
    transform-box: fill-box;
    transform-origin: center;
    opacity: 0;
    animation: rz-touchdown 5.5s ease-out infinite;
    animation-delay: 3.7s;
}
.rz-flight-ripple--late { animation-delay: 4.1s; }
@keyframes rz-touchdown {
    0%   { transform: scale(0.6); opacity: 0.9; }
    26%  { transform: scale(3.4); opacity: 0; }
    100% { transform: scale(3.4); opacity: 0; }
}
.rz-flight-plane { fill: var(--rz-ink); }
.rz-flight-label { font-family: var(--font-sans); font-size: 15px; font-weight: 500; fill: var(--rz-muted); }
.rz-flight-label--dest { font-size: 17px; font-weight: 700; fill: var(--rz-ink); }
.rz-story-bento { grid-template-columns: repeat(12, minmax(0, 1fr)); }
.rz-story-photo { grid-column: 1 / span 4; grid-row: 1 / span 2; min-height: 460px; margin: 0; }
.rz-story-photo img { position: absolute; inset: 0; }
.rz-moments { grid-column: 5 / span 8; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--rz-gap); list-style: none; }
.rz-moment { display: flex; flex-direction: column; align-items: center; padding: 34px 26px 36px; text-align: center; }
.rz-moment-step { margin-top: 18px; font-size: 13px; font-weight: 600; letter-spacing: 0.08em; color: var(--rz-gold-deep); }
.rz-moment h3 { margin-top: 4px; font-size: 24px; letter-spacing: -0.6px; }
.rz-moment p { margin-top: 10px; font-size: 16px; line-height: 1.7; text-wrap: balance; }
.rz-facts { grid-column: 5 / span 8; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--rz-gap); }
.rz-fact { padding: 24px; text-align: center; }
.rz-fact dt { display: flex; align-items: center; justify-content: center; gap: 8px; font-size: 13px; font-weight: 600; color: var(--rz-gold-deep); }
.rz-fact dd { margin-top: 10px; font-size: 20px; font-weight: 600; line-height: 1.3; letter-spacing: -0.4px; color: var(--rz-ink); }

/* Gallery: the home page photos as a bento mosaic */
.rz-gallery {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-rows: 250px;
    grid-auto-flow: dense;
    gap: var(--rz-gap);
    list-style: none;
}
.rz-shot { position: relative; }
.rz-shot--big { grid-column: span 2; grid-row: span 2; }
.rz-shot--tall { grid-row: span 2; }
.rz-shot--wide { grid-column: span 2; }
.rz-shot-open {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    overflow: hidden;
    border-radius: var(--rz-r-tile);
    background: var(--rz-sand);
    box-shadow: var(--rz-shadow);
    cursor: zoom-in;
    transition: transform 520ms var(--rz-ease), box-shadow 520ms var(--rz-ease);
}
.rz-shot-open img { width: 100%; height: 100%; object-fit: cover; transition: transform 1200ms var(--rz-ease); }
.rz-shot-open::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 60%, rgba(25, 22, 19, 0.35));
    opacity: 0;
    transition: opacity 420ms ease;
}
.rz-shot-zoom {
    position: absolute;
    z-index: 1;
    top: 14px;
    inset-inline-end: 14px;
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: rgba(255, 253, 250, 0.92);
    color: var(--rz-ink);
    opacity: 0;
    transform: scale(0.7);
    transition: opacity 320ms ease, transform 420ms var(--rz-ease);
}
.rz-shot-zoom svg { width: 16px; height: 16px; }
@media (hover: hover) {
    .rz-shot-open:hover { transform: translateY(-4px); }
    .rz-shot-open:hover img { transform: scale(1.07); }
    .rz-shot-open:hover::after { opacity: 1; }
    .rz-shot-open:hover .rz-shot-zoom,
    .rz-shot-open:focus-visible .rz-shot-zoom { opacity: 1; transform: scale(1); }
}

/* Phones: two endless photo reels drifting in opposite directions (the mosaic is desktop-only) */
.rz-reel { display: none; }
.rz-reel-row { display: flex; width: max-content; animation: rz-marquee 52s linear infinite; }
.rz-reel-row--reverse { animation-direction: reverse; animation-duration: 60s; }
.rz-reel-track { display: flex; gap: 10px; padding-inline-end: 10px; list-style: none; }
.rz-reel-shot {
    display: block;
    overflow: hidden;
    border-radius: 26px;
    background: var(--rz-sand);
    cursor: zoom-in;
    transition: transform 420ms var(--rz-ease);
}
.rz-reel-shot:active { transform: scale(0.96); }
.rz-reel-shot img { width: 100%; height: 100%; object-fit: cover; transition: transform 900ms var(--rz-ease); }
@media (max-width: 767px) {
    .rz-gallery { display: none; }
    .rz-gallery-section { overflow-x: clip; }
    .rz-reel { display: grid; gap: 10px; direction: ltr; }
    .rz-reel-shot { width: 168px; height: 212px; }
    .rz-reel-row--reverse .rz-reel-shot { width: 212px; height: 168px; }
}

/* Gallery lightbox (built by rishon-v2.js) */
.rz-lightbox {
    position: fixed;
    inset: 0;
    z-index: 300;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    gap: 14px;
    padding: 18px;
    background: rgba(25, 22, 19, 0.9);
    backdrop-filter: blur(18px);
    opacity: 0;
    visibility: hidden;
    transition: opacity 320ms ease, visibility 320ms;
}
.rz-lightbox.is-open { opacity: 1; visibility: visible; }
.rz-lb-top { display: flex; align-items: center; justify-content: space-between; color: #fff; font-size: 14px; font-weight: 600; }
.rz-lb-btn {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
    transition: background-color 200ms ease, transform 320ms var(--rz-ease);
}
.rz-lb-btn:hover { background: rgba(255, 255, 255, 0.26); transform: scale(1.06); }
.rz-lb-btn svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.rz-lb-stage { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 14px; min-height: 0; }
.rz-lb-figure { display: flex; justify-content: center; height: 100%; min-height: 0; margin: 0; }
.rz-lb-img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    border-radius: 28px;
    box-shadow: 0 40px 90px rgba(0, 0, 0, 0.4);
    transform: scale(0.96);
    opacity: 0;
    transition: opacity 320ms ease, transform 520ms var(--rz-ease);
}
.rz-lb-img.is-ready { opacity: 1; transform: scale(1); }
/* The gallery carries no texts, in the enlarged view either (photo names stay available to screen readers) */
.rz-lb-caption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.rz-lb-dots { display: flex; justify-content: center; gap: 8px; margin-top: 10px; }
.rz-lb-dots button { width: 8px; height: 8px; border-radius: 999px; background: rgba(255, 255, 255, 0.3); transition: width 320ms var(--rz-ease), background-color 200ms ease; }
.rz-lb-dots button[aria-current="true"] { width: 28px; background: var(--rz-gold-soft); }

/* Treatment steps */
.rz-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rz-step { padding: 36px 36px 40px; min-height: 300px; }
.rz-step-num {
    position: absolute !important;
    top: 30px;
    inset-inline-end: 34px;
    font-size: 56px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: -2px;
    color: rgba(31, 29, 26, 0.08);
}
.rz-tile--sea .rz-step-num { color: rgba(255, 255, 255, 0.12); }
.rz-step h3 { margin-top: 64px; font-size: 24px; line-height: 1.25; letter-spacing: -0.6px; }
.rz-step p { margin-top: 10px; font-size: 16px; line-height: 1.7; }
.rz-step-rain {
    position: absolute !important;
    inset: 0 0 0 auto;
    width: 46%;
    display: flex;
    justify-content: space-around;
    opacity: 0.35;
    pointer-events: none;
    -webkit-mask-image: linear-gradient(180deg, transparent, #000 25%, #000 55%, transparent);
    mask-image: linear-gradient(180deg, transparent, #000 25%, #000 55%, transparent);
    transition: opacity 500ms ease;
}
[dir="rtl"] .rz-step-rain { inset: 0 auto 0 0; }
.rz-step:hover .rz-step-rain { opacity: 0.85; }
.rz-step-rain i {
    width: 1.5px;
    height: 100%;
    background: repeating-linear-gradient(180deg, var(--rz-water) 0 8px, transparent 8px 24px);
    animation: rz-rain var(--t, 1s) linear infinite;
    animation-delay: var(--d, 0s);
}
@keyframes rz-rain { to { background-position: 0 24px; } }

/* Local guide */
.rz-guide-bento { grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: stretch; }
.rz-guide-answer { grid-column: 1 / span 6; padding: 48px; }
.rz-answer { margin-top: 22px; padding: 22px 24px; border-radius: var(--rz-r-inner); background: rgba(255, 255, 255, 0.08); font-size: 17px; line-height: 1.8; color: #fff; }
.rz-answer strong { color: var(--rz-gold-soft); }
.rz-guide-prose { grid-column: 7 / span 6; display: flex; flex-direction: column; justify-content: center; padding: 48px; }
.rz-guide-prose p { font-size: 17px; line-height: 1.85; }
.rz-guide-prose p + p { margin-top: 18px; }

.rz-prices { margin-top: var(--rz-gap); }
.rz .price-table-wrap { max-width: none; }
.rz .price-table { border: none; border-radius: var(--rz-r-tile); background: var(--rz-paper); box-shadow: var(--rz-shadow); }
.rz .price-table thead th { padding: 18px 28px; background: var(--rz-sand); border-bottom: none; color: var(--rz-gold-deep); }
.rz .price-table tbody th,
.rz .price-table tbody td { padding: 26px 28px; }
.rz .price-table tbody tr + tr th,
.rz .price-table tbody tr + tr td { border-top: none; }
.rz .price-table tbody tr:nth-child(even) { background: #faf6ef; }
.rz .price-table tbody tr:hover { background: var(--rz-bg); }
.rz .price-table-name { font-size: 19px; font-weight: 600; color: var(--rz-ink); }
.rz .price-table-sub { font-size: 14px; color: var(--rz-muted); }
.rz .price-table-chip { background: var(--rz-sand); color: var(--rz-body); }
.rz .price-table-price { font-size: 30px; font-weight: 600; letter-spacing: -1px; color: var(--rz-ink); }
.rz .price-table-weekend small { color: var(--rz-muted); }
.rz .price-gift { margin-top: var(--rz-gap); padding: 22px 28px; border-radius: var(--rz-r-tile); background: var(--rz-sand); border: none; }
.rz .price-gift-icon { border-radius: 16px; background: var(--rz-paper); color: var(--rz-gold-deep); }
.rz .price-gift-btn { height: 46px; padding-inline: 24px; border: none; border-radius: 999px; background: var(--rz-ink); color: #fff; }
.rz .price-gift-btn:hover { background: #3d362f; }
.rz-prices-note { margin-top: 24px; text-align: center; font-size: 15px; color: var(--rz-muted); }
.rz-prices-note a { color: var(--rz-ink); font-weight: 600; text-decoration: underline; text-decoration-color: var(--rz-gold); text-underline-offset: 4px; }
.rz-prices-note a:hover { color: var(--rz-gold-deep); }

/* Audience */
.rz-audience-bento { grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(0, 1.35fr); }
.rz-audience-head { grid-column: 1 / span 3; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 48px; }
.rz-audience-photo { grid-column: 4; grid-row: 1 / span 2; min-height: 560px; margin: 0; }
.rz-audience-photo img { position: absolute; inset: 0; }
.rz-benefit { padding: 30px; }
.rz-benefit h3 { margin-top: 22px; font-size: 20px; line-height: 1.3; letter-spacing: -0.4px; }
.rz-benefit p { margin-top: 8px; font-size: 15px; line-height: 1.7; }

/* Other branches */
.rz-branch-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rz-branch { padding: 10px; }
.rz-branch:hover { transform: translateY(-6px); }
.rz-branch-media { position: relative; display: block; overflow: hidden; border-radius: var(--rz-r-inner); background: var(--rz-sand); }
.rz-branch-media img { width: 100%; aspect-ratio: 7 / 5; object-fit: cover; transition: transform 1000ms var(--rz-ease); }
.rz-branch:hover .rz-branch-media img { transform: scale(1.06); }
.rz-branch-media .rz-tag { position: absolute; top: 14px; inset-inline-start: 14px; background: rgba(255, 253, 250, 0.92); backdrop-filter: blur(6px); }
.rz-branch-media .rz-tag--open { background: #dff3e7; }
.rz-branch-body { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 16px 14px; }
.rz-branch-body h3 { font-size: 21px; letter-spacing: -0.5px; }
.rz-branch-body p { margin-top: 2px; font-size: 14px; line-height: 1.5; color: var(--rz-muted); }
.rz-branch-body .rz-btn { flex: none; }

/* FAQ */
.rz-faq-grid { display: grid; grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.25fr); align-items: start; gap: 56px; }
.rz-faq-head { position: sticky; top: 112px; margin-bottom: 0; }
.rz .faq-list { display: grid; gap: 10px; max-width: none; margin: 0; border: none; border-radius: 0; background: none; overflow: visible; }
.rz .faq-item,
.rz .faq-item + .faq-item {
    border: none;
    border-radius: 26px;
    background: var(--rz-paper);
    transition: box-shadow 420ms var(--rz-ease), background-color 240ms ease;
}
.rz .faq-item:hover,
.rz .faq-item.active { box-shadow: var(--rz-shadow); }
.rz .faq-question { padding: 22px 26px; border-radius: 26px; font-size: 18px; font-weight: 600; letter-spacing: -0.3px; color: var(--rz-ink); }
.rz .faq-question:hover { background: none; }
.rz .faq-icon { width: 36px; height: 36px; border: none; background: var(--rz-sand); color: var(--rz-ink); }
.rz .faq-item.active .faq-icon { background: var(--rz-ink); color: #fff; }
.rz .faq-answer p { padding: 0 26px 26px; max-width: 640px; font-size: 16px; line-height: 1.8; color: var(--rz-body); }

/* ---------- Closing call to action ---------- */
.rz-cta-section { padding-block: calc(var(--rz-section) / 2) 0; }
.rz-cta {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
    align-items: center;
    gap: 40px;
    padding: 64px;
    background:
        radial-gradient(460px 360px at 18% 50%, rgba(210, 168, 102, 0.2), transparent 70%),
        linear-gradient(150deg, #3d362f 0%, var(--rz-sea) 40%, var(--rz-sea-deep) 100%);
    cursor: pointer;
}
[dir="rtl"] .rz-cta { background: radial-gradient(460px 360px at 20% 50%, rgba(210, 168, 102, 0.2), transparent 70%), linear-gradient(210deg, #3d362f 0%, var(--rz-sea) 40%, var(--rz-sea-deep) 100%); }
.rz-cta p { max-width: 560px; margin-top: 18px; font-size: 19px; line-height: 1.75; }
.rz-cta-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.rz-cta-arch { display: flex; justify-content: center; }
.rz-cta-arch .rz-arch-svg { width: min(100%, 300px); }

/* ---------- Footer: a full-width dark band holding smaller tiles ---------- */
.rz-footer { margin-top: calc(var(--rz-section) / 2); padding-block: 40px 16px; background: var(--rz-ink); font-size: 15px; color: rgba(235, 228, 214, 0.7); }
.rz-footer a { color: inherit; transition: color 160ms ease; }
.rz-footer a:hover { color: #fff; }
.rz-footer-top {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 48px;
    padding: 24px 12px 40px;
}
.rz-footer-logo img { width: auto; height: 52px; }
.rz-footer-tagline { margin-top: 10px; font-size: 13px; font-weight: 500; color: var(--rz-gold-soft); }
.rz-footer-about { max-width: 460px; font-size: 20px; font-weight: 500; line-height: 1.5; letter-spacing: -0.3px; color: var(--rz-sand-deep); }
.rz-footer-contact { display: grid; gap: 8px; }
.rz-footer-contact-link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 12px 20px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.07);
    font-size: 15px;
    font-weight: 500;
    color: #fff !important;
    transition: background-color 220ms ease, transform 320ms var(--rz-ease);
}
.rz-footer-contact-link:hover { background: rgba(255, 255, 255, 0.14); transform: translateY(-2px); }
.rz-footer-contact-link svg { width: 18px; height: 18px; color: var(--rz-gold-soft); flex: none; }
.rz-footer-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr); gap: var(--rz-gap); }
.rz-footer-col { padding: 32px; border-radius: 28px; background: rgba(255, 255, 255, 0.045); }
.rz-footer-col h3 { margin-bottom: 20px; font-size: 14px; font-weight: 600; color: var(--rz-gold-soft); }
.rz-footer-col ul { list-style: none; display: grid; gap: 10px; }
.rz-footer-branches { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px !important; }
.rz-footer-branches li { display: grid; align-content: start; gap: 2px; padding: 18px 20px; border-radius: 20px; background: rgba(255, 255, 255, 0.05); }
.rz-footer-branches strong { font-size: 18px; font-weight: 600; color: #fff; }
.rz-footer-branches small { font-size: 13px; color: rgba(235, 228, 214, 0.5); }
.rz-footer-link-btn { color: inherit; text-align: start; transition: color 160ms ease; }
.rz-footer-link-btn:hover { color: #fff; }
.rz-footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px 32px;
    padding: 28px 12px 10px;
    font-size: 13px;
    color: rgba(235, 228, 214, 0.5);
}
.rz-footer-legal { display: flex; gap: 24px; }

/* ---------- Shared overlays, tuned to the new language ---------- */
.rz .lead-popup { border-radius: 32px; background: var(--rz-paper); }
.rz .lead-popup-header h3 { font-size: 24px; letter-spacing: -0.6px; color: var(--rz-ink); }
.rz .lead-popup .form-control { height: 52px; border: none; border-radius: 16px; background: var(--rz-sand); }
.rz .lead-popup .form-control:focus { box-shadow: 0 0 0 2px var(--rz-gold); }
.rz .lead-popup-close { border: none; background: var(--rz-sand); }
.rz .lead-popup .btn-primary { height: 54px; border-radius: 999px; background: var(--rz-ink); }
.rz .lead-popup .btn-primary:hover { background: #3d362f; }
.rz .lead-overlay { background: rgba(25, 22, 19, 0.5); backdrop-filter: blur(6px); }
.rz .skip-link { z-index: 400; }

/* ---------- Responsive ---------- */
@media (max-width: 1099px) {
    .rz { --rz-section: 72px; }
    .rz-hero-copy { grid-column: 1 / -1; min-height: 0; padding: 48px 40px; }
    .rz-tags { margin-inline: -40px; }
    .rz-hero-arch { grid-column: 1 / span 6; grid-row: 2 / span 2; }
    .rz-hero-photo { grid-column: 7 / span 6; min-height: 260px; }
    .rz-hero-perks { grid-column: 7 / span 6; }
    .rz-story-photo { grid-column: 1 / span 4; }
    .rz-moments { grid-template-columns: 1fr; }
    .rz-moment { padding: 26px; }
    .rz-gallery { grid-auto-rows: 200px; }
    .rz-facts { grid-template-columns: 1fr; }
    .rz-fact { padding: 18px 24px; }
    .rz-fact dd { margin-top: 6px; font-size: 18px; }
    .rz-guide-answer, .rz-guide-prose { grid-column: 1 / -1; padding: 36px; }
    .rz-audience-bento { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .rz-audience-head { grid-column: 1 / span 2; padding: 36px; }
    .rz-audience-photo { grid-column: 3; grid-row: 1; min-height: 300px; }
    .rz-branch-body { flex-direction: column; align-items: flex-start; }
    .rz-faq-grid { grid-template-columns: 1fr; gap: 28px; }
    .rz-faq-head { position: static; }
    .rz-cta { padding: 48px 40px; }
    .rz-footer-top { grid-template-columns: 1fr auto; gap: 24px 40px; padding: 16px 12px 32px; }
    .rz-footer-about { grid-column: 1 / -1; grid-row: 2; max-width: none; }
    .rz-footer-grid { grid-template-columns: 1fr 1fr; }
    .rz-footer-col--branches { grid-column: 1 / -1; }
}

@media (max-width: 767px) {
    .rz { --rz-section: 56px; --rz-r-tile: 26px; --rz-r-inner: 18px; --rz-gap: 12px; font-size: 16px; }
    .rz-wrap { padding-inline: 12px; }
    .rz-tile { padding: 26px; }
    .rz-tile--photo { padding: 0; }
    .rz-head { margin-bottom: 26px; padding-inline: 8px; }
    .rz-lead { font-size: 17px; }
    .rz-hero { padding-top: 14px; }
    .rz-hero-bento > * { grid-column: 1 / -1 !important; grid-row: auto !important; }
    .rz-hero-copy { padding: 36px 26px; }
    .rz-hero-copy > .rz-hero-veil { background: linear-gradient(180deg, rgba(25, 22, 19, 0.78) 0%, rgba(25, 22, 19, 0.7) 60%, rgba(25, 22, 19, 0.82) 100%); }
    .rz-hero-title { letter-spacing: -1.2px; }
    .rz-tags { margin: 22px -26px 0; gap: 8px; }
    .rz-tagchip { padding: 9px 15px; font-size: 14px; }
    .rz-hero-actions { width: 100%; margin-top: 26px; }
    .rz-hero-actions .rz-btn { flex: 1 1 100%; }
    .rz-hero-arch { padding: 30px 18px 22px; }
    .rz-arch-svg { width: min(82%, 290px); }
    .rz-count-timer { gap: 8px; }
    .rz-count-unit { border-radius: 20px; padding: 16px 2px 12px; }
    /* Phones: the hero ends with the countdown; the lounge photo and the three detail tiles are desktop-only */
    .rz-hero-photo,
    .rz-hero-perks { display: none; }
    .rz-crumbs { padding: 18px 8px 0; }
    .rz-videos { padding-top: 40px; }
    .rz-story-bento > *, .rz-guide-bento > * { grid-column: 1 / -1 !important; grid-row: auto !important; }
    /* Phones: the story is text only, centred */
    .rz-story-photo { display: none; }
    .rz-moment h3 { font-size: 22px; }
    .rz-guide-answer, .rz-guide-prose { padding: 28px 26px; }
    .rz-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 170px; }
    .rz-shot--wide { grid-column: span 1; }
    .rz-lightbox { padding: 12px; }
    .rz-lb-stage { grid-template-columns: minmax(0, 1fr); }
    .rz-lb-nav { position: absolute; bottom: 74px; z-index: 2; }
    .rz-lb-prev { inset-inline-start: 16px; }
    .rz-lb-next { inset-inline-end: 16px; }
    .rz-lb-img { border-radius: 22px; }
    .rz-steps { grid-template-columns: 1fr; }
    .rz-step { min-height: 0; padding: 28px 26px 30px; }
    .rz-step h3 { margin-top: 36px; }
    .rz-answer { padding: 18px 20px; font-size: 16px; }
    .rz .price-table { background: none; box-shadow: none; }
    .rz .price-table tbody tr { border: none; border-radius: var(--rz-r-tile); background: var(--rz-paper); box-shadow: var(--rz-shadow); padding: 22px; }
    .rz .price-table tbody th, .rz .price-table tbody td { padding-inline: 0; }
    .rz .price-table tbody th[scope="row"] { padding: 0 0 8px; margin-bottom: 0; border-bottom: none; }
    .rz .price-table tbody td { padding: 8px 0 0; }
    .rz .price-table-price { font-size: 24px; }
    .rz .price-gift { padding: 20px; }
    .rz-audience-bento { grid-template-columns: 1fr; }
    .rz-audience-bento > * { grid-column: 1 / -1 !important; grid-row: auto !important; }
    .rz-audience-head { padding: 28px 26px; }
    .rz-audience-photo { min-height: 340px; }
    .rz-benefit { display: grid; grid-template-columns: auto 1fr; column-gap: 16px; padding: 22px; }
    .rz-benefit .rz-icon { grid-row: 1 / span 2; }
    .rz-benefit h3 { margin-top: 0; font-size: 18px; }
    .rz-branch-grid { grid-template-columns: 1fr; }
    .rz-branch-body { flex-direction: row; align-items: center; }
    .rz .faq-question { padding: 18px 20px; font-size: 16px; }
    .rz .faq-answer p { padding: 0 20px 22px; font-size: 15px; }
    .rz-cta { grid-template-columns: 1fr; gap: 12px; padding: 40px 26px 28px; text-align: center; }
    .rz-cta p { margin-inline: auto; font-size: 17px; }
    .rz-cta-actions { justify-content: center; }
    .rz-cta-actions .rz-btn { flex: 1 1 100%; }
    .rz-cta-arch .rz-arch-svg { width: min(70%, 220px); }
    .rz-footer { padding-block: 28px 0; }
    .rz-footer-top { grid-template-columns: 1fr; gap: 20px; padding: 8px 10px 28px; }
    .rz-footer-about { grid-row: auto; font-size: 18px; }
    .rz-footer-contact { grid-template-columns: 1fr 1fr; }
    .rz-footer-contact-link { justify-content: center; padding-inline: 10px; }
    .rz-footer-grid { grid-template-columns: 1fr; }
    .rz-footer-col { padding: 24px; border-radius: 22px; }
    .rz-footer-branches { grid-template-columns: 1fr; }
    .rz-footer-bottom { flex-direction: column-reverse; align-items: flex-start; padding: 22px 10px 88px; }
}

/* ---------- An open hero, on every screen. No dark tile: the headline sits on the page, and the
   treatment video plays in its natural colours inside an arch-shaped window (the water arch's own
   silhouette). Phones stack it; desktops set the headline beside the arch. ---------- */
.rz-hero { position: relative; overflow-x: clip; }
.rz-hero > .rz-wrap { position: relative; }
.rz-hero-copy {
    overflow: visible;
    border-radius: 0;
    background: none;
    box-shadow: none;
    color: var(--rz-body);
}
/* A soft golden light behind the headline, so it does not sit on a flat page */
.rz-hero-copy::before {
    content: "";
    position: absolute;
    pointer-events: none;
    background: radial-gradient(closest-side, rgba(236, 211, 164, 0.75), rgba(236, 211, 164, 0));
}
.rz .rz-hero-copy .rz-hero-title {
    display: grid;
    gap: 6px;
    font-weight: 700;
    line-height: 0.98;
    color: var(--rz-ink);
}
.rz-hero-line {
    display: block;
    background: linear-gradient(180deg, #3d362f 0%, var(--rz-ink) 70%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    animation: rz-line-in 1100ms var(--rz-ease) both;
}
.rz-hero-line:last-child { animation-delay: 260ms; }
/* "בקו ראשון לים" as a golden capsule with a slow shine: the one thing the eye lands on */
.rz-hero-copy .rz-hero-title em {
    position: relative;
    display: inline-block;
    overflow: hidden;
    margin-block: 4px;
    padding: 6px 22px 12px;
    font-size: 0.86em;
    white-space: nowrap;
    border-radius: 999px;
    background: linear-gradient(120deg, #d9b377 0%, #c2955a 50%, #a87c3f 100%);
    -webkit-background-clip: border-box;
    background-clip: border-box;
    color: #fff;
    transform: rotate(-2.5deg);
    animation: rz-capsule-in 1200ms var(--rz-ease) 130ms both;
}
.rz-hero-copy .rz-hero-title em::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(105deg, transparent 35%, rgba(255, 255, 255, 0.38) 50%, transparent 65%);
    transform: translateX(-120%);
    animation: rz-shine 4.5s ease-in-out 1.4s infinite;
}
@keyframes rz-line-in {
    from { opacity: 0; transform: translateY(26px); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes rz-capsule-in {
    from { opacity: 0; transform: rotate(4deg) scale(0.8); }
    to   { opacity: 1; transform: rotate(-2.5deg) scale(1); }
}
.rz-hero-copy > .rz-hero-veil { display: none; }
/* The video window. The fade is a real mask on this wrapper, so the video, its gold ring and its
   halo all dissolve into the page, with no overlay to seam. */
.rz-hero-copy > .rz-hero-media {
    position: relative;
    inset: auto;
    flex: none;
    animation: rz-portal-in 1500ms var(--rz-ease) both;
}
.rz-hero-copy .rz-hero-video {
    display: block;
    height: auto;
    border-radius: 999px 999px 36px 36px;
    filter: none;
    animation: none;
    box-shadow:
        0 0 0 3px var(--rz-gold),
        0 0 0 12px rgba(210, 168, 102, 0.16),
        0 0 0 26px rgba(210, 168, 102, 0.07);
}
@keyframes rz-portal-in {
    from { opacity: 0; transform: translateY(26px) scale(0.94); }
    to   { opacity: 1; transform: translateY(0) scale(1); }
}
.rz-hero-copy .rz-tagchip {
    /* No backdrop blur: inside the moving rows it painted the whole strip as one washed-out box */
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    background: rgba(255, 253, 250, 0.94);
    color: var(--rz-ink);
}
.rz-hero-copy .rz-tagchip svg { color: var(--rz-gold-deep); }
.rz-hero-copy .rz-tagchip--gold { background: linear-gradient(135deg, #f1dab0, var(--rz-gold)); }
.rz-hero-copy .rz-tagchip--gold svg { color: var(--rz-ink); }
.rz-hero-copy .rz-cta-main {
    min-height: 66px;
    justify-content: space-between;
    padding-inline: 28px 12px;
    font-size: 19px;
    letter-spacing: -0.3px;
    animation: rz-breathe 2.8s ease-in-out infinite;
}
.rz-hero-copy .rz-cta-main .rz-cta-label { flex: 1; text-align: center; }
@keyframes rz-breathe {
    0%, 100% { transform: scale(1); }
    50%      { transform: scale(1.025); }
}
.rz-hero-copy .rz-cta-gift { min-height: 60px; background: var(--rz-ink); color: #fff; font-size: 17px; backdrop-filter: none; }
.rz-hero-copy .rz-cta-gift:hover { background: #3d362f; }

/* Phones: everything stacked and centred, the tags riding over the foot of the video */
@media (max-width: 767px) {
    .rz-hero-copy {
        align-items: center;
        min-height: 0;
        padding: 18px 0 6px;
        text-align: center;
    }
    .rz-hero-copy::before {
        top: -30px;
        left: 50%;
        width: 150%;
        height: 330px;
        transform: translateX(-50%);
    }
    .rz .rz-hero-copy .rz-hero-title {
        order: 1;
        justify-items: center;
        font-size: clamp(44px, 13.3vw, 59px);
        letter-spacing: -2.6px;
    }
    .rz-hero-copy > .rz-hero-media {
        order: 2;
        width: calc(100% + 24px);
        margin-top: 10px;
        padding: 26px 26px 0;
        -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 40%, rgba(0, 0, 0, 0.62) 54%, rgba(0, 0, 0, 0.26) 67%, rgba(0, 0, 0, 0.07) 79%, transparent 90%);
        mask-image: linear-gradient(180deg, #000 0%, #000 40%, rgba(0, 0, 0, 0.62) 54%, rgba(0, 0, 0, 0.26) 67%, rgba(0, 0, 0, 0.07) 79%, transparent 90%);
    }
    .rz-hero-copy .rz-hero-video { aspect-ratio: 4 / 4.9; }
    /* Tags ride over the foot of the video, edge to edge */
    .rz-hero-copy .rz-tags {
        order: 3;
        flex: none;
        align-self: center;
        width: 100vw;
        margin: -124px 0 0;
        gap: 8px;
        /* The strip must not clip its chips' soft shadows (that cut was the hard line under the tags);
           .rz-hero already clips the sideways overflow of the moving rows. */
        overflow: visible;
        -webkit-mask-image: none;
        mask-image: none;
    }
    .rz-hero-copy .rz-tagchip { box-shadow: 0 4px 14px rgba(31, 29, 26, 0.08); }
    /* Same width as the countdown tile below */
    .rz-hero-copy .rz-hero-actions { order: 4; align-self: stretch; width: auto; gap: 10px; margin-top: 30px; padding-inline: 0; }
}

/* Tablets and desktops: the headline, tags and buttons on one side, the video arch on the other.
   The countdown, lounge photo and details follow as one bento row. */
@media (min-width: 768px) {
    .rz-hero { padding-top: 28px; }
    .rz-hero-copy {
        grid-column: 1 / -1;
        grid-row: 1;
        display: grid;
        grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
        grid-template-areas:
            "title   media"
            "tags    media"
            "actions media";
        align-content: center;
        align-items: start;
        column-gap: clamp(32px, 5vw, 80px);
        min-height: 0;
        padding: 12px 0 36px;
        text-align: start;
    }
    .rz-hero-copy::before {
        top: -60px;
        inset-inline-start: -12%;
        width: 80%;
        height: 520px;
    }
    .rz .rz-hero-copy .rz-hero-title {
        grid-area: title;
        align-self: end;
        justify-items: start;
        font-size: clamp(48px, 4.9vw, 74px);
        letter-spacing: -3px;
    }
    .rz-hero-copy .rz-hero-title em { margin-inline-start: -6px; }
    .rz-hero-copy > .rz-hero-media {
        grid-area: media;
        align-self: center;
        justify-self: center;
        width: 100%;
        max-width: 500px;
        padding: 28px 28px 0;
        -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 62%, rgba(0, 0, 0, 0.55) 78%, rgba(0, 0, 0, 0.15) 90%, transparent 100%);
        mask-image: linear-gradient(180deg, #000 0%, #000 62%, rgba(0, 0, 0, 0.55) 78%, rgba(0, 0, 0, 0.15) 90%, transparent 100%);
    }
    .rz-hero-copy .rz-hero-video { aspect-ratio: 4 / 4.7; }
    .rz-hero-copy .rz-tags {
        grid-area: tags;
        margin: 34px 0 0;
        /* No chip shadows here, so the strip can clip and fade at its sides */
    }
    .rz-hero-copy .rz-tagchip { background: var(--rz-paper); }
    .rz-hero-copy .rz-tagchip--gold { background: linear-gradient(135deg, #f1dab0, var(--rz-gold)); }
    .rz-hero-copy .rz-hero-actions {
        grid-area: actions;
        display: grid;
        grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
        gap: 12px;
        width: 100%;
        max-width: 560px;
        margin-top: 30px;
    }
    /* The countdown sits on the headline's side, so it does not stack a second arch under the video */
    .rz-hero-arch { grid-row: 2; }
}
/* As on phones, the three detail tiles stay hidden: the moving tags already say all of it */
@media (min-width: 768px) {
    .rz-hero-perks { display: none; }
    .rz-hero-photo { grid-row: 2; }
}
@media (min-width: 1100px) {
    .rz-hero-arch { grid-column: 1 / span 5; }
    .rz-hero-photo { grid-column: 6 / span 7; }
}
@media (min-width: 768px) and (max-width: 1099px) {
    .rz-hero-copy { grid-template-columns: minmax(0, 1fr) minmax(0, 0.8fr); }
    .rz-hero-copy .rz-hero-actions { grid-template-columns: 1fr; }
    .rz-hero-arch { grid-column: 1 / span 6; grid-row: 2; }
    .rz-hero-photo { grid-column: 7 / span 6; }
}

@media (prefers-reduced-motion: reduce) {
    .rz-pulse::after,
    .rz-hero-video,
    .rz-hero-media,
    .rz-intro, .rz-intro *,
    .rz-arch-svg,
    .rz-stream,
    .rz-arch-ripples ellipse,
    .rm-pool-ripples ellipse,
    .rm-steam path,
    .rm-oil-drop,
    .rm-oil-splash,
    .rm-halo,
    .rz-tags-row,
    .rz-flight-route,
    .rz-flight-ripple,
    .rz-reel-row,
    .rz-cta-main,
    .rz-cta-main::after,
    .rz-cta-arrow svg,
    .rz-cta-gift-icon,
    .rz-count-unit,
    .rz-hero-line,
    .rz-hero-title em,
    .rz-hero-title em::after,
    .rz-step-rain i,
    .rz-count-num.is-ticking { animation: none; }
    .rz-tile, .rz-btn { transition: none; }
}

/* ---------- Desktop: the gallery beside the countdown, as two rows of photos drifting in opposite
   directions (the phone reels, sized to the countdown tile). The rows sit in an absolute layer, so
   the countdown alone sets the height of the row. ---------- */
.rz-hero-reel { display: none; }
@media (min-width: 768px) {
    .rz-hero-photo { display: none; }
    /* Phones already have these reels in the gallery section; on larger screens they live in the hero */
    .rz-gallery-section { display: none; }
    .rz-hero-reel {
        display: block;
        grid-row: 2;
        min-height: 360px;
        padding: 0;
        border-radius: var(--rz-r-tile);
        background: none;
        overflow: hidden;
    }
    .rz-hero-reel-in {
        position: absolute;
        inset: 0;
        display: grid;
        grid-template-rows: repeat(2, minmax(0, 1fr));
        gap: 12px;
        direction: ltr;
        -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%);
        mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%);
    }
    .rz-hero-reel .rz-reel-row { height: 100%; min-height: 0; }
    .rz-hero-reel .rz-reel-track, .rz-hero-reel .rz-reel-track li { height: 100%; }
    .rz-hero-reel .rz-reel-track { gap: 12px; padding-inline-end: 12px; }
    .rz-hero-reel .rz-reel-shot { height: 100%; aspect-ratio: 4 / 5; border-radius: var(--rz-r-inner, 22px); }
    .rz-hero-reel .rz-reel-row--reverse .rz-reel-shot { aspect-ratio: 5 / 4; }
    .rz-hero-reel:hover .rz-reel-row { animation-play-state: paused; }
    .rz-hero-reel .rz-reel-shot:hover img { transform: scale(1.08); }

    /* A shorter countdown tile: smaller arch, tighter spacing */
    .rz-hero-arch { gap: 14px; padding: 26px 28px 26px; }
    .rz-hero-arch .rz-open-date { font-size: clamp(28px, 2.4vw, 36px); }
    .rz-hero-arch .rz-arch-svg { width: min(100%, 300px); }
    .rz-hero-arch .rz-arch-stage { padding-bottom: 24px; }
}
@media (min-width: 1100px) {
    .rz-hero-reel { grid-column: 6 / span 7; }
}
@media (min-width: 768px) and (max-width: 1099px) {
    .rz-hero-reel { grid-column: 7 / span 6; }
}

/* ---------- Prices: three tiles. Single, couple (the dark one) and the gift voucher ---------- */
.rz-pricing { padding-top: 24px; }
.rz-plans { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--rz-gap); }
.rz-plan { display: flex; flex-direction: column; gap: 14px; padding: 32px; }
.rz-plan-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 6px; }
.rz-plan-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    border-radius: 999px;
    background: var(--rz-sand);
    font-size: 13px;
    font-weight: 600;
    color: var(--rz-gold-deep);
}
.rz-plan--featured .rz-plan-chip { background: rgba(255, 255, 255, 0.1); color: var(--rz-gold-soft); }
.rz-plan--gift .rz-plan-chip { background: var(--rz-paper); }
.rz .rz-plan-name { font-size: 24px; font-weight: 700; letter-spacing: -0.5px; line-height: 1.2; color: var(--rz-ink); }
.rz .rz-plan--featured .rz-plan-name { color: #fff; }
.rz-plan-sub { font-size: 15px; line-height: 1.55; color: var(--rz-muted); }
.rz .rz-plan--featured .rz-plan-sub { color: rgba(240, 236, 226, 0.72); }
.rz-plan-prices { display: grid; gap: 10px; margin-top: auto; padding-top: 10px; }
.rz-plan-row { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; font-size: 15px; }
.rz-plan-row dt { color: var(--rz-muted); }
.rz-plan-row dd { font-weight: 600; color: var(--rz-ink); }
.rz-plan-row dd small { font-weight: 400; color: var(--rz-muted); }
.rz-plan-row--main { align-items: center; padding: 16px 20px; border-radius: var(--rz-r-inner, 22px); background: var(--rz-bg); }
.rz-plan-amount { font-size: 52px; font-weight: 700; line-height: 1; letter-spacing: -2px; }
.rz-plan-currency { margin-inline-start: 4px; font-size: 24px; font-weight: 600; color: var(--rz-gold-deep); }
.rz-plan--featured .rz-plan-row dt,
.rz-plan--featured .rz-plan-row dd small { color: rgba(240, 236, 226, 0.65); }
.rz-plan--featured .rz-plan-row dd { color: #fff; }
.rz-plan--featured .rz-plan-row--main { background: rgba(255, 255, 255, 0.07); }
.rz-plan--featured .rz-plan-amount {
    background: linear-gradient(120deg, #f6e3bd, var(--rz-gold));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.rz-plan--featured .rz-plan-currency { color: var(--rz-gold-soft); }
.rz-plan .rz-btn { margin-top: 6px; }
.rz-plan-gift-art {
    display: grid;
    place-items: center;
    flex: 1;
    min-height: 110px;
    color: var(--rz-gold);
}
.rz-plan-gift-art svg { animation: rz-wiggle 4s ease-in-out 1.5s infinite; transform-origin: 50% 80%; }
.rz-plan-gift-btn { background: var(--rz-ink); color: #fff; }
.rz-plan-gift-btn:hover { background: #3d362f; }
@media (max-width: 1099px) {
    .rz-plans { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .rz-plan--gift { grid-column: 1 / -1; }
    .rz-plan--gift .rz-plan-gift-art { display: none; }
}
@media (max-width: 767px) {
    .rz-plans { grid-template-columns: 1fr; }
    .rz-plan { padding: 26px; }
    .rz-plan-amount { font-size: 46px; }
}
@media (prefers-reduced-motion: reduce) {
    .rz-reel-row, .rz-plan-gift-art svg { animation: none; }
}

/* =====================================================================================
   /rishon-lezion/massage/ - massages in Rishon LeZion (same design, class prefix rm-)
   ===================================================================================== */

/* Hero, second row: the countdown beside a short answer tile */
.rm-brief { display: flex; flex-direction: column; gap: 18px; padding: 36px; }
.rm-brief .rz-eyebrow { align-self: flex-start; }
.rz .rm-brief-answer { margin: 0; padding: 0; background: none; font-size: 19px; line-height: 1.7; color: var(--rz-ink); }
.rm-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: auto; }
.rm-fact { display: grid; gap: 6px; padding: 16px 18px; border-radius: var(--rz-r-inner); background: var(--rz-paper); }
.rm-fact dt { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; font-weight: 500; color: var(--rz-gold-deep); }
.rm-fact dd { font-size: 17px; font-weight: 700; letter-spacing: -0.3px; color: var(--rz-ink); }
@media (min-width: 768px) {
    .rm-hero .rz-hero-arch { grid-row: 2; }
    .rm-brief { grid-row: 2; }
}
@media (min-width: 1100px) {
    .rm-hero .rz-hero-arch { grid-column: 1 / span 5; }
    .rm-brief { grid-column: 6 / span 7; }
}
@media (min-width: 768px) and (max-width: 1099px) {
    .rm-hero .rz-hero-arch { grid-column: 1 / span 6; }
    .rm-brief { grid-column: 7 / span 6; }
    .rm-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
    .rm-brief { padding: 26px; }
    .rz .rm-brief-answer { font-size: 17px; }
    .rm-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* The picker: six massage tiles and one dark result tile */
.rm-picker { display: grid; gap: var(--rz-gap); }
.rm-types { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--rz-gap); }
.rm-type {
    display: grid;
    align-content: start;
    justify-items: start;
    gap: 6px;
    padding: 26px 26px 22px;
    border: 0;
    text-align: start;
    font: inherit;
    cursor: pointer;
    transition: transform 420ms var(--rz-ease), background-color 260ms ease, color 260ms ease;
}
.rm-type:hover { transform: translateY(-3px); }
.rm-type-tag { padding: 5px 12px; border-radius: 999px; background: var(--rz-sand); font-size: 12px; font-weight: 600; color: var(--rz-gold-deep); }
.rm-type-name { margin-top: 8px; font-size: 22px; font-weight: 700; letter-spacing: -0.4px; color: var(--rz-ink); }
.rm-type-short { font-size: 15px; color: var(--rz-muted); }
.rm-type-from { margin-top: 10px; font-size: 14px; color: var(--rz-muted); }
.rm-type-from strong { font-size: 18px; color: var(--rz-ink); }
.rm-type.is-active { background: linear-gradient(135deg, #f1dab0, var(--rz-gold)); }
.rm-type.is-active .rm-type-tag { background: rgba(255, 253, 250, 0.7); color: var(--rz-ink); }
.rm-type.is-active .rm-type-short,
.rm-type.is-active .rm-type-from { color: rgba(31, 29, 26, 0.75); }
.rm-type:focus-visible { outline: 2px solid var(--rz-ink); outline-offset: 3px; }

.rm-result { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); align-items: center; gap: 40px; padding: 40px; }
.rz .rm-result-name { font-size: clamp(26px, 2.6vw, 36px); font-weight: 700; letter-spacing: -0.8px; color: #fff; }
.rm-result-desc { margin-top: 10px; max-width: 560px; font-size: 16px; line-height: 1.7; color: rgba(240, 236, 226, 0.75); }
.rm-toggles { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.rm-toggle { display: inline-flex; gap: 4px; padding: 5px; border-radius: 999px; background: rgba(255, 255, 255, 0.08); }
.rm-toggle button {
    min-height: 42px;
    padding: 8px 20px;
    border: 0;
    border-radius: 999px;
    background: none;
    font: inherit;
    font-size: 15px;
    font-weight: 600;
    color: rgba(240, 236, 226, 0.75);
    cursor: pointer;
    transition: background-color 220ms ease, color 220ms ease;
}
.rm-toggle button.is-active { background: var(--rz-paper); color: var(--rz-ink); }
.rm-toggle button:disabled { opacity: 0.35; cursor: not-allowed; }
.rm-result-price { display: grid; justify-items: center; gap: 6px; padding: 28px; border-radius: var(--rz-r-inner); background: rgba(255, 255, 255, 0.06); text-align: center; }
.rm-price { display: inline-flex; align-items: baseline; gap: 4px; }
.rm-price.is-bump { animation: rm-bump 420ms var(--rz-ease); }
@keyframes rm-bump { 40% { transform: scale(1.08); } }
.rm-price-amount {
    font-size: 64px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: -2px;
    background: linear-gradient(120deg, #f6e3bd, var(--rz-gold));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.rm-price-currency { font-size: 26px; font-weight: 600; color: var(--rz-gold-soft); }
.rm-price-meta { margin-bottom: 14px; font-size: 15px; color: rgba(240, 236, 226, 0.7); }

/* The full price list */
.rm-table-wrap { padding: 8px; overflow-x: auto; }
.rm-table { width: 100%; border-collapse: collapse; font-size: 16px; }
.rm-table thead th { padding: 16px 20px; font-size: 13px; font-weight: 600; text-align: start; color: var(--rz-gold-deep); }
.rm-table tbody th, .rm-table tbody td { padding: 18px 20px; text-align: start; }
.rm-table tbody tr { transition: background-color 200ms ease; }
.rm-table tbody tr:nth-child(odd) { background: var(--rz-bg); }
.rm-table tbody tr:hover { background: var(--rz-sand); }
.rm-table tbody tr > :first-child { border-start-start-radius: 18px; border-end-start-radius: 18px; }
.rm-table tbody tr > :last-child { border-start-end-radius: 18px; border-end-end-radius: 18px; }
.rm-table-name { display: block; font-size: 17px; font-weight: 700; color: var(--rz-ink); }
.rm-table-tag { font-size: 13px; font-weight: 400; color: var(--rz-muted); }
.rm-table td { font-size: 18px; font-weight: 600; color: var(--rz-ink); white-space: nowrap; }
.rm-na { font-size: 13px; font-weight: 400; color: var(--rz-muted); }

/* Why OSPA: four tiles and a wide dark tile that sends to the head spa */
.rm-why-bento { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.rm-headspa {
    grid-column: 1 / -1;
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 180px auto;
    align-items: center;
    gap: 28px;
    padding: 32px 40px;
    overflow: hidden;
    color: #fff;
}
.rm-headspa-copy { display: grid; justify-items: start; gap: 8px; }
.rm-headspa-copy strong { font-size: clamp(24px, 2.4vw, 32px); font-weight: 700; letter-spacing: -0.6px; color: #fff; }
.rm-headspa-copy > span:last-child { max-width: 560px; font-size: 16px; line-height: 1.6; color: rgba(240, 236, 226, 0.75); }
.rm-headspa-arch { display: block; height: 150px; }
.rm-headspa-arch .rz-arch-svg { width: auto; height: 100%; }
.rm-headspa:hover .rm-headspa-btn { filter: brightness(1.05); }

@media (max-width: 1099px) {
    .rm-types { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .rm-result { grid-template-columns: 1fr; gap: 26px; padding: 32px; }
    .rm-why-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .rm-headspa { grid-template-columns: minmax(0, 1fr) auto; }
    .rm-headspa-arch { display: none; }
}
@media (max-width: 767px) {
    .rm-types { gap: 10px; }
    .rm-type { padding: 20px 18px 18px; }
    .rm-type-name { font-size: 18px; }
    .rm-type-short { font-size: 13px; }
    .rm-result { padding: 26px; }
    .rm-toggles { display: grid; grid-template-columns: 1fr; }
    .rm-toggle { display: grid; grid-template-columns: 1fr 1fr; }
    .rm-price-amount { font-size: 54px; }
    .rm-why-bento { grid-template-columns: 1fr; }
    .rm-headspa { grid-template-columns: 1fr; padding: 28px 26px; }
    .rm-headspa-btn { justify-self: start; }
    /* The price list turns into one card per massage */
    .rm-table-wrap { padding: 6px; }
    .rm-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
    .rm-table, .rm-table tbody, .rm-table tr, .rm-table th, .rm-table td { display: block; }
    .rm-table tbody tr { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 12px; padding: 16px 18px; border-radius: 18px; }
    .rm-table tbody tr > * { padding: 4px 0; border-radius: 0 !important; }
    .rm-table tbody th { grid-column: 1 / -1; margin-bottom: 4px; }
    .rm-table td { display: flex; justify-content: space-between; gap: 8px; font-size: 16px; }
    .rm-table td::before { content: attr(data-label); font-size: 13px; font-weight: 400; color: var(--rz-muted); }
}
@media (prefers-reduced-motion: reduce) {
    .rm-price.is-bump { animation: none; }
}
.rm-hero .rz-cta-gift .rz-cta-label { white-space: nowrap; }

/* ---------- Massage page: a cairn of hot stones in place of the water arch ---------- */
.rz-arch-stage .rm-stones-svg {
    -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 70%, rgba(0, 0, 0, 0.4) 82%, transparent 94%);
    mask-image: linear-gradient(180deg, #000 0%, #000 70%, rgba(0, 0, 0, 0.4) 82%, transparent 94%);
}
.rm-halo { transform-box: fill-box; transform-origin: center; animation: rm-breathe 6s ease-in-out infinite; transition: opacity 600ms ease; }
@keyframes rm-breathe { 0%, 100% { transform: scale(0.94); opacity: 0.8; } 50% { transform: scale(1.04); opacity: 1; } }
.rm-pool { transition: opacity 600ms ease; }
.rm-pool-ripples ellipse {
    fill: none;
    stroke: rgba(243, 220, 174, 0.5);
    stroke-width: 1.2;
    transform-box: fill-box;
    transform-origin: center;
    opacity: 0;
    animation: rz-ripple 3.6s ease-out infinite;
    animation-delay: var(--d, 0s);
}
.rm-stone-heat { opacity: 0.3; transition: opacity 700ms ease; }
.rm-stone-rim { fill: none; stroke-width: 2.4; stroke-linecap: round; opacity: 0.85; }
.rm-stone-sheen { fill: rgba(255, 250, 240, 0.16); }
.rm-steam { filter: blur(1.4px); }
.rm-steam path {
    fill: none;
    stroke: rgba(255, 247, 232, 0.7);
    stroke-width: 3.2;
    stroke-linecap: round;
    stroke-dasharray: 40 140;
    opacity: 0;
    animation: rm-steam calc(4.4s * var(--s, 1)) ease-in-out infinite;
    animation-delay: var(--d, 0s);
}
@keyframes rm-steam {
    0%   { stroke-dashoffset: 40; opacity: 0; transform: translateY(6px); }
    25%  { opacity: 0.85; }
    100% { stroke-dashoffset: -110; opacity: 0; transform: translateY(-18px); }
}
.rm-oil-drop { fill: #e2bd7c; animation: rm-drop 4.8s cubic-bezier(0.55, 0, 0.9, 0.5) infinite; }
@keyframes rm-drop {
    0%, 52% { transform: translateY(0); opacity: 0; }
    56%     { opacity: 1; }
    76%     { transform: translateY(62px); opacity: 1; }
    78%, 100% { transform: translateY(66px); opacity: 0; }
}
.rm-oil-splash {
    fill: none;
    stroke: #f3dcae;
    stroke-width: 1.6;
    transform-box: fill-box;
    transform-origin: center;
    opacity: 0;
    animation: rm-splash 4.8s ease-out infinite;
}
@keyframes rm-splash {
    0%, 76% { transform: scale(0.3); opacity: 0; }
    78%     { opacity: 0.95; }
    100%    { transform: scale(2.6); opacity: 0; }
}
[data-stones] { cursor: pointer; touch-action: pan-y; -webkit-tap-highlight-color: transparent; }
[data-stones]:hover .rm-stone-heat { opacity: 0.4; }
[data-stones].is-hot .rm-stone-heat { opacity: 0.85; }
[data-stones].is-hot .rm-halo { opacity: 1; animation-duration: 2.4s; }
[data-stones].is-hot .rm-steam path { animation-duration: 2.2s; stroke-width: 4; }
[data-stones].is-hot .rm-pool-ripples ellipse { animation-duration: 1.6s; }

/* ---------- Hero video loading teaser: the OSPA mark on the clip's own cream, then the clip ---------- */
.rz-hero-frame { position: relative; display: block; }
/* The gold ring belongs to the window, so it stays put while the clip fades in inside it */
.rz-hero-copy .rz-hero-frame {
    border-radius: 999px 999px 36px 36px;
    box-shadow:
        0 0 0 3px var(--rz-gold),
        0 0 0 12px rgba(210, 168, 102, 0.16),
        0 0 0 26px rgba(210, 168, 102, 0.07);
}
.rz-hero-copy .rz-hero-frame .rz-hero-video { box-shadow: none; }
.rz-hero-frame.has-intro { overflow: hidden; }
/* The clip itself fades in over the warm teaser, settling from a slight zoom */
.rz-hero-frame.has-intro .rz-hero-video {
    position: relative;
    z-index: 2;
    opacity: 0;
    transform: scale(1.05);
    transition: opacity 1000ms cubic-bezier(0.4, 0, 0.2, 1), transform 1600ms cubic-bezier(0.22, 1, 0.36, 1);
}
.rz-hero-frame.has-intro.is-live .rz-hero-video { opacity: 1; transform: scale(1); }
/* Without the script the clip still shows up once the teaser has stepped aside */
.rz-hero-frame.has-intro:not(.is-live) .rz-hero-video { animation: rz-video-fallback 1000ms ease 3.5s forwards; }
@keyframes rz-video-fallback { to { opacity: 1; transform: scale(1); } }
.rz-intro {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: grid;
    /* The foot of the window fades into the page, so the mark sits in the upper, solid part */
    align-content: start;
    justify-content: center;
    justify-items: center;
    gap: 16px;
    padding-top: 22%;
    overflow: hidden;
    border-radius: 999px 999px 36px 36px;
    /* Warm sand to caramel, lit from behind the mark like candlelight */
    background:
        radial-gradient(46% 30% at 50% 34%, rgba(255, 241, 214, 0.95), rgba(255, 241, 214, 0) 100%),
        radial-gradient(90% 55% at 15% 105%, rgba(176, 118, 56, 0.55), transparent 70%),
        radial-gradient(80% 50% at 95% -5%, rgba(205, 152, 84, 0.5), transparent 70%),
        linear-gradient(172deg, #f2e2c4 0%, #e4c697 52%, #c9985c 100%);
    /* Without the script the teaser still steps aside on its own */
    animation: rz-intro-out 1000ms ease 4s forwards;
}
/* Two soft lights drifting slowly, so the screen feels alive and warm rather than empty */
.rz-intro::before,
.rz-intro::after {
    content: "";
    position: absolute;
    width: 75%;
    aspect-ratio: 1;
    border-radius: 50%;
    pointer-events: none;
    filter: blur(30px);
    animation: rz-intro-drift 7s ease-in-out infinite alternate;
}
.rz-intro::before { top: -10%; left: -25%; background: radial-gradient(circle, rgba(255, 226, 170, 0.75), transparent 65%); }
.rz-intro::after  { bottom: -15%; right: -25%; background: radial-gradient(circle, rgba(184, 120, 52, 0.5), transparent 65%); animation-delay: -3.5s; }
@keyframes rz-intro-drift {
    from { transform: translate(0, 0) scale(1); }
    to   { transform: translate(18%, 12%) scale(1.15); }
}
.rz-intro > * { position: relative; z-index: 1; }
/* The warm teaser stays put underneath; the clip fades in over it, so nothing empty shows between */
.rz-intro.is-done { animation: none; }
@keyframes rz-intro-out {
    0%   { opacity: 1; filter: blur(0); }
    100% { opacity: 0; filter: blur(8px); visibility: hidden; }
}
.rz-intro-mark {
    width: min(40%, 170px);
    height: auto;
    overflow: visible;
    filter: drop-shadow(0 10px 28px rgba(120, 76, 30, 0.28));
    /* One unbroken drift upward for as long as the teaser is up */
    animation: rz-intro-drift-up 4s cubic-bezier(0.3, 0.1, 0.3, 1) forwards;
}
@keyframes rz-intro-drift-up {
    from { transform: translateY(16px); }
    to   { transform: translateY(-24px); }
}
.rz-intro-lift { transform-box: fill-box; transform-origin: center; }
/* On the way out the mark keeps rising and fades, carrying the same motion into the clip */
.rz-intro.is-done .rz-intro-lift { animation: rz-intro-mark-out 800ms cubic-bezier(0.4, 0, 0.6, 1) forwards; }
@keyframes rz-intro-mark-out { to { transform: translateY(-70px) scale(1.04); opacity: 0; } }
.rz-intro-ring {
    stroke-width: 9;
    stroke-linecap: round;
    stroke-dasharray: 100;
    stroke-dashoffset: 100;
    /* The gold ring draws itself slowly, all the way through the rise */
    animation: rz-intro-trace 1050ms cubic-bezier(0.45, 0, 0.25, 1) 100ms forwards;
}
@keyframes rz-intro-trace { to { stroke-dashoffset: 0; } }
.rz-intro-disc {
    transform-box: fill-box;
    transform-origin: center;
    opacity: 0;
    animation: rz-intro-disc-in 950ms cubic-bezier(0.22, 0.8, 0.3, 1) 50ms forwards;
}
/* The mark rises softly into place, coming into focus as it goes */
@keyframes rz-intro-disc-in {
    from { opacity: 0; transform: translateY(70px) scale(0.94); filter: blur(10px); }
    to   { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
}
.rz-intro-shine { animation: rz-intro-shine 1.6s ease-in-out 500ms infinite; }
@keyframes rz-intro-shine {
    0%   { transform: translateX(0); }
    60%, 100% { transform: translateX(980px); }
}
@media (prefers-reduced-motion: reduce) {
    .rz-intro { display: none; }
    .rz-hero-frame.has-intro .rz-hero-video { opacity: 1; transform: none; transition: none; animation: none; }
}
