/* =========================
   어메이징캠프 소개
========================= */
.amazing-intro,
.amazing-intro * {
  box-sizing: border-box;
}

.amazing-intro {
  --amazing-point: #f95e00;

  width: 100%;
  padding: 130px 40px;
  overflow: hidden;

  color: #222;
  background: #fff;

  font-family: "Pretendard", sans-serif;
  word-break: keep-all;
}

.amazing-intro img {
  display: block;
  width: 100%;
  max-width: 100%;
}


/* =========================
   전체 배치
========================= */
.amazing-intro-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(480px, 0.95fr);
  grid-template-areas: "gallery content";
  column-gap: 90px;
  align-items: center;

  width: 100%;
  max-width: 1600px;
  margin: 0 auto;
}


/* =========================
   사진 3장 영역
========================= */
.amazing-intro-gallery {
  grid-area: gallery;

  display: grid;
  grid-template-columns: 1.22fr 0.78fr;
  grid-template-rows: repeat(2, 270px);
  gap: 18px;

  min-width: 0;
}

.amazing-intro-photo {
  position: relative;
  min-width: 0;
  overflow: hidden;

  border-radius: 4px;
  background: #eee;
}

.amazing-intro-photo-large {
  grid-row: 1 / 3;
}

.amazing-intro-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;

  transition: transform 0.8s ease;
}

.amazing-intro-photo::after {
  content: "";
  position: absolute;
  inset: 0;

  border: 1px solid rgba(255, 255, 255, 0.25);
  pointer-events: none;
}

.amazing-intro-photo:hover img {
  transform: scale(1.045);
}


/* =========================
   내용 영역
========================= */
.amazing-intro-content {
  grid-area: content;
  min-width: 0;
}

.amazing-intro-label {
  display: block;
  margin-bottom: 16px;

  color: var(--amazing-point);
  font-size: 15px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: 0.18em;
}

.amazing-intro-title {
  margin: 0;

  color: #111;
  font-size: clamp(36px, 3vw, 54px);
  line-height: 1.28;
  font-weight: 300;
  letter-spacing: -0.055em;
}

.amazing-intro-title strong {
  color: var(--amazing-point);
  font-weight: 700;
}

.amazing-intro-welcome {
  margin: 20px 0 0;

  color: #222;
  font-size: clamp(19px, 1.25vw, 24px);
  line-height: 1.55;
  font-weight: 700;
  letter-spacing: -0.035em;
}

.amazing-intro-line {
  display: block;
  width: 55px;
  height: 3px;
  margin: 28px 0;

  background: var(--amazing-point);
}


/* =========================
   설명 문구
========================= */
.amazing-intro-description {
  color: #555;
  font-size: 17px;
  line-height: 1.85;
  font-weight: 400;
  letter-spacing: -0.02em;
}

.amazing-intro-description p {
  margin: 0 0 18px;
}

.amazing-intro-description p:last-child {
  margin-bottom: 0;
}


/* =========================
   하단 포인트
========================= */
.amazing-intro-points {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;

  margin-top: 35px;
  padding-top: 28px;

  border-top: 1px solid #ddd;
}

.amazing-intro-point {
  position: relative;
  min-width: 0;
  padding-left: 42px;
}

.amazing-intro-point span {
  position: absolute;
  top: 1px;
  left: 0;

  color: var(--amazing-point);
  font-size: 14px;
  line-height: 1.4;
  font-weight: 800;
}

.amazing-intro-point strong {
  display: block;

  color: #222;
  font-size: 15px;
  line-height: 1.5;
  font-weight: 700;
  letter-spacing: -0.03em;
}


/* =========================
   1400px 이하
========================= */
@media screen and (max-width: 1400px) {
  .amazing-intro {
    padding: 110px 35px;
  }

  .amazing-intro-inner {
    grid-template-columns: minmax(0, 1fr) minmax(430px, 0.9fr);
    column-gap: 60px;
  }

  .amazing-intro-gallery {
    grid-template-rows: repeat(2, 240px);
  }

  .amazing-intro-description {
    font-size: 16px;
  }
}


/* =========================
   1200px 이하
========================= */
@media screen and (max-width: 1200px) {
  .amazing-intro {
    padding: 90px 30px;
  }

  .amazing-intro-inner {
    grid-template-columns: 48% 52%;
    column-gap: 45px;
  }

  .amazing-intro-gallery {
    grid-template-columns: 1fr 0.8fr;
    grid-template-rows: repeat(2, 210px);
    gap: 12px;
  }

  .amazing-intro-title {
    font-size: 38px;
  }

  .amazing-intro-welcome {
    font-size: 19px;
  }

  .amazing-intro-description {
    font-size: 15px;
    line-height: 1.75;
  }

  .amazing-intro-points {
    margin-top: 26px;
    padding-top: 22px;
  }

  .amazing-intro-point {
    padding-left: 0;
  }

  .amazing-intro-point span {
    position: static;
    display: block;
    margin-bottom: 4px;
  }
}


/* =========================
   1024px 이하
========================= */
@media screen and (max-width: 1024px) {
  .amazing-intro {
    padding: 80px 24px;
  }

  .amazing-intro-inner {
    grid-template-columns: 100%;
    grid-template-areas:
      "gallery"
      "content";
    row-gap: 55px;
  }

  .amazing-intro-gallery {
    grid-template-columns: 1.25fr 0.75fr;
    grid-template-rows: repeat(2, 260px);
  }

  .amazing-intro-content {
    max-width: 820px;
    margin: 0 auto;
  }

  .amazing-intro-description {
    font-size: 16px;
  }
}


/* =========================
   768px 이하
========================= */
@media screen and (max-width: 768px) {
  .amazing-intro {
    padding: 65px 20px;
  }

  .amazing-intro-inner {
    row-gap: 40px;
  }

  .amazing-intro-gallery {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: 300px 185px;
    gap: 10px;
  }

  .amazing-intro-photo-large {
    grid-column: 1 / 3;
    grid-row: 1;
  }

  .amazing-intro-title {
    font-size: 34px;
  }

  .amazing-intro-welcome {
    margin-top: 15px;
    font-size: 18px;
  }

  .amazing-intro-line {
    margin: 23px 0;
  }

  .amazing-intro-description {
    font-size: 15px;
    line-height: 1.8;
  }

  .amazing-intro-points {
    grid-template-columns: 100%;
    gap: 13px;
  }

  .amazing-intro-point {
    padding: 12px 15px 12px 55px;
    background: #f7f7f7;
  }

  .amazing-intro-point span {
    position: absolute;
    top: 13px;
    left: 15px;
    margin: 0;
  }
}


/* =========================
   480px 이하
========================= */
@media screen and (max-width: 480px) {
  .amazing-intro {
    padding: 55px 0px;
  }

  .amazing-intro-gallery {
    grid-template-rows: 230px 135px;
    gap: 7px;
  }

  .amazing-intro-title {
    font-size: 29px;
    line-height: 1.35;
  }

  .amazing-intro-welcome {
    font-size: 17px;
  }

  .amazing-intro-label {
    margin-bottom: 12px;
    font-size: 12px;
  }

  .amazing-intro-description {
    font-size: 17px;
    line-height: 1.8;
  }

  .amazing-intro-description p {
    margin-bottom: 15px;
  }

  .amazing-intro-point strong {
    font-size: 14px;
  }
}




/* =========================
   오시는 길 기본 설정
========================= */
.amazing-location,
.amazing-location * {
  box-sizing: border-box;
}

.amazing-location {
  --location-point: #f95e00;
  --location-map-height: 620px;

  width: 100%;
  padding: 120px 40px;
  overflow: hidden;

  color: #222;
  background: #f7f7f7;

  font-family: "Pretendard", sans-serif;
  word-break: keep-all;
}

.amazing-location img {
  display: block;
  width: 100%;
  max-width: 100%;
}

.amazing-location a {
  color: inherit;
  text-decoration: none;
}

.amazing-location-inner {
  width: 100%;
  max-width: 1600px;
  margin: 0 auto;
}


/* =========================
   상단 제목
========================= */
.amazing-location-heading {
  margin-bottom: 55px;
  text-align: center;
}

.amazing-location-label {
  display: block;
  margin-bottom: 12px;

  color: var(--location-point);

  font-size: 14px;
  line-height: 1.4;
  font-weight: 800;
  letter-spacing: 0.22em;
}

.amazing-location-title {
  margin: 0;

  color: #111;

  font-size: clamp(36px, 3vw, 54px);
  line-height: 1.3;
  font-weight: 300;
  letter-spacing: -0.055em;
}

.amazing-location-title strong {
  color: var(--location-point);
  font-weight: 700;
}

.amazing-location-subtitle {
  margin: 16px 0 0;

  color: #666;

  font-size: 18px;
  line-height: 1.7;
  font-weight: 400;
  letter-spacing: -0.025em;
}


/* =========================
   지도와 정보 좌우 배치
========================= */
.amazing-location-container {
  display: grid;
  grid-template-columns:
    minmax(0, 1.35fr)
    minmax(430px, 0.65fr);

  width: 100%;

  overflow: hidden;
  background: #fff;

  box-shadow:
    0 25px 70px rgba(0, 0, 0, 0.08);
}


/* =========================
   카카오맵 영역
========================= */
.amazing-location-map {
  position: relative;

  width: 100%;
  height: var(--location-map-height);
  min-width: 0;

  overflow: hidden;
  background: #e9e9e9;
}

.amazing-kakao-map {
  position: relative;

  width: 100%;
  height: 100%;

  overflow: hidden;
}


/* 카카오맵 iframe */
.amazing-kakao-map iframe {
  display: block;

  width: 100% !important;
  height: 100% !important;

  border: 0;
}


/* 카카오맵에서 생성되는 요소 크기 조절 */
.amazing-kakao-map .root_daum_roughmap,
.amazing-kakao-map .wrap_map,
.amazing-kakao-map .map,
.amazing-kakao-map > div {
  width: 100% !important;
  height: 100% !important;
}


/* 카카오맵 하단 정보바가 생성되는 경우 */
.amazing-kakao-map .wrap_controllers {
  width: 100% !important;
}


/* =========================
   지도 삽입 전 임시 화면
========================= */
.amazing-map-placeholder {
  position: absolute;
  inset: 0;

  background:
    linear-gradient(
      rgba(255, 255, 255, 0.82),
      rgba(255, 255, 255, 0.82)
    ),
    url("/theme/amazing/img/location_bg.jpg");

  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

.amazing-map-placeholder-inner {
  position: absolute;
  top: 50%;
  left: 50%;

  width: calc(100% - 40px);

  text-align: center;

  transform: translate(-50%, -50%);
}

.amazing-map-placeholder-inner img {
  width: 65px;
  height: 65px;
  margin: 0 auto 18px;

  object-fit: contain;
}

.amazing-map-placeholder-inner strong {
  display: block;

  color: #222;

  font-size: 24px;
  line-height: 1.4;
  font-weight: 700;
}

.amazing-map-placeholder-inner span {
  display: block;
  margin-top: 7px;

  color: #777;

  font-size: 15px;
  line-height: 1.6;
}


/* =========================
   오른쪽 정보 영역
========================= */
.amazing-location-info {
  min-width: 0;
  padding: 55px 50px;

  background: #fff;
}

.amazing-location-info-top {
  margin-bottom: 30px;
  padding-bottom: 28px;

  border-bottom: 1px solid #e4e4e4;
}

.amazing-location-info-top > span {
  display: block;
  margin-bottom: 10px;

  color: var(--location-point);

  font-size: 13px;
  line-height: 1.4;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.amazing-location-info-top h3 {
  margin: 0;

  color: #111;

  font-size: 32px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: -0.045em;
}

.amazing-location-info-top p {
  margin: 12px 0 0;

  color: #777;

  font-size: 15px;
  line-height: 1.75;
  font-weight: 400;
  letter-spacing: -0.02em;
}


/* =========================
   주소 및 전화번호
========================= */
.amazing-location-item {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  column-gap: 18px;

  padding: 18px 0;

  border-bottom: 1px solid #ededed;
}

.amazing-location-icon {
  width: 52px;
  height: 52px;
  padding: 0px;

  border-radius: 50%;
  background: #fff3ec;
}

.amazing-location-icon img {
  width: 100%;
  height: 100%;

  object-fit: contain;
}

.amazing-location-detail {
  min-width: 0;
}

.amazing-location-item-title {
  display: block;
  margin-bottom: 5px;

  color: var(--location-point);

  font-size: 12px;
  line-height: 1.4;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.amazing-location-detail strong,
.amazing-location-phone {
  display: block;

  color: #222;

  font-size: 19px;
  line-height: 1.5;
  font-weight: 700;
  letter-spacing: -0.03em;
}

.amazing-location-phone {
  transition: color 0.25s ease;
}

.amazing-location-phone:hover {
  color: var(--location-point);
}

.amazing-location-detail p {
  margin: 4px 0 0;

  color: #888;

  font-size: 14px;
  line-height: 1.6;
  font-weight: 400;
  letter-spacing: -0.02em;
}


/* =========================
   네이버·카카오 버튼
========================= */
.amazing-location-buttons {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;

  margin-top: 28px;
}

.amazing-location-button {
  display: block;
  position: relative;

  min-height: 58px;
  padding: 17px 15px 17px 43px;

  border: 1px solid #ddd;
  border-radius: 4px;

  background: #fff;

  font-size: 15px;
  line-height: 22px;
  font-weight: 700;
  text-align: center;
  letter-spacing: -0.03em;

  transition:
    color 0.25s ease,
    background-color 0.25s ease,
    border-color 0.25s ease,
    transform 0.25s ease;
}

.amazing-location-button-logo {
  position: absolute;
  top: 50%;
  left: 18px;

  display: block;

  width: 24px;
  height: 24px;

  border-radius: 50%;

  color: #fff;

  font-size: 13px;
  line-height: 24px;
  font-weight: 900;
  text-align: center;

  transform: translateY(-50%);
}


/* 네이버 버튼 */
.amazing-location-button-naver {
  color: #03a94d;
  border-color: #03a94d;
}

.amazing-location-button-naver
.amazing-location-button-logo {
  background: #03c75a;
}

.amazing-location-button-naver:hover {
  color: #fff;
  background: #03c75a;
  border-color: #03c75a;

  transform: translateY(-3px);
}


/* 카카오 버튼 */
.amazing-location-button-kakao {
  color: #3c1e1e;
  border-color: #f4cf00;
}

.amazing-location-button-kakao
.amazing-location-button-logo {
  color: #3c1e1e;
  background: #fee500;
}

.amazing-location-button-kakao:hover {
  color: #3c1e1e;
  background: #fee500;
  border-color: #fee500;

  transform: translateY(-3px);
}


/* =========================
   1300px 이하
========================= */
@media screen and (max-width: 1300px) {
  .amazing-location {
    --location-map-height: 560px;

    padding: 100px 30px;
  }

  .amazing-location-container {
    grid-template-columns:
      minmax(0, 1.15fr)
      minmax(400px, 0.85fr);
  }

  .amazing-location-info {
    padding: 45px 38px;
  }

  .amazing-location-buttons {
    grid-template-columns: 100%;
  }
}


/* =========================
   1024px 이하
========================= */
@media screen and (max-width: 1024px) {
  .amazing-location {
    --location-map-height: 430px;

    padding: 80px 24px;
  }

  .amazing-location-heading {
    margin-bottom: 40px;
  }

  .amazing-location-container {
    grid-template-columns: 100%;
  }

  .amazing-location-info {
    padding: 48px 45px;
  }

  .amazing-location-buttons {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}


/* =========================
   768px 이하
========================= */
@media screen and (max-width: 768px) {
  .amazing-location {
    --location-map-height: 320px;

    padding: 65px 20px;
  }

  .amazing-location-title {
    font-size: 34px;
  }

  .amazing-location-subtitle {
    font-size: 16px;
  }

  .amazing-location-info {
    padding: 40px 30px;
  }

  .amazing-location-info-top h3 {
    font-size: 28px;
  }

  .amazing-location-buttons {
    grid-template-columns: 100%;
  }

  .amazing-map-placeholder-inner img {
    width: 52px;
    height: 52px;
    margin-bottom: 13px;
  }

  .amazing-map-placeholder-inner strong {
    font-size: 20px;
  }

  .amazing-map-placeholder-inner span {
    font-size: 13px;
  }
}


/* =========================
   480px 이하
========================= */
@media screen and (max-width: 480px) {
  .amazing-location {
    --location-map-height: 250px;

    padding: 55px 16px;
  }

  .amazing-location-heading {
    margin-bottom: 30px;
  }

  .amazing-location-title {
    font-size: 29px;
  }

  .amazing-location-container {
    box-shadow:
      0 15px 40px rgba(0, 0, 0, 0.08);
  }

  .amazing-location-info {
    padding: 34px 21px;
  }

  .amazing-location-info-top {
    margin-bottom: 25px;
    padding-bottom: 24px;
  }

  .amazing-location-info-top h3 {
    font-size: 24px;
  }

  .amazing-location-item {
    grid-template-columns: 44px minmax(0, 1fr);
    column-gap: 13px;

    padding: 16px 0;
  }

  .amazing-location-icon {
    width: 44px;
    height: 44px;
    padding: 11px;
  }

  .amazing-location-detail strong,
  .amazing-location-phone {
    font-size: 17px;
  }

  .amazing-location-detail p {
    font-size: 13px;
  }

  .amazing-location-button {
    min-height: 54px;
    padding-top: 15px;
    padding-bottom: 15px;

    font-size: 14px;
  }

  .amazing-map-placeholder-inner img {
    width: 44px;
    height: 44px;
  }

  .amazing-map-placeholder-inner strong {
    font-size: 18px;
  }
}





/* =========================
   객실 소개 기본 설정
========================= */
.room-detail,
.room-detail * {
  box-sizing: border-box;
}

.room-detail {
  --room-point: #f95e00;
  --room-point-light: #fff3ec;

  width: 100%;
  padding: 60px 40px;
  overflow: hidden;

  color: #222;
  background: #fff;

  font-family: "Pretendard", sans-serif;
  word-break: keep-all;
}

.room-detail img {
  display: block;
  width: 100%;
  max-width: 100%;
}

.room-detail button {
  font: inherit;
}

.room-detail-inner {
  width: 100%;
  max-width: 1600px;
  margin: 0 auto;
}


/* =========================
   상단 제목
========================= */
.room-detail-heading {
  margin-bottom: 65px;
  text-align: center;
}

.room-detail-label {
  display: block;
  margin-bottom: 12px;

  color: var(--room-point);

  font-size: 14px;
  line-height: 1.4;
  font-weight: 800;
  letter-spacing: 0.2em;
}

.room-detail-title {
  margin: 0;

  color: #111;

  font-size: clamp(38px, 3.2vw, 58px);
  line-height: 1.25;
  font-weight: 300;
  letter-spacing: -0.055em;
}

.room-detail-title strong {
  color: var(--room-point);
  font-weight: 700;
}

.room-detail-subtitle {
  max-width: 700px;
  margin: 18px auto 0;

  color: #666;

  font-size: 18px;
  line-height: 1.75;
  font-weight: 400;
  letter-spacing: -0.025em;
}


/* =========================
   객실 개요 및 가격
========================= */
.room-overview {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 410px;
  gap: 30px;

  margin-bottom: 30px;
}

.room-overview-content {
  padding: 58px 60px;

  background: #f7f7f7;
}

.room-overview-number {
  display: block;
  margin-bottom: 16px;

  color: var(--room-point);

  font-size: 13px;
  line-height: 1.4;
  font-weight: 800;
  letter-spacing: 0.16em;
}

.room-overview-content h3 {
  margin: 0;

  color: #111;

  font-size: clamp(31px, 2.5vw, 44px);
  line-height: 1.35;
  font-weight: 300;
  letter-spacing: -0.05em;
}

.room-overview-content p {
  max-width: 720px;
  margin: 22px 0 0;

  color: #666;

  font-size: 19px;
  line-height: 1.8;
  font-weight: 400;
  letter-spacing: -0.02em;
}


/* 가격 카드 */
.room-price-card {
  padding: 58px 45px;

  color: #fff;
  background: var(--room-point);

  text-align: center;
}

.room-price-label {
  display: block;
  margin-bottom: 28px;

  color: rgba(255, 255, 255, 0.8);

  font-size: 13px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: 0.16em;
}

.room-price {
  white-space: nowrap;
}

.room-price strong {
  display: inline-block;

  color: #fff;

  font-size: clamp(43px, 4vw, 62px);
  line-height: 1.15;
  font-weight: 800;
  letter-spacing: -0.05em;
}

.room-price span {
  display: inline-block;
  margin-left: 4px;

  color: #fff;

  font-size: 20px;
  line-height: 1.4;
  font-weight: 700;
}

.room-price-card p {
  margin: 21px 0 0;
  padding-top: 20px;

  border-top: 1px solid rgba(255, 255, 255, 0.35);

  color: #fff;

  font-size: 19px;
  line-height: 1.5;
  font-weight: 600;
}


/* =========================
   객실 상세 정보
========================= */
.room-info-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));

  margin-bottom: 30px;

  border-top: 1px solid #ddd;
  border-left: 1px solid #ddd;
}

.room-info-box {
  position: relative;
  min-height: 245px;
  padding: 38px 32px;

  border-right: 1px solid #ddd;
  border-bottom: 1px solid #ddd;

  background: #fff;
}

.room-info-number {
  display: block;
  margin-bottom: 22px;

  color: var(--room-point);

  font-size: 13px;
  line-height: 1.4;
  font-weight: 800;
}

.room-info-box h4 {
  margin: 0 0 17px;

  color: #111;

  font-size: 22px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: -0.035em;
}

.room-info-box p {
  margin: 0 0 5px;

  color: #666;

  font-size: 16px;
  line-height: 1.6;
}

.room-info-box > strong {
  display: block;

  color: #222;

  font-size: 18px;
  line-height: 1.6;
  font-weight: 700;
}

.room-info-box ul {
  margin: 0;
  padding: 0;

  list-style: none;
}

.room-info-box li {
  position: relative;
  margin-bottom: 7px;
  padding-left: 13px;

  color: #555;

  font-size: 17px;
  line-height: 1.6;
}

.room-info-box li::before {
  content: "";
  position: absolute;
  top: 11px;
  left: 0;

  width: 4px;
  height: 4px;

  border-radius: 50%;
  background: var(--room-point);
}

.room-info-box dl {
  margin: 0;
}

.room-info-box dl > div {
  display: grid;
  grid-template-columns: 55px 1fr;

  margin-bottom: 8px;
}

.room-info-box dt {
  color: #777;

  font-size: 17px;
  line-height: 1.6;
}

.room-info-box dd {
  margin: 0;

  color: #222;

  font-size: 17px;
  line-height: 1.6;
  font-weight: 700;
}


/* =========================
   선택사항
========================= */
.room-option {
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);

  margin-bottom: 110px;

  background: #202020;
}

.room-option-title {
  padding: 40px;

  color: #fff;
  background: var(--room-point);
}

.room-option-title span {
  display: block;
  margin-bottom: 8px;

  color: rgba(255, 255, 255, 0.8);

  font-size: 12px;
  line-height: 1.4;
  font-weight: 800;
  letter-spacing: 0.15em;
}

.room-option-title h3 {
  margin: 0;

  color: #fff;

  font-size: 27px;
  line-height: 1.4;
  font-weight: 700;
}

.room-option-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));

  padding: 30px 45px;
}

.room-option-item {
  position: relative;
  min-height: 80px;
  padding: 9px 35px 9px 0;

  border-right: 1px solid rgba(255, 255, 255, 0.16);
}

.room-option-item:last-child {
  padding-left: 40px;
  border-right: 0;
}

.room-option-name {
  display: block;
  margin-bottom: 4px;

  color: #aaa;

  font-size: 16px;
  line-height: 1.5;
  font-weight: 500;
}

.room-option-item strong {
  display: block;

  color: #fff;

  font-size: 23px;
  line-height: 1.4;
  font-weight: 700;
}

.room-option-item small {
  display: block;
  margin-top: 2px;

  color: #aaa;

  font-size: 16px;
  line-height: 1.5;
}


/* =========================
   객실 갤러리 제목
========================= */
.room-gallery-heading {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;

  margin-bottom: 32px;
}

.room-gallery-label {
  display: block;
  margin-bottom: 7px;

  color: var(--room-point);

  font-size: 13px;
  line-height: 1.4;
  font-weight: 800;
  letter-spacing: 0.16em;
}

.room-gallery-heading h3 {
  margin: 0;

  color: #111;

  font-size: clamp(31px, 2.5vw, 43px);
  line-height: 1.35;
  font-weight: 700;
  letter-spacing: -0.05em;
}

.room-gallery-heading p {
  margin: 0 0 6px;

  color: #777;

  font-size: 15px;
  line-height: 1.6;
}


/* =========================
   사진 10장 갤러리
========================= */
.room-gallery-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: 245px;
  gap: 14px;
}

.room-gallery-item {
  position: relative;

  width: 100%;
  min-width: 0;
  height: 100%;
  padding: 0;

  overflow: hidden;

  border: 0;
  background: #eee;

  cursor: pointer;
}

.room-gallery-item-main {
  grid-column: span 2;
  grid-row: span 2;
}

.room-gallery-item-wide {
  grid-column: span 2;
}

.room-gallery-item img {
  width: 100%;
  height: 100%;

  object-fit: cover;

  transition:
    transform 0.7s ease,
    filter 0.4s ease;
}

.room-gallery-item::after {
  content: "";
  position: absolute;
  inset: 0;

  background: rgba(0, 0, 0, 0);

  transition: background-color 0.35s ease;
}

.room-gallery-view {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;

  min-width: 105px;
  padding: 10px 18px;

  border: 1px solid rgba(255, 255, 255, 0.9);
  border-radius: 50px;

  color: #fff;
  background: rgba(0, 0, 0, 0.25);

  font-size: 13px;
  line-height: 1.4;
  font-weight: 600;
  text-align: center;

  opacity: 0;

  transform: translate(-50%, -35%);
  transition:
    opacity 0.35s ease,
    transform 0.35s ease;
}

.room-gallery-item:hover img {
  transform: scale(1.045);
  filter: brightness(0.85);
}

.room-gallery-item:hover::after {
  background: rgba(0, 0, 0, 0.12);
}

.room-gallery-item:hover .room-gallery-view {
  opacity: 1;
  transform: translate(-50%, -50%);
}


/* =========================
   사진 확대 팝업
========================= */
.room-lightbox,
.room-lightbox * {
  box-sizing: border-box;
}

.room-lightbox {
  position: fixed;
  inset: 0;
  z-index: 99999;

  display: grid;
  grid-template-columns: 80px minmax(0, 1fr) 80px;
  align-items: center;

  padding: 50px 30px;

  background: rgba(0, 0, 0, 0.94);

  opacity: 0;
  visibility: hidden;

  transition:
    opacity 0.35s ease,
    visibility 0.35s ease;
}

.room-lightbox.is-open {
  opacity: 1;
  visibility: visible;
}

.room-lightbox-content {
  width: 100%;
  max-width: 1350px;
  margin: 0 auto;

  text-align: center;
}

.room-lightbox-image {
  display: block;

  width: auto;
  max-width: 100%;
  max-height: calc(100vh - 150px);
  margin: 0 auto;

  object-fit: contain;
}

.room-lightbox-caption {
  display: inline-block;
  margin: 15px 0 0;

  color: #fff;

  font-size: 15px;
  line-height: 1.6;
}

.room-lightbox-count {
  display: inline-block;
  margin-left: 13px;

  color: #aaa;

  font-size: 14px;
  line-height: 1.6;
}

.room-lightbox-close {
  position: absolute;
  top: 22px;
  right: 28px;
  z-index: 2;

  width: 48px;
  height: 48px;
  padding: 0;

  border: 0;
  background: none;
  color: #fff;

  font-size: 45px;
  line-height: 45px;
  font-weight: 200;

  cursor: pointer;
}

.room-lightbox-arrow {
  width: 58px;
  height: 58px;
  padding-bottom:10px;

  border: 1px solid rgba(255, 255, 255, 0.45);
  border-radius: 50%;

  color: #fff;
  background: rgba(255, 255, 255, 0.05);

  font-size: 43px;
  line-height:10px !important;
  font-weight: 200;

  cursor: pointer;

  transition:
    color 0.25s ease,
    background-color 0.25s ease,
    border-color 0.25s ease;
}

.room-lightbox-arrow:hover {
  color: #fff;
  background: var(--room-point, #f95e00);
  border-color: var(--room-point, #f95e00);
}


/* =========================
   1300px 이하
========================= */
@media screen and (max-width: 1300px) {
  .room-detail {
    padding: 100px 30px;
  }

  .room-overview {
    grid-template-columns: minmax(0, 1fr) 360px;
  }

  .room-overview-content {
    padding: 50px;
  }

  .room-info-box {
    padding: 32px 25px;
  }

  .room-gallery-grid {
    grid-auto-rows: 215px;
  }
}


/* =========================
   1024px 이하
========================= */
@media screen and (max-width: 1024px) {
  .room-detail {
    padding: 80px 24px;
  }

  .room-detail-heading {
    margin-bottom: 45px;
  }

  .room-overview {
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 18px;
  }

  .room-overview-content {
    padding: 42px 38px;
  }

  .room-price-card {
    padding: 45px 28px;
  }

  .room-info-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .room-info-box {
    min-height: 220px;
  }

  .room-option {
    grid-template-columns: 210px minmax(0, 1fr);
    margin-bottom: 85px;
  }

  .room-gallery-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-auto-rows: 210px;
  }

  .room-gallery-item-main {
    grid-column: span 2;
    grid-row: span 2;
  }

  .room-gallery-item-wide {
    grid-column: span 2;
  }

  .room-lightbox {
    grid-template-columns: 60px minmax(0, 1fr) 60px;
    padding-right: 18px;
    padding-left: 18px;
  }

  .room-lightbox-arrow {
    width: 48px;
    height: 48px;

    font-size: 36px;
    line-height: 41px;
  }
}


/* =========================
   768px 이하
========================= */
@media screen and (max-width: 768px) {
  .room-detail {
    padding: 65px 20px;
  }

  .room-detail-title {
    font-size: 35px;
  }

  .room-detail-subtitle {
    font-size: 18px;
  }

  .room-overview {
    grid-template-columns: 100%;
  }

  .room-overview-content {
    padding: 38px 30px;
  }

  .room-overview-content p {
    font-size: 17px;
  }

  .room-price-card {
    padding: 35px 25px;
  }

  .room-price-label {
    margin-bottom: 15px;
  }

  .room-info-box {
    min-height: 205px;
  }

  .room-option {
    grid-template-columns: 100%;
    margin-bottom: 70px;
  }

  .room-option-title {
    padding: 28px 30px;
  }

  .room-option-list {
    padding: 25px 30px;
  }

  .room-gallery-heading {
    grid-template-columns: 100%;
  }

  .room-gallery-heading p {
    margin-top: 10px;
  }

  .room-gallery-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 190px;
    gap: 8px;
  }

  .room-gallery-item-main {
    grid-column: span 2;
    grid-row: span 1;
    height: 330px;
  }

  .room-gallery-item-wide {
    grid-column: span 2;
    height: 260px;
  }

  .room-gallery-view {
    display: none;
  }

  .room-lightbox {
    grid-template-columns: 45px minmax(0, 1fr) 45px;
    padding: 45px 5px 30px;
  }

  .room-lightbox-arrow {
    width: 40px;
    height: 40px;

    font-size: 31px;
    line-height: 34px;
  }

  .room-lightbox-close {
    top: 10px;
    right: 14px;
  }

  .room-lightbox-caption {
    max-width: 75%;
    font-size: 13px;
  }
}


/* =========================
   480px 이하
========================= */
@media screen and (max-width: 480px) {
  .room-detail {
    padding: 55px 0px;
  }

  .room-detail-heading {
    margin-bottom: 35px;
  }

  .room-detail-title {
    font-size: 29px;
  }

  .room-detail-label {
    font-size: 12px;
  }

  .room-overview-content {
    padding: 32px 22px;
  }

  .room-overview-content h3 {
    font-size: 28px;
  }

  .room-price strong {
    font-size: 44px;
  }

  .room-info-grid {
    grid-template-columns: 100%;
  }

  .room-info-box {
    min-height: 0;
    padding: 28px 23px;
  }

  .room-info-number {
    margin-bottom: 13px;
  }

  .room-option-title {
    padding: 25px 22px;
  }

  .room-option-list {
    grid-template-columns: 100%;
    padding: 15px 22px;
  }

  .room-option-item {
    min-height: 0;
    padding: 18px 0;

    border-right: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.16);
  }

  .room-option-item:last-child {
    padding: 18px 0;
    border-bottom: 0;
  }

  .room-gallery-grid {
    grid-auto-rows: 145px;
    gap: 6px;
  }

  .room-gallery-item-main {
    height: 240px;
  }

  .room-gallery-item-wide {
    height: 190px;
  }

  .room-gallery-heading h3 {
    font-size: 29px;
  }

  .room-lightbox {
    grid-template-columns: 38px minmax(0, 1fr) 38px;
  }

  .room-lightbox-arrow {
    width: 34px;
    height: 34px;

    font-size: 27px;
    line-height: 28px;
  }

  .room-lightbox-caption {
    display: block;
    max-width: 100%;
    margin-top: 12px;
  }

  .room-lightbox-count {
    margin: 3px 0 0;
  }
}


/* =========================
   당일캠핑 기본 설정
========================= */
.daycamp-detail,
.daycamp-detail * {
  box-sizing: border-box;
}

.daycamp-detail {
  --daycamp-point: #f95e00;
  --daycamp-point-light: #fff3ec;

  width: 100%;
  padding: 60px 40px;
  overflow: hidden;

  color: #222;
  background: #fff;

  font-family: "Pretendard", sans-serif;
  word-break: keep-all;
}

.daycamp-detail img {
  display: block;
  width: 100%;
  max-width: 100%;
}

.daycamp-detail button {
  font: inherit;
}

.daycamp-inner {
  width: 100%;
  max-width: 1600px;
  margin: 0 auto;
}


/* =========================
   상단 제목
========================= */
.daycamp-heading {
  margin-bottom: 60px;
  text-align: center;
}

.daycamp-label {
  display: block;
  margin-bottom: 12px;

  color: var(--daycamp-point);
  font-size: 14px;
  line-height: 1.4;
  font-weight: 800;
  letter-spacing: 0.2em;
}

.daycamp-title {
  margin: 0;

  color: #111;
  font-size: clamp(38px, 3.2vw, 58px);
  line-height: 1.3;
  font-weight: 300;
  letter-spacing: -0.055em;
}

.daycamp-title strong {
  color: var(--daycamp-point);
  font-weight: 700;
}

.daycamp-subtitle {
  margin: 18px 0 0;

  color: #666;
  font-size: 18px;
  line-height: 1.75;
  font-weight: 400;
  letter-spacing: -0.025em;
}


/* =========================
   공통 이용 안내
========================= */
.daycamp-common-info {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));

  margin-bottom: 100px;

  border-top: 1px solid #ddd;
  border-left: 1px solid #ddd;
}

.daycamp-common-item {
  min-height: 165px;
  padding: 31px 28px;

  border-right: 1px solid #ddd;
  border-bottom: 1px solid #ddd;

  text-align: center;
}

.daycamp-common-item > span {
  display: block;
  margin-bottom: 13px;

  color: var(--daycamp-point);
  font-size: 12px;
  line-height: 1.4;
  font-weight: 800;
  letter-spacing: 0.15em;
}

.daycamp-common-item strong {
  display: block;

  color: #111;
  font-size: 23px;
  line-height: 1.5;
  font-weight: 700;
}

.daycamp-common-item p {
  margin: 5px 0 0;

  color: #888;
  font-size: 18px;
  line-height: 1.6;
}


/* =========================
   객실 구분
========================= */
.daycamp-room {
  margin-bottom: 120px;
}

.daycamp-room-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  align-items: stretch;

  margin-bottom: 25px;
}

.daycamp-room-name {
  padding: 48px 55px;
  background: #f7f7f7;
}

.daycamp-room-name > span {
  display: block;
  margin-bottom: 13px;

  color: var(--daycamp-point);
  font-size: 13px;
  line-height: 1.4;
  font-weight: 800;
  letter-spacing: 0.16em;
}

.daycamp-room-name h3 {
  margin: 0;

  color: #111;
  font-size: clamp(32px, 2.7vw, 46px);
  line-height: 1.3;
  font-weight: 300;
  letter-spacing: -0.055em;
}

.daycamp-room-name h3 strong {
  color: var(--daycamp-point);
  font-weight: 700;
}

.daycamp-room-name p {
  margin: 18px 0 0;

  color: #666;
  font-size: 18px;
  line-height: 1.75;
  letter-spacing: -0.02em;
}


/* 가격 */
.daycamp-price {
  padding: 45px 35px;

  color: #fff;
  background: var(--daycamp-point);

  text-align: center;
}

.daycamp-price > span {
  display: block;
  margin-bottom: 22px;

  color: rgba(255, 255, 255, 0.82);
  font-size: 13px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: 0.14em;
}

.daycamp-price div {
  white-space: nowrap;
}

.daycamp-price strong {
  color: #fff;
  font-size: clamp(40px, 3.8vw, 57px);
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: -0.05em;
}

.daycamp-price em {
  margin-left: 4px;

  color: #fff;
  font-size: 19px;
  line-height: 1.4;
  font-weight: 700;
  font-style: normal;
}

.daycamp-price p {
  margin: 18px 0 0;
  padding-top: 17px;

  border-top: 1px solid rgba(255, 255, 255, 0.35);

  color: #fff;
  font-size: 18px;
  line-height: 1.5;
  font-weight: 600;
}


/* =========================
   사진 갤러리
========================= */
.daycamp-gallery {
  display: grid;
  gap: 12px;

  margin-bottom: 25px;
}

.daycamp-gallery-four {
  grid-template-columns: 1.35fr 0.65fr;
  grid-template-rows: repeat(3, 210px);
}

.daycamp-gallery-four .daycamp-photo-main {
  grid-row: 1 / 4;
}

.daycamp-gallery-single {
  grid-template-columns: 100%;
}

.daycamp-gallery-single .daycamp-photo {
  height: 620px;
}

.daycamp-photo {
  position: relative;

  width: 100%;
  min-width: 0;
  height: 100%;
  padding: 0;

  overflow: hidden;
  border: 0;
  background: #eee;

  cursor: pointer;
}

.daycamp-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;

  transition:
    transform 0.7s ease,
    filter 0.4s ease;
}

.daycamp-photo::after {
  content: "";
  position: absolute;
  inset: 0;

  background: rgba(0, 0, 0, 0);

  transition: background-color 0.35s ease;
}

.daycamp-photo > span {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;

  min-width: 105px;
  padding: 10px 18px;

  border: 1px solid rgba(255, 255, 255, 0.9);
  border-radius: 50px;

  color: #fff;
  background: rgba(0, 0, 0, 0.25);

  font-size: 13px;
  line-height: 1.4;
  font-weight: 600;
  text-align: center;

  opacity: 0;
  transform: translate(-50%, -35%);

  transition:
    opacity 0.35s ease,
    transform 0.35s ease;
}

.daycamp-photo:hover img {
  transform: scale(1.04);
  filter: brightness(0.85);
}

.daycamp-photo:hover::after {
  background: rgba(0, 0, 0, 0.12);
}

.daycamp-photo:hover > span {
  opacity: 1;
  transform: translate(-50%, -50%);
}


/* =========================
   상세 정보
========================= */
.daycamp-info-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));

  border-top: 1px solid #ddd;
  border-left: 1px solid #ddd;
}

.daycamp-info-box {
  min-height: 240px;
  padding: 35px 30px;

  border-right: 1px solid #ddd;
  border-bottom: 1px solid #ddd;

  background: #fff;
}

.daycamp-info-number {
  display: block;
  margin-bottom: 20px;

  color: var(--daycamp-point);
  font-size: 13px;
  line-height: 1.4;
  font-weight: 800;
}

.daycamp-info-box h4 {
  margin: 0 0 17px;

  color: #111;
  font-size: 22px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: -0.035em;
}

.daycamp-info-box ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.daycamp-info-box li {
  position: relative;
  margin-bottom: 7px;
  padding-left: 13px;

  color: #555;
  font-size: 15px;
  line-height: 1.6;
}

.daycamp-info-box li::before {
  content: "";
  position: absolute;
  top: 10px;
  left: 0;

  width: 4px;
  height: 4px;

  border-radius: 50%;
  background: var(--daycamp-point);
}

.daycamp-info-box dl {
  margin: 0;
}

.daycamp-info-box dl > div {
  display: grid;
  grid-template-columns: 55px 1fr;

  margin-bottom: 8px;
}

.daycamp-info-box dt {
  color: #777;
  font-size: 15px;
  line-height: 1.6;
}

.daycamp-info-box dd {
  margin: 0;

  color: #222;
  font-size: 17px;
  line-height: 1.6;
  font-weight: 700;
}

/* 편의시설 빈칸 */
.daycamp-amenity-empty {
  width: 100%;
  min-height: 90px;
}


/* =========================
   선택사항
========================= */
.daycamp-option {
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);

  background: #202020;
}

.daycamp-option-heading {
  padding: 38px 40px;

  color: #fff;
  background: var(--daycamp-point);
}

.daycamp-option-heading span {
  display: block;
  margin-bottom: 7px;

  color: rgba(255, 255, 255, 0.8);
  font-size: 12px;
  line-height: 1.4;
  font-weight: 800;
  letter-spacing: 0.15em;
}

.daycamp-option-heading h3 {
  margin: 0;

  color: #fff;
  font-size: 27px;
  line-height: 1.4;
  font-weight: 700;
}

.daycamp-option-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));

  padding: 28px 45px;
}

.daycamp-option-item {
  padding: 8px 35px 8px 0;

  border-right: 1px solid rgba(255, 255, 255, 0.16);
}

.daycamp-option-item:last-child {
  padding-left: 40px;
  border-right: 0;
}

.daycamp-option-item > span {
  display: block;

  color: #aaa;
  font-size: 14px;
  line-height: 1.5;
}

.daycamp-option-item strong {
  display: block;
  margin-top: 3px;

  color: #fff;
  font-size: 23px;
  line-height: 1.4;
  font-weight: 700;
}

.daycamp-option-item p {
  margin: 3px 0 0;

  color: #999;
  font-size: 13px;
  line-height: 1.5;
}


/* =========================
   확대 팝업
========================= */
.daycamp-lightbox,
.daycamp-lightbox * {
  box-sizing: border-box;
}

.daycamp-lightbox {
  position: fixed;
  inset: 0;
  z-index: 99999;

  display: grid;
  grid-template-columns: 80px minmax(0, 1fr) 80px;
  align-items: center;

  padding: 50px 30px;

  background: rgba(0, 0, 0, 0.94);

  opacity: 0;
  visibility: hidden;

  transition:
    opacity 0.35s ease,
    visibility 0.35s ease;
}

.daycamp-lightbox.is-open {
  opacity: 1;
  visibility: visible;
}

.daycamp-lightbox-content {
  width: 100%;
  max-width: 1350px;
  margin: 0 auto;
  text-align: center;
}

.daycamp-lightbox-image {
  display: block;

  width: auto;
  max-width: 100%;
  max-height: calc(100vh - 150px);
  margin: 0 auto;

  object-fit: contain;
}

.daycamp-lightbox-caption {
  display: inline-block;
  margin: 15px 0 0;

  color: #fff;
  font-size: 15px;
  line-height: 1.6;
}

.daycamp-lightbox-count {
  display: inline-block;
  margin-left: 13px;

  color: #aaa;
  font-size: 14px;
  line-height: 1.6;
}

.daycamp-lightbox-close {
  position: absolute;
  top: 20px;
  right: 27px;
  z-index: 2;

  width: 48px;
  height: 48px;
  padding: 0;

  border: 0;
  background: transparent;
  color: #fff;

  font-size: 45px;
  line-height: 45px;

  cursor: pointer;
}

.daycamp-lightbox-arrow {
  width: 58px;
  height: 58px;
  padding-bottom: 10px;

  border: 1px solid rgba(255, 255, 255, 0.45);
  border-radius: 50%;

  color: #fff;
  background: rgba(255, 255, 255, 0.05);

  font-size: 43px;
  line-height: 10px;

  cursor: pointer;

  transition:
    background-color 0.25s ease,
    border-color 0.25s ease;
}

.daycamp-lightbox-arrow:hover {
  background: #f95e00;
  border-color: #f95e00;
}


/* =========================
   1200px 이하
========================= */
@media screen and (max-width: 1200px) {
  .daycamp-detail {
    padding: 100px 30px;
  }

  .daycamp-room-heading {
    grid-template-columns: minmax(0, 1fr) 330px;
  }

  .daycamp-gallery-four {
    grid-template-rows: repeat(3, 180px);
  }

  .daycamp-gallery-single .daycamp-photo {
    height: 540px;
  }

  .daycamp-info-box {
    padding: 30px 24px;
  }
}


/* =========================
   1024px 이하
========================= */
@media screen and (max-width: 1024px) {
  .daycamp-detail {
    padding: 80px 24px;
  }

  .daycamp-common-info {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-bottom: 80px;
  }

  .daycamp-room {
    margin-bottom: 90px;
  }

  .daycamp-room-heading {
    grid-template-columns: minmax(0, 1fr) 300px;
  }

  .daycamp-room-name {
    padding: 40px 35px;
  }

  .daycamp-info-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .daycamp-gallery-four {
    grid-template-columns: 1.15fr 0.85fr;
    grid-template-rows: repeat(3, 165px);
  }

  .daycamp-gallery-single .daycamp-photo {
    height: 470px;
  }

  .daycamp-option {
    grid-template-columns: 210px minmax(0, 1fr);
  }
}


/* =========================
   768px 이하
========================= */
@media screen and (max-width: 768px) {
  .daycamp-detail {
    padding: 65px 20px;
  }

  .daycamp-title {
    font-size: 35px;
  }

  .daycamp-subtitle {
    font-size: 18px;
  }

  .daycamp-room-heading {
    grid-template-columns: 100%;
  }

  .daycamp-room-name {
    padding: 35px 28px;
  }

  .daycamp-price {
    padding: 30px 25px;
  }

  .daycamp-price > span {
    margin-bottom: 10px;
  }

  .daycamp-gallery-four {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: 300px 170px;
    gap: 8px;
  }

  .daycamp-gallery-four .daycamp-photo-main {
    grid-column: 1 / 3;
    grid-row: 1;
  }

  .daycamp-gallery-four .daycamp-photo:last-child {
    grid-column: 1 / 3;
    height: 220px;
  }

  .daycamp-gallery-single .daycamp-photo {
    height: 380px;
  }

  .daycamp-photo > span {
    display: none;
  }

  .daycamp-option {
    grid-template-columns: 100%;
  }

  .daycamp-option-heading {
    padding: 27px 30px;
  }

  .daycamp-option-list {
    padding: 24px 30px;
  }

  .daycamp-lightbox {
    grid-template-columns: 45px minmax(0, 1fr) 45px;
    padding: 45px 5px 30px;
  }

  .daycamp-lightbox-arrow {
    width: 40px;
    height: 40px;

    font-size: 31px;
    line-height: 34px;
  }
}


/* =========================
   480px 이하
========================= */
@media screen and (max-width: 480px) {
  .daycamp-detail {
    padding: 55px 16px;
  }

  .daycamp-heading {
    margin-bottom: 38px;
  }

  .daycamp-label {
    font-size: 12px;
  }

  .daycamp-title {
    font-size: 29px;
  }

  .daycamp-common-info {
    grid-template-columns: 100%;
    margin-bottom: 65px;
  }

  .daycamp-common-item {
    min-height: 0;
    padding: 25px 20px;
  }

  .daycamp-room {
    margin-bottom: 70px;
  }

  .daycamp-room-name {
    padding: 30px 21px;
  }

  .daycamp-room-name h3 {
    font-size: 29px;
  }

  .daycamp-room-name p br {
    display: none;
  }

  .daycamp-gallery-four {
    grid-template-rows: 230px 125px;
    gap: 6px;
  }

  .daycamp-gallery-four .daycamp-photo:last-child {
    height: 175px;
  }

  .daycamp-gallery-single .daycamp-photo {
    height: 270px;
  }

  .daycamp-info-grid {
    grid-template-columns: 100%;
  }

  .daycamp-info-box {
    min-height: 0;
    padding: 27px 22px;
  }

  .daycamp-info-number {
    margin-bottom: 12px;
  }

  .daycamp-amenity-empty {
    min-height: 55px;
  }

  .daycamp-option-heading {
    padding: 24px 22px;
  }

  .daycamp-option-list {
    grid-template-columns: 100%;
    padding: 12px 22px;
  }

  .daycamp-option-item {
    padding: 17px 0;

    border-right: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.16);
  }

  .daycamp-option-item:last-child {
    padding: 17px 0;
    border-bottom: 0;
  }

  .daycamp-lightbox {
    grid-template-columns: 38px minmax(0, 1fr) 38px;
  }

  .daycamp-lightbox-arrow {
    width: 34px;
    height: 34px;

    font-size: 27px;
    line-height: 28px;
  }

  .daycamp-lightbox-caption {
    display: block;
    margin-top: 12px;

    font-size: 13px;
  }

  .daycamp-lightbox-count {
    margin: 3px 0 0;
  }
}




/* =========================
   부대시설 기본 설정
========================= */
.facility-page,
.facility-page * {
  box-sizing: border-box;
}

.facility-page {
  --facility-point: #f95e00;
  --facility-point-light: #fff3ec;

  width: 100%;
  padding: 50px 40px;
  overflow: hidden;

  color: #222;
  background: #fff;

  font-family: "Pretendard", sans-serif;
  word-break: keep-all;
}

.facility-page img {
  display: block;
  width: 100%;
  max-width: 100%;
}

.facility-page button {
  font: inherit;
}

.facility-inner {
  width: 100%;
  max-width: 1600px;
  margin: 0 auto;
}


/* =========================
   상단 타이틀
========================= */
.facility-heading {
  margin-bottom: 90px;
  text-align: center;
}

.facility-heading-label {
  display: block;
  margin-bottom: 12px;

  color: var(--facility-point);
  font-size: 14px;
  line-height: 1.4;
  font-weight: 800;
  letter-spacing: 0.2em;
}

.facility-heading-title {
  margin: 0;

  color: #111;
  font-size: clamp(38px, 3.2vw, 58px);
  line-height: 1.3;
  font-weight: 300;
  letter-spacing: -0.055em;
}

.facility-heading-title strong {
  color: var(--facility-point);
  font-weight: 700;
}

.facility-heading-description {
  margin: 18px 0 0;

  color: #666;
  font-size: 18px;
  line-height: 1.75;
  font-weight: 400;
  letter-spacing: -0.025em;
}


/* =========================
   강조 부대시설
========================= */
.facility-feature {
  margin-bottom: 130px;
}

.facility-feature-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 180px;
  align-items: end;

  margin-bottom: 35px;
  padding-bottom: 30px;

  border-bottom: 1px solid #ddd;
}

.facility-feature-title {
  position: relative;
  padding-left: 95px;
}

.facility-feature-number {
  position: absolute;
  top: 0;
  left: 0;

  color: var(--facility-point);
  font-size: 54px;
  line-height: 1;
  font-weight: 200;
  letter-spacing: -0.05em;
}

.facility-feature-label {
  display: block;
  margin-bottom: 8px;

  color: var(--facility-point);
  font-size: 13px;
  line-height: 1.4;
  font-weight: 800;
  letter-spacing: 0.16em;
}

.facility-feature-title h3 {
  margin: 0;

  color: #111;
  font-size: clamp(34px, 2.8vw, 49px);
  line-height: 1.3;
  font-weight: 300;
  letter-spacing: -0.055em;
}

.facility-feature-title h3 strong {
  font-weight: 700;
}

.facility-feature-title p {
  max-width: 800px;
  margin: 17px 0 0;

  color: #666;
  font-size: 19px;
  line-height: 1.75;
  letter-spacing: -0.02em;
}

.facility-feature-count {
  text-align: right;
}

.facility-feature-count strong {
  display: block;

  color: var(--facility-point);
  font-size: 55px;
  line-height: 1;
  font-weight: 200;
}

.facility-feature-count span {
  display: block;
  margin-top: 7px;

  color: #888;
  font-size: 11px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: 0.12em;
}


/* =========================
   공통 갤러리
========================= */
.facility-gallery {
  display: grid;
  gap: 12px;
}

.facility-photo {
  position: relative;

  width: 100%;
  min-width: 0;
  height: 100%;
  padding: 0;

  overflow: hidden;
  border: 0;
  background: #eee;

  cursor: pointer;
}

.facility-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;

  transition:
    transform 0.75s ease,
    filter 0.4s ease;
}

.facility-photo::after {
  content: "";
  position: absolute;
  inset: 0;

  background: rgba(0, 0, 0, 0);

  transition: background-color 0.35s ease;
}

.facility-photo-view {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;

  min-width: 105px;
  padding: 10px 18px;

  border: 1px solid rgba(255, 255, 255, 0.9);
  border-radius: 50px;

  color: #fff;
  background: rgba(0, 0, 0, 0.25);

  font-size: 13px;
  line-height: 1.4;
  font-weight: 600;
  text-align: center;

  opacity: 0;
  transform: translate(-50%, -35%);

  transition:
    opacity 0.35s ease,
    transform 0.35s ease;
}

.facility-photo:hover img {
  transform: scale(1.045);
  filter: brightness(0.84);
}

.facility-photo:hover::after {
  background: rgba(0, 0, 0, 0.12);
}

.facility-photo:hover .facility-photo-view {
  opacity: 1;
  transform: translate(-50%, -50%);
}


/* =========================
   수영장 사진 4장
========================= */
.facility-gallery-pool {
  grid-template-columns: 1.35fr 0.65fr;
  grid-template-rows: repeat(3, 210px);
}

.facility-gallery-pool .facility-photo-main {
  grid-row: 1 / 4;
}


/* =========================
   에어바운스 사진 8장
========================= */
.facility-gallery-bounce {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: 230px;
}

.facility-gallery-bounce .facility-photo-main {
  grid-column: span 2;
  grid-row: span 2;
}

.facility-gallery-bounce .facility-photo:nth-child(6) {
  grid-column: span 2;
}


/* =========================
   기타 시설 제목
========================= */
.facility-sub-heading {
  margin: 0 0 80px;
  padding: 70px 40px;

  background: #f7f7f7;
  text-align: center;
}

.facility-sub-heading > span {
  display: block;
  margin-bottom: 10px;

  color: var(--facility-point);
  font-size: 13px;
  line-height: 1.4;
  font-weight: 800;
  letter-spacing: 0.18em;
}

.facility-sub-heading h3 {
  margin: 0;

  color: #111;
  font-size: clamp(32px, 2.7vw, 46px);
  line-height: 1.35;
  font-weight: 300;
  letter-spacing: -0.05em;
}

.facility-sub-heading h3 strong {
  color: var(--facility-point);
  font-weight: 700;
}

.facility-sub-heading p {
  margin: 15px 0 0;

  color: #777;
  font-size: 18px;
  line-height: 1.7;
}


/* =========================
   기타 시설 공통
========================= */
.facility-sub-section {
  margin-bottom: 110px;
}

.facility-sub-title {
  display: grid;
  grid-template-columns: minmax(280px, 0.45fr) minmax(0, 0.55fr);
  align-items: end;

  margin-bottom: 28px;
  padding-bottom: 23px;

  border-bottom: 1px solid #ddd;
}

.facility-sub-title span {
  display: block;
  margin-bottom: 7px;

  color: var(--facility-point);
  font-size: 12px;
  line-height: 1.4;
  font-weight: 800;
  letter-spacing: 0.14em;
}

.facility-sub-title h3 {
  margin: 0;

  color: #111;
  font-size: 33px;
  line-height: 1.35;
  font-weight: 700;
  letter-spacing: -0.045em;
}

.facility-sub-title > p {
  margin: 0 0 4px;

  color: #777;
  font-size: 18px;
  line-height: 1.7;
  text-align: right;
}


/* 매점 5장 */
.facility-gallery-five {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: 220px;
}

.facility-gallery-five .facility-photo-wide {
  grid-column: span 2;
  grid-row: span 2;
}


/* 사진 2장 */
.facility-gallery-two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-rows: 460px;
}


/* 샤워실·취사실 4장 */
.facility-gallery-four-basic {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: 290px;
}


/* 바다 영역 */
.facility-sea-section {
  margin-bottom: 0;
}


/* =========================
   확대 팝업
========================= */
.facility-lightbox,
.facility-lightbox * {
  box-sizing: border-box;
}

.facility-lightbox {
  position: fixed;
  inset: 0;
  z-index: 99999;

  display: grid;
  grid-template-columns: 80px minmax(0, 1fr) 80px;
  align-items: center;

  padding: 50px 30px;

  background: rgba(0, 0, 0, 0.95);

  opacity: 0;
  visibility: hidden;

  transition:
    opacity 0.35s ease,
    visibility 0.35s ease;
}

.facility-lightbox.is-open {
  opacity: 1;
  visibility: visible;
}

.facility-lightbox-content {
  width: 100%;
  max-width: 1380px;
  margin: 0 auto;

  text-align: center;
}

.facility-lightbox-image {
  display: block;

  width: auto;
  max-width: 100%;
  max-height: calc(100vh - 150px);
  margin: 0 auto;

  object-fit: contain;
}

.facility-lightbox-caption {
  display: inline-block;
  margin: 15px 0 0;

  color: #fff;
  font-size: 15px;
  line-height: 1.6;
}

.facility-lightbox-count {
  display: inline-block;
  margin-left: 13px;

  color: #aaa;
  font-size: 14px;
  line-height: 1.6;
}

.facility-lightbox-close {
  position: absolute;
  top: 20px;
  right: 28px;
  z-index: 2;

  width: 48px;
  height: 48px;
  padding: 0;

  border: 0;
  background: transparent;
  color: #fff;

  font-size: 45px;
  line-height: 45px;
  font-weight: 200;

  cursor: pointer;
}

.facility-lightbox-arrow {
  width: 58px;
  height: 58px;
  padding-bottom: 10px;

  border: 1px solid rgba(255, 255, 255, 0.45);
  border-radius: 50%;

  color: #fff;
  background: rgba(255, 255, 255, 0.05);

  font-size: 43px;
  line-height: 50px;
  font-weight: 200;

  cursor: pointer;

  transition:
    background-color 0.25s ease,
    border-color 0.25s ease;
}

.facility-lightbox-arrow:hover {
  background: #f95e00;
  border-color: #f95e00;
}


/* =========================
   1200px 이하
========================= */
@media screen and (max-width: 1200px) {
  .facility-page {
    padding: 100px 30px;
  }

  .facility-gallery-pool {
    grid-template-rows: repeat(3, 180px);
  }

  .facility-gallery-bounce {
    grid-auto-rows: 200px;
  }

  .facility-gallery-five {
    grid-auto-rows: 195px;
  }

  .facility-gallery-two {
    grid-auto-rows: 390px;
  }

  .facility-gallery-four-basic {
    grid-auto-rows: 250px;
  }
}


/* =========================
   1024px 이하
========================= */
@media screen and (max-width: 1024px) {
  .facility-page {
    padding: 80px 24px;
  }

  .facility-feature {
    margin-bottom: 100px;
  }

  .facility-feature-heading {
    grid-template-columns: minmax(0, 1fr) 130px;
  }

  .facility-feature-title {
    padding-left: 75px;
  }

  .facility-feature-number {
    font-size: 45px;
  }

  .facility-gallery-pool {
    grid-template-columns: 1.15fr 0.85fr;
    grid-template-rows: repeat(3, 165px);
  }

  .facility-gallery-bounce {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-auto-rows: 190px;
  }

  .facility-gallery-five {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .facility-gallery-two {
    grid-auto-rows: 340px;
  }

  .facility-gallery-four-basic {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 280px;
  }

  .facility-lightbox {
    grid-template-columns: 60px minmax(0, 1fr) 60px;
    padding-right: 15px;
    padding-left: 15px;
  }

  .facility-lightbox-arrow {
    width: 48px;
    height: 48px;
    font-size: 36px;
    line-height: 41px;
  }
}


/* =========================
   768px 이하
========================= */
@media screen and (max-width: 768px) {
  .facility-page {
    padding: 65px 20px;
  }

  .facility-heading {
    margin-bottom: 65px;
  }

  .facility-heading-title {
    font-size: 35px;
  }

  .facility-heading-description {
    font-size: 16px;
  }

  .facility-feature-heading {
    grid-template-columns: 100%;
  }

  .facility-feature-title {
    padding-left: 0;
  }

  .facility-feature-number {
    position: static;
    display: block;
    margin-bottom: 12px;
  }

  .facility-feature-count {
    display: none;
  }

  .facility-gallery-pool {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: 300px 170px;
    gap: 8px;
  }

  .facility-gallery-pool .facility-photo-main {
    grid-column: 1 / 3;
    grid-row: 1;
  }

  .facility-gallery-pool .facility-photo:last-child {
    grid-column: 1 / 3;
    height: 220px;
  }

  .facility-gallery-bounce {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 180px;
    gap: 8px;
  }

  .facility-gallery-bounce .facility-photo-main {
    grid-column: span 2;
    grid-row: span 1;
    height: 310px;
  }

  .facility-gallery-bounce .facility-photo:nth-child(6) {
    grid-column: auto;
  }

  .facility-sub-heading {
    padding: 50px 25px;
  }

  .facility-sub-title {
    grid-template-columns: 100%;
  }

  .facility-sub-title > p {
    margin-top: 12px;
    text-align: left;
  }

  .facility-gallery-five {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 180px;
    gap: 8px;
  }

  .facility-gallery-five .facility-photo-wide {
    grid-column: span 2;
    grid-row: span 1;
    height: 300px;
  }

  .facility-gallery-two {
    grid-template-columns: 100%;
    grid-auto-rows: 320px;
    gap: 8px;
  }

  .facility-gallery-four-basic {
    grid-auto-rows: 210px;
    gap: 8px;
  }

  .facility-photo-view {
    display: none;
  }

  .facility-lightbox {
    grid-template-columns: 45px minmax(0, 1fr) 45px;
    padding: 45px 5px 30px;
  }

  .facility-lightbox-arrow {
    width: 40px;
    height: 40px;
    font-size: 31px;
    line-height: 34px;
  }
}


/* =========================
   480px 이하
========================= */
@media screen and (max-width: 480px) {
  .facility-page {
    padding: 55px 16px;
  }

  .facility-heading-title {
    font-size: 29px;
  }

  .facility-heading-description br {
    display: none;
  }

  .facility-feature {
    margin-bottom: 75px;
  }

  .facility-feature-title h3 {
    font-size: 29px;
  }

  .facility-feature-title p {
    font-size: 18px;
  }

  .facility-gallery-pool {
    grid-template-rows: 230px 125px;
    gap: 6px;
  }

  .facility-gallery-pool .facility-photo:last-child {
    height: 175px;
  }

  .facility-gallery-bounce {
    grid-auto-rows: 140px;
    gap: 6px;
  }

  .facility-gallery-bounce .facility-photo-main {
    height: 230px;
  }

  .facility-sub-heading {
    margin-bottom: 60px;
    padding: 40px 20px;
  }

  .facility-sub-heading h3 {
    font-size: 28px;
  }

  .facility-sub-heading p {
    font-size: 18px;
  }

  .facility-sub-section {
    margin-bottom: 75px;
  }

  .facility-sub-title h3 {
    font-size: 27px;
  }

  .facility-sub-title > p {
    font-size: 18px;
  }

  .facility-gallery-five {
    grid-auto-rows: 135px;
    gap: 6px;
  }

  .facility-gallery-five .facility-photo-wide {
    height: 220px;
  }

  .facility-gallery-two {
    grid-auto-rows: 230px;
    gap: 6px;
  }

  .facility-gallery-four-basic {
    grid-auto-rows: 145px;
    gap: 6px;
  }

  .facility-lightbox {
    grid-template-columns: 38px minmax(0, 1fr) 38px;
  }

  .facility-lightbox-arrow {
    width: 34px;
    height: 34px;
    font-size: 27px;
    line-height: 28px;
  }

  .facility-lightbox-caption {
    display: block;
    margin-top: 12px;
    font-size: 13px;
  }

  .facility-lightbox-count {
    margin: 3px 0 0;
  }
}