*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"Noto Sans KR","Malgun Gothic",sans-serif;color:#334155;line-height:1.7}a{text-decoration:none;color:inherit}.container{width:min(1120px,calc(100% - 40px));margin:auto}.header{position:sticky;top:0;z-index:20;background:#fff;border-bottom:1px solid #eee}.nav-wrap{height:78px;display:flex;align-items:center;justify-content:space-between}.logo{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:800;color:#2b4c6f}.logo span span{font-weight:500}.logo-mark{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#e8f1f8;color:#3b6e99}.nav{display:flex;align-items:center;gap:28px;font-size:17px}.nav a:hover{color:#3b6e99}.nav-call{padding:9px 17px;border-radius:30px;background:#3b6e99;color:white}.menu-toggle{display:none;border:0;background:none;font-size:25px}.hero{position:relative;min-height:600px;display:flex;align-items:center;background:linear-gradient(110deg,#e8f1f8,#f0f9ff);overflow:hidden}.hero:after{content:"";position:absolute;right:-100px;bottom:-150px;width:600px;height:600px;border-radius:50%;background:rgba(255,255,255,.38)}.hero-overlay{position:absolute;inset:0;background:radial-gradient(circle at 75% 40%,rgba(255,255,255,.65),transparent 35%)}.hero-content{position:relative;z-index:2}.eyebrow,.section-label{letter-spacing:2px;font-size:14px;font-weight:800;color:#4b7ca8}.hero h1{font-size:clamp(36px,5vw,62px);line-height:1.25;color:#1e293b;margin:12px 0 22px}.hero h1 strong{color:#3b6e99}.hero-text{font-size:20px;margin-bottom:30px;color:#475569}.hero-buttons{display:flex;gap:12px}.btn{display:inline-block;padding:12px 24px;border-radius:8px;font-weight:700}.primary{background:#3b6e99;color:#fff}.light{background:#fff;color:#2f557f}.quick{background:#fff;box-shadow:0 5px 20px rgba(0,0,0,.05)}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr)}.quick-grid a{display:flex;align-items:center;gap:18px;padding:24px 30px;border-right:1px solid #eee}.quick-grid a:last-child{border:0}.quick-grid span{width:45px;height:45px;border-radius:50%;display:grid;place-items:center;background:#edf3f8;color:#3b6e99;font-size:22px}.quick-grid b{display:block;color:#2c4a6f}.quick-grid small{color:#858d88}.section{padding:100px 0}.soft{background:#f3f7fa}.two-col{display:grid;grid-template-columns:1.1fr .9fr;gap:80px;align-items:center}.section h2{font-size:38px;line-height:1.35;color:#2c4a6f;margin:8px 0 20px}.lead{font-size:20px}.text-link{display:inline-block;margin-top:15px;color:#3b6e99;font-weight:700}.about-card{background:#e6f0f7;border-radius:28px;padding:65px 35px;text-align:center}.circle{width:75px;height:75px;margin:0 auto 20px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#3b6e99;font-size:30px}.about-card h3{font-size:24px;margin:10px}.center-heading{text-align:center;margin-bottom:45px}.center-heading p:last-child{color:#7a837e}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.card{background:#fff;border:1px solid #e1e8f0;border-radius:14px;padding:30px 23px;min-height:240px}.icon{font-size:28px;color:#3b6e99}.card h3{margin:12px 0 8px;color:#2b4a6e}.card p{font-size:16px;color:#5c6b78}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.steps>div{position:relative;text-align:center;padding:10px 20px}.steps b{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#e4eef6;color:#3b6e99}.steps h3{font-size:20px}.steps p{font-size:16px;color:#737b77}.notice{margin-top:35px;padding:18px 20px;background:#fff8e9;border-radius:8px;text-align:center;color:#8a7448;font-size:16px}.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.photo{aspect-ratio:1/1;border-radius:14px;overflow:hidden}.placeholder{display:grid;place-items:center;text-align:center;background:#e4edf5;color:#708078;border:2px dashed #bdccc2}.board{border-top:2px solid #45574e}.board>div{padding:18px 5px;border-bottom:1px solid #e5e8e6}.board span{display:block;font-weight:700;color:#2c4a6f}.board small{color:#7c8580}.contact-card{background:#edf3f8;border-radius:20px;padding:42px}.phone{display:block;font-size:30px;font-weight:800;color:#3b6e99;margin:15px 0}.address{font-size:16px}.full{width:100%;text-align:center;margin-top:20px}.footer{background:#2c4a6f;color:#dfe8e2;padding:35px 0}.footer-inner{display:flex;justify-content:space-between;gap:30px}.footer p{margin:4px 0;font-size:15px}.footer a{color:#fff}.footer small{color:#aebcb4}@media(max-width:800px){.nav{display:none;position:absolute;top:78px;left:0;right:0;background:#fff;padding:15px 20px;flex-direction:column;gap:0;border-bottom:1px solid #eee}.nav.open{display:flex}.nav a{width:100%;padding:12px}.menu-toggle{display:block}.quick-grid,.two-col,.cards,.steps,.gallery{grid-template-columns:1fr 1fr}.hero{min-height:540px}.section{padding:70px 0}.two-col{gap:40px}.footer-inner{flex-direction:column}}@media(max-width:520px){.container{width:min(100% - 28px,1120px)}.quick-grid,.two-col,.cards,.steps,.gallery{grid-template-columns:1fr}.quick-grid a{border-right:0;border-bottom:1px solid #eee}.hero h1{font-size:38px}.hero-text{font-size:16px}.hero-buttons{flex-direction:column;width:max-content}.section h2{font-size:30px}.contact-card{padding:30px 22px}.phone{font-size:25px}}

.header-phone{font-size:18px;font-weight:800;color:#3b6e99;letter-spacing:.2px}
.hero-phone{display:inline-flex;align-items:center;padding:12px 4px;font-size:20px;font-weight:800;color:#2f557f}
.location-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:25px;align-items:stretch}
.map-placeholder{min-height:390px;border-radius:18px;background:#e5eef6;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#5c6b78;border:1px solid #d5e1ec}
.map-pin{font-size:40px;color:#3b6e99;margin-bottom:10px}
.map-placeholder h3{font-size:24px;color:#2c4a6f;margin:5px}
.map-placeholder p{font-size:18px;margin:5px 15px}
.map-placeholder small{font-size:15px;margin-top:15px;color:#89938e}
.location-info{border:1px solid #e1e8f0;border-radius:18px;padding:22px 30px;background:#fff}
.info-row{padding:18px 0;border-bottom:1px solid #ebf1f7}
.info-row:last-child{border-bottom:0}
.info-row b{color:#3b6e99;font-size:17px}
.info-row p{margin:5px 0 0;font-size:17px;color:#5c6b78}
@media(max-width:800px){.location-grid{grid-template-columns:1fr}.header-phone{font-size:16px}.hero-phone{font-size:18px}}

/* Mobile-first comfort refinements */

@media(max-width:800px){
  .container{width:calc(100% - 32px)}
  .nav-wrap{height:68px}
  .logo{font-size:18px}
  .logo-mark{width:36px;height:36px}
  .nav{top:68px;padding:10px 16px;box-shadow:0 8px 18px rgba(0,0,0,.06)}
  .nav a{font-size:16px;padding:13px 8px}
  .hero{min-height:560px;padding:72px 0 45px}
  .hero-content{padding:0 4px}
  .eyebrow{font-size:13px;letter-spacing:1.5px}
  .hero h1{font-size:clamp(31px,8.8vw,42px);line-height:1.35;margin:10px 0 18px;word-break:keep-all}
  .hero-text{font-size:17px;line-height:1.75;word-break:keep-all;margin-bottom:24px}
  .hero-buttons{width:100%;display:flex;gap:10px}
  .hero-buttons .btn{flex:1;text-align:center;padding:12px 8px;font-size:16px}
  .quick-grid{grid-template-columns:1fr}
  .quick-grid a{padding:18px 8px}
  .quick-grid small{font-size:15px}
  .section{padding:62px 0}
  .section h2{font-size:30px;line-height:1.4}
  .lead{font-size:17px}
  .two-col{gap:32px}
  .about-card{padding:42px 24px;border-radius:20px}
  .center-heading{margin-bottom:30px}
  .center-heading h2{margin-bottom:10px}
  .center-heading p:last-child{font-size:16px;line-height:1.7}
  .cards{grid-template-columns:1fr}
  .card{min-height:auto;padding:25px 22px}
  .card h3{font-size:20px}
  .card p{font-size:16px;line-height:1.75}
  .steps{grid-template-columns:1fr}
  .steps>div{padding:8px 12px 18px}
  .steps h3{font-size:19px;margin:10px 0 5px}
  .steps p{font-size:16px;margin:0}
  .notice{font-size:15px;line-height:1.65}
  .location-grid{grid-template-columns:1fr;gap:16px}
  .map-placeholder{min-height:260px;padding:25px 15px}
  .map-placeholder h3{font-size:22px}
  .map-placeholder p{font-size:16px}
  .location-info{padding:10px 20px}
  .info-row{padding:16px 0}
  .info-row b,.info-row p{font-size:16px}
  .gallery{grid-template-columns:1fr 1fr;gap:10px}
  .photo{border-radius:10px}
  .community{grid-template-columns:1fr}
  .contact-card{padding:30px 22px}
  .contact-card h2{font-size:28px}
  .phone{font-size:26px}
  .footer{padding:28px 0}
  .footer-inner{gap:18px}
  .footer p{font-size:14px}
}
@media(max-width:420px){
  .container{width:calc(100% - 28px)}
  .hero{min-height:530px;padding-top:58px}
  .hero h1{font-size:31px}
  .hero-text{font-size:16px}
  .hero-buttons{flex-direction:column}
  .hero-buttons .btn{width:100%}
  .quick-grid a{padding:16px 5px}
  .section{padding:54px 0}
  .section h2{font-size:28px}
  .gallery{grid-template-columns:1fr 1fr}
}

/* Final mobile hero refinement */
.hero h1{letter-spacing:-.8px}
@media(max-width:800px){
  .hero{min-height:540px;padding:70px 0 60px}
  .hero-content{max-width:680px}
  .hero h1{font-size:clamp(32px,8.5vw,40px);line-height:1.42;letter-spacing:-1.1px;margin:8px 0 20px}
  .hero h1 strong{display:inline-block;white-space:nowrap}
  .hero-text{font-size:16px;line-height:1.8}
}
@media(max-width:420px){
  .hero{min-height:520px;padding:58px 0 52px}
  .hero h1{font-size:31px;line-height:1.45;letter-spacing:-1.2px}
  .hero h1 strong{white-space:normal}
}


/* --- 추가된 서비스 상세 및 지원대상 스타일 --- */
.quick-grid {
  grid-template-columns: repeat(3, 1fr) !important;
}

.service-detail-box {
  margin-top: 40px;
  background: #ffffff;
  border-radius: 12px;
  padding: 30px;
  box-shadow: 0 4px 15px rgba(0,0,0,0.05);
  border: 1px solid #e2e8f0;
}

.detail-header {
  margin-bottom: 24px;
}

.detail-header h3 {
  font-size: 22px;
  margin: 8px 0 4px 0;
  color: #2d3748;
}

.sub-desc {
  color: #718096;
  font-size: 15px;
  margin: 0;
}

.badge {
  display: inline-block;
  background-color: #2b6cb0;
  color: #ffffff;
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 13px;
  font-weight: 600;
}

.badge.bath {
  background-color: #319795;
}

.target-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 20px;
}

.target-card {
  background: #f8fafc;
  border: 1px solid #cbd5e0;
  border-radius: 8px;
  padding: 20px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.target-card h4 {
  font-size: 17px;
  color: #1a202c;
  margin-top: 0;
  margin-bottom: 14px;
  padding-bottom: 8px;
  border-bottom: 2px solid #e2e8f0;
}

.check-list {
  list-style: none;
  padding-left: 0;
  margin: 0 0 16px 0;
}

.check-list li {
  font-size: 14px;
  line-height: 1.6;
  margin-bottom: 12px;
  color: #4a5568;
}

.check-list strong {
  color: #2d3748;
}

.doc-note {
  display: block;
  font-size: 13px;
  color: #718096;
  margin-top: 3px;
  line-height: 1.4;
}

.notice-tag {
  background-color: #fff5f5;
  color: #e53e3e;
  border: 1px solid #fed7d7;
  padding: 8px 12px;
  border-radius: 6px;
  font-size: 13px;
  font-weight: 600;
  text-align: center;
}

.bath-box {
  background: #f0fdf4;
  border-color: #bbf7d0;
}

.bath-info-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px;
}

.bath-item {
  background: #ffffff;
  padding: 16px;
  border-radius: 8px;
  border: 1px solid #dcfce7;
}

.bath-item b {
  display: block;
  font-size: 16px;
  color: #15803d;
  margin-bottom: 6px;
}

.bath-item p {
  font-size: 14px;
  color: #4b5563;
  margin: 0;
  line-height: 1.5;
}


/* 로고 이미지 스타일 */
.logo-img {
  height: 48px;
  width: auto;
  object-fit: contain;
  display: block;
}

/* 퀵메뉴 아이콘 스타일 */
.quick-icon {
  font-size: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.2s ease;
}

.icon-location {
  font-size: 38px !important; /* 찾아오는 길 아이콘 크기 확대 */
  font-weight: bold;
}

.icon-phone {
  font-size: 30px !important; /* 전화기 아이콘 크기 */
}


/* Quick menu icon vertical & horizontal perfect center adjustment */
.quick-grid span {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  line-height: 1 !important;
  width: 46px !important;
  height: 46px !important;
  padding: 0 !important;
}

.quick-icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
}

.icon-location {
  font-size: 26px !important;
  transform: translateY(-1px); /* Perfectly center alignment */
}

.icon-phone {
  font-size: 20px !important;
  color: #3b6e99 !important; /* Blue theme color instead of red */
  transform: translateY(-1px);
}
