/* ==========================================================================
   Maasika Villa — avalehe uus ilme (katsetus, haru redesign/scandi)

   Laetakse PÄRAST styles.css-i ja ainult index.php / en.php lehel. Checkout,
   check-in ja tingimuste lehed jäävad vana ilmega.

   Põhimõte: valge ja tumeroheline (#273128) vahelduvad, muud tooni pole.
   Peenikesed 1px jooned, nurgad teravad, ikoone peaaegu pole. Pealkirjad
   Gilda Display (peenike serif, nagu kliendi inspos), kõik muu Hanken
   Grotesk — puhas põhjamaine groteskkiri.

   Uued plokid on eesliitega mv-. Vanad klassinimed (.nav-menu, .gallery-*,
   .faq-*, .bk-*, .cookie-*, .lightbox) jäävad, sest script.js ja
   booking.js otsivad neid — nende välimus kirjutatakse siin üle.
   ========================================================================== */

:root {
    --mv-green: #273128;
    --mv-green-deep: #1d241e;
    --mv-ink: #141414;
    --mv-muted: #5f5f5f;
    --mv-line: #e2e4e1;
    --mv-line-strong: #c9ccc8;
    --mv-line-dark: rgba(255, 255, 255, 0.16);
    --mv-photo-bg: #eceeeb;
    --mv-white: #ffffff;
    --mv-display: 'Gilda Display', 'Didot', 'Times New Roman', serif;
    --mv-text: 'Hanken Grotesk', 'Helvetica Neue', Arial, sans-serif;
    --mv-wrap: 1320px;
    --mv-gutter: clamp(20px, 4vw, 56px);
    --mv-space: clamp(88px, 10vw, 150px);
    --mv-header: 64px;

    /* styles.css-i muutujad — nii võtavad broneerimisvidin, küpsiseaken jm
       uue ilme üle ilma, et nende reegleid ükshaaval ümber kirjutada. */
    --color-bg: var(--mv-white);
    --color-bg-alt: var(--mv-white);
    --color-text: var(--mv-ink);
    --color-muted: var(--mv-muted);
    --color-accent: var(--mv-green);
    --color-accent-dark: var(--mv-green-deep);
    --color-border: var(--mv-line);
    --font-serif: var(--mv-display);
    --font-sans: var(--mv-text);
    --radius: 0;
    --shadow: none;
}

/* Teravad nurgad kõikjal avalehel — ka broneerimisvidinas ja hüpikutes. */
*, *::before, *::after { border-radius: 0 !important; }

html { scroll-padding-top: var(--mv-header); }

body {
    background: var(--mv-white);
    color: var(--mv-ink);
    font-family: var(--mv-text);
    font-weight: 400;
    font-size: 17px;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
    font-family: var(--mv-display);
    font-weight: 400;
    letter-spacing: 0;
    color: inherit;
}

::selection { background: var(--mv-green); color: #fff; }

:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

.mv-wrap {
    width: 100%;
    max-width: var(--mv-wrap);
    margin: 0 auto;
    padding-left: var(--mv-gutter);
    padding-right: var(--mv-gutter);
}

/* --- Tüpograafia ---------------------------------------------------------- */

.mv-eyebrow {
    font-family: var(--mv-text);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--mv-ink);
    margin: 0 0 22px;
}
.mv-eyebrow--light,
.mv-section--dark .mv-eyebrow { color: rgba(255, 255, 255, 0.72); }

.mv-h2 {
    font-size: clamp(2.1rem, 3.8vw, 3.5rem);
    line-height: 1.1;
    margin: 0 0 28px;
    max-width: 18ch;
}

.mv-h3 {
    font-size: 1.3rem;
    line-height: 1.3;
    margin: 0 0 8px;
}

.mv-lead { font-size: 1.14rem; color: var(--mv-ink) !important; }

.mv-section p { color: var(--mv-muted); }
.mv-section p strong { color: var(--mv-ink); font-weight: 500; }

.mv-num {
    font-family: var(--mv-display);
    font-size: 1.05rem;
    letter-spacing: 0.04em;
    margin: 0 0 14px;
}

/* --- Nupud ja lingid ------------------------------------------------------ */

.mv-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 0 32px;
    background: var(--mv-green);
    color: #fff;
    border: 1px solid var(--mv-green);
    font-family: var(--mv-text);
    font-size: 12.5px;
    font-weight: 500;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}
.mv-btn:hover { background: var(--mv-green-deep); border-color: var(--mv-green-deep); color: #fff; }

.mv-btn--ghost { background: transparent; color: var(--mv-ink); border-color: var(--mv-ink); }
.mv-btn--ghost:hover { background: var(--mv-green); color: #fff; }

.mv-btn--light { background: #fff; color: var(--mv-ink); border-color: #fff; }
.mv-btn--light:hover { background: transparent; color: #fff; border-color: #fff; }

.mv-btn--outline-light { background: transparent; color: #fff; border-color: rgba(255, 255, 255, 0.75); }
.mv-btn--outline-light:hover { background: #fff; color: var(--mv-ink); border-color: #fff; }

.mv-link {
    display: inline-block;
    font-size: 12.5px;
    font-weight: 500;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--mv-ink);
    padding-bottom: 6px;
    border-bottom: 1px solid currentColor;
    transition: opacity 0.2s ease;
}
.mv-link::after { content: '  →'; white-space: pre; }
.mv-link:hover { opacity: 0.6; color: var(--mv-ink); }
.mv-link--light,
.mv-link--light:hover { color: #fff; }
p .mv-link { font-size: inherit; letter-spacing: 0; text-transform: none; padding-bottom: 1px; }
p .mv-link::after { content: none; }

/* --- Päis: alati sama madal, kerimisel muutub ainult taust ----------------- */

.site-header,
.site-header.scrolled {
    padding: 0;
    box-shadow: none;
}
.site-header {
    background: transparent;
    /* Hero kohal ilma jooneta; joon tuleb alles kerimisel (valge päis). */
    border-bottom: 1px solid transparent;
    transition: background 0.35s ease, border-color 0.35s ease;
}
.site-header .nav { height: var(--mv-header); display: flex; align-items: center; justify-content: space-between; }
.site-header .logo,
.site-header.scrolled .logo {
    font-family: var(--mv-display);
    font-size: 17px;
    font-weight: 400;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: #fff;
}
.nav-menu { gap: 32px; align-items: center; }
/* Kõik päise elemendid on flex-kastid: inline-lingid istusid reavahe tõttu 2px
   madalamal kui nupp. */
.nav-menu > li { display: flex; align-items: center; }
.nav-menu a { display: inline-flex; align-items: center; line-height: 1; }
.nav-menu a,
.site-header.scrolled .nav-menu a {
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.86);
}
.nav-menu a:not(.btn-book):hover,
.site-header.scrolled .nav-menu a:not(.btn-book):hover { color: #fff; }
.nav-menu a::after { display: none !important; }
.nav-menu .lang-switch a,
.site-header.scrolled .lang-switch a {
    border: 0;
    padding: 0;
    background: none;
    color: rgba(255, 255, 255, 0.6);
}
.nav-menu .btn-book,
.site-header.scrolled .nav-menu .btn-book {
    display: inline-flex;
    align-items: center;
    height: 38px;
    padding: 0 20px;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.7);
    color: #fff;
    box-shadow: none;
}
.nav-menu .btn-book:hover,
.site-header.scrolled .nav-menu .btn-book:hover { background: #fff; color: var(--mv-ink); border-color: #fff; transform: none; }
.nav-toggle span,
.site-header.scrolled .nav-toggle span { background: #fff; height: 1px; }

.site-header.scrolled {
    background: rgba(255, 255, 255, 0.97);
    border-bottom-color: var(--mv-line);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}
.site-header.scrolled .logo,
.site-header.scrolled .nav-menu a,
.site-header.scrolled .nav-menu a:not(.btn-book):hover { color: var(--mv-ink); }
.site-header.scrolled .nav-menu .lang-switch a { color: var(--mv-muted); }
/* styles.css teeb keelelüliti hover'ist tumeda kasti !important-iga — siin ainult tekst tumeneb. */
.site-header .nav-menu .lang-switch a:hover { background: none; border-color: transparent; color: #fff !important; }
.site-header.scrolled .nav-menu .lang-switch a:hover { background: none; border-color: transparent; color: var(--mv-ink) !important; }
/* styles.css-is on .btn-book { color: #fff !important } — ainult nii saab selle üle. */
.site-header.scrolled .nav-menu .btn-book { background: #fff; border-color: var(--mv-ink); color: var(--mv-ink) !important; }
.site-header.scrolled .nav-menu .btn-book:hover { background: var(--mv-ink); border-color: var(--mv-ink); color: #fff !important; }
.site-header.scrolled .nav-toggle span { background: var(--mv-ink); }

/* --- Hero ----------------------------------------------------------------- */

.mv-hero {
    position: relative;
    min-height: 100vh;
    min-height: 100svh;
    display: flex;
    align-items: flex-end;
    color: #fff;
    overflow: hidden;
    background: var(--mv-green-deep);
}
.mv-hero-media {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
/* Inspo järgi tummisem: pilt jääb, aga õhtuse tooniga. */
.mv-hero-shade {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(18, 23, 19, 0.55) 0%, rgba(18, 23, 19, 0) 26%),
        linear-gradient(90deg, rgba(18, 23, 19, 0.62) 0%, rgba(18, 23, 19, 0.2) 60%, rgba(18, 23, 19, 0.1) 100%),
        linear-gradient(0deg, rgba(18, 23, 19, 0.7) 0%, rgba(18, 23, 19, 0) 55%);
}
.mv-hero-body { position: relative; padding-top: 160px; padding-bottom: clamp(56px, 9vh, 110px); }
.mv-hero-title {
    font-family: var(--mv-display);
    font-weight: 400;
    font-size: clamp(3rem, 8.2vw, 8.4rem);
    line-height: 0.98;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    margin: 0 0 18px -0.04em;
    color: #fff;
}
.mv-hero-sub {
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.78);
    margin: 0 0 40px;
}
.mv-hero-lead {
    max-width: 29em;
    font-size: clamp(1.05rem, 1.3vw, 1.2rem);
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.9);
    margin: 0 0 38px;
}
.mv-hero-actions { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }
.mv-hero-price {
    font-family: var(--mv-display);
    font-size: 1.1rem;
    color: rgba(255, 255, 255, 0.85);
    padding-left: 28px;
    border-left: 1px solid rgba(255, 255, 255, 0.3);
}

/* --- Sektsioonid ---------------------------------------------------------- */

.mv-section { padding: var(--mv-space) 0; background: var(--mv-white); }
.mv-section + .mv-section:not(.mv-section--dark) { border-top: 1px solid var(--mv-line); }
.mv-section--dark + .mv-section { border-top: 0 !important; }
.mv-section--dark { background: var(--mv-green); color: #fff; }
.mv-section--dark p { color: rgba(255, 255, 255, 0.72); }

.mv-head { margin-bottom: clamp(40px, 5vw, 72px); }
.mv-head--split {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 40px;
    flex-wrap: wrap;
}
.mv-head--split .mv-h2 { margin-bottom: 0; }
.mv-head--split > p { max-width: 30em; margin: 0; }

figure { margin: 0; }
.mv-section figure { overflow: hidden; background: var(--mv-photo-bg); }
.mv-section figure img { width: 100%; height: 100%; object-fit: cover; }

/* Maja: kolme pildi kollaaž + tekst */
.mv-intro-grid {
    display: grid;
    /* minmax(0, …): kollaaži pildid ei tohi veergu laiemaks lükata (901–1000px läks leht ekraanist laiemaks). */
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    gap: clamp(40px, 6vw, 100px);
    align-items: stretch;
}
/* Tekst algab kollaaži ülaservast; "Vaata maja plaani" joon on kollaaži alaservaga samal joonel. */
.mv-intro-text { display: flex; flex-direction: column; align-items: flex-start; }
.mv-intro-text > p:last-of-type { margin-bottom: 32px; }
.mv-collage {
    display: grid;
    grid-template-columns: minmax(0, 62fr) minmax(0, 38fr);
    grid-template-rows: 1fr 1fr;
    gap: clamp(10px, 1.2vw, 16px);
    aspect-ratio: 5 / 4;
}
.mv-collage-a { grid-row: 1 / span 2; }
.mv-collage figure { height: 100%; }
.mv-intro-text p { max-width: 32em; margin-bottom: 1.2em; }
.mv-intro-text .mv-link { margin-top: auto; }

/* Toad */
.mv-rooms-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: clamp(12px, 1.6vw, 24px);
    margin-bottom: 48px;
}
.mv-room { display: block; color: var(--mv-ink); }
.mv-room figure { aspect-ratio: 4 / 5; }
/* Fotod on laiad, kast püstine — hoia voodi kaadris, mitte lage. */
.mv-room figure img { object-position: 50% 78%; transition: transform 1.2s cubic-bezier(.2, .7, .2, 1); }
.mv-room:hover figure img { transform: scale(1.04); }
.mv-room-name {
    display: flex;
    justify-content: space-between;
    padding: 16px 0 0;
    margin-top: 14px;
    border-top: 1px solid var(--mv-line);
    font-family: var(--mv-display);
    font-size: 1.15rem;
}
.mv-room-name::after { content: '→'; font-family: var(--mv-text); color: var(--mv-ink); transition: transform 0.25s ease; }
.mv-room:hover .mv-room-name::after { transform: translateX(4px); }

/* Mugavused: nimekiri vasakul, pilt ja koht majaplaanil paremal */
.mv-explore {
    display: grid;
    grid-template-columns: 5fr 7fr;
    gap: clamp(32px, 5vw, 80px);
    /* Nimekiri venib pildi + plaani kõrguseks: viimase rea joon = plaani alaserv. */
    align-items: stretch;
}
.mv-explore-list { display: flex; flex-direction: column; border-top: 1px solid var(--mv-line-strong); }
.mv-explore-item {
    display: block;
    width: 100%;
    text-align: left;
    background: none;
    border: 0;
    border-bottom: 1px solid var(--mv-line-strong);
    padding: 22px 36px 22px 0;
    position: relative;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
    cursor: pointer;
    font: inherit;
    color: var(--mv-ink);
}
.mv-explore-item::after {
    content: '→';
    position: absolute;
    right: 4px;
    top: 50%;
    margin-top: -0.7em;
    font-family: var(--mv-text);
    opacity: 0;
    transform: translateX(-6px);
    transition: opacity 0.25s ease, transform 0.25s ease;
}
.mv-explore-t {
    display: block;
    font-family: var(--mv-display);
    font-size: clamp(1.25rem, 1.8vw, 1.6rem);
    line-height: 1.25;
    transition: color 0.25s ease;
}
.mv-explore-d {
    display: block;
    margin-top: 8px;
    font-size: 0.97rem;
    line-height: 1.6;
    color: var(--mv-muted);
    max-width: 34em;
}
/* JavaScriptiga: ainult valitud kirjeldus lahti, teised pealkirjad hallid. */
.mv-explore.is-ready .mv-explore-item:not(.is-active) .mv-explore-t { color: #9a9a9a; }
.mv-explore.is-ready .mv-explore-item:not(.is-active):hover .mv-explore-t { color: var(--mv-ink); }
.mv-explore.is-ready .mv-explore-item:not(.is-active) .mv-explore-d { display: none; }
.mv-explore.is-ready .mv-explore-item.is-active::after { opacity: 1; transform: none; }
.mv-explore-item:focus-visible { outline: 2px solid var(--mv-ink); outline-offset: -2px; }
.mv-explore-extra { margin: 28px 0 0; font-size: 0.93rem; color: var(--mv-muted); }

.mv-explore-panel { position: relative; }
.mv-explore-photos {
    position: relative;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: var(--mv-photo-bg);
}
.mv-explore-photo {
    position: absolute;
    inset: 0;
    margin: 0;
    opacity: 0;
    transition: opacity 0.6s ease;
}
.mv-explore-photo.is-active { opacity: 1; }
.mv-explore-photo img { width: 100%; height: 100%; object-fit: cover; }
.mv-explore-photo[data-key="toad"] img { object-position: 50% 70%; }

/* Majaplaan pildi all, sama laiusega; valitud koht tumerohelise kastiga. */
.mv-explore .mv-explore-plan {
    --pad: clamp(14px, 2vw, 28px);
    position: relative;
    width: 100%;
    margin: clamp(10px, 1.2vw, 16px) 0 0;
    padding: var(--pad);
    background: #fff;
    border: 1px solid var(--mv-line);
    cursor: zoom-in;
    box-shadow: none;
    max-width: none;
}
.mv-explore .mv-explore-plan:hover { transform: none; }
.mv-explore-plan img { display: block; width: 100%; height: auto; }
.mv-plan-hl {
    position: absolute;
    /* Mõõdud on plaanipildi protsendid; pilt algab figure'i sisetäite (--pad, pärineb figure'ilt) seest. */
    left: calc(var(--pad) + (100% - 2 * var(--pad)) * var(--x) / 100);
    top: calc(var(--pad) + (100% - 2 * var(--pad)) * var(--y) / 100);
    width: calc((100% - 2 * var(--pad)) * var(--w) / 100);
    height: calc((100% - 2 * var(--pad)) * var(--h) / 100);
    background: rgba(39, 49, 40, 0.5);
    outline: 2px solid var(--mv-green);
    opacity: 0;
    transition: opacity 0.35s ease;
    pointer-events: none;
}
.mv-plan-hl.is-active { opacity: 1; }
/* Mobiili virn ja plaani silt — laual peidus. */
.mv-explore-stack,
.mv-explore-plan-label { display: none; }

/* Galerii tumedal — vanad klassid jäävad script.js-i jaoks */
.gallery.mv-section--dark { background: var(--mv-green); }
.gallery-tabs { display: flex; gap: 28px; margin: 0; }
.gallery-tab {
    background: none;
    border: 0;
    border-bottom: 1px solid transparent;
    padding: 0 0 6px;
    font-family: var(--mv-text);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.6);
    cursor: pointer;
}
.gallery-tab:hover { color: #fff; background: none; }
.gallery-tab.active { color: #fff; border-bottom-color: #fff; background: none; }

.gallery-grid,
.gallery-grid.expanded {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: auto;
    gap: 10px;
}
.gallery-item {
    aspect-ratio: 3 / 2;
    cursor: zoom-in;
    box-shadow: none;
    background: var(--mv-green-deep) !important;
    height: auto;
}
.gallery-item::after { display: none; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s cubic-bezier(.2, .7, .2, 1), opacity 0.3s ease; }
.gallery-item:hover img { transform: scale(1.03); opacity: 0.9; }
/* Esimene pilt suur — ruudustik ei ole siis ühtlane "fotoalbum". */
.gallery-grid:not(.expanded) .gallery-item:first-child { grid-column: span 2; grid-row: span 2; aspect-ratio: auto; }
.gallery-more {
    display: flex;
    /* Nupu alumine raam ja Instagrami lingi joon samale kõrgusele. */
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
    margin-top: 40px;
}
/* Link on nupuga sama kõrge ja tekst keskel — tekstid ühel joonel, lingi joon nupu alaservas. */
.gallery-more .mv-link { display: inline-flex; align-items: center; min-height: 52px; padding-bottom: 0; }

/* Instagrami viimased postitused galerii all (booking/lib/instagram.php). */
.mv-insta { margin-top: clamp(56px, 7vw, 96px); padding-top: clamp(40px, 5vw, 64px); border-top: 1px solid var(--mv-line-dark); }
.mv-insta-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px 24px; flex-wrap: wrap; margin-bottom: 28px; }
.mv-insta-title { font-family: var(--mv-display); font-weight: 400; font-size: clamp(1.5rem, 2.4vw, 2rem); line-height: 1.2; color: #fff; margin: 0; }
.mv-insta-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 24px 10px; }
.mv-insta-item { display: block; color: inherit; text-decoration: none; }
/* Püstine 3:4 nagu Instagrami profiilil — postitused on enamasti püstised, ruut lõikaks need pooleks. */
.mv-insta-media { position: relative; display: block; aspect-ratio: 3 / 4; overflow: hidden; background: var(--mv-green-deep); }
.mv-insta-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s cubic-bezier(.2, .7, .2, 1); }
.mv-insta-badge { position: absolute; top: 8px; right: 10px; color: #fff; font-size: 14px; text-shadow: 0 1px 4px rgba(0, 0, 0, .5); pointer-events: none; }
/* Hõljudes: tumedam pilt ja Instagrami märk keskel — selge, et klõps viib Instagrami. */
.mv-insta-hover { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #fff; background: rgba(20, 28, 22, .45); opacity: 0; transition: opacity .3s ease; pointer-events: none; }
.mv-insta-hover svg { transform: scale(.85); transition: transform .3s ease; }
.mv-insta-item:hover .mv-insta-hover, .mv-insta-item:focus-visible .mv-insta-hover { opacity: 1; }
.mv-insta-item:hover .mv-insta-hover svg, .mv-insta-item:focus-visible .mv-insta-hover svg { transform: scale(1); }
.mv-insta-item:hover img, .mv-insta-item:focus-visible img { transform: scale(1.04); }
.mv-insta-item:focus-visible { outline: none; }
.mv-insta-item:focus-visible .mv-insta-media { outline: 2px solid #fff; outline-offset: 2px; }
.mv-insta-cap { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-top: 10px; font-size: .85rem; line-height: 1.45; color: rgba(255, 255, 255, .78); }
.mv-insta-item:hover .mv-insta-cap { color: #fff; }
@media (max-width: 980px) { .mv-insta-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px) { .mv-insta-grid { gap: 18px 6px; } .mv-insta-cap { font-size: .8rem; } }

/* Arvustused tumedal */
.mv-reviews-head {
    display: grid;
    grid-template-columns: 1fr auto auto;
    align-items: end;
    gap: clamp(28px, 4vw, 64px);
    margin-bottom: clamp(44px, 5vw, 72px);
}
.mv-reviews-head .mv-h2 { margin: 0; }
.mv-score { display: flex; align-items: center; gap: 18px; color: #fff; }
.mv-score-n { font-family: var(--mv-display); font-size: clamp(3.4rem, 6vw, 5.2rem); line-height: 0.9; }
.mv-score-t {
    font-size: 11.5px;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.7);
    padding-left: 18px;
    border-left: 1px solid var(--mv-line-dark);
}
.mv-score:hover .mv-score-t { color: #fff; }
.mv-review-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border-top: 1px solid var(--mv-line-dark);
    border-left: 1px solid var(--mv-line-dark);
}
.mv-review {
    margin: 0;
    padding: 34px 30px 30px;
    border-right: 1px solid var(--mv-line-dark);
    border-bottom: 1px solid var(--mv-line-dark);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 26px;
}
.mv-review p {
    margin: 0;
    font-family: var(--mv-display);
    font-size: 1.14rem;
    line-height: 1.55;
    color: #fff !important;
}
.mv-review p::before { content: '“'; }
.mv-review p::after { content: '”'; }
.mv-review footer {
    font-size: 11.5px;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.55);
}

/* KKK */
.mv-faq-grid { display: grid; grid-template-columns: 4fr 8fr; gap: clamp(40px, 6vw, 110px); align-items: start; }
/* Pealkiri ja "Kirjuta meile" jäävad küsimuste kerimisel päise alla kinni (ainult laias vaates). */
@media (min-width: 901px) {
    .mv-faq-grid > div:first-child { position: sticky; top: calc(var(--mv-header) + 40px); }
}
.mv-faq .faq-list { max-width: none; margin: 0; border-top: 1px solid var(--mv-line-strong); }
.faq-item {
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid var(--mv-line-strong) !important;
    box-shadow: none !important;
    margin: 0 !important;
}
.faq-item summary {
    padding: 24px 44px 24px 0 !important;
    font-family: var(--mv-display);
    font-size: 1.18rem;
    color: var(--mv-ink);
    background: transparent !important;
}
.faq-item summary::after { color: var(--mv-ink) !important; font-family: var(--mv-text); font-weight: 300; }
.faq-item p { padding: 0 44px 26px 0 !important; color: var(--mv-muted); max-width: 46em; }

/* Asukoht ja kontakt */
.mv-location-grid,
.mv-contact-grid {
    display: grid;
    grid-template-columns: 5fr 7fr;
    gap: clamp(40px, 6vw, 110px);
    align-items: start;
}
/* Asukoht: kaart algab pealkirja ülaservast ja lõpeb koordinaatide rea joonega. */
.mv-location-grid { row-gap: 0; }
.mv-location-eyebrow { grid-column: 1; grid-row: 1; }
.mv-location-info { grid-column: 1; grid-row: 2; }
.mv-location-info .mv-dl { margin-bottom: 0; }
.mv-location-cta { grid-column: 1; grid-row: 3; margin-top: 40px; }
.mv-map { grid-column: 2; grid-row: 2; align-self: stretch; min-height: 320px; border: 1px solid var(--mv-line); background: var(--mv-photo-bg); }
.mv-map iframe { position: relative; z-index: 1; height: 100%; }
/* Laadimisring kaardi keskel; iframe on alguses läbipaistev ja katab selle, kui kaart joonistub.
   is-loaded tuleb iframe'i onload'ist. */
@keyframes mv-spin { to { transform: rotate(360deg); } }
.mv-map { position: relative; }
.mv-map::before {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    width: 34px;
    height: 34px;
    margin: -17px 0 0 -17px;
    border: 2px solid rgba(20, 20, 20, 0.12);
    border-top-color: var(--mv-green);
    border-radius: 50% !important;
    animation: mv-spin 0.9s linear infinite;
}
.mv-map.is-loaded::before { display: none; }
.mv-map iframe { display: block; }
.mv-dl {
    display: grid;
    grid-template-columns: 9.5em 1fr;
    margin: 36px 0 40px;
    border-top: 1px solid var(--mv-line);
}
.mv-dl dt, .mv-dl dd { margin: 0; padding: 16px 0; border-bottom: 1px solid var(--mv-line); }
.mv-dl dt {
    font-size: 11.5px;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--mv-muted);
    padding-top: 19px;
}
.mv-dl dd { color: var(--mv-ink); }
.mv-dl a { border-bottom: 1px solid var(--mv-line-strong); }
.mv-dl a:hover { border-bottom-color: var(--mv-ink); }
.mv-copy {
    margin-left: 10px;
    background: none;
    border: 1px solid var(--mv-line-strong);
    padding: 2px 10px;
    font: 500 11px/1.6 var(--mv-text);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--mv-muted);
    cursor: pointer;
    vertical-align: 1px;
}
.mv-copy:hover { border-color: var(--mv-ink); color: var(--mv-ink); }

/* Pealkiri üleval vasakul; lause ja vorm algavad samalt joonelt. */
.mv-contact-grid { row-gap: 0; }
.mv-contact-head { grid-column: 1; grid-row: 1; }
.mv-contact-info { grid-column: 1; grid-row: 2; }
.mv-contact-info > p:first-child { margin-top: 0; }
.mv-contact .mv-form { grid-column: 2; grid-row: 2; padding-top: 0; }
/* Vorm algab pealkirjaga samalt joonelt ("Nimi" = "Võta meiega ühendust" ülaserv): hõlmab mõlemad
   read ja jätab ülesse "KONTAKT" sildi kõrguse. Alumine serv jääb vasakuga samale joonele. */
@media (min-width: 901px) {
    .mv-contact .mv-form { grid-row: 1 / 3; margin-top: calc(42px + 0.12 * (clamp(2.1rem, 3.8vw, 3.5rem) - 2.1rem)); }
}
/* Vasak ja parem pool algavad samalt joonelt ja lõpevad samal joonel: rida venib kõrgema
   järgi, vasakul lükatakse kontaktid alla, paremal kasvab sõnumikast. */
.mv-contact-grid { align-items: stretch; }
.mv-contact-info { display: flex; flex-direction: column; }
.mv-contact-info > p:first-child { margin-bottom: 36px; }
.mv-contact-info .mv-dl { margin-top: auto; margin-bottom: 0; }
.mv-contact .mv-form { display: flex; flex-direction: column; }
.mv-contact .mv-form .form-field:has(textarea) { flex: 1 1 auto; display: flex; flex-direction: column; }
.mv-contact .mv-form textarea { flex: 1 1 auto; min-height: 140px; resize: vertical; }
.mv-contact .mv-form .mv-btn { align-self: flex-start; }
.mv-contact .mv-form .form-status:empty { display: none; }
.mv-form { background: transparent; padding: 0; box-shadow: none; border: 0; }
.mv-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; }
.mv-form .form-field { margin-bottom: 22px; }
.mv-form label {
    display: block;
    font-size: 11.5px;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--mv-muted);
    margin-bottom: 8px;
}
.mv-form input,
.mv-form textarea {
    width: 100%;
    background: #fff;
    border: 1px solid var(--mv-line-strong);
    padding: 14px 16px;
    font: 400 1rem/1.5 var(--mv-text);
    color: var(--mv-ink);
    box-shadow: none;
    transition: border-color 0.2s ease;
}
.mv-form input:focus,
.mv-form textarea:focus { outline: none; border-color: var(--mv-green); box-shadow: 0 0 0 1px var(--mv-green); }
.mv-form .mv-btn { margin-top: 6px; }

/* --- Jalus ---------------------------------------------------------------- */

.mv-footer { background: var(--mv-green-deep); color: rgba(255, 255, 255, 0.78); padding: clamp(72px, 9vw, 130px) 0 36px; }
.mv-footer a { color: #fff; }
.mv-footer a:hover { opacity: 0.7; }
.mv-footer .mv-btn--light { color: var(--mv-ink); }
.mv-footer .mv-btn--light:hover { color: #fff; opacity: 1; }
.mv-footer-cta {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 32px;
    flex-wrap: wrap;
    padding-bottom: clamp(48px, 6vw, 80px);
    border-bottom: 1px solid var(--mv-line-dark);
}
.mv-footer-title {
    font-family: var(--mv-display);
    font-size: clamp(2.4rem, 6vw, 5.6rem);
    line-height: 1;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: #fff;
    /* Suurtähtedel pole alumisi sabasid — fondi alumine ruum (~0,2em) jääks nupu
       alla tühjaks. Nii langeb tähtede alumine serv nupu alumise servaga kokku. */
    margin: 0 0 -0.197em;
}
.mv-footer-cols {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
    padding: 44px 0 56px;
}
.mv-footer-cols p { margin: 0; line-height: 1.8; }
.mv-footer-k {
    font-size: 11.5px;
    font-weight: 500;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.5) !important;
    margin-bottom: 10px !important;
}
.mv-footer-legal {
    font-size: 13px;
    color: rgba(255, 255, 255, 0.55);
    margin: 0;
    padding-top: 28px;
    border-top: 1px solid var(--mv-line-dark);
}
.mv-footer-legal a,
.mv-footer .cookie-reopen-link { color: rgba(255, 255, 255, 0.75); font-size: 13px; }
.mv-footer .cookie-reopen-link { background: none; border: 0; padding: 0; cursor: pointer; font-family: inherit; text-decoration: none; }
@media (max-width: 600px) {
    /* Telefonis vajutatavad: 17px kõrgused lingid olid sõrmele liiga väikesed. */
    .mv-footer-legal a,
    .mv-footer .cookie-reopen-link { display: inline-block; padding: 12px 0; }
}

/* --- Broneerimisvidin: sama keel, vidina loogikat ei puutu ------------------
   Välimised kastid (kalender, kokkuvõte, vorm) jäävad peenikese joonega;
   kõik nende sees on raamideta. Ainus aktsent on tumeroheline. */

.booking { background: var(--mv-white); }
/* Vidin joondub ülejäänud sisu servaga, mitte oma 1180px keskmesse. */
#booking-app { font-family: var(--mv-text); max-width: none; margin: 0; }
@media (min-width: 1101px) {
    #booking-app .bk-layout { grid-template-columns: minmax(0, 1fr) 390px; gap: 36px; }
}

/* Broneerimise pealkiri jääb kerimisel päise alla kinni; kalender kleepub selle alla.
   --mv-bk-head = pealkirja tegelik kõrgus (redesign.js mõõdab). */
.booking .mv-head {
    position: sticky;
    top: var(--mv-header);
    z-index: 6;
    background: #fff;
    margin: 0 calc(-1 * var(--mv-gutter)) clamp(28px, 3vw, 44px);
    padding: 18px var(--mv-gutter);
    border-bottom: 1px solid transparent;
    transition: padding 0.25s ease, border-color 0.25s ease;
}
/* Kinni jäädes ainult joon — suurus ei muutu. Kleepuv element on voos: kui ta kahaneks,
   hüppaks kogu sisu tema all üles (ja lävel võiks see edasi-tagasi väriseda). */
.booking .mv-head.is-stuck { border-bottom-color: var(--mv-line); }
@media (min-width: 981px) {
    #booking-app .bk-calendar-pane {
        top: calc(var(--mv-header) + var(--mv-bk-head, 110px) + 16px);
        max-height: calc(100vh - var(--mv-header) - var(--mv-bk-head, 110px) - 32px);
    }
}
/* Mobiilis kalender ei kleepu ja all on oma hinnariba — pealkiri võtaks ainult ruumi. */
@media (max-width: 980px) {
    .booking .mv-head { position: static; }
}

/* Välimised kastid */
#booking-app .bk-calendar-pane,
#booking-app .bk-summary,
#booking-app .bk-empty,
#booking-app .bk-form,
#booking-app .bk-success,
#booking-app .bk-viewer {
    box-shadow: none !important;
    border: 1px solid var(--mv-line-strong) !important;
    background: #fff;
}
#booking-app .bk-sticky { border: 0 !important; box-shadow: none !important; }
#booking-app .bk-form[hidden] { display: none !important; }
#booking-app .bk-price-wait { border-top: 1px solid var(--mv-line) !important; }
#booking-app .bk-price-wait .bk-panel-note { font-size: 1rem; color: var(--mv-ink); }
#booking-app .bk-empty { padding: 56px 28px; }
#booking-app .bk-empty-icon { display: none; }

/* Sisemised: raamid maha, plokke eraldab ainult vahe ja üks peen joon */
#booking-app .bk-summary .bk-panel,
#booking-app .bk-summary .bk-date-card,
#booking-app .bk-summary .bk-plan,
#booking-app .bk-summary .bk-price-panel {
    border: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}
#booking-app .bk-summary .bk-panel { padding: 22px 0 0 !important; margin-top: 22px; border-top: 1px solid var(--mv-line) !important; }
#booking-app .bk-summary .bk-date-card { padding: 0 !important; }
#booking-app .bk-summary .bk-plan img { border: 0 !important; }

/* Toakaart: raam (::after kiht) ainult valitud toal, tumeroheline */
#booking-app .bk-room-card { box-shadow: none !important; background: transparent !important; }
#booking-app .bk-room-card::after { border-color: transparent; box-shadow: none; }
#booking-app .bk-room-card:hover::after { border-color: var(--mv-line-strong); }
#booking-app .bk-room-card.bk-room-sel::after { border-color: var(--mv-green); box-shadow: none; }
/* Hinnarida hoiab oma koha ka tühjana. Enne valikut hinda ei näidata; kui see
   esimese klõpsu järel ilmus, kasvas iga kaart rea võrra ja kaardid hüppasid alla. */
#booking-app .bk-room-p:empty::before { content: "\00a0"; }
/* Arvutamise ajal on hinnasildid tuhmid nagu hinnaplokk (.bk-price-busy).
   Sisenemise hääbumine + nihe tuleb booking.js-ist (enter), mitte siit. */
#booking-app .bk-room-p { transition: opacity 0.15s ease; }
#booking-app .bk-rooms-busy .bk-room-p { opacity: 0.55; }
/* Linnuke ilmub pehmelt; ääris ja ring vahetuvad styles.css-i üleminekuga. */
@keyframes bk-tick {
    from { opacity: 0; transform: rotate(45deg) scale(0.4); }
    to   { opacity: 1; transform: rotate(45deg) scale(1); }
}
@media (prefers-reduced-motion: no-preference) {
    #booking-app .bk-room-sel .bk-room-check::after { animation: bk-tick 0.18s ease-out; }
}
@media (prefers-reduced-motion: reduce) {
    #booking-app .bk-room-p { transition: none; }
}

#booking-app .bk-panel-title {
    font-family: var(--mv-text);
    font-size: 11.5px;
    font-weight: 500;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--mv-ink);
}
#booking-app .bk-cal-title,
#booking-app .bk-month-title,
#booking-app .bk-sum-total-value,
#booking-app .bk-form h3 { font-family: var(--mv-display); font-weight: 400; }
#booking-app .bk-nav,
#booking-app .bk-viewer-nav,
#booking-app .bk-viewer-close { border: 1px solid var(--mv-line-strong) !important; background: #fff; box-shadow: none; }
#booking-app .bk-nav:hover { border-color: var(--mv-green) !important; }

#booking-app .bk-submit,
#booking-app .bk-pay-btn {
    box-shadow: none !important;
    font-size: 12.5px;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    min-height: 52px;
}
#booking-app .bk-submit:hover:not(:disabled),
#booking-app .bk-pay-btn:hover:not(:disabled) { transform: none; box-shadow: none !important; background: var(--mv-green-deep); }

/* Kalender: valitud päevad ja vahemik tumerohelised, numbrid valged */
#booking-app .bk-day.bk-inrange::before,
#booking-app .bk-day.bk-checkin::before,
#booking-app .bk-day.bk-checkout::before {
    background: var(--mv-green);
    /* Keskele paigutusega, mitte translateY(-50%)-ga: lahter on aspect-ratio tõttu
       murdosalise kõrgusega ja transform'iga riba ümardati kerimisel teisiti kui
       kuupäeva ruut — rida läks 1 px sakiliseks (nt 125% ekraaniskaleeringul). */
    top: 0; bottom: 0; margin: auto 0; transform: none;
}
/* Tausta joonistab ainult riba, ka otspäevadel (ruudu kohalt algav riba): kaks
   üksteise peal olevat tumedat kasti tegid murdosalisel pikslil (125% skaleering)
   alumise serva poolikut pikslirida tumedamaks ja rida nägi välja sakiline. */
/* --bk-dot = kuupäeva ruudu laius (styles.css: 36px, telefonis 38px, 320px ekraanil 34px). */
#booking-app { --bk-dot: 36px; }
@media (max-width: 600px) { #booking-app { --bk-dot: 38px; } }
@media (max-width: 359px) { #booking-app { --bk-dot: 34px; } }
#booking-app .bk-day.bk-checkin::before  { left: calc(50% - var(--bk-dot) / 2); }
#booking-app .bk-day.bk-checkout::before { right: calc(50% - var(--bk-dot) / 2); }
#booking-app .bk-day.bk-checkin.bk-checkout::before { display: block; left: calc(50% - var(--bk-dot) / 2); right: calc(50% - var(--bk-dot) / 2); }
/* Lahtri laius on murdosaline (1fr): kahe riba kokkupuutel jäi piksel poolenisti
   katmata ja päevade vahele tekkis hele vuuk. Riba ulatub parema naabri alla 1 px. */
#booking-app .bk-day.bk-inrange:not(.bk-row-end)::before,
#booking-app .bk-day.bk-checkin:not(.bk-row-end):not(.bk-checkout)::before { right: -1px; }
/* Täisarvuline rea kõrgus (mitte aspect-ratio järgi 47,72px), et riba ja kuupäeva
   ruut satuksid samale pikslile ka 125% / 150% ekraaniskaleeringul. */
@media (min-width: 600px) {
    #booking-app .bk-day { aspect-ratio: auto; height: 48px; }
}
#booking-app .bk-day.bk-inrange span,
#booking-app .bk-day.bk-checkin span,
#booking-app .bk-day.bk-checkout span { background: var(--mv-green); color: #fff; box-shadow: none; }
#booking-app .bk-day.bk-free:hover:not([disabled]) span { background: var(--mv-green); color: #fff; }
/* Keskmistel päevadel joonistab tausta ainult riba (vt ülal) — ruut ja riba ümardusid erinevalt. */
#booking-app .bk-day.bk-inrange span,
#booking-app .bk-day.bk-checkin span,
#booking-app .bk-day.bk-checkout span { background: transparent; }
/* Hõivatud = hall ja läbi kriipsutatud (punane ütles "viga"). */
#booking-app .bk-day.bk-booking span,
#booking-app .bk-day.bk-blocked span { color: #b7bbb7; text-decoration-color: rgba(110, 116, 111, 0.5); }
/* Kõrghooaeg: tume joon numbri all, mitte värviline taust. */
#booking-app .bk-day.bk-high-season.bk-free span { background: transparent; box-shadow: inset 0 -2px 0 var(--mv-green); }
#booking-app .bk-day.bk-high-season.bk-free:hover:not([disabled]) span { background: var(--mv-green); box-shadow: none; }
#booking-app .bk-day.bk-high-season.bk-inrange span { background: transparent; box-shadow: none; }
/* Väljasõit võib olla järgmise broneeringu esimene päev — valituna ei ole see hall ega läbi kriipsutatud. */
#booking-app .bk-day.bk-booking.bk-checkout span,
#booking-app .bk-day.bk-blocked.bk-checkout span { color: #fff; text-decoration: none; }
/* styles.css teeb ülesõidul noole valgeks — valgel taustal kadus see ära. */
#booking-app .bk-nav:hover { background: #fff; color: var(--mv-ink); transform: none; }
/* Legend: iga märk on väike päevaruut numbriga, täpselt nagu kalendris. */
#booking-app .bk-leg {
    width: 24px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font: 500 12px/1 var(--mv-text);
    font-style: normal;
    color: var(--mv-ink);
    background: transparent;
    border: 0;
    box-shadow: none;
}
#booking-app .bk-leg-booked { color: #b7bbb7; text-decoration: line-through; text-decoration-color: rgba(110, 116, 111, 0.5); text-decoration-thickness: 1.5px; }
#booking-app .bk-leg-booked::after { content: none; }
#booking-app .bk-leg-pick { background: var(--mv-green); color: #fff; }
#booking-app .bk-leg-high { box-shadow: inset 0 -2px 0 var(--mv-green); }

#booking-app .bk-nights-badge { background: var(--mv-green); color: #fff; }
#booking-app .bk-room-shot .bk-thumb-mark,
#booking-app .bk-viewer-imgwrap .bk-thumb-mark,
#booking-app .bk-viewer-plan-img .bk-thumb-mark,
#booking-app .bk-plan-mark.bk-plan-on { background: rgba(39, 49, 40, 0.3); }
#booking-app .bk-viewer-plan.is-on .bk-viewer-plan-img { box-shadow: 0 0 0 1px var(--mv-green); }
#booking-app .bk-viewer-imgwrap,
#booking-app .bk-viewer-fig { background: var(--mv-photo-bg); }
#booking-app .bk-pay-btn.bk-pay-loading::after { border-color: rgba(39, 49, 40, 0.2); border-top-color: var(--mv-green); }

/* Sooduskoodi nupp sama kõrge kui väli kõrval (oli 4px kõrgem). */
#booking-app .bk-coupon-row-input { align-items: stretch; }
/* .bk-form input annab kõigile väljadele margin-top'i (sildi alla) — siin nihutas see välja nupust madalamale. */
#booking-app .bk-coupon-row-input .bk-coupon-input { margin-top: 0; }
/* Kood ise kirjutatakse suurtähtedega, aga placeholder on nagu teistel väljadel. */
#booking-app .bk-coupon-input::placeholder { text-transform: none; letter-spacing: normal; font-weight: 500; }
#booking-app .bk-coupon-btn {
    height: auto;
    min-height: 0;
    padding: 0 18px;
    background: #fff;
    border: 1px solid var(--mv-ink);
    color: var(--mv-ink);
    font-size: 12px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}
#booking-app .bk-coupon-btn:hover:not(:disabled) { background: var(--mv-ink); color: #fff; }
#booking-app input,
#booking-app select,
#booking-app textarea { border-color: var(--mv-line-strong); box-shadow: none; background: #fff; }
#booking-app input:focus,
#booking-app select:focus,
#booking-app textarea:focus { border-color: var(--mv-green); box-shadow: 0 0 0 1px var(--mv-green); outline: none; }

/* --- Toa aken ------------------------------------------------------------- */

html.mv-rd-open { overflow: hidden; }
.mv-rd {
    /* styles.css nullib kõigi elementide margin'i — dialoogi tsentreerib just UA margin: auto. */
    margin: auto;
    width: min(1120px, calc(100% - 40px));
    max-height: calc(100dvh - 40px);
    padding: 0;
    border: 0;
    background: #fff;
    color: var(--mv-ink);
    overflow: auto;
}
.mv-rd[open] { animation: mv-rd-in 0.28s ease; }
@keyframes mv-rd-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.mv-rd-grid { display: grid; grid-template-columns: 7fr 5fr; min-height: 560px; }
.mv-rd-media { position: relative; background: var(--mv-photo-bg); min-height: 320px; }
.mv-rd:not(.has-photos) .mv-rd-media { display: none; }
.mv-rd:not(.has-photos) .mv-rd-grid { grid-template-columns: 1fr; }
.mv-rd-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.mv-rd-nav,
.mv-rd-close,
.mv-rd-rooms button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    background: #fff;
    border: 1px solid var(--mv-line-strong);
    color: var(--mv-ink);
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.mv-rd-nav:hover,
.mv-rd-close:hover,
.mv-rd-rooms button:hover { background: var(--mv-ink); border-color: var(--mv-ink); color: #fff; }
.mv-rd-nav { position: absolute; top: 50%; margin-top: -22px; border-color: transparent; }
.mv-rd-prev { left: 16px; }
.mv-rd-next { right: 16px; }
.mv-rd:not(.has-many) .mv-rd-nav { display: none; }
.mv-rd-count {
    position: absolute;
    left: 16px;
    bottom: 16px;
    margin: 0;
    padding: 4px 10px;
    background: rgba(255, 255, 255, 0.92);
    font-size: 12px;
    letter-spacing: 0.12em;
}
.mv-rd-count:empty { display: none; }
.mv-rd-close { position: absolute; top: 16px; right: 16px; z-index: 2; }
.mv-rd-info { padding: clamp(28px, 3.4vw, 48px); display: flex; flex-direction: column; }
.mv-rd-info .mv-eyebrow { margin-bottom: 14px; }
.mv-rd-title { font-family: var(--mv-display); font-size: clamp(1.8rem, 2.6vw, 2.4rem); line-height: 1.1; margin: 0 56px 10px 0; }
.mv-rd-bed { margin: 0 0 18px; color: var(--mv-muted); }
.mv-rd-desc { margin: 0 0 22px; color: var(--mv-ink); max-width: 34em; }
.mv-rd-plan {
    --pad: 10px;
    position: relative;
    display: block;
    width: 100%;
    margin: 6px 0 28px;
    padding: var(--pad);
    border: 1px solid var(--mv-line);
    background: #fff;
    cursor: zoom-in;
}
.mv-rd.is-plan .mv-rd-plan { border-color: var(--mv-green); cursor: zoom-out; }
.mv-rd-plan:focus-visible { outline: 2px solid var(--mv-ink); outline-offset: 2px; }
/* Suur plaan vasakul pildi asemel. */
.mv-rd-planbig {
    display: none;
    position: absolute;
    inset: 0;
    z-index: 2;
    width: 100%;
    padding: clamp(16px, 2.4vw, 32px);
    border: 0;
    background: #fff;
    cursor: zoom-out;
    align-items: center;
    justify-content: center;
}
.mv-rd.is-plan .mv-rd-planbig { display: flex; }
.mv-rd.is-plan .mv-rd-nav,
.mv-rd.is-plan .mv-rd-count { display: none; }
.mv-rd.is-plan:not(.has-photos) .mv-rd-media { display: block; }
.mv-rd.is-plan:not(.has-photos) .mv-rd-grid { grid-template-columns: 7fr 5fr; }
.mv-rd-planbig-in { position: relative; display: block; width: 100%; line-height: 0; }
.mv-rd-planbig-in img { display: block; width: 100%; height: auto; max-height: calc(100dvh - 140px); object-fit: contain; }
.mv-rd-planbig .mv-rd-mark { --pad: 0px; }
/* "+" / "−" märk plaani nurgas ütleb, et plaan läheb suureks. Sama ka broneerimise vaates. */
.mv-rd-plan::after,
.bk-viewer-plan::after {
    content: '+';
    position: absolute;
    right: 6px;
    bottom: 6px;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border: 1px solid var(--mv-line-strong);
    font: 400 18px/1 var(--mv-text);
    color: var(--mv-ink);
}
.mv-rd.is-plan .mv-rd-plan::after,
.bk-viewer-plan.is-on::after { content: '−'; }
.bk-viewer-plan { position: relative; }
.bk-viewer-fig.is-plan { cursor: zoom-out; }
.mv-rd-plan img { display: block; width: 100%; height: auto; }
.mv-rd-mark {
    position: absolute;
    left: calc(var(--pad) + (100% - 2 * var(--pad)) * var(--x) / 100);
    top: calc(var(--pad) + (100% - 2 * var(--pad)) * var(--y) / 100);
    width: calc((100% - 2 * var(--pad)) * var(--w) / 100);
    height: calc((100% - 2 * var(--pad)) * var(--h) / 100);
    background: rgba(39, 49, 40, 0.5);
    outline: 2px solid var(--mv-green);
    pointer-events: none;
}
.mv-rd-actions { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: auto; }
.mv-rd-rooms { display: flex; gap: 8px; }
.mv-rd:not(.has-rooms) .mv-rd-rooms { display: none; }
.mv-rd-note { margin: 14px 0 0; font-size: 0.88rem; color: var(--mv-muted); }

@media (max-width: 900px) {
    .mv-rd { width: 100%; max-width: 100%; height: 100dvh; max-height: 100dvh; margin: 0; }
    .mv-rd-grid { grid-template-columns: 1fr; min-height: 0; }
    .mv-rd-media { min-height: 0; aspect-ratio: 4 / 3; }
    .mv-rd-close { position: fixed; top: 12px; right: 12px; }
    .mv-rd-info { padding: 26px var(--mv-gutter) 32px; }
}

/* --- Broneerimisvidina toa pildivaade: sama ilme mis avalehe toa aknal -------
   Vidin lisab selle otse <body> alla, mitte #booking-app sisse. */

.bk-viewer { padding: 20px; }
.bk-viewer-body {
    position: relative;
    width: min(1120px, 100%);
    height: auto;
    min-height: 560px;
    max-height: calc(100dvh - 40px);
    background: #fff;
    box-shadow: none;
    animation: mv-rd-in 0.28s ease;
}
.bk-viewer-fig { flex: 1 1 58%; background: var(--mv-photo-bg); }
.bk-viewer-fig.is-plan { background: #fff; padding: 24px; }
.bk-viewer-info {
    flex: 0 0 41.6%;
    padding: clamp(28px, 3.4vw, 48px);
    border-left: 0;
    display: flex;
    flex-direction: column;
}
.bk-viewer-info::before {
    content: 'Magamistuba';
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    margin-bottom: 14px;
}
html[lang="en"] .bk-viewer-info::before { content: 'Bedroom'; }
.bk-viewer-info h3 {
    font-family: var(--mv-display);
    font-weight: 400;
    font-size: clamp(1.8rem, 2.6vw, 2.4rem);
    line-height: 1.1;
    margin: 0 56px 10px 0;
}
.bk-viewer-bed { margin: 0 0 18px; font-size: 1rem; color: var(--mv-muted); }
.bk-viewer-desc p { font-size: 1rem; color: var(--mv-ink); }
.bk-viewer-plan { margin-top: 6px; padding: 10px; border: 1px solid var(--mv-line); cursor: zoom-in; }
.bk-viewer-plan.is-on { border-color: var(--mv-green); cursor: zoom-out; }
.bk-viewer-plan-img,
.bk-viewer-plan:hover .bk-viewer-plan-img,
.bk-viewer-plan.is-on .bk-viewer-plan-img { border: 0; box-shadow: none; background: none; }
.bk-viewer-plan-label { display: none; }
.bk-viewer-plan:focus-visible { outline: 2px solid var(--mv-ink); outline-offset: 2px; }
.bk-viewer-plan-img .bk-thumb-mark,
.bk-viewer-imgwrap .bk-thumb-mark {
    border: 0;
    background: rgba(39, 49, 40, 0.5);
    outline: 2px solid var(--mv-green);
}
.bk-viewer-close,
.bk-viewer-nav {
    width: 44px;
    height: 44px;
    background: #fff;
    border: 1px solid var(--mv-line-strong);
    color: var(--mv-ink);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    box-shadow: none;
}
.bk-viewer-nav { border-color: transparent; }
.bk-viewer-close:hover,
.bk-viewer-nav:hover { background: var(--mv-ink); border-color: var(--mv-ink); color: #fff; }
.bk-viewer-close:focus-visible,
.bk-viewer-nav:focus-visible { outline: 2px solid var(--mv-ink); outline-offset: 2px; }
.bk-viewer-body > .bk-viewer-close { position: absolute; top: 16px; right: 16px; z-index: 3; }
.bk-viewer-prev { left: 16px; }
.bk-viewer-next { right: 16px; }
.bk-viewer figcaption {
    left: 16px;
    bottom: 16px;
    padding: 4px 10px;
    background: rgba(255, 255, 255, 0.92);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    color: var(--mv-ink);
    font-size: 12px;
    letter-spacing: 0.12em;
}

@media (max-width: 860px) {
    .bk-viewer { padding: 0; align-items: stretch; }
    .bk-viewer-body { min-height: 100dvh; max-height: none; }
    .bk-viewer-fig { height: auto; aspect-ratio: 4 / 3; }
    .bk-viewer-fig.is-plan { aspect-ratio: auto; padding: 12px; }
    .bk-viewer-info { padding: 26px var(--mv-gutter) 32px; }
    .bk-viewer-body > .bk-viewer-close { top: 12px; right: 12px; }
}

/* --- Hüpikud ja kleepuvad elemendid --------------------------------------- */

/* Modaalide taust: udu, mitte ainult tume. Sama kõigil — toa aken, broneerimise
   pildivaade, galerii, küpsised, lahkumishüpik. */
.mv-rd::backdrop,
.bk-viewer,
.lightbox,
.cookie-modal,
.exit-popup {
    background: rgba(20, 26, 21, 0.42) !important;
    -webkit-backdrop-filter: blur(14px) saturate(1.1);
    backdrop-filter: blur(14px) saturate(1.1);
}
.lightbox-cta { display: none !important; }
/* Galerii pilt jätab alla ruumi pisipiltide reale. */
.lightbox.has-strip { padding-bottom: 128px; }
.lightbox.has-strip .lightbox-img { max-height: calc(100vh - 200px); }
.lightbox-img { box-shadow: 0 24px 60px rgba(0, 0, 0, 0.25); }
.lightbox-close,
.lightbox-nav {
    width: 44px;
    height: 44px;
    background: #fff;
    border: 1px solid var(--mv-line-strong);
    color: var(--mv-ink);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}
.lightbox-close:hover,
.lightbox-nav:hover { background: var(--mv-ink); border-color: var(--mv-ink); color: #fff; }
.mv-lb-strip {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 24px;
    display: none;
    gap: 8px;
    justify-content: safe center;
    overflow-x: auto;
    padding: 4px max(24px, calc((100% - 1120px) / 2));
    scrollbar-width: none;
}
.mv-lb-strip::-webkit-scrollbar { display: none; }
.lightbox.has-strip .mv-lb-strip { display: flex; }
.mv-lb-thumb {
    flex: 0 0 auto;
    width: 96px;
    height: 64px;
    padding: 0;
    border: 1px solid transparent;
    background: rgba(255, 255, 255, 0.4);
    opacity: 0.6;
    cursor: pointer;
    transition: opacity 0.2s ease, border-color 0.2s ease;
}
.mv-lb-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.mv-lb-thumb:hover { opacity: 0.9; }
.mv-lb-thumb.is-active { opacity: 1; border-color: #fff; outline: 1px solid var(--mv-ink); }
.mv-lb-thumb:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
@media (max-width: 600px) {
    .lightbox.has-strip { padding-bottom: 96px; }
    .lightbox.has-strip .lightbox-img { max-height: calc(100vh - 170px); }
    .mv-lb-thumb { width: 72px; height: 48px; }
    .mv-lb-strip { bottom: 16px; padding: 4px 16px; }
}
/* Pilt täpselt ekraani keskel — samal kõrgusel kui vasak ja parem nool (need on top: 50%).
   Pisipiltide rea ruum jäetakse nii üles kui alla, muidu oleks pilt noolest kõrgemal. */
.lightbox.has-strip { padding-top: 128px; padding-bottom: 128px; }
.lightbox.has-strip .lightbox-img { max-height: calc(100vh - 256px); max-height: calc(100dvh - 256px); }
@media (max-width: 600px) {
    /* Telefonis püsti: pilt kogu laiuses, nooled pildi servades. */
    .lightbox { padding-left: 0; padding-right: 0; }
    .lightbox.has-strip { padding-top: 96px; padding-bottom: 96px; }
    .lightbox-img { max-width: 100%; }
    .lightbox.has-strip .lightbox-img { max-height: calc(100dvh - 192px); }
    .lightbox-prev { left: 8px; }
    .lightbox-next { right: 8px; }
}
@media (max-height: 520px) {
    /* Telefon rõhtsalt: pisipiltide rida võtaks poole ekraanist — peidus, pilt saab kogu kõrguse,
       nooled pildi kõrval. */
    .lightbox, .lightbox.has-strip { padding: 12px 72px; }
    .lightbox.has-strip .mv-lb-strip { display: none; }
    .lightbox-img, .lightbox.has-strip .lightbox-img { max-width: 100%; max-height: calc(100dvh - 24px); }
    .lightbox-close { top: 12px; right: 12px; }
    .lightbox-prev { left: 12px; }
    .lightbox-next { right: 12px; }
}

/* Modaalide ristid: ilma tausta ja raamita, rist täpselt keskel; hoveril muutub ainult rist. */
.lightbox-close,
.bk-viewer-close,
#booking-app .bk-viewer-close,
.mv-rd-close,
.cookie-modal-close,
.exit-popup-close {
    display: grid !important;
    place-items: center;
    width: 44px;
    height: 44px;
    padding: 0;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    line-height: 0;
    cursor: pointer;
    transition: opacity 0.2s ease, transform 0.2s ease;
}
.lightbox-close svg,
.bk-viewer-close svg,
.mv-rd-close svg,
.cookie-modal-close svg,
.exit-popup-close svg { display: block; margin: 0; }
.lightbox-close:hover,
.bk-viewer-close:hover,
#booking-app .bk-viewer-close:hover,
.mv-rd-close:hover,
.cookie-modal-close:hover,
.exit-popup-close:hover { background: transparent !important; opacity: 0.6; }
.lightbox-close:focus-visible,
.bk-viewer-close:focus-visible,
.mv-rd-close:focus-visible,
.cookie-modal-close:focus-visible,
.exit-popup-close:focus-visible { outline: 2px solid currentColor; outline-offset: -4px; }
/* Tumedal udul valge rist; valgel paneelil tume. Kui rist on foto peal (telefonis toa aken ja
   broneerimise pildivaade), hoiab kerge valge kuma selle nähtaval. */
.lightbox-close { color: #fff; filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.45)); }
.mv-rd-close,
.bk-viewer-close,
.cookie-modal-close,
.exit-popup-close { color: var(--mv-ink) !important; }
@media (max-width: 900px) {
    .mv-rd-close { filter: drop-shadow(0 0 1px #fff) drop-shadow(0 0 5px rgba(255, 255, 255, 0.9)); }
}
/* Modaalide vasak/parem nool: samuti ilma tausta ja raamita. Nooled on alati foto või tumeda
   udu peal — valged, kerge varjuga, et paistaks ka heledal fotol; hoveril muutub ainult nool. */
.lightbox-nav,
.bk-viewer-nav,
#booking-app .bk-viewer-nav,
.mv-rd-nav {
    /* Ilma !important-ita: peitmisreeglid (.mv-rd:not(.has-many), .is-plan, .lightbox.is-single)
       peavad selle üle kirjutama — !important näitas nooli ka siis, kui lehitseda polnud midagi. */
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    padding: 0;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    color: #fff !important;
    line-height: 0;
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.55)) drop-shadow(0 0 6px rgba(0, 0, 0, 0.25));
    transition: opacity 0.2s ease;
}
.lightbox-nav svg, .bk-viewer-nav svg, .mv-rd-nav svg { display: block; margin: 0; width: 28px; height: 28px; }
.lightbox-nav:hover,
.bk-viewer-nav:hover,
#booking-app .bk-viewer-nav:hover,
.mv-rd-nav:hover { background: transparent !important; color: #fff !important; opacity: 0.6; }
.lightbox-nav:focus-visible,
.bk-viewer-nav:focus-visible,
.mv-rd-nav:focus-visible { outline: 2px solid #fff; outline-offset: -4px; }
/* Lightboxi üksikpilt (majaplaan, filtris ainus pilt) — script.js paneb is-single. */
.lightbox.is-single .lightbox-nav { display: none; }
@media (max-width: 860px) {
    .bk-viewer-close { filter: drop-shadow(0 0 1px #fff) drop-shadow(0 0 5px rgba(255, 255, 255, 0.9)); }
}
.cookie-banner { border-top: 1px solid var(--mv-line); box-shadow: none; font-family: var(--mv-text); }
.cookie-btn { box-shadow: none; font-weight: 500; letter-spacing: 0.06em; }
.cookie-modal-box { box-shadow: none; border: 1px solid var(--mv-line); }
.cookie-modal-box h3 { font-family: var(--mv-display); font-weight: 400; }
.sticky-book-btn {
    box-shadow: none;
    background: var(--mv-green);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}
.exit-popup-inner { box-shadow: none; border: 1px solid var(--mv-line); }
.exit-popup-inner h3 { font-family: var(--mv-display); font-weight: 400; }
.exit-popup-eyebrow { color: var(--mv-ink); letter-spacing: 0.2em; }
#homepage-notification {
    background: var(--mv-green-deep) !important;
    border-bottom: 0 !important;
    color: #fff !important;
    font-family: var(--mv-text);
    letter-spacing: 0.02em;
}
#homepage-notification .notice-close { color: #fff; }

/* styles.css-is on kaks hover'it kõvakodeeritud vana punasega (#6e2d2d) —
   muutujad neid ei kata. Uues ilmes: valge, must tekst ja must raam. */
.cookie-btn-accept { border: 1px solid var(--mv-green); }
.cookie-btn-accept:hover { background: #fff; border-color: var(--mv-ink); color: var(--mv-ink); }
.sticky-book-btn { border: 1px solid var(--mv-green); }
.sticky-book-btn:hover { background: #fff; border-color: var(--mv-ink); color: var(--mv-ink); }

/* --- Animatsioonid (ainult html.mv-anim, vt redesign.js) --------------------- */

@keyframes mv-up { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
@keyframes mv-settle { from { transform: scale(1.08); } to { transform: none; } }
/* Ainult läbipaistvus ja tõus — laius ei muutu, nii et pealkiri ei hüppa kahelt realt ühele. */
@keyframes mv-rise { from { opacity: 0; transform: translateY(0.18em); } to { opacity: 1; transform: none; } }
@keyframes mv-fade { from { opacity: 0; } to { opacity: 1; } }

.mv-anim .mv-hero-media { animation: mv-settle 3.2s cubic-bezier(.2, .7, .2, 1) both; }
.mv-anim .mv-hero-shade { animation: mv-fade 1.4s ease both; }
.mv-anim .mv-hero-body > * { animation: mv-up 1.1s cubic-bezier(.2, .7, .2, 1) both; }
.mv-anim .mv-hero-body > .mv-eyebrow { animation-delay: 0.25s; }
/* Pealkiri ootab Gilda Display'd (mv-fonts): varufont on laiem ja murdus teisele reale. */
/* Varu: kui redesign.js ei laadi (mv-fonts ei tule), ilmub pealkiri 3 s pärast ise. */
@keyframes mv-show { to { opacity: 1; } }
.mv-anim .mv-hero-body > .mv-hero-title { animation: mv-show 0.4s ease 3s forwards; opacity: 0; }
.mv-anim.mv-fonts .mv-hero-body > .mv-hero-title { animation: mv-rise 1.4s cubic-bezier(.2, .7, .2, 1) 0.1s both; }
.mv-anim .mv-hero-body > .mv-hero-sub { animation-delay: 0.75s; }
.mv-anim .mv-hero-body > .mv-hero-actions { animation-delay: 0.9s; }
.mv-anim .site-header { animation: mv-fade 1s ease 0.2s both; }

.mv-anim [data-anim] {
    transition:
        opacity 0.9s cubic-bezier(.2, .7, .2, 1) var(--d, 0ms),
        transform 0.9s cubic-bezier(.2, .7, .2, 1) var(--d, 0ms),
        clip-path 1.25s cubic-bezier(.7, 0, .2, 1) var(--d, 0ms);
}
.mv-anim [data-anim="up"]:not(.is-in) { opacity: 0; transform: translateY(28px); }
/* Pilt avaneb alt üles kui kardin ja settib samal ajal kergest suumist. */
.mv-anim [data-anim="img"]:not(.is-in) { clip-path: inset(100% 0 0 0); }
.mv-anim [data-anim="img"].is-in { clip-path: inset(0 0 0 0); }
.mv-anim [data-anim="img"] img { transition: transform 1.8s cubic-bezier(.2, .7, .2, 1) var(--d, 0ms); }
.mv-anim [data-anim="img"]:not(.is-in) img { transform: scale(1.12); }

/* Lingi nool nihkub hover'il. */
.mv-link::after { display: inline-block; transition: transform 0.25s ease; }
.mv-link:hover::after { transform: translateX(4px); }

@media (prefers-reduced-motion: reduce) {
    .mv-rd[open],
    .bk-viewer-body { animation: none; }
}

/* --- Privaatsuspoliitika ja tingimused (body.mv-legal) --------------------- */

.mv-legal .site-header { position: sticky; top: 0; }
/* Siin pole menüünuppu — kolm linki on alati nähtaval ka kitsal ekraanil. */
.mv-legal .mv-legal-nav {
    display: flex !important;
    position: static !important;
    flex-direction: row !important;
    align-items: center;
    gap: 28px;
    width: auto !important;
    height: auto !important;
    padding: 0 !important;
    background: none !important;
    border: 0 !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    /* Suletud mobiilimenüü on styles.css-is pointer-events: none — siin menüünuppu pole, lingid peavad töötama. */
    pointer-events: auto !important;
}
.mv-legal .mv-legal-nav li { width: auto !important; padding: 0 !important; border: 0 !important; }
.mv-legal .mv-legal-nav a { padding: 0 !important; }
/* Kõrgem spetsiifilisus kui mobiilimenüü .site-header.scrolled .nav-menu .btn-book reeglil. */
body.mv-legal .site-header.scrolled .mv-legal-nav .btn-book {
    height: 38px !important;
    padding: 0 20px !important;
    background: #fff !important;
    border: 1px solid var(--mv-ink) !important;
    color: var(--mv-ink) !important;
}
body.mv-legal .site-header.scrolled .mv-legal-nav .btn-book:hover { background: var(--mv-ink) !important; color: #fff !important; }
.mv-legal .nav-toggle { display: none; }

.mv-legal .policy-wrap {
    max-width: 840px;
    padding: clamp(56px, 8vw, 110px) var(--mv-gutter) clamp(80px, 10vw, 140px);
}
.mv-legal .policy-lang-switch {
    gap: 18px;
    margin-bottom: 40px;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--mv-muted);
}
.mv-legal .policy-lang-switch a { color: var(--mv-ink); border-bottom: 1px solid var(--mv-ink); padding-bottom: 3px; }
.mv-legal .policy-lang-switch a:hover { text-decoration: none; opacity: 0.6; }
.mv-legal .policy-wrap h1 {
    font-family: var(--mv-display);
    font-weight: 400;
    font-size: clamp(2.2rem, 4.6vw, 3.6rem);
    line-height: 1.08;
    margin: 0 0 20px;
}
.mv-legal .policy-meta,
.mv-legal .policy-intro { color: var(--mv-muted); font-style: normal; font-size: 0.95rem; }
.mv-legal .policy-intro { margin-bottom: 48px; }
.mv-legal .policy-wrap h2 {
    font-family: var(--mv-display);
    font-weight: 400;
    font-size: 1.55rem;
    line-height: 1.25;
    margin: 56px 0 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--mv-line);
}
.mv-legal .policy-wrap h3 { font-family: var(--mv-text); font-weight: 600; font-size: 1rem; margin: 28px 0 8px; }
.mv-legal .policy-wrap p,
.mv-legal .policy-wrap li { font-size: 1rem; line-height: 1.75; color: var(--mv-ink); }
.mv-legal .policy-wrap a:not(.policy-back) { color: var(--mv-ink); text-decoration: none; border-bottom: 1px solid var(--mv-line-strong); }
.mv-legal .policy-wrap a:not(.policy-back):hover { border-bottom-color: var(--mv-ink); }
.mv-legal .policy-box,
.mv-legal .policy-warning {
    background: #fff;
    border: 1px solid var(--mv-line-strong);
    padding: 24px 28px;
    font-size: 0.97rem;
}
/* Hoiatus oli kollane — nüüd sama valge kast, vasakul tumeroheline joon. */
/* Vanas stiilis oli iga <strong> plokk — lause lagunes ridadeks. Eraldi real on ainult pealkiri. */
.mv-legal .policy-warning strong { display: inline; margin: 0; font-size: inherit; }
.mv-legal .policy-warning > strong:first-child { display: block; margin-bottom: 8px; }
.mv-legal .policy-warning { border-left: 3px solid var(--mv-green); }
.mv-legal .policy-table { font-size: 0.93rem; }
.mv-legal .policy-table th {
    background: #fff;
    font-size: 11.5px;
    font-weight: 500;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--mv-muted);
    border: 1px solid var(--mv-line);
    border-bottom-color: var(--mv-line-strong);
}
.mv-legal .policy-table td { border: 1px solid var(--mv-line); }
.mv-legal .policy-table tr:nth-child(even) td { background: none; }
.mv-legal .policy-back {
    color: var(--mv-ink);
    font-size: 12.5px;
    font-weight: 500;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--mv-ink);
}
.mv-legal .policy-back:hover { text-decoration: none; opacity: 0.6; }
.mv-footer--legal { padding: 36px 0; }
.mv-footer--legal .mv-footer-legal { border-top: 0; padding-top: 0; }
@media (max-width: 600px) {
    .mv-legal .mv-legal-home { display: none; }
    .mv-legal .mv-legal-nav { gap: 18px; }
    .mv-legal .site-header .logo { font-size: 14px; letter-spacing: 0.2em; }
}

/* --- Broneerimise vahelehed: checkout, makse tulemus, check-in (body.mv-flow) --- */
/* Raam (päis, jalus) on booking/lib/flow_layout.php-s; body-l on ka mv-legal, nii et päis on sama. */

.mv-flow { min-height: 100vh; display: flex; flex-direction: column; }
.mv-flow main { flex: 1 0 auto; }
.mv-flow-main {
    width: 100%;
    max-width: 680px;
    margin: 0 auto;
    padding: clamp(48px, 7vw, 96px) var(--mv-gutter) clamp(72px, 9vw, 120px);
}
.mv-flow-main--center { text-align: center; max-width: 600px; }
.mv-flow-h1 {
    font-size: clamp(2rem, 4.4vw, 3.1rem);
    line-height: 1.1;
    margin: 0 0 18px;
}
.mv-flow-lead { color: var(--mv-muted); font-size: 1.02rem; line-height: 1.65; margin: 0 0 40px; }
.mv-flow-main--center .mv-flow-lead { margin-left: auto; margin-right: auto; max-width: 30em; }
.mv-flow-h2 {
    font-family: var(--mv-text);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--mv-ink);
    margin: 44px 0 14px;
}
.mv-flow-sub { color: var(--mv-muted); font-size: 0.95rem; margin: -6px 0 16px; }
.mv-flow-main a:not(.mv-btn) { color: var(--mv-ink); border-bottom: 1px solid var(--mv-line-strong); text-decoration: none; }
.mv-flow .mv-btn { width: 100%; text-decoration: none; }
.mv-flow .mv-btn + .mv-flow-note { margin-top: 14px; }
.mv-flow-note { font-size: 0.9rem; color: var(--mv-muted); margin: 0; }

/* Olekuikoon: õhuke ring, tumeroheline linnuke; katkestus ja ootel hallid. */
.mv-flow-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border: 1px solid var(--mv-green);
    border-radius: 50% !important;
    color: var(--mv-green);
    margin: 0 0 28px;
}
.mv-flow-icon--cancel,
.mv-flow-icon--pending,
.mv-flow-icon--link { border-color: var(--mv-line-strong); color: var(--mv-muted); }

/* Rida: silt vasakul, väärtus paremal; summa ei murdu, murdub silt. */
.mv-kv { border-top: 1px solid var(--mv-line-strong); margin: 0 0 32px; text-align: left; }
.mv-kv-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 16px;
    padding: 13px 0;
    border-bottom: 1px solid var(--mv-line);
    font-size: 0.97rem;
}
.mv-kv-row > span { color: var(--mv-muted); min-width: 0; }
.mv-kv-row > strong { color: var(--mv-ink); font-weight: 500; text-align: right; white-space: nowrap; }
.mv-kv-row > strong.mv-kv-wrap { white-space: normal; overflow-wrap: anywhere; }
.mv-kv-row .mv-kv-unit { color: var(--mv-muted); opacity: 0.8; white-space: nowrap; }
.mv-kv-row--discount > span,
.mv-kv-row--discount > strong { color: var(--mv-green); }
.mv-kv-row--total { border-bottom: 1px solid var(--mv-line-strong); padding: 18px 0; }
.mv-kv-row--total > span { color: var(--mv-ink); }
.mv-kv-row--total > strong { font-family: var(--mv-display); font-weight: 400; font-size: 1.6rem; line-height: 1; }

/* Tasumisele kuuluv summa: valge kast ühtlase 1px joonega. */
.co-deposit { border: 1px solid var(--mv-line-strong); padding: 20px 24px; margin: 0 0 8px; }
.co-deposit small { display: block; font-size: 11.5px; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; color: var(--mv-muted); margin-bottom: 8px; }
.co-deposit strong { font-family: var(--mv-display); font-weight: 400; font-size: 2.1rem; line-height: 1; color: var(--mv-ink); white-space: nowrap; }
.co-deposit-note { font-size: 0.85rem; color: var(--mv-muted); margin-top: 10px; }
.co-hold { display: flex; gap: 12px; align-items: flex-start; margin: 16px 0 0; font-size: 0.95rem; line-height: 1.6; color: var(--mv-muted); }
.co-hold svg { flex-shrink: 0; margin-top: 3px; color: var(--mv-ink); }
.co-hold strong { color: var(--mv-ink); font-weight: 500; white-space: nowrap; }

.co-invoice label,
.mv-flow-form label {
    display: block;
    font-size: 11.5px;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--mv-muted);
    margin-bottom: 8px;
}
.co-invoice input,
.mv-flow-form input[type=text],
.mv-flow-form input[type=date],
.mv-flow-form input[type=tel],
.mv-flow-form select {
    width: 100%;
    min-height: 50px;
    background: #fff;
    border: 1px solid var(--mv-line-strong);
    padding: 12px 16px;
    font: 400 1rem/1.5 var(--mv-text);
    color: var(--mv-ink);
    box-shadow: none;
    -webkit-appearance: none;
    appearance: none;
    transition: border-color 0.2s ease;
}
.mv-flow-form select {
    padding-right: 40px;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23141414' stroke-width='1.3'/%3E%3C/svg%3E") no-repeat right 16px center;
}
.co-invoice input:focus,
.mv-flow-form input:focus,
.mv-flow-form select:focus { outline: none; border-color: var(--mv-green); box-shadow: 0 0 0 1px var(--mv-green); }
.co-invoice small,
.mv-flow-hint { display: block; color: var(--mv-muted); font-size: 0.85rem; line-height: 1.5; margin-top: 8px; }
.co-invoice { margin-top: 36px; }

/* Maksenupud: valged ruudud 1px joonega, ülesõidul tume joon. */
.co-pay-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(88px, 1fr)); gap: 8px; min-height: 96px; }
.co-pay-loading { grid-column: 1 / -1; text-align: center; color: var(--mv-muted); font-size: 0.9rem; padding: 28px 0; margin: 0; }
.co-pay-btn,
.co-slice-btn {
    position: relative;
    background: #fff;
    border: 1px solid var(--mv-line-strong);
    cursor: pointer;
    font: inherit;
    overflow: hidden;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.co-pay-btn { aspect-ratio: 1; padding: 10px; display: flex; align-items: center; justify-content: center; }
.co-pay-btn img { max-width: 100%; max-height: 100%; object-fit: contain; }
.co-slice-btn { width: 100%; min-height: 64px; padding: 12px 20px; display: flex; align-items: center; justify-content: center; gap: 14px; color: var(--mv-ink); }
.co-slice-btn img { height: 34px; width: auto; flex-shrink: 0; }
.co-slice-label { font-size: 0.95rem; color: var(--mv-muted); }
.co-slice-label strong { color: var(--mv-ink); font-weight: 500; }
.co-pay-btn:hover:not(:disabled),
.co-slice-btn:hover:not(:disabled) { border-color: var(--mv-ink); box-shadow: 0 0 0 1px var(--mv-ink); }
.co-pay-btn:disabled,
.co-slice-btn:disabled { opacity: 0.45; cursor: not-allowed; }
.co-pay-btn.co-loading::after,
.co-slice-btn.co-loading::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.85) no-repeat center / 22px 22px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10' fill='none' stroke='%23c9ccc8' stroke-width='2'/%3E%3Cpath d='M12 2a10 10 0 0110 10' fill='none' stroke='%23273128' stroke-width='2'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='0.7s' repeatCount='indefinite'/%3E%3C/path%3E%3C/svg%3E");
}
.co-divider { display: flex; align-items: center; gap: 16px; margin: 36px 0 0; color: var(--mv-muted); font-size: 11.5px; letter-spacing: 0.22em; text-transform: uppercase; }
.co-divider::before,
.co-divider::after { content: ""; flex: 1; height: 1px; background: var(--mv-line); }
.co-divider + .mv-flow-h2 { margin-top: 28px; }
.co-modena { display: flex; align-items: center; justify-content: center; gap: 8px; color: var(--mv-muted); font-size: 0.85rem; margin: 28px 0 0; }
.co-modena svg { flex-shrink: 0; }
.mv-flow-error,
.co-error { border: 1px solid #d9b3b3; color: #8a1f1f; padding: 14px 18px; margin-top: 18px; font-size: 0.93rem; text-align: left; }
.mv-flow-error ul { margin: 6px 0 0; padding-left: 18px; }

/* Check-in vorm */
.mv-flow-info { border: 1px solid var(--mv-line-strong); padding: 18px 22px; margin: 0 0 12px; font-size: 0.97rem; line-height: 1.65; color: var(--mv-muted); }
.mv-flow-info strong { color: var(--mv-ink); font-weight: 500; }
.mv-flow-form .form-row { margin-bottom: 20px; }
.mv-flow-form .grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
.mv-flow-form .mv-flow-h2 { padding-bottom: 12px; border-bottom: 1px solid var(--mv-line-strong); margin-bottom: 22px; }
.mv-flow-form .opt { text-transform: none; letter-spacing: 0; font-weight: 400; }
.companion { border: 1px solid var(--mv-line-strong); padding: 20px 20px 4px; margin-bottom: 14px; position: relative; }
.companion h3 { font-family: var(--mv-display); font-size: 1.25rem; margin: 0 0 16px; }
.remove-btn { position: absolute; top: 8px; right: 8px; width: 44px; height: 44px; background: none; border: 0; color: var(--mv-muted); font-size: 1rem; cursor: pointer; }
.remove-btn:hover { color: var(--mv-ink); }
.add-btn { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 52px; background: none; border: 1px dashed var(--mv-line-strong); color: var(--mv-ink); font: 500 12.5px/1 var(--mv-text); letter-spacing: 0.18em; text-transform: uppercase; cursor: pointer; margin-bottom: 8px; }
.add-btn:hover { border-color: var(--mv-ink); border-style: solid; }
.under15-toggle { margin: 0 0 16px; font-size: 0.93rem; color: var(--mv-muted); }
.under15-toggle label { display: flex; align-items: center; gap: 10px; cursor: pointer; text-transform: none; letter-spacing: 0; font-size: 0.93rem; font-weight: 400; margin: 0; }
.mv-flow-form input[type=checkbox] { width: 20px; height: 20px; flex-shrink: 0; accent-color: var(--mv-green); margin: 0; }
.doc-fields { transition: opacity 0.2s ease; }
.photo-wrapper { position: relative; }
.photo-box { position: relative; border: 1px dashed var(--mv-line-strong); padding: 26px 18px; text-align: center; background: #fff; cursor: pointer; transition: border-color 0.2s ease; }
.photo-box:hover { border-color: var(--mv-ink); }
.photo-box.has-file { border: 1px solid var(--mv-green); }
.photo-box input[type=file] { position: absolute; inset: 0; opacity: 0; width: 100%; height: 100%; cursor: pointer; }
.photo-icon { color: var(--mv-ink); margin-bottom: 8px; }
.photo-txt { font-size: 0.93rem; color: var(--mv-muted); }
.photo-txt strong { display: block; color: var(--mv-ink); font-weight: 500; margin-bottom: 2px; }
#photo-preview { display: none; width: 100%; max-height: 240px; object-fit: contain; margin-top: 10px; border: 1px solid var(--mv-line); }
.consent-row { display: flex; gap: 12px; align-items: flex-start; margin: 32px 0 24px; }
.consent-row input { margin-top: 3px !important; }
.mv-flow-form .consent-row label { text-transform: none; letter-spacing: 0; font-size: 0.95rem; font-weight: 400; line-height: 1.55; color: var(--mv-ink); margin: 0; }

@media (max-width: 600px) {
    /* Tingimuste lehel peidetakse see Broneeri-nupu kõrval; siin on see ainus link. */
    .mv-flow .mv-legal-home { display: block; }
    .mv-flow-lead { margin-bottom: 32px; }
    .mv-flow-h2 { margin-top: 36px; }
    .co-deposit { padding: 18px 20px; }
    .co-deposit strong { font-size: 1.85rem; }
    .co-pay-grid { grid-template-columns: repeat(auto-fill, minmax(76px, 1fr)); }
    .co-slice-btn { flex-wrap: wrap; gap: 8px 12px; }
    .mv-kv-row--total > strong { font-size: 1.4rem; }
    .mv-flow-form .grid2 { grid-template-columns: 1fr; }
    .companion { padding: 18px 16px 2px; }
}

/* --- Kitsamad ekraanid ---------------------------------------------------- */

@media (max-width: 1100px) {
    .mv-rooms-grid { grid-template-columns: repeat(2, 1fr); }
    .mv-review-grid { grid-template-columns: repeat(2, 1fr); }
    .mv-reviews-head { grid-template-columns: 1fr auto; }
    .mv-reviews-head > .mv-link { grid-column: 1 / -1; justify-self: start; }
}

/* Hamburgermenüü (sama piir mis styles.css-is ja script.js-is). */
@media (max-width: 1145px) {
    .nav-menu {
        background: #fff;
        border-top: 1px solid var(--mv-line);
        box-shadow: none;
        gap: 0;
        padding: 8px var(--mv-gutter) 28px;
    }
    .nav-menu { align-items: stretch; text-align: left; }
    .nav-menu li { width: 100%; border-bottom: 1px solid var(--mv-line); }
    .nav-menu .lang-switch a { display: block; padding: 16px 0; }
    .nav-menu li:last-child { border-bottom: 0; padding-top: 22px; }
    .nav-menu a,
    .site-header.scrolled .nav-menu a { display: block; padding: 16px 0; font-size: 12.5px; color: var(--mv-ink); }
    .nav-menu .lang-switch a { color: var(--mv-muted); }
    .nav-menu .btn-book,
    .site-header.scrolled .nav-menu .btn-book { display: flex; justify-content: center; align-items: center; width: 100%; height: 52px; background: var(--mv-green); border-color: var(--mv-green); color: #fff !important; }
    /* Menüü täidab koos päisega kogu ekraani; pikem sisu keritav menüü sees. */
    .nav-menu {
        height: calc(100vh - var(--mv-header) - var(--mv-header-offset, 0px));
        height: calc(100dvh - var(--mv-header) - var(--mv-header-offset, 0px));
        overflow-y: auto;
        overscroll-behavior: contain;
        flex-wrap: nowrap;
        padding-bottom: calc(28px + env(safe-area-inset-bottom, 0px));
    }
    .nav-menu li { flex-shrink: 0; }
    /* Leht menüü taga ei keri ja alumine broneerimisriba ei jää menüü peale (script.js). */
    html.mv-menu-open,
    html.mv-menu-open body { overflow: hidden; }
    html.mv-menu-open .sticky-book { display: none; }
    /* Avatud menüü ajal päis valgeks ka hero kohal, muidu jääks valge logo valge menüü kohale. */
    .site-header:has(.nav-menu.open) { background: #fff; border-bottom-color: var(--mv-line); }
    .site-header:has(.nav-menu.open) .logo { color: var(--mv-ink); }
    .nav-toggle.open span { background: var(--mv-ink); }
}

@media (max-width: 900px) {
    body { font-size: 16px; }
    :root { --mv-header: 58px; }


    .mv-hero-body { padding-bottom: 48px; }
    .mv-hero-title { letter-spacing: 0.04em; }
    .mv-hero-sub { font-size: 11.5px; letter-spacing: 0.24em; margin-bottom: 24px; }
    .mv-hero-price { padding-left: 0; border-left: 0; }

    .mv-intro-grid,
    .mv-faq-grid,
    .mv-location-grid,
    .mv-contact-grid { grid-template-columns: 1fr; }
    .mv-collage { aspect-ratio: 4 / 3.4; }
    .mv-contact-head,
    .mv-contact-info,
    .mv-contact .mv-form { grid-column: 1; grid-row: auto; }
    .mv-contact .mv-form { padding-top: 12px; }
    .mv-location-eyebrow, .mv-location-info, .mv-location-cta, .mv-map { grid-column: 1; grid-row: auto; }
    .mv-map { aspect-ratio: 4 / 3; min-height: 0; margin-top: 32px; }

    /* Mugavused: valimise asemel virn — iga pealkirja all oma pilt ja tekst kohe lahti.
       Majaplaan tervikuna virna all (klõps avab suurelt). */
    .mv-explore { grid-template-columns: 1fr; gap: 0; }
    .mv-explore-list,
    .mv-explore-photos,
    .mv-plan-hl { display: none; }
    .mv-explore-stack { display: block; border-top: 1px solid var(--mv-line-strong); }
    .mv-explore-card { padding: 22px 0 26px; border-bottom: 1px solid var(--mv-line-strong); }
    .mv-explore-card .mv-explore-t { margin: 0 0 14px; font-weight: 400; }
    .mv-explore-card figure { margin: 0; aspect-ratio: 3 / 2; overflow: hidden; background: var(--mv-photo-bg); }
    .mv-explore-card img { width: 100%; height: 100%; object-fit: cover; }
    .mv-explore-card[data-key="toad"] img { object-position: 50% 70%; }
    .mv-explore-card .mv-explore-d { margin: 14px 0 0; }
    .mv-explore-panel { margin-top: 32px; }
    .mv-explore-plan-label { display: block; margin: 0 0 12px; }
    .mv-explore .mv-explore-plan { --pad: 10px; margin-top: 0; }

    .gallery-grid,
    .gallery-grid.expanded { grid-template-columns: repeat(2, 1fr); gap: 6px; }
    .gallery-grid:not(.expanded) .gallery-item:first-child { grid-column: 1 / -1; grid-row: auto; aspect-ratio: 3 / 2; }
    /* Suur esimene + paarid: kuues jääks üksi reale, nii et kokkupandult näita viit. */
    .gallery-grid:not(.expanded) .gallery-item:nth-child(6) { display: none; }
    .gallery-tabs { gap: 20px; }

    .mv-footer-cols { grid-template-columns: 1fr; gap: 28px; }
}

@media (max-width: 600px) {
    .mv-rooms-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
    .mv-room-name { font-size: 1rem; }
    .mv-review-grid { grid-template-columns: 1fr; }
    .mv-reviews-head { grid-template-columns: 1fr; gap: 24px; }
    .mv-form-row { grid-template-columns: 1fr; }
    .mv-dl { grid-template-columns: 1fr; }
    .mv-dl dt { padding-bottom: 0; border-bottom: 0; }
    .mv-dl dd { padding-top: 4px; }
    .gallery-more { flex-direction: column; align-items: stretch; }
    .gallery-more .mv-link { align-self: flex-start; min-height: 0; padding-bottom: 6px; }
}

/* --- Mobiili ülevaatus: puutealad ja kitsad kohad ---------------------------- */
/* Ainult hamburgeri vaates — üle 1145px peidab styles.css menüünupu ja see peab nii jääma. */
@media (max-width: 1145px) {
    .nav-toggle { width: 44px; height: 44px; display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; padding: 0; }
    .nav-toggle span { width: 22px; margin: 0; }
}
@media (max-width: 980px) {
    /* Kalendri all olev kokkuvõte on sama lai kui kalender, mitte 480px keskel. */
    #booking-app .bk-side-pane { max-width: none; }
}
@media (max-width: 600px) {
    #booking-app .bk-info-bar strong { font-size: 1.2rem; white-space: nowrap; }
    #booking-app .bk-info-bar small { letter-spacing: 0.06em; }
    .mv-copy { padding: 7px 12px; margin-left: 8px; }
    .mv-link { padding-top: 12px; }
    .mv-legal .mv-legal-nav .lang-switch a { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; }
    .mv-legal .policy-lang-switch a,
    .mv-legal .policy-lang-switch span { padding-top: 10px; padding-bottom: 10px; }
}

/* Telefonis: nupud kogu sisu laiuses, tekst keskel; "Broneeri kohe" on alaserva riba ääreni. */
@media (max-width: 600px) {
    .mv-btn { width: 100%; justify-content: center; text-align: center; }
    .mv-contact .mv-form .mv-btn { align-self: stretch; }
}
/* Peidus riba ei tohi jääda klaviatuuriga kättesaadavaks (nähtamatu link Tab-järjekorras). */
.sticky-book--hidden { visibility: hidden; transition: transform 0.3s ease, opacity 0.3s ease, visibility 0s linear 0.3s; }
@media (max-width: 768px) {
    .sticky-book { left: 0; right: 0; bottom: 0; }
    .sticky-book--hidden { transform: translateY(100%); }
    .sticky-book-btn {
        display: flex;
        justify-content: center;
        width: 100%;
        box-sizing: border-box;
        min-height: calc(56px + env(safe-area-inset-bottom, 0px));
        padding: 0 20px env(safe-area-inset-bottom, 0px);
        border: 0;
        border-top: 1px solid var(--mv-green-deep);
        font-size: 12.5px;
        letter-spacing: 0.2em;
    }
    .sticky-book-btn:active { transform: none; }
}

/* Telefonis legendi kolm märki alati ühel real (28px vahega murdus 360–375px laiusel). */
@media (max-width: 600px) {
    #booking-app .bk-legend { flex-wrap: nowrap; gap: 16px; white-space: nowrap; }
}
/* Kõige kitsamad telefonid (320px): 7 × 38px päeva + kasti sisevahe ei mahtunud — leht läks 8px laiemaks. */
@media (max-width: 359px) {
    #booking-app .bk-grid { grid-template-columns: repeat(7, minmax(0, 1fr)); }
    #booking-app .bk-day span { width: 34px; height: 34px; }
    #booking-app .bk-day.bk-inrange::before,
    #booking-app .bk-day.bk-checkin::before,
    #booking-app .bk-day.bk-checkout::before { height: 34px; }
    /* Legendi kolm märki ühele reale. */
    #booking-app .bk-legend { gap: 10px; justify-content: space-between; font-size: 11.5px; }
    #booking-app .bk-legend span { gap: 5px; }
    #booking-app .bk-leg { width: 20px; height: 20px; font-size: 11px; }
}

@media (prefers-reduced-motion: reduce) {
    .mv-explore-photo img,
    .mv-room figure img,
    .gallery-item img { transition: none; }
}

/* Broneerimisvidin: kalendri kerimisasendit hoiab booking.js (updateDates) ise.
   Brauseri kerimisankur valis muidu vahetatud kuupäevanupu ja nihutas lehte
   kuupäeva valimisel topelt. */
.bk-layout { overflow-anchor: none; }
