/* =========================================================
   TOP PAGE — approved static preview parity
   This stylesheet is loaded only on the WordPress front page.
   ========================================================= */

.stp-home {
  overflow:hidden;
  background:#fffcf7;
  color:#333;
  font-family:"Noto Serif JP","游明朝","Yu Mincho","ヒラギノ明朝 ProN","Hiragino Mincho ProN",serif;
}
.stp-home *, .stp-home *::before, .stp-home *::after { box-sizing:border-box; }
.stp-home img { display:block; max-width:100%; height:auto; }
.stp-home a { text-decoration:none; }
.stp-home__container { width:min(1100px, calc(100% - 40px)); margin-inline:auto; }

/* Main visual */
.stp-homeVisual {
  position:relative;
  height:100svh;
  min-height:500px;
  overflow:hidden;
  background:#9b1524;
}
.stp-homeVisual__slides, .stp-homeVisual__slide {
  position:absolute;
  inset:0;
}
/* Slider is CSS-driven so SWELL/other JS cannot leave a blank red frame. */
.stp-homeVisual__slide {
  opacity:0;
  animation:stpHomeFade 30s infinite;
  will-change:opacity;
}
.stp-homeVisual__slide:nth-child(1) { animation-delay:0s; }
.stp-homeVisual__slide:nth-child(2) { animation-delay:6s; }
.stp-homeVisual__slide:nth-child(3) { animation-delay:12s; }
.stp-homeVisual__slide:nth-child(4) { animation-delay:18s; }
.stp-homeVisual__slide:nth-child(5) { animation-delay:24s; }
.stp-homeVisual__slide img {
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1);
  animation:stpHomeZoom 30s infinite linear;
}
.stp-homeVisual__slide:nth-child(1) img { animation-delay:0s; }
.stp-homeVisual__slide:nth-child(2) img { animation-delay:6s; }
.stp-homeVisual__slide:nth-child(3) img { animation-delay:12s; }
.stp-homeVisual__slide:nth-child(4) img { animation-delay:18s; }
.stp-homeVisual__slide:nth-child(5) img { animation-delay:24s; }
@keyframes stpHomeFade {
  0%{opacity:0}
  4%{opacity:1}
  20%{opacity:1}
  24%{opacity:0}
  100%{opacity:0}
}
@keyframes stpHomeZoom {
  0%{transform:scale(1)}
  24%{transform:scale(1.08)}
  100%{transform:scale(1.08)}
}

.stp-homeVisual__logo {
  position:absolute;
  left:50%;
  top:50%;
  z-index:3;
  width:clamp(130px, 16vw, 240px);
  height:auto;
  transform:translate(-50%, -50%);
  filter:drop-shadow(0 2px 8px rgba(0,0,0,.18));
  pointer-events:none;
}
.stp-homeVisual__scroll {
  position:absolute;
  left:50%;
  bottom:34px;
  z-index:3;
  transform:translateX(-50%);
  color:#fff;
  font-size:15px;
  letter-spacing:.08em;
  text-shadow:0 1px 6px rgba(0,0,0,.25);
  pointer-events:none;
}
.stp-homeVisual__scroll::after {
  content:"";
  display:block;
  width:1px;
  height:52px;
  margin:10px auto 0;
  background:#fff;
  opacity:.9;
}

/* Concept */
.stp-homeConcept {
  position:relative;
  padding:100px 0;
  background:url('../images/slider/slide11.jpg') center/cover no-repeat;
  background-attachment:fixed;
  color:#fff;
}
.stp-homeConcept::before {
  content:""; position:absolute; inset:0; background:rgba(30,25,20,.70);
}
.stp-homeConcept__inner { position:relative; z-index:1; max-width:840px; text-align:justify; }
.stp-homeConcept h1 {
  margin:0 0 40px; color:#fff; text-align:center;
  font-size:26px; line-height:1.5; font-weight:700; letter-spacing:.15em;
  text-shadow:0 2px 8px rgba(0,0,0,.4);
}
.stp-homeConcept p {
  margin:0 0 20px; color:#fff; font-size:16px; line-height:2.2;
  text-shadow:0 1px 4px rgba(0,0,0,.3);
}
.stp-homeConcept img { width:120px; margin:30px 0 0 auto; }

/* News / Event */
.stp-homeNews { padding:80px 0 60px; }
.stp-homeNews__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:50px; }
.stp-home__sectionTitle {
  position:relative; display:inline-block; margin:0 0 30px; padding:0 0 12px;
  font-size:22px; line-height:1.4; font-weight:700; letter-spacing:.1em;
}
.stp-home__sectionTitle::after { content:""; position:absolute; left:0; bottom:0; width:100%; height:3px; background:#4a8c5c; }
.stp-home__postList { list-style:none; margin:0; padding:0; }
.stp-home__postList li { padding:18px 0; border-bottom:1px solid #eee; }
.stp-home__postMeta { display:flex; align-items:center; gap:12px; margin-bottom:4px; color:#999; font-size:16px; }
.stp-home__postMeta time { letter-spacing:.05em; }
.stp-home__postMeta span { padding:1px 10px; border-radius:2px; background:#f5f5f5; color:#666; font-size:16px; }
.stp-home__postList a, .stp-home__postFallback { color:#333; font-size:16px; line-height:1.7; }
.stp-home__postList a:hover { color:#c4171b; }

/* Feature sections */
.stp-homeFeature { padding:60px 0 80px; }
.stp-homeFeature--alt { background:#f5f1eb; }
.stp-homeFeature__row { display:flex; align-items:flex-start; gap:50px; }
.stp-homeFeature__row--reverse { flex-direction:row-reverse; }
.stp-homeFeature__image { flex:0 0 55%; max-width:55%; }
.stp-homeFeature__image img { width:100%; border-radius:2px; }
.stp-homeFeature__body { flex:1; min-width:0; }
.stp-homeFeature__body h2 {
  margin:0 0 20px; padding-left:15px; border-left:4px solid #c4171b;
  color:#333; font-size:28px; font-weight:700; line-height:1.4; letter-spacing:.08em;
}
.stp-homeFeature__body p { margin:0 0 25px; font-size:16px; line-height:2; }
.stp-homeFeature__more {
  display:flex; align-items:center; justify-content:space-between;
  width:100%; max-width:320px; padding:14px 30px;
  border:1px solid #ccc; color:#333; font-size:16px; letter-spacing:.1em;
  transition:.25s;
}
.stp-homeFeature__more:hover { border-color:#c4171b; color:#c4171b; }
.stp-homeFeature__more span { font-size:16px; }

/* Food gallery */
.stp-homeGallery { padding:40px 0 80px; }
.stp-homeGallery__grid { display:grid; grid-template-columns:repeat(4,1fr); gap:30px; max-width:900px; }
.stp-homeGallery figure { aspect-ratio:1; margin:0; overflow:hidden; border-radius:50%; }
.stp-homeGallery figure img { width:100%; height:100%; object-fit:cover; }

/* Keep top-page link cards and footer in the approved rhythm. */
.stp-home + .l-footer { margin-top:0; }

@media (max-width:1079px) {
  .stp-homeVisual { height:60svh; min-height:350px; }
  .stp-homeVisual__logo { width:min(180px, 40vw); }
  .stp-homeConcept { padding:60px 0; background-attachment:scroll; }
  .stp-homeConcept h1 { font-size:20px; }
}

@media (max-width:767px) {
  .stp-home__container { width:min(100% - 40px, 650px); }
  .stp-homeVisual__logo { width:120px; }
  .stp-homeVisual__scroll { font-size:13px; bottom:15px; }
  .stp-homeVisual__scroll::after { height:32px; }
  .stp-homeConcept { padding:58px 0; }
  .stp-homeConcept h1 { margin-bottom:28px; font-size:19px; letter-spacing:.10em; }
  .stp-homeConcept p { font-size:14px; line-height:2.05; }
  .stp-homeNews { padding:55px 0 40px; }
  .stp-homeNews__grid { grid-template-columns:1fr; gap:50px; }
  .stp-home__sectionTitle { margin-bottom:20px; font-size:20px; }
  .stp-home__postList li { padding:15px 0; }
  .stp-home__postMeta, .stp-home__postMeta span, .stp-home__postList a, .stp-home__postFallback { font-size:14px; }
  .stp-homeFeature { padding:45px 0 60px; }
  .stp-homeFeature__row, .stp-homeFeature__row--reverse { flex-direction:column; gap:25px; }
  .stp-homeFeature__image { flex:0 0 100%; max-width:100%; }
  .stp-homeFeature__body h2 { font-size:24px; }
  .stp-homeFeature__body p { font-size:14px; line-height:2; }
  .stp-homeFeature__more { max-width:320px; }
  .stp-homeGallery { padding:20px 0 60px; }
  .stp-homeGallery__grid { grid-template-columns:repeat(2,1fr); gap:20px; max-width:400px; }
}

@media (prefers-reduced-motion: reduce) {
  .stp-homeVisual__slide { animation:none; opacity:0; }
  .stp-homeVisual__slide:first-child { opacity:1; }
  .stp-homeVisual__slide img { animation:none; }
}
