/* 변수 */
:root {
    /* color */
    --main: #EE3123;
    --mian-text: #DDDDDD;
    --support-text: #AAAAAA;
    --ssupport-text: #707070;
    --icon: #CCCCCC;
    --blk-btn: #00000080;
    --red-btn: #EE312380;
    --Hblk-btn: #000000;
    --Hred-btn: #EE3123;
    /* font */
    --px12: 0.75em;
    --px14: 0.875em;
    --px16: 1em;
    --px20: 1.25em;
    --px24: 1.5em;
    --px28: 1.75em;
    --px32: 2em;
    --px40: 2.5em;
    /* etc */
    --radius: 1.75em;
}

section {
    padding: 50px 0 100px;
}

/* 페이지 제목 */
.page-section {
    background: #222222;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25);
}

.page-inner {
    max-width: 1700px;
    margin: 0 auto;
    padding: 0 50px;
}

.page-inner>.page-wrap {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    height: 100px;
    padding-bottom: 20px;
}

/* 페이지명 */
.page-wrap>h2 {
    font-size: 32px;
    font-weight: 700;
}

/* 페이지경로 */
.page-wrap>.location>span {
    font-size: 12px;
    color: #707070;
}

.page-wrap>.location>span:last-child {
    color: #DDD;
    font-weight: 600;
}

.page-wrap>.location>span>a:hover {
    text-decoration: underline;
}

/* 아래에 작업 */
/* 날짜바 */
button {
    background: none;
    border: none;
}

.date-bar {
    display: flex;
    align-items: center;
    gap: 4px;
    height: 52px;
    padding: 0 64px;
    background: #1a1a1a;
    border-bottom: 1px solid #2a2a2a;
    flex-shrink: 0;
    margin-left: -50px;
    margin-right: -50px;
}

.month {
    font-size: var(--px12);
    color: #666;
    background: #2a2a2a;
    border-radius: 20px;
    padding: 3px 10px;
    white-space: nowrap;
    margin-right: 6px;
}

.date-arrow {
    color: #666;
    font-size: var(--px20);
    padding: 4px 8px;
    line-height: 1;
}

.date-list {
    display: flex;
    gap: 2px;
    flex: 1;
    overflow: hidden;
    justify-content: space-between;
}

.date-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 6px 14px;
    border-radius: 8px;
    min-width: 54px;
    color: #aaa;
    flex-shrink: 0;
}

.date-item.active {
    background: var(--Hred-btn);
    color: var(--mian-text);
    font-weight: 700;
}

.date-item .d-num {
    font-size: var(--px16);
    font-weight: 700;
    line-height: 1.2;
}

.date-item .d-week {
    font-size: 10px;
    opacity: .65;
}

.date-item.sat .d-week {
    color: #7eb8ff;
    opacity: 1;
}

.date-item.sun .d-week {
    color: #ff7b7b;
    opacity: 1;
}

.date-cal {
    border: 1px solid #2a2a2a;
    border-radius: 8px;
    color: #666;
    padding: 6px 10px;
    font-size: var(--px14);
    margin-left: 6px;
}

/* 4단 그리드 레이아웃 */
.reserv-layout {
    display: grid;
    grid-template-columns: 68px 240px 260px 1fr;
    height: calc(100vh - 80px - 100px - 52px - 80px);
    min-height: 400px;
    overflow: hidden;
    margin-left: -50px;
    margin-right: -50px;
}

/* 스텝바 */
.step-bar {
    background: #1a1a1a;
    border-right: 1px solid #2a2a2a;
    display: flex;
    flex-direction: column;
}

.step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 22px 0;
    border-bottom: 1px solid #2a2a2a;
    border-left: 3px solid transparent;
}

.step.active {
    border-left-color: var(--Hred-btn);
}

.step-num {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--px12);
    font-weight: 700;
    background: #2a2a2a;
    color: #666;
}

.step.active .step-num {
    background: var(--main);
    color: var(--mian-text);
}

.step-label {
    font-size: var(--px12);
    color: #666;
    writing-mode: vertical-rl;
    letter-spacing: .05em;
}

.step.active .step-label {
    color: var(--mian-text)
}

/* 영화목록 */
.movie-panel {
    background: #1a1a1a;
    border-right: 1px solid #2a2a2a;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

/* 탭 */
.filter-tab {
    display: flex;
    border-bottom: 1px solid #2a2a2a;
    padding: 0 12px;
    flex-shrink: 0;
    gap: 5px;
}

.ftab {
    padding: 10px 8px;
    font-size: var(--px12);
    color: #666;
    border-bottom: 2px solid transparent;
    white-space: nowrap;
}

.ftab.active {
    color: var(--Hred-btn);
}

/* 영화리스트 */
.movie-list {
    overflow-y: auto;
    flex: 1;
    min-height: 0;
}

.movie-list::-webkit-scrollbar {
    width: 3px;
}

.movie-list::-webkit-scrollbar-thumb {
    background: #2a2a2a;
}

.movie-wrap {
    display: flex;
    align-items: center;
    padding: 11px 14px;
    gap: 10px;
    border-left: 3px solid transparent;
}

.movie-wrap.active {
    /* background: var(--red-btn); */
    border-left-color: var(--main);
}

.movie-wrap:hover:not(.active) {
    background: var(--blk-btn);
}

/* 연령대 */
.age-badge {
    width: 26px;
    height: 26px;
    border-radius: 5px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--px14);
    font-weight: 700;
    flex-shrink: 0;
}

.age-12 {
    background: #f5a623;
    color: #fff;
}

.age-15 {
    background: #f5623a;
    color: #fff;
}

.age-all {
    background: #27ae60;
    color: #fff;
}

.age-19 {
    background: #c0392b;
    color: #fff;
}

.movie-title {
    font-size: var(--px14);
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: var(--mian-text);
}

.heart img {
    width: 25px;
    height: 25px;
}

/* 포스터 */
.poster-wrap {
    border-top: 1px solid #2a2a2a;
    padding: 12px;
    display: flex;
    grid-auto-flow: 8px;
    flex-shrink: 0;
    overflow-x: auto;
    flex-wrap: nowrap;
    gap: 15px;
}

.poster-wrap::-webkit-scrollbar {
    height: 2px;
}

.poster-wrap::-webkit-scrollbar-thumb {
    background: #2a2a2a;
}

.poster-thumb {
    width: 58px;
    height: 82px;
    border-radius: 8px;
    overflow: hidden;
    flex-shrink: 0;
    position: relative;
}

.poster-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.poster-remove {
    position: absolute;
    top: 3px;
    right: 3px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--blk-btn);
    color: var(--mian-text);
    font-size: 9px;
    text-align: center;
    opacity: 0;
    transition: opacity .15s;
}

.poster-thumb:hover .poster-remove {
    opacity: 1;
}

/* + 추가버튼 */
.poster-add {
    width: 58px;
    height: 82px;
    border-radius: 8px;
    border: 1px dashed #2a2a2a;
    color: #666;
    font-size: var(--px20);
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.poster-add:hover {
    background: rgba(255, 255, 255, 0.3);
    transition: 0.5s;
}

/* 극장선택 */
.theater-panel {
    background: #1a1a1a;
    border-right: 1px solid #2a2a2a;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.theater-body {
    display: grid;
    grid-template-columns: 90px 1fr;
    flex: 1;
    min-height: 0;
    overflow: hidden;
}

.theater-body {
    display: grid;
    grid-template-columns: 90px 1fr;
    flex: 1;
    min-height: 0;
    overflow: hidden;
}

/* 지역리스트 */
.region-list {
    border-right: 1px solid #2a2a2a;
    overflow-y: auto;
    min-height: 0;
}

.region-list::-webkit-scrollbar {
    width: 3px;
}

.region-list::-webkit-scrollbar-thumb {
    background: #2a2a2a;
}

.region-item {
    display: block;
    width: 100%;
    padding: 13px 10px;
    font-size: 11px;
    color: #666;
    border-bottom: 1px solid #2a2a2a;
    border-left: 3px solid transparent;
    text-align: left;
    line-height: 1.3;
}

.region-item.active {
    color: #fff;
    /* background: var(--Hred-btn); */
    border-left-color: var(--main);
}

.region-item:hover:not(.active) {
    background: #222;
    color: #aaa;
}

/* 극장리스트 */
.cinema-list {
    overflow-y: auto;
    min-height: 0;
}

.cinema-list::-webkit-scrollbar {
    width: 3px;
}

.cinema-list::-webkit-scrollbar-thumb {
    background: #2a2a2a;
}

.cinema-item {
    display: block;
    width: 100%;
    padding: 11px 14px;
    font-size: var(--px12);
    border-bottom: 1px solid #2a2a2a;
    border-left: 3px solid transparent;
    text-align: left;
    color: var(--ssupport-text);
}

.cinema-item.active {
    color: #fff;
    background: var(--red-btn);
    /* border-left-color: var(--main); */
}

.cinema-item:hover:not(.active) {
    background: #222;
    color: #aaa;
}

/* 시간표 */
.time-table {
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
    background: #111;
}

.time-table::-webkit-scrollbar {
    width: 3px;
}

.time-table::-webkit-scrollbar-thumb {
    background: #2a2a2a;
}

.tt-filter {
    display: flex;
    align-items: center;
    border-bottom: 1px solid #2a2a2a;
    padding: 0 16px;
    position: sticky;
    top: 0;
    background: #111;
    z-index: 10;
    flex-shrink: 0;
}

.ttab {
    padding: 10px 12px;
    font-size: 12px;
    color: #666;
    border-bottom: 2px solid transparent;
    white-space: nowrap;
}

.ttab.active {
    color: #fff;
    border-bottom-color: var(--main);
}

.ttab-div {
    display: inline-block;
    width: 1px;
    height: 14px;
    background: #2a2a2a;
    margin: 0 4px;
    flex-shrink: 0;
}

.tt-block {
    padding: 20px 20px 10px;
    border-bottom: 1px solid #2a2a2a;
}

.tt-head {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 14px;
}

.tt-head .age-badge {
    width: 22px;
    height: 22px;
    font-size: 14px;
    border-radius: 4px;
}

.tt-head h4 {
    font-size: var(--px16);
    font-weight: 700;
}

.tt-format {
    font-size: var(--px12);
    color: #666;
    margin-bottom: 8px;
    font-weight: 700;
    letter-spacing: .06em;
}

.tt-cards {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 16px;
}

/* 시간표 카드 */
.table-list-wrap {
    background: linear-gradient(to bottom, rgba(139, 139, 139, .4) 0%, rgba(77, 77, 77, .5) 100%);
    width: 155px;
    border-radius: 16px;
    padding: 14px 16px 16px;
    border: 1px solid transparent;
    transition: border-color .15s;
}

.table-list-wrap:hover {
    border-color: rgba(255, 255, 255, 0.4);
}

.table-list-wrap.selected {
    background: rgba(238, 49, 35, .15);
    border-color: var(--main);
}

.table-list-wrap.sold {
    opacity: .35;
    pointer-events: none;
}

.clock {
    display: flex;
    align-items: center;
    gap: 6px;
}

.clock .icon {
    font-size: var(--px12);
}

.clock strong {
    font-size: var(--px16);
    color: var(--mian-text);
}

.clock p {
    font-size: var(--px12);
    color: var(--ssupport-text);
}

.seat {
    display: flex;
    gap: 4px;
    padding-top: 10px;
    font-size: var(--px12);
    color: var(--mian-text);
}

.no-seat {
    color: var(--main);
}

.warning {
    color: #ff6a00;
}

.situation {
    color: #3895ff;
}

.theater-info {
    display: flex;
    gap: 4px;
    padding-top: 6px;
    font-size: 10px;
    color: var(--ssupport-text);
}

/* 하단 예매 상태바 */
.situation-wrap {
    position: fixed;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 80px;
    z-index: 9999;
    background: rgba(255, 255, 255, .5);
    backdrop-filter: blur(10px);
    border-top: 1px solid #ddd;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 60px;
}

.situation-list ul {
    display: flex;
    align-items: center;
}

.situation-list li {
    color: #111;
    font-size: 15px;
    font-weight: 500;
    padding: 0 20px;
}

.situation-list li:first-child {
    font-size: var(--px16);
    font-weight: 700;
    padding-left: 0;
}

.situation-list strong {
    font-size: var(--px24);
}

.situation-list span {
    display: inline-block;
    width: 1px;
    height: 16px;
    background: #ccc;
}

.situation-list .point {
    color: var(--main);
    font-weight: 700;
}

.reserv-btn button {
    border-radius: 50px;
    background: var(--red-btn);
    color: #fff;
    font-weight: 500;
    padding: 0 44px;
    height: 52px;
    font-size: var(--px16);
    border: none;
}

.reserv-btn button:hover {
    background: var(--Hred-btn);
}

/* footer */
footer {
    background-color: var(--main);
    padding: 30px 0 30px;
}

.footer-logo {
    filter: contrast(200%);
}

.footer-logo img {
    width: 150px;
}

.footer-middle {
    display: flex;
    justify-content: space-between;
    padding-top: 30px;
}

address p {
    line-height: 20px;
    font-size: var(--px12);
}

.qr-list {
    display: flex;
    gap: 20px;
}

.qr-list p {
    font-size: 1.13em;
    font-weight: 500;
}

.qr-list p:last-child {
    font-size: var(--px14);
    font-weight: 300;
    padding-top: 20px;
}

.footer-bottom {
    padding-top: 30px;
    display: flex;
    justify-content: space-between;
    align-items: center;

}

.select-company {
    border: none;
    border-radius: 20px;
    appearance: none;
    background: url(/images/footer/footerup.png) no-repeat right 15px top 5px;
    background-color: #fff;
    padding-left: 15px;
}

.f-inner-left {
    display: flex;
    gap: 35px;

}

.footer-bottom .bt-list {
    display: flex;
    font-size: var(--px14);
    gap: 35px;
}

.footer-bottom .sns-list {
    display: flex;
    gap: 50px;

}

.footer-bottom .sns-list>li:first-child {
    background: #FEE500;
    padding: 5px;
    border-radius: 40%;
}

.sns-list img {
    width: 20px;
}

.footer-bottom .sns-list>li:nth-child(2) {
    background: #833AB4;
    background: linear-gradient(241deg, rgba(131, 58, 180, 1) 0%, rgba(253, 29, 29, 1) 50%, rgba(252, 176, 69, 1) 100%);
    padding: 5px;
    border-radius: 40%;
}

.footer-bottom .sns-list>li:nth-child(3) {
    background: #E40006;
    padding: 5px;
    border-radius: 40%;
}

.footer-bottom .sns-list>li:last-child {
    background: #1C1C1B;
    padding: 5px;
    border-radius: 40%;
}