@charset "UTF-8";

/* ═══════ FONTS ═══════ */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;700;900&family=Poppins:ital,wght@0,400;0,500;0,600;0,700;0,800;0,900;1,700;1,800;1,900&family=Unbounded:wght@400;500;600;700;800;900&display=swap');
@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/variable/pretendardvariable.css');

/* ═══════ RESET & BASE ═══════ */
* { margin:0; padding:0; box-sizing:border-box; }
img { -webkit-user-drag:none; user-select:none; }
::-webkit-scrollbar { width:6px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:rgba(0,0,0,0.1); border-radius:4px; }

html { overflow-x:hidden; scroll-behavior:smooth; -ms-overflow-style:none; scrollbar-width:none; }
html::-webkit-scrollbar { display:none; }
body { font-family:'Pretendard','Noto Sans KR',sans-serif; background:#FAFBFD; color:#1A1F36; overflow-x:hidden; }

/* ═══ SITE HEADER (2026) ═══ */
:root {
  --od-yellow:#F5C400;
  --od-yellow-light:#FFF8D6;
  --od-dark:#1A1A1A;
  --od-text-main:#222222;
  --od-text-sub:#555555;
  --od-text-muted:#888888;
  --od-border:#E5E7EB;
  --od-gray-bg:#F2F4F8;
  --od-max-w:1200px;
}

/* 공통 헤더(include) — 페이지 본문 CSS와 격리 (#header-slot) */
#header-slot {
  position:relative;
  /* programs 등 본문 z-index(6k~10k)보다 위 — 사이드패널·오버레이가 가리지 않도록 */
  z-index:10000;
}

#header-slot #siteHeader,
#header-slot header#siteHeader {
  position:sticky; top:0; z-index:3;
  background:rgba(255,255,255,0.96);
  backdrop-filter:blur(16px);
  border-bottom:1px solid var(--od-border);
}

#header-slot .header-inner {
  max-width:var(--od-max-w); margin:0 auto; padding:0 40px;
  height:64px; display:flex; align-items:center; justify-content:space-between;
}
@media(max-width:900px){ #header-slot .header-inner{padding:0 24px} }

#header-slot .logo { display:flex; align-items:center; gap:6px; text-decoration:none; }
#header-slot .logo img { height:24px; width:auto; display:block; }

#header-slot .h-nav { display:flex; align-items:center; gap:4px; position:relative; }
#header-slot .nav-item { position:relative; }
#header-slot .nav-item>a {
  display:flex; align-items:center; gap:4px;
  font-size:16px; font-weight:600; color:var(--od-text-main);
  padding:8px 14px; border-radius:8px;
  transition:background .15s,color .15s;
  white-space:nowrap; text-decoration:none;
}
#header-slot .nav-item>a:hover { background:var(--od-gray-bg); color:var(--od-dark); }
#header-slot .nav-caret { font-size:10px; opacity:.45; transition:transform .2s; display:inline-block; }
#header-slot .nav-item:hover .nav-caret,
#header-slot .nav-item-programs.is-open .nav-caret,
#header-slot .nav-item-about.is-open .nav-caret,
#header-slot .nav-item-support.is-open .nav-caret { transform:rotate(180deg); }
#header-slot .nav-item-programs.is-open > a,
#header-slot .nav-item-about.is-open > a,
#header-slot .nav-item-support.is-open > a { background:var(--od-gray-bg); color:var(--od-dark); }

#header-slot .h-right { display:flex; align-items:center; gap:10px; flex-shrink:0; }

/* 데스크톱·모바일 사이드 — 동일 버튼 스타일 */
#header-slot #siteHeader .btn-ghost,
#header-slot #siteHeader .btn-primary-sm,
body > .mega-side .ms-actions .btn-ghost,
body > .mega-side .ms-actions .btn-primary-sm,
body > .mega-side .ms-actions .btn-ghost,
body > .mega-side .ms-actions .btn-primary-sm,
#header-slot .mega-side .ms-actions .btn-ghost,
body > .mega-side .ms-actions .btn-primary-sm,
#header-slot .mega-side .ms-actions .btn-primary-sm {
  font-family:'Pretendard','Noto Sans KR',sans-serif;
  font-size:15px;
  font-weight:600;
  line-height:1.2;
  cursor:pointer;
  border-radius:8px;
  border:none;
  box-shadow:none;
  transition:background .2s,color .15s,transform .15s,outline-color .15s;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:9px 16px;
  min-height:40px;
  box-sizing:border-box;
  -webkit-appearance:none;
  appearance:none;
}

#header-slot #siteHeader .btn-ghost,
body > .mega-side .ms-actions .btn-ghost,
#header-slot .mega-side .ms-actions .btn-ghost {
  background:#fff;
  color:var(--od-text-sub);
  outline:1px solid #E5E7EB;
  outline-offset:0;
}

#header-slot #siteHeader .btn-ghost.btn-ghost2,
body > .mega-side .ms-actions .btn-ghost.btn-ghost2,
#header-slot .mega-side .ms-actions .btn-ghost.btn-ghost2 {
  color:var(--od-text-main);
  outline:1px solid var(--od-yellow);
  background-color:var(--od-yellow-light);
}

#header-slot #siteHeader .btn-ghost:hover,
body > .mega-side .ms-actions .btn-ghost:hover,
#header-slot .mega-side .ms-actions .btn-ghost:hover {
  background:var(--od-gray-bg);
  color:var(--od-dark);
}

#header-slot #siteHeader .btn-ghost.btn-ghost2:hover,
body > .mega-side .ms-actions .btn-ghost.btn-ghost2:hover,
#header-slot .mega-side .ms-actions .btn-ghost.btn-ghost2:hover {
  background:#fade70;
  color:var(--od-dark);
}

#header-slot #siteHeader .btn-primary-sm,
body > .mega-side .ms-actions .btn-primary-sm,
#header-slot .mega-side .ms-actions .btn-primary-sm {
  background:var(--od-yellow);
  color:var(--od-dark);
  font-weight:700;
  outline:none;
}

#header-slot #siteHeader .btn-primary-sm:hover,
body > .mega-side .ms-actions .btn-primary-sm:hover,
#header-slot .mega-side .ms-actions .btn-primary-sm:hover {
  background:#e0b300;
  transform:translateY(-1px);
}

#header-slot .hb-btn {
  display:none;
  flex-direction:column; justify-content:center; align-items:center; gap:5px;
  width:40px; height:40px; border:none; background:none; cursor:pointer;
  border-radius:8px; transition:background .15s; flex-shrink:0;
}
#header-slot .hb-btn:hover { background:var(--od-gray-bg); }
#header-slot .hb-btn span {
  display:block; width:22px; height:2px;
  background:var(--od-dark); border-radius:2px;
  transition:transform .25s,opacity .25s; transform-origin:center;
}
#header-slot .hb-btn.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
#header-slot .hb-btn.open span:nth-child(2) { opacity:0; }
#header-slot .hb-btn.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

#header-slot .mob-menu {
  display:none;
  position:absolute; top:100%; left:0; right:0;
  background:#fff; border-bottom:1px solid var(--od-border);
  box-shadow:0 12px 32px rgba(0,0,0,.08);
  padding:12px 24px 20px; z-index:190;
}
#header-slot .mob-menu.open { display:block; }
#header-slot .mob-menu a {
  display:block;
  font-size:16px; font-weight:600; color:var(--od-text-main);
  padding:12px 4px; border-bottom:1px solid var(--od-border);
  transition:color .15s; text-decoration:none;
}
#header-slot .mob-menu a:last-child { border-bottom:none; }
#header-slot .mob-menu a:hover { color:var(--od-dark); }
#header-slot .mob-cat {
  font-size:12px; font-weight:700; letter-spacing:1.5px;
  color:var(--od-text-muted); text-transform:uppercase;
  padding:16px 4px 6px; border-bottom:none!important;
}
#header-slot .mob-cat:first-child { padding-top:4px; }
#header-slot .mob-sub {
  padding-left:14px!important;
  font-weight:500!important;
  color:var(--od-text-sub)!important;
  font-size:15px!important;
}

/* 1024px: 상단 네비만 숨김 → 햄버거 + 헤더 버튼(오드랩몰·로그인) 유지 */
@media(max-width:1024px) {
  #header-slot .h-nav { display:none; }
  #header-slot .h-right { display:flex; margin-left:auto; flex-shrink:0; gap:8px; }
  #header-slot .hb-btn { display:flex; flex-shrink:0; margin-left:14px; }
}
/* 618px: 헤더 버튼 숨김 → 사이드 패널 상단에 동일 버튼 표시 */
@media(max-width:618px) {
  #header-slot .h-right { display:none; }
  #header-slot .hb-btn { margin-left:auto; }
}
@media(max-width:480px) {
  #header-slot .header-inner {
    height:56px;
    padding:0 16px;
  }
  #header-slot .logo img { height:20px; }
  #header-slot #siteHeader .btn-ghost,
  #header-slot #siteHeader .btn-primary-sm,
  body > .mega-side .ms-actions .btn-ghost,
  body > .mega-side .ms-actions .btn-primary-sm,
  #header-slot .mega-side .ms-actions .btn-ghost,
  #header-slot .mega-side .ms-actions .btn-primary-sm {
    font-size:14px;
    padding:10px 14px;
    min-height:44px;
  }
}

/* ═══ MEGA NAV SYSTEM (legacy — contact.html 등) ═══ */
.mega-nav { position:fixed; top:0; left:0; right:0; z-index:7800; height:56px; display:flex; align-items:center; justify-content:center; padding:0 clamp(28px, 5vw, 72px); transition:all 0.5s cubic-bezier(0.22,1,0.36,1); }
.mega-nav.scrolled, .mega-nav.always-white { background:rgba(255,255,255,0.95); backdrop-filter:blur(16px); box-shadow:0 2px 20px rgba(0,0,0,0.06); }
.mega-nav-logo { position:absolute; left:clamp(28px, 5vw, 72px); font-family:'Poppins'; font-size:23px; font-weight:900; font-style:italic; letter-spacing:-0.03em; text-decoration:none; cursor:pointer; line-height:56px; transition:all 0.5s ease; }
.mega-nav-logo span { font-style:italic; }
.mega-nav.hero-mode .mega-nav-logo { color:#fff; opacity:0; pointer-events:none; }
.mega-nav.scrolled .mega-nav-logo, .mega-nav.always-white .mega-nav-logo { color:#1A1F36; opacity:1; pointer-events:auto; }
.mega-nav-links { display:flex; align-items:center; gap:6px; height:56px; }
.mn-link { font-family:'Pretendard'; font-size:15px; font-weight:600; color:#1A1F36; padding:10px 20px; border-radius:12px; cursor:pointer; transition:all 0.2s; text-decoration:none; line-height:1; display:flex; align-items:center; gap:4px; }
.mn-arrow { width:10px; height:10px; opacity:0.35; transition:transform 0.25s,opacity 0.2s; flex-shrink:0; }
.mn-link:hover .mn-arrow { opacity:0.7; }
.mn-link.drop-active .mn-arrow { transform:rotate(180deg); opacity:0.7; }
.mega-nav-actions { position:absolute; right:calc(clamp(28px, 5vw, 72px) + 56px); display:flex; align-items:center; gap:14px; height:56px; }
.mn-action-group { display:flex; align-items:center; gap:10px; padding:6px 8px; background:rgba(255,255,255,0.9); border:1px solid rgba(0,0,0,0.08); border-radius:16px; box-shadow:0 8px 18px rgba(0,0,0,0.06); }
.mn-group-label { font-family:'Pretendard'; font-size:14px; font-weight:800; color:#1A1F36; padding:0 10px 0 8px; }
.mn-login { font-family:'Pretendard'; font-size:13px; font-weight:800; color:#fff; border:none; border-radius:12px; padding:10px 16px; cursor:pointer; transition:transform 0.18s ease, background 0.18s ease, box-shadow 0.18s ease; line-height:1; display:inline-flex; align-items:center; justify-content:center; gap:8px; box-shadow:0 6px 14px rgba(0,0,0,0.12); }
.mn-login:hover { box-shadow:0 10px 22px rgba(0,0,0,0.16); transform:translateY(-1px); }
.mn-teacher-btn { background:#5561FF; }
.mn-teacher-btn:hover { background:#4450E6; }
.mn-student-btn { background:#0284C7; }
.mn-student-btn:hover { background:#0369A1; }
.mn-login:active { transform:translateY(1px); }
.mega-nav.hero-mode .mn-link { color:rgba(255,255,255,0.85); }
.mega-nav.scrolled .mn-link, .mega-nav.always-white .mn-link { color:#1A1F36; }
.mn-link:hover { color:#14B8A6; background:rgba(20,184,166,0.06); }
.mega-nav.hero-mode .mn-link:hover { color:#fff; background:rgba(255,255,255,0.1); }
@media(max-width:980px) { .mega-nav-links { display:none; } }
@media(max-width:768px) { .mega-nav { padding:0 16px; height:48px; } .mega-nav-links { display:none; } .mega-nav-actions { height:48px; right:76px; gap:10px; } .mn-action-group { gap:8px; padding:5px 6px; border-radius:14px; box-shadow:0 6px 14px rgba(0,0,0,0.06); } .mn-group-label { font-size:12px; padding:0 8px 0 6px; } .mn-login { font-size:12px; padding:8px 10px; border-radius:11px; box-shadow:0 5px 12px rgba(0,0,0,0.12); } .mega-nav-logo { font-size:19px; left:16px; line-height:48px; } }
@media(max-width:520px) { .mn-group-label { display:none; } .mn-action-group { padding:5px; } }

/* Hamburger */
.mega-ham { position:fixed; top:8px; right:clamp(20px, 5vw, 72px); z-index:8000; width:40px; height:40px; border:none; background:transparent; cursor:pointer; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; }
.mega-ham span { display:block; width:20px; height:2px; border-radius:2px; transition:all 0.3s ease; }
.mega-nav.hero-mode ~ .mega-ham span { background:#fff; }
.mega-nav.scrolled ~ .mega-ham span, .mega-nav.always-white ~ .mega-ham span { background:#1A1F36; }
.mega-ham.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.mega-ham.open span:nth-child(2) { opacity:0; }
.mega-ham.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* Side menu — body 직속(portal)으로 programs 본문 z-index 위에 표시 */
body > .mega-side-overlay,
#header-slot .mega-side-overlay {
  position:fixed; inset:0; z-index:99990;
  background:rgba(0,0,0,0.2); opacity:0; pointer-events:none; transition:opacity 0.3s;
}
body > .mega-side-overlay.open,
#header-slot .mega-side-overlay.open { opacity:1; pointer-events:auto; }

body > .mega-side,
#header-slot .mega-side {
  position:fixed; top:0; right:-340px; width:320px; max-width:92vw;
  height:100vh; height:100dvh;
  z-index:99991;
  background:rgba(255,255,255,0.98); backdrop-filter:blur(20px);
  border-left:1px solid rgba(0,0,0,0.06);
  overflow-x:hidden; overflow-y:auto;
  transition:right 0.4s cubic-bezier(0.22,1,0.36,1);
  padding:72px 24px 32px; scrollbar-width:thin;
  -webkit-overflow-scrolling:touch;
}
body > .mega-side.open,
#header-slot .mega-side.open { right:0; }

body.site-menu-open { overflow:hidden; }
/* programs.html 등 본문 고z-index 요소가 메뉴 클릭을 가로채지 않도록 */
body.site-menu-open .flipbook-overlay,
body.site-menu-open .floating-social,
body.site-menu-open .dot-nav {
  pointer-events:none;
}
body > .mega-side .ms-header,
#header-slot .ms-header { margin-bottom:20px; padding-bottom:16px; border-bottom:1px solid rgba(0,0,0,0.06); }
body > .mega-side .ms-actions,
#header-slot .mega-side .ms-actions {
  display:none;
  flex-direction:column;
  gap:10px;
  margin-bottom:20px;
  padding-bottom:20px;
  border-bottom:1px solid rgba(0,0,0,0.06);
}
body > .mega-side .ms-actions .ms-action-btn,
#header-slot .mega-side .ms-actions .ms-action-btn {
  width:100%;
}
/* 618px 이하 — 헤더 버튼이 숨겨질 때만 패널에 표시 (기본 display:none보다 뒤에 둠) */
@media(max-width:618px) {
  body > .mega-side .ms-actions,
  #header-slot .mega-side .ms-actions { display:flex; }
}
body > .mega-side .ms-logo,
#header-slot .ms-logo { display:inline-flex; align-items:center; text-decoration:none; }
body > .mega-side .ms-logo img,
#header-slot .ms-logo img { height:28px; width:auto; display:block; }
body > .mega-side .ms-tag,
#header-slot .ms-tag { font-size:14px; color:rgba(26,31,54,0.5); margin-top:6px; font-weight:500; }
body > .mega-side .ms-nav,
#header-slot .ms-nav { display:flex; flex-direction:column; gap:4px; }
body > .mega-side .ms-group,
#header-slot .ms-group { display:flex; flex-direction:column; gap:2px; }
body > .mega-side .ms-subnav,
#header-slot .ms-subnav { display:flex; flex-direction:column; gap:2px; padding:2px 0 6px 10px; margin:0 0 2px 18px; border-left:2px solid rgba(20,184,166,0.22); }
body > .mega-side .ms-link,
#header-slot .ms-link { display:flex; align-items:center; gap:12px; font-size:16px; font-weight:600; color:rgba(26,31,54,0.75); text-decoration:none; padding:14px 16px; border-radius:10px; transition:all 0.2s; }
body > .mega-side .ms-link:hover,
#header-slot .ms-link:hover { background:rgba(20,184,166,0.08); color:#14B8A6; }
body > .mega-side .ms-link svg,
#header-slot .ms-link svg { stroke:rgba(26,31,54,0.3); flex-shrink:0; }
body > .mega-side .ms-link-sub,
#header-slot .ms-link-sub { padding:10px 14px; font-size:15px; font-weight:600; color:rgba(26,31,54,0.68); }
body > .mega-side .ms-link-sub:hover,
#header-slot .ms-link-sub:hover { background:rgba(20,184,166,0.06); color:#14B8A6; }
body > .mega-side .ms-dot,
#header-slot .ms-dot { width:10px; height:10px; border-radius:50%; flex-shrink:0; }

/* ═══ NAV DROPDOWN ═══ */
#header-slot .drop { position:fixed; top:var(--site-header-h, 64px); left:0; right:0; z-index:2; background:#fff; border-top:1px solid rgba(0,0,0,0.05); box-shadow:0 16px 48px rgba(0,0,0,0.07); opacity:0; transform:translateY(-6px); pointer-events:none; transition:all 0.25s cubic-bezier(0.22,1,0.36,1); }
@media(max-width:1024px) { #header-slot .drop { display:none; } }
#header-slot .drop.show { opacity:1; transform:translateY(0); pointer-events:auto; }
#header-slot .drop-inner { max-width:1100px; margin:0 auto; padding:28px 32px; display:flex; gap:0; }
#header-slot .drop-narrow .drop-inner { max-width:280px; margin:0; padding:20px 24px; position:relative; left:var(--drop-inner-left, 0px); }
#header-slot .drop-narrow .drop-col { padding:0; border-right:none; }
#header-slot .drop-narrow .drop-cat { margin-bottom:10px; padding-bottom:8px; }
#header-slot .drop-col-overview { flex:0 0 172px; max-width:196px; padding-right:12px; }
/* 전체보기: 다른 열의 .drop-cat(피지컬 AI 등)와 동일 타입 — 링크만 추가 */
#header-slot .drop-cat.drop-cat-link { color:inherit; text-decoration:none; cursor:pointer; transition:color 0.15s ease; border-bottom:none; padding-bottom:0; margin-bottom:0; }
#header-slot .drop-cat.drop-cat-link:hover { color:#14B8A6; }
#header-slot .drop-col { flex:1; padding:0 24px; border-right:1px solid rgba(0,0,0,0.04); }
#header-slot .drop-col:first-child { padding-left:0; }
#header-slot .drop-col:last-child { border-right:none; padding-right:0; }
#header-slot .drop-cat { display:flex; align-items:center; gap:10px; font-size:15px; font-weight:800; color:#1A1F36; margin-bottom:14px; padding:0 0 10px 0; border-bottom:1.5px solid rgba(0,0,0,0.08); }
#header-slot .drop-dot { width:10px; height:10px; border-radius:50%; flex-shrink:0; }
#header-slot .drop-item { display:block; font-family:'Pretendard'; font-size:14px; font-weight:500; color:rgba(26,31,54,0.65); text-decoration:none; padding:7px 0 7px 16px; border-left:2px solid transparent; transition:all 0.15s; cursor:pointer; }
#header-slot .drop-item:hover { color:#14B8A6; border-left-color:#14B8A6; padding-left:19px; }
#header-slot .drop-sub { display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:700; letter-spacing:0.3px; margin-top:18px; margin-bottom:8px; padding:5px 12px; border-radius:6px; width:fit-content; }
#header-slot .drop-sub::before { content:''; width:6px; height:6px; border-radius:50%; flex-shrink:0; }
#header-slot .drop-col .drop-sub:first-of-type { margin-top:0; }
#header-slot .drop-sub[data-type="이론"] { background:rgba(104,137,190,0.08); color:#4A6FA5; }
#header-slot .drop-sub[data-type="이론"]::before { background:#6889BE; }
#header-slot .drop-sub[data-type="대결"] { background:rgba(230,126,34,0.08); color:#D35400; }
#header-slot .drop-sub[data-type="대결"]::before { background:#E67E22; }
#header-slot .drop-sub[data-type="산업"] { background:rgba(91,160,138,0.08); color:#3D8B6E; }
#header-slot .drop-sub[data-type="산업"]::before { background:#5BA08A; }

/* ═══ FOOTER ═══ */
.site-footer { background:var(--od-dark); padding:48px 5% 24px; color:rgba(255,255,255,0.6); }
.site-footer-inner {
  max-width:var(--od-max-w); margin:0 auto;
  display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-start;
  gap:40px 48px;
  border-bottom:1px solid rgba(255,255,255,0.08);
  padding-bottom:32px; margin-bottom:24px;
}
.ft-info-wrap { flex:1 1 280px; max-width:420px; min-width:0; }
.footer-logo {
  display:inline-flex; align-items:center;
  margin-bottom:12px; text-decoration:none;
}
.footer-logo img { width:160px; height:auto; display:block; }
.footer-tagline { font-size:16px; line-height:1.7; color:rgba(255,255,255,0.35); margin-bottom:16px; }
.ft-info { font-size:13px; line-height:1.85; color:rgba(255,255,255,0.28); }
.ft-info p { margin-bottom:4px; }
.ft-info p:last-child { margin-bottom:0; }
.ft-cols { display:flex; flex-wrap:wrap; gap:40px; flex:1 1 480px; justify-content:flex-end; }
.ft-col { min-width:120px; }
.ft-col h4 { font-size:16px; font-weight:700; color:#fff; margin-bottom:14px; }
.ft-col ul { list-style:none; display:flex; flex-direction:column; gap:10px; }
.ft-col a {
  font-size:15px; color:rgba(255,255,255,0.4); text-decoration:none;
  transition:color 0.2s, padding-left 0.2s; display:block;
}
.ft-col a:hover { color:#fff; padding-left:4px; }
.ft-bottom {
  display:flex; justify-content:space-between; align-items:center;
  max-width:var(--od-max-w); margin:0 auto;
  font-size:14px; color:rgba(255,255,255,0.25);
}
.ft-bottom-links a { color:rgba(255,255,255,0.25); text-decoration:none; transition:color 0.2s; }
.ft-bottom-links a:hover { color:rgba(255,255,255,0.6); }
.ft-bottom-sep { margin:0 6px; }
@media(max-width:768px) {
  .site-footer { padding:40px 20px 24px; }
  .site-footer-inner { flex-direction:column; gap:32px; }
  .ft-info-wrap { max-width:none; }
  .ft-cols { justify-content:flex-start; gap:28px 32px; }
  .ft-bottom { flex-direction:column; gap:8px; text-align:center; }
}

/* ═══ FLOATING BUTTONS (body 직속 — footer-slot 밖) ═══ */
body > .floats {
  position:fixed; right:24px; bottom:32px; z-index:9800;
  display:flex; flex-direction:column; align-items:flex-end; gap:10px;
}
.float-btn {
  display:flex; align-items:center; gap:9px;
  padding:13px 22px; border-radius:100px;
  font-family:inherit; font-size:16px; font-weight:700;
  border:none; cursor:pointer;
  box-shadow:0 6px 24px rgba(0,0,0,0.18);
  transition:transform 0.2s, box-shadow 0.2s;
  white-space:nowrap; text-decoration:none;
}
.float-btn:hover { transform:translateY(-3px); box-shadow:0 10px 32px rgba(0,0,0,0.24); }
.float-talk { background:#FEE500; color:#3A1D1D; }
.float-student { background:#222; color:#fff; }
.float-icon { font-size:19px; line-height:1; flex-shrink:0; }
.float-label { display:inline; }
.float-label-short { display:none; }
@media(max-width:768px) {
  body > .floats { right:16px; bottom:24px; gap:8px; }
  .float-btn { padding:11px 16px; font-size:14px; gap:7px; }
  .float-label { display:none; }
  .float-label-short { display:inline; }
}
@media(max-width:480px) {
  body > .floats { right:14px; bottom:20px; gap:8px; }
  .float-btn {
    width:52px; height:52px; padding:0; border-radius:50%;
    justify-content:center;
  }
  .float-icon { font-size:22px; }
  .float-label-short { display:none; }
}
