
:root{
  --bg:#ffffff; --panel:#ffffff; --ring:#e5e7eb; --text:#0e1116;
  --muted:#6b7280; --accent:#e11d2e; --accent2:#ff5a5a;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--bg);color:var(--text);
  font-family:system-ui,-apple-system,'Segoe UI',Roboto,'Noto Sans KR','Malgun Gothic',sans-serif}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
.container{max-width:1200px;margin:0 auto;padding:0 16px}
/* Header */
header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.9);
  backdrop-filter:saturate(140%) blur(8px);border-bottom:1px solid var(--ring)}
.nav{display:flex;align-items:center;justify-content:space-between;min-height:64px}
.brand{display:flex;gap:10px;align-items:center;font-weight:900}
.brand img{width:32px;height:32px;object-fit:contain}
.links{display:flex;gap:14px;align-items:center}
.links a{color:var(--text);text-decoration:none;opacity:.9;position:relative;padding:10px 12px;border-radius:10px}
.links a.active{opacity:1}
.cta{padding:10px 16px;border:1px solid var(--ring);border-radius:12px;background:#fff;color:var(--text)}
.cta.red{background:linear-gradient(90deg,var(--accent),var(--accent2));color:#fff;border:0;box-shadow:0 8px 18px rgba(225,29,46,.18)}
.mnav{display:none;padding:10px 12px;border:1px solid var(--ring);border-radius:10px;background:#fff}
@media (max-width:820px){
  .mnav{display:inline-flex}
  .links{position:fixed;left:0;right:0;top:64px;background:#fff;border-bottom:1px solid var(--ring);
         display:none;padding:12px 16px;gap:10px;z-index:140;flex-wrap:wrap}
  body.nav-open .links{display:flex}
  body.nav-open{overflow:hidden}
  .cta.red{width:100%;text-align:center}
}
/* Sections */
section{scroll-margin-top:80px}
.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:24px;align-items:center;padding:clamp(24px,4vw,48px) 0}
.hero h1{font-size:clamp(28px,5vw,56px);line-height:1.1;margin:0 0 8px}
.sub{color:var(--muted)}
.logo-card{background:#fff;border:1px solid var(--ring);border-radius:20px;padding:18px;display:flex;justify-content:center}
.logo-card img{max-width:240px}
@media (max-width:600px){.logo-card img{max-width:160px}}
.band{margin:32px -16px 12px;padding:24px 16px;border-radius:16px;border:1px solid var(--ring);background:#fff}
.band.gray{background:#f7f7f9}
.band.black{background:#1f2937;color:#e5e7eb;border-color:#1f2937}
.band.black .sub{color:#e5e7eb}
.band.black li{color:#d1d5db}
.grid{display:grid;gap:16px}
.grid.two{grid-template-columns:1fr 1fr}
.grid.four{grid-template-columns:repeat(4,1fr)}
@media (max-width:980px){ .hero{grid-template-columns:1fr} .grid.four{grid-template-columns:repeat(2,1fr)} }
@media (max-width:640px){ .grid.two{grid-template-columns:1fr} .grid.four{grid-template-columns:1fr} }
.card{background:#fff;border:1px solid var(--ring);border-radius:16px;padding:16px;min-height:auto;
  box-shadow:0 6px 16px rgba(17,24,39,.06);display:flex;flex-direction:column}
.card .title{font-weight:800}
.btn{display:inline-flex;gap:10px;align-items:center;justify-content:center;min-height:44px;
  padding:12px 16px;border-radius:12px;font-weight:800;text-decoration:none}
.btn.red{background:#e02424;color:#fff;border:1px solid #e02424;box-shadow:0 6px 14px rgba(224,36,36,.18)}
.btn.red:hover{background:#ff3b3b;border-color:#ff3b3b;box-shadow:0 10px 22px rgba(255,59,59,.28)}
.btn.ghost{background:#fff;border:1px solid var(--ring);color:#0e1116}
.hr{height:1px;background:var(--ring);border:0;margin:22px 0}
/* Gallery */
.gallery{columns:3 280px;column-gap:12px}
@media (max-width:980px){ .gallery{columns:2 200px} }
@media (max-width:560px){ .gallery{columns:1 160px} }
.gallery figure{break-inside:avoid;margin:0 0 12px;border-radius:12px;overflow:hidden;border:1px solid var(--ring);
  background:#fff;box-shadow:0 6px 16px rgba(17,24,39,.06)}
.gallery img{width:100%}
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.88);display:none;align-items:center;justify-content:center;z-index:150}
.lightbox img{max-width:92vw;max-height:88vh;border-radius:14px}
.lightbox.show{display:flex}
/* Footer */
footer{border-top:1px solid var(--ring);min-height:60px;display:flex;align-items:center;background:#fff}
footer .container{display:flex;justify-content:space-between;align-items:center}
/* Team pages auto-height & Android gap fallback */
.tp-grid, .grid.two{ display:flex; flex-wrap:wrap; gap:18px }
.tp-grid .tp-card, .grid.two .card{ flex:1 1 calc(50% - 9px); height:auto; min-height:auto; justify-content:flex-start; }
@media (max-width:900px){ .tp-grid .tp-card, .grid.two .card{ flex:1 1 100% } }
@supports not (gap: 1rem) {
  .tp-grid, .grid.two{ margin:-9px }
  .tp-grid .tp-card, .grid.two .card{ margin:9px }
}
/* Tighten headings & lists */
.card h3{ margin:2px 0 4px }
.card ul.sub{ margin-top:2px; padding-left:18px }
.card ul.sub li{ margin:2px 0 }
/* Contact enlarged fields */
.band form input,
.band form textarea{
  width:100%; padding:16px 18px; font-size:16px; line-height:1.4;
  border:1px solid var(--ring); border-radius:14px; outline:none; background:#fff; color:#0e1116;
}
.band form input{ min-height:52px }
.band form textarea{ min-height:220px; resize:vertical }
.band form label{ display:block; margin:0 0 14px }
.band form button.btn{ width:100%; margin-top:4px }
/* Smooth scroll */
html{ scroll-behavior:smooth }


/* === Team pages: light theme & compact layout === */
body.team{ background:#fff; color:#0e1116 }
body.team .band{ margin:16px -16px 12px; padding:20px 16px; background:#fff; border:1px solid var(--ring) }
body.team .tp-grid{ display:flex !important; flex-wrap:wrap; gap:16px !important; }
body.team .tp-grid .tp-card{ 
  flex:1 1 calc(50% - 8px);
  background:#fff;
  border:1px solid var(--ring);
  box-shadow:0 6px 16px rgba(17,24,39,.06);
  height:auto !important;
  min-height:auto !important;
  justify-content:flex-start !important;
}
@media (max-width: 900px){
  body.team .tp-grid .tp-card{ flex:1 1 100% }
}
/* tighter heading/list spacing */
body.team .card h3{ margin:2px 0 4px }
body.team .card ul.sub{ margin-top:2px; padding-left:18px }
body.team .card ul.sub li{ margin:2px 0; line-height:1.5 }


/* === extra spacing between team grids === */
body.team .tp-grid + .tp-grid { margin-top: 20px; }
@supports not (gap: 1rem) {
  body.team .tp-grid { margin-bottom: 10px; }
}
