/* A案「ゆけむり」＝和紙の地・墨の明朝・縦書き。十福の湯の「ラベル＋2 行の見出し＋1 文＋楕円のボタン」を、写真を大きく・余白を広く洗練させた形。
   色＝和紙 #f4f0e8／墨 #2a2723／湯の色（乳白の青緑）#6f9a92・#3d6059／朱（落款）#a8432c。
   動き＝湯けむり（fx-steam：動画の下の縁・予約の帯・雲海）・写真は色の帯で拭き出す（anim-wipe）・見出しは行ごと（anim-mask）・キャッチは 1 字ずつ（anim-split）。 */
.plan-yukemuri {
  --paper: #f4f0e8; --paper-2: #ebe5d8; --paper-3: #e1d9c8; --card: #fbf9f4;
  --ink: #2a2723; --ink-2: #5d574d; --ink-3: #8c8577; --line: rgba(42, 39, 35, .16);
  --yu: #6f9a92; --yu-deep: #3d6059; --shu: #a8432c;
  --mincho: 'Shippori Mincho', 'Hiragino Mincho ProN', 'Yu Mincho', serif;
  --en: 'Cormorant Garamond', 'Shippori Mincho', serif;
  --wrap: min(1180px, calc(100vw - 64px));
  --fx-backtop-ink: #2a2723; --fx-backtop-font: var(--mincho); --fx-backtop-right: 22px; --fx-backtop-bottom: 26px;
  background-color: var(--paper);
  /* 和紙の繊維（大きな面だけに・soft-light）＝形と質感の語彙 c-tex-grain と同じ作り */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .31 0 0 0 0 .25 0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  color: var(--ink);
  font-family: var(--mincho);
  font-size: 15.5px; line-height: 2.05; letter-spacing: .06em;
  font-feature-settings: "palt" 1;
}
.plan-yukemuri .vtxt { font-feature-settings: "vpal" 1; }
.plan-yukemuri .fx-embed-guard { --fx-guard-label: 'クリックして湯船のまわりを歩く'; --fx-guard-label-touch: 'タップして歩く'; }
.wrap { width: var(--wrap); margin: 0 auto; }

/* ---------- ヘッダー ---------- */
.site-header { position: fixed; top: 42px; left: 0; right: 0; z-index: 60; color: #fff; transition: top .35s, background .45s, color .45s, box-shadow .45s; }
html.is-shot .site-header { top: 0; }
.site-header.is-scrolled { top: 0; background: rgba(244, 240, 232, .93); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); color: var(--ink); box-shadow: 0 1px 0 var(--line); }
.h-inner { height: 88px; padding: 0 34px; display: flex; align-items: center; gap: 30px; transition: height .35s; }
.site-header.is-scrolled .h-inner { height: 70px; }
/* ロゴ＝正式のロゴ（藤七温泉ロゴ.ai / .pdf の横一行の組み → images/logo-h-white.svg / logo-h-ink.svg・2026-09-30 先方から）。
   動画の上は白・下へ進んだら墨＝Kadence の「透明ヘッダーのロゴ」と「固定した時のロゴ」の 2 枚と同じ作り。 */
.h-logo { position: relative; display: block; flex-shrink: 0; margin-right: auto; }
.h-logo-img { display: block; height: 36px; width: auto; object-fit: contain; object-position: left center; transition: opacity .45s, height .35s; }
.h-logo-img.is-light { filter: drop-shadow(0 1px 10px rgba(0, 0, 0, .28)); }
.h-logo-img.is-dark { position: absolute; left: 0; top: 0; opacity: 0; }
.site-header.is-scrolled .h-logo-img { height: 30px; }
.site-header.is-scrolled .h-logo-img.is-light { opacity: 0; }
.site-header.is-scrolled .h-logo-img.is-dark { opacity: 1; }
.gnav { margin-left: auto; display: flex; gap: 24px; font-size: 13.5px; letter-spacing: .1em; white-space: nowrap; }
.gnav a { position: relative; padding: 6px 0; }
.gnav a::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform .45s cubic-bezier(.22, .61, .36, 1); }
.gnav a:hover::after { transform: scaleX(1); transform-origin: left; }
.h-actions { display: flex; align-items: center; gap: 10px; }
.h-tel { display: grid; line-height: 1.2; text-align: right; font-size: 18px; letter-spacing: .08em; margin-right: 8px; white-space: nowrap; }
.h-tel small { font-size: 10px; letter-spacing: .1em; opacity: .8; }
.h-btn { display: inline-flex; align-items: center; white-space: nowrap; height: 42px; padding: 0 18px; border: 1px solid currentColor; font-size: 13px; letter-spacing: .12em; transition: background .3s, color .3s, border-color .3s; }
.h-btn.is-reserve { background: var(--shu); border-color: var(--shu); color: #fff; }
.h-btn.is-reserve:hover { background: #8e3521; border-color: #8e3521; }

.h-btn.is-contact:hover { background: rgba(255, 255, 255, .16); }
.site-header.is-scrolled .h-btn.is-contact:hover { background: var(--paper-2); }
.menu-btn { display: none; width: 44px; height: 44px; position: relative; }
.menu-btn span { position: absolute; left: 11px; right: 11px; height: 1px; background: currentColor; }
.menu-btn span:first-child { top: 18px; } .menu-btn span:last-child { top: 26px; }

/* ---------- 1-1 メインビジュアル ---------- */
.hero { position: relative; height: 100vh; height: 100svh; min-height: 640px; color: #fff; overflow: hidden; background: #56605a; }
.hero-shade { position: absolute; inset: 0; pointer-events: none;
  background:
    linear-gradient(to bottom, rgba(18, 22, 20, .42), rgba(18, 22, 20, 0) 22%),
    linear-gradient(to left, rgba(18, 22, 20, .38), rgba(18, 22, 20, 0) 42%),
    linear-gradient(to bottom, rgba(244, 240, 232, 0) 72%, rgba(244, 240, 232, .55) 90%, var(--paper) 100%); }
.hero-steam { position: absolute; left: 0; right: 0; bottom: 0; height: 55%; pointer-events: none;
  --fx-steam-color: #ffffff; --fx-steam-count: 20; --fx-steam-opacity: .5; --fx-steam-size: .3; --fx-steam-from: 1.08; --fx-steam-height: .95; --fx-steam-speed: .8; }
.hero-catch { position: absolute; right: clamp(40px, 9vw, 150px); top: 50%; transform: translateY(-52%);
  font-size: clamp(36px, 4.4vw, 64px); font-weight: 500; line-height: 1.75; letter-spacing: .2em;
  height: max-content; white-space: nowrap; text-shadow: 0 0 40px rgba(0, 0, 0, .28), 0 0 2px rgba(0, 0, 0, .15); --anim-split-step: .07s; --anim-split-duration: 1.1s; --anim-split-distance: .4em; }
.hero-foot { position: absolute; left: clamp(24px, 4vw, 60px); bottom: clamp(70px, 12vh, 120px); color: #fff; }
.hero-sub { font-size: 15px; letter-spacing: .18em; text-shadow: 0 1px 14px rgba(0, 0, 0, .35); }
.hero-alt { display: flex; align-items: center; gap: 14px; margin-top: 10px; font: 500 13px/1 var(--en); letter-spacing: .26em; text-shadow: 0 1px 10px rgba(0, 0, 0, .3); }
.hero-alt span { font-size: 11px; }
.hero-alt b { font-weight: 500; }
.hero-alt i { display: block; width: 60px; height: 1px; background: currentColor; opacity: .7; }
.hero-scroll { position: absolute; right: 34px; bottom: 0; display: flex; flex-direction: column; align-items: center; gap: 10px; color: var(--ink-2); font: 500 11px/1 var(--en); letter-spacing: .3em; writing-mode: vertical-rl; }
.hero-scroll i { display: block; width: 1px; height: 80px; background: linear-gradient(var(--ink-2) 50%, transparent 50%) 0 0 / 1px 200%; animation: yu-scroll 2.4s cubic-bezier(.6, 0, .3, 1) infinite; }
@keyframes yu-scroll { from { background-position: 0 100%; } to { background-position: 0 -100%; } }

/* ---------- 共通の見出し ---------- */
.sec { position: relative; padding: clamp(96px, 11vw, 168px) 0; }
.lbl { display: flex; align-items: center; gap: 14px; font-size: 13px; letter-spacing: .22em; color: var(--ink-2); margin-bottom: 20px; }
.lbl::before { content: ''; width: 34px; height: 1px; background: var(--yu-deep); opacity: .7; }
.lbl .en { font: italic 500 18px/1 var(--en); letter-spacing: .05em; color: var(--yu-deep); }
.h2 { font-size: clamp(26px, 3.1vw, 40px); font-weight: 500; line-height: 1.62; letter-spacing: .12em; text-wrap: balance; }
.h3 { font-size: clamp(23px, 2.4vw, 32px); font-weight: 500; line-height: 1.62; letter-spacing: .12em; margin-bottom: 20px; }
/* 見出しは <br> で決めた行の中では折らない（字が入りきらない幅の時だけどこでも折る）＝「開／く、」「たっ／ぷり」を出さない */
.h2, .h3, .intro-h, .reserve-h, .unkai-title { word-break: keep-all; overflow-wrap: anywhere; }
.lead { margin-top: 22px; color: var(--ink-2); }
.sec-head { margin-bottom: 60px; }
.sec-head.is-center { text-align: center; }
.sec-head.is-center .lbl { justify-content: center; }
.sec-head.is-center .lbl::after { content: ''; width: 34px; height: 1px; background: var(--yu-deep); opacity: .7; }

/* 楕円のボタン＝「筆の円相」＋「湯が満ちる」（2026-09-30 手直し 1 回目・前は細い線の楕円を描き直すだけ）。
   形は CSS だけで描く（a の ::before＝湯・::after＝筆の線・span::before＝湯けむり・span::after＝矢印）＝本番はコアのボタンブロックに className で同じ物が当たる（中に SVG を持たない）。
   見えた時＝筆で円相を描く（--yu-sweep を 0→360deg・conic の覆いで線を描き足す／anim-fade の is-inview が合図）。
   乗る・キーボードで選ぶ＝湯が下から満ちて波が揺れる・湯けむりが 2 筋立つ・字が白く・矢印が伸びる。指の端末は円相だけ（押した瞬間に湯）。 */
@property --yu-sweep { syntax: '<angle>'; inherits: false; initial-value: 360deg; }
@property --yu-fill { syntax: '<length>'; inherits: false; initial-value: -12px; }
@property --yu-wx { syntax: '<length>'; inherits: false; initial-value: 0px; }
.btn-ellipse {
  --h: 66px; --btn-line: var(--ink);
  position: relative; isolation: isolate; display: inline-grid; place-items: center;
  min-width: 236px; height: var(--h); padding: 0 50px; margin-top: 34px;
  font-size: 14px; letter-spacing: .16em; color: var(--ink); -webkit-tap-highlight-color: transparent;
  transition: color .4s .08s;
}
.btn-ellipse.is-sm { --h: 58px; min-width: 206px; }
/* 湯（楕円の内側だけ・下から満ちる・上の縁は 2 枚の波） */
.btn-ellipse::before {
  content: ''; position: absolute; inset: 4px 7px 3px; z-index: -1; pointer-events: none;
  clip-path: ellipse(48.6% 46% at 50% 53%);
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 46 8' preserveAspectRatio='none'%3E%3Cpath d='M0 4C7.7.5 15.3.5 23 4S38.3 7.5 46 4V8H0Z' fill='%233d6059'/%3E%3C/svg%3E") var(--yu-wx) calc(100% - var(--yu-fill) + 1px) / 46px 8px repeat-x,
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 46 8' preserveAspectRatio='none'%3E%3Cpath d='M0 4C7.7.5 15.3.5 23 4S38.3 7.5 46 4V8H0Z' fill='%236f9a92'/%3E%3C/svg%3E") calc(var(--yu-wx) * -.7 + 17px) calc(100% - var(--yu-fill) - 3px) / 52px 8px repeat-x,
    linear-gradient(var(--yu-deep), var(--yu-deep)) 0 100% / 100% max(0px, var(--yu-fill)) no-repeat,
    linear-gradient(#6f9a92, #6f9a92) 0 100% / 100% max(0px, calc(var(--yu-fill) + 4px)) no-repeat;
  transition: --yu-fill .8s cubic-bezier(.3, .6, .25, 1);
}
/* 筆の線（円相）＝形は SVG の覆い・色は --btn-line・描き足しは conic の覆いとの重なり */
.btn-ellipse::after {
  content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: var(--btn-line);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 64' preserveAspectRatio='none'%3E%3Cpath d='M153.08 11.03L155.93 11.28L158.67 11.75L161.33 12.28L163.92 12.84L166.44 13.43L168.91 14.06L171.31 14.71L173.62 15.48L175.84 16.33L177.98 17.21L180.05 18.12L182.04 19.07L183.92 20.05L185.71 21.06L187.38 22.11L188.93 23.18L190.35 24.29L191.62 25.42L192.74 26.59L193.7 27.78L194.47 29.01L195.05 30.26L195.43 31.53L195.6 32.81L195.55 34.09L195.3 35.36L194.83 36.6L194.18 37.81L193.34 38.99L192.34 40.14L191.18 41.25L189.87 42.33L188.43 43.38L186.86 44.4L185.16 45.39L183.36 46.36L181.45 47.3L179.43 48.21L177.32 49.1L175.12 49.97L172.82 50.81L170.43 51.62L167.94 52.41L165.37 53.18L162.71 53.91L159.95 54.61L157.11 55.29L154.18 55.93L151.16 56.53L148.06 57.1L144.88 57.63L141.62 58.12L138.3 58.56L134.91 58.97L131.47 59.33L127.98 59.64L124.45 59.92L120.89 60.15L117.3 60.33L113.7 60.48L110.08 60.58L106.46 60.65L102.84 60.68L99.22 60.67L95.6 60.63L91.99 60.56L88.39 60.46L84.8 60.32L81.22 60.15L77.66 59.96L74.11 59.73L70.57 59.47L67.06 59.17L63.57 58.85L60.11 58.48L56.69 58.08L53.32 57.63L50 57.15L46.76 56.6L43.59 56L40.51 55.36L37.54 54.67L34.68 53.94L31.94 53.17L29.34 52.36L26.89 51.51L24.59 50.62L22.46 49.7L20.48 48.75L18.67 47.77L17.03 46.77L15.55 45.75L14.24 44.71L13.08 43.65L12.07 42.58L11.2 41.5L10.48 40.42L9.88 39.32L9.4 38.22L9.05 37.12L8.8 36.01L8.68 34.91L8.66 33.81L8.75 32.71L8.94 31.63L9.24 30.55L9.65 29.49L10.17 28.45L10.79 27.41L11.54 26.39L12.4 25.38L13.39 24.39L14.51 23.4L15.77 22.43L17.17 21.47L18.71 20.54L20.39 19.62L22.22 18.72L24.18 17.82L26.28 16.95L26.32 17.05L24.22 17.92L22.26 18.81L20.46 19.75L18.8 20.71L17.3 21.69L15.93 22.68L14.72 23.69L13.65 24.7L12.71 25.72L11.91 26.74L11.24 27.76L10.69 28.77L10.26 29.79L9.93 30.79L9.71 31.78L9.58 32.77L9.55 33.74L9.6 34.71L9.75 35.68L10 36.65L10.35 37.62L10.81 38.6L11.39 39.58L12.09 40.55L12.93 41.53L13.91 42.5L15.04 43.47L16.33 44.42L17.78 45.36L19.4 46.28L21.18 47.18L23.13 48.05L25.24 48.89L27.52 49.7L29.94 50.48L32.52 51.21L35.23 51.91L38.07 52.57L41.02 53.18L44.07 53.75L47.21 54.27L50.44 54.75L53.72 55.22L57.06 55.65L60.45 56.04L63.87 56.39L67.33 56.71L70.81 56.99L74.31 57.24L77.84 57.46L81.37 57.64L84.92 57.8L88.48 57.92L92.05 58.02L95.63 58.08L99.22 58.11L102.81 58.11L106.41 58.07L110 57.99L113.59 57.88L117.16 57.73L120.72 57.53L124.24 57.3L127.74 57.02L131.2 56.7L134.6 56.33L137.95 55.92L141.24 55.47L144.46 54.98L147.6 54.45L150.66 53.88L153.63 53.27L156.51 52.63L159.31 51.96L162.01 51.26L164.62 50.53L167.13 49.78L169.55 49L171.87 48.2L174.1 47.38L176.23 46.53L178.25 45.67L180.17 44.79L181.98 43.9L183.67 42.99L185.24 42.06L186.68 41.13L187.98 40.18L189.14 39.24L190.14 38.29L190.97 37.35L191.64 36.42L192.14 35.5L192.47 34.59L192.64 33.7L192.64 32.83L192.47 31.95L192.14 31.08L191.65 30.2L190.98 29.31L190.14 28.42L189.14 27.53L187.99 26.64L186.68 25.76L185.24 24.9L183.67 24.04L181.99 23.19L180.21 22.35L178.33 21.52L176.37 20.69L174.34 19.87L172.22 19.05L170.06 18.2L167.85 17.26L165.56 16.32L163.2 15.39L160.76 14.46L158.24 13.53L155.64 12.59L152.99 11.47ZM10.84 30.04L11.32 29L11.93 27.95L12.69 26.88L13.61 25.81L14.69 24.74L15.95 23.67L17.38 22.62L19 21.57L20.8 20.55L22.78 19.54L24.93 18.56L27.26 17.61L29.76 16.7L32.41 15.82L35.2 14.97L38.14 14.16L41.19 13.4L44.37 12.67L47.65 11.98L51.02 11.33L54.48 10.72L58.03 10.15L61.65 9.61L65.34 9.12L69.09 8.67L72.91 8.26L76.78 7.9L80.7 7.58L84.67 7.31L88.69 7.11L92.73 6.96L96.8 6.87L100.88 6.83L104.97 6.86L109.04 6.94L113.12 7.05L117.17 7.21L121.19 7.43L125.17 7.71L129.08 8.06L132.92 8.46L136.68 8.92L140.36 9.42L143.94 9.96L143.93 9.99L140.35 9.46L136.67 8.99L132.91 8.58L129.06 8.21L125.15 7.91L121.18 7.67L117.16 7.49L113.1 7.37L109.03 7.31L104.96 7.26L100.88 7.28L96.8 7.36L92.74 7.5L88.71 7.69L84.7 7.93L80.74 8.22L76.82 8.54L72.96 8.91L69.16 9.32L65.41 9.77L61.73 10.27L58.12 10.8L54.59 11.37L51.14 11.99L47.78 12.64L44.51 13.33L41.35 14.06L38.31 14.83L35.39 15.63L32.61 16.48L29.98 17.36L27.5 18.27L25.2 19.21L23.06 20.18L21.11 21.18L19.34 22.2L17.75 23.23L16.35 24.27L15.13 25.31L14.09 26.36L13.21 27.39L12.5 28.4L11.94 29.4L11.51 30.36ZM8.75 32.95L8.93 31.68L9.26 30.42L9.73 29.16L10.36 27.93L11.15 26.7L12.1 25.49L13.23 24.29L14.54 23.11L16.04 21.95L17.73 20.81L19.62 19.7L21.7 18.61L23.99 17.56L26.45 16.54L29.11 15.57L31.93 14.63L34.91 13.73L38.05 12.88L41.32 12.07L44.71 11.31L48.22 10.59L51.84 9.92L55.54 9.29L59.34 8.71L63.21 8.17L67.16 7.68L71.18 7.23L75.26 6.83L79.4 6.48L83.6 6.19L87.85 5.95L92.13 5.76L96.44 5.65L100.77 5.62L105.1 5.65L109.42 5.75L113.73 5.87L118.03 6.05L122.28 6.31L126.47 6.63L130.6 7.02L134.64 7.47L138.59 7.99L142.44 8.55L146.18 9.17L149.82 9.84L153.35 10.55L156.78 11.29L160.1 12.07L163.34 12.87L163.33 12.9L160.09 12.11L156.76 11.36L153.33 10.65L149.79 9.98L146.15 9.35L142.41 8.77L138.56 8.23L134.61 7.76L130.57 7.34L126.44 6.99L122.25 6.71L118 6.49L113.71 6.35L109.4 6.27L105.09 6.21L100.76 6.22L96.45 6.3L92.14 6.43L87.87 6.62L83.64 6.86L79.45 7.16L75.32 7.51L71.24 7.92L67.23 8.37L63.3 8.86L59.43 9.4L55.65 9.99L51.96 10.62L48.36 11.29L44.86 12.01L41.48 12.77L38.23 13.58L35.11 14.43L32.14 15.33L29.34 16.26L26.71 17.24L24.27 18.25L22.01 19.29L19.96 20.37L18.1 21.47L16.44 22.59L14.98 23.73L13.72 24.88L12.64 26.04L11.74 27.2L11 28.37L10.42 29.53L9.99 30.68L9.7 31.83L9.54 32.98ZM10.79 25.2L11.73 24.12L12.8 23.06L14 22.03L15.33 21.01L16.79 20.02L18.39 19.05L20.13 18.1L22.01 17.18L24.02 16.29L26.17 15.42L28.44 14.59L30.84 13.78L33.35 13.01L35.97 12.27L38.7 11.56L41.52 10.88L44.43 10.24L47.42 9.62L50.48 9.05L53.61 8.5L56.81 7.99L60.07 7.51L63.38 7.06L66.75 6.66L70.17 6.29L73.63 5.97L77.14 5.68L80.69 5.42L84.27 5.21L87.89 5.03L91.53 4.9L95.2 4.81L98.88 4.77L102.56 4.78L106.25 4.83L109.92 4.92L109.92 4.95L106.25 4.87L102.56 4.86L98.88 4.89L95.2 4.98L91.54 5.11L87.9 5.28L84.29 5.5L80.71 5.76L77.17 6.06L73.67 6.39L70.21 6.76L66.81 7.16L63.45 7.59L60.14 8.04L56.89 8.53L53.7 9.04L50.58 9.59L47.52 10.17L44.54 10.78L41.65 11.42L38.84 12.1L36.12 12.81L33.51 13.55L31.01 14.32L28.63 15.13L26.37 15.96L24.24 16.83L22.24 17.71L20.38 18.63L18.66 19.57L17.08 20.53L15.64 21.51L14.34 22.51L13.17 23.53L12.14 24.56L11.22 25.61Z'/%3E%3C/svg%3E") 0 0 / 100% 100% no-repeat, conic-gradient(from 68deg, #000 var(--yu-sweep), transparent 0);
  -webkit-mask-composite: source-in;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 64' preserveAspectRatio='none'%3E%3Cpath d='M153.08 11.03L155.93 11.28L158.67 11.75L161.33 12.28L163.92 12.84L166.44 13.43L168.91 14.06L171.31 14.71L173.62 15.48L175.84 16.33L177.98 17.21L180.05 18.12L182.04 19.07L183.92 20.05L185.71 21.06L187.38 22.11L188.93 23.18L190.35 24.29L191.62 25.42L192.74 26.59L193.7 27.78L194.47 29.01L195.05 30.26L195.43 31.53L195.6 32.81L195.55 34.09L195.3 35.36L194.83 36.6L194.18 37.81L193.34 38.99L192.34 40.14L191.18 41.25L189.87 42.33L188.43 43.38L186.86 44.4L185.16 45.39L183.36 46.36L181.45 47.3L179.43 48.21L177.32 49.1L175.12 49.97L172.82 50.81L170.43 51.62L167.94 52.41L165.37 53.18L162.71 53.91L159.95 54.61L157.11 55.29L154.18 55.93L151.16 56.53L148.06 57.1L144.88 57.63L141.62 58.12L138.3 58.56L134.91 58.97L131.47 59.33L127.98 59.64L124.45 59.92L120.89 60.15L117.3 60.33L113.7 60.48L110.08 60.58L106.46 60.65L102.84 60.68L99.22 60.67L95.6 60.63L91.99 60.56L88.39 60.46L84.8 60.32L81.22 60.15L77.66 59.96L74.11 59.73L70.57 59.47L67.06 59.17L63.57 58.85L60.11 58.48L56.69 58.08L53.32 57.63L50 57.15L46.76 56.6L43.59 56L40.51 55.36L37.54 54.67L34.68 53.94L31.94 53.17L29.34 52.36L26.89 51.51L24.59 50.62L22.46 49.7L20.48 48.75L18.67 47.77L17.03 46.77L15.55 45.75L14.24 44.71L13.08 43.65L12.07 42.58L11.2 41.5L10.48 40.42L9.88 39.32L9.4 38.22L9.05 37.12L8.8 36.01L8.68 34.91L8.66 33.81L8.75 32.71L8.94 31.63L9.24 30.55L9.65 29.49L10.17 28.45L10.79 27.41L11.54 26.39L12.4 25.38L13.39 24.39L14.51 23.4L15.77 22.43L17.17 21.47L18.71 20.54L20.39 19.62L22.22 18.72L24.18 17.82L26.28 16.95L26.32 17.05L24.22 17.92L22.26 18.81L20.46 19.75L18.8 20.71L17.3 21.69L15.93 22.68L14.72 23.69L13.65 24.7L12.71 25.72L11.91 26.74L11.24 27.76L10.69 28.77L10.26 29.79L9.93 30.79L9.71 31.78L9.58 32.77L9.55 33.74L9.6 34.71L9.75 35.68L10 36.65L10.35 37.62L10.81 38.6L11.39 39.58L12.09 40.55L12.93 41.53L13.91 42.5L15.04 43.47L16.33 44.42L17.78 45.36L19.4 46.28L21.18 47.18L23.13 48.05L25.24 48.89L27.52 49.7L29.94 50.48L32.52 51.21L35.23 51.91L38.07 52.57L41.02 53.18L44.07 53.75L47.21 54.27L50.44 54.75L53.72 55.22L57.06 55.65L60.45 56.04L63.87 56.39L67.33 56.71L70.81 56.99L74.31 57.24L77.84 57.46L81.37 57.64L84.92 57.8L88.48 57.92L92.05 58.02L95.63 58.08L99.22 58.11L102.81 58.11L106.41 58.07L110 57.99L113.59 57.88L117.16 57.73L120.72 57.53L124.24 57.3L127.74 57.02L131.2 56.7L134.6 56.33L137.95 55.92L141.24 55.47L144.46 54.98L147.6 54.45L150.66 53.88L153.63 53.27L156.51 52.63L159.31 51.96L162.01 51.26L164.62 50.53L167.13 49.78L169.55 49L171.87 48.2L174.1 47.38L176.23 46.53L178.25 45.67L180.17 44.79L181.98 43.9L183.67 42.99L185.24 42.06L186.68 41.13L187.98 40.18L189.14 39.24L190.14 38.29L190.97 37.35L191.64 36.42L192.14 35.5L192.47 34.59L192.64 33.7L192.64 32.83L192.47 31.95L192.14 31.08L191.65 30.2L190.98 29.31L190.14 28.42L189.14 27.53L187.99 26.64L186.68 25.76L185.24 24.9L183.67 24.04L181.99 23.19L180.21 22.35L178.33 21.52L176.37 20.69L174.34 19.87L172.22 19.05L170.06 18.2L167.85 17.26L165.56 16.32L163.2 15.39L160.76 14.46L158.24 13.53L155.64 12.59L152.99 11.47ZM10.84 30.04L11.32 29L11.93 27.95L12.69 26.88L13.61 25.81L14.69 24.74L15.95 23.67L17.38 22.62L19 21.57L20.8 20.55L22.78 19.54L24.93 18.56L27.26 17.61L29.76 16.7L32.41 15.82L35.2 14.97L38.14 14.16L41.19 13.4L44.37 12.67L47.65 11.98L51.02 11.33L54.48 10.72L58.03 10.15L61.65 9.61L65.34 9.12L69.09 8.67L72.91 8.26L76.78 7.9L80.7 7.58L84.67 7.31L88.69 7.11L92.73 6.96L96.8 6.87L100.88 6.83L104.97 6.86L109.04 6.94L113.12 7.05L117.17 7.21L121.19 7.43L125.17 7.71L129.08 8.06L132.92 8.46L136.68 8.92L140.36 9.42L143.94 9.96L143.93 9.99L140.35 9.46L136.67 8.99L132.91 8.58L129.06 8.21L125.15 7.91L121.18 7.67L117.16 7.49L113.1 7.37L109.03 7.31L104.96 7.26L100.88 7.28L96.8 7.36L92.74 7.5L88.71 7.69L84.7 7.93L80.74 8.22L76.82 8.54L72.96 8.91L69.16 9.32L65.41 9.77L61.73 10.27L58.12 10.8L54.59 11.37L51.14 11.99L47.78 12.64L44.51 13.33L41.35 14.06L38.31 14.83L35.39 15.63L32.61 16.48L29.98 17.36L27.5 18.27L25.2 19.21L23.06 20.18L21.11 21.18L19.34 22.2L17.75 23.23L16.35 24.27L15.13 25.31L14.09 26.36L13.21 27.39L12.5 28.4L11.94 29.4L11.51 30.36ZM8.75 32.95L8.93 31.68L9.26 30.42L9.73 29.16L10.36 27.93L11.15 26.7L12.1 25.49L13.23 24.29L14.54 23.11L16.04 21.95L17.73 20.81L19.62 19.7L21.7 18.61L23.99 17.56L26.45 16.54L29.11 15.57L31.93 14.63L34.91 13.73L38.05 12.88L41.32 12.07L44.71 11.31L48.22 10.59L51.84 9.92L55.54 9.29L59.34 8.71L63.21 8.17L67.16 7.68L71.18 7.23L75.26 6.83L79.4 6.48L83.6 6.19L87.85 5.95L92.13 5.76L96.44 5.65L100.77 5.62L105.1 5.65L109.42 5.75L113.73 5.87L118.03 6.05L122.28 6.31L126.47 6.63L130.6 7.02L134.64 7.47L138.59 7.99L142.44 8.55L146.18 9.17L149.82 9.84L153.35 10.55L156.78 11.29L160.1 12.07L163.34 12.87L163.33 12.9L160.09 12.11L156.76 11.36L153.33 10.65L149.79 9.98L146.15 9.35L142.41 8.77L138.56 8.23L134.61 7.76L130.57 7.34L126.44 6.99L122.25 6.71L118 6.49L113.71 6.35L109.4 6.27L105.09 6.21L100.76 6.22L96.45 6.3L92.14 6.43L87.87 6.62L83.64 6.86L79.45 7.16L75.32 7.51L71.24 7.92L67.23 8.37L63.3 8.86L59.43 9.4L55.65 9.99L51.96 10.62L48.36 11.29L44.86 12.01L41.48 12.77L38.23 13.58L35.11 14.43L32.14 15.33L29.34 16.26L26.71 17.24L24.27 18.25L22.01 19.29L19.96 20.37L18.1 21.47L16.44 22.59L14.98 23.73L13.72 24.88L12.64 26.04L11.74 27.2L11 28.37L10.42 29.53L9.99 30.68L9.7 31.83L9.54 32.98ZM10.79 25.2L11.73 24.12L12.8 23.06L14 22.03L15.33 21.01L16.79 20.02L18.39 19.05L20.13 18.1L22.01 17.18L24.02 16.29L26.17 15.42L28.44 14.59L30.84 13.78L33.35 13.01L35.97 12.27L38.7 11.56L41.52 10.88L44.43 10.24L47.42 9.62L50.48 9.05L53.61 8.5L56.81 7.99L60.07 7.51L63.38 7.06L66.75 6.66L70.17 6.29L73.63 5.97L77.14 5.68L80.69 5.42L84.27 5.21L87.89 5.03L91.53 4.9L95.2 4.81L98.88 4.77L102.56 4.78L106.25 4.83L109.92 4.92L109.92 4.95L106.25 4.87L102.56 4.86L98.88 4.89L95.2 4.98L91.54 5.11L87.9 5.28L84.29 5.5L80.71 5.76L77.17 6.06L73.67 6.39L70.21 6.76L66.81 7.16L63.45 7.59L60.14 8.04L56.89 8.53L53.7 9.04L50.58 9.59L47.52 10.17L44.54 10.78L41.65 11.42L38.84 12.1L36.12 12.81L33.51 13.55L31.01 14.32L28.63 15.13L26.37 15.96L24.24 16.83L22.24 17.71L20.38 18.63L18.66 19.57L17.08 20.53L15.64 21.51L14.34 22.51L13.17 23.53L12.14 24.56L11.22 25.61Z'/%3E%3C/svg%3E") 0 0 / 100% 100% no-repeat, conic-gradient(from 68deg, #000 var(--yu-sweep), transparent 0);
  mask-composite: intersect;
  transition: --yu-sweep 1.5s cubic-bezier(.55, .05, .25, 1) .15s, background-color .4s;
}
html.anim-on .btn-ellipse.anim-fade:not(.is-inview)::after { --yu-sweep: 0deg; transition: none; }
.btn-ellipse > span { position: relative; z-index: 2; display: inline-flex; align-items: center; }
/* 矢印（線が伸びる・先に小さな鏃） */
.btn-ellipse > span::after {
  content: ''; display: block; width: 22px; height: 8px; margin-left: 12px; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath d='M1 1L7 4L1 7' fill='none' stroke='%23000' stroke-width='1.1' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") right center / 8px 8px no-repeat, linear-gradient(#000, #000) left center / calc(100% - 1px) 1px no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath d='M1 1L7 4L1 7' fill='none' stroke='%23000' stroke-width='1.1' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") right center / 8px 8px no-repeat, linear-gradient(#000, #000) left center / calc(100% - 1px) 1px no-repeat;
  transition: width .5s cubic-bezier(.22, .61, .36, 1);
}
/* 湯けむり（円相の上に 2 筋・乗っている間だけ立ちのぼる） */
.btn-ellipse > span::before {
  content: ''; position: absolute; left: 50%; bottom: calc(50% + var(--h) / 2 - 4px); width: 34px; height: 30px; margin-left: -17px;
  background: var(--yu); opacity: 0; pointer-events: none;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 36' fill='none' stroke='%23000' stroke-width='1.3' stroke-linecap='round'%3E%3Cpath d='M15 35C9 28 21 24 15 16C11 11 17 6 15 1'/%3E%3Cpath d='M26 35C21 29 31 25 26 18C23 14 28 10 26 6'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 36' fill='none' stroke='%23000' stroke-width='1.3' stroke-linecap='round'%3E%3Cpath d='M15 35C9 28 21 24 15 16C11 11 17 6 15 1'/%3E%3Cpath d='M26 35C21 29 31 25 26 18C23 14 28 10 26 6'/%3E%3C/svg%3E") center / contain no-repeat;
}
@media (hover: hover) {
  .btn-ellipse:hover { color: #fff; }
  .btn-ellipse:hover::before { --yu-fill: calc(var(--h) + 6px); animation: yu-wave 1.9s linear infinite; }
  .btn-ellipse:hover > span::after { width: 36px; }
  .btn-ellipse:hover > span::before { animation: yu-steam 2.4s ease-out infinite; }
}
.btn-ellipse:focus-visible { outline: none; color: #fff; }
.btn-ellipse:focus-visible::before, .btn-ellipse:active::before { --yu-fill: calc(var(--h) + 6px); }
.btn-ellipse:active { color: #fff; }
@keyframes yu-wave { to { --yu-wx: 46px; } }
@keyframes yu-steam {
  0% { opacity: 0; transform: translateY(10px) scaleX(.8); }
  30% { opacity: .85; }
  100% { opacity: 0; transform: translateY(-16px) scaleX(1.15); }
}
@media (prefers-reduced-motion: reduce) {
  .btn-ellipse::after { transition: none; }
  html.anim-on .btn-ellipse.anim-fade:not(.is-inview)::after { --yu-sweep: 360deg; }
  .btn-ellipse:hover::before { animation: none; transition-duration: .2s; }
  .btn-ellipse:hover > span::before { animation: none; }
}

/* ---------- 1-2 導入 ---------- */
.intro { padding-top: clamp(60px, 7vw, 110px); }
.intro-grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.1fr); gap: 0 clamp(40px, 6vw, 90px); align-items: start; position: relative; }
.intro-text { display: grid; grid-template-columns: 1fr auto; gap: 0 clamp(28px, 4vw, 54px); padding-top: 30px; }
.intro-text .lbl { grid-column: 1 / -1; }
.intro-h { grid-column: 2; grid-row: 2; font-size: clamp(26px, 2.8vw, 36px); font-weight: 500; letter-spacing: .2em; line-height: 1.75; height: 11.5em; }
.intro-body { grid-column: 1; grid-row: 2; padding-top: 6px; }
.intro-body p + p { margin-top: 1.6em; }
.intro-quiet { color: var(--yu-deep); }
.intro-photo { aspect-ratio: 4 / 3.1; margin-right: calc((var(--wrap) - 100vw) / 2); }
.intro-sub { position: absolute; width: clamp(160px, 17vw, 250px); aspect-ratio: 3 / 4; bottom: -80px; box-shadow: 0 0 0 10px var(--paper); }
.intro-grid > .intro-sub { right: auto; left: calc(47% - 40px); }
.intro-cap { position: absolute; left: calc(47% - 92px); bottom: -60px; font-size: 13px; letter-spacing: .3em; color: var(--ink-2); }

/* ---------- 1-3 VR ---------- */
.vr { background: var(--paper-2); margin-top: clamp(80px, 9vw, 130px); }
.vr::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: var(--line); }
.vr-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 4vw, 60px); }
.vr-item { display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 16px 14px; }
.vr-h { grid-row: 1 / 3; font-size: 19px; font-weight: 600; letter-spacing: .24em; line-height: 1.4; }
.vr-h span { display: block; margin-bottom: 1em; font-size: 12px; font-weight: 500; color: var(--shu); letter-spacing: .3em; }
.vr-frame { aspect-ratio: 4 / 3; background: #d9d2c3; box-shadow: 0 30px 60px -40px rgba(42, 39, 35, .5); }
.vr-p { font-size: 14px; color: var(--ink-2); line-height: 1.9; }
.vr-note { margin-top: 36px; text-align: center; font-size: 13px; color: var(--ink-3); }

/* ---------- 1-4 ツーリングの方へ ---------- */
.riders { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); padding: 0; min-height: 88vh; }
.riders-media { min-height: 560px; }
.riders-body { align-self: center; padding: clamp(70px, 8vw, 130px) clamp(28px, 6vw, 110px); max-width: 700px; }
.riders-body > p { margin-top: 6px; }
.riders-points { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 38px 0 6px; }
.riders-points li { border-top: 1px solid var(--line); padding-top: 18px; font-size: 13.5px; line-height: 1.7; }
.riders-points svg { width: 38px; height: 38px; margin-bottom: 12px; fill: none; stroke: var(--yu-deep); stroke-width: 1.3; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- 1-5 お知らせ ---------- */
.news { padding-top: clamp(100px, 10vw, 150px); padding-bottom: clamp(90px, 9vw, 130px); }
.news-grid { display: grid; grid-template-columns: 100px minmax(0, 1fr); gap: 0 clamp(30px, 5vw, 80px); align-items: start; }
.news-head { grid-row: 1 / 3; display: flex; flex-direction: row-reverse; gap: 14px; justify-content: flex-end; }
.news-h { font-size: 30px; font-weight: 500; letter-spacing: .4em; }
.news-head .en-sub { writing-mode: vertical-rl; font: italic 500 16px/1 var(--en); color: var(--yu-deep); letter-spacing: .12em; }
.news-list { border-top: 1px solid var(--line); }
.news-list li { border-bottom: 1px solid var(--line); }
.news-list a { display: grid; grid-template-columns: 150px 100px minmax(0, 1fr); align-items: center; gap: 20px; padding: 26px 8px; transition: background .4s, padding .4s; }
.news-list a:hover { background: rgba(255, 255, 255, .45); padding-left: 18px; }
.n-date { font: 500 15px/1 var(--en); letter-spacing: .12em; color: var(--ink-2); }
.n-date .dm { margin-right: .5em; }
.n-cat { justify-self: start; font-size: 11.5px; letter-spacing: .14em; padding: 2px 12px; border: 1px solid var(--yu); color: var(--yu-deep); border-radius: 999px; line-height: 1.8; }
.n-title { font-size: 16px; letter-spacing: .08em; }
.news-grid .btn-ellipse { grid-column: 2; justify-self: end; }

/* ---------- 1-6 施設紹介 ---------- */
.facility { padding-top: clamp(40px, 5vw, 70px); overflow-x: clip; } /* 背景の大きな漢字は縦書きの字形が右へはみ出す（スマホで 14px の横揺れ）＝横だけ切る */
.fac-row { display: grid; grid-template-columns: 56vw minmax(0, 1fr); align-items: center; margin-top: clamp(80px, 9vw, 130px); }
.fac-row.is-rev { grid-template-columns: minmax(0, 1fr) 56vw; }
.fac-row.is-rev .fac-photo { order: 2; }
.fac-photo { position: relative; aspect-ratio: 16 / 11; overflow: hidden; }
/* ★器の幅は「画面の端からの余白」と「中身の最大幅」を別に持つ（2026-09-30 手直し）。前は max-width:620px の器の内側に
   画面の余白（(100vw - 1180px) / 2）を padding で取っていた＝画面が広いほど中身が細り、1920 幅では 140px ほどで見出しが語の途中で折れた。 */
.fac-body { position: relative; padding: 40px clamp(28px, 5vw, 96px); }
.fac-row:not(.is-rev) .fac-body { padding-right: max(28px, (100vw - var(--wrap)) / 2); }
.fac-row.is-rev .fac-body { padding-left: max(28px, (100vw - var(--wrap)) / 2); }
.fac-body > :not(.fac-kanji) { max-width: 470px; }
.fac-kanji { position: absolute; top: -30px; right: max(4px, (100vw - var(--wrap)) / 2 - 30px); z-index: -1; font-size: clamp(140px, 15vw, 230px); font-weight: 600; line-height: 1; color: var(--paper-3); opacity: .75; pointer-events: none; }
.fac-row.is-rev .fac-kanji { right: auto; left: max(4px, (100vw - var(--wrap)) / 2 - 40px); }
.facility .fac-body { isolation: isolate; }

/* 写真が静かに入れ替わる（3 枚・18 秒で一周・ゆっくり寄る）＝CSS だけ */
.slides > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; }
.slides > img:first-child { opacity: 1; }
@media (prefers-reduced-motion: no-preference) {
  .slides > img { animation: yu-slide 18s linear infinite; }
  .slides > img:nth-child(1) { animation-delay: -.9s; }
  .slides > img:nth-child(2) { animation-delay: 5.1s; }
  .slides > img:nth-child(3) { animation-delay: 11.1s; }
}
@keyframes yu-slide { 0% { opacity: 0; transform: scale(1.06); } 5% { opacity: 1; } 33% { opacity: 1; } 38% { opacity: 0; transform: scale(1); } 100% { opacity: 0; transform: scale(1); } }

/* ---------- 1-7 季節のみどころ ---------- */
.seasons { background: var(--paper-2); }
.season-row { display: flex; gap: 10px; height: min(72vh, 640px); padding: 0 max(20px, (100vw - var(--wrap)) / 2 - 60px); }
.season { position: relative; flex: 1 1 0; min-width: 0; overflow: hidden; color: #fff; transition: flex-grow .9s cubic-bezier(.22, .61, .36, 1); }
.season img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.08); transition: transform 1.4s cubic-bezier(.22, .61, .36, 1); }
.season::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(15, 18, 16, .66), rgba(15, 18, 16, .05) 50%, rgba(15, 18, 16, .25)); transition: opacity .6s; }
.season > span { position: absolute; z-index: 1; }
.s-title { top: 30px; right: 22px; font-size: clamp(20px, 1.9vw, 27px); font-weight: 500; letter-spacing: .24em; line-height: 1.5; text-shadow: 0 0 20px rgba(0, 0, 0, .3); max-height: calc(100% - 140px); }
.s-when { left: 24px; bottom: 26px; font-size: 12.5px; letter-spacing: .16em; }
.s-text { left: 24px; bottom: 62px; width: min(340px, calc(100% - 48px)); font-size: 13.5px; line-height: 1.9; opacity: 0; transform: translateY(12px); transition: opacity .5s, transform .6s; }
.season:hover { flex-grow: 2.3; }
.season:hover img { transform: scale(1); }
.season:hover .s-text { opacity: 1; transform: none; transition-delay: .25s; }
.season-more { display: grid; justify-items: center; margin-top: 50px; }
.unkai { display: block; position: relative; width: 100%; height: 320px; color: #fff; overflow: hidden; }
.unkai img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.unkai::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to right, rgba(20, 18, 14, .55), rgba(20, 18, 14, .05) 70%); }
.unkai-steam { position: absolute; inset: 0; z-index: 1; --fx-steam-rise: 0; --fx-steam-band: .78; --fx-steam-band-h: .4; --fx-steam-count: 16; --fx-steam-size: .5; --fx-steam-opacity: .5; --fx-steam-speed: 1.4; }
.unkai-text { position: absolute; z-index: 2; left: clamp(26px, 5vw, 70px); top: 50%; transform: translateY(-50%); display: grid; gap: 10px; max-width: 460px; font-size: 14px; line-height: 1.9; }
.unkai-text .s-when { position: static; }
.unkai-title { font-size: clamp(22px, 2.4vw, 30px); letter-spacing: .14em; }

/* ---------- 1-8 近隣スポット ---------- */
.spots-head { display: grid; grid-template-columns: auto 1fr; gap: 20px clamp(40px, 7vw, 120px); align-items: end; }
.spots-head .lead { margin: 0 0 8px; }
.spot-flow { margin-top: 60px; --anim-marquee-gap: 26px; }
.spot { display: grid; gap: 8px; width: clamp(230px, 22vw, 300px); }
.spot .ph { aspect-ratio: 4 / 5; }
.spot .ph img { transition: transform 1.2s cubic-bezier(.22, .61, .36, 1); }
.spot:hover .ph img { transform: scale(1.06); }
.sp-dist { margin-top: 8px; font-size: 12px; letter-spacing: .12em; color: var(--yu-deep); }
.sp-name { font-size: 16.5px; letter-spacing: .1em; line-height: 1.5; }
.spots-foot { display: flex; justify-content: center; }

/* ---------- 1-9 藤七豆知識 ---------- */
.mame { background: var(--paper-2); padding-bottom: clamp(80px, 8vw, 120px); }
.mame-head { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 30px; }
.mame-hint { color: var(--ink-2); font-size: 14px; }
.mame-nav { margin-left: auto; color: var(--ink); --fx-rail-btn: 50px; --fx-rail-bar-w: 140px; --fx-rail-line: rgba(42, 39, 35, .16); --fx-rail-ink: var(--ink); --fx-rail-on-ink: var(--paper); }
.mame-nav .fx-rail-btn { border-color: rgba(42, 39, 35, .4); }
.mame-nav .fx-rail-bar i { background: var(--shu); }
.mame-h { display: flex; align-items: baseline; gap: 16px; font-size: clamp(26px, 2.8vw, 34px); font-weight: 500; letter-spacing: .2em; }
.mame-h .en { font: italic 500 18px/1 var(--en); letter-spacing: .05em; color: var(--yu-deep); }
.mame-row { gap: 18px; margin-top: 44px; padding: 10px max(20px, (100vw - var(--wrap)) / 2) 34px; scroll-padding-left: max(20px, (100vw - var(--wrap)) / 2); }
.mame-card { position: relative; width: 206px; height: 380px; padding: 26px 22px 24px; background: var(--card); border: 1px solid var(--line); display: flex; flex-direction: row-reverse; gap: 16px; box-shadow: 0 20px 40px -34px rgba(42, 39, 35, .45); transition: transform .5s cubic-bezier(.22, .61, .36, 1), box-shadow .5s; }
.mame-card:hover { transform: translateY(-6px); box-shadow: 0 30px 50px -34px rgba(42, 39, 35, .55); }
.m-no { position: absolute; left: 18px; bottom: 18px; font-size: 12px; letter-spacing: .2em; color: var(--shu); }
.mame-card h3 { font-size: 19px; font-weight: 600; letter-spacing: .2em; line-height: 1.45; max-height: 100%; }
.mame-card .m-txt { font-size: 13.5px; line-height: 2; color: var(--ink-2); letter-spacing: .12em; max-height: calc(100% - 40px); }
.mame-card::before { content: ''; position: absolute; top: 14px; left: 14px; width: 10px; height: 10px; border-top: 1px solid var(--shu); border-left: 1px solid var(--shu); }

/* ---------- 1-10 予約 ---------- */
.reserve { position: relative; color: #fff; padding: clamp(110px, 12vw, 170px) 0; overflow: hidden; isolation: isolate; }
.reserve-bg { position: absolute; inset: 0; z-index: -2; }
.reserve-bg img { width: 100%; height: 100%; object-fit: cover; }
.reserve-bg::after { content: ''; position: absolute; inset: 0; background: rgba(28, 36, 33, .56); }
.reserve-steam { position: absolute; left: 0; right: 0; bottom: 0; height: 70%; z-index: -1; --fx-steam-count: 12; --fx-steam-opacity: .3; --fx-steam-size: .26; --fx-steam-height: .9; }
.reserve-inner { display: flex; flex-direction: row-reverse; justify-content: center; align-items: center; gap: clamp(50px, 7vw, 110px); }
.reserve-h { font-size: clamp(30px, 3.2vw, 42px); font-weight: 500; letter-spacing: .24em; line-height: 1.7; }
.reserve-body { max-width: 520px; }
.reserve-btns { display: flex; flex-wrap: wrap; gap: 14px; margin: 30px 0 18px; }
.r-btn { display: inline-flex; flex-direction: column; justify-content: center; min-height: 64px; padding: 10px 30px; border: 1px solid rgba(255, 255, 255, .7); font-size: 14.5px; letter-spacing: .14em; line-height: 1.5; transition: background .35s, border-color .35s, color .35s; }
.r-btn span { font: 500 16px/1.3 var(--en); letter-spacing: .1em; }
.r-btn:hover { background: rgba(255, 255, 255, .14); }
.r-btn.is-main { background: var(--shu); border-color: var(--shu); color: #fff; }
.r-btn.is-main:hover { background: #8e3521; border-color: #8e3521; }
.reserve-note { font-size: 12.5px; opacity: .85; }

/* ---------- 1-11 イベントカレンダー＝本物の ASB Calendar 2.18.2（プラグインは直さない・寄せ方の共通部分は mock.css・ここは A案の色と見出しの形） ---------- */
.cal-box { background: var(--card); border: 1px solid var(--line); padding: clamp(22px, 3vw, 40px); box-shadow: 0 30px 60px -50px rgba(42, 39, 35, .5); }
/* 色と書体（共通の寄せ方は mock.css） */
.plan-yukemuri .asbcala-shortcode-wrapper {
  --cal-font: var(--mincho); --cal-num: var(--en); --cal-ink: var(--ink); --cal-muted: var(--ink-2);
  --cal-line: rgba(42, 39, 35, .12); --cal-rule: var(--ink); --cal-sun: var(--shu); --cal-sat: #3e6a8a;
  --cal-today-bg: var(--shu); --cal-today-ink: #fff; --cal-inn: var(--shu); --cal-road: #5b6670; --cal-area: var(--yu);
  --cal-nav-line: rgba(42, 39, 35, .4); --cal-nav-hover-bg: var(--ink); --cal-nav-hover-ink: var(--paper);
}
/* 月の見出し＝年を小さく上に・漢数字の月（cal.js が描き終わりに書き換える） */
.plan-yukemuri .asbcala-shortcode-wrapper[data-cal-title] .asbcala-calendar .calendar-header h2 { font: 400 34px/1 var(--mincho); letter-spacing: .2em; }
.plan-yukemuri .asbcala-calendar .calendar-header h2 .cal-y { display: block; margin-bottom: 8px; font: 500 14px/1 var(--en); letter-spacing: .2em; color: var(--ink-3); }
.plan-yukemuri .asbcala-tip { background-color: var(--ink); border-radius: 3px; font-family: var(--mincho); font-size: 13px; letter-spacing: .04em; }
.cal-note { margin-top: 16px; font-size: 12.5px; color: var(--ink-2); }

/* ---------- 1-12 アクセス ---------- */
.access { padding-top: 40px; }
.access-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(40px, 6vw, 90px); align-items: start; }
.addr { margin: 26px 0 24px; }
.routes div { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--line); font-size: 14px; line-height: 1.8; }
.routes dt { font-weight: 600; }
.caution { margin-top: 30px; padding: 22px 26px; background: var(--paper-2); border-left: 2px solid var(--shu); font-size: 13.5px; line-height: 1.85; }
.caution .c-h { font-weight: 600; letter-spacing: .2em; color: var(--shu); margin-bottom: 6px; }
.caution li { position: relative; padding-left: 1.1em; }
.caution li::before { content: '・'; position: absolute; left: 0; }
.access-map { display: grid; justify-items: center; }
.access-map .map-frame { width: 100%; aspect-ratio: 4 / 3.2; filter: grayscale(.4) sepia(.12) contrast(.96); box-shadow: 0 30px 60px -44px rgba(42, 39, 35, .5); }

/* ---------- フッター ---------- */
.site-footer { position: relative; background: var(--paper-2); margin-top: clamp(80px, 9vw, 130px); }
.ridge { position: absolute; left: 0; right: 0; top: -119px; width: 100%; height: 120px; }
.ridge path { stroke-dasharray: 1; stroke-dashoffset: 1; }
html.anim-on .ridge.is-inview path, html:not(.anim-on) .ridge path { stroke-dashoffset: 0; transition: stroke-dashoffset 4s cubic-bezier(.45, 0, .2, 1) .2s; }
.site-footer::before { content: ''; position: absolute; left: 0; right: 0; top: -1px; height: 1px; }
.f-grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) auto; gap: 40px clamp(40px, 5vw, 80px); padding: 70px 0 60px; }
.f-logo { margin-bottom: 22px; }
.f-logo img { height: 40px; width: auto; }
.f-brand address { font-size: 13.5px; line-height: 1.95; color: var(--ink-2); }
.f-season { margin-top: 10px; font-size: 13.5px; color: var(--yu-deep); }
.f-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 30px; align-content: start; font-size: 13.5px; }
.f-nav a { padding: 4px 0; }
.f-nav a:hover { color: var(--yu-deep); }
.f-cta { display: grid; justify-items: start; gap: 12px; align-content: start; }
.f-hitou { font-size: 12.5px; color: var(--ink-2); }
.copy { text-align: center; font-size: 11.5px; letter-spacing: .12em; color: var(--ink-3); padding: 20px; border-top: 1px solid var(--line); }

/* ---------- 幅ごと ---------- */
@media (max-width: 1540px) {
  .h-tel { display: none; }
}
@media (max-width: 1320px) {
  .gnav { gap: 18px; font-size: 13px; letter-spacing: .06em; }
  .h-btn.is-contact { display: none; }
}
@media (max-width: 1140px) {
  .gnav, .h-tel { display: none; }
  .h-actions { margin-left: auto; }
  .menu-btn { display: block; }
}
@media (max-width: 900px) {
  .intro-grid { grid-template-columns: 1fr; }
  .intro-photo { margin: 40px calc((var(--wrap) - 100vw) / 2) 0; aspect-ratio: 4 / 3; }
  .intro-grid > .intro-sub { left: auto; right: 20px; bottom: -50px; width: 140px; }
  .intro-cap { display: none; }
  .vr-grid { grid-template-columns: 1fr; }
  .riders { grid-template-columns: 1fr; }
  .riders-media { min-height: 62vh; }
  .fac-row, .fac-row.is-rev { grid-template-columns: 1fr; margin-top: 70px; }
  .fac-row.is-rev .fac-photo { order: 0; }
  .fac-row .fac-body, .fac-row:not(.is-rev) .fac-body, .fac-row.is-rev .fac-body { padding: 34px 24px 0; justify-self: stretch; max-width: none; }
  .fac-kanji, .fac-row.is-rev .fac-kanji { top: 0; right: 20px; left: auto; font-size: 150px; }
  .spots-head { grid-template-columns: 1fr; }
  .access-grid { grid-template-columns: 1fr; }
  .f-grid { grid-template-columns: 1fr 1fr; }
  .f-cta { grid-column: 1 / -1; }
}
@media (max-width: 767px) {
  .plan-yukemuri { --wrap: calc(100vw - 40px); font-size: 15px; }
  .h-inner { height: 64px; padding: 0 14px 0 18px; gap: 12px; }
  .site-header.is-scrolled .h-inner { height: 58px; }
  .h-logo { flex-shrink: 1; min-width: 0; }
  .h-logo-img, .site-header.is-scrolled .h-logo-img { height: 24px; }
  .h-btn.is-contact { display: none; }
  .h-btn.is-reserve { height: 36px; padding: 0 12px; font-size: 12px; letter-spacing: .06em; }
  .hero { min-height: 560px; }
  .hero-catch { right: 26px; top: 45%; font-size: 34px; letter-spacing: .18em; }
  .hero-foot { left: 20px; bottom: 90px; right: 70px; }
  .hero-sub { font-size: 13px; letter-spacing: .1em; }
  .hero-scroll { right: 18px; }
  .intro-text { grid-template-columns: 1fr auto; }
  .intro-h { font-size: 24px; height: 10.5em; }
  .intro-body { font-size: 14.5px; }
  .vr-item { grid-template-columns: 34px minmax(0, 1fr); }
  .vr-h { font-size: 16px; }
  .mame-nav { margin-left: 0; --fx-rail-btn: 42px; --fx-rail-bar-w: 110px; }
  .riders-points { grid-template-columns: 1fr; gap: 0; }
  .riders-points li { display: flex; align-items: center; gap: 16px; padding: 14px 0; }
  .riders-points li br { display: none; }
  .riders-points svg { margin: 0; width: 32px; height: 32px; }
  .news-grid { grid-template-columns: 1fr; }
  .news-head { flex-direction: row; justify-content: flex-start; align-items: baseline; margin-bottom: 20px; }
  .news-h { writing-mode: horizontal-tb; font-size: 24px; letter-spacing: .2em; }
  .news-head .en-sub { writing-mode: horizontal-tb; }
  .news-list a { grid-template-columns: auto 1fr; gap: 6px 14px; padding: 20px 4px; }
  .n-title { grid-column: 1 / -1; font-size: 15px; }
  .news-grid .btn-ellipse { grid-column: 1; justify-self: center; }
  .season-row { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; height: 460px; padding: 0 20px; gap: 12px; }
  .season { flex: 0 0 76vw; scroll-snap-align: center; }
  .season:hover { flex-grow: 0; }
  .season .s-text { opacity: 1; transform: none; }
  .season img { transform: none; }
  .unkai { height: 380px; }
  .spot { width: 62vw; }
  .mame-card { width: 180px; height: 350px; padding: 22px 18px; }
  .reserve-inner { flex-direction: column; align-items: flex-start; gap: 30px; }
  .reserve-h { writing-mode: horizontal-tb; font-size: 26px; }
  .reserve-h br { display: none; }
  .reserve-h { text-wrap: balance; }
  .h2 { font-size: 25px; letter-spacing: .08em; }
  .hero-alt i, .hero-alt b { display: none; }
  .hero-alt { font-size: 11px; letter-spacing: .18em; }
  .r-btn { width: 100%; }
  .plan-yukemuri .asbcala-shortcode-wrapper[data-cal-title] .asbcala-calendar .calendar-header h2 { font-size: 26px; }
  .plan-yukemuri .asbcala-calendar .calendar-header h2 .cal-y { font-size: 12px; margin-bottom: 6px; }
  .cal-box { padding: 20px 12px; margin: 0 -8px; }
  .routes div { grid-template-columns: 1fr; gap: 2px; }
  .f-grid { grid-template-columns: 1fr; padding-top: 50px; }
  .ridge { height: 70px; top: -69px; }
}
