/* ================================
  RESET
 ================================ */
* { margin: 0; padding: 0; box-sizing: border-box; }
body { color: #0f0f0f; background: #fff;}
a { text-decoration: none; color: inherit; }

/* ================================
  ベース
================================ */
img{
  max-width:100%;
  height:auto;
}
/* ================================
  フォント
================================ */

/*  基本本文用フォント */
body {
  font-family: "Noto Sans JP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN",Meiryo, "メイリオ", sans-serif;
  font-weight: 400;
  line-height: 1.8;
  color: #0f0f0f;
}

/* タイトル・セクション見出し用フォント */
h1, h2, h3, h4, h5, h6 {
  font-family: "Montserrat", "Noto Sans JP", sans-serif;
  font-weight: 700;
  color: #222;
  letter-spacing: 1px;
}

/* ボタン用フォント */
.btn {
  font-family: "Montserrat", "Noto Sans JP", sans-serif;
  font-weight: 600;
  letter-spacing: 0.5px;
}

/* 改行 */
.sp-br {
  display: none;
}

/* スマホ（768px以下）だけ改行表示 */
@media (max-width: 768px) {
  .sp-br {
    display: block;
  }
}

/* 文字寄せ */
.center{
  text-align: center;
}
.left{
  text-align: left;
}
.right{
  text-align: right;
}

/* ================================
  HEADER
================================ */

header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 9999;
  background: #fff;
  box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
.header-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 15px 20px;
  border-bottom: 1px solid #eee;
}
.header-description {
  width: 100%;
  font-size: 11px;
  background: #333;
  color: white;
  font-weight: normal;
  text-align: center;
}
.site-title{
  font-size: 30px;
  font-weight: 900;
  color: #414042;
}
.header-right {
  display: flex;
  align-items: center;
  gap: 30px;
}

/* ハンバーガー */
.hamburger {
  position: relative;
  width: 40px;
  display: flex;
  flex-direction: column;
  align-items: center;
  cursor: pointer;
}

.hamburger span {
  display: block;
  width: 28px;
  height: 3px;
  background: #333;
  margin: 4px 0;
  border-radius: 2px;
}

.hamburger-label {
  font-size: 10px;
  margin-top: 6px;
  color: #333;
  letter-spacing: 1px;
  text-align: center;
  pointer-events: none;
}

/* ================================
  全画面メニュー
================================ */

nav {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: rgba(255, 255, 255, 0.7); /* 半透明 */
  backdrop-filter: blur(8px); /* 背景をぼかす */
  -webkit-backdrop-filter: blur(8px); /* Safari対応 */
  padding: 80px 20px;
  transform: translateX(-100%);
  transition: transform 0.3s ease;
  z-index: 9999;
}

nav.open {
  transform: translateX(0);
}

nav ul {
  list-style: none;
  text-align: center;
  margin-top: 60px;
  padding: 0;
}

nav li {
  margin: 30px 0;
  font-size: 24px;
}

nav a {
  color: #333;
  text-decoration: none;
  font-weight: 600;
  transition: color 0.3s;
}

nav a:hover {
  color: #007BFF;
}

.nav-text{
  text-align: center;
}
/* 閉じるボタン */
.nav-close {
  position: absolute;
  top: 20px;
  right: 20px;
  font-size: 30px;
  font-weight: bold;
  cursor: pointer;
  color: #333;
  z-index: 10001;
  transition: color 0.3s;
}

.nav-close:hover {
  color: #007BFF;
}

/* スマホ用調整 */
@media screen and (max-width: 768px) {
  header {
    padding:0px;
    position: relative;
  }
  .header-right {
    gap: 8px;
  }
  .hamburger {
    width: 36px;
  }
  nav li {
    font-size: 20px;
  }
}


/* ================================
  SECTION 共通
================================ */
section { padding:80px 20px; position: relative; }
.section-inner { max-width: 1100px; margin: auto; }

/* ul ol */
ol{
  margin: 1em 0;
  list-style-type: none;
}

/* 見出し */
h2 { font-size: 28px; margin-bottom: 30px; text-align: center; }

/* 全幅タイトル */
.bubble-title-full {
  position: relative;
  width: 100%;
  padding: 20px 0 24px;
  font-size: 32px;
  font-weight: 700;
  text-align: center;
  background: #fff;
  border-bottom: 2px solid #333;  /* 下線だけ */
}
.bubble-title-full::after {
  content: "";
  position: absolute;
  bottom: -12px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 12px solid transparent;
  border-right: 12px solid transparent;
  border-top: 12px solid #333; /* 下線の色と合わせる */
}

/* スマホ用調整 */
@media screen and (max-width: 768px) {
  .bubble-title-full {
    font-size: 24px;
    padding: 14px 0 20px;
  }
  .bubble-title-full::after {
    bottom: -10px;
    border-left-width: 10px;
    border-right-width: 10px;
    border-top-width: 10px;
  }
}

h3 {
  position: relative;
  display: block;
  width: 100%;
  padding: 1em 0.5em;
  margin: 40px 0;
  font-size: 24px;
  font-weight: 700;
}

h3::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 50%;
  background: #e7dec6;
  z-index: -1;
}

/* スマホ用調整 */
@media screen and (max-width: 768px) {
    h3 {
      font-size: 20px;
    }
}


h4 {
  font-size: 22px;
  font-weight: 700;
  color: #beaf87;
  margin: 1rem 0;
}

/* ================================
  FIRST VIEW
================================ */
/* FV全体 */
.fv {
  height: 100vh;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  flex-direction: column;
  padding: 0 20px;
  overflow: hidden;
}

/* 動画背景 */
.fv-video {
  position: absolute;
  top: 50%;
  left: 50%;
  width: auto;
  height: 100%;
  min-width: 100%;
  min-height: 100%;
  transform: translate(-50%, -50%);
  object-fit: cover;
  z-index: 0;
}

/* オーバーレイ */
.fv-overlay {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background: rgba(50,50,50,0.3);
  z-index: 1;
}

/* ドットマスク */
.fv::before {
  content: "";
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  background-image: radial-gradient(circle, rgba(255,255,255,0.5) 1px, transparent 1px);
  background-size: 15px 15px; 
  z-index: 1;
}

/* コンテンツ */
.fv-content {
  z-index: 3;
  color: #fff;
  max-width: 700px;
  
}

/* H1太字＋影 */
.fv h1 {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 900;
  font-size: 3rem;
  text-shadow: 2px 2px 6px rgba(0,0,0,0.6);
  margin-bottom: 20px;
  color: #fff;
  line-height: 1.2em;
}

    .fv h1 .sub-title {
      display: block;
      font-size: 1.2rem;
      font-weight: 700;
      letter-spacing: 2px;
      color: #fff;
    }

/* アイコン3つ横並び */
.fv-features {
  display: flex;
  gap: 20px;
  margin-top: 30px;
  margin-bottom: 30px;
  justify-content: center;
}
    .fv-feature img {
      width: 200px;
      height: 200px;
      border-radius: 50%;
      object-fit: cover;
      background: #fff;
      padding: 5px;
    }
    .fv-feature p {
      margin-top: 10px;
      font-weight: 900;
      color: #fff;
    }

/* 案内テキスト */
.fv-message {
  margin-top: 20px;
  font-size: 1.4rem;
  font-weight: bold;
  text-shadow: 2px 2px 6px rgba(0,0,0,0.6);
}

/* 人物写真 */
.fv-person {
  position: absolute;
  right: 0%;
  bottom: 0;
  width: 400px;
  pointer-events: none;
  z-index: 2;
}

/* スマホ用調整 */
@media screen and (max-width: 768px) {
.fv {
  height: 70vh;
  text-align: left;
}
  .fv-feature {
    flex-direction: rpw;
    align-items: center;
    line-height: 1.2em;
    text-align: center;
    font-size: 0.9em;
  }
  .fv-feature img {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  object-fit: cover;
  background: #fff;
  padding: 5px;
  }
  .fv-person {
    width: 280px;
    right: -10%;
    bottom: -20px;
    opacity: 1;
  }
  
  .fv h1 { font-size: 2rem; line-height: 1.4em; margin-top: 30px;}
  .fv h1 .sub-title { font-size: 1.2rem; }
  .fv-message {
  margin-top: 20px;
  line-height: 1.4em;
}
}



/* ================================
  こんな悩みありませんか？
================================ */
.nayami-title{

}
.nayami-title h2{
}
.nayami-point{
  display: flex;
  flex-wrap: nowrap;
}
.nayami-point p{
  font-size: 14px;
  padding: 30px;
}
.nayami-point span{

}
@media screen and (max-width: 768px) {
.nayami-point{
  display: flex;
  flex-wrap: wrap;
}
}
/* ================================
  ご相談ください
================================ */
.omakase{
  padding: 50px;
  max-width: 1100px;
  margin: 0 auto;
  background: #fff;
  box-shadow: 0 0 30px silver;
  border-radius: 30px;
}

.catch2 { 
    text-align: center; 
    font-size: 20px; 
    margin-top: 20px; 
}

/* ================================
  FEATUR
================================ */
.feature {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin: 120px 0;
  position: relative;
  padding: 40px 0;
  overflow: visible;
}


/* 左側丸角背景 */
.feature-left::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 70%;
  height: 100%;
  background: #e6e7e8;
  /* 左側は角丸なし、右側だけ丸角 */
  border-radius: 0 32px 32px 0;
}

/* 右側丸角背景 */
.feature-right::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 70%;
  height: 100%;
  background: #e7dec6;
  /* 右側は角丸なし、左側だけ丸角 */
  border-radius: 32px 0 0 32px;
}

/* タイトルを画面幅中央に配置 */
.feature h2 {
  position: absolute;
  top: -30px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 40px;
  z-index: 10;
  text-align: center;
  width: auto;
}

/* サブタイトル */
.feature h2 .sub-title {
  display: block;
  font-size: 18px;
  font-weight: 600;
  margin-top: 4px;
  letter-spacing: 5px;
  color: #999;
}

/* コンテンツを中央揃え */
.feature-content {
  flex: 1 1 70%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 80px;
  position: relative;
  text-align: left;
}
.feature-content p{
  margin-top: 30px;
}

/* 画像の配置 */
.feature-image {
  flex: 1 1 30%;
  position: relative;
  z-index: 10;
  top:-100px;
  margin: 0 15px;
}

.feature-image img {
  width: 100%;
  border-radius: 16px;
  object-fit: cover;
  filter: drop-shadow(0 0 8px #999);
}

/* 左向きレイアウト：画像は右側に重なる */
.feature-left .feature-image {
  margin-inline-start: -60px; /* 内側へ重ねる */
}

/* 右向きレイアウト：画像は左側に重なる */
.feature-right .feature-image {
  margin-inline-end: -60px; /* 内側へ重ねる */
}

@media screen and (max-width: 768px) {
  .feature {
    flex-direction: column;
  }
  .feature-content {
    padding: 0 40px 30px 40px;
  }
  .feature-image {
    top: 0;
    transform: none;
  }
  .feature-left .feature-image {
    margin-inline-start: 0px; 
    margin-inline-end: 0px;
    }
  .feature-right .feature-image {
    margin-inline-start: 0px; 
    margin-inline-end: 0px;
    }

}

/* ================================
  ドットマスク
================================ */
.dot-bg {
  background-color: #f5f5f5;
  background-image:
    radial-gradient(#ccc 1.5px, transparent 2px);
  background-size: 16px 16px;
}

/* ================================
  スライドインアニメ
================================ */
.animate-left, .animate-right {
  opacity: 0;
  transition: all 0.8s ease-out;
}

.animate-left { transform: translateX(-50px); }
.animate-right { transform: translateX(50px); }

.animate-left.visible,
.animate-right.visible {
  opacity: 1;
  transform: translateX(0);
}

/* ================================
  スマホ用調整
================================ */
@media screen and (max-width: 768px) {
  /* セクション全体を縦並びに */
  .feature {
    flex-direction: column;
    padding: 20px 0;
    margin: 80px 0; /* 上下マージン調整 */
    position: relative;
    overflow: hidden;
  }

  /* 疑似要素の丸角調整 */
  .feature-left::before,
  .feature-right::before {
    width: 100%;
    border-radius: 24px 24px 0 0;
  }

  /* 画像を上に表示 */
  .feature-image {
    order: -1;
    width: 100%;
    margin-bottom: 20px;
  }

  /* タイトルを中央表示に戻す */
  .feature h2 {
    position: relative;
    top: auto;
    left: auto;
    transform: none;
    text-align: center;
    margin-bottom: 20px;
    font-size: 32px;
  }

  /* サブタイトルも中央に */
  .feature h2 .sub-title {
    display: block;
    font-size: 16px; 
    letter-spacing: 3px;
    color:#999;
}
  /* SP時はアニメなし */
  .animate-left,
  .animate-right {
    transform: none !important;
    opacity: 1 !important;
  }
}

/* ================================
  ボタン
================================ */
/* スタイリッシュボタン */
.btn {
  display: inline-block;
  padding: 12px 30px;
  margin: 10px 5px;
  border: 2px solid #414042;
  /*border-radius: 8px;*/
  background: transparent;*/
  color: #414042;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.3s ease;
  position: relative;
  overflow: hidden;
}

/* ホバー時の背景色変化 */
.btn:hover {
  background: #414042;
  color: #fff;
  box-shadow: 0 4px 15px rgba(65, 64, 66, 0.47);
  border-color: #414042;
}

/* 小さい画面用の余白調整 */
@media screen and (max-width: 768px) {
  .btn {
    padding: 10px 24px;
    margin: 8px 0;
    font-size: 14px;
  }
}

/* ================================
  NEWS
================================ */
.news{
    background: #f4f4f4;
    background-image:
    radial-gradient(#fff 1px, transparent 1px);
    background-size: 5px 5px;
}

.news-item { margin-bottom: 15px; }
.news-date { font-weight: bold; margin-right: 10px; }

/* ================================
  CONTACT
================================ */
.news-item { margin-bottom: 15px; }
.news-date { font-weight: bold; margin-right: 10px; }

/* ================================
  コンテンツ
================================ */
/* 共通タイトル */
.contents-title{
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 100px;
  height: 200px;
  /*background: #999;*/
  background-position: center;
  background-size: cover;
  overflow: hidden;
}
.contents-title.company {
  background-image: url(images/background_header02.jpg);
}
.contents-title.business {
  background-image: url(images/background_header03.jpg);
}
.contents-title.contact {
  background-image: url(images/background_header04.jpg);
}
.contents-title.policy {
  background-image: url(images/background_header06.jpg);
}
.contents-title h1{
  color: white;
  font-size: 42px;
  text-shadow: 0 0 16px #333;
  text-align: center;
  }
.contents-title h1 span {
  display: block;
  font-size: 16px;  /* 小さくする */
  letter-spacing: 4px;
  margin-top: 4px;
}
@media screen and (max-width: 768px) {
    .contents-title{
      margin-top: 0px;
    }
}

/* グリッド */
.row {
    display: grid;
    grid-template-columns: repeat(12, 1fr); /* 12等分 */
    gap: 30px; /* 隙間 */
    align-items: center;
  }
  /* カラム幅*/
  .col-3 { grid-column: span 3; }
  .col-4 { grid-column: span 4; }  
  .col-5 { grid-column: span 5; }
  .col-6 { grid-column: span 6; }
  .col-7 { grid-column: span 7; }
  .col-8 { grid-column: span 8; }
  .col-12 { grid-column: span 12; }
  
  /* スマホ用 */
  @media (max-width: 640px) {
  .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-12 { grid-column: span 12; }
  .mailform_est .col-6{
  grid-column: span 6;
  }
}
  
  
/* ２カラム */
.column-two{
  display: flex;
  gap: 30px;
  justify-content: space-around;
  align-items: flex-start;
}
.column-two div{
  width: 50%;
}
.column-two ul{
  list-style: none;
  padding: 1.2em;
}
@media screen and (max-width: 768px) {
    .column-two{
      display: flex;
      flex-wrap: wrap;
      gap: 0px;
    }
    .column-two div{
      width: 100%;
    }
}

/* ================================
  事業内容
================================ */
/* point*/
.point{
  padding: 30px 50px;
  max-width: 1100px;
  margin: 0 auto;
  margin-top: 2em;
  background: #fff;
  box-shadow: 0 0 20px silver;
  border-radius: 30px;
}

/* 各種費用 */
.cost{
    background: #e6e7e8;
    border-radius: 30px;
    padding: 20px;
    font-weight: 700;
    text-align: center;
    margin: 15px;
}

/* faq */
.faq {
  max-width: 800px;
  margin: 50px auto;
  padding: 0 20px;
  font-family: 'Noto Sans JP', sans-serif;
}

.faq-item {
  margin-bottom: 30px;
}

.faq-question {
  font-weight: 700;
  background: #f2f2f2;
  padding: 12px 16px;
  border-radius: 8px;
  transition: background 0.3s;
}

.faq-question:hover {
  background: #e0e0e0;
}

.faq-answer {
  margin-top: 8px;
  margin-left: 30px;
  padding-left: 16px;
  border-left: 3px solid #beaf87;
  color: #333;
  line-height: 1.6;
}

/* ================================
  会社概要
================================ */
/* 創業の思い */
.rinen{
  font-size: 36px;
  font-weight: 900;
  text-align: center;
  margin: 1.2em;
}
.rinen_back{
    background-image: url(images/background_cover_02.jpg);
    background-position: center;
    background-size: cover;
    background-attachment: fixed;
}
.rinen_back h4{
    color: #0f0f0f;
}

/* sub-text*/
.sub-text{
  font-size: 0.9em;
  padding: 50px;
  border-radius: 20px;
  background: white;
  
}

/* profile */
.profile{
  border-top: 1px dotted #beaf87;
  font-size: 0.9em;
  margin-top: 30px

}
.profile-photo img{
  width: 100%;
  border-radius: 16px;
  object-fit: cover;
  filter: drop-shadow(0 0 8px #999);
}

/* 会社概要テーブル */
.company-table table {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  font-size: 16px;
  margin: 20px 0;
}

.company-table th,
.company-table td {
  padding: 14px 18px;
  border-bottom: 1px solid #eee;
}

.company-table th {
  background: #f7f7f7;
  width: 25%;
  text-align: left;
  font-weight: 600;
  color: #333;
}

/* 最終行の線を消す */
.company-table tr:last-child th,
.company-table tr:last-child td {
  border-bottom: none;
}

/* --- スマホ版（項目が上・内容が下に縦並び） --- */
@media (max-width: 640px) {
  .company-table th,
  .company-table td {
    display: block;
    width: 100%;
  }

  .company-table th {
    background: none;
    padding-bottom: 4px;
    font-size: 14px;
    color: #666;
  }

  .company-table td {
    padding-top: 0;
    padding-bottom: 16px;
  }

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

  .company-table tr:last-child {
    border-bottom: none;
  }
}

/* サービス */
.service{
    background: #e6e7e8;
    border-radius: 30px;
    padding: 20px;
    font-weight: 700;
    text-align: center;
    margin-top: 15px;
}

/* 沿革 */
.history {
  /* max-width: 800px; */
  margin: 60px auto;
  padding: 0 16px;
}

.timeline {
  list-style: none;
  padding: 0;
  margin: 0;
  position: relative;
}

.timeline::before {
  content: '';
  position: absolute;
  left: 40px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: #beaf87; /* 縦ラインの色 */
}

.timeline li {
  position: relative;
  margin-bottom: 30px;
  padding-left: 80px;
}

.timeline li::before {
  content: '';
  position: absolute;
  left: 32px;
  top: 5px;
  width: 16px;
  height: 16px;
  background: #beaf87; /* 丸印 */
  border-radius: 50%;
}

.timeline .year {
  display: block;
  font-weight: 700;
  color: #beaf87;
  margin-bottom: 6px;
}

.timeline p {
  margin: 0;
  color: #333;
  line-height: 1.5;
}

/* --- スマホ対応 --- */
@media (max-width: 640px) {
  .timeline::before { left: 20px; }
  .timeline li { padding-left: 60px; margin-bottom: 24px; }
  .timeline li::before { left: 12px; width: 12px; height: 12px; }
  .timeline .year { font-size: 14px; }
}

/* ================================
  お問合せ
================================ */
.contact{
  
}
.contact-tel{
  font-size: 42px;
  font-weight: 900;
}
.contact-tel a{
  color: #beaf87;
}
.contact-fax{
  font-size: 42px;
  font-weight: 900;
}

/* メールフォーム */
.mailform_est{
    max-width: 1100px;
}

/**/
.mailform_est input[type="text"],
.mailform_est input[type="email"],
.mailform_est input[type="tel"],
.mailform_est input[type="fax"],
.mailform_est input[type="number"],
.mailform_est select,
.mailform_est textarea {
  width: 100%;
  padding: 6px 10px;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 16px;
  box-sizing: border-box;
}

.checkbox-group {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.checkbox-group label {
  display: flex;
  align-items: center;
  gap: 4px; 
  font-size: 16px;
}

@media (max-width: 640px) {
  .checkbox-group {
    flex-direction: column;
  }
}

/*
.mailform_est button[type="submit"] {
  background: linear-gradient(135deg, #414042, #beaf87); 
  color: #fff;
  font-size: 24px;
  font-weight: 600;
  padding: 12px 24px;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  transition: all 0.3s ease;
}*/


/* テーブル */
.mailform_est table {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  font-size: 16px;
  margin: 20px 0;
}

.mailform_est th,
.mailform_est td {
  padding: 14px 18px;
  border-bottom: 1px solid #eee;
}

.mailform_est th {
  background: #f7f7f7;
  width: 25%;
  text-align: left;
  font-weight: 600;
  color: #333;
}
.mailform_est td {
  text-align: left;
}
.mailform_est td span{
  font-size: 12px;
}

/* 最終行の線を消す */
.mailform_est tr:last-child th,
.mailform_est tr:last-child td {
  border-bottom: none;
}

/* --- スマホ版（項目が上・内容が下に縦並び） --- */
@media (max-width: 640px) {
  .mailform_est th,
  .mailform_est td {
    display: block;
    width: 100%;
  }

  .mailform_est th {
    background: none;
    padding-bottom: 4px;
    font-size: 14px;
    color: #666;
  }

  .mailform_est td {
    padding-top: 0;
    padding-bottom: 16px;
  }

  .mailform_est tr {
    border-bottom: 1px solid #eee;
  }

  .mailform_est tr:last-child {
    border-bottom: none;
  }
}


/* 送信ボタン
.mailform_est button[type="submit"]:hover,
.mailform_est button[type="submit"]:focus {
  background: linear-gradient(135deg, #414042, #beaf87);
  transform: translateY(-2px);
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
} */

@media (max-width: 640px) {
  .mailform_est button[type="submit"] {
    width: 100%;
    padding: 14px 0;
    font-size: 16px;
  }
}


/* attention */
.mailform-att{
  background: #f2f2f2;
  max-width: 800px;
  font-size: 14px;
  color: #555;
  line-height: 1.6;
  margin-top: 12px;
  padding: 1.5em;
  border-radius: 16px;
}

/* ================================
  フッター
================================ */
/* お問合せボタン */
.block-contact {
  background:#beaf87;
  padding: 30px 0;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
}
.block-contact-item {
  min-width: 180px;
  /*width: 50%;*/
  text-align: center;
}
.block-contact-item p{
  font-size: 24px;
  font-weight: 700;
}
.block-contact a{
  display: block;
  font-size: 24px;
  margin: 10px;
}
.block-contact a:hover{
  opacity: 0.8;
}

/* footer */
footer {
  background: #414042;
  color: #fff;
  text-align: center;
  padding: 20px 0px 60px 0px;
  font-size: 14px;
  line-height: 1.5;
  position: relative;
  z-index: 1;
}

/* 会社名 */
.block-brand {
  padding: 50px 0;
}
.block-brand p {
  margin: 0;
  
}
.block-brand-jp {
  font-size: 24px;
  font-weight: 700;
  color: #aaa;
  margin-top: 4px;
}

.block-brand-en {
  font-size: 12px;
  color: #aaa;
  margin-top: 4px;
}

/* フッター用ブロック */
.block-links {
  padding: 10px 0;
  display: flex;
  justify-content: space-evenly;
  flex-wrap: wrap;
  gap: 40px;
  line-height: 1.8em;
}
.block-links-item {
  min-width: 180px;
  text-align: left;
}
.block-links span{
  font-size: 16px;
  font-weight: bold;
  color: #beaf87;
}
.block-links a {
  color: #fff;
  text-decoration: underline;
}

/* copyright */
.block-copy {
  padding: 10px 0;
}

/* ================================
 スマホ用調整対応
 ================================ */
@media screen and (max-width: 768px) {
  footer{
  padding: 0 20px 60px 20px;;
  }
  .block-contact,
  .block-links {
    flex-direction: column;
  }
  .block-contact-item,
  .block-links-item {
    min-width: 100%;
  }
}

/* ================================
   ページ上部へ戻るボタン
================================ */
.to-top {
  position: fixed;
  right: 20px;
  bottom: 20px;
  width: 50px;
  height: 50px;
  background: #333;
  color: #fff;
  border-radius: 50%;
  text-align: center;
  line-height: 48px;
  font-size: 22px;
  text-decoration: none;
  opacity: 0;
  pointer-events: none;
  transition: all 0.3s ease;
  z-index: 10000;
}

/* スクロールしたら表示 */
.to-top.show {
  opacity: 1;
  pointer-events: auto;
}

/* ホバーアクション */
.to-top:hover {
  background: #555;
  transform: translateY(-4px);
}

/* ================================
   スマホ固定フッター
================================ */

.mobile-fixed-footer {
  display: none; /* PCでは非表示 */
}

@media screen and (max-width: 768px) {
  .mobile-fixed-footer {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background: #222;
    color: #fff;
    display: flex;
    justify-content: space-around;
    text-align: center;
    padding: 10px 0;
    z-index: 9999;
    box-shadow: 0 -2px 10px rgba(0,0,0,0.2);
  }

  .mobile-fixed-footer .m-nav-item {
    flex: 1;
    color: #fff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
  }

  .mobile-fixed-footer .m-nav-item:hover {
    opacity: 0.7;
  }
}

