/* ========================================
   item.form 반응형 분리 CSS
   ======================================== */

@media (max-width: 1300px) {
    body.sub-body {
        padding-top: 90px !important;
        margin-top: 0 !important;
    }

    #sit_info{
        padding-left: 0;
        padding-right: 0;
    }

    .tab_list li{
        padding: 0;
    }

    .anchor_info{
        padding-top: 0;
    }
}

/* --- Tablet (max-width: 1024px) --- */
@media (max-width: 1024px) {

    body.sub-body {
        padding-top: 90px !important;
        margin-top: 0 !important;
    }


    #sit_ov_from {
        padding-top: 30px;
    }

    #sit_ov_wrap {
        gap: 40px;
        grid-template-columns: 1fr 1fr;
    }

    #sit_pvi {
        top: 100px;
    }

    #sit_title {
        font-size: 22px;
    }

    .price_area {
        margin-bottom: 25px;
    }

    .rec_list li {
        width: calc(33.333% - 10px);
    }

    .rec_nav button {
        width: 28px;
        height: 28px;
    }

    .rec_nav button i {
        font-size: 12px;
    }

    #sit_pvi_thumb {
        grid-template-columns: repeat(6, 1fr);
        gap: 8px;
        margin-bottom: 12px;
    }
}

/* --- Mobile (max-width: 768px) --- */
@media (max-width: 768px) {

    /* 레이아웃 */
    #sit_ov_wrap {
        display: block;
        gap: 30px;
        margin-bottom: 30px;
    }

    #sit_pvi {
        position: relative;
        top: 0;
        margin-bottom: 30px !important;
    }

    #sit_pvi,
    #sit_ov {
        width: 100% !important;
    }

    #sit_ov {
        padding: 0 !important;
    }

    /* 타이틀 */
    #sit_title {
        font-size: 20px;
        padding-right: 50px;
        margin: 0 0 8px;
    }

    /* 가격 영역 */
    .price_area {
        flex-wrap: wrap;
        gap: 10px;
        margin-bottom: 20px;
    }

    .price_area .discount_rate {
        font-size: 24px;
    }

    .price_area .sit_tot_price {
        font-size: 24px;
    }

    .price_area .sit_cust_price {
        font-size: 14px;
    }

    /* 버튼 영역 */
    #sit_ov_btn {
        display: flex;
        flex-direction: row;
        gap: 8px;
    }

    #sit_ov_btn button {
        flex: 1 1 0;
        height: 48px;
        font-size: 15px;
        font-weight: 600;
        border-radius: 6px;
    }

    .sit_btn_cart,
    .sit_btn_buy {
        width: auto;
    }

    /* 라디오 박스 */
    .custom_radio_wrap {
        margin-bottom: 18px;
    }

    .radio_box {
        padding: 14px 16px;
    }

    .radio_visual {
        width: 18px;
        height: 18px;
        margin-right: 12px;
    }

    .radio_info {
        flex-direction: column;
        gap: 4px;
    }

    .r_count {
        font-size: 15px;
        margin-right: 0;
    }

    .r_price {
        font-size: 16px;
        margin-right: 0;
    }

    .r_discount {
        font-size: 12px;
    }

    /* 옵션 선택 */
    .custom_supply_wrap select {
        height: 45px;
        font-size: 13px;
        padding: 0 12px;
    }

    /* 선택된 옵션 */
    .rebuilt_li {
        padding: 16px;
        gap: 12px;
    }

    .opt_name {
        font-size: 14px;
    }

    #sit_opt_added .qty_box {
        height: 32px !important;
    }

    #sit_opt_added .qty_box button {
        width: 32px !important;
    }

    #sit_opt_added .qty_box input {
        width: 40px !important;
        font-size: 13px !important;
    }

    .row_total_price {
        font-size: 16px;
    }

    /* 총 가격 */
    .total_price_wrap {
        margin-top: 25px;
        padding-top: 15px;
    }

    .total_price_wrap span {
        font-size: 15px;
    }

    .total_price_wrap strong {
        font-size: 28px;
    }

    /* 크리에이터 정보 */
    .title_area {
        padding-right: 50px;
        margin-bottom: 12px;
    }

    .creator_img {
        width: 28px;
        height: 28px;
        margin-right: 6px;
    }

    .creator_name {
        font-size: 14px;
    }

    .creator_tag {
        font-size: 12px;
        padding: 2px 5px;
    }

    .btn_creator_info {
        padding: 0 8px;
        height: 24px;
        font-size: 12px;
    }

    .star_score_area {
        gap: 8px;
        margin-top: 10px;
        margin-bottom: 10px;
        font-size: 13px;
    }

    .stars {
        font-size: 13px;
    }

    .sit_desc {
        font-size: 13px;
        margin-bottom: 15px;
    }

    /* 헤더 액션 */
    .header_action_group {
        top: 10px;
        right: 10px;
        gap: 8px;
    }

    .btn_icon_action {
        width: 36px;
        height: 36px;
        font-size: 16px;
    }

    /* 추천 상품 */
    .rec_header h3 {
        font-size: 15px;
    }

    .rec_list {
        gap: 12px;
    }

    .rec_list li {
        width: calc(50% - 6px);
    }

    .rec_img {
        margin-bottom: 6px;
    }

    .rec_info .rtitle {
        font-size: 12px;
    }

    .rec_info .rdesc {
        font-size: 11px;
    }

    .rec_info .rprice {
        font-size: 12px;
    }

    .rec_nav button {
        width: 28px;
        height: 28px;
    }

    .rec_nav button i {
        font-size: 12px;
    }

    /* 썸네일 */
    #sit_pvi_big {
        margin-bottom: 12px;
    }

    #sit_pvi_thumb {
        grid-template-columns: repeat(5, 1fr);
        gap: 6px;
        margin-bottom: 12px;
    }

    /* 정보 테이블 */
    .info-table {
        margin-bottom: 20px;
    }

    .info-row {
        padding: 10px 0;
        flex-direction: column;
        align-items: flex-start;
    }

    .info-label {
        width: 100%;
        margin-bottom: 5px;
        font-size: 13px;
    }

    .info-value {
        font-size: 13px;
    }

    /* 예약 시스템 */
    .reservation-section {
        margin-bottom: 20px;
    }

    .reservation-section h3 {
        font-size: 15px;
        margin-bottom: 15px;
    }

    .reservation-item {
        margin-bottom: 15px;
    }

    .reservation-item label {
        font-size: 13px;
        margin-bottom: 6px;
    }

    .date-input {
        height: 44px;
        font-size: 13px;
    }

    .calendar-modal-content {
        padding: 20px;
        border-radius: 8px;
        max-width: 95%;
    }

    .calendar-header h4 {
        font-size: 16px;
    }

    .calendar-day {
        font-size: 16px;
    }

    .calendar-day .available-badge {
        font-size: 10px;
        padding: 1px 2px;
    }

    #time-slots-container .time-badge-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* --- Mobile Small (max-width: 480px) --- */
@media (max-width: 480px) {

    /* 레이아웃 */
    #sit_ov_wrap {
        margin-bottom: 20px;
        gap: 20px;
    }

    /* 텍스트 */
    #sit_title {
        font-size: 18px;
        padding-right: 40px;
        margin: 8px 0 12px;
    }

    /* 가격 */
    .price_area {
        padding-bottom: 15px;
        margin-bottom: 20px;
    }

    .price_area .discount_rate {
        font-size: 20px;
        margin-right: 8px;
    }

    .price_area .sit_tot_price {
        font-size: 20px;
    }

    /* 버튼 */
    #sit_ov_btn {
        display: flex;
        flex-direction: row;
        gap: 8px;
        margin-top: 20px;
    }

    #sit_ov_btn button {
        flex: 1 1 0;
        height: 44px;
        font-size: 13px;
        font-weight: 600;
        border-radius: 6px;
        padding: 0 15px;
    }

    .sit_btn_cart,
    .sit_btn_buy {
        width: auto;
    }

    /* 라디오 박스 */
    .custom_radio_wrap {
        margin-bottom: 15px;
        border-radius: 6px;
    }

    .radio_box {
        padding: 12px 13px;
        border-bottom: 1px solid #f0f0f0;
    }

    .radio_box:last-child {
        border-bottom: none;
    }

    .radio_visual {
        width: 16px;
        height: 16px;
        margin-right: 10px;
    }

    .radio_box.active .radio_visual::after {
        width: 8px;
        height: 8px;
    }

    .radio_info {
        gap: 3px;
    }

    .r_count {
        font-size: 13px;
        margin-right: 0;
    }

    .r_price {
        font-size: 14px;
        margin-right: 0;
    }

    .r_discount {
        font-size: 11px;
    }

    /* 옵션 선택 */
    .custom_supply_wrap {
        margin-bottom: 15px;
    }

    .custom_supply_wrap select {
        height: 40px;
        font-size: 12px;
        padding: 0 10px;
        border-radius: 6px;
    }

    /* 선택된 옵션 */
    #sit_sel_option {
        margin-bottom: 20px;
    }

    .rebuilt_li {
        padding: 12px;
        margin-bottom: 8px;
        gap: 10px;
        border-radius: 6px;
    }

    .opt_header {
        gap: 8px;
    }

    .opt_name {
        font-size: 12px;
        width: 85%;
    }

    .btn_opt_del {
        width: 20px !important;
        height: 20px !important;
        min-width: 20px !important;
    }

    .opt_footer {
        gap: 8px;
    }

    #sit_opt_added .qty_box {
        height: 30px !important;
    }

    #sit_opt_added .qty_box button {
        width: 30px !important;
        font-size: 0 !important;
    }

    #sit_opt_added .qty_box button::after {
        font-size: 9px !important;
    }

    #sit_opt_added .qty_box input {
        width: 36px !important;
        font-size: 12px !important;
    }

    .row_total_price {
        font-size: 14px;
    }

    /* 총 가격 */
    .total_price_wrap {
        margin-top: 20px;
        padding-top: 12px;
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }

    .total_price_wrap span {
        font-size: 13px;
    }

    .total_price_wrap strong {
        font-size: 24px;
    }

    /* 크리에이터 정보 */
    .title_area {
        padding-right: 40px;
        margin-bottom: 10px;
    }

    .creator_row {
        flex-wrap: wrap;
        gap: 8px;
    }

    .creator_img {
        width: 24px;
        height: 24px;
        margin-right: 4px;
    }

    .creator_name {
        font-size: 12px;
        margin-right: 0;
    }

    .creator_tag {
        font-size: 11px;
        padding: 1px 4px;
        order: 3;
    }

    .btn_creator_info {
        padding: 0 6px;
        height: 22px;
        font-size: 11px;
        order: 2;
    }

    .star_score_area {
        gap: 6px;
        margin-top: 8px;
        margin-bottom: 8px;
        font-size: 12px;
    }

    .stars {
        font-size: 12px;
    }

    .score_num {
        font-size: 12px;
    }

    .review_cnt {
        font-size: 11px;
    }

    .sit_desc {
        font-size: 12px;
        margin-bottom: 12px;
        line-height: 1.5;
    }

    /* 헤더 액션 */
    .header_action_group {
        gap: 8px;
    }

    .btn_icon_action {
        width: 32px;
        height: 32px;
        font-size: 14px;
    }

    /* 추천 상품 */
    .rec_header {
        margin-bottom: 15px;
    }

    .rec_header h3 {
        font-size: 14px;
    }

    .rec_list {
        gap: 10px;
    }

    .rec_list li {
        width: calc(50% - 5px);
    }

    .rec_img {
        margin-bottom: 6px;
    }

    .rec_info .rtitle {
        font-size: 11px;
        margin-bottom: 2px;
    }

    .rec_info .rdesc {
        font-size: 10px;
        margin-bottom: 4px;
        height: 2.2em;
    }

    .rec_info .rprice {
        font-size: 11px;
    }

    .rec_nav {
        border-radius: 3px;
    }

    .rec_nav button {
        width: 24px;
        height: 24px;
    }

    .rec_nav button i {
        font-size: 10px;
    }

    /* 썸네일 */
    #sit_pvi_big {
        margin-bottom: 10px;
    }

    #sit_pvi_thumb {
        grid-template-columns: repeat(4, 1fr);
        gap: 5px;
        margin-bottom: 10px;
    }

    #sit_pvi_thumb li {
        border-width: 1px;
    }

    /* 정보 테이블 */
    .info-row {
        padding: 8px 0;
    }

    .info-label {
        font-size: 12px;
        font-weight: 600;
    }

    .info-value {
        font-size: 12px;
    }

    /* 예약 시스템 */
    .reservation-section h3 {
        font-size: 14px;
        margin-bottom: 12px;
    }

    .reservation-item label {
        font-size: 12px;
        margin-bottom: 5px;
    }

    .date-input {
        height: 40px;
        padding: 0 12px;
        font-size: 12px;
    }

    .calendar-modal-content {
        padding: 15px;
        width: 95%;
        max-width: 90%;
    }

    .calendar-header h4 {
        font-size: 14px;
    }

    .calendar-grid {
        gap: 4px;
    }

    .calendar-day {
        font-size: 14px;
    }

    .calendar-day.header {
        font-size: 12px;
    }

    .calendar-day .available-badge {
        font-size: 9px;
        padding: 1px;
        letter-spacing: -0.02em;
    }

    #time-slots-container .time-badge-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .experience-reservation-time-range .time-range-summary-row {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .experience-reservation-time-range .time-range-key {
        min-width: 72px;
    }

    .experience-reservation-time-range .time-range-input {
        text-align: left;
    }

    .nav_path_left {
        font-size: 12px;
    }
}

@media (max-width: 768px) {
    .demographic-inputs {
        grid-template-columns: 1fr;
        gap: 12px;
    }
}

/* === 인구통계 선택기 반응형 스타일 === */
@media (max-width: 768px) {
    .demographic-selector {
        gap: 10px;
    }

    .demographic-row {
        flex-direction: column;
        gap: 10px;
        padding: 10px;
        align-items: flex-start;
    }

    .demographic-label {
        min-width: auto;
        width: 100%;
        font-size: 13px;
    }

    .demographic-control {
        width: 100%;
        flex-wrap: wrap;
        gap: 8px;
    }

    .demographic-control .qty-minus,
    .demographic-control .qty-plus {
        flex: 0 0 auto;
    }

    .demographic-qty {
        flex: 1;
        min-width: 50px;
    }

    .demographic-price {
        font-size: 12px;
        width: 100%;
        order: 10;
        text-align: left;
        white-space: normal;
    }

}

@media (max-width: 480px) {
    .demographic-row {
        padding: 8px;
        gap: 8px;
    }

    .demographic-control {
        gap: 6px;
        justify-content: space-between;
    }

    .demographic-control .qty-minus,
    .demographic-control .qty-plus {
        width: 28px;
        height: 28px;
        font-size: 12px;
        flex: 0 0 28px;
    }

    .demographic-qty {
        flex: 1;
        min-width: auto;
        padding: 5px 4px;
        font-size: 13px;
    }

    .demographic-price {
        font-size: 11px;
        width: 100%;
        margin-top: 4px;
    }

    .demographic-label {
        font-size: 12px;
        font-weight: 700;
    }

    .demographic-warning {
        font-size: 12px;
        margin-top: 6px;
        padding: 6px 8px;
        border-left: 3px solid;
    }

    .demographic-warning.min-warning {
        border-left-color: #f57c00;
    }

    .demographic-warning.max-warning {
        border-left-color: #d32f2f;
    }
}
