/*-------post------*/
.archive-post-title {
  font-size: var(--b-fs);
  font-weight: var(--b-fw);
}
.single-post-title {
  font-size: var(--b-fs);
  font-weight: var(--b-fw);
}
.breadcrumb {
  background: #1a1a1a;
  padding-inline: 5.55%;
  display: flex;
  padding-top: 10px;
  padding-bottom: 10px;
}
.breadcrumb li::after {
  content: ">";
  margin: 0 1em;
  display: inline-block;
}
.breadcrumb li:last-child::after {
  content: none;
}
.breadcrumb li a,
.breadcrumb li {
  color: #fff;
}
.p-single__body {
  max-width: 950px;
  width: 100%;
  margin-inline: auto;
}
.pagination-area {
  margin-top: clamp(40px, var(--px-80), 80px);
}
.nav-links {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 1em;
}

/*-------hd------*/
/* MVの上に重なる透過ヘッダー。高さはロゴ＋上下paddingで決まる（PC:140px / SP:90px） */
.l-header {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 100;
  background: linear-gradient(
    180deg,
    var(--c-header-veil) 0%,
    rgba(255, 255, 255, 0) 100%
  );
}
.l-header__inner {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: clamp(12px, var(--px-20), 20px);
  padding-block: clamp(10px, var(--px-20), 20px);
}
/* FVを通り過ぎて追従表示になった時は、下の本文が透けないよう地色を敷く */
.l-header.is-fixed {
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 1px 6px rgba(0, 0, 0, 0.08);
}
.is-fixed .c-logo__link img {
  width: 100px;
}
/*-------logo------*/
.c-logo__link {
  display: block;
}
.c-logo__link img {
  display: block;
  width: clamp(150px, 15.21vw, 219px);
  height: auto;
}
.c-logo--footer .c-logo__link img {
  width: clamp(180px, var(--px-272), 272px);
}

/*-------nav------*/
.l-header__right {
  display: flex;
  align-items: center;
  gap: clamp(12px, var(--px-20), 20px);
}
.c-nav__list {
  display: flex;
  align-items: center;
  gap: clamp(16px, var(--px-30), 30px);
}
.c-nav__link {
  display: block;
  font-size: clamp(14px, var(--px-18), 18px);
  line-height: 1.2;
  white-space: nowrap;
}

/*-------tel------*/
.c-tel {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(6px, 0.694vw, 10px);
  padding: clamp(6px, 0.694vw, 10px) clamp(12px, var(--px-20), 20px);
  background: linear-gradient(
    180deg,
    var(--c-red-from) 0%,
    var(--c-red-to) 100%
  );
}
.c-tel__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: clamp(18px, var(--px-24), 24px);
  height: clamp(18px, var(--px-24), 24px);
}
.c-tel__icon img {
  display: block;
  width: 75%;
  height: 75%;
}
.c-tel__num {
  font-family: "Noto Serif", serif;
  font-size: clamp(16px, var(--px-20), 20px);
  line-height: 1.2;
  color: #fff;
  white-space: nowrap;
}
.c-tel--lg .c-tel__num {
  font-size: clamp(18px, var(--px-24), 24px);
}

/*-------ft-----*/
.l-footer {
  position: relative;
  isolation: isolate;
  background: var(--c-footer);
}
/* 地紋テクスチャ。Figmaの mix-blend-mode: soft-light を再現 */
.l-footer__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
  z-index: 0;
}
.l-footer__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(20px, var(--px-40), 40px);
  padding-top: clamp(20px, var(--px-40), 40px);
  padding-inline: 5.55%;
}
/* align-items:center の子は shrink-to-fit なので、幅を親で頭打ちにしないと
   ナビが max-content のまま横に溢れて折り返さない */
.l-footer__inner > * {
  max-width: 100%;
}
.c-footer-nav .c-nav__list {
  flex-wrap: wrap;
  justify-content: center;
}
.c-copyright {
  padding: clamp(12px, 1.5625vw, 22.5px) 7.5px;
}
.c-copyright__text {
  font-size: 12px;
  line-height: 1.2;
}

/*-------btn------*/
/*-------fv------*/
.p-index-fv {
  position: relative;
}

/* =====================
  TOP
===================== */
.c-top-heading {
  font-size: clamp(24px, var(--px-36), 36px);
  font-weight: 500;
  line-height: 1.2;
  color: var(--c-brown);
}

/*--- fv ---*/
/* 読み込み時にふわっと出す */
.p-top-fv {
  animation: aFvIn 1.4s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@keyframes aFvIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.p-top-fv .splide__slide {
  overflow: hidden;
}
/* 表示中のスライドだけゆっくり引いていく */
.p-top-fv .splide__slide img {
  transform: scale(1.08);
  transition: transform 7s linear;
}
.p-top-fv .splide__slide.is-active img {
  transform: scale(1);
}
.p-top-fv__img {
  width: 100%;
  height: auto;
  aspect-ratio: 1440 / 668;
  object-fit: cover;
}
@media (prefers-reduced-motion: reduce) {
  .p-top-fv {
    animation: none;
  }
  .p-top-fv .splide__slide img {
    transform: none;
    transition: none;
  }
}

/*--- sec1 ---*/
.p-top-sec1 {
  padding-block: clamp(40px, var(--px-80), 80px);
  background: url(../img/top-sec1-bg.jpg) center / cover no-repeat;
}
.p-top-sec1__inner {
  max-width: 800px;
  margin-left: auto;
  margin-right: clamp(20px, 6.25vw, 90px);
}
.p-top-sec1__text {
  display: flex;
  flex-direction: column;
  gap: clamp(10px, var(--px-20), 20px);
}
.p-top-sec1__lead {
  font-size: clamp(16px, var(--px-20), 20px);
  font-weight: 500;
  line-height: 2.2;
  color: var(--c-brown);
}
.p-top-sec1__lead em {
  font-size: clamp(20px, var(--px-28), 28px);
  font-style: normal;
}
.p-top-sec1__photos {
  display: flex;
  gap: clamp(15px, var(--px-40), 40px);
  margin-top: clamp(20px, var(--px-40), 40px);
  margin-inline: clamp(0px, 1.389vw, 20px);
}
.p-top-sec1__photos img {
  flex: 1;
  min-width: 0; /* flexの min-width:auto で画像が縮まないのを防ぐ */
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: cover;
}
/* 2枚目だけ下にずらして重心をつくる */
.p-top-sec1__photos img:last-child {
  margin-top: clamp(20px, var(--px-40), 40px);
}

/*--- sec2-1 こだわり ---*/
.p-top-kodawari {
  position: relative;
  overflow: hidden;
  padding-block: clamp(40px, var(--px-80), 80px) clamp(60px, 20.35vw, 293px);
  background: var(--c-bg);
  /* カーテンワイプの幕をこのセクションの地色に合わせる */
  --a-ct-bg: var(--c-bg);
}
/* 鶏のイラスト（左）と筆の円弧（右）。どちらも装飾 */
.p-top-kodawari__rooster {
  position: absolute;
  left: 22.36%;
  top: clamp(40px, var(--px-80), 80px);
  width: 27.57%;
  height: auto;
  pointer-events: none;
}
.p-top-kodawari__brush {
  position: absolute;
  right: 0;
  top: 22.22vw;
  width: 27.57%;
  height: auto;
  pointer-events: none;
}
.p-top-kodawari__inner {
  position: relative;
  display: flex;
  align-items: flex-end;
  gap: clamp(24px, 5.556vw, 80px);
}
.p-top-kodawari__text {
  flex: 0 0 50%;
  display: flex;
  flex-direction: column;
  gap: clamp(10px, var(--px-20), 20px);
}
.p-top-kodawari__right {
  position: relative;
  flex: 1;
  min-width: 0;
}
/* 大小2枚を重ねた 1:1 の構図。装飾なので absolute を許容 */
.p-top-kodawari__media {
  position: relative;
  aspect-ratio: 1;
}
.p-top-kodawari__ph1,
.p-top-kodawari__ph2 {
  position: absolute;
  height: auto;
  aspect-ratio: 1;
  object-fit: cover;
}
.p-top-kodawari__ph1 {
  left: 28.571%;
  top: 0;
  width: 71.429%;
}
.p-top-kodawari__ph2 {
  left: 0;
  top: 42.857%;
  width: 57.143%;
}
.p-top-kodawari__btn {
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 3; /* カーテン（.a-ct の z-index:2）より前に出す */
}

/*--- sec2-2 お品書き ---*/
.p-top-menu {
  position: relative;
  /* 写真列を上のセクションの余白へせり出させる */
  margin-top: clamp(-173px, -12.014vw, -60px);
  padding-bottom: clamp(40px, var(--px-80), 80px);
}
/* 写真列は上のセクションにせり出すので、背景は途中から敷く */
.p-top-menu::before {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  top: clamp(60px, 12.014vw, 173px);
  background: url(../img/top-menu-bg.jpg) center / cover no-repeat;
  z-index: 0;
}
.p-top-menu > * {
  position: relative;
}
.p-top-menu__photos {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: clamp(10px, var(--px-40), 40px);
}
.p-top-menu__photos img {
  min-width: 0;
  height: auto;
  aspect-ratio: 1;
  object-fit: cover;
}
.p-top-menu__photos img:nth-child(odd) {
  flex: 0 0 25%;
}
.p-top-menu__photos img:nth-child(even) {
  flex: 0 0 27.78%;
}
.p-top-menu__panel {
  position: relative;
  width: 83.33%;
  margin-inline: auto;
  margin-top: clamp(20px, var(--px-40), 40px);
  padding: clamp(20px, var(--px-40), 40px) clamp(6px, 0.694vw, 10px);
  background: rgba(255, 255, 255, 0.7);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(16px, 2.083vw, 30px);
}
.p-top-menu__deco {
  position: absolute;
  right: 4.17%;
  top: 32.4%;
  width: 20.42%;
  height: auto;
  pointer-events: none;
}
.p-top-menu__body {
  text-align: center;
}

/*--- sec3 ギャラリー ---*/
.p-top-gallery {
  position: relative;
  padding-block: clamp(40px, 6.25vw, 90px);
  background: #e8e3d9;
}
.p-top-gallery::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url(../img/top-sec3-overlay.jpg) center / cover no-repeat;
  /* 40%の薄さは書き出し時点で焼き込み済みなので opacity は掛けない */
  mix-blend-mode: multiply;
  pointer-events: none;
}
.p-top-gallery__grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(10px, 4.17vw, 60px) clamp(10px, var(--px-20), 20px);
  max-width: 1260px;
  margin-inline: auto;
  padding-inline: clamp(20px, 6.25vw, 90px);
}
.p-top-gallery__grid img {
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: cover;
}

/*--- sec4 店舗情報 ---*/
.p-top-info {
  padding-block: clamp(50px, var(--px-100), 100px)
    clamp(40px, var(--px-80), 80px);
  background: url(../img/info-bg.jpg) center / cover no-repeat;
}
.p-top-info__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(30px, 13.889vw, 200px);
}
.p-top-info__contact {
  display: flex;
  flex-direction: column;
  gap: clamp(20px, var(--px-40), 40px);
  width: clamp(200px, 18.889vw, 272px);
}
.p-top-info__logo {
  display: block;
  width: 100%;
  height: auto;
}
.p-top-info__contact-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(10px, var(--px-20), 20px);
}
.p-top-info__contact-title {
  font-size: clamp(18px, var(--px-24), 24px);
  font-weight: 600;
  line-height: 1.2;
}
.p-top-info__access {
  font-size: clamp(15px, var(--px-20), 20px);
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
}
.p-top-info__list {
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 2.083vw, 30px);
}
.p-top-info__list .row {
  gap: clamp(24px, var(--px-80), 80px);
}
.p-top-info__list dt,
.p-top-info__list dd {
  font-size: clamp(15px, var(--px-20), 20px);
  font-weight: 600;
  line-height: 1.2;
}
.p-top-info__list dt {
  flex: 0 0 clamp(60px, 5.556vw, 80px);
}
.p-top-info__btn-wrap {
  margin-top: clamp(20px, var(--px-40), 40px);
  text-align: center;
}

/*-------ipad----*/
@media screen and (max-width: 1180px) {
}
/*-------ipad-air----*/
@media screen and (max-width: 820px) {
}
/*-------iphone----*/
@media screen and (max-width: 680px) {
  .c-logo__link img {
    width: min(41.07vw, 154px);
  }
  /* SPは追従ヘッダー（is-fixed）を使わない。
     ヘッダー自体はMVと一緒に流し、アニメーションも地色の切り替えもしない */
  .l-header.fixed-wrap,
  .l-header.fixed-wrap.is-fixed {
    position: absolute;
    animation: none;
    background: linear-gradient(
      180deg,
      var(--c-header-veil) 0%,
      rgba(255, 255, 255, 0) 100%
    );
    box-shadow: none;
  }
  .l-header.is-fixed .c-logo__link img {
    width: min(41.07vw, 154px);
  }

  /* 電話とハンバーガーだけは最初から画面に固定して出しっぱなしにする。
     右端からの位置はハンバーガー(5.55%)＋その幅45px＋間隔9px */
  .l-header__right .c-tel {
    position: fixed;
    top: 10px;
    right: calc(5.55% + 54px);
    z-index: 699; /* ドロワー(700)より下 = 開いたら隠れる */
    width: 45px;
    height: 45px;
    padding: 0;
    border-radius: 6px;
  }
  .l-header__right .c-tel__num {
    display: none;
  }
  .c-tel__icon {
    width: 24px;
    height: 24px;
  }
  /* SPカンプではフッターのグローバルナビは出さない */
  .c-footer-nav {
    display: none;
  }

  /*--- TOP SP ---*/
  .p-top-fv__img {
    aspect-ratio: 375 / 720;
  }
  .p-top-sec1__inner {
    max-width: none;
    margin-inline: 5.55%;
  }
  .p-top-kodawari {
    padding-bottom: clamp(60px, 32vw, 120px);
  }
  .p-top-kodawari__inner {
    flex-direction: column;
    align-items: stretch;
    gap: clamp(20px, 8vw, 30px);
  }
  .p-top-kodawari__text {
    flex: 0 0 auto;
  }
  .p-top-kodawari__rooster {
    left: 52%;
    top: 11px;
    width: 55.2%;
  }
  .p-top-kodawari__brush {
    right: 3.4%;
    top: auto;
    bottom: clamp(60px, 32vw, 120px);
    width: 47.2%;
  }
  /* SPはボタンを写真の下に中央で置く */
  .c-btn.p-top-kodawari__btn {
    position: static;
    display: flex;
    width: fit-content;
    margin: clamp(20px, 8vw, 30px) auto 0;
  }
  .p-top-menu::before {
    top: clamp(40px, 16vw, 60px);
  }
  .p-top-menu__photos img:nth-child(odd) {
    flex: 0 0 30%;
  }
  .p-top-menu__photos img:nth-child(even) {
    flex: 0 0 35%;
  }
  .p-top-menu__photos {
    gap: clamp(6px, 2.13vw, 8px);
    padding-inline: 5.55%;
  }
  .p-top-menu__body {
    text-align: left;
  }
  .p-top-menu__panel {
    width: auto;
    margin-inline: 5.55%;
    padding: 24px 20px;
  }
  .p-top-menu__deco {
    right: 0;
    top: auto;
    bottom: 4%;
    width: 29%;
  }
  .p-top-gallery__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    max-width: 70%;
    padding-inline: 0;
  }
  .p-top-info__logo {
    max-width: 175px;
    margin-inline: auto;
  }
  .p-top-info__inner {
    flex-direction: column;
    gap: clamp(24px, 8vw, 40px);
  }
  .p-top-info__contact {
    width: min(72.5%, 272px);
  }
  /* SPカンプでも「見出し｜内容」は横並びのまま */
  .p-top-info__list .row {
    flex-direction: row;
    gap: clamp(16px, 6.4vw, 24px);
  }
  .p-top-info__list {
    width: min(72.5%, 272px);
  }
}
