@charset "UTF-8";
/* ============================================================================
 * contents_sp.css  ─  海外プロモ 2026/08  SP(<=720px) 用スタイル
 * ----------------------------------------------------------------------------
 *  1. BASE / RESET
 *  2. LAYOUT (ss-container)
 *  3. HEADER NAV / LINK LIST
 *  4. TITLES (mainTtl / mainTtl2)
 *  5. LINK WINDOW BADGE (cpLinkwindow)
 *  6. SEARCH BOX
 *  7. HOTEL CARD (共通)
 *  8. HOTEL LIST GRID
 *  9. COUPON
 * 10. CAMPAIGN (campaignBox / campaignKv)
 * 11. MODAL / POPUP
 * 12. PICKUP タイトル装飾 + 背景
 * 13. PLANS TAB
 * 14. SECTION 背景色 (pickup / others / searchBox)
 * 15. TIP / 注意書き
 * 16. OTHERS SECTION
 * 17. MORE BOX (プランをもっと見る)
 * 18. BUTTON / PAGETOP
 * 19. SWIPER
 * 20. AREA LIST / TAB
 * 21. RTE HOTEL BOX (おすすめホテル)
 * ============================================================================ */


/* ============================================================================
 * 1. BASE / RESET
 * ============================================================================ */
.pc { display: none; }
.ss-contents { overflow: hidden; font-family: 'Noto Sans JP', sans-serif; }


/* ============================================================================
 * 2. LAYOUT (ss-container)
 * ============================================================================ */
.ss-container {
  padding: 24px 16px !important;
  margin: 0 auto;
  border-bottom: 0;
}


/* ============================================================================
 * 3. HEADER NAV / LINK LIST
 * ============================================================================ */
.markLink {
  box-shadow: none;
  margin-bottom: 0;
  background: #fff;
  width: 100%;
  z-index:999;
  min-height: 68px;
  box-sizing: border-box;
  padding: 0;
}
.Link-list { background: #fff; box-sizing: content-box; }
.Link-list a {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 3px;
  text-decoration: none;
  color: #333;
}

/* Link-list 内の余白調整 */
.Link-list:last-child,
.Link-list:nth-of-type(3) {
  padding: 0 12px;
}

/* --- アイコン (icons.svg スプライト: viewBox="0 0 111 24" / 4アイコン均等)
       表示高さ 28px → scale ≈ 1.167 → 全体幅 129.5px, 各アイコン幅 32.4px --- */
.Link-list a .nav-icon,
.ss-right dd li a .nav-icon {
  display: block;
  width: 32px;
  height: 28px;
  background-image: url(../images/icons.svg);
  background-repeat: no-repeat;
  background-size: 130px 28px;
}
.nav-icon--hotel  { background-position:   0px center; }
.nav-icon--plan   { background-position: -32px center; }
.nav-icon--search { background-position: -65px center; }
.nav-icon--others { background-position: -97px center; }

/* --- ラベル --- */
.Link-list a .nav-label,
.ss-right dd li a .nav-label {
  display: block;
  font-size: 10px;
  font-weight: 500;
  line-height: 1.3;
  color: #333;
}
.ss-right dd li a {
  align-items: center;
  background: #fff;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.ss-right dd li a.ttlicon_w:after {
  content: none;
  display: none;
}


/* ============================================================================
 * 4. TITLES (mainTtl / mainTtl2)
 * ============================================================================ */
.mainTtl { margin: 0 0 24px !important; padding-bottom: 0; }
.mainTtl img { width: 70%; }
.mainTtl--icon-left,
.mainTtl--icon-right { position: relative; text-align: center; }
.mainTtl .mainTtl__icon {
  position: absolute;
  top: 50%;
  width: auto;
  height: 34px;
  transform: translateY(-50%);
}
.mainTtl--icon-left  .mainTtl__icon { left: 0; }
.mainTtl--icon-right .mainTtl__icon { right: 0; }
.mainTtl2.subTt { margin: 20px 0; }

/* s-nav / searchBox タイトルサイズ */
.s-nav { width: 80% !important; }
#searchBox .mainTtl img { width: 35%; }


/* ============================================================================
 * 5. LINK WINDOW BADGE (cpLinkwindow)
 * ============================================================================ */
.cpLinkwindow { width: 268px; margin: 0 auto 24px !important; }
.cpLinkwindow a.arr-green-windowA {
  background-color: #cacaca;
  position: relative;
  border-radius: 5px;
  font-weight: normal;
  margin-left: 10px;
  padding: 5px 6px;
  color: #333333;
  text-decoration: none;
  font-size: 12px;
}
.cpLinkwindow a.arr-green-windowB:after {
  background: url(https://img.travel.rakuten.co.jp//special/sales/template/html/images/Linkwindow.svg) center center no-repeat;
  background-size: auto;
  position: absolute;
  content: "";
  width: 16px;
  height: 16px;
  right: -20px;
  top: 50%;
  margin-top: -8px;
  background-size: 16px;
}


/* ============================================================================
 * 6. SEARCH BOX
 * ============================================================================ */
#searchBox #search-box.verB { box-sizing: border-box; }

#search-box p.searchSubmit a { box-shadow: none; }
#search-box .searchNavi { padding-top: 10px; }
#search-box .searchNavi li { width: 25%; }

#search-box.verB input[type="checkbox"] + label { display: inline-block; }
#search-box.verB p.ss-cb { display: inline-block; font-size: 14px; }
#search-box.verB .searchSubmit a { margin-top: 0; }
#search-box input[type=checkbox],
#search-box input[type=radio] {
  accent-color: #ec7b9e;
  color: #fff;
}

/* --- SEARCH NAV アイコン --- */
.searchNavi li span.hotel { background: url(../images/oh.png) no-repeat; background-size: 36px 36px; }
.searchNavi li span.dp    { background: url(../images/oap.png) no-repeat; background-size: 36px 36px; }
.searchNavi li span.air   { background: url(../images/oa.png) no-repeat; background-size: 36px 36px; }


/* ============================================================================
 * 7. HOTEL CARD (共通)
 * ============================================================================ */
.swiper-wrapper { padding-bottom: 20px; }
.swiper-wrapper li {
  background: #fff;
  border: 0;
  box-shadow: none;
  margin: 0 8px 0 0 !important;
}
.hotel-img {
  width: auto;
  margin: -10px -10px 10px !important;
  display: block;
}
.hotel-container { width: 100%; padding: 0; }

.ss-hotel .htlInfo { display: block; position: initial; padding: 0; background: none; }
.ss-hotel .htlInfo::before,
.ss-hotel .htlInfo::after { display: none; }
.ss-hotel .htlInfo span.sp {
  display: block;
  padding: 4px 8px;
  background: rgb(0, 0, 0, 0.75);
  position: absolute;
  bottom:0;
  right:0;
}
.ss-hotel .hotel-price a span { font-size: 18px; }
.ss-hotel .hotel-price a span.details {
  display:inline-block;
}
.ss-hotel .hotel-price a span.details > span:first-child,
.ss-hotel .hotel-price a span.details > em:not(.bk) {
  flex: 0 0 auto;
  white-space: nowrap;
}
.ss-hotel .hotel-price a span.details span.price-info { width: auto; }
.ss-hotel .hotel-price a span.details em.bk {
  font-size: 11px;
  color: #000;
  display: block;
  position: absolute;
  bottom: -4px;
  right: 0;
  font-weight: normal;
}

/* ============================================================================
 * 8. HOTEL LIST GRID
 * ============================================================================ */
.hotelList {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 24px;
  align-items: center;
  justify-content: center;
}
.hotelList .ss-hotel {
  width: 100%;
  border-radius: 8px;
  padding: 16px 16px 24px 16px;
  margin-bottom: 0;
}
.hotelList .ss-hotel .hotel-img { margin: -16px -16px 0px !important; }
.hotelList .chara li { margin-bottom: 6px !important; }

/* --- ホテルカード --- */
.hotelList .hotel-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  position: relative;
  border-radius: 8px;
  width: 100%;
  overflow: hidden;
  border: 1px solid #c9c9c9;
}

/* --- ホテル画像 --- */
.hotelList .hotel-image {
  width: 100%;
  aspect-ratio: 330 / 186;
  flex-shrink: 0;
  border-radius: 8px 8px 0 0;
}
.hotelList .hotel-image img {
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
  pointer-events: none;
}

/* --- ホテル情報 --- */
.hotelList .hotel-info {
  background: #ffffff;
  position: relative;
  width: 100%;
  flex-shrink: 0;
}
.hotelList .hotel-content {
  display: flex;
  flex-direction: column;
  gap: 16px;
  align-items: flex-end;
  padding: 16px 16px 24px 16px;
}

/* --- タイトル・エリア --- */
.hotelList .title-section {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: flex-start;
  width: 100%;
  flex-shrink: 0;
}
.hotelList .area-label {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 14px;
  line-height: 1;
  color: #666666;
  width: 100%;
  min-width: 100%;
  flex-shrink: 0;
}
.hotelList .hotel-name {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 18px;
  line-height: 1.4;
  color: #333333;
  width: 100%;
  min-width: 100%;
  flex-shrink: 0;
}

/* --- レーティング --- */
.hotelList .rating-frame {
  display: flex;
  gap: 2.974px;
  align-items: center;
  flex-shrink: 0;
}
.hotelList .stars { position: relative; flex-shrink: 0; }
.hotelList .stars-inner {
  color: #c9c9c9;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}
.hotelList .stars-inner img {
  position: absolute;
  height: 183.33%;
  left: -6.33%;
  top: -25%;
  width: 159.49%;
  max-width: none;
}
.hotelList .stars-score {
  position: absolute;
  color: #ffb400;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}
.hotelList .rating-score {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-style: normal;
  font-size: 14px;
  line-height: 0;
  color: #bf0000;
  white-space: nowrap;
}
.hotelList .rating-score p { line-height: 1; white-space: pre; }

/* --- 説明文 --- */
.hotelList .description {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 1.6;
  color: #333333;
  width: 100%;
  flex-shrink: 0;
}

/* --- プランボタン --- */
.hotelList .plan-button {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #00a385;
  width: 100%;
  padding: 15px 0;
  border-radius: 64.333px;
  flex-shrink: 0;
  cursor: pointer;
  transition: background 0.3s ease;
}
.hotelList .plan-button:hover { background: #008a70; }
.hotelList .plan-button p {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 16px;
  line-height: 1;
  color: #ffffff;
  white-space: pre;
  flex-shrink: 0;
}


/* ============================================================================
 * 9. COUPON
 * ============================================================================ */
#coupon { background: #F2FFFD; }
#coupon .coupon__box { padding: 32px 16px;}
#coupon .coupon__box .coupon__box__holder { box-sizing: border-box; padding: 0; }
/* .coupon__box__holder { padding: 30px 30px 0; } */

/* --- クーポン説明リード --- */
.couponLead {
  box-sizing: border-box;
  width: fit-content;
  margin: 0 0 24px;
  padding: 0;
  list-style: none;
}
.couponLead li {
  position: relative;
  margin: 0 0 10px;
  padding-left: 30px;
  color: #333;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.55;
  text-align: left;
}
.couponLead li::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #00B900;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  line-height: 20px;
  text-align: center;
  content: "✓";
}
.couponLead span { color: #E00000; font-weight: 700; }


/* ============================================================================
 * 10. CAMPAIGN (campaignBox / campaignKv)
 * ============================================================================ */
#campaignBox {
  background: #fff8f6 url("../images/border.png") center top/100% auto no-repeat;
}

/* --- 利用規約 termBox --- */
#campaignBox .termBox { margin: 0 auto; font-size: 14px; line-height: 1.5; padding: 12px 12px; }
#campaignBox .termBox p { margin-top: 8px; }
#campaignBox .termBox p em { font-style: normal; font-size: 90%; line-height: 180%; display: inline-block; padding-top: 10px; }
#campaignBox .termBox span { border-radius: 4px; border: 1px solid #333; text-align: center; font-size: 12px; padding: 4px 6px; }

/* --- campBox (詳細/エントリーリンク) --- */
.campBox { margin: 16px auto 0; width: 280px; }
.campBox a,
.pLink a { text-decoration: underline !important; }
.campBox a:hover,
.pLink a:hover { text-decoration: none !important; }
.campBox .jds_detialPopUp,
#campaignKv .entryLink {
  margin: 0 4px;
  background: #eaeaea;
  border-radius: 4px;
  padding: 8px 12px;
  font-size: 12px;
  color: #333;
  text-decoration: none !important;
}
#campaignKv .entryLink:after {
  position: absolute;
  content: url(https://img.travel.rakuten.co.jp/camp/mobile/202207/images/iconOpen.png);
  margin-left: 20px;
}

/* --- キャンペーン注意事項 --- */
.campAt_con { font-size: 13px; line-height: 1.4; margin-bottom: 10px; }
.campAt_con dt { font-weight: bold; color: #00B900; font-size: 16px; margin-bottom: 3px; }
.campAt_con dd { margin-bottom: 10px; }
.campAt_con dd b { display: block; }

/* --- campaignKv (service_debut より転用) --- */
#campaignBox #campaignKv {
  margin: 0 auto;
  border-radius: 8px;
  border: 10px solid #B3EAB3;
  box-sizing: border-box;
  overflow: hidden;
  background: #fff;
}
#campaignBox #campaignKv h1 { text-indent: 0; text-align: center; }
#campaignBox #campaignKv h1 img { width: 100%; max-width: 350px; margin: 16px 0 0; }
#campaignBox #campaignKv .kv_img { text-align: center; margin: 10px 0; }
#campaignBox #campaignKv .kv_img img { width: 100%; max-width: 320px; margin: 0; }
#campaignBox #campaignKv .service_icon { text-align: center; margin: 16px 0 24px; }
#campaignBox #campaignKv .service_icon img { width: 60%; margin: 0; }
#campaignBox .serviceUl { display: flex; justify-content: center; position: relative; padding:0 0 24px; flex-flow: row wrap;}
#campaignBox .serviceUl div{ margin: 0 10px 10px; min-width: 86px;}
#campaignBox .serviceUl.complete{ padding-top: 24px;}
#campaignBox .serviceUl.complete::after{ content: "Complete !"; width: 100%; height: 100%; background: rgba(0,185,0,0.75); position: absolute; left: 0; top: 0; color: #fff; font-size: 50px; display: flex; justify-content: center; align-items: center;}
#campaignBox .serviceUl span { display: block; margin: auto; padding: 60px 0 0 0; font-size: 13px; font-weight: bold; text-align: center; color: #00B900; line-height: 1.3; width: 100%; background-size: 50px!important; }
#campaignBox .serviceUl span em { font-size: 18px; display: block; font-style: normal;}
#campaignBox .serviceUl span small { font-size: 13px; display: block;}
#campaignBox .serviceUl #pitari_dh span{ background: url(https://img.travel.rakuten.co.jp/camp/service_debut/202202/images/i_hotel.png) center top no-repeat;  }
#campaignBox .serviceUl #pitari_dp span{ background: url(https://img.travel.rakuten.co.jp/camp/service_debut/202202/images/i_plane.png) center top no-repeat; }
#campaignBox .serviceUl #pitari_cars span{ background: url(https://img.travel.rakuten.co.jp/camp/service_debut/202202/images/i_car.png) center top no-repeat; }
#campaignBox .serviceUl #pitari_bus span{ background: url(https://img.travel.rakuten.co.jp/camp/service_debut/202202/images/i_bus.png) center top no-repeat; }
#campaignBox .serviceUl #pitari_ov span{ background: url(https://img.travel.rakuten.co.jp/camp/service_debut/202202/images/i_ov.png) center top no-repeat; }
#campaignBox .serviceUl #pitari_rte span{ background: url(https://img.travel.rakuten.co.jp/camp/service_debut/images/i_rte.png) center top no-repeat; }
#campaignBox .serviceUl span.off { color: #aaa; background-size: 50px!important; }
#campaignBox .serviceUl span.off small{ display: block; padding: 24px 0 0; background: url(https://img.travel.rakuten.co.jp/camp/service_debut/202202/images/check.png) center top no-repeat;}
#campaignBox .serviceUl #pitari_dh span.off{ background: url(https://img.travel.rakuten.co.jp/camp/service_debut/202202/images/i_hotel_off.png) center top no-repeat; }
#campaignBox .serviceUl #pitari_dp span.off{ background: url(https://img.travel.rakuten.co.jp/camp/service_debut/202202/images/i_plane_off.png) center top no-repeat; }
#campaignBox .serviceUl #pitari_cars span.off{ background: url(https://img.travel.rakuten.co.jp/camp/service_debut/202202/images/i_car_off.png) center top no-repeat; }
#campaignBox .serviceUl #pitari_bus span.off{ background: url(https://img.travel.rakuten.co.jp/camp/service_debut/202202/images/i_bus_off.png) center top no-repeat; }
#campaignBox .serviceUl #pitari_ov span.off{ background: url(https://img.travel.rakuten.co.jp/camp/service_debut/202202/images/i_ov_off.png) center top no-repeat; }
#campaignBox .serviceUl #pitari_rte span.off{ background: url(https://img.travel.rakuten.co.jp/camp/service_debut/images/i_rte_off.png) center top no-repeat; }
#campaignBox #campaignKv .kv_mobile { text-align: center; margin-top: 10px; }
#campaignBox #campaignKv .kv_mobile img { width: 100%; max-width: 320px; margin: 0; }


/* ============================================================================
 * 11. MODAL / POPUP
 * ============================================================================ */
.black {
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, .5);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 99999998;
}
.popUpplan {
  width: 90%;
  left: 5%;
  position: absolute;
  top: 10%;
  background: #fff;
  z-index: 99999999;
  border-radius: 12px;
}
.popUpplan p {
  font-family: 'Noto Sans Jp';
  height: 65vh;
  padding: 10px;
  color: #000;
  font-size: 15px;
  line-height: 35px;
  overflow: scroll;
}
.popUpplan span {
  display: block;
  position: absolute;
  cursor: pointer;
  right: -10px;
  top: -10px;
  width: 30px;
  height: 30px;
  text-indent: -9999999px;
  background: url(https://img.travel.rakuten.co.jp/special/goto/202007-3/images/close_icon.png) no-repeat;
  background-size: 30px 30px;
}
.popUpplan h2 {
  background: #00B900;
  color: #fff;
  text-align: center;
  font-size: 18px;
  padding: 5px 0 3px;
  margin-bottom: 10px;
}


/* ============================================================================
 * 12. PICKUP タイトル装飾 + 背景
 * ============================================================================ */
#pickup h3 {
  text-align: center;
  margin: 0 auto 16px;
  font-weight: 700;
  font-size: 18px;
  line-height: 24px;
  color: #645445;
}
#pickup .package_ttl::before {
  content: "";
  display: inline-block;
  width: 24px;
  height: 24px;
  margin-right: 8px;
  background: url("../images/oversea_package.svg") no-repeat center center;
  vertical-align:bottom;
}
#pickup .hotel_ttl::before {
  content: "";
  display: inline-block;
  width: 24px;
  height: 24px;
  margin-right: 8px;
  background: url("../images/oversea_hotel.svg") no-repeat center center;
  vertical-align:bottom;
}
#pickup .air_ttl::before {
  content: "";
  display: inline-block;
  width: 24px;
  height: 24px;
  margin-right: 8px;
  background: url("../images/oversea_air.svg") no-repeat center center;
  vertical-align:bottom;
}
#pickup .rte_ttl::before {
  content: "";
  display: inline-block;
  width: 24px;
  height: 24px;
  margin-right: 8px;
  background: url("../images/ov_rte.svg") no-repeat center center;
  vertical-align:bottom;
}
/* NOTE: この背景は下段の #pickup,#others,#searchBox { background:#fff8f6 } に
   上書きされます (同一 specificity で後勝ち)。要件確認後に整理してください。 */
#pickup {
  background: url(../images/bg2_sp.png) repeat-y center top/100% auto;
}


/* ============================================================================
 * 13. PLANS TAB
 * ============================================================================ */
#plans {
  background: url(../images/bg3_sp.png) repeat-y center top/100% auto;
}
#plans .hotelList {
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  background: transparent;
  gap: 0;
}
#plans .hotelList .hotel-price a { width: 100%; }
#plans .tabs {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-bottom: 24px;
}
#plans .tabs li {
  width: calc((100% - 16px) / 2);
  padding: 10px 0;
  background: #fff;
  color: #F48500;
  border-radius: 53px;
  text-align: center;
  cursor: pointer;
  font-size: 14px;
  font-weight: 500;
}
#plans .tabs li.active { background: #F48500; color: #fff; }
#plans .plan-button { background: #F48500; }


/* ============================================================================
 * 14. SECTION 背景色 (pickup / others / searchBox)
 * ============================================================================ */
#pickup,
#others,
#searchBox { background: #fff8f6; }


/* ============================================================================
 * 15. TIP / 注意書き
 * ============================================================================ */
.tip { font-size: 12px; color: #333; margin: 32px 0; }


/* ============================================================================
 * 16. OTHERS SECTION
 * ============================================================================ */
#others ul {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
}
#others ul li { width: calc((100% - 16px) / 2); }
#others ul li a { display: block; }
#others ul li a img { width: 100%; height: auto; }


/* ============================================================================
 * 17. MORE BOX (プランをもっと見る) — SPでは非表示
 * ============================================================================ */
.moreBox { position: relative; }
.moreBox input { display: none; }
.moreBox label {
  position: absolute;
  z-index: 1;
  transform: translateX(-50%);
  left: 50%;
  bottom: 0px;
  width: 40%;
  max-width: 400px;
  height: auto;
  cursor: pointer;
  text-align: center;
  padding: 24px 0;
  font-size: 14px;
  font-weight: 600;
  color: #F48500;
  border-radius: 4px;
  border: 1px solid #F48500;
  background: #fff;
  display: none;                /* SPでは非表示 */
  align-items: center;
  justify-content: center;
  flex-direction: row-reverse;
}
.moreBox label:hover { opacity: 0.7; }
.moreBox label::after {
  z-index: 2;
  content: "プランをもっとみる";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
.moreBox label::before {
  z-index: 10;
  display: block;
  border-top: 3px solid #F48500;
  border-right: 3px solid #F48500;
  content: "";
  position: absolute;
  left: 90%;
  top: 50%;
  transform: translateY(-65%) rotate(135deg);
  width: 8px;
  height: 8px;
  border: 1px solid #F48500;
  border-bottom: none;
  border-left: none;
}
.moreBox input:checked + label { bottom: 0px; }
.moreBox input:checked + label::after { content: "閉じる"; }
.moreBox input:checked + label::before { transform: translateY(-50%) rotate(-45deg); }
.moreBox .moreContainer { max-height: none; }
.moreBox input:checked ~ .moreContainer { max-height: 99999px; }


/* ============================================================================
 * 18. BUTTON / PAGETOP
 * ============================================================================ */
.ss-button { background: #00b900; width: 100%;}
.pagetop a { background: #ec7b9e; }


/* ============================================================================
 * 19. SWIPER
 * ============================================================================ */
.swiper-container {
  will-change: transform;
  transform: translate3d(0, 0, 0);
}
.swiper-container .swiper-slide { border: 1px solid #c9c9c9; }
.swiper-container .swiper-scrollbar { bottom: 0px !important; }


/* ============================================================================
 * 20. AREA LIST / TAB
 * ============================================================================ */
.area-list {
  display: flex;
  gap: 8px;
  cursor: pointer;
  flex-wrap: wrap;
  justify-content: center;
}
.area-list li {
  padding: 12px 16px;
  border: 1px solid #ccc;
  background: #fff;
  color: #333;
  border-radius: 6px;
  line-height: 1;
  font-size: 13px;
  white-space: nowrap;
  width: auto;
  flex-shrink: 0;
}
.area-list li.active {
  color: #eb7b9e;
  border-color: #eb7b9e;
  padding-left: 32px;
  background: #fff url(../images/ico-check.svg) no-repeat 12px center / 12px;
}
.area-tab-swiper { overflow: hidden; }
.area-tab-swiper .area-list {
  flex-wrap: nowrap;
  justify-content: flex-start;
  gap: 0;
}


/* ============================================================================
 * 21. RTE HOTEL BOX (おすすめホテル Swiper)
 * ============================================================================ */
#rte .hotelbox .swiper-container { padding-top: 32px !important; }
#rte .hotelbox .swiper-slide {
  background: #fff;
  border-radius: 4px;
  box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.1);
  box-sizing: border-box;
  border-radius: 16px;
}
#rte .hotelbox .swiper-slide a { color: #333; }
#rte .campaignBnr { margin: 0 0 40px; }

/* --- カード内要素 --- */
.rteImg {
  overflow: hidden;
  aspect-ratio: 8/5;
  margin-bottom: 8px;
  border-radius: 4px 4px 0 0;
}
.rteImg img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 15px 15px 0 0;
}
.rteTitle {
  font-size: 16px;
  padding: 0 16px;
  margin-bottom: 8px;
  font-weight: bold;
  line-height: 1.5;
  height: 3em;
  overflow: hidden;
}
.rtePrice {
  font-size: 18px;
  color: #006c00;
  padding: 0 16px 8px;
  word-break: break-all;
  text-align: right;
  font-weight: 600;
}
.rtePrice small { font-size: 14px; }
.rteLocation {
  font-size: 14px;
  color: #767676;
  padding: 0 16px 0 32px;
  margin-bottom: 16px;
  text-align: right;
}
.rteLocation span {
  background: url(https://img.travel.rakuten.co.jp/special/blackfriday/2025/images/icon_location.svg) no-repeat left center / 12px;
  display: inline-block;
  padding-left: 16px;
}

/* --- タグ(バッジ) --- */
#rte .hotelbox .swiper-slide .tags {
  position: absolute;
  top: -1rem;
  left: 0;
}
#rte .hotelbox .swiper-slide .tags .rteTag {
  border-radius: 100rem;
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  padding: 4px 8px;
  background: #008a00;
}
#rte .hotelbox .swiper-slide .tags .orange { background: #ff6600; }

.swiper-wrapper { padding: 20px 0 40px;}
.ss-hotel { overflow: visible;}
.ss-hotel .hotel-main .chara li.icon.ichioshi {
        position: absolute;
        top: -16px;
        left: 0;
        background: #ff6600;
        border: 1px solid #ff6600;
        font-size: 14px;
        padding: 4px 8px 8px;
        font-weight: 600;
        color: #fff;
        border-radius: 20px;
    }
.ss-hotel .htlInfo {
    right: 0;
    bottom: 0;
    width: calc(100% - 19px);
    text-align: left;
    border-radius: 0;
    display: flex;
    align-items: center;
}

.ss-hotel .htlInfo span.sp {
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    white-space: normal;
    width: calc(100% - 16px);
    height: 17px;
}
