@charset "UTF-8";
/* Box sizing rules */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* Prevent font size inflation */
html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
}

/* Remove default margin in favour of better control in authored CSS */
body, h1, h2, h3, h4, p,
figure, blockquote, dl, dd {
  margin-block-end: 0;
}

/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
ul[role=list],
ol[role=list] {
  list-style: none;
}

/* Set core body defaults */
body {
  min-height: 100vh;
  line-height: 1.5;
}

/* Set shorter line heights on headings and interactive elements */
h1, h2, h3, h4,
button, input, label {
  line-height: 1.1;
}

/* Balance text wrapping on headings */
h1, h2,
h3, h4 {
  text-wrap: balance;
}

/* A elements that don't have a class get default styles */
a:not([class]) {
  text-decoration-skip-ink: auto;
  color: currentColor;
}

/* Make images easier to work with */
img,
picture {
  max-width: 100%;
  display: block;
}

/* Inherit fonts for inputs and buttons */
input, button,
textarea, select {
  font-family: inherit;
  font-size: inherit;
}

/* Make sure textareas without a rows attribute are not tiny */
textarea:not([rows]) {
  min-height: 10em;
}

/* Anything that has been anchored to should have extra scroll margin */
:target {
  scroll-margin-block: 5ex;
}

/* ==========================================================================
    変数定義
========================================================================== */
/* ==========================================================================
    ミックスイン定義
========================================================================== */
/* ==========================================================================
    基本スタイル
========================================================================== */
html {
  scroll-behavior: smooth;
}

a {
  color: #111111;
  text-decoration: none;
}

li {
  list-style: none;
}

body {
  font-family: "YuGothic", "游ゴシック体", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  box-sizing: border-box;
}

img {
  vertical-align: bottom;
  height: 100%;
}

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

.wrapper {
  overflow: hidden;
}

/* 英語テキストにFuturaフォントを適用 */
:lang(en) {
  font-family: "Futura", "Arial", sans-serif;
}

/* ==========================================================================
    共通titleのスタイル(js部分)
========================================================================== */
.section-title {
  position: relative;
  text-align: center;
  margin: 50px 0;
  padding: 10px 0;
  --line-left: 10%;
  --line-right: 10%;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.5s ease-out, transform 0.5s ease-out;
}

.section-title.animate {
  opacity: 1;
  transform: translateY(0);
}

.section-title h2,
.section-title .section-subtitle {
  margin: 0;
  padding: 30px 0;
  font-weight: normal;
  position: relative;
  z-index: 1;
  font-size: clamp(1rem, 0.5rem + 2.5vw, 2.375rem);
  letter-spacing: 0.4rem;
}

.section-title p {
  font-size: 18px;
  letter-spacing: 0.1rem;
}

.service-subtitle-text {
  text-align: center;
  padding-bottom: 10px;
  font-size: clamp(0.875rem, 0.708rem + 0.56vw, 1.125rem);
}

.section-title::before,
.section-title::after {
  content: "";
  position: absolute;
  left: var(--line-left);
  right: var(--line-right);
  height: 1px;
  background-color: #ffffff;
  opacity: 0;
  transform: scaleX(0);
  transform-origin: center;
  transition: all 1.5s ease-out;
}

.section-title::before {
  top: 0;
  margin-top: -3px;
  transition-delay: 0.5s;
}

.section-title::after {
  bottom: 0;
  margin-bottom: -3px;
  transition-delay: 1s;
}

.section-title.animate::before,
.section-title.animate::after {
  opacity: 1;
  transform: scaleX(1);
}

/* 個別のライン幅調整 ============================= -*/
.service-title {
  --line-left: 35%;
  --line-right: 35%;
}

.flow-title {
  --line-left: 35%;
  --line-right: 35%;
}

.works-title {
  --line-left: 40%;
  --line-right: 40%;
}

.qa-title {
  --line-left: 35%;
  --line-right: 35%;
}

.company-title {
  --line-left: 40%;
  --line-right: 40%;
}

/* 特定セクションのタイトルスタイル（黒色）======================= -*/
.flow-title,
.works-title,
.qa-title {
  color: #111111;
}

.flow-title h2,
.flow-title p,
.works-title h2,
.works-title p,
.qa-title h2,
.qa-title p {
  color: #111111;
}

.flow-title::before,
.flow-title::after,
.works-title::before,
.works-title::after,
.qa-title::before,
.qa-title::after {
  background-color: #111111;
}

/* その他のスタイル ======================= -*/
/* 初期状態でアニメーションを隠す */
.hidden {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.3s ease-out, transform 0.3s ease-out;
}

/* ==========================================================================
    ヘッダー
=========================================================================== */
header {
  width: 100%;
  background-color: #ffffff;
}

/* ヘッダーコンテナ */
.header-container {
  width: 100%;
  padding: 20px;
}

/* ==========================================================================
ハンバーガーメニュー
========================================================================== */
.burger {
  --opacity: 1;
  --rotate: 0;
  --translate: .5rem;
  display: grid;
  place-items: center;
  align-items: center;
  width: 44px;
  aspect-ratio: 1;
  border: none;
  background-color: transparent;
  cursor: pointer;
  position: absolute;
  border-radius: 4px;
  top: 20px;
  right: 20px;
  transition: background-color 0.3s ease;
}
.burger.is-active {
  --opacity: 0;
  --rotate: 135deg;
  --translate: 0;
}
.burger span {
  display: block;
  width: 70%;
  height: 2px;
  background-color: #000;
  grid-area: 1/1/-1/-1;
  transition: opacity 0.4s ease, rotate 0.4s ease, translate 0.4s ease;
}
.burger span:nth-child(1) {
  opacity: var(--opacity);
}
.burger span:nth-child(2) {
  translate: 0 calc(var(--translate) * -1);
  rotate: var(--rotate);
}
.burger span:nth-child(3) {
  translate: 0 var(--translate);
  rotate: calc(var(--rotate) * -1);
}

/* ハンバーガーメニューオーバーレイ */
.hum_gnav {
  color: #f1f1f1; /* 全体の文字色を設定 */
  width: 100vw;
  height: 70vh;
  position: fixed;
  background-color: #0096DB;
  opacity: 0; /* 初期状態を透明に設定 */
  visibility: hidden; /* 初期状態を非表示に設定 */
  top: 0;
  left: 0;
  z-index: 20;
  display: flex; /* 常にflexに設定 */
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5rem; /* セクション間のスペース */
  padding: 50px;
  text-align: center; /* テキストを中央揃え */
  transition: opacity 0.5s ease, visibility 0.5s ease; /* トランジションを追加 */
}

/* ハンバーガーメニューがアクティブな時に表示 */
.hum_gnav.is-active {
  opacity: 1; /* 表示状態の透明度 */
  visibility: visible; /* 表示状態に設定 */
}

.hum_gnav_list {
  color: #ffffff;
  text-align: center;
}

.hum_gnav_list.logo {
  display: flex;
  justify-content: center; /* 水平方向の中央揃え */
  align-items: center; /* 垂直方向の中央揃え */
}

/* ハンバーガーメニューがアクティブな時に表示 */
.hum_gnav.is-active {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 1rem; /* セクション間のスペースを調整 */
}

/* 上段: ロゴ */
.hum_gnav_top .gnav_logo {
  width: 130px;
  filter: invert(100%);
  margin: auto;
}

.hum_gnav_middle .hum_gnav_list li {
  margin: 1rem 0;
}

.hum_gnav_middle .hum_gnav_list a {
  color: #ffffff;
  font-size: clamp(0.75rem, 0.659rem + 0.45vw, 1rem);
  transition: color 0.3s ease;
}

.hum_gnav_middle .hum_gnav_list a:hover {
  color: #FFD700;
}

/* 中段と下段の間にスペースを追加 */
.hum_gnav_middle {
  margin-bottom: 1rem;
}

/* 下段: お問い合わせ */
.hum_gnav_section {
  margin-top: 10px;
}

/* 下段全体のコンテナを中央に揃える */
.hum_gnav_bottom {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  text-align: center;
  margin-top: 1rem;
}

/* お問い合わせボタンを中央揃えにする */
.hum_gnav_bottom .contact_btn {
  display: block; /* ブロック要素にする */
  margin: 1rem auto 0 auto; /* 上マージンを設定し、左右のマージンを自動（中央揃え） */
  padding: 0.8rem 1.5rem;
  font-size: 1.2rem;
  cursor: pointer;
  border: none;
  border-radius: 4px;
  background-color: #F9C54E;
  color: #ffffff;
  transition: background-color 0.3s ease, transform 0.3s ease;
  width: 200px;
}

.hum_gnav_bottom .contact_text,
.hum_gnav_bottom .contact_phone,
.hum_gnav_bottom .contact_email {
  margin: 0.5rem 0;
  font-size: clamp(0.75rem, 0.659rem + 0.45vw, 1rem);
  text-align: center;
}

.hum_gnav_bottom .contact_btn {
  margin-top: 1rem;
  padding: 0.8rem 1.5rem;
  font-size: clamp(0.75rem, 0.659rem + 0.45vw, 1rem);
  cursor: pointer;
  border: none;
  border-radius: 4px;
  background-color: #F9C54E;
  color: #ffffff;
  transition: background-color 0.3s ease, transform 0.3s ease;
}

.hum_gnav_bottom .contact_btn:hover {
  background-color: #FFDC8C;
  transform: scale(1.05);
}

/* 既存の共通フォントサイズ設定を調整 */
.hum_gnav_bottom .contact_text,
.hum_gnav_bottom .contact_email {
  margin: 0.5rem 0;
  font-size: 12px; /* フォントサイズを直接指定 */
  text-align: center;
  font-family: "YuGothic", "Futura", "Meiryo", "sans-serif";
}

/* 電話番号のフォントサイズとフォントを明示的に指定 */
.hum_gnav_bottom .contact_phone {
  margin: 0.5rem 0;
  font-size: 20px; /* フォントサイズを直接指定 */
  text-align: center;
  font-family: "Futura", "Trebuchet MS", "Arial", sans-serif;
}

/* ========================================
    ヘッダー 上部
======================================== */
.header__top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 5px -10px 30px 10px;
  background-color: #ffffff;
}

/* ヘッダー上部 左側 ====================== */
.top__left {
  display: flex;
  align-items: center;
}

.logo {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.logo img {
  height: 35px;
  width: auto;
}

.logo p {
  margin-top: 5px;
  font-size: clamp(0.65rem, 0.333rem + 0.56vw, 0.75rem);
  text-align: left;
  letter-spacing: 0.3px;
}

.text p {
  padding-left: 20px;
  font-size: 12px;
  font-size: clamp(0.5rem, 0.333rem + 0.56vw, 0.75rem);
  line-height: 1.6;
}

/* ヘッダー上部 右側 ====================== */
.top__right {
  display: flex;
  align-items: center;
  list-style: none;
}

.top__right > li {
  display: flex;
  align-items: center;
  margin-left: 40px;
}

.top__right > li:first-child {
  margin-left: 0;
}

/* 電話アイコンのスタイル */
.top__right i.fa-phone-volume {
  font-size: clamp(2.188rem, 1.847rem + 1.7vw, 3.125rem);
  color: #333;
}

.top__right > li.tel {
  margin-left: 20px;
}

/* 電話番号と営業時間 ===================== */
.tel {
  display: flex;
  flex-direction: column;
  font-size: 12px;
}

.tel h1 {
  font-size: clamp(1.75rem, 1.568rem + 0.91vw, 2.25rem);
}

.tel p {
  margin: 5px 0 0 0; /* 上設定 */
  font-size: clamp(0.625rem, 0.58rem + 0.23vw, 0.75rem);
}

/* ボタングループ ======================== */
.btn__group {
  display: flex;
  align-items: center;
}

.btn__group button {
  margin-left: 10px;
  padding: 5px 10px;
  font-size: 16px;
  cursor: pointer;
  border: none;
  border-radius: 4px;
  height: 70px;
  width: 150px;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  transition: transform 0.3s ease, background-color 0.3s ease;
  position: relative;
  overflow: hidden;
  line-height: 1.6;
  box-shadow: -4px -4px 8px #fff, 4px 4px 8px rgba(0, 0, 0, 0.24);
}

.btn__group button:first-child {
  margin-left: 0;
}

.contact {
  background-color: #F9C54E;
  color: #fff;
}

.btn__group button:hover {
  transform: scale(1.05);
}

.contact:hover {
  background-color: #FFDC8C;
}

/* ボタンのアニメーション */
.btn__group button::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 300%;
  height: 300%;
  background: #f1f1f1;
  opacity: 0;
  transform: translate(-50%, -50%) scale(0);
  transition: transform 0.8s, opacity 0.8s;
}

.btn__group button:active::after {
  transform: translate(-50%, -50%) scale(1);
  opacity: 1;
}

/* ========================================
    ヘッダー 下部
======================================== */
.header__bottom {
  width: 100vw;
  padding: 20px 0;
  background-color: #0096DB;
  position: sticky;
  top: 0;
}

.gnav__list {
  display: flex;
  justify-content: center;
  align-items: center;
  list-style: none;
  transition: all 0.5s ease-in-out;
}

.gnav__list li {
  padding: 0 0.4rem;
  position: relative;
}
.gnav__list li:last-child a {
  border-right: 1px solid #ffffff;
}
.gnav__list li + li a {
  border-left: none;
}

.gnav__list > li {
  border-left: 1px solid #ffffff;
}

.gnav__list a {
  display: flex;
  flex-direction: column;
  align-items: center;
  /* padding: 0 40px; */
  padding: 0 1.3rem;
  color: #ffffff;
  text-decoration: none;
  transition: color 0.3s;
}

.gnav__list a:hover {
  color: #FFD700;
}

.gnav__list a span {
  margin-top: 4px;
}

.nav-top {
  font-family: "YuGothic", "Meiryo", "sans-serif";
  font-size: clamp(0.5rem, 0.25rem + 0.83vw, 0.875rem);
  line-height: 1;
  letter-spacing: 0.1rem;
}

.nav-bottom {
  font-family: "Futura", "sans-serif";
  font-size: clamp(0.5rem, 0.333rem + 0.56vw, 0.75rem);
  line-height: 1;
  letter-spacing: 0.1rem;
}

/* ========================================
    ファーストビュー
========================================= */
/* .hero {
  position: relative;
  width: 100%;
  height: 100vh; 
  background-image: url("/assets/item/img/main_visual.JPG"); 
  background-size: cover; 
  background-position: center;
  background-repeat: no-repeat;
  display: flex;
  justify-content: center; 
  align-items: center; 
  color: #ffffff;
  text-align: center; 
  margin-top: 0; 
} */

.hero::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.6); /* 半透明の黒色フィルター */
  z-index: 1; /* オーバーレイをテキストの背後に */
}

.hero-content {
  position: relative;
  z-index: 2; /* オーバーレイの上に表示 */
  padding: 0 20px; /* 画面幅が狭い場合の余白 */
}

.hero .hero-content::before {
  content: "";
  z-index: 2; /* オーバーレイの上に表示 */
  position: absolute;
  top: -75px; /* 必要に応じて調整 */
  left: 50%;
  transform: translateX(-50%);
  width: 2000px;
  height: 75px;
}

.hero-content h1 {
  /* font-size: 28px; */
  font-size: clamp(1.25rem, 1.068rem + 0.91vw, 1.75rem);
  margin-bottom: 15px;
  font-family: "YuGothic", sans-serif;
}

.hero-content p {
  /* font-size: 16px; */
  font-size: clamp(0.625rem, 0.489rem + 0.68vw, 1rem);
  font-family: "YuGothic", sans-serif;
  letter-spacing: 1.8px;
  line-height: 24px;
}

/* ==========================================================================
    事業内容(service)セクション
========================================================================== */
.service {
  position: relative;
  background-color: #0d407f;
  padding: 100px 0 50px;
  color: #fff;
  overflow: hidden;
}

.service-background {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  height: 150px;
  z-index: -1;
}

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

.service-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 15px;
  justify-items: center;
  padding-top: 50px;
}

.service-item {
  max-width: 280px;
  text-align: center;
}

.service-box {
  background-color: #9ADAF0;
  height: clamp(10rem, 9.167rem + 2.78vw, 11.25rem);
  width: 100%;
  border-radius: 40px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 10px;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.service-icon {
  font-size: 50px;
  color: #0158A4;
  margin-bottom: 20px;
}

.service-box:hover {
  transform: translateY(-10px);
  box-shadow: 0 8px 12px rgba(0, 0, 0, 0.2);
}

.service-box h3 {
  font-size: 20px;
  margin: 0;
  color: #0158A4;
}

.service-item p {
  margin-top: 10px;
  margin-bottom: 10px;
  font-size: clamp(0.875rem, 0.792rem + 0.28vw, 1rem);
  line-height: 1.6;
  color: #fff;
  padding: 15px;
  border-radius: 10px;
}

/* セクションタイトルの調整 */
.section-title.service-title.hidden {
  text-align: center;
  margin-bottom: 30px;
}

.section-title.service-title.hidden h2 {
  font-size: 28px;
}

.section-title.service-title.hidden .service-subtitle {
  font-size: 18px;
  margin-top: 10px;
}

/* ==========================================================================
    依頼の流れ(flow)セクション
========================================================================= */
.flow {
  padding: 60px 20px;
  background-color: #ffffff;
  max-width: 1200px;
  margin: 0 auto;
  box-sizing: border-box;
}

.flow-content {
  display: flex;
  align-items: stretch;
  padding-top: 50px;
  gap: 100px;
  box-sizing: border-box;
  flex-wrap: wrap;
}

.flow_design10 {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  padding: 20px 0;
  box-sizing: border-box;
}

.flow10 {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 60px;
}

.flow10 > li {
  position: relative;
  border: 2px solid #4D9BC1;
  padding: 20px 20px 30px 20px;
  border-radius: 20px;
  background-color: #f9f9f9;
}

.flow10 > li:not(:last-child)::after {
  content: "";
  position: absolute;
  border: 20px solid transparent;
  width: 0;
  height: 0;
  top: 107%; /*矢印位置調整*/
  left: 50%;
  transform: translateX(-50%);
  border-top-color: #4D9BC1;
}

.flow10 > li dl {
  margin: 0;
}

.flow10 > li dl dt {
  font-size: 1.5em;
  font-weight: bold;
  border-bottom: 2pt dashed #ccc;
  padding-bottom: 0.5em;
  margin-bottom: 0.5em;
  display: flex;
  align-items: center;
}

.flow10 > li .icon10 {
  display: inline-block;
  width: 50px;
  height: 50px;
  line-height: 50px;
  border: 2px solid #4D9BC1;
  border-radius: 50%;
  color: #4D9BC1;
  font-weight: bold;
  margin-right: 10px;
  text-align: center;
  background-color: #ffffff;
  font-size: 1em; /* フォントサイズを調整 */
}

.flow10 > li dl dd {
  margin: 0;
  font-size: 1.2em;
  color: #333333;
  line-height: 1.5;
  font-size: clamp(0.875rem, 0.792rem + 0.28vw, 1rem);
}

/* ==========================================================================
    施工事例（works）セクション
========================================================================== */
.works {
  position: relative;
  padding-top: 60px; /* 上部の余白 */
  padding-bottom: 100px; /* 下部の余白 */
  background-color: #F9E3B4; /* 背景色 */
  width: 100%;
  margin: 20px auto;
  overflow: hidden; /* 背景の丸みがはみ出さないようにする */
}

.works-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-top: 100px;
}

/* 中段: 画像 ============================= */
.works-images {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 40px; /* コンテンツ間のスペース */
}

.works-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: calc(33.333% - 40px); /* 3列レイアウト */
  box-sizing: border-box;
}

.works-box img {
  width: 100%;
  height: 200px; /* 統一された高さ */
  object-fit: cover; /* 画像の切り抜き方法を設定 */
  border-radius: 8px;
}

.works-title {
  margin-top: 10px;
  font-size: 18px;
  font-weight: bold;
  text-align: center;
}

.works-detail {
  margin-top: 5px;
  font-size: 14px;
  text-align: center;
  color: #555;
}

/* 下段: 詳しく見るボタン ===================== */
/* ==========================================================================
    FAQ（QA）セクション
========================================================================== */
/* セクション全体のスタイル */
.qa {
  padding: 60px 30px;
  background-color: #ffffff;
  max-width: 1200px; /* コンテンツの最大幅 */
  margin: 0 auto; /* 中央揃え */
  box-sizing: border-box; /* パディングやボーダーの計算を含む */
}

/* Q&A項目全体のコンテナ */
.qa-content {
  display: flex;
  flex-direction: column; /* 縦方向に並べる */
  gap: 20px; /* 項目間のスペースを調整 */
  align-items: center; /* 中央揃え */
}

/* 追加: .qa-6 クラスのスタイル */
.qa-6 {
  width: 100%; /* コンテナに対して100%の幅 */
  max-width: 600px; /* 参考デザインの最大幅に合わせる */
  border-bottom: 2px solid #d6dde3; /* 下線を追加 */
  border-radius: 4px; /* 角を丸める */
  overflow: hidden; /* 内部の要素がはみ出さないように */
  background-color: #f9f9f9; /* 背景色を設定 */
  position: relative; /* 擬似要素の位置調整 */
}

/* summary スタイル */
.qa-6 summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1em 2em 1em 3em;
  cursor: pointer;
  font-size: 16px;
  font-weight: 600;
  color: #333333;
  background-color: #f9f9f9; /* 背景色を設定 */
  position: relative;
  list-style: none; /* デフォルトのマーカーを削除 */
}

/* summary の前に "Q" を表示 */
.qa-6 summary::before {
  content: "Q";
  position: absolute;
  left: 1em;
  font-weight: 600;
  font-size: 1.3em;
  color: #75bbff;
}

/* summary の後に矢印アイコンを追加 */
.qa-6 summary::after {
  content: "";
  width: 7px;
  height: 7px;
  border-bottom: 3px solid rgba(51, 51, 51, 0.7019607843);
  border-right: 3px solid rgba(51, 51, 51, 0.7019607843);
  transform: rotate(45deg);
  transition: transform 0.5s;
  margin-left: 10px;
}

/* 開閉時の矢印アイコンの回転 */
.qa-6[open] summary::after {
  transform: rotate(225deg);
}

/* 回答部分のスタイル */
.qa-6 p {
  padding: 0.5em 3em 1.5em;
  margin: 0;
  font-size: 14px;
  color: #333333;
  position: relative;
  transform: translateY(-10px);
  opacity: 0;
  transition: transform 0.5s, opacity 0.5s;
  background-color: #fafafa; /* 背景色を設定 */
  border-top: 1px solid #d6dde3; /* 上部にボーダーを追加 */
  padding: 0.8em 1.5em 0.8em 3em;
}

/* 回答部分の "A" ラベルを表示 */
.qa-6 p::before {
  content: "A";
  position: absolute;
  top: 0.3em;
  left: 1em;
  font-weight: 600;
  color: #ff8d8d;
  font-size: 1.3em; /* 追加または修正 */
  padding: 0.1em 1em 0 0;
}

/* 開閉時の回答表示調整 */
.qa-6[open] p {
  transform: translateY(0);
  opacity: 1;
}

/* ==========================================================================
    会社概要（company）セクション
=========================================================================== */
.company {
  padding: 100px 20px;
  background-color: #01316C; /* 背景色 */
  margin: 0 auto; /* 中央揃え */
  box-sizing: border-box;
  color: #ffffff; /* 文字色 */
  font-family: "Yu Gothic", sans-serif; /* フォントファミリー */
  text-align: center; /* テキスト中央揃え */
}

/* Companyセクションのホバー効果を無効化 */
.company:hover {
  background-color: #01316C; /* デフォルトの背景色を再指定 */
}

.company-info p {
  font-family: "Yu Gothic", sans-serif;
}

.company-content {
  display: flex;
  flex-direction: column;
  max-width: 1200px;
  gap: 60px; /* 上下のスペース */
  align-items: center; /* 中央揃え */
  margin: 60px auto; /* 分かりやすく中央揃え */
  box-sizing: border-box; /* パディングやボーダーを含む */
}

/* 中段: 左側画像と右側情報 */
.company-middle {
  display: flex;
  flex-direction: row;
  gap: 40px; /* 画像と情報の間隔 */
  align-items: center;
  justify-content: center;
  flex-wrap: wrap; /* 小さい画面での折り返しを許可 */
  box-sizing: border-box;
}

/* 左側画像のコンテナ */
.company-image-container {
  flex: 1;
  min-width: 300px;
  display: flex;
  justify-content: center; /* 画像を中央揃え */
  box-sizing: border-box;
}

/* 画像の修正 */
.company-image {
  width: 100%; /* 幅を100%に設定してコンテナにフィット */
  height: auto; /* 高さを自動調整 */
  object-fit: cover; /* 画像のフィット方法 */
  border-radius: 8px; /* 角を丸める（任意） */
  max-width: 600px; /* 最大幅を設定 */
  box-sizing: border-box; /* パディングやボーダーを含む */
}

/* 右側情報のスタイル */
.company-info {
  display: flex;
  flex-direction: column;
  align-items: center; /* 子要素も中央揃え */
  width: 100%;
  max-width: 500px;
  padding-bottom: 20px;
  box-sizing: border-box;
}

.company-info p {
  width: 100%;
  padding: 15px 0;
  font-size: 16px; /* 基本の文字サイズ */
  border-bottom: 1px solid #ffffff; /* 下線 */
  margin: 8px 0;
  text-align: left; /* 各段落も左揃え */
}

.company-info .company-name {
  font-size: 36px; /* "家庭電化株式会社"のみ36px */
}

.company-info .company-address,
.company-info .company-contact,
.company-info .company-hours {
  font-size: 16px;
}

/* 下段のマップ表示部分のスタイル */
.company-lower {
  display: flex;
  justify-content: center;
  width: 100%;
  box-sizing: border-box;
}

/* Google Map iframe用のコンテナ */
.company-map-container {
  width: 700px;
  height: 500px;
  max-width: 100%;
  border-radius: 8px;
  overflow: hidden; /* 角を丸めるために必要 */
  border: 2px solid #ffffff; /* 白いボーダーを追加 */
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); /* 影を追加 */
  box-sizing: border-box;
  position: relative; /* 案内テキストの位置調整用 */
}

/* 地図操作案内のスタイル（オプション） */
.map-instruction {
  position: absolute;
  top: 10px;
  left: 10px;
  right: 10px;
  z-index: 10;
  background: rgba(1, 49, 108, 0.9);
  color: #ffffff;
  padding: 8px 12px;
  border-radius: 4px;
  font-size: 12px;
  text-align: center;
  opacity: 0;
  transition: opacity 0.3s ease;
  pointer-events: none;
}

.company-map-container:hover .map-instruction {
  opacity: 1;
}

/* Google Map iframe用のスタイル */
.company-map {
  width: 100%;
  height: 100%;
  border: none; /* iframeのデフォルトボーダーを削除 */
  display: block;
  cursor: grab; /* マウスオーバー時にグラブカーソルを表示 */
}

.company-map:active {
  cursor: grabbing; /* ドラッグ中はグラビングカーソルを表示 */
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
  .company-map-container {
    width: 100%;
    height: 400px !important;
    margin: 0 10px;
  }
  
  .company-middle {
    flex-direction: column;
    gap: 30px;
  }
  
  .company-image-container {
    min-width: auto;
	height: 400px !important;
    width: 100%;
  }
}


@media (max-width: 480px) {
  .company-map-container {
    height: 300px;
    margin: 0 5px;
  }
  
  .company {
    padding: 60px 10px;
  }
}
/* ==========================================================================
    Call（お問い合わせ）セクション
========================================================================== */
.call {
  padding: 100px 20px;
  background-color: #f5f5f5; /* お好みで背景色を変更 */
  box-sizing: border-box;
  color: #333333; /* 文字色 */
  font-family: "Yu Gothic", sans-serif; /* デフォルトのフォント */
  text-align: center; /* テキスト中央揃え */
  position: relative;
  letter-spacing: 3px;
}

.call-title {
  position: relative;
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* タイトルテキスト */
.call-title h2 {
  font-family: "Yu Gothic", sans-serif; /* 既定のフォント */
  font-size: 36px;
  font-weight: bold;
  position: relative;
  z-index: 1;
}

/* セクションコンテンツのスタイル */
.call-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px; /* コンテンツ間の隙間 */
}

/* 中段上: 電話番号 */
.call-phone {
  font-family: "Futura", "Yu Gothic", sans-serif; /* FUTURAフォント */
  font-size: 36px;
}

/* 中段下: 受付時間 */
.call-hours {
  font-size: 16px;
  color: #555555;
}

/* 問い合わせボタンのスタイル */
.call-button {
  width: 382px;
  height: 82px;
  background-color: #F9C54E; /* 指定の色 */
  border: none;
  border-radius: 8px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  font-family: "Yu Gothic", sans-serif;
  font-size: 16px;
  color: #ffffff;
  position: relative;
  overflow: hidden;
  letter-spacing: 1.5px;
}

/* アイコンのスタイル */
.call-button i {
  font-size: 24px;
  margin-bottom: 10px;
}

/* ボタンのテキスト */
.call-button span {
  display: block;
}

/* ボタンのアニメーション */
.call-button.animate {
  transform: translateY(-5px);
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
}

.call-button:hover {
  background-color: #f0b347; /* ホバー時の色変更（オプション） */
}

/* ==========================================================================
    Footer（フッター）セクション
========================================================================== */
.footer {
  background-color: #0096DB; /* 指定の背景色 */
  color: #ffffff; /* 文字色 */
  font-family: "Yu Gothic", sans-serif; /* 共通のフォント */
  padding: 60px 20px;
  box-sizing: border-box;
}

.footer-container {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: flex-start; /* 上揃え */
  max-width: 1200px;
  margin: 0 auto;
  flex-wrap: wrap; /* レスポンシブ対応 */
  gap: 20px; /* セクション間の隙間 */
}

/* 左側の文言 */
.footer-left {
  flex: 1;
  min-width: 250px;
  display: flex;
  flex-direction: column;
  gap: 10px; /* 各文言間の隙間 */
}

.footer-left .footer-company {
  font-size: 24px; /* 指定のフォントサイズ */
  font-weight: bold;
}

.footer-left .footer-address,
.footer-left .footer-phone,
.footer-left .footer-email {
  font-size: 14px; /* 指定のフォントサイズ */
  letter-spacing: 1px; /* 必要に応じて調整 */
}

/* 真ん中1、真ん中2、右側をまとめたコンテナ */
.footer-middle-right {
  display: flex;
  flex-direction: row;
  gap: 40px; /* 左側との間隔を広げる */
  flex: 2; /* より多くのスペースを占有 */
  justify-content: center; /* 中央に配置 */
  align-items: flex-start; /* 上揃え */
  min-width: 300px;
}

/* 真ん中1と真んち2のリンク */
.footer-center1,
.footer-center2 {
  display: flex;
  flex-direction: column;
  gap: 10px; /* リンク間の隙間 */
  align-items: flex-start; /* 左揃え */
}

/* リンクのスタイル */
.footer-center1 .footer-link,
.footer-center2 .footer-link {
  font-size: 16px; /* 指定のフォントサイズ */
  color: #ffffff; /* 文字色 */
  text-decoration: none; /* 下線を除去 */
  display: flex;
  align-items: center;
  transition: color 0.3s ease;
}

.footer-center1 .footer-link i,
.footer-center2 .footer-link i {
  margin-right: 8px; /* アイコンとテキストの間隔 */
}

.footer-center1 .footer-link:hover,
.footer-center2 .footer-link:hover {
  color: #FFD700; /* ホバー時の色変更（例：ゴールド） */
}

/* 右側のボタン */
.footer-right {
  display: flex;
  align-items: center;
}

.back-to-top {
  display: flex;
  align-items: center;
  gap: 8px; /* テキストとボタンの間隔 */
}

.back-to-top-button {
  width: 40px;
  height: 40px;
  background-color: #ffffff; /* ボタンの背景色 */
  color: #0096DB; /* アイコンの色 */
  border: none;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.3s ease, background-color 0.3s ease, color 0.3s ease;
}

.back-to-top-button:hover {
  background-color: #f0f0f0; /* ホバー時の背景色 */
  transform: rotate(90deg); /* ホバー時に90度回転 */
}

.back-to-top-text {
  font-size: 12px; /* 指定のフォントサイズ */
  color: #ffffff; /* 文字色 */
  font-family: "Yu Gothic", sans-serif; /* フォント */
}

/* ==========================================================================
ヘッダー
========================================================================== */
@media screen and (max-width: 768px) {
  .header__top .text,
  .top__right,
  .top__right i.fa-phone-volume,
  .tel,
  .tel p,
  .tel h1,
  .btn__group button,
  #nav-menu {
    display: none !important;
  }
  body {
    overflow-x: hidden;
  }
  .burger {
    display: grid;
    z-index: 1000;
  }
  .burger:hover {
    background-color: #ffffff;
  }
  .burger.is-active {
    --opacity: 0;
    --rotate: 135deg;
    --translate: 0;
  }
  header,
  .header__bottom {
    position: sticky;
    top: 0;
    z-index: 1000;
  }
  .hero-wave {
    object-fit: fill;
  }
}
@media screen and (max-width: 1000px) {
  .text {
    display: none !important;
  }
}
@media screen and (min-width: 768px) {
  #hum_gnav {
    display: none !important;
  }
  .burger {
    display: none;
  }
  header,
  .header__bottom {
    position: sticky;
    top: 0;
    z-index: 1000;
  }
}
/* ==========================================================================
各セクションタイトルの調整
========================================================================== */
/* モバイルサイズ（480px以下） */
@media (max-width: 480px) {
  .section-title {
    margin-top: 10px; /* デフォルトの80pxから40pxに減少 */
  }
}
/* ==========================================================================
事業内容 -service-
========================================================================== */
/* タブレットサイズ（768px以下） */
@media (max-width: 768px) {
  .service {
    padding: 80px 0 40px;
  }
  .service-grid {
    gap: 15px;
    padding-top: 40px;
  }
  .service-box {
    height: 160px;
    padding: 8px;
  }
  .service-icon {
    font-size: 40px;
    margin-bottom: 15px;
  }
  .service-box h3 {
    font-size: 18px;
  }
  .service-item p {
    font-size: 13px;
    padding: 12px;
  }
}
/* モバイルサイズ（480px以下） */
@media (max-width: 480px) {
  .service {
    padding: 60px 0 30px;
  }
  .service-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    padding-top: 30px;
  }
  .service-item {
    max-width: 100%;
  }
  .service-box {
    height: 140px; /* 高さを縮小 */
    padding: 6px;
  }
  .service-icon {
    font-size: 25px;
    margin-bottom: 10px;
  }
  .service-box h3 {
    font-size: 14px;
  }
  .service-item p {
    font-size: 12px;
    padding: 10px;
  }
}
/* ==========================================================================
依頼の流れ -flow-
========================================================================== */
@media (max-width: 768px) {
  .section-title {
    margin: 10px 0;
    padding: 10px 0;
  }
  .flow10 {
    gap: 40px;
  }
  .flow10 > li {
    padding: 15px 15px 20px 15px;
  }
  /* 丸と数字のサイズ */
  .flow10 > li .icon10 {
    width: 42px;
    height: 42px;
    line-height: 42px;
    font-size: 0.9em;
  }
  .flow10 > li dl dt {
    font-size: 1.1em;
  }
}
/* ==========================================================================
施工事例 -works-
========================================================================== */
@media (max-width: 768px) {
  .works-box {
    width: calc(50% - 40px); /* 2列レイアウト */
  }
}
@media (max-width: 480px) {
  .works-title {
    margin: 10px 0 30px 0;
    padding: 10px 0;
  }
  .works-box {
    width: 100%; /* 1列レイアウト */
  }
  .works-images {
    gap: 20px;
    padding: 0 10px;
  }
  .works-box img {
    width: 90%;
    height: auto;
  }
  .works-content {
    padding-top: 50px;
  }
  .works-button {
    margin-top: 30px; /* ボタンの上部余白を調整 */
  }
}
/* ==========================================================================
よくある問い合わせ -Q&A-
========================================================================== */
/* スマートフォンサイズ（480px以下）向け調整 */
@media (max-width: 480px) {
  .qa-title {
    margin: 10px 0 70px 0;
    padding: 10px 0;
  }
  .qa {
    padding: 40px 15px; /* パディングを縮小 */
  }
  .qa-content {
    gap: 15px; /* 項目間のスペースを縮小 */
  }
  .qa-6 {
    max-width: 100%; /* 最大幅を解除し、親コンテナに合わせる */
    border-bottom: 1px solid #d6dde3; /* 下線を薄く */
  }
  .qa-6 summary {
    padding: 0.8em 1.5em 0.8em 2em; /* パディングを縮小 */
    font-size: 14px; /* フォントサイズを縮小 */
  }
  .qa-6 summary::before {
    left: 0.8em; /* 左余白を縮小 */
    font-size: 1.1em; /* フォントサイズを縮小 */
  }
  .qa-6 summary::after {
    width: 5px;
    height: 5px;
    border-bottom: 2px solid rgba(51, 51, 51, 0.7019607843);
    border-right: 2px solid rgba(51, 51, 51, 0.7019607843);
    margin-left: 8px;
  }
  .qa-6 p {
    padding: 0.7em 3em 1em; /* 上部のパディングを0.2emから0.5emに増加 */
    font-size: 13px;
  }
  .qa-6 p::before {
    left: 0.8em;
    font-size: 1.3em; /* 追加または修正 */
  }
}
/* ==========================================================================
会社概要 -company-
========================================================================== */
/* タブレットサイズ（1000px以下） */
@media (max-width: 1000px) {
  /* 会社概要セクションの調整 */
  .company {
    padding: 50px 15px; /* パディングを調整 */
  }
  .company-content {
    margin: 30px auto;
    gap: 30px; /* スペースを調整 */
  }
  .company-info p {
    font-family: "Yu Gothic", sans-serif;
  }
  .company-middle {
    gap: 20px; /* ギャップを減少 */
  }
  .company-image-container,
  .company-info {
    flex: 1 1 250px; /* フレックスの基準を調整 */
  }
  .company-image {
    max-width: 400px; /* 画像の最大幅を調整 */
  }
  .company-info {
    max-width: 400px; /* 会社情報コンテナの最大幅を調整 */
    padding: 5px 10px; /* パディングを追加 */
  }
  .company-info .company-name {
    font-size: 24px; /* フォントサイズを調整 */
  }
  .company-info p {
    font-size: 14px; /* フォントサイズを調整 */
    text-align: center; /* テキスト中央揃え（必要に応じて） */
  }
  .company-map {
    max-width: 700px; /* マップ画像の最大幅を調整 */
  }
}
/* タブレットサイズ（768px以下） */
@media (max-width: 768px) {
  /* 会社概要セクションの調整 */
  .company {
    padding: 80px 15px;
  }
  .company-middle {
    flex-direction: column;
    align-items: center;
    gap: 20px; /* コンテンツ間のギャップを調整 */
  }
  .company-image-container {
    flex: 1;
    min-width: 200px;
  }
  .company-image {
    max-width: 400px;
  }
  .company-info {
    align-items: center; /* アイテムを中央揃え */
    text-align: center; /* テキストを中央揃え */
  }
  .company-info p {
    text-align: center; /* テキスト中央揃え */
    font-size: 14px; /* フォントサイズを調整 */
    padding: 8px 0; /* 上下のパディングを調整 */
    font-family: "Yu Gothic", sans-serif;
  }
  .company-info .company-name {
    font-size: 24px; /* フォントサイズを調整 */
  }
  .company-info .company-address,
  .company-info .company-contact,
  .company-info .company-hours {
    font-size: 14px;
  }
  .company-lower {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    text-align: center; /* テキストを中央揃え */
    gap: 15px; /* マップ画像と他の要素の間隔を調整 */
  }
  .company-map {
    max-width: 100%; /* 幅を100%に設定 */
    height: auto; /* 高さを自動調整 */
  }
}
/* モバイルサイズ（480px以下） */
@media (max-width: 480px) {
  /* 会社概要セクションの調整 */
  .company {
    padding: 60px 10px;
  }
  .company-content {
    margin: 40px auto;
    gap: 40px;
  }
  .company-middle {
    flex-direction: column;
    gap: 20px; /* 画像と情報の間隔を縮小 */
    align-items: center;
  }
  .company-image-container {
    flex: none;
    width: 100%;
  }
  .company-image {
    max-width: 100%;
  }
  .company-info {
    max-width: 100%;
    align-items: center;
    text-align: center;
  }
  .company-info p {
    font-family: "Yu Gothic", sans-serif;
    font-size: 14px;
    padding: 10px 0;
  }
  .company-info .company-name {
    font-size: 24px;
  }
  .company-info .company-address,
  .company-info .company-contact,
  .company-info .company-hours {
    font-size: 14px;
  }
  .company-lower {
    flex-direction: column;
    gap: 15px;
  }
/*   .company-map {
    width: 100%;
    height: auto;
    max-width: 100%;
  } */
	
/* ====================
   Google Map レスポンシブ化(強制)
   ==================== */
.company-map-container {
  width: 100% !important;
  max-width: 700px !important;
  margin: 0 auto !important;
}
.company-map-container .map-wrapper {
  position: relative !important;
  width: 100% !important;
  padding-bottom: 71.43% !important;
  height: 0 !important;
  overflow: hidden !important;
}
.company-map-container .map-wrapper iframe {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  border: 0 !important;
}
	
}
/* ==========================================================================
    Call（お問い合わせ）セクションのレスポンシブデザイン向上
=========================================================================== */
/* タブレットサイズ（1000px以下） */
@media (max-width: 1000px) {
  .call {
    padding: 80px 15px; /* パディングを調整 */
  }
  .call-title h2 {
    font-size: 28px; /* フォントサイズを調整 */
  }
  .call-content {
    gap: 15px; /* コンテンツ間の隙間を調整 */
  }
  .call-phone {
    font-size: 28px; /* フォントサイズを調整 */
  }
  .call-hours {
    font-size: 14px; /* フォントサイズを調整 */
  }
  .call-button {
    width: 100%; /* ボタン幅を100%に設定 */
    max-width: 300px; /* 最大幅を設定 */
    height: 60px; /* 高さを調整 */
    font-size: 14px; /* フォントサイズを調整 */
  }
  .call-button i {
    font-size: 20px; /* アイコンサイズを調整 */
    margin-bottom: 5px; /* アイコンとテキストの間隔を調整 */
  }
  .call-button span {
    font-size: 14px; /* テキストサイズを調整 */
  }
}
/* モバイルサイズ（768px以下） */
@media (max-width: 768px) {
  .call {
    padding: 60px 10px; /* パディングをさらに調整 */
  }
  .call-title h2 {
    font-size: 24px; /* フォントサイズを調整 */
  }
  .call-content {
    gap: 10px; /* コンテンツ間の隙間を調整 */
  }
  .call-phone {
    font-size: 24px; /* フォントサイズを調整 */
  }
  .call-hours {
    font-size: 12px; /* フォントサイズを調整 */
  }
  .call-button {
    width: 100%; /* ボタン幅を100%に設定 */
    max-width: 250px; /* 最大幅を設定 */
    height: 50px; /* 高さを調整 */
    font-size: 14px; /* フォントサイズを調整 */
  }
  .call-button i {
    font-size: 18px; /* アイコンサイズを調整 */
    margin-bottom: 5px; /* アイコンとテキストの間隔を調整 */
  }
  .call-button span {
    font-size: 14px; /* テキストサイズを調整 */
  }
}
/* モバイルサイズ（480px以下） */
@media (max-width: 480px) {
  .call {
    padding: 40px 5px; /* パディングを調整 */
  }
  .call-title h2 {
    font-size: 20px; /* フォントサイズを調整 */
    letter-spacing: 2px;
  }
  .call-content {
    gap: 20px; /* コンテンツ間の隙間を調整 */
  }
  .call-phone {
    font-size: 24px; /* フォントサイズを調整 */
  }
  .call-hours {
    font-size: 10px; /* フォントサイズを調整 */
    letter-spacing: 2px;
  }
  .call-button {
    width: 40%; /* ボタン幅を100%に設定 */
    max-width: none; /* 最大幅を解除 */
    height: 70px; /* 高さを調整 */
    font-size: 10px; /* フォントサイズを調整 */
  }
  .call-button i {
    font-size: 16px; /* アイコンサイズを調整 */
    margin-bottom: 3px; /* アイコンとテキストの間隔を調整 */
  }
  .call-button span {
    font-size: 1.2em; /* テキストサイズを調整 */
  }
}
/* ==========================================================================
    footer
========================================================================== */
/* タブレット向け（幅768px以下） */
@media (max-width: 768px) {
  .footer-container {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  .footer-middle-right {
    flex-direction: column;
    justify-content: center;
    gap: 20px;
    width: 100%;
    align-items: center;
  }
  .footer-center1,
  .footer-center2 {
    align-items: center;
  }
  .footer-right {
    margin-top: 20px;
  }
  .back-to-top-text {
    display: none; /* テキストを非表示にしてアイコンのみ表示 */
  }
}
/* モバイル向け（幅480px以下） */
@media (max-width: 480px) {
  .footer {
    padding: 40px 10px;
  }
  .footer-left {
    align-items: center;
    text-align: center;
  }
  .footer-left .footer-company {
    font-size: 20px;
  }
  .footer-left .footer-address,
  .footer-left .footer-phone,
  .footer-left .footer-email {
    font-size: 12px;
  }
  .footer-middle-right {
    flex-direction: row; /* 2列配置に変更 */
    flex-wrap: wrap; /* 必要に応じてラップ */
    gap: 20px;
    justify-content: center;
  }
  .footer-center1,
  .footer-center2 {
    width: 45%; /* 2列に適した幅に設定（余白を考慮） */
    align-items: flex-start; /* 左揃え */
    text-align: left; /* テキストも左揃え */
  }
  .footer-center1 .footer-link,
  .footer-center2 .footer-link {
    font-size: 14px;
  }
  .back-to-top {
    flex-direction: column;
    gap: 5px;
  }
  .back-to-top-button {
    width: 35px;
    height: 35px;
  }
  .back-to-top-text {
    display: none; /* テキストを非表示 */
  }
}
/* ==========================================================================
    パンくずリストのスタイリング
========================================================================== */
.breadcrumb-001 {
  display: flex;
  gap: 0 22px;
  list-style: none;
  padding: 0;
  font-size: 0.9em;
  margin: 1.5em auto 1.5em auto;
  max-width: 50rem;
  width: 90%;
  flex-wrap: nowrap;
  white-space: nowrap;
}

.breadcrumb-001 li {
  display: flex;
  align-items: center;
  position: relative;
}

.breadcrumb-001 li:first-child::before {
  display: inline-block;
  width: 1em;
  height: 1em;
  margin-right: 4px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 20C20 20.5523 19.5523 21 19 21H5C4.44772 21 4 20.5523 4 20V11L1 11L11.3273 1.6115C11.7087 1.26475 12.2913 1.26475 12.6727 1.6115L23 11L20 11V20ZM11 13V19H13V13H11Z' fill='%23333333'%3E%3C/path%3E%3C/svg%3E");
  background-repeat: no-repeat;
  content: "";
}

.breadcrumb-001 li:not(:last-child)::after {
  display: inline-block;
  transform: rotate(45deg);
  width: 0.3em;
  height: 0.3em;
  margin-left: 10px;
  border-top: 1px solid #333333;
  border-right: 1px solid #333333;
  content: "";
}

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

.breadcrumb-001 a:hover {
  color: #007BFF;
}


/* ==========================================================================
    カスタムセレクトのスタイル
========================================================================== */
.custom-select {
  position: relative;
  width: 100%;
  max-width: 10rem; /* 必要に応じて調整 */
}

.select-selected {
  background-color: #ffffff;
  border: 1px solid #cccccc;
  border-radius: 0.25rem;
  padding: 0.625rem; /* 10px */
  font-size: 0.875rem; /* 14px */
  cursor: pointer;
  position: relative;
  user-select: none;
}

.select-selected:after {
  content: "";
  position: absolute;
  top: 50%;
  right: 10px;
  width: 0;
  height: 0;
  border: 6px solid transparent;
  border-color: #555555 transparent transparent transparent;
  transform: translateY(-50%);
}

.select-selected.select-arrow-active:after {
  border-color: transparent transparent #555555 transparent;
  top: 55%;
}

.select-items {
  position: absolute;
  background-color: #ffffff;
  border: 1px solid #cccccc;
  border-radius: 0.25rem;
  z-index: 99;
  top: 100%;
  left: 0;
  right: 0;
  max-height: 10rem; /* 約5件表示 */
  overflow-y: auto;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}

.select-items div {
  padding: 0.625rem; /* 10px */
  cursor: pointer;
  font-size: 0.875rem; /* 14px */
}

.select-items div:hover {
  background-color: #f1f1f1;
}

/* 隠すクラス */
.select-hide {
  display: none;
}

/* ==========================================================================
    ヒーローセクションのスタイリング
========================================================================== */
/* リクエスト1: contact-hero セクションのスタイリング */
.contact-hero {
  position: relative;
  width: 100%;
  height: 249px; /* 指定された高さ */
  background-image: url("/assets/item/img/main_visual.JPG"); /* 背景画像のパスを指定 */
  background-size: cover; /* 背景画像をカバーするように拡大縮小 */
  background-position: center; /* 背景画像の位置を中央に */
  background-repeat: no-repeat; /* 背景画像の繰り返しを防止 */
  display: flex;
  justify-content: center; /* 水平方向の中央揃え */
  align-items: center; /* 垂直方向の中央揃え */
  color: #ffffff;
  text-align: center; /* テキストを中央揃え */
  margin-top: 0; /* ヘッダーとの間隔を調整 */
}

.contact-hero::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5); /* 半透明の黒色フィルター */
  z-index: 1; /* オーバーレイをテキストの背後に */
}

.hero-content {
  position: relative;
  z-index: 2; /* テキストをオーバーレイの上に表示 */
}

.contact-hero .hero-content h1 {
  font-size: clamp(1.5rem, 1.25rem + 0.83vw, 1.875rem);
  margin: 0;
}

.contact-hero .hero-content h2 {
  font-size: clamp(1rem, 0.833rem + 0.56vw, 1.25rem);
  margin: 0;
}

/* ==========================================================================
    お問い合わせフォーム（contact）
========================================================================== */
/* フォームラベルを左寄せに変更 */
.contact-form .form-group label {
  flex: 0 0 9.375rem; /* 150px を維持 */
  margin-right: 1.25rem; /* 20px のマージンを維持 */
  text-align: left; /* 左寄せに変更 */
  font-weight: bold;
  color: #555555;
  font-size: 0.875rem; /* 14px を維持 */
}

/* タブレット（最大幅768px）用 */
@media (max-width: 768px) {
  /* フォームラベルを左寄せに保持 */
  .contact-form .form-group label {
    width: 100%;
    text-align: left;
    margin-bottom: 0.5rem;
    font-size: 0.9rem;
    flex: none;
  }
  /* ヒーローセクションの調整 */
  .contact-hero {
    height: 220px;
    padding: 1.5rem;
  }
  .contact-hero .hero-content h1 {
    font-size: clamp(1.5rem, 1.25rem + 0.83vw, 1.875rem);
  }
  .contact-hero .hero-content h2 {
    font-size: clamp(1rem, 0.833rem + 0.56vw, 1.25rem);
  }
  /* パンくずリストの調整 */
  .breadcrumb-001 {
    gap: 0 16px;
    max-width: 80%;
    padding: 0.75rem 1rem;
    white-space: nowrap;
  }
  .breadcrumb-001 li:first-child::before {
    width: 0.9em;
    height: 0.9em;
  }
  .breadcrumb-001 li:not(:last-child)::after {
    width: 0.25em;
    height: 0.25em;
    margin-left: 5px;
  }
  .breadcrumb-001 a {
    font-size: 0.85em;
  }
  /* 問い合わせフォームセクションの調整 */
  .contact-form-section {
    padding: 2.5rem 1rem;
  }
  .contact-form-container {
    padding: 2rem;
  }
  .contact-form-container h2 {
    font-size: 1.4rem;
    margin-bottom: 2.5rem;
  }
  .thank-you-message {
    font-size: 0.85rem;
    margin-bottom: 2rem;
  }
  .contact-form .form-group {
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 1.75rem;
  }
  .contact-form .form-group label {
    flex: none;
    width: 100%;
    text-align: left;
    margin-bottom: 0.5rem;
    font-size: 0.9rem;
  }
  .contact-form .form-group input[type=text],
  .contact-form .form-group input[type=email],
  .contact-form .form-group input[type=tel],
  .contact-form .form-group select,
  .contact-form .form-group textarea {
    width: 100%;
    font-size: 0.9rem;
  }
  /* 住所フィールドの調整 */
  .address-group {
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 1.75rem;
  }
  .address-group label {
    width: 100%;
    text-align: left;
    margin-bottom: 0.5rem;
    font-size: 0.9rem;
  }
  .address-fields {
    width: 100%;
  }
  .address-line {
    flex-direction: row; /* 横並びに変更 */
    align-items: center; /* 中央揃え */
    margin-bottom: 0.5rem; /* スペース調整 */
  }
  .address-line span {
    margin-right: 0.3125rem; /* 5px のマージンを維持 */
    margin-bottom: 0; /* 下マージンを削除 */
    font-size: 0.9rem;
  }
  .address-line input,
  .address-line select {
    width: 100%;
    font-size: 0.9rem;
  }
  .address-line input#postal_code,
  .address-line select#prefecture {
    max-width: 100%; /* フル幅に設定 */
  }

  /* 送信ボタンの調整 */
  .submit-button {
    width: 100%;
    padding: 0.75rem;
    font-size: 1rem;
  }
}
/* モバイル（最大幅480px）用 */
@media (max-width: 480px) {
  /* フォームラベルを左寄せに保持 */
  .contact-form .form-group label {
    width: 100%;
    text-align: left;
    margin-bottom: 0.5rem;
    font-size: 0.9rem;
    flex: none; /* 固定幅を解除 */
  }
  /* ヒーローセクションの調整 */
  .contact-hero {
    height: 180px;
    padding: 1rem;
  }
  .contact-hero .hero-content h1 {
    font-size: 1.5rem;
  }
  .contact-hero .hero-content h2 {
    font-size: 1.2rem;
  }
  /* パンくずリストの調整 */
  .breadcrumb-001 {
    gap: 0 10px;
    max-width: 90%;
    padding: 0.5rem 0.5rem;
    white-space: nowrap;
  }
  .breadcrumb-001 li:first-child::before {
    width: 0.8em;
    height: 0.8em;
  }
  .breadcrumb-001 li:not(:last-child)::after {
    width: 0.2em;
    height: 0.2em;
    margin-left: 4px;
  }
  .breadcrumb-001 a {
    font-size: 0.8em;
  }
  /* 問い合わせフォームセクションの調整 */
  .contact-form-section {
    padding: 2rem 0.75rem;
  }
  .contact-form-container {
    padding: 1.5rem;
  }
  .contact-form-container h2 {
    font-size: 1.3rem;
    margin-bottom: 2rem;
  }
  .thank-you-message {
    font-size: 0.8rem;
    margin-bottom: 1.5rem;
  }
  /* フォームグループの調整 */
  .contact-form .form-group {
    margin-bottom: 1.5rem;
  }
  /* 住所フィールドの調整 */
  .address-group {
    margin-bottom: 1.5rem;
  }
  .address-line {
    flex-direction: row; /* 横並びに変更 */
    align-items: center; /* 中央揃え */
    margin-bottom: 0.5rem; /* スペース調整 */
  }
  .address-line span {
    margin-right: 0.3125rem; /* 5px のマージンを維持 */
    margin-bottom: 0; /* 下マージンを削除 */
    font-size: 0.9rem;
  }
  .address-line input,
  .address-line select {
    width: 100%;
    font-size: 0.9rem;
  }
  .address-line input#postal_code,
  .address-line select#prefecture {
    max-width: 100%; /* フル幅に設定 */
  }

  .radio-group label {
    font-size: 0.9rem;
  }
  /* 送信ボタンの調整 */
  .submit-button {
    width: 100%;
    padding: 0.75rem;
    font-size: 1rem;
  }
}

/*# sourceMappingURL=style.css.map */
