/*-------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（ロゴ＋連絡先：全ページ共通オーバーレイ）------*/
.l-header {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
  width: 100%;
  color: #fff;
}
.p-index-catch {
  position: absolute;
  right: clamp(50px, var(--px-145), 145px);
  bottom: clamp(20px, var(--px-80), 80px);
  z-index: 5;
  display: flex;
  flex-direction: row-reverse;
  gap: 30px;
}
.p-index-catch-text {
  color: #fff;
  text-shadow: 0 0 12px rgba(0, 0, 0, 0.25);
  font-size: clamp(12px, var(--px-36), 36px);
  font-style: normal;
  writing-mode: tb;
  font-weight: 600;
  line-height: 111%; /* 39.96px */
  letter-spacing: 0.2em;
}
/* メインビジュアル：各 page.php 側で出力（下層は背景画像 / TOPはスライダー） */
.l-mv {
  position: relative;
}
.l-mv__bg {
  display: block;
  width: 100%;
  height: clamp(400px, var(--px-533), 700px);
  object-fit: cover;
}
.c-logo {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 3;
  width: clamp(120px, var(--px-170), 170px);
}
.c-logo__img {
  width: 100%;
  height: auto;
}
.l-header__contact {
  position: absolute;
  top: clamp(10px, var(--px-15), 15px);
  right: 5.55%;
  z-index: 3;
  display: flex;
  align-items: center;
  gap: clamp(16px, var(--px-30), 30px);
}
.c-tel {
  color: #fff;
}
.c-tel__label {
  display: block;
  font-size: clamp(12px, var(--px-16), 16px);
  letter-spacing: 0.04em;
}
.c-tel__num {
  display: flex;
  align-items: center;
  gap: 0.4em;
  font-family: "EB Garamond", serif;
  font-size: clamp(22px, var(--px-32), 32px);
  line-height: 1.2;
}
.c-tel__num svg {
  width: clamp(14px, var(--px-18), 18px);
  height: auto;
}
.c-reserve {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: clamp(160px, var(--px-225), 225px);
  height: clamp(56px, var(--px-72), 72px);
  background: #971b00;
  color: #fff;
  font-family: "Zen Old Mincho", serif;
  font-size: clamp(16px, var(--px-20), 20px);
}
.c-reserve svg {
  flex-shrink: 0;
  width: clamp(14px, var(--px-16), 16px);
  height: auto;
}
.c-reserve:hover {
  background: #fff;
  color: #000;
  fill: #000;
  opacity: 1;
}
/* グローバルナビ（ヒーロー左 / [global_nav]） */
.c-gnav {
  position: absolute;
  bottom: clamp(40px, var(--px-80), 80px);
  left: 5.55%;
  z-index: 3;
  display: flex;
  flex-direction: column;
  gap: clamp(12px, var(--px-16), 16px);
}
.c-gnav__list {
  display: flex;
  flex-direction: column;
  gap: clamp(12px, var(--px-16), 16px);
}
.c-gnav a {
  color: #fff;
  font-family: "EB Garamond", serif;
  font-weight: 500;
  font-size: clamp(16px, var(--px-20), 20px);
  letter-spacing: 0.04em;
  text-shadow: 0px 0px 12px rgba(0, 0, 0, 0.25);
}
.c-gnav__sns {
  display: inline-flex;
  width: clamp(22px, var(--px-26), 26px);
  color: #fff;
}
.c-gnav__sns img {
  width: 100%;
  height: auto;
}
@media screen and (max-width: 680px) {
  .l-mv__bg {
    aspect-ratio: auto;
    height: 240px;
  }
  /* SPではMV内のナビ・連絡先は隠し、ドロワー／固定バーで操作 */
  .l-mv .c-gnav,
  .l-header__contact {
    display: none;
  }
}
/*-------追従ヘッダー（#fvを過ぎたらfixed / SPは非表示 / すりガラス）------*/
.l-fixedhead {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 50;
  width: 100%;
  color: #fff;
  background: rgba(41, 13, 7, 0.5);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  transform: translateY(-100%);
  transition: transform 0.4s ease;
}
.l-fixedhead.is-show {
  transform: translateY(0);
}
.l-fixedhead__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(16px, var(--px-40), 40px);
  padding: 10px 5.55%;
}
/* ナビは横並び（[global_nav] 再利用） */
.l-fixedhead .c-gnav {
  position: static;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: clamp(14px, var(--px-30), 30px);
}
.l-fixedhead .c-gnav__list {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: clamp(14px, var(--px-30), 30px);
}
.l-fixedhead .c-gnav a {
  font-size: clamp(14px, var(--px-16), 16px);
  text-shadow: none;
}
.l-fixedhead .c-gnav__sns {
  width: clamp(20px, var(--px-24), 24px);
}
.l-fixedhead__contact {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: clamp(12px, var(--px-20), 20px);
}
.l-fixedhead .c-tel__label {
  font-size: 11px;
}
.l-fixedhead .c-tel__num {
  font-size: clamp(16px, var(--px-22), 22px);
}
.l-fixedhead .c-tel__num svg {
  width: 13px;
}
.l-fixedhead .c-reserve {
  width: clamp(120px, var(--px-160), 160px);
  height: clamp(40px, var(--px-52), 52px);
  font-size: clamp(13px, var(--px-16), 16px);
}
@media screen and (max-width: 680px) {
  .l-fixedhead {
    display: none;
  }
}
/*-------ft（全ページ共通フッター）------*/
.l-footer {
  position: relative;
  background: #553124;
  color: #fff;
  padding-block: 40px;
}
.l-footer__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(24px, var(--px-40), 40px);
}
.l-footer__logo {
  width: clamp(150px, var(--px-206), 206px);
}
.l-footer__logo img {
  width: 100%;
  height: auto;
}
.l-footer__contact {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(20px, var(--px-40), 40px);
}
/* フッターのナビは横並び（[global_nav] を再利用） */
.l-footer .c-gnav {
  position: static;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: clamp(20px, var(--px-40), 40px);
}
.l-footer .c-gnav__list {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: clamp(20px, var(--px-40), 40px);
}
.c-copyright {
  font-family: "EB Garamond", serif;
  font-weight: 500;
  font-size: clamp(14px, var(--px-20), 20px);
  letter-spacing: 0.08em;
  background: #553124;
  color: #fff;
  text-align: center;
  padding-block: 20px;
}
/* ページトップ（右下の四角ボタン / 表示は #page-top.is-show） */
.c-pagetop__link,
.c-pagetop {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  background: #971b00;
  color: #fff;
}
.c-pagetop__icon {
  width: 16px;
  height: auto;
}
@media screen and (max-width: 680px) {
  .footer {
    padding-bottom: 65px;
  }
  .l-footer {
    /* SP固定バー(60px)に隠れないよう余白確保 */
    padding-bottom: 10px;
  }
  .l-footer__contact {
    flex-direction: column;
  }
  /* SPではページトップボタンは非表示（追従フッターと干渉するため） */
  .c-pagetop {
    display: none;
  }
  .l-footer .c-gnav {
    padding-inline: 12%;
  }
}
/*-------btn（共通ボタン「詳しくはこちら」など）------*/
.c-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: clamp(20px, var(--px-56), 56px);
  width: clamp(240px, var(--px-340), 340px);
  height: clamp(64px, var(--px-85), 85px);
  margin-top: clamp(24px, var(--px-50), 50px);
  background: #290d07;
  border: 1px solid #fff;
  color: #fff;
  font-family: "Zen Old Mincho", serif;
  font-size: clamp(15px, var(--px-16), 16px);
  letter-spacing: 0.04em;
}
.c-btn__icon {
  flex-shrink: 0;
  display: inline-flex;
  width: 25px;
}
.c-btn__icon svg {
  width: 100%;
  height: auto;
}
.c-btn:hover {
  background: #fff;
  color: #000;
  fill: #000;
  border: 1px solid #000;
  opacity: 1;
}
@media screen and (max-width: 680px) {
  .c-btn {
    display: flex;
    width: clamp(240px, 90.67vw, 340px);
    margin-left: auto;
    margin-right: auto;
  }
}
/*-------fv------*/
.p-index-fv {
  position: relative;
}
/*-------top: About（1440px基準の vw 絶対配置 / SPは後日）------*/
.p-about {
  position: relative;
  width: 100%;
  /* デザイン 1440 × 1279 の比率で高さを自動算出（vwの手計算をやめる） */
  aspect-ratio: 1440 / 1279;
  margin-top: 5vw;
  overflow: hidden;
}
.p-about__script {
  position: absolute;
  top: 3.5%;
  left: 42.22vw;
  z-index: 2;
  transform: rotate(-10.12deg);
  transform-origin: left center;
  font-family: "La Belle Aurore", cursive;
  font-size: clamp(32px, 3.33vw, 48px);
  line-height: 1;
  color: #971b00;
}
.p-about__en {
  position: absolute;
  top: 1.67vw;
  left: 45.28vw;
  z-index: 2;
  font-family: "EB Garamond", serif;
  font-weight: 500;
  font-size: clamp(64px, 13.89vw, 200px);
  line-height: 0.91;
  letter-spacing: 0.04em;
  white-space: nowrap;
  color: #290d07;
}
.p-about__en span {
  display: block;
}
/* 写真に重なる部分だけ白：写真と同じ矩形でクリップした白コピーを上に重ねる */
.p-about__mask {
  position: absolute;
  top: 11.32vw;
  left: 0;
  z-index: 4;
  width: 63.68vw;
  height: 41.94vw;
  overflow: hidden;
  pointer-events: none;
}
.p-about__en-w {
  position: absolute;
  top: -9.65vw;
  left: 45.28vw;
  font-family: "EB Garamond", serif;
  font-weight: 500;
  font-size: clamp(64px, 13.89vw, 200px);
  line-height: 0.91;
  letter-spacing: 0.04em;
  white-space: nowrap;
  color: #fff;
}
.p-about__en-w span {
  display: block;
}
.p-about__photo {
  position: absolute;
  margin: 0;
  z-index: 1;
}
.p-about__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-about__photo--wine {
  top: 11.32vw;
  left: 0;
  width: 63.68vw;
  height: 41.94vw;
}
/* 画像から右上方向にずらした黒線フレーム（16px相当） */
.p-about__photo--wine::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  border: 1px solid #290d07;
  transform: translate(1.11vw, -1.11vw);
  pointer-events: none;
}
.p-about__text {
  position: absolute;
  top: 57.01vw;
  left: 6.74vw;
  z-index: 2;
  width: 43.26vw;
  line-height: 2.5;
  letter-spacing: 0.04em;
}
.p-about__circle {
  position: absolute;
  top: 43.47vw;
  left: 54.24vw;
  z-index: 0;
  width: 45.83vw;
  height: 44.65vw;
  border: 1px solid #c8b48f;
  border-radius: 50%;
}
.p-about__photo--plate {
  top: 41.81vw;
  left: 52.71vw;
  width: 50.9vw;
  height: 47.01vw;
}
.p-about__photo--plate img {
  object-fit: contain;
}
.p-about__herb {
  position: absolute;
  z-index: 2;
  height: auto;
}
.p-about__herb--1 {
  top: 77.43vw;
  left: 12.99vw;
  width: 10.28vw;
}
.p-about__herb--2 {
  top: 75.56vw;
  left: 22.29vw;
  width: 10.14vw;
}
/* About：スマホ（375px基準の vw 絶対配置） */
@media screen and (max-width: 680px) {
  .p-about {
    /* デザイン 375 × 931 の比率で高さを自動算出 */
    aspect-ratio: 375 / 931;
    margin-top: 12vw;
  }
  .p-about__script {
    left: 35.73vw;
  }
  .p-about__en {
    top: 6.4vw;
    left: 50.13vw;
  }
  .p-about__mask {
    top: 17.6vw;
    left: 0;
    width: 71.47vw;
    height: 46.67vw;
  }
  .p-about__en-w {
    top: -11.2vw;
    left: 50.13vw;
  }
  .p-about__photo--wine {
    top: 17.6vw;
    left: 0;
    width: 71.47vw;
    height: 46.67vw;
  }
  .p-about__photo--wine::before {
    transform: translate(1.33vw, -1.33vw);
  }
  .p-about__text {
    top: 70.93vw;
    left: 2.67vw;
    width: 94.67vw;
  }
  .p-about__circle {
    display: none;
  }
  .p-about__photo--plate {
    top: 177.6vw;
    left: 23.2vw;
    width: 76.53vw;
    height: 70.67vw;
  }
  .p-about__herb--1 {
    top: 223.73vw;
    left: 4vw;
    width: 19.73vw;
  }
  .p-about__herb--2 {
    top: 208vw;
    left: 4vw;
    width: 19.73vw;
  }
}
/*-------top: Instagram------*/
.p-insta {
  position: relative;
  overflow: hidden;
  padding-block: clamp(60px, var(--px-120), 120px);
}
.p-insta__head {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(16px, var(--px-40), 40px);
}
.p-insta__line {
  width: clamp(60px, var(--px-212), 212px);
  height: 1px;
  background: #290d07;
}
.p-insta__tit {
  font-family: "EB Garamond", serif;
  font-weight: 400;
  font-size: clamp(36px, var(--px-64), 64px);
  line-height: 2;
  letter-spacing: 0.04em;
  color: #290d07;
  white-space: nowrap;
}
.p-insta__text {
  margin-top: clamp(8px, var(--px-16), 16px);
  text-align: center;
  font-size: clamp(15px, var(--px-20), 20px);
  line-height: 2;
  letter-spacing: 0.04em;
  color: #290d07;
}
.p-insta__icon {
  display: block;
  width: clamp(48px, var(--px-62), 62px);
  margin: clamp(24px, var(--px-50), 50px) auto 0;
}
.p-insta__icon img {
  display: block;
  width: 100%;
  height: auto;
}
.p-insta__leaf {
  position: absolute;
  z-index: 1;
  height: auto;
}
.p-insta__leaf--1 {
  top: 50%;
  right: 15.63vw;
  width: 4.93vw;
}
.p-insta__leaf--2 {
  top: 56%;
  right: 6.88vw;
  width: 5.63vw;
}
@media screen and (max-width: 680px) {
  /* 羽は両方とも右側・アイコン付近に小さく配置（375px基準） */
  .p-insta__leaf--1 {
    top: auto;
    left: auto;
    right: 16vw;
    bottom: 12vw;
    width: 7.73vw;
  }
  .p-insta__leaf--2 {
    top: auto;
    left: auto;
    right: 2.67vw;
    bottom: 8.8vw;
    width: 8.53vw;
  }
}
/*-------top: MENU（写真左 / テキスト右）------*/
.p-top-menu {
  display: flex;
  align-items: flex-start;
  column-gap: clamp(20px, var(--px-48), 48px);
  padding-block: clamp(60px, var(--px-120), 120px);
}
.p-top-menu__photo {
  flex-shrink: 0;
  width: var(--px-742);
  aspect-ratio: 742 / 537;
  margin: 0;
}
.p-top-menu__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-top-menu__body {
  flex: 1;
  min-width: 0;
}
.p-top-menu__head {
  position: relative;
}
.p-top-menu__en {
  font-family: "EB Garamond", serif;
  font-weight: 400;
  font-size: clamp(56px, var(--px-96), 96px);
  line-height: 1;
  letter-spacing: 0.04em;
  color: #290d07;
}
.p-top-menu__script {
  position: absolute;
  top: 0.25em;
  z-index: -1;
  left: clamp(110px, var(--px-190), 190px);
  transform: rotate(-10deg);
  transform-origin: left center;
  font-family: "La Belle Aurore", cursive;
  font-size: clamp(28px, var(--px-48), 48px);
  line-height: 1;
  color: #971b00;
  white-space: nowrap;
}
.p-top-menu__line {
  display: block;
  width: 100%;
  height: 1px;
  margin-top: clamp(16px, var(--px-36), 36px);
  background: #290d07;
}
.p-top-menu__text {
  margin-top: clamp(24px, var(--px-40), 40px);
  margin-right: 5.55%;
  line-height: 2.5;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 680px) {
  /* 並び順：見出し → 線 → 本文 → ボタン → 写真（最下部・中央） */
  .p-top-menu {
    flex-direction: column-reverse;
    column-gap: 0;
    row-gap: clamp(24px, var(--px-40), 40px);
    padding-inline: 2.67vw;
    padding-block: 60px;
  }
  .p-top-menu__photo {
    width: 75.2vw;
    align-self: center;
  }
  .p-top-menu__en {
    font-size: clamp(40px, 12.8vw, 48px);
  }
  .p-top-menu__script {
    top: -0.1em;
    left: clamp(90px, 30vw, 120px);
    font-size: clamp(24px, 8.53vw, 32px);
  }
  .p-top-menu__text {
    margin-right: 0;
  }
}
/*-------top: gallery（PC 4×2 / SP 2×4 ＋ 背景画像）------*/
.p-ga {
  position: relative;
  padding-bottom: clamp(50px, var(--px-100), 100px);
  margin-bottom: clamp(30px, var(--px-180), 180px);
}
.p-ga__bg {
  position: absolute;
  left: 0;
  z-index: 0;
  width: 100%;
  height: calc(100% - clamp(50px, var(--px-100), 100px));
  /* グリッドより下にはみ出す（PC約-80px / SP約-40px。1本のclampで可変） */
  top: clamp(40px, var(--px-80), 80px);
}
.p-ga__bg img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-ga__grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  column-gap: clamp(8px, var(--px-15), 15px);
  row-gap: clamp(8px, var(--px-12), 12px);
}
.p-ga__item {
  margin: 0;
  aspect-ratio: 309 / 222;
}
.p-ga__item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media screen and (max-width: 680px) {
  .p-ga__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
/*-------feature（番号付き 画像＋テキストの交互ブロック / 複数ページ共通）------*/
.c-feature-list {
  display: flex;
  flex-direction: column;
  row-gap: clamp(80px, var(--px-150), 150px);
}
.c-feature {
  display: flex;
  align-items: flex-start;
  column-gap: clamp(24px, var(--px-44), 44px);
  /* 画像が左端ぴったり / テキスト側に余白 */
  padding-left: 0;
  padding-right: clamp(24px, var(--px-100), 100px);
}
.c-feature--reverse {
  flex-direction: row-reverse;
  /* 画像が右側（右端から53px空ける） / テキスト側に余白 */
  padding-left: clamp(24px, var(--px-80), 80px);
  padding-right: clamp(16px, var(--px-53), 53px);
}
.c-feature__media {
  position: relative;
  flex-shrink: 0;
  width: var(--px-659);
}
.c-feature__num {
  position: absolute;
  left: 18%;
  bottom: 100%;
  font-family: "EB Garamond", serif;
  font-weight: 400;
  font-size: clamp(64px, var(--px-128), 128px);
  line-height: 0.91;
  letter-spacing: 0.04em;
  color: #290d07;
  pointer-events: none;
}
.c-feature--reverse .c-feature__num {
  left: auto;
  right: 18%;
}
.c-feature__img {
  position: relative;
  margin: 0;
  aspect-ratio: 659 / 434;
}
.c-feature__img img {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* 画像から右上方向にずらした黒線フレーム */
.c-feature__img::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  border: 1px solid #290d07;
  transform: translate(
    clamp(6px, var(--px-12), 12px),
    calc(-1 * clamp(6px, var(--px-12), 12px))
  );
  pointer-events: none;
}
.c-feature__body {
  flex: 1;
}
.c-feature__tit {
  font-size: clamp(22px, var(--px-36), 36px);
  font-weight: 500;
  line-height: 2.5;
}
.c-feature__text {
  line-height: 2.08;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 680px) {
  .c-feature-list {
    row-gap: 70px;
  }
  .c-feature,
  .c-feature--reverse {
    flex-direction: column;
    column-gap: 0;
    row-gap: 16px;
    padding-left: 5.55%;
    padding-right: 5.55%;
  }
  .c-feature__media {
    width: 100%;
  }
  .c-feature__num {
    left: 16px;
    right: auto;
    font-size: 64px;
  }
  .c-feature--reverse .c-feature__num {
    left: 16px;
    right: auto;
  }
}
@media screen and (max-width: 820px) {
  .p-index-catch {
    bottom: 5px;
  }
}
/* CSS Document */
