@charset "utf-8";

/* =========================================
   1. 서브 비주얼 & 네비게이션
   ========================================= */
.sub-visual {
    background-color: #261614; 
    color: #fff;
    padding: 150px 0 80px; 
    text-align: center;
    background-size: cover;
    background-position: center;
}
.sub-title {
    font-size: 2.8rem;
    font-weight: 700;
    color: var(--gold);
    margin-bottom: 15px;
    letter-spacing: 2px;
}
.sub-desc { font-size: 1.1rem; opacity: 0.8; font-weight: 300; }

.sub-nav {
    position: sticky;
    top: 90px;
    background-color: #3e2b20;
    z-index: 90;
    padding: 15px 0;
    text-align: center;
    border-bottom: 4px solid var(--gold);
}
.sub-nav ul { display: flex; justify-content: center; gap: 40px; margin: 0; padding: 0; }
.sub-nav a { color: rgba(255, 255, 255, 0.6); font-size: 1.1rem; transition: 0.3s; }
.sub-nav a.active, .sub-nav a:hover { color: #fff; font-weight: bold; }
.sub-nav li:not(:last-child)::after {
    content: "|";
    color: rgba(255, 255, 255, 0.2);
    margin-left: 40px;
}

/* =========================================
   2. 브랜드 스토리 (Brand Story & History)
   ========================================= */
.overview, .ceo-message, .history, .step-section { padding: 100px 0; }
.overview-content, .ceo-grid { display: flex; gap: 60px; align-items: center; }
.overview-img, .ceo-img { flex: 1; height: 450px; background-size: cover; border-radius: 15px; }

.history-timeline { position: relative; } 
.history-timeline::before { 
    content: ""; position: absolute; left: 100px; top: 0; bottom: 0; width: 2px; background: #eee; 
}
.history-item { display: flex; margin-bottom: 60px; position: relative; }
.history-item .year { width: 100px; font-size: 1.5rem; font-weight: 800; color: var(--gold); text-align: right; padding-right: 40px;}
.history-item::after { content: ""; position: absolute; left: 96px; top: 10px; width: 10px; height: 10px; background: var(--gold); border-radius: 50%; }
.history-desc { padding-left: 30px; }

/* =========================================
   3. 메뉴 (Menu)
   ========================================= */
.menu-category-section { padding: 80px 0; scroll-margin-top: 150px; }
.category-title {
    font-size: 2rem; font-weight: bold; margin-bottom: 40px;
    color: #333; border-bottom: 2px solid #333; padding-bottom: 15px; display: inline-block;
}
.menu-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 40px 30px; }
.menu-item { text-align: left; display: flex; flex-direction: column; }
.menu-img-box {
    width: 100%; aspect-ratio: 1/1; background-color: #f5f5f5;
    margin-bottom: 20px; overflow: hidden; border-radius: 10px;
}
.menu-img-box img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
.menu-item:hover .menu-img-box img { transform: scale(1.1); }
.menu-info-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; border-bottom: 1px solid #eee; padding-bottom: 10px; }
.menu-name { font-size: 1.15rem; font-weight: bold; color: var(--dark); }
.menu-price { font-size: 1.05rem; color: var(--gold); font-weight: 700; }
.menu-desc { font-size: 0.9rem; color: #777; line-height: 1.6; word-break: keep-all; }

/* 알레르기 섹션 */
.allergy-subtitle { text-align: center; color: #777; margin-bottom: 40px; }
.allergy-table-wrapper {
    max-width: 900px; margin: 0 auto; background: #fff; border-radius: 10px;
    overflow: hidden; box-shadow: 0 5px 15px rgba(0,0,0,0.05);
}
.allergy-table { width: 100%; border-collapse: collapse; text-align: center; }
.allergy-table th { background-color: var(--dark); color: #fff; padding: 20px; font-size: 1.1rem; font-weight: 600; }
.allergy-table td { padding: 18px; border-bottom: 1px solid #eee; color: #444; font-size: 1rem; }
.allergy-table td:first-child { background-color: #fafafa; font-weight: bold; color: var(--gold); border-right: 1px solid #eee; }
.allergy-notice { margin-top: 20px; text-align: center; font-size: 0.85rem; color: #999; }

/* =========================================
   4. 매장 (Store)
   ========================================= */
.store-section { padding: 80px 0; background-color: #f9f9f9; }
.store-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; }
.store-card { background: #fff; border: 1px solid #e5e5e5; border-radius: 12px; padding: 35px; transition: 0.3s; display: flex; flex-direction: column; }
.store-card:hover { transform: translateY(-8px); box-shadow: 0 15px 30px rgba(0,0,0,0.1); border-color: var(--gold); }
.store-card[hidden] { display: none; }
.store-info h3 { font-size: 1.4rem; margin-bottom: 20px; color: #222; display: flex; justify-content: space-between; }
.badge { font-size: 0.75rem; background: #f0f0f0; padding: 4px 10px; border-radius: 4px; color: #777; }
.info-row { display: flex; gap: 12px; margin-bottom: 12px; color: #666; font-size: 0.95rem; }
.info-icon { color: var(--gold); width: 20px; }
.store-actions { margin-top: auto; padding-top: 25px; display: flex; gap: 12px; }
.btn-action { flex: 1; padding: 14px 0; text-align: center; border-radius: 6px; font-weight: 600; }
.btn-call { background: #fff; border: 1px solid #ddd; color: #444; }
.btn-map { background: var(--dark); color: #fff; }
.btn-map:hover { background: var(--gold); }
.btn-action { transition: 0.2s; }
.btn-call:hover { border-color: var(--gold); color: var(--gold); }

/* 매장 컨트롤 바 (검색 / 지역 필터) */
.store-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin-bottom: 35px; }
.store-head { display: flex; align-items: baseline; gap: 12px; margin-right: auto; }
.store-head-title { font-size: 1.6rem; font-weight: 700; color: var(--dark); }
.store-count { color: #999; font-size: 0.95rem; }
.store-count strong { color: var(--gold); font-weight: 700; }
.store-filters { display: flex; gap: 8px; flex-wrap: wrap; }
.chip { padding: 8px 18px; border: 1px solid #ddd; background: #fff; border-radius: 999px; font-size: 0.9rem; color: #555; cursor: pointer; transition: 0.2s; }
.chip:hover { border-color: var(--gold); color: var(--dark); }
.chip.is-active { background: var(--dark); border-color: var(--dark); color: #fff; }
.store-search input { padding: 11px 18px; border: 1px solid #ddd; border-radius: 999px; font-size: 0.9rem; min-width: 210px; background: #fff; transition: 0.2s; }
.store-search input:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 3px rgba(212,175,55,0.15); }
.store-empty { text-align: center; color: #999; padding: 60px 0; font-size: 1.05rem; }

/* 매장 이미지 + 영업상태 뱃지 */
.store-img { position: relative; width: 100%; aspect-ratio: 16/10; background-color: #eee; background-size: cover; background-position: center; border-radius: 8px; margin-bottom: 20px; }
.store-status { position: absolute; top: 12px; left: 12px; padding: 5px 12px; border-radius: 999px; font-size: 0.78rem; font-weight: 700; color: #fff; box-shadow: 0 2px 6px rgba(0,0,0,0.2); }
.store-status:empty { display: none; }
.store-status.is-open { background: #2ea043; }
.store-status.is-closed { background: #6b6b6b; }

/* 아이콘 (이모지 대체 SVG) */
.store-ico { width: 18px; height: 18px; flex: 0 0 18px; fill: var(--gold); margin-top: 2px; }
.info-row.hours-row { align-items: flex-start; }

/* 영업시간 블록 (모든 카드 동일 구조) */
.store-hours { flex: 1; }
.hours-main { font-weight: 500; color: #333; margin-bottom: 8px; line-height: 1.5; }
.hours-meta { list-style: none; margin: 0; padding: 10px 12px; background: #f8f9fa; border-radius: 8px; font-size: 0.85rem; color: #555; line-height: 1.8; }
.hm-label { display: inline-block; min-width: 66px; font-weight: 700; color: #e65100; }
.hm-label.hm-off { color: #1976d2; }

/* =========================================
   5. 문의 & 가맹 (Contact Form & Info)
   ========================================= */
.process-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; }
.step-item { text-align: center; position: relative; padding: 30px 20px; border: 1px solid #eee; border-radius: 10px; transition: 0.3s;}
.step-item:hover { border-color: var(--gold); transform: translateY(-5px); }
.step-num { font-size: 2rem; font-weight: 800; color: var(--gold); opacity: 0.3; }

.contact-wrap { padding: 100px 0; }
.h3-title { font-size: 2rem; margin-bottom: 15px; font-weight: 700; color: var(--dark); }
.desc { color: #666; font-size: 1.05rem; }

.contact-form { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; max-width: 800px; margin: 0 auto; }
.form-group { display: flex; flex-direction: column; }
.form-group.full-width { grid-column: span 2; }
.form-group label { margin-bottom: 10px; font-weight: 600; color: var(--dark); font-size: 0.95rem; }
.form-group input, .form-group select, .form-group textarea {
    border: 1px solid #ddd; padding: 15px; font-size: 1rem; border-radius: 4px;
    background-color: var(--light-gray); transition: all 0.3s ease;
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus {
    outline: none; border-color: var(--gold); background-color: #fff; box-shadow: 0 0 5px rgba(212, 175, 55, 0.3);
}
.btn-submit-custom {
    background-color: var(--dark); color: #fff; border: none; padding: 18px 50px;
    font-size: 1.1rem; font-weight: 600; cursor: pointer; transition: 0.3s; border-radius: 4px;
}
.btn-submit-custom:hover { background-color: var(--gold); }

.info-grid { display: flex; justify-content: space-between; gap: 50px; align-items: stretch; }
.info-text { flex: 1; background: var(--light-gray); padding: 50px; border-radius: 8px; }
.info-list { margin-top: 40px; }
.info-list li { margin-bottom: 30px; display: flex; flex-direction: column; }
.info-list .label { font-size: 0.9rem; color: var(--gold); font-weight: 700; margin-bottom: 8px; letter-spacing: 1px; }
.info-list .value { font-size: 1.2rem; color: var(--dark); font-weight: 500; }
.info-map { flex: 1.2; min-height: 400px; background-color: #e9e9e9; border-radius: 8px; overflow: hidden; }
.map-placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; color: #888; font-weight: 600; font-size: 1.1rem; }


/* =========================================
   6. 서브 페이지 반응형 (태블릿 & 모바일)
   ========================================= */

/* 태블릿 (1024px 이하) */
@media (max-width: 1024px) {
    .menu-grid { grid-template-columns: repeat(3, 1fr); }
    .process-grid { grid-template-columns: repeat(3, 1fr); }
    .store-grid { grid-template-columns: repeat(2, 1fr); }
    .store-card { padding: 28px; }
}

/* 📱 모바일 (768px 이하) */
@media (max-width: 768px) {
    
    /* [1] 서브 타이틀 및 비주얼 최적화 */
    .sub-title { font-size: 2rem; }
    .sub-visual { 
        margin-top: 130px !important; 
        padding: 50px 0 40px !important; 
    }
    
    /* [2] 서브 네비게이션(메뉴바) 최적화 */
    .sub-nav ul { gap: 15px; flex-wrap: wrap; }
    .sub-nav li:not(:last-child)::after { margin-left: 15px; } 

    /* [3] 공통 여백 축소 및 세로 배치 전환 */
    .overview, .ceo-message, .history, .step-section, .contact-wrap { padding: 60px 0; }
    .overview-content, .ceo-grid, .info-grid { flex-direction: column; gap: 30px; }
    .info-map { min-height: 300px; }

    /* [4] 가맹문의 및 매장 목록 1줄 세로 정렬 */
    .benefit-grid { grid-template-columns: 1fr !important; gap: 20px !important; }
    .process-grid { grid-template-columns: 1fr; gap: 20px; } 
    .process-list { grid-template-columns: 1fr !important; gap: 15px !important; }
    .store-grid { grid-template-columns: 1fr; }
    .menu-grid { grid-template-columns: repeat(2, 1fr); }

    /* [5] 오픈 프로세스 카드 디테일 중앙 정렬 */
    .process-card { text-align: center !important; padding-top: 35px !important; }
    .process-card .step { left: 50% !important; transform: translateX(-50%) !important; }

    /* [6] 가맹 상담 폼 세로 강제 배치 (Flex) */
    .contact-form { display: flex !important; flex-direction: column !important; gap: 20px !important; }
    .form-group, .form-group.full-width { width: 100% !important; }

    /* [7] 연혁 (History) 정렬 */
    .history-timeline::before { left: 20px; }
    .history-item { padding-left: 50px; flex-direction: column; }
    .history-item .year { text-align: left; padding-right: 0; margin-bottom: 10px; }
    .history-item::after { left: 16px; }
    .history-desc { padding-left: 0; }

    /* [8] 알레르기 표 (자동 줄바꿈 최적화) */
    .allergy-table-wrapper { width: 100% !important; overflow-x: hidden !important; }
    .allergy-table { min-width: 100% !important; table-layout: fixed !important; word-break: break-word !important; }
    .allergy-table th, .allergy-table td { padding: 10px 5px !important; font-size: 0.85rem !important; white-space: normal !important; }
    .allergy-table th:nth-child(1), .allergy-table td:nth-child(1) { width: 25% !important; }
    .allergy-table th:nth-child(2), .allergy-table td:nth-child(2) { width: 35% !important; }
    .allergy-table th:nth-child(3), .allergy-table td:nth-child(3) { width: 40% !important; }
}

/* 📱 소형 스마트폰 (480px 이하) 추가 보호 */
@media (max-width: 480px) {
    .menu-grid { grid-template-columns: 1fr; } /* 치킨 사진 1열로 변경 */
    .sub-nav li:not(:last-child)::after { display: none; } /* 화면 좁을 때 | 기호 숨김 */
}