/* ========================================================== */
/* 1. 기본 설정, 레이아웃 및 공통 유틸리티 */
/* ========================================================== */
body {
    color: #1a202c; 
    font-family: 'Inter', sans-serif;
    background-color: #f7f7f7;
    -ms-overflow-style: none;
    scrollbar-width: none;
}
body::-webkit-scrollbar {
    display: none;
}
.container {
    max-width: 1280px; 
    margin-left: auto;
    margin-right: auto;
    padding-left: 1rem;
    padding-right: 1rem;
}
.sticky-header {
    position: sticky;
    top: 0;
    z-index: 50;
    background-color: white;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
    border-bottom: 1px solid #f7f7f7;
}

/* 브랜드 테마 컬러 및 폰트 두께 */
.deep-green-bg     { background-color: #054B22; }
.text-deep-green   { color: #054B22; }
.bg-yellow-gold    { background-color: #D4AF37; }
.text-yellow-gold  { color: #D4AF37; }
.yellow-gold-text  { color: #D4AF37; }
.bg-dark-bg        { background-color: #002611; }

.text-gray-100     { color: #f7f7f7; }
.text-gray-300     { color: #d1d5db; }
.text-gray-500     { color: #6b7280; }
.text-gray-700     { color: #4b5563; }
.text-gray-800     { color: #1f2937; }
.bg-gray-100       { background-color: #f3f4f6; }
.bg-gray-50        { background-color: #f9fafb; }

.font-medium       { font-weight: 500; }
.font-semibold     { font-weight: 600; }
.font-bold         { font-weight: 700; }
.font-extrabold    { font-weight: 800; }
.font-black        { font-weight: 900; }

.gold-text-shadow  { text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4); }
.shadow-lg         { box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1); }
.shadow-2xl        { box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); }

/* ========================================================== */
/* 2. 헤더 (Header) 및 네비게이션 */
/* ========================================================== */
.header-container {
    height: 4rem; 
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.header-controls {
    display: flex;
    align-items: center;
    gap: 1.5rem;
}
.lang-switch-mini {
    display: flex;
    gap: 0.5rem;
}
.lang-mini-btn {
    padding: 0.125rem 0.5rem;
    border-radius: 0.125rem;
    font-size: 0.75rem; 
    font-weight: 600;
    text-decoration: none;
    color: #4b5563;
    border: 1px solid #d1d5db;
    transition: all 0.15s ease-in-out;
}
.lang-mini-btn.active {
    background-color: #054B22;
    color: white;
    border-color: #054B22;
}
.lang-mini-btn:hover {
    opacity: 0.8;
}
.header-nav {
    display: flex;
    gap: 1.5rem; 
}
.header-nav a {
    padding-bottom: 0.25rem; 
    transition: color 150ms ease-in-out, border-color 150ms ease-in-out;
}

/* 모바일 전용 헤더 제어 */
.lang-switch-mobile {
    padding: 0.5rem 0.75rem;
    display: flex;
    justify-content: flex-end;
    gap: 1rem;
}
.mobile-nav-dropdown {
    position: absolute;
    top: 4rem; 
    width: 100%;
    background-color: white;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    z-index: 40;
    padding: 1rem;
    border-bottom-left-radius: 0.5rem;
    border-bottom-right-radius: 0.5rem;
}
.mobile-nav-dropdown a {
    display: block;
    padding: 0.5rem 0.75rem;
    font-size: 1.125rem;
    font-weight: 500;
    color: #054B22;
    transition: all 150ms ease-in-out;
}
.mobile-nav-dropdown a:hover {
    background-color: #f9fafb;
    color: #D4AF37;
}

@media (min-width: 768px) {
    .header-controls { gap: 2.5rem; }
    .header-nav { gap: 2rem; }
}

/* ========================================================== */
/* 3. 배너 및 히어로 섹션 */
/* ========================================================== */
.hero-section {
    background-image: linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)), url('/img/hero_banner2.jpg');
    background-size: contain;
    background-position: center; 
    background-repeat: no-repeat; 
    padding-top: 4rem; 
    padding-bottom: 3rem; 
    text-align: center;
}
.hero-title-group h1 {
    font-size: 3.5rem; 
    line-height: 1;
    margin-bottom: 0.5rem; 
}
.hero-title-group p {
    font-size: 1.5rem; 
    max-width: 42rem;
    margin: 2.5rem auto;
}

/* 3분할 가로 스크롤 배너 */
.banner-wrapper-section {
    margin: 3rem 0 4rem;
    position: relative;
    z-index: 10;
}
.mobile-scroll-container {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch; 
    scroll-snap-type: x mandatory;
    padding: 0 1rem; 
}
.mobile-scroll-container::-webkit-scrollbar {
    display: none; 
}
.banner-grid-section {
    display: flex;
    gap: 0.75rem; 
    width: fit-content; 
}
.banner-grid-section .banner-item:first-child { margin-left: calc(50% - 42.5vw + 1rem); }
.banner-grid-section .banner-item:last-child { margin-right: calc(50% - 42.5vw + 1rem); }

.banner-item {
    flex-shrink: 0; 
    width: 85vw; 
    max-width: 300px; 
    scroll-snap-align: center;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 1.5rem;
    height: 20rem; 
    border-radius: 0.75rem;
    overflow: hidden;
    transition: all 300ms ease-in-out;
    cursor: pointer;
}
.banner-item:hover {
    transform: scale(1.02);
    box-shadow: 0 0 10px rgba(212, 175, 55, 0.5); 
}
.banner-item h2 {
    font-size: 1.875rem; 
    line-height: 1.25; 
}
.banner-item .cta-badge { margin-top: 0.75rem; }
.banner-item .cta-badge span {
    display: inline-block;
    padding: 0.375rem 1rem;
    border-radius: 9999px;
    font-size: 0.875rem;
}

/* 배너 개별 배경 */
.banner-stomach-repair { background-image: linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)), url('/img/banner1.jpeg'); background-size: cover; background-position: center;}
.banner-fast-relief { background-image: linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)), url('/img/banner2.jpeg'); background-size: cover; background-position: center;}
.banner-mmsc-ingredient { background-image: linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)), url('/img/banner3.jpeg'); background-size: cover; background-position: center;}

@media (max-width: 767px) {
    .hero-section {
        background-size: cover; 
        padding: 2rem 0; 
    }
    .hero-title-group h1 { font-size: 2.5rem; }
    .hero-title-group p { margin-bottom: 0.5rem; }
}

@media (min-width: 768px) {
    .mobile-scroll-container {
        overflow-x: visible; 
        scroll-snap-type: none; 
        padding: 0; 
    }
    .banner-grid-section {
        display: grid;
        grid-template-columns: repeat(3, 1fr); 
        gap: 0.75rem; 
        width: 100%; 
    }
    .banner-grid-section .banner-item:first-child,
    .banner-grid-section .banner-item:last-child {
        margin-left: 0;
        margin-right: 0;
    }
    .banner-item {
        width: auto; 
        max-width: none;
        scroll-snap-align: none;
    }
}

/* ========================================================== */
/* 4. 제품 리스트 섹션 (#product-list) - ⭐ PC/모바일 배경 흰색 및 잘림방지 최종완성 */
/* ========================================================== */
#product-list.product-list-section {
    padding-top: 4rem !important;
    padding-bottom: 4rem !important; 
    box-sizing: content-box !important; 
    margin: 0 !important;
}
.product-list-section .section-title {
    font-size: 1.875rem;
    font-weight: 900;
    text-align: center;
    color: #054B22;
    margin-bottom: 3rem; 
    margin-top: 0;
}
.product-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
}

/* 제품 카드 개별 */
.product-item {
    border-radius: 0.75rem;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    overflow: hidden;
    background-color: white;
    transition: all 300ms ease-in-out;
    text-align: center;
    display: flex;
    flex-direction: column;
    min-height: 25rem;
    position: relative;
}

/* 🚨 이미지 박스 최적화: PC 기준 사방 패딩 확보 및 흰색 배경 완벽 지정 */
.product-image-box {
    height: 16rem;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #ffffff !important; /* ⭐️ 배경을 흰색으로 통일 */
    padding: 24px; /* ⭐️ PC에서 테두리에 꽉 차지 않고 안쪽 여백이 생성되도록 유도 */
    overflow: hidden;
}
.product-image-box img {
    width: 100%;
    height: 100%;
    object-fit: contain; /* ⭐️ 비율 유지하며 박스에 안전하게 정돈 */
    object-position: center; 
    display: block;
    background-color: #ffffff !important; /* ⭐️ 이미지 배경 흰색 통일 */
}

.product-item .p-4 {
    padding: 0.75rem 1rem 4.5rem 1rem; 
    display: block;
    width: 100%;
}
.product-item .product-name {
    margin-top: 0;
    line-height: 1.4;
    height: 2.8em; 
    overflow: hidden;
    margin-bottom: 0; 
    font-size: 0.95rem; 
    font-weight: 700;
    text-align: center;
    white-space: normal; 
    text-overflow: clip; 
}

/* 가격 및 할인 표시 */
.product-item .price-wrapper {
    position: absolute;
    bottom: 0.75rem;
    left: 1rem; 
    line-height: 1;
    width: auto;
}
.product-item .original-price-strikethrough {
    font-size: 0.875rem;
    color: #6b7280;
    text-decoration: line-through; 
    margin-bottom: -0.5rem; 
    line-height: 1.2;
    font-weight: 500;
    display: block; 
}
.product-item .original-price-strikethrough .text-red-600 {
    color: #DC2626;
    font-weight: bold;
    margin-left: 0.25rem;
    text-decoration: none; 
    display: inline-block; 
}
.product-item .price {
    margin-top: 0.5rem;
    line-height: 1.2;
    font-size: 1.4rem;
    font-weight: 900;
    color: #054B22;
    display: flex;
    align-items: flex-end;
    gap: 0.25rem;
}
.product-item .price span:first-child { font-size: 1.8rem; }
.product-item .price .currency-unit {
    font-size: 1.3rem;
    font-weight: 700;
    color: #054B22;
    display: inline-block;
}

/* 구매하기 버튼 */
.product-item .btn-buy {
    position: absolute;
    bottom: 0.75rem;
    right: 1rem; 
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    max-width: 120px; 
    padding: 0.6rem 1rem;
    font-size: 0.9rem;
    font-weight: 600;
    border-radius: 0.375rem;
    flex-shrink: 0;
    white-space: nowrap;
    transition: all 0.2s;
    background-color: #D4AF37;
    color: #054B22;
}

/* 상품 전체 카드 링크 컴포넌트 */
.product-item-link {
    display: block; 
    text-decoration: none;
    color: inherit;
}
.product-item-link .product-item { height: 100%; }
.product-item-link:hover .product-item {
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
    transform: translateY(-2px);
}
.product-item-link:hover .btn-buy {
    background-color: #fce38a;
    transform: translateY(-1px);
}

@media (min-width: 768px) {
    .product-grid { grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
}
@media (min-width: 1024px) {
    .product-grid { grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
}

/* 태블릿 화면 최적화 (769px ~ 1025px) */
@media (min-width: 769px) and (max-width: 1025px) {
    .product-item .price-wrapper {
        display: inline-block; 
        vertical-align: middle;
        margin-right: 0.5rem; 
        width: auto; 
        text-align: left;
    }
    .product-item .btn-buy {
        display: inline-block;
        vertical-align: middle;
        padding: 0.5rem 0.8rem;
        font-size: 0.95rem;
        margin-top: 0;
    }
    .product-item .original-price-strikethrough { font-size: 0.85rem; margin-bottom: -0.4rem; }
    .product-item .price { font-size: 1.3rem; margin-top: 0.4rem; }
    .product-item .price span:first-child.text-red-600 { font-size: 1.6rem; }
}

/* 모바일 화면 최적화 (768px 이하) */
@media (max-width: 768px) {
    .product-list-section .section-title { font-size: 1.5rem; margin-bottom: 2rem; }
    
    .product-item {
        display: flex;
        flex-direction: column;
        align-items: center;
    }
    .product-item .price-wrapper {
        display: inline-block;
        vertical-align: middle;
        margin-right: 0.5rem;
        width: auto;
        text-align: left;
    }
    .product-item .btn-buy {
        display: inline-block;
        vertical-align: middle;
        padding: 0.4rem 0.6rem; 
        font-size: 0.9rem; 
        margin-top: 0;
    }
    .product-item .original-price-strikethrough { font-size: 0.8rem; margin-bottom: -0.4rem; }
    .product-item .price { font-size: 1.2rem; margin-top: 0.4rem; }
    .product-item .price span:first-child.text-red-600 { font-size: 1.5rem; }
}

/* 극소형 모바일 기기 대응 (480px 이하) - 흰색 배경 정밀 수정 */
@media (max-width: 480px) {
    .product-item {
        padding-top: 0 !important;
        padding-bottom: 8px !important;
        margin-bottom: 10px !important;
        height: auto !important;
        min-height: 0 !important;
        display: flex !important;
        flex-direction: column !important;
    }
    
    /* 1. 이미지 컨테이너 배경색 완전한 흰색으로 일치 */
    .product-image-container, .product-image-box {
        padding: 0 !important;
        margin: 0 !important;
        width: 100% !important;
        aspect-ratio: 1 / 1 !important; 
        overflow: hidden;
        background-color: #ffffff !important; /* ⭐️ 모바일 박스 배경 흰색 적용 */
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    /* 2. 흰색 배경 내부에서의 이미지 크기(75%) 및 여백 비율 조절 */
    .product-image-box img {
        width: 75% !important;  
        height: 75% !important; 
        object-fit: contain !important; 
        object-position: center !important;
        display: block !important;
        background-color: #ffffff !important; /* ⭐️ 이미지 배경 흰색 일치 */
    }

    .product-item .p-4 {
        padding: 8px 6px !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
    }
    .product-item .product-name {
        font-size: 0.85rem !important;
        height: auto !important;
        min-height: 0 !important; 
        margin-bottom: 6px !important;
        line-height: 1.2 !important;
    }
    .product-item .price-wrapper {
        margin-bottom: 8px !important;
        position: static !important;
    }
    .product-item .price { font-size: 1rem !important; }
    .product-item .price span:first-child { font-size: 1.3rem !important; }
    .product-item .btn-buy {
        position: static !important;
        display: flex !important;
        width: 90% !important;
        max-width: 140px !important;
        margin: 0 auto !important;
        padding: 8px 0 !important;
        font-size: 0.85rem !important;
        border-radius: 4px !important;
    }
    .product-divider { display: none !important; }
}

/* ========================================================== */
/* 5. 비디오, 정보 및 안내 섹션 */
/* ========================================================== */
.details-section { padding: 4rem 0; }
.details-section h3 {
    font-size: 1.875rem;
    margin-bottom: 2rem;
    border-bottom: 2px solid #D4AF37;
    padding-bottom: 0.5rem;
    width: fit-content;
    margin-left: auto;
    margin-right: auto;
}
.video-background-section {
    position: relative; 
    overflow: hidden;
    padding: 4rem 0; 
}
.background-video-wrap {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    z-index: 1; 
    overflow: hidden;
}
.background-video {
    min-width: 100%;
    min-height: 100%;
    width: auto; height: auto;
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%); 
}
.video-overlay {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    z-index: 1; 
    background-color: rgba(0, 0, 0, 0.3); 
}
.content-wrap { position: relative; z-index: 5; }
.video-container {
    max-width: 48rem;
    margin: 0 auto 2rem;
    border-radius: 0.75rem;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    overflow: hidden;
}
.cta-button {
    display: inline-block;
    text-align: center; 
    font-size: 1.125rem;
    padding: 0.75rem 2rem;
    border-radius: 9999px;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    transition: all 300ms ease-in-out;
    text-decoration: none;
}
.cta-button:hover {
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
    background-color: rgba(212, 175, 55, 0.9);
}

/* 브랜드 소개 및 케이스 */
.about-section, .usage-section, .info-section, .faq-section {
    padding: 4rem 0; 
}
.about-section h2, .usage-section h2, .faq-section h2 {
    font-size: 1.875rem;
    margin-bottom: 2rem;
}
.info-content {
    max-width: 56rem;
    margin-left: auto;
    margin-right: auto;
}
.info-content p { margin-bottom: 1rem; }
.info-content .key-paragraph {
    font-weight: 700;
    font-size: 1.25rem;
}
.usage-section .list-header { margin-bottom: 1.5rem; }
.usage-section li {
    display: flex;
    align-items: flex-start;
    margin-bottom: 0.75rem;
}
.usage-section li span:first-child {
    margin-right: 0.75rem;
    line-height: 1; 
}
.usage-section .highlight-box {
    margin-top: 1.5rem;
    padding: 1rem;
    border: 1px solid #054B22;
    border-radius: 0.5rem;
    background-color: white;
}
.middle-image-banner-section {
    padding: 2rem 0;
    text-align: center;
}
.middle-image-banner-section .container {
    font-size: 1.25rem;
    letter-spacing: 0.05em; 
}
@media (min-width: 768px) {
    .middle-image-banner-section .container { font-size: 1.5rem; }
}

/* ========================================================== */
/* 6. 상세 상품 페이지 전용 (product.php) */
/* ========================================================== */
.product-main-container { padding: 2rem 0 4rem; }
.product-selection-section { padding: 2rem 0; }
.product-selection-section .main-title { font-size: 1.875rem; text-align: center; margin-bottom: 0.5rem; }
.product-selection-section .sub-text { font-size: 1.125rem; text-align: center; margin-bottom: 2.5rem; }
.product-detail-area {
    display: flex;
    flex-direction: column; 
    gap: 2.5rem;
    max-width: 900px;
    margin: 0 auto;
}
@media (min-width: 768px) {
    .product-detail-area { flex-direction: row; }
    .product-large-image, .product-options-area { flex: 1; }
}
.product-large-image {
    height: 24rem; 
    background-color: #f3f4f6;
    padding: 1.5rem;
    border-radius: 0.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    position: relative;
}
.product-large-image img {
    max-height: 100%;
    max-width: 100%;
    object-fit: contain;
    transition: opacity 0.3s ease;
}

/* 옵션 선택 및 카트 */
.product-options-area { padding-top: 0.5rem; }
.product-item-title { font-size: 1.875rem; margin-bottom: 1.5rem; }
.option-select-box select {
    width: 100%;
    padding: 0.75rem;
    border: 1px solid #d1d5db;
    border-radius: 0.5rem;
    font-size: 1.125rem;
    cursor: pointer;
    background-color: white;
}
.cart-item-list {
    margin-top: 1.5rem;
    padding: 1rem;
    background-color: white; 
    border: 1px solid #e5e7eb;
    border-radius: 0.5rem;
}
.cart-section-title {
    font-size: 1.25rem;
    font-weight: 700;
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid #e5e7eb;
}
.selected-item-container {
    max-height: 14rem;
    overflow-y: auto;
    padding-right: 0.5rem;
}
.selected-item-container::-webkit-scrollbar { width: 6px; }
.selected-item-container::-webkit-scrollbar-thumb { background-color: #d1d5db; border-radius: 3px; }

.selected-item-line {
    display: flex;
    align-items: flex-start; 
    justify-content: space-between;
    padding: 0.75rem 0;
    border-bottom: 1px dashed #e5e7eb;
    position: relative;
    padding-right: 2.5rem; 
    flex-wrap: wrap;  
}
.selected-item-line:last-child { border-bottom: none; }
.remove-item-top-btn {
    position: absolute;
    top: 50%; right: 0;
    transform: translateY(-50%); 
    color: #6b7280;
    background: none; border: none;
    padding: 0.25rem;
    cursor: pointer;
    transition: color 0.15s ease-in-out;
    font-size: 1.25rem; 
    z-index: 10; 
}
.remove-item-top-btn:hover { color: #ef4444; }
.item-main-content { width: 100%; margin-bottom: 0.5rem; }
.item-main-content .name { font-weight: 600; color: #1f2937; display: block; }
.item-bottom-row { display: flex; align-items: center; width: 100%; justify-content: space-between; }

.quantity-control {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    border: 1px solid #054B22; 
    border-radius: 0.25rem;
}
.qty-btn {
    width: 2rem; height: 2rem;
    background-color: #D4AF37; 
    border: none; cursor: pointer;
    font-size: 1.25rem; font-weight: 700;
    color: #054B22; 
}
.qty-btn:hover { background-color: #fce38a; }
.qty-input { width: 2.5rem; text-align: center; border: none; font-size: 0.875rem; color: #1f2937; }

.cart-summary .summary-line { display: flex; justify-content: space-between; font-size: 0.875rem; margin-bottom: 0.25rem; }
.cart-summary .total-line { font-size: 1.125rem; margin-top: 0.5rem; border-top: 1px solid #d1d5db; padding-top: 0.5rem; }
.cart-summary .final-price { font-size: 1.5rem; font-weight: 800; }

/* 수량 에러 모달 및 품절 레이아웃 */
.product-qty-error-modal {
    position: fixed; top: 0; left: 0;
    width: 100%; height: 100%;
    z-index: 99999; 
    background-color: rgba(0, 0, 0, 0.6); 
    display: flex; align-items: center; justify-content: center;
}
.product-qty-error-modal .modal-content {
    max-width: 400px; width: 90%;
    background-color: white;
    border-radius: 0.5rem;
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.3);
}
.product-qty-error-modal .modal-header {
    background-color: #dc2626; color: white;
    font-weight: bold; padding: 0.75rem 1rem;
    position: relative; font-size: 1.125rem;
    border-top-left-radius: 0.5rem; border-top-right-radius: 0.5rem;
}
.product-qty-error-modal .modal-body { padding: 1.5rem; text-align: center; }
.product-qty-error-modal .modal-footer { padding: 1rem 1.5rem; border-top: 1px solid #e5e7eb; text-align: center; }
.product-qty-error-modal .confirm-btn {
    padding: 0.5rem 1.5rem; border-radius: 0.375rem;
    font-weight: 600; cursor: pointer; border: none;
    background-color: #054B22; color: white;
}
.sold-out-overlay {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    background-color: rgba(0, 0, 0, 0.6); 
    display: none; justify-content: center; align-items: center;
    z-index: 10;
}
.sold-out-overlay.active { display: flex; }
.sold-out-text { color: white; font-size: 2rem; font-weight: bold; text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8); }

/* ========================================================== */
/* 7. 주문 조회 페이지 (myorder.php) */
/* ========================================================== */
.order-inquiry-container { max-width: 800px; margin: 0 auto; }
.main-section-padding { padding: 3rem 0 5rem; }
.order-inquiry-form-section { max-width: 450px; margin: 0 auto; }
.inquiry-form {
    background-color: white;
    padding: 1.5rem;
    border-radius: 0.5rem;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}
.inquiry-form label { display: block; font-size: 0.95rem; font-weight: 600; color: #1f2937; margin-bottom: 0.25rem; }
.inquiry-form input[type="text"],
.inquiry-form input[type="email"],
.inquiry-form input[type="password"],
.inquiry-form input[type="tel"] {
    width: 100%;
    padding: 0.75rem 1rem;
    margin-top: 0.5rem;
    margin-bottom: 1.5rem; 
    border: 1px solid #d1ddcc; 
    border-radius: 0.375rem;
    font-size: 1rem;
    color: #1f2937;
    background-color: white;
    transition: all 0.2s;
}
.inquiry-form input:focus {
    border-color: #054B22; 
    outline: none;
    box-shadow: 0 0 0 2px rgba(5, 75, 34, 0.2);
}

/* 주문서 테이블 및 타임라인 */
.order-result-table-container { overflow-x: auto; }
.order-result-table {
    width: 100%;
    min-width: 700px; 
    border-collapse: collapse;
    font-size: 0.875rem;
    border: 1px solid #e5e7eb;
}
.order-result-table th {
    background-color: #054B22; 
    color: white;
    font-weight: bold;
    padding: 0.75rem 0.5rem;
    text-align: center;
    white-space: nowrap;
}
.order-result-table td {
    padding: 0.75rem 0.5rem;
    text-align: center;
    border-bottom: 1px solid #e5e7eb;
    color: #4b5563;
}
.order-status-steps-container { margin-bottom: 2rem; max-width: 80%; margin-left: auto; margin-right: auto;}
.status-step-labels { display: flex; justify-content: space-between; font-size: 0.875rem; color: #6b7280; padding: 0 0.5rem;}
.status-step-labels .step-label { width: 25%; text-align: center; position: relative;}
.status-step-labels .dot { width: 0.5rem; height: 0.5rem; background-color: #9ca3af; border-radius: 50%; margin: 0 auto 0.25rem; }
.status-step-labels .step-label.current .dot { background-color: #054B22; }
.status-step-labels .step-label.current .text { font-weight: bold; color: #1f2937; }

@media (max-width: 768px) {
    .order-result-table-container, .order-id-display-title, .table-status-bar { display: none !important; }
    
    /* 모바일 맞춤 진행 타임라인 */
    .mobile-status-timeline { display: flex; justify-content: space-between; position: relative; padding-top: 10px; }
    .mobile-status-timeline::before {
        content: ''; position: absolute;
        top: 15px; left: 5%; right: 5%; height: 2px;
        background: #e5e7eb; z-index: 1;
    }
    .timeline-item { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; width: 25%; }
    .timeline-dot { width: 12px; height: 12px; background: #d1d5db; border-radius: 50%; margin-bottom: 8px; border: 2px solid white; }
    .timeline-label { font-size: 11px; color: #9ca3af; font-weight: 500; }
    
    .timeline-item.active .timeline-dot { background: #054B22; }
    .timeline-item.active .timeline-label { color: #054B22; }
    .timeline-item.current .timeline-dot {
        background: #D4AF37; 
        transform: scale(1.3);
        box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.2);
    }
    .timeline-item.current .timeline-label { color: #D4AF37; font-weight: 800; }
    
    .tracking-link {
        display: inline-block; background: #1DA1F2; color: white !important;
        padding: 4px 10px; border-radius: 4px; font-size: 12px; text-decoration: none !important;
    }
    .order-detail-modal { width: 95% !important; max-height: 90vh; }
}

/* ========================================================== */
/* 8. 문의 게시판 전용 (Q&A Board) */
/* ========================================================== */
.qna-section-container {
    margin-top: 2.5rem;
    margin-bottom: 2.5rem;
    padding: 1.5rem;
    background-color: white;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    border-radius: 0.5rem;
}
.qna-section-container.qna-view-container { max-width: 70rem; margin-left: auto; margin-right: auto; }
.qna-section-container.qna-write-container { max-width: 48rem; margin-left: auto; margin-right: auto; }

.qna-section-title {
    font-size: 1.875rem; font-weight: 700; color: #054B22;
    margin-bottom: 1.5rem; border-bottom: 2px solid #D4AF37; padding-bottom: 0.5rem;
}
.qna-write-btn {
    padding: 0.5rem 1rem; background-color: #D4AF37; color: #054B22;
    font-weight: 600; border-radius: 0.375rem; text-decoration: none;
}
.qna-write-btn:hover { background-color: #F8D77B; }

/* 리스트 테이블 */
.qna-table-wrap { overflow-x: auto; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); border-radius: 0.5rem; }
.qna-table { width: 100%; min-width: 600px; border-collapse: collapse; }
.qna-table thead { background-color: #054B22; color: white; }
.qna-table th { padding: 0.75rem 1.5rem; text-align: left; font-size: 0.75rem; font-weight: 500; border-bottom: 1px solid #003013;}
.qna-table tbody { background-color: white; }
.qna-table td { padding: 1rem 1.5rem; font-size: 0.875rem; color: #6b7280; border-bottom: 1px solid #f3f4f6; }
.qna-table .title-cell { font-weight: 500; color: #1a202c; }
.qna-table .title-cell a { color: #054B22; text-decoration: none; }
.qna-table .title-cell a:hover { color: #D4AF37; text-decoration: underline; }
.qna-private-tag { margin-left: 0.5rem; color: #ef4444; font-weight: 700; }

/* 폼 스타일 */
.qna-form-group { margin-bottom: 1rem; }
.qna-form-group label { display: block; font-size: 0.875rem; font-weight: 500; color: #4b5563; margin-bottom: 0.25rem; }
.qna-form-group input, .qna-form-group textarea {
    margin-top: 0.25rem; display: block; width: 100%; padding: 0.5rem;
    border-radius: 0.375rem; border: 1px solid #d1d5db; box-shadow: 0 1px 2px rgba(0,0,0,0.05);
}
.qna-form-group input:focus, .qna-form-group textarea:focus { border-color: #054B22; outline: none; box-shadow: 0 0 0 1px #054B22; }
.qna-submit-btn {
    width: 100%; padding: 0.75rem 1rem; border: 1px solid transparent; border-radius: 0.375rem;
    color: white; font-weight: 600; background-color: #054B22; cursor: pointer;
}
.qna-submit-btn:hover { background-color: #003013; }

/* 뷰 상세페이지 */
.qna-content-box { padding: 1rem; border: 1px solid #e5e7eb; border-radius: 0.375rem; background-color: #ffffff; min-height: 10rem; line-height: 1.6; }
.qna-content-box p { margin: 0; color: #1a202c; white-space: pre-wrap; }
.qna-view-info { display: flex; justify-content: space-between; align-items: center; font-size: 0.875rem; color: #6b7280; border-bottom: 1px solid #e5e7eb; padding-bottom: 0.5rem; margin-bottom: 1rem; }
.qna-answer-display-box .p-4 { padding: 1rem; background-color: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 0.375rem; }

/* ========================================================== */
/* 9. 푸터 (Footer) 및 기타 페이지 */
/* ========================================================== */
.footer-section { padding: 2.5rem 0; }
.footer-links { margin-bottom: 1.5rem; text-align: center; font-size: 0.875rem; }
.footer-links a { text-decoration: none; color: #d1d5db; }
.footer-links a:hover { color: #D4AF37; }
.copyright { font-size: 0.75rem; text-align: center; }
.copyright span { display: block; }

/* 회사 및 약관 상세 테두리 */
.company-section, .terms-section, .shipping-section { max-width: 900px; margin: 0 auto; }
.company-table, .terms-table, .shipping-table { width: 100%; border-collapse: collapse; border: 1px solid #e5e7eb; }
.company-table th, .company-table td, .terms-table th, .terms-table td, .shipping-table th, .shipping-table td {
    padding: 1rem; border: 1px solid #e5e7eb; font-size: 0.95rem; text-align: left;
}
.company-table th, .terms-table th { background-color: #f9fafb; font-weight: 600; width: 30%; }
.company-table-header { background-color: #054B22; color: #D4AF37; padding: 1rem; font-weight: bold;}
/* ========================================================== */
/* 10. info.php (카베진 효능/성분) 전용 스타일 복구 및 강화 */
/* ========================================================== */

/* 인포 페이지 메인 상세 섹션 */
.info-detail-section {
    background-color: #ffffff;
    padding-top: 4rem !important; 
    padding-bottom: 4rem !important; 
}

/* 인포 페이지 내 콘텐츠 최대 너비 조절 및 중앙 정렬 */
.info-detail-section .info-content {
    max-width: 800px; /* 읽기 편한 최적의 본문 너비 확보 */
    margin-left: auto;
    margin-right: auto;
}

/* 섹션 대제목 (카베진 알파 효능, 효과 등) */
.info-detail-section .info-title {
    font-size: 1.875rem; /* text-3xl */
    font-weight: 800;
    color: #054B22; /* deep-green */
    border-bottom: 2px solid #D4AF37; /* yellow-gold 포인트 라인 */
    padding-bottom: 0.75rem;
    margin-bottom: 2rem;
    text-align: left;
}

/* 이미지 박스: PC와 모바일 모두 깔끔한 정렬 및 그림자 효과 */
.info-detail-section .info-image-box {
    display: flex;
    justify-content: center;
    margin-top: 2rem;
    margin-bottom: 2.5rem;
    border-radius: 0.75rem;
    overflow: hidden;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08); /* 세련된 그림자 */
}

.info-detail-section .info-image-box img {
    max-width: 100%;
    height: auto;
    object-fit: cover;
    display: block;
}

/* 한국어/일본어 설명 본문 텍스트 영역 */
.info-detail-section .korean-text {
    font-size: 1.125rem; /* text-lg */
    line-height: 1.8; /* 줄간격을 넓혀 가독성 극대화 */
    color: #374151; /* 선명하면서 부드러운 다크 그레이 */
    margin-bottom: 1.5rem;
}

.info-detail-section .korean-text p {
    margin-bottom: 1.25rem;
    word-break: keep-all; /* 한글 단어가 중간에 잘려 다음 줄로 넘어가지 않도록 설정 */
}

/* 본문 내 강조용 클래스 */
.info-detail-section .korean-text strong {
    color: #054B22;
    font-weight: 700;
}

/* 하단 구매 유도 영역 (CTA) */
.buy-cta-container {
    text-align: center;
    margin-top: 3.5rem;
    margin-bottom: 4rem;
}

.buy-cta-container .cta-button {
    display: inline-block;
    padding: 1rem 3rem;
    font-size: 1.25rem; /* 버튼 텍스트 강조 */
    font-weight: 700;
    background-color: #D4AF37; /* yellow-gold */
    color: #054B22; /* deep-green */
    border-radius: 9999px; /* 알약 형태 둥근 모서리 */
    box-shadow: 0 10px 20px rgba(212, 175, 55, 0.3);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    text-decoration: none;
}

.buy-cta-container .cta-button:hover {
    transform: translateY(-3px); /* 위로 살짝 뜨는 호버 효과 */
    background-color: #fce38a; /* 약간 밝은 파스텔톤 노란색 */
    box-shadow: 0 15px 30px rgba(212, 175, 55, 0.4);
}

/* ========================================================== */
/* 🎯 인포 페이지 모바일 화면 최적화 (768px 이하) */
/* ========================================================== */
@media (max-width: 768px) {
    .info-detail-section {
        padding-top: 2.5rem !important;
        padding-bottom: 2.5rem !important;
    }
    
    .info-detail-section .info-title {
        font-size: 1.4rem; /* 모바일 크기에 맞는 타이틀 축소 */
        margin-bottom: 1.5rem;
        padding-bottom: 0.5rem;
    }
    
    .info-detail-section .info-title.mt-16 {
        margin-top: 2.5rem !important; /* 모바일에서 섹션 간 간격 적정 축소 */
    }

    .info-detail-section .info-image-box {
        margin-top: 1.25rem;
        margin-bottom: 1.75rem;
    }

    .info-detail-section .korean-text {
        font-size: 0.95rem; /* 모바일 화면에 알맞은 본문 크기 */
        line-height: 1.7;
    }
    
    .buy-cta-container {
        margin-top: 2.5rem;
        margin-bottom: 2.5rem;
    }
    
    .buy-cta-container .cta-button {
        padding: 0.85rem 2.25rem;
        font-size: 1.05rem;
        width: 80%; /* 모바일에서 터치하기 편하게 버튼 너비 확장 */
        max-width: 320px;
    }
}
/* ========================================================== */
/* 11. faq.php (자주 묻는 질문) 전용 아코디언 스타일 복구 */
/* ========================================================== */

/* FAQ 메인 타이틀 정렬 */
.faq-section .faq-main-title {
    font-size: 1.875rem; /* text-3xl */
    font-weight: 800;
    color: #054B22; /* deep-green */
    margin-bottom: 3rem;
}

/* FAQ 리스트 컨테이너 */
.faq-list {
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
    display: flex;
    flex-direction: column;
    gap: 1rem; /* 질문 카드들 사이의 간격 */
}

/* 개별 FAQ 아이템 카드 */
.faq-list .faq-item {
    background-color: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 0.5rem;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    overflow: hidden; /* 자식 요소의 둥근 테두리 밖 탈출 방지 */
    transition: box-shadow 0.2s ease-in-out;
}

.faq-list .faq-item:hover {
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}

/* FAQ 질문 버튼 (클릭 영역) */
.faq-list .faq-question {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding: 1.25rem 1.5rem;
    background-color: #ffffff;
    border: none;
    cursor: pointer;
    text-align: left;
    gap: 1rem;
    transition: background-color 0.2s;
}

.faq-list .faq-question:hover {
    background-color: #f9fafb; /* 살짝 호버되는 느낌 인지 */
}

.faq-list .faq-question span {
    font-size: 1.05rem;
    font-weight: 600;
    color: #054B22; /* deep-green */
    line-height: 1.4;
}

/* 우측 골드 화살표 애니메이션 */
.faq-list .faq-question .arrow {
    color: #D4AF37; /* yellow-gold */
    flex-shrink: 0;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* FAQ 답변 영역 (⭐ 핵심: 자연스러운 높이 애니메이션 제어) */
.faq-list .faq-answer {
    max-height: 0; /* 자바스크립트 실행 전 기본 상태는 닫힘 */
    overflow: hidden;
    background-color: #ffffff;
    transition: max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1), padding 0.3s ease;
    padding: 0 1.5rem; /* 기본 사방 패딩 */
}

/* 열렸을 때 자바스크립트로 내부에 여백을 줘서 텍스트 밀림 방지 */
.faq-list .faq-answer p {
    padding-bottom: 1.25rem;
    font-size: 0.975rem;
    line-height: 1.7;
    color: #4b5563; /* text-gray-700 */
    word-break: keep-all;
}

/* ========================================================== */
/* 🎯 FAQ 페이지 모바일 화면 최적화 (768px 이하) */
/* ========================================================== */
@media (max-width: 768px) {
    .faq-section .faq-main-title {
        font-size: 1.5rem; /* 모바일 전용 헤더 크기 축소 */
        margin-bottom: 2rem;
    }

    .faq-list .faq-question {
        padding: 1rem 1.125rem; /* 모바일 대응 내부 여백 축소 */
    }

    .faq-list .faq-question span {
        font-size: 0.95rem; /* 스마트폰 전용 글자 크기 최적화 */
    }

    .faq-list .faq-answer {
        padding: 0 1.125rem;
    }

    .faq-list .faq-answer p {
        font-size: 0.875rem;
        padding-bottom: 1rem;
    }
}
/* ========================================================== */
/* 12. index.php 하단 추가 섹션 (새로운 콘텐츠/안내) 스타일 복구 */
/* ========================================================== */

/* A. 공통 섹션 기본 베이스 */
.new-content-section {
    padding-top: 4rem !important;
    padding-bottom: 4rem !important;
    background-color: #ffffff;
    text-align: center;
}
.new-info-section {
    padding-top: 4rem !important;
    padding-bottom: 4rem !important;
    background-color: #f9fafb; /* gray-50 배경 유지 */
    color: #4b5563;
}

/* B. 콘텐츠 섹션 (타이틀 및 본문) */
.new-content-section h2 {
    color: #054B22; /* deep-green */
    font-size: 1.875rem; /* text-3xl */
    font-weight: 800;
    margin-top: 0;
    margin-bottom: 1rem;
}
.new-content-section p {
    font-size: 1.125rem;
    color: #4b5563;
    margin-bottom: 2.5rem;
    line-height: 1.6;
}

/* 상품 특징 체크리스트 */
.new-content-section .feature-list {
    list-style: none;
    padding-left: 0;
    text-align: left;
    margin-top: 1rem;
    font-size: 0.95rem;
}
.new-content-section .feature-list li {
    margin-bottom: 0.5rem;
    color: #054B22;
    font-weight: 600;
}
.new-content-section .feature-list li::before {
    content: "✔️";
    margin-right: 0.5rem;
}

/* C. 3열 상품 특징 그리드 레이아웃 */
.new-product-grid {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: 1.5rem;
    max-width: 900px;
    margin: 0 auto;
}

.new-product-grid .new-product-item {
    padding: 2rem 1.5rem;
    border: 1px solid #e5e7eb;
    border-radius: 0.75rem;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    background-color: #ffffff; /* ⭐️ 깨끗한 흰색 바탕 통일 */
    transition: transform 0.25s ease-in-out, box-shadow 0.25s ease-in-out;
    min-height: 22rem;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}
.new-product-grid .new-product-item:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
}

/* 이미지 크기 고정 및 짤림 방지 */
.new-product-grid .new-product-item img {
    max-width: 100%;
    height: 100px;
    margin: 0 auto 1.25rem;
    display: block;
    object-fit: contain; /* 비율 유지하며 정돈 */
}
.new-product-grid .new-product-item h3 {
    font-size: 1.25rem;
    font-weight: 700;
    color: #054B22;
    margin-bottom: 0.75rem;
    margin-top: 0;
}
.new-product-grid .new-product-item p {
    font-size: 0.95rem;
    color: #6b7280;
    margin-bottom: auto; /* 리스트가 아래로 밀착되도록 조정 */
    line-height: 1.5;
}

/* D. 정보 안내 섹션 (성분 및 복용법) */
.new-info-section .new-info-container {
    max-width: 750px;
    margin: 0 auto;
    text-align: left;
}
.new-info-section h3 {
    font-size: 1.875rem;
    margin-bottom: 2.5rem;
    font-weight: 800;
    color: #054B22;
    text-align: center;
}
.new-info-section h4 {
    font-size: 1.35rem;
    font-weight: 700;
    color: #054B22;
    margin-top: 2.5rem;
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid #D4AF37; /* 골드 포인트 라인 */
}
.new-info-section ul {
    list-style: disc;
    padding-left: 1.5rem;
    margin-bottom: 1.5rem;
}
.new-info-section ul li {
    margin-bottom: 0.6rem;
    line-height: 1.6;
    color: #374151;
}

/* 주의사항 노란색 경고창(Callout) */
.new-info-section .callout {
    padding: 1.25rem;
    background-color: #fffde7; /* 연한 노란색 톤 유지 */
    border-left: 4px solid #D4AF37;
    margin: 1.75rem 0;
    border-radius: 0.25rem;
    font-size: 0.95rem;
}
.new-info-section .callout strong {
    color: #dc2626; /* 빨간색 경고 */
    display: block;
    margin-bottom: 0.75rem;
    font-size: 1.05rem;
}
.new-info-section .callout ul {
    list-style: none;
    padding-left: 0;
    margin: 0;
}
.new-info-section .callout ul li {
    color: #4b5563;
    margin-bottom: 0.4rem;
}
.new-info-section .callout ul li::before {
    content: "•";
    margin-right: 0.5rem;
    color: #dc2626;
    font-weight: bold;
}

/* E. 하단 직구 방법 가이드 섹션 */
.new-purchase-guide-section {
    padding-top: 4rem !important;
    padding-bottom: 4rem !important;
    background-color: #ffffff;
}
.new-purchase-guide-section h3 {
    font-size: 1.875rem;
    font-weight: 800;
    color: #054B22;
    text-align: center;
    margin-bottom: 3rem;
}
.new-purchase-grid {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: 1.5rem;
    max-width: 900px;
    margin: 0 auto;
}
.new-purchase-item {
    padding: 2.25rem 2rem;
    border-radius: 0.75rem;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.04);
    background-color: #f3f4f6; /* gray-100 박스 스타일 */
    text-align: left;
}
.new-purchase-item h4 {
    font-size: 1.4rem;
    font-weight: 700;
    margin-top: 0;
    margin-bottom: 1rem;
}
.new-purchase-item p {
    font-size: 1rem;
    line-height: 1.6;
    margin-bottom: 1.75rem;
    color: #4b5563;
}

/* 가이드 내부 이동 버튼 스타일 */
.new-purchase-item .cta-link {
    display: inline-block;
    padding: 0.6rem 1.5rem;
    border-radius: 9999px;
    font-weight: 600;
    text-decoration: none;
    font-size: 0.95rem;
    transition: opacity 0.2s ease;
}
.new-purchase-item:first-child .cta-link {
    background-color: #D4AF37;
    color: #054B22;
}
.new-purchase-item:first-child .cta-link:hover {
    opacity: 0.85;
}

/* ========================================================== */
/* 🎯 반응형 해상도 조절 (태블릿 및 모바일 기기) */
/* ========================================================== */
@media (min-width: 640px) {
    .new-product-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 900px) {
    .new-product-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 768px) {
    .new-purchase-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
    .new-content-section h2, .new-info-section h3, .new-purchase-guide-section h3 {
        font-size: 1.5rem; /* 모바일 전용 타이틀 크기 일괄 축소 */
    }
    .new-content-section p {
        font-size: 0.975rem;
        margin-bottom: 1.75rem;
    }
    .new-info-section h4, .new-purchase-item h4 {
        font-size: 1.2rem;
    }
    .new-purchase-item {
        padding: 1.75rem 1.25rem;
    }
}
/* 제휴문의 모달 */
.partner-inquiry-open{margin-left:.55rem;padding:.28rem .7rem;border:1px solid #D4AF37;border-radius:999px;background:transparent;color:#D4AF37;font-size:.75rem;font-weight:700;cursor:pointer;vertical-align:middle;transition:.2s}
.partner-inquiry-open:hover{background:#D4AF37;color:#054B22}
.footer-contact-notice{margin-top:.7rem;font-size:.78rem;line-height:1.7;color:#d1d5db;text-align:center}
.footer-contact-notice a{color:#D4AF37;font-weight:700;text-decoration:underline;text-underline-offset:2px}
.partner-inquiry-modal{display:none;position:fixed;inset:0;z-index:99999;background:rgba(0,0,0,.58);padding:20px;align-items:center;justify-content:center}
.partner-inquiry-modal.is-open{display:flex}.partner-modal-open{overflow:hidden}
.partner-inquiry-dialog{position:relative;width:min(100%,520px);max-height:90vh;overflow:auto;background:#fff;border-radius:16px;padding:28px;box-shadow:0 24px 70px rgba(0,0,0,.3);color:#1f2937;text-align:left}
.partner-inquiry-dialog h3{margin:0 0 6px;color:#054B22;font-size:1.45rem;font-weight:800}.partner-inquiry-dialog .partner-desc{margin:0 0 20px;color:#6b7280;font-size:.9rem}
.partner-inquiry-close{position:absolute;right:15px;top:12px;border:0;background:none;color:#6b7280;font-size:2rem;line-height:1;cursor:pointer}
.partner-field{margin-bottom:14px}.partner-field label{display:block;margin-bottom:6px;font-size:.85rem;font-weight:700;color:#374151}.partner-field input,.partner-field textarea{box-sizing:border-box;width:100%;border:1px solid #d1d5db;border-radius:8px;padding:11px 12px;font:inherit;color:#111827;background:#fff}.partner-field input:focus,.partner-field textarea:focus{outline:none;border-color:#054B22;box-shadow:0 0 0 3px rgba(5,75,34,.1)}
.partner-submit{width:100%;border:0;border-radius:9px;padding:12px;background:#054B22;color:#fff;font-weight:800;cursor:pointer}.partner-submit:hover{background:#003b1b}.partner-submit:disabled{opacity:.65;cursor:wait}
.partner-inquiry-status{min-height:20px;margin:10px 0 0;font-size:.84rem;text-align:center}.partner-inquiry-status.success{color:#047857}.partner-inquiry-status.error{color:#dc2626}
.partner-hp{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
@media(max-width:640px){.partner-inquiry-open{display:inline-block;margin:.45rem 0 0}.partner-inquiry-dialog{padding:24px 18px}.footer-contact-notice{padding:0 10px}}
