/* ============================================================
   Custom CSS - Narita Airport Transit & Stay Program
   サイト本体のカスタムスタイル（style.css の後に読み込み）
   ============================================================ */

/* --- S-1: 固定ページの作成日・最終更新日を非表示 --- */
.bc-update-info {
    display: none !important;
}

/* --- Privacy Policy / Terms ページ 追加スタイル --- */
/* cookie_policy-page のCSSをベースに、リスト表示等を追加 */

.cookie_policy-page .policyBlock__inner__set ul {
    margin-top: 12px;
    padding-left: 0;
}

.cookie_policy-page .policyBlock__inner__set ul li {
    position: relative;
    padding-left: 1.2em;
    line-height: 2;
}

.cookie_policy-page .policyBlock__inner__set ul li::before {
    content: "\2022";
    position: absolute;
    left: 0;
    color: #bd2031;
    font-weight: bold;
}

.cookie_policy-page .policyBlock__inner__set ul li + li {
    margin-top: 6px;
}

/* --- #345: ol（探番）がグローバルリセットli{list-style:none}で番号非表示になっていたため追加 --- */
.cookie_policy-page .policyBlock__inner__set ol {
    margin-top: 12px;
    padding-left: 0;
    counter-reset: policy-ol;
}

.cookie_policy-page .policyBlock__inner__set ol li {
    position: relative;
    padding-left: 1.8em;
    line-height: 2;
    counter-increment: policy-ol;
}

.cookie_policy-page .policyBlock__inner__set ol li::before {
    content: counter(policy-ol) ".";
    position: absolute;
    left: 0;
    color: #bd2031;
    font-weight: bold;
}

.cookie_policy-page .policyBlock__inner__set ol li + li {
    margin-top: 6px;
}

/* #422: h4 -> h3 に昇格したため、タグ名ではなくクラスで見た目を維持する */
.cookie_policy-page .policyBlock__inner__set h3.policyBlock__inner__set__subheading {
    margin-top: 20px;
    font-size: 18px;
    font-weight: 700;
    color: #333;
}

@media screen and (max-width: 767px) {
    .cookie_policy-page .policyBlock__inner__set h3.policyBlock__inner__set__subheading {
        font-size: 16px;
    }
}

/* #422: h3用の下線装飾(::before)が昇格した見出しに付かないよう打ち消す */
.cookie_policy-page .policyBlock__inner__set h3.policyBlock__inner__set__subheading::before {
    content: none;
}

/* 前後ページリンクを非表示（Privacy/Terms では不要） */
.bs-contents-navi {
    display: none !important;
}

/* --- S-3: 青ブロック（Premium Tours） --- */
.index-page .introBlock__inner {
    margin-bottom: 10em;
}

.introBlock__inner--blue {
    /* background: #1133A0; */
}

.index-page .introBlock__inner.introBlock__inner--blue .txtBox__copy:before {
    background: #1133A0;
}

.index-page .introBlock__inner.introBlock__inner--blue .txtBox__tit h2::before {
    background: url(../images/top/ico_indentLeft_bl.svg) center / 100% auto no-repeat;
}

.index-page .introBlock__inner.introBlock__inner--blue .txtBox__tit h2::after {
    background: url(../images/top/ico_indentRight_bl.svg) center / 100% auto no-repeat;
}

.index-page .introBlock__inner.introBlock__inner--blue .phtBox::before {
    border: 8px solid #1133A0;
}

.index-page .introBlock__inner.introBlock__inner--blue .txtBox__tit h2 span {
    color: #1133A0;
    background: url(../images/top/bg_bl.svg) right center/cover no-repeat;
}

.index-page .introBlock__inner.introBlock__inner--blue .phtBox::after {
    background: #e8eaf2;
}

.index-page .introBlock__inner.introBlock__inner--blue .txtBox__copy .detailBtn a {
    border: 2px solid #1133A0;
    color: #1133A0;
}

.index-page .introBlock__inner.introBlock__inner--blue {
    margin-bottom: 2em;
}

.index-page .introBlock__inner.introBlock__inner--blue .detailBtn a::before {
    background: url(../images/common/nav_arr_bl.svg) center / 100% auto no-repeat;
}
/* S-3②: SP ボタン・青背景修正（#Premium 限定） #258
   ① phtBox::after（z-index:auto）が SP で txtBox__copy の下半分を上書きして紺色が消える
      → txtBox__copy に z-index:1 を付与して前面へ
   ② phtBox に margin-top:80px → ボタン突出(25px)とgap(55px)を確保
   ③ phtBox::after は赤と同じく SP で非表示（gap を白にする）
   ※ ボタンは style.css の translateY(50%)/bottom:0 をそのまま使用 */
@media screen and (max-width: 767px) {
    .index-page .introBlock__inner.introBlock__inner--blue .txtBox__copy {
        z-index: 1;
    }
    .index-page #Premium .txtBox__copy .detailBtn {
        z-index: 20 !important;
    }
    .index-page .introBlock__inner.introBlock__inner--blue .phtBox {
        margin-top: 140px;
    }
    .index-page .introBlock__inner.introBlock__inner--blue .phtBox::after {
        display: none;
    }
}

/* --- S-7: PLUS TOURS arrow icon hide (noDropdown has no submenu) --- */
/* override style.css .groBox>li:nth-of-type(n+2)>a::before for noDropdown items */
header .headerBlock nav .groBox > li.noDropdown > a::before {
    display: none !important;
}

/* --- S-10: Book Now 右下固定バナー（TOPページ + Tourページ） --- */
.book-now-banner {
    position: fixed;
    bottom: 80px;
    right: 24px;
    z-index: 45;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}

.book-now-banner__main {
    display: block;
    padding: 14px 28px;
    background: #bd2031;
    color: #fff !important;
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
    letter-spacing: 0.05em;
    border-radius: 4px;
    border: 3px solid #fff;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
    transition: background 0.3s;
    text-align: center;
}

.book-now-banner__main:hover {
    background: #9a1a28;
    color: #fff;
    opacity: 1;
}

.book-now-banner__cyb {
    display: block;
    padding: 6px 12px;
    background: rgba(255, 255, 255, 0.92);
    color: #bd2031 !important;
    font-size: 12px;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
    letter-spacing: 0.04em;
    border-radius: 3px;
    text-align: center;
    transition: background 0.2s;
    white-space: nowrap;
}

.book-now-banner__cyb:hover {
    background: #fff;
    color: #bd2031 !important;
    opacity: 1;
}

@media screen and (max-width: 767px) {
    .book-now-banner {
        bottom: 70px;
        right: 10px;
    }

    .book-now-banner__main {
        padding: 12px 18px;
        font-size: 13px;
    }

    .book-now-banner__cyb {
        font-size: 11px;
        padding: 5px 10px;
    }
}

/* --- S-10②: ファーストビューの Book Now 直下の Check Your Booking リンク --- */
/* BOOK NOW (.detailBtn) は margin-left:auto で右寄せされているため、
   同じ幅・同じmargin-left:autoでBOOK NOWの直下に揃える */
.check-your-booking-link {
    max-width: 268px;
    width: 100%;
    margin: 12px 0 0 auto;
    text-align: right;
    line-height: 1.4;
    position: relative;
    z-index: 2;
}

.check-your-booking-link a {
    display: inline-block;
    padding: 6px 14px;
    background: rgba(255, 255, 255, 0.9);
    color: #bd2031;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.05em;
    text-decoration: underline;
    text-underline-offset: 3px;
    border-radius: 3px;
    transition: background 0.2s;
}

.check-your-booking-link a:hover {
    background: #fff;
}

@media screen and (max-width: 767px) {
    .check-your-booking-link a {
        font-size: 13px;
        padding: 5px 12px;
    }
}

/* --- S-11: Cookie バナー表示中の Book Now / pageTop 押し上げ --- */
/* cookiePolicy__fixBlock 高さ約100pxを考慮してスマホで bottom を上に押し上げる */
@media screen and (max-width: 767px) {
    body.cookie-banner-active .book-now-banner {
        bottom: 170px !important;
    }
    body.cookie-banner-active .pageTop {
        bottom: 120px !important;
    }
}

/* --- S-11②: Cookie バナー表示中の押し上げ（PC 対応追加） --- */
@media screen and (min-width: 768px) {
    body.cookie-banner-active .book-now-banner {
        bottom: 110px;
    }
}
@media screen and (min-width: 768px) {
    .cookiePolicy__fixBlock__flex .closeBtn {
        top: unset;
        right: -64px;
    }
}

/* --- id:200: スマホ Book Now / ▲ / フッターSNS被り修正 --- */
@media screen and (max-width: 767px) {
    /* Book Nowを右下に戻し、▲ボタンとフッターSNS行の間に収める */
    .book-now-banner {
        right: 10px !important;
        left: auto !important;
        bottom: 38px !important;
    }
    /* ▲ボタンをさらに下に下げてBook Nowの下に退ける */
    .pageTop {
        bottom: 5px !important;
    }
    /* フッターのNaritaロゴ+SNS行をもう少し上に上げる */
    .footerBlock {
        padding-top: 18px !important;
    }
}

/* --- #3: TOP キービジュアル padding / font-size 調整（inline style → CSS化） --- */
@media screen and (min-width: 768px) {
    .index-page .keyvisualBlock {
        /* padding: 60px 0; */
    }
    .index-page .keyvisualBlock__inner .titBox {
        top: 60%;
    }
    .index-page .keyvisualBlock__inner .titBox h1 {
        font-size: 70px;
    }
    .index-page .keyvisualBlock__inner .titBox .copyTxt {
        font-size: 24px;
    }
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
    .index-page .keyvisualBlock__inner .titBox h1 {
        font-size: 50px;
    }
    .index-page .keyvisualBlock__inner .titBox .copyTxt {
        font-size: 20px;
    }
}
@media screen and (max-width: 767px) {
    .index-page .keyvisualBlock__inner {
        height: auto;
        min-height: calc(100vh - 286px);
    }
    .index-page .keyvisualBlock__inner img.fitPic {
        position: absolute;
        top: 0;
        left: 0;
        height: 100%;
    }
    .index-page .keyvisualBlock__inner .titBox {
        position: relative;
        top: auto;
        transform: none;
        padding: 16px 5%;
        box-sizing: border-box;
        z-index: 1;
    }
}

/* --- #249: Self-Guided Tour 欄 中央寄せ + プレミアムツアーとのマージン --- */
.introBlock .TripBlock {
    margin-bottom: 56px;
}
.introBlock .TripBlock .TripBlock__inner {
    display: block;
}
.introBlock .TripBlock .txtBox {
    width: 100%;
    max-width: 640px;
    margin: 0 auto;
    padding: 48px 40px;
    border: 10px solid #71c6a5;
    box-sizing: border-box;
    text-align: center;
}
.introBlock .TripBlock .txtBox::before {
    display: none;
}
.introBlock .TripBlock .txtBox__tit h2 {
    justify-content: center;
    padding-left: 0;
}
.introBlock .TripBlock .txtBox__tit h2 span {
    padding-left: 0;
    display: block;
    text-align: center;
}
.introBlock .TripBlock .txtBox__copy p {
    padding-left: 0;
    text-align: center;
}
.introBlock .TripBlock .txtBox__copy .detailBtn {
    margin-left: auto;
    margin-right: auto;
}
@media screen and (max-width: 767px) {
    .introBlock .TripBlock {
        margin-bottom: 32px;
    }
    .introBlock .TripBlock .txtBox {
        padding: 32px 20px;
    }
}

/* --- #243: /eligibility CSS適用 (bodyClass追加のみ・スタイルはcookie_policy-pageで共有) --- */

/* --- #235: フッター Site Policy 配置 + Book Now 被り修正 (2026-06-06) ---
   左ブロック(ロゴ+SNS+SitePolicy) を flex-wrap 対応にしてSNS右横(PC)・SNS下(SP)に配置
   SPフッター下余白を拡張してBook Now/CYBボタンがSNS・クレジットを隠さないよう確保
   ⚠️2026-08-06: 「PC右ナビにBook Now幅分の余白を追加してPREMIUM TOURSの被りを防止」する
   padding-right:210px（footer .footerBlock__inner__right nav）は、2026-08-04の
   PLUS TOURS表示変更でフッターnav内のli(STANDARD TOURS/PREMIUM TOURS)2件が
   丸ごとコメントアウトされ nav が空(<nav><ul></ul></nav>)になったため、
   意味を失った(nav はブロック要素でwidth:autoかつ背景/border無し・空のulに
   隠れる要素も無いため、この余白の有無で見た目は変化しない)と判断し削除した。
--- */
footer .footerBlock__inner__left {
    flex-wrap: wrap;
}
footer .footerBlock__inner__left .footerBlock__policy {
    margin-left: 24px;
    align-self: center;
}
footer .footerBlock__inner__left .footerBlock__policy a {
    color: rgba(255,255,255,0.75);
    font-size: 12px;
    text-decoration: underline;
}
footer .footerBlock__inner__left .footerBlock__policy a:hover {
    color: #fff;
    opacity: 1;
}
@media screen and (max-width: 767px) {
    footer .footerBlock__inner__left .footerBlock__policy {
        width: 100%;
        margin-left: 0;
        margin-top: 12px;
    }
    /* フッターをposition:relativeにしてCopyrightを絶対配置 */
    footer .footerBlock {
        position: relative;
        padding-bottom: 100px !important;
    }
    /* Copyrightをフッター最下部に固定（Book Now/CYB分の余白の下） */
    footer .footerBlock__inner__right .copyrightBox {
        position: absolute;
        bottom: 20px;
        left: 20px;
        right: 20px;
        margin-top: 0;
    }
}
/* --- S-12: Cookie バナー SP スタイル修正 --- */
@media screen and (max-width: 767px) {
    .cookiePolicy__fixBlock {
        padding: 15px 20px 15px 20px;
        z-index: 60;
    }
    .cookiePolicy__fixBlock .cookiePolicy__fixBlock__flex {
        flex-direction: column;
        align-items: center;
    }
    .cookiePolicy__fixBlock .cookiePolicy__fixBlock__flex .agreeBtn {
        width: 100%;
    }
}

/* --- #278/#313: キービジュアルH1テキスト上部切れ修正（横幅拡大時） --- */
/* Frank Ruhl Libre weight:900 で line-height:1.4 でもascenderがはみ出す → 1.6に拡張 */
.index-page .keyvisualBlock__inner {
    overflow: visible;
}
.index-page .keyvisualBlock__inner .titBox h1 {
    line-height: 1.6;
    overflow: visible;
}

/* --- id:9: PNL (NARITA BEYOND Japan) ロゴサイズ調整 --- */
.linkBlock__inner ul li img[alt="NARITA BEYOND Japan"] {
    height: 44px;
    width: auto;
}

/* --- 翻訳未対応通知バナー（full_page.php / translation-notice） --- */
.translation-notice {
    background: #fff3cd;
    border: 1px solid #ffc107;
    padding: 12px 20px;
    margin: 0;
    text-align: center;
    font-size: 14px;
}
.translation-notice p {
    margin: 0;
}

/* --- JS制御で初期非表示にする要素 --- */
.nrt-hidden {
    display: none;
}

/* --- #305: ツアー詳細ページの所要時間タグ（白い四角）左マージン追加 --- */
/* .itemBox__tit（「・ Minimum Time Required」等）の右横にある白い四角に左余白を付与 */
.introBlock__inner__info .itemBox p .itemBox__txt {
    margin-left: 16px;
}

/* --- #392: サイトポリシー本文中のリンク（Privacy Policy/Eligibility/TOP）を強調表示 --- */
.cookie_policy-page .policyBlock__inner__set p a.policy-link-emphasis {
    font-weight: 700;
    color: #b21a28;
    text-decoration: underline;
}
.cookie_policy-page .policyBlock__inner__set p a.policy-link-emphasis:hover {
    opacity: .69;
}

/* --- #392①: 参加資格ページ カウンター位置図リンク＋ライトボックス --- */
/* 予約確認画面(booking.css .img-lightbox-overlay)と同一のクラス名・同一の見た目で統一 */
.eligibility-counter-link {
    font-weight: 700;
    color: #b21a28;
    text-decoration: underline;
    cursor: pointer;
}
.eligibility-counter-link:hover {
    opacity: .69;
}
.img-lightbox-overlay {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 100000;
    background: rgba(0, 0, 0, 0.85);
    align-items: center;
    justify-content: center;
    padding: 24px;
}
.img-lightbox-overlay--open {
    display: flex;
}
.img-lightbox-overlay__img {
    max-width: 100%;
    max-height: 100%;
    border-radius: 8px;
    background: #fff;
    cursor: zoom-out;
}
.img-lightbox-overlay__close {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: none;
    background: rgba(255, 255, 255, 0.15);
    color: #fff;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
}
