html, body { margin:0; padding:0; overflow-x:hidden; }

/* ✅ KB FIX: 하단 fixed CTA가 콘텐츠를 덮지 않도록 여유 확보 */
:root{ --ctaH: 0px; }
.landing {
  max-width:1080px;
  margin:0 auto;
  padding-bottom: calc(var(--ctaH) + 24px + env(safe-area-inset-bottom));
}

.block img { width:100%; display:block; }

/* ✅ 03 매장소개 높이 변경 (section class="block short") */
.block.short{
  height:985.1337px;
  overflow:hidden;
}
.block.short img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

/* 오버레이 섹션 공통 */
.block-overlay { position:relative; }

/* ✅ (중요) overlay-layer가 클릭을 먹는 문제 방지
   - overlay-layer 자체는 클릭 비활성
   - 그 안의 ov 버튼/링크만 클릭 활성 */
.overlay-layer { position:absolute; inset:0; pointer-events:none; }
.overlay-layer .ov,
.overlay-layer a{ pointer-events:auto; }

/* 오버레이 요소 공통 */
.ov{
  position:absolute;
  background:transparent;
  border:none;
  outline:none;
  box-sizing:border-box;
}

/* ✅ KB FIX: 포커스 시 스크롤 여유(브라우저 자동 스크롤 안정화) */
input, textarea, select { scroll-margin-bottom: 240px; }

/* 폼 공통 스타일 */
.ov-name,.ov-phone,.ov-branch,.ov-date{
  padding:0 12px;
  font-size:16px;
}
.ov::placeholder{ color:#b5b5b5; }

.ov-branch{
  appearance:none;
  -webkit-appearance:none;
  background:transparent;
  color:#b5b5b5;
}
.ov-branch:valid{ color:#222; }

.ov-date::-webkit-calendar-picker-indicator{ opacity:0; width:0; height:0; }
.ov-date:invalid{ color:#b5b5b5; }
.ov-date:valid{ color:#222; }

.ov-submit{ cursor:pointer; }

/* ===============================
   02_form (1080 x 538) - 좌표 %
   일정선택 Y 오타 수정 반영 (330 기준)
=============================== */
.ov-name   { left:20.03%; top:45.72%; width:26.39%; height:10.41%; }
.ov-phone  { left:59.17%; top:45.72%; width:26.39%; height:10.41%; }
.ov-branch { left:20.03%; top:61.34%; width:26.39%; height:10.41%; }
.ov-date   { left:59.17%; top:61.34%; width:26.39%; height:10.41%; }
.ov-submit { left:36.85%; top:76.20%; width:26.39%; height:11.15%; }

/* ===============================
   04_differentiation (차별성) - 투명버튼
   (X:71.5, Y:519.2, W:395, H:69) / 기준가로 1080 → %
=============================== */
.ov-store-cta {
  left:6.62%;
  top:79.23%;
  width:36.57%;
  height:6.39%;
  cursor:pointer;
  z-index:5; /* ✅ 레이어 최상단 보장 */
}

/* ===============================
   08_naver_links (1080 x 758) - 네이버 링크 버튼들
=============================== */
.ov-busan     { left:6.39%;  top:29.67%; width:27.04%; height:19.26%; }
.ov-incheon   { left:36.48%; top:29.67%; width:27.04%; height:19.26%; }
.ov-ansan     { left:66.57%; top:29.67%; width:27.04%; height:19.26%; }

.ov-ulsan     { left:6.39%;  top:52.11%; width:27.04%; height:19.26%; }
.ov-masan     { left:36.48%; top:52.11%; width:27.04%; height:19.26%; }
.ov-jinju     { left:66.57%; top:52.11%; width:27.04%; height:19.26%; }

.ov-changwon  { left:6.39%;  top:74.54%; width:27.04%; height:19.26%; }
.ov-gimhae    { left:36.48%; top:74.54%; width:27.04%; height:19.26%; }
.ov-yangsan   { left:66.57%; top:74.54%; width:27.04%; height:19.26%; }

/* ✅ 하단 고정 CTA (picture 사용) */
.fixed-cta{
  position:fixed;
  left:50%;
  bottom:10px;
  transform:translateX(-50%);
  width:calc(100vw - 20px);
  max-width:1080px;
  z-index:9999;
}
.cta-picture, .cta-picture img { width:100%; display:block; }
.fixed-cta-click{
  position:absolute;
  inset:0;
  background:transparent;
  border:none;
  cursor:pointer;
}

/* 토스트 */
#toast{
  position:fixed;
  left:50%;
  bottom:120px;
  transform:translateX(-50%);
  background:rgba(0,0,0,.82);
  color:#fff;
  padding:12px 16px;
  border-radius:12px;
  font-size:14px;
  opacity:0;
  transition:.2s;
  z-index:10000;
  pointer-events:none;
}
#toast.show{ opacity:1; }

/* (권장) 모바일에서 터치 영역 확보 + 매장소개는 자동 높이로 자연스럽게 */
@media (max-width: 600px){
  .ov-store-cta{ min-height:44px; }
  .block.short{ height:auto; }
  .block.short img{ height:auto; object-fit:contain; }
}
