@charset 'utf-8';
@import url(common.css);

/* 포털 달력 크기 확대 */
.react-datepicker__portal .react-datepicker {font-size: 1.2rem}
.react-datepicker__portal .react-datepicker__month-container {width: 90vw; max-width: 400px}
.react-datepicker__portal .react-datepicker__day-names,
.react-datepicker__portal .react-datepicker__week {display: flex; justify-content: space-around}
.react-datepicker__portal .react-datepicker__day-name,
.react-datepicker__portal .react-datepicker__day {width: 2.8rem; height: 2.8rem; line-height: 2.8rem; font-size: 1.1rem}
.react-datepicker__portal .react-datepicker__current-month {font-size: 1.3rem; margin-bottom: 0.5rem}
.react-datepicker__portal .react-datepicker__header {padding-top: 1rem}
.react-datepicker__portal .react-datepicker__navigation {top: 1rem}

body {background: var(--main)}
#wrap { margin-left: auto; margin-right: auto; min-height: var(--full-height);  background: #fff}
#wrap:has(footer nav) {padding-bottom: 7rem}
#wrap:has(.sub-top) header {display: none}
#wrap:has(.footer-none) footer {display: none}
.swiper {border-radius: 1.25rem;}
.swiper .swiper-pagination {width: 100%;position: static; bottom: 0;margin-top: 1rem; font-size: 0; }
.swiper .swiper-pagination-bullet {transition: all 0.3s;opacity: 1;background: #d3d3d3;width: 6px;height: 6px;border-radius: 1rem;}
.swiper .swiper-pagination-bullet-active {background-color: var(--main);}

/* -------------------
common               |
------------------- */
/* header */
.scroll-down header {background-color: #fff;box-shadow: 0 0.3rem .5rem rgba(0, 0, 0, 0.05)}
header {position: sticky;top: 0; transition: all 0.3s; z-index: 99}
header h1 {margin: 0;font-size: 0; margin-right: auto}
header h1 img {max-height: 1.333rem;display: block;}
header .top-logo-area {display: flex; padding: 0 1rem; align-items: center; font-size: 0; height: 1.75rem}
header .top-logo-area>a {margin-left: 1rem; position: relative}
header .top-logo-area>a img {max-height: 1.333rem;}
header .top-logo-area .badge {font-size: .666rem; min-width:inherit;width: 1rem;height: 1rem; position: absolute;left: 55%;top: -.25em; font-weight: 300}

/* footer */
footer {position: fixed;left: 0;right: 0;bottom: 0;z-index: 3;border-radius: var(--radius) var(--radius) 0 0;border: 1px solid var(--border); text-align: center;background: #fff; box-shadow: 0 -.5rem .5rem rgba(0, 0, 0, 0.07);height: 5rem;}
footer ul {display: flex; justify-content: center; gap: 15%; height: 100%; align-items: center;}
footer li {color: var(--gray); font-size: clamp(11px, 3vw, 16px)}
footer li.active {color: var(--main)}
footer li.active img {filter: none; opacity: 1}
footer img {display: block; margin: 0 auto .25rem; max-height: 1.333rem; filter: grayscale(100%);opacity: .3}

/* -------------------
INTRO                |
------------------- */
#intro {background: var(--main) url(../img/intro.png) no-repeat 50% 100% / auto 100%; color: #fff; display: flex; align-items: center;text-align: center;height: var(--full-height);padding-bottom: 40vw}
#intro .copy {display: flex; flex-direction: column; justify-content: space-between; align-items: center; padding: 1rem;max-width: 640px;margin: 0 auto; gap: 50vw}
#intro p {font-size: 2.583rem;opacity: 0;transform: translateY(30px);animation: fadeUp .9s ease-out forwards;animation-delay: 0.4s; font-weight: bold; line-height: 1.2}
#intro .logo {font-size: 1.25rem;opacity: 0;transform: translateY(30px);animation: fadeUp .9s ease-out forwards;animation-delay: 0.8s;}
#intro .logo small {font-size: .75rem; display: block;}

@keyframes fadeUp {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* -------------------
SUB                  |
------------------- */
.sub-top {position: sticky;top: 0;height: 4rem;background-color: #fff;z-index: 10; border-bottom: 1px solid var(--border);}
.sub-top:has(.go-back) h1 {margin-right: 2.5rem;}
.sub-top h1 {font-size: 1.333rem; margin-bottom: 0; text-align: center; flex-grow: 1;}
.sub-top .container {display: flex;align-items: center;height: 100%;}
.sub-top .go-back {font-size: 1.5rem;width: 2.5rem; text-indent: -.25rem}
.sub-top .go-back.set {background: url(../img/ic_set_w.png) no-repeat 0 50%;}
.sub-top:has(.bi-x-lg) {border: 0;}
.sub-top:has(.bi-x-lg) .go-back {margin-left: auto;width: auto;}
.sub-top .top-icons {width: 25%;justify-content: flex-end;margin-left: auto;display: flex;font-size: 0;}
.sub-top .top-icons li {position: relative;margin-left: .5rem;}
.sub-top .top-icons li .badge {position: absolute;}
.sub-top .top-icons li.cart .badge {left: 12px;bottom: 0;}
.sub-top .top-icons li.noti .badge {right: 0; bottom: auto;top: 0;background-color: #E50025;font-size: 0;width: 6px;height: 6px;min-height: auto; border: 0;}

.sub-content {}
.sub-content h2 {font-size: 1.5rem; font-weight: 800; margin-top: 0.25rem;margin-bottom: 0.75rem; display: flex; align-items: flex-end}
.sub-content h2:first-child {margin-top: 0}
.sub-content h2+p {margin-top: -1rem;margin-bottom: 1.5rem}
.sub-content h2 a {font-size: 1rem; margin-left: auto; font-weight: normal}
.sub-content h2 a .bi {color: var(--gray);}
.sub-content h3 {font-size: 1.083rem; margin-top: 1.75rem;margin-bottom: 1.75rem; display: flex; align-items: center}
.sub-content h3:first-child {margin-top: 0}
.sub-content h3 a {margin-left: auto; font-size: 1rem; font-weight: normal}
.sub-content h3 a.upload {color: var(--main)}
.sub-content h3>.bi-dot {font-size: 2rem;color: var(--main);margin-left: -.5rem}
.sub-content h3 .imp {display: inline-flex;align-items: center;margin-left: auto; color: var(--main);font-size: 1rem; font-weight: normal}
.sub-content h3 .imp .bi-dot {font-size: 2rem;font-weight: bold;margin-right: -.5rem;}
.sub-content h4 {font-size: 1.2rem; margin-top: 2rem;margin-bottom: 1.5rem; display: flex; align-items: center}
.guide-text {font-size: 2rem;margin-top: 2rem; margin-bottom: 1.5rem;line-height: 1.3}


.flow {}
.flow dl {display: flex;position: relative}
.flow dl:after {content: "";position: absolute;left: 3rem;top: 0; bottom: 0;transform: translate(-50%, 0); border-right: 1px solid rgba(204, 204, 204, 0.5)}
.flow dl:first-child:after {top: .5em}
.flow dl:last-child:after {bottom: auto;height: 2.5rem}
.flow dl+dl {padding-top: 1.5rem}
.flow dt {width: 3rem; position: relative;align-self: flex-start; font-weight: 500}
.flow dt:after {content: "";position: absolute;width: .6rem;height: .6rem;border-radius: 50%;background-color: var(--orange); right: 0;top: 50%;transform: translate(50%, -50%);z-index: 1;}
.flow dd {width: calc(100% - 3rem);padding-left: 1rem}
.flow dd b {margin-right: .5rem; font-weight: 500}
.flow dd a {font-size: .9rem; color: var(--gray)}
.flow dd .date {font-size: .833rem; color: var(--gray); display: flex; flex-direction: column}
.flow dd .date span {display: block;}
.flow.type1 dl:first-child dt, .flow.type1 dl:first-child b span {color: var(--orange)}
.flow.type1 dl:not(:first-child) .date span:not(:last-child) {color: var(--main)}
.flow.type1 dl:not(:first-child) dt:after {width: .4rem;height: .4rem;background-color: var(--gray)}
.flow.type1 dl:not(:first-child) dt, .flow.type1 dl:not(:first-child) dd {opacity: .4}
.flow.type2 dt {color: var(--main)}
.flow.type2 dd .date span:last-child:not(:first-child) {color: var(--main)}
.flow.type2 dd .date img {max-height: 1.416rem; vertical-align: -.4rem;}
.flow.type2 dd .date em {font-style: normal; color: var(--pink)}
.flow.type2 dl.home dt {color: var(--blue)}
.flow.type2 dl.home dt:after {background-color: var(--blue)}
.flow.type2 dl.home .date span:last-child:not(:first-child) {color: var(--blue)}

.search-form {display: flex;gap: .5rem; align-items: flex-start; margin: 1.5rem 0}
.search-form .form {flex-grow:1}
.search-form .btn {align-self: stretch;width: 5rem; flex-shrink: 0;}
.search-form .btn:hover {border-color: rgba(0, 0, 0, 0.25)}
.search-form .tab-contents {flex-grow: 1}
.img img {width: 100%;}

/* 기타 */
.app {display: flex; align-items: center}
.app span {padding-left: 1rem;}
.app b {display: block;}
.app img {max-height: 4.375rem}

/* -------------------
BOARD                |
------------------- */
.list-top {display: flex;justify-content: space-between;margin: 1.5rem 0 1rem}
.list li {padding: 1rem 0;position: relative;border-bottom: 1px solid var(--border);}
.list li:hover {background: var(--bg)}
.list li+li { }
/*.list:has(.state) li+li {border-top: none;}*/
.list li:after {font-family: bootstrap-icons; position: absolute;right: 0; top:50%; transform: translate(0, -50%)}
.list li p {overflow:hidden; text-overflow:ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient:vertical; color: #666}
.list li strong {overflow:hidden; display: block; /*text-overflow:ellipsis; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient:vertical;; font-weight: bold;*/ font-size: 1.2rem; font-weight: 500}
.list li strong img {margin-right: .5rem; max-height: 1.333rem; vertical-align: -.25rem}
.list li .cate {display: block; color: var(--main); font-weight: bold; line-height: 2}
.list li small {font-size: .9rem; color: var(--gray)}
.list li .date {font-size: .9rem; color: var(--gray)}
.list li.no-list {padding: 2rem 0 !important;display: block;}
.list li.end {pointer-events: none; filter: grayscale(); color: #666; opacity: .8}
.list li .btns {position: absolute;right: 0; top: 50%;transform: translate(0, -50%); font-size: 1.5rem; color: #999}
.list li:has(.state) {padding-right: 4rem;border-bottom: 0}
.list li:has(.call) {padding-right: 4rem;border-bottom: 0}
.list li:has(.call) strong {font-size: 1.25rem;}
.list li .call img {max-height: 2.666rem}
.list li .call {position: absolute;right: 0;top: 50%;transform: translate(0, -50%);font-size: 0}
.list li .state {position: absolute;right: 0;top: 50%;transform: translate(0, -50%);font-size: 0}
.list li .state img {max-height: 2.5rem}

.list.pay li {display: grid; grid-template-columns: 1fr 30%; grid-template-areas: "title price" "info price"; border: 0; padding: 0; margin-bottom: 1.25rem}
.list.pay .title {display: flex; gap: var(--gap-xs); flex-wrap: wrap; grid-area: title}
.list.pay .title img {max-height: 1.25rem}
.list.pay .title b {color: var(--main)}
.list.pay .info {font-size: .833rem; grid-area: info}
.list.pay .cate {color: var(--main)}
.list.pay .price {grid-area: price; margin-left: auto; align-self: center; color: var(--main); font-weight: bold}
.list.pay li.no-list {display: block;border-top: 1px solid var(--border); border-bottom: 1px solid var(--border)}
.total-price {display: flex; background: var(--main80);padding: 1.25rem; color: var(--main);justify-content: space-between; position: fixed; left: 0;right: 0;bottom: 4.5rem;padding-bottom: 1.5rem; font-weight: bold}
.sub-content:has(.total-price) {padding-bottom: 10rem}

.list.toggle li { display: flex; align-items: center; padding: .75rem 1.5rem; border-radius: .75rem; background-color: #f5f5f5}
.list.toggle .switch {margin-left: auto;}
.list.toggle li+li {margin-top: .5rem; border: 0}

.board-list {margin-left: -1rem;margin-right: -1rem;overflow: hidden}
.board-list .table {text-align: center;}
.board-list tfoot td {background: var(--main80); color: var(--main);font-weight: bold}

.board-top {margin: 0 -1rem; padding: 1rem; border-bottom: .35rem solid #f2f2f2;}
.board-top img {max-height: 1.25rem;display: block}
.board-top ul {justify-content: space-between; display: flex;flex-wrap: wrap}
.board-top li:first-child {width: 100%;}
.board-top li {display: flex; align-items: center;gap: var(--gap-xs)}
.board-top li span {font-weight: bold; color: var(--main)}
.board-view {padding: 1rem 0;}
.board-view dt {font-size: 1.25rem;margin-bottom: .5rem;}
.board-view .category {color: var(--main); font-weight: normal;font-size: .9rem;}
.board-view .info {font-size: .9rem; font-weight: normal; margin-top: 2rem; display: flex; justify-content: space-between}
.board-view .info span {display: inline-block; line-height: 1; color: var(--gray)}
.board-view dd {font-size: 1.083rem}

.service-info:not(:last-child) {margin-bottom: 1rem}
.service-info div {display: flex}
.service-info span:first-child {width: 6rem; font-weight: bold;}
.service-cont {padding: 1rem;}
.service-cont~.service-cont {border-top: 1px solid var(--border);}
.service-cont.bg {background: var(--bg);}
.service-cont h4 {font-size: 1.083rem;margin-bottom: 1em}
.service-cont h4 b {color: var(--main)}
.service-cont h4 b.end {color: var(--orange)}
.service-cont .state {font-size: 1.3rem;font-weight: bold;margin: 1rem 0; line-height: 1.3}
.service-cont img {display: block;margin: 1rem 0}
.service-cont .comment {border-radius: var(--radius);padding: 1.5rem; background: var(--bg)}
.service-cont .total {background: var(--main80);color:var(--main);padding: 1.5rem;border-radius: var(--radius);display: flex;justify-content: space-between}
.service-cont .sign img {margin: 0;}
.service-cont .total b {margin-left: auto; font-size: 1.25rem;}
.price-info:not(:last-child) {margin-bottom: 1rem}
.price-info div {display: flex}
.price-info span {width: 6rem; font-weight: bold;}
.price-info b {margin-left: auto}

.quick-search {border: 1px solid transparent; overflow: hidden}
.quick-search.active {border-color: var(--border)}
.select-list .checkbox-btns {grid-template-columns: repeat(3, 1fr);}
.select-result {display: none;background-color: #fff; padding: 1rem}
.select-result span {display: block; cursor: pointer;padding: .5rem; color: var(--gray)}
.select-result span:hover {background-color: var(--bg)}
.select-result span b {color: var(--text)}
.quick-search {background: var(--bg); border-radius: var(--radius-sm);margin-bottom: 1rem;}
.quick-search .form-control:focus {background: var(--bg);outline: 0;box-shadow: none; border-color: var(--bg)}
.quick-search .input-group .btn {min-width: 3rem}
.quick-search .bi {font-size: 1.25rem;}

.btn.write {position: fixed;right: 1rem; padding: 0; bottom: 6rem}
.btn.write img {max-height: 3rem}

/* -------------------
FORM                 |
------------------- */
.form {}
.form .form-row {align-items: center;}
.form .form-row:first-child .col-form-label {margin-top: 0;}
.form .form-row.bg {margin: 0;background-color: #f5f5f5;border-radius: .75rem; min-height: calc(4rem - 2px)}
.form .form-row.bg .col-form-label {padding-left: 1rem;padding-right: 1rem; color: #aaa;}
.form .form-row.bg input.form-control {text-align: right;}
.form .form-row.bg .form-control {background-color: transparent !important;border: 0 !important; font-weight: 500}
.form .form-row.bg>div:not(.col-form-label):not(.align-self-center) {min-height: calc(4rem - 2px);padding-left: 0;padding-right: 0}
.form .form-row .btn:not(.refresh) {height: calc(4rem - 2px)}
.form .form-row.file {position: relative;}
.form .form-row.file:after {content: "\F219"; font-family: bootstrap-icons; margin: 0 1rem; color: #ccc; position: absolute;right: 0;z-index: 1}
.form .form-row.bg input[type='file'] {opacity: 0;position: absolute;right: 0;left: 0;height: 100%; z-index: 2}
.form .form-row.bg .radio {min-width: 5.1rem;}
.form .form-row #preview-area .btn {position: absolute;padding: 0; width: 2rem;height: 2rem;line-height: 2rem; top: .25rem; right: .25rem;background: #000; color: #fff; font-size: 1.5rem;;}
.form .form-row #preview-area .preview-wrapper { position: relative;border-radius: .75rem;  border: 1px solid var(--border); overflow: hidden;display: block;width: 8rem;height: 8rem}
.form .form-row #preview-area img {width: 100%; height: 100%;object-fit: cover;}
.col-form-label .bi-dot {color: var(--main); font-size: 2rem; margin-left: -.5rem; vertical-align: middle}
.col-form-label.col-12 {padding: 0;margin-bottom: 1.5rem;margin-top: 1.5rem;}
.form .form-row .row {align-items: center;height: calc(1.5em + 1rem + 2px)}
.form .form-row+.form-row {margin-top: .5rem;}
.form .form-row .row+.row {margin-top: .5rem;}
.form .form-row.has-btn {position: relative}
.form .form-row.has-btn .form-control {padding-right: 9rem}
.form .form-row.has-btn .btn {border-radius: .25rem;padding: .25rem .5rem;position: absolute;right: 1.5rem;top: 50%;transform: translate(0, -50%);width: auto}
.form-row .btn {width: 100%;}
.form-row .col-12+.col-12 {margin-top: .5rem;}
.input-group .btn {min-width: 5rem; border: 0;}
.form .file-upload {}
.form .file-upload.preview-image .thumb-preview {background: #f2f2f2;}

/* member */
.terms-check {}
.terms-check u {cursor: pointer}
.terms-check li {display: flex;}
.terms-check li~li {margin-top: .5rem}
.terms-check li span {color: #666}
.body-login {}
.body-login header, .body-login footer {display: none}
.login {color: var(--main);text-align: center;margin: 0 auto;min-height: var(--full-height); display: flex; flex-direction: column; justify-content: flex-start; padding-top: 5vh; overflow-y: auto;}
.login h2 {margin-bottom: 1.5rem}
.login img {max-height: 3.5rem; margin: 0 auto;}
.login a {font-size: .916rem; color: var(--blue);text-decoration: underline}
.modal .result {font-size: 1.25rem}

/* 마이페이지 */
div[id*=layer] {box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);max-height:80vh;overflow: auto;position:fixed;left:50%;top:50%;transform:translate(-50%, -50%);z-index: 9999;}
div[id*=layer] .title {padding: 5px 15px;display: flex;color:#000;justify-content:space-between;align-items:center;background: #f8f8f8;}
div[id*=layer] .title span {font-size:2rem;cursor:pointer}

/* PC버전 background 있을 경우 */
@media (min-width: 1000px) {
    body:has(#wrap) {background: #fff url(../img/bg_web.png) no-repeat 50% 50% / cover;background-attachment: fixed; min-height: 100vh}
    #wrap {max-width: 500px; margin-right: 0;left: 50%;position: relative;margin-left: 0;}
    
    .gnb {}
    .gnb li {margin: .75rem;max-width: 33%;}
    
    .modal-dialog-bottom {left: 50%;max-width: 500px; margin-left: 8%;margin-right: 0;}
    footer {left: 50%; max-width: 500px;}
    .total-price {left: 50%; max-width: 500px;}
	div[id*=layer] {max-width:385px;margin-left: calc(8% + 18px);width: 100%;transform:none !important;margin-top: -25vh;}
}

