@charset "utf-8";

/* ==========================================
   1. 기본 스타일 및 테마 정의
   ========================================== */

   

:root {
    --primary-brown: #4A3121;     /* 메인: 뚝배기 브라운 */
    --accent-gold: #E6A15C;       /* 포인트: 누룽지 골드 */
    --bg-ivory: #FAF6F0;          /* 배경: 삼계탕 아이보리 */
    --text-dark: #33221A;         /* 기본 글자색 */
    --white: #ffffff;             /* 흰색 배경 */
    --gray-placeholder: #EFEAE2;  /* 대체 이미지 배경색 */
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: sans-serif;
    background-color: var(--bg-ivory);
    color: var(--text-dark);
    line-height: 1.6;
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

/* 공통 버튼 디자인 */
.cta-button {
    display: inline-block;
    background-color: var(--accent-gold);
    color: var(--white);
    padding: 16px 40px;
    font-size: 1.1rem;
    font-weight: bold;
    text-decoration: none;
    border-radius: 50px;
    transition: background-color 0.2s;
    z-index: 5;
    position: relative;
}

.cta-button:hover {
    background-color: #d48f48;
}

/* 이미지 미로딩 대비 플레이스홀더 구조 */
.img-placeholder {
    width: 100%;
    background-color: var(--gray-placeholder);
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.img-placeholder img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
}


/* ==========================================
   2. 히어로 섹션 (메인 비주얼 배너)
   ========================================== */
.hero {
    position: relative;
    width: 100%;
    min-height: 600px;
    display: flex;
    align-items: flex-start;
    padding: 140px 0 60px 0;
    text-align: center;
    background-color: var(--bg-ivory);
    overflow: hidden;
}

.hero-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: bottom; /* PC 브라우저가 늘어날 때 하단 삼계탕 영역 고정 */
    opacity: 0.15;
    z-index: 1;
}

.hero .container {
    position: relative;
    z-index: 2;
    width: 100%;
}

.hero h1 {
    font-size: 2.8rem;
    color: var(--primary-brown);
    font-weight: bold;
    margin-bottom: 15px;
    word-break: keep-all;
}

.hero h1 span {
    display: block;
    font-size: 1.8rem;
    color: var(--accent-gold);
    margin-top: 8px;
}

.hero p {
    font-size: 1.1rem;
    margin-bottom: 40px;
}

/* ==========================================
   3. 메뉴 섹션 (가독성 최적화 완료)
   ========================================== */
.menu-section {
    padding: 80px 0;
    background-color: var(--white);
}

.section-title {
    text-align: center;
    font-size: 2rem;
    color: var(--primary-brown);
    margin-bottom: 15px;
}

.menu-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 35px;
    margin-top: 40px;
}

.menu-item {
    background-color: var(--bg-ivory);
    border-radius: 15px;
    overflow: hidden;
    border: 1px solid var(--gray-placeholder);
    box-shadow: 0 4px 10px rgba(74, 49, 33, 0.05);
}

.menu-item .img-placeholder {
    height: 240px;
}

/* 메뉴 하단 텍스트 레이아웃 정보 통합 정의 */
.menu-info {
    padding: 25px;
    position: relative;
}

.menu-title {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    font-size: 1.3rem;
    color: var(--primary-brown);
    margin-bottom: 12px;
    font-weight: bold;
}

.menu-title small {
    font-size: 0.85rem;
    color: #77665B;
    font-weight: normal;
    margin-left: 5px;
}

.menu-price {
    color: var(--accent-gold);
    font-size: 1.25rem;
}

.menu-info p {
    font-size: 0.95rem;
    color: #55443B;
}

/* ==========================================
   3-1. 메뉴 텍스트 영역 안내 태그 (라벨)
   ========================================== */
.menu-tags {
    display: flex;
    gap: 6px;
    margin-bottom: 10px;
    flex-wrap: wrap;
}

.tag {
    display: inline-block;
    padding: 3px 10px;
    font-size: 0.75rem;
    font-weight: bold;
    border-radius: 4px;
}

/* 조리 안내 태그 (파스텔 그린) */
.tag-cook {
    background-color: #EBF7EE;
    color: #2F9D27;
    border: 1px solid #D1EED8;
}

/* 예약 필수 태그 (파스텔 레드) */
.tag-reserve {
    background-color: #FDF2F2;
    color: #D9383A;
    border: 1px solid #FDE2E2;
}

/* 계절 메뉴 태그 (파스텔 오렌지) */
.tag-season {
    background-color: #FFF6ED;
    color: #F27B13;
    border: 1px solid #FFE7D1;
}

/* ==========================================
   4. 네이버 지도 섹션 (오시는 길)
   ========================================== */
.location-section {
    padding: 80px 0;
    text-align: center;
    background-color: var(--bg-ivory);
}

.location-address {
    font-size: 1.1rem;
    margin-bottom: 25px;
    color: var(--primary-brown);
    font-weight: bold;
}

#map {
    width: 100%;
    max-width: 1000px;
    height: 450px;
    margin: 0 auto;
    border-radius: 15px;
    border: 1px solid var(--gray-placeholder);
    background-color: var(--gray-placeholder);
}

/* ==========================================
   5. 푸터
   ========================================== */
footer {
    background-color: var(--primary-brown);
    color: #D5C7BC;
    padding: 50px 0;
    text-align: center;
}

footer h2 {
    color: var(--white);
    font-size: 1.5rem;
    margin-bottom: 12px;
}

footer p {
    margin-bottom: 10px;
    font-size: 0.95rem;
}

/* ==========================================
   6. 모바일 최적화 TOP 플로팅 버튼
   ========================================== */
.top-button {
    position: fixed;
    bottom: 25px;
    right: 25px;
    z-index: 999; /* 다른 UI 요소에 가려지지 않도록 최상단 배치 */
    width: 50px;
    height: 50px;
    background-color: var(--primary-brown); /* 매장 메인 뚝배기 브라운 컬러 */
    color: var(--white);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 50%; /* 완전한 원형 디자인 */
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    font-weight: bold;
    text-decoration: none;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    opacity: 0; /* 💡 처음 첫 화면에서는 숨겨둠 */
    visibility: hidden;
    transition: all 0.3s ease-in-out;
}

/* 버튼이 활성화되었을 때 투명도 효과 */
.top-button.show {
    opacity: 1;
    visibility: visible;
}

/* 터치하거나 마우스를 올렸을 때 살짝 위로 부드럽게 들리는 효과 */
.top-button:hover {
    background-color: var(--accent-gold); /* 포인트 누룽지 골드로 색상 변경 */
    transform: translateY(-4px);
}

/* 📱 모바일 및 스마트폰 환경에서 버튼을 조금 더 누르기 편하게 강조 조절 */
@media (max-width: 768px) {
    .top-button {
        bottom: 20px;
        right: 20px;
        width: 52px;
        height: 52px;
        font-size: 0.8rem;
        box-shadow: 0 6px 16px rgba(74, 49, 33, 0.25); /* 모바일에서 시인성 강화 */
    }
}