
/* Reset & Base */
:root { --primary: #2c3e50; --accent: #e74c3c; --bg: #f8f9fa; --text: #333; --white: #fff; }
* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: 'Noto Sans KR', sans-serif; background: var(--bg); color: var(--text); line-height: 1.6; display: flex; flex-direction: column; min-height: 100vh; }
a { text-decoration: none; color: inherit; transition: 0.3s; }
ul { list-style: none; }

/* Layout */
.container { max-width: 1200px; margin: 0 auto; padding: 0 20px; }
main { flex: 1; padding: 40px 0; }

/* Header */
header { background: var(--white); box-shadow: 0 2px 10px rgba(0,0,0,0.05); position: sticky; top: 0; z-index: 100; }
.nav-bar { display: flex; justify-content: space-between; align-items: center; height: 70px; }
.logo img { height: 40px; }
.menu { display: flex; gap: 20px; font-weight: 500; }
.menu a:hover { color: var(--accent); }

/* Hero Section (Common Design) */
.hero { 
    height: 300px; 
    background-size: cover; 
    background-position: center; 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    text-align: center; 
    color: var(--white);
    margin-bottom: 40px;
}
.hero h1 { font-size: 2.5rem; margin-bottom: 10px; text-shadow: 0 2px 4px rgba(0,0,0,0.5); }
.hero p { font-size: 1.2rem; opacity: 0.9; }

/* Content Sections */
.section-title { font-size: 1.8rem; border-left: 5px solid var(--accent); padding-left: 15px; margin-bottom: 20px; color: var(--primary); }
.content-box { background: var(--white); padding: 30px; border-radius: 10px; box-shadow: 0 4px 6px rgba(0,0,0,0.05); margin-bottom: 30px; }

/* Grid Systems */
.grid-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 20px; }
.card { display: block; background: var(--white); padding: 20px; border-radius: 8px; text-align: center; border: 1px solid #eee; font-weight: bold; }
.card:hover { background: var(--primary); color: var(--white); transform: translateY(-5px); box-shadow: 0 5px 15px rgba(0,0,0,0.1); }

/* Buttons */
.reservation-area { text-align: center; margin-top: 40px; }
.btn-reservation { background: var(--accent); color: var(--white); padding: 15px 40px; font-size: 1.2rem; border-radius: 50px; font-weight: bold; box-shadow: 0 4px 15px rgba(231, 76, 60, 0.4); display: inline-block;}
.btn-reservation:hover { background: #c0392b; transform: scale(1.05); }

/* Footer */
footer { background: var(--primary); color: #bdc3c7; text-align: center; padding: 40px 0; margin-top: auto; }

/* Mobile */
@media (max-width: 768px) {
    .menu { display: none; } /* Mobile Menu functionality omitted for simplicity */
    .hero h1 { font-size: 1.8rem; }
}
.cta-wrapper {
    margin-top: 20px;
}

.cta-main {
    display: inline-block;
    padding: 14px 28px;
    font-size: 18px;
    font-weight: 700;
    color: #fff;
    background: linear-gradient(45deg, #ff3c3c, #ff8800);
    border-radius: 8px;
    text-decoration: none;
    box-shadow: 0 8px 20px rgba(0,0,0,0.4);
    transition: all 0.25s ease;
}

.cta-main:hover {
    transform: translateY(-3px) scale(1.05);
}

.cta-sub {
    display: block;
    margin-top: 6px;
    font-size: 13px;
    color: #ddd;
}
