/* ==========================================================================
   下層ページ共通 + 各ページ  sub.css
   ========================================================================== */

/* ---------- Footer 上の 56px 帯 (Figma: Footer Outer Wrap 696px のページ) ---------- */
.page-products .site-footer, .page-product-detail .site-footer, .page-news .site-footer, .page-recruit .site-footer {
  padding-top: 56px;
  background: linear-gradient(to bottom, var(--footer-wave-color) 56px, var(--color-footer) 56px);
}
.page-products .site-footer__wave, .page-product-detail .site-footer__wave, .page-news .site-footer__wave, .page-recruit .site-footer__wave { top: 56px; }

/* ---------- Sub hero ---------- */
.sub-hero { background: #fff; }
.sub-hero__inner {
  position: relative;
  height: 385px;
  max-width: var(--w-base);
  margin: 0 auto;
}
.sub-hero__accent {
  position: absolute;
  left: 0;
  top: 105px;
  width: 460px;
  height: 280px;
  background: var(--color-footer);
}
.sub-hero__mv {
  position: absolute;
  left: 239px;
  top: -3px;
  width: 1200px;
  height: 300px;
  overflow: hidden;
  background: var(--color-bg-cream);
}
.sub-hero__img {
  position: absolute;
  left: 0;
  top: -299px;
  width: 1200px;
  height: 898px;
  max-width: none;
  object-fit: cover;
}
.sub-hero__mv::after { content: none; }
.sub-hero__title {
  position: absolute;
  left: 65px;
  top: 150px;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: 256px;
}
.sub-hero__en {
  font-weight: 700;
  font-size: 12px;
  line-height: 17px;
  color: var(--color-green-1);
  text-align: center;
  align-self: flex-start;
  width: 58px;
}
.sub-hero__ja {
  font-family: var(--font-mincho);
  font-weight: 400;
  font-size: 64px;
  line-height: 93px;
  color: #fff;
}

/* ---------- Breadcrumb ---------- */
.breadcrumb {
  background: #f9f8f6;
  height: 48px;
  display: flex;
  align-items: center;
}
.breadcrumb__list {
  list-style: none;
  display: flex;
  align-items: center;
  width: 100%;
  max-width: var(--w-base);
  margin: 0 auto;
  padding: 0 80px;
  font-size: 13px;
  line-height: 19px;
  letter-spacing: .26px;
  color: #617078;
}
.breadcrumb__list li + li::before { content: "　/　"; }
.breadcrumb__list a:hover { text-decoration: underline; }

/* ---------- Page navigation (pills) ---------- */
.page-company { --header-h: 100px; }
.page-company [id] { scroll-margin-top: var(--sticky-h, 204px); }   /* 固定ヘッダー+ナビの分だけ着地位置を下げる */
@media (max-width: 767px) { .page-company { --header-h: 72px; } }
.page-nav {
  position: sticky;            /* ヘッダーの直下に追従 */
  top: var(--header-h, 100px);
  z-index: 90;
  height: 104px;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}
.page-nav__list {
  display: flex;
  align-items: center;
  gap: 24px;
}
.page-nav__item {
  min-width: 140px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 8px 16px;
  border: 0.7px solid var(--color-green-1);
  border-radius: 100px;
  background: #fff;
  font-family: var(--font-mincho);
  font-size: 18px;
  line-height: 26px;
  color: var(--color-green-1);
  white-space: nowrap;
  transition: background .2s, color .2s;
}
.page-nav__item .arrow--s { width: 11px; height: 12px; }
.page-nav__item.is-active,
.page-nav__item:hover {
  background: var(--color-green-1);
  border-color: var(--color-navy);
  color: #fff;
}
.page-nav__item.is-active .arrow, .page-nav__item:hover .arrow { color: #fff; }

/* ---------- Section heading variants ---------- */
.section-heading--sub .section-heading__en { font-family: var(--font-sans); line-height: 19px; }
.section-heading__lead--tight { line-height: 23px; }
.section-heading--line::after {
  content: "";
  display: block;
  width: 40px;
  height: 2px;
  background: var(--color-green-1);
}
.section-heading--sub .section-heading__ja { line-height: 64px; }
.section-heading--sub .section-heading__ja--lg, .section-heading__ja--lg { font-size: 48px; line-height: 70px; }

/* ==========================================================================
   会社情報
   ========================================================================== */

/* ---------- Business ---------- */
.business { background: var(--color-bg-mint); }
.business__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
  max-width: var(--w-base);
  margin: 0 auto;
  padding: 120px 80px;
}
.business-list {
  display: flex;
  flex-direction: column;
  gap: 56px;
  width: 1280px;
  padding-bottom: 53px;
}
.business-item__body .btn { align-self: flex-start; }
.business-item {
  position: relative;
  display: flex;
  align-items: flex-end;
  gap: 80px;
  width: 1183px;
  height: 530px;
  margin-left: -7px;            /* Figma: group x=73 (section pad 80) */
  margin-top: 0;
}
.business-item::before {
  /* 白いカード (1100x500) */
  content: "";
  position: absolute;
  left: 194px;
  top: 83px;
  width: 1100px;
  height: 500px;
  background: #fff;
}
.business-item--reverse {
  flex-direction: row-reverse;
  margin-left: 86px;            /* Figma: group x=90 + Frame366 x=76 */
}
.business-item--reverse::before { left: -76px; top: 94px; }
.business-item + .business-item { margin-top: 53px; } /* 583/594 group heights との差分吸収 */
.business-item--reverse + .business-item { margin-top: 64px; }
.business-item__image {
  position: relative;
  z-index: 1;
  flex: 0 0 530px;
  width: 530px;
  height: 530px;
  overflow: hidden;
  background: #fff;
}
.business-item__image img { width: 100%; height: 100%; object-fit: cover; }
.business-item__image--map img {
  position: absolute;
  left: -96px;
  top: 36px;
  width: 688px;
  height: 458px;
  max-width: none;
  object-fit: cover;
}
.business-item__body {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 24px;
  width: 573px;
  height: 405px;                /* Figma Frame365 固定高 (上揃え) */
  color: var(--color-navy);
}
.business-item--02 .business-item__body { height: 378px; }
.business-item--03 .business-item__body { height: 375px; }
.business-item--04 .business-item__body { height: 401px; }
.business-item--05 .business-item__body { height: 411px; }
.business-item__head { display: flex; flex-direction: column; }
.business-item__num { font-size: 16px; line-height: 1.8; color: var(--color-green-1); }
.business-item__title {
  font-family: var(--font-mincho);
  font-weight: 400;
  font-size: 40px;
  line-height: 1.8;
}
.business-item__catch {
  font-family: var(--font-mincho);
  font-size: 24px;
  line-height: 1.8;
  letter-spacing: 1.2px;
}
.business-item__text { font-size: 16px; line-height: 1.8; letter-spacing: .8px; }
.business-item__watermark {
  position: absolute;
  right: -90px;
  bottom: -55px;
  font-family: 'Noto Serif JP', serif;
  font-size: 48px;
  line-height: 1.8;
  color: #d2e7dc;
  white-space: nowrap;
  pointer-events: none;
  z-index: 2;
}
.business-item--reverse .business-item__watermark { right: auto; left: -62px; bottom: -56px; }

/* ---------- Philosophy ---------- */
.philosophy { background: var(--color-bg-beige); overflow: hidden; }
.philosophy__inner {
  position: relative;
  display: flex;
  align-items: center;
  gap: 56px;
  height: 660px;
  max-width: var(--w-base);
  margin: 0 auto;
  padding: 0 120px;
}
.philosophy__image {
  flex: 0 0 881px;
  width: 881px;
  height: 660px;
  margin-left: -208px;          /* Figma: image x=-88 */
}
.philosophy__image img { width: 100%; height: 100%; object-fit: fill; }
.philosophy__panel {
  flex: 0 0 680px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 680px;
  padding: 32px;
  color: var(--color-navy);
}
.philosophy__title {
  font-family: var(--font-mincho);
  font-weight: 400;
  font-size: 48px;
  line-height: 70px;
  color: var(--color-green-1);
}
.philosophy__catch {
  font-family: var(--font-mincho);
  font-size: 30px;
  line-height: 1.25;
  letter-spacing: 1.5px;
}
.philosophy__text { font-size: 16px; line-height: 2; letter-spacing: .64px; max-width: 491px; }
.philosophy__watermark {
  position: absolute;
  left: 313px;
  top: 570px;
  font-family: 'Noto Serif JP', serif;
  font-weight: 700;
  font-size: 48px;
  line-height: 1.8;
  color: #d2e7dc;
  white-space: nowrap;
  pointer-events: none;
}

/* ---------- About ---------- */
.about { background: var(--color-bg-mint); }
.about__inner {
  display: flex;
  align-items: center;
  gap: 64px;
  height: 760px;
  max-width: var(--w-base);
  margin: 0 auto;
  padding: 112px 120px;
}
.about__content {
  flex: 0 0 560px;
  display: flex;
  flex-direction: column;
  gap: 32px;
  width: 560px;
}
.about__heading { display: flex; flex-direction: column; gap: 12px; }
.about__heading .section-heading__en { font-family: var(--font-sans); }
.about__title {
  font-family: var(--font-mincho);
  font-weight: 400;
  font-size: 38px;
  line-height: 1.5;
  color: var(--color-navy-2);
}
.about__text { font-size: 16px; line-height: 2; letter-spacing: .48px; color: var(--color-navy); }
.about__values { display: flex; gap: 16px; }   /* Figma実配置: x=120/306/492 (170+16) */
.value-circle {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 28px;
  flex: 0 0 170px;
  width: 170px;
  height: 170px;
  padding: 18px 10px 0;   /* Figma実測: 01 が枠上端+20 (border 2 込み), ラベル +68 */
  border: 2px solid #2e8a59;
  border-radius: 100px;
  font-family: var(--font-mincho);
  text-align: center;
}
.value-circle__num { font-size: 14px; line-height: 20px; color: #2e8a59; }
.value-circle__label { font-size: 22px; line-height: 32px; color: #143b5c; white-space: nowrap; }
.about__photo { flex: 1 1 0; height: 536px; overflow: hidden; }
.about__photo img { width: 712px; max-width: none; height: 100%; object-fit: fill; }


/* ---------- Strength (Figma 204:18) ---------- */
.strength { background: var(--color-bg-mint); }
.strength__inner {
  display: flex;
  flex-direction: column;
  gap: 56px;
  max-width: var(--w-base);
  margin: 0 auto;
  padding: 112px 120px;
}
.strength__heading { display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: center; }
.strength__en { font-family: var(--font-sans); font-weight: 700; font-size: 13px; line-height: 19px; letter-spacing: .26px; color: var(--color-green-1); }   /* Figma ls 2% */
.strength__title { font-family: var(--font-mincho); font-weight: 400; font-size: 48px; line-height: 70px; color: #153a5b; }
.strength__lead { font-size: 16px; line-height: 1.8; color: #153a5b; }
.strength__list { display: flex; gap: 16px; }
.strength-card {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  min-height: 228px;
  padding: 24px;
  background: #fff;
  text-align: center;
  color: #153a5b;
}
.strength-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 1px solid var(--color-green-1);
  border-radius: 50%;
  color: var(--color-green-1);
}
.strength-card__title { font-family: var(--font-mincho); font-weight: 400; font-size: 20px; line-height: 29px; }
.strength-card__text { font-size: 14px; line-height: 1.8; }

/* ---------- CEO message ---------- */
.message { position: relative; background: #fff; }
.message::before {
  content: "";
  position: absolute;
  left: 0; right: 0;
  top: 277px;
  bottom: 0;
  background: var(--color-bg-mint);
  /* Figma Rectangle85: M0 0 L1440 369 L1440 624 L0 624 — 右上が斜めに切れた形 */
  clip-path: polygon(0 0, 100% 59.14%, 100% 100%, 0 100%);
}
.message__inner {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: var(--w-base);
  margin: 0 auto;
  padding: 112px 120px 49px;
}
.message__inner .section-heading { gap: 12px; }
.message__card {
  display: flex;
  gap: 32px;
  width: 1200px;
  padding: 48px;   /* Figma: コンテナに塗りなし (白カードではない) */
}
.message__photo { flex: 0 0 384px; width: 384px; height: 465px; }
.message__photo img { width: 100%; height: 100%; object-fit: fill; }
.message__body {
  flex: 0 0 688px;   /* Figma Frame356 = 688 (本文テキストのみ 717 ではみ出す) */
  width: 688px;
  display: flex;
  flex-direction: column;
  gap: 32px;
  color: var(--color-navy);
}
.message__catch { font-family: var(--font-mincho); font-size: 32px; line-height: 1.4; }
.message__text { display: flex; flex-direction: column; gap: 32px; width: 717px; max-width: none; font-size: 16px; line-height: 2; letter-spacing: .8px; }
.message__sign {
  display: flex;
  justify-content: flex-end;
  align-items: baseline;
  gap: 8px;
  padding-top: 20px;
  border-top: 1px solid var(--color-border-cream);
}
.message__role { font-size: 15px; line-height: 22px; }
.message__name { font-family: var(--font-mincho); font-size: 28px; line-height: 41px; }

/* ---------- Company profile ---------- */
.profile { background: var(--color-bg-beige); }
.profile__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
  max-width: var(--w-base);
  margin: 0 auto;
  padding: 112px 220px;
}
.profile__grid { display: flex; gap: 24px; width: 100%; }
.profile-table {
  flex: 0 0 560px;
  width: 560px;
  border-radius: 12px;
  overflow: hidden;
}
.profile-table__row {
  display: flex;
  gap: 32px;
  padding: 20px 0 19px;          /* Figma: 行高67 (stroke内側) */
  border-bottom: 1px solid #dde5e6;
}
.profile-table__row dt {
  flex: 0 0 180px;
  width: 180px;
  font-weight: 600;
  font-size: 14px;
  line-height: 20px;
  color: #08727a;
}
.profile-table__row dd {
  flex: 1 1 0;
  margin: 0;
  font-size: 15px;
  line-height: 1.8;
  color: var(--color-navy);
}
.profile__map {
  flex: 1 1 0;
  height: 560px;
  background: #e5e7eb;
  overflow: hidden;
}
.profile__map iframe { display: block; width: 100%; height: 100%; }

/* ---------- CSR ---------- */
.csr { background: var(--color-bg-mint); }
.csr__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
  max-width: var(--w-base);
  margin: 0 auto;
  padding: 112px 120px;
}
.csr__rows { display: flex; flex-direction: column; align-items: center; gap: 40px; width: 1192px; }
.csr-list { display: flex; gap: 24px; width: 100%; }
.csr-list--center { justify-content: center; gap: 64px; }   /* 2026-10-21: 本文が長くなったため高さ固定を解除 */
.csr-card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 280px;
  min-height: 380px;
  color: var(--color-navy);
}
.csr-card__image { width: 280px; height: 214px; overflow: hidden; }
.csr-card__image img { width: 100%; height: 100%; object-fit: cover; }
.csr-card__image--stretch img { object-fit: fill; }
.csr-card__image--placeholder { background: #c4c4c4; }
.csr-card__title { font-weight: 600; font-size: 18px; line-height: 1.5; }
.csr-card__text { font-size: 12px; line-height: 1.8; }


/* ==========================================================================
   商品一覧
   ========================================================================== */
.breadcrumb--mint { background: var(--color-bg-mint); }
.page-products { background: var(--color-bg-mint); --footer-wave-color: var(--color-bg-mint); }
.page-title {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 80px 80px 48px;
  text-align: center;
  background: var(--color-bg-mint);
}
.page-title__en { font-weight: 700; font-size: 18px; line-height: 26px; letter-spacing: 1.08px; color: var(--color-green-1); }
.page-title__ja { font-family: var(--font-mincho); font-weight: 400; font-size: 40px; line-height: 58px; color: var(--color-navy); }
.page-title__lead { font-family: var(--font-inter); font-size: 24px; line-height: 1.2; color: var(--color-navy); }

.catalog { background: var(--color-bg-mint); }
.catalog__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 1300px;
  margin: 0 auto;
  padding-bottom: 0;
}
.catalog-tabs { display: flex; gap: 40px; }
.catalog-tab {
  width: 200px;
  height: 73px;
  border: 1px solid var(--color-green-1);
  border-bottom: 0;
  background: #fff;
  font-family: var(--font-mincho);
  font-size: 20px;
  line-height: 29px;
  color: #000;
  text-align: center;
  transition: background .2s, color .2s;
}
.catalog-tab.is-active, .catalog-tab:hover { background: var(--color-green-1); color: #fff; }
.catalog-panel {
  display: flex;
  flex-direction: column;
  align-items: flex-start;          /* Figma: 1216px の列が左詰め (x=103) */
  gap: 42px;
  width: 100%;
  padding: 99px 32px;               /* border 1px + 32px = Figma pad 33 */
  background: #fff;
  border: 1px solid var(--color-green-1);
}
.catalog-filters { display: flex; flex-direction: column; align-items: center; gap: 40px; width: 1216px; }
.catalog-filters[hidden] { display: none; }
.catalog-filters[data-panel="category"] { min-height: 53px; }   /* Figma 選択肢 frame = 53px */
.catalog-filters--concern { gap: 24px; }   /* Figma②: 選択肢3段 gap24, 枠内センター */
.catalog-filters[data-panel="brand"] { width: 1234px; margin-bottom: -2px; }   /* ③は gap 40 */         /* 絞り込みは枠内センター、ブランド紹介は 1234px */
.catalog-panel .pagination { width: 1216px; }
.filter-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 16px;
  width: 1036px;
}
.filter-list--narrow { width: 874px; gap: 10px; }
.filter-list--left { width: 616px; justify-content: flex-start; }
.filter-pill {
  display: inline-flex;
  align-items: center;
  padding: 7px 15px;                /* + border 1px = Figma 8/16, 高さ42 */
  border: 1px solid var(--color-green-1);
  border-radius: 999px;
  background: #fff;
  font-family: var(--font-mincho);
  font-size: 18px;
  line-height: 26px;
  color: var(--color-green-1);
  white-space: nowrap;
  transition: background .2s, color .2s;
}
.filter-pill--ls { letter-spacing: .9px; padding-right: 14px; }   /* Figma は末尾の字間を含めない */
.filter-pill.is-active, .filter-pill:hover { background: var(--color-green-1); color: #fff; }
.brand-feature--catalog { width: 1234px; }
.brand-feature--catalog .brand-feature__story { height: 420px; }
.brand-feature--catalog .brand-feature__watermark { left: 340px; }

.product-list--grid {
  display: grid;
  grid-template-columns: repeat(4, 292px);
  gap: 24px 16px;
  width: 1216px;
}
.product-list--grid .product-card a { width: 100%; }
.catalog-panel .pagination { margin-top: 18px; }   /* 42 → 60 */

.pagination { display: flex; align-items: center; justify-content: center; gap: 12px; }
.pagination__item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border: 0.5px solid var(--color-border-cream);
  border-radius: 100px;
  background: #fff;
  font-size: 16px;
  line-height: 19px;
  color: var(--color-navy);
  transition: background .2s, color .2s;
}
.pagination__item.is-current { background: var(--color-green-1); border-color: var(--color-green-1); font-weight: 700; color: #fff; }
a.pagination__item:hover { background: var(--color-green-1); border-color: var(--color-green-1); color: #fff; }
a.pagination__item:hover .arrow { color: #fff; }
.pagination__item .arrow { width: 14px; height: 14px; color: var(--color-navy); }
.pagination__item .arrow::before { width: 10px; height: 10px; }
.arrow--prev::before { transform: rotate(150deg); }


/* ==========================================================================
   商品詳細
   ========================================================================== */
.page-product-detail { background: var(--color-bg-mint); --footer-wave-color: var(--color-bg-mint); }
.section-heading__en--ls { letter-spacing: 1.56px; }
.section-heading--accent::after {
  content: "";
  display: block;
  width: 48px;
  height: 2px;
  background: var(--color-green-2);
}
.product-overview { background: var(--color-bg-mint); padding: 38px 80px 88px; }
.product-main {
  display: flex;
  flex-direction: column;
  gap: 72px;
  max-width: 1280px;
  margin: 0 auto;
  padding: 56px;
  background: #fff;
  box-shadow: inset 0 0 0 1px #c9ded5;   /* Figma stroke inside */
}
.product-main__top { display: flex; gap: 32px; }
.product-gallery { display: flex; flex-direction: column; align-items: center; gap: 20px; width: 540px; flex: 0 0 540px; }
.product-gallery__main {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 480px;
  height: 462px;
  background: #f8f8f1;
  overflow: hidden;
}
.product-gallery__main img { width: 294px; height: 362px; object-fit: contain; }
.product-gallery__thumbs { display: flex; gap: 20px; }
.product-gallery__thumb { display: block; width: 120px; height: 120px; background: #d9d9d9; border: 2px solid transparent; }
.product-gallery__thumb.is-active { border-color: transparent; }
.product-gallery__note { font-size: 12px; line-height: 17px; color: var(--color-text); }
.product-info { flex: 1 1 0; display: flex; flex-direction: column; gap: 20px; }
.product-info__cat {
  align-self: flex-start;
  padding: 5px 16px;
  border-radius: 100px;
  background: var(--color-green-2);
  font-size: 16px;
  line-height: 23px;
  color: #fff;
}
.product-info__name { font-family: var(--font-mincho); font-weight: 400; font-size: 44px; line-height: 1.25; letter-spacing: 1.76px; color: var(--color-navy); }
.product-info__catch { font-family: var(--font-mincho); font-size: 22px; line-height: 1.6; color: var(--color-text); }
.product-info__hr, .ingredients__hr { width: 100%; height: 0; margin: 0; border: 0; border-top: 1px solid #c9ded5; }
.product-info__desc { font-size: 16px; line-height: 1.9; letter-spacing: .8px; color: var(--color-text); }
.product-spec { display: flex; flex-direction: column; }
.product-spec__row { display: flex; gap: 24px; padding: 14px 0; border-bottom: 1px solid #c9ded5; }
.product-spec__row:first-child { border-top: 1px solid #c9ded5; }
.product-spec__row dt { flex: 0 0 110px; font-weight: 700; font-size: 16px; line-height: 23px; letter-spacing: .8px; color: var(--color-green-1); }
.product-spec__row dd { flex: 1 1 0; margin: 0; font-size: 16px; line-height: 1.6; letter-spacing: .8px; color: var(--color-text); }
.ingredients { display: flex; flex-direction: column; gap: 12px; width: 1163px; height: 299px; padding-top: 20px; box-sizing: border-box; }
.ingredients__title { font-weight: 700; font-size: 16px; line-height: 23px; color: var(--color-navy); }
.ingredients__box {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 16px;
  background: #f8f8f1;
  border: 1px solid #c9ded5;
  border-radius: 12px;
}
.ingredients__group { display: flex; flex-direction: column; gap: 8px; }
.ingredients__group h3 { font-weight: 700; font-size: 16px; line-height: 23px; letter-spacing: .8px; color: var(--color-green-1); }
.ingredients__group p { font-size: 16px; line-height: 1.8; letter-spacing: .8px; color: var(--color-text); }
.ingredients__note { font-size: 15px; line-height: 1.7; color: var(--color-text); }

.features { background: #f8f8f1; }
.features__inner { display: flex; flex-direction: column; align-items: center; gap: 56px; max-width: var(--w-base); margin: 0 auto; padding: 88px 112px; }
.feature-list { display: flex; gap: 24px; width: 100%; }
.feature-card {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding: 28px;
  background: #fff;
  border-radius: 12px;
  text-align: center;
}
.feature-card__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 9px 15px;
  background: var(--color-bg-mint);
  border: 1px solid #c9ded5;   /* Figma stroke inside: 41x46 */
  font-family: var(--font-mincho);
  font-size: 18px;
  line-height: 26px;
  color: var(--color-green-1);
}
.feature-card__title { font-family: var(--font-mincho); font-weight: 400; font-size: 21px; line-height: 30px; color: var(--color-navy); }
.feature-card__text { font-size: 16px; line-height: 1.7; letter-spacing: .8px; color: var(--color-text); }
.howto { display: flex; flex-direction: column; justify-content: center; gap: 20px; width: 100%; height: 360px; padding: 48px; background: #fff; }
.howto__label { font-weight: 700; font-size: 13px; line-height: 19px; letter-spacing: 1.04px; color: var(--color-green-1); }
.howto__title { font-family: var(--font-mincho); font-weight: 400; font-size: 32px; line-height: 46px; color: var(--color-navy); }
.howto__text { font-size: 16px; line-height: 1.8; letter-spacing: .8px; color: var(--color-text); }
.howto__caution { padding: 16px; border-radius: 6px; background: var(--color-bg-mint); font-size: 15px; line-height: 1.6; color: var(--color-text); }

.related { background: var(--color-bg-mint); }
.related__inner { display: flex; flex-direction: column; align-items: center; gap: 56px; max-width: var(--w-base); margin: 0 auto; padding: 88px 112px; }
.btn-all {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  padding: 13px 48px;
  border-radius: 100px;
  background: var(--color-green-1);
  font-family: var(--font-mincho);
  font-size: 16px;
  line-height: 23px;
  color: #fff;
  transition: opacity .25s;
}
.btn-all { box-shadow: inset 0 0 0 1px var(--color-green-1); transition: background .25s, color .25s; }
.btn-all:hover { background: #fff; color: var(--color-green-1); }
.btn-all .arrow { color: currentColor; }
.arrow--xs { width: 8px; height: 8px; }
.arrow--xs::before { width: 8px; height: 8px; transform: rotate(90deg); }


/* ==========================================================================
   お知らせ 一覧 / 詳細
   ========================================================================== */
.page-news { background: var(--color-bg-mint); --footer-wave-color: var(--color-bg-mint); }
.page-title--news .page-title__lead { font-family: var(--font-sans); font-size: 18px; line-height: 1.8; letter-spacing: .72px; }
.page-title--news { gap: 12px; }
.page-title--news .page-title__en { line-height: 22px; }
.news-archive { display: flex; flex-direction: column; align-items: center; gap: 40px; background: var(--color-bg-mint); }
.news-filter { padding: 40px 80px; background: #fff; }
.news-filter__list { display: flex; gap: 12px; }
.filter-pill--thin { border-width: 0.5px; height: 42px; padding: 7.5px 16px; }
.news-archive__list { width: 1100px; }
.news-list--archive { width: 1100px; }
.news-list--archive .news-item { border-bottom: 1px solid var(--color-border-cream); }
.news-list--archive .news-item__title { white-space: nowrap; }
.news-archive__pagination { padding-bottom: 120px; }

/* ---------- お知らせ詳細 (Figma 346:980 JSON) ---------- */
.news-single { background: var(--color-bg-mint); padding: 48px 0 0; }
.news-single__inner { display: flex; flex-direction: column; align-items: center; width: 960px; margin: 0 auto; }
.news-single__inner .section-heading { gap: 10px; width: auto; }
.news-single__inner .section-heading__en { font-family: var(--font-sans); font-weight: 700; font-size: 18px; line-height: 26px; letter-spacing: 1.08px; }
.news-single__inner .section-heading__ja { font-size: 36px; line-height: 52px; }
.news-single__header { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; width: 100%; margin-top: 48px; padding-bottom: 24px; border-bottom: 1px solid var(--color-border-cream); }
.news-single__header .news-item__meta { gap: 24px; }
.news-single__header .news-item__meta time { font-weight: 500; font-size: 14px; line-height: 20px; letter-spacing: .28px; color: var(--color-text-sub); }
.news-single__header .news-item__cat { padding: 4px 16px; font-size: 12px; line-height: 17px; }
.news-single__title { font-family: var(--font-mincho); font-weight: 400; font-size: 36px; line-height: 1.5; letter-spacing: 1.08px; color: var(--color-navy); }
.news-single__thumb { width: 720px; height: 480px; margin-top: 39px; border-radius: 8px; overflow: hidden; }
.news-single__thumb img { width: 100%; height: 100%; object-fit: cover; }
.news-single__body { width: 100%; min-height: 176px; margin-top: 40px; padding: 32px 40px; border-radius: 8px; background: #fff; }   /* Figma: 本文編集エリア 176px */
.wp-content { display: flex; flex-direction: column; gap: 16px; font-size: 18px; line-height: 2; letter-spacing: .72px; color: var(--color-text-sub); }
.wp-content h2 { font-family: var(--font-mincho); font-weight: 400; font-size: 24px; line-height: 1.5; color: var(--color-navy); padding-left: 16px; border-left: 3px solid var(--color-green-1); }
.wp-content h3 { font-weight: 400; font-size: 18px; line-height: 2; letter-spacing: .72px; color: var(--color-text-sub); }
.wp-content h3 + p { font-size: 14px; line-height: 1.8; letter-spacing: 0; color: #617078; }
.wp-content ul { list-style: disc; padding-left: 1.5em; }
.wp-content ol { list-style: decimal; padding-left: 1.5em; }
.wp-content a { color: var(--color-green-1); text-decoration: underline; }
.wp-content img { border-radius: 8px; }
.news-single__nav { display: flex; justify-content: center; gap: 32px; margin-top: 112px; }
.news-single__nav-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 16px;
  height: 49px; padding: 0 48px; border-radius: 100px;
  font-family: var(--font-mincho); font-size: 16px; line-height: 23px;
  transition: background .25s, color .25s;
}
.news-single__nav-btn .arrow { color: currentColor; }
.news-single__nav-btn--fill { width: 170px; padding: 0; background: var(--color-green-1); box-shadow: inset 0 0 0 1px var(--color-green-1); color: #fff; }
.news-single__nav-btn--fill:hover { background: #fff; color: var(--color-green-1); }
.news-single__nav-btn--outline { width: 264px; padding: 0; background: #fff; box-shadow: inset 0 0 0 1px var(--color-green-1); color: var(--color-green-1); }
.news-single__nav-btn--outline:hover { background: var(--color-green-1); color: #fff; }
.news-single__nav-btn .arrow--xs { width: 8px; height: 8px; }
.arrow--left::before { transform: rotate(-90deg); }
.news-related { width: 1100px; margin: 80px auto 0; padding-bottom: 96px; }
.news-related__title { font-family: var(--font-mincho); font-weight: 400; font-size: 28px; line-height: 41px; color: var(--color-navy); }
.news-related__list { display: grid; grid-template-columns: 500px 500px; column-gap: 104px; margin: 32px 0 0 -2px; }
.news-related__item a { display: flex; align-items: center; gap: 24px; padding-bottom: 20px; margin-bottom: -1px; border-bottom: 1px solid var(--color-border-cream); }
.news-related__thumb { flex: 0 0 168px; width: 168px; height: 112px; border-radius: 8px; overflow: hidden; }
.news-related__thumb img { width: 100%; height: 100%; object-fit: cover; }
.news-related__content { display: flex; flex-direction: column; gap: 12px; }
.news-related__content .news-item__meta { gap: 16px; }
.news-related__content .news-item__meta time { font-weight: 400; font-size: 13px; line-height: 19px; color: var(--color-text-sub); }
.news-related__content .news-item__cat { padding: 4px 16px; font-size: 12px; line-height: 17px; }
.news-related__name { font-weight: 700; font-size: 16px; line-height: 1.8; letter-spacing: .32px; color: var(--color-navy); }
.page-news .news-single + .site-footer { margin-top: 0; }


/* ==========================================================================
   採用情報
   ========================================================================== */
.page-recruit { --footer-wave-color: var(--color-bg-mint); }
.sub-hero--recruit .sub-hero__inner { height: 388px; }
.sub-hero--recruit .sub-hero__accent { top: 108px; left: 1px; }
.sub-hero--recruit .sub-hero__mv { left: 240px; top: 0; }
.sub-hero--facility .sub-hero__img { object-fit: fill; }
.sub-hero--recruit .sub-hero__title { top: 150px; filter: drop-shadow(0 0 10px #fff); }
.sub-hero--recruit .sub-hero__en { width: 100%; text-align: left; }
.sub-hero--recruit .sub-hero__ja { color: var(--color-navy); }

.heading-left { display: flex; flex-direction: column; gap: 10px; width: 1120px; }
.heading-left__title { font-family: var(--font-mincho); font-weight: 400; font-size: 44px; line-height: 64px; color: var(--color-navy); }
.heading-left__note { font-size: 14px; line-height: 20px; color: var(--color-text-sub); }

/* ---------- 採用情報: 募集中の職種 (Figma 213:22 JSON 2026-10-14) ---------- */
.jobs { background: var(--color-bg-mint); }
.jobs__inner { display: flex; flex-direction: column; align-items: center; gap: 32px; padding: 120px 0 0; }   /* Figma 213:51 固定高 6056: 下余白はクリップ */
/* 職種タブ (2026-10-22 PDF版: 枠の上に乗る角型タブ 240×73, 間隔40) */
.job-tabs { display: flex; justify-content: center; }
.job-tabs__list { display: flex; gap: 40px; }
.job-tab { display: flex; align-items: center; justify-content: center; width: 240px; height: 73px; border: 1px solid var(--color-green-1); border-bottom: 0; background: #fff; font-family: var(--font-mincho); font-weight: 400; font-size: 20px; line-height: 26px; color: var(--color-navy); transition: background .2s, color .2s; }   /* 商品一覧の .catalog-tab と同じ: 下線なしで枠に乗せる */
.job-tab.is-active, .job-tab:hover { background: var(--color-green-1); color: #fff; }
.job-frame { width: 1300px; margin-top: -32px; padding: 120px 40px 39px; background: #fff; border: 1px solid var(--color-green-1); }
.job-detail[hidden] { display: none; }
.job-detail { width: 1116px; margin: 0 auto; border-radius: 8px; box-shadow: inset 0 0 0 1px #b8c2ba; background: #fff; overflow: hidden; }
.job-detail__header { display: flex; gap: 32px; padding: 32px; }
.job-detail__photo { flex: 0 0 500px; width: 500px; height: 440px; border-radius: 8px; background: #f3f6f3; overflow: hidden; }
.job-detail__photo img { width: 100%; height: 100%; object-fit: cover; }
.job-detail__summary { flex: 1 1 0; display: flex; flex-direction: column; gap: 24px; }
.job-detail__head { display: flex; flex-direction: column; gap: 32px; }
.job-detail__title { font-weight: 700; font-size: 32px; line-height: 51px; color: #263238; }
.job-detail__tags { display: flex; flex-wrap: wrap; gap: 12px; margin-top: -8px; }
.job-detail__tags li { display: inline-flex; align-items: center; height: 28px; padding: 0 12px; border-radius: 4px; background: #dde5de; font-weight: 700; font-size: 14px; line-height: 20px; color: #263238; }
.job-detail__catch { margin-top: 8px; font-weight: 700; font-size: 24px; line-height: 38px; color: #263238; }
.job-detail__desc { font-size: 16px; line-height: 34px; color: #263238; }
.job-table { display: flex; flex-direction: column; }
.job-table__row { display: flex; box-shadow: inset 0 1px 0 #b8c2ba; }
.job-table__row dt { flex: 0 0 176px; width: 176px; padding: 24px; background: #dde5de; font-weight: 700; font-size: 18px; line-height: 32px; color: #263238; }
.job-table__row dd { flex: 1 1 0; display: flex; flex-direction: column; gap: 16px; margin: 0; padding: 24px; box-shadow: inset 1px 0 0 #b8c2ba; }
.rt { font-size: 16px; line-height: 34px;   /* Figma lh 1.80→34 (行単位で丸め) */ color: #263238; }
.rt--lead { font-weight: 700; font-size: 21px; line-height: 34px; }
.rt--strong { font-weight: 700; line-height: 23px; color: #27634f; }
.rt--bold { font-weight: 700; line-height: 29px; }
.rt--bold16 { font-weight: 700; line-height: 23px; }
.rt--note { font-size: 14px; line-height: 29px; }
.rt--time { font-weight: 700; font-size: 19px; line-height: 28px; }
.rt--emp { line-height: 31px; }
.rt--salary { font-weight: 700; font-size: 26px; line-height: 38px; color: #27634f; }
.rt-hr { height: 1px; margin: 0; border: 0; background: #dde5de; }
.rt-checks { display: flex; flex-direction: column; gap: 16px; }
.rt-checks li { position: relative; padding-left: 30px; font-size: 16px; line-height: 23px; color: #263238; }
.rt-checks li::before { content: ""; position: absolute; left: 3px; top: 6px; width: 11px; height: 5px; border-left: 2px solid var(--color-green-1); border-bottom: 2px solid var(--color-green-1); transform: rotate(-45deg); }

.flow { background: var(--color-bg-mint); }   /* 2026-9-8 版: セクション背景ミント, flow-box 白 */
.flow__inner { display: flex; flex-direction: column; align-items: center; gap: 32px; padding: 72px 0 104px; }   /* PDF: 枠下端 6591 → 見出し 6663 */
.flow-box {
  display: flex;
  flex-direction: column;
  gap: 24px;
  width: 1120px;
  padding: 40px;
  background: #fff;
  border-radius: 20px;
}
.flow-step { position: relative; padding-left: 25px; }
.flow-step__num {
  position: absolute;
  left: 0;
  top: 54px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  border-radius: 36px;
  background: var(--color-green-2);
  font-weight: 700;
  font-size: 20px;
  line-height: 29px;
  color: #fff;
  z-index: 1;
}
.flow-step__card {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  width: 1040px;
  padding: 24px;
  background: var(--color-bg-mint);
  border-radius: 20px;
}
.flow-step__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 109px;
  width: 109px;
  height: 109px;
  border-radius: 50%;
  background: #fff;
}
.flow-step__content { display: flex; flex-direction: column; gap: 8px; width: 741px; }
.flow-step__label { font-weight: 700; font-size: 18px; line-height: 26px; letter-spacing: 1.8px; color: var(--color-green-1); }
.flow-step__title { font-family: var(--font-mincho); font-weight: 400; font-size: 28px; line-height: 1.5; color: var(--color-navy); }
.flow-step__text { font-size: 16px; line-height: 30px; letter-spacing: .48px; color: var(--color-text-sub); }
.flow-connector { display: flex; align-items: center; justify-content: center; height: 56px; }
.arrow--connector { width: 30px; height: 30px; color: #d9d9d9; }
.arrow--connector::before { width: 30px; height: 30px; }

.entry { background: var(--color-bg-mint); }
.entry__inner { display: flex; justify-content: center; padding: 104px 0; }
.entry-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 39px;
  width: 1120px;
  padding: 40px;
  background: #fff;
  border-radius: 20px;
}
.entry-card__message { display: flex; flex-direction: column; gap: 12px; width: 706px; text-align: center; }
.entry-card__title { font-family: var(--font-mincho); font-size: 44px; line-height: 64px; color: var(--color-navy); }
.entry-card__text { font-size: 16px; line-height: 30px; color: var(--color-text-sub); }
.btn-gold {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 18px 32px;
  border-radius: 100px;
  background: var(--color-gold);
  font-weight: 700;
  font-size: 18px;
  line-height: 26px;
  color: #fff;
  transition: opacity .25s;
}
.btn-gold { box-shadow: inset 0 0 0 1px var(--color-gold); transition: background .25s, color .25s; }
.btn-gold:hover { background: #fff; color: var(--color-gold); }
.btn-gold .arrow { color: currentColor; }


/* ==========================================================================
   太陽光発電所一覧
   ========================================================================== */
.page-facility { background: var(--color-bg-cream); --footer-wave-color: var(--color-bg-mint); }
.sub-hero--facility .sub-hero__title { width: 512px; filter: none; }
.sub-hero--facility .sub-hero__en { font-size: 14px; line-height: 20px; }
.sub-hero--facility .sub-hero__ja { color: #fff; }
.stations { background: var(--color-bg-mint); }
.stations__inner { display: flex; flex-direction: column; gap: 56px; max-width: var(--w-base); margin: 0 auto; padding: 80px 80px 100px; }
.station-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px 24px; }
.station-card__btn {
  display: flex;
  flex-direction: column;
  width: 100%;
  text-align: left;
  background: #fff;
  border: 1px solid var(--color-border-cream);
  overflow: hidden;
  transition: box-shadow .25s, transform .25s;
}
.station-card__btn:hover { box-shadow: 0 12px 32px rgba(21,58,91,.09); transform: translateY(-2px); }
.station-card__image { display: block; width: 100%; height: 200px; }
.station-card__image img { width: 100%; height: 100%; object-fit: cover; }
.station-card__content { display: flex; flex-direction: column; gap: 16px; width: 100%; padding: 24px; color: var(--color-navy); }
.station-card__meta { display: flex; flex-direction: column; gap: 8px; }
.station-card__date { display: inline-flex; align-items: center; gap: 8px; font-size: 16px; line-height: 23px; letter-spacing: .8px; }
.station-card__date-label { padding: 2px 8px; background: var(--color-bg-mint); font-weight: 700; }
.station-card__date-value { font-weight: 500; }
.station-card__name { font-family: var(--font-mincho); font-size: 20px; line-height: 29px; letter-spacing: 1px; }
.station-card__loc { display: flex; align-items: center; gap: 8px; font-size: 16px; line-height: 23px; letter-spacing: .8px; }
.station-card__output {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  background: var(--color-bg-mint);
}
.station-card__output-label { font-weight: 700; font-size: 16px; line-height: 23px; letter-spacing: .8px; }
.station-card__output-value { font-family: var(--font-mincho); font-size: 20px; line-height: 29px; letter-spacing: 1px; }

/* modal */
.modal { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; }
.modal[hidden] { display: none; }
.modal__backdrop { position: absolute; inset: 0; background: rgba(15,23,42,.75); }
.modal__panel {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 1240px;
  height: 760px;                       /* Figma Modal Center Wrapper 1240x760 */
  max-width: calc(100% - 32px);
  max-height: calc(100% - 32px);
  background: #fff;
  box-shadow: 0 16px 40px rgba(11,12,16,.25);
  overflow: auto;
}
.modal__top { display: flex; justify-content: flex-end; padding: 20px 32px 12px; }   /* Figma: CLOSE右端 = 1308 (1340-32) */
.modal__close { position: relative; display: block; width: 44px; height: 65px; padding: 0; border: 0; background: none; cursor: pointer; }
.modal__close img { display: block; width: 44px; height: 65px; }
.modal__close-label { position: absolute; left: 0; right: 0; top: 45px; font-family: var(--font-sans); font-size: 14px; line-height: 20px; text-align: center; color: #000; }   /* Figma CLOSE @y+45 */
.modal__body { display: flex; gap: 40px; padding: 0 32px 32px; }
.modal__gallery { flex: 1 1 0; display: flex; flex-direction: column; gap: 16px; }
.modal__photo { width: 100%; height: 440px; }
.modal__photo img { width: 100%; height: 100%; object-fit: cover; }
.modal__thumbs { display: flex; gap: 14px; }
.modal__thumbs li { flex: 1 1 0; height: 120px; }
.modal__thumbs img { width: 100%; height: 100%; object-fit: cover; }
.modal__details { flex: 0 0 520px; display: flex; flex-direction: column; gap: 20px; }
.modal__header { display: flex; flex-direction: column; gap: 6px; }
.modal__eyebrow { font-weight: 700; font-size: 12px; line-height: 17px; color: var(--color-green-1); }
.modal__title { font-family: var(--font-mincho); font-weight: 400; font-size: 32px; line-height: 46px; color: var(--color-navy); }
.modal__sep { margin: -1px 0; border: 0; border-top: 2px solid var(--color-green-1); }   /* Figma LINE(高さ0, 線幅2) 相当 */
.spec-list { display: flex; flex-direction: column; }
.spec-list__row { display: flex; align-items: center; padding: 14px 0 13px; border-bottom: 1px solid #e4e7ec; }   /* Figma: 行高50px、区切りは下線のみ(枠なし) */
.spec-list__row--tall { padding: 14px 0 13px; }   /* Figma: 69px */
.spec-list__row dt { flex: 0 0 130px; font-weight: 500; font-size: 14px; line-height: 20px; color: #667085; }
.spec-list__row dd { flex: 1 1 0; display: flex; flex-direction: column; gap: 2px; margin: 0; font-weight: 700; font-size: 15px; line-height: 22px; color: var(--color-navy); }
.spec-list__row dd small { font-weight: 400; font-size: 12px; line-height: 17px; color: #667085; }
.spec-list__spacer { height: 16px; }


/* ==========================================================================
   お問い合わせ
   ========================================================================== */
.page-contact { background: var(--color-bg-mint); --footer-wave-color: var(--color-bg-mint); }
.contact-intro {
  display: flex;
  align-items: flex-end;
  gap: 88px;
  max-width: var(--w-base);
  margin: 0 auto;
  padding: 72px 160px 64px;
}
.contact-intro__heading { flex: 1 1 0; display: flex; flex-direction: column; gap: 12px; }
.contact-intro__en { font-weight: 700; font-size: 14px; line-height: 17px; letter-spacing: 1.12px; color: var(--color-green-1); }
.contact-intro__title { font-family: var(--font-mincho); font-weight: 400; font-size: 48px; line-height: 70px; color: var(--color-navy); }
.contact-intro__desc { font-size: 18px; line-height: 1.8; color: var(--color-text-sub); }
.contact-phone {
  flex: 0 0 460px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 460px;
  padding: 28px 32px;
  background: #fff;
  border-radius: 16px;
}
.contact-phone__title { font-family: var(--font-mincho); font-size: 22px; line-height: 32px; color: var(--color-navy); }
.contact-phone__number { font-weight: 700; font-size: 25px; line-height: 30px; letter-spacing: .75px; color: var(--color-green-1); }
.contact-phone__hours { font-size: 14px; line-height: 1.6; color: var(--color-text-sub); white-space: nowrap; }

.contact-form { max-width: var(--w-base); margin: 0 auto; padding: 0 160px 104px; }
.form-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  padding: 56px 64px;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 10px 28px rgba(21,58,91,.07);
}
.form-group { display: flex; flex-direction: column; gap: 16px; width: 100%; margin: 0; padding: 0; border: 0; min-width: 0; }
.form-label { display: inline-flex; align-items: center; gap: 10px; font-weight: 700; font-size: 16px; line-height: 19px; color: var(--color-navy); }
.form-required { padding: 3px 8px; border-radius: 100px; background: var(--color-green-1); font-weight: 400; font-size: 12px; line-height: 14px; color: #fff; }
.form-required--s { font-size: 10px; line-height: 12px; }
.form-options { display: flex; flex-wrap: wrap; gap: 12px; width: 100%; }
.form-option {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 314px;
  height: 46px;
  padding: 13px 16px;
  border: 1px solid var(--color-border-cream);
  border-radius: 8px;
  background: var(--color-bg-product);
  font-size: 15px;
  line-height: 18px;
  color: var(--color-navy);
  cursor: pointer;
  transition: background .2s, border-color .2s;
}
.form-option--wide { width: 482px; }
.form-option input { position: absolute; opacity: 0; width: 0; height: 0; }
.form-option__radio { width: 16px; height: 16px; border-radius: 50%; border: 1px solid var(--color-border-cream); background: #fff; flex: 0 0 auto; }
.form-option.is-checked, .form-option:has(input:checked) { background: #edf6f1; border-color: var(--color-green-1); }
.form-option.is-checked .form-option__radio, .form-option:has(input:checked) .form-option__radio { background: var(--color-green-1); border-color: var(--color-green-1); }
.form-rows { display: flex; flex-direction: column; gap: 28px; width: 100%; }
.form-row { display: flex; gap: 28px; }
.form-field { flex: 1 1 0; display: flex; flex-direction: column; gap: 10px; }
.form-input {
  width: 100%;
  height: 58px;
  padding: 16px 18px;
  border: 1px solid var(--color-border-cream);
  border-radius: 8px;
  background: var(--color-bg-product);
  font: inherit;
  font-size: 14px;
  line-height: 17px;
  color: var(--color-navy);
}
.form-input::placeholder { color: #72827f; }
.form-input:focus { outline: 2px solid var(--color-green-2); outline-offset: 0; }
.form-input--textarea { height: 170px; resize: vertical; }
.form-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  width: 420px;
  height: 64px;
  border-radius: 100px;
  background: var(--color-green-1);
  font-weight: 700;
  font-size: 17px;
  line-height: 25px;
  color: #fff;
  transition: opacity .25s;
}
.form-submit { box-shadow: inset 0 0 0 1px var(--color-green-1); transition: background .25s, color .25s; }
.form-submit:hover { background: #fff; color: var(--color-green-1); }
.form-submit .arrow { color: currentColor; }


/* ==========================================================================
   なた豆すっきりシリーズ LP
   ========================================================================== */
.page-lp { --font-lp: "Shippori Mincho", "Hina Mincho", serif; --footer-wave-color: #fff; }
.page-lp .site-footer { margin-top: 6px; }   /* 2026-10-14 版: Group143 末尾 6124 → Footer 6130 */
.lp-leaf { width: 72.7px; height: 160.3px; transform: rotate(58.6deg); transform-origin: center; pointer-events: none; }
.lp-heading {
  position: relative;
  display: inline-block;
  font-family: var(--font-lp);
  font-weight: 400;
  font-size: 40px;
  line-height: 1.8;
  letter-spacing: 2px;
  color: #000;
}
.lp-heading__leaf { position: absolute; left: calc(100% + 13px); top: -7px; margin-left: 51px; }

/* hero */
.lp-hero { position: relative; height: 775px; overflow: hidden; background: #fff; }
.lp-hero__bg { position: absolute; left: 0; top: -82px; width: 100%; height: 857px; object-fit: fill; opacity: .8; }
.lp-hero__inner { position: relative; width: var(--w-base); height: 100%; margin: 0 auto; }
.lp-hero__glow {
  position: absolute;
  left: 105px;
  top: 0;
  width: 788px;
  height: 775px;
  background: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.8) 25%, #fff 50%, rgba(255,255,255,.8) 75%, rgba(255,255,255,0) 100%);
}
.lp-hero__product { position: absolute; left: 678px; top: 98px; width: 677px; height: 677px; object-fit: cover; filter: drop-shadow(0 0 25px rgba(0,0,0,.1)); }
.lp-hero__title {
  position: absolute;
  left: 194px;
  top: 84px;
  width: 584px;
  font-family: var(--font-lp);
  font-weight: 500;
  font-size: 80px;
  line-height: 1.4;
  letter-spacing: 4px;
  color: #3f1a13;
  text-align: center;
  white-space: nowrap;
}
.lp-hero__sub {
  position: absolute;
  left: 214px;
  top: 337px;
  width: 552px;
  font-family: var(--font-lp);
  font-weight: 500;
  font-size: 48px;
  line-height: 1.4;
  letter-spacing: 2.4px;
  color: #172a1a;
  text-align: center;
  white-space: nowrap;
}
.lp-hero__award { white-space: nowrap; position: absolute; left: 214px; top: 500px; width: 518px; height: 217px; font-family: var(--font-lp); color: #25523b; text-align: center; }
.lp-hero__laurel { position: absolute; top: 13px; width: 103px; height: 204px; }
.lp-hero__laurel--l { left: 0; }
.lp-hero__laurel--r { left: 415px; transform: rotate(180deg); }
.lp-hero__award-top { position: absolute; left: 165px; top: 0; width: 175px; font-size: 28px; line-height: 1.8; letter-spacing: 1.4px; }
.lp-hero__award-main { position: absolute; left: 62px; top: 25px; width: 380px; height: 126px; font-size: 48px; line-height: 126px; letter-spacing: 2.4px; color: #173325; white-space: nowrap; }
.lp-hero__award-main em { font-style: normal; font-size: 70px; color: #f16831; }
.lp-hero__award-bottom { position: absolute; left: 178px; top: 130px; width: 149px; font-size: 28px; line-height: 1.8; letter-spacing: 1.4px; }
.lp-hero__award-note { position: absolute; left: 120px; top: 180px; width: 285px; font-size: 16px; line-height: 1.8; letter-spacing: .8px; color: #000; }
.lp-hero__leaf { position: absolute; left: 680px; top: 194px; }

/* points */
.lp-points { background: #fdfdf7; }
.lp-points__inner { display: flex; flex-direction: column; align-items: center; gap: 29px; max-width: var(--w-base); margin: 0 auto; padding: 120px; }
.lp-heading--points { width: 834px; height: 166px; font-size: 36px; font-weight: 500; letter-spacing: 1.8px; white-space: nowrap; }
.lp-heading__num { font-style: normal; font-size: 64px; letter-spacing: 3.2px; }
.lp-heading__sub { font-size: 40px; letter-spacing: 2px; }
.lp-heading--points .lp-heading__leaf { left: 711px; top: 13px; margin: 0; }   /* Figma 278:7187 @(963,1015) */
.lp-point-list { display: flex; justify-content: center; gap: 24px; width: 1202px; margin: 0 -2px 0 0; }   /* Figma Frame385 1202px, 4項目(307×4+72=1300)は中央はみ出し */
.lp-point { display: flex; flex-direction: column; align-items: center; gap: 10px; flex: 0 0 307px; width: 307px; padding: 10px; }
.lp-point:first-child .lp-point__title { width: 287px; text-align: left; }   /* Figma 278:7214: 左揃え(287px幅) */
.lp-point__circle { display: block; width: 220px; height: 220px; border-radius: 50%; overflow: hidden; background: #f9f9f9; }
.lp-point__circle img { width: 100%; height: 100%; object-fit: cover; }
.lp-point__title { font-family: var(--font-lp); font-weight: 400; font-size: 28px; line-height: 1.8; letter-spacing: 1.4px; color: #25302d; text-align: center; margin-top: 0; }
.lp-point__title--bold { font-weight: 600; }
.lp-point__text { white-space: nowrap; width: 251px; font-family: var(--font-lp); font-size: 20px; line-height: 1.8; letter-spacing: 1px; color: #25302d; text-align: center; margin-top: 4px; }
.lp-point__text--w { width: 293px; }
.lp-point__title { white-space: nowrap; }

/* about */
.lp-about { background: #fff; }
.lp-about__inner { display: flex; align-items: center; justify-content: center; gap: 80px; padding: 160px 0 160px 2px; }   /* Figma Frame402 は 1442px 幅のため +1px */
.lp-about__image { width: 243px; height: 393px; object-fit: cover; }
.lp-about__text { display: flex; flex-direction: column; gap: 44px; width: 489px; }
.lp-about__leaf { position: absolute; left: 348px; top: 42px; }   /* Figma 278:7236 @(934,1954) */
.lp-about__desc { font-family: var(--font-lp); font-size: 20px; line-height: 1.8; letter-spacing: 1px; color: #000; white-space: nowrap; }

/* lineup */
.lp-lineup { background: #f6faf3; }
.lp-lineup__inner { display: flex; flex-direction: column; align-items: center; gap: 60px; max-width: var(--w-base); margin: 0 auto; padding: 120px 119px 120px 121px; }   /* Figma Frame391 1442px → +1px */
.lp-heading--lineup { margin-left: 1px; }
.lp-heading--lineup .lp-heading__leaf { left: 322px; top: -20px; margin: 0; }   /* Figma 278:7556 @(824,2553) */
.lp-award { height: 803px; background: linear-gradient(90deg, #c8dbe9 0%, #fff 46.6%, #c0d6e3 100%); overflow: hidden; }
.lp-award__inner { position: relative; width: 1440px; height: 803px; margin: 0 auto; }
.lp-award__laurel { position: absolute; top: 101px; width: 103px; height: 204px; }
.lp-award__laurel--l { left: 432px; }
.lp-award__laurel--r { left: 911px; transform: scaleX(-1); }
.lp-award__text { position: absolute; left: 535px; top: 131px; width: 376px; font-family: var(--font-lp); font-size: 40px; line-height: 72px; letter-spacing: 2px; text-align: center; color: #173325; white-space: nowrap; }
.lp-award__text em { font-style: normal; color: #19479a; }
.lp-award__medal { position: absolute; left: 189px; top: 385px; width: 141px; height: 214px; }
.lp-award__product { position: absolute; filter: drop-shadow(0 0 10px rgba(0,0,0,.10)); }
.lp-award__product--1 { left: 348px; top: 335px; width: 366px; height: 366px; }
.lp-award__product--2 { left: 596px; top: 332px; width: 369px; height: 369px; }
.lp-award__product--3 { left: 876px; top: 332px; width: 369px; height: 369px; }
.lp-banner { width: 100%; overflow: hidden; }
.lp-banner img { width: 100%; height: 100%; object-fit: cover; }

/* voice */
.lp-voice { position: relative; height: 1265px; background: #fff; overflow: hidden; }
.lp-voice__bg { position: absolute; left: 0; top: 454px; width: 100%; height: 811px; object-fit: cover; }
.lp-voice__inner { position: relative; display: flex; flex-direction: column; align-items: center; gap: 63px; width: 740px; margin: 0 auto; padding-top: 165px; }
.lp-heading--voice { font-weight: 600; margin-left: 4px; }   /* Figma 278:7309 x=617 */
.lp-heading--voice .lp-heading__leaf { left: 221px; top: -20px; margin: 0; }   /* Figma 278:7310 @(787,4519) */
.review-list { display: flex; flex-direction: column; gap: 34px; width: 100%; }
.review-card { display: flex; align-items: center; gap: 16px; padding: 24px; background: #f6f8f2; box-shadow: 0 6px 16px rgba(21,58,91,.02); }
.review-card__author { display: flex; align-items: center; gap: 16px; width: 238px; flex: 0 0 238px; }
.review-card__avatar { display: block; width: 116px; height: 116px; border-radius: 50%; border: 4px solid #cecece; overflow: hidden; background: #d9d9d9; }
.review-card__avatar img { width: 100%; height: 100%; object-fit: cover; }
.review-card__meta { display: flex; flex-direction: column; gap: 16px; }
.review-card__who { font-weight: 500; font-size: 13px; line-height: 19px; color: #727c80; }
.stars { display: inline-flex; gap: 4px; }
.review-card__body { display: flex; flex-direction: column; gap: 16px; width: 412px; }
.review-card__title { font-weight: 700; font-size: 16px; line-height: 1.4; color: var(--color-text); }
.review-card__text { width: 407px; font-size: 15px; line-height: 1.6; color: var(--color-text); }

/* message */
.lp-message { position: relative; height: 493px; overflow: hidden; background: #fff; }
.lp-message__img { position: absolute; top: 0; height: 100%; object-fit: cover; }
.lp-message__img--l { left: 0; width: 51%; transform: rotate(180deg); }
.lp-message__img--r { right: 0; width: 51.4%; }
.lp-message__fade { position: absolute; top: 0; height: 100%; background: linear-gradient(90deg, rgba(255,255,255,0), #fff, rgba(255,255,255,0)); }
.lp-message__fade--l { left: 9.4%; width: 41.8%; }
.lp-message__fade--r { left: 41.1%; width: 19.2%; }
.lp-message__text { position: absolute; left: 50%; top: 103px; width: 494px; margin-left: -547px; text-align: left; font-family: var(--font-lp); color: #000; }
.lp-message__title { font-weight: 400; font-size: 40px; line-height: 1.8; letter-spacing: 2px; white-space: nowrap; }
.lp-message__desc { padding: 0 6px; font-size: 20px; line-height: 1.8; letter-spacing: 1px; white-space: nowrap; }

/* ==========================================================================
   SP (〜767px) — Figma SP(750px) の 1/2
   ========================================================================== */

/* ---------- プライバシーポリシー (Figma JSON 180:297 / 165:2) ---------- */
.page-privacy { background: var(--color-bg-mint); --footer-wave-color: var(--color-bg-mint); }
.privacy { padding: 80px 160px 120px; }
.privacy__inner { display: flex; flex-direction: column; gap: 48px; width: 1120px; margin: 0 auto; }
.privacy__heading { display: flex; flex-direction: column; gap: 12px; }
.privacy__en { font-weight: 700; font-size: 14px; line-height: 17px; letter-spacing: 1.12px; color: var(--color-green-1); }
.privacy__title { font-family: var(--font-mincho); font-weight: 400; font-size: 44px; line-height: 64px; color: var(--color-navy); }
.privacy__lead { width: 900px; font-size: 18px; line-height: 32px; letter-spacing: .54px; color: var(--color-text-sub); }
.privacy__card { display: flex; flex-direction: column; gap: 32px; padding: 48px 64px 56px; background: #fff; box-shadow: 0 12px 32px rgba(21,58,91,.05); }
.privacy-section { display: flex; flex-direction: column; gap: 14px; }
.privacy-section__title { font-family: var(--font-mincho); font-weight: 400; font-size: 22px; line-height: 32px; letter-spacing: 1.1px; color: var(--color-navy); }
.privacy-section__text, .privacy-section__list { font-size: 16px; line-height: 30px; letter-spacing: .48px; color: var(--color-text-sub); }
.privacy-section__text + .privacy-section__list { margin-top: -14px; }   /* Figma: 本文は1つの TEXT */
.privacy-section::after { content: ""; display: block; height: 1px; margin-bottom: -1px; background: var(--color-border-cream); }   /* Figma LINE は高さ0 */
.privacy-section--last { gap: 12px; }
.privacy-section--last::after { content: none; }
.privacy-section__url { display: inline-block; font-family: var(--font-inter); font-size: 12px; line-height: 15px; color: #000; text-decoration: none; }

@media (max-width: 767px) {
  /* PC用固定幅の解除 */
  .page-products .site-footer, .page-product-detail .site-footer, .page-news .site-footer, .page-recruit .site-footer { padding-top: 0; background: var(--color-footer); }
  .page-products .site-footer__wave, .page-product-detail .site-footer__wave, .page-news .site-footer__wave, .page-recruit .site-footer__wave { top: 0; }
  .about__photo img { width: 100%; object-fit: cover; }
  .message__text { width: auto; }
  .catalog-panel .pagination { width: 100%; }
  .news-list--archive { width: 100%; }
  .news-list--archive .news-item__title { white-space: normal; }
  /* sub hero */
  .sub-hero__inner { height: 240px; }
  .sub-hero__accent { display: none; }
  .sub-hero__mv { left: 0; top: 0; width: 100%; height: 240px; }
  .sub-hero__img { position: static; width: 100%; height: 100%; }
  .sub-hero__title { left: 0; top: 81.5px; width: 100%; align-items: center; gap: 4px; }
  .sub-hero__en { width: auto; align-self: center; font-size: 9px; line-height: 1.5; color: #fff; }
  .sub-hero__ja { font-size: 36px; line-height: 52px; }

  .breadcrumb { height: auto; border-bottom: 1px solid #dde5e6; }
  .breadcrumb__list { padding: 12px 16px; font-size: 16px; line-height: 1.6; letter-spacing: .8px; }
  .breadcrumb__list li + li::before { content: " / "; }

  .page-company .breadcrumb { border-bottom: 0; }
  .page-company .breadcrumb__list { display: flex; align-items: center; box-sizing: border-box; height: 49.5px; border-bottom: 1px solid #dde5e6; padding: 0 16px; font-size: 16px; line-height: 1.6; letter-spacing: .8px; }
  .page-nav { height: auto; padding: 12px 16px; border-bottom: 0; }
  .page-nav__list { flex-wrap: wrap; gap: 8px; }
  .page-nav__item { min-width: 0; padding: 1px 11px; border-width: 1px; font-size: 16px; line-height: 1.6; letter-spacing: .8px; }
  .page-nav__item .arrow { display: none; }

  .section-heading--sub { gap: 8px; }
  .section-heading--sub .section-heading__en { font-size: 9px; line-height: 13.5px; }
  .section-heading--sub .section-heading__en + .section-heading__ja { margin-top: 0; }
  .section-heading--sub .section-heading__ja,
  .section-heading__ja--lg { font-size: 28px; line-height: 40.5px; }
  .section-heading--sub .section-heading__lead { font-size: 16px; line-height: 1.6; letter-spacing: .8px; }

  /* business */
  .business__inner { gap: 32px; padding: 48px 16px; }
  .business-list { width: 100%; gap: 24px; padding-bottom: 0; }
  .business-item, .business-item--reverse {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    width: 100%;
    height: auto;
    margin: 0 !important;
    background: #fff;
    border: 0;
    box-shadow: inset 0 0 0 1px #dde5e6;   /* Figma stroke inside */
    overflow: hidden;
  }
  .business-item::before { display: none; }
  .business-item__image { flex: none; width: 100%; height: 180px; }
  .business-item--02 .business-item__image { height: 197px; }
  .business-item--02 .business-item__image img { object-fit: contain; background: #fff; }   /* 2026-10-26: 正方形の商品写真を切らずに全体表示 (左右は余白) */
  .business-item__image--map img { position: static; width: 100%; height: 100%; }
  .business-item__body { width: 100%; height: auto !important; padding: 20px; gap: 12px; }
  .business-item__head { gap: 2px; }
  .business-item__num { font-size: 10px; line-height: 1.5; }
  .business-item__title { font-size: 22px; line-height: 32px; }
  .business-item__catch { font-size: 18px; line-height: 1.5; letter-spacing: 0; }
  .business-item__text { font-size: 16px; line-height: 25.5px; letter-spacing: .8px; color: #40515b; }
  .business-item__body .btn { align-self: center; margin-top: 0; width: 120.5px; height: 31.5px; padding: 0; font-size: 14px; line-height: 17px; }
  .business-item__watermark { display: none; }

  /* philosophy (Figma 会社概要-sp 企業理念) */
  .philosophy__inner { flex-direction: column; align-items: stretch; gap: 24px; height: auto; padding: 48px 16px; }
  .philosophy__panel { display: contents; }
  .philosophy__en { order: 0; display: block; font-family: var(--font-sans); font-weight: 700; font-size: 16px; line-height: 1.6; letter-spacing: .8px; text-align: center; color: var(--color-green-1); }
  .philosophy__title { order: 1; margin-top: -16px; font-size: 28px; line-height: 40.5px; text-align: center; color: var(--color-navy); }
  .philosophy__image { order: 2; flex: none; width: 100%; height: 200px; margin: 0; }
  .philosophy__image img { object-fit: cover; }
  .philosophy__catch { order: 3; font-size: 20px; line-height: 1.4; letter-spacing: 0; color: var(--color-navy); }
  .philosophy__text { order: 4; margin-top: -8px; font-size: 16px; line-height: 25.5px; max-width: none; letter-spacing: .8px; color: #40515b; }
  .philosophy__watermark { display: none; }

  /* about (Figma 会社概要-sp 私たちについて) */
  .about__inner { flex-direction: column; align-items: stretch; gap: 32px; height: auto; padding: 48px 16px; }
  .about__content { flex: none; width: 100%; gap: 32px; }
  .about__heading { gap: 8px; align-items: center; text-align: center; }
  .about__heading .section-heading__en { font-size: 16px; line-height: 1.6; letter-spacing: .8px; }
  .about__ja { font-family: var(--font-mincho); font-weight: 400; font-size: 28px; line-height: 40.5px; color: var(--color-navy); }
  .about__title { margin-top: 24px; font-size: 22px; line-height: 1.4; text-align: center; }
  .about__text { margin-top: -16px; font-size: 16px; line-height: 25.5px; letter-spacing: .8px; color: #40515b; }
  .about__values { gap: 20px; }
  .value-circle { flex: 0 0 100px; gap: 0; width: 100px; height: 100px; padding: 17.5px 5px; border-width: 1px; box-sizing: border-box; }
  .value-circle__num { font-size: 16px; line-height: 23px; }
  .value-circle__label { margin-top: -1px; font-size: 16px; line-height: 23px; white-space: normal; }
  .about__photo { flex: none; width: 100%; height: 220px; }

  /* message (Figma 会社概要-sp ceo-message) */
  /* ---- strength (SP: 独自) ---- */
  .strength__inner { gap: 32px; padding: 50px 20px; }
  .strength__heading { gap: 8px; }
  .strength__title { font-size: 28px; line-height: 40px; }
  .strength__lead { font-size: 14px; line-height: 1.8; }
  .strength__list { flex-direction: column; gap: 12px; }
  .strength-card { flex: none; min-height: 0; padding: 24px 20px; gap: 12px; }
  .strength-card__title { font-size: 18px; line-height: 26px; }
  .message::before { display: none; }
  .message__inner { padding: 48px 16px; gap: 32px; }
  .message__inner .section-heading { gap: 8px; }
  .message__inner .section-heading__en { font-size: 16px; line-height: 25.6px; letter-spacing: .8px; }
  .message__inner .section-heading__ja { font-size: 28px; line-height: 40.5px; }
  .section-heading--line::after { display: none; }
  .message__card { flex-direction: column; width: 100%; padding: 0; gap: 32px; background: transparent; box-shadow: none; }
  .message__body { flex: none; width: 100%; }
  .message__photo { flex: none; width: 317px; height: 384px; margin: 0 auto; }
  .message__body { gap: 16px; padding: 0; }
  .message__catch { font-size: 20px; line-height: 1.4; letter-spacing: 0; color: var(--color-navy); }
  .message__text { gap: 25.5px; font-size: 16px; line-height: 25.5px; letter-spacing: .8px; color: #40515b; }   /* Figma: 段落間は空行1つ */
  .message__sign { gap: 8px; height: 56px; box-sizing: border-box; padding-top: 24px; border-top: 0; background: linear-gradient(#dde5e6, #dde5e6) 0 12px / 100% 1px no-repeat; }
  .message__role { font-size: 16px; line-height: 25.6px; letter-spacing: .8px; color: #617078; }
  .message__name { font-size: 22px; line-height: 32px; }

  /* profile (Figma 会社概要-sp 会社概要) */
  .profile__inner { padding: 48px 16px; gap: 32px; }
  .profile__inner .section-heading { gap: 8px; }
  .profile__inner .section-heading__en { font-size: 16px; line-height: 25.6px; letter-spacing: .8px; }
  .profile__inner .section-heading__lead--tight { font-size: 16px; line-height: 25.6px; letter-spacing: .8px; }
  .profile__grid { flex-direction: column; gap: 32px; }
  .profile-table { flex: none; width: 100%; border-radius: 0; }
  .profile-table__row { flex-direction: column; gap: 6px; padding: 16px; border-bottom: 0; box-shadow: inset 0 0 0 1px #dde5e6; background: #fff; }
  .profile-table__row + .profile-table__row { margin-top: 0; }
  .profile-table__row dt { flex: none; width: auto; font-weight: 700; font-size: 16px; line-height: 25.6px; letter-spacing: .8px; color: var(--color-green-1); }
  .profile-table__row dd { font-size: 16px; line-height: 25.5px; letter-spacing: .8px; }
  .profile-table__row:nth-child(4) dd, .profile-table__row:nth-child(5) dd { font-size: 14px; line-height: 22.5px; letter-spacing: 0; }
  .profile__map { flex: none; height: 220px; }

  /* csr (Figma 会社概要-sp 社会貢献活動: 行高固定・はみ出しは clip) */
  .csr__inner { padding: 48px 16px; gap: 32px; }
  .csr__inner .section-heading { gap: 8px; }
  .csr__inner .section-heading__en { font-size: 16px; line-height: 25.6px; letter-spacing: .8px; }
  .csr__inner .section-heading__lead { font-size: 16px; line-height: 25.6px; letter-spacing: .8px; }
  .csr__rows { width: 100%; gap: 32px; }
  .csr-list { display: grid; grid-template-columns: 174px 157px; grid-template-rows: 354.5px 290px; column-gap: 12px; row-gap: 32px; width: 343px; }
  .csr-list--center { grid-template-columns: 170px 162.5px; grid-template-rows: auto; height: auto; overflow: visible; }
  .csr-list--center .csr-card { overflow: visible; }
  .csr-card { width: auto; min-height: 0; gap: 12px; overflow: hidden; }
  .csr-list .csr-card:nth-child(n+3) { width: 170px; }
  .csr-list .csr-card:nth-child(4) { width: 162.5px; }
  .csr-card__image { width: 170px; height: 110px; aspect-ratio: auto; }
  .csr-list .csr-card:nth-child(2) .csr-card__image { width: 157px; height: 107px; }
  .csr-list .csr-card:nth-child(n+3) .csr-card__image, .csr-list--center .csr-card__image { width: 160px; height: 110px; }
  .csr-card__title { font-size: 16px; line-height: 24px; }
  .csr-card__text { font-size: 16px; line-height: 19.2px; }

  /* ---- 商品一覧 ---- */
  /* 商品一覧 SP (Figma 商品一覧 SP: 750px フレームの値 ÷2。見出しは Figma 通り小さい) */
  .page-title { gap: 4px; padding: 20px 20px 16px; }
  .page-title__en { font-size: 10px; line-height: 12px; letter-spacing: .4px; }   /* 2026-10-26 クライアント要望: お知らせと同じ大きさに (Figma SP は小さすぎた) */
  .page-title__ja { font-size: 24px; line-height: 35px; }
  .page-title__lead { font-family: var(--font-sans); font-size: 16px; line-height: 1.6; letter-spacing: .8px; }
  .breadcrumb--mint { border-bottom: 0; }
  .page-products .breadcrumb__list { display: flex; align-items: center; height: 24px; padding: 0 12px; font-size: 10px; line-height: 14.5px; letter-spacing: .2px; }
  .page-products main { display: flex; flex-direction: column; }   /* Figma SP: パンくずはタイトルの下 */
  .page-products .page-title { order: 0; }
  .page-products .breadcrumb { order: 1; }
  .page-products .catalog { order: 2; }
  .catalog__inner { width: 100%; padding: 0 10px; }
  .catalog-tabs { gap: 3px; width: 100%; padding: 0 8px; }
  .catalog-tab { flex: 1 1 0; width: auto; height: 25px; font-family: var(--font-sans); font-size: 14px; line-height: 20.5px; color: var(--color-text); }
  .catalog-tab.is-active { color: #fff; }
  .catalog-panel { gap: 16px; padding: 13.5px 8px 18.5px; }
  .catalog-filters, .catalog-filters[data-panel="brand"] { gap: 16px; width: 100%; margin-bottom: 0; }
  .catalog-filters[data-panel="category"] { min-height: 0; }
  .catalog-filters--concern { gap: 3px; }
  .filter-list, .filter-list--narrow, .filter-list--left { width: 322px; justify-content: center; gap: 3px; }
  .filter-pill, .filter-pill--ls, .filter-pill--thin { height: auto; padding: 2px 11px; border-width: 1px; font-size: 14px; line-height: 20.5px; letter-spacing: .7px; }
  .brand-feature--catalog { display: none; }   /* Figma SP: ブランド紹介パネルなし */
  .product-list--grid { grid-template-columns: repeat(2, 161.5px); justify-content: center; gap: 20px 16px; width: 100%; }
  .product-list--grid .product-card { width: auto; min-width: 0; }
  .product-list--grid .product-card:nth-child(4n+1), .product-list--grid .product-card:nth-child(4n+2) { margin-top: -4px; }   /* Figma: 4枚ごとのグループ間は 32/2 */
  .product-list--grid .product-card:nth-child(1), .product-list--grid .product-card:nth-child(2) { margin-top: 0; }
  .catalog-panel .pagination { margin-top: 0; gap: 8px; }
  .pagination__item { width: 28px; height: 28px; border-width: 1px; font-size: 10px; line-height: 12px; }
  .pagination__item .arrow { width: 7px; height: 7px; }
  .pagination__item .arrow::before { width: 7px; height: 7px; }
  .page-products .catalog { padding-bottom: 0; }

  /* ---- 商品詳細 ---- */
  .product-overview { padding: 16px 16px 40px; }
  .product-main { gap: 32px; padding: 20px 16px; }
  .product-main__top { flex-direction: column; gap: 24px; }
  .product-gallery { flex: none; width: 100%; gap: 12px; }
  .product-gallery__main { width: 100%; height: auto; aspect-ratio: 480 / 462; }
  .product-gallery__main img { width: 61%; height: auto; }
  .product-gallery__thumbs { gap: 12px; }
  .product-gallery__thumb { width: 72px; height: 72px; }
  .product-gallery__note { font-size: 11px; }
  .product-info { gap: 14px; }
  .product-info__cat { font-size: 13px; line-height: 19px; padding: 3px 12px; }
  .product-info__name { font-size: 28px; letter-spacing: 1px; }
  .product-info__catch { font-size: 17px; }
  .product-info__desc { font-size: 14px; letter-spacing: .5px; }
  .product-spec__row { gap: 12px; padding: 10px 0; }
  .product-spec__row dt { flex: 0 0 88px; font-size: 14px; }
  .product-spec__row dd { font-size: 14px; }
  .ingredients { width: 100%; height: auto; padding-top: 0; }
  .ingredients__group p, .ingredients__note { font-size: 14px; }
  .features__inner, .related__inner { gap: 32px; padding: 48px 16px; }
  .feature-list { flex-direction: column; gap: 12px; }
  .feature-card { padding: 20px; gap: 10px; }
  .feature-card__title { font-size: 18px; }
  .feature-card__text { font-size: 14px; }
  .howto { height: auto; padding: 24px 16px; gap: 12px; }
  .howto__title { font-size: 22px; line-height: 1.5; }
  .howto__text { font-size: 14px; }
  .howto__caution { font-size: 13px; padding: 12px; }
  .btn-all { padding: 10px 32px; font-size: 14px; }

  /* ---- お知らせ ---- */
  .page-title--news { align-items: flex-start; text-align: left; gap: 6px; padding: 30px 20px 20px; }
  .page-title--news .page-title__en { font-size: 10px; line-height: 12px; letter-spacing: .4px; }
  .page-title--news .page-title__ja { font-size: 24px; line-height: 35px; }
  .page-title--news .page-title__lead { width: 352px; max-width: none; font-size: 16px; line-height: 1.6; letter-spacing: .8px; white-space: nowrap; }   /* Figma: 703px幅(枠をはみ出す) */
  .page-news .breadcrumb__list { padding: 4px 12px; font-size: 11px; line-height: 16px; letter-spacing: .22px; }   /* Figma: 高さ24 (文字は5.5px相当→可読性のため11px維持) */
  .news-archive { gap: 0; }
  .news-filter { width: calc(100% - 45px); margin-top: 30px; padding: 20px 20px 10px; }   /* Figma: Frame166 gap 60/2 */
  .news-list--archive .news-item { border-bottom: 0; background: linear-gradient(#dcdcc7,#dcdcc7) bottom / 100% 1px no-repeat; }   /* 行高 98.5 (線は高さ0) */
  .news-archive__pagination .pagination { gap: 8px; }
  .news-filter__list { flex-wrap: wrap; gap: 6px; }
  .news-filter .filter-pill { height: auto; padding: 5px 11px; border-width: 1px; font-family: var(--font-sans); font-weight: 700; font-size: 12px; line-height: 17.5px; letter-spacing: 0; }
  .news-archive__list { width: 100%; padding: 0 20px 30px; }
  .news-list--archive .news-item a { gap: 12px; padding: 16px 0; align-items: flex-start; }
  .news-list--archive .news-item__thumb { flex: 0 0 100px; width: 100px; height: 66.5px; border-radius: 0; }
  .news-list--archive .news-item__content { gap: 6px; }
  .news-list--archive .news-item__meta time { font-weight: 400; font-size: 11px; line-height: 13px; }
  .news-list--archive .news-item__cat { padding: 2px 8px; font-weight: 500; font-size: 9px; line-height: 11px; }
  .news-list--archive .news-item__title { font-weight: 500; font-size: 14px; line-height: 1.6; letter-spacing: .7px; white-space: normal; }
  .news-archive__pagination { padding-bottom: 40px; }
  .news-single { padding: 30px 0 0; }
  .news-single__inner { width: auto; padding: 0 20px; }
  .news-single__header { margin-top: 24px; gap: 12px; padding-bottom: 16px; }
  .news-single__title { font-size: 22px; line-height: 1.5; }
  .news-single__thumb { width: 100%; height: auto; aspect-ratio: 3 / 2; margin-top: 24px; }
  .news-single__body { margin-top: 24px; min-height: 0; padding: 20px 16px; }
  .news-single__nav { flex-wrap: wrap; gap: 12px; margin-top: 40px; }
  .news-single__nav-btn--fill, .news-single__nav-btn--outline { width: auto; min-width: 140px; height: 40px; padding: 0 20px; font-size: 14px; }
  .news-related { width: auto; margin: 48px 20px 0; }
  .news-related__title { font-size: 22px; line-height: 32px; }
  .news-related__list { grid-template-columns: 1fr; column-gap: 0; row-gap: 0; margin-top: 16px; }
  .news-related__item a { gap: 12px; padding: 16px 0; }
  .news-related__thumb { flex: 0 0 100px; width: 100px; height: 67px; }
  .news-related__content { gap: 6px; padding-top: 0; }
  .news-related__name { font-size: 14px; line-height: 22px; }
  .news-single::after { height: 40px; }
  .wp-content { font-size: 14px; letter-spacing: .5px; gap: 16px; }
  .wp-content h2 { font-size: 19px; }

  /* ---- 採用情報 ---- */
  .sub-hero--recruit .sub-hero__inner { height: 240px; }
  .sub-hero--recruit .sub-hero__mv { left: 0; width: 100%; }
  .sub-hero--recruit .sub-hero__img { top: 0; }
  .sub-hero--recruit .sub-hero__title { top: 81.5px; filter: none; }
  .sub-hero--recruit .sub-hero__en { text-align: center; color: var(--color-green-1); }
  .heading-left { width: 100%; gap: 6px; }
  .heading-left__title { font-size: 28px; line-height: 40px; }
  .heading-left__note { font-size: 13px; }
  .jobs__inner, .flow__inner, .entry__inner { padding: 48px 16px; gap: 24px; }
  .jobs__inner { padding-bottom: 0; gap: 0; }
  .job-tabs { width: 100%; margin-top: 20px; }
  .job-tabs__list { width: 100%; gap: 12px; }
  .job-tabs__list li { flex: 1 1 0; }
  .job-tab { width: 100%; height: 48px; font-size: 14px; line-height: 20px; }
  .job-frame { width: 100%; margin-top: 0; padding: 12px; }
  .job-detail { width: 100%; }
  .job-detail__header { flex-direction: column; gap: 16px; padding: 16px; }
  .job-detail__photo { flex: none; width: 100%; height: auto; aspect-ratio: 500 / 440; }
  .job-detail__summary { gap: 12px; }
  .job-detail__head { gap: 12px; }
  .job-detail__title { font-size: 20px; line-height: 1.5; }
  .job-detail__tags { margin-top: 0; gap: 8px; }
  .job-detail__tags li { height: 24px; padding: 0 8px; font-size: 12px; }
  .job-detail__catch { margin-top: 0; font-size: 17px; line-height: 1.6; }
  .job-detail__desc { font-size: 14px; line-height: 1.9; }
  .filter-pill--sans { height: auto; font-size: 14px; line-height: 20px; padding: 5px 12px; }
  .job-table__row { flex-direction: column; }
  .job-table__row dt { flex: none; width: auto; padding: 10px 16px; border-right: 0; font-size: 15px; line-height: 22px; }
  .job-table__row dt br { display: none; }
  .job-table__row dd { padding: 12px 16px 14px; }
  .rt, .rt-checks li, .rt--strong, .rt--bold, .rt--bold16, .rt--emp { font-size: 14px; line-height: 26px; }
  .rt--lead, .rt--time { font-size: 16px; line-height: 26px; }
  .rt--salary { font-size: 20px; line-height: 30px; }
  .rt--note { font-size: 12px; line-height: 20px; }
  .rt-checks li::before { top: 9px; }
  .job-list { flex-direction: column; width: 100%; gap: 16px; }
  .flow-box { width: 100%; padding: 0; gap: 12px; border-radius: 0; }
  .flow-step { padding-left: 0; }
  .flow-step__num { left: 8px; top: -12px; width: 36px; height: 36px; font-size: 14px; line-height: 20px; }
  .flow-step__card { flex-direction: column; align-items: center; width: 100%; padding: 32px 16px 20px; gap: 12px; border-radius: 12px; }
  .flow-step__icon { flex: none; width: 80px; height: 80px; }
  .flow-step__icon img { transform: scale(.73); }
  .flow-step__content { width: 100%; gap: 8px; text-align: center; }
  .flow-step__label { font-size: 14px; line-height: 20px; }
  .flow-step__title { font-size: 20px; }
  .flow-step__text { font-size: 14px; }
  .flow-connector { height: 24px; }
  .arrow--connector, .arrow--connector::before { width: 18px; height: 18px; }
  .entry-card { width: 100%; padding: 24px 16px; gap: 24px; border-radius: 12px; }
  .entry-card__message { width: 100%; }
  .entry-card__title { font-size: 24px; line-height: 36px; }
  .entry-card__text { font-size: 14px; }
  .btn-gold { padding: 12px 24px; font-size: 15px; }

  /* ---- 太陽光発電所 ---- */
  .sub-hero--facility .sub-hero__title { width: 100%; }
  .sub-hero--facility .sub-hero__en { font-size: 10px; line-height: 1.5; }
  .sub-hero--facility .sub-hero__ja { font-size: 30px; }
  .stations__inner { gap: 32px; padding: 48px 16px; }
  .station-grid { grid-template-columns: 1fr; gap: 16px; }
  .station-card__image { height: 180px; }
  .station-card__content { padding: 16px; gap: 12px; }
  .station-card__date, .station-card__loc, .station-card__output-label { font-size: 14px; }
  .station-card__name { font-size: 18px; }
  .modal__panel { max-width: calc(100% - 24px); }
  .modal__top { padding: 12px 12px 4px; }
  .modal__close { width: 32px; height: 47px; }
  .modal__close img { width: 32px; height: 47px; }
  .modal__close-label { top: 33px; font-size: 10px; line-height: 14px; }   /* 44→32 の縮尺に合わせる */
  .modal__body { flex-direction: column; gap: 20px; padding: 0 16px 24px; }
  .modal__photo { height: 200px; }
  .modal__thumbs li { height: 64px; }
  .modal__thumbs { gap: 8px; }
  .modal__details { flex: none; gap: 12px; }
  .modal__title { font-size: 24px; line-height: 36px; }
  .spec-list__row dt { flex: 0 0 96px; }

  /* ---- お問い合わせ ---- */
  /* お問い合わせ SP (Figma 167:138 ÷2) */
  .page-contact .breadcrumb__list { display: flex; align-items: center; height: 24px; padding: 0 12px; font-size: 11px; line-height: 16px; letter-spacing: .22px; }
  .contact-intro { flex-direction: column; align-items: stretch; gap: 16px; padding: 30px 20px 24px; }
  .contact-intro__heading { gap: 6px; }
  .contact-intro__en { font-size: 10px; line-height: 12px; letter-spacing: .4px; }
  .contact-intro__title { font-size: 24px; line-height: 35px; }
  .contact-intro__desc { font-size: 16px; line-height: 27px; letter-spacing: .8px; }
  .contact-phone { flex: none; width: 100%; padding: 14px 16px; gap: 6px; border-radius: 8px; }
  .contact-phone__title { font-size: 16px; line-height: 23px; }
  .contact-phone__number { font-size: 17px; line-height: 24.5px; letter-spacing: .51px; }
  .contact-phone__hours { font-size: 12px; line-height: 19px; white-space: nowrap; }
  .contact-form { padding: 0 20px 40px; }
  .form-card { gap: 20px; padding: 24px 20px; border-radius: 8px; box-shadow: 0 5px 14px rgba(21,58,91,.07); }
  .form-group { gap: 10px; }
  .form-label { gap: 6px; font-size: 14px; line-height: 20.5px; }
  .form-required, .form-required--s { padding: 1.5px 5px; font-size: 7px; line-height: 8.5px; }
  .form-options { gap: 6px; }
  .form-option, .form-option--wide { width: 100%; height: 32px; padding: 7px 9px; gap: 8px; border-radius: 4px; font-size: 14px; line-height: 17px; }
  .form-option__radio { width: 11px; height: 11px; }
  .form-rows { gap: 20px; }
  .form-row { flex-direction: column; gap: 20px; }
  .form-field { gap: 6px; }
  .form-input { height: 36px; padding: 9px 10px; border-radius: 4px; font-size: 12px; line-height: 14.5px; }
  .form-input--textarea { height: 110px; }
  .form-submit { width: 211px; height: 38px; gap: 9px; font-size: 14px; line-height: 20.5px; }
  .form-submit .arrow { width: 6px; height: 6px; }
  .form-submit .arrow::before { width: 6px; height: 6px; }

  /* ---- なた豆LP SP (Figma 324:1160 "Frame 415" JSON ÷2) ---- */
  /* 葉っぱ: PCと同じ要素(72.7×160.3, 58.6°回転)を scale で縮小し、中心を Figma のバウンディングボックス中心に合わせる */
  .lp-leaf { width: 72.7px; height: 160.3px; }
  .lp-heading { font-size: 20px; line-height: 36px; letter-spacing: 1px; }
  .lp-heading__leaf { display: block; left: auto; margin: 0; }
  /* hero: 0〜703.5 (ヘッダー込み) */
  .lp-hero { height: 631.5px; padding: 0; overflow: hidden; }
  .lp-hero__bg { top: 4.5px; left: -6.5px; width: 386.5px; height: 620.5px; object-fit: fill; opacity: 1; }
  .lp-hero__sp-fade { position: absolute; left: -9.5px; top: 4.5px; width: 394px; height: 620.5px; background: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.8) 19.5%, #fff 47.5%, rgba(255,255,255,.8) 78.2%, rgba(255,255,255,0) 100%); }
  .lp-hero__inner { position: relative; display: block; width: 100%; height: 100%; }
  .lp-hero__glow, .lp-hero__leaf { display: none; }
  .lp-hero__title { position: absolute; left: 73.5px; top: 46.5px; width: 234px; font-size: 32px; line-height: 44.8px; letter-spacing: 1.6px; text-align: center; color: #3f1a13; }
  .lp-hero__sub { position: absolute; left: 75.5px; top: 136.5px; width: 230px; font-size: 20px; line-height: 28px; letter-spacing: 1px; text-align: center; }
  .lp-hero__award { position: absolute; left: 61px; top: 199px; width: 259px; height: 108.5px; }
  .lp-hero__laurel { top: 6.5px; width: 51.5px; height: 102px; }
  .lp-hero__laurel--l { left: 0; }
  .lp-hero__laurel--r { left: 207.5px; }
  .lp-hero__award-top { left: 82.5px; top: 0; width: 87.5px; font-size: 14px; line-height: 25px; letter-spacing: .7px; }
  .lp-hero__award-main { left: 31px; top: 12.5px; width: 190px; height: 63px; font-size: 24px; line-height: 63px; letter-spacing: 1.2px; }
  .lp-hero__award-main em { font-size: 35px; }
  .lp-hero__award-bottom { left: 89px; top: 65px; width: 74.5px; font-size: 14px; line-height: 25px; letter-spacing: .7px; }
  .lp-hero__award-note { left: 60px; top: 90px; width: 142.5px; font-size: 8px; line-height: 14.5px; letter-spacing: .4px; }
  .lp-hero__product { position: absolute; left: 22.5px; top: 307.5px; width: 317.5px; height: 317.5px; margin: 0; filter: drop-shadow(0 0 12.5px rgba(0,0,0,.1)); }
  /* 4つのこだわり: Frame 386 1269/2 pad 40/60 gap 14.5 */
  .lp-points, .lp-lineup, .lp-voice { overflow: hidden; }
  .lp-points__inner { padding: 40px 60px; gap: 0; }
  .lp-heading--points { position: relative; width: 236px; height: 88px; margin-left: 0; font-size: 20px; line-height: 32px; font-weight: 500; letter-spacing: 1px; text-align: center; white-space: nowrap; }
  .lp-heading--points .lp-heading__brand { font-size: 20px; }
  .lp-heading__num { display: inline; margin: 0; font-size: 32px; line-height: 51.2px; letter-spacing: 1.6px; }
  .lp-heading__sub { font-size: 20px; line-height: 32px; }
  .lp-heading--points .lp-heading__leaf { display: block; left: 166.65px; right: auto; top: -1.65px; width: 72.7px; height: 160.3px; transform: rotate(58.6deg) scale(.3771); }   /* Figma 311:201 bbox (239,794.5) 66×55 */
  .lp-point-list { display: grid; grid-template-columns: 153.5px 153.5px; column-gap: 12px; row-gap: 12px; justify-content: center; width: 100%; margin: 32.5px 0 0 -1.5px; }   /* 見出しフレーム 212/2 + gap 14.5 */
  .lp-point { width: 153.5px; padding: 5px; gap: 5px; overflow: visible; }
  .lp-point__circle { width: 110px; height: 110px; }
  .lp-point__title { margin-top: 0; font-size: 14px; line-height: 25.2px; letter-spacing: .7px; }
  .lp-point:first-child .lp-point__title { width: 143.5px; text-align: left; }
  .lp-point__text { width: 125.5px; margin-top: 2px; font-size: 10px; line-height: 18px; letter-spacing: .5px; white-space: nowrap; text-align: center; }
  .lp-point__text--w { width: 146.5px; }
  /* そもそも、なた豆って？: Frame 388 1249/2 pad 50 gap 31 */
  .lp-about__inner { flex-direction: column; align-items: stretch; gap: 0; padding: 50px 65.5px 50px 65px; }
  .lp-about__image { order: 2; display: block; width: 191.5px; height: 309.5px; margin: 31px auto 0 26px; }
  .lp-about__image img { width: 100%; height: 100%; object-fit: cover; }
  .lp-about__text { width: 244.5px; gap: 22px; text-align: left; }
  .lp-heading--about { font-size: 20px; line-height: 36px; letter-spacing: 1px; }
  .lp-about__leaf { left: 146.65px; top: -15.4px; width: 72.7px; height: 160.3px; transform: rotate(58.6deg) scale(.3257); }   /* Figma 311:232 bbox (219.5,1429) 57×47.5 */
  .lp-about__desc { margin-top: 0; font-size: 10px; line-height: 18px; letter-spacing: .5px; white-space: nowrap; text-align: left; }
  /* 商品ラインナップ: Frame 422 2580/2 pad 50 gap 40 */
  .lp-lineup__inner { padding: 50px 16px; gap: 0; }
  .lp-heading--lineup { letter-spacing: 1px; }
  .lp-heading--lineup .lp-heading__leaf { left: 138.9px; right: auto; top: -50.9px; width: 72.7px; height: 160.3px; transform: rotate(58.6deg) scale(.34); }   /* Figma 311:238 bbox (249,2017) 59.5×49.5 */
  .lp-lineup .product-list--grid { margin-top: 40px; grid-template-columns: 161.5px 161.5px; column-gap: 16px; row-gap: 20px; justify-content: start; margin-left: -1px; }   /* Figma Group150 x=16 */
  .lp-lineup .product-list--grid .product-card:nth-child(4n+1), .lp-lineup .product-list--grid .product-card:nth-child(4n+2) { margin-top: -4px; }
  .lp-lineup .product-list--grid .product-card:nth-child(1), .lp-lineup .product-list--grid .product-card:nth-child(2) { margin-top: 0; }
  /* 受賞バナー (image 21: 746x1066 @(4,6617)) */
  .lp-banner { width: 373px; height: 533px; margin: 56px 0 0 2px; }
  /* お客様の声: Frame 399 1757/2 pad 50 gap 31.5 */
  .lp-voice { height: auto; padding: 0; margin-top: 28px; }
  /* Figma SP: PC用の背景画像を半分のサイズ(1442×811 units → 721×405.5px)で左に173pxずらして下端に配置 → 最後のカードの後ろに波が回り込む */
  .lp-voice__bg { top: auto; bottom: 9.5px; left: -173px; width: 721px; max-width: none; height: 405.5px; object-fit: fill; }
  .lp-voice__inner { width: 100%; gap: 0; padding: 50px 0; }
  .lp-heading--voice { letter-spacing: 1px; }
  .lp-heading--voice .lp-heading__leaf { left: 92.4px; right: auto; top: -49.65px; width: 72.7px; height: 160.3px; transform: rotate(58.6deg) scale(.5); }   /* Figma 311:376 bbox (220.5,3913.5) 87.5×73 */
  .review-list { gap: 17px; width: 325px; margin: 31.5px auto 0; }
  .review-card { align-items: center; gap: 8px; padding: 12px; box-shadow: 0 3px 8px rgba(21,58,91,.02); }
  .review-card__author { flex: 0 0 88px; flex-direction: column; align-items: center; gap: 8px; width: 88px; }
  .review-card__avatar { width: 85px; height: 85px; border-width: 2px; }
  .review-card__meta { align-items: center; gap: 8px; margin: 0; }
  .review-card__who { font-size: 12px; line-height: 17.5px; }
  .stars { gap: 2px; }
  .stars img { width: 16px; height: 16px; }
  .review-card__body { width: 206px; gap: 8px; }
  .review-card__title { width: 170px; font-size: 14px; line-height: 19.6px; }
  .review-card__text { width: 203.5px; font-size: 12px; line-height: 19.2px; letter-spacing: 0; }
  /* ブランドメッセージ: 9494〜10425 (/2) */
  .lp-message { height: auto; padding: 0; margin-top: -1px; overflow: hidden; }
  .lp-message__img, .lp-message__fade { display: none; }
  .lp-message__sp-bg { display: block; width: 375px; height: 250px; object-fit: cover; }
  .lp-message__sp-photo { display: block; width: 374.5px; height: 250px; margin-top: -34.5px; object-fit: cover; }
  /* Figma Rectangle95: 葉っぱ写真と人物写真の境目をぼかす白い帯 (280/2=140px, 2°傾き) */
  .lp-message::after { content: ""; position: absolute; left: 0; top: 150px; width: 375px; height: 100px; background: linear-gradient(180deg, rgba(255,255,255,0) 0%, #fff 60%, #fff 100%); z-index: 1; pointer-events: none; }
  .lp-message__text { z-index: 2; }
  .lp-message::before { content: ""; position: absolute; left: 0; top: 0; width: 375px; height: 257.5px; background: linear-gradient(180deg, rgba(255,255,255,0) 0%, #fff 45.2%, rgba(255,255,255,0) 100%); z-index: 1; }
  .lp-message__text { position: absolute; left: 29.5px; top: 36px; width: 338.5px; margin: 0; z-index: 2; }
  .lp-message__title { font-size: 24px; line-height: 43.2px; letter-spacing: 1.2px; }
  .lp-message__desc { margin-top: 0; padding: 0; font-size: 14px; line-height: 25.2px; letter-spacing: .7px; white-space: nowrap; }
  .page-lp .site-footer { margin-top: 0; }

  /* プライバシーポリシー SP (Figma 165:2 ÷2) */
  .page-privacy .breadcrumb__list { display: flex; align-items: center; height: 24px; padding: 0 12px; font-size: 11px; line-height: 16px; letter-spacing: .22px; }
  .page-privacy .site-footer { padding-top: 0; background: var(--color-footer); }
  .page-privacy .site-footer__wave { top: 0; }
  .privacy { padding: 30px 20px 65px; }   /* Figma: 本文フレーム固定高 5142 → 下余白 130/2 */
  .privacy__inner { gap: 30px; width: auto; }
  .privacy__heading { gap: 6px; }
  .privacy__en { font-size: 10px; line-height: 12px; letter-spacing: .4px; }
  .privacy__title { font-size: 24px; line-height: 35px; }
  .privacy__lead { width: auto; font-size: 16px; line-height: 26.5px; letter-spacing: .8px; }
  .privacy__card { gap: 20px; padding: 20px 20px 24px; box-shadow: none; }
  .privacy-section { gap: 10px; }
  .privacy-section__title { font-size: 16px; line-height: 23px; letter-spacing: .8px; }
  .privacy-section__text, .privacy-section__list { font-size: 14px; line-height: 25px; letter-spacing: .7px; }
  .privacy-section__text + .privacy-section__list { margin-top: -10px; }
  .privacy-section--last { gap: 6px; }
  .privacy-section__url { font-family: var(--font-sans); font-size: 14px; line-height: 25px; letter-spacing: .7px; color: var(--color-green-1); }
}

/* ---------- Contact Form 7 (WordPress) 用: 既存フォームデザインに合わせる ---------- */
.form-options--cf7 .wpcf7-radio { display: contents; }
.form-options--cf7 .wpcf7-list-item { display: contents; margin: 0; }
.form-options--cf7 .wpcf7-list-item label { display: inline-flex; align-items: center; gap: 12px; width: 256px; height: 48px; padding: 0 16px; border: 1px solid var(--color-border-cream); background: #fff; font-size: 16px; color: var(--color-text); cursor: pointer; }
.form-options--cf7 .wpcf7-list-item label:has(input:checked) { border-color: var(--color-green-1); background: var(--color-bg-mint); }
.form-options--cf7 .wpcf7-list-item input { accent-color: var(--color-green-1); width: 18px; height: 18px; margin: 0; }
.form-card .wpcf7-form-control-wrap { display: block; width: 100%; }
.form-card .wpcf7-spinner { display: none; }
.form-card .wpcf7-not-valid-tip { display: block; margin-top: 6px; font-size: 13px; color: #c0392b; }
.form-card .wpcf7-response-output { margin: 24px 0 0; padding: 12px 16px; border: 1px solid var(--color-green-1); font-size: 14px; }
.form-card .form-submit { border: 0; cursor: pointer; }
@media (max-width: 767px) { .form-options--cf7 .wpcf7-list-item label { width: 100%; height: 40px; font-size: 14px; } }
.product-gallery__thumb[data-src] { background-size: cover; background-position: center; cursor: pointer; }

/* ---------- 採用: 要項の本文 (WordPress の WYSIWYG 出力) を静的版 .rt と同じ見た目に ---------- */
.rt-wysiwyg p { font-size: 16px; line-height: 34px; color: #263238; }
.rt-wysiwyg p + p { margin-top: 16px; }
.rt-wysiwyg strong { font-weight: 700; }
.rt-wysiwyg ul { padding-left: 1.2em; list-style: disc; font-size: 16px; line-height: 34px; }
.rt-wysiwyg h4 { font-weight: 700; font-size: 18px; line-height: 32px; }
@media (max-width: 767px) { .rt-wysiwyg p, .rt-wysiwyg ul { font-size: 14px; line-height: 26px; } }
.rt-wysiwyg p > strong:only-child { font-size: 18px; line-height: 32px; }   /* 太字だけの段落 = 見出し扱い (静的版 .rt--lead) */
