#wrap { min-height: 100dvh; display: flex; flex-direction: column;}
main { padding: 3rem 0 6rem; flex:1; min-height: 0; display: flex;}
.container { padding: 0 1.5rem;}
main a { display: block;}
main img { width: 100%;}
main .container { display: flex; flex-direction: column; width: 100%; min-height: 100%;}

/* home.php */
.mainWrap section + section { margin-top: 3rem; }
.mainWrap .sc-visual .vis-area { width: 100%; height: 18rem; border-radius: 1rem; overflow: hidden;}
.mainWrap .sc-visual .vis-area img { height: 100%; object-fit: cover; object-position: center;}
.mainWrap .sc-visual .vis-area a {width: 100%; height: 100%; display: flex; align-items: center; justify-content: center;}
.mainWrap .sc-visual p { color: #666; font-size: 1.2rem; margin-top: 1rem; font-weight: 400;}
.mainWrap .sc-visual .swiper-pagination-bullet-active { background-color: #d42035;}
.mainWrap .sc1 { display: flex; gap: 1.5rem; flex-flow: row wrap;}
.mainWrap .sc1 .sc-contents { width: 100%; display: grid; grid-template-columns: repeat( 4, 1fr); gap: 2rem;}
.mainWrap .sc1 .product-item span { display: block; text-align: center; font-size: 1.2rem; margin-top: 1rem; font-weight: 600;}



/* event.php */
.eventWrap .sub-contents { display: flex; flex-flow: column nowrap; gap: 4rem;}
.eventWrap .sub-contents a { display: flex; flex-flow: column nowrap;  background: #fff; overflow: hidden; }
.eventWrap .sub-contents a .image { height: 15rem;}
.eventWrap .sub-contents a .image img { width: 100%;  height: 100%; object-fit: cover;}
.eventWrap .sub-contents a .text { margin-bottom: 2rem; display: flex; flex-flow: column nowrap; gap: 1rem;}
.eventWrap .sub-contents a .text h2 { font-size: 1.8rem; font-weight: 700;}
.eventWrap .sub-contents a .text p { font-size: 1.6rem; font-weight: 300; color: #666;}

/* event_detail.php */
.eventDetailWrap .event-detail .text { margin-bottom: 2rem; display: flex; flex-flow: column nowrap; gap: 1rem;}
.eventDetailWrap .event-detail .text h2 { font-size: 1.8rem; font-weight: 700;}
.eventDetailWrap .event-detail .text p { font-size: 1.6rem; font-weight: 300; color: #666;}


/* rank.php */
.rankWrap .rank { display: flex; flex-flow: column nowrap; }
.rankWrap .rank .rank_item { padding-bottom: 2rem; display: flex; align-items: center; justify-content: space-between;}
.rankWrap .rank .rank_item + .rank_item { padding: 2rem 0; border-top: 1px solid #eee;}
.rankWrap .rank .rank_item .text-box { display: flex;  flex-flow: column nowrap; flex: 1; min-width: 0; padding-right: 1rem;}
.rankWrap .rank .rank_item .text-box h3 { font-size: 1.6rem; font-weight: 600; line-height: 1.4; font-family: inherit;}
.rankWrap .rank .rank_item .text-box h3 span { color: #fff; background-color: #d42035; font-size: 1.2rem; font-weight: 600; border-radius: 0.3rem; padding: 0.4rem; margin-right: 0.4rem; display: inline-block; }
.rankWrap .rank .rank_item .text-box p { font-size: 1.4rem; font-weight: 400; line-height: 1.4; color: #666; margin-top: 0.4rem;}
.rankWrap .rank .rank_item .cart { display: flex; align-items: center; flex-direction: column; gap: 0.4rem;}
.rankWrap .rank .rank_item .cart .cart-btn { padding: 0 1rem 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.4rem;}
.rankWrap .rank .rank_item .cart .cart-btn img { width: 2.4rem;}
.rankWrap .rank .rank_item .cart .cart-btn span { font-size: 1.4rem;}

/* shop.php */
.shopWrap .shop { display: flex; flex-flow: column nowrap; }
.shopWrap .shop a { padding-bottom: 2rem; display: flex; flex-direction: column;}
.shopWrap .shop a + a { padding: 2rem 0; border-top: 1px solid #eee;}
.shopWrap .shop a h2 { font-size: 1.8rem; font-weight: 600;}
.shopWrap .shop a .text-box { margin-top: 0.8rem;}
.shopWrap .shop a .text-box p { font-size: 1.6rem; font-weight: 300; color: #666; line-height: 1.4;}


/* shop_sub.php */
.shopSubWrap .info .shop-name { font-size: 1.8rem; font-weight: 700;}
.shopSubWrap .info .shop-info { margin-top: 1rem;}
.shopSubWrap .info .shop-info p { color: #888; font-size: 1.6rem; font-weight: 300; line-height: 1.4;}
.shopSubWrap .info .text-box { margin-top: 1rem;}
.shopSubWrap .info .text-box p { color: #888; font-size: 1.6rem; font-weight: 300; line-height: 1.4;}
.shopSubWrap .info .text-box p + p { margin-top: 0.8rem;}
.shopSubWrap .info .shop-info { margin-bottom: 1.6rem;}

.shopSubWrap .location { margin-top: 2rem;}
.shopSubWrap .location #map { width: 100%; height: 30rem;}
.shopSubWrap .leaflet-popup-content-wrapper .leaflet-popup-content { margin: 1.2rem 2.2rem; font-size: 1.4rem;}
.shopSubWrap .leaflet-popup-content-wrapper .leaflet-popup-content b { font-size: inherit;}
.shopSubWrap .leaflet-touch .leaflet-bar span,
.shopSubWrap .leaflet-container a.leaflet-popup-close-button span { font-size: 1.8rem;}
.shopSubWrap .leaflet-container .leaflet-control-attribution { display: none;}

/* rest.php */
.restWrap .rest { padding-bottom: 2rem;}
.restWrap .rest + .rest {  padding: 2rem 0; border-top: 1px solid #eee;}
.restWrap .rest h2 { font-size: 1.8rem; font-weight: 600; display: flex; align-items: center; gap: 0.5rem; margin-bottom: 2rem;}
.restWrap .rest h2 img { width: 2rem;}
.restWrap .rest p { font-size: 1.6rem; line-height: 1.4; margin-bottom: 2rem; color: #888; font-weight: 300;}
.restWrap .rest p strong { font-size: 1.6rem; font-weight: 500; display: block; margin-bottom: 0.4rem;}
.restWrap .rest p strong.shop-off { color: #ee2a41;}
.restWrap .rest p strong.shop-open { color: #1897ff;}
.restWrap .rest p:last-child { margin: 0;}


/* product.php */
.productWrap .product-title { font-size: 2rem; font-weight: 700; margin-bottom: 2rem; display: flex; align-items: center; gap: 0.4rem; }
.productWrap .product-title img { width: 3rem;}
.productWrap .product { display: flex; flex-flow: column nowrap; }
.productWrap .product a { display: flex; align-items: start; gap: 1rem;  padding-bottom: 2rem;}
.productWrap .product a + a{ padding: 2rem 0; border-top: 1px solid #eee;}
.productWrap .product a .text-box { display: flex; flex-direction: column; flex: 1; min-width: 0;}
.productWrap .product a .title { display: flex; flex-flow: column nowrap; gap: 0.4rem;}
.productWrap .product a .title h2 { font-size: 1.6rem; font-weight: 700; line-height: 1.4;}
.productWrap .product a .title p { font-size: 1.6rem; font-weight: 300; color: #666;}
.productWrap .product a .price { display: flex; align-items: center; gap: 1rem; margin-top: 2rem;}
.productWrap .product a .price p { font-size: 1.6rem;}
.productWrap .product a .price p.current { font-weight: 600;}
.productWrap .product a .price p.discount { color: #d32035;}
.productWrap .product a .cart-btn { width: 2rem; flex-shrink: 0; }

/* product_detail.php */
.productDetailWrap .product-header { display: flex; align-items: flex-start;}
.productDetailWrap .product-header .product-title { flex: 1; min-width: 0;}
.productDetailWrap .product-header .cart-btn { flex-shrink: 0; width: 2.4rem;}
.productDetailWrap .product-header .product-name { font-size: 1.6rem; font-weight: 600; line-height: 1.4; padding-right: 1.6rem; word-break: keep-all;}
.productDetailWrap .product-header .event-date { font-size: 1.4rem; color: #999; font-weight: 300; margin-top: 0.4rem;}

.productDetailWrap .product-contents { margin-top: 2rem;}
.productDetailWrap .product-contents .product-info { display: flex; flex-direction: column; gap: 0.8rem;}
.productDetailWrap .product-contents .product-info .info-item { display: flex; align-items: center; justify-content: space-between;}
.productDetailWrap .product-contents .product-info p { font-size: 1.6rem; font-weight: 700;}
.productDetailWrap .product-contents .product-info p span{ font-size: inherit; color: #999; display: inline-block; min-width: 8rem; font-weight: 300; margin-right: 1rem;}
.productDetailWrap .product-contents .product-info .discount { color: #d32035; font-weight: 300;}
.productDetailWrap .product-contents .product-info .current { }
.productDetailWrap .product-contents .product-info .cost { text-decoration: line-through; color: #999; font-weight: 300;}

.productDetailWrap .product-contents .product-box { border: 1px solid #eee; border-radius: 2rem; padding: 2rem 1.6rem; margin-top: 4rem;}
.productDetailWrap .product-contents .product-box .box-title { text-align: center; font-size: 2rem; font-weight: 800; margin-bottom: 2rem;}
.productDetailWrap .product-contents .product-box table { border-collapse: collapse; width: 100%; table-layout: fixed;}
.productDetailWrap .product-contents .product-box table th,
.productDetailWrap .product-contents .product-box table td { border: 1px solid #eee; text-align: center; padding: 1rem 0.4rem; font-size: 1.4rem; font-weight: 300; color: #999;}
.productDetailWrap .product-contents .product-box table th { border-top: none; font-weight: 600; color: #333;}
.productDetailWrap .product-contents .product-box table tr:last-child td { border-bottom: none;}
.productDetailWrap .product-contents .product-box table th:first-child,
.productDetailWrap .product-contents .product-box table td:first-child { border-left: none;}
.productDetailWrap .product-contents .product-box table th:last-child,
.productDetailWrap .product-contents .product-box table td:last-child { border-right: none;}
.productDetailWrap .product-contents .product-box table td.discount { color: #d32035;}



/* cart.php */
.cartWrap .cart-area { flex: 1; min-height: 0; display: flex;  flex-flow: column nowrap; margin-bottom: 4rem;}

.cartWrap .cart-area .cart { display: flex; align-items: start; gap: 1.6rem;  padding-bottom: 2rem; }
.cartWrap .cart-area .cart + .cart{ padding: 2rem 0; border-top: 1px solid #eee;}
.cartWrap .cart-area .cart .text-box { display: flex; flex-direction: column; flex: 1; min-width: 0;}
.cartWrap .cart-area .cart .title { display: flex; flex-flow: column nowrap; gap: 0.4rem;}
.cartWrap .cart-area .cart .title h2 { font-size: 1.6rem; font-weight: 700; line-height: 1.4; word-break: keep-all;}
.cartWrap .cart-area .cart .title p { font-size: 1.6rem; font-weight: 300; color: #666;}
.cartWrap .cart-area .cart .price { display: flex; align-items: center; gap: 1rem; margin-top: 2rem;}
.cartWrap .cart-area .cart .price p { font-size: 1.6rem;}
.cartWrap .cart-area .cart .price p.current { font-weight: 600;}
.cartWrap .cart-area .cart .price p.discount { color: #d32035;}
.cartWrap .cart-area .cart .deleteBtn { width: 2rem; flex-shrink: 0; }


.cartWrap .calc-area { flex-shrink: 0;}
.cartWrap .calc-area h2 { font-size: 2rem; font-weight: 700; margin-bottom: 1.5rem; }
.cartWrap .calc-area .calc { padding: 1rem 0; display: flex; justify-content: space-between; align-items: center;}
.cartWrap .calc-area .calc h3 { font-size: 1.6rem; font-weight: 400; color: #888;}
.cartWrap .calc-area .calc p { font-size: 1.6rem; font-weight: 600;}



/* 공통 */

.no_data { font-size: 1.8rem; font-weight: 500; color: #999; text-align: center; margin-top: 4rem;}