/* =========================================
   基本リセット・共通設定
   ========================================= */
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: repeat;
  background-position: center;
  background-size: cover;
  box-sizing: border-box;
}

/* 各CTAの背景画像 */
.cta1 { background-image: url('img/cta_bk.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: 30%;  /* 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;
}

.cta1 p {
	font-size: 16px;
	font-weight: 700;
}
/* =========================================
   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: 65%; /* スマホではボタンを大きく */
  }
}


/* =========================================
   テーブル
   ========================================= */
.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の指定が引き継がれ、中央揃えのままになります */
  }
}

/* FAQセクション全体 */
.faq-section {
    padding: 80px 10px !important;
    background-color: #fffdf2 !important;
    clear: both;
}

.faq-container {
   /* max-width: 900px;*/
    max-width: 90%;
    margin: 0 auto;
}

/* メインタイトル (重複回避) */
.faq-main-title {
    all: unset !important;
    display: block !important;
    text-align: center !important;
    font-size: 28px !important;
    font-weight: bold !important;
    color: #333 !important;
    margin: 0 0 50px 0 !important;
}

.faq-main-title::after {
    content: "";
    display: block;
    width: 60px;
    height: 3px;
    background-color: #d7000f;
    margin: 15px auto 0;
}

/* アコーディオンの外枠 */
.faq-item {
    background: #fff !important;
    margin-bottom: 15px !important;
    border: 1px solid #eee !important;
    border-radius: 8px !important;
    overflow: hidden;
}

/* 質問部分 */
.faq-question {
    padding: 20px 50px 20px 60px !important;
    font-weight: bold !important;
    cursor: pointer;
    position: relative;
    list-style: none; /* デフォルトの矢印を消す */
    background: #fff;
    transition: background 0.3s;
    line-height: 1.5;
}

.faq-question::-webkit-details-marker {
    display: none;
}

/* Qアイコン */
.faq-question::before {
    content: "Q";
    position: absolute;
    left: 20px;
    top: 50%;
    transform: translateY(-50%);
    color: #d7000f;
    font-size: 22px;
    font-weight: 900;
}

/* 右側の＋アイコン */
.faq-question::after {
    content: "+";
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 24px;
    color: #ccc;
}

/* 開いている時の＋をーにする */
.faq-item[open] .faq-question::after {
    content: "−";
}

/* 回答部分 */
.faq-answer {
    padding: 0 20px 20px 60px !important;
    color: #555 !important;
    font-size: 15px !important;
    line-height: 1.8 !important;
    position: relative;
    border-top: 1px dashed #eee;
    padding-top: 20px !important;
}

/* Aアイコン */
.faq-answer::before {
    content: "A";
    position: absolute;
    left: 20px;
    top: 20px;
    color: #333;
    font-size: 20px;
    font-weight: 900;
}

/* レスポンシブ */
@media (max-width: 768px) {
    .faq-section { padding: 50px 5px !important; }
    .faq-main-title { font-size: 22px !important; }
    .faq-question { font-size: 15px !important; padding-left: 50px !important; }
    .faq-question::before { left: 15px; font-size: 18px; }
    .faq-answer { font-size: 14px !important; padding-left: 50px !important; }
    .faq-answer::before { left: 15px; font-size: 16px; }
}

form {
	background-color: #fffdf2;
	padding-bottom: 50px;
}

/* PC通常表示 */
.content2 img{
    width:100%;
    height:auto;
}


/* SPのみ横スクロール */
@media (max-width:768px){

.content2{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
}

.content2 img{
    width:auto;
    max-width:none;
	margin-left: 20px;
}

}

/* PC表示 */
.owner-slider{
    max-width:100%;
}

.owner-slide{
    margin-bottom:30px;
}

.owner-slide img{
    width:100%;
}


/* SPスライダー */
/*@media (max-width:768px){

.owner-slider{
    display:flex;
    overflow-x:auto;
    gap:20px;
    padding:0 20px;

    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
}

.owner-slide{
    flex:0 0 85%;
    scroll-snap-align:center;
}

.owner-slide img{
    width:100%;
    display:block;
}

}*/

/* PCは従来の縦並び */
/* ===== PC ===== */
.owner-slider {
    display: block;
}

.owner-slide {
    margin-bottom: 20px;
}

/* ===== SP ===== */
@media (max-width: 768px) {

    .owner-wrap {
        position: relative;
        overflow: visible; /* ←これ重要 */
    }

    .owner-slider {
        display: flex;
        overflow-x: auto !important;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
    }

    .owner-slide {
        flex: 0 0 100%;
        scroll-snap-align: start;
    }

    /* ===== 矢印 ===== */
    .arrow {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        z-index: 10;

        width: 36px;
        height: 36px;
        border-radius: 50%;

        background: rgba(0,0,0,0.4);
        color: #fff;
        border: none;

        display: flex;
        align-items: center;
        justify-content: center;
    }

    .prev { left: 10px; }
    .next { right: 10px; }

}

@media (min-width: 769px) {
    .arrow {
        display: none;
    }
}


img {
  max-width: 100%;
}

/* =========================================
   サンキューページ
   ========================================= */
.thanks {
	padding: 50px;
	text-align: center;
}