/* assets/css/style.css */
@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/pretendardvariable.css");

:root{
  --font: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Segoe UI",
          Roboto, "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", Arial, sans-serif;

  --line: rgba(255,255,255,.18);

  --accent: #b8a56a;
  --green: #3d215f;

  /* ✅ header(84) + topnav(46) = 130 */
  --headerH: 130px;
  --railW: 72px;
  --quickBarW: 92px;
  --quickPopupH: 240px;

  --heroDur: 4s;

  --premiumLeftW: 44%;
  --premiumGap: 44px;
  --premiumPadTop: 160px;
  --premiumPadBtm: 44px;

  /* AWESOME */
  --awesomeTop: 46px;
  --awesomeWrapMt: 86px;
  --awesomeDotsBottom: 18px;
  --awesomeArrowSafe: 92px;
  --awesomeTopTextH: 110px;

  /* LOCATION/RESERVE 공통 패널 */
  --panelPadTop: 14px;
  --panelPadBtm: 14px;
  --panelPadSide: 40px;

  /* ✅ RESERVE */
  --reserveTopTight: 8px;
  --reserveGapTight: 10px;

  --resFontTitle: 30px;
  --resFontSub: 12px;
  --resFontLabel: 11px;

  --resInputH: 44px;
  --resRadius: 14px;

  --resCardHeadH: 46px;
  --resCalDayH: 36px;
  --resTimeBtnH: 36px;

  --resStickyH: 52px;
  --resStickySafe: 14px;
  --resBottomSafePad: 110px;

  /* ✅ 노트북 잘림 방지용 전체 스케일 */
  --resScale: 1;
}

/* ===== Base ===== */
*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; font-family:var(--font); }
a{ color:inherit; text-decoration:none; }
img{ display:block; max-width:100%; height:auto; }
button,input,textarea,select{ font-family:var(--font); }

body{
  overflow-x: hidden;
  overflow-y: visible;
}

/* ✅ 메인(home)만 검정 */
html.home body{
  background:#000;
  color:#fff;
}

/* ✅ 서브 페이지는 흰/연회색 */
html:not(.home) body{
  background:#f3f5f7;
  color:#111;
}

/* ✅ 서브페이지는 흰 테마로 강제 */
html.sub body{
  background:#f3f5f7;
  color:#111;
}

/* =========================================================
  ✅ 핵심: 메인(index)만 "단이동/블럭고정" 적용
========================================================= */

/* 메인만 스냅 */
html.home{
  scroll-snap-type: y mandatory;
  scroll-behavior: smooth;
  overflow-y:auto;
}

/* 서브(기본)는 일반 스크롤 */
html:not(.home){
  scroll-snap-type: none;
  scroll-behavior: smooth;
  overflow-y:auto;
}

/* 서브 페이지는 고정헤더에 가리지 않게 상단 여백 */
html:not(.home) .page{
  padding-top: var(--headerH);
}

/* ✅ 내부 스크롤 패널이 wheel을 제대로 먹게 */
.locContent, .resContent{
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}

/* =========================
  HEADER
========================= */
.header{
  position:fixed;
  left:0; right:0; top:0;
  z-index:300;
  height:84px;
  border-bottom: 1px solid var(--line);
  background: transparent;
  display:flex;
  align-items:stretch;
}
.header__inner{
  width:100%;
  display:grid;
  grid-template-columns: 240px 1fr 260px;
  align-items:center;
  padding: 0 22px;
  gap: 10px;
}
.brand{
  display:flex;
  align-items:center;
  min-width:0;
}
.brand__img{
  display:block;
  height:44px;
  width:auto;
  max-width:220px;
  object-fit:contain;
}
.header__center{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  min-width:0;
}
.centerTitle{
  font-weight:1000;
  letter-spacing:-.02em;
  font-size:22px;
  white-space:nowrap;
}
.centerBadge{
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
  background: rgba(0,0,0,.25);
  font-size:12px;
  font-weight:900;
}
.header__right{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:14px;
}
.headerPhone{
  font-size:22px;
  font-weight:1000;
  letter-spacing:-.02em;
  white-space:nowrap;
}

.hamburger{
  position: relative;
  width:54px;
  height:100%;
  border:0;
  background: rgba(0,0,0,.30);
  border-left: 1px solid var(--line);
  cursor:pointer;
  display:grid;
  place-items:center;
  border-radius: 10px;
  z-index: 5003;
}
.hamburger span{
  width:20px;
  height:2px;
  background:#fff;
  display:block;
  position:relative;
  transition: transform .25s ease, background .25s ease;
}
.hamburger span::before,
.hamburger span::after{
  content:"";
  position:absolute;
  left:0;
  width:20px;
  height:2px;
  background:#fff;
  transition: transform .25s ease, top .25s ease, opacity .25s ease, background .25s ease;
}
.hamburger span::before{ top:-6px; }
.hamburger span::after{ top:6px; }

/* 메뉴 열렸을 때 X 모양 */
.hamburger.is-active span{
  background: transparent;
}
.hamburger.is-active span::before{
  top:0;
  transform: rotate(45deg);
}
.hamburger.is-active span::after{
  top:0;
  transform: rotate(-45deg);
}

/* =========================
  TOP NAV
========================= */
.topnav{
  position:fixed;
  top:84px;
  left:0; right:0;
  z-index:290;
  border-bottom: 1px solid var(--line);
  background: transparent;
  backdrop-filter: none;
}
.topnav__inner{
  max-width: 1200px;
  margin: 0 auto;
  height: 46px;
  display:grid;
  grid-template-columns: repeat(5, 1fr);
  align-items:center;
  padding: 0 calc(18px + var(--quickBarW)) 0 18px;
}
.navItem{
  font-weight:1000;
  font-size:15px;
  letter-spacing:-.02em;
  color: rgba(255,255,255,.92);
  padding: 10px 0;
  text-align:center;
}

/* =========================
  MEGA PANEL
========================= */
.megaPanel{
  position:fixed;
  left:0; right:0;
  top: var(--headerH);
  background:#fff;
  color:#111;
  border-bottom: 1px solid rgba(0,0,0,.10);
  box-shadow: 0 30px 80px rgba(0,0,0,.35);
  display:none;
  z-index: 295;
}
.topnav.is-open .megaPanel{ display:block; }
.megaPanel__inner{
  max-width: 1200px;
  margin: 0 auto;
  padding: 18px calc(18px + var(--quickBarW)) 22px 18px;
  display:grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 28px;
  justify-items:center;
  text-align:center;
}
.megaCol a{
  display:block;
  padding: 12px 0;
  font-size: 13px;
  font-weight: 900;
  color:#222;
}
.megaCol a:hover{ color:#000; text-decoration: underline; }

/* =========================
  LEGACY RIGHT RAIL (숨김 유지)
========================= */
.quick{
  position: fixed;
  top: 96px;
  right: 10px;
  z-index: 310;
  display: flex;
  flex-direction: column;
  gap: 10px;
  pointer-events: auto;
}
.quick a{
  width: 54px;
  min-height: 54px;
  border-radius: 12px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.18);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 10px 6px;
  gap: 6px;
  text-align: center;
  font-weight: 1000;
  color: #fff;
  backdrop-filter: blur(8px);
}
.quick a:hover{
  background: rgba(255,255,255,.16);
}
.quick a > div{
  font-size: 11px;
  line-height: 1.1;
  opacity: .95;
}
.quick .topBtn{
  cursor: pointer;
}
@media (max-width: 900px){
  .quick{ display:none; }
}
.rightRail{ display:none; }

/* =========================
  RIGHT QUICK BAR
========================= */
.quickBar{
  position: fixed;
  top: 0;
  right: 0;
  width: var(--quickBarW);
  height: 100vh;
  z-index: 1200;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  overflow: hidden;
}
.quickBar__col{
  position: absolute;
  top: 0;
  right: 0;
  width: var(--quickBarW);
  height: 100vh;
  background: #3d215f;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  overflow: hidden;
}
.quickBar__open{
  background: #d6a33c;
  color: #fff;
  min-height: 100px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0 14px;
  font-size: 17px;
  font-weight: 1000;
  line-height: 1.12;
  border-bottom: 1px solid rgba(255,255,255,.18);
}
.quickBar__phone{
  min-height: 116px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  color: #d6a33c;
  font-size: 21px;
  font-weight: 1000;
  line-height: 1;
  border-bottom: 1px solid rgba(255,255,255,.14);
}
.quickBar__reg{
  min-height: 110px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: #d6a33c;
  border-bottom: 1px solid rgba(255,255,255,.14);
}
.quickBar__regIcon{
  font-size: 24px;
  line-height: 1;
}
.quickBar__regTxt{
  font-size: 12px;
  font-weight: 900;
  line-height: 1.2;
  text-align: center;
}
.quickBar__logo{
  height: 78px;
  background: #fff;
  border-bottom: 1px solid rgba(0,0,0,.10);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px;
}
.quickBar__logo img{
  max-width: 80%;
  max-height: 34px;
  object-fit: contain;
}
.quickBar__bottom{
  flex: 1;
  min-height: 0;
  background: #3d215f;
  overflow: hidden;
}

.quickBell{
  position: fixed;
  right: calc(var(--quickBarW) - 18px);
  bottom: 340px;
  width: 76px;
  height: 76px;
  border-radius: 16px;
  background: #d6a33c;
  color: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  box-shadow: 0 14px 36px rgba(0,0,0,.22);
  z-index: 1202;
}
.quickBell__icon{
  font-size: 22px;
  line-height: 1;
}
.quickBell__txt{
  font-size: 12px;
  font-weight: 900;
  line-height: 1;
}

.quickPopupWrap{
  position: fixed;
  right: var(--quickBarW);
  bottom: 180px;
  width: 1200px;
  max-width: calc(100vw - var(--quickBarW));
  height: 420px;
  z-index: 1201;
  display: flex;
  align-items: stretch;
  justify-content: flex-end;
  pointer-events: none;
}
.quickPopupPanel{
  position: absolute;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  background: #2a173f;
  box-shadow: -10px 18px 40px rgba(0,0,0,.28);
  overflow: hidden;
  pointer-events: none;
  opacity: 0;
  transform: translateX(100%);
  transition: transform .42s ease, opacity .42s ease;
}
.quickPopupPanel.is-open{
  opacity: 1;
  transform: translateX(0);
  pointer-events: auto;
}
.quickPopupTrack{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  width: 100%;
  height: 100%;
}
.quickPopupSlide{
  height: 100%;
  overflow: hidden;
  border-left: 1px solid rgba(255,255,255,.12);
}
.quickPopupSlide:first-child{ border-left: 0; }
.quickPopupSlide img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.quickPopupClose{
  position: absolute;
  top: 12px;
  right: 12px;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 999px;
  background: rgba(0,0,0,.45);
  color: #fff;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  z-index: 5;
}
.quickPopupNav{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 40px;
  height: 58px;
  border: 0;
  background: rgba(24,15,40,.72);
  color: #fff;
  font-size: 34px;
  cursor: pointer;
  z-index: 4;
}
.quickPopupNav--prev{ left: 10px; }
.quickPopupNav--next{ right: 10px; }

/* =========================
  SECTIONS (공통)
========================= */
.page{ min-height: 100vh; }
.fullpage{ height:auto; overflow:visible; }

/* 메인(home)만 snap 섹션을 100vh로 강제 */
html.home .snap{
  scroll-snap-align: start;
  height: 100vh;
  position:relative;
  overflow:hidden;
}

/* 서브는 snap 클래스가 있어도 강제하지 않음(안전) */
html:not(.home) .snap{
  scroll-snap-align: none;
  height: auto;
  min-height: 0;
  position: relative;
  overflow: visible;
}

/* FOOTER만 예외(메인에서만 의미) */
html.home .snap--footerOnly{
  height: auto;
  min-height: 0;
  scroll-snap-align: none;
  overflow: visible;
}

.bg{
  position:absolute;
  inset:0;
  background: #111 center/cover no-repeat;
  transform: scale(1.02);
}
.bg::after{
  content:"";
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.35);
}
.bg--p2{ background: radial-gradient(1200px 500px at 40% 20%, rgba(246,246,246,1), rgba(230,230,230,1)); }

.snap--light{ color:#111; }
.snap--light .bg::after{ background: rgba(255,255,255,.55); }

.snap__inner{
  position:relative;
  z-index:2;
  height:100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 180px calc(18px + var(--quickBarW)) 44px 18px;
  display:flex;
  align-items:center;
}

/* 서브는 일반 콘텐츠 기준 */
html:not(.home) .snap__inner{
  height:auto;
  padding: 44px calc(18px + var(--quickBarW)) 44px 18px;
}

.reveal{
  opacity:0;
  transform: translateY(18px);
  transition: opacity .7s ease, transform .7s ease;
}
.reveal.is-in{ opacity:1; transform: translateY(0); }

/* =========================
  HERO ONLY
========================= */
.snap--heroOnly{ background:#000; }

.bgHero{
  position:absolute;
  inset:0;
  overflow:hidden;
}
.bgHero__layer{
  position:absolute;
  inset:-2%;
  background-position:center;
  background-repeat:no-repeat;
  background-size:cover;
  will-change: transform, opacity;
  backface-visibility: hidden;
  opacity:0;
  transform: scale(1.02);
  animation:
    heroZoom calc(var(--heroDur) * 3) linear infinite,
    heroVis  calc(var(--heroDur) * 3) steps(1, end) infinite;
}
.bgHero__layer--1{ animation-delay: 0s, 0s; }
.bgHero__layer--2{ animation-delay: calc(var(--heroDur) * -1), calc(var(--heroDur) * -1); }
.bgHero__layer--3{ animation-delay: calc(var(--heroDur) * -2), calc(var(--heroDur) * -2); }

.bgHero__shade{
  position:absolute;
  inset:0;
  background: linear-gradient(
    to bottom,
    rgba(0,0,0,.10) 0%,
    rgba(0,0,0,.00) 35%,
    rgba(0,0,0,.10) 100%
  );
  pointer-events:none;
}
@keyframes heroZoom{
  0%      { transform: scale(1.02); }
  32.9%   { transform: scale(1.12); }
  33%     { transform: scale(1.12); }
  100%    { transform: scale(1.12); }
}
@keyframes heroVis{
  0%      { opacity:1; }
  32.9%   { opacity:1; }
  33%     { opacity:0; }
  100%    { opacity:0; }
}

.heroCopy{
  position:absolute;
  left: clamp(80px, 10vw, 180px);
  top: 50%;
  transform: translateY(-50%);
  z-index: 5;
  width: min(420px, 34vw);
  opacity:0;
  pointer-events:none;
}
.heroCopy img{
  width:100%;
  max-width:100%;
  height:auto;
  filter: drop-shadow(0 16px 40px rgba(0,0,0,.28));
}
.heroCopy.is-animate{
  animation: heroCopyShow var(--heroDur) linear;
}
@keyframes heroCopyShow{
  0%{
    opacity:0;
    transform: translateY(-50%) translateX(-24px);
  }
  10%{
    opacity:1;
    transform: translateY(-50%) translateX(0);
  }
  62%{
    opacity:1;
    transform: translateY(-50%) translateX(0);
  }
  78%{
    opacity:0;
    transform: translateY(-50%) translateX(10px);
  }
  100%{
    opacity:0;
    transform: translateY(-50%) translateX(10px);
  }
}

@media (prefers-reduced-motion: reduce){
  .bgHero__layer{ animation:none; opacity:1; transform:none; }
  .bgHero__layer--2, .bgHero__layer--3{ display:none; }
  .heroCopy{
    animation:none;
    opacity:1;
    transform: translateY(-50%);
  }
}

/* =========================
  PREMIUM
========================= */
.snap__inner--premium{
  max-width: none;
  width: 100%;
  height: 100%;
  padding: 0 var(--quickBarW) 0 0;
  align-items: stretch;
}
.premiumGrid{
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-columns: var(--premiumLeftW) 1fr;
  gap: var(--premiumGap);
  align-items: stretch;
}
.premiumLeft{
  height: 100%;
  min-height: 0;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.premiumLeft__img{
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.premiumRight{
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 22px;
  padding: 110px 32px var(--premiumPadBtm) 0;
  height: 100%;
}

.premiumSlide{
  position:relative;
  width: min(980px, 95%);
  margin-top: 55px;
}
.premiumCard{
  width: 100%;
  border-radius: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
  display:grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 28px;
  align-items:center;
}

.premiumCard__media{
  height: 240px;
  border-radius: 0;
  background: rgba(0,0,0,.06);
  border: 0;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
}

@media (max-width: 900px){
  .premiumCard{
    grid-template-columns: 1fr;
    gap: 18px;
    align-items: start;
  }

  .premiumCard__media{
    width: 100%;
    height: 240px;
  }
}
.premiumFixedTitle{ color:#111; }
.premiumKicker{
  font-family: "Pretendard Variable", Pretendard, "Noto Sans KR", sans-serif;
  font-weight: 700;
  line-height: 1.22;
  font-size: 32px;
  letter-spacing: -0.01em;
  color: #111;
  opacity: 1;
}

.premiumBig{
  margin-top: 10px;
  font-family: "Times New Roman", Georgia, serif;
  font-size: 68px;
  letter-spacing: -0.03em;
  font-weight: 900;
  line-height: .9;
  color: #3d215f;
}

@media (max-width: 900px){
  .premiumKicker{
    font-size: 18px;
    line-height: 1.45;
    word-break: keep-all;
    text-align: center;
  }

  .premiumBig{
    font-size: 40px;
    line-height: 1;
    margin-top: 14px;
    text-align: center;
  }
}
.premiumCard__title{
  font-family: "Times New Roman", Georgia, serif;
  font-size: 52px;
  font-weight: 700;
  line-height: .9;
  letter-spacing: -0.03em;
  color: #3d215f;
}
.premiumCard__desc{
  margin-top: 14px;
  font-family: "Pretendard Variable", Pretendard, "Noto Sans KR", sans-serif;
  color:#333333;
  font-weight: 600;
  line-height:1.6;
  font-size: 18px;
  letter-spacing:-0.03em;
  opacity:1;
}

@media (max-width: 900px){
  .premiumCard > div:last-child{
    text-align: center;
  }

  .premiumCard__title{
    font-size: 34px;
    line-height: 1;
  }

  .premiumCard__desc{
    margin-top: 10px;
    font-size: 16px;
    line-height: 1.6;
  }
}

/* =========================
  SLIDER (공용)
========================= */
.slider, .premiumSlide{ overflow:hidden; }
.slider__track{
  display:flex;
  width:100%;
  transition: transform .35s ease;
}
.slide{ min-width:100%; }

.arrow{
  position:absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border-radius: 0;
  border: 0;
  background: transparent;
  color: rgba(0,0,0,.55);
  font-size: 44px;
  font-weight: 1000;
  cursor:pointer;
  display:grid;
  place-items:center;
  line-height: 1;
}
.arrow:hover{ color: rgba(0,0,0,.75); }
.arrow--prev{ left: -6px; }
.arrow--next{ right: -6px; }

@media (max-width: 900px){
  .premiumSlide{
    width: 100%;
    max-width: 100%;
    margin-top: 34px;
    padding: 0;
    overflow: hidden;
  }

  .premiumSlide .slide{
    min-width: 100%;
    flex: 0 0 100%;
    box-sizing: border-box;
  }

  .premiumCard{
    width: 100%;
    box-sizing: border-box;
  }

  .arrow{
    width: 36px;
    height: 36px;
    font-size: 34px;
    color: rgba(0,0,0,.72);
    z-index: 20;
  }

  .arrow--prev{
    left: 0;
  }

  .arrow--next{
    right: 0;
  }
}

.dots{
  margin-top: 18px;
  display:flex;
  gap: 10px;
  justify-content:center;
}
.dot{
  width: 10px;
  height: 10px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.18);
  background: rgba(0,0,0,.10);
  cursor:pointer;
}
.dot.is-on{
  width: 44px;
  border-radius: 999px;
  background:#111;
  border-color:#111;
}

/* =========================
  AWESOME
========================= */
.snap--awesome{
  background:#0b0f14;
  color:#fff;
  overflow: visible;
}
.snap__inner--awesome{
  max-width: 1200px;
  width: 100%;
  height: 100%;
  margin: 0 auto;
  padding: 0 calc(18px + var(--quickBarW)) 0 18px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.awesomeBg{
  position:absolute;
  inset:-6%;
  background: #0b0f14 center/cover no-repeat;
  filter: blur(10px);
  opacity: .30;
  transform: scale(1.08);
}
.awesomeShade{
  position:absolute;
  inset:0;
  background:
    linear-gradient(to bottom, rgba(0,0,0,.55), rgba(0,0,0,.35) 40%, rgba(0,0,0,.55));
  pointer-events:none;
}
.awesomeTopFixed{
  position:absolute;
  left:0;
  right:0;
  top: clamp(190px, 24vh, 290px);
  z-index: 5;
  text-align:center;
  padding: 0 calc(18px + var(--quickBarW)) 0 18px;
  text-shadow: 0 10px 40px rgba(0,0,0,.55);
}
.awesomeTopKicker{
  font-weight:900;
  opacity:.92;
  letter-spacing:-.02em;
  font-size: clamp(13px, 1vw, 16px);
}
.awesomeTopTitle{
  margin-top: 12px;
  font-size: clamp(32px, 3vw, 44px);
  font-weight: 1000;
  letter-spacing:-.03em;
}

@media (max-width: 900px){
  .awesomeTopTitle{
    margin-top: 6px !important;
    font-size: 21px !important;
    line-height: 1.2 !important;
    letter-spacing: -.04em !important;
    word-break: keep-all !important;
  }
}
.awesomeWrap{
  width: 100%;
  position:relative;
  z-index:4;
  margin-top: 0;
  min-height: 100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding-top: clamp(200px, 24vh, 270px);
  padding-bottom: clamp(40px, 8vh, 90px);
}
.awesomeSlider{
  position:relative;
  width: 100%;
  padding-top: 0;
  overflow: hidden;
}
.awesomeSlideGrid{
  width: 100%;
  display:grid;
  grid-template-columns: 1fr min(520px, 46%);
  gap: 44px;
  align-items:center;
  padding-left: var(--awesomeArrowSafe);
  padding-right: var(--awesomeArrowSafe);
}
.awesomeLeft{ max-width: 520px; }
.awesomeLabel{ font-size: 44px; font-weight: 1000; letter-spacing:-.03em; }
.awesomeLabel span{ color: #9bd6c8; }
.awesomeLine{
  width: 18px;
  height: 2px;
  background: rgba(255,255,255,.55);
  margin: 14px 0 16px;
  opacity:.8;
}
.awesomeDesc{ font-weight: 800; opacity: .92; line-height: 1.8; }

@media (max-width: 900px){
  .awesomeDesc{
    font-size: 17px !important;
    line-height: 1.6 !important;
    word-break: keep-all !important;
  }

  .awesomeLabel{
    font-size: 40px !important;
  }
}
.awesomeImage{
  width: 100%;
  height: clamp(260px, 36vh, 360px);
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.16);
  box-shadow: 0 18px 60px rgba(0,0,0,.35);
  overflow:hidden;
  border-radius: 0 26px 0 26px;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
}
.snap--awesome .arrow{
  top: 56%;
  width: 72px;
  height: 72px;
  font-size: 70px;
  color: rgba(255,255,255,.70);
  background: transparent;
  z-index: 10;
}
.snap--awesome .arrow:hover{ color: rgba(255,255,255,.92); }
.snap--awesome .arrow--prev{ left: 18px; }
.snap--awesome .arrow--next{ right: 18px; }
.snap--awesome .dots{
  position:absolute;
  left: 50%;
  bottom: var(--awesomeDotsBottom);
  transform: translateX(-50%);
  margin: 0;
  z-index: 999;
}
.snap--awesome .dot{
  border-color: rgba(255,255,255,.25);
  background: rgba(255,255,255,.10);
}
.snap--awesome .dot.is-on{
  background: rgba(255,255,255,.85);
  border-color: rgba(255,255,255,.85);
}

/* =========================
  LEFT SECTION NAV (메인에서만 의미)
========================= */
.sectionNav{
  position:fixed;
  left: 18px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 260;
  display:flex;
  flex-direction:column;
  gap: 10px;
  user-select:none;
  font-weight:1000;
  font-size: 12px;
  letter-spacing:.02em;
  color: rgba(255,255,255,.85);
  text-shadow: 0 2px 10px rgba(0,0,0,.55);
}
.secItem{ display:flex; align-items:center; gap:10px; cursor:pointer; opacity:.85; }
.secItem:hover{ opacity:1; }
.dot2{ width:6px; height:6px; border-radius:999px; background: rgba(255,255,255,.55); }
.secItem.is-on{ color:#fff; opacity:1; }
.secItem.is-on .dot2{ background:#fff; }
html:not(.home) .sectionNav{ display:none; }

/* =========================
  Mega 메뉴 열릴 때(흰상단)
========================= */
body.menu-white .header{
  background:#fff !important;
  border-bottom: 1px solid rgba(0,0,0,.10) !important;
}
body.menu-white .brand__name,
body.menu-white .centerTitle,
body.menu-white .headerPhone{ color: var(--green) !important; }
body.menu-white .brand__logo{
  border: 1px solid rgba(11,77,51,.35) !important;
  background: rgba(11,77,51,.10) !important;
  color: var(--green) !important;
}
body.menu-white .centerBadge{
  border: 1px solid rgba(11,77,51,.28) !important;
  background: rgba(11,77,51,.10) !important;
  color: var(--green) !important;
}
body.menu-white .hamburger{
  background: rgba(0,0,0,.02) !important;
  border-left: 1px solid rgba(0,0,0,.10) !important;
}
body.menu-white .hamburger span,
body.menu-white .hamburger span::before,
body.menu-white .hamburger span::after{ background: var(--green) !important; }

body.menu-white .topnav{
  background:#fff !important;
  border-bottom: 1px solid rgba(0,0,0,.10) !important;
  backdrop-filter:none !important;
}
body.menu-white .navItem{ color:#111 !important; }

body.menu-white .quickBar__col{
  box-shadow: inset 1px 0 0 rgba(0,0,0,.08);
}

body.menu-open{ overflow:hidden; }
body.menu-open html{ overflow:hidden; }

/* =========================
  FULL MENU OVERLAY
========================= */
.menuOverlay{
  position:fixed;
  inset:0;
  background: rgba(0,0,0,.35);
  display:none;
  z-index: 5000;
}
.menuOverlay.is-open{ display:block; }

.menuSheet{
  position:absolute;
  inset:0;
  background: var(--green);
  color:#fff;
  padding: 0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding-top: 0;
  z-index: 5001;
}
.menuClose{
  position:absolute;
  right: 28px;
  top: 22px;
  width: 54px;
  height: 54px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.22);
  background: rgba(255,255,255,.08);
  cursor:pointer;
  font-size: 34px;
  font-weight: 900;
  color:#fff;
  line-height: 1;
  z-index: 5002;
}
.menuClose:hover{ background: rgba(255,255,255,.14); }

.menuCols{
  width: min(1400px, calc(100% - 140px));
  min-height: 320px;
  display:grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
  align-items:start;
  justify-items:center;
  text-align:center;
}
.menuCols > div{
  width: 100%;
  padding: 6px 24px;
}
.menuCols > div + div{
  border-left: 1px solid rgba(255,255,255,.18);
}
.menuCols h3{
  margin: 0 0 18px;
  padding-bottom: 12px;
  font-size: 18px;
  letter-spacing:-.02em;
  font-weight: 1000;
  opacity:.95;
  border-bottom: 1px solid rgba(255,255,255,.18);
}
.menuCols a{
  display:block;
  padding: 12px 0;
  font-weight: 900;
  color:#fff;
  opacity:.88;
}
.menuCols a:hover{
  opacity:1;
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* =========================
  LOCATION
========================= */
.snap--location{ background: #0b4d33; }

.locWrap{
  position:absolute;
  inset:0;
  display:grid;
  grid-template-columns: 1fr 1fr;
  padding-right: var(--quickBarW);
}
.locCol{
  min-height:0;
  height: 100vh;
  overflow:hidden;
}
.locCol--left{
  background: url("../images/bg1.png") center center / cover no-repeat;
  color:#fff;
}
.locCol--right{
  background: rgba(240,240,240,.92);
  color:#111;
  position:relative;
  overflow:hidden;
}
.locCol--right::after{
  content:"";
  position:absolute;
  inset:-80px -120px;
  background:
    radial-gradient(900px 600px at 70% 40%, rgba(0,0,0,.08), rgba(0,0,0,0)),
    radial-gradient(700px 500px at 30% 70%, rgba(0,0,0,.06), rgba(0,0,0,0));
  transform: rotate(-10deg);
  pointer-events:none;
}

.locContent{
  position:relative;
  z-index:2;
  height:100%;
  min-height:0;
  overflow:auto;
  padding:
    18px
    clamp(16px, 2.2vw, var(--panelPadSide))
    18px
    clamp(16px, 2.2vw, var(--panelPadSide));
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap: 16px;
}
.locContactTitle{
  font-family: "Times New Roman", Georgia, serif;
  font-weight: 700;
  letter-spacing: -0.03em;
  font-size: 44px;
  line-height: .9;
  opacity:.92;
}
.locMapBox{
  width: min(600px, 88%);
  height: min(340px, 36vh);
  border-radius: 14px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.16);
  display:grid;
  place-items:center;
  font-weight:1000;
  color: rgba(255,255,255,.9);
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
}
.locAddr{
  width: min(640px, 92%);
  text-align:center;
  padding-top: 10px;
}
.addrTitle{
  margin-top: 12px;
  font-weight:1000;
  font-size: clamp(18px, 1.45vw, 22px);
  letter-spacing:-.02em;
}
.addrText{
  margin-top:10px;
  font-weight:900;
  opacity:.92;
  font-size: clamp(15px, 1.2vw, 17px);
}
.locAddr .mapBtns{
  margin-top: 50px !important;
  display:flex;
  gap:10px;
  justify-content:center;
  flex-wrap:wrap;
}
.mapBtn{
  height:42px;
  min-width:210px;
  padding:0 16px;
  border-radius:4px;
  font-weight:1000;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border: 1px solid rgba(255,255,255,.22);
}
.mapBtn--light{
  background: rgba(255,255,255,.85);
  color:#0b4d33;
  border-color: rgba(255,255,255,.55);
}
.mapBtn--line{ background: transparent; color:#fff; }

.locSummaryBox{
  width: min(700px, 88%);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  gap: 14px;
}
.locSummaryHead{ width:100%; text-align:center; margin-bottom: 15px; }
.locSummaryTitle{
  font-family: "Times New Roman", Georgia, serif;
  font-weight: 700;
  letter-spacing: -0.03em;
  font-size: clamp(36px, 2.8vw, 44px);
  line-height: .9;
  opacity:.75;
}
.locSummaryHero{
  width: 100%;
  height: clamp(380px, 17vh, 220px);
  border-radius: 22px;
  overflow:hidden;
  background: rgba(255,255,255,.55);
  box-shadow: 0 18px 60px rgba(0,0,0,.14);
  border: 1px solid rgba(0,0,0,.08);
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
}
.locSummarySpecs{
  width: 100%;
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 34px;
  margin-top: 10px;
}
.sumItem{
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(0,0,0,.16);
}
.sumLabel{
  font-weight: 900;
  color:#111;
  opacity:.78;
  letter-spacing:-.02em;
  margin-bottom: 10px;
  font-size: 15px;
}
.sumVal{
  font-weight: 800;
  color: rgba(0,0,0,.72);
  line-height: 1.65;
  font-size: 15px;
}

/* =========================
  RESERVE
========================= */
.snap--reserve{ background: #0b4d33; }

.resWrap{
  position:absolute;
  inset:0;
  display:grid;
  grid-template-columns: 1fr 1fr;
  padding-right: var(--quickBarW);
}
.resCol{
  min-height:0;
  height:100vh;
  overflow:hidden;
}
.resCol--left{
  background:#3d215f url("../images/hero01.png") center center / cover no-repeat;
  position:relative;
  overflow:hidden;
}

.resAerialShade{ display:none; }

.resCol--right{
  background: rgba(240,240,240,.92);
  color:#111;
  position:relative;
  overflow:hidden;
}
.resCol--right::after{
  content:"";
  position:absolute;
  inset:-80px -120px;
  background:
    radial-gradient(900px 600px at 70% 40%, rgba(0,0,0,.08), rgba(0,0,0,0)),
    radial-gradient(700px 500px at 30% 70%, rgba(0,0,0,.06), rgba(0,0,0,0));
  transform: rotate(-10deg);
  pointer-events:none;
}

.resContent{
  position:relative;
  z-index:2;
  height:100%;
  min-height:0;
  overflow:auto;
  padding:
    140px
    clamp(18px, 2vw, 32px)
    60px
    clamp(18px, 2vw, 32px);
  display:flex;
  justify-content:center;
  align-items:center;
}
.snap--reserve .resContent{
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.snap--reserve .resContent::-webkit-scrollbar{ width:0; height:0; }

.resContent > *{
  width: min(760px, 100%);
  transform: scale(var(--resScale));
  transform-origin: center center;
}

.resTitleBox{ text-align:center; margin-bottom: 38px; }
.resTitle{
  font-weight:1000;
  letter-spacing:-.03em;
  font-size: var(--resFontTitle);
  color:#111;
}
.resSub{
  margin-top:6px;
  font-weight:900;
  opacity:.75;
  font-size: var(--resFontSub);
}
.resForm{
  margin-top: 8px;
  display:flex;
  flex-direction:column;
  gap: var(--reserveGapTight);
}
.resFieldRow{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.resField{ display:block; }
.resLabel{
  font-weight:1000;
  font-size: var(--resFontLabel);
  opacity:.85;
  margin-bottom: 6px;
}
.resInput{
  width:100%;
  height: var(--resInputH);
  border-radius: var(--resRadius);
  border: 1px solid rgba(0,0,0,.12);
  background: #fff;
  padding: 0 14px;
  font-weight:900;
  outline:none;
  font-size: 13px;
}
.resInput:focus{
  border-color: rgba(11,77,51,.35);
  box-shadow: 0 0 0 4px rgba(11,77,51,.10);
}

.resPickGrid{
  display:grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 12px;
}
.resCard{
  border-radius: 16px;
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(0,0,0,.10);
  box-shadow: 0 14px 46px rgba(0,0,0,.10);
  overflow:hidden;
}
.resCardHead{
  display:grid;
  grid-template-columns: 40px 1fr 40px;
  align-items:center;
  height: var(--resCardHeadH);
  padding: 0 8px;
  background: rgba(255,255,255,.85);
  border-bottom: 1px solid rgba(0,0,0,.06);
}
.resCardHead--plain{
  grid-template-columns: 1fr;
  justify-items:start;
}
.resCardTitle{
  font-weight:1000;
  font-size: 12px;
  opacity:.85;
}
.calNav{
  width: 34px;
  height: 34px;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,.10);
  background: rgba(0,0,0,.02);
  cursor:pointer;
  font-weight:1000;
}
.calTitle{
  text-align:center;
  font-weight:1000;
  letter-spacing:-.02em;
  font-size: 13px;
}

.calGrid{
  padding: 10px 10px 12px;
  display:grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 7px;
}
.calDow{
  font-size: 11px;
  font-weight:1000;
  opacity:.70;
  text-align:center;
  padding: 5px 0;
}
.calCells{
  grid-column: 1 / -1;
  display:grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 7px;
}
.calDay{
  height: var(--resCalDayH);
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,.08);
  background: rgba(255,255,255,.92);
  cursor:pointer;
  font-weight:1000;
  font-size: 12px;
}
.calDay.is-muted{ opacity:.35; cursor:not-allowed; }
.calDay.is-today{ border-color: rgba(11,77,51,.35); }
.calDay.is-on{
  background: rgba(61,33,95,.95);
  border-color: rgba(61,33,95,.95);
  color:#fff;
}

.timeGrid{
  padding: 10px;
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 9px;
}
.timeBtn{
  height: var(--resTimeBtnH);
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.10);
  background: rgba(255,255,255,.92);
  cursor:pointer;
  font-weight:1000;
  font-size: 12px;
}
.timeBtn:hover{ filter: brightness(.98); }
.timeBtn.is-on{
  background: rgba(61,33,95,.95);
  border-color: rgba(61,33,95,.95);
  color:#fff;
}

.resMemo .resTextarea{
  width:100%;
  min-height: 52px;
  border-radius: 16px;
  border: 1px solid rgba(0,0,0,.12);
  background: #fff;
  padding: 10px 14px;
  font-weight:900;
  outline:none;
  resize: vertical;
  font-size: 13px;
}
.resMemo .resTextarea:focus{
  border-color: rgba(61,33,95,.95);
  box-shadow: 0 0 0 4px rgba(11,77,51,.10);
}

.resAgree{
  display:flex;
  align-items:center;
  gap: 10px;
  font-weight:1000;
  font-size: 12px;
  opacity:.88;
}
.resAgree input{ width: 16px; height: 16px; }

.resSubmit{
  height: var(--resStickyH);
  border-radius: 999px;
  border: 0;
  background: rgba(61,33,95,.95);
  color:#fff;
  font-weight:1000;
  font-size: 15px;
  letter-spacing:-.02em;
  cursor:pointer;
  position: relative;
  bottom: auto;
  z-index: 5;
  box-shadow: 0 16px 44px rgba(0,0,0,.18);
  margin-top: 14px;
}
.resSubmit:disabled{ opacity:.65; cursor:not-allowed; }

.resHint{
  text-align:center;
  font-weight:1000;
  color: rgba(61,33,95,.95);
  min-height: 18px;
  font-size: 12px;
}

/* ✅ 스케일 자동 조정(노트북/작은 화면에서 잘림 방지) */
@media (max-width: 1440px), (max-height: 900px){
  :root{ --resScale: .92; }
}
@media (max-width: 1280px), (max-height: 840px){
  :root{ --resScale: .86; }
}
@media (max-width: 1100px), (max-height: 760px){
  :root{ --resScale: .80; }
}
@media (max-width: 980px), (max-height: 700px){
  :root{ --resScale: .74; }
}

/* ✅ 작은 높이일수록 더 줄임 */
@media (max-height: 920px){
  :root{
    --resFontTitle: 28px;
    --resInputH: 42px;
    --resCalDayH: 34px;
    --resTimeBtnH: 34px;
    --resBottomSafePad: 120px;
  }
}
@media (max-height: 840px){
  :root{
    --resFontTitle: 26px;
    --resCardHeadH: 44px;
    --resCalDayH: 32px;
    --resTimeBtnH: 32px;
    --resBottomSafePad: 130px;
  }
}
@media (max-height: 760px){
  :root{
    --resFontTitle: 24px;
    --resInputH: 40px;
    --resCalDayH: 30px;
    --resTimeBtnH: 30px;
    --resBottomSafePad: 140px;
  }
}

/* =========================
  FOOTER ONLY
========================= */
.snap--footerOnly{
  background: #fff;
  color:#111;
}

.footerDock{
  position: relative;
  left: auto;
  right: auto;
  bottom: auto;
  padding: 40px 0;
  background: #fff;
}

@media (max-width: 900px){
  .footerDock{
    padding-top: 20px !important;
    padding-bottom: 24px !important;
  }
}

.footerBar{
  background: #fff;
  color:#111;
  padding: 18px 22px;
  display:grid;
  grid-template-columns: 1.4fr .6fr;
  gap: 18px;
  border: 0;
  box-shadow: none;
  width: calc(100% - var(--quickBarW));
  margin-right: var(--quickBarW);
}

@media (max-width: 900px){
  .footerDock{
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }

  .footerBar{
    padding-top: 8px !important;
    padding-bottom: 8px !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
}

html.sub .footerBar{
  width: 100%;
  margin-right: 0;
}

.footerBar__right{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  justify-content:center;
  text-align:right;
}
.footLine1{ font-weight:1000; letter-spacing:-.02em;font-size:20px; }

@media (max-width: 900px){
  .footLine1{
    font-size: 14px !important;
  }
}
.footCopy{ margin-top:10px; font-weight:900; font-size:12px; color: rgba(0,0,0,.70); }
.footNotice{ margin-top:12px; font-size:11px; line-height:1.7; color: rgba(0,0,0,.60); font-weight:800; }
.callTop{ font-weight:1000; font-size:13px; margin-bottom:10px; }
.callNum{ display:inline-block; font-size:26px; font-weight:1000; letter-spacing:-.02em; }

/* =========================
  RESPONSIVE
========================= */
@media (max-width: 1100px){
  .header__inner{ grid-template-columns: 200px 1fr 220px; }

  .snap__inner--premium{ padding: 150px var(--quickBarW) 44px 18px; }
  .premiumGrid{ grid-template-columns: 1fr; gap: 18px; }
  .premiumLeft{ height: 40vh; }
  .premiumRight{ padding-right: 18px; }
  .premiumBig{ font-size: 40px; }
  .premiumCard__title{ font-size: 34px; }
  .premiumCard__desc{ font-size: 15px; }
  .premiumCard__media{ height: 190px; }

  .awesomeTopTitle{ font-size: 34px; }
  .awesomeSlideGrid{
    grid-template-columns: 1fr;
    gap: 18px;
    padding-left: 0;
    padding-right: 0;
  }
  .awesomeImage{ height: 240px; }
  .snap--awesome .arrow{ display:none; }

  .locWrap{ grid-template-columns: 1fr; }
  .locCol{ height: auto; }
  .locSummarySpecs{ grid-template-columns: 1fr; gap: 14px; }
  .locSummaryHero{
    height: auto;
    aspect-ratio: 16 / 9;
    border-radius: 22px;
    overflow: hidden;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
  }
  .locSummaryBox,
  .locSummaryHead,
  .locSummarySpecs,
  .sumItem,
  .sumLabel,
  .sumVal{
    text-align: center;
  }

  .resWrap{
    grid-template-columns: 1fr;
  }

  .resCol--left{
    display: block;
    height: 260px;
    min-height: 260px;
  }

  .resCol{
    height: auto;
  }

  .resContent{
    padding: 24px 16px 40px 16px;
  }

  .resPickGrid{
    grid-template-columns: 1fr;
  }
  .footerBar{ grid-template-columns: 1fr; }
  .footerBar__right{ align-items:flex-start; text-align:left; }

  .menuCols{
    width: min(720px, calc(100% - 60px));
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 16px;
    text-align:left;
    align-items:start;
  }
  .menuCols > div{
    padding: 0;
    border-left: 0 !important;
    width: 100%;
  }
  .menuCols a{ padding: 8px 0; }

  .heroCopy{
    left: 32px;
    width: min(360px, 38vw);
  }
}
@media (max-width: 900px){

  :root{
    --headerH: 84px;
  }

  .awesomeWrap{
    min-height: auto;
    padding-top: 230px;
    padding-bottom: 60px;
  }

  /* ===== 모바일 상단 ===== */
  .header{
    border-bottom: 1px solid rgba(0,0,0,.08);
    background: rgba(255,255,255,.96);
    backdrop-filter: blur(8px);
  }

  .topnav{
    display: none !important;
  }

  .header__inner{
    grid-template-columns: 1fr auto;
    padding: 0 14px;
  }

  .header__center{
    display:none;
  }

  .headerPhone{
    display:none;
  }

  .brand__img{
    height:32px;
    max-width:180px;
  }

  .hamburger{
    background: rgba(0,0,0,.03);
    border-left: 1px solid rgba(0,0,0,.08);
  }

  .hamburger span,
  .hamburger span::before,
  .hamburger span::after{
    background:#111;
  }

  .topnav__inner{
    display:flex;
    justify-content:flex-start;
    gap: 20px;
    padding: 0 18px;
    overflow-x:auto;
    white-space:nowrap;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .topnav__inner::-webkit-scrollbar{ display:none; }

  .navItem{
    flex: 0 0 auto;
    font-size:14px;
    color:#111;
  }

  .sectionNav{ display:none; }

  .quickBar,
  .quickPopupWrap,
  .quickBell{
    display:none;
  }

  .footerBar{
    width: 100%;
    margin-right: 0;
  }

  .megaPanel__inner,
  .snap__inner,
  .snap__inner--awesome{
    padding-right: 18px;
  }

  .locWrap,
  .resWrap{
    padding-right: 0;
  }

  .resFieldRow{ grid-template-columns: 1fr; }
  .timeGrid{ grid-template-columns: repeat(2, 1fr); }
  .resTitle{ font-size: 26px; }
  :root{ --resBottomSafePad: 150px; }

  /* ===== 모바일에서는 PC용 단이동 해제 ===== */
  html.home{
    scroll-snap-type: none;
  }

  .fullpage{
    height: auto;
    overflow: visible;
  }

  html.home .snap{
    height: auto;
    min-height: 0;
    overflow: visible;
  }

  /* ✅ 첫 번째 HERO만 따로 유지 */
  html.home .snap--heroOnly{
  height: 100dvh;
  min-height: 100dvh;
  height: 100svh;
  min-height: 100svh;
  overflow: hidden;
}

  /* HERO 텍스트 이미지 모바일에서 표시 */
  .heroCopy{
    display:block;
    left: 50%;
    top: 56%;
    transform: translate(-50%, -50%);
    width: min(78vw, 360px);
    opacity: 1;
  }

    .heroCopy.is-animate{
    animation: heroCopyShowMobile var(--heroDur) linear;
  }

  @keyframes heroCopyShowMobile{
    0%{
      opacity:0;
      transform: translate(-50%, -50%) translateX(-20px);
    }
    10%{
      opacity:1;
      transform: translate(-50%, -50%) translateX(0);
    }
    62%{
      opacity:1;
      transform: translate(-50%, -50%) translateX(0);
    }
    78%{
      opacity:0;
      transform: translate(-50%, -50%) translateX(10px);
    }
    100%{
      opacity:0;
      transform: translate(-50%, -50%) translateX(10px);
    }
  }

  .bgHero__layer{
    inset: 0;
    background-size: cover;
    background-position: center center;
  }

  /* ===== 모바일에서 내부 스크롤 제거 ===== */
    .locWrap,
  .resWrap{
    position: relative;
    inset: auto;
    display: block;
  }

    .locCol,
  .resCol{
    height: auto;
    min-height: 0;
    overflow: visible;
  }

 .resCol--left{
  display: block;
  width: 100%;
  height: 300px;
  min-height: 300px;
  margin: 0;
  overflow: hidden;
  border-radius: 0;
  background: #3d215f url("../images/hero01.png") center center / cover no-repeat;
  position: relative;
}

  .locContent,
  .resContent{
    height: auto;
    min-height: 0;
    overflow: visible;
    -webkit-overflow-scrolling: auto;
    overscroll-behavior: auto;
  }

  .locContent{
    padding-top: 36px;
    padding-bottom: 36px;
  }

  .locContent--right{
    padding-top: 36px;
    padding-bottom: 36px;
  }

    .resContent{
    padding-top: 36px;
    padding-bottom: 56px;
    padding-left: 16px;
    padding-right: 16px;
    align-items: stretch;
  }

  .resContent > *{
    width: 100%;
    max-width: 100%;
    transform: none;
    transform-origin: initial;
  }

  .resBox{
    width: 100%;
  }

  .snap--location,
  .snap--reserve,
  .snap--awesome,
  .snap--light{
    overflow: visible;
  }

  /* ===== AWESOME 모바일 보정 ===== */
.awesomeTopFixed{
  top: 58px;
  padding-left: 18px;
  padding-right: 18px;
}

.awesomeTopTitle{
  margin-top: 8px;
  line-height: 1.1;
}

.awesomeWrap{
  min-height: auto;
  padding-top: 120px;
  padding-bottom: 60px;
}

.awesomeSlideGrid{
  justify-items: center;
  text-align: center;
}

.awesomeLeft{
  max-width: 100%;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.awesomeLabel{
  width: 100%;
  text-align: center;
}

.awesomeLine{
  margin: 14px auto 16px;
}

.awesomeDesc{
  width: 100%;
  text-align: center;
  line-height: 1.7;
}

.awesomeRight{
  width: 100%;
  display: flex;
  justify-content: center;
}

.awesomeImage{
  margin: 0 auto;
}

  /* ===== 모바일 전체메뉴 정리 ===== */
  .menuOverlay{
    z-index: 5000;
  }

  .menuSheet{
    inset: 0;
    padding: 84px 18px 28px;
    justify-content: flex-start;
    align-items: flex-start;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  .menuClose{
    right: 14px;
    top: 14px;
    width: 46px;
    height: 46px;
    font-size: 28px;
    border: 1px solid rgba(255,255,255,.18);
    background: rgba(255,255,255,.10);
  }

  .menuCols{
    width: 100%;
    min-height: auto;
    display:grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 16px;
    text-align:left;
    align-items:start;
    justify-items:stretch;
  }

  .menuCols > div{
    width: 100%;
    padding: 0 0 4px;
    border-left: 0 !important;
  }

  .menuCols h3{
    margin: 0 0 10px;
    padding-bottom: 10px;
    font-size: 17px;
    line-height: 1.3;
    border-bottom: 1px solid rgba(255,255,255,.16);
  }

  .menuCols a{
    padding: 8px 0;
    font-size: 14px;
    line-height: 1.4;
  }
}

@media (max-width: 560px){
  .menuCols{
    grid-template-columns: 1fr;
    gap: 16px;
  }
}

/* =========================================================
  ✅ SUB PAGE (흰색 테마 / breadcrumb / 우측 퀵 중앙)
========================================================= */
html.sub .header{
  background:#fff;
  border-bottom:1px solid rgba(0,0,0,.08);
}
html.sub .topnav{
  background:#fff;
  border-bottom:1px solid rgba(0,0,0,.08);
}
html.sub .brand__name,
html.sub .centerTitle,
html.sub .headerPhone{ color:#111; }
html.sub .brand__logo{
  border:1px solid rgba(0,0,0,.12);
  background:rgba(0,0,0,.04);
  color:#111;
}
html.sub .centerBadge{
  border:1px solid rgba(0,0,0,.12);
  background:rgba(0,0,0,.04);
  color:#111;
}
html.sub .hamburger{
  background:rgba(0,0,0,.03);
  border-left:1px solid rgba(0,0,0,.08);
}
html.sub .hamburger span,
html.sub .hamburger span::before,
html.sub .hamburger span::after{ background:#111; }
html.sub .navItem{ color:#111; }
html.sub .megaPanel{ background:#fff; color:#111; }
html.sub .page{
  padding-top: var(--headerH);
}

/* ===== SUB BREADCRUMB ===== */
.subHero{
  position: relative;
  background: #eef1f4;
  border-bottom: 1px solid rgba(0,0,0,.08);
}
.subHero__inner{
  max-width: 1200px;
  margin: 0 auto;
  padding: 34px calc(18px + var(--quickBarW)) 28px 18px;
  text-align:center;
}
.subHero__kicker{
  font-weight: 900;
  letter-spacing: .22em;
  color: rgba(0,0,0,.50);
  font-size: 14px;
}
.subHero__title{
  margin-top: 10px;
  font-weight: 1000;
  letter-spacing: -.02em;
  font-size: 18px;
  color:#111;
}

/* breadcrumb(드롭다운) */
.subCrumb{
  max-width: 1200px;
  margin: 0 auto;
  padding: 16px calc(18px + var(--quickBarW)) 18px 18px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap: 14px;
  color:#111;
  position: relative;
}
.crumbHome{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: #0b4d33;
  color:#fff;
  font-weight: 1000;
  font-size: 14px;
}
.crumbSep{
  width: 1px;
  height: 18px;
  background: rgba(0,0,0,.14);
}
.crumbDD{ position: relative; }
.crumbDD summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  gap: 8px;
  padding: 10px 14px;
  border-radius: 10px;
  border: 1px solid rgba(0,0,0,.10);
  background:#fff;
  font-weight: 900;
  font-size: 13px;
  color:#111;
}
.crumbDD summary::-webkit-details-marker{ display:none; }
.crumbDD summary::after{
  content:"▾";
  opacity:.6;
  font-size: 12px;
}
.crumbDD[open] summary{
  box-shadow: 0 16px 40px rgba(0,0,0,.10);
}
.crumbMenu{
  position:absolute;
  left:0;
  top: calc(100% + 10px);
  width: 220px;
  background:#fff;
  border: 1px solid rgba(0,0,0,.10);
  border-radius: 12px;
  overflow:hidden;
  box-shadow: 0 22px 60px rgba(0,0,0,.14);
  z-index: 50;
}
.crumbMenu a{
  display:block;
  padding: 14px 16px;
  font-weight: 900;
  font-size: 13px;
  color:#111;
  border-top: 1px solid rgba(0,0,0,.06);
}
.crumbMenu a:first-child{ border-top:0; }
.crumbMenu a:hover{ background: rgba(0,0,0,.03); }

/* ===== SUB CONTENT AREA ===== */
.subContent{
  max-width: 1200px;
  margin: 0 auto;
  padding: 28px calc(18px + var(--quickBarW)) 70px 18px;
}
.subCard{
  background:#fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 16px;
  box-shadow: 0 18px 60px rgba(0,0,0,.06);
  padding: 26px;
}
.subH1{
  margin: 0 0 8px;
  font-size: 34px;
  font-weight: 1000;
  letter-spacing: -.03em;
  color:#111;
}

.subP{
  margin: 0 0 35px;
  font-weight: 800;
  color: rgba(0,0,0,.65);
  line-height: 1.7;
}
.subImg{
  width: 100%;
  height: min(520px, 52vh);
  border-radius: 14px;
  background: #dfe6ee center/cover no-repeat;
  border: 1px solid rgba(0,0,0,.08);
  margin-bottom: 24px;
}

.subTopFloat{
  position: fixed;
  right: 22px;
  bottom: 22px;
  width: 54px;
  height: 54px;
  border-radius: 999px;
  background:#fff;
  border: 1px solid rgba(0,0,0,.10);
  box-shadow: 0 18px 50px rgba(0,0,0,.18);
  display:grid;
  place-items:center;
  font-weight: 1000;
  color:#111;
  z-index: 400;
}

@media (max-width: 900px){
  html.sub .subHero__inner,
  html.sub .subCrumb,
  html.sub .subContent{
    padding-right: 18px !important;
    padding-left: 18px !important;
  }

  html.sub .subCrumb{
    flex-wrap: wrap;
    gap: 10px;
  }

  html.sub .crumbMenu{
    width: 200px;
  }

  html.sub .subContent{
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
  }

  html.sub .subCard{
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    text-align: center !important;
  }

  html.sub .subH1,
  html.sub .subP{
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    text-align: center !important;
  }

  html.sub .subImg{
  width: 100%;
  max-width: 100%;
  margin: 0 auto 24px;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: 16 / 10;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}

  html.sub .quickBar,
  html.sub .quickPopupWrap,
  html.sub .quickBell,
  html.sub .sectionNav,
  html.sub .quick{
    display: none !important;
  }
}

/* =========================================================
  ✅ SUB PAGE - 사업안내(서브 카드 제거 + 중앙정렬 + 상단 잘림 방지)
========================================================= */
html.sub .subHero{
  margin-top: var(--headerH);
}
html.sub .subCard{
  background: transparent;
  border: 0;
  box-shadow: none;
  border-radius: 0;
  padding: 0;
  text-align: center;
}
html.sub .subH1,
html.sub .subP{
  text-align: center;
}
html.sub .subImg{
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
html.sub .subCrumb{
  padding-top: 14px;
}

/* =========================================================
  ✅ SUB PAGE UI (샘플1 느낌으로 오버라이드)
========================================================= */
html.sub,
html.sub body{
  width: 100%;
  max-width: 100%;
  overflow-x: hidden !important;
}

html.sub .page,
html.sub main{
  width: 100%;
  max-width: 100%;
  overflow-x: hidden !important;
  overflow-y: visible !important;
}

html.sub .subHero{
  width: 100%;
  max-width: 100%;
  overflow: visible !important;
}

html.sub .subCrumb{
  width: 100%;
  max-width: 100%;
  overflow: visible !important;
}

html.sub .subHero{
  background: #f2f4f6;
  border-bottom: 1px solid rgba(0,0,0,.08);
}
html.sub .subHero::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(135deg,
      rgba(255,255,255,.85) 0%,
      rgba(255,255,255,.55) 35%,
      rgba(0,0,0,0) 80%);
  pointer-events:none;
}
html.sub .subHero::after{
  content:"";
  position:absolute;
  top: -40px;
  right: -20px;
  bottom: -40px;
  left: -20px;
  background:
    radial-gradient(900px 500px at 70% 20%, rgba(0,0,0,.06), rgba(0,0,0,0)),
    radial-gradient(700px 420px at 30% 70%, rgba(0,0,0,.05), rgba(0,0,0,0));
  transform: rotate(-6deg);
  pointer-events:none;
}
html.sub .subHero__inner{
  position: relative;
  z-index: 2;
  padding: 64px calc(18px + var(--quickBarW)) 54px 18px;
  text-align:center;
}
html.sub .subHero__kicker{
  font-size: 30px;
  letter-spacing: .26em;
  color: rgba(0,0,0,.55);
  font-weight: 900;
  margin: 0;
}
html.sub .subHero__title{
  position: relative;
  display: inline-block;
  margin-top: 14px;
  font-size: 18px;
  font-weight: 1000;
  color: rgba(0,0,0,.72);
  letter-spacing: -.02em;
  padding: 14px 0;
}
html.sub .subHero__title::before,
html.sub .subHero__title::after{
  content:"";
  position:absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 520px;
  max-width: 92vw;
  height: 1px;
  background: rgba(0,0,0,.10);
}
html.sub .subHero__title::before{ top: 0; }
html.sub .subHero__title::after{ bottom: 0; }

html.sub .subCrumb{
  justify-content: flex-end;
  padding: 16px calc(18px + var(--quickBarW)) 18px 18px;
}
html.sub .crumbHome{
  width: 30px;
  height: 30px;
  font-size: 13px;
}
html.sub .crumbDD summary{
  padding: 9px 12px;
  border-radius: 8px;
  font-size: 12px;
}
html.sub .crumbMenu{
  z-index: 9999;
}
html.sub .subContent{
  padding: 0 calc(18px + var(--quickBarW)) 80px 18px;
  text-align: center;
}
html.sub .subCard{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 auto;
  text-align: center;
}
html.sub .subH1,
html.sub .subP{
  text-align:center;
}
html.sub .subImg{
  width: 100%;
  border-radius: 0;
  border: 0;
  box-shadow: none;
  height: min(1000px, 92vh);
  min-height: 700px;
  background-color: transparent;
  background-position: center center;
  background-size: contain;
  background-repeat: no-repeat;
  margin-bottom: 24px;
}

/* ✅ 브레드크럼 흰색 바 */
html.sub .subCrumb{
  background: transparent !important;
  border-top: 0 !important;
  border-bottom: 0 !important;
  backdrop-filter: none !important;
}
html.sub .subCrumb::before{
  content:"";
  position:absolute;
  left: 0;
  top: 0;
  transform: none;
  width: 100%;
  height: 100%;
  background: rgba(255,255,255,.65);
  border-top: 1px solid rgba(0,0,0,.08);
  border-bottom: 1px solid rgba(0,0,0,.08);
  backdrop-filter: blur(8px);
  z-index: 0;
}
html.sub .subCrumb > *{
  position: relative;
  z-index: 1;
}

/* 작은 화면 최적화 */
@media (max-width: 900px){
  html.sub .subHero__inner{
    padding-right: 18px;
    padding-left: 18px;
  }
  html.sub .subCrumb{
    padding-right: 18px;
    padding-left: 18px;
  }
  html.sub .subHero__title::before,
  html.sub .subHero__title::after{
    width: 92vw;
  }
}

/* =========================================================
   ✅ SUB BREADCRUMB 드롭다운 정리
========================================================= */
html.sub .subHero,
html.sub .subCrumb{
  position: relative;
  z-index: 350;
}
html.sub .subCrumb{
  justify-content: center;
  padding-top: 18px;
  padding-bottom: 18px;
}
html.sub .crumbHome{
  width: 38px;
  height: 38px;
  font-size: 15px;
}
html.sub .crumbDD{
  position: relative;
  z-index: 360;
}

html.sub .crumbDD summary{
  border: 0 !important;
  background: transparent !important;
  padding: 8px 8px !important;
  border-radius: 0 !important;
  font-size: 16px !important;
  font-weight: 1000 !important;
  color: #111 !important;
  box-shadow: none !important;
  gap: 10px;
}
html.sub .crumbDD summary::after{
  content: "▾";
  opacity: .6;
  font-size: 14px;
  transform: translateY(-1px);
}
html.sub .crumbDD[open] summary{
  box-shadow: none !important;
}
html.sub .crumbMenu{
  width: 260px;
  left: 50%;
  transform: translateX(-50%);
  top: calc(100% + 14px);
  border-radius: 14px;
  border: 1px solid rgba(0,0,0,.10);
  box-shadow: 0 24px 70px rgba(0,0,0,.18);
  overflow: hidden;
  z-index: 5001;
}
html.sub .crumbMenu a{
  text-align: center;
  padding: 16px 14px;
  font-size: 15px;
  font-weight: 1000;
  border-top: 1px solid rgba(0,0,0,.06);
}
html.sub .crumbMenu a:hover{
  background: rgba(0,0,0,.03);
}
html.sub .crumbDD[open]{
  z-index: 5000;
}

/* ✅ 메가패널이 서브페이지 뒤로 숨는 문제 해결 */
.header { z-index: 2000; }
.topnav { z-index: 1900; }
.megaPanel { z-index: 1950; }
.menuOverlay { z-index: 5000; }

/* register 페이지 */
html.sub--register .subContent{
  padding-top: 18px;
}
html.sub.sub--register .resContent{
  padding-top: 0 !important;
  margin-top: -24px !important;
  align-items: flex-start !important;
}
html.sub.sub--register .resTitleBox{
  margin-top: 0 !important;
}
html.sub.sub--register .subContent{
  padding-top: 18px !important;
}
html.sub.sub--register .resContent{
  padding-top: 0 !important;
  margin-top: 0 !important;
  align-items: center !important;
}

@media (max-width: 900px){
  html.sub.sub--register .resContent{
    margin-top: 1px !important;
  }
}

/* popup responsive */
@media (max-width: 1400px){
  .quickPopupWrap{
    width: 980px;
    height: 280px;
  }
}
@media (max-width: 1200px){
  .quickPopupWrap{
    width: 760px;
    height: 260px;
  }
  .quickPopupTrack{
    grid-template-columns: repeat(4, 50%);
  }
}
@media (max-width: 1400px){
  .quickPopupWrap{
    width: 980px;
    height: 270px;
  }
}
@media (max-width: 1200px){
  .quickPopupWrap{
    width: 760px;
    height: 240px;
  }
  .quickPopupTrack{
    grid-template-columns: repeat(2, 1fr);
  }
}

/* =========================================================
  ✅ SUB 모바일 하단고정바
========================================================= */
.subMobileCta{
  display:none;
}

@media (max-width: 900px){
  .subMobileCta{
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    height: 60px;
    z-index: 9999 !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff;
    border-top: 1px solid rgba(0,0,0,.10);
    box-shadow: 0 -8px 24px rgba(0,0,0,.10);
    backdrop-filter: blur(8px);
  }

  .subMobileCta__btn{
    display:flex;
    align-items:center;
    justify-content:center;
    width: 100%;
    height: 60px;
    min-height: 60px;
    padding: 0;
    margin: 0;
    border-radius: 0;
    box-sizing: border-box;
    font-size: 15px;
    font-weight: 1000;
    letter-spacing: -.02em;
    line-height: 1;
    flex: 1 1 50%;
  }

  .subMobileCta__btn--call{
    background: #fff;
    color: #111;
    border-right: 1px solid rgba(0,0,0,.08);
  }

  .subMobileCta__btn--reg{
    background: #3d215f;
    color: #fff;
  }

  html.home body,
  html.sub body{
    padding-bottom: 60px !important;
  }

  html.sub .subContent{
    padding-bottom: 28px !important;
  }

  html.sub .footerDock{
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
  }

  html.sub .subTopFloat{
    bottom: 74px;
  }
}

@media (max-width: 900px){
  html.sub,
  html.sub body{
    width: 100%;
    max-width: 100%;
    overflow-x: hidden !important;
  }

  html.sub .subHero,
  html.sub .subContent,
  html.sub .footerDock,
  html.sub .footerBar{
    width: 100%;
    max-width: 100%;
  }

  html.sub .subContent,
  html.sub .footerDock,
  html.sub .footerBar{
    overflow-x: hidden;
  }

  html.sub .subHero,
  html.sub .subCrumb,
  html.sub .crumbDD,
  html.sub .crumbMenu{
    overflow: visible !important;
  }
}

@media (max-width: 900px){
  .snap__inner--premium{
    padding: 0 18px 24px 18px !important;
    align-items: flex-start !important;
    height: auto !important;
  }

  .premiumGrid{
    height: auto !important;
    gap: 12px !important;
  }

  .premiumLeft{
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 16 / 9;
    overflow: hidden;
  }

  .premiumLeft__img{
    height: 100% !important;
    background-position: center center !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
  }

  .premiumRight{
    padding: 0 18px 28px !important;
    gap: 12px;
    height: auto !important;
    justify-content: flex-start !important;
  }

  .premiumSlide{
    margin-top: 0 !important;
  }

  .snap--awesome .arrow{
    display: grid !important;
    width: 44px !important;
    height: 44px !important;
    font-size: 30px !important;
    background: rgba(0,0,0,.38) !important;
    color: #fff !important;
    border-radius: 999px !important;
    z-index: 50 !important;
    top: 72% !important;
  }

  .snap--awesome .arrow--prev{
    left: 6px !important;
  }

  .snap--awesome .arrow--next{
    right: 6px !important;
  }
}

@media (max-width: 900px){
  .footerDock{
    padding-top: 14px !important;
    padding-bottom: 18px !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }

  .footerBar{
    padding-top: 10px !important;
    padding-bottom: 10px !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
}

/* =========================
  SUB PAGE 이미지용
========================= */
.subImgWrap{
  width: 100%;
  margin-bottom: 24px;
  text-align: center;
}

.subImgReal{
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  object-fit: contain;
}



@media (min-width: 901px){
  html.sub .quickBar,
  html.sub .quickBell,
  html.sub .quickPopupWrap,
  html.sub .quick{
    display: none !important;
  }

  html.sub .subHero__inner,
  html.sub .subCrumb,
  html.sub .subContent{
    padding-right: 18px !important;
  }

  html.sub .footerBar{
    width: 100% !important;
    margin-right: 0 !important;
  }
}

@media (max-width: 900px){
  .locCol--left{
    min-height: 520px;
    background: url("../images/BG1.png") center center / cover no-repeat;
  }
}