/*
 Theme Name:   My Child Theme
 Theme URI:    https://example.com/my-child-theme
 Description:  Child theme of Twenty Twenty-Four.
 Author:       Your Name
 Author URI:   https://example.com
 Template:     twentytwentyfour
 Version:      1.0.0
 License:      GNU General Public License v2 or later
 License URI:  http://www.gnu.org/licenses/gpl-2.0.html
 Text Domain:  my-child-theme
*/

html {
    scroll-behavior: smooth;
    /* fluid root font-size：画面幅に応じて rem 全体が比例スケール（#74 コンテンツ可変） */
    font-size: clamp(18px, 16px + 0.4vw, 19px);
}

body {
    font-family: "Roboto", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
    text-rendering: optimizeLegibility;
    font-kerning: normal;
    font-feature-settings: "kern" 1, "liga" 1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* 共通コンテンツコンテナ（幅・左右ガターの単一定義。変更はここ1箇所） */
.hj-container {
    width: 100%;
    max-width: 1280px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1rem;
    padding-right: 1rem;
}
@media (min-width: 768px) {
    .hj-container {
        padding-left: 2rem;
        padding-right: 2rem;
    }
}

/* 共通プライマリボタン（About us 基準。変更はここ1箇所） */
.btn-primary {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background-color: #2a7ab8;
    color: #fff;
    font-family: 'Roboto', sans-serif;
    font-weight: 600;
    font-size: 0.9375rem;
    padding: 0.75rem 1.75rem;
    border-radius: 9999px;
    transition: background-color 0.3s ease;
}
.btn-primary:hover {
    background-color: #235f8f;
}

.font-cormorant {
    font-family: 'Cormorant', serif;
}

.hidden {
    display: none;
}

.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

.wpcf7 input[type="text"], 
.wpcf7 input[type="email"], 
.wpcf7 input[type="tel"], 
.wpcf7 textarea, 
.wpcf7 select {
    background-color: #ffffff !important;
    padding: 0 20px;
    border-radius: 8px;
}

.wpcf7 input[type="checkbox"] {
    background-color: #ffffff !important;
    border-radius: 4px;
}

.wpcf7 select {
    font-size: 15px !important;
}

.wpcf7 textarea {
    padding: 15px 20px;
}

.wpcf7 .wpcf7-list-item label {
    display: flex;
}

.custom-checkbox .wpcf7-checkbox {
    display: grid !important;
    grid-template-columns: repeat(1, minmax(0, 1fr)); /* 基本は1列 */
    gap: 6px 20px;
}
@media (min-width: 768px) {
    .custom-checkbox .wpcf7-checkbox {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.wpcf7-list-item {
    margin: 0 0 0 0 !important;
}

/* ===========================
  MV Search
=========================== */
.hlj-hero-search input[type="text"],
.hlj-hero-search input[type="email"],
.hlj-hero-search input[type="tel"],
.hlj-hero-search input[type="number"],
.hlj-hero-search input[type="password"],
.hlj-hero-search input[type="date"],
.hlj-hero-search select,
.hlj-hero-search textarea {
    padding: 0 0 4px 0!important;
    min-height: 0 !important;
    height: 28px !important;
    border: 0 !important;
    border-bottom: 1px solid #d1d5db !important; /* gray-300 */
    border-radius: 0 !important;
    box-shadow: none !important;
}
.hlj-hero-search input[type="text"]:focus,
.hlj-hero-search select:focus,
.hlj-hero-search textarea:focus {
    border-bottom-color: #0284c7 !important; /* sky-600 */
    outline: none !important;
}

/* ===========================
  slider
=========================== */
.carousel-nav-btn {
    width: 36px;
    height: 36px;
    padding: 0;
    box-sizing: border-box;
    flex-shrink: 0;
    background: #1a1a1a;
    border: none;
    border-radius: 50%;
    display: grid;
    place-items: center;
    cursor: pointer;
}

/* ===========================
  Booking Process
=========================== */
.num-decoration {
    font-family: Georgia, serif;
    font-style: italic;
    font-size: 2.75rem;
    color: #e8e0d8;
}
.icon-box {
    width: 28px;
    height: 28px;
    background: #f5f0ea;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.tab-underline {
    height: 2px;
    background: #1a1a1a;
    margin-bottom: -1px;
}

/* 検索バー3欄（KEYWORDS input / DESTINATION・ACTIVITIES summary）の文字サイズを強制統一 */
#hero-search-form input,
#hero-search-form summary,
#hero-search-form #selected-destinations-text,
#hero-search-form #selected-activities-text {
    font-size: 1rem;
    line-height: 1.4;
}
#hero-search-form input::placeholder {
    font-size: 1rem;
}

/* 矢印つきボタン・リンク: ホバーで矢印が少し右へスライド */
.btn-primary svg,
.hj-arrow svg {
    transition: transform 0.3s ease;
}
.btn-primary:hover svg,
.hj-arrow:hover svg {
    transform: translateX(4px);
}

/* Regions 地域カード: SP(スマホ)だけ 中央寄せ＋均一の薄い黒＋文字影＋矢印非表示（md以上は元の下グラデ・下寄せ） */
@media (max-width: 767px) {
    .region-card { align-items: center !important; justify-content: center !important; }
    .region-overlay { background: rgba(0, 0, 0, 0.1) !important; }
    .region-label { text-align: center; text-shadow: 0 1px 6px rgba(0, 0, 0, 0.9); }
    .region-arrow { display: none; }
}

/* ツアー検索カードのタイトル: TOPのツアーカード(text-body=1rem=約19px)に合わせる。ゴシック維持。WPTE trip-archive/wte-public.css の!important(20/22px)に勝つ高spec */
.search-container .category-trips-single .category-trips-single-inner-wrap .category-trip-prc-title-wrap .category-trip-title,
.search-container .category-trips-single .category-trips-single-inner-wrap .category-trip-prc-title-wrap .category-trip-title a {
    font-size: 1rem !important;
    line-height: 1.375 !important;
}

/* ツアー詳細ページ: タブ(14px)とOverview本文(15px)が小さいので拡大（WPTEの!importantに勝つ高spec） */
.nav-tab-wrapper .tab-anchor-wrapper .nav-tab,
.wpte-sticky-tab-mobile .tab-anchor-wrapper .nav-tab {
    font-size: 1rem !important;
}
.post-data.overview, .post-data.overview p, .post-data.overview li, .post-data.overview span, .post-data.overview strong,
.post-data.itinerary p, .post-data.itinerary li,
.post-data.details, .post-data.details p, .post-data.details li, .post-data.details span, .post-data.details strong,
.post-data.cost p, .post-data.cost li,
.post-data.faq p, .post-data.faq li {
    font-size: 1rem !important;
    line-height: 1.7 !important;
}

/* Featured Tours(関連ツアー): lgで4件フル幅、5件以上はスライダー。モバイル/タブレットは固定幅スクロール */
#featured-track .featured-card { width: 280px; }
@media (min-width: 768px) {
    #featured-track .featured-card { width: 320px; }
}
@media (min-width: 1024px) {
    /* gap-4(1rem)×3 を引いて4等分＝横幅いっぱいに4件 */
    #featured-track .featured-card { width: calc((100% - 3rem) / 4); }
}

/* ツアー詳細サイドバー: Inquire now を Contact Us(text-body=1rem) と同サイズに揃える */
.wpte-bf-btn.wte-book-now {
    font-size: 1rem !important;
}

/* Featured Tours 矢印: スクロール不可/端の時はグレー（無効） */
.carousel-nav-btn.nav-disabled {
    background: #d1d5db;
    cursor: default;
    pointer-events: none;
}

/* WPTEアーカイブ共通(検索結果 + activities/destination タクソノミー)のコンテナ幅・左右ガター
   ※タクソノミーaページは search-container が付かずガターが欠けて左端にベタ付き崩れ→ここで共通化 */
.wp-travel-engine-archive-outer-wrap {
    width: 100%;
    max-width: calc(1200px + 40px + 40px);
    margin-left: auto;
    margin-right: auto;
    padding-left: 40px;
    padding-right: 40px;
    box-sizing: border-box;
}
@media (max-width: 767px) {
    .wp-travel-engine-archive-outer-wrap {
        padding-left: 20px;
        padding-right: 20px;
    }
}
