/* ===================================
   横スクロール防止・左右均等（100%表示）
   =================================== */

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

html {
  overflow-x: hidden;
  max-width: 100%;
}

body {
  margin: 0;
  padding: 0;
  overflow-x: hidden;
  max-width: 100%;
  font-family:
    "Zen Old Mincho",      /* 1. Google Fonts（Webフォント） */
    "ヒラギノ明朝 ProN W3", /* 2. Mac/iPhone用 */
    "Hiragino Mincho ProN", /* 3. Mac/iPhone用（英語表記） */
    "游明朝体",             /* 4. Windows用 */
    "YuMincho",            /* 5. Windows用（英語表記） */
    "游明朝",               /* 6. Windows用（予備） */
    "MS P明朝",             /* 7. 古いWindows用 */
    serif;                 /* 8. 最終手段（Android等はここがゴシックになる場合あり） */
}

/* ===================================
   ボディ（全画面共通）
   =================================== */

/* ハンバーガーメニュー開放時：スクロール防止・ページトップボタンを背面に（top は JS で設定） */
body.no-scroll {
  position: fixed;
  width: 100%;
  overflow: hidden;
  touch-action: none;
}
body.no-scroll .page-top {
  z-index: 100;
  pointer-events: none;
}

/* 930px以下でヘッダーがfixedになるため、コンテンツが隠れないようpadding-topを追加 */
@media (max-width: 930px) {
  body {
      padding-top: 71px;
  }
}

/* ===================================
 ヘッダー（全画面共通）
 =================================== */

.header {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 71px;
  min-height: 71px;
  background: white;
  z-index: 1000;
  overflow: hidden;
  box-sizing: border-box;
}

/* 931px以上: デスクトップヘッダー */
@media (min-width: 931px) {
  .header {
      height: 71px;
      left: 0;
      right: 0;
  }
  
  .logo {
      position: absolute;
      left: 32px;
      top: 14px;
      width: 156px;
      height: 44px;
  }
  
  .nav {
      position: absolute;
      right: 32px;
      top: 42px;
      display: flex;
      gap: 36px;
      align-items: flex-end;
      justify-content: flex-end;
  }
  
  .nav-link {
      font-family: 'Zen Old Mincho', serif;
      font-weight: 700;
      font-size: 16px;
      color: #333;
      letter-spacing: 0.96px;
      background: none;
      border: none;
      cursor: pointer;
      transition: opacity 0.3s, color 0.3s;
      white-space: nowrap;
      line-height: 0;
      text-decoration: underline;
      text-underline-offset: 4px;
  }
  
  .nav-link:hover {
      opacity: 0.7;
      color: #b89454;
  }
  
  .hamburger {
      display: none;
  }
  
  .mobile-nav {
      display: none;
  }
}

/* 768px～930px: タブレット（ヘッダーはスクロール、ハンバーガーのみ固定追従） */
@media (min-width: 768px) and (max-width: 930px) {
  .header {
      position: absolute;
      height: 71px;
      left: 0;
      right: 0;
      width: 100%;
  }
  
  .logo {
      position: absolute;
      left: 12px;
      top: 14px;
      width: 156px;
      height: 44px;
  }
  
  .logo img {
      width: 100%;
      height: 100%;
  }
  
  /* デスクトップナビゲーションを非表示 */
  .nav {
      display: none;
  }
  
  /* ハンバーガーボタン：白背景・スクロール時のみ固定追従（メニュー開放時も前面に表示） */
  .hamburger {
      position: fixed;
      right: 12px;
      top: 6px;
      width: 80px;
      min-width: 80px;
      height: 62px;
      background: rgba(255, 255, 255, 0.8);
      border: none;
      border-radius: 12px;
      cursor: pointer;
      display: flex;
      flex-direction: column;
      align-items: center;
      padding: 14px 10px 4px;
      z-index: 1003;
      box-sizing: border-box;
  }
  
  .hamburger-lines {
      flex: 1;
      min-height: 22px;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      gap: 8px;
  }
  
  .hamburger-lines span {
      display: block;
      width: 44px;
      height: 2px;
      background: #333;
      transition: all 0.3s ease;
      flex-shrink: 0;
  }
  
  .hamburger-label {
      font-family: 'Zen Old Mincho', serif;
      font-size: 14px;
      font-weight: 700;
      color: #333;
      letter-spacing: 0.05em;
      line-height: 1.2;
      transition: opacity 0.3s ease;
      white-space: nowrap;
      margin-top: 6px;
  }
  
  .hamburger.active .hamburger-label {
      opacity: 0;
  }
  
  /* ハンバーガーメニューがアクティブな時（8px間隔に合わせて調整） */
  .hamburger.active .hamburger-lines span:nth-child(1) {
      transform: translateY(10px) rotate(45deg);
  }
  
  .hamburger.active .hamburger-lines span:nth-child(2) {
      opacity: 0;
  }
  
  .hamburger.active .hamburger-lines span:nth-child(3) {
      transform: translateY(-10px) rotate(-45deg);
  }
  
  /* モバイルナビゲーション（白背景は画面上端まで表示・ヘッダー/ロゴより前面に） */
  .mobile-nav {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      padding-top: 71px;
      background: white;
      transform: translateX(100%);
      transition: transform 0.3s ease;
      overflow-y: auto;
      z-index: 1002;
  }
  
  .mobile-nav.active {
      transform: translateX(0);
  }
  
  .mobile-nav-list {
      list-style: none;
      padding: 40px 20px;
      margin: 0;
      display: flex;
      flex-direction: column;
      gap: 24px;
  }
  
  .mobile-nav-link {
      font-family: 'Zen Old Mincho', serif;
      font-weight: 700;
      font-size: 18px;
      color: #333;
      padding: 16px;
      border-bottom: 1px solid #e0e0e0;
      transition: background 0.3s, color 0.3s;
      display: flex;
      align-items: center;
      text-decoration: none;
  }
  
  .mobile-nav-link:hover,
  .mobile-nav-link.active {
      background: #f8f8f6;
      color: #b89454;
  }
  
  .mobile-nav-phone-icon {
      display: flex;
      align-items: center;
      margin-right: 4px;
      color: #b89454;
  }
  .mobile-nav-phone-icon svg {
      width: 1.25em;
      height: 1.25em;
  }
}

/* 768px以下: モバイル */
@media (max-width: 767px) {
  .header {
      position: absolute;
      height: 71px;
      left: 0;
      right: 0;
  }
  
  .logo {
      position: absolute;
      left: 12px;
      top: 14px;
      width: 156px;
      height: 44px;
  }
  
  .logo img {
      width: 100%;
      height: 100%;
  }
  
  /* デスクトップナビゲーションを非表示 */
  .nav {
      display: none;
  }
  
  /* ハンバーガーボタン（上下余白4px・三本線とラベルを収める高さ・メニュー開放時も前面に表示） */
  .hamburger {
      position: fixed;
      right: 12px;
      top: 6px;
      width: 80px;
      min-width: 80px;
      height: 62px;
      background: rgba(255, 255, 255, 0.8);
      border: none;
      border-radius: 12px;
      cursor: pointer;
      display: flex;
      flex-direction: column;
      align-items: center;
      padding: 14px 10px 4px;
      z-index: 1003;
      box-sizing: border-box;
  }
  
  .hamburger-lines {
      flex: 1;
      min-height: 22px;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      gap: 8px;
  }
  
  .hamburger-lines span {
      display: block;
      width: 44px;
      height: 2px;
      background: #333;
      transition: all 0.3s ease;
      flex-shrink: 0;
  }
  
  .hamburger-label {
      font-family: 'Zen Old Mincho', serif;
      font-size: 14px;
      font-weight: 700;
      color: #333;
      letter-spacing: 0.05em;
      line-height: 1.2;
      transition: opacity 0.3s ease;
      white-space: nowrap;
      margin-top: 6px;
  }
  
  .hamburger.active .hamburger-label {
      opacity: 0;
  }
  
  /* ハンバーガーメニューがアクティブな時（8px間隔に合わせて調整） */
  .hamburger.active .hamburger-lines span:nth-child(1) {
      transform: translateY(10px) rotate(45deg);
  }
  
  .hamburger.active .hamburger-lines span:nth-child(2) {
      opacity: 0;
  }
  
  .hamburger.active .hamburger-lines span:nth-child(3) {
      transform: translateY(-10px) rotate(-45deg);
  }
  
  /* モバイルナビゲーション（白背景は画面上端まで表示・ヘッダー/ロゴより前面に） */
  .mobile-nav {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      padding-top: 71px;
      background: white;
      transform: translateX(100%);
      transition: transform 0.3s ease;
      overflow-y: auto;
      z-index: 1002;
  }
  
  .mobile-nav.active {
      transform: translateX(0);
  }
  
  .mobile-nav-list {
      list-style: none;
      padding: 40px 20px;
      margin: 0;
      display: flex;
      flex-direction: column;
      gap: 24px;
  }
  
  .mobile-nav-link {
      font-family: 'Zen Old Mincho', serif;
      font-weight: 700;
      font-size: 18px;
      color: #333;
      padding: 16px;
      border-bottom: 1px solid #e0e0e0;
      transition: background 0.3s, color 0.3s;
      display: flex;
      align-items: center;
      text-decoration: none;
  }
  
  .mobile-nav-link:hover,
  .mobile-nav-link.active {
      background: #f8f8f6;
      color: #b89454;
  }
  
  .mobile-nav-phone-icon {
      display: flex;
      align-items: center;
      margin-right: 4px;
      color: #b89454;
  }
  .mobile-nav-phone-icon svg {
      width: 1.25em;
      height: 1.25em;
  }
}

/* ===================================
 フッター（全画面共通）
 =================================== */
.footer {
  width: 100%;
  display: flex;
  flex-direction: column;
}


.footer-info {
  background: #f8f8f6;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.footer-label {
  font-family: 'Zen Old Mincho', serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.06;
  color: #333;
}

.footer-temple {
  font-family: 'Zen Old Mincho', serif;
  font-weight: 700;
  font-size: 36px;
  line-height: 40px;
  color: #333;
}

.footer-copyright {
  background: #152445;
  padding: 4px 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.footer-copyright p {
  font-family: 'Zen Old Mincho', serif;
  font-weight: 700;
  font-size: 10px;
  line-height: 1;
  letter-spacing: 0.6px;
  color: white;
  text-align: center;
  margin: 0;
}

/* 1024px以下：フッターが固定ボタンに隠れないよう下余白を確保。隙間は最小限に */
@media (max-width: 1024px) {
  body {
    padding-bottom: 112px;
  }
  .footer {
    margin-bottom: 0;
    padding-bottom: 0;
  }
}

/* ===================================
   電話番号セクション（下部）
   =================================== */

/* デスクトップ (931px以上) */
@media (min-width: 931px) {
  .tel-section {
    width: 100%;
    padding: 80px 32px;
    background: white;
  }

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

  .tel-title {
    font-family: 'Zen Old Mincho', serif;
    font-weight: 400;
    font-size: 36px;
    line-height: 40px;
    color: #b48c43;
    text-align: center;
    margin: 0 0 54px 0;
  }

  .tel-content {
    display: flex;
    flex-direction: column;
    gap: 46px;
    margin-bottom: 32px;
  }

  .tel-row {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 20px;
  }

  .tel-label-box {
    background: #c9a45a;
    width: 130px;
    height: 62px;
    min-height: 62px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Noto Serif', serif;
    font-weight: 400;
    font-size: 36px;
    line-height: 1;
    color: white;
    letter-spacing: 5px;
    white-space: nowrap;
    flex-shrink: 0;
    box-sizing: border-box;
  }

  .tel-number {
    font-family: "Zen Old Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "游明朝体", "YuMincho", "游明朝", "MS P明朝", serif;
    font-weight: 400;
    font-size: 84px;
    line-height: 1.2;
    color: #c9a45a;
    text-decoration: none;
    transition: opacity 0.3s;
    white-space: nowrap;
    display: inline-block;
  }

  .tel-number:hover {
    opacity: 0.7;
  }

  .tel-hours {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 25px;
  }

  .tel-hours-label {
    font-family: 'Zen Old Mincho', serif;
    font-weight: 700;
    font-size: 18px;
    line-height: 40px;
    color: #c9a45a;
  }

  .tel-hours-time {
    font-family: "Zen Old Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "游明朝体", "YuMincho", "游明朝", "MS P明朝", serif;
    font-weight: 400;
    font-size: 60px;
    line-height: 40px;
    color: #c9a45a;
    letter-spacing: 0.96px;
  }

  .tel-note {
    border-top: 1px solid #c9a45a;
    border-bottom: 1px solid #c9a45a;
    padding: 4px 8px;
    text-align: center;
  }

  .tel-note p {
    font-family: 'Zen Old Mincho', serif;
    font-weight: 400;
    font-size: 24px;
    line-height: 40px;
    color: #c9a45a;
    margin: 0;
  }
}

/* タブレット (768px～930px) */
@media (min-width: 768px) and (max-width: 930px) {
  .tel-section {
    width: 100%;
    padding: 60px 24px;
    background: white;
  }

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

  .tel-title {
    font-family: 'Zen Old Mincho', serif;
    font-weight: 400;
    font-size: 30px;
    line-height: 36px;
    color: #b48c43;
    text-align: center;
    margin: 0 0 40px 0;
  }

  .tel-content {
    display: flex;
    flex-direction: column;
    gap: 36px;
    margin-bottom: 28px;
  }

  .tel-row {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 20px;
  }

  .tel-label-box {
    background: #c9a45a;
    width: 130px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Noto Serif', serif;
    font-weight: 400;
    font-size: 38px;
    line-height: 1;
    color: white;
    letter-spacing: 5px;
    flex-shrink: 0;
  }

  .tel-number {
    font-family: "Zen Old Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "游明朝体", "YuMincho", "游明朝", "MS P明朝", serif;
    font-weight: 400;
    font-size: 60px;
    line-height: 32px;
    color: #c9a45a;
    text-decoration: none;
    transition: opacity 0.3s;
  }

  .tel-number:hover {
    opacity: 0.7;
  }

  .tel-hours {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
  }

  .tel-hours-label {
    font-family: 'Zen Old Mincho', serif;
    font-weight: 700;
    font-size: 15px;
    line-height: 32px;
    color: #c9a45a;
  }

  .tel-hours-time {
    font-family: "Zen Old Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "游明朝体", "YuMincho", "游明朝", "MS P明朝", serif;
    font-weight: 400;
    font-size: 42px;
    line-height: 32px;
    color: #c9a45a;
    letter-spacing: 0.8px;
  }

  .tel-note {
    border-top: 1px solid #c9a45a;
    border-bottom: 1px solid #c9a45a;
    padding: 4px 8px;
    text-align: center;
  }

  .tel-note p {
    font-family: 'Zen Old Mincho', serif;
    font-weight: 400;
    font-size: 18px;
    line-height: 32px;
    color: #c9a45a;
    margin: 0;
  }
}

/* モバイル (767px以下) */
@media (max-width: 767px) {
  .tel-section {
    width: 100%;
    padding: 52px 16px;
    background: white;
  }

  .tel-container {
    width: 100%;
  }

  .tel-title {
    font-family: 'Zen Old Mincho', serif;
    font-weight: 400;
    font-size: 20px;
    line-height: 28px;
    color: #b48c43;
    text-align: center;
    margin: 0 0 18px 0;
  }

  .tel-content {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin-bottom: 16px;
  }

  .tel-row {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
  }

  .tel-label-box {
    background: #c9a45a;
    width: 90px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Noto Serif', serif;
    font-weight: 400;
    font-size: 24px;
    line-height: 24px;
    color: white;
    letter-spacing: 4px;
    flex-shrink: 0;
  }

  .tel-number {
    font-family: "Zen Old Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "游明朝体", "YuMincho", "游明朝", "MS P明朝", serif;
    font-weight: 400;
    font-size: 28px;
    line-height: 24px;
    color: #c9a45a;
    text-decoration: none;
    transition: opacity 0.3s;
  }

  .tel-number:hover {
    opacity: 0.7;
  }

  .tel-hours {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
  }

  .tel-hours-label {
    font-family: 'Zen Old Mincho', serif;
    font-weight: 700;
    font-size: 13px;
    line-height: 24px;
    color: #c9a45a;
  }

  .tel-hours-time {
    font-family: "Zen Old Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "游明朝体", "YuMincho", "游明朝", "MS P明朝", serif;
    font-weight: 400;
    font-size: 26px;
    line-height: 24px;
    color: #c9a45a;
    letter-spacing: 0.5px;
  }

  .tel-note {
    border-top: 1px solid #c9a45a;
    border-bottom: 1px solid #c9a45a;
    padding: 4px 8px;
    text-align: center;
  }

  .tel-note p {
    font-family: 'Zen Old Mincho', serif;
    font-weight: 400;
    font-size: 14px;
    line-height: 24px;
    color: #c9a45a;
    margin: 0;
  }
}

/* 930px以下：電話番号セクションでTELを小さくし、番号と横並び・TELの縦幅を番号に合わせる */
@media (max-width: 930px) {
  .tel-row {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: stretch;
    justify-content: center;
    gap: 10px;
  }
  .tel-label-box {
    width: auto;
    min-width: 44px;
    height: auto;
    padding: 0 10px;
    font-family: 'Noto Serif', serif;
    font-weight: 400;
    font-size: 14px;
    line-height: 1;
    letter-spacing: 2px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
  }
  .tel-number {
    display: inline-flex;
    align-items: center;
  }
}

/* 768px～930px：TELラベルをやや大きく表示（番号より縦幅やや小さめ）・横のgapを少し広く */
@media (min-width: 769px) and (max-width: 930px) {
  .tel-row {
    gap: 18px;
  }
  .tel-label-box {
    width: 115px;
    min-width: 115px;
    height: 50px;
    padding: 0;
    font-size: 32px;
    letter-spacing: 5px;
  }
}

/* 768px以下：電話番号セクションのTEL・番号を大きく表示・横のgapを少し詰める */
@media (max-width: 768px) {
  .tel-section {
    padding-top: 68px;
    padding-bottom: 68px;
  }
  .tel-title {
    margin: 0 0 18px 0;
  }
  .tel-content {
    gap: 16px;
    margin-bottom: 16px;
  }
  .tel-row {
    align-items: center;
    gap: 10px;
  }
  .tel-label-box {
    min-width: 56px;
    padding: 0 14px;
    height: 32px;
    font-size: 20px;
    letter-spacing: 3px;
  }
  .tel-number {
    font-size: 38px;
    line-height: 1.2;
  }
}

/* ===================================
   電話で問い合わせる追従ボタン（1025px以上のみ・1024px以下は非表示）
   HTML+CSSで縦書き・金色グラデ・フッター重なり防止はJSで制御
   =================================== */
.side-tel-btn {
  display: none;
}

@media (min-width: 1025px) {
  .side-tel-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    right: 0;
    top: 58%;
    transform: translateY(-50%);
    width: 80px;
    min-height: 260px;
    padding: 28px 20px;
    z-index: 998;
    text-decoration: none;
    font-family: "Zen Old Mincho", serif;
    color: #001e43;
    background: linear-gradient(135deg, #e8d5a3 0%, #d4b96a 25%, #c9a45a 50%, #b89454 75%, #a67c3d 100%);
    border: none;
    border-radius: 16px 0 0 16px;
    box-shadow: -4px 2px 16px rgba(0, 0, 0, 0.2);
    transition: opacity 0.2s ease, box-shadow 0.2s ease;
  }
  .side-tel-btn:hover {
    opacity: 0.95;
    box-shadow: -6px 4px 20px rgba(0, 0, 0, 0.25);
  }
  .side-tel-btn-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 18px;
  }
  .side-tel-btn-text {
    font-weight: 900;
    font-size: 26px;
    line-height: 1.65;
    writing-mode: vertical-rl;
    text-orientation: upright;
    letter-spacing: 0.28em;
  }
  .side-tel-btn-icon-wrap {
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    border: 2px solid #c9a45a;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.3);
  }
  .side-tel-btn-icon {
    width: 28px;
    height: 28px;
    object-fit: contain;
    filter: brightness(0);
  }
}

/* ===================================
   固定お問い合わせボタン（1024px以下・index/noukotsu-guide 共通）
   =================================== */
@media (min-width: 1025px) {
  .fixed-contact-btn {
    display: none;
  }
}

@media (max-width: 1024px) {
  body {
    padding-bottom: 64px;
  }
  .footer {
    margin-bottom: 0;
    padding-bottom: 0;
  }
  .fixed-contact-btn {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 950;
    background: rgba(255, 255, 255, 0.8);
    padding: 6px 16px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .contact-btn-link {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    text-decoration: none;
    background: linear-gradient(180deg, #2a3f5f 0%, #1e3260 35%, #0f1a33 100%);
    border: 2px solid #C9A45A;
    border-radius: 8px;
    padding: 0 18px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
    transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.2s ease, color 0.2s ease;
  }
  .contact-btn-link:hover {
    box-shadow: 0 5px 16px rgba(0, 0, 0, 0.4);
  }
  .contact-btn-link:active,
  .contact-btn-link:focus-visible {
    transform: translateY(2px);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
    background: linear-gradient(180deg, #e0d0a0 0%, #C9A45A 50%, #b89454 100%);
    outline: none;
  }
  .contact-btn-link:active .contact-btn-text,
  .contact-btn-link:focus-visible .contact-btn-text {
    color: #152445;
  }
  .contact-btn-link:active .contact-btn-icon svg rect,
  .contact-btn-link:focus-visible .contact-btn-icon svg rect {
    fill: #e8dcc8;
    stroke: #152445;
  }
  .contact-btn-link:active .contact-btn-icon svg path,
  .contact-btn-link:focus-visible .contact-btn-icon svg path {
    fill: #152445;
  }
  .contact-btn-inner {
    display: flex;
    align-items: center;
    gap: 10px;
    justify-content: center;
    padding: 9px 0;
  }
  .contact-btn-icon {
    width: 28px;
    height: 28px;
    flex-shrink: 0;
  }
  .contact-btn-icon svg {
    width: 100%;
    height: 100%;
  }
  .contact-btn-text {
    font-family: 'Zen Old Mincho', serif;
    font-weight: 700;
    font-size: 20px;
    line-height: 1.2;
    letter-spacing: 0.08em;
    color: #ffffff;
    margin: 0;
    white-space: nowrap;
  }
}