@charset "UTF-8";
/* =========================================
   _common.scss
   ヘッダー/フッター/ボタン/見出しなどページ共通
  ========================================= */
/* Fonts */
/* Layout */
/* clampは変数に入れない（LibSassが事故る） */
/* Theme */
/* Base */
* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  color: #111;
  background: #fff;
  font-family: "Noto Sans JP", system-ui, -apple-system, "Segoe UI", sans-serif;
  line-height: 1.7;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}

a {
  color: inherit;
}

h2, h3, h4, h5, h6 {
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  line-height: 1.25;
  margin: 0;
}

p {
  margin: 0;
}

ul {
  margin: 0;
  padding: 0;
}

.l-container {
  width: min(100% - (clamp(16px, 3vw, 32px) * 2), 1300px);
  margin-inline: auto;
}

/* Reveal */
[data-reveal] {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.45s cubic-bezier(0.2, 0.8, 0.2, 1), transform 0.45s cubic-bezier(0.2, 0.8, 0.2, 1);
  will-change: opacity, transform;
}

[data-reveal].is-in {
  opacity: 1;
  transform: translateY(0);
}

/* Buttons */
.c-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 12px 18px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #fff;
  background: #901f17;
  border: 1px solid transparent;
  transition: transform 0.45s cubic-bezier(0.2, 0.8, 0.2, 1), opacity 0.45s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.c-btn:hover {
  transform: translateY(-1px);
  opacity: 0.92;
}
.c-btn:active {
  transform: translateY(0);
  opacity: 0.88;
}

/* Section title */
.c-sectionTitle {
  margin-bottom: 18px;
}
.c-sectionTitle__ja {
  font-size: clamp(22px, calc(2vw + 14px), 34px);
  letter-spacing: 0.04em;
}

/* =========================================
   Utility
========================================= */
.u-vh {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
  white-space: nowrap;
}

/* Header */
/* =========================================
   FV（ヒーロー）
========================================= */
/* hero本体：サブメニューが下に出るので overflow は visible */
.hero {
  position: relative;
  height: 900px;
  max-height: 100vh;
  overflow: visible;
  padding: 0; /* ここは不要なら 0 */
}

@media (max-width: 1000px) {
  .hero {
    height: 70vw;
    /*  min-height: 520px;*/
  }
}
@media (max-width: 600px) {
  .hero {
    height: 70vw;
    min-height: 350px;
  }
}
.hero__bg {
  position: absolute;
  inset: 0;
  overflow: hidden;
  z-index: 0;
}

.hero__slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 1.2s cubic-bezier(0.2, 0.8, 0.2, 1);
  will-change: opacity;
}

.hero__slide.is-active {
  opacity: 1;
}

.hero__slide img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center center;
     object-position: center center;
  display: block;
}

@media (max-width: 1600px) {
  .hero__slide img {
    -o-object-position: 20% center;
       object-position: 20% center;
  }
}
@media (max-width: 1200px) {
  .hero__slide img {
    -o-object-position: 20% 20%;
       object-position: 20% 20%;
  }
}
@media (max-width: 500px) {
  .hero__slide img {
    -o-object-position: 10% 20%;
       object-position: 10% 20%;
  }
}
/* =========================================
   Hero Header（h1 / ロゴ / ナビ）
========================================= */
.heroHeader {
  position: absolute;
  inset: 0;
  z-index: 10;
  display: grid;
  grid-template-rows: auto auto 1fr auto;
  align-items: start;
  justify-items: center;
  text-align: center;
  pointer-events: none;
}

.heroHeader__title {
  margin-top: 24px;
  color: #fff;
  font-size: 16px;
  letter-spacing: 0.06em;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.6);
  pointer-events: auto;
}

@media (max-width: 600px) {
  .heroHeader__title {
    display: none;
  }
}
.heroHeader__logo {
  margin-top: 20px;
  width: 20%;
  pointer-events: auto;
}

.heroHeader__logo img {
  max-width: 240px;
  min-width: 80px;
  width: 100%;
  height: auto;
  display: block;
}

/* SPハンバーガー */
.heroHeader__hamburger {
  pointer-events: auto;
}

/* =========================================
   PC NAV（赤帯）
========================================= */
.gNav {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.85);
  pointer-events: auto;
  z-index: 20;
  overflow: visible;
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  transition: transform 0.35s ease, background-color 0.35s ease;
}

.gNav__menu {
  max-width: 1300px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  list-style: none;
  padding: 0;
}

/* li を「ナビのセル」として高さを持たせる */
.gNav__menu > li {
  position: relative;
  border-left: 1px solid #fff;
  min-height: 64px; /* a と揃える */
  display: flex; /* a を縦横いっぱいにするため */
}

.gNav__menu > li:last-child {
  border-right: 1px solid #fff;
}

/* a を li の全面に広げる */
.gNav__menu > li > a {
  flex: 1; /* li 全面 */
  display: grid;
  place-items: center;
  min-height: 64px; /* 念のため残してOK */
  padding: 10px 8px;
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  text-align: center;
}

/* hover範囲＝セル全面 */
.gNav__menu > li:hover > a {
  background: rgba(255, 255, 255, 0.12);
}

/* クリック時なども気持ち良く（任意） */
.gNav__menu > li > a:active {
  background: rgba(255, 255, 255, 0.18);
}

/* サブメニュー */
.gNav__sub {
  position: absolute;
  left: 0;
  top: 100%;
  width: 100%;
  /* min-width: 240px;*/
  margin: 0;
  padding: 12px 0;
  list-style: none;
  background: rgba(144, 31, 23, 0.92);
  z-index: 999;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity 0.45s cubic-bezier(0.2, 0.8, 0.2, 1), transform 0.45s cubic-bezier(0.2, 0.8, 0.2, 1), visibility 0.45s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.gNav__sub a {
  display: block;
  padding: 10px 16px;
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  white-space: nowrap;
}

.gNav__sub a:hover {
  background: rgba(255, 255, 255, 0.12);
}

/* hover/focus */
.gNav__menu > li.has-sub:hover > .gNav__sub,
.gNav__menu > li.has-sub:focus-within > .gNav__sub {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* SPではPCナビを消す */
@media (max-width: 789px) {
  .gNav {
    display: none;
  }
}
/* heroHeader内のリンク・ボタンを有効にする（念押し） */
.heroHeader .gNav,
.heroHeader .heroHeader__hamburger,
.heroHeader a,
.heroHeader button {
  /* pointer-events: auto;*/
}

/* 固定モード（JSで付与） */
.gNav.is-fixed {
  position: fixed;
  top: 0;
  bottom: auto;
  z-index: 300;
  background: rgba(0, 0, 0, 0.92);
}

.pageHero .gNav.is-fixed {
  position: fixed;
  top: 0;
  bottom: auto;
}

/* SPではPCナビ非表示（既存のままでOK） */
@media (max-width: 789px) {
  .gNav {
    display: none;
  }
}
/* =========================================
   Drawer（SP menu）最終統合版
   - PCでは非表示
   - 789px以下で有効（$bp-md相当）
   - JS: .siteDrawer に data-open="true" が付いたら開く
========================================= */
/* PC：Drawer/ハンバーガーは非表示 */
.siteDrawer {
  display: none;
}

.heroHeader__hamburger {
  display: none;
}

/* 背景（スライド）だけクリック無効：ハンバーガーのクリック阻害対策 */
.hero__bg,
.hero__slide,
.hero__slide img {
  pointer-events: none;
}

/* SP：Drawer有効 */
@media (max-width: 789px) {
  /* ハンバーガー */
  .heroHeader__hamburger {
    display: inline-grid;
    place-items: center;
    position: absolute;
    top: 0px;
    right: 0px;
    width: 44px;
    height: 44px;
    border: 0;
    background: rgba(144, 31, 23, 0.85);
    align-content: space-evenly;
    cursor: pointer;
    z-index: 10000; /* 常に最前面 */
    pointer-events: auto;
  }
  .heroHeader__hamburger span {
    display: block;
    width: 22px;
    height: 2px;
    background: #fff;
    border-radius: 99px;
  }
  .heroHeader__hamburger span:nth-child(2) {
    margin: 0px 0;
  }
  /* Drawer本体（閉じている時はクリック不可） */
  .siteDrawer {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 9999;
    pointer-events: none;
  }
  /* 暗幕：下 */
  .siteDrawer__backdrop {
    position: absolute;
    inset: 0;
    border: 0;
    background: rgba(0, 0, 0, 0.4);
    opacity: 0;
    transition: opacity 0.35s ease;
    z-index: 0;
    /*  pointer-events: auto;*/
  }
  /* パネル：上（暗幕より上） */
  .siteDrawer__panel {
    position: absolute;
    top: 0;
    right: 0;
    height: 100%;
    width: 86vw;
    max-width: 360px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
    transform: translateX(105%);
    transition: transform 0.35s ease;
    padding: 22px 18px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    z-index: 1;
    pointer-events: auto;
  }
  /* 開いた状態 */
  .siteDrawer[data-open=true] {
    pointer-events: auto;
  }
  .siteDrawer[data-open=true] .siteDrawer__backdrop {
    opacity: 1;
  }
  .siteDrawer[data-open=true] .siteDrawer__panel {
    transform: translateX(0);
  }
  /* 中身 */
  .siteDrawer__nav {
    display: grid;
    gap: 10px;
  }
  .siteDrawer__link {
    display: block;
    padding: 12px 10px;
    border-radius: 10px;
    text-decoration: none;
    font-weight: 700;
    color: #111;
    background: rgba(0, 0, 0, 0.03);
  }
  .siteDrawer__group {
    display: grid;
    gap: 6px;
  }
  .siteDrawer__accordion {
    width: 100%;
    border: 0;
    background: rgba(0, 0, 0, 0.03);
    font-weight: 700;
    padding: 12px 10px;
    border-radius: 10px;
    cursor: pointer;
    position: relative;
    font-size: 1em;
  }
  .siteDrawer__accordion::after {
    content: "";
    position: absolute;
    right: 12px;
    top: 50%;
    width: 10px;
    height: 10px;
    border-right: 2px solid #555;
    border-bottom: 2px solid #555;
    transform: translateY(-60%) rotate(45deg);
    transition: transform 0.35s ease;
  }
  .siteDrawer__accordion[aria-expanded=true]::after {
    transform: translateY(-35%) rotate(-135deg);
  }
  /* ▼ サブメニュー：hiddenを最優先（勝手に出ない） */
  .siteDrawer__body {
    display: none;
  }
  .siteDrawer__body[hidden] {
    display: none !important;
  }
  .siteDrawer__body:not([hidden]) {
    display: grid;
    gap: 6px;
    padding-left: 10px;
  }
  .siteDrawer__body a {
    padding: 10px;
    border-radius: 8px;
    text-decoration: none;
    color: #111;
    width: 100%;
    background: rgba(0, 0, 0, 0.02);
  }
  .siteDrawer__hr {
    border: 0;
    border-top: 1px solid rgba(0, 0, 0, 0.08);
    margin: 12px 0;
  }
  /* ==========================
     Hamburger → Close
  ========================== */
  .heroHeader__hamburger span {
    transition: transform 0.25s ease, opacity 0.2s ease;
    transform-origin: center;
  }
  /* OPEN状態（×マーク） */
  .heroHeader__hamburger.is-open span:nth-child(1) {
    transform: translateY(11px) rotate(45deg);
  }
  .heroHeader__hamburger.is-open span:nth-child(2) {
    opacity: 0;
  }
  .heroHeader__hamburger.is-open span:nth-child(3) {
    transform: translateY(-11px) rotate(-45deg);
  }
}
/* =========================================
   Footer
========================================= */
.siteFooter {
  background: #000000; /* テーマカラー */
  color: #fff;
}

.siteFooter__inner {
  padding: 24px 0;
  display: grid;
  gap: 14px;
  justify-items: center;
}

/* フッターメニュー */
.siteFooter__subnav {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 20px;
  justify-content: center;
}

.siteFooter__subnav a {
  color: #fff;
  text-decoration: none;
  font-weight: 600;
  opacity: 0.9;
  transition: opacity 0.25s ease, -webkit-text-decoration 0.25s ease;
  transition: opacity 0.25s ease, text-decoration 0.25s ease;
  transition: opacity 0.25s ease, text-decoration 0.25s ease, -webkit-text-decoration 0.25s ease;
}

.siteFooter__subnav a:hover {
  opacity: 1;
  text-decoration: underline;
}

/* コピーライト */
.siteFooter__copy {
  font-size: 12px;
  opacity: 0.8;
  text-align: center;
}

/* =========================================
   Page Top Button
========================================= */
.toTop {
  position: fixed;
  right: 20px;
  bottom: 20px;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 0;
  background: #901f17;
  cursor: pointer;
  z-index: 200;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s ease;
}

/* 表示状態 */
.toTop.is-show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* 矢印 */
.toTop span {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 12px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: translate(-50%, -30%) rotate(-45deg);
}

/* hover */
.toTop:hover {
  opacity: 0.9;
}

/* SP 微調整 */
@media (max-width: 789px) {
  .toTop {
    right: 12px;
    bottom: 12px;
    width: 44px;
    height: 44px;
  }
}
/* =========================================
   Second page hero
========================================= */
.pageHero {
  position: relative;
  height: 320px; /* お好みで */
  max-height: 70vh;
  overflow: visible; /* サブメニューのため */
}

.pageHero__bg {
  position: absolute;
  inset: 0;
  overflow: hidden; /* 背景だけクリップ */
  z-index: 0;
}

.pageHero__bg img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}

/* 上に重ねる枠 */
.pageHeroHeader {
  position: absolute;
  inset: 0;
  z-index: 10;
  display: grid;
  grid-template-rows: auto auto 1fr;
  justify-items: center;
  pointer-events: none; /* 基本無効、必要部だけ有効 */
}

/* ロゴ中央 */
.pageHeroHeader__logo {
  margin-top: 18px;
  pointer-events: auto;
}

.pageHeroHeader__logo img {
  width: min(200px, 20vw);
  height: auto;
  display: block;
}

/* タイトル＋パンくずエリア */
.pageHeroHeader__titleArea {
  width: 100%;
  margin-inline: auto;
  padding: 28px 24px;
  padding-top: 40px;
  background: #000000;
  text-align: center;
  pointer-events: auto;
}

.pageTitle {
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  color: #ffffff;
  font-size: clamp(24px, 2.2vw + 14px, 40px);
  margin: 0;
  letter-spacing: 0.08em;
}

/* パンくず */
.breadcrumbs {
  margin-top: 10px;
  font-size: 13px;
  text-align: left;
}

.breadcrumbs__list {
  list-style: none;
  display: inline-flex;
  gap: 10px;
  padding: 0;
  margin: 0;
  flex-wrap: wrap;
  justify-content: center;
}

.breadcrumbs__item {
  color: #ffffff;
}

.breadcrumbs__item a {
  color: #ffffff;
  text-decoration: none;
}

.breadcrumbs__item a:hover {
  text-decoration: underline;
  color: #ffffff;
}

.breadcrumbs__item + .breadcrumbs__item::before {
  content: ">";
  margin-right: 10px;
  opacity: 0.6;
}

/* gNav は hero の一番下に（トップと同じ） */
.pageHero .gNav {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: auto;
}

/* SP微調整 */
@media (max-width: 789px) {
  .pageHero {
    height: 180px;
  }
}
/* =========================================
  Page Content (2nd pages)
  - headings / text / list / table / media-box / buttons
========================================= */
.page-content {
  padding: 56px 0;
}

/* inner（本文幅） */
.l-inner {
  width: min(100% - 40px, 980px);
  margin-inline: auto;
}

/* --------------------------
  Typography
-------------------------- */
.page-content p {
  line-height: 1.7;
  margin-top: 14px;
}

.page-content p + p {
  margin-top: 12px;
}

/* h3（英字ラベル付き） */
.c-h3 {
  position: relative;
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-weight: 700;
  font-size: clamp(22px, 1.6vw + 14px, 34px);
  letter-spacing: 0.06em;
  color: #901f17;
  margin: 0 0 18px;
  padding-top: 18px;
}

/* data-en を上に出す */
.c-h3::before {
  content: attr(data-en);
  position: absolute;
  top: 0;
  left: 0;
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 0.22em;
  color: rgba(0, 0, 0, 0.55);
}

/* 下線 */
.c-h3::after {
  content: "";
  display: block;
  height: 1px;
  background: rgba(144, 31, 23, 0.35);
  margin-top: 12px;
}

/* h4 / h5 */
.c-h4 {
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-weight: 700;
  font-size: clamp(18px, 1.1vw + 14px, 24px);
  margin: 28px 0 10px;
  padding: 10px 14px;
  background: #901f17; /* メインカラー */
  color: #fff; /* 白文字 */
  border-radius: 6px; /* 角を少しだけ丸める（不要なら消してOK） */
}

.c-h5 {
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-weight: 700;
  font-size: 16px;
  margin: 22px 0 10px;
  padding: 8px 12px;
  background: #f2f2f2; /* 薄めグレー */
  color: #111;
}

.c-h6 {
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-weight: 700;
  font-size: 16px;
  margin: 22px 0 10px;
  color: #111;
}

/* --------------------------
  Lists
-------------------------- */
.c-list {
  margin: 14px 0 0;
  padding-left: 1.25em;
  line-height: 1.7;
}

.c-list li {
  margin: 6px 0;
}

.c-list--disc {
  list-style: disc;
}

.c-list--num {
  list-style: decimal;
}

/* --------------------------
  Table (responsive)
-------------------------- */
.c-table-wrap {
  margin-top: 12px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-radius: 12px;
  border: 1px solid rgba(0, 0, 0, 0.08);
  background: #fff;
}

.c-table {
  width: 100%;
  border-collapse: collapse;
  /*min-width: 560px;*/
}

.c-table th,
.c-table td {
  padding: 12px 14px;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  vertical-align: top;
  font-size: 14px;
}

.c-table thead th {
  background: rgba(144, 31, 23, 0.08);
  border-top: 0;
  font-weight: 800;
}

.c-table tbody th {
  /*width: 160px;*/
  background: rgba(0, 0, 0, 0.02);
  font-weight: 800;
}

/* --------------------------
  Media box (img + text)
-------------------------- */
.media-box {
  margin-top: 14px;
  display: grid;
  gap: 16px;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
}

@media (min-width: 789px) {
  .media-box {
    grid-template-columns: 42% 1fr;
    align-items: stretch;
  }
}
.media-box__img {
  position: relative;
  aspect-ratio: 16/10;
  background: rgba(0, 0, 0, 0.06);
}

@media (min-width: 789px) {
  .media-box__img {
    aspect-ratio: auto;
  }
}
.media-box__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}

.media-box__body {
  padding: 18px 18px 20px;
}

.media-box__title {
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-weight: 700;
  font-size: 18px;
  margin: 0 0 10px;
}

/* --------------------------
  Buttons (variations)
-------------------------- */
.c-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 12px;
  margin-top: 14px;
}

/* 既存 .c-btn をベースにサイズだけ足す想定 */
.c-btn--lg {
  padding: 14px 22px;
  font-size: 16px;
}

.c-btn--md {
  padding: 12px 18px;
  font-size: 15px;
}

.c-btn--sm {
  padding: 10px 14px;
  font-size: 13px;
}

.c-btn--outline {
  background: transparent;
  color: #901f17;
  border-color: #901f17;
}

.c-btn--outline:hover {
  background: rgba(144, 31, 23, 0.08);
  opacity: 1;
}

/* ==========================
   Lightbox（汎用）
========================== */
.c-lightbox {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: none; /* 初期は非表示 */
}

.c-lightbox[aria-hidden=false] {
  display: block;
}

.c-lightbox__backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  background: rgba(0, 0, 0, 0.55);
}

.c-lightbox__panel {
  position: absolute;
  inset: 24px;
  margin: auto;
  max-width: 1100px;
  /*max-height: calc(100vh - 48px);*/
  max-height: 560px;
  background: #fff;
  border-radius: 18px;
  border: 1px solid #e2e2e2;
  overflow: hidden;
  display: grid;
  place-items: center;
}

.c-lightbox__figure {
  margin: 0;
  width: 100%;
  height: 100%;
  max-height: 560px;
  display: grid;
  grid-template-rows: 1fr auto;
}

.c-lightbox__img {
  width: 100%;
  height: 100%;
  max-height: 560px;
  -o-object-fit: contain;
     object-fit: contain;
  background: #111; /* 余白が出た時の背景 */
}

.c-lightbox__cap {
  padding: 12px 16px;
  font-size: 14px;
  border-top: 1px solid #e2e2e2;
  color: #333;
  min-height: 44px;
}

.c-lightbox__close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 44px;
  height: 44px;
  border: 1px solid #e2e2e2;
  border-radius: 12px;
  background: #fff;
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
}

.c-lightbox__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 46px;
  height: 46px;
  border-radius: 999px;
  border: 1px solid #e2e2e2;
  background: rgba(255, 255, 255, 0.92);
  cursor: pointer;
  font-size: 28px;
  line-height: 1;
  display: grid;
  place-items: center;
}

.c-lightbox__prev {
  left: 10px;
}

.c-lightbox__next {
  right: 10px;
}

.c-lightbox[data-has-group=false] .c-lightbox__nav {
  display: none;
}

@media (max-width: 789px) {
  .c-lightbox__panel {
    inset: 14px;
    border-radius: 14px;
  }
  .c-lightbox__cap {
    font-size: 13px;
  }
}
/* ==========================
  Mega Solar
========================== */
.solarSection {
  margin-top: 28px;
}

.solarHero {
  margin-top: 16px;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid #e2e2e2;
  background: #fff;
}
.solarHero img {
  width: 100%;
  height: auto;
  display: block;
}

/* 3枚サムネ */
.solarThumbs {
  margin-top: 12px;
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, 1fr);
}
.solarThumbs a {
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid #e2e2e2;
  background: #fff;
  display: block;
}
.solarThumbs img {
  width: 100%;
  aspect-ratio: 16/10;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}

@media (max-width: 789px) {
  .solarThumbs {
    grid-template-columns: 1fr;
  }
}
/* 1pxラインの箱（既存が無ければ） */
.c-box--line {
  border: 1px solid #e2e2e2;
  border-radius: 18px;
  background: #fff;
  padding: 18px 18px;
}

/* YouTube埋め込み（レスポンシブ） */
.solarMovies {
  margin-top: 18px;
  display: grid;
  gap: 18px;
}

.embed16x9 {
  border: 1px solid #e2e2e2;
  border-radius: 18px;
  overflow: hidden;
  background: #000;
}
.embed16x9 iframe {
  width: 100%;
  aspect-ratio: 16/9;
  height: auto;
  display: block;
}

/* 写真カード */
.solarNote {
  margin-top: 6px;
  color: #666;
  font-size: 14px;
}

.solarCards {
  margin-top: 14px;
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(3, 1fr);
}

@media (max-width: 1000px) {
  .solarCards {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 789px) {
  .solarCards {
    grid-template-columns: 1fr;
  }
}
.solarCard {
  border: 1px solid #e2e2e2;
  border-radius: 18px;
  overflow: hidden;
  background: #fff;
}

.solarCard__img {
  display: block;
  background: #f7f7f7;
}
.solarCard__img img {
  width: 100%;
  aspect-ratio: 16/10;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}

.solarCard__body {
  padding: 14px 14px 16px;
}

.solarCard__title {
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-weight: 700;
  font-size: 16px;
  margin: 0 0 10px;
}

.solarCard__text {
  margin: 0;
  color: #666;
  font-size: 14px;
}

/* 仕様表示 */
.solarSpec {
  margin: 0;
  display: grid;
  gap: 6px;
}
.solarSpec > div {
  display: grid;
  grid-template-columns: 88px 1fr;
  gap: 10px;
  font-size: 14px;
  line-height: 1.6;
}
.solarSpec dt {
  font-weight: 700;
  color: #111;
}
.solarSpec dd {
  margin: 0;
  color: #333;
}

/* 画像リンク hover */
.popupLink {
  transition: opacity 0.2s ease;
}
.popupLink:hover {
  opacity: 0.9;
}

/* =========================================
   node-sass（LibSass）対策
   - clamp() や calc() 内の単位混在を Sass に計算させない
========================================= */
/* =========================================
   style.scss（ページ個別用）
========================================= */
/* =========================================
   About Block（左画像・右テキスト）
========================================= */
.aboutBlock {
  position: relative;
  padding: clamp(20px, 8vw, 80px) 0;
  background: url("../img/index/bg01.png");
  background-size: auto 100%;
  background-repeat: no-repeat;
  background-position: left center;
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  overflow: hidden;
}

.aboutBlock__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: clamp(32px, 5vw, 80px);
}

/* 左：画像 */
.aboutBlock__media {
  display: flex;
  justify-content: center;
}

.aboutBlock__media img {
  max-width: 420px;
  width: 100%;
  height: auto;
}

/* 右：テキスト */
.aboutBlock__content {
  max-width: 520px;
}

.aboutBlock__lead {
  font-size: clamp(16px, 2.2vw, 24px);
  line-height: 1.8;
  margin-bottom: 16px;
}

.aboutBlock__title {
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  color: #901f17;
  font-size: clamp(22px, 3.2vw, 40px);
  line-height: 1.5;
  margin-bottom: 24px;
}

.aboutBlock__text {
  font-size: 16px;
  line-height: 1.9;
}

/* =========================================
   Responsive
========================================= */
@media (max-width: 789px) {
  .aboutBlock__inner {
    grid-template-columns: 1fr;
  }
  .aboutBlock__media {
    order: 2;
  }
  .aboutBlock__content {
    order: 1;
  }
}
/* =========================================
   NEWS
========================================= */
.newsBlock {
  background: #901f17;
  color: #fff;
  padding: clamp(60px, 8vw, 120px) 0;
}

.newsBlock__inner {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: clamp(32px, 6vw, 80px);
  align-items: center;
}

/* 左：見出し */
.newsBlock__head {
  text-align: center;
}

.newsBlock__title {
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: clamp(22px, 3.2vw, 35px);
  letter-spacing: 0.1em;
  margin-bottom: 10px;
}

.newsBlock__en {
  display: inline-block;
  font-size: 18px;
  letter-spacing: 0.15em;
  padding-top: 10px;
  width: 100%;
  border-top: 1px solid rgba(255, 255, 255, 0.6);
}

/* 右：リスト */
.newsBlock__list {
  display: grid;
  gap: 20px;
}

.newsBlock__item {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 20px;
  padding-bottom: 14px;
  border-bottom: 1px dotted rgba(255, 255, 255, 0.6);
  color: #fff;
  text-decoration: none;
  transition: opacity 0.25s ease;
}

.newsBlock__item:hover {
  opacity: 0.7;
}

.newsBlock__text {
  font-size: 15px;
  line-height: 1.7;
}

/* 矢印 */
.newsBlock__arrow {
  position: relative;
  width: 22px;
  height: 1px;
  background: #fff;
}

.newsBlock__arrow::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  width: 6px;
  height: 6px;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: translateY(-50%) rotate(45deg);
}

/* =========================================
   Responsive
========================================= */
@media (max-width: 789px) {
  .newsBlock__inner {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .newsBlock__head {
    text-align: center;
    width: 10em;
    margin-left: auto;
    margin-right: auto;
  }
}
/* =========================================
   ONLINE SHOPPING
========================================= */
.shopBlock {
  position: relative;
  padding: clamp(60px, 8vw, 120px) 0;
  color: #111;
  background: #fff;
  padding-bottom: 0px;
}

/* 背景画像（薄く） */
.shopBlock::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("../img/index/bg02.png") center/cover no-repeat;
  pointer-events: none;
}

.shopBlock__inner {
  position: relative;
  z-index: 1;
}

.shopBlock__head {
  text-align: center;
  margin-bottom: clamp(28px, 4vw, 46px);
}

.shopBlock__title {
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  color: #901f17;
  font-size: clamp(22px, 2.4vw, 34px);
  letter-spacing: 0.12em;
  margin-bottom: 8px;
}

.shopBlock__en {
  letter-spacing: 0.2em;
  font-size: 18px;
}

/* 5ボックス */
.shopGrid {
  display: grid;
  gap: 28px;
  justify-content: center;
  grid-template-columns: repeat(3, minmax(220px, 300px));
}

/* 2段目を真ん中寄せにしたい時 */
.shopGrid .shopCard:nth-child(4) {
  grid-column: 1/span 1;
}

.shopGrid .shopCard:nth-child(5) {
  grid-column: 2/span 1;
}

/* カード */
.shopCard {
  display: grid;
  grid-template-rows: 180px auto;
  text-decoration: none;
  color: inherit;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
  border: 1px solid rgba(0, 0, 0, 0.06);
  overflow: hidden;
  transition: transform 0.45s cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 0.45s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.shopCard:hover {
  transform: translateY(-2px);
}

/* 画像はcover＋個別位置調整 */
.shopCard__thumb {
  position: relative;
}

.shopCard__thumb img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: var(--pos, 50% 50%);
     object-position: var(--pos, 50% 50%); /* ←ここが重要 */
  display: block;
}

.shopCard__body {
  background: rgba(0, 0, 0, 0.95);
  color: #fff;
  text-align: center;
  padding: 14px 12px 16px;
}

.shopCard__name {
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: 24px;
  letter-spacing: 0.08em;
  margin: 0 0 6px;
}

.shopCard__text {
  font-size: 14px;
  line-height: 1.6;
  margin: 0;
  opacity: 0.92;
}

/* カード */
.shopCard__bnr {
  margin-left: auto;
  margin-right: auto;
  margin-top: 30px;
  margin-bottom: 30px;
  text-align: center;
  opacity: 1;
}

/* Responsive */
@media (max-width: 1000px) {
  .shopGrid {
    grid-template-columns: repeat(2, minmax(220px, 320px));
  }
  .shopGrid .shopCard:nth-child(4),
  .shopGrid .shopCard:nth-child(5) {
    grid-column: auto;
  }
  .shopCard__bnr {
    margin-left: 20px;
    margin-right: 20px;
    margin-top: 30px;
    margin-bottom: 30px;
    text-align: center;
  }
}
@media (max-width: 570px) {
  .shopGrid {
    grid-template-columns: 1fr;
  }
  .shopCard {
    grid-template-rows: 210px auto;
  }
}
/* =========================================
   Promotion Block
========================================= */
.promoBlock {
  background: #f6e1de; /* 薄いピンク */
  padding: clamp(80px, 10vw, 100px) 0 clamp(60px, 8vw, 100px);
  position: relative;
}

.promoBlock__inner {
  position: relative;
}

.promoBlock .l-container {
  max-width: 900px;
}

/* ===== タイトル ===== */
.promoBlock__head {
  position: relative;
  text-align: center;
  margin-bottom: clamp(40px, 6vw, 70px);
}

/* はみ出しアイコン */
.promoBlock__icon {
  position: absolute;
  top: -160px; /* ← 背景からはみ出す */
  left: 5%;
  width: 170px;
  height: 170px;
  border-radius: 50%;
  display: grid;
  place-items: center;
}

.promoBlock__icon img {
  width: 170px;
  height: auto;
}

/* タイトル */
.promoBlock__title {
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: clamp(22px, 2.4vw, 30px);
  color: #901f17;
  letter-spacing: 0.1em;
  padding-bottom: 16px;
  border-bottom: 2px dotted #901f17;
  display: inline-block;
}

/* ===== 中身 ===== */
.promoBlock__content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(32px, 5vw, 80px);
  align-items: center;
}

/* 左テキスト */
.promoBlock__text {
  font-size: 16px;
  line-height: 1.9;
}

.promoBlock__em {
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  color: #901f17;
  font-size: 24px;
  margin: 16px 0;
}

.promoBlock__btn {
  margin-top: 24px;
}

/* 右動画 */
.promoBlock__movieInner {
  position: relative;
  aspect-ratio: 16/9;
  background: #000;
}

.promoBlock__movieInner iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.promoBlock__movieCaption {
  font-size: 12px;
  margin-top: 8px;
  color: #901f17;
}

/* ===== Responsive ===== */
@media (max-width: 789px) {
  .promoBlock__content {
    grid-template-columns: 1fr;
  }
  .promoBlock__icon {
    top: -100px;
    left: 2px;
    width: 100px;
    height: 100px;
  }
}
/* =========================================
   Recruit Block
========================================= */
/* 全体：モノクロ背景 */
.recruitBlock {
  position: relative;
  padding: clamp(60px, 8vw, 120px) 0;
  background: #fff;
  overflow: hidden;
}

/* 背景（モノクロ写真） */
.recruitBlock::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("../img/index/bg03.png") center bottom/cover no-repeat;
  filter: grayscale(100%);
  pointer-events: none;
}

/* 中身を前面へ */
.recruitBlock__inner {
  position: relative;
  z-index: 1;
}

/* コンテンツ背景：img_index04.png */
.recruitBlock__panel {
  position: relative;
  background-size: auto 100%;
  background-image: url("../img/index/img_index04.png");
  background-repeat: no-repeat;
  padding: clamp(24px, 3vw, 44px);
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  align-items: center;
  gap: clamp(24px, 4vw, 54px);
  /* 余白を活かすための高さ感 */
  min-height: clamp(360px, 28vw, 520px);
}

/* 左：写真（白っぽく） */
.recruitBlock__photo {
  display: flex;
  align-items: center;
  justify-content: center;
}

.recruitBlock__photo img {
  width: 100%;
  max-width: 560px;
  height: auto;
  display: block;
  display: none;
}

/* 右：コンテンツ（背景を見せるため右に寄せる） */
.recruitBlock__content {
  justify-self: end;
  width: min(520px, 100%);
  padding-right: clamp(10px, 2vw, 24px);
  text-align: center;
}

.recruitBlock__title {
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  color: #901f17;
  font-size: clamp(28px, 4vw, 44px);
  letter-spacing: 0.12em;
  margin: 0 0 6px;
}

.recruitBlock__en {
  margin: 0 0 18px;
  letter-spacing: 0.2em;
  opacity: 0.75;
  font-size: 18px;
}

.recruitBlock__lead {
  margin: 0 0 18px;
  line-height: 1.9;
  font-size: 18px;
  text-align: left;
}

/* ボタン（スクショみたいに長い赤ピル） */
.recruitBlock__links {
  display: grid;
  gap: 12px;
}

.recruitBlock__btn {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 14px;
  background: #901f17;
  color: #fff;
  text-decoration: none;
  border-radius: 999px;
  padding: 12px 25px;
  font-weight: 700;
  transition: opacity 0.45s cubic-bezier(0.2, 0.8, 0.2, 1), transform 0.45s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.recruitBlock__btn:hover {
  opacity: 0.85;
  transform: translateY(-1px);
}

/* 右端矢印（→） */
.recruitBlock__arrow {
  position: relative;
  width: 22px;
  height: 1px;
  background: #fff;
}

.recruitBlock__arrow::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  width: 6px;
  height: 6px;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: translateY(-50%) rotate(45deg);
}

/* =========================================
   Responsive
========================================= */
@media (max-width: 789px) {
  .recruitBlock__panel {
    grid-template-columns: 1fr;
    min-height: auto;
    background: url(none);
  }
  .recruitBlock__content {
    justify-self: start;
    padding-right: 0;
  }
  .recruitBlock__btn {
    justify-items: start;
    text-align: left;
  }
  .recruitBlock__photo img {
    display: block;
  }
}
/* =========================================
   MOVIE（iframe版）
========================================= */
.movieBlock {
  background: #e6e6e6;
  padding: clamp(60px, 8vw, 120px) 0;
}

.movieBlock__head {
  text-align: center;
  margin-bottom: clamp(26px, 4vw, 46px);
}

.movieBlock__title {
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  color: #901f17;
  font-size: clamp(22px, 2.4vw, 34px);
  letter-spacing: 0.35em;
  margin: 0 0 8px;
}

.movieBlock__en {
  margin: 0;
  letter-spacing: 0.22em;
  font-size: 18px;
  opacity: 0.7;
}

/* grid */
.movieGrid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(16px, 2.8vw, 34px);
}

/* card */
.movieCard {
  display: grid;
  gap: 12px;
}

/* iframe wrapper */
.movieCard__iframe {
  position: relative;
  aspect-ratio: 16/9;
  background: #000;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.12);
}

.movieCard__iframe iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* text */
.movieCard__body {
  display: grid;
  gap: 6px;
}

.movieCard__tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 22px;
  padding: 0 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.85);
  font-size: 12px;
  width: -moz-fit-content;
  width: fit-content;
}

.movieCard__tag--gray {
  background: rgba(120, 120, 120, 0.25);
}

.movieCard__name {
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: 16px;
  margin: 0;
}

/* responsive */
@media (max-width: 1000px) {
  .movieGrid {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 570px) {
  .movieGrid {
    grid-template-columns: 1fr;
  }
}
/* =========================================
   CONTACT PANEL（下部CTA）
========================================= */
.contactPanel {
  padding: clamp(50px, 7vw, 100px) 0;
}

.contactPanel__inner {
  background: #901f17;
  border-radius: clamp(26px, 3vw, 44px);
  padding: clamp(26px, 3.2vw, 44px);
}

/* 上の白ボックス */
.contactPanel__top {
  background: #fff;
  border-radius: clamp(22px, 2.6vw, 40px);
  padding: clamp(18px, 2.4vw, 30px);
  display: grid;
  justify-items: center;
  gap: 14px;
}

.contactPanel__brand img {
  width: min(520px, 90%);
  height: auto;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.contactPanel__dotline {
  width: min(640px, 92%);
  border-top: 2px dotted rgba(144, 31, 23, 0.55);
}

/* フォームボタン（白ボタン・右に丸アイコン） */
.contactPanel__formBtn {
  width: min(640px, 92%);
  background: #fff;
  border-radius: 999px;
  border: 2px solid rgba(0, 0, 0, 0.08);
  color: #111;
  text-decoration: none;
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-weight: 800;
  font-size: clamp(14px, 2.1vw, 26px);
  letter-spacing: 0.08em;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 14px 18px;
  transition: transform 0.45s cubic-bezier(0.2, 0.8, 0.2, 1), opacity 0.45s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.contactPanel__formBtn:hover {
  transform: translateY(-1px);
  opacity: 0.92;
}

.contactPanel__formIcon {
  width: 22px;
  height: 22px;
  border-radius: 999px;
  background: #901f17;
  position: relative;
  flex: 0 0 auto;
}

.contactPanel__formIcon::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 0;
  height: 0;
  transform: translate(-40%, -50%);
  border-left: 7px solid #fff;
  border-top: 5px solid transparent;
  border-bottom: 5px solid transparent;
}

/* 下：電話2カラム */
.contactPanel__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(16px, 3vw, 40px);
  margin-top: clamp(18px, 2.8vw, 28px);
}

/* 電話ブロック */
.contactTel {
  display: grid;
  gap: 10px;
  justify-items: center;
}

.contactTel__label {
  background: #fff;
  color: #111;
  font-weight: 800;
  text-align: center;
  padding: 8px 10px;
  border-radius: 2px;
  width: 100%;
}

.contactTel__num {
  display: flex;
  align-items: center;
  gap: 12px;
  justify-content: center;
  color: #fff;
  text-decoration: none;
  font-weight: 900;
  font-size: clamp(22px, 2.6vw, 40px);
  letter-spacing: 0.04em;
}

.contactTel__icon {
  width: clamp(18px, 2.2vw, 30px);
  height: auto;
  display: block;
}

/* SP：1カラム */
@media (max-width: 789px) {
  .contactPanel__grid {
    grid-template-columns: 1fr;
  }
}
/* =========================================
  Contact
========================================= */
.contact-tel {
  margin-bottom: clamp(18px, 5vw, 80px);
}

.contact-tel__list {
  display: grid;
  gap: 32px;
  max-width: 1000px;
  margin: 0 auto;
  /* PC：横並び */
}
@media (min-width: 790px) {
  .contact-tel__list {
    grid-template-columns: repeat(2, 1fr);
  }
}

.contact-tel__item {
  background: #fff;
  border-radius: 18px;
  padding: 36px 20px;
  text-align: center;
  /* 影は使わない */
  box-shadow: none;
  /* 1pxグレーボーダー */
  border: 1px solid #e2e2e2;
}

.contact-tel__company {
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 12px;
}

.contact-tel__tel {
  margin: 12px 0 14px;
}
.contact-tel__tel a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-size: 28px;
  font-weight: 700;
  color: #901f17;
  text-decoration: none;
}

.contact-tel__address {
  font-style: normal;
  font-size: 14px;
  line-height: 1.7;
  color: #666;
}

/* PCでは電話リンク無効 */
@media (min-width: 790px) {
  .contact-tel__tel a {
    pointer-events: none;
    color: #901f17;
  }
}
/* SPではタップ可能 */
@media (max-width: 789px) {
  .contact-tel__tel a {
    pointer-events: auto;
  }
}
/* note */
.contact-note {
  margin-bottom: 24px;
}

.is-required {
  color: #901f17;
  font-weight: 700;
}

/* form */
/* =========================================
   Contact Form
========================================= */
.contact-form {
  background: #fff;
  border: 1px solid #e2e2e2; /* 指定どおり */
  border-radius: 18px;
  padding: 40px 28px;
  box-shadow: none;
}

/* row */
.form-row {
  display: grid;
  gap: 10px;
  margin-bottom: 22px;
}

/* PC：左ラベル200 / 右入力 */
@media (min-width: 789px) {
  .form-row {
    grid-template-columns: 200px 1fr;
    align-items: start;
    -moz-column-gap: 22px;
         column-gap: 22px;
  }
}
/* label（labelでもpでも同じ見た目に） */
.form-label {
  font-weight: 700;
  font-size: 15px;
  margin: 0; /* ← pのデフォルトmarginを殺す（重要） */
  line-height: 1.6;
}

.is-required {
  color: #901f17;
  font-weight: 700;
}

/* field */
.form-field input,
.form-field select,
.form-field textarea {
  width: 100%;
  padding: 12px 14px;
  border-radius: 10px;
  border: 1px solid #ddd;
  font-size: 15px;
  background: #fff;
}

/* selectの高さ合わせ */
.form-field select {
  -webkit-appearance: auto;
     -moz-appearance: auto;
          appearance: auto;
}

/* textarea */
.form-field textarea {
  resize: vertical;
  min-height: 140px;
}

/* =========================================
   Radio（お問い合わせ先）
========================================= */
.form-radio {
  display: grid;
  gap: 12px;
  margin-top: 6px;
  /* 親や共通CSSの右寄せを無効化 */
  text-align: left;
  justify-items: start;
}

.form-radio label {
  display: inline-flex; /* ← flexでもOKだが inline-flex の方が崩れにくい */
  align-items: center;
  justify-content: flex-start; /* ← 右寄せ/space-between 対策 */
  gap: 10px;
  width: -moz-fit-content;
  width: fit-content; /* ← 変な幅100%を避ける */
  text-align: left;
  cursor: pointer;
  font-size: 15px;
  line-height: 1.6;
}

.form-radio input[type=radio] {
  margin: 0;
  flex: 0 0 auto;
}

/* =========================================
   Submit
========================================= */
.form-submit {
  text-align: center;
  margin-top: 32px;
}

/* =========================================
   Link List
========================================= */
.link-list {
  list-style: none;
  padding: 0;
  margin: 0 0 40px;
  display: grid;
  gap: 24px;
}

.link-item {
  border: 1px solid #e2e2e2;
  border-radius: 14px;
  padding: 18px 20px;
  background: #fff;
}

.link-item a {
  color: #901f17;
  font-weight: 700;
  text-decoration: none;
}

.link-item a:hover {
  text-decoration: underline;
}

.link-item p {
  margin-top: 8px;
  line-height: 1.7;
  font-size: 14px;
  color: #333;
}

/* =========================================
   Link Policy
========================================= */
.link-policy {
  font-size: 15px;
  line-height: 1.8;
}

.link-policy a {
  color: #901f17;
  text-decoration: underline;
}

/* コード表示 */
.link-code {
  margin: 16px 0 24px;
  border: 1px dashed #ccc;
  background: #fafafa;
  border-radius: 10px;
  padding: 14px;
  overflow-x: auto;
}

.link-code pre {
  margin: 0;
  font-size: 13px;
  line-height: 1.6;
  white-space: pre-wrap;
  word-break: break-word;
}

/* 要件リスト */
.link-req {
  margin: 16px 0 0;
  padding-left: 20px;
}

.link-req li {
  margin-bottom: 6px;
}

/* =========================================
   Sitemap
========================================= */
.sitemap {
  display: grid;
  gap: 18px;
}

.sitemap__group {
  border: 1px solid #e2e2e2;
  border-radius: 16px;
  background: #fff;
  padding: 18px 20px;
}

.sitemap__title {
  margin: 0;
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-weight: 700;
  font-size: 18px;
}

.sitemap__title a {
  color: #111;
  text-decoration: none;
}

.sitemap__title a:hover {
  text-decoration: underline;
  color: #901f17;
}

.sitemap__list {
  margin: 12px 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 8px;
}

.sitemap__list a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #333;
  text-decoration: none;
  line-height: 1.7;
}

/* 矢印（控えめ） */
.sitemap__list a::before {
  content: "";
  width: 6px;
  height: 6px;
  border-right: 2px solid #901f17;
  border-bottom: 2px solid #901f17;
  transform: rotate(-45deg);
  margin-top: 2px;
}

.sitemap__list a:hover {
  color: #901f17;
  text-decoration: underline;
}

/* “その他”だけ少し薄い背景にして区別 */
.sitemap__group--sub {
  background: #fafafa;
}

/* PCで2カラムに */
@media (min-width: 900px) {
  .sitemap {
    grid-template-columns: 1fr 1fr;
    align-items: start;
  }
  .sitemap__group--sub {
    grid-column: 1/-1; /* その他は横断 */
  }
}
/* =========================================
   Privacy Policy
========================================= */
.policy {
  display: grid;
  gap: 20px;
}

.policy__block {
  border: 1px solid #e2e2e2;
  border-radius: 16px;
  background: #fff;
  padding: 22px 24px;
}

.policy__title {
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-weight: 700;
  font-size: 18px;
  margin: 0 0 10px;
  color: #901f17;
}

.policy p {
  margin: 0;
  line-height: 1.8;
  font-size: 15px;
  color: #333;
}

.policy a {
  color: #901f17;
  text-decoration: underline;
}

.policy a:hover {
  text-decoration: none;
}

/* SP調整 */
@media (max-width: 600px) {
  .policy__block {
    padding: 18px 16px;
  }
}
/* =========================================
   Recruit Navigation
========================================= */
.recruit-nav {
  margin: 24px 0 48px;
}

.recruit-nav__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 16px;
}

/* PC：横並び */
@media (min-width: 789px) {
  .recruit-nav__list {
    grid-template-columns: repeat(3, 1fr);
  }
}
.recruit-nav__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 72px;
  padding: 14px 12px;
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-weight: 700;
  font-size: 16px;
  line-height: 1.4;
  text-align: center;
  color: #901f17;
  background: #fff;
  border: 1px solid #e2e2e2;
  border-radius: 14px;
  text-decoration: none;
  transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

.recruit-nav__btn:hover {
  background: #901f17;
  color: #fff;
  border-color: #901f17;
}

.fRed {
  display: inline-block;
  margin-left: 10px;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  color: #901f17;
  background: #fff; /* テーマカラー */
  vertical-align: middle;
}

.recruit-section {
  scroll-margin-top: 120px; /* 固定ナビの高さ分 */
  margin-bottom: 56px;
}

/* =========================================
   Recruit Table（旧tableをリニューアル調整）
========================================= */
.table {
  width: 100%;
  border-collapse: separate; /* 角丸を効かせる */
  border-spacing: 0;
  border: 1px solid #e2e2e2; /* 影じゃなく線 */
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
  margin: 0 auto 30px;
}

.table th,
.table td {
  padding: 14px 16px;
  border-bottom: 1px solid #eaeaea;
  vertical-align: top;
  font-size: 15px;
  line-height: 1.75;
}

.table tr:last-child th,
.table tr:last-child td {
  border-bottom: 0;
}

.table th {
  width: 22%;
  background: #f5f5f5; /* 薄グレー */
  font-weight: 700;
  color: #111;
  text-align: left;
}

/* 強調文の行間調整（旧HTMLのbrが多いので） */
.table td strong {
  color: #111;
}

@media (max-width: 789px) {
  .table {
    border-radius: 14px;
  }
  .table tr {
    display: grid;
    grid-template-columns: 1fr;
  }
  .table th {
    width: auto;
    border-bottom: 0;
    padding: 12px 14px 8px;
  }
  .table td {
    padding: 0 14px 14px;
  }
  .table th,
  .table td {
    font-size: 14px;
  }
}
#r001, #r002, #r003 {
  scroll-margin-top: 140px;
}

/* 余白ユーティリティ（無ければ） */
.c-mt-xl {
  margin-top: 42px;
}

/* 共通：白箱（線で囲む） */
.c-box {
  background: #fff;
  border: 1px solid #e2e2e2;
  border-radius: 18px;
  padding: 26px 22px;
}

/* ==========================
   テーブル（共通）
========================== */
.c-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed; /* ← はみ出し対策の要 */
  font-size: 15px;
  line-height: 1.8;
}

.c-table th,
.c-table td {
  padding: 14px 14px;
  border-top: 1px solid #e2e2e2;
  vertical-align: top;
  /* 長文/URL/リンクのはみ出し対策 */
  overflow-wrap: anywhere;
  word-break: break-word;
}

.c-table tr:first-child th,
.c-table tr:first-child td {
  border-top: 0;
}

.c-table th {
  width: 30%;
  font-weight: 700;
  color: #111;
  text-align: left;
  /* PCは折り返さない（見た目優先） */
  white-space: nowrap;
}

.c-table a {
  color: #901f17;
  text-decoration: underline;
  text-underline-offset: 0.2em;
  /* リンクが長い時も折り返す */
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* 沿革：左列を少し狭く */
.c-table--history th {
  width: 22%;
}

/* ==========================
   SP
========================== */
@media (max-width: 789px) {
  .c-box {
    padding: 18px 14px;
  }
  .c-table th {
    width: 36%;
    white-space: normal; /* ← SPは折り返す */
  }
  .c-table--history th {
    width: 34%;
  }
  .c-table th,
  .c-table td {
    padding: 12px 10px;
    font-size: 14px;
  }
}
/* ==========================
   関連会社カード
========================== */
.companyCards {
  display: grid;
  gap: 18px;
  margin-top: 16px;
}

.companyCard {
  border: 1px solid #e2e2e2;
  border-radius: 18px;
  background: #fff;
  overflow: hidden;
}

.companyCard__head {
  padding: 18px 18px 0;
}

.companyCard__head img {
  max-width: 680px;
  width: 100%;
  height: auto;
  display: block;
}

.companyCard__body {
  padding: 16px 18px 18px;
  font-size: 15px;
  line-height: 1.9;
}

.companyCard__btns {
  margin-top: 14px;
}

@media (min-width: 790px) {
  .companyCards {
    grid-template-columns: 1fr 1fr;
    gap: 22px;
  }
}
/* ========== Mega Solar ========== */
.solar-hero {
  margin: 18px 0 14px;
  border: 1px solid #e2e2e2;
  border-radius: 18px;
  overflow: hidden;
  background: #fff;
}
.solar-hero img {
  width: 100%;
  height: auto;
  display: block;
}

.solar-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, 1fr);
  margin-bottom: 18px;
}
@media (max-width: 789px) {
  .solar-grid {
    grid-template-columns: 1fr;
  }
}

.solar-thumb {
  border: 1px solid #e2e2e2;
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
  display: block;
}
.solar-thumb img {
  width: 100%;
  height: 100%;
  aspect-ratio: 16/10;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}

/* 2カラム表（ソーラー） */
.c-table--solar th, .c-table--solar td {
  text-align: left;
}
.c-table--solar thead th {
  background: rgba(0, 0, 0, 0.03);
}

/* iframe レスポンシブ */
.movie-embeds {
  display: grid;
  gap: 16px;
  margin: 18px 0 26px;
}

.movie-embed {
  border: 1px solid #e2e2e2;
  border-radius: 18px;
  overflow: hidden;
  background: #000;
}
.movie-embed iframe {
  width: 100%;
  height: 100%;
  aspect-ratio: 16/9;
  display: block;
}

.c-note {
  margin: 6px 0 12px;
  font-size: 14px;
  opacity: 0.85;
}

/* カード一覧 */
.solar-cards {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 1000px) {
  .solar-cards {
    grid-template-columns: 1fr;
  }
}

.solar-card {
  border: 1px solid #e2e2e2;
  border-radius: 18px;
  overflow: hidden;
  background: #fff;
  display: grid;
}

.solar-card__img {
  display: block;
}
.solar-card__img img {
  width: 100%;
  height: 100%;
  aspect-ratio: 16/10;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}

.solar-card__body {
  padding: 14px 14px 16px;
  font-size: 14px;
  line-height: 1.9;
}

.solar-card__title {
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-weight: 700;
  font-size: 16px;
  margin: 0 0 6px;
}

/* =========================
   food.html 調整用
========================= */
.foodNav {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
  margin: 18px 0 24px;
}

@media (min-width: 790px) {
  .foodNav {
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
  }
}
.foodNavBtn {
  display: grid;
  place-items: center;
  min-height: 72px;
  padding: 12px 10px;
  border-radius: 16px;
  border: 1px solid #e2e2e2; /* 影は使わない */
  background: #fff;
  color: #111;
  text-decoration: none;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.2;
  transition: transform 0.18s ease, background-color 0.18s ease, border-color 0.18s ease;
}

.foodNavBtn:hover {
  background: rgba(144, 31, 23, 0.06);
  border-color: rgba(144, 31, 23, 0.35);
  transform: translateY(-1px);
}

.foodNavBtn:focus-visible {
  outline: 2px solid rgba(144, 31, 23, 0.55);
  outline-offset: 2px;
}

/* うっすら種別感（必要なければ消してOK） */
.foodNav__item {
  display: grid;
  place-items: center;
  gap: 10px;
  text-decoration: none;
  color: #111;
}

.foodNav__item img {
  width: min(176px, 100%);
  height: auto;
  display: block;
  transition: transform 0.2s ease, filter 0.2s ease;
}

.foodNav__item:hover img {
  transform: translateY(-2px);
  filter: brightness(1.02);
}

.foodNav__label {
  font-weight: 700;
  font-size: 14px;
}

/* リード文 */
.foodIntro {
  margin: 10px 0 22px;
  line-height: 1.9;
}

.foodIntro__lead {
  margin: 16px 0 6px;
  color: #111;
  font-size: 16px;
}

/* パラパラ君 CTA */
.foodCta {
  margin-top: 14px;
  display: flex;
  justify-content: center;
}

/* テキストの余白（既存の page-content 系があれば不要） */
.page-content__text {
  line-height: 1.9;
}

/* フォトグリッド */
.photoGrid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
  margin-top: 10px;
}

@media (min-width: 790px) {
  .photoGrid {
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
  }
}
.photoGrid__item {
  display: grid;
  gap: 8px;
  text-decoration: none;
  color: #111;
  border: 1px solid #e2e2e2;
  overflow: hidden;
  background: #fff;
}

.photoGrid__item img {
  width: 100%;
  height: auto;
  display: block;
}

.photoGrid__item span {
  padding: 10px 12px 12px;
  font-size: 14px;
  font-weight: 700;
}

/* =========
  meat story
========= */
.foodNav_meatstory {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin: 16px 0 22px;
}

@media (max-width: 789px) {
  .foodNav_meatstory {
    grid-template-columns: repeat(2, 1fr);
  }
}
.foodNavBtn_meatstory {
  display: grid;
  place-items: center;
  min-height: 64px;
  padding: 12px 10px;
  border: 1px solid #e2e2e2;
  border-radius: 16px;
  background: #fff;
  text-decoration: none;
  color: #111;
  font-weight: 700;
  transition: background-color 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}

.foodNavBtn_meatstory:hover {
  background: rgba(144, 31, 23, 0.06);
  border-color: rgba(144, 31, 23, 0.35);
  transform: translateY(-1px);
}

.foodNavBtn_meatstory:focus-visible {
  outline: 2px solid rgba(144, 31, 23, 0.55);
  outline-offset: 2px;
}

.c-h3--sub {
  margin-top: 40px;
} /* 大見出しの区切り */
.meatLead {
  font-size: 16px;
  line-height: 1.8;
}

.meatIntro {
  display: grid;
  gap: 14px;
  align-items: start;
}

.meatIntro__img img {
  width: 100%;
  height: auto;
  display: block;
  border: 1px solid #e2e2e2; /* 影なし運用 */
}

.meatIntro__body {
  font-size: 15px;
  line-height: 1.9;
}

@media (min-width: 790px) {
  .meatIntro {
    grid-template-columns: 240px 1fr;
    gap: 18px;
  }
  .meatIntro--wide {
    grid-template-columns: 360px 1fr;
  }
}
.meatParts {
  display: grid;
  gap: 14px;
}

.meatParts__img img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 14px;
  border: 1px solid #e2e2e2;
}

@media (min-width: 790px) {
  .meatParts {
    grid-template-columns: 320px 1fr;
    gap: 18px;
    align-items: start;
  }
}
/* 内側の説明ボックス（差額関税のニュース一覧など） */
.c-box--inner {
  border: 1px solid #e2e2e2;
  border-radius: 14px;
  padding: 14px;
  margin-top: 12px;
  background: #fafafa;
}

.pageTopLink {
  text-align: right;
  margin: 18px 0 28px;
}

.pageTopLink a {
  color: #901f17;
  text-decoration: underline;
  text-underline-offset: 0.2em;
  font-size: 14px;
}

/* 物件一覧：5列（PC）→ 2列（スマホ） */
.pageheadNavi .sangyouIndex {
  list-style: none;
  margin: 0;
  padding: 0;
  margin-top: 50px;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px 18px; /* 行間 / 列間（お好みで） */
}

/* liの余計な余白を消す */
.pageheadNavi .sangyouIndex > li {
  margin: 0;
  padding: 0;
}

/* クリック範囲を広げる（任意） */
.pageheadNavi .sangyouIndex > li > a {
  display: block;
  text-decoration: none;
}

/* スマホ：2列 */
@media (max-width: 767px) {
  .pageheadNavi .sangyouIndex {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 12px;
  }
}
/* 物件一覧：5列（PC）→ 2列（スマホ） */
.sangyou table img {
  margin-bottom: 20px;
}

.food-manager {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.food-manager p {
  max-width: 180px;
  padding: 5px;
  border: 1px solid #ddd;
}

:root {
  --sticky-offset: 110px; /* 固定ヘッダーの高さ + 余白（必要に応じて調整） */
}

/* ページ内リンクの着地点になりやすい要素に付与 */
[id] {
  scroll-margin-top: var(--sticky-offset);
}

/* もし「全[id]」が効きすぎるなら、対象を絞る */
.page-content :is(h2, h3, h4, h5, [id]) {
  scroll-margin-top: var(--sticky-offset);
}

/*その他*//*# sourceMappingURL=style.css.map */