/* 스마트 올림픽 - 메인 허브 전용 스타일 */
body { font-family: 'Apple SD Gothic Neo', 'NEXON Lv1 Gothic OTF', sans-serif; background-color: #f4f7f6; background-image: radial-gradient(#e0e0e0 1px, transparent 1px); background-size: 20px 20px; margin: 0; padding: 0; text-align: center; }
header { background: linear-gradient(135deg, #005bbb, #002366); color: white; padding: 40px 20px; margin-bottom: 40px; box-shadow: 0 4px 15px rgba(0,0,0,0.2); border-bottom: 5px solid #ffcc00; position: relative; display: flex; flex-direction: column; align-items: center; }

.rings-wrapper { position: absolute; top: 15px; right: 20px; width: 100px; height: 45px; }
.ring { width: 24px; height: 24px; border-radius: 50%; border: 4px solid; position: absolute; background: transparent; }
.ring.blue { border-color: #0081C8; left: 0; top: 0; z-index: 1;}
.ring.yellow { border-color: #FCB131; left: 16px; top: 12px; z-index: 2;}
.ring.black { border-color: #000000; left: 32px; top: 0; z-index: 1;}
.ring.green { border-color: #00A651; left: 48px; top: 12px; z-index: 2;}
.ring.red { border-color: #EE334E; left: 64px; top: 0; z-index: 1;}

#bgm-toggle { position: absolute; top: 20px; left: 20px; padding: 10px 15px; background-color: rgba(255,255,255,0.2); border: 2px solid white; color: white; border-radius: 30px; font-weight: bold; cursor: pointer; transition: 0.3s; font-size: 1em; backdrop-filter: blur(5px); }
#bgm-toggle:hover { background-color: white; color: #005bbb; }

.class-logo { width: 80px; height: 80px; border-radius: 50%; border: 3px solid #ffcc00; object-fit: cover; margin-bottom: 15px; box-shadow: 0 4px 10px rgba(0,0,0,0.3); }

h1 { margin: 0; font-size: 2.8em; text-shadow: 2px 2px 4px rgba(0,0,0,0.3); }
p.subtitle { margin-top: 10px; font-size: 1.2em; opacity: 0.9; }

.container { display: flex; flex-wrap: wrap; justify-content: center; gap: 30px; max-width: 1200px; margin: 0 auto; padding: 0 20px 20px 20px; }
.card { background: white; border-radius: 20px; width: 260px; padding: 30px 20px; text-decoration: none; color: #333; position: relative; overflow: hidden; box-shadow: 0 10px 20px rgba(0,0,0,0.08); transition: all 0.3s; border: 4px solid transparent; }
.card.active:hover { transform: translateY(-10px); box-shadow: 0 15px 30px rgba(0,0,0,0.15); }
.card.active .icon { font-size: 5em; margin-bottom: 15px; transition: transform 0.3s; line-height: 1; }
.card.active:hover .icon { transform: scale(1.1); }
.card.active .icon .icon-img { width: 1em; height: 1em; object-fit: contain; vertical-align: middle; }
.card h2 { margin: 0 0 10px 0; font-size: 1.5em; }

.card.sprint { border-color: #0085C7; } .card.sprint h2 { color: #0085C7; }
.card.swim { border-color: #F4C300; } .card.swim h2 { color: #d4a000; }
.card.gymnastics { border-color: #009F3D; } .card.gymnastics h2 { color: #009F3D; }
.card.boxing { border-color: #DF0024; } .card.boxing h2 { color: #DF0024; }
.card.taekwondo { border-color: #424242; } .card.taekwondo h2 { color: #424242; }
.card.surfing { border-color: #0288D1; } .card.surfing h2 { color: #0288D1; }
.card.jumprope { border-color: #FF6F00; } .card.jumprope h2 { color: #FF6F00; }
.card.squat { border-color: #6A1B9A; } .card.squat h2 { color: #6A1B9A; }
.card.wall { border-color: #8E24AA; } .card.wall h2 { color: #8E24AA; }

.status-badge { position: absolute; top: 20px; right: -40px; color: white; padding: 5px 0; width: 140px; text-align: center; font-size: 0.85em; font-weight: bold; transform: rotate(45deg); letter-spacing: 1px;}

/* 푸터 및 개인정보 처리방침 모달 스타일 */
footer { padding: 20px; margin-top: 20px; color: #777; font-size: 0.9em; }
footer a { color: #005bbb; text-decoration: underline; cursor: pointer; font-weight: bold; }

.modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.6); z-index: 100; display: none; justify-content: center; align-items: center; }
.modal-content { background: white; width: 90%; max-width: 800px; max-height: 80vh; border-radius: 15px; padding: 30px; position: relative; display: flex; flex-direction: column; text-align: left; box-shadow: 0 10px 30px rgba(0,0,0,0.3); }
.close-btn { position: absolute; top: 15px; right: 20px; font-size: 2em; cursor: pointer; color: #333; line-height: 1; }
.privacy-text { overflow-y: auto; flex-grow: 1; font-size: 0.95em; line-height: 1.6; color: #444; padding-right: 15px; margin-top: 10px; }
.privacy-text h2 { color: #005bbb; margin-top: 0; text-align: center; }
.privacy-text h3 { color: #333; margin-top: 25px; font-size: 1.1em; border-left: 4px solid #005bbb; padding-left: 10px; }
.privacy-text table { width: 100%; border-collapse: collapse; margin-top: 10px; font-size: 0.9em; }
.privacy-text th, .privacy-text td { border: 1px solid #ddd; padding: 10px; text-align: left; }
.privacy-text th { background-color: #f4f7f6; }
