/* =========================================================
   가원노인요양원 - 메인/헤더/풋터/메뉴 커스텀 스타일
   그누보드5 theme/basic 전용 (default.css 이후에 로드됨)
========================================================= */
:root{
  --deep:#14322C;
  --primary:#2E6E5C;
  --primary-light:#6FA88E;
  --sand:#E8DCC0;
  --sand-deep:#C9AE7C;
  --bg:#FAF7F1;
  --panel:#FFFFFF;
  --ink:#1E2A26;
  --muted:#5B6D66;
  --line:#E4DECD;
  --radius:14px;
  --shadow: 0 12px 32px -16px rgba(20,50,44,0.25);
}

body{
  background:var(--bg);
  color:var(--ink);
  font-family:'Noto Sans KR', sans-serif;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
.gw-wrap h1, .gw-wrap h2, .gw-wrap h3{
  font-family:'Noto Serif KR', serif;
  margin:0;
  color:var(--deep);
  letter-spacing:-0.01em;
}
.gw-wrap a{color:inherit; text-decoration:none;}
.gw-wrap img{max-width:100%; display:block;}
.gw-container{max-width:1160px; margin:0 auto; padding:0 24px;}

/* ---------- Utility bar ---------- */
.gw-util-bar{
  background:var(--deep); color:rgba(243,241,232,0.85);
  font-size:12.5px; font-weight:500;
}
.gw-util-bar .gw-container{
  display:flex; justify-content:flex-end; gap:20px; padding:7px 24px;
}
.gw-util-bar a{display:flex; align-items:center; gap:6px; transition:color .15s; color:rgba(243,241,232,0.85) !important;}
.gw-util-bar a:hover{color:#fff !important;}
.gw-util-bar svg{width:13px; height:13px; color:inherit; stroke:currentColor;}

/* ---------- 전체 페이지 공통: 사이드바 제거 ---------- */
#aside{display:none !important;}
#wrapper,
#container_wr,
#container{
  width:100% !important; float:none !important; margin:0 auto !important; min-height:0 !important;
}

/* 서브페이지 : 메인페이지 콘텐츠 폭(.gw-container)과 동일하게 제한 */
body:not(.gw-index) #container{
  max-width:1160px !important;
  margin:32px auto !important;
  padding:0 24px !important;
  box-sizing:border-box;
}

/* 메인페이지 : 히어로 등 풀블리드 섹션을 위해 폭 제한 없음 */
body.gw-index #container{
  max-width:none !important;
  padding:0 !important;
}

/* ---------- 서브페이지 타이틀 (기관소개 > 인사말 형태) ---------- */
h2.gw-page-title{
  display:flex !important; align-items:baseline; flex-wrap:nowrap;
  font-family:'Noto Sans KR', sans-serif;
  font-size:30px !important;
  font-weight:800 !important;
  line-height:1.3 !important;
  margin:0 0 32px !important;
  padding-bottom:20px;
  border-bottom:2px solid var(--line);
  white-space:nowrap;
}
h2.gw-page-title span{margin:0 !important; display:inline !important; line-height:inherit !important;}
h2.gw-page-title .gw-page-parent{color:var(--primary) !important; font-weight:800 !important;}
h2.gw-page-title .gw-page-sep{color:var(--primary) !important; margin:0 12px !important; font-weight:600 !important;}
h2.gw-page-title .gw-page-current{color:var(--primary) !important; font-weight:800 !important;}

/* ---------- Header ---------- */
header.gw-site{
  position:sticky; top:0; z-index:50;
  background:rgba(250,247,241,0.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.gw-header-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 24px;
  max-width:1160px; margin:0 auto;
}
.gw-logo{display:flex; align-items:center; gap:10px;}
.gw-logo img{height:44px; width:auto; display:block;}
.gw-logo span{
  font-family:'Noto Serif KR', serif;
  font-weight:700; font-size:20px; color:var(--deep);
}

/* GNB */
nav.gw-gnb ul.gw-main{display:flex; gap:36px; margin:0; padding:0; list-style:none;}
nav.gw-gnb li.gw-has-sub{position:relative; padding-bottom:14px;}
nav.gw-gnb > .gw-main > li > a{
  font-weight:500; font-size:15.5px; color:var(--ink);
  padding:6px 2px; border-bottom:2px solid transparent;
  transition:border-color .2s, color .2s;
  display:inline-block;
}
nav.gw-gnb > .gw-main > li > a:hover{color:var(--primary); border-color:var(--primary-light);}
nav.gw-gnb .gw-sub{
  list-style:none; margin:0; padding:10px; position:absolute; top:100%; left:50%;
  transform:translateX(-50%); background:#fff; border:1px solid var(--line); border-radius:12px;
  box-shadow:var(--shadow); min-width:168px; opacity:0; visibility:hidden;
  transition:opacity .15s, transform .15s; pointer-events:none;
}
nav.gw-gnb li.gw-has-sub:hover .gw-sub{
  opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%) translateY(0);
}
nav.gw-gnb .gw-sub li a{
  display:block; padding:9px 14px; border-radius:8px; font-size:14.5px; font-weight:500;
  border-bottom:none; white-space:nowrap;
}
nav.gw-gnb .gw-sub li a:hover{background:#F1EEE3; color:var(--primary);}

.gw-header-cta{display:flex; align-items:center; gap:10px;}
.gw-tel-badge{
  display:flex; align-items:center; gap:8px;
  font-weight:700; color:var(--deep); font-size:15px;
  padding:9px 16px; border:1px solid var(--line); border-radius:100px;
  white-space:nowrap;
}
.gw-tel-badge svg{width:16px; height:16px; color:var(--primary);}
.gw-btn-primary{
  background:var(--primary); color:#fff; font-weight:600; font-size:15px;
  padding:11px 20px; border-radius:100px; white-space:nowrap;
  box-shadow:0 8px 18px -8px rgba(46,110,92,0.55);
  transition:background .2s, transform .2s;
  display:inline-block;
}
.gw-btn-primary:hover{background:var(--deep); transform:translateY(-1px); color:#fff;}

.gw-nav-toggle{
  display:none; width:40px; height:40px; border-radius:10px; border:1px solid var(--line);
  background:#fff; align-items:center; justify-content:center; flex-shrink:0; cursor:pointer;
}
.gw-nav-toggle svg{width:20px; height:20px; color:var(--deep);}

/* mobile off-canvas menu */
.gw-mobile-menu{
  display:none; position:fixed; inset:0; z-index:90; background:rgba(20,50,44,0.45);
}
.gw-mobile-menu.gw-open{display:block;}
.gw-mobile-panel{
  position:absolute; top:0; right:0; height:100%; width:82%; max-width:340px;
  background:var(--bg); box-shadow:-16px 0 40px rgba(0,0,0,0.2);
  padding:22px 22px 30px; overflow-y:auto;
}
.gw-mobile-panel-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:18px;}
.gw-mobile-panel-head img{height:32px;}
.gw-mobile-close{width:36px; height:36px; border-radius:9px; border:1px solid var(--line); background:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer;}
.gw-mobile-close svg{width:18px; height:18px;}
.gw-mobile-util{display:flex; gap:16px; padding-bottom:16px; margin-bottom:16px; border-bottom:1px solid var(--line); font-size:13.5px; font-weight:600; color:var(--muted);}
.gw-m-acc-item{border-bottom:1px solid var(--line);}
.gw-m-acc-btn{
  width:100%; display:flex; justify-content:space-between; align-items:center;
  padding:15px 4px; background:none; border:none; font-family:inherit; font-size:16px;
  font-weight:600; color:var(--deep); cursor:pointer;
}
.gw-m-acc-btn svg{width:16px; height:16px; transition:transform .2s; color:var(--muted);}
.gw-m-acc-item.gw-open .gw-m-acc-btn svg{transform:rotate(180deg);}
.gw-m-acc-panel{display:none; padding:0 4px 14px 12px;}
.gw-m-acc-item.gw-open .gw-m-acc-panel{display:block;}
.gw-m-acc-panel a{display:block; padding:9px 0; font-size:14.5px; color:var(--muted);}
.gw-m-acc-panel a:hover{color:var(--primary);}

/* ---------- Hero ---------- */
.gw-hero{
  position:relative; overflow:hidden; min-height:460px;
  display:flex; align-items:flex-end;
  background:
    linear-gradient(180deg, rgba(20,50,44,0.15) 0%, rgba(15,38,33,0.78) 100%),
    repeating-linear-gradient(120deg, #2E6E5C, #2E6E5C 40px, #275E4F 40px, #275E4F 80px);
}
.gw-hero::before{
  content:"메인 상단 이미지 영역 (시설/어르신 케어 사진 권장, 1920×720)";
  position:absolute; top:22px; left:50%; transform:translateX(-50%);
  font-size:12.5px; font-weight:600; color:rgba(255,255,255,0.55);
  letter-spacing:0.02em;
}
.gw-hero-inner{
  max-width:1160px; margin:0 auto; padding:0 24px 64px; width:100%;
  color:#F3F1E8;
}
.gw-eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-size:13.5px; font-weight:600; letter-spacing:0.06em;
  color:var(--sand); background:rgba(255,255,255,0.1);
  padding:7px 14px; border-radius:100px; margin-bottom:20px;
}
.gw-eyebrow::before{content:""; width:6px; height:6px; border-radius:50%; background:var(--sand-deep);}
.gw-hero h1{
  color:#fff; font-size:42px; line-height:1.34; font-weight:700;
  margin-bottom:18px;
}
.gw-hero h1 em{font-style:normal; color:var(--sand);}
.gw-hero p.gw-lead{
  font-size:16.5px; color:rgba(243,241,232,0.85); max-width:460px; margin-bottom:30px;
}
.gw-hero-actions{display:flex; gap:12px; flex-wrap:wrap;}
.gw-btn-ghost{
  border:1px solid rgba(255,255,255,0.4); color:#fff;
  padding:12px 22px; border-radius:100px; font-weight:600; font-size:15px;
  transition:background .2s; display:inline-block;
}
.gw-btn-ghost:hover{background:rgba(255,255,255,0.12); color:#fff;}
.gw-btn-light{
  background:var(--sand); color:var(--deep);
  padding:12px 22px; border-radius:100px; font-weight:700; font-size:15px;
  transition:background .2s; display:inline-block;
}
.gw-btn-light:hover{background:#fff; color:var(--deep);}

/* ---------- Trust strip ---------- */
.gw-trust-strip{
  background:var(--panel);
  margin:-56px auto 0; max-width:1080px;
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  position:relative; z-index:2;
  display:grid; grid-template-columns:repeat(4,1fr);
}
.gw-trust-item{
  padding:30px 20px; text-align:center;
  border-right:1px solid var(--line);
}
.gw-trust-item:last-child{border-right:none;}
.gw-trust-num{
  font-family:'Noto Serif KR', serif; font-weight:700; font-size:30px; color:var(--primary);
  display:flex; align-items:baseline; justify-content:center; gap:2px;
}
.gw-trust-num span.gw-unit{font-size:16px; font-weight:600; color:var(--muted);}
.gw-trust-label{margin-top:6px; font-size:13.5px; color:var(--muted); font-weight:500;}

.gw-wrap section{padding:104px 0 0;}
.gw-section-head{max-width:560px; margin-bottom:44px;}
.gw-section-eyebrow{
  font-size:13px; font-weight:700; letter-spacing:0.08em; color:var(--primary);
  text-transform:uppercase; margin-bottom:12px; display:block;
}
.gw-section-head h2{font-size:32px; line-height:1.4;}
.gw-section-head p{color:var(--muted); margin-top:14px; font-size:15.5px;}

/* ---------- About ---------- */
.gw-about-grid{
  display:grid; grid-template-columns:0.95fr 1.05fr; gap:56px; align-items:center;
}
.gw-about-photo{
  aspect-ratio:4/3.1; border-radius:18px; overflow:hidden;
  background-image:url('/img/banner/gw-about-photo.png');
  background-size:cover; background-position:center center; background-repeat:no-repeat;
  position:relative;
}
.gw-feature-list{list-style:none; margin:28px 0 0; padding:0; display:grid; gap:18px;}
.gw-feature-list li{
  display:flex; gap:16px; padding:20px; background:var(--panel);
  border:1px solid var(--line); border-radius:12px;
}
.gw-feature-icon{
  width:42px; height:42px; border-radius:10px; flex-shrink:0;
  background:linear-gradient(135deg, var(--primary-light), var(--primary));
  display:flex; align-items:center; justify-content:center;
}
.gw-feature-icon svg{width:20px; height:20px; color:#fff;}
.gw-feature-list h3{font-size:16.5px; margin-bottom:4px;}
.gw-feature-list p{margin:0; color:var(--muted); font-size:14.5px;}

/* ---------- Notices ---------- */
.gw-notice-panel{
  background:var(--panel); border:1px solid var(--line); border-radius:18px; overflow:hidden;
}
.gw-notice-row{
  display:flex; align-items:center; gap:20px;
  padding:20px 28px; border-bottom:1px solid var(--line);
  transition:background .15s;
}
.gw-notice-row:last-child{border-bottom:none;}
.gw-notice-row:hover{background:#F6F3EA;}
.gw-notice-tag{
  flex-shrink:0; font-size:12.5px; font-weight:700; color:var(--primary);
  background:rgba(46,110,92,0.1); padding:5px 11px; border-radius:100px;
}
.gw-notice-tag.gw-important{color:#9C5A1E; background:rgba(201,174,124,0.28);}
.gw-notice-title{flex:1; font-size:15.5px; font-weight:500;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.gw-notice-date{flex-shrink:0; font-size:13.5px; color:var(--muted);}
.gw-notice-more{
  display:flex; justify-content:center; padding:16px;
  font-size:14px; font-weight:600; color:var(--primary); background:#F6F3EA;
}

/* ---------- Gallery ---------- */
.gw-gallery-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:14px;
}
.gw-gallery-grid a{
  aspect-ratio:1/1; border-radius:12px; overflow:hidden; position:relative;
  background:linear-gradient(160deg, var(--sand) 0%, var(--primary-light) 160%);
}
.gw-gallery-grid a::after{
  content:"사진";
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  color:rgba(20,50,44,0.5); font-size:13px; font-weight:600;
}
.gw-gallery-grid a:nth-child(1){grid-column:span 2; grid-row:span 2;}
.gw-gallery-grid a img{width:100%; height:100%; object-fit:cover;}
.gw-gallery-grid a:has(img)::after{display:none;}

/* ---------- Location ---------- */
.gw-location-grid{
  display:grid; grid-template-columns:1.15fr 0.85fr; gap:32px;
  border:1px solid var(--line); border-radius:18px; overflow:hidden; background:var(--panel);
}
.gw-map-area{
  background:repeating-linear-gradient(45deg, #EFEBDF, #EFEBDF 14px, #E7E1D0 14px, #E7E1D0 28px);
  min-height:340px; display:flex; align-items:center; justify-content:center;
  color:var(--muted); font-weight:600; font-size:14px;
}
.gw-location-info{padding:36px 8px 36px 0;}
.gw-info-row{display:flex; gap:14px; padding:14px 0; border-bottom:1px dashed var(--line);}
.gw-info-row:last-child{border-bottom:none;}
.gw-info-row .gw-icon{
  width:36px; height:36px; border-radius:9px; background:#F1EEE3;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.gw-info-row .gw-icon svg{width:17px; height:17px; color:var(--primary);}
.gw-info-row h4{margin:0 0 2px; font-size:14.5px; color:var(--muted); font-weight:600;}
.gw-info-row p{margin:0; font-size:15.5px; font-weight:500;}

/* Content page location (stacked) */
#ctt .gw-location-grid{grid-template-columns:1fr;}
#ctt .gw-map-area{height:480px;}
#ctt .gw-location-info{padding:36px 24px;}
#ctt .gw-info-row{display:grid; grid-template-columns:36px 1fr; gap:14px; align-items:start; max-width:600px; margin:0 auto;}

/* ---------- CTA band ---------- */
.gw-cta-band{
  margin-top:120px;
  background:linear-gradient(135deg, var(--deep), #1E4B3E);
  color:#fff; text-align:center; padding:76px 24px;
}
.gw-cta-band h2{color:#fff; font-size:28px; margin-bottom:14px;}
.gw-cta-band p{color:rgba(243,241,232,0.78); margin-bottom:30px; font-size:15.5px;}

/* ---------- Footer ---------- */
footer.gw-site{
  background:var(--deep); color:rgba(243,241,232,0.72); padding:52px 0 32px; font-size:14px;
  text-align:left;
}
footer.gw-site p, footer.gw-site h1, footer.gw-site h2, footer.gw-site h3{text-align:left; color:inherit;}
.gw-footer-grid{display:flex; justify-content:space-between; gap:32px; flex-wrap:wrap; margin-bottom:28px; text-align:left;}
.gw-footer-brand{font-family:'Noto Serif KR', serif; color:#fff; font-size:18px; font-weight:700; margin-bottom:10px;}
.gw-footer-links{display:flex; gap:20px; list-style:none; padding:0; margin:0; text-align:left;}
.gw-footer-links li{list-style:none;}
.gw-footer-links a{color:rgba(243,241,232,0.72); text-decoration:none;}
.gw-footer-links a:hover{color:#fff;}
.gw-footer-bottom{
  border-top:1px solid rgba(255,255,255,0.12); padding-top:20px;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; font-size:12.5px; text-align:left;
}

/* ---------- 메뉴별 서브비주얼 배너 ---------- */
.gw-sub-banner{
  width:100%;
  height:260px;
  overflow:hidden;
  background:var(--deep);
  display:flex;
  align-items:center;
  justify-content:center;
}
.gw-sub-banner img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center center;
}
@media (max-width:880px){
  .gw-sub-banner{height:auto;}
  .gw-sub-banner img{
    width:100%;
    height:auto;
    object-fit:contain;
    object-position:center center;
  }
}

html{overflow-x:hidden;}
body{overflow-x:hidden;}

@media (max-width:1200px){
  #hd, #wrapper, #ft{min-width:0 !important;}
}

@media (max-width:1080px) and (min-width:881px){
  nav.gw-gnb ul.gw-main{gap:20px;}
  nav.gw-gnb > .gw-main > li > a{font-size:14.5px;}
  .gw-header-cta{gap:8px;}
}

@media (max-width:880px){
  .gw-util-bar .gw-container{justify-content:center; gap:16px;}
  nav.gw-gnb{display:none;}
  .gw-nav-toggle{display:flex;}
  .gw-header-cta .gw-tel-badge span.gw-tel-text{display:none;}
  .gw-desktop-only{display:none !important;}
  .gw-hero{min-height:380px;}
  .gw-hero::before{display:none;}
  .gw-hero-inner{padding:0 20px 48px;}
  .gw-hero h1{font-size:30px;}
  .gw-trust-strip{grid-template-columns:repeat(2,1fr); margin-top:-40px;}
  #ctt .gw-map-area{height:220px;}
  .gw-trust-item{border-bottom:1px solid var(--line);}
  .gw-about-grid{grid-template-columns:1fr;}
  .gw-gallery-grid{grid-template-columns:repeat(2,1fr);}
  .gw-location-grid{grid-template-columns:1fr;}
  .gw-map-area{min-height:220px;}
  .gw-wrap section{padding:72px 0 0;}
  .gw-cta-band{margin-top:72px;}
}

#ctt_con img{max-width:100%;height:auto;}
