/* ===================================
    Flower Shop - 화환/근조화환/화분 쇼핑몰
====================================== */
/* variable - 그린 컬러 테마 */
:root {
    --base-color: #2e8b57;
    --base-color-dark: #246b45;
    --base-color-light: #e8f5e9;
    --celebration-color: #4caf50;
    --condolence-color: #3a3a3a;
    --plant-color: #43a047;
    --alt-font: 'Pretendard Variable', Pretendard, -apple-system, BlinkMacSystemFont, system-ui, Roboto, sans-serif;
    --primary-font: 'Pretendard Variable', Pretendard, -apple-system, BlinkMacSystemFont, system-ui, Roboto, sans-serif;
    --white: #ffffff;
    --black: #000000;
    --red: #d32f2f;
    --dark-gray: #1a1a1a;
    --medium-gray: #4a4a4a;
    --extra-medium-gray: #d0d0d0;
    --light-gray: #888888;
    --very-light-gray: #f5f5f5;
    --light-medium-gray: #e0e0e0;
    --text-dark: #1a1a1a;
    --text-body: #333333;
    --text-muted: #666666;
    --border-color: #d0d0d0;
}

/* reset - 가독성 강화 */
body {
    font-size: 24px; /* 기본 16px의 1.5배 */
    line-height: 1.75;
    font-weight: 400;
    color: var(--text-body);
    font-family: var(--primary-font);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
a {
    color: var(--text-body);
    text-decoration: none;
    transition: 0.3s;
}
a:hover {
    color: var(--base-color);
}
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
    color: var(--text-dark);
    font-weight: 600;
    margin-bottom: 20px;
    letter-spacing: -0.3px;
}
p {
    margin-bottom: 20px;
    color: var(--text-body);
}
ul li {
    list-style: none;
}
/* 라벨 및 폼 요소 가독성 */
label {
    color: var(--text-dark);
    font-weight: 500;
}
/* Section padding - Crafto 스타일 */
section {
    padding-top: 110px;
    padding-bottom: 110px;
}
section.half-section {
    padding-top: 70px;
    padding-bottom: 70px;
}
section.pt-0 {
    padding-top: 0 !important;
}

/* ===================================
   유틸리티 클래스 - 가독성 강화
   =================================== */
/* Text colors - 대비 강화 */
.text-white { color: var(--white) !important; }
.text-black { color: var(--black) !important; }
.text-dark-gray { color: var(--text-dark) !important; }
.text-medium-gray { color: var(--text-muted) !important; }
.text-light-gray { color: var(--light-gray) !important; }
.text-extra-medium-gray { color: #aaa !important; }
.text-light-medium-gray { color: #bbb !important; }
.text-very-light-gray { color: #ccc !important; }
.text-red { color: var(--red) !important; }
.text-base-color { color: var(--base-color) !important; }

/* Background colors */
.bg-white { background-color: var(--white) !important; }
.bg-black { background-color: var(--black) !important; }
.bg-dark-gray { background-color: var(--dark-gray) !important; }
.bg-very-light-gray { background-color: var(--very-light-gray) !important; }
.bg-extra-medium-gray { background-color: var(--extra-medium-gray) !important; }
.bg-light-medium-gray { background-color: var(--light-medium-gray) !important; }
.bg-base-color { background-color: var(--base-color) !important; }
.bg-gradient-very-light-gray { background: linear-gradient(to bottom, #f8f8f8 0%, #fff 100%); }

/* Border colors */
.border-color-extra-medium-gray { border-color: var(--extra-medium-gray) !important; }
.border-bottom { border-bottom: 1px solid var(--extra-medium-gray) !important; }
.border-top { border-top: 1px solid var(--extra-medium-gray) !important; }
.border { border: 1px solid var(--extra-medium-gray) !important; }

/* Font family */
.alt-font { font-family: var(--alt-font) !important; }
.primary-font { font-family: var(--primary-font) !important; }

/* Font weight */
.fw-300 { font-weight: 300 !important; }
.fw-400 { font-weight: 400 !important; }
.fw-500 { font-weight: 500 !important; }
.fw-600 { font-weight: 600 !important; }
.fw-700 { font-weight: 700 !important; }
.fw-800 { font-weight: 800 !important; }

/* Font size */
.fs-12 { font-size: 12px !important; }
.fs-13 { font-size: 13px !important; }
.fs-14 { font-size: 14px !important; }
.fs-15 { font-size: 15px !important; }
.fs-16 { font-size: 16px !important; }
.fs-17 { font-size: 17px !important; }
.fs-18 { font-size: 18px !important; }
.fs-19 { font-size: 19px !important; }
.fs-20 { font-size: 20px !important; }
.fs-22 { font-size: 22px !important; }
.fs-24 { font-size: 24px !important; line-height: 32px; }
.fs-26 { font-size: 26px !important; line-height: 38px; }
.fs-28 { font-size: 28px !important; line-height: 36px; }
.fs-30 { font-size: 30px !important; line-height: 38px; }

/* Line height */
.lh-22 { line-height: 22px !important; }
.lh-24 { line-height: 24px !important; }
.lh-26 { line-height: 26px !important; }
.lh-28 { line-height: 28px !important; }
.lh-30 { line-height: 30px !important; }

/* Border radius - Crafto */
.border-radius-4px { border-radius: 4px !important; }
.border-radius-5px { border-radius: 5px !important; }
.border-radius-6px { border-radius: 6px !important; }
.border-radius-8px { border-radius: 8px !important; }
.border-radius-10px { border-radius: 10px !important; }

/* Input styles - 가독성 강화 */
input, select, textarea, .form-control, .form-select {
    padding: 12px 18px;
    width: 100%;
    max-width: 100%;
    resize: none;
    outline: none;
    font-size: 15px;
    border: 1px solid var(--border-color);
    color: var(--text-body);
    line-height: inherit;
    transition: 0.3s;
    background-color: #fff;
}
input:focus, select:focus, textarea:focus, .form-control:focus {
    border-color: var(--dark-gray);
    box-shadow: none !important;
    color: var(--text-dark);
}
::-webkit-input-placeholder { color: #999 !important; }
::-moz-placeholder { color: #999 !important; opacity: 1; }
:-ms-input-placeholder { color: #999 !important; opacity: 1; }

/* Input sizes */
.input-small,
.textarea-small,
.select-small {
    padding: 12px 15px;
    font-size: 14px;
}
.input-medium,
.textarea-medium,
.select-medium {
    padding: 14px 20px;
}
.input-large {
    padding: 16px 24px;
}
/* header */
header .navbar-brand img {
    max-height: 34px;
}
header .navbar-brand {
    padding: 22px 0;
}
.navbar.center-logo .navbar-nav .nav-link {
    padding: 29px 20px;
    font-size: 19px;
}
.header-icon .icon > a {
    padding-left: 20px;
}
.header-icon .icon .header-language > a, .header-icon .icon .header-cart > a {
    padding-left: 18px;
}
.header-cart-icon .cart-count {
    color: var(--dark-gray);
}
header .widget {
    font-size: 17px;
    display: inline-block;
}
.navbar .navbar-nav .submenu-content ul .sub-title {
    font-size: 17px;
    margin-bottom: 3px;
}
.navbar .navbar-nav .dropdown .dropdown-menu a {
    font-size: 16px;
    padding-bottom: 3px;
    font-weight: 300;
    border-color: transparent;
}
.header-cart-icon .header-cart .cart-item-list {
    border-radius: 0;
}
.header-cart-icon .header-cart .cart-item-list .cart-item .product-detail a {
    font-size: 16px;
    line-height: 28px;
}
.header-cart-icon .cart-count {
    background-color: var(--dark-gray);
}
.navbar.center-logo .navbar-left, .navbar.center-logo .navbar-right {
    width: 35%
}
/* bg color */
.bg-nero-grey, .bg-nero-grey:focus {
    background-color: #1B1B1B;
}
/* Opacity utilities */
.opacity-6 { opacity: 0.6 !important; }
.opacity-7 { opacity: 0.7 !important; }
.opacity-8 { opacity: 0.8 !important; }
.opacity-9 { opacity: 0.9 !important; }

/* Display utilities */
.d-block { display: block !important; }
.d-inline-block { display: inline-block !important; }
.d-flex { display: flex !important; }
.d-none { display: none !important; }
.flex-wrap { flex-wrap: wrap !important; }
.align-items-center { align-items: center !important; }
.align-items-start { align-items: start !important; }
.justify-content-center { justify-content: center !important; }
.justify-content-between { justify-content: between !important; }
.text-center { text-align: center !important; }
.text-end { text-align: right !important; }
.w-100 { width: 100% !important; }

/* Gap utilities */
.gap-5px { gap: 5px !important; }
.gap-10px { gap: 10px !important; }
.gap-15px { gap: 15px !important; }
.gap-20px { gap: 20px !important; }

/* Margin utilities */
.mb-0 { margin-bottom: 0 !important; }
.mb-5px { margin-bottom: 5px !important; }
.mb-8px { margin-bottom: 8px !important; }
.mb-10px { margin-bottom: 10px !important; }
.mb-15px { margin-bottom: 15px !important; }
.mb-20px { margin-bottom: 20px !important; }
.mb-25px { margin-bottom: 25px !important; }
.mb-30px { margin-bottom: 30px !important; }
.mb-40px { margin-bottom: 40px !important; }
.mb-50px { margin-bottom: 50px !important; }
.mt-5px { margin-top: 5px !important; }
.mt-10px { margin-top: 10px !important; }
.mt-15px { margin-top: 15px !important; }
.mt-20px { margin-top: 20px !important; }
.me-5px { margin-right: 5px !important; }
.me-8px { margin-right: 8px !important; }
.me-10px { margin-right: 10px !important; }

/* Padding utilities */
.p-15px { padding: 15px !important; }
.p-20px { padding: 20px !important; }
.p-25px { padding: 25px !important; }
.p-30px { padding: 30px !important; }
.p-40px { padding: 40px !important; }
.pt-15px { padding-top: 15px !important; }
.pt-20px { padding-top: 20px !important; }
.pt-25px { padding-top: 25px !important; }
.pt-30px { padding-top: 30px !important; }
.pt-40px { padding-top: 40px !important; }
.pt-60px { padding-top: 60px !important; }
.pb-15px { padding-bottom: 15px !important; }
.pb-20px { padding-bottom: 20px !important; }
.pb-25px { padding-bottom: 25px !important; }
.pb-30px { padding-bottom: 30px !important; }
.pb-40px { padding-bottom: 40px !important; }
.py-10px { padding-top: 10px !important; padding-bottom: 10px !important; }
.py-15px { padding-top: 15px !important; padding-bottom: 15px !important; }
.pe-50px { padding-right: 50px !important; }

/* min-width */
.min-w-150px {
    min-width: 150px;
}

/* btn - 가독성 강화 */
.btn {
    text-transform: inherit;
    font-weight: 600;
    border-radius: 4px;
    transition: all 0.3s;
    cursor: pointer;
}
.btn.btn-dark-gray {
    background-color: var(--dark-gray);
    color: var(--white);
    border: 2px solid var(--dark-gray);
}
.btn.btn-dark-gray:hover {
    background-color: #333;
    border-color: #333;
    color: var(--white);
}
.btn.btn-base-color {
    background-color: var(--base-color);
    color: var(--white);
    border: 2px solid var(--base-color);
}
.btn.btn-base-color:hover {
    background-color: var(--base-color-dark);
    border-color: var(--base-color-dark);
}
.btn.btn-extra-large {
    font-size: 19px;
    padding: 20px 38px;
}
.btn.btn-large {
    font-size: 18px;
    padding: 15px 30px;
}
.btn.btn-medium {
    font-size: 16px;
    padding: 13px 26px;
}
.btn.btn-small {
    font-size: 14px;
    padding: 12px 24px;
}
.btn.btn-very-small {
    font-size: 13px;
    padding: 8px 18px;
}
.btn.btn-link {
    padding: 0 0 2px;
}
.btn.btn-round-edge {
    border-radius: 4px;
}
.btn.btn-rounded {
    border-radius: 50px;
}
/* page title - Crafto 스타일 */
.page-title-extra-large h1 {
    font-size: 4.5rem;
    line-height: 4.5rem;
    font-weight: 700;
}
.page-title-large h1 {
    font-size: 3.5rem;
    line-height: 3.5rem;
    font-weight: 700;
}
/* Breadcrumb - Crafto 스타일 */
.breadcrumb-style-01 ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 10px;
}
.breadcrumb-style-01 ul li {
    font-size: 14px;
    color: var(--medium-gray);
}
.breadcrumb-style-01 ul li a {
    color: var(--medium-gray);
    text-decoration: none;
}
.breadcrumb-style-01 ul li a:hover {
    color: var(--dark-gray);
}
.breadcrumb-style-01 ul li:not(:last-child)::after {
    content: "/";
    margin-left: 10px;
    color: var(--light-gray);
}

/* Feature box - Crafto 스타일 */
.feature-box {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    text-align: center;
    position: relative;
    z-index: 1;
}
.feature-box.feature-box-left-icon {
    flex-flow: row wrap;
    align-items: center !important;
    justify-content: flex-start;
    text-align: left;
}
.feature-box.feature-box-left-icon .feature-box-icon {
    margin-right: 15px;
}
.feature-box.feature-box-left-icon .feature-box-content {
    flex: 1;
}
.icon-with-text-style-08 .feature-box-icon i {
    display: flex;
}
.icon-small { font-size: 20px; }
.icon-medium { font-size: 30px; }
.icon-large { font-size: 42px; }

/* text-decoration */
.text-decoration-line-bottom {
    position: relative;
    text-decoration: none !important;
}
.text-decoration-line-bottom::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
}

/* top bottom left right class */
.left-15 {
    left: 15%;
}
/* interactive banner */
.interactive-banner-style-09 .image-content:hover .content-arrow {
    opacity: 1;
}
/* tab style 04 */
.tab-style-04 .nav-tabs .nav-item .nav-link {
    line-height: 50px;
}
/* progress bar 02 */
.progress-bar-style-02 .progress {
    height: 10px; 
}
/* footer */
.footer-dark, .footer-dark p, .footer-dark a {
    color: var(--medium-gray);
}
footer .footer-logo img {
    max-height: 34px;
}
footer .nav-link {
    color: var(--white);
    padding: 0 20px;
    font-size: 13px;
}
footer ul li {
    margin-bottom: 0;
    line-height: 1.8;
}
footer ul li a {
    font-size: 12px;
}
footer .fs-17, footer span.fs-17 {
    font-size: 14px !important;
}
footer .fs-15 {
    font-size: 13px !important;
}
footer .fs-28 {
    font-size: 22px !important;
}
footer .elements-social.social-icon-style-02 li {
    margin: 0 14px 0 0;
}
/* tab style 07 */
.tab-style-07 .nav-tabs .nav-item .nav-link {
    padding: 20px 30px;
}
.tab-style-07 .nav-tabs .nav-item .nav-link.active span,
.tab-style-07 .nav-tabs .nav-item .nav-link:hover span {
    color: var(--dark-gray);
}
/* tooltip */
.tooltip.show {
    opacity: 1;
}
.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before, .bs-tooltip-top .tooltip-arrow::before {
    border-top-color: var(--dark-gray);
    top: -2px;
}
.tooltip .tooltip-inner {
    background-color: var(--dark-gray);
    border-radius: 3px;
    font-size: 10px;
    text-transform: uppercase;
    padding: 5px 10px;
    font-weight: 500;
}
/* media query responsive */
@media (max-width: 1399px) {
    .sticky-wrap.shadow-in { left: 25px; }
    .center-logo .navbar-nav .nav-link, header.sticky .center-logo .navbar-nav .nav-link {
        padding-left: 13px;
        padding-right: 13px;
    }
}
@media (max-width: 1250px){
    .sticky-wrap.shadow-in { left: 10px; }
}
/* lg breakpoint (max-width: 1199px) */
@media (max-width: 1199px) {
    .lg-p-30px { padding: 30px !important; }
    .lg-p-25px { padding: 25px !important; }
}
/* md breakpoint (max-width: 991px) */
@media (max-width: 991px) {
    .tab-style-07 .nav-tabs .nav-item .nav-link { padding: 20px; }
    .navbar.center-logo .navbar-left, .navbar.center-logo .navbar-right { width: 100%; }
    .navbar .navbar-nav .dropdown .dropdown-menu a, .navbar .navbar-nav .dropdown .dropdown-menu li.sub-title, .navbar-modern-inner .navbar-nav .dropdown .dropdown-menu li.sub-title, .navbar-full-screen-menu-inner .navbar-nav .dropdown .dropdown-menu li.sub-title { line-height: normal; }
    .header-icon .icon > a, .header-icon .icon .header-language > a, .header-icon .icon .header-cart > a { padding-left: 12px; }
    footer .nav-link { padding: 0 12px; }
    .tab-style-04 .nav-tabs .nav-item { padding: 0 16px; }
    /* md responsive utilities */
    .md-pe-15px { padding-right: 15px !important; }
    .md-mb-50px { margin-bottom: 50px !important; }
    .md-mb-30px { margin-bottom: 30px !important; }
}
/* sm breakpoint (max-width: 767px) */
@media (max-width: 767px) {
    .tab-style-04 .nav-tabs .nav-item .nav-link { line-height: 35px; }
    .swiper-number-pagination-progress-vertical .swiper-pagination-wrapper { right: 15px;}
    .btn.btn-large { font-size: 17px; padding: 13px 25px; }
    /* sm responsive utilities */
    .sm-p-20px { padding: 20px !important; }
    .sm-p-25px { padding: 25px !important; }
}
@media (min-width: 1301px) and (max-width: 1399px) {
    .navbar.center-logo .navbar-nav .nav-link, header.sticky .center-logo .navbar-nav .nav-link { padding-left: 13px; padding-right: 13px; font-size: 18px; }
}
@media (min-width: 1200px) and (max-width: 1300px) {
    .navbar.center-logo .navbar-nav .nav-link, header.sticky .center-logo .navbar-nav .nav-link { padding-left: 11px; padding-right: 11px; font-size: 17px; }
    .header-icon .icon > a { font-size: 16px; padding-left: 13px; }
}
@media (min-width: 992px) and (max-width: 1199px) {
    .header-icon .icon > a { font-size: 16px; padding-left: 10px; }
    .header-icon .icon .header-language > a, .header-icon .icon .header-cart > a { padding-left: 10px; font-size: 16px; }
    .navbar.center-logo .navbar-nav .nav-link, header.sticky .center-logo .navbar-nav .nav-link { padding-left: 14px; padding-right: 14px; font-size: 17px; }
    .btn.btn-switch-text.btn-large>span { padding: 16px 28px; }
}

/* ===================================
   영카트 호환 스타일
   - 기존 Gnuboard/Youngcart HTML 구조 지원
   =================================== */

/* 기본 컨테이너 초기화 */
#wrapper {
    width: 100%;
    margin: 0;
    padding: 0;
    padding-top: 120px; /* 헤더 아래로 콘텐츠 밀어냄 */
    min-width: auto;
}

@media (max-width: 767px) {
    #wrapper {
        padding-top: 80px; /* 모바일: 축소된 헤더 */
    }
}

#container {
    width: 100%;
    margin: 0;
    padding: 0;
}

.shop-content {
    padding: 0;
}

/* 영카트 기본 요소 숨김 */
#hd, #ft, #aside, #side_menu, #wrapper_title, #text_size {
    display: none !important;
}

/* 폼 요소 기본 스타일 */
.frm_input {
    width: 100%;
    max-width: 400px;
    padding: 12px 15px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 14px;
    transition: border-color 0.3s, box-shadow 0.3s;
}

.frm_input:focus {
    border-color: var(--base-color);
    box-shadow: 0 0 0 3px rgba(232, 180, 184, 0.15);
    outline: none;
}

/* 주문서 폼 최대 너비 */
#sod_frm,
#sod_bsk,
#sit_ov_from,
.sod_list {
    max-width: 1200px;
    margin: 0 auto;
    padding: 40px 20px;
}

/* 기본 테이블 스타일 오버라이드 */
.tbl_wrap table,
.tbl_head03 table,
.tbl_frm01 table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
}

/* 주문상품 테이블 */
.od_prd_list table {
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 15px rgba(0,0,0,0.05);
}

.od_prd_list thead th {
    background: var(--dark-gray) !important;
    color: #fff !important;
    padding: 15px !important;
    font-weight: 500;
    text-align: center;
}

.od_prd_list tbody td {
    padding: 20px 15px !important;
    border-bottom: 1px solid #f0f0f0;
    vertical-align: middle;
}

/* 상품 이미지 및 정보 정렬 */
.td_prd {
    display: flex !important;
    align-items: center;
    gap: 15px;
}

.sod_img {
    flex-shrink: 0;
}

.sod_img img {
    width: 80px;
    height: 80px;
    object-fit: cover;
    border-radius: 6px;
}

.sod_name {
    flex: 1;
}

.sod_name b {
    display: block;
    font-weight: 500;
    color: var(--dark-gray);
    margin-bottom: 5px;
}

.sod_opt {
    font-size: 13px;
    color: #888;
    line-height: 1.5;
}

/* 섹션 제목 스타일 */
#sod_frm section > h2,
#sod_frm_orderer > h2,
#sod_frm_taker > h2,
#sod_frm_addr > h2,
#sod_tot > h2,
#sod_frm_pay > h2,
.sod_left > h2,
.sod_right > h2 {
    font-size: 18px !important;
    font-weight: 600 !important;
    color: var(--dark-gray) !important;
    margin: 0 0 20px 0 !important;
    padding: 15px 20px !important;
    background: #f8f9fa !important;
    border-radius: 6px !important;
    border-left: 4px solid var(--base-color) !important;
}

/* 폼 테이블 */
.tbl_frm01 th {
    width: 150px;
    padding: 15px;
    background: #f8f9fa;
    font-weight: 500;
    text-align: left;
    vertical-align: top;
    border-bottom: 1px solid #eee;
}

.tbl_frm01 td {
    padding: 15px;
    border-bottom: 1px solid #eee;
}

/* 주문자/받는분 정보 박스 */
#sod_frm_orderer,
#sod_frm_taker,
#sod_frm_addr,
#sod_tot,
#sod_frm_pay {
    background: #fff;
    border-radius: 8px;
    padding: 25px;
    margin-bottom: 25px;
    box-shadow: 0 2px 15px rgba(0,0,0,0.05);
}

/* 결제수단 선택 */
.od_pay_sl {
    display: flex !important;
    flex-wrap: wrap;
    gap: 10px;
    margin: 20px 0;
}

.od_pay_sl label {
    display: flex !important;
    align-items: center;
    padding: 15px 20px !important;
    background: #f8f9fa;
    border: 2px solid transparent;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.3s;
    flex: 1;
    min-width: 140px;
}

.od_pay_sl label:hover {
    border-color: #ddd;
}

.od_pay_sl input[type="radio"]:checked + span {
    color: var(--dark-gray);
    font-weight: 500;
}

.od_pay_sl label:has(input:checked) {
    border-color: var(--base-color);
    background: #fff;
}

/* 주문 버튼 */
#sod_btn {
    text-align: center;
    padding: 40px 0;
}

#sod_btn button,
#sod_btn input[type="submit"] {
    padding: 18px 60px !important;
    font-size: 18px !important;
    font-weight: 600 !important;
    background: var(--dark-gray) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 6px !important;
    cursor: pointer;
    transition: all 0.3s;
}

#sod_btn button:hover,
#sod_btn input[type="submit"]:hover {
    background: #444 !important;
    transform: translateY(-2px);
}

/* 약관 동의 */
.od_agree,
#sod_agree {
    background: #f8f9fa;
    padding: 20px;
    border-radius: 6px;
    margin: 20px 0;
}

.od_agree label {
    display: flex;
    align-items: center;
    cursor: pointer;
}

.od_agree input[type="checkbox"] {
    margin-right: 10px;
}

/* 결제금액 요약 */
#sod_bsk_tot,
.sod_bsk_price,
#sod_frm_pricetot {
    background: linear-gradient(135deg, #f8f9fa 0%, #fff 100%);
    border-radius: 8px;
    padding: 25px;
    margin: 20px 0;
}

/* 장바구니 테이블 */
#sod_bsk_list table {
    width: 100%;
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 15px rgba(0,0,0,0.05);
}

#sod_bsk_list thead th {
    background: var(--dark-gray);
    color: #fff;
    padding: 15px;
    font-weight: 500;
}

#sod_bsk_list tbody td {
    padding: 20px 15px;
    border-bottom: 1px solid #f0f0f0;
    vertical-align: middle;
}

/* 상품 상세 페이지 */
#sit_ov_wrap {
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
}

#sit_pvi {
    flex: 0 0 calc(50% - 20px);
    max-width: calc(50% - 20px);
}

#sit_ov {
    flex: 1;
    min-width: 300px;
}

#sit_title {
    font-size: 26px;
    font-weight: 600;
    color: var(--dark-gray);
    margin: 0 0 10px 0;
}

/* 상품 이미지 */
#sit_pvi_big {
    position: relative;
    background: #f8f9fa;
    border-radius: 8px;
    overflow: hidden;
    margin-bottom: 15px;
}

#sit_pvi_big img {
    width: 100%;
    height: auto;
    display: block;
}

#sit_pvi_big a { display: none; }
#sit_pvi_big a.visible { display: block; }

/* 총 구매액 */
#sit_tot_price {
    background: var(--dark-gray);
    color: #fff;
    padding: 20px;
    border-radius: 6px;
    text-align: center;
    margin: 20px 0;
    font-size: 18px;
}

#sit_tot_price strong {
    font-size: 24px;
    margin-left: 10px;
}

/* 구매 버튼 */
#sit_ov_btn {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

#sit_ov_btn button,
#sit_ov_btn a {
    flex: 1;
    min-width: 120px;
    padding: 15px 20px;
    font-size: 16px;
    font-weight: 500;
    border-radius: 6px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.sit_btn_cart {
    background: #f0f0f0 !important;
    color: var(--dark-gray) !important;
    border: none !important;
}

.sit_btn_buy {
    background: var(--dark-gray) !important;
    color: #fff !important;
    border: none !important;
}

/* 주문내역/마이페이지 테이블 */
.smb_tbl table,
.od_tbl table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
}

.smb_tbl thead th,
.od_tbl thead th {
    background: var(--dark-gray);
    color: #fff;
    padding: 15px;
    font-weight: 500;
    text-align: center;
}

.smb_tbl tbody td,
.od_tbl tbody td {
    padding: 15px;
    border-bottom: 1px solid #eee;
    text-align: center;
}

/* 로그인 메시지 숨김 */
#hd_login_msg {
    display: none;
}

/* 모바일 반응형 */
@media (max-width: 992px) {
    #sit_ov_wrap {
        flex-direction: column;
    }

    #sit_pvi {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .tbl_frm01 th {
        width: 120px;
    }
}

@media (max-width: 768px) {
    #sod_frm,
    #sod_bsk,
    #sit_ov_from {
        padding: 20px 15px;
    }

    .tbl_frm01 th,
    .tbl_frm01 td {
        display: block;
        width: 100%;
    }

    .tbl_frm01 th {
        background: transparent;
        padding-bottom: 5px;
        border-bottom: none;
    }

    .tbl_frm01 td {
        padding-top: 0;
    }

    .od_prd_list thead {
        display: none;
    }

    .od_prd_list tbody td {
        display: block;
        width: 100%;
        text-align: left !important;
        padding: 10px 15px !important;
        border: none;
    }

    .od_prd_list tbody tr {
        display: block;
        border-bottom: 1px solid #eee;
        padding: 15px 0;
    }

    .td_prd {
        flex-direction: column;
        align-items: flex-start !important;
    }

    #sit_ov_btn {
        flex-direction: column;
    }

    #sit_ov_btn button,
    #sit_ov_btn a {
        width: 100%;
        min-width: auto;
    }

    .od_pay_sl {
        flex-direction: column;
    }

    .od_pay_sl label {
        width: 100%;
    }

    #sod_btn button,
    #sod_btn input[type="submit"] {
        width: 100%;
        padding: 15px !important;
    }
}

/* ===================================
   주문서 페이지 추가 스타일
   - orderform.php 완전 지원
   =================================== */

/* 주문서 폼 전체 레이아웃 */
#sod_frm.sod_frm_pc {
    max-width: 1200px;
    margin: 0 auto;
    padding: 40px 20px;
    background: #f8f9fa;
}

/* 좌우 레이아웃 */
.sod_left,
.sod_right {
    margin-bottom: 30px;
}

@media (min-width: 992px) {
    #sod_frm.sod_frm_pc {
        display: grid;
        grid-template-columns: 1fr;
        gap: 30px;
    }

    #sod_frm.sod_frm_pc > .tbl_head03 {
        grid-column: 1 / -1;
    }
}

/* 주문상품 확인 테이블 */
#sod_list {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
}

#sod_list thead th {
    background: var(--dark-gray) !important;
    color: #fff !important;
    padding: 15px 10px !important;
    font-weight: 500 !important;
    font-size: 14px;
    text-align: center;
    white-space: nowrap;
}

#sod_list tbody tr {
    border-bottom: 1px solid #f0f0f0;
}

#sod_list tbody td {
    padding: 20px 10px;
    vertical-align: middle;
}

#sod_list .td_prd {
    display: flex !important;
    align-items: flex-start;
    gap: 15px;
    text-align: left;
}

#sod_list .td_num,
#sod_list .td_numbig,
#sod_list .td_dvr {
    text-align: center !important;
    white-space: nowrap;
}

#sod_list .td_numbig {
    font-weight: 600;
    color: var(--dark-gray);
}

#sod_list .text_right {
    text-align: right !important;
}

/* 쿠폰 버튼 */
.cp_btn {
    display: inline-block;
    margin-top: 10px;
    padding: 5px 12px;
    font-size: 12px;
    background: var(--base-color);
    color: var(--dark-gray);
    border: none;
    border-radius: 3px;
    cursor: pointer;
    transition: all 0.3s;
}

.cp_btn:hover {
    background: var(--base-color-dark);
}

/* 주문 합계 영역 */
#sod_bsk_tot {
    background: linear-gradient(135deg, #f8f9fa 0%, #fff 100%);
    border-radius: 8px;
    padding: 25px;
    margin-bottom: 25px;
    box-shadow: 0 2px 15px rgba(0,0,0,0.05);
}

#sod_bsk_tot ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

#sod_bsk_tot li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid #eee;
}

#sod_bsk_tot li:last-child {
    border-bottom: none;
    padding-top: 15px;
    margin-top: 5px;
}

#sod_bsk_tot li span {
    color: #666;
    font-size: 14px;
}

#sod_bsk_tot li strong {
    font-size: 16px;
    color: var(--dark-gray);
}

#sod_bsk_tot li.sod_bsk_cnt strong {
    font-size: 24px;
    color: var(--base-color);
}

/* 결제정보 섹션 */
#sod_frm_pay {
    background: #fff;
    border-radius: 8px;
    padding: 25px;
    margin-bottom: 25px;
    box-shadow: 0 2px 15px rgba(0,0,0,0.05);
}

#sod_frm_pay h2 {
    font-size: 18px !important;
    font-weight: 600 !important;
    color: var(--dark-gray) !important;
    margin: 0 0 20px 0 !important;
    padding: 15px 20px !important;
    background: #f8f9fa !important;
    border-radius: 6px !important;
    border-left: 4px solid var(--base-color) !important;
}

/* 결제 테이블 */
.pay_tbl table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 20px;
}

.pay_tbl th {
    padding: 12px 15px;
    background: #f8f9fa;
    font-weight: 500;
    text-align: left;
    width: 120px;
    border-bottom: 1px solid #eee;
}

.pay_tbl td {
    padding: 12px 15px;
    border-bottom: 1px solid #eee;
}

.pay_tbl strong {
    color: var(--base-color);
    font-weight: 600;
}

/* 총 주문금액 */
#od_tot_price {
    background: var(--dark-gray);
    color: #fff;
    padding: 20px;
    border-radius: 6px;
    text-align: center;
    margin: 20px 0;
    font-size: 16px;
}

#od_tot_price span {
    margin-right: 15px;
}

#od_tot_price strong {
    font-size: 28px;
    color: var(--base-color);
}

/* 결제수단 선택 */
#od_pay_sl {
    margin-top: 25px;
}

#od_pay_sl h3 {
    font-size: 16px;
    font-weight: 600;
    color: var(--dark-gray);
    margin: 0 0 15px 0;
    padding-bottom: 10px;
    border-bottom: 1px solid #eee;
}

#sod_frm_paysel {
    display: flex !important;
    flex-wrap: wrap;
    gap: 10px;
    border: none;
    padding: 0;
    margin: 0;
}

#sod_frm_paysel legend {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
}

#sod_frm_paysel input[type="radio"] {
    display: none;
}

#sod_frm_paysel label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 15px 20px;
    background: #f8f9fa;
    border: 2px solid transparent;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.3s;
    font-size: 14px;
    font-weight: 500;
    min-width: 120px;
    text-align: center;
}

#sod_frm_paysel label:hover {
    border-color: #ddd;
    background: #fff;
}

#sod_frm_paysel input[type="radio"]:checked + label {
    border-color: var(--base-color);
    background: #fff;
    color: var(--dark-gray);
}

/* 포인트 알림 */
#sod_frm_pt_alert {
    background: #fff3cd;
    color: #856404;
    padding: 12px 15px;
    border-radius: 4px;
    font-size: 13px;
    margin-bottom: 15px;
}

#sod_frm_pt_alert strong {
    font-weight: 600;
}

/* 포인트 사용 */
#sod_frm_pt {
    background: #f8f9fa;
    padding: 20px;
    border-radius: 6px;
    margin-top: 20px;
}

#sod_frm_pt h3 {
    font-size: 15px;
    font-weight: 600;
    margin: 0 0 15px 0;
    color: var(--dark-gray);
}

#od_temp_point {
    width: 150px;
    padding: 10px 15px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 14px;
    text-align: right;
}

#sod_frm_pt .btn_frmline {
    margin-left: 10px;
    padding: 10px 15px;
}

/* 무통장입금 정보 */
#sod_frm_bankinfo {
    background: #e8f4fd;
    padding: 20px;
    border-radius: 6px;
    margin: 20px 0;
}

#sod_frm_bankinfo h3 {
    font-size: 15px;
    font-weight: 600;
    margin: 0 0 10px 0;
    color: var(--dark-gray);
}

#sod_frm_bankinfo select,
#sod_frm_bankinfo input {
    padding: 10px 15px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 14px;
}

/* 약관 동의 영역 */
#sod_agree {
    background: #f8f9fa;
    padding: 20px;
    border-radius: 6px;
    margin: 25px 0;
}

#sod_agree label {
    display: flex;
    align-items: center;
    cursor: pointer;
    font-size: 14px;
}

#sod_agree input[type="checkbox"] {
    margin-right: 10px;
    width: 18px;
    height: 18px;
}

#sod_agree a {
    color: var(--base-color);
    margin-left: 10px;
    text-decoration: underline;
}

/* 주문 버튼 영역 */
#sod_btn {
    text-align: center;
    padding: 30px 0;
    margin-top: 20px;
}

#sod_btn button {
    padding: 18px 80px !important;
    font-size: 18px !important;
    font-weight: 600 !important;
    background: var(--dark-gray) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 6px !important;
    cursor: pointer;
    transition: all 0.3s;
    box-shadow: 0 4px 15px rgba(0,0,0,0.2);
}

#sod_btn button:hover {
    background: #444 !important;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0,0,0,0.25);
}

/* 배송지 선택 라디오 */
.order_choice_place {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.order_choice_place input[type="radio"],
.order_choice_place input[type="checkbox"] {
    margin-right: 5px;
}

.order_choice_place label {
    display: inline-flex;
    align-items: center;
    padding: 8px 15px;
    background: #f8f9fa;
    border-radius: 4px;
    cursor: pointer;
    font-size: 14px;
    transition: all 0.3s;
}

.order_choice_place label:hover {
    background: #eee;
}

.order_choice_place .btn_frmline {
    padding: 8px 15px;
    font-size: 13px;
}

/* textarea 스타일 */
#sod_frm textarea {
    width: 100%;
    min-height: 100px;
    padding: 12px 15px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 14px;
    font-family: inherit;
    resize: vertical;
}

#sod_frm textarea:focus {
    border-color: var(--base-color);
    outline: none;
    box-shadow: 0 0 0 3px rgba(232, 180, 184, 0.15);
}

/* 주문서 반응형 */
@media (max-width: 768px) {
    #sod_frm.sod_frm_pc {
        padding: 20px 15px;
    }

    #sod_list thead {
        display: none;
    }

    #sod_list tbody tr {
        display: block;
        padding: 15px 0;
        border-bottom: 1px solid #eee;
    }

    #sod_list tbody td {
        display: block;
        width: 100%;
        padding: 5px 0;
        text-align: left !important;
        border: none;
    }

    #sod_list tbody td::before {
        content: attr(data-label);
        font-weight: 500;
        color: #888;
        margin-right: 10px;
    }

    #sod_list .td_prd {
        flex-direction: column;
        margin-bottom: 10px;
    }

    #sod_bsk_tot li.sod_bsk_cnt strong {
        font-size: 20px;
    }

    #od_tot_price strong {
        font-size: 22px;
    }

    #sod_frm_paysel {
        flex-direction: column;
    }

    #sod_frm_paysel label {
        width: 100%;
        justify-content: center;
    }

    #sod_btn button {
        width: 100%;
        padding: 15px 20px !important;
    }

    .order_choice_place {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* ===================================
   주문 완료/조회 페이지
   =================================== */

/* 주문 완료 */
#sod_fin {
    max-width: 800px;
    margin: 0 auto;
    padding: 60px 20px;
    text-align: center;
}

#sod_fin h2 {
    font-size: 28px;
    font-weight: 600;
    color: var(--dark-gray);
    margin-bottom: 20px;
}

#sod_fin p {
    font-size: 16px;
    color: #666;
    margin-bottom: 30px;
}

#sod_fin .btn_confirm {
    display: inline-block;
    padding: 15px 40px;
    background: var(--dark-gray);
    color: #fff;
    border-radius: 6px;
    font-size: 16px;
    font-weight: 500;
    text-decoration: none;
    transition: all 0.3s;
}

#sod_fin .btn_confirm:hover {
    background: #444;
}

/* 주문 조회 */
#sod_inquiry {
    max-width: 1200px;
    margin: 0 auto;
    padding: 40px 20px;
}

.od_inquiry_wrap {
    background: #fff;
    border-radius: 8px;
    padding: 25px;
    margin-bottom: 25px;
    box-shadow: 0 2px 15px rgba(0,0,0,0.05);
}

/* 주문 상세 조회 */
#sod_v {
    max-width: 1200px;
    margin: 0 auto;
    padding: 40px 20px;
}

.sod_v_wrap {
    background: #fff;
    border-radius: 8px;
    padding: 25px;
    margin-bottom: 25px;
    box-shadow: 0 2px 15px rgba(0,0,0,0.05);
}

.sod_v_wrap h2 {
    font-size: 18px;
    font-weight: 600;
    color: var(--dark-gray);
    margin: 0 0 20px 0;
    padding: 15px 20px;
    background: #f8f9fa;
    border-radius: 6px;
    border-left: 4px solid var(--base-color);
}

/* ===================================
   주문상세내역 페이지 (orderinquiryview)
   =================================== */

#sod_fin {
    max-width: 1200px;
    margin: 0 auto;
    padding: 40px 20px;
}

#sod_fin_no {
    text-align: center;
    font-size: 16px;
    color: #666;
    margin-bottom: 30px;
    padding: 20px;
    background: linear-gradient(135deg, #f8f9fa 0%, #fff 100%);
    border-radius: 8px;
}

#sod_fin_no strong {
    font-size: 24px;
    font-weight: 700;
    color: var(--base-color);
    display: block;
    margin-top: 5px;
}

/* 주문상품 목록 */
#sod_fin_list {
    background: #fff;
    border-radius: 8px;
    padding: 25px;
    margin-bottom: 30px;
    box-shadow: 0 2px 15px rgba(0,0,0,0.05);
}

#sod_fin_list > h2 {
    font-size: 18px !important;
    font-weight: 600 !important;
    color: var(--dark-gray) !important;
    margin: 0 0 20px 0 !important;
    padding: 15px 20px !important;
    background: #f8f9fa !important;
    border-radius: 6px !important;
    border-left: 4px solid var(--base-color) !important;
}

/* 상태 설명 영역 */
#sod_sts_wrap {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid #eee;
}

#sod_sts_explan_open {
    padding: 8px 15px;
    font-size: 13px;
    background: #f8f9fa;
    border: 1px solid #ddd;
    border-radius: 4px;
    cursor: pointer;
}

#sod_sts_explan {
    display: none;
    margin-top: 15px;
    padding: 20px;
    background: #f8f9fa;
    border-radius: 6px;
}

#sod_fin_legend {
    margin: 0;
}

#sod_fin_legend dt {
    float: left;
    width: 60px;
    font-weight: 600;
    color: var(--dark-gray);
    margin-bottom: 10px;
}

#sod_fin_legend dd {
    margin-left: 70px;
    margin-bottom: 10px;
    color: #666;
}

/* 주문상세 좌우 레이아웃 */
#sod_fin .sod_left,
#sod_fin .sod_right {
    background: #fff;
    border-radius: 8px;
    padding: 25px;
    margin-bottom: 30px;
    box-shadow: 0 2px 15px rgba(0,0,0,0.05);
}

#sod_fin .sod_left > h2,
#sod_fin .sod_right > h2 {
    font-size: 18px !important;
    font-weight: 600 !important;
    color: var(--dark-gray) !important;
    margin: 0 0 20px 0 !important;
    padding: 15px 20px !important;
    background: #f8f9fa !important;
    border-radius: 6px !important;
    border-left: 4px solid var(--base-color) !important;
}

@media (min-width: 992px) {
    #sod_fin .sod_left,
    #sod_fin .sod_right {
        display: inline-block;
        vertical-align: top;
        width: calc(50% - 15px);
    }

    #sod_fin .sod_left {
        margin-right: 30px;
    }
}

/* 섹션 제목 */
#sod_fin_orderer h3,
#sod_fin_receiver h3,
#sod_fin_dvr h3,
#sod_fin_pay h3 {
    font-size: 16px;
    font-weight: 600;
    color: var(--dark-gray);
    margin: 25px 0 15px 0;
    padding-bottom: 10px;
    border-bottom: 1px solid #eee;
}

#sod_fin_orderer h3:first-child,
#sod_fin_receiver h3:first-child,
#sod_fin_dvr h3:first-child {
    margin-top: 0;
}

/* tbl_head01 테이블 스타일 */
.tbl_head01 table {
    width: 100%;
    border-collapse: collapse;
}

.tbl_head01 th {
    padding: 12px 15px;
    background: #f8f9fa;
    font-weight: 500;
    text-align: left;
    width: 100px;
    border-bottom: 1px solid #eee;
    color: #666;
    font-size: 14px;
}

.tbl_head01 td {
    padding: 12px 15px;
    border-bottom: 1px solid #eee;
    font-size: 14px;
}

/* 주문 총액 리스트 */
#sod_bsk_tot2 {
    list-style: none;
    margin: 0 0 25px 0;
    padding: 0;
    background: linear-gradient(135deg, #f8f9fa 0%, #fff 100%);
    border-radius: 8px;
    padding: 20px;
}

#sod_bsk_tot2 li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid #eee;
}

#sod_bsk_tot2 li:last-child {
    border-bottom: none;
}

#sod_bsk_tot2 li span {
    color: #666;
    font-size: 14px;
}

#sod_bsk_tot2 li strong {
    font-size: 15px;
    color: var(--dark-gray);
}

#sod_bsk_tot2 li.sod_bsk_cnt strong {
    font-size: 20px;
    color: var(--base-color);
}

#sod_bsk_tot2 li.sod_fin_tot {
    background: var(--dark-gray);
    color: #fff;
    margin: 10px -20px -20px -20px;
    padding: 15px 20px;
    border-radius: 0 0 8px 8px;
}

#sod_bsk_tot2 li.sod_fin_tot span {
    color: #fff;
}

#sod_bsk_tot2 li.sod_fin_tot strong {
    color: var(--base-color);
    font-size: 22px;
}

#sod_bsk_tot2 li#alrdy {
    flex-direction: column;
    align-items: stretch;
}

#sod_bsk_tot2 li#alrdy > span,
#sod_bsk_tot2 li#alrdy > strong {
    display: block;
}

#sod_bsk_tot2 li#alrdy div {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px dashed rgba(255,255,255,0.3);
    font-size: 13px;
}

#sod_bsk_tot2 li#alrdy div p {
    margin: 5px 0;
}

#sod_bsk_tot2 li#alrdy div .title {
    display: inline-block;
    width: 80px;
    color: rgba(255,255,255,0.7);
}

/* 결제정보 */
#sod_fin_pay ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

#sod_fin_pay li {
    display: flex;
    padding: 12px 0;
    border-bottom: 1px solid #f0f0f0;
}

#sod_fin_pay li:last-child {
    border-bottom: none;
}

#sod_fin_pay li strong {
    width: 100px;
    flex-shrink: 0;
    color: #666;
    font-weight: 500;
    font-size: 14px;
}

#sod_fin_pay li span {
    flex: 1;
    font-size: 14px;
}

#sod_fin_pay li span a {
    color: var(--base-color);
    text-decoration: underline;
}

/* 주문 취소 섹션 */
#sod_fin_cancel {
    margin-top: 25px;
    padding-top: 25px;
    border-top: 1px solid #eee;
}

.sod_fin_c_btn {
    width: 100%;
    padding: 15px 20px;
    background: #f8f9fa;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 15px;
    font-weight: 500;
    color: #666;
    cursor: pointer;
    transition: all 0.3s;
}

.sod_fin_c_btn:hover {
    background: #eee;
    color: var(--dark-gray);
}

/* 취소 팝업 */
#sod_cancel_pop {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 9999;
}

.sod_fin_bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.5);
}

#sod_fin_cancelfrm {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: #fff;
    padding: 30px;
    border-radius: 8px;
    width: 90%;
    max-width: 400px;
    z-index: 10000;
}

#sod_fin_cancelfrm h2 {
    font-size: 18px;
    font-weight: 600;
    margin: 0 0 20px 0;
    color: var(--dark-gray);
}

#sod_fin_cancelfrm input[type="text"] {
    width: 100%;
    padding: 12px 15px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 14px;
    margin-bottom: 15px;
}

#sod_fin_cancelfrm input[type="submit"] {
    width: 100%;
    padding: 12px 20px;
    background: var(--dark-gray);
    color: #fff;
    border: none;
    border-radius: 4px;
    font-size: 15px;
    cursor: pointer;
}

.sod_cls_btn {
    position: absolute;
    top: 15px;
    right: 15px;
    background: none;
    border: none;
    font-size: 20px;
    color: #999;
    cursor: pointer;
}

/* 반응형 - 주문상세 */
@media (max-width: 991px) {
    #sod_fin .sod_left,
    #sod_fin .sod_right {
        width: 100%;
        margin-right: 0;
    }
}

@media (max-width: 768px) {
    #sod_fin {
        padding: 20px 15px;
    }

    #sod_fin_no strong {
        font-size: 20px;
    }

    .tbl_head01 th,
    .tbl_head01 td {
        display: block;
        width: 100%;
    }

    .tbl_head01 th {
        padding-bottom: 5px;
        border-bottom: none;
    }

    .tbl_head01 td {
        padding-top: 0;
    }

    #sod_bsk_tot2 li.sod_fin_tot strong {
        font-size: 18px;
    }

    #sod_fin_pay li {
        flex-direction: column;
    }

    #sod_fin_pay li strong {
        width: 100%;
        margin-bottom: 5px;
    }
}

/* ===================================
   주문 상태 배지
   =================================== */

/* 상태 배지 공통 스타일 */
.status_01, .status_02, .status_03, .status_04, .status_05, .status_06 {
    display: inline-block;
    padding: 5px 12px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
}

/* 입금확인중 - 회색 */
.status_01 {
    background: #f0f0f0;
    color: #666;
}

/* 입금완료 - 파란색 */
.status_02 {
    background: #e3f2fd;
    color: #1976d2;
}

/* 상품준비중 - 주황색 */
.status_03 {
    background: #fff3e0;
    color: #ef6c00;
}

/* 상품배송 - 청록색 */
.status_04 {
    background: #e0f7fa;
    color: #00838f;
}

/* 배송완료 - 녹색 */
.status_05 {
    background: #e8f5e9;
    color: #388e3c;
}

/* 주문취소 - 빨간색 */
.status_06 {
    background: #ffebee;
    color: #d32f2f;
}

/* ===================================
   주문 조회 목록 페이지
   =================================== */

/* 주문내역 테이블 */
.tbl_head03 table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 15px rgba(0,0,0,0.05);
}

.tbl_head03 thead th {
    background: var(--dark-gray) !important;
    color: #fff !important;
    padding: 15px 10px !important;
    font-weight: 500 !important;
    font-size: 14px;
    text-align: center;
    white-space: nowrap;
}

.tbl_head03 tbody td {
    padding: 15px 10px;
    border-bottom: 1px solid #f0f0f0;
    text-align: center;
    vertical-align: middle;
    font-size: 14px;
}

.tbl_head03 tbody tr:hover {
    background: #fafafa;
}

.tbl_head03 tbody tr:last-child td {
    border-bottom: none;
}

.tbl_head03 .td_numbig {
    font-weight: 600;
    color: var(--dark-gray);
}

.tbl_head03 .text_right {
    text-align: right !important;
}

.tbl_head03 .empty_table {
    padding: 50px 20px;
    text-align: center;
    color: #888;
}

/* 링크 스타일 */
.tbl_head03 a {
    color: var(--dark-gray);
    font-weight: 500;
}

.tbl_head03 a:hover {
    color: var(--base-color);
}

/* 주문내역 반응형 */
@media (max-width: 768px) {
    .tbl_head03 thead {
        display: none;
    }

    .tbl_head03 tbody tr {
        display: block;
        padding: 15px;
        margin-bottom: 10px;
        border: 1px solid #eee;
        border-radius: 6px;
        background: #fff;
    }

    .tbl_head03 tbody td {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 8px 0;
        text-align: right !important;
        border-bottom: 1px solid #f0f0f0;
    }

    .tbl_head03 tbody td:last-child {
        border-bottom: none;
    }

    .tbl_head03 tbody td::before {
        content: attr(data-label);
        font-weight: 500;
        color: #666;
        text-align: left;
    }
}

/* ===================================
   추가 유틸리티 클래스
   =================================== */

/* 배송 링크 */
.dvr_link {
    display: inline-block;
    padding: 5px 10px;
    background: var(--base-color);
    color: var(--dark-gray) !important;
    border-radius: 4px;
    font-size: 12px;
    margin-left: 10px;
}

.dvr_link:hover {
    background: var(--base-color-dark);
}

/* 영수증 확인 버튼 */
.btn_frmline.is-long-text {
    display: block;
    text-align: center;
    word-break: keep-all;
}

/* 가상계좌 테스트 (관리자용) */
#sod_fin_test {
    margin-top: 20px;
    text-align: center;
}

/* 쿠폰 레이어 */
#cp_layer {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.3);
    z-index: 9999;
    max-width: 500px;
    width: 90%;
    max-height: 80vh;
    overflow-y: auto;
}

#cp_layer .layer_head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px;
    border-bottom: 1px solid #eee;
}

#cp_layer .layer_head h3 {
    margin: 0;
    font-size: 18px;
    font-weight: 600;
}

#cp_layer .layer_close {
    background: none;
    border: none;
    font-size: 20px;
    color: #999;
    cursor: pointer;
}

#cp_layer .layer_body {
    padding: 20px;
}

#cp_layer .coupon_list {
    list-style: none;
    margin: 0;
    padding: 0;
}

#cp_layer .coupon_list li {
    padding: 15px;
    background: #f8f9fa;
    border-radius: 6px;
    margin-bottom: 10px;
    cursor: pointer;
    transition: all 0.3s;
}

#cp_layer .coupon_list li:hover {
    background: #eee;
}

#cp_layer .coupon_list li.selected {
    background: #fff;
    border: 2px solid var(--base-color);
}

/* 레이어 배경 */
.layer_bg {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.5);
    z-index: 9998;
}

/* ===================================
   주문서 추가 요소 스타일
   =================================== */

/* 포인트 사용 영역 */
.sod_frm_point {
    background: #f8f9fa;
    padding: 20px;
    border-radius: 6px;
    margin-top: 20px;
}

.sod_frm_point > div {
    margin-bottom: 15px;
}

.sod_frm_point > div:last-child {
    margin-bottom: 0;
}

.sod_frm_point label {
    display: block;
    font-weight: 500;
    margin-bottom: 8px;
    color: var(--dark-gray);
}

.sod_frm_point input[type="text"] {
    width: 120px;
    padding: 10px 15px;
    border: 1px solid #ddd;
    border-radius: 4px;
    text-align: right;
    font-size: 14px;
}

#sod_frm_pt {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}

#sod_frm_pt span {
    font-size: 14px;
}

#sod_frm_pt strong {
    color: #666;
    margin-right: 8px;
}

#sod_frm_pt em {
    font-style: normal;
    color: var(--base-color);
    font-weight: 600;
}

/* 무통장 입금 영역 */
#settle_bank {
    background: #e8f4fd;
    padding: 20px;
    border-radius: 6px;
    margin-top: 15px;
}

#settle_bank label {
    display: block;
    margin-bottom: 8px;
    font-weight: 500;
    color: var(--dark-gray);
}

#settle_bank select,
#settle_bank input[type="text"] {
    padding: 10px 15px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 14px;
    margin-right: 10px;
}

#settle_bank select {
    min-width: 200px;
}

/* 쿠폰 적용/취소 버튼 */
.cp_apply,
.cp_cancel {
    display: inline-block;
    padding: 5px 12px;
    font-size: 12px;
    border-radius: 3px;
    cursor: pointer;
    margin-left: 5px;
    border: none;
    transition: all 0.3s;
}

.cp_apply {
    background: var(--base-color);
    color: var(--dark-gray);
}

.cp_apply:hover {
    background: var(--base-color-dark);
}

.cp_cancel {
    background: #f0f0f0;
    color: #666;
}

.cp_cancel:hover {
    background: #ddd;
}

/* 쿠폰 선택 폼 */
#cp_frm {
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 6px;
    padding: 15px;
    margin-top: 10px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}

#cp_frm table {
    width: 100%;
    border-collapse: collapse;
}

#cp_frm th,
#cp_frm td {
    padding: 10px;
    text-align: left;
    border-bottom: 1px solid #eee;
    font-size: 13px;
}

#cp_frm th {
    background: #f8f9fa;
    font-weight: 500;
}

#cp_close {
    display: block;
    margin-top: 10px;
    padding: 8px 15px;
    background: #f0f0f0;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 13px;
}

/* 주문쿠폰/배송비쿠폰 */
#od_coupon_frm,
#sc_coupon_frm {
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 6px;
    padding: 15px;
    margin-top: 10px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}

.od_coupon_wrap {
    position: relative;
}

/* 결제수단 버튼 영역 */
.od_pay_buttons_el {
    margin-bottom: 20px;
}

.od_pay_buttons_el h3 {
    font-size: 16px;
    font-weight: 600;
    margin: 0 0 15px 0;
    color: var(--dark-gray);
}

/* 주문서 전체 배경 */
#sod_frm.sod_frm_pc {
    background: #f5f5f5;
}

/* 주문서 내부 섹션들 */
#sod_frm.sod_frm_pc > .tbl_head03,
#sod_frm.sod_frm_pc .sod_left section,
#sod_frm.sod_frm_pc .sod_right section,
#sod_frm.sod_frm_pc #sod_bsk_tot,
#sod_frm.sod_frm_pc #sod_frm_pay {
    background: #fff;
    border-radius: 8px;
    padding: 25px;
    margin-bottom: 25px;
    box-shadow: 0 2px 15px rgba(0,0,0,0.05);
}

/* 에스크로 안내 */
#sod_escrow_info {
    background: #fff3cd;
    padding: 15px 20px;
    border-radius: 6px;
    margin: 20px 0;
    font-size: 14px;
    color: #856404;
}

/* 약관 동의 */
#sod_agree_msg {
    text-align: center;
    margin: 25px 0;
    padding: 20px;
    background: #f8f9fa;
    border-radius: 6px;
}

#sod_agree_msg input[type="checkbox"] {
    margin-right: 10px;
    width: 18px;
    height: 18px;
}

#sod_agree_msg label {
    font-size: 15px;
    cursor: pointer;
}

#sod_agree_msg a {
    color: var(--base-color);
    text-decoration: underline;
    margin-left: 5px;
}

/* 배송희망일 */
#od_hope_date {
    cursor: pointer;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E") no-repeat right 15px center;
}

/* 결제 버튼 스타일 수정 */
.lb_icon {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
}

/* PG사 아이콘 라벨 */
.bank_icon, .vbank_icon, .iche_icon, .card_icon, .hp_icon,
.kakaopay_icon, .naverpay_icon, .PAYCO, .samsungpay_icon {
    padding: 12px 20px !important;
    border: 2px solid #eee !important;
    border-radius: 6px !important;
    margin-right: 8px !important;
    margin-bottom: 8px !important;
    transition: all 0.3s !important;
}

.bank_icon:hover, .vbank_icon:hover, .iche_icon:hover, .card_icon:hover, .hp_icon:hover,
.kakaopay_icon:hover, .naverpay_icon:hover, .PAYCO:hover, .samsungpay_icon:hover {
    border-color: #ddd !important;
    background: #fafafa !important;
}

/* 선택된 결제수단 */
input[type="radio"]:checked + .bank_icon,
input[type="radio"]:checked + .vbank_icon,
input[type="radio"]:checked + .iche_icon,
input[type="radio"]:checked + .card_icon,
input[type="radio"]:checked + .hp_icon,
input[type="radio"]:checked + .kakaopay_icon,
input[type="radio"]:checked + .naverpay_icon,
input[type="radio"]:checked + .PAYCO,
input[type="radio"]:checked + .samsungpay_icon {
    border-color: var(--base-color) !important;
    background: #fff !important;
}

/* 결제수단 라디오 숨기기 */
#sod_frm_paysel input[type="radio"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

/* datepicker 스타일 */
.ui-datepicker {
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 6px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.15);
    padding: 10px;
}

.ui-datepicker-header {
    background: var(--dark-gray);
    color: #fff;
    padding: 10px;
    border-radius: 4px;
    margin-bottom: 10px;
}

.ui-datepicker-title {
    font-weight: 600;
}

.ui-datepicker-prev, .ui-datepicker-next {
    cursor: pointer;
}

.ui-datepicker td a {
    display: block;
    padding: 8px;
    text-align: center;
    border-radius: 4px;
}

.ui-datepicker td a:hover {
    background: #f0f0f0;
}

.ui-datepicker td a.ui-state-active {
    background: var(--base-color);
    color: var(--dark-gray);
}

/* ===================================
   Crafto Style - Orderform / Checkout
====================================== */

/* 주문서 전체 레이아웃 */
#sod_frm {
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
}

#sod_frm .tbl_head03 {
    width: 100%;
}

#sod_frm .sod_left {
    flex: 1;
    min-width: 0;
    max-width: 65%;
}

#sod_frm .sod_right {
    width: 380px;
    flex-shrink: 0;
}

@media (max-width: 1199px) {
    #sod_frm .sod_left {
        max-width: 100%;
        width: 100%;
    }
    #sod_frm .sod_right {
        width: 100%;
    }
}

/* 주문서 섹션 스타일 */
#sod_frm section {
    background: #fff;
    border-radius: 6px;
    padding: 30px;
    margin-bottom: 25px;
    box-shadow: 0 2px 15px rgba(0,0,0,0.04);
    border: 1px solid #f0f0f0;
}

#sod_frm section h2 {
    font-size: 22px;
    font-weight: 600;
    color: var(--dark-gray);
    margin-bottom: 25px;
    padding-bottom: 15px;
    border-bottom: 2px solid #eee;
}

/* 테이블 폼 스타일 */
#sod_frm .tbl_frm01 table {
    border: none;
}

#sod_frm .tbl_frm01 th {
    background: transparent;
    border: none;
    font-weight: 500;
    color: var(--dark-gray);
    padding: 15px 0;
    width: 130px;
    vertical-align: top;
}

#sod_frm .tbl_frm01 td {
    border: none;
    padding: 12px 0;
}

#sod_frm .frm_input {
    width: 100%;
    padding: 12px 15px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 14px;
    transition: all 0.3s;
}

#sod_frm .frm_input:focus {
    border-color: var(--base-color);
    outline: none;
    box-shadow: 0 0 0 3px rgba(232,180,184,0.15);
}

#sod_frm .frm_address {
    margin-top: 10px;
}

#sod_frm textarea {
    width: 100%;
    padding: 12px 15px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 14px;
    min-height: 100px;
    resize: vertical;
}

#sod_frm textarea:focus {
    border-color: var(--base-color);
    outline: none;
}

/* 주소검색 버튼 */
#sod_frm .btn_address {
    background: var(--dark-gray);
    color: #fff;
    border: none;
    padding: 12px 20px;
    border-radius: 4px;
    font-size: 13px;
    cursor: pointer;
    margin-left: 10px;
    transition: all 0.3s;
}

#sod_frm .btn_address:hover {
    background: #444;
}

/* 배송지 선택 */
.order_choice_place {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
}

.order_choice_place input[type="radio"],
.order_choice_place input[type="checkbox"] {
    display: none;
}

.order_choice_place label {
    padding: 10px 18px;
    border: 1px solid #ddd;
    border-radius: 4px;
    cursor: pointer;
    font-size: 14px;
    transition: all 0.3s;
    background: #fff;
}

.order_choice_place label:hover {
    border-color: #bbb;
}

.order_choice_place input:checked + label {
    border-color: var(--base-color);
    background: rgba(232,180,184,0.1);
    color: var(--dark-gray);
}

.order_choice_place .btn_frmline {
    padding: 10px 18px;
    background: #f8f9fa;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 14px;
    cursor: pointer;
}

/* 주문 상품 목록 테이블 */
#sod_list {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 0;
}

#sod_list thead th {
    background: #f8f9fa;
    font-weight: 600;
    font-size: 14px;
    color: var(--dark-gray);
    padding: 15px 12px;
    text-align: center;
    border-bottom: 2px solid #eee;
}

#sod_list tbody td {
    padding: 20px 12px;
    border-bottom: 1px solid #f0f0f0;
    font-size: 14px;
    text-align: center;
    vertical-align: middle;
}

#sod_list tbody td.td_prd {
    text-align: left;
}

#sod_list .sod_img {
    display: inline-block;
    vertical-align: middle;
    margin-right: 15px;
}

#sod_list .sod_img img {
    width: 80px;
    height: 80px;
    object-fit: cover;
    border-radius: 6px;
    background: #f8f9fa;
}

#sod_list .sod_name {
    display: inline-block;
    vertical-align: middle;
    max-width: calc(100% - 100px);
}

#sod_list .sod_name b {
    font-size: 15px;
    font-weight: 600;
    color: var(--dark-gray);
    display: block;
    margin-bottom: 5px;
}

#sod_list .sod_opt {
    font-size: 13px;
    color: #888;
    line-height: 1.5;
}

/* 쿠폰 버튼 */
#sod_list .cp_btn {
    background: var(--base-color);
    color: var(--dark-gray);
    border: none;
    padding: 5px 12px;
    border-radius: 4px;
    font-size: 12px;
    cursor: pointer;
    margin-top: 8px;
}

/* 주문 합계 (오른쪽 사이드바) */
#sod_bsk_tot {
    background: #f8f9fa;
    border-radius: 6px;
    padding: 25px;
    margin-bottom: 20px;
}

#sod_bsk_tot ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

#sod_bsk_tot li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid #eee;
    font-size: 15px;
}

#sod_bsk_tot li:last-child {
    border-bottom: none;
    padding-top: 15px;
    margin-top: 5px;
}

#sod_bsk_tot li span {
    color: #666;
}

#sod_bsk_tot li strong {
    font-weight: 600;
    color: var(--dark-gray);
}

#sod_bsk_tot .sod_bsk_cnt {
    background: var(--dark-gray);
    margin: 15px -25px -25px;
    padding: 20px 25px;
    border-radius: 0 0 6px 6px;
}

#sod_bsk_tot .sod_bsk_cnt span {
    color: rgba(255,255,255,0.7);
    font-size: 16px;
}

#sod_bsk_tot .sod_bsk_cnt strong {
    color: #fff;
    font-size: 22px;
}

/* 결제 정보 섹션 */
#sod_frm_pay {
    position: sticky;
    top: 100px;
}

#sod_frm_pay h2 {
    font-size: 20px;
    font-weight: 600;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 2px solid #eee;
}

#sod_frm_pay .pay_tbl {
    margin-bottom: 20px;
}

#sod_frm_pay .pay_tbl table {
    width: 100%;
}

#sod_frm_pay .pay_tbl th {
    font-weight: 500;
    color: #666;
    padding: 10px 0;
    text-align: left;
    width: 100px;
}

#sod_frm_pay .pay_tbl td {
    padding: 10px 0;
    text-align: right;
}

/* 총 주문금액 */
#od_tot_price {
    background: linear-gradient(135deg, var(--dark-gray) 0%, #444 100%);
    color: #fff;
    padding: 25px;
    border-radius: 6px;
    margin-bottom: 25px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

#od_tot_price span {
    font-size: 16px;
    opacity: 0.8;
}

#od_tot_price strong {
    font-size: 26px;
    font-weight: 700;
}

/* 결제수단 선택 */
#od_pay_sl {
    background: #fff;
    border-radius: 6px;
    padding: 25px;
    border: 1px solid #f0f0f0;
}

#od_pay_sl h3 {
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 20px;
}

#sod_frm_paysel {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    border: none;
    padding: 0;
}

#sod_frm_paysel legend {
    display: none;
}

/* 결제수단 버튼 스타일 */
#sod_frm_paysel label {
    flex: 1;
    min-width: calc(50% - 5px);
    padding: 15px;
    border: 2px solid #eee;
    border-radius: 6px;
    text-align: center;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
}

#sod_frm_paysel label:hover {
    border-color: #ddd;
    background: #fafafa;
}

#sod_frm_paysel input[type="radio"]:checked + label {
    border-color: var(--base-color);
    background: rgba(232,180,184,0.1);
}

/* 주문 버튼 */
#sod_btn {
    text-align: center;
    margin-top: 25px;
}

#sod_btn button[type="submit"] {
    width: 100%;
    padding: 18px 30px;
    background: var(--dark-gray);
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 17px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s;
}

#sod_btn button[type="submit"]:hover {
    background: #444;
}

/* 쿠폰 레이어 스타일 */
.coupon_layer, #cp_layer {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.2);
    max-width: 500px;
    width: 90%;
    max-height: 80vh;
    overflow: hidden;
}

.coupon_layer h3 {
    background: var(--dark-gray);
    color: #fff;
    padding: 20px;
    margin: 0;
    font-size: 18px;
}

.coupon_layer .coupon_list {
    padding: 20px;
    max-height: 400px;
    overflow-y: auto;
}

.coupon_layer .coupon_item {
    border: 1px solid #eee;
    border-radius: 6px;
    padding: 15px;
    margin-bottom: 10px;
    cursor: pointer;
    transition: all 0.3s;
}

.coupon_layer .coupon_item:hover {
    border-color: var(--base-color);
    background: rgba(232,180,184,0.05);
}

/* ===================================
   Crafto Style - Single Product Page
====================================== */

/* 상품 상세 페이지 타이틀 */
.product-page-title {
    background: linear-gradient(135deg, #f8f9fa 0%, #fff 100%);
    padding: 40px 0;
    margin-bottom: 0;
}

.product-page-title h1 {
    font-size: 2.5rem;
    font-weight: 600;
    color: var(--dark-gray);
}

/* 상품 이미지 갤러리 - Crafto Style */
.product-gallery-crafto {
    display: flex;
    gap: 15px;
}

.product-gallery-crafto .thumb-nav {
    width: 100px;
    flex-shrink: 0;
}

.product-gallery-crafto .thumb-nav .thumb-item {
    width: 100%;
    margin-bottom: 10px;
    border: 2px solid transparent;
    border-radius: 6px;
    overflow: hidden;
    cursor: pointer;
    transition: all 0.3s;
}

.product-gallery-crafto .thumb-nav .thumb-item:hover,
.product-gallery-crafto .thumb-nav .thumb-item.active {
    border-color: var(--base-color);
}

.product-gallery-crafto .thumb-nav .thumb-item img {
    width: 100%;
    height: 100px;
    object-fit: cover;
}

.product-gallery-crafto .main-image-wrap {
    flex: 1;
    border-radius: 8px;
    overflow: hidden;
    background: #f8f9fa;
    position: relative;
}

.product-gallery-crafto .main-image-wrap img {
    width: 100%;
    height: auto;
}

/* 상품 정보 - Crafto Style */
.product-info-crafto {
    padding-left: 40px;
}

.product-info-crafto .product-brand {
    font-size: 14px;
    color: #888;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 8px;
}

.product-info-crafto .product-title {
    font-size: 28px;
    font-weight: 600;
    color: var(--dark-gray);
    line-height: 1.3;
    margin-bottom: 15px;
}

.product-info-crafto .product-rating {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: 1px solid #eee;
}

.product-info-crafto .product-rating .stars i {
    color: #ffc107;
    font-size: 14px;
}

.product-info-crafto .product-rating .review-count {
    font-size: 14px;
    color: #666;
}

.product-info-crafto .product-price-wrap {
    margin-bottom: 25px;
}

.product-info-crafto .original-price {
    font-size: 16px;
    color: #999;
    text-decoration: line-through;
    margin-right: 10px;
}

.product-info-crafto .current-price {
    font-size: 32px;
    font-weight: 700;
    color: var(--dark-gray);
}

.product-info-crafto .product-desc {
    font-size: 15px;
    color: #666;
    line-height: 1.7;
    margin-bottom: 25px;
}

/* 옵션 선택 - Crafto Style */
.product-info-crafto .option-group {
    margin-bottom: 20px;
}

.product-info-crafto .option-group label {
    display: block;
    font-weight: 600;
    font-size: 15px;
    color: var(--dark-gray);
    margin-bottom: 10px;
}

.product-info-crafto .option-group select {
    width: 100%;
    padding: 14px 15px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 14px;
    appearance: none;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") no-repeat right 15px center;
}

.product-info-crafto .option-group select:focus {
    border-color: var(--base-color);
    outline: none;
}

/* 수량 선택 - Crafto Style */
.quantity-crafto {
    display: inline-flex;
    align-items: center;
    border: 1px solid #ddd;
    border-radius: 4px;
    overflow: hidden;
}

.quantity-crafto button {
    width: 45px;
    height: 45px;
    border: none;
    background: #f8f9fa;
    cursor: pointer;
    font-size: 18px;
    color: #666;
    transition: all 0.3s;
}

.quantity-crafto button:hover {
    background: #eee;
}

.quantity-crafto input {
    width: 60px;
    height: 45px;
    border: none;
    text-align: center;
    font-size: 16px;
    font-weight: 500;
}

/* 구매 버튼 - Crafto Style */
.purchase-buttons-crafto {
    display: flex;
    gap: 10px;
    margin-top: 25px;
}

.purchase-buttons-crafto .btn-cart {
    flex: 1;
    padding: 16px 25px;
    background: #f8f9fa;
    border: 1px solid #ddd;
    color: var(--dark-gray);
    font-weight: 600;
    font-size: 15px;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.purchase-buttons-crafto .btn-cart:hover {
    background: #eee;
}

.purchase-buttons-crafto .btn-buy {
    flex: 1;
    padding: 16px 25px;
    background: var(--dark-gray);
    border: none;
    color: #fff;
    font-weight: 600;
    font-size: 15px;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.purchase-buttons-crafto .btn-buy:hover {
    background: #444;
}

.purchase-buttons-crafto .btn-wish {
    width: 55px;
    height: 55px;
    border: 1px solid #ddd;
    background: #fff;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
}

.purchase-buttons-crafto .btn-wish:hover {
    border-color: var(--base-color);
    color: var(--base-color);
}

/* 상품 특징 아이콘 */
.product-features {
    display: flex;
    gap: 20px;
    margin-top: 25px;
    padding-top: 25px;
    border-top: 1px solid #eee;
}

.product-features .feature-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: var(--dark-gray);
}

.product-features .feature-item i {
    font-size: 16px;
    color: #888;
}

/* 배송 정보 박스 */
.shipping-info-box {
    background: #f8f9fa;
    border-radius: 6px;
    padding: 20px 25px;
    margin-top: 25px;
}

.shipping-info-box .info-row {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 12px;
}

.shipping-info-box .info-row:last-child {
    margin-bottom: 0;
}

.shipping-info-box .info-row i {
    color: var(--dark-gray);
    font-size: 16px;
    margin-top: 3px;
}

.shipping-info-box .info-row .label {
    font-weight: 600;
    color: var(--dark-gray);
    margin-right: 5px;
}

/* 결제 안전 보장 박스 */
.payment-guarantee-box {
    background: #f8f9fa;
    border-radius: 6px;
    padding: 20px 25px;
    margin-top: 20px;
}

.payment-guarantee-box .title {
    font-weight: 600;
    color: var(--dark-gray);
    margin-bottom: 15px;
    font-size: 15px;
}

.payment-guarantee-box .payment-icons {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.payment-guarantee-box .payment-icons img {
    height: 25px;
    opacity: 0.7;
}

/* 상품 탭 - Crafto Style */
.product-tabs-crafto {
    margin-top: 60px;
    border-top: 1px solid #eee;
    padding-top: 40px;
}

.product-tabs-crafto .nav-tabs {
    border-bottom: 2px solid #eee;
    display: flex;
    justify-content: center;
    gap: 10px;
}

.product-tabs-crafto .nav-tabs .nav-link {
    border: none;
    padding: 15px 30px;
    font-size: 17px;
    font-weight: 500;
    color: #888;
    position: relative;
    background: transparent;
}

.product-tabs-crafto .nav-tabs .nav-link:hover {
    color: var(--dark-gray);
}

.product-tabs-crafto .nav-tabs .nav-link.active {
    color: var(--dark-gray);
    background: transparent;
}

.product-tabs-crafto .nav-tabs .nav-link.active::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--dark-gray);
}

.product-tabs-crafto .tab-content {
    padding: 40px 0;
}

/* 로그인/회원가입 페이지 - Crafto Style */
.login-register-section {
    padding: 60px 0;
}

.login-box, .register-box {
    background: #fff;
    border-radius: 8px;
    padding: 40px;
    box-shadow: 0 5px 30px rgba(0,0,0,0.08);
}

.login-box h3, .register-box h3 {
    font-size: 24px;
    font-weight: 600;
    color: var(--dark-gray);
    margin-bottom: 25px;
}

/* 반응형 */
@media (max-width: 991px) {
    .product-gallery-crafto {
        flex-direction: column-reverse;
    }

    .product-gallery-crafto .thumb-nav {
        width: 100%;
        display: flex;
        gap: 10px;
        overflow-x: auto;
    }

    .product-gallery-crafto .thumb-nav .thumb-item {
        width: 80px;
        flex-shrink: 0;
        margin-bottom: 0;
    }

    .product-gallery-crafto .thumb-nav .thumb-item img {
        height: 80px;
    }

    .product-info-crafto {
        padding-left: 0;
        margin-top: 30px;
    }

    .purchase-buttons-crafto {
        flex-wrap: wrap;
    }

    .purchase-buttons-crafto .btn-cart,
    .purchase-buttons-crafto .btn-buy {
        flex: 1 1 calc(50% - 30px);
    }
}

@media (max-width: 767px) {
    #sod_frm section {
        padding: 20px 15px;
    }

    #sod_frm .tbl_frm01 th {
        display: block;
        width: 100%;
        padding-bottom: 5px;
    }

    #sod_frm .tbl_frm01 td {
        display: block;
        width: 100%;
        padding-top: 0;
    }

    #sod_frm .tbl_frm01 tr {
        display: block;
        padding: 10px 0;
        border-bottom: 1px solid #f0f0f0;
    }

    #sod_list thead {
        display: none;
    }

    #sod_list tbody tr {
        display: block;
        padding: 15px 0;
        border-bottom: 1px solid #eee;
    }

    #sod_list tbody td {
        display: block;
        text-align: left;
        padding: 5px 0;
        border: none;
    }

    #sod_list tbody td::before {
        content: attr(data-label);
        font-weight: 600;
        margin-right: 10px;
    }

    #sod_list .sod_img {
        float: left;
        margin-right: 15px;
    }

    #od_tot_price {
        flex-direction: column;
        text-align: center;
        gap: 10px;
    }

    .product-features {
        flex-wrap: wrap;
    }
}

/* ===================================
   추가 주문서 스타일
====================================== */

/* 포인트 사용 섹션 */
.sod_frm_point {
    background: #f8f9fa;
    border-radius: 6px;
    padding: 20px;
    margin-top: 20px;
}

.sod_frm_point label {
    font-weight: 500;
    color: var(--dark-gray);
    margin-right: 10px;
}

.sod_frm_point input[type="text"] {
    padding: 10px 15px;
    border: 1px solid #ddd;
    border-radius: 4px;
    width: 120px;
    font-size: 14px;
}

.sod_frm_point input[type="text"]:focus {
    border-color: var(--base-color);
    outline: none;
}

#sod_frm_pt {
    margin-top: 15px;
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}

#sod_frm_pt span {
    font-size: 14px;
    color: #666;
}

#sod_frm_pt strong {
    margin-right: 5px;
    color: var(--dark-gray);
}

#sod_frm_pt em {
    color: var(--base-color);
    font-style: normal;
    font-weight: 600;
}

/* 무통장입금 계좌 선택 */
#settle_bank {
    background: #f8f9fa;
    border-radius: 6px;
    padding: 20px;
    margin-top: 15px;
}

#settle_bank select {
    width: 100%;
    padding: 12px 15px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 14px;
    margin-bottom: 15px;
}

#settle_bank label {
    font-weight: 500;
    color: var(--dark-gray);
    margin-right: 10px;
}

#settle_bank input[type="text"] {
    padding: 10px 15px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 14px;
}

/* 결제 버튼 영역 */
#sod_btn {
    margin-top: 30px;
    text-align: center;
}

#sod_btn button,
#sod_btn input[type="submit"],
#sod_btn .btn_submit {
    width: 100%;
    padding: 18px 40px;
    background: var(--dark-gray);
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 18px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s;
}

#sod_btn button:hover,
#sod_btn input[type="submit"]:hover,
#sod_btn .btn_submit:hover {
    background: #444;
}

/* 에스크로 안내 */
#sod_frm_escrow {
    margin-top: 20px;
    padding: 15px;
    background: #fff8e1;
    border-radius: 6px;
    font-size: 14px;
    color: #856404;
}

/* 동의 체크박스 */
#sod_agree, #sod_agree_msg {
    margin-top: 20px;
    padding: 20px;
    background: #f8f9fa;
    border-radius: 6px;
}

#sod_agree label,
#sod_agree_msg label {
    font-size: 14px;
    cursor: pointer;
    display: flex;
    align-items: center;
}

#sod_agree input[type="checkbox"],
#sod_agree_msg input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin-right: 10px;
    accent-color: var(--base-color);
}

/* 장바구니 테이블 추가 스타일 */
.tbl_head03 {
    margin-bottom: 30px;
}

.tbl_head03 table {
    width: 100%;
    border-collapse: collapse;
}

.tbl_head03 thead th {
    background: #f8f9fa;
    padding: 15px 12px;
    font-size: 14px;
    font-weight: 600;
    color: var(--dark-gray);
    border-bottom: 2px solid #eee;
    text-align: center;
}

.tbl_head03 tbody td {
    padding: 20px 12px;
    border-bottom: 1px solid #f0f0f0;
    text-align: center;
    vertical-align: middle;
}

.tbl_head03 tbody .td_prd {
    text-align: left;
}

.tbl_head03 .sod_img {
    display: inline-block;
    vertical-align: middle;
    margin-right: 15px;
}

.tbl_head03 .sod_img img {
    width: 80px;
    height: 80px;
    object-fit: cover;
    border-radius: 6px;
}

.tbl_head03 .sod_name {
    display: inline-block;
    vertical-align: middle;
}

.tbl_head03 .sod_name b,
.tbl_head03 .sod_name .prd_name b {
    font-size: 15px;
    font-weight: 600;
    color: var(--dark-gray);
}

.tbl_head03 .sod_opt {
    font-size: 13px;
    color: #888;
    margin-top: 5px;
}

/* 장바구니 삭제 버튼 */
.btn_cart_del {
    margin-top: 15px;
    display: flex;
    gap: 10px;
}

.btn_cart_del button {
    padding: 10px 20px;
    background: #f8f9fa;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 14px;
    cursor: pointer;
    transition: all 0.3s;
}

.btn_cart_del button:hover {
    background: #eee;
}

/* 체크박스 스타일 */
.chk_box {
    text-align: center;
}

.chk_box input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: var(--base-color);
}

/* 옵션 수정 버튼 */
.mod_options {
    padding: 5px 12px;
    background: #f8f9fa;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 12px;
    cursor: pointer;
    margin-top: 8px;
}

.mod_options:hover {
    background: #eee;
}

/* 상품 없음 메시지 */
.empty_table {
    padding: 60px 20px !important;
    text-align: center;
    color: #888;
    font-size: 16px;
    background: #f8f9fa;
}

/* 결제 폼 내 버튼 스타일 */
.btn_frmline {
    padding: 8px 15px;
    background: #f8f9fa;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 13px;
    cursor: pointer;
    transition: all 0.3s;
}

.btn_frmline:hover {
    background: #eee;
}

/* 네이버페이, 카카오페이 버튼 */
.naverpay_icon,
.kakaopay_icon {
    background-size: contain !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
}

/* 포인트 알림 */
#sod_frm_pt_alert {
    background: #fff3cd;
    padding: 15px;
    border-radius: 4px;
    font-size: 14px;
    color: #856404;
    margin-bottom: 20px;
}

#sod_frm_pt_alert strong {
    color: #533f03;
}

/* 계속쇼핑, 주문하기 버튼 영역 */
#sod_bsk_btn {
    margin-top: 30px;
    display: flex;
    justify-content: center;
    gap: 15px;
    flex-wrap: wrap;
}

#sod_bsk_btn a,
#sod_bsk_btn button {
    padding: 15px 40px;
    border-radius: 6px;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s;
    text-decoration: none;
}

#sod_bsk_btn .btn_continue {
    background: #f8f9fa;
    border: 1px solid #ddd;
    color: var(--dark-gray);
}

#sod_bsk_btn .btn_continue:hover {
    background: #eee;
}

#sod_bsk_btn .btn_order {
    background: var(--dark-gray);
    border: none;
    color: #fff;
}

#sod_bsk_btn .btn_order:hover {
    background: #444;
}

/* ===================================
   Crafto Style 유틸리티 클래스
   =================================== */

/* Font Size */
.fs-12 { font-size: 12px !important; }
.fs-13 { font-size: 13px !important; }
.fs-14 { font-size: 14px !important; }
.fs-15 { font-size: 15px !important; }
.fs-16 { font-size: 16px !important; }
.fs-17 { font-size: 17px !important; }
.fs-18 { font-size: 18px !important; }
.fs-19 { font-size: 19px !important; }
.fs-20 { font-size: 20px !important; }
.fs-22 { font-size: 22px !important; }
.fs-24 { font-size: 24px !important; }
.fs-26 { font-size: 26px !important; }
.fs-28 { font-size: 28px !important; }

/* Font Weight */
.fw-300 { font-weight: 300 !important; }
.fw-400 { font-weight: 400 !important; }
.fw-500 { font-weight: 500 !important; }
.fw-600 { font-weight: 600 !important; }
.fw-700 { font-weight: 700 !important; }

/* Line Height */
.lh-22 { line-height: 22px !important; }
.lh-24 { line-height: 24px !important; }
.lh-28 { line-height: 28px !important; }
.lh-initial { line-height: initial !important; }

/* Letter Spacing */
.ls-0px { letter-spacing: 0 !important; }
.ls-minus-1px { letter-spacing: -1px !important; }

/* Padding */
.p-4 { padding: 1.5rem !important; }
.p-5 { padding: 2rem !important; }
.p-6 { padding: 2.5rem !important; }
.p-8px { padding: 8px !important; }
.p-10px { padding: 10px !important; }
.p-15px { padding: 15px !important; }
.p-20px { padding: 20px !important; }
.p-25px { padding: 25px !important; }
.p-30px { padding: 30px !important; }
.p-40px { padding: 40px !important; }
.pt-0 { padding-top: 0 !important; }
.pt-20px { padding-top: 20px !important; }
.pt-30px { padding-top: 30px !important; }
.pt-60px { padding-top: 60px !important; }
.pb-0 { padding-bottom: 0 !important; }
.pb-20px { padding-bottom: 20px !important; }
.ps-15px { padding-left: 15px !important; }
.ps-25px { padding-left: 25px !important; }
.ps-30px { padding-left: 30px !important; }
.pe-15px { padding-right: 15px !important; }
.pe-25px { padding-right: 25px !important; }
.pe-30px { padding-right: 30px !important; }
.pe-lg-50px { padding-right: 50px !important; }
.ps-lg-30px { padding-left: 30px !important; }

/* Margin */
.mb-0 { margin-bottom: 0 !important; }
.mb-2 { margin-bottom: 0.5rem !important; }
.mb-3 { margin-bottom: 1rem !important; }
.mb-4 { margin-bottom: 1.5rem !important; }
.mb-5px { margin-bottom: 5px !important; }
.mb-8px { margin-bottom: 8px !important; }
.mb-10px { margin-bottom: 10px !important; }
.mb-15px { margin-bottom: 15px !important; }
.mb-20px { margin-bottom: 20px !important; }
.mb-25px { margin-bottom: 25px !important; }
.mb-30px { margin-bottom: 30px !important; }
.mb-35px { margin-bottom: 35px !important; }
.mb-40px { margin-bottom: 40px !important; }
.mt-15px { margin-top: 15px !important; }
.mt-20px { margin-top: 20px !important; }
.mt-50px { margin-top: 50px !important; }
.me-5px { margin-right: 5px !important; }
.me-10px { margin-right: 10px !important; }
.me-15px { margin-right: 15px !important; }
.me-25px { margin-right: 25px !important; }
.ms-auto { margin-left: auto !important; }

/* Width/Height */
.w-100 { width: 100% !important; }
.w-45px { width: 45px !important; }
.w-50px { width: 50px !important; }
.w-90 { width: 90% !important; }
.h-1px { height: 1px !important; }
.h-30px { height: 30px !important; }
.h-40px { height: 40px !important; }
.h-45px { height: 45px !important; }
.h-50px { height: 50px !important; }

/* Colors */
.text-dark-gray { color: var(--dark-gray) !important; }
.text-medium-gray { color: #888 !important; }
.text-white { color: #fff !important; }
.text-red { color: #dc3545 !important; }
.text-danger { color: #dc3545 !important; }
.text-success { color: #28a745 !important; }
.text-muted { color: #6c757d !important; }
.text-golden-yellow { color: #ffc107 !important; }
.bg-dark-gray { background-color: var(--dark-gray) !important; }
.bg-very-light-gray { background-color: #f8f9fa !important; }
.bg-white { background-color: #fff !important; }
.bg-extra-medium-gray { background-color: #eee !important; }
.bg-light { background-color: #f8f9fa !important; }
.bg-dark-gray-transparent-medium { background-color: rgba(35,35,35,0.6) !important; }

/* Border */
.border { border: 1px solid #dee2e6 !important; }
.border-0 { border: 0 !important; }
.border-top { border-top: 1px solid #dee2e6 !important; }
.border-bottom { border-bottom: 1px solid #dee2e6 !important; }
.border-color-extra-medium-gray { border-color: #eee !important; }
.border-radius-4px { border-radius: 4px !important; }
.border-radius-5px { border-radius: 5px !important; }
.border-radius-6px { border-radius: 6px !important; }
.border-radius-8px { border-radius: 8px !important; }
.rounded-circle { border-radius: 50% !important; }

/* Flexbox */
.d-flex { display: flex !important; }
.d-block { display: block !important; }
.d-none { display: none !important; }
.d-inline-block { display: inline-block !important; }
.d-inline-flex { display: inline-flex !important; }
.flex-wrap { flex-wrap: wrap !important; }
.flex-grow-1 { flex-grow: 1 !important; }
.flex-shrink-0 { flex-shrink: 0 !important; }
.flex-column { flex-direction: column !important; }
.align-items-center { align-items: center !important; }
.align-middle { vertical-align: middle !important; }
.justify-content-center { justify-content: center !important; }
.justify-content-between { justify-content: space-between !important; }
.gap-2 { gap: 0.5rem !important; }
.gap-10px { gap: 10px !important; }
.gap-15px { gap: 15px !important; }
.gap-5px { gap: 5px !important; }

/* Position */
.position-relative { position: relative !important; }
.position-absolute { position: absolute !important; }
.position-lg-sticky { position: sticky !important; }

/* Visibility */
.overflow-hidden { overflow: hidden !important; }
.overflow-auto { overflow: auto !important; }

/* Shadow */
.shadow-sm { box-shadow: 0 2px 15px rgba(0,0,0,0.08) !important; }
.box-shadow-extra-large { box-shadow: 0 10px 50px rgba(0,0,0,0.08) !important; }

/* Button Styles */
.btn-round-edge { border-radius: 6px !important; }
.btn-none-transform { text-transform: none !important; }
.btn-box-shadow { box-shadow: 0 5px 20px rgba(0,0,0,0.15) !important; }
.btn-extra-large {
    padding: 18px 40px !important;
    font-size: 16px !important;
}
.btn-outline-dark-gray {
    border: 1px solid var(--dark-gray) !important;
    color: var(--dark-gray) !important;
    background: transparent !important;
}
.btn-outline-dark-gray:hover {
    background: var(--dark-gray) !important;
    color: #fff !important;
}
.btn-outline-secondary {
    border: 1px solid #ddd !important;
    color: #666 !important;
    background: transparent !important;
}
.btn-outline-secondary:hover {
    background: #f8f9fa !important;
}

/* Alt Font */
.alt-font {
    font-family: var(--alt-font) !important;
}

/* Card styles */
.card {
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
}
.card-header {
    background: #fff;
    padding: 15px 20px;
}
.card-body {
    padding: 20px;
}

/* Form styles */
.form-control {
    padding: 12px 15px;
    border: 1px solid #e0e0e0;
    border-radius: 4px;
    font-size: 14px;
    transition: border-color 0.3s, box-shadow 0.3s;
}
.form-control:focus {
    border-color: var(--base-color);
    box-shadow: 0 0 0 3px rgba(232,180,184,0.15);
    outline: none;
}
.form-select {
    padding: 12px 15px;
    border: 1px solid #e0e0e0;
    border-radius: 4px;
    font-size: 14px;
}
.form-select:focus {
    border-color: var(--base-color);
    box-shadow: 0 0 0 3px rgba(232,180,184,0.15);
    outline: none;
}
.form-label {
    font-size: 14px;
    font-weight: 500;
    margin-bottom: 8px;
    display: block;
}
.form-check-input:checked {
    background-color: var(--base-color);
    border-color: var(--base-color);
}

/* Input Group */
.input-group {
    display: flex;
}
.input-group .form-control {
    flex: 1;
    border-radius: 4px 0 0 4px;
}
.input-group .btn {
    border-radius: 0 4px 4px 0;
}
.input-group-text {
    padding: 12px 15px;
    background: #f8f9fa;
    border: 1px solid #e0e0e0;
    border-left: 0;
    font-size: 14px;
}

/* Badge */
.badge {
    display: inline-block;
    padding: 5px 10px;
    font-size: 12px;
    font-weight: 500;
    border-radius: 4px;
}
.badge.bg-danger { background-color: #dc3545 !important; color: #fff; }
.badge.bg-success { background-color: #28a745 !important; color: #fff; }

/* Alert */
.alert {
    padding: 15px 20px;
    border-radius: 4px;
    font-size: 14px;
}
.alert-warning {
    background: #fff3cd;
    border: 1px solid #ffc107;
    color: #856404;
}

/* List unstyled */
.list-unstyled {
    list-style: none;
    padding: 0;
    margin: 0;
}

/* Sound Only (screen reader) */
.sound_only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Button Switch Text */
.btn-switch-text {
    position: relative;
    overflow: hidden;
}
.btn-switch-text > span {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}
.btn-switch-text .btn-double-text {
    position: relative;
}

/* Feature Box */
.feature-box {
    display: flex;
    align-items: flex-start;
}
.feature-box-left-icon-middle {
    align-items: center;
}
.feature-box-icon {
    flex-shrink: 0;
}
.feature-box-content {
    flex: 1;
}
.feature-box-icon-rounded {
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
}

/* Header styles */
header.header-with-topbar {
    position: relative;
    z-index: 100;
    background: #fff;
}
header .header-top-bar {
    border-bottom: 1px solid #eee;
}
header .navbar {
    box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}

/* Top Margin for sections - 헤더 아래 콘텐츠 시작 */
.top-space-margin {
    margin-top: 0 !important;
    padding-top: 30px !important;
}

/* Product Page Specific */
.product-price del {
    opacity: 0.6;
}
.product-meta span:first-child {
    flex-shrink: 0;
}
#sit_tot_price strong {
    font-weight: 700;
}

/* Responsive utilities */
@media (min-width: 992px) {
    .d-lg-block { display: block !important; }
    .d-lg-none { display: none !important; }
    .d-lg-flex { display: flex !important; }
    .d-none.d-lg-block { display: block !important; }
    .col-lg-2 { flex: 0 0 auto; width: 16.66666667%; }
    .col-lg-5 { flex: 0 0 auto; width: 41.66666667%; }
    .col-lg-7 { flex: 0 0 auto; width: 58.33333333%; }
    .col-lg-10 { flex: 0 0 auto; width: 83.33333333%; }
    .order-lg-1 { order: 1 !important; }
    .order-lg-2 { order: 2 !important; }
    .pe-lg-50px { padding-right: 50px !important; }
    .ps-lg-30px { padding-left: 30px !important; }
}

@media (max-width: 991px) {
    .md-pe-15px { padding-right: 15px !important; }
    .md-ps-15px { padding-left: 15px !important; }
    .md-mb-40px { margin-bottom: 40px !important; }
    .md-pt-30px { padding-top: 30px !important; }
    .pe-lg-50px { padding-right: 15px !important; }
    .ps-lg-30px { padding-left: 15px !important; }
}

@media (max-width: 575px) {
    .xs-fs-24 { font-size: 24px !important; }
    .xs-me-0 { margin-right: 0 !important; }
    .xs-mb-15px { margin-bottom: 15px !important; }
}

/* ===================================
   장바구니 숨김 처리
   - 나중에 장바구니 기능 활성화시 이 섹션 삭제
   =================================== */

/* 헤더 장바구니 아이콘 숨김 */
.header-cart-icon,
a[href*="cart.php"],
a[href*="/cart"],
.cart-icon,
#header_cart,
.header_cart,
.shop-cart-icon,
.widget_shopping_cart {
    display: none !important;
}

/* 상품 상세 페이지 장바구니 버튼 숨김 */
#sit_btn_cart,
.sit_btn_cart,
button[onclick*="cart"],
input[value*="장바구니"],
.btn_cart,
#btn_cart,
.sitbtn_cart,
.sit_tot_cart,
.add_cart,
.add-cart,
[class*="add-to-cart"] {
    display: none !important;
}

/* 장바구니 관련 링크/요소 숨김 */
.cart-link,
.cart-contents,
.cart-count,
.cart-total,
.mini-cart,
.minicart,
.cart-dropdown,
.cart-sidebar,
.offcanvas-cart,
.side-cart,
#cart_count,
.cart_count {
    display: none !important;
}

/* 상품 호버시 장바구니 버튼 숨김 */
.shop-hover ul li:first-child,
.product-action .cart,
.product-buttons .cart {
    display: none !important;
}

/* 주문서/목록에서 장바구니 관련 버튼 숨김 */
.od_cart_btn,
a[href*="cartupdate"],
.cart-update-btn,
#sit_ov_cart,
.sit_ov_btn.cart_btn {
    display: none !important;
}

/* 바로구매 버튼 스타일 강화 */
#sit_btn_buy,
.sit_btn_buy,
.btn_buy,
.buy-now,
.direct-buy {
    width: 100% !important;
    max-width: 100% !important;
}

/* 관심상품 버튼 */
.wishlist-btn {
    transition: all 0.3s ease;
}
.wishlist-btn:hover {
    background: var(--base-color-light) !important;
}
.wishlist-btn:hover i {
    color: var(--base-color) !important;
}

/* 수량 선택 스타일 - 영카트 전용 */
.sit-quantity {
    display: flex;
    align-items: center;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    overflow: hidden;
}
.sit-quantity .sit_qty_btn {
    width: 40px;
    height: 40px;
    border: none;
    background: #f8f9fa;
    font-size: 18px;
    cursor: pointer;
    transition: all 0.3s;
    position: relative;
}
.sit-quantity .sit_qty_btn:hover {
    background: #e9ecef;
}
/* +/- 기호 표시 */
.sit-quantity .sit_qty_minus::before {
    content: "−";
    font-size: 20px;
    font-weight: 300;
    color: #333;
}
.sit-quantity .sit_qty_plus::before {
    content: "+";
    font-size: 20px;
    font-weight: 300;
    color: #333;
}
.sit-quantity .sit_qty_text {
    width: 50px;
    height: 40px;
    border: none;
    border-left: 1px solid #e0e0e0;
    border-right: 1px solid #e0e0e0;
    text-align: center;
    font-size: 15px;
    font-weight: 500;
}

/* ===================================
   화환 리본 문구 입력 섹션 (상품 상세)
   =================================== */
.ribbon-input-section {
    border: 2px solid var(--base-color);
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
}
.ribbon-header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 15px 20px;
    background: linear-gradient(135deg, var(--base-color) 0%, #1a5c3a 100%);
    color: #fff;
    font-weight: 600;
    font-size: 15px;
}
.ribbon-header i {
    font-size: 18px;
}
.badge-important {
    background: #ff6b6b;
    color: #fff;
    font-size: 11px;
    padding: 3px 10px;
    border-radius: 20px;
    font-weight: 600;
    margin-left: auto;
}
.ribbon-body {
    padding: 20px;
    background: #fafafa;
}

/* 미니 리본 미리보기 */
.ribbon-preview-mini {
    display: flex;
    align-items: stretch;
    justify-content: center;
    margin-bottom: 20px;
    max-width: 320px;
    margin-left: auto;
    margin-right: auto;
}
.ribbon-left-mini, .ribbon-right-mini {
    flex: 1;
    padding: 12px 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    min-height: 50px;
}
.ribbon-left-mini {
    background: linear-gradient(180deg, #7c3aed 0%, #6d28d9 100%);
    border-radius: 6px 0 0 20px;
}
.ribbon-right-mini {
    background: linear-gradient(180deg, #7c3aed 0%, #6d28d9 100%);
    border-radius: 0 6px 20px 0;
}
.ribbon-center-mini {
    width: 40px;
    background: #f3e8ff;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #7c3aed;
    font-size: 16px;
}
.ribbon-left-mini span, .ribbon-right-mini span {
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    word-break: keep-all;
    line-height: 1.3;
}

/* 입력 필드 */
.ribbon-inputs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}
.ribbon-field {
    display: flex;
    flex-direction: column;
}
.ribbon-field label {
    font-size: 13px;
    font-weight: 600;
    color: #333;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 5px;
}
.ribbon-field label i {
    color: #7c3aed;
    font-size: 14px;
}
.ribbon-field input.form-control {
    padding: 12px 15px;
    border: 2px solid #e0e0e0;
    border-radius: 8px;
    font-size: 14px;
    text-align: center;
    font-weight: 500;
    transition: all 0.3s;
}
.ribbon-field input.form-control:focus {
    border-color: #7c3aed;
    outline: none;
    box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.1);
}
.ribbon-field input.form-control::placeholder {
    color: #aaa;
    font-weight: 400;
}
.ribbon-field small {
    display: block;
    margin-top: 6px;
    font-size: 11px;
    color: #888;
    text-align: center;
}

@media (max-width: 576px) {
    .ribbon-inputs {
        grid-template-columns: 1fr;
    }
    .ribbon-preview-mini {
        max-width: 250px;
    }
}

/* ===================================
   인덱스 카테고리 아이콘 - 모바일 3열 레이아웃
   =================================== */
@media (max-width: 767.98px) {
    .category-icons {
        display: flex !important;
        flex-wrap: wrap !important;
    }
    .category-icons > .col {
        flex: 0 0 33.333333% !important;
        max-width: 33.333333% !important;
        width: 33.333333% !important;
        padding-left: 5px !important;
        padding-right: 5px !important;
        margin-bottom: 20px !important;
    }
    .category-icons .w-110px,
    .category-icons .h-110px,
    .category-icons [class*="w-110px"],
    .category-icons [class*="h-110px"] {
        width: 65px !important;
        height: 65px !important;
        min-width: 65px !important;
        min-height: 65px !important;
    }
    .category-icons .fs-50,
    .category-icons [class*="fs-50"] {
        font-size: 26px !important;
    }
    .category-icons .w-60px,
    .category-icons .h-60px {
        width: 32px !important;
        height: 32px !important;
    }
    .category-icons .fs-18 {
        font-size: 12px !important;
    }
    .category-icons .mb-15px {
        margin-bottom: 8px !important;
    }
}

/* ===================================
   모바일 메인페이지 섹션 최적화
   =================================== */
@media (max-width: 767px) {
    /* Hero 섹션 패딩 축소 */
    .full-screen, .md-h-600px, .sm-h-500px {
        min-height: 350px !important;
        height: auto !important;
    }
    .cover-background {
        padding: 30px 15px !important;
    }

    /* 섹션 패딩 */
    section.ps-7, section.pe-7 {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }
    section.pb-3, section.pt-3 {
        padding-top: 25px !important;
        padding-bottom: 25px !important;
    }
    .half-section {
        padding: 25px 0 !important;
    }

    /* 타이틀 폰트 - 적당한 크기 */
    h2.alt-font {
        font-size: 24px !important;
        line-height: 1.3 !important;
        margin-bottom: 12px !important;
    }
    h2.alt-font .fw-600 {
        font-size: 24px !important;
    }
    .lh-50 {
        line-height: 1.4 !important;
    }
    .fs-20 {
        font-size: 18px !important;
    }
    .fs-18 {
        font-size: 16px !important;
    }
    .text-highlight {
        font-size: 14px !important;
    }

    /* 섹션 간격 */
    .mb-5, .mb-50px {
        margin-bottom: 25px !important;
    }
    .mb-15px {
        margin-bottom: 12px !important;
    }
    .pt-11, .pb-11 {
        padding-top: 25px !important;
        padding-bottom: 25px !important;
    }
    .ps-15, .pe-15 {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }

    /* New Arrival 섹션 */
    .bg-very-light-gray.ps-3 {
        padding: 20px 15px !important;
    }
    .bg-very-light-gray .col-lg-3 {
        padding: 15px !important;
        margin-bottom: 20px !important;
    }
    .bg-very-light-gray h2 {
        font-size: 22px !important;
        margin-bottom: 10px !important;
    }
    .bg-very-light-gray p {
        font-size: 14px !important;
        margin-bottom: 12px !important;
    }
    .bg-very-light-gray .btn-medium {
        padding: 10px 20px !important;
        font-size: 14px !important;
    }

    /* 슬라이더 */
    .interactive-banner-style-09 img {
        height: 220px !important;
    }
    .image-content {
        padding: 20px !important;
    }
    .image-content .fs-20 {
        font-size: 16px !important;
    }
    .image-content .fs-14 {
        font-size: 13px !important;
    }
    .content-arrow {
        width: 40px !important;
        height: 40px !important;
        line-height: 40px !important;
    }

    /* new arrival 큰 텍스트 숨김 */
    .fs-180, .fs-150, .fs-130 {
        display: none !important;
    }

    /* 추천상품 섹션 */
    .row.mb-5 {
        margin-bottom: 15px !important;
    }
    .col-12.text-center h2 {
        font-size: 20px !important;
    }

    /* 카테고리 아이콘 섹션 */
    .category-icons .w-110px,
    .category-icons .h-110px {
        width: 55px !important;
        height: 55px !important;
    }
    .category-icons .fs-50 {
        font-size: 22px !important;
    }

    /* ==============================
       Hero 슬라이더 섹션 (magic-cursor)
       ============================== */
    .swiper.magic-cursor .swiper-wrapper {
        padding-top: 30px !important;
        padding-bottom: 30px !important;
    }
    .swiper.magic-cursor .swiper-slide {
        transform: scale(0.95) !important;
        border-radius: 12px !important;
    }
    .swiper.magic-cursor .swiper-slide.swiper-slide-active {
        transform: scale(1) !important;
    }
    .swiper.magic-cursor .h-500px,
    .swiper.magic-cursor .md-h-400px,
    .swiper.magic-cursor .sm-h-350px {
        height: 300px !important;
        min-height: 300px !important;
    }
    .swiper.magic-cursor .ps-5 {
        padding-left: 20px !important;
    }
    .swiper.magic-cursor .pe-5 {
        padding-right: 20px !important;
    }
    .swiper.magic-cursor .fs-60 {
        font-size: 26px !important;
    }
    .swiper.magic-cursor .lg-fs-50 {
        font-size: 26px !important;
    }
    .swiper.magic-cursor .fs-40 {
        font-size: 16px !important;
    }
    .swiper.magic-cursor .lg-fs-30 {
        font-size: 16px !important;
    }
    .swiper.magic-cursor .mb-30px {
        margin-bottom: 15px !important;
    }
    .swiper.magic-cursor .mb-15px {
        margin-bottom: 8px !important;
    }
    .swiper.magic-cursor .lh-100 {
        line-height: 1.2 !important;
    }
    .swiper.magic-cursor .btn-medium {
        padding: 8px 16px !important;
        font-size: 13px !important;
    }
}

/* Hero 섹션 상단 패딩 - 인라인 스타일 오버라이드 */
@media (max-width: 767px) {
    section.p-0 {
        padding-top: 50px !important;
        padding-bottom: 25px !important;
    }
}