/* 和装カジウラ 公開サイト共通スタイル
   既存ページは採用デザインのインライン指定をそのまま保持し、ここには共通部分と
   新規ページ（予約・ショップ・専用ページ）用の部品を置く。
   基調色 #FBF8F3 / 本文 #23201C / アクセント #8A6A3C / 補助背景 #F3EEE4 / 暗色 #211E1A */

:root {
  --k-bg: #FBF8F3;
  --k-ink: #23201C;
  --k-ink-2: #3D3830;
  --k-muted: #5A544C;
  --k-muted-2: #6B6459;
  --k-accent: #8A6A3C;
  --k-accent-2: #C39A5C;
  --k-accent-text: #7A5C30; /* 小さな金色文字は読みやすさのため少し濃く */
  --k-sub: #F3EEE4;
  --k-line: #E8E1D6;
  --k-line-2: #DCD4C7;
  --k-dark: #211E1A;
  --k-ok: #3F6B4A;
  --k-warn: #9A5B13;
  --k-ng: #9B2C2C;
  --k-mincho: 'Hina Mincho', 'Shippori Mincho', serif;
  --k-mincho-2: 'Shippori Mincho', serif;
  --k-en: 'Italiana', serif;
  --k-gutter: clamp(20px, 6vw, 96px);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: #FBF8F3; color: #23201C; font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", sans-serif; -webkit-font-smoothing: antialiased; text-wrap: pretty; }
img { display: block; max-width: 100%; }
a { color: #8A6A3C; text-decoration: none; }
a:hover { color: #23201C; }
@keyframes heroFade { 0% { opacity: 0; } 4% { opacity: 1; } 30% { opacity: 1; } 34% { opacity: 0; } 100% { opacity: 0; } }
@keyframes scrollCue { 0% { transform: translateY(-100%); } 100% { transform: translateY(100%); } }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  /* 動きの少ない設定でも、ヒーロー写真の切り替え（その場でのフェード）は添付デザインどおり行う。画面上を動く演出だけ止める */
  [style*="scrollCue"] { animation: none !important; }
}

/* 添付デザインのホバー指定 */
.wk1:hover{color:#8A6A3C !important}
.wk2:hover{background:#8A6A3C !important}
.wk3:hover{border-color:#8A6A3C !important}
.wk4:hover{border-color:#C39A5C !important}
.wk5:hover{color:#C39A5C !important}
.wk6:hover{background:#8A6A3C !important;color:#FBF8F3 !important}
.wk7:hover{background:rgba(251,248,243,0.14) !important}
.wk8:hover{background:#C39A5C !important;color:#FBF8F3 !important}
.wk9:hover{background:#23201C !important;color:#FBF8F3 !important}
.wk10:hover{background:#23201C !important;color:#FBF8F3 !important;border-color:#23201C !important}
.wk11:hover{background:#C39A5C !important}
.wk12:hover{background:rgba(241,236,227,0.14) !important}
.wk13:hover{border-color:#8A6A3C !important;background:#F3EEE4 !important}
.wk14:hover{background:#23201C !important}
.wk15:hover{background:#FBF8F3 !important}

/* アクセシビリティ */
:focus-visible { outline: 2px solid #8A6A3C; outline-offset: 2px; }
.k-skip { position: absolute; left: -9999px; top: 0; z-index: 200; background: #23201C; color: #FBF8F3; padding: 12px 18px; }
.k-skip:focus { left: 12px; top: 12px; color: #FBF8F3; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* ヘッダー：狭い画面では電話番号の文字を省略してボタンと重ならないように */
/* スマホではヘッダーの言語切替を全面メニュー内に移す（ブランド名と重ならないように） */
.k-menu-langs { display: none; }
@media (max-width: 600px) {
  .k-langs { display: none !important; }
  .k-menu-langs { display: flex; }
}
@media (max-width: 560px) {
  .k-head-tel-text { display: none !important; }
  .k-head-tel { width: 44px; height: 44px; justify-content: center; align-items: center !important; border: 1px solid #DCD4C7; }
  .k-head-tel-icon { display: block !important; }
  .k-head-en { display: none !important; }
}
@media (max-width: 400px) {
  .k-head-line { padding: 0 10px !important; font-size: 12px !important; }
  .k-langs a { padding: 7px 6px !important; }
}

/* ===== 新規ページ用の部品（添付デザインの書式を部品化） ===== */
.k-page { padding-top: clamp(64px, 8vw, 86px); }
.k-wrap { padding-left: var(--k-gutter); padding-right: var(--k-gutter); }
.k-narrow { max-width: 880px; margin: 0 auto; }
.k-section { padding: clamp(56px, 9vw, 120px) var(--k-gutter); }
.k-section--sub { background: #F3EEE4; }
.k-section--dark { background: #23201C; color: #F1ECE3; }
.k-eyebrow { margin: 0 0 16px; font-family: var(--k-en); font-size: 12px; letter-spacing: 0.36em; color: var(--k-accent-text); }
.k-section--dark .k-eyebrow { color: #C39A5C; }
.k-h1 { margin: 0; font-family: var(--k-mincho); font-weight: 400; font-size: clamp(30px, 4.6vw, 58px); line-height: 1.45; letter-spacing: 0.1em; }
.k-h2 { margin: 0 0 24px; font-family: var(--k-mincho); font-weight: 400; font-size: clamp(24px, 3.2vw, 40px); line-height: 1.6; letter-spacing: 0.08em; }
.k-h3 { margin: 0 0 12px; font-family: var(--k-mincho-2); font-weight: 600; font-size: clamp(18px, 2vw, 23px); line-height: 1.6; letter-spacing: 0.06em; }
.k-lead { margin: 0; font-size: clamp(14px, 1.3vw, 16px); line-height: 2.2; letter-spacing: 0.05em; color: var(--k-ink-2); }
.k-text { margin: 0 0 1em; font-size: 15px; line-height: 2.05; letter-spacing: 0.04em; color: var(--k-ink-2); }
.k-section--dark .k-text, .k-section--dark .k-lead { color: #DED8CD; }
.k-note { font-size: 13px; line-height: 1.9; color: var(--k-muted); letter-spacing: 0.04em; }
.k-small { font-size: 12px; color: var(--k-muted-2); letter-spacing: 0.06em; }

/* ページ見出し（既存ページの Page head と同じ構成） */
.k-pagehead { position: relative; min-height: clamp(300px, 42vw, 460px); overflow: hidden; background: #2B2723; color: #FBF8F3; display: flex; align-items: flex-end; }
.k-pagehead__img { position: absolute; inset: 0; }
.k-pagehead__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(20,18,15,.74) 0%, rgba(20,18,15,.45) 50%, rgba(20,18,15,.15) 100%); }
.k-pagehead__body { position: relative; padding: clamp(36px, 6vw, 72px) var(--k-gutter); width: 100%; }
.k-pagehead .k-eyebrow { color: #E7D3B0; }
.k-pagehead--plain { min-height: 0; background: #F3EEE4; color: #23201C; }
.k-pagehead--plain .k-eyebrow { color: var(--k-accent-text); }
.k-crumbs { margin: 0 0 22px; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 8px; font-size: 12px; letter-spacing: 0.1em; }
.k-crumbs li + li::before { content: '/'; margin-right: 8px; opacity: .6; }
.k-crumbs a { color: inherit; opacity: .85; }
.k-crumbs a:hover { opacity: 1; color: inherit; text-decoration: underline; }

/* ボタン */
.k-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 54px; padding: 0 28px; background: #23201C; color: #FBF8F3; border: 1px solid #23201C; font-family: inherit; font-size: 14px; letter-spacing: 0.12em; cursor: pointer; text-align: center; line-height: 1.4; }
.k-btn:hover { background: #8A6A3C; border-color: #8A6A3C; color: #FBF8F3; }
.k-btn--accent { background: #8A6A3C; border-color: #8A6A3C; }
.k-btn--accent:hover { background: #23201C; border-color: #23201C; }
.k-btn--ghost { background: transparent; color: #23201C; }
.k-btn--ghost:hover { background: #23201C; color: #FBF8F3; }
.k-btn--light { background: #FBF8F3; color: #23201C; border-color: #FBF8F3; }
.k-btn--light:hover { background: #8A6A3C; border-color: #8A6A3C; color: #FBF8F3; }
.k-btn--small { min-height: 44px; padding: 0 18px; font-size: 13px; }
.k-btn--block { display: flex; width: 100%; }
.k-btn[disabled], .k-btn[aria-disabled="true"] { background: #CFC7BA; border-color: #CFC7BA; color: #5A544C; cursor: not-allowed; }
.k-btns { display: flex; flex-wrap: wrap; gap: 12px; }
.k-link { color: var(--k-accent-text); border-bottom: 1px solid currentColor; }

/* グリッド・カード */
.k-grid { display: grid; gap: clamp(20px, 3vw, 36px); grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
.k-grid--2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); }
.k-grid--3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.k-card { background: #FBF8F3; border: 1px solid #E3DCD1; padding: clamp(22px, 3vw, 34px); display: flex; flex-direction: column; gap: 10px; }
.k-section--sub .k-card { background: #FBF8F3; }
.k-card--link { color: #23201C; transition: border-color .2s; }
.k-card--link:hover { border-color: #8A6A3C; color: #23201C; }
.k-card__media { margin: calc(-1 * clamp(22px, 3vw, 34px)) calc(-1 * clamp(22px, 3vw, 34px)) 14px; aspect-ratio: 4 / 3; overflow: hidden; background: #E9E2D6; position: relative; }
.k-card__media img { width: 100%; height: 100%; object-fit: cover; }
.k-card__label { font-family: var(--k-en); font-size: 11px; letter-spacing: 0.3em; color: var(--k-accent-text); }
.k-card__more { margin-top: auto; font-family: var(--k-en); font-size: 12px; letter-spacing: 0.24em; color: var(--k-accent-text); }
.k-split { display: grid; gap: clamp(28px, 5vw, 72px); grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); align-items: start; }
.k-figure { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: #E9E2D6; }
.k-figure img { width: 100%; height: 100%; object-fit: cover; }
.k-photo-credit { position: absolute; left: 6px; bottom: 6px; padding: 3px 7px; border-radius: 5px; background: rgba(0,0,0,.55); color: #fff !important; font: 10px/1.2 system-ui, sans-serif; }
.k-photo-note { position: absolute; right: 6px; bottom: 6px; padding: 3px 7px; border-radius: 5px; background: rgba(0,0,0,.55); color: #fff; font: 10px/1.2 system-ui, sans-serif; }

/* 定義リスト（料金・条件など） */
.k-dl { margin: 0; display: grid; grid-template-columns: minmax(7em, 13em) 1fr; border-top: 1px solid #E3DCD1; }
.k-dl dt, .k-dl dd { margin: 0; padding: 16px 4px; border-bottom: 1px solid #E3DCD1; font-size: 14px; line-height: 1.9; letter-spacing: 0.04em; }
.k-dl dt { font-family: var(--k-mincho-2); font-weight: 600; color: #23201C; padding-right: 16px; }
.k-dl dd { color: var(--k-ink-2); }
@media (max-width: 560px) { .k-dl { grid-template-columns: 1fr; } .k-dl dt { border-bottom: 0; padding-bottom: 0; } }

.k-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.k-list li { position: relative; padding-left: 1.4em; font-size: 15px; line-height: 1.9; color: var(--k-ink-2); }
.k-list li::before { content: ''; position: absolute; left: 0; top: .85em; width: .6em; height: 1px; background: #8A6A3C; }

.k-steps { counter-reset: step; display: grid; gap: 1px; background: #E3DCD1; border: 1px solid #E3DCD1; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }
.k-step { background: #FBF8F3; padding: 26px 22px; }
.k-step__no { font-family: var(--k-en); font-size: 12px; letter-spacing: 0.24em; color: var(--k-accent-text); }
.k-step h3 { margin: 8px 0; font-family: var(--k-mincho-2); font-weight: 600; font-size: 18px; letter-spacing: .06em; }
.k-step p { margin: 0; font-size: 14px; line-height: 1.9; color: var(--k-ink-2); }

/* FAQ */
.k-faq { border-top: 1px solid #DCD4C7; }
.k-faq details { border-bottom: 1px solid #DCD4C7; }
.k-faq summary { list-style: none; cursor: pointer; display: flex; gap: 16px; align-items: baseline; padding: 22px 4px; font-family: var(--k-mincho-2); font-weight: 600; font-size: 16px; line-height: 1.7; letter-spacing: 0.04em; }
.k-faq summary::-webkit-details-marker { display: none; }
.k-faq summary::before { content: 'Q'; font-family: var(--k-en); color: var(--k-accent-text); font-size: 18px; }
.k-faq summary::after { content: '+'; margin-left: auto; color: var(--k-accent-text); font-family: var(--k-en); }
.k-faq details[open] summary::after { content: '−'; }
.k-faq .k-faq__a { padding: 0 4px 24px 34px; font-size: 14px; line-height: 2; color: var(--k-ink-2); }

/* お知らせ・注意 */
.k-alert { padding: 16px 20px; border: 1px solid #DCD4C7; background: #FBF8F3; font-size: 14px; line-height: 1.9; letter-spacing: 0.03em; }
.k-alert--info { border-color: #CDBB9A; background: #F7F1E6; }
.k-alert--ok { border-color: #9DB8A3; background: #EEF4EF; color: #24402C; }
.k-alert--warn { border-color: #D9B88A; background: #FBF2E4; color: #5A3608; }
.k-alert--ng { border-color: #D7A3A3; background: #FAEDED; color: #6B1E1E; }
.k-alert strong { font-weight: 700; }
.k-badge { display: inline-flex; align-items: center; gap: 4px; padding: 3px 10px; font-size: 12px; letter-spacing: 0.06em; border: 1px solid currentColor; line-height: 1.6; white-space: nowrap; }
.k-badge--open { color: #2F5A3B; background: #EEF4EF; }
.k-badge--few { color: #7A4508; background: #FBF2E4; }
.k-badge--full, .k-badge--closed, .k-badge--cancelled { color: #6B6459; background: #EFEBE4; }
.k-badge--cancelled { text-decoration: line-through; }
.k-badge--ng { color: #7A1F1F; background: #FAEDED; }
.k-chip { display: inline-block; padding: 4px 12px; border: 1px solid #DCD4C7; font-size: 12px; color: var(--k-muted); letter-spacing: .06em; }

/* フォーム（入力文字16px以上・タップ領域44px以上） */
.k-form { display: grid; gap: 22px; }
.k-field { display: grid; gap: 8px; }
.k-field label, .k-label { font-size: 14px; letter-spacing: 0.06em; font-weight: 700; color: #23201C; }
.k-req { display: inline-block; margin-left: 8px; padding: 1px 8px; font-size: 11px; font-weight: 400; color: #FBF8F3; background: #8A6A3C; letter-spacing: .08em; vertical-align: 2px; }
.k-opt { display: inline-block; margin-left: 8px; padding: 1px 8px; font-size: 11px; font-weight: 400; color: #5A544C; border: 1px solid #CFC7BA; letter-spacing: .08em; vertical-align: 2px; }
.k-input, .k-select, .k-textarea { width: 100%; min-height: 50px; padding: 12px 14px; font: inherit; font-size: 16px; color: #23201C; background: #fff; border: 1px solid #CFC7BA; border-radius: 0; }
.k-textarea { min-height: 150px; line-height: 1.8; }
.k-input:focus, .k-select:focus, .k-textarea:focus { outline: 2px solid #8A6A3C; outline-offset: 0; border-color: #8A6A3C; }
.k-field--error .k-input, .k-field--error .k-select, .k-field--error .k-textarea { border-color: #9B2C2C; background: #FFF9F9; }
.k-error { margin: 0; font-size: 13px; color: #9B2C2C; letter-spacing: .03em; }
.k-error::before { content: '！ '; font-weight: 700; }
.k-help { margin: 0; font-size: 12px; color: var(--k-muted-2); line-height: 1.8; }
.k-check { display: flex; gap: 12px; align-items: flex-start; min-height: 44px; padding: 10px 0; font-size: 15px; line-height: 1.8; cursor: pointer; }
.k-check input { width: 22px; height: 22px; margin: 3px 0 0; flex: none; accent-color: #8A6A3C; }
.k-radios { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); }
.k-radio { display: flex; gap: 10px; align-items: center; min-height: 52px; padding: 10px 14px; border: 1px solid #CFC7BA; background: #fff; cursor: pointer; font-size: 15px; }
.k-radio:has(input:checked) { border-color: #8A6A3C; background: #F7F1E6; }
.k-radio input { width: 20px; height: 20px; accent-color: #8A6A3C; flex: none; }
.k-row { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }
.k-fieldset { border: 1px solid #E3DCD1; padding: clamp(18px, 3vw, 28px); margin: 0; display: grid; gap: 20px; background: #FBF8F3; }
.k-fieldset legend { padding: 0 10px; font-family: var(--k-mincho-2); font-weight: 600; font-size: 17px; letter-spacing: .06em; }
.k-summary { border: 1px solid #23201C; background: #FBF8F3; }
.k-summary__head { padding: 16px 22px; background: #23201C; color: #F1ECE3; font-family: var(--k-mincho-2); font-size: 16px; letter-spacing: .08em; }
.k-summary__body { padding: 8px 22px 18px; }
.k-total { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding-top: 16px; margin-top: 6px; border-top: 1px solid #23201C; font-family: var(--k-mincho-2); font-weight: 600; }
.k-total strong { font-family: var(--k-en); font-size: 30px; letter-spacing: .02em; }
.k-steps-nav { margin: 0 0 28px; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 6px; font-size: 13px; letter-spacing: .06em; }
.k-steps-nav li { padding: 8px 14px; border: 1px solid #DCD4C7; color: var(--k-muted); background: #FBF8F3; }
.k-steps-nav li[aria-current="step"] { background: #23201C; border-color: #23201C; color: #FBF8F3; }
.k-steps-nav li.is-done { color: #23201C; border-color: #8A6A3C; }
.k-sticky-actions { position: sticky; bottom: 0; z-index: 70; background: rgba(251,248,243,.96); border-top: 1px solid #E3DCD1; padding: 12px 0; }

/* 予約カレンダー */
.k-cal { border: 1px solid #DCD4C7; background: #FBF8F3; }
.k-cal__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; border-bottom: 1px solid #DCD4C7; }
.k-cal__title { margin: 0; font-family: var(--k-mincho); font-weight: 400; font-size: clamp(20px, 2.4vw, 26px); letter-spacing: .08em; }
.k-cal__title small { margin-left: 10px; font-family: var(--k-en); font-size: 12px; letter-spacing: .3em; color: var(--k-accent-text); }
.k-cal__nav { display: flex; gap: 6px; }
.k-cal__nav a, .k-cal__nav button { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 12px; border: 1px solid #DCD4C7; background: #FBF8F3; color: #23201C; font: inherit; font-size: 13px; cursor: pointer; }
.k-cal__nav a:hover, .k-cal__nav button:hover { border-color: #8A6A3C; color: #23201C; }
.k-cal__filters { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; padding: 12px 16px; border-bottom: 1px solid #E3DCD1; background: #F7F2E9; }
.k-cal__filters .k-select { width: auto; min-width: 180px; min-height: 44px; padding: 8px 10px; font-size: 16px; }
.k-cal__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.k-cal__dow { padding: 10px 4px; text-align: center; font-size: 12px; letter-spacing: .1em; color: var(--k-muted); border-bottom: 1px solid #E3DCD1; }
.k-cal__dow--sun { color: #9B2C2C; }
.k-cal__dow--sat { color: #2C4E7A; }
.k-cal__day { min-height: 104px; min-width: 0; border-right: 1px solid #EFE9DF; border-bottom: 1px solid #EFE9DF; padding: 6px; display: flex; flex-direction: column; gap: 4px; background: #FBF8F3; text-align: left; font: inherit; color: inherit; }
.k-cal__day:nth-child(7n) { border-right: 0; }
.k-cal__day--out { background: #F5F1EA; color: #B4AB9D; }
.k-cal__day--today .k-cal__num { background: #23201C; color: #FBF8F3; border-radius: 50%; }
.k-cal__day--has { cursor: pointer; }
.k-cal__day--has:hover { background: #F7F1E6; }
.k-cal__day[aria-pressed="true"], .k-cal__day[aria-selected="true"] { outline: 2px solid #8A6A3C; outline-offset: -2px; background: #F7F1E6; }
.k-cal__num { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; font-family: var(--k-en); font-size: 15px; }
.k-cal__ev { display: block; padding: 3px 5px; font-size: 11px; line-height: 1.35; border-left: 3px solid #8A6A3C; background: #F3EEE4; color: #23201C; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.k-cal__ev--few { border-left-color: #C27A1A; }
.k-cal__ev--full, .k-cal__ev--closed, .k-cal__ev--past { border-left-color: #B4AB9D; color: #6B6459; background: #EFEBE4; }
.k-cal__ev--cancelled { border-left-color: #B4AB9D; color: #6B6459; text-decoration: line-through; background: #EFEBE4; }
.k-cal__more { font-size: 11px; color: var(--k-muted); }
.k-cal__legend { display: flex; flex-wrap: wrap; gap: 8px 14px; padding: 12px 16px; font-size: 12px; color: var(--k-muted); border-top: 1px solid #E3DCD1; }
@media (max-width: 720px) {
  .k-cal__day { min-height: 64px; padding: 4px 2px; align-items: center; }
  .k-cal__ev { display: none; }
  .k-cal__dots { display: flex !important; }
}
.k-cal__dots { display: none; gap: 3px; flex-wrap: wrap; justify-content: center; }
.k-cal__dot { width: 7px; height: 7px; border-radius: 50%; background: #8A6A3C; }
.k-cal__dot--few { background: #C27A1A; }
.k-cal__dot--full, .k-cal__dot--closed, .k-cal__dot--cancelled, .k-cal__dot--past { background: #B4AB9D; }
.k-daylist { margin-top: 20px; }
.k-session { display: grid; grid-template-columns: 1fr auto; gap: 12px 20px; align-items: center; padding: 18px 20px; border: 1px solid #E3DCD1; background: #FBF8F3; }
.k-session + .k-session { margin-top: 10px; }
.k-session__time { font-family: var(--k-en); font-size: 20px; letter-spacing: .04em; }
.k-session__name { margin: 2px 0 4px; font-family: var(--k-mincho-2); font-weight: 600; font-size: 17px; letter-spacing: .05em; }
.k-session__meta { font-size: 13px; color: var(--k-muted); line-height: 1.8; }
@media (max-width: 560px) { .k-session { grid-template-columns: 1fr; } .k-session .k-btn { width: 100%; } }
.k-viewtoggle { display: inline-flex; border: 1px solid #DCD4C7; }
.k-viewtoggle button { min-height: 44px; padding: 0 14px; border: 0; background: #FBF8F3; font: inherit; font-size: 13px; cursor: pointer; color: #5A544C; }
.k-viewtoggle button[aria-pressed="true"] { background: #23201C; color: #FBF8F3; }

/* ショップ */
.k-shop { display: grid; gap: clamp(24px, 4vw, 48px); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1000px) { .k-shop { grid-template-columns: 280px minmax(0, 1fr); } }
.k-filters { display: grid; gap: 18px; align-content: start; }
.k-filters details { border: 1px solid #E3DCD1; background: #FBF8F3; }
.k-filters summary { min-height: 48px; padding: 12px 16px; cursor: pointer; font-family: var(--k-mincho-2); font-weight: 600; letter-spacing: .06em; }
.k-filters .k-filters__body { padding: 4px 16px 16px; display: grid; gap: 12px; }
.k-products { display: grid; gap: clamp(16px, 2.4vw, 28px); grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); }
.k-product { position: relative; display: flex; flex-direction: column; gap: 8px; color: #23201C; }
.k-product:hover { color: #23201C; }
.k-product__img { position: relative; aspect-ratio: 3 / 4; overflow: hidden; background: #E9E2D6; }
.k-product__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.k-product:hover .k-product__img img { transform: scale(1.03); }
.k-product__name { margin: 4px 0 0; font-family: var(--k-mincho-2); font-weight: 600; font-size: 16px; line-height: 1.6; letter-spacing: .04em; }
.k-product__price { font-family: var(--k-en); font-size: 18px; letter-spacing: .03em; }
.k-product__price small { font-family: inherit; font-size: 12px; color: var(--k-muted); margin-left: 4px; }
.k-fav { position: absolute; top: 8px; right: 8px; z-index: 2; width: 44px; height: 44px; border: 1px solid rgba(255,255,255,.8); background: rgba(251,248,243,.88); color: #8A6A3C; cursor: pointer; font-size: 18px; display: inline-flex; align-items: center; justify-content: center; }
.k-fav[aria-pressed="true"] { background: #8A6A3C; color: #FBF8F3; border-color: #8A6A3C; }
.k-gallery { display: grid; gap: 10px; }
.k-gallery__main { position: relative; aspect-ratio: 3 / 4; background: #E9E2D6; overflow: hidden; cursor: zoom-in; border: 0; padding: 0; width: 100%; }
.k-gallery__main img { width: 100%; height: 100%; object-fit: cover; }
.k-gallery__thumbs { display: grid; grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)); gap: 8px; }
.k-gallery__thumbs button { padding: 0; border: 1px solid #E3DCD1; background: none; aspect-ratio: 1; overflow: hidden; cursor: pointer; min-height: 44px; }
.k-gallery__thumbs button[aria-current="true"] { border-color: #8A6A3C; outline: 1px solid #8A6A3C; }
.k-gallery__thumbs img { width: 100%; height: 100%; object-fit: cover; }
.k-lightbox { position: fixed; inset: 0; z-index: 150; background: rgba(20,18,15,.92); display: none; align-items: center; justify-content: center; padding: 16px; }
.k-lightbox[open], .k-lightbox.is-open { display: flex; }
.k-lightbox img { max-width: 100%; max-height: 90vh; object-fit: contain; }
.k-lightbox button { position: absolute; top: 12px; right: 12px; min-width: 48px; min-height: 48px; background: #FBF8F3; border: 0; cursor: pointer; font-family: var(--k-en); letter-spacing: .2em; }
.k-minical { width: 100%; border-collapse: collapse; table-layout: fixed; }
.k-minical th { padding: 6px 0; font-size: 12px; font-weight: 400; color: var(--k-muted); }
.k-minical td { padding: 2px; }
.k-minical button { width: 100%; min-height: 44px; border: 1px solid transparent; background: #FBF8F3; font-family: var(--k-en); font-size: 15px; cursor: pointer; color: #23201C; }
.k-minical button.is-ok { background: #EEF4EF; border-color: #CFE0D3; }
.k-minical button.is-ok:hover { border-color: #3F6B4A; }
.k-minical button[disabled] { color: #B4AB9D; background: #F2EEE8; cursor: not-allowed; text-decoration: line-through; }
.k-minical button.is-selected, .k-minical button.is-range { background: #23201C; color: #FBF8F3; border-color: #23201C; text-decoration: none; }
.k-minical button.is-range { background: #5A544C; border-color: #5A544C; }
.k-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.k-table th, .k-table td { padding: 12px 10px; border-bottom: 1px solid #E3DCD1; text-align: left; vertical-align: top; line-height: 1.7; }
.k-table th { font-weight: 700; font-size: 13px; color: var(--k-muted); letter-spacing: .06em; }
.k-table .num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.k-scroll-x { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.k-pager { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; margin-top: 36px; padding: 0; list-style: none; }
.k-pager a, .k-pager span { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 12px; border: 1px solid #DCD4C7; color: #23201C; font-family: var(--k-en); }
.k-pager [aria-current="page"] { background: #23201C; color: #FBF8F3; border-color: #23201C; }
.k-pager .is-disabled { color: #B4AB9D; }

/* お知らせ・記事本文 */
.k-prose { font-size: 16px; line-height: 2.1; letter-spacing: 0.04em; color: var(--k-ink-2); }
.k-prose h2 { margin: 2.2em 0 .8em; font-family: var(--k-mincho); font-weight: 400; font-size: clamp(22px, 2.6vw, 30px); letter-spacing: .08em; color: #23201C; }
.k-prose h3 { margin: 1.8em 0 .6em; font-family: var(--k-mincho-2); font-weight: 600; font-size: 19px; color: #23201C; }
.k-prose p { margin: 0 0 1.2em; }
.k-prose a { color: var(--k-accent-text); border-bottom: 1px solid currentColor; }
.k-prose ul, .k-prose ol { padding-left: 1.4em; }
.k-prose img { height: auto; margin: 1.6em 0; }
.k-prose table { border-collapse: collapse; width: 100%; font-size: 14px; }
.k-prose th, .k-prose td { border: 1px solid #DCD4C7; padding: 10px; text-align: left; }
.k-newslist { list-style: none; margin: 0; padding: 0; border-top: 1px solid #DCD4C7; }
.k-newslist li a { display: grid; grid-template-columns: 7.5em 1fr; gap: 20px; padding: 20px 4px; border-bottom: 1px solid #DCD4C7; color: #23201C; font-size: 15px; line-height: 1.8; }
.k-newslist time { font-family: var(--k-en); letter-spacing: .1em; color: var(--k-accent-text); }
@media (max-width: 560px) { .k-newslist li a { grid-template-columns: 1fr; gap: 4px; } }

.k-langnote { margin: 0; padding: 12px var(--k-gutter); background: #F7F1E6; border-bottom: 1px solid #E3DCD1; font-size: 13px; color: #5A3608; line-height: 1.8; }
.k-hidden { display: none !important; }
[hidden] { display: none !important; }
@media print { header, nav, footer, .k-fixed-cta { display: none !important; } .k-page { padding-top: 0; } }

/* スマートフォン：固定の予約・問い合わせボタンは下端の横並びにし、本文・入力欄を隠さない */
@media (max-width: 720px) {
  .k-fixed-cta { left: 0; right: 0 !important; bottom: 0 !important; flex-direction: row !important; box-shadow: 0 -4px 18px rgba(0,0,0,.14) !important; }
  .k-fixed-cta a { flex: 1; min-height: 50px !important; font-size: 12px !important; padding: 0 8px !important; }
  body:has(.k-fixed-cta) { padding-bottom: 50px; }
  body.k-typing .k-fixed-cta { display: none !important; }
}

/* ===== トップ：目的から選ぶ（ヒーロー直下の帯）===== */
.k-purpose { background: #211E1A; color: #F1ECE3; padding: 0 clamp(20px, 6vw, 96px); }
.k-purpose__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1px; background: rgba(241, 236, 227, 0.14); border-top: 1px solid rgba(241, 236, 227, 0.14); }
@media (min-width: 1100px) { .k-purpose__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.k-purpose__item { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: clamp(14px, 1.6vw, 22px); padding: clamp(26px, 3.2vw, 40px) clamp(4px, 2vw, 32px); background: #211E1A; color: #F1ECE3; transition: background .25s; }
.k-purpose__item:hover { background: #2B2723; color: #F1ECE3; }
.k-purpose__no { align-self: start; padding-top: 2px; font-family: var(--k-en); font-size: 12px; letter-spacing: 0.2em; color: #C39A5C; }
.k-purpose__body { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.k-purpose__en { font-family: var(--k-en); font-size: 10px; letter-spacing: 0.32em; color: #A79E90; }
.k-purpose__title { font-family: 'Hina Mincho', serif; font-size: clamp(18px, 1.8vw, 22px); line-height: 1.5; letter-spacing: 0.1em; }
.k-purpose__note { font-size: 12px; line-height: 1.8; letter-spacing: 0.05em; color: #B8AFA2; }
.k-purpose__arrow { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid rgba(241, 236, 227, 0.3); border-radius: 50%; font-family: var(--k-en); font-size: 15px; transition: background .25s, border-color .25s, transform .25s; }
.k-purpose__item:hover .k-purpose__arrow { border-color: #C39A5C; transform: translateX(4px); }
.k-purpose__item--primary .k-purpose__arrow { background: #8A6A3C; border-color: #8A6A3C; color: #FBF8F3; }
.k-purpose__item--primary:hover .k-purpose__arrow { background: #C39A5C; border-color: #C39A5C; }
.k-purpose__item--primary .k-purpose__en { color: #E7D3B0; }

/* PC・タブレット：固定の予約・問い合わせボタンを右端の縦書きタブにし、本文（カレンダーの土曜列など）に重ならないようにする */
@media (min-width: 721px) {
  .k-fixed-cta { bottom: auto !important; top: 50%; transform: translateY(-50%); }
  .k-fixed-cta a { writing-mode: vertical-rl; width: 48px; min-height: 0 !important; padding: 22px 0 !important; font-size: 13px; letter-spacing: 0.24em !important; line-height: 1; }
}

/* 写真の行並べ（キッズ向け着付けのギャラリー・企業紹介の活動写真）：行ごとに高さをそろえ、元写真の縦横比を保つ */
.k-jrows { display: grid; gap: clamp(8px, 1.1vw, 14px); }
.k-jrow { display: flex; gap: clamp(8px, 1.1vw, 14px); }
.k-jitem { position: relative; margin: 0; min-width: 0; overflow: hidden; background: #E9E2D6; }
.k-jitem img { transition: transform 1.2s cubic-bezier(.2,.7,.2,1); }
.k-jitem:hover img { transform: scale(1.035); }
.k-jitem__cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 36px 14px 12px; background: linear-gradient(to top, rgba(20,18,15,.78), rgba(20,18,15,0)); color: #F1ECE3; font-size: 12px; line-height: 1.6; letter-spacing: .08em; pointer-events: none; }
@media (max-width: 720px) {
  .k-jrows, .k-jrow { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .k-jrows > .k-jrow { display: contents; }
  .k-jitem { aspect-ratio: 4 / 5 !important; }
}
/* キッズ向け着付け：利用場面の写真カード */
.k-scenes { display: grid; gap: clamp(12px, 1.8vw, 22px); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.k-scene { margin: 0; display: grid; gap: 12px; align-content: start; }
.k-scene__media { position: relative; aspect-ratio: 4 / 5; overflow: hidden; background: #E9E2D6; }
.k-scene figcaption { display: flex; align-items: baseline; gap: 10px; font-family: var(--k-mincho-2); font-weight: 600; font-size: clamp(15px, 1.4vw, 17px); letter-spacing: .1em; color: #23201C; }
.k-scene figcaption span { font-family: var(--k-en); font-weight: 400; font-size: 11px; letter-spacing: .3em; color: var(--k-accent-text); }
