@charset "utf-8";
/* ======================================================
   デザイントークン（フォント・カラー）
====================================================== */
/*サイト*/
:root {
  /*----- フォントサイズ -----*/
  --font-xxs: clamp(0.75rem, 0.735rem + 0.06vw, 0.813rem); /* 12–13px */
  --font-xs: clamp(0.875rem, 0.86rem + 0.06vw, 0.938rem); /* 14–15px */
  --font-s: clamp(1rem, 0.985rem + 0.06vw, 1.063rem); /* 16–17px */
  --font-m: clamp(1.125rem, 1.095rem + 0.13vw, 1.25rem); /* 18–20px */
  --font-l: clamp(1.375rem, 1.284rem + 0.39vw, 1.75rem); /* 22–28px */
  --font-xl: clamp(1.75rem, 1.568rem + 0.78vw, 2.5rem); /* 28–40px */
  --font-xxl: clamp(2.25rem, 1.947rem + 1.29vw, 3.5rem); /* 36–56px */

  /*----- ベースカラー（元色）-----*/
  --main-color: #506ec8; /* ブランドのメインカラー */
  --base-color: #ffffff; /* ベースカラー */
  --base-2: #f7f8fb; /* 薄いグレー */
  --accent-color: #c9a24d; /* アクセントカラー */
  --gradient: linear-gradient(135deg, #1f2a44, #2f3f73, #506ec8, #c9a24d);

  /*----- Main（メインカラー）-----*/
  /* 1〜4：白を混ぜた淡いトーン */
  --main-1: color-mix(in srgb, var(--main-color) 15%, white); /*  10〜19% */
  --main-2: color-mix(in srgb, var(--main-color) 25%, white); /*  20〜29% */
  --main-3: color-mix(in srgb, var(--main-color) 35%, white); /*  30〜39% */
  --main-4: color-mix(in srgb, var(--main-color) 45%, white); /*  40〜49% */
  /* 5：基準色 */
  --main-5: var(--main-color); /* zone 5: base */
  /* 6〜9：黒を混ぜた濃いトーン */
  --main-6: color-mix(in srgb, var(--main-color) 65%, black); /*  60〜69% */
  --main-7: color-mix(in srgb, var(--main-color) 75%, black); /*  70〜79% */
  --main-8: color-mix(in srgb, var(--main-color) 85%, black); /*  80〜89% */
  --main-9: color-mix(in srgb, var(--main-color) 92%, black); /*  90%〜深 */
  /*----- Base（白ベースのグレースケール）-----*/

  /*-----Accent（アクセントカラー）-----*/
  /* 1〜4：白を混ぜた淡いトーン */
  --accent-1: color-mix(in srgb, var(--accent-color) 5%, white);
  --accent-2: color-mix(in srgb, var(--accent-color) 10%, white);
  --accent-3: color-mix(in srgb, var(--accent-color) 35%, white);
  --accent-4: color-mix(in srgb, var(--accent-color) 45%, white);
  /* 5：基準色 */
  --accent-5: var(--accent-color);
  /* 6〜9：黒を混ぜた濃いトーン */
  --accent-6: color-mix(in srgb, var(--accent-color) 65%, black);
  --accent-7: color-mix(in srgb, var(--accent-color) 75%, black);
  --accent-8: color-mix(in srgb, var(--accent-color) 85%, black);
  --accent-9: color-mix(in srgb, var(--accent-color) 92%, black);

  /*----- Base（白ベースのグレースケール）-----*/
  --base-1: #fff;
  --base-2: #f7f8fb;

  /* Neutral gray scale */
  --gray-0: color-mix(in srgb, white, black 2%); /* 白98% + 黒2% */
  --gray-1: color-mix(in srgb, white, black 10%); /* 白90% + 黒10% */
  --gray-2: color-mix(in srgb, white, black 20%); /* 白80% + 黒20% */
  --gray-3: color-mix(in srgb, white, black 30%); /* 白70% + 黒30% */
  --gray-4: color-mix(in srgb, white, black 40%); /* 白60% + 黒40% */
  --gray-5: color-mix(in srgb, white, black 50%); /* 白50% + 黒50% */
  --gray-6: color-mix(in srgb, white, black 60%); /* 白40% + 黒60% */
  --gray-7: color-mix(in srgb, white, black 70%); /* 白30% + 黒70% */
  --gray-8: color-mix(in srgb, white, black 80%); /* 白20% + 黒80% */
  --gray-9: color-mix(in srgb, white, black 90%); /* 白10% + 黒90% */
  --gray-10: color-mix(in srgb, white, black 98%); /* 白2% + 黒98% */

  /*----- テキスト -----*/
  --text-main: #1f2328; /* 本文：チャコールブラック */
  --text-soft: #6b7280; /* 補足：クールグレー */
  --text-dark: #0f1419; /* 見出し：ほぼブラック */
  --text-strong: #b00000; /* 大切・目立たせたい 暗めの赤色*/

  /*----- その他 -----*/
  --radius: 14px;
  --shadow: 0 18px 40px rgba(0, 0, 0, 0.1);
  --shadow-soft: 0 10px 26px rgba(0, 0, 0, 0.08);
  --border: 1px solid #c9a24d;
  --border-soft: 1px solid rgba(201, 162, 77, 0.35);
  --gold-gradient-1: linear-gradient(
    135deg,
    #fff2f0 0%,
    #f0d98a 18%,
    #c9a24d 50%,
    #b08a35 70%,
    #fff2c4 100%
  );
  --gold-gradient-2: linear-gradient(
    135deg,
    #fff7d8 0%,
    #f6e2a6 20%,
    #d4b05a 45%,
    #9e7729 70%,
    #fff2c4 100%
  );
}

/* ======================================================
   all（リセット／ベース）
====================================================== */
*,
::before,
::after {
  padding: 0;
  margin: 0;
  -webkit-box-sizing: inherit;
  box-sizing: inherit;
}
* {
  box-sizing: border-box;
}
ul li {
  list-style-type: none;
}
a {
  text-decoration: none;
  color: inherit;
  pointer-events: auto;
}
img {
  max-width: 100%;
  height: auto;
  display: block;
}
/* アンカーリンクが作用する要素に適用 */
.anchor-target {
  scroll-margin-top: 100px;
}
.no-scroll {
  overflow: hidden;
}
/* 電話番号リンク（PCではクリック不可）※ルールどおり801px基準 */
@media (min-width: 801px) {
  a[href^="tel:"] {
    pointer-events: none !important;
  }
}
/*--------------フォント／本文ベース----------------*/
body {
  width: 100%;
  height: 100%;
  padding-top: 100px; /* ヘッダーの高さ分だけ余白 */
  box-sizing: border-box;
  font-family:
    "Montserrat",
    system-ui,
    -apple-system,
    "Segoe UI",
    sans-serif;
  letter-spacing: 0.02em;
  font-optical-sizing: auto;
  font-size: var(--font-s); /* 16px ベース */
  color: var(--text-main);
  line-height: 1.7;
  overflow-x: hidden;
}
@media (max-width: 768px) {
  body {
    padding-top: 70px;
  }
}
@media (max-width: 375px) {
  body {
    padding-top: 50px;
  }
}
/* -----------------------------------------------------
   改行クラス（br-xxx）※デザインルール準拠
----------------------------------------------------- */
/* まず全て非表示 */
.br-pc,
.br-pc-s,
.br-pc-l,
.br-tb,
.br-tb-l,
.br-tb-m,
.br-tb-s,
.br-sp,
.br-sp-l,
.br-sp-m,
.br-sp-s {
  display: none;
}

/* -------------------------
   PC（1280px〜）※既存
------------------------- */
@media (min-width: 1280px) {
  .br-pc {
    display: inline;
  }
}

@media (min-width: 1280px) and (min-height: 801px) {
  .br-pc-l {
    display: inline;
  }
}

@media (min-width: 1280px) and (max-height: 800px) {
  .br-pc-s {
    display: inline;
  }
}

/* -------------------------
   タブレット（768〜1279px）
------------------------- */

/* TB 共通 */
@media (min-width: 768px) and (max-width: 1279px) {
  .br-tb {
    display: inline;
  }
}

/* TB-L（iPad Pro） */
@media (min-width: 1024px) and (max-width: 1279px) {
  .br-tb-l {
    display: inline;
  }
}

/* TB-M（iPad Air） */
@media (min-width: 800px) and (max-width: 1023px) {
  .br-tb-m {
    display: inline;
  }
}

/* TB-S（iPad mini） */
@media (min-width: 768px) and (max-width: 799px) {
  .br-tb-s {
    display: inline;
  }
}

/* -------------------------
スマホ（〜767px）
------------------------- */
/*SP 共通 */
@media (max-width: 767px) {
  .br-sp {
    display: inline;
  }
}

/* SP-L（大きめスマホ）*/
@media (min-width: 481px) and (max-width: 767px) {
  .br-sp-l {
    display: inline;
  }
}

/* SP-M（標準スマホ） */
@media (min-width: 376px) and (max-width: 480px) {
  .br-sp-m {
    display: inline;
  }
}

/* SP-S（小型スマホ）*/
@media (max-width: 375px) {
  .br-sp-s {
    display: inline;
  }
}

/* -----------------------------------------------------
   オーバーレイ　※上にrelativeをつけること
-----------------------------------------------------  */

/*↑＋↓*/
.overlay {
  position: absolute;
  inset: 0; /* top: 0; right: 0; bottom: 0; left: 0; を省略 */
  background: linear-gradient(
    135deg,
    rgba(0, 8, 17, 0.6),
    rgba(20, 30, 60, 0.45)
  );
}

/*上*/
.overlay-front {
  position: relative;
  z-index: 2;
}
/* ======================================================
   main
====================================================== */
/*--------------【all】----------------*/
#main {
  margin: 0 auto;
  position: relative;
  overflow-x: hidden;
}
.anchor-target {
  scroll-margin-top: 100px;
}
.back {
  position: relative;
}

@media (max-width: 768px) {
  body {
    padding-top: 70px;
  }
}
@media (max-width: 375px) {
  body {
    padding-top: 50px;
  }
}
/*--------------【セクション】----------------*/
.section {
  position: relative;
  padding-top: 80px;
  padding-bottom: 80px;
  /*scroll-margin-top: 70px; */ /* resアンカーリンクTOP */
}
@media (max-width: 767px) {
  .section {
    padding-top: 40px;
    padding-bottom: 40px;
  }
}
/*--------------【インナー】----------------*/
.inner {
  position: relative;
  z-index: 2;
  width: 1120px;
  margin: 0 auto;
}
/* 横幅いっぱいにしたいときだけ使う modifier */
.inner--full {
  width: 100%;
  margin-inline: 0;
  padding-inline: 0;
}
.white-inner {
  background-color: rgba(255, 255, 255, 0.7);
}
@media (max-width: 1024px) {
  /* タブレット以下のサイズ */
  .inner {
    width: 80%;
  }
}
@media (max-width: 767px) {
  /* スマホ以下のサイズ */
  .inner {
    width: 90%;
  }
}
/* ======================================================
   タイトル
====================================================== */
.page-title {
  position: relative;
  width: 100%;
  height: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--base-2);
}

.bg-text {
  position: absolute;
  font-style: italic;
  font-size: clamp(6.625rem, 1.125rem + 6.88vw, 9.375rem);
  color: rgba(210, 235, 247, 0.45);
  white-space: nowrap;
  user-select: none;
}

.jp-text {
  position: relative;
  font-size: var(--font-l);
  letter-spacing: 0.15em;
  color: #000000;
}
@media (max-width: 1024px) {
  .page-title {
    height: 150px;
  }
  .bg-text {
    font-size: clamp(6.625rem, 1.125rem + 6.88vw, 9.375rem);
  }
}
@media (max-width: 767px) {
  .page-title {
    height: 130px;
  }
  .bg-text {
    font-size: clamp(5.313rem, 4.05rem + 5.37vw, 6.625rem);
  }
}
/*--------------【セクションタイトル】----------------*/
.section-title {
  margin-bottom: 26px;
}
.section-title span {
  margin: 0 0 6px;
  font-size: 12px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--main-9);
}
.section-title p {
  margin: 0;
  color: var(--text-dark); /* 黒に近いグレー */
  font-weight: 600;
  font-size: 26px;
  letter-spacing: 0.08em;
}
.section-title div {
  margin-top: 16px;
  /* width: 76px; */
  width: 30%;
  height: 2px;
  background: linear-gradient(90deg, var(--main-5), rgba(191, 165, 106, 0));
}

@media (max-width: 767px) {
  .section-title {
    text-align: center;
  }
  .section-title div {
    margin: 0 auto;
  }
}
/* ======================================================
   ボタン
====================================================== */
.btn-wrapper {
  margin-top: 50px;
  text-align: center;
}
.view-more {
  display: inline-flex;
  align-items: center;
  letter-spacing: 0.2em;
  font-weight: 600;
  font-size: var(--font-s);
  color: var(--main-color);
  text-decoration: none;
  transition:
    color 0.3s,
    opacity 0.3s; /* colorの遷移を追加 */
}

/* 円のパーツ */
.view-more .circle {
  position: relative;
  left: -16px;
  width: 40px;
  height: 40px;
  /* 270度くらいの円にするためにborderを調整 */
  border: 2px solid currentColor;
  border-left-color: transparent; /* 左側を消す */
  border-radius: 50%;
  display: flex;
  align-items: center;
  transition: transform 0.3s;
}

/* 矢印の「棒」の部分 */
.view-more .arrow-line {
  position: absolute;
  left: 15px; /* 円の左側から突き抜けさせる */
  width: 50px; /* 長さ */
  height: 2px;
  background-color: currentColor;
}

/* 矢印の「先端（くの字）」の部分 */
.view-more .arrow-line::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  width: 8px;
  height: 8px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: translateY(-50%) rotate(45deg);
}

/* ホバー時に少し右に動くとかっこいい */
.view-more:hover,
.section--works .works-content:hover .view-more {
  color: var(--accent-9); /* ここで指定した色が全体に反映されます */
}
.view-more:hover .circle,
.works-content:hover .view-more .circle {
  transform: translateX(5px);
  transition: transform 0.3s;
}

/* worksボタンのみ */
.works-view {
  color: var(--accent-color);
}

/* ======================================================
　コンタクト用ボタン
====================================================== */

.contact-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  height: 44px;
  padding: 0 18px;
  border-radius: 999px;
  text-decoration: none;
  letter-spacing: 0.1em;
  font-size: var(--font-s);
  text-transform: uppercase;
  white-space: nowrap;
  background: var(--gold-gradient-1);
  color: #fff;
  box-shadow: 0 14px 30px rgba(191, 165, 106, 0.25);
  transition:
    background-color 0.3s ease,
    color 0.3s ease,
    box-shadow 0.3s ease,
    border-color 0.3s ease;
}
.contact-btn:hover {
  background: var(--gold-gradient-2);
  border: var(--border);
}

/* ======================================================
  パターン
====================================================== */

/* 共通：パターンの箱 */
.ptn-box-1,
.ptn-box-2,
.ptn-box-3,
.ptn-box-4 {
  position: absolute;
  inset: 0;
  z-index: 1; /* 背景より上、innerより下 */
}

.ptn-box-5 {
  position: relative;
}

/* １ */
.square-1 {
  position: absolute;
  z-index: 2;
  top: clamp(-8.125rem, -7.081rem + -4.52vw, -12.5rem); /* -200px~-130px */
  left: -108px;
  width: clamp(16.25rem, 14.907rem + 5.81vw, 21.875rem); /* 350px-260px */
  transform: rotate(8deg);
  opacity: 0.4;
}

/* ２ */
.square-2 {
  position: absolute;
  z-index: 2;
  width: 400px;
  top: -88px;
  right: -200px;
  transform: rotate(-10deg);
  opacity: 0.5;
}

/* ３ */
.square-3 {
  position: absolute;
  z-index: 2;
  top: -150px;
  left: -150px;
  width: 370px;
  opacity: 0.5;
}

/* ４ */
.square-4 {
  position: absolute;
  z-index: 2;
  top: -150px;
  right: -108px;
  width: 380px;
  transform: rotate(-12deg);
  opacity: 0.4;
}

/* ５ */
.square-5 {
  position: absolute;
  z-index: 1; /* これのみ1 */
  bottom: -200px;
  left: -108px;
  width: 400px;
  transform: rotate(6deg);
  opacity: 0.4;
}
/* ６ */
.square-6 {
  position: absolute;
  z-index: 1; /* これのみ1 */
  bottom: -200px;
  right: -108px;
  width: 380px;
  transform: rotate(-12deg);
  opacity: 0.4;
}

/* TB以下 */
@media (max-width: 1024px) {
  /* １ */
  .square-1 {
    width: clamp(14.688rem, 11.762rem + 12.65vw, 21.875rem); /* 350px-235px */
  }

  /* ２ */
  .square-2 {
    width: clamp(14.688rem, 10.49rem + 18.15vw, 25rem); /* 400px-240px */
    right: -142px;
  }

  /* ３ */
  .square-3 {
    width: clamp(14.875rem, 11.517rem + 14.52vw, 23.125rem); /* 370px-238px */
  }

  /* ４ */
  .square-4 {
    width: clamp(15.5rem, 12.142rem + 14.52vw, 23.75rem); /* 380px-248px */
  }

  /* ５ */
  .square-5 {
    width: clamp(14.688rem, 10.49rem + 18.15vw, 25rem); /* 400px-240px */
  }

  /* ６ */
  .square-4 {
    width: clamp(15.5rem, 12.142rem + 14.52vw, 23.75rem); /* 380px-248px */
  }
}
@media (max-width: 767px) {
  .square-1,
  .square-2,
  .square-3,
  .square-4,
  .square-5,
  .square-6 {
    opacity: 0.2;
  }
}

/* ======================================================
  header
====================================================== */
/* ヘッダーは常に固定 */
#header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 100px;
  width: 100%;
  z-index: 1000;
  padding: 0 10px;
  background-color: var(--base-2);
  box-shadow: var(--shadow);

  display: flex;
  justify-content: space-between;
  align-items: center;
}
@media (max-width: 768px) {
  #header {
    height: 70px;
  }
}
@media (max-width: 375px) {
  #header {
    height: 50px;
  }
}
/* -----------------------------------------------------
  header：ロゴ
----------------------------------------------------- */
#header-logo {
  height: 100% !important;
}
#header-logo {
  display: flex;
  align-items: center;
  gap: 18px;
}
.company_logo {
  height: 100%;
  padding-bottom: 10px;
}
.company_name {
  font-weight: bold;
  font-size: var(--font-m);
}

@media (max-width: 1024px) {
  .company_logo {
    padding-bottom: 6px;
  }
}
/* -----------------------------------------------------
  header：ナビメニュー
----------------------------------------------------- */
.g-nav {
  display: flex;
  gap: 35px;
}

/* hover時　enからjp */
.g-nav a {
  position: relative;
  overflow: hidden;
  display: block; /* inline-blockより安定 */
  padding: 0 30px; /* 横だけpadding */
  height: 40px; /* ★高さ固定（調整OK） */
  line-height: 40px; /* ★縦中央 */
  text-decoration: none;
  color: #333;
  min-width: 110px; /* ★文字が欠けるなら増やす */
}

/* 共通 */
.g-nav a span {
  position: absolute;
  left: 0; /* ★50%やめる */
  top: 0;
  width: 100%; /* ★横幅いっぱい */
  text-align: center; /* ★中央寄せはこれで */
  white-space: nowrap;
  transition:
    transform 0.4s ease,
    opacity 0.4s ease;
  transform: translateY(0);
}

/* 日本語は下に隠す */
.g-nav a .jp {
  transform: translateY(100%);
  opacity: 0;
}

/* hover時：英語が上へ */
.g-nav a:hover .en {
  transform: translateY(-100%);
  opacity: 0;
}

/* hover時：日本語が中央へ */
.g-nav a:hover .jp {
  transform: translateY(0);
  opacity: 1;
}

/* 現在地（markクラス）は日本語固定 */
.g-nav a.mark .en {
  transform: translateY(-100%);
  opacity: 0;
}

.g-nav a.mark .jp {
  transform: translateY(0);
  opacity: 1;
  color: var(--main-color);
}

@media (max-width: 1024px) {
  /* ナビを隠す */
  .g-nav {
    position: fixed; /* absoluteからfixedに変更し全画面へ */
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh; /* 画面いっぱいの高さ */
    background: rgba(
      255,
      255,
      255,
      0.98
    ); /* 背景をわずかに透過させるなど調整可能 */

    flex-direction: column;
    justify-content: center; /* 項目を中央に配置 */
    align-items: center;
    gap: 45px;

    /* 初期状態：画面外または非表示 */
    transform: translateX(100%); /* 右からスライドさせる場合 */
    opacity: 0;
    pointer-events: none;
    transition:
      transform 0.4s ease,
      opacity 0.4s ease;
    z-index: 1500;
  }

  /* 開いた状態：is-openクラスがついた時 */
  .g-nav.is-open {
    transform: translateX(0);
    opacity: 1;
    pointer-events: auto;
    background-color: var(--base-2);

    border: none;
    padding: 0; /* 中身をズラしたくないなら0 */
    box-sizing: border-box;
    position: fixed; /* 念のため（既に書いててもOK） */
    top: 0;
    left: 0;
    width: 100%;
  }

  /* 内側10pxに金枠を描く */
  .g-nav.is-open::before {
    content: "";
    position: absolute;
    inset: 10px; /* ← これが「10px小さく」 */
    border: 4px solid transparent;
    border-image: linear-gradient(135deg, #d4af37, #f5e7a1, #b8962e) 1;
    pointer-events: none;
  }

  /* メニュー内のリンク調整 */
  .g-nav a {
    border-bottom: none; /* 全画面なのでボーダーなしでも綺麗です */
    font-size: 1.2rem;
    width: auto;
    padding: 10px 0;
  }
}

/* -----------------------------------------------------
  header：ハンバーガーボタン
----------------------------------------------------- */
.hamburger {
  display: none;
}
@media (max-width: 1024px) {
  .hamburger {
    display: block;
  }

  #nav-toggle.hamburger {
    position: relative;
    width: 50px;
    height: 50px;
    cursor: pointer;
    border: none;
    padding: 0;
    z-index: 2000;
  }

  #nav-toggle .hamburger-icon {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
  }

  #nav-toggle .hamburger-icon span {
    position: absolute;
    left: 13px;
    height: 2px;
    background: var(--main-color);
    transition: all 0.4s;
    display: block;
  }

  /* 上の線 */
  #nav-toggle .hamburger-icon span:nth-child(1) {
    top: 22px;
    width: 50%;
  }

  /* 下の線 */
  #nav-toggle .hamburger-icon span:nth-child(2) {
    top: 29px;
    width: 30%;
  }

  /* ここが重要：開いてる時(aria-expanded=true)に× */
  #nav-toggle[aria-expanded="true"] .hamburger-icon span:nth-child(1) {
    top: 20px;
    left: 16px;
    transform: translateY(6px) rotate(-45deg);
    width: 35%;
  }

  #nav-toggle[aria-expanded="true"] .hamburger-icon span:nth-child(2) {
    top: 32px;
    left: 16px;
    transform: translateY(-6px) rotate(45deg);
    width: 35%;
  }
}

/* ======================================================
   footer
====================================================== */

/*--------------【お問い合わせリンク】----------------*/
#contact {
  background-color: #fff;
}

/* 背景ロゴ専用 */
#contact {
  position: relative;
  background: #fff;
  overflow: hidden;
}

/* 背景模様（薄く・上品に） */
#contact::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url(../image/common/back-ptn.png);
  background-size: cover;
  background-position: top left;
  opacity: 0.18; /* 0.3は強いので控えめが高級 */
  pointer-events: none;
  z-index: 0;
}

/* section-line：枠＋ガラス面（innerに付いてる想定） */
#contact .section-line {
  position: relative;
  z-index: 1;

  padding: 28px; /* 余白が高級感 */

  /* ここは“実線border”は使わない（疑似要素で枠を作る） */
}

/* グラデ枠（枠だけ表示） */
#contact .section-line::before {
  content: "";
  position: absolute;
  inset: 0;
  padding: 1px; /* 枠の太さ */

  /* ブルー×ゴールドの高級な縁 */
  background: linear-gradient(
    120deg,
    rgba(201, 162, 77, 0.18),
    rgba(201, 162, 77, 0.65),
    rgba(80, 110, 200, 0.3),
    rgba(201, 162, 77, 0.28)
  );

  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;

  opacity: 0.55;
  pointer-events: none;
}

/* 内側の“ガラス面”＋影 */
#contact .section-line::after {
  content: "";
  position: absolute;
  inset: 1px;
  background: rgba(255, 255, 255, 0.72);
  box-shadow:
    0 22px 50px rgba(31, 42, 68, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.55);

  pointer-events: none;
}

/* 中身を前面へ */
#contact .section-line > * {
  position: relative;
  z-index: 2;
}

/* バー */
.contact-bar {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  padding: 34px 38px;

  /* 白は維持 */
  background: linear-gradient(180deg, var(--main-1), var(--base-1));
  /* ゴールドは「線」だけに使う */
  border: 1px solid var(--accent-3);

  /* 影で格を出す（青寄り） */
  box-shadow:
    0 22px 48px rgba(31, 42, 68, 0.1),
    0 8px 18px rgba(31, 42, 68, 0.08);

  overflow: hidden;
}

/* ブルーの“気配”だけを入れる（色は付けない） */
.contact-bar::before {
  content: "";
  position: absolute;
  top: -40%;
  left: -20%;
  width: 520px;
  height: 520px;

  pointer-events: none;
}

/* 角にほんのりゴールドハイライト */
.contact-bar::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;

  opacity: 0.25;
  pointer-events: none;
}

/* テキスト */
.contact-text {
  margin: 0;
  color: var(--text-main);
  line-height: 1.9;
  font-weight: 600;
}

/* 小さな英字（主張しすぎない） */

.contact-lead {
  display: inline-block;
  margin-bottom: 8px;
  font-size: var(--font-xxs);
  letter-spacing: 0.2em;
  color: var(--main-5);
  font-weight: 700;
}
.badge-free {
  display: inline-block;
  margin-right: 8px;
  padding: 2px 10px;

  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;

  color: #fff;

  /* 金属感ゴールド（ボタンと統一） */
  background: var(--gold-gradient-1);

  border-radius: 999px;
  box-shadow:
    0 6px 14px rgba(201, 162, 77, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.65);

  vertical-align: middle;
}
/* CTAボタン：ブランドブルー主役 */
.contact-bar .contact-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;

  padding: 14px 36px;
  border-radius: 999px;
  text-decoration: none;

  /* 金属ゴールドグラデーション */
  background: var(--gold-gradient-1);
  color: #fff;

  font-weight: 800;
  letter-spacing: 0.04em;

  border: 1px solid rgba(255, 255, 255, 0.55);

  box-shadow:
    0 14px 28px rgba(201, 162, 77, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.65),
    inset 0 -1px 0 rgba(0, 0, 0, 0.12);

  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease,
    filter 0.25s ease;
}

/* ハイライト（光の反射） */
.contact-bar .contact-btn::before {
  content: "";
  position: absolute;
  inset: 2px;
  border-radius: inherit;
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.55),
    rgba(255, 255, 255, 0.05) 45%,
    rgba(0, 0, 0, 0.12) 100%
  );
  pointer-events: none;
}

/* 矢印 */
.contact-bar .contact-btn::after {
  content: "→";
  font-weight: 900;
}

/* hover：少し持ち上がる */
.contact-bar .contact-btn:hover {
  transform: translateY(-2px);
  filter: brightness(1.03);
  background: var(--gold-gradient-2);
  box-shadow:
    0 20px 42px rgba(201, 162, 77, 0.45),
    inset 0 1px 0 rgba(255, 255, 255, 0.75),
    inset 0 -1px 0 rgba(0, 0, 0, 0.18);
}
/* スマホ */
@media (max-width: 560px) {
  .contact-bar {
    flex-direction: column;
    text-align: center;
    padding: 30px 22px;
  }

  .contact-bar .btn,
  .contact-bar a {
    width: 100%;
  }
}

/*--------------【会社情報 + アクセス】----------------*/
/* セクション全体（白背景＋軽く余白） */
.footer-company {
  background-color: var(--base-2);
  padding: 30px 20px;
  border-top: 1px solid #eeeeee;
}
.footer-company-inner {
  margin: 0 auto;
  display: flex;
  gap: 100px;
  align-items: flex-start;
  position: relative;
}
/* 真ん中の縦仕切り線 */
.footer-company-inner::before {
  content: "";
  position: absolute;
  top: 10%;
  bottom: 10%;
  left: 50%;
  width: 1px;
  background-color: #dddddd;
  transform: translateX(-50%);
}
.footer-company-block {
  flex: 1;
  padding: 50px 0;
  box-sizing: border-box;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
}

.footer-title {
  text-align: left;
  font-size: var(--font-m);
  font-weight: bold;
}
.blue-line {
  margin-top: 10px;
  margin-bottom: 30px;
  width: 100%;
  height: 2px;
  background: linear-gradient(90deg, var(--main-5), var(--main-1));
}
/* 会社概要 */
.footer-address-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.footer-address-list li {
  display: flex;
  gap: 12px;
  align-items: baseline;
  font-size: var(--font-s);
  margin-bottom: 10px;
}
.footer-label {
  min-width: 3em;
  font-weight: 600;
  color: #666666;
}
.footer-text a {
  text-decoration: none;
}
.footer-text a:hover {
  text-decoration: underline;
}

/* 地図 */
.footer-map-frame {
  position: relative;
  width: 100%;
  padding-top: 60%;
  overflow: hidden;
}
.footer-map-frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 90%;
}
@media (max-width: 767px) {
  .footer-company-inner {
    flex-direction: column;
    gap: 24px;
  }
  /* 中央の縦線はスマホでは非表示 */
  .footer-company-inner::before {
    display: none;
  }
  .footer-company-block {
    padding: 10px 10px 0 10px;
  }
  .footer-company-info {
    width: 100%;
    border-bottom: 1px solid #eeeeee; /* スマホでは横の仕切りに */
    padding-bottom: 20px;
  }
  .footer-company-map {
    width: 100%;
    padding-top: 10px;
  }
  .footer-company-name {
    text-align: center;
  }
  /* ▼▼ ここからがポイント ▼▼ */
  /* リスト全体を中央寄せしつつ、横幅をやや絞る */
  .footer-address-list {
    max-width: 340px; /* お好みで 320〜360px くらい */
    margin: 0 auto;
  }
  /* 1行ずつは左寄せのまま */
  .footer-address-list li {
    justify-content: flex-start; /* center をやめる */
    text-align: left;
  }
  /* ラベル列の幅をそろえて右寄せにする */
  .footer-label {
    min-width: 4em; /* 住所 / TEL / FAX / 定休日 の幅を統一 */
  }
  /* テキスト側は残りスペースを使う */
  .footer-text {
    flex: 1;
  }
  /* ▲▲ ここまでがポイント ▲▲ */
  .footer-map-title,
  .footer-map-text {
    text-align: center;
    border-bottom: none;
    margin-bottom: 0;
  }
  .footer-company-map {
    width: 100%;
    padding-top: 10px;
  }
  .footer-company-name {
    text-align: center;
  }
  .footer-address-list li {
    justify-content: center;
    text-align: left;
  }
  .footer-title,
  .footer-map-text {
    text-align: center;
    border-bottom: none;
    margin-bottom: 0;
  }
  .footer-map-frame iframe {
    height: 100%;
  }
}
/* ======================================================
   コピーライト
====================================================== */
.copyright {
  color: #fff;
  font-size: var(--font-xs); /* 13px 相当 */
  text-align: center;
  padding: 1rem 2rem;
  background-color: var(--main-5);
}
/* ======================================================
   ページトップボタン
====================================================== */
/* 矢印の外枠（aタグなどの親要素にサイズを指定） */
.arrow-icon-btt-s02 {
  display: inline-block;
  position: relative;
  width: 24px; /* 矢印の幅 */
  height: 24px; /* 矢印の高さ */
  background: var(--main-7);
  padding: 25px;
}
/* 矢印本体（CSS Chevrons方式） */
.arrow-icon-btt-s02::before {
  content: "";
  display: block;
  width: 16px;
  height: 16px;
  border-top: 3px solid #fff; /* 矢印の太さと色 */
  border-right: 3px solid #fff; /* 矢印の太さと色 */
  transform: rotate(-45deg); /* 上向きにする */
  position: absolute;
  top: 60%;
  left: 50%;
  margin-left: -8px;
  margin-top: -8px;
}
/* ホバー時の装飾（必要に応じて） */
.arrow-icon-btt-s02:hover {
  background: var(--main-6); /* ホバー時に色を変える場合 */
}
/*リンクを右下に固定*/
#page-top {
  position: fixed;
  right: 10px;
  bottom: 20px;
  z-index: 10;
  opacity: 0;
  transform: translateY(100px);
}
/*　上に上がる動き　*/
#page-top.UpMove {
  animation: UpAnime 0.5s forwards;
}
@keyframes UpAnime {
  from {
    opacity: 0;
    transform: translateY(100px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/*　下に下がる動き　*/
#page-top.DownMove {
  animation: DownAnime 0.5s forwards;
}
@keyframes DownAnime {
  from {
    opacity: 1;
    transform: translateY(0);
  }
  to {
    opacity: 0;
    transform: translateY(100px);
  }
}
/* -------------------------
   レスポンシブ（page-top）
   ------------------------- */
@media (min-height: 1200px) {
  #page-top img {
    height: 130px;
  }
}
@media (max-width: 767px) {
  #page-top img {
    height: 80px;
  }
}
