.footer-container * {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/* フッター専用グリッド */
.footer-container {
  max-width: 1140px;
  margin: 0 auto;
  padding: 10px 15px;
}

.footer-row {
  display: flex;
  flex-wrap: wrap;
  margin: -15px;
}

.footer-col-lg-4,
.footer-col-md-6 {
  padding: 15px;
  width: 100%;
}

/* メディアクエリでのカラム幅設定 */
@media (min-width: 768px) {
  .footer-col-md-6 {
    width: 50%;
  }
}
@media (min-width: 992px) {
  .footer-col-lg-4 {
    width: 33.33%;
  }
}

/* ユーティリティクラス */
.footer-text-center {
  text-align: center;
}

.footer-list-unstyled {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* 三列リスト */
.footer-three-column li {
  width: 33.3333%;
  float: left;
  padding: 5px 0;
}

/* フッター基本スタイル */
footer {
  background: #04003d;
  color: #fff;
  padding-top: 10px;
  font-size: 14px;
line-height: 1.5;
}

footer a {
  color: #fff;
  text-decoration: none;
}

footer a:hover {
  color: #aaa;
}

footer h3 {
  color: #FFF;
  margin: 30px 0 20px;
  font-size: 20px;
  font-weight: bold;
}

/* メディアオブジェクト */
.footer-media {
  display: flex;
  align-items: flex-start;
  margin-bottom: 15px;
}

.footer-media-body {
  flex: 1;
}

.footer-media-heading {
  font-size: 16px;
  text-decoration: underline;
  font-weight: bold;
}

/* 会社案内PDFボックス */
.footer-box_doocument_dw {
  padding: 0.4em 0.7em;
  border: solid 1px #FFF;
  width: 50%;
	margin:20px 0;
}

.footer-box_doocument_dw p {
  margin: 0;
  padding: 0;
}

/* SNS・ブログのリスト */
.footer-socila-list {
  display: flex;
  align-items: center;
  list-style: none;
  margin: 20px 0 0px;
  padding: 0;
}

.footer-socila-list li {
  margin-right: 3px;
  opacity: 0.7;
  transition: all 0.3s ease-in-out;
}

/* コピーライトエリア */
.footer-copyright {
  padding: 10px 0;
  background: #020021;
  margin-top: 20px;
  font-size: 14px;
  line-height: 1.1rem;
}

.footer-copyright span {
  color: #FFF;
}

/* 固定フッターボタン・バナー */
.footer-fix-btn2 {
  width: 25%;
  position: fixed;
  right: 0;
  bottom: 70px;
  padding: 15px 10px;
  text-align: center;
  background: linear-gradient(to right, #50CABC, #5FBCFF);
  font-size: 20px;
  font-weight: bold;
  border-radius: 10px 0 0 10px;
}

.footer-fix-btn2 a {
  display: block;
  width: 100%;
  text-decoration: none;
}

.footer-fix-btn2 a:hover {
  opacity: 0.8;
}

@media screen and (max-width: 767px) {
  .footer-fix-btn2 {
    width: 60%;
    margin: auto;
    font-size: 17px;
    padding: 10px 0;
    bottom: 50px;
  }
}

.footer-fix-btn {
  width: 25%;
  position: fixed;
  right: 0;
  bottom: 0;
  padding: 15px 10px;
  text-align: center;
  background: linear-gradient(to right, #C9C951, #C97651);
  font-size: 20px;
  font-weight: bold;
  border-radius: 10px 0 0 10px;
}

.footer-fix-btn a {
  display: block;
  width: 100%;
  text-decoration: none;
}

.footer-fix-btn a:hover {
  opacity: 0.8;
}

@media screen and (max-width: 767px) {
  .footer-fix-btn {
    width: 60%;
    margin: auto;
    font-size: 17px;
    padding: 10px 0;
  }
}

.footer-fixed-menu {
  position: fixed;
  left: 20px;
  bottom: 20px;
  background-color: white;
  padding: 15px;
  border-radius: 5px;
  box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

@media screen and (max-width: 767px) {
  .footer-fixed-menu {
    display: none;
  }
}

.footer-fixed-menu ul {
  list-style-type: none;
  padding: 0;
  margin: 0;
}

.footer-fixed-menu li {
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid black;
}

.footer-fixed-menu li:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}

.footer-fixed-menu a {
  text-decoration: none;
  color: #333;
  font-size: 14px;
}

.footer-fixed-menu a:hover {
  color: #007bff;
}

.footer-fix-banner {
  position: fixed;
  right: 0;
  bottom: 60px;
  width: 100%;
  display: flex;
  justify-content: flex-end;
}

.footer-fix-banner a {
  width: 30%;
  max-width: 400px;
}

.footer-fix-banner img {
  width: 100%;
  height: auto;
}

@media screen and (max-width: 767px) {
  .footer-fix-banner a {
    width: 60%;
    max-width: 400px;
  }
}

/*固定フッター*/
/*PCでは有効*/
.banner{
    display: block;
}

.floating-banner {
    position: fixed;
    z-index: 99999;
    bottom: 0;
    right: 0;
}
.banner {
    width: 300px;/* バナーの横幅 */
    padding: 1px 10px;
    background: linear-gradient(to right, #50CABC, #EFED8F), #50CABC;
	background-size:  cover;   
    color: #000;/* バナー内の文字色 */
	font-weight:bold;
    text-align: center;
	border-top-left-radius: 10px; /* 左上の角を丸く */
}
.floating-banner a {
    text-decoration: none;/* リンクに下線が入らないように */
}
.copy {
    font-size: 15px;
    margin: 5px auto 10px;
    line-height: 1.6;
}
.cta {
	color:#000;
    display: inline-block;
    width: 200px;
    height: 35px;
    line-height: 35px;
    font-size: 15px;
    background:#FFF; /* ボタンの背景 */
    border-radius: 25px;
    margin: 0;
	box-shadow: 0 6px 8px rgba(0, 0, 0, 0.15);
}

@media screen and (max-width: 767px) {
    .floating-banner {
        display: inline-block;
    }
    .banner {
    width: 100vw;
    padding:1px;
	border-top-left-radius: 0px;
    }
    .sp {
        display: none;
    }
    .copy {
        font-size: 15px;
        margin: 0 auto 6px;
		padding:10px 0 0 0;
    }
    .cta {
        height: 28px;
        line-height: 28px;
        font-size: 15px;
		margin:0px;
    }
}

/* === 固定追尾フッター共通 === */
.footer-fixed{
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  display: flex;
  z-index: 1000;          /* 他要素より前面に */
  box-shadow: 0 -2px 6px rgba(0,0,0,.15);
}

/* 各ボタン */
.footer-btn{
  flex: 1 1 50%;          /* PCでは 50% / スマホでは 100% に変化 */
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem 0;
  font-size: 1rem;
  font-weight: 700;
  text-decoration: none;
  color: #FFF;
  transition: opacity .2s;
text-align: center; 
  line-height: 1.4;  
}
.footer-btn:hover{opacity:.8}

/* 色だけ変える */
.footer-btn--contact  {background:#50CABC;}   /* お問い合わせ */
.footer-btn--manual   {background:#009688;}   /* マニュアルDL */

/* スマホ：縦積み・文字サイズ少し上げてタップしやすく */
@media (max-width: 767px){
  .footer-fixed     {flex-direction: column;}
  .footer-btn       {flex-basis: 100%; font-size: 1.1rem;}
  .footer-btn + .footer-btn{border-top: 1px solid rgba(255,255,255,.3);}
}

/* PC：横並びに区切り線 */
@media (min-width: 768px){
  .footer-btn + .footer-btn{border-left: 1px solid rgba(255,255,255,.3);
	}
	 .footer-btn{
    padding: .8rem 0;
}}

/* ===============================
   グラデーション設定（共通）
   =============================== */
.footer-btn{
  /* 旧指定の単色を残しておくとフォールバックになる */
  background: inherit;
  /* グラデの境界を滑らかにする */
  background-size: 200% 100%;
  transition: background-position .4s ease;
}
.footer-btn:hover{
  /* ホバー時に少しアニメさせてリッチ感を追加（任意）*/
  background-position: 100% 0;
}

/* お問い合わせボタン用：アクア→エメラルド */
.footer-btn--contact{
  background: #50CABC; /* フォールバック */
  background: linear-gradient(90deg, #50CABC 0%, #35BEA4 50%, #1FA290 100%);
}

/* マニュアルDLボタン用：ターコイズ→シアン */
.footer-btn--manual{
  background: #009688; /* フォールバック */
  background: linear-gradient(90deg, #009688 0%, #00A7B3 50%, #00BCD4 100%);
}

/* スマホ幅のボタンも同じグラデが生きるので追加調整不要 */
