:root {
    --font-ui: "Pretendard", -apple-system, BlinkMacSystemFont, "Noto Sans KR", "Malgun Gothic", sans-serif;
    --font-heading: "Pretendard", -apple-system, BlinkMacSystemFont, "Noto Sans KR", "Malgun Gothic", sans-serif;
    --font-emotion: "Gowun Batang", "Noto Serif KR", "Nanum Myeongjo", Georgia, serif;
    --font-hero-hand: "Nanum Brush Script", "Gowun Batang", "Noto Serif KR", cursive;
    --intro-primary: #172235;
    --intro-accent: #b88950;
    --intro-bg: #fff;
    --intro-soft: #f5f7fa;
    --intro-text: #172033;
    --intro-muted: #6b7280;
}

body[data-theme="hanok"] {
    --intro-primary: #1a2b49;
    --intro-accent: #b9874f;
    --intro-bg: #fbf8f3;
    --intro-soft: #f4eee5;
    --intro-text: #3f3025;
    --intro-muted: #7d6e61;
}

.booking-page {
    overflow-x: hidden;
    padding-top: 108px;
    background: var(--intro-bg);
    color: var(--intro-text);
    font-family: var(--font-ui);
}

.top {
    position: fixed;
    top: 0;
    left: 50%;
    z-index: 50;
    width: min(100%, 720px);
    transform: translateX(-50%);
    background: #faf7f2;
    box-shadow: none;
}

.brand {
    display: grid;
    grid-template-columns: 2.4em minmax(0, 1fr) 2.4em;
    align-items: center;
    position: relative;
    overflow: hidden;
    min-height: 64px;
    padding: 16px;
    background: #1c1812;
    box-shadow: none;
    border-bottom: 1px solid #b48e5a;
}

.brand-balance {
    width: 2.4em;
    height: 1em;
}

.brand h1,
.brand-mark {
    overflow: hidden;
    margin: 0;
    font-family: "Noto Serif KR", var(--font-emotion);
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: .1em;
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.brand h1 a,
.brand-mark a {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: #f4ede1;
    text-shadow: none;
}

.brand h1 a::before,
.brand h1 a::after,
.brand-mark a::before,
.brand-mark a::after {
    width: 28px;
    height: 1px;
    flex: 0 0 28px;
    content: "";
    background: #b48e5a;
}

.brand-reserve {
    justify-self: end;
    color: #b48e5a;
    font-size: 11px;
    font-weight: 400;
    letter-spacing: .16em;
}

.top .tabs {
    background: #faf7f2;
    border-bottom: 1px solid rgba(28, 24, 18, .08);
}

.top .tabs a {
    min-height: 44px;
    padding: 12px 3px 10px;
    border-right: 0;
    color: #8b7355;
    font-size: 12px;
    font-weight: 400;
    letter-spacing: .08em;
    background: transparent;
}

.top .tabs .primary {
    color: #1c1812;
    font-weight: 500;
    background: transparent;
    box-shadow: inset 0 -1px 0 #b48e5a;
}

@media (max-width: 899px) {
    .top .tabs a {
        min-height: 28px;
        padding: 7px 3px 6px;
    }

    .booking-page:not(.booking-page--heritage-header) {
        padding-top: 92px;
    }
}

.intro-hero {
    position: relative;
    margin-bottom: 0;
}

.intro-hero .slider {
    position: relative;
    height: clamp(205px, 54vw, 260px);
    touch-action: pan-y;
}

.intro-hero .slide img {
    object-position: center;
}

.hero-shade {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    background:
        linear-gradient(90deg, rgba(13, 11, 9, .56) 0%, rgba(13, 11, 9, .38) 45%, rgba(13, 11, 9, .08) 78%, transparent 100%),
        linear-gradient(0deg, rgba(13, 11, 9, .48) 0%, rgba(13, 11, 9, .18) 30%, transparent 62%);
}

.hero-copy {
    position: absolute;
    top: 54%;
    right: 28px;
    left: 30px;
    z-index: 3;
    max-width: 520px;
    transform: translateY(-50%);
    color: #fff;
    text-shadow: 0 3px 10px rgba(0, 0, 0, .62), 0 1px 24px rgba(0, 0, 0, .42);
}

.hero-copy-title {
    font-family: var(--font-hero-hand);
    font-size: clamp(32px, 8.5vw, 46px);
    font-weight: 400;
    line-height: 1.42;
    letter-spacing: .01em;
    word-break: keep-all;
}

.hero-copy-subtitle {
    max-width: 420px;
    margin-top: 6px;
    font-size: clamp(14px, 3.8vw, 17px);
    font-weight: 500;
    line-height: 1.75;
    letter-spacing: -.015em;
    word-break: keep-all;
}

.slider-dots {
    position: absolute;
    right: 0;
    bottom: 18px;
    left: 0;
    z-index: 4;
    display: flex;
    justify-content: center;
    gap: 7px;
}

.slider-dots button {
    width: 7px;
    height: 7px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, .58);
}

.slider-dots button.active {
    width: 22px;
    background: #fff;
}

.emotional-intro {
    padding: 18px 16px 20px;
    text-align: center;
    background:
        radial-gradient(circle at 18% 12%, rgba(185, 135, 79, .07), transparent 28%),
        linear-gradient(180deg, #fffdf9, #faf5ed);
}

.intro-panel-image {
    display: flex;
    overflow: hidden;
    padding: 14px 0 32px;
    justify-content: center;
    line-height: 0;
    background:
        radial-gradient(circle at 50% 12%, rgba(185, 135, 79, .06), transparent 34%),
        #faf5ed;
}

.intro-panel-image img {
    display: block;
    width: min(calc(100% - 28px), 670px);
    height: auto;
    aspect-ratio: 1297 / 983;
    border: 1px solid rgba(139, 104, 71, .08);
    border-radius: 5px;
    object-fit: fill;
    box-shadow: 0 10px 30px rgba(73, 50, 31, .07);
}

.emotion-kicker {
    max-width: 570px;
    margin: 0 auto 10px;
    color: #806c58;
    font-family: var(--font-emotion);
    font-size: clamp(13px, 3.6vw, 16px);
    font-weight: 400;
    line-height: 1.7;
    letter-spacing: .015em;
    word-break: keep-all;
}

.intro-name-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.emotional-intro h2 {
    margin: 0;
    color: #4d3828;
    font-family: var(--font-emotion);
    font-size: clamp(25px, 6.8vw, 34px);
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -.035em;
    word-break: keep-all;
}

.intro-seal {
    display: grid;
    width: 28px;
    height: 32px;
    place-items: center;
    border: 1px solid #c94d3d;
    border-radius: 2px;
    color: #c94d3d;
    font-family: var(--font-emotion);
    font-size: 9px;
    font-weight: 700;
    line-height: 1.05;
}

.emotion-subtitle {
    max-width: 540px;
    margin: 20px auto 0;
    color: var(--intro-muted);
    font-family: var(--font-ui);
    font-size: 16px;
    font-weight: 400;
    line-height: 1.9;
    letter-spacing: -.015em;
    word-break: keep-all;
}

.intro-contact {
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    gap: 8px;
    margin-top: 10px;
    color: #b7a38e;
    font-size: clamp(10px, 2.8vw, 12px);
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: -.01em;
}

.intro-contact > * {
    white-space: nowrap;
}

.intro-contact a {
    color: inherit;
    text-decoration: none;
}

.intro-features {
    padding: 22px 14px 28px;
    border-top: 1px solid rgba(155, 119, 82, .13);
    background:
        radial-gradient(circle at 82% 82%, rgba(108, 127, 79, .06), transparent 26%),
        linear-gradient(180deg, #faf6ef, #f8f2e9);
}

.intro-features h2 {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 14px;
    color: #6d4932;
    font-family: var(--font-emotion);
    font-size: clamp(17px, 4.8vw, 21px);
    text-align: center;
}

.intro-features h2::before,
.intro-features h2::after {
    height: 1px;
    flex: 1;
    content: "";
    background: linear-gradient(90deg, transparent, rgba(185, 135, 79, .35));
}

.intro-features h2::after {
    background: linear-gradient(90deg, rgba(185, 135, 79, .35), transparent);
}

.intro-features h2 span::after {
    margin-left: 3px;
    color: #839665;
    content: "❧";
    font-size: 13px;
}

.intro-feature-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.intro-feature {
    min-width: 0;
    min-height: 98px;
    padding: 14px 4px 10px;
    border: 1px solid rgba(98, 75, 52, .09);
    border-radius: 11px;
    background: rgba(255, 254, 251, .88);
    text-align: center;
    box-shadow: 0 4px 13px rgba(67, 48, 32, .055);
}

.intro-feature strong {
    display: block;
    margin-top: 7px;
    color: #68513e;
    font-size: clamp(10px, 2.8vw, 13px);
    font-weight: 600;
    line-height: 1.35;
    word-break: keep-all;
}

.feature-icon {
    display: inline-grid;
    width: 34px;
    height: 34px;
    place-items: center;
    color: #725740;
    font-family: var(--font-emotion);
    font-size: 25px;
}

.feature-icon::before { content: "⌂"; }
.feature-icon-wifi::before { content: "⌁"; font-size: 31px; }
.feature-icon-parking::before { content: "P"; font-family: var(--font-ui); font-size: 22px; font-weight: 700; }
.feature-icon-cafe::before { content: "♨"; }
.feature-icon-breakfast::before { content: "◉"; }
.feature-icon-kitchen::before { content: "⌂"; }
.feature-icon-luggage::before { content: "▣"; }
.feature-icon-comfort::before { content: "❉"; }

.intro-feature-quote {
    margin: 20px 0 0;
    color: #765b45;
    font-family: var(--font-emotion);
    font-size: clamp(14px, 4vw, 17px);
    line-height: 1.6;
    text-align: center;
}

.intro-feature-ornament {
    margin-top: 3px;
    color: #879568;
    font-size: 14px;
    letter-spacing: -4px;
    text-align: center;
}

.search-section {
    scroll-margin-top: 90px;
    padding-top: 34px;
    border-top: 0;
    background: #fff;
}

.search-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.search-section-head h2 {
    margin: 0;
}

#available-rooms {
    scroll-margin-top: 90px;
}

.guide-subtabs--property,
.guide-subtabs--reservation {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.guide-subtabs--reservation {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.guide-subtabs--rooms {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    grid-template-columns: none;
}

.guide-subtabs--rooms a {
    flex: 0 0 auto;
    min-width: 4.5rem;
    padding-left: 8px;
    padding-right: 8px;
}

.guide-subtabs {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 3px;
    margin: 7px 12px 10px;
    padding: 4px;
    border: 1px solid rgba(98, 75, 52, .1);
    border-radius: 11px;
    background: #f3eee7;
    box-shadow: inset 0 1px 2px rgba(67, 48, 32, .035);
}

.guide-subtabs a {
    padding: 6px 1px;
    border-radius: 7px;
    color: #756b62;
    font-size: clamp(10px, 2.8vw, 12px);
    font-weight: 600;
    text-align: center;
    white-space: nowrap;
}

.guide-subtabs a.active {
    color: #5f402d;
    background: #fffdfa;
    box-shadow: 0 1px 4px rgba(67, 48, 32, .12), inset 0 -2px 0 #b9874f;
}

.guide-info-section {
    min-height: 52vh;
}

.reservation-check-section {
    padding: 8px 16px 40px;
}

.reservation-check-head h2 {
    margin: 0 0 6px;
}

.reservation-check-head p {
    margin: 0 0 16px;
    color: #756b62;
    font-size: 13px;
    line-height: 1.55;
}

.reservation-check-card {
    padding: 16px;
    border: 1px solid rgba(98, 75, 52, .12);
    border-radius: 12px;
    background: #fffdfa;
}

.reservation-check-card + .reservation-check-card {
    margin-top: 0;
}

.reservation-check-card h3 {
    margin: 0 0 14px;
    font-size: 16px;
}

.reservation-check-card label {
    display: block;
    margin: 0 0 6px;
    font-size: 13px;
    font-weight: 600;
}

.reservation-check-card input {
    width: 100%;
    box-sizing: border-box;
    height: 44px;
    margin: 0 0 12px;
    padding: 0 12px;
    border: 1px solid #ddd;
    border-radius: 10px;
    font-size: 15px;
}

.reservation-check-card button {
    width: 100%;
    height: 46px;
    border: 0;
    border-radius: 10px;
    background: #5a3e2b;
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
}

.reservation-check-notice {
    margin: 12px 0 0;
    color: #777;
    font-size: 13px;
    line-height: 1.6;
}

.reservation-check-divider {
    margin: 16px 0;
    color: #999;
    font-size: 13px;
    text-align: center;
}

.reservation-check-back,
.reservation-check-detail {
    display: block;
    box-sizing: border-box;
    height: 44px;
    margin: 0 0 16px;
    border: 1px solid rgba(98, 75, 52, .16);
    border-radius: 10px;
    background: #fff;
    color: #333;
    font-size: 14px;
    font-weight: 700;
    line-height: 42px;
    text-align: center;
    text-decoration: none;
}

.reservation-check-detail {
    margin: 14px 0 0;
    border: 0;
    background: #5a3e2b;
    color: #fff;
}

.reservation-check-error,
.reservation-check-empty {
    padding: 16px;
    border-radius: 12px;
    font-size: 14px;
    line-height: 1.6;
}

.reservation-check-error {
    border: 1px solid #ffd0d0;
    background: #fff3f3;
    color: #c0392b;
}

.reservation-check-empty {
    border: 1px solid rgba(98, 75, 52, .12);
    background: #fffdfa;
    color: #666;
    text-align: center;
}

.reservation-check-result + .reservation-check-result {
    margin-top: 12px;
}

.reservation-check-row {
    display: grid;
    grid-template-columns: 88px 1fr;
    gap: 8px;
    margin-bottom: 8px;
    font-size: 14px;
}

.reservation-check-row span {
    color: #777;
}

.reservation-check-row strong {
    font-weight: 600;
}

.reservation-check-status {
    display: inline-block;
    padding: 4px 9px;
    border-radius: 999px;
    font-size: 12px;
    font-style: normal;
    font-weight: 700;
}

.reservation-check-status.st-pending {
    background: #fff3cd;
    color: #9a6700;
}

.reservation-check-status.st-confirmed {
    background: #f3eee7;
    color: #5a3e2b;
}

.reservation-check-status.st-cancel-requested {
    background: #ffe4e6;
    color: #be123c;
}

.reservation-check-status.st-cancelled {
    background: #e5e7eb;
    color: #555;
}

.refund-policy-card {
    padding: 16px;
    border: 1px solid rgba(98, 75, 52, .12);
    border-radius: 12px;
    background: #fffdfa;
    color: #51463d;
    font-size: 14px;
    line-height: 1.75;
}

.refund-policy-card p {
    margin: 0 0 14px;
}

.refund-policy-card p:last-child {
    margin-bottom: 0;
}

body[data-theme="hanok"] .search-section {
    background: #fffdfa;
}

/* Property page */
body[data-view="property"] .intro-hero .slider {
    height: clamp(245px, 68vw, 340px);
}

body[data-view="property"] .hero-shade {
    background:
        linear-gradient(0deg, rgba(28, 20, 14, .7) 0%, rgba(28, 20, 14, .18) 58%, rgba(28, 20, 14, .08) 100%);
}

body[data-view="property"] .hero-copy {
    top: auto;
    right: 24px;
    bottom: 30px;
    left: 24px;
    transform: none;
    text-align: center;
}

body[data-view="property"] .emotional-intro {
    padding: 34px 24px 26px;
    text-align: left;
}

body[data-view="property"] .intro-name-row {
    justify-content: flex-start;
}

body[data-view="property"] .emotion-subtitle {
    margin: 16px 0 0;
}

body[data-view="property"] .intro-contact {
    justify-content: flex-start;
    margin-top: 18px;
}

.property-section-heading {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 12px;
    color: #9a754e;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .14em;
}

.property-section-number {
    display: inline-grid;
    width: 25px;
    height: 25px;
    place-items: center;
    border: 1px solid rgba(185, 135, 79, .55);
    border-radius: 50%;
    font-family: var(--font-emotion);
    font-size: 10px;
    letter-spacing: 0;
}

.property-story {
    position: relative;
    padding: 26px 28px 38px 54px;
    background: #4d3a2b;
    color: #fffaf3;
}

.property-story-mark {
    position: absolute;
    top: 12px;
    left: 22px;
    color: #c9a879;
    font-family: Georgia, serif;
    font-size: 42px;
}

.property-story p {
    margin: 0;
    font-family: var(--font-emotion);
    font-size: 15px;
    line-height: 2;
    letter-spacing: -.01em;
    word-break: keep-all;
}

.property-story-line {
    width: 42px;
    height: 1px;
    margin-top: 20px;
    background: #c9a879;
}

.property-sections {
    padding: 20px 14px 30px;
    background:
        radial-gradient(circle at 100% 10%, rgba(185,135,79,.08), transparent 25%),
        #f5f0e8;
}

.property-card-section {
    margin-bottom: 14px;
    padding: 24px 18px;
    border: 1px solid rgba(116, 87, 58, .1);
    border-radius: 17px;
    background: rgba(255, 253, 249, .96);
    box-shadow: 0 8px 28px rgba(65, 45, 27, .06);
}

.property-card-section:last-child {
    margin-bottom: 0;
}

.property-card-section h2 {
    margin: 0;
    color: #4b3728;
    font-family: var(--font-emotion);
    font-size: 23px;
}

.property-section-lead {
    margin: 8px 0 18px;
    color: #817367;
    font-size: 13px;
    line-height: 1.7;
}

.property-facilities .facility-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.property-facilities .facility {
    display: flex;
    min-height: 54px;
    padding: 10px 12px;
    align-items: center;
    gap: 9px;
    border: 1px solid #eee4d8;
    border-radius: 10px;
    background: #fcfaf6;
    color: #57483c;
    font-size: 13px;
    font-weight: 600;
    text-align: left;
}

.facility-symbol {
    color: #a47b4f;
    font-family: var(--font-emotion);
    font-size: 18px;
}

.stay-time-row {
    display: grid;
    grid-template-columns: 1fr 36px 1fr;
    align-items: center;
    margin: 17px 0;
    padding: 18px 14px;
    border-radius: 12px;
    background: #4d3a2b;
    color: #fff;
    text-align: center;
}

.stay-time-row > div {
    display: grid;
    gap: 2px;
}

.stay-time-row span {
    color: #cebda9;
    font-size: 9px;
    letter-spacing: .13em;
}

.stay-time-row strong {
    font-family: var(--font-emotion);
    font-size: 21px;
}

.stay-time-row small {
    color: #cebda9;
    font-size: 10px;
}

.stay-time-row i {
    width: 22px;
    height: 1px;
    margin: auto;
    background: #a98c6c;
}

.property-policy .policy-grid {
    grid-template-columns: 1fr;
    gap: 0;
}

.property-policy .policy-grid > div {
    padding: 13px 2px;
    border: 0;
    border-bottom: 1px solid #eee5da;
    border-radius: 0;
    background: transparent;
}

.property-policy .policy-grid strong {
    color: #5a4636;
    font-size: 13px;
}

.property-policy .policy-grid p {
    color: #817367;
    font-size: 12px;
    line-height: 1.7;
}

.property-policy .refund {
    margin-top: 14px;
    padding: 0;
    border: 1px solid #e8ded2;
    border-radius: 10px;
    background: #faf7f2;
}

.property-policy .refund summary {
    display: flex;
    padding: 14px;
    justify-content: space-between;
    color: #5a4636;
    cursor: pointer;
    font-size: 13px;
    font-weight: 700;
    list-style: none;
}

.property-policy .refund p {
    padding: 0 14px 14px;
    color: #75675b;
    font-size: 12px;
    line-height: 1.7;
}

.property-contact-card {
    display: grid;
    gap: 0;
    margin-top: 16px;
    padding: 4px 15px;
    border-radius: 12px;
    background: #4d3a2b;
    color: #fff;
}

.property-contact-card > div {
    display: grid;
    grid-template-columns: 44px 1fr;
    gap: 8px;
    padding: 13px 0;
    border-bottom: 1px solid rgba(255,255,255,.12);
    font-size: 13px;
    line-height: 1.55;
}

.property-contact-card > div:last-child {
    border-bottom: 0;
}

.property-contact-card span {
    color: #cdbba6;
    font-size: 11px;
}

.property-contact-card strong,
.property-contact-card a {
    font-weight: 500;
}

.property-map {
    position: relative;
    overflow: hidden;
    height: 230px;
    margin-top: 12px;
    border: 1px solid #e3d8ca;
    border-radius: 12px;
    background: #eee8df;
}

.property-map iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}

.property-contact-section .contact-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
}

.property-contact-section .contact-actions a {
    padding: 12px 8px;
    border: 1px solid #e3d8ca;
    border-radius: 9px;
    background: #fff;
    color: #6b5442;
    font-size: 12px;
}

.property-contact-section .contact-actions .contact-primary {
    border-color: #8b6847;
    background: #8b6847;
    color: #fff;
}

.property-parking-block {
    margin-top: 16px;
    padding: 14px 15px;
    border: 1px solid #e3d8ca;
    border-radius: 12px;
    background: #faf7f2;
}

.property-parking-block h3 {
    margin: 0 0 10px;
    color: #4d3a2b;
    font-size: 15px;
}

.property-parking-notice {
    margin: 0 0 12px;
    color: #75675b;
    font-size: 13px;
    line-height: 1.65;
}

.property-parking-item {
    padding: 12px 0;
    border-top: 1px solid #e8dfd3;
}

.property-parking-item:first-of-type {
    border-top: 0;
    padding-top: 0;
}

.property-parking-name {
    display: block;
    color: #4d3a2b;
    font-size: 14px;
    font-weight: 700;
}

.property-parking-meta {
    margin: 6px 0 0;
    color: #75675b;
    font-size: 12px;
    line-height: 1.6;
}

.property-parking-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}

.property-parking-actions a {
    padding: 8px 12px;
    border: 1px solid #d9cabb;
    border-radius: 8px;
    background: #fff;
    color: #6b5442;
    font-size: 12px;
}

/* Nearby guide */
.nearby-page {
    background: #f5f0e8;
}

.nearby-hero {
    position: relative;
    overflow: hidden;
    padding: 42px 24px 36px;
    background:
        radial-gradient(circle at 90% 20%, rgba(201, 168, 121, .16), transparent 30%),
        linear-gradient(145deg, #3d2c21, #594331);
    color: #fffaf3;
}

.nearby-hero::after {
    position: absolute;
    right: -34px;
    bottom: -52px;
    width: 150px;
    height: 150px;
    border: 1px solid rgba(215, 188, 150, .19);
    border-radius: 50%;
    content: "";
    box-shadow: 0 0 0 24px rgba(215,188,150,.04), 0 0 0 48px rgba(215,188,150,.025);
}

.nearby-kicker {
    margin: 0 0 12px;
    color: #d5b98f;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .16em;
}

.nearby-hero h2 {
    position: relative;
    z-index: 1;
    margin: 0;
    font-family: var(--font-emotion);
    font-size: clamp(28px, 7.8vw, 38px);
    font-weight: 700;
    line-height: 1.42;
    letter-spacing: -.035em;
}

.nearby-hero > p:not(.nearby-kicker) {
    position: relative;
    z-index: 1;
    max-width: 480px;
    margin: 16px 0 0;
    color: #d8cec4;
    font-size: 13px;
    line-height: 1.8;
    word-break: keep-all;
}

.nearby-summary {
    position: relative;
    z-index: 1;
    display: flex;
    gap: 8px;
    margin-top: 23px;
}

.nearby-summary span {
    padding: 7px 11px;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 999px;
    background: rgba(255,255,255,.07);
    color: #e5dbd0;
    font-size: 11px;
}

.nearby-summary strong {
    margin-right: 3px;
    color: #fff;
    font-family: var(--font-emotion);
    font-size: 14px;
}

.nearby-group {
    padding: 30px 14px 8px;
}

.nearby-group + .nearby-group {
    padding-top: 38px;
}

.nearby-group-heading {
    padding: 0 6px 18px;
}

.nearby-group-heading span {
    color: #9a754e;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .15em;
}

.nearby-group-heading h3 {
    margin: 5px 0 0;
    color: #4b3728;
    font-family: var(--font-emotion);
    font-size: 23px;
    line-height: 1.4;
}

.nearby-group-heading p {
    margin: 8px 0 0;
    color: #817367;
    font-size: 12px;
    line-height: 1.7;
    word-break: keep-all;
}

.nearby-list {
    display: grid;
    gap: 15px;
}

.nearby-card {
    overflow: hidden;
    border: 1px solid rgba(116, 87, 58, .1);
    border-radius: 17px;
    background: #fffdf9;
    box-shadow: 0 8px 26px rgba(65, 45, 27, .07);
}

.nearby-card-media {
    position: relative;
    overflow: hidden;
    height: auto;
    aspect-ratio: 16 / 10;
    background: #dfd4c7;
}

.nearby-card-media::after {
    position: absolute;
    inset: 0;
    content: "";
    pointer-events: none;
    background: linear-gradient(0deg, rgba(25,18,13,.36), transparent 48%);
}

.nearby-card-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .45s ease;
}

.nearby-card:hover .nearby-card-media img {
    transform: scale(1.025);
}

.nearby-card-number,
.nearby-card-category {
    position: absolute;
    z-index: 2;
    top: 13px;
}

.nearby-card-number {
    left: 13px;
    display: grid;
    width: 31px;
    height: 31px;
    place-items: center;
    border: 1px solid rgba(255,255,255,.65);
    border-radius: 50%;
    color: #fff;
    background: rgba(45,31,22,.38);
    backdrop-filter: blur(5px);
    font-family: var(--font-emotion);
    font-size: 10px;
}

.nearby-card-category {
    right: 13px;
    padding: 6px 10px;
    border-radius: 999px;
    color: #5a402d;
    background: rgba(255,251,245,.92);
    font-size: 10px;
    font-weight: 700;
}

.nearby-image-placeholder {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
    background:
        radial-gradient(circle at center, rgba(255,255,255,.22), transparent 34%),
        linear-gradient(145deg, #9f8b75, #6f5b48);
    color: rgba(255,255,255,.8);
}

.nearby-image-placeholder span {
    font-family: var(--font-emotion);
    font-size: 44px;
}

.nearby-card-body {
    padding: 19px 18px 18px;
}

.nearby-card-title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.nearby-card-title-row h4 {
    margin: 0;
    color: #443126;
    font-family: var(--font-emotion);
    font-size: 21px;
    line-height: 1.35;
    word-break: keep-all;
}

.nearby-distance {
    flex: 0 0 auto;
    padding: 5px 8px;
    border-radius: 999px;
    color: #7d6248;
    background: #f2eadf;
    font-size: 10px;
    white-space: nowrap;
}

.nearby-description {
    display: -webkit-box;
    overflow: hidden;
    margin: 11px 0 0;
    color: #74675b;
    font-size: 13px;
    line-height: 1.75;
    word-break: keep-all;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.nearby-address {
    margin: 12px 0 0;
    color: #9a8c80;
    font-size: 11px;
    line-height: 1.55;
}

.nearby-address span {
    color: #a47b4f;
}

.nearby-link {
    display: flex;
    margin-top: 16px;
    padding-top: 13px;
    align-items: center;
    justify-content: space-between;
    border-top: 1px solid #eee5da;
    color: #684b35;
    font-size: 12px;
    font-weight: 700;
}

.nearby-link b {
    display: grid;
    width: 28px;
    height: 28px;
    place-items: center;
    border-radius: 50%;
    background: #8b6847;
    color: #fff;
    font-size: 14px;
    font-weight: 400;
}

.nearby-empty {
    min-height: 55vh;
    padding: 70px 24px;
    color: #74675b;
    text-align: center;
}

.nearby-empty > span {
    display: block;
    color: #a47b4f;
    font-size: 35px;
}

.nearby-empty strong {
    display: block;
    margin-top: 12px;
    color: #4b3728;
    font-family: var(--font-emotion);
    font-size: 20px;
}

.nearby-empty p {
    margin: 8px 0 0;
    font-size: 12px;
    line-height: 1.7;
}

@media (min-width: 600px) {
    .nearby-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .nearby-card-media {
        height: 220px;
        aspect-ratio: auto;
    }
}

/* Nearby detail */
.nearby-detail{min-height:calc(100vh - 82px);padding-bottom:30px;background:#f5f0e8}
.nearby-detail-back{display:flex;min-height:48px;padding:0 18px;align-items:center;gap:8px;color:#665343;background:#fffdf9;font-size:12px;font-weight:700}
.nearby-detail-back span{font-size:18px}
.nearby-detail-visual{position:relative;overflow:hidden;height:clamp(250px,72vw,390px);background:#75614d}
.nearby-detail-visual::after{position:absolute;inset:0;content:"";background:linear-gradient(0deg,rgba(30,21,15,.38),transparent 50%);pointer-events:none}
.nearby-detail-visual img{display:block;width:100%;height:100%;object-fit:cover}
.nearby-detail-visual-empty{display:grid;place-items:center;color:rgba(255,255,255,.72);background:linear-gradient(145deg,#9f8b75,#6f5b48);font-family:var(--font-emotion);font-size:50px}
.nearby-detail-category{position:absolute;right:18px;bottom:17px;z-index:2;padding:7px 12px;border-radius:999px;color:#5a402d;background:rgba(255,251,245,.94);font-size:11px;font-weight:700}
.nearby-detail-body{margin:-1px 14px 0;padding:28px 19px 20px;border-radius:0 0 17px 17px;background:#fffdf9;box-shadow:0 9px 28px rgba(65,45,27,.07)}
.nearby-detail-kicker{margin:0 0 7px;color:#9a754e;font-size:9px;font-weight:700;letter-spacing:.15em}
.nearby-detail-body h2{margin:0;color:#443126;font-family:var(--font-emotion);font-size:clamp(27px,7vw,34px);line-height:1.35}
.nearby-detail-distance{display:inline-block;margin-top:10px;padding:6px 10px;border-radius:999px;color:#7d6248;background:#f2eadf;font-size:11px}
.nearby-detail-description{margin-top:22px;padding-top:20px;border-top:1px solid #eee5da;color:#6f6257;font-size:14px;line-height:1.9;word-break:keep-all}
.nearby-detail-description p{margin:0 0 13px}
.nearby-detail-description p:last-child{margin-bottom:0}
.nearby-detail-notes{margin-top:16px;padding:15px;border:1px solid #e7dccf;border-radius:11px;background:#faf6f0;color:#6d5a49}
.nearby-detail-notes strong{display:block;margin-bottom:8px;color:#584334;font-size:12px}
.nearby-detail-notes ul{margin:0;padding-left:17px}
.nearby-detail-notes li{margin-top:5px;font-size:12px;line-height:1.65;word-break:keep-all}
.nearby-detail-notes li:first-child{margin-top:0}
.nearby-detail-address{display:grid;grid-template-columns:42px 1fr;gap:8px;margin-top:20px;padding:14px;border-radius:10px;background:#f7f2eb;line-height:1.6}
.nearby-detail-address span{color:#a18e7c;font-size:11px}
.nearby-detail-address strong{color:#58483b;font-size:12px;font-weight:600}
.nearby-detail-map{overflow:hidden;height:230px;margin-top:12px;border:1px solid #e3d8ca;border-radius:11px;background:#eee8df}
.nearby-detail-map iframe{display:block;width:100%;height:100%;border:0}
.nearby-portal-link{display:flex;margin-top:13px;padding:14px 15px;align-items:center;justify-content:space-between;border-radius:11px;background:#2f4d38;color:#fff}
.nearby-portal-link span{display:grid;gap:2px}
.nearby-portal-link small{color:#a9c1af;font-size:8px;letter-spacing:.13em}
.nearby-portal-link strong{font-size:13px}
.nearby-portal-link b{display:grid;width:29px;height:29px;place-items:center;border:1px solid rgba(255,255,255,.25);border-radius:50%;font-weight:400}

/* Local Platform (로컬) */
.local-platform {
    --lp-header-offset: 86px;
}

.local-platform-visual {
    background: #f5f0e8;
}

.local-platform-visual .nearby-page,
.local-platform-visual.nearby-page {
    background: transparent;
}

.local-platform-artboard {
    background: #f5f0e8;
}

.lp-visual-artboard {
    position: relative;
    line-height: 0;
    background: #ebe3d6;
}

.lp-visual-artboard--vertical {
    width: 100%;
    margin: 0;
    background: #f5f0e8;
}

.lp-visual-artboard--vertical .lp-visual-art {
    width: 100%;
    max-width: none;
    height: auto;
    aspect-ratio: 431 / 671;
    object-fit: fill;
}

/* 서브메뉴 선택 시 세로 허브 이미지 숨김 (가로 배너와 중복 방지) */
.local-platform.is-lp-tab-open [data-lp-hub] {
    display: none;
}

.lp-hub8 {
    padding: 0 14px 28px;
    background: linear-gradient(180deg, #f3eee6 0%, #f7f4ee 100%);
}

.lp-hub8-hero {
    margin: 0 -14px;
    padding: 28px 14px 22px;
    background-color: #f8f6f2;
    background-image:
        linear-gradient(90deg, #f8f6f2 0%, rgba(248, 246, 242, .96) 34%, rgba(248, 246, 242, .55) 52%, rgba(248, 246, 242, .12) 72%, transparent 88%),
        url('/booking/assets/local/local-on-hero.jpg');
    background-repeat: no-repeat;
    background-position: center right;
    background-size: cover;
    border-bottom: 1px solid rgba(116, 87, 58, .08);
    min-height: min(220px, 34vw);
}

.lp-hub8-head {
    max-width: 520px;
}

.lp-hub8-kicker {
    margin: 0 0 6px;
    color: #7d6a56;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
}

.lp-hub8-title {
    margin: 0;
    color: #2f4a32;
    font-family: var(--font-emotion);
    font-size: clamp(28px, 8vw, 36px);
    line-height: 1.25;
}

.lp-hub8-tagline {
    margin: 8px 0 0;
    color: #4b3728;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.45;
    word-break: keep-all;
}

.lp-hub8-intro {
    margin: 10px 0 0;
    color: #6a5b4e;
    font-size: 13px;
    line-height: 1.7;
    word-break: keep-all;
}

.lp-hub8-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 16px 0 0;
}

.lp-hub8-meta span {
    padding: 7px 11px;
    border: 1px solid rgba(116, 87, 58, .14);
    border-radius: 999px;
    background: #fffdf9;
    color: #6f5d4d;
    font-size: 11px;
}

.lp-hub8-meta strong {
    color: #4b3728;
    font-family: var(--font-emotion);
}

.lp-hub8-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    margin: 20px 0 0;
    padding-top: 4px;
}

.lp-hub8-card {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 14px;
    border: 1px solid rgba(116, 87, 58, .12);
    border-radius: 18px;
    background: #fffdf9;
    box-shadow: 0 10px 24px rgba(74, 52, 34, .06);
    color: inherit;
    text-decoration: none;
}

.lp-hub8-card-top {
    display: flex;
    align-items: center;
    gap: 8px;
}

.lp-hub8-no {
    color: #8a7358;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .04em;
}

.lp-hub8-icon {
    font-size: 18px;
    line-height: 1;
}

.lp-hub8-name {
    color: #3b2a1f;
    font-size: 18px;
    line-height: 1.35;
}

.lp-hub8-desc {
    color: #6a5b4e;
    font-size: 13px;
    line-height: 1.55;
    word-break: keep-all;
}

.lp-hub8-media {
    display: block;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    border-radius: 12px;
    background: #efe7db;
}

.lp-hub8-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.lp-hub8-source {
    color: #8a7358;
    font-size: 11px;
    line-height: 1.5;
    word-break: keep-all;
}

.lp-hub8-more {
    display: inline-flex;
    align-self: flex-start;
    margin-top: 4px;
    padding: 7px 12px;
    border-radius: 999px;
    background: #3f6b35;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
}

.lp-hub8-card.is-active,
.lp-hub8-card:focus-visible {
    box-shadow: inset 0 0 0 2px rgba(63, 107, 53, .45);
    outline: none;
}

.lp-hub8-credits {
    margin: 22px 0 0;
    padding: 16px 14px;
    border-radius: 16px;
    background: rgba(255, 253, 249, .78);
}

.lp-hub8-credits h3 {
    margin: 0 0 10px;
    color: #4b3728;
    font-size: 14px;
}

.lp-hub8-credits ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.lp-hub8-credits li {
    margin: 0 0 6px;
    color: #6a5b4e;
    font-size: 12px;
    line-height: 1.5;
}

.lp-hub8-credits a {
    color: #8a6848;
    text-decoration: none;
}

.lp-hub8-credits a:hover {
    text-decoration: underline;
}

.lp-hub8-points {
    display: grid;
    gap: 10px;
    margin: 16px 0 0;
    padding: 0;
    list-style: none;
}

.lp-hub8-points li {
    padding: 12px 14px;
    border-radius: 14px;
    background: rgba(255, 253, 249, .78);
    color: #6a5b4e;
    font-size: 12px;
    line-height: 1.55;
}

.lp-hub8-points strong {
    display: block;
    margin-bottom: 4px;
    color: #3b2a1f;
    font-size: 13px;
}

.lp-hub8-subnav {
    display: block;
    position: relative;
    top: auto;
    z-index: 40;
    scroll-margin-top: 0;
    margin-top: 0;
    border-bottom: 1px solid rgba(116, 87, 58, .12);
    background: rgba(255, 253, 249, .97);
    backdrop-filter: blur(10px);
}

.local-platform-hub8:not(.is-lp-tab-open) .lp-hub8-subnav {
    display: none;
}

.lp-hub8-subnav-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 8px 14px 0;
}

.lp-hub8-back {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 9px;
    border: 1px solid rgba(116, 87, 58, .14);
    border-radius: 999px;
    background: #fffdf9;
    color: #4b3728;
    font-size: 11px;
    font-weight: 700;
    text-decoration: none;
}

.lp-hub8-back-icon {
    font-size: 14px;
    line-height: 1;
}

.lp-hub8-subnav-hint {
    color: #9a8c80;
    font-size: 11px;
}

.lp-hub8-subnav-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 4px;
    padding: 6px 10px 8px;
}

.lp-hub8-subnav-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1px;
    min-height: 56px;
    padding: 4px 4px 6px;
    border: 1px solid rgba(116, 87, 58, .1);
    border-radius: 14px;
    background: #fff;
    color: #6a5b4e;
    text-decoration: none;
    text-align: center;
    transition: background .15s ease, border-color .15s ease, box-shadow .15s ease;
}

.lp-hub8-subnav-no {
    color: #b5a697;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .04em;
}

.lp-hub8-subnav-icon {
    font-size: 18px;
    line-height: 1;
}

.lp-hub8-subnav-label {
    font-size: 10px;
    font-weight: 700;
    line-height: 1.25;
    word-break: keep-all;
}

.lp-hub8-subnav-item:hover {
    border-color: rgba(63, 107, 53, .22);
    background: #f8fbf6;
}

.lp-hub8-subnav-item.is-active,
.lp-hub8-subnav-item[aria-current="page"] {
    border-color: rgba(63, 107, 53, .35);
    background: linear-gradient(180deg, #edf5ea 0%, #e4f0df 100%);
    color: #2f4a32;
    box-shadow: inset 0 0 0 1px rgba(63, 107, 53, .12);
}

.lp-hub8-subnav-item.is-active .lp-hub8-subnav-no,
.lp-hub8-subnav-item[aria-current="page"] .lp-hub8-subnav-no {
    color: #5a7a52;
}

.local-platform.is-lp-tab-open .lp-panel-head {
    display: none;
}

.local-platform.is-lp-tab-open #lp-content {
    scroll-margin-top: var(--lp-header-offset, 86px);
}

@media (min-width: 720px) {
    .lp-hub8-subnav-grid {
        gap: 8px;
        padding: 12px 16px 14px;
    }

    .lp-hub8-subnav-item {
        min-height: 78px;
    }

    .lp-hub8-subnav-label {
        font-size: 11px;
    }
}

.local-platform-hub8:not(.is-lp-tab-open) .lp-panels {
    display: none;
}

.local-platform.is-lp-tab-open [data-lp-hub] {
    display: none;
}

@media (min-width: 720px) {
    .lp-hub8-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

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

@media (min-width: 1080px) {
    .lp-hub8-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* CP6-LOCAL-MOBILE-IA-001: mobile discovery only. Desktop hub/hero unchanged. */
.lp-category-intro {
    display: none;
}

@media (max-width: 719px) {
    .local-platform-hub8:not(.is-lp-tab-open) .lp-panels {
        display: block;
    }

    .local-platform-hub8:not(.is-lp-tab-open) .lp-panel-head {
        display: none;
    }

    .local-platform-hub8:not(.is-lp-tab-open) .lp-hub8 {
        padding: 10px 10px 8px;
    }

    .local-platform-hub8:not(.is-lp-tab-open) [data-lp-hub] > .lp-hub8-hero,
    .local-platform-hub8:not(.is-lp-tab-open) .lp-hub8-credits,
    .local-platform-hub8:not(.is-lp-tab-open) .lp-hub8-points {
        display: none;
    }

    .local-platform-hub8:not(.is-lp-tab-open) .lp-hub8-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 6px;
        margin: 4px 0 0;
        padding-top: 0;
    }

    .local-platform-hub8:not(.is-lp-tab-open) .lp-hub8-grid .lp-hub8-card {
        min-width: 0;
        gap: 3px;
        padding: 8px 3px 9px;
        border-radius: 12px;
        box-shadow: none;
        align-items: center;
        text-align: center;
    }

    .local-platform-hub8:not(.is-lp-tab-open) .lp-hub8-grid .lp-hub8-card-top {
        justify-content: center;
        gap: 3px;
    }

    .local-platform-hub8:not(.is-lp-tab-open) .lp-hub8-grid .lp-hub8-no {
        font-size: 10px;
    }

    .local-platform-hub8:not(.is-lp-tab-open) .lp-hub8-grid .lp-hub8-icon {
        font-size: 16px;
    }

    .local-platform-hub8:not(.is-lp-tab-open) .lp-hub8-grid .lp-hub8-name {
        font-size: 11px;
        line-height: 1.25;
        word-break: keep-all;
    }

    .local-platform-hub8:not(.is-lp-tab-open) .lp-hub8-grid .lp-hub8-desc,
    .local-platform-hub8:not(.is-lp-tab-open) .lp-hub8-grid .lp-hub8-media,
    .local-platform-hub8:not(.is-lp-tab-open) .lp-hub8-grid .lp-hub8-source,
    .local-platform-hub8:not(.is-lp-tab-open) .lp-hub8-grid .lp-hub8-more {
        display: none;
    }

    .local-platform-hub8.is-lp-tab-open .lp-hub8-subnav-top {
        justify-content: flex-start;
        padding: 8px 14px 0;
    }

    .local-platform-hub8.is-lp-tab-open .lp-hub8-subnav-hint {
        display: none;
    }

    .lp-panel.is-active .lp-category-intro {
        display: flex;
        margin: 12px 14px 4px;
    }

    .lp-panel.is-active .lp-category-intro .lp-hub8-more {
        display: none;
    }

    .lp-panel.is-active .lp-one-page-kicker {
        display: none;
    }

    .lp-panel.is-active .lp-one-page-header {
        margin: 0 14px 15px;
        padding: 0 14px;
        text-align: center;
    }

    .lp-panel.is-active .lp-one-page-tagline {
        margin-top: 20px;
        font-size: 20px;
    }

    .lp-panel.is-active .lp-one-page-meta {
        justify-content: center;
    }

    .lp-panel.is-active .lp-ai-story {
        margin-bottom: 0;
    }

    .lp-panel.is-active .lp-section-one-page {
        padding-top: 30px;
        padding-bottom: 0;
    }

    .lp-panel.is-active .lp-section-featured {
        margin-bottom: 0;
    }
}

@media (max-width: 359px) {
    .local-platform-hub8:not(.is-lp-tab-open) .lp-hub8 {
        padding-left: 8px;
        padding-right: 8px;
    }

    .local-platform-hub8:not(.is-lp-tab-open) .lp-hub8-grid {
        gap: 4px;
    }

    .local-platform-hub8:not(.is-lp-tab-open) .lp-hub8-grid .lp-hub8-name {
        font-size: 10px;
    }
}

.lp-tab-banner {
    display: none;
    position: relative;
    line-height: 0;
    background: #ebe3d6;
    scroll-margin-top: var(--lp-header-offset, 86px);
}

.local-platform.is-lp-tab-open .lp-tab-banner--landscape {
    display: block;
}

.local-detail-banner {
    display: block;
}

.lp-panel .lp-today-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 18px;
    padding: 0 2px;
}

.lp-panel .lp-today-meta span {
    padding: 7px 11px;
    border: 1px solid rgba(116, 87, 58, .14);
    border-radius: 999px;
    background: #fffdf9;
    color: #6f5d4d;
    font-size: 11px;
}

.lp-panel .lp-today-meta strong {
    margin-right: 3px;
    color: #4b3728;
    font-family: var(--font-emotion);
    font-size: 13px;
}

.lp-panel .lp-today-weather span[aria-hidden="true"] {
    margin-right: 4px;
}

.lp-one-page-header {
    margin: 0 0 18px;
    padding: 0 2px 14px;
}

.lp-one-page-kicker {
    margin: 0 0 6px;
    color: #8a735f;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .02em;
}

.lp-one-page-tagline {
    margin: 0 0 10px;
    color: #4b3728;
    font-family: var(--font-emotion);
    font-size: 20px;
    font-weight: 600;
    line-height: 1.35;
}

.lp-one-page-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.lp-one-page-meta > span {
    padding: 7px 11px;
    border: 1px solid rgba(116, 87, 58, .14);
    border-radius: 999px;
    background: #fffdf9;
    color: #6f5d4d;
    font-size: 11px;
    max-width: 100%;
}

.lp-one-page-meta strong {
    color: #4b3728;
    font-family: var(--font-emotion);
    font-size: 13px;
}

.lp-section-one-page .lp-section-heading h4 {
    font-size: 15px;
    letter-spacing: -.01em;
}

.lp-section-today-title {
    --lp-section-accent: #8b3d1f;
    --lp-section-badge-bg: #f3e4d4;
}

.lp-section-key-featured {
    --lp-section-accent: #b25c2e;
    --lp-section-badge-bg: #f8e4d6;
}

.lp-section-key-enjoy_today {
    --lp-section-accent: #3f6b35;
    --lp-section-badge-bg: #e5f0e2;
}

.lp-section-key-travel_today {
    --lp-section-accent: #3d5f7a;
    --lp-section-badge-bg: #dce7ef;
}

.lp-section-key-market_local {
    --lp-section-accent: #9a6428;
    --lp-section-badge-bg: #f4e6cf;
}

.lp-section-key-night_today {
    --lp-section-accent: #5c5694;
    --lp-section-badge-bg: #e6e4f4;
}

.lp-section-today-title .lp-section-heading h4 {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--lp-section-accent);
    font-size: 17px;
    font-weight: 700;
    letter-spacing: -.02em;
}

.lp-section-title-badge {
    display: inline-grid;
    flex: 0 0 auto;
    place-items: center;
    min-width: 28px;
    height: 22px;
    padding: 0 7px;
    border-radius: 999px;
    background: var(--lp-section-badge-bg);
    color: var(--lp-section-accent);
    font-family: var(--font-ui);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .04em;
}

.lp-card-accent-meat {
    --lp-section-accent: #b25c2e;
    --lp-section-badge-bg: #f8e4d6;
}

.lp-card-accent-hoe {
    --lp-section-accent: #3d5f7a;
    --lp-section-badge-bg: #dce7ef;
}

.lp-card-accent-snack {
    --lp-section-accent: #c46a2b;
    --lp-section-badge-bg: #f7e3d0;
}

.lp-card-accent-makchang {
    --lp-section-accent: #8b3d1f;
    --lp-section-badge-bg: #f3e4d4;
}

.lp-card-accent-festival {
    --lp-section-accent: #8b3d1f;
    --lp-section-badge-bg: #f3e4d4;
}

.lp-card-accent-performance {
    --lp-section-accent: #5c5694;
    --lp-section-badge-bg: #e6e4f4;
}

.lp-card-accent-exhibition {
    --lp-section-accent: #3d5f7a;
    --lp-section-badge-bg: #dce7ef;
}

.lp-card-accent-expo {
    --lp-section-accent: #9a6428;
    --lp-section-badge-bg: #f4e6cf;
}

.lp-card-accent-sports {
    --lp-section-accent: #3f6b35;
    --lp-section-badge-bg: #e5f0e2;
}

.lp-section-event-types .lp-card-badge-inline,
.lp-section-night-types .lp-card-badge-inline,
.lp-section-market-types .lp-card-badge-inline,
.lp-section-alley-types .lp-card-badge-inline,
.lp-section-story-types .lp-card-badge-inline {
    margin-bottom: 3px;
    padding: 3px 7px;
    font-size: 9px;
}

.lp-section-market-pairs .lp-card-list,
.lp-market-pair-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.lp-market-pair {
    display: grid;
    grid-template-columns: 1fr 1fr;
    overflow: hidden;
    border: 1px solid rgba(116, 87, 58, .1);
    border-radius: 16px;
    background: #fffdf9;
}

.lp-market-pair-single {
    grid-template-columns: 1fr;
}

.lp-market-pair .lp-card {
    min-width: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.lp-market-pair .lp-card + .lp-card {
    border-left: 1px solid rgba(116, 87, 58, .1);
}

.lp-market-pair .lp-card-no-image .lp-card-body,
.lp-market-pair .lp-card-body {
    padding: 12px 12px 11px;
}

.lp-market-pair .lp-card-name {
    display: -webkit-box;
    margin: 0;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    font-size: 14px;
    line-height: 1.35;
}

.lp-market-pair .lp-card-highlight,
.lp-market-pair .lp-card-subtitle,
.lp-market-pair .lp-card-address,
.lp-market-pair .lp-card-distance {
    position: relative;
    margin: 4px 0 0;
    padding-left: 0.75em;
    font-size: 11px;
    line-height: 1.45;
    word-break: keep-all;
}

.lp-market-pair .lp-card-highlight::before,
.lp-market-pair .lp-card-subtitle::before,
.lp-market-pair .lp-card-address::before,
.lp-market-pair .lp-card-distance::before {
    content: "-";
    position: absolute;
    left: 0;
    color: #8a7a6c;
    font-weight: 500;
}

.lp-market-pair .lp-card-highlight {
    font-weight: 600;
}

.lp-market-pair .lp-card-subtitle {
    color: #6a5b4e;
}

.lp-market-pair .lp-card-address {
    color: #7a6b5e;
}

.lp-market-pair .lp-card-actions {
    gap: 5px;
    margin-top: 8px;
}

.lp-market-pair .lp-action {
    min-height: 28px;
    padding: 0 9px;
    font-size: 11px;
}

.lp-event-intro-jumps {
    display: flex;
    justify-content: center;
    width: 100%;
}

.lp-event-jumps {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px;
    padding: 0;
    border: 0;
    background: transparent;
}

.lp-event-jump {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    padding: 0 12px;
    border: 1px solid rgba(116, 87, 58, .16);
    border-radius: 999px;
    background: #fff;
    color: #5a402d;
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
}

.lp-event-jump.is-active {
    border-color: rgba(139, 61, 31, .28);
    background: #f3e4d4;
    color: #8b3d1f;
}

.lp-section-event-types {
    scroll-margin-top: var(--lp-header-offset, 86px);
}

.lp-section-heading-event {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.lp-section-heading-event h4 {
    min-width: 0;
}

.lp-event-top {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    min-height: 26px;
    padding: 0 10px;
    border: 1px solid rgba(116, 87, 58, .16);
    border-radius: 999px;
    background: #fff;
    color: #7a6450;
    font-family: inherit;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
}

#lp-event-top {
    scroll-margin-top: var(--lp-header-offset, 86px);
}

.lp-section-featured {
    margin-bottom: 8px;
}

.lp-section-night-groups .lp-night-group + .lp-night-group {
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid rgba(75, 55, 40, .08);
}

.lp-night-group-heading h5 {
    margin: 0 0 10px;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: -.01em;
    color: #6d67a8;
}

.lp-action-official {
    border-color: rgba(79, 117, 92, .35);
    color: #3f6349;
}

.lp-action-map {
    /* map/directions stays separate from official info */
}

@media (min-width: 768px) {
    .lp-section-one-page .lp-card-list {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px;
    }

    .lp-section-featured .lp-card-list {
        grid-template-columns: 1fr;
    }
}

.lp-ai-story {
    margin: 0 0 22px;
    padding: 18px 16px 20px;
    border: 1px solid rgba(116, 87, 58, .12);
    border-radius: 16px;
    background: linear-gradient(180deg, #fffdf9 0%, #faf6ef 100%);
}

.lp-ai-story-kicker {
    margin: 0 0 10px;
}

.lp-ai-story-badge {
    display: inline-block;
    padding: 5px 10px;
    border-radius: 999px;
    background: #e8f3e4;
    color: #3f6b35;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .02em;
}

.lp-ai-story-title {
    margin: 0 0 14px;
    color: #3b2a1f;
    font-family: var(--font-ui);
    font-size: 18px;
    font-weight: 600;
    line-height: 1.35;
}

.lp-ai-story-body {
    margin: 0 0 16px;
    color: #4a4038;
    font-size: 15px;
    line-height: 1.75;
}

.lp-ai-story-body p {
    margin: 0 0 12px;
}

.lp-ai-story-body p:last-child {
    margin-bottom: 0;
}

.lp-ai-story-body .lp-ai-story-em {
    color: #3b2a1f;
    font-weight: 700;
}

.lp-ai-story-block .lp-ai-story-em {
    color: #4a4038;
    font-weight: 700;
}

.lp-ai-story-block {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px dashed rgba(116, 87, 58, .18);
}

.lp-ai-story-block h5 {
    margin: 0 0 8px;
    color: #6f5d4d;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.lp-ai-story-block p {
    margin: 0;
    color: #4a4038;
    font-size: 14px;
    line-height: 1.65;
}

#lp-content {
    scroll-margin-top: var(--lp-header-offset, 86px);
}

.lp-tab-banner img {
    display: block;
    width: 100%;
    height: auto;
}

/* 가로형 배너: 기존(가로 이미지) 클릭 영역 좌표 */
.lp-tab-banner--landscape .lp-hotspot {
    --w: 16.1%;
    --h: 13.8%;
}

.lp-tab-banner--landscape .lp-hotspot[data-hub="today_local"] { --x: 30.2%; --y: 17.8%; }
.lp-tab-banner--landscape .lp-hotspot[data-hub="local_story"] { --x: 49.6%; --y: 17.8%; }
.lp-tab-banner--landscape .lp-hotspot[data-hub="owner_pick"] { --x: 67.3%; --y: 17.8%; }
.lp-tab-banner--landscape .lp-hotspot[data-hub="local_food"] { --x: 24.3%; --y: 40%; }
.lp-tab-banner--landscape .lp-hotspot[data-hub="market"] { --x: 41.8%; --y: 40%; }
.lp-tab-banner--landscape .lp-hotspot[data-hub="night_local"] { --x: 63.9%; --y: 40%; }
.lp-tab-banner--landscape .lp-hotspot[data-hub="alley"] { --x: 20.4%; --y: 59.9%; --w: 16.9%; }
.lp-tab-banner--landscape .lp-hotspot[data-hub="heritage"] { --x: 39.9%; --y: 61.7%; --w: 16.9%; }
.lp-tab-banner--landscape .lp-hotspot[data-hub="event"] { --x: 62%; --y: 62.9%; }
.lp-tab-banner--landscape .lp-hotspot[data-hub="local_cafe"] { --x: 38.1%; --y: 78.8%; --w: 17.7%; }

@media (max-width: 420px) {
    .lp-tab-banner--landscape .lp-hotspot {
        --w: 16.1%;
        --h: 13.5%;
    }

    .lp-tab-banner--landscape .lp-hotspot[data-hub="today_local"] { --x: 29.8%; --y: 17.5%; }
}

.lp-visual-art {
    display: block;
    width: 100%;
    height: auto;
}

.lp-hub-hotspots {
    position: absolute;
    inset: 0;
}

.lp-hotspot {
    position: absolute;
    top: var(--y, 0);
    left: var(--x, 0);
    width: var(--w, 16.1%);
    height: var(--h, 13.8%);
    margin: 0;
    border: 0;
    border-radius: 999px;
    background: transparent;
    cursor: pointer;
    transition: background .15s ease, box-shadow .15s ease;
}

.lp-hotspot[data-hub="today_local"] { --x: 30.2%; --y: 17.8%; }
.lp-hotspot[data-hub="local_story"] { --x: 49.6%; --y: 17.8%; }
.lp-hotspot[data-hub="owner_pick"] { --x: 67.3%; --y: 17.8%; }
.lp-hotspot[data-hub="local_food"] { --x: 24.3%; --y: 40%; }
.lp-hotspot[data-hub="market"] { --x: 41.8%; --y: 40%; }
.lp-hotspot[data-hub="night_local"] { --x: 63.9%; --y: 40%; }
.lp-hotspot[data-hub="alley"] { --x: 20.4%; --y: 59.9%; --w: 16.9%; }
.lp-hotspot[data-hub="heritage"] { --x: 39.9%; --y: 61.7%; --w: 16.9%; }
.lp-hotspot[data-hub="event"] { --x: 62%; --y: 62.9%; }
.lp-hotspot[data-hub="local_cafe"] { --x: 38.1%; --y: 78.8%; --w: 17.7%; }

/* Vertical artboard (mobile nav) */
.lp-visual-artboard--vertical .lp-hotspot {
    --w: 44%;
    --h: 5.4%;
    border-radius: 999px;
}

.lp-visual-artboard--vertical .lp-hotspot[data-hub="today_local"] { --x: 28.2%; --y: 18.02%; --w: 38.19%; --h: 8.16%; }
.lp-visual-artboard--vertical .lp-hotspot[data-hub="local_story"] { --x: 26.4%; --y: 28.08%; --w: 38.19%; --h: 8.16%; }
.lp-visual-artboard--vertical .lp-hotspot[data-hub="owner_pick"] { --x: 28.7%; --y: 38.53%; --w: 38.19%; --h: 8.16%; }
.lp-visual-artboard--vertical .lp-hotspot[data-hub="local_food"] { --x: 7.77%; --y: 48.45%; --w: 38.19%; --h: 8.16%; }
.lp-visual-artboard--vertical .lp-hotspot[data-hub="market"] { --x: 46.8%; --y: 47.04%; --w: 38.19%; --h: 8.16%; }
.lp-visual-artboard--vertical .lp-hotspot[data-hub="night_local"] { --x: 6.24%; --y: 58.08%; --w: 38.19%; --h: 8.16%; }
.lp-visual-artboard--vertical .lp-hotspot[data-hub="alley"] { --x: 52%; --y: 58.08%; --w: 38.19%; --h: 8.16%; }
.lp-visual-artboard--vertical .lp-hotspot[data-hub="heritage"] { --x: 8%; --y: 71.02%; --w: 38.19%; --h: 8.16%; }
.lp-visual-artboard--vertical .lp-hotspot[data-hub="event"] { --x: 49.4%; --y: 70.4%; --w: 38.19%; --h: 8.16%; }
.lp-visual-artboard--vertical .lp-hotspot[data-hub="local_cafe"] { --x: 31.2%; --y: 81.25%; --w: 38.19%; --h: 8.16%; }

@media (max-width: 420px) {
    .lp-hotspot {
        --w: 16.1%;
        --h: 13.5%;
    }

    .lp-hotspot[data-hub="today_local"] { --x: 29.8%; --y: 17.5%; }
}

.lp-hotspot:hover {
    background: rgba(255, 253, 249, .2);
}

.lp-hotspot.is-active,
.lp-hotspot:focus-visible {
    background: rgba(185, 135, 79, .18);
    box-shadow: inset 0 0 0 2px rgba(185, 135, 79, .58);
    outline: none;
}

.lp-visual-hero {
    position: relative;
    overflow: hidden;
    background-color: #ebe3d6;
    background-position: center top;
    background-size: cover;
    background-repeat: no-repeat;
}

.lp-visual-hero::before {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(255, 252, 247, .82) 0%, rgba(255, 252, 247, .42) 28%, rgba(255, 252, 247, .18) 48%, rgba(245, 238, 228, .62) 78%, rgba(245, 240, 232, .94) 100%);
    content: "";
    pointer-events: none;
}

.lp-visual-hero-inner {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 18px;
    min-height: min(980px, 168vw);
    padding: 18px 14px 22px;
}

.lp-visual-copy {
    max-width: 360px;
    padding-top: 4px;
}

.lp-visual-copy .nearby-kicker {
    color: #8a7358;
}

.lp-visual-headline {
    margin: 0;
    color: #2f2419;
    font-family: var(--font-emotion);
    font-size: clamp(28px, 8.2vw, 40px);
    font-weight: 700;
    line-height: 1.34;
    letter-spacing: -.03em;
    word-break: keep-all;
}

.lp-visual-subtitle {
    margin: 10px 0 0;
    color: #5f5348;
    font-size: 13px;
    line-height: 1.65;
    word-break: keep-all;
}

.lp-hub {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px 12px;
    align-content: start;
    margin-top: auto;
    padding-bottom: 8px;
}

.lp-hub-card {
    display: grid;
    grid-template-columns: auto auto 1fr;
    gap: 8px;
    align-items: center;
    width: min(100%, 220px);
    padding: 10px 12px 10px 10px;
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: 999px;
    background: rgba(255, 253, 249, .88);
    box-shadow: 0 8px 24px rgba(74, 52, 34, .08);
    color: #3f342b;
    text-decoration: none;
    backdrop-filter: blur(6px);
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}

.lp-hub-card:nth-child(odd) {
    justify-self: start;
}

.lp-hub-card:nth-child(even) {
    justify-self: end;
}

.lp-hub-card:hover,
.lp-hub-card.is-active {
    transform: translateY(-1px);
    border-color: rgba(185, 135, 79, .45);
    background: rgba(255, 253, 249, .96);
    box-shadow: 0 10px 28px rgba(74, 52, 34, .12);
}

.lp-hub-card.is-active {
    outline: 2px solid rgba(185, 135, 79, .35);
    outline-offset: 1px;
}

.lp-hub-num {
    min-width: 24px;
    color: #9a8368;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .04em;
}

.lp-hub-icon {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border-radius: 50%;
    background: color-mix(in srgb, var(--lp-hub-accent, #b9874f) 16%, #fff);
    font-size: 16px;
    line-height: 1;
}

.lp-hub-card[data-hub="today_local"] { --lp-hub-accent: #6f9b63; }
.lp-hub-card[data-hub="local_story"] { --lp-hub-accent: #5f86b8; }
.lp-hub-card[data-hub="owner_pick"] { --lp-hub-accent: #d08a45; }
.lp-hub-card[data-hub="local_food"] { --lp-hub-accent: #b07a4d; }
.lp-hub-card[data-hub="market"] { --lp-hub-accent: #6f8f63; }
.lp-hub-card[data-hub="alley"] { --lp-hub-accent: #5f8f86; }
.lp-hub-card[data-hub="night_local"] { --lp-hub-accent: #6d67a8; }
.lp-hub-card[data-hub="heritage"] { --lp-hub-accent: #55708f; }
.lp-hub-card[data-hub="event"] { --lp-hub-accent: #c06a72; }
.lp-hub-card[data-hub="local_cafe"] { --lp-hub-accent: #9a7550; }

.lp-hub-body {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.lp-hub-body strong {
    font-size: 12px;
    line-height: 1.3;
    word-break: keep-all;
}

.lp-hub-body small {
    color: #7a6d61;
    font-size: 10px;
    line-height: 1.35;
    word-break: keep-all;
}

.lp-visual-footer {
    display: grid;
    gap: 12px;
}

.lp-visual-emotion {
    margin: 0;
    color: #4b4036;
    font-family: var(--font-emotion);
    font-size: 14px;
    line-height: 1.6;
    word-break: keep-all;
}

.lp-visual-pin {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    width: fit-content;
    max-width: 100%;
    padding: 12px 14px;
    border-radius: 14px;
    background: rgba(255, 253, 249, .9);
    box-shadow: 0 8px 22px rgba(74, 52, 34, .08);
}

.lp-visual-pin-icon {
    font-size: 18px;
    line-height: 1;
}

.lp-visual-pin strong {
    display: block;
    color: #3f342b;
    font-size: 13px;
}

.lp-visual-pin small {
    display: block;
    margin-top: 3px;
    color: #75685c;
    font-size: 11px;
    line-height: 1.45;
    word-break: keep-all;
}

.lp-panel-head {
    display: flex;
    gap: 12px;
    align-items: center;
    padding: 18px 14px 8px;
}

.lp-panel-head h3 {
    margin: 0;
    color: #4b3728;
    font-family: var(--font-emotion);
    font-size: 22px;
    line-height: 1.35;
}

.lp-panel-head p {
    margin: 4px 0 0;
    color: #7a6d61;
    font-size: 13px;
    line-height: 1.5;
}

.lp-panel-source {
    margin: 6px 0 0;
    color: #9a8c80;
    font-size: 12px;
    line-height: 1.55;
}

.lp-panel-source a {
    color: #8a6848;
    text-decoration: none;
}

.lp-panel-source a:hover {
    text-decoration: underline;
}

.lp-panel-icon {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 50%;
    background: rgba(185, 135, 79, .12);
    font-size: 20px;
}

.lp-section-heading h4 {
    margin: 0 0 12px;
    color: #4b3728;
    font-family: var(--font-emotion);
    font-size: 18px;
    line-height: 1.35;
}

.lp-hero h2 {
    font-size: clamp(26px, 7.2vw, 36px);
}

.lp-panel-intro {
    padding: 16px 14px 0;
}

.lp-panel-intro p {
    margin: 0;
    font-size: 14px;
    line-height: 1.5;
    color: #6f6256;
}

.lp-hero-note {
    margin-top: 8px;
    font-size: 13px;
    color: #8a7968;
}

.lp-section-flat {
    padding-top: 14px;
}

.lp-section-flat .lp-section-heading {
    display: none;
}

.lp-subtabs {
    position: sticky;
    top: var(--lp-header-offset);
    z-index: 40;
    display: flex;
    gap: 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    border-bottom: 1px solid rgba(116, 87, 58, .12);
    background: rgba(255, 253, 249, .96);
    backdrop-filter: blur(8px);
}

.lp-subtabs::-webkit-scrollbar {
    display: none;
}

.lp-subtab {
    display: grid;
    min-width: 72px;
    flex: 1 0 auto;
    place-items: center;
    gap: 3px;
    padding: 10px 8px 9px;
    color: #74675b;
    text-decoration: none;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}

.lp-subtab-icon {
    font-size: 16px;
    line-height: 1;
}

.lp-subtab.is-active {
    color: #4b3728;
    box-shadow: inset 0 -2px 0 #b9874f;
    background: color-mix(in srgb, #b9874f 8%, #fffdf9);
}

.lp-panels {
    padding-bottom: 18px;
}

.lp-section {
    padding: 22px 14px 6px;
}

.lp-section-heading h3 {
    margin: 0 0 12px;
    color: #4b3728;
    font-family: var(--font-emotion);
    font-size: 20px;
    line-height: 1.35;
}

.lp-card-list {
    display: grid;
    gap: 14px;
}

.lp-card {
    overflow: hidden;
    border: 1px solid rgba(116, 87, 58, .1);
    border-radius: 16px;
    background: #fffdf9;
}

.lp-card-media {
    position: relative;
    height: auto;
    aspect-ratio: 16 / 10;
    background: #dfd4c7;
}

.lp-card-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.lp-card-placeholder {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
    background: linear-gradient(145deg, #9f8b75, #6f5b48);
    color: rgba(255, 255, 255, .86);
    font-size: 40px;
}

.lp-card-badge {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 2;
    padding: 6px 10px;
    border-radius: 999px;
    color: #5a402d;
    background: rgba(255, 251, 245, .94);
    font-size: 10px;
    font-weight: 700;
}

.lp-card-media-tail {
    position: relative;
    height: auto;
    aspect-ratio: 16 / 10;
    margin-top: 12px;
    border-radius: 12px;
    overflow: hidden;
    background: #dfd4c7;
}

.lp-card-media-tail img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* local_story — horizontal card, square thumb left */
.lp-section-side-image .lp-card-list {
    gap: 10px;
}

.lp-section-side-image .lp-card-side-image .lp-card-side {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0;
}

.lp-section-side-image .lp-card-media-side {
    flex: 0 0 96px;
    width: 96px;
    height: 96px;
    min-width: 96px;
    min-height: 96px;
    max-width: 96px;
    max-height: 96px;
    margin: 0;
    border-radius: 16px 0 0 16px;
    overflow: hidden;
    background: #dfd4c7;
}

.lp-section-side-image .lp-card-media-side img {
    display: block;
    width: 100%;
    height: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    object-position: center;
}

.lp-section-side-image .lp-card-side-image .lp-card-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    padding: 10px 14px 10px 12px;
}

.lp-section-side-image .lp-card-has-image .lp-card-body,
.lp-section-side-image .lp-card-no-image .lp-card-body {
    padding-top: 10px;
}

.lp-section-side-image .lp-card-side-image .lp-card-badge-inline {
    margin-bottom: 4px;
    font-size: 9px;
    padding: 4px 8px;
}

.lp-section-side-image .lp-card-side-image .lp-card-name {
    margin: 0;
    font-size: 16px;
    line-height: 1.3;
}

.lp-section-side-image .lp-card-side-image .lp-card-highlight {
    display: none;
}

.lp-section-side-image .lp-card-side-image .lp-card-subtitle {
    margin: 4px 0 0;
    font-size: 12px;
    line-height: 1.45;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}

.lp-section-side-image .lp-card-side-image .lp-card-actions {
    gap: 6px;
    margin-top: 8px;
}

.lp-section-side-image .lp-card-side-image .lp-action {
    min-height: 30px;
    padding: 0 10px;
    font-size: 11px;
}

.lp-section-side-image .lp-card-side-image .lp-card-source {
    margin: 6px 0 0;
    padding-top: 6px;
    border-top: 1px solid rgba(116, 87, 58, .08);
    font-size: 10px;
    line-height: 1.4;
}

/* local_food — compact row: image ~1/4, keep all copy */
.lp-section-food-compact {
    padding-top: 16px;
    padding-bottom: 0;
}

.lp-section-food-compact + .lp-section-food-compact {
    padding-top: 18px;
}

.lp-section-food-compact .lp-card-list {
    gap: 8px;
}

.lp-section-food-compact .lp-card {
    border-radius: 12px;
}

.lp-section-food-compact .lp-card-side-image .lp-card-side {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    padding: 8px;
}

.lp-section-food-compact .lp-card-media-side {
    display: flex;
    flex: 0 0 148px;
    align-items: center;
    justify-content: center;
    width: 148px;
    height: 84px;
    min-width: 148px;
    min-height: 84px;
    max-width: 148px;
    max-height: 84px;
    margin: 0;
    border-radius: 8px;
    overflow: hidden;
    background: #fffdf9;
}

.lp-section-food-compact .lp-card-media-side img {
    display: block;
    width: auto;
    height: 84px;
    max-width: 133px;
    max-height: 84px;
    object-fit: cover;
    object-position: center;
    border-radius: 8px;
}

.lp-section-food-compact .lp-card-side-image .lp-card-body,
.lp-section-food-compact .lp-card-has-image .lp-card-body,
.lp-section-food-compact .lp-card-no-image .lp-card-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    justify-content: flex-start;
    min-width: 0;
    padding: 0;
}

.lp-section-food-compact .lp-card-badge-inline {
    margin-bottom: 3px;
    padding: 3px 7px;
    font-size: 9px;
}

.lp-section-food-compact .lp-card-name {
    margin: 0;
    font-size: 15px;
    line-height: 1.3;
}

.lp-section-food-compact .lp-card-highlight {
    margin: 2px 0 0;
    font-size: 12px;
}

.lp-section-food-compact .lp-card-subtitle,
.lp-section-food-compact .lp-card-distance,
.lp-section-food-compact .lp-card-meta {
    margin: 2px 0 0;
    font-size: 11px;
    line-height: 1.4;
}

.lp-section-food-compact .lp-card-actions {
    gap: 5px;
    margin-top: 6px;
}

.lp-section-food-compact .lp-action {
    min-height: 28px;
    padding: 0 9px;
    font-size: 11px;
}

.lp-section-food-compact .lp-card-source {
    margin: 3px 0 0;
    padding-top: 0;
    border-top: 0;
    font-size: 10px;
    line-height: 1.3;
}

.lp-section-food-compact .lp-card-rating-tail {
    margin-top: 4px;
}

.lp-card-no-image .lp-card-body {
    padding-top: 16px;
}

.lp-card-has-image .lp-card-body,
.lp-card-no-image .lp-card-body {
    padding-top: 16px;
}

.lp-card-no-image .lp-card-name,
.lp-card-has-image .lp-card-name {
    margin-top: 0;
}

.lp-card-rating-tail {
    margin-top: 10px;
}

.lp-card-badge-inline {
    position: static;
    display: inline-block;
    margin-bottom: 8px;
}

.lp-card-body {
    padding: 16px 16px 15px;
}

.lp-card-rating {
    color: #b9874f;
    font-size: 12px;
    letter-spacing: .04em;
}

.lp-card-name {
    margin: 6px 0 0;
    color: #443126;
    font-family: var(--font-emotion);
    font-size: 20px;
    line-height: 1.35;
    word-break: keep-all;
}

.lp-card-highlight {
    margin: 8px 0 0;
    color: #684b35;
    font-size: 13px;
    font-weight: 700;
}

.lp-card-subtitle {
    margin: 8px 0 0;
    color: #74675b;
    font-size: 13px;
    line-height: 1.7;
    word-break: keep-all;
}

.lp-card-distance,
.lp-card-meta {
    margin: 10px 0 0;
    color: #9a8c80;
    font-size: 11px;
}

.lp-card-source {
    margin: 12px 0 0;
    padding-top: 10px;
    border-top: 1px solid rgba(116, 87, 58, .08);
    color: #9a8c80;
    font-size: 11px;
    line-height: 1.5;
}

.lp-card-source a {
    color: #8a6848;
    text-decoration: none;
}

.lp-card-source a:hover {
    text-decoration: underline;
}

.lp-card-actions,
.nearby-detail-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}

.lp-action {
    display: inline-flex;
    min-height: 34px;
    padding: 0 12px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(116, 87, 58, .18);
    border-radius: 999px;
    color: #584334;
    background: #fff;
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
}

.lp-action-primary {
    color: #fff;
    border-color: #8b6847;
    background: #8b6847;
}

.nearby-detail-tagline {
    margin: 10px 0 0;
    color: #74675b;
    font-size: 14px;
    line-height: 1.7;
}

.nearby-detail-highlight {
    margin: 8px 0 0;
    color: #684b35;
    font-size: 13px;
    font-weight: 700;
}

.nearby-detail-actions {
    margin-top: 18px;
}

@media (min-width: 600px) {
    .lp-card-list {
        grid-template-columns: 1fr;
    }

    .lp-card-media {
        height: 220px;
        aspect-ratio: auto;
    }
}

/* PC: 관광/맛집 — 상단·본문 폭을 카드 1열에 맞춤 */
@media (min-width: 900px) {
    body[data-view="nearby"] .booking-page {
        max-width: 720px;
        width: min(100%, 720px);
    }

    body[data-view="nearby"] .top {
        width: min(100%, 720px);
    }

    body[data-view="nearby"] .booking-cta {
        width: min(100%, 720px);
    }

    body[data-view="nearby"] .nearby-hero {
        padding: 42px 28px 36px;
    }

    body[data-view="nearby"] .nearby-hero > p:not(.nearby-kicker) {
        max-width: 520px;
        font-size: 14px;
    }

    body[data-view="nearby"] .lp-hero h2 {
        max-width: 640px;
        font-size: clamp(28px, 3.2vw, 36px);
    }

    body[data-view="nearby"] .lp-section {
        padding: 24px 20px 10px;
    }

    body[data-view="nearby"] .lp-visual-hero-inner {
        min-height: 960px;
        padding: 24px 22px 28px;
    }

    body[data-view="nearby"] .lp-visual-headline {
        font-size: clamp(32px, 4vw, 42px);
    }

    body[data-view="nearby"] .lp-hub-card {
        width: min(100%, 250px);
        padding: 11px 14px 11px 12px;
    }

    body[data-view="nearby"] .lp-hub-body strong {
        font-size: 13px;
    }

    body[data-view="nearby"] .lp-hub-body small {
        font-size: 11px;
    }

    body[data-view="nearby"] .lp-section-heading h3,
    body[data-view="nearby"] .lp-section-heading h4 {
        font-size: 22px;
    }

    body[data-view="nearby"] .lp-section-today-title .lp-section-heading h4 {
        font-size: 18px;
    }

    body[data-view="nearby"] .lp-card-list {
        grid-template-columns: 1fr;
        gap: 16px;
        max-width: none;
    }

    body[data-view="nearby"] .lp-section-market-pairs .lp-card-list,
    body[data-view="nearby"] .lp-market-pair-list {
        display: flex;
        flex-direction: column;
        gap: 10px;
    }

    body[data-view="nearby"] .lp-card-media {
        height: 240px;
        aspect-ratio: auto;
    }

    body[data-view="nearby"] .lp-section-side-image .lp-card-media-side {
        flex: 0 0 108px;
        width: 108px;
        height: 108px;
        min-width: 108px;
        min-height: 108px;
        max-width: 108px;
        max-height: 108px;
    }

    body[data-view="nearby"] .lp-section-side-image .lp-card-side-image .lp-card-body {
        padding: 10px 14px 10px 12px;
    }

    body[data-view="nearby"] .lp-section-side-image .lp-card-list {
        gap: 10px;
    }

    body[data-view="nearby"] .lp-section-food-compact .lp-card-list {
        gap: 8px;
    }

    body[data-view="nearby"] .lp-section-food-compact .lp-card-media-side {
        flex: 0 0 148px;
        width: 148px;
        height: 84px;
        min-width: 148px;
        min-height: 84px;
        max-width: 148px;
        max-height: 84px;
    }

    body[data-view="nearby"] .lp-section-food-compact .lp-card-media-side img {
        width: auto;
        height: 84px;
        max-width: 133px;
        max-height: 84px;
        object-fit: cover;
        border-radius: 8px;
    }

    body[data-view="nearby"] .lp-subtab {
        min-width: 0;
        padding: 12px 10px 11px;
        font-size: 13px;
    }

    body[data-view="nearby"] .lp-subtab-icon {
        font-size: 18px;
    }

    body[data-view="nearby"] .nearby-detail-body {
        margin-right: 20px;
        margin-left: 20px;
        padding: 28px 22px 22px;
    }

    body[data-view="nearby"] .nearby-detail-visual {
        height: clamp(280px, 42vw, 360px);
    }
}

@media (max-width: 360px) {
    .lp-subtab {
        min-width: 64px;
        padding-right: 6px;
        padding-left: 6px;
        font-size: 10px;
    }
}

.search-section h2,
.section h2 {
    font-family: var(--font-heading);
}

.room-gallery-wrap {
    position: relative;
}

.room-summary {
    display: flex;
    min-height: 48px;
    padding: 10px 14px;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    background: #fffdfa;
}

.room-summary h3 {
    min-width: 0;
    margin: 0;
    color: var(--intro-text);
    font-size: 18px;
    line-height: 1.35;
}

.room-capacity {
    display: flex;
    flex: 0 0 auto;
    gap: 5px;
    color: var(--intro-muted);
    font-size: 11px;
    white-space: nowrap;
}

.room-capacity span {
    padding: 4px 6px;
    border-radius: 999px;
    background: var(--intro-soft);
}

.room-gallery-dots {
    position: absolute;
    right: 0;
    bottom: 12px;
    left: 0;
    z-index: 2;
    display: flex;
    justify-content: center;
    gap: 6px;
    pointer-events: none;
}

.room-gallery-dots button {
    width: 7px;
    height: 7px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .62);
    box-shadow: 0 1px 4px rgba(0, 0, 0, .35);
    pointer-events: auto;
}

.room-gallery-dots button.active {
    width: 20px;
    border-radius: 5px;
    background: #fff;
}

.search-form button,
.reserve-room,
.booking-cta a {
    background: var(--intro-primary);
}

.booking-calendar {
    grid-column: 1 / -1;
    padding: 10px;
    border: 1px solid #d7dce4;
    border-radius: 13px;
    background: #fff;
}

.booking-calendar button {
    grid-column: auto;
}

.booking-people-field {
    grid-column: 1 / -1;
}

.booking-calendar-head {
    display: grid;
    grid-template-columns: 34px 1fr 34px;
    align-items: center;
    margin-bottom: 6px;
}

.booking-calendar-head strong {
    color: var(--intro-text);
    font-size: 16px;
    text-align: center;
}

.booking-calendar-head button {
    display: grid;
    width: 32px;
    height: 30px;
    padding: 0;
    place-items: center;
    border: 0;
    border-radius: 8px;
    color: var(--intro-text);
    background: var(--intro-soft);
    font-size: 22px;
}

.booking-calendar-week,
.booking-calendar-days {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
}

.booking-calendar-week span {
    padding: 3px 0 5px;
    color: #85796e;
    font-size: 11px;
    text-align: center;
}

.booking-calendar-week span:first-child {
    color: #c45f5f;
}

.booking-calendar-week span:last-child {
    color: #5278ad;
}

.booking-calendar-days {
    row-gap: 2px;
}

.booking-calendar-days > span,
.booking-calendar-days button {
    min-height: 44px;
    height: auto;
}

.booking-calendar-days button {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 2px 1px;
    border: 0;
    border-radius: 9px;
    color: #493e35;
    background: transparent;
    font-size: 13px;
    font-weight: 600;
}

.booking-calendar-days button.is-sunday {
    color: #c45f5f;
}

.booking-calendar-days button.is-saturday {
    color: #5278ad;
}

.booking-calendar-days button.is-holiday {
    color: #c45f5f;
}

.booking-calendar-days button.is-outside {
    color: #b9b2aa;
    font-weight: 500;
}

.booking-calendar-days button.is-outside.is-sunday {
    color: #c45f5f;
}

.booking-calendar-days button.is-outside.is-saturday {
    color: #5278ad;
}

.booking-calendar-days button.is-outside.is-holiday {
    color: #c45f5f;
}

.booking-calendar-day-num,
.booking-calendar-holiday-name {
    pointer-events: none;
}

.booking-calendar-holiday-name {
    display: block;
    max-width: 100%;
    margin-top: 1px;
    color: #c45f5f;
    font-size: 8px;
    font-weight: 600;
    line-height: 1.15;
    letter-spacing: -0.04em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.booking-calendar-days button:disabled {
    color: #d0cbc5;
}

.booking-calendar-days button.is-outside:disabled {
    color: #d8d4cf;
}

.booking-calendar-days button:disabled.is-holiday,
.booking-calendar-days button:disabled .booking-calendar-holiday-name {
    color: #d9b3b3;
}

.booking-calendar-days button.today {
    box-shadow: inset 0 0 0 1px #b9874f;
}

.booking-calendar-days button.stay-range {
    border-radius: 0;
    background: #dceee1;
}

.booking-calendar-days button.checkin,
.booking-calendar-days button.checkout,
.booking-calendar-days button.is-outside.checkin,
.booking-calendar-days button.is-outside.checkout,
.booking-calendar-days button.is-outside.is-holiday.checkin,
.booking-calendar-days button.is-outside.is-holiday.checkout {
    color: #fff;
    background: #3f7d4f;
    font-weight: 600;
}

.booking-calendar-days button.checkin .booking-calendar-holiday-name,
.booking-calendar-days button.checkout .booking-calendar-holiday-name {
    color: rgba(255, 255, 255, 0.92);
}

.booking-calendar-selection {
    display: grid;
    grid-template-columns: 1fr 18px 1fr;
    align-items: center;
    gap: 3px;
    margin-top: 8px;
    padding: 8px;
    border-radius: 9px;
    background: #f7f3ed;
    color: #7b7066;
    font-size: 10px;
    text-align: center;
}

.booking-calendar-selection strong {
    display: block;
    margin-top: 2px;
    color: var(--intro-text);
    font-size: 12px;
    white-space: nowrap;
}

.booking-calendar-selection i {
    font-style: normal;
}

.booking-mode .search-section {
    padding: 16px 14px 34px;
    border-top: 0;
}

.booking-mode .search-section-head {
    margin-bottom: 12px;
}

.booking-mode .search-section h2 {
    margin-bottom: 0;
    font-size: 20px;
}

.booking-mode .search-form {
    gap: 9px;
}

.booking-mode .booking-calendar {
    padding: 10px;
}

.booking-mode .booking-calendar-head {
    margin-bottom: 5px;
}

.booking-mode .booking-calendar-head button {
    height: 30px;
}

.booking-mode .booking-calendar-week span {
    padding: 3px 0 5px;
}

.booking-mode .booking-calendar-days {
    row-gap: 0;
}

.booking-mode .booking-calendar-days > span,
.booking-mode .booking-calendar-days button {
    min-height: 44px;
    height: auto;
}

@media (max-width: 720px) {
    .booking-calendar-days {
        row-gap: 0;
    }

    .booking-calendar-week span,
    .booking-mode .booking-calendar-week span {
        padding: 2px 0 3px;
    }

    .booking-calendar-days > span,
    .booking-calendar-days button,
    .booking-mode .booking-calendar-days > span,
    .booking-mode .booking-calendar-days button {
        min-height: 35px;
    }

    .booking-calendar-days button {
        padding: 1px 1px;
    }
}

.booking-mode .booking-calendar-selection {
    margin-top: 7px;
    padding: 8px;
}

.booking-mode .booking-people-field {
    margin-top: 3px;
    font-size: 13px;
}

.booking-mode .booking-people-field input {
    height: 42px;
    margin-top: 5px;
}

/* Local Phase 1 customer page */
.local-main-page .local-empty-message {
    padding: 48px 20px 32px;
    text-align: center;
    color: #6f5d4d;
    font-size: 14px;
    line-height: 1.8;
}

.local-feature-card {
    margin: 0 14px 8px;
    padding: 22px 18px;
    border: 1px solid rgba(116, 87, 58, .1);
    border-radius: 17px;
    background: #fffdf9;
}

.local-feature-card h4 {
    margin: 0;
    color: #4b3728;
    font-family: var(--font-emotion);
    font-size: 22px;
    line-height: 1.4;
}

.local-feature-desc,
.local-meta,
.local-highlight,
.local-story-subtitle,
.local-story-excerpt {
    margin: 8px 0 0;
    color: #6f5d4d;
    font-size: 13px;
    line-height: 1.75;
    word-break: keep-all;
}

.local-highlight {
    color: #8b6847;
    font-weight: 600;
}

.local-feature-media,
.local-story-media {
    margin-top: 14px;
    overflow: hidden;
    border-radius: 12px;
}

.local-feature-media img,
.local-story-media img {
    display: block;
    width: 100%;
    height: auto;
}

.local-card-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 8px;
}

.local-badge {
    display: inline-block;
    padding: 4px 8px;
    border-radius: 999px;
    background: #efe6d8;
    color: #6f5438;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .04em;
}

.local-badge-affiliate {
    background: #8b6847;
    color: #fff;
}

.local-card-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 12px;
}

.local-link,
.local-story-more {
    color: #8b6847;
    font-size: 12px;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.local-story-card {
    margin: 0 14px;
    padding: 22px 18px;
    border: 1px solid rgba(116, 87, 58, .1);
    border-radius: 17px;
    background: #fffdf9;
}

.local-story-card h4 {
    margin: 6px 0 0;
    color: #4b3728;
    font-family: var(--font-emotion);
    font-size: 21px;
    line-height: 1.45;
}

.local-story-type {
    margin: 0;
    color: #9a754e;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .14em;
}

.local-weather-frame {
    margin: 0 14px;
    overflow: hidden;
    border: 1px solid rgba(116, 87, 58, .1);
    border-radius: 14px;
    background: #fffdf9;
}

.local-weather-frame iframe {
    display: block;
    width: 100%;
    height: var(--local-weather-mobile, 240px);
    border: 0;
}

.local-story-detail-body {
    padding: 20px 16px 40px;
}

.local-story-content {
    margin-top: 16px;
    color: #4b3728;
    font-size: 14px;
    line-height: 1.85;
    word-break: keep-all;
}

@media (min-width: 768px) {
    .local-main-page .nearby-group,
    .local-feature-card,
    .local-story-card,
    .local-weather-frame {
        max-width: 720px;
        margin-left: auto;
        margin-right: auto;
    }

    .local-weather-frame iframe {
        height: var(--local-weather-pc, 280px);
    }
}

.booking-mode .search-form > button[type="submit"] {
    height: 46px;
    background: var(--cp6-cta-bg, #5a3e2b);
    color: var(--cp6-cta-text, #fefcf7);
}

.booking-mode .reserve-room,
body[data-theme="hanok"] .reserve-room {
    background: var(--cp6-cta-bg, #5a3e2b);
    color: var(--cp6-cta-text, #fefcf7);
}

.booking-input-section {
    padding: 8px 16px 40px;
}

.booking-input-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.booking-input-head h2 {
    margin: 0;
}

.booking-input-head a {
    color: #756b62;
    font-size: 13px;
    font-weight: 600;
}

.booking-input-card {
    padding: 16px;
    margin-bottom: 18px;
    border: 1px solid rgba(98, 75, 52, .12);
    border-radius: 12px;
    background: #fffdfa;
}

.booking-input-card-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 12px;
}

.booking-input-card-title strong {
    font-size: 20px;
}

.booking-input-card-title span {
    padding: 4px 8px;
    border-radius: 999px;
    background: #f3eee7;
    color: #5a3e2b;
    font-size: 11px;
    font-weight: 700;
}

.booking-input-card dl {
    margin: 0;
}

.booking-input-card dl > div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 6px 0;
    border-top: 1px dashed #eee5da;
    font-size: 14px;
}

.booking-input-card dt {
    color: #76695d;
}

.booking-input-card dd {
    margin: 0;
    font-weight: 700;
}

.booking-input-form label {
    display: block;
    margin: 0 0 12px;
    font-size: 14px;
    font-weight: 700;
}

.booking-input-form label span {
    margin-left: 3px;
    color: #dc2626;
}

.booking-input-form input,
.booking-input-form select,
.booking-input-form textarea {
    display: block;
    width: 100%;
    box-sizing: border-box;
    margin-top: 6px;
    padding: 12px;
    border: 1px solid #ddd;
    border-radius: 10px;
    font-size: 15px;
}

.booking-input-form textarea {
    min-height: 90px;
    resize: vertical;
}

.booking-input-notice {
    margin: 4px 0 16px;
    color: #777;
    font-size: 13px;
    line-height: 1.55;
}

.booking-input-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.booking-input-actions button,
.booking-input-actions a {
    display: block;
    height: 46px;
    border: 0;
    border-radius: 10px;
    font-size: 15px;
    font-weight: 700;
    line-height: 46px;
    text-align: center;
    text-decoration: none;
}

.booking-input-actions button {
    background: var(--cp6-cta-bg, #5a3e2b);
    color: #fff;
}

.booking-input-actions a {
    background: #f3eee7;
    color: #333;
}

.booking-complete-section {
    padding: 8px 16px 40px;
}

.booking-complete-head h2 {
    margin: 0 0 8px;
    color: var(--cp6-text-primary, #3a2e24);
    font-size: 20px;
    font-weight: 700;
}

.booking-complete-head p {
    margin: 0 0 16px;
    color: #756b62;
    font-size: 14px;
    line-height: 1.6;
}

.booking-complete-card dd.booking-complete-price {
    color: var(--cp6-price, #8b3a5a);
    font-size: 18px;
}

.booking-complete-bank {
    margin-bottom: 18px;
    padding: 16px;
    border: 1px solid rgba(98, 75, 52, .12);
    border-radius: 12px;
    background: #fffdfa;
}

.booking-complete-bank h3 {
    margin: 0 0 12px;
    color: var(--cp6-cta-bg, #5a3e2b);
    font-size: 16px;
}

.booking-complete-bank dl {
    margin: 0;
}

.booking-complete-bank dl > div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 6px 0;
    border-top: 1px dashed #eee5da;
    font-size: 14px;
}

.booking-complete-bank dt {
    color: #76695d;
}

.booking-complete-bank dd {
    margin: 0;
    font-weight: 700;
}

.booking-complete-bank p {
    margin: 10px 0 0;
    color: #756b62;
    font-size: 13px;
    line-height: 1.55;
}

.booking-complete-actions {
    margin-top: 8px;
}

.booking-complete-actions a.booking-complete-primary {
    background: var(--cp6-cta-bg, #5a3e2b);
    color: var(--cp6-cta-text, #fefcf7);
}

.booking-complete-section .sh-customer {
    border-color: rgba(98, 75, 52, .12);
    background: #fffdfa;
}

.booking-complete-section .sh-customer-title {
    color: var(--cp6-cta-bg, #5a3e2b);
}

.booking-complete-section .sh-customer-tab {
    border-color: #e6e1d3;
    color: #5a3e2b;
}

.booking-complete-section .sh-customer-tab.is-active {
    background: var(--cp6-cta-bg, #5a3e2b);
    border-color: var(--cp6-cta-bg, #5a3e2b);
    color: #fff;
}

.booking-complete-section .sh-customer .lp-card-media,
.booking-complete-section .sh-customer .lp-card-media-tail {
    height: auto;
    aspect-ratio: 16 / 6;
}

.booking-complete-section .sh-customer .lp-card-media img,
.booking-complete-section .sh-customer .lp-card-media-tail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.booking-detail-flash {
    margin-bottom: 14px;
    padding: 12px 14px;
    border: 1px solid #e6e1d3;
    border-radius: 10px;
    background: #f3eee7;
    color: #5a3e2b;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
}

.booking-detail-cancel-label {
    display: block;
    margin: 10px 0 12px;
    font-size: 14px;
    font-weight: 700;
}

.booking-detail-cancel-label textarea {
    display: block;
    width: 100%;
    box-sizing: border-box;
    min-height: 110px;
    margin-top: 6px;
    padding: 12px;
    border: 1px solid #ddd;
    border-radius: 10px;
    font-size: 15px;
    resize: vertical;
}

.booking-detail-cancel-btn {
    display: block;
    width: 100%;
    height: 46px;
    border: 0;
    border-radius: 10px;
    background: var(--cp6-price, #8b3a5a);
    color: #fff;
    font-size: 15px;
    font-weight: 700;
}

.booking-detail-reason {
    padding: 12px;
    border: 1px dashed #eee5da;
    border-radius: 10px;
    background: #fff;
    color: #3a2e24;
    white-space: pre-wrap;
}

@media (max-width: 390px) {
    .hero-copy {
        top: 54%;
        right: 22px;
        left: 26px;
    }

    .hero-copy-subtitle {
        line-height: 1.55;
    }

    .emotional-intro {
        padding: 16px 12px 18px;
    }

    .intro-contact {
        gap: 6px;
    }
}

@media (max-width: 360px) {
    .tabs a {
        padding-right: 1px;
        padding-left: 1px;
        font-size: 11px;
    }

    .intro-hero .slider {
        height: 200px;
    }
}
