@charset "UTF-8";

html {
  font-size: 62.5%;
  width: 100%;
  scroll-behavior: smooth;
}

body {
  font-family: "Noto Serif JP", "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "游明朝", "Yu Mincho", "MS Ｐ明朝", "MS PMincho", serif;
  background-size: cover;
  background-attachment: fixed;
  margin: 0;
  color: #555555;
  letter-spacing: 0.15em;
}

main {
  display: block;
}

picture {
  display: block;
}

a {
  text-decoration: none;
}

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

.content {
  max-width: 112rem;
  width: 100%;
  margin: 0 auto;
  display: block;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.sp_only {
  display: none !important;
}

.main {
  overflow: hidden;
}

p {
  margin: 0 !important;
  padding: 0;
}

h1 {
  width: 100%;
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
}

.content h1 {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 4.8rem;
  width: 100%;
}

@media screen and (max-width: 900px) {
  .pc_only {
    display: none !important;
  }
  .sp_only {
    display: block !important;
  }
  .content h1 {
    margin-bottom: 4.2105263157894735vw;
  }
  .decorated-heading {
    margin: 0 auto 4.2105263157894735v;
    padding-bottom: 1.2280701754385965vw;
  }
  .content {
    width: 100%;
    margin: 0 auto;
  }
  h1 {
    width: 100%;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .content h1 {
    text-align: center;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 8vw;
  }
}

/* =======================
   Header (PC / SP切替)
   ======================= */

.pc_only {
  display: block !important;
}
.sp_only {
  display: none !important;
}

.headerPC {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 500;
  width: 100%;
  height: 160px;
  display: flex;
  align-items: center;
}
.headerPC__container {
  max-width: 1120px;
  width: 90%;
  margin: 0 auto;
  display: flex;
  align-items: center;
}
.headerPC__logo {
  width: 278px;
  margin-left: 0;
}
.headerPC__nav {
  list-style: none;
  display: flex;
  margin-left: 254px;
  gap: 40px;
}
.headerPC__nav li {
  font-weight: normal;
  font-size: 1.6rem;
  text-align: left;
  height: 50px;
  line-height: 50px;
  letter-spacing: 0.15em;
}
.headerPC__nav li a {
  display: block;
  text-decoration: none;
  color: #fff;
}
.headerPC__btn {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 15px;
}
.custom-button {
  width: 172px;
  height: 40px;
  margin-right: 0;
  background: transparent;
  box-shadow: none;
  border-radius: 0;
  border: 1px solid #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  font-weight: normal;
  text-decoration: none;
  font-size: 1.6rem;
  transition: background-color .3s ease, color .3s ease;
}
.custom-button:hover {
  background: #fff;
  color: #000;
}

@media screen and (max-width:1280px) and (min-width:1191px) {
  .headerPC__nav {
    margin-left: 272px;
    gap: 20px;
    margin-right: 16px;
  }
  .headerPC__nav li {
    font-size: 1.6rem;
  }
}

@media screen and (max-width:1190px) and (min-width:1101px) {
  .headerPC__nav {
    margin-left: 21.525423728813557vw;
    gap: 20px;
    margin-right: 16px;
  }
  .headerPC__nav li {
    font-size: 1.4rem;
  }
}


@media screen and (max-width:1100px) {
  .pc_only {
    display: none !important;
  }
  .sp_only {
    display: block !important;
  }
  .headerSP {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 17vw;
    z-index: 100;
  }
  .headerSP__container {
    position: absolute;
    width: 100%;
    box-sizing: border-box;
    display: flex;
    justify-content: flex-start;
    align-items: center;
  }
  .headerSP__logo {
    position: absolute;
    top: 6.267vw;
    left: 2.667vw;
  }
  .headerSP__logo img {
    width: 43.2vw;
    height: auto;
  }
  .headerSP__menubutton {
    position: absolute;
    top: 4.317vw;
    right: 20px;
    width: 8.533vw;
    height: 8.533vw;
    cursor: pointer;
  }
  .headerSP__menubutton i {
    display: block;
    position: absolute;
    left: 50%;
    transform: translate(-50%,-50%);
    width: 7.2vw;
    height: 0.867vw;
    background: #ffffff;
    border-radius: 0.433vw;
    transition: all .5s;
  }
  .headerSP__menubutton i:first-child {
    top: 2.133vw;
  }
  .headerSP__menubutton i:nth-child(2) {
    top: 50%;
  }
  .headerSP__menubutton i:last-child {
    top: 6.4vw;
  }
  .headerSP__menubutton.open i:first-child {
    top: 50%;
    transform: translate(-50%,-50%) rotate(45deg);
  }
  .headerSP__menubutton.open i:nth-child(2) {
    opacity: 0;
  }
  .headerSP__menubutton.open i:last-child {
    top: 50%;
    transform: translate(-50%,-50%) rotate(-45deg);
  }
  .headerSP__menu {
    position: fixed;
    top: -120%;
    width: 100%;
    height: 100vh;
    overflow-y: auto;
    background: rgba(161, 142, 93, 0.8);
    backdrop-filter: blur(12px);
    transition: all .5s;
    z-index: 80;
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
  }
  .headerSP__menu.open {
    top: 0;
  }
  .headerSP__menu ul {
    list-style: none;
    padding-top: 22.667vw;
    min-height: 133.333vw;
    margin: 0;
  }
  .headerSP__menu li {
    padding: 0 0 6.667vw 5.333vw;
    text-align: left;
    font-family: "Roboto","Noto Sans JP";
    font-weight: bold;
    font-size: 4vw;
    letter-spacing: 0.192vw;
    color: #ffffff;
  }
  .headerSP__menu li a {
    display: block;
    color: #ffffff;
  }
  .headerSP__button {
    width: 64vw;
    height: 12vw;
    background-color: #ffffff;
    color: #555555;
    font-size: 2rem;
    font-weight: bold;
    border: none;
    cursor: pointer;
    transition: background-color .3s ease;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:0;
    margin-left:5.333vw;
    margin-bottom: 5.333vw;
    border: 1px solid #000000;

  }

  .headerSP__button a {
    color:#555555;
    text-decoration:none;
    width:100%;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .headerSP__button:hover {
    background-color:#f6f6f6;
  }
}


/* ヘッダーのコンパクト状態（高さ＋背景色） */
.headerPC,
.headerSP {
  transition: height .25s ease, background-color .25s ease, box-shadow .25s ease, color .25s ease;
}

.headerPC.header--compact {
  height: 96px;                      /* 160px → 96px */
  background: rgba(161, 142, 93, 0.8);
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
  backdrop-filter: saturate(180%) blur(6px);
}
.headerPC.header--compact .headerPC__nav li a { color: #ffffff; }
.headerPC.header--compact .custom-button {
  border-color: #ffffff;
  color: #ffffff;
}

.headerPC.header--compact .custom-button:hover {
  background: rgba(93, 72, 18, 0.8);
  color: #ffffff;
  border-color: rgba(93, 72, 18, 0.8);
}


@media screen and (max-width:1100px) {
  .headerSP.header--compact {
    height: 17vw;                    /* 17vw → 13vw */
    background: rgba(161, 142, 93, 0.8);
    box-shadow: 0 2px 8px rgba(0,0,0,.06);
    backdrop-filter: saturate(180%) blur(6px);
  }
  .headerSP.header--compact .headerSP__menubutton i { background: #ffffff; }
}


.mainvisual__hariito__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}
@media (min-width: 1100px) {
  .mainvisual__hariito__overlay {
    display: block;
  }
  .mainvisual__hariito__textimg {
    position: absolute;
    left: 29.083333333333332vw;
    top: 10vw;
    width: 36.5625vw;
    height: auto;
    display: block;
  }
}
@media (max-width: 1099px) {
  .mainvisual__hariito__overlay {
    display: none;
  }
}


.mainvisual__creecher__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}
@media (min-width: 1100px) {
  .mainvisual__creecher__overlay {
    display: block;
  }
  .mainvisual__creecher__textimg {
    position: absolute;
    left: 22.291666666666668vw;
    top: 11.875vw;
    width: 23.541666666666668vw;
    height: auto;
    display: block;
  }
}
@media (max-width: 1099px) {
  .mainvisual__creecher__overlay {
    display: none;
  }
}



/* =======================
   Main Visual
   ======================= */

.mainvisual {
  position: relative;
  width: 100%;
  overflow: hidden;
  font-family: "Noto Serif JP", serif;
}
.mainvisual__bg {
  position: relative !important;
  inset: auto !important;
  width: 100%;
  height: auto;
  z-index: 0;
}
.mainvisual__bg img {
  width: 100%;
  height: auto;
  display: block;
}
.mainvisual__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}
@media (min-width: 1100px) {
  .mainvisual__overlay {
    display: block;
  }
  .mainvisual__textimg {
    position: absolute;
    left: 52.292vw;
    top: 8.073vw;
    width: 11.615vw;
    height: auto;
    display: block;
  }
}
@media (max-width: 1099px) {
  .mainvisual__overlay {
    display: none;
  }
}
/* =======================
   Shop Banners（MVとNewsの間）
   PC: 横並び 400px×2 / 中央40px
   SP: 縦並び・ボタン幅相当、上下は最少24px/750px時32px
   画像のみ：角丸4px＋1px黒枠 ／ テキストは画像下・左寄せ・装飾なし
======================= */

/* セクション余白 */
.shopBanners {
  margin: 64px auto;
}
@media (max-width: 767.98px) {
  .shopBanners { margin: clamp(24px, 4.267vw, 32px) auto; }
}

/* コンテナ：PCは中央で2枚並べる、SPは縦並び */
.shopBanners__inner {
  max-width: 1120px;
  margin: 0 auto;
  padding-inline: 24px;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 40px; /* 中央の余白 */
}
@media (max-width: 767.98px) {
  .shopBanners__inner {
    display: block;
    gap: 0;
  }
}

/* 各アイテム（a全体がリンク：画像もテキストもクリック可能） */
.shopBanners__item {
  display: block;
  width: 400px;      /* PC指定幅 */
  margin: 0 auto;    /* コンテナ中央寄せ */
  color: #000;
  text-decoration: none; /* テキスト下線なし */
}
@media (max-width: 767.98px) {
  .shopBanners__item {
    width: clamp(280px, 75vw, 560px); /* 既存ボタンに近い可変幅 */
  }
  .shopBanners__item + .shopBanners__item {
    margin-top: clamp(24px, 4.267vw, 32px); /* アイテム間余白（縦） */
  }
}

/* 画像だけに枠（角丸4px・1px黒） */
.shopBanners__figure {
  margin: 0;
  border: 1px solid #000;
  border-radius: 4px;
  overflow: hidden;
  background: #fff;
}
.shopBanners__figure img {
  display: block;
  width: 100%;
  height: auto;
}

/* 画像下のリンクテキスト：左寄せ・装飾なし */
.shopBanners__linkText {
  display: block;
  margin-top: 8px;
  font-size: 16px;
  line-height: 1.5;
  text-align: left;
  text-decoration: none;
}

/* 好みでホバー時の軽いトーン（装飾なしのまま） */
.shopBanners__item:hover .shopBanners__figure {
  filter: brightness(1.03);
}

/* キーボード操作の可視フォーカス（控えめ） */
.shopBanners__item:focus-visible .shopBanners__figure {
  outline: 2px solid #000;
  outline-offset: 2px;
}


/* =======================
   News
   ======================= */

.news {
  margin-top: 8.333vw;
  color: #555;
  font-family: "Noto Serif JP", serif;
}
.news__container {
  width: 100%;
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 20px;
}
.news__heading {
  font-size: 3.6rem;
  line-height: 1.5;
  font-weight: 700;
  text-align: center;
  margin: 0 0 2.4rem;
  letter-spacing: .02em;
  color: #000;
}
.news .news__rule--top {
  display: block;
  width: 100%;
  max-width: 1120px;
  margin: 0 auto !important;
  height: 4px !important;
  background-color: #E3DCCA !important;
  border: 0 !important;
  border-radius: 9999px;
}
.news__list {
  list-style: none;
  padding: 0;
  margin: 72px auto 0;
  max-width: 1120px;
}
.news__item {
  margin: 0;
}
.news__row {
  display: grid;
  grid-template-columns: 200px 1fr;
  column-gap: 40px;
  align-items: start;
  padding-top: 36px;
}
.news__date {
  color: #707070;
  font-size: 1.6rem;
  line-height: 1.5;
  white-space: nowrap;
}
.news__text {
  color: #555;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.5;
  margin: 0;
  word-break: break-word;
}
.news__more {
  display: inline-flex;
  align-items: center;
  gap: .4em;
  margin-top: 1em;
  font-weight: 700;
  color: #555;
  text-decoration: underline;
}
.news__moreIcon {
  display: inline-block;
}
.news__rule {
  width: 100%;
  max-width: 1120px;
  margin: 36px auto 0;
  background: transparent;
  border: none;
  height: 0;
}
.news__rule--dot {
  border-top: 1px dashed #E3DCCA;
}
.news__item:last-child .news__rule--dot {
  display: none;
}
.news__rule--bottom {
  border-top: 1px solid #E3DCCA;
}
.news__item.is-hidden {
  display: none;
}
.news__item.no-sep .news__rule--dot {
  display: none;
}
.news__moreArea {
  text-align: center;
  margin: 32px 0 0;
}
.news__moreBtn {
  padding: 10px 24px;
  border: 1px solid #999;
  background: transparent;
  cursor: pointer;
  font-size: 1.6rem;
}

@media (max-width: 1099px) {
  .news {
    margin-top: clamp(120px, 32vw, 240px);
  }
  .news__container {
    padding: 0 20px;
  }
  .news__heading {
    font-size: clamp(28px, 7.467vw, 56px);
    line-height: 1.5;
    margin-bottom: clamp(40px, 10.667vw, 80px);
  }
  .news__rule--top {
    height: clamp(4px, 1.067vw, 8px);
    border-radius: 9999px;
  }
  .news__list {
    margin-top: 0;
  }
  .news__row {
    display: block;
    padding-top: clamp(32px, 8.533vw, 64px);
    padding-bottom: clamp(32px, 8.533vw, 64px);
  }
  .news__date {
    display: block;
    font-size: clamp(12px, 3.2vw, 24px);
    margin-bottom: clamp(20px, 5.333vw, 40px);
  }
  .news__text {
    font-size: clamp(14px, 3.733vw, 28px);
    line-height: 1.5;
  }
  .news__more {
    display: inline-flex;
    margin-left: 0;
    margin-top: clamp(12px, 3.2vw, 24px);
  }
  .news__moreIcon {
    width: 1em;
    height: 1em;
  }
  .news__rule {
    margin-top: clamp(3px, .8vw, 6px);
  }
  .news__rule--dot {
    border-top: 2px dashed #E3DCCA;
  }
  .news__rule--bottom {
    border-top: 2px solid #E3DCCA;
  }
  .news__moreBtn {
    font-size: clamp(14px, 3.2vw, 18px);
    padding: clamp(8px, 2.133vw, 12px) clamp(18px, 4.8vw, 24px);
  }
}

/* =======================
   Reset / Fix
   ======================= */

*, *::before, *::after {
  box-sizing: border-box;
}
html, body {
  overflow-x: hidden;
}

@media (max-width: 1099px) {
  .mainvisual {
    min-height: auto !important;
    height: auto !important;
  }
  .mainvisual__bg {
    position: relative !important;
    inset: auto !important;
    width: 100%;
    height: auto;
  }
  .mainvisual__bg img {
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
  }
  .mainvisual__overlay {
    display: none !important;
  }
}

@media (max-width: 1100px) {
  .headerSP {
    left: 0;
    right: 0;
  }
  .headerSP__menubutton {
    right: 2.667vw;
  }
}
/* =======================
   STORES 共通（PC/SP）
======================= */

.stores {
  margin-top: 160px;
}

.store {
  margin-bottom: 0;
}

/* テキスト共通 */
.store__logo {
  display: block;
  margin: 0 auto;
  height: auto;
}

.store__logo--hari {
  width: 272px;
}

.store__logo--creecher {
  width: 252px;
}

/* 最小 14px を割らないよう PC は px、SP は clamp */
.store__title {
  margin-top: 4.1666666667vw;      /* 80px @1920 */
  margin-bottom: 2.0833333333vw;   /* 40px @1920 */
  font-size: 24px;
  font-weight: 700;
  text-align: left;
}

.store__desc {
  font-size: 16px;                 /* 14px 未満にならない */
  line-height: 40px;
  max-width: 480px;
  margin-bottom: 40px;
  text-align: left;
}

.store__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 480px;
  height: 80px;
  border: 1px solid #000;
  border-radius: 4px;
  background: #fff;
  color: #555;
  text-decoration: none;
  font-size: 16px;
  margin-top: 2.0833333333vw;      /* 40px @1920 */
  position: relative;
  transition: background-color .3s ease, color .3s ease;
}

.store__btn::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 44px;
  transform: translateY(-50%);
  width: 18px;
  aspect-ratio: 1 / 1;
  background: url("/assets/img/allow_icon.svg") center / contain no-repeat;
  pointer-events: none;
}

.store__btn:hover {
  color: #555;
  background: rgba(232, 215, 174, 0.8);
  border-color: rgba(232, 215, 174, 0.8);
}

/* 画像共通（SPで使う <img> 用） */
.store__image img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  margin: 0;
}

/* =======================
   PC（1170px 以上）
   - 各 .store を 100vw のフルブリードに
   - 背景は 1 枚画像（行ごとに position を変える）
   - ど真ん中で分割（背景基準）、テキストは 1120px 枠
======================= */

@media (min-width: 1170px) {

  /* 行をフルブリード：コンテナ幅に依存しない */
  .store {
    position: relative;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    overflow: hidden;
  }

  /* 行の高さは vw で追随（Figma 比率に合わせて調整可） */
  .store {
    min-height: clamp(520px, 42vw, 760px);
  }

  /* 中身は 1120px 枠、左右の配置だけ切替 */
  .store__inner {
    max-width: 1120px;
    margin: 0 auto;
    height: 100%;
    display: flex;
    align-items: center;
    position: relative;
    z-index: 1; /* 背景の上 */
  }

  /* 背景は 1 枚画像。上下の行で position を変えるだけ */
  .store--hari {
    background: url("/assets/img/img_top_shopbg.png") top center / cover no-repeat;
  }

  .store--creecher {
    background: url("/assets/img/img_top_shopbg.png") bottom center / cover no-repeat;
  }

  /* はり糸：左にテキスト、右側は背景で見せる */
  .store--hari .store__inner {
    justify-content: flex-start;
  }

  .store--hari .store__content {
    margin-top: 6.875000000000001vw;
    flex: 0 0 560px;  
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  /* クレーシェル：右にテキスト、左側は背景で見せる */
  .store--creecher .store__inner {
    justify-content: flex-end;
  }

  .store--creecher .store__content {
    margin-top: 6.875000000000001vw;
    flex: 0 0 480px;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  /* PC は <img> を使わないので隠す（背景で表示） */
  .store__image {
    display: none !important;
  }
}

/* =======================
   SP（〜1169.98px）— 現状のレイアウトを維持
======================= */

@media (max-width: 1169.98px) {

  .stores {
    margin-top: clamp(120px, 32vw, 240px);
  }

  .store__inner {
    display: flex;
    flex-direction: column;
    gap: clamp(40px, 10vw, 80px);
    max-width: none;
  }

  /* クレーシェル：テキスト → 画像の順を維持 */
  .store--creecher .store__inner {
    flex-direction: column;
    gap: clamp(40px, 10vw, 80px);
  }

  .store--creecher .store__content {
    flex: 0;
    order: 1 !important;
    width: 100%;
    margin-top: clamp(52px, 14vw, 105px);
  }

  .store--creecher .store__image {
    order: 2 !important;
    width: 100%;
    min-width: 0;
    align-self: auto;
  }

  /* はり糸 */
  .store--hari .store__image {
    width: 100%;
    align-self: auto;
  }

  .store__content {
    flex: none;
    width: 100%;
    align-items: center;
    text-align: center;
  }

  .store__logo {
    width: clamp(189px, 50vw, 378px);
    margin-top: clamp(40px, 10vw, 80px);
    margin-bottom: clamp(40px, 10vw, 80px);
  }

  .store__title {
    font-size: clamp(20px, 5vw, 40px);
    margin: 0 0 clamp(32px, 8vw, 64px);
    text-align: center;
  }

  .store__desc,
  .store__desc--hari,
  .store__desc--creecher{
    font-size: clamp(14px, 3.7vw, 28px);
    line-height: clamp(28px, 7.5vw, 56px);
    max-width: min(90%, 680px);   /* 広がりすぎ防止 */
    margin-left: auto !important;             /* ← 中央配置 */
    margin-right: auto !important;            /* ← 中央配置 */
    margin-bottom: clamp(32px, 8vw, 64px) !important;
    text-align: left;            /* ← テキストも中央寄せ */
  }

  /* 念のため、親も中央揃え */
  .store__content{
    align-items: center;
    text-align: center;
  }

  .store__btn {
    width: clamp(280px, 75vw, 560px);
    height: clamp(60px, 16vw, 120px);
    margin: clamp(32px, 8vw, 64px) auto 0;
  }

  .store__btn::after {
    width: 18px;
    right: 24px;
  }
}


.company {
  margin-top: 160px;
  color: #555;
}

.company__inner {
  max-width: 1120px;
  margin-inline: auto;
  padding-inline: 24px;
}

.company__title {
  font-weight: 700;
  font-size: 36px;
  line-height: 1.5;
  text-align: center;
  letter-spacing: .02em;
}

.company__lead {
  max-width: 820px;
  margin: 64px auto 0 !important;
  font-size: 18px;
  line-height: 32px;
  font-weight: 500;
  text-align: left;
}

.company__list {
  margin: 48px auto 0;
  border-top: 2px solid #E3DCCA;
  border-bottom: 2px solid #E3DCCA;
  overflow: hidden;
}

.company__row {
  display: grid;
  grid-template-columns: 200px 1fr;
  column-gap: 100px;
  align-items: start;
  padding-block: 28px;
}

.company__row + .company__row {
  border-top: 2px dashed #E3DCCA;
}

.company__th {
  font-size: 16px;
  font-weight: 700;
  padding-left: 32px;
}

.company__td {
  font-size: 16px;
}

.company__photoPc {
  margin-top: 80px;
  width: 100vw;
  margin-left: calc(50% - 50vw);
}

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

.company__photosSp {
  display: none;
}

@media (max-width: 767.98px) {
  .company {
    margin-top: clamp(120px, 24vw, 240px);
  }

  .company__title {
    text-align: center;
    font-size: clamp(28px, 8vw, 56px);
    line-height: 1.5;
    margin-left: 0;
    padding-left: 0;
  }

  .company__lead {
    max-width: none;
    margin: clamp(28px, 8vw, 56px) 0 0 0;
    font-size: clamp(14px, 4vw, 18px);
    line-height: clamp(28px, 8vw, 56px);
    padding-left: 0;
    text-align: left;
  }

  .company__list {
    margin-top: clamp(32px, 8vw, 64px);
    border-top-width: clamp(2px, .8vw, 4px);
    border-bottom-width: clamp(2px, .8vw, 4px);
    border-radius: 0;
  }

  .company__row {
    display: block;
    padding-block: clamp(32px, 7vw, 64px);
  }

  .company__row + .company__row {
    border-top-width: clamp(1px, .5vw, 2px);
    border-top-style: dashed;
    border-top-color: #E3DCCA;
  }

  .company__th {
    padding-left: 0;
    font-size: clamp(16px, 5vw, 32px);
  }

  .company__td {
    margin-top: clamp(14px, 3.5vw, 28px);
    padding-left: 0;
    font-size: clamp(14px, 4vw, 18px);
    line-height: 1.8;
    margin-inline-start: 0;
    margin-inline-end: 0;
  }

  .company__photoPc {
    display: none;
  }

  .company__photosSp {
    display: block;
    max-width: none;
    margin-top: 40px;
    padding-inline: 24px;
  }

  .company__photosSp figure {
    margin: 0;
  }

  .company__photo + .company__photo {
    margin-top: 40px;
  }
}



/* ======================
   EC流入エリア
====================== */

.ecflow {
  margin-top: 0;
  background: linear-gradient(to bottom, #F6F6F6 0%, #F9F9F9 100%);
}

.ecflow__inner {
  max-width: 1120px;
  margin: 0 auto;
  padding-inline: 24px;
  text-align: center;
}

.ecflow__title {
  font-weight: 700;
  font-size: 36px;
  line-height: 1.5;
  text-align: center;
  letter-spacing: .02em;
  padding-top: 160px;
}

.ecflow__image {
  margin-top: 100px;
}

.ecflow__image img {
  display: block;
  max-width: 1120px;
  width: 100%;
  margin-inline: auto;
}

.ecflow__lead {
  font-size: 24px;
  line-height: 1.5;
  margin-top: 54px !important;
}

.ecflow__lead--sp {
  display: none;
}

.ecflow__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 480px;
  height: 80px;
  margin: 40px auto 0;
  border: 1px solid #000;
  border-radius: 4px;
  background: #fff;
  color: #000;
  font-size: 16px;
  text-decoration: none;
}

.ecflow {
  padding-bottom: 80px;
}

/* ======================
   SP
====================== */
@media (max-width: 767.98px) {
  .ecflow {
    margin-top: clamp(120px, 24vw, 240px);
    background: #fff;
    padding-bottom: clamp(40px, 10vw, 80px);
  }

  .ecflow__title {
    font-size: clamp(28px, 8vw, 56px);
    line-height: 1.5;
    text-align: center;
    padding-top: 0;
  }

  .ecflow__image {
    margin-top: clamp(32px, 8vw, 64px);
  }

  .ecflow__image img {
    width: 100%;
    height: auto;
    max-width: none;
  }

  .ecflow__lead {
    font-size: clamp(14px, 4vw, 18px);
    line-height: clamp(28px, 7.5vw, 56px);
    margin-top: clamp(32px, 8vw, 64px);
  }

  .ecflow__lead--pc {
    display: none;
  }

  .ecflow__lead--sp {
    display: block;
  }

  .ecflow__btn {
    width: clamp(280px, 75vw, 560px);
    height: clamp(60px, 16vw, 120px);
    margin: clamp(32px, 8vw, 64px) auto 0;
  }
}


/* =======================
   Footer（PC）
======================= */
.siteFooter{
  position: relative;
  width: 100%;
  color: #555555;
  font-family: "Noto Serif JP", serif;

  /* 背景：画像は下に食いつき、足りないぶんだけ上へ #b5e6eb を塗り足す */
  background-color: #b5e6eb;
  background-image: url("../img/footer_bg_pc.jpg"); /* ← パスはCSS基準 */
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: 100% auto; /* 横100%、縦は比率維持 */
}

.siteFooter .footer__inner{
  position: relative;
  z-index: 1;
  max-width: 1120px;
  margin: 160px auto 0;
  padding-inline: 24px;
  text-align: center;
}

/* ページトップ（PCはやや右寄せ） */
.siteFooter .footer__pagetop{
  position: absolute;
  left: 75%;
  transform: translateX(-50%);
  top: -45px;
  width: 30px;
  height: 92px;
  z-index: 2;
  display: inline-block;
}
.siteFooter .footer__pagetop img{
  width: 30px;
  height: 92px;
  display: block;
}

/* 会社名＋インスタ（背景上端から120px） */
.siteFooter .footer__brand{
  margin-top: 120px;
  display: inline-flex;
  align-items: flex-start;
  gap: 16px;
}
.siteFooter .footer__brandName{
  font-size: 28px;
  line-height: 1.5;
  color: #000;
}
.siteFooter .footer__brandInsta img{
  width: 40px;
  height: 40px;
  display: block;
}

/* 住所：左揃えのまま中央配置 */
.siteFooter .footer__address{
  margin: 12px auto 0;   /* ← ブロックを中央配置 */
  font-style: normal;
  font-size: 16px;
  line-height: 30px;
  color: #3a3a3a;
  max-width: 480px;
  text-align: center;      /* ← 左揃え維持（<br>そのまま） */
  text-shadow: 0 0 8px rgba(255,255,255,0.9); /* 白の柔らかい影 */
}

/* テキスト・ボタン */
.siteFooter .footer__lead {
  margin-top: 48px !important;
  font-size: 16px;
  line-height: 30px;
  text-shadow: 0 0 8px rgba(255,255,255,0.9); /* 白の柔らかい影 */
}

.siteFooter .footer__btn{
  width: 480px;
  height: 80px;
  margin: 24px auto 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #000;
  border-radius: 4px;
  background: rgba(255,255,255,.4);
  color: #000;
  text-decoration: none;
  font-size: 16px;
  transition: background-color .3s ease, color .3s ease;

}

.siteFooter .footer__btn:hover {
  background: rgba(93, 72, 18, 0.8);
  color: #ffffff;
  border-color: rgba(93, 72, 18, 0.8);

}


.siteFooter .footer__sublead{
  margin-top: 48px !important;
  font-size: 16px;
  line-height: 30px;
  text-shadow: 0 0 8px rgba(255,255,255,0.9); /* 白の柔らかい影 */
}
.siteFooter .footer__btn--second{ margin-top: 24px; }

.siteFooter .footer__bottomSpacer{ height: 80px; }

/* コピーライト */
.siteFooter .footer__copy{
  position: relative;
  z-index: 1;
  height: 72px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #707070;
  font-size: 10px;
  background: #fff;
}

/* =======================
   Footer（SP）
======================= */
@media (max-width: 767.98px){
  .siteFooter{
    margin-top: clamp(90px, 24vw, 180px);
    /* SP用の縦長画像。やはり下食いつき＆足りない分は上へ #b5e6eb */
    background-image: url("../img/footer_bg_sp.jpg"); /* ← パス修正 */
    background-position: center bottom;
    background-size: 100% auto;
  }

  .siteFooter .footer__inner{ padding-inline: 24px; }

  .siteFooter .footer__pagetop{
    top: -6vw;
    left: 90%;
    width: 4vw;
    height: 12.2667vw;
    transform: translateX(-50%);
  }
  .siteFooter .footer__pagetop img{
    width: 4vw;
    height: 12.2667vw;
  }

  .siteFooter .footer__brand{
    margin-top: clamp(56px, 15vw, 112px);
    gap: 4.4444vw;
  }
  .siteFooter .footer__brandName{
    font-size: clamp(20px, 7.2vw, 36px);
    line-height: 1.4;
    color: #000;
  }
  .siteFooter .footer__brandInsta img{
    width: 8vw;
    height: 8vw;
  }

  /* 住所：左揃えのまま中央 */
  .siteFooter .footer__address{
    margin-top: clamp(24px, 6.4vw, 48px);
    font-size: clamp(14px, 3.73vw, 28px);
    line-height: clamp(28px, 7.47vw, 56px);
    max-width: 76%;
    text-align: left;
    margin-left: auto;
    margin-right: auto;
  }

  .siteFooter .footer__lead{
    margin-top: clamp(60px, 16vw, 120px);
    font-size: clamp(14px, 3.73vw, 28px);
    line-height: clamp(28px, 7.47vw, 56px);
  }

  .siteFooter .footer__btn{
    width: clamp(280px, 75vw, 560px);
    height: clamp(60px, 16vw, 120px);
    border-radius: 8px;
    font-size: clamp(16px, 4.8vw, 28px);
    margin-top: clamp(12px, 3.2vw, 24px);
    background: rgba(255,255,255,.4);
  }

  .siteFooter .footer__sublead{
    margin-top: clamp(24px, 6.4vw, 48px) !important; 
    font-size: clamp(14px, 3.73vw, 28px);
    line-height: clamp(28px, 7.47vw, 56px);
  }
  .siteFooter .footer__btn--second{ margin-top: clamp(12px, 3.2vw, 24px); }

  .siteFooter .footer__bottomSpacer{ height: clamp(40px, 16vw, 80px); }

  .siteFooter .footer__copy{
    height: auto;
    padding-top: clamp(25px, 6.7vw, 50px);
    padding-bottom: clamp(25px, 6.7vw, 50px);
    font-size: 10px;
    background: #fff;
  }
}



/* =======================
   Sub Page Lead Text (2)
======================= */
.pageLead {
  /* PCは固定120px */
  margin-top: 120px;
}

.pageLead__inner {
  max-width: 112rem;  /* 1120px */
  width: 100%;
  margin: 0 auto;
  padding-inline: 24px;
}

.pageLead__text {
  color: #555;
  font-weight: 700;        /* bold */
  font-size: 2.4rem;       /* 24px */
  line-height: 4.8rem;     /* 48px */
  text-align: left;
}

/* SP（375px基準：16/32、最少14/28） */
@media (max-width: 767.98px) {
  .pageLead {
    /* PC120pxの半分 → 基準60px、最少60px〜最大80px */
    margin-top: clamp(60px, 16vw, 80px);
  }

  .pageLead__text {
    font-size: clamp(16px, 4.8vw, 18px);       /* 最低16px〜標準18px */
    line-height: clamp(28px, 8.533vw, 32px);   /* 行間28px〜32px */
  }
}



/* =======================
   Store Detail Blocks
======================= */

.storeDetail {
  margin-bottom: 120px;
}

/* 共通：見出し */
.storeDetail__heading {
  margin-top: 132px;
  margin-bottom: 72px;
  font-size: 36px;
  line-height: 1.5;
  font-weight: 700;
  color: #555;
  text-align: center;
}

/* 共通：ブロック */
.storeBlock {
  display: flex;
  align-items: center;
  justify-content: center;
  column-gap: 40px;
  margin-bottom: 64px;
}

/* 左画像・右テキスト */
.storeBlock--imgLeft .storeBlock__img {
  order: 0;
}
.storeBlock--imgLeft .storeBlock__body {
  order: 1;
}

/* 右画像・左テキスト */
.storeBlock--imgRight .storeBlock__img {
  order: 1;
}
.storeBlock--imgRight .storeBlock__body {
  order: 0;
}

/* テキスト領域 */
.storeBlock__body {
  flex: 0 0 480px;
  font-size: 16px;
  line-height: 40px;
  color: #555;
  font-weight: 400;
  text-align: left;
}

/* 画像領域 */
.storeBlock__img {
  flex: 0 0 600px;
  margin: 0;
}
.storeBlock__img img {
  width: 100%;
  height: auto;
  display: block;
}

/* ===== Store Detail（SPの並びと余白を強制） ===== */
@media (max-width: 767.98px){

  /* コンテンツ幅いっぱい（左右24px） */
  .storeDetail .content{
    padding-inline: 24px;
  }

  /* 必ず「画像 → テキスト」の順にする */
  .storeDetail .storeBlock{
    flex-direction: column;          /* 縦並び */
    align-items: stretch;
    margin-bottom: 10.667vw;         /* 40px相当 */
  }
  .storeDetail .storeBlock__img{
    order: 0 !important;             /* 画像を先頭 */
    width: 100%;
    flex: none;
  }
  .storeDetail .storeBlock__body{
    order: 1 !important;             /* テキストを後ろ */
    flex: none;
    width: 100%;
    margin-top: 6.4vw;               /* 画像との間 24px相当 */
    font-size: clamp(14px, 3.733vw, 16px);
    line-height: clamp(28px, 8.533vw, 32px);
  }

  /* 見出し */
  .storeDetail .storeDetail__heading{
    margin-top: 21.33vw;             /* 375px時 80px */
    margin-bottom: 32px;
    font-size: clamp(20px, 5.6vw, 28px);
    text-align: center;
  }
}

/* ====== Lead Gallery（テキスト↔画像64px / 画像フル幅・余白ゼロ） ====== */

/* 上テキスト下と下テキスト上のマージンを64pxに調整 */
.pageLead--beforeGallery { margin-bottom: 64px; }  /* テキスト→画像の間隔 */
.pageLead--afterGallery  { margin-top: 64px; }     /* 画像→テキストの間隔 */

/* フルブリード（画面いっぱい）＆グリッド */
.leadGallery{
  /* ビューポートいっぱいに広げる（左右の24pxパディングを無視） */
  width: 100vw;
  margin-left: calc(50% - 50vw);

  display: grid;
  grid-template-columns: repeat(4, 25vw); /* PC：25vw × 4 */
  gap: 0;                                  /* 余白なし */
}
.leadGallery__item{ margin: 0; }
.leadGallery__item img{
  display: block;
  width: 100%;
  height: auto;         /* 画像比率のまま */
}

/* SP：2列×2行、各50vw・余白なし。間隔はvwで最適化 */
@media (max-width: 767.98px){
  .pageLead--beforeGallery { margin-bottom: 17.067vw; } /* 64px相当 */
  .pageLead--afterGallery  { margin-top: 17.067vw; }    /* 64px相当 */

  .leadGallery{
    grid-template-columns: repeat(2, 50vw); /* 50vw × 2 列 */
  }
}

/* ===== Access ===== */
.access { margin-top: 160px; }
.access__inner {
  max-width: 1120px;
  margin: 0 auto 160px;
  padding-inline: 24px;       /* 既存と同じコンテンツ余白 */
}

.access__title {               /* 見出しは他と共通トーン */
  font-weight: 700;
  font-size: 36px;
  line-height: 1.5;
  text-align: center;
  letter-spacing: .02em;
  margin: 0 0 48px;
  color: #000;                 /* 既存見出しに合わせる */
}

.access__row{
  display: flex;
  align-items: flex-start;
  justify-content: center;
  column-gap: 40px;            /* 地図とテキストの間40px */
}

/* Map：PCは 720x450 相当。アスペクト比 450/720=0.625 を維持 */
.access__map{ flex: 0 0 720px; }
.access__mapRatio{
  position: relative;
  width: 100%;
  padding-top: 62.5%;          /* 720:450 の比率 */
  overflow: hidden;
}
.access__mapRatio iframe{
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  border: 0;
}

/* Info：PCは幅360px、行間32px */
.access__info{ flex: 0 0 360px; }
.access__shop{
  font-size: 24px;
  line-height: 32px;
  font-weight: 700;
  color: #555;
  margin: 0 0 16px !important;
}
.access__text{
  font-size: 16px;
  line-height: 32px;
  color: #555;
}

/* ECセクションとの余白：PCで120px */
.access{
  margin-top: 120px;   /* 既存の160px → 120px */
}

/* 地図とテキストを上下中央で揃える */
.access__row{
  display: flex;
  align-items: center;  /* flex-start → center に変更 */
  justify-content: center;
  column-gap: 40px;
}

/* ---- SP ---- */
@media (max-width: 767.98px){
  .access { margin-top: clamp(120px, 24vw, 240px); }

  .access__title{
    font-size: clamp(28px, 8vw, 56px);
    margin-bottom: clamp(32px, 8vw, 64px);
  }

  .access__row{ 
    display: block; 
  }

  .access__inner {
    margin: 0 auto clamp(80px, 38.64734299516908vw, 160px);
  }

  .access__map{ 
    flex: none; 
    width: 100%;
  }

  /* テキストは読みやすさ優先の可変 */
  .access__info{
    flex: none;
    width: 100%;
    margin-top: clamp(24px, 6.4vw, 32px);
  }
  .access__shop{
    font-size: clamp(18px, 5.6vw, 24px);
    line-height: 1.6;
    margin-bottom: clamp(8px, 2.133vw, 16px) !important;
  }
  .access__text{
    font-size: clamp(14px, 3.733vw, 16px);
    line-height: clamp(28px, 8vw, 32px);
  }

    .access { 
    margin-top: clamp(120px, 24vw, 240px); /* 既存値そのまま */
  }
}


