/* 기본 */
*{margin:0;padding:0;box-sizing:border-box;}
:root{--nav-h:64px;--vh:1vh;}
html,body{
  scroll-behavior:smooth;
  height:auto;
  min-height:100%;
}
body{
  overflow-y:scroll;
  scroll-snap-type:y proximity; /* desktop/tablet only; disabled on mobile below */
}

/* 네비 */
.nav{position:fixed;top:0;left:0;right:0;height:var(--nav-h);backdrop-filter:blur(8px);background:rgba(0,0,0,.35);z-index:10;}
.nav-inner{max-width:1000px;margin:0 auto;height:100%;display:flex;align-items:center;justify-content:space-between;padding:0 20px;}
.logo{color:#fff;font-weight:800;text-decoration:none;}
.menu a{color:#fff;text-decoration:none;margin-left:20px;font-weight:600;opacity:.9;}
.menu a:hover{opacity:1;}

/* 햄버거 버튼 */
.menu-toggle{display:none;position:relative;width:36px;height:28px;background:transparent;border:0;cursor:pointer;}
.menu-toggle span{position:absolute;left:0;right:0;height:3px;background:#fff;border-radius:2px;transition:.25s;}
.menu-toggle span:nth-child(1){top:3px}
.menu-toggle span:nth-child(2){top:12px}
.menu-toggle span:nth-child(3){top:21px}

/* 섹션 */
.section{
  min-height:calc(var(--vh)*100);
  scroll-snap-align:start;
  position:relative;
  padding-top:var(--nav-h);
  scroll-margin-top:var(--nav-h);
  display:flex;
  align-items:center;
  justify-content:center;
}
.section-content{background:#0f0f12;color:#eaeaea;}
.section-alt{background:#121317;color:#eaeaea;}
.container{max-width:900px;padding:40px 20px;text-align:center;}
h2{font-size:clamp(28px,4vw,44px);margin-bottom:16px;}
p{opacity:.9;line-height:1.6;}

/* Hero */
.bg-video{position:fixed;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1;}
.overlay{width:100%;text-align:center;color:#fff;text-shadow:0 10px 30px rgba(0,0,0,.8);display:flex;flex-direction:column;gap:16px;align-items:center;justify-content:center;padding-top:calc(var(--nav-h) + 40px);background:linear-gradient(to bottom,rgba(0,0,0,.45),rgba(0,0,0,.45));}
.overlay h1{font-size:clamp(32px,5vw,56px);font-weight:900;}
.overlay p{font-size:clamp(16px,2vw,22px);opacity:.95;}
.btn{display:inline-block;padding:.85rem 1.4rem;border-radius:999px;background:#ff0055;color:#fff;font-weight:800;text-decoration:none;transition:.25s;box-shadow:0 8px 24px rgba(255,0,85,.35);}
.btn:hover{transform:translateY(-1px);}

/* Reviews */
.reviews-grid{display:grid;gap:28px;margin-top:20px;}
.review{display:grid;grid-template-columns:160px 160px 1fr;align-items:center;gap:16px;background:rgba(255,255,255,.06);border-radius:16px;padding:16px;}
.review:nth-child(even){grid-template-columns:1fr 160px 160px;}
.rev-photo{width:160px;height:120px;object-fit:cover;border-radius:12px;}
.rev-meta h3{margin-bottom:4px;}
.stars{color:#ffd166;font-weight:800;letter-spacing:1px;}
.rev-text{line-height:1.6;}

/* Quote */
.quote-form{display:grid;gap:12px;margin-top:16px;}
.quote-form input,
.quote-form textarea,
select{width:100%;padding:12px 14px;border-radius:10px;border:none;background:#1b1d24;color:#eaeaea;outline:none;}
.quote-form textarea{min-height:120px;resize:vertical;}
.field-label{margin:12px 0 4px;display:block;text-align:left;opacity:.85;}
.checks{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:8px;}
.checks label{background:#1b1d24;padding:8px 10px;border-radius:8px;}
.time-row{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:10px;align-items:center;}

/* 에러 표시 */
.field-error{border:1px solid #ff4d4f !important;}
.error-text{color:#ff4d4f;font-size:13px;margin-top:6px;text-align:left;}

/* Contact */
.socials{display:flex;gap:16px;justify-content:center;margin-top:12px;}
.social{display:flex;align-items:center;gap:8px;color:#eaeaea;text-decoration:none;background:#1b1d24;padding:10px 14px;border-radius:999px;}
.social:hover{opacity:.9;}

/* Hero만 풀화면 채우도록 */
.section.hero{min-height:calc(var(--vh)*100);}

/* 모바일 안전한 뷰포트 단위 */
@supports (height:100dvh){
  .section{min-height:100dvh;}
  .section.hero{min-height:100dvh;}
}

/* 주소창 변화에도 흔들리지 않도록 더 안정적인 높이 사용 */
@supports (height:100svh){
  .section{min-height:100svh;}
  .section.hero{min-height:100svh;}
}

/* 폼 같은 콘텐츠가 잘리지 않도록 여백 */
.section-content .container,
.section-alt .container{
  padding-bottom:80px;
}

/* 반응형 */
@media (max-width: 768px){
  /* 모바일에서 스냅 비활성화 → 드래그 후 덜컥 방지 */
  body{scroll-snap-type:none;}

  .menu-toggle{display:block;}
  .menu{position:absolute;top:var(--nav-h);left:0;right:0;background:rgba(0,0,0,.9);display:none;flex-direction:column;gap:0;padding:8px 0;}
  .menu.open{display:flex;}
  .menu a{margin:0;padding:14px 20px;border-top:1px solid rgba(255,255,255,.08);}

  .overlay{padding-top:calc(var(--nav-h) + 20px);} /* ensure content not hidden */

  /* Reviews: single column to avoid clipping */
  .review{grid-template-columns:1fr;grid-auto-rows:auto;text-align:left;}
  .review:nth-child(even){grid-template-columns:1fr;}
  .rev-photo{width:100%;height:auto;aspect-ratio:16/9;}
}
