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

/* ===== Variables ===== */
:root {
    --liinco-primary: #4A5FD9;
    --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: 1fr 400px;
    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: #4A5FD9; /* 활성 페이지네이션 색상 */
}

/* 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;
}

.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: #4A5FD9;
}

.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: #4A5FD9;
    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: #4A5FD9; /* 달력 헤더 배경색 */
    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: #4A5FD9;
    color: #fff;
    border: 1px solid #4A5FD9;
}
.liinco-button-primary:hover,
.liinco-button:hover {
    background-color: #3a4bbd;
    border-color: #3a4bbd;
}
.liinco-button-secondary {
    background-color: #fff;
    color: #4A5FD9;
    border: 1px solid #4A5FD9;
}
.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);
}

.stay-section {
    margin-bottom: 4rem; /* 각 섹션 사이 간격 */
    padding-top: 2rem; /* 네비게이션 고정 시 헤더에 가려지지 않도록 */
    margin-top: -2rem; /* padding-top 만큼 상쇄 */
}
.stay-section:last-child {
    margin-bottom: 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: 5px; /* 태그 간 간격 */
}

.liinco-stay-card-v2 .card-tag {
    background-color: rgba(0, 0, 0, 0.6); /* 어두운 배경, 반투명 */
    color: #fff;
    font-size: 0.75rem;
    padding: 4px 8px;
    border-radius: 4px;
    font-weight: 500;
}

.liinco-stay-card-v2 .card-tag.promotion-tag {
    background-color: #FF6B6B; /* 프로모션 태그 강조색 */
}

/* 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에 그림자 추가 */
}

/* 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: #4A5FD9;
    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;}   