@charset "utf-8";

/* 메인 카테고리 */
.cate-head {padding:30px 0;}
.cate-head .cate-title {margin-bottom:30px; color:#111; font-size:20px; font-weight:600; line-height:1.2; text-align:center;}
.cate-menu {display:grid; grid-template-columns:repeat(6, minmax(0, 1fr)); column-gap:20px; padding:20px 30px; border:1px solid #ddd; border-bottom:0;}
.cate-menu a {display:block; color:#666; font-size:14px; font-weight:400; line-height:17px; text-align:center;}
.cate-menu li.active a {color:#111; font-weight:700;}
.cate-option {display:grid; grid-template-columns:repeat(5, minmax(0, 1fr)); column-gap:20px; padding:20px 30px; border:1px solid #ddd;}
.cate-option .check {justify-content:center;}
.cate-option .check label {gap:5px; color:#666; font-size:14px; line-height:17px;}
.cate-option .check label:before {width:13px; height:13px;}

/* 목록 */
.list-wrap {display:flex; align-items:flex-start; gap:40px; margin-top:27px; padding-bottom:80px;}

/* 필터 */
.filter {flex-shrink:0; width:240px;}
.filter-top {display:flex; align-items:center; justify-content:space-between; height:60px; padding-bottom:20px; border-bottom:1px solid #ddd;}
.filter-top h2 {color:#111; font-size:16px; font-weight:600; line-height:1.2;}
.btn-reset {display:inline-flex; align-items:center; gap:5px; height:24px; padding:4px 11px; border:1px solid #ddd; background:#fff; color:#ec4048; font-size:13px; font-weight:500; line-height:16px;}
.btn-reset img {display:block; width:10px; height:12px;}

.filter-box {border-bottom:1px solid #ddd;}
.filter-box .filter-name {display:flex; align-items:center; justify-content:space-between; width:100%; height:60px; padding:0; border:0; background:transparent; color:#111; font-size:16px; font-weight:600; line-height:1.2; text-align:left;}
.filter-box.is-open .filter-name {height:50px;}
.filter-box .arrow {position:relative; display:block; flex-shrink:0; width:14px; height:8px;}
.filter-box .arrow img {position:absolute; left:50%; top:50%; display:block; width:8px; height:14px; transform:translate(-50%, -50%) rotate(-90deg); transition:transform .2s ease;}
.filter-box.is-open .arrow img {transform:translate(-50%, -50%) rotate(90deg);}
.filter-panel {display:none; padding-bottom:20px;}
.filter-box.is-open .filter-panel {display:block;}

.date-field {position:relative; height:32px;}
.date-field input {display:block; width:100%; height:32px; padding:3px 36px 3px 10px; border:1px solid #ddd; border-radius:0; background:#fff; color:#111; font-size:13px; font-weight:400; line-height:1.2; cursor:pointer;}
.date-field input:focus {border-color:#111; outline:0;}
.date-field img {position:absolute; top:50%; right:6px; display:block; width:24px; height:24px; margin-top:-12px; pointer-events:none;}

/* datepicker (출발일) */
.ui-datepicker.date-pop {z-index:110 !important; width:240px; margin-top:4px; padding:10px; border:1px solid #ebebeb; border-radius:6px; background:#fff; box-shadow:0 2px 8px rgba(170, 170, 170, 0.2);}
.date-pop .ui-datepicker-header {position:relative; height:16px; margin:0 0 10px; padding:0; border-radius:0; background:none;}
.date-pop .ui-datepicker-title {color:#333; font-size:12px; font-weight:700; line-height:16px; text-align:center;}
.date-pop .ui-datepicker-prev,
.date-pop .ui-datepicker-next {top:0; width:16px; height:16px; margin:0; border-radius:0; background:none;}
.date-pop .ui-datepicker-prev {left:0;}
.date-pop .ui-datepicker-next {right:0;}
.date-pop .ui-datepicker-prev:after,
.date-pop .ui-datepicker-next:after {content:""; position:absolute; top:50%; left:50%; width:6px; height:6px; margin:-3px 0 0 -3px; background:url("/html/front/images/common/icon-cal-arrow.svg") center center / 100% 100% no-repeat;}
.date-pop .ui-datepicker-prev:after {transform:rotate(-45deg);}
.date-pop .ui-datepicker-next:after {transform:rotate(135deg);}
.date-pop .ui-datepicker-calendar {table-layout:fixed;}
.date-pop .ui-datepicker-calendar th {height:26px; padding:0; color:#333; font-size:12px; font-weight:500; line-height:26px;}
.date-pop .ui-datepicker-calendar th:first-child {color:#ec4048;}
.date-pop .ui-datepicker-calendar th:last-child {color:#2b7fff;}
.date-pop .ui-datepicker-calendar td {height:26px; padding:0; color:#666; font-size:12px; font-weight:500; line-height:26px;}
.date-pop .ui-datepicker-calendar .ui-state-default {display:block; width:26px; height:26px; margin:0 auto; border-radius:50%; color:#666; font-size:12px; font-weight:500; line-height:26px; text-decoration:none;}
.date-pop .ui-datepicker-calendar .ui-state-highlight {color:#ec4048; font-weight:700;}
.date-pop .ui-datepicker-calendar .ui-state-hover {background:#f5f5f5; color:#111;}
.date-pop .ui-datepicker-calendar .ui-state-active {background:#fb3f4a; color:#fff; font-weight:500;}

.filter-checks {display:flex; flex-direction:column;}
.check {position:relative;}
.check input {position:absolute; width:1px; height:1px; margin:-1px; padding:0; border:0; overflow:hidden; clip:rect(0, 0, 0, 0);}
.check label {display:flex; align-items:center; gap:10px; min-height:30px; color:#111; font-size:14px; font-weight:400; line-height:1.2; cursor:pointer;}
.check label:before {content:""; flex-shrink:0; width:15px; height:15px; border:1px solid #999; border-radius:3px; background:#fff;}
.check input:checked + label:before {border-color:#111; background:#111 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='8' viewBox='0 0 10 8' fill='none'%3E%3Cpath d='M1 3.5L3.6 6.2L9 1' stroke='white' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center center no-repeat;}
.check input:focus + label:before {outline:2px solid highlight;}

.price-list {display:flex; flex-direction:column;}
.price-list button {height:30px; padding:0; border:0; background:transparent; color:#111; font-size:14px; font-weight:400; line-height:30px; text-align:left;}
.price-range {display:flex; align-items:center; gap:5px; margin-top:2px;}
.price-range input {width:80px; height:25px; padding:3px 6px; border:1px solid #ddd; color:#111; font-size:14px; line-height:1.2; text-align:right;}
.price-range span {color:#000; font-size:14px; line-height:1.2;}
.price-range .btn-search {height:25px; padding:5px 7px; border:0; border-radius:5px; background:#111; color:#fff; font-size:13px; font-weight:400; line-height:1;}

/* 선택한 필터 */
.selected-filter {display:flex; align-items:center; gap:10px; min-height:34px; margin-bottom:20px;}
.selected-filter .label {color:#000; font-size:13px; font-weight:500; line-height:1.2;}
.selected-filter .chips {display:flex; align-items:center; gap:10px;}
.chip {display:inline-flex; align-items:center; gap:5px; padding:4px 5px; background:#f5f5f5; color:#111; font-size:13px; font-weight:400; line-height:16px;}
.chip button {width:9px; height:9px; padding:0; border:0; background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='9' viewBox='0 0 9 9' fill='none'%3E%3Cpath d='M1 1L8 8M8 1L1 8' stroke='%23222' stroke-width='1.2' stroke-linecap='round'/%3E%3C/svg%3E") center center no-repeat; text-indent:-9999px; overflow:hidden;}

/* 상품 */
.product-area {flex:1; min-width:0;}
.product {padding-bottom:30px;}
.product + .product {padding-top:30px;}
.product-body {display:flex; align-items:flex-start;}
.product-thumb {flex-shrink:0; width:240px; height:240px; border-radius:20px; overflow:hidden; background:#f3f4f6;}
.product-thumb img {display:block; width:100%; height:100%; object-fit:cover; transition:transform .35s ease;}
.product-thumb:hover img {transform:scale(1.08);}
.product-info {display:flex; flex-direction:column; gap:50px; flex:1; min-width:0; padding-left:20px;}
.product-copy {display:flex; flex-direction:column; gap:10px;}
.product-opt {display:flex; align-items:center; gap:10px;}
.product-region {color:#666; font-size:14px; font-weight:400; line-height:14px;}
.product-tags {display:flex; align-items:center; gap:7px;}
.product-tags li {padding:3px 6px; border-radius:4px; background:#e8f5f7; color:#03a5d1; font-size:13px; font-weight:500; line-height:16px;}
.product-title {color:#111; font-size:18px; font-weight:700; line-height:1.35; text-decoration:none;}
.product-title:hover {text-decoration:underline; text-underline-offset:2px;}
.product-desc {color:#666; font-size:14px; font-weight:400; line-height:20px;}
.product-detail {display:flex; flex-direction:column; gap:20px;}
.product-meta {display:flex; flex-direction:column; gap:16px;}
.depart {display:flex; align-items:center; gap:20px;}
.depart dl {display:flex; align-items:center; gap:10px; color:#666; font-size:14px; font-weight:400; line-height:14px;}
.depart dd {color:#111; font-weight:500;}
.depart > span {width:1px; height:13px; background:#ddd;}
.product-airline {display:flex; align-items:flex-start; gap:10px;}
.product-airline .name {flex-shrink:0; padding-top:1px; color:#666; font-size:14px; font-weight:400; line-height:14px;}
.airline-list {display:flex; flex-wrap:wrap; gap:10px 20px;}
.airline-list li {display:flex; align-items:center; gap:5px; color:#111; font-size:14px; font-weight:500; line-height:16px;}
.airline-list img {display:block; width:16px; height:16px;}
.product-price {display:flex; align-items:flex-end; justify-content:flex-end; gap:5px;}
.product-price span {color:#111; font-size:14px; font-weight:600; line-height:24px;}
.product-price strong {color:#ec4048; font-size:22px; font-weight:700; line-height:25px;}
.product-event {display:flex; align-items:center; gap:10px; margin-top:20px; padding:20px; background:#f5f5f5;}
.product-event em {display:inline-flex; align-items:center; justify-content:center; height:24px; padding:5px 20px; border-radius:100px; background:#444; color:#fff; font-size:12px; font-style:normal; font-weight:600; line-height:14px;}
.product-event p {color:#444; font-size:15px; font-weight:600; line-height:20px;}


/* ==========================================================
   여행 상세
========================================================== */
.detail {padding-bottom:80px;}

/* 상단 정보 */
.dt-head {padding-top:45px;}
.dt-title {display:flex; flex-direction:column; gap:10px;}
.dt-region {color:#666; font-size:14px; font-weight:400; line-height:17px;}
.dt-name {color:#111; font-size:22px; font-weight:700; line-height:26px;}
.dt-info {display:flex; align-items:center; gap:20px; margin-top:20px;}
.dt-info-item {display:flex; align-items:center; gap:10px;}
.dt-info-item dt {color:#666; font-size:14px; font-weight:400; line-height:17px;}
.dt-info-item dd {color:#111; font-size:14px; font-weight:500; line-height:17px;}
.dt-info-item .dt-nights {padding:5px 10px; border:1px solid #111; border-radius:30px; font-size:12px; font-weight:500; line-height:14px;}
.dt-info-item .dt-air {display:flex; align-items:center; gap:5px;}
.dt-info-item .dt-air img {display:block; width:16px; height:16px;}
.dt-info-price dd {display:flex; align-items:center; gap:5px;}
.dt-info-price dd strong {color:#ec4048; font-size:15px; font-weight:700; line-height:18px;}
.dt-info-price dd span {color:#969696; font-size:12px; font-weight:400; line-height:14px;}
.dt-sep {flex-shrink:0; width:1px; height:13px; background:#bbb;}

/* 이미지 */
.dt-gallery {position:relative; margin-top:30px;}
.dt-gallery-swiper {overflow:hidden;}
.dt-gallery li {height:250px; overflow:hidden; border-radius:20px; background:#f3f4f6;}
.dt-gallery li img {display:block; width:100%; height:100%; object-fit:cover;}
.dt-gal-btn {position:absolute; top:50%; -webkit-transform:translateY(-50%); transform:translateY(-50%); z-index:2; width:45px; height:45px; padding:0; border-radius:50%; border: 1px solid #FFF;
 background:rgba(255, 255, 255, 0.60); box-shadow:0 4px 16px 0 rgba(0, 0, 0, 0.10); display:flex; align-items:center; justify-content:center;}
.dt-gal-btn img {position:absolute; display:block; max-width:none;}
.dt-gal-btn.prev {left:-28px;}
.dt-gal-btn.next {right:-28px;}

/* 아이콘 박스 */
.dt-feature {display:flex; flex-direction:column; gap:30px; margin-top:45px; padding:27px 46px; border:1px solid #ddd; border-radius:20px;}
.dt-feature-row {display:flex; align-items:flex-end; justify-content:space-between;}
.dt-feature-row.row2 {justify-content:flex-start; gap:55px;}
.dt-feature-row li {display:flex; flex-direction:column; align-items:center; justify-content:flex-end; gap:20px;}
.dt-feature-row li img {display:block; max-width:none;}
.dt-feature-row li span {color:#111; font-size:16px; font-weight:400; line-height:19px; text-align:center; white-space:nowrap;}

/* 본문 */
.dt-body {display:flex; align-items:flex-start; gap:20px; margin-top:45px;}
.dt-main {display:flex; flex-direction:column; gap:50px; flex:1 1 0; min-width:0;}
.dt-sec {display:flex; flex-direction:column; gap:30px;}
.dt-sec-head {display:flex; align-items:baseline; gap:10px;}
.dt-sec-title {color:#111; font-size:22px; font-weight:700; line-height:26px;}
.dt-sec-sub {color:#666; font-size:14px; font-weight:400; line-height:17px;}

/* 여행일정 */
.dt-flight {overflow:hidden; border:1px solid #f3f4f6; border-radius:12px; box-shadow:0 1px 1.5px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(0, 0, 0, 0.1);}
.dt-flight-row {display:flex; align-items:center; gap:12px; min-height:96px; padding:12px 16px;}
.dt-flight-row + .dt-flight-row {border-top:1px solid #f9fafb;}
.dt-badge {flex-shrink:0; padding:2px 8px; border-radius:100px; background:#155dfc; color:#fff; font-size:10px; font-weight:600; line-height:16px;}
.dt-flight-info {display:flex; flex-direction:column; gap:6px;}
.dt-flight-air {display:flex; align-items:center; gap:6px; font-size:12px; line-height:16px;}
.dt-flight-air img {display:block; width:16px; height:16px;}
.dt-flight-air span {color:#99a1af; font-weight:400;}
.dt-flight-air em {color:#155dfc; font-style:normal; font-weight:500;}
.dt-route {display:flex; align-items:center; gap:10px;}
.dt-pt {display:flex; align-items:center; gap:8px; font-size:16px; line-height:24px;}
.dt-pt strong {color:#101828; font-weight:700;}
.dt-pt span {color:#99a1af; font-weight:400;}
.dt-pt b {color:#364153; font-weight:600;}
.dt-via {display:flex; align-items:center; gap:4px; color:#99a1af; font-size:10px; font-weight:400; line-height:14px;}
.dt-via i {display:block; width:24px; height:1px; background:#e5e7eb;}
.dt-via img {display:block; width:12px; height:12px;}

/* 핵심 포인트 */
.dt-points {display:flex; flex-direction:column; gap:10px;}
.dt-points li {display:flex; align-items:flex-start; gap:8px; color:#111; font-size:14px; font-weight:400; line-height:20px;}
.dt-points li img {display:block; flex-shrink:0; width:15px; height:15px; margin-top:2px;}

/* 상품 정보 */
.dt-prod {display:flex; gap:20px;}
.dt-prod-box {flex:1 1 0; min-width:0; border:1px solid #155dfc;}
.dt-prod-box.ex {border-color:#ec4048;}
.dt-prod-head {display:flex; flex-direction:column; align-items:flex-start; gap:3px; padding:10px 20px; background:#ecf2ff;}
.dt-prod-box.ex .dt-prod-head {background:#fff1f2;}
.dt-prod-head em {color:#155dfc; font-size:13px; font-style:normal; font-weight:500; line-height:normal;}
.dt-prod-box.ex .dt-prod-head em {color:#ff4530;}
.dt-prod-head strong {color:#111; font-size:18px; font-weight:600; line-height:normal;}
.dt-prod-body {min-height:415px; padding:20px; border-top:1px solid #ddd; background:#fff; color:#111; font-size:14px; font-weight:400; line-height:22px;}
.dt-prod-body p {margin-bottom:22px;}
.dt-prod-body p:last-child {margin-bottom:0;}
.dt-prod-body b {font-weight:600;}

/* 일정표 */
.dt-days {display:flex; flex-direction:column;}
.dt-day-head {display:flex; align-items:center; justify-content:space-between; width:100%; height:70px; padding:10px 20px; border:1px solid #ddd; background:#f5f5f5; text-align:left; cursor:pointer;}
.dt-day-head .txt {display:flex; align-items:center; gap:10px; color:#111;}
.dt-day-head .txt strong {font-size:18px; font-weight:600; line-height:22px;}
.dt-day-head .txt em {font-size:14px; font-style:normal; font-weight:400; line-height:17px;}
.dt-day-head img {display:block; width:24px; height:24px;}
.dt-day.is-open .dt-day-head img {transform:rotate(180deg);}
.dt-day-body {display:none; flex-direction:column; gap:20px; padding:30px 20px; border:1px solid #ddd; background:#fff;}
.dt-day.is-open .dt-day-body {display:flex;}

.dt-tl {position:relative; display:flex; flex-direction:column; gap:20px;}
.dt-tl:before {content:""; position:absolute; top:12px; bottom:10px; left:9px; width:1px; margin-left:-0.5px; background:#ddd;}
.dt-tl li {position:relative;}
.tl-row {display:flex; align-items:flex-start; gap:12px; padding:0 4px;}
.tl-row + .tl-row {margin-top:2px;}
.tl-row .mk {position:relative; z-index:1; display:block; flex-shrink:0; width:10px; height:21px;}
.tl-row .sp {display:block; flex-shrink:0; width:10px; height:14px;}
.tl-row .dot {position:relative; z-index:1; display:flex; align-items:center; justify-content:center; flex-shrink:0; width:10px; height:20px;}
.tl-row .dot i {display:block; box-sizing:border-box; width:8px; height:8px; border:2px solid #aaa; border-radius:50%; background:#fff;}
.tl-row .tl-loc {color:#111; font-size:14px; font-weight:600; line-height:20.8px;}
.tl-row p {color:#111; font-size:14px; font-weight:400; line-height:19.2px;}
.tl-row p.semi {line-height:20.8px;}
.tl-row p b {font-weight:600;}

.dt-spot {flex:1 1 0; min-width:0; max-width:800px; display:flex; flex-direction:column; gap:10px; padding-bottom:20px; border:1px solid #ddd; background:#fff;}
.spot-tit {display:flex; align-items:center; justify-content:space-between; height:70px; padding:0 20px; border-bottom:1px solid #ddd;}
.spot-tit .txt {display:flex; align-items:center; gap:10px; color:#111; font-size:14px;}
.spot-tit .txt strong {font-weight:600; line-height:20.8px;}
.spot-tit .txt span {font-weight:400; line-height:24px;}
.spot-info {display:flex; flex-direction:column; gap:20px; padding:10px 20px;}
.spot-img {display:flex; gap:20px;}
.spot-img img {display:block; flex:1 1 0; min-width:0; max-width:240px; height:auto; aspect-ratio:3 / 2; object-fit:cover;}
.spot-info p {color:#111; font-size:14px; font-weight:400; line-height:24px;}
.spot-info p b {font-weight:600;}
.dt-spot.is-fold {padding-bottom:0;}
.dt-spot.is-fold .spot-tit {border-bottom:0;}
.dt-spot.is-fold .spot-info {display:none;}

.dt-btn-line {flex-shrink:0; padding:3px 8px; border:0; border-radius:100px; background:none; color:#666; font-size:12px; font-weight:400; line-height:14px; text-decoration:underline; cursor:pointer;}
.dt-btn-line.small {font-size:10px; letter-spacing:-0.2px;}

.dt-etc {width:100%;}
.dt-etc-row {display:flex; align-items:flex-start; padding:20px 0; border-top:1px solid #ddd; border-bottom:1px solid #ddd;}
.dt-etc-tit {display:flex; align-items:center; justify-content:center; gap:4px; flex-shrink:0; width:100px; height:18px; padding:0 20px;}
.dt-etc-tit img {display:block; width:13px; height:13px;}
.dt-etc-tit strong {color:#111; font-size:14px; font-weight:600; line-height:18px; white-space:nowrap;}
.dt-etc-list {padding:0 12px;}
.dt-hotel {display:flex; flex-direction:column; justify-content:center; gap:10px;}
.dt-hotel-info {color:#111; font-size:14px; font-weight:600; line-height:20.8px;}
.dt-hotel-info em {color:#155dfc; font-style:normal;}
.dt-hotel-item {display:flex; align-items:center; gap:7px;}
.dt-hotel-item strong {color:#111; font-size:14px; font-weight:600; line-height:20.8px;}
.dt-hotel-item span {color:#111; font-size:12px; font-weight:400; line-height:20.8px;}
.dt-stars {display:flex; align-items:center; width:70px; height:14px;}
.dt-stars img {display:block; width:14px; height:14px;}
.dt-hotel-etc {line-height:20.8px;}
.dt-hotel-etc strong {color:#111; font-size:14px; font-weight:600; line-height:20.8px;}
.dt-meal {display:flex; align-items:center; justify-content:space-between; width:586px;}
.dt-meal > div {display:flex; align-items:center; gap:10px;}
.dt-meal p {width:130px; color:#111; font-size:14px; font-weight:400; line-height:20.8px;}
.dt-chip {padding:3px 8px; border:1px solid #ccc; border-radius:100px; color:#666; font-size:12px; font-weight:400; letter-spacing:-0.2px; line-height:normal;}

/* 여행 전 확인사항 */
.dt-tab {display:flex;}
.dt-tab li {flex:1 1 0; min-width:0;}
.dt-tab li + li {margin-left:-1px;}
.dt-tab button {display:block; width:100%; height:50px; border:1px solid #ddd; background:#fff; color:#666; font-size:16px; font-weight:400; line-height:19px; cursor:pointer;}
.dt-tab li.active {position:relative;}
.dt-tab li.active button {border-color:#111; background:#111; color:#fff; font-weight:600;}
.dt-tab-cnt {display:none; min-height:60px; padding:20px; border-bottom:1px solid #ddd; color:#111; font-size:14px; font-weight:400; line-height:22px;}
.dt-tab-cnt.is-on {display:block;}
.dt-tab-cnt p {white-space:pre-line;}

/* 우측 예약 패널 */
.dt-side {position:sticky; top:var(--header-height); display:flex; flex-direction:column; gap:10px; flex:none; width:300px; padding:20px 0;}
.dt-when {display:flex; flex-direction:column; gap:10px; padding:16px; border:1px solid #ddd; border-radius:10px;}
.dt-when dl {display:flex; align-items:center; justify-content:space-between; height:30px;}
.dt-when dl:first-of-type {height:31px; border-bottom:1px solid #f3f4f6;}
.dt-when dt {color:#2a2a2a; font-size:14px; font-weight:400; line-height:17px;}
.dt-when dd {color:#111; font-size:14px; font-weight:500; line-height:17px;}
.dt-btn-change {display:block; width:100%; height:42px; border:0; border-radius:10px; background:#155dfc; color:#fff; font-size:15px; font-weight:600; line-height:18px; cursor:pointer;}

.dt-price {overflow:hidden; border:1px solid #ddd; border-radius:10px;}
.dt-count {display:flex; align-items:center; justify-content:space-between; padding:15px; border-bottom:1px solid #f3f4f6;}
.dt-count .tit {display:flex; align-items:center; gap:4px; color:#666; font-size:14px; font-weight:400; line-height:17px;}
.dt-count .tit img {display:block; width:14px; height:14px;}
.dt-count .amt {display:flex; align-items:baseline; gap:4px; margin-top:6px;}
.dt-count .amt span {color:#666; font-size:12px; font-weight:400; line-height:14px;}
.dt-count .amt strong {color:#111; font-size:16px; font-weight:700; line-height:19px;}
.stepper {display:flex; align-items:center; width:99px; height:30px;}
.stepper button {flex-shrink:0; width:32px; height:30px; padding:0; border:0; background:none; cursor:pointer;}
.stepper button img {display:block; width:32px; height:30px;}
.stepper .plus img {transform:rotate(180deg);}
.stepper .num {display:flex; align-items:center; justify-content:center; box-sizing:border-box; width:35px; height:30px; border-top:1px solid #ddd; border-bottom:1px solid #ddd; color:#111; font-size:14px; font-weight:500;}
.dt-total {display:flex; align-items:center; justify-content:space-between; height:55px; padding:0 15px; background:#f5f5f5;}
.dt-total .tit {color:#666; font-size:14px; font-weight:400; line-height:17px;}
.dt-total p {display:flex; align-items:baseline; gap:6px;}
.dt-total p span {color:#666; font-size:12px; font-weight:400; line-height:14px;}
.dt-total p strong {color:#ec4048; font-size:22px; font-weight:700; line-height:26px;}
.dt-btn-book {display:block; width:100%; padding:12px 13px; border:0; border-radius:10px; background:#111; color:#fff; font-size:15px; font-weight:600; line-height:21px; cursor:pointer;}

/* 출발일 선택 모달 */
html.modal-opened {overflow:hidden;}
.dm-wrap {display:none; position:fixed; top:0; left:0; z-index:1000; align-items:center; justify-content:center; width:100%; height:100%;}
.dm-wrap.is-open {display:flex;}
.dm-dim {position:absolute; top:0; left:0; width:100%; height:100%; background:rgba(0, 0, 0, 0.5); -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px);}
.dm-popup {position:relative; width:800px; max-height:calc(100vh - 40px); overflow:hidden; border-radius:14px; background:#fff; box-shadow:0 25px 25px rgba(0, 0, 0, 0.25);}
.dm-top {display:flex; align-items:center; justify-content:space-between; padding:15px 21px 14px; border-bottom:1px solid #f3f4f6;}
.dm-top h3 {color:#111; font-size:14px; font-weight:700; line-height:17px;}
.dm-close {display:block; width:26px; height:26px; padding:0; border:0; background:none; cursor:pointer;}
.dm-close img {display:block; width:26px; height:26px;}
.dm-body {display:flex; height:555px;}

.dm-cal {flex-shrink:0; width:340px;}
.dm-cal-head {display:flex; align-items:center; justify-content:center; gap:75px; padding:14px 15px;}
.dm-cal-head button {display:flex; align-items:center; gap:4px; padding:0; border:0; background:none; color:#666; font-size:13px; font-weight:500; line-height:16px; cursor:pointer;}
.dm-cal-head button img {display:block; width:14px; height:14px;}
.dm-cal-head strong {color:#111; font-size:15px; font-weight:700; line-height:18px;}
.dm-week {display:grid; grid-template-columns:repeat(7, minmax(0, 1fr)); padding:0 10.5px 3.5px;}
.dm-week li {color:#666; font-size:12px; font-weight:700; line-height:17.5px; text-align:center;}
.dm-days {display:grid; grid-template-columns:repeat(7, minmax(0, 1fr)); padding:0 10.5px 10.5px;}
.dm-day {display:flex; flex-direction:column; align-items:center; width:100%; height:50px; padding:3.5px 0 0; border:0; background:none; cursor:default;}
.dm-day .n {display:block; width:28px; height:28px; border-radius:50%; color:#aaa; font-size:12px; font-weight:500; line-height:28px; text-align:center;}
.dm-day .p {display:block; margin-top:1px; color:#2b7fff; font-size:11px; font-weight:400; line-height:10px;}
.dm-day.is-price {cursor:pointer;}
.dm-day.is-price .n {color:#1e2939; font-weight:600;}
.dm-day.is-price:hover .n {background:#ecf2ff;}
.dm-day.is-sel .n,
.dm-day.is-sel:hover .n {background:#2b7fff; color:#fff;}

.dm-list {display:flex; flex-direction:column; flex-shrink:0; width:460px; border-left:1px solid #f3f4f6;}
.dm-list-head {padding:14px 17.5px 15px; border-bottom:1px solid #f3f4f6;}
.dm-list-head strong {display:block; color:#101828; font-size:14px; font-weight:700; line-height:17px;}
.dm-items {flex:1 1 auto; min-height:0; overflow-y:auto;}
.dm-items li {display:flex; align-items:center; height:127px; padding:0 17.5px; border-bottom:1px solid #f3f4f6;}
.dm-items .d {flex-shrink:0; width:59.5px; color:#101828; font-size:14px; font-weight:700; line-height:17px;}
.dm-items .info {display:flex; flex-direction:column; gap:10px; width:365px;}
.dm-items .air {display:flex; align-items:center; gap:5px; color:#111; font-size:12px; font-weight:500; line-height:16px;}
.dm-items .air img {display:block; width:16px; height:16px;}
.dm-items .term {display:flex; align-items:baseline; gap:8px;}
.dm-items .term strong {color:#364153; font-size:14px; font-weight:500; line-height:17px;}
.dm-items .term em {color:#aaa; font-size:12px; font-style:normal; font-weight:400; line-height:14px;}
.dm-items .pay {display:flex; align-items:center; justify-content:flex-end; gap:7px;}
.dm-items .pay span {color:#111; font-size:13px; font-weight:400; line-height:16px;}
.dm-items .pay strong {color:#ec4048; font-size:18px; font-weight:700; line-height:22px;}
.dm-select {padding:5px 14px; border:0; border-radius:20px; background:#101828; color:#fff; font-size:12px; font-weight:700; line-height:16px; cursor:pointer;}

/* 공통 텍스트 색상 */
.text-red {color:#ec4048 !important;}
