/* Blossom & Green — 템플릿 위에 얹는 한국어 최적화 및 추가 컴포넌트 */
:root { --bng-primary: #f34f3f; --bng-dark: #222; --bng-green: #4a7c59; }

/* 한국어 타이포그래피 */
body, p, input, textarea, select, button, .btn, .site-nav ul li a, label {
    font-family: "Rubik", "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
}
h1, h2, h3, h4, h5, h6, .title, .main-title, .product-name, .widget-title, .footer-widget-title {
    font-family: "Lora", "Noto Serif KR", "Nanum Myeongjo", serif;
}
body { word-break: keep-all; overflow-wrap: anywhere; }
p { line-height: 1.8; }
.slider-content .main-title { line-height: 1.25; }
.slider-content .sub-title { line-height: 1.4; }
.site-nav > ul > li > a { letter-spacing: -0.01em; }
[hidden] { display: none !important; }

/* 로고 */
.bng-logo { display: inline-flex; align-items: center; gap: 8px; text-decoration: none; white-space: nowrap; }
.bng-logo-mark { width: 34px; height: 34px; flex: none; }
.bng-logo-text { font-family: "Lora", serif; font-size: 22px; font-weight: 700; color: var(--bng-dark); letter-spacing: -0.02em; line-height: 1; }
.bng-logo-text em { color: var(--bng-primary); font-style: italic; font-weight: 500; padding: 0 1px; }
.bng-logo-white .bng-logo-text { color: #fff; }
.footer-widget .bng-logo { margin-bottom: 22px; }
@media (max-width: 1199px) { .bng-logo-text { font-size: 19px; } .bng-logo-mark { width: 28px; height: 28px; } }
@media (max-width: 380px) { .bng-logo-text { font-size: 16px; } }

/* 헤더 */
.site-nav > ul > li { margin: 0 12px; }
@media (max-width: 1199px) { .site-nav > ul > li { margin: 0 8px; } .site-nav > ul > li > a { font-size: 14px; } }
.top-notification-bar strong { letter-spacing: .04em; }
.bng-mini-empty { padding: 24px 10px; text-align: center; color: #666; font-size: 14px; }
.mini-cart .product-btn + .product-btn { margin-top: 8px; }
.bng-hello { padding: 4px 0 8px; font-weight: 500; color: var(--bng-dark); border-bottom: 1px solid #eee; margin-bottom: 6px; }
.bng-menu-banner { position: relative; display: block; overflow: hidden; }
.bng-menu-banner-text { position: absolute; left: 0; right: 0; bottom: 0; padding: 14px 16px; color: #fff; font-size: 15px;
    background: linear-gradient(transparent, rgba(0,0,0,.65)); }
.bng-menu-banner-text strong { font-family: "Lora", serif; font-size: 30px; display: block; line-height: 1; margin-bottom: 4px; }

/* 상품 카드 */
.sticker-new.bng-label-new { background: var(--bng-green); color: #fff; }
.single-product .action-links a.bng-wished, .product-action .action a.bng-wished,
.single-product.product-list .action-links a.wishlist.bng-wished { background: var(--bng-primary); color: #fff; border-color: var(--bng-primary); }
.bng-disabled { opacity: .5; cursor: not-allowed; }
.product-name a { letter-spacing: -0.01em; }

/* 상품 목록 */
.bng-shop-banner { background-size: cover; background-position: center; min-height: 220px; display: flex; align-items: center; margin-bottom: 30px; }
.bng-shop-banner a { display: block; padding: 30px 40px; color: var(--bng-dark); max-width: 60%; }
.bng-shop-banner .sub { display: block; color: var(--bng-primary); font-weight: 500; margin-bottom: 8px; }
.bng-shop-banner strong { display: block; font-family: "Lora", "Noto Serif KR", serif; font-size: 28px; line-height: 1.35; margin-bottom: 14px; }
.bng-shop-banner em { font-style: normal; border-bottom: 1px solid currentColor; padding-bottom: 2px; font-size: 14px; }
@media (max-width: 575px) { .bng-shop-banner a { max-width: 100%; padding: 24px; background: rgba(255,255,255,.6); } .bng-shop-banner strong { font-size: 21px; } }
.bng-side-banner a { position: relative; display: block; }
.bng-side-banner img { width: 100%; }
.bng-side-banner span { display: block; background: var(--bng-primary); color: #fff; padding: 14px 16px; font-size: 13px; text-align: center; }
.bng-side-banner span strong { display: block; font-family: "Lora", "Noto Serif KR", serif; font-size: 19px; margin-bottom: 2px; }
.categories-list a.bng-active { color: var(--bng-primary); font-weight: 500; }
.color-list li { cursor: pointer; }
.bng-active-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 24px; }
.bng-active-filters button { border: 1px solid #e1e1e1; background: #fafafa; border-radius: 20px; padding: 5px 14px; font-size: 13px; color: #444; }
.bng-active-filters button:hover { border-color: var(--bng-primary); color: var(--bng-primary); }
.bng-active-filters .bng-clear-all { background: none; border-color: transparent; text-decoration: underline; }
.bng-empty { padding: 60px 0; }
.bng-empty p { margin-bottom: 20px; }

/* 상품 상세 */
.bng-spec { margin: 22px 0 6px; padding: 18px 0; border-top: 1px solid #ebebeb; border-bottom: 1px solid #ebebeb; }
.bng-spec li { display: flex; gap: 14px; font-size: 14px; line-height: 1.7; padding: 4px 0; color: #555; }
.bng-spec strong { flex: 0 0 48px; color: var(--bng-dark); font-weight: 500; }
.bng-spec a { color: var(--bng-primary); }
.bng-soldout-box { margin-top: 24px; }
.bng-soldout-box > p, .bng-soldout-text { color: #b3261e; font-weight: 500; }
.shop-single-content .dynamic-checkout-button { margin-top: 16px; }
.bng-qv-more { margin-top: 18px; font-size: 14px; }
.bng-qv-more a { color: var(--bng-primary); }
.shop-single-preview-image img { width: 100%; height: auto; }

/* 장바구니 · 주문 */
.cart-table td.image img { width: 90px; height: auto; }
.bng-discount .price, .bng-discount .value { color: var(--bng-primary); }
.bng-grand .price, .bng-grand .value { font-weight: 700; font-size: 17px; color: var(--bng-dark); }
.bng-ship-hint td { padding-top: 0 !important; border: 0 !important; }
.bng-ship-hint p { font-size: 13px; color: var(--bng-green); text-align: right; }
.bng-zip { display: flex; gap: 10px; }
.bng-zip input { flex: 1; }
.bng-zip .btn { flex: none; white-space: nowrap; height: auto; line-height: 1.2; padding: 0 18px; }
.single-form input + input, .bng-zip + input { margin-top: 10px; }
.bng-select { width: 100%; height: 45px; border: 1px solid #e1e1e1; padding: 0 15px; background: #fff; color: #444; border-radius: 0; }
.single-form textarea { min-height: 110px; }
.bng-invalid { border-color: var(--bng-primary) !important; }
.bng-form-error { color: #b3261e; font-size: 14px; margin: 14px 0 0; }
.bng-agree { margin: 18px 0 6px; }
.bng-agree a, .cus-checkbox label a { text-decoration: underline; }
.checkout-payment > .btn { margin-top: 18px; width: 100%; }
.bng-order-done { padding: 20px 0; }
.bng-done-icon { font-size: 64px; color: var(--bng-green); margin-bottom: 18px; }
.bng-order-done h2 { font-size: 30px; margin-bottom: 10px; }
.bng-order-done .bng-table { margin: 30px 0; }
.bng-table th { background: #fafafa; font-weight: 500; white-space: nowrap; width: 130px; }
.bng-table th, .bng-table td { padding: 13px 16px; border: 1px solid #ebebeb; font-size: 14px; vertical-align: middle; }
.bng-table thead th { width: auto; }

/* 문서형 페이지 */
.bng-doc h3 { font-size: 22px; margin: 44px 0 16px; }
.bng-doc h3:first-child { margin-top: 0; }
.bng-doc p { margin-bottom: 12px; }
.bng-accordion .accordion-button { font-size: 15px; font-weight: 500; color: var(--bng-dark); box-shadow: none; }
.bng-accordion .accordion-button:not(.collapsed) { background: #fff5f4; color: var(--bng-primary); }
.bng-accordion .accordion-body { font-size: 14px; line-height: 1.8; color: #555; }
.bng-404 h2 { font-size: 110px; color: var(--bng-primary); line-height: 1; margin-bottom: 14px; }
.bng-404 p { margin-bottom: 26px; }

/* 블로그 */
.bng-blog-grid > div { margin-bottom: 40px; }
.bng-blog-hero { width: 100%; max-height: 460px; object-fit: cover; }
.bng-date { font-size: 13px; color: #888; margin: 0; }
.bng-blog-side .single-mini-product .product-image img { aspect-ratio: 1 / 1; object-fit: cover; }

/* 푸터 */
.bng-footer-phone a { font-family: "Lora", serif; font-size: 26px; color: #fff; font-weight: 600; }
.bng-footer-contact p { margin-bottom: 6px; }
.bng-biz-info { border-top: 1px solid rgba(255,255,255,.12); padding: 24px 0; font-size: 12.5px; line-height: 1.9; color: rgba(255,255,255,.55); }
.bng-biz-info p { margin: 0; color: inherit; font-size: inherit; line-height: inherit; }
.bng-biz-info span { opacity: .4; padding: 0 6px; }
.bng-biz-info a { color: rgba(255,255,255,.8); }
.newsletter-form .section-title p { margin-top: 10px; }

/* 토스트 */
.bng-toast-wrap { position: fixed; left: 50%; bottom: 28px; transform: translateX(-50%); z-index: 2000; display: flex; flex-direction: column; gap: 8px; align-items: center; pointer-events: none; width: max-content; max-width: calc(100vw - 32px); }
.bng-toast { background: rgba(34,34,34,.95); color: #fff; padding: 13px 22px; border-radius: 30px; font-size: 14px; opacity: 0; transform: translateY(12px); transition: all .3s; pointer-events: auto; box-shadow: 0 6px 24px rgba(0,0,0,.18); }
.bng-toast.show { opacity: 1; transform: none; }
.bng-toast a { color: #ffb4ab; margin-left: 12px; text-decoration: underline; }

.bng-agree-links { font-size: 13px; margin: 4px 0 0 26px; color: #888; }
.bng-agree-links a { text-decoration: underline; color: #666; }
.bng-demo-notice { background: #fff8e1; border: 1px solid #ffe08a; color: #6b5200; font-size: 13px; line-height: 1.6; padding: 10px 14px; margin: 16px 0 0; }
.checkout-form + .checkout-form { margin-top: 50px; }

/* 히어로: 한글은 글자 폭이 넓어 제목을 조금 줄이고 명조 계열로 통일 */
.slider-content .main-title { font-family: "Lora", "Noto Serif KR", serif; font-weight: 500; font-size: 54px; letter-spacing: -0.02em; max-width: 560px; }
.slider-content p { font-size: 20px; max-width: 480px; }
@media (max-width: 1199px) { .slider-content .main-title { font-size: 44px; max-width: 460px; } }
@media (max-width: 767px) { .slider-content .main-title { font-size: 30px; max-width: 260px; } .slider-content p { font-size: 15px; max-width: 250px; } }

/* 모바일 헤더: 로고와 아이콘이 겹치지 않도록 */
@media (max-width: 575px) {
    .header-mobile .bng-logo { gap: 6px; }
    .header-mobile .bng-logo-mark { width: 24px; height: 24px; }
    .header-mobile .bng-logo-text { font-size: 17px; }
    .header-mobile .header-account-list { margin-left: 14px; }
    .top-notification-bar p { font-size: 12.5px; padding: 0 28px; }
}
@media (max-width: 359px) { .header-mobile .bng-logo-text { font-size: 15px; } .header-mobile .header-account-list { margin-left: 10px; } }

/* 상품 상세: 사진 목록 */
.bng-gallery { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.bng-gallery button { padding: 0; border: 2px solid transparent; border-radius: 4px; background: none; line-height: 0; cursor: pointer; }
.bng-gallery button[aria-current="true"] { border-color: var(--bng-primary); }
.bng-gallery button:focus-visible { outline: 2px solid var(--bng-dark); outline-offset: 2px; }
.bng-gallery img { width: 77px; height: 96px; object-fit: cover; border-radius: 2px; }
