/* ===== 和紙・伝統文様テクスチャ（セクション単位） ===== */

:root {
  --pat-seigaiha: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='84' height='48' viewBox='0 0 84 48'%3E%3Cg fill='none' stroke='%233a3028' stroke-width='0.6' opacity='0.08'%3E%3Cpath d='M0 24 Q10.5 12 21 24 T42 24 T63 24 T84 24'/%3E%3Cpath d='M0 48 Q10.5 36 21 48 T42 48 T63 48 T84 48'/%3E%3Cpath d='M0 0 Q10.5-12 21 0 T42 0 T63 0 T84 0'/%3E%3C/g%3E%3C/svg%3E");
  --pat-fiber: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cg stroke='%233a3028' stroke-width='0.4' opacity='0.055'%3E%3Cline x1='0' y1='48' x2='48' y2='0'/%3E%3Cline x1='12' y1='0' x2='12' y2='48'/%3E%3Cline x1='36' y1='0' x2='36' y2='48'/%3E%3Cline x1='0' y1='24' x2='48' y2='24'/%3E%3C/g%3E%3C/svg%3E");
  --pat-asanoha: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Cg fill='none' stroke='%238b7451' stroke-width='0.48' opacity='0.08'%3E%3Cpath d='M28 0 L28 56'/%3E%3Cpath d='M0 28 L56 28'/%3E%3Cpath d='M8 8 L48 48'/%3E%3Cpath d='M48 8 L8 48'/%3E%3Cpath d='M28 4 L44 16 L28 28 L12 16 Z'/%3E%3Cpath d='M28 28 L44 40 L28 52 L12 40 Z'/%3E%3C/g%3E%3C/svg%3E");
  --pat-kikko: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='52' height='30' viewBox='0 0 52 30'%3E%3Cg fill='none' stroke='%238b7451' stroke-width='0.5' opacity='0.085'%3E%3Cpath d='M0 15 L13 0 L26 15 L13 30 Z'/%3E%3Cpath d='M26 15 L39 0 L52 15 L39 30 Z'/%3E%3C/g%3E%3C/svg%3E");
  --pat-ichimatsu: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Crect x='0' y='0' width='16' height='16' fill='%233a3028' opacity='0.038'/%3E%3Crect x='16' y='16' width='16' height='16' fill='%233a3028' opacity='0.038'/%3E%3C/svg%3E");
  --pat-sayagata: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cg fill='none' stroke='%238b7451' stroke-width='0.45' opacity='0.07'%3E%3Cpath d='M0 20 L10 10 L20 20 L10 30 Z'/%3E%3Cpath d='M20 0 L30 10 L20 20 L10 10 Z'/%3E%3Cpath d='M20 20 L30 30 L20 40 L10 30 Z'/%3E%3Cpath d='M20 20 L30 10 L40 20 L30 30 Z'/%3E%3C/g%3E%3C/svg%3E");
  --pat-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.78' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E");
  --pat-koushi: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cg fill='none' stroke='%233a3028' stroke-width='0.38' opacity='0.065'%3E%3Crect x='4' y='4' width='40' height='40'/%3E%3Cline x1='16' y1='4' x2='16' y2='44'/%3E%3Cline x1='32' y1='4' x2='32' y2='44'/%3E%3Cline x1='4' y1='16' x2='44' y2='16'/%3E%3Cline x1='4' y1='32' x2='44' y2='32'/%3E%3C/g%3E%3C/svg%3E");
  --pat-seigaiha-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='84' height='48' viewBox='0 0 84 48'%3E%3Cg fill='none' stroke='%23c4b08a' stroke-width='0.5' opacity='0.08'%3E%3Cpath d='M0 24 Q10.5 12 21 24 T42 24 T63 24 T84 24'/%3E%3Cpath d='M0 48 Q10.5 36 21 48 T42 48 T63 48 T84 48'/%3E%3Cpath d='M0 0 Q10.5-12 21 0 T42 0 T63 0 T84 0'/%3E%3C/g%3E%3C/svg%3E");
  --pat-kikko-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='52' height='30' viewBox='0 0 52 30'%3E%3Cg fill='none' stroke='%23c4b08a' stroke-width='0.4' opacity='0.09'%3E%3Cpath d='M0 15 L13 0 L26 15 L13 30 Z'/%3E%3Cpath d='M26 15 L39 0 L52 15 L39 30 Z'/%3E%3C/g%3E%3C/svg%3E");
  --pat-sayagata-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cg fill='none' stroke='%23c4b08a' stroke-width='0.45' opacity='0.085'%3E%3Cpath d='M0 20 L10 10 L20 20 L10 30 Z'/%3E%3Cpath d='M20 0 L30 10 L20 20 L10 10 Z'/%3E%3Cpath d='M20 20 L30 30 L20 40 L10 30 Z'/%3E%3Cpath d='M20 20 L30 10 L40 20 L30 30 Z'/%3E%3C/g%3E%3C/svg%3E");
  --pat-grain-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.78' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='0.06'/%3E%3C/svg%3E");
}

/* ベースは無地（セクション間で模様を繋げない） */
body {
  background-color: var(--kinari);
}

/* 全幅テクスチャ用 */

/* ===== トップページ ===== */
.home-intro {
  position: relative;
  isolation: isolate;
}

.home-intro::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  inset-block: 0;
  background-color: var(--kinari);
  background-image: var(--pat-seigaiha), var(--pat-grain);
  background-size: 84px 48px, 180px 180px;
  background-position: 18px 12px, 0 0;
  background-repeat: repeat;
}

.home-cuisine {
  background-color: var(--washi);
  background-image: var(--pat-kikko), var(--pat-grain);
  background-size: 52px 30px, 180px 180px;
  background-position: 7px 4px, 40px 20px;
  background-repeat: repeat;
}

.home-ingredients {
  position: relative;
  isolation: isolate;
}

.home-ingredients::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  inset-block: 0;
  background-color: var(--kinari);
  background-image: var(--pat-asanoha), var(--pat-grain);
  background-size: 56px 56px, 180px 180px;
  background-position: 24px 16px, 0 0;
  background-repeat: repeat;
}

.home-space {
  background-color: var(--kogecha);
  background-image: var(--pat-seigaiha-dark), var(--pat-grain-dark);
  background-size: 84px 48px, 180px 180px;
  background-position: 11px 6px, 0 0;
  background-repeat: repeat;
}

/* ===== メニューページ ===== */
main .menu-block:nth-child(2) {
  background-color: var(--kinari);
  background-image: var(--pat-asanoha), var(--pat-grain);
  background-size: 56px 56px, 180px 180px;
  background-position: 8px 20px, 0 0;
  background-repeat: repeat;
}

main .menu-block:nth-child(3) {
  background-color: var(--washi);
  background-image: var(--pat-seigaiha), var(--pat-grain);
  background-size: 84px 48px, 180px 180px;
  background-position: 32px 10px, 60px 30px;
  background-repeat: repeat;
}

main .menu-block:nth-child(4) {
  background-color: var(--kinari);
  background-image: var(--pat-fiber), var(--pat-grain);
  background-size: 48px 48px, 180px 180px;
  background-position: 14px 6px, 0 0;
  background-repeat: repeat;
}

main .menu-block:nth-child(5) {
  background-color: var(--washi);
  background-image: var(--pat-kikko), var(--pat-grain);
  background-size: 52px 30px, 180px 180px;
  background-position: 20px 8px, 90px 0;
  background-repeat: repeat;
}

/* ===== コンセプトページ ===== */
.concept-chapter {
  position: relative;
  isolation: isolate;
}

.concept-chapter::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  inset-block: 0;
  background-repeat: repeat;
}

main .concept-chapter:nth-child(2)::before {
  background-color: var(--kinari);
  background-image: var(--pat-asanoha), var(--pat-grain);
  background-size: 56px 56px, 180px 180px;
  background-position: 10px 14px, 0 0;
}

main .concept-chapter:nth-child(3)::before {
  background-color: var(--washi);
  background-image: var(--pat-kikko), var(--pat-grain);
  background-size: 52px 30px, 180px 180px;
  background-position: 22px 5px, 30px 0;
}

main .concept-chapter:nth-child(4)::before {
  background-color: var(--kinari);
  background-image: var(--pat-seigaiha), var(--pat-grain);
  background-size: 84px 48px, 180px 180px;
  background-position: 36px 18px, 0 0;
}

main .concept-chapter:nth-child(5)::before {
  background-color: var(--washi);
  background-image: var(--pat-fiber), var(--pat-grain);
  background-size: 48px 48px, 180px 180px;
  background-position: 6px 22px, 50px 10px;
}

main .concept-chapter--machiya::before,
main .concept-chapter:nth-child(6)::before {
  background-color: #ebe4d8;
  background-image:
    linear-gradient(168deg, rgba(242, 239, 232, 0.55) 0%, transparent 42%, rgba(58, 48, 40, 0.035) 100%),
    var(--pat-koushi),
    var(--pat-grain);
  background-size: auto, 48px 48px, 180px 180px;
  background-position: center, 18px 12px, 0 0;
}

main .concept-chapter:nth-child(7)::before {
  background-color: var(--washi);
  background-image: var(--pat-sayagata), var(--pat-grain);
  background-size: 40px 40px, 180px 180px;
  background-position: 16px 16px, 70px 0;
}

/* ===== 空間ページ ===== */
.space-walk .space-scene:nth-child(1) {
  background-color: var(--kinari);
  background-image: var(--pat-seigaiha), var(--pat-grain);
  background-size: 84px 48px, 180px 180px;
  background-position: 5px 10px, 0 0;
  background-repeat: repeat;
}

.space-walk .space-scene:nth-child(2) {
  background-color: var(--washi);
  background-image: var(--pat-kikko), var(--pat-grain);
  background-size: 52px 30px, 180px 180px;
  background-position: 18px 3px, 40px 0;
  background-repeat: repeat;
}

.space-walk .space-scene:nth-child(3) {
  background-color: var(--kinari);
  background-image: var(--pat-asanoha), var(--pat-grain);
  background-size: 56px 56px, 180px 180px;
  background-position: 28px 12px, 0 0;
  background-repeat: repeat;
}

.space-walk .space-scene:nth-child(4) {
  background-color: var(--washi);
  background-image: var(--pat-fiber), var(--pat-grain);
  background-size: 48px 48px, 180px 180px;
  background-position: 9px 18px, 80px 20px;
  background-repeat: repeat;
}

.space-walk .space-scene--garden {
  background-color: #2e3530;
  background-image:
    linear-gradient(168deg, rgba(58, 48, 40, 0.28) 0%, transparent 48%, rgba(18, 26, 20, 0.32) 100%),
    var(--pat-seigaiha-dark),
    var(--pat-grain-dark);
  background-size: auto, 84px 48px, 180px 180px;
  background-position: center, 22px 8px, 0 0;
  background-repeat: no-repeat, repeat, repeat;
}

.space-walk .space-scene:nth-child(6) {
  background-color: var(--washi);
  background-image: var(--pat-sayagata), var(--pat-grain);
  background-size: 40px 40px, 180px 180px;
  background-position: 20px 10px, 0 0;
  background-repeat: repeat;
}

.space-walk .space-scene:nth-child(7) {
  background-color: var(--kinari);
  background-image: var(--pat-kikko), var(--pat-grain);
  background-size: 52px 30px, 180px 180px;
  background-position: 11px 14px, 30px 0;
  background-repeat: repeat;
}

.space-walk .space-scene:nth-child(8) {
  background-color: var(--washi);
  background-image: var(--pat-seigaiha), var(--pat-grain);
  background-size: 84px 48px, 180px 180px;
  background-position: 42px 8px, 0 0;
  background-repeat: repeat;
}

.seat-guide {
  background-color: var(--kogecha);
  background-image: var(--pat-sayagata-dark), var(--pat-grain-dark);
  background-size: 40px 40px, 180px 180px;
  background-position: 15px 12px, 0 0;
  background-repeat: repeat;
}

/* ===== ドリンクページ ===== */
.drink-lead {
  position: relative;
  isolation: isolate;
}

.drink-lead::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  inset-block: 0;
  background-color: var(--kinari);
  background-image: var(--pat-seigaiha), var(--pat-grain);
  background-size: 84px 48px, 180px 180px;
  background-position: 26px 8px, 0 0;
  background-repeat: repeat;
}

.drink-section {
  position: relative;
  isolation: isolate;
}

.drink-section:nth-of-type(1)::before,
.drink-section:nth-of-type(2)::before,
.drink-section:nth-of-type(3)::before,
.drink-section:nth-of-type(4)::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  inset-block: 0;
  background-repeat: repeat;
}

.drink-section:nth-of-type(1)::before {
  background-color: var(--kinari);
  background-image: var(--pat-grain);
  background-size: 180px 180px;
  background-position: 0 0;
}

.drink-section:nth-of-type(2)::before {
  background-color: var(--washi);
  background-image: var(--pat-kikko), var(--pat-grain);
  background-size: 52px 30px, 180px 180px;
  background-position: 13px 7px, 20px 0;
}

.drink-section:nth-of-type(3)::before {
  background-color: var(--kinari);
  background-image: var(--pat-asanoha), var(--pat-grain);
  background-size: 56px 56px, 180px 180px;
  background-position: 19px 11px, 0 0;
}

.drink-section:nth-of-type(4)::before {
  background-color: var(--washi);
  background-image: var(--pat-seigaiha), var(--pat-grain);
  background-size: 84px 48px, 180px 180px;
  background-position: 38px 14px, 50px 0;
}

/* ===== アクセス・予約 ===== */
.access-layout {
  position: relative;
  isolation: isolate;
}

.access-layout::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  inset-block: 0;
  background-color: var(--kinari);
  background-image: var(--pat-fiber), var(--pat-grain);
  background-size: 48px 48px, 180px 180px;
  background-position: 17px 9px, 0 0;
  background-repeat: repeat;
}

.reserve-layout {
  position: relative;
  isolation: isolate;
}

.reserve-layout::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  inset-block: 0;
  background-repeat: repeat;
}

/* ご予約ページ専用 */
body.reserve-page {
  background-color: #e9e2d6;
}

body.reserve-page .reserve-layout::before {
  background-color: #e9e2d6;
  background-image:
    linear-gradient(175deg, rgba(242, 239, 232, 0.65) 0%, transparent 38%, rgba(139, 116, 81, 0.04) 100%),
    var(--pat-seigaiha),
    var(--pat-grain);
  background-size: auto, 84px 48px, 180px 180px;
  background-position: center, 24px 18px, 0 0;
}

.access-map {
  background-color: var(--washi);
  background-image:
    linear-gradient(135deg, rgba(139, 116, 81, 0.07), transparent 42%),
    var(--pat-ichimatsu),
    repeating-linear-gradient(
      0deg,
      transparent,
      transparent 23px,
      rgba(58, 48, 40, 0.06) 24px
    ),
    repeating-linear-gradient(
      90deg,
      transparent,
      transparent 23px,
      rgba(58, 48, 40, 0.06) 24px
    ),
    var(--pat-grain);
  background-size: auto, 32px 32px, auto, auto, 180px 180px;
  background-position: center, 8px 6px, center, center, 0 0;
  background-repeat: repeat;
}

/* ===== 予約CTA・フッター ===== */
.faq-section {
  background-color: var(--washi);
  background-image: var(--pat-kikko), var(--pat-grain);
  background-size: 52px 30px, 180px 180px;
  background-position: 12px 8px, 0 0;
  background-repeat: repeat;
}

.home-seasonal {
  background-color: var(--washi);
  background-image: var(--pat-fiber), var(--pat-grain);
  background-size: 48px 48px, 180px 180px;
  background-position: 16px 12px, 0 0;
  background-repeat: repeat;
}

.reserve-band {
  background-color: var(--kinari);
  background-image: var(--pat-sayagata), var(--pat-grain);
  background-size: 40px 40px, 180px 180px;
  background-position: 22px 18px, 100px 50px;
  background-repeat: repeat;
}

.site-footer {
  background-color: #ddd5c7;
  background-image:
    linear-gradient(180deg, rgba(232, 225, 213, 0.72) 0%, rgba(221, 213, 199, 0.82) 100%),
    var(--pat-kikko),
    var(--pat-grain);
  background-size: auto, 52px 30px, 180px 180px;
  background-position: center, 30px 12px, 0 0;
  background-repeat: repeat;
}
