/* =====================================================================
   HopGo 旅行商城 - 主样式文件
   设计基准宽度：1440px，内容容器：1280px
   响应式断点：移动端 < 768px / 平板 768~1199px / PC ≥ 1200px
   颜色系统：
     主色红  #e84242
     辅色蓝  #3498db
     深色文字 #323743
     正文文字 #333333
     浅灰背景 #f2f2f2
     边框色  #bcbdc2
   ===================================================================== */

/* ─── 全局重置 ─── */
*, *::before, *::after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  margin: 0;
  padding: 0;
}
ul, ol {
    list-style: none;
}
.tour-detail-about-list ul{
    list-style: disc;
}
html {
  /* 基准字体：1rem = 10px，配合响应式使用 */
  font-size: 62.5%;
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: 'Noto Sans JP', 'Hiragino Sans', 'Hiragino Kaku Gothic ProN',
               'Yu Gothic', 'YuGothic', Meiryo, sans-serif;
  font-size: 1.4rem;   /* = 14px */
  line-height: 1.6;
  color: #333;
  background: #fff;
  min-width: 320px;
  overflow-x: hidden;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

a {
  color: inherit;
  text-decoration: none;
}



button {
  font-family: inherit;
  cursor: pointer;
  border: none;
  background: none;
}

input {
  font-family: inherit;
  outline: none;
}

address {
  font-style: normal;
}

/* ─── CSS 自定义属性 ─── */
:root {
  --color-primary:    #e84242;
  --color-secondary:  #3498db;
  --color-dark:       #323743;
  --color-text:       #333;
  --color-gray-bg:    #f2f2f2;
  --color-border:     #bcbdc2;
  --color-label:      #95999e;
  --color-placeholder:#999;
  --color-white:      #fff;

  --header-height:    11.2rem;   /* 112px */
  --container-width:  128rem;    /* 1280px */
  --container-pad:    8rem;      /* 80px per side */
  --container-inner:  112rem;    /* 1120px */
  --inner-pad:        16rem;     /* 160px per side */

  --radius-sm:  0.4rem;   /* 4px */
  --radius-md:  1rem;     /* 10px */
  --radius-pill: 9.9rem;  /* 99px */

  --shadow-card: 0 0.4rem 0.2rem rgba(0,0,0,0.25);
  --shadow-header: 0 0 0.6rem rgba(0,0,0,0.1);
}

/* ─── 布局容器 ─── */
/* 1280px 中心容器 */
.container {
  width: 100%;
  max-width: calc(var(--container-width) + var(--container-pad) * 2);
  margin: 0 auto;
  padding: 0 var(--container-pad);
}

/* 1120px 中心容器（新闻/博客区块使用） */
.container-inner {
  width: 100%;
  max-width: calc(var(--container-inner) + var(--inner-pad) * 2);
  margin: 0 auto;
  padding: 0 var(--inner-pad);
}

/* ─── 通用标题 ─── */
.section-title {
  font-size: 3.2rem;
  font-weight: 500;
  text-align: center;
  color: var(--color-dark);
  line-height: 1.125;
  margin-bottom: 2.2rem;
}

.section-subtitle {
  font-size: 2.4rem;
  font-weight: 400;
  text-align: center;
  color: var(--color-text);
  line-height: 1.125;
  margin-bottom: 2rem;
}

/* =====================================================================
   HEADER
   ===================================================================== */
.header {
  position: sticky;
  top: 0;
  z-index: 100;
  width: 100%;
  background: var(--color-white);
  -webkit-box-shadow: var(--shadow-header);
          box-shadow: var(--shadow-header);
  padding: 10px 0;
}

.header-container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  height: var(--header-height);
  max-width: calc(var(--container-width) + var(--container-pad) * 2);
  margin: 0 auto;
  padding: 0 var(--container-pad);
}

/* Logo */
.header-logo {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  margin-right: -1.1rem;
  /* padding-bottom: 0.8rem; */
}

.logo-link {
  display: block;
}

.logo-wrap {
  display: grid;
  grid-template-columns: max-content;
  grid-template-rows: max-content;
  place-items: start;
}

.logo-icon {
  grid-column: 1;
  grid-row: 1;
  width: 11.2rem;
  height: 11.2rem;
  margin-left: 3.1rem;
}

.logo-text {
  grid-column: 1;
  grid-row: 1;
  width: 17.4rem;
  height: 8.3rem;
  margin-top: 1.5rem;
  margin-left: 0;
  -o-object-fit: contain;
     object-fit: contain;
  -o-object-position: left center;
     object-position: left center;
}

/* 导航 */
.header-nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 100%;
}

.nav-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 4rem;
}

.nav-item {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-item-align: stretch;
      align-self: stretch;
}

.nav-link,
.nav-btn {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.4rem;
  height: 100%;
  padding: 0 2.4rem;
  font-size: 1.4rem;
  font-weight: 500;
  color: var(--color-dark);
  white-space: nowrap;
  -webkit-transition: color 0.2s;
       -o-transition: color 0.2s;
          transition: color 0.2s;
}

.nav-link:hover,
.nav-btn:hover {
  color: var(--color-primary);
}

.nav-arrow {
  width: 0.7rem;
  height: 0.6rem;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}

/* 注册按钮 */
.nav-register {
	margin-left: 16px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: 4rem;
  padding: 0 2.4rem;
  background: var(--color-primary);
  color: var(--color-white);
  font-size: 1.6rem;
  font-weight: 500;
  border-radius: var(--radius-pill);
  white-space: nowrap;
  -webkit-transition: opacity 0.2s;
       -o-transition: opacity 0.2s;
          transition: opacity 0.2s;
}

.nav-register:hover {
  opacity: 0.85;
}

/* 汉堡菜单图标 */
.nav-hamburger {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 2.4rem;
  height: 1.9rem;
  padding: 0;
  margin-left: 2.4rem;
}

.hamburger-line {
  display: block;
  width: 100%;
  height: 0.3rem;
  background: var(--color-primary);
  border-radius: 0.2rem;
  -webkit-transition: -webkit-transform 0.25s ease, opacity 0.25s ease;
          transition: transform 0.25s ease, opacity 0.25s ease;
}

/* 汉堡按钮打开态 → X 形 */
.nav-hamburger--open .hamburger-line:nth-child(1) {
  -webkit-transform: translateY(0.8rem) rotate(45deg);
      -ms-transform: translateY(0.8rem) rotate(45deg);
          transform: translateY(0.8rem) rotate(45deg);
}
.nav-hamburger--open .hamburger-line:nth-child(2) {
  opacity: 0;
}
.nav-hamburger--open .hamburger-line:nth-child(3) {
  -webkit-transform: translateY(-0.8rem) rotate(-45deg);
      -ms-transform: translateY(-0.8rem) rotate(-45deg);
          transform: translateY(-0.8rem) rotate(-45deg);
}

/* ============================================================
   MOBILE MENU 汉堡菜单弹窗（Figma node 2:796）
   面板宽 506px / 内容区左右 51px / 项间距 40px
   ============================================================ */

.mobile-menu {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}

.mobile-menu[hidden] {
  display: none !important;
}

/* 遮罩 */
.mobile-menu__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.25);
}

/* 右侧面板：506px */
.mobile-menu__panel {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 50.6rem;
  height: 100%;
  background: #fff;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-transform: translateX(100%);
      -ms-transform: translateX(100%);
          transform: translateX(100%);
  -webkit-transition: -webkit-transform 0.3s ease;
          transition: transform 0.3s ease;
}

.mobile-menu--visible .mobile-menu__panel {
  -webkit-transform: translateX(0);
      -ms-transform: translateX(0);
          transform: translateX(0);
}

/* ── 头部：Logo / JP / 新規登録 / X ── */
.mobile-menu__head {
  position: relative;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.2rem;
  min-height: 8.2rem;
  padding: 3.4rem 12rem 0 5.1rem;
}

.mobile-menu__logo {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  display: block;
}

.mobile-menu__logo-img {
  display: block;
  height: 4.7rem;
  width: auto;
  max-width: 9.8rem;
  -o-object-fit: contain;
     object-fit: contain;
}

.mobile-menu__head-actions {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.2rem;
  margin-left: auto;
}

.mobile-menu__lang {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.5rem;
  padding: 0;
  font-size: 1.3rem;
  font-weight: 500;
  color: #151721;
  white-space: nowrap;
}

.mobile-menu__lang-arrow {
  width: 0.7rem;
  height: 0.6rem;
  -o-object-fit: contain;
     object-fit: contain;
}

.mobile-menu__register {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: 4rem;
  min-width: 12.8rem;
  padding: 0 2.4rem;
  background: #e84242;
  color: #fff;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.6rem;
  border-radius: 9.9rem;
  white-space: nowrap;
  -webkit-transition: opacity 0.2s;
          transition: opacity 0.2s;
}

.mobile-menu__register:hover {
  opacity: 0.85;
}

.mobile-menu__close {
  position: absolute;
  top: 4rem;
  right: 5.2rem;
  width: 3.6rem;
  height: 3.6rem;
  padding: 0;
  -webkit-transition: opacity 0.15s;
          transition: opacity 0.15s;
}

.mobile-menu__close:hover {
  opacity: 0.75;
}

.mobile-menu__close img {
  display: block;
  width: 3.6rem;
  height: 3.6rem;
}

/* ── 可滚动内容区 ── */
.mobile-menu__body {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 3.4rem 5.1rem 2rem;
  scrollbar-width: thin;
  scrollbar-color: #d9d9d9 transparent;
}

.mobile-menu__body::-webkit-scrollbar {
  width: 1.1rem;
}

.mobile-menu__body::-webkit-scrollbar-track {
  background: transparent;
}

.mobile-menu__body::-webkit-scrollbar-thumb {
  background: #d9d9d9;
  border-radius: 9.9rem;
  border: 0.3rem solid transparent;
  background-clip: padding-box;
}

.mobile-menu__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 4rem;
}

/* 一级链接 / 手风琴触发 */
.mobile-menu__link,
.mobile-menu__trigger {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 1rem;
  width: 100%;
  padding: 0;
  font-size: 1.6rem;
  font-weight: 500;
  color: #000;
  line-height: 1.3rem;
  text-align: left;
  white-space: nowrap;
}

.mobile-menu__link:hover {
  color: #e84242;
}

.mobile-menu__arrow {
  width: 0.7rem;
  height: 0.536rem;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  -o-object-fit: contain;
     object-fit: contain;
  -webkit-transition: -webkit-transform 0.2s ease;
          transition: transform 0.2s ease;
}

.mobile-menu__trigger[aria-expanded="true"] .mobile-menu__arrow,
.mobile-menu__subtrigger[aria-expanded="true"] .mobile-menu__arrow {
  -webkit-transform: rotate(180deg);
      -ms-transform: rotate(180deg);
          transform: rotate(180deg);
}

/* 带边框的子菜单列表 */
.mobile-menu__sublist {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 2rem;
  margin-top: 2.8rem;
  padding-bottom: 2rem;
}

.mobile-menu__sublist[hidden] {
  display: none;
}

.mobile-menu__sublist--bordered {
  border-bottom: 1px solid #bcbdc2;
}

.mobile-menu__sublist--area {
  gap: 0;
}

/* 二级子链接 */
.mobile-menu__sublink {
  display: block;
  font-size: 1.4rem;
  font-weight: 400;
  color: #95999e;
  line-height: 1.3rem;
  -webkit-transition: color 0.12s;
          transition: color 0.12s;
}

.mobile-menu__sublink:hover {
  color: #e84242;
}

/* 嵌套分类（海外ツアー / 国内ツアー） */
.mobile-menu__nested {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.mobile-menu__nested + .mobile-menu__nested {
  margin-top: 2rem;
}

.mobile-menu__subtrigger {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 100%;
  padding: 0;
  font-size: 1.4rem;
  font-weight: 500;
  color: #737373;
  line-height: 1.3rem;
  text-align: left;
}

.mobile-menu__regionlist {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 2rem;
  margin-top: 2rem;
  padding: 0;
}

.mobile-menu__regionlist[hidden] {
  display: none;
}

/* ── 底部 SNS ── */
.mobile-menu__footer {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.368rem;
  padding: 2rem 5.1rem 4rem;
}

.mobile-menu__social {
  display: block;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  -webkit-transition: opacity 0.15s;
          transition: opacity 0.15s;
}

.mobile-menu__social:hover {
  opacity: 0.75;
}

.mobile-menu__social img {
  display: block;
  width: 1.847rem;
  height: 1.847rem;
  -o-object-fit: contain;
     object-fit: contain;
}

.mobile-menu__social--ameba img {
  border-radius: 0.205rem;
}

body.mobile-menu-open {
  overflow: hidden;
}

@media screen and (max-width: 767px) {
  .mobile-menu__panel {
    max-width: 100%;
  }

  .mobile-menu__head {
    padding: 2rem 6rem 0 1.6rem;
    min-height: 7rem;
  }

  .mobile-menu__close {
    top: 2rem;
    right: 1.6rem;
  }

  .mobile-menu__register {
    min-width: 6rem;
    height: 3.6rem;
    font-size: 1.4rem;
    padding: 0 1rem;
  }
    
    
  .mobile-menu__body {
    padding: 2.4rem 1.6rem 1.6rem;
  }

  .mobile-menu__footer {
    padding: 1.6rem 1.6rem 3rem;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }

  .mobile-menu__link,
  .mobile-menu__trigger {
    white-space: normal;
  }
}

/* =====================================================================
   HERO 英雄横幅
   ===================================================================== */
.hero {
  position: relative;
  width: 100%;
  height: 62rem; /* 620px */
  /* overflow: hidden; */
}

.hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.hero-swiper {
  width: 100%;
  height: 100%;
}

.hero-swiper .swiper-wrapper,
.hero-swiper .swiper-slide {
  height: 100%;
}

.hero-swiper .swiper-slide {
  overflow: hidden;
}

.hero-bg-img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}

/* 搜索表单叠层 */
.search-overlay {
  position: absolute;
  left: 8.1rem;   /* 81px */
  top: 5.2rem;    /* 52px from hero top = Figma y:164 - header:112 */
  width: 48rem;   /* 480px */
  z-index: 10;
  background-color: #fff;
  border-radius: 1rem;
}

/* 搜索标签（国内/海外） */
.tab-radio {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}

.search-tabs {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.5rem;
}

.search-tab {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0.46rem;
  width: 23.7rem;
  height: 12.5rem;
  font-size: 1.4rem;
  font-weight: 500;
  border-radius: 1rem 1rem 0 0;
  cursor: pointer;
  position: relative;
  /* 未选中：红底白字 */
  background: var(--color-primary);
  color: var(--color-white);
  -webkit-transition: background 0.2s, color 0.2s, opacity 0.2s;
       -o-transition: background 0.2s, color 0.2s, opacity 0.2s;
          transition: background 0.2s, color 0.2s, opacity 0.2s;
}

.search-tab:hover {
  opacity: 0.88;
}

/* 选中：白底红字，与下方搜索面板视觉衔接 */
.tab-radio:checked + .search-tab {
  background: rgba(255, 255, 255, 0.95);
  color: var(--color-primary);
  font-weight: 700;
  z-index: 1;
  opacity: 1;
}

.tab-radio:checked + .search-tab:hover {
  opacity: 1;
}

.tab-icon-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  position: relative;
  width: 4rem;
  height: 4rem;
}

.tab-icon {
  width: 3rem;
  height: 3rem;
  -o-object-fit: contain;
     object-fit: contain;
  -webkit-transition: opacity 0.2s;
          transition: opacity 0.2s;
}

/* 选中时切换图标（普通 / active 双图） */
.tab-icon-active {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.tab-radio:checked + .search-tab .tab-icon:not(.tab-icon-active) {
  opacity: 0;
}

.tab-radio:checked + .search-tab .tab-icon-active {
  opacity: 1;
}

/* 海外选中时，搜索面板左上角改为圆角 */
.search-overlay:has(#tab-overseas:checked) .search-panel {
  border-radius: 1rem 0 1rem 1rem;
}

/* 搜索面板 */
.search-panel {
  background: rgba(255,255,255,0.95);
  border-radius: 0 1rem 1rem 1rem;
}

.search-panel-inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.6rem;
  padding: 2.4rem;
}

.search-title {
  font-size: 2rem;
  font-weight: 500;
  color: var(--color-text);
  line-height: 1.7;
}

/* 搜索表单字段行 */
.search-form {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0;
}

.search-row {
  position: relative;
  margin-bottom: 2rem;
}

.search-row--2col {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.96rem;
}

.search-row--2col .field-wrap {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}

.search-row--half {
  width: 50%;
}

/* 浮动标签输入框 */
.field-wrap {
  position: relative;
}

.field-label-float {
  position: absolute;
  top: -0.77rem;
  left: 1.033rem;
  z-index: 2;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.5rem;
  padding: 0 0.4rem;
  background: #ffffff;
  font-size: 1.2rem;
  font-weight: 500;
  color: var(--color-label);
  white-space: nowrap;
}

.field-label-float--simple {
  background: #ffffff;
}

.required-badge {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 0.267rem 0.867rem;
  border: 1px solid #d94f5d;
  border-radius: var(--radius-pill);
  font-size: 1rem;
  color: #d94f5d;
  line-height: 1;
}

.field-input-box {
  border: 1px solid var(--color-border);
  border-radius: 0.2rem;
  background: #fff;
  overflow: hidden;
}

.field-input {
  display: block;
  width: 100%;
  height: 4.5rem;
  padding: 0.977rem 1rem 1.117rem 3.8rem;
  font-size: 1rem;
  color: var(--color-dark);
  background: #fff;
  border: none;
}

.field-input::-webkit-input-placeholder {
  color: var(--color-placeholder);
}

.field-input::-moz-placeholder {
  color: var(--color-placeholder);
}

.field-input:-ms-input-placeholder {
  color: var(--color-placeholder);
}

.field-input::placeholder {
  color: var(--color-placeholder);
}

/* 日期行 */
.search-row--date {
  margin-bottom: 2rem;
}

.field-input-box--date {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position: relative;
  border: 1px solid var(--color-border);
  border-radius: 0.2rem;
  background: #fff;
  height: 4.7rem;
  overflow: visible;
}

.date-icon-wrap {
  position: absolute;
  left: 0.6rem;
  top: 50%;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 2.4rem;
  height: 2.4rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  pointer-events: none;
}

.date-icon {
  width: 2.4rem;
  height: 2.4rem;
  -o-object-fit: contain;
     object-fit: contain;
}

.field-input--date-from,
.field-input--date-to {
  height: 4.5rem;
  border: none;
  background: #fff;
  padding: 0.9rem 1rem 0.9rem 3.8rem;
}

.field-input--date-to {
  padding-left: 1rem;
}

.date-separator {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 1.4rem;
  height: 1.4rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.date-separator img {
  width: 1.4rem;
  height: 1.4rem;
  -o-object-fit: contain;
     object-fit: contain;
}

/* 搜索按钮 */
.search-submit-btn {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0.3rem;
  width: 30rem;
  height: 5.4rem;
  margin: 0 auto;
  background: var(--color-primary);
  color: var(--color-white);
  font-size: 1.8rem;
  font-weight: 500;
  letter-spacing: 0.54rem;
  border-radius: var(--radius-pill);
  -webkit-transition: opacity 0.2s;
       -o-transition: opacity 0.2s;
          transition: opacity 0.2s;
}

.search-submit-btn:hover {
  opacity: 0.85;
}

.submit-icon {
  width: 2.1rem;
  height: 2.1rem;
  -o-object-fit: contain;
     object-fit: contain;
}

/* 英雄轮播圆点指示器（Figma node 2:5 Tablist - js_mv_carousel） */
.hero-carousel {
  position: absolute;
  bottom: 3.1rem;
  right: 26.1rem;
  z-index: 10;
  background: rgba(255, 255, 255, 0.8);
  border-radius: 0.4rem;
  padding: 0.608rem 1.7rem;
}

.hero-dots {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.4rem;
  margin: 0;
  line-height: 0;
}

/* 覆盖 Swiper 默认 pagination 定位 */
.hero-dots.swiper-pagination {
  position: static;
  width: auto;
  bottom: auto;
  left: auto;
}

/* 未选中：10×10px #999 */
.hero-dot {
  display: block;
  width: 1rem;
  height: 1rem;
  border-radius: 1rem;
  background: #999;
  cursor: pointer;
  opacity: 1;
  margin: 0 !important;
  -webkit-transition: width 0.2s, height 0.2s, background 0.2s;
       -o-transition: width 0.2s, height 0.2s, background 0.2s;
          transition: width 0.2s, height 0.2s, background 0.2s;
}

/* 选中：16×16px 黑色 */
.hero-dot--active {
  width: 1.6rem;
  height: 1.6rem;
  border-radius: 1.6rem;
  background: #000;
}

/* =====================================================================
   PRODUCTS 商品・服务
   ===================================================================== */
.products-section {
  padding: 9.5rem 0 9.5rem;
  background: #fff;
}

.products-section .section-title {
  margin-bottom: 5.2rem;
}

.products-grid {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0;
}

.products-card {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.6rem;
  padding: 1.6rem;
  background: var(--color-gray-bg);
  border-radius: var(--radius-md);
}

.products-card:first-child {
  margin-right: 1.6rem;
}

.products-card-header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0.8rem;
  padding-top: 0.4rem;
}

.products-card-icon {
  width: 2.5rem;
  height: 2.5rem;
  -o-object-fit: contain;
     object-fit: contain;
}

.products-card-title {
  font-size: 2.4rem;
  font-weight: 500;
  color: var(--color-dark);
}

/* 产品列表（不使用绝对定位） */
.products-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0.75rem;
}

.products-list-item {
  width: calc((100% - 1.5rem)/3);
}

.products-link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.8rem;
  width: 100%;
  height: 6.4rem;
  padding: 0 1rem;
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  font-size: 1.6rem;
  font-weight: 500;
  color: var(--color-dark);
  -webkit-transition: border-color 0.2s, color 0.2s;
       -o-transition: border-color 0.2s, color 0.2s;
          transition: border-color 0.2s, color 0.2s;
}

.products-link:hover {
  border-color: var(--color-secondary);
  color: var(--color-secondary);
}

.products-link-icon {
  width: 2.4rem;
  -o-object-fit: contain;
     object-fit: contain;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}

/* 导览员图标组合（flag + person） */
.products-link-icon-group {
  position: relative;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 2.4rem;
}

.products-link-icon-sm {
  width: 2.4rem;
  -o-object-fit: contain;
     object-fit: contain;
  /* position: absolute;
  bottom: 0; */
}

.products-link-icon-sm--person {
  left: 0;
}

.products-link-icon-sm:not(.products-link-icon-sm--person) {
  right: 0;
}

/* =====================================================================
   AREAS 地区·主题
   ===================================================================== */
.areas-section {
  padding: 9.5rem 0 9.5rem;
  background: var(--color-gray-bg);
}

.areas-content {
  display: block;
}

.areas-content.hidden {
  display: none;
}

/* 区域标签 */
.areas-radio {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}

.areas-tabs {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  border-bottom: none;
  margin-bottom: 0;
}

.areas-tab {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 1.3rem;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  height: 6rem;
  padding-bottom: 1.5rem;
  padding-top: 1.5rem;
  font-size: 2.4rem;
  font-weight: 500;
  /* 未选中 */
  color: var(--color-text);
  background: #fff;
  border-bottom: 0.467rem solid transparent;
  cursor: pointer;
  -webkit-transition: color 0.2s, border-color 0.2s, opacity 0.2s;
       -o-transition: color 0.2s, border-color 0.2s, opacity 0.2s;
          transition: color 0.2s, border-color 0.2s, opacity 0.2s;
}

.areas-tab:hover {
  opacity: 0.85;
}

/* 选中：蓝色文字 + 底部蓝线 */
.areas-radio:checked + .areas-tab {
  color: var(--color-secondary);
  border-bottom-color: var(--color-secondary);
  font-weight: 700;
  opacity: 1;
}

.areas-radio:checked + .areas-tab:hover {
  opacity: 1;
}

.areas-tab-icon-wrap {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}

.areas-tab-icon {
  width: 2.5rem;
  height: 2.5rem;
  -o-object-fit: contain;
     object-fit: contain;
  -webkit-transition: opacity 0.2s;
          transition: opacity 0.2s;
}

.areas-tab-icon-active {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.areas-radio:checked + .areas-tab .areas-tab-icon:not(.areas-tab-icon-active) {
  opacity: 0;
}

.areas-radio:checked + .areas-tab .areas-tab-icon-active {
  opacity: 1;
}

/* 地区按钮列表 */
.area-btns-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  padding: 2.4rem 0 0.5rem;
  gap: 1.6rem 1.568rem;
}

.area-btn {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 19.932rem;
  height: 4.8rem;
  padding: 0.1rem 2.066rem 0.1rem 4.067rem;
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  font-size: 1.8rem;
  font-weight: 500;
  color: var(--color-dark);
  -webkit-transition: border-color 0.2s, color 0.2s;
       -o-transition: border-color 0.2s, color 0.2s;
          transition: border-color 0.2s, color 0.2s;
}

.area-btn:hover {
  border-color: var(--color-secondary);
  color: var(--color-secondary);
}

.area-btn--all {
  color: var(--color-secondary);
  border: none;
  font-weight: 500;
  padding-left: 7rem;
  background: transparent;
}

.area-btn--all:hover {
  background: transparent;
  border: none;
  color: var(--color-secondary);
  opacity: 0.75;
}

.area-btns-list__all {
  margin-left: auto;
}

.area-btn-arrow {
  width: 0.85rem;
  height: 1.6rem;
  margin-left: 6px;
  -o-object-fit: contain;
     object-fit: contain;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}

/* 主题图片网格（禁止绝对定位，使用 flex/grid） */
.theme-grid {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 1.6rem;
  margin-top: 0.5rem;
  margin-bottom: 0;
}

.theme-grid li {
  width: calc((100% - 5 * 1.6rem) / 6);  /* 6列，间隔5个 */
}

.theme-item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  text-decoration: none;
  -webkit-transition: opacity 0.2s;
       -o-transition: opacity 0.2s;
          transition: opacity 0.2s;
}

.theme-item:hover {
  opacity: 1;
}

.theme-img {
  display: block;
  width: 100%;
  height: 15rem;   /* 150px */
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 0.4rem 0.4rem 0 0;
}

.theme-label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-height: 6.4rem;
  padding: 0.4rem 0.8rem;
  background: var(--color-white);
  font-size: 1.4rem;
  font-weight: 500;
  color: var(--color-dark);
  text-align: center;
  line-height: 1.4;
  border-radius: 0 0 0.4rem 0.4rem;
}

/* 区域搜索框 */
.area-search-bar {
  margin-top: 5.2rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.area-search-inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 84.833rem;
  border: 1px solid var(--color-border);
  border-radius: 0.2rem;
  background: #fff;
  overflow: hidden;
  height: 5.2rem;
  border-radius: 2.6rem;
  overflow: hidden;
}

.area-search-field {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}

.area-search-input {
  display: block;
  width: 100%;
  height: 100%;
  padding: 1rem 1.5rem;
  font-size: 1.4rem;
  color: var(--color-dark);
  border: none;
  background: transparent;
}

.area-search-input::-webkit-input-placeholder {
  color: var(--color-placeholder);
}

.area-search-input::-moz-placeholder {
  color: var(--color-placeholder);
}

.area-search-input:-ms-input-placeholder {
  color: var(--color-placeholder);
}

.area-search-input::placeholder {
  color: var(--color-placeholder);
}

.area-search-btn {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0.4rem;
  width: 12rem;
  background: #E84242;
  color: var(--color-white);
  font-size: 1.8rem;
  font-weight: 500;
  -webkit-transition: opacity 0.2s;
       -o-transition: opacity 0.2s;
          transition: opacity 0.2s;
}

.area-search-btn:hover {
  opacity: 0.85;
}

.area-search-icon {
  width: 2.2rem;
  height: 2.2rem;
  -o-object-fit: contain;
     object-fit: contain;
}

/* =====================================================================
   NEWS / BLOG / SPECIALS 通用卡片区块
   ===================================================================== */
.news-section {
  padding: 8rem 0 4rem;
  background: #fff;
}

.blog-section,
.specials-section {
  padding: 4rem 0 8rem;
  background: #fff;
}

/* 卡片轮播 */
.news-carousel {
  margin-top: 2.8rem;
  text-align: center;
}

.js-news-swiper {
  overflow: hidden;
  padding: 16px;
}

.js-news-swiper .swiper-slide {
  height: auto;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

.news-card {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  width: 100%;
  background: var(--color-white);
  border-radius: var(--radius-md);
  -webkit-box-shadow: var(--shadow-card);
          box-shadow: var(--shadow-card);
  overflow: hidden;
  -webkit-transition: -webkit-box-shadow 0.2s;
  transition: -webkit-box-shadow 0.2s;
  -o-transition: box-shadow 0.2s;
  transition: box-shadow 0.2s;
  transition: box-shadow 0.2s, -webkit-box-shadow 0.2s;
}

.news-card:hover {
  -webkit-box-shadow: 0 0.8rem 1.6rem rgba(0,0,0,0.15);
          box-shadow: 0 0.8rem 1.6rem rgba(0,0,0,0.15);
}

.news-card-img-wrap {
  width: 100%;
  height: 20.3rem;
  overflow: hidden;
  border-radius: var(--radius-md) var(--radius-md) 0 0;
}

.news-card-img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: var(--radius-md) var(--radius-md) 0 0;
}

.news-card-body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1rem;
  padding: 1.9rem 2rem;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}

.news-card-meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.8rem;
}

.news-date {
  font-size: 1.6rem;
  font-weight: 400;
  color: var(--color-text);
  line-height: 1.7;
}

.news-tag {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: 2.7rem;
  padding: 0 1rem;
  border: 1px solid var(--color-primary);
  border-radius: var(--radius-pill);
  font-size: 1.2rem;
  color: var(--color-primary);
  white-space: nowrap;
}

.news-card-title {
  font-size: 2rem;
  font-weight: 700;
  color: var(--color-text);
  line-height: 1.36;
}

/* 轮播控件（Figma node 2:414） */
.slider-controls {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 3rem;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  max-width: 100%;
  margin-top: 3rem;
  margin-left: auto;
  margin-right: auto;
}

.slider-prev,
.slider-next {
  width: 2.5rem;
  height: 2.5rem;
  padding: 0;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-transition: opacity 0.15s;
          transition: opacity 0.15s;
}

.slider-prev:hover,
.slider-next:hover {
  opacity: 0.75;
}

.slider-prev img,
.slider-next img {
  display: block;
  width: 2.5rem;
  height: 2.5rem;
  -o-object-fit: contain;
     object-fit: contain;
}

.slider-dots {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  gap: 1.5rem;
  width: auto;
  max-width: -webkit-fit-content;
  max-width: -moz-fit-content;
  max-width: fit-content;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  margin: 0;
  line-height: 0;
}

.slider-dots.swiper-pagination {
  position: static;
  width: auto !important;
  max-width: -webkit-fit-content;
  max-width: -moz-fit-content;
  max-width: fit-content;
  bottom: auto;
  left: auto;
}

/* 未选中：10×10px #999 */
.slider-dot {
  display: block;
  width: 1rem;
  height: 1rem;
  border-radius: 1rem;
  background: #999;
  cursor: pointer;
  opacity: 1;
  margin: 0 !important;
  -webkit-transition: width 0.2s, height 0.2s, background 0.2s;
       -o-transition: width 0.2s, height 0.2s, background 0.2s;
          transition: width 0.2s, height 0.2s, background 0.2s;
}

/* 选中：16×16px 黑色 */
.slider-dot--active {
  width: 1.6rem;
  height: 1.6rem;
  border-radius: 1.6rem;
  background: #000;
}

/* =====================================================================
   FOOTER 页脚
   ===================================================================== */

/* CTA 三分栏 */
.footer-cta-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  height: 23.6rem;  /* Figma: 约 35.3% of 679px = 236px */
}

.footer-cta-item {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  overflow: hidden;
  text-decoration: none;
}

.footer-cta-bg-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  z-index: 0;
}

/* 颜色叠层 */
.footer-cta-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
}

.footer-cta-overlay--1 { background: rgba(255,210,210,0.6); }
.footer-cta-overlay--2 { background: rgba(255,133,133,0.6); }
.footer-cta-overlay--3 { background: rgba(232,66,66,0.6); }

.footer-cta-content {
  position: relative;
  z-index: 2;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  padding: 3.3rem 1.5rem 0;
  text-align: center;
}

.footer-cta-title {
  font-size: 2.4rem;
  font-weight: 500;
  color: var(--color-white);
  text-shadow: 0 0 1rem rgba(0,0,0,0.75);
  margin-bottom: 1rem;
  line-height: 1.275;
}

.footer-cta-desc {
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--color-white);
  text-shadow: 0 0 1rem rgba(0,0,0,0.75);
  line-height: 1.9125;
  margin-bottom: 1.2rem;
  max-width: 28rem;
}

.footer-cta-btn {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 7rem;
  height: 7rem;
  background: var(--color-white);
  border: 1px solid var(--color-white);
  border-radius: 50%;
  -webkit-box-shadow: 0 0 1rem rgba(0,0,0,0.75);
          box-shadow: 0 0 1rem rgba(0,0,0,0.75);
}

.chevron-icon {
  width: 1rem;
  height: 1.6rem;
  -o-object-fit: contain;
     object-fit: contain;
}

/* 页脚主体（红色背景） */
.footer-main {
  background: var(--color-primary);
}

.footer-main-inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  justify-content: space-between;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  max-width: 144rem;
  margin: 0 auto;
  padding: 5.6rem 15.4rem 3.1rem;
  gap: 4rem;
}
.footer-main-inner1{
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
	
}
/* 品牌区 */
.footer-brand {
  -ms-flex-negative: 0;
      flex-shrink: 0;

}

.footer-logo-img {
  width: 14.4rem;
  height: auto;
  margin-bottom: 1.5rem;
}

.footer-address {
  font-size: 1.2rem;
  font-weight: 500;
  color: var(--color-white);
  letter-spacing: 0.036rem;
  line-height: 2;
  margin-bottom: 2rem;
}

.footer-social {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 1.4rem;
}

.social-link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-transition: opacity 0.2s;
       -o-transition: opacity 0.2s;
          transition: opacity 0.2s;
}

.social-link:hover {
  opacity: 0.75;
}

.social-icon {
  width: 1.847rem;
  height: 1.847rem;
  -o-object-fit: contain;
     object-fit: contain;
}

/* 页脚导航 */
.footer-nav {
  /* -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1; */
  min-width: 0;
  margin-left: 60px;
}

.footer-nav-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 3rem;

}

.footer-nav-link {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.5rem;
  font-size: 1.6rem;
  font-weight: 500;
  white-space: nowrap;
  color: var(--color-white);
  line-height: 0.8125;
  -webkit-transition: opacity 0.2s;
       -o-transition: opacity 0.2s;
          transition: opacity 0.2s;
}

.footer-nav-link:hover:not(.footer-nav-link--plain) {
  opacity: 0.75;
}

.footer-nav-arrow {
  width: 0.7rem;
  height: 0.5rem;
  -o-object-fit: contain;
     object-fit: contain;
}

/* 版权行 */
.footer-copyright {
  text-align: center;
  padding: 1.5rem 0 2.8rem;
  border-top: none;
}

.footer-copyright p {
  font-size: 1rem;
  font-weight: 400;
  color: var(--color-white);
  letter-spacing: 0.1rem;
}

/* =====================================================================
   响应式 Media Queries
   移动端优先：< 768px | 平板：768~1199px | PC：≥ 1200px
   ===================================================================== */

/* ─── 平板 ─── */
@media screen and (max-width: 1199px) {
  :root {
    --container-pad: 4rem;
    --inner-pad: 4rem;
    --header-height: 9rem;
  }

  .logo-icon { width: 9rem; height: 9rem; }
  .logo-text { width: 14rem; height: 6.8rem; }

  /* 隐藏部分导航项，展示关键菜单 */
  .nav-item--dropdown:not(:first-child):not(:nth-child(2)) {
    display: none;
  }
  .nav-item:nth-child(3),
  .nav-item:nth-child(4),
  .nav-item:nth-child(5),
  .nav-item:nth-child(6),
  .nav-item:nth-child(7) {
    display: none;
  }

  .hero {
    height: 50rem;
  }

  .search-overlay {
    left: 4rem;
    width: 42rem;
  }

  .products-grid {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 1.6rem;
  }

  .products-card {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: 100%;
    min-width: 0;
  }

  .products-card:first-child {
    margin-right: 0;
    margin-bottom: 0;
  }

  .products-list-item {
    width: calc(50% - 0.375rem);
  }

  .theme-grid li {
    width: calc((100% - 2 * 1.6rem) / 3);
  }

  .footer-main-inner {
    padding: 4rem 4rem 3rem;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 3rem;
  }

  .footer-nav {
    min-width: 16rem;
  }
}

/* ─── 移动端 ─── */
@media screen and (max-width: 767px) {
  :root {
    --container-pad: 1.6rem;
    --inner-pad: 1.6rem;
  }

  /* Header: 只显示Logo和汉堡菜单 */
  .header-container {
    height: 6rem;
    padding: 0 1.6rem;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }

  .header-logo {
    margin-right: 0;
    padding-bottom: 0;
  }

  .logo-icon { width: 6rem; height: 6rem; }
  .logo-text { width: 10rem; height: 4.8rem; margin-top: 1rem; }

  .nav-list {
    gap: 0;
  }

  /* 隐藏所有导航链接，只显示汉堡菜单和注册按钮 */
  .nav-item:not(.nav-item--menu):not(:last-child) {
    display: none;
  }

  /* Hero: 内容区叠在背景之上，高度随表单撑开 */
  .hero {
    height: auto;
    min-height: 0;
    padding-bottom: 2rem;
    overflow: visible;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
	.hero-bg{
		position: relative;
	}
  .search-overlay {
    position: relative;
    z-index: 2;
    left: auto;
    top: auto;
    width: 100%;
    max-width: 100%;
    padding: 1.6rem;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
  }

  .search-tabs {
    gap: 0.4rem;
  }

  .search-tab {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    width: auto;
    min-width: 0;
    height: 8rem;
    font-size: 1.3rem;
  }

  .search-panel-inner {
    padding: 1.6rem;
    gap: 1.2rem;
  }

  .search-row--2col {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }

  .search-row--2col .field-wrap {
    width: 100%;
    -webkit-box-flex: unset;
        -ms-flex: unset;
            flex: unset;
  }

  .search-row--half {
    width: 100%;
  }

  .search-submit-btn {
    width: 100%;
    font-size: 1.6rem;
    letter-spacing: 0.3rem;
  }

  .hero-carousel {
    position: relative;
    z-index: 2;
    margin: 2rem auto 0;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
  }

  /* Products */
  .products-section {
    padding: 5rem 0;
  }

  .products-section .section-title {
    margin-bottom: 3rem;
    font-size: 2.4rem;
  }

  .products-grid {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 1.6rem;
  }

  .products-card {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: 100%;
    min-width: 0;
  }

  .products-card:first-child {
    margin-right: 0;
    margin-bottom: 0;
  }

  .products-list-item {
    width: 100%;
  }

  .products-link {
    height: auto;
    min-height: 5.6rem;
    padding: 1.2rem 1.6rem;
    font-size: 1.4rem;
  }

  .products-card-title {
    font-size: 2rem;
  }

  /* Areas */
  .areas-section {
    padding: 5rem 0;
  }

  .areas-tabs {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }

  .areas-tab {
    font-size: 1.8rem;
    height: 5rem;
  }

  .area-btns-list {
    gap: 10px;
  }

  .area-btn {
    width: 100%;
    font-size: 1.4rem;
    padding-left: 2rem;
    height: 4rem;
  }

  .area-btn--all {
    padding-left: 3rem;
    width: auto;
  }

  .area-btns-list__all {
    margin-left: auto;
  }

  /* 主题网格：移动端 2列 */
  .theme-grid li {
    width: calc(50% - 0.8rem);
  }

  .theme-img {
    height: 10rem;
  }

  .area-search-inner {
    width: 100%;
  }

  /* News/Blog/Specials */
  .news-section,
  .blog-section,
  .specials-section {
    padding: 4rem 0;
  }

  .news-carousel {
    margin-top: 2rem;
  }

  /* Footer */
  .footer-cta-row {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    height: auto;
  }

  .footer-cta-item {
    width: 100%;
    height: 16rem;
  }

  .footer-main-inner {
    padding: 3rem 1.6rem;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 2rem;
  }
  .footer-main-inner1{
	  display: none;
  }
  .footer-cta-desc{
	  display: none;
  }
	.footer-cta-btn {
	    width: 3rem;
	    height: 3rem;
	}
  .footer-brand {
    width: 100%;
  }
  .footer-cta-title{
	  font-size: 14px;
  }

  .footer-nav {
    min-width: 14rem;
    -webkit-box-flex: 0;
        -ms-flex: none;
            flex: none;
  }

  .footer-nav-list {
    gap: 1.5rem;
  }

  .footer-nav-link {
    font-size: 1.4rem;
  }
}

/* ─── 超小屏（< 400px） ─── */
@media screen and (max-width: 399px) {
  .area-btn {
    width: 100%;
  }

  .area-btns-list__all {
    width: auto;
    margin-left: auto;
  }

  .area-btn--all {
    width: auto;
  }

  .theme-grid li {
    width: 100%;
  }
}

/* ─── 浏览器前缀兼容处理 ─── */
/* Webkit（Chrome/Safari）滚动条 */
::-webkit-scrollbar {
  width: 0.6rem;
  height: 0.6rem;
}

::-webkit-scrollbar-track {
  background: var(--color-gray-bg);
}

::-webkit-scrollbar-thumb {
  background: var(--color-border);
  border-radius: 0.3rem;
}

/* Firefox 滚动条 */
* {
  scrollbar-width: thin;
  scrollbar-color: var(--color-border) var(--color-gray-bg);
}

/* 水平翻转辅助类（用于 prev 箭头） */
.icon-flip-h {
  -webkit-transform: scaleX(-1);
      -ms-transform: scaleX(-1);
          transform: scaleX(-1);
}


/* ============================================================
   出発地 自定义下拉选择
   ============================================================ */

/* 触发框：包裹 input + 箭头 */
.dep-input-box {
  position: relative;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

/* input 本身：只读、光标改为 pointer */
.dep-input-box .dep-input {
  cursor: pointer;
  padding-right: 3rem;
}

/* 下拉箭头图标 */
.dep-arrow {
  position: absolute;
  right: 1rem;
  top: 50%;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%);
  font-size: 1.2rem;
  color: var(--color-placeholder);
  pointer-events: none;
  line-height: 1;
  -webkit-transition: -webkit-transform 0.2s ease;
          transition: transform 0.2s ease;
}
.dep-open .dep-arrow {
  -webkit-transform: translateY(-50%) rotate(180deg);
      -ms-transform: translateY(-50%) rotate(180deg);
          transform: translateY(-50%) rotate(180deg);
}

/* 打开时输入框边框高亮 */
.dep-open {
  border-color: var(--color-primary) !important;
}

/* ---- 下拉面板容器 ---- */
.dep-dropdown {
  position: absolute;
  top: calc(100% + 0.4rem);
  left: 0;
  z-index: 999;
  background: #fff;
  border: 0.1rem solid #aaa;
  border-radius: 1rem;
  -webkit-box-shadow: 0 0.4rem 1.6rem rgba(0,0,0,0.12);
          box-shadow: 0 0.4rem 1.6rem rgba(0,0,0,0.12);
  /* 最大宽度自适应父容器右侧 */
  min-width: 60rem;
  max-width: 90vw;
  overflow: hidden;
}

/* ---- 内部可滚动区域 ---- */
.dep-scroll {
  max-height: 72vh;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 1.2rem;
  /* 自定义滚动条 */
  scrollbar-width: thin;
  scrollbar-color: #d9d9d9 transparent;
}
.dep-scroll::-webkit-scrollbar {
  width: 0.7rem;
}
.dep-scroll::-webkit-scrollbar-thumb {
  background: #d9d9d9;
  border-radius: 9.9rem;
}
.dep-scroll::-webkit-scrollbar-track {
  background: transparent;
}

/* ---- 三列布局 ---- */
.dep-columns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.8rem;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}

.dep-col {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0;
          flex: 1 1 0;
  min-width: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.6rem;
}

/* ---- 每个地区分组 ---- */
.dep-group {
  border: 0.074rem solid #aaa;
  overflow: hidden;
}

/* 分组标题 */
.dep-group-head {
  background: #e84242;
  color: #fff;
  font-size: 1.12rem;
  font-weight: 600;
  line-height: 1;
  padding: 0.74rem;
  text-align: center;
  white-space: nowrap;
}

/* ---- 每个机场选项 ---- */
.dep-item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.74rem;
  height: 2.97rem;
  padding: 0 0.74rem;
  background: #fff;
  cursor: pointer;
  font-size: 1.19rem;
  color: #000;
  font-weight: 600;
  white-space: nowrap;
  -webkit-transition: background 0.12s;
          transition: background 0.12s;
}
.dep-item:hover {
  background: #fff5f5;
}

/* 隐藏原生 radio */
.dep-item input[type="radio"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}

/* 自定义单选圆圈 */
.dep-radio {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 1.63rem;
          flex: 0 0 1.63rem;
  width: 1.63rem;
  height: 1.63rem;
  border-radius: 50%;
  border: 0.15rem solid #bbb;
  background: #fff;
  position: relative;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-transition: border-color 0.12s, background 0.12s;
          transition: border-color 0.12s, background 0.12s;
}

/* 选中时圆圈变红并显示实心点 */
.dep-item input[type="radio"]:checked + .dep-radio {
  border-color: #e84242;
  background: #fff;
}
.dep-item input[type="radio"]:checked + .dep-radio::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  width: 0.9rem;
  height: 0.9rem;
  border-radius: 50%;
  background: #e84242;
}

/* ---- 响应式：平板（中等屏幕）显示2列 ---- */
@media screen and (max-width: 1199px) {
  .dep-dropdown {
    min-width: 44rem;
  }
  .dep-columns {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .dep-col {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 calc(50% - 0.4rem);
            flex: 0 0 calc(50% - 0.4rem);
  }
}

/* ---- 响应式：移动端 显示1列 ---- */
@media screen and (max-width: 767px) {
  .dep-dropdown {
    min-width: 0;
    width: calc(100vw - 3.2rem);
    left: 50%;
    -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
            transform: translateX(-50%);
    border-radius: 0.8rem;
  }
  .dep-columns {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .dep-col {
    -webkit-box-flex: unset;
        -ms-flex: unset;
            flex: unset;
    width: 100%;
  }
  .dep-item {
    font-size: 1.4rem;
    height: 3.6rem;
  }
  .dep-group-head {
    font-size: 1.3rem;
    padding: 0.9rem;
  }
}

/* ============================================================
   海外目的地 テキストリスト型ドロップダウン
   ============================================================ */

/* ---- 面板容器 ---- */
.intl-dropdown {
  position: absolute;
  top: calc(100% + 0.4rem);
  left: 0;
  z-index: 999;
  background: #fff;
  border-radius: 1rem;
  -webkit-box-shadow: 0 0.4rem 0.2rem rgba(0, 0, 0, 0.25);
          box-shadow: 0 0.4rem 0.2rem rgba(0, 0, 0, 0.25);
  padding: 1rem;
  min-width: 20rem;
  max-width: 90vw;
}

/* ---- 内部滚动区域 ---- */
.intl-scroll {
  max-height: 72vh;
  overflow-y: auto;
  overflow-x: hidden;
  /* 自定义滚动条（仿 Figma 设计：#d9d9d9 / 7px / 圆角） */
  scrollbar-width: thin;
  scrollbar-color: #d9d9d9 transparent;
  padding-right: 1.2rem;
}
.intl-scroll::-webkit-scrollbar {
  width: 0.7rem;
}
.intl-scroll::-webkit-scrollbar-thumb {
  background: #d9d9d9;
  border-radius: 9.9rem;
}
.intl-scroll::-webkit-scrollbar-track {
  background: transparent;
}

/* ---- 地区标题（粗体 14px） ---- */
.intl-group-head {
  font-size: 1.4rem;
  font-weight: 700;
  color: #000;
  line-height: 3.1rem;
  cursor: default;
  white-space: nowrap;
}

/* ---- 国家/城市条目（常规 12px，可点击） ---- */
.intl-item {
  font-size: 1.2rem;
  font-weight: 400;
  color: #000;
  line-height: 3.1rem;
  cursor: pointer;
  white-space: nowrap;
  padding: 0 0.4rem;
  -webkit-transition: color 0.12s, background 0.12s;
          transition: color 0.12s, background 0.12s;
  border-radius: 0.3rem;
}
.intl-item:hover {
  color: #e84242;
  background: #fff5f5;
}
.intl-item:focus {
  outline: 2px solid #e84242;
  outline-offset: 1px;
}
.intl-item--selected {
  color: #e84242;
  font-weight: 600;
}

/* ---- 响应式 ---- */
@media screen and (max-width: 767px) {
  .intl-dropdown {
    width: calc(100vw - 3.2rem);
    left: 50%;
    -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
            transform: translateX(-50%);
  }
  .intl-group-head {
    font-size: 1.6rem;
  }
  .intl-item {
    font-size: 1.4rem;
  }
}

/* ============================================================
   ヘッダーナビ ドロップダウンパネル
   ============================================================ */

/* 言語選択（HTML select・ページ上に直接表示） */
.nav-item--lang {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.nav-lang-select {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  height: 4rem;
  margin: 0;
  padding: 0 2.4rem 0 1.6rem;
  border: none;
  border-radius: 0;
  background: transparent url('../img/icon-arrow-down.png') no-repeat right 0.4rem center;
  background-size: 0.7rem 0.6rem;
  font-family: inherit;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.4;
  color: var(--color-dark);
  cursor: pointer;
  -webkit-transition: color 0.2s;
       -o-transition: color 0.2s;
          transition: color 0.2s;
}

.nav-lang-select:hover,
.nav-lang-select:focus {
  color: var(--color-primary);
  outline: none;
}

.mobile-menu__head-actions .mobile-menu__lang-select {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  min-width: 10.8rem;
  height: 3.6rem;
  margin: 0;
  padding: 0 2.8rem 0 1.2rem;
  border: 1px solid #bcbdc2;
  border-radius: 9.9rem;
  background: #fff url('../img/icon-menu-lang-arrow.png') no-repeat right 1rem center;
  background-size: 0.8rem auto;
  font-family: inherit;
  font-size: 1.3rem;
  font-weight: 500;
  color: #151721;
  cursor: pointer;
}

.mobile-menu__head-actions .mobile-menu__lang-select:focus {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

.mobile-menu__item--lang {
  padding: 1.6rem 2rem;
}

.mobile-menu__lang-field-label {
  display: block;
  margin-bottom: 0.8rem;
  font-size: 1.4rem;
  font-weight: 500;
  color: #151721;
}

.mobile-menu__lang-select--in-nav {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  display: block;
  width: 100%;
  max-width: 24rem;
  height: 4.4rem;
  margin: 0;
  padding: 0 3.2rem 0 1.6rem;
  border: 1px solid #bcbdc2;
  border-radius: 0.8rem;
  background: #fff url('../img/icon-arrow-down.png') no-repeat right 1.2rem center;
  background-size: 0.7rem 0.6rem;
  font-family: inherit;
  font-size: 1.4rem;
  font-weight: 500;
  color: #151721;
  cursor: pointer;
}

.mobile-menu__lang-select--in-nav:focus {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

/* 面板本体：默认隐藏，悬浮导航项时显示 */
.nav-dropdown {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 2000;
  background: #fff;
  border-radius: 1rem;
  -webkit-box-shadow: 0 0.4rem 0.2rem rgba(0, 0, 0, 0.25);
          box-shadow: 0 0.4rem 0.2rem rgba(0, 0, 0, 0.25);
  padding: 2rem;
  min-width: 20rem;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 3rem;
}

.nav-item--dropdown:not(.nav-item--lang):hover .nav-dropdown {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

/* 条目 */
.nav-dd-item {
  display: block;
  font-size: 1.4rem;
  font-weight: 400;
  color: #656972;
  line-height: 1.3rem;
  white-space: nowrap;
  -webkit-transition: color 0.12s;
       -o-transition: color 0.12s;
          transition: color 0.12s;
  font-family: 'Noto Sans JP', 'Segoe UI', sans-serif;
}
.nav-dd-item:hover {
  color: #e84242;
}

/* 第一项（标题）：红色粗体 */
.nav-dd-item--heading {
  font-weight: 700;
  color: #e84242;
}
.nav-dd-item--heading:hover {
  color: #c73232;
}

/* 按钮箭头旋转（hover 状态） */
.nav-item--dropdown:hover .nav-arrow--overseas {
  -webkit-transform: rotate(180deg);
      -ms-transform: rotate(180deg);
          transform: rotate(180deg);
}
.nav-arrow {
  -webkit-transition: -webkit-transform 0.2s ease;
          transition: transform 0.2s ease;
}

/* 移动端隐藏下拉（已被 PC 导航整体隐藏时无效） */
@media screen and (max-width: 1199px) {
  .nav-dropdown {
    position: static;
    -webkit-box-shadow: none;
            box-shadow: none;
    border-radius: 0;
    padding: 0 0 0 1.6rem;
    gap: 1.6rem;
    background: transparent;
  }
  .nav-dd-item {
    font-size: 1.3rem;
    line-height: 1.8;
  }
}

/* ============================================================
   人数選択ポップアップ
   ============================================================ */

/* 触发框 */
.pax-wrap {
  position: relative;
}

/* 面板 */
.pax-panel {
  position: absolute;
  top: calc(100% + 0.4rem);
  left: 0;
  z-index: 999;
  background: #fff;
  border-radius: 1rem;
  -webkit-box-shadow: 0 0.4rem 2rem rgba(0, 0, 0, 0.15);
          box-shadow: 0 0.4rem 2rem rgba(0, 0, 0, 0.15);
  padding: 0.8rem 2rem 1.6rem;
  min-width: 32rem;
}

/* 每一行（类型 + 步进器） */
.pax-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding: 1.3rem 0;
  border-bottom: 1px solid #f0f0f0;
}
.pax-row:last-of-type {
  border-bottom: none;
}

/* 标签区 */
.pax-label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  gap: 1.2rem;
}
.pax-name {
  font-size: 1.6rem;
  font-weight: 500;
  color: #000;
  font-family: 'Noto Sans JP', 'Segoe UI', sans-serif;
}
.pax-sub {
  font-size: 1.4rem;
  font-weight: 400;
  color: #000;
  font-family: 'Noto Sans JP', 'Segoe UI', sans-serif;
}

/* 步进器 */
.pax-stepper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.5rem;
}

/* +/- 圆形按钮 */
.pax-btn {
  width: 2.2rem;
  height: 2.2rem;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  -webkit-transition: opacity 0.12s;
          transition: opacity 0.12s;
}
.pax-btn svg {
  width: 2.2rem;
  height: 2.2rem;
  display: block;
}

/* 减号按钮：可用时红色，禁用时灰色 */
.pax-btn--minus {
  color: #e84242;
}
.pax-btn--minus[disabled],
.pax-btn--minus.pax-btn--disabled {
  color: #ccc;
  cursor: default;
  pointer-events: none;
}

.pax-btn:hover:not([disabled]):not(.pax-btn--disabled) {
  opacity: 0.8;
}

/* 数量 */
.pax-count {
  font-size: 1.4rem;
  font-weight: 500;
  color: #000;
  min-width: 1.4rem;
  text-align: center;
  font-family: 'Noto Sans JP', 'Segoe UI', sans-serif;
}

/* 決定ボタン */
.pax-confirm-btn {
  display: block;
  width: 100%;
  background: #e84242;
  color: #fff;
  border: none;
  border-radius: 9.9rem;
  height: 5.4rem;
  font-size: 1.8rem;
  font-weight: 500;
  letter-spacing: 0.2rem;
  cursor: pointer;
  margin-top: 1.4rem;
  font-family: 'Noto Sans JP', 'Segoe UI', sans-serif;
  -webkit-transition: opacity 0.15s;
          transition: opacity 0.15s;
}
.pax-confirm-btn:hover {
  opacity: 0.88;
}

/* 响应式 */
@media screen and (max-width: 767px) {
  .pax-panel {
    min-width: 0;
    width: calc(100vw - 3.2rem);
    left: 50%;
    -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
            transform: translateX(-50%);
  }
}

/* ============================================================
   カレンダー日付レンジピッカー
   ============================================================ */

/* ---- 包装容器（定位基准） ---- */
.date-picker-wrap {
  position: relative;
}

/* ---- 日历面板 ---- */
.cal-panel {
  position: absolute;
  top: calc(100% + 0.4rem);
  left: 0;
  z-index: 1000;
  background: #fff;
  border-radius: 1rem;
  -webkit-box-shadow: 0 0.4rem 2rem rgba(0, 0, 0, 0.15);
          box-shadow: 0 0.4rem 2rem rgba(0, 0, 0, 0.15);
  padding: 1.8rem 1.6rem 0;
  min-width: 64rem;
  max-width: 96vw;
}

/* ---- 顶部：クリアボタン ---- */
.cal-top {
  margin-bottom: 0.4rem;
}
.cal-clear-btn {
  background: none;
  border: none;
  color: #e84242;
  font-size: 1.4rem;
  font-weight: 500;
  cursor: pointer;
  padding: 0;
  line-height: 2.66rem;
  font-family: inherit;
}
.cal-clear-btn:hover {
  text-decoration: underline;
}

/* ---- 日历主体 ---- */
.cal-body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 0.4rem;
}

/* 月份容器（两个月并排） */
.cal-months {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1.6rem;
  overflow: hidden;
}

.cal-month {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
}

/* ---- 导航箭头 ---- */
.cal-nav {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.4rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  color: #333;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  margin-top: 2.4rem; /* align with month title */
  border-radius: 50%;
  width: 3.2rem;
  height: 3.2rem;
  -webkit-transition: background 0.12s;
          transition: background 0.12s;
}
.cal-nav:hover {
  background: #f5f5f5;
}

/* ---- 月份标题 ---- */
.cal-month-title {
  text-align: center;
  font-size: 1.77rem;
  font-weight: 700;
  line-height: 2.66rem;
  margin-bottom: 0.6rem;
  font-family: 'Noto Sans JP', 'Segoe UI', sans-serif;
}

/* ---- 曜日（周标题） ---- */
.cal-week-head {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: (1fr)[7];
  grid-template-columns: repeat(7, 1fr);
}
.cal-wh {
  text-align: center;
  font-size: 1.4rem;
  color: #8a8a8a;
  height: 4.7rem;
  line-height: 4.7rem;
  font-family: 'Noto Sans JP', 'Segoe UI', sans-serif;
}

/* ---- 日期格子 ---- */
.cal-days {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: (1fr)[7];
  grid-template-columns: repeat(7, 1fr);
}

.cal-day {
  height: 4.7rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  position: relative;
  cursor: pointer;
}

.cal-day--empty,
.cal-day--past {
  cursor: default;
}

/* 范围背景条（先于数字圆圈渲染） */
.cal-day--in-range {
  background: rgba(251, 0, 0, 0.15);
}
/* 范围起点：背景从中间向右延伸 */
.cal-day--range-start {
  background: rgba(251, 0, 0, 0.15);
  border-radius: 40px 0 0 40px;
}
/* 范围终点：背景从左延伸到中间 */
.cal-day--range-end {
  background: rgba(251, 0, 0, 0.15);
  border-radius: 0 40px 40px 0;
}

/* ---- 日期数字（内部圆圈） ---- */
.cal-day-num {
  width: 3.6rem;
  height: 3.6rem;
  border-radius: 50%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  font-size: 1.77rem;
  font-family: 'Noto Sans JP', 'Segoe UI', sans-serif;
  position: relative;
  z-index: 1;
  -webkit-transition: background 0.1s;
          transition: background 0.1s;
}

/* 过去日期 */
.cal-day--past .cal-day-num {
  color: #b1b1b1;
}

/* hover */
.cal-day:not(.cal-day--past):not(.cal-day--empty):hover .cal-day-num {
  background: rgba(251, 0, 0, 0.1);
}

/* 选中起点/终点：圆圈高亮 */
.cal-day-num--sel {
  /*background: rgba(251, 0, 0, 0.15);*/
  font-weight: 600;
}

/* 仅单日选中（还未选终点） */
.cal-day-num--sel-only {
  background: rgba(251, 0, 0, 0.15);
  font-weight: 600;
}

/* ---- 分隔线 ---- */
.cal-divider {
  height: 1px;
  background: #f0f0f0;
  margin: 1.2rem 0 0;
}

/* ---- 底部 footer ---- */
.cal-footer {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding: 1.4rem 0.4rem 1.6rem;
  gap: 1.6rem;
}

/* 日期摘要（出発日 → 帰着日） */
.cal-summary {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.5rem;
}
.cal-summary-col {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.2rem;
}
.cal-summary-label {
  font-size: 1.2rem;
  color: #999;
  font-weight: 500;
  font-family: 'Noto Sans JP', 'Segoe UI', sans-serif;
  line-height: 1;
}
.cal-summary-val {
  font-size: 1.2rem;
  color: #000;
  font-weight: 500;
  font-family: 'Noto Sans JP', 'Segoe UI', sans-serif;
  line-height: 2.66rem;
  white-space: nowrap;
}
.cal-summary-arrow {
  -ms-flex-negative: 0;
      flex-shrink: 0;
}

/* 確定ボタン */
.cal-confirm-btn {
  background: #e84242;
  color: #fff;
  border: none;
  border-radius: 9.9rem;
  height: 5.4rem;
  padding: 0 3.2rem;
  min-width: 24rem;
  font-size: 1.8rem;
  font-weight: 500;
  letter-spacing: 0.2rem;
  cursor: pointer;
  font-family: 'Noto Sans JP', 'Segoe UI', sans-serif;
  -webkit-transition: opacity 0.15s;
          transition: opacity 0.15s;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.cal-confirm-btn:hover {
  opacity: 0.88;
}

/* ---- 响应式：平板以下单月显示 ---- */
@media screen and (max-width: 1199px) {
  .cal-panel {
    min-width: 36rem;
  }
}

@media screen and (max-width: 767px) {
  .cal-panel {
    min-width: 0;
    width: calc(100vw - 3.2rem);
    left: 50%;
    -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
            transform: translateX(-50%);
    padding: 1.4rem 1rem 0;
  }
  .cal-months {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 0.8rem;
  }
  .cal-nav--prev { margin-top: 2rem; }
  .cal-wh { font-size: 1.1rem; height: 3.6rem; line-height: 3.6rem; }
  .cal-day { height: 3.6rem; }
  .cal-day-num { width: 2.8rem; height: 2.8rem; font-size: 1.3rem; }
  .cal-month-title { font-size: 1.4rem; }
  .cal-footer {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 1rem;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
  }
  .cal-confirm-btn {
    min-width: 0;
    width: 100%;
  }
}

/* =====================================================================
   海外観光プラン 列表页（Figma 2:898）
   国内旅行 列表页（Figma 2:1347）
   ===================================================================== */

.page-overseas .hero--plans,
.page-domestic .hero--plans {
  height: 62rem;
}

.page-overseas .hero-bg-overlay,
.page-domestic .hero-bg-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.2);
  pointer-events: none;
}

.page-overseas .hero--plans .hero-bg-img {
  -o-object-position: center 20%;
     object-position: center 20%;
}

.page-domestic .hero--plans .hero-bg-img {
  -o-object-position: center center;
     object-position: center center;
}

.page-domestic .hero-page-title {
  position: absolute;
  left: 8rem;
  top: 17.3rem;
  z-index: 2;
  margin: 0;
  max-width: calc(100% - 16rem);
  font-size: 4.8rem;
  font-weight: 700;
  line-height: 5.6rem;
  color: #fff;
  pointer-events: none;
}

/* 列表页专用搜索（单 Tab：海外 / 国内） */
.search-overlay--overseas-only,
.search-overlay--domestic-only {
  left: 8.1rem;
  top: 5.2rem;
  width: 48rem;
}

.overseas-search-head,
.domestic-search-head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  height: 12.5rem;
  border-radius: 1rem 1rem 0 0;
  background: rgba(255, 255, 255, 0.95);
}

.overseas-search-tab,
.domestic-search-tab {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0.47rem;
  width: 100%;
  color: var(--color-primary);
  font-size: 1.4rem;
  font-weight: 500;
}

.overseas-search-tab .tab-icon:not(.tab-icon-active),
.domestic-search-tab .tab-icon:not(.tab-icon-active) {
  display: none;
}

.overseas-search-tab .tab-icon-active,
.domestic-search-tab .tab-icon-active {
  opacity: 1;
  position: static;
}

.overseas-search-panel,
.domestic-search-panel {
  display: block;
}

.overseas-search-panel .search-panel-inner,
.domestic-search-panel .search-panel-inner {
  border-radius: 0 0 1rem 1rem;
  min-height: 38.4rem;
}

.overseas-search-panel .search-form,
.domestic-search-panel .search-form {
  gap: 0;
}

.overseas-search-panel .search-submit-btn,
.domestic-search-panel .search-submit-btn {
  width: 30rem;
  margin: 0 auto;
}

/* 主内容区 */
.plans-section {
  background: #f4f7f7;
  padding: 9.6rem 8rem;
}

.plans-container {
  max-width: 128rem;
  margin: 0 auto;
}

.plans-title {
  margin: 0 0 2.4rem;
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 3.3rem;
  color: #323743;
  text-align: center;
}

.plans-filters {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 24.1rem));
  gap: 2rem 1.9rem;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-bottom: 3.2rem;
}

.plans-filter {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-height: 4.8rem;
  padding: 0 1.6rem;
  border: 1px solid #bcbdc2;
  border-radius: 99px;
  background: #fff;
  color: #323743;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 2.7rem;
  text-align: center;
  text-decoration: none;
  -webkit-transition: border-color 0.2s, color 0.2s;
       -o-transition: border-color 0.2s, color 0.2s;
          transition: border-color 0.2s, color 0.2s;
}

.plans-filter:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.plans-filter--active {
  border: 2px solid var(--color-primary);
  color: var(--color-primary);
  padding: 0 1.5rem;
}

.plans-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 3rem;
  margin-bottom: 3.2rem;
}

.plans-row {
  display: contents;
}

.plan-card {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  border-radius: 1rem;
  overflow: hidden;
  background: #fff;
  text-decoration: none;
  color: inherit;
}

.plan-card__media {
  position: relative;
  height: 27.6rem;
  background: #c4c4c4;
  overflow: hidden;
  border-radius: 1rem 1rem 0 0;
}

.plan-card__media img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.plan-card__tags {
  position: absolute;
  top: 1.1rem;
  left: 0;
  right: 0;
  text-align: right;
  gap: 0.6rem;
  padding: 0 1.2rem;
  pointer-events: none;
}

.plan-card__tag {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: 2.8rem;
  padding: 0 1.2rem;
  border: 1px solid var(--color-primary);
  border-radius: 99px;
  background: #fff;
  color: var(--color-primary);
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 2.7rem;
  white-space: nowrap;
}

.plan-card__route {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-height: 2.3rem;
  padding: 1rem;
  background: var(--color-primary);
  color: #fff;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 2.3rem;
}

.plan-card__body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1rem;
  min-height: 24rem;
  padding: 1.5rem 2rem 2.5rem;
  background: #fff;
  border-radius: 0 0 1rem 1rem;
}

.plan-card__title {
  margin: 0;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 3.43rem;
  color: #000;
}

.plan-card__desc {
  margin: 0;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 2.3rem;
  color: #000;
}

.plan-card__footer {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 1rem;
  margin-top: auto;
  padding-top: 0.4rem;
}

.plan-card__price {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  gap: 0.2rem;
}

.plan-card__amount {
  color: #b80000;
  font-size: 1.7rem;
  font-weight: 700;
  line-height: 2.3rem;
}

.plan-card__unit {
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.16rem;
  color: #000;
}

.plan-card__btn {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-width: 12.4rem;
  padding: 0.4rem 1.5rem;
  border-radius: 99px;
  background: var(--color-primary);
  color: #fff;
  font-size: 1.7rem;
  font-weight: 700;
  line-height: 2.3rem;
  text-decoration: none;
  white-space: nowrap;
}

.plan-card__btn:hover {
  opacity: 0.9;
}

/* 分页 */
.plans-pagination {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 1.5rem;
}

.plans-pagination__arrow {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 3rem;
  height: 3rem;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
}

.plans-pagination__arrow img {
  width: 1.5rem;
  height: 1.5rem;
  -o-object-fit: contain;
     object-fit: contain;
}

.plans-pagination__arrow--next img {
  -webkit-transform: rotate(180deg);
      -ms-transform: rotate(180deg);
          transform: rotate(180deg);
}

.plans-pagination__num {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-width: 4.8rem;
  height: 4.8rem;
  padding: 1rem;
  border: none;
  border-radius: 99px;
  background: transparent;
  color: #000;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 2.8rem;
  cursor: pointer;
}

.plans-pagination__num--active {
  background: var(--color-primary);
  color: #fff;
}

@media (max-width: 1199px) {
  .plans-section {
    padding: 6rem 4rem;
  }

  .plans-filters {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .plans-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2.4rem;
  }
}

@media (max-width: 767px) {
  .search-overlay--overseas-only,
  .search-overlay--domestic-only {
    position: relative;
    left: auto;
    top: auto;
    width: 100%;
    max-width: 48rem;
    margin: 0 auto;
    padding: 0 1.6rem;
    z-index: 2;
  }

  .page-overseas .hero--plans,
  .page-domestic .hero--plans {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    height: auto;
    min-height: 0;
    padding-bottom: 2rem;
  }

  .page-overseas .hero--plans .hero-bg,
  .page-domestic .hero--plans .hero-bg {
    position: relative;
    height: 28rem;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
  }

  .plans-section {
    padding: 4rem 1.6rem;
  }

  .plans-title {
    font-size: 2.4rem;
    line-height: 3rem;
  }

  .plans-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.2rem;
  }

  .plans-filter {
    min-height: 4.4rem;
    font-size: 1.4rem;
    line-height: 2.2rem;
  }

  .plans-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .overseas-search-panel .search-row--2col,
  .domestic-search-panel .search-row--2col {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }

  .page-domestic .hero-page-title {
    position: relative;
    left: auto;
    top: auto;
    max-width: none;
    padding: 2rem 1.6rem 0;
    font-size: 2.4rem;
    line-height: 3.2rem;
    text-align: center;
  }
}

/* =====================================================================
   高級旅館・高級ホテル 列表页（Figma 2:1858）
   ===================================================================== */

.page-luxury .hero--luxury {
  height: 62rem;
}

.page-luxury .hero--luxury .hero-bg-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.2);
  pointer-events: none;
}

.hero-luxury-title {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 2;
  margin: 0;
  -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  font-size: 4.8rem;
  font-weight: 700;
  line-height: 3.3rem;
  color: #fff;
  text-align: center;
  text-shadow: 0 0.4rem 1rem rgba(0, 0, 0, 0.5);
  white-space: nowrap;
  pointer-events: none;
}

.luxury-region-tabs {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  max-width: 144rem;
  margin: 0 auto;
}

.luxury-region-tab {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 50%;
          flex: 1 1 50%;
  min-height: 8.1rem;
  border: none;
  padding: 1rem;
  font-family: inherit;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 3.3rem;
  letter-spacing: 0.12rem;
  text-align: center;
  cursor: pointer;
  background: #f4f7f7;
  color: var(--color-primary);
}

.luxury-region-tab--overseas.luxury-region-tab--inactive,
.luxury-region-tab--inactive:not(.luxury-region-tab--overseas) {
  background: var(--color-primary);
  color: #fff;
}

.luxury-region-tab--active {
  background: #f4f7f7;
  color: var(--color-primary);
}

.luxury-region-tab--overseas.luxury-region-tab--active {
  background: #f4f7f7;
  color: var(--color-primary);
}

.plans-filters--regions {
  min-height: 15.3rem;
  grid-template-columns: repeat(6, minmax(0, 19.93rem));
  gap: 1.6rem 1.6rem;
}

@media (max-width: 1199px) {
  .plans-filters--regions {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    min-height: 0;
  }
}

@media (max-width: 767px) {
  .page-luxury .hero--luxury {
    height: 28rem;
  }
    .mobile-menu__head-actions .mobile-menu__lang-select{
        min-width: 6rem;
    padding: 0 1rem;
    }
  .hero-luxury-title {
    font-size: 2.4rem;
    line-height: 3.2rem;
    white-space: normal;
    width: calc(100% - 3.2rem);
  }

  .luxury-region-tab {
    font-size: 1.8rem;
    line-height: 2.6rem;
    min-height: 5.6rem;
  }

  .plans-filters--regions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* =====================================================================
   ハイヤーサービス 列表页（Figma 2:2313）
   ===================================================================== */

.page-hire .hero--hire {
  height: 62rem;
}

.page-hire .hero--hire .hero-bg-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.2);
  pointer-events: none;
}

.hero-hire-title {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 2;
  margin: 0;
  -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  font-size: 4.8rem;
  font-weight: 700;
  line-height: 3.3rem;
  color: #fff;
  text-align: center;
  text-shadow: 0 0.4rem 1rem rgba(0, 0, 0, 0.5);
  white-space: nowrap;
  pointer-events: none;
}

.plans-filters--hire {
  grid-template-columns: repeat(3, minmax(0, 19.93rem));
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-height: 6.9rem;
  margin-bottom: 3.2rem;
}

.page-hire .plan-card--hire .plan-card__route {
  display: none;
}

.page-hire .plan-card--hire .plan-card__media {
  height: 27.6rem;
}

@media (max-width: 767px) {
  .page-hire .hero--hire {
    height: 28rem;
  }

  .hero-hire-title {
    font-size: 2.4rem;
    line-height: 3.2rem;
    white-space: normal;
    width: calc(100% - 3.2rem);
  }

  .plans-filters--hire {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .page-hire .plan-card--hire .plan-card__media {
    height: 22rem;
  }
}

/* =====================================================================
   エリア・テーマから探す 列表页（Figma 2:2703）
   ===================================================================== */

.page-areas .hero--areas {
  height: 62rem;
}

.page-areas .hero--areas .hero-bg-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.2);
  pointer-events: none;
}

.hero-areas-title {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 2;
  margin: 0;
  -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  font-size: 4.8rem;
  font-weight: 700;
  line-height: 3.3rem;
  color: #fff;
  text-align: center;
  text-shadow: 0 0.4rem 1rem rgba(0, 0, 0, 0.5);
  white-space: nowrap;
  pointer-events: none;
}

.page-areas .plans-section:not(.plans-section--theme) {
  background: #fff;
}

.page-areas .plans-section--theme {
  background: #f4f7f7;
}

.plans-filters--themes {
  min-height: 17.9rem;
  grid-template-columns: repeat(5, minmax(0, 23.8rem));
  gap: 1.6rem 1.6rem;
}

.plans-filters--themes .plans-filter {
  font-size: 1.6rem;
  line-height: 2.7rem;
  padding: 0 1.2rem;
}

.nav-link--active {
  color: var(--color-primary);
  font-weight: 700;
}

@media (max-width: 1199px) {
  .plans-filters--themes {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    min-height: 0;
  }
}

@media (max-width: 767px) {
  .page-areas .hero--areas {
    height: 28rem;
  }

  .hero-areas-title {
    font-size: 2.4rem;
    line-height: 3.2rem;
    white-space: normal;
    width: calc(100% - 3.2rem);
  }

  .page-areas .plans-section:not(.plans-section--theme),
  .page-areas .plans-section--theme {
    padding: 4.8rem 1.6rem;
  }

  .plans-filters--themes {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .plans-filters--themes .plans-filter {
    font-size: 1.4rem;
    line-height: 2.2rem;
  }
}

/* =====================================================================
   利用可能なツアー一覧（Figma 2:3937）
   ===================================================================== */

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.page-available-tours .available-tours-main {
  padding-top: 4.6rem;
}

.available-tours-page-title {
  max-width: 68.7rem;
  margin: 0 auto 4.6rem;
  padding: 0 8rem;
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 3.3rem;
  color: #323743;
  text-align: center;
}

.available-tours-intro {
  max-width: 68.7rem;
  margin: 0 auto;
  padding: 0 8rem 0;
}

.available-tours-empty {
  margin-top: 0;
}

.available-tours-intro--empty {
  margin-bottom: 0;
}

.tour-search-summary {
  margin-bottom: 1.8rem;
  padding: 4rem 6rem;
  background: #f8f8f8;
}

.tour-search-summary__heading {
  margin: 0 0 1.9rem;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 3.3rem;
  color: #000;
}

.tour-search-summary__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  -webkit-column-gap: 6.7rem;
     -moz-column-gap: 6.7rem;
          column-gap: 6.7rem;
  row-gap: 0;
  margin: 0;
}

.tour-search-summary__item {
  margin: 0;
}

.tour-search-summary__item dd {
  margin: 0;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 3.3rem;
  color: #626262;
}

.tour-search-summary__item--full {
  grid-column: 1 / -1;
}

.tour-search-count {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  min-height: 10.8rem;
  margin: 0 0 8.4rem;
  padding: 0 6rem;
  background: #f8f8f8;
  font-size: 2rem;
  font-weight: 400;
  line-height: 3.3rem;
  color: #000;
}

.tour-search-count__num {
  margin: 0 0.4rem;
  font-size: 4rem;
  font-weight: 500;
  line-height: 3.3rem;
}

.tour-search-count--empty {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 4rem;
  min-height: 17.4rem;
  margin-bottom: 2rem;
  padding-top: 2.4rem;
  padding-bottom: 2.4rem;
}

.tour-search-count--empty .tour-search-count__row {
  margin: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.tour-search-count__message {
  margin: 0;
  max-width: 59rem;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 3.3rem;
  color: #000;
}

.available-tours-empty-nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 1.9rem;
  max-width: 68.7rem;
  margin: 0 auto;
  padding: 0 8rem 8rem;
}

.available-tours-empty-nav__btn {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-flex: 1;
      -ms-flex: 1 1 33.4rem;
          flex: 1 1 33.4rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 1rem;
  max-width: 33.4rem;
  min-height: 6.7rem;
  padding: 1rem 2rem;
  border-radius: 99px;
  background: var(--color-primary);
  color: #fff;
  font-size: 2rem;
  font-weight: 700;
  line-height: 3.3rem;
  text-decoration: none;
  -webkit-transition: opacity 0.2s;
       -o-transition: opacity 0.2s;
          transition: opacity 0.2s;
}

.available-tours-empty-nav__btn:hover {
  opacity: 0.92;
}

.available-tours-empty-nav__btn img {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 2.1rem;
  height: 2.1rem;
}

.page-available-tours .available-tours-list {
  padding-top: 9.6rem;
  padding-bottom: 8rem;
}

.page-available-tours .available-tours-list__title {
  margin-bottom: 4.8rem;
}

.page-available-tours .plans-grid--selectable {
  margin-bottom: 4.8rem;
}

.page-available-tours .plan-card--selectable {
  position: relative;
  cursor: pointer;
  border: 0.4rem solid transparent;
  border-radius: 1rem;
  -webkit-transition: border-color 0.2s;
       -o-transition: border-color 0.2s;
          transition: border-color 0.2s;
}

.page-available-tours .plan-card--selectable.plan-card--selected {
  border-color: var(--color-primary);
}

.page-available-tours .plan-card--selectable .plan-card__media,
.page-available-tours .plan-card--selectable .plan-card__body {
  border-radius: 0;
}

.page-available-tours .plan-card--selectable .plan-card__media {
  border-radius: 0.6rem 0.6rem 0 0;
}

.page-available-tours .plan-card--selectable .plan-card__body {
  border-radius: 0 0 0.6rem 0.6rem;
}

.page-available-tours .plan-card__select {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.9rem;
  margin-top: 1rem;
  cursor: pointer;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 2.3rem;
  color: #000;
}

.page-available-tours .plan-card__select-input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.page-available-tours .plan-card__select-box {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 1.4rem;
  height: 1.4rem;
  border: 1px solid #bcbdc2;
  border-radius: 0.2rem;
  background: #fff;
}

.page-available-tours .plan-card__select-input:checked + .plan-card__select-box {
  border-color: var(--color-primary);
  background: var(--color-primary) url('../img/icon-contact-checkbox-check.png') center / 1.3rem 1.3rem no-repeat;
}

.available-tours-actions {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 3rem;
  max-width: 40.4rem;
  margin: 0 auto;
}

.available-tours-btn {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
  min-height: 8.1rem;
  padding: 1rem 2.4rem;
  border: none;
  border-radius: 99px;
  font-family: inherit;
  font-size: 2rem;
  font-weight: 700;
  line-height: 3.3rem;
  color: #fff;
  text-align: center;
  cursor: pointer;
}

.available-tours-btn--view {
  background: #000;
}

.available-tours-btn--book {
  background: var(--color-primary);
}

.available-tours-btn:hover {
  opacity: 0.92;
}

@media (max-width: 1199px) {
  .available-tours-intro {
    padding: 0 2.4rem;
  }

  .tour-search-summary,
  .tour-search-count {
    padding-left: 2.4rem;
    padding-right: 2.4rem;
  }
}

@media (max-width: 767px) {
  .page-available-tours .available-tours-main {
    padding-top: 2.4rem;
  }

  .available-tours-page-title {
    font-size: 2.4rem;
    margin-bottom: 2.4rem;
    padding: 0 1.6rem;
  }

  .available-tours-intro {
    padding: 0 1.6rem;
  }

  .available-tours-empty-nav {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    padding: 0 1.6rem 4rem;
  }

  .available-tours-empty-nav__btn {
    max-width: none;
  }

  .tour-search-count--empty {
    gap: 2.4rem;
    min-height: 0;
  }

  .tour-search-count__message {
    font-size: 1.4rem;
    line-height: 2.4rem;
  }

  .tour-search-summary {
    padding: 2.4rem 1.6rem;
  }

  .tour-search-summary__grid {
    grid-template-columns: 1fr;
    -webkit-column-gap: 0;
       -moz-column-gap: 0;
            column-gap: 0;
  }

  .tour-search-count {
    min-height: 0;
    padding: 2rem 1.6rem;
    margin-bottom: 4rem;
    font-size: 1.6rem;
  }

  .tour-search-count__num {
    font-size: 3.2rem;
  }

  .page-available-tours .available-tours-list {
    padding: 4.8rem 1.6rem 4rem;
  }

  .page-available-tours .plans-grid--selectable {
    grid-template-columns: 1fr;
  }

  .available-tours-actions {
    max-width: none;
    width: 100%;
  }

  .available-tours-btn {
    min-height: 5.6rem;
    font-size: 1.8rem;
  }
}

/* =====================================================================
   ツアー詳細（Figma 2:4118）
   ===================================================================== */

.page-tour-detail .tour-detail-main {
  padding: 2.3rem 0 6rem;
}

.tour-detail-container {
  max-width: 123rem;
  margin: 0 auto;
  /* padding: 0 8rem; */
}

.tour-detail-back {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.6rem;
  margin-bottom: 2.3rem;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 2.4rem;
  color: #3498db;
  text-decoration: none;
}

.tour-detail-back__icon {
  font-size: 2.4rem;
  line-height: 1;
}

.tour-detail-meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin-bottom: 0.8rem;
}

.tour-detail-plan-id {
  margin: 0;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 2.4rem;
  color: #323743;
}

.tour-detail-share {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 2.9rem;
  height: 2.9rem;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
}

.tour-detail-share__icon {
  position: relative;
  display: block;
  width: 2.2rem;
  height: 2.2rem;
}

.tour-detail-share__icon::before,
.tour-detail-share__icon::after {
  content: '';
  position: absolute;
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  background: #95999e;
}

.tour-detail-share__icon::before {
  top: 0.35rem;
  left: 0.2rem;
  -webkit-box-shadow: 0.85rem 0.75rem 0 #95999e, 1.35rem -0.1rem 0 #95999e;
          box-shadow: 0.85rem 0.75rem 0 #95999e, 1.35rem -0.1rem 0 #95999e;
}

.tour-detail-share__icon::after {
  top: 0.1rem;
  left: 1.35rem;
  width: 0.65rem;
  height: 0.65rem;
}

.tour-detail-title {
  margin: 0 0 2.2rem;
  font-size: 3rem;
  font-weight: 700;
  line-height: 3.9rem;
  color: #323743;
}

.tour-detail-layout {
  display: grid;
  grid-template-columns: minmax(0, 84.6rem) minmax(0, 35.3rem);
  gap: 3.1rem;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
}

.tour-detail-content {
  min-width: 0;
  max-width: 100%;
}

.tour-detail-gallery__main-wrap {
  position: relative;
  margin-bottom: 1.7rem;
  border-radius: 1rem;
  overflow: hidden;
}

.tour-detail-gallery__main {
  display: block;
  width: 100%;
  height: 56.3rem;
  -o-object-fit: cover;
     object-fit: cover;
}

.tour-detail-gallery__nav {
  position: absolute;
  top: 50%;
  z-index: 2;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 5.8rem;
  height: 5.8rem;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: rgba(96, 96, 96, 0.85);
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%);
  cursor: pointer;
}

.tour-detail-gallery__nav img {
  width: 1rem;
}

.tour-detail-gallery__nav--prev {
  left: 1.4rem;
}

.tour-detail-gallery__nav--next {
  right: 1.4rem;
}

.tour-detail-gallery__nav--prev img {
  -webkit-transform: rotate(180deg);
      -ms-transform: rotate(180deg);
          transform: rotate(180deg);
}

.tour-detail-gallery__thumbs {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1rem;
}

.tour-detail-gallery__thumb {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 12.5rem;
  height: 8.3rem;
  padding: 0;
  border: 0.2rem solid transparent;
  border-radius: 0.6rem;
  overflow: hidden;
  cursor: pointer;
  background: #eee;
}

.tour-detail-gallery__thumb--active {
  border-color: var(--color-primary);
}

.tour-detail-gallery__thumb img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.tour-detail-block {
  margin-bottom: 1.9rem;
  padding: 2rem 1rem;
  background: #fff;
}

.tour-detail-block__title {
  margin: 0 0 2rem;
  font-size: 2rem;
  font-weight: 700;
  line-height: 2rem;
  color: #000;
}

.tour-detail-about-list {
  margin: 0;
  padding: 0 0 0 1.8rem;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 2.3rem;
  color: #000;
}

.tour-detail-about-list li + li {
  margin-top: 0.4rem;
}

.tour-detail-schedule__item + .tour-detail-schedule__item {
  margin-top: 1rem;
}

.tour-detail-schedule__trigger {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 100%;
  min-height: 5.7rem;
  padding: 0 2.5rem 0 2.5rem;
  border: none;
  border-radius: 0.4rem;
  background: #f4f7f7;
  font-family: inherit;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 2rem;
  color: #000;
  text-align: left;
  cursor: pointer;
}

.tour-detail-schedule__icon {
  width: 3rem;
  height: 3rem;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}

.tour-detail-schedule__item--open .tour-detail-schedule__icon {
  -webkit-transform: rotate(45deg);
      -ms-transform: rotate(45deg);
          transform: rotate(45deg);
}

.tour-detail-schedule__panel {
  padding: 1.5rem 2.5rem 0.5rem;
  font-size: 1.4rem;
  line-height: 2rem;
  color: #000;
}

.tour-detail-schedule__panel[hidden] {
  display: none;
}

/* ツアー詳細・料金カレンダー（Figma 2:4169） */
.tour-detail-calendar {
  max-width: 100%;
  padding: 0;
  background: #fff;
  overflow-x: hidden;
}

.tour-detail-calendar__nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin-bottom: 1.2rem;
  padding: 0 0.4rem;
}

.tour-detail-calendar__months {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  -webkit-box-pack: distribute;
      -ms-flex-pack: distribute;
          justify-content: space-around;
  gap: 2rem;
  padding: 0 2rem;
}

.tour-detail-calendar__month {
  font-size: 1.77rem;
  font-weight: 700;
  line-height: 2.66rem;
  color: #000;
  text-align: center;
}

.tour-detail-calendar__arrow {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 2.5rem;
  height: 2.5rem;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
}

.tour-detail-calendar__arrow img {
  display: block;
  width: 1rem;
  height: auto;
}

.tour-detail-calendar__arrow--prev img {
  -webkit-transform: rotate(180deg);
      -ms-transform: rotate(180deg);
          transform: rotate(180deg);
}

.tour-detail-calendar__grid-wrap {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem;
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

.tour-detail-calendar__month-panel {
  min-width: 0;
  max-width: 100%;
  container-type: inline-size;
}

.price-cal-week-head,
.price-cal-days {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: (1fr)[7];
  grid-template-columns: repeat(7, 1fr);
}

.price-cal-wh {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  aspect-ratio: 1 / 1;
  width: 100%;
  min-width: 0;
  min-height: 0;
  padding: 0.2rem;
  font-size: clamp(1rem, 9cqw, 1.77rem);
  font-weight: 400;
  line-height: 1.2;
  color: #8a8a8a;
  text-align: center;
}

.price-cal-day {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  aspect-ratio: 1 / 1;
  width: 100%;
  min-width: 0;
  min-height: 0;
  padding: 0.25rem 0.1rem;
  text-align: center;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  overflow: hidden;
}

.price-cal-day--empty {
  padding: 0;
}

.price-cal-day__num {
  max-width: 100%;
  font-size: clamp(1rem, 10cqw, 1.77rem);
  font-weight: 400;
  line-height: 1.2;
  color: #000;
}

.price-cal-day--past .price-cal-day__num {
  color: #b1b1b1;
}

.price-cal-day__price {
  max-width: 100%;
  margin-top: 0.15rem;
  font-size: clamp(0.55rem, 7.5cqw, 1.2rem);
  font-weight: 400;
  line-height: 1.1;
  color: #8a8a8a;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.price-cal-day--selected {
  background: rgba(251, 0, 0, 0.15);
  border-radius: 50%;
}

.price-cal-day--selected .price-cal-day__price {
  margin-top: 0.2rem;
}

.tour-detail-notes {
  margin: 0;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 2.3rem;
  color: #000;
}

.tour-detail-sidebar {
  position: sticky;
  top: 12rem;
}

.tour-detail-booking {
  padding: 2.1rem 1.6rem 2.4rem;
  border-radius: 1rem;
  background: #F4F7F7;
  -webkit-box-shadow: 0 0.2rem 1.2rem rgba(0, 0, 0, 0.08);
          box-shadow: 0 0.2rem 1.2rem rgba(0, 0, 0, 0.08);
}

.tour-detail-booking__tag {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;

  min-height: 2.3rem;
    height: 2.8rem;
    padding: 0 1.2rem;
    border: 1px solid var(--color-primary);
    border-radius: 99px;
    background: #fff;
    color: var(--color-primary);
    font-size: 1.2rem;
    font-weight: 500;
    line-height: 2.7rem;
    white-space: nowrap;
}

.tour-detail-booking__title {
  margin: 1.2rem 0 0.8rem;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 2.6rem;
  color: #000;
}

.tour-detail-booking__desc {
  margin: 0 0 1.6rem;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 2.1rem;
  color: #626262;
}

.tour-detail-booking__price {
  margin: 1.6rem 0 2rem;
  font-size: 1.4rem;
  line-height: 2rem;
  color: #000;
}

.tour-detail-booking__price strong {
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--color-primary);
}

.tour-detail-booking__fields {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.2rem;
  margin-bottom: 1.6rem;
}

.tour-detail-booking__row--2col {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.2rem;
}

.tour-detail-booking__row--date,
.tour-detail-booking__row--pax {
  width: 100%;
}

.tour-detail-booking .field-wrap {
  position: relative;
}

.tour-detail-booking .date-picker-wrap {
  position: relative;
  width: 100%;
}

.tour-detail-booking .dep-dropdown {
  min-width: 0;
  width: min(60rem, calc(100vw - 3.2rem));
  left: auto;
  right: 0;
}

.tour-detail-booking .cal-panel {
  min-width: 0;
  width: min(64rem, calc(100vw - 3.2rem));
  left: auto;
  right: 0;
}

.tour-detail-booking .pax-panel {
  left: auto;
  right: 0;
  width: 100%;
  max-width: 32rem;
}

@media screen and (max-width: 767px) {
  .tour-detail-booking__row--2col {
    grid-template-columns: 1fr;
  }

  .tour-detail-booking .dep-dropdown,
  .tour-detail-booking .cal-panel {
    left: 50%;
    right: auto;
    -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
            transform: translateX(-50%);
  }
}

.tour-detail-booking__request {
  position: relative;
  margin-bottom: 1.6rem;
}

.tour-detail-booking__request-label {
  position: absolute;
  top: -0.5rem;
  left: 0.8rem;
  z-index: 1;
  padding: 0 0.4rem;
  background: #fff;
  font-size: 0.9rem;
  color: #626262;
}

.tour-detail-booking__textarea {
  width: 100%;
  min-height: 17.8rem;
  padding: 1.6rem 1.2rem;
  border: 1px solid #bcbdc2;
  border-radius: 0.4rem;
  font-family: inherit;
  font-size: 1.4rem;
  resize: vertical;
}

.tour-detail-booking__agree {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 0.9rem;
  margin-bottom: 2rem;
  font-size: 1.2rem;
  line-height: 1.8rem;
  color: #000;
  cursor: pointer;
}
.tour-detail-booking__agree a {
	color: #E84242;
	text-decoration: underline;
}

.tour-detail-booking__checkbox {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}

.tour-detail-booking__checkbox-ui {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 1.5rem;
  height: 1.5rem;
  margin-top: 0.2rem;
  border: 1px solid #bcbdc2;
  border-radius: 0.2rem;
  background: #fff;
}

.tour-detail-booking__checkbox:checked + .tour-detail-booking__checkbox-ui {
  border-color: var(--color-primary);
  background: var(--color-primary) url('../img/icon-contact-checkbox-check.png') center / 1.2rem 1.2rem no-repeat;
}

.tour-detail-booking__btn {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
  min-height: 4.8rem;
  margin-bottom: 1.2rem;
  border: none;
  border-radius: 99px;
  font-family: inherit;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 2rem;
  color: #fff;
  cursor: pointer;
}

.tour-detail-booking__btn--cart,
.tour-detail-booking__btn--book {
  background: var(--color-primary);
}

.tour-detail-booking__btn--book {
  margin-bottom: 0;
}

.tour-detail-booking__btn:hover {
  opacity: 0.92;
}

.page-tour-detail .tour-detail-field .field-input {
  min-height: 3.5rem;
  font-size: 1.2rem;
}

@media (max-width: 1199px) {
  .tour-detail-layout {
    grid-template-columns: 1fr;
  }

  .tour-detail-sidebar {
    position: static;
  }

  .tour-detail-calendar__grid-wrap {
    grid-template-columns: 1fr;
    gap: 2.4rem;
  }
}

@media (max-width: 991px) {
  .tour-detail-calendar__grid-wrap {
    gap: 1.6rem;
  }

  .tour-detail-calendar__months {
    gap: 1rem;
    padding: 0 0.4rem;
  }
}

@media (max-width: 767px) {
  .tour-detail-container {
    padding: 0 1.6rem;
  }

  .tour-detail-title {
    font-size: 2.4rem;
    line-height: 3.2rem;
  }

  .tour-detail-gallery__main {
    height: 28rem;
  }

  .tour-detail-gallery__nav {
    width: 4.4rem;
    height: 4.4rem;
  }


  .tour-detail-calendar__months {
    gap: 1.2rem;
    padding: 0 0.8rem;
  }

  .tour-detail-calendar__month {
    font-size: 1.6rem;
    line-height: 2.4rem;
  }

  .price-cal-wh,
  .price-cal-day__num {
    font-size: 1.4rem;
    line-height: 2.2rem;
  }

  .price-cal-day__price {
    font-size: 1rem;
    line-height: 1.2;
  }
}

/* ── 支払い（Figma 2:4495） ── */
.page-payment .payment-main {
  padding: 4.6rem 0 8rem;
}

.payment-container {
  max-width: 96.6rem;
  margin: 0 auto;
  padding: 0 8rem;
}

.payment-page-title {
  margin: 0 0 4.6rem;
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 3.3rem;
  color: #323743;
  text-align: center;
}

.payment-stack {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.6rem;
}

.payment-card {
  margin: 0;
  padding: 4rem 6rem;
  background: #f4f7f7;
  border-radius: 0.4rem;
}

.payment-card__head {
  display: grid;
  grid-template-columns: 11.9rem 1fr auto;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
  gap: 2rem 2.4rem;
}

.payment-card__thumb {
  width: 11.9rem;
  height: 9.5rem;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 0.4rem;
}

.payment-card__info {
  min-width: 0;
  padding-top: 0.4rem;
}

.payment-card__title {
  margin: 0;
  font-size: 2rem;
  font-weight: 700;
  line-height: 2.8rem;
  color: #000;
}
.payment-card__subtitle {
  margin: 0.4rem 0 0;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 2rem;
  color: #626262;
}

.payment-card__price {
  margin: 0;
  padding-top: 0.4rem;
  font-size: 2rem;
  font-weight: 700;
  line-height: 2.8rem;
  color: #000;
  white-space: nowrap;
}

.payment-card__divider {
  margin: 2rem 0 1.6rem;
  border: none;
  border-top: 1px solid #e0e4e4;
}

.payment-card__criteria {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  -webkit-column-gap: 6.7rem;
     -moz-column-gap: 6.7rem;
          column-gap: 6.7rem;
  row-gap: 0;
  margin: 0;
}

.payment-card__criteria-item {
  margin: 0;
}

.payment-card__criteria-item dd {
  margin: 0;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 3.3rem;
  color: #626262;
}

.payment-card__criteria-item--full {
  grid-column: 1 / -1;
}

.payment-card__request {
  margin: 1.6rem 0 0;
  font-size: 1.4rem;
  line-height: 3.3rem;
  color: #626262;
}

.payment-card__request-label {
  color: #000;
  font-weight: 400;
}

.payment-card--customer {
  padding-top: 3.2rem;
  padding-bottom: 3.2rem;
}

.payment-card__section-title {
  margin: 0 0 1.6rem;
  font-size: 2rem;
  font-weight: 700;
  line-height: 2.8rem;
  color: #000;
}

.payment-customer {
  margin: 0;
  font-style: normal;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 3.3rem;
  color: #626262;
}

.payment-summary {
  padding: 4rem 6rem 4.8rem;
  background: #f4f7f7;
  border-radius: 0.4rem;
}

.payment-summary__meta {
  margin-bottom: 1.2rem;
}

.payment-summary__line {
  margin: 0;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 3.3rem;
  color: #000;
}

.payment-summary__tax {
  font-size: 1.2rem;
  color: #626262;
}

.payment-summary__total {
  margin: 0 0 2.4rem;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 3.6rem;
  color: #000;
}

.payment-summary__total-amount {
  margin: 0 0.4rem;
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 3.6rem;
  color: var(--color-primary);
}

.payment-summary__agreements {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.2rem;
  margin-bottom: 2.4rem;
}

.payment-check {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1rem;
  min-height: 4.8rem;
  padding: 0 1.6rem;
  background: #fff;
  border: 1px solid #e0e4e4;
  border-radius: 0.4rem;
  cursor: pointer;
}

.payment-check__input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}

.payment-check__mark {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 1.8rem;
  height: 1.8rem;
  border: 1px solid #bcbdc2;
  border-radius: 0.2rem;
  background: #fff;
}

.payment-check__input:checked + .payment-check__mark {
  border-color: var(--color-primary);
  background: var(--color-primary) url('../img/icon-contact-checkbox-check.png') center / 1.3rem 1.3rem no-repeat;
}

.payment-check__text {
  font-size: 1.4rem;
  line-height: 2rem;
  color: #000;
}

.payment-check__text a {
  color: var(--color-primary);
  text-decoration: underline;
}

.payment-summary__divider {
  margin: 0 0 2rem;
  border: none;
  border-top: 1px solid #e0e4e4;
}

.payment-methods {
  margin: 0 0 2.4rem;
  padding: 0;
  border: none;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.2rem;
}

.payment-method {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.6rem;
  min-height: 5.6rem;
  padding: 1.2rem 1.6rem;
  background: #fff;
  border: 1px solid #e0e4e4;
  border-radius: 0.4rem;
  cursor: pointer;
}

.payment-method__radio {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 1.8rem;
  height: 1.8rem;
  margin: 0;
  accent-color: var(--color-primary);
}

.payment-method__icons {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 1.2rem 1.6rem;
}

.payment-method__icons img {
  display: block;
  height: 2.4rem;
  width: auto;
  max-width: 5.6rem;
  -o-object-fit: contain;
     object-fit: contain;
}

.payment-method__brand--alipay {
  height: 2.8rem;
  max-width: 8rem;
}

.payment-method__brand--paypal {
  height: 2.2rem;
  max-width: 10rem;
}

.payment-summary__footer {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.payment-submit {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 1.2rem;
  min-width: 28rem;
  min-height: 4.8rem;
  padding: 0 3.2rem;
  border: none;
  border-radius: 99px;
  background: #1e1e1e;
  font-family: inherit;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 2rem;
  color: #fff;
  cursor: pointer;
}

.payment-submit:hover {
  opacity: 0.92;
}

.payment-submit__arrow {
  font-size: 1.8rem;
  line-height: 1;
}

.tour-detail-booking__btn--book {
  text-decoration: none;
  text-align: center;
}

@media (max-width: 991px) {
  .payment-container {
    padding: 0 2.4rem;
  }

  .payment-card,
  .payment-summary {
    padding: 2.4rem 2rem;
  }

  .payment-card__head {
    grid-template-columns: 9rem 1fr;
    grid-template-rows: auto auto;
  }

  .payment-card__thumb {
    width: 9rem;
    height: 7.2rem;
  }

  .payment-card__price {
    grid-column: 1 / -1;
    padding-top: 0;
  }

  .payment-card__criteria {
    grid-template-columns: 1fr;
    -webkit-column-gap: 0;
       -moz-column-gap: 0;
            column-gap: 0;
  }
}

@media (max-width: 767px) {
  .page-payment .payment-main {
    padding-top: 3.2rem;
    padding-bottom: 5.6rem;
  }

  .payment-page-title {
    margin-bottom: 3.2rem;
    font-size: 2.4rem;
    line-height: 3.2rem;
  }

  .payment-card__head {
    grid-template-columns: 1fr;
  }

  .payment-card__thumb {
    width: 100%;
    height: auto;
    max-height: 18rem;
  }

  .payment-summary__total-amount {
    font-size: 2.8rem;
  }

  .payment-submit {
    width: 100%;
    min-width: 0;
  }
}

/* =====================================================================
   よくある質問（Figma 2:3213）
   ===================================================================== */
.page-faq .faq-main {
  background: #fff;
}

.page-faq .faq-section {
  padding: 4.6rem 0 8rem;
}

.faq-container {
  max-width: 112.3rem;
  margin: 0 auto;
  padding: 0 8rem;
}

.faq-page-title {
  margin: 0 0 4.6rem;
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 3.3rem;
  color: #323743;
  text-align: center;
}

.faq-list {
  border-top: 1px solid #e5e5e5;
}

.faq-item {
  border-bottom: 1px solid #e5e5e5;
}

.faq-item__trigger {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.6rem;
  width: 100%;
  min-height: 6.7rem;
  padding: 1.6rem 1.6rem 1.6rem;
  border: none;
  background: transparent;
  font-family: inherit;
  text-align: left;
  cursor: pointer;
}

.faq-item__label {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 2rem;
  font-size: 2rem;
  font-weight: 500;
  line-height: 2rem;
  text-align: center;
  line-height: 3.84rem;
}

.faq-item__label--q {
  color: #ab7c53;
}

.faq-item__label--a {
  color: #6d6d6d;
}

.faq-item__question {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 3.84rem;
  letter-spacing: 0.056rem;
  color: #0d0d0d;
}

.faq-item__chevron {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 0.9rem;
  height: auto;
  margin-right: 0.8rem;
  -webkit-transition: -webkit-transform 0.2s ease;
  transition: -webkit-transform 0.2s ease;
  transition: transform 0.2s ease;
  transition: transform 0.2s ease, -webkit-transform 0.2s ease;
}

.faq-item--open .faq-item__chevron {
  -webkit-transform: rotate(90deg);
      -ms-transform: rotate(90deg);
          transform: rotate(90deg);
}

.faq-item__panel {
  overflow: hidden;
}

.faq-item__panel[hidden] {
  display: none;
}

.faq-item__answer {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1.6rem;
  padding: 1.6rem 1.6rem 2.4rem;
  background: rgba(232, 66, 66, 0.1);
}

.faq-item__answer p {
  margin: 0;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  padding-top: 0.2rem;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 3.73rem;
  color: #0d0d0d;
}

@media (max-width: 991px) {
  .faq-container {
    padding: 0 2.4rem;
  }
}

@media (max-width: 767px) {
  .page-faq .faq-section {
    padding: 3.2rem 0 5.6rem;
  }

  .faq-page-title {
    margin-bottom: 3.2rem;
    font-size: 2.4rem;
    line-height: 3.2rem;
  }

  .faq-item__trigger {
    min-height: 5.6rem;
    gap: 1rem;
    padding: 1.2rem 0;
  }

  .faq-item__label {
    width: 1.6rem;
    font-size: 1.6rem;
  }

  .faq-item__question {
    font-size: 1.4rem;
    line-height: 2.2rem;
  }

  .faq-item__answer {
    padding: 1.2rem 1.6rem 1.6rem 0;
    gap: 1rem;
  }

  .faq-item__answer p {
    font-size: 1.4rem;
    line-height: 2.4rem;
  }
}

/* =====================================================================
   新着情報（Figma 2:4635）
   ===================================================================== */
.page-news .news-page-main {
  background: #fff;
}

.page-news .news-page-section {
  padding: 4.6rem 0 8rem;
}

.news-page-container {
  max-width: 140.8rem;
  margin: 0 auto;
  padding: 0 8rem;
}

.news-page-title {
  margin: 0 0 4.6rem;
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 3.3rem;
  color: #323743;
  text-align: center;
}

.news-page-layout {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 2rem;
}

.news-sidebar {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 22.8rem;
  background: #fff;
  border-radius: 2rem 0 0 0;
  -webkit-box-shadow: 0 0.2rem 0.8rem rgba(0, 0, 0, 0.06);
          box-shadow: 0 0.2rem 0.8rem rgba(0, 0, 0, 0.06);
}

.news-sidebar__nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.news-sidebar__link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.7rem;
  min-height: 4.7rem;
  padding: 1.2rem 2.3rem;
  border-bottom: 1px solid #e5e5e5;
  font-size: 1.4rem;
  font-weight: 400;
  letter-spacing: 0.07rem;
  color: #000;
  text-decoration: none;
  -webkit-transition: color 0.2s;
  transition: color 0.2s;
}

.news-sidebar__link:first-child {
  border-top: 1px solid #e5e5e5;
}

.news-sidebar__link--active {
  font-weight: 700;
  color: #e84242;
}

.news-sidebar__icon {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 0.6rem;
  /* height: 1.6rem; */
  -o-object-fit: contain;
     object-fit: contain;
}

.news-page-content {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
}

.news-page-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2rem;
}

.news-list-card {
  background: #fff;
  border-radius: 1rem;
  -webkit-box-shadow: 0 0.4rem 0.2rem rgba(0, 0, 0, 0.25);
          box-shadow: 0 0.4rem 0.2rem rgba(0, 0, 0, 0.25);
  overflow: hidden;
  -webkit-transition: -webkit-box-shadow 0.2s;
  transition: -webkit-box-shadow 0.2s;
  transition: box-shadow 0.2s;
  transition: box-shadow 0.2s, -webkit-box-shadow 0.2s;
}

.news-list-card:hover {
  -webkit-box-shadow: 0 0.6rem 1.2rem rgba(0, 0, 0, 0.2);
          box-shadow: 0 0.6rem 1.2rem rgba(0, 0, 0, 0.2);
}

.news-list-card__link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  height: 100%;
  color: inherit;
  text-decoration: none;
}

.news-list-card__img-wrap {
  width: 100%;
  height: 20.3rem;
  overflow: hidden;
}

.news-list-card__img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.news-list-card__body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1rem;
  padding: 1.9rem 2rem 2rem;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}

.news-list-card__meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.8rem;
}

.news-list-card__date {
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 2.72rem;
  color: #333;
}

.news-list-card__tag {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: 2.7rem;
  padding: 0 1rem;
  border: 1px solid #e84242;
  border-radius: 99px;
  font-size: 1.2rem;
  line-height: 2rem;
  color: #e84242;
  white-space: nowrap;
}

.news-list-card__title {
  margin: 0;
  font-size: 2rem;
  font-weight: 700;
  line-height: 2.72rem;
  color: #333;
}

.news-page-pagination {
  margin-top: 4.6rem;
}

@media (max-width: 1199px) {
  .news-page-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 991px) {
  .news-page-container {
    padding: 0 2.4rem;
  }

  .news-page-layout {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }

  .news-sidebar {
    width: 100%;
    border-radius: 1rem;
  }

  .news-sidebar__nav {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .news-sidebar__link {
    -ms-flex-negative: 0;
        flex-shrink: 0;
    min-height: 4.4rem;
    border-top: none;
    border-bottom: none;
    border-right: 1px solid #e5e5e5;
    white-space: nowrap;
  }

  .news-sidebar__link:first-child {
    border-top: none;
    border-left: 1px solid #e5e5e5;
  }
}

@media (max-width: 767px) {
  .page-news .news-page-section {
    padding: 3.2rem 0 5.6rem;
  }

  .news-page-title {
    margin-bottom: 3.2rem;
    font-size: 2.4rem;
    line-height: 3.2rem;
  }

  .news-page-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.6rem;
  }

  .news-list-card__img-wrap {
    height: 18rem;
  }

  .news-list-card__title {
    font-size: 1.6rem;
    line-height: 2.4rem;
  }

  .news-page-pagination {
    margin-top: 3.2rem;
  }
}

/* =====================================================================
   新着情報（Figma 2:4635）
   ===================================================================== */
.page-news .news-page-main {
  background: #fff;
}

.page-news .news-page-section {
  padding: 4.6rem 0 8rem;
}

.news-page-container {
  max-width: 140.8rem;
  margin: 0 auto;
  padding: 0 8rem;
}

.news-page-title {
  margin: 0 0 4.6rem;
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 3.3rem;
  color: #323743;
  text-align: center;
}

.news-page-layout {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 2.8rem;
}

.news-sidebar {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 22.8rem;
  background: #fff;
  border-radius: 2rem 0 0 0;
  -webkit-box-shadow: 0 0.2rem 0.8rem rgba(0, 0, 0, 0.06);
          box-shadow: 0 0.2rem 0.8rem rgba(0, 0, 0, 0.06);
}

.news-sidebar__nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.news-sidebar__link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.7rem;
  min-height: 4.7rem;
  padding: 1.2rem 2.8rem 1.2rem 2.8rem;
  border-bottom: 1px solid #e5e5e5;
  font-size: 1.4rem;
  font-weight: 400;
  letter-spacing: 0.07rem;
  color: #000;
  text-decoration: none;
  -webkit-transition: color 0.2s ease;
  transition: color 0.2s ease;
}

.news-sidebar__link:first-child {
  border-top: 1px solid #e5e5e5;
}

.news-sidebar__link--active {
  font-weight: 700;
  color: #e84242;
}

.news-sidebar__icon {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 0.6rem;
  /* height: 1.6rem; */
  -o-object-fit: contain;
     object-fit: contain;
}

.news-page-content {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
}

.news-page-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2rem;
}

.news-list-card {
  background: #fff;
  border-radius: 1rem;
  -webkit-box-shadow: 0 0.4rem 0.2rem rgba(0, 0, 0, 0.25);
          box-shadow: 0 0.4rem 0.2rem rgba(0, 0, 0, 0.25);
  overflow: hidden;
  -webkit-transition: -webkit-box-shadow 0.2s ease;
  transition: -webkit-box-shadow 0.2s ease;
  transition: box-shadow 0.2s ease;
  transition: box-shadow 0.2s ease, -webkit-box-shadow 0.2s ease;
}

.news-list-card:hover {
  -webkit-box-shadow: 0 0.6rem 1.2rem rgba(0, 0, 0, 0.2);
          box-shadow: 0 0.6rem 1.2rem rgba(0, 0, 0, 0.2);
}

.news-list-card__link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  height: 100%;
  color: inherit;
  text-decoration: none;
}

.news-list-card__img-wrap {
  width: 100%;
  height: 20.3rem;
  overflow: hidden;
}

.news-list-card__img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.news-list-card__body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1rem;
  padding: 1.9rem 2rem 2rem;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}

.news-list-card__meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.8rem;
}

.news-list-card__date {
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 2.72rem;
  color: #333;
}

.news-list-card__tag {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: 2.7rem;
  padding: 0 1rem;
  border: 1px solid #e84242;
  border-radius: 99px;
  font-size: 1.2rem;
  line-height: 2rem;
  color: #e84242;
  white-space: nowrap;
}

.news-list-card__title {
  margin: 0;
  font-size: 2rem;
  font-weight: 700;
  line-height: 2.72rem;
  color: #333;
}

.news-page-pagination {
  margin-top: 4.6rem;
}

@media (max-width: 1199px) {
  .news-page-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 991px) {
  .news-page-container {
    padding: 0 2.4rem;
  }

  .news-page-layout {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }

  .news-sidebar {
    width: 100%;
    border-radius: 1rem;
  }

  .news-sidebar__nav {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .news-sidebar__link {
    -ms-flex-negative: 0;
        flex-shrink: 0;
    min-height: 4.4rem;
    padding: 1rem 1.6rem;
    border-top: none;
    border-bottom: none;
    border-right: 1px solid #e5e5e5;
  }

  .news-sidebar__link:first-child {
    border-top: none;
    border-left: 1px solid #e5e5e5;
  }
}

@media (max-width: 767px) {
  .page-news .news-page-section {
    padding: 3.2rem 0 5.6rem;
  }

  .news-page-title {
    margin-bottom: 3.2rem;
    font-size: 2.4rem;
    line-height: 3.2rem;
  }

  .news-page-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.6rem;
  }

  .news-list-card__img-wrap {
    height: 18rem;
  }

  .news-list-card__title {
    font-size: 1.6rem;
    line-height: 2.4rem;
  }

  .news-page-pagination {
    margin-top: 3.2rem;
  }
}

/* =====================================================================
   新着情報 详情（Figma 2:4780）
   ===================================================================== */
.page-news-detail .news-detail-main {
  background: #fff;
}

.page-news-detail .news-detail-section {
  padding: 4.6rem 0 8rem;
}

.news-detail-container {
  max-width: 93.9rem;
  margin: 0 auto;
  padding: 0 8rem;
}

.news-detail-meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.8rem;
  margin-bottom: 2.8rem;
}

.news-detail-date {
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 2.72rem;
  color: #333;
}

.news-detail-tag {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: 2.7rem;
  padding: 0 1rem;
  border: 1px solid #e84242;
  border-radius: 99px;
  font-size: 1.2rem;
  line-height: 2rem;
  color: #e84242;
  white-space: nowrap;
}

.news-detail-title {
  margin: 0 0 3.2rem;
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 4.2rem;
  color: #333;
}

.news-detail-hero {
  margin: 0 0 2.4rem;
  border-radius: 1rem;
  overflow: hidden;
}

.news-detail-hero__img {
  display: block;
  width: 100%;
  height: auto;
  min-height: 30rem;
  max-height: 60.2rem;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 1rem;
}

.news-detail-body {
  margin-bottom: 5.6rem;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 3.5rem;
  color: #000;
}

.news-detail-body p {
  margin: 0 0 0.4rem;
}

.news-detail-body p:last-child {
  margin-bottom: 0;
}

.news-detail-nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0.6rem;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.news-detail-nav__btn {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 3.9rem;
  height: 3.8rem;
  padding: 0;
  border-radius: 99px;
  cursor: pointer;
  -webkit-transition: opacity 0.2s;
  transition: opacity 0.2s;
}

.news-detail-nav__btn:hover {
  opacity: 0.88;
}

.news-detail-nav__btn--prev {
  border: 1px solid #dee2e6;
  background: #fff;
}

.news-detail-nav__btn--next {
  border: none;
  background: #e84242;
}

.news-detail-nav__icon {
  width: 0.8rem;
  height: auto;
}

.news-detail-nav__icon--white {
  -webkit-filter: brightness(0) invert(1);
          filter: brightness(0) invert(1);
}

.news-detail-nav__back {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-width: 15.2rem;
  height: 3.8rem;
  padding: 0 2.4rem;
  border-radius: 99px;
  background: #e84242;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.6rem;
  color: #fff;
  text-decoration: none;
  white-space: nowrap;
  -webkit-transition: opacity 0.2s;
  transition: opacity 0.2s;
}

.news-detail-nav__back:hover {
  opacity: 0.9;
  color: #fff;
}

@media (max-width: 991px) {
  .news-detail-container {
    padding: 0 2.4rem;
  }
}

@media (max-width: 767px) {
  .page-news-detail .news-detail-section {
    padding: 3.2rem 0 5.6rem;
  }

  .news-detail-title {
    margin-bottom: 2.4rem;
    font-size: 2.4rem;
    line-height: 3.2rem;
  }

  .news-detail-hero__img {
    min-height: 20rem;
    max-height: 40rem;
  }

  .news-detail-body {
    margin-bottom: 4rem;
    font-size: 1.4rem;
    line-height: 3rem;
  }

  .news-detail-nav {
    gap: 1rem;
  }
}

/* =====================================================================
   お問い合わせ（Figma 2:3258）
   ===================================================================== */
.page-contact .contact-main {
  background: #fff;
}

.page-contact .contact-section {
  padding: 4.6rem 0 8rem;
}

.contact-container {
  max-width: 64rem;
  margin: 0 auto;
  padding: 0 8rem;
}

.contact-page-title {
  margin: 0 0 5.6rem;
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 3.3rem;
  color: #323743;
  text-align: center;
}

.contact-form {
  max-width: 54rem;
  margin: 0 auto;
}

.contact-form__row {
  display: grid;
  grid-template-columns: 11rem minmax(0, 1fr);
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
  gap: 1rem 1.2rem;
  margin-bottom: 3.2rem;
}

.contact-form__row--textarea {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
}

.contact-form__label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  gap: 0.2rem;
  min-height: 3rem;
  padding-top: 0.4rem;
  font-size: 1.2rem;
  font-weight: 400;
  line-height: 1.857rem;
  letter-spacing: 0.04rem;
  color: #000;
  text-align: right;
}

.contact-form__required {
  font-family: "Noto Serif JP", serif;
  font-size: 1.6rem;
  line-height: 1.857rem;
  color: #bc261a;
}

.contact-form__field {
  min-width: 0;
}

.contact-form__field--with-hint {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0.8rem 1.2rem;
}

.contact-form__select-wrap {
  position: relative;
  display: inline-block;
  max-width: 100%;
}

.contact-form__select {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  width: 26.9rem;
  max-width: 100%;
  height: 3rem;
  padding: 0 3.2rem 0 0.9rem;
  border: 1px solid #d2d2d2;
  border-radius: 0;
  background: #f5f5f5;
  font-family: inherit;
  font-size: 1.2rem;
  line-height: 1.7rem;
  color: #000;
  cursor: pointer;
}

.contact-form__select:invalid,
.contact-form__select option[value=""][disabled] {
  color: #8a8a8a;
}

.contact-form__select-arrow {
  position: absolute;
  top: 50%;
  right: 1rem;
  width: 0.7rem;
  height: auto;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%);
  pointer-events: none;
}

.contact-form__textarea {
  display: block;
  width: 100%;
  max-width: 41.3rem;
  height: 20rem;
  padding: 0.8rem 1rem;
  border: 1px solid #bfbfbf;
  border-radius: 0;
  background: #f5f5f5;
  font-family: inherit;
  font-size: 1.2rem;
  line-height: 1.7rem;
  color: #000;
  resize: vertical;
}

.contact-form__input {
  height: 3rem;
  padding: 0 1rem;
  border: 1px solid #bfbfbf;
  border-radius: 0;
  background: #f5f5f5;
  font-family: inherit;
  font-size: 1.2rem;
  line-height: 1.7rem;
  color: #000;
}

.contact-form__input--full {
  width: 100%;
  max-width: 41.2rem;
}

.contact-form__input--postal {
  width: 12.8rem;
  max-width: 100%;
}

.contact-form__input--phone {
  width: 15.5rem;
  max-width: 100%;
}

.contact-form__hint {
  font-size: 1.2rem;
  line-height: 1.65rem;
  color: #666;
  white-space: nowrap;
}

.contact-form__consent {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin: 4rem 0 3.2rem;
}

.contact-form__checkbox-label {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.4rem;
  cursor: pointer;
}

.contact-form__checkbox {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.contact-form__checkbox-box {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 1.6rem;
  height: 1.6rem;
  border: 2px solid #000;
  border-radius: 0.5rem;
  background: #fff;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 1.4rem;
}

.contact-form__checkbox:checked + .contact-form__checkbox-box {
  background-color: #000;
  background-image: url("../img/icon-contact-checkbox-check.png");
}

.contact-form__checkbox-text {
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 2.1rem;
  color: #393939;
}

.contact-form__policy-link {
  color: #373c49;
  text-decoration: underline;
  -webkit-text-decoration-skip-ink: none;
          text-decoration-skip-ink: none;
}

.contact-form__policy-link:hover {
  opacity: 0.85;
}

.contact-form__submit-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.contact-form__submit {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-width: 32.2rem;
  height: 5.6rem;
  padding: 0 3.2rem;
  border: none;
  border-radius: 99px;
  background: #e84242;
  font-family: inherit;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.95rem;
  letter-spacing: 0.1rem;
  color: #fff;
  cursor: pointer;
  -webkit-transition: opacity 0.2s;
  transition: opacity 0.2s;
}

.contact-form__submit:hover {
  opacity: 0.9;
}

@media (max-width: 991px) {
  .contact-container {
    padding: 0 2.4rem;
  }
}

@media (max-width: 767px) {
  .page-contact .contact-section {
    padding: 3.2rem 0 5.6rem;
  }

  .contact-page-title {
    margin-bottom: 3.2rem;
    font-size: 2.4rem;
    line-height: 3.2rem;
  }

  .contact-form__row {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.6rem;
    margin-bottom: 2.4rem;
  }

  .contact-form__label {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    min-height: 0;
    padding-top: 0;
    text-align: left;
  }

  .contact-form__select {
    width: 100%;
  }

  .contact-form__submit {
    width: 100%;
    min-width: 0;
  }
}

/* =====================================================================
   運営会社（Figma 2:3303）
   ===================================================================== */
.page-company .company-main {
  background: #fff;
}

.company-hero {
  position: relative;
  width: 100%;
  height: 62rem;
  overflow: hidden;
}

.company-hero__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.company-hero__overlay {
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.2);
  pointer-events: none;
}

.company-hero__logo-wrap {
  position: absolute;
  left: 50%;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  z-index: 1;
  padding: 1.6rem 2.4rem;
  -webkit-filter: drop-shadow(0 0 3rem #fff);
          filter: drop-shadow(0 0 3rem #fff);
}

.company-hero__logo {
  display: block;
  width: auto;
  max-width: 36.8rem;
  height: auto;
}

.company-container {
  max-width: 112.3rem;
  margin: 0 auto;
  padding: 0 8rem;
}

.company-intro {
  padding: 8rem 0 6rem;
}

.company-intro__head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 1.2rem;
  margin-bottom: 4rem;
}

.company-intro__logo {
  display: block;
  width: 8.2rem;
  height: auto;
}

.company-intro__title {
  margin: 0;
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 3.84rem;
  letter-spacing: 0.32rem;
  color: #171a1c;
  text-transform: uppercase;
}

.company-intro__text {
  max-width: 107.8rem;
  margin: 0 auto;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 3.52rem;
  color: #1a1a1a;
  text-align: center;
}

.company-intro__text p {
  margin: 0 0 1.6rem;
}

.company-intro__text p:last-child {
  margin-bottom: 0;
}

.company-banner {
  position: relative;
  width: 100%;
  height: 48rem;
  overflow: hidden;
}

.company-banner__img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.company-banner__overlay {
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.2);
  pointer-events: none;
}

.company-info {
  padding: 8rem 0;
}

.company-info__header {
  margin-bottom: 5.6rem;
  text-align: center;
}

.company-info__heading {
  margin: 0 0 0.8rem;
  font-family: "Outfit", "Noto Sans JP", sans-serif;
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 3.84rem;
  letter-spacing: 0.32rem;
  color: #171a1c;
  text-transform: uppercase;
}

.company-info__subheading {
  margin: 0;
  font-size: 1.44rem;
  font-weight: 300;
  line-height: 1.728rem;
  letter-spacing: 0.2rem;
  color: #171a1c;
}

.company-info__list {
  max-width: 82.4rem;
  margin: 0 auto;
}

.company-info__row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 5rem;
  padding: 4.2rem 0;
  border-bottom: 1px solid #c4c4c4;
}

.company-info__row:first-child {
  border-top: 1px solid #c4c4c4;
}

.company-info__term {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 22.1rem;
  margin: 0;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: normal;
  color: #1a1a1a;
}

.company-info__desc {
  margin: 0;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 3rem;
  color: #1a1a1a;
}

.company-info__link {
  color: inherit;
  text-decoration: none;
}

.company-info__link:hover {
  text-decoration: underline;
}

.company-access {
  padding: 0 0 10rem;
}

.company-access__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 4rem;
}

.company-access__content {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  max-width: 50rem;
}

.company-access__title {
  margin: 0 0 2.4rem;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: normal;
  color: #1a1a1a;
}

.company-access__address {
  margin: 0 0 4rem;
  font-style: normal;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 3rem;
  color: #1a1a1a;
}

.company-access__map-btn {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-width: 14.8rem;
  height: 4.8rem;
  padding: 0 2rem;
  border: 1px solid #171a1c;
  background: #fff;
  font-family: "Outfit", "Noto Sans JP", sans-serif;
  font-size: 1.2rem;
  font-weight: 300;
  line-height: 1.68rem;
  letter-spacing: 0.24rem;
  color: #171a1c;
  text-decoration: none;
  text-transform: uppercase;
  -webkit-transition: background 0.2s, color 0.2s;
  transition: background 0.2s, color 0.2s;
}

.company-access__map-btn:hover {
  background: #171a1c;
  color: #fff;
}

.company-access__map {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 58rem;
  max-width: 100%;
}

.company-access__map-img {
  display: block;
  width: 100%;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
}

@media (max-width: 991px) {
  .company-container {
    padding: 0 2.4rem;
  }
	
  .company-access__inner {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }

  .company-access__map {
    width: 100%;
  }
  .company-access__map iframe{
	  width: 100% !important;
  }
}

@media (max-width: 767px) {
  .company-hero {
    height: 40rem;
  }

  .company-hero__logo {
    max-width: 24rem;
  }

  .company-intro {
    padding: 5.6rem 0 4rem;
  }

  .company-intro__head {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    margin-bottom: 2.4rem;
  }

  .company-intro__title {
    font-size: 2.4rem;
    line-height: 3.2rem;
    text-align: center;
  }

  .company-intro__text {
    font-size: 1.4rem;
    line-height: 3rem;
    text-align: left;
  }

  .company-banner {
    height: 28rem;
  }

  .company-info {
    padding: 5.6rem 0;
  }

  .company-info__heading {
    font-size: 2.4rem;
    line-height: 3.2rem;
  }

  .company-info__row {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 1.2rem;
    padding: 2.4rem 0;
  }

  .company-info__term {
    width: auto;
  }

  .company-access {
    padding-bottom: 6rem;
  }
}

/* =====================================================================
   採用情報（Figma 2:3349）
   ===================================================================== */
.page-recruit .recruit-main {
  background: #fff;
}

.recruit-hero {
  position: relative;
  width: 100%;
  height: 62rem;
  overflow: hidden;
}

.recruit-hero__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.recruit-hero__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.35);
  pointer-events: none;
}

.recruit-hero__title {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 1;
  margin: 0;
  -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  font-size: 4.8rem;
  font-weight: 700;
  line-height: 3.3rem;
  color: #fff;
  text-align: center;
  text-shadow: 0 0.4rem 1rem rgba(0, 0, 0, 0.5);
  white-space: nowrap;
}

.recruit-container {
  max-width: 112.3rem;
  margin: 0 auto;
  padding: 0 8rem;
}

.recruit-intro {
  padding: 8rem 0 6rem;
}

.recruit-intro__heading {
  margin: 0 0 4rem;
  font-size: 3.2rem;
  font-weight: 500;
  line-height: 3.84rem;
  letter-spacing: 0.32rem;
  color: #171a1c;
  text-align: center;
}

.recruit-intro__text {
  max-width: 107.8rem;
  margin: 0 auto;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 3.52rem;
  color: #1a1a1a;
  text-align: center;
}

.recruit-intro__text p {
  margin: 0 0 1.6rem;
}

.recruit-intro__text p:last-child {
  margin-bottom: 0;
}

.recruit-banner {
  position: relative;
  width: 100%;
  height: 48rem;
  overflow: hidden;
}

.recruit-banner__img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center 30%;
     object-position: center 30%;
}

.recruit-banner__overlay {
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.2);
  pointer-events: none;
}

.recruit-details {
  padding: 8rem 0 10rem;
}

.recruit-details__list {
  max-width: 82.4rem;
  margin: 0 auto;
}

.recruit-details__row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 13.5rem;
  padding: 4.2rem 0;
  border-bottom: 1px solid #c4c4c4;
}

.recruit-details__row:first-child {
  border-top: 1px solid #c4c4c4;
}

.recruit-details__term {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 11.2rem;
  margin: 0;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: normal;
  color: #1a1a1a;
}

.recruit-details__desc {
  margin: 0;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 3rem;
  color: #1a1a1a;
}

@media (max-width: 991px) {
  .recruit-container {
    padding: 0 2.4rem;
  }

  .recruit-details__row {
    gap: 4rem;
  }
}

@media (max-width: 767px) {
  .recruit-hero {
    height: 40rem;
  }

  .recruit-hero__title {
    font-size: 3.2rem;
    line-height: 4rem;
    white-space: normal;
    padding: 0 2rem;
  }

  .recruit-intro {
    padding: 5.6rem 0 4rem;
  }

  .recruit-intro__heading {
    margin-bottom: 2.4rem;
    font-size: 2.2rem;
    line-height: 3.2rem;
  }

  .recruit-intro__text {
    font-size: 1.4rem;
    line-height: 3rem;
    text-align: left;
  }

  .recruit-banner {
    height: 28rem;
  }

  .recruit-details {
    padding: 5.6rem 0 6rem;
  }

  .recruit-details__row {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 1.2rem;
    padding: 2.4rem 0;
  }

  .recruit-details__term {
    width: auto;
  }
}

/* =====================================================================
   ログイン（Figma 2:3390）
   ===================================================================== */
.page-login .login-main {
  background: #fff;
}

.page-login .login-section {
  padding: 4.6rem var(--container-pad) 8rem;
}

.login-panel {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  max-width: 96.8rem;
  min-height: 43.8rem;
  margin: 0 auto;
  background: #f4f7f7;
}

.login-panel__col {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 5.6rem 3.2rem;
  text-align: center;
}

.login-panel__col--login {
  border-right: 1px solid #e0e4e4;
}

.login-panel__title {
  margin: 0 0 3.2rem;
  font-size: 3.2rem;
  font-weight: 500;
  line-height: 1.2;
  color: #1e1e1e;
}

.login-form {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  max-width: 28rem;
}

.login-form__field {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.7rem;
  width: 100%;
  margin-bottom: 1.6rem;
  cursor: text;
  background: #fff;
  padding: 0 0.8rem;
  border: 1px solid #c4c4c4;
}

.login-form__icon {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 1.2rem;
  /* height: 1.6rem; */
  /* -o-object-fit: contain;
     object-fit: contain; */
}

.login-form__input {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
  width: 22.9rem;
  max-width: 100%;
  height: 3.2rem;
  padding: 0 0.8rem;
  border-radius: 0;
  font-size: 1rem;
  border: 0 solid #c4c4c4;
  line-height: 3.2rem;
  color: #333;
}
.login-form__input:focus-visible {
  outline: 0 solid var(--color-secondary);
  outline-offset: 0;
}
.login-form__input::-webkit-input-placeholder {
  color: #aaa;
}

.login-form__input::-moz-placeholder {
  color: #aaa;
}

.login-form__input:-ms-input-placeholder {
  color: #aaa;
}

.login-form__input::-ms-input-placeholder {
  color: #aaa;
}

.login-form__input::placeholder {
  color: #aaa;
}

.login-form__forgot {
  -ms-flex-item-align: end;
      align-self: flex-end;
  width: 100%;
  max-width: 22.9rem;
  margin: 0 0 2.4rem;
  padding-right: 0.2rem;
  font-size: 1rem;
  line-height: 1.4;
  color: #333;
  text-align: right;
  text-decoration: underline;
  text-underline-offset: 0.2rem;
}

.login-form__forgot:hover {
  color: var(--color-primary);
}

.login-form__submit,
.login-panel__btn {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 18.4rem;
  height: 4rem;
  border-radius: 9.9rem;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1;
  color: #fff;
  text-align: center;
  -webkit-transition: opacity 0.2s ease, background 0.2s ease;
  transition: opacity 0.2s ease, background 0.2s ease;
}

.login-form__submit {
  border: none;
  background: #e84242;
  cursor: pointer;
}

.login-form__submit:hover {
  opacity: 0.9;
}

.login-panel__desc {
  margin: 0 0 3.2rem;
  max-width: 32rem;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.8;
  color: #333;
}

.login-panel__btn--register {
  background: rgba(232, 66, 66, 1);
}

.login-panel__btn--register:hover {
  background: rgba(232, 66, 66, 0.85);
}

@media (max-width: 767px) {
  .page-login .login-section {
    padding: 3.2rem 2rem 6rem;
  }

  .login-panel {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    min-height: 0;
  }

  .login-panel__col {
    padding: 4rem 2.4rem;
  }

  .login-panel__col--login {
    border-right: none;
    border-bottom: 1px solid #e0e4e4;
  }

  .login-panel__title {
    margin-bottom: 2.4rem;
    font-size: 2.6rem;
  }

  .login-form__forgot {
    max-width: 100%;
  }
}

/* =====================================================================
   新規会員登録（Figma 2:3411）
   ===================================================================== */
.page-register .register-main {
  background: #fff;
}

.page-register .register-section {
  padding: 4.6rem var(--container-pad) 8rem;
}

.register-panel {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  max-width: 82.4rem;
  min-height: 50rem;
  margin: 0 auto;
  padding: 7.1rem 3.2rem 6.4rem;
  background: #f4f7f7;
  text-align: center;
}

.register-panel__title {
  margin: 0 0 4.5rem;
  font-size: 3.2rem;
  font-weight: 500;
  line-height: 2.1rem;
  color: #1e1e1e;
}

.register-form {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  max-width: 28rem;
}

.register-form__field {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.7rem;
  width: 100%;
  max-width: 22.9rem;
  height: 3.2rem;
  margin-bottom: 2.2rem;
  padding: 0 1rem;
  border: 1px solid #c4c4c4;
  background: #fff;
  cursor: text;
}

.register-form__field--code {
  position: relative;
  padding-right: 0.6rem;
}

.register-form__icon {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 1.2rem;
  height: 1.2rem;
  -o-object-fit: contain;
     object-fit: contain;
}

.register-form__input {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
  height: 100%;
  padding: 0;
  border: none;
  background: transparent;
  font-size: 1rem;
  line-height: 3rem;
  color: #333;
}

.register-form__input--code {
  padding-right: 6.2rem;
}

.register-form__input::-webkit-input-placeholder {
  color: #aaa;
}

.register-form__input::-moz-placeholder {
  color: #aaa;
}

.register-form__input:-ms-input-placeholder {
  color: #aaa;
}

.register-form__input::-ms-input-placeholder {
  color: #aaa;
}

.register-form__input::placeholder {
  color: #aaa;
}

.register-form__timer {
  position: absolute;
  top: 50%;
  right: 0.4rem;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 5.7rem;
  height: 2.4rem;
  border: 1px solid #E84242;
  border-radius: 9.9rem;
  background: #E84242;
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.4rem;
  color: #fff;
  cursor: pointer;
}

.register-form__submit {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 18.4rem;
  height: 4rem;
  margin-top: 3.4rem;
  border: 1px solid #e84242;
  border-radius: 9.9rem;
  background: #e84242;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.4rem;
  color: #fff;
  cursor: pointer;
  -webkit-transition: opacity 0.2s ease;
  transition: opacity 0.2s ease;
}

.register-form__submit:hover {
  opacity: 0.9;
}

@media (max-width: 767px) {
  .page-register .register-section {
    padding: 3.2rem 2rem 6rem;
  }

  .register-panel {
    min-height: 0;
    padding: 4.8rem 2.4rem 5.6rem;
  }

  .register-panel__title {
    margin-bottom: 3.2rem;
    font-size: 2.6rem;
    line-height: 1.2;
  }

  .register-form__field {
    max-width: 100%;
  }

  .register-form__submit {
    margin-top: 2.4rem;
  }
}

/* =====================================================================
   マイページ・会員登録情報（Figma 2:3476）
   ===================================================================== */
.page-mypage .mypage-main {
  background: #fff;
}

.mypage-layout {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 4rem;
  max-width: var(--container-width);
  margin: 0 auto;
  padding: 4.6rem var(--container-pad) 8rem;
}

.mypage-sidebar {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 27.4rem;
  min-height: 42.4rem;
  padding: 3.1rem 0 2.4rem;
  background: #e84242;
  border-radius: 0 3rem 3rem 0;
}

.mypage-sidebar__title {
  margin: 0 0 2.4rem;
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 2.1rem;
  color: #fff;
  text-align: center;
}

.mypage-sidebar__nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.8rem;
}

.mypage-sidebar__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.2rem;
  width: 100%;
  min-height: 6.4rem;
  padding: 1.4rem 2.4rem 1.4rem 4.2rem;
  border: 1px solid #e84242;
  background: #e84242;
  font-family: inherit;
  font-size: 2.4rem;
  font-weight: 500;
  line-height: 3.3rem;
  color: #fff;
  text-align: left;
  cursor: pointer;
  -webkit-transition: background 0.2s ease, border-color 0.2s ease;
  transition: background 0.2s ease, border-color 0.2s ease;
}

.mypage-sidebar__item:hover {
  background: #d63a3a;
  border-color: #d63a3a;
}

.mypage-sidebar__item--active {
  background: #c22e2e;
  border-color: #c22e2e;
}

.mypage-sidebar__item--logout {
  width: 100%;
}

.mypage-sidebar__icon {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 3.3rem;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}

.mypage-sidebar__icon--logout {
  width: 3.6rem;
}

.mypage-content {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
  max-width: 56.8rem;
  margin: 0 auto;
}

.mypage-form {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 3.3rem;
}

.mypage-form__section {
  width: 100%;
}

.mypage-form__heading {
  margin: 0 0 2.4rem;
  font-size: 3.2rem;
  font-weight: 500;
  line-height: 2.1rem;
  color: #1e1e1e;
  text-align: center;
}

.mypage-form__table {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 2.4rem;
  padding: 1.6rem 3.2rem 2.4rem;
  background: #fff;
}

.mypage-form__group-label {
  margin: 0;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.8rem;
  color: #3c3c3c;
}

.mypage-form__row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.4rem;
}

.mypage-form__label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.4rem;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.8rem;
  color: #3c3c3c;
}

.mypage-form__required {
  font-weight: 700;
  color: #b80000;
}

.mypage-form__hint {
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.05rem;
  color: #343434;
}

.mypage-form__input,
.mypage-form__select {
  width: 100%;
  max-width: 50.2rem;
  height: 4rem;
  padding: 0 0.9rem;
  border: 1px solid #ccc;
  border-radius: 0.3rem;
  background: #f7f7f7;
  font-family: inherit;
  font-size: 1.4rem;
  line-height: 2.5rem;
  color: #333;
}

.mypage-form__input::-webkit-input-placeholder {
  color: #878787;
}

.mypage-form__input::-moz-placeholder {
  color: #878787;
}

.mypage-form__input:-ms-input-placeholder {
  color: #878787;
}

.mypage-form__input::-ms-input-placeholder {
  color: #878787;
}

.mypage-form__input::placeholder {
  color: #878787;
}

.mypage-form__select-wrap {
  position: relative;
  max-width: 50.2rem;
}

.mypage-form__select {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  padding-right: 3rem;
  color: #767676;
  cursor: pointer;
}

.mypage-form__select-arrow {
  position: absolute;
  top: 50%;
  right: 1.2rem;
  width: 1rem;
  height: 0.8rem;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  pointer-events: none;
}

.mypage-form__password-fields {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 2.5rem;
  max-width: 50.4rem;
  margin: 0 auto;
}

.mypage-form__pw-field {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.7rem;
  height: 3.9rem;
  padding: 0 1rem;
  border: 1px solid #c4c4c4;
  background: #f7f7f7;
  cursor: text;
}

.mypage-form__pw-field--code {
  position: relative;
  padding-right: 0.6rem;
}

.mypage-form__pw-icon {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 1.2rem;
  height: 1.2rem;
  -o-object-fit: contain;
     object-fit: contain;
}

.mypage-form__pw-input {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
  height: 100%;
  padding: 0;
  border: none;
  background: transparent;
  font-size: 1.4rem;
  line-height: normal;
  color: #333;
}

.mypage-form__pw-input--code {
  padding-right: 6.8rem;
}

.mypage-form__pw-input::-webkit-input-placeholder {
  color: #aaa;
}

.mypage-form__pw-input::-moz-placeholder {
  color: #aaa;
}

.mypage-form__pw-input:-ms-input-placeholder {
  color: #aaa;
}

.mypage-form__pw-input::-ms-input-placeholder {
  color: #aaa;
}

.mypage-form__pw-input::placeholder {
  color: #aaa;
}

.mypage-form__code-btn {
  position: absolute;
  top: 50%;
  right: 0.4rem;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-width: 5.7rem;
  height: 2.4rem;
  padding: 0 0.6rem;
  border: none;
  border-radius: 9.9rem;
  background: #e84242;
  font-family: inherit;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.4rem;
  color: #fff;
  cursor: pointer;
}

.mypage-form__code-btn:hover {
  opacity: 0.9;
}

.mypage-form__consent {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.5rem;
  max-width: 50.4rem;
  margin: 0 auto;
}

.mypage-form__checkbox-label {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.4rem;
  cursor: pointer;
}

.mypage-form__checkbox {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.mypage-form__checkbox-box {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 1.6rem;
  height: 1.6rem;
  border: 2px solid #e84242;
  border-radius: 0.3rem;
  background: #fff;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 1.4rem 1.4rem;
}

.mypage-form__checkbox:checked + .mypage-form__checkbox-box {
  background-color: #e84242;
  background-image: url("../img/icon-contact-checkbox-check.png");
}

.mypage-form__checkbox-text {
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 2.1rem;
  color: #3c3c3c;
}

.mypage-form__policy-link {
  color: #e84242;
  text-decoration: underline;
  text-underline-offset: 0.2rem;
}

.mypage-form__policy-link:hover {
  opacity: 0.85;
}

.mypage-form__submit-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  max-width: 50.4rem;
  margin: 0 auto;
}

.mypage-form__submit {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 24rem;
  height: 4rem;
  border: 1px solid #e84242;
  border-radius: 9.9rem;
  background: #e84242;
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1.4rem;
  letter-spacing: 0.2em;
  color: #fff;
  cursor: pointer;
  -webkit-transition: opacity 0.2s ease;
  transition: opacity 0.2s ease;
}

.mypage-form__submit:hover {
  opacity: 0.9;
}

@media (max-width: 991px) {
  .mypage-layout {
    gap: 2.4rem;
    padding-left: 2rem;
    padding-right: 2rem;
  }

  .mypage-sidebar {
    width: 24rem;
  }

  .mypage-sidebar__item {
    padding-left: 2.4rem;
    font-size: 2rem;
  }
}

@media (max-width: 767px) {
  .mypage-layout {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    padding: 3.2rem 2rem 6rem;
  }

  .mypage-sidebar {
    width: 100%;
    min-height: 0;
    border-radius: 1.6rem;
    padding: 2.4rem 0 1.6rem;
  }

  .mypage-sidebar__title {
    margin-bottom: 1.6rem;
    font-size: 2.4rem;
  }

  .mypage-sidebar__item {
    min-height: 5.2rem;
    padding: 1rem 2rem;
    font-size: 1.8rem;
    line-height: 2.4rem;
  }

  .mypage-content {
    max-width: none;
  }

  .mypage-form__heading {
    font-size: 2.4rem;
    margin-bottom: 1.6rem;
  }

  .mypage-form__table {
    padding: 1.6rem 0 2rem;
  }

  .mypage-form__submit {
    width: 100%;
	padding: 0 2rem;
    max-width: 24rem;
  }
}

/* =====================================================================
   マイページ・予約履歴（Figma 2:3649）
   ===================================================================== */
.page-mypage-history .mypage-layout--history {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}

.mypage-content--history {
  max-width: none;
  width: 100%;
}

.mypage-history__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 3.2rem;
  width: 100%;
}

.order-card {
  border: 1px solid #dadada;
  background: #fff;
}

.order-card__head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.6rem 3.2rem;
  min-height: 7rem;
  padding: 2.3rem 2.7rem;
}

.order-card__meta {
  margin: 0;
  font-size: 1.6rem;
  line-height: 2.4rem;
  color: #111;
}

.order-card__meta strong {
  font-weight: 700;
}

.order-card__total {
  margin: 0 0 0 auto;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 2.4rem;
  color: #111;
  text-align: right;
}

.order-card__total small {
  font-size: 1.2rem;
  font-weight: 700;
}

.order-card__panel {
  padding: 2.1rem 2.7rem 2.4rem;
  background: #fff;
  border-top: 1px solid #f1ecd5;
}

.order-card__item {
  display: grid;
  grid-template-columns: 11.9rem minmax(0, 1fr) auto;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.6rem 2rem;
  min-height: 9.5rem;
}

.order-card__thumb {
  width: 11.9rem;
  height: 9.5rem;
  -o-object-fit: cover;
     object-fit: cover;
  background: #fff;
}

.order-card__name {
  margin: 0;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 2.4rem;
  color: #212121;
}

.order-card__price {
  margin: 0;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 2rem;
  color: #000;
  white-space: nowrap;
}

.order-card__divider {
  margin: 1.6rem 0;
  border: none;
  border-top: 1px solid #dadada;
}

.order-card__details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem 15.2rem;
  margin: 2rem 0 1.6rem;
  padding: 0;
}

.order-card__details--compact {
  grid-template-columns: minmax(0, 1fr);
  gap: 1rem;
}

.order-card__detail {
  margin: 0;
  font-size: 1.4rem;
  line-height: 2.4rem;
  color: #111;
}

.order-card__detail dt {
  display: inline;
  font-weight: 400;
}

.order-card__detail dt::after {
  content: "：";
}

.order-card__detail dd {
  display: inline;
  margin: 0;
  font-weight: 400;
}

.order-card__detail--full {
  grid-column: 1 / -1;
}

.order-card__request {
  margin: 0;
  font-size: 1.4rem;
  line-height: 2.4rem;
  color: #111;
}

.order-card__request strong {
  font-weight: 700;
}

.order-card__foot {
  position: relative;
  min-height: 22.7rem;
  padding: 2.4rem 2.7rem 2.8rem;
  background: #fff;
  border-top: 1px solid #f1ecd5;
}

.order-card__customer {
  max-width: calc(100% - 16rem);
  font-size: 1.4rem;
  line-height: 2.4rem;
  color: #111;
}

.order-card__customer p {
  margin: 0;
}

.order-card__customer-title {
  margin: 0 0 0.4rem;
  font-weight: 700;
}

.order-card__btn {
  position: absolute;
  right: 2.7rem;
  bottom: 2.8rem;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: 3.3rem;
  padding: 0 1.6rem;
  border-radius: 9.9rem;
  font-family: inherit;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 2.3rem;
  letter-spacing: 0.07rem;
  cursor: pointer;
  -webkit-transition: opacity 0.2s ease;
  transition: opacity 0.2s ease;
}

.order-card__btn--cancel {
  min-width: 13.3rem;
  border: 2px solid #e84242;
  background: #fff;
  color: #e84242;
}

.order-card__btn--cancel:hover {
  opacity: 0.85;
}

.order-card__btn--pending,
.order-card__btn--done {
  min-width: 8.8rem;
  border: 2px solid #bcbdc2;
  background: #fff;
  color: #bcbdc2;
  cursor: default;
}

@media (max-width: 991px) {
  .order-card__details {
    gap: 1rem 4rem;
  }
}

@media (max-width: 767px) {
  .order-card__head {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
  }

  .order-card__total {
    margin-left: 0;
    text-align: left;
  }

  .order-card__item {
    grid-template-columns: 9rem minmax(0, 1fr);
    grid-template-rows: auto auto;
  }

  .order-card__thumb {
    width: 9rem;
    height: 7.2rem;
    grid-row: 1 / 3;
  }

  .order-card__price {
    grid-column: 2;
    justify-self: start;
  }

  .order-card__details {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.8rem;
  }

  .order-card__foot {
    min-height: 0;
    padding-bottom: 8rem;
  }

  .order-card__customer {
    max-width: none;
  }

  .order-card__btn {
    right: 2rem;
    bottom: 2rem;
  }
}

/* =====================================================================
   マイページ・カート（Figma 2:3755）
   ===================================================================== */
.page-mypage-cart .mypage-layout--cart {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}

.mypage-content--cart {
  max-width: none;
  width: 100%;
}

.mypage-cart {
  width: 100%;
  max-width: 92.9rem;
}

.mypage-cart__table-wrap {
  border: 1px solid #e0e0e0;
  background: #fff;
  border-radius: 3rem;
  overflow: hidden;
}

.mypage-cart__title {
  margin: 0;
  padding: 0;
  height: 5rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  background: #e84242;
  border-radius: 3rem 3rem 0 0;
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 2.64rem;
  color: #fff;
  text-align: center;
}

.mypage-cart__table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.mypage-cart__columns th {
  height: 10rem;
  padding: 0 1.2rem;
  background: #f7f7f7;
  border-bottom: 1px solid #e0e0e0;
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 2.64rem;
  color: #7d7d7d;
  text-align: center;
  vertical-align: middle;
}

.mypage-cart__col-check {
  width: 5.6rem;
}

.mypage-cart__col-name {
  width: auto;
  text-align: left;
  padding-left: 2rem;
}

.mypage-cart__col-unit {
  width: 13rem;
}

.mypage-cart__col-subtotal {
  width: 11rem;
}

.mypage-cart__col-action {
  width: 10rem;
}

.mypage-cart__row td {
  padding: 2.4rem 1.2rem;
  border-bottom: 1px solid #e0e0e0;
  vertical-align: middle;
  font-size: 1.6rem;
  line-height: 3.2rem;
  color: #333;
  text-align: center;
}

.mypage-cart__row:last-child td {
  border-bottom: none;
}

.mypage-cart__cell-check {
  width: 5.6rem;
}

.mypage-cart__check-label {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  cursor: pointer;
}

.mypage-cart__checkbox {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.mypage-cart__checkbox-box {
  display: block;
  width: 1.4rem;
  height: 1.4rem;
  border: 1px solid #000;
  background: #fff;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 1.3rem 1.3rem;
}

.mypage-cart__checkbox:checked + .mypage-cart__checkbox-box {
  border-color: #e84242;
  background-color: #e84242;
  background-image: url("../img/icon-contact-checkbox-check.png");
}

.mypage-cart__cell-product {
  text-align: left;
  padding-left: 2rem;
  padding-right: 2rem;
}

.mypage-cart__cell-product {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.6rem;
}

.mypage-cart__thumb {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 10.8rem;
  height: 10.8rem;
  border-radius: 0.4rem;
  -o-object-fit: cover;
     object-fit: cover;
  background: #c4c4c4;
}

.mypage-cart__product-name {
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 2.4rem;
  color: #212121;
  text-align: left;
}

.mypage-cart__cell-unit,
.mypage-cart__cell-subtotal {
  letter-spacing: 0.07rem;
  white-space: nowrap;
}

.mypage-cart__delete {
  min-width: 8.5rem;
  height: 3.4rem;
  padding: 0 1.2rem;
  border: 1px solid #cbcbcb;
  background: #f7f7f7;
  font-family: inherit;
  font-size: 1.4rem;
  line-height: 2rem;
  color: #333;
  letter-spacing: 0.07rem;
  cursor: pointer;
  -webkit-transition: opacity 0.2s ease;
  transition: opacity 0.2s ease;
}

.mypage-cart__delete:hover {
  opacity: 0.85;
}

.mypage-cart__toolbar {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 2rem;
  margin-top: 4rem;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.mypage-cart__toolbar-left {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1.1rem;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.mypage-cart__btn {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: 3.3rem;
  padding: 0 1.6rem;
  border-radius: 9.9rem;
  font-family: inherit;
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 3.2rem;
  letter-spacing: 0.07rem;
  text-decoration: none;
  cursor: pointer;
  -webkit-transition: opacity 0.2s ease;
  transition: opacity 0.2s ease;
}

.mypage-cart__btn--empty {
  min-width: 12.3rem;
  border: none;
  background: #e84242;
  color: #fff;
}

.mypage-cart__btn--select-all {
  min-width: 12.3rem;
  border: 1px solid #e84242;
  background: #fff;
  color: #e84242;
}

.mypage-cart__btn--empty:hover,
.mypage-cart__btn--select-all:hover {
  opacity: 0.9;
}

.mypage-cart__total-box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  min-width: 43.9rem;
  max-width: 100%;
  height: 4.5rem;
  border: 1px solid #e0e0e0;
  background: #fff;
}

.mypage-cart__total-label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  width: 16.1rem;
  padding: 0 1.2rem;
  border-right: 1px solid #cbcbcb;
  background: #f7f7f7;
  font-size: 1.4rem;
  line-height: 2rem;
  color: #333;
  letter-spacing: 0.07rem;
}

.mypage-cart__total-value {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  padding: 0 1.6rem;
  font-size: 1.6rem;
  line-height: 3.2rem;
  color: #333;
  letter-spacing: 0.07rem;
}

.mypage-cart__terms {
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 1rem;
  margin-top: 2.4rem;
  cursor: pointer;
  justify-content: end;
}

.mypage-cart__terms-input {
    width: 1.4rem;
    height: 1.4rem;
    margin-top: 0.3rem;
    border: 1px solid #000;

}

.mypage-cart__terms-box {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 1.4rem;
  height: 1.4rem;
  margin-top: 0.3rem;
  border: 1px solid #000;
  background: #fff;
}

.mypage-cart__terms-text {
  font-size: 1.4rem;
  line-height: 2rem;
  color: #000;
}

.mypage-cart__terms-link {
  color: #e84242;
  text-decoration: underline;
  text-underline-offset: 0.2rem;
}

.mypage-cart__terms-link:hover {
  opacity: 0.85;
}

.mypage-cart__checkout {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  gap: 1.6rem;
  margin-top: 2.4rem;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.mypage-cart__btn--browse {
  min-width: 20.8rem;
  height: 5rem;
  border: none;
  background: #898989;
  font-size: 1.4rem;
  line-height: 2.31rem;
  letter-spacing: 0.072rem;
  color: #fff;
}

.mypage-cart__btn--pay {
  min-width: 20.8rem;
  height: 5rem;
  border: none;
  background: #e84242;
  font-size: 1.4rem;
  line-height: 2.31rem;
  letter-spacing: 0.072rem;
  color: #fff;
}

.mypage-cart__btn--browse:hover,
.mypage-cart__btn--pay:hover {
  opacity: 0.9;
}

@media (max-width: 991px) {
  .mypage-cart__total-box {
    min-width: 0;
    width: 100%;
  }
  .mypage-cart__columns th{
	  height: auto;
	  padding: 1.2rem;
  }
}

@media (max-width: 767px) {
  .mypage-cart__title {
    border-radius: 1.6rem 1.6rem 0 0;
    font-size: 1.4rem;
  }

  .mypage-cart__table,
  .mypage-cart__table thead,
  .mypage-cart__table tbody,
  .mypage-cart__table th,
  .mypage-cart__table td,
  .mypage-cart__table tr {
    display: block;
    width: 100%;
  }

  .mypage-cart__columns {
    display: none;
  }

  .mypage-cart__row {
    border-bottom: 1px solid #e0e0e0;
    padding: 1.6rem 0;
  }

  .mypage-cart__row td {
    display: block;
    padding: 0.6rem 1.6rem;
    border: none;
    text-align: left;
  }

  .mypage-cart__cell-product {
    padding-bottom: 1.2rem;
  }

  .mypage-cart__cell-unit::before {
    content: "単価（税込）：";
    color: #7d7d7d;
  }

  .mypage-cart__cell-subtotal::before {
    content: "小計：";
    color: #7d7d7d;
  }

  .mypage-cart__cell-action {
    padding-top: 1rem;
  }

  .mypage-cart__toolbar {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
  }

  .mypage-cart__checkout {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }

  .mypage-cart__btn--browse,
  .mypage-cart__btn--pay {
    width: 100%;
  }
}

/* =====================================================================
   プライバシーポリシー（Figma 2:3819）
   ===================================================================== */
.page-privacy .privacy-main {
  background: #fff;
}

.page-privacy .privacy-section {
  padding: 4.6rem 0 8rem;
}

.privacy-container {
  max-width: 112.2rem;
  margin: 0 auto;
  padding: 0 8rem;
}

.privacy-page-title {
  margin: 0 0 4.6rem;
  font-size: 3.6rem;
  font-weight: 700;
  line-height: 1.2;
  color: #333;
  text-align: center;
}

.privacy-intro {
  margin: 0 0 3.2rem;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 2rem;
  color: #000;
}

.privacy-article {
  margin-bottom: 3.2rem;
}

.privacy-article:last-child {
  margin-bottom: 0;
}

.privacy-article__heading {
  margin: 0 0 1.6rem;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 2rem;
  color: #000;
}

.privacy-article p {
  margin: 0 0 1.6rem;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 2rem;
  color: #000;
}

.privacy-article p:last-child {
  margin-bottom: 0;
}

.privacy-article__subheading {
  margin: 1.6rem 0 0.8rem;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 2rem;
  color: #000;
}

.privacy-list {
  margin: 0 0 1.6rem;
  padding-left: 2rem;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 2rem;
  color: #000;
}

.privacy-list li {
  margin-bottom: 0.4rem;
}

.privacy-list li:last-child {
  margin-bottom: 0;
}

.privacy-list--ordered {
  list-style-type: decimal;
}

.privacy-link {
  color: #000;
  text-decoration: underline;
}

.privacy-link:hover {
  color: #e84242;
}

@media (max-width: 991px) {
  .privacy-container {
    padding: 0 2.4rem;
  }
}

@media (max-width: 767px) {
  .page-privacy .privacy-section {
    padding: 3.2rem 0 5.6rem;
  }

  .privacy-page-title {
    margin-bottom: 3.2rem;
    font-size: 2.4rem;
  }

  .privacy-intro {
    margin-bottom: 2.4rem;
  }

  .privacy-article {
    margin-bottom: 2.4rem;
  }

  .privacy-article__heading {
    font-size: 1.5rem;
  }
}

/* =====================================================================
   利用規約（Figma 2:3847）
   ===================================================================== */
.page-terms .terms-main {
  background: #fff;
}

.page-terms .terms-section {
  padding: 4.6rem 0 8rem;
}

.terms-container {
  max-width: 112.2rem;
  margin: 0 auto;
  padding: 0 8rem;
}

.terms-page-title {
  margin: 0 0 4.6rem;
  font-size: 3.6rem;
  font-weight: 700;
  line-height: 1.2;
  color: #333;
  text-align: center;
}

.terms-intro {
  margin: 0 0 3.2rem;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 2rem;
  color: #000;
}

.terms-article {
  margin-bottom: 3.2rem;
}

.terms-article:last-child {
  margin-bottom: 0;
}

.terms-article__heading {
  margin: 0 0 1.6rem;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 2rem;
  color: #000;
}

.terms-article p {
  margin: 0 0 1.6rem;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 2rem;
  color: #000;
}

.terms-article p:last-child {
  margin-bottom: 0;
}

.terms-list {
  margin: 0 0 1.6rem;
  padding-left: 2rem;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 2rem;
  color: #000;
  list-style-type: disc;
}

.terms-list li {
  margin-bottom: 0.4rem;
}

.terms-list li:last-child {
  margin-bottom: 0;
}

@media (max-width: 991px) {
  .terms-container {
    padding: 0 2.4rem;
  }
}

@media (max-width: 767px) {
  .page-terms .terms-section {
    padding: 3.2rem 0 5.6rem;
  }

  .terms-page-title {
    margin-bottom: 3.2rem;
    font-size: 2.4rem;
  }

  .terms-intro {
    margin-bottom: 2.4rem;
  }

  .terms-article {
    margin-bottom: 2.4rem;
  }

  .terms-article__heading {
    font-size: 1.5rem;
  }
}

/* =====================================================================
   特定商取引法に基づく表記（Figma 2:3872）
   ===================================================================== */
.page-tokushoho .tokushoho-main {
  background: #fff;
}

.page-tokushoho .tokushoho-section {
  padding: 4.6rem 0 8rem;
}

.tokushoho-container {
  max-width: 112.2rem;
  margin: 0 auto;
  padding: 0 8rem;
}

.tokushoho-page-title {
  margin: 0 0 2.4rem;
  font-size: 3.6rem;
  font-weight: 700;
  line-height: 1.2;
  color: #333;
  text-align: center;
}

.tokushoho-note {
  margin: 0 0 3.2rem;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 2rem;
  color: #000;
}

.tokushoho-block {
  margin-bottom: 3.2rem;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 2rem;
  color: #000;
}

.tokushoho-block p {
  margin: 0 0 0.4rem;
}

.tokushoho-block p:last-child {
  margin-bottom: 0;
}

.tokushoho-label {
  margin-top: 1.6rem;
  font-weight: 700;
}

.tokushoho-block .tokushoho-label:first-child {
  margin-top: 0;
}

.tokushoho-article {
  margin-bottom: 3.2rem;
}

.tokushoho-article:last-child {
  margin-bottom: 0;
}

.tokushoho-article__heading {
  margin: 0 0 1.6rem;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 2rem;
  color: #000;
}

.tokushoho-article p {
  margin: 0;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 2rem;
  color: #000;
}

.tokushoho-list {
  margin: 0;
  padding-left: 2rem;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 2rem;
  color: #000;
  list-style-type: disc;
}

.tokushoho-list li {
  margin-bottom: 0.4rem;
}

.tokushoho-list li:last-child {
  margin-bottom: 0;
}

.tokushoho-list--plain {
  padding-left: 0;
  list-style: none;
}

.tokushoho-link {
  color: #000;
  text-decoration: underline;
}

.tokushoho-link:hover {
  color: #e84242;
}

@media (max-width: 991px) {
  .tokushoho-container {
    padding: 0 2.4rem;
  }
}

@media (max-width: 767px) {
  .page-tokushoho .tokushoho-section {
    padding: 3.2rem 0 5.6rem;
  }

  .tokushoho-page-title {
    margin-bottom: 2rem;
    font-size: 2.4rem;
  }

  .tokushoho-note {
    margin-bottom: 2.4rem;
  }

  .tokushoho-block {
    margin-bottom: 2.4rem;
  }

  .tokushoho-article {
    margin-bottom: 2.4rem;
  }

  .tokushoho-article__heading {
    font-size: 1.5rem;
  }
}

/* =====================================================================
   旅行条件書（Figma 2:3896）
   ===================================================================== */
.page-travel-terms .travel-terms-main {
  background: #fff;
}

.page-travel-terms .travel-terms-section {
  padding: 4.6rem 0 8rem;
}

.travel-terms-container {
  max-width: 112.2rem;
  margin: 0 auto;
  padding: 0 8rem;
}

.travel-terms-page-title {
  margin: 0 0 4.6rem;
  font-size: 3.6rem;
  font-weight: 700;
  line-height: 1.2;
  color: #333;
  text-align: center;
}

.travel-terms-intro {
  margin: 0 0 3.2rem;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 2rem;
  color: #000;
}

.travel-terms-intro p {
  margin: 0 0 1.6rem;
}

.travel-terms-intro p:last-child {
  margin-bottom: 0;
}

.travel-terms-article {
  margin-bottom: 3.2rem;
}

.travel-terms-article:last-child {
  margin-bottom: 0;
}

.travel-terms-article__heading {
  margin: 0 0 1.6rem;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 2rem;
  color: #000;
}

.travel-terms-article p {
  margin: 0 0 1.6rem;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 2rem;
  color: #000;
}

.travel-terms-article p:last-child {
  margin-bottom: 0;
}

.travel-terms-subheading {
  margin: 0 0 0.8rem;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 2rem;
  color: #000;
}

.travel-terms-list {
  margin: 0 0 1.6rem;
  padding-left: 2rem;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 2rem;
  color: #000;
}

.travel-terms-list li {
  margin-bottom: 0.4rem;
}

.travel-terms-list li:last-child {
  margin-bottom: 0;
}

.travel-terms-list--ordered {
  list-style-type: decimal;
}

@media (max-width: 991px) {
  .travel-terms-container {
    padding: 0 2.4rem;
  }
}

@media (max-width: 767px) {
  .page-travel-terms .travel-terms-section {
    padding: 3.2rem 0 5.6rem;
  }

  .travel-terms-page-title {
    margin-bottom: 3.2rem;
    font-size: 2.4rem;
  }

  .travel-terms-intro {
    margin-bottom: 2.4rem;
  }

  .travel-terms-article {
    margin-bottom: 2.4rem;
  }

  .travel-terms-article__heading {
    font-size: 1.5rem;
  }
}

/* =====================================================================
   標識・約款（Figma 2:3920）
   ===================================================================== */
.page-signage-terms .signage-terms-main {
  background: #fff;
}

.page-signage-terms .signage-terms-section {
  padding: 4.6rem 0 8rem;
}

.signage-terms-container {
  max-width: 112.2rem;
  margin: 0 auto;
  padding: 0 8rem;
}

.signage-terms-page-title {
  margin: 0 0 4.6rem;
  font-size: 3.6rem;
  font-weight: 700;
  line-height: 1.2;
  color: #333;
  text-align: center;
}

.signage-terms-sections {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 4.9rem;
}

.signage-terms-block__heading {
  margin: 0 0 0.4rem;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 2rem;
  color: #000;
}

.signage-terms-block__body {
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 2rem;
  color: #000;
}

.signage-terms-block__body p {
  margin: 0 0 1.6rem;
}

.signage-terms-block__body p:last-child {
  margin-bottom: 0;
}

.signage-terms-list {
  margin: 0;
  padding-left: 2rem;
  list-style-type: disc;
}

.signage-terms-list li {
  margin-bottom: 0.4rem;
}

.signage-terms-list li:last-child {
  margin-bottom: 0;
}

.signage-terms-list--ordered {
  list-style-type: decimal;
  padding-left: 2rem;
}

.signage-terms-list--nested {
  margin-top: 0.8rem;
  list-style-type: disc;
}

.signage-terms-link {
  color: #000;
  text-decoration: underline;
}

.signage-terms-link:hover {
  color: #e84242;
}

@media (max-width: 991px) {
  .signage-terms-container {
    padding: 0 2.4rem;
  }
}

@media (max-width: 767px) {
  .page-signage-terms .signage-terms-section {
    padding: 3.2rem 0 5.6rem;
  }

  .signage-terms-page-title {
    margin-bottom: 3.2rem;
    font-size: 2.4rem;
  }

  .signage-terms-sections {
    gap: 3.2rem;
  }

  .signage-terms-block__heading {
    font-size: 1.5rem;
  }
}

/* =====================================================================
   全站交互与显示效果（悬浮放大、卡片动效、滚动入场）
   ===================================================================== */

:root {
  --ease-smooth: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --duration-hover: 0.4s;
  --img-zoom-scale: 1.08;
}

/* ── 顶栏滚动 ── */
.header {
  -webkit-transition: -webkit-box-shadow 0.3s var(--ease-smooth);
  transition: -webkit-box-shadow 0.3s var(--ease-smooth);
  -o-transition: box-shadow 0.3s var(--ease-smooth);
  transition: box-shadow 0.3s var(--ease-smooth);
  transition: box-shadow 0.3s var(--ease-smooth), -webkit-box-shadow 0.3s var(--ease-smooth);
}

.header--scrolled {
  -webkit-box-shadow: 0 0.4rem 1.6rem rgba(0, 0, 0, 0.12);
          box-shadow: 0 0.4rem 1.6rem rgba(0, 0, 0, 0.12);
}

/* ── 列表图片悬浮放大（容器裁切 + 图片 scale）── */
.plan-card__media img,
.news-card-img,
.news-list-card__img,
.theme-img,
.footer-cta-bg-img,
.tour-detail-gallery__thumb img {
  -webkit-transition: -webkit-transform var(--duration-hover) var(--ease-smooth);
  transition: -webkit-transform var(--duration-hover) var(--ease-smooth);
  -o-transition: transform var(--duration-hover) var(--ease-smooth);
  transition: transform var(--duration-hover) var(--ease-smooth);
  transition: transform var(--duration-hover) var(--ease-smooth), -webkit-transform var(--duration-hover) var(--ease-smooth);
  will-change: transform;
}

.plan-card:hover .plan-card__media img,
.news-card:hover .news-card-img,
.news-list-card:hover .news-list-card__img,
.theme-item:hover .theme-img,
.footer-cta-item:hover .footer-cta-bg-img,
.tour-detail-gallery__thumb:hover img {
  -webkit-transform: scale(var(--img-zoom-scale));
          transform: scale(var(--img-zoom-scale));
}

.theme-item {
  overflow: hidden;
  border-radius: 0.4rem;
  -webkit-transition: -webkit-box-shadow 0.25s var(--ease-smooth);
  transition: -webkit-box-shadow 0.25s var(--ease-smooth);
  -o-transition: box-shadow 0.25s var(--ease-smooth);
  transition: box-shadow 0.25s var(--ease-smooth);
  transition: box-shadow 0.25s var(--ease-smooth), -webkit-box-shadow 0.25s var(--ease-smooth);
}

.theme-item:hover {
  -webkit-box-shadow: 0 0.6rem 1.6rem rgba(0, 0, 0, 0.12);
          box-shadow: 0 0.6rem 1.6rem rgba(0, 0, 0, 0.12);
}

/* ── 行程 / 资讯卡片整体悬浮 ── */
.plan-card,
.news-card,
.news-list-card {
  -webkit-transition: -webkit-box-shadow 0.3s var(--ease-smooth), -webkit-transform 0.3s var(--ease-smooth);
  transition: -webkit-box-shadow 0.3s var(--ease-smooth), -webkit-transform 0.3s var(--ease-smooth);
  -o-transition: box-shadow 0.3s var(--ease-smooth), transform 0.3s var(--ease-smooth);
  transition: box-shadow 0.3s var(--ease-smooth), transform 0.3s var(--ease-smooth);
  transition: box-shadow 0.3s var(--ease-smooth), transform 0.3s var(--ease-smooth), -webkit-box-shadow 0.3s var(--ease-smooth), -webkit-transform 0.3s var(--ease-smooth);
}

.plan-card:hover,
.news-card:hover,
.news-list-card:hover {
  -webkit-transform: translateY(-0.5rem);
          transform: translateY(-0.5rem);
  -webkit-box-shadow: 0 1rem 2.4rem rgba(0, 0, 0, 0.14);
          box-shadow: 0 1rem 2.4rem rgba(0, 0, 0, 0.14);
}

.plan-card__btn,
.area-search-btn,
.search-submit-btn,
.footer-cta-btn,
.nav-register {
  -webkit-transition: opacity 0.2s, -webkit-transform 0.2s var(--ease-smooth), -webkit-box-shadow 0.2s;
  transition: opacity 0.2s, -webkit-transform 0.2s var(--ease-smooth), -webkit-box-shadow 0.2s;
  -o-transition: opacity 0.2s, transform 0.2s var(--ease-smooth), box-shadow 0.2s;
  transition: opacity 0.2s, transform 0.2s var(--ease-smooth), box-shadow 0.2s;
  transition: opacity 0.2s, transform 0.2s var(--ease-smooth), box-shadow 0.2s, -webkit-transform 0.2s var(--ease-smooth), -webkit-box-shadow 0.2s;
}

.plan-card__btn:hover,
.area-search-btn:hover,
.search-submit-btn:hover,
.footer-cta-btn:hover,
.nav-register:hover {
  opacity: 1;
  -webkit-transform: translateY(-0.2rem);
          transform: translateY(-0.2rem);
}

.plans-filter {
  -webkit-transition: border-color 0.2s, color 0.2s, -webkit-transform 0.2s var(--ease-smooth), -webkit-box-shadow 0.2s;
  transition: border-color 0.2s, color 0.2s, -webkit-transform 0.2s var(--ease-smooth), -webkit-box-shadow 0.2s;
  -o-transition: border-color 0.2s, color 0.2s, transform 0.2s var(--ease-smooth), box-shadow 0.2s;
  transition: border-color 0.2s, color 0.2s, transform 0.2s var(--ease-smooth), box-shadow 0.2s;
  transition: border-color 0.2s, color 0.2s, transform 0.2s var(--ease-smooth), box-shadow 0.2s, -webkit-transform 0.2s var(--ease-smooth), -webkit-box-shadow 0.2s;
}

.plans-filter:hover {
  -webkit-transform: translateY(-0.2rem);
          transform: translateY(-0.2rem);
  -webkit-box-shadow: 0 0.2rem 0.8rem rgba(232, 66, 66, 0.15);
          box-shadow: 0 0.2rem 0.8rem rgba(232, 66, 66, 0.15);
}

.products-link {
  -webkit-transition: color 0.2s, -webkit-transform 0.2s var(--ease-smooth);
  transition: color 0.2s, -webkit-transform 0.2s var(--ease-smooth);
  -o-transition: color 0.2s, transform 0.2s var(--ease-smooth);
  transition: color 0.2s, transform 0.2s var(--ease-smooth);
  transition: color 0.2s, transform 0.2s var(--ease-smooth), -webkit-transform 0.2s var(--ease-smooth);
}

.products-link:hover {
  -webkit-transform: translateX(0.4rem);
          transform: translateX(0.4rem);
}

.footer-cta-item {
  -webkit-transition: -webkit-filter 0.3s var(--ease-smooth);
  transition: -webkit-filter 0.3s var(--ease-smooth);
  -o-transition: filter 0.3s var(--ease-smooth);
  transition: filter 0.3s var(--ease-smooth);
  transition: filter 0.3s var(--ease-smooth), -webkit-filter 0.3s var(--ease-smooth);
}

.footer-cta-item:hover {
  -webkit-filter: brightness(1.05);
          filter: brightness(1.05);
}

.tour-detail-gallery__thumb {
  cursor: pointer;
  overflow: hidden;
}

/* ── 滚动入场（由 site-interactions.js 添加 .reveal-on-scroll）── */
.reveal-on-scroll {
  opacity: 0;
  -webkit-transition: opacity 0.55s var(--ease-smooth);
  -o-transition: opacity 0.55s var(--ease-smooth);
  transition: opacity 0.55s var(--ease-smooth);
}

.reveal-on-scroll.is-revealed {
  opacity: 1;
}

/* 轮播内卡片错开入场 */
.plans-grid .reveal-on-scroll:nth-child(3n + 2),
.news-page-grid .reveal-on-scroll:nth-child(3n + 2) {
  -webkit-transition-delay: 0.08s;
       -o-transition-delay: 0.08s;
          transition-delay: 0.08s;
}

.plans-grid .reveal-on-scroll:nth-child(3n),
.news-page-grid .reveal-on-scroll:nth-child(3n) {
  -webkit-transition-delay: 0.16s;
       -o-transition-delay: 0.16s;
          transition-delay: 0.16s;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .reveal-on-scroll {
    opacity: 1;
    -webkit-transition: none;
    -o-transition: none;
    transition: none;
  }

  .plan-card__media img,
  .news-card-img,
  .news-list-card__img,
  .theme-img,
  .footer-cta-bg-img,
  .tour-detail-gallery__thumb img,
  .plan-card,
  .news-card,
  .news-list-card,
  .theme-item,
  .plans-filter,
  .products-link {
    -webkit-transition: none;
    -o-transition: none;
    transition: none;
  }

  .plan-card:hover,
  .news-card:hover,
  .news-list-card:hover,
  .plan-card:hover .plan-card__media img,
  .news-card:hover .news-card-img,
  .news-list-card:hover .news-list-card__img,
  .theme-item:hover .theme-img,
  .footer-cta-item:hover .footer-cta-bg-img {
    -webkit-transform: none;
            transform: none;
  }
}

/* =====================================================================
   首页告知弹窗（Figma 2:4610 / 2:4617）
   ===================================================================== */

body.home-modal-open {
  overflow: hidden;
}

.home-modal {
  position: fixed;
  inset: 0;
  z-index: 11000;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 2rem;
}

.home-modal[hidden] {
  display: none !important;
}

.home-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
}

.home-modal__dialog {
  position: relative;
  z-index: 1;
  width: 90rem;
  max-width: 100%;
  overflow: hidden;
  border-radius: 5rem;
  -webkit-box-shadow: 0 0.4rem 2.4rem rgba(0, 0, 0, 0.2);
          box-shadow: 0 0.4rem 2.4rem rgba(0, 0, 0, 0.2);
}

.home-modal__header {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-height: 6.4rem;
  padding: 1rem 6rem;
  background: var(--color-primary);
  border-radius: 5rem 5rem 0 0;
}

.home-modal__title {
  margin: 0;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 2.4rem;
  color: #fff;
  text-align: center;
}

.home-modal__close {
  position: absolute;
  top: 50%;
  right: 2.4rem;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 3.9rem;
  height: 3.9rem;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
}

.home-modal__close img {
  display: block;
  width: 3.9rem;
  height: 3.9rem;
}

.home-modal__body {
  background: #fff;
  border-radius: 0 0 5rem 5rem;
}

.home-modal__body--notice {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-height: 14.6rem;
  padding: 2.4rem 3rem 3.6rem;
}

.home-modal__body--confirm {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  min-height: 22rem;
  padding: 3.6rem 3rem 4rem;
}

.home-modal__text {
  margin: 0;
  font-size: 2.2rem;
  font-weight: 500;
  line-height: 3.5rem;
  color: #000;
  text-align: center;
}

.home-modal__text--single {
  margin-bottom: 3.2rem;
}

.home-modal__actions {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 4.5rem;
  width: 100%;
}

.home-modal__btn {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-width: 22.3rem;
  height: 5.1rem;
  padding: 1rem;
  border: none;
  border-radius: 9.9rem;
  font-family: inherit;
  font-size: 2.4rem;
  font-weight: 500;
  line-height: 3.5rem;
  color: #fff;
  text-align: center;
  cursor: pointer;
  -webkit-transition: opacity 0.2s;
       -o-transition: opacity 0.2s;
          transition: opacity 0.2s;
}

.home-modal__btn:hover {
  opacity: 0.9;
}

.home-modal__btn--yes {
  background: var(--color-primary);
}

.home-modal__btn--no {
  background: #8a8a8a;
}

@media (max-width: 991px) {
  .home-modal__dialog {
    border-radius: 3rem;
  }

  .home-modal__header {
    min-height: 5.6rem;
    padding: 1rem 5rem;
    border-radius: 3rem 3rem 0 0;
  }

  .home-modal__title {
    font-size: 2rem;
    line-height: 2.4rem;
  }

  .home-modal__close {
    right: 1.6rem;
    width: 3.2rem;
    height: 3.2rem;
  }

  .home-modal__close img {
    width: 3.2rem;
    height: 3.2rem;
  }

  .home-modal__body--notice {
    min-height: auto;
    padding: 2rem 2.4rem 2.8rem;
  }

  .home-modal__body--confirm {
    min-height: auto;
    padding: 2.4rem 2rem 3.2rem;
  }

  .home-modal__text {
    font-size: 1.8rem;
    line-height: 2.8rem;
  }

  .home-modal__text--single {
    margin-bottom: 2.4rem;
  }

  .home-modal__actions {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 1.6rem;
  }

  .home-modal__btn {
    width: 100%;
    max-width: 28rem;
    min-width: 0;
    height: 4.8rem;
    font-size: 2rem;
    line-height: 3rem;
  }
}
