﻿/*
Theme Name: Table Fleurie
Theme URI: http://localhost/para/
Author: Custom
Description: Table Fleurie - Edible Flowers
Version: 2.0.0
Text Domain: table-fleurie
*/

/* =============================================
   RESET & BASE
   ============================================= */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --bg-gray:   #f2f0ed;
  --bg-dark:   #1a1a1a;
  --text:      #333333;
  --text-mid:  #666666;
  --white:     #ffffff;
  --serif:     'Noto Serif JP', 'Yu Mincho', 'YuMincho', serif;
  --sans:      'Noto Sans JP', 'Hiragino Kaku Gothic ProN', sans-serif;
  --ease:      cubic-bezier(.25,.46,.45,.94);
}

html { scroll-behavior: smooth; }

body {
  font-family: var(--sans);
  font-size: .95rem;
  color: var(--text);
  background: var(--white);
  line-height: 1.9;
  overflow-x: hidden;
}

img { max-width: 100%; height: auto; display: block; }
a   { text-decoration: none; color: inherit; }
ul  { list-style: none; }

.container { max-width: 1800px; margin: 0 auto; padding: 0 48px; }


/* =============================================
   SECTION HEADING (centered)
   ============================================= */
.sec-head {
  text-align: center;
  margin-bottom: 8px;
}
.sec-head--left { text-align: left; }

.sec-head__label {
  display: block;
  font-family: var(--sans);
  font-size: .9rem;
  font-weight: 300;
  letter-spacing: .35em;
  text-transform: uppercase;
  color: var(--text-mid);
  margin-bottom: 2px;
}
.sec-head__sub {
  display: block;
  font-family: var(--sans);
  font-size: 1.15rem;
  letter-spacing: .22em;
  color: var(--text-mid);
  margin-bottom: 6px;
}
.sec-head__line {
  display: inline-block;
  width: 40px;
  height: 1px;
  background: var(--text);
  margin-bottom: 0;
}
.sec-head--left .sec-head__line { display: block; }
.s-about__text1 .sec-head--left { margin-bottom: 20px; align-self: flex-start; }

/* shared dark button */
.btn-dark {
  display: inline-block;
  background: var(--bg-dark);
  color: var(--white);
  font-family: var(--sans);
  font-size: .8rem;
  letter-spacing: .1em;
  padding: 16px 40px;
  cursor: pointer;
  border: 1px solid transparent;
  transition: opacity .25s;
}
.btn-dark:hover { opacity: .75; }


/* =============================================
   HEADER
   ============================================= */
.site-header {
  position: fixed;
  top: 0; left: 0;
  width: 100%;
  z-index: 900;
  background: var(--white);
  padding: 0 48px 0 0;
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #e8e5e1;
}

.site-logo__sp { display: none; }
.site-logo__pc { display: inline; }
.site-logo {
  font-family: var(--serif);
  font-size: 1.3rem;
  font-weight: 600;
  letter-spacing: .08em;
  color: var(--text);
  white-space: nowrap;
  display: flex;
  align-items: center;
  gap: 16px;
}
.site-logo__img { height: 80px; width: auto; display: block; }

.menu-btn {
  display: flex;
  align-items: center;
  gap: 10px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
}
.menu-btn__icon {
  display: flex;
  flex-direction: column;
  gap: 5px;
  width: 22px;
}
.menu-btn__icon span {
  display: block;
  height: 1px;
  background: var(--text);
  width: 100%;
}
.menu-btn__text {
  font-family: var(--sans);
  font-size: .88rem;
  letter-spacing: .2em;
  color: var(--text);
}

/* ── Drawer ──────────────────────────────── */
.drawer-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.5);
  z-index: 900;
  opacity: 0;
  pointer-events: none;
  transition: opacity .4s ease;
}
.drawer-overlay.is-open {
  opacity: 1;
  pointer-events: all;
}
.drawer {
  position: fixed;
  top: 0;
  right: 0;
  width: 320px;
  height: 100%;
  background: #fff;
  z-index: 910;
  display: flex;
  flex-direction: column;
  padding: 60px 40px;
  transform: translateX(100%);
  transition: transform .4s ease;
}
.drawer.is-open {
  transform: translateX(0);
}
.drawer__close {
  position: absolute;
  top: 20px;
  right: 20px;
  background: #222;
  color: #fff;
  border: none;
  width: 36px;
  height: 36px;
  font-size: 1rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.drawer__nav {
  list-style: none;
  padding: 0;
  margin: 0;
}
.drawer__nav li {
  border-bottom: 1px solid #e8e8e8;
}
.drawer__nav li:first-child {
  border-top: 1px solid #e8e8e8;
}
.drawer__nav a {
  display: block;
  padding: 13px 0;
  font-family: var(--sans);
  font-size: .85rem;
  letter-spacing: .18em;
  color: var(--text);
  text-decoration: none;
}
.drawer__nav a:hover {
  color: #999;
}


/* =============================================
   HERO
   ============================================= */
.hero {
  position: relative;
  margin-top: 60px;
  height: calc(100vh - 60px);
  background-attachment: fixed;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  overflow: hidden;
}
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(100deg, rgba(255,255,255,.65) 0%, rgba(255,255,255,.4) 30%, rgba(255,255,255,.1) 50%, rgba(255,255,255,0) 65%);
  pointer-events: none;
}
.hero__content {
  position: absolute;
  top: 0;
  left: 0;
  width: 90%;
  height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 4vh;
  z-index: 2;
  padding: 8vh 4% 0 6%;
}
.hero__upper { }
.hero__brand {
  font-family: 'Parisienne', 'Cormorant Garamond', cursive;
  font-size: clamp(2.5rem, 4vw, 4.2rem);
  font-weight: 400;
  font-style: italic;
  color: #b8902a;
  letter-spacing: .02em;
  line-height: 1.1;
  margin-bottom: 8px;
}
.hero__tagline {
  font-family: var(--serif);
  font-size: clamp(0.8rem, 1.3vw, 1.1rem);
  font-weight: 400;
  color: #b8902a;
  letter-spacing: .2em;
  margin-top: 5vh;
}
.hero__lower { }
.hero__cta { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 8px; align-items: stretch; }
.hero__cta .btn-dark, .hero__cta .btn-outline { display: flex; align-items: center; justify-content: center; margin: 0; padding: 16px 40px !important; font-size: .8rem; letter-spacing: .1em; }
.hero__cta .btn-outline { background: var(--white) !important; color: var(--bg-dark) !important; border: 1px solid var(--bg-dark) !important; min-width: 222px; }
.hero__title {
  font-family: var(--serif);
  font-size: clamp(1.5rem, 2.2vw, 2.8rem);
  font-weight: 700;
  color: var(--text);
  letter-spacing: 0;
  line-height: 1.6;
  margin-bottom: 20px;
}
.hero__sub {
  font-family: var(--serif);
  font-size: clamp(1rem, 1.3vw, 1.4rem);
  font-weight: 700;
  color: var(--text);
  line-height: 1.8;
  letter-spacing: .01em;
}

/* 画像内 特徴バー（ビューポート基準で下部に配置） */
.hero__features-bar {
  position: absolute;
  bottom: 0;
  top: auto;
  left: 0;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-around;
  z-index: 3;
  padding: 12px 1%;
  background: rgba(255, 255, 255, 0.6);
}
.hero__feat-icon {
  color: #b8902a;
}
.hero__feat {
  font-family: var(--serif);
  font-size: clamp(0.9rem, 1.3vw, 1.4rem);
  font-weight: 700;
  color: #000000;
  display: flex;
  align-items: center;
  gap: 6px;
  letter-spacing: .08em;
  line-height: 1.3;
}
/* 7日の鮮度保持の直下注記 */
.hero__feat-text { display: inline-flex; flex-direction: column; }
.hero__feat-note {
  font-family: var(--sans);
  font-size: 0.5em;
  color: #555;
  letter-spacing: .02em;
  margin-top: 2px;
  line-height: 1.3;
}
.hero__feat-text > span:first-child { line-height: 1.3; }


/* 側面追尾ボタン */
.side-cta {
  position: fixed;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  z-index: 800;
  background: var(--bg-dark);
  color: var(--white);
  text-decoration: none;
  writing-mode: vertical-rl;
  font-family: var(--sans);
  font-size: .75rem;
  letter-spacing: .15em;
  padding: 24px 12px;
  line-height: 1;
  transition: opacity .25s;
}
.side-cta:hover { opacity: .75; }

/* right fixed CTA */
.fixed-cta {
  position: fixed;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  z-index: 800;
  background: var(--bg-dark);
  color: var(--white);
  writing-mode: vertical-rl;
  font-family: var(--sans);
  font-size: .7rem;
  letter-spacing: .12em;
  padding: 20px 10px;
  line-height: 1;
  cursor: pointer;
  transition: opacity .25s;
}
.fixed-cta:hover { opacity: .8; }


/* =============================================
   ABOUT
   ============================================= */
.s-about {
  background: var(--bg-gray);
  padding: 100px 0 80px;
  margin-top: 0;
}
.s-about__title {
  font-family: var(--serif);
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  font-weight: 400;
  text-align: center;
  letter-spacing: .12em;
  margin-top: 8px;
  margin-bottom: 48px;
  color: var(--text);
  margin-top: 20px;
  margin-bottom: 64px;
}

/* Row 1: diagram left + text right */
.s-about__row1 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
  margin-bottom: 80px;
}
.s-about__diagram { display: flex; justify-content: center; align-items: center; }
.s-about__diagram img {
  width: 100%;
  max-width: 750px;
  height: auto;
}
.s-about__text1 {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  gap: 22px;
  padding-top: 12px;
  font-family: var(--sans);
  font-size: .95rem;
  line-height: 1.9;
  color: var(--text);
}
/* トップページ：笑顔の循環はセンター寄せ */
body.home .s-about__text1 { align-items: center; text-align: center; }
body.home .s-about__text1 .sec-head { margin-bottom: 8px; }
/* トップページ：左テキスト・右画像 */
body.home .s-about__row1 .s-about__text1 { order: 1; }
body.home .s-about__row1 .s-about__diagram { order: 2; }


/* Row 1b: text left + photo right */
.s-about__row1b {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
  margin-bottom: 80px;
}
.s-about__photo1b img {
  width: 100%;
  max-width: 750px;
  aspect-ratio: 3 / 2;
  height: auto;
  object-fit: cover;
  object-position: center bottom;
  display: block;
  margin: 0 auto;
}
.s-about__text1b {
  display: flex;
  flex-direction: column;
  gap: 20px;
  font-size: .95rem;
  line-height: 1.9;
  color: var(--text);
}
.s-about__text1b-head {
  font-weight: 700;
  font-size: .95rem;
  margin-top: 8px;
}

.s-about__row2-wrap {
  background: var(--white);
  padding: 80px 0;
}
.s-about__row2-title {
  font-family: var(--serif);
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  font-weight: 400;
  letter-spacing: .08em;
  text-align: center;
  margin-bottom: 20px;
}

/* Row 2: text left + photo right */
.s-about__row2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}
.s-about__text2 {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 20px;
  font-family: var(--sans);
  font-size: .95rem;
  line-height: 1.9;
  color: var(--text);
}
.s-about__text2-head {
  font-weight: 500;
  font-size: .92rem;
}
.s-about__photo {
  display: flex;
  justify-content: center;
  align-items: center;
}
.s-about__photo img {
  width: 100%;
  max-width: 750px;
  height: auto;
  object-fit: cover;
}


/* =============================================
   MOVIE
   ============================================= */
.s-movie {
  background: var(--bg-gray);
  padding: 80px 0 100px;
}
.s-movie .container { text-align: center; }
.s-movie__title {
  font-family: var(--serif);
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  font-weight: 400;
  letter-spacing: .12em;
  text-align: center;
  margin-top: 0;
  margin-bottom: 32px;
}

.s-movie__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
  margin-top: 40px;
  text-align: left;
}
.s-movie__body {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.s-movie__player {
  position: relative;
}
.s-movie__player img {
  width: 100%;
  max-width: 750px;
  height: auto;
  display: block;
  margin: 0 auto;
}
.s-movie__play {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 64px; height: 64px;
  background: rgba(255,255,255,.9);
  border: none;
  border-radius: 50%;
  font-size: 1.2rem;
  color: var(--text);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-left: 4px;
  transition: transform .25s;
}
.s-movie__play:hover { transform: translate(-50%,-50%) scale(1.1); }

.s-movie__desc {
  text-align: center;
  font-family: var(--sans);
  font-size: .95rem;
  line-height: 2;
  color: var(--text);
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.s-movie__cta {
  margin-top: 0;
  text-align: center;
}
.s-movie__note {
  font-size: .7rem;
  color: var(--text-mid);
  margin-top: 8px;
}


/* =============================================
   FLOWER LINEUP
   ============================================= */
.s-lineup {
  padding: 80px 0;
  text-align: center;
}
.s-lineup__title {
  font-family: var(--serif);
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  font-weight: 400;
  letter-spacing: .12em;
  text-align: center;
  margin-top: 8px;
  margin-bottom: 48px;
}
.s-lineup__images {
  display: flex;
  justify-content: center;
  gap: 32px;
  margin-bottom: 40px;
}
.s-lineup__images img {
  width: 45%;
  max-width: 480px;
  height: auto;
  display: block;
}
.s-lineup__text {
  font-family: var(--sans);
  font-size: .95rem;
  line-height: 2;
  color: var(--text);
  margin-bottom: 32px;
}
.s-lineup__head {
  font-family: var(--serif);
  font-size: 1.1rem;
  font-weight: 600;
  margin-bottom: 12px;
}
.s-lineup__list {
  list-style: none;
  padding: 0;
  margin-top: 16px;
  display: inline-flex;
  flex-direction: column;
  gap: 8px;
  text-align: left;
}
.s-lineup__list li {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--sans);
  font-size: .95rem;
  line-height: 1.6;
}
.s-lineup__list li::before {
  content: '✿';
  color: #b8902a;
  font-size: .8rem;
  flex-shrink: 0;
}
.s-lineup__cta { text-align: center; }

/* =============================================
   NEWS & TOPICS
   ============================================= */
.s-news {
  padding: 80px 0 48px;
  background: var(--bg-gray);
}
.s-news .container {
  background: var(--white);
  border: 1px solid #e0ddd8;
  padding: 60px 64px;
}
@media (max-width: 900px) {
  .s-news .container { padding: 40px 24px; }
}
.s-news__title {
  font-family: var(--serif);
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  font-weight: 400;
  letter-spacing: .12em;
  margin-bottom: 40px;
  text-align: center;
}
.s-news__list {
  list-style: none;
  padding: 0;
  margin: 0 0 40px;
  border-top: 1px solid #e0e0e0;
}
.s-news__item {
  border-bottom: 1px solid #e0e0e0;
}
.s-news__link {
  display: flex;
  align-items: baseline;
  gap: 24px;
  padding: 18px 4px;
  text-decoration: none;
  color: var(--text);
  transition: opacity .2s;
}
.s-news__link:hover { opacity: .6; }
.s-news__date {
  font-size: .82rem;
  color: var(--text-mid);
  white-space: nowrap;
  font-family: var(--sans);
  letter-spacing: .05em;
}
.s-news__ttl {
  font-size: .95rem;
  line-height: 1.6;
}
.s-news__cta {
  text-align: center;
}

/* =============================================
   FOR BUSINESS
   ============================================= */
.s-forbiz {
  padding: 80px 0;
  background: var(--bg-gray);
}
.s-forbiz__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}
.s-forbiz__img img {
  width: 100%;
  max-width: 750px;
  height: auto;
  display: block;
  margin: 0 auto;
}
.s-forbiz__title {
  font-family: var(--serif);
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  font-weight: 400;
  text-align: center;
  letter-spacing: .12em;
  margin-top: 8px;
  margin-bottom: 48px;
}
.s-forbiz__text {
  font-family: var(--sans);
  font-size: .95rem;
  line-height: 2;
  text-align: center;
  color: var(--text);
}

/* =============================================
   FEATURES
   ============================================= */
.s-features {
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.s-features__col {
  position: relative;
  height: 480px;
  overflow: hidden;
  cursor: pointer;
}
.s-features__bg {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .8s var(--ease);
}
.s-features__col:hover .s-features__bg { transform: scale(1.05); }
.s-features__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.5);
}
.s-features__content {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: var(--white);
  padding: 40px;
}
.s-features__title {
  font-family: var(--serif);
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  font-weight: 400;
  letter-spacing: .1em;
  margin-bottom: 14px;
}
.s-features__desc {
  font-family: var(--sans);
  font-size: .78rem;
  color: rgba(255,255,255,.85);
  letter-spacing: .04em;
  margin-bottom: 24px;
}
.s-features__link {
  display: inline-block;
  font-family: var(--sans);
  font-size: .78rem;
  letter-spacing: .1em;
  color: var(--text);
  background: var(--white);
  padding: 14px 48px;
  text-decoration: none;
  margin-top: 8px;
}


/* =============================================
   GALLERY (4 photos)
   ============================================= */
.s-gallery {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
.s-gallery__item { overflow: hidden; }
.s-gallery__item img {
  width: 100%;
  height: 260px;
  object-fit: cover;
  display: block;
  transition: transform .7s var(--ease);
}
.s-gallery__item:hover img { transform: scale(1.04); }


/* =============================================
   PICKUP
   ============================================= */
.s-pickup {
  background: var(--bg-gray);
  padding: 100px 0;
}
.s-pickup__title {
  font-family: var(--serif);
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  font-weight: 400;
  text-align: center;
  letter-spacing: .08em;
  margin: 20px 0 48px;
}
.s-pickup__lead {
  max-width: 760px;
  margin: 0 auto 64px;
  font-size: .95rem;
  line-height: 2;
  color: var(--text);
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.s-pickup__item {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin-bottom: 80px;
  align-items: center;
}
.s-pickup__item--even { }
.s-pickup__item--odd .s-pickup__info { padding-left: 64px; }
.s-pickup__item--even .s-pickup__info { padding-right: 64px; }
.s-pickup__item--even .s-pickup__img { order: 2; }
.s-pickup__item--even .s-pickup__info { order: 1; }

.s-pickup__img img {
  width: 100%;
  aspect-ratio: 1 / 1;
  height: auto;
  object-fit: cover;
  display: block;
}
.s-pickup__name {
  font-family: var(--serif);
  font-size: 1rem;
  font-weight: 400;
  letter-spacing: .04em;
  margin-bottom: 14px;
  line-height: 1.6;
}
.s-pickup__price {
  font-family: var(--sans);
  font-size: 1.1rem;
  letter-spacing: .04em;
  margin-bottom: 20px;
  color: var(--text);
}
.s-pickup__desc {
  font-size: .84rem;
  line-height: 2;
  color: var(--text);
  margin-bottom: 14px;
}


/* =============================================
   TESTIMONIALS
   ============================================= */
.s-testimonials {
  background: var(--white);
  padding: 100px 0;
}
.s-testimonials__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}
.s-testimonials__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.s-testimonials__title {
  font-family: var(--serif);
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  font-weight: 400;
  letter-spacing: .12em;
  margin-top: 8px;
  margin-bottom: 48px;
  text-align: center;
  width: 100%;
}
.s-testimonials__who {
  font-size: .78rem;
  color: var(--text-mid);
  letter-spacing: .05em;
  margin-bottom: 20px;
}
.s-testimonials__quote {
  font-family: var(--serif);
  font-size: .9rem;
  line-height: 2.2;
  color: var(--text);
  margin-bottom: 36px;
  font-style: normal;
}
.s-testimonials__content .btn-dark {
  align-self: center;
}
.s-testimonials__photo {
  display: flex;
  justify-content: center;
  align-items: center;
}
.s-testimonials__photo img {
  width: 100%;
  max-width: 750px;
  height: auto;
  display: block;
  margin: 0 auto;
}


/* =============================================
   CLIENTS
   ============================================= */
.s-clients {
  background: var(--white);
  padding: 100px 0;
}
.s-clients__title {
  font-family: var(--serif);
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  font-weight: 400;
  text-align: center;
  letter-spacing: .12em;
  margin-top: 8px;
  margin-bottom: 64px;
}
.s-clients__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
  margin-bottom: 48px;
}
.s-clients__card { }
.s-clients__card-img img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  display: block;
}
.s-clients__card-body {
  padding: 18px 16px 20px;
}
.s-clients__card-type {
  font-size: .65rem;
  letter-spacing: .2em;
  color: var(--text-mid);
  margin-bottom: 4px;
  text-transform: uppercase;
}
.s-clients__card-name {
  font-size: .8rem;
  font-weight: 500;
  letter-spacing: .03em;
  margin-bottom: 8px;
  line-height: 1.4;
}
.s-clients__card-addr {
  font-size: .7rem;
  color: var(--text-mid);
  line-height: 1.6;
  margin-bottom: 4px;
}
.s-clients__card-hours {
  font-size: .7rem;
  color: var(--text-mid);
  margin-bottom: 10px;
}
.s-clients__card-links {
  display: flex;
  gap: 16px;
}
.s-clients__card-link {
  font-size: .68rem;
  letter-spacing: .12em;
  color: var(--text);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.s-clients__viewall {
  text-align: center;
}
.s-clients__viewall-link {
  font-size: .72rem;
  letter-spacing: .3em;
  color: var(--text);
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* =============================================
   TOP PAGE CONTACT SECTION
   ============================================= */
.s-contact-top {
  padding: 80px 0;
  background: var(--bg-gray);
}
.s-contact-top__title { font-family: var(--serif); font-size: 1.5rem; font-weight: 300; text-align: center; margin-bottom: 32px; }

/* =============================================
   SUB PAGE COMMON
   ============================================= */
.sub-page { padding-top: 72px; }

.sub-hero {
  position: relative;
  min-height: 420px;
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sub-hero__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.45);
}
@media (max-width: 900px) {
  .sub-hero__overlay { background: rgba(0,0,0,.6); }
}
.sub-hero__content {
  position: relative;
  z-index: 1;
  text-align: center;
  color: var(--white);
  padding: 40px 20px;
}
.sub-hero__label {
  font-size: .75rem;
  letter-spacing: .3em;
  margin-bottom: 12px;
  font-family: var(--sans);
}
.sub-hero__title {
  font-family: var(--serif);
  font-size: clamp(1.6rem, 4vw, 2.8rem);
  font-weight: 300;
  line-height: 1.4;
  margin-bottom: 16px;
}
.sub-hero__sub {
  font-size: .95rem;
  opacity: .85;
}
.sub-hero--simple {
  background: var(--bg-dark);
  min-height: 280px;
}
.sub-hero--split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 500px;
  background: none;
}
.sub-hero__img-col {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  overflow: hidden;
}
.sub-hero__img-col img { width: 100%; height: 100%; object-fit: cover; }
.sub-hero__text-col {
  background: var(--bg-dark);
  color: var(--white);
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 60px 48px;
}

.s-intro { padding: 64px 0; background: var(--bg-gray); }
.s-intro__inner { max-width: 800px; }
.s-intro__inner h2 { font-family: var(--serif); font-size: 1.5rem; margin-bottom: 20px; font-weight: 300; text-align: center; }
.s-intro__inner { text-align: center; }
.s-intro__fresh { font-family: var(--serif); font-size: 1.1rem; letter-spacing: .08em; margin-bottom: 16px; text-align: center; }
.s-intro__badges { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 0; justify-content: center; }
.s-intro__badges .badge { flex: 1; min-width: 160px; max-width: 220px; }
.badge {
  background: #9a7d4a;
  color: var(--white);
  padding: 10px 20px;
  font-size: .8rem;
  letter-spacing: .1em;
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 56px;
}
.badge__icon { font-size: 1rem; opacity: .85; }
.badge__note { font-size: .68rem; opacity: .75; letter-spacing: .03em; }
.badge--with-note { gap: 8px; }
.badge__text-wrap { display: flex; flex-direction: column; gap: 1px; white-space: nowrap; }

/* エディブルフラワーについて */
.s-what { padding: 48px 0; }
.s-what__inner { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.s-what__img img { width: 100%; height: auto; display: block; }
.s-what__text p + p { margin-top: 16px; }

.s-scene { padding: 80px 0; background: var(--bg-gray); }
.s-scene__lead { max-width: 800px; margin: 0 auto 48px; text-align: center; }
.s-scene__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.s-scene__item img { width: 100%; aspect-ratio: 4/3; object-fit: cover; margin-bottom: 16px; }
.s-scene__item-title { font-family: var(--serif); font-size: 1rem; margin-bottom: 8px; }
@media (max-width: 767px) { .s-scene__item-title { font-size: .82rem; } }
@media (max-width: 767px) { .company-hero { background-size: contain !important; } }

.s-brand { padding: 80px 0; }
.s-brand__inner { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.s-brand__text h2 { font-family: var(--serif); font-size: 1.4rem; margin-bottom: 20px; font-weight: 300; }
.s-brand__text p + p { margin-top: 12px; }

.s-producer { padding: 80px 0; background: var(--white); }
.s-producer__inner { display: grid; grid-template-columns: 360px 1fr; gap: 60px; align-items: center; }
.s-producer__body { display: flex; flex-direction: column; gap: 48px; }
.s-producer__quote { border-left: 3px solid var(--bg-dark); padding-left: 24px; font-style: italic; }

/* 農法 */
.s-method { padding: 80px 0; }
.s-method__cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  margin-top: 48px;
}
.s-method__card img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  display: block;
}
.s-method__card-body {
  padding: 24px 0 0;
}
.s-method__card-body h3 {
  font-family: var(--serif);
  font-size: 1.05rem;
  font-weight: 400;
  margin-bottom: 12px;
  line-height: 1.6;
}
.s-method__card-body p {
  font-family: var(--sans);
  line-height: 1.9;
  color: var(--text);
}
@media (max-width: 900px) {
  .s-method__cards { grid-template-columns: 1fr; }
}

.s-quality { padding: 80px 0; background: var(--bg-gray); }
.s-quality > .container > p { text-align: center; margin-bottom: 48px; }
.s-quality__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.s-quality__card { background: var(--white); padding: 32px; }
.s-quality__card h3 { font-family: var(--serif); font-size: 1.1rem; margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid #ddd; font-weight: 400; }

/* 商品 */
.s-pickup-feature { padding: 80px 0; }
.s-pickup-feature__inner { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.s-pickup-feature__inner img { width: 100%; }
.s-pickup-feature__inner--center { display: flex; justify-content: center; }
.s-pickup-feature__inner--center img { width: auto; max-width: 600px; }
.s-pickup__photo img { width: 100%; aspect-ratio: 1/1; object-fit: cover; border-radius: 4px; }
.s-pickup__tagline { font-size: .85rem; color: var(--text-mid); letter-spacing: .08em; margin-bottom: 6px; }
.s-pickup__name { font-family: var(--serif); font-size: 2.4rem; font-weight: 400; margin: 0 0 4px; }
.s-pickup__latin { font-style: italic; color: var(--text-mid); font-size: 1rem; margin-bottom: 12px; }
.s-pickup__badge { display: inline-block; background: #c05080; color: #fff; font-size: .78rem; padding: 3px 12px; border-radius: 2px; margin-bottom: 16px; }
.s-pickup__desc { font-size: .95rem; line-height: 1.9; margin-bottom: 20px; }
.s-pickup__features { list-style: none; padding: 0; margin-bottom: 24px; display: flex; flex-direction: column; gap: 12px; }
.s-pickup__features li { font-size: .9rem; line-height: 1.7; padding-left: 8px; border-left: 3px solid #b8902a; }
.s-pickup__features li strong { display: block; font-weight: 600; margin-bottom: 2px; }
.s-pickup__char-title { font-family: var(--serif); font-size: 1.05rem; text-align: center; margin-bottom: 8px; padding: 6px 0; border-top: 1px solid #e0ddd8; border-bottom: 1px solid #e0ddd8; }
.s-pickup__char-body { font-size: .9rem; line-height: 1.85; margin-bottom: 20px; color: var(--text-mid); }
.s-pickup__scenes { list-style: none; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.s-pickup__scenes li { font-size: .85rem; line-height: 1.6; }
.s-pickup__scenes li span { display: block; font-weight: 600; font-size: .8rem; background: var(--bg-gray); padding: 2px 8px; margin-bottom: 4px; border-radius: 2px; }
.s-pickup-feature__inner h2 { font-family: var(--serif); font-size: 1.6rem; margin-bottom: 16px; font-weight: 300; }

.s-products-list { padding: 80px 0; background: var(--bg-gray); }
.s-products-list__item { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; margin-bottom: 64px; }
.s-products-list__item--rev .s-products-list__img { order: 2; }
.s-products-list__item--rev .s-products-list__body { order: 1; }
.s-products-list__img img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.s-products-list__body h3 { font-family: var(--serif); font-size: 1.3rem; margin-bottom: 16px; font-weight: 300; }
.s-products-list__body p { margin-bottom: 24px; }

/* お客様の声 */
.s-voices-intro { padding: 64px 0; background: var(--bg-gray); }
.s-voices { padding: 40px 0 80px; }
.s-voices__lead { text-align: center; max-width: 700px; margin: 0 auto; }
@media (max-width: 767px) { .pc-br { display: none; } }
.s-voice { margin-bottom: 0; padding: 80px 0; border-bottom: 1px solid #ddd; }
.s-voice:first-child { border-top: none; }
.s-voice__header, .s-voice__body { max-width: 750px; margin-left: auto; margin-right: auto; }
.s-voice__header {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-bottom: 28px;
}
.s-voice__logo { max-height: 80px; width: auto; flex-shrink: 0; }
.s-voice__shop { font-family: var(--serif); font-size: 1.4rem; font-weight: 300; margin: 0; }
.s-voice__body { margin-bottom: 32px; }
.s-voice__headline { font-family: var(--serif); font-size: 1.1rem; font-weight: 400; margin-bottom: 20px; line-height: 1.6; }
.s-voice p + p { margin-top: 12px; }
.s-voice .btn-outline { margin-top: 24px; }
.s-voice__photos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 32px; justify-items: center; }
.s-voice__photos img { width: 100%; }
.s-voice__photos:has(img:only-child) { grid-template-columns: 1fr; max-width: 560px; margin-left: auto; margin-right: auto; }
.s-voice__photos:has(img:nth-child(2):last-child) { grid-template-columns: repeat(2, 1fr); max-width: 760px; margin-left: auto; margin-right: auto; }
.s-voice__photos img { width: 100%; aspect-ratio: 1/1; object-fit: cover; }

/* バナーリンク */
.s-banners { }
.s-banners__grid { display: grid; grid-template-columns: repeat(2, 1fr); }
.s-banner {
  position: relative;
  background-size: cover;
  background-position: center;
  min-height: 360px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.s-banner__overlay {
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,.78);
}
@media (max-width: 767px) {
  .s-banner--logo { background-size: contain !important; background-repeat: no-repeat; background-color: #fff; }
}
.s-banner__inner {
  position: relative;
  z-index: 1;
  text-align: center;
  padding: 60px 48px;
  color: var(--text);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}
.s-banner__title { font-family: var(--serif); font-size: 1.5rem; font-weight: 400; letter-spacing: .1em; }
.s-banner__body { font-size: .9rem; line-height: 1.9; opacity: .85; max-width: 480px; }
.s-banner__btn {
  display: inline-block;
  margin-top: 8px;
  padding: 12px 32px;
  border: 1px solid var(--text);
  color: var(--text);
  font-family: var(--sans);
  font-size: .85rem;
  letter-spacing: .1em;
  text-decoration: none;
  transition: background .25s, color .25s;
}
.s-banner__btn:hover { background: var(--text); color: var(--white); }

/* 投稿詳細 */
.s-single-post { padding: 80px 0; }
.single-post__layout { display: grid; grid-template-columns: 1fr 260px; gap: 60px; align-items: start; }
@media (max-width: 900px) {
  .single-post__layout { grid-template-columns: 1fr; gap: 40px; }
}
.single-post__date { font-size: .85rem; color: var(--text-mid); margin-bottom: 12px; }
.single-post__title { font-family: var(--serif); font-size: clamp(1.3rem, 2vw, 1.8rem); font-weight: 400; letter-spacing: .06em; margin-bottom: 48px; padding-bottom: 24px; border-bottom: 1px solid #e0ddd8; }
.single-post__body { font-size: .95rem; line-height: 2; }
.single-post__body p + p { margin-top: 1.5em; }
.single-post__body h2 {
  font-family: var(--serif);
  font-size: 1.35rem;
  font-weight: 400;
  letter-spacing: .04em;
  line-height: 1.5;
  margin: 56px 0 24px;
  padding: 4px 0 4px 18px;
  border-left: 4px solid #b8902a;
}
.single-post__body h3 {
  font-family: var(--serif);
  font-size: 1.1rem;
  font-weight: 400;
  letter-spacing: .04em;
  margin: 40px 0 16px;
  padding-bottom: 8px;
  border-bottom: 1px solid #e0ddd8;
}
.single-post__body ul {
  list-style: none;
  padding: 0;
  margin: 20px 0;
}
.single-post__body ul li {
  position: relative;
  padding: 8px 0 8px 24px;
  border-bottom: 1px dashed #e0ddd8;
}
.single-post__body ul li::before {
  content: "✿";
  position: absolute;
  left: 0;
  color: #b8902a;
  font-size: .9em;
}
.single-post__body a {
  color: #b8902a;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.single-post__body a:hover { opacity: .7; }
.single-post__pagenav {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  margin-top: 56px;
  padding-top: 32px;
  border-top: 1px solid #e0ddd8;
}
.single-post__pagenav-item { flex: 1; min-width: 0; }
.single-post__pagenav-item--next { text-align: right; }
.single-post__pagenav-item a {
  display: inline-flex;
  flex-direction: column;
  gap: 6px;
  text-decoration: none;
  color: var(--text);
  transition: opacity .2s;
  max-width: 100%;
}
.single-post__pagenav-item a:hover { opacity: .6; }
.single-post__pagenav-label { font-size: .8rem; color: #b8902a; letter-spacing: .05em; }
.single-post__pagenav-title {
  font-size: .9rem;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.single-post__nav { margin-top: 40px; text-align: center; }
@media (max-width: 767px) {
  .single-post__pagenav { flex-direction: column; gap: 24px; }
  .single-post__pagenav-item--next { text-align: left; }
}
.sidebar-widget { background: var(--bg-gray); padding: 28px 24px; }
.sidebar-widget__title { font-family: var(--serif); font-size: 1rem; font-weight: 400; letter-spacing: .1em; margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid #e0ddd8; }
.sidebar-widget__list { list-style: none; padding: 0; margin: 0; }
.sidebar-widget__list li { padding: 8px 0; border-bottom: 1px solid #e0ddd8; font-size: .88rem; }
.sidebar-widget__list li:last-child { border-bottom: none; }
.sidebar-widget__list a { color: var(--text); text-decoration: none; }
.sidebar-widget__list a:hover { color: var(--bg-dark); }
.sidebar-archive + .sidebar-archive { border-top: 1px solid #e0ddd8; }
.sidebar-archive__year { list-style: none; padding: 10px 0; font-size: .88rem; font-family: var(--serif); letter-spacing: .05em; cursor: pointer; user-select: none; }
.sidebar-archive__year::-webkit-details-marker { display: none; }
.sidebar-archive__year::after { content: '▾'; float: right; transition: transform .2s; }
details.sidebar-archive[open] .sidebar-archive__year::after { transform: rotate(-180deg); }
.sidebar-widget__list--months { padding-left: 8px; margin-bottom: 8px; }
.archive-heading { font-family: var(--serif); font-size: 1rem; font-weight: 400; letter-spacing: .08em; color: var(--text-mid); margin-bottom: 24px; padding-bottom: 12px; border-bottom: 1px solid #e0ddd8; }

/* Clients */
.s-client-logos { padding: 80px 0; }
.s-client-logos__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-bottom: 40px; }
@media (max-width: 767px) { .s-client-logos__grid { grid-template-columns: 1fr; gap: 16px; } }
.s-client-logos__item { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 32px 24px; border: 1px solid #e0ddd8; text-align: center; }
.s-client-logos__item--placeholder { opacity: .45; }
.s-client-logos__logo { max-height: 64px; max-width: 120px; width: auto; object-fit: contain; }
.s-client-logos__logo--empty { display: block; width: 80px; height: 64px; background: #e8e5e0; }
.s-client-logos__name { font-family: var(--serif); font-size: .95rem; letter-spacing: .06em; }
.s-client-logos__link { font-size: .8rem; color: var(--text-mid); text-decoration: underline; text-underline-offset: 3px; }
.s-client-logos__link--none { text-decoration: none; color: #ccc; }
.s-client-logos__link:not(.s-client-logos__link--none):hover { color: var(--bg-dark); }
.s-client-logos__note { font-size: .8rem; color: var(--text-mid); text-align: center; }

/* About Us */
.s-message { padding: 80px 0; }
.s-message__inner { display: grid; grid-template-columns: 360px 1fr; gap: 60px; align-items: start; }
.s-message__photo img { width: 100%; }
.s-message__text h2 { font-family: var(--serif); font-size: clamp(1.4rem, 2.5vw, 2rem); margin-bottom: 24px; font-weight: 300; }
.s-message__text p + p { margin-top: 14px; }
.s-message__sign { margin-top: 32px; font-family: var(--serif); font-size: 1.1rem; }

.s-company-info { padding: 80px 0; background: var(--bg-gray); }
.s-company-table { width: 100%; max-width: 700px; border-collapse: collapse; margin: 0 auto; }
.s-company-table th,
.s-company-table td { padding: 16px 20px; border-bottom: 1px solid #ddd; text-align: left; }
.s-company-table th { width: 180px; font-weight: 500; color: var(--text-mid); }
@media (max-width: 767px) {
  .s-company-table th,
  .s-company-table td { display: block; width: 100%; border-bottom: none; padding: 4px 0; }
  .s-company-table th { color: var(--text-mid); font-size: .85rem; padding-top: 16px; }
  .s-company-table td { padding-bottom: 16px; border-bottom: 1px solid #ddd; }
}

.s-farm-gallery { padding: 80px 0; }
.s-farm-gallery__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.s-farm-gallery__grid img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }

/* お問い合わせ */
.s-contact { padding: 80px 0; }
.s-contact__inner { max-width: 700px; }
.s-contact__lead { margin-bottom: 40px; }
.s-contact__tel { text-align: center; background: var(--bg-gray); padding: 24px 20px; margin-bottom: 40px; }
.s-contact__tel-label { font-size: .85rem; color: var(--text-mid); letter-spacing: .08em; margin-bottom: 6px; }
.s-contact__tel-num { font-family: var(--serif); font-size: 1.5rem; letter-spacing: .04em; margin-bottom: 6px; }
.s-contact__tel-num a { color: var(--text); text-decoration: none; }
.s-contact__tel-note { font-size: .8rem; color: var(--text-mid); }
.s-contact__confirm-lead { text-align: left; margin-bottom: 28px; font-size: .95rem; }
.s-contact__confirm-list { display: grid; grid-template-columns: 180px 1fr; gap: 0; border-top: 1px solid #e0ddd8; margin-bottom: 32px; }
.s-contact__confirm-list dt { padding: 16px 12px; background: var(--bg-gray); border-bottom: 1px solid #e0ddd8; font-size: .9rem; color: var(--text-mid); }
.s-contact__confirm-list dd { padding: 16px 12px; border-bottom: 1px solid #e0ddd8; font-size: .95rem; line-height: 1.8; word-break: break-all; }
.s-contact__confirm-actions { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; }
/* reCAPTCHA v3 バッジ非表示（代わりに帰属テキストを表示） */
.grecaptcha-badge { visibility: hidden !important; }
.s-contact__recaptcha-note { font-size: .78rem; color: var(--text-mid); line-height: 1.7; margin-top: 20px; text-align: left; }
.s-contact__recaptcha-note a { color: var(--text-mid); text-decoration: underline; }
@media (max-width: 600px) {
  .s-contact__confirm-list { grid-template-columns: 1fr; }
  .s-contact__confirm-list dt { border-bottom: none; }
}
.s-contact__field { margin-bottom: 28px; }
.s-contact__field label { display: block; font-size: .85rem; margin-bottom: 8px; font-weight: 500; }
.required { color: #c00; font-size: .75rem; margin-left: 8px; }
.s-contact__field input,
.s-contact__field textarea {
  width: 100%;
  border: 1px solid #ccc;
  padding: 12px 16px;
  font-size: 1rem;
  font-family: var(--sans);
  border-radius: 2px;
  transition: border-color .2s;
}
.s-contact__field input:focus,
.s-contact__field textarea:focus { outline: none; border-color: var(--bg-dark); }
.s-contact__submit { margin-top: 28px; }
.s-contact .wpcf7-submit:disabled,
.s-contact button[type="submit"]:disabled,
.s-contact .btn-dark.is-disabled { opacity: .4; cursor: not-allowed; }
.s-contact__consent { text-align: center; margin: 24px 0 8px; font-size: .9rem; }
.s-contact__consent label { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; }
.s-contact__consent input { width: 16px; height: 16px; }
.s-contact__consent a { color: var(--text); text-decoration: underline; }
/* Thanks page */
.s-thanks { padding: 80px 0; }
.s-thanks__inner { max-width: 680px; margin: 0 auto; text-align: center; }
.s-thanks__message { font-size: 1rem; line-height: 2; margin-bottom: 48px; }
.s-thanks__back { margin-top: 40px; }
.s-contact__line { margin-top: 48px; padding-top: 40px; border-top: 1px solid #ddd; text-align: center; }
.s-contact__line p { margin-bottom: 16px; }
.btn-line {
  display: inline-block;
  background: #06c755;
  color: #fff;
  padding: 14px 32px;
  font-size: .9rem;
  border-radius: 4px;
}
.s-contact__tel { margin-top: 40px; text-align: center; padding-top: 32px; border-top: 1px solid #ddd; }
.s-contact__tel-note { font-size: .85rem; color: var(--text-mid); margin: 8px 0; }
.s-contact__hours { font-size: .9rem; }

/* ニュース */
.s-news-list { padding: 80px 0; }
.s-news-list__items { display: flex; flex-direction: column; gap: 0; }
.s-news-list__item a {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  align-items: center;
  padding: 24px 0;
  border-bottom: 1px solid #eee;
  transition: opacity .2s;
}
.s-news-list__item a:has(.s-news-list__thumb) {
  grid-template-columns: 160px 1fr;
}
.s-news-list__item a:hover { opacity: .7; }
.s-news-list__thumb img { width: 160px; height: 100px; object-fit: cover; }
.s-news-list__date { font-size: .8rem; color: var(--text-mid); }
.s-news-list__cat { font-size: .75rem; background: var(--bg-dark); color: #fff; padding: 2px 10px; margin-left: 12px; }
.s-news-list__title { margin-top: 8px; }
.s-news-list__empty { text-align: center; padding: 60px; color: var(--text-mid); }
.s-news-list__pager { margin-top: 48px; text-align: center; }

/* CTAバンド */
.s-cta-band { padding: 80px 0; background: var(--bg-dark); color: var(--white); text-align: center; }
.s-cta-band > .container > p { margin-bottom: 32px; font-size: 1rem; }
.s-cta-band .btn-dark { background: var(--white); color: var(--bg-dark); margin: 8px; }
.s-cta-band .btn-dark:hover { background: #eee; }

.btn-outline {
  display: inline-block;
  border: 1px solid currentColor;
  padding: 16px 40px;
  font-size: .8rem;
  letter-spacing: .1em;
  transition: all .2s;
  margin: 8px;
}
.btn-outline:hover { background: var(--white); color: var(--bg-dark); }

/* PC/SP 表示切り替え */
.pc-br { display: inline; }
.sp-br { display: none; }
@media (max-width: 900px) {
  .pc-br { display: none; }
  .sp-br { display: block; }
}

/* レスポンシブ */
@media (max-width: 900px) {
  .s-what__inner,
  .s-brand__inner,
  .s-producer__inner,
  .s-message__inner,
  .s-pickup-feature__inner,
  .s-method__item,
  .s-products-list__item,
  .sub-hero--split { grid-template-columns: 1fr; }
  .sub-hero--split .sub-hero__img-col { display: none; }
  .s-scene__grid { grid-template-columns: repeat(2, 1fr); }
  .s-quality__grid { grid-template-columns: 1fr; }
  .s-voice__photos { grid-template-columns: 1fr 1fr; }
  .s-farm-gallery__grid { grid-template-columns: repeat(2, 1fr); }
  .s-method__item--rev .s-method__item-img,
  .s-method__item--rev .s-method__item-body,
  .s-products-list__item--rev .s-products-list__img,
  .s-products-list__item--rev .s-products-list__body { order: unset; }

  .site-logo { font-size: .75rem; line-height: 1.4; gap: 8px; }
  .site-logo__pc { display: none; }
  .site-logo__sp { display: inline; }
  .site-logo__img { height: 56px; }
  .site-header { padding: 0 16px 0 0; height: 70px; }
  .s-banners__grid { grid-template-columns: 1fr; }
  .hero__content { padding-top: 5vh; gap: 3vh; }
  .hero__tagline { margin-top: 2vh; }
  .hero { background-attachment: scroll; }

  /* トップページ 2カラム → 1カラム */
  .s-about__row1,
  .s-about__row1b,
  .s-about__row2,
  .s-movie__row,
  .s-forbiz__row,
  .s-testimonials__inner { grid-template-columns: 1fr; gap: 32px; }
  .s-testimonials__photo { min-height: unset; }
  .s-testimonials__photo img { height: auto; max-height: 300px; }

  /* 画像左・テキスト右 → スマホではテキストを先に */
  .s-about__row1 { margin-bottom: 32px; }
  .s-about__row1 .s-about__diagram { order: 2; }
  .s-about__row1 .s-about__text1  { order: 1; align-items: flex-start; text-align: left; }
  body.home .s-about__row1 .s-about__text1 { align-items: center; text-align: center; }
  .s-about__row2 .s-about__photo  { order: 2; }
  .s-about__row2 .s-about__text2  { order: 1; }
  .s-forbiz__row .s-forbiz__img   { order: 2; }
  .s-forbiz__row .s-forbiz__body  { order: 1; }

  .s-lineup__images { flex-direction: column; align-items: center; }
  .s-lineup__images img { width: 100%; max-width: 100%; }
  .s-lineup__text { text-align: center; }

  /* ボタン中央揃え */
  .btn-dark {
    display: block;
    width: fit-content;
    margin-left: auto;
    margin-right: auto;
  }

}


/* ページTOPへ戻る */
.back-to-top {
  position: fixed;
  right: 24px;
  bottom: 32px;
  width: 44px;
  height: 44px;
  background: #333;
  color: #fff;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s;
  z-index: 900;
}
.back-to-top.is-visible {
  opacity: 1;
  pointer-events: auto;
}
.back-to-top:hover { opacity: .7; }
@media (max-width: 900px) {
  .back-to-top { right: 12px; bottom: 16px; }
}

/* =============================================
   FOOTER
   ============================================= */
.site-footer {
  background: #e2dfd9;
  color: var(--text);
  padding: 60px 48px 40px;
}
.site-footer__inner {
  max-width: 1200px;
  margin: 0 auto;
}
.site-footer__body {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 48px;
  padding-bottom: 40px;
  border-bottom: 1px solid #ddd;
  margin-bottom: 24px;
}
.site-footer__logo-link { display: inline-block; flex-shrink: 0; }
.site-footer__logo { width: 140px; height: auto; display: block; }
.site-footer__info { display: flex; align-items: center; gap: 32px; }
.site-footer__info-text { display: flex; flex-direction: column; gap: 4px; }
.site-footer__brand {
  font-family: var(--serif);
  font-size: 1.1rem;
  letter-spacing: .12em;
  margin-bottom: 8px;
}
.site-footer__company {
  font-size: .8rem;
  letter-spacing: .08em;
  margin-bottom: 12px;
  color: var(--text-mid);
}

.site-footer__address,
.site-footer__tel,
.site-footer__hours {
  font-size: .78rem;
  color: var(--text-mid);
  line-height: 1.8;
  letter-spacing: .04em;
}
.site-footer__tel a { color: var(--text-mid); text-decoration: none; }
.site-footer__tel a:hover { text-decoration: underline; }
.site-footer__sns-col { text-align: right; }
.site-footer__follow {
  font-family: var(--sans);
  font-size: .7rem;
  letter-spacing: .35em;
  color: var(--text-mid);
  margin-bottom: 12px;
  text-transform: uppercase;
}
.site-footer__sns {
  display: flex;
  justify-content: flex-end;
  gap: 24px;
}
.site-footer__sns-link {
  font-size: .78rem;
  color: var(--text);
  text-decoration: underline;
  text-underline-offset: 3px;
  letter-spacing: .04em;
}
.site-footer__links {
  display: flex;
  gap: 24px;
  margin-bottom: 20px;
}
.site-footer__links a {
  font-size: .75rem;
  color: var(--text-mid);
  text-decoration: none;
  letter-spacing: .06em;
}
.site-footer__links a:hover { color: var(--text); }
.site-footer__copy {
  font-size: .7rem;
  color: var(--text-mid);
  letter-spacing: .08em;
}
@media (max-width: 900px) {
  .site-footer__body { flex-direction: column; gap: 32px; }
  .site-footer__info { flex-direction: column; align-items: flex-start; gap: 16px; }
  .site-footer__sns-col { text-align: left; }
  .site-footer__sns { justify-content: flex-start; }
}

/* ページコンテンツ（プライバシーポリシー等） */
.entry-content h2 { margin-top: 48px; margin-bottom: 16px; font-family: var(--serif); font-size: 1.2rem; font-weight: 400; letter-spacing: .06em; padding-bottom: 8px; border-bottom: 1px solid #e0ddd8; }
.entry-content h3 { margin-top: 32px; margin-bottom: 12px; font-family: var(--serif); font-size: 1rem; font-weight: 400; }
.entry-content p { margin-bottom: 16px; line-height: 1.9; }
.entry-content ul { list-style: disc; padding-left: 1.6em; margin-bottom: 16px; }
.entry-content ul li { margin-bottom: 8px; line-height: 1.9; }

/* =============================================
   SITEMAP
   ============================================= */
.sub-hero--simple {
  background: var(--bg-gray);
  height: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sub-hero--simple .sub-hero__content { position: static; transform: none; text-align: center; }
.sub-hero--simple .sub-hero__label { color: var(--text-mid); }
.sub-hero--simple .sub-hero__title { color: var(--text); }

.s-sitemap { padding: 80px 0 100px; }
.sitemap-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 48px 64px;
}
.sitemap-section__title {
  font-family: var(--serif);
  font-size: .85rem;
  font-weight: 400;
  letter-spacing: .18em;
  color: var(--text-mid);
  text-transform: uppercase;
  margin-bottom: 16px;
  padding-bottom: 10px;
  border-bottom: 1px solid #ddd;
}
.sitemap-section__list li {
  border-bottom: 1px solid #ece9e5;
}
.sitemap-section__list a {
  display: block;
  padding: 10px 0 10px 12px;
  font-size: .9rem;
  letter-spacing: .04em;
  color: var(--text);
  position: relative;
  transition: color .2s, padding-left .2s;
}
.sitemap-section__list a::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 4px;
  background: #b8902a;
  border-radius: 50%;
}
.sitemap-section__list a:hover { color: #b8902a; padding-left: 16px; }

@media (max-width: 767px) {
  .sitemap-grid { grid-template-columns: 1fr; gap: 32px; }
  .s-sitemap { padding: 48px 0 64px; }
}

/* =============================================
   PRIVACY POLICY
   ============================================= */
.container--narrow { max-width: 860px; }
.s-privacy { padding: 80px 0 100px; }
@media (max-width: 767px) { .s-privacy { padding: 48px 0 64px; } }

.s-method__card ul { list-style: disc; padding-left: 1.4em; margin-top: 8px; }
.s-method__card ul li { font-size: .9rem; line-height: 1.8; margin-bottom: 4px; }

/* 農法ページ チェックリスト */
.s-intro__checklist { list-style: none; padding: 0; margin: 24px auto 0; display: inline-flex; flex-direction: column; gap: 12px; text-align: left; }
.s-intro__checklist li { font-size: 1rem; letter-spacing: .04em; display: flex; align-items: center; gap: 10px; }
.s-intro__check { color: #b8902a; font-size: 1.1rem; font-weight: 700; }

/* お客様の声 タグ */
.s-voice__tag { display: inline-block; font-family: var(--sans); font-size: .72rem; font-weight: 400; letter-spacing: .06em; color: var(--text-mid); border: 1px solid #ccc; padding: 2px 8px; margin-left: 8px; vertical-align: middle; }

/* 代表メッセージ 沿革箇条書き */
.s-message__history { list-style: none; padding: 0; margin-bottom: 28px; display: flex; flex-direction: column; gap: 10px; }
.s-message__history li { padding-left: 20px; position: relative; font-size: .9rem; line-height: 1.8; letter-spacing: .04em; }
.s-message__history li::before { content: '●'; position: absolute; left: 0; color: #b8902a; font-size: .6em; top: .45em; }
