:root {
    /* base */
    --ink: #2c2c2c;
    --muted: #7a6f5e;
    --line: #e8ddd0;
    --paper: #ffffff;
    --mist: #f7f3ee;
    --shadow: 0 24px 70px rgba(44, 32, 18, .13);

    /* andong palette */
    --orange: #e87722;
    --orange-dark: #c45e10;
    --warm-bg: #c8a970;
    --warm-dark: #9a7840;
    --badge-green: #4a5e3a;

    /* legacy aliases (used by tour/stay pages) */
    --sea: #227f7d;
    --sea-dark: #165f62;
    --sun: #f1b84b;
    --night: #16252d;
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    color: var(--ink);
    font-family: "Manrope", sans-serif;
    background: var(--paper);
    /* 어절(단어) 단위 줄바꿈: 한국어/CJK는 공백 경계에서 통째로 넘기고,
       영어는 단어 중간이 잘리지 않게 한다. 모든 언어 공통 적용. */
    word-break: keep-all;
    overflow-wrap: break-word;
}

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

.site-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1180px;
    margin: 0 auto;
    padding: 24px 28px;
}

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

.brand-mark {
    display: grid;
    width: 54px;
    height: 54px;
    place-items: center;
    color: white;
    font-family: "Fraunces", serif;
    font-size: 31px;
    font-weight: 800;
    background: linear-gradient(135deg, var(--sea), var(--sea-dark));
    border-radius: 18px;
    box-shadow: 0 15px 30px rgba(34, 127, 125, .24);
}

.brand-copy {
    display: grid;
    gap: 2px;
}

.brand-copy strong {
    font-size: 20px;
    letter-spacing: -.04em;
}

.brand-copy small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.main-nav {
    display: flex;
    gap: 8px;
    padding: 8px;
    border: 1px solid rgba(36, 49, 58, .08);
    border-radius: 999px;
    background: rgba(255, 255, 255, .74);
    backdrop-filter: blur(16px);
}

.main-nav a {
    padding: 10px 16px;
    border-radius: 999px;
    color: var(--muted);
    font-size: 14px;
    font-weight: 800;
}

.main-nav a:hover {
    color: var(--sea-dark);
    background: rgba(34, 127, 125, .09);
}

.member-logout-form {
    margin: 0;
}

.member-logout-form button {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 0 16px;
    border: 0;
    border-radius: 999px;
    background: rgba(232, 119, 34, .1);
    color: var(--orange-dark);
    font: inherit;
    font-size: 14px;
    font-weight: 900;
    cursor: pointer;
}

.lang-switcher {
    display: inline-flex;
    gap: 4px;
    align-items: center;
    padding: 4px;
    border-radius: 999px;
    background: rgba(232, 119, 34, .1);
}

.lang-switcher a {
    padding: 7px 10px;
    border-radius: 999px;
    color: var(--orange-dark);
    font-size: 12px;
    font-weight: 900;
}

/* ─── Shared typography & utils ───────────────────────────────── */

.eyebrow,
.section-kicker {
    margin: 0 0 14px;
    color: var(--orange-dark);
    font-size: 13px;
    font-weight: 900;
    letter-spacing: .14em;
    text-transform: uppercase;
}

h1, h2 {
    margin: 0;
    font-family: "Fraunces", serif;
    letter-spacing: -.055em;
    line-height: .94;
}

h1 { font-size: clamp(48px, 7.5vw, 96px); }
h2 { font-size: clamp(34px, 5vw, 64px); }

/* ─── Shared button ────────────────────────────────────────────── */

.button {
    display: inline-flex;
    align-items: center;
    min-height: 54px;
    padding: 0 22px;
    border-radius: 999px;
    font-weight: 900;
}

.button.primary {
    color: white;
    background: var(--orange);
    box-shadow: 0 14px 36px rgba(232, 119, 34, .28);
}

.button.secondary {
    color: var(--orange-dark);
    background: white;
    border: 1px solid var(--line);
}

/* ─── Contact / Footer ─────────────────────────────────────────── */

.contact {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 30px;
    align-items: center;
    max-width: 1180px;
    margin: 0 auto;
    padding: 72px 28px;
}

.contact p {
    color: var(--muted);
    line-height: 1.7;
}

.contact-links {
    display: grid;
    grid-template-columns: repeat(2, 120px);
    gap: 12px;
}

.contact-links a {
    padding: 16px;
    text-align: center;
    font-weight: 900;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: white;
}

/* ─── Home hero ────────────────────────────────────────────────── */

.home-hero {
    background: linear-gradient(160deg, var(--warm-bg) 0%, #b8924e 100%);
    padding: 0 0 60px;
}

.hero-inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 48px;
    align-items: center;
    max-width: 1180px;
    margin: 0 auto;
    padding: 72px 28px;
}

.hero-copy h1 {
    color: white;
    max-width: 600px;
    font-size: clamp(52px, 8vw, 100px);
    line-height: .9;
    margin-top: 12px;
}

.hero-sub {
    max-width: 520px;
    margin: 24px 0 0;
    color: rgba(255,255,255,.82);
    font-size: 18px;
    line-height: 1.75;
}

.eyebrow {
    color: rgba(255,255,255,.7);
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 36px;
}

.btn-hero {
    display: inline-flex;
    align-items: center;
    min-height: 54px;
    padding: 0 28px;
    border-radius: 999px;
    font-size: 15px;
    font-weight: 900;
}

.btn-hero.primary {
    color: var(--orange-dark);
    background: white;
    box-shadow: 0 12px 30px rgba(0,0,0,.15);
}

.btn-hero.secondary {
    color: white;
    background: rgba(255,255,255,.18);
    border: 1px solid rgba(255,255,255,.4);
    backdrop-filter: blur(8px);
}

.btn-hero:hover {
    opacity: .9;
    transform: translateY(-2px);
    transition: opacity .15s, transform .15s;
}

/* Hero card */
.hero-card {
    position: relative;
    padding: 28px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.5);
    border-radius: 32px;
    background: rgba(255,255,255,.92);
    box-shadow: 0 32px 80px rgba(44,32,18,.22);
}

.route-label {
    display: inline-flex;
    margin-bottom: 20px;
    padding: 7px 14px;
    color: var(--orange-dark);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
    background: rgba(232,119,34,.1);
    border-radius: 999px;
}

.hero-card ol {
    display: grid;
    gap: 14px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.hero-card li {
    display: grid;
    gap: 4px;
    padding: 16px 18px;
    background: var(--mist);
    border-radius: 18px;
}

.hero-card strong { font-size: 20px; }
.hero-card span:last-child { color: var(--muted); font-size: 14px; }

/* ─── Services section ─────────────────────────────────────────── */

.services-section {
    background: var(--mist);
    padding: 20px 0;
}

.services-inner {
    max-width: 1180px;
    margin: 0 auto;
    padding: 64px 28px;
    text-align: center;
}

.service-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    margin-top: 40px;
    text-align: left;
}

.svc-card {
    display: grid;
    grid-template-rows: auto auto 1fr auto auto;
    gap: 10px;
    padding: 26px;
    border: 1px solid var(--line);
    border-radius: 24px;
    background: white;
    box-shadow: 0 4px 24px rgba(44,32,18,.07);
    transition: transform .2s ease, box-shadow .2s ease;
}

.svc-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 56px rgba(44,32,18,.12);
}

.svc-card.featured {
    background: var(--badge-green);
    color: white;
    border-color: var(--badge-green);
}

.svc-icon {
    display: grid;
    width: 60px; height: 60px;
    place-items: center;
    font-size: 30px;
    background: var(--mist);
    border-radius: 18px;
    color: var(--orange-dark);
}

.svc-card.featured .svc-icon {
    background: rgba(255,255,255,.15);
    color: white;
}

.svc-type {
    color: var(--orange);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.svc-card.featured .svc-type { color: rgba(255,255,255,.7); }

.svc-card strong {
    font-family: "Fraunces", serif;
    font-size: 26px;
    letter-spacing: -.03em;
}

.svc-desc {
    color: var(--muted);
    font-size: 14px;
    line-height: 1.65;
}

.svc-card.featured .svc-desc { color: rgba(255,255,255,.75); }

.svc-card b {
    color: var(--orange);
    font-size: 14px;
}

.svc-card.featured b { color: rgba(255,255,255,.9); }

/* ─── Trust / stays highlight section ─────────────────────────── */

.trust-section {
    max-width: 1180px;
    margin: 0 auto;
    padding: 72px 28px;
}

.trust-inner {
    display: grid;
    grid-template-columns: .9fr 1fr;
    gap: 40px;
    align-items: start;
    padding: 52px;
    border-radius: 40px;
    background: var(--mist);
}

.trust-list {
    display: grid;
    gap: 14px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.trust-list li {
    display: grid;
    gap: 5px;
    padding: 20px;
    background: white;
    border-radius: 20px;
    border: 1px solid var(--line);
}

.trust-list strong { font-size: 18px; }
.trust-list span {
    color: var(--muted);
    font-size: 14px;
    line-height: 1.65;
}

.btn-trust {
    display: inline-flex;
    align-items: center;
    margin-top: 8px;
    padding: 14px 24px;
    border-radius: 999px;
    background: var(--orange);
    color: white;
    font-weight: 900;
    font-size: 14px;
    box-shadow: 0 10px 28px rgba(232,119,34,.25);
}

/* ─── Responsive ───────────────────────────────────────────────── */

@media (max-width: 900px) {
    .site-header { grid-template-columns: 1fr; }

    .hero-inner,
    .trust-inner {
        grid-template-columns: 1fr;
    }

    .hero-card { display: none; }

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

    .contact {
        grid-template-columns: 1fr;
        align-items: flex-start;
    }
}

@media (max-width: 560px) {
    .site-header {
        padding: 18px;
        gap: 14px;
    }

    .brand-mark {
        width: 44px;
        height: 44px;
        border-radius: 14px;
        font-size: 25px;
    }

    .brand-copy strong { font-size: 18px; }

    .main-nav {
        display: flex;
        gap: 6px;
        padding: 7px;
        width: 100%;
        border-radius: 18px;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .main-nav a,
    .member-logout-form button {
        flex: 0 0 auto;
        min-height: 34px;
        padding: 8px 11px;
        font-size: 12px;
        white-space: nowrap;
    }

    .lang-switcher {
        flex: 0 0 auto;
        gap: 2px;
        padding: 3px;
    }

    .lang-switcher a {
        min-height: 28px;
        padding: 6px 8px;
        font-size: 11px;
    }

    .hero-inner,
    .services-inner,
    .trust-section,
    .contact {
        padding-left: 18px;
        padding-right: 18px;
    }

    .trust-inner { padding: 28px 20px; }

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

    .contact-links {
        width: 100%;
        grid-template-columns: 1fr;
    }
}

/* ─── Tour & Activity page ─────────────────────────────────────── */

:root {
    --orange: #e87722;
    --orange-dark: #c45e10;
    --warm-bg: #c8a970;
    --badge-green: #4a5e3a;
}

.main-nav a.active {
    color: var(--sea-dark);
    background: rgba(34, 127, 125, .12);
}

.tour-hero {
    max-width: 1180px;
    margin: 0 auto;
    padding: 64px 28px 32px;
}

.tour-hero h1 {
    max-width: 640px;
    font-size: clamp(42px, 6vw, 80px);
    margin-top: 10px;
}

.tour-hero-sub {
    max-width: 560px;
    margin: 18px 0 0;
    color: var(--muted);
    font-size: 18px;
    line-height: 1.7;
}

.tour-section {
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 28px 80px;
}

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

/* Category tabs */
.category-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 36px;
}

.tab-btn {
    padding: 10px 20px;
    border-radius: 999px;
    border: 1px solid var(--line);
    background: white;
    color: var(--muted);
    font-size: 14px;
    font-weight: 800;
    transition: background .15s, color .15s, border-color .15s;
}

.tab-btn:hover {
    color: var(--orange-dark);
    border-color: var(--orange);
}

.tab-btn.active {
    color: white;
    background: var(--orange);
    border-color: var(--orange);
}

/* Tour grid */
.tour-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.tour-card {
    border: 1px solid var(--line);
    border-radius: 20px;
    background: white;
    box-shadow: 0 4px 20px rgba(27, 47, 54, .07);
    overflow: hidden;
    transition: transform .2s ease, box-shadow .2s ease;
    cursor: pointer;
}

.tour-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 16px 48px rgba(27, 47, 54, .13);
}

/* Tour image */
.tour-img-wrap {
    position: relative;
}

.tour-img {
    height: 200px;
    background: linear-gradient(135deg, var(--warm-bg), #a07840);
    background-size: cover;
    background-position: center;
}

.tour-badge {
    position: absolute;
    top: 12px;
    left: 12px;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: white;
}

.tour-badge.popular { background: var(--orange); }
.tour-badge.new-badge { background: var(--badge-green); left: auto; right: 12px; }

.category-pill {
    position: absolute;
    bottom: 12px;
    left: 12px;
    padding: 5px 12px;
    border-radius: 999px;
    background: rgba(0,0,0,.52);
    color: white;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .05em;
    backdrop-filter: blur(6px);
}

/* Tour card body */
.tour-body {
    display: grid;
    gap: 10px;
    padding: 20px;
}

.tour-name {
    margin: 0;
    font-family: "Fraunces", serif;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: -.02em;
    line-height: 1.25;
}

.tour-meta {
    display: flex;
    align-items: center;
    gap: 14px;
    font-size: 14px;
    color: var(--muted);
}

.tour-rating {
    color: var(--ink);
    font-weight: 700;
}

.review-count {
    font-weight: 400;
    color: var(--muted);
}

.tour-location {
    margin: 0;
    font-size: 13px;
    color: var(--muted);
}

.tour-desc {
    display: -webkit-box;
    margin: 0;
    color: var(--muted);
    font-size: 14px;
    line-height: 1.6;
    overflow: hidden;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}

.tour-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 4px;
}

.tour-price {
    font-size: 20px;
    font-weight: 900;
    color: var(--ink);
    letter-spacing: -.03em;
}

.tour-price small {
    font-size: 12px;
    font-weight: 600;
    color: var(--muted);
}

.btn-sm {
    min-height: 40px;
    padding: 0 16px;
    font-size: 13px;
    border-radius: 999px;
}

/* Empty state */
.empty-state {
    padding: 80px 0;
    text-align: center;
    color: var(--muted);
    font-size: 18px;
}

@media (max-width: 900px) {
    .tour-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .tour-hero,
    .tour-section {
        padding-left: 18px;
        padding-right: 18px;
    }

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

    .category-tabs {
        gap: 6px;
    }

    .tab-btn {
        padding: 8px 14px;
        font-size: 13px;
    }
}

/* ─── Stay page ────────────────────────────────────────────────── */

.stay-hero {
    max-width: 1180px;
    margin: 0 auto;
    padding: 64px 28px 32px;
}

.stay-hero h1 {
    max-width: 640px;
    font-size: clamp(42px, 6vw, 80px);
    margin-top: 10px;
}

.stay-hero-sub {
    max-width: 560px;
    margin: 18px 0 0;
    color: var(--muted);
    font-size: 18px;
    line-height: 1.7;
}

.stay-section {
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 28px 80px;
}

.stay-layout {
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);
    gap: 28px;
    align-items: start;
}

.stay-filter-panel {
    position: sticky;
    top: 18px;
    padding: 22px;
    border: 1px solid var(--line);
    border-radius: 28px;
    background: linear-gradient(180deg, #fff 0%, var(--mist) 100%);
    box-shadow: 0 18px 52px rgba(44, 32, 18, .1);
}

.filter-panel-title {
    margin: 0 0 14px;
    font-family: "Fraunces", serif;
    font-size: 26px;
    font-weight: 800;
    letter-spacing: -.04em;
}

.stay-search-grid,
.stay-filter-panel form {
    display: grid;
    gap: 14px;
}

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

.stay-search-grid label:first-child,
.stay-search-grid label:nth-child(2) {
    grid-column: span 2;
}

.stay-search-grid label {
    display: grid;
    gap: 6px;
}

.stay-search-grid span {
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.stay-search-grid input,
.stay-price-input {
    width: 100%;
    min-height: 42px;
    padding: 0 12px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: white;
    color: var(--ink);
    font: inherit;
    font-size: 14px;
}

.filter-block {
    display: grid;
    gap: 10px;
    padding-top: 14px;
    border-top: 1px solid rgba(232, 221, 208, .9);
}

.stay-type-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.filter-chip,
.stay-sort-buttons a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 0 13px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: white;
    color: var(--muted);
    font-size: 13px;
    font-weight: 900;
}

.filter-chip.active,
.stay-sort-buttons a.active {
    border-color: var(--orange);
    color: white;
    background: var(--orange);
}

.price-range.stacked {
    display: grid;
    grid-template-columns: 1fr;
}

.amenity-checks.vertical {
    display: grid;
    grid-template-columns: 1fr;
}

.stay-search-button {
    justify-content: center;
    width: 100%;
    border: 0;
    cursor: pointer;
}

.stay-results-panel {
    min-width: 0;
}

.stay-results-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}

.stay-sort-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.stay-list {
    display: grid;
    gap: 18px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.stay-list-card {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 24px;
    background: white;
    box-shadow: 0 4px 20px rgba(27, 47, 54, .07);
    cursor: pointer;
    transition: transform .2s ease, box-shadow .2s ease;
}

.stay-list-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 54px rgba(27, 47, 54, .13);
}

.stay-list-image {
    height: 100%;
    min-height: 230px;
}

.stay-title-row {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    justify-content: space-between;
}

.stay-grade,
.stay-room-count {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 900;
    white-space: nowrap;
}

.stay-grade {
    padding: 5px 10px;
    color: var(--orange-dark);
    background: #fff4ec;
}

.stay-room-count {
    color: var(--muted);
}

.stay-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.stay-card {
    border: 1px solid var(--line);
    border-radius: 20px;
    background: white;
    box-shadow: 0 4px 20px rgba(27, 47, 54, .07);
    overflow: hidden;
    transition: transform .2s ease, box-shadow .2s ease;
}

.stay-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 16px 48px rgba(27, 47, 54, .13);
}

.stay-img-wrap {
    position: relative;
}

.stay-img {
    height: 200px;
    background: linear-gradient(135deg, #2a6e6b, var(--sea-dark));
    background-size: cover;
    background-position: center;
}

.stay-type-pill {
    position: absolute;
    bottom: 12px;
    left: 12px;
    padding: 5px 12px;
    border-radius: 999px;
    background: rgba(0,0,0,.52);
    color: white;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .05em;
    backdrop-filter: blur(6px);
}

.stay-body {
    display: grid;
    gap: 8px;
    padding: 20px;
}

.stay-name {
    margin: 0;
    font-family: "Fraunces", serif;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: -.02em;
    line-height: 1.25;
}

.stay-location {
    margin: 0;
    font-size: 13px;
    color: var(--muted);
}

.stay-meta {
    font-size: 14px;
}

.stay-rating {
    font-weight: 700;
    color: var(--ink);
}

.stay-desc {
    margin: 0;
    font-size: 13px;
    color: var(--muted);
    line-height: 1.6;
}

.stay-amenities {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.amenity-tag {
    padding: 3px 10px;
    border-radius: 999px;
    background: var(--mist);
    color: var(--sea-dark);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.stay-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 6px;
}

.stay-price {
    font-size: 20px;
    font-weight: 900;
    color: var(--ink);
    letter-spacing: -.03em;
}

.stay-price small {
    font-size: 12px;
    font-weight: 600;
    color: var(--muted);
}

@media (max-width: 900px) {
    .stay-layout {
        grid-template-columns: 1fr;
    }

    .stay-filter-panel {
        position: static;
    }

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

    .stay-list-card {
        grid-template-columns: 220px minmax(0, 1fr);
    }
}

@media (max-width: 560px) {
    .stay-hero,
    .stay-section {
        padding-left: 18px;
        padding-right: 18px;
    }

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

    .stay-results-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .stay-list-card {
        grid-template-columns: 1fr;
    }

    .stay-list-card .stay-img {
        height: 220px;
        min-height: 0;
    }

    .stay-title-row,
    .stay-footer {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* ── Filter bar (Stay) ───────────────────────────────────────── */

.filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem;
    align-items: flex-start;
    padding: 1rem 1.25rem;
    background: var(--mist);
    border-radius: 10px;
    margin-bottom: 1.25rem;
}

.filter-label {
    display: block;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--muted);
    margin-bottom: 0.4rem;
}

.price-range {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.price-input {
    width: 110px;
    padding: 0.4rem 0.6rem;
    border: 1.5px solid var(--line);
    border-radius: 6px;
    font-size: 0.85rem;
    font-family: inherit;
    background: #fff;
}

.price-input:focus {
    outline: none;
    border-color: var(--orange);
}

.amenity-checks {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.amenity-check {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.82rem;
    cursor: pointer;
    padding: 0.3rem 0.65rem;
    border: 1.5px solid var(--line);
    border-radius: 20px;
    background: #fff;
    transition: border-color 0.15s, background 0.15s;
}

.amenity-check:has(input:checked) {
    border-color: var(--orange);
    background: #fff4ec;
    color: var(--orange-dark);
}

.amenity-check input { display: none; }

.sort-select {
    padding: 0.4rem 0.65rem;
    border: 1.5px solid var(--line);
    border-radius: 6px;
    font-size: 0.85rem;
    font-family: inherit;
    background: #fff;
    cursor: pointer;
    min-width: 150px;
}

.sort-select:focus { outline: none; border-color: var(--orange); }

.reset-link {
    font-size: 0.8rem;
    color: var(--muted);
    text-decoration: underline;
    align-self: flex-end;
    margin-bottom: 0.1rem;
}

.reset-link:hover { color: var(--orange); }

.result-count {
    font-size: 0.82rem;
    color: var(--muted);
    margin: 0 0 1rem;
    font-weight: 600;
}

.auth-page {
    min-height: 100vh;
    background: radial-gradient(circle at top left, rgba(232,119,34,.16), transparent 34%), var(--mist);
}

.auth-wrap {
    display: grid;
    min-height: 100vh;
    place-items: center;
    padding: 40px 18px;
}

.auth-card {
    width: min(100%, 520px);
    padding: 34px;
    border: 1px solid var(--line);
    border-radius: 32px;
    background: rgba(255,255,255,.94);
    box-shadow: var(--shadow);
}

.auth-brand {
    margin-bottom: 28px;
}

.auth-lang-switcher {
    margin: 0 0 22px;
}

.auth-card h1,
.mypage-hero h1 {
    font-size: clamp(34px, 6vw, 56px);
}

.auth-lead {
    margin: 18px 0 0;
    color: var(--muted);
    line-height: 1.7;
}

.auth-alert {
    margin-top: 22px;
    padding: 14px 16px;
    border: 1px solid rgba(196, 94, 16, .24);
    border-radius: 16px;
    background: #fff4ec;
    color: var(--orange-dark);
    font-weight: 800;
}

.auth-form {
    display: grid;
    gap: 16px;
    margin-top: 26px;
}

.auth-form label {
    display: grid;
    gap: 8px;
    color: var(--muted);
    font-size: 13px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.auth-form input {
    min-height: 52px;
    padding: 0 16px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: white;
    color: var(--ink);
    font: inherit;
    font-size: 16px;
    letter-spacing: 0;
    text-transform: none;
}

.auth-form input:focus {
    outline: none;
    border-color: var(--orange);
    box-shadow: 0 0 0 4px rgba(232,119,34,.12);
}

.auth-submit {
    justify-content: center;
    border: 0;
    cursor: pointer;
}

.auth-switch {
    margin: 22px 0 0;
    color: var(--muted);
    text-align: center;
}

.auth-switch a {
    color: var(--orange-dark);
    font-weight: 900;
}

.mypage-wrap {
    max-width: 1180px;
    margin: 0 auto;
    padding: 54px 28px 90px;
}

.mypage-hero {
    margin-bottom: 30px;
}

.mypage-grid {
    display: grid;
    grid-template-columns: 360px minmax(0, 1fr);
    gap: 24px;
    align-items: start;
}

.profile-card {
    padding: 26px;
    border: 1px solid var(--line);
    border-radius: 28px;
    background: white;
    box-shadow: 0 12px 42px rgba(44,32,18,.08);
}

.profile-card h2 {
    margin-bottom: 20px;
    font-size: clamp(26px, 4vw, 38px);
}

.profile-card dl {
    display: grid;
    gap: 14px;
    margin: 0;
}

.profile-card dl div {
    display: grid;
    gap: 4px;
}

.profile-card dt,
.mypage-inquiry-list small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.profile-card dd {
    margin: 0;
    font-weight: 800;
}

.mypage-inquiry-list,
.mypage-history-list {
    display: grid;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.mypage-inquiry-list li,
.mypage-history-list li {
    display: grid;
    gap: 8px;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: var(--mist);
}

.mypage-inquiry-list li > div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
}

.mypage-history-list li {
    grid-template-columns: 1fr auto;
    align-items: center;
}

.mypage-history-list span {
    color: var(--muted);
    font-weight: 800;
}

.mypage-inquiry-list p,
.empty-note {
    margin: 0;
    color: var(--muted);
    line-height: 1.6;
}

/* ── Tour controls (category tabs + sort) ────────────────────── */

.tour-controls {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
}

.tour-controls .category-tabs {
    margin-bottom: 0;
}

.sort-form {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

@media (max-width: 700px) {
    .filter-bar { flex-direction: column; }
    .tour-controls { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 760px) {
    .site-header {
        align-items: flex-start;
        flex-direction: column;
        gap: 18px;
    }

    .main-nav {
        width: 100%;
        flex-wrap: wrap;
        border-radius: 22px;
    }

    .member-logout-form button,
    .main-nav a {
        min-height: 38px;
    }

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

@media (max-width: 520px) {
    .auth-card {
        padding: 24px;
        border-radius: 24px;
    }

    .auth-wrap,
    .mypage-wrap {
        padding-left: 18px;
        padding-right: 18px;
    }

    .mypage-inquiry-list li > div {
        flex-direction: column;
    }
}

/* ── Inquiry form ────────────────────────────────────────────── */

.inquiry-section {
    max-width: 720px;
    margin: 0 auto;
    padding: 3rem 1.5rem 5rem;
}

.inquiry-header {
    margin-bottom: 2.5rem;
}

.inquiry-header h1 {
    font-size: clamp(1.75rem, 4vw, 2.5rem);
    font-family: 'Fraunces', serif;
    margin: 0.25rem 0 0.5rem;
}

.inquiry-lead {
    color: var(--muted);
    margin: 0;
}

.inquiry-form {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.iq-row {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.iq-row label {
    font-size: 0.875rem;
    font-weight: 600;
    color: #333;
}

.iq-row .req { color: var(--orange); }

.iq-row input,
.iq-row select,
.iq-row textarea {
    padding: 0.6rem 0.8rem;
    border: 1.5px solid var(--line);
    border-radius: 8px;
    font-size: 0.9rem;
    font-family: inherit;
    transition: border-color 0.15s;
    width: 100%;
    box-sizing: border-box;
}

.iq-row input:focus,
.iq-row select:focus,
.iq-row textarea:focus {
    outline: none;
    border-color: var(--orange);
}

.iq-row textarea { resize: vertical; }

.iq-row-half {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.field-error {
    font-size: 0.78rem;
    color: #c0392b;
    font-weight: 600;
}

.iq-actions {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    margin-top: 0.5rem;
}

.iq-note {
    font-size: 0.82rem;
    color: var(--muted);
    margin: 0;
}

/* ── Inquiry success ─────────────────────────────────────────── */

.inquiry-success {
    max-width: 520px;
    margin: 6rem auto;
    text-align: center;
    padding: 0 1.5rem;
}

.success-icon {
    width: 60px;
    height: 60px;
    background: var(--orange);
    color: #fff;
    border-radius: 50%;
    font-size: 1.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.5rem;
    font-weight: 700;
}

.inquiry-success h1 {
    font-family: 'Fraunces', serif;
    font-size: 2rem;
    margin: 0 0 0.75rem;
}

.inquiry-success p {
    color: var(--muted);
    margin: 0 0 2rem;
    font-size: 1rem;
    line-height: 1.6;
}

.success-actions {
    display: flex;
    gap: 0.75rem;
    justify-content: center;
    flex-wrap: wrap;
}

@media (max-width: 600px) {
    .iq-row-half { grid-template-columns: 1fr; }
    .iq-actions { flex-direction: column; align-items: flex-start; }
}

/* ── Detail layout (tour & stay) ─────────────────────────────── */

.detail-layout {
    max-width: 1100px;
    margin: 0 auto;
    padding: 2.5rem 1.5rem 5rem;
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 2.5rem;
    align-items: start;
}

.breadcrumb {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.82rem;
    color: var(--muted);
    margin-bottom: 1.25rem;
}

.breadcrumb a { color: var(--orange); text-decoration: none; }
.breadcrumb a:hover { text-decoration: underline; }

.detail-img {
    width: 100%;
    aspect-ratio: 16 / 9;
    background: var(--mist) center / cover no-repeat;
    border-radius: 12px;
    margin-bottom: 1.5rem;
    position: relative;
    overflow: hidden;
}

.detail-badge {
    position: absolute;
    top: 1rem;
    left: 1rem;
}

.detail-title-block {
    margin-bottom: 2rem;
}

.detail-title-block h1 {
    font-size: clamp(1.5rem, 3vw, 2.25rem);
    font-family: 'Fraunces', serif;
    margin: 0.5rem 0 0.75rem;
}

.detail-meta-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    font-size: 0.875rem;
    color: var(--muted);
}

.detail-sep { color: var(--line); }

.detail-section {
    margin-bottom: 2rem;
    padding-bottom: 2rem;
    border-bottom: 1px solid var(--line);
}

.detail-section:last-child { border-bottom: none; }

.detail-section h2 {
    font-size: 1rem;
    font-weight: 700;
    margin: 0 0 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--muted);
}

.detail-desc {
    line-height: 1.8;
    color: var(--ink);
    margin: 0;
}

.gallery-thumbs {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 0.75rem;
    margin: -0.75rem 0 1.5rem;
}

.gallery-thumbs span {
    display: block;
    aspect-ratio: 4 / 3;
    background: linear-gradient(135deg, #e7d5bd, #b8924e);
    border: 1px solid var(--line);
    border-radius: 10px;
}

.story-blocks {
    display: grid;
    gap: 1.25rem;
}

.story-blocks h3 {
    margin: 0 0 0.5rem;
    font-size: 1rem;
}

.story-blocks p {
    margin: 0;
    color: var(--ink);
    line-height: 1.8;
}

.room-search {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr)) auto;
    gap: 0.75rem;
    align-items: end;
}

.room-search label {
    display: grid;
    gap: 0.35rem;
    color: var(--muted);
    font-size: 0.78rem;
    font-weight: 800;
}

.room-search input {
    min-height: 42px;
    padding: 0 0.75rem;
    color: var(--ink);
    font: inherit;
    border: 1px solid var(--line);
    border-radius: 10px;
}

.room-list {
    display: grid;
    gap: 1rem;
}

.room-card {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 1rem;
    padding: 1.25rem;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 14px;
    box-shadow: 0 4px 18px rgba(0,0,0,.05);
}

.room-card h3 {
    margin: 0 0 0.5rem;
    font-size: 1.05rem;
}

.room-card p {
    color: var(--muted);
    line-height: 1.65;
}

.room-tags {
    margin: 0 0 0.75rem;
    font-weight: 800;
}

.room-booking {
    display: grid;
    align-content: center;
    justify-items: end;
    gap: 0.35rem;
    min-width: 150px;
}

.room-booking strong {
    font-size: 1.1rem;
}

.room-booking span {
    color: var(--muted);
    font-size: 0.85rem;
}

.compact-button {
    min-height: 42px;
    padding: 0 16px;
}

.nearby-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.nearby-grid a,
.nearby-grid span {
    display: grid;
    gap: 0.25rem;
    padding: 1rem;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
    font-weight: 900;
}

.nearby-grid a span,
.nearby-grid small {
    color: var(--muted);
    font-size: 0.82rem;
    font-weight: 700;
}

.includes-list,
.excludes-list,
.feature-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.includes-list li::before { content: "✓  "; color: #15803d; font-weight: 700; }
.excludes-list li::before { content: "✕  "; color: #b91c1c; font-weight: 700; }
.feature-list li::before { content: "✓  "; color: var(--orange); font-weight: 900; }

.includes-list li,
.excludes-list li,
.feature-list li {
    font-size: 0.9rem;
    color: var(--ink);
}

.info-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
}

.info-card {
    display: grid;
    gap: 0.35rem;
    padding: 1rem;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
}

.info-card span {
    color: var(--muted);
    font-size: 0.78rem;
    font-weight: 800;
}

.info-card strong {
    color: var(--ink);
    font-size: 0.95rem;
}

/* ── Sidebar card ────────────────────────────────────────────── */

.detail-sidebar {
    position: sticky;
    top: 80px;
}

.sidebar-card {
    background: #fff;
    border: 1.5px solid var(--line);
    border-radius: 12px;
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    box-shadow: 0 4px 20px rgba(0,0,0,0.06);
}

.sidebar-price {
    font-size: 1.75rem;
    font-weight: 800;
    color: var(--ink);
}

.sidebar-label {
    color: var(--muted);
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.sidebar-price small {
    font-size: 0.875rem;
    font-weight: 400;
    color: var(--muted);
}

.sidebar-meta {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    font-size: 0.875rem;
    color: var(--muted);
}

.booking-fields {
    display: grid;
    gap: 0.75rem;
}

.booking-fields label {
    display: grid;
    gap: 0.35rem;
    color: var(--muted);
    font-size: 0.78rem;
    font-weight: 800;
}

.booking-fields input {
    width: 100%;
    min-height: 42px;
    padding: 0 0.75rem;
    color: var(--ink);
    font: inherit;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
}

.booking-fields input:focus {
    outline: 2px solid rgba(232, 119, 34, .24);
    border-color: var(--orange);
}

.booking-total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 0.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--line);
}

.booking-total span {
    color: var(--muted);
    font-weight: 800;
}

.booking-total strong {
    color: var(--ink);
    font-size: 1.15rem;
}

.sidebar-cta {
    display: block;
    text-align: center;
    margin-top: 0.25rem;
}

.sidebar-note {
    font-size: 0.78rem;
    color: var(--muted);
    text-align: center;
    margin: 0;
}

.help-card {
    margin-top: 1rem;
}

.help-card h3 {
    margin: 0 0 0.25rem;
    font-size: 1rem;
}

.help-card a {
    color: var(--orange-dark);
    font-size: 0.9rem;
    font-weight: 800;
}

@media (max-width: 800px) {
    .detail-layout { grid-template-columns: 1fr; }
    .detail-sidebar { position: static; }
    .info-grid { grid-template-columns: 1fr; }
    .gallery-thumbs { grid-template-columns: repeat(3, 1fr); }
    .room-search { grid-template-columns: 1fr; }
    .room-card { grid-template-columns: 1fr; }
    .room-booking { justify-items: start; }
    .nearby-grid { grid-template-columns: 1fr; }
}

/* ── Amenity grid (stay detail) ──────────────────────────────── */

.amenity-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
    gap: 0.75rem;
}

.amenity-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    padding: 0.5rem 0.75rem;
    background: var(--mist);
    border-radius: 8px;
}

.amenity-icon { font-size: 1.1rem; }

/* ── Rules list ──────────────────────────────────────────────── */

.rules-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.rules-list li {
    font-size: 0.9rem;
    color: var(--ink);
    padding-left: 1.1rem;
    position: relative;
}

.rules-list li::before {
    content: "·";
    position: absolute;
    left: 0;
    color: var(--muted);
}

body:not(.admin-page) {
    --ink: #17233b;
    --muted: #657187;
    --line: #d9cba8;
    --paper: #fffdf7;
    --mist: #f7f1e4;
    --shadow: 0 24px 70px rgba(18, 35, 64, .14);
    --orange: #c79b32;
    --orange-dark: #8b681c;
    --warm-bg: #f4ead4;
    --warm-dark: #385276;
    --badge-green: #2f5d62;
    --sea: #284a73;
    --sea-dark: #14243c;
    --sun: #d8ad45;
    --night: #0f1b2d;
    color: var(--ink);
    background:
        radial-gradient(circle at top left, rgba(199, 155, 50, .16), transparent 34rem),
        radial-gradient(circle at top right, rgba(40, 74, 115, .13), transparent 30rem),
        linear-gradient(180deg, #fffdf7 0%, #fff 44%, #f7f1e4 100%);
}

body:not(.admin-page) .site-header {
    position: sticky;
    top: 0;
    z-index: 50;
    width: min(1180px, calc(100% - 24px));
    margin-top: 12px;
    padding: 14px 18px;
    border: 1px solid rgba(199, 155, 50, .22);
    border-radius: 28px;
    background: rgba(255, 253, 247, .88);
    box-shadow: 0 18px 50px rgba(18, 35, 64, .12);
    backdrop-filter: blur(18px);
}

body:not(.admin-page) .site-header .brand-mark {
    background: linear-gradient(135deg, var(--sea), var(--sea-dark));
    box-shadow: 0 14px 34px rgba(20, 36, 60, .28);
}

body:not(.admin-page) .main-nav {
    box-shadow: inset 0 1px 0 rgba(255,255,255,.7);
}

body:not(.admin-page) .main-nav a,
body:not(.admin-page) .lang-switcher a,
body:not(.admin-page) .member-logout-form button {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
}

body:not(.admin-page) .main-nav a,
body:not(.admin-page) .member-logout-form button,
body:not(.admin-page) .lang-switcher a,
body:not(.admin-page) .button,
body:not(.admin-page) .btn-hero,
body:not(.admin-page) .btn-trust,
body:not(.admin-page) .btn-sm {
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
}

body:not(.admin-page) .main-nav a:hover,
body:not(.admin-page) .member-logout-form button:hover,
body:not(.admin-page) .lang-switcher a:hover,
body:not(.admin-page) .button:hover,
body:not(.admin-page) .btn-hero:hover,
body:not(.admin-page) .btn-trust:hover,
body:not(.admin-page) .btn-sm:hover {
    transform: translateY(-1px);
}

body:not(.admin-page) .main-nav a:focus-visible,
body:not(.admin-page) .member-logout-form button:focus-visible,
body:not(.admin-page) .lang-switcher a:focus-visible,
body:not(.admin-page) .button:focus-visible,
body:not(.admin-page) .btn-hero:focus-visible,
body:not(.admin-page) .btn-trust:focus-visible,
body:not(.admin-page) .btn-sm:focus-visible {
    outline: 3px solid rgba(199, 155, 50, .55);
    outline-offset: 3px;
}

body:not(.admin-page) .home-hero {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 15% 25%, rgba(255,255,255,.24), transparent 18rem),
        radial-gradient(circle at 86% 18%, rgba(216, 173, 69, .32), transparent 22rem),
        linear-gradient(135deg, #14243c 0%, #284a73 52%, #8b681c 100%);
}

body:not(.admin-page) .home-hero::after {
    content: "";
    position: absolute;
    inset: auto -8% -28% 42%;
    height: 420px;
    border-radius: 999px;
    background: rgba(255,255,255,.12);
    transform: rotate(-8deg);
    pointer-events: none;
}

body:not(.admin-page) .hero-inner,
body:not(.admin-page) .services-inner,
body:not(.admin-page) .trust-inner,
body:not(.admin-page) .tour-section,
body:not(.admin-page) .stay-section,
body:not(.admin-page) .detail-layout,
body:not(.admin-page) .inquiry-section,
body:not(.admin-page) .mypage-wrap,
body:not(.admin-page) .auth-wrap {
    position: relative;
    z-index: 1;
}

body:not(.admin-page) .hero-card,
body:not(.admin-page) .svc-card,
body:not(.admin-page) .trust-inner,
body:not(.admin-page) .stay-card,
body:not(.admin-page) .tour-card,
body:not(.admin-page) .detail-sidebar,
body:not(.admin-page) .booking-card,
body:not(.admin-page) .help-card,
body:not(.admin-page) .profile-card,
body:not(.admin-page) .auth-card,
body:not(.admin-page) .inquiry-success,
body:not(.admin-page) .stay-filter-panel,
body:not(.admin-page) .stay-results-panel,
body:not(.admin-page) .inquiry-form {
    border: 1px solid rgba(199, 155, 50, .20);
    box-shadow: 0 24px 70px rgba(18, 35, 64, .12);
}

body:not(.admin-page) .svc-card,
body:not(.admin-page) .stay-card,
body:not(.admin-page) .tour-card,
body:not(.admin-page) .profile-card,
body:not(.admin-page) .auth-card {
    background:
        linear-gradient(180deg, rgba(255,255,255,.97), rgba(255,253,247,.93));
}

body:not(.admin-page) .svc-card:hover,
body:not(.admin-page) .stay-card:hover,
body:not(.admin-page) .tour-card:hover,
body:not(.admin-page) .contact-links a:hover,
body:not(.admin-page) .profile-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 30px 80px rgba(18, 35, 64, .17);
}

body:not(.admin-page) .svc-card,
body:not(.admin-page) .stay-card,
body:not(.admin-page) .tour-card,
body:not(.admin-page) .contact-links a,
body:not(.admin-page) .profile-card {
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

body:not(.admin-page) .tour-img,
body:not(.admin-page) .stay-img,
body:not(.admin-page) .detail-img {
    background-color: #efe4c8;
    background-size: cover;
    background-position: center;
}

body:not(.admin-page) .tour-img::after,
body:not(.admin-page) .stay-img::after,
body:not(.admin-page) .detail-img::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 45%, rgba(15, 27, 45, .22));
    pointer-events: none;
}

body:not(.admin-page) .section-kicker,
body:not(.admin-page) .eyebrow,
body:not(.admin-page) .route-label,
body:not(.admin-page) .svc-type,
body:not(.admin-page) .filter-panel-title,
body:not(.admin-page) .filter-label {
    letter-spacing: .12em;
}

body:not(.admin-page) .stay-search-box,
body:not(.admin-page) .tour-controls,
body:not(.admin-page) .room-search,
body:not(.admin-page) .detail-section,
body:not(.admin-page) .inquiry-form {
    border-radius: 24px;
    background: rgba(255,253,247,.86);
    backdrop-filter: blur(12px);
}

body:not(.admin-page) .iq-row input,
body:not(.admin-page) .iq-row select,
body:not(.admin-page) .iq-row textarea,
body:not(.admin-page) .auth-form input,
body:not(.admin-page) .booking-fields input,
body:not(.admin-page) .stay-search-grid input,
body:not(.admin-page) .price-input,
body:not(.admin-page) .sort-select {
    background: rgba(255,255,255,.92);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}

body:not(.admin-page) .iq-row input:focus,
body:not(.admin-page) .iq-row select:focus,
body:not(.admin-page) .iq-row textarea:focus,
body:not(.admin-page) .auth-form input:focus,
body:not(.admin-page) .booking-fields input:focus,
body:not(.admin-page) .price-input:focus,
body:not(.admin-page) .sort-select:focus {
    box-shadow: 0 0 0 4px rgba(199, 155, 50, .18);
}

@media (max-width: 560px) {
    body:not(.admin-page) .site-header {
        width: calc(100% - 20px);
        margin-top: 10px;
        border-radius: 22px;
    }

    body:not(.admin-page) .main-nav {
        background: rgba(255, 255, 255, .86);
    }

    body:not(.admin-page) .hero-copy h1,
    body:not(.admin-page) .tour-hero h1,
    body:not(.admin-page) .stay-hero h1,
    body:not(.admin-page) .detail-title-block h1,
    body:not(.admin-page) .inquiry-header h1,
    body:not(.admin-page) .auth-card h1,
    body:not(.admin-page) .mypage-hero h1 {
        letter-spacing: -.045em;
    }
}

@media (prefers-reduced-motion: reduce) {
    body:not(.admin-page) .main-nav a,
    body:not(.admin-page) .member-logout-form button,
    body:not(.admin-page) .lang-switcher a,
    body:not(.admin-page) .button,
    body:not(.admin-page) .btn-hero,
    body:not(.admin-page) .btn-trust,
    body:not(.admin-page) .btn-sm,
    body:not(.admin-page) .svc-card,
    body:not(.admin-page) .stay-card,
    body:not(.admin-page) .tour-card,
    body:not(.admin-page) .contact-links a,
    body:not(.admin-page) .profile-card {
        transition: none;
    }
}

/* ============================================================
   option-12 renewal design system (ported from docs/design/renewal/app.css)
   2026-06-17 R02. New chrome/components for the option-12 renewal.
   Fonts are loaded via template <link> (Fraunces + Manrope).
   ============================================================ */

/* ============================================================
   StayStation — Renewal (Option 12 / Postcard) shared system
   Tokens and visual language match option-12-postcard.html.
   ============================================================ */
:root{
  --plum:#4A2230; --wine:#6E2E40; --rose:#C97E78; --gold:#C08A4A;
  --blush:#F7ECE7; --sand:#F3EBDF; --paper:#FFFFFF; --ink:#33222A; --muted:#8A6E6A;
  --line:#E8D7CE;
}
*{box-sizing:border-box;}
html,body{overflow-x:hidden;}
body{margin:0;color:var(--ink);font-family:Manrope,sans-serif;background:var(--blush);}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
button,input,select{font-family:inherit;}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:6px;}

.shell{width:min(1080px,calc(100% - 40px));margin:0 auto;}
.eyebrow{font-size:12px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin:0;}

/* ---------- Header ---------- */
.site-header{position:relative;z-index:40;background:var(--paper);border-bottom:1px solid var(--line);}
.site-header.over-hero{position:absolute;top:0;left:0;right:0;background:transparent;border:0;}
.site-header .bar{display:flex;align-items:center;justify-content:space-between;padding:16px 0;}
.site-header.over-hero .bar{margin-top:8px;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-radius:18px;padding:8px 16px;box-shadow:0 14px 40px rgba(74,34,48,.18);}
.brand{display:flex;align-items:center;}
.logo{width:auto;height:44px;object-fit:contain;}
.main-nav{display:flex;align-items:center;gap:4px;}
.main-nav>a{min-height:42px;display:inline-flex;align-items:center;padding:0 11px;border-radius:999px;font-weight:700;font-size:14px;color:var(--plum);}
.main-nav>a:hover{background:rgba(74,34,48,.08);}
.main-nav>a.active{background:rgba(110,46,64,.12);color:var(--wine);}

.language-menu{position:relative;}
.language-trigger{min-height:42px;display:inline-flex;align-items:center;padding:0 14px;border:0;cursor:pointer;border-radius:999px;background:var(--plum);color:#fff;font-weight:700;font-size:14px;list-style:none;}
.language-trigger::-webkit-details-marker{display:none;}
.language-layer{position:absolute;right:0;top:50px;z-index:50;display:grid;gap:4px;min-width:200px;padding:10px;border:1px solid var(--line);border-radius:16px;background:var(--paper);box-shadow:0 24px 60px rgba(74,34,48,.24);}
.language-option{display:flex;justify-content:space-between;padding:11px 12px;border-radius:11px;font-weight:700;font-size:14px;color:var(--muted);cursor:pointer;}
.language-option:hover{background:var(--sand);}
.language-option.active{color:var(--plum);background:rgba(192,138,74,.14);}
.language-option span{color:var(--gold);font-size:12px;}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 26px;border-radius:999px;font-weight:800;font-size:15px;cursor:pointer;border:0;}
.btn.primary{background:var(--gold);color:#2A1708;}
.btn.primary:hover{background:#CE9A56;}
.btn.wine{background:var(--wine);color:#fff;}
.btn.wine:hover{background:#812F46;}
.btn.ghost{background:transparent;color:var(--wine);border:1px solid var(--line);}
.btn.ghost:hover{background:var(--sand);}
.btn.sm{min-height:42px;padding:0 18px;font-size:14px;}
.btn.block{width:100%;}

/* ---------- Page hero (compact) ---------- */
.page-hero{position:relative;overflow:hidden;background-size:cover;background-position:center;color:#fff;padding:148px 0 64px;}
.page-hero img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.page-hero::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(74,34,48,.5),rgba(74,34,48,.32) 45%,rgba(74,34,48,.78));}
.page-hero .inner{position:relative;z-index:2;max-width:640px;}
.page-hero .eyebrow{color:#F0D4B6;margin-bottom:14px;}
.page-hero h1{margin:0;font-family:Fraunces,serif;font-weight:500;font-size:clamp(34px,5vw,56px);line-height:1.04;letter-spacing:-.02em;}
.page-hero p{margin:16px 0 0;max-width:52ch;font-size:17px;line-height:1.6;color:rgba(255,255,255,.9);}

/* ---------- Generic section / breadcrumb ---------- */
.section{padding:48px 0;}
.section-title{margin:0 0 22px;font-family:Fraunces,serif;font-weight:500;font-size:clamp(24px,3vw,34px);letter-spacing:-.02em;}
.breadcrumb{padding:18px 0 0;}
.breadcrumb a{font-weight:800;font-size:14px;color:var(--wine);}

/* ---------- Layout: filter + results ---------- */
.split{display:grid;grid-template-columns:300px 1fr;gap:30px;align-items:start;}
.panel{position:sticky;top:90px;background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:22px;box-shadow:0 20px 50px rgba(74,34,48,.08);}
.panel-title{margin:0 0 16px;font-family:Fraunces,serif;font-weight:500;font-size:22px;}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;}
.field>span{font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);}
.field input,.field select{height:44px;padding:0 12px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);font-size:14px;font-weight:600;}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.field-grid .field{margin-bottom:0;}

.filter-block{padding:16px 0;border-top:1px solid var(--line);}
.filter-block .block-title{margin:0 0 12px;font-size:13px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--plum);}
.chips{display:flex;flex-wrap:wrap;gap:8px;}
.chip{padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--paper);color:var(--wine);font-size:13px;font-weight:800;cursor:pointer;}
.chip:hover{background:var(--sand);}
.chip.active{background:var(--wine);color:#fff;border-color:var(--wine);}
.checks{display:grid;gap:10px;}
.check{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:700;color:var(--ink);cursor:pointer;}
.check input{width:18px;height:18px;accent-color:var(--wine);}

/* results head */
.results-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:18px;}
.result-count{margin:0;font-weight:800;font-size:15px;color:var(--plum);}
.sort-buttons{display:flex;gap:6px;flex-wrap:wrap;}
.sort-buttons a,.sort-buttons button{padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--paper);color:var(--muted);font-size:13px;font-weight:800;cursor:pointer;}
.sort-buttons a.active,.sort-buttons button.active{background:var(--plum);color:#fff;border-color:var(--plum);}

/* ---------- Listing cards ---------- */
.listing-grid{display:grid;grid-template-columns:1fr;gap:18px;}
.listing-card{display:grid;grid-template-columns:300px 1fr;background:var(--paper);border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 18px 44px rgba(74,34,48,.08);}
.lc-photo{position:relative;min-height:220px;overflow:hidden;}
.lc-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s ease;}
.listing-card:hover .lc-photo img{transform:scale(1.05);}
.lc-badge{position:absolute;top:14px;left:14px;z-index:2;padding:6px 12px;border-radius:8px;background:var(--sand);color:var(--wine);font-size:12px;font-weight:800;letter-spacing:.04em;}
.lc-body{padding:22px 24px;display:flex;flex-direction:column;gap:8px;}
.lc-titlerow{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
.lc-title{margin:0;font-family:Fraunces,serif;font-weight:500;font-size:22px;line-height:1.1;letter-spacing:-.01em;}
.lc-grade{flex-shrink:0;padding:5px 11px;border-radius:999px;background:rgba(192,138,74,.14);color:var(--gold);font-size:12px;font-weight:800;}
.lc-loc{margin:0;color:var(--muted);font-size:14px;font-weight:700;}
.lc-rating{font-size:14px;font-weight:800;color:var(--plum);}
.lc-rating .review-count{color:var(--muted);font-weight:600;}
.lc-desc{margin:2px 0 0;color:var(--muted);font-size:14px;line-height:1.6;}
.meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:2px;}
.meta span{padding:6px 12px;border-radius:999px;background:var(--blush);color:var(--wine);font-size:12px;font-weight:800;}
.lc-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:12px;}
.price{font-family:Fraunces,serif;font-weight:700;font-size:22px;color:var(--plum);}
.price small{font-family:Manrope,sans-serif;font-weight:700;font-size:13px;color:var(--muted);}

/* ---------- Detail ---------- */
.gallery{position:relative;border-radius:24px;overflow:hidden;margin:18px 0 24px;}
.gallery img{width:100%;height:clamp(280px,42vw,460px);object-fit:cover;}
.gallery .lc-badge{top:18px;left:18px;}
.detail-title{margin:0;font-family:Fraunces,serif;font-weight:500;font-size:clamp(30px,4vw,46px);line-height:1.05;letter-spacing:-.02em;}
.detail-sub{margin:10px 0 0;color:var(--muted);font-size:16px;font-weight:700;}

.detail-layout{display:grid;grid-template-columns:1fr 340px;gap:34px;align-items:start;padding-bottom:56px;}
.detail-layout article{padding:24px 0;border-top:1px solid var(--line);}
.detail-layout article:first-child{border-top:0;padding-top:8px;}
.detail-layout article h2{margin:0 0 12px;font-family:Fraunces,serif;font-weight:500;font-size:26px;letter-spacing:-.01em;}
.detail-layout article p{margin:0;color:var(--muted);font-size:16px;line-height:1.75;}
.feature-list{list-style:none;margin:0;padding:0;display:grid;gap:10px;}
.feature-list li{position:relative;padding-left:26px;font-size:15px;font-weight:600;color:var(--ink);}
.feature-list li::before{content:"✦";position:absolute;left:0;top:0;color:var(--gold);font-weight:800;}

.room-card{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:18px;border:1px solid var(--line);border-radius:18px;background:var(--paper);margin-top:12px;}
.room-card .rc-info h3{margin:0 0 4px;font-family:Fraunces,serif;font-weight:500;font-size:19px;}
.room-card .rc-info span{color:var(--muted);font-size:13px;font-weight:700;}
.room-card .rc-book{display:flex;align-items:center;gap:14px;}
.room-card .rc-book .price{font-size:20px;}

.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.info-card{padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--paper);display:flex;flex-direction:column;gap:5px;}
.info-card span{font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);}
.info-card strong{font-size:15px;color:var(--ink);}

/* ---------- Story / Space / Location pages ---------- */
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:22px;}
.space-intro{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(280px,.95fr);gap:28px;align-items:stretch;padding:24px;border:1px solid var(--line);border-radius:22px;background:var(--paper);box-shadow:0 18px 44px rgba(74,34,48,.06);}
.space-intro-copy{display:flex;flex-direction:column;justify-content:center;min-width:0;}
.space-intro h2{margin:8px 0 14px;font-family:Fraunces,serif;font-weight:500;font-size:clamp(28px,4vw,44px);line-height:1.08;color:var(--plum);}
.space-intro p:not(.eyebrow){margin:0;color:var(--muted);font-size:16px;line-height:1.8;white-space:pre-line;}
.space-intro img{width:100%;height:100%;min-height:300px;object-fit:cover;border-radius:16px;}
.story-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:34px;align-items:start;}
.lead-copy{margin:0 0 14px;color:var(--muted);font-size:16px;line-height:1.75;}
.story-note{padding:24px;border:1px solid var(--line);border-radius:22px;background:var(--paper);box-shadow:0 18px 44px rgba(74,34,48,.08);}
.story-note span{display:block;margin-bottom:10px;color:var(--gold);font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;}
.story-note strong{display:block;color:var(--plum);font-family:Fraunces,serif;font-size:24px;font-weight:500;line-height:1.15;}
.story-note p{margin:12px 0 0;color:var(--muted);font-size:14px;line-height:1.65;}
.story-band{background:var(--sand);}
.value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.value-card{padding:24px;border:1px solid var(--line);border-radius:20px;background:var(--paper);}
.value-card span{display:inline-flex;margin-bottom:18px;color:var(--gold);font-size:12px;font-weight:900;letter-spacing:.12em;}
.value-card h3{margin:0 0 10px;color:var(--plum);font-family:Fraunces,serif;font-size:23px;font-weight:500;letter-spacing:-.01em;}
.value-card p{margin:0;color:var(--muted);font-size:14px;line-height:1.65;}
.space-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.space-gallery figure{position:relative;min-height:260px;margin:0;overflow:hidden;border-radius:22px;background:var(--paper);box-shadow:0 18px 44px rgba(74,34,48,.08);}
.space-gallery img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease;}
.space-gallery figure:hover img{transform:scale(1.05);}
.space-gallery figcaption{position:absolute;left:12px;right:12px;bottom:12px;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.9);color:var(--plum);font-size:13px;font-weight:800;}
.space-empty{padding:26px;border:1px solid var(--line);border-radius:22px;background:var(--paper);}
.space-empty h3{margin:0 0 8px;color:var(--plum);font-family:Fraunces,serif;font-size:24px;font-weight:500;}
.space-empty p{margin:0;color:var(--muted);line-height:1.7;}
.location-layout{display:grid;grid-template-columns:minmax(0, .9fr) minmax(420px, 1.1fr);gap:32px;align-items:stretch;}
.location-info,.map-panel{padding:28px;border:1px solid var(--line);border-radius:24px;background:var(--paper);box-shadow:0 20px 50px rgba(74,34,48,.08);}
.contact-list{display:grid;gap:16px;margin:22px 0;padding:0;}
.contact-list div{padding-bottom:16px;border-bottom:1px solid var(--line);}
.contact-list div:last-child{padding-bottom:0;border-bottom:0;}
.contact-list dt{margin:0 0 5px;color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;}
.contact-list dd{margin:0;color:var(--plum);font-size:16px;font-weight:800;line-height:1.5;}
.map-panel{display:grid;grid-template-rows:minmax(320px,1fr) auto;gap:16px;}
.map-canvas{position:relative;min-height:320px;overflow:hidden;border-radius:18px;background:linear-gradient(135deg,#f5eee7,#ead6c5);}
.map-canvas::before{content:"";position:absolute;inset:20px;border:1px solid rgba(110,46,64,.14);border-radius:18px;}
.map-road{position:absolute;display:block;border-radius:999px;background:rgba(110,46,64,.22);}
.road-a{left:-8%;right:-8%;top:42%;height:28px;transform:rotate(-11deg);}
.road-b{left:52%;top:-10%;bottom:-10%;width:24px;transform:rotate(21deg);}
.road-c{left:8%;right:4%;bottom:24%;height:18px;transform:rotate(9deg);background:rgba(192,138,74,.34);}
.map-marker{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);padding:10px 14px;border-radius:999px;background:var(--wine);color:#fff;font-size:13px;font-weight:900;box-shadow:0 14px 30px rgba(74,34,48,.25);}
.map-marker::before{content:"";position:absolute;left:50%;top:-14px;width:16px;height:16px;border-radius:999px;background:var(--gold);transform:translateX(-50%);box-shadow:0 0 0 7px rgba(192,138,74,.22);}
.map-caption{display:flex;align-items:center;justify-content:space-between;gap:16px;color:var(--muted);font-size:14px;line-height:1.5;}
.map-caption strong{color:var(--plum);}

/* sidebar */
.sidebar{position:sticky;top:90px;display:grid;gap:16px;}
.sidebar-card{background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:24px;box-shadow:0 20px 50px rgba(74,34,48,.1);}
.from-label{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);}
.big-price{margin:4px 0 18px;font-family:Fraunces,serif;font-weight:700;font-size:34px;color:var(--plum);}
.big-price small{font-family:Manrope,sans-serif;font-weight:700;font-size:14px;color:var(--muted);}
.total{display:flex;align-items:center;justify-content:space-between;padding:14px 0;margin:6px 0 16px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.total span{font-size:14px;font-weight:700;color:var(--muted);}
.total strong{font-family:Fraunces,serif;font-size:22px;color:var(--plum);}
.note{margin:14px 0 0;font-size:13px;color:var(--muted);text-align:center;}

/* ---------- Footer ---------- */
.site-footer{padding:48px 0 36px;border-top:1px solid var(--line);background:var(--paper);}
.footer-top{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;padding-bottom:28px;border-bottom:1px solid var(--line);margin-bottom:24px;}
.footer-top h2{margin:6px 0 0;font-family:Fraunces,serif;font-weight:500;font-size:clamp(24px,3vw,32px);letter-spacing:-.01em;}
.contact-links{display:flex;gap:10px;flex-wrap:wrap;}
.contact-links a{padding:10px 18px;border-radius:999px;border:1px solid var(--line);font-weight:800;font-size:14px;color:var(--wine);}
.contact-links a:hover{background:var(--sand);}
.footer-meta{display:flex;flex-wrap:wrap;gap:8px 22px;margin:0 0 12px;color:var(--muted);font-size:13px;line-height:1.7;}
.footer-meta strong{color:var(--ink);}
.footer-copy{margin:0;font-weight:800;color:var(--wine);font-size:13px;}

/* ---------- Mobile bottom tabs ---------- */
.bottom-tabs{display:none;}

@media (min-width:901px){
  body{padding-bottom:0;}
}
@media (max-width:900px){
  body{padding-bottom:84px;}
  .main-nav>a{display:none;}
  .page-hero{padding:120px 0 48px;}
  .split{grid-template-columns:1fr;}
  .panel{position:static;}
  .listing-card,.listing-card:nth-child(even){grid-template-columns:1fr;}
  .lc-photo{min-height:180px;}
  .detail-layout{grid-template-columns:1fr;}
  .sidebar{position:static;}
  .info-grid{grid-template-columns:1fr;}
  .story-layout,.location-layout{grid-template-columns:1fr;}
  .value-grid{grid-template-columns:1fr;}
  .space-gallery{grid-template-columns:1fr 1fr;}
  .space-intro{grid-template-columns:1fr;}
  .space-intro img{min-height:240px;}
  .bottom-tabs{position:fixed;left:12px;right:12px;bottom:12px;z-index:60;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:8px;border-radius:20px;background:rgba(74,34,48,.97);box-shadow:0 18px 48px rgba(74,34,48,.4);}
  .bottom-tabs a{display:grid;place-items:center;min-height:52px;border-radius:13px;color:rgba(244,227,216,.82);font-size:11px;font-weight:800;}
  .bottom-tabs a.active{color:#2A1708;background:var(--gold);}
}

/* ============================================================
   Internal pages: forms, auth, mypage (extends shared tokens)
   ============================================================ */
.field textarea{min-height:120px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);font-size:14px;font-weight:500;line-height:1.6;resize:vertical;font-family:inherit;}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold);}

.form-card{max-width:560px;margin:0 auto;background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:32px;box-shadow:0 20px 50px rgba(74,34,48,.1);}
.form-card.wide{max-width:720px;}
.form-card .field{margin-bottom:16px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.form-row .field{margin-bottom:16px;}
.reservation-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--mist);}
.reservation-summary .sum-item{display:flex;flex-direction:column;gap:4px;}
.reservation-summary .sum-label{font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);}
.reservation-summary .sum-value{font-size:15px;font-weight:700;color:var(--ink);}

.check-icon{width:84px;height:84px;margin:0 auto 6px;display:grid;place-items:center;border-radius:999px;background:rgba(192,138,74,.16);color:var(--wine);font-size:42px;font-weight:800;}
.success-card{text-align:center;}
.success-card h1{margin:14px 0 10px;font-family:Fraunces,serif;font-weight:500;font-size:clamp(28px,4vw,38px);letter-spacing:-.02em;color:var(--plum);}
.success-card p{margin:0 auto 22px;max-width:44ch;color:var(--muted);font-size:15px;line-height:1.7;}
.success-card .acts{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;}

.reservation-success-page .form-card h1,
.inquiry-success-page .form-card h1{font-family:Fraunces,serif;font-weight:500;font-size:clamp(28px,4vw,38px);line-height:1.1;letter-spacing:-.02em;color:var(--plum);margin:14px 0 10px;}
.reservation-success-page .form-card .form-sub,
.inquiry-success-page .form-card .form-sub{max-width:44ch;margin-left:auto;margin-right:auto;}

.auth-wrap{display:grid;place-items:center;min-height:62vh;padding:64px 20px;}
.auth-card{width:min(420px,100%);background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:36px 32px;box-shadow:0 20px 50px rgba(74,34,48,.1);text-align:center;}
.auth-card .logo{height:40px;margin:0 auto 16px;}
.auth-card .eyebrow{margin-bottom:8px;}
.auth-card h1{margin:6px 0 22px;font-family:Fraunces,serif;font-weight:500;font-size:clamp(24px,3.2vw,30px);letter-spacing:-.02em;color:var(--plum);text-wrap:balance;}
.auth-card .field{text-align:left;}
.form-foot{margin:18px 0 0;font-size:14px;color:var(--muted);}
.form-foot a{font-weight:800;color:var(--wine);}

.cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:start;}
.mp-card h2{margin:0 0 14px;font-family:Fraunces,serif;font-weight:500;font-size:21px;letter-spacing:-.01em;color:var(--plum);}
.info-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line);font-size:14px;}
.info-row:last-child{border-bottom:0;}
.info-row span{color:var(--muted);font-weight:600;}
.info-row strong{color:var(--ink);font-weight:700;text-align:right;}
.history-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);}
.history-item:last-child{border-bottom:0;}
.history-item .hi-main{display:flex;flex-direction:column;gap:3px;}
.history-item .hi-main strong{font-size:14px;font-weight:800;color:var(--plum);}
.history-item .hi-main small{font-size:12px;color:var(--muted);}
.badge{padding:5px 11px;border-radius:999px;background:var(--blush);color:var(--wine);font-size:11px;font-weight:800;white-space:nowrap;}

@media (max-width:900px){
  .form-row{grid-template-columns:1fr;}
  .cards-grid{grid-template-columns:1fr;}
  .form-card{padding:24px 20px;}
  .auth-card{padding:30px 22px;}
}

body.has-hero .site-header{position:absolute;top:0;left:0;right:0;}

/* ===== option-12 home (full-bleed hero + postcard stack + ribbon + bookbar) — R05 ===== */
.hero{position:relative;min-height:88vh;display:grid;place-items:center;text-align:center;color:#fff;padding:120px 20px 80px;}
.hero img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(74,34,48,.5),rgba(74,34,48,.28) 40%,rgba(74,34,48,.78));z-index:1;}
.hero .inner{position:relative;z-index:2;max-width:760px;}
.hero .eyebrow{display:block;margin:0 0 18px;font-size:12px;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:#F0D4B6;}
.hero h1{margin:0;font-family:Fraunces,serif;font-weight:500;font-size:clamp(44px,7vw,86px);line-height:1.02;letter-spacing:-.02em;text-wrap:balance;}
/* 데스크톱: 의도된 2줄 구성(line1/line2 각각 한 줄) */
.hero h1 .hero-line{display:block;}
/* 모바일: 강제 줄바꿈 해제 → 한 흐름으로 합쳐 text-wrap:balance가 균형 배치 (span 사이 공백 보존) */
@media (max-width:640px){.hero h1 .hero-line{display:inline;}}
.hero h1 em{font-style:italic;font-weight:400;}
.hero p{margin:20px auto 0;max-width:54ch;font-size:18px;line-height:1.65;color:rgba(255,255,255,.9);}
.hero .acts{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:30px;}
.stack{display:grid;gap:30px;padding:34px 0 20px;}
.postcard .link{margin-top:20px;display:inline-block;font-weight:800;color:var(--wine);font-size:14px;}
@media (max-width:900px){
  .hero{min-height:78vh;padding:100px 18px 64px;}
}

/* option-12 home — intro / postcard / stamp / meta / ribbon / bookbar (R05) */
.intro{text-align:center;padding:64px 0 12px;}
.intro span{font-size:12px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);}
.intro h2{margin:12px auto 0;max-width:20ch;font-family:Fraunces,serif;font-weight:500;font-size:clamp(28px,4vw,44px);line-height:1.08;letter-spacing:-.02em;}
.postcard{display:grid;grid-template-columns:1.15fr 1fr;align-items:stretch;background:var(--paper);border:1px solid var(--line);border-radius:26px;overflow:hidden;box-shadow:0 26px 60px rgba(74,34,48,.1);}
.postcard:nth-child(even){grid-template-columns:1fr 1.15fr;}
.postcard:nth-child(even) .pc-photo{order:2;}
.pc-photo{position:relative;min-height:320px;overflow:hidden;}
.pc-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s ease;}
.postcard:hover .pc-photo img{transform:scale(1.05);}
.pc-body{padding:38px;display:flex;flex-direction:column;justify-content:center;}
.stamp{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;padding:6px 12px;border-radius:8px;background:var(--sand);color:var(--wine);font-size:12px;font-weight:800;letter-spacing:.06em;margin-bottom:16px;}
.stamp b{font-family:Fraunces,serif;font-size:15px;}
.pc-body h3{margin:0 0 10px;font-family:Fraunces,serif;font-weight:500;font-size:clamp(26px,3.2vw,38px);line-height:1.05;letter-spacing:-.02em;}
.pc-body p{margin:0;color:var(--muted);font-size:16px;line-height:1.7;}
.pc-body .meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px;}
.pc-body .meta span{padding:7px 13px;border-radius:999px;background:var(--blush);color:var(--wine);font-size:12px;font-weight:800;}
.ribbon{margin:54px 0;background:var(--plum);border-radius:28px;color:#F4E3D8;padding:44px;text-align:center;}
.ribbon h2{margin:0 0 10px;color:#fff;font-family:Fraunces,serif;font-weight:500;font-size:clamp(26px,3.4vw,38px);}
.ribbon p{margin:0 auto 22px;max-width:52ch;color:rgba(244,227,216,.8);font-size:16px;line-height:1.6;}
.ribbon .langs{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;}
.ribbon .langs span{padding:9px 16px;border-radius:999px;border:1px solid rgba(244,227,216,.4);font-weight:800;font-size:13px;}
.bookbar{position:fixed;left:0;right:0;bottom:0;z-index:55;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);border-top:1px solid var(--line);box-shadow:0 -14px 40px rgba(74,34,48,.12);}
.bookbar .inner{display:flex;align-items:center;gap:18px;padding:12px 0;}
.bookbar .seg{display:flex;flex-direction:column;padding-right:18px;border-right:1px solid var(--line);}
.bookbar .seg:last-of-type{border-right:0;}
.bookbar .seg small{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);}
.bookbar .seg strong{font-size:15px;}
.bookbar .grow{flex:1;}
@media (min-width:901px){ body.has-bookbar{padding-bottom:76px;} }
@media (max-width:900px){
  .postcard,.postcard:nth-child(even){grid-template-columns:1fr;}
  .postcard:nth-child(even) .pc-photo{order:0;}
  .pc-photo{min-height:220px;}
  .pc-body{padding:26px;}
  .bookbar{display:none;}
}

/* detail content articles (R08) */
.detail-content article{padding:24px 0;border-top:1px solid var(--line);}
.detail-content article:first-child{border-top:0;padding-top:0;}
.detail-content article h2{margin:0 0 10px;font-size:24px;}
.detail-content article p{margin:0;color:var(--muted);line-height:1.7;}
.rc-info h3{margin:0 0 4px;font-size:18px;}
.rc-info span{color:var(--muted);font-size:13px;}
.rc-book{display:flex;align-items:center;gap:14px;}
.from-label{font-size:12px;font-weight:800;text-transform:uppercase;color:var(--muted);}
.section-title{font-family:Fraunces,serif;font-weight:500;font-size:clamp(24px,3vw,34px);margin:0 0 18px;}

/* form errors + inquiry (R11) */
.field-error{display:block;margin-top:6px;color:var(--wine);font-size:13px;font-weight:700;}
.req{color:var(--wine);}
.note{margin-top:12px;color:var(--muted);font-size:13px;text-align:center;}

/* Stay detail — reservation calendar + price auto-calc */
.cal{margin:6px 0 14px;}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.cal-title{font-weight:800;font-size:14px;color:var(--ink);text-transform:capitalize;}
.cal-nav{width:32px;height:32px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--plum);font-size:16px;line-height:1;cursor:pointer;}
.cal-nav:hover{background:var(--plum);color:#fff;}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;}
.cal-dow span{text-align:center;font-size:11px;font-weight:800;color:var(--muted);padding:4px 0;}
.cal-days button{aspect-ratio:1;border:0;background:transparent;border-radius:10px;font-size:13px;font-weight:600;color:var(--ink);cursor:pointer;}
.cal-days button:hover:not(:disabled){background:var(--sand,#f3e9df);}
.cal-days button:disabled{color:#cdbfb2;cursor:default;}
.cal-days button.is-reserved:disabled,
.cal-days button.is-holiday:disabled{background:#f4eee8;text-decoration:line-through;text-decoration-thickness:1px;}
.cal-days button.is-holiday:disabled{color:#b98658;}
.cal-days .blank{visibility:hidden;}
.cal-days button.in-range{background:rgba(74,34,48,.10);border-radius:0;}
.cal-days button.sel{background:var(--plum);color:#fff;}
.cal-days button.sel.start{border-radius:10px 0 0 10px;}
.cal-days button.sel.end{border-radius:0 10px 10px 0;}
.cal-hint{margin:8px 0 0;font-size:12px;color:var(--muted);}
.cal-summary{margin:0 0 14px;border-top:1px solid var(--line);padding-top:12px;}
.cal-summary>div{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;margin-bottom:6px;}
.cal-summary dt{margin:0;color:var(--muted);font-weight:600;}
.cal-summary dd{margin:0;color:var(--ink);font-weight:700;}
.cal-summary .cal-total{border-top:1px solid var(--line);padding-top:8px;margin-top:2px;}
.cal-summary .cal-total dt,.cal-summary .cal-total dd{font-size:15px;color:var(--plum);font-weight:800;}

/* Stay detail — guest stepper (adults / children) */
.guest-picker{margin:0 0 14px;}
.guest-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line);}
.guest-row:last-child{border-bottom:0;}
.guest-label{display:flex;flex-direction:column;font-size:14px;font-weight:700;color:var(--ink);}
.guest-label small{font-size:11px;font-weight:600;color:var(--muted);text-transform:none;letter-spacing:0;}
.stepper{display:flex;align-items:center;gap:10px;}
.stepper .step{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--plum);font-size:18px;line-height:1;cursor:pointer;}
.stepper .step:hover:not(:disabled){background:var(--plum);color:#fff;}
.stepper .step:disabled{color:#cdbfb2;cursor:default;}
.stepper .step-val{min-width:20px;text-align:center;font-weight:800;font-size:15px;color:var(--ink);}

/* Mobile GNB — 햄버거 전체화면 메뉴 (하단 탭 대체) */
.nav-actions{display:flex;align-items:center;gap:8px;}
.main-nav{margin-left:auto;}
.nav-toggle{display:none;width:44px;height:44px;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--plum);font-size:20px;line-height:1;cursor:pointer;}
.nav-toggle:hover{background:rgba(74,34,48,.08);}

.mobile-menu{position:fixed;inset:0;z-index:200;background:var(--paper);display:flex;flex-direction:column;padding:18px 22px 28px;transform:translateX(100%);transition:transform .25s ease;overflow-y:auto;visibility:hidden;pointer-events:none;}
.mobile-menu.open{transform:none;visibility:visible;pointer-events:auto;}
.mobile-menu-head{display:flex;justify-content:flex-end;}
.mobile-menu-close{width:46px;height:46px;border:0;background:transparent;color:var(--plum);font-size:26px;line-height:1;cursor:pointer;}
.mobile-menu-nav{display:flex;flex-direction:column;margin-top:6px;}
.mobile-menu-nav>a{padding:16px 6px;font-size:22px;font-weight:800;color:var(--plum);border-bottom:1px solid var(--line);}
.mobile-menu-nav>a.active{color:var(--wine);}
.mobile-menu-logout{padding:14px 6px;border-bottom:1px solid var(--line);}
.mobile-menu-logout button{background:none;border:0;padding:0;font-size:22px;font-weight:800;color:var(--plum);cursor:pointer;}
.mm-lang{margin-top:22px;}
.mm-lang-title{margin:0 0 10px;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);}
.mm-lang-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.mm-lang-grid>a{padding:12px;border:1px solid var(--line);border-radius:14px;text-align:center;font-size:16px;font-weight:700;color:var(--plum);}
.mm-lang-grid>a.active{background:rgba(110,46,64,.12);color:var(--wine);border-color:var(--wine);}

@media (min-width:901px){ .mobile-menu{display:none;} }
@media (max-width:900px){
  .site-header .main-nav{display:none;}
  .nav-toggle{display:inline-flex;}
  .bottom-tabs{display:none!important;}
  body{padding-bottom:0!important;}
}

@media (max-width:620px){
  .section-head{align-items:flex-start;}
  .section-head .btn{width:100%;}
  .space-gallery{grid-template-columns:1fr;}
  .space-gallery figure{min-height:230px;}
  .location-info,.map-panel{padding:20px;}
  .map-panel{grid-template-rows:auto auto;}
  .map-caption{align-items:flex-start;flex-direction:column;}
}

/* Mobile: 언어 트리거는 글로브만 (텍스트 숨겨 헤더 간결화) */
@media (max-width:900px){
  .language-trigger span{display:none;}
  .language-menu .language-layer{right:0;}
}

/* Stay list — 단일 범위 캘린더 위젯 (filter panel) */
[data-range-cal]{margin-bottom:12px;}
[data-range-cal] .rc-label{margin:6px 0 8px;font-size:14px;font-weight:700;color:var(--ink);}
[data-range-cal] .cal{margin:0;}

/* Stay list — 인원(Guests) 선택: 트리거 + 아래로 펼쳐지는 패널 */
.guest-select{position:relative;}
.guest-trigger{width:100%;height:44px;padding:0 12px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);font-size:14px;font-weight:600;text-align:left;cursor:pointer;}
.guest-trigger:hover{border-color:var(--plum);}
.guest-panel{margin-top:8px;padding:4px 14px;border:1px solid var(--line);border-radius:12px;background:var(--paper);}
.guest-panel .guest-row{padding:10px 0;}

/* Home hero — 컨시어지(Ask concierge) ghost 버튼: 어두운 hero 위 프로스트 화이트(option-12 시안) */
.hero .btn.ghost{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.55);backdrop-filter:blur(6px);}
.hero .btn.ghost:hover{background:rgba(255,255,255,.2);}

/* Stay list — 가격(Price) 듀얼 레인지 슬라이더 */
.price-slider{position:relative;height:46px;margin:10px 0 4px;}
.price-slider .ps-track{position:absolute;top:16px;left:0;right:0;height:5px;border-radius:999px;background:var(--line);}
.price-slider .ps-fill{position:absolute;top:0;bottom:0;background:var(--wine);border-radius:999px;}
.price-slider input[type=range]{position:absolute;top:6px;left:0;width:100%;height:24px;margin:0;background:none;pointer-events:none;-webkit-appearance:none;appearance:none;}
.price-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:auto;width:20px;height:20px;border-radius:50%;background:#fff;border:2px solid var(--wine);box-shadow:0 2px 6px rgba(74,34,48,.25);cursor:pointer;}
.price-slider input[type=range]::-moz-range-thumb{pointer-events:auto;width:18px;height:18px;border-radius:50%;background:#fff;border:2px solid var(--wine);cursor:pointer;}
.price-slider .ps-vals{position:absolute;top:30px;left:0;right:0;display:flex;justify-content:space-between;font-size:12px;font-weight:800;color:var(--ink);}

/* List pagination (front stay/tour) */
.list-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin:28px 0 8px;}
.list-pagination .page-ind{font-weight:800;color:var(--muted);font-size:14px;}

/* Tour list — 다열 세로카드 그리드 (전체 폭에서 한 줄에 여러 개) */
.tour-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));}
.tour-grid .listing-card{grid-template-columns:1fr;}
.tour-grid .lc-photo{min-height:190px;}
