/* blog.css - ブログ記事専用 */

:root{--blog-page-width:960px;}

.article{
  padding:36px 0 84px;
  width:100%;
  max-width:100%;
  overflow-x:hidden;
}

.article .hero,
.slider-section,
.final-block{
  width:min(var(--blog-page-width),calc(100% - 32px));
  margin-left:auto;
  margin-right:auto;
}

.article .hero{
  overflow:hidden;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(0,0,0,.06);
  border-radius:28px;
  box-shadow:var(--shadow);
}

.hero-photo{background:#fff;}

.hero-photo img{
  width:100%;
  height:auto;
  object-fit:contain;
  background:#fff;
}

.hero-copy{
  padding:34px 42px 40px;
  background:rgba(255,255,255,.92);
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}

.hero-copy .eyebrow,
.article .eyebrow{
  margin:0;
  font-size:10px;
  letter-spacing:.34em;
  color:#8a8a93;
  text-align:center;
}

.hero-copy h1{
  margin:14px 0 0;
  font-size:clamp(30px,4.8vw,54px);
  line-height:1.15;
  letter-spacing:-0.04em;
  color:#111827;
  font-weight:800;
  text-align:center;
}

.hero-copy .sub-title{
  margin:14px 0 0;
  color:var(--accent-dark);
  font-size:clamp(15px,1.8vw,21px);
  line-height:1.55;
  font-weight:700;
  letter-spacing:.02em;
  text-align:center;
}

.hero-copy .lead{
  max-width:760px;
  margin:16px auto 0;
  color:var(--muted);
  font-size:15px;
  line-height:1.9;
  text-align:center;
}

.slider-section{
  margin-top:44px;
  overflow:hidden;
  background:rgba(255,255,255,.84);
  border:1px solid rgba(0,0,0,.06);
  border-radius:28px;
  box-shadow:var(--shadow);
}

.slider-section .section-head{
  padding:32px 42px 22px;
  background:rgba(255,255,255,.92);
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}

.section-number{
  margin:0 0 12px;
  font-size:12px;
  letter-spacing:.24em;
  color:var(--accent);
  font-weight:700;
  text-align:center;
}

.slider-section .section-head h2{
  margin:0;
  color:#111827;
  font-size:clamp(24px,3.2vw,36px);
  line-height:1.34;
  letter-spacing:-.035em;
  font-weight:800;
  text-align:center;
}

.slider{
  position:relative;
  width:100%;
  max-width:100%;
  overflow:hidden;
}

.slide{
  display:none;
  width:100%;
  max-width:100%;
  overflow:hidden;
}

.slide.active{
  display:block;
  animation:slideFade .22s ease both;
}

.slide.active .slide-copy{
  animation:copyRise .24s ease both;
}

.slide-photo{
  width:100%;
  max-width:100%;
  background:#fff;
  border-top:1px solid rgba(0,0,0,.06);
  border-bottom:1px solid rgba(0,0,0,.06);
  cursor:pointer;
  overflow:hidden;
  touch-action:pan-y;
  -webkit-tap-highlight-color:transparent;
}

.slide-photo img{
  width:100%;
  max-width:100%;
  height:auto;
  object-fit:contain;
  background:#fff;
}

.slide-copy{
  padding:26px 42px 30px;
  background:rgba(255,255,255,.96);
}

.slide-copy p{
  margin:0;
  color:var(--muted);
  font-size:15px;
  line-height:1.85;
  text-align:center;
}

.tap-area{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  padding:0 20px 22px;
  background:rgba(255,255,255,.96);
}

.page-indicator{
  min-width:58px;
  margin:0;
  padding:8px 12px;
  border-radius:999px;
  background:#f2f4f7;
  color:#6b7280;
  font-size:11px;
  letter-spacing:.12em;
  font-weight:700;
  text-align:center;
  white-space:nowrap;
}

.slider-button{
  width:38px;
  height:38px;
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  border:1px solid var(--border);
  background:#fff;
  color:var(--accent-dark);
  font-size:17px;
  transition:.18s ease;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}

.final-block{
  margin-top:44px;
  padding:58px 24px;
  text-align:center;
  background:rgba(255,255,255,.84);
  border:1px solid rgba(0,0,0,.06);
  border-radius:28px;
  box-shadow:var(--shadow);
}

.final-block p{
  margin:0;
  font-size:10px;
  letter-spacing:.35em;
  color:#8a8a93;
}

.final-block h2{
  margin:12px 0 0;
  font-size:clamp(18px,2.4vw,28px);
  line-height:1.45;
  letter-spacing:-.02em;
  color:#111827;
  font-weight:700;
}

@keyframes slideFade{0%{opacity:0}100%{opacity:1}}
@keyframes copyRise{0%{opacity:0;transform:translateY(8px)}100%{opacity:1;transform:translateY(0)}}

@media (max-width:760px){
  .article{padding-top:24px;padding-bottom:64px;}

  .article .hero,
  .slider-section,
  .final-block{
    width:calc(100% - 24px);
  }

  .article .hero,
  .slider-section,
  .final-block{
    border-radius:20px;
  }

  .hero-copy{padding:26px 22px 30px;}

  .hero-copy h1{
    font-size:26px;
    line-height:1.22;
    letter-spacing:-.035em;
  }

  .hero-copy .sub-title{font-size:14px;line-height:1.5;}
  .hero-copy .lead{font-size:14px;line-height:1.85;}

  .slider-section{margin-top:28px;}
  .slider-section .section-head{padding:24px 22px 18px;}
  .section-number{margin-bottom:10px;font-size:10px;letter-spacing:.18em;}
  .slider-section .section-head h2{font-size:20px;line-height:1.38;letter-spacing:-.02em;}
  .slide-copy{padding:22px 22px 26px;}
  .slide-copy p{font-size:14px;line-height:1.82;text-align:center;}
  .tap-area{gap:10px;padding:0 14px 18px;}
  .page-indicator{min-width:54px;padding:7px 10px;font-size:10px;letter-spacing:.1em;}
  .slider-button{width:34px;height:34px;font-size:15px;}
  .final-block{padding:46px 20px;}
  .final-block h2{font-size:18px;line-height:1.5;}
}
