/**
 * Liinco Booking System - Frontend Styles
 */

/* ===== Variables ===== */
:root {
    --liinco-primary: #203579;
    --liinco-secondary: #6C757D;
    --liinco-success: #28A745;
    --liinco-danger: #DC3545;
    --liinco-warning: #FFC107;
    --liinco-light: #F8F9FA;
    --liinco-dark: #212529;
    --liinco-border: #DEE2E6;
    --liinco-spacing: 1rem;
}

/* ===== General ===== */
.liinco-container {
    max-width: 1300px;
    margin: 0 auto;
    padding: 0 var(--liinco-spacing);
}

.liinco-button {
    display: inline-block;
    padding: 0.75rem 1.5rem;
    background: var(--liinco-primary);
    color: #fff;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 1rem;
    transition: all 0.3s ease;
}

.liinco-button:hover {
    background: #3949AB;
    transform: translateY(-2px);
}

.liinco-button-danger {
    background: var(--liinco-danger);
}

.liinco-button-danger:hover {
    background: #C82333;
}

/* ===== Stay Search ===== */
.liinco-stay-search {
    background: #fff;
    padding: 2rem;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.search-hero {
    text-align: center;
    padding: 4rem 0;
    background: linear-gradient(135deg, #667EEA 0%, #764BA2 100%);
    color: #fff;
    margin-bottom: 2rem;
    border-radius: 8px;
}

.search-hero h1 {
    font-size: 2.5rem;
    margin-bottom: 1rem;
}

.search-form {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    align-items: flex-end;
}

.search-form .form-group {
    flex: 1;
    min-width: 200px;
}

.search-form label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: 500;
}

.search-form input,
.search-form select {
    width: 100%;
    padding: 0.75rem;
    border: 1px solid var(--liinco-border);
    border-radius: 4px;
    font-size: 1rem;
}

.search-form button {
    padding: 0.75rem 2rem;
}

/* ===== Stay List ===== */
.liinco-stay-list {
    padding: 2rem 0;
}

.stays-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 2rem;
}

.stay-card {
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.stay-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
}

.stay-card-image {
    position: relative;
    width: 100%;
    height: 240px;
    overflow: hidden;
}

.stay-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.promotion-badge {
    position: absolute;
    top: 1rem;
    left: 1rem;
    background: var(--liinco-danger);
    color: #fff;
    padding: 0.5rem 1rem;
    border-radius: 4px;
    font-size: 0.875rem;
    font-weight: 600;
}

.stay-card-content {
    padding: 1.5rem;
}

.stay-card-title {
    font-size: 1.25rem;
    margin-bottom: 0.5rem;
}

.stay-card-description {
    color: var(--liinco-secondary);
    margin-bottom: 1rem;
    line-height: 1.6;
}

.stay-card-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.stay-tag {
    padding: 0.25rem 0.75rem;
    background: var(--liinco-light);
    border-radius: 4px;
    font-size: 0.875rem;
}

.stay-card-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 1rem;
    border-top: 1px solid var(--liinco-border);
}

.stay-price {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--liinco-primary);
}

.stay-price-unit {
    font-size: 0.875rem;
    font-weight: 400;
    color: var(--liinco-secondary);
}

/* ===== Guest Selector ===== */
.guest-selector-wrapper {
    position: relative;
}

.guest-selector-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.75rem;
    border: 1px solid var(--liinco-border);
    border-radius: 4px;
    cursor: pointer;
    background: #fff;
}

.guest-selector-popup {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #fff;
    border: 1px solid var(--liinco-border);
    border-radius: 4px;
    padding: 1rem;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    display: none;
    z-index: 100;
}

.guest-selector-popup.active {
    display: block;
}

.guest-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 0;
    border-bottom: 1px solid var(--liinco-border);
}

.guest-row:last-child {
    border-bottom: none;
}

.guest-controls {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.guest-controls button {
    width: 32px;
    height: 32px;
    border: 1px solid var(--liinco-border);
    background: #fff;
    border-radius: 50%;
    cursor: pointer;
}

.guest-controls input {
    width: 40px;
    text-align: center;
    border: none;
    font-size: 1rem;
}

/* ===== My Page ===== */
.liinco-my-page {
    padding: 2rem 0;
    display: flex;
    flex-direction: row;
    gap: 10%;
    border-top: 1px solid #000;
    margin-top: 50px;
}

.title_mypage h2 {
    font-size: 24px !important;
    text-align: center;
}

.title_mypage {
    margin-top: 100px;
}

.liinco-my-page-tabs {
    width: 20%;
    margin-bottom: 2rem;
}

.booking-details p {
    font-size: 0.9rem !important;
    margin: 0px !important;
}

.liinco-my-page-content {
    width: 70%;
}

.liinco-bookings-tab .sub-tabs {
    padding-top: 20px;
    margin-bottom: 50px;
    display: flex;
    gap: 20px;
    border-bottom: 1px solid #ececec;
}

.liinco-bookings-tab .sub-tabs a {
    color: #000 !important;
    text-decoration: none !important;
}

.liinco-bookings-tab .sub-tabs a.active {
    font-weight: 700px !important;
    border-bottom: 2px solid #000
}

.liinco-bookings-tab .sub-tabs a:hover {
    font-weight: 700px !important;
    border-bottom: 2px solid #000
}



.nav-tabs {
    display: flex;
    gap: 1rem;
    border-bottom: 2px solid var(--liinco-border);
    list-style: none;
    padding: 0;
    margin: 0;
    flex-direction: column;
}

.nav-tabs li {
    margin-bottom: -2px;
}

.nav-tabs a {
    display: block;
    padding: 1rem 1.5rem;
    text-decoration: none;
    color: var(--liinco-secondary);
    border-bottom: 2px solid transparent;
    transition: all 0.3s ease;
}

.nav-tabs li.active a,
.nav-tabs a:hover {
    color: var(--liinco-primary);
    border-bottom-color: var(--liinco-primary);
}

/* ===== Booking Card ===== */
.liinco-booking-card {
    background: #fff;
    border-radius: 8px;
    padding: 1.5rem;
    margin-bottom: 1.5rem;
    border: 1px solid var(--liinco-border);
}

.liinco-booking-card.status-confirmed {}

.liinco-booking-card.status-cancelled {

    opacity: 0.7;
}

.liinco-booking-card.status-pending {
    background: #F9F9F9
}

.booking-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
}

.status-badge {
    padding: 0.25rem 0.75rem;
    border-radius: 4px;
    font-size: 0.875rem;
    font-weight: 600;
    text-transform: uppercase;
}

.status-badge.confirmed {
    background: #D4EDDA;
    color: #155724;
}

.status-badge.cancelled {
    background: #F8D7DA;
    color: #721C24;
}

.status-badge.pending {
    background: #FFF3CD;
    color: #856404;
}

.booking-details p {
    margin: 0.5rem 0;
}

.booking-amount {
    font-size: 1.5rem;
    font-weight: 700;
    margin: 1rem 0;
}

.booking-actions {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-top: 1rem;
}

.booking-actions button {
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
}

/* ===== Credits ===== */
.liinco-credits-tab {
    max-width: 800px;
}

.credits-balance {
    background: #F9F9F9;
    color: #000;
    padding: 1rem;
    border-radius: 8px;
    text-align: center;
    margin-bottom: 2rem;
}

.balance-amount {
    font-size: 1.5rem;
    font-weight: 700;
    margin: 0;
}

.referral-section {
    background: var(--liinco-light);
    padding: 1.5rem;
    border-radius: 8px;
    margin-bottom: 2rem;
}

.referral-link-box {
    display: flex;
    gap: 0.5rem;
    margin-top: 1rem;
}

.referral-link-input {
    flex: 1;
    padding: 0.75rem;
    border: 1px solid var(--liinco-border);
    border-radius: 4px;
}

.credits-history-table {
    width: 100%;
    border-collapse: collapse;
}

.credits-history-table th,
.credits-history-table td {
    padding: 1rem;
    text-align: left;
    border-bottom: 1px solid var(--liinco-border);
}

.credits-history-table th {
    background: var(--liinco-light);
    font-weight: 600;
}

.amount.positive {
    color: var(--liinco-success);
    font-weight: 600;
}

.amount.negative {
    color: var(--liinco-danger);
    font-weight: 600;
}

/* ===== Modal ===== */
.modal {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1000;
    display: none;
    align-items: center;
    justify-content: center;
}

.modal.active {
    display: flex;
}

.modal-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
}

.modal-content {
    position: relative;
    background: #fff;
    padding: 2rem;
    border-radius: 8px;
    max-width: 500px;
    width: 90%;
    max-height: 90vh;
    overflow-y: auto;
}

.modal-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    background: none;
    border: none;
    font-size: 1.5rem;
    cursor: pointer;
}

/* ===== Responsive ===== */
@media (max-width: 768px) {
    .search-form {
        flex-direction: column;
    }

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

    .nav-tabs {
        flex-wrap: wrap;
    }

    .booking-actions {
        flex-direction: column;
    }

    .booking-actions button {
        width: 100%;
    }
}


/* Stay Single Page Styles */
.liinco-stay-single {
    max-width: 1200px;
    margin: 0 auto;
    padding: 2rem 1rem;
}

/* Swiper Slider 기본 스타일 추가 */
.stay-gallery.swiper-container {
    width: 100%;
    height: 500px;
    /* 슬라이더 높이 예시, 원하는 대로 조절 */
    margin-bottom: 2rem;
}

.swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.stay-gallery .main-image img {
    width: 100%;
    height: auto;
    border-radius: 8px;
}

.stay-content-wrapper {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 3rem;
    max-width: 1400px;
    margin: 0 auto;
    padding: 2rem 1.5rem;
}

@media (max-width: 968px) {
    .stay-content-wrapper {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
}

.stay-main-content section {
    margin-bottom: 2rem;
}

.stay-header {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    border-bottom: 1px solid #eee;
    padding-bottom: 1rem;
    margin-bottom: 1.5rem;
}

.stay-header-actions {
    display: flex;
    gap: 0.5rem;
    position: absolute;
    right: 0px;
}

.liinco-action-btn {
    background: transparent !important;
    padding: 5px !important;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 1.2rem;
}

.liinco-action-btn.like-btn.liked .icon {
    color: red;
}


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

.booking-widget {
    position: sticky;
    top: 2rem;
    background: #fff;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    padding: 1.5rem;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.policy-section {
    margin-bottom: 1.5rem;
}

.policy-section h3 {
    font-size: 1.125rem;
    margin-bottom: 0.5rem;
}

.policy-section ul {
    list-style: disc;
    padding-left: 1.5rem;
}

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

    .booking-widget {
        position: static;
        margin-top: 2rem;
    }
}



/* Public CSS */

/* --- Stay Single Page V2 Styles (스테이폴리오 스타일) --- */
.liinco-stay-single-v2 {
    max-width: 1900px;
    /* 더 넓게 */
    margin: 0 auto;
    padding: 0;
    /* 상단 패딩 제거 */
}

.stay-header-gallery-wrapper {
    position: relative;
    width: 100%;
    height: 600px;
    /* 스테이폴리오처럼 큰 이미지 */
    overflow: hidden;
    margin-bottom: 2rem;
}

.main-gallery.swiper-container,
.main-gallery.single-image {
    width: 100%;
    height: 100%;
}

.main-gallery.swiper-container .swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Swiper Pagination (페이지네이션) */
.main-gallery .swiper-pagination {
    bottom: 20px;
}

.main-gallery .swiper-pagination-bullet {
    background: rgba(255, 255, 255, 0.7);
    opacity: 1;
}

.main-gallery .swiper-pagination-bullet-active {
    background: #203579;
    /* 활성 페이지네이션 색상 */
}

/* Swiper Navigation (좌우 버튼) */
.main-gallery .swiper-button-next,
.main-gallery .swiper-button-prev {
    color: rgba(255, 255, 255, 0.8);
    font-size: 1.5rem;
    width: 44px;
    height: 44px;
    background: rgba(0, 0, 0, 0.3);
    border-radius: 50%;
}

.main-gallery .swiper-button-next::after,
.main-gallery .swiper-button-prev::after {
    font-size: 1.2rem;
}


.stay-content-wrapper {
    display: grid;
    /* ✨ 이 줄이 2fr 1fr 또는 비슷한 비율로 설정되어 있는지 확인 */
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
    gap: 4rem;
    padding: 0 2rem 3rem 2rem;
    max-width: 1400px;
    margin: 0 auto;
}

.stay-main-content {
    max-width: 1000px;
    /* 콘텐츠 영역 최대 너비 */
    margin-left: auto;
    /* 중앙 정렬 */
    margin-right: 0;
    width: 100%;
}

.stay-header {
    border-bottom: none;
    padding-bottom: 0;
    margin-bottom: 2rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.stay-title {
    font-size: 2rem !important;
    font-weight: 700;
    margin: 0;
}

.stay-header-actions {
    display: flex;
    gap: 1rem;
}

.liinco-action-btn {
    background: #f0f0f0;
    border: none;
    border-radius: 50%;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 1.5rem;

}

.liinco-action-btn:hover {}

.liinco-action-btn.like-btn.liked .icon {
    color: red;
}

.stay-main-content section {
    margin-bottom: 3rem;
    /* 섹션별 간격 넓게 */
    line-height: 1.8;
    font-size: 1.1rem;
    color: #333;
}

.stay-main-content h2 {
    font-size: 1.4rem;
    font-weight: 600;
    margin-bottom: 1.5rem;

    padding-bottom: 0.5rem;
}

.stay-policies-accordion h2 {
    font-size: 1.4rem !important;
    font-weight: 600;
    margin-bottom: 1.5rem;

    padding-bottom: 0.5rem;
}

.amenities-grid {
    grid-template-columns: repeat(2, 1fr);
    /* 2열로 변경 */
    gap: 1.5rem;
}

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

/* --- Booking Sidebar Styles --- */
.stay-booking-sidebar {
    position: sticky;
    top: 4rem;
    /* 상단 여백 조정 */
    height: fit-content;
    /* 내용에 맞춰 높이 조절 */
    background: #fff;
    border: 1px solid #dee2e6;
    border-radius: 12px;
    /* 모서리 더 둥글게 */
    padding: 1.3rem;
    /* 내부 패딩 증가 */

}

.booking-sidebar-title {
    font-size: 1.8rem;
    font-weight: 700;
    margin-bottom: 1rem;
    color: #333;
}

.sidebar-price-info {
    font-size: 1.2rem;
    margin-bottom: 1.5rem;
}

.sidebar-price-info strong {
    font-size: 2rem;
    color: #203579;
}

.booking-input-group {
    border: 1px solid #dee2e6;
    border-radius: 8px;
    margin-bottom: 1.5rem;
    overflow: hidden;
    /* 내부 input의 border-radius를 위해 */
}

.booking-input-group label {
    display: block;
    font-size: 0.85rem;
    color: #6c757d;
    padding: 0.5rem 1rem 0 1rem;
}

.booking-input-group .input-display {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.75rem 1rem;
    cursor: pointer;
    font-size: 1rem;
    font-weight: 500;
    color: #333;
}

.booking-input-group .input-display .value {
    flex-grow: 1;
}

.booking-input-group .input-display .icon {
    font-size: 0.8rem;
    color: #6c757d;
}

.booking-input-group .date-inputs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    border-top: 1px solid #dee2e6;
}

.booking-input-group .date-inputs>div {
    padding: 0.75rem 1rem;
    cursor: pointer;
}

.booking-input-group .date-inputs>div:first-child {
    border-right: 1px solid #dee2e6;
}

.booking-input-group .date-inputs span.placeholder {
    color: #999;
}

.booking-button {
    background: #203579;
    color: #fff;
    padding: 1.2rem;
    border-radius: 8px;
    font-size: 1.2rem;
    font-weight: 600;
    width: 100%;
    border: none;
    cursor: pointer;
    transition: background 0.3s ease;
    opacity: 1 !important;
}

.booking-button:hover {
    background: #3a4bbd;
}

/* --- Modals (팝업) Styles --- */
.liinco-modal {
    display: none !important;
    /* 기본 숨김 */
    position: fixed;
    z-index: 1000;
    /* 다른 요소 위에 오도록 충분히 높은 값 */
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0, 0, 0, 0.6);
    /* ✨ 아래 두 줄 추가/확인 */
    justify-content: center;
    align-items: center;
}

.liinco-modal.active {
    display: flex !important;
    /* ✨ !important 추가하여 강제 적용 */
}

.liinco-modal-content {
    background-color: #fefefe;
    margin: auto;
    padding: 2rem;
    border-radius: 12px;
    position: relative;
    width: 90%;
    max-width: 600px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
}

.liinco-modal-content h2 {
    margin-top: 0px !important;
    font-size: 1.8rem;
    border-bottom: 1px solid #eee;
    padding-bottom: 1rem;
    margin-bottom: 1.5rem !important;
}

.liinco-modal .close-button {
    color: #aaa;
    position: absolute;
    top: 15px;
    right: 25px;
    font-size: 28px;
    font-weight: bold;
    cursor: pointer;
}

.liinco-modal .close-button:hover,
.liinco-modal .close-button:focus {
    color: #333;
    text-decoration: none;
    cursor: pointer;
}

#datepicker-calendar .ui-datepicker {
    width: 100%;
    /* 달력 너비 조정 */
}

#datepicker-calendar .ui-datepicker-header {
    background: #203579;
    /* 달력 헤더 배경색 */
    color: #fff;
    padding: 0.8em 0;
}

#datepicker-calendar .ui-datepicker-next,
#datepicker-calendar .ui-datepicker-prev {
    top: 0.8em;
}

#datepicker-calendar .ui-datepicker td span,
#datepicker-calendar .ui-datepicker td a {
    padding: 0.5em;
    /* 달력 날짜 패딩 */
}

.guest-counter-modal {
    margin-bottom: 1.5rem;
}

.guest-type-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 0;
    border-bottom: 1px solid #f0f0f0;
}

.guest-type-row:last-child {
    border-bottom: none;
}

.counter-control {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.counter-control button {
    width: 38px;
    height: 38px;
    border: 0px;
    background: #fff;
    border-radius: 0px;
    cursor: pointer;
    font-size: 1.5rem;
    color: #000 !important;
    line-height: 0em !important;
}

.counter-control input {
    width: 60px;
    text-align: center;
    border: none;
    font-size: 1.1rem;
    font-weight: 500;
}

.modal-actions {
    display: flex;
    justify-content: flex-end;
    gap: 1rem;
    border-top: 1px solid #eee;
    padding-top: 1.5rem;
    margin-top: 1.5rem;
}

.liinco-button {
    padding: 0.8rem 1.5rem;
    border-radius: 8px;
    font-size: 1rem;
    cursor: pointer;
    text-decoration: none;
    text-align: center;
    transition: background 0.3s ease;
}

.liinco-button-primary,
.liinco-button {
    background-color: #203579;
    color: #fff;
    border: 1px solid #203579;
}

.liinco-button-primary:hover,
.liinco-button:hover {
    background-color: #3a4bbd;
    border-color: #3a4bbd;
}

.liinco-button-secondary {
    background-color: #fff;
    color: #203579;
    border: 1px solid #203579;
}

.liinco-button-secondary:hover {
    background-color: #f0f0f0;
}


/* 모바일 반응형 */
@media (max-width: 992px) {
    .stay-content-wrapper {
        grid-template-columns: 1fr;
        /* 화면 작을 때 1단으로 변경 */
        gap: 2rem;
    }

    .stay-main-content {
        max-width: 100%;
        margin: 0;
    }

    .stay-header-gallery-wrapper {
        height: 400px;
    }

    .stay-booking-sidebar {
        position: static;
        margin-top: 2rem;
    }

    .stay-title {
        font-size: 2rem;
    }

    .stay-main-content h2 {
        font-size: 1.5rem;
    }
}

@media (max-width: 576px) {
    .stay-header-gallery-wrapper {
        height: 300px;
    }

    .stay-title {
        font-size: 1.8rem;
    }

    .liinco-action-btn {
        width: 40px;
        height: 40px;
        font-size: 1.2rem;
    }

    .liinco-modal-content {
        padding: 1rem;
    }

    .liinco-modal-content h2 {
        font-size: 1.5rem;
    }
}

/* --- Stay Single Page V2 Header Refinements --- */
.stay-header {
    align-items: flex-start;
    /* 타이틀과 버튼 정렬 */
}

.stay-title-area {
    flex-grow: 1;
    padding-bottom: 1rem;
    border-bottom: 1px solid #ececec;
}

.stay-subtitle {
    font-size: 1rem;
    color: var(--liinco-secondary);
    margin: 0.5rem 0 1rem 0;
}

.stay-tags-and-min-stay {
    display: flex;
    justify-content: space-between;
    /* 태그는 왼쪽, 뱃지는 오른쪽 */
    align-items: center;

    padding-top: 0;
    margin-top: 1rem;
}

.stay-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.tag-item {
    background: #808080;
    padding: 0.2rem 0.5rem;
    border-radius: 4px;
    font-size: 0.7rem;
    color: #fff;
    font-weight: 500;
}

.min-stay-badge {
    background: #000;

    padding: 0.2rem 0.5rem;
    border-radius: 4px;
    font-size: 0.7rem;
    font-weight: 600;
    color: #fff;
    white-space: nowrap;
    /* 줄바꿈 방지 */
}

/* --- Stay Details Tabs --- */
.stay-details-tabs {
    margin-top: 2rem;
    border-top: 1px solid #eee;
    padding-top: 2rem;
}

.tab-navigation {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 2rem;
    border-bottom: 1px solid #eee;
}

.tab-navigation button {
    background: none;
    border: none;
    padding: 1rem 1.5rem;
    font-size: 1.1rem;
    cursor: pointer;
    color: var(--liinco-secondary);
    border-bottom: 3px solid transparent;
    margin-bottom: -1px;
    /* 아래 테두리와 겹치게 */
    transition: all 0.3s ease;
}

.tab-navigation button.active,
.tab-navigation button:hover {
    color: var(--liinco-dark);
    border-bottom-color: var(--liinco-primary);
}

.tab-content {
    display: none;
    /* 기본 숨김 */
}

.tab-content.active {
    display: block;
    /* 활성 탭만 보임 */
}

.amenities-grid-simple {
    /* 심플한 편의시설 목록 */
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
}



/* --- Booking Widget V2 Styles --- */

.widget-stay-info {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.5rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid #eee;
}

.widget-stay-info img {
    width: 60px;
    height: 60px;
    object-fit: cover;
    border-radius: 8px;
}

.widget-stay-info h4 {
    margin: 0 0 0.3rem 0;
    font-size: 1.1rem;
    font-weight: 600;
}

.widget-stay-info p {
    margin: 0;
    font-size: 0.9rem;
    color: var(--liinco-secondary);
}

.widget-input-triggers {
    display: grid;
    grid-template-columns: 1fr 1fr;
    border: 1px solid var(--liinco-border);
    border-radius: 8px;
    margin-bottom: 1.5rem;
    overflow: hidden;
}

.widget-input-triggers button {
    background: none;
    border: none;
    padding: 1rem;
    text-align: left;
    cursor: pointer;
    font-size: 1rem;
}

.widget-input-triggers button:first-child {
    border-right: 1px solid var(--liinco-border);
}

.date-selector-trigger:hover,
.date-selector-trigger:active {
    background: #fff !important
}

.guests-selector-trigger:hover,
.guests-selector-trigger:active {
    background: #fff !important
}

.date-selector-trigger {
    display: flex;
    flex-direction: row;
    gap: 10px
}

.guests-selector-trigger {
    display: flex;
    flex-direction: row;
    gap: 10px
}


.widget-input-triggers .label {
    display: block;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--liinco-dark);
    margin-bottom: 0.3rem;
}

.widget-input-triggers .value {
    font-weight: 500;
    color: var(--liinco-secondary);
    font-size: 14px;

}

.widget-input-triggers .date-display.placeholder {
    color: #999;
}

.widget-price-details {
    margin-bottom: 1.5rem;
}

.widget-price-details .base-price-info {
    text-align: left;
    font-size: 0.9rem;
    color: var(--liinco-secondary);
    margin-bottom: 1rem;
}

.widget-price-details .base-price-info strong {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--liinco-dark);
}

.widget-price-details .price-row {
    padding: 0.3rem 0;
    /* 간격 줄임 */
}

.widget-price-details .calc-info {
    font-size: 0.9rem;
}

.widget-price-details .total strong {
    font-size: 1.3rem;
    /* 총 금액 강조 */
}

/* --- Responsive Adjustments for V2 --- */
@media (max-width: 576px) {
    .stay-tags-and-min-stay {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.8rem;
    }

    .widget-input-triggers {
        grid-template-columns: 1fr;
        /* 모바일에서 세로로 */
    }

    .widget-input-triggers button:first-child {
        border-right: none;
        border-bottom: 1px solid var(--liinco-border);
    }

    .tab-navigation button {
        padding: 0.8rem 1rem;
        font-size: 1rem;
    }
}

/* --- Stay Details Scroll Navigation & Sections --- */
.stay-section-navigation {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 3rem;
    /* 네비게이션과 첫 섹션 사이 간격 */
    border-top: 1px solid #eee;
    border-bottom: 1px solid #eee;
    position: sticky;
    /* 스크롤 시 상단에 고정 (선택 사항) */
    top: 0;
    /* 테마 헤더 높이에 따라 조절 필요 */
    background: #fff;
    /* 고정 시 배경색 */
    padding-top: 0rem;
    /* 고정 시 상단 여백 */
    z-index: 10;
    /* 다른 요소 위에 오도록 */
}

.stay-section-navigation .nav-link {
    background: none;
    border: none;
    padding: 1rem 1.5rem;
    font-size: 1.1rem;
    cursor: pointer;
    color: var(--liinco-secondary);
    border-bottom: 3px solid transparent;
    margin-bottom: -1px;
    transition: all 0.3s ease;
    text-decoration: none;
    /* 링크 밑줄 제거 */
}

.stay-section-navigation .nav-link.active,
.stay-section-navigation .nav-link:hover {
    color: var(--liinco-dark);
    border-bottom-color: var(--liinco-primary);
}

/* ✨ 모바일 탭 가로 스크롤 적용 */
@media (max-width: 768px) {
    .stay-section-navigation {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        white-space: nowrap;
        -webkit-overflow-scrolling: touch;
        /* iOS 부드러운 스크롤 */
        scrollbar-width: none;
        /* Firefox 스크롤바 숨김 */
        margin-left: -1rem;
        /* 컨테이너 패딩 상쇄 (필요시 조정) */
        margin-right: -1rem;
        padding-left: 1rem;
        padding-right: 1rem;
        gap: 0;
        /* 간격 제거 (링크 패딩으로 대체 가능) */
        border-bottom: 1px solid #eee;
    }

    .stay-section-navigation::-webkit-scrollbar {
        display: none;
        /* Chrome, Safari, Opera 스크롤바 숨김 */
    }

    .stay-section-navigation .nav-link {
        flex: 0 0 auto;
        /* 줄어들지 않도록 설정 */
        padding: 0.8rem 1.2rem;
        /* 터치 영역 확보 */
        font-size: 0.95rem;
    }
}

.stay-section {
    margin-bottom: 4rem;
    /* 각 섹션 사이 간격 */
    padding-top: 2rem;
    /* 네비게이션 고정 시 헤더에 가려지지 않도록 */
    margin-top: -2rem;
    /* padding-top 만큼 상쇄 */
}

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

.stay-section h2 {
    font-size: 1.75rem;
    font-weight: 700;
    margin-bottom: 1.5rem;
    color: #1a1a1a;
}

.stay-section p,
.stay-section .accordion-content-inner {
    font-size: 1.05rem;
    line-height: 1.7;
    color: #333;
    margin-bottom: 1rem;
}

.stay-main-content {
    min-width: 0;
    /* 그리드 오버플로우 방지 */
}

.datepicker-modal-v2 .liinco-modal-content {
    max-width: 700px;
    padding: 1.5rem !important;
}

/* --- Datepicker Modal V2 Styles --- */
.datepicker-modal-v2 .liinco-modal-content {
    max-width: 700px;
    /* 2달 달력이 들어갈 수 있도록 너비 증가 */
    padding: 2rem 2.5rem;
    /* 내부 패딩 조정 */
}

.datepicker-modal-v2 h2 {
    text-align: center;
    border-bottom: none;
    /* 헤더 밑줄 제거 */
    margin-bottom: 0rem !important;
}

#datepicker-calendar .ui-datepicker {
    width: 100% !important;
    font-size: 0.95rem;
    /* 폰트 크기 약간 조정 */
}

#datepicker-calendar .ui-datepicker-header {
    background: none;
    /* 헤더 배경 제거 */
    border: none;
    color: var(--liinco-dark);
    /* 헤더 글자색 */
    padding: 0.5em 0 1em 0;
    /* 헤더 아래 여백 */
    position: relative;
    /* 이전/다음 버튼 위치 기준 */
}

#datepicker-calendar .ui-datepicker-title {
    font-size: 1.2rem;
    font-weight: 600;
}

#datepicker-calendar .ui-datepicker .ui-datepicker-prev,
#datepicker-calendar .ui-datepicker .ui-datepicker-next {
    top: 50%;
    /* 버튼 세로 중앙 정렬 */
    transform: translateY(-50%);
    cursor: pointer;
    border: 1px solid var(--liinco-border);
    /* 버튼 테두리 */
    border-radius: 50%;
    width: 32px;
    height: 32px;
}

#datepicker-calendar .ui-datepicker .ui-datepicker-prev span,
#datepicker-calendar .ui-datepicker .ui-datepicker-next span {
    margin-top: -8px;
    /* 아이콘 위치 미세 조정 */
}

#datepicker-calendar .ui-datepicker-multi .ui-datepicker-group {
    width: 49%;
    /* 두 달력 사이 간격 */
}

#datepicker-calendar .ui-datepicker-multi .ui-datepicker-group-last {
    float: right;
}

#datepicker-calendar .ui-datepicker-multi .ui-datepicker-group-middle {
    float: left;
}


#datepicker-calendar .ui-datepicker th {
    /* 요일 헤더 */
    padding: 0.8em 0.3em;
    font-weight: 500;
    color: var(--liinco-secondary);
}

/* ✨ 일요일(빨강), 토요일(파랑) */
#datepicker-calendar .ui-datepicker th:first-child {
    color: var(--liinco-danger);
}

#datepicker-calendar .ui-datepicker th:last-child {
    color: var(--liinco-primary);
}

#datepicker-calendar .ui-datepicker-week-end:first-child a {
    color: var(--liinco-danger);
}

#datepicker-calendar .ui-datepicker-week-end:last-child a {
    color: var(--liinco-primary);
}


#datepicker-calendar .ui-datepicker td {
    padding: 1px;
    /* 날짜 셀 간격 */
}

#datepicker-calendar .ui-datepicker td span,
#datepicker-calendar .ui-datepicker td a {
    padding: 0.7em 0;
    /* 날짜 셀 높이 */
    text-align: center;
    border-radius: 50%;
    /* 원형 모양 */
    border: 1px solid transparent;
    /* 기본 테두리 숨김 */
}

#datepicker-calendar .ui-datepicker td a:hover {
    background: #f0f0f0;
    border-color: #f0f0f0;
}

/* 선택된 날짜 범위 */
#datepicker-calendar .ui-datepicker-highlight a,
#datepicker-calendar .ui-datepicker-highlight span {
    background: #e6e9f9;
    color: var(--liinco-dark);
    border-radius: 0;
    /* 범위는 사각형 */
}

/* 범위의 시작/끝 날짜 */
#datepicker-calendar .ui-datepicker-endpoint a,
#datepicker-calendar .ui-datepicker-endpoint span {
    background: var(--liinco-primary) !important;
    color: #fff !important;
    border-radius: 50% !important;
    /* 끝은 원형 */
}

/* 범위의 시작 부분 왼쪽 모서리 둥글게 */
#datepicker-calendar td.ui-datepicker-highlight:first-child a {
    border-top-left-radius: 50%;
    border-bottom-left-radius: 50%;
}

/* 범위의 끝 부분 오른쪽 모서리 둥글게 */
#datepicker-calendar td.ui-datepicker-highlight:last-child a {
    border-top-right-radius: 50%;
    border-bottom-right-radius: 50%;
}


.datepicker-modal-v2 .modal-actions {
    justify-content: space-between;
    /* 버튼 양쪽 정렬 */
    margin-top: 2rem;
}

/* '다음' 버튼 스타일 조정 */
.datepicker-modal-v2 .confirm-date-selection {
    padding: 0.8rem 2rem;
    /* 패딩 조정 */
}

/* '초기화' 버튼 스타일 */
.datepicker-modal-v2 .reset-date-selection {
    background: none;
    border: none;
    color: var(--liinco-secondary);
    text-decoration: underline;
}

.datepicker-modal-v2 .reset-date-selection:hover {
    color: var(--liinco-dark);
}

/* --- Stay Search Page V2 Styles --- */
.liinco-stay-search-v2 .search-container {
    margin-top: 50px;
    /* 히어로 이미지 위로 살짝 올라오게 */
    position: relative;
    z-index: 5;
}

.search-form-v2 {
    background: #fff;
    padding: 1rem;
    border-radius: 98px;

    margin-bottom: 0px !important;
}

.search-form-v2 .search-inputs {
    display: flex;
    grid-template-columns: repeat(2, 1fr);
    /* 3개의 동일한 칸 */
    border: 1px solid #AFACAC;
    border-radius: 50px;
    overflow: hidden;
    max-width: 900px;
    margin: 0 auto;

}

.date-selector-trigger {
    flex: 1
}

.guests-selector-trigger {
    flex: 1
}

.stay-section p {
    font-size: 1rem !important
}


@media only screen and (max-width: 768px) {
    .date-selector-trigger {
        flex: 2
    }

    .guests-selector-trigger {
        flex: 1
    }

    .stay-section-navigation .nav-link {
        font-size: 0.9rem;
        padding: 0.8rem 0.5rem;
    }

    .stay-title {
        font-size: 1.6rem !important;
    }
}

.search-form-v2 .search-input-trigger {
    background: none;
    border: none;
    text-align: left;
    padding: 1rem 1.5rem;
    cursor: pointer;
    font-size: 1rem;
    position: relative;
    /* 구분선 */
}

.search-form-v2 .search-input-trigger:not(:last-child)::after {
    content: '';
    position: absolute;
    right: 0;
    top: 15%;
    bottom: 15%;
    width: 1px;
    background-color: var(--liinco-border);
}

.search-form-v2 .search-input-trigger .label {
    display: block;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--liinco-dark);

    text-transform: uppercase;
    /* 대문자로 */
    line-height: 2em;
}

.search-form-v2 .search-input-trigger .value {
    font-weight: 500;
    color: var(--liinco-secondary);
}

.search-form-v2 .search-input-trigger .value.placeholder {
    color: #aaa;
}

/* 초기 검색 버튼 */
.search-form-v2 .search-submit-button {
    grid-column: 3 / 4;
    /* 세 번째 칸 전체 사용 */
    padding: 1rem 1.5rem;
    font-size: 1.1rem;
    height: 100%;
    border-radius: 0 7px 7px 0;
    /* 오른쪽 모서리만 둥글게 */
}

.search-results {
    margin-top: 50px
}


.filter-tags-v2 {
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem;
    margin-bottom: 2rem;
    padding-bottom: 1rem;

    max-width: 900px;
    margin: 0 auto;
}

.filter-tags-v2 .filter-tag {

    font-size: 0.9rem;
    color: #575757;
    text-decoration: none;
    border: 1px solid transparent;
    transition: all 0.3s ease;
}

.filter-tags-v2 .filter-tag:hover {

    color: var(--liinco-dark);
}

.filter-tags-v2 .filter-tag.active {
    /* 활성 태그 배경색 */
    color: #000;

    font-weight: 700;
}

.search-results h2 {
    font-size: 1.8rem;
    margin-bottom: 1.5rem;
}

.no-results {
    text-align: center;
    padding: 3rem;
    color: var(--liinco-secondary);
}

/* 검색 결과 페이지의 검색 바 스타일 조정 */
body.page-template-stay-search .search-form-v2 .search-inputs {
    grid-template-columns: auto auto auto;
    /* 결과 페이지에서는 크기 자동 조절 */
    width: fit-content;
    /* 내용에 맞게 너비 조절 */
    margin: 0 auto 2rem auto;
    /* 가운데 정렬 및 아래 여백 */
}

body.page-template-stay-search .search-form-v2 .search-submit-button {
    display: none;
    /* 결과 페이지에서는 검색 버튼 숨김 */
}


/* 모달 스타일 재사용 */
/* (기존 .liinco-modal, .datepicker-modal-v2 등 스타일 유지) */


/* --- Search Hero V2 Styles --- */

.liinco-stay-search-v2 {
    margin-top: 20px
}

.search-hero {
    position: relative;
    /* 자식 요소(overlay, content)의 위치 기준 */
    text-align: center;
    padding: 6rem 1rem;
    /* 상하 패딩 증가 */
    color: #fff;
    /* 기본 텍스트 색상 흰색 */
    margin-bottom: -50px;
    /* 검색 바가 올라오도록 마이너스 마진 */
    border-radius: 8px;
    background-size: cover;
    /* 이미지가 영역을 꽉 채우도록 */
    background-position: center center;
    /* 이미지가 중앙에 오도록 */
    min-height: 350px;
    /* 최소 높이 지정 */
    display: flex;
    /* 내부 요소 정렬 위해 flex 사용 */
    justify-content: center;
    align-items: center;
}

/* Optional: Add a dark overlay for better text readability */
.search-hero .hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.3);
    /* 반투명 검정 오버레이 */
    border-radius: 8px;
    /* 부모와 동일하게 */
    z-index: 1;
    /* 텍스트보다 아래에 위치 */
}

.search-hero .hero-content {
    position: relative;
    /* 오버레이보다 위에 오도록 */
    z-index: 2;
}

.search-hero .search_title {
    font-size: 3rem;
    /* 폰트 크기 조정 */
    margin-top: 10px !important;
    font-weight: 600;
    /* 폰트 두께 */
    color: #fff;
}

.search-hero .subtitle {
    font-size: 1.5rem;
    /* 부제목 폰트 크기 */
    font-weight: 400;
    margin-bottom: 0px !important;
}

/* 검색 컨테이너 마진 조정 */
.liinco-stay-search-v2 .search-container.initial-mode {
    margin-top: 0;
    /* 초기 화면에서는 마이너스 마진 적용하므로 제거 */
}

.liinco-stay-search-v2 .search-container.results-mode {
    margin-top: 3rem;
    /* 결과 화면에서는 히어로 없으므로 상단 여백 추가 */
}

.option-control button {
    color: #000 !important
}



/* --- Stay Card Design V2 (liinco-stay-card-v2) --- */

.liinco-stay-card-v2 {
    background-color: #fff;
    border-radius: 8px;
    overflow: hidden;

    transition: transform 0.2s ease, box-shadow 0.2s ease;
    height: 100%;
    /* 부모 그리드 아이템에 맞춤 */
    display: flex;
    /* 내부 요소 정렬용 */
    flex-direction: column;
}

.liinco-stay-card-v2:hover {
    transform: translateY(-5px);

}

.liinco-stay-card-v2 .card-link-wrapper {
    text-decoration: none;
    color: inherit;
    display: flex;
    flex-direction: column;
    height: 100%;
}

.liinco-stay-card-v2 .card-image-area {
    position: relative;
    width: 100%;
    /* 이미지 종횡비 유지 (예: 4:3) */
    padding-bottom: 75%;
    /* 4/3 = 0.75 */
    background-color: #f0f0f0;
    /* 로딩 중 배경 */
    border-radius: 10px !important;
    overflow: hidden;
}

.liinco-stay-card-v2 .card-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 8px 8px 0 0;
    /* 상단만 둥글게 */
}

.liinco-stay-card-v2 .image-overlay-content {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    /* 태그는 위쪽에, 좋아요 버튼도 위쪽에 */
    padding: 10px;
    /* 내부 여백 */
    z-index: 10;
    /* 이미지 위에 오도록 */
}

.swiper-wrapper .liinco-stay-card-v2 .image-overlay-content {
    width: 95%;
}

.liinco-stay-card-v2 .card-tags-left {
    display: flex;
    flex-wrap: wrap;
    /* 태그가 많아지면 다음 줄로 */
    gap: 6px;
    /* 태그 간 간격 */
    align-items: flex-start;
}

.liinco-stay-card-v2 .card-tag {
    background-color: rgba(0, 0, 0, 0.7);
    /* 어두운 배경, 반투명 */
    color: #fff;
    font-size: 0.7rem;
    padding: 5px 10px;
    border-radius: 6px;
    font-weight: 600;
    white-space: nowrap;
    line-height: 1.2;
}

.liinco-stay-card-v2 .card-tag.promotion-tag {
    background: linear-gradient(135deg, #FF6B6B 0%, #FF8E53 100%);
    /* 프로모션 그라데이션 */
    font-weight: 600;
    box-shadow: 0 2px 8px rgba(255, 107, 107, 0.3);
    animation: pulse-glow 2s ease-in-out infinite;
}

@keyframes pulse-glow {

    0%,
    100% {
        box-shadow: 0 2px 8px rgba(255, 107, 107, 0.3);
    }

    50% {
        box-shadow: 0 2px 12px rgba(255, 107, 107, 0.5);
    }
}

.liinco-stay-card-v2 .card-tag.feature-tag {
    background-color: rgba(0, 0, 0, 0.6);
}

/* Wishlist Button */
.liinco-stay-card-v2 .like-btn {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    line-height: 1;
    /* SVG 정렬 */
    transition: transform 0.2s ease;
    z-index: 11;
    /* 태그보다 위에 오도록 */
}

.liinco-stay-card-v2 .like-btn:hover {
    transform: scale(1.1);
}

.liinco-stay-card-v2 .like-btn svg {
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.3));
    /* SVG에 그림자 추가 */
}

/* Liked state - 위시리스트에 추가된 상태 */
.liinco-stay-card-v2 .like-btn.liked svg path {
    fill: #FF3040 !important;
    stroke: #fff !important;
}

.liinco-stay-card-v2 .like-btn:not(.liked) svg path {
    fill: rgba(255, 255, 255, 0.3) !important;
    stroke: #fff !important;
}

/* Content Area */
.liinco-stay-card-v2 .card-content {
    padding: 15px;
    flex-grow: 1;
    /* 남은 공간을 채우도록 */
    display: flex;
    flex-direction: column;
}

.liinco-stay-card-v2 .card-title {
    font-size: 1.25rem;
    font-weight: 600;
    margin-top: 0;
    margin-bottom: 5px;
    color: #333;
    line-height: 1.3;
}

.liinco-stay-card-v2 .card-description {
    font-size: 0.9rem;
    color: #777;
    line-height: 1.4;
    margin-bottom: 10px;
    height: 2.8em;
    /* 2줄을 위한 높이 (line-height * 2) */
    overflow: hidden;
    /* 2줄 초과 시 숨김 */
    text-overflow: ellipsis;
    /* ... 표시 */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    /* 최대 2줄 */
    -webkit-box-orient: vertical;
    flex-grow: 1;
    /* 가격 위로 밀어올리도록 */
}

.liinco-stay-card-v2 .card-price {
    font-size: 1.1rem;
    font-weight: 700;
    color: #333;
    margin-top: auto;
    /* 가격이 항상 하단에 붙도록 */
}

.liinco-stay-card-v2 .card-price .per-night {
    font-size: 0.85rem;
    font-weight: 400;
    color: #999;
}

/* 그리드 레이아웃 (부모 요소에 적용되어 있어야 함) */
.liinco-stay-search-v2 .search-results .stays-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    /* 반응형 그리드 */
    gap: 30px;
    margin-top: 30px;
}

/* PlaceHolder image for stays */
.liinco-stay-card-v2 .card-image[src*="placeholder.jpg"] {
    object-fit: contain;
    /* 플레이스홀더 이미지는 중앙에 맞춤 */
    background-color: #f0f0f0;
}

.liinco-stay-card-v2 .card-tag {
    /* ... 기본 태그 스타일 ... */
}

/* 프로모션 태그 강조 */
.liinco-stay-card-v2 .card-tag.promotion-tag {
    background-color: #556FF4;
    /* 현재 파란색 계열, 필요시 #FF6B6B (빨강) 등으로 변경 */
    /* 다른 스타일 추가 가능 */
}


/* --- Google Map Iframe Container (반응형) --- */
.map-embed-container {
    position: relative;
    overflow: hidden;
    width: 100%;
    padding-top: 56.25%;
    /* 16:9 비율 (높이/너비 * 100%) */
    margin: 1.5rem 0;
    border-radius: 8px;
    /* 모서리 둥글게 */
}

.map-embed-container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}


/* --- Accordion (Guest Guidelines & Policies) --- */
.stay-policies-accordion h2 {
    /* Main title "Guest Guidelines & Policies" */
    font-size: 1.4rem;
    font-weight: 600;
    margin-bottom: 1rem;
    border-top: 1px solid #eee;
    padding-bottom: 1rem;
    padding-top: 1rem;
}

.accordion-container {
    border-top: 1px solid #eee;
    /* 이미지의 첫 번째 상단 선 */
}

.accordion-item {
    border-bottom: 1px solid #eee;
    /* 각 아이템 구분 선 */
}

.accordion-trigger {
    width: 100%;
    background: none;
    border: none;
    text-align: left;
    padding: 1.5rem 0.5rem;
    /* 상하 여백 */
    font-size: 1.1rem;
    color: #555;
    font-weight: 500;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    /* 텍스트와 아이콘 양쪽 정렬 */
    align-items: center;
    transition: background-color 0.2s ease;
}

.accordion-trigger:hover {
    background-color: #f9f9f9;
}

.accordion-icon {
    display: inline-block;
    width: 12px;
    /* 아이콘 크기 조정 */
    height: 12px;
    border-right: 2px solid var(--liinco-secondary);
    border-bottom: 2px solid var(--liinco-secondary);
    transform: rotate(45deg);
    /* 아래쪽 화살표 (v) */
    transition: transform 0.3s ease;
    margin-right: 5px;
}

/* JavaScript가 .active 클래스 추가 시 */
.accordion-item.active .accordion-icon {
    transform: rotate(-135deg);
    /* 위쪽 화살표 (^) */
}

.accordion-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease-out;
    background: #fdfdfd;
    /* 약간의 배경색 */
}

.accordion-content-inner {
    padding: 0 1rem 2rem 1rem;
    /* 펼쳐졌을 때 내부 여백 */
    font-size: 1rem;
    line-height: 1.7;
    color: #444;
}

.accordion-content-inner p:first-child {
    margin-top: 0;
}

.accordion-content-inner p:last-child {
    margin-bottom: 0;
}

.accordion-content-inner>*:first-child {
    margin-top: 0;
}

.accordion-content-inner>*:last-child {
    margin-bottom: 0;
}

/* JavaScript가 .active 클래스 추가 시 */
.accordion-item.active .accordion-content {
    max-height: 1000px;
    /* 펼쳐질 최대 높이 (내용에 맞게 조절) */
    transition: max-height 0.5s ease-in;
}

.stay-amenities h2 {
    font-size: 1.2rem !important;
}

.amenities-grid-simple span {

    padding: 5px;
    border-radius: 4px;
    font-size: 1rem !important;

}

/* --- Featured Stays Carousel (Main Page) --- */
.liinco-carousel-wrapper {
    position: relative;
    /* 네비게이션 버튼 위치 기준 */
    max-width: 1400px;
    /* 상세 페이지와 너비 통일 */
    margin: 3rem auto;
    /* 위아래 여백 */
    padding: 0 2rem;
    /* 좌우 여백 */
}

.liinco-carousel-wrapper h2 {
    font-size: 1.5rem;
    font-weight: 600;
    margin-bottom: 1.5rem;
    text-align: left;
    /* 제목 중앙 정렬 (선택 사항) */
}

.featured-stays-carousel.swiper-container {
    width: 100%;
    overflow: hidden;
    /* 슬라이드 영역 밖은 숨김 */
    padding: 10px 0;
    /* 카드 그림자를 위한 약간의 여백 */
}

.featured-stays-carousel .swiper-slide {
    height: auto;
    /* 카드 높이에 맞게 자동 조절 */
    display: flex;
    justify-content: center;
}

/* .liinco-stay-card-v2의 높이가 100%로 설정되어 있어야 함 */
.featured-stays-carousel .liinco-stay-card-v2 {
    height: 100%;
    width: 100%;
}

/* 캐러셀 네비게이션 버튼 (Swiper 기본 클래스 사용) */
.liinco-carousel-wrapper .swiper-button-next,
.liinco-carousel-wrapper .swiper-button-prev {
    color: #000;
    /* 기본 색상 */
    top: 50%;
    /* 세로 중앙 */
    transform: translateY(-50%);
}

/* 버튼 위치 조정 (컨테이너 바깥쪽) */
.liinco-carousel-wrapper .swiper-button-prev {
    left: 0;
}

.liinco-carousel-wrapper .swiper-button-next {
    right: 0;
}

/* 버튼 비활성화 시 */
.liinco-carousel-wrapper .swiper-button-disabled {
    opacity: 0.2;
    cursor: not-allowed;
}

.swiper-button-next:after,
.swiper-button-prev:after {
    font-size: 0.8rem !important
}

.swiper-horizontal {
    overflow: hidden
}

.referral-section {
    display: none
}

.liinco-my-page-tabs .nav-tabs {
    border-bottom: 0px !important
}



.salon-section {
    margin-top: 80px;
    margin-bottom: 40px
}

/* --- Salon Join Modal Styles --- */

.liinco-modal .modal-title {
    font-size: 1.5rem;
    font-weight: 600;
    margin-top: 0;
    margin-bottom: 0.5rem;
    border-bottom: 1px solid #eee;
    padding-bottom: 1rem;
}

.liinco-modal .modal-subtitle {
    font-size: 0.95rem;
    color: #6c757d;
    margin-bottom: 1.5rem;
}

.liinco-modal .form-group {
    margin-bottom: 1rem;
}

.liinco-modal label {
    display: block;
    font-weight: 600;
    margin-bottom: 0.5rem;
    font-size: 0.9rem;
}

.liinco-modal .liinco-input {
    width: 100%;
    padding: 0.75rem;
    border: 1px solid var(--liinco-border);
    border-radius: 4px;
    font-size: 1rem;
}

.liinco-modal .modal-actions {
    display: flex;
    justify-content: flex-end;
    gap: 1rem;
    border-top: 1px solid #eee;
    padding-top: 1.5rem;
    margin-top: 2rem;
}

.liinco-modal .submit-join-btn {
    min-width: 120px;
}


/**
 * Liinco Additional Styles
 * 좋아요, 공유, 갤러리 스타일
 */

/* ============================================================
   하트 & 공유 버튼 스타일 (이미지 참고)
   ============================================================ */

.stay-header,
.salon-header-with-actions {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 2rem;
}

.stay-header-actions,
.salon-header-actions {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

.liinco-action-btn {
    width: 48px;
    height: 48px;
    border-radius: 50%;


    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    cursor: pointer;
    transition: all 0.3s ease;

}

.liinco-action-btn:hover {
    background: #F5F5F5;


}

.liinco-action-btn.like-btn,
.liinco-action-btn.like-salon-btn {
    color: #CCCCCC;
}

.liinco-action-btn.like-btn.liked,
.liinco-action-btn.like-salon-btn.liked {
    color: #FF4458;
    border-color: #FF4458;
}

.liinco-action-btn.like-btn.liked:hover,
.liinco-action-btn.like-salon-btn.liked:hover {
    background: #FFF0F2;
}

.liinco-action-btn.share-btn {
    color: #666666;
}

.liinco-action-btn.processing {
    opacity: 0.6;
    pointer-events: none;
}

/* ============================================================
   갤러리 슬라이더 최대 너비 1600px
   ============================================================ */

.stay-header-gallery-wrapper {
    max-width: 1900px;
    margin: 0 auto 3rem auto;
    width: 100%;
}

.main-gallery.swiper-container,
.main-gallery.single-image {
    width: 100%;
    max-width: 1600px;
    margin: 0 auto;
    border-radius: 12px;
    overflow: hidden;
}

.main-gallery .swiper-slide img,
.main-gallery.single-image img {
    width: 100%;
    height: auto;
    max-height: 600px;
    object-fit: cover;
}

/* ============================================================
   공유 모달
   ============================================================ */

#liinco-share-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 10000;
    align-items: center;
    justify-content: center;
}

#liinco-share-modal.active {
    display: flex;
}

.share-modal-content {
    background: white;
    border-radius: 16px;
    padding: 2rem;
    max-width: 500px;
    width: 90%;
    position: relative;
}

.share-modal-content .modal-title {
    font-size: 1.5rem;
    font-weight: 700;
    margin-bottom: 1.5rem;
    text-align: center;
}

.share-buttons {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
}

.share-button {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 1.5rem 1rem;
    border: 2px solid #E0E0E0;
    border-radius: 12px;
    background: white;
    cursor: pointer;
    transition: all 0.3s ease;
    font-size: 14px;
    font-weight: 500;
    color: #333;
}

.share-button:hover {
    border-color: #333;
    background: #F8F8F8;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.share-button svg {
    margin-bottom: 0.5rem;
    width: 32px;
    height: 32px;
}

.share-button.kakao-share {
    color: #FEE500;
}

.share-button.kakao-share:hover {
    background: #FEE500;
    border-color: #FEE500;
    color: #3C1E1E;
}

.share-button.facebook-share {
    color: #1877F2;
}

.share-button.facebook-share:hover {
    background: #1877F2;
    border-color: #1877F2;
    color: white;
}

.share-button.twitter-share {
    color: #000000;
}

.share-button.twitter-share:hover {
    background: #000000;
    border-color: #000000;
    color: white;
}

.share-button.naver-share {
    color: #03C75A;
}

.share-button.naver-share:hover {
    background: #03C75A;
    border-color: #03C75A;
    color: white;
}

.share-button.copy-link {
    color: #666;
}

.share-button.copy-link:hover {
    background: #666;
    border-color: #666;
    color: white;
}

/* ============================================================
   Favorites 탭 스타일
   ============================================================ */

.liinco-favorites-tab .sub-tabs {
    display: flex;
    gap: 1rem;
    margin-bottom: 2rem;
    border-bottom: 1px solid #E0E0E0;
}

.liinco-favorites-tab .sub-tabs a {
    padding: 0.75rem 1.5rem;
    text-decoration: none;
    color: #666;
    font-weight: 500;
    border-bottom: 2px solid transparent;
    transition: all 0.3s ease;
}

.liinco-favorites-tab .sub-tabs a:hover {
    color: #333;
}

.liinco-favorites-tab .sub-tabs a.active {
    color: #000;
    border-bottom-color: #000;
}

.stays-grid,
.salons-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 2rem;
    margin-top: 2rem;
}

.stay-card,
.salon-card {
    border: 1px solid #E0E0E0;
    border-radius: 12px;
    overflow: hidden;
    transition: all 0.3s ease;
}

.stay-card:hover,
.salon-card:hover {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
    transform: translateY(-4px);
}

.stay-card .stay-image,
.salon-card .salon-image {
    display: block;
    width: 100%;
    height: 200px;
    overflow: hidden;
}

.stay-card .stay-image img,
.salon-card .salon-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.stay-card:hover .stay-image img,
.salon-card:hover .salon-image img {
    transform: scale(1.05);
}

.stay-card .stay-info,
.salon-card .salon-info {
    padding: 1.5rem;
}

.stay-card h3,
.salon-card h3 {
    margin: 0 0 0.5rem 0;
    font-size: 1.125rem;
    font-weight: 600;
}

.stay-card h3 a,
.salon-card h3 a {
    color: #333;
    text-decoration: none;
    transition: color 0.3s ease;
}

.stay-card h3 a:hover,
.salon-card h3 a:hover {
    color: #000;
}

.stay-card .added-date,
.salon-card .added-date {
    color: #999;
    font-size: 0.875rem;
    margin-bottom: 1rem;
}

.stay-card .like-btn,
.salon-card .like-btn {
    width: auto;
    height: auto;
    border-radius: 8px;
    padding: 0.5rem 1rem;
    font-size: 14px;
}

.no-items {
    text-align: center;
    padding: 3rem;
    color: #999;
    font-size: 1.125rem;
}

/* ============================================================
   살롱 상세 페이지 헤더 레이아웃
   ============================================================ */

.salon-header-with-actions {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 2rem;
}

.salon-title-area {
    flex: 1;
}

/* ============================================================
   모바일 반응형
   ============================================================ */

/* ============================================================
   일정 변경 모달
   ============================================================ */

.liinco-modal {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 10001;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.liinco-modal .modal-content {
    background: white;
    border-radius: 12px;
    padding: 2rem;
    max-width: 500px;
    width: 100%;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
}

.liinco-modal h3 {
    margin: 0 0 1rem 0;
    font-size: 1.5rem;
}

.liinco-modal .form-group {
    margin-bottom: 1.5rem;
}

.liinco-modal .form-group label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: 600;
    color: #333;
}

.liinco-modal .form-group input,
.liinco-modal .form-group textarea {
    width: 100%;
    padding: 0.75rem;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    font-family: inherit;
}

.liinco-modal .modal-actions {
    display: flex;
    gap: 1rem;
    justify-content: flex-end;
    margin-top: 2rem;
}

.liinco-modal .button {
    padding: 0.75rem 1.5rem;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    font-size: 1rem;
    transition: all 0.3s ease;
}

.liinco-modal .button-primary {
    background: #203579;
    color: white;
}

.liinco-modal .button-primary:hover {
    background: #3949AB;
}

.liinco-modal .close-modal {
    background: #f8f9fa;
    color: #333;
}

.liinco-modal .close-modal:hover {
    background: #e9ecef;
}

@media (max-width: 768px) {

    .liinco-carousel-wrapper {
        margin: 3rem 0px !important;
        padding: 0px 0px 0px 20px !important;
    }

    .liinco-action-btn {
        width: 40px;
        height: 40px;
        font-size: 16px;
    }

    .stay-header,
    .salon-header-with-actions {
        flex-direction: column;
        gap: 1rem;
    }

    .stay-header-actions,
    .salon-header-actions {
        width: 100%;
        justify-content: flex-end;
    }

    .stays-grid,
    .salons-grid {
        grid-template-columns: 1fr;
    }

    .share-buttons {
        grid-template-columns: 1fr;
    }

    .main-gallery .swiper-slide img,
    .main-gallery.single-image img {
        max-height: 400px;
    }
}

@media (min-width: 769px) and (max-width: 1200px) {

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

/* ============================================================
   갤러리 네비게이션 버튼 개선
   ============================================================ */

.main-gallery .swiper-button-next,
.main-gallery .swiper-button-prev {
    width: 48px;
    height: 48px;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 50%;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

.main-gallery .swiper-button-next:after,
.main-gallery .swiper-button-prev:after {
    font-size: 20px;
    color: #333;
    font-weight: bold;
}

.main-gallery .swiper-button-next:hover,
.main-gallery .swiper-button-prev:hover {
    background: rgba(255, 255, 255, 1);
}

.main-gallery .swiper-pagination-bullet {
    width: 10px;
    height: 10px;
    background: #fff;
    opacity: 0.5;
}

.main-gallery .swiper-pagination-bullet-active {
    opacity: 1;
    background: #fff;
}


/* liinco-public.css에 추가/수정 */

/* ============================================================
   모바일 하단 고정 예약 바 (New)
   ============================================================ */

.liinco-mobile-booking-bar {
    display: none;
    /* 기본적으로 숨김 */
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background: #fff;
    border-top: 1px solid #eee;
    padding: 1rem 1.5rem;
    z-index: 999;
    align-items: center;
    justify-content: space-between;
    box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.05);
}

@media (max-width: 992px) {

    /* 모바일에서는 하단 바를 표시하고 사이드바를 숨깁니다. */
    .liinco-stay-single-v2 .stay-booking-sidebar {
        display: none;
    }

    .liinco-mobile-booking-bar {
        display: flex;
    }

    /* 하단 바 공간 확보 */
    .liinco-stay-single-v2 .stay-content-wrapper {
        padding-bottom: 70px;
        /* 하단 바 높이만큼 여백 확보 */
    }
}

.booking-price-info .price-amount {
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0;
}

.booking-price-info .price-amount .price-value {
    color: var(--liinco-primary);
    font-size: 1.3rem;
}

.booking-actions-mobile .mobile-select-trigger {
    padding: 0.75rem 1.25rem;
    font-size: 1rem;
    font-weight: 600;
    width: auto;
}

/* ============================================================
   통합 탭 모달 스타일 (mobile-tabbed-modal)
   ============================================================ */
.mobile-tabbed-modal .liinco-modal-content {
    width: 100%;
    max-width: 100%;
    height: 100vh;
    /* 모바일에서 전체 화면 */
    margin: 0;
    padding: 1.5rem;
    border-radius: 0;
}

.mobile-tabbed-modal .modal-title {
    text-align: center;
    border-bottom: 1px solid #eee;
    padding-bottom: 0.5rem;
    margin-bottom: 1.5rem;
}

.mobile-tabbed-modal .close-button {
    top: 1rem;
    right: 1.5rem;
}

.modal-tab-navigation {
    display: flex;
    justify-content: space-around;
    border: 1px solid var(--liinco-primary);
    border-radius: 8px;
    overflow: hidden;
    margin-bottom: 1.5rem;
}

.tab-nav-btn {
    flex: 1;
    padding: 0.8rem;
    background: #fff;
    color: var(--liinco-primary);
    border: none;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
}

.tab-nav-btn.active {
    background: var(--liinco-primary);
    color: #fff;
}

.modal-tab-content {
    display: none;
    padding: 1rem 0;
}

.modal-tab-content.active {
    display: block;
}

#tab-datepicker-calendar {
    /* 캘린더 스타일을 전체 화면에 맞게 조정 */
    width: 100% !important;
}

.modal-actions-mobile-tabbed {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 1rem 1.5rem;
    border-top: 1px solid #eee;
    display: flex;
    justify-content: space-between;
    background: #fff;
}

.modal-actions-mobile-tabbed .liinco-button {
    flex: 1;
}

.tab-reset-btn {
    flex-basis: 30%;
}

.tab-next-confirm-btn {
    flex-basis: 65%;
}


/* ========================================================================
   모바일 하단 고정 예약 바 (이미지 디자인)
   ======================================================================== */
.liinco-mobile-booking-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: #fff;
    border-top: 1px solid #e5e7eb;
    padding: 12px 16px;
    display: none;
    /* 기본 숨김, JS로 모바일에서만 표시 */
    align-items: center;
    justify-content: space-between;
    box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
    z-index: 999;
    gap: 12px;
}

.booking-info-status {
    flex: 1;
    cursor: pointer;
}

.mobile-booking-info-wrapper {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

/* 가격 라인 */
.mobile-price-line {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 16px;
    font-weight: 700;
    color: #111;
}

.discount-badge {
    background: #ff385c;
    color: #fff;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
}

.mobile-price-line .price-value {
    font-size: 18px;
    font-weight: 700;
}

.mobile-price-line .per-night {
    font-size: 14px;
    font-weight: 400;
    color: #6b7280;
}

/* 예약 상세 정보 */
.mobile-booking-details {
    display: flex;
    align-items: center;
    font-size: 13px;
    color: #6b7280;
    gap: 4px;
}

.mobile-booking-details .dates-display {
    color: #111;
    font-weight: 500;
}

.mobile-booking-details .separator {
    color: #d1d5db;
}

.mobile-booking-details .guests-display-count {
    color: #111;
    font-weight: 500;
}

.mobile-booking-details .guests-label {
    margin-left: 2px;
}

/* 예약하기 버튼 */
.booking-actions-mobile {
    flex-shrink: 0;
}

.mobile-book-btn {
    background: #111;
    color: #fff;
    border: none;
    padding: 12px 24px;
    border-radius: 8px;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.2s;
}

.mobile-book-btn:hover {
    background: #000;
}

.mobile-book-btn:disabled {
    background: #e5e7eb;
    color: #9ca3af;
    cursor: not-allowed;
}

/* 모바일에서만 표시 */
@media (max-width: 768px) {
    .liinco-mobile-booking-bar {
        display: flex;
    }
}

/* ========================================================================
   SNS 공유 모달
   ======================================================================== */
.share-modal {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 10000;
    padding: 20px;
}

.share-modal.active {
    display: flex;
}

.share-modal-content {
    background: #fff;
    border-radius: 16px;
    padding: 24px;
    max-width: 400px;
    width: 100%;
    position: relative;
    animation: modalSlideUp 0.3s ease;
}

@keyframes modalSlideUp {
    from {
        transform: translateY(20px);
        opacity: 0;
    }

    to {
        transform: translateY(0);
        opacity: 1;
    }
}

.share-modal-content h3 {
    margin: 0 0 20px 0;
    font-size: 20px;
    font-weight: 700;
    color: #111;
}

.share-modal-content .close-button {
    position: absolute;
    top: 16px;
    right: 16px;
    background: none;
    border: none;
    font-size: 24px;
    color: #6b7280;
    cursor: pointer;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: background 0.2s;
}

.share-modal-content .close-button:hover {
    background: #f3f4f6;
}

/* SNS 버튼 그리드 */
.share-buttons-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}

.share-option-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 16px 8px;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #fff;
    cursor: pointer;
    transition: all 0.2s;
}

.share-option-btn:hover {
    border-color: #111;
    background: #f9fafb;
    transform: translateY(-2px);
}

.share-option-btn:active {
    transform: translateY(0);
}

.share-icon {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s;
}

.share-option-btn:hover .share-icon {
    transform: scale(1.1);
}

/* 각 SNS 아이콘 색상 */
.kakao-icon {
    background: #fee500;
    color: #3c1e1e;
}

.facebook-icon {
    background: #1877f2;
    color: #fff;
}

.twitter-icon {
    background: #000;
    color: #fff;
}

.naver-icon {
    background: #03c75a;
    color: #fff;
}

.copy-icon {
    background: #f3f4f6;
    color: #111;
}

.share-option-btn span {
    font-size: 12px;
    font-weight: 500;
    color: #111;
    text-align: center;
}

/* 모바일 최적화 */
@media (max-width: 480px) {
    .share-modal-content {
        max-width: calc(100% - 40px);
    }

    .share-buttons-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 10px;
    }

    .share-option-btn {
        padding: 12px 8px;
    }

    .share-icon {
        width: 40px;
        height: 40px;
    }
}

/* 태블릿 */
@media (min-width: 481px) and (max-width: 768px) {
    .share-buttons-grid {
        grid-template-columns: repeat(5, 1fr);
    }
}

.liinco-my-page-content h3 {
    font-size: 1.3rem !important
}

.salon-registration-card {
    background: #F9F9F9;
    border-radius: 15px;
    padding: 1.5rem;
    margin-bottom: 20px;
}


.salon-registration-card .button {
    background: #4d4dc5 !important;
}

/* ===== 고객용 캘린더 가격 표시 ===== */
.ui-datepicker-calendar td {
    position: relative;
}

.ui-datepicker-calendar td .date-price-label {
    position: absolute;
    bottom: 2px;
    left: 0;
    right: 0;
    text-align: center;
    font-size: 10px;
    font-weight: 600;
    line-height: 1;
    pointer-events: none;
}

.ui-datepicker-calendar td .date-price-label.special-price {
    color: #FF5A5F;
}

.ui-datepicker-calendar td .date-price-label.base-price {
    color: #999;
    font-weight: 500;
}

.ui-datepicker-calendar td.has-special-price {
    background-color: #fff9e6 !important;
}

.ui-datepicker-calendar td.has-special-price a {
    background: transparent !important;
}

.ui-datepicker-calendar td.ui-datepicker-blocked {
    background-color: #ffebee !important;
    opacity: 0.6;
}

.ui-datepicker-calendar td.ui-datepicker-blocked a,
.ui-datepicker-calendar td.ui-datepicker-blocked span,
.ui-datepicker-calendar td.ui-state-disabled span,
.ui-datepicker-calendar td.ui-state-disabled a {
    color: #999 !important;
    text-decoration: line-through;
    opacity: 0.6;
}

/* 모바일 캘린더 조정 */
@media (max-width: 768px) {
    .ui-datepicker-calendar td .date-price-label {
        font-size: 9px;
        bottom: 1px;
    }
}

/* ===== 모바일 탭 모달 달력 스타일 (데스크톱과 동일) ===== */
/* 모바일 달력 컨테이너 */
#tab-datepicker-calendar.ui-datepicker {
    width: 100% !important;
    border: none;
    padding: 0;
}

/* 모바일 달력 헤더 */
#tab-datepicker-calendar .ui-datepicker-header {
    background: #fff;
    border: none;
    border-radius: 0;
    padding: 16px 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
}

#tab-datepicker-calendar .ui-datepicker-title {
    font-size: 16px;
    font-weight: 700;
    color: #111;
}

/* 모바일 달력 테이블 */
#tab-datepicker-calendar .ui-datepicker-calendar {
    border-collapse: collapse;
    /* 셀 간격 제거하여 연결된 느낌 구현 */
    border-spacing: 0;
    width: 100%;
}

#tab-datepicker-calendar .ui-datepicker-calendar thead th {
    color: #717171;
    font-weight: 600;
    font-size: 12px;
    padding-bottom: 8px;
}

/* 모바일 달력 날짜 셀 */
#tab-datepicker-calendar .ui-datepicker-calendar td {
    position: relative;
    padding: 0;
    /* 패딩 제거 */
    border: none;
    background: transparent;
    height: 54px;
    /* 셀 높이 증가 (가격 표시 공간 확보) */
    vertical-align: top;
    /* 상단 정렬 */
}

#tab-datepicker-calendar .ui-datepicker-calendar td a,
#tab-datepicker-calendar .ui-datepicker-calendar td span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    /* 셀 높이 꽉 채우기 */
    text-decoration: none;
    font-size: 14px;
    color: #222;
    position: relative;
    z-index: 10;
    /* 배경보다 위에 오도록 */
    margin: 0;
    border: none !important;
    background: transparent;
    /* 배경 투명 */
}

/* 모바일 가격 라벨 */
#tab-datepicker-calendar .ui-datepicker-calendar td .date-price-label {
    position: absolute;
    bottom: 4px;
    /* 위치 미세 조정 */
    left: 50%;
    transform: translateX(-50%);
    font-size: 9px;
    font-weight: 500;
    white-space: nowrap;
    z-index: 11;
    line-height: 1;
    pointer-events: none;
}

#tab-datepicker-calendar .ui-datepicker-calendar td .date-price-label.special-price {
    color: #FF385C;
    font-weight: 700;
    /* 특별 요금 강조 */
}

#tab-datepicker-calendar .ui-datepicker-calendar td .date-price-label.base-price {
    color: #999;
    /* 기본 요금 더 연하게 */
    font-weight: 400;
    font-size: 8px;
    /* 크기 약간 축소 */
}

/* --- Modern Range Selection Styles --- */

/* 1. Range Highlight (중간 날짜들) */
#tab-datepicker-calendar .ui-datepicker-highlight {
    background-color: #F2F4FF !important;
    /* 더 잘 보이는 연한 인디고색 */
}

/* 2. Start Date (시작일) */
#tab-datepicker-calendar .ui-datepicker-start {
    background: linear-gradient(to right, transparent 50%, #F2F4FF 50%) !important;
}

#tab-datepicker-calendar .ui-datepicker-start a {
    background-color: #203579 !important;
    color: #fff !important;
    border-radius: 50%;
    width: 36px !important;
    /* 원형 크기 축소 */
    height: 36px !important;
    margin: 4px auto 0 auto !important;
    /* 상단 여백, 중앙 정렬 */
    display: flex !important;
    /* Flexbox 강제 */
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    /* 패딩 제거 */
    text-align: center !important;
}

/* 시작일이면서 종료일이 없는 경우 (단일 선택) */
#tab-datepicker-calendar .ui-datepicker-start:not(.ui-datepicker-highlight) {
    background: transparent !important;
}

/* 3. End Date (종료일) */
#tab-datepicker-calendar .ui-datepicker-end {
    background: linear-gradient(to left, transparent 50%, #F2F4FF 50%) !important;
}

#tab-datepicker-calendar .ui-datepicker-end a {
    background-color: #203579 !important;
    color: #fff !important;
    border-radius: 50%;
    width: 36px !important;
    height: 36px !important;
    margin: 4px auto 0 auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    text-align: center !important;
}

/* 4. Start & End Date Text/Label Color */
#tab-datepicker-calendar .ui-datepicker-start a,
#tab-datepicker-calendar .ui-datepicker-end a {
    font-weight: 600;
}

/* 선택된 날짜의 가격 색상은 원래 색상 유지 (흰색 강제 제거) */
#tab-datepicker-calendar .ui-datepicker-calendar td a:hover {
    background-color: transparent;
}

/* 모바일 예약 불가 날짜 */
#tab-datepicker-calendar .ui-datepicker-calendar td.ui-datepicker-blocked,
#tab-datepicker-calendar .ui-datepicker-calendar td.ui-datepicker-unselectable {
    background-color: transparent !important;
    opacity: 1;
}

#tab-datepicker-calendar .ui-datepicker-calendar td.ui-datepicker-blocked a,
#tab-datepicker-calendar .ui-datepicker-calendar td.ui-datepicker-unselectable span {
    color: #d1d1d1 !important;
    text-decoration: line-through;
    cursor: not-allowed !important;
}

/* ==== Fallbacks: 최소한의 Swiper/Datepicker 스타일 (CDN 차단 시 레이아웃 유지) ==== */
.swiper-container {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.swiper-wrapper {
    display: flex;
    transition: transform 0.3s ease;
}

/* Swiper가 초기화되지 않은 경우에만 1장씩 보이도록 제한 */
.swiper-container:not(.swiper-initialized) .swiper-slide {
    flex: 0 0 100%;
}

.swiper-button-next,
.swiper-button-prev {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.35);
    color: #fff;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.swiper-button-next {
    right: 12px;
}

.swiper-button-prev {
    left: 12px;
}

.swiper-button-next:after,
.swiper-button-prev:after {
    font-size: 16px;
}

.swiper-pagination {
    position: absolute;
    bottom: 10px;
    left: 0;
    right: 0;
    display: flex;
    justify-content: center;
    gap: 6px;
    z-index: 2;
}

.swiper-pagination-bullet {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.5);
}

.swiper-pagination-bullet-active {
    background: #fff;
}

.ui-datepicker {
    background: #fff;
    border: 1px solid #e2e2e2;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
    padding: 8px;
    border-radius: 12px;
    z-index: 9999 !important;
}

.ui-datepicker .ui-datepicker-header {
    position: relative;
    padding: 6px 0;
    text-align: center;
    font-weight: 600;
}

.ui-datepicker .ui-datepicker-prev,
.ui-datepicker .ui-datepicker-next {
    position: absolute;
    top: 10px;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.ui-datepicker .ui-datepicker-prev {
    left: 6px;
}

.ui-datepicker .ui-datepicker-next {
    right: 6px;
}

.ui-datepicker .ui-datepicker-title {
    font-size: 14px;
}

.ui-datepicker table {
    width: 100%;
    border-collapse: collapse;
    margin: 0;
}

.ui-datepicker th {
    padding: 6px 0;
    font-size: 12px;
    color: #666;
    font-weight: 600;
}

.ui-datepicker td {
    width: 36px;
    height: 34px;
    text-align: center;
}

.ui-datepicker td a,
.ui-datepicker td span {
    display: inline-block;
    width: 30px;
    height: 30px;
    line-height: 30px;
    border-radius: 50%;
    color: #333;
    text-decoration: none;
}

.ui-datepicker td a:hover {
    background: #f4f4f4;
}

.ui-datepicker-unselectable .ui-state-default {
    color: #bbb;
    text-decoration: line-through;
}

/* Carousel headers */
.liinco-carousel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.liinco-carousel-header h2 {
    margin: 0;
}

.liinco-view-more {
    font-size: 14px;
    font-weight: 600;
    color: #111;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.liinco-view-more::after {
    content: '›';
    font-size: 16px;
    line-height: 1;
}

.liinco-view-more:hover {
    text-decoration: underline;
}