@charset "UTF-8";
/* =========================================================
   HEALING POINT GYM UNYANG — layout modeled on apgujeong-h.co.kr/district2
   rem is viewport-relative: html{font-size:.052vw} → 1rem ≈ 1px at 1920px
   ========================================================= */

html { width: 100%; height: 100%; font-size: 0.052vw; scroll-behavior: smooth; }
body { position: relative; height: 100%; font-size: 16rem; line-height: 130%; color: #111; font-family: "Pretendard", -apple-system, BlinkMacSystemFont, system-ui, sans-serif; font-weight: 400; -webkit-text-size-adjust: 100%; overflow-x: hidden; background: #fff; }
body, div, h1, h2, h3, h4, h5, h6, ul, ol, li, dl, dt, dd, p, form, fieldset, table, tr, th, td { margin: 0; padding: 0; font-weight: normal; }
ul, ol { list-style: none; }
img { border: 0; vertical-align: top; }
a { color: inherit; text-decoration: none; }
button { margin: 0; padding: 0; border: 0; background: transparent; font: inherit; color: inherit; cursor: pointer; }
em, address { font-style: normal; }
small { font-size: inherit; }
article, aside, footer, header, main, nav, section { display: block; }

:root {
  --brandColor: #BA8D65;
  --primaryColor: #231F20;
  --eng-font: 'Jost', sans-serif;
  --head-height: 120rem;
}
@media (max-width: 1024px) { html { font-size: .130vw; } :root { --head-height: 60rem; } }
@media (max-width: 600px) { html { font-size: .256vw; } }
html.scl-lock, body.scl-lock { overflow: hidden; }

.only-pc { display: block !important; }
.only-mo { display: none !important; }
@media screen and (max-width: 1024px) {
  body { font-size: 14rem; }
  .only-pc { display: none !important; }
  .only-mo { display: block !important; }
}

#skipNavi a { position: absolute; left: 0; top: -100rem; z-index: 2000; padding: 8rem 16rem; background: #231F20; color: #fff; }
#skipNavi a:focus { top: 0; }

/* typography */
.f-en-h3 { font-size: 80rem; line-height: 110%; font-family: var(--eng-font); text-transform: uppercase; font-weight: 500; }
.f-en-h4 { font-size: 64rem; line-height: 110%; font-family: var(--eng-font); text-transform: uppercase; font-weight: 500; }
.f-b1 { font-size: 26rem; line-height: 140%; letter-spacing: -1.04rem; }
.f-b2 { font-size: 24rem; line-height: 160%; letter-spacing: -0.96rem; }
.f-b3 { font-size: 20rem; line-height: 160%; letter-spacing: -0.8rem; }
.f-b4 { font-size: 18rem; line-height: 160%; letter-spacing: -0.72rem; }
.f-b6 { font-size: 14rem; line-height: 150%; letter-spacing: -0.28rem; }
.f-btn-l { font-size: 20rem; line-height: 130%; letter-spacing: -0.8rem; font-weight: 600; }
.fw-600 { font-weight: 600; }
.fw-500 { font-weight: 500; }
@media screen and (max-width: 1024px) {
  .f-en-h3 { font-size: 40rem; }
  .f-en-h4 { font-size: 34rem; }
  .f-b1 { font-size: 22rem; letter-spacing: -0.88rem; }
  .f-b2 { font-size: 20rem; letter-spacing: -0.8rem; }
  .f-b3 { font-size: 18rem; letter-spacing: -0.72rem; }
  .f-b4 { font-size: 16rem; letter-spacing: -0.64rem; }
  .f-b6 { font-size: 14rem; letter-spacing: -0.28rem; }
  .f-btn-l { font-size: 18rem; letter-spacing: -0.72rem; }
}

.layout { margin: 0 auto; width: calc(100% - 40rem); max-width: 1177rem; }
.layout.max-1476 { max-width: 1476rem; }
.layout.max-1776 { max-width: 1776rem; }

.btn-area { position: relative; margin-top: 60rem; display: flex; justify-content: center; flex-wrap: wrap; gap: 12rem; }
.btn-primary { display: inline-block; padding: 16rem 24rem; min-width: 100rem; font-size: 20rem; line-height: 130%; color: #fff; background: #231F20; font-weight: 600; letter-spacing: -0.8rem; border: 1px solid #231F20; text-align: center; box-sizing: border-box; transition: background .3s ease, color .3s ease; }
.btn-primary:hover { background: var(--brandColor); border-color: var(--brandColor); }
.btn-primary.outline { color: #231F20; background: #fff; }
.btn-primary.outline:hover { color: #fff; }
@media screen and (max-width: 1024px) {
  .btn-area { margin-top: 80rem; gap: 8rem; }
  .btn-primary { padding: 11rem 24rem; min-width: auto; font-size: 16rem; letter-spacing: -0.64rem; }
}

/* loading */
.loading { position: fixed; inset: 0; z-index: 3000; display: flex; justify-content: center; align-items: center; background: #231F20; transition: opacity .6s ease, visibility .6s ease; }
.loading.off { opacity: 0; visibility: hidden; }
.loading-inner { display: flex; flex-direction: column; align-items: center; gap: 24rem; }
.loading .mark { width: 72rem; opacity: .9; animation: pulse 1.4s ease-in-out infinite; }
.loading .txt { font-family: var(--eng-font); font-size: 18rem; letter-spacing: 6rem; color: rgba(255,255,255,.6); animation: pulse 1.4s ease-in-out infinite; }
@keyframes pulse { 0%, 100% { opacity: .35; } 50% { opacity: 1; } }

/* =========================================================
   Header
   ========================================================= */
header { position: fixed; left: 0; top: 0; width: 100%; height: var(--head-height); transition: top .4s ease, background-color .4s ease; z-index: 1000; background: #fff; }
header.hide { top: calc(-1 * var(--head-height)) !important; }
header .logo { position: absolute; top: 50%; left: 72rem; transform: translateY(-50%); z-index: 10; }
header .logo a, .sitemap-logo { display: flex; flex-direction: row; align-items: center; gap: 12rem; font-family: var(--eng-font); color: #111; text-transform: uppercase; line-height: 1; }
header .logo a .txt, .sitemap-logo .txt { display: flex; flex-direction: column; align-items: center; }
header .logo a .mark, .sitemap-logo .mark { display: block; height: 44rem; width: auto; filter: brightness(0); transition: filter .4s ease; }
header.wht .logo a .mark { filter: none; }
.footer-logo { display: flex; flex-direction: column; align-items: center; font-family: var(--eng-font); color: #fff; text-transform: uppercase; line-height: 1; }
.footer-logo .mark { display: block; height: 56rem; width: auto; margin-bottom: 20rem; }
header .logo a .l1, .sitemap-logo .l1, .footer-logo .l1 { font-size: 18rem; font-weight: 500; letter-spacing: 3.4rem; }
header .logo a .l2, .sitemap-logo .l2, .footer-logo .l2 { font-size: 17rem; font-weight: 500; letter-spacing: 8rem; margin-top: 5rem; padding-left: 8rem; }
header nav { position: relative; width: 100%; height: 100%; text-align: center; z-index: 2; }
header .gnb-w { display: inline-block; text-align: center; }
header .gnb { display: flex; }
header .gnb a { display: block; color: #111; }
header .gnb > li { display: inline-block; position: relative; padding: 0 24rem; height: 100%; }
header .gnb > li .one-link { position: relative; display: flex; justify-content: center; align-items: center; height: var(--head-height); white-space: nowrap; font-size: 20rem; font-weight: 600; }
header .gnb > li .one-link span { position: relative; display: inline-block; }
header .gnb > li .one-link span::before { content: ''; position: absolute; left: auto; right: 0; bottom: -12rem; width: 0; height: 1px; background: #231F20; transition: width .5s ease; }
header.wht .gnb > li .one-link span::before { background: #fff; }
header .gnb > li .two-depth { position: absolute; top: 110rem; left: 50%; padding: 18rem 24rem 20rem; min-width: 160rem; background: #4A3828; border-radius: 8rem; transform: translateX(-50%); text-align: left; }
header .gnb > li .two-depth > li:not(:last-child) { padding-bottom: 10rem; margin-bottom: 10rem; border-bottom: 1px solid rgba(255,255,255,.08); }
header .gnb > li .two-depth > li .two-link { font-size: 18rem; line-height: 160%; color: #fff !important; letter-spacing: -0.36rem; white-space: nowrap; transition: color .3s ease; }
header .gnb > li .two-depth > li .two-link:hover { color: var(--brandColor) !important; }
header .utils { position: absolute; top: 50%; right: 72rem; display: flex; gap: 24rem; align-items: center; transform: translateY(-50%); z-index: 3; }
header .btn-login { font-size: 20rem; line-height: 130%; color: #111; font-weight: 600; }
header .btn-menu-open { position: relative; width: 40rem; height: 40rem; text-indent: -9999px; overflow: hidden; }
header .btn-menu-open::before, header .btn-menu-open::after { content: ''; position: absolute; left: 8rem; width: 24rem; height: 2px; background: #111; }
header .btn-menu-open::before { top: 14rem; }
header .btn-menu-open::after { top: 24rem; }
header.wht .logo a, header.wht .gnb a, header.wht .btn-login { color: #fff; }
header.wht .btn-menu-open::before, header.wht .btn-menu-open::after { background: #fff; }

/* 헤더: 처음부터 상단 고정. 첫 화면 위에서는 투명+흰 글자, 스크롤하면 흰 배경 */
#main header.btm-fix { position: fixed; top: 0; background: transparent; }
#main header.btm-fix.solid, #main header:not(.btm-fix) { background: #fff; }
#main header.btm-fix:not(.solid) { background: linear-gradient(180deg, rgba(0,0,0,.45) 0%, rgba(0,0,0,0) 100%); }
header.type3 .gnb > li.on { z-index: 1; }

/* sitemap overlay */
header .sitemap-wrap { display: none; position: fixed; left: 0; top: -300rem; width: 100%; z-index: 9999; background: #fff; transition: top .5s ease; }
header .dim { display: none; position: fixed; left: 0; top: 0; width: 100%; height: 100%; background: rgba(0,0,0,.2); z-index: 9000; }
header .sitemap-wrap.show { top: 0; }
header .sitemap-wrap .top { position: relative; display: flex; justify-content: center; align-items: center; height: 140rem; border-bottom: 1px solid rgba(0,0,0,.1); }
header .sitemap-wrap .top .btn-menu-close { position: absolute; right: 72rem; top: 50%; width: 24rem; height: 24rem; transform: translateY(-50%); text-indent: -9999rem; overflow: hidden; }
header .sitemap-wrap .top .btn-menu-close::before, header .sitemap-wrap .top .btn-menu-close::after { content: ''; position: absolute; left: 0; top: 11rem; width: 24rem; height: 2px; background: #111; transform: rotate(45deg); }
header .sitemap-wrap .top .btn-menu-close::after { transform: rotate(-45deg); }
header .sitemap-wrap .sitemap-list { display: flex; justify-content: center; gap: 72rem; padding: 64rem 0 104rem; }
header .sitemap-wrap .sitemap-list .one-link { font-size: 28rem; line-height: 130%; color: #111; font-weight: 600; letter-spacing: -1.12rem; }
header .sitemap-wrap .sitemap-list .two-depth { display: flex; flex-direction: column; gap: 12rem; margin-top: 40rem; }
header .sitemap-wrap .sitemap-list .two-depth li a { font-size: 20rem; line-height: 160%; color: #111; letter-spacing: -0.8rem; font-weight: 600; transition: color .5s ease; }
header .sitemap-wrap .sitemap-list .two-depth li a:hover { color: #70553D; }
header .sitemap-wrap .auth { display: flex; justify-content: center; align-items: center; gap: 40rem; height: 77rem; background: #F8F8F8; }
header .sitemap-wrap .auth .btn-login { font-size: 18rem; line-height: 160%; color: #111; letter-spacing: -0.72rem; font-weight: 500; }

header .btn-menu-mo, header .btn-login-mo { display: none; }

@media screen and (min-width: 1025px) {
  header .gnb > li .one-link:hover span::before { width: 100%; left: 0; right: auto; }
  header nav { display: block !important; }
  header .gnb > li .two-depth { opacity: 0; visibility: hidden; transition: all .5s ease; }
  header .gnb > li.on .two-depth { top: 81rem; opacity: 1; visibility: visible; }
}
@media screen and (max-width: 1024px) {
  header { z-index: 1002 !important; }
  header .logo { left: 20rem; }
  header .logo a { gap: 8rem; }
  header .logo a .mark { height: 30rem; }
  header:has(nav.show) .logo a .mark { filter: none; }
  header .logo a .l1 { font-size: 13rem; letter-spacing: 2.4rem; }
  header .logo a .l2 { font-size: 12rem; letter-spacing: 6rem; margin-top: 3rem; padding-left: 6rem; }
  header:has(nav.show) .logo a { color: #fff; }
  header .btn-menu-mo { position: absolute; right: 20rem; top: 18rem; display: block; width: 24rem; height: 24rem; text-indent: -9999rem; overflow: hidden; z-index: 1003; }
  header .btn-menu-mo::before, header .btn-menu-mo::after { content: ''; position: absolute; left: 0; width: 24rem; height: 2px; background: #111; transition: transform .3s ease, top .3s ease; }
  header .btn-menu-mo::before { top: 6rem; }
  header .btn-menu-mo::after { top: 16rem; }
  header.wht .btn-menu-mo::before, header.wht .btn-menu-mo::after { background: #fff; }
  header:has(nav.show) .btn-menu-mo::before { top: 11rem; transform: rotate(45deg); background: #fff; }
  header:has(nav.show) .btn-menu-mo::after { top: 11rem; transform: rotate(-45deg); background: #fff; }
  header .btn-login-mo { position: absolute; right: 60rem; top: 10rem; display: flex; align-items: center; justify-content: center; width: 40rem; height: 40rem; font-size: 13rem; font-weight: 600; color: #111; }
  header.wht .btn-login-mo { color: #fff; }

  header nav { display: none; position: fixed; left: 0; top: 0; width: 100%; height: 100vh; height: 100dvh; padding-top: var(--head-height); background: #231F20; box-sizing: border-box; overflow-y: auto; text-align: left; }
  header .gnb-w { display: block; }
  header .gnb { flex-direction: column; padding: 20rem 20rem 40rem; }
  header .gnb > li { display: block; padding: 0; height: auto; border-bottom: 1px solid rgba(255,255,255,.1); }
  header .gnb > li .one-link { justify-content: space-between; height: 64rem; font-size: 20rem; color: #fff; }
  header .gnb > li .one-link::after { content: ''; width: 10rem; height: 10rem; border-right: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(45deg); transition: transform .3s ease; }
  header .gnb > li.on .one-link::after { transform: rotate(-135deg); }
  header .gnb > li .one-link span::before { display: none; }
  header .gnb > li .two-depth { display: none; position: static; transform: none; padding: 0 0 16rem; min-width: 0; background: transparent; border-radius: 0; }
  header .gnb > li .two-depth > li:not(:last-child) { padding-bottom: 8rem; margin-bottom: 8rem; border: 0; }
  header .gnb > li .two-depth > li .two-link { font-size: 16rem; color: rgba(255,255,255,.75) !important; }
  header .utils { position: static; transform: none; justify-content: flex-start; padding: 0 20rem 40rem; }
  header .btn-login { padding: 12rem 20rem; border: 1px solid rgba(255,255,255,.4); color: #fff; font-size: 16rem; }
  header .btn-menu-open { display: none; }
  #main header.btm-fix { position: fixed; top: 0; background: transparent; }
  #main header.btm-fix.solid, header:not(.btm-fix) { background: #fff; }
  header .sitemap-wrap { display: none !important; }
}

/* =========================================================
   Section common
   ========================================================= */
#main section .sec-tit .tit { color: #111; }
#main section .sec-tit .tit .line { overflow: hidden; }
#main section .sec-tit .tit .line span { display: block; line-height: 110%; }
#main section .sec-tit .txt { margin-top: 32rem; color: #111; }
#main section .sec-tit.white * { color: #fff; }
@media screen and (max-width: 1024px) {
  #main section .sec-tit .txt { margin-top: 24rem; }
}

/* quick menu */
#main .quick-menu { position: fixed; right: -88rem; bottom: 50%; width: 88rem; transform: translateY(50%); z-index: 1001; opacity: 0; transition: bottom 1s ease, transform 1s ease; }
#main .quick-menu.btm { bottom: 0; transform: translateY(0); }
#main .quick-menu > ul > li:not(:first-child) { border-top: 1px solid rgba(255,255,255,.12); }
#main .quick-menu > ul > li .btn-quick { display: flex; justify-content: center; align-items: center; width: 100%; height: 80rem; color: #fff; background: #231F20; transition: background .4s ease; font-size: 14rem; font-weight: 600; letter-spacing: -0.28rem; }
#main .quick-menu > ul > li .btn-quick:hover { background: var(--brandColor); }
#main .quick-menu > ul > li .btn-quick span { display: block; padding-top: 30rem; line-height: 120%; background: no-repeat center top / 24rem auto; }
#main .quick-menu .btn-srv span { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.6'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E"); }
#main .quick-menu .btn-inquiry span { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.6'%3E%3Cpath d='M4 5h16v11H9l-5 4z'/%3E%3C/svg%3E"); }
#main .quick-menu .btn-call span { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.6'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2z'/%3E%3C/svg%3E"); }
@media screen and (max-width: 1024px) {
  #main .quick-menu { right: -72rem; top: auto; bottom: 0; width: 72rem; transform: translateY(0); transition: transform .5s ease; }
  #main .quick-menu.btm { transform: translateX(-72rem); }
  #main .quick-menu > ul > li .btn-quick { height: 60rem; }
  #main .quick-menu > ul > li .btn-quick span { padding-top: 0; background: none; }
}

/* =========================================================
   Visual
   ========================================================= */
#main .sec-visual { position: relative; background: #231F20; overflow: hidden; min-height: 100vh; }
#main .sec-visual .visual-txt { position: absolute; left: 0; top: 60rem; width: 100%; display: flex; justify-content: center; flex-direction: column; gap: 10rem; z-index: 2; pointer-events: none; }
#main .sec-visual .visual-txt > div { display: flex; justify-content: center; align-items: center; }
#main .sec-visual .visual-txt > div span { display: inline-block; overflow: hidden; padding: 0 .02em; }
#main .sec-visual .visual-txt > div span i { display: block; font-style: normal; font-family: var(--eng-font); font-weight: 600; font-size: 124rem; line-height: 1.08; letter-spacing: 10rem; color: #fff; text-shadow: 0 4rem 32rem rgba(0,0,0,.9), 0 2rem 6rem rgba(0,0,0,.7); transform: translateY(110%); }
#main .sec-visual .visual-txt > div span.sp { width: 48rem; }
#main .sec-visual .visual-txt .line-0 { margin-bottom: 16rem; }
#main .sec-visual .visual-txt .hero-mark { height: 88rem; width: auto; opacity: 0; transform: translateY(20rem); filter: drop-shadow(0 4rem 16rem rgba(0,0,0,.35)); }
#main .sec-visual .swiper { transform: scale(1.2); }
#main .sec-visual .swiper .swiper-slide { overflow: hidden; }
#main .sec-visual .swiper .img-box { position: relative; width: 100%; height: 100vh; }
#main .sec-visual .swiper .img-box::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.7) 0%, rgba(0,0,0,.4) 45%, rgba(0,0,0,.65) 100%); }
#main .sec-visual::after { content: ''; position: absolute; left: 50%; top: 0; width: min(1500rem, 100vw); height: 620rem; transform: translateX(-50%); background: radial-gradient(ellipse at center 40%, rgba(0,0,0,.6) 0%, rgba(0,0,0,.3) 45%, rgba(0,0,0,0) 72%); z-index: 1; pointer-events: none; }
#main .sec-visual .swiper .img-box img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; object-fit: cover; }
#main .sec-visual .visual-sub { position: absolute; left: 0; bottom: 250rem; width: 100%; text-align: center; color: #fff; text-shadow: 0 2rem 12rem rgba(0,0,0,.7); font-size: 20rem; letter-spacing: -0.4rem; font-weight: 500; z-index: 2; opacity: 0; }

#main .sec-visual .ctr-box { position: absolute; left: 0; bottom: 184rem; display: flex; justify-content: center; align-items: center; width: 100%; z-index: 2; opacity: 0; }
#main .sec-visual .ctr-box .swiper-pagination { position: relative; left: auto; top: auto; bottom: auto; display: flex; align-items: center; width: auto; margin-right: 24rem; }
#main .sec-visual .ctr-box .swiper-pagination span { font-size: 18rem; line-height: 96%; font-weight: 600; color: #fff; font-family: var(--eng-font); }
#main .sec-visual .ctr-box .swiper-pagination .progress { position: relative; display: block; margin: 0 24rem; width: 100rem; height: 2px; background: rgba(255,255,255,.4); }
#main .sec-visual .ctr-box .swiper-pagination .progress .bar { display: block; position: absolute; left: 0; top: 0; width: 0; height: 100%; background: #fff; }
#main .sec-visual .ctr-box .btn-arrow { position: relative; top: auto; left: auto; right: auto; margin: 0; width: 9rem; height: 15rem; text-indent: -9999rem; overflow: hidden; }
#main .sec-visual .ctr-box .btn-arrow::after { display: none; }
#main .sec-visual .ctr-box .btn-arrow::before { content: ''; position: absolute; left: 1rem; top: 3rem; width: 8rem; height: 8rem; border-left: 1.5px solid #fff; border-bottom: 1.5px solid #fff; transform: rotate(45deg); }
#main .sec-visual .ctr-box .swiper-button-next { margin-left: 14rem; }
#main .sec-visual .ctr-box .swiper-button-next::before { left: -2rem; transform: rotate(-135deg); }
#main .sec-visual .ctr-box .btn-ctr { position: relative; margin-left: 16rem; width: 10rem; height: 16rem; text-indent: -9999rem; overflow: hidden; }
#main .sec-visual .ctr-box .btn-ctr::before, #main .sec-visual .ctr-box .btn-ctr::after { content: ''; position: absolute; top: 2rem; width: 2px; height: 12rem; background: #fff; }
#main .sec-visual .ctr-box .btn-ctr::before { left: 1rem; }
#main .sec-visual .ctr-box .btn-ctr::after { left: 6rem; }
#main .sec-visual .ctr-box .btn-ctr.btn-play::before { left: 1rem; width: 0; height: 0; background: none; border-left: 9rem solid #fff; border-top: 6rem solid transparent; border-bottom: 6rem solid transparent; }
#main .sec-visual .ctr-box .btn-ctr.btn-play::after { display: none; }
@media screen and (max-width: 1024px) {
  #main .sec-visual .visual-txt { top: 28%; gap: 4rem; }
  #main .sec-visual .visual-txt > div span i { font-size: 44rem; letter-spacing: 3rem; }
  #main .sec-visual .visual-txt > div span.sp { width: 14rem; }
  #main .sec-visual .visual-txt .line-0 { margin-bottom: 8rem; }
  #main .sec-visual .visual-txt .hero-mark { height: 48rem; }
  #main .sec-visual .swiper .img-box { height: 100vh; min-height: 400rem; }
  #main .sec-visual .visual-sub { bottom: 110rem; font-size: 15rem; }
  #main .sec-visual .ctr-box { bottom: 0; }
  #main .sec-visual .ctr-box .swiper-pagination { margin-right: 18rem; }
  #main .sec-visual .ctr-box .swiper-pagination span { font-size: 16rem; }
  #main .sec-visual .ctr-box .swiper-pagination .progress { margin: 0 16rem; width: 50rem; }
}

/* =========================================================
   Why Healing Point (sec-points)
   ========================================================= */
#main .sec-points { position: relative; padding: 200rem 0 40rem; background: #fff; }
#main .sec-points .points-top { display: flex; justify-content: space-between; align-items: flex-end; gap: 64rem; margin-bottom: 120rem; }
#main .sec-points .cert-box { position: relative; width: 560rem; flex: none; }
#main .sec-points .cert-box img { display: block; width: 100%; box-shadow: 24rem 24rem 48rem rgba(0,0,0,.14); }
#main .sec-points .cert-box .cert-cap { display: block; margin-top: 16rem; color: #6E7072; }
#main .sec-points .point-list { display: grid; grid-template-columns: repeat(5, 1fr); border-top: 2px solid #231F20; }
#main .sec-points .point-list li { position: relative; padding: 40rem 32rem 48rem 0; border-right: 1px solid rgba(35,31,32,.12); }
#main .sec-points .point-list li:not(:first-child) { padding-left: 32rem; }
#main .sec-points .point-list li:last-child { border-right: 0; padding-right: 0; }
#main .sec-points .point-list .num { display: block; font-family: var(--eng-font); font-size: 20rem; font-weight: 500; letter-spacing: 1rem; color: var(--brandColor); }
#main .sec-points .point-list strong { display: block; margin-top: 28rem; min-height: calc(26rem * 1.4 * 2); color: #231F20; }
#main .sec-points .point-list p { margin-top: 20rem; color: #535455; }
@media screen and (max-width: 1024px) {
  #main .sec-points { padding: 120rem 0 0; }
  #main .sec-points .points-top { flex-direction: column; align-items: stretch; gap: 48rem; margin-bottom: 64rem; }
  #main .sec-points .cert-box { width: 100%; }
  #main .sec-points .cert-box img { box-shadow: 12rem 12rem 24rem rgba(0,0,0,.12); }
  #main .sec-points .point-list { grid-template-columns: 1fr; }
  #main .sec-points .point-list li { padding: 28rem 0 32rem; border-right: 0; border-bottom: 1px solid rgba(35,31,32,.12); }
  #main .sec-points .point-list li:not(:first-child) { padding-left: 0; }
  #main .sec-points .point-list strong { margin-top: 12rem; min-height: 0; }
  #main .sec-points .point-list strong br { display: none; }
  #main .sec-points .point-list p { margin-top: 10rem; }
}

/* =========================================================
   Program (sec-service)
   ========================================================= */
#main .sec-service { position: relative; padding: 240rem 0; }
#main .sec-service .layout { position: relative; }
#main .sec-service .sec-tit { position: absolute; left: 0; top: 0; }
#main .sec-service .cont-wrap { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 24rem; }
#main .sec-service .cont-wrap > div { position: relative; width: calc(50% - 12rem); }
#main .sec-service .cont-box .img-box { position: relative; overflow: hidden; }
#main .sec-service .cont-box .img-box img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; object-fit: cover; }
#main .sec-service .cont-box .info-box { position: absolute; padding: 64rem; display: block; box-sizing: border-box; background: rgba(248,244,240,.72); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); }
#main .sec-service .cont-box .info-box h3 { position: relative; padding-right: 20rem; color: #231F20; }
#main .sec-service .cont-box .info-box h3::before { content: ''; position: absolute; right: 2rem; top: 10rem; width: 8rem; height: 8rem; border-right: 1.5px solid #231F20; border-top: 1.5px solid #231F20; transform: rotate(45deg); }
#main .sec-service .cont-box .info-box p { margin-top: 6rem; color: #231F20; }
#main .sec-service .cont-box .info-box .category { position: relative; padding-top: 81rem; }
#main .sec-service .cont-box .info-box .category::before { content: ''; position: absolute; left: 0; top: 40rem; width: 48rem; height: 1px; background: #231F20; }
#main .sec-service .cont-box .info-box .category strong { color: #231F20; }
#main .sec-service .cont-box .info-box .category ul { display: flex; flex-wrap: wrap; gap: 4rem; margin-top: 10rem; }
#main .sec-service .cont-box .info-box .category ul li { padding: 3rem 11rem; border: 1px solid #231F20; color: #231F20; white-space: nowrap; }
#main .sec-service .cont-box.cont-1 { margin-left: calc(50% + 12rem); }
#main .sec-service .cont-box.cont-1 .img-box { width: 576rem; height: 640rem; }
#main .sec-service .cont-box.cont-1 .info-box { left: 366rem; bottom: 0; }
#main .sec-service .cont-box.cont-2 { margin-top: -160rem; }
#main .sec-service .cont-box.cont-2 .img-box { width: 100%; height: 480rem; }
#main .sec-service .cont-box.cont-2 .info-box { left: 0; top: 290rem; }
#main .sec-service .cont-box.cont-3 .img-box { width: 426rem; height: 640rem; }
#main .sec-service .cont-box.cont-3 .info-box { left: 336rem; bottom: 0; }
#main .sec-service .btn-area { margin-top: 20rem; }
@media screen and (max-width: 1200px) { #main .sec-service .cont-box .info-box .category ul li { padding: 3rem 8rem; } }
@media screen and (max-width: 1024px) {
  #main .sec-service { padding: 120rem 0 80rem; }
  #main .sec-service .sec-tit { position: relative; left: auto; top: auto; margin-bottom: 64rem; }
  #main .sec-service .cont-wrap { flex-direction: column; gap: 40rem; }
  #main .sec-service .cont-wrap > div { width: 100%; }
  #main .sec-service .cont-box .info-box { padding: 32rem; width: 280rem; }
  #main .sec-service .cont-box .info-box h3 { padding-right: 14rem; }
  #main .sec-service .cont-box .info-box h3::before { top: 8rem; }
  #main .sec-service .cont-box .info-box .category { padding-top: 65rem; }
  #main .sec-service .cont-box .info-box .category::before { top: 32rem; }
  #main .sec-service .cont-box.cont-1 { margin-left: 0; }
  #main .sec-service .cont-box.cont-1 .img-box { width: 80%; height: 0; padding-bottom: 89%; }
  #main .sec-service .cont-box.cont-1 .info-box { left: auto; right: 0; bottom: -135rem; }
  #main .sec-service .cont-box.cont-2 { margin-top: 178rem; margin-bottom: 240rem; }
  #main .sec-service .cont-box.cont-2 .img-box { width: 100%; height: 0; padding-bottom: 66%; }
  #main .sec-service .cont-box.cont-2 .info-box { left: 0; top: auto; bottom: -200rem; }
  #main .sec-service .cont-box.cont-3 .img-box { width: 68.5%; height: 0; padding-bottom: 103%; }
  #main .sec-service .cont-box.cont-3 .info-box { left: auto; right: 0; bottom: -100rem; }
  #main .sec-service .btn-area { margin-top: 160rem; }
}

/* =========================================================
   Membership
   ========================================================= */
#main .sec-membership { position: relative; padding: 240rem 0; overflow: hidden; margin-bottom: -1px; }
#main .sec-membership .bg { position: absolute; left: 0; top: 0; width: 100%; height: calc(100% + 200rem); object-fit: cover; z-index: -1; filter: brightness(.5) saturate(.8); }
#main .sec-membership::before { content: ''; position: absolute; inset: 0; background: rgba(35,31,32,.35); z-index: 0; }
#main .sec-membership .layout { position: relative; z-index: 1; }
#main .sec-membership .sec-tit { margin-bottom: 120rem; }
#main .sec-membership .swiper { margin: 0; width: 1286rem; }
#main .sec-membership .cont-box { position: relative; display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start; padding: 64rem; height: 400rem; box-sizing: border-box; box-shadow: 16rem 16rem 16rem 0 rgba(0,0,0,.1); background: #231F20; overflow: hidden; }
#main .sec-membership .cont-box p { position: relative; z-index: 2; color: #fff; }
#main .sec-membership .cont-box p .label { display: block; margin-bottom: 14rem; font-family: var(--eng-font); font-size: 14rem; letter-spacing: 2rem; text-transform: uppercase; color: var(--brandColor); }
#main .sec-membership .cont-box .price { position: relative; z-index: 2; margin-top: auto; margin-bottom: 20rem; font-size: 16rem; color: rgba(255,255,255,.8); letter-spacing: -0.32rem; }
#main .sec-membership .cont-box .price em { font-family: var(--eng-font); font-size: 26rem; font-weight: 600; color: #fff; margin: 0 2rem; }
#main .sec-membership .cont-box a { position: relative; z-index: 2; display: inline-block; padding: 9rem 24rem; color: #fff; background: #70553D; transition: background .3s ease; }
#main .sec-membership .cont-box a:hover { background: var(--brandColor); }
#main .sec-membership .cont-box img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; object-fit: cover; opacity: .28; filter: grayscale(.3); transition: transform 1.2s ease; }
#main .sec-membership .cont-box:hover img { transform: scale(1.06); }
#main .sec-membership .cont-box::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(35,31,32,.2) 0%, rgba(35,31,32,.85) 100%); z-index: 1; }
@media screen and (max-width: 1024px) {
  #main .sec-membership { padding: 120rem 0; }
  #main .sec-membership .sec-tit { margin-bottom: 80rem; }
  #main .sec-membership .swiper { margin-left: -20rem; padding: 0 20rem; width: calc(100% + 40rem); }
  #main .sec-membership .cont-box { padding: 40rem; height: 340rem; }
  #main .sec-membership .cont-box a { padding: 11rem 24rem; }
  #main .sec-membership .swiper-scrollbar { position: relative; left: auto; top: auto; margin: 40rem 0 0; opacity: 1 !important; height: 1px; background: rgba(255,255,255,.2); border-radius: 0; }
  #main .sec-membership .swiper-scrollbar-drag { background: var(--brandColor); border-radius: 0; }
}

/* =========================================================
   Facility (sec-ownthe100)
   ========================================================= */
#main .sec-ownthe100 { padding: 200rem 0; background: #231F20; overflow: hidden; }
#main .sec-ownthe100 .sec-tit .txt { margin-top: 40rem; }
#main .sec-ownthe100 .row { display: flex; gap: 24rem; margin-bottom: 24rem; }
#main .sec-ownthe100 .row:last-child { margin-bottom: 0; }
#main .sec-ownthe100 .cont-box { position: relative; overflow: hidden; background: #1a1718; }
#main .sec-ownthe100 .cont-box a { position: relative; z-index: 1; display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start; padding: 64rem; height: 400rem; box-sizing: border-box; }
#main .sec-ownthe100 .cont-box .txt-box .tit { font-size: 40rem; line-height: 110%; color: #fff; font-weight: 500; text-transform: uppercase; font-family: var(--eng-font); }
#main .sec-ownthe100 .cont-box .txt-box .txt { color: #fff; }
#main .sec-ownthe100 .cont-box .btn-arrow { position: relative; padding-right: 28rem; color: #fff; }
#main .sec-ownthe100 .cont-box .btn-arrow::before { content: ''; position: absolute; right: 4rem; top: 50%; margin-top: -5rem; width: 9rem; height: 9rem; border-right: 1.5px solid #fff; border-top: 1.5px solid #fff; transform: rotate(45deg); }
#main .sec-ownthe100 .cont-box .bg { position: absolute; left: 0; top: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1); transition: transform 1s ease; filter: brightness(.62); }
#main .sec-ownthe100 .cont-box a:hover + .bg, #main .sec-ownthe100 .cont-box a:hover ~ .bg { transform: scale(1.1); }
#main .sec-ownthe100 .row-1 > .sec-tit { width: calc(100% - 1152rem); }
#main .sec-ownthe100 .row-1 > .box-1 { width: 876rem; }
#main .sec-ownthe100 .row-1 > .box-2 { width: 276rem; }
#main .sec-ownthe100 .row-2 > div:nth-child(1) { width: 59%; }
#main .sec-ownthe100 .row-2 > div:nth-child(2) { width: 41%; }

#main .sec-ownthe100 .facility-detail { margin: 96rem 0 160rem; }
#main .sec-ownthe100 .spec-list { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgba(255,255,255,.2); }
#main .sec-ownthe100 .spec-list li { padding: 32rem 24rem 32rem 0; border-bottom: 1px solid rgba(255,255,255,.12); }
#main .sec-ownthe100 .spec-list li strong { display: block; font-family: var(--eng-font); font-size: 22rem; font-weight: 500; color: var(--brandColor); letter-spacing: .5rem; text-transform: uppercase; }
#main .sec-ownthe100 .spec-list li span { display: block; margin-top: 8rem; font-size: 16rem; line-height: 150%; color: rgba(255,255,255,.8); letter-spacing: -0.32rem; }

#main .sec-ownthe100 .row-3 { flex-direction: column; gap: 64rem; }
#main .sec-ownthe100 .sec-tit.small .txt { margin-top: 24rem; }
#main .sec-ownthe100 .trainer-wrap { display: flex; flex-wrap: wrap; gap: 24rem; }
#main .sec-ownthe100 .trainer-wrap .cont-box { width: calc(50% - 12rem); }
#main .sec-ownthe100 .cont-box.trainer a { height: 480rem; }
#main .sec-ownthe100 .cont-box.trainer .txt-box { max-width: 60%; }
#main .sec-ownthe100 .cont-box.trainer .tit { font-family: "Pretendard", sans-serif; font-weight: 600; font-size: 36rem; letter-spacing: -1rem; text-transform: none; }
#main .sec-ownthe100 .cont-box.trainer .tit small { font-size: 18rem; font-weight: 500; margin-left: 6rem; color: rgba(255,255,255,.7); }
#main .sec-ownthe100 .cont-box.trainer .txt { margin-top: 10rem; color: rgba(255,255,255,.9); }
#main .sec-ownthe100 .cont-box.trainer .cert { margin-top: 24rem; padding-top: 20rem; border-top: 1px solid rgba(255,255,255,.3); color: rgba(255,255,255,.75); }
#main .sec-ownthe100 .cont-box.trainer .cert li { position: relative; padding-left: 12rem; }
#main .sec-ownthe100 .cont-box.trainer .cert li::before { content: ''; position: absolute; left: 0; top: 9rem; width: 4rem; height: 4rem; background: var(--brandColor); }
#main .sec-ownthe100 .cont-box.trainer .bg { object-position: center top; filter: brightness(.55); }
#main .sec-ownthe100 .cont-box.trainer::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(35,31,32,.85) 0%, rgba(35,31,32,.35) 60%, rgba(35,31,32,0) 100%); z-index: 0; pointer-events: none; }
@media screen and (max-width: 1024px) {
  #main .sec-ownthe100 { padding: 120rem 0; }
  #main .sec-ownthe100 .sec-tit { margin-bottom: 64rem; }
  #main .sec-ownthe100 .sec-tit .txt { margin-top: 24rem; }
  #main .sec-ownthe100 .row { flex-direction: column; gap: 0; margin-bottom: 0; }
  #main .sec-ownthe100 .cont-box { margin-bottom: 24rem; }
  #main .sec-ownthe100 .cont-box:last-of-type { margin-bottom: 0; }
  #main .sec-ownthe100 .cont-box a { height: 420rem; padding: 40rem; }
  #main .sec-ownthe100 .cont-box .txt-box .tit { font-size: 32rem; }
  #main .sec-ownthe100 .cont-box .txt-box .txt { margin-top: 4rem; }
  #main .sec-ownthe100 .row-1 > .sec-tit, #main .sec-ownthe100 .row-1 > .box-1 { width: 100%; }
  #main .sec-ownthe100 .row-1 > .box-2 { display: none; }
  #main .sec-ownthe100 .row-2 > div:nth-child(1), #main .sec-ownthe100 .row-2 > div:nth-child(2) { width: 100%; }
  #main .sec-ownthe100 .facility-detail { margin: 64rem 0 100rem; }
  #main .sec-ownthe100 .spec-list { grid-template-columns: repeat(2, 1fr); }
  #main .sec-ownthe100 .spec-list li { padding: 20rem 16rem 20rem 0; }
  #main .sec-ownthe100 .spec-list li strong { font-size: 18rem; }
  #main .sec-ownthe100 .spec-list li span { font-size: 14rem; }
  #main .sec-ownthe100 .row-3 { gap: 0; }
  #main .sec-ownthe100 .row-3 .sec-tit { margin-bottom: 40rem; }
  #main .sec-ownthe100 .trainer-wrap { flex-direction: column; gap: 0; }
  #main .sec-ownthe100 .trainer-wrap .cont-box { width: 100%; }
  #main .sec-ownthe100 .cont-box.trainer a { height: auto; min-height: 420rem; }
  #main .sec-ownthe100 .cont-box.trainer .txt-box { max-width: 100%; }
  #main .sec-ownthe100 .cont-box.trainer .tit { font-size: 28rem; }
  #main .sec-ownthe100 .cont-box.trainer::after { background: linear-gradient(180deg, rgba(35,31,32,.85) 0%, rgba(35,31,32,.5) 100%); }
}

/* =========================================================
   Review (sec-now)
   ========================================================= */
#main .sec-now { padding: 200rem 0 240rem; background: #F1E8E0; overflow: hidden; }
#main .sec-now .list-top { display: flex; justify-content: space-between; align-items: end; margin-bottom: 96rem; }
#main .sec-now .list-top .btn-more { padding: 8rem 23rem; border: 1px solid #231F20; color: #231F20; box-sizing: border-box; transition: all .3s ease; }
#main .sec-now .list-top .btn-more:hover { background: #231F20; color: #fff; }
#main .sec-now .review-stats { display: flex; gap: 24rem; margin-bottom: 96rem; }
#main .sec-now .review-stats .stat { flex: 1; padding: 28rem 32rem; background: rgba(255,255,255,.55); border: 1px solid rgba(35,31,32,.08); }
#main .sec-now .review-stats .stat strong { display: block; font-family: var(--eng-font); font-size: 44rem; font-weight: 500; line-height: 1; color: #231F20; }
#main .sec-now .review-stats .stat span { display: block; margin-top: 10rem; font-size: 15rem; color: #6E7072; letter-spacing: -0.3rem; }
#main .sec-now .swiper { overflow: visible; }
#main .sec-now .swiper a, #main .sec-now .review-item a { position: relative; display: block; padding: 32rem 0 146rem; height: 360rem; border-top: 2px solid #231F20; box-sizing: border-box; }
#main .sec-now .swiper .tit, #main .sec-now .review-item .tit { color: #231F20; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
#main .sec-now .swiper .desc, #main .sec-now .review-item .desc { margin-top: 20rem; color: #231F20; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
#main .sec-now .swiper .date, #main .sec-now .review-item .date { position: absolute; left: 0; bottom: 0; padding-right: 32rem; color: #535455; }
#main .sec-now .swiper .date::before, #main .sec-now .review-item .date::before { content: ''; position: absolute; right: 8rem; top: 5rem; width: 7rem; height: 7rem; border-right: 1.5px solid #535455; border-top: 1.5px solid #535455; transform: rotate(45deg); }
#main .sec-now .swiper .tags, #main .sec-now .review-item .tags { position: absolute; right: 0; bottom: 0; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6rem; max-width: 65%; }
#main .sec-now .swiper .tags span, #main .sec-now .review-item .tags span { padding: 4rem 10rem; font-size: 13rem; letter-spacing: -0.26rem; color: #231F20; background: rgba(255,255,255,.7); border: 1px solid rgba(35,31,32,.15); white-space: nowrap; }
#main .sec-now .swiper a:hover .tit, #main .sec-now .review-item a:hover .tit { text-decoration: underline; }
@media screen and (max-width: 1024px) {
  #main .sec-now { padding: 120rem 0; }
  #main .sec-now .list-top { flex-direction: column; align-items: start; margin-bottom: 56rem; }
  #main .sec-now .list-top .btn-more { margin-top: 32rem; padding: 11rem 23rem; }
  #main .sec-now .review-stats { flex-wrap: wrap; gap: 12rem; margin-bottom: 64rem; }
  #main .sec-now .review-stats .stat { flex: 0 0 calc(50% - 6rem); box-sizing: border-box; padding: 20rem; }
  #main .sec-now .review-stats .stat strong { font-size: 32rem; }
  #main .sec-now .swiper { margin-left: -20rem; padding: 0 20rem; width: calc(100% + 40rem); }
  #main .sec-now .swiper a, #main .sec-now .review-item a { height: 320rem; padding-bottom: 110rem; }
  #main .sec-now .swiper-scrollbar { position: relative; left: auto; top: auto; margin: 40rem 0 0; opacity: 1 !important; height: 1px; background: rgba(0,0,0,.12); border-radius: 0; }
  #main .sec-now .swiper-scrollbar-drag { background: #8F6B4A; border-radius: 0; }
}

/* =========================================================
   Info (Visit us)
   ========================================================= */
#main .sec-info { padding: 200rem 0 240rem; background: #fff; }
#main .sec-info .sec-tit { margin-bottom: 96rem; }
#main .sec-info .info-grid { display: flex; gap: 64rem; align-items: stretch; }
#main .sec-info .info-col { flex: 1; }
#main .sec-info .info-list > div { display: flex; gap: 32rem; padding: 28rem 0; border-top: 1px solid rgba(35,31,32,.12); }
#main .sec-info .info-list > div:last-child { border-bottom: 1px solid rgba(35,31,32,.12); }
#main .sec-info .info-list dt { width: 120rem; flex: none; color: #6E7072; }
#main .sec-info .info-list dd { flex: 1; color: #231F20; }
#main .sec-info .info-list dd small { display: block; margin-top: 6rem; color: #6E7072; }
#main .sec-info .info-list dd a { text-decoration: underline; text-underline-offset: 4rem; }
#main .sec-info .hours li { display: flex; justify-content: space-between; max-width: 360rem; }
#main .sec-info .hours li em { font-family: var(--eng-font); font-weight: 500; }
#main .sec-info .btn-area { justify-content: flex-start; margin-top: 48rem; }
#main .sec-info .map-box { flex: 1; min-height: 560rem; background: #EDEDED; }
#main .sec-info .map-box iframe { display: block; width: 100%; height: 100%; min-height: 560rem; border: 0; filter: grayscale(.25); }
@media screen and (max-width: 1024px) {
  #main .sec-info { padding: 120rem 0; }
  #main .sec-info .sec-tit { margin-bottom: 56rem; }
  #main .sec-info .info-grid { flex-direction: column; gap: 40rem; }
  #main .sec-info .info-list > div { gap: 16rem; padding: 20rem 0; }
  #main .sec-info .info-list dt { width: 72rem; }
  #main .sec-info .map-box, #main .sec-info .map-box iframe { min-height: 320rem; }
  #main .sec-info .btn-area { margin-top: 32rem; }
}

/* =========================================================
   Footer
   ========================================================= */
footer { padding: 80rem 72rem; background: #231F20; }
.footer-logo { color: #fff; }
.footer-logo .l1 { font-size: 22rem; letter-spacing: 5rem; }
.footer-logo .l2 { font-size: 18rem; letter-spacing: 8rem; padding-left: 8rem; }
footer .footer-cont { position: relative; display: flex; padding-top: 60rem; margin-top: 60rem; border-top: 1px solid rgba(255,255,255,.15); }
footer .footer-cont .left { display: flex; flex-wrap: wrap; width: calc(100% - 240rem); }
footer .footer-cont .left > * { width: 50%; }
footer .footer-cont .right { display: flex; flex-direction: column; justify-content: space-between; width: 240rem; }
footer .policy-link { display: flex; flex-direction: column; align-items: flex-start; gap: 12rem; }
footer .policy-link a { display: block; font-size: 16rem; line-height: 150%; color: #D0D1D2; letter-spacing: -0.32rem; }
footer .policy-link a strong { color: #fff; font-weight: 600; }
footer .contact-box > strong { display: block; margin-bottom: 16rem; font-size: 16rem; line-height: 150%; color: #F1E8E0; letter-spacing: -0.32rem; font-weight: 600; text-transform: uppercase; }
footer .contact-box ul { display: flex; flex-direction: column; gap: 4rem; }
footer .contact-box ul li { font-size: 16rem; line-height: 150%; color: #D0D1D2; letter-spacing: -0.32rem; }
footer .family-site { position: relative; }
footer .family-site .btn { position: relative; display: flex; padding: 0 20rem; width: 240rem; font-size: 16rem; line-height: 48rem; color: #F1E8E0; font-weight: 500; letter-spacing: -0.32rem; background: #111; box-sizing: border-box; border: 1px solid #6E7072; }
footer .family-site .btn::before, footer .family-site .btn::after { content: ''; position: absolute; right: 16rem; top: 50%; width: 14rem; height: 1.5px; background: #F1E8E0; transition: transform .5s ease; }
footer .family-site .btn::after { transform: rotate(90deg); }
footer .family-site .btn.on::after { transform: rotate(0); }
footer .family-site .site-list { display: none; position: absolute; left: 0; bottom: 100%; padding: 34rem 24rem; width: 100%; background: #F1E8E0; box-sizing: border-box; }
footer .family-site .site-list ul { display: flex; flex-direction: column; gap: 20rem; }
footer .family-site .site-list ul li a { display: block; font-size: 16rem; line-height: 150%; color: #111; letter-spacing: -0.32rem; font-weight: 500; }
footer .copyright { width: 100%; margin-top: 40rem; font-size: 16rem; line-height: 150%; color: #D0D1D2; letter-spacing: -0.32rem; }
@media screen and (max-width: 1024px) {
  footer { padding: 60rem 20rem 100rem; }
  footer .footer-cont { flex-direction: column; gap: 40rem; padding-top: 40rem; margin-top: 40rem; }
  footer .footer-cont .left { width: 100%; flex-direction: column; gap: 32rem; }
  footer .footer-cont .left > * { width: 100%; }
  footer .footer-cont .right { width: 100%; }
  footer .family-site .btn { width: 100%; }
  footer .copyright { margin-top: 0; font-size: 13rem; }
}


/* ------------------------------------------------------------
   기구 브랜드 파트너 마키 (히어로 아래)
------------------------------------------------------------ */
#main .brand-strip { position: relative; background: #fff; padding: 34px 0 30px; border-bottom: 1px solid #ECECEC; }
#main .brand-label { text-align: center; font-family: var(--eng-font); font-weight: 600; font-size: 12px; letter-spacing: .22em; color: #9A9A9A; margin-bottom: 22px; }
#main .brand-marquee { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
#main .brand-track { display: flex; align-items: center; gap: 72px; width: max-content; padding-left: 72px; margin: 0; list-style: none; animation: brandRun 34s linear infinite; will-change: transform; }
#main .brand-marquee:hover .brand-track { animation-play-state: paused; }
#main .brand-track li { flex: none; }
#main .brand-track img { display: block; height: 30px; width: auto; opacity: .78; transition: opacity .3s; }
#main .brand-track li:hover img { opacity: 1; }
@keyframes brandRun { to { transform: translate3d(calc(-100% / 3), 0, 0); } }
@media (max-width: 1024px) {
  #main .brand-strip { padding: 26px 0 22px; }
  #main .brand-label { font-size: 11px; margin-bottom: 16px; }
  #main .brand-track { gap: 48px; padding-left: 48px; animation-duration: 26s; }
  #main .brand-track img { height: 24px; }
}
@media (prefers-reduced-motion: reduce) { #main .brand-track { animation: none; } }


/* ------------------------------------------------------------
   첫 화면: 헤더 상단 고정 + 히어로 하단 브랜드 마키 오버레이
------------------------------------------------------------ */
#main .sec-visual .visual-txt { top: calc(var(--head-height) + 40rem); }
#main .brand-strip.in-hero { position: absolute; left: 0; right: 0; bottom: 0; z-index: 3; background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.55) 100%); border: 0; padding: 30px 0 28px; }
#main .brand-strip.in-hero .brand-label { color: rgba(255,255,255,.55); margin-bottom: 18px; }
#main .brand-strip.in-hero .brand-track img { height: 28px; opacity: .8; }
#main .brand-strip.in-hero .brand-track li:hover img { opacity: 1; }
#main .sec-visual .visual-sub { bottom: 300rem; }
#main .sec-visual .ctr-box { bottom: 230rem; }
@media screen and (max-width: 1024px) {
  #main .sec-visual .visual-txt { top: 26%; }
  #main .brand-strip.in-hero { padding: 22px 0 20px; }
  #main .brand-strip.in-hero .brand-label { font-size: 10px; margin-bottom: 12px; }
  #main .brand-strip.in-hero .brand-track img { height: 22px; }
  #main .sec-visual .visual-sub { bottom: 200rem; }
  #main .sec-visual .ctr-box { bottom: 100rem; }
}

/* WHY HEALING POINT: 제목 + 인증패 가운데 정렬 (문구·01~05 목록 삭제) */
#main .sec-points { padding: 160rem 0 160rem; }
#main .sec-points .points-top { flex-direction: column; align-items: center; justify-content: center; gap: 56rem; margin-bottom: 0; text-align: center; }
#main .sec-points .sec-tit { text-align: center; }
#main .sec-points .cert-box { margin: 0 auto; max-width: 760rem; width: 100%; text-align: center; }
#main .sec-points .cert-box img { display: block; width: 100%; height: auto; }
#main .sec-points .cert-cap { display: block; margin-top: 28rem; font-size: 28rem; font-weight: 700; letter-spacing: -0.5rem; color: #111; background: none; padding: 0; }
@media screen and (max-width: 1024px) {
  #main .sec-points { padding: 90rem 0 90rem; }
  #main .sec-points .points-top { gap: 32rem; }
  #main .sec-points .cert-box { max-width: 100%; }
  #main .sec-points .cert-cap { font-size: 18rem; margin-top: 18rem; }
}

/* WHY 제목 삭제 후 여백 조정 */
#main .sec-points { padding: 120rem 0 120rem; }
@media screen and (max-width: 1024px) { #main .sec-points { padding: 70rem 0 70rem; } }


/* Program: 2카드 구성 (PT / 24시 헬스이용권) */
#main .sec-service { padding: 200rem 0 220rem; }
#main .sec-service .cont-box.cont-3 { margin-top: -120rem; }
#main .sec-service .cont-box.cont-3 .img-box { width: 520rem; height: 620rem; }
#main .sec-service .cont-box.cont-3 .info-box { left: 300rem; bottom: 0; }
@media screen and (max-width: 1024px) {
  #main .sec-service { padding: 110rem 0 80rem; }
  #main .sec-service .cont-box.cont-3 { margin-top: 0; }
}

/* 모바일 프로그램 카드: 겹침 없이 사진 + 아래 정보 박스로 단순화 */
@media screen and (max-width: 1024px) {
  #main .sec-service { padding: 100rem 0 90rem; }
  #main .sec-service .sec-tit { margin-bottom: 40rem; }
  #main .sec-service .cont-wrap { gap: 48rem; }
  #main .sec-service .cont-box.cont-1, #main .sec-service .cont-box.cont-3 { margin: 0; }
  #main .sec-service .cont-box .cont { position: relative; }
  #main .sec-service .cont-box.cont-1 .img-box, #main .sec-service .cont-box.cont-3 .img-box { width: 100%; height: 0; padding-bottom: 64%; }
  #main .sec-service .cont-box.cont-1 .info-box, #main .sec-service .cont-box.cont-3 .info-box { position: relative; left: auto; right: auto; top: auto; bottom: auto; width: 100%; padding: 28rem 24rem 30rem; background: #F8F4F0; backdrop-filter: none; -webkit-backdrop-filter: none; }
  #main .sec-service .cont-box .info-box .category { padding-top: 48rem; }
  #main .sec-service .cont-box .info-box .category::before { top: 22rem; }
  #main .sec-service .btn-area { margin-top: 48rem; }
}

/* NASM 인증패: 비껴진 그림자 제거, 은은한 중앙 그림자 */
#main .sec-points .cert-box img { box-shadow: 0 18rem 48rem rgba(0,0,0,.14); border-radius: 6rem; }
@media screen and (max-width: 1024px) { #main .sec-points .cert-box img { box-shadow: 0 10rem 28rem rgba(0,0,0,.12); } #main .sec-points .cert-box { padding: 0 8rem; } }

/* 시설 안내 제목(한글) */
#main .sec-ownthe100 .sec-tit .tit.ko-tit { font-family: "Pretendard", sans-serif; font-weight: 700; letter-spacing: -2rem; text-transform: none; font-size: 72rem; }
@media screen and (max-width: 1024px) { #main .sec-ownthe100 .sec-tit .tit.ko-tit { font-size: 38rem; letter-spacing: -1rem; } }

/* 시설 안내: 스트레칭 · 샤워 행 추가 */
#main .sec-ownthe100 .row-2b > div:nth-child(1) { width: 41%; }
#main .sec-ownthe100 .row-2b > div:nth-child(2) { width: 59%; }
#main .sec-ownthe100 .row-2b .bg { object-position: center 40%; }
@media screen and (max-width: 1024px) { #main .sec-ownthe100 .row-2b > div { width: 100%; } }


/* 시설 안내: 버튼·큰 제목 없이 사진 + 좌측 하단 작은 라벨 */
#main .sec-ownthe100 .cont-box .cap { position: relative; z-index: 1; display: flex; align-items: flex-end; height: 400rem; padding: 32rem 36rem; box-sizing: border-box; pointer-events: none; }
#main .sec-ownthe100 .cont-box .cap span { display: inline-block; padding: 7rem 14rem; font-family: var(--eng-font); font-size: 14rem; font-weight: 500; letter-spacing: 2rem; text-transform: uppercase; color: #fff; border: 1px solid rgba(255,255,255,.55); background: rgba(0,0,0,.28); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
#main .sec-ownthe100 .cont-box .bg { filter: brightness(.82); }
#main .sec-ownthe100 .cont-box:hover .bg { transform: scale(1.05); }
#main .sec-ownthe100 .row-1 > .box-2 .bg { object-position: center; }
#main .sec-ownthe100 .row-2c > div:nth-child(1) { width: 59%; }
#main .sec-ownthe100 .row-2c > div:nth-child(2) { width: 41%; }
#main .sec-ownthe100 .row-2c .bg { object-position: center 45%; }
#main .sec-ownthe100 .row-2c + .row-3, #main .sec-ownthe100 .row-2c { margin-bottom: 0; }
#main .sec-ownthe100 .row-3 { margin-top: 160rem; }
@media screen and (max-width: 1024px) {
  #main .sec-ownthe100 .cont-box .cap { height: 300rem; padding: 20rem; }
  #main .sec-ownthe100 .cont-box .cap span { font-size: 12rem; padding: 5rem 10rem; }
  #main .sec-ownthe100 .row-1 > .box-2 { display: block; }
  #main .sec-ownthe100 .row-2c > div { width: 100%; }
  #main .sec-ownthe100 .row-3 { margin-top: 64rem; }
}

/* 시설 안내: 한 줄 제목 + 3열 그리드 + 더보기 */
#main .sec-ownthe100 .fac-tit { margin-bottom: 48rem; }
#main .sec-ownthe100 .fac-tit .tit.ko-tit { font-size: 64rem; }
#main .sec-ownthe100 .row-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16rem; margin-bottom: 0; }
#main .sec-ownthe100 .row-grid .cont-box { width: auto; margin: 0; }
#main .sec-ownthe100 .row-grid .cont-box .cap { height: auto; aspect-ratio: 4 / 3; padding: 20rem 22rem; }
#main .sec-ownthe100 .row-grid .cont-box .cap span { font-size: 12rem; padding: 5rem 10rem; letter-spacing: 1.5rem; }
#main .sec-ownthe100 .row-grid .cont-box.extra { display: none; }
#main .sec-ownthe100 .row-grid.open .cont-box.extra { display: block; }
#main .sec-ownthe100 .more-btn { position: absolute; inset: 0; z-index: 2; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4rem; width: 100%; height: 100%; background: rgba(0,0,0,.55); color: #fff; cursor: pointer; transition: background .3s; }
#main .sec-ownthe100 .more-btn:hover { background: rgba(0,0,0,.4); }
#main .sec-ownthe100 .more-btn strong { font-family: var(--eng-font); font-size: 40rem; font-weight: 500; line-height: 1; }
#main .sec-ownthe100 .more-btn span { font-size: 15rem; font-weight: 600; letter-spacing: -0.3rem; }
#main .sec-ownthe100 .row-grid.open .more-btn { display: none; }
#main .sec-ownthe100 .row-grid + .row-3 { margin-top: 160rem; }
@media screen and (max-width: 1024px) {
  #main .sec-ownthe100 .fac-tit { margin-bottom: 24rem; }
  #main .sec-ownthe100 .fac-tit .tit.ko-tit { font-size: 36rem; }
  #main .sec-ownthe100 .row-grid { gap: 8rem; }
  #main .sec-ownthe100 .row-grid .cont-box { margin-bottom: 0; }
  #main .sec-ownthe100 .row-grid .cont-box .cap { aspect-ratio: 1 / 1; padding: 10rem; }
  #main .sec-ownthe100 .row-grid .cont-box .cap span { font-size: 9rem; padding: 3rem 6rem; letter-spacing: .8rem; }
  #main .sec-ownthe100 .more-btn strong { font-size: 24rem; }
  #main .sec-ownthe100 .more-btn span { font-size: 12rem; }
  #main .sec-ownthe100 .row-grid + .row-3 { margin-top: 64rem; }
}

/* 후기 자동 슬라이드: 등속 이동 */
#main .sec-now .swiper-wrapper { transition-timing-function: linear !important; }
#main .sec-now .swiper-slide { height: auto; }

/* 후기: 왼쪽으로 끊김 없이 흐르는 마키 (6개 × 2세트) */
#main .sec-now .review-marquee { overflow: hidden; margin: 0 -20rem; padding: 0 20rem; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
#main .sec-now .review-track { display: flex; gap: 58rem; width: max-content; animation: reviewRun 60s linear infinite; will-change: transform; }
#main .sec-now .review-marquee:hover .review-track { animation-play-state: paused; }
#main .sec-now .review-item { flex: none; width: calc((1776rem - 58rem * 3) / 4); max-width: calc((100vw - 144rem - 58rem * 3) / 4); }
@keyframes reviewRun { to { transform: translate3d(calc(-50% - 29rem), 0, 0); } }
@media screen and (max-width: 1024px) {
  #main .sec-now .review-marquee { margin: 0 -20rem; padding: 0 20rem; }
  #main .sec-now .review-track { gap: 24rem; animation-duration: 48s; }
  #main .sec-now .review-item { width: 78vw; max-width: none; }
  @keyframes reviewRun { to { transform: translate3d(calc(-50% - 12rem), 0, 0); } }
}
@media (prefers-reduced-motion: reduce) { #main .sec-now .review-track { animation: none; } }


/* 후기: PT / 헬스 필터 탭 + 그룹 마키 */
#main .sec-now .review-tabs { display: flex; gap: 8rem; margin-bottom: 40rem; }
#main .sec-now .review-tabs button { padding: 10rem 22rem; border: 1px solid rgba(35,31,32,.25); border-radius: 999px; font-size: 15rem; font-weight: 600; color: #535455; background: transparent; cursor: pointer; transition: all .25s ease; letter-spacing: -0.3rem; }
#main .sec-now .review-tabs button:hover { border-color: #231F20; color: #231F20; }
#main .sec-now .review-tabs button.on { background: #231F20; border-color: #231F20; color: #fff; }
#main .sec-now .review-track { display: flex; gap: 0; }
#main .sec-now .review-group { display: flex; flex: none; }
#main .sec-now .review-item { margin-right: 58rem; }
#main .sec-now .rv-type { display: inline-block; margin-bottom: 12rem; padding: 3rem 9rem; font-size: 12rem; font-weight: 700; letter-spacing: -0.2rem; color: #fff; background: #8F6B4A; }
#main .sec-now .review-item[data-type="gym"] .rv-type { background: #231F20; }
#main .sec-now .review-item a { padding-top: 28rem; }
@keyframes reviewRun { to { transform: translate3d(-50%, 0, 0); } }
@media screen and (max-width: 1024px) {
  #main .sec-now .review-tabs { margin-bottom: 28rem; gap: 6rem; }
  #main .sec-now .review-tabs button { padding: 8rem 14rem; font-size: 13rem; }
  #main .sec-now .review-item { margin-right: 24rem; }
  @keyframes reviewRun { to { transform: translate3d(-50%, 0, 0); } }
}

/* 후기 제목(한글) + 통계 삭제 후 간격 */
#main .sec-now .sec-tit .tit.ko-tit { font-family: "Pretendard", sans-serif; font-weight: 700; letter-spacing: -2rem; text-transform: none; font-size: 64rem; line-height: 1.2; }
#main .sec-now .list-top { margin-bottom: 56rem; }
#main .sec-now .review-tabs { margin-bottom: 48rem; }
@media screen and (max-width: 1024px) {
  #main .sec-now .sec-tit .tit.ko-tit { font-size: 34rem; letter-spacing: -1rem; }
  #main .sec-now .list-top { margin-bottom: 32rem; }
  #main .sec-now .review-tabs { margin-bottom: 28rem; }
}

/* 후기: 흰 배경 + 회색 카드, 제목 포인트 */
#main .sec-now { background: #fff; }
#main .sec-now .sec-tit .tit .pt { font-style: normal; color: var(--brandColor); position: relative; }
#main .sec-now .sec-tit .tit .pt::after { content: ''; position: absolute; left: 0; right: 0; bottom: 4rem; height: 10rem; background: rgba(186,141,101,.22); z-index: -1; }
#main .sec-now .review-item a { background: #F3F2F0; border-top: 0; border-radius: 12rem; padding: 28rem 28rem 110rem; height: 380rem; transition: background .3s ease, transform .3s ease; }
#main .sec-now .review-item a:hover { background: #ECEAE6; }
#main .sec-now .review-item .date { left: 28rem; bottom: 26rem; }
#main .sec-now .review-item .tags { right: 28rem; bottom: 26rem; max-width: 60%; }
#main .sec-now .review-item .tags span { background: #fff; border-color: rgba(35,31,32,.12); }
#main .sec-now .review-tabs button { border-color: rgba(35,31,32,.2); }
#main .sec-now .review-marquee { -webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); }
@media screen and (max-width: 1024px) {
  #main .sec-now .review-item a { padding: 22rem 20rem 96rem; height: 330rem; }
  #main .sec-now .review-item .date { left: 20rem; bottom: 20rem; }
  #main .sec-now .review-item .tags { right: 20rem; bottom: 20rem; }
}
/* NASM 인증패: 그림자 제거 */
#main .sec-points .cert-box img { box-shadow: none !important; }


/* ===== 타이포그래피: 단어 리빌 + 포인트 ===== */
#main section .sec-tit .tit .w { display: inline-block; overflow: hidden; vertical-align: bottom; padding: .06em .02em .14em; margin: -.06em -.02em -.14em; }
#main section .sec-tit .tit .wi { display: inline-block; transform-origin: 0% 100%; will-change: transform, filter; }
#main section .sec-tit .tit .pt, #main .sec-points .cert-cap .pt, #main .sec-visual .visual-sub .pt { font-style: normal; color: var(--brandColor); position: relative; display: inline-block; }
#main section .sec-tit .tit .pt::after { content: ''; position: absolute; left: 0; right: 0; bottom: .08em; height: .22em; background: rgba(186,141,101,.22); z-index: -1; transform: scaleX(0); transform-origin: left; transition: transform .9s cubic-bezier(.16,1,.3,1) .35s; }
#main section .sec-tit.in .tit .pt::after, #main section .sec-tit .tit.in .pt::after { transform: scaleX(1); }
#main section .sec-tit.white .tit .pt { color: #D9B38C; }
#main section .sec-tit.white .tit .pt::after { background: rgba(217,179,140,.28); }
#main section .sec-tit .txt .mk { font-weight: 700; color: #231F20; background: linear-gradient(transparent 62%, rgba(186,141,101,.28) 62%, rgba(186,141,101,.28) 92%, transparent 92%); background-size: 0% 100%; background-repeat: no-repeat; transition: background-size .9s cubic-bezier(.16,1,.3,1) .6s; }
#main section .sec-tit.in .txt .mk { background-size: 100% 100%; }
#main section .sec-tit.white .txt .mk { color: #fff; background-image: linear-gradient(transparent 62%, rgba(217,179,140,.35) 62%, rgba(217,179,140,.35) 92%, transparent 92%); }
#main .sec-now .sec-tit .tit .pt::after { bottom: 4rem; height: 10rem; }
#main .sec-points .cert-cap .pt { font-weight: 800; }
#main .sec-points .cert-cap .pt::after { content: ''; position: absolute; left: 0; right: 0; bottom: 2rem; height: 8rem; background: rgba(186,141,101,.25); z-index: -1; }
#main .sec-visual .visual-sub .pt { color: #E3C59F; font-weight: 700; text-shadow: 0 2rem 12rem rgba(0,0,0,.8); }
/* 트레이너 이름·프로그램 카드 제목: 살짝 떠오르는 등장 */
#main .sec-ownthe100 .cont-box.trainer .tit, #main .sec-service .info-box h3 { transition: transform .8s cubic-bezier(.16,1,.3,1), opacity .8s; }
@media (prefers-reduced-motion: reduce) {
  #main section .sec-tit .tit .pt::after { transform: none; transition: none; }
  #main section .sec-tit .txt .mk { background-size: 100% 100%; transition: none; }
}

/* 모바일 퀵메뉴: 인트로에서 right:0 으로 들어온 뒤 스크롤 시 왼쪽으로 밀리던 오류 수정 */
@media screen and (max-width: 1024px) {
  #main .quick-menu.btm { transform: none; }
}

/* 제목 단어 분리: 줄 안에서 가로로 흐르게 (기존 .line span{display:block} 보정) */
#main section .sec-tit .tit .line > span { display: block; }
#main section .sec-tit .tit .line .w, #main section .sec-tit .tit .line .wi { display: inline-block; line-height: inherit; }
#main section .sec-tit .tit .line .w { white-space: nowrap; }
/* 후기 more 버튼: 카드 아래 가운데 */
#main .sec-now .review-more { display: flex; justify-content: center; margin-top: 56rem; }
#main .sec-now .review-more .btn-more { padding: 12rem 36rem; border: 1px solid #231F20; color: #231F20; border-radius: 999px; transition: all .3s ease; }
#main .sec-now .review-more .btn-more:hover { background: #231F20; color: #fff; }
@media screen and (max-width: 1024px) { #main .sec-now .review-more { margin-top: 36rem; } }
