/* AZent website kit — page-level styles consuming the design tokens. */
/* ==========================================================================
   AZent — CORE Design System v1.1
   Color & Type Tokens
   ========================================================================== */
:root {
  /* ----- Color: Primary (Passion · Action · Core) ----- */
  --azent-red:        #C8102E;
  --azent-red-dark:   #9A0C24;
  --azent-red-light:  #FCE8EC;
  /* ----- Color: Neutrals (Trust · Intellect · Skeleton) ----- */
  --charcoal-black:   #1A1A1A;
  --graphite:         #3D3D3D;
  --slate-gray:       #6B7280;
  --cool-gray:        #9CA3AF;
  --mist-gray:        #E5E7EB;
  --off-white:        #F9FAFB;
  --pure-white:       #FFFFFF;
  /* ----- Color: Secondary (use sparingly) ----- */
  --wellness-green:   #2E7D5B;
  --trust-navy:       #1E3A5F;
  /* ----- Semantic foreground ----- */
  --fg-1:             var(--charcoal-black);  /* headings, strong body */
  --fg-2:             var(--graphite);        /* body text */
  --fg-3:             var(--slate-gray);      /* captions, helper */
  --fg-disabled:      var(--cool-gray);
  --fg-on-dark:       var(--pure-white);
  --fg-accent:        var(--azent-red);
  /* ----- Semantic background ----- */
  --bg-base:          var(--pure-white);
  --bg-section:       var(--off-white);
  --bg-accent-dark:   var(--charcoal-black);
  --bg-tag-soft:      var(--azent-red-light);
  /* ----- Border & divider ----- */
  --border-default:   var(--mist-gray);
  --border-strong:    var(--charcoal-black);
  --border-accent:    var(--azent-red);
  /* ----- Status ----- */
  --status-success:   var(--wellness-green);
  --status-data:      var(--trust-navy);
  /* ==========================================================================
     Typography
     ========================================================================== */
  --font-sans: 'Noto Sans JP', 'Hiragino Sans', 'Yu Gothic Medium', 'Meiryo', sans-serif;
  /* Weights */
  --fw-light:   300;
  --fw-regular: 400;
  --fw-medium:  500;
  --fw-bold:    700;
  --fw-black:   900;
  /* Type scale (px) */
  --fs-h1:     56px; /* 48–64 */
  --fs-h2:     36px; /* 32–40 */
  --fs-h3:     24px; /* 22–26 */
  --fs-h4:     18px;
  --fs-body:   16px;
  --fs-caption:13px;
  --fs-small:  12px;
  --fs-data:   1.2em; /* multiplied off body */
  /* Line heights */
  --lh-h1:     1.2;
  --lh-h2:     1.3;
  --lh-h3:     1.4;
  --lh-body:   1.8;
  /* Tracking */
  --ls-tight:  -0.02em;
  --ls-tighter:-0.03em;
  --ls-normal: 0;
  /* ==========================================================================
     Spacing — "Breathing whitespace"
     ========================================================================== */
  --space-1:   4px;
  --space-2:   8px;
  --space-3:   12px;
  --space-4:   16px;
  --space-5:   24px;
  --space-6:   32px;
  --space-7:   48px;
  --space-8:   64px;
  --space-9:   80px;   /* min section padding */
  --space-10: 120px;   /* recommended section padding */
  /* ==========================================================================
     Radius
     ========================================================================== */
  --radius-sm: 4px;    /* buttons, inputs */
  --radius-md: 8px;    /* cards */
  --radius-lg: 16px;
  --radius-pill: 999px;
  /* ==========================================================================
     Shadows
     ========================================================================== */
  --shadow-card:    0 2px 8px rgba(0, 0, 0, 0.06);
  --shadow-cta:     0 4px 12px rgba(200, 16, 46, 0.25);
  --shadow-cta-hover: 0 8px 18px rgba(200, 16, 46, 0.30);
  --shadow-elevated:0 8px 24px rgba(0, 0, 0, 0.08);
  /* ==========================================================================
     Motion
     ========================================================================== */
  --ease-out: cubic-bezier(0.22, 0.61, 0.36, 1);
  --duration-fast: 120ms;
  --duration-base: 200ms;
  --duration-slow: 320ms;
}
/* ==========================================================================
   Base type styles — semantic helpers
   ========================================================================== */
html, body {
  font-family: var(--font-sans);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  color: var(--fg-2);
  background: var(--bg-base);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
h1, .h1 {
  font-size: var(--fs-h1);
  font-weight: var(--fw-black);
  line-height: var(--lh-h1);
  letter-spacing: var(--ls-tight);
  color: var(--fg-1);
  margin: 0;
}
h2, .h2 {
  font-size: var(--fs-h2);
  font-weight: var(--fw-bold);
  line-height: var(--lh-h2);
  color: var(--fg-1);
  margin: 0;
}
h3, .h3 {
  font-size: var(--fs-h3);
  font-weight: var(--fw-bold);
  line-height: var(--lh-h3);
  color: var(--fg-1);
  margin: 0;
}
h4, .h4 {
  font-size: var(--fs-h4);
  font-weight: var(--fw-bold);
  line-height: 1.5;
  color: var(--fg-1);
  margin: 0;
}
p, .body {
  font-size: var(--fs-body);
  font-weight: var(--fw-regular);
  line-height: var(--lh-body);
  color: var(--fg-2);
}
.caption {
  font-size: var(--fs-caption);
  font-weight: var(--fw-regular);
  line-height: 1.6;
  color: var(--fg-3);
}
.data {
  font-weight: var(--fw-black);
  font-size: var(--fs-data);
  color: var(--fg-1);
  letter-spacing: var(--ls-tight);
  font-feature-settings: "tnum" 1;
}
strong, .strong {
  font-weight: var(--fw-bold);
  color: var(--fg-1);
}
/* AZent's signature emphasis: bold + red underline */
.emph-underline {
  font-weight: var(--fw-bold);
  color: var(--fg-1);
  background-image: linear-gradient(transparent 60%, var(--azent-red-light) 60%);
  /* Red bar variant: */
}
.emph-bar {
  font-weight: var(--fw-bold);
  color: var(--fg-1);
  border-bottom: 2px solid var(--azent-red);
}
/* Section heading underline accent — 4px x 60px red bar */
.heading-accent::after {
  content: "";
  display: block;
  width: 60px;
  height: 4px;
  background: var(--azent-red);
  margin-top: var(--space-4);
}
/* ==========================================================================
   Utility: link
   ========================================================================== */
a {
  color: var(--azent-red);
  text-decoration: none;
  transition: color var(--duration-fast) var(--ease-out);
}
a:hover { color: var(--azent-red-dark); text-decoration: underline; }
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: var(--font-sans);
  background: var(--pure-white);
  color: var(--graphite);
  line-height: 1.8;
}
img { max-width: 100%; display: block; }
.container { max-width: 1180px; margin: 0 auto; padding: 0 32px; }
/* Buttons */
.btn { font-family: var(--font-sans); font-weight: 700; font-size: 15px; padding: 16px 32px; border-radius: 4px; border: none; cursor: pointer; display: inline-flex; align-items: center; gap: 10px; text-decoration: none; transition: transform 200ms var(--ease-out), background 200ms var(--ease-out), box-shadow 200ms var(--ease-out), color 200ms var(--ease-out); white-space: nowrap; }
.btn-primary { background: var(--azent-red); color: #fff; box-shadow: var(--shadow-cta); }
.btn-primary:hover { background: var(--azent-red-dark); transform: translateY(-2px); box-shadow: var(--shadow-cta-hover); color: #fff; }
.btn-secondary { background: transparent; color: var(--charcoal-black); border: 1px solid var(--charcoal-black); }
.btn-secondary:hover { background: var(--charcoal-black); color: #fff; transform: translateY(-2px); }
/* 汎用の a:hover（文字色・下線）がボタンに効かないようにする。
   効くと赤ボタンのホバー時に文字と背景が同じ色になり、文字が消える（スマホではタップ時） */
.btn:hover { text-decoration: none; }
.btn-sm { padding: 10px 20px; font-size: 13px; }
.btn .arrow { display: inline-block; transition: transform 200ms var(--ease-out); }
.btn:hover .arrow { transform: translateX(2px); }
/* Section heading */
.eyebrow { font-size: 12px; color: var(--azent-red); font-weight: 700; letter-spacing: 0.10em; text-transform: uppercase; }
.section-h2 { font-size: 36px; font-weight: 700; color: var(--charcoal-black); line-height: 1.3; margin: 8px 0 0; }
.section-h2.with-bar::after { content:""; display:block; width: 60px; height: 4px; background: var(--azent-red); margin-top: 20px; }
.section-lead { color: var(--graphite); margin-top: 18px; max-width: 640px; }
section { padding: 96px 0; }
section.soft { background: var(--off-white); }
section.dark { background: var(--charcoal-black); color: #fff; }
section.dark .section-h2 { color: #fff; }
section.dark .section-lead { color: var(--cool-gray); }
/* Cards */
.card { background: #fff; border-radius: 8px; box-shadow: var(--shadow-card); padding: 28px; }
.card-bordered { background: #fff; border-radius: 8px; border: 1px solid var(--mist-gray); padding: 28px; }
/* Tags */
.tag-soft { display: inline-flex; align-items: center; padding: 4px 12px; border-radius: 999px; background: var(--azent-red-light); color: var(--azent-red); font-size: 12px; font-weight: 500; }
/* Trust badge */
.trust-badge { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; color: var(--graphite); }
.trust-badge .dot { width: 6px; height: 6px; border-radius: 999px; background: var(--azent-red); }
.trust-badge strong { color: var(--charcoal-black); font-weight: 700; }
html { scroll-behavior: smooth; }
  body { margin: 0; }
  [id] { scroll-margin-top: 88px; }
  details > summary { list-style: none; }
  details > summary::-webkit-details-marker { display: none; }

/* ===== 公開用に追加（レスポンシブ / モバイルCTA） ===== */
@media (max-width: 880px){
  .site-nav a:not(.btn){ display:none; }
  .site-nav{ gap:10px; }
}
@media (max-width: 400px){ .brand-en{ display:none; } }
.mobile-cta{ display:none; }
@media (max-width: 720px){
  .mobile-cta{
    display:flex; position:fixed; left:0; right:0; bottom:0; z-index:60; gap:8px;
    padding:10px 12px calc(10px + env(safe-area-inset-bottom));
    background:rgba(255,255,255,.96); border-top:1px solid var(--mist-gray);
    backdrop-filter:saturate(120%) blur(4px);
  }
  .mobile-cta a{ flex:1; justify-content:center; padding:14px 8px; font-size:14px; }
  body{ padding-bottom:78px; }
}
/* ===== 営業情報（本日 / 今週 / 今後30日） ===== */
/* .btn 等の display 指定が hidden 属性より強いため、明示的に打ち消す */
[hidden]{ display:none !important; }
.ew-dot{ display:inline-block; width:9px; height:9px; border-radius:50%; background:var(--cool-gray); margin-right:7px; vertical-align:1px; }
.ew-week{ display:grid; gap:1px; background:var(--mist-gray); border:1px solid var(--mist-gray); border-radius:10px; overflow:hidden; grid-template-columns:1fr; }
.ew-day{ background:var(--pure-white); padding:10px 12px; display:grid; grid-template-columns:5.6em 1fr; gap:10px; align-items:start; }
.ew-day.is-today{ background:var(--azent-red-light); }
.ew-date{ font-size:12px; font-weight:700; color:var(--charcoal-black); }
.ew-badge{ display:inline-block; margin-left:5px; font-size:10px; font-weight:700; color:var(--azent-red); }
.ew-lines{ font-size:12px; line-height:1.7; color:var(--graphite); min-width:0; }
/* 行ごとに強さを変える。通常営業は控えめ、貸切・イベント等の例外は一段強く */
.ew-slot{ display:block; }
.ew-slot.is-normal{ color:var(--graphite); font-weight:400; }
.ew-slot.is-exception{ color:var(--charcoal-black); font-weight:500; }
.ew-cont{ padding-left:16px; }
/* 今週の営業のイベント名：長い名前は2行までで省略（語の途中でも折り返す） */
.ew-evname{ display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; line-clamp:2; overflow:hidden; overflow-wrap:anywhere; }
.ew-dot-sm{ width:6px; height:6px; margin-right:6px; opacity:.8; }
.ew-book{ display:block; font-size:11px; line-height:1.7; color:var(--slate-gray,#6B7280); }
.ew-book-time{ margin-top:4px; }
@media (min-width: 760px){
  .ew-week{ grid-template-columns:repeat(7,minmax(0,1fr)); }
  .ew-day{ grid-template-columns:minmax(0,1fr); gap:5px; padding:10px 8px; }
}
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.01ms !important; transition-duration:.01ms !important; }
}
:focus-visible{ outline:3px solid var(--azent-red); outline-offset:2px; }


/* ==========================================================================
   縁がわレイヤー
   上の AZent CORE トークンを上書きし、生成り・木・墨・朱の配色にする。
   レイアウトと余白はそのまま、色と手描きのニュアンスだけを足す。
   ========================================================================== */
:root{
  /* 朱（アクセント・CTA）。白文字とのコントラスト 5.35:1 */
  --azent-red:        #C23A22;
  --azent-red-dark:   #99301C;
  --azent-red-light:  #F8E6DE;
  /* 墨・生成り・木 */
  --charcoal-black:   #211C18;
  --graphite:         #3E3630;
  --slate-gray:       #76695E;
  --cool-gray:        #A69A8E;
  --mist-gray:        #E6DCCD;
  --off-white:        #F5EEE2;   /* 生成り：セクション背景 */
  --pure-white:       #FFFCF7;   /* ほぼ白：基調面・カード */
  --wood:             #A8754A;
  --wood-light:       #EFE3D1;
  --shadow-card:      0 2px 10px rgba(60, 40, 20, 0.07);
  --shadow-elevated:  0 10px 28px rgba(60, 40, 20, 0.12);
  --shadow-cta:       0 4px 12px rgba(194, 58, 34, 0.25);
  --shadow-cta-hover: 0 8px 18px rgba(194, 58, 34, 0.30);
  --font-hand: 'Klee One', 'Noto Sans JP', 'Hiragino Sans', sans-serif;
}
@media (max-width: 720px){
  .mobile-cta{ background:rgba(255,252,247,.96); }
}

/* 手書き文字（短い一言だけに使う。見出し・本文には使わない） */
.ew-hand{ font-family:var(--font-hand); font-weight:600; letter-spacing:.02em; }

/* 筆のかすれ風の区切り線（従来の 60×4px の赤いバーの置き換え） */
.ew-brush{
  width:74px; height:11px; background:var(--azent-red);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 14'%3E%3Cpath d='M3 8.6C11 5.2 25 4.3 43 4.7c18 .4 34 .1 52-.7 8-.3 14-.1 20 .9 1.1.2 1.3 1.7.2 2.1-6 2.1-15 2.7-25 3-17 .6-35 .5-52 1.1-12 .5-24 .9-34 1.2-2.5.1-3.4-2-2.4-3.8z'/%3E%3Cpath d='M16 11.9c22-.6 48-.8 74-1.6' fill='none' stroke='%23000' stroke-width='.9' stroke-linecap='round' opacity='.55'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 14'%3E%3Cpath d='M3 8.6C11 5.2 25 4.3 43 4.7c18 .4 34 .1 52-.7 8-.3 14-.1 20 .9 1.1.2 1.3 1.7.2 2.1-6 2.1-15 2.7-25 3-17 .6-35 .5-52 1.1-12 .5-24 .9-34 1.2-2.5.1-3.4-2-2.4-3.8z'/%3E%3Cpath d='M16 11.9c22-.6 48-.8 74-1.6' fill='none' stroke='%23000' stroke-width='.9' stroke-linecap='round' opacity='.55'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
}

/* 水彩イラストの額装：木の色の細い外枠で「描かれたもの」らしさを出す */
.ew-illust{
  display:block; width:100%; height:auto; border-radius:14px;
  background:var(--wood-light); box-shadow:var(--shadow-elevated);
  outline:1px solid rgba(168,117,74,.28); outline-offset:6px;
}
.ew-figure{ margin:0; }
.ew-figure figcaption{ margin-top:14px; font-size:15px; color:var(--graphite); text-align:center; }

/* 共通の見出しブロック（新規セクション用。既存セクションは inline style のまま） */
.ew-sec{ padding:clamp(56px, 8vw, 112px) 20px; }
.ew-wrap{ max-width:1120px; margin:0 auto; }
.ew-eyebrow{ display:inline-block; font-size:12px; font-weight:700; color:var(--azent-red); letter-spacing:.14em; text-transform:uppercase; }
.ew-h2{ font-size:clamp(24px, 3.4vw, 36px); font-weight:700; line-height:1.4; color:var(--charcoal-black); margin:10px 0 0; }
.ew-lead{ font-size:16px; line-height:2; color:var(--graphite); margin:24px 0 0; max-width:640px; }

/* はじめての方へ：イラスト＋お客様の声 */
.ew-first-grid{ display:grid; grid-template-columns:1fr; gap:clamp(28px, 4vw, 52px); margin-top:34px; align-items:center; }
@media (min-width: 900px){ .ew-first-grid{ grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); } }
.ew-voice{ background:var(--pure-white); border:1px solid var(--mist-gray); border-left:3px solid var(--azent-red); border-radius:8px; padding:18px 20px; font-size:15px; line-height:1.9; color:var(--charcoal-black); }
.ew-voices{ display:grid; gap:12px; margin-top:22px; }

/* お店までの道のり（ビル5階の不安をなくす3ステップ） */
.ew-route{ margin-top:clamp(40px, 6vw, 64px); background:var(--pure-white); border:1px solid var(--mist-gray); border-radius:14px; padding:clamp(22px, 3vw, 32px); }
.ew-route h3{ font-size:18px; font-weight:700; color:var(--charcoal-black); margin:0; }
.ew-route-note{ font-size:14px; color:var(--slate-gray); margin:6px 0 0; line-height:1.8; }
/* スマホ：①は全幅の文字ブロック、②③は写真を横並び。PC：3列 */
.ew-steps{ list-style:none; margin:20px 0 0; padding:0; display:grid; gap:14px 12px; grid-template-columns:repeat(2, minmax(0,1fr)); }
.ew-steps > .ew-step:first-child{ grid-column:1 / -1; }
@media (min-width: 760px){
  .ew-steps{ grid-template-columns:repeat(3, minmax(0,1fr)); gap:18px; }
  .ew-steps > .ew-step:first-child{ grid-column:auto; }
}
.ew-step{ display:flex; flex-direction:column; gap:8px; min-width:0; }
.ew-step-no{ display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:50%; background:var(--charcoal-black); color:var(--pure-white); font-size:13px; font-weight:700; flex:none; }
/* 番号を文中に置き、狭い列でも本文が列幅いっぱいに折り返すようにする */
.ew-step-head{ display:block; font-size:14px; font-weight:700; color:var(--charcoal-black); line-height:1.6; }
.ew-step-head .ew-step-no{ width:22px; height:22px; font-size:12px; margin-right:6px; vertical-align:1px; }
.ew-step img{ order:-1; width:100%; aspect-ratio:4 / 3; height:auto; object-fit:cover; border-radius:10px; background:var(--mist-gray); }
.ew-step-map{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px 14px; border-radius:10px; background:var(--off-white); padding:14px 16px; }
.ew-step-map p{ margin:0; font-size:14px; line-height:1.75; color:var(--graphite); }
@media (min-width: 760px){
  .ew-step img{ order:0; height:clamp(170px, 20vw, 220px); aspect-ratio:auto; }
  .ew-step-map{ flex-direction:column; align-items:flex-start; justify-content:center; flex-wrap:nowrap; height:clamp(170px, 20vw, 220px); padding:18px; }
}

/* 安心して過ごしていただくために */
.ew-assure{ display:grid; grid-template-columns:1fr; gap:clamp(24px, 4vw, 48px); margin-top:clamp(36px, 5vw, 52px); align-items:start; }
@media (min-width: 760px){ .ew-assure{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
.ew-assure h3{ font-size:18px; font-weight:700; color:var(--charcoal-black); margin:0 0 14px; }
.ew-checks{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.ew-checks li{ display:flex; gap:12px; font-size:15px; line-height:1.7; color:var(--graphite); }
.ew-checks li::before{ content:"—"; color:var(--azent-red); font-weight:900; flex:none; }
.ew-note-box{ background:var(--off-white); border-radius:10px; padding:20px 22px; }
.ew-note-box strong{ display:block; font-size:14px; color:var(--charcoal-black); margin-bottom:6px; }
.ew-note-box p{ margin:0; font-size:14px; line-height:1.85; color:var(--slate-gray); }

/* 貸切・イベント（トップの導線ブロック） */
.ew-party{ background:var(--wood-light); }
.ew-party-grid{ display:grid; grid-template-columns:1fr; gap:clamp(28px, 5vw, 60px); align-items:center; }
@media (min-width: 900px){ .ew-party-grid{ grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); } }
.ew-facts{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px; margin-top:24px; }
.ew-fact{ background:var(--pure-white); border-radius:10px; padding:14px 16px; }
.ew-fact b{ display:block; font-size:15px; color:var(--charcoal-black); line-height:1.5; }
.ew-fact span{ display:block; font-size:12px; color:var(--slate-gray); margin-top:3px; line-height:1.6; }
.ew-cta-row{ display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }

/* 小さい画面では横並びボタンを全幅に */
@media (max-width: 480px){
  .ew-cta-row .btn{ flex:1 1 100%; justify-content:center; }
}

/* ==========================================================================
   貸切・イベントページ（/private/）
   ========================================================================== */
.pv-hero{ background:var(--off-white); padding:clamp(40px, 6vw, 88px) 20px clamp(48px, 7vw, 96px); }
.pv-hero-grid{ display:grid; grid-template-columns:1fr; gap:clamp(28px, 5vw, 56px); align-items:center; }
@media (min-width: 900px){ .pv-hero-grid{ grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); } }
.pv-h1{ font-size:clamp(28px, 3.6vw, 40px); font-weight:900; line-height:1.4; letter-spacing:-0.01em; color:var(--charcoal-black); margin:14px 0 0; }
.pv-lead{ font-size:clamp(15px, 1.6vw, 17px); line-height:2; color:var(--graphite); margin:20px 0 0; }
.pv-strip{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:1px; background:var(--mist-gray); border:1px solid var(--mist-gray); border-radius:12px; overflow:hidden; margin-top:clamp(32px, 5vw, 56px); }
@media (min-width: 760px){ .pv-strip{ grid-template-columns:repeat(4, minmax(0,1fr)); } }
.pv-strip div{ background:var(--pure-white); padding:18px 14px; text-align:center; }
.pv-strip b{ display:block; font-size:clamp(16px, 2vw, 20px); font-weight:900; color:var(--charcoal-black); line-height:1.4; }
.pv-strip span{ display:block; font-size:12px; color:var(--slate-gray); margin-top:4px; }

/* プラン */
.pv-plans{ display:grid; grid-template-columns:1fr; gap:18px; margin-top:34px; }
@media (min-width: 760px){ .pv-plans{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
.pv-plan{ background:var(--pure-white); border:1px solid var(--mist-gray); border-radius:14px; padding:clamp(22px, 3vw, 32px); box-shadow:var(--shadow-card); }
.pv-plan.is-premium{ border:2px solid var(--wood); }
.pv-plan-name{ font-size:18px; font-weight:700; color:var(--charcoal-black); margin:0; }
.pv-plan-price{ margin:10px 0 0; display:flex; align-items:baseline; gap:6px; color:var(--charcoal-black); }
.pv-plan-price b{ font-size:clamp(32px, 4vw, 40px); font-weight:900; letter-spacing:-0.02em; line-height:1; }
.pv-plan-price span{ font-size:15px; font-weight:700; color:var(--slate-gray); }
.pv-plan ul{ list-style:none; margin:20px 0 0; padding:18px 0 0; border-top:1px dashed var(--mist-gray); display:grid; gap:9px; }
.pv-plan li{ display:flex; gap:10px; font-size:15px; line-height:1.6; color:var(--graphite); }
.pv-plan li::before{ content:""; flex:none; width:6px; height:6px; margin-top:.65em; border-radius:50%; background:var(--azent-red); }
.pv-plan li.is-up{ color:var(--charcoal-black); font-weight:700; }
.pv-plan li.is-up::before{ background:var(--wood); }
.pv-small{ font-size:13px; line-height:1.8; color:var(--slate-gray); margin:16px 0 0; }

/* 設備 */
.pv-equip{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:12px; margin-top:30px; }
@media (min-width: 900px){ .pv-equip{ grid-template-columns:repeat(4, minmax(0,1fr)); } }
.pv-equip div{ background:var(--pure-white); border-radius:12px; padding:18px; border:1px solid var(--mist-gray); }
.pv-equip svg{ width:28px; height:28px; color:var(--wood); display:block; }
.pv-equip b{ display:block; font-size:15px; color:var(--charcoal-black); margin-top:10px; line-height:1.5; }
.pv-equip span{ display:block; font-size:13px; color:var(--slate-gray); margin-top:3px; line-height:1.6; }
.pv-callout{ margin-top:18px; background:var(--pure-white); border-left:3px solid var(--wood); border-radius:0 10px 10px 0; padding:14px 18px; font-size:14px; line-height:1.8; color:var(--graphite); }

/* 利用シーン */
.pv-cases{ display:grid; grid-template-columns:1fr; gap:14px; margin-top:32px; }
@media (min-width: 640px){ .pv-cases{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (min-width: 1000px){ .pv-cases{ grid-template-columns:repeat(3, minmax(0,1fr)); } }
.pv-case{ background:var(--off-white); border-radius:12px; padding:22px 22px 20px; }
.pv-case h3{ font-size:17px; font-weight:700; color:var(--charcoal-black); margin:0; display:flex; align-items:center; gap:10px; }
.pv-case h3::before{ content:""; flex:none; width:18px; height:3px; border-radius:2px; background:var(--azent-red); }
.pv-case p{ font-size:14px; line-height:1.85; color:var(--graphite); margin:10px 0 0; }

/* ご相談から当日まで */
.pv-flow{ list-style:none; margin:32px 0 0; padding:0; display:grid; grid-template-columns:1fr; gap:0; counter-reset:none; }
@media (min-width: 900px){ .pv-flow{ grid-template-columns:repeat(4, minmax(0,1fr)); gap:14px; } }
.pv-flow li{ position:relative; display:grid; grid-template-columns:44px 1fr; gap:14px; padding:0 0 22px; }
.pv-flow li:not(:last-child)::after{ content:""; position:absolute; left:21px; top:44px; bottom:0; width:2px; background:var(--mist-gray); }
@media (min-width: 900px){
  .pv-flow li{ grid-template-columns:1fr; background:var(--pure-white); border-radius:12px; padding:20px; }
  .pv-flow li::after{ display:none; }
}
.pv-flow-no{ width:44px; height:44px; border-radius:50%; background:var(--charcoal-black); color:var(--pure-white); display:flex; align-items:center; justify-content:center; font-size:14px; font-weight:700; letter-spacing:.04em; }
.pv-flow h3{ font-size:16px; font-weight:700; color:var(--charcoal-black); margin:9px 0 0; line-height:1.5; }
.pv-flow p{ font-size:14px; line-height:1.8; color:var(--graphite); margin:6px 0 0; }
@media (min-width: 900px){ .pv-flow h3{ margin-top:12px; } }

/* FAQ */
.pv-faq details{ border-bottom:1px solid var(--mist-gray); }
.pv-faq summary{ cursor:pointer; padding:20px 0; display:flex; justify-content:space-between; gap:16px; align-items:center; font-size:16px; font-weight:700; color:var(--charcoal-black); }
.pv-faq summary::after{ content:"+"; color:var(--azent-red); font-weight:400; font-size:20px; flex:none; }
.pv-faq details[open] summary::after{ content:"−"; }
.pv-faq p{ margin:0 0 20px; font-size:15px; line-height:1.9; color:var(--graphite); }

/* 最後の相談CTA */
.pv-final{ background:var(--charcoal-black); color:var(--pure-white); padding:clamp(56px, 8vw, 104px) 20px 0; }
.pv-final h2{ font-size:clamp(22px, 3.2vw, 32px); font-weight:700; line-height:1.5; color:var(--pure-white); margin:0; }
.pv-final .pv-final-lead{ font-size:15px; line-height:1.95; color:var(--mist-gray); margin:16px 0 0; }
.pv-final .btn-secondary{ color:var(--pure-white); border-color:var(--pure-white); }
.pv-sub-link{ display:inline-block; margin-top:18px; font-size:13px; color:var(--cool-gray); }
.pv-sub-link:hover{ color:var(--pure-white); }

/* ヘッダー：店名を途中で折り返さない。狭い画面ではボタンを「ご予約」に短縮 */
.brand-ja{ white-space:nowrap; }
/* ボタンの flex gap が隠す用の span にも効いて隙間が出るため、ヘッダーのボタンだけ gap を消す */
.site-nav .btn{ gap:0; }
@media (max-width: 420px){
  .hdr-long{ display:none; }
  .site-nav .btn-sm{ padding:10px 14px; }
}

/* 見出し・リード文の行末に1〜2文字だけ残るのを防ぐ（対応ブラウザのみ効く。未対応でも崩れない） */
.ew-h2, .pv-h1, .pv-final h2{ text-wrap:balance; }
.ew-lead, .pv-lead, .pv-final-lead, .pv-case p, .pv-flow p, .pv-callout{ text-wrap:pretty; }
/* PC だけ改行したい位置に使う */
.br-pc{ display:none; }
@media (min-width: 760px){ .br-pc{ display:inline; } }

/* 貸切ページ：スマホでは要点帯（人数・席数・設備・価格）をイラストより上に出し、
   ファーストビューで「10〜13名／5,000円〜／モニター／電話・LINE」がそろうようにする */
@media (max-width: 899px){
  .pv-hero .ew-wrap{ display:flex; flex-direction:column; }
  .pv-hero-grid{ display:contents; }
  .pv-hero-grid > div{ order:1; }
  .pv-hero .pv-strip{ order:2; margin-top:24px; }
  .pv-hero-grid > figure{ order:3; margin-top:28px; }
}

/* 固定CTA：ヒーローの電話・LINEボタンが見えている間は隠し、外れたら下から出す。
   JS が動かない環境では .is-idle が付かないので従来どおり常時表示 */
@media (max-width: 720px){
  .mobile-cta{ transition:transform 240ms var(--ease-out); }
  .mobile-cta.is-idle{ transform:translateY(110%); }
}
@media (prefers-reduced-motion: reduce){ .mobile-cta{ transition:none; } }

/* スマホだけ改行したい位置に使う（.br-pc の逆） */
.br-sp{ display:inline; }
@media (min-width: 760px){ .br-sp{ display:none; } }

/* スマホ：TODAY（カレンダー）から「はじめての方へ」までの空白を約25%詰める（56px → 36px） */
@media (max-width: 720px){
  #first.ew-sec{ padding-top:36px; }
}

/* 固定CTAを site.js が制御しているときは、ページ末尾で固定CTAが出ないため下余白を外す */
@media (max-width: 720px){
  .cta-managed body{ padding-bottom:0; }
}

/* ABOUT：ブランドの一言「現代の縁側」を小さく添える */
.ew-concept{ margin-top:30px; padding:4px 0 4px 16px; border-left:3px solid var(--wood); }
.ew-concept-head{ margin:0; font-size:18px; color:var(--charcoal-black); line-height:1.6; }
.ew-concept-body{ margin:8px 0 0; font-size:15px; line-height:1.95; color:var(--graphite); text-wrap:pretty; }

/* ==========================================================================
   STORIES（note の読みもの）
   直前の STORY と同じ生成りの地で続け、区切り線と余白だけで「続きの話」としてつなぐ。
   送客が主目的ではないので、ボタン化せず電話・LINE より控えめにする。
   ========================================================================== */
.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.ew-stories{ background:var(--off-white); padding:0 20px clamp(56px, 8vw, 112px); }
.ew-stories .ew-wrap{ border-top:1px solid var(--mist-gray); padding-top:clamp(40px, 6vw, 72px); }
.ew-stories-lead{ font-size:15px; line-height:2; color:var(--graphite); margin:20px 0 0; }
.ew-stories-lead + .ew-stories-lead{ margin-top:12px; }
.ew-stories-list{ list-style:none; margin:30px 0 0; padding:0; display:grid; grid-template-columns:1fr; gap:12px; }
@media (min-width: 760px){ .ew-stories-list{ grid-template-columns:repeat(3, minmax(0,1fr)); gap:16px; } }
/* カード全体をクリック可能にする（リンク名は見出しだけにして、読み上げを短く保つ） */
.ew-story{ position:relative; height:100%; display:flex; flex-direction:column; background:var(--pure-white); border:1px solid var(--mist-gray); border-radius:12px; padding:20px 22px 18px; transition:border-color 200ms var(--ease-out), transform 200ms var(--ease-out); }
.ew-story:hover{ border-color:var(--wood); transform:translateY(-2px); }
.ew-story:focus-within{ border-color:var(--wood); }
.ew-story-cat{ font-size:11px; font-weight:700; letter-spacing:.14em; color:var(--azent-red); }
.ew-story-title{ margin:8px 0 0; font-size:17px; font-weight:700; line-height:1.6; color:var(--charcoal-black); text-wrap:balance; }
.ew-story-title a{ color:inherit; text-decoration:none; }
.ew-story-title a::after{ content:""; position:absolute; inset:0; border-radius:12px; }
.ew-story-title a:focus-visible{ outline:none; }
.ew-story:focus-within{ outline:3px solid var(--azent-red); outline-offset:2px; }
.ew-story-desc{ margin:8px 0 0; font-size:14px; line-height:1.85; color:var(--graphite); text-wrap:pretty; }
.ew-story-more{ margin-top:auto; padding-top:12px; font-size:13px; font-weight:700; color:var(--slate-gray); }
.ew-story:hover .ew-story-more{ color:var(--azent-red); }
.ew-stories-all{ margin:22px 0 0; text-align:right; font-size:13px; }
.ew-stories-all a{ color:var(--graphite); text-decoration:underline; text-underline-offset:3px; text-decoration-color:var(--mist-gray); }
.ew-stories-all a:hover{ color:var(--azent-red); text-decoration-color:currentColor; }
@media (max-width: 759px){ .ew-stories-all{ text-align:left; } }

/* ==========================================================================
   スタッフ募集ページ（/recruit/）
   貸切ページの部品（.pv-hero / .pv-strip / .pv-flow / .pv-final）を流用し、
   採用ページ固有の見せ方だけをここに足す。
   ========================================================================== */
.rc-hero{ background:var(--off-white); padding:clamp(40px, 6vw, 88px) 20px clamp(40px, 6vw, 72px); }
.rc-hero .ew-wrap{ max-width:880px; }
.rc-h1{ font-size:clamp(25px, 4.4vw, 46px); font-weight:900; line-height:1.45; letter-spacing:-0.01em; color:var(--charcoal-black); margin:14px 0 0; text-wrap:balance; }
/* 要点（1名募集／時給／歓迎する時間帯）。最初の1画面で条件が分かるように */
.rc-points{ list-style:none; margin:24px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
.rc-points li{ background:var(--pure-white); border:1px solid var(--mist-gray); border-radius:999px; padding:7px 14px; font-size:14px; font-weight:700; color:var(--charcoal-black); line-height:1.4; }
.rc-points li span{ font-weight:400; color:var(--slate-gray); font-size:12px; margin-left:4px; }
.rc-cta-note{ margin:12px 0 0; font-size:13px; line-height:1.8; color:var(--slate-gray); }

/* 3人のイラスト：ヒーロー直下。スマホでは大きくなりすぎない幅に */
.rc-visual{ background:var(--off-white); padding:0 20px clamp(48px, 7vw, 88px); }
.rc-visual .ew-figure{ max-width:880px; margin:0 auto; }

/* 詩のように改行する長文（縁がわで働くということ／MESSAGE） */
.rc-prose{ max-width:640px; }
.rc-prose p{ margin:0; font-size:16px; line-height:2.1; color:var(--graphite); }
.rc-prose p + p{ margin-top:22px; }
.rc-prose .rc-quote{ font-family:var(--font-hand); font-weight:600; font-size:17px; color:var(--charcoal-black); }

/* 大切にしていること */
.rc-values{ display:grid; grid-template-columns:1fr; gap:12px; margin-top:30px; }
@media (min-width: 760px){ .rc-values{ grid-template-columns:repeat(3, minmax(0,1fr)); gap:16px; } }
.rc-value{ background:var(--pure-white); border:1px solid var(--mist-gray); border-radius:12px; padding:22px; }
.rc-value h3{ margin:0; font-family:var(--font-hand); font-weight:600; font-size:20px; color:var(--charcoal-black); line-height:1.5; }
.rc-value p{ margin:8px 0 0; font-size:14px; line-height:1.85; color:var(--graphite); text-wrap:pretty; }
.rc-aside{ margin:22px 0 0; padding:14px 18px; border-left:3px solid var(--wood); background:var(--pure-white); border-radius:0 10px 10px 0; font-size:15px; line-height:1.9; color:var(--charcoal-black); text-wrap:pretty; }

/* こんな方と働きたいです／お願いする仕事 */
.rc-list{ list-style:none; margin:28px 0 0; padding:0; display:grid; grid-template-columns:1fr; gap:10px; }
@media (min-width: 760px){ .rc-list{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px 28px; } }
.rc-list li{ display:flex; gap:12px; font-size:15px; line-height:1.75; color:var(--graphite); }
.rc-list li::before{ content:""; flex:none; width:7px; height:7px; margin-top:.72em; border-radius:50%; background:var(--azent-red); }
.rc-list li.is-key{ color:var(--charcoal-black); font-weight:700; }
.rc-list li.is-key::before{ background:var(--wood); }

/* 募集要項 */
.rc-table{ margin:28px 0 0; display:grid; grid-template-columns:1fr; border-top:1px solid var(--mist-gray); }
.rc-table dt{ font-size:13px; font-weight:700; color:var(--slate-gray); padding:16px 0 0; }
.rc-table dd{ margin:0; font-size:16px; line-height:1.8; color:var(--charcoal-black); padding:4px 0 16px; border-bottom:1px solid var(--mist-gray); }
.rc-table dd small{ display:block; font-size:13px; color:var(--slate-gray); line-height:1.8; }
.rc-table dd strong{ font-size:18px; }
@media (min-width: 760px){
  .rc-table{ grid-template-columns:200px 1fr; }
  .rc-table dt{ padding:18px 0; border-bottom:1px solid var(--mist-gray); }
  .rc-table dd{ padding:18px 0; }
}

/* MESSAGE */
.rc-message{ background:var(--wood-light); }

/* トップページの小さな RECRUIT 導線（来店・貸切の導線より控えめに） */
.ew-recruit{ padding:0 20px clamp(48px, 7vw, 80px); }
.ew-recruit-box{ max-width:1120px; margin:0 auto; display:grid; grid-template-columns:1fr; gap:14px; align-items:center; background:var(--off-white); border-radius:14px; padding:clamp(22px, 3vw, 32px); }
@media (min-width: 760px){ .ew-recruit-box{ grid-template-columns:minmax(0,1fr) auto; gap:28px; } }
.ew-recruit-box h2{ margin:6px 0 0; font-size:clamp(18px, 2.2vw, 22px); font-weight:700; color:var(--charcoal-black); line-height:1.5; }
.ew-recruit-box p{ margin:8px 0 0; font-size:14px; line-height:1.9; color:var(--graphite); }
.ew-recruit-box .ew-hand{ color:var(--charcoal-black); }
.ew-recruit-link{ font-size:14px; font-weight:700; color:var(--charcoal-black); text-decoration:underline; text-underline-offset:4px; text-decoration-color:var(--wood); white-space:nowrap; }
.ew-recruit-link:hover{ color:var(--azent-red); text-decoration-color:currentColor; }
.rc-prose p{ font-size:clamp(15px, 1.6vw, 16px); }
.rc-prose-tight p + p{ margin-top:14px; }
.rc-aside.rc-prose p{ font-size:15px; line-height:1.9; }
.rc-aside.rc-prose p + p{ margin-top:10px; }

/* ==========================================================================
   お電話の案内（つながりやすい時間の目安・つながらないとき・15分ルール）
   電話CTAより目立たせない。「受付時間」「必ずつながる」とは読めない控えめな表示にする
   ========================================================================== */
.ew-phone-hint{ font-size:12px; line-height:1.8; color:var(--slate-gray); margin:4px 0 0; }
.ew-phone-hint .br-pc-gap{ display:inline-block; width:1em; }
@media (max-width: 759px){ .ew-phone-hint .br-pc-gap{ display:none; } }
.ew-call-sub{ font-size:12px; line-height:1.7; color:var(--slate-gray,#6B7280); margin:8px 0 0; }
.ew-call-times{ margin:4px 0 0; font-size:12px; line-height:1.7; color:var(--slate-gray,#6B7280); }
.ew-call-times summary{ cursor:pointer; width:max-content; max-width:100%; text-decoration:underline; text-underline-offset:3px; text-decoration-color:var(--mist-gray); }
.ew-call-times p{ margin:4px 0 0; padding-left:1em; }
.ew-phone-info{ max-width:560px; margin:26px auto 0; padding:16px 18px; border:1px solid var(--graphite); border-radius:8px; text-align:left; }
.ew-phone-info-h{ margin:0 0 6px; font-size:13px; font-weight:700; color:var(--pure-white); }
.ew-phone-info ul{ margin:0; padding-left:1.2em; }
.ew-phone-info li{ font-size:12px; line-height:1.8; color:var(--mist-gray); }
.ew-phone-info li + li{ margin-top:4px; }
.ew-nowrap{ white-space:nowrap; }

/* ==========================================================================
   プライバシーポリシー（/privacy/）
   本文は法令に関わる文章なので、装飾より「読みやすさ」を優先する
   ========================================================================== */
.pp-hero{ background:var(--off-white); padding:clamp(40px, 6vw, 72px) 20px clamp(32px, 5vw, 56px); }
.pp-h1{ font-size:clamp(24px, 3.4vw, 36px); font-weight:700; line-height:1.4; color:var(--charcoal-black); margin:10px 0 0; }
.pp-body{ padding:clamp(40px, 6vw, 80px) 20px clamp(48px, 7vw, 96px); }
.pp-doc{ max-width:760px; margin:0 auto; }
.pp-doc p{ font-size:15px; line-height:2; color:var(--graphite); margin:0; }
.pp-doc p + p{ margin-top:14px; }
.pp-doc section{ margin-top:clamp(32px, 4vw, 48px); }
.pp-doc h2{ font-size:18px; font-weight:700; color:var(--charcoal-black); line-height:1.6; margin:0 0 16px; padding-bottom:10px; border-bottom:1px solid var(--mist-gray); }
.pp-doc a{ color:var(--azent-red); }
.pp-dl{ margin:0; display:grid; grid-template-columns:1fr; }
.pp-dl dt{ font-size:13px; font-weight:700; color:var(--slate-gray,#6B7280); padding:14px 0 0; }
.pp-dl dd{ margin:0; font-size:15px; line-height:1.9; color:var(--charcoal-black); padding:4px 0 14px; border-bottom:1px solid var(--mist-gray); }
@media (min-width: 640px){
  .pp-dl{ grid-template-columns:10em 1fr; }
  .pp-dl dt{ padding:14px 0; border-bottom:1px solid var(--mist-gray); }
  .pp-dl dd{ padding:14px 0; }
}
.pp-contact{ margin-top:16px; padding:16px 18px; border:1px solid var(--mist-gray); border-radius:8px; }
.pp-contact p{ font-size:14px; line-height:1.9; }
.pp-date{ margin-top:clamp(32px, 4vw, 48px); padding-top:20px; border-top:1px solid var(--mist-gray); }
.pp-date p{ font-size:13px; line-height:1.9; color:var(--slate-gray,#6B7280); }
/* 固定CTAを置かないページなので、その分の下余白も作らない */
@media (max-width: 720px){ body.pp-page{ padding-bottom:0; } }
.pp-page .pv-final{ padding-top:clamp(28px, 4vw, 40px); }

/* ==========================================================================
   お問い合わせフォーム（/contact/）
   入力欄は指で押しやすい大きさを優先し、必須・エラーは色だけに頼らず文字でも示す
   ========================================================================== */
.ct-hero{ background:var(--off-white); padding:clamp(40px, 6vw, 72px) 20px clamp(32px, 5vw, 56px); }
.ct-h1{ font-size:clamp(24px, 3.4vw, 36px); font-weight:700; line-height:1.4; color:var(--charcoal-black); margin:10px 0 0; text-wrap:balance; }
.ct-lead{ font-size:15px; line-height:1.95; color:var(--graphite); margin:16px 0 0; max-width:640px; text-wrap:balance; }
.ct-body{ padding:clamp(32px, 5vw, 64px) 20px clamp(48px, 7vw, 96px); }
.ct-doc{ max-width:640px; margin:0 auto; }

/* 予約導線の案内。フォームより先に目に入るようにする */
.ct-notice{ padding:20px 20px 22px; border:1px solid var(--azent-red); border-radius:8px; background:var(--azent-red-light); }
.ct-notice-h{ margin:0 0 8px; font-size:15px; font-weight:700; color:var(--azent-red); }
.ct-notice-p{ margin:0; font-size:14px; line-height:1.9; color:var(--graphite); }
.ct-notice-p strong{ color:var(--charcoal-black); }
.ct-notice-cta{ display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.ct-notice-cta .btn{ font-size:14px; padding:13px 20px; }
.ct-notice-sub{ margin:14px 0 0; font-size:13px; line-height:1.85; color:var(--slate-gray,#6B7280); }
.ct-notice-sub a{ color:var(--azent-red); }

.ct-form{ margin-top:clamp(32px, 4vw, 44px); }
.ct-required-note{ margin:0 0 20px; font-size:13px; color:var(--slate-gray,#6B7280); }
.ct-req{ display:inline-block; margin-left:4px; padding:2px 7px; border-radius:3px; background:var(--azent-red); color:#fff; font-size:11px; font-weight:700; vertical-align:2px; }
.ct-any{ display:inline-block; margin-left:4px; padding:2px 7px; border-radius:3px; background:var(--mist-gray); color:var(--slate-gray,#6B7280); font-size:11px; font-weight:700; vertical-align:2px; }

.ct-field{ margin-bottom:22px; }
.ct-field label{ display:block; font-size:14px; font-weight:700; color:var(--charcoal-black); margin-bottom:8px; }
.ct-field input, .ct-field select, .ct-field textarea{
  width:100%; box-sizing:border-box; font-family:var(--font-sans); font-size:16px; line-height:1.7;
  color:var(--charcoal-black); background:var(--pure-white);
  border:1px solid var(--cool-gray, #9AA3AE); border-radius:6px; padding:13px 14px;
  transition:border-color 160ms var(--ease-out), box-shadow 160ms var(--ease-out);
}
.ct-field textarea{ resize:vertical; min-height:180px; }
.ct-field input:focus, .ct-field select:focus, .ct-field textarea:focus{
  outline:none; border-color:var(--azent-red); box-shadow:0 0 0 3px var(--azent-red-light);
}
.ct-field input.is-invalid, .ct-field select.is-invalid, .ct-field textarea.is-invalid{ border-color:var(--azent-red); }
.ct-hint{ margin:8px 0 0; font-size:12px; line-height:1.8; color:var(--slate-gray,#6B7280); }
.ct-error{ margin:8px 0 0; font-size:13px; line-height:1.7; font-weight:700; color:var(--azent-red); }

/* 自動送信よけ。画面にも読み上げにも出さない */
.ct-hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

.ct-consent{ display:flex; align-items:flex-start; gap:10px; margin-top:28px; padding:16px 18px; border:1px solid var(--mist-gray); border-radius:8px; }
.ct-consent input{ width:20px; height:20px; margin:2px 0 0; flex:none; accent-color:var(--azent-red); }
.ct-consent label{ font-size:14px; line-height:1.8; color:var(--charcoal-black); }
.ct-consent a{ color:var(--azent-red); text-underline-offset:3px; }

.ct-submit{ margin-top:26px; }
.ct-submit .btn{ width:100%; justify-content:center; }
.ct-submit .btn:disabled{ opacity:.6; cursor:progress; transform:none; box-shadow:none; }
.ct-form-error{ margin:16px 0 0; padding:13px 15px; border:1px solid var(--azent-red); border-radius:6px; background:var(--azent-red-light); font-size:14px; line-height:1.8; color:var(--charcoal-black); }

.ct-done{ margin-top:clamp(32px, 4vw, 44px); padding:28px 22px; border:1px solid var(--mist-gray); border-radius:8px; background:var(--off-white); }
.ct-done:focus{ outline:none; }
.ct-done-h{ margin:0; font-size:17px; font-weight:700; line-height:1.6; color:var(--charcoal-black); }
.ct-done-p{ margin:14px 0 0; font-size:15px; line-height:1.95; color:var(--graphite); }
.ct-done-sub{ margin:16px 0 0; font-size:13px; line-height:1.85; color:var(--slate-gray,#6B7280); }

/* 固定CTAを置かないページなので、その分の下余白も作らない */
@media (max-width: 720px){ body.ct-page{ padding-bottom:0; } }
.ct-page .pv-final{ padding-top:clamp(28px, 4vw, 40px); }

/* ==========================================================================
   フッター下部の帯（住所とリンク）
   PCは左右に振り分け、スマホでは左に寄せてそのまま折り返す。
   space-between のままだと、折り返した行のリンクが右端へ飛んでしまう。
   ========================================================================== */
@media (max-width: 720px){
  .ew-footbar{ justify-content:flex-start !important; gap:10px 18px !important; }
}
