/*
Theme Name: Starter Theme
Author: Your Name
Version: 1.0
Description: A minimal starter theme for WordPress.
*/

/* 背景色を「#FCFCFC」で統一 */
body {
  background-color: #FCFCFC;
}

/* Wordpressの余白を除去 */
body, html {
  margin: 0;
  padding: 0;
}

/* h2タグに下線とフォントを指定 */
.custom-underline {
  text-underline-offset: 15px;
  font-family: "源ノ角ゴシック JP", "Gen Shin Gothic", sans-serif;
  font-weight: bold;
}

@media screen and (max-width: 768px) {
  .custom-underline {
    text-underline-offset: 10px;
    font-family: "源ノ角ゴシック JP", "Gen Shin Gothic", sans-serif;
    font-weight: bold;
  }
}

/* h2タグ下線なし(上郷地域バス) */
.custom-nounderline {
  font-family: "源ノ角ゴシック JP", "Gen Shin Gothic", sans-serif;
  font-weight: bold;
}

@media screen and (max-width: 768px) {
  .custom-underline {
    text-underline-offset: 10px;
    font-family: "源ノ角ゴシック JP", "Gen Shin Gothic", sans-serif;
    font-weight: bold;
  }
}

/* アンダーライン削除 */
/* 段落ブロックのリンクの下線を消す */
.no-underline a,
a.no-underline {
  text-decoration: none ;
}


/* ページ最下部（CONTACT）にフォントを指定 */
.custom-subtitle {
  font-family: "Prompt", sans-serif;
  font-weight: bold;
}

/* テキストに太字のフォントを指定 */
.text-bold{
  font-family: "源ノ角ゴシック JP", "Gen Shin Gothic", sans-serif;
  font-weight: bold;
}

/* テキストにフォントを指定 */
.text-Regular{
  font-family: "源ノ角ゴシック JP", "Gen Shin Gothic", sans-serif;
}


/* ページトップボタン（右下に固定） */
.pagetop{
  position: fixed;
  right: 16px;
  bottom: 16px;
  width: 56px;          /* XDの画像サイズに合わせて調整 */
  height: 56px;
  border: 0;
  padding: 0;
  background: transparent;
  cursor: pointer;
  opacity: 0;
  pointer-events: none; /* 非表示時はクリック不可 */
  transition: opacity .25s ease;
  z-index: 9999;        /* 最前面に */
}
.pagetop.is-visible{
  opacity: 1;
  pointer-events: auto;
}
.pagetop img{
  display: block;
  width: 100%;
  height: auto;
}


/***************************
 FV（ファーストビュー）
***************************/
:root{
  --page-bg:#FCFCFC;
  --brand:#0183BC;

  /* XD 1920×955 → 約 49.7vw（PC側の見せ高さ） */
  --hero-h: clamp(380px, 49.7vw, 955px);

  /* 画像が占める横幅（XDでは 1410 / 1920 = 73.4375%） */
  --img-share: 73.4375%;
}

/* ベース */
.fv-hero{
  position: relative;
  width: 100%;
  background: var(--page-bg);
  isolation: isolate;
}

/* === PC（768px以上）=== */
@media (min-width: 768px){
  .fv-hero{
    min-height: var(--hero-h);
    overflow: hidden;
  }

  /* 右側の写真レイヤー */
  .fv-hero__media{
    position: absolute; inset: 0;
    width: var(--img-share);
    margin-left: calc(100% - var(--img-share)); /* 右寄せ */
    z-index: 0;
  }
  .fv-hero__media picture{ position: absolute; inset: 0; }
  .fv-hero__img{
    position: absolute; inset: 0;
    width: 100%; height: 100% !important;
    object-fit: cover !important;
    object-position: right top;
  }

  /* 左側テキストカラム */
  .fv-hero__copy{
    position: relative; z-index: 1;
    width: calc(100% - var(--img-share));
    min-height: var(--hero-h);
    display: flex; flex-direction: column; justify-content: center;
    padding-inline: clamp(20px, 5.5vw, 80px);
  }

  /* 左フェード（任意） */
  .fv-hero__media::before{
    content:""; position:absolute; inset:0; pointer-events:none;
    background: linear-gradient(90deg,
      rgba(252,252,252,1) 0%,
      rgba(252,252,252,0.85) 10%,
      rgba(252,252,252,0) 26%);
  }

  /* PC用会社ロゴを表示 */
  .fv-hero .fv-company-pc{ display:block !important; }
  .fv-hero .fv-company-sp{ display:none !important; }
}

/* === SP（〜767px：縦横共通）=== */
@media (max-width: 767px){
  .fv-hero{
    position: relative;
    width: 100%;
    height: 586px;      /* ← 高さを常に固定（ご指定） */
    overflow: hidden;
  }

  /* 写真レイヤーを全面に敷く */
  .fv-hero__media{
    position: absolute; inset: 0;
    width: 100%; height: 100%; z-index: 0;
  }
  .fv-hero__media picture{ position: absolute; inset: 0; }
  .fv-hero__img{
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    object-position: right center;
  }

  /* テキストを画像上に重ねて縦中央配置（左寄せ） */
  .fv-hero__copy{
    position: relative; z-index: 1;
    height: 100%;
    display: flex; flex-direction: column; justify-content: center;
    padding: clamp(16px, 6vw, 28px);
    gap: 14px;
  }

  /* SP用会社ロゴを表示 */
  .fv-hero .fv-company-pc{ display:none !important; }
  .fv-hero .fv-company-sp{ display:block !important; }
}

/* タイポ（色・ウェイト） */
.fv-hero__sm,
.fv-hero__lg{
  font-family: "源ノ角ゴシック JP","Noto Sans JP",sans-serif;
  font-weight: 900;
  color: var(--brand);
}
.fv-hero__sm{ white-space: nowrap; }

/* 見出し＋矢印（矢印を文字と同じ高さに連動） */
.fv-hero__lg{
  white-space: nowrap;
  line-height: 1.12;
  display: inline-flex;
  align-items: baseline;
  gap: clamp(6px, 0.6vw, 12px); /* 見出しと矢印の間隔 */
}

.fv-hero__sub{
  font-family: "Caveat", cursive;
  font-weight: 400;
  color: var(--brand);
}

/* 矢印（PNGの出し分け＆サイズ連動） */
.fv-arrow{
  height: 0.8em;          /* ← 文字と同じ高さに自動連動 */
  width: auto;
  display: inline-block;
  vertical-align: baseline;
  translate: 0 .06em;   /* ベースライン微調整（任意） */
}
.fv-arrow--pc{ display:inline-block; }
.fv-arrow--sp{ display:none; }
@media (max-width: 767px){
  .fv-arrow--pc{ display:none; }
  .fv-arrow--sp{ display:inline-block; }
}

/* ▼ FVの下の青バー：PC/Tab/SPで高さ固定 */
.fv-hero__bar{
  position:absolute; left:0; right:0; bottom:0; background:#0183BC;
}
@media (min-width: 1025px){ .fv-hero__bar{ height: 35px; } }                  /* PC */
@media (min-width: 768px) and (max-width: 1024px){ .fv-hero__bar{ height: 31px; } } /* Tablet */
@media (max-width: 767px){ .fv-hero__bar{ height: 27px; } }                   /* SP */

/* ===== フォントサイズ（大きい順の固定値） ===== */
@media (min-width: 1600px){
  .fv-hero__sm  { font-size: 42px; }
  .fv-hero__lg  { font-size: 84px; }
  .fv-hero__sub { font-size: 44px; }
}
@media (max-width: 1599px) and (min-width: 1350px){
  .fv-hero__sm  { font-size: 32px; }
  .fv-hero__lg  { font-size: 65px; }
  .fv-hero__sub { font-size: 30px; }
}
@media (max-width: 1349px) and (min-width: 1025px){
  .fv-hero__sm  { font-size: 24px; }
  .fv-hero__lg  { font-size: 50px; }
  .fv-hero__sub { font-size: 26px; }   /* ← タイプミス修正 */
}
@media (max-width: 1024px) and (min-width: 768px){
  .fv-hero__sm  { font-size: 20px; }
  .fv-hero__lg  { font-size: 40px; }
  .fv-hero__sub { font-size: 20px; }
}
@media (max-width: 767px) and (min-width: 481px){
  .fv-hero__sm  { font-size: 18px; }
  .fv-hero__lg  { font-size: 34px; }
  .fv-hero__sub { font-size: 24px; }
}
@media (max-width: 480px){
  .fv-hero__sm  { font-size: 12px; }
  .fv-hero__lg  { font-size: 26px; }
  .fv-hero__sub { font-size: 19px; }
}

/* ── FV：行間・段落間の微調整（PC）── */
@media (min-width: 768px){
  .fv-hero__copy > * { margin: 0; }
  .fv-hero__sm { margin-bottom: clamp(6px, 0.7vw, 12px); }     /* ①→② */
  .fv-hero__lg { margin-bottom: clamp(38px, 4.5vw, 50px); }    /* ②→③ */
  .fv-hero__sub{ margin-bottom: clamp(6px, 0.7vw, 12px); }     /* ③→④ */
  .fv-hero__co { line-height: 0; }
  .fv-hero__co img{ display:block; }
}

/* ── FV：行間・段落間の微調整（SP：〜767px）── */
@media (max-width: 767px){
  .fv-hero__copy > * { margin: 0; }

  /* ①「地域に…」→②「この街と…」タイト */
  .fv-hero__sm  { margin-bottom: 0; line-height: 0; }

  /* ②→③（見出し下）可読性を保ちつつ詰める */
  .fv-hero__lg{ margin-bottom: clamp(14px, 4.5vw, 20px); line-height: clamp(1.06, 2.8vw, 1.16); }

  /* ③「With…」→④「会社ロゴ」をさらに詰める */
  .fv-hero__sub { margin-bottom: 1px; line-height: 0.4; }

  /* 会社ロゴの上の余白最小化 */
  .fv-hero__co{ line-height: 0; margin-top: clamp(-2px, 0.6vw, 4px); }

  /* スマホ版ロゴの横幅（必要に応じ調整） */
  .fv-company-sp{ width: clamp(130px, 80%, 170px); }
}

/* 会社ロゴ（PC側の推奨可変幅） */
@media (min-width: 768px){
  .fv-company-pc{ width: clamp(150px, 85%, 450px); }
}

/* =========================
   街イラスト（PCのみ表示）
   ========================= */
@media (min-width:768px){
  .fv-hero{ position: relative; }
  .fv-city{
    position: absolute;
    /* 左カラム終端(=100%-img-share) から写真側へ少し食い込ませる */
    left: calc(100% - var(--img-share) + clamp(20px, 2vw, 90px));
    bottom: clamp(72px, 9vw, 450px);
    width: clamp(120px, 20vw, 400px);
    z-index: 3;
    pointer-events: none;
    filter: drop-shadow(0 8px 16px rgba(0,0,0,.08));
  }
  .fv-city img{ width:100%; height:auto; display:block; }
}
@media (max-width: 767px){
  .fv-city{ display: none; }
}



/***************************
 ヘッダー
/***************************/

.site-header {
  background: linear-gradient(to bottom, #FFFFFF, #EBEBEB);
  margin: 0;
  padding: 0;
  height: 128px;
  width: 100%;
  box-sizing: border-box;
}

/* 内部構造：ロゴ／メニュー／電話バナー */
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: nowrap;
  max-width: 1920px;
  margin: 0 auto;
  height: 128px;
  padding: 0 30px;
  box-sizing: border-box;
}

/* ロゴエリア */
.logo-area {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
}

.catchcopy {
  font-size: 15px;
  letter-spacing: 1.8px;
  margin: 0;
}

.logo-set {
  display: flex;
  align-items: center;
  gap: 10px;
}

.logo-set img:first-child {
  width: 66px;
  height: 29px;
}

.logo-set img:last-child {
  width: 289px;
  height: 33px;
}

/* メニュー */
.main-menu-list {
  display: flex;
  justify-content: center;
  align-items: center;
  list-style: none;
  padding: 0;
  margin: 0;
  gap: clamp(10px, 2vw, 40px); /* ← 可変で安全な間隔 */
}

.main-menu-list li {
  text-align: center;
}

.main-menu-list li a {
  display: inline-block;
  padding: 10px 0;
  font-size: 21px;
  font-weight: bold;
  color: #212121;
  text-decoration: none;
  white-space: nowrap;
  letter-spacing: 2.7px;
  position: relative;
}


.main-menu-list li.current-menu-item a::after {
  content: "";
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 100%;
  height: 6px;
  background: #0183BC;
}

.main-menu-list li a:hover {
  color: #0073aa;
  /*text-decoration: underline;*/
}


.hamburger {
  display: none;
  flex-direction: column;
  gap: 6px;
  cursor: pointer;
}
.hamburger span {
  width: 30px;
  height: 4px;
  background: #006EC9;
  border-radius: 4px;
}

/* 電話バナー */
.phone-banner {
  width: 288px;
  max-width: 100%;
  height: 90px;
  flex-shrink: 0; /* 幅が潰れないように */
}

/* 表示切り替え */
.pc-only {
  display: block;
}
.sp-only {
  display: none;
}


/* 1350px以下：電話バナー非表示 */
@media screen and (max-width: 1350px) {
  .phone-banner.pc-only {
    display: none;
  }
}

/* 1100px以下：スライドインメニュー用 */
@media screen and (max-width: 1100px) {
  .main-nav {
    position: fixed;
    top: 0;
    right: -100%;
    width: 80%;
    max-width: 360px;
    height: 100%;
    background: #fff;
    box-shadow: -4px 0 10px rgba(0, 0, 0, 0.1);
    transition: right 0.3s ease;
    z-index: 1000;
    display: flex;
    flex-direction: column;
    padding: 30px 20px;
    
    /* スクロール機能 */
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: calc(28px + env(safe-area-inset-bottom, 0px));
  }

  .main-nav.active {
    right: 0;
  }

  .main-menu-list {
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
    padding: 0;
    margin: 0;
    list-style: none;
  }

  .main-menu-list li a {
    font-size: 20px;
    font-weight: bold;
    color: #212121;
    text-decoration: none;
    letter-spacing: 1.5px;
    padding-bottom: 4px; /* 下線用の余白を少し狭める */
  }

  .hamburger {
    display: flex;
  }

  .phone-banner.pc-only {
    display: none;
  }

  .sp-only {
    display: block;
    margin-top: 30px;
    text-align: center;
    margin-bottom: 40px;
  }

  .sp-only img {
    width: 80%;
    max-width: 300px;
    height: auto;
  }

  .pc-only {
    display: none;
  }
}

/* PCサイズ（1101px以上）：通常横並びメニュー */
@media screen and (min-width: 1101px) {
  .main-nav {
    position: static;
    height: auto;
    width: auto;
    background: none;
    box-shadow: none;
    flex-direction: row;
    padding: 0;
    transition: none;
    display: flex;
  }

  .main-menu-list {
    flex-direction: row;
    align-items: center;
    gap: clamp(10px, 2vw, 40px);
  }

  .main-menu-list li a {
    font-size: 21px;
    font-weight: bold;
    color: #212121;
    text-decoration: none;
    letter-spacing: 2.7px;
    position: relative;
  }

  .main-menu-list li.current-menu-item a::after {
    content: "";
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 100%;
    height: 7px;
    background: #0183BC;
  }

  .main-menu-list li a:hover {
    color: #0073aa;
  }
}

/* スマホ対応（768px以下）＋スライドメニュー連動 */
@media screen and (max-width: 768px) {
  .site-header {
    height: 57px;
  }

  .header-inner {
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
    height: auto;
    padding: 10px 15px;
    position: relative;
  }

  .logo-area {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
  }

  .catchcopy {
    font-size: 8px;
    letter-spacing: 1px;
    margin: 0;
  }

  .logo-set {
    display: flex;
    align-items: center;
    gap: 8px;
  }

  .logo-set img:first-child {
    width: 30px;
    height: auto;
  }

  .logo-set img:last-child {
    width: 133px;
    height: auto;
  }
  
  .hamburger {
    display: flex;
    flex-direction: column;
    gap: 6px;
    position: absolute;
    top: 15px;
    right: 15px;
  }

  .main-nav {
    position: fixed;
    top: 0;
    right: -100%;
    width: 80%;
    max-width: 360px;
    height: 100%;
    background: #fff;
    box-shadow: -4px 0 10px rgba(0, 0, 0, 0.1);
    transition: right 0.3s ease;
    z-index: 1000;
    display: flex;
    flex-direction: column;
    padding: 30px 20px;
  }

  .main-nav.active {
    right: 0;
  }

  .main-menu-list {
    flex-direction: column;
    gap: 15px;
    list-style: none;
    padding: 0;
    margin: 0;
  }

  .main-menu-list li a {
    font-size: 18px;
    font-weight: bold;
    color: #212121;
    text-decoration: none;
    letter-spacing: 1.5px;
  }

  .sp-only {
    display: block;
    margin-top: 20px;
    text-align: center;
  }

  .sp-only img {
    width: 80%;
    max-width: 300px;
    height: auto;
  }

  .pc-only {
    display: none;
  }
  
  .phone-banner.pc-only {
    display: none;
  }
}


/* スライドメニュー内の「×」閉じるボタン */
.close-btn {
  position: absolute;
  top: 15px;
  right: 15px;
  font-size: 26px;
  font-weight: bold;
  color: #333;
  cursor: pointer;
  z-index: 1100;
  border: 1px solid #333;
  border-radius: 4px;
  width: 32px;
  height: 32px;
  line-height: 30px;
  text-align: center;
  background: #fff;
}

/* PCサイズでは非表示 */
@media screen and (min-width: 1101px) {
  .close-btn {
    display: none;
  }
}


/***************************
 フッター
/***************************/

.site-footer {
  margin-top: 80px;
  font-family: 'Noto Sans JP', sans-serif;
}

/* 上部の青背景 */
.footer-main {
  background-color: #0183BC;
  color: #fff;
  height: 395px;
  padding: 0px 20px;
  display: flex;
  align-items: center;
}

.footer-inner {
  width: 95%; 
  margin: 0 auto; 
  display: flex;
  grid-template-columns: 1fr 2fr 1fr;
  gap: 20px;
  align-items: center;
}


.footer-menu {
  flex: 2;
  display: flex;
  justify-content: center;
}

.footer-menu ul {
  display: grid;
  grid-template-columns: repeat(3, auto);
  row-gap: 10px;
  column-gap: 40px;
  justify-content: center;
  list-style: none;
  padding: 0;
  margin: 0;
}


.footer-menu li a {
  font-weight: bold;
  font-size: 26px;
  letter-spacing: 1px;
  color: #fff;
  text-decoration: none;
}
.footer-menu li a:hover {
  text-decoration: underline;
}

/* ロゴ */
.footer-logo {
  display: flex;
  align-items: center; /* ← ロゴの上下中央寄せ */
  justify-content: flex-start;
}
.footer-logo img {
  height: 45px;  /* ← ロゴ画像を小さくする（例: 40px） */
  width: auto;
}

/* 電話バナー */
.footer-phone {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  text-align: right;
  line-height: 0.5;  /* 行間を詰める 
  gap: 4px;          /* テキスト間の余白を縮小 */
}

.footer-phone .phone-text {
  font-size: 34px;   /* XDに近づけるため少し大きめに */
  font-weight: bold;
  margin-top: -5px;
}

.footer-phone .phone-link {
  display: flex;
  align-items: center;
  gap: 10px;
}

.footer-phone .phone-icon {
  font-size: 40px;   /* 電話アイコンを大きめに */
  color: #fff;
}
.footer-phone .phone-number {
  font-size: 54px;   /* 電話番号も大きく */
  font-weight: bold;
  color: #fff;
  text-decoration: none;
}
.footer-phone .phone-number:hover {
  text-decoration: underline;
}


/* 下部のグレー背景 */
.footer-bottom {
  background-color: #969696;
  color: #fff;
  height: 77px;
  display: flex;
  align-items: center;
}
.footer-bottom-inner {
  width: 98%;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  align-items: center;
}
.privacy-link {
  color: #fff;
  text-decoration: none;
  font-size: 18px;
  margin-left: 60px;
}
.privacy-link:hover {
  text-decoration: underline;
}
.copyright {
  font-size: 16px;
}


/* フッター ノートPCレスポンシブ対応 */
@media screen and (max-width: 1600px) and (min-width: 1351px) {
  .footer-main {
    height: 360px;
    padding: 0 20px;
  }

  .footer-inner {
    gap: 40px;
  }

  .footer-logo img {
    height: 38px;
  }

  .footer-menu li a {
    font-size: 22px;
  }

  .footer-phone .phone-text {
    font-size: 28px;
  }

  .footer-phone .phone-number {
    font-size: 44px;
  }

  .footer-phone .phone-icon {
    font-size: 34px;
  }
}


/* フッター メニュー非表示 */
@media screen and (max-width: 1350px) {
  .footer-menu {
    display: none;
  }

  .footer-inner {
    justify-content: space-between;
  }

  .footer-logo img {
    height: 35px;
  }

  .footer-phone .phone-text {
    font-size: 26px;
  }

  .footer-phone .phone-number {
    font-size: 40px;
  }

  .footer-phone .phone-icon {
    font-size: 32px;
  }
}


/* フッター タブレットレスポンシブ対応 */
@media screen and (max-width: 1100px) and (min-width: 769px) {
  .footer-main {
    flex-direction: column;
    height: 200px;
    padding: 30px 20px;
    justify-content: center;
  }

  .footer-inner {
    flex-direction: column;
    align-items: center;
    gap: 40px;
    height: 100%;
    display: flex;
    justify-content: center;
  }

  .footer-logo {
    justify-content: center;
  }

  .footer-logo img {
    height: 35px;
  }

  .footer-phone {
    align-items: center;
    text-align: center;
  }

  .footer-phone .phone-text {
    font-size: 24px;
  }

  .footer-phone .phone-number {
    font-size: 36px;
  }

  .footer-phone .phone-icon {
    font-size: 30px;
  }
}


/* フッター スマホレスポンシブ対応 */
@media screen and (max-width: 768px) {
  /* 青背景 */
  .footer-main {
  background-color: #0183BC;
  color: #fff;
  height: 200px; /* XD指定に合わせて */
  padding: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}


  .footer-inner {
    flex-direction: column;
    align-items: center;
    gap: 50px;
  }

  /* ロゴ */
  .footer-logo {
    display: flex;
    justify-content: center;
    width: 100%;
    padding-left: 0;
  }

  .footer-logo img {
    width: 273px;
    height: auto;
  }


  /* メニュー非表示 */
  .footer-menu {
    display: none;
  }

  /* 電話バナー */
  .footer-phone {
    align-items: center;
    text-align: center;
  }

  .footer-phone .phone-text {
    font-size: 22px;
    margin-top: 0;
  }

  .footer-phone .phone-icon {
    font-size: 32px;
  }

  .footer-phone .phone-number {
    font-size: 34px;
  }

  /* グレー背景 */
  .footer-bottom {
    background-color: #969696;
    color: #fff;
    height: 40px;
    padding: 10px 0;
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .footer-bottom-inner {
    display: flex;
    flex-direction: column;
    align-items: center;  /* 中央寄せ */
    text-align: center;
    width: 100%;
    padding: 0;
    gap: 2px;
  }

  .privacy-link {
    font-size: 12px;
    letter-spacing: 1.44px;
    font-weight: bold;
    color: #fff;
    text-decoration: none;

    text-align: center;
    width: 100%;
    padding-left: 0;  /* 左余白をリセット */
    margin: 0 auto;   /* 自動で中央 */
  }

  .copyright {
    font-size: 11px;
    margin-top: 0.5px;

    text-align: center;
    width: 100%;
    margin: 0 auto;
  }
}


/***************************
 ヒーローエリア(お問い合わせ)
/***************************/

.contact-hero {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  border-bottom: 1px solid #707070;
}

.contact-hero-left,
.contact-hero-right {
  position: relative;
}

.contact-hero-left {
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(180deg, rgba(180, 180, 180, 0.37), rgba(214, 214, 214, 0.37));
}

.contact-hero-inner {
  text-align: center; /* 横中央寄せ */
}

.contact-en {
  font-family: 'Prompt', sans-serif;
  font-weight: 800;
  font-size: 64px;
  letter-spacing: 0.02em;
  line-height: 1.1;
  color: #0183BC;
  margin-bottom: 0; /* ← 重要 */
}

.contact-ja {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  font-size: 43px;
  letter-spacing: 0em;
  line-height: 1.1;
  color: #0183BC;
  margin-top: 5px;      /* ← 重要 */
  padding-top: 0;     /* ← スマホ用と共通指定にしたい場合 */
}


/* 画像 */
.contact-hero-right img {
  width: 100%;
  height: auto;
  display: block;
}

.contact-hero-line {
  width: 100%;
  background-color: #0183BC;
  height: 35px; 
}


/* ----------- PC 1920px（基準） ----------- */
@media screen and (min-width: 1601px) {
  .contact-hero-left {
    flex: 0 0 646px;
  }
  .contact-hero-right {
    flex: 1;
  }

  .contact-en {
    font-size: 64px;
  }
  .contact-ja {
    font-size: 43px;
  }
}

/* ----------- 1600px ----------- */
@media screen and (max-width: 1600px) {
  .contact-hero-left {
    flex: 0 0 539px;
  }
  .contact-hero-right {
    flex: 1;
  }

  .contact-en {
    font-size: 56px;
  }
  .contact-ja {
    font-size: 37px;
  }
}

/* ----------- 1350px ----------- */
@media screen and (max-width: 1350px) {
  .contact-hero-left {
    flex: 0 0 454px;
  }

  .contact-en {
    font-size: 48px;
  }
  .contact-ja {
    font-size: 31px;
  }
}


/* スマホ横・タブレット：768px～1100px */
@media screen and (min-width: 768px) and (max-width: 1100px) {
  .contact-hero {
    flex-direction: row;
    flex-wrap: nowrap;
  }

  .contact-hero-left {
    flex: 0 0 33.65%;
    max-width: 33.65%;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: linear-gradient(180deg, rgba(180, 180, 180, 0.37), rgba(214, 214, 214, 0.37));
  }

  .contact-hero-right {
    flex: 0 0 66.35%;
    max-width: 66.35%;
    box-sizing: border-box;
  }

  .contact-hero-inner {
    text-align: center;
    width: 100%;
  }

  .contact-en {
    font-size: 40px;
  }

  .contact-ja {
    font-size: 26px;
    margin-top: 10px;
    letter-spacing: 0.03em;
  }
}


/* お問い合わせ スマホレスポンシブ対応 */
@media screen and (max-width: 767px) {
  .contact-hero {
    flex-direction: column-reverse;
  }

  .contact-hero-left,
  .contact-hero-right {
    flex: 1 1 100%;
  }

  .contact-hero-left {
    display: block;
    padding: 20px;
    opacity: 1;
  }

  .contact-hero-inner {
    text-align: left;
  }

  .contact-en {
    font-size: 30px;
    font-weight: 800;
    margin-bottom: 0;
    line-height: 1.1;
  }

  .contact-ja {
    font-size: 20px;
    letter-spacing: 0.03em;
    border-top: 2px solid #0183BC;
    padding-top: 10px;
    margin-top: 10px;
    width: 100%;
    display: block;
  }

  .contact-hero-right {
    overflow: hidden; /* はみ出し防止 */
    aspect-ratio: 390 / 243;
  }

  .contact-hero-right img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
    display: block;
  }

  .contact-hero-line {
    height: 14px;
  }
}


/***************************
 MESSAGE セクション
/***************************/
/* ===== 背景（PC/SP切替） ===== */
.message-section{
  background: url("images/message-bg-pc.png") no-repeat center bottom / cover;
  padding: 60px 0 120px;
}
@media (max-width: 767.98px){
  .message-section{
    background-image: url("images/message-bg-sp.png") no-repeat center bottom / cover;
  }
}

/* ===== ラッパー：PCは幅min(80%,1200px)で常にスケール ===== */
.message-inner{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  width: min(80%, 1400px);   /* ← ここを max-width:80% から変更 */
  margin:0 auto;
  gap:40px;
}

@media (max-width: 1350px) and (min-width: 768px){
.message-inner{
  width: min(80%, 1200px);
  gap: 28px;
  }
}

.message-text{ flex:1; text-align:left; color:#2F2E2E; }

/* 写真は可変幅で比率維持 */
.message-image{ flex:0 0 auto; width: min(38%, 620px); } /* ← 可変＆上限 */
.message-image picture,
.message-image img{
  display:block;
  width:100%;
  height:auto;
  border-radius:12px;
}

/* ===== タイトル／リード／本文 ===== */
.message-title{
  font-family:'Prompt', sans-serif;
  font-weight:700;
  color:#0183BC;
  font-size:clamp(33px, 3.5vw, 64px);
  margin:0 0 20px;
}
.message-lead{
  font-family:'源ノ角ゴシック JP','Noto Sans JP',sans-serif;
  font-weight:700;
  color:#0183BC;
  font-size:clamp(19px, 2.2vw, 43px);
  line-height:1.4;
  margin:0 0 28px;
}
.message-body{
  font-family:'源ノ角ゴシック Code JP','Noto Sans JP',monospace;
  font-weight:500;
  color:#2F2E2E;
  font-size:clamp(8px, 1.2vw, 20px);
  line-height:1.9;
}

/* ===== SPレイアウト：縦並び＋左右20px余白 ===== */
@media (max-width: 767.98px){
  .message-section {
    padding: 20px 0 160px; /* 上30px, 下40px → 好きな値に調整 */
  }
  .message-inner{
    flex-direction:column;
    width:100%;        /* ← リセット（全幅） */
    max-width: 640px;          
    padding: 0 20px;
    margin: 0 auto;
    gap:24px;
  }
  .message-inner,
  .message-image img {
    box-sizing: border-box;
  }
  .message-image{ text-align:center; width:100%; } /* 画像も全幅で中央 */
  .message-title{ font-size: clamp(28px, 8vw, 50px); margin-bottom: 16px; }
  .message-lead { font-size: clamp(16px, 4.8vw, 30px); line-height: 1.4; margin-bottom: 20px; }
  .message-body { font-size: clamp(14px, 4.2vw, 30px); line-height: 1.9; }
}

/* ===== 画像の微調整（PCのみ下げる等） ===== */
@media (min-width: 768px){
  .message-section{
    --img-shift-x: 0px;   /* 右へ動かす量 */
    --img-shift-y: 60px;  /* 下へ動かす量（40～80pxで微調整） */
  }
  .message-image{
    transform: translate(var(--img-shift-x), var(--img-shift-y));
    /* 必要なら下端合わせ */
    /* align-self: flex-end; */
  }
}


/***************************
 最新情報_ＮＥＷＳ
/***************************/
/* ===== 共通ラッパー：中央寄せ用 ===== */
.stacked-title-wrapper{
  text-align: center;
  margin-bottom: 40px;   /* 下余白はお好みで（例: セクション間のスペース） */
}

/* ===== 重ねタイトル本体 ===== */
.stacked-title{
  position: relative;
  display: inline-block;
  line-height: 1;
  --bg-y: -95%;           /* PCでの背景テキストの上下位置 */
}

/* 背景「NEWS」など大きい英字 */
.stacked-title-bg{
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, var(--bg-y));
  z-index: 0;
  font-family: 'Prompt', sans-serif;
  font-weight: 800;
  letter-spacing: .08em;
  font-size: clamp(50px, 6vw, 90px);    /* PC=70px, SP=50px */
  color: rgba(1, 131, 188, 0.13);       /* 不透明度13% */
  white-space: nowrap;
  pointer-events: none;
  user-select: none;
}

/* 前面「最新情報」など日本語見出し */
.stacked-title-main{
  position: relative;
  z-index: 1;
  color: #0183BC;
  font-size: clamp(28px, 3.2vw, 43px);  /* PC=43px, SP=28px */
  font-family: "源ノ角ゴシック JP", "Gen Shin Gothic", sans-serif;
  font-weight: bold;
  text-decoration: underline;
  text-underline-offset: 15px;
}

/* SPのときは背景テキスト位置を少し調整 */
@media (max-width: 767.98px){
  .stacked-title{ --bg-y: -90%; }
}


/***************************
 PayPay 導入案内
***************************/
.paypay-section{
  background: url("images/paypay-bg-pc.png") no-repeat center bottom / cover;
  padding: 60px 0;
}
@media (max-width: 767.98px){
  .paypay-section{
    background: url("images/paypay-bg-sp.png") no-repeat center bottom / cover;
    padding: 24px 0 56px;
  }
}

/* ラッパー */
.paypay-section .paypay-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  width: min(80%, 1000px);
  margin: 0 auto;
  gap: 20px;
}
@media (max-width: 1350px) and (min-width: 768px){
  .paypay-section .paypay-inner{ width: min(85%, 900px); gap: 14px; }
}
@media (max-width: 767.98px){
  .paypay-section .paypay-inner{
    flex-direction: column;
    width: 100%;
    padding: 0 20px;
    gap: 20px;
    box-sizing: border-box;
  }
}

/* 画像 */
.paypay-section .paypay-media{ flex: 0 0 auto; width: min(40%, 520px); }
.paypay-section .paypay-media picture,
.paypay-section .paypay-media img{
  display:block; width:100%; height:auto;
}
@media (max-width: 767.98px){
  .paypay-section .paypay-media{
    width: 80%;
    margin: 30px auto 0;
    text-align: center;
  }
}

/* テキスト */
.paypay-section .paypay-text{ flex: 1; text-align: left; }

.paypay-section .paypay-title{
  font-family: "源ノ角ゴシック JP","Noto Sans JP",sans-serif;
  font-weight: 900;
  color: #FE0034;
  font-size: clamp(23px, 3.2vw, 44px);
  line-height: 1.25;
  margin: 0 0 10px;
}
.paypay-section .paypay-lead{
  font-family: "源ノ角ゴシック Code JP","Noto Sans JP",monospace;
  font-weight: 700;
  color: #2F2E2E;
  font-size: clamp(16px, 1.4vw, 20px);
  line-height: 1.8;
  margin: 0;
}

/* PC/SP 表示切替 */
.paypay-section .pc-only{ display: block; }
.paypay-section .sp-only{ display: none; }
@media (max-width: 767.98px){
  .paypay-section .pc-only{ display: none; }
  .paypay-section .sp-only{ display: block; }
}

/* PayPay専用のリセット（グローバル適用をやめる） */
.paypay-section *, 
.paypay-section *::before, 
.paypay-section *::after {
  box-sizing: border-box;
}
.paypay-section img, 
.paypay-section picture {
  max-width: 100%;
  height: auto;
  display: block;
}

/* SP時：段落だけ狭い箱にして左寄せ */
@media (max-width: 767.98px){
  .paypay-section .paypay-lead.sp-only{
    text-align: left;
    max-width: 320px;
    width: 100%;
    margin: 0 auto 8px;
  }
}


/***************************
  事業内容セクション（この中だけで完結）
***************************/
.svc-section{
  margin: 0;

  /* ===== セクション内専用のカスタムプロパティ（変数） =====
     数値を微調整したい時はここだけ触ればOK。他セクションには影響しません。
  ----------------------------------------------------------------*/
  /* PC の画像・バッジ位置 */
  --svc-pc-img-top: clamp(20px, 5vw, 50px);           /* PCで画像を下げたい時はプラス（例: 10px） */
  --svc-pc-badge-top: clamp(-65px, -5vw, 40px);      /* PCバッジのY位置（マイナスで上へ） */
  --svc-pc-badge-left: clamp(-8px, -1vw, -6px);      /* PCバッジのX位置（マイナスで左へ） */

  /* SP の画像・バッジ位置（ご要望の「青線」「赤線」付近に合わせる初期値） */
  --svc-sp-img-top: clamp(28px, 7vw, 56px);       /* 画像を下げる量（青線付近へ） */
  --svc-sp-badge-top: clamp(-85px, -9.0vw, -50px);/* バッジを上へ（赤線付近へ） */
  --svc-sp-badge-left: -10px;                      /* バッジを少し左へ */

  /* SP 横向きで見出しなどを少し狭めたい時の最大幅 */
  --svc-heading-max-sp: 600px;
  --svc-heading-max-sp-land: 520px;
}

/* コンテナ幅 */
.svc-inner{ width:min(80%,1200px); margin:0 auto; }
@media (max-width:767.98px){
  .svc-inner{ width:100%; padding:0 20px; box-sizing:border-box; }
}

/* 見出し（会社案内と同じ並び） */
.svc-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin:0 0 14px; }
.svc-head__ja{ margin:0; color:#0183BC; font-weight:700; font-size:clamp(28px,2.5vw,43px); }
.svc-head__en{ font-family:"Prompt",sans-serif; font-weight:700; color:#0183BC; font-size:clamp(24px,3.5vw,58px); letter-spacing:.06em; }
.svc-head__ja.custom-underline{ text-decoration:underline; text-decoration-thickness:4px; }
@media (max-width:767.98px){
  .svc-head__ja{ margin-top:20px; margin-bottom:15px; }
  .svc-head__en{ margin-top:20px; margin-bottom:15px; }
}

/* PC/SP 出し分け（リードの改行用） */
.svc-pc-only{ display:block; }
.svc-sp-only{ display:none; }
@media (max-width:767.98px){
  .svc-pc-only{ display:none; }
  .svc-sp-only{ display:block; }
}

/* リード */
.svc-lead{
  font-family:"源ノ角ゴシック JP","Noto Sans JP",sans-serif;
  font-weight:700; color:#212121; text-align:left;
  font-size:clamp(20px,2.2vw,36px);
  margin:0 0 12px;
}

/* 小見出し（例：＜タクシー事業＞／＜バス事業＞） */
.svc-subhead{
  font-family:"源ノ角ゴシック JP","Noto Sans JP",sans-serif;
  font-weight:700; color:#0183BC; text-align:left;
  font-size:clamp(28px,2.5vw,43px);
  margin:18px 0 10px;
}

/* カード行：中央寄せ */
.svc-row{
  display:flex;
  flex-wrap:wrap;           /* 折り返し可 */
  justify-content:center;   /* 中央寄せ */
  gap:40px;
  margin-bottom:20px;
}
@media (max-width:767.98px){
  .svc-row{
    flex-direction:column;  /* 縦並び */
    align-items:center;     /* カードを中央寄せ */
    gap:22px;
  }
  .svc-card{
    width:100%;
    max-width:520px;
  }
}

/* カード */
.svc-card{ width:100%; max-width:520px; }
.svc-thumb{ position:relative; }

/* 画像：デフォはPC値、SPで変数に差し替え */
.svc-img{
  display:block; width:100%; height:auto; border-radius:12px;
  margin-top: var(--svc-pc-img-top);          /* ← PC 用（初期 0px） */
}

/* 番号バッジ：デフォはPC値、SPで変数に差し替え */
.svc-badge{
  position:absolute;
  left: var(--svc-pc-badge-left);             /* ← PC 左右位置（初期 -8px） */
  top:  var(--svc-pc-badge-top);              /* ← PC 上下位置（初期 -8px） */
  width:min(22%,120px);
  height:auto;
  user-select:none; pointer-events:none;
}

/* ===== SPだけ位置を調整（01/02/03/04共通） ===== */
@media (max-width: 767.98px){
  .svc-img{
    margin-top: var(--svc-sp-img-top);        /* 画像を下げて青線付近へ */
  }
  .svc-badge{
    left: var(--svc-sp-badge-left);
    top:  var(--svc-sp-badge-top);            /* バッジを上げて赤線付近へ */
    width: 24%;
  }
}

/* タイトル／本文（可変） */
.svc-title{
  font-family:"源ノ角ゴシック JP","Noto Sans JP",sans-serif; font-weight:700; color:#0183BC; text-align:left;
  font-size:clamp(23px,2.2vw,43px); margin:12px 0 4px;
}
.svc-text{
  font-family:"源ノ角ゴシック JP","Noto Sans JP",sans-serif; font-weight:400; color:#2F2E2E; text-align:left;
  font-size:clamp(16px,1.0vw + 8px,23px); line-height:1.8; margin:0;
}

/* CTA（教育と同じ見た目。既存の .edu-cta / .edu-btn を共用） */
.svc-cta{ text-align:center; margin:16px 0 28px; }
.edu-cta .edu-btn{
  display:inline-flex; align-items:center; gap:12px;
  border:2px solid #0183BC; border-radius:999px;
  padding: clamp(12px,1.2vw,16px) clamp(40px,4.5vw,72px);
  background:#fff; text-decoration:none!important;
  transition: transform .2s ease, background .2s ease, color .2s ease, box-shadow .2s ease;
}
.edu-cta .edu-btn span{
  font-family:"源ノ角ゴシック Code JP","Noto Sans JP",monospace;
  font-weight:700; color:#0183BC; font-size:clamp(18px,1.5vw,26px); line-height:1;
}
.edu-cta .edu-btn__icon{ width:20px; height:auto; display:block; transition:transform .2s ease; }
.edu-cta .edu-btn:hover{ background:#0183BC; color:#fff; box-shadow:0 6px 18px rgba(1,131,188,.15); transform:translateY(-1px); }
.edu-cta .edu-btn:hover span{ color:#fff; }
.edu-cta .edu-btn:hover .edu-btn__icon{ transform:translateX(4px); }
@media (max-width:767.98px){
  .edu-cta .edu-btn{ padding:12px 22px; }
  .edu-cta .edu-btn__icon{ width:18px; }
}

/* ===== SP時：見出し・リードの最大幅を設定して中央に収める ===== */
@media (max-width: 767.98px){
  .svc-head,
  .svc-lead,
  .svc-subhead{
    width: min(100%, var(--svc-heading-max-sp));
    margin-left: auto;
    margin-right: auto;
    padding: 0 2px;
  }
  .svc-head__ja,
  .svc-head__en,
  .svc-lead,
  .svc-subhead{
    text-align: left;
  }
}

/* 横向き（ランドスケープ）では少し広げる */
@media (max-width: 767.98px) and (orientation: landscape){
  .svc-head,
  .svc-lead,
  .svc-subhead{
    width: min(100%, var(--svc-heading-max-sp-land));
  }
}

/* =========================================
   タブレット帯でも 2 カラムを維持する調整
   （768px 以上 1200px 未満を想定）
   既存の PC/SP ルールはそのまま、上書きのみ
   ========================================= */
@media (min-width: 768px) and (max-width: 1199.98px){
  /* ギャップをやや詰めて、幅計算しやすく */
  .svc-row{
    justify-content: space-between;
    gap: 28px;                 /* ← 元の40pxから少し詰める */
  }

  /* カードを “(コンテナ幅 - ギャップ) / 2” にする */
  .svc-card{
    flex: 0 1 calc((100% - 28px) / 2);
    max-width: calc((100% - 28px) / 2);  /* 2列を強制 */
  }
}

/* さらに幅が狭いノートPC帯（～1366px）で少し余白を詰めたい場合（任意） */
@media (min-width: 1200px) and (max-width: 1366.98px){
  .svc-row{ gap: 32px; }
  .svc-card{
    /* 520pxで入る環境も多いが、ギリギリの環境での保険 */
    max-width: min(520px, calc((100% - 32px) / 2));
    flex-basis: min(520px, calc((100% - 32px) / 2));
  }
}


/***************************
  会社案内セクション
***************************/

/* 背景（PC/SP） */
#company.company-section{
  background: url("/wp-content/themes/starter-theme/images/company-bg-pc.png") no-repeat center top / cover;
  padding: 40px 0 60px;
  position: relative;
  overflow: hidden;
}
@media (max-width: 767.98px){
  #company.company-section{
    background-image: url("/wp-content/themes/starter-theme/images/company-bg-sp.png");
    padding: 28px 0 40px;
  }
}

/* 中央寄せコンテナ（SPは左右20px余白） */
.company-section .cmp-inner{
  width: min(80%, 1200px);
  margin: 0 auto;
}
@media (max-width: 767.98px){
  .company-section .cmp-inner{
    width:100%; 
    padding:0 20px; 
    box-sizing:border-box; 
  }
}

/* 見出し行：左右端へ（左=会社案内 / 右=COMPANY） */
.company-section .cmp-head{
  display:flex; 
  justify-content:space-between; 
  align-items:flex-end;
  gap:20px; 
  margin:0 0 14px;
}
/* ← 会社案内（h2） */
.company-section .cmp-head__ja{
  margin:0; 
  color:#0183BC; 
  font-weight:700;
  font-size: clamp(28px, 2.5vw, 43px); /* SP=28, PC=43 */
  margin-top: 30px;     /* タイトル上に余白（PC） */
  margin-bottom: 40px;  /* タイトル下に余白（PC） */
}
.company-section .cmp-head__en{
  font-family:"Prompt", sans-serif; 
  font-weight:700; 
  color:#0183BC;
  font-size: clamp(24px, 3.5vw, 58px); /* SP=24, PC=58 */
  letter-spacing:.06em;
  margin-top: 30px;     /* タイトル上に余白（PC） */
  margin-bottom: 40px;  /* タイトル下に余白（PC） */
}
@media (max-width: 767.98px){
  .company-section .cmp-head__ja{
    margin-top: 20px;   
    margin-bottom: 15px; 
  }
  .company-section .cmp-head__en{
    margin-top: 30px;   
    margin-bottom: 15px; 
  }
}

/* 会社案内：h2 にだけ下線を付ける */
.company-section .cmp-head__ja.custom-underline{
  text-decoration: underline;
  text-decoration-thickness: 4px;   /* 下線の太さ */
}

/* ==== SP時：見出し行の最大幅を制限して中央寄せ ==== */
@media (max-width: 767.98px){
  .company-section .cmp-head{
    width: min(100%, 420px);
    margin: 0 auto 14px;   /* 中央寄せ + 下余白 */
    padding: 0 2px;
  }
  .company-section .cmp-head__ja,
  .company-section .cmp-head__en{
    flex: 0 0 auto;
  }
}
@media (max-width: 767.98px) and (orientation: landscape){
  .company-section .cmp-head{
    width: min(100%, 520px);  /* 横向きは少し広げる */
  }
}

/* レイアウト本体 */
.company-section .cmp-block{ 
  display:flex; 
  align-items:center; 
  gap:40px; 
  margin:6px 0 40px; 
}
.company-section .cmp-image img{ 
  display:block; 
  width:100%; 
  height:auto; 
  border-radius:18px; 
}
.company-section .cmp-text{ text-align:left; }

/* PC：2カラム */
@media (min-width: 768px){
  .company-section .cmp-pc{ display:flex; }
  .company-section .cmp-sp{ display:none; }
  .company-section .cmp-image{ width:45%; }
  .company-section .cmp-text{  width:55%; }
}

/* SP：縦並び（本文は横幅いっぱい） */
@media (max-width: 767.98px){
  .company-section .cmp-pc{ display:none; }
  .company-section .cmp-sp{
    display:flex; 
    flex-direction:column; 
    align-items:center; 
    gap:16px; 
    text-align:center;
  }
  .company-section .cmp-body--sp{ 
    width:100%; 
    margin:8px 0 0; 
    text-align:left; 
  }
}

/* =========================
   会社案内：タイポ（PC/SP で別レンジ）
   ========================= */

/* --- PC / タブレット（768px以上）--- */
@media (min-width: 768px){

  /* 会社名 */
  .company-section .cmp-title{
    font-family:"源ノ角ゴシック Code JP","Noto Sans JP",monospace;
    font-weight:700; color:#0183BC;
    font-size: clamp(28px, 2.2vw, 36px);
    margin:0 0 8px;
  }

  /* サブタイトル */
  .company-section .cmp-sub{
    font-family:"源ノ角ゴシック Code JP","Noto Sans JP",monospace;
    font-weight:700; color:#0183BC;
    font-size: clamp(18px, 1.6vw, 28px);
    margin:0 0 8px;
  }

  /* 本文 */
  .company-section .cmp-body{
    font-family:"源ノ角ゴシック Code JP","Noto Sans JP",monospace;
    font-weight:500; color:#2F2E2E;
    font-size: clamp(14px, 1.0vw + 6px, 23px);
    line-height:1.9;
    list-style:none; 
    padding:0; 
    margin:6px 0 16px;
  }
}

/* --- スマホ（～767.98px）--- */
@media (max-width: 767.98px){

  /* 会社名 */
  .company-section .cmp-title{
    font-family:"源ノ角ゴシック Code JP","Noto Sans JP",monospace;
    font-weight:700; color:#0183BC;
    font-size: clamp(22px, 6vw, 28px);
    margin:0 0 8px;
  }

  /* サブタイトル */
  .company-section .cmp-sub{
    font-family:"源ノ角ゴシック Code JP","Noto Sans JP",monospace;
    font-weight:700; color:#0183BC;
    font-size: clamp(16px, 4.8vw, 23px);
    margin:0 0 8px;
  }

  /* 本文 */
  .company-section .cmp-body{
    font-family:"源ノ角ゴシック Code JP","Noto Sans JP",monospace;
    font-weight:500; color:#2F2E2E;
    font-size: clamp(14px, 3.8vw, 17px);
    line-height:1.9;
    list-style:none; 
    padding:0; 
    margin:6px 0 16px;
  }
}

/* 箇条書きのドットは共通 */
.company-section .cmp-body li{ 
  padding-left:1.2em; 
  text-indent:-1.2em; 
}
.company-section .cmp-body li::before{ 
  content:"・"; 
  color:#2F2E2E; 
  margin-right:.2em; 
}

/* CTA（求人と統一の見た目） */
.company-section .cmp-cta{ text-align:left; }
@media (max-width: 767.98px){ .company-section .cmp-cta{ text-align:center; } }
.company-section .cmp-cta .edu-btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:12px clamp(24px,3vw,40px);
  border:2px solid #0183BC; border-radius:9999px;
  background:#fff; color:#0183BC;
  font-weight:700; 
  font-family:"源ノ角ゴシック JP","Noto Sans JP",sans-serif;
  font-size:clamp(16px,1.4vw,20px); 
  line-height:1;
  text-decoration:none;
  transition:transform .2s ease, background .2s ease, color .2s ease, box-shadow .2s ease;
}
.company-section .cmp-cta .edu-btn:hover{
  background:#0183BC; color:#fff; 
  box-shadow:0 6px 18px rgba(1,131,188,.15);
  transform:translateY(-1px);
}
.company-section .cmp-cta .edu-btn__icon{
  width:clamp(18px,1.7vw,22px); 
  height:auto; 
  flex:0 0 auto; 
  transition:transform .2s ease;
}
.company-section .cmp-cta .edu-btn:hover .edu-btn__icon{ 
  transform:translateX(4px); 
}

/* ===== 会社案内：大画面で上下の余白を増やす ===== */
@media (min-width: 1280px){
  #company.company-section{
    padding-top: 64px;     /* 40px → 64px */
    padding-bottom: 96px;  /* 60px → 96px */
  }
}
@media (min-width: 1536px){
  #company.company-section{
    padding-top: 88px;
    padding-bottom: 128px;
  }
}
@media (min-width: 1920px){
  #company.company-section{
    padding-top: 112px;
    padding-bottom: 168px;
  }
}
@media (min-width: 2400px){
  #company.company-section{
    padding-top: 140px;
    padding-bottom: 200px;
  }
}


/***************************
 求人情報セクション
***************************/
.rcr-block{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:40px;
  max-width:1200px;
  margin:0 auto 60px;
  padding:20px;
}
.rcr-image img{
  width:100%;
  height:auto;
  border-radius:20px;
}
.rcr-text{
  text-align:left;
  font-family:"源ノ角ゴシック JP","Noto Sans JP",sans-serif;
}

/* 初期は非表示（安全策） */
.rcr-pc, .rcr-sp { display:none; }

/* ---------- PC / タブレット（768px以上） ---------- */
@media (min-width: 768px){
  .rcr-pc { display:flex; }
  .rcr-sp { display:none; }

  .rcr-image{ width:45%; }
  .rcr-text { width:55%; }

  .rcr-title{
    color:#0183BC;
    font-weight:700;
    font-size: clamp(28px, 2.5vw, 43px);
    margin: 0 0 16px;
  }
  .rcr-desc{
    max-width:650px;
    color:#2F2E2E;
    line-height:1.8;
    font-size: clamp(14px, 1.7vw, 25px);
    font-weight:500;
  }
}

/* ---------- スマホ（～767.98px） ---------- */
@media (max-width: 767.98px){
  .rcr-pc { display:none; }
  .rcr-sp{
    display:flex;
    flex-direction:column;
    align-items:center;       /* 画像・見出し・ボタンは中央 */
    gap:14px;
    width:100%;
    padding: 0 20px 10px;     /* ← 上の余白を 0 にして詰める */
    margin: -10px auto 0;     /* ← さらにタイトルとの間隔を詰める */
    box-sizing:border-box;
    text-align:center;
  }

  .rcr-title{
    color:#0183BC;
    font-weight:700;
    font-size: clamp(20px, 6vw, 23px);
    margin: 4px auto 8px;
    width: fit-content;
  }

  /* 本文は画面いっぱい（左右20pxまで）に広げる */
  .rcr-desc{
    width:100%;
    max-width:none;           /* ← 制限解除して全幅 */
    margin:0;
    text-align:left;          /* 本文だけ左揃え */
    color:#2F2E2E;
    line-height:1.7;
    font-size: clamp(14px, 3.8vw, 16px);
    font-weight:500;
  }
  
  /* スマホのとき br を消す */
  .rcr-desc br{ display:none; }

  .rcr-image{ width:100%; margin-top:0; }

  /* ボタンは中央 */
  .rcr-text .edu-cta{
    margin-top:18px;
    text-align:center;
  }
}

/* ===== CTA button（共通） ===== */
.rcr-text .edu-btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:12px clamp(24px,3vw,40px);
  border:2px solid #0183BC;
  border-radius:9999px;
  background:#fff;
  color:#0183BC;
  font-weight:700;
  font-family:"源ノ角ゴシック JP","Noto Sans JP",sans-serif;
  font-size:clamp(16px,1.4vw,20px);
  line-height:1;
  text-decoration:none;
  transition:transform .2s ease, background .2s ease, color .2s ease, box-shadow .2s ease;
}
.rcr-text .edu-btn:hover{
  background:#0183BC;
  color:#fff;
  box-shadow:0 6px 18px rgba(1,131,188,.15);
  transform:translateY(-1px);
}
.rcr-text .edu-btn:focus-visible{
  outline:3px solid #66bde1;
  outline-offset:2px;
}
.rcr-text .edu-btn__icon{
  width:clamp(18px,1.7vw,22px);
  height:auto;
  flex:0 0 auto;
  transition:transform .2s ease;
}
.rcr-text .edu-btn:hover .edu-btn__icon{
  transform:translateX(4px);
}


/***************************
  教育セクション
***************************/
#education.edu-section{
  background: url("images/education-bg-pc.png") no-repeat center top / cover;
  padding: 60px 0 80px;   /* PC：上下余白 */
  margin: 0;
  overflow: hidden;
  isolation: isolate;
  position: relative;
  display: flow-root; /* マージン相殺を防止 */
}

/* === PC：背景画像の上下スペース＆縦位置を調整するノブ === */
@media (min-width: 768px){
  #education.edu-section{
    /* 調整ノブ */
    --pc-bg-ratio: 0.5625;  /* 画像の縦横比（高さ÷幅）に置き換え */
    --pc-top-pad: 160px;    /* 上の余白（EDUCATIONを下げたい時は増やす） */
    --pc-bottom-pad: 200px; /* 下をさらに見せたい分の余白 */
    --pc-grad-top: 160px;   /* 上グラデの高さ */
    --pc-grad-bottom: 320px;/* 下グラデの高さ */

    background-position: center var(--pc-bg-offset);
    padding-top: var(--pc-top-pad);
    padding-bottom: var(--pc-bottom-pad);
  }
}


/* SP：背景の見せ量は擬似要素で制御（上下スペーサー＋縦位置微調整） */
@media (max-width: 767.98px){
  #education.edu-section{
    /* 調整ノブ */
    --sp-bg-offset: -24px;   /* 画像を下に 24px ずらす（＋で下へ / －で上へ） */
    --sp-bottom-pad: 156px;  /* 下の見せ量を増やす */

    background-position: center var(--sp-bg-offset);
    padding-bottom: var(--sp-bottom-pad);
  }
  #education.edu-section::before{
    content: "";
    display: block;
    height: var(--sp-top-spacer);
  }
  #education.edu-section::after{
    content: "";
    display: block;
    height: var(--sp-bottom-spacer);
  }
}

/* ラッパー（中央寄せコンテナ） */
.edu-section .edu-inner{
  width: min(80%, 1200px);
  margin: 0 auto;
}
@media (max-width: 767.98px){
  .edu-section .edu-inner{
    width: 100%;
    padding: 0 20px;
    box-sizing: border-box;
  }
}

/* PC/SP 出し分け */
.edu-section .edu-pc-only{ display:block; }
.edu-section .edu-sp-only{ display:none; }
@media (max-width: 767.98px){
  .edu-section .edu-pc-only{ display:none; }
  .edu-section .edu-sp-only{ display:block; }
}

/* ===== 見出し（背景文字とFGを接近配置：スタック） ===== */
.edu-section .edu-heading{
  --bg-y: 100%;  /* 背景 EDU の縦位置（負で上へ） */
  --gap: 40px;   /* 前景見出しとの間隔 */

  position: relative;
  text-align: center;
  padding-top: clamp(40px, 8vw, 96px);
  margin: 0 0 12px;
}
.edu-section .edu-heading__bg{
  position: absolute;
  left: 50%;
  top: 0;
  transform: translate(-50%, var(--bg-y));
  margin: 0;
  line-height: 1;
  font-family: "Prompt", sans-serif;
  font-weight: 800;
  font-size: clamp(36px, 8vw, 96px);
  letter-spacing: .06em;
  color:#0183BC;
  opacity:.13;
  z-index: 0;
  user-select: none;
  pointer-events: none;
}
.edu-section .edu-heading__fg{
  position: relative;
  z-index: 1;
  margin: var(--gap) auto 0;
  width: fit-content;
  font-family:"源ノ角ゴシック JP","Noto Sans JP",sans-serif;
  font-weight:700;
  color:#0183BC;
  font-size: clamp(23px, 3.5vw, 43px);
  text-decoration: underline;
  text-underline-offset: 15px;
}
@media (max-width: 767.98px){
  .edu-section .edu-heading{ --bg-y: 100%; --gap: 4px; padding-top: clamp(32px, 12vw, 60px); }
  .edu-section .edu-heading__fg{ text-underline-offset: 10px; }
}

/* キャッチコピー */
.edu-section .edu-catch{ text-align:center; margin:8px 0 18px; }
.edu-section .edu-catch p,
.edu-section .edu-catch__narrow{
  font-family:"源ノ角ゴシック JP","Noto Sans JP",sans-serif;
  font-weight:700; color:#0183BC;
  font-size: clamp(19px, 2.2vw, 43px);
}
@media (max-width: 767.98px){
  .edu-section .edu-catch__narrow{
    font-size: clamp(14px, 3.5vw, 23px);
    max-width: 250px;      /* ラッパーを細く */
    width: 100%;
    margin: 0 auto;        /* 見た目上は中央配置 */
    text-align: left;      /* テキストは左揃え */
    line-height: 1.5;
  }
}

/* 動画 */
.edu-section .edu-movie{ margin:18px 0 22px; }
.edu-section .edu-movie video{
  display:block; width:100%; height:auto; border-radius:4px;
}

/* サブタイトル */
.edu-section .edu-subtitle{ text-align:center; margin:18px 0 10px; }
.edu-section .edu-subtitle p,
.edu-section .edu-subtitle__narrow{
  font-family:"源ノ角ゴシック JP","Noto Sans JP",sans-serif;
  font-weight:700; color:#0183BC; font-size: clamp(19px, 2.2vw, 43px);
}
@media (max-width: 767.98px){
  .edu-section .edu-subtitle__narrow{
    font-size: clamp(14px, 3.5vw, 23px);
    max-width: 250px;
    width: 100%;
    margin: 0 auto;
    text-align: left;
    line-height: 1.5;
  }
}

/* =========================
   ▼ 本文（本文ラッパー）ここから
   ========================= */
.edu-section .edu-body{ margin:6px 0 24px; }

/* 共通のベース */
.edu-section .edu-body__wide,
.edu-section .edu-body__narrow{
  font-family:"源ノ角ゴシック Code JP","Noto Sans JP",monospace;
  font-weight:500;
  color:#2F2E2E;
  line-height:1.9;
  text-align:left;
}

/* PC：中央寄せ＋流体フォント + 読みやすい行長 */
.edu-section .edu-body__wide{
  max-width: min(72ch, 1000px);
  margin: 0 auto;
  font-size: clamp(14px, 0.85vw + 8px, 23px);
}

/* SP：幅とフォントを最適化（中央配置に見せる） */
@media (max-width: 767.98px){
  .edu-section .edu-body__narrow{
    max-width: none;          /* 行長を抑えて読みやすく */
    width: 100%;
    margin: 0 auto;
    font-size: clamp(14px, 3.8vw, 17px);
  }
}

/* テーマの固定サイズ上書き＆段落余白 */
.edu-section .edu-body__wide p,
.edu-section .edu-body__wide li,
.edu-section .edu-body__narrow p,
.edu-section .edu-body__narrow li{
  font-size: inherit;
  line-height: inherit;
  margin: 0 0 1.2em;
}
/* =========================
   ▲ 本文ここまで
   ========================= */

/* CTA（ボタン） */
.edu-section .edu-cta{ text-align:center; margin-top: 8px; }
.edu-section .edu-cta .edu-btn{
  display:inline-flex; align-items:center; gap:12px;
  border:2px solid #0183BC; border-radius:999px;
  padding: clamp(12px, 1.2vw, 16px)   /* 上下 */
           clamp(40px, 4.5vw, 72px);  /* 左右 ← ここで広げる */
  background:#fff;
  text-decoration:none !important; /* WPデフォ下線を無効化 */
}
.edu-section .edu-cta .edu-btn span{
  font-family:"源ノ角ゴシック Code JP","Noto Sans JP",monospace;
  font-weight:700; color:#0183BC; font-size: clamp(18px, 1.5vw, 26px); line-height:1;
}
.edu-section .edu-cta .edu-btn__icon{ width:20px; height:auto; display:block; }
/* --- ホバー効果追加 --- */
.edu-section .edu-cta .edu-btn{
  transition:
    transform .2s ease,
    background .2s ease,
    color .2s ease,
    box-shadow .2s ease;
}

.edu-section .edu-cta .edu-btn:hover{
  background:#0183BC;                 /* 背景 → 青 */
  box-shadow:0 6px 18px rgba(1,131,188,.15); /* 影 */
  transform:translateY(-1px);         /* 浮く */
}

.edu-section .edu-cta .edu-btn:hover span{
  color:#fff;                         /* テキスト → 白 */
}

.edu-section .edu-cta .edu-btn__icon{
  transition:transform .2s ease;
}

.edu-section .edu-cta .edu-btn:hover .edu-btn__icon{
  transform:translateX(4px);          /* アイコン右へ */
}
@media (max-width: 767.98px){
  .edu-section .edu-cta .edu-btn{ padding:12px 22px; }
  .edu-section .edu-cta .edu-btn__icon{ width:18px; }
}


/***************************
 コンタクトフォーム7 調整CSS
/***************************/

/* フォーム全体の幅設定 */
.wpcf7 form {
  max-width: 1000px; 
  margin: 0 auto;
}

/* フォーム行 */
.form-row {
  display: flex;
  align-items: flex-start;
  gap: 12px; /* ラベルと入力欄の隙間を固定 */
  margin-bottom: 38px;
}

/* ラベル（左側） */
.form-label {
  width: 25%;
  font-family: "游ゴシック体", "Yu Gothic", "YuGothic", sans-serif;
  font-weight: bold;
  font-size: 26px;
  text-align: left;
}


/* 入力欄（右側） */
.form-input {
  width: 75%;
}

/* 必須マーク */
.form-label .required {
  color: red;
  margin-left: 0.3em;
}

/* 入力フィールド共通 */
.form-input input,
.form-input select,
.form-input textarea {
  width: 100%;
  padding: 22px;
  font-size: 14px;
  border: 1px solid #ccc;
  border-radius: 5px;
  box-sizing: border-box;
}

.form-input select {
  display: block;
  color: #999;
  width: 100% !important; /* 入力欄の幅と完全一致 */
  box-sizing: border-box;
}

/* テキストエリア */
.form-input textarea {
  height: 300px;
  resize: vertical;
}

/* 送信ボタン */
.form-submit {
  text-align: center;
  margin: 120px 0 320px;  /* 上:40px, 左右:0, 下:100px */
}

.custom-submit-button {
  display: flex;
  justify-content: space-between;  /* 両端揃えにする */
  align-items: center;
  position: relative;
  width: 100%;
  max-width: 600px;
  margin: 0 auto;
  padding: 20px 60px;
  background: linear-gradient(to right, #ff8a00, #ff6a00);
  color: white;
  font-size: 36px;
  font-weight: bold;
  font-family: 'Source Han Sans JP', '源ノ角ゴシック JP', sans-serif;
  border-radius: 9999px;
  border: none;
  cursor: pointer;
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.15);
  transition: all 0.3s ease;
  letter-spacing: 1px;
  text-align: center;
  padding-right: 40px; /* 矢印との間隔を考慮 */
}

.custom-submit-button .btn-text {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}

.custom-submit-button .btn-arrow {
  font-size: 32px;
  margin-left: auto;
}


.custom-submit-button:hover {
  opacity: 0.9;
}


/* タブレット用（768px〜1024px） */
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .wpcf7 form {
    padding: 0 40px;
  }

  .form-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 36px;
  }

  .form-label {
    width: 30%;
    font-size: 22px;
  }

  .form-input {
    width: 70%;
  }

  .form-input input,
  .form-input select,
  .form-input textarea {
    padding: 20px;
    font-size: 15px;
    background-color: #fff;
    color: #999;
    border: 1px solid #ccc;
    border-radius: 5px;
  }

  .form-input select {
    height: 56px;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg viewBox='0 0 140 140' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolyline points='20,50 70,100 120,50' fill='none' stroke='%23999' stroke-width='15'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 12px 12px;
  }

  .form-input textarea {
    height: 280px;
  }
  
  .form-submit {
    margin: 90px 0 120px;
    text-align: center;
  }

  .custom-submit-button {
    font-size: 30px;
    padding: 20px 50px;
  }

  .custom-submit-button .btn-arrow {
    font-size: 28px;
  }
}

/* スマホ横向き用（481px〜767px） */
@media screen and (min-width: 481px) and (max-width: 767px) {
  .wpcf7 form {
    padding: 0 20px;
  }

  .form-row {
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 28px;
  }

  .form-label {
    width: 40%;
    font-size: 18px;
  }

  .form-input {
    width: 60%;
  }

  .form-input input,
  .form-input select,
  .form-input textarea {
    padding: 18px;
    font-size: 13px;
    background-color: #fff;
    color: #999;
    box-sizing: border-box;
  }

  .form-input select {
    height: 52px;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg viewBox='0 0 140 140' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolyline points='20,50 70,100 120,50' fill='none' stroke='%23999' stroke-width='15'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 12px 12px;
    border-radius: 5px;
    border: 1px solid #ccc;
  }

  .form-input textarea {
    height: 250px;
  }
  
  .form-submit {
    margin: 50px 0 60px;
    text-align: center;
  }

  .custom-submit-button {
    font-size: 24px;
    padding: 18px 40px;
  }

  .custom-submit-button .btn-text {
    flex-grow: 1;
    text-align: center;
  }

  .custom-submit-button .btn-arrow {
    font-size: 24px;
    margin-left: auto;
  }
}

/* スマホ用（〜480px程度） */
@media screen and (max-width: 480px) {
  .wpcf7 form {
    padding: 0 20px;
  }

  .form-row {
    flex-direction: row;
    align-items: flex-start; /* ← 中央から上揃えに変更 */
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 20px;
  }

  .form-label {
    width: 40%;
    font-size: 14px;
    font-weight: normal;
    margin-bottom: 0;
    text-align: left;
  }

  .form-input {
    width: 60%;
  }

  .form-input input,
  .form-input select,
  .form-input textarea {
    font-size: 12px;
    padding: 12px;
    height: auto;
    box-sizing: border-box;
  }

  .form-input select {
    background-color: #fff;
    color: #999;
    height: 46px;
    line-height: 1.5;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    border: 1px solid #ccc;
    border-radius: 5px;
    padding: 12px;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg viewBox='0 0 140 140' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolyline points='20,50 70,100 120,50' fill='none' stroke='%23999' stroke-width='15'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 12px 12px;
  }

  .form-input textarea {
    height: 200px;
  }

  .form-submit {
    margin: 50px 0 60px;
    text-align: center;
  }
  
  .custom-submit-button {
    font-size: 22px;
    padding: 14px 30px;
  }

  .custom-submit-button .btn-text {
    flex-grow: 1;
    text-align: center;
  }

  .custom-submit-button .btn-arrow {
    font-size: 18px;
    flex-shrink: 0;
  }
}


/***************************
 求人 募集要項
/***************************/

/* ベーススタイル */
.recruit-table {
  max-width: 1000px;
  margin: 0 auto;
  font-family: "源ノ角ゴシック JP", sans-serif;
  font-size: 27px;
}

.recruit-row {
  display: flex;
  flex-wrap: wrap;
  padding: 12px 0;
}

.recruit-label {
  width: 25%;
  font-weight: bold;
}

.recruit-value {
  width: 75%;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-weight: bold;
}

.blue-line {
  display: inline-block;
  width: 5px;
  height: auto;
  background-color: #0183BC;
  margin-top: 4px;
  min-height: 1em;
}

.recruit-divider {
  border-bottom: 1px solid #707070;
  margin: 0 0 10px;
}

.recruit-note {
  font-size: 18px;
  margin-top: 20px;
}

.sp-only {
  display: none;
}

/* 青の区切り線 - デフォルト（スマホ〜タブレット共通） */
.blue-divider {
  border-top: 2px solid #0183BC;
  width: 95%;
  margin: 40px auto 20px;
}

/* PCサイズ以上（1025px～） */
@media screen and (min-width: 1025px) {
  .blue-divider {
    width: 1200px;
    max-width: none;
  }
}

/* スマホサイズ（～767px） */
@media screen and (max-width: 767px) {
  .recruit-table {
    font-size: 15px;
    padding: 0 15px;
  }

  .recruit-label {
    width: 25%;
    font-size: 14px;
  }

  .recruit-value {
    width: 75%;
    font-size: 14px;
    gap: 8px;
  }

  .recruit-note {
    font-size: 13px;
  }

  .sp-only {
    display: inline;
  }

  .contact-button {
    width: 90% !important; 
    max-width: none !important;
    font-size: 24px !important;
    height: 70px !important; 
    line-height: 70px !important;
  }

  .arrow {
    font-size: 20px !important;
    right: 16px !important;
  }
}

/* タブレットサイズ（768px～1024px） */
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .recruit-table {
    font-size: 20px;
    padding: 0 30px;
  }

  .recruit-note {
    font-size: 18px;
    margin-top: 20px;
  }

  .sp-only {
    display: none;
  }

  .contact-button {
    width: 95%;
    font-size: 28px;
    height: 72px;
    line-height: 72px;
  }

  .arrow {
    font-size: 30px;
    right: 24px;
  }
}

/* お問い合わせリンクボタン */
.link-contact-btn {
  text-align: center;
  margin: 60px 0 100px;
}

.link-contact-btn a {
  display: inline-block;
  max-width: 600px;
  width: 100%;
}

.contact-button {
  position: relative;
  display: inline-block;
  width: 100%;
  max-width: 814px;
  height: 97px;
  background: linear-gradient(180deg, #F58C3F 0%, #FF6D02 50%, #F77149 100%);
  color: #fff;
  font-size: 32px;
  font-weight: bold;
  text-align: center;
  line-height: 97px;
  text-decoration: none;
  border-radius: 48.5px;
  box-shadow: 0 10px 10px rgba(0, 0, 0, 0.16);
  overflow: hidden;
  transition: all 0.3s ease;
  font-family: "源ノ角ゴシック JP", "GenkaKaku Gothic JP", sans-serif;
}

.contact-text {
  display: inline-block;
}

.arrow {
  position: absolute;
  right: 32px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 36px;
  font-weight: bold;
}

.contact-button:hover {
  opacity: 0.9;
}


/***************************
  会社の特徴
***************************/
/* 初期状態（PC・タブレット・スマホ横向き） */
.company-feature-pc {
  display: block;
}
.company-feature-sp {
  display: none !important;
}

/* セクション外枠：中央にブロックを配置 */
.company-feature-wrapper {
  display: flex;
  justify-content: center;
  box-sizing: border-box;
}

/* テキストブロック本体：中央に配置されるカラム */
.company-feature-inner {
  max-width: 900px;
  width: auto;
  margin: 0 auto;
  padding: 0;
  box-sizing: border-box;
}

/* 実際のテキスト部分：左揃えで中央寄せ */
.company-feature-text {
  text-align: left;
  font-size: 27px;
  line-height: 1.8;
  color: #333;
  font-family: "Source Han Sans JP", "源ノ角ゴシック JP", sans-serif;
  font-weight: 400;
  box-sizing: border-box;
}

/* タブレット（768px～1024px） */
@media screen and (max-width: 1024px) and (min-width: 768px) {
  .company-feature-inner {
    max-width: 100%;
  }
  .company-feature-text {
    font-size: 20px;
  }
}

/* スマホ横（481～767px） */
@media screen and (max-width: 767px) and (min-width: 481px) {
  .company-feature-inner {
    max-width: 100%;
  }
  .company-feature-text {
    font-size: 15px;
  }
}

/* スマホ縦（～480px） */
@media screen and (max-width: 480px) {
  .company-feature-pc {
    display: none;
  }
  .company-feature-sp {
    display: block !important;
  }
  .company-feature-inner {
    padding: 0 50px;
    max-width: 100%;
  }
  .company-feature-text {
    font-size: 16px;
  }
}


/***************************
 従業員に優しい制度
/***************************/
/* カラム全体の最大幅制限 */
.custom-two-column {
  max-width: 1000px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 40px;
  align-items: center;
}

/* 各カラムのスタイル */
.custom-two-column .wp-block-column {
  flex: 1 1 400px;
  text-align: center;
}


/***************************
 理念・方針 テキスト
***************************/
/* 表示切替用（PC／スマホで切り替え） */
.policy-pc-only {
  display: block;
}
.policy-sp-only {
  display: none;
}

/* セクション全体：中央にコンテンツを配置 */
.policy-text-wrapper {
  display: flex;
  justify-content: center;     /* 中央に配置 */
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  box-sizing: border-box;
}

/* 中央に表示されるカラム本体 */
.policy-inner {
  max-width: 900px;            /* 最大幅で中央に制限 */
  width: auto;                 /* コンテンツ幅に自動調整 */
  margin: 0 auto;              /* 中央に配置 */
  box-sizing: border-box;
}

/* 実際のテキスト（左揃え） */
.policy-text {
  font-family: "Source Han Sans JP", "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
  font-weight: 400;
  color: #333;
  line-height: 1.8;
  font-size: 32px;
  text-align: left; 
  box-sizing: border-box;
  margin: 0;
}


/* タブレット（768px〜1024px） */
@media screen and (max-width: 1024px) and (min-width: 768px) {
  .policy-inner {
    max-width: 100%;
    padding: 0 20px;
  }

  .policy-text {
    font-size: 26px;
  }
}

/* スマホ横向き（481～767px） */
@media screen and (max-width: 767px) and (min-width: 481px) {
  .policy-inner {
    max-width: 100%;
    padding: 0 15px;
  }

  .policy-text {
    font-size: 17px;
  }

  .policy-pc-only {
    display: block;
  }

  .policy-sp-only {
    display: none;
  }
}

/* スマホ縦向き（～480px） */
@media screen and (max-width: 480px) {
  .policy-inner {
    max-width: 100%;
    padding: 0 10px;
  }

  .policy-text {
    font-size: 16px;
  }

  .policy-pc-only {
    display: none;
  }

  .policy-sp-only {
    display: block;
  }
}

/***************************
  理念・方針 図（画像）まわり
***************************/
.policy-visual-wrapper{
  --wp--style--block-gap: 0;
  margin: 0;
  padding: 0;
}

/* ← display は指定しない（切替は pc/sp 側で制御） */
.policy-visual{
  margin: 0;
  padding: 0;
}

/* 画像の下端の隙間対策＆中央寄せ */
.policy-visual img{
  display: block;
  vertical-align: bottom;
  width: 100%;
  height: auto;
  max-width: 1200px;
  margin-inline: auto;      /* 中央寄せ */
  border-radius: 0;
}

/* 画像とテキストの間隔（必要に応じて調整） */
.policy-visual-wrapper{ margin-bottom: 8px; }
.policy-text-wrapper{ margin-top: 0; }
.policy-visual-wrapper + .policy-text-wrapper{ margin-top: 0; }

/* ===== ここから「表示切替」：必ず一番下に置く ===== */
/* 初期状態：両方隠す（後のメディアクエリで出す） */
.policy-visual.policy-pc-only,
.policy-visual.policy-sp-only{
  display: none;
}

/* 768px以上＝PC/タブレット → PC画像を表示 */
@media screen and (min-width: 768px){
  .policy-visual.policy-pc-only{ display: block; }
}

/* 767px以下＝SP → SP画像を表示 */
@media screen and (max-width: 767px){
  .policy-visual.policy-sp-only{ display: block; }
}


/***************************
 代表挨拶
***************************/
/* 代表挨拶セクション：共通 */
.greeting-section {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 60px 20px;
  text-align: center;
}

.greeting-inner {
  max-width: 900px;
  margin: 0 auto;
  color: #2F2E2E;
}

/* デフォルト：PC用レイアウト表示 */
.greeting-pc-only {
  display: block;
  background-image: url('/wp-content/themes/starter-theme/images/greeting-bg-pc.png');
}


.greeting-wrapper {
  display: flex;
  justify-content: center;
  padding: 50px 20px;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  text-align: center;
}


/* ---------- PCサイズ（1025px以上） ---------- */
@media screen and (min-width: 1025px) {
  .greeting-sp-only,
  .greeting-tab-only{
    display: none;
  }
  
  .greeting-pc-only .greeting-title {
    font-family: "Source Han Sans JP", "源ノ角ゴシック JP", sans-serif;
    font-weight: 700;
    font-size: 43px;
    color: #0183BC;
    border-bottom: 3px solid #0183BC;
    display: inline-block;
    padding-bottom: 5px;
    margin-bottom: 20px;
  }

  .greeting-pc-only .greeting-subtitle {
    font-family: "Yu Mincho", "游明朝", serif;
    font-weight: 800;
    font-size: 36px;
    color: #0183BC;
    margin-bottom: 40px;
  }

  .greeting-pc-only .greeting-text {
    font-family: "Yu Mincho", "游明朝", serif;
    font-weight: 500;
    font-size: 28px;
    line-height: 2;
    text-align: left;
  }

  .greeting-pc-only .greeting-name {
    font-family: "Yu Mincho", "游明朝", serif;
    font-weight: 500;
    font-size: 36px;
    text-align: right;
    margin-top: 30px;
  }
}


/* ---------- タブレット（768px～1024px） ---------- */
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .greeting-pc-only,
  .greeting-sp-only {
    display: none;
  }

  .greeting-tab-only {
    display: flex;
    justify-content: center;
    background-image: url('/wp-content/themes/starter-theme/images/greeting-bg-pc.png');
  }

  .greeting-tab-only .greeting-title {
    font-family: "Source Han Sans JP", "源ノ角ゴシック JP", sans-serif;
    font-weight: 700;
    font-size: 36px;
    color: #0183BC;
    border-bottom: 3px solid #0183BC;
    display: inline-block;
    padding-bottom: 5px;
    margin-bottom: 20px;
  }

  .greeting-tab-only .greeting-subtitle {
    font-family: "Yu Mincho", "游明朝", serif;
    font-weight: 800;
    font-size: 30px;
    color: #0183BC;
    margin-bottom: 40px;
  }

  .greeting-tab-only .greeting-text {
    font-family: "Yu Mincho", "游明朝", serif;
    font-weight: 500;
    font-size: 22px;
    line-height: 2;
    text-align: left;
  }

  .greeting-tab-only .greeting-name {
    font-family: "Yu Mincho", "游明朝", serif;
    font-weight: 500;
    font-size: 30px;
    text-align: right;
    margin-top: 30px;
  }
}

/* ---------- スマホ横向き（481px～767px） ---------- */
@media screen and (min-width: 481px) and (max-width: 767px) {
  .greeting-pc-only,
  .greeting-tab-only {
    display: none;
  }

  .greeting-sp-only {
    display: flex;
    background-image: url('/wp-content/themes/starter-theme/images/greeting-bg-sp.png');
  }

  .greeting-sp-only .greeting-title {
    font-family: "Source Han Sans JP", "源ノ角ゴシック JP", sans-serif;
    font-weight: 700;
    font-size: 28px;
    color: #0183BC;
    border-bottom: 2px solid #0183BC;
    display: inline-block;
    padding-bottom: 4px;
    margin-bottom: 5px;
  }

  .greeting-sp-only .greeting-subtitle {
    font-family: "Yu Mincho", "游明朝", serif;
    font-weight: 800;
    font-size: 25px;
    color: #0183BC;
    margin-bottom: 10px;
  }

  .greeting-sp-only .greeting-text {
    font-family: "Yu Mincho", "游明朝", serif;
    font-weight: 500;
    font-size: 22px;
    line-height: 2;
    text-align: left;
  }

  .greeting-sp-only .greeting-name {
    font-family: "Yu Mincho", "游明朝", serif;
    font-weight: 500;
    font-size: 26px;
    text-align: right;
    margin-top: 25px;
  }
}

/* ---------- スマホ縦向き（～480px） ---------- */
@media screen and (max-width: 480px) {
  .greeting-pc-only,
  .greeting-tab-only {
    display: none;
  }

  .greeting-sp-only {
    display: flex;
    background-image: url('/wp-content/themes/starter-theme/images/greeting-bg-sp.png');
  }

  .greeting-sp-only .greeting-title {
    font-family: "Source Han Sans JP", "源ノ角ゴシック JP", sans-serif;
    font-weight: 700;
    font-size: 28px;
    color: #0183BC;
    border-bottom: 2px solid #0183BC;
    display: inline-block;
    padding-bottom: 4px;
    margin-bottom: 5px;
  }

  .greeting-sp-only .greeting-subtitle {
    font-family: "Yu Mincho", "游明朝", serif;
    font-weight: 800;
    font-size: 23px;
    color: #0183BC;
    margin-bottom: 5px;
  }

  .greeting-sp-only .greeting-text {
    font-family: "Yu Mincho", "游明朝", serif;
    font-weight: 500;
    font-size: 18px;
    text-align: left;
    line-height: 2;
  }

  .greeting-sp-only .greeting-name {
    font-family: "Yu Mincho", "游明朝", serif;
    font-weight: 500;
    font-size: 26px;
    text-align: right;
    margin-top: 25px;
  }
}


/***************************
 会社概要
***************************/
/* ---------- 共通 ---------- */
.company-table-wrapper {
  width: 100%;
  max-width: 900px;
  height: auto;
  margin: 0 auto;
  padding: 0px;
  box-sizing: border-box;
  background: #ffffff;
}

.company-table-title {
  text-align: center;
  font-size: 28px;
  font-weight: bold;
  color: #008dd2;
  border-bottom: 4px solid #008dd2;
  display: inline-block;
  margin: 0 auto 30px;
}

.company-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 20px;
  background: #fff;
  table-layout: fixed;
}

.company-table th,
.company-table td {
  border: 1px solid #ccc;
  padding: 6px 10px;
  vertical-align: middle;
}

/* 項目名（左側） */
.company-table th {
  text-align: center;
  background: #eee;
  width: 35%;
  font-weight: bold;
  font-family: "Source Han Sans JP", "Noto Sans JP", "ヒラギノ角ゴ ProN W6", "Hiragino Kaku Gothic ProN", sans-serif;
  font-weight: 700; /* Bold */
}

/* 項目内容（右側） */
.company-table td {
  text-align: left;
  width: 65%;
  font-family: "Source Han Sans JP", "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", sans-serif;
  font-weight: 400; /* Regular */
}

/* ---------- 表の切り替え（スマホ対応） ---------- */
.company-table-pc {
  display: block;
}
.company-table-sp {
  display: none;
}

/* ---------- スマホ縦向き表示 ---------- */
@media screen and (max-width: 480px) {
  .company-table-pc {
    display: none;
  }

  .company-table-sp {
    display: block;
  }

  .company-table-wrapper {
    height: auto;
    padding: 0px;
  }

  .company-table-title {
    font-size: 22px;
    margin-bottom: 20px;
  }

  .company-table {
    font-size: 16px;
  }

  .company-table th,
  .company-table td {
    padding: 10px;
  }
}


/***************************
 アクセス
***************************/
/* 共通スタイル */
.access-wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 40px;
  max-width: 1200px;
  margin: 0 auto 0px auto;
  padding: 20px;
}
.access-image img {
  border-radius: 20px;
  width: 100%;
  height: auto;
}
.access-image iframe {
  width: 100%;
  height: 300px; /* デフォルト高さ */
}
.access-text {
  font-family: 'Source Han Sans JP', 'Noto Sans JP', 'ヒラギノ角ゴ ProN W3', 'Hiragino Kaku Gothic ProN', 'メイリオ', Meiryo, sans-serif;
  font-weight: bold;
  text-align: left;
}

/* 初期状態：すべて非表示（念のため） */
.access-pc, .access-sp {
  display: none;
}

/* --- PC用（1025px以上） --- */
@media screen and (min-width: 1025px) {
  .access-pc {
    display: flex;
  }
  .access-sp {
    display: none;
  }
  .access-image {
    width: 50%;
  }
  .access-text {
    width: 50%;
  }
  .access-title { font-size: 28px; }
  .access-address,
  .access-tel,
  .access-fax {
    font-size: 23px;
    line-height: 0.8;
  }
  .access-image iframe {
    height: 380px;
  }
}

/* --- タブレット用（768～1024px） --- */
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .access-pc {
    display: flex;
  }
  .access-sp {
    display: none;
  }
  .access-image {
    width: 45%;
  }
  .access-text {
    width: 55%;
  }
  .access-title { font-size: 23px; }
  .access-address,
  .access-tel,
  .access-fax {
    font-size: 20px;
    line-height: 0.8;
  }
  .access-image iframe {
    height: 270px;
  }
}

/* --- スマホ横向き用（481～767px） --- */
@media screen and (min-width: 481px) and (max-width: 767px) {
  .access-pc {
    display: flex;
  }
  .access-sp {
    display: none;
  }
    .access-image {
    width: 40%;
  }
  .access-text {
    width: 60%;
  }
  .access-title {
    font-size: 22px;
    line-height: 1.0;
  }
  .access-address,
  .access-tel,
  .access-fax {
    font-size: 18px;
    line-height: 0.8;
  }
  .access-tel a,
  .access-fax a {
    color: #000 !important;
    text-decoration: none !important;
  }
  .access-image iframe {
    height: 180px;
  }
}

/* --- スマホ縦向き用（480px以下） --- */
@media screen and (max-width: 480px) {
  .access-pc {
    display: none;
  }
  .access-sp {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    margin: 0 auto 10px auto;
    padding: 5px 5px; 
    gap: 0px;
  }
  .access-title { 
    font-size: 26px;
    line-height: 1.0;
  }
  .access-address,
  .access-tel,
  .access-fax {
    font-size: 18px;
    line-height: 0.8;
  }
  .access-tel a,
  .access-fax a {
    color: #000 !important;
    text-decoration: none !important;
  }
  .access-image iframe {
    height: 220px;
  }
}


/***************************
  事業内容
***************************/
/***************************
  私たちのモットー
***************************/
/* 初期状態（PC・タブレット・スマホ横向き） */
.motto-title-pc {
  display: block;
}
.motto-title-sp {
  display: none !important;
}

/* セクション外枠：中央にブロックを配置 */
.motto-title-wrapper {
  display: flex;
  justify-content: center;
  box-sizing: border-box;
}

/* テキストブロック本体：中央に配置されるカラム */
.motto-title-inner {
  max-width: 900px;
  width: auto;
  margin: 0 auto;
  padding: 0;
  box-sizing: border-box;
}

/* 実際のテキスト部分：左揃えで中央寄せ */
.motto-title-text {
  text-align: left;
  font-size: 28px;
  line-height: 1.8;
  color: #333;
  font-family: "Source Han Sans JP", "源ノ角ゴシック JP", sans-serif;
  font-weight: 400;
  box-sizing: border-box;
}

/* タブレット（768px～1024px） */
@media screen and (max-width: 1024.98px) and (min-width: 768px) {
  .motto-title-inner {
    max-width: 100%;
  }
  .motto-title-text {
    font-size: 24px;
  }
}

/* スマホ横（481～767px） */
@media screen and (max-width: 767.98px) and (min-width: 481px) {
  .motto-title-inner {
    max-width: 100%;
  }
  .motto-title-text {
    font-size: clamp(16px, 1.5vw, 18px);
  }
}

/* スマホ縦（～480px） */
@media screen and (max-width: 480.98px) {
  .motto-title-pc {
    display: none;
  }
  .motto-title-sp {
    display: block !important;
  }
  .motto-title-inner {
    padding: 0 50px;
    max-width: 100%;
  }
  .motto-title-text {
    font-size: 18px;
  }
}


/***************************
  各種タクシーの種類
***************************/
/* --------- 共通設定 --------- */

.taxi-section {
  max-width: 1400px;
  margin: 0 auto;
  border: 3px solid #0183BC;
  border-radius: 16px;
  padding: 40px 60px;
  box-sizing: border-box;
  font-family: "源ノ角ゴシック JP", "Noto Sans JP", sans-serif;
  text-align: center;
  background: transparent;
}

.taxi-title {
  color: #0183BC;
  font-weight: bold;
  margin-bottom: 40px;
}

/* カードの親 */
.taxi-cards {
  display: flex;
  justify-content: space-between;
  gap: 60px;
  flex-wrap: nowrap;
}

/* カード個別 */
.taxi-card {
  flex: 1 1 30%;
}

.taxi-card img {
  width: 100%;
  height: auto;
  border-radius: 16px;
}

.taxi-label {
  margin-top: 16px;
  color: #0183BC;
  font-weight: bold;
}

/* --------- 表示切り替え --------- */
.taxi-pc-only {
  display: block;
}
.taxi-sp-only {
  display: none;
}

/* ノートPC（〜1599px） */
@media (max-width: 1599px) {
  .taxi-section {
    max-width: 85%;      /* 画面幅調整 */
    padding: 0px 30px; 
  }
  .taxi-cards {
    gap: 40px;
  }
}

/* PC: 1025px以上 */
@media (min-width: 1025px) {
  .taxi-section {
    padding: 0px 30px; /* 上下0px、左右30px */
  }
  .taxi-title {
    font-size: 43px ;
  }

  .taxi-label {
    font-size: 22px ;
  }
}


/* タブレット */
@media (max-width: 1024px) {
  .taxi-title { font-size: 38px; }
  .taxi-label { font-size: 20px; }
  .taxi-section {
    padding: 0px 20px;
  }
  .taxi-cards {
   gap: 20px;
  }
}

/* スマホ横向き */
@media (max-width: 767px) {
  .taxi-title {
    font-size: 33px;
    margin-top: 5px;   /* 上余白を小さく */
    margin-bottom: 25px; /* 下余白を小さく */
  }
  .taxi-label { font-size: 20px; }
  .taxi-section {
    padding: 25px 40px;
  }
  
  .taxi-pc-only {
    display: none;
  }
  .taxi-sp-only {
    display: block;
  }

  .taxi-cards {
    display: block;
  }

  .taxi-card {
    margin-bottom: 0px;
  }
}

/* スマホ縦向き */
@media (max-width: 480px) {
  .taxi-title {
    font-size: 28px;
    margin-top: 5px;    /* 上余白をさらに小さく */
    margin-bottom: 20px; /* 下余白をさらに小さく */
  }
  .taxi-label { font-size: 20px; }
  .taxi-section {
    padding: 20px 20px;
  }
}


/***************************
 タクシー運転手の心得
***************************/
/* レイアウト変数（画面ごとに上限幅とガターを切替） */
:root{
  --container-max: 900px;              /* 内側カラムの上限幅 */
  --gutter: clamp(12px, 4vw, 24px);    /* 左右余白（自動可変） */
}
@media (max-width: 1200px){ :root{ --container-max: 850px; } }   /* ノートPC */
@media (max-width: 1024px){ :root{ --container-max: 670px; } }   /* タブレット */
@media (max-width: 768px){  :root{ --container-max: 620px; --gutter: clamp(12px, 5vw, 20px); } } /* SP横 */
@media (max-width: 480px){  :root{ --container-max: 85%;  --gutter: clamp(12px, 6vw, 16px); } } /* SP縦 */

/* セクション外枠：背景などの器。内側を中央に置く */
.kokoroe-section{
  max-width: 1400px;
  width: 100%;
  margin: 0 auto;
  padding-block: 48px;     /* 横は内側で管理するので0 */
  padding-inline: 0;
  box-sizing: border-box;
  background: center/cover no-repeat;
  border-radius: 24px;

  display: flex;
  justify-content: center; /* 内側(.kokoroe-inner)を中央に */
}

/* 背景画像の切替 */
.kokoroe-pc-only {
  display: block;
  background-image: url('/wp-content/themes/starter-theme/images/kokoroe-bg-pc.png');
}
.kokoroe-sp-only {
  display: none;
  background-image: url('/wp-content/themes/starter-theme/images/kokoroe-bg-sp.png');
}

@media (max-width: 767px){
  .kokoroe-section { border-radius: 0; }  /* ← SPは角丸をなくす */
}

@media (max-width: 480px){
  .kokoroe-pc-only { display: none; }
  .kokoroe-sp-only { display: block; }
}

/* 1カラムを中央に置く ─ これ1行で左右等分＆自動拡縮 */
.kokoroe-inner{
  width: min(var(--container-max), calc(100% - 2*var(--gutter)));
  margin-inline: auto;
  padding-inline: var(--gutter);
  box-sizing: border-box;
  text-align: left;
  color: #2F2E2E;
}

/* タイトル：文字幅の下線＋中央 */
.kokoroe-title-wrap{
  text-align: center;
  margin-bottom: 20px;
}
.kokoroe-title{
  font-family: "源ノ角ゴシック JP","Noto Sans JP",sans-serif;
  font-weight: 700;
  color: #0183BC;
  display: inline-block;
  border-bottom: 3px solid #0183BC;
  padding-bottom: 6px;
  margin: 0;
}

/* リード（中央） */
.kokoroe-lead{
  font-family: "源ノ角ゴシック JP","Noto Sans JP",sans-serif;
  font-weight: 700;
  color: #2F2E2E;
  text-align: center;
  margin: 16px 0 24px;
}

/* 本文ブロック：幅は親(.kokoroe-inner)に任せる */
.kokoroe-content{ width: 100%; margin: 0; }

/* 本文リスト：数字は本文に書く想定。UAの左余白は消す */
.kokoroe-list{
  list-style: none;
  margin: 0 0 28px 0;
  padding-inline-start: 0;
  line-height: 2;
}
.kokoroe-list li{
  font-family: "源ノ角ゴシック JP","Noto Sans JP",sans-serif;
  font-weight: 400;
}

/* 締めの文 */
.kokoroe-closing{
  font-family: "源ノ角ゴシック JP","Noto Sans JP",sans-serif;
  font-weight: 700;
  margin: 12px 0 0;
}

/* ===== フォントサイズ ===== */
/* PC 1025+ */
@media (min-width: 1025px){
  .kokoroe-title{   font-size: 43px; }
  .kokoroe-lead{    font-size: 30px; }
  .kokoroe-list li{ font-size: 28px; }
  .kokoroe-closing{ font-size: 28px; }
}
/* タブレット 768–1024 */
@media (min-width: 768px) and (max-width: 1024px){
  .kokoroe-title{   font-size: 38px; }
  .kokoroe-lead{    font-size: 24px; }
  .kokoroe-list li{ font-size: 21px; }
  .kokoroe-closing{ font-size: 21px; }
}
/* スマホ横向き 481–767 */
@media (min-width: 481px) and (max-width: 767px){
  .kokoroe-title{   font-size: 33px; }
  .kokoroe-lead{    font-size: 23px; }
  .kokoroe-list li{ font-size: 18px; }
  .kokoroe-closing{ font-size: 18px; }
}
/* スマホ縦向き ～480 */
@media (max-width: 480px){
  .kokoroe-title{   font-size: 28px; }
  .kokoroe-lead{    font-size: 21px; }
  .kokoroe-list li{ font-size: 16px; }
  .kokoroe-closing{ font-size: 22px; }
}


/***************************
 事業内容_ジャンボタクシーの背景余白削除
***************************/
.wp-block-cover.no-gap-cover{
  padding: 0;                        /* Cover の左右/上下 padding を無効化 */
}


/***************************
 ジャンボタクシー
***************************/
/* 共通 */
.jumbo-wrapper{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:40px;
  max-width:1200px;
  margin:0 auto;
  padding:20px;
}
.jumbo-image img{
  border-radius:20px;
  width:100%;
  height:auto;
}
.jumbo-image iframe{
  width:100%;
  height:300px;
}
.jumbo-text{
  font-family:"源ノ角ゴシック JP","Source Han Sans JP","Noto Sans JP",sans-serif;
  font-weight:400;
  text-align:left;
}
.jumbo-lead{
  line-height:1.6;
  margin:0;
}

/* 初期状態：両方隠す（メディアクエリで出し分け） */
.jumbo-pc, .jumbo-sp{ display:none; }

/* ===== PC / タブレット（768px 以上） =====
   - PCレイアウトを表示
   - 画像:テキスト ≒ 42% : 58%（読みやすさ優先）
   - フォントは 20px〜25px の可変
------------------------------------------------*/
@media (min-width:768px){
  .jumbo-pc{ display:flex; }
  .jumbo-sp{ display:none; }

  .jumbo-image{ width:45%; }
  .jumbo-text{  width:55%; }

  /* PC 25→20px 可変 */
  .jumbo-lead{ font-size: clamp(20px, 1.4vw, 25px); }
}

/* ===== スマホ（767.98px 以下） =====
   - SPレイアウトを表示（縦積み・中央寄せ）
   - フォントは 14px〜18px の可変
------------------------------------------------*/
@media (max-width:767.98px){
  .jumbo-pc{ display:none; }
  .jumbo-sp{
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
    margin:0 auto 10px;
    padding:5px;
    gap:0;
  }

  /* SP 18→14px 可変 */
  .jumbo-lead{ font-size: clamp(14px, 4.2vw, 18px); }
}


/***************************
  こんなシーンでご活用ください
***************************/
/* --------- 共通設定 --------- */

.scene-section {
  max-width: 1400px;
  margin: 0 auto;
  border: 3px solid #0183BC;
  border-radius: 16px;
  padding: 40px 60px;
  box-sizing: border-box;
  font-family: "源ノ角ゴシック JP", "Noto Sans JP", sans-serif;
  text-align: center;
  background: transparent;
}

.scene-title {
  font-family: "源ノ角ゴシック Code JP", "Source Han Code JP", "源ノ角ゴシック JP", sans-serif;
  font-weight: bold;          /* B */
  color: #2F2E2E;
  margin: 0 0 40px;
}

/* カードの親 */
.scene-cards {
  display: flex;
  justify-content: space-between;
  gap: 60px;
  flex-wrap: nowrap;
}

/* カード */
.scene-card {
  flex: 1 1 30%;
}

.scene-card img {
  width: 100%;
  height: auto;
  border-radius: 16px;
}

.scene-label {
  margin-top: 16px;
  color: #0183BC;
  font-family: "源ノ角ゴシック JP", "Noto Sans JP", sans-serif;
  font-weight: bold;
}

/* --------- 表示切り替え --------- */
.scene-pc-only {
  display: block;
}
.scene-sp-only {
  display: none;
}

/* ノートPC（〜1599px） */
@media (max-width: 1599px) {
  .scene-section {
    max-width: 85%; 
    padding: 0px 30px; 
  }
  .scene-cards {
    gap: 40px;
  }
}

/* PC: 1025px以上 */
@media (min-width: 1025px) {
  .scene-section {
    padding: 30px 30px; /* 上下0px、左右30px */
  }
  .scene-title {
    font-size: 32px ;
  }

  .scene-label {
    font-size: 26px ;
  }
}


/* タブレット */
@media (max-width: 1024px) {
  .scene-title { font-size: 30px; }
  .scene-label { font-size: 20px; }
  .scene-section {
    padding: 20px 20px;
  }
  .scene-cards {
   gap: 20px;
  }
}

/* スマホ横向き */
@media (max-width: 767px) {
  .scene-title {
    font-size: 26px;
    margin-top: 5px;   /* 上余白を小さく */
    margin-bottom: 25px; /* 下余白を小さく */
  }
  .scene-label { font-size: 26px; }
  .scene-section {
    padding: 25px 40px;
  }
  
  .scene-pc-only {
    display: none;
  }
  .scene-sp-only {
    display: block;
  }

  .scene-cards {
    display: block;
  }

  .scene-card {
    margin-bottom: 0px;
  }
}

/* スマホ縦向き */
@media (max-width: 480px) {
  .scene-title {
    font-size: 26px;
    margin-top: 5px;    /* 上余白をさらに小さく */
    margin-bottom: 20px; /* 下余白をさらに小さく */
  }
  .scene-label { font-size: 26px; }
  .scene-section {
    padding: 20px 20px;
  }
}


/***************************
 ジャンボタクシー運転手としての３か条
***************************/
/* レイアウト変数（画面ごとに上限幅とガターを切替） */
:root{
  --container-max: 1000px;              /* 内側カラムの上限幅 */
  --gutter: clamp(12px, 4vw, 24px);    /* 左右余白（自動可変） */
}
@media (max-width: 1200px){ :root{ --container-max: 850px; } }   /* ノートPC */
@media (max-width: 1024px){ :root{ --container-max: 720px; } }   /* タブレット */
@media (max-width: 768px){  :root{ --container-max: 400px; --gutter: clamp(12px, 5vw, 20px); } } /* SP横 */
@media (max-width: 480px){  :root{ --container-max: 85%;  --gutter: clamp(12px, 6vw, 16px); } } /* SP縦 */

/* セクション外枠：背景などの器。内側を中央に置く */
.kokoroe-jumbo-section{
  max-width: 1400px;
  width: 100%;
  margin: 0 auto;
  padding-block: 48px;     /* 横は内側で管理するので0 */
  padding-inline: 0;
  box-sizing: border-box;
  background: center/cover no-repeat;
  border-radius: 24px;

  display: flex;
  justify-content: center; /* 内側(.kokoroe-inner)を中央に */
}

/* 背景画像の切替 */
.kokoroe-jumbo-pc-only {
  display: block;
  background-image: url('/wp-content/themes/starter-theme/images/kokoroe-jumbo-bg-pc.png');
}
.kokoroe-jumbo-sp-only {
  display: none;
  background-image: url('/wp-content/themes/starter-theme/images/kokoroe-jumbo-bg-sp.png');
}

@media (max-width: 767px){
  .kokoroe-jumbo-section { border-radius: 0; }  /* ← SPは角丸をなくす */
  .kokoroe-jumbo-pc-only { display: none; }
  .kokoroe-jumbo-sp-only { display: block; }
}

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

/* 1カラムを中央に置く ─ これ1行で左右等分＆自動拡縮 */
.kokoroe-jumbo-inner{
  width: min(var(--container-max), calc(100% - 2*var(--gutter)));
  margin-inline: auto;
  padding-inline: var(--gutter);
  box-sizing: border-box;
  text-align: left;
  color: #2F2E2E;
}

/* タイトル：文字幅の下線＋中央 */
.kokoroe-jumbo-title-wrap{
  text-align: center;
  margin-bottom: 20px;
}
.kokoroe-jumbo-title{
  font-family: "源ノ角ゴシック JP","Noto Sans JP",sans-serif;
  font-weight: 700;
  color: #0183BC;
  display: inline-block;
  border-bottom: 3px solid #0183BC;
  padding-bottom: 6px;
  margin: 0;
}

/* リード（中央） */
.kokoroe-jumbo-lead{
  font-family: "源ノ角ゴシック JP","Noto Sans JP",sans-serif;
  font-weight: 700;
  color: #2F2E2E;
  text-align: center;
  margin: 16px 0 24px;
}

/* 本文ブロック：幅は親(.kokoroe-jumbo-inner)に任せる */
.kokoroe-jumbo-content{ width: 100%; margin: 0; }

/* 本文リスト：数字は本文に書く想定。UAの左余白は消す */
.kokoroe-jumbo-list{
  list-style: none;
  margin: 0 0 28px 0;
  padding-inline-start: 0;
  line-height: 2;
}
.kokoroe-jumbo-list li{
  font-family: "源ノ角ゴシック JP","Noto Sans JP",sans-serif;
  font-weight: 400;
}

/* 締めの文 */
.kokoroe-jumbo-closing{
  font-family: "源ノ角ゴシック JP","Noto Sans JP",sans-serif;
  font-weight: 700;
  margin: 12px 0 0;
}

/* ===== フォントサイズ ===== */
/* PC 1025+ */
@media (min-width: 1025px){
  .kokoroe-jumbo-title{   font-size: 43px; }
  .kokoroe-jumbo-lead{    font-size: 30px; }
  .kokoroe-jumbo-list li{ font-size: 26px; }
  .kokoroe-jumbo-closing{ font-size: 28px; }
}
/* タブレット 768–1024 */
@media (min-width: 768px) and (max-width: 1024px){
  .kokoroe-jumbo-title{   font-size: 31px; }
  .kokoroe-jumbo-lead{    font-size: 24px; }
  .kokoroe-jumbo-list li{ font-size: 20px; }
  .kokoroe-jumbo-closing{ font-size: 21px; }
}
/* スマホ横向き 481–767 */
@media (min-width: 481px) and (max-width: 767px){
  .kokoroe-jumbo-title{   font-size: 28px; }
  .kokoroe-jumbo-lead{    font-size: 21px; }
  .kokoroe-jumbo-list li{ font-size: 20px; }
  .kokoroe-jumbo-closing{ font-size: 21px; }
}
/* スマホ縦向き ～480 */
@media (max-width: 480px){
  .kokoroe-jumbo-title{   font-size: 26px; }
  .kokoroe-jumbo-lead{    font-size: 19px; }
  .kokoroe-jumbo-list li{ font-size: 15px; }
  .kokoroe-jumbo-closing{ font-size: 19px; }
}


/***************************
 ご利用の流れ（共通レイアウト）
***************************/
.flow-section{
  --c-primary:#0183BC;
  --c-text:#212121;
  --card-max:1000px;
  --radius:28px;
  font-family:"源ノ角ゴシック JP","Noto Sans JP",sans-serif;
  font-weight:700;
}

/* カード（青枠の箱） */
.flow-card{
  background:#fff;
  border:3px solid var(--c-primary);
  border-radius:var(--radius);
  padding:28px clamp(20px,4vw,40px);
  max-width:var(--card-max);
  margin:28px auto;
  box-shadow:0 6px 20px rgba(0,0,0,.06);
  text-align:center;
  color:var(--c-text);
}

/* 1行タイトル（青） */
.flow-title{
  color:var(--c-primary);
  font-size:43px;
  margin:0 0 10px;
  line-height:1.25;
}

/* 電話行（アイコン＋番号） */
.flow-phone{ display:inline-flex; align-items:center; gap:14px; color:var(--c-primary); }
.flow-phone .fas{ font-size:46px; color:var(--c-primary); }
.flow-tel{ color:var(--c-primary); text-decoration:none; font-size:58px; line-height:1.1; font-weight:700; }
.flow-tel:hover{ text-decoration:underline; }

/* 見出し行（基準サイズは親に） */
.flow-head{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.45em;
  margin:0 0 6px;
  font-size:50px;            /* ← 文字サイズの基準 */
  line-height:1;
}

/* 見出しテキストは親サイズを継承 */
.flow-head-text{
  color:var(--c-primary);
  font-size:1em;             /* ← 50px を継承 */
  line-height:1.2;
}

/* PC用：先頭の丸アイコン（背景画像で入れる） */
.flow-bullet{
  display:inline-block;
  width:1em;                 /* ← 文字と同じ高さ */
  height:1em;
  flex:0 0 1em;
  background:var(--img) no-repeat center / contain;

}

/* SP用：テキスト先頭に入れるインライン画像（PCでは隠す） */
.flow-icon-inline{
  display:none;              /* ← PCでは非表示にするのがポイント */
  width:1em;
  height:1em;
  vertical-align:-0.12em;
  margin-right:.15em;
}

/* マップの距離を詰め、少し大きく */
.flow-card--map .flow-head{
  gap: .18em;                 /* もともとの .25em からさらに詰める */
}
.flow-card--map .flow-bullet{
  width: 1em;  
  height: 1em;
  transform: translateY(.03em); /* ベースライン微補正（下がり対策） */
}

/* 説明（黒） */
.flow-desc{ color:var(--c-text); font-size:30px; line-height:1.7; margin:8px 0 0; }

/* ▼ 区切りの「∨」マーク（CSSだけで描く） */
.flow-arrow{ width:72px; height:72px; margin:6px auto 4px; position:relative; }
.flow-arrow::before{
  content:""; position:absolute; left:50%; top:50%;
  width:30px; height:30px;
  border-right:8px solid var(--c-primary);
  border-bottom:8px solid var(--c-primary);
  transform:translate(-50%,-60%) rotate(45deg);
  border-radius:2px;
}

/* 矢印の直前・直後のカードだけ、上下マージンを詰める */
@supports(selector(.x:has(+ .y))){
  .flow-card:has(+ .flow-arrow){   /* 矢印の直前のカード */
    margin-bottom: 8px;            /* 28px → 8px に圧縮 */
  }
  .flow-arrow + .flow-card{        /* 矢印の直後のカード */
    margin-top: 8px;               /* 28px → 8px に圧縮 */
  }
}

/* ===== SP（～768px） ===== */
@media (max-width:768px){
  .flow-card{ padding:18px 16px; margin:18px auto; border-radius:22px; }
  .flow-title{ font-size:21px; }

  .flow-phone .fas{ font-size:30px; }
  .flow-tel{ font-size:30px; }

  /* 見出し：親サイズを縮小 → アイコンも連動 */
  .flow-head{ font-size:25px; gap:.01em; }   /* 指定値：SP 28px */
  .flow-bullet{ display:none; }              /* PC用バレットは隠す */
  .flow-icon-inline{ display:inline; }       /* テキスト先頭に表示 */
  .flow-desc{ font-size:18px; }              /* 指定値：SP 20px */

  .flow-arrow{ width:56px; height:56px; }
  .flow-arrow::before{ width:22px; height:22px; border-width:6px; }

  .sp-br{ display:inline; }
  
  .flow-card--map .flow-icon-inline{
    height: 1.35em;           /* 高さで拡大（文字より少し大きく） */
    width: auto;              /* 縦横比を維持して潰れ防止 */
    margin-right: .12em;      /* 文字との間隔をタクシーと同程度に */
    vertical-align: -0.18em;  /* ベースライン調整 */
  }
  /* さらに近づけたい場合は gap も少し詰められます */
  .flow-card--map .flow-head{ gap: .01em; }  /* お好みで 0.18–0.22em 程度 */
}
@media (min-width:769px){
  .sp-br{ display:none; }
}


/* 1350px以上（デスクトップモニター） */
@media (min-width: 1350px){
  .flow-section{ --card-max: 1000px; }
}

/* 1025–1349px（ノートPC） */
@media (min-width: 1025px) and (max-width: 1349px){
  .flow-section{ --card-max: 780px; }
  .flow-title{ font-size: 40px; }
  .flow-head{ font-size: 46px; } /* 見出し全体の基準 */
  .flow-head-text{ font-size: 1em; } /* 親から継承（46px） */
  .flow-desc{ font-size: 26px; }
  .flow-phone .fas{ font-size: 44px; }
  .flow-tel{ font-size: 54px; }
}

/* 768–1024px（タブレット） */
@media (min-width: 768px) and (max-width: 1024px){
  .flow-section{ --card-max: 620px; }
  .flow-title{ font-size: 38px; }
  .flow-head{ font-size: 35px; }
  .flow-head-text{ font-size: 1em; } /* 親から継承（42px） */
  .flow-desc{ font-size: 22px; }
  .flow-phone .fas{ font-size: 42px; }
  .flow-tel{ font-size: 50px; }
}

/* 481–767px（スマホ横） */
@media (min-width: 481px) and (max-width: 767px){
  .flow-section{ --card-max: 70%; }
}

/* ～480px（スマホ縦） */
@media (max-width: 480px){
  .flow-section{ --card-max: 80%; }
}


/* ============================
   高岡ふれあいバス専用デザイン
============================ */
.takaoka-bus-section { padding-block: 40px; }

/* ラッパー */
.takaoka-bus-section .takaoka-bus-inner{
  max-width: 1024px;
  margin-inline: auto;
  padding-inline: 20px;
}
@media (min-width:1025px){
  .takaoka-bus-section .takaoka-bus-inner{ max-width:1280px; }
}

/* グリッドレイアウト */
.takaoka-bus-section .takaoka-bus-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  align-items: start;
}
@media (min-width:1280px){
  .takaoka-bus-section .takaoka-bus-grid{ gap: 40px; }
}
@media (max-width:900px){
  .takaoka-bus-section .takaoka-bus-grid{ grid-template-columns: 1fr; }
}

/* 画像 */
.takaoka-bus-section .takaoka-bus-photo img,
.takaoka-bus-section .takaoka-bus-diagram img{
  display: block;
  width: 100%;
  height: auto;
  border-radius: 8px;
}

/* PC/SP 切替 */
.takaoka-bus-section .pc-only{ display: inline; }
.takaoka-bus-section .sp-only{ display: none; }
@media (max-width: 767px){
  .takaoka-bus-section .pc-only{ display: none; }
  .takaoka-bus-section .sp-only{ display: inline; }
}

/* ----------------------------
   キャプション（バスのイラストは〜）
----------------------------- */
.takaoka-bus-section .takaoka-bus-caption{
  margin-top: 12px;
  margin-inline: auto;
  color: #2F2E2E;
  line-height: 1.8;
  font-family: "源ノ角ゴシック Code JP","Source Han Code JP","Noto Sans JP",sans-serif;
  font-weight: 500;
  text-align: left;  /* ベースは左揃え */
  max-width: 100%;
}
/* フォントサイズ */
/* 〜767.98px（スマホ） */
@media (max-width: 767.98px){
  /* 22 → 18px（端末幅で滑らかに変化） */
  .takaoka-bus-section .takaoka-bus-caption{
    font-size: clamp(18px, 5vw, 20px);
  }
}

/* 768〜1024.98px（タブレット） */
@media (min-width: 768px) and (max-width: 1024.98px){
  /* 20 → 16px */
  .takaoka-bus-section .takaoka-bus-caption{
    font-size: clamp(16px, 1.5vw + 4px, 20px);
  }
}

/* 1025px〜（PC） */
@media (min-width: 1025px){
  /* 23 → 20px */
  .takaoka-bus-section .takaoka-bus-caption{
    font-size: clamp(20px, 1vw + 10px, 23px);
  }
}
/* PC/Tabのみ中央揃え＋折返し抑制 */
@media (min-width: 768px){
  .takaoka-bus-section .takaoka-bus-caption{
    text-align: center;
    max-width: 900px;
  }
}

/* ----------------------------
   強調文（地域・交通事業者・行政が〜）
----------------------------- */
.takaoka-bus-section .takaoka-bus-note{
  margin-top: 32px;
  margin-inline: auto;
  color: #2F2E2E;
  line-height: 1.6;
  font-family: "源ノ角ゴシック JP","Source Han Sans JP","Noto Sans JP",sans-serif;
  font-weight: 700;
  text-align: left;  /* ベースは左揃え */
  max-width: 100%;
}
/* フォントサイズ */
@media (max-width: 767px){ .takaoka-bus-section .takaoka-bus-note{ font-size: 23px; } }
@media (min-width: 768px) and (max-width: 1024px){ .takaoka-bus-section .takaoka-bus-note{ font-size: 26px; } }
@media (min-width: 1025px){ .takaoka-bus-section .takaoka-bus-note{ font-size: 32px; } }
/* PC/Tabのみ中央揃え＋折返し抑制 */
@media (min-width: 768px){
  .takaoka-bus-section .takaoka-bus-note{
    text-align: center;
    max-width: 1200px;
  }
}

/* ----------------------------
   スマホ専用
----------------------------- */
@media (max-width: 767px){
  .takaoka-bus-section .takaoka-bus-caption,
  .takaoka-bus-section .takaoka-bus-note {
    max-width: 280px;     /* ← テキストを収めたい幅。お好みで調整 */
    margin-inline: auto;  /* ← ブロックを中央配置することで左右余白が均等に */
    text-align: left;     /* ← 文字自体は左揃え */
    white-space: normal;  /* ← 改行は許可（nowrapは解除） */
  }
}


/* ============================
   運行概要タイトル
============================ */
.outline-wrapper {
  display: flex;
  justify-content: center;  /* 中央寄せ */
  margin: 40px 0;          /* 上下の余白は必要に応じて調整 */
}

.outline-title {
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #0183BC;     /* 青背景 */
  color: #FFFFFF;                /* 文字色 */
  font-family: "源ノ角ゴシック JP","Source Han Sans JP","Noto Sans JP",sans-serif;
  font-weight: 700;              /* Bold */
  text-align: center;
  border: 1px solid #707070;     /* 枠線 */

  width: 373px;                  /* PC用の幅 */
  height: 117px;                 /* PC用の高さ */
  font-size: 43px;               /* PC用のフォントサイズ */
  box-sizing: border-box;
}

/* ----------------------------
   スマホ用レイアウト
----------------------------- */
@media (max-width: 767px){
  .outline-title {
    width: 250px;     /* スマホ用の幅 */
    height: 79px;     /* スマホ用の高さ */
    font-size: 28px;  /* スマホ用フォント */
  }
}



/* ============================
   運賃セクション
============================ */

.fare-section { padding: 40px 0; }

.fare-inner{
  max-width: 720px;         /* ← ここが基準の器幅 */
  margin-inline: auto;      /* 画面中央 */
  padding-inline: 20px;     /* SPの左右安全余白 */
  text-align: left;
  box-sizing: border-box;

  font-family: "源ノ角ゴシック JP","Source Han Sans JP","Noto Sans JP",sans-serif;
  color: #2F2E2E;
  font-weight: 700;
}

/* ----------------------------
   器幅の調整
----------------------------- */
@media (min-width: 1025px){          /* PC */
  .fare-inner { max-width: 500px; }  /* ★お好みで 420〜500px に調整 */
}
@media (min-width: 768px) and (max-width: 1024px){  /* Tablet */
  .fare-inner { max-width: 460px; }
}
@media (max-width: 767px){           /* SP */
  .fare-inner { max-width: 380px; }  /* スマホはちょい狭め */
}

/* リスト（行ごとに「項目｜金額」） */
.fare-list{
  list-style: none;
  margin: 0 0 8px;
  padding: 0;
  display: grid;
  grid-template-columns: max-content 5.2em; /* ← 価格列の固定幅。5.0–5.5emで微調整 */
  column-gap: 1.0em;                        /* ← 真ん中の間隔。寄せたいほど小さく */
  row-gap: 0.45em;
  align-items: baseline;
}

/* 各行はコンテンツ化して、子要素をグリッドに直接配置させる */
.fare-list li{ display: contents; }

/* 左項目：先頭に中黒を自動付与 */
.fare-list .label{
  position: relative;
  padding-left: 1.2em;
  justify-self: start;
}
.fare-list .label::before{
  content: "・";
  position: absolute;
  left: 0;
}

/* 右の金額 */
.fare-list .price{
  justify-self: end;                 /* 列の右端に揃える */
  text-align: right;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum";
}

/* ※注記 */
.fare-note{ margin-top: 6px; }

/* ----------------------------
   フォントサイズ（PC/Tab/SP）
----------------------------- */
@media (min-width: 1025px){          
  .fare-list li,
  .fare-note { font-size: 32px; }
  .fare-list .price{ width: 6em; }
}

@media (min-width: 768px) and (max-width: 1024px){  
  .fare-list li,
  .fare-note { font-size: 28px; }
  .fare-list .price{ width: 6em; }
}

@media (max-width: 767px){           
  .fare-list li,
  .fare-note { font-size: 21px; }
  .fare-list .price{ width: 6em; }
}


/* ============================
   支払い方法セクション
============================ */
.payment-wrapper {
  display: flex;
  justify-content: center;   /* ラッパー全体を中央寄せ */
  padding: 10px 0;
  box-sizing: border-box;
}

.payment-inner {
  max-width: 180px;          /* ← ラッパーの最大幅（狭める） */
  width: 100%;
  padding: 0 16px;           /* SP用に安全余白 */
  margin: 0 auto;
  text-align: left;          /* テキストは左寄せ */
  box-sizing: border-box;

  font-family: "源ノ角ゴシック JP","Source Han Sans JP","Noto Sans JP",sans-serif;
  color: #2F2E2E;
  font-weight: 700;          /* Bold */
}

.payment-list {
  list-style: none;
  margin: 0;
  padding: 0;
  line-height: 1.8;
}

.payment-list li {
  font-size: 32px;           /* PC初期値 */
}

/* タブレット */
@media (max-width: 1024px) and (min-width: 768px){
  .payment-inner {
    max-width: 160px;        /* タブレット時はさらに少し狭める */
  }
  .payment-list li {
    font-size: 28px;
  }
}

/* スマホ */
@media (max-width: 767px){
  .payment-inner {
    max-width: 130px;        /* スマホは一番狭く */
    padding: 0 12px;
  }
  .payment-list li {
    font-size: 21px;
  }
}


/* ============================
   回数券案内セクション
============================ */
.ticket-wrapper {
  display: flex;
  justify-content: center;   /* ラッパー全体を中央寄せ */
  padding: 0px 0;
  box-sizing: border-box;
}

.ticket-inner {
  max-width: 770px;          /* ← PCでの最大幅（必要に応じて調整） */
  width: 100%;
  margin: 0 auto;
  padding: 0 16px;
  text-align: left;
  box-sizing: border-box;

  font-family: "源ノ角ゴシック JP","Source Han Sans JP","Noto Sans JP",sans-serif;
  color: #2F2E2E;
  font-weight: 700;
}

.ticket-text {
  line-height: 1.9;
  margin: 0;
}

/* PCレイアウト：PC・タブレットで表示 */
.pc-only { display: block; }
.sp-only { display: none; }

/* SPレイアウト */
@media (max-width: 767px){
  .pc-only { display: none; }
  .sp-only { display: block; }
}

/* SPだけ確実に左揃えにする（Gutenbergの中央揃えクラスも打ち消し） */
@media (max-width: 767px){
  .ticket-wrapper .ticket-inner { text-align: left; }

  .ticket-wrapper .ticket-text,
  .ticket-wrapper .sp-only,
  .ticket-wrapper .ticket-text.sp-only,
  .ticket-wrapper .sp-only *,
  .ticket-wrapper .ticket-text.has-text-align-center,
  .ticket-wrapper .sp-only.has-text-align-center,
  .ticket-wrapper .ticket-text.aligncenter,
  .ticket-wrapper .sp-only.aligncenter{
    text-align: left !important;
  }
}

/* ----------------------------
   フォントサイズ（PC/Tab/SP）
----------------------------- */
@media (min-width: 1025px){          /* PC */
  .ticket-text { font-size: 32px; }
  .ticket-inner { max-width: 770px; }
}

@media (min-width: 768px) and (max-width: 1024px){  /* Tablet */
  .ticket-text { font-size: 28px; }
  .ticket-inner { max-width: 675px; }
}

@media (max-width: 767px){           /* SP */
  .ticket-text { font-size: 20px; }
  .ticket-inner { max-width: 320px; padding: 0 12px; }
}


/***************************
 上郷地域バス（チョイソコにこにこバス）
***************************/
/* 共通 */
.kamigo-wrapper{
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 40px;                 /* 画像と本文の間隔 */
  max-width: 1200px;         /* ラッパーの最大幅 */
  margin: 0 auto;
  padding: 20px;
  box-sizing: border-box;
}
.kamigo-image img{
  width: 100%;
  height: auto;
  border-radius: 12px;       /* 必要なら丸みを調整 */
  display: block;
}
.kamigo-text{
  text-align: left;          /* テキストは左揃え */
  color: #2F2E2E;
  font-family: "源ノ角ゴシック Code JP","Source Han Code JP",
               "Noto Sans JP",sans-serif;
  font-weight: 500;          /* M(=Medium) */
}
.kamigo-lead{
  font-size: 23px;           /* 全レイアウトで固定 23px */
  line-height: 1.8;
  margin: 0;
}

/* 初期は両方非表示（ブレークポイントで切替） */
.kamigo-pc, .kamigo-sp{ display:none; }

/* --- PC（1025px以上）・タブレット（768–1024px）= PCレイアウトを表示 --- */
@media (min-width: 951px){
  .kamigo-pc{ display:flex; }
  .kamigo-sp{ display:none; }

  /* レイアウト比率はお好みで微調整可 */
  .kamigo-image{ width: 40%; min-width: 320px; }
  .kamigo-text{ width: 60%; }
}

/* --- スマホ（〜767px）= SPレイアウトを表示 --- */
@media (max-width: 950px){
  .kamigo-pc{ display:none; }
  .kamigo-sp{
    display:flex;
    flex-direction: column;  /* 縦並び：画像→本文 */
    align-items: center;     /* ラッパー中央配置 */
    gap: 12px;
    padding: 10px 16px;
  }

  /* テキストの器を狭めて中央に置き、左揃え維持 */
  .kamigo-sp .kamigo-text{
    max-width: 340px;        /* ここで幅調整（必要に応じて 300〜360px） */
    margin-inline: auto;
    text-align: left;
  }

  /* 画像の最大幅（必要に応じて調整） */
  .kamigo-sp .kamigo-image{
    width: 100%;
    max-width: 360px;
  }
}


/***************************
 車両_2カラム
/***************************/
.vehicle-two-column {
  max-width: 850px;  /* ← 1000px より少し狭く */
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px;         /* ← gapも縮める */
  align-items: center;
}


/***************************
 連絡先情報（電話・時間・センター名）
***************************/
.contact-info-section{
  padding: 0; /* 余白は必要に応じて調整 */
}
.contact-info-inner{
  max-width: 750px;           /* ラッパーを中央に */
  margin: 0 auto;
  padding: 0 20px;
  box-sizing: border-box;
  text-align: left;
  font-family: "源ノ角ゴシック JP","Source Han Sans JP","Noto Sans JP",sans-serif;
  color: #2F2E2E;
  font-weight: 700;           /* Bold */
}

/* ---------------- PC/Tablet ---------------- */
@media (min-width: 768px){
  .pc-only .contact-grid{
    display: block; /* グリッドをやめてブロック縦積み */
  }
  .pc-only .contact-grid .row{
    display: block;
    margin: 0 0 .35em 0; /* 行間の余白 */
  }
  .pc-only .contact-grid .row .lead,
  .pc-only .contact-grid .row .value{
    display: inline;   /* 行内横並び */
    line-height: 1.7;  /* 行間 */
  }
  .contact-info-inner { 
    font-size: 28px;   /* Tablet基準 */
    max-width: 635px;
  }
}
@media (min-width: 1025px){
  .contact-info-inner { 
    font-size: 32px;   /* PC基準 */
    max-width: 735px;
  }
}

/* ---------------- SP ---------------- */
@media (max-width: 767px){
  .contact-info-inner{
    font-size: 23px;
    padding: 0 16px;
    max-width: 320px;
  }

  .sp-only .contact-grid{
    display: block;
    text-align: left;
    margin: 0 auto;
    max-width: 380px;
  }

  .sp-only .contact-grid .lead,
  .sp-only .contact-grid .value{
    display: block;
    line-height: 1.4;   /* 行間（1.4〜1.8で調整） */
    margin: 0 0 0.3em 0;/* 下の余白 */
  }

  /* 電話番号リンクを無効化（SPのみ） */
  .sp-only .contact-grid a{
    pointer-events: none;
    color: inherit;
    text-decoration: none;
  }
}

/* PC/SP 表示切替（タブレットはPC扱い） */
.pc-only{ display:block; }
.sp-only{ display:none; }
@media (max-width: 767px){
  .pc-only{ display:none; }
  .sp-only{ display:block; }
}


/* ============================
   会員登録案内セクション
============================ */
.register-wrapper {
  display: flex;
  justify-content: center;   /* 全体を中央寄せ */
  padding: 0;
  box-sizing: border-box;
}

.register-inner {
  max-width: 770px;          /* PCの最大幅（調整可） */
  width: 100%;
  margin: 0 auto;
  padding: 0 16px;
  text-align: left;
  box-sizing: border-box;

  font-family: "源ノ角ゴシック JP","Source Han Sans JP","Noto Sans JP",sans-serif;
  color: #2F2E2E;
  font-weight: 700;          /* Bold */
}

.register-text {
  line-height: 1.8;
  margin: 0;
}

/* PCレイアウト：PC・タブレットで表示 */
.pc-only { display: block; }
.sp-only { display: none; }

/* SPレイアウト */
@media (max-width: 767px){
  .pc-only { display: none; }
  .sp-only { display: block; }

  /* スマホ用は確実に左揃え */
  .register-wrapper .register-inner { text-align: left; }

  .register-wrapper .register-text,
  .register-wrapper .sp-only,
  .register-wrapper .register-text.sp-only,
  .register-wrapper .sp-only *,
  .register-wrapper .register-text.has-text-align-center,
  .register-wrapper .sp-only.has-text-align-center,
  .register-wrapper .register-text.aligncenter,
  .register-wrapper .sp-only.aligncenter {
    text-align: left !important;
  }
}

/* ----------------------------
   フォントサイズ（PC/Tab/SP）
----------------------------- */
@media (min-width: 1025px){          /* PC */
  .register-text { font-size: 32px; }
  .register-inner { max-width: 740px; }
}

@media (min-width: 768px) and (max-width: 1024px){  /* Tablet */
  .register-text { font-size: 26px; }
  .register-inner { max-width: 620px; }
}

@media (max-width: 767px){           /* SP */
  .register-text { font-size: 20px; }
  .register-inner { max-width: 325px; padding: 0 12px; }
}


/* ============================
   郵送の場合セクション
============================ */
.mail-apply-wrapper{
  display:flex;
  justify-content:center;
  padding:24px 16px;
  box-sizing:border-box;
}

/* 背景カード（幅は維持：max 1200 / min 330） */
.mail-apply-card{
  background:#fff;
  border-radius:24px;
  width:100%;
  max-width:1200px;
  min-width:330px;
  padding: clamp(20px, 3.5vw, 48px) clamp(16px, 3vw, 56px);
  margin:0 auto;
  box-sizing:border-box;

  font-family:"源ノ角ゴシック JP","Source Han Sans JP","Noto Sans JP",sans-serif;
  color:#2F2E2E;
  font-weight:700;
}

/* 中身のベースラッパー（カード内の左右余白） */
.mail-apply-inner{
  width:100%;
  margin:0 auto;
  text-align:left;
}

/* ------ 各ブロックの行ラッパー ------ */
.ma-row{ width:100%; margin:0 auto; }
.ma-kicker{ text-align:center; }
.ma-desc  { text-align:left; }
.ma-link  { text-align:center; }
.ma-addr  { text-align:left; }

/* テキスト基本 */
.mail-apply-kicker{ margin:0 0 18px; color:#0183BC; line-height:1.6; }
.mail-apply-desc{   margin:0 0 18px; line-height:1.9; }
.mail-apply-link{   margin:8px 0 24px; }
.mail-apply-address{ margin-top:8px; }
.mail-apply-address .addr-title{ margin:0 0 6px; }
.mail-apply-address .addr-text{  margin:0; line-height:1.9; }

/* リンク見た目（疑似要素は使わない） */
.mail-apply-link a{
  display:inline-flex;
  align-items:center;
  gap:.3em;                /* 文字と矢印の間隔 */
  color:#0183BC;
  text-decoration:none;
  line-height:1;
}
/* 万一テーマ側が a::before/::after を付与しても消す */
.mail-apply-link a::before,
.mail-apply-link a::after{
  content:none !important;
  background:none !important;
  border:0 !important;
  position:static !important;
}
/* CSSで描く右向き「＞」：文字サイズに比例して拡大縮小 */
.mail-apply-link .chev{
  display:inline-block;
  width:.50em; height:.50em;          /* テキストに追従 */
  border-top:.11em solid #0183BC;
  border-right:.11em solid #0183BC;
  transform:rotate(45deg) translateY(.02em); /* ベースライン微調整 */
  line-height:1;
}

/* 表示切替 */
.pc-only{ display:block; }
.sp-only{ display:none; }

/* ============================
   幅・フォント（PC / Tablet / SP）
============================ */

/* PC */
@media (min-width:1025px){
  .mail-apply-kicker{ font-size:36px; }
  .mail-apply-desc  { font-size:36px; }
  .mail-apply-link  { font-size:32px; }
  .mail-apply-address .addr-title,
  .mail-apply-address .addr-text{ font-size:26px; }

  /* あなたの指定どおりの幅 */
  .mail-apply-inner{ max-width:850px; }
  .ma-kicker{ max-width:740px; }
  .ma-desc  { max-width:800px; }
  .ma-link  { max-width:600px; }
  .ma-addr  { max-width:750px; }
}

/* Tablet */
@media (min-width:768px) and (max-width:1024px){
  .mail-apply-kicker{ font-size:30px; }
  .mail-apply-desc  { font-size:30px; }
  .mail-apply-link  { font-size:28px; }
  .mail-apply-address .addr-title,
  .mail-apply-address .addr-text{ font-size:23px; }

  .mail-apply-inner{ max-width:700px; }
  .ma-kicker{ max-width:620px; }
  .ma-desc  { max-width:660px; }
  .ma-link  { max-width:520px; }
  .ma-addr  { max-width:660px; }
}

/* SP */
@media (max-width:767px){
  .pc-only{ display:none; }
  .sp-only{ display:block; }

  .mail-apply-kicker{ font-size:23px; }
  .mail-apply-desc  { font-size:23px; }
  .mail-apply-link  { font-size:23px; }
  .mail-apply-address .addr-title,
  .mail-apply-address .addr-text{ font-size:20px; }

  /* カード内の基準幅と内側余白（引き継ぎ） */
  .mail-apply-inner{ max-width:330px; padding:0 12px; }

  /* ブロック別の見た目幅（SP用） */
  .ma-kicker{ max-width:320px; margin:0 auto; text-align:center; transform:translateX(-15px); } /* 光学補正 */
  .ma-desc  { max-width:280px; margin:0 auto; text-align:left !important; }
  .ma-link  { max-width:320px; margin:0 auto; text-align:center; transform:translateX(-13px); }  /* 光学補正 */
  .ma-addr  { max-width:260px; margin:0 auto; text-align:left !important; }

  /* WPの中央寄せクラスを保険で打ち消し */
  .ma-desc .mail-apply-desc,
  .ma-addr .mail-apply-address,
  .ma-addr .addr-title,
  .ma-addr .addr-text{ text-align:left !important; }
}


/* ============================
   インターネットの場合 セクション
============================ */
.web-apply-wrapper{
  display:flex;
  justify-content:center;
  padding:24px 16px;
  box-sizing:border-box;
}

/* 白カード（幅は維持：max 1200 / min 330） */
.web-apply-card{
  background:#fff;
  border-radius:24px;
  width:100%;
  max-width:1200px;
  min-width:330px;
  padding: clamp(20px, 3.5vw, 48px) clamp(16px, 3vw, 56px);
  margin:0 auto;
  box-sizing:border-box;

  font-family:"源ノ角ゴシック JP","Source Han Sans JP","Noto Sans JP",sans-serif;
  color:#2F2E2E; /* 本文色 */
  font-weight:700;
}

/* 中身ベース */
.web-apply-inner{ width:100%; margin:0 auto; text-align:left; }

/* 行ラッパー */
.wa-row{ width:100%; margin:0 auto; }
.wa-kicker{ text-align:center; }
.wa-desc  { text-align:left; }
.wa-link  { text-align:center; }
.wa-qr    { text-align:center; }

/* テキスト */
.web-apply-kicker{ margin:0 0 18px; color:#0183BC; line-height:1.6; }
.web-apply-desc{   margin:0 0 18px; line-height:1.9; }
.web-apply-link{   margin:8px 0 24px; }

/* リンク見た目（疑似要素は使わずインライン矢印） */
.web-apply-link a{
  display:inline-flex;             /* PC/Tabletは1行で整列 */
  align-items:center;
  gap:.3em;
  color:#0183BC;
  text-decoration:none;
  line-height:1;
}
/* 万一テーマ側が a::before/::after を付けても無効化 */
.web-apply-link a::before,
.web-apply-link a::after{
  content:none !important;
  background:none !important;
  border:0 !important;
  position:static !important;
}
/* CSSで描く右向き「＞」：文字サイズに追従 */
.web-apply-link .chev{
  display:inline-block;
  width:.50em; height:.50em;              /* テキストに追従 */
  border-top:.11em solid #0183BC;
  border-right:.11em solid #0183BC;
  transform:rotate(45deg) translateY(.02em);
  line-height:1;
}

/* QR 画像 */
.web-apply-qr{
  display:inline-block;
  width: 160px;     /* PC基準は後のメディアクエリで上書き */
  height:auto;
}

/* 表示切替（全体共通） */
.pc-only{ display:block; }
.sp-only{ display:none; }

/* ============================
   幅・フォント（PC / Tablet / SP）
============================ */

/* PC */
@media (min-width:1025px){
  .web-apply-kicker{ font-size:36px; }  /* 見出し */
  .web-apply-desc  { font-size:32px; }  /* 説明文 */
  .web-apply-link  { font-size:32px; }  /* リンク */

  .web-apply-inner{ max-width:650px; }

  .wa-kicker{ max-width:640px; }
  .wa-desc  { max-width:640px; }
  .wa-link  { max-width:600px; }
  .wa-qr    { max-width:600px; }

  .web-apply-qr{ width:180px; }
}

/* Tablet */
@media (min-width:768px) and (max-width:1024px){
  .web-apply-kicker{ font-size:30px; }
  .web-apply-desc  { font-size:28px; }
  .web-apply-link  { font-size:28px; }

  .web-apply-inner{ max-width:600px; }

  .wa-kicker{ max-width:570px; }
  .wa-desc  { max-width:570px; }
  .wa-link  { max-width:520px; }
  .wa-qr    { max-width:520px; }

  .web-apply-qr{ width:170px; }
}

/* SP */
@media (max-width:767px){
  .pc-only{ display:none; }
  .sp-only{ display:block; }       /* <br class="sp-only"> を有効にする */

  .web-apply-kicker{ font-size:23px; }
  .web-apply-desc  { font-size:23px; }
  .web-apply-link  { font-size:23px; }

  /* カード内の基準幅と内側余白（郵送と合わせる） */
  .web-apply-inner{ max-width:330px; padding:0 12px; }

  /* ブロック幅（説明は左寄せ、その他は中央） */
  .wa-kicker{ max-width:320px; margin:0 auto; text-align:center; transform:translateX(-13px); } /* 光学補正 */
  .wa-desc  { max-width:280px; margin:0 auto; text-align:left; transform:translateX(-13px); }
  .wa-link  { max-width:320px; margin:0 auto; text-align:center; transform:translateX(-13px); }
  .wa-qr    { max-width:320px; margin:8px auto 0; transform:translateX(-13px); }

  /* SPはリンクを改行可能にして矢印を2行目末尾へ */
  .web-apply-link a{
    display:inline-block;     /* ← 改行を効かせる */
    white-space:normal;
    text-align:center;
  }
  .web-apply-link .chev{
    vertical-align:middle;
    transform:rotate(45deg) translateY(-.02em); /* 行高に合わせ微調整 */
  }

  .web-apply-qr{ width:140px; }
}


/***************************
 個人情報保護方針（privacy-policy）
/***************************/
/* ============================
   プライバシーポリシー（読み物1カラム）
   - 本文最大幅：1400px
   - 本文は左揃え、ブロックは常に中央配置
   - 余白は端末に応じて最小限だけ確保
============================ */
:root{
  /* 基本文字サイズ：SP16px〜PC20px をブレークポイント無しで近似 */
  --pps-font: clamp(16px, 1.1vw + 12px, 20px);
  --pps-max-width: 1400px;                 /* ★本文の最大幅 */
}

.privacy-policy-simple{
  display:flex;
  justify-content:center;
  box-sizing:border-box;
  padding: 16px 0;                          /* セクション外側の上下余白（必要で調整） */
}

/* 中の器：中央寄せ、左右は必要最小限の余白のみ */
.pps-inner{
  width: 100%;
  max-width: var(--pps-max-width);          /* ← 最大幅はここだけで制御 */
  margin: 0 auto;
  padding-inline: clamp(12px, 4vw, 32px);   /* 画面端との最小限の余白 */
  box-sizing: border-box;
  text-align: left;                          /* テキストは常に左揃え */
}

/* 本文共通 */
.pps-text{
  margin: 0;
  color: #363636;
  font: 400 var(--pps-font)/1.95 "源ノ角ゴシック JP","Source Han Sans JP","Noto Sans JP",sans-serif;
  overflow-wrap: anywhere;                   /* 長いURL等のはみ出しケア */
}
/* 改行を SP のみ有効化するユーティリティ */
.br-sp { display: none; }
@media (max-width: 767px){
  .br-sp { display: inline; }  /* 表示されれば <br> は改行になる */
}


/***************************
 各ページ最下部電話バナー
/***************************/
/* 共通フォント設定 */
.contact-phone-banner,
.contact-phone-banner .contact-caption,
.contact-phone-banner .contact-number,
.contact-phone-banner .contact-number a {
  font-family: "源ノ角ゴシック JP", "Gen Shin Gothic", sans-serif;
  font-weight: bold;
}

/* 電話バナー全体 */
.contact-phone-banner {
  background-color: #fff;
  border: 3px solid #0183BC;
  border-radius: 34px;
  padding: 15px 15px;
  max-width: 500px;
  margin: 30px auto;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1);
  text-align: center;
}

/* 説明テキスト */
.contact-phone-banner .contact-caption {
  font-size: 22px;
  font-weight: bold;
  color: #0183BC;
  margin-top: 0;
  margin-bottom: 3px;
  line-height: 1.6;
}

/* 電話番号ブロック */
.contact-phone-banner .contact-number {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 14px;
  font-size: 46px;
  font-weight: bold;
  color: #0183BC;
}

/* 電話アイコン */
.contact-phone-banner .contact-number i {
  font-size: 46px;
  color: #0183BC;
}

/* 電話リンクの見た目を調整 */
.contact-phone-banner .contact-number a {
  color: #0183BC;
  text-decoration: none;
  font-size: 58px;
  font-weight: bold;
}

.contact-phone-banner .contact-number a:hover {
  text-decoration: underline;
}

/* 表示切替 */
.pc-only {
  display: block;
}
.sp-only {
  display: none;
}

@media screen and (max-width: 768px) {
  .pc-only {
    display: none;
  }
  .sp-only {
    display: block;
  }

  /* 全体のバナー余白と幅を縮小 */
  .contact-phone-banner {
    padding: 5px 15px; 
    max-width: 80%;  
    margin: 20px auto;
  }

  /* 上の文章の文字サイズと余白 */
  .contact-phone-banner .contact-caption {
    font-size: 23px;
    margin-bottom: 0.1px; 
    margin: 4px 0 2px 0;
  }

  /* 電話番号ブロック（横並び・間隔調整） */
  .contact-phone-banner .contact-number {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: 5px;
    margin: 0;            /* 上下の余白を完全にゼロに */
  }

  /* 電話アイコン */
  .contact-phone-banner .contact-number i {
    font-size: 30px;
    margin: 0;
  }

  /* 電話番号 */
  .contact-phone-banner .contact-number a {
    font-size: 30px;
    line-height: 1.1;
    margin: 0;            /* 上下の余白を明示的にゼロ */
  }
}
