/* ============================================
   USJ 2026 Limited Campaign - PC Styles
   ============================================ */

/* ============================================
   Base Styles & Layout
   ============================================ */
.m_pc {
    display: block;
    max-width: 100%;
}

.m_sp {
    display: none !important;
}

#widewrapper {
    width: 100%;
    line-height: 1.5;
    overflow: hidden;
    font-family: 'Noto Sans JP', sans-serif;
}

#widewrapper a {
    transition: all 0.3s ease-out;
}

/* ============================================
   Header & Navigation
   ============================================ */
#topBox h1 img {
    display: block;
    width: 100%;
}

.pgNav {
    z-index: 50;
    width: 100%;
}

.pgNav ul {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 10px 0;
    width: 100%;
}

/* Merged from two duplicate .pgNav ul li a declarations */
.pgNav ul li a {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 12px 40px;
    color: #fff !important;
    width: fit-content;
    font-weight: 700;
    font-size: 20px;
}

.pgNav ul li a:hover {
    opacity: 0.7;
    text-decoration: none !important;
}

#topNav ul {
    display: flex;
    align-items: stretch;
    background: #1D54A7;
}

#topNav ul li:last-child {
    border-right: none;
}

/* Navigation Icons — icons.svg row1 (white), 28×28px display
   SVG viewBox 192×146, 4 rows × 5 cols, each cell ≈38px tall
   background-size: 149px 113px (scale 149/192=0.776)
   Col positions: col1=0, col2=−31, col3=−61, col4=−91, col5=−121 */
#topNav ul .nav_icon::before {
    content: '';
    display: block;
    width: 28px;
    height: 28px;
    background: url(https://img.travel.rakuten.co.jp/themepark/usj/season/2026fes/images/icons.svg) no-repeat;
    background-size: 149px 113px;
    /* default: 特典付プラン紹介 → col2 (building+stars) */
    background-position: -31px 0px;
    margin: 0 auto 6px;
}

#topNav ul .plan_icon::before {
    /* パーク最新情報 → col5 (park/people) */
    background-position: -121px 0px;
}

#topNav ul .search_icon::before {
    /* 日付検索 → col4 (magnifying glass) */
    background-position: -91px 0px;
}

#topNav ul .coupon_icon::before {
    /* クーポン → col1 (ticket) */
    background-position: 0px 0px;
}

#topNav ul .special_icon::before {
    /* 特典付プラン紹介 → col3 (gift/star) */
    background-position: -60px 0px;
}

/* ============================================
   Page Layout & Background
   ============================================ */
.pg_h2 {
    text-align: center;
    margin: auto auto 40px auto;
}

/* h2.pg_h2 text style — image replaced with text + pseudo-element icon */
h2.pg_h2 {
    display: flex;
    align-items: center;
    justify-content: center;
    max-width: 900px;
    margin: 0 auto 24px;
    padding: 16px 24px;
    background: #fff;
    font-size: 32px;
    font-weight: 800;
    color: #1D54A7;
    gap: 12px;
    box-sizing: border-box;
}

/* icon: icons.svg row2 (blue #1D54A7)
   background-size: 149px 113px → row2 y=−29px, col2 x=−31px */
h2.pg_h2::before {
    content: '';
    display: block;
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    background: url(https://img.travel.rakuten.co.jp/themepark/usj/season/2026fes/images/icons.svg) no-repeat;
    background-size: 149px 113px;
    background-position: -31px -29px;
}

h3.pg_h3 {
    color: #DE2280;
    font-style: italic;
    text-align: center;
    font-size: 20px;
    font-weight: 700;
}

h3.pg_h3 .txt-lg {
    font-size: 24px;
}

.pg_h2 img {
    margin: auto;
}

.ptBk {
    position: relative;
    overflow: hidden;
    padding-top: 64px;
    margin-bottom: 80px;
}

.bgAll {
    overflow: hidden;
    background: url(https://img.travel.rakuten.co.jp/themepark/usj/season/2026limitetd/images/bg_pc.png) center center repeat-y;
    background-size: 100%;
}

.wd1200 {
    border-radius: 16px;
    width: 1200px;
    margin: auto;
    background: #fff;
    padding: 60px 0;
}

.eventMain {
    width: 100%;
    max-width: 1200px;
    margin: auto;
    position: relative;
}

/* ============================================
   Common Elements
   ============================================ */
.usjtop {
    max-width: 1200px;
    margin: 10px auto;
    padding: 0 10px;
}

.usjtop a {
    display: block;
    padding: 20px;
    font-size: 22px;
    font-weight: bold;
    text-align: center;
    border-radius: 5px;
    background: #000000;
    color: #fff !important;
}

.usjtop a:hover {
    opacity: 0.8;
}

.usjtop + .note {
    max-width: 1040px;
    padding: 0 10px;
    margin: 48px auto;
}

ul.usjlogo {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    width: 100%;
}

ul.usjlogo li {
    margin: 16px;
}

.note {
    font-size: 14px;
    margin: 30px;
}

.note2 {
    text-align: center;
    font-size: 76%;
    margin: 8px auto 0;
}

.importantNote {
    color: #FF0004;
    font-size: 14px;
    font-weight: 700;
}

.note.white {
    color: #fff;
}

.redFont {
    color: #FF0004;
}

.whiteBg {
    background-color: #fff;
}

/* ============================================
   Buttons & Links
   ============================================ */
a.btnBox {
    display: block;
    width: 92%;
    margin: 12px auto;
    font-weight: bold;
    color: #fff !important;
    background: #0368DA;
    font-size: 14px;
    text-align: center;
    padding: 10px 0;
    border-radius: 4px;
}

.tokuBtn {
    text-align: center;
    margin: 24px auto 48px;
}

.tokuBtn a:hover {
    opacity: 0.9;
}

.btn {
    width: 100%;
}

.btn a {
    width: fit-content;
    display: block;
    margin: 0 auto;
    color: #fff !important;
    font-weight: 700;
    font-size: 20px;
    text-align: center;
    cursor: pointer;
    position: relative;
}

.btn a:link {
    color: #fff !important;
}

.btn a:hover {
    opacity: .8;
    text-decoration: none !important;
}

.link-b {
    display: block;
    width: 40%;
    margin: 0 auto;
}

.link-b img {
    width: 100%;
}

.link-b:hover {
    opacity: .8;
}

/* ============================================
   Special Elements
   ============================================ */
.endBnr {
    text-align: center;
    margin: 70px auto 40px auto;
}

.endBnr h3 {
    color: #AA0001;
    text-align: center;
    margin: auto auto 24px auto;
    font-size: 32px;
}

.endBnr a:hover {
    opacity: 0.8;
}

.gotoTop {
    width: 80px;
    position: fixed;
    right: 0;
    bottom: 20px;
    z-index: 10;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.gotoTop a {
    display: block;
    width: 80px;
}

.gotoTop a img {
    width: 100%;
}

.gotoTop a:hover {
    opacity: 0.8;
}

.newsImg {
    width: 600px;
    display: block;
    margin: 0 auto 24px;
}

.bnrLink {
    width: 100%;
    display: block;
    margin: 120px auto;
}

.bnrLink img {
    display: block;
    width: 60%;
    margin: 0 auto;
}

.bnrLink img:hover {
    opacity: 0.8;
}

.hotelRecommend {
    margin-top: 30px !important;
    margin-bottom: 30px !important;
}

/* ============================================
   Search Box & Forms
   ============================================ */
#searchBk {
    padding: 80px 10px 40px;
    background-color: #FFFED4;
    background-image: url('../images/bg.png');
    background-repeat: no-repeat;
    background-size: 100% auto;
    background-position: center left;
}

#searchBk .pg_h2 {
    margin-bottom: 0;
}

#domestic-search-box {
    width: 100%;
    max-width: 1200px;
    margin: auto;
    background: transparent;
}

#search-box.verB.test .dhAll.dh {
    margin-top: 0;
    background: #fff;
}

#search-box p.searchSubmit a {
    text-indent: 0;
    height: auto;
    padding: 12px 0;
    font-weight: bold;
    background: #D04A00 !important;
    line-height: 1;
}

#search-box p.searchSubmit a img {
    width: 50%;
}

#search-box p.searchSubmit a:hover {
    color: #fff;
    text-decoration: none;
}

#search-box {
    border: none;
    background: none;
}

#search-box.verB.test .explain {
    top: -30px;
}

#searchSwitchArea1 {
    padding-top: 50px;
}

#searchSwitchArea1 .line.sibori {
    top: -7px;
}

/* Search radio selected state */
#search-box.verB input[type=radio]:checked + label {
    background: url('../images/check.png') left center / 20px 20px no-repeat !important;
}

.searchWide {
    max-width: 1200px;
    margin: 0 auto 32px;
    letter-spacing: 1px;
    width: 100%;
    background-color: #fff;
    padding: 20px;
    border-radius: 8px;
}

#ui-datepicker-div {
    z-index: 200 !important;
}

/* ============================================
   Ranking Section
   ============================================ */
.rankPart {
    position: relative !important;
    margin-top: 48px;
}

.rank-wrapper {
    display: flex;
    justify-content: start;
    flex-wrap: wrap;
}

.rank-wrapper .rkBox {
    width: 23.1%;
    border: 1px solid #ccc;
    border-radius: 4px;
    background: #fff;
    margin-right: 2.4%;
    margin-bottom: 24px;
    box-sizing: border-box;
}

.rank-wrapper .rkBox:nth-child(4) {
    margin-right: 0;
}

.rank-wrapper img {
    width: 100%;
}

.rankPart .rkBox .photoBox {
    position: relative;
    height: 134px;
    overflow: hidden;
    display: flex;
    align-items: center;
}

.rankPart .rkBox .photoBox span {
    display: none;
}

.rankPart .rkBox .photoBox img {
    border-radius: 3px 3px 0 0;
    width: 100%;
    object-fit: cover;
}

.rankPart .rkBox .photoBox:before {
    width: 100%;
    height: 50px;
    position: absolute;
    display: block;
    bottom: 0;
    left: 0;
    content: "";
    background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.6));
}

.rankPart .rkBox .photoBox em {
    color: #fff;
    font-style: normal;
    position: absolute;
    background: url(https://img.travel.rakuten.co.jp/themepark/usj/season/2025christmas/images/rex-icon-rating-filled.png) 0 center no-repeat;
    bottom: 8px;
    right: 8px;
    padding-left: 14px;
    font-size: 13px;
    font-weight: bold;
    z-index: 5;
}

.rankPart .rkBox a h3 {
    font-size: 14px;
    color: #333;
    margin: 8px;
}

.rankPart .rkBox a:hover {
    opacity: 0.75;
    text-decoration: none;
}

.rankPart .rkBox a .priceBox {
    margin-right: 8px;
    color: #BF0000;
    font-size: 14px;
    text-align: right;
    font-weight: bold;
}

.rankPart .rkBox a .priceBox em {
    font-style: normal;
    font-size: 22px;
    font-weight: bold;
}

.rankPart .rkBox h4 {
    margin: 8px;
    font-size: 14px;
    font-weight: normal;
}

/* ============================================
   TokuBox Wrappers (bg.png + per-section color)
   ============================================ */
.tokuBox {
    width: 100%;
    background-image: url('../images/bg.png');
    background-repeat: repeat-y;
    background-size: 100% auto;
    background-position: center left;
    padding: 80px 0;
}

.tokuBox-1 { background-color: #DEF5FF; padding: 40px 0 80px; }  /* クーポン — ライトブルー */
.tokuBox-2 { background-color: #FFFED4; }  /* 宿泊SALEプラン — ライトイエロー */
.tokuBox-3 { background-color: #DEF5FF; }  /* グッズ特典付プラン — ライトブルー */
.tokuBox-4 { background-color: #DEF5FF; }  /* パーク情報 — ライトブルー */

/* ============================================
   Hotel Information Sections
   ============================================ */
.tokuInfo {
    max-width: 1200px;
    margin: 0 auto;
    letter-spacing: 1px;
    width: 100%;
}

.tokuInfoSec {
    margin: 0 auto 50px;
    padding: 40px;
    background: #fff;
    border-radius: 0 0 16px 16px;
}

.tokuInfoSec .txtL {
    font-size: 24px !important;
    font-weight: 700 !important;
    color: #172A76 !important;
    margin: 10px auto 20px;
    text-align: center;
    padding: 0 50px;
}

.tokuInfoSec .txtS {
    margin: 20px auto 0;
    width: 470px;
    text-align: left;
    font-size: 13px;
}

.tokuInfoSec h4 {
    padding: 8px;
    text-align: center;
    font-size: 18px;
    color: #1D54A7;
    font-weight: 700;
    margin: 16px 0;
}

.tokuInfoSec h5 {
    font-size: 24px;
    text-align: center;
    font-weight: 600;
    margin: 24px auto;
    line-height: 1.2;
    color: #1D54A7;
}

.tokuInfoSec .intro {
    padding: 0 40px 40px;
}

.tokuPho img {
    display: block;
    margin: 0 auto;
}

.tokuInfo .part1 {
    position: relative;
    background: #FFEBEC;
    padding: 40px;
    border-radius: 0 0 16px 16px;
}

.tokuInfo .part1 img {
    display: block;
    margin: 32px auto;
}

.tokuInfo .part2 .txtL {
    font-size: 32px !important;
    margin: 32px auto 24px;
}

.tokuInfoContent:last-of-type {
    margin: 56px 0 0;
}

.imgSection {
    background: #FFEBEC;
    padding: 40px 0 10px;
    border-radius: 16px 16px;
}

.imgSection img {
    display: block;
    margin: 0 auto;
}

/* Special Plan Sections */
#planBk_2 .btn, #planBk_3 .btn {
    margin-top: 40px;
}

#planBk_2 .price, #planBk_3 .price {
    font-size: 16px;
}

#planBk_2 .price span, #planBk_3 .price span {
    font-size: 22px;
}

#planBk_2 .tokuInfoSec:nth-of-type(2),
#planBk_3 .tokuInfoSec:nth-of-type(2) {
    padding: 40px 40px 0;
    border-radius: 0;
    margin-bottom: 0;
}

#planBk_3 .btn a {
    width: 80%;
    max-width: 900px;
}

/* Information Decoration */
.tokuInfoDec {
    padding: 40px 10%;
    border-radius: 16px;
    margin-bottom: 40px;
    background: #fff;
    line-height: 1.5;
}

.tokuInfoDec h3 {
    font-size: 24px;
}

.tokuInfoDec div {
    background: #FFF3D8;
    color: #A3141E;
    padding: 24px 0;
    font-weight: 700;
    margin: 24px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    border-radius: 16px;
    line-height: 2;
}

.tokuInfoDec .title {
    text-align: center;
    font-size: 16px;
}

.tokuInfoDec div p {
    font-size: 18px;
}

.tokuInfoDec p {
    font-size: 14px;
}

/* ============================================
   Swiper & Hotel Cards
   ============================================ */
.swiper {
    width: 100%;
    box-sizing: border-box;
    padding: 0 15px 25px 11px !important;
}

.swiper-slide {
    border-radius: 4px;
    border: 1px solid #ccc;
}

.swiper-slide img {
    border-radius: 4px 4px 0 0;
}

.hotel-box,
.hotel-img,
.hotel-img img {
    width: 100%;
}

.hotel-img img {
    height: 140px;
    object-fit: cover;
    aspect-ratio: 16 / 9;
}

.hotel-img {
    display: block;
    position: relative;
}

.hotel-img:hover {
    opacity: .8;
}

.score {
    position: absolute;
    top: 50%;
    bottom: 0;
    right: 0;
    left: 0;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.5) 100%);
    display: flex;
    align-items: flex-end;
    flex-direction: column-reverse;
    padding: 8px;
}

.crown {
    width: 32px;
    height: 32px;
    line-height: 45px;
    text-align: center;
    font-weight: 700;
    font-size: 14px;
}

.crown-1 {
    background: url(https://img.travel.rakuten.co.jp/themepark/usj/season/2025christmas/images/crown_1.png) center/100% no-repeat;
}

.crown-2 {
    background: url(https://img.travel.rakuten.co.jp/themepark/usj/season/2025christmas/images/crown_2.png) center/100% no-repeat;
}

.crown-3 {
    background: url(https://img.travel.rakuten.co.jp/themepark/usj/season/2025christmas/images/crown_3.png) center/100% no-repeat;
}

.crown-normal {
    background: url(https://img.travel.rakuten.co.jp/themepark/usj/season/2025christmas/images/crown_4.png) center/100% no-repeat;
    color: #fff !important;
}

.star {
    display: flex;
    justify-content: center;
    color: #fff;
    font-size: 12px;
    vertical-align: baseline;
}

.star img {
    width: 15px;
    height: 15px;
    margin-right: 3px;
}

.hotel-info {
    width: 100%;
    box-sizing: border-box;
    padding: 8px;
    font-size: 14px;
}

.hotel-info a:hover {
    text-decoration: none !important;
}

.hotel-name {
    font-weight: 700;
}

.hotel-exp {
    margin: 8px 0;
    font-size: 14px;
}

.price {
    font-size: 14px;
    margin-bottom: 8px;
    text-align: right;
    color: #BF0000;
}

.price span {
    font-weight: 700;
    font-size: 22px;
}

.hotel-link {
    display: block;
    width: 100%;
    background-color: #0368DA;
    border-radius: 4px;
    color: #fff !important;
    font-size: 14px;
    font-weight: 700;
    padding: 10px 0;
    text-align: center;
    cursor: pointer;
}

.hotel-link:link {
    color: #fff !important;
}

.hotel-link:hover {
    color: #fff !important;
    opacity: .8;
    text-decoration: none !important;
}

/* ============================================
   Other Plans Section
   ============================================ */
#others {
    margin-bottom: 0;
    padding-top: 0;
    margin-top: 120px;
}

#others .links {
    display: flex;
    align-content: center;
    justify-content: center;
    font-family: 'Noto Sans JP';
}

#others .links a {
    display: block;
    box-sizing: border-box;
    position: relative;
    width: calc((100% - 72px) / 4);
    margin-right: 24px;
    padding: 16px 0 16px 32px;
    text-align: center;
    color: #A3141E;
    font-weight: 700;
    background-color: #EED49C;
    border-radius: 6px;
}

#others .links a::before {
    content: '';
    display: block;
    position: absolute;
    top: 50%;
    left: 32px;
    transform: translateY(-50%);
    width: 14px;
    height: 20px;
    background: url(https://img.travel.rakuten.co.jp/themepark/usj/season/2025christmas/images/arrow_red.svg) center/100% 100% no-repeat;
}

#others .links a:hover {
    opacity: 0.8;
    text-decoration: none;
    color: #fff !important;
}

#others .links a:last-child {
    margin-right: 0;
}

#others .pg_h2 img {
    width: 400px;
}

/* ============================================
   Guide Events & Special Content
   ============================================ */
.guideEvent {
    box-sizing: border-box;
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px 40px;
    background-color: #fff;
    border-radius: 16px;
    display: flex;
    align-items: center;
}

.guideEvent h2 {
    font-size: 24px;
    color: #172A76;
    min-width: 15%;
    margin-right: 40px;
}

.guideEvent div a {
    display: block;
    width: fit-content;
    text-decoration: underline !important;
    margin-bottom: 20px;
    cursor: pointer;
    color: #333;
}

.guideEvent div a::before {
    display: inline-block;
    content: '';
    width: 14px;
    height: 18px;
    background: url(https://img.travel.rakuten.co.jp/themepark/usj/season/2025christmas/images/arrow_black.png) center/100% 100% no-repeat;
    vertical-align: sub;
    margin-right: 8px;
}

.guideEvent div a:hover {
    opacity: 0.8;
    color: #333;
}

.guideEvent div a:last-of-type {
    margin-bottom: 0;
}

/* ============================================
   Coupon & Feature Sections
   ============================================ */
.couponOneClick a:hover {
    text-decoration: none !important;
}

.coupon__box__holder {
    padding: 24px !important;
    width: auto;
    min-width: 1000px;
}

#COUPON h2 {
    padding-top: 0;
}

.cpn {
    display: flex;
    justify-content: center;
    margin: 0 auto;
}

.cpn li a {
    background: #ddd;
    border-radius: 2px;
    color: #333;
    display: inline-block;
    font-size: 13px;
    padding: 4px 8px;
}

.cpn .blankLink {
    background: url(https://img.travel.rakuten.co.jp/themepark/usj/season/2025christmas/images/blank.png) 100% no-repeat;
    margin: 0 0 0 16px;
    padding-right: 32px;
}

.atn {
    font-size: 14px;
    text-align: center;
    padding-top: 20px;
}

#couponBk .tokuInfoSec {
    padding: 16px;
}

#parkInfo .tokuInfoSec {
    border-radius: 16px;
}

#couponBk .note {
    margin: 0;
    text-align: center;
    padding: 16px 0;
}

.coupon__filter__guide {
    margin: 16px auto !important;
}

/* ============================================
   Feature Articles
   ============================================ */
.feature .swiper-slide {
    font-size: 14px;
    line-height: 1.4;
    box-sizing: border-box;
    border-radius: 4px;
    border: 1px solid #eaeaea;
    width: auto;
}

.feature .swiper-slide > img {
    width: 100%;
    aspect-ratio: 16/9;
}

.feature .swiper-slide .update {
    color: #333;
    padding: 8px 12px;
    text-align: right;
}

.feature .swiper-slide .text {
    color: #333;
    padding: 0 12px;
}

.feature .swiper-slide .btn {
    display: block;
    margin: 12px;
    text-align: center;
    color: #fff !important;
    background: #064DA4;
    padding: 10px 0;
    border-radius: 4px;
    font-size: 16px;
    font-weight: bold;
    width: auto;
}

.feature .swiper-slide .btn:hover {
    opacity: 0.8;
    text-decoration: none !important;
}

/* ============================================
   Utility Classes
   ============================================ */
span.secondary button.secondary {
    color: rgb(130, 130, 130) !important;
}

/* ============================================
   KV CTA Box - PC
   ============================================ */
.kv-cta-box {
    background-color: #FFCC00;
    padding: 24px 0;
    width: 100%;
}

.cta-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    position: relative;
    background-color: #0368DA;
    border-radius: 8px;
    width: 600px;
    margin: 0 auto;
    padding: 18px 24px;
    text-decoration: none !important;
    color: #fff !important;
    cursor: pointer;
    transition: opacity 0.2s ease;
    box-sizing: border-box;
}

.cta-btn:hover {
    opacity: 0.85;
    text-decoration: none !important;
}

.cta-btn__icon {
    display: block;
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    background: url(https://img.travel.rakuten.co.jp/themepark/usj/season/2026fes/images/icons.svg) no-repeat;
    background-size: 192px 146px;
    /* 1行目左端：チケットアイコン（白） x=0, y=0 */
    background-position: 0px 0px;
}

.cta-btn__text {
    flex: 0 1 auto;
    text-align: center;
    font-weight: 700;
    font-size: 20px;
    color: #fff;
    line-height: 1.3;
    padding: 0;
}

.cta-btn__arrow {
    position: absolute;
    right: 24px;
    display: block;
    flex-shrink: 0;
    width: 10px;
    height: 10px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    transform: rotate(45deg);
}

/* ============================================
   Package Type Tabs
   ============================================ */
.packageTab {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 40px;
    margin: 0 auto 24px;
    padding: 0;
    list-style: none;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 4px;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.14);
    box-sizing: border-box;
}

.packageTab li {
    position: relative;
    margin: 0;
    padding: 10px 40px;
}

.packageTab li + li::before {
    content: '';
    position: absolute;
    top: 12px;
    bottom: 12px;
    left: 0;
    width: 1px;
    background: #ddd;
}

.packageTab button {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    width: 100%;
    min-height: 38px;
    padding: 6px 12px;
    border: 0;
    background: transparent;
    color: #767676;
    font: inherit;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.2;
    cursor: pointer;
}

/* Tab icons — icons.svg row3 (grey) / row2 (blue, active)
   background-size: 144px 110px
   Inactive y=−87px → active y=−59px */
.packageTab button::before {
    content: '';
    display: block;
    flex: 0 0 24px;
    width: 24px;
    height: 24px;
    background: url(https://img.travel.rakuten.co.jp/themepark/usj/season/2026fes/images/icons.svg) no-repeat;
    background-size: 144px 110px;
    background-position-y: -87px;
}

.packageTab__item--hotel button::before { background-position-x: -33px; }
.packageTab__item--air button::before   { background-position-x: -62px; }
.packageTab__item--jr button::before    { background-position-x: -90px; }

.packageTab li.active button { color: #0072bf; }
.packageTab li.active button::before { background-position-y: -59px; }

.packageTab button:focus-visible {
    outline: 2px solid #0072bf;
    outline-offset: -3px;
    border-radius: 3px;
}

.packageTab ~ .swiper[data-type][hidden] { display: none; }

/* ============================================
   RRO Hotel Components
   ============================================ */

/* Star rating */
.rro-rating {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 5px 0 8px;
    line-height: 1;
}

.rro-rating__stars {
    position: relative;
    display: inline-block;
    color: #d8d8d8;
    font-size: 16px;
    letter-spacing: 1px;
    white-space: nowrap;
}

.rro-rating__stars-base {
    display: block;
}

.rro-rating__stars-fill {
    position: absolute;
    top: 0;
    left: 0;
    overflow: hidden;
    color: #f6ab00;
    white-space: nowrap;
}

.rro-rating__value {
    color: #bf0000;
    font-size: 13px;
    font-weight: 700;
}

/* Hotel media container (image + overlay badges) */
.rro-hotel-media {
    position: relative;
}

/* Coupon badge — overlaid top-right of hotel image */
.rro-coupon-badge {
    position: absolute;
    top: -6px;
    right: -6px;
    width: 130px;
    aspect-ratio: 76 / 44;
    padding: 8px;
    box-sizing: border-box;
    background: url(https://img.travel.rakuten.co.jp/themepark/usj/season/2026fes/images/coupon.svg) center / 100% 100% no-repeat;
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    text-align: center;
    transform: scale(0.9);
}

.rro-coupon-badge b {
    font-size: 14px;
    line-height: 1.2;
    font-weight: 600;
}

/* Facility link — overlaid bottom-right of hotel image */
.rro-facility-link {
    position: absolute;
    right: 0;
    bottom: 0;
    padding: 7px 9px;
    background: rgba(0, 0, 0, 0.58);
    color: #fff !important;
    font-size: 13px;
    line-height: 1;
    text-decoration: none !important;
}

.rro-facility-link:hover {
    background: rgba(0, 0, 0, 0.72);
}

.rro-area-name {
    margin: 0 0 7px;
    color: #767676;
    font-size: 13px;
    font-weight: 700;
}

/* ============================================
   DP Transport Search Buttons
   ============================================ */
.swiper[data-type="dp"] .dp-search-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}

.swiper[data-type="dp"] .dp-search-button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: calc(50% - 4px);
    min-height: 42px;
    padding: 8px 6px;
    border-radius: 5px;
    box-sizing: border-box;
    color: #fff !important;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    text-decoration: none !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
}

.swiper[data-type="dp"] .dp-search-button:hover {
    opacity: 0.82;
}

.swiper[data-type="dp"] .dp-search-button--ana { background: #20158f; }
.swiper[data-type="dp"] .dp-search-button--jal { background: #d90012; }
.swiper[data-type="dp"] .dp-search-button--jr  { background: #050505; }

/* ============================================
   SALE Plan "More" Button
   ============================================ */
.sale-more-button {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    width: fit-content;
    min-width: 420px;
    min-height: 40px;
    margin: 16px auto 0;
    padding: 16px 40px;
    border-radius: 4px;
    box-sizing: border-box;
    background: #df1778;
    color: #fff !important;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none !important;
    transition: opacity 0.2s ease;
}

.sale-more-button::after {
    content: '';
    flex: 0 0 9px;
    width: 9px;
    height: 9px;
    border-top: 1px solid #fff;
    border-right: 1px solid #fff;
    transform: rotate(45deg);
}

.sale-more-button:hover {
    opacity: 0.82;
}

/* ============================================
   Section Heading Icons (h2.pg_h2::before overrides)
   Enlarged from base 28px to 34px, background-size 172px 131px
   Row2 (blue icons) y=−30px
   Col positions: col1=0, col2=−39, col3=−74, col4=−109, col5=−147
   ============================================ */
h2.pg_h2::before {
    width: 34px;
    height: 34px;
    background-size: 172px 131px;
    background-position: -39px -30px;  /* default: col2 building+stars */
}

h2.pg_h2.coupon_icon::before  { background-position:   0    -30px; }
h2.pg_h2.special_icon::before { background-position: -74px  -30px; }
h2.pg_h2.search_icon::before  { background-position: -109px -30px; }
h2.pg_h2.park_icon::before    { background-position: -147px -30px; }


.eventTime {
    box-sizing: border-box;
    width: 600px;
    margin: 0 auto 40px;
    padding: 8px 40px;
    background-color: #fff;
    border-radius: 100px;
    display: flex;
    align-items: center;
    font-size: 25px;
    justify-content: center;
    color: #E2007E;
    font-weight: bold;
}
