/*
Theme Name: NKTS Hair Salon Theme
Theme URI: https://nk-ts.co.jp
Description: ヘアサロン・美容室・髪質改善サロン向けのWordPress子テーマ。カット、カラー、髪質改善、ヘッドスパ、スタイリスト紹介、ヘアスタイル事例、予約導線に対応。
Author: 株式会社NKテクニカルサポート
Author URI: https://nk-ts.co.jp
Template: nk-base-theme
Version: 1.1.3
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: nk-child-hair-salon
Tags: hair-salon, beauty-salon, salon, haircut, color, stylist, reservation, wordpress
*/

/*
 * 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ロゴ入り画像に差し替え
 * - 既存設定を維持するため、テーマフォルダ名は nk-child-hair-salon のまま固定
 *
 * 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梱包を固定フォルダ nk-child-hair-salon に修正し、毎回別テーマとして残る問題を抑止
 * - 旧テーマフォルダ側の 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件に拡張
 * - ご予約テンプレート：不要なよくある質問セクションを表示・編集画面から撤去
 *   - ダッシュボードに「テンプレート編集」を追加し、メニュー料金表・ご予約テンプレートの文言/カード/流れ/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 – 初期リリース
  * v2.1.0: 飲食テーマv1.2.4のHero設定整理を美容テーマへ横展開。トップHero/下層Hero/CTA Hero/アニメーションを分離し、制作スタイリストが迷わない設定導線に改善。
 */

.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);
}
.nk-hero-media,
.nk-hero-media-overlay,
.nk-hero-slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.nk-hero-media {
  z-index: 0;
}
.nk-hero-media-overlay {
  z-index: 1;
  background: linear-gradient(rgba(46,35,34,.45), rgba(46,35,34,.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 / __icon / __name / __desc / __price / __first
   ============================================================ */
.nk-menu-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1.8rem;
}
.nk-menu-card {
  text-align: center;
  padding: 2.5rem 1.6rem 2rem;
  border: 1px solid var(--salon-border);
  background-color: rgba(255,255,255,.88);
  background-image: var(--nk-menu-card-bg-image, none);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transition: border-color var(--salon-transition), box-shadow var(--salon-transition), transform var(--salon-transition);
}
.nk-menu-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(rgba(255,255,255,.82), rgba(255,255,255,.82));
  opacity: 0;
  pointer-events: none;
  z-index: 0;
}
.nk-menu-card[style*="--nk-menu-card-bg-image"]::before { opacity: 1; }
.nk-menu-card > * {
  position: relative;
  z-index: 1;
}
.nk-menu-card::after {
  content: '';
  position: absolute;
  inset: 0;
  border: 1px solid var(--salon-primary);
  opacity: 0;
  transition: opacity var(--salon-transition);
  pointer-events: none;
  z-index: 2;
}
.nk-menu-card:hover {
  box-shadow: var(--salon-shadow-hover);
  transform: translateY(-2px);
}
.nk-menu-card:hover::after { opacity: 1; }

.nk-menu-card__icon {
  font-size: 2rem;
  margin-bottom: 1rem;
  display: block;
  line-height: 1;
}
.nk-menu-card__name {
  font-family: var(--salon-font-jp);
  font-weight: 300;
  font-size: 1.1rem;
  color: var(--salon-text);
  margin: 0 0 .6rem;
  letter-spacing: .05em;
  line-height: 1.6;
}
.nk-menu-card__desc {
  font-size: .84rem;
  color: var(--salon-text-muted);
  line-height: 1.85;
  margin: 0 0 1.2rem;
}
.nk-menu-card__price {
  font-size: 1rem;
  font-weight: 700;
  color: var(--salon-primary-dark);
  margin: 0;
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: .4rem;
  flex-wrap: wrap;
}
.nk-menu-card__price small {
  font-size: .75rem;
  font-weight: 400;
  color: var(--salon-text-muted);
}
.nk-menu-card__first {
  font-size: .8rem;
  font-weight: 400;
  color: var(--salon-primary);
  background: rgba(198,115,122,.08);
  padding: .1rem .5rem;
  border-radius: var(--salon-radius-pill);
}

/* ============================================================
   スタイリストカード
   .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%);
}

/* ============================================================
   パンくずリスト
   ============================================================ */
.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 {
  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);
}




/* -------------------------------------------------------------------------
 * 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;
    }
}


/* 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); }
}

/* -------------------------------------------------------------------------
 * v1.0.0 Hair salon growth features
 * Concern LP / Before-After cases / Reviews / Fixed bottom CTA / SEO-MEO UI
 * ---------------------------------------------------------------------- */
.nk-beauty-growth-hero{position:relative;padding:clamp(72px,10vw,140px) 0 clamp(44px,7vw,80px);background:linear-gradient(135deg,#fff7f7 0%,#f7ebe9 46%,#f3dedb 100%);overflow:hidden}.nk-beauty-growth-hero:before{content:"";position:absolute;inset:auto -6% -30% 50%;width:60vw;height:60vw;border-radius:50%;background:radial-gradient(circle,rgba(194,128,130,.18),transparent 68%)}.nk-beauty-growth-hero .container{position:relative;z-index:1}.nk-beauty-growth-hero h1{max-width:860px;margin:.2em 0;font-size:clamp(2rem,5vw,4.2rem);line-height:1.18;color:#412421}.nk-beauty-growth-hero__lead{max-width:760px;line-height:2;color:#715b58;font-size:1.05rem}.nk-beauty-growth-content{padding:clamp(42px,7vw,88px) 0;background:#fffdfb}.nk-beauty-growth-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:32px}.nk-beauty-growth-main{max-width:980px;margin:0 auto}.nk-beauty-growth-main__image{margin:0 0 28px;border-radius:28px;overflow:hidden;box-shadow:0 20px 60px rgba(84,45,44,.12)}.nk-beauty-growth-main__image img{display:block;width:100%;height:auto}.nk-beauty-box{margin:28px 0;padding:clamp(22px,4vw,34px);border:1px solid rgba(166,93,99,.18);border-radius:24px;background:#fff;box-shadow:0 16px 48px rgba(84,45,44,.08)}.nk-beauty-box h2{margin-top:0;font-size:clamp(1.28rem,2.6vw,1.8rem);color:#4a2a27}.nk-beauty-box p{line-height:1.9;color:#67514d}.nk-beauty-box.is-recommend{background:linear-gradient(135deg,#fff8f0,#fff)}.nk-beauty-checklist{display:grid;gap:12px;list-style:none;padding:0;margin:0}.nk-beauty-checklist li{position:relative;padding-left:2rem;line-height:1.8}.nk-beauty-checklist li:before{content:"✓";position:absolute;left:0;top:.1rem;display:grid;place-items:center;width:1.35rem;height:1.35rem;border-radius:50%;background:#a65d63;color:#fff;font-size:.8rem}.nk-beauty-concern-grid,.nk-beauty-case-grid,.nk-salon-review-grid-v2{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,3vw,28px)}.nk-beauty-concern-card,.nk-beauty-case-card,.nk-salon-review-v2{border-radius:26px;background:#fff;box-shadow:0 16px 50px rgba(84,45,44,.1);overflow:hidden;border:1px solid rgba(166,93,99,.14)}.nk-beauty-concern-card a,.nk-beauty-case-card__link{display:block;height:100%;color:inherit;text-decoration:none}.nk-beauty-concern-card__image{aspect-ratio:16/10;background:#f6eceb}.nk-beauty-concern-card__image img{width:100%;height:100%;object-fit:cover;display:block}.nk-beauty-concern-card__body,.nk-beauty-case-card__body,.nk-salon-review-v2{padding:22px}.nk-beauty-concern-card__body p,.nk-beauty-case-card__meta{margin:0 0 8px;color:#a65d63;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase}.nk-beauty-concern-card__body h3,.nk-beauty-case-card__body h3,.nk-salon-review-v2 h3{margin:.2rem 0 .6rem;color:#412421;font-size:1.18rem;line-height:1.55}.nk-beauty-concern-card__body span{color:#a65d63;font-weight:700}.nk-beauty-case-card__images{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#ead7d5}.nk-beauty-case-card__images figure{position:relative;margin:0;aspect-ratio:4/5;background:#f8eeee;display:grid;place-items:center;color:#a65d63;font-weight:700}.nk-beauty-case-card__images img{width:100%;height:100%;object-fit:cover;display:block}.nk-beauty-case-card__images figcaption{position:absolute;left:10px;top:10px;padding:5px 10px;border-radius:999px;background:rgba(255,255,255,.88);font-size:.75rem;color:#4a2a27}.nk-beauty-case-card__sub{margin:.2rem 0 .4rem;color:#705b58}.nk-beauty-case-card small,.nk-beauty-disclaimer{display:block;color:#8b7773;font-size:.82rem}.nk-beauty-case-compare{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:24px}.nk-beauty-case-compare figure{position:relative;margin:0;aspect-ratio:4/5;border-radius:24px;overflow:hidden;background:#f8eeee;display:grid;place-items:center}.nk-beauty-case-compare img{width:100%;height:100%;object-fit:cover}.nk-beauty-case-compare figcaption{position:absolute;left:14px;top:14px;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.92);font-weight:700;color:#4a2a27}.nk-beauty-case-data{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 24px}.nk-beauty-case-data div{padding:16px;border-radius:18px;background:#fff6f5;border:1px solid rgba(166,93,99,.15)}.nk-beauty-case-data dt{font-size:.78rem;color:#a65d63}.nk-beauty-case-data dd{margin:4px 0 0;color:#412421;font-weight:700}.nk-salon-review-v2__stars,.nk-salon-review-single__stars{color:#c59647;letter-spacing:.08em}.nk-salon-review-v2__text{line-height:1.9;color:#67514d}.nk-salon-review-v2__meta,.nk-salon-review-single__meta{color:#a65d63;font-weight:700}.nk-fixed-beauty-cta{position:fixed;left:50%;bottom:14px;z-index:9990;transform:translateX(-50%);display:flex;gap:8px;width:min(94vw,620px);padding:8px;border-radius:999px;background:rgba(255,255,255,.92);box-shadow:0 18px 54px rgba(65,36,32,.22);backdrop-filter:blur(14px);border:1px solid rgba(166,93,99,.16)}.nk-fixed-beauty-cta__item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:48px;padding:6px 10px;border-radius:999px;text-decoration:none;color:#4a2a27;background:#fff7f7}.nk-fixed-beauty-cta__item span{font-size:.68rem;color:#a65d63;line-height:1}.nk-fixed-beauty-cta__item strong{font-size:.86rem;line-height:1.35}.nk-fixed-beauty-cta__item.is-primary{background:#a65d63;color:#fff}.nk-fixed-beauty-cta__item.is-primary span{color:#ffe3e0}.nk-fixed-beauty-cta__item.is-primary strong{color:#fff}@media(min-width:783px){.nk-fixed-beauty-cta{display:none}}@media(max-width:860px){.nk-beauty-concern-grid,.nk-beauty-case-grid,.nk-salon-review-grid-v2{grid-template-columns:1fr}.nk-beauty-case-compare,.nk-beauty-case-data{grid-template-columns:1fr}.nk-beauty-growth-content{padding-bottom:110px}}@media(max-width:420px){.nk-fixed-beauty-cta{width:96vw;bottom:8px}.nk-fixed-beauty-cta__item strong{font-size:.76rem}.nk-fixed-beauty-cta__item span{font-size:.62rem}}


/* NKTS Hair Salon Theme v1.0.0 overrides */
:root{
  --nk-hair-ink:#2b211d;
  --nk-hair-brown:#8a5f45;
  --nk-hair-beige:#f6efe7;
  --nk-hair-cream:#fffaf4;
  --nk-hair-accent:#b78a5b;
}
body.nk-child-salon{color:var(--nk-hair-ink);}
.nk-hero-section::after{background:linear-gradient(135deg,rgba(32,22,18,.68),rgba(90,58,38,.36));}
.nk-eyebrow,.nk-page-hero__eyebrow{color:var(--nk-hair-brown);}
.nk-btn--primary,.nk-fixed-beauty-cta__item.is-primary{background:linear-gradient(135deg,#8a5f45,#b78a5b);border-color:#8a5f45;}
.nk-menu-card__media{aspect-ratio:16/10;}
.nk-menu-card__media img{width:100%;height:100%;object-fit:cover;}
.nk-beauty-growth-hero{background:linear-gradient(135deg,#fffaf4 0%,#f5eadf 48%,#ead8c6 100%);}
.nk-beauty-checklist li:before{background:#8a5f45;}
.nk-beauty-box,.nk-beauty-concern-card,.nk-beauty-case-card,.nk-salon-review-v2{border-color:rgba(138,95,69,.18);}

/* v1.1.0: NKTSヘアサロン用の生成WEBP画像を同梱し、Hero・ヘアメニュー・ギャラリー・スタイリスト・ヘアスタイル事例に初期設定できるデモ構築へ更新。 */

/* v1.1.3: URL/link redesign. Canonical clean links, manual safe demo repair, and stronger 404 prevention for demo navigation/more links. */


/* ============================================================
   v1.1.3: Hair menu cards redesign + link-safe visual layout
   - 飲食テーマと同じ「画像を上・詳細を下」の長方形カードに統一
   - 背景画像に白いベールをかけて文字を重ねる旧表示を無効化
   - トップカード上の提供目安を非表示
   ============================================================ */
.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(188,116,128,.18);
  background:#fff !important;
  background-image:none !important;
  box-shadow:0 18px 50px rgba(80,45,54,.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(80,45,54,.16);
  border-color:rgba(188,116,128,.35);
}
.nk-menu-grid--post-source .nk-menu-card__full-link{
  color:inherit;
  text-decoration:none;
  display:flex;
  flex-direction:column;
  min-height:100%;
}
.nk-menu-grid--post-source .nk-menu-card__media{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:16/10;
  min-height:220px;
  background-color:#f0e7e1;
  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) 58%, rgba(45,25,31,.20) 100%);
  pointer-events:none;
}
.nk-menu-grid--post-source .nk-menu-card__media:not([style]){
  background:linear-gradient(135deg,#f4ebe7,#ead9d2);
}
.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,.9);
  border:1px solid rgba(255,255,255,.75);
  box-shadow:0 12px 28px rgba(0,0,0,.16);
  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:#2e2226;
}
.nk-menu-grid--post-source .nk-menu-card__desc{
  margin:0;
  color:#6f5d62;
  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:#a65364;
}
.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(198,115,122,.10);
  color:#a65364;
  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;
}
@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;}
}
