:root{
  --bg:#FAFAF8; --panel:#FFFFFF; --line:#ECECE6;
  --ink:#24272B; --ink-soft:#70767C;
  --primary:#3E6E86; --primary-light:#4F84A0;
  --accent:#E58A57; --accent-dark:#CC7440;
  --today:#FDEEE0;
  --beige:#E3D3B0;
  --radius:14px; --maxw:1180px;
  --shadow:0 2px 14px rgba(20,30,40,.06);
}
*{box-sizing:border-box;}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Pretendard",-apple-system,sans-serif;line-height:1.6;font-size:15px;}
h1,h2,h3{margin:0;color:var(--ink);}
p{margin:0;} a{color:inherit;text-decoration:none;} ul{list-style:none;margin:0;padding:0;} img{max-width:100%;display:block;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 20px;}
.panel{min-width:0;background:var(--panel);border-radius:var(--radius);padding:22px 24px;box-shadow:var(--shadow);}
.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;}
.panel-head h2{font-size:1rem;font-weight:700;}
.panel-head .more{font-size:.76rem;color:var(--ink);font-weight:600;}
.info-grid{display:grid;gap:18px;margin-bottom:26px;}
.page-body{padding:32px 0 8px;}
.page-title{font-family:"Noto Serif KR",serif;font-size:1.5rem;margin-bottom:18px;color:var(--primary);}

/* header */
.site-header{background:var(--panel);}
.header-inner{max-width:var(--maxw);margin:0 auto;padding:22px 20px 14px;display:flex;align-items:center;gap:12px;}
.org-name{display:flex;align-items:center;gap:10px;}
.org-name .logo-mark{flex-shrink:0;height:60px;width:auto;object-fit:contain;}
.org-text{display:flex;flex-direction:column;}
.org-text .small{font-size:.72rem;color:var(--ink-soft);}
.org-text .big{font-family:"Gowun Batang",serif;font-weight:700;font-size:1.75rem;color:var(--ink);letter-spacing:.01em;line-height:1.25;}
.org-text .tagline{font-size:.72rem;font-weight:700;letter-spacing:.02em;margin-top:1px;color:var(--ink-soft);}
.org-text .tagline .w-share{color:#D9668A;}
.org-text .tagline .w-coexist{color:#3E6E86;}
.org-text .tagline .w-harmony{color:#9C6B45;}

/* main nav */
.main-nav{background:var(--panel);border-bottom:1px solid var(--line);}
.nav-inner{max-width:var(--maxw);margin:0 auto;display:flex;align-items:stretch;padding:0 20px;}
.nav-links{display:flex;flex:1;justify-content:space-between;align-items:center;}
.nav-item{position:relative;flex:1;}
.nav-item > a{display:block;padding:16px 14px;color:var(--ink-soft);font-size:1.02rem;font-weight:600;position:relative;text-align:center;}
.nav-item > a::after{content:"";position:absolute;left:14px;right:14px;bottom:10px;height:2px;background:var(--accent);border-radius:2px;transform:scaleX(0);transition:transform .15s ease;}
.nav-item > a:hover, .nav-item > a.current{color:var(--primary);}
.nav-item > a:hover::after, .nav-item > a.current::after{transform:scaleX(1);}
.submenu{position:absolute;top:100%;left:50%;transform:translateX(-50%);width:150px;background:var(--panel);border-radius:10px;box-shadow:var(--shadow);padding:6px;display:none;z-index:60;}
.nav-item:hover .submenu{display:block;}
.submenu a{display:block;padding:9px 14px;font-size:.82rem;font-weight:500;color:var(--ink-soft);border-radius:7px;text-align:left;white-space:nowrap;}
.submenu a:hover{color:var(--primary);background:var(--bg);}
.menu-btn{display:none;}

/* hero row (home only) */
.hero-row{display:grid;grid-template-columns:270px 1fr;gap:18px;padding:24px 0;}
.side-box{display:flex;flex-direction:column;gap:14px;}
.login-box{background:var(--panel);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);}
.login-box .title{font-size:.82rem;font-weight:700;color:var(--primary);margin-bottom:10px;}
.login-box input{width:100%;padding:7px 8px;margin-bottom:6px;border:1px solid var(--line);border-radius:6px;font-size:.8rem;}
.login-box .btn-login{width:100%;padding:8px;background:var(--primary);color:#fff;border:none;border-radius:6px;font-weight:700;font-size:.82rem;cursor:pointer;margin-bottom:8px;}
.login-links{display:flex;gap:8px;font-size:.74rem;}
.login-links a{flex:1;text-align:center;padding:6px;background:var(--bg);border-radius:6px;color:var(--ink-soft);}

.quick2x2{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.quick-cell{background:var(--panel);border-radius:12px;padding:16px 6px;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;box-shadow:var(--shadow);transition:transform .15s ease;}
.quick-cell:hover{transform:translateY(-2px);}
.quick-cell span.lb{font-size:.78rem;color:var(--ink-soft);font-weight:600;}

.hero-banner{position:relative;border-radius:18px;overflow:hidden;min-height:440px;}
.hero-slides{position:absolute;inset:0;z-index:0;}
.hero-slide{position:absolute;inset:0;background-size:cover;background-position:10% 75%;opacity:0;transition:opacity 1s ease;}
.hero-slide.active{opacity:1;}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg, rgba(62,110,134,.08), rgba(30,52,66,.28));z-index:1;}
.hero-arrow{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.18);border:none;color:#fff;font-size:1.6rem;width:40px;height:40px;border-radius:50%;cursor:pointer;z-index:3;display:flex;align-items:center;justify-content:center;}
.hero-arrow:hover{background:rgba(255,255,255,.32);}
.hero-arrow.prev{left:14px;}
.hero-arrow.next{right:14px;}
.hero-dots{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);display:flex;gap:8px;z-index:3;}
.hero-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.5);cursor:pointer;border:none;padding:0;transition:width .2s ease, background .2s ease;}
.hero-dot.active{background:#fff;width:22px;border-radius:4px;}
.side-quote{position:relative;overflow:hidden;background:var(--panel);border-radius:var(--radius);border-left:4px solid transparent;border-image:linear-gradient(180deg, #E0839C, #3E6E86, #9C6B45) 1;padding:26px 16px;flex:1;display:flex;flex-direction:column;justify-content:center;box-shadow:var(--shadow);}
.side-quote-mark{position:absolute;top:-8px;right:-8px;width:90px;height:90px;opacity:.08;pointer-events:none;}
.side-quote p{position:relative;color:var(--ink-soft);font-family:"Gowun Batang",serif;font-weight:700;font-size:.92rem;line-height:1.5;margin-bottom:12px;display:flex;align-items:center;gap:7px;white-space:nowrap;}
.side-quote p:last-child{margin-bottom:0;}
.side-quote .sq-title{font-size:1.2rem;margin-bottom:18px;justify-content:center;}
.side-quote .dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;}
.side-quote .dot-share{background:#E0839C;}
.side-quote .dot-coexist{background:#3E6E86;}
.side-quote .dot-harmony{background:#9C6B45;}
.side-quote .w-share{color:#D9668A;}
.side-quote .w-coexist{color:#3E6E86;}
.side-quote .w-harmony{color:#9C6B45;}

/* small page banner (sub pages) */
.page-banner{border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow);border-left:4px solid var(--beige);padding:22px 24px;margin:0 0 18px;color:var(--ink);}

/* 서브페이지: 배너 아래, 좌측 목차 + 우측 본문 */
.subpage-layout{display:flex;gap:16px;align-items:flex-start;margin-bottom:24px;}
.subnav{width:130px;flex-shrink:0;background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);padding:10px;display:flex;flex-direction:column;gap:2px;position:sticky;top:16px;}
.subnav-title{font-size:.78rem;font-weight:700;color:var(--ink);padding:4px 8px 9px;margin-bottom:5px;border-bottom:1px solid var(--line);text-align:center;}
.subnav a{padding:9px 10px;border-radius:7px;border:1px solid var(--line);font-size:.8rem;font-weight:600;color:var(--ink-soft);text-align:center;line-height:1.3;}
.subnav a:hover{background:var(--bg);color:var(--primary);}
.subnav a.active{background:var(--beige);border-color:var(--beige);color:var(--ink);}
.subpage-content{flex:1;min-width:0;}
@media (max-width:800px){
  .subpage-layout{flex-direction:column;}
  .subnav{width:100%;flex-direction:row;flex-wrap:wrap;position:static;}
  .subnav-title{width:100%;border-bottom:none;border-right:1px solid var(--line);padding:6px 10px;margin-bottom:0;}
  .subnav a{flex:1 1 auto;}
}
.page-banner h1{font-family:"Noto Serif KR",serif;font-size:1.4rem;color:var(--ink);}
.page-banner p{font-size:.86rem;color:var(--ink-soft);margin-top:6px;}

/* notice list */
/* 시설연혁 */
.history-list{display:flex;flex-direction:column;}
.history-row{display:flex;gap:18px;padding:11px 2px;border-bottom:1px solid var(--line);font-size:.86rem;}
.history-row:last-child{border-bottom:none;}
.history-row .hd{flex-shrink:0;width:64px;font-weight:700;color:var(--primary);}
.history-row .ht{color:var(--ink-soft);line-height:1.5;}
@media (max-width:600px){
  .history-row{flex-direction:column;gap:2px;}
  .history-row .hd{width:auto;}
}

.notice-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 2px;border-bottom:1px solid var(--line);font-size:.85rem;cursor:pointer;}
.notice-row:last-child{border-bottom:none;}
.notice-row:hover .t{color:var(--primary);}
.notice-row .t{display:inline-flex;align-items:center;gap:10px;min-width:0;}
.notice-row .t span.tt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.row-thumb{width:34px;height:34px;border-radius:7px;object-fit:cover;flex-shrink:0;}
.notice-row .d{color:var(--ink-soft);font-size:.78rem;flex-shrink:0;}

.phone-box{text-align:center;}
.phone-box .call{font-size:1.35rem;font-weight:700;color:var(--ink);margin:8px 0 10px;}
.phone-box .row{display:flex;justify-content:space-between;font-size:.8rem;padding:7px 0;border-top:1px solid var(--line);color:var(--ink-soft);}

/* news + tabs */
.news-item{display:flex;gap:12px;margin-bottom:16px;}
.news-item img{width:100px;height:76px;object-fit:cover;border-radius:10px;flex-shrink:0;}
.news-item .txt b{display:block;font-size:.9rem;margin-bottom:4px;}
.news-item .txt p{font-size:.8rem;color:var(--ink-soft);}

.tabs{display:flex;gap:6px;margin-top:16px;}
.tab-btn{flex:1;text-align:center;padding:9px;font-size:.82rem;font-weight:700;color:var(--ink-soft);background:var(--bg);border-radius:999px;cursor:pointer;}
.tab-btn.active{background:var(--beige);color:var(--ink);}
.tab-panel{display:none;padding:14px 2px 2px;}
.tab-panel.active{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.tab-panel img{aspect-ratio:1/1;height:auto;object-fit:cover;border-radius:12px;width:100%;}
.tab-panel .cap{font-size:.8rem;color:var(--ink-soft);margin-top:8px;}

/* promo boxes */
.map-mini{display:block;padding:0;overflow:hidden;position:relative;min-height:170px;}
.mealplan-mini{display:block;height:100%;min-height:170px;}
.mealplan-mini img{width:100%;height:100%;object-fit:cover;}
.mealplan-mini-empty{display:flex;align-items:center;justify-content:center;height:100%;min-height:170px;background:var(--bg);color:var(--ink-soft);font-size:.82rem;text-align:center;padding:10px;}
.map-mini .root_daum_roughmap{pointer-events:none;width:100% !important;}
.map-mini::after{content:"오시는 길";position:absolute;bottom:8px;right:10px;background:rgba(255,255,255,.92);color:var(--ink);font-size:.76rem;font-weight:700;padding:5px 12px;border-radius:999px;box-shadow:var(--shadow);}

.promo-box{display:flex;align-items:center;gap:14px;padding:24px 20px;margin-bottom:12px;}
.promo-box .ic{width:52px;height:52px;border-radius:50%;background:var(--bg);display:flex;align-items:center;justify-content:center;color:var(--primary);flex-shrink:0;font-weight:700;font-size:1.1rem;}
.promo-box .txt b{display:block;font-size:1rem;margin-bottom:4px;}
.promo-box .txt p{font-size:.82rem;color:var(--ink-soft);}
.promo-box .go{margin-left:auto;font-size:.8rem;background:var(--primary);color:#fff;padding:8px 16px;border-radius:999px;white-space:nowrap;}

/* calendar */
.cal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;}
.cal-head h2{font-size:1.05rem !important;}
.cal-head b{font-size:1rem;color:var(--ink);}
table.cal{width:100%;border-collapse:collapse;font-size:.98rem;text-align:center;}
table.cal th{color:var(--ink-soft);padding:10px 0;font-weight:600;}
table.cal td{padding:16px 0;color:var(--ink-soft);}
table.cal td.today{background:var(--today);border-radius:50%;color:var(--accent-dark);font-weight:700;}
table.cal td.sun{color:#D97757;} table.cal th:first-child{color:#D97757;}

footer{background:#2A343B;color:#C7CFD3;padding:32px 0 18px;margin-top:36px;}
footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;font-size:.8rem;}
footer .flinks{display:flex;gap:16px;}
footer .flinks a:hover{color:#fff;}
footer .copy{text-align:center;font-size:.72rem;color:#8B949A;margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.08);}

.modal-overlay{display:none;position:fixed;inset:0;background:rgba(20,20,15,.45);z-index:100;align-items:center;justify-content:center;padding:20px;}
.modal-overlay.open{display:flex;}
.modal{background:#fff;max-width:440px;width:100%;border-radius:16px;padding:26px;position:relative;max-height:82vh;overflow-y:auto;}
.modal-close{position:absolute;top:14px;right:16px;background:none;border:none;font-size:1.3rem;cursor:pointer;color:var(--ink-soft);}
.modal h3{font-size:1rem;margin:6px 0 4px;} .modal .d{font-size:.76rem;color:var(--ink-soft);display:block;margin-bottom:12px;}
.modal p{font-size:.86rem;color:var(--ink-soft);white-space:pre-line;}

/* 사진 확대보기(라이트박스) */
.lightbox-overlay{display:none;position:fixed;inset:0;background:rgba(10,10,10,.92);z-index:200;align-items:center;justify-content:center;}
.lightbox-overlay.open{display:flex;}
.lightbox-overlay img{max-width:90vw;max-height:85vh;border-radius:8px;user-select:none;}
.lightbox-close{position:absolute;top:18px;right:22px;background:none;border:none;color:#fff;font-size:2rem;cursor:pointer;line-height:1;}
.lightbox-prev,.lightbox-next{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.15);border:none;color:#fff;font-size:1.8rem;width:46px;height:46px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.lightbox-prev:hover,.lightbox-next:hover{background:rgba(255,255,255,.3);}
.lightbox-prev{left:18px;}
.lightbox-next{right:18px;}
.tab-panel img, .photo-link img{cursor:pointer;}
@media (max-width:600px){
  .lightbox-prev,.lightbox-next{width:38px;height:38px;font-size:1.3rem;}
}
.photo-detail-box{background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);padding:32px;max-width:720px;margin:0 auto;}
.photo-detail-box img{width:100%;border-radius:var(--radius);margin-bottom:16px;}
.photo-detail-box .tab-panel.active{gap:2px;margin-bottom:14px;}
.photo-detail-box .tab-panel.active img{margin-bottom:0;border-radius:0;}
.photo-detail-box .tab-panel.active > div:first-child img{border-radius:var(--radius) 0 0 var(--radius);}
.photo-detail-box .tab-panel.active > div:last-child img{border-radius:0 var(--radius) var(--radius) 0;}
.photo-detail-box h1{font-family:"Noto Serif KR",serif;font-size:1.45rem;margin-bottom:8px;line-height:1.4;}
.photo-detail-box .d{font-size:.82rem;color:var(--ink-soft);display:block;margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid var(--line);}
.photo-detail-box p{font-size:.96rem;color:var(--ink);line-height:1.9;}
.photo-detail-box .back{display:inline-block;margin-top:24px;font-size:.86rem;font-weight:600;color:var(--primary);}
.attach-list{margin-top:10px;margin-bottom:10px;display:flex;flex-direction:column;gap:8px;}
.attach-list a{display:flex;align-items:center;gap:8px;padding:11px 14px;background:var(--bg);border-radius:8px;font-size:.86rem;color:var(--ink);font-weight:600;}
.attach-list a:hover{background:var(--today);}
.attach-list a::before{content:"📎";font-size:.9rem;}
@media (max-width:800px){
  .photo-detail-box{padding:22px;}
}
.tab-panel a.photo-link{display:block;}

/* stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.stat{background:var(--panel);border-radius:12px;padding:18px;text-align:center;box-shadow:var(--shadow);}
.stat b{display:block;font-family:"Noto Serif KR",serif;font-size:1.4rem;color:var(--primary);}
.stat span{font-size:.8rem;color:var(--ink-soft);}

@media (max-width:960px){
  .nav-links{display:none;}
  .menu-btn{display:block;margin-left:auto;background:none;border:1px solid var(--line);border-radius:8px;padding:6px 10px;}
  .hero-row{grid-template-columns:1fr;}
  .info-grid{grid-template-columns:1fr !important;}
  .tab-panel.active{grid-template-columns:repeat(2,1fr);}
}
