/* =========================================
   基本リセット・共通設定
   ========================================= */
html { scroll-behavior: smooth;}

body {
  margin: 0;
  padding: 0;
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  color: #333;
  line-height: 1.6;
  -webkit-text-size-adjust: 100%;
  background-color: #fff;
}

/* LP全体のコンテナ */
section {
  width: 100%;
  max-width: 1480px; 
  margin: 0 auto;
  background-color: #fff;
  box-shadow: none;
}

/* 通常コンテンツ画像の共通設定 */
/* pictureタグとimgタグの両方に適用 */
.content picture,
.content img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
  display: block;
  box-sizing: border-box;
}

/* =========================================
   ヘッダー (.header)
   ========================================= */
.header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 20px;
  background-color: #fff;
}

.header img {
  width: auto;
  max-height: 80px;
}

/* =========================================
   CTAエリア（背景あり・ボタン中央・幅50%）
   ========================================= */

/* CTA共通設定 */
.cta1, .cta2, .cta3, .cta  {
  width: 100%;
  position: relative;
  text-align: center; 
  padding: 60px 0;    
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  box-sizing: border-box;
}

/* 各CTAの背景画像 */
.cta1 { background-image: url('img/cta01.png'); }
.cta2 { background-image: url('img/cta02.png'); }
.cta  { background-image: url('img/cta03.png'); } 

/* 背景なしCTA */
.cta3 {
  background: none;
  padding: 40px 0;
}

/* CTA内のボタン画像設定 */
.cta1 img, 
.cta2 img, 
.cta3 img, 
.cta img {
  display: inline-block;
  vertical-align: middle;
  width: 40%;  /* PC表示では親要素の50%の幅 */
  height: auto;
  cursor: pointer;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

/* ボタンのホバー効果 */
.cta1 img:hover, 
.cta2 img:hover, 
.cta3 img:hover, 
.cta img:hover {
  transform: scale(1.05);
  opacity: 0.9;
}

/* =========================================
   Googleマップ部分 (.map)
   ========================================= */
.map {
  padding: 40px 20px;
  text-align: center;
  background-color: #f9f9f9;
}

.map iframe {
  width: 100%;
  max-width: 800px;
  height: 450px;
  margin-bottom: 20px;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.map h3 {
  font-size: 1.25rem;
  margin-bottom: 10px;
  color: #1e3a8a;
  font-weight: bold;
}

.map {
  font-size: 0.95rem;
}

/* =========================================
   SP（スマホ）表示時の調整
   ========================================= */
@media screen and (max-width: 768px) {
  /* ヘッダーのレイアウト調整 */
  .header {
    display: flex;          /* Flexboxを明示 */
    flex-direction: row;    /* 横並びを強制（重要） */
    justify-content: space-between; /* 両端揃え */
    align-items: center;    /* 上下中央揃え */
    padding: 10px;          /* 余白は小さめに */
    gap: 5px;               /* 画像同士の間隔 */
  }
  
  /* ヘッダー内画像の共通設定 */
  .header img {
    height: auto;
    /* 高さはなりゆき、幅でサイズを制限します */
  }

  /* 1つ目の画像（ロゴ） */
  .header img:nth-child(1) {
    /*width: 30%;        画面幅の30%程度に縮小 */
    max-width: 160px; /* 必要以上に大きくならないように制限 */
  }

  /* 2つ目の画像（TEL+ボタン） */
  .header img:nth-child(2) {
    width: 65%;       /* 画面幅の65%程度（ボタンが見えるギリギリのサイズ） */
    max-width: 200px; 
  }

  /* マップの高さをスマホ用に調整 */
  .map iframe {
    height: 300px;
  }
  
  /* CTAエリアの余白調整 */
  .cta1, .cta2, .cta3 {
    padding: 40px 0;
  }

  /* CTAボタンのサイズ調整 */
  .cta1 img, 
  .cta2 img, 
  .cta3 img, 
  .cta img {
    width: 80%; /* スマホではボタンを大きく */
  }
}


/* =========================================
   テーブル
   ========================================= */
.tableSample {
width: 80%;
border-collapse: collapse;
	margin: auto;
}

.tableSample th,td {
padding: 10px 15px;
border: 1px solid #ddd;
}

.tableSample th {
background: #f4f4f4;
width: 15%;
text-align: left;
}

@media only screen and (max-width:479px) {
.tableSample th,td {
width: auto;
display: block;
border-top: none;
}
.tableSample tr:first-child {
border-top: 1px solid #d5d5d5;
}
}

.required::after {
content: "必須";
color: #ffffff;
background: #cc0000;
font-size: 0.8em;
padding: 0.3em;
border-radius: 0.5em;
margin-left:0.3em;
}

/* =========================================
   固定フッターバナー
   ========================================= */
.fixed-footer {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    z-index: 9999;
    padding: 15px;
    box-sizing: border-box;
    background: rgba(255, 255, 255, 0.8);
    backdrop-filter: blur(4px);
    box-shadow: 0 -4px 15px rgba(0, 0, 0, 0.1);
}

.fixed-footer-inner {
    display: flex;
    justify-content: center; /* PC時：センター揃え */
    align-items: center;
    gap: 20px;
    max-width: 1480px;
    margin: 0 auto;
}

.footer-cta-btn {
    display: block;
    width: 280px; /* PC時のボタンサイズを少しスリムに */
    transition: transform 0.2s ease, filter 0.2s ease;
}

.footer-cta-btn:hover {
    transform: translateY(-3px);
    filter: brightness(1.05);
}

.footer-cta-btn img {
    width: 100%;
    height: auto;
    display: block;
    vertical-align: bottom;
}

/* =========================================
   SP（スマホ）表示時の調整
   ========================================= */
@media screen and (max-width: 768px) {
    .fixed-footer {
        padding: 8px 0; /* 上下の余白を詰め、左右はインナーで調整 */
    }

    .fixed-footer-inner {
        width: 90%; /* ★ここを調整：ボタンエリア全体を少し絞って小さく見せる */
        gap: 8px;   /* ボタン同士の間隔を詰める */
        margin: 0 auto;
    }

    .footer-cta-btn {
        flex: 1;
        width: auto;
        max-width: 160px; /* ★ここを調整：ボタン1つの最大幅を制限 */
    }

    /* 固定バナーで下のコンテンツが隠れないようbodyに余白追加 */
    body {
        padding-bottom: 70px; /* ボタンが小さくなった分、余白も少し減らす */
    }
}

@media screen and (min-width:640px){
  .kai {
    display: none;
  }
}

/* スマホのみ（600px以下）で<br>を非表示にする */
@media screen and (max-width: 600px) {
  .sp-br {
    display: none;
  }
}

/* PC用の記述（既存） */
.cta {
    background-image: url('img/cta03.png');
}

/* スマホ用（画面幅767px以下）の記述を追加 */
@media screen and (max-width: 767px) {
    .cta {
        background-image: url('img/cta03_sp.png');
		padding: 30px 0;   
    }
}

/* ベーススタイル（PCなどの大画面用：4列、幅80%、中央揃え） */
.link {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  width: 80%;
  margin: 0 auto;
  box-sizing: border-box;
}

/* 子要素のはみ出し防止 */
.link > * {
  min-width: 0; 
  box-sizing: border-box;
}

/* 【重要】中に入る画像がスマホ画面を突き抜けないようにする */
.link img {
  max-width: 100%;
  height: auto;
  object-fit: cover; /* 画像の縦横比を保ちつつ枠に収める */
}

/* スマートフォン表示（画面幅768px以下の場合：2列） */
@media (max-width: 768px) {
  .link {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px; /* スマホでは隙間を少し狭くすると綺麗に収まります */
    width: 95%; /* スマホ時は画面幅を広く使って収める（100%でもOKです） */
    /* margin: 0 auto; はPCの指定が引き継がれ、中央揃えのままになります */
  }
}