/* ===============================
メインビジュアル
=============================== */

#main-visual{
position:relative;
height:70vh;
overflow:hidden;
}

#main-visual img{
width:100%;
height:100%;
object-fit:cover;
}

/* オーバーレイ */
#main-visual::after{
content:"";
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
background:rgba(0,0,0,0.3);
}

.main-text{
position:absolute;
top:50%;
left:50%;
transform:translate(-50%,-50%);
color:#fff;
text-align:center;
z-index:1;
}

.main-text h1{
font-size:40px;
font-weight:700;
margin-bottom:10px;
text-shadow:0 5px 20px rgba(0,0,0,0.4);
}

.main-text p{
font-size:18px;
}

/* ===============================
強み
=============================== */

.feature{
padding:0 20px;
}

.feature-box h3{
color:var(--main-color);
margin-bottom:10px;
}

/* ===============================
施工事例
=============================== */

#works{
padding:0 20px;
}

/* ===============================
物件情報
=============================== */

.estate-grid{
display:flex;
gap:40px;
max-width:900px;
margin:auto;
padding:0 20px;
}

.estate-box{
flex:1;
text-align:center;
padding:40px;
}

.estate-box{
background:#fff;
border-radius:var(--radius);
box-shadow:var(--shadow);
}

.estate-box h3{
color:var(--main-color);
margin-bottom:10px;
}

/* ボタンはcommonを使う */
.estate-box a{
margin-top:15px;
}

/* ===============================
ペレットストーブ
=============================== */

.pellet-wrap{
display:flex;
gap:40px;
max-width:1000px;
margin:auto;
align-items:center;
padding:0 20px;
}

.pellet-wrap img{
width:350px;
border-radius:var(--radius);
}

.pellet-text{
flex:1;
line-height:1.8;
}

/* ボタン配置だけ */
.pellet-buttons{
margin-top:20px;
display:flex;
gap:15px;
flex-wrap:wrap;
}

/* ===============================
お問い合わせ
=============================== */

.contact-text{
text-align:center;
margin-bottom:20px;
}

.contact-btn{
display:block;
width:300px;
margin:0 auto;
text-align:center;
}

/* btn-mainを使う */
.contact-btn{
padding:15px;
border-radius:30px;
}

/* ===============================
スマホ対応
=============================== */

@media screen and (max-width:768px){

.estate-grid{
flex-direction:column;
}

.pellet-wrap{
flex-direction:column;
text-align:center;
}

.pellet-wrap img{
width:100%;
max-width:350px;
}

.main-text h1{
font-size:28px;
}

}

@media screen and (max-width:480px){

.main-text h1{
font-size:24px;
}
}

/* ペレットストーブページボタン詳細 */
.pellet-buttons a:first-child{
border-style:solid;
}

.pellet-buttons a:last-child{
opacity:0.8;
}

.pellet-buttons a:last-child:hover{
opacity:1;
}

.main-text .btn{
  margin-top:20px;
  font-size:16px;
}

.mv-note{
  font-size:13px;
  margin-top:10px;
}

.works-card span{
  font-size:13px;
  color:#666;
}

.center-btn{
  text-align:center;
  margin-top:30px;
}

/* ==========================
ヒーロースライダー
========================== */

#hero-slider{
  position:relative;
  width:100%;
  height:calc(100vh - 100px);
  margin-top:100px;
  overflow:visible;
  background:#111;
}

.hero-slide{
  position:absolute;
  inset:0;
  opacity:0;
  visibility:hidden;
  transition:1s;
}

.hero-slide.active{
  opacity:1;
  visibility:visible;
  z-index:1;
}

.hero-slide img{
  width:100%;
  height:100%;
  object-fit:contain;
  background:#111;
}

/* オーバーレイ */

.hero-overlay{
  position:absolute;
  inset:0;
  background:
  linear-gradient(
    to right,
    rgba(0,0,0,0.65) 0%,
    rgba(0,0,0,0.35) 35%,
    rgba(0,0,0,0) 70%
  );
}

/* テキスト */

.hero-content{
 position:absolute;
  top:50%;
  left:6%;
  transform:translateY(-50%);
  z-index:2;
  width:52%;
  color:#fff;
}

.hero-sub{
  display:block;
  font-size:16px;
  margin-bottom:18px;
  letter-spacing:0.1em;
}

.hero-content h1,
.hero-content h2{
  font-size:52px;
  line-height:1.25;
  margin-bottom:20px;
  font-weight:500;
  text-shadow:0 5px 20px rgba(0,0,0,0.4);
}

.hero-content p{
  font-size:20px;
  line-height:1.8;
  margin-bottom:24px;
}

/* タグ */

.hero-tags{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:28px;
}

.hero-tags span{
  padding:10px 16px;
  border:1px solid rgba(255,255,255,0.4);
  border-radius:6px;
  font-size:14px;
  background:rgba(255,255,255,0.08);
}

/* ボタン */

.hero-buttons{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
}

.hero-buttons .btn{
  min-width:220px;
  padding:16px 22px;
  border-radius:8px;
  font-size:18px;
  font-weight:700;
  text-align:center;
  transition:0.3s;
}

.btn-main{
  background:linear-gradient(135deg,#d9b06d,#b78343);
  color:#fff;
}

.btn-sub{
  background:rgba(255,255,255,0.92);
  color:#5b3a1e;
}

.hero-buttons .btn:hover{
  transform:translateY(-2px);
}

/* 矢印 */

.hero-arrow{
  position:absolute;

  bottom:-72px;
  top:auto;

  transform:none;

  z-index:30;

  width:46px;
  height:46px;

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

  border:none;
  border-radius:50%;

  background:rgba(255,255,255,0.95);

  color:#7b4f2a;
  font-size:22px;
  line-height:1;

  cursor:pointer;

  box-shadow:0 4px 12px rgba(0,0,0,0.15);

  transition:0.3s;
}

.hero-arrow:hover{
  background:#fff;
}

.hero-arrow.prev{
  left:calc(50% - 120px);
}

.hero-arrow.next{
  right:calc(50% - 120px);
}

/* ドット */

.hero-dots{
  position:absolute;

  left:50%;
  bottom:-56px;

  transform:translateX(-50%);

  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;

  z-index:30;
}

.dot{
  width:13px;
  height:13px;

  border-radius:50%;

  background:#d7c3a7;

  border:2px solid #7b4f2a;

  box-shadow:0 2px 8px rgba(0,0,0,0.15);

  cursor:pointer;

  transition:0.3s;
}

.dot.active{
  background:#7b4f2a;

  transform:scale(1.2);
}

/* スマホ */

@media screen and (max-width:768px){

  #hero-slider{
    height:70vh;
  }

  .hero-slide img{
    object-fit:contain;
    background:#111;
  }

  .hero-content{
    width:auto;
    left:6%;
    right:6%;
  }

  .hero-content h1,
  .hero-content h2{
    font-size:26px;
  line-height:1.35;
  }

  .hero-content p{
    font-size:15px;
  }

  .hero-buttons{
    flex-direction:column;
  }

  .hero-buttons .btn{
    width:100%;
  min-width:auto;
  font-size:14px;
  padding:12px 16px;
  border-radius:6px;
  }

.feature{
  margin-top:130px;
}

}

/* ========================================
施工事例 スマホ横スワイプ
======================================== */

@media screen and (max-width:768px){

  #works{
    width:92%;
    margin:70px auto;
    overflow:hidden;
  }

  .works-grid{

    display:flex !important;

    flex-wrap:nowrap !important;

    gap:10px;

    overflow-x:auto;
    overflow-y:hidden;

    padding-bottom:10px;

    scroll-snap-type:x mandatory;

    -webkit-overflow-scrolling:touch;
  }

  /* スクロールバー非表示 */
  .works-grid::-webkit-scrollbar{
    display:none;
  }

.works-card{

  min-width:62%;

  max-width:240px;

  flex:0 0 auto;

  scroll-snap-align:center;

  border-radius:16px;

  overflow:hidden;
}
  .works-card img{
    width:100%;
    aspect-ratio:1 / 1;
    object-fit:cover;
  }

  .works-card p{
    padding:14px;
    font-size:14px;
    line-height:1.5;
    text-align:left;
  }

  .works-card span{
    display:block;
    margin-top:4px;
    font-size:12px;
    color:#777;
  }

}

/* ========================================
BLOG バナー
======================================== */

.blog-banner-section{
  width:90%;
  max-width:1100px;
  margin:90px auto;
}

.blog-banner-link{
  display:block;
  border-radius:24px;
  overflow:hidden;

  box-shadow:0 10px 30px rgba(0,0,0,0.08);

  transition:0.4s ease;
}

.blog-banner-link:hover{
  transform:translateY(-4px);

  box-shadow:0 18px 40px rgba(0,0,0,0.14);
}

.blog-banner-img{
  width:100%;
  display:block;
}

/* =========================
スマホ
========================= */

@media screen and (max-width:768px){

  .blog-banner-section{
    width:92%;
    margin:70px auto;
  }

  .blog-banner-link{
    border-radius:18px;
  }

}
