/*
Theme Name: JTS Theme
Author: Koji
Version: 1.0
*/
/* ===== 超軽量リセット ===== */

*,
*::before,
*::after {
  box-sizing: border-box;
}

body, h1, h2, h3, h4, h5, h6, p, ul, li {
  margin: 0;
  padding: 0;
}

ul {
  list-style: none;
}

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

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

button {
  border: none;
  background: none;
  cursor: pointer;
}
body {
  line-height: 1.6;
  font-family: "Noto Sans JP", sans-serif;
}

h1, h2, h3, h4, h5 {
  font-weight: 700;
}

p {
  line-height: 1.7;
}

body{
  font-family:'Noto Sans JP',sans-serif;
  margin:0;

}

.container{
  max-width:1200px;
  margin:0 auto;
  padding:0 20px;
}



/* hero */
.hero{
  height:100vh;
  display:flex;
  align-items:center;
  color:#fff;
  position:relative;
}

.hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:url('https://picsum.photos/1600/900') center/cover;
}

.hero-inner{
  position:relative;
  display:flex;
  justify-content:space-between;
}

.hero-text h1{
  font-size:52px;
  line-height:1.3;
}

.badge{
  background:rgba(255,255,255,.2);
  padding:6px 14px;
  border-radius:999px;
}

.btn{
  padding:12px 20px;
  border-radius:999px;
  text-decoration:none;
}

.btn-white{
  background:#fff;
  color:#333;
}

.btn-green{
  background:#0f9d8a;
  color:#fff;
}

/* hero card */
.hero-card{
  width:360px;
  background:#fff;
  border-radius:20px;
  padding:25px;
  color:#333;
  box-shadow:0 20px 40px rgba(0,0,0,.15);
}

.plan-item__inner{
  border:2px solid #ddd;
  padding:15px;
  border-radius:12px;
  background:#f7f7f7;
}

.plan-item.active .plan-item__inner{
  border-color:#0f9d8a;
  background:#eef7f6;
}

.plan-item__price{
  font-size:26px;
  color:#0f9d8a;
  font-weight:bold;
}

/* =========================
   reason（完全リセット版）
========================= */

/* 親 */
.reason {
  padding: 100px 0;
  background: #f5f7f9;
}

/* 見出し */
.reason-head {
  text-align: center;
  margin-bottom: 50px;
}

.reason-head h2 {
  font-size: 32px;
  font-weight: 700;
}

.reason-head span {
  color: #0f9d8a;
}

.reason-head p {
  margin-top: 10px;
  color: #777;
  font-size: 14px;
}

/* グリッド */
.reason-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

/* カード */
.reason-card {
  background: #fff;
  padding: 28px 20px;
  border-radius: 16px;
  box-shadow: 0 10px 25px rgba(0,0,0,0.05);

  height: 220px; /* ←縦長防止 */
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

/* アイコン */
.reason-icon {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 12px;
}

.reason-icon i {
  font-size: 22px;
  color: #fff;
}

/* 色 */
.reason-icon.green { background: #0f9d8a; }
.reason-icon.orange { background: #f39c12; }
.reason-icon.red { background: #e74c3c; }

/* テキスト */
.reason-card h3 {
  font-size: 15px;
  margin-bottom: 6px;
}

.reason-card p {
  font-size: 13px;
  color: #666;
  line-height: 1.6;

  height: 40px;       /* ←高さ固定 */
  overflow: hidden;
  text-align: center;
}

/* SP */
@media(max-width:768px){
  .reason-grid {
    grid-template-columns: 1fr;
  }
}
.reason-icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;

  display: flex;
  align-items: center;
  justify-content: center;

  margin: 0 auto 16px; /* ←中央に来る */
}.reason-icon i {
  display: block;        /* ←これが効く */
  line-height: 1;        /* ←ズレ防止 */
  font-size: 22px;
  color: #fff;
}
.reason-card {
  text-align: center;
}

.reason-icon {
  flex-shrink: 0;  /* ←潰れ防止 */
}
.reason-icon i {
  transform: translateX(1px);
}
/* plan */
/* =========================
   人気プラン
========================= */
.plans{
  padding:100px 0;
  
    background: #fff;
}

.plans-head{
  margin-bottom:40px;
}

.plans-head h2{
  font-size:36px;
  font-weight:700;
}

.plans-head p{
  margin-top:10px;
  color:#777;
}

/* GRID */
.plans-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:30px;
}

/* CARD */
.plan-card{
  background:#fff;
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 10px 25px rgba(0,0,0,.05);
  transition:.3s;
}

.plan-card:hover{
  transform:translateY(-5px);
}

/* 画像 */
.plan-thumb{
  position:relative;
}

.plan-thumb img{
  width:100%;
  height:200px;
  object-fit:cover;
}

/* バッジ */
.badge{
  position:absolute;
  top:12px;
  padding:5px 10px;
  border-radius:999px;
  font-size:12px;
  background:#fff;
}

.badge.left{
  left:12px;
}

.badge.right{
  right:12px;
}

.badge.orange{
  background:#f39c12;
  color:#fff;
}

.badge.green{
  background:#0f9d8a;
  color:#fff;
}

/* body */
.plan-body{
  padding:18px;
}

.plan-meta{
  font-size:13px;
  color:#666;
  margin-bottom:10px;
}

/* タグ */
.plan-tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:15px;
}

.plan-tags span{
  background:#f0f0f0;
  padding:5px 10px;
  border-radius:999px;
  font-size:12px;
}

/* footer */
.plan-footer{
  display:flex;
  justify-content:space-between;
  align-items:center;
}

.price{
  color:#0f9d8a;
  font-weight:700;
}

.plan-footer a{
  font-size:13px;
  color:#0f9d8a;
  text-decoration:none;
}

/* ボタン */
.plans-btn{
  text-align:center;
  margin-top:40px;
}

.btn-outline{
  padding:12px 30px;
  border:2px solid #333;
  border-radius:999px;
  text-decoration:none;
  color:#333;
}

/* SP */
@media(max-width:768px){
  .plans-grid{
    grid-template-columns:1fr;
  }

  .plans-head h2{
    font-size:24px;
  }
}






.contact-cards {
  background: #eef5f7;
  padding: 80px 20px;
}

.contact-cards .container {
  max-width: 1280px;
  margin: 0 auto;
  display: flex;
  gap: 30px;
}

.contact-card {
  flex: 1;
  background: #fff;
  border-radius: 16px;
  padding: 30px 20px;
  text-align: center;
  box-shadow: 0 8px 20px rgba(0,0,0,0.05);
}

/* アイコン丸 */
.contact-card .icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 15px;
}

.contact-card .icon i {
  font-size: 24px;
  line-height: 1;
}

/* 色 */
.icon.green { background: #dff3ef; color: #2a9d8f; }
.icon.orange { background: #fff1e6; color: #f97316; }
.icon.lightgreen { background: #e7f7ec; color: #22c55e; }

/* テキスト */
.contact-card h3 {
  font-size: 16px;
  margin-bottom: 10px;
}

.contact-card .tel {
  font-size: 26px;
  font-weight: bold;
  color: #2a9d8f;
  margin-bottom: 5px;
}

.contact-card .sub {
  font-size: 13px;
  color: #777;
  margin-bottom: 10px;
}

/* リンク */
.contact-card .link {
  display: inline-flex;
  min-width: 180px;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  margin-top: 18px;
  padding: 11px 22px;
  border-radius: 8px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease,
    background-color 0.2s ease;
}

.contact-card .link.orange {
  background: #ff6b21;
  color: #fff;
  box-shadow: 0 6px 16px rgba(255, 107, 33, 0.22);
}

.contact-card .link.green {
  background: #06c755;
  color: #fff;
  box-shadow: 0 6px 16px rgba(6, 199, 85, 0.22);
}

.contact-card .link:hover {
  transform: translateY(-2px);
}

.contact-card .link.orange:hover {
  background: #e95b14;
  box-shadow: 0 9px 20px rgba(255, 107, 33, 0.3);
}

.contact-card .link.green:hover {
  background: #05b34c;
  box-shadow: 0 9px 20px rgba(6, 199, 85, 0.3);
}
/* ========================================
   観光ツアー詳細ページ
======================================== */

.tour-single-hero {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.tour-single-hero__code {
  display: inline-flex;
  margin: 0 0 12px;
  padding: 6px 13px;
  border: 1px solid rgba(255, 255, 255, 0.55);
  border-radius: 50px;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
}

.tour-single-label {
  margin: 0 0 8px;
  color: #0a9587;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
}

.tour-single-summary {
  padding: 80px 20px 45px;
  background: #fff;
}

.tour-single-summary__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(280px, 0.6fr);
  gap: 55px;
  align-items: end;
}

.tour-single-summary__heading h2 {
  margin: 0 0 15px;
  color: #152d33;
  font-size: 34px;
  line-height: 1.45;
}

.tour-single-summary__lead {
  margin: 0;
  color: #5d6f74;
  font-size: 15px;
  line-height: 1.9;
}

.tour-single-meta {
  display: grid;
  gap: 12px;
}

.tour-single-meta > div {
  padding: 17px 19px;
  border: 1px solid #dce5e4;
  border-radius: 11px;
  background: #f6faf9;
}

.tour-single-meta span,
.tour-single-meta strong {
  display: block;
}

.tour-single-meta span {
  margin-bottom: 6px;
  color: #718086;
  font-size: 11px;
}

.tour-single-meta span i {
  margin-right: 5px;
  color: #0a9587;
}

.tour-single-meta strong {
  color: #20373d;
  font-size: 15px;
}

.tour-single-gallery-section {
  padding: 30px 20px 80px;
  background: #fff;
}

.tour-single-gallery {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 16px;
}

.tour-single-gallery__item,
.tour-single-gallery__placeholder {
  overflow: hidden;
  height: 310px;
  margin: 0;
  border-radius: 14px;
  background: #e8efee;
}

.tour-single-gallery__item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.tour-single-gallery__item:hover img {
  transform: scale(1.035);
}

.tour-single-gallery__placeholder {
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: center;
  justify-content: center;
  color: #82908d;
}

.tour-single-gallery__placeholder i {
  font-size: 28px;
}

.tour-single-details {
  padding: 90px 20px;
  background: #f3f7f6;
}

.tour-single-details__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}

.tour-single-box {
  padding: 34px 34px 38px;
  border: 1px solid #dce5e4;
  border-radius: 16px;
  background: #fff;
}

.tour-single-box__head {
  display: flex;
  gap: 16px;
  align-items: center;
  margin-bottom: 27px;
}

.tour-single-box__head > span {
  display: flex;
  width: 55px;
  height: 55px;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  border-radius: 13px;
  background: #e5f6f3;
  color: #0a9587;
  font-size: 22px;
}

.tour-single-box__head h2 {
  margin: 0;
  color: #173138;
  font-size: 24px;
}

.tour-single-schedule {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.tour-single-schedule li {
  position: relative;
  display: grid;
  grid-template-columns: 18px 1fr;
  gap: 12px;
  min-height: 54px;
}

.tour-single-schedule li:not(:last-child)::after {
  position: absolute;
  top: 17px;
  bottom: -4px;
  left: 6px;
  width: 2px;
  background: #cfe5e1;
  content: "";
}

.tour-single-schedule__dot {
  position: relative;
  z-index: 1;
  width: 14px;
  height: 14px;
  margin-top: 5px;
  border: 3px solid #0a9587;
  border-radius: 50%;
  background: #fff;
}

.tour-single-schedule p {
  margin: 0;
  padding-bottom: 18px;
  color: #53666b;
  font-size: 14px;
  line-height: 1.75;
}

.tour-single-point p,
.tour-single-empty {
  margin: 0;
  color: #53666b;
  font-size: 14px;
  line-height: 2;
}

.tour-single-price-section {
  padding: 90px 20px;
  background: #fff;
}

.tour-single-price-card {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 45px 60px;
  padding: 45px 50px;
  border: 1px solid #dce5e4;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 10px 30px rgba(20, 65, 65, 0.06);
}

.tour-single-price-card__heading h2 {
  margin: 0 0 13px;
  color: #173138;
  font-size: 30px;
}

.tour-single-price-card__heading > p:last-child {
  margin: 0;
  color: #66777c;
  font-size: 14px;
  line-height: 1.8;
}

.tour-single-price-list {
  display: grid;
  gap: 12px;
}

.tour-single-price {
  display: flex;
  gap: 20px;
  align-items: center;
  justify-content: space-between;
  padding: 18px 20px;
  border-radius: 11px;
  background: #eef8f6;
}

.tour-single-price span {
  color: #617277;
  font-size: 13px;
}

.tour-single-price strong {
  color: #0a9587;
  font-size: 21px;
}

.tour-single-price-notes {
  grid-column: 1 / -1;
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 21px 24px;
  border-radius: 11px;
  background: #fff7f1;
  list-style: none;
}

.tour-single-price-notes li {
  position: relative;
  padding-left: 17px;
  color: #647378;
  font-size: 12px;
  line-height: 1.7;
}

.tour-single-price-notes li::before {
  position: absolute;
  top: 0.7em;
  left: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #ef6b24;
  content: "";
}

.tour-single-cta {
  padding: 80px 20px;
  background: #f3f7f6;
}

.tour-single-cta__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(280px, 0.6fr);
  gap: 50px;
  align-items: center;
  padding: 45px 50px;
  border-radius: 18px;
  background: #e8f6f4;
}

.tour-single-cta h2 {
  margin: 0 0 12px;
  color: #173138;
  font-size: 29px;
}

.tour-single-cta p:last-child {
  margin: 0;
  color: #5e7075;
  font-size: 14px;
  line-height: 1.8;
}

.tour-single-cta__actions {
  display: grid;
  gap: 12px;
}

.tour-single-cta__button {
  display: flex;
  min-height: 53px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 13px 18px;
  border-radius: 9px;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
}

.tour-single-cta__button--primary {
  border: 1px solid #0a9587;
  background: #0a9587;
  color: #fff;
}

.tour-single-cta__button--primary:hover {
  background: #087e72;
}

.tour-single-cta__button--outline {
  border: 1px solid #0a9587;
  background: #fff;
  color: #0a9587;
}

.tour-single-cta__button--outline:hover {
  background: #f7fbfa;
}

@media screen and (max-width: 900px) {
  .tour-single-summary__inner,
  .tour-single-price-card,
  .tour-single-cta__inner {
    grid-template-columns: 1fr;
  }

  .tour-single-details__grid {
    grid-template-columns: 1fr;
  }

  .tour-single-gallery {
    grid-template-columns: 1fr 1fr;
  }

  .tour-single-gallery__item:first-child {
    grid-column: 1 / -1;
  }
}

@media screen and (max-width: 767px) {
  .tour-single-summary {
    padding: 55px 15px 30px;
  }

  .tour-single-summary__inner {
    gap: 28px;
  }

  .tour-single-summary__heading h2 {
    font-size: 27px;
  }

  .tour-single-gallery-section {
    padding: 20px 15px 60px;
  }

  .tour-single-gallery {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .tour-single-gallery__item:first-child {
    grid-column: auto;
  }

  .tour-single-gallery__item,
  .tour-single-gallery__placeholder {
    height: 230px;
  }

  .tour-single-details,
  .tour-single-price-section,
  .tour-single-cta {
    padding: 60px 15px;
  }

  .tour-single-box {
    padding: 27px 20px 30px;
  }

  .tour-single-box__head h2 {
    font-size: 21px;
  }

  .tour-single-price-card,
  .tour-single-cta__inner {
    gap: 30px;
    padding: 30px 21px;
  }

  .tour-single-price-card__heading h2,
  .tour-single-cta h2 {
    font-size: 24px;
  }

  .tour-single-price {
    align-items: flex-start;
    flex-direction: column;
    gap: 5px;
  }

  .tour-single-price strong {
    font-size: 19px;
  }
}


@media (max-width: 768px) {
  .contact-cards .container {
    flex-direction: column;
  }
}

/* =========================
   NEWS
========================= */
.news{
  padding:100px 0;
  background:#f5f7f9;
}

.news-head{
  margin-bottom:40px;
}

.news-head h2{
  font-size:36px;
  font-weight:700;
}

.news-head p{
  margin-top:10px;
  color:#777;
}

/* BOX */
.news-box{
  background:#fff;
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 10px 25px rgba(0,0,0,.05);
}

/* ITEM */
.news-item{
  display:flex;
  align-items:center;
  gap:20px;
  padding:20px 25px;
  border-bottom:1px solid #eee;
  text-decoration:none;
  color:#333;
  transition:.2s;
}

.news-item:last-child{
  border-bottom:none;
}

.news-item:hover{
  background:#f9f9f9;
}

/* 日付 */
.news-item .date{
  width:100px;
  font-size:13px;
  color:#666;
}

/* カテゴリ */
.cat{
  padding:5px 12px;
  border-radius:999px;
  font-size:12px;
  white-space:nowrap;
}

.cat.info{
  background:#e5f5f2;
  color:#0f9d8a;
}

.cat.camp{
  background:#fdecea;
  color:#e74c3c;
}

.cat.plan{
  background:#fef5e7;
  color:#f39c12;
}

/* タイトル */
.news-item .title{
  flex:1;
  font-size:14px;
}

/* 矢印 */
.news-item .arrow{
  font-size:18px;
  color:#aaa;
}

/* ボタン */
.news-btn{
  text-align:center;
  margin-top:40px;
}

/* SP */
@media(max-width:768px){

.news-item{
  flex-wrap:wrap;
  gap:10px;
}

.news-item .date{
  width:auto;
}

.news-item .arrow{
  margin-left:auto;
}

.news-head h2{
  font-size:24px;
}

}


/* ===== 車両 ===== */
.cars{
  padding:100px 0;
  background:#fff; /* ← 薄グレー */
}

.cars-head{
  text-align:center;
  margin-bottom:60px;
}

.cars-head h2{
  font-size:36px;
  font-weight:700;
}

.cars-head p{
  color:#777;
  margin-top:10px;
}

/* レイアウト */
.car-item{
  display:flex;
  align-items:center;
  gap:50px;
  margin-bottom:80px;

  border-radius:16px;
  padding:40px;

}

.car-item.reverse{
  flex-direction:row-reverse;
}

/* 画像 */
.car-img{
  width:50%;
  position:relative;
}

.car-img img{
  width:100%;
  border-radius:16px;
}

/* バッジ */
.car-badge{
  position:absolute;
  top:15px;
  left:15px;
  background:#0f9d8a;
  color:#fff;
  padding:6px 12px;
  border-radius:999px;
  font-size:12px;
}

/* テキスト */
.car-info{
  width:50%;
}

.car-info h3{
  font-size:24px;
  margin-bottom:5px;
}

.car-sub{
  color:#0f9d8a;
  margin-bottom:20px;
}

/* スペック */
.car-specs{
  display:flex;
  gap:15px;
  margin-bottom:20px;
}

.spec{
  background:#f4f5f7;
  padding:15px;
  border-radius:12px;
  flex:1;
  text-align:center;
}

.spec span{
  font-size:12px;
  color:#777;
}

.spec strong{
  display:block;
  margin-top:5px;
}

/* 特徴 */
.feature-title{
  margin:20px 0 10px;
  font-weight:600;
}

.car-features{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px 30px;
  margin-bottom:25px;
}

.car-features li{
  list-style:none;
  padding-left:20px;
  position:relative;
}

.car-features li::before{
  content:"✓";
  position:absolute;
  left:0;
  color:#0f9d8a;
}

/* ボタン */
.btn-main{
  display:inline-block;
  background:#0f9d8a;
  color:#fff;
  padding:12px 25px;
  border-radius:999px;
  text-decoration:none;
}

/* SP */
@media(max-width:768px){
  .car-item,
  .car-item.reverse{
    flex-direction:column;
    padding: 0px;
  }

  .car-img,
  .car-info{
    width:100%;
  }

  .car-features{
    grid-template-columns:1fr;
  }
}


/* footer */
footer{
  background:#0f7f6b;
  color:#fff;
  padding:40px;
}

/* responsive */
@media(max-width:768px){
  .hero-inner{
    flex-direction:column;
  }

  .plan-grid,
  .reason-grid{
    grid-template-columns:1fr;
  }
}

.sim{
  padding:100px 0;
  background:#f5f7f9;
}

.sim-head{
  text-align:center;
  margin-bottom:40px;
}

.sim-head h2{
  font-size:32px;
  font-weight:700;
}

.sim-head p{
  color:#666;
  margin-top:10px;
}

.sim-box{
  max-width:900px;
  margin:auto;
  background:#fff;
  border-radius:16px;
  padding:40px;
  box-shadow:0 15px 30px rgba(0,0,0,0.05);
}

/* 車両 */
.sim-label{
  font-weight:600;
  margin-bottom:10px;
}

.sim-cars{
  display:flex;
  gap:15px;
  margin-bottom:25px;
}

.sim-cars button{
  flex:1;
  border:1px solid #ddd;
  border-radius:12px;
  padding:15px;
  text-align:left;
  background:#fff;
}

.sim-cars button.active{
  border:2px solid #0f9d8a;
  background:#eef8f6;
}

/* 時間 */
.sim-times{
  display:flex;
  gap:10px;
  margin:10px 0 15px;
}

.sim-times button{
  padding:8px 14px;
  border-radius:999px;
  border:none;
  background:#eee;
}

.sim-times button.active{
  background:#0f9d8a;
  color:#fff;
}

/* 料金 */
.sim-result{
  background:#f8f9fb;
  border-radius:12px;
  padding:20px;
  margin-top:20px;
}

.price-list{
  display:flex;
  gap:10px;
  margin:15px 0;
}
.car {
  display: block; /* ← これ重要 */
}
.car strong {
  display: block;
  font-size: 16px;
  margin-bottom: 4px;
}

.car span {
  display: block;
  font-size: 12px;
  color: #555;
}

.car small {
  display: block;
  font-size: 12px;
  color: #777;
  margin-top: 2px;
}
.price-list button{
  flex:1;
  padding:10px;
  border-radius:10px;
  border:1px solid #ddd;
  background:#fff;
  white-space: pre-line;
}

.price-list button.active{
  background:#0f9d8a;
  color:#fff;
}

/* 合計 */
.total{
  display:flex;
  justify-content:space-between;
  margin-top:10px;
}

.total strong{
  color:#0f9d8a;
  font-size:22px;
}

/* 注意 */
.sim-warning{
  background:#fff4e5;
  border:1px solid #f1c27d;
  padding:15px;
  border-radius:10px;
  margin:20px 0;
  font-size:13px;
}

/* ボタン */
/* 見積もり依頼ボタン */
.sim-btn{
  display:flex;
  align-items:center;
  justify-content:center;

  width:100%;
  padding:16px 32px;

  background:#0f9d8a;
  color:#fff;
  border:none;
  border-radius:999px;

  font:inherit;
  font-weight:700;
  font-size:16px;
  line-height:1.4;

  text-align:center;
  text-decoration:none;
  cursor:pointer;
}

.sim-btn:hover{
  opacity:.85;
}

@media (max-width: 768px) {

  .sim-cars {
    flex-direction: column;
    gap: 10px;
  }

  .sim-cars .car {
    width: 100%;
  }

}

@media (max-width: 768px) {

  .sim-times {
    display: flex;
    flex-wrap: wrap;   /* ← これが重要 */
    gap: 8px;
    justify-content: space-between;
  }

  .sim-times button {
    width: calc(20% - 6px); /* 5個均等 */
    font-size: 12px;
    padding: 8px 0;
  }

}

@media (max-width: 768px) {

  #priceList {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }

  #priceList button {
    width: 100%;
  }

}
@media (max-width: 768px) {

  .sim-box {
    width: 100%;
    max-width: 100%;
    padding: 20px;
  }

}




.recruit{
  padding:100px 0;
  background:#eaf3f3;
}

/* ヘッダー */
.recruit-head{
  text-align:center;
  margin-bottom:50px;
}

.badge{
  display:inline-block;
  background:#0f9d8a;
  color:#fff;
  padding:6px 14px;
  border-radius:999px;
  font-size:12px;
}

.recruit-head h2{
  font-size:32px;
  margin:15px 0;
}

.recruit-head p{
  color:#555;
  line-height:1.8;
}

/* レイアウト */
.recruit-wrap{
  display:flex;
  gap:40px;
  align-items:center;
}

/* 左画像 */
.recruit-img{
  position:relative;
  flex:1;
}

.recruit-img img{
  width:100%;
  border-radius:16px;
}

.recruit-overlay{
  position:absolute;
  bottom:20px;
  left:20px;
  background:#fff;
  padding:20px;
  border-radius:10px;
  box-shadow:0 10px 20px rgba(0,0,0,0.1);
      width: stretch;
    right: 20px;
}
.recruit-overlay p {
  font-size: 1.6em; 
  font-weight: 900;
}

/* 右 */
.recruit-content{
  flex:1;
}

/* 特徴 */
.recruit-features{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:15px;
  margin:20px 0;
}

/* カード全体（任意） */
.feature {
  background: #fff;
  border-radius: 14px;
  padding: 24px;
  box-shadow: 0 6px 16px rgba(0,0,0,0.05);
}

/* ← ここがメイン */
.feature span {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 56px;
  height: 56px;
  border-radius: 50%;

  background: #e6f4f1;
  margin-bottom: 14px;

  font-size: 0;
  line-height: 0;
}

/* アイコン */
.feature span i {
  font-size: 22px;
  color: #2a9d8f;

  display: inline-flex;  /* ← ここが重要 */
  align-items: center;
  justify-content: center;
}
.feature span i::before {
  display: inline-block;
  line-height: 1;
}
/* タイトル */
.feature h4 {
  font-size: 18px;
  margin-bottom: 6px;
}

/* テキスト */
.feature p {
  font-size: 14px;
  color: #666;
  line-height: 1.6;
}
.about-text p {
  margin-bottom: 16px;
}

.reason-card p {
  margin-top: 8px;
}
.feature span{
  font-size:20px;
}
p {
  margin: 0;
  line-height: 1.7;
}
.section-name p {
  margin-bottom: 16px;
}
/* 資格 */
.recruit-qual{
  background:#fff;
  padding:20px;
  border-radius:12px;
  margin-top:20px;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.05);
}

.recruit-qual ul{
  margin-top:10px;
}

.recruit-qual li{
  margin-bottom:8px;
}

/* ボタン */
.recruit-btns{
  display:flex;
  gap:15px;
  margin-top:25px;
}
.recruit-list li {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
  font-size: 15px;
}

.recruit-list li i {
  color: #2a9d8f;
  font-size: 16px;
  flex-shrink: 0;
}
.recruit-buttons {
  display: flex;
  gap: 16px;
  margin-top: 20px;
}

.recruit-buttons .btn {
  flex: 1;                /* ← 幅均等 */
  text-align: center;
  padding: 14px 0;
  border-radius: 30px;
  font-size: 15px;
}
@media (max-width: 768px) {

  /* ===== 全体 ===== */
  .recruit-wrap {
    flex-direction: column;
    gap: 20px;
  }

  /* ===== 画像 ===== */
  .recruit-img {
    width: 100%;
  }

  /* ===== コンテンツ ===== */
  .recruit-content {
    width: 100%;
  }

  /* ===== 特徴（4つのカード） ===== */
  .recruit-features {
    display: grid;
    grid-template-columns: 1fr 1fr; /* ← 2列 */
    gap: 12px;
  }

  .feature {
    padding: 15px;
  }

  /* ===== 応募資格 ===== */
  .recruit-qual {
    padding: 15px;
  }

  /* ===== ボタン ===== */
  .recruit-btns {
    display: flex;
    gap: 10px;
  }

  .recruit-btns a {
    flex: 1;
    text-align: center;
  }

}

/* 左（塗り） */
.btn-main {
  background: #2a9d8f;
  color: #fff;
}

/* 右（枠線） */
.btn-outline {
  border: 2px solid #2a9d8f;
  color: #2a9d8f;
}
.btn{
  padding:14px 24px;
  border-radius:999px;
  text-decoration:none;
}

.btn.solid{
  background:#0f9d8a;
  color:#fff;
}

.btn.outline{
  border:2px solid #0f9d8a;
  color:#0f9d8a;
}

.voices{
  padding:100px 0;
  background:#fff;
}

.voices-head{
  text-align:center;
  margin-bottom:50px;
}

.voices-head span{
  color:#0f9d8a;
  font-size:14px;
}

.voices-head h2{
  font-size:32px;
  margin-top:10px;
}

/* グリッド */
.voices-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  grid-template-rows:auto auto;
  gap:20px;
}

/* カード共通 */
.voice-card{
  padding:20px;
  border-radius:16px;
}

/* 色 */
.blue{ background:#eaf2f5; }
.beige{ background:#f5efe6; }
.pink{ background:#f7e9eb; }
.purple{ background:#e9ecf7; }

/* ユーザー */
.voice-user{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:10px;
}

.voice-user img{
  width:40px;
  height:40px;
  border-radius:50%;
}

/* 画像カード */
.voice-image{
  position:relative;
  border-radius:16px;
  overflow:hidden;
}

.voice-image img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.voice-image-text{
  position:absolute;
  bottom:15px;
  left:15px;
      right: 15px;
  color:#fff;
}

/* 横長 */
.voice-wide{
  grid-column:1 / 3;
  position:relative;
  border-radius:16px;
  overflow:hidden;
}

.voice-wide img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.voice-wide-text{
  position:absolute;
  bottom:20px;
  left:20px;
  color:#fff;
}

/* 小カード */
.small{
  padding:15px;
}
.voices-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  grid-template-rows:auto auto;
  gap:20px;
}

/* 横長（下左） */
.voice-wide{
  grid-column:1 / 3;
}

/* 右下2つを縦積み */
.voice-small-wrap{
  display:flex;
  flex-direction:column;
  gap:20px;
}
.voice-image{
  height:100%;
}
.voice-wide{
  height:100%;
  min-height:260px;
}

@media (max-width: 768px) {

  /* ===== 親を完全リセット ===== */
  .voices-grid {
    display: block !important;
  }

  /* ===== 全部1列 ===== */
  .voices-grid > * {
    width: 100% !important;
    grid-column: auto !important;
  }

  /* ===== 下余白 ===== */
  .voice-card,
  .voice-image,
  .voice-wide,
  .voice-small-wrap {
    margin-bottom: 16px;
  }

  /* ===== 横長カード崩れ防止 ===== */
  .voice-wide {
    height: auto !important;
  }

  /* ===== 画像 ===== */
  .voice-image img,
  .voice-wide img {
    width: 100%;
    height: auto;
    display: block;
  }

  /* ===== テキスト重なり解除 ===== */
  .voice-image-text,
  .voice-wide-text {
    position: static !important;
    padding: 12px 0;
    background: none;
    color: #333;
  }

  /* ===== 小カードも縦 ===== */
  .voice-small-wrap {
    display: block !important;
  }

}
/* 画像の下のテキストBOX */
.voice-image-text,
.voice-wide-text {
  background: #fff;
  padding: 14px;
  border-radius: 12px;
  margin-top: 10px;

  font-size: 14px;
  line-height: 1.6;
  color: #333;

  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}
.voice-image-text strong,
.voice-wide-text strong {
  display: block;
  font-size: 15px;
  margin-bottom: 4px;
}
.voice-image-text,
.voice-wide-text {
  background: #ffffff;
  border: 1px solid #eee;
}
.about {
  padding: 100px 0;
  background: #f7f8fa;
}

.container {
  max-width: 1280px;
  margin: 0 auto;
}

/* ===== ① フル幅 ===== */
.about-full {
  margin-bottom: 60px;
}

.about-label {
  color: #1aa38c;
  font-size: 12px;
}

.about-full h2 {
  font-size: 32px;
  margin: 10px 0 20px;
}

.about-full p {
  line-height: 1.8;
  color: #555;
}

/* ===== ② 2カラム ===== */
.about-grid {
  display: grid;
  grid-template-columns: 1fr 1fr; /* ←50% */
  gap: 40px;
}

/* 左：テーブル */
.company-card {
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 5px 15px rgba(0,0,0,0.05);
}

.company-head {
  background: #1aa38c;
  color: #fff;
  padding: 14px 20px;
  font-weight: bold;
}

.company-card table {
  width: 100%;
  border-collapse: collapse;
}

.company-card th,
.company-card td {
  padding: 12px 16px;
  border-bottom: 1px solid #eee;
  font-size: 14px;
}

.company-card th {
  width: 140px;
  background: #fafafa;
}

/* 右 */
.about-right {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.about-text {
  line-height: 1.8;
  color: #555;
}

/* アイコン付き */
.features {
  display: grid;
  grid-template-columns: repeat(2,1fr);
  gap: 10px;
}

.features div {
  background: #fff;
  padding: 12px;
  border-radius: 10px;
  font-size: 13px;
  display: flex;
  align-items: center;
  gap: 8px;
}

/* PDF */
.pdf-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.pdf-list a {
  background: #fff;
  padding: 12px 16px;
  border-radius: 10px;
  text-decoration: none;
  color: #333;
  display: flex;
  justify-content: space-between;
  border: 1px solid #eee;
}

.pdf-list span {
  color: red;
  font-size: 12px;
  font-weight: bold;
}

/* ボタン */
.about-btn {
  text-align: center;
}

.about-btn a {
  display: inline-block;
  padding: 14px 30px;
  background: #1aa38c;
  color: #fff;
  border-radius: 999px;
  text-decoration: none;
}
@media (max-width: 768px) {

  /* ===== レイアウト完全解除 ===== */
  .about-grid {
    display: block !important;
  }

  .about-left,
  .about-right {
    width: 100% !important;
  }

  /* ===== カード化 ===== */
  .company-card {
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(0,0,0,0.05);
    margin-bottom: 20px;
  }

  /* ===== ヘッダー ===== */
  .company-head {
    background: #2a9d8f;
    color: #fff;
    padding: 12px;
    font-size: 14px;
  }

  /* ===== テーブル ===== */
  .company-card table {
    width: 100%;
    border-collapse: collapse;
  }

  .company-card td {
    padding: 10px;
    font-size: 13px;
    border-bottom: 1px solid #eee;
  }

  /* 左ラベル */
  .company-card td:first-child {
    width: 30%;
    font-weight: bold;
    color: #555;
  }

  /* 右 */
  .company-card td:last-child {
    width: 70%;
    color: #333;
  }

}

.footer {
  background: #158a6c;
  color: #fff;
  padding: 60px 0 30px;
}

.footer-inner {
  max-width: 1100px;
  margin: 0 auto;
}

/* 上段 */
.footer-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 40px;
}

.footer-info h3 {
  font-size: 18px;
  line-height: 1.5;
}

.footer-info span {
  font-size: 13px;
  opacity: 0.8;
}

.footer-info p {
  margin-top: 10px;
  font-size: 13px;
  line-height: 1.8;
}

.footer-catch {
  font-size: 14px;
  opacity: 0.9;
}

/* メニュー */
.footer-menu {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 40px;
  margin-bottom: 40px;
}

.footer-col h4 {
  font-size: 14px;
  margin-bottom: 10px;
  border-bottom: 1px solid rgba(255,255,255,0.3);
  padding-bottom: 6px;
}

.footer-col ul {
  list-style: none;
  padding: 0;
}

.footer-col li {
  font-size: 13px;
  margin-bottom: 8px;
}

/* 右コピー */
.footer-copy {
  text-align: right;
  font-size: 22px;
  line-height: 1.6;
  font-weight: bold;
}

/* 下 */
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.3);
  padding-top: 20px;
  text-align: center;
  font-size: 12px;
  opacity: 0.8;
}


.features i {
  color: #1aa38c;
}

.pdf-list i {
  color: #e60023;
}

.spec span i {
  margin-right: 4px;
}



.plan-meta i {
  margin-right: 4px;
}
.footer-logo {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
}

.footer-logo img {
  width: 36px;
  height: 36px;
  object-fit: contain;
}

.footer-title strong {
  display: block;
  font-size: 18px;
  font-weight: 700;
  color: #fff;
}

.footer-title span {
  display: block;
  font-size: 12px;
  color: rgba(255,255,255,0.8);
}
@media (max-width: 768px) {

  /* ===== 全体 ===== */
  .footer {
    padding: 40px 20px;
    text-align: center;
  }

  /* ===== 上段 ===== */
  .footer-top {
    display: block;
  }

  /* ===== ロゴ＋会社 ===== */
  .footer-logo {
    justify-content: center;
    margin-bottom: 10px;
  }

  .footer-title strong {
    font-size: 16px;
  }

  .footer-title span {
    font-size: 12px;
    display: block;
  }

  /* ===== 住所 ===== */
  .footer-info p {
    font-size: 13px;
    line-height: 1.6;
    margin-bottom: 12px;
  }

  /* ===== キャッチコピー（これ重要） ===== */
  .footer-catch {
    writing-mode: horizontal-tb !important; /* ← 縦書き殺す */
    font-size: 13px;
    line-height: 1.6;
    margin-bottom: 20px;
  }

  /* ===== メニュー ===== */
  .footer-menu {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    text-align: left;
    margin-bottom: 20px;
  }

  .footer-menu h4 {
    font-size: 13px;
    margin-bottom: 6px;
  }

  .footer-menu a {
    display: block;
    font-size: 12px;
    margin-bottom: 4px;
  }

  /* ===== コピーライト ===== */
  .footer-bottom {
    font-size: 11px;
    border-top: 1px solid rgba(255,255,255,0.2);
    padding-top: 10px;
  }

}
@media (max-width: 768px) {

  /* フッター上部 */
  .footer-info {
    text-align: left;
  }

  /* ロゴ＋会社名 */
  .footer-logo {
    justify-content: flex-start;
  }

  /* タイトル */
  .footer-title {
    text-align: left;
  }

  /* 住所 */
  .footer-info p {
    text-align: left;
  }

  /* キャッチコピー */
  .footer-catch {
    text-align: left;
  }

}
/* ===== 完全リセット ===== */
.hero2, .hero2 * {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/* ===== 背景 ===== */
.hero2 {
  background: url("img/hero.jpg") center/cover no-repeat;
  position: relative;
  padding: 120px 20px;
}

/* オーバーレイ */
.hero2::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(0,80,100,0.7), rgba(0,0,0,0.2));
}

/* 中身 */
.hero2-inner {
  position: relative;
  max-width: 1100px;
  margin: auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 60px;
}

/* ===== 左 ===== */
.hero2-left {
  color: #fff;
  max-width: 600px;
}

.hero2-badge {
  background: rgba(255,255,255,0.2);
  display: inline-block;
  padding: 6px 14px;
  border-radius: 20px;
  font-size: 12px;
  margin-bottom: 20px;
}

.hero2 h1 {
  font-size: 42px;
  line-height: 1.4;
  margin-bottom: 20px;
}

.hero2-text {
  font-size: 15px;
  line-height: 1.8;
  margin-bottom: 30px;
}

/* ボタン */
.hero2-buttons {
  display: flex;
  gap: 15px;
  margin-bottom: 15px;
}

.btn-white {
  background: #fff;
  color: #333;
  padding: 12px 24px;
  border-radius: 30px;
  text-decoration: none;
}

.btn-green {
  background: #2a9d8f;
  color: #fff;
  padding: 12px 24px;
  border-radius: 30px;
  text-decoration: none;
}

.hero2-note {
  font-size: 12px;
  opacity: 0.8;
}

/* ===== 右カード ===== */
.hero2-card {
  background: #fff;
  padding: 30px;
  border-radius: 16px;
  width: 320px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.2);
}

.hero2-card h3 {
  text-align: center;
  margin-bottom: 5px;
}

.hero2-sub {
  text-align: center;
  font-size: 12px;
  color: #666;
  margin-bottom: 20px;
}

/* プラン */
.hero2-item {
  border: 1px solid #ddd;
  padding: 15px;
  border-radius: 10px;
  margin-bottom: 10px;
}

.hero2-item.active {
  border: 2px solid #2a9d8f;
  background: #f3fbf9;
}

.hero2-item p {
  font-size: 14px;
  margin-bottom: 5px;
}

.hero2-item strong {
  font-size: 22px;
  color: #2a9d8f;
}

.hero2-item span {
  display: block;
  font-size: 12px;
  color: #777;
}

/* 注意書き */
.hero2-card small {
  display: block;
  font-size: 11px;
  color: #888;
  margin-top: 10px;
  text-align: center;
}

/* ===== レスポンシブ ===== */
@media (max-width: 768px) {
  .hero2-inner {
    flex-direction: column;
    text-align: center;
  }

  .hero2-card {
    width: 100%;
  }

  .hero2 h1 {
    font-size: 28px;
  }
    .hero2-buttons {
    flex-direction: column; /* ← 縦並び */
    gap: 12px;              /* ← ボタン間余白 */
  }

  .hero2-buttons a {
    width: 100%;            /* ← 横幅いっぱい */
    text-align: center;
  }

}
/* ===== ヘッダー ===== */
.jts-header {
  position: fixed;
  width: 100%;
  top: 0;
  z-index: 9999;
  transition: 0.3s;
}

.jts-header--scrolled {
  background: #fff;
  box-shadow: 0 5px 20px rgba(0,0,0,0.1);
}

.jts-header__inner {
  display: flex;
  align-items: center;
  padding: 12px 20px;
}

/* ロゴ */
.jts-header__logo {
  display: flex;
  align-items: center;
  gap: 10px;
      font-size: large;
}

.jts-header__logo img {
  width: 40px;
}

/* ナビ */
.jts-nav {
  margin-left: auto;
}

.jts-nav__list {
  display: flex;
  gap: 28px;
  align-items: center;
  list-style: none;
}

.jts-nav a {
  text-decoration: none;
  color: #fff;
}

.jts-header--scrolled .jts-nav a {
  color: #333;
}

/* CTA */
.jts-nav__btn {
  margin-left: 24px;
  background: #2a9d8f;
  color: #fff !important;
  padding: 10px 18px;
  border-radius: 999px;
}

/* ▼ */
.jts-nav__item--parent > a::after {
  content: "▼";
  font-size: 10px;
  margin-left: 6px;
}

/* プルダウン */
.jts-nav__item--parent {
  position: relative;
}

.jts-submenu {
  position: absolute;
  top: 120%;
  left: 50%;
  transform: translateX(-50%) translateY(10px);
  background: #fff;
  border-radius: 12px;
  padding: 12px 0;
  min-width: 180px;

  opacity: 0;
  visibility: hidden;
  transition: 0.2s;
}

.jts-nav__item--parent:hover .jts-submenu {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}

.jts-submenu a {
  display: block;
  padding: 10px 16px;
  color: #333;
}

/* ===== SP ===== */
.jts-menu-btn {
  display: none;
}

@media (max-width: 768px) {

  .jts-menu-btn {
    display: block;
    margin-left: auto;
  }

  .jts-nav {
    position: fixed;
    right: -100%;
    top: 0;
    width: 80%;
    height: 100vh;
    background: #fff;
    padding: 20px;
    transition: 0.3s;
    z-index: 10000;
  }

  .jts-nav.is-active {
    right: 0;
  }

  .jts-nav__list {
    display: block;
  }

  .jts-nav a {
    color: #333;
  }

  .jts-submenu {
    position: static;
    transform: none;
    opacity: 1;
    visibility: visible;
    display: none;
  }

  .jts-nav__item--parent.is-open .jts-submenu {
    display: block;
  }
}

/* overlay */
.jts-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.4);
  opacity: 0;
  visibility: hidden;
}

.jts-overlay.is-active {
  opacity: 1;
  visibility: visible;
}
/* =====================================
   JTS Header 修正版
===================================== */

/* PC時：ロゴ横の文字を白に */
.jts-header:not(.jts-header--scrolled) .jts-header__logo span,
.jts-header:not(.jts-header--scrolled) .jts-header__logo small {
  color: #fff;
}

/* スクロール後は黒 */
.jts-header--scrolled .jts-header__logo span,
.jts-header--scrolled .jts-header__logo small {
  color: #111;
}

/* PC時：閉じるボタンは絶対非表示 */
@media (min-width: 769px) {
  .jts-nav__close {
    display: none !important;
  }

  .jts-nav {
    display: flex;
    align-items: center;
    margin-left: auto;
  }

  .jts-nav__list {
    display: flex;
    align-items: center;
    gap: 28px;
    margin: 0;
    padding: 0;
  }

  /* 見積もりボタンを下に落とさない */
  .jts-nav__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: 28px;
    margin-top: 0 !important;
    white-space: nowrap;
  }
}

/* =====================================
   SPメニューを綺麗に
===================================== */
@media (max-width: 768px) {
  .jts-nav {
    right: -100%;
    width: min(86vw, 360px);
    height: 100vh;
    padding: 22px;
    background: #fff;
    box-shadow: -12px 0 30px rgba(0,0,0,.18);
    overflow-y: auto;
  }

  .jts-nav.is-active {
    right: 0;
  }

  .jts-nav__close {
    display: block;
    margin-left: auto;
    margin-bottom: 18px;
    width: 36px;
    height: 36px;
    border: none;
    border-radius: 50%;
    background: #f3f6f6;
    color: #111;
    font-size: 18px;
    line-height: 1;
  }

  .jts-nav__list {
    display: block;
    margin: 0;
    padding: 0;
  }

  .jts-nav__list > li {
    border-bottom: 1px solid #edf0f0;
  }

  .jts-nav__list > li > a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 0;
    color: #111;
    font-weight: 700;
  }

  .jts-submenu {
    position: static !important;
    transform: none !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 0 12px;
    padding: 8px 0 8px 14px;
    background: #f7faf9;
    border-radius: 12px;
    box-shadow: none;
    display: none;
    opacity: 1;
    visibility: visible;
  }

  .jts-nav__item--parent.is-open .jts-submenu {
    display: block;
  }

  .jts-submenu a {
    display: block;
    padding: 10px 12px;
    color: #333;
    font-size: 14px;
    white-space: normal;
  }

  .jts-nav__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin: 22px 0 0 !important;
    padding: 14px;
    color: #fff !important;
  }
}
.recruit {
  position: relative;
  overflow: hidden;
}


.recruit-head{
  position: relative;
}
.recruit .badge {
  position: absolute;
  top: -40px; /* ←少し上に浮かせるくらい */
  left: 50%;
  transform: translateX(-50%);
}

/* =========================
  ページヘッダー
========================= */
.page-hero {
  height: 240px;
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
}

.page-hero-inner {
  text-align: center;
}

.page-hero h1 {
  font-size: 32px;
  margin-bottom: 6px;
}

/* =========================
  パンくず
========================= */
.breadcrumb {
  padding: 12px 20px;
  font-size: 14px;
  background: #f5f5f5;
}

/* =========================
  コンテンツ
========================= */
.page-content {
  padding: 60px 20px;
  max-width: 1000px;
  margin: auto;
}

.about-intro img {
  width: 100%;
  border-radius: 12px;
  margin-bottom: 20px;
}

.company-info table {
  width: 100%;
  border-collapse: collapse;
}

.company-info th,
.company-info td {
  padding: 12px;
  border-bottom: 1px solid #ddd;
}

/* =========================
  ドキュメント
========================= */
.docs {
  display: flex;
  gap: 20px;
  margin-top: 40px;
}

.doc-box {
  flex: 1;
  background: #eef6f6;
  padding: 20px;
  border-radius: 10px;
}

.doc-box a {
  display: block;
  margin-top: 10px;
  padding: 10px;
  border: 1px solid #2a9d8f;
  border-radius: 6px;
}
/* ヘッダービジュアル */
.page-hero {
  position: relative;
  height: 320px; /* ←②も兼ねる（高さUP） */
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  overflow: hidden;
}

/* 背景画像 */
.page-hero img {
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: cover;
  top: 0;
  left: 0;
  z-index: 1;
}

/* 👇 これが暗くするレイヤー */
.page-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.35); /* ←ここで濃さ調整 */
  z-index: 2;
}

/* テキスト */
.page-hero__inner {
  position: relative;
  z-index: 3;
  text-align: center;
}
.breadcrumb {
  font-size: 13px;
  color: #888;
  padding: 14px 0;
}

.breadcrumb a {
  color: #666;
  text-decoration: none;
}

.breadcrumb i {
  margin-right: 6px;
  color: #aaa;
}

.breadcrumb span {
  margin: 0 6px;
  color: #ccc;
}
.page-title {
  text-align: center;
  margin: 30px 0 40px;
}

.page-title h1 {
  font-size: 28px;
  font-weight: 700;
  color: #fff;
  margin-bottom: 6px;
}

.page-title p {
  font-size: 13px;
  color: #fff;
  letter-spacing: 0.05em;
}
.page-hero__inner h1 {
  font-size: 32px;
  font-weight: 700;
  margin-bottom: 8px;
}

.page-hero__inner p {
  font-size: 14px;
  opacity: 0.9;
  letter-spacing: 0.08em;
}
.breadcrumb {
  margin: 20px auto;
  max-width: 1100px;
  padding: 0 20px;
}
.page-hero {
  position: relative;
}

/* 背景 */
.page-hero img {
  position: absolute;
  z-index: 1;
}

/* 暗いレイヤー */
.page-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.35);
  z-index: 2;
}

/* 👇 これが重要 */
.page-hero__inner {
  position: relative;
  z-index: 3;
}
.page-hero__inner {
  position: relative;
  z-index: 3;
  text-align: center;
  color: #fff;
  text-shadow: 0 3px 12px rgba(0,0,0,0.4);
}
.page-hero {
  position: relative;
  height: 320px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

/* 背景画像 */
.page-hero img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
}

/* 黒レイヤー */
.page-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.4);
  z-index: 2;
}

/* テキスト */
.page-hero__inner {
  position: relative;
  z-index: 3;
  color: #fff;
  text-align: center;
  text-shadow: 0 3px 12px rgba(0,0,0,0.5);
}
/* パンくずエリア */
/* 外側：背景とボーダー */
.breadcrumb-wrap {
  width: 100%;
  background: #f5f5f5;
  border-bottom: 1px solid #e5e5e5;
}

/* 内側：中央寄せ */
.breadcrumb {
  max-width: 1100px;
  margin: 0 auto;
  padding: 12px 16px;

  font-size: 13px;
  color: #777;

  display: flex;
  align-items: center;
  gap: 6px;
}

/* アイコン */
.breadcrumb i {
  font-size: 12px;
  color: #aaa;
}

/* リンク */
.breadcrumb a {
  color: #777;
  text-decoration: none;
}

.breadcrumb a:hover {
  color: #2a9d8f;
}

/* 区切り */
.breadcrumb span {
  color: #111;
}
/* タイトルエリア全体 */
.page-title-wrap {
  background: #fff;
  border-bottom: 1px solid #eee;
}

/* 中央寄せ */
.page-title {
  max-width: 1100px;
  margin: 0 auto;
  padding: 30px 16px 35px;
  text-align: center;
}

/* タイトル */
.page-title h1 {
  font-size: 28px;
  font-weight: 700;
  color: #222;
  margin-bottom: 6px;
}

/* サブタイトル */
.page-title p {
  font-size: 13px;
  color: #888;
  letter-spacing: 0.08em;
}
/* セクション全体 */
.about-intro {
  text-align: center;
  margin: 0px auto 60px;
}

/* 画像 */
.about-intro img {
  width: 100%;
  max-width: 900px;
  border-radius: 12px;
  margin-bottom: 30px;

  /* ←ここ重要：今っぽさ */
  box-shadow: 0 10px 30px rgba(0,0,0,0.08);
}

/* タイトル */
.about-intro h2 {
  font-size: 28px;
  font-weight: 700;
  margin-bottom: 15px;
}

/* リード文 */
.about-intro .lead {
  font-size: 18px;
  line-height: 1.8;
  color: #444;
  margin-bottom: 60px;
}
.about-intro .left_text {
text-align: left;
}
/* セクション全体 */
.company {
  background: #f9fafb; /* ←①薄い背景 */
  padding: 40px 16px;
}

/* 中央寄せ */
.company-inner {
  max-width: 1000px;
  margin: 0 auto;
}

/* 見出し */
.company h2 {
  text-align: center; /* ←②中央 */
  font-size: 26px;
  font-weight: 700;
  margin-bottom: 30px;
}

/* テーブル */
.company-table {
  width: 100%;
  border-collapse: collapse;
  background: #f9fafb;
  border-radius: 12px;
  overflow: hidden; /* ←角丸効かせる */
 
}

/* 行 */
.company-table tr {
  border-bottom: 1px solid #eee;
}

/* th */
.company-table th {
  width: 30%;
  padding: 16px;
  background: #f3f4f6;
  text-align: left; /* ←③左寄せ */
  font-weight: 600;
  color: #555;
}

/* td */
.company-table td {
  padding: 16px;
  text-align: left;
  color: #333;
  background: #f9fafb;
}


/* 最後の線消す */
.company-table tr:last-child {
  border-bottom: none;
}
/* 全体 */
.docs {
  padding: 60px 16px;
}

.docs-inner {
  max-width: 1200px;
  margin: 0 auto;

  display: grid;
   grid-template-columns: 1.2fr 1fr; /* ←左広め */
  gap: 40px;
}

/* ボックス */
.docs-box {
  background: #eaf3f3;
  padding: 30px;
  border-radius: 12px;
}

/* 見出し */
.docs-box h3 {
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 20px;
  padding-bottom: 10px;
  border-bottom: 1px solid #ccc;

  display: flex;
  align-items: center;
  gap: 8px;
}

/* タイトルアイコン */
.docs-box h3 i {
  color: #2a9d8f;
}

/* リンク */
.doc-link {
  display: flex;
  justify-content: space-between;
  align-items: center;

  margin-bottom: 15px;
  padding: 14px 16px;

  border: 2px solid #2a9d8f;
  border-radius: 8px;

  text-decoration: none;
  color: #333;
  background: #fff;

  transition: 0.2s;
}

/* hover */
.doc-link:hover {
  background: #2a9d8f;
  color: #fff;
}

/* PDFアイコン */
.doc-link i {
  color: #e63946;
  font-size: 18px;
}

.doc-link:hover i {
  color: #fff;
}
.doc-link span {
  display: block;
  line-height: 1.6;
}
.doc-link i {
  font-size: 20px;
  color: #e63946;
      padding-left: 10px;
  display: flex;
  align-items: center;
}
.docs-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: stretch;
}

.docs-box {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  min-height: 100%;
}

.jts-header__logo a{
  display:flex;
  align-items:center;
  gap:10px;
  color:inherit;
  text-decoration:none;
}

.jts-header__logo img{
  display:block;
  width:auto;
  height:40px;
}

.jts-header__logo span{
  display:block;
  font-size:16px;
  font-weight:700;
  line-height:1.3;
}

.jts-header__logo small{
  display:block;
  margin-top:3px;
  font-size:11px;
  font-weight:400;
}

/* ===================================
お見積りページ
=================================== */

.estimate-page{
background:#f5f7f9;
color:#222;
}

/* ===================================
お見積りページ：ヒーロー
=================================== */

.estimate-hero{
position:relative;
display:flex;
align-items:center;
justify-content:center;
min-height:360px;
padding:110px 20px 80px;
overflow:hidden;
text-align:center;
color:#fff;

/* 背景画像は任意の画像へ変更可能 */
background-image:
linear-gradient(
rgba(9,95,83,.62),
rgba(9,95,83,.62)
),
url("./img/contact-hero.jpg");

background-position:center;
background-size:cover;
background-repeat:no-repeat;
}

/* 背景画像がない場合にも単調になりすぎない装飾 */
.estimate-hero::before{
content:"";
position:absolute;
inset:0;
background:
radial-gradient(
circle at 20% 25%,
rgba(255,255,255,.18),
transparent 32%
),
radial-gradient(
circle at 80% 75%,
rgba(255,255,255,.10),
transparent 35%
);
pointer-events:none;
}

.estimate-hero .container{
position:relative;
z-index:1;
width:100%;
max-width:1200px;
margin:0 auto;
}

.estimate-hero__en{
margin:0 0 12px;
color:#fff;
font-size:14px;
font-weight:700;
line-height:1.4;
letter-spacing:.2em;
}

.estimate-hero__title{
margin:0;
color:#fff;
font-size:42px;
font-weight:700;
line-height:1.4;
}

.estimate-hero__text{
margin:20px 0 0;
color:#fff;
font-size:15px;
line-height:1.9;
}

/* ===================================
お見積りページ：パンくず
=================================== */

.estimate-breadcrumb{
padding:18px 20px;
background:transparent;
border:0;
font-size:13px;
}

.estimate-breadcrumb .container{
display:flex;
align-items:center;
gap:10px;
width:100%;
max-width:1200px;
margin:0 auto;
}

.estimate-breadcrumb a{
color:#0f9d8a;
text-decoration:none;
}

.estimate-breadcrumb a:hover{
text-decoration:underline;
}

.estimate-breadcrumb__separator{
color:#aaa;
}

/* ===================================
お見積りページ：本文
=================================== */

.estimate-section{
padding:60px 20px 100px;
}

.estimate-section > .container{
width:100%;
max-width:1200px;
margin:0 auto;
}

.estimate-section__inner{
max-width:900px;
margin:0 auto;
}

.estimate-section__head{
margin-bottom:40px;
text-align:center;
}

.estimate-section__label{
margin:0 0 10px;
color:#0f9d8a;
font-size:14px;
font-weight:700;
line-height:1.5;
letter-spacing:.08em;
}

.estimate-section__head h2{
margin:0 0 20px;
font-size:30px;
font-weight:700;
line-height:1.5;
}

.estimate-section__head p{
margin:5px 0;
color:#555;
font-size:15px;
line-height:1.9;
}

/* ===================================
お見積りページ：注意事項
=================================== */

.estimate-notice{
margin-bottom:35px;
padding:25px 30px;
background:#fff8ec;
border:1px solid #f1c27d;
border-radius:12px;
}

.estimate-notice h3{
margin:0 0 15px;
font-size:17px;
font-weight:700;
line-height:1.5;
}

.estimate-notice ul{
margin:0;
padding-left:1.4em;
}

.estimate-notice li{
margin-bottom:7px;
font-size:14px;
line-height:1.7;
}

.estimate-notice li:last-child{
margin-bottom:0;
}

/* ===================================
お見積りページ：CF7全体
=================================== */

.estimate-form-area{
padding:45px;
background:#fff;
border-radius:16px;
box-shadow:0 15px 35px rgba(0,0,0,.06);
}

.estimate-form{
width:100%;
}

.estimate-form__lead{
margin:0 0 35px;
padding-bottom:25px;
border-bottom:1px solid #ddd;
color:#555;
font-size:15px;
line-height:1.9;
}

/* ===================================
入力項目
=================================== */

.estimate-form__field{
margin-bottom:28px;
}

.estimate-form__field > label{
display:block;
margin-bottom:10px;
font-size:15px;
font-weight:700;
line-height:1.5;
}

.estimate-form .wpcf7-form-control-wrap{
display:block;
width:100%;
}

.estimate-form input[type="text"],
.estimate-form input[type="email"],
.estimate-form input[type="tel"],
.estimate-form input[type="date"],
.estimate-form input[type="number"],
.estimate-form select,
.estimate-form textarea{
display:block;
width:100%;
max-width:100%;
padding:14px 16px;
border:1px solid #d8d8d8;
border-radius:8px;
background:#fff;
color:#222;
font:inherit;
font-size:15px;
line-height:1.6;
transition:
border-color .2s,
box-shadow .2s;
}

.estimate-form textarea{
min-height:160px;
resize:vertical;
}

.estimate-form input::placeholder,
.estimate-form textarea::placeholder{
color:#aaa;
}

.estimate-form input:focus,
.estimate-form select:focus,
.estimate-form textarea:focus{
border-color:#0f9d8a;
outline:none;
box-shadow:0 0 0 3px rgba(15,157,138,.12);
}

/* ===================================
必須表示
=================================== */

.estimate-form .required{
display:inline-block;
margin-left:8px;
padding:3px 8px;
border-radius:4px;
background:#d9534f;
color:#fff;
font-size:11px;
font-weight:700;
line-height:1.4;
vertical-align:middle;
}

/* ===================================
シミュレーター選択内容
=================================== */

.estimate-selection{
margin:40px 0;
padding:30px;
background:#f5f7f9;
border:1px solid #e6e9eb;
border-radius:12px;
}

.estimate-selection h3{
margin:0 0 25px;
color:#0f9d8a;
font-size:20px;
font-weight:700;
line-height:1.5;
}

.estimate-selection__field{
margin-bottom:18px;
}

.estimate-selection__field:last-of-type{
margin-bottom:0;
}

.estimate-selection__field > label{
display:block;
margin-bottom:8px;
font-size:14px;
font-weight:700;
line-height:1.5;
}

.estimate-selection input[readonly]{
background:#fff;
color:#333;
font-weight:700;
cursor:default;
}

.estimate-selection__note{
margin:20px 0 0;
color:#666;
font-size:13px;
line-height:1.8;
}

/* ===================================
プライバシーポリシー同意
=================================== */

.estimate-form__privacy{
margin:35px 0 25px;
padding:20px;
background:#f8f9fa;
border-radius:8px;
text-align:center;
}

.estimate-form__privacy .wpcf7-list-item{
margin:0;
}

.estimate-form__privacy label{
display:inline-flex;
align-items:center;
justify-content:center;
gap:8px;
cursor:pointer;
}

.estimate-form__privacy input[type="checkbox"]{
width:18px;
height:18px;
margin:0;
accent-color:#0f9d8a;
}

/* ===================================
送信ボタン
=================================== */

.estimate-form__submit{
text-align:center;
}

.estimate-form__submit p{
margin:0;
}

.estimate-form__submit input[type="submit"]{
display:flex;
align-items:center;
justify-content:center;
width:100%;
min-height:58px;
padding:17px 30px;
border:0;
border-radius:999px;
background:#0f9d8a;
color:#fff;
font:inherit;
font-size:17px;
font-weight:700;
line-height:1.5;
text-align:center;
cursor:pointer;
transition:
opacity .2s,
transform .2s;
}

.estimate-form__submit input[type="submit"]:hover{
opacity:.85;
}

.estimate-form__submit input[type="submit"]:active{
transform:translateY(1px);
}

.estimate-form__submit input[type="submit"]:disabled{
opacity:.55;
cursor:not-allowed;
}

/* ===================================
CF7エラー・送信結果
=================================== */

.estimate-page .wpcf7-not-valid-tip{
display:block;
margin-top:7px;
color:#d63638;
font-size:13px;
line-height:1.5;
}

.estimate-page .wpcf7 form .wpcf7-response-output{
margin:25px 0 0;
padding:15px 20px;
border-radius:8px;
font-size:14px;
line-height:1.7;
}

.estimate-page .wpcf7 form.sent .wpcf7-response-output{
border-color:#0f9d8a;
background:#eef8f6;
}

.estimate-page .wpcf7 form.invalid .wpcf7-response-output,
.estimate-page .wpcf7 form.unaccepted .wpcf7-response-output,
.estimate-page .wpcf7 form.payment-required .wpcf7-response-output{
border-color:#f1c27d;
background:#fff8ec;
}

.estimate-page .wpcf7-spinner{
display:block;
margin:15px auto 0;
}

/* ===================================
スマホ
=================================== */

@media (max-width:768px){

.estimate-hero{
min-height:300px;
padding:90px 20px 60px;
background-position:center;
}

.estimate-hero__en{
font-size:12px;
}

.estimate-hero__title{
font-size:30px;
}

.estimate-hero__text{
margin-top:16px;
font-size:14px;
}

.estimate-hero__text br{
display:none;
}

.estimate-breadcrumb{
padding:14px 15px;
}

.estimate-section{
padding:45px 15px 70px;
}

.estimate-section__head{
margin-bottom:30px;
}

.estimate-section__head h2{
font-size:24px;
}

.estimate-section__head p{
font-size:14px;
}

.estimate-notice{
margin-bottom:25px;
padding:20px 18px;
}

.estimate-notice h3{
font-size:16px;
}

.estimate-form-area{
padding:28px 18px;
border-radius:12px;
}

.estimate-form__lead{
margin-bottom:28px;
padding-bottom:20px;
font-size:14px;
}

.estimate-form__field{
margin-bottom:24px;
}

.estimate-form input[type="text"],
.estimate-form input[type="email"],
.estimate-form input[type="tel"],
.estimate-form input[type="date"],
.estimate-form input[type="number"],
.estimate-form select,
.estimate-form textarea{
padding:13px 14px;
font-size:16px;
}

.estimate-form textarea{
min-height:140px;
}

.estimate-selection{
margin:30px 0;
padding:22px 18px;
}

.estimate-selection h3{
margin-bottom:20px;
font-size:18px;
}

.estimate-form__privacy{
margin:28px 0 22px;
padding:18px 12px;
text-align:left;
}

.estimate-form__privacy label{
align-items:flex-start;
justify-content:flex-start;
}

.estimate-form__submit input[type="submit"]{
min-height:56px;
padding:16px 20px;
font-size:16px;
}

}

/* ===================================
小さいスマホ
=================================== */

@media (max-width:480px){

.estimate-hero{
min-height:270px;
padding:80px 15px 50px;
}

.estimate-hero__title{
font-size:27px;
}

.estimate-section{
padding-left:12px;
padding-right:12px;
}

.estimate-form-area{
padding:24px 15px;
}

.estimate-selection{
padding:20px 15px;
}

}
/* ===================================
ABOUTページ
=================================== */

.about-page{
background:#f5f7f9;
color:#222;
}

/* ===================================
ヒーロー
=================================== */

.about-hero{
position:relative;
display:flex;
align-items:center;
justify-content:center;
min-height:360px;
padding:110px 20px 80px;
overflow:hidden;
text-align:center;
color:#fff;

background-image:
linear-gradient(
rgba(9,70,82,.50),
rgba(9,70,82,.50)
),
url("img/about-hero.jpg");

background-position:center;
background-size:cover;
background-repeat:no-repeat;
}

.about-hero::before{
content:"";
position:absolute;
inset:0;
background:
radial-gradient(
circle at 20% 25%,
rgba(255,255,255,.13),
transparent 32%
);
pointer-events:none;
}

.about-hero__inner{
position:relative;
z-index:1;
width:100%;
max-width:1200px;
margin:0 auto;
}

.about-hero__en{
margin:0 0 12px;
color:#fff;
font-size:14px;
font-weight:700;
line-height:1.4;
letter-spacing:.2em;
}

.about-hero__title{
margin:0;
color:#fff;
font-size:42px;
font-weight:700;
line-height:1.4;
}

.about-hero__text{
margin:20px 0 0;
color:#fff;
font-size:15px;
line-height:1.9;
}

/* ===================================
パンくず
=================================== */

.about-breadcrumb{
padding:18px 20px;
background:transparent;
border:0;
font-size:13px;
}

.about-breadcrumb .container{
display:flex;
align-items:center;
gap:10px;
width:100%;
max-width:1200px;
margin:0 auto;
}

.about-breadcrumb a{
color:#0f9d8a;
text-decoration:none;
}

.about-breadcrumb a:hover{
text-decoration:underline;
}

.about-breadcrumb__separator{
color:#aaa;
}

/* ===================================
共通見出し
=================================== */

.about-section__head,
.company-section__head,
.docs-section__head{
margin-bottom:40px;
text-align:center;
}

.about-section__label,
.company-section__label,
.docs-section__label{
margin:0 0 10px;
color:#0f9d8a;
font-size:14px;
font-weight:700;
line-height:1.5;
letter-spacing:.1em;
}

.about-section__head h2,
.company-section__head h2,
.docs-section__head h2{
margin:0 0 20px;
font-size:30px;
font-weight:700;
line-height:1.5;
}

.about-section__head p{
margin:5px 0;
color:#555;
font-size:15px;
line-height:1.9;
}

/* ===================================
会社紹介
=================================== */

.about-section{
padding:60px 20px 100px;
}

.about-section > .container{
width:100%;
max-width:1200px;
margin:0 auto;
}

.about-section__inner{
max-width:900px;
margin:0 auto;
}

.about-intro{
overflow:hidden;
background:#fff;
border-radius:16px;
box-shadow:0 15px 35px rgba(0,0,0,.06);
}

.about-intro__image img{
display:block;
width:100%;
height:auto;
}

.about-intro__content{
padding:45px;
}

.about-intro__content h3{
margin:0 0 18px;
color:#0f9d8a;
font-size:25px;
line-height:1.5;
}

.about-intro__lead{
margin:0 0 28px;
font-size:17px;
font-weight:700;
line-height:1.9;
}

.about-intro__content p{
margin:0 0 18px;
color:#444;
font-size:15px;
line-height:2;
}

.about-intro__content p:last-child{
margin-bottom:0;
}

/* ===================================
会社情報
=================================== */

.company-section{
padding:100px 20px;
background:#fff;
}

.company-section > .container{
width:100%;
max-width:1200px;
margin:0 auto;
}

.company-section__inner{
max-width:900px;
margin:0 auto;
}

.company-table-wrap{
overflow:hidden;
border:1px solid #e1e4e5;
border-radius:14px;
}

.company-table{
width:100%;
border-collapse:collapse;
background:#fff;
}

.company-table th,
.company-table td{
padding:20px 24px;
border-bottom:1px solid #e1e4e5;
font-size:15px;
line-height:1.8;
text-align:left;
vertical-align:top;
}

.company-table tr:last-child th,
.company-table tr:last-child td{
border-bottom:0;
}

.company-table th{
width:30%;
background:#eef8f6;
color:#222;
font-weight:700;
}

.company-table td{
background:#fff;
}

.company-table a{
color:#0f9d8a;
text-decoration:none;
overflow-wrap:anywhere;
}

.company-table a:hover{
text-decoration:underline;
}

/* ===================================
約款・旅行条件書
=================================== */

.docs-section{
padding:100px 20px;
}

.docs-section > .container{
width:100%;
max-width:900px;
margin:0 auto;
}

.docs-inner{
display:grid;
grid-template-columns:repeat(2, minmax(0, 1fr));
gap:25px;
}

.docs-box{
padding:30px;
background:#fff;
border-radius:14px;
box-shadow:0 12px 30px rgba(0,0,0,.05);
}

.docs-box h3{
display:flex;
align-items:center;
gap:10px;
margin:0 0 22px;
color:#0f9d8a;
font-size:19px;
line-height:1.5;
}

.doc-link{
display:flex;
align-items:center;
justify-content:space-between;
gap:15px;
padding:15px 0;
border-bottom:1px solid #e5e5e5;
color:#333;
font-size:14px;
line-height:1.6;
text-decoration:none;
transition:.2s;
}

.doc-link:last-child{
border-bottom:0;
}

.doc-link:hover

.doc-link i{
flex:0 0 auto;
color:#d9534f;
font-size:19px;
}

/* ===================================
スマホ
=================================== */

.sp-only{
display:none;
}

@media (max-width:768px){

.about-hero{
min-height:300px;
padding:90px 20px 60px;
}

.about-hero__en{
font-size:12px;
}

.about-hero__title{
font-size:30px;
}

.about-hero__text{
margin-top:16px;
font-size:14px;
}

.about-breadcrumb{
padding:14px 15px;
}

.about-section{
padding:45px 15px 70px;
}

.about-section__head,
.company-section__head,
.docs-section__head{
margin-bottom:30px;
}

.about-section__head h2,
.company-section__head h2,
.docs-section__head h2{
font-size:24px;
}

.about-section__head p{
font-size:14px;
}

.about-intro{
border-radius:12px;
}

.about-intro__content{
padding:28px 20px;
}

.about-intro__content h3{
font-size:22px;
}

.about-intro__lead{
font-size:16px;
}

.company-section{
padding:70px 15px;
}

.company-table-wrap{
border-radius:10px;
}

.company-table th,
.company-table td{
display:block;
width:100%;
padding:15px 18px;
}

.company-table th{
border-bottom:0;
}

.company-table td{
padding-top:12px;
}

.docs-section{
padding:70px 15px;
}

.docs-inner{
grid-template-columns:1fr;
}

.docs-box{
padding:25px 20px;
}

.sp-only{
display:block;
}

}
/* ===================================
   ABOUTページ 調整
=================================== */

/* 会社紹介カード */
.about-page .about-intro{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  align-items:stretch;
  overflow:hidden;
  margin:0;
  background:#fff;
  border-radius:16px;
  box-shadow:0 15px 35px rgba(0,0,0,.06);
  text-align:left;
}

/* 画像側 */
.about-page .about-intro__image{
  min-height:100%;
}

.about-page .about-intro__image img{
  display:block;
  width:100%;
  height:100%;
  min-height:480px;
  object-fit:cover;
  object-position:center;
  border-radius:0;
}

/* テキスト側 */
.about-page .about-intro__content{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:45px 40px;
  text-align:left;
}

.about-page .about-intro__content h3{
  margin:0 0 18px;
  color:#0f9d8a;
  font-size:25px;
  line-height:1.5;
  text-align:left;
}

.about-page .about-intro__lead{
  margin:0 0 25px;
  color:#222;
  font-size:16px;
  font-weight:700;
  line-height:1.9;
  text-align:left;
}

.about-page .about-intro__content p{
  margin:0 0 18px;
  color:#444;
  font-size:15px;
  line-height:1.9;
  text-align:left;
}

.about-page .about-intro__content p:last-child{
  margin-bottom:0;
}


/* ===================================
   約款・旅行条件書
=================================== */

.about-page .docs-inner{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:25px;
  align-items:start;
}

.about-page .docs-box{
  height:100%;
  padding:28px;
  background:#fff;
  border-radius:14px;
  box-shadow:0 12px 30px rgba(0,0,0,.05);
}

.about-page .docs-box h3{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 20px;
  padding-bottom:15px;
  border-bottom:1px solid #ddd;
  color:#0f9d8a;
  font-size:19px;
  line-height:1.5;
}

/* 書類リンク */
.about-page .doc-link{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  width:100%;
  min-height:54px;
  margin-bottom:12px;
  padding:13px 15px;
  border:1px solid #0f9d8a;
  border-radius:8px;
  background:#fff;
  color:#333;
  font-size:14px;
  line-height:1.5;
  text-decoration:none;
  transition:
    background-color .2s,
    color .2s,
    transform .2s;
}

.about-page .doc-link:last-child{
  margin-bottom:0;
}

.about-page .doc-link:hover{
  background:#eef8f6;
  color:#0f9d8a;
  transform:translateY(-1px);
}

/* 以前の疑似要素を無効化 */
.about-page .doc-link::before,
.about-page .doc-link::after{
  content:none;
}

/* PDFアイコン */
.about-page .doc-link > i{
  flex:0 0 auto;
  color:#e34b4b;
  font-size:22px;
  line-height:1;
}


/* ===================================
   スマホ
=================================== */

@media (max-width:768px){

  .about-page .about-intro{
    display:block;
  }

  .about-page .about-intro__image img{
    width:100%;
    height:auto;
    min-height:0;
    aspect-ratio:16 / 10;
    object-fit:cover;
  }

  .about-page .about-intro__content{
    padding:28px 20px;
  }

  .about-page .about-intro__content h3{
    font-size:22px;
  }

  .about-page .about-intro__lead{
    font-size:15px;
  }

  .about-page .docs-inner{
    grid-template-columns:1fr;
  }

  .about-page .docs-box{
    padding:22px 18px;
  }

  .about-page .doc-link{
    min-height:52px;
    padding:12px 13px;
    font-size:13px;
  }

}
.about-page .doc-link .fa-file-pdf::before{
  content:"\f1c1" !important;
  font-family:"Font Awesome 6 Free" !important;
  font-weight:900 !important;
}
/* 書類リンク右側アイコン */
.about-page .doc-link > i{
  display:block;
  flex:0 0 auto;
  color:#e34b4b;
  font-size:22px;
  line-height:1;
  transition:color .2s;
}

/* マウスオン時もアイコン色を維持 */
.about-page .doc-link:hover > i{
  color:#e34b4b;
}

/* リンク全体 */
.about-page .doc-link:hover{
  background:#eef8f6;
  color:#0f9d8a;
  transform:translateY(-1px);
}
/* ===================================
フォーム内プライバシーポリシー
=================================== */

.form-privacy{
margin:35px 0 25px;
}

.form-privacy__title{
margin:0 0 12px;
color:#222;
font-size:16px;
font-weight:700;
line-height:1.5;
}

.form-privacy__scroll{
height:220px;
padding:22px 24px;
overflow-y:auto;
background:#f8f9fa;
border:1px solid #d8d8d8;
border-radius:8px;
color:#444;
font-size:13px;
line-height:1.9;
text-align:left;
}

.form-privacy__scroll p{
margin:0 0 18px;
}

.form-privacy__scroll h4{
margin:24px 0 8px;
color:#222;
font-size:14px;
font-weight:700;
line-height:1.6;
}

.form-privacy__scroll h4:first-of-type{
margin-top:0;
}

.form-privacy__scroll ol{
margin:0;
padding-left:1.6em;
}

.form-privacy__scroll li{
margin-bottom:8px;
}

.form-privacy__acceptance{
margin-top:18px;
padding:18px 20px;
background:#f8f9fa;
border-radius:8px;
text-align:center;
}

.form-privacy__acceptance .wpcf7-list-item{
margin:0;
}

.form-privacy__acceptance label{
display:inline-flex;
align-items:center;
gap:9px;
cursor:pointer;
}

.form-privacy__acceptance input[type="checkbox"]{
flex:0 0 auto;
width:18px;
height:18px;
margin:0;
accent-color:#0f9d8a;
}

.form-privacy__acceptance .wpcf7-list-item-label{
color:#222;
font-size:14px;
line-height:1.6;
}

/* スクロールバー */
.form-privacy__scroll::-webkit-scrollbar{
width:8px;
}

.form-privacy__scroll::-webkit-scrollbar-track{
background:#eee;
border-radius:8px;
}

.form-privacy__scroll::-webkit-scrollbar-thumb{
background:#aaa;
border-radius:8px;
}

.form-privacy__scroll::-webkit-scrollbar-thumb:hover

/* スマホ */
@media (max-width:768px){

.form-privacy__scroll{
height:200px;
padding:18px 16px;
font-size:12px;
}

.form-privacy__acceptance{
padding:16px 12px;
text-align:left;
}

.form-privacy__acceptance label{
align-items:flex-start;
}

}
/* ========================================
   お問い合わせページ
======================================== */

.contact-content {
  padding: 70px 20px 100px;
}

.contact-content .page-content__inner {
  width: min(760px, 100%);
  margin: 0 auto;
}

.contact-heading {
  margin-bottom: 45px;
  text-align: center;
}

.contact-heading h2 {
  margin: 0 0 20px;
  color: #111827;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.4;
}

.contact-heading p {
  margin: 0;
  color: #4b5563;
  font-size: 15px;
  line-height: 1.9;
}

.contact-heading__note {
  margin-top: 12px !important;
  font-size: 13px !important;
}

.required-mark,
.jts-contact-form .required {
  color: #f05252;
  font-size: 0.9em;
  font-weight: 700;
}

.contact-form__field {
  margin-bottom: 24px;
}

.contact-form__label {
  display: block;
  margin-bottom: 8px;
  color: #374151;
  font-size: 14px;
  font-weight: 700;
}

.jts-contact-form input[type="text"],
.jts-contact-form input[type="email"],
.jts-contact-form input[type="tel"],
.jts-contact-form select,
.jts-contact-form textarea {
  display: block;
  width: 100%;
  max-width: none;
  box-sizing: border-box;
  border: 1px solid #d4dae2;
  border-radius: 8px;
  background: #fff;
  color: #111827;
  font-family: inherit;
  font-size: 15px;
  line-height: 1.6;
  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}

.jts-contact-form input[type="text"],
.jts-contact-form input[type="email"],
.jts-contact-form input[type="tel"],
.jts-contact-form select {
  height: 48px;
  padding: 0 15px;
}

.jts-contact-form textarea {
  min-height: 165px;
  padding: 13px 15px;
  resize: vertical;
}

.jts-contact-form input::placeholder,
.jts-contact-form textarea::placeholder {
  color: #9ca6b5;
}

.jts-contact-form input:focus,
.jts-contact-form select:focus,
.jts-contact-form textarea:focus {
  outline: none;
  border-color: #009b87;
  box-shadow: 0 0 0 3px rgba(0, 155, 135, 0.1);
}

.contact-form__count {
  margin-top: 5px;
  color: #6b7280;
  font-size: 12px;
  text-align: right;
}


/* シミュレーター選択内容 */

.estimate-selection {
  margin-bottom: 40px;
  padding: 25px;
  border: 1px solid #cde6e1;
  border-radius: 10px;
  background: #f3fbf9;
}

.estimate-selection[hidden] {
  display: none;
}

.estimate-selection h3 {
  margin: 0 0 18px;
  color: #087f71;
  font-size: 19px;
  text-align: center;
}

.estimate-selection__list {
  overflow: hidden;
  border: 1px solid #d7e7e3;
  border-radius: 8px;
  background: #fff;
}

.estimate-selection__item {
  display: grid;
  grid-template-columns: 140px 1fr;
  border-bottom: 1px solid #e5ecea;
}

.estimate-selection__item:last-child {
  border-bottom: 0;
}

.estimate-selection__label,
.estimate-selection__value {
  padding: 13px 16px;
}

.estimate-selection__label {
  background: #edf8f5;
  color: #374151;
  font-weight: 700;
}

.estimate-selection__value {
  color: #111827;
}

.estimate-selection__item--price .estimate-selection__value {
  color: #e45635;
  font-size: 18px;
  font-weight: 700;
}


/* プライバシーポリシー */

.privacy-box {
  margin-top: 35px;
  padding: 25px;
  border: 1px solid #e0e4e9;
  border-radius: 9px;
  background: #fafbfc;
}

.privacy-box h3 {
  margin: 0 0 15px;
  color: #1f2937;
  font-size: 19px;
}

.privacy-box__scroll {
  height: 145px;
  overflow-y: auto;
  padding: 15px;
  border: 1px solid #d9dee5;
  background: #fff;
  color: #374151;
  font-size: 13px;
  line-height: 1.8;
}

.privacy-box__scroll h4 {
  margin: 20px 0 5px;
  font-size: 13px;
}

.privacy-box__scroll h4:first-of-type {
  margin-top: 15px;
}

.privacy-box__scroll p {
  margin: 0 0 12px;
}

.contact-form__acceptance {
  margin-top: 22px;
  color: #374151;
  font-size: 14px;
}

.contact-form__acceptance .wpcf7-list-item {
  margin: 0;
}

.contact-form__acceptance label {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  cursor: pointer;
}

.contact-form__acceptance input[type="checkbox"] {
  width: 17px;
  height: 17px;
  margin-top: 2px;
  flex: 0 0 auto;
  accent-color: #009b87;
}


/* 送信ボタン */

.contact-form__submit {
  margin-top: 35px;
  text-align: center;
}

.contact-form__submit p {
  margin: 0;
}

.jts-contact-form input[type="submit"] {
  min-width: 150px;
  padding: 14px 30px;
  border: 0;
  border-radius: 8px;
  background: #009b87;
  color: #fff;
  font-family: inherit;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  transition:
    background-color 0.2s ease,
    transform 0.2s ease;
}

.jts-contact-form input[type="submit"]:hover {
  background: #007f70;
  transform: translateY(-1px);
}

.jts-contact-form input[type="submit"]:disabled {
  opacity: 0.55;
  cursor: not-allowed;
  transform: none;
}


/* CF7メッセージ */

.jts-contact-form .wpcf7-not-valid-tip {
  margin-top: 5px;
  color: #dc2626;
  font-size: 13px;
}

.jts-contact-form .wpcf7-response-output {
  margin: 25px 0 0 !important;
  padding: 14px 18px !important;
  border-radius: 7px;
  font-size: 14px;
  line-height: 1.7;
}


/* ========================================
   お問い合わせ・スマートフォン
======================================== */

@media screen and (max-width: 767px) {

  .contact-content {
    padding: 45px 18px 70px;
  }

  .contact-heading {
    margin-bottom: 32px;
  }

  .contact-heading h2 {
    font-size: 25px;
  }

  .contact-heading p {
    font-size: 14px;
    text-align: left;
  }

  .pc-only {
    display: none;
  }

  .contact-form__field {
    margin-bottom: 20px;
  }

  .jts-contact-form input[type="text"],
  .jts-contact-form input[type="email"],
  .jts-contact-form input[type="tel"],
  .jts-contact-form select {
    height: 50px;
    font-size: 16px;
  }

  .jts-contact-form textarea {
    min-height: 180px;
    font-size: 16px;
  }

  .privacy-box {
    padding: 18px 15px;
  }

  .privacy-box__scroll {
    height: 180px;
    padding: 13px;
  }

  .estimate-selection {
    padding: 20px 15px;
  }

  .estimate-selection__item {
    display: block;
  }

  .estimate-selection__label {
    display: block;
    padding: 9px 13px;
  }

  .estimate-selection__value {
    display: block;
    padding: 11px 13px;
  }

  .jts-contact-form input[type="submit"] {
    width: 100%;
    max-width: 280px;
  }

}
.page-hero--contact {
  background-image:
    linear-gradient(
      rgba(0, 55, 65, 0.35),
      rgba(0, 55, 65, 0.35)
    ),
    url("./img/contact-hero.jpg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
html {
  scroll-behavior: smooth;
}

#plans,
#simulation {
  scroll-margin-top: 90px;
}
.news-hero {
  background-image: url("./img/news-hero.jpg");
}
/* ========================================
   新着情報・詳細ページ
======================================== */

.news-single-section {
  padding: 80px 20px 100px;
  background: #f7f9f9;
}

.news-single-section > .container {
  max-width: 900px;
}

.news-single-article {
  padding: 55px 60px;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 8px 30px rgba(20, 60, 65, 0.07);
}

.news-single-header {
  padding-bottom: 30px;
  border-bottom: 1px solid #e3e8e8;
}

.news-single-meta {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 18px;
}

.news-single-date {
  color: #6b7280;
  font-size: 14px;
  letter-spacing: 0.05em;
}

.news-single-meta .cat {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 90px;
  padding: 5px 14px;
  border-radius: 50px;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
}

.news-single-meta .cat.info {
  background: #dff4f1;
  color: #087f71;
}

.news-single-meta .cat.camp {
  background: #fff0dc;
  color: #d56b18;
}

.news-single-meta .cat.plan {
  background: #f3e8ff;
  color: #7c3aad;
}

.news-single-title {
  margin: 0;
  color: #1c2c32;
  font-size: 30px;
  line-height: 1.55;
}

.news-single-thumbnail {
  margin-top: 35px;
}

.news-single-thumbnail img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 10px;
}

.news-single-content {
  margin-top: 40px;
  color: #334155;
  font-size: 16px;
  line-height: 2;
}

.news-single-content > *:first-child {
  margin-top: 0;
}

.news-single-content > *:last-child {
  margin-bottom: 0;
}

.news-single-content p {
  margin: 0 0 1.8em;
}

.news-single-content h2 {
  margin: 60px 0 25px;
  padding: 15px 20px;
  border-left: 5px solid #129a86;
  background: #edf8f6;
  color: #1c2c32;
  font-size: 24px;
  line-height: 1.5;
}

.news-single-content h3 {
  margin: 45px 0 20px;
  padding-bottom: 10px;
  border-bottom: 2px solid #129a86;
  color: #1c2c32;
  font-size: 21px;
  line-height: 1.5;
}

.news-single-content h4 {
  margin: 35px 0 15px;
  color: #1c2c32;
  font-size: 18px;
}

.news-single-content ul,
.news-single-content ol {
  margin: 0 0 30px;
  padding-left: 1.6em;
}

.news-single-content li {
  margin-bottom: 8px;
}

.news-single-content a {
  color: #087f71;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.news-single-content img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
}

.news-single-content blockquote {
  margin: 35px 0;
  padding: 20px 25px;
  border-left: 4px solid #129a86;
  background: #f3f8f7;
}

.news-single-page-links {
  margin-top: 35px;
}


/* 前後の記事 */

.news-post-nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 25px;
  margin-top: 35px;
}

.news-post-nav__item {
  min-width: 0;
}

.news-post-nav__item--next {
  text-align: right;
}

.news-post-nav__label {
  display: block;
  margin-bottom: 8px;
  color: #7b868c;
  font-size: 12px;
}

.news-post-nav__item a {
  display: inline-block;
  color: #1c2c32;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.7;
}

.news-post-nav__item a:hover {
  color: #129a86;
}


/* 一覧へ戻る */

.news-single-back {
  margin-top: 55px;
  text-align: center;
}

.news-single-empty {
  padding: 60px 20px;
  border-radius: 10px;
  background: #fff;
  text-align: center;
}

.news-single-empty p {
  margin: 0 0 30px;
}


/* ========================================
   新着情報・詳細ページ スマホ
======================================== */

@media screen and (max-width: 767px) {

  .news-single-section {
    padding: 50px 16px 70px;
  }

  .news-single-article {
    padding: 30px 20px;
    border-radius: 8px;
  }

  .news-single-header {
    padding-bottom: 22px;
  }

  .news-single-meta {
    gap: 10px;
    margin-bottom: 14px;
  }

  .news-single-meta .cat {
    min-width: 75px;
    padding: 4px 10px;
  }

  .news-single-title {
    font-size: 23px;
    line-height: 1.5;
  }

  .news-single-thumbnail {
    margin-top: 25px;
  }

  .news-single-content {
    margin-top: 28px;
    font-size: 15px;
    line-height: 1.9;
  }

  .news-single-content h2 {
    margin-top: 45px;
    padding: 12px 15px;
    font-size: 20px;
  }

  .news-single-content h3 {
    margin-top: 38px;
    font-size: 18px;
  }

  .news-post-nav {
    display: block;
  }

  .news-post-nav__item {
    padding: 18px 0;
    border-bottom: 1px solid #dce4e4;
  }

  .news-post-nav__item--next {
    text-align: left;
  }

  .news-single-back {
    margin-top: 40px;
  }

}
/* ========================================
   トップ・動的観光プラン
======================================== */

.plan-thumb {
  display: block;
  position: relative;
  overflow: hidden;
  text-decoration: none;
}

.plan-thumb img {
  display: block;
  width: 100%;
  height: 230px;
  object-fit: cover;
  transition: transform 0.35s ease;
}

.plan-card:hover .plan-thumb img {
  transform: scale(1.04);
}

.plan-thumb__placeholder {
  display: flex;
  width: 100%;
  height: 230px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 8px;
  background: #edf4f3;
  color: #77908c;
}

.plan-thumb__placeholder i {
  font-size: 30px;
}

.plan-thumb__placeholder span {
  font-size: 13px;
}

.plan-title {
  margin: 14px 0 8px;
  color: #15262c;
  font-size: 20px;
  line-height: 1.5;
}

.plan-title a {
  color: inherit;
  text-decoration: none;
}

.plan-title a:hover {
  color: #0b9687;
}

.plan-subtitle {
  margin: 0 0 15px;
  color: #69777c;
  font-size: 14px;
  line-height: 1.7;
}

.plans-empty {
  padding: 50px 20px;
  border-radius: 10px;
  background: #f4f8f7;
  text-align: center;
}

.plans-empty p {
  margin: 0;
  color: #657478;
}


/* スマートフォン */

@media screen and (max-width: 767px) {

  .plan-thumb img,
  .plan-thumb__placeholder {
    height: 210px;
  }

  .plan-title {
    font-size: 18px;
  }

}
/* ========================================
   観光タクシーページ
======================================== */

.sightseeing-hero {
  background-image:
    linear-gradient(
      rgba(0, 105, 115, 0.55),
      rgba(0, 105, 115, 0.55)
    ),
    url("./img/sightseeing-hero.jpg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}


/* 共通見出し */

.sightseeing-section-label {
  margin: 0 0 10px;
  color: #0a9587;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.15em;
}

.sightseeing-intro {
  padding: 90px 20px;
  background: #fff;
}

.sightseeing-intro__head {
  max-width: 820px;
  margin: 0 auto;
  text-align: center;
}

.sightseeing-intro__head h2 {
  margin: 0 0 25px;
  color: #14272d;
  font-size: 34px;
  line-height: 1.5;
}

.sightseeing-intro__head > p:last-child {
  margin: 0;
  color: #59696f;
  font-size: 15px;
  line-height: 2;
}


/* メリット */

.sightseeing-merits {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 25px;
  margin-top: 55px;
}

.sightseeing-merit {
  padding: 35px 28px;
  border: 1px solid #dde7e6;
  border-radius: 14px;
  background: #fff;
  text-align: center;
  box-shadow: 0 8px 25px rgba(15, 72, 72, 0.05);
}

.sightseeing-merit__icon {
  display: inline-flex;
  width: 64px;
  height: 64px;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
  border-radius: 50%;
  background: #e5f6f3;
  color: #0a9587;
  font-size: 25px;
}

.sightseeing-merit h3 {
  margin: 0 0 13px;
  color: #14272d;
  font-size: 19px;
}

.sightseeing-merit p {
  margin: 0;
  color: #68777c;
  font-size: 14px;
  line-height: 1.8;
}


/* 観光プラン */

.sightseeing-plans {
  padding: 90px 20px 110px;
  background: #f3f7f6;
}

.sightseeing-plans__head {
  margin-bottom: 55px;
  text-align: center;
}

.sightseeing-plans__head h2 {
  margin: 0 0 14px;
  color: #14272d;
  font-size: 34px;
}

.sightseeing-plans__head > p:last-child {
  margin: 0;
  color: #657479;
}

.sightseeing-plan-list {
  display: grid;
  gap: 55px;
}

.sightseeing-plan-card {
  overflow: hidden;
  padding: 34px;
  border: 1px solid #dce5e4;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 10px 35px rgba(20, 65, 65, 0.07);
}


/* プランヘッダー */

.sightseeing-plan-card__header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  margin-bottom: 28px;
}

.sightseeing-plan-card__code {
  display: flex;
  width: 58px;
  height: 58px;
  align-items: center;
  justify-content: center;
  border-radius: 17px;
  background: #ef5b12;
  color: #fff;
  font-size: 19px;
  font-weight: 700;
}

.sightseeing-plan-card__heading h3 {
  margin: 0 0 5px;
  color: #13262d;
  font-size: 25px;
  line-height: 1.4;
}

.sightseeing-plan-card__heading p {
  margin: 0;
  color: #6a787d;
  font-size: 14px;
}

.sightseeing-plan-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.sightseeing-plan-card__meta span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 13px;
  border: 1px solid #dce4e4;
  border-radius: 50px;
  background: #fff;
  color: #4d6065;
  font-size: 13px;
  font-weight: 600;
}

.sightseeing-plan-card__meta i {
  color: #0a9587;
}


/* 写真3枚 */

.sightseeing-plan-gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 13px;
}

.sightseeing-plan-gallery__item,
.sightseeing-plan-gallery__placeholder {
  overflow: hidden;
  height: 230px;
  border-radius: 14px;
}

.sightseeing-plan-gallery__item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.sightseeing-plan-gallery__item:hover img {
  transform: scale(1.04);
}

.sightseeing-plan-gallery__placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 9px;
  background: #e8f0ef;
  color: #82928f;
}

.sightseeing-plan-gallery__placeholder i {
  font-size: 28px;
}

.sightseeing-plan-gallery__placeholder span {
  font-size: 13px;
}


/* 下部情報カード */

.sightseeing-plan-info {
  display: grid;
  grid-template-columns: 1.2fr 1fr 0.9fr;
  gap: 16px;
  margin-top: 18px;
}

.sightseeing-plan-info__box {
  min-width: 0;
  padding: 25px;
  border: 1px solid #dce5e4;
  border-radius: 14px;
  background: #fff;
}

.sightseeing-plan-info__box h4 {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0 0 17px;
  color: #172b31;
  font-size: 17px;
}

.sightseeing-plan-info__box h4 i {
  color: #0a9587;
}

.sightseeing-plan-info__box p,
.sightseeing-plan-point {
  margin: 0;
  color: #59696e;
  font-size: 14px;
  line-height: 1.9;
}

.sightseeing-plan-schedule {
  margin: 0;
  padding: 0;
  list-style: none;
}

.sightseeing-plan-schedule li {
  position: relative;
  margin-bottom: 8px;
  padding-left: 18px;
  color: #526469;
  font-size: 14px;
  line-height: 1.7;
}

.sightseeing-plan-schedule li:last-child {
  margin-bottom: 0;
}

.sightseeing-plan-schedule li::before {
  position: absolute;
  top: 0.72em;
  left: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #0a9587;
  content: "";
}


/* 料金カード */

.sightseeing-plan-info__box--price {
  border-color: #0a9587;
  background: #0a9587;
  color: #fff;
}

.sightseeing-plan-info__box--price h4,
.sightseeing-plan-info__box--price h4 i {
  color: #fff;
}

.sightseeing-plan-price {
  margin-bottom: 18px;
}

.sightseeing-plan-price:last-of-type {
  margin-bottom: 12px;
}

.sightseeing-plan-price span {
  display: block;
  margin-bottom: 5px;
  color: rgba(255, 255, 255, 0.78);
  font-size: 12px;
}

.sightseeing-plan-price strong {
  display: block;
  color: #fff;
  font-size: 21px;
  line-height: 1.45;
}

.sightseeing-plan-info__box--price small {
  display: block;
  color: rgba(255, 255, 255, 0.78);
  font-size: 11px;
  line-height: 1.6;
}


/* カード下ボタン */

.sightseeing-plan-card__footer {
  display: flex;
  gap: 13px;
  align-items: center;
  justify-content: flex-end;
  margin-top: 25px;
}

.sightseeing-plan-detail,
.sightseeing-plan-estimate {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 11px 22px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  transition:
    background-color 0.2s ease,
    color 0.2s ease,
    transform 0.2s ease;
}

.sightseeing-plan-detail {
  border: 1px solid #0a9587;
  background: #fff;
  color: #0a9587;
}

.sightseeing-plan-detail:hover {
  background: #e9f6f4;
  transform: translateY(-1px);
}

.sightseeing-plan-estimate {
  border: 1px solid #0a9587;
  background: #0a9587;
  color: #fff;
}

.sightseeing-plan-estimate:hover {
  background: #087e73;
  transform: translateY(-1px);
}

.sightseeing-plans__empty {
  padding: 55px 20px;
  border-radius: 13px;
  background: #fff;
  text-align: center;
}

.sightseeing-plans__empty p {
  margin: 0;
}


/* オリジナルプラン案内 */

.sightseeing-guide {
  padding: 90px 20px;
  background: #fff;
}

.sightseeing-guide__content {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(250px, 0.7fr);
  gap: 60px;
  align-items: center;
  padding: 55px 60px;
  border-radius: 20px;
  background: #ecf7f5;
}

.sightseeing-guide__text h2 {
  margin: 0 0 20px;
  color: #14272d;
  font-size: 30px;
}

.sightseeing-guide__text > p:not(.sightseeing-section-label) {
  margin: 0;
  color: #5b6b70;
  line-height: 1.9;
}

.sightseeing-guide__text ul {
  display: grid;
  gap: 11px;
  margin: 25px 0 0;
  padding: 0;
  list-style: none;
}

.sightseeing-guide__text li {
  display: flex;
  gap: 10px;
  align-items: center;
  color: #34494e;
  font-size: 14px;
}

.sightseeing-guide__text li i {
  color: #0a9587;
}

.sightseeing-guide__actions {
  display: grid;
  gap: 13px;
}

.sightseeing-guide__button {
  display: flex;
  min-height: 52px;
  align-items: center;
  justify-content: center;
  padding: 12px 20px;
  border-radius: 9px;
  font-weight: 700;
  text-decoration: none;
}

.sightseeing-guide__button--primary {
  background: #0a9587;
  color: #fff;
}

.sightseeing-guide__button--outline {
  border: 1px solid #0a9587;
  background: #fff;
  color: #0a9587;
}

.sightseeing-guide__text-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 5px;
  color: #34494e;
  font-size: 13px;
  font-weight: 700;
}


/* ========================================
   観光タクシー・タブレット
======================================== */

@media screen and (max-width: 1000px) {

  .sightseeing-plan-card__header {
    grid-template-columns: auto 1fr;
  }

  .sightseeing-plan-card__meta {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }

  .sightseeing-plan-gallery__item,
  .sightseeing-plan-gallery__placeholder {
    height: 190px;
  }

  .sightseeing-plan-info {
    grid-template-columns: 1fr 1fr;
  }

  .sightseeing-plan-info__box--price {
    grid-column: 1 / -1;
  }

}


/* ========================================
   観光タクシー・スマートフォン
======================================== */

@media screen and (max-width: 767px) {

  .sightseeing-intro {
    padding: 55px 16px 65px;
  }

  .sightseeing-intro__head h2,
  .sightseeing-plans__head h2 {
    font-size: 26px;
  }

  .sightseeing-intro__head > p:last-child {
    text-align: left;
  }

  .sightseeing-merits {
    grid-template-columns: 1fr;
    gap: 15px;
    margin-top: 38px;
  }

  .sightseeing-merit {
    padding: 28px 20px;
  }

  .sightseeing-plans {
    padding: 60px 15px 75px;
  }

  .sightseeing-plans__head {
    margin-bottom: 35px;
  }

  .sightseeing-plan-list {
    gap: 32px;
  }

  .sightseeing-plan-card {
    padding: 20px 15px;
    border-radius: 14px;
  }

  .sightseeing-plan-card__header {
    grid-template-columns: auto minmax(0, 1fr);
    gap: 13px;
  }

  .sightseeing-plan-card__code {
    width: 48px;
    height: 48px;
    border-radius: 13px;
    font-size: 16px;
  }

  .sightseeing-plan-card__heading h3 {
    font-size: 20px;
  }

  .sightseeing-plan-card__heading p {
    font-size: 12px;
    line-height: 1.6;
  }

  .sightseeing-plan-card__meta {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }

  .sightseeing-plan-card__meta span {
    padding: 7px 10px;
    font-size: 12px;
  }

  .sightseeing-plan-gallery {
    grid-template-columns: 1fr;
  }

  .sightseeing-plan-gallery__item,
  .sightseeing-plan-gallery__placeholder {
    height: 210px;
  }

  .sightseeing-plan-gallery__item:not(:first-child),
  .sightseeing-plan-gallery__placeholder:not(:first-child) {
    height: 150px;
  }

  .sightseeing-plan-info {
    grid-template-columns: 1fr;
  }

  .sightseeing-plan-info__box--price {
    grid-column: auto;
  }

  .sightseeing-plan-info__box {
    padding: 21px 18px;
  }

  .sightseeing-plan-card__footer {
    display: grid;
    grid-template-columns: 1fr;
  }

  .sightseeing-plan-detail,
  .sightseeing-plan-estimate {
    width: 100%;
  }

  .sightseeing-guide {
    padding: 60px 15px;
  }

  .sightseeing-guide__content {
    grid-template-columns: 1fr;
    gap: 35px;
    padding: 35px 20px;
  }

  .sightseeing-guide__text h2 {
    font-size: 24px;
  }

}
/* ========================================
   空港送迎ページ
======================================== */

.airport-hero {
  background-image:
    linear-gradient(
      rgba(0, 105, 115, 0.55),
      rgba(0, 105, 115, 0.55)
    ),
    url("./img/airport-hero.jpg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.airport-section-label {
  margin: 0 0 10px;
  color: #0a9587;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.15em;
}

.airport-section-head {
  margin-bottom: 48px;
  text-align: center;
}

.airport-section-head h2 {
  margin: 0 0 15px;
  color: #14272d;
  font-size: 34px;
  line-height: 1.5;
}

.airport-section-head > p:last-child {
  margin: 0;
  color: #657479;
  font-size: 15px;
  line-height: 1.8;
}

.sp-only {
  display: none;
}


/* ========================================
   導入
======================================== */

.airport-intro {
  padding: 90px 20px;
  background: #fff;
}

.airport-intro__head {
  max-width: 850px;
  margin: 0 auto;
  text-align: center;
}

.airport-intro__head h2 {
  margin: 0 0 24px;
  color: #14272d;
  font-size: 34px;
  line-height: 1.5;
}

.airport-intro__head > p:last-child {
  margin: 0;
  color: #59696f;
  font-size: 15px;
  line-height: 2;
}

.airport-features {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 55px;
}

.airport-feature {
  padding: 35px 28px;
  border: 1px solid #dfe8e7;
  border-radius: 14px;
  background: #fff;
  text-align: center;
  box-shadow: 0 8px 25px rgba(15, 72, 72, 0.05);
}

.airport-feature__icon {
  display: inline-flex;
  width: 64px;
  height: 64px;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
  border-radius: 50%;
  background: #e5f6f3;
  color: #0a9587;
  font-size: 25px;
}

.airport-feature h3 {
  margin: 0 0 13px;
  color: #14272d;
  font-size: 19px;
}

.airport-feature p {
  margin: 0;
  color: #68777c;
  font-size: 14px;
  line-height: 1.8;
}


/* ========================================
   車両紹介
======================================== */

.airport-vehicles {
  padding: 90px 20px 105px;
  background: #f3f7f6;
}

.airport-vehicle-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}

.airport-vehicle-card {
  overflow: hidden;
  border: 1px solid #dce5e4;
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 8px 25px rgba(20, 65, 65, 0.06);
}

.airport-vehicle-card__image {
  position: relative;
  overflow: hidden;
  height: 205px;
  background: #e9efee;
}

.airport-vehicle-card__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.airport-vehicle-card:hover .airport-vehicle-card__image img {
  transform: scale(1.04);
}

.airport-vehicle-card__capacity {
  position: absolute;
  right: 12px;
  bottom: 12px;
  padding: 6px 11px;
  border-radius: 50px;
  background: rgba(10, 149, 135, 0.92);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
}

.airport-vehicle-card__vip {
  position: absolute;
  top: 12px;
  left: 12px;
  padding: 6px 13px;
  border-radius: 50px;
  background: #ef5b12;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
}

.airport-vehicle-card__body {
  padding: 24px 21px 28px;
}

.airport-vehicle-card__type {
  margin: 0 0 8px;
  color: #0a9587;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.11em;
}

.airport-vehicle-card__body h3 {
  min-height: 58px;
  margin: 0 0 14px;
  color: #14272d;
  font-size: 18px;
  line-height: 1.55;
}

.airport-vehicle-card__body > p:last-child {
  margin: 0;
  color: #66767b;
  font-size: 13px;
  line-height: 1.8;
}

.airport-vehicle-card--vip {
  border-color: #0a9587;
}

.airport-vehicles__button {
  margin-top: 42px;
  text-align: center;
}

.airport-outline-button {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 12px 27px;
  border: 1px solid #0a9587;
  border-radius: 8px;
  background: #fff;
  color: #0a9587;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
}

.airport-outline-button:hover {
  background: #e8f5f3;
}


/* ========================================
   料金表
======================================== */

.airport-price {
  padding: 95px 20px 105px;
  background: #fff;
}

.airport-season-guide {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 340px));
  gap: 18px;
  justify-content: center;
  margin-bottom: 32px;
}

.airport-season-guide__item {
  display: flex;
  gap: 16px;
  align-items: center;
  padding: 18px 21px;
  border: 1px solid #dce5e4;
  border-radius: 12px;
  background: #fff;
}

.airport-season-guide__label {
  display: inline-flex;
  min-width: 70px;
  min-height: 35px;
  align-items: center;
  justify-content: center;
  border-radius: 50px;
  font-size: 13px;
  font-weight: 700;
}

.airport-season-guide__label--normal {
  background: #e4f5f2;
  color: #087f72;
}

.airport-season-guide__label--busy {
  background: #fff0e8;
  color: #df5817;
}

.airport-season-guide__item p {
  margin: 0;
  color: #526469;
  font-size: 13px;
  line-height: 1.7;
}

.airport-price-table-wrap {
  overflow-x: auto;
  border: 1px solid #d8e2e1;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 8px 28px rgba(20, 65, 65, 0.05);
  -webkit-overflow-scrolling: touch;
}

.airport-price-table {
  width: 100%;
  min-width: 900px;
  border-collapse: collapse;
  color: #24383d;
  font-size: 14px;
}

.airport-price-table th,
.airport-price-table td {
  padding: 15px 13px;
  border-right: 1px solid #dce4e3;
  border-bottom: 1px solid #dce4e3;
  text-align: center;
  vertical-align: middle;
}

.airport-price-table tr:last-child th,
.airport-price-table tr:last-child td {
  border-bottom: 0;
}

.airport-price-table th:last-child,
.airport-price-table td:last-child {
  border-right: 0;
}

.airport-price-table thead th {
  color: #20353a;
  font-weight: 700;
}

.airport-price-table__destination {
  width: 170px;
  background: #eef4f3;
}

.airport-price-table__season {
  padding-top: 17px !important;
  padding-bottom: 17px !important;
  color: #fff !important;
  font-size: 16px;
}

.airport-price-table__season small {
  display: block;
  margin-top: 5px;
  font-size: 11px;
  font-weight: 500;
}

.airport-price-table__season--normal {
  background: #0a9587;
}

.airport-price-table__season--busy {
  background: #ef5b12;
}

.airport-price-table thead tr:nth-child(2) th:nth-child(1),
.airport-price-table thead tr:nth-child(2) th:nth-child(2) {
  background: #e6f5f3;
}

.airport-price-table thead tr:nth-child(2) th:nth-child(3),
.airport-price-table thead tr:nth-child(2) th:nth-child(4) {
  background: #fff0e8;
}

.airport-price-table tbody th {
  background: #f5f8f7;
  text-align: left;
  font-weight: 700;
}

.airport-price-table tbody tr:nth-child(even) td {
  background: #fafcfc;
}

.airport-price-table tbody td {
  white-space: nowrap;
  font-weight: 600;
}

.airport-price-scroll {
  display: none;
  margin: 12px 0 0;
  color: #6a797d;
  font-size: 12px;
  text-align: center;
}

.airport-price-scroll i {
  margin-right: 5px;
  color: #0a9587;
}

.airport-price-notes {
  margin-top: 30px;
  padding: 25px 28px;
  border: 1px solid #efd8c9;
  border-radius: 13px;
  background: #fff9f4;
}

.airport-price-notes h3 {
  margin: 0 0 15px;
  color: #293b40;
  font-size: 17px;
}

.airport-price-notes ul {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.airport-price-notes li {
  position: relative;
  padding-left: 18px;
  color: #5a676b;
  font-size: 13px;
  line-height: 1.7;
}

.airport-price-notes li::before {
  position: absolute;
  top: 0.7em;
  left: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #ef5b12;
  content: "";
}


/* ========================================
   利用の流れ
======================================== */

.airport-flow {
  padding: 90px 20px 105px;
  background: #f3f7f6;
}

.airport-flow-list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}

.airport-flow-item {
  position: relative;
  padding: 35px 23px 30px;
  border: 1px solid #dce5e4;
  border-radius: 14px;
  background: #fff;
  text-align: center;
}

.airport-flow-item__number {
  position: absolute;
  top: 15px;
  left: 16px;
  color: #b4c3c0;
  font-size: 13px;
  font-weight: 700;
}

.airport-flow-item__icon {
  display: inline-flex;
  width: 62px;
  height: 62px;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
  border-radius: 50%;
  background: #e4f5f2;
  color: #0a9587;
  font-size: 24px;
}

.airport-flow-item h3 {
  margin: 0 0 13px;
  color: #14272d;
  font-size: 17px;
}

.airport-flow-item p {
  margin: 0;
  color: #66767b;
  font-size: 13px;
  line-height: 1.8;
}


/* ========================================
   CTA
======================================== */

.airport-cta {
  padding: 85px 20px;
  background: #fff;
}

.airport-cta__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(280px, 0.7fr);
  gap: 55px;
  align-items: center;
  padding: 50px 55px;
  border-radius: 20px;
  background: #eaf7f5;
}

.airport-cta__text h2 {
  margin: 0 0 17px;
  color: #14272d;
  font-size: 30px;
}

.airport-cta__text > p:last-child {
  margin: 0;
  color: #5c6c71;
  font-size: 14px;
  line-height: 1.9;
}

.airport-cta__buttons {
  display: grid;
  gap: 13px;
}

.airport-cta__button {
  display: flex;
  min-height: 54px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 13px 20px;
  border-radius: 9px;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
}

.airport-cta__button--primary {
  border: 1px solid #0a9587;
  background: #0a9587;
  color: #fff;
}

.airport-cta__button--primary:hover {
  background: #087f73;
}

.airport-cta__button--outline {
  border: 1px solid #0a9587;
  background: #fff;
  color: #0a9587;
}

.airport-cta__button--outline:hover {
  background: #f5fbfa;
}


/* ========================================
   タブレット
======================================== */

@media screen and (max-width: 1050px) {

  .airport-vehicle-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .airport-flow-list {
    grid-template-columns: repeat(2, 1fr);
  }

}


/* ========================================
   スマートフォン
======================================== */

@media screen and (max-width: 767px) {

  .sp-only {
    display: block;
  }

  .airport-section-head {
    margin-bottom: 34px;
  }

  .airport-section-head h2,
  .airport-intro__head h2 {
    font-size: 26px;
  }

  .airport-intro {
    padding: 55px 16px 65px;
  }

  .airport-intro__head > p:last-child {
    text-align: left;
  }

  .airport-features {
    grid-template-columns: 1fr;
    gap: 15px;
    margin-top: 38px;
  }

  .airport-feature {
    padding: 28px 20px;
  }

  .airport-vehicles {
    padding: 60px 15px 70px;
  }

  .airport-vehicle-grid {
    grid-template-columns: 1fr;
    gap: 17px;
  }

  .airport-vehicle-card__image {
    height: 220px;
  }

  .airport-vehicle-card__body h3 {
    min-height: auto;
  }

  .airport-price {
    padding: 60px 15px 75px;
  }

  .airport-season-guide {
    grid-template-columns: 1fr;
    gap: 11px;
  }

  .airport-season-guide__item {
    padding: 15px 17px;
  }

  .airport-price-table-wrap {
    margin-right: -15px;
    border-right: 0;
    border-radius: 12px 0 0 12px;
  }

  .airport-price-table {
    min-width: 820px;
    font-size: 13px;
  }

  .airport-price-table th,
  .airport-price-table td {
    padding: 13px 11px;
  }

  .airport-price-scroll {
    display: block;
  }

  .airport-price-notes {
    padding: 21px 18px;
  }

  .airport-flow {
    padding: 60px 15px 70px;
  }

  .airport-flow-list {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .airport-flow-item {
    padding: 30px 20px 25px;
  }

  .airport-cta {
    padding: 60px 15px;
  }

  .airport-cta__inner {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 35px 21px;
  }

  .airport-cta__text h2 {
    font-size: 24px;
  }

  .airport-cta__text > p:last-child br {
    display: none;
  }

}
/* ========================================
   ゴルフ場送迎ページ
======================================== */

.golf-hero {
  background-image:
    linear-gradient(
      rgba(0, 78, 72, 0.58),
      rgba(0, 78, 72, 0.58)
    ),
    url("./img/golf-hero.jpg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.golf-section-label {
  margin: 0 0 10px;
  color: #0a9587;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.15em;
}

.golf-section-head {
  margin-bottom: 48px;
  text-align: center;
}

.golf-section-head h2 {
  margin: 0 0 15px;
  color: #14272d;
  font-size: 34px;
  line-height: 1.5;
}

.golf-section-head > p:last-child {
  margin: 0;
  color: #657479;
  font-size: 15px;
  line-height: 1.8;
}


/* 導入 */

.golf-intro {
  padding: 90px 20px;
  background: #fff;
}

.golf-intro__head {
  max-width: 850px;
  margin: 0 auto;
  text-align: center;
}

.golf-intro__head h2 {
  margin: 0 0 24px;
  color: #14272d;
  font-size: 34px;
  line-height: 1.5;
}

.golf-intro__head > p:last-child {
  margin: 0;
  color: #59696f;
  font-size: 15px;
  line-height: 2;
}

.golf-features {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 55px;
}

.golf-feature {
  padding: 35px 28px;
  border: 1px solid #dfe8e7;
  border-radius: 14px;
  background: #fff;
  text-align: center;
  box-shadow: 0 8px 25px rgba(15, 72, 72, 0.05);
}

.golf-feature__icon {
  display: inline-flex;
  width: 64px;
  height: 64px;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
  border-radius: 50%;
  background: #e5f6f3;
  color: #0a9587;
  font-size: 25px;
}

.golf-feature h3 {
  margin: 0 0 13px;
  color: #14272d;
  font-size: 19px;
}

.golf-feature p {
  margin: 0;
  color: #68777c;
  font-size: 14px;
  line-height: 1.8;
}


/* 車両 */

.golf-vehicles {
  padding: 90px 20px 105px;
  background: #f3f7f6;
}

.golf-vehicle-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 450px));
  gap: 25px;
  justify-content: center;
}

.golf-vehicle-card {
  overflow: hidden;
  border: 1px solid #dce5e4;
  border-radius: 17px;
  background: #fff;
  box-shadow: 0 9px 28px rgba(20, 65, 65, 0.07);
}

.golf-vehicle-card--main {
  border-color: #0a9587;
}

.golf-vehicle-card__image {
  position: relative;
  overflow: hidden;
  height: 270px;
  background: #e9efee;
}

.golf-vehicle-card__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.golf-vehicle-card:hover .golf-vehicle-card__image img {
  transform: scale(1.04);
}

.golf-vehicle-card__capacity {
  position: absolute;
  right: 14px;
  bottom: 14px;
  padding: 7px 13px;
  border-radius: 50px;
  background: rgba(10, 149, 135, 0.94);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
}

.golf-vehicle-card__body {
  padding: 27px 27px 30px;
}

.golf-vehicle-card__type {
  margin: 0 0 8px;
  color: #0a9587;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
}

.golf-vehicle-card__body h3 {
  margin: 0 0 14px;
  color: #14272d;
  font-size: 23px;
  line-height: 1.5;
}

.golf-vehicle-card__body > p:not(.golf-vehicle-card__type) {
  margin: 0;
  color: #66767b;
  font-size: 14px;
  line-height: 1.8;
}

.golf-vehicle-card__price {
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid #e1e8e7;
}

.golf-vehicle-card__price span {
  display: block;
  margin-bottom: 5px;
  color: #6b797e;
  font-size: 12px;
}

.golf-vehicle-card__price strong {
  display: block;
  color: #0a9587;
  font-size: 25px;
}


/* 料金 */

.golf-price {
  padding: 95px 20px 105px;
  background: #fff;
}

.golf-price-guide {
  display: flex;
  max-width: 700px;
  align-items: center;
  justify-content: center;
  gap: 20px;
  margin: 0 auto 35px;
}

.golf-price-guide > div {
  min-width: 160px;
  padding: 16px 19px;
  border: 1px solid #dce5e4;
  border-radius: 11px;
  background: #fff;
  text-align: center;
}

.golf-price-guide span {
  display: block;
  margin-bottom: 5px;
  color: #738187;
  font-size: 11px;
}

.golf-price-guide strong {
  color: #20343a;
  font-size: 15px;
}

.golf-price-guide > i {
  color: #0a9587;
}

.golf-price-table-wrap {
  overflow-x: auto;
  border: 1px solid #d8e2e1;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 8px 28px rgba(20, 65, 65, 0.05);
  -webkit-overflow-scrolling: touch;
}

.golf-price-table {
  width: 100%;
  min-width: 900px;
  border-collapse: collapse;
  color: #24383d;
  font-size: 14px;
}

.golf-price-table th,
.golf-price-table td {
  padding: 19px 16px;
  border-right: 1px solid #dce4e3;
  border-bottom: 1px solid #dce4e3;
  vertical-align: middle;
}

.golf-price-table th:last-child,
.golf-price-table td:last-child {
  border-right: 0;
}

.golf-price-table tbody tr:last-child th,
.golf-price-table tbody tr:last-child td {
  border-bottom: 0;
}

.golf-price-table thead th {
  background: #0a9587;
  color: #fff;
  font-weight: 700;
  text-align: center;
}

.golf-price-table__rank {
  width: 85px;
}

.golf-price-table__course {
  min-width: 430px;
}

.golf-price-table__alphard {
  width: 180px;
}

.golf-price-table__hiace {
  width: 190px;
  background: #087f73 !important;
}

.golf-price-table tbody th {
  background: #f0f6f5;
  text-align: center;
}

.golf-price-table tbody tr:nth-child(even) td {
  background: #fafcfc;
}

.golf-rank {
  display: inline-flex;
  min-width: 53px;
  min-height: 37px;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  background: #ef5b12;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
}

.golf-course-list {
  columns: 2;
  column-gap: 30px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.golf-course-list li {
  position: relative;
  break-inside: avoid;
  margin-bottom: 8px;
  padding-left: 16px;
  color: #42565c;
  font-size: 13px;
  line-height: 1.6;
}

.golf-course-list li::before {
  position: absolute;
  top: 0.7em;
  left: 0;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #0a9587;
  content: "";
}

.golf-price-table__contact {
  color: #64757a;
  font-size: 13px;
  font-weight: 700;
  text-align: center;
}

.golf-price-table__amount {
  color: #0a9587;
  font-size: 19px;
  font-weight: 700;
  text-align: center;
  white-space: nowrap;
}

.golf-price-scroll {
  display: none;
  margin: 12px 0 0;
  color: #6a797d;
  font-size: 12px;
  text-align: center;
}

.golf-price-scroll i {
  margin-right: 5px;
  color: #0a9587;
}

.golf-price-notes {
  margin-top: 30px;
  padding: 25px 28px;
  border: 1px solid #efd8c9;
  border-radius: 13px;
  background: #fff9f4;
}

.golf-price-notes h3 {
  margin: 0 0 15px;
  color: #293b40;
  font-size: 17px;
}

.golf-price-notes ul {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.golf-price-notes li {
  position: relative;
  padding-left: 18px;
  color: #5a676b;
  font-size: 13px;
  line-height: 1.7;
}

.golf-price-notes li::before {
  position: absolute;
  top: 0.7em;
  left: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #ef5b12;
  content: "";
}


/* 利用の流れ */

.golf-flow {
  padding: 90px 20px 105px;
  background: #f3f7f6;
}

.golf-flow-list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}

.golf-flow-item {
  position: relative;
  padding: 35px 23px 30px;
  border: 1px solid #dce5e4;
  border-radius: 14px;
  background: #fff;
  text-align: center;
}

.golf-flow-item__number {
  position: absolute;
  top: 15px;
  left: 16px;
  color: #b4c3c0;
  font-size: 13px;
  font-weight: 700;
}

.golf-flow-item__icon {
  display: inline-flex;
  width: 62px;
  height: 62px;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
  border-radius: 50%;
  background: #e4f5f2;
  color: #0a9587;
  font-size: 24px;
}

.golf-flow-item h3 {
  margin: 0 0 13px;
  color: #14272d;
  font-size: 17px;
}

.golf-flow-item p {
  margin: 0;
  color: #66767b;
  font-size: 13px;
  line-height: 1.8;
}


/* CTA */

.golf-cta {
  padding: 85px 20px;
  background: #fff;
}

.golf-cta__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(280px, 0.7fr);
  gap: 55px;
  align-items: center;
  padding: 50px 55px;
  border-radius: 20px;
  background: #eaf7f5;
}

.golf-cta__text h2 {
  margin: 0 0 17px;
  color: #14272d;
  font-size: 30px;
}

.golf-cta__text > p:last-child {
  margin: 0;
  color: #5c6c71;
  font-size: 14px;
  line-height: 1.9;
}

.golf-cta__buttons {
  display: grid;
  gap: 13px;
}

.golf-cta__button {
  display: flex;
  min-height: 54px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 13px 20px;
  border-radius: 9px;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
}

.golf-cta__button--primary {
  border: 1px solid #0a9587;
  background: #0a9587;
  color: #fff;
}

.golf-cta__button--primary:hover {
  background: #087f73;
}

.golf-cta__button--outline {
  border: 1px solid #0a9587;
  background: #fff;
  color: #0a9587;
}

.golf-cta__button--outline:hover {
  background: #f5fbfa;
}


/* タブレット */

@media screen and (max-width: 1000px) {

  .golf-flow-list {
    grid-template-columns: repeat(2, 1fr);
  }

  .golf-course-list {
    columns: 1;
  }

}


/* スマートフォン */

@media screen and (max-width: 767px) {

  .golf-section-head {
    margin-bottom: 34px;
  }

  .golf-section-head h2,
  .golf-intro__head h2 {
    font-size: 26px;
  }

  .golf-intro {
    padding: 55px 16px 65px;
  }

  .golf-intro__head > p:last-child {
    text-align: left;
  }

  .golf-features {
    grid-template-columns: 1fr;
    gap: 15px;
    margin-top: 38px;
  }

  .golf-feature {
    padding: 28px 20px;
  }

  .golf-vehicles {
    padding: 60px 15px 70px;
  }

  .golf-vehicle-grid {
    grid-template-columns: 1fr;
  }

  .golf-vehicle-card__image {
    height: 225px;
  }

  .golf-price {
    padding: 60px 15px 75px;
  }

  .golf-price-guide {
    gap: 8px;
  }

  .golf-price-guide > div {
    min-width: 0;
    flex: 1;
    padding: 13px 8px;
  }

  .golf-price-guide > i {
    font-size: 11px;
  }

  .golf-price-guide strong {
    font-size: 12px;
  }

  .golf-price-table-wrap {
    margin-right: -15px;
    border-right: 0;
    border-radius: 12px 0 0 12px;
  }

  .golf-price-table {
    min-width: 820px;
    font-size: 13px;
  }

  .golf-price-table th,
  .golf-price-table td {
    padding: 16px 12px;
  }

  .golf-price-scroll {
    display: block;
  }

  .golf-price-notes {
    padding: 21px 18px;
  }

  .golf-flow {
    padding: 60px 15px 70px;
  }

  .golf-flow-list {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .golf-cta {
    padding: 60px 15px;
  }

  .golf-cta__inner {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 35px 21px;
  }

  .golf-cta__text h2 {
    font-size: 24px;
  }

}
/* ========================================
   採用情報ページ
======================================== */

.recruit-page-hero {
  background-image:
    linear-gradient(
      rgba(0, 82, 88, 0.58),
      rgba(0, 82, 88, 0.58)
    ),
    url("./img/recruit-hero.jpg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.recruit-page-label {
  margin: 0 0 10px;
  color: #0a9587;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.15em;
}

.recruit-page-section-head {
  margin-bottom: 48px;
  text-align: center;
}

.recruit-page-section-head h2 {
  margin: 0 0 14px;
  color: #14272d;
  font-size: 34px;
  line-height: 1.5;
}

.recruit-page-section-head > p:last-child {
  margin: 0;
  color: #647479;
  font-size: 15px;
  line-height: 1.8;
}


/* 導入 */

.recruit-page-intro {
  padding: 90px 20px;
  background: #fff;
}

.recruit-page-intro__grid {
  display: grid;
  grid-template-columns:
    minmax(0, 1.05fr)
    minmax(0, 0.95fr);
  gap: 65px;
  align-items: center;
}

.recruit-page-intro__image {
  position: relative;
  overflow: hidden;
  min-height: 520px;
  border-radius: 20px;
  background: #e6efed;
}

.recruit-page-intro__image > img {
  display: block;
  width: 100%;
  height: 520px;
  object-fit: cover;
}

.recruit-page-intro__image-label {
  position: absolute;
  right: 25px;
  bottom: 25px;
  left: 25px;
  padding: 21px 23px;
  border-radius: 12px;
  background: rgba(8, 99, 91, 0.9);
  color: #fff;
  backdrop-filter: blur(6px);
}

.recruit-page-intro__image-label strong,
.recruit-page-intro__image-label span {
  display: block;
}

.recruit-page-intro__image-label strong {
  margin-bottom: 5px;
  font-size: 20px;
}

.recruit-page-intro__image-label span {
  color: rgba(255, 255, 255, 0.82);
  font-size: 13px;
}

.recruit-page-intro__content h2 {
  margin: 0 0 25px;
  color: #14272d;
  font-size: 35px;
  line-height: 1.5;
}

.recruit-page-intro__content > p:not(.recruit-page-label) {
  margin: 0 0 18px;
  color: #596a6f;
  font-size: 15px;
  line-height: 2;
}

.recruit-page-scroll-button {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-top: 12px;
  padding: 12px 25px;
  border-radius: 8px;
  background: #0a9587;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
}

.recruit-page-scroll-button:hover {
  background: #087f73;
}


/* 働く魅力 */

.recruit-page-benefits {
  padding: 90px 20px 105px;
  background: #f3f7f6;
}

.recruit-page-benefit-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 19px;
}

.recruit-page-benefit-card {
  position: relative;
  overflow: hidden;
  padding: 36px 25px 31px;
  border: 1px solid #dce5e4;
  border-radius: 15px;
  background: #fff;
  text-align: center;
  box-shadow: 0 8px 27px rgba(20, 65, 65, 0.05);
}

.recruit-page-benefit-card__number {
  position: absolute;
  top: 14px;
  left: 17px;
  color: #c0cecb;
  font-size: 12px;
  font-weight: 700;
}

.recruit-page-benefit-card__icon {
  display: inline-flex;
  width: 67px;
  height: 67px;
  align-items: center;
  justify-content: center;
  margin-bottom: 21px;
  border-radius: 50%;
  background: #e4f5f2;
  color: #0a9587;
  font-size: 25px;
}

.recruit-page-benefit-card h3 {
  margin: 0 0 13px;
  color: #14272d;
  font-size: 18px;
}

.recruit-page-benefit-card p {
  margin: 0;
  color: #67777c;
  font-size: 13px;
  line-height: 1.8;
}


/* 仕事内容 */

.recruit-page-work {
  padding: 95px 20px 105px;
  background: #fff;
}

.recruit-page-work-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 19px;
}

.recruit-page-work-card {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 19px;
  align-items: flex-start;
  padding: 27px 28px;
  border: 1px solid #dce5e4;
  border-radius: 14px;
  background: #fff;
}

.recruit-page-work-card__icon {
  display: flex;
  width: 55px;
  height: 55px;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  background: #e5f6f3;
  color: #0a9587;
  font-size: 22px;
}

.recruit-page-work-card h3 {
  margin: 2px 0 9px;
  color: #14272d;
  font-size: 18px;
}

.recruit-page-work-card p {
  margin: 0;
  color: #65757a;
  font-size: 13px;
  line-height: 1.8;
}

.recruit-page-work-note {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 20px;
  align-items: center;
  margin-top: 30px;
  padding: 28px 31px;
  border-radius: 14px;
  background: #eaf7f5;
}

.recruit-page-work-note__icon {
  display: flex;
  width: 58px;
  height: 58px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #0a9587;
  color: #fff;
  font-size: 22px;
}

.recruit-page-work-note h3 {
  margin: 0 0 8px;
  color: #173037;
  font-size: 18px;
}

.recruit-page-work-note p {
  margin: 0;
  color: #5e7075;
  font-size: 14px;
  line-height: 1.8;
}


/* 募集要項 */

.recruit-page-requirements {
  padding: 95px 20px 105px;
  background: #f3f7f6;
  scroll-margin-top: 100px;
}

.recruit-page-table-wrap {
  overflow: hidden;
  max-width: 950px;
  margin: 0 auto;
  border: 1px solid #d8e2e1;
  border-radius: 14px;
  background: #fff;
}

.recruit-page-table {
  width: 100%;
  border-collapse: collapse;
  color: #34484d;
  font-size: 14px;
}

.recruit-page-table th,
.recruit-page-table td {
  padding: 21px 23px;
  border-bottom: 1px solid #dce5e4;
  vertical-align: top;
}

.recruit-page-table tr:last-child th,
.recruit-page-table tr:last-child td {
  border-bottom: 0;
}

.recruit-page-table th {
  width: 210px;
  background: #e9f5f3;
  color: #183037;
  font-weight: 700;
  text-align: left;
}

.recruit-page-table td {
  line-height: 1.8;
}

.recruit-page-table ul {
  margin: 0;
  padding-left: 1.4em;
}

.recruit-page-table li {
  margin-bottom: 4px;
}

.recruit-page-table__note {
  display: block;
  margin-top: 7px;
  color: #748287;
  font-size: 12px;
}


/* 応募の流れ */

.recruit-page-flow {
  padding: 90px 20px 105px;
  background: #fff;
}

.recruit-page-flow-list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}

.recruit-page-flow-item {
  position: relative;
  padding: 36px 23px 30px;
  border: 1px solid #dce5e4;
  border-radius: 14px;
  background: #fff;
  text-align: center;
}

.recruit-page-flow-item__number {
  position: absolute;
  top: 14px;
  left: 16px;
  color: #bac8c5;
  font-size: 12px;
  font-weight: 700;
}

.recruit-page-flow-item__icon {
  display: inline-flex;
  width: 62px;
  height: 62px;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
  border-radius: 50%;
  background: #e4f5f2;
  color: #0a9587;
  font-size: 23px;
}

.recruit-page-flow-item h3 {
  margin: 0 0 12px;
  color: #14272d;
  font-size: 17px;
}

.recruit-page-flow-item p {
  margin: 0;
  color: #68787d;
  font-size: 13px;
  line-height: 1.8;
}


/* FAQ */

.recruit-page-faq {
  padding: 90px 20px 105px;
  background: #f3f7f6;
}

.recruit-page-faq-list {
  display: grid;
  max-width: 900px;
  gap: 13px;
  margin: 0 auto;
}

.recruit-page-faq-item {
  overflow: hidden;
  border: 1px solid #dbe5e4;
  border-radius: 12px;
  background: #fff;
}

.recruit-page-faq-item summary {
  display: flex;
  gap: 15px;
  align-items: center;
  padding: 20px 23px;
  color: #20363c;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  list-style: none;
}

.recruit-page-faq-item summary::-webkit-details-marker {
  display: none;
}

.recruit-page-faq-item summary::after {
  margin-left: auto;
  color: #0a9587;
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  content: "\2b";
}

.recruit-page-faq-item[open] summary::after {
  content: "\f068";
}

.recruit-page-faq-item__mark {
  display: inline-flex;
  width: 35px;
  height: 35px;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #0a9587;
  color: #fff;
}

.recruit-page-faq-item__answer {
  display: grid;
  grid-template-columns: 35px 1fr;
  gap: 15px;
  padding: 0 23px 22px;
}

.recruit-page-faq-item__answer > span {
  display: inline-flex;
  width: 35px;
  height: 35px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #f07a31;
  color: #fff;
  font-weight: 700;
}

.recruit-page-faq-item__answer p {
  margin: 5px 0 0;
  color: #617277;
  font-size: 14px;
  line-height: 1.9;
}


/* CTA */

.recruit-page-cta {
  padding: 85px 20px;
  background: #fff;
}

.recruit-page-cta__inner {
  display: grid;
  grid-template-columns:
    minmax(0, 1.5fr)
    minmax(280px, 0.7fr);
  gap: 55px;
  align-items: center;
  padding: 50px 55px;
  border-radius: 20px;
  background: #eaf7f5;
}

.recruit-page-cta__content h2 {
  margin: 0 0 17px;
  color: #14272d;
  font-size: 30px;
}

.recruit-page-cta__content > p:last-child {
  margin: 0;
  color: #5d6e73;
  font-size: 14px;
  line-height: 1.9;
}

.recruit-page-cta__actions {
  display: grid;
  gap: 12px;
}

.recruit-page-cta__button {
  display: flex;
  min-height: 54px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 13px 20px;
  border-radius: 9px;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
}

.recruit-page-cta__button--primary {
  border: 1px solid #0a9587;
  background: #0a9587;
  color: #fff;
}

.recruit-page-cta__button--primary:hover {
  background: #087f73;
}

.recruit-page-cta__button--outline {
  border: 1px solid #0a9587;
  background: #fff;
  color: #0a9587;
}

.recruit-page-cta__button--outline:hover {
  background: #f7fbfa;
}

.recruit-page-cta__actions small {
  color: #6b7b80;
  font-size: 11px;
  text-align: center;
}


/* タブレット */

@media screen and (max-width: 1000px) {

  .recruit-page-intro__grid {
    gap: 40px;
  }

  .recruit-page-benefit-grid,
  .recruit-page-flow-list {
    grid-template-columns: repeat(2, 1fr);
  }

}


/* スマートフォン */

@media screen and (max-width: 767px) {

  .recruit-page-section-head {
    margin-bottom: 34px;
  }

  .recruit-page-section-head h2 {
    font-size: 26px;
  }

  .recruit-page-intro {
    padding: 55px 16px 65px;
  }

  .recruit-page-intro__grid {
    grid-template-columns: 1fr;
    gap: 36px;
  }

  .recruit-page-intro__image {
    min-height: 350px;
    border-radius: 14px;
  }

  .recruit-page-intro__image > img {
    height: 350px;
  }

  .recruit-page-intro__image-label {
    right: 15px;
    bottom: 15px;
    left: 15px;
    padding: 17px 18px;
  }

  .recruit-page-intro__image-label strong {
    font-size: 17px;
  }

  .recruit-page-intro__content h2 {
    font-size: 27px;
  }

  .recruit-page-intro__content > p:not(.recruit-page-label) {
    font-size: 14px;
  }

  .recruit-page-benefits {
    padding: 60px 15px 70px;
  }

  .recruit-page-benefit-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .recruit-page-benefit-card {
    padding: 30px 21px 26px;
  }

  .recruit-page-work {
    padding: 60px 15px 70px;
  }

  .recruit-page-work-grid {
    grid-template-columns: 1fr;
    gap: 13px;
  }

  .recruit-page-work-card {
    padding: 22px 18px;
  }

  .recruit-page-work-note {
    grid-template-columns: 1fr;
    padding: 25px 20px;
    text-align: center;
  }

  .recruit-page-work-note__icon {
    margin: 0 auto;
  }

  .recruit-page-requirements {
    padding: 60px 15px 70px;
  }

  .recruit-page-table-wrap {
    overflow: visible;
    border: 0;
    background: transparent;
  }

  .recruit-page-table,
  .recruit-page-table tbody,
  .recruit-page-table tr,
  .recruit-page-table th,
  .recruit-page-table td {
    display: block;
    width: 100%;
  }

  .recruit-page-table tr {
    overflow: hidden;
    margin-bottom: 14px;
    border: 1px solid #d8e2e1;
    border-radius: 10px;
    background: #fff;
  }

  .recruit-page-table th,
  .recruit-page-table td {
    border-bottom: 0;
  }

  .recruit-page-table th {
    padding: 13px 17px;
  }

  .recruit-page-table td {
    padding: 16px 17px;
    font-size: 13px;
  }

  .recruit-page-flow {
    padding: 60px 15px 70px;
  }

  .recruit-page-flow-list {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .recruit-page-faq {
    padding: 60px 15px 70px;
  }

  .recruit-page-faq-item summary {
    gap: 11px;
    padding: 17px 15px;
    font-size: 14px;
  }

  .recruit-page-faq-item__answer {
    gap: 11px;
    padding: 0 15px 18px;
  }

  .recruit-page-cta {
    padding: 60px 15px;
  }

  .recruit-page-cta__inner {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 35px 21px;
  }

  .recruit-page-cta__content h2 {
    font-size: 24px;
  }

  .recruit-page-cta__content > p:last-child br {
    display: none;
  }

}
/* ========================================
   車両・料金ページ
======================================== */

.vehicles-page-hero {
  background-image:
    linear-gradient(
      rgba(0, 82, 88, 0.58),
      rgba(0, 82, 88, 0.58)
    ),
    url("./img/vehicles-hero.jpg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.vehicles-section-label {
  margin: 0 0 10px;
  color: #0a9587;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.15em;
}

.vehicles-section-head {
  margin-bottom: 48px;
  text-align: center;
}

.vehicles-section-head h2 {
  margin: 0 0 15px;
  color: #14272d;
  font-size: 34px;
  line-height: 1.5;
}

.vehicles-section-head > p:last-child {
  margin: 0;
  color: #657479;
  font-size: 15px;
  line-height: 1.8;
}


/* 導入 */

.vehicles-intro {
  padding: 90px 20px;
  background: #fff;
}

.vehicles-intro__head {
  max-width: 850px;
  margin: 0 auto;
  text-align: center;
}

.vehicles-intro__head h2 {
  margin: 0 0 24px;
  color: #14272d;
  font-size: 34px;
  line-height: 1.5;
}

.vehicles-intro__head > p:last-child {
  margin: 0;
  color: #59696f;
  font-size: 15px;
  line-height: 2;
}

.vehicles-point-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 55px;
}

.vehicles-point-card {
  padding: 35px 28px;
  border: 1px solid #dfe8e7;
  border-radius: 14px;
  background: #fff;
  text-align: center;
  box-shadow: 0 8px 25px rgba(15, 72, 72, 0.05);
}

.vehicles-point-card__icon {
  display: inline-flex;
  width: 64px;
  height: 64px;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
  border-radius: 50%;
  background: #e5f6f3;
  color: #0a9587;
  font-size: 25px;
}

.vehicles-point-card h3 {
  margin: 0 0 13px;
  color: #14272d;
  font-size: 19px;
}

.vehicles-point-card p {
  margin: 0;
  color: #68777c;
  font-size: 14px;
  line-height: 1.8;
}


/* 車両ラインナップ */

.vehicles-list-section {
  padding: 90px 20px 110px;
  background: #f3f7f6;
}

.vehicles-list {
  display: grid;
  gap: 45px;
}

.vehicles-detail-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid #dce5e4;
  border-radius: 19px;
  background: #fff;
  box-shadow: 0 10px 32px rgba(20, 65, 65, 0.07);
}

.vehicles-detail-card--reverse .vehicles-detail-card__image {
  order: 2;
}

.vehicles-detail-card--reverse .vehicles-detail-card__content {
  order: 1;
}

.vehicles-detail-card--vip {
  border-color: #0a9587;
}

.vehicles-detail-card__image {
  position: relative;
  overflow: hidden;
  min-height: 450px;
  background: #e6eeed;
}

.vehicles-detail-card__image img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 450px;
  object-fit: cover;
  transition: transform 0.45s ease;
}

.vehicles-detail-card:hover .vehicles-detail-card__image img {
  transform: scale(1.035);
}

.vehicles-detail-card__capacity {
  position: absolute;
  right: 20px;
  bottom: 20px;
  padding: 8px 15px;
  border-radius: 50px;
  background: rgba(10, 149, 135, 0.94);
  color: #fff;
  font-size: 13px;
  font-weight: 700;
}

.vehicles-detail-card__vip-label {
  position: absolute;
  top: 20px;
  left: 20px;
  padding: 8px 17px;
  border-radius: 50px;
  background: #ef5b12;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
}

.vehicles-detail-card__content {
  padding: 45px 46px;
}

.vehicles-detail-card__type {
  margin: 0 0 9px;
  color: #0a9587;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.13em;
}

.vehicles-detail-card__content h3 {
  margin: 0 0 16px;
  color: #14272d;
  font-size: 29px;
  line-height: 1.45;
}

.vehicles-detail-card__lead {
  margin: 0;
  color: #5f7075;
  font-size: 14px;
  line-height: 1.9;
}

.vehicles-detail-card__specs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-top: 26px;
}

.vehicles-detail-card__specs > div {
  padding: 15px 12px;
  border-radius: 10px;
  background: #f0f7f6;
  text-align: center;
}

.vehicles-detail-card__specs span,
.vehicles-detail-card__specs strong {
  display: block;
}

.vehicles-detail-card__specs span {
  margin-bottom: 5px;
  color: #718085;
  font-size: 10px;
}

.vehicles-detail-card__specs strong {
  color: #1f363c;
  font-size: 12px;
  line-height: 1.5;
}

.vehicles-detail-card__features {
  display: grid;
  gap: 9px;
  margin: 25px 0 0;
  padding: 0;
  list-style: none;
}

.vehicles-detail-card__features li {
  position: relative;
  padding-left: 22px;
  color: #53656a;
  font-size: 13px;
  line-height: 1.7;
}

.vehicles-detail-card__features li::before {
  position: absolute;
  top: 0.2em;
  left: 0;
  color: #0a9587;
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  content: "\f058";
}

.vehicles-detail-card__actions {
  margin-top: 28px;
}

.vehicles-detail-card__button {
  display: inline-flex;
  min-height: 49px;
  align-items: center;
  justify-content: center;
  padding: 12px 24px;
  border-radius: 8px;
  background: #0a9587;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
}

.vehicles-detail-card__button:hover {
  background: #087f73;
}

.vehicles-load-note {
  margin: 30px 0 0;
  color: #6a797e;
  font-size: 12px;
  line-height: 1.8;
  text-align: center;
}


/* 観光料金 */

.vehicles-sightseeing-price {
  padding: 95px 20px 105px;
  background: #fff;
}

.vehicles-time-table-wrap,
.vehicles-airport-table-wrap {
  overflow-x: auto;
  border: 1px solid #d8e2e1;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 8px 28px rgba(20, 65, 65, 0.05);
  -webkit-overflow-scrolling: touch;
}

.vehicles-time-table {
  width: 100%;
  min-width: 850px;
  border-collapse: collapse;
  color: #24383d;
  font-size: 14px;
}

.vehicles-time-table th,
.vehicles-time-table td {
  padding: 19px 14px;
  border-right: 1px solid #dce4e3;
  border-bottom: 1px solid #dce4e3;
  text-align: center;
  vertical-align: middle;
}

.vehicles-time-table th:last-child,
.vehicles-time-table td:last-child {
  border-right: 0;
}

.vehicles-time-table tbody tr:last-child th,
.vehicles-time-table tbody tr:last-child td {
  border-bottom: 0;
}

.vehicles-time-table thead th {
  background: #0a9587;
  color: #fff;
  font-weight: 700;
}

.vehicles-time-table thead th:first-child {
  width: 260px;
  background: #087f73;
}

.vehicles-time-table tbody th {
  padding-left: 23px;
  background: #f0f6f5;
  text-align: left;
}

.vehicles-time-table tbody th strong,
.vehicles-time-table tbody th span {
  display: block;
}

.vehicles-time-table tbody th strong {
  margin-bottom: 4px;
  color: #20363c;
  font-size: 15px;
}

.vehicles-time-table tbody th span {
  color: #6b7b80;
  font-size: 11px;
  font-weight: 400;
}

.vehicles-time-table tbody td {
  color: #0a9587;
  font-weight: 700;
  white-space: nowrap;
}

.vehicles-time-table tbody tr:nth-child(even) td {
  background: #fafcfc;
}

.vehicles-time-table__vip-row th {
  background: #fff1e8 !important;
}

.vehicles-time-table__vip-row td {
  color: #df5b1b;
}

.vehicles-table-scroll {
  display: none;
  margin: 12px 0 0;
  color: #6a797d;
  font-size: 12px;
  text-align: center;
}

.vehicles-table-scroll i {
  margin-right: 5px;
  color: #0a9587;
}

.vehicles-price-notes {
  margin-top: 30px;
  padding: 25px 28px;
  border: 1px solid #dbe7e5;
  border-radius: 13px;
  background: #f4faf9;
}

.vehicles-price-notes--airport {
  border-color: #efd8c9;
  background: #fff9f4;
}

.vehicles-price-notes h3 {
  margin: 0 0 15px;
  color: #293b40;
  font-size: 17px;
}

.vehicles-price-notes ul {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.vehicles-price-notes li {
  position: relative;
  padding-left: 18px;
  color: #5a676b;
  font-size: 13px;
  line-height: 1.7;
}

.vehicles-price-notes li::before {
  position: absolute;
  top: 0.7em;
  left: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #0a9587;
  content: "";
}

.vehicles-price-notes--airport li::before {
  background: #ef5b12;
}


/* 空港料金 */

.vehicles-airport-price {
  padding: 95px 20px 105px;
  background: #f3f7f6;
}

.vehicles-season-guide {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 340px));
  gap: 18px;
  justify-content: center;
  margin-bottom: 32px;
}

.vehicles-season-guide__item {
  display: flex;
  gap: 16px;
  align-items: center;
  padding: 18px 21px;
  border: 1px solid #dce5e4;
  border-radius: 12px;
  background: #fff;
}

.vehicles-season-guide__label {
  display: inline-flex;
  min-width: 70px;
  min-height: 35px;
  align-items: center;
  justify-content: center;
  border-radius: 50px;
  font-size: 13px;
  font-weight: 700;
}

.vehicles-season-guide__label--normal {
  background: #e4f5f2;
  color: #087f72;
}

.vehicles-season-guide__label--busy {
  background: #fff0e8;
  color: #df5817;
}

.vehicles-season-guide__item p {
  margin: 0;
  color: #526469;
  font-size: 13px;
  line-height: 1.7;
}

.vehicles-airport-table {
  width: 100%;
  min-width: 900px;
  border-collapse: collapse;
  color: #24383d;
  font-size: 14px;
}

.vehicles-airport-table th,
.vehicles-airport-table td {
  padding: 15px 13px;
  border-right: 1px solid #dce4e3;
  border-bottom: 1px solid #dce4e3;
  text-align: center;
  vertical-align: middle;
}

.vehicles-airport-table th:last-child,
.vehicles-airport-table td:last-child {
  border-right: 0;
}

.vehicles-airport-table tbody tr:last-child th,
.vehicles-airport-table tbody tr:last-child td {
  border-bottom: 0;
}

.vehicles-airport-table__destination {
  width: 170px;
  background: #eef4f3;
}

.vehicles-airport-table__season {
  padding-top: 17px !important;
  padding-bottom: 17px !important;
  color: #fff !important;
  font-size: 16px;
}

.vehicles-airport-table__season small {
  display: block;
  margin-top: 5px;
  font-size: 11px;
  font-weight: 500;
}

.vehicles-airport-table__season--normal {
  background: #0a9587;
}

.vehicles-airport-table__season--busy {
  background: #ef5b12;
}

.vehicles-airport-table thead tr:nth-child(2) th:nth-child(1),
.vehicles-airport-table thead tr:nth-child(2) th:nth-child(2) {
  background: #e6f5f3;
}

.vehicles-airport-table thead tr:nth-child(2) th:nth-child(3),
.vehicles-airport-table thead tr:nth-child(2) th:nth-child(4) {
  background: #fff0e8;
}

.vehicles-airport-table tbody th {
  background: #f5f8f7;
  text-align: left;
}

.vehicles-airport-table tbody tr:nth-child(even) td {
  background: #fafcfc;
}

.vehicles-airport-table tbody td {
  font-weight: 600;
  white-space: nowrap;
}

.vehicles-airport-link {
  margin-top: 35px;
  text-align: center;
}

.vehicles-outline-button {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 12px 27px;
  border: 1px solid #0a9587;
  border-radius: 8px;
  background: #fff;
  color: #0a9587;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
}

.vehicles-outline-button:hover {
  background: #e8f5f3;
}


/* CTA */

.vehicles-cta {
  padding: 85px 20px;
  background: #fff;
}

.vehicles-cta__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(280px, 0.7fr);
  gap: 55px;
  align-items: center;
  padding: 50px 55px;
  border-radius: 20px;
  background: #eaf7f5;
}

.vehicles-cta__content h2 {
  margin: 0 0 17px;
  color: #14272d;
  font-size: 30px;
}

.vehicles-cta__content > p:last-child {
  margin: 0;
  color: #5d6e73;
  font-size: 14px;
  line-height: 1.9;
}

.vehicles-cta__actions {
  display: grid;
  gap: 13px;
}

.vehicles-cta__button {
  display: flex;
  min-height: 54px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 13px 20px;
  border-radius: 9px;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
}

.vehicles-cta__button--primary {
  border: 1px solid #0a9587;
  background: #0a9587;
  color: #fff;
}

.vehicles-cta__button--primary:hover {
  background: #087f73;
}

.vehicles-cta__button--outline {
  border: 1px solid #0a9587;
  background: #fff;
  color: #0a9587;
}

.vehicles-cta__button--outline:hover {
  background: #f7fbfa;
}


/* タブレット */

@media screen and (max-width: 1000px) {

  .vehicles-detail-card__content {
    padding: 35px 30px;
  }

  .vehicles-detail-card__specs {
    grid-template-columns: 1fr;
  }

}


/* スマートフォン */

@media screen and (max-width: 767px) {

  .vehicles-section-head {
    margin-bottom: 34px;
  }

  .vehicles-section-head h2,
  .vehicles-intro__head h2 {
    font-size: 26px;
  }

  .vehicles-intro {
    padding: 55px 16px 65px;
  }

  .vehicles-intro__head > p:last-child {
    text-align: left;
  }

  .vehicles-point-grid {
    grid-template-columns: 1fr;
    gap: 15px;
    margin-top: 38px;
  }

  .vehicles-point-card {
    padding: 28px 20px;
  }

  .vehicles-list-section {
    padding: 60px 15px 75px;
  }

  .vehicles-list {
    gap: 28px;
  }

  .vehicles-detail-card {
    display: block;
    border-radius: 14px;
  }

  .vehicles-detail-card--reverse .vehicles-detail-card__image,
  .vehicles-detail-card--reverse .vehicles-detail-card__content {
    order: initial;
  }

  .vehicles-detail-card__image,
  .vehicles-detail-card__image img {
    min-height: 260px;
    height: 260px;
  }

  .vehicles-detail-card__content {
    padding: 27px 20px 30px;
  }

  .vehicles-detail-card__content h3 {
    font-size: 23px;
  }

  .vehicles-detail-card__specs {
    grid-template-columns: 1fr;
  }

  .vehicles-detail-card__button {
    width: 100%;
  }

  .vehicles-sightseeing-price,
  .vehicles-airport-price {
    padding: 60px 15px 75px;
  }

  .vehicles-time-table-wrap,
  .vehicles-airport-table-wrap {
    margin-right: -15px;
    border-right: 0;
    border-radius: 12px 0 0 12px;
  }

  .vehicles-time-table {
    min-width: 780px;
    font-size: 13px;
  }

  .vehicles-airport-table {
    min-width: 820px;
    font-size: 13px;
  }

  .vehicles-time-table th,
  .vehicles-time-table td,
  .vehicles-airport-table th,
  .vehicles-airport-table td {
    padding: 13px 11px;
  }

  .vehicles-table-scroll {
    display: block;
  }

  .vehicles-season-guide {
    grid-template-columns: 1fr;
    gap: 11px;
  }

  .vehicles-price-notes {
    padding: 21px 18px;
  }

  .vehicles-cta {
    padding: 60px 15px;
  }

  .vehicles-cta__inner {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 35px 21px;
  }

  .vehicles-cta__content h2 {
    font-size: 24px;
  }

}
/* ========================================
   プライバシーポリシーページ
======================================== */

.privacy-page-hero {
  background-image:
    linear-gradient(
      rgba(0, 82, 88, 0.62),
      rgba(0, 82, 88, 0.62)
    ),
    url("./img/privacy-hero.jpg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.privacy-content {
  padding: 90px 20px 105px;
  background: #f3f7f6;
}

.privacy-content__inner {
  max-width: 960px;
  margin: 0 auto;
  padding: 58px 65px 65px;
  border: 1px solid #dce5e4;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 10px 32px rgba(20, 65, 65, 0.06);
}

.privacy-intro {
  margin-bottom: 52px;
  padding: 26px 30px;
  border-left: 4px solid #0a9587;
  border-radius: 0 10px 10px 0;
  background: #eef8f6;
}

.privacy-intro p {
  margin: 0;
  color: #475b61;
  font-size: 15px;
  line-height: 2;
}

.privacy-section {
  padding: 0 0 42px;
  margin: 0 0 42px;
  border-bottom: 1px solid #e1e8e7;
}

.privacy-section:last-child {
  padding-bottom: 0;
  margin-bottom: 0;
  border-bottom: 0;
}

.privacy-section h2 {
  display: flex;
  gap: 15px;
  align-items: center;
  margin: 0 0 22px;
  color: #173138;
  font-size: 22px;
  line-height: 1.5;
}

.privacy-section h2 span {
  display: inline-flex;
  width: 42px;
  height: 42px;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #0a9587;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
}

.privacy-section p {
  margin: 0 0 16px;
  color: #56686d;
  font-size: 14px;
  line-height: 2;
}

.privacy-section p:last-child {
  margin-bottom: 0;
}

.privacy-section ul {
  display: grid;
  gap: 10px;
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
}

.privacy-section li {
  position: relative;
  padding-left: 20px;
  color: #56686d;
  font-size: 14px;
  line-height: 1.8;
}

.privacy-section li::before {
  position: absolute;
  top: 0.75em;
  left: 0;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #0a9587;
  content: "";
}

.privacy-section--contact {
  padding-top: 4px;
}

.privacy-contact {
  margin-top: 25px;
  overflow: hidden;
  border: 1px solid #dce5e4;
  border-radius: 12px;
}

.privacy-contact dl {
  margin: 0;
}

.privacy-contact dl > div {
  display: grid;
  grid-template-columns: 190px 1fr;
  border-bottom: 1px solid #dce5e4;
}

.privacy-contact dl > div:last-child {
  border-bottom: 0;
}

.privacy-contact dt,
.privacy-contact dd {
  margin: 0;
  padding: 17px 20px;
  font-size: 14px;
  line-height: 1.7;
}

.privacy-contact dt {
  background: #eaf5f3;
  color: #20383e;
  font-weight: 700;
}

.privacy-contact dd {
  color: #53666b;
}

.privacy-contact a {
  color: #0a9587;
  font-weight: 700;
  text-decoration: none;
}

.privacy-contact a:hover {
  text-decoration: underline;
}

@media screen and (max-width: 767px) {
  .privacy-content {
    padding: 55px 15px 70px;
  }

  .privacy-content__inner {
    padding: 32px 20px 38px;
    border-radius: 13px;
  }

  .privacy-intro {
    margin-bottom: 38px;
    padding: 20px 18px;
  }

  .privacy-intro p {
    font-size: 14px;
    line-height: 1.9;
  }

  .privacy-section {
    padding-bottom: 32px;
    margin-bottom: 32px;
  }

  .privacy-section h2 {
    gap: 11px;
    font-size: 18px;
  }

  .privacy-section h2 span {
    width: 36px;
    height: 36px;
    font-size: 11px;
  }

  .privacy-section p,
  .privacy-section li {
    font-size: 13px;
  }

  .privacy-contact dl > div {
    display: block;
  }

  .privacy-contact dt {
    padding: 12px 15px;
  }

  .privacy-contact dd {
    padding: 14px 15px;
    overflow-wrap: anywhere;
  }
}
/* ========================================
   特定商取引法に基づく表記ページ
======================================== */

.terms-page-hero {
  background-image:
    linear-gradient(
      rgba(0, 82, 88, 0.62),
      rgba(0, 82, 88, 0.62)
    ),
    url("./img/terms-hero.jpg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.terms-content {
  padding: 90px 20px 105px;
  background: #f3f7f6;
}

.terms-content__inner {
  max-width: 1000px;
  margin: 0 auto;
}

.terms-intro {
  margin-bottom: 32px;
  padding: 24px 28px;
  border-left: 4px solid #0a9587;
  border-radius: 0 10px 10px 0;
  background: #eef8f6;
}

.terms-intro p {
  margin: 0;
  color: #475b61;
  font-size: 15px;
  line-height: 1.9;
}

.terms-table-wrap {
  overflow: hidden;
  border: 1px solid #d8e2e1;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 10px 32px rgba(20, 65, 65, 0.06);
}

.terms-table {
  width: 100%;
  border-collapse: collapse;
  color: #42565c;
  font-size: 14px;
}

.terms-table th,
.terms-table td {
  padding: 21px 24px;
  border-bottom: 1px solid #dce5e4;
  vertical-align: top;
  line-height: 1.9;
}

.terms-table tr:last-child th,
.terms-table tr:last-child td {
  border-bottom: 0;
}

.terms-table th {
  width: 250px;
  background: #eaf5f3;
  color: #20383e;
  font-weight: 700;
  text-align: left;
}

.terms-table td {
  background: #fff;
}

.terms-table a {
  color: #0a9587;
  font-weight: 700;
  text-decoration: none;
}

.terms-table a:hover {
  text-decoration: underline;
}

.terms-table__note {
  color: #718086;
  font-size: 12px;
}

.terms-contact-box {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 22px;
  align-items: center;
  margin-top: 32px;
  padding: 30px 32px;
  border: 1px solid #dce5e4;
  border-radius: 14px;
  background: #fff;
}

.terms-contact-box__icon {
  display: flex;
  width: 58px;
  height: 58px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #e4f5f2;
  color: #0a9587;
  font-size: 23px;
}

.terms-contact-box h2 {
  margin: 0 0 7px;
  color: #173138;
  font-size: 20px;
}

.terms-contact-box p {
  margin: 0;
  color: #5b6c71;
  font-size: 13px;
  line-height: 1.8;
}

.terms-contact-box > a {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 11px 20px;
  border-radius: 8px;
  background: #0a9587;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}

.terms-contact-box > a:hover {
  background: #087f73;
}

@media screen and (max-width: 767px) {
  .terms-content {
    padding: 55px 15px 70px;
  }

  .terms-intro {
    padding: 20px 18px;
  }

  .terms-intro p {
    font-size: 14px;
  }

  .terms-table-wrap {
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .terms-table,
  .terms-table tbody,
  .terms-table tr,
  .terms-table th,
  .terms-table td {
    display: block;
    width: 100%;
  }

  .terms-table tr {
    overflow: hidden;
    margin-bottom: 14px;
    border: 1px solid #d8e2e1;
    border-radius: 11px;
    background: #fff;
  }

  .terms-table th,
  .terms-table td {
    border-bottom: 0;
  }

  .terms-table th {
    padding: 13px 17px;
  }

  .terms-table td {
    padding: 16px 17px;
    font-size: 13px;
  }

  .terms-contact-box {
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 25px 20px;
    text-align: center;
  }

  .terms-contact-box__icon {
    margin: 0 auto;
  }

  .terms-contact-box > a {
    width: 100%;
  }
}
/* ========================================
   ご利用可能カード一覧
======================================== */

.payment-cards {
  padding: 70px 20px;
  background: #f8fbfb;
}

.payment-cards__inner {
  max-width: 1000px;
  margin: 0 auto;
  padding: 40px;
  background: #fff;
  border: 1px solid #dfe8e7;
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.04);
}

.payment-cards__notes {
  margin: 0 0 28px;
  padding-left: 1.4em;
}

.payment-cards__notes li {
  margin-bottom: 10px;
  color: #333;
  font-size: 15px;
  line-height: 1.9;
}

.payment-cards__notes li:last-child {
  margin-bottom: 0;
}

.payment-cards__title {
  margin: 0 0 22px;
  padding: 12px 18px;
  border: 1px solid #1c9b73;
  color: #14885f;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.4;
}

.payment-cards__text {
  margin: 0 0 24px;
  color: #333;
  font-size: 20px;
  line-height: 1.8;
}

.payment-cards__logos {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 18px;
  align-items: center;
}

.payment-cards__logos img {
  height: 38px;
  width: auto;
  object-fit: contain;
  display: block;
}

@media screen and (max-width: 767px) {
  .payment-cards {
    padding: 50px 15px;
  }

  .payment-cards__inner {
    padding: 24px 18px;
    border-radius: 12px;
  }

  .payment-cards__notes {
    margin-bottom: 22px;
  }

  .payment-cards__notes li {
    font-size: 14px;
    line-height: 1.8;
  }

  .payment-cards__title {
    margin-bottom: 16px;
    padding: 10px 12px;
    font-size: 20px;
  }

  .payment-cards__text {
    margin-bottom: 18px;
    font-size: 16px;
    line-height: 1.8;
  }

  .payment-cards__logos {
    gap: 12px;
  }

  .payment-cards__logos img {
    height: 28px;
  }
}
.jts-nav__parent-button {
display: block;
padding: 0;
border: 0;
background: transparent;
color: inherit;
font: inherit;
cursor: pointer;
}

.jts-nav__item--parent.is-current > .jts-nav__parent-button {
color: #0a9587;
}
.contact-card--whatsapp {
  padding-bottom: 28px;
}

.contact-card .icon.whatsapp {
  background: #e5f7ec;
  color: #25d366;
}

.contact-card__qr {
  width: 120px;
  margin: 18px auto 0;
  padding: 8px;
  border: 1px solid #dce5e4;
  border-radius: 10px;
  background: #fff;
}

.contact-card__qr img {
  display: block;
  width: 100%;
  height: auto;
}
@media screen and (max-width: 1000px) {
  .contact-cards .container {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (max-width: 767px) {
  .contact-cards .container {
    grid-template-columns: 1fr;
  }

  .contact-card__qr {
    width: 140px;
  }
}
/* ========================================
   多言語メニュー
======================================== */

.jts-language {
  position: relative;
  z-index: 1000;
}

.jts-language__button {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 8px 14px;
  border: 1px solid rgba(10, 149, 135, 0.35);
  border-radius: 7px;
  background: #fff;
  color: #20363c;
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition:
    border-color 0.2s ease,
    background-color 0.2s ease,
    color 0.2s ease;
}

.jts-language__button:hover,
.jts-language.is-open .jts-language__button {
  border-color: #0a9587;
  background: #eef8f6;
  color: #0a9587;
}

.jts-language__button .fa-globe {
  color: #0a9587;
  font-size: 15px;
}

.jts-language__button .fa-chevron-down {
  margin-left: 2px;
  font-size: 10px;
  transition: transform 0.2s ease;
}

.jts-language.is-open .jts-language__button .fa-chevron-down {
  transform: rotate(180deg);
}

.jts-language__menu {
  position: absolute;
  top: calc(100% + 9px);
  right: 0;
  visibility: hidden;
  width: 190px;
  margin: 0;
  padding: 7px;
  border: 1px solid #dce5e4;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(20, 50, 55, 0.15);
  list-style: none;
  opacity: 0;
  transform: translateY(-7px);
  transition:
    visibility 0.2s ease,
    opacity 0.2s ease,
    transform 0.2s ease;
}

.jts-language.is-open .jts-language__menu {
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
}

.jts-language__menu li {
  margin: 0;
  padding: 0;
}

.jts-language__item {
  display: flex;
  width: 100%;
  min-height: 42px;
  gap: 10px;
  align-items: center;
  padding: 8px 10px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: #344a50;
  font-family: inherit;
  font-size: 13px;
  text-align: left;
  cursor: pointer;
}

.jts-language__item:hover,
.jts-language__item.is-current {
  background: #edf8f6;
  color: #087f73;
}

.jts-language__code {
  display: inline-flex;
  width: 30px;
  height: 26px;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  border-radius: 5px;
  background: #e5f3f1;
  color: #087f73;
  font-size: 10px;
  font-weight: 700;
}

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

  .jts-language__button {
    width: 100%;
    min-height: 46px;
    justify-content: flex-start;
    padding-right: 17px;
    padding-left: 17px;
  }

  .jts-language__button .fa-chevron-down {
    margin-left: auto;
  }

  .jts-language__menu {
    position: static;
    display: none;
    visibility: visible;
    width: 100%;
    margin-top: 7px;
    box-shadow: none;
    opacity: 1;
    transform: none;
  }

  .jts-language.is-open .jts-language__menu {
    display: block;
  }
}
.jts-language__button {
  display: inline-flex;
  width: 68px;
  min-height: 38px;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 7px 10px;
  border: 1px solid rgba(10, 149, 135, 0.25);
  border-radius: 7px;
  background: #fff;
  color: #20363c;
  font-family: inherit;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.jts-language__button .fa-globe {
  color: #0a9587;
  font-size: 13px;
}

.jts-language__button .fa-chevron-down {
  font-size: 8px;
}
.jts-language {
  position: relative;
  z-index: 1000;
  margin-left: 24px;
}
/* Google翻訳ページでは固定ヘッダーを翻訳バーの下へ移動 */
html.is-google-translated .jts-header {
  top: 58px;
}
@media screen and (max-width: 767px) {
  html.is-google-translated .jts-header {
    top: 78px;
  }
}
.jts-language {
  position: relative;
  z-index: 1000;
  margin-left: 14px;

  display: flex;
  align-items: center;
}

.jts-language__button {
  appearance: none;
  -webkit-appearance: none;
  height: 44px;
  padding: 0 10px;

  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;

  font: inherit;
  line-height: 1;
  vertical-align: middle;
  cursor: pointer;
}
.jts-language {
  position: relative;
  z-index: 1000;
  margin-left: 14px;
  display: flex;
  align-items: center;
}

.jts-language__button {
  appearance: none;
  -webkit-appearance: none;

  width: auto;
  min-width: 98px;
  height: 38px;
  padding: 0 10px;

  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;

  background: #fff;
  border: 1px solid rgba(0, 149, 135, 0.25);
  border-radius: 10px;

  font: inherit;
  font-size: 13px;
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
}

.jts-language__button i {
  display: block;
  line-height: 1;
  flex-shrink: 0;
}
.common-documents {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.common-document-card {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 84px;
  padding: 18px 20px;
  color: #082b3a;
  text-decoration: none;
  background: #fff;
  border: 1px solid #d7e3e3;
  border-radius: 14px;
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease,
    border-color 0.2s ease;
}

.common-document-card:hover {
  transform: translateY(-2px);
  border-color: #159b8e;
  box-shadow: 0 8px 24px rgba(8, 43, 58, 0.08);
}

.common-document-card__icon {
  display: grid;
  place-items: center;
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  color: #159b8e;
  font-size: 22px;
  background: #e6f5f2;
  border-radius: 12px;
}

.common-document-card__title {
  flex: 1;
  font-weight: 700;
  line-height: 1.6;
}

.common-document-card__arrow {
  flex-shrink: 0;
  color: #159b8e;
  font-size: 14px;
}

@media screen and (max-width: 767px) {
  .common-documents {
    grid-template-columns: 1fr;
  }

  .common-document-card {
    min-height: 72px;
    padding: 14px 16px;
  }

  .common-document-card__icon {
    flex-basis: 42px;
    width: 42px;
    height: 42px;
    font-size: 19px;
  }
}
/* =========================================================
   ヘッダーロゴ切り替え
========================================================= */

.header-logo-images {
  position: relative;
  display: block;
  flex-shrink: 0;
  width: 40px;
  height: 40px;
}

.header-logo-images .header-logo-image {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 40px;
  height: 40px;
  object-fit: contain;
  transition: opacity 0.3s ease;
}

/* 通常時 */
.header-logo-image--white {
  opacity: 1;
}

.header-logo-image--black {
  opacity: 0;
}

/* スクロール時 */
#jtsHeader.jts-header--scrolled .header-logo-image--white {
  opacity: 0;
}

#jtsHeader.jts-header--scrolled .header-logo-image--black {
  opacity: 1;
}
.estimate-selected-tour {
  max-width: 720px;
  margin: 0 auto 28px;
  padding: 22px 26px;
  background: #eaf7f4;
  border: 1px solid rgba(0, 137, 123, 0.2);
  border-radius: 12px;
}

.estimate-selected-tour__label {
  margin: 0 0 8px;
  color: #00897b;
  font-size: 13px;
  font-weight: 700;
}

.estimate-selected-tour__name {
  margin: 0;
  color: #123;
  font-size: 20px;
  font-weight: 700;
}