/* Visible theme choices, readable experience cards, and the gallery bed plan. */
.theme-switch {
    display: inline-flex;
    padding: 3px;
    gap: 3px;
    border: 1px solid #a6aea3;
    border-radius: 999px;
    background: #f8f6f1;
    color: #20382a;
    box-shadow: 0 4px 18px rgba(0, 0, 0, .12);
}
.theme-switch button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 44px;
    padding: 8px 13px;
    border: 1px solid transparent;
    border-radius: 999px;
    background: transparent;
    color: inherit;
    font: 600 13px/1.2 "Inter", sans-serif;
    white-space: nowrap;
    cursor: pointer;
}
.theme-switch button[aria-pressed="true"] { background: #20382a; color: #fff; }
.theme-switch button:hover { border-color: currentColor; }
.theme-switch button:focus-visible,
.gallery-tile--bed-plan:focus-visible,
.nature-card:focus-visible,
.gallery-image-frame:focus-visible { outline: 3px solid #b58c36; outline-offset: 3px; }
body[data-theme="dark"] .theme-switch { background: #202a23; color: #f5f1e8; border-color: #7b887b; }
body[data-theme="dark"] .theme-switch button[aria-pressed="true"] { background: #e4dcc9; color: #20382a; }
.nav-appearance { display: none; }
@media (max-width: 768px) {
    .site-nav { height: 60px; gap: 12px; transform: none; opacity: 1; }
    .nav-appearance { display: flex; margin-left: auto; }
    .nav-appearance .theme-switch { padding: 1px; gap: 0; box-shadow: none; }
    .nav-appearance .theme-switch button { padding: 8px 10px; }
    .nav-hamburger { position: static; transform: none; flex: 0 0 44px; width: 44px; height: 44px; }
    .mobile-menu { top: 60px; }
    .mobile-menu.open { max-height: calc(100dvh - 60px); }
    .hero { margin-top: 60px; }
}
@media (max-width: 600px) {
    .site-nav .brand-logo-lockup__text { display: none; }
}

/* Make the room photographs an obvious next step in the house introduction. */
.house-showcase-actions .room-worlds-cta {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1 1 100%;
    min-width: 0;
    min-height: 60px;
    padding: 16px 20px;
    border: 2px solid #20382a;
    border-radius: 12px;
    background: #20382a;
    color: #fff;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0;
    text-transform: none;
    box-shadow: 0 8px 22px rgba(32, 56, 42, .2);
    transition: transform .2s ease, box-shadow .2s ease;
}
.room-worlds-cta svg { flex: 0 0 26px; }
.room-worlds-cta [data-i18n] { min-width: 0; }
.room-worlds-cta__arrow { margin-left: auto; font-size: 24px; }
.house-showcase-actions .room-worlds-cta:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(32, 56, 42, .3); }
.house-showcase-actions .room-worlds-cta:focus-visible { outline: 3px solid #b58c36; outline-offset: 4px; }
body[data-theme="dark"] .house-showcase-actions .room-worlds-cta { background: #e4c780; color: #20382a; border-color: #e4c780; }
@media (max-width: 380px) {
    .house-showcase-actions .room-worlds-cta { padding: 14px; gap: 10px; font-size: 16px; }
}

/* Solid surfaces keep text legible regardless of the forest photograph. */
.nature-section {
    --nature-surface: #f8f6f1;
    --nature-ink: #20382a;
    --nature-muted: #4d5d52;
    --nature-accent: #735319;
    --nature-line: #c7cfc2;
    padding: 100px 5%;
    scroll-margin-top: 76px;
}
body[data-theme="dark"] .nature-section {
    --nature-surface: #263c30;
    --nature-ink: #f5f2eb;
    --nature-muted: #d8e1d7;
    --nature-accent: #e8cd91;
    --nature-line: #81917c;
}
.nature-section .section-title { color: #fff; }
.nature-section .section-tag { color: #e8cd91; }
.nature-section .section-desc { color: #e0e7dd; }
.nature-grid { gap: 24px; }
.nature-card {
    background: var(--nature-surface);
    color: var(--nature-ink);
    border: 1px solid var(--nature-line);
    border-radius: 16px;
    box-shadow: 0 14px 36px rgba(0, 0, 0, .18);
    backdrop-filter: none;
    transition: transform .3s ease, box-shadow .3s ease, opacity .6s ease;
}
.nature-card:hover { background: var(--nature-surface); transform: translateY(-4px); border-color: var(--nature-accent); }
.nature-card h3 { color: var(--nature-ink); font-size: clamp(24px, 2.2vw, 28px); line-height: 1.35; }
.nature-heading svg { color: var(--nature-accent); border-color: var(--nature-line); }
.nature-card p { color: var(--nature-muted); opacity: 1; font-style: normal; }
.nature-card .ew-badge { color: var(--nature-accent); opacity: 1; font-weight: 600; }
.ew-panel {
    --panel-bg: #f8f6f1;
    --panel-ink: #20382a;
    --panel-muted: #4d5d52;
    --panel-accent: #735319;
    --panel-line: #c7cfc2;
    background: var(--panel-bg);
    color: var(--panel-ink);
    border: 1px solid var(--panel-line);
    border-radius: 16px;
}
body[data-theme="dark"] .ew-panel {
    --panel-bg: #203328;
    --panel-ink: #f5f2eb;
    --panel-muted: #d8e1d7;
    --panel-accent: #e8cd91;
    --panel-line: #81917c;
}
.ew-panel h2, .ew-activity-body h4 { color: var(--panel-ink); }
.ew-panel .ew-subtitle, .ew-activity-body p, .ew-loading { color: var(--panel-muted); }
.ew-panel .ew-distance, .ew-panel-icon, .ew-activity-icon { color: var(--panel-accent); opacity: 1; }
.ew-activity { border-color: var(--panel-line); }
.ew-close { color: var(--panel-ink); width: 44px; height: 44px; top: 8px; right: 8px; }
.ew-loading, .ew-error { text-align: center; padding: 40px 0; }
.ew-error { color: #a12626; }
body[data-theme="dark"] .ew-error { color: #ffb7b7; }
.region-card { border-radius: 16px; }
body[data-theme="light"] .region-card h3,
body[data-theme="light"] .region-card h3 svg,
body[data-theme="light"] .region-card .gerocard-link { color: #735319; }
body[data-theme="dark"] .region-card,
body[data-theme="dark"] .sauna-home-offer,
body[data-theme="dark"] .contact-card { background: #202a23; border-color: #6d7e68; }
body[data-theme="dark"] .region-card h3,
body[data-theme="dark"] .region-card h3 svg,
body[data-theme="dark"] .region-card .gerocard-link,
body[data-theme="dark"] .sauna-home-offer .sauna-home-tag { color: #e8cd91; }
body[data-theme="dark"] .region-card p,
body[data-theme="dark"] .sauna-home-offer p { color: #d8e1d7; }
body[data-theme="dark"] .sauna-home-offer h3,
body[data-theme="dark"] .sauna-home-offer .sauna-home-price { color: #f5f2eb; }
body[data-theme="dark"] .sauna-home-cta { background: #e4dcc9; color: #20382a; }
@media (max-width: 768px) {
    .nature-section { padding: 72px 24px; }
    .nature-card { padding: 28px 24px; }
}

.gallery-tile--bed-plan { background: #f7f4ec; border: 1px solid #c7cfc2; }
.gallery-tile--bed-plan.wide img { height: 360px; object-fit: contain; padding: 16px; }
.gallery-tile--bed-plan:hover img { transform: none; }
.gallery-plan-label { display: grid; gap: 4px; padding: 16px 20px; background: var(--bg-2); color: var(--text); font: 400 14px/1.6 "Inter", sans-serif; }
.gallery-plan-label strong { font-weight: 600; }
.gallery-plan-label > span { text-decoration: underline; text-underline-offset: 4px; }
.gallery-image-frame { max-height: 68vh; max-height: 68dvh; overflow: auto; overscroll-behavior: contain; border-radius: 12px; }
.gallery-image-frame .gallery-modal-image { display: block; max-height: 68vh; max-height: 68dvh; }
.gallery-image-frame.zoomed .gallery-modal-image { width: max(100%, 1100px); max-width: none; max-height: none; height: auto; border-radius: 0; }
.gallery-modal-controls { flex-wrap: wrap; }
#galleryZoom[hidden] { display: none; }
@media (max-width: 768px) {
    .gallery-tile--bed-plan.wide img { height: 320px; padding: 12px; }
    .gallery-modal-content { min-width: 0; }
    .gallery-modal-controls { gap: 8px; }
}
@media (prefers-reduced-motion: reduce) {
    .nature-card, .site-nav, .house-showcase-actions .room-worlds-cta { transition: none; }
}
