:root {
    --primary-blue: #0056b3;
    --dark-blue: #003d80;
    --white: #ffffff;
    --light-gray: #f8f9fa;
    --text-color: #333;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: 'Pretendard', sans-serif; color: var(--text-color); line-height: 1.6; }
.container { width: 90%; max-width: 1200px; margin: 0 auto; }

/* Header */
header { background: var(--white); padding: 20px 0; border-bottom: 1px solid #ddd; position: sticky; top: 0; z-index: 1000; }
header .container { display: flex; justify-content: space-between; align-items: center; }
header h1 { color: var(--primary-blue); font-size: 24px; }
nav ul { display: flex; list-style: none; }
nav ul li { margin-left: 20px; }
nav ul li a { text-decoration: none; color: var(--text-color); font-weight: 600; }

/* Hero Banner */
.hero { position: relative; height: 500px; overflow: hidden; }
.slide { position: absolute; width: 100%; height: 100%; background-size: cover; background-position: center; opacity: 0; transition: opacity 1s; display: flex; align-items: center; justify-content: center; text-align: center; color: var(--white); }
.slide.active { opacity: 1; }
.hero-text h2 { font-size: 3rem; text-shadow: 2px 2px 10px rgba(0,0,0,0.5); }
.hero-text strong { color: var(--primary-blue); background: var(--white); padding: 0 10px; }

/* Sections */
.content-section { padding: 80px 0; text-align: center; }
.bg-light { background: var(--light-gray); }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; }

/* Cards (Height Match) */
.card { background: var(--white); border: 1px solid #eee; display: flex; flex-direction: column; height: 100%; }
.card img { width: 100%; height: 200px; object-fit: cover; }
.card-body { padding: 20px; flex-grow: 1; }

/* Footer */
footer { background: var(--primary-blue); color: var(--white); padding: 40px 0; font-size: 14px; }
.footer-info p { margin-bottom: 5px; }
.copyright { border-top: 1px solid rgba(255,255,255,0.2); padding-top: 20px; margin-top: 20px; text-align: center; }

/* Back to Top */
#backToTop { position: fixed; bottom: 30px; right: 30px; background: var(--primary-blue); color: #fff; border: none; padding: 10px 15px; border-radius: 5px; cursor: pointer; display: none; z-index: 999; }