/*
Theme Name: NKTS Restaurant Menu Child Theme
Theme URI: https://nk-ts.co.jp
Description: 飲食店向けのWordPress子テーマ。料理メニュー、価格、ランチ/ディナー/テイクアウト表示、アレルギー・辛さ・おすすめ表示、予約・アクセス導線、Hero表示ON/OFF、マップ下カスタムHTMLに対応。
Author: 株式会社NKテクニカルサポート
Author URI: https://nk-ts.co.jp
Template: nk-base-theme
Version: 1.5.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: nk-child-restaurant-menu
Tags: restaurant, food, menu, cafe, dining, shop, reservation, access, wordpress
 * v1.4.8: TOP Hero・CTA Hero・Access CTA・FAQ下部相談カードのボタン文言/URL/表示設定を個別化。共通予約ボタン変更が他セクションへ波及しないよう修正。
 * v1.4.6: メニュー料金表テンプレートの24件上限を撤廃。商品説明はテンプレート編集側を正として統一。
 * v1.4.5: 当店についてテンプレート編集の下部CTAに背景色・背景画像設定を追加。
 * v1.4.4: 店舗スタッフカードが少人数時に左寄せにならないよう、トップページ・スタッフ一覧のグリッドを中央寄せに修正。
 * v1.3.7: ファビコン・サイトアイコン設定に対応。Customizerと外観メニューからWordPress標準site_iconを設定可能に。
 * v1.2.9: CustomizerのHeroメディア設定重複を解消し、「トップHero（ファーストビュー）」に一本化。横スクロールギャラリー上部中央に固定ページ/URLリンクを追加。
 * v1.2.5: フロント右側の編集ショートカットボタンを改修。重なり・クリック不能・Customizer内プレビュー時の無反応を解消。
 * v1.2.2: 固定ページ404対策として必須ページ自動作成/デモ再構築を強化。横スクロールギャラリーの自動ループを改善し、5種類のモーションパターンを追加。縦スクロールはネイティブ動作に戻す。
 * v1.2.1: 人気メニュー（旧サービス一覧）カードを画像主役の長方形レイアウトへ変更。画像上・詳細下・提供目安非表示に改善。
 * v1.2.0: 生成したWEBPデモ画像をテーマ内に同梱し、初回有効化時にHero・人気メニュー・ギャラリーへ自動初期設定。
 * v1.0.2: 初期デモ/Customizer初期値を「NKTSイタリアンカフェ」に統一。派生元テーマ由来の文言を飲食店向けに修正し、初回有効化時のデモ投入に対応。
 * v1.0.1: 飲食店向け子テーマの固定フォルダ判定を nk-child-restaurant-menu に修正し、派生元テーマ由来の更新注意表示を解消。
 * v1.0.0: 店舗系子テーマv2.0.8をベースに飲食店向けへ派生。メニュー情報拡張、Hero表示制御改善、Accessマップ下HTML対応、管理画面ラベル整理を実装。
 */


/*
 * Changelog:
 * v2.0.8 (2026-05-25)
 * - トップページHeroの表示ON/OFFを追加
 * - 下層ページHeroの一括ON/OFFと固定ページ単位の非表示設定を追加
 * - Accessマップ下にカスタムHTMLを差し込める設定を追加
 * v2.0.7 (2026-05-24)
 * - screenshot.pngの日本語部分をNoto Sans CJKで再生成し、四角表示を解消
 * - Theme Nameに株式会社NKテクニカルサポートを明記
 *
 * v2.0.6 (2026-05-24)
 * - WordPressテーマ一覧で分かりやすいように、テーマ名を「NKTS Corporate Theme」へ変更
 * - Theme URI / Author URI を https://nk-ts.co.jp に統一
 * - 説明文を株式会社NKテクニカルサポート公式サイト向けに変更
 * - テーマ一覧用 screenshot.png をNKTSロゴ入り画像に差し替え
 * - 既存設定を維持するため、派生元テーマではフォルダ名固定方針を採用
 *
 * v2.0.4 (2026-05-24)
 * - カスタマイザーのサービス一覧設定で「サービス一覧をもっと見る」ボタンURLを上部にも表示
 * - 飲食メニュー選択前にURL設定できるよう、【重要】欄として追加
 * - 初期値は /menu/ を維持
 *
 * v2.0.3 (2026-05-24)
 * - OUR SERVICES下部の「サービス一覧をもっと見る」ボタンURLを手動設定可能に変更
 * - 旧版の https://biyou.nk-ts.biz/menu/ 固定処理を廃止
 * - 初期値を /menu/ に変更し、相対パス・絶対URLの両方に対応
 *
 * v2.0.2 (2026-05-24)
 * - トップページOUR SERVICES / サービス一覧の4カードを飲食メニュー投稿から選択表示する方式へ変更
 * - 旧サービスカード個別設定を公開画面で使用しない構成へ変更
 * - 「サービス一覧をもっと見る」のリンク先を手動設定可能に変更
 *
 * v2.0.1 (2026-05-24)
 * - v2.0の画面密度・ボタンサイズ・カードデザインの保存値が公開画面CSSへ反映されない問題を修正
 * - スマホ自動調整ON/OFFをhidden値付きで保存し、OFF状態を維持できるよう修正
 * - PC詳細調整値からスマホサイズを自動生成する処理を有効化
 *
 * v2.0.0 (2026-05-24)
 * - テンプレート編集のデザイン設定をプリセット中心のUIへ再設計
 * - 文字サイズプリセット、画面密度、ボタンサイズ、カードデザイン、詳細調整アコーディオンを追加
 * - スマホ自動調整と初期値に戻す操作を追加
 *
 * v1.18.1 (2026-05-24)
 * - テンプレート編集画面ごとに独立した文字サイズ設定を追加
 * - メニュー料金表/ご予約/アクセス/当店について/店舗スタッフ紹介/FAQで個別にPC/スマホ文字サイズを保存・反映
 * - 固定ページ単位ではなくテンプレート単位のCSS出力に対応
 *
 * v1.18.0 (2026-05-24)
 *   - メニュー/予約/アクセス/当店について/店舗スタッフ/FAQ各テンプレートのヒーロー背景画像設定を追加
 *   - ヒーロー背景画像未設定時は従来の単色グラデーション表示を維持
 *
 * v1.17.9 (2026-05-24)
 * - CTAボタン2URLの管理画面ラベルを「tel固定」表記から任意URL表記へ修正
 * - CTAボタン2を表示/非表示できる個別チェックボックスを追加
 * - CTAボタン2がLINE予約の場合、共通LINE表示ON/OFFに依存せずCTAボタン2設定だけで表示できるよう修正
 *
 * v1.17.8 (2026-05-24)
 * - CTAボタン2の文言/URLがLINE予約系の場合、CTAボタン2URLを使わず共通LINE公式URLを使用
 * - PCでは共通LINE QR画像をポップアップ表示、スマホでは共通LINE URLへ直接遷移
 * - CTAボタン2がLINE予約の場合、共通LINEボタンとの二重表示を防止
 *
 * v1.17.7 (2026-05-24)
 * - 共通設定のWeb/LINE予約ボタンON/OFFを、Hero・ヘッダー・CTA・アクセス・ご予約テンプレートに完全反映
 * - 「ヘッダー：」表記を「共通：」に変更し、表示制御の対象を明確化
 *
 * v1.17.6 (2026-05-24) ※派生元テーマ履歴
 * - ZIP梱包を固定フォルダに修正し、毎回別テーマとして残る問題を抑止
 * - 旧テーマフォルダ側の theme_mods を再検索して、ヒーロー・画像・予約導線などを自動移行
 * - 店舗設定バックアップ画面に「旧テーマ設定を再検索して移行」を追加
 *
 * v1.17.5 (2026-05-24)
 * - 「当店について」テンプレート名を「当店についてテンプレート」へ変更
 * - ダッシュボード「テンプレート編集」に「当店について」を追加
 * - 当店について固定ページ、トップページConcept、選ばれる理由、数字表示、CTAを編集可能化
 *
 * v1.17.4 (2026-05-24)
 * - テンプレート編集に店舗スタッフ紹介を追加
 * - 店舗スタッフ紹介固定ページとトップページStaffセクションの文言・カードをダッシュボードから編集可能に変更
 * - 店舗スタッフ画像をメディアライブラリから選択可能に追加
 *
 * v1.17.3 (2026-05-24)
 * - ダッシュボード「テンプレート編集」にアクセス・店舗情報テンプレートを追加
 * - アクセス固定ページとトップページAccessセクションの店舗情報を共通反映
 * - Googleマップ、SNS、予約ボタン、道順案内を管理画面から編集可能化
 *
 * v1.17.2 (2026-05-24)
 * - 固定ページ編集画面に「テンプレート表示設定」を追加
 * - メニュー料金表/ご予約/FAQ/アクセス等のテンプレート文字サイズをページごとに調整可能化
 * - PC/スマホ別サイズ、プリセット、簡易プレビュー、公開プレビューリンクを追加
 *
 * v1.17.0 (2026-05-24)
 * - 飲食メニュー詳細ページの「このメニューで予約する」を「Web予約」に変更
 *
 * v1.16.9 (2026-05-24)
 * - 飲食店向けに約50種類のアイコンを追加
 * - 飲食メニュー編集画面でアイコン一覧から選択可能に変更
 * - メニュー料金表テンプレートでも同じアイコン一覧を使えるように変更
 * - アイコン検索・クリア付きの選択UIを追加
 *
 * v1.16.6 (2026-05-24)
 * - 飲食メニュー投稿とメニュー料金表テンプレートを双方向同期
 * - 飲食メニュー編集画面に画像選択ボタンを追加し、アイキャッチ画像へ同期
 * - メニュー料金表テンプレートにも画像欄を追加し、カード上部に画像表示
 *
 * v1.16.0 (2026-05-24)
 * - ダッシュボード「テンプレート編集」に「よくある質問」を追加
 * - FAQ固定ページ・トップページ上位4問・下部相談カードをダッシュボードから編集可能化
 * - FAQテンプレート設定をテーマ更新時の引き継ぎ対象に追加
 *
 * v1.15.9 (2026-05-24)
 * - テーマZIPアップロード更新時にカスタマイザー設定・テンプレート編集内容を引き継ぐ保護処理を追加
 * - 旧テーマスラッグの theme_mods から自動移行し、管理画面に設定バックアップ/復元を追加
 * v1.15.7 (2026-05-24)
 * - ご予約テンプレート：予約ボタンを共通デザインに統一し、色・角丸をダッシュボードから変更可能に改善
 * - ご予約テンプレート：LINE友だち追加URLとPC用QR画像を直接設定可能に改善
 * - ご予約テンプレート：PCではLINE QR表示、スマホではLINEリンクボタン表示に切り替え
 * v1.15.5 (2026-05-24)
 * - メニュー料金表：保存時に5件目以降が戻る不具合を修正
 * - メニュー料金表：編集可能件数を24件に拡張（v1.4.6で上限撤廃）
 * - ご予約テンプレート：不要なよくある質問セクションを表示・編集画面から撤去
 *   - ダッシュボードに「テンプレート編集」を追加し、メニュー料金表・ご予約テンプレートの文言/カード/流れ/FAQを編集可能に変更
 *   - メニュー料金表テンプレートを投稿依存ではなく、管理画面の設定値から安定表示する方式へ整理
 * v1.15.2 (2026-05-23)
 *   - フッターのコピーライト年表記を現在年に自動更新する処理を追加
 * v1.15.1 (2026-05-23)
 *   - 親テーマ側の「ヒーロー設定」パネルを非表示化し、トップページで実際に機能する店舗用Hero設定へ一本化
 *   - 店舗用Hero設定の表示名を「ヒーロー設定（トップページ用）」へ変更し、二重設定による混乱を解消
 * v1.15.0 (2026-05-23)
 *   - 安定化版。デモ自動投入を停止、FAQのID99固定を廃止、AUTOLOOPスマホCSSを一本化
 *   - Before/After管理JSの過剰補正を整理し、functions.phpをinc配下へ最低限分割
 * v1.14.2 (2026-05-23)
 *   - AUTOLOOP/横スクロールビューの各カードにスマホ専用画像設定を追加。未設定時はPC用画像へ自動フォールバック
 *   - スマホ表示では専用画像を優先して表示し、縦カードでの見切れを抑制
 * v1.14.1 (2026-05-23)
 *   - FAQをカスタム投稿から直接編集型へ変更し、FAQ固定ページへ集約。トップページは上位4問のみ表示
 *   - スマホ表示ではAUTOLOOPを縦並びカードへ切替え、横はみ出し・操作不安定を抑制
 * v1.14.0 (2026-05-23)
 *   - 管理画面の「ご予約テンプレート」編集機能を解除し、ご予約ページは安定版の固定テンプレートへ戻しました
 * v1.13.6 (2026-05-22)
 *   - LINE予約ボタンの文言/リンク先をCustomizerから変更できる設定を追加し、アクセス・予約ページ・CTAへ反映
 * v1.13.5 (2026-05-22)
 *   - アクセス・店舗情報設定を独立セクション化し、住所/アクセス/電話/営業時間/定休日/Googleマップを同じ場所で変更可能に整理
 * v1.13.4 (2026-05-22)
 *   - フッター文字デザインを親テーマの「フッター設定」パネル内へ移動
 *   - サービス一覧設定を「見出し・表示数・カード編集」が同じ場所で扱える構成に整理
 * v1.13.3 (2026-05-22)
 *   - Customizerにヘッダー/フッターの文字色・サイズ・フォント変更設定を追加
 * v1.13.1 (2026-05-22)
 *   - ビフォーアフター画像選択を管理画面フッター側でも強制バインドし、メディアライブラリ読み込みを補強
 * v1.13.0 (2026-05-22)
 *   - ビフォーアフター設置テンプレートのBefore/After画像選択ボタンが動かない問題を修正
 *   - WordPressメディアライブラリ連携を実ファイルJS化し、画像プレビューとメディアモーダルz-indexを追加
 * v1.12.8 (2026-05-22)
 *   - 固定ページ/投稿で使えるビフォーアフター設置テンプレート、ショートコード、ブロックパターン、画像比較スライダーを追加
 * v1.12.6 (2026-05-22)
 *   - スクロール連動方式を廃止し、中央表示で自動再生・初回高速1周・低速無限ループするビューへ変更
 * v1.12.5 (2026-05-22)
 *   - 横スクロール中のwheel制御をcapture段階で取得し、マウスカーソル位置による不安定さを軽減
 *   - deltaMode正規化とカーソル非依存のステージ判定を追加
 * v1.12.5 (2026-05-21)
 *   - PC横スクロールビューを「横移動1倍・縦スクロール0.2倍」のホイール制御へ調整
 *   - 横スクロール完了後は通常の縦スクロール速度へ戻るよう制御
 * v1.12.2 (2026-05-21)
 *   - 横スクロールビューをJS制御の中央固定ピン方式へ変更し、カード位置で確実に停止して横移動するよう修正
 *   - 親テーマ/共通CSSのoverflow指定でposition: stickyが効かないケースを回避
 * v1.12.1 (2026-05-21)
 *   - PC横スクロールビューを「画面中央で固定→縦スクロール連動で横移動→最後まで進んだら通常スクロール再開」の挙動へ調整
 * v1.12.0 (2026-05-21)
 *   - ブラザー資料の横スクロール表現を参考に、外部ライブラリ不要の横スクロールビューをトップページセクションとして追加
 *   - Customizerで表示順、背景、カード数、カード文言、カード画像を編集可能化
 * v1.11.0 (2026-05-21)
 *   - WordPressの「ホームページ表示」で指定した固定ページ本文を、Hero/News/Concept/Menu/Staff/Feature/Voice/FAQ/Access/CTAの任意位置へ差し込める設定を追加
 *   - フロントページ本文の見出し表示/非表示をCustomizerから切り替え可能化
 * v1.10.8 (2026-05-21)
 *   - トップページのメニューカード内背景画像をCustomizerから設定できるよう追加
 *   - Menuセクション背景画像がカード内にも薄く見えるようカード背景を半透明化
 * v1.10.7 (2026-05-21)
 *   - Google Maps表示を修正。iframeコード貼り付け/URL貼り付け/住所からの自動表示に対応
 *   - 「店舗が大切にしていること」「はじめての方へ」の固定ページ差し込み見出し/ページヒーローを非表示化
 * v1.10.6 (2026-05-06)
 *   - トップページ全体に3種類（フェードアップ/スライドイン/ズームイン）の表示アニメーションを追加
 *   - Customizer「表示アニメーション・速度・遅延」で調整できるよう拡張
 * v1.10.5 (2026-05-06)
 *   - フッターロゴの色反転フィルターを子テーマ既定でOFF化（白抜けして見える問題を抑制）
 *   - 未設定サイトのみ既定値を適用し、既存の明示設定は尊重
 * v1.10.4 (2026-05-06)
 *   - CTA「ボタン2 文言」「ボタン2 URL（tel:）」設定がフロント表示へ反映されない不具合を修正
 *   - 右ボタンの文言/リンク先をCustomizer設定値から描画するよう変更
 * v1.10.3 (2026-05-06)
 *   - CTAサブテキストを空欄に設定した際、デフォルト文言に戻ってしまう不具合を修正
 *   - 設定値（空欄）をそのままフロント表示へ反映するよう調整
 * v1.10.2 (2026-05-06)
 *   - 固定ページ差し込みブロックの上部ラベルをCustomizerで編集/非表示できる設定を追加
 *   - 固定ページ差し込みブロック本文の「直接上書き」設定を追加（未入力時は固定ページ本文を表示）
 *   - トップページ上の簡易設定リンクに「上部ラベルを設定」「本文を上書き」を追加
 * v1.10.1 (2026-05-04)
 *   - 飲食メニュー数・店舗スタッフ数の入口を「カード表示数（メニュー・店舗スタッフ）」として独立表示
 *   - トップページの「メニュー数を変更」「店舗スタッフ数を変更」導線を独立セクションへ変更し、設定場所が見つからない問題を補正
 * v1.10.0 (2026-05-04)
 *   - 固定ページ差し込みブロックに「タイトルを設定」「本文を編集」「背景を設定」の導線を追加
 *   - Customizerで設定できる箇所と固定ページ編集画面で編集する本文を明確化
 * v1.9.9 (2026-05-04)
 *   - 飲食メニューカード表示数をCustomizerの数値入力で変更可能化（最大10件）
 *   - 店舗スタッフカードと同じ運用設計に揃え、追加/削除ボタンに依存しない構造へ変更
 * v1.9.8 (2026-05-04)
 *   - 店舗スタッフカード表示数をCustomizerの数値入力で変更可能化（最大10件）
 *   - FAQのプラス/マイナス表示を廃止し、PCはホバー/フォーカス、スマホはワンタップで回答を開く仕様へ変更
 * v1.9.7 (2026-05-04)
 *   - お知らせカテゴリURL（/news-cat/ と /news-category/）の互換rewriteを追加し、カテゴリクリック時の404を抑制
 *   - お知らせはCustomizerではなく管理画面のCPT「お知らせ」から編集することが分かる導線を追加
 * v1.9.6 (2026-05-04)
 *   - 簡易設定リンクの遷移先が長いCustomizerセクション内の先頭/順序設定にずれる問題を補正
 *   - 固定ページ差し込みの導線をページ選択/表示設定へ修正し、背景画像設定へ誤誘導しないよう整理
 * v1.9.5 (2026-05-04)
 *   - フロント各セクションから該当Customizer設定へ飛べる簡易設定リンクを追加
 *   - Heroを静止画/スライドショー/MP4動画に切替可能化
 *   - MP4 Hero動画のループ有無チェック、playsinline、自動再生表示に対応
 *   - 複数の簡易設定リンクが重ならないよう配置を補強
 * v1.9.4 (2026-05-04)
 *   - 機能していない親テーマ由来トップページCustomizer項目を二重ガードで非表示化
 *   - CTAを含む各フロントセクションの背景画像反映を強化
 *   - 店舗フロントページのセクション重なりを防ぐフロー/スタッキング制御を追加
 * v1.9.3 (2026-05-04)
 *   - トップページの飲食メニュー/店舗スタッフ紹介をCustomizer直編集に統一
 *   - 各カードの表示、文言、料金、所要時間、画像、リンクURLをCustomizerから直接設定可能に変更
 *   - 二重編集を防ぐため、親テーマ汎用CPTとトップページ用menu/staff CPT管理メニューを非表示化
 * v1.9.2 (2026-05-04)
 *   - 親テーマ/B2B向けの「トップページ コンテンツ」Customizerパネルをsalon子テーマでは非表示化
 *   - salon専用の「飲食店 トップページ編集」パネルへ設定項目を集約し、業種不一致の項目表示を修正
 * v1.9.1 (2026-05-04)
 *   - トップページ各セクションの表示/非表示・並び順・背景画像をCustomizerから設定可能に変更
 *   - 固定ページ差し込みブロックを最大5件追加し、トップページ内に任意ページ本文を挿入可能に変更
 *   - Customizer selective refresh により主要セクションをクリックして編集しやすい構造へ改善
 * v1.9.0 (2026-05-03)
 *   - FAQ CPT / FAQテンプレート / FAQショートコードを追加
 *   - 固定ページ・投稿・店舗スタッフ・飲食メニュー・FAQ・ニュースのデモコンテンツ自動構築機能を追加
 *   - 店舗向けのカードUI、コラム、FAQ、投稿ページのグラフィカル表現を強化
 * v1.8.2 (2026-05-03)
 *   - ライブプレビュー重大エラー対策
 *   - 親テーマ側 nk_sanitize_checkbox() との関数名衝突を回避
 *   - 子テーマ専用 sanitizer を nk_salon_sanitize_checkbox() に変更
 * v1.8.1 (2026-05-03)
 *   - functions.php / templates のバージョンを統一
 *   - メタボックス保存ガード、構造化データ出力、タイトル/リンク出力の安全性を強化
 *   - README を本番仕上げ状態へ更新
 * v1.8.0 (2026-05-03)
 *   - CPT・Taxonomy・メタボックス・Customizer・構造化データを安全実装
 *   - LP / Access テンプレートを本番仕様へ更新
 * v1.7.0 (2026-05-03)
 *   - ページテンプレート 8種を追加（フルページ・LP・2カラム・About・Menu・Staff・Access・Reservation）
 *   - archive-nk_news.php / single-nk_news.php を新規作成
 *   - nk_salon_breadcrumb() ヘルパー追加
 *   - サンプルデータインポート関数 nk_salon_import_sample_data() 追加
 *   - ウィジェットエリア「店舗: サイドバー」追加
 *   - LP固定CTAスクロール制御スクリプト追加
 *   - style.css にページ/テンプレート用 CSS を大幅追加
 * v1.6.0 (2026-05-03)
 *   - Customizer セクションを front-page.php の参照キーと完全統一
 * v1.5.0 – 初期リリース
 */

.nk-anim-target {
    opacity: 0;
    transition: opacity var(--nk-anim-duration, 700ms) ease, transform var(--nk-anim-duration, 700ms) ease, filter var(--nk-anim-duration, 700ms) ease;
    transition-delay: var(--nk-anim-delay, 0ms);
    will-change: opacity, transform;
}
.nk-anim-target.is-inview {
    opacity: 1;
    transform: none !important;
}
.nk-anim-fade-up { transform: translate3d(0, 24px, 0); }
.nk-anim-slide-in { transform: translate3d(-36px, 0, 0); }
.nk-anim-zoom-in { transform: scale(.94); }
.nk-anim-fade { transform: none; }
.nk-anim-flip-in { transform: perspective(1100px) rotateX(10deg) rotateY(-18deg) translate3d(0, 18px, 0); }
.nk-anim-blur-up { transform: translate3d(0, 18px, 0); filter: blur(10px); }
.nk-anim-blur-up.is-inview { filter: blur(0); }

@media (prefers-reduced-motion: reduce) {
    .nk-anim-target {
        opacity: 1;
        transform: none !important;
        transition: none;
    }
}

/* ============================================================
   Webフォント（Google Fonts）
   Cormorant Garamond … 欧文見出し（エレガント・細字）
   Noto Serif JP      … 日本語見出し（上品・可読性）
   Noto Sans JP       … 本文
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;1,300;1,400&family=Noto+Serif+JP:wght@300;400;700&family=Noto+Sans+JP:wght@300;400;500&display=swap');

/* ============================================================
   デザイントークン（CSS カスタムプロパティ）
   Primary: ウォームローズ（女性・温かみ・上品）
   Accent:  ウォームゴールド（高級・洗練）
   ============================================================ */
:root {
  /* --- ブランドカラー --- */
  --salon-primary:        #C6737A;
  --salon-primary-light:  #D99099;
  --salon-primary-dark:   #A05660;
  --salon-accent:         #B8965A;
  --salon-accent-light:   #D4AF7A;
  --salon-accent-dark:    #8C6E3C;

  /* --- 背景 / テキスト --- */
  --salon-bg:             #FDF9F7;
  --salon-bg-alt:         #F8F0EC;
  --salon-bg-dark:        #2E2322;
  --salon-text:           #2E2322;
  --salon-text-muted:     #7A6060;
  --salon-border:         #E8D8D2;
  --salon-white:          #FFFFFF;

  /* --- タイポグラフィ --- */
  --salon-font-en:        'Cormorant Garamond', Georgia, serif;
  --salon-font-jp:        'Noto Serif JP', 'Hiragino Mincho Pro', Georgia, serif;
  --salon-font-body:      'Noto Sans JP', 'Hiragino Sans', sans-serif;

  /* --- 形状 / 影 --- */
  --salon-radius:         0px;
  --salon-radius-pill:    999px;
  --salon-shadow:         0 2px 20px rgba(198,115,122,.10);
  --salon-shadow-hover:   0 8px 32px rgba(198,115,122,.20);
  --salon-transition:     .3s ease;

  /* --- ベーステーマ変数の上書き --- */
  --nk-color-primary:     var(--salon-primary);
  --nk-color-secondary:   var(--salon-primary-dark);
  --nk-color-accent:      var(--salon-accent);
  --nk-color-bg:          var(--salon-bg);
  --nk-color-bg-alt:      var(--salon-bg-alt);
  --nk-color-text:        var(--salon-text);
  --nk-color-text-muted:  var(--salon-text-muted);
  --nk-color-border:      var(--salon-border);
  --nk-font-base:         var(--salon-font-body);
  --nk-font-heading:      var(--salon-font-jp);
  --nk-radius:            var(--salon-radius);
  --nk-shadow:            var(--salon-shadow);
}

/* ============================================================
   ベースリセット補足
   ============================================================ */
body.salon-theme {
  background-color: var(--salon-bg);
  color: var(--salon-text);
  font-family: var(--salon-font-body);
  -webkit-font-smoothing: antialiased;
}

/* ============================================================
   ヘッダー – 白背景 / ロゴ中央 / ボーダーライン
   ============================================================ */
body.salon-theme .site-header {
  background: var(--salon-white);
  border-bottom: 1px solid var(--salon-border);
}
body.salon-theme .site-header .site-branding {
  justify-content: center;
  text-align: center;
}
body.salon-theme .site-header .site-title a {
  font-family: var(--salon-font-en);
  font-weight: 300;
  font-style: italic;
  font-size: 1.8rem;
  color: var(--salon-accent);
  letter-spacing: .08em;
  text-decoration: none;
}
body.salon-theme .site-header .nk-nav a {
  color: var(--salon-text-muted);
  font-size: .82rem;
  letter-spacing: .1em;
  text-decoration: none;
  transition: color var(--salon-transition);
}
body.salon-theme .site-header .nk-nav a:hover,
body.salon-theme .site-header .nk-nav .current-menu-item > a {
  color: var(--salon-primary);
}

/* ============================================================
   ティッカーバー
   .nk-ticker-bar / .nk-ticker-bar__inner / .nk-ticker-bar__label / .nk-ticker-bar__text
   ============================================================ */
.nk-ticker-bar {
  background: var(--salon-bg-alt);
  border-top: 1px solid var(--salon-border);
  border-bottom: 1px solid var(--salon-border);
  padding: .65rem 0;
  overflow: hidden;
}
.nk-ticker-bar__inner {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  overflow: hidden;
}
.nk-ticker-bar__label {
  background: var(--salon-primary);
  color: var(--salon-white);
  font-family: var(--salon-font-en);
  font-style: italic;
  font-size: .72rem;
  font-weight: 400;
  letter-spacing: .1em;
  padding: .2rem .85rem;
  flex-shrink: 0;
}
.nk-ticker-bar__text {
  font-size: .82rem;
  color: var(--salon-text-muted);
  white-space: nowrap;
}
.nk-ticker-bar__text a {
  color: var(--salon-text-muted);
  text-decoration: none;
  transition: color var(--salon-transition);
}
.nk-ticker-bar__text a:hover { color: var(--salon-primary); }

/* ============================================================
   コンセプトセクション
   .nk-concept-section / __eyebrow / __divider / __title / __lead
   ============================================================ */
.nk-concept-section {
  background: var(--salon-bg);
  padding: 6rem 1.5rem;
  text-align: center;
}
.nk-concept-section__eyebrow {
  font-family: var(--salon-font-en);
  font-style: italic;
  font-size: 1.05rem;
  letter-spacing: .3em;
  color: var(--salon-accent);
  margin: 0 0 1.5rem;
}
.nk-concept-section__divider {
  width: 52px;
  height: 1px;
  background: var(--salon-accent);
  margin: 1.8rem auto;
  opacity: .6;
}
.nk-concept-section__title {
  font-family: var(--salon-font-jp);
  font-weight: 300;
  font-size: clamp(1.35rem, 3vw, 2rem);
  color: var(--salon-text);
  line-height: 2.1;
  letter-spacing: .06em;
  margin: 0;
}
.nk-concept-section__lead {
  font-family: var(--salon-font-body);
  font-size: .95rem;
  line-height: 2.4;
  color: var(--salon-text-muted);
  max-width: 600px;
  margin: 0 auto;
}

/* ============================================================
   セクション共通
   ============================================================ */
.nk-salon-front-page {
  display: block;
  width: 100%;
  overflow-x: clip;
}
.nk-salon-front-page > .nk-hero-section,
.nk-salon-front-page > .nk-front-section,
.nk-salon-front-page > .nk-front-page-blocks,
.nk-salon-front-page .nk-front-page-block {
  position: relative;
  display: block;
  clear: both;
  width: 100%;
  margin: 0;
  box-sizing: border-box;
  isolation: isolate;
}
.nk-salon-front-page > .nk-front-section,
.nk-salon-front-page .nk-front-page-block {
  min-height: 1px;
  overflow: hidden;
}
.nk-salon-front-page > .nk-front-section > .container,
.nk-salon-front-page .nk-front-page-block > .container,
.nk-salon-front-page > .nk-hero-section > .container {
  position: relative;
  z-index: 2;
}
.nk-hero-section {
  position: relative;
  overflow: hidden;
  min-height: clamp(520px, 72vh, 760px);
}

/* v1.2.7: Smartphone-optimized Hero backgrounds. Desktop uses a wide crop; smartphones can use a dedicated vertical/mobile crop. */
.nk-hero-section--image {
  background: none;
}
.nk-hero-section--image::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image: linear-gradient(rgba(46,35,34,var(--nk-hero-overlay-opacity, .45)), rgba(46,35,34,var(--nk-hero-overlay-opacity, .45))), var(--nk-hero-bg-desktop);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  filter: brightness(var(--nk-hero-brightness, 1));
}
.nk-hero-slide {
  background-image: var(--nk-hero-slide-desktop);
}
.nk-hero-media,
.nk-hero-media-overlay,
.nk-hero-slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.nk-hero-media {
  z-index: 0;
  filter: brightness(var(--nk-hero-brightness, 1));
}
.nk-hero-media-overlay {
  z-index: 1;
  background: linear-gradient(rgba(46,35,34,var(--nk-hero-overlay-opacity, .45)), rgba(46,35,34,var(--nk-hero-overlay-opacity, .45)));
  pointer-events: none;
}
.nk-hero-video {
  object-fit: cover;
  object-position: center;
}
.nk-hero-slideshow {
  overflow: hidden;
}
.nk-hero-slideshow .nk-hero-slide {
  display: block;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  opacity: 0;
  visibility: hidden;
  transform: scale(1.04);
  transition: opacity 1.1s ease, visibility 1.1s ease, transform 7s ease;
  animation: none !important;
}
.nk-hero-slideshow .nk-hero-slide.is-active {
  opacity: 1;
  visibility: visible;
  transform: scale(1.10);
  z-index: 1;
}
.nk-hero-slideshow .nk-hero-slide:first-child {
  opacity: 1;
  visibility: visible;
}
.nk-hero-slideshow.has-js .nk-hero-slide:first-child:not(.is-active) {
  opacity: 0;
  visibility: hidden;
}
@media (prefers-reduced-motion: reduce) {
  .nk-hero-slideshow .nk-hero-slide {
    transition: none;
    transform: none;
  }
}
.nk-customizer-shortcut {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 20;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: .35rem .8rem;
  border-radius: 999px;
  background: rgba(198,115,122,.96);
  color: #fff !important;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .03em;
  text-decoration: none !important;
  box-shadow: 0 8px 22px rgba(46,35,34,.18);
  opacity: .86;
  transition: opacity var(--salon-transition), transform var(--salon-transition), background var(--salon-transition);
}
.nk-customizer-shortcut--secondary {
  top: 54px;
  background: rgba(46,35,34,.82);
}
.nk-customizer-shortcut--tertiary,
.nk-customizer-shortcut--admin {
  top: 94px;
  background: rgba(96, 128, 118, .92);
}
.nk-customizer-shortcut--quaternary {
  top: 134px;
  background: rgba(142, 104, 87, .92);
}
.nk-customizer-shortcut:hover,
.nk-customizer-shortcut:focus {
  opacity: 1;
  transform: translateY(-1px);
  background: var(--salon-primary-dark);
}
.nk-customizer-shortcut--secondary:hover,
.nk-customizer-shortcut--secondary:focus {
  background: rgba(46,35,34,.96);
}
.nk-customizer-shortcut--tertiary:hover,
.nk-customizer-shortcut--tertiary:focus,
.nk-customizer-shortcut--admin:hover,
.nk-customizer-shortcut--admin:focus {
  background: rgba(58, 92, 82, .98);
}
.nk-customizer-shortcut--quaternary:hover,
.nk-customizer-shortcut--quaternary:focus {
  background: rgba(116, 78, 62, .98);
}
.nk-section {
  padding: 5.5rem 0;
}
.nk-menu-section    { background-color: var(--salon-white); }
.nk-staff-section   { background-color: var(--salon-bg-alt); }
.nk-review-section  { background-color: var(--salon-white); }
.nk-access-section  { background-color: var(--salon-bg-alt); }

/* ---- セクションヘッダー（ベーステーマ .nk-section-header を継承しつつ上書き）---- */
.nk-section-header {
  text-align: center;
  margin-bottom: 3.5rem;
}
.nk-section-header .nk-eyebrow {
  font-family: var(--salon-font-en);
  font-style: italic;
  font-size: 1rem;
  letter-spacing: .28em;
  color: var(--salon-accent);
  display: block;
  margin-bottom: .6rem;
}
.nk-section-header h2,
.nk-section-header .nk-section-title {
  font-family: var(--salon-font-jp);
  font-weight: 300;
  font-size: clamp(1.3rem, 3vw, 1.8rem);
  color: var(--salon-text);
  letter-spacing: .07em;
}

/* 「もっと見る」ボタン */
.nk-section-more {
  text-align: center;
  margin-top: 3rem;
}

/* ============================================================
   飲食メニューグリッド
   .nk-menu-grid / .nk-menu-card / __media / __icon / __body / __name / __desc / __price / __first
   ============================================================ */
.nk-menu-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 2rem;
}
.nk-menu-card {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  border: 1px solid rgba(110, 79, 61, .14);
  border-radius: 24px;
  background: #fff;
  overflow: hidden;
  box-shadow: 0 16px 42px rgba(39, 25, 16, .08);
  transition: transform var(--salon-transition), box-shadow var(--salon-transition), border-color var(--salon-transition);
}
.nk-menu-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 54px rgba(39, 25, 16, .14);
  border-color: rgba(156, 101, 64, .28);
}
.nk-menu-card__media {
  position: relative;
  aspect-ratio: 4 / 3;
  background: linear-gradient(135deg, #f5ede5, #ede0d1);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  overflow: hidden;
}
.nk-menu-card__media::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 52%, rgba(17,12,9,.16) 100%);
}
.nk-menu-card__icon {
  position: absolute;
  top: 16px;
  left: 16px;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: rgba(255,255,255,.9);
  box-shadow: 0 10px 24px rgba(0,0,0,.12);
  font-size: 1.35rem;
  line-height: 1;
}
.nk-menu-card__body {
  display: flex;
  flex-direction: column;
  gap: .9rem;
  padding: 1.35rem 1.35rem 1.45rem;
  text-align: left;
}
.nk-menu-card__name {
  font-family: var(--salon-font-jp);
  font-weight: 500;
  font-size: 1.08rem;
  color: var(--salon-text);
  margin: 0;
  letter-spacing: .02em;
  line-height: 1.55;
}
.nk-menu-card__name a {
  color: inherit;
  text-decoration: none;
}
.nk-menu-card__name a:hover {
  color: var(--salon-primary-dark);
}
.nk-menu-card__desc {
  font-size: .92rem;
  color: var(--salon-text-muted);
  line-height: 1.9;
  margin: 0;
}
.nk-menu-card__price {
  margin: auto 0 0;
  display: flex;
  align-items: center;
  gap: .55rem;
  flex-wrap: wrap;
}
.nk-menu-card__price-main {
  font-size: 1.16rem;
  font-weight: 700;
  color: var(--salon-primary-dark);
  letter-spacing: .02em;
}
.nk-menu-card__first {
  font-size: .78rem;
  font-weight: 500;
  color: var(--salon-primary);
  background: rgba(198,115,122,.08);
  padding: .3rem .55rem;
  border-radius: var(--salon-radius-pill);
}

@media (max-width: 767px) {
  .nk-hero-section--image {
    background-image: linear-gradient(rgba(46,35,34,.48), rgba(46,35,34,.48)), var(--nk-hero-bg-mobile, var(--nk-hero-bg-desktop));
    background-position: center center;
  }
  .nk-hero-slideshow .nk-hero-slide {
    background-image: var(--nk-hero-slide-mobile, var(--nk-hero-slide-desktop));
    background-position: center center;
  }
  .nk-hero-video {
    object-position: center center;
  }
  body.salon-theme .nk-hero-section,
  body.salon-theme .hero-section {
    min-height: min(760px, 86svh);
  }
  .nk-restaurant-hero__grid {
    min-height: min(760px, 86svh);
    padding-top: clamp(72px, 18vw, 112px);
    padding-bottom: clamp(34px, 10vw, 70px);
  }
}

@media (max-width: 640px) {
  .nk-menu-grid {
    grid-template-columns: 1fr;
    gap: 1.35rem;
  }
  .nk-menu-card {
    border-radius: 20px;
  }
  .nk-menu-card__body {
    padding: 1.15rem 1.1rem 1.2rem;
  }
  .nk-menu-card__name {
    font-size: 1rem;
  }
  .nk-menu-card__desc {
    font-size: .88rem;
  }
}

/* ============================================================
   店舗スタッフカード
   .nk-staff-grid / .nk-staff-card / __photo / --placeholder / __name / __role / __bio
   ============================================================ */
.nk-staff-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 2.2rem;
  text-align: center;
}
.nk-staff-card {
  background: var(--salon-white);
  padding: 2rem 1.2rem;
  border: 1px solid var(--salon-border);
  transition: box-shadow var(--salon-transition);
}
.nk-staff-card:hover { box-shadow: var(--salon-shadow); }

.nk-staff-card__photo {
  width: 130px;
  height: 130px;
  border-radius: 50%;
  object-fit: cover;
  margin: 0 auto 1.2rem;
  border: 3px solid var(--salon-border);
  display: block;
}
.nk-staff-card__photo--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.5rem;
  background: var(--salon-bg-alt);
  color: var(--salon-border);
}
.nk-staff-card__name {
  font-family: var(--salon-font-jp);
  font-weight: 400;
  font-size: 1rem;
  color: var(--salon-text);
  margin: 0 0 .3rem;
  letter-spacing: .04em;
}
.nk-staff-card__role {
  font-family: var(--salon-font-en);
  font-style: italic;
  font-size: .82rem;
  color: var(--salon-accent);
  letter-spacing: .1em;
  margin: 0 0 .7rem;
}
.nk-staff-card__bio {
  font-size: .82rem;
  color: var(--salon-text-muted);
  line-height: 1.8;
  margin: 0;
}

/* ============================================================
   お客様の声（レビュー）
   .nk-review-grid / .nk-review-card / __stars / __text / __meta
   ============================================================ */
.nk-review-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.6rem;
}
.nk-review-card {
  padding: 2.2rem 2rem;
  background: var(--salon-bg);
  border: 1px solid var(--salon-border);
  position: relative;
  transition: box-shadow var(--salon-transition);
}
.nk-review-card:hover { box-shadow: var(--salon-shadow); }

/* 引用符デコレーション */
.nk-review-card::before {
  content: '\201C';
  font-family: var(--salon-font-en);
  font-size: 5rem;
  color: var(--salon-primary-light);
  position: absolute;
  top: .3rem;
  left: 1.2rem;
  line-height: 1;
  opacity: .3;
  pointer-events: none;
}
.nk-review-card__stars {
  color: var(--salon-accent);
  font-size: .9rem;
  letter-spacing: .1em;
  margin-bottom: .8rem;
}
.nk-review-card__text {
  font-size: .88rem;
  color: var(--salon-text);
  line-height: 2;
  margin: 0 0 1.2rem;
  position: relative; /* 引用符の上に表示 */
}
.nk-review-card__meta {
  font-size: .76rem;
  color: var(--salon-text-muted);
  text-align: right;
  margin: 0;
  border-top: 1px solid var(--salon-border);
  padding-top: .8rem;
}

/* ============================================================
   アクセス・営業時間
   .nk-access-grid / .nk-access-info / .nk-access-table / .nk-access-map
   ============================================================ */
.nk-access-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: start;
}
.nk-access-table {
  width: 100%;
  border-collapse: collapse;
}
.nk-access-table__head,
.nk-access-table__val {
  padding: .85rem 1rem;
  border-bottom: 1px solid var(--salon-border);
  font-size: .9rem;
  vertical-align: top;
  line-height: 1.8;
}
.nk-access-table__head {
  width: 30%;
  font-weight: 500;
  color: var(--salon-primary-dark);
  white-space: nowrap;
  font-family: var(--salon-font-jp);
}
.nk-access-table__val { color: var(--salon-text); }
.nk-access-table__val a {
  color: var(--salon-primary);
  text-decoration: none;
  transition: color var(--salon-transition);
}
.nk-access-table__val a:hover { color: var(--salon-primary-dark); text-decoration: underline; }

/* マップ */
.nk-access-map iframe {
  display: block;
  width: 100%;
  border: 0;
  min-height: 280px;
}
.nk-access-map__placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: 280px;
  background: var(--salon-bg);
  border: 2px dashed var(--salon-border);
  color: var(--salon-text-muted);
  font-size: .84rem;
  line-height: 1.9;
  padding: 1rem;
}

/* ============================================================
   メニューテーブル（ショートコード [nk_menu_table]）
   ============================================================ */
.nk-menu-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .9rem;
}
.nk-menu-table th,
.nk-menu-table td {
  padding: .85rem 1rem;
  border-bottom: 1px solid var(--salon-border);
  text-align: left;
}
.nk-menu-table th {
  background: var(--salon-bg-alt);
  color: var(--salon-primary-dark);
  font-family: var(--salon-font-jp);
  font-weight: 400;
  letter-spacing: .04em;
}
.nk-menu-table tbody tr:hover { background: rgba(198,115,122,.04); }
.nk-menu-table a {
  color: var(--salon-text);
  text-decoration: none;
  transition: color var(--salon-transition);
}
.nk-menu-table a:hover { color: var(--salon-primary); }

/* ============================================================
   ボタン上書き（店舗専用スタイル）
   ============================================================ */
.salon-theme .nk-btn {
  letter-spacing: .12em;
  font-family: var(--salon-font-body);
  border-radius: var(--salon-radius);
  transition: background var(--salon-transition), color var(--salon-transition), border-color var(--salon-transition), box-shadow var(--salon-transition);
}
.salon-theme .nk-btn--primary,
.salon-theme .nk-btn--accent {
  background: var(--salon-primary);
  color: var(--salon-white);
  border: 1px solid var(--salon-primary);
}
.salon-theme .nk-btn--primary:hover,
.salon-theme .nk-btn--accent:hover {
  background: var(--salon-primary-dark);
  border-color: var(--salon-primary-dark);
  box-shadow: 0 4px 16px rgba(198,115,122,.28);
}
.salon-theme .nk-btn--outline {
  background: transparent;
  color: var(--salon-primary);
  border: 1px solid var(--salon-primary);
}
.salon-theme .nk-btn--outline:hover {
  background: var(--salon-primary);
  color: var(--salon-white);
}

/* 予約ボタン（特大）*/
.nk-reservation-btn {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: 1.1rem 3rem;
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: .15em;
}
.nk-reservation-btn::before {
  content: '✦';
  font-size: .7rem;
  opacity: .7;
}

/* ============================================================
   ヒーロー補足スタイル（ベーステーマの hero-section を salon 向けに調整）
   ============================================================ */
body.salon-theme .nk-hero-section,
body.salon-theme .hero-section {
  min-height: 600px;
}
body.salon-theme .nk-hero__eyebrow,
body.salon-theme .hero-eyebrow {
  font-family: var(--salon-font-en);
  font-style: italic;
  letter-spacing: .22em;
  font-size: .98rem;
}
body.salon-theme .nk-hero__title,
body.salon-theme .hero-title {
  font-family: var(--salon-font-jp);
  font-weight: 300;
  letter-spacing: .06em;
}
body.salon-theme .nk-hero__sub,
body.salon-theme .hero-sub {
  font-weight: 300;
  letter-spacing: .04em;
  line-height: 2;
}

/* ============================================================
   フッター補足（店舗向け）
   ============================================================ */
body.salon-theme .nk-footer {
  background: var(--salon-bg-dark);
  color: rgba(255,255,255,.55);
  font-size: .82rem;
}
body.salon-theme .nk-footer a {
  color: rgba(255,255,255,.5);
  text-decoration: none;
  transition: color var(--salon-transition);
}
body.salon-theme .nk-footer a:hover { color: var(--salon-primary-light); }
body.salon-theme .nk-footer__brand-name {
  font-family: var(--salon-font-en);
  font-style: italic;
  font-size: 1.4rem;
  color: var(--salon-primary-light);
}
body.salon-theme .nk-footer__contact-block {
  border-top: 1px solid rgba(255,255,255,.1);
  padding-top: 1rem;
}

/* ============================================================
   アクセントボーダー（テーマオプション）
   ============================================================ */
.nk-accent-border {
  height: 3px;
  background: linear-gradient(90deg, var(--salon-primary), var(--salon-accent), var(--salon-primary-light));
}

/* ============================================================
   レスポンシブ
   ============================================================ */
@media (max-width: 960px) {
  .nk-access-grid { grid-template-columns: 1fr; gap: 2rem; }
  .nk-menu-grid   { grid-template-columns: repeat(2, 1fr); }
}


@media (max-width: 640px) {
  .nk-concept-section { padding: 4rem 1.2rem; }
  .nk-section         { padding: 4rem 0; }
  .nk-menu-grid   { grid-template-columns: 1fr; }
  .nk-staff-grid  { grid-template-columns: repeat(2, 1fr); }
  .nk-review-grid { grid-template-columns: 1fr; }
  body.salon-theme .nk-hero-section,
  body.salon-theme .hero-section { min-height: 440px; }
  .nk-access-table__head { width: 38%; }
}

@media (max-width: 400px) {
  .nk-staff-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   プリント向け最小対応
   ============================================================ */
@media print {
  .nk-ticker-bar,
  .nk-concept-section__divider,
  .nk-access-map { display: none; }
}

/* ============================================================
   ページ共通: ヒーロー帯
   .nk-page-hero / --image / --color / --slim / --reservation
   __overlay / __inner / __eyebrow / __title
   ============================================================ */
.nk-page-hero {
  position: relative;
  min-height: 280px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--salon-primary-dark);
  background-size: cover;
  background-position: center;
  overflow: hidden;
}
.nk-page-hero--slim { min-height: 180px; }
.nk-page-hero--reservation { background-color: var(--salon-bg-dark); }

.nk-page-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    160deg,
    rgba(46,35,34,.72) 0%,
    rgba(160,86,96,.55) 100%
  );
}
.nk-page-hero--color .nk-page-hero__overlay {
  background: linear-gradient(
    160deg,
    rgba(46,35,34,.85) 0%,
    rgba(160,86,96,.70) 100%
  );
}
.nk-page-hero__inner {
  position: relative;
  z-index: 1;
  text-align: center;
  padding: 3rem 1.5rem;
}
.nk-page-hero__eyebrow {
  font-family: var(--salon-font-en);
  font-style: italic;
  font-size: .9rem;
  letter-spacing: .3em;
  color: var(--salon-accent-light);
  margin: 0 0 .8rem;
}
.nk-page-hero__title {
  font-family: var(--salon-font-jp);
  font-weight: 300;
  font-size: clamp(1.6rem, 4vw, 2.4rem);
  color: var(--salon-white);
  letter-spacing: .08em;
  margin: 0 0 1rem;
  line-height: 1.5;
}


/* v1.18.0: template page hero background images */
.nk-page-hero--image {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.nk-page-hero--image .nk-page-hero__overlay {
  background: linear-gradient(160deg, rgba(46,35,34,.68) 0%, rgba(160,86,96,.48) 100%);
}


/* v1.2.7: Lower page Hero can also swap to mobile-optimized images. */
.nk-page-hero--image {
  background-image: var(--nk-page-hero-image-desktop);
}
@media (max-width: 767px) {
  .nk-page-hero--image {
    background-image: var(--nk-page-hero-image-mobile, var(--nk-page-hero-image-desktop));
    background-position: center center;
    min-height: 220px;
  }
}

/* ============================================================
   パンくずリスト
   ============================================================ */
.nk-breadcrumb {
  margin-top: .6rem;
}
.nk-breadcrumb__list {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: .3rem;
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: .75rem;
  color: rgba(255,255,255,.65);
}
.nk-breadcrumb__list a {
  color: rgba(255,255,255,.75);
  text-decoration: none;
  transition: color var(--salon-transition);
}
.nk-breadcrumb__list a:hover { color: var(--salon-accent-light); }
.nk-breadcrumb__sep { margin: 0 .15rem; opacity: .5; }
.nk-breadcrumb__item--current { color: rgba(255,255,255,.5); }

/* ============================================================
   ページ本文エリア共通
   ============================================================ */
.nk-page-body {
  padding: 4rem 1.5rem;
  max-width: 1100px;
  margin: 0 auto;
}
.nk-page-content {
  max-width: 800px;
  margin: 0 auto;
  line-height: 1.9;
  font-size: .95rem;
  color: var(--salon-text);
}
.nk-page-content h2 {
  font-family: var(--salon-font-jp);
  font-weight: 300;
  font-size: 1.4rem;
  color: var(--salon-primary-dark);
  border-left: 3px solid var(--salon-primary);
  padding-left: .8rem;
  margin: 2.5rem 0 1rem;
  letter-spacing: .05em;
}
.nk-page-content h3 {
  font-family: var(--salon-font-jp);
  font-weight: 400;
  font-size: 1.1rem;
  color: var(--salon-text);
  margin: 2rem 0 .8rem;
}
.nk-page-content p { margin: 0 0 1.2rem; }
.nk-page-content img { max-width: 100%; height: auto; }

/* ============================================================
   フルページ
   ============================================================ */
.nk-page--full .nk-page-content--full {
  max-width: none;
  padding: 4rem 1.5rem;
}

/* ============================================================
   2カラムレイアウト
   ============================================================ */
.nk-two-col-wrapper {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 3rem;
  align-items: start;
  padding-top: 3.5rem;
  padding-bottom: 3.5rem;
}
.nk-two-col-main { min-width: 0; }

/* サイドバー共通 */
.nk-two-col-sidebar,
.nk-news-sidebar {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
.nk-sidebar-widget {
  background: var(--salon-bg-alt);
  border: 1px solid var(--salon-border);
  padding: 1.6rem 1.4rem;
}
.nk-sidebar-widget__title {
  font-family: var(--salon-font-jp);
  font-weight: 400;
  font-size: .9rem;
  color: var(--salon-primary-dark);
  border-bottom: 1px solid var(--salon-border);
  padding-bottom: .7rem;
  margin: 0 0 1.2rem;
  letter-spacing: .05em;
}
.nk-sidebar-widget__more {
  display: block;
  text-align: right;
  font-size: .78rem;
  color: var(--salon-primary);
  text-decoration: none;
  margin-top: .8rem;
  transition: color var(--salon-transition);
}
.nk-sidebar-widget__more:hover { color: var(--salon-primary-dark); }
.nk-sidebar-widget__empty {
  font-size: .82rem;
  color: var(--salon-text-muted);
  margin: 0;
}

/* 予約ウィジェット */
.nk-sidebar-reserve {
  background: var(--salon-white);
  border: 1px solid var(--salon-primary-light);
  text-align: center;
}
.nk-sidebar-reserve__lead {
  font-family: var(--salon-font-en);
  font-style: italic;
  font-size: .85rem;
  letter-spacing: .12em;
  color: var(--salon-accent);
  margin: 0 0 1rem;
}
.nk-sidebar-reserve__btn {
  display: block;
  width: 100%;
  text-align: center;
  padding: .9rem 1rem;
  font-size: .9rem;
  margin-bottom: .8rem;
}
.nk-sidebar-reserve__tel {
  display: block;
  font-size: .9rem;
  font-weight: 700;
  color: var(--salon-primary-dark);
  text-decoration: none;
  transition: color var(--salon-transition);
}
.nk-sidebar-reserve__tel:hover { color: var(--salon-primary); }

/* メニューリスト (サイドバー) */
.nk-sidebar-menu-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.nk-sidebar-menu-list__item {
  border-bottom: 1px solid var(--salon-border);
}
.nk-sidebar-menu-list__link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: .6rem .2rem;
  text-decoration: none;
  color: var(--salon-text);
  font-size: .84rem;
  transition: color var(--salon-transition);
}
.nk-sidebar-menu-list__link:hover { color: var(--salon-primary); }
.nk-sidebar-menu-list__price {
  font-size: .78rem;
  color: var(--salon-primary-dark);
  font-weight: 700;
  flex-shrink: 0;
}

/* ニュースリスト (サイドバー) */
.nk-sidebar-news-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.nk-sidebar-news-list__item {
  border-bottom: 1px solid var(--salon-border);
  padding: .6rem 0;
}
.nk-sidebar-news-list__date {
  display: block;
  font-size: .72rem;
  color: var(--salon-text-muted);
  margin-bottom: .2rem;
}
.nk-sidebar-news-list__link {
  display: block;
  font-size: .84rem;
  color: var(--salon-text);
  text-decoration: none;
  line-height: 1.55;
  transition: color var(--salon-transition);
}
.nk-sidebar-news-list__link:hover { color: var(--salon-primary); }

/* SNS (サイドバー) */
.nk-sidebar-sns__links {
  display: flex;
  flex-direction: column;
  gap: .6rem;
}
.nk-sidebar-sns__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  padding: .65rem;
  font-size: .84rem;
  text-decoration: none;
  border: 1px solid var(--salon-border);
  color: var(--salon-text);
  transition: background var(--salon-transition), color var(--salon-transition);
}
.nk-sidebar-sns__btn--ig:hover { background: #e1306c; color: #fff; border-color: #e1306c; }
.nk-sidebar-sns__btn--line:hover { background: #06c755; color: #fff; border-color: #06c755; }

/* ============================================================
   About ページ
   ============================================================ */
.nk-about-concept { padding: 5.5rem 0; }
.nk-about-concept__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}
.nk-about-concept__text { max-width: 520px; }
.nk-about-concept__title {
  font-family: var(--salon-font-jp);
  font-weight: 300;
  font-size: clamp(1.3rem,3vw,1.9rem);
  color: var(--salon-text);
  line-height: 1.9;
  letter-spacing: .06em;
  margin: 1rem 0 1.5rem;
}
.nk-about-concept__divider {
  width: 40px;
  height: 1px;
  background: var(--salon-accent);
  margin: 0 0 1.5rem;
  opacity: .7;
}
.nk-about-concept__body {
  font-size: .92rem;
  line-height: 2.1;
  color: var(--salon-text-muted);
}
.nk-about-concept__body p { margin: 0 0 1rem; }
.nk-about-concept__img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  aspect-ratio: 4/5;
}
.nk-about-concept__img-placeholder {
  background: var(--salon-bg-alt);
  border: 1px solid var(--salon-border);
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 4/5;
}
.nk-about-concept__icon { font-size: 5rem; opacity: .4; }

/* 選ばれる理由グリッド */
.nk-about-reasons__grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 2rem;
}
.nk-about-reason-card {
  padding: 2.5rem 1.8rem;
  background: var(--salon-white);
  border: 1px solid var(--salon-border);
  text-align: center;
  transition: box-shadow var(--salon-transition);
}
.nk-about-reason-card:hover { box-shadow: var(--salon-shadow-hover); }
.nk-about-reason-card__icon {
  font-size: 2.4rem;
  display: block;
  margin-bottom: 1.2rem;
}
.nk-about-reason-card__title {
  font-family: var(--salon-font-jp);
  font-weight: 400;
  font-size: 1rem;
  color: var(--salon-text);
  margin: 0 0 .8rem;
  letter-spacing: .04em;
}
.nk-about-reason-card__body {
  font-size: .84rem;
  color: var(--salon-text-muted);
  line-height: 1.9;
  margin: 0;
}

/* 数字実績 */
.nk-about-stats__grid {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 2rem;
  text-align: center;
}
.nk-about-stat { padding: 2rem 1rem; }
.nk-about-stat__num {
  font-family: var(--salon-font-en);
  font-size: clamp(2.5rem,6vw,4rem);
  font-weight: 300;
  color: var(--salon-primary);
  line-height: 1;
}
.nk-about-stat__unit {
  font-family: var(--salon-font-jp);
  font-size: 1rem;
  color: var(--salon-primary-dark);
  margin-left: .2rem;
}
.nk-about-stat__label {
  font-size: .8rem;
  color: var(--salon-text-muted);
  margin: .6rem 0 0;
  letter-spacing: .06em;
}

/* ============================================================
   メニューページ
   ============================================================ */
.nk-menu-page-lead {
  text-align: center;
  font-size: .92rem;
  color: var(--salon-text-muted);
  line-height: 2;
  margin-bottom: 2.5rem;
}

/* カテゴリタブ */
.nk-menu-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  justify-content: center;
  margin-bottom: 2.5rem;
}
.nk-menu-tab {
  padding: .5rem 1.4rem;
  background: transparent;
  border: 1px solid var(--salon-border);
  font-family: var(--salon-font-body);
  font-size: .82rem;
  color: var(--salon-text-muted);
  cursor: pointer;
  transition: background var(--salon-transition), color var(--salon-transition), border-color var(--salon-transition);
  letter-spacing: .06em;
}
.nk-menu-tab:hover { border-color: var(--salon-primary); color: var(--salon-primary); }
.nk-menu-tab--active {
  background: var(--salon-primary);
  border-color: var(--salon-primary);
  color: var(--salon-white);
}

/* メニューカードグリッド（ページ版） */
.nk-menu-page-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px,1fr));
  gap: 2rem;
}
.nk-menu-page-card {
  border: 1px solid var(--salon-border);
  background: var(--salon-white);
  overflow: hidden;
  transition: box-shadow var(--salon-transition), transform var(--salon-transition);
}
.nk-menu-page-card:hover {
  box-shadow: var(--salon-shadow-hover);
  transform: translateY(-2px);
}
.nk-menu-page-card__thumb { position: relative; }
.nk-menu-page-card__thumb img {
  display: block;
  width: 100%;
  height: 200px;
  object-fit: cover;
}
.nk-menu-page-card__badge {
  position: absolute;
  top: .6rem;
  right: .6rem;
  background: var(--salon-primary);
  color: var(--salon-white);
  font-size: .7rem;
  padding: .2rem .6rem;
  letter-spacing: .05em;
}
.nk-menu-page-card__body { padding: 1.6rem 1.4rem 1.8rem; }
.nk-menu-page-card__cat {
  font-family: var(--salon-font-en);
  font-style: italic;
  font-size: .78rem;
  color: var(--salon-accent);
  letter-spacing: .1em;
  margin: 0 0 .4rem;
}
.nk-menu-page-card__cat-icon {
  display: block;
  font-size: 1.8rem;
  margin-bottom: .8rem;
  line-height: 1;
}
.nk-menu-page-card__name {
  font-family: var(--salon-font-jp);
  font-weight: 400;
  font-size: 1rem;
  color: var(--salon-text);
  margin: 0 0 .5rem;
  letter-spacing: .04em;
  line-height: 1.5;
}
.nk-menu-page-card__desc {
  font-size: .83rem;
  color: var(--salon-text-muted);
  line-height: 1.85;
  margin: 0 0 1.2rem;
}
.nk-menu-page-card__price-row {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem .8rem;
  align-items: baseline;
}
.nk-menu-page-card__price {
  display: flex;
  flex-direction: column;
  gap: .1rem;
}
.nk-menu-page-card__price-label {
  font-size: .68rem;
  color: var(--salon-text-muted);
  letter-spacing: .04em;
}
.nk-menu-page-card__price-val {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--salon-primary-dark);
}
.nk-menu-page-card__price--first .nk-menu-page-card__price-val {
  color: var(--salon-primary);
  font-size: .92rem;
  background: rgba(198,115,122,.08);
  padding: .1rem .4rem;
}
.nk-menu-page-card__duration {
  font-size: .78rem;
  color: var(--salon-text-muted);
  align-self: flex-end;
  margin-bottom: .05rem;
}

/* カテゴリブロック（サンプル表示用） */
.nk-menu-category-block { margin-bottom: 3.5rem; }
.nk-menu-category-block__title {
  font-family: var(--salon-font-jp);
  font-weight: 300;
  font-size: 1.15rem;
  color: var(--salon-primary-dark);
  border-bottom: 1px solid var(--salon-border);
  padding-bottom: .7rem;
  margin: 0 0 1.5rem;
  letter-spacing: .06em;
}


.nk-menu-category-sections {
  display: flex;
  flex-direction: column;
  gap: 3rem;
}
.nk-menu-category-section {
  scroll-margin-top: 110px;
}
.nk-menu-category-section__head {
  text-align: center;
  margin: 0 0 1.4rem;
}
.nk-menu-category-section__eyebrow {
  font-family: var(--salon-font-en);
  font-size: .74rem;
  letter-spacing: .22em;
  font-style: italic;
  color: var(--salon-accent);
  margin: 0 0 .45rem;
}
.nk-menu-category-section__title {
  font-family: var(--salon-font-jp);
  font-weight: 300;
  font-size: 1.45rem;
  letter-spacing: .08em;
  color: var(--salon-text);
  margin: 0;
}
.nk-menu-page-card__name a {
  color: inherit;
  text-decoration: none;
}
.nk-menu-page-card__name a:hover {
  color: var(--salon-primary-dark);
}
.nk-menu-page-card__more {
  margin: 1rem 0 0;
  font-size: .78rem;
  letter-spacing: .08em;
}
.nk-menu-page-card__more a {
  color: var(--salon-primary-dark);
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* 注意事項 */
.nk-menu-notes {
  background: var(--salon-bg-alt);
  border: 1px solid var(--salon-border);
  padding: 1.8rem 2rem;
  margin: 3rem 0;
}
.nk-menu-notes__title {
  font-family: var(--salon-font-jp);
  font-size: .92rem;
  color: var(--salon-primary-dark);
  margin: 0 0 .8rem;
}
.nk-menu-notes__list {
  margin: 0;
  padding-left: 1.4rem;
}
.nk-menu-notes__list li {
  font-size: .82rem;
  color: var(--salon-text-muted);
  line-height: 1.8;
  margin-bottom: .3rem;
}

/* メニューページ CTA */
.nk-menu-page-cta {
  text-align: center;
  padding: 3rem 1.5rem;
  border-top: 1px solid var(--salon-border);
  margin-top: 2rem;
}
.nk-menu-page-cta__lead {
  font-family: var(--salon-font-jp);
  font-size: 1rem;
  color: var(--salon-text);
  margin-bottom: 1.5rem;
}
.nk-menu-page-cta__btns {
  display: flex;
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
}

/* ============================================================
   店舗スタッフページ
   ============================================================ */
.nk-staff-page-lead {
  text-align: center;
  font-size: .92rem;
  color: var(--salon-text-muted);
  line-height: 2;
  margin-bottom: 3rem;
}
.nk-staff-page-list {
  display: flex;
  flex-direction: column;
  gap: 3.5rem;
}
.nk-staff-detail-card {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 3rem;
  align-items: start;
  border: 1px solid var(--salon-border);
  padding: 2.5rem;
  background: var(--salon-white);
}
.nk-staff-detail-card__photo-wrap { text-align: center; }
.nk-staff-detail-card__photo {
  width: 100%;
  max-width: 200px;
  height: 250px;
  object-fit: cover;
  border: 3px solid var(--salon-border);
  display: block;
  margin: 0 auto;
}
.nk-staff-detail-card__photo--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 4rem;
  background: var(--salon-bg-alt);
  color: var(--salon-border);
}
.nk-staff-detail-card__role {
  font-family: var(--salon-font-en);
  font-style: italic;
  font-size: .84rem;
  color: var(--salon-accent);
  letter-spacing: .12em;
  margin: 0 0 .4rem;
}
.nk-staff-detail-card__name {
  font-family: var(--salon-font-jp);
  font-weight: 400;
  font-size: 1.2rem;
  color: var(--salon-text);
  margin: 0 0 1rem;
  letter-spacing: .04em;
}
.nk-staff-detail-card__message {
  font-family: var(--salon-font-jp);
  font-style: italic;
  font-size: .92rem;
  color: var(--salon-primary-dark);
  border-left: 2px solid var(--salon-primary-light);
  padding-left: .9rem;
  margin: 0 0 1.2rem;
  line-height: 1.9;
}
.nk-staff-detail-card__bio {
  font-size: .88rem;
  color: var(--salon-text-muted);
  line-height: 2;
  margin-bottom: 1.2rem;
}
.nk-staff-detail-card__skills-label {
  font-size: .78rem;
  color: var(--salon-accent);
  letter-spacing: .08em;
  margin: 0 0 .5rem;
  font-family: var(--salon-font-en);
  font-style: italic;
}
.nk-staff-detail-card__skills-list {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  list-style: none;
  padding: 0;
  margin: 0;
}
.nk-staff-detail-card__skills-list li {
  font-size: .75rem;
  padding: .25rem .7rem;
  background: rgba(198,115,122,.07);
  border: 1px solid var(--salon-primary-light);
  color: var(--salon-primary-dark);
  letter-spacing: .04em;
}

/* ============================================================
   アクセスページ
   ============================================================ */
.nk-access-page-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3.5rem;
  align-items: start;
}
.nk-access-page-info__title,
.nk-access-page-map__title {
  font-family: var(--salon-font-jp);
  font-weight: 300;
  font-size: 1.15rem;
  color: var(--salon-text);
  margin: 0 0 1.5rem;
  display: flex;
  flex-direction: column;
  gap: .3rem;
}
.nk-access-page-info__cta {
  display: flex;
  flex-wrap: wrap;
  gap: .8rem;
  margin-top: 1.8rem;
}
.nk-access-table__tel-link {
  color: var(--salon-primary);
  text-decoration: none;
  font-weight: 700;
  font-size: 1rem;
  transition: color var(--salon-transition);
}
.nk-access-table__tel-link:hover { color: var(--salon-primary-dark); }
.nk-access-table__sns {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}
.nk-access-sns-btn {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  padding: .4rem .9rem;
  font-size: .8rem;
  border: 1px solid var(--salon-border);
  text-decoration: none;
  color: var(--salon-text);
  transition: background var(--salon-transition), color var(--salon-transition);
}
.nk-access-sns-btn--ig:hover  { background:#e1306c; color:#fff; border-color:#e1306c; }
.nk-access-sns-btn--line:hover { background:#06c755; color:#fff; border-color:#06c755; }
.nk-access-page-map__frame {
  width: 100%;
  overflow: hidden;
  border: 1px solid var(--salon-border);
}
.nk-access-page-map__frame iframe {
  display: block;
  width: 100%;
}
.nk-access-page-map__note {
  font-size: .75rem;
  color: var(--salon-text-muted);
  margin: .6rem 0 0;
  line-height: 1.7;
}
.nk-access-directions {
  margin-top: 2rem;
  padding: 1.5rem;
  background: var(--salon-bg-alt);
  border: 1px solid var(--salon-border);
}
.nk-access-directions__title {
  font-family: var(--salon-font-jp);
  font-size: .9rem;
  color: var(--salon-primary-dark);
  margin: 0 0 1rem;
  font-weight: 400;
}
.nk-access-directions__list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.nk-access-directions__list li {
  font-size: .84rem;
  color: var(--salon-text);
  line-height: 1.9;
  padding: .8rem 0;
  border-bottom: 1px solid var(--salon-border);
}
.nk-access-directions__list li:last-child { border-bottom: none; }

/* ============================================================
   予約ページ
   ============================================================ */
.nk-reservation-methods { margin-bottom: 4rem; }
.nk-reservation-methods__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.8rem;
  align-items: stretch;
}
.nk-reservation-methods__grid--count-1 {
  grid-template-columns: minmax(300px, 420px);
  justify-content: center;
}
.nk-reservation-methods__grid--count-2 {
  grid-template-columns: repeat(2, minmax(300px, 360px));
  justify-content: center;
}
.nk-reservation-methods__grid--count-3 {
  grid-template-columns: repeat(3, minmax(240px, 1fr));
}
.nk-reservation-method-card {
  padding: 2.2rem 1.8rem;
  border: 1px solid var(--salon-border);
  background: var(--salon-white);
  text-align: center;
  transition: box-shadow var(--salon-transition);
  height: 100%;
  display: flex;
  flex-direction: column;
}
.nk-reservation-method-card--web {
  border-color: var(--salon-primary-light);
  background: rgba(198,115,122,.03);
}
.nk-reservation-method-card:hover { box-shadow: var(--salon-shadow-hover); }
.nk-reservation-method-card__icon {
  font-size: 2.2rem;
  display: block;
  margin-bottom: 1rem;
}
.nk-reservation-method-card__title {
  font-family: var(--salon-font-jp);
  font-weight: 400;
  font-size: .98rem;
  color: var(--salon-text);
  margin: 0 0 .8rem;
}
.nk-reservation-method-card__body {
  font-size: .83rem;
  color: var(--salon-text-muted);
  line-height: 1.9;
  margin: 0 0 1.4rem;
  flex: 1 1 auto;
}
.nk-reservation-method-card .nk-btn {
  margin-top: auto;
}

body.salon-theme .nk-reservation-method-btn,
.nk-reservation-method-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 300px;
  min-height: 46px;
  margin-left: auto;
  margin-right: auto;
  padding: .9rem 1.4rem;
  border: 1px solid var(--nk-reservation-button-border, var(--salon-primary));
  border-radius: var(--nk-reservation-button-radius, 8px);
  background: var(--nk-reservation-button-bg, var(--salon-primary));
  color: var(--nk-reservation-button-text, #fff);
  font-weight: 700;
  letter-spacing: .15em;
  line-height: 1.4;
  text-align: center;
  text-decoration: none;
  white-space: normal;
  overflow-wrap: anywhere;
  box-shadow: none;
  transition: background var(--salon-transition), color var(--salon-transition), border-color var(--salon-transition), box-shadow var(--salon-transition), transform var(--salon-transition);
}
body.salon-theme .nk-reservation-method-btn:hover,
.nk-reservation-method-btn:hover {
  background: var(--nk-reservation-button-hover-bg, var(--salon-primary-dark));
  border-color: var(--nk-reservation-button-hover-bg, var(--salon-primary-dark));
  color: var(--nk-reservation-button-hover-text, #fff);
  box-shadow: 0 6px 18px rgba(80, 48, 52, .16);
  transform: translateY(-1px);
}
.nk-reservation-method-btn::before {
  content: '✦';
  margin-right: .55em;
  font-size: .7em;
  opacity: .7;
}
.nk-reservation-method-btn--disabled,
.nk-reservation-method-btn--disabled:hover {
  cursor: not-allowed;
  opacity: .55;
  transform: none;
  box-shadow: none;
}
.nk-reservation-line-qr {
  display: none;
  margin: .35rem auto 1.1rem;
  text-align: center;
}
.nk-reservation-line-qr img {
  display: block;
  width: min(180px, 70%);
  height: auto;
  margin: 0 auto .7rem;
  padding: 10px;
  border: 1px solid var(--salon-border);
  background: #fff;
}
.nk-reservation-line-qr p {
  margin: 0;
  color: var(--salon-text-muted);
  font-size: .78rem;
  line-height: 1.7;
}
@media (min-width: 768px) {
  .nk-reservation-method-card--has-qr .nk-reservation-line-qr { display: none; }
}
@media (max-width: 767px) {
  .nk-reservation-method-btn { max-width: none; }
  .nk-reservation-line-qr { display: none !important; }
}
/* ご来店の流れ */
.nk-reservation-flow { margin-bottom: 3.5rem; }
.nk-reservation-flow__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.nk-reservation-flow__item {
  display: grid;
  grid-template-columns: 48px 48px 1fr;
  gap: 0 1.2rem;
  align-items: start;
  padding: 1.5rem 0;
  border-bottom: 1px solid var(--salon-border);
  counter-increment: none;
}
.nk-reservation-flow__step-num {
  font-family: var(--salon-font-en);
  font-size: 1.6rem;
  font-weight: 300;
  color: var(--salon-primary-light);
  line-height: 1;
  padding-top: .1rem;
}
.nk-reservation-flow__icon {
  font-size: 1.6rem;
  line-height: 1.3;
}
.nk-reservation-flow__item-title {
  font-family: var(--salon-font-jp);
  font-weight: 400;
  font-size: .98rem;
  color: var(--salon-primary-dark);
  margin: 0 0 .3rem;
}
.nk-reservation-flow__item-body {
  font-size: .84rem;
  color: var(--salon-text-muted);
  line-height: 1.9;
  margin: 0;
}
/* キャンセルポリシー */
.nk-reservation-policy {
  background: var(--salon-bg-alt);
  border: 1px solid var(--salon-border);
  padding: 2rem 2.2rem;
  margin-bottom: 3.5rem;
}
.nk-reservation-policy__title {
  font-family: var(--salon-font-jp);
  font-size: 1rem;
  color: var(--salon-primary-dark);
  margin: 0 0 1rem;
  font-weight: 400;
}
.nk-reservation-policy__list {
  padding-left: 1.4rem;
  margin: 0;
}
.nk-reservation-policy__list li {
  font-size: .85rem;
  color: var(--salon-text);
  line-height: 1.9;
  margin-bottom: .3rem;
}
/* FAQ */
.nk-reservation-faq { margin-bottom: 2rem; }
.nk-faq-item {
  border-bottom: 1px solid var(--salon-border);
}
.nk-faq-item__question {
  width: 100%;
  display: flex;
  align-items: center;
  gap: .8rem;
  text-align: left;
  padding: 1.2rem 0;
  background: transparent;
  border: none;
  cursor: pointer;
  font-family: var(--salon-font-body);
  font-size: .92rem;
  color: var(--salon-text);
  transition: color var(--salon-transition);
}
.nk-faq-item__question:hover,
.nk-faq-item__question:focus,
.nk-faq-item.is-open .nk-faq-item__question { color: var(--salon-primary); }
.nk-faq-item__q-mark {
  font-family: var(--salon-font-en);
  font-size: 1.1rem;
  font-style: italic;
  color: var(--salon-primary);
  flex-shrink: 0;
  width: 22px;
}
.nk-faq-item__toggle {
  display: none !important;
}
.nk-faq-item.is-open,
.nk-faq-item:focus-within {
  background: rgba(255,255,255,.48);
}
.nk-faq-item__answer {
  display: flex;
  gap: .8rem;
  align-items: flex-start;
  padding: 0 0 1.2rem 2.6rem;
}
.nk-faq-item__answer[hidden] {
  display: none !important;
}
.nk-faq-item__a-mark {
  font-family: var(--salon-font-en);
  font-size: 1.1rem;
  font-style: italic;
  color: var(--salon-accent);
  flex-shrink: 0;
  width: 22px;
  padding-top: .05rem;
}
.nk-faq-item__answer p {
  font-size: .87rem;
  color: var(--salon-text-muted);
  line-height: 1.9;
  margin: 0;
}

/* ============================================================
   お知らせアーカイブ
   ============================================================ */
.nk-news-cats {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-bottom: 2rem;
}
.nk-news-cat-link {
  display: inline-block;
  padding: .38rem 1.1rem;
  border: 1px solid var(--salon-border);
  font-size: .78rem;
  color: var(--salon-text-muted);
  text-decoration: none;
  letter-spacing: .06em;
  transition: background var(--salon-transition), color var(--salon-transition), border-color var(--salon-transition);
}
.nk-news-cat-link:hover,
.nk-news-cat-link--active {
  background: var(--salon-primary);
  border-color: var(--salon-primary);
  color: var(--salon-white);
}
.nk-news-list {
  list-style: none;
  padding: 0;
  margin: 0 0 2.5rem;
}
.nk-news-list__item { border-bottom: 1px solid var(--salon-border); }
.nk-news-card {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.1rem 0;
  flex-wrap: wrap;
}
.nk-news-card__date {
  font-family: var(--salon-font-en);
  font-size: .8rem;
  color: var(--salon-text-muted);
  letter-spacing: .05em;
  flex-shrink: 0;
  min-width: 80px;
}
.nk-news-card__cat {
  font-size: .72rem;
  background: rgba(198,115,122,.1);
  color: var(--salon-primary-dark);
  padding: .2rem .6rem;
  flex-shrink: 0;
  letter-spacing: .04em;
}
.nk-news-card__title {
  font-size: .9rem;
  color: var(--salon-text);
  text-decoration: none;
  line-height: 1.6;
  transition: color var(--salon-transition);
}
.nk-news-card__title:hover { color: var(--salon-primary); }

/* ページネーション */
.nk-pagination { text-align: center; margin: 2rem 0; }
.nk-pagination .page-numbers {
  display: inline-flex;
  gap: .3rem;
  list-style: none;
  padding: 0;
  margin: 0;
  flex-wrap: wrap;
  justify-content: center;
}
.nk-pagination .page-numbers li a,
.nk-pagination .page-numbers li span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.4rem;
  height: 2.4rem;
  border: 1px solid var(--salon-border);
  font-size: .84rem;
  color: var(--salon-text);
  text-decoration: none;
  transition: background var(--salon-transition), color var(--salon-transition);
}
.nk-pagination .page-numbers li .current,
.nk-pagination .page-numbers li a:hover {
  background: var(--salon-primary);
  border-color: var(--salon-primary);
  color: var(--salon-white);
}
.nk-no-posts {
  text-align: center;
  color: var(--salon-text-muted);
  padding: 3rem 0;
  font-size: .9rem;
}

/* ============================================================
   お知らせ詳細
   ============================================================ */
.nk-news-single-layout {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 3rem;
  align-items: start;
}
.nk-news-article__header { margin-bottom: 2rem; }
.nk-news-article__meta {
  display: flex;
  align-items: center;
  gap: .7rem;
  margin-bottom: .8rem;
  flex-wrap: wrap;
}
.nk-news-article__date {
  font-family: var(--salon-font-en);
  font-size: .8rem;
  color: var(--salon-text-muted);
  letter-spacing: .05em;
}
.nk-news-article__cat {
  font-size: .72rem;
  background: rgba(198,115,122,.1);
  color: var(--salon-primary-dark);
  padding: .2rem .6rem;
  text-decoration: none;
  transition: background var(--salon-transition);
}
.nk-news-article__cat:hover { background: rgba(198,115,122,.2); }
.nk-news-article__title {
  font-family: var(--salon-font-jp);
  font-weight: 400;
  font-size: clamp(1.15rem,3vw,1.5rem);
  color: var(--salon-text);
  margin: 0;
  line-height: 1.7;
  letter-spacing: .04em;
}
.nk-news-article__thumb {
  margin-bottom: 2rem;
  overflow: hidden;
}
.nk-news-article__thumb img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 400px;
  object-fit: cover;
}
.nk-news-article__body {
  font-size: .92rem;
  line-height: 2;
  color: var(--salon-text);
  margin-bottom: 3rem;
}
.nk-news-article__body h2,
.nk-news-article__body h3 {
  font-family: var(--salon-font-jp);
  font-weight: 400;
  margin: 2rem 0 .8rem;
  color: var(--salon-primary-dark);
}
.nk-news-article__body p { margin: 0 0 1.2rem; }
.nk-news-article__body a { color: var(--salon-primary); }
.nk-news-article__body ul,
.nk-news-article__body ol {
  padding-left: 1.4rem;
  margin: 0 0 1.2rem;
}
.nk-news-article__body li { margin-bottom: .4rem; }
/* 前後ナビ */
.nk-news-nav {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 1rem;
  align-items: center;
  padding: 1.5rem 0;
  border-top: 1px solid var(--salon-border);
  font-size: .84rem;
}
.nk-news-nav__prev { text-align: left; }
.nk-news-nav__next { text-align: right; }
.nk-news-nav__link {
  color: var(--salon-primary);
  text-decoration: none;
  line-height: 1.5;
  transition: color var(--salon-transition);
}
.nk-news-nav__link:hover { color: var(--salon-primary-dark); }
.nk-news-nav__archive {
  display: inline-block;
  padding: .4rem 1rem;
  border: 1px solid var(--salon-border);
  font-size: .8rem;
  color: var(--salon-text-muted);
  text-decoration: none;
  white-space: nowrap;
  transition: background var(--salon-transition), color var(--salon-transition);
}
.nk-news-nav__archive:hover {
  background: var(--salon-primary);
  color: var(--salon-white);
  border-color: var(--salon-primary);
}

/* ============================================================
   CTA セクション（共通）
   ============================================================ */
.nk-cta-section {
  background-color: var(--salon-bg-dark);
  padding: 5rem 1.5rem;
  text-align: center;
  overflow: hidden;
}
.nk-cta-section__eyebrow {
  font-family: var(--salon-font-en);
  font-style: italic;
  font-size: .92rem;
  letter-spacing: .3em;
  color: var(--salon-accent-light);
  margin: 0 0 1rem;
}
.nk-cta-section__title {
  font-family: var(--salon-font-jp);
  font-weight: 300;
  font-size: clamp(1.3rem,3.5vw,1.9rem);
  color: var(--salon-white);
  line-height: 1.8;
  margin: 0 0 1rem;
  letter-spacing: .06em;
}
.nk-cta-section__sub {
  font-size: .88rem;
  color: rgba(255,255,255,.65);
  line-height: 2;
  margin: 0 0 2rem;
}
.nk-cta-section__btns {
  display: flex;
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
}
.nk-cta-section .nk-btn--outline {
  color: var(--salon-white);
  border-color: rgba(255,255,255,.4);
}
.nk-cta-section .nk-btn--outline:hover {
  background: rgba(255,255,255,.12);
  border-color: rgba(255,255,255,.7);
}

/* ============================================================
   LP テンプレート
   ============================================================ */
.nk-page--lp .site-header .nk-nav,
.nk-page--lp .site-header .nk-hamburger { display: none !important; }

.nk-lp-fv {
  position: relative;
  min-height: 90vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background-size: cover;
  background-position: center;
}
.nk-lp-fv__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(170deg, rgba(46,35,34,.75) 0%, rgba(160,86,96,.58) 100%);
}
.nk-lp-fv__inner {
  position: relative;
  z-index: 1;
  text-align: center;
  padding: 4rem 2rem;
  max-width: 760px;
}
.nk-lp-fv__eyebrow {
  font-family: var(--salon-font-en);
  font-style: italic;
  font-size: .95rem;
  letter-spacing: .3em;
  color: var(--salon-accent-light);
  margin: 0 0 1rem;
}
.nk-lp-fv__title {
  font-family: var(--salon-font-jp);
  font-weight: 300;
  font-size: clamp(1.8rem,5vw,3rem);
  color: var(--salon-white);
  letter-spacing: .06em;
  line-height: 1.6;
  margin: 0 0 1.2rem;
}
.nk-lp-fv__sub {
  font-size: .92rem;
  color: rgba(255,255,255,.75);
  line-height: 2.1;
  margin: 0 0 2rem;
}
.nk-lp-fv__cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}
.nk-lp-fv__tel {
  display: flex;
  align-items: center;
  gap: .4rem;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--salon-white);
  text-decoration: none;
}
.nk-lp-content {
  max-width: 900px;
  margin: 0 auto;
  padding: 4rem 2rem;
  font-size: .95rem;
  line-height: 2;
  color: var(--salon-text);
}
/* 固定CTA */
.nk-lp-sticky-cta {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9000;
  background: var(--salon-white);
  border-top: 2px solid var(--salon-primary-light);
  box-shadow: 0 -4px 24px rgba(0,0,0,.12);
  transform: translateY(100%);
  transition: transform .35s ease;
}
.nk-lp-sticky-cta.is-visible { transform: translateY(0); }
.nk-lp-sticky-cta__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.2rem;
  padding: .8rem 1.5rem;
  flex-wrap: wrap;
}
.nk-lp-sticky-cta__tel {
  font-size: .92rem;
  font-weight: 700;
  color: var(--salon-primary-dark);
  text-decoration: none;
}
.nk-lp-sticky-cta__btn {
  padding: .7rem 2.2rem;
  font-size: .9rem;
}

/* ============================================================
   アイブロウ（共通ユーティリティ）
   ============================================================ */
.nk-eyebrow {
  display: block;
  font-family: var(--salon-font-en);
  font-style: italic;
  font-size: .88rem;
  letter-spacing: .28em;
  color: var(--salon-accent);
  margin-bottom: .5rem;
}

/* ============================================================
   v1.9.0 デモサイト強化UI
   - フロント導線
   - FAQ
   - 店舗コラム
   - 投稿詳細
   - 飲食メニュー/店舗スタッフカードの高級感補強
   ============================================================ */

.nk-front-feature-section {
  background-color: var(--salon-bg);
  background-image:
    radial-gradient(circle at 15% 20%, rgba(212,175,122,.18), transparent 28%),
    linear-gradient(135deg, #fff 0%, var(--salon-bg) 55%, var(--salon-bg-alt) 100%);
}
.nk-front-feature-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.4rem;
}
.nk-front-feature-card {
  position: relative;
  min-height: 260px;
  padding: 2.2rem 1.8rem;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(232,216,210,.9);
  box-shadow: var(--salon-shadow);
  overflow: hidden;
  transition: transform var(--salon-transition), box-shadow var(--salon-transition), border-color var(--salon-transition);
}
.nk-front-feature-card::before {
  content: "";
  position: absolute;
  inset: 10px;
  border: 1px solid rgba(184,150,90,.18);
  pointer-events: none;
}
.nk-front-feature-card::after {
  content: "";
  position: absolute;
  right: -44px;
  bottom: -44px;
  width: 130px;
  height: 130px;
  background: radial-gradient(circle, rgba(198,115,122,.14), transparent 70%);
  border-radius: 50%;
}
.nk-front-feature-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--salon-shadow-hover);
  border-color: rgba(198,115,122,.35);
}
.nk-front-feature-card__icon {
  display: inline-flex;
  width: 58px;
  height: 58px;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.2rem;
  background: linear-gradient(135deg, rgba(198,115,122,.14), rgba(212,175,122,.18));
  border-radius: 50%;
  font-size: 1.7rem;
}
.nk-front-feature-card__title {
  font-family: var(--salon-font-jp);
  font-weight: 400;
  font-size: 1.05rem;
  color: var(--salon-text);
  margin: 0 0 .8rem;
  letter-spacing: .05em;
}
.nk-front-feature-card__text {
  position: relative;
  z-index: 1;
  color: var(--salon-text-muted);
  font-size: .88rem;
  line-height: 2;
  margin: 0;
}
.nk-front-faq-section {
  background-color: var(--salon-bg);
}

.nk-faq-intro,
.nk-column-intro {
  max-width: 780px;
  margin: 0 auto 2.5rem;
  text-align: center;
  padding: 2.5rem 2rem;
  background: linear-gradient(135deg, rgba(255,255,255,.9), rgba(248,240,236,.82));
  border: 1px solid var(--salon-border);
}
.nk-faq-intro p,
.nk-column-intro p {
  color: var(--salon-text-muted);
  line-height: 2;
  margin: 1rem auto 0;
  max-width: 680px;
}
.nk-faq-category-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .65rem;
  margin-bottom: 2.2rem;
}
.nk-faq-category-nav__btn,
.nk-menu-tab {
  appearance: none;
  border: 1px solid var(--salon-border);
  background: var(--salon-white);
  color: var(--salon-text-muted);
  padding: .55rem 1.2rem;
  border-radius: var(--salon-radius-pill);
  font-size: .82rem;
  letter-spacing: .06em;
  cursor: pointer;
  transition: background var(--salon-transition), color var(--salon-transition), border-color var(--salon-transition), transform var(--salon-transition);
}
.nk-faq-category-nav__btn:hover,
.nk-faq-category-nav__btn--active,
.nk-menu-tab:hover,
.nk-menu-tab--active {
  background: var(--salon-primary);
  border-color: var(--salon-primary);
  color: var(--salon-white);
  transform: translateY(-1px);
}
.nk-faq-accordion {
  max-width: 920px;
  margin: 0 auto;
}
.nk-faq-accordion--shortcode {
  margin-top: 1rem;
}
.nk-faq-item--dynamic {
  margin-bottom: .8rem;
  border: 1px solid var(--salon-border);
  background: rgba(255,255,255,.88);
  box-shadow: 0 12px 34px rgba(198,115,122,.07);
}
.nk-faq-item--dynamic .nk-faq-item__question {
  padding: 1.25rem 1.35rem;
}
.nk-faq-item--dynamic .nk-faq-item__answer {
  padding: 0 1.35rem 1.35rem 4rem;
}
.nk-faq-item__question[aria-expanded="true"] {
  color: var(--salon-primary-dark);
}
.nk-faq-contact-card {
  max-width: 860px;
  margin: 3rem auto 0;
  padding: 3rem 2rem;
  text-align: center;
  color: var(--salon-white);
  background:
    linear-gradient(135deg, rgba(46,35,34,.92), rgba(160,86,96,.86)),
    radial-gradient(circle at 80% 10%, rgba(212,175,122,.35), transparent 35%);
  box-shadow: var(--salon-shadow-hover);
}
.nk-faq-contact-card__eyebrow {
  font-family: var(--salon-font-en);
  font-style: italic;
  color: var(--salon-accent-light);
  letter-spacing: .24em;
  margin: 0 0 .8rem;
}
.nk-faq-contact-card__title {
  font-family: var(--salon-font-jp);
  font-weight: 300;
  font-size: clamp(1.2rem, 3vw, 1.7rem);
  line-height: 1.8;
  margin: 0 0 .8rem;
}
.nk-faq-contact-card__body {
  color: rgba(255,255,255,.72);
  line-height: 2;
  margin: 0 0 1.5rem;
}

.nk-column-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.6rem;
}
.nk-column-card {
  background: var(--salon-white);
  border: 1px solid var(--salon-border);
  box-shadow: var(--salon-shadow);
  overflow: hidden;
  transition: transform var(--salon-transition), box-shadow var(--salon-transition);
}
.nk-column-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--salon-shadow-hover);
}
.nk-column-card__thumb {
  display: flex;
  min-height: 190px;
  align-items: center;
  justify-content: center;
  background:
    linear-gradient(135deg, rgba(198,115,122,.16), rgba(212,175,122,.14)),
    var(--salon-bg-alt);
  text-decoration: none;
  overflow: hidden;
}
.nk-column-card__thumb img {
  display: block;
  width: 100%;
  height: 220px;
  object-fit: cover;
  transition: transform .45s ease;
}
.nk-column-card:hover .nk-column-card__thumb img { transform: scale(1.04); }
.nk-column-card__thumb-placeholder {
  font-family: var(--salon-font-en);
  font-size: 3.2rem;
  color: rgba(184,150,90,.6);
}
.nk-column-card__body {
  padding: 1.5rem 1.35rem 1.65rem;
}
.nk-column-card__date,
.nk-column-article__date {
  display: inline-block;
  font-family: var(--salon-font-en);
  font-style: italic;
  color: var(--salon-accent);
  letter-spacing: .08em;
  font-size: .82rem;
  margin-bottom: .55rem;
}
.nk-column-card__title {
  font-family: var(--salon-font-jp);
  font-weight: 400;
  font-size: 1.05rem;
  line-height: 1.65;
  margin: 0 0 .8rem;
}
.nk-column-card__title a {
  color: var(--salon-text);
  text-decoration: none;
  transition: color var(--salon-transition);
}
.nk-column-card__title a:hover { color: var(--salon-primary); }
.nk-column-card__excerpt {
  color: var(--salon-text-muted);
  font-size: .86rem;
  line-height: 1.9;
  margin: 0 0 1rem;
}
.nk-column-card__more {
  font-family: var(--salon-font-en);
  font-style: italic;
  letter-spacing: .12em;
  color: var(--salon-primary);
  text-decoration: none;
  font-size: .86rem;
}
.nk-column-single-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 3rem;
  align-items: start;
}
.nk-column-article {
  background: var(--salon-white);
  border: 1px solid var(--salon-border);
  padding: clamp(1.6rem, 4vw, 3rem);
  box-shadow: var(--salon-shadow);
}
.nk-column-article__header {
  text-align: center;
  margin-bottom: 2rem;
}
.nk-column-article__title {
  font-family: var(--salon-font-jp);
  font-weight: 300;
  font-size: clamp(1.45rem, 3vw, 2.1rem);
  line-height: 1.7;
  color: var(--salon-text);
  margin: 0 0 1rem;
  letter-spacing: .05em;
}
.nk-column-article__cats {
  display: flex;
  gap: .5rem;
  justify-content: center;
  flex-wrap: wrap;
}
.nk-column-article__cats a {
  padding: .25rem .8rem;
  background: rgba(198,115,122,.09);
  color: var(--salon-primary-dark);
  text-decoration: none;
  font-size: .75rem;
}
.nk-column-article__thumb {
  margin: 0 0 2rem;
  overflow: hidden;
}
.nk-column-article__thumb img {
  display: block;
  width: 100%;
  max-height: 460px;
  object-fit: cover;
}
.nk-column-article__body {
  color: var(--salon-text);
  line-height: 2.15;
  font-size: .95rem;
}
.nk-column-article__body p { margin: 0 0 1.4rem; }
.nk-column-article__body h2 {
  font-family: var(--salon-font-jp);
  font-weight: 400;
  font-size: 1.35rem;
  color: var(--salon-primary-dark);
  border-left: 3px solid var(--salon-accent);
  padding-left: .9rem;
  margin: 2.4rem 0 1rem;
}
.nk-menu-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .8rem;
}
.nk-menu-table th,
.nk-menu-table td {
  border-bottom: 1px solid var(--salon-border);
  padding: .55rem .35rem;
  text-align: left;
}
.nk-menu-table th {
  color: var(--salon-primary-dark);
  font-weight: 600;
}

.nk-treatment-detail,
.nk-staff-profile {
  display: grid;
  grid-template-columns: minmax(280px, 42%) minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 4rem);
  align-items: stretch;
  background: var(--salon-white);
  border: 1px solid var(--salon-border);
  box-shadow: var(--salon-shadow-hover);
  padding: clamp(1.5rem, 4vw, 3rem);
}
.nk-treatment-detail__visual,
.nk-staff-profile__photo-wrap {
  min-height: 420px;
  background:
    radial-gradient(circle at 30% 20%, rgba(212,175,122,.2), transparent 34%),
    linear-gradient(135deg, var(--salon-bg-alt), #fff);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.nk-treatment-detail__visual img,
.nk-staff-profile__photo {
  width: 100%;
  height: 100%;
  min-height: 420px;
  object-fit: cover;
  display: block;
}
.nk-treatment-detail__placeholder,
.nk-staff-profile__photo--placeholder {
  display: flex;
  width: 100%;
  height: 100%;
  min-height: 420px;
  align-items: center;
  justify-content: center;
  font-size: clamp(4rem, 10vw, 7rem);
  color: rgba(198,115,122,.55);
}
.nk-treatment-detail__content,
.nk-staff-profile__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.nk-treatment-detail__cat,
.nk-staff-profile__role {
  font-family: var(--salon-font-en);
  font-style: italic;
  letter-spacing: .18em;
  color: var(--salon-accent);
  margin: 0 0 .7rem;
}
.nk-treatment-detail__title,
.nk-staff-profile__name {
  font-family: var(--salon-font-jp);
  font-weight: 300;
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  line-height: 1.55;
  color: var(--salon-text);
  margin: 0 0 1rem;
}
.nk-treatment-detail__lead,
.nk-staff-profile__message {
  color: var(--salon-primary-dark);
  font-family: var(--salon-font-jp);
  line-height: 2;
  margin-bottom: 1.4rem;
}
.nk-treatment-detail__prices {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .8rem;
  margin: 0 0 1.6rem;
}
.nk-treatment-detail__prices div {
  padding: 1rem;
  background: var(--salon-bg-alt);
  border: 1px solid var(--salon-border);
}
.nk-treatment-detail__prices dt {
  font-size: .72rem;
  color: var(--salon-text-muted);
  margin-bottom: .3rem;
}
.nk-treatment-detail__prices dd {
  margin: 0;
  color: var(--salon-primary-dark);
  font-weight: 700;
  font-size: 1rem;
}
.nk-treatment-detail__body,
.nk-staff-profile__content {
  color: var(--salon-text-muted);
  line-height: 2;
  font-size: .92rem;
}
.nk-treatment-detail__actions,
.nk-staff-profile__actions {
  display: flex;
  gap: .8rem;
  flex-wrap: wrap;
  margin-top: 1.8rem;
}

.nk-menu-page-card,
.nk-staff-detail-card,
.nk-review-card,
.nk-reservation-method-card,
.nk-about-reason-card {
  border-radius: 0;
  box-shadow: 0 16px 42px rgba(198,115,122,.075);
}
.nk-menu-page-card:hover,
.nk-staff-detail-card:hover,
.nk-reservation-method-card:hover,
.nk-about-reason-card:hover {
  box-shadow: var(--salon-shadow-hover);
}

/* ============================================================
   v1.9.1 カスタマイザー連動セクション
   - セクション背景画像
   - 固定ページ差し込み
   - selective refresh クリック編集対象
   ============================================================ */
.nk-salon-front-page .nk-section,
.nk-salon-front-page .nk-concept-section,
.nk-salon-front-page .nk-ticker-bar,
.nk-salon-front-page .nk-cta-section,
.nk-front-page-block {
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  background-clip: border-box;
}
.nk-front-page-blocks {
  display: block;
  clear: both;
  width: 100%;
  margin: 0;
  padding: 0;
}
.nk-front-page-block {
  position: relative;
  padding: clamp(4rem, 7vw, 6.5rem) 0;
  background-color: var(--salon-bg);
  overflow: hidden;
}
.nk-front-page-block::before {
  content: "";
  position: absolute;
  inset: 18px;
  border: 1px solid rgba(184,150,90,.16);
  pointer-events: none;
}
.nk-front-page-block:nth-child(even) {
  background-color: var(--salon-bg-alt);
}
.nk-front-page-block .container {
  position: relative;
  z-index: 1;
}
.nk-front-page-block__content {
  max-width: 920px;
  margin: 0 auto;
  padding: clamp(1.5rem, 4vw, 3rem);
  background: rgba(255,255,255,.86);
  border: 1px solid var(--salon-border);
  box-shadow: var(--salon-shadow);
  color: var(--salon-text-muted);
  line-height: 2.05;
}
.nk-front-page-block__content > *:first-child { margin-top: 0; }
.nk-front-page-block__content > *:last-child { margin-bottom: 0; }
.nk-front-page-block__content h2,
.nk-front-page-block__content h3 {
  font-family: var(--salon-font-jp);
  font-weight: 400;
  color: var(--salon-primary-dark);
  letter-spacing: .06em;
}
.nk-front-page-block__content a {
  color: var(--salon-primary-dark);
  text-decoration: underline;
  text-underline-offset: .18em;
}
.customize-partial-edit-shortcut button {
  box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--salon-primary) !important;
}

/* ============================================================
   レスポンシブ – テンプレート用追加
   ============================================================ */
@media (max-width: 960px) {
  .nk-two-col-wrapper        { grid-template-columns: 1fr; }
  .nk-about-concept__inner   { grid-template-columns: 1fr; }
  .nk-about-reasons__grid    { grid-template-columns: 1fr 1fr; }
  .nk-about-stats__grid      { grid-template-columns: repeat(2,1fr); }
  .nk-access-page-layout     { grid-template-columns: 1fr; }
  .nk-news-single-layout     { grid-template-columns: 1fr; }
  .nk-front-feature-grid     { grid-template-columns: 1fr; }
  .nk-column-grid            { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nk-column-single-layout   { grid-template-columns: 1fr; }
  .nk-treatment-detail,
  .nk-staff-profile          { grid-template-columns: 1fr; }
  .nk-staff-detail-card      { grid-template-columns: 180px 1fr; gap: 2rem; }
}


@media (max-width: 640px) {
  .nk-page-hero               { min-height: 200px; }
  .nk-page-body               { padding: 2.5rem 1rem; }
  .nk-about-reasons__grid     { grid-template-columns: 1fr; }
  .nk-about-stats__grid       { grid-template-columns: repeat(2,1fr); }
  .nk-staff-detail-card       { grid-template-columns: 1fr; }
  .nk-staff-detail-card__photo{ max-width: 160px; height: 200px; }
  .nk-reservation-methods__grid,
  .nk-reservation-methods__grid--count-1,
  .nk-reservation-methods__grid--count-2,
  .nk-reservation-methods__grid--count-3 { grid-template-columns: 1fr; }
  .nk-reservation-flow__item { grid-template-columns: 36px 36px 1fr; gap: 0 .7rem; }
  .nk-news-nav                { grid-template-columns: 1fr; text-align: center !important; gap: .6rem; }
  .nk-news-nav__prev,
  .nk-news-nav__next          { text-align: center !important; }
  .nk-lp-fv                   { min-height: 70vh; }
  .nk-hero-section             { min-height: 520px; }
  .nk-customizer-shortcut      { top: 8px; right: 8px; font-size: 11px; padding: .32rem .65rem; }
  .nk-customizer-shortcut--secondary { top: 44px; }
  .nk-customizer-shortcut--tertiary,
  .nk-customizer-shortcut--admin { top: 80px; }
  .nk-customizer-shortcut--quaternary { top: 116px; }
  .nk-menu-page-cta__btns     { flex-direction: column; align-items: center; }
  .nk-access-page-info__cta   { flex-direction: column; }
  .nk-cta-section__btns       { flex-direction: column; align-items: center; }
  .nk-column-grid             { grid-template-columns: 1fr; }
  .nk-treatment-detail__prices{ grid-template-columns: 1fr; }
  .nk-treatment-detail,
  .nk-staff-profile,
  .nk-column-article          { padding: 1.25rem; }
  .nk-treatment-detail__visual,
  .nk-staff-profile__photo-wrap,
  .nk-treatment-detail__visual img,
  .nk-staff-profile__photo,
  .nk-treatment-detail__placeholder,
  .nk-staff-profile__photo--placeholder { min-height: 300px; }
  .nk-faq-item--dynamic .nk-faq-item__answer { padding-left: 1.35rem; }
}

@media (max-width: 400px) {
  .nk-about-stats__grid { grid-template-columns: 1fr 1fr; }
}

/* ============================================================
   横スクロールビュー（Auto Loop View）
   - スクロール連動を廃止
   - PC: 画面中央に入ったら自動再生。右から左へ初回高速→減速、その後は低速で無限ループ
   - PC: wheelは縦スクロールへ明示的に通し、カーソル位置で詰まる状態を回避
   - SP/reduced-motion: AUTOLOOPを停止し、縦並びカードへ一本化
   ============================================================ */
.nk-horizontal-story-section {
  position: relative;
  overflow: hidden !important;
  background-color: var(--salon-bg);
  padding-top: clamp(4rem, 8vw, 7rem);
  padding-bottom: clamp(3rem, 6vw, 5rem);
}
.nk-horizontal-story-section.nk-anim-target {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
  will-change: auto !important;
}
.nk-horizontal-story-section__intro {
  position: relative;
  z-index: 2;
}
.nk-horizontal-story-section__lead {
  max-width: 760px;
  margin: 1.25rem auto 0;
  color: var(--salon-text-muted);
  line-height: 2;
  text-align: center;
}
.nk-horizontal-story-section__actions {
  position: relative;
  z-index: 4;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: .75rem;
  margin: clamp(1rem, 2vw, 1.45rem) auto 0;
  text-align: center;
}
.nk-horizontal-story-section__link {
  min-width: min(260px, 86vw);
  justify-content: center;
  border-color: rgba(126, 88, 74, .38);
  background: rgba(255,255,255,.82);
  backdrop-filter: blur(10px);
  box-shadow: 0 12px 28px rgba(46,35,34,.08);
}
.nk-horizontal-story-section__link:hover,
.nk-horizontal-story-section__link:focus {
  background: var(--salon-primary);
  color: var(--salon-white);
  border-color: var(--salon-primary);
}
.nk-horizontal-story {
  position: relative;
  margin-top: clamp(2rem, 4vw, 4rem);
  overflow: hidden;
}
.nk-horizontal-story__sticky {
  position: relative;
  min-height: clamp(520px, 74vh, 740px);
  display: grid;
  align-content: center;
  overflow: hidden;
  border-radius: clamp(1.4rem, 3vw, 2.6rem);
  box-shadow: 0 24px 70px rgba(46,35,34,.10);
  background:
    radial-gradient(circle at 16% 18%, rgba(198,115,122,.12), transparent 28%),
    radial-gradient(circle at 84% 74%, rgba(184,150,90,.14), transparent 30%);
}
.nk-horizontal-story__viewport {
  width: 100%;
  overflow: hidden;
  overscroll-behavior: auto;
  touch-action: pan-y;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.nk-horizontal-story-section,
.nk-horizontal-story,
.nk-horizontal-story__sticky,
.nk-horizontal-story__viewport,
.nk-horizontal-story__track {
  overscroll-behavior: auto;
}
.nk-horizontal-story-section {
  touch-action: pan-y;
}
.nk-horizontal-story__track {
  display: flex;
  align-items: stretch;
  gap: clamp(1rem, 2vw, 2rem);
  width: max-content;
  padding: clamp(1.2rem, 3vw, 2.8rem) max(1.5rem, calc((100vw - 1120px) / 2 + 1.5rem));
  will-change: transform;
  transform: translate3d(0,0,0);
}
.nk-horizontal-story.is-autoplay-ready .nk-horizontal-story__track {
  transition: none;
}
.nk-horizontal-story.is-autoplay-active .nk-horizontal-story__track {
  cursor: default;
}
.nk-horizontal-story-card {
  --nk-horizontal-card-image: none;
  --nk-horizontal-card-mobile-image: var(--nk-horizontal-card-image);
  position: relative;
  flex: 0 0 min(78vw, 420px);
  min-height: clamp(390px, 50vh, 540px);
  overflow: hidden;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(232,216,210,.9);
  box-shadow: 0 24px 70px rgba(46,35,34,.12);
  isolation: isolate;
  transform-origin: center center;
}
.nk-horizontal-story.is-autoplay-intro .nk-horizontal-story-card:nth-child(odd) {
  animation: nk-horizontal-intro-float-a 1.2s ease-in-out infinite alternate;
}
.nk-horizontal-story.is-autoplay-intro .nk-horizontal-story-card:nth-child(even) {
  animation: nk-horizontal-intro-float-b 1.2s ease-in-out infinite alternate;
}
@keyframes nk-horizontal-intro-float-a {
  from { transform: translateY(0) rotate(-.5deg); }
  to { transform: translateY(-5px) rotate(.7deg); }
}
@keyframes nk-horizontal-intro-float-b {
  from { transform: translateY(-3px) rotate(.6deg); }
  to { transform: translateY(2px) rotate(-.6deg); }
}
.nk-horizontal-story-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255,255,255,0), rgba(46,35,34,.58));
  z-index: 1;
  pointer-events: none;
}
.nk-horizontal-story-card__link {
  display: grid;
  min-height: inherit;
  color: inherit;
  text-decoration: none;
}
.nk-horizontal-story-card__media {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(135deg, rgba(198,115,122,.22), rgba(184,150,90,.20)),
    var(--nk-horizontal-card-image);
  background-size: cover;
  background-position: center;
  transform: scale(1.02);
  transition: transform .7s ease;
  z-index: 0;
}
.nk-horizontal-story-card:hover .nk-horizontal-story-card__media,
.nk-horizontal-story-card:focus-within .nk-horizontal-story-card__media {
  transform: scale(1.07);
}
.nk-horizontal-story-card__body {
  position: relative;
  z-index: 2;
  align-self: end;
  padding: clamp(1.4rem, 3vw, 2.3rem);
  color: var(--salon-white);
  text-shadow: 0 1px 18px rgba(46,35,34,.28);
}
.nk-horizontal-story-card__meta {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin-bottom: 1rem;
}
.nk-horizontal-story-card__number {
  font-family: var(--salon-font-en);
  font-size: clamp(2.4rem, 5vw, 4.4rem);
  line-height: .8;
  color: rgba(255,255,255,.72);
}
.nk-horizontal-story-card__label {
  font-family: var(--salon-font-en);
  font-size: .78rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255,255,255,.82);
  border-left: 1px solid rgba(255,255,255,.55);
  padding-left: .75rem;
}
.nk-horizontal-story-card__title {
  margin: 0 0 .85rem;
  color: var(--salon-white);
  font-family: var(--salon-font-jp);
  font-size: clamp(1.45rem, 3vw, 2.1rem);
  font-weight: 400;
  line-height: 1.45;
}
.nk-horizontal-story-card__text {
  margin: 0;
  color: rgba(255,255,255,.9);
  font-size: .95rem;
  line-height: 1.9;
}
.nk-horizontal-story__progress {
  width: min(320px, calc(100vw - 3rem));
  height: 1px;
  margin: 0 auto clamp(1.1rem, 2vw, 1.8rem);
  background: rgba(122,96,96,.2);
  overflow: hidden;
}
.nk-horizontal-story__progress span {
  display: block;
  width: 0%;
  height: 100%;
  background: var(--salon-primary);
  transition: none;
}
.nk-horizontal-story.is-autoplay-slow .nk-horizontal-story__progress span {
  opacity: .72;
}
.nk-horizontal-story__hint {
  margin: 0 0 clamp(1rem, 2vw, 1.5rem);
  text-align: center;
  font-family: var(--salon-font-en);
  font-size: .78rem;
  letter-spacing: .22em;
  color: var(--salon-text-muted);
}





/* v1.2.2 横スクロールギャラリー：選択式モーションパターン
   flow = 横に流れるだけ / float = 浮遊 / flip = 反転 / tilt = 傾き / zoom = 寄り引き */
.nk-horizontal-story {
  perspective: 1200px;
}
.nk-horizontal-story-card {
  backface-visibility: visible;
  transform-style: preserve-3d;
}
.nk-horizontal-story.is-horizontal-pattern-flow .nk-horizontal-story-card {
  animation: none;
}
.nk-horizontal-story.is-autoplay-active.is-horizontal-pattern-float .nk-horizontal-story-card {
  animation: nk-horizontal-card-float 4.8s ease-in-out infinite alternate;
}
.nk-horizontal-story.is-autoplay-active.is-horizontal-pattern-flip .nk-horizontal-story-card {
  animation: nk-horizontal-card-flip 7.2s ease-in-out infinite;
}
.nk-horizontal-story.is-autoplay-active.is-horizontal-pattern-tilt .nk-horizontal-story-card {
  animation: nk-horizontal-card-tilt 5.8s ease-in-out infinite alternate;
}
.nk-horizontal-story.is-autoplay-active.is-horizontal-pattern-zoom .nk-horizontal-story-card {
  animation: nk-horizontal-card-zoom 5.2s ease-in-out infinite alternate;
}
.nk-horizontal-story.is-autoplay-active .nk-horizontal-story-card:nth-child(2n) { animation-delay: -.9s; }
.nk-horizontal-story.is-autoplay-active .nk-horizontal-story-card:nth-child(3n) { animation-delay: -1.8s; }
.nk-horizontal-story.is-autoplay-active .nk-horizontal-story-card:nth-child(4n) { animation-delay: -2.6s; }
@keyframes nk-horizontal-card-float {
  0% { transform: translateY(0) rotate(-.35deg); }
  100% { transform: translateY(-12px) rotate(.55deg); }
}
@keyframes nk-horizontal-card-flip {
  0%, 16% { transform: rotateY(0deg) translateY(0); }
  42% { transform: rotateY(180deg) translateY(-8px); }
  68%, 100% { transform: rotateY(360deg) translateY(0); }
}
@keyframes nk-horizontal-card-tilt {
  0% { transform: rotateZ(-1.2deg) rotateY(-3deg) translateY(0); }
  100% { transform: rotateZ(1.2deg) rotateY(3deg) translateY(-7px); }
}
@keyframes nk-horizontal-card-zoom {
  0% { transform: scale(.985); }
  100% { transform: scale(1.025); }
}


/* -------------------------------------------------------------------------
 * Before / After template shortcode
 * ---------------------------------------------------------------------- */
.nk-before-after {
  --nk-ba-bg: rgba(255, 250, 246, .92);
  --nk-ba-border: rgba(174, 122, 132, .20);
  --nk-ba-text: var(--salon-text, #554544);
  --nk-ba-muted: var(--salon-text-muted, #8b7471);
  --nk-ba-accent: var(--salon-primary, #c65d78);
  --nk-ba-radius: 28px;
  width: min(1040px, calc(100% - 2rem));
  margin: clamp(2rem, 5vw, 4.5rem) auto;
  padding: clamp(1rem, 3vw, 2rem);
  background: var(--nk-ba-bg);
  border: 1px solid var(--nk-ba-border);
  border-radius: var(--nk-ba-radius);
  box-shadow: 0 18px 52px rgba(94, 66, 62, .08);
  color: var(--nk-ba-text);
}
.nk-before-after__head {
  text-align: center;
  margin: 0 auto clamp(1rem, 2.4vw, 1.6rem);
  max-width: 720px;
}
.nk-before-after__title {
  margin: 0 0 .55rem;
  color: var(--nk-ba-text);
  font-family: var(--salon-font-jp, inherit);
  font-size: clamp(1.45rem, 3vw, 2.15rem);
  font-weight: 500;
  line-height: 1.45;
}
.nk-before-after__text {
  margin: 0;
  color: var(--nk-ba-muted);
  font-size: clamp(.95rem, 1.4vw, 1.05rem);
  line-height: 1.9;
}
.nk-before-after__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(.75rem, 2vw, 1.25rem);
}
.nk-before-after--stacked .nk-before-after__grid {
  grid-template-columns: 1fr;
}
.nk-before-after__figure {
  position: relative;
  margin: 0;
  overflow: hidden;
  border-radius: calc(var(--nk-ba-radius) - 8px);
  background: #f4ece8;
  border: 1px solid rgba(174, 122, 132, .16);
  aspect-ratio: 4 / 3;
}
.nk-before-after--ratio-1-1 .nk-before-after__figure,
.nk-before-after--ratio-1-1 .nk-before-after__slider { aspect-ratio: 1 / 1; }
.nk-before-after--ratio-3-2 .nk-before-after__figure,
.nk-before-after--ratio-3-2 .nk-before-after__slider { aspect-ratio: 3 / 2; }
.nk-before-after--ratio-16-9 .nk-before-after__figure,
.nk-before-after--ratio-16-9 .nk-before-after__slider { aspect-ratio: 16 / 9; }
.nk-before-after__img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
.nk-before-after__placeholder {
  min-height: 260px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(255,255,255,.72), rgba(221,199,190,.4));
  color: var(--nk-ba-muted);
  text-align: center;
  line-height: 1.8;
  letter-spacing: .08em;
}
.nk-before-after__figure figcaption,
.nk-before-after__badge {
  position: absolute;
  left: 1rem;
  top: 1rem;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 84px;
  padding: .42rem .8rem;
  border-radius: 999px;
  background: rgba(255,255,255,.88);
  color: var(--nk-ba-text);
  font-family: var(--salon-font-en, inherit);
  font-size: .76rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  box-shadow: 0 6px 18px rgba(58, 45, 43, .10);
}
.nk-before-after__figure--after figcaption,
.nk-before-after__badge--after {
  left: auto;
  right: 1rem;
  background: rgba(198, 93, 120, .92);
  color: #fff;
}
.nk-before-after__slider {
  --nk-ba-pos: 50%;
  position: relative;
  overflow: hidden;
  width: 100%;
  border-radius: calc(var(--nk-ba-radius) - 8px);
  background: #f4ece8;
  border: 1px solid rgba(174, 122, 132, .16);
  aspect-ratio: 4 / 3;
  cursor: ew-resize;
  user-select: none;
}
.nk-before-after__slider .nk-before-after__image {
  position: absolute;
  inset: 0;
}
.nk-before-after__slider .nk-before-after__image--after {
  clip-path: inset(0 0 0 var(--nk-ba-pos));
}
.nk-before-after__divider {
  position: absolute;
  z-index: 4;
  top: 0;
  bottom: 0;
  left: var(--nk-ba-pos);
  width: 2px;
  background: rgba(255,255,255,.95);
  box-shadow: 0 0 0 1px rgba(112, 84, 79, .12), 0 0 24px rgba(80, 54, 50, .18);
  pointer-events: none;
}
.nk-before-after__divider::before {
  content: "↔";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 42px;
  height: 42px;
  transform: translate(-50%, -50%);
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(255,255,255,.95);
  color: var(--nk-ba-accent);
  font-size: .9rem;
  box-shadow: 0 8px 22px rgba(58,45,43,.16);
}
.nk-before-after__range {
  position: absolute;
  z-index: 5;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: ew-resize;
  touch-action: pan-y;
}
.nk-before-after__action {
  margin: 1.4rem 0 0;
  text-align: center;
}
.nk-before-after__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .8rem 1.4rem;
  border-radius: 999px;
  background: var(--nk-ba-accent);
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  box-shadow: 0 10px 26px rgba(198,93,120,.22);
}
.nk-before-after__button:hover,
.nk-before-after__button:focus {
  color: #fff;
  transform: translateY(-1px);
}
@media (max-width: 767px) {
  .nk-before-after {
    width: min(100% - 1rem, 100%);
    padding: .75rem;
    border-radius: 22px;
  }
  .nk-before-after__grid {
    grid-template-columns: 1fr;
  }
  .nk-before-after__figure,
  .nk-before-after__slider {
    border-radius: 18px;
  }
  .nk-before-after__figure figcaption,
  .nk-before-after__badge {
    left: .75rem;
    top: .75rem;
    min-width: 74px;
    font-size: .7rem;
  }
  .nk-before-after__figure--after figcaption,
  .nk-before-after__badge--after {
    left: auto;
    right: .75rem;
  }
}

/* ============================================================
   Footer local SNS icons (child theme keeps icons in-theme)
   ============================================================ */
body.salon-theme .nk-footer__sns-item a {
  overflow: hidden;
}
body.salon-theme .nk-footer__sns-icon {
  display: block;
  width: 56%;
  height: 56%;
  object-fit: contain;
}
body.salon-theme .nk-footer__sns-fallback {
  font-size: .92em;
  line-height: 1;
}

/* v1.13.6 reservation action buttons */
.nk-access-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin-top: 1.5rem;
}
.nk-access-actions .nk-btn { min-width: 12em; }
.nk-btn--line:hover,
.nk-access-actions .nk-btn--line:hover {
  background: #06c755;
  border-color: #06c755;
  color: #fff;
}
@media (max-width: 767px) {
  .nk-access-actions { flex-direction: column; }
  .nk-access-actions .nk-btn { width: 100%; }
}

/* ============================================================
   v1.15.0 AUTOLOOP smartphone layout
   ------------------------------------------------------------
   Smartphones/tablets use one simple vertical card list.
   This is the only mobile AUTOLOOP override.
   ============================================================ */
@media (max-width: 799px), (prefers-reduced-motion: reduce) {
  body.salon-theme .nk-horizontal-story-section,
  body.salon-theme .nk-salon-front-page > .nk-horizontal-story-section.nk-front-section {
    overflow: visible !important;
    padding-top: clamp(3rem, 10vw, 4.5rem);
    padding-bottom: clamp(3rem, 10vw, 4.5rem);
  }
  body.salon-theme .nk-horizontal-story {
    overflow: visible !important;
    margin-top: clamp(1.5rem, 6vw, 2.5rem);
  }
  body.salon-theme .nk-horizontal-story__sticky {
    display: block;
    min-height: 0 !important;
    overflow: visible !important;
    border-radius: 1.25rem;
    background: transparent;
    box-shadow: none;
  }
  body.salon-theme .nk-horizontal-story__viewport {
    overflow: visible !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
    touch-action: pan-y;
  }
  body.salon-theme .nk-horizontal-story__track {
    display: grid !important;
    grid-template-columns: 1fr;
    width: auto !important;
    max-width: min(100%, 560px);
    margin: 0 auto;
    padding: 0 1rem !important;
    gap: 1rem;
    transform: none !important;
    will-change: auto !important;
  }
  body.salon-theme .nk-horizontal-story-card,
  body.salon-theme .nk-horizontal-story-card[data-nk-horizontal-clone="1"] {
    width: 100% !important;
    flex: none !important;
    min-height: clamp(300px, 78vw, 390px) !important;
    scroll-snap-align: unset !important;
  }
  body.salon-theme .nk-horizontal-story-card[data-nk-horizontal-clone="1"] {
    display: none !important;
  }

  body.salon-theme .nk-horizontal-story-card__media {
    background-image:
      linear-gradient(135deg, rgba(198,115,122,.18), rgba(184,150,90,.18)),
      var(--nk-horizontal-card-mobile-image, var(--nk-horizontal-card-image));
    background-position: center;
  }
  body.salon-theme .nk-horizontal-story-card__body {
    padding: 1.35rem;
  }
  body.salon-theme .nk-horizontal-story-card__number {
    font-size: clamp(2.2rem, 12vw, 3.2rem);
  }
  body.salon-theme .nk-horizontal-story-card__title {
    font-size: clamp(1.25rem, 5.5vw, 1.65rem);
  }
  body.salon-theme .nk-horizontal-story-card__text {
    font-size: .92rem;
    line-height: 1.75;
  }
  body.salon-theme .nk-horizontal-story__hint,
  body.salon-theme .nk-horizontal-story__progress {
    display: none !important;
  }
}


.nk-btn--disabled,
.nk-btn[aria-disabled="true"] {
  pointer-events: none;
  opacity: .62;
  cursor: not-allowed;
}


/* v1.16.2: disabled common reservation buttons for Customizer preview */
.nk-btn.is-disabled,
.nk-btn[aria-disabled="true"] {
  opacity: .55;
  cursor: not-allowed;
  pointer-events: none;
}


/* LINE QR popup: PC shows QR, smartphone keeps direct LINE link. */
.nk-line-qr-trigger {
  cursor: pointer;
}
.nk-line-qr-modal {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
}
.nk-line-qr-modal.is-open {
  display: flex;
}
.nk-line-qr-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(32, 24, 25, .55);
  backdrop-filter: blur(2px);
}
.nk-line-qr-modal__dialog {
  position: relative;
  z-index: 1;
  width: min(360px, calc(100vw - 2rem));
  padding: 2rem 1.6rem 1.7rem;
  border-radius: 20px;
  background: #fff;
  color: var(--salon-text, #332728);
  text-align: center;
  box-shadow: 0 24px 60px rgba(40, 24, 28, .24);
}
.nk-line-qr-modal__close {
  position: absolute;
  top: .65rem;
  right: .75rem;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 999px;
  background: rgba(0,0,0,.05);
  color: #333;
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
}
.nk-line-qr-modal__title {
  margin: 0 0 .9rem;
  font-family: var(--salon-font-jp, inherit);
  font-size: 1.15rem;
  font-weight: 600;
  letter-spacing: .08em;
}
.nk-line-qr-modal__image {
  display: block;
  width: min(220px, 75vw);
  height: auto;
  margin: 0 auto 1rem;
  padding: 12px;
  border: 1px solid var(--salon-border, #eadbdb);
  border-radius: 14px;
  background: #fff;
}
.nk-line-qr-modal__lead {
  margin: 0;
  color: var(--salon-text-muted, #7d6c6c);
  font-size: .88rem;
  line-height: 1.8;
}
@media (max-width: 767px) {
  .nk-line-qr-modal { display: none !important; }
}

/* v1.16.5: Header reservation buttons controlled by Customizer checkboxes */
body.salon-theme .site-header .nk-salon-header-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .65rem;
  margin-left: auto;
  margin-right: 1rem;
  flex: 0 0 auto;
}
body.salon-theme .site-header .nk-salon-header-actions--count-1 {
  min-width: 178px;
  justify-content: center;
}
body.salon-theme .site-header .nk-salon-header-actions--count-2 {
  min-width: 300px;
  justify-content: center;
}
body.salon-theme .site-header .nk-salon-header-actions__btn {
  min-height: 42px;
  min-width: 138px;
  padding: .72rem 1.25rem;
  border-radius: 8px;
  border: 1px solid var(--salon-primary, #d9a0a5);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1.1;
  text-decoration: none;
  font-family: var(--salon-font-jp, inherit);
  font-size: .86rem;
  font-weight: 700;
  letter-spacing: .08em;
  white-space: nowrap;
  transition: background .2s ease, color .2s ease, border-color .2s ease, opacity .2s ease;
}
body.salon-theme .site-header .nk-salon-header-actions--count-1 .nk-salon-header-actions__btn {
  min-width: 168px;
}
body.salon-theme .site-header .nk-salon-header-actions__btn--web {
  background: var(--salon-primary, #d9a0a5);
  color: #fff;
}
body.salon-theme .site-header .nk-salon-header-actions__btn--web:hover {
  background: var(--salon-primary-dark, #b76d75);
  border-color: var(--salon-primary-dark, #b76d75);
  color: #fff;
}
body.salon-theme .site-header .nk-salon-header-actions__btn--line {
  background: rgba(255,255,255,.72);
  color: var(--salon-primary-dark, #b76d75);
}
body.salon-theme .site-header .nk-salon-header-actions__btn--line:hover {
  background: var(--salon-primary, #d9a0a5);
  color: #fff;
}
body.salon-theme .site-header.nk-salon-header-actions-empty [data-nk-salon-old-header-cta-hidden="1"] {
  display: none !important;
}
@media (max-width: 767px) {
  body.salon-theme .site-header .nk-salon-header-actions {
    gap: .45rem;
    margin-right: .6rem;
    min-width: 0;
  }
  body.salon-theme .site-header .nk-salon-header-actions--count-1,
  body.salon-theme .site-header .nk-salon-header-actions--count-2 {
    min-width: 0;
  }
  body.salon-theme .site-header .nk-salon-header-actions__btn {
    min-width: 112px;
    min-height: 38px;
    padding: .58rem .8rem;
    font-size: .76rem;
    letter-spacing: .04em;
  }
  body.salon-theme .site-header .nk-salon-header-actions--count-2 .nk-salon-header-actions__btn {
    min-width: 96px;
  }
}
@media (max-width: 430px) {
  body.salon-theme .site-header .nk-salon-header-actions__btn {
    min-width: 96px;
    padding-left: .65rem;
    padding-right: .65rem;
    font-size: .72rem;
  }
  body.salon-theme .site-header .nk-salon-header-actions--count-2 {
    gap: .35rem;
  }
  body.salon-theme .site-header .nk-salon-header-actions--count-2 .nk-salon-header-actions__btn {
    min-width: 84px;
  }
}


/* Access custom HTML under map */
.nk-access-map__custom-html,
.nk-access-page-map__custom-html {
    margin-top: 20px;
    text-align: center;
}
.nk-access-map__custom-html a,
.nk-access-page-map__custom-html a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    max-width: 100%;
}
@media (max-width: 767px) {
    .nk-access-map__custom-html,
    .nk-access-page-map__custom-html {
        margin-top: 16px;
    }
    .nk-access-map__custom-html a,
    .nk-access-page-map__custom-html a {
        width: 100%;
        box-sizing: border-box;
    }
}


/* -------------------------------------------------------------------------
 * Restaurant child theme additions v1.0.0
 * ---------------------------------------------------------------------- */
body.restaurant-theme {
  --salon-primary: #9b5a2e;
  --salon-primary-dark: #6f3d1f;
  --salon-accent: #d9a441;
  --salon-cream: #fff7eb;
}
body.restaurant-theme .nk-menu-page-card__cat,
body.restaurant-theme .nk-treatment-detail__cat {
  letter-spacing: .08em;
}
.nk-restaurant-menu-badges,
.nk-restaurant-menu-tags {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin: .75rem 0 1rem;
}
.nk-restaurant-menu-badge,
.nk-restaurant-menu-tag {
  display: inline-flex;
  align-items: center;
  border: 1px solid rgba(111, 61, 31, .18);
  background: rgba(255, 247, 235, .9);
  color: #6f3d1f;
  border-radius: 999px;
  padding: .34rem .72rem;
  font-size: .84rem;
  font-weight: 700;
  line-height: 1.3;
}
.nk-restaurant-menu-badge--recommend {
  background: rgba(217, 164, 65, .16);
  border-color: rgba(217, 164, 65, .38);
}
.nk-restaurant-menu-detail-list {
  display: grid;
  gap: .65rem;
  margin: 1rem 0 1.35rem;
  padding: 1rem;
  border-radius: 18px;
  background: rgba(255, 247, 235, .65);
  border: 1px solid rgba(111, 61, 31, .12);
}
.nk-restaurant-menu-detail-list div {
  display: grid;
  grid-template-columns: minmax(7em, 10em) 1fr;
  gap: .75rem;
}
.nk-restaurant-menu-detail-list dt {
  color: #6f3d1f;
  font-weight: 800;
}
.nk-restaurant-menu-detail-list dd {
  margin: 0;
}
@media (max-width: 767px) {
  .nk-restaurant-menu-detail-list div {
    grid-template-columns: 1fr;
    gap: .2rem;
  }
}


/*
 * v1.1.0: Restaurant-first redesign
 * - Hero redesigned to emphasize menu highlights and interior atmosphere.
 * - Gallery/menu labels updated for restaurant use.
 * - Added warm dining visual language and glass-panel showcase.
 */
.nk-hero-section{
  position:relative;
  overflow:hidden;
}
.nk-hero-section::after{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 20% 20%, rgba(255,214,152,.14), transparent 38%), radial-gradient(circle at 80% 30%, rgba(255,255,255,.09), transparent 26%), linear-gradient(135deg, rgba(23,18,15,.68), rgba(23,18,15,.42));
  pointer-events:none;
}
.nk-restaurant-hero__grid{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(320px,.95fr);
  gap:clamp(24px,4vw,56px);
  align-items:end;
  min-height:min(88vh,840px);
  padding:clamp(56px,9vw,120px) 0 clamp(38px,6vw,72px);
}
.nk-restaurant-hero__copy{
  color:#fff;
  max-width:700px;
  transform:translate3d(var(--nk-hero-copy-offset-x, 0px), var(--nk-hero-copy-offset-y, 0px), 0);
}
.nk-restaurant-hero__copy .hero-eyebrow,
.nk-restaurant-hero__copy .nk-hero__eyebrow{
  margin:0 0 14px;
  font-size:.92rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:#f7d8ad;
}
.nk-restaurant-hero__copy .hero-title,
.nk-restaurant-hero__copy .nk-hero__title{
  margin:0;
  font-size:clamp(2.4rem,5.3vw,4.9rem);
  line-height:1.08;
  letter-spacing:.02em;
  color:#fff;
  text-shadow:0 10px 28px rgba(0,0,0,.22);
}
.nk-restaurant-hero__copy .hero-sub,
.nk-restaurant-hero__copy .nk-hero__sub{
  margin:1.25rem 0 0;
  font-size:clamp(1rem,1.5vw,1.12rem);
  line-height:1.95;
  color:rgba(255,255,255,.92);
  max-width:42rem;
}
.nk-restaurant-hero__chips{
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  padding:0;
  margin:1.5rem 0 0;
}
.nk-restaurant-hero__chips li{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  min-height:40px;
  padding:.62rem .95rem;
  border:1px solid rgba(255,255,255,.2);
  border-radius:999px;
  background:rgba(255,255,255,.12);
  box-shadow:0 10px 30px rgba(0,0,0,.12);
  color:#fff7ed;
  font-size:.92rem;
  backdrop-filter:blur(8px);
}
.nk-restaurant-hero__actions{
  margin-top:1.8rem;
  display:flex;
  gap:1rem;
  flex-wrap:wrap;
}
.nk-btn--ghost{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.95rem 1.4rem;
  border-radius:999px;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.32);
  color:#fff;
  text-decoration:none;
  transition:transform .25s ease, background .25s ease;
  backdrop-filter:blur(8px);
}
.nk-btn--ghost:hover{transform:translateY(-2px);background:rgba(255,255,255,.18);}
.nk-restaurant-hero__showcase{
  position:relative;
  z-index:2;
  display:grid;
  gap:18px;
}
.nk-restaurant-hero__visual-card,
.nk-restaurant-hero__menu-panel{
  border-radius:28px;
  padding:24px;
  background:rgba(21,17,14,.58);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 24px 80px rgba(0,0,0,.28);
  backdrop-filter:blur(14px);
  color:#fff;
}
.nk-restaurant-hero__visual-card{
  min-height:220px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(20,15,12,.68));
}
.nk-restaurant-hero__panel-label{
  display:inline-flex;
  align-items:center;
  align-self:flex-start;
  margin-bottom:auto;
  padding:.38rem .72rem;
  border-radius:999px;
  background:rgba(247,216,173,.18);
  border:1px solid rgba(247,216,173,.35);
  color:#f7d8ad;
  font-size:.78rem;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.nk-restaurant-hero__visual-card strong,
.nk-restaurant-hero__menu-head strong{
  display:block;
  font-size:1.28rem;
  line-height:1.4;
}
.nk-restaurant-hero__visual-card p{
  margin:.72rem 0 0;
  color:rgba(255,255,255,.86);
  line-height:1.8;
}
.nk-restaurant-hero__menu-head span{
  display:block;
  margin-bottom:.45rem;
  color:#f7d8ad;
  font-size:.78rem;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.nk-restaurant-hero__menu-list{
  list-style:none;
  padding:0;
  margin:1.15rem 0 0;
  display:grid;
  gap:14px;
}
.nk-restaurant-hero__menu-list li{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:12px;
  align-items:flex-start;
  padding:12px 0;
  border-top:1px solid rgba(255,255,255,.1);
}
.nk-restaurant-hero__menu-list li:first-child{border-top:0;padding-top:0;}
.nk-restaurant-hero__menu-icon{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:14px;
  background:rgba(255,255,255,.1);
  font-size:1.18rem;
}
.nk-restaurant-hero__menu-list strong{font-size:1rem;color:#fff;}
.nk-restaurant-hero__menu-list small{
  display:block;
  margin-top:.25rem;
  color:rgba(255,255,255,.72);
  line-height:1.6;
}
.nk-restaurant-hero__menu-price{
  color:#f7d8ad;
  font-weight:700;
  white-space:nowrap;
  font-feature-settings:"pnum";
}
.nk-horizontal-story__hint{
  color:#6d584e;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.nk-menu-section .nk-section-title,
.nk-horizontal-story-section .nk-section-title,
.nk-concept-section__title{
  letter-spacing:.02em;
}
@media (max-width: 960px){
  .nk-restaurant-hero__grid{
    grid-template-columns:1fr;
    align-items:start;
    min-height:auto;
    padding:72px 0 46px;
  }
  .nk-restaurant-hero__showcase{max-width:720px;}
}
@media (max-width: 640px){
  .nk-restaurant-hero__copy .hero-title,
  .nk-restaurant-hero__copy .nk-hero__title{font-size:clamp(2rem,9vw,3.1rem);}
  .nk-restaurant-hero__chips li{font-size:.84rem;min-height:36px;padding:.56rem .8rem;}
  .nk-restaurant-hero__visual-card,
  .nk-restaurant-hero__menu-panel{padding:20px;border-radius:22px;}
  .nk-restaurant-hero__menu-list li{grid-template-columns:36px 1fr;}
  .nk-restaurant-hero__menu-price{grid-column:2;justify-self:start;margin-top:-4px;}
}

/* v1.2.1: generated WEBP demo images packaged for initial onboarding preview. */


/*
 * v1.2.1: 人気メニューカード改修
 * - 長方形カード化
 * - 画像を上部で大きく表示
 * - 詳細テキストを下部に整理
 * - トップカード上の提供目安を非表示
 */
.nk-menu-grid--post-source{
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:clamp(1.4rem,2.5vw,2.2rem);
  align-items:stretch;
}
.nk-menu-grid--post-source .nk-menu-card.nk-menu-card--rect{
  display:flex;
  flex-direction:column;
  padding:0;
  text-align:left;
  overflow:hidden;
  border-radius:26px;
  border:1px solid rgba(111,78,55,.16);
  background:#fffaf3 !important;
  background-image:none !important;
  box-shadow:0 18px 50px rgba(53,34,22,.10);
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.nk-menu-grid--post-source .nk-menu-card.nk-menu-card--rect::before,
.nk-menu-grid--post-source .nk-menu-card.nk-menu-card--rect::after{
  display:none !important;
}
.nk-menu-grid--post-source .nk-menu-card.nk-menu-card--rect:hover{
  transform:translateY(-4px);
  box-shadow:0 28px 70px rgba(53,34,22,.16);
  border-color:rgba(111,78,55,.28);
}
.nk-menu-grid--post-source .nk-menu-card__media{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:16/10;
  min-height:220px;
  background-color:#e8dccd;
  background-image:var(--nk-menu-card-bg-image, none);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  overflow:hidden;
}
.nk-menu-grid--post-source .nk-menu-card__media::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,0) 55%, rgba(30,20,14,.28) 100%);
  pointer-events:none;
}
.nk-menu-grid--post-source .nk-menu-card__media:not([style]){
  background:linear-gradient(135deg,#efe4d5,#d8c0a7);
}
.nk-menu-grid--post-source .nk-menu-card__icon{
  position:absolute;
  left:16px;
  top:16px;
  z-index:2;
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  margin:0;
  border-radius:999px;
  background:rgba(255,255,255,.88);
  border:1px solid rgba(255,255,255,.72);
  box-shadow:0 12px 28px rgba(0,0,0,.18);
  font-size:1.35rem;
  line-height:1;
}
.nk-menu-grid--post-source .nk-menu-card__body{
  display:flex;
  flex-direction:column;
  gap:.75rem;
  padding:1.35rem 1.35rem 1.45rem;
  min-height:210px;
}
.nk-menu-grid--post-source .nk-menu-card__name{
  margin:0;
  font-size:clamp(1.1rem,1.8vw,1.35rem);
  line-height:1.45;
  font-weight:600;
  letter-spacing:.02em;
  color:#2d2019;
}
.nk-menu-grid--post-source .nk-menu-card__name a{
  color:inherit;
  text-decoration:none;
}
.nk-menu-grid--post-source .nk-menu-card__name a:hover{
  text-decoration:underline;
  text-underline-offset:.18em;
}
.nk-menu-grid--post-source .nk-menu-card__desc{
  margin:0;
  color:#6d584e;
  font-size:.92rem;
  line-height:1.85;
}
.nk-menu-grid--post-source .nk-menu-card__price{
  margin:auto 0 0;
  justify-content:flex-start;
  gap:.65rem;
  font-size:1.05rem;
  color:#8a4b2f;
}
.nk-menu-grid--post-source .nk-menu-card__price-main{
  font-size:1.22rem;
  font-weight:800;
  letter-spacing:.02em;
}
.nk-menu-grid--post-source .nk-menu-card__first{
  background:rgba(138,75,47,.09);
  color:#8a4b2f;
  border-radius:999px;
  padding:.25rem .65rem;
  font-size:.82rem;
}
.nk-menu-grid--post-source .nk-menu-card__price small,
.nk-menu-grid--post-source .nk-menu-card__duration{
  display:none !important;
}

/* v1.3.0: Ensure OUR SERVICES card images always render after Customizer/editor refactors. */
.nk-menu-grid--post-source .nk-menu-card__media[data-has-image="1"]{
  background-size:cover !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
}
@media (max-width:640px){
  .nk-menu-grid--post-source{
    grid-template-columns:1fr;
  }
  .nk-menu-grid--post-source .nk-menu-card__media{
    min-height:200px;
    aspect-ratio:16/11;
  }
  .nk-menu-grid--post-source .nk-menu-card__body{
    min-height:auto;
    padding:1.15rem 1.15rem 1.3rem;
  }
}


/* v1.2.3: Restaurant CTA cleanup. Prevents old beauty/salon CTA visual impression. */
.nk-cta-section{
  position:relative;
  background:
    radial-gradient(circle at 18% 20%, rgba(245,185,94,.20), transparent 32%),
    linear-gradient(135deg, #261810 0%, #4b2418 48%, #1f1611 100%);
}
.nk-cta-section::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(0,0,0,.20), rgba(255,255,255,.05), rgba(0,0,0,.18));
  pointer-events:none;
}
.nk-cta-section > .container{
  position:relative;
  z-index:1;
}
.nk-cta-section__eyebrow{color:#f7d8ad;}
.nk-cta-section__sub{color:rgba(255,247,237,.78);}


/* v1.2.5: Front-end edit shortcut reliability fixes. */
body.logged-in .nk-hero-section,
body.logged-in .nk-section,
body.logged-in .nk-front-section,
body.logged-in .nk-ticker-bar,
body.logged-in .nk-cta-section,
body.logged-in .nk-access-section,
body.logged-in .nk-front-page-block {
  position: relative;
}
body.logged-in .nk-customizer-shortcut {
  z-index: 2147483000 !important;
  pointer-events: auto !important;
  cursor: pointer !important;
  user-select: none;
  white-space: nowrap;
}
body.logged-in .nk-customizer-shortcut:focus-visible {
  outline: 3px solid rgba(255,255,255,.95);
  outline-offset: 2px;
}
body.logged-in .nk-customizer-shortcut::before {
  content: '';
  position: absolute;
  inset: -6px;
  border-radius: inherit;
}
body.logged-in .nk-customizer-shortcut--admin {
  background: rgba(31, 80, 104, .94);
}


/* ============================================================
   v1.2.8 Responsive Design Fix
   ------------------------------------------------------------
   スマホ表示でPCレイアウトを縮小するのではなく、画像・文字・余白・カードを
   スマホ専用に再設計するための最終上書き。Hero、メニュー、ギャラリー、CTA、
   下層Heroで横はみ出し・文字肥大・画像見切れを抑制する。
   ============================================================ */
body.salon-theme {
  overflow-x: hidden;
  -webkit-text-size-adjust: 100%;
}
body.salon-theme img,
body.salon-theme video,
body.salon-theme iframe {
  max-width: 100%;
}
body.salon-theme .container {
  width: min(100% - clamp(28px, 5vw, 56px), 1180px);
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}
body.salon-theme .nk-salon-front-page {
  overflow-x: clip;
}
body.salon-theme .nk-front-section,
body.salon-theme .nk-section {
  padding-top: clamp(3.5rem, 7vw, 6rem);
  padding-bottom: clamp(3.5rem, 7vw, 6rem);
}
body.salon-theme .nk-section-header {
  margin-bottom: clamp(1.8rem, 5vw, 3.2rem);
}
body.salon-theme .nk-section-header .nk-eyebrow {
  font-size: clamp(.78rem, 2vw, 1rem);
  letter-spacing: clamp(.12em, 1vw, .26em);
}
body.salon-theme .nk-section-header h2,
body.salon-theme .nk-section-header .nk-section-title {
  font-size: clamp(1.35rem, 4vw, 2rem);
  line-height: 1.45;
}

/* Hero: desktop/tablet baseline */
body.salon-theme .nk-hero-section {
  min-height: clamp(520px, 78vh, 840px);
  background-position: center center;
}
body.salon-theme .nk-restaurant-hero__grid {
  width: 100%;
  max-width: 100%;
  align-items: center;
  grid-template-columns: minmax(0, 1.05fr) minmax(300px, .92fr);
  gap: clamp(20px, 4vw, 56px);
}
body.salon-theme .nk-restaurant-hero__copy,
body.salon-theme .nk-restaurant-hero__showcase {
  min-width: 0;
}
body.salon-theme .nk-restaurant-hero__copy .hero-title,
body.salon-theme .nk-restaurant-hero__copy .nk-hero__title {
  max-width: 12em;
  overflow-wrap: anywhere;
}
body.salon-theme .nk-restaurant-hero__copy .hero-sub,
body.salon-theme .nk-restaurant-hero__copy .nk-hero__sub {
  overflow-wrap: anywhere;
}
body.salon-theme .nk-restaurant-hero__actions .nk-btn,
body.salon-theme .nk-cta-section__btns .nk-btn,
body.salon-theme .nk-access-actions .nk-btn {
  min-height: 44px;
  box-sizing: border-box;
}

/* Menu cards: image-first cards */
body.salon-theme .nk-menu-grid {
  align-items: stretch;
}
body.salon-theme .nk-menu-card__media {
  aspect-ratio: 16 / 10;
  background-size: cover;
  background-position: center center;
}
body.salon-theme .nk-menu-card__body {
  min-width: 0;
}
body.salon-theme .nk-menu-card__name,
body.salon-theme .nk-menu-card__desc,
body.salon-theme .nk-menu-card__price {
  overflow-wrap: anywhere;
}

/* Medium tablet */
@media (max-width: 1024px) {
  body.salon-theme .nk-restaurant-hero__grid {
    grid-template-columns: 1fr;
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
    align-items: start;
    min-height: auto !important;
    padding-top: clamp(82px, 12vw, 112px);
    padding-bottom: clamp(42px, 8vw, 70px);
  }
  body.salon-theme .nk-restaurant-hero__copy {
    max-width: 680px;
  }
  body.salon-theme .nk-restaurant-hero__copy .hero-title,
  body.salon-theme .nk-restaurant-hero__copy .nk-hero__title {
    max-width: 100%;
    font-size: clamp(2.2rem, 7vw, 4rem);
  }
  body.salon-theme .nk-restaurant-hero__showcase {
    width: 100%;
    max-width: 680px;
  }
}

/* Smartphone: actual responsive layout */
@media (max-width: 767px) {
  body.salon-theme .container {
    width: min(100% - 28px, 100%);
  }
  body.salon-theme .nk-front-section,
  body.salon-theme .nk-section {
    padding-top: clamp(2.8rem, 12vw, 4.2rem);
    padding-bottom: clamp(2.8rem, 12vw, 4.2rem);
  }
  body.salon-theme .nk-hero-section,
  body.salon-theme .hero-section {
    min-height: auto !important;
    height: auto !important;
    background-size: cover;
    background-position: center top;
  }
  body.salon-theme .nk-hero-section--image {
    background-position: center top !important;
  }
  body.salon-theme .nk-hero-slideshow .nk-hero-slide {
    background-position: center top !important;
  }
  body.salon-theme .nk-hero-section::after {
    background:
      linear-gradient(180deg, rgba(23,18,15,.72) 0%, rgba(23,18,15,.50) 46%, rgba(23,18,15,.74) 100%),
      radial-gradient(circle at 50% 18%, rgba(255,214,152,.13), transparent 42%);
  }
  body.salon-theme .nk-restaurant-hero__grid {
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
    gap: 18px;
    min-height: auto !important;
    padding-top: clamp(74px, 18vw, 98px) !important;
    padding-bottom: clamp(28px, 10vw, 48px) !important;
  }
  body.salon-theme .nk-restaurant-hero__copy {
    width: 100%;
    max-width: none;
  }
  body.salon-theme .nk-restaurant-hero__copy .hero-eyebrow,
  body.salon-theme .nk-restaurant-hero__copy .nk-hero__eyebrow,
  body.salon-theme .hero-eyebrow,
  body.salon-theme .nk-hero__eyebrow {
    margin-bottom: .55rem;
    font-size: clamp(.72rem, 3.1vw, .86rem) !important;
    line-height: 1.5;
    letter-spacing: .14em !important;
  }
  body.salon-theme .nk-restaurant-hero__copy .hero-title,
  body.salon-theme .nk-restaurant-hero__copy .nk-hero__title,
  body.salon-theme .hero-title,
  body.salon-theme .nk-hero__title {
    max-width: 100%;
    font-size: clamp(1.72rem, 8.8vw, 2.58rem) !important;
    line-height: 1.18 !important;
    letter-spacing: .015em !important;
    text-wrap: balance;
  }
  body.salon-theme .nk-restaurant-hero__copy .hero-sub,
  body.salon-theme .nk-restaurant-hero__copy .nk-hero__sub,
  body.salon-theme .hero-sub,
  body.salon-theme .nk-hero__sub {
    margin-top: .9rem !important;
    font-size: clamp(.88rem, 3.65vw, 1rem) !important;
    line-height: 1.72 !important;
    letter-spacing: .02em !important;
  }
  body.salon-theme .nk-restaurant-hero__chips {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 1rem;
  }
  body.salon-theme .nk-restaurant-hero__chips li {
    justify-content: center;
    min-width: 0;
    min-height: 34px;
    padding: .48rem .58rem;
    font-size: clamp(.72rem, 3.1vw, .82rem);
    line-height: 1.35;
    text-align: center;
  }
  body.salon-theme .nk-restaurant-hero__actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    margin-top: 1.1rem;
  }
  body.salon-theme .nk-restaurant-hero__actions .nk-btn {
    width: 100%;
    justify-content: center;
    padding: .82rem 1rem;
    font-size: .92rem;
  }
  body.salon-theme .nk-restaurant-hero__showcase {
    width: 100%;
    max-width: none;
    gap: 12px;
  }
  body.salon-theme .nk-restaurant-hero__visual-card,
  body.salon-theme .nk-restaurant-hero__menu-panel {
    width: 100%;
    box-sizing: border-box;
    border-radius: 18px;
    padding: 16px;
    backdrop-filter: blur(10px);
    box-shadow: 0 14px 34px rgba(0,0,0,.20);
  }
  body.salon-theme .nk-restaurant-hero__visual-card {
    min-height: 132px;
  }
  body.salon-theme .nk-restaurant-hero__panel-label,
  body.salon-theme .nk-restaurant-hero__menu-head span {
    font-size: .68rem;
    letter-spacing: .12em;
  }
  body.salon-theme .nk-restaurant-hero__visual-card strong,
  body.salon-theme .nk-restaurant-hero__menu-head strong {
    font-size: clamp(1rem, 4.5vw, 1.18rem);
    line-height: 1.45;
  }
  body.salon-theme .nk-restaurant-hero__visual-card p {
    font-size: .86rem;
    line-height: 1.7;
  }
  body.salon-theme .nk-restaurant-hero__menu-list {
    gap: 8px;
    margin-top: .8rem;
  }
  body.salon-theme .nk-restaurant-hero__menu-list li {
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 10px;
    padding: 10px 0;
  }
  body.salon-theme .nk-restaurant-hero__menu-icon {
    width: 34px;
    height: 34px;
    border-radius: 12px;
    font-size: 1rem;
  }
  body.salon-theme .nk-restaurant-hero__menu-list strong {
    font-size: .92rem;
    line-height: 1.45;
  }
  body.salon-theme .nk-restaurant-hero__menu-list small {
    font-size: .78rem;
    line-height: 1.55;
  }
  body.salon-theme .nk-restaurant-hero__menu-price {
    grid-column: 2;
    justify-self: start;
    margin-top: -2px;
    font-size: .9rem;
  }

  /* Section/card typography */
  body.salon-theme .nk-section-header {
    margin-bottom: 1.8rem;
  }
  body.salon-theme .nk-section-header h2,
  body.salon-theme .nk-section-header .nk-section-title,
  body.salon-theme .nk-concept-section__title {
    font-size: clamp(1.32rem, 6vw, 1.75rem) !important;
    line-height: 1.55;
    letter-spacing: .03em;
  }
  body.salon-theme .nk-concept-section__lead,
  body.salon-theme .nk-horizontal-story-section__lead,
  body.salon-theme .nk-front-feature-card__text,
  body.salon-theme .nk-review-card__text {
    font-size: .9rem;
    line-height: 1.85;
  }

  /* Menu cards: smartphone */
  body.salon-theme .nk-menu-grid {
    grid-template-columns: 1fr !important;
    gap: 1rem !important;
  }
  body.salon-theme .nk-menu-card {
    border-radius: 18px !important;
    box-shadow: 0 12px 28px rgba(39,25,16,.08);
  }
  body.salon-theme .nk-menu-card:hover {
    transform: none;
  }
  body.salon-theme .nk-menu-card__media {
    aspect-ratio: 16 / 9 !important;
    min-height: 0 !important;
    background-size: cover !important;
    background-position: center center !important;
  }
  body.salon-theme .nk-menu-card__icon {
    width: 38px;
    height: 38px;
    top: 12px;
    left: 12px;
    font-size: 1.1rem;
  }
  body.salon-theme .nk-menu-card__body {
    gap: .62rem;
    padding: 1rem 1rem 1.08rem !important;
  }
  body.salon-theme .nk-menu-card__name {
    font-size: clamp(.98rem, 4.2vw, 1.08rem) !important;
    line-height: 1.5 !important;
  }
  body.salon-theme .nk-menu-card__desc {
    font-size: .84rem !important;
    line-height: 1.7 !important;
  }
  body.salon-theme .nk-menu-card__price-main {
    font-size: 1.02rem;
  }
  body.salon-theme .nk-menu-card__first {
    font-size: .72rem;
  }
  body.salon-theme .nk-section-more {
    margin-top: 1.8rem;
  }
  body.salon-theme .nk-section-more .nk-btn {
    width: 100%;
    max-width: 320px;
  }

  /* CTA responsive */
  body.salon-theme .nk-cta-section {
    padding-top: clamp(3rem, 12vw, 4.5rem) !important;
    padding-bottom: clamp(3rem, 12vw, 4.5rem) !important;
    text-align: center;
  }
  body.salon-theme .nk-cta-section__eyebrow {
    font-size: .8rem;
    letter-spacing: .14em;
  }
  body.salon-theme .nk-cta-section__title {
    font-size: clamp(1.45rem, 7vw, 2.1rem) !important;
    line-height: 1.35 !important;
    letter-spacing: .02em;
  }
  body.salon-theme .nk-cta-section__sub {
    font-size: .9rem !important;
    line-height: 1.75 !important;
  }
  body.salon-theme .nk-cta-section__btns {
    display: grid !important;
    grid-template-columns: 1fr;
    gap: 10px;
    width: min(100%, 340px);
    margin-left: auto;
    margin-right: auto;
  }
  body.salon-theme .nk-cta-section__btns .nk-btn {
    width: 100%;
  }

  /* Lower page Hero */
  body.salon-theme .nk-page-hero {
    min-height: 190px !important;
    padding: clamp(58px, 16vw, 82px) 0 clamp(34px, 10vw, 52px) !important;
    background-size: cover;
    background-position: center center;
  }
  body.salon-theme .nk-page-hero__eyebrow {
    font-size: .74rem !important;
    letter-spacing: .14em !important;
  }
  body.salon-theme .nk-page-hero__title {
    font-size: clamp(1.5rem, 7vw, 2.2rem) !important;
    line-height: 1.28 !important;
    overflow-wrap: anywhere;
  }

  /* Access */
  body.salon-theme .nk-access-grid,
  body.salon-theme .nk-front-feature-grid,
  body.salon-theme .nk-review-grid,
  body.salon-theme .nk-staff-grid {
    grid-template-columns: 1fr !important;
  }
  body.salon-theme .nk-access-table__head,
  body.salon-theme .nk-access-table__val {
    display: block;
    width: 100%;
    box-sizing: border-box;
  }
  body.salon-theme .nk-access-table__head {
    padding-bottom: .2rem;
  }
  body.salon-theme .nk-access-actions {
    display: grid;
    grid-template-columns: 1fr;
  }
  body.salon-theme .nk-access-map iframe {
    height: 240px !important;
  }
}

/* Very small phones */
@media (max-width: 430px) {
  body.salon-theme .container {
    width: min(100% - 22px, 100%);
  }
  body.salon-theme .nk-restaurant-hero__grid {
    padding-top: 70px !important;
  }
  body.salon-theme .nk-restaurant-hero__copy .hero-title,
  body.salon-theme .nk-restaurant-hero__copy .nk-hero__title,
  body.salon-theme .hero-title,
  body.salon-theme .nk-hero__title {
    font-size: clamp(1.55rem, 9.3vw, 2.25rem) !important;
  }
  body.salon-theme .nk-restaurant-hero__chips {
    grid-template-columns: 1fr 1fr;
  }
  body.salon-theme .nk-restaurant-hero__visual-card {
    display: none;
  }
  body.salon-theme .nk-menu-card__media {
    aspect-ratio: 1.55 / 1 !important;
  }
  body.salon-theme .nk-horizontal-story-card {
    min-height: 310px !important;
  }
  body.salon-theme .nk-horizontal-story-card__media {
    min-height: 148px;
  }
}

/* Smartphone gallery refinement: vertical list with predictable image height */
@media (max-width: 799px) {
  body.salon-theme .nk-horizontal-story-card {
    min-height: auto !important;
    border-radius: 20px;
    overflow: hidden;
  }
  body.salon-theme .nk-horizontal-story-card__media {
    min-height: clamp(170px, 48vw, 240px);
    background-size: cover;
    background-position: center center;
  }
  body.salon-theme .nk-horizontal-story-card__body {
    padding: 1rem 1.05rem 1.15rem !important;
  }
  body.salon-theme .nk-horizontal-story-card__number {
    font-size: clamp(1.8rem, 10vw, 2.8rem) !important;
  }
  body.salon-theme .nk-horizontal-story-card__title {
    font-size: clamp(1.05rem, 5vw, 1.35rem) !important;
    line-height: 1.45;
  }
  body.salon-theme .nk-horizontal-story-card__text {
    font-size: .84rem !important;
    line-height: 1.7 !important;
  }
}


/* v1.3.1: Staff more button visibility / link controls. */
.nk-section-more--staff{
  margin-top:clamp(2rem,4vw,3rem);
}
.nk-section-more--staff .nk-btn{
  min-width:min(280px, 86vw);
}

/* ============================================================
   v1.3.2 Mobile Top Hero Image Sizing Fix
   ------------------------------------------------------------
   スマホでトップHero画像が大きすぎる・切れる・位置が合わない問題を抑制。
   Customizer / Hero一括編集で、スマホ画像の見せ方・位置・高さを変更できる。
   ============================================================ */
@media (max-width: 767px) {
  body.salon-theme .nk-hero-section,
  body.salon-theme .hero-section {
    min-height: var(--nk-hero-mobile-min-height, clamp(560px, 78svh, 720px)) !important;
    height: auto !important;
    background-color: #17120f;
  }
  body.salon-theme .nk-hero-section--image {
    background-image: linear-gradient(rgba(46,35,34,.48), rgba(46,35,34,.48)), var(--nk-hero-bg-mobile, var(--nk-hero-bg-desktop)) !important;
    background-size: var(--nk-hero-mobile-fit, cover) !important;
    background-position: var(--nk-hero-mobile-position, center center) !important;
    background-repeat: no-repeat !important;
  }
  body.salon-theme .nk-hero-slideshow .nk-hero-slide {
    background-image: var(--nk-hero-slide-mobile, var(--nk-hero-slide-desktop)) !important;
    background-size: var(--nk-hero-mobile-fit, cover) !important;
    background-position: var(--nk-hero-mobile-position, center center) !important;
    background-repeat: no-repeat !important;
  }
  body.salon-theme .nk-hero-video {
    object-fit: var(--nk-hero-mobile-fit, cover) !important;
    object-position: var(--nk-hero-mobile-position, center center) !important;
  }
  body.salon-theme .nk-restaurant-hero__grid {
    min-height: var(--nk-hero-mobile-min-height, clamp(560px, 78svh, 720px)) !important;
    justify-content: center;
    padding-top: clamp(68px, 16vw, 96px) !important;
    padding-bottom: clamp(30px, 9vw, 52px) !important;
  }
  body.salon-theme .nk-restaurant-hero__copy .hero-title,
  body.salon-theme .nk-restaurant-hero__copy .nk-hero__title,
  body.salon-theme .hero-title,
  body.salon-theme .nk-hero__title {
    font-size: clamp(1.55rem, 8.2vw, 2.35rem) !important;
  }
}
@media (max-width: 430px) {
  body.salon-theme .nk-restaurant-hero__grid {
    padding-top: clamp(64px, 17vw, 88px) !important;
  }
}



/* v1.3.3: Top hero layout patterns and visibility toggles */
.nk-restaurant-hero__grid--copy-only{
  grid-template-columns:minmax(0, 860px);
  justify-content:flex-start;
}
.nk-restaurant-hero__grid--stacked{
  grid-template-columns:minmax(0,1fr);
  gap:28px;
}
.nk-restaurant-hero__grid--stacked .nk-restaurant-hero__copy{
  max-width:760px;
}
.nk-restaurant-hero__grid--stacked .nk-restaurant-hero__showcase{
  max-width:980px;
  width:100%;
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.nk-restaurant-hero__grid--reversed{
  grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
}
.nk-restaurant-hero__grid--reversed .nk-restaurant-hero__copy{
  order:2;
  justify-self:end;
  max-width:720px;
}
.nk-restaurant-hero__grid--reversed .nk-restaurant-hero__showcase{
  order:1;
}
@media (max-width:1100px){
  .nk-restaurant-hero__grid--copy-only,
  .nk-restaurant-hero__grid--stacked,
  .nk-restaurant-hero__grid--reversed{
    grid-template-columns:1fr;
  }
  .nk-restaurant-hero__grid--reversed .nk-restaurant-hero__copy,
  .nk-restaurant-hero__grid--reversed .nk-restaurant-hero__showcase{
    order:initial;
    justify-self:stretch;
  }
}
@media (max-width:767px){
  .nk-restaurant-hero__grid--stacked .nk-restaurant-hero__showcase{
    grid-template-columns:1fr;
  }
}


/* ============================================================
   v1.3.4 Hero layout reflection fix / high-specificity overrides
   既存の body.salon-theme レスポンシブCSSに負けないよう、最後に強制反映。
   ============================================================ */
body.salon-theme .nk-restaurant-hero__grid.nk-restaurant-hero__grid--split{
  grid-template-columns:minmax(0,1.05fr) minmax(300px,.92fr) !important;
}
body.salon-theme .nk-restaurant-hero__grid.nk-restaurant-hero__grid--copy-only{
  grid-template-columns:minmax(0,860px) !important;
  justify-content:flex-start !important;
}
body.salon-theme .nk-restaurant-hero__grid.nk-restaurant-hero__grid--stacked{
  grid-template-columns:minmax(0,1fr) !important;
  align-items:start !important;
}
body.salon-theme .nk-restaurant-hero__grid.nk-restaurant-hero__grid--stacked .nk-restaurant-hero__copy{
  max-width:760px !important;
}
body.salon-theme .nk-restaurant-hero__grid.nk-restaurant-hero__grid--stacked .nk-restaurant-hero__showcase{
  width:100% !important;
  max-width:980px !important;
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
}
body.salon-theme .nk-restaurant-hero__grid.nk-restaurant-hero__grid--reversed{
  grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr) !important;
}
body.salon-theme .nk-restaurant-hero__grid.nk-restaurant-hero__grid--reversed .nk-restaurant-hero__copy{
  order:2 !important;
  justify-self:end !important;
  max-width:720px !important;
}
body.salon-theme .nk-restaurant-hero__grid.nk-restaurant-hero__grid--reversed .nk-restaurant-hero__showcase{
  order:1 !important;
}
body.salon-theme .nk-restaurant-hero__grid.nk-restaurant-hero__grid--copy-left .nk-restaurant-hero__copy{
  text-align:left !important;
  justify-self:start !important;
}
body.salon-theme .nk-restaurant-hero__grid.nk-restaurant-hero__grid--copy-center .nk-restaurant-hero__copy{
  text-align:center !important;
  justify-self:center !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
body.salon-theme .nk-restaurant-hero__grid.nk-restaurant-hero__grid--copy-center .nk-restaurant-hero__chips,
body.salon-theme .nk-restaurant-hero__grid.nk-restaurant-hero__grid--copy-center .nk-restaurant-hero__actions{
  justify-content:center !important;
}
body.salon-theme .nk-restaurant-hero__grid.nk-restaurant-hero__grid--copy-right .nk-restaurant-hero__copy{
  text-align:right !important;
  justify-self:end !important;
  margin-left:auto !important;
}
body.salon-theme .nk-restaurant-hero__grid.nk-restaurant-hero__grid--copy-right .nk-restaurant-hero__chips,
body.salon-theme .nk-restaurant-hero__grid.nk-restaurant-hero__grid--copy-right .nk-restaurant-hero__actions{
  justify-content:flex-end !important;
}
body.salon-theme .nk-restaurant-hero__grid.nk-restaurant-hero__grid--showcase-top .nk-restaurant-hero__showcase{
  align-self:start !important;
}
body.salon-theme .nk-restaurant-hero__grid.nk-restaurant-hero__grid--showcase-center .nk-restaurant-hero__showcase{
  align-self:center !important;
}
body.salon-theme .nk-restaurant-hero__grid.nk-restaurant-hero__grid--showcase-bottom .nk-restaurant-hero__showcase{
  align-self:end !important;
}
@media (max-width:1100px){
  body.salon-theme .nk-restaurant-hero__grid.nk-restaurant-hero__grid--split,
  body.salon-theme .nk-restaurant-hero__grid.nk-restaurant-hero__grid--stacked,
  body.salon-theme .nk-restaurant-hero__grid.nk-restaurant-hero__grid--reversed,
  body.salon-theme .nk-restaurant-hero__grid.nk-restaurant-hero__grid--copy-only{
    grid-template-columns:1fr !important;
  }
  body.salon-theme .nk-restaurant-hero__grid.nk-restaurant-hero__grid--reversed .nk-restaurant-hero__copy,
  body.salon-theme .nk-restaurant-hero__grid.nk-restaurant-hero__grid--reversed .nk-restaurant-hero__showcase{
    order:initial !important;
    justify-self:stretch !important;
  }
}
@media (max-width:767px){
  body.salon-theme .nk-restaurant-hero__grid.nk-restaurant-hero__grid--mobile-hide-showcase .nk-restaurant-hero__showcase{
    display:none !important;
  }
  body.salon-theme .nk-restaurant-hero__grid.nk-restaurant-hero__grid--mobile-cards_first .nk-restaurant-hero__showcase{
    order:1 !important;
  }
  body.salon-theme .nk-restaurant-hero__grid.nk-restaurant-hero__grid--mobile-cards_first .nk-restaurant-hero__copy{
    order:2 !important;
  }
  body.salon-theme .nk-restaurant-hero__grid.nk-restaurant-hero__grid--stacked .nk-restaurant-hero__showcase{
    grid-template-columns:1fr !important;
  }
}
@media (max-width:767px){
  body.salon-theme .site-header.nk-salon-header-actions-mobile-hidden .nk-salon-header-actions{
    display:none !important;
  }
}


/* v1.3.5: Top Hero text color/size controls */
body.salon-theme .nk-hero-section .nk-restaurant-hero__copy .hero-eyebrow,
body.salon-theme .nk-hero-section .nk-restaurant-hero__copy .nk-hero__eyebrow,
.nk-hero-section .nk-restaurant-hero__copy .hero-eyebrow,
.nk-hero-section .nk-restaurant-hero__copy .nk-hero__eyebrow{
  color:var(--nk-hero-eyebrow-color,#fff) !important;
  font-size:var(--nk-hero-eyebrow-size,15px) !important;
}
body.salon-theme .nk-hero-section .nk-restaurant-hero__copy .hero-title,
body.salon-theme .nk-hero-section .nk-restaurant-hero__copy .nk-hero__title,
.nk-hero-section .nk-restaurant-hero__copy .hero-title,
.nk-hero-section .nk-restaurant-hero__copy .nk-hero__title{
  color:var(--nk-hero-heading-color,#fff) !important;
  font-size:clamp(2rem, 7vw, var(--nk-hero-heading-size,72px)) !important;
}
body.salon-theme .nk-hero-section .nk-restaurant-hero__copy .hero-sub,
body.salon-theme .nk-hero-section .nk-restaurant-hero__copy .nk-hero__sub,
.nk-hero-section .nk-restaurant-hero__copy .hero-sub,
.nk-hero-section .nk-restaurant-hero__copy .nk-hero__sub{
  color:var(--nk-hero-sub-color,#f8f1e9) !important;
  font-size:var(--nk-hero-sub-size,17px) !important;
}
body.salon-theme .nk-hero-section .nk-restaurant-hero__chips li,
.nk-hero-section .nk-restaurant-hero__chips li{
  color:var(--nk-hero-chip-color,#fff) !important;
  background:var(--nk-hero-chip-bg,#4a3a31) !important;
  font-size:var(--nk-hero-chip-size,14px) !important;
}
@media (max-width:767px){
  body.salon-theme .nk-hero-section .nk-restaurant-hero__copy .hero-title,
  body.salon-theme .nk-hero-section .nk-restaurant-hero__copy .nk-hero__title,
  .nk-hero-section .nk-restaurant-hero__copy .hero-title,
  .nk-hero-section .nk-restaurant-hero__copy .nk-hero__title{
    font-size:clamp(2rem, 12vw, var(--nk-hero-heading-size,72px)) !important;
  }
}

/* v1.3.6: hero brightness controls */


/* v1.3.8: TOP Hero dark mask ON/OFF */
body.salon-theme .nk-hero-section--mask-off,
.nk-hero-section--mask-off{
  --nk-hero-overlay-opacity: 0 !important;
}
body.salon-theme .nk-hero-section--mask-off::before,
.nk-hero-section--mask-off::before{
  background-image: linear-gradient(rgba(46,35,34,0), rgba(46,35,34,0)), var(--nk-hero-bg-desktop) !important;
}
body.salon-theme .nk-hero-section--mask-off .nk-hero-media-overlay,
.nk-hero-section--mask-off .nk-hero-media-overlay{
  background: rgba(46,35,34,0) !important;
  opacity: 0 !important;
}
@media (max-width: 767px){
  body.salon-theme .nk-hero-section--mask-off::before,
  .nk-hero-section--mask-off::before{
    background-image: linear-gradient(rgba(46,35,34,0), rgba(46,35,34,0)), var(--nk-hero-bg-mobile, var(--nk-hero-bg-desktop)) !important;
  }
}


/* ============================================================
   v1.3.9 TOP Hero mask reflection hard fix
   ------------------------------------------------------------
   既存の ::after / モバイル背景指定 / body.salon-theme 側の後続CSSが
   暗さマスクOFFや濃度設定を上書きしていたため、Hero背景構造を最後に再定義する。
   - 画像は ::before / .nk-hero-media に表示
   - 暗さは ::after だけで制御
   - OFF時は ::after を完全に無効化
   ============================================================ */
body.salon-theme .nk-hero-section,
.nk-hero-section{
  background-image:none !important;
  background:none !important;
  background-color:#17120f;
  isolation:isolate;
}
body.salon-theme .nk-hero-section--image::before,
.nk-hero-section--image::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  z-index:0 !important;
  display:block !important;
  background-image:var(--nk-hero-bg-desktop) !important;
  background-size:cover !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
  filter:brightness(var(--nk-hero-brightness,1)) !important;
  opacity:1 !important;
  pointer-events:none !important;
}
body.salon-theme .nk-hero-section::after,
.nk-hero-section::after{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  z-index:1 !important;
  display:block !important;
  background:rgba(23,18,15,var(--nk-hero-overlay-opacity,.45)) !important;
  opacity:1 !important;
  pointer-events:none !important;
}
body.salon-theme .nk-hero-section .nk-hero-media,
.nk-hero-section .nk-hero-media,
body.salon-theme .nk-hero-section .nk-hero-slide,
.nk-hero-section .nk-hero-slide{
  filter:brightness(var(--nk-hero-brightness,1)) !important;
}
body.salon-theme .nk-hero-section .nk-hero-media-overlay,
.nk-hero-section .nk-hero-media-overlay{
  background:transparent !important;
  opacity:0 !important;
  display:none !important;
}
body.salon-theme .nk-hero-section > .container,
.nk-hero-section > .container,
body.salon-theme .nk-restaurant-hero__grid,
.nk-restaurant-hero__grid{
  position:relative;
  z-index:2 !important;
}
body.salon-theme .nk-hero-section--mask-off,
.nk-hero-section--mask-off{
  --nk-hero-overlay-opacity:0 !important;
}
body.salon-theme .nk-hero-section--mask-off::after,
.nk-hero-section--mask-off::after{
  background:transparent !important;
  opacity:0 !important;
  display:none !important;
}
@media (max-width:767px){
  body.salon-theme .nk-hero-section,
  .nk-hero-section{
    background-image:none !important;
    background:none !important;
  }
  body.salon-theme .nk-hero-section--image::before,
  .nk-hero-section--image::before{
    background-image:var(--nk-hero-bg-mobile, var(--nk-hero-bg-desktop)) !important;
    background-size:var(--nk-hero-mobile-fit, cover) !important;
    background-position:var(--nk-hero-mobile-position, center center) !important;
    background-repeat:no-repeat !important;
  }
}


/* v1.4.0: CTA visibility footer/mobile controls */
.nk-footer-cta-bar{
  background:#2f221d;
  color:#fff;
  padding:28px 0;
  text-align:center;
}
.nk-footer-cta-bar__label{
  margin:0 0 12px;
  font-weight:700;
  letter-spacing:.08em;
}
.nk-footer-cta-buttons,
.nk-mobile-fixed-cta-buttons{
  display:flex;
  gap:10px;
  justify-content:center;
  flex-wrap:wrap;
}
.nk-footer-cta-buttons .nk-btn{
  min-width:12em;
}
.nk-mobile-fixed-cta{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:9998;
  display:none;
  padding:8px 10px calc(8px + env(safe-area-inset-bottom));
  background:rgba(35,24,19,.92);
  box-shadow:0 -10px 30px rgba(0,0,0,.22);
}
.nk-mobile-fixed-cta-buttons{
  max-width:560px;
  margin:0 auto;
  flex-wrap:nowrap;
}
.nk-mobile-fixed-cta-buttons .nk-btn{
  flex:1 1 0;
  min-width:0;
  padding:.78rem .55rem;
  font-size:.88rem;
  white-space:nowrap;
}
@media (max-width: 767px){
  .nk-mobile-fixed-cta{display:block;}
  body.salon-theme{padding-bottom:74px;}
}


/* v1.4.3: About template image insertion */
.nk-concept-section__image{
  width:min(920px,92%);
  margin:clamp(1.4rem,3vw,2.4rem) auto 0;
}
.nk-concept-section__img{
  display:block;
  width:100%;
  height:auto;
  max-height:520px;
  object-fit:cover;
  border-radius:28px;
  box-shadow:0 22px 70px rgba(82,54,37,.14);
}
.nk-about-concept__gallery{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:16px;
  margin-top:clamp(1.2rem,2.5vw,2rem);
}
.nk-about-concept__gallery-item{
  margin:0;
}
.nk-about-concept__gallery-img{
  display:block;
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  border-radius:18px;
  box-shadow:0 14px 40px rgba(82,54,37,.12);
}
.nk-about-concept__gallery-item figcaption{
  margin:.55rem .1rem 0;
  color:var(--salon-muted,#8a6f64);
  font-size:.88rem;
  line-height:1.65;
}
@media (max-width: 767px){
  .nk-concept-section__image{width:92%;}
  .nk-concept-section__img{border-radius:20px;max-height:none;}
  .nk-about-concept__gallery{grid-template-columns:1fr;}
}


/* v1.4.4: Staff cards center alignment for small counts.
   When only 1-3 staff members are registered, avoid awkward left-aligned empty space. */
body.salon-theme .nk-staff-grid,
.nk-staff-grid {
  grid-template-columns: repeat(auto-fit, minmax(220px, 280px)) !important;
  justify-content: center !important;
  justify-items: stretch !important;
  align-items: stretch !important;
}
body.salon-theme .nk-staff-card,
.nk-staff-card {
  width: 100%;
  max-width: 280px;
  box-sizing: border-box;
}
@media (max-width: 767px) {
  body.salon-theme .nk-staff-grid,
  .nk-staff-grid {
    grid-template-columns: minmax(0, 320px) !important;
    justify-content: center !important;
  }
  body.salon-theme .nk-staff-card,
  .nk-staff-card {
    max-width: 320px;
  }
}

/* v1.4.5: About CTA background controls */
.nk-about-cta-section{
  background-color:#fff6ee;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
.nk-about-cta-section > .container{
  position:relative;
  z-index:1;
}


/* v1.4.9: TOP Hero見出し位置微調整（Customizer十字キー） */
@media (max-width: 767px){
  body.salon-theme .nk-restaurant-hero__copy,
  .nk-restaurant-hero__copy{
    transform:translate3d(calc(var(--nk-hero-copy-offset-x, 0px) * .55), calc(var(--nk-hero-copy-offset-y, 0px) * .55), 0);
  }
}


/* v1.5.0: TOP Hero見出し位置微調整の強制反映
   CSSキャッシュや既存アニメーションCSSに負けないよう高詳細度で再指定。 */
body.salon-theme .nk-hero-section .nk-restaurant-hero__copy,
.nk-hero-section .nk-restaurant-hero__copy{
  transform:translate3d(var(--nk-hero-copy-offset-x, 0px), var(--nk-hero-copy-offset-y, 0px), 0) !important;
}
@media (max-width: 767px){
  body.salon-theme .nk-hero-section .nk-restaurant-hero__copy,
  .nk-hero-section .nk-restaurant-hero__copy{
    transform:translate3d(calc(var(--nk-hero-copy-offset-x, 0px) * .55), calc(var(--nk-hero-copy-offset-y, 0px) * .55), 0) !important;
  }
}


/* v1.5.1: スマホ版TOP Hero見出し位置をPC版と別に微調整 */
@media (max-width: 767px){
  body.salon-theme .nk-hero-section .nk-restaurant-hero__copy,
  .nk-hero-section .nk-restaurant-hero__copy{
    transform:translate3d(var(--nk-hero-copy-mobile-offset-x, 0px), var(--nk-hero-copy-mobile-offset-y, 0px), 0) !important;
  }
}
