/* ==========================================================================
   fb-sub-t5 — 호텔 상세 (피그마 05-01 디자인 확산 누적본)
   3571:80085 호텔 상세 / 3571:80255 호텔 상세 사진 / 3571:80443 사진 전체 보기
   4495:86092 호텔 옵션 선택(예약 모달)
   모든 선택자는 .fb-hd(호텔 상세 main 루트) 안으로 스코프. 투어 상세(ft_rami_detail.css 공유)에는 영향 없음.
   ========================================================================== */

.fb-hd {
  --hd-green: #1D783B;
  --hd-green-soft: #ECF8F0;
  --hd-ink: #000000;
  --hd-text: #555555;
  --hd-muted: #888888;
  --hd-gray: #6B7280;
  --hd-line: rgba(0, 0, 0, .1); /* v3: 피그마 Line 23(3571:80166)·Line 25(4495:86520) = black .1 */
  --hd-wash: #F9FAFB;
  color: var(--hd-ink);
  letter-spacing: -0.02em;
}
.fb-hd *,
.fb-hd *::before,
.fb-hd *::after { box-sizing: border-box; }

/* ---------- 컨테이너 (본문 1076 = 668 + 38 + 365 + 5) ---------- */
.fb-hd .fb-hd-shell,
.fb-hd .fb-hd-layout {
  max-width: 1108px;
  padding-left: 16px;
  padding-right: 16px;
}
.fb-hd .fb-hd-shell { padding-top: 40px; }
.fb-hd .fb-hd-layout {
  gap: 38px;
  padding-top: 20px;
  padding-bottom: 130px;
  align-items: flex-start;
}

/* ---------- 목록 링크 ---------- */
.fb-hd .fb-hd-back {
  display: flex;
  width: fit-content;
  align-items: center;
  gap: 4px;
  margin: 0 0 20px;
  color: var(--hd-muted);
  font-size: 14px;
  line-height: 17px;
  font-weight: 500;
  letter-spacing: -0.03em;
  text-decoration: none;
}
.fb-hd .fb-hd-back svg { flex-shrink: 0; }
.fb-hd .fb-hd-back:hover { color: var(--hd-ink); }

/* ---------- 갤러리 (593 + 10 + 232.5×2 + 6, 높이 318) ---------- */
.fb-hd .fb-hd-gallery {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 593fr) minmax(0, 471fr);
  gap: 10px;
  max-width: 1074px;
  height: 318px;
  overflow: visible;
  border-radius: 0 !important;
  background: transparent;
}
.fb-hd .fb-hd-gallery-main,
.fb-hd .fb-hd-gallery-thumb {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 8px;
  overflow: hidden;
  background: #F3F4F6;
  cursor: zoom-in;
}
.fb-hd .fb-hd-gallery-main img,
.fb-hd .fb-hd-gallery-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0 !important;
  transition: transform .4s ease;
}
.fb-hd .fb-hd-gallery-main:hover img,
.fb-hd .fb-hd-gallery-thumb:hover img { transform: scale(1.03); }
.fb-hd .fb-hd-gallery-thumbs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 6px;
  height: 100%;
}
.fb-hd .fb-hd-gallery-thumb.is-empty,
.fb-hd .fb-hd-gallery-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #9CA3AF;
  font-size: 13px;
  cursor: default;
}
.fb-hd .fb-hd-gallery-empty {
  height: 318px;
  border-radius: 8px;
  background: #F3F4F6;
}
.fb-hd .fb-hd-more {
  position: absolute;
  right: 12px;
  bottom: 11px;
  z-index: 2;
  width: 78px;
  height: 37px;
  padding: 10px 0;
  border: 1px solid rgba(0, 0, 0, .1);
  border-radius: 4px;
  background: #FFFFFF;
  color: rgba(0, 0, 0, .7);
  font: inherit;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: -0.03em;
  cursor: pointer;
}
.fb-hd .fb-hd-more:hover { background: #F5F5F5; }

/* ---------- 본문 좌측 (668) ---------- */
.fb-hd .fb-hd-main { flex: 1 1 668px; min-width: 0; max-width: 668px; }
.fb-hd .fb-hd-summary {
  order: 1;
  padding-bottom: 30px;
  border-bottom: 1px solid var(--hd-line);
  margin-bottom: 30px;
}
.fb-hd .fb-hd-notice p {
  margin: 0 0 10px;
  color: var(--hd-green);
  font-size: 14px;
  line-height: 1.3;
  letter-spacing: -0.03em;
}
.fb-hd .fb-hd-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 20px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.fb-hd .fb-hd-meta li {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 23px;
  color: var(--hd-text);
  font-size: 14px;
  line-height: 22.4px;
  letter-spacing: -0.03em;
}
.fb-hd .fb-hd-meta svg { color: #555; flex-shrink: 0; overflow: visible; }
.fb-hd .fb-hd-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
}
.fb-hd .fb-hd-chips li {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  height: 32px; /* v3: 칩 인스턴스 높이 32 (3571:80164, 투어 칩과 동일) */
  padding: 0 8px;
  border: 1px solid rgba(0, 0, 0, .1);
  border-radius: 4px;
  background: #FFFFFF;
  color: rgba(0, 0, 0, .7);
  font-size: 12px;
  line-height: 1.3;
  letter-spacing: -0.03em;
}
.fb-hd .fb-hd-chips svg { flex-shrink: 0; width: 13px; height: 13px; color: #C0C0C0; }

/* 호텔 소개 */
.fb-hd .fb-hd-intro {
  order: 5;
  margin: 0 0 60px;
  padding: 0;
  border: 0;
  background: transparent;
}
.fb-hd .fb-hd-intro h2 {
  margin: 0 0 8px;
  color: var(--hd-ink);
  font-size: 16px;
  line-height: 19px;
  font-weight: 600;
  letter-spacing: -0.03em;
}
.fb-hd .fb-hd-intro-lead {
  margin: 0 0 10px;
  color: var(--hd-text);
  font-size: 14px;
  line-height: 22.4px;
  letter-spacing: -0.03em;
}
.fb-hd .fb-hd-intro-box {
  margin: 0;
  background: #FFFFFF;
  padding: 12px; /* 피그마 3571:80173 p-[12px] */
  border: 1px solid rgba(0, 0, 0, .1);
  color: var(--hd-text);
  font-size: 14px;
  line-height: 1.8;
  letter-spacing: -0.03em;
}
.fb-hd .fb-hd-intro-box p { margin: 0 0 8px; }
.fb-hd .fb-hd-intro-box img { border-radius: 6px; }

/* ---------- 탭 바 ---------- */
.fb-hd .ft-rami-tab-bar {
  margin: 0;
  border-bottom: 1px solid #D4D4D4;
  box-shadow: none;
}
.fb-hd .ft-rami-tab {
  min-height: 39px;
  padding: 6px 20px;
  margin-bottom: -1px;
  border-bottom: 1px solid transparent;
  color: var(--hd-muted);
  font-size: 16px;
  line-height: 1.6;
  font-weight: 400;
  letter-spacing: -0.03em;
}
.fb-hd .ft-rami-tab small { font-size: 13px; letter-spacing: -0.03em; }
.fb-hd .ft-rami-tab:hover { color: var(--hd-ink); border-bottom-color: transparent; }
.fb-hd .ft-rami-tab.is-active,
.fb-hd .ft-rami-tab.is-active:hover {
  color: var(--hd-ink);
  font-weight: 600;
  border-bottom-color: #000;
}

/* ---------- 탭 섹션 (구분선으로 나뉜 블록) ---------- */
.fb-hd .fb-hd-sec {
  margin: 0;
  padding: 30px 0;
  border: 0;
  border-bottom: 1px solid var(--hd-line); /* 피그마 3571:80188·80190·80192 섹션 구분선(위아래 30) */
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}
.fb-hd .ft-rami-tab-bar + .fb-hd-sec,
.fb-hd #ft-hotel-event { padding-top: 31px; }
.fb-hd .fb-hd-sec > h2 {
  margin: 0 0 10px;
  padding: 0;
  border: 0;
  color: var(--hd-ink);
  font-size: 16px;
  line-height: 19px;
  font-weight: 600;
  letter-spacing: -0.03em;
  text-align: left;
}
.fb-hd .fb-hd-sec .ft-rami-body {
  color: var(--hd-text);
  font-size: 14px;
  line-height: 1.8;
  letter-spacing: -0.03em;
}
.fb-hd .fb-hd-imgs { display: flex; flex-direction: column; gap: 10px; margin: 0; }
.fb-hd .fb-hd-imgs img { display: block; width: 100%; height: auto; border-radius: 8px; }
.fb-hd .fb-hd-terms p { margin: 0 0 6px; }
.fb-hd .fb-hd-terms > :last-child { margin-bottom: 0; }

/* 여행 후기 — 제목은 다른 섹션 제목(.fb-hd-sec > h2)과 같은 16px */
.fb-hd .fb-hd-reviews { border-bottom: 0; padding-bottom: 0; }
.fb-hd .fb-hd-reviews > h2.fb-hd-reviews-title {
  margin: 0 0 10px;
  font-size: 16px;
  line-height: 19px;
  font-weight: 600;
  letter-spacing: -0.03em;
}
.fb-hd #ft-hotel-reviews .reviews-section { padding: 0; margin: 0; }
.fb-hd .fb-hd-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 103px;
  padding: 0;
  border: 1px solid rgba(0, 0, 0, .1);
  border-radius: 0;
  background: #FFFFFF;
  color: var(--hd-muted);
}
.fb-hd .fb-hd-empty svg { color: #9CA3AF; }
.fb-hd .fb-hd-empty p {
  margin: 0;
  color: var(--hd-muted);
  font-size: 14px;
  line-height: 1.8;
  letter-spacing: -0.03em;
}
.fb-hd .reviews-summary-card { border-radius: 8px; }
.fb-hd .dist-bar-fill { background: var(--hd-green) !important; }
.fb-hd .ft-rami-page-btn.is-current { background: var(--hd-green); border-color: var(--hd-green); }
.fb-hd .ft-rami-page-btn:hover:not(:disabled):not(.is-current) { border-color: var(--hd-green); color: var(--hd-green); }

/* 객실 안내 카드 */
.fb-hd .fb-hd-rooms { display: flex; flex-direction: column; gap: 16px; margin-top: 4px; }
.fb-hd .fb-hd-promo {
  padding: 14px 16px;
  border-radius: 8px;
  background: var(--hd-wash);
}
.fb-hd .fb-hd-promo-title,
.fb-hd .fb-hd-bpromo strong {
  display: block;
  margin-bottom: 8px;
  color: #333;
  font-size: 14px;
  line-height: 18px;
  font-weight: 700;
}
.fb-hd .fb-hd-promo ul,
.fb-hd .fb-hd-bpromo ul {
  display: grid;
  gap: 2px;
  margin: 0;
  padding: 0 0 0 10px;
  list-style: none;
}
.fb-hd .fb-hd-promo li,
.fb-hd .fb-hd-bpromo li {
  position: relative;
  padding-left: 10px;
  color: #666;
  font-size: 12px;
  line-height: 19px;
}
.fb-hd .fb-hd-promo li::before,
.fb-hd .fb-hd-bpromo li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 9px;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: #666;
}
.fb-hd .fb-hd-rooms { gap: 10px; margin-top: 0; }
.fb-hd .fb-hd-room {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 15px 12px;
  border: 1px solid rgba(0, 0, 0, .1);
  border-radius: 8px;
  background: #FFFFFF;
}
.fb-hd .fb-hd-room-check { display: inline-flex; align-items: center; flex-shrink: 0; margin: 0; cursor: pointer; }
.fb-hd .fb-hd-room-check input {
  -webkit-appearance: none;
  appearance: none;
  width: 18px;
  height: 18px;
  margin: 0;
  border: 1px solid rgba(0, 0, 0, .15);
  border-radius: 2px;
  background: #FFFFFF center / 12px 12px no-repeat;
  cursor: pointer;
}
.fb-hd .fb-hd-room-check input:checked {
  border-color: #000;
  background-color: #000;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m2.5 6.2 2.3 2.3 4.7-4.8'/%3E%3C/svg%3E");
}
.fb-hd .fb-hd-room-check input:disabled { background-color: #F3F4F6; cursor: not-allowed; }
.fb-hd .fb-hd-room .fb-hd-room-photo {
  display: block;
  flex: 0 0 182px;
  width: 182px;
  height: 120px;
  aspect-ratio: auto;
  padding: 0;
  border: 0;
  border-radius: 6.743px;
  overflow: hidden;
  background: #F3F4F6;
}
.fb-hd .fb-hd-room .fb-hd-room-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fb-hd .fb-hd-room .fb-hd-room-photo.is-empty { display: flex; align-items: center; justify-content: center; color: #9CA3AF; font-size: 12px; letter-spacing: -0.03em; }
.fb-hd .fb-hd-room.is-closed .fb-hd-room-photo img { opacity: .55; }
.fb-hd .fb-hd-room-info { flex: 1 1 auto; min-width: 0; margin: 0; text-align: left; }
.fb-hd .fb-hd-room-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 2px; }
.fb-hd .fb-hd-room-head h4 { margin: 0; color: var(--hd-ink); font-size: 16px; line-height: 1.8; font-weight: 400; letter-spacing: -0.03em; }
.fb-hd .fb-hd-tag {
  display: inline-flex;
  align-items: center;
  padding: 5px 8px;
  border-radius: 4px;
  background: rgba(29, 120, 59, .05);
  color: var(--hd-green);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: -0.03em;
  white-space: nowrap;
}
.fb-hd .fb-hd-tag.is-closed { background: #FEECEC; color: #E5383B; }
.fb-hd .fb-hd-room-spec {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  list-style: none;
  gap: 0;
  color: var(--hd-text);
  font-size: 12px;
  line-height: 18.567px;
  letter-spacing: -0.03em;
}
.fb-hd .fb-hd-room-spec li { display: flex; align-items: flex-start; gap: 3.316px; min-height: 19.064px; margin: 0; padding: 0; line-height: 18.567px; }
.fb-hd .fb-hd-room-spec li + li { margin-top: 0; }
.fb-hd .fb-hd-room-spec svg { flex-shrink: 0; width: 13.262px; height: 13.262px; margin-top: 2.9px; color: #555; overflow: visible; }
.fb-hd .fb-hd-room-action {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 16px;
  margin-top: 15px;
  padding: 0;
  border: 0;
  line-height: 1.35;
}
.fb-hd .fb-hd-room-price-label { color: rgba(0, 0, 0, .5); font-size: 12px; letter-spacing: -0.03em; }
.fb-hd .fb-hd-room-price { color: var(--hd-ink); font-size: 18px; font-weight: 600; letter-spacing: -0.03em; }
.fb-hd .fb-hd-room-price.is-ask { color: var(--hd-muted); }

/* 위치 */
.fb-hd .fb-hd-loc {
  padding: 15px 20px;
  border: 1px solid rgba(0, 0, 0, .1);
  background: #FFFFFF;
}
.fb-hd .fb-hd-addr {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0;
  border: 0;
  text-align: left;
}
.fb-hd .fb-hd-addr-label { display: block; color: var(--hd-text); font-size: 12px; line-height: 1.8; font-weight: 500; letter-spacing: -0.03em; }
.fb-hd .fb-hd-addr strong { display: block; color: var(--hd-ink); font-size: 14px; line-height: 26.825px; font-weight: 500; }
.fb-hd .fb-hd-addr-link {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  padding: 7px 8px;
  border: 1px solid rgba(0, 0, 0, .1);
  border-radius: 4px;
  background: #FFFFFF;
  color: var(--hd-text);
  font-size: 12px;
  line-height: 1.3;
  font-weight: 400;
  letter-spacing: -0.03em;
  text-decoration: none;
}
.fb-hd .fb-hd-addr-link:hover { border-color: rgba(0, 0, 0, .3); color: var(--hd-ink); }
.fb-hd .ft-hmap {
  position: relative;
  z-index: 0;
  width: 100%;
  height: auto;
  aspect-ratio: 742 / 380;
  margin-top: 0;
  border: 1px solid #EAE2D5;
  border-radius: 8px;
  overflow: hidden;
  background: #DDD;
}
.fb-hd .ft-hmap-pin {
  position: relative; display: flex; flex-direction: column;
  align-items: center;
}
.fb-hd .ft-hmap-pin .pin-balloon {
  display: flex; align-items: center; justify-content: center;
  width: 32px; height: 32px;
  border-radius: 50% 50% 50% 0;
  background-color: #0B473A;
  transform: rotate(-45deg);
  border: 2px solid #FFFFFF;
  box-shadow: 0 4px 10px rgba(0,0,0,0.25);
}
.fb-hd .ft-hmap-pin .pin-balloon svg { transform: rotate(45deg); color: #FFFFFF; }
.fb-hd .ft-hmap-pin .pin-label {
  margin-top: 4px; background-color: #FFFFFF; color: #1E1B4B;
  font-size: 11px; font-weight: 800; line-height: 16.5px; padding: 3px 8px;
  border-radius: 4px; border: 1px solid rgba(30,27,75,0.12);
  white-space: nowrap; box-shadow: 0 2px 5px rgba(0,0,0,0.1);
  max-width: 160px; overflow: hidden; text-overflow: ellipsis;
}

/* ---------- 함께 보기 좋은 호텔 ---------- */
.fb-hd .fb-hd-related { order: 100; margin-top: 80px; }
.fb-hd .fb-hd-related h2 {
  margin: 0 0 16px;
  color: var(--hd-ink);
  font-size: 16px;
  line-height: 19px;
  font-weight: 600;
  letter-spacing: -0.03em;
  cursor: default;
}
.fb-hd .fb-hd-related-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 19px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.fb-hd .fb-hd-rcard { position: relative; min-width: 0; }
.fb-hd .fb-hd-rcard > a { display: block; color: inherit; text-decoration: none; }
.fb-hd .fb-hd-rcard-fig {
  display: block;
  aspect-ratio: 210 / 134;
  overflow: hidden;
  border-radius: 8px;
  background: #F3F4F6;
}
.fb-hd .fb-hd-rcard-fig img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.fb-hd .fb-hd-rcard > a:hover .fb-hd-rcard-fig img { transform: scale(1.04); }
.fb-hd .fb-hd-rcard-name {
  display: -webkit-box;
  margin-top: 12px;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  color: var(--hd-ink);
  font-size: 14px;
  line-height: 1.35;
  font-weight: 400;
  letter-spacing: -0.03em;
}
.fb-hd .fb-hd-rcard-unit { display: block; margin-top: 10px; color: rgba(0, 0, 0, .5); font-size: 13px; line-height: 1.35; letter-spacing: -0.03em; }
.fb-hd .fb-hd-rcard-price { display: block; margin-top: 6px; color: var(--hd-ink); font-size: 14px; line-height: 1.35; font-weight: 600; letter-spacing: -0.03em; }
.fb-hd .fb-hd-rcard .fb-wish-card-btn {
  top: 3px;
  right: 6px;
  width: 34px;
  height: 34px;
  border: 0;
  background: transparent;
  box-shadow: none;
  color: #FFFFFF;
  filter: drop-shadow(0 1px 1.5px rgba(0, 0, 0, .12));
}
.fb-hd .fb-hd-rcard .fb-wish-card-btn svg {
  width: 22px;
  height: 22px;
  fill: rgba(85, 85, 85, .5);
  stroke: #FFFFFF;
  stroke-width: 1.636;
  filter: none;
}
.fb-hd .fb-hd-rcard .fb-wish-card-btn:hover { background: transparent; color: #FFFFFF; }
.fb-hd .fb-hd-rcard .fb-wish-card-btn[data-wished="1"] svg { fill: var(--hd-green) !important; stroke: #FFFFFF !important; }

/* ---------- 우측 사이드 카드 (365 × 371) ---------- */
.fb-hd .fb-hd-sidebar {
  position: sticky;
  top: 140px;
  z-index: 10;
  width: 365px;
  align-self: flex-start;
}
.fb-hd .fb-hd-sidebar-inner { position: static; }
.fb-hd .fb-hd-side {
  margin: 0;
  padding: 30px;
  border: 1px solid rgba(0, 0, 0, .1);
  border-radius: 8px;
  background: #FFFFFF;
}
.fb-hd .fb-hd-code {
  margin: 0 0 12px;
  padding: 0;
  border: 0;
  color: var(--hd-gray);
  font-size: 13px;
  line-height: 22.4px;
  font-weight: 400;
  letter-spacing: -0.03em;
}
.fb-hd .fb-hd-title {
  margin: 0;
  padding: 0 0 11px;
  border-bottom: 1px solid rgba(0, 0, 0, .1);
  color: var(--hd-ink);
  font-size: 22px;
  line-height: 26px;
  font-weight: 600;
  letter-spacing: -0.03em;
  word-break: keep-all;
}
.fb-hd .fb-hd-hashtags {
  display: flex;
  flex-wrap: wrap;
  gap: 3px 6px;
  margin: 12px 0 0;
  padding: 0;
  list-style: none;
}
.fb-hd .fb-hd-hashtags li { color: var(--hd-green); font-size: 14px; line-height: 1.3; letter-spacing: -0.03em; }
.fb-hd .fb-hd-rating {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 12px;
  font-size: 12px;
  line-height: 22.4px;
  letter-spacing: -0.03em;
}
.fb-hd .fb-hd-stars { display: inline-flex; }
.fb-hd .fb-hd-stars svg { display: block; width: 16px; height: 16px; fill: #DBDBDB; }
.fb-hd .fb-hd-stars svg.is-on { fill: #FFB800; }
.fb-hd .fb-hd-rating strong { color: var(--hd-ink); font-weight: 500; }
.fb-hd .fb-hd-rating a { color: var(--hd-gray); text-decoration: none; }
.fb-hd .fb-hd-rating a:hover { text-decoration: underline; }
.fb-hd .fb-hd-side-bottom { margin-top: 40px; }
.fb-hd .fb-hd-price-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 8px; }
.fb-hd .fb-hd-price { padding: 0; }
.fb-hd .fb-hd-price small {
  display: block;
  margin: 0 0 3px;
  color: var(--hd-gray);
  font-size: 13px;
  line-height: 22.4px;
  font-weight: 400;
  letter-spacing: -0.03em;
}
.fb-hd .fb-hd-price p { margin: 0; display: flex; align-items: flex-start; gap: 3px; white-space: nowrap; }
.fb-hd .fb-hd-price strong { color: var(--hd-ink); font-size: 20px; line-height: 22.4px; font-weight: 600; letter-spacing: -0.03em; }
.fb-hd .fb-hd-price strong.is-ask { color: var(--hd-muted); font-size: 18px; }
.fb-hd .fb-hd-price span { color: #000; font-size: 13px; line-height: 22.4px; letter-spacing: -0.03em; }
.fb-hd .fb-hd-actions { display: flex; align-items: center; justify-content: flex-end; gap: 12.133px; }
.fb-hd .fb-hd-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #999;
  cursor: pointer;
}
.fb-hd .fb-hd-icon-btn svg { display: block; flex-shrink: 0; overflow: visible; }
.fb-hd .fb-hd-icon-btn:has(.fb-hd-ico-share) { width: 17.733px; height: 18.667px; }
.fb-hd .fb-hd-icon-btn:has(.fb-hd-ico-print) { width: 20.588px; height: 20.588px; }
.fb-hd .fb-hd-wish { filter: drop-shadow(0 .824px 1.235px rgba(0, 0, 0, .12)); }
.fb-hd .fb-hd-icon-btn:hover { color: var(--hd-ink); }
.fb-hd .fb-hd-wish[data-wished="1"] { color: var(--hd-green); }
.fb-hd .fb-hd-wish[data-wished="1"] svg { fill: var(--hd-green) !important; stroke: var(--hd-green) !important; }
.fb-hd .fb-hd-manager { margin: 16px 0 0; color: var(--hd-text); font-size: 13px; }
.fb-hd .fb-hd-manager strong { color: var(--hd-ink); font-weight: 600; }
.fb-hd .fb-hd-ask-note {
  margin: 16px 0 0;
  padding: 10px 12px;
  border-radius: 4px;
  background: var(--hd-wash);
  color: var(--hd-text);
  font-size: 13px;
  line-height: 20px;
}
.fb-hd .fb-hd-book {
  display: flex;
  width: 100%;
  min-height: 52px;
  margin-top: 30px;
  border: 0;
  border-radius: 4px;
  background: var(--hd-green);
  color: #FFFFFF;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: -0.03em; /* v3: 피그마 -0.45px (기본 버튼 normal 이던 것) */
  text-decoration: none;
}
.fb-hd .fb-hd-book:hover { background: #16632F; }

/* 모바일 하단 바 */
.fb-hd .fb-hd-mbar-info { flex: 0 0 45%; max-width: 45%; text-align: left; }
.fb-hd .fb-hd-mbar-price { color: var(--hd-ink); font-size: 15px; font-weight: 700; line-height: 1.2; }
.fb-hd .fb-hd-mbar-name { overflow: hidden; color: var(--hd-gray); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.fb-hd .fb-hd-mbar-btn {
  flex: 1;
  min-height: 44px;
  border: 0;
  border-radius: 4px;
  background: var(--hd-green);
  color: #FFFFFF;
  font-weight: 600;
}

/* ---------- 모달 공통 (80255 · 80443) ---------- */
.fb-hd .fb-hd-pop {
  position: fixed;
  inset: 0;
  z-index: 5000;
  display: none;
  align-items: flex-start;
  justify-content: center;
  overflow-y: auto;
  padding: 40px 16px;
  background: rgba(0, 0, 0, .5);
}
.fb-hd .fb-hd-pop.is-open { display: flex; }
.fb-hd .fb-hd-pop-inner {
  position: relative;
  width: 100%;
  max-width: 1440px;
  margin: auto 0;
  padding: 50px;
  border-radius: 8px;
  background: #FFFFFF;
}
.fb-hd .fb-hd-pop-head {
  position: static;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  min-height: 0;
  margin: 0 0 20px;
  padding: 0;
  border: 0;
  background: transparent;
  backdrop-filter: none;
}
.fb-hd .fb-hd-pop-kicker { margin: 0 0 3px; color: var(--hd-muted); font-size: 14px; line-height: 17px; font-weight: 500; letter-spacing: -0.03em; }
.fb-hd .fb-hd-pop-title {
  margin: 0;
  justify-self: auto;
  color: var(--hd-ink);
  font-size: 22px;
  line-height: 26px;
  font-weight: 600;
  letter-spacing: -0.03em;
}
.fb-hd .fb-hd-x {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 13.72px;
  height: 13.72px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: rgba(0, 0, 0, .8);
  cursor: pointer;
}
.fb-hd .fb-hd-x::after { content: ""; position: absolute; inset: -10px; }
.fb-hd .fb-hd-x { position: relative; }
.fb-hd .fb-hd-x svg { display: block; }
.fb-hd .fb-hd-x:hover { color: #000; background: transparent; }
/* 80443 헤더: 제목(22) · 닫기(14) 세로 가운데 정렬 */
.fb-hd .fb-hd-all .fb-hd-pop-head { align-items: center; }
.fb-hd .fb-hd-all .fb-hd-x { width: 14px; height: 14px; }
/* 80255: 739 + 291 × 2, 높이 396 (썸네일 193 × 2) */
.fb-hd .fb-hd-pop-grid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 739fr) minmax(0, 291fr) minmax(0, 291fr);
  grid-template-rows: repeat(2, 193px);
  gap: 10px;
}
.fb-hd .fb-hd-pop-main { grid-row: 1 / span 2; }
.fb-hd .fb-hd-pop-main,
.fb-hd .fb-hd-pop-thumb { overflow: hidden; border-radius: 9.962px; background: #F3F4F6; }
.fb-hd .fb-hd-pop-main img,
.fb-hd .fb-hd-pop-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.fb-hd .fb-hd-pop-grid .fb-hd-more { right: 28px; bottom: 23px; }
.fb-hd .fb-hd-pop-sub {
  margin: 20px 0 0;
  color: var(--hd-ink);
  font-size: 16px;
  line-height: 19px;
  font-weight: 600;
  letter-spacing: -0.03em;
}
.fb-hd .fb-hd-pop-text { margin: 10px 0 0; color: var(--hd-text); font-size: 14px; line-height: 1.8; letter-spacing: -0.03em; }
.fb-hd .fb-hd-pop-text a { color: var(--hd-green); }
/* 80443: 2열 665 × 366 */
.fb-hd .fb-hd-all-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 15.255px;
}
.fb-hd .fb-hd-all-item { overflow: hidden; border-radius: 0; background: #7D7D7D; aspect-ratio: 662.372 / 366.143; }
.fb-hd .fb-hd-all-item img { display: block; width: 100%; height: 100%; object-fit: cover; aspect-ratio: auto; border-radius: 0 !important; }

/* ---------- 예약(옵션 선택) 모달 4495:86092 — 1312 폭, 패딩 50, 좌 816 / 우 367 ---------- */
.fb-hd .fb-hd-bmodal {
  z-index: 9999;
  padding: 40px 16px;
  background: rgba(0, 0, 0, .5);
  align-items: flex-start;
  justify-content: center;
  overflow-y: auto;
}
.fb-hd .fb-hd-bpanel {
  display: flex;
  flex-direction: column;
  width: 1313px !important;
  max-width: 100% !important;
  min-height: 0;
  max-height: none;
  margin: auto 0;
  overflow: visible;
  border-radius: 10px !important;
  background: #FFFFFF;
  box-shadow: none;
}
.fb-hd .fb-hd-bhead {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding: 40px 50px 20px;
  border: 0;
  border-radius: 10px 10px 0 0 !important;
}
.fb-hd .fb-hd-bhead .fb-hd-x { width: 14px; height: 14px; color: rgba(0, 0, 0, .3); }
.fb-hd .fb-hd-bhead .ft-rami-choice-title {
  margin: 0;
  color: var(--hd-ink);
  font-size: 20px;
  line-height: 24px;
  font-weight: 600;
  letter-spacing: -0.03em;
  text-align: left;
}
.fb-hd .fb-hd-bbody {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 367px;
  align-items: start;
  gap: 30px;
  padding: 0 50px;
  overflow: visible;
  text-align: left;
}
.fb-hd .fb-hd-bcard {
  padding: 20px;
  border: 1px solid rgba(0, 0, 0, .1);
  border-radius: 8px;
  background: #FFFFFF;
}
.fb-hd .fb-hd-bcard[hidden] { display: none; }
.fb-hd .fb-hd-bside { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.fb-hd .fb-hd-bcard .ft-booking-section-title {
  margin: 0;
  padding: 0 0 9px;
  border-bottom: 1px solid rgba(0, 0, 0, .1);
  color: var(--hd-ink);
  font-size: 16px;
  line-height: 19px;
  font-weight: 500;
  letter-spacing: -0.02em;
  text-transform: none;
}
.fb-hd .fb-hd-bnote { margin: 10px 0 20px; color: rgba(0, 0, 0, .4); font-size: 12px; line-height: 14px; letter-spacing: -0.03em; }

/* 달력 카드 */
.fb-hd .fb-hd-bcal { padding: 20px 30px; }
.fb-hd .fb-hd-bcal-head { padding-bottom: 11px; border-bottom: 1px solid rgba(0, 0, 0, .1); }
.fb-hd .fb-hd-bcal-head .ft-booking-section-title { padding: 0; border: 0; }
.fb-hd .fb-hd-bcal .ft-hotel-date-summary { margin: 6px 0 0; color: rgba(0, 0, 0, .5); font-size: 12px; line-height: 14px; font-weight: 500; letter-spacing: -0.03em; }
/* 4495:86274 — [이전 24] 15 [월 328] 20 [월 328] 15 [다음 24] = 754, 날짜 칸 40 × 40 (간격 4, 좌우 12) */
.fb-hd .fb-hd-calendar {
  margin: 0;
  padding: 20px 39px 0;
  border: 0;
  max-width: 100%;
}
.fb-hd .fb-hd-calendar .ft-rami-calendar-grid { grid-template-columns: repeat(2, 328px); gap: 20px; }
.fb-hd .fb-hd-calendar .ft-rami-calendar-nav { top: calc(50% + 10px); width: 24px; height: 24px; color: #000; }
.fb-hd .fb-hd-calendar .ft-rami-calendar-nav:disabled { color: #999; }
.fb-hd .fb-hd-calendar .ft-rami-calendar-nav--prev { left: 0; }
.fb-hd .fb-hd-calendar .ft-rami-calendar-nav--next { right: 0; }
.fb-hd .fb-hd-calendar .ft-rami-calendar-month h3 {
  margin: 0 0 15px;
  color: var(--hd-ink);
  font-size: 16px;
  line-height: 19px;
  font-weight: 600;
  letter-spacing: -0.03em;
}
.fb-hd .fb-hd-calendar .ft-rami-days {
  grid-template-columns: repeat(7, 40px);
  grid-auto-rows: 40px;
  column-gap: 4px;
  row-gap: 0;
  padding: 0 12px;
}
.fb-hd .fb-hd-calendar .ft-rami-days span,
.fb-hd .fb-hd-calendar .ft-rami-days button {
  width: 36px;
  height: 36px;
  min-height: 36px;
  margin: 2px;
  padding: 0;
  border-radius: 50% !important;
  color: #000;
  font-size: 16px;
  line-height: 24px;
  font-weight: 400;
  letter-spacing: .5px;
}
.fb-hd .fb-hd-calendar .ft-rami-days .is-head { width: 40px; height: 40px; min-height: 40px; margin: 0; font-size: 12px; line-height: 16px; letter-spacing: .4px; color: #000; }
.fb-hd .fb-hd-calendar .ft-rami-days > :nth-child(7n+1) { color: #E1191C; }
.fb-hd .fb-hd-calendar .ft-rami-days > :nth-child(7n) { color: #0071FE; }
.fb-hd .fb-hd-calendar .ft-rami-days .is-disabled { color: rgba(0, 0, 0, .3) !important; text-decoration: line-through; }
.fb-hd .fb-hd-calendar .ft-rami-days .is-available:hover { background: #F2F2F2; }
.fb-hd .fb-hd-calendar .ft-rami-days .is-in-range { background: #EFFFF4; color: var(--hd-green) !important; border-radius: 50% !important; }
.fb-hd .fb-hd-calendar .ft-rami-days .is-available.is-selected,
.fb-hd .fb-hd-calendar .ft-rami-days .is-available.is-selected:hover { background: var(--hd-green); color: #FFFFFF !important; }
.fb-hd .fb-hd-legend {
  display: flex;
  justify-content: flex-end;
  gap: 11.39px;
  margin: 0;
  color: rgba(0, 0, 0, .7);
  font-size: 12.814px;
  line-height: 15px;
  letter-spacing: -0.02em;
}
.fb-hd .fb-hd-legend span { display: inline-flex; align-items: center; gap: 4.271px; }
.fb-hd .fb-hd-legend span::before { content: ""; width: 9.966px; height: 9.966px; border-radius: 50%; }
.fb-hd .fb-hd-legend .is-sel::before { background: var(--hd-green); }
.fb-hd .fb-hd-legend .is-off::before { background: rgba(0, 0, 0, .3); }

/* 접기 카드 */
.fb-hd .fb-hd-fold-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  width: 100%;
  padding: 0;
  border: 0;
  border-bottom: 1px solid rgba(0, 0, 0, .1);
  background: transparent;
  color: var(--hd-ink);
  font: inherit;
  cursor: pointer;
  text-align: left;
}
.fb-hd .fb-hd-fold-head { align-items: center; padding-bottom: 11px; }
.fb-hd .fb-hd-fold-head .ft-booking-section-title { flex: 1; padding: 0; border: 0; }
.fb-hd .fb-hd-fold-head svg { flex-shrink: 0; width: 14px; height: 8px; margin-right: -1px; }
.fb-hd .fb-hd-fold-head svg { transition: transform .2s; }
.fb-hd .fb-hd-fold.is-collapsed .fb-hd-fold-head { border-bottom-color: transparent; }
.fb-hd .fb-hd-fold.is-collapsed .fb-hd-fold-head svg { transform: rotate(180deg); }
.fb-hd .fb-hd-fold.is-collapsed .fb-hd-fold-body { display: none; }
.fb-hd .fb-hd-bpromo { margin: 10px 0 0; padding: 14px 16px; border-radius: 0; background: var(--hd-wash); }

/* 객실 타입 리스트 */
.fb-hd .fb-hd-rooms-pick { display: flex; flex-direction: column; gap: 20px; margin-top: 10px; }
.fb-hd .fb-hd-bpromo + .fb-hd-rooms-pick { margin-top: 25px; }
.fb-hd .fb-hd-pick {
  display: block;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.fb-hd .fb-hd-pick.is-disabled { opacity: .5; cursor: not-allowed; }
.fb-hd .fb-hd-pick-name { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 0; min-height: 20.8px; }
.fb-hd .fb-hd-pick-name .fb-hd-tag { margin: -1.6px 0 -1.6px 8px; }
.fb-hd .fb-hd-pick .fb-hd-tag { height: 24px; padding: 5px 6px; background: #ECF8F0; font-size: 11px; font-weight: 600; }
.fb-hd .fb-hd-pick input[type="radio"],
.fb-hd .fb-hd-opts input[type="checkbox"] {
  -webkit-appearance: none;
  appearance: none;
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  margin: 0 6px 0 0;
  border: 1px solid rgba(0, 0, 0, .15);
  border-radius: 2px;
  box-shadow: none;
  background: #FFFFFF center / 12px 12px no-repeat;
  cursor: pointer;
}
.fb-hd .fb-hd-pick input[type="radio"]:checked,
.fb-hd .fb-hd-opts input[type="checkbox"]:checked {
  border-color: #000;
  background-color: #000;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m2.5 6.2 2.3 2.3 4.7-4.8'/%3E%3C/svg%3E");
}
.fb-hd .fb-hd-pick input:disabled { cursor: not-allowed; }
.fb-hd .fb-hd-pick-text { color: var(--hd-ink); font-size: 16px; line-height: 20.8px; letter-spacing: -0.03em; }
.fb-hd .fb-hd-pick-price { display: block; margin-top: 6px; line-height: 18px; text-align: right; }
.fb-hd .fb-hd-pick-price strong { color: var(--hd-ink); font-size: 15px; line-height: 18px; font-weight: 600; letter-spacing: -0.03em; }
.fb-hd .fb-hd-pick-price em { display: block; color: #E5383B; font-size: 11px; font-style: normal; font-weight: 600; }

/* 선택 객실 상세 */
.fb-hd .fb-hd-room-detail {
  margin: 25px 0 0;
  padding: 14px 16px;
  border: 0;
  border-radius: 0;
  background: var(--hd-wash);
}
/* 룸 설명 박스는 선택된 행 바로 아래에 붙는다 (목록 gap 20px 상쇄) */
.fb-hd .fb-hd-rooms-pick > .fb-hd-room-detail { margin: -8px 0 0; }
.fb-hd .fb-hd-room-detail dl { margin: 0; display: grid; gap: 8px; }
.fb-hd .fb-hd-room-detail dl > div { display: flex; justify-content: space-between; gap: 12px; }
.fb-hd .fb-hd-room-detail dt { color: #333; font-size: 14px; line-height: 20.8px; font-weight: 600; letter-spacing: -0.03em; white-space: nowrap; }
.fb-hd .fb-hd-room-detail dd { margin: 0; color: #666; font-size: 12px; line-height: 1.5; letter-spacing: -0.03em; text-align: right; }
.fb-hd .fb-hd-room-detail-note,
.fb-hd .fb-hd-room-detail-desc { margin: 8px 0 0; color: #666; font-size: 12px; line-height: 1.5; letter-spacing: -0.03em; white-space: pre-wrap; }
/* 장바구니 "객실/기간 변경" 수정 모드 (피그마 3482:83324 의 회색 "옵션 상세 정보" 박스) */
.fb-hd .fb-hd-room-detail-title { margin: 0 0 6px; color: #111; font-size: 16px; line-height: 20.8px; font-weight: 500; letter-spacing: -0.03em; }
.fb-hd .fb-hd-bmodal.is-edit .fb-hd-room-detail { padding: 18px 16px; border: 1px solid #DDD; }
.fb-hd .fb-hd-room-detail .room-rules {
  display: grid;
  gap: 2px;
  margin: 8px 0 0;
  padding: 8px 0 0 18px;
  border-top: 1px solid #DDD;
  list-style: disc;
}
.fb-hd .fb-hd-room-detail .room-rules li { color: #666; font-size: 12px; line-height: 1.5; letter-spacing: -0.03em; }

/* 수량 스테퍼 */
.fb-hd .fb-hd-qty { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 28px; padding: 0; color: var(--hd-ink); font-size: 15px; line-height: 18px; letter-spacing: -0.03em; }
.fb-hd .fb-hd-qty + .fb-hd-qty { margin-top: 16px; }
.fb-hd .fb-hd-stepper { display: flex; align-items: center; gap: 8px; }
.fb-hd .fb-hd-stepper button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  position: relative;
  border: 1px solid rgba(0, 0, 0, .5);
  border-radius: 50%;
  background: #FFFFFF;
  color: #000;
  font: inherit;
  font-size: 0;
  line-height: 0;
  cursor: pointer;
}
/* 피그마 버튼 글리프: − 7.04 × 1.78 / + 같은 크기 세로 막대 추가 */
.fb-hd .fb-hd-stepper button::before,
.fb-hd .fb-hd-stepper button:last-child::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 7.04px;
  height: 1.78px;
  background: currentColor;
  transform: translate(-50%, -50%);
}
.fb-hd .fb-hd-stepper button:last-child::after { width: 1.78px; height: 7.04px; }
.fb-hd .fb-hd-stepper button:disabled,
.fb-hd .fb-hd-stepper button.is-off { border-color: rgba(0, 0, 0, .15); color: rgba(0, 0, 0, .15); }
.fb-hd .fb-hd-stepper button:disabled { cursor: not-allowed; }
.fb-hd .fb-hd-stepper > span { min-width: 10px; color: var(--hd-ink); font-size: 16px; line-height: 19px; letter-spacing: -0.03em; text-align: center; }

/* 추가옵션 (JS 생성 행) */
.fb-hd .fb-hd-opts { display: flex; flex-direction: column; gap: 20px; margin-top: 20px; }
.fb-hd .fb-hd-opts .hotel-option-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.fb-hd .fb-hd-opt-col { min-width: 0; flex: 1; }
.fb-hd .fb-hd-opt-left { display: flex; align-items: center; margin: 0; cursor: pointer; }
.fb-hd .fb-hd-opt-name { color: var(--hd-ink); font-size: 16px; line-height: 20.8px; letter-spacing: -0.03em; }
.fb-hd .fb-hd-opt-info { padding-left: 24px; }
.fb-hd .fb-hd-opt-unit { margin-top: 2px; color: rgba(0, 0, 0, .4); font-size: 12px; line-height: 14px; letter-spacing: -0.03em; }
.fb-hd .fb-hd-opt-sub { display: block; margin-top: 8px; color: var(--hd-ink); font-size: 15px; line-height: 18px; font-weight: 600; letter-spacing: -0.03em; white-space: nowrap; }
.fb-hd .fb-hd-opt-right { flex-shrink: 0; }

/* 푸터 */
.fb-hd .fb-hd-bfoot {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 367px;
  align-items: start;
  gap: 30px;
  margin: 20px 50px 0;
  padding: 20px 0 36px;
  border-top: 1px solid rgba(0, 0, 0, .1); /* 4495:86520 Line 25 black .1 */
  background: #FFFFFF;
  border-radius: 0 0 10px 10px;
}
.fb-hd .fb-hd-bsum { display: block; min-width: 0; text-align: left; }
.fb-hd #hotel-summary-section { width: 100%; }
.fb-hd .fb-hd-sum-row { display: flex; justify-content: space-between; color: var(--hd-gray); font-size: 14px; line-height: 22.4px; letter-spacing: -0.03em; }
.fb-hd .fb-hd-sum-row.is-sub { color: rgba(0, 0, 0, .3); font-size: 12px; line-height: 22.4px; }
.fb-hd .fb-hd-sum-row.is-dc { color: var(--hd-green); }
.fb-hd .fb-hd-sum-total {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid #000;
  color: var(--hd-ink);
  font-size: 16px;
  line-height: 27px;
  font-weight: 500;
  letter-spacing: -0.03em;
}
.fb-hd #summary-total { color: var(--hd-ink); font-size: 22px; font-weight: 600; letter-spacing: -0.03em; }
.fb-hd .fb-hd-helper { margin: 6px 0 0; color: #E5383B; font-size: 12px; line-height: 1.4; font-weight: 600; text-align: left; }
.fb-hd .fb-hd-helper:empty { display: none; }
.fb-hd .fb-hd-bactions { display: flex; gap: 10px; margin: 16.5px 0 0; max-width: none; }
.fb-hd .fb-hd-btn-cart,
.fb-hd .fb-hd-btn-book {
  height: 52px;
  border-radius: 4px !important;
  font: inherit;
  font-size: 15px;
  letter-spacing: -0.03em;
  cursor: pointer;
}
.fb-hd .fb-hd-btn-cart { flex: 0 0 120px; border: 1px solid rgba(0, 0, 0, .15); background: #FFFFFF; color: #000; font-weight: 400; }
.fb-hd .fb-hd-btn-cart:hover { border-color: #000; }
.fb-hd .fb-hd-btn-book { flex: 1; border: 0; background: var(--hd-green); color: #FFFFFF; font-weight: 600; }
.fb-hd .fb-hd-btn-book:hover { background: #16632F; }

/* ==========================================================================
   반응형
   ========================================================================== */
@media (max-width: 1360px) {
  .fb-hd .fb-hd-bbody,
  .fb-hd .fb-hd-bfoot { grid-template-columns: minmax(0, 1fr) 340px; }
  .fb-hd .fb-hd-calendar { padding-left: 36px; padding-right: 36px; }
  .fb-hd .fb-hd-calendar .ft-rami-calendar-grid { gap: 30px; }
}
@media (max-width: 1023px) {
  .fb-hd .fb-hd-layout { flex-direction: column; gap: 30px; padding-top: 20px; padding-bottom: 110px; }
  .fb-hd .fb-hd-main { flex: none; width: 100%; max-width: none; }
  .fb-hd .fb-hd-sidebar { order: -1; position: static; width: 100%; }
  .fb-hd .fb-hd-bbody,
  .fb-hd .fb-hd-bfoot { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .fb-hd .fb-hd-shell { padding-top: 20px; }
  .fb-hd .fb-hd-gallery { grid-template-columns: 1fr; height: auto; }
  .fb-hd .fb-hd-gallery-main { aspect-ratio: 593 / 318; height: auto; }
  .fb-hd .fb-hd-gallery-thumbs { display: none; }
  .fb-hd .fb-hd-side { padding: 20px; }
  .fb-hd .fb-hd-side-bottom { margin-top: 24px; }
  .fb-hd .fb-hd-book { margin-top: 20px; }
  .fb-hd .fb-hd-meta { gap: 2px 14px; }
  .fb-hd .fb-hd-intro { margin-bottom: 40px; }
  .fb-hd .ft-rami-tab { padding: 6px 14px; }
  .fb-hd .fb-hd-related { margin-top: 50px; }
  .fb-hd .fb-hd-related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 12px; }
  .fb-hd .ft-hmap { aspect-ratio: 4 / 3; }
  .fb-hd .fb-hd-room { align-items: flex-start; gap: 10px; padding: 12px; }
  .fb-hd .fb-hd-room-check { margin-top: 2px; }
  .fb-hd .fb-hd-room .fb-hd-room-photo { flex-basis: 96px; width: 96px; height: 64px; }
  .fb-hd .fb-hd-room-head h4 { font-size: 15px; line-height: 1.5; }
  .fb-hd .fb-hd-room-action { margin-top: 8px; }
  .fb-hd .fb-hd-loc { padding: 12px; }
  .fb-hd .fb-hd-addr { flex-wrap: wrap; margin-bottom: 8px; }
  .fb-hd .ft-rami-tab { font-size: 14px; }

  .fb-hd .fb-hd-pop { padding: 0; }
  .fb-hd .fb-hd-pop-inner { min-height: 100%; margin: 0; padding: 24px 16px 32px; border-radius: 0; }
  .fb-hd .fb-hd-pop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto; gap: 6px; }
  .fb-hd .fb-hd-pop-main { grid-column: 1 / -1; grid-row: auto; aspect-ratio: 739 / 396; }
  .fb-hd .fb-hd-pop-thumb { aspect-ratio: 291 / 193; }
  .fb-hd .fb-hd-all-grid { grid-template-columns: 1fr; gap: 8px; }

  .fb-hd .fb-hd-bmodal { padding: 0; }
  .fb-hd .fb-hd-bpanel { width: 100% !important; min-height: 100vh; margin: 0; border-radius: 0 !important; }
  .fb-hd .fb-hd-bhead { padding: 20px 16px 16px; border-radius: 0 !important; }
  .fb-hd .fb-hd-bbody { padding: 0 16px; gap: 16px; }
  .fb-hd .ft-rami-choice-panel--booking .fb-hd-bbody { padding-bottom: 0; }
  .fb-hd .fb-hd-bcal { padding: 18px 16px; }
  .fb-hd .fb-hd-calendar { padding: 16px 0 0; }
  .fb-hd .fb-hd-calendar .ft-rami-calendar-grid { grid-template-columns: 1fr; gap: 20px; }
  .fb-hd .fb-hd-calendar .ft-rami-calendar-nav { top: 28px; transform: none; }
  .fb-hd .fb-hd-calendar .ft-rami-calendar-nav--prev { left: 0; }
  .fb-hd .fb-hd-calendar .ft-rami-calendar-nav--next { right: 0; }
  .fb-hd .fb-hd-calendar .ft-rami-days span,
  .fb-hd .fb-hd-calendar .ft-rami-days button { width: 34px; height: 34px; min-height: 34px; font-size: 15px; }
  .fb-hd .fb-hd-bfoot {
    position: sticky;
    bottom: 0;
    z-index: 5;
    margin: 16px 0 0;
    padding: 12px 16px 16px;
    gap: 0;
    border-radius: 0;
    box-shadow: 0 -4px 12px rgba(0, 0, 0, .06);
  }
  .fb-hd .fb-hd-bactions { margin-top: 10px; }
}
@media (max-width: 480px) {
  .fb-hd .fb-hd-shell,
  .fb-hd .fb-hd-layout { padding-left: 16px; padding-right: 16px; }
  .fb-hd .fb-hd-title { font-size: 18px; line-height: 24px; }
}

/* v3: 루트 -0.02em 이 px(-0.32)로 상속되던 요소 → 피그마 -3% (16px=-0.48, 12px=-0.36) */
.fb-hd .fb-hd-bpanel .ft-booking-section-title,
.fb-hd .fb-hd-helper { letter-spacing: -0.03em; }

/* ==========================================================================
   허니문 상세 변형 (피그마 4482:93090) — .fb-hd--honeymoon 일 때만.
   일반 호텔 상세(3571:80085)와 달리 섹션 구분선이 없고 섹션 간격 30px(제목→본문 10px),
   호텔 소개 박스 안쪽 여백 16px 21px (4482:93160 → 93161 x21 y16).
   ========================================================================== */
.fb-hd.fb-hd--honeymoon .fb-hd-sec {
  padding: 0;
  margin: 0 0 30px;
  border-bottom: 0;
}
.fb-hd.fb-hd--honeymoon .ft-rami-tab-bar + .fb-hd-sec,
.fb-hd.fb-hd--honeymoon #ft-hotel-event { padding-top: 31px; } /* 탭(39) 아래 첫 섹션 y=70 */
.fb-hd.fb-hd--honeymoon .fb-hd-reviews { margin-bottom: 0; }
.fb-hd.fb-hd--honeymoon .fb-hd-intro-box { padding: 16px 21px; }
@media (max-width: 768px) {
  .fb-hd.fb-hd--honeymoon .fb-hd-intro-box { padding: 12px; }
}
