/* ==========================================================================
   (주)투어수다 - 여행 기간 선택 달력 (js/suda_daterange.js)
   PC: 검색창 아래 2개월 팝업 / 모바일(768px 이하): 화면 아래 시트 + 1개월씩 세로 스크롤
   ========================================================================== */

[data-suda-range]{ cursor: pointer; }
[data-suda-range].is-empty [data-dr-value]{ color: var(--suda-gray-400, #9ca3af); }
[data-dr-value]{ white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.suda-dr-pop{ position: absolute; inset: 0 auto auto 0; z-index: 2000; }
.suda-dr-pop[hidden]{ display: none; }
.suda-dr-dim{ display: none; }

.suda-dr-sheet{
    position: absolute;
    width: 680px;
    max-width: calc(100vw - 16px);
    background: #fff;
    border: 1px solid var(--suda-gray-200, #e5e7eb);
    border-radius: 16px;
    box-shadow: 0 24px 60px rgba(17,24,39,.2);
    overflow: hidden;
    box-sizing: border-box;
    font-family: inherit;
}
.suda-dr-mhead, .suda-dr-weekhead{ display: none; }

.suda-dr-body{ position: relative; padding: 24px 28px 8px; }
.suda-dr-months{ display: grid; grid-template-columns: 1fr 1fr; gap: 36px; }
.suda-dr-nav{
    position: absolute;
    top: 18px;
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 999px;
    background: none;
    font-size: 26px;
    line-height: 1;
    color: var(--suda-gray-700, #374151);
    cursor: pointer;
}
.suda-dr-nav:hover:not(:disabled){ background: var(--suda-gray-100, #f3f4f6); }
.suda-dr-nav:disabled{ color: var(--suda-gray-200, #e5e7eb); cursor: default; }
.suda-dr-nav.is-prev{ left: 16px; }
.suda-dr-nav.is-next{ right: 16px; }

.suda-dr-title{
    margin: 4px 0 16px;
    text-align: center;
    font-size: 18px;
    font-weight: 700;
    color: var(--suda-gray-900, #111827);
}
.suda-dr-week, .suda-dr-weekhead{
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    margin-bottom: 6px;
    text-align: center;
    font-size: 13px;
    color: var(--suda-gray-500, #6b7280);
}
.suda-dr-weekhead{ display: none; }
.suda-dr-week .is-sun, .suda-dr-weekhead .is-sun{ color: var(--suda-red, #fb2c36); }

.suda-dr-grid{ display: grid; grid-template-columns: repeat(7, 1fr); row-gap: 4px; }
.suda-dr-day{
    position: relative;
    height: 44px;
    padding: 0;
    border: 0;
    background: none;
    font: inherit;
    color: var(--suda-gray-900, #111827);
    cursor: pointer;
}
.suda-dr-day span{
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 999px;
    font-size: 14px;
    transition: background .15s ease, color .15s ease;
}
.suda-dr-day em{
    position: absolute;
    left: 0;
    right: 0;
    bottom: -6px;
    z-index: 1;
    font-style: normal;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .02em;
    color: var(--suda-gray-700, #374151);
}
.suda-dr-day.is-red{ color: var(--suda-red, #fb2c36); }
.suda-dr-day.is-today span{ background: var(--suda-gray-100, #f3f4f6); font-weight: 700; }
.suda-dr-day:hover:not(:disabled) span{ background: var(--suda-gray-100, #f3f4f6); }
.suda-dr-day:disabled{ color: #d1d5db; cursor: default; }
.suda-dr-day:focus-visible{ outline: none; }
.suda-dr-day:focus-visible span{ box-shadow: 0 0 0 2px var(--suda-blue, #4154ff); }

/* 기간: 사이 날짜는 연한 띠, 시작/종료일은 진한 원 */
.suda-dr-day.is-in::before,
.suda-dr-day.is-start.has-range::before,
.suda-dr-day.is-end.has-range::before{
    content: "";
    position: absolute;
    top: 4px;
    bottom: 4px;
    left: 0;
    right: 0;
    background: color-mix(in srgb, var(--suda-blue, #4154ff) 12%, #fff);
}
.suda-dr-day.is-start.has-range::before{ left: 50%; }
.suda-dr-day.is-end.has-range::before{ right: 50%; }
.suda-dr-day.is-start span,
.suda-dr-day.is-end span{
    background: var(--suda-blue, #4154ff) !important;
    color: #fff;
    font-weight: 700;
}

.suda-dr-foot{
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 18px 28px;
    margin-top: 12px;
    background: var(--suda-gray-50, #f9fafb);
    border-top: 1px solid var(--suda-gray-100, #f3f4f6);
}
.suda-dr-summary{ flex: 1 1 auto; min-width: 0; }
.suda-dr-summary-label{ display: block; font-size: 12px; color: var(--suda-gray-500, #6b7280); }
.suda-dr-summary-text{ margin: 4px 0 0; font-size: 15px; font-weight: 700; color: var(--suda-gray-900, #111827); }
.suda-dr-clear{
    flex: 0 0 auto;
    padding: 0 6px;
    border: 0;
    background: none;
    font: inherit;
    font-size: 13px;
    color: var(--suda-gray-500, #6b7280);
    text-decoration: underline;
    cursor: pointer;
}
.suda-dr-done{
    flex: 0 0 auto;
    min-width: 120px;
    height: 46px;
    padding: 0 20px;
    border: 0;
    border-radius: 10px;
    background: var(--suda-blue, #4154ff);
    font: inherit;
    font-size: 15px;
    font-weight: 700;
    color: #fff;
    cursor: pointer;
}
.suda-dr-done:hover:not(:disabled){ background: var(--suda-blue-dark, #3443cc); }
.suda-dr-done:disabled{ opacity: .4; cursor: default; }

/* ---------- 모바일: 아래 시트 + 세로 스크롤 ---------- */
body.suda-dr-lock{ overflow: hidden; }
.suda-dr-pop.is-mobile{ position: fixed; inset: 0; }
.suda-dr-pop.is-mobile .suda-dr-dim{ display: block; position: absolute; inset: 0; background: rgba(17,24,39,.45); }
.suda-dr-pop.is-mobile .suda-dr-sheet{
    left: 0;
    right: 0;
    bottom: 0;
    top: auto;
    width: 100%;
    max-width: none;
    height: 86vh;
    display: flex;
    flex-direction: column;
    border: 0;
    border-radius: 18px 18px 0 0;
}
.suda-dr-pop.is-mobile .suda-dr-mhead{
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px 8px;
    font-size: 17px;
}
.suda-dr-x{ border: 0; background: none; font-size: 28px; line-height: 1; color: var(--suda-gray-700, #374151); cursor: pointer; }
.suda-dr-pop.is-mobile .suda-dr-weekhead{ display: grid; padding: 8px 16px; margin: 0; border-bottom: 1px solid var(--suda-gray-100, #f3f4f6); }
.suda-dr-pop.is-mobile .suda-dr-body{ flex: 1 1 auto; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 0 16px 16px; }
.suda-dr-pop.is-mobile .suda-dr-months{ display: block; }
.suda-dr-pop.is-mobile .suda-dr-month{ padding-top: 20px; }
.suda-dr-pop.is-mobile .suda-dr-title{ text-align: left; margin-bottom: 10px; }
.suda-dr-pop.is-mobile .suda-dr-week,
.suda-dr-pop.is-mobile .suda-dr-nav{ display: none; }
.suda-dr-pop.is-mobile .suda-dr-foot{ margin-top: 0; padding: 14px 16px calc(14px + env(safe-area-inset-bottom)); }

@media screen and (max-width: 768px){
    .suda-dr-day{ height: 48px; }
    .suda-dr-day span{ width: 40px; height: 40px; font-size: 15px; }
}
@media screen and (max-width: 480px){
    .suda-dr-title{ font-size: 4.17vw; }
    .suda-dr-day{ height: 11.67vw; }
    .suda-dr-day span{ width: 9.58vw; height: 9.58vw; font-size: 3.54vw; }
    .suda-dr-summary-text{ font-size: 3.54vw; }
    .suda-dr-done{ min-width: 25vw; }
}

@media (prefers-reduced-motion: reduce){
    .suda-dr-day span{ transition: none; }
}
