/*
 * Premium secondary-page and conversion-surface polish.
 *
 * Theme contract is owned by premium-theme-v2.css. This file deliberately
 * consumes semantic tokens only so price, service, legal and modal surfaces
 * remain coherent in both light and dark modes.
 */

/* ---------- Secondary-page canvas and editorial rhythm ---------- */

body:not(.home):not(.front-page) .rm-main {
    color: var(--rm-text);
    background:
        radial-gradient(circle at 8% 12%, color-mix(in srgb, var(--rm-accent) 9%, transparent), transparent 30rem),
        radial-gradient(circle at 92% 38%, color-mix(in srgb, var(--rm-focus) 7%, transparent), transparent 34rem),
        var(--rm-canvas);
}

body:not(.home):not(.front-page) .rm-section {
    color: var(--rm-text);
    background: transparent;
}

body:not(.home):not(.front-page) .rm-section--dark {
    background:
        linear-gradient(180deg, color-mix(in srgb, var(--rm-canvas-subtle) 96%, transparent), var(--rm-canvas-subtle));
}

body:not(.home):not(.front-page) .rm-section-head {
    max-width: 860px;
}

body:not(.home):not(.front-page) .rm-section-head h2,
body:not(.home):not(.front-page) .rm-content-card h2,
body:not(.home):not(.front-page) .rm-gift-card h2,
body:not(.home):not(.front-page) .rm-footer__cta-copy h2 {
    color: var(--rm-text);
    letter-spacing: -0.045em;
    text-wrap: balance;
}

body:not(.home):not(.front-page) .rm-section-head p,
body:not(.home):not(.front-page) .rm-section-copy,
body:not(.home):not(.front-page) .rm-content-card > p,
body:not(.home):not(.front-page) .rm-gift-card p {
    color: var(--rm-text-muted);
    text-wrap: pretty;
}

body:not(.home):not(.front-page) .rm-kicker {
    border-color: color-mix(in srgb, var(--rm-accent) 28%, var(--rm-border));
    background: color-mix(in srgb, var(--rm-accent) 9%, var(--rm-surface-glass));
    color: color-mix(in srgb, var(--rm-accent) 82%, var(--rm-text));
}

body:not(.home):not(.front-page) .rm-breadcrumbs,
body:not(.home):not(.front-page) .rm-breadcrumbs a,
body:not(.home):not(.front-page) .rm-breadcrumbs__current {
    color: var(--rm-text-muted);
}

body:not(.home):not(.front-page) .rm-breadcrumbs a {
    text-decoration-color: color-mix(in srgb, var(--rm-accent) 48%, transparent);
    text-underline-offset: 5px;
    transition: color 180ms ease, text-decoration-color 180ms ease;
}

body:not(.home):not(.front-page) .rm-breadcrumbs a:hover {
    color: var(--rm-text);
    text-decoration-color: var(--rm-accent);
}

/* The header is sticky but remains in document flow. Reserve editorial
 * breathing room here without adding a second full header offset. */
body.rosmouka-site .rm-price-page .rm-page-hero--price,
body.rosmouka-site .rm-page-hero--privacy {
    padding-top: clamp(38px, 5vw, 68px) !important;
}

body.rosmouka-site .rm-price-page .rm-page-hero--price {
    padding-bottom: clamp(44px, 5vw, 72px) !important;
}

body.rosmouka-site .rm-page-hero--privacy {
    padding-bottom: clamp(38px, 4.5vw, 60px) !important;
}

/* The legacy stability layer intentionally centers the price hero in one
 * column. Premium desktop restores the original split concept so the first
 * screen stays decisive instead of becoming a tall preamble. */
@media (min-width: 1024px) {
    body.rosmouka-site .rm-price-page .rm-price-hero {
        width: min(100%, 1240px) !important;
        max-width: 1240px !important;
        grid-template-columns: minmax(0, 1.16fr) minmax(340px, 0.84fr) !important;
        gap: clamp(18px, 2vw, 28px) !important;
        align-items: stretch !important;
        justify-items: stretch !important;
        text-align: left !important;
    }

    body.rosmouka-site .rm-price-page .rm-price-hero__copy,
    body.rosmouka-site .rm-price-page .rm-price-hero__aside {
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
    }

    body.rosmouka-site .rm-price-page .rm-price-hero__copy {
        justify-items: start !important;
        text-align: left !important;
    }

    body.rosmouka-site .rm-price-page .rm-price-hero__copy :is(h1, p) {
        margin-inline: 0 !important;
        text-align: left !important;
    }

    body.rosmouka-site .rm-price-page .rm-price-hero__aside {
        grid-template-columns: 1fr !important;
        justify-items: stretch !important;
    }

    body.rosmouka-site .rm-price-page .rm-price-hero__actions {
        justify-content: flex-start !important;
    }

    body.rosmouka-site .rm-price-page .rm-page-hero--price {
        padding-bottom: clamp(52px, 5vw, 72px) !important;
    }

    body.rosmouka-site .rm-price-page .rm-calc-stage .rm-calc-card[data-calculator="regular"] {
        max-width: 760px !important;
        margin-inline: auto !important;
        justify-self: center !important;
    }
}

/* ---------- Reusable editorial cards ---------- */

body:not(.home):not(.front-page) :is(
    .rm-content-card,
    .rm-feature-card,
    .rm-path-card,
    .rm-review-card,
    .rm-contact-card,
    .rm-gallery-card,
    .rm-faq-item,
    .rm-price-meta-card,
    .rm-price-note-card,
    .rm-price-hero-card,
    .rm-career-application__note
) {
    border: 1px solid var(--rm-border);
    background:
        linear-gradient(145deg, color-mix(in srgb, var(--rm-surface-raised) 94%, var(--rm-accent) 6%), var(--rm-surface));
    box-shadow: var(--rm-shadow-card);
}

body:not(.home):not(.front-page) :is(
    .rm-feature-card,
    .rm-path-card,
    .rm-review-card,
    .rm-contact-card,
    .rm-gallery-card,
    .rm-faq-item,
    .rm-price-meta-card,
    .rm-price-hero-card
) {
    position: relative;
    isolation: isolate;
    transition:
        transform 320ms cubic-bezier(.22, 1, .36, 1),
        border-color 220ms ease,
        box-shadow 320ms cubic-bezier(.22, 1, .36, 1),
        background-color 220ms ease;
}

body:not(.home):not(.front-page) :is(
    .rm-feature-card,
    .rm-path-card,
    .rm-review-card,
    .rm-contact-card,
    .rm-gallery-card,
    .rm-faq-item,
    .rm-price-meta-card,
    .rm-price-hero-card
)::after {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    border-radius: inherit;
    background: radial-gradient(circle at 12% 0%, color-mix(in srgb, var(--rm-accent) 10%, transparent), transparent 42%);
    opacity: 0;
    transition: opacity 240ms ease;
    pointer-events: none;
}

body:not(.home):not(.front-page) :is(
    .rm-feature-card,
    .rm-path-card,
    .rm-review-card,
    .rm-contact-card,
    .rm-gallery-card,
    .rm-faq-item,
    .rm-price-meta-card,
    .rm-price-hero-card
) :is(h3, strong) {
    color: var(--rm-text);
}

body:not(.home):not(.front-page) :is(
    .rm-feature-card,
    .rm-path-card,
    .rm-review-card,
    .rm-contact-card,
    .rm-gallery-card,
    .rm-faq-item,
    .rm-price-meta-card,
    .rm-price-hero-card
) p {
    color: var(--rm-text-muted);
}

body:not(.home):not(.front-page) .rm-path-card__index {
    display: inline-grid;
    place-items: center;
    width: 44px;
    height: 44px;
    margin-bottom: 18px;
    border: 1px solid color-mix(in srgb, var(--rm-accent) 34%, var(--rm-border));
    border-radius: 50%;
    background: color-mix(in srgb, var(--rm-accent) 10%, var(--rm-surface-glass));
    color: var(--rm-accent);
    font-variant-numeric: tabular-nums;
}

body:not(.home):not(.front-page) .rm-list li::marker {
    color: var(--rm-accent);
}

@media (hover: hover) and (pointer: fine) {
    body:not(.home):not(.front-page) :is(
        .rm-feature-card,
        .rm-path-card,
        .rm-review-card,
        .rm-contact-card,
        .rm-gallery-card,
        .rm-faq-item,
        .rm-price-meta-card,
        .rm-price-hero-card
    ):hover {
        transform: translateY(-5px);
        border-color: var(--rm-border-strong);
        box-shadow: var(--rm-shadow-lift);
    }

    body:not(.home):not(.front-page) :is(
        .rm-feature-card,
        .rm-path-card,
        .rm-review-card,
        .rm-contact-card,
        .rm-gallery-card,
        .rm-faq-item,
        .rm-price-meta-card,
        .rm-price-hero-card
    ):hover::after {
        opacity: 1;
    }
}

body:not(.home):not(.front-page) :is(
    .rm-feature-card,
    .rm-path-card,
    .rm-review-card,
    .rm-contact-card,
    .rm-gallery-card,
    .rm-faq-item,
    .rm-price-meta-card,
    .rm-price-hero-card
):focus-within {
    border-color: var(--rm-focus);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--rm-focus) 20%, transparent), var(--rm-shadow-card);
}

/* ---------- Services archive and SEO service landings ---------- */

.rm-services-page .rm-services-grid {
    gap: clamp(16px, 2vw, 24px);
}

.rm-services-page .rm-service-card {
    position: relative;
    isolation: isolate;
    border: 1px solid var(--rm-border);
    background:
        linear-gradient(145deg, color-mix(in srgb, var(--rm-surface-raised) 92%, var(--rm-accent) 8%), var(--rm-surface));
    box-shadow: var(--rm-shadow-card);
    transition:
        transform 320ms cubic-bezier(.22, 1, .36, 1),
        border-color 220ms ease,
        box-shadow 320ms cubic-bezier(.22, 1, .36, 1);
}

.rm-services-page .rm-service-card.is-featured {
    border-color: color-mix(in srgb, var(--rm-accent) 52%, var(--rm-border));
    background:
        linear-gradient(145deg, color-mix(in srgb, var(--rm-surface-raised) 84%, var(--rm-accent) 16%), var(--rm-surface));
}

.rm-services-page .rm-service-card__badge,
.rm-services-page .rm-service-card__price {
    border: 1px solid color-mix(in srgb, var(--rm-accent) 26%, var(--rm-border));
    background: color-mix(in srgb, var(--rm-accent) 9%, var(--rm-surface-glass));
    color: var(--rm-text);
}

.rm-services-page .rm-service-card__price {
    color: var(--rm-accent);
    font-variant-numeric: tabular-nums;
}

.rm-services-page .rm-service-card :is(h3, p) {
    color: var(--rm-text);
}

.rm-services-page .rm-service-card p {
    color: var(--rm-text-muted);
}

.rm-services-page .rm-service-card__foot {
    margin-top: auto;
    padding-top: 18px;
    border-top: 1px solid var(--rm-border);
}

.rm-services-page .rm-service-card :is(.rm-contact-link, .rm-service-card__link) {
    transition: color 180ms ease, transform 180ms ease, background-color 180ms ease, border-color 180ms ease;
}

@media (hover: hover) and (pointer: fine) {
    .rm-services-page .rm-service-card:hover {
        transform: translateY(-6px);
        border-color: var(--rm-border-strong);
        box-shadow: var(--rm-shadow-lift);
    }

    .rm-services-page .rm-service-card :is(.rm-contact-link, .rm-service-card__link):hover {
        color: var(--rm-accent);
    }
}

body:not(.home):not(.front-page) .rm-price-nav {
    gap: 10px;
}

body:not(.home):not(.front-page) .rm-price-nav a {
    border: 1px solid var(--rm-border);
    background: var(--rm-surface-glass);
    color: var(--rm-text-muted);
    box-shadow: 0 8px 22px color-mix(in srgb, var(--rm-media-overlay) 10%, transparent);
    transition:
        transform 220ms cubic-bezier(.22, 1, .36, 1),
        color 180ms ease,
        border-color 180ms ease,
        background-color 180ms ease;
}

body:not(.home):not(.front-page) .rm-price-nav a:hover,
body:not(.home):not(.front-page) .rm-price-nav a:focus-visible {
    color: var(--rm-text);
    border-color: color-mix(in srgb, var(--rm-accent) 48%, var(--rm-border));
    background: color-mix(in srgb, var(--rm-accent) 10%, var(--rm-surface-glass));
    transform: translateY(-2px);
}

/* ---------- Price cards, tables and calculators ---------- */

.rm-price-page .rm-price-stack {
    gap: clamp(18px, 2.2vw, 28px);
}

.rm-price-page .rm-price-card,
.rm-services-page .rm-price-card {
    border: 1px solid var(--rm-border);
    background: var(--rm-surface);
    box-shadow: var(--rm-shadow-card);
}

:is(.rm-price-page, .rm-services-page) .rm-price-card__head {
    position: relative;
    border-bottom: 1px solid var(--rm-border);
    background:
        radial-gradient(circle at 0% 0%, color-mix(in srgb, var(--rm-accent) 10%, transparent), transparent 42%),
        var(--rm-surface-raised);
}

:is(.rm-price-page, .rm-services-page) .rm-price-card__head :is(h2, h3) {
    color: var(--rm-text);
}

:is(.rm-price-page, .rm-services-page) .rm-price-card__head p,
:is(.rm-price-page, .rm-services-page) .rm-price-card__note {
    color: var(--rm-text-muted);
}

:is(.rm-price-page, .rm-services-page) .rm-price-table-wrap {
    scrollbar-color: color-mix(in srgb, var(--rm-accent) 38%, var(--rm-border)) transparent;
    scrollbar-width: thin;
}

:is(.rm-price-page, .rm-services-page) .rm-price-table {
    border-spacing: 0;
    color: var(--rm-text);
    background: var(--rm-surface);
}

:is(.rm-price-page, .rm-services-page) .rm-price-table thead th {
    border-color: var(--rm-border);
    background: var(--rm-canvas-subtle);
    color: var(--rm-text-muted);
}

:is(.rm-price-page, .rm-services-page) .rm-price-table tbody :is(th, td) {
    border-color: var(--rm-border);
    color: var(--rm-text);
    transition: background-color 160ms ease, color 160ms ease;
}

:is(.rm-price-page, .rm-services-page) .rm-price-table tbody tr:nth-child(even) :is(th, td) {
    background: color-mix(in srgb, var(--rm-surface-raised) 70%, transparent);
}

@media (hover: hover) and (pointer: fine) {
    :is(.rm-price-page, .rm-services-page) .rm-price-table tbody tr:hover :is(th, td) {
        background: color-mix(in srgb, var(--rm-accent) 8%, var(--rm-surface));
    }
}

.rm-price-page .rm-calc-switcher {
    border: 1px solid var(--rm-border);
    background: var(--rm-surface);
    box-shadow: var(--rm-shadow-card);
}

.rm-price-page .rm-calc-switcher__rail {
    border: 1px solid var(--rm-border);
    background: var(--rm-canvas-subtle);
}

.rm-price-page .rm-calc-switcher__button {
    color: var(--rm-text-muted);
    background: transparent;
    transition:
        color 180ms ease,
        background-color 180ms ease,
        box-shadow 220ms ease,
        transform 220ms cubic-bezier(.22, 1, .36, 1);
}

.rm-price-page .rm-calc-switcher__button:is(.is-active, [aria-selected="true"]) {
    color: var(--rm-on-accent);
    background: var(--rm-accent);
    box-shadow: 0 10px 24px color-mix(in srgb, var(--rm-accent) 25%, transparent);
}

.rm-price-page .rm-calc-card {
    border: 1px solid var(--rm-border);
    background: var(--rm-surface);
    box-shadow: var(--rm-shadow-card);
}

.rm-price-page .rm-calc-card__head {
    border-bottom: 1px solid var(--rm-border);
    background:
        radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--rm-accent) 9%, transparent), transparent 40%),
        var(--rm-surface-raised);
}

.rm-price-page .rm-calc-card__head :is(h3, p),
.rm-price-page .rm-calc-label,
.rm-price-page .rm-calc-result__label {
    color: var(--rm-text);
}

.rm-price-page .rm-calc-card__head p,
.rm-price-page .rm-calc-note,
.rm-price-page :is(.rm-option-card__meta, .rm-ppf-class-card__text, .rm-ppf-film-card__text, .rm-ppf-package-card__text, .rm-ppf-package-card__meta) {
    color: var(--rm-text-muted);
}

.rm-price-page :is(
    .rm-segmented,
    .rm-option-card,
    .rm-ppf-class-card,
    .rm-ppf-film-card,
    .rm-ppf-package-card,
    .rm-ppf-zone-chip,
    .rm-ppf-hero-strip,
    .rm-calc-result,
    .rm-ppf-summary-card
) {
    border-color: var(--rm-border);
    background: var(--rm-surface-glass);
    color: var(--rm-text);
}

.rm-price-page :is(
    .rm-segmented__button,
    .rm-option-card,
    .rm-ppf-class-card,
    .rm-ppf-film-card,
    .rm-ppf-package-card,
    .rm-ppf-zone-chip
) {
    transition:
        transform 220ms cubic-bezier(.22, 1, .36, 1),
        color 180ms ease,
        border-color 180ms ease,
        background-color 180ms ease,
        box-shadow 220ms ease;
}

.rm-price-page :is(
    .rm-segmented__button,
    .rm-option-card,
    .rm-ppf-class-card,
    .rm-ppf-film-card,
    .rm-ppf-package-card,
    .rm-ppf-zone-chip
):is(.is-active, [aria-pressed="true"]) {
    border-color: color-mix(in srgb, var(--rm-accent) 64%, var(--rm-border));
    background: color-mix(in srgb, var(--rm-accent) 13%, var(--rm-surface-raised));
    color: var(--rm-text);
    box-shadow:
        inset 0 0 0 1px color-mix(in srgb, var(--rm-accent) 22%, transparent),
        0 12px 28px color-mix(in srgb, var(--rm-accent) 12%, transparent);
}

.rm-price-page .rm-ppf-zone-chip.is-included {
    border-color: color-mix(in srgb, var(--rm-focus) 48%, var(--rm-border));
    background: color-mix(in srgb, var(--rm-focus) 11%, var(--rm-surface-glass));
    color: var(--rm-text-muted);
}

.rm-price-page :is(
    .rm-segmented__button,
    .rm-option-card,
    .rm-ppf-class-card,
    .rm-ppf-film-card,
    .rm-ppf-package-card,
    .rm-ppf-zone-chip
):focus-visible {
    outline: 3px solid color-mix(in srgb, var(--rm-focus) 72%, transparent);
    outline-offset: 3px;
}

@media (hover: hover) and (pointer: fine) {
    .rm-price-page :is(
        .rm-segmented__button,
        .rm-option-card,
        .rm-ppf-class-card,
        .rm-ppf-film-card,
        .rm-ppf-package-card,
        .rm-ppf-zone-chip
    ):not(:disabled):hover {
        transform: translateY(-3px);
        border-color: var(--rm-border-strong);
        background: color-mix(in srgb, var(--rm-accent) 8%, var(--rm-surface-raised));
    }
}

.rm-price-page .rm-calc-result__price,
.rm-price-page .rm-ppf-package-card__price,
.rm-price-page .rm-ppf-package-showcase__price {
    color: var(--rm-text);
    font-variant-numeric: tabular-nums;
}

.rm-price-page .rm-calc-result__price--accent {
    color: var(--rm-accent);
}

.rm-price-page :is(.rm-ppf-landing, .rm-ppf-package-showcase__card, .rm-ppf-journey-card, .rm-ppf-landing__fact) {
    border-color: var(--rm-border);
    background: var(--rm-surface);
    color: var(--rm-text);
    box-shadow: var(--rm-shadow-card);
}

.rm-price-page :is(.rm-ppf-landing, .rm-ppf-package-showcase__card, .rm-ppf-journey-card, .rm-ppf-landing__fact) p {
    color: var(--rm-text-muted);
}

.rm-price-page .rm-ppf-package-showcase__card {
    transition: transform 260ms cubic-bezier(.22, 1, .36, 1), border-color 180ms ease, box-shadow 260ms ease;
}

@media (min-width: 1024px) {
    .rm-price-page .rm-ppf-summary-card {
        position: sticky;
        top: 112px;
        align-self: start;
    }
}

@media (hover: hover) and (pointer: fine) {
    .rm-price-page .rm-ppf-package-showcase__card:hover {
        transform: translateY(-4px);
        border-color: color-mix(in srgb, var(--rm-accent) 42%, var(--rm-border));
        box-shadow: var(--rm-shadow-lift);
    }
}

/* ---------- Privacy, ordinary pages and career application ---------- */

.rm-privacy-page .rm-privacy-intro {
    gap: clamp(18px, 2.2vw, 28px);
}

.rm-privacy-page :is(.rm-privacy-intro__copy, .rm-privacy-intro__panel) {
    border: 1px solid var(--rm-border);
    background: var(--rm-surface);
    box-shadow: var(--rm-shadow-card);
}

.rm-privacy-page .rm-privacy-intro__panel {
    background:
        radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--rm-accent) 10%, transparent), transparent 48%),
        var(--rm-surface-raised);
}

.rm-privacy-page .rm-inline-note {
    border-color: var(--rm-border);
    background: var(--rm-surface-glass);
    color: var(--rm-text-muted);
}

.rm-privacy-page .rm-faq-item h3 {
    color: var(--rm-text);
}

.rm-privacy-page .rm-faq-item p {
    color: var(--rm-text-muted);
}

body:not(.home):not(.front-page) .rm-career-application {
    gap: clamp(18px, 2.4vw, 30px);
}

body:not(.home):not(.front-page) :is(.rm-career-application__copy, .rm-career-application__card) {
    border-color: var(--rm-border);
    background: var(--rm-surface);
    box-shadow: var(--rm-shadow-card);
}

/* ---------- Gallery, reviews, contacts and consent-aware map ---------- */

body:not(.home):not(.front-page) .rm-gallery-grid {
    align-items: start;
    gap: clamp(16px, 2vw, 24px);
}

body:not(.home):not(.front-page) .rm-gallery-card {
    overflow: hidden;
}

body:not(.home):not(.front-page) .rm-gallery-card__media {
    overflow: hidden;
    aspect-ratio: 4 / 5;
    background: var(--rm-canvas-subtle);
}

body:not(.home):not(.front-page) .rm-gallery-card:nth-child(3n + 2) .rm-gallery-card__media {
    aspect-ratio: 1 / 1;
}

body:not(.home):not(.front-page) .rm-gallery-card:nth-child(3n) .rm-gallery-card__media {
    aspect-ratio: 5 / 6;
}

body:not(.home):not(.front-page) .rm-gallery-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 700ms cubic-bezier(.22, 1, .36, 1), filter 320ms ease;
}

body:not(.home):not(.front-page) .rm-gallery-card__body {
    border-top: 1px solid var(--rm-border);
    background: var(--rm-surface);
}

@media (hover: hover) and (pointer: fine) {
    body:not(.home):not(.front-page) .rm-gallery-card:hover .rm-gallery-card__media img {
        transform: scale(1.045);
        filter: saturate(1.06) contrast(1.02);
    }
}

body:not(.home):not(.front-page) .rm-review-card__rating,
body:not(.home):not(.front-page) .rm-rating-link__stars {
    color: var(--rm-accent);
}

body:not(.home):not(.front-page) .rm-rating-link {
    border-color: var(--rm-border);
    background: var(--rm-surface-glass);
    color: var(--rm-text-muted);
}

body:not(.home):not(.front-page) .rm-rating-link:hover,
body:not(.home):not(.front-page) .rm-rating-link:focus-visible {
    border-color: color-mix(in srgb, var(--rm-accent) 42%, var(--rm-border));
    background: color-mix(in srgb, var(--rm-accent) 8%, var(--rm-surface-glass));
    color: var(--rm-text);
}

body:not(.home):not(.front-page) .rm-contact-card--accent {
    border-color: color-mix(in srgb, var(--rm-accent) 48%, var(--rm-border));
    background:
        radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--rm-accent) 15%, transparent), transparent 46%),
        var(--rm-surface-raised);
}

body:not(.home):not(.front-page) .rm-contact-card__label {
    color: var(--rm-accent);
}

body:not(.home):not(.front-page) .rm-contact-link {
    color: var(--rm-text);
    text-decoration-color: color-mix(in srgb, var(--rm-accent) 42%, transparent);
    text-underline-offset: 5px;
}

.rm-contact-map {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--rm-border);
    background:
        radial-gradient(circle at 72% 18%, color-mix(in srgb, var(--rm-focus) 13%, transparent), transparent 34rem),
        linear-gradient(145deg, var(--rm-surface-raised), var(--rm-surface));
    box-shadow: var(--rm-shadow-card);
}

.rm-contact-map__privacy {
    color: var(--rm-text);
}

.rm-contact-map__privacy p {
    color: var(--rm-text-muted);
}

.rm-contact-map iframe {
    display: block;
    width: 100%;
    border: 0;
}

/* ---------- Footer ---------- */

.rm-footer {
    color: var(--rm-text);
    background:
        radial-gradient(circle at 8% 18%, color-mix(in srgb, var(--rm-accent) 10%, transparent), transparent 32rem),
        linear-gradient(180deg, var(--rm-canvas-subtle), var(--rm-canvas));
    border-top: 1px solid var(--rm-border);
}

.rm-footer .rm-footer__cta {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--rm-accent) 30%, var(--rm-border));
    background:
        radial-gradient(circle at 92% 0%, color-mix(in srgb, var(--rm-accent) 18%, transparent), transparent 40%),
        linear-gradient(145deg, var(--rm-surface-raised), var(--rm-surface));
    box-shadow: var(--rm-shadow-card);
}

.rm-footer .rm-footer__cta::after {
    content: "";
    position: absolute;
    z-index: -1;
    right: -8%;
    bottom: -55%;
    width: 280px;
    aspect-ratio: 1;
    border: 1px solid color-mix(in srgb, var(--rm-accent) 18%, transparent);
    border-radius: 50%;
    box-shadow:
        0 0 0 34px color-mix(in srgb, var(--rm-accent) 4%, transparent),
        0 0 0 72px color-mix(in srgb, var(--rm-accent) 3%, transparent);
    pointer-events: none;
}

.rm-footer :is(.rm-footer__cta-copy h2, .rm-footer__col h3, .rm-footer__phone-primary) {
    color: var(--rm-text);
}

.rm-footer :is(.rm-footer__cta-copy p, .rm-footer__brand p, .rm-footer__col span, .rm-footer__legal, .rm-footer__contact-note) {
    color: var(--rm-text-muted);
}

.rm-footer .rm-brand--footer {
    width: fit-content;
    padding: 12px 16px;
    border: 1px solid color-mix(in srgb, var(--rm-border-strong) 65%, transparent);
    border-radius: 18px;
    background: color-mix(in srgb, var(--rm-media-overlay) 90%, transparent);
}

.rm-footer .rm-footer__col a {
    width: fit-content;
    color: var(--rm-text-muted);
    text-decoration-color: transparent;
    text-underline-offset: 5px;
    transition: color 180ms ease, transform 180ms ease, text-decoration-color 180ms ease;
}

.rm-footer .rm-footer__col a:hover,
.rm-footer .rm-footer__col a:focus-visible {
    color: var(--rm-text);
    text-decoration-color: var(--rm-accent);
    transform: translateX(3px);
}

.rm-footer .rm-footer__rating {
    border-color: var(--rm-border);
    background: var(--rm-surface-glass);
}

.rm-footer .rm-rating-link {
    border-color: var(--rm-border);
    background: var(--rm-surface-glass);
    color: var(--rm-text);
}

.rm-footer .rm-footer__legal {
    border-top: 1px solid var(--rm-border);
}

/* ---------- Booking, gift and FAQ modals ---------- */

:is(.rm-booking-modal__backdrop, .rm-gift-order-modal__backdrop, .rm-faq-modal__backdrop) {
    background: color-mix(in srgb, var(--rm-media-overlay) 86%, transparent);
    backdrop-filter: blur(16px) saturate(.9);
}

:is(.rm-booking-modal__dialog, .rm-gift-order-modal__dialog, .rm-faq-modal__dialog) {
    color: var(--rm-text);
    border: 1px solid var(--rm-border-strong);
    background:
        radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--rm-accent) 10%, transparent), transparent 34rem),
        var(--rm-surface-raised);
    box-shadow: var(--rm-shadow-lift);
    transform: translateY(14px) scale(.985);
    transition: transform 360ms cubic-bezier(.22, 1, .36, 1), opacity 220ms ease;
}

:is(.rm-booking-modal, .rm-gift-order-modal, .rm-faq-modal).is-open :is(
    .rm-booking-modal__dialog,
    .rm-gift-order-modal__dialog,
    .rm-faq-modal__dialog
) {
    transform: translateY(0) scale(1);
}

:is(.rm-booking-modal__header, .rm-gift-order-modal__header, .rm-faq-modal__header) {
    border-bottom: 1px solid var(--rm-border);
    background: color-mix(in srgb, var(--rm-surface-raised) 88%, transparent);
    backdrop-filter: blur(18px) saturate(1.15);
}

:is(.rm-booking-modal__copy, .rm-gift-order-modal__copy, .rm-faq-modal__copy) :is(h2, p) {
    color: var(--rm-text);
}

:is(.rm-booking-modal__copy, .rm-gift-order-modal__copy, .rm-faq-modal__copy) p {
    color: var(--rm-text-muted);
}

.rm-booking-modal__close {
    border: 1px solid var(--rm-border);
    background: var(--rm-surface-glass);
    color: var(--rm-text);
    transition: transform 180ms ease, border-color 180ms ease, background-color 180ms ease;
}

.rm-booking-modal__close:hover,
.rm-booking-modal__close:focus-visible {
    transform: rotate(5deg) scale(1.04);
    border-color: color-mix(in srgb, var(--rm-accent) 48%, var(--rm-border));
    background: color-mix(in srgb, var(--rm-accent) 10%, var(--rm-surface-glass));
}

.rm-booking-modal__link {
    color: var(--rm-text-muted);
    text-decoration-color: color-mix(in srgb, var(--rm-accent) 42%, transparent);
    text-underline-offset: 5px;
}

.rm-booking-modal__frame-wrap {
    border-color: var(--rm-border);
    background: var(--rm-canvas-subtle);
}

.rm-booking-modal__frame-status {
    color: var(--rm-text);
    background: var(--rm-surface);
}

.rm-booking-modal__frame-status p {
    color: var(--rm-text-muted);
}

.rm-faq-modal__item {
    border: 1px solid var(--rm-border);
    background: var(--rm-surface-glass);
    box-shadow: var(--rm-shadow-card);
    transition: transform 220ms cubic-bezier(.22, 1, .36, 1), border-color 180ms ease;
}

.rm-faq-modal__item h3 {
    color: var(--rm-text);
}

.rm-faq-modal__item p,
.rm-faq-modal__footer-copy p {
    color: var(--rm-text-muted);
}

.rm-faq-modal__footer {
    border-top: 1px solid var(--rm-border);
    background: var(--rm-surface);
}

@media (hover: hover) and (pointer: fine) {
    .rm-faq-modal__item:hover {
        transform: translateY(-3px);
        border-color: var(--rm-border-strong);
    }
}

/* ---------- Gift and career forms ---------- */

:is(.rm-gift-order-form, .rm-career-form) {
    color: var(--rm-text);
}

:is(.rm-gift-order-form, .rm-career-form) .rm-gift-order-form__field > span {
    color: var(--rm-text);
}

:is(.rm-gift-order-form, .rm-career-form) .rm-gift-order-form__field :is(input, select, textarea) {
    border: 1px solid var(--rm-border);
    background-color: var(--rm-surface-glass);
    color: var(--rm-text);
    box-shadow: inset 0 1px 0 color-mix(in srgb, var(--rm-border-strong) 44%, transparent);
    transition: border-color 180ms ease, box-shadow 180ms ease, background-color 180ms ease;
}

:is(.rm-gift-order-form, .rm-career-form) .rm-gift-order-form__field :is(input, textarea)::placeholder {
    color: color-mix(in srgb, var(--rm-text-muted) 66%, transparent);
}

:is(.rm-gift-order-form, .rm-career-form) .rm-gift-order-form__field :is(input, select, textarea):focus {
    outline: none;
    border-color: var(--rm-focus);
    background-color: var(--rm-surface-raised);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--rm-focus) 18%, transparent);
}

.rm-gift-order-form__amount {
    border: 1px solid var(--rm-border);
    background: var(--rm-surface-glass);
    color: var(--rm-text);
    transition: transform 200ms cubic-bezier(.22, 1, .36, 1), border-color 180ms ease, background-color 180ms ease;
}

.rm-gift-order-form__amount.is-active {
    border-color: color-mix(in srgb, var(--rm-accent) 62%, var(--rm-border));
    background: color-mix(in srgb, var(--rm-accent) 14%, var(--rm-surface-raised));
    color: var(--rm-text);
}

.rm-form-consent {
    color: var(--rm-text-muted);
}

.rm-form-consent input {
    accent-color: var(--rm-accent);
}

.rm-gift-order-form__status,
.rm-gift-order-form__legal {
    color: var(--rm-text-muted);
}

.rm-gift-order-form__legal a {
    color: var(--rm-text);
    text-decoration-color: color-mix(in srgb, var(--rm-accent) 48%, transparent);
    text-underline-offset: 4px;
}

@media (hover: hover) and (pointer: fine) {
    .rm-gift-order-form__amount:hover {
        transform: translateY(-2px);
        border-color: var(--rm-border-strong);
    }
}

/* ---------- Consent UI ---------- */

.rm-consent-card,
.rm-consent-card.rm-consent-card--compact {
    color: var(--rm-text);
    border: 1px solid var(--rm-border-strong);
    background:
        radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--rm-accent) 12%, transparent), transparent 44%),
        color-mix(in srgb, var(--rm-surface-raised) 92%, transparent);
    box-shadow: var(--rm-shadow-lift);
    backdrop-filter: blur(20px) saturate(1.15);
}

.rm-consent-card__copy h3 {
    color: var(--rm-text);
}

.rm-consent-card__copy p {
    color: var(--rm-text-muted);
}

.rm-consent-dock {
    border: 1px solid var(--rm-border);
    background: color-mix(in srgb, var(--rm-surface-raised) 90%, transparent);
    color: var(--rm-text);
    box-shadow: var(--rm-shadow-card);
    backdrop-filter: blur(16px) saturate(1.1);
}

.rm-consent-dock__label {
    background: var(--rm-surface-glass);
    color: var(--rm-text-muted);
}

.rm-consent-dock:hover,
.rm-consent-dock:focus-visible {
    border-color: color-mix(in srgb, var(--rm-accent) 44%, var(--rm-border));
    background: color-mix(in srgb, var(--rm-accent) 8%, var(--rm-surface-raised));
}

/* ---------- Responsive discipline ---------- */

@media (max-width: 1023px) {
    .rm-price-page .rm-ppf-summary-card {
        position: static;
    }

    body:not(.home):not(.front-page) .rm-gallery-card__media,
    body:not(.home):not(.front-page) .rm-gallery-card:nth-child(3n + 2) .rm-gallery-card__media,
    body:not(.home):not(.front-page) .rm-gallery-card:nth-child(3n) .rm-gallery-card__media {
        aspect-ratio: 4 / 5;
    }
}

@media (max-width: 767px) {
    body.rosmouka-site:not(.home):not(.front-page) .rm-page-hero {
        padding-top: clamp(28px, 8vw, 40px) !important;
        padding-bottom: clamp(32px, 9vw, 46px) !important;
    }

    body.rosmouka-site:not(.home):not(.front-page) .rm-page-hero h1 {
        max-width: min(100%, 15ch) !important;
        font-size: clamp(30px, 9vw, 42px) !important;
        line-height: 1 !important;
        letter-spacing: -.04em !important;
    }

    body.rosmouka-site:not(.home):not(.front-page) .rm-page-hero p {
        max-width: 36ch !important;
        font-size: 15px !important;
        line-height: 1.62 !important;
    }

    body.rosmouka-site .rm-price-page .rm-page-hero--price,
    body.rosmouka-site .rm-page-hero--privacy {
        padding-top: clamp(30px, 8vw, 42px) !important;
        padding-bottom: clamp(34px, 9vw, 48px) !important;
    }

    body.rosmouka-site .rm-price-page .rm-price-hero__copy h1,
    body.rosmouka-site .rm-page-hero--privacy .rm-price-hero__copy h1 {
        max-width: min(100%, 14ch) !important;
        font-size: clamp(30px, 9.2vw, 42px) !important;
        line-height: .98 !important;
        letter-spacing: -.04em !important;
    }

    body.rosmouka-site .rm-price-page .rm-price-hero__copy p,
    body.rosmouka-site .rm-page-hero--privacy .rm-price-hero__copy p {
        max-width: 36ch !important;
        font-size: 15px !important;
        line-height: 1.62 !important;
    }

    body:not(.home):not(.front-page) :is(
        .rm-content-card,
        .rm-feature-card,
        .rm-path-card,
        .rm-review-card,
        .rm-contact-card,
        .rm-gallery-card,
        .rm-faq-item,
        .rm-price-meta-card,
        .rm-price-note-card,
        .rm-price-hero-card
    ) {
        box-shadow: 0 14px 34px color-mix(in srgb, var(--rm-media-overlay) 10%, transparent);
    }

    :is(.rm-price-page, .rm-services-page) .rm-price-table tbody th {
        position: sticky;
        left: 0;
        z-index: 1;
        min-width: 172px;
        background: var(--rm-surface-raised);
        box-shadow: 1px 0 0 var(--rm-border);
    }

    :is(.rm-booking-modal__header, .rm-gift-order-modal__header, .rm-faq-modal__header) {
        position: sticky;
        z-index: 4;
        top: 0;
    }

    .rm-footer .rm-footer__cta::after {
        right: -36%;
        bottom: -34%;
        width: 220px;
    }

    .rm-consent-card,
    .rm-consent-card.rm-consent-card--compact {
        backdrop-filter: blur(14px) saturate(1.08);
    }
}

/* ---------- Motion with an accessible fallback ---------- */

@keyframes rm-page-card-reveal {
    from {
        opacity: .35;
        translate: 0 22px;
        scale: .99;
    }

    to {
        opacity: 1;
        translate: 0 0;
        scale: 1;
    }
}

@supports (animation-timeline: view()) {
    body:not(.home):not(.front-page) :is(
        .rm-content-card,
        .rm-service-card,
        .rm-feature-card,
        .rm-path-card,
        .rm-review-card,
        .rm-contact-card,
        .rm-gallery-card,
        .rm-faq-item,
        .rm-price-card
    ) {
        animation-name: rm-page-card-reveal;
        animation-duration: 1ms;
        animation-fill-mode: both;
        animation-timing-function: linear;
        animation-timeline: view();
        animation-range: entry 4% cover 20%;
    }
}

@media (prefers-reduced-motion: reduce) {
    body:not(.home):not(.front-page) :is(
        .rm-content-card,
        .rm-service-card,
        .rm-feature-card,
        .rm-path-card,
        .rm-review-card,
        .rm-contact-card,
        .rm-gallery-card,
        .rm-faq-item,
        .rm-price-card
    ),
    body:not(.home):not(.front-page) .rm-gallery-card__media img,
    :is(.rm-booking-modal__dialog, .rm-gift-order-modal__dialog, .rm-faq-modal__dialog),
    .rm-booking-modal__close,
    .rm-consent-dock {
        animation: none;
        transition-duration: .01ms;
        transform: none;
        translate: none;
        scale: none;
    }
}

/* ---------- Search ---------- */

.rm-search-hero .rm-container {
    display: grid;
    gap: clamp(16px, 2vw, 24px);
}

.rm-search-hero h1 {
    max-width: 16ch;
}

.rm-search-hero p {
    max-width: 62ch;
}

.rm-search-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    width: min(720px, 100%);
    padding: 10px;
    border: 1px solid var(--rm-border);
    border-radius: 999px;
    background: var(--rm-surface-glass);
    box-shadow: var(--rm-shadow-card);
}

.rm-search-form input {
    min-width: 0;
    padding: 0 18px;
    border: 0;
    outline: 0;
    color: var(--rm-text);
    background: transparent;
    font: 600 15px/1.4 var(--rm-v2-font-body);
}

.rm-search-form input::placeholder {
    color: var(--rm-text-muted);
}

.rm-search-form input:focus-visible {
    border-radius: 999px;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--rm-focus) 45%, transparent);
}

.rm-search-form .rm-button {
    min-width: 132px;
}

.rm-search-section .rm-section-heading {
    margin-bottom: clamp(22px, 3vw, 34px);
}

.rm-search-results {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(16px, 2vw, 24px);
}

.rm-search-result,
.rm-search-empty {
    border: 1px solid var(--rm-border);
    border-radius: var(--rm-v2-radius-card);
    background: var(--rm-v2-card);
    box-shadow: var(--rm-shadow-card);
}

.rm-search-result {
    display: grid;
    align-content: start;
    gap: 14px;
    min-height: 260px;
    padding: clamp(24px, 3vw, 34px);
    transition:
        translate var(--rm-v2-speed-fast) var(--rm-v2-ease),
        border-color var(--rm-v2-speed-fast) ease,
        box-shadow var(--rm-v2-speed-fast) ease;
}

.rm-search-result:hover {
    translate: 0 -4px;
    border-color: var(--rm-border-strong);
    box-shadow: var(--rm-shadow-lift);
}

.rm-search-result h3 {
    margin: 0;
    font-family: var(--rm-v2-font-display);
    font-size: clamp(26px, 3vw, 38px);
    font-weight: 400;
    line-height: 1.08;
    letter-spacing: -.035em;
}

.rm-search-result h3 a {
    color: var(--rm-text);
    text-decoration: none;
}

.rm-search-result p,
.rm-search-empty p {
    margin: 0;
    color: var(--rm-text-muted);
    line-height: 1.7;
}

.rm-search-result .rm-contact-link {
    justify-self: start;
    margin-top: auto;
}

.rm-search-empty {
    display: grid;
    gap: 18px;
    max-width: 900px;
    padding: clamp(28px, 5vw, 52px);
}

.rm-search-empty h2 {
    max-width: 18ch;
    margin: 0;
}

@media (max-width: 720px) {
    .rm-search-form {
        grid-template-columns: 1fr;
        border-radius: var(--rm-v2-radius-card);
    }

    .rm-search-form input {
        min-height: 48px;
    }

    .rm-search-form .rm-button {
        width: 100%;
    }

    .rm-search-results {
        grid-template-columns: 1fr;
    }

    .rm-search-result {
        min-height: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .rm-search-result {
        transition: none;
        translate: none;
    }
}
