/* ===== Tokens（既存名は改名・削除禁止。新規は別名として追加） ===== */
:root{
  --navy:#0a1f3d; --navy-2:#12305a; --navy-3:#183d72; --red:#c8102e; --gold:#f2b21a;
  --green:#1c9e5b; --cyan:#1390c8;
  --ink:#17212f; --muted:#4c5d70; --line:#d7dde6; --bg:#f5f7fa; --white:#fff;
  --surface:#fff; --surface-2:#eef2f7; --heading:var(--navy);
  --radius:14px; --shadow:0 2px 8px rgba(10,31,61,.08); --shadow-strong:0 6px 20px rgba(10,31,61,.13);
  --header-height:56px;
  --bottom-nav-height:60px;
  --page-inline:16px;
  --tap-min:44px;
  --section-gap:28px;
  --block-gap:16px;
  --motion:140ms;
  --gold-light:#ffd56e;
  --gold-deep:#e0a410;
  --game:#a32d2d;
  --practice:#185fa5;
  --event:#2f6b2f;
  --trial:#9a6212;
  --weekend-sun:color-mix(in srgb, var(--red) 8%, var(--surface));
  --weekend-sat:color-mix(in srgb, var(--cyan) 8%, var(--surface));
  --red-deep:#a10e27;
  --msg-info:color-mix(in srgb, var(--navy) 8%, var(--surface));
  --msg-success:color-mix(in srgb, var(--green) 14%, var(--surface));
  --msg-error:color-mix(in srgb, var(--red) 10%, var(--surface));
  --msg-warning:color-mix(in srgb, var(--gold) 18%, var(--surface));
  --scrim:rgba(0,0,0,.38);
  --on-dark:#fff;
  --temp-max:color-mix(in srgb, var(--red) 72%, var(--ink));
  --temp-min:color-mix(in srgb, var(--cyan) 62%, var(--ink));
  --status-ok:color-mix(in srgb, var(--green) 65%, var(--ink));
  --cal-sun:color-mix(in srgb, var(--red) 72%, var(--ink));
  --cal-sat:color-mix(in srgb, var(--cyan) 62%, var(--ink));

  /* 別名・スケール（既存トークンへのエイリアス） */
  --color-primary:var(--navy);
  --color-primary-2:var(--navy-2);
  --color-primary-3:var(--navy-3);
  --color-accent:var(--gold);
  --color-danger:var(--red);
  --color-success:var(--green);
  --color-info:var(--cyan);
  --navy-rgb:10,31,61;
  --navy-a97:rgba(var(--navy-rgb),.97);
  --navy-a20:rgba(var(--navy-rgb),.20);
  --on-dark-soft:rgba(255,255,255,.88);
  --on-dark-muted:rgba(255,255,255,.68);
  --on-dark-faint:rgba(255,255,255,.12);
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px;
  --space-5:24px; --space-6:32px; --space-7:40px;
  --radius-sm:8px; --radius-md:var(--radius); --radius-lg:18px; --radius-pill:10px;
  --text-xs:.76rem; --text-sm:.84rem; --text-md:.95rem;
  --text-lg:1.12rem; --text-xl:1.35rem; --text-2xl:1.65rem; --text-hero:1.8rem;
  --container-max:1160px;
  --font-sans:"Hiragino Kaku Gothic ProN","Hiragino Sans","BIZ UDPGothic","Yu Gothic",Meiryo,"Noto Sans JP",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;

  /* 公開仕様で利用する意味ベースのデザイントークン */
  --color-primary-900:var(--navy);
  --color-primary-700:var(--navy-2);
  --color-primary-500:var(--navy-3);
  --color-accent-600:var(--gold-deep);
  --color-accent-400:var(--gold-light);
  --color-bg:var(--white);
  --color-bg-subtle:var(--bg);
  --color-surface:var(--surface);
  --color-surface-dark:var(--navy);
  --color-text:var(--ink);
  --color-text-muted:var(--muted);
  --color-border:var(--line);
  --color-warning:var(--gold-deep);
  --font-size-xs:clamp(.75rem,.72rem + .15vw,.8125rem);
  --font-size-sm:clamp(.875rem,.84rem + .18vw,.9375rem);
  --font-size-base:clamp(1rem,.96rem + .2vw,1.0625rem);
  --font-size-lg:clamp(1.125rem,1.02rem + .45vw,1.375rem);
  --font-size-xl:clamp(1.5rem,1.2rem + 1.2vw,2.25rem);
  --font-size-hero:clamp(2rem,1.3rem + 3vw,4.5rem);
  --space-8:64px;
  --space-9:96px;

  /* ===== 追加: Vivid Portal 別名（既存名は改名/削除しない） ===== */
  --hero-scrim-strong: linear-gradient(180deg, rgba(var(--navy-rgb),.12) 0%, rgba(var(--navy-rgb),.38) 48%, rgba(var(--navy-rgb),.88) 100%);
  --hero-scrim-side: linear-gradient(90deg, rgba(var(--navy-rgb),.72) 0%, rgba(var(--navy-rgb),.28) 48%, rgba(var(--navy-rgb),.18) 100%);
  --brand-band: linear-gradient(135deg, var(--navy) 0%, var(--navy-2) 58%, var(--navy-3) 100%);
  --accent-line: linear-gradient(90deg, var(--gold) 0%, var(--gold-light) 100%);
  --face-plain: var(--surface);
  --face-tinted: var(--surface-2);
  --face-subtle: var(--bg);
  --face-brand: var(--navy);
  --elev-1: var(--shadow);
  --elev-2: var(--shadow-strong);
  --elev-hover: 0 10px 28px rgba(var(--navy-rgb),.16);
  --motion-fast: 120ms;
  --motion-normal: var(--motion);
  --motion-slow: 260ms;
  --ease-out: cubic-bezier(.2,.7,.2,1);
  --ratio-hero: 2.35 / 1;
  --ratio-hero-mobile: 4 / 3;
  --ratio-banner: 2 / 1;
  --ratio-card: 4 / 3;

  /* 会員メニューカード用（member テーマで色が乗る既存 --gold/--navy を核に） */
  --menu-chip-size: 34px;
  --menu-chip-bg: color-mix(in srgb, var(--gold) 20%, var(--surface));
  --menu-chip-fg: var(--heading);
  --menu-card-radius: var(--radius-lg);
  --menu-divider: color-mix(in srgb, var(--line) 80%, transparent);
}

/* ===== Reset / Base ===== */
*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:clip}
body{margin:0;
  font-family:var(--font-sans);
  font-weight:400;letter-spacing:.01em;
  color:var(--ink);background:var(--surface);line-height:1.7;-webkit-text-size-adjust:100%}
.site--member{--gold:#71b7dc;--gold-light:#b9ddf0;--gold-deep:#2478a5;--bg:#eef3f7;--surface-2:#e5edf3}
.site--auth{--bg:#f3f6fa}
.site--auth .site-main--auth{max-width:520px;margin-inline:auto}
.site--auth .cta-fixed,.site--auth .bottom-nav{display:none!important}
.site--auth .site-footer{margin-bottom:0}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
iframe,video{max-width:100%}
p,li,dd,td,th,a,button,label{overflow-wrap:anywhere}
h1,h2,h3{line-height:1.4;margin:.2em 0;letter-spacing:.015em}
h1{font-weight:700}
h2{font-weight:500}
h3{font-weight:500}

/* Accessibility – focus ring（消さない） */
:focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:4px}
:target,:focus-visible{scroll-margin-top:calc(var(--header-height) + 4px)}
.skip-link{position:absolute;top:-100%;left:0;background:var(--navy);color:var(--on-dark);padding:8px 16px;font-weight:700;z-index:100;border-radius:0 0 var(--radius-sm) 0}
.skip-link:focus{top:0}

/* ===== Layout: Header ===== */
.site-header{
  position:sticky;top:0;z-index:50;
  background:var(--navy-a97);color:var(--on-dark);
  backdrop-filter:blur(12px);
  box-shadow:0 2px 12px var(--navy-a20);
  border-bottom:2px solid color-mix(in srgb, var(--gold) 72%, transparent);
}
.header-inner{max-width:var(--container-max);margin:0 auto;display:flex;align-items:center;gap:var(--space-3);padding:8px var(--page-inline);min-height:var(--header-height)}
.brand{display:flex;align-items:center;gap:var(--space-2);min-width:0;flex:1}
.brand-copy{min-width:0;display:block}
.brand-logo{width:36px;height:36px;border-radius:50%;background:var(--white);padding:2px;flex-shrink:0;aspect-ratio:1/1}
.brand-text,.footer-brand strong{display:block;font-weight:800;font-size:var(--text-md);line-height:1.25;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand-subtext{display:block;font-size:.62rem;letter-spacing:.16em;color:var(--on-dark-muted);margin-top:1px}
/* 横長ワードマークロゴ（クレスト＋上磯有川） */
.brand--wordmark{gap:0}
.brand-wordmark{height:40px;width:auto;max-width:min(62vw,260px);display:block;flex-shrink:0}
.brand-wordmark--footer{height:44px;max-width:230px;margin-bottom:8px}
.footer-brand__tag{margin:0;color:var(--on-dark-muted);font-size:.85rem}
.nav-toggle{display:none;margin-left:auto;flex-direction:column;gap:5px;background:none;border:none;color:var(--on-dark);padding:8px;cursor:pointer;min-width:var(--tap-min);min-height:var(--tap-min);align-items:center;justify-content:center;flex-shrink:0}
.nav-toggle span{display:block;width:22px;height:2.5px;border-radius:var(--radius-pill);background:var(--surface);transition:transform var(--motion) ease,opacity var(--motion) ease}
.nav-quick{display:none}
.nav-desk{display:none}
.nav-meta{display:none}
.nav-chevron{display:none;margin-left:auto;flex-shrink:0;font-size:1.25rem;font-weight:400;line-height:1;color:var(--muted);opacity:.85}
.nav-label{min-width:0}
.header-search{display:inline-flex;align-items:center;justify-content:center;margin-left:auto;min-width:var(--tap-min);min-height:var(--tap-min);padding:8px;border-radius:var(--radius-sm);color:var(--on-dark-soft);flex-shrink:0}
.header-search:hover,.header-search:focus-visible{background:var(--on-dark-faint);color:var(--on-dark)}
.header-search[aria-current="page"]{color:var(--gold);box-shadow:inset 0 -2px 0 var(--gold)}
.header-search + .nav-toggle{margin-left:2px}
.main-nav{margin-left:auto;display:flex;align-items:center;gap:2px;flex-wrap:wrap;min-width:0}
.main-nav a{padding:8px 10px;border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:700;color:var(--on-dark-soft);transition:background var(--motion) ease,color var(--motion) ease;min-height:var(--tap-min);display:inline-flex;align-items:center;gap:6px}
@media(min-width:768px){
  .header-search{display:none}
}
.main-nav a:hover,.main-nav a:focus-visible{background:var(--on-dark-faint);color:var(--on-dark)}
.main-nav a[aria-current="page"]{background:var(--on-dark-faint);color:var(--on-dark);box-shadow:inset 0 -2px 0 var(--gold)}
.main-nav .nav-member{background:color-mix(in srgb, var(--navy) 12%, transparent);color:var(--on-dark);border:1px solid color-mix(in srgb, var(--on-dark) 35%, transparent)}
.main-nav .nav-member[aria-current="page"]{box-shadow:inset 0 -2px 0 var(--on-dark)}
.site--public .cta-fixed{background:var(--gold);color:var(--navy);border:1px solid var(--gold-deep)}
.site--public .cta-fixed:hover{background:var(--gold-deep);color:var(--navy)}
.nav-logout-form{display:inline;margin:0}
.nav-logout-btn{background:none;border:0;padding:8px 10px;font:inherit;color:var(--on-dark-soft);cursor:pointer;min-height:var(--tap-min);border-radius:var(--radius-sm);display:inline-flex;align-items:center;gap:6px}
.nav-logout-btn:hover,.nav-logout-btn:focus-visible{background:var(--on-dark-faint);color:var(--on-dark)}
.nav-scrim{display:none}

/* PC nav links / dropdown (base hidden until ≥768) */
.nav-link{
  padding:10px 12px;border-radius:0;font-size:.88rem;font-weight:700;
  color:var(--on-dark-soft);min-height:var(--tap-min);display:inline-flex;align-items:center;
  background:transparent;border:0;box-shadow:none;letter-spacing:.02em;
}
.nav-link:hover,.nav-link:focus-visible{
  background:transparent;color:var(--on-dark);
  box-shadow:inset 0 -2px 0 color-mix(in srgb, var(--gold) 70%, transparent);
}
.nav-link[aria-current="page"]{
  background:transparent;color:var(--on-dark);
  box-shadow:inset 0 -2px 0 var(--gold);
}
.nav-link--cta{
  margin-left:4px;padding:8px 14px;border-radius:var(--radius-pill);
  background:var(--gold);color:var(--navy);border:1px solid var(--gold-deep);font-weight:800;
}
.main-nav .nav-link--cta{color:var(--navy);background:var(--gold)}
.main-nav .nav-link--cta:hover,.main-nav .nav-link--cta:focus-visible{
  background:var(--gold-deep);color:var(--navy);box-shadow:none;
}
.main-nav .nav-link--cta[aria-current="page"]{
  background:var(--gold-deep);color:var(--navy);
  box-shadow:0 0 0 2px color-mix(in srgb, var(--on-dark) 40%, transparent);
}
.nav-link--login{
  margin-left:4px;padding:8px 14px;border-radius:var(--radius-pill);
  background:transparent;color:var(--on-dark);
  border:1px solid color-mix(in srgb, var(--on-dark) 45%, transparent);font-weight:800;
}
.main-nav .nav-link--login{color:var(--on-dark);background:transparent}
.main-nav .nav-link--login:hover,.main-nav .nav-link--login:focus-visible{
  background:var(--on-dark-faint);color:var(--on-dark);box-shadow:none;
}
.main-nav .nav-link--login[aria-current="page"]{border-color:var(--gold);box-shadow:inset 0 -2px 0 var(--gold);color:var(--on-dark)}
.nav-link--ghost{
  cursor:pointer;font:inherit;
}
.main-nav .nav-link--ghost{color:var(--on-dark-soft)}
.nav-dd{position:relative;display:inline-flex;align-items:center}
.nav-dd__btn{
  padding:10px 12px;border:0;background:transparent;color:var(--on-dark-soft);
  font:inherit;font-size:.88rem;font-weight:700;cursor:pointer;min-height:var(--tap-min);
  display:inline-flex;align-items:center;gap:6px;border-radius:0;
}
.nav-dd__btn i{font-size:.65rem;opacity:.8;transition:transform var(--motion) ease}
.nav-dd.is-open .nav-dd__btn i{transform:rotate(180deg)}
.nav-dd__btn:hover,.nav-dd__btn:focus-visible,
.nav-dd.is-open .nav-dd__btn{
  color:var(--on-dark);box-shadow:inset 0 -2px 0 color-mix(in srgb, var(--gold) 70%, transparent);
}
.nav-dd__panel{
  position:absolute;top:calc(100% + 6px);left:0;min-width:11.5rem;z-index:70;
  background:var(--surface);color:var(--heading);border:1px solid var(--line);
  border-radius:var(--radius-md);box-shadow:var(--elev-2);padding:6px;display:flex;flex-direction:column;gap:2px;
}
.nav-dd__panel[hidden]{display:none !important}
.nav-dd__link{
  display:flex;align-items:center;padding:10px 12px;border-radius:var(--radius-sm);
  color:var(--heading);font-size:.88rem;font-weight:700;min-height:var(--tap-min);
}
/* .main-nav a（明色）に負けないよう、ドロップダウン内のリンクは濃色を明示 */
.nav-dd__panel .nav-dd__link{color:var(--heading)}
.nav-dd__link:hover,.nav-dd__link:focus-visible{background:var(--surface-2);color:var(--heading)}
.nav-dd__panel .nav-dd__link:hover,.nav-dd__panel .nav-dd__link:focus-visible{color:var(--heading)}
.nav-dd__link[aria-current="page"]{background:color-mix(in srgb, var(--gold) 16%, var(--surface));box-shadow:inset 3px 0 0 var(--gold)}

/* Fixed CTA (mobile) */
.cta-fixed{display:none;position:fixed;right:14px;bottom:14px;z-index:54;background:var(--surface);
  color:var(--heading);padding:12px 18px;border-radius:var(--radius-pill);font-weight:800;
  border:2px solid var(--navy);box-shadow:0 4px 16px var(--navy-a20);font-size:.88rem;min-height:var(--tap-min)}
.cta-fixed:hover{background:var(--navy);color:var(--on-dark)}

/* Messages */
.messages{max-width:var(--container-max);margin:12px auto;padding:0 var(--page-inline)}
.message{padding:10px 14px;border-radius:var(--space-3);margin-bottom:var(--space-2);background:var(--msg-info);border-left:4px solid var(--navy)}
.message.success{background:var(--msg-success);border-color:var(--green)}
.message.error{background:var(--msg-error);border-color:var(--red)}
.message.warning{background:var(--msg-warning);border-color:var(--gold)}

/* ===== Layout: Main ===== */
.site-main{
  max-width:var(--container-max);margin:0 auto;
  padding:
    20px
    max(var(--page-inline), env(safe-area-inset-right))
    calc(var(--space-7) + env(safe-area-inset-bottom))
    max(var(--page-inline), env(safe-area-inset-left));
}

/* PWA案内は入力操作中にフォームや送信ボタンを覆わない */
body:has(input:focus,select:focus,textarea:focus,[contenteditable="true"]:focus) .install-banner{display:none}
/* 入力中・フォーム系ページでは固定CTAを隠し、本文との被りを防ぐ */
body:has(input:focus,select:focus,textarea:focus,[contenteditable="true"]:focus) .cta-fixed,
body.is-keyboard .cta-fixed,
.page-contact .cta-fixed,
.page-trial-list .cta-fixed,
.page-trial-apply .cta-fixed,
.page-home .cta-fixed{display:none!important}

/* ===== Page hero（下層共通） ===== */
.page-hero{
  position:relative;overflow:hidden;
  border-radius:var(--radius-lg);
  background:
    radial-gradient(circle at top right,color-mix(in srgb, var(--gold) 18%, transparent),transparent 40%),
    var(--brand-band);
  color:var(--on-dark);
  padding:22px 20px;
  margin:0 0 var(--block-gap);
  box-shadow:var(--elev-2);
  border-bottom:3px solid var(--gold);
}
.page-hero--hot{
  background:linear-gradient(135deg,var(--red),var(--red-deep));
  border-bottom-color:var(--gold);
}
.page-hero--muted{
  background:linear-gradient(135deg,var(--navy-2),var(--navy-3));
}
.page-hero__inner{position:relative;z-index:1;max-width:44rem}
.page-hero__eyebrow{
  margin:0 0 6px;font-size:max(.8125rem,13px);letter-spacing:.08em;font-weight:800;color:var(--on-dark-muted);
}
.page-hero__title{
  margin:0;font-size:clamp(1.28rem,3vw,1.8rem);font-weight:800;line-height:1.3;
  color:var(--on-dark);display:flex;align-items:center;gap:10px;flex-wrap:wrap;text-wrap:balance;
}
.page-hero__title i{color:var(--gold);font-size:.92em;flex-shrink:0}
.page-hero--hot .page-hero__title i{color:var(--on-dark)}
.page-hero__lead{
  margin:10px 0 0;font-size:var(--text-md);line-height:1.55;color:var(--on-dark-soft);
}
@media(max-width:767px){
  .page-hero{padding:18px 16px;border-radius:var(--radius-md)}
  .page-hero__title{font-size:clamp(1.16rem,5.8vw,1.42rem);align-items:flex-start;gap:8px}
  .page-hero__lead{font-size:.9rem}
  .form-box{max-width:none;margin:0}
}

/* Home page title (sole H1) */
.home-page-title{font-size:var(--text-xl);margin:0 0 var(--space-3);color:var(--heading);border-left:4px solid var(--gold);padding-left:10px;line-height:1.4;font-weight:700;letter-spacing:.015em}
.home-page-title--bar{margin:0;border-left:none;padding-left:0;color:var(--on-dark);font-size:clamp(1.15rem,2.6vw,1.55rem)}
.slider-headline,.recruit-heading,.members-heading{font-size:var(--text-2xl);margin:0 0 var(--space-2);line-height:1.4;font-weight:700;letter-spacing:.015em}
.slider-headline{font-size:clamp(1.35rem,3.2vw,2rem);text-shadow:0 2px 8px rgba(0,0,0,.4);color:var(--on-dark)}
.recruit-heading,.members-heading{color:var(--on-dark);text-shadow:none}

/* ===== Home layout (full-bleed hero outside .site-main + contained body) ===== */
.site-main--home{
  max-width:var(--container-max);
  margin:0 auto;
  padding-top:0;
}
.home-brandbar{
  width:100%;
  background:var(--brand-band);
  color:var(--on-dark);
  border-bottom:2px solid var(--gold);
}
.home-brandbar__inner{
  max-width:var(--container-max);
  margin:0 auto;
  padding:14px max(var(--page-inline), env(safe-area-inset-left)) 12px max(var(--page-inline), env(safe-area-inset-right));
}
.home-brandbar__tag{
  margin:4px 0 0;
  font-size:var(--text-xs);
  letter-spacing:.14em;
  font-weight:700;
  color:var(--on-dark-muted);
}
/* ヒーローは base の full_bleed ブロック（.site-main 外）で本当の全幅 */
.home-hero-bleed{
  width:100%;
  max-width:100%;
  margin:0;
  padding:0;
  display:block;
  overflow:hidden;
}
.home-body{
  max-width:var(--container-max);
  margin:0 auto;
  padding:
    var(--block-gap)
    max(var(--page-inline), env(safe-area-inset-right))
    calc(var(--space-7) + env(safe-area-inset-bottom))
    max(var(--page-inline), env(safe-area-inset-left));
}
.section--alt{
  background:transparent;
  border:0;
  border-radius:0;
  padding:0;
  box-shadow:none;
}
.section--cta{margin-top:var(--space-3)}
.section--home-quick{margin-top:0}
.section--face-plain{background:transparent}
.section--face-subtle{background:transparent;border-radius:0;padding:0}
.section-kicker{
  margin:0 0 6px;font-size:max(.8125rem,13px);letter-spacing:.12em;font-weight:800;
  color:var(--muted);text-transform:uppercase;
}
.section--brand-band{
  border-radius:var(--radius-lg);overflow:hidden;
  background:var(--brand-band);color:var(--on-dark);
  box-shadow:var(--elev-2);
  padding:var(--block-gap) var(--space-3);
}
.section--brand-band .eyebrow{color:var(--on-dark-muted)}
.section--brand-band .members-heading,.section--brand-band p{color:var(--on-dark)}
.section--brand-band .recruit-banner{
  background:transparent;box-shadow:none;margin:0;padding:0;
}
.recruit-banner--hot{
  background:linear-gradient(135deg,var(--red),var(--red-deep));
}
.recruit-banner--hot::after{display:none}

/* Hero */
.hero{position:relative;border-radius:20px;overflow:hidden;background:
  radial-gradient(circle at top right,color-mix(in srgb, var(--gold) 16%, transparent),transparent 35%),
  linear-gradient(135deg,var(--navy),var(--navy-2));color:var(--on-dark);padding:24px 20px;margin-bottom:16px;box-shadow:var(--shadow-strong)}
.hero-home{display:grid;gap:16px;align-items:stretch}
.hero-home--bleed{border-radius:0;margin-bottom:0;width:100%;min-height:clamp(220px,42vw,380px);padding:28px max(var(--page-inline),4vw);background:var(--brand-band);background-size:cover;background-position:center center}
.hero-copy{position:relative;z-index:1}
.hero-brand-panel{display:none}
.hero::after{content:"";position:absolute;inset:auto -30px -30px auto;width:140px;height:140px;border-radius:50%;
  background:rgba(255,255,255,.05);pointer-events:none}
.eyebrow{margin:0 0 4px;font-size:max(.8125rem,13px);letter-spacing:.08em;font-weight:800;color:var(--on-dark-muted)}
.hero h1,.hero .recruit-heading,.hero .members-heading{font-size:1.65rem}
.hero-lead{max-width:36rem;margin-bottom:0;color:var(--on-dark-soft);font-size:.95rem}
.hero .hero-badges{margin-top:14px;display:flex;gap:8px;flex-wrap:wrap}
.badge{background:var(--gold);color:var(--heading);font-weight:800;padding:6px 12px;border-radius:var(--radius-sm);font-size:.82rem}
.badge.red{background:var(--red);color:var(--on-dark)}
.badge.ghost{background:rgba(255,255,255,.12);color:var(--on-dark);border:1px solid rgba(255,255,255,.18)}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.recruit-banner{display:flex;justify-content:space-between;align-items:flex-end;gap:16px}
.recruit-banner .mt{margin-top:0}

/* Hero Slider */
.hero-slider{position:relative;border-radius:18px;overflow:hidden;margin-bottom:16px;
  background:var(--navy);aspect-ratio:16/6;box-shadow:var(--shadow-strong)}
.hero-slider--bleed{border-radius:0;margin-bottom:0;width:100%;max-width:100%;aspect-ratio:var(--ratio-hero);max-height:min(62vh,560px);box-shadow:none}
.slider-slide{position:absolute;inset:0;opacity:0;transition:opacity .7s ease;pointer-events:none}
.slider-slide.active{opacity:1;pointer-events:auto}
.slider-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center;transform:scale(1.04);will-change:transform}
.slider-slide.active .slider-bg{animation:hero-kenburns 18s ease-in-out infinite alternate}
@keyframes hero-kenburns{
  from{transform:scale(1.04) translate(0,0)}
  to{transform:scale(1.12) translate(-1.2%,-0.8%)}
}
/* 下方向＋左の読みやすさ（明るい右寄り構図でも文字が乗るように） */
.slider-overlay{position:absolute;inset:0;background:
  var(--hero-scrim-side),
  var(--hero-scrim-strong);
  display:flex;align-items:flex-end;padding:clamp(16px,3vw,28px) clamp(16px,4vw,36px)}
@media (prefers-reduced-motion: reduce){
  .slider-bg,.slider-slide.active .slider-bg{animation:none;transform:none;will-change:auto}
}

@media print{
  .site-header,.site-footer,.bottom-nav,.pwa-nav,.install-banner,.cta-fixed,.back-bar{display:none!important}
  .site-main{max-width:none;padding:0}
  body{background:#fff;color:#000}
  a{text-decoration:underline}
}
.slider-copy{position:relative;z-index:1;max-width:640px;color:var(--on-dark)}
.slider-copy h1,.slider-copy .slider-headline{margin:0 0 8px;text-shadow:0 2px 8px rgba(0,0,0,.4)}
.slider-subcopy{margin:0 0 14px;font-size:clamp(.88rem,2vw,1.05rem);color:rgba(255,255,255,.90);text-shadow:0 1px 4px rgba(0,0,0,.4)}
.slider-controls{position:absolute;bottom:12px;left:12px;right:12px;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:10px;pointer-events:none}
.slider-toggle{
  pointer-events:auto;border:1px solid rgba(255,255,255,.35);background:rgba(10,31,61,.55);color:#fff;
  border-radius:999px;width:var(--tap-min);min-width:var(--tap-min);min-height:var(--tap-min);padding:0;
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:.95rem;
}
.slider-status{pointer-events:none;display:flex;flex-direction:column;gap:4px;min-width:0;flex:1;max-width:12rem;margin-inline:auto}
.slider-counter{color:#fff;font-size:.78rem;font-weight:800;letter-spacing:.04em;text-shadow:0 1px 3px rgba(0,0,0,.45)}
.slider-progress{height:3px;border-radius:999px;background:rgba(255,255,255,.28);overflow:hidden}
.slider-progress__bar{display:block;height:100%;width:0;background:var(--gold)}
/* 白丸ドットは廃止（カウンター＋細バーに置換）。残骸セレクタは非表示のみ維持 */
.slider-dots,.slider-dot{display:none !important}
@media (prefers-reduced-motion: reduce){
  .slider-progress__bar{transition:none !important;width:0 !important}
}

/* Ticker */
.ticker-bar{display:flex;align-items:center;gap:10px;background:linear-gradient(135deg,var(--red),var(--red-deep));
  color:var(--on-dark);border-radius:16px;padding:10px 14px;margin-bottom:14px;overflow:hidden;box-shadow:var(--shadow)}
.ticker-label{font-size:1.1rem;flex-shrink:0}
.ticker-track{overflow:hidden;flex:1;position:relative}
.ticker-inner{display:flex;gap:0;white-space:nowrap;animation:ticker-scroll 30s linear infinite}
.ticker-bar:hover .ticker-inner{animation-play-state:paused}
.ticker-item{display:inline-block;padding:0 32px;font-weight:700;font-size:.92rem;color:#fff;text-decoration:none}
.ticker-item:hover{text-decoration:underline}
@keyframes ticker-scroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* Highlight video */
.highlight-video-wrap{border-radius:var(--radius);overflow:hidden;background:var(--navy);box-shadow:var(--shadow);transition:transform var(--motion) ease,box-shadow var(--motion) ease}
.highlight-video-wrap:hover{transform:translateY(-2px);box-shadow:var(--shadow-strong)}
.highlight-video{display:block;width:100%;aspect-ratio:16/9;border:none}
.highlight-video-title{margin:10px 0 0;font-weight:700;color:var(--heading);font-size:1rem}
.video-embed{position:relative;width:100%;padding-top:56.25%;overflow:hidden;border-radius:var(--radius);background:var(--navy)}
.video-embed__frame{position:absolute;inset:0;width:100%;height:100%;border:0;background:#000}
.video-card-grid{display:grid;gap:var(--space-3);grid-template-columns:1fr}
.video-card{display:flex;flex-direction:column;overflow:hidden;color:inherit;text-decoration:none}
.video-card__thumb{position:relative;aspect-ratio:16/9;background:var(--navy);overflow:hidden}
.video-card__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.video-card__placeholder,.video-card__play{
  position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:1.5rem;
}
.video-card__placeholder{background:color-mix(in srgb, var(--navy) 88%, var(--red))}
.video-card__play{
  inset:auto auto .6rem .6rem;width:2.2rem;height:2.2rem;border-radius:999px;
  background:color-mix(in srgb, var(--red) 85%, #000);font-size:.85rem;
}
.video-card__duration{
  position:absolute;right:.5rem;bottom:.5rem;padding:.15rem .4rem;border-radius:4px;
  background:#0009;color:#fff;font-size:.75rem;font-weight:700;
}
.video-card__meta{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;margin:.4rem 0}
.video-card__audience{margin:0 0 .35rem;color:var(--muted);font-size:.82rem}
.video-card--featured{border-color:var(--gold)}
.video-coach-comment{
  margin:1.25rem 0 0;padding:1rem 1.1rem;border-left:4px solid var(--red);
  background:color-mix(in srgb, var(--red) 8%, var(--surface));border-radius:0 var(--radius-sm) var(--radius-sm) 0;
}
.video-coach-comment h2{margin:0 0 .5rem;font-size:1rem}
.video-coach-comment p{margin:0;white-space:pre-wrap}
.video-description{white-space:pre-wrap}
.video-back{margin:0 0 1rem}
.filter-chips .pill[aria-current="page"]{background:var(--red);color:#fff}
@media (min-width: 760px){
  .video-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width: 1100px){
  .video-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width: 1400px){
  .video-card-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
.notice-link{color:var(--on-dark);text-decoration:underline}

/* Section */
.section{margin:var(--section-gap) 0}
.section-title{
  display:flex;align-items:center;gap:10px;
  position:relative;
  padding:0 0 10px 0;
  margin:0 0 var(--block-gap);
  font-size:1.12rem;font-weight:700;color:var(--heading);letter-spacing:.015em;
  border-left:none;
  border-bottom:1px solid var(--line);
}
.section-title::before{
  content:"";flex-shrink:0;width:10px;height:10px;border-radius:50%;
  background:var(--gold);box-shadow:0 0 0 3px color-mix(in srgb, var(--gold) 28%, transparent);
}
.section-title::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:2px;
  background:linear-gradient(90deg,var(--gold) 0,var(--gold) 48px,transparent 180px);
  border-radius:2px;
}
.section-title .more{margin-left:auto;font-size:.82rem;color:var(--navy-3);font-weight:800;
  padding:4px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);
  transition:background var(--motion) ease,color var(--motion) ease,border-color var(--motion) ease}
.section-title .more:hover{background:var(--navy);color:#fff;border-color:var(--heading)}

/* Cards grid */
.grid{display:grid;gap:var(--space-3)}
.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.card{
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-md);box-shadow:var(--shadow);overflow:hidden;
  transition:transform var(--motion) ease,box-shadow var(--motion) ease,border-color var(--motion) ease;
}
.card:hover,.card:focus-within{transform:translateY(-2px);box-shadow:var(--elev-hover)}
.card--accent{border-top:3px solid var(--gold)}
.card .card-body{padding:var(--space-3) 14px}
/* 文章ページ: 直下のセクションカードを「囲み枠」から「線区切りのフラット面」に。
   入れ子の箱感と、ページ余白＋カード余白の二重インセット（スマホで窮屈）を解消する。
   直下(>)のみ対象なので、中に置いたリンクカード等の箱はそのまま残る。 */
.doc-flow{border-top:1px solid var(--line)}
.doc-flow > .card{background:transparent;border:0;border-radius:0;box-shadow:none;overflow:visible;
  transition:none;margin:0;border-bottom:1px solid var(--line)}
.doc-flow > .card:hover,.doc-flow > .card:focus-within{transform:none;box-shadow:none}
.doc-flow > .card:last-child{border-bottom:0}
.doc-flow > .card > .card-body{padding:20px 0}
.card .tag{display:inline-block;font-size:.7rem;font-weight:700;padding:3px 8px;border-radius:6px;
  background:var(--navy);color:var(--on-dark);margin-bottom:4px}
.card .tag.important{background:var(--red)}
.card .tag.tag--members,.tag.tag--members{background:var(--muted);color:var(--on-dark)}
.card .date{color:var(--muted);font-size:.78rem}
.card h2,.card h3{font-size:.96rem;margin:.4em 0 0;color:var(--heading);line-height:1.35}
.social-card{border-top:3px solid var(--gold)}
.social-card .card-body{font-weight:800;color:var(--heading);font-size:.9rem;padding:16px 12px}
.sponsor-card .card-body{display:grid;place-items:center;min-height:88px;padding:16px}
.sponsor-card .card-body img{max-height:56px;width:auto;max-width:100%;object-fit:contain;margin:0 auto}
.sns-feed{margin-bottom:12px}
.sns-feed .card-body{padding:12px}
.sns-feed-lead{margin:0 0 8px;color:var(--heading);font-weight:700}
.sns-feed-widget{min-height:300px;border-radius:var(--radius-md);background:linear-gradient(180deg,var(--surface),var(--surface-2));border:1px solid var(--line)}
.sns-fallback-note{margin:0 0 10px;color:var(--muted);font-size:.9rem}

/* Horizontal scroll row (mobile swipe, desktop grid) */
.scroll-row{display:flex;gap:12px;overflow-x:auto;-webkit-overflow-scrolling:touch;
  scroll-snap-type:x mandatory;padding-bottom:10px;
  scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.scroll-row::-webkit-scrollbar{height:4px}
.scroll-row::-webkit-scrollbar-track{background:transparent}
.scroll-row::-webkit-scrollbar-thumb{background:var(--line);border-radius:99px}
.scroll-row>.card{flex-shrink:0;scroll-snap-align:start;width:min(78vw,280px)}
.scroll-row.player-row>.card{width:min(27vw,108px)}
.scroll-row.album-row>.card{width:min(52vw,200px)}

/* Game result card win/loss indicators */
.result-win{border-left:4px solid var(--green)}
.result-loss{border-left:4px solid var(--muted)}
.result-draw{border-left:4px solid var(--gold)}
.result-row .card .score-final{display:inline-block;margin:0 4px;font-size:1.35rem}
.result-list{display:grid;gap:10px;margin-top:12px}
.result-list--home{margin-top:8px}
.result-card{align-items:stretch;position:relative}
.result-card-hit{display:flex;gap:12px;align-items:center;flex:1;min-width:0;color:inherit;text-decoration:none}
.result-card .d{align-self:center}
.result-card-body{display:grid;gap:4px;min-width:0;flex:1}
.result-card-top{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.result-card-match{font-size:1rem;line-height:1.35;color:var(--heading)}
.result-card .score-final{font-size:clamp(1.45rem,4.5vw,1.85rem);line-height:1.1;margin:2px 0}
.result-card-venue{font-size:.82rem;display:block}
.result-card-map{position:absolute;right:12px;bottom:10px;z-index:2;font-size:.78rem;font-weight:800;color:var(--heading);text-decoration:underline;text-underline-offset:2px;padding:6px 8px;min-height:var(--tap-min);display:inline-flex;align-items:center}
.sched-item--game{position:relative}
.sched-item--game .result-card-hit{display:flex;gap:12px;align-items:center;flex:1;min-width:0;color:inherit;text-decoration:none}
.sched-item--game .result-card-map{position:absolute;right:10px;bottom:8px;z-index:2;font-size:.78rem;font-weight:800;color:var(--heading);text-decoration:underline;text-underline-offset:2px;padding:6px 8px}
.result-card .sched-item-chevron{align-self:center;margin-left:auto;padding-left:6px}
@media(max-width:520px){
  .result-card .d{min-width:52px;padding:8px 8px}
  .result-card .d .day{font-size:1.15rem}
  .result-card-match{font-size:.95rem}
}

/* Buttons – solid(primary) / ghost / gold。:focus-visible リング維持、押下 scale(.98) */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  background:var(--surface);color:var(--heading);padding:10px 22px;border-radius:var(--radius);
  font-weight:800;border:2px solid var(--navy);cursor:pointer;text-align:center;
  transition:background var(--motion-normal) var(--ease-out),color var(--motion-normal) var(--ease-out),border-color var(--motion-normal) var(--ease-out),transform var(--motion-fast) var(--ease-out),box-shadow var(--motion-normal) var(--ease-out);
  font-size:.9rem;min-height:var(--tap-min);line-height:1.4;
}
.btn:hover{background:var(--navy);color:#fff}
.btn:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.btn:active{transform:scale(.98)}
.btn.solid{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn.solid:hover,.btn.solid:focus-visible{background:var(--navy-2);border-color:var(--navy-2);color:#fff}
.btn.ghost{background:var(--surface);color:var(--heading);border:2px solid var(--navy)}
.btn.ghost:hover,.btn.ghost:focus-visible{background:var(--navy);color:#fff}
.btn.gold{background:linear-gradient(135deg,var(--gold),var(--gold-light));color:var(--heading);border-color:transparent}
.btn.gold:hover,.btn.gold:focus-visible{background:linear-gradient(135deg,var(--gold-deep),var(--gold));color:var(--heading)}
.btn.red{border-color:var(--red);color:var(--red)}
.btn.red:hover,.btn.red:focus-visible{background:var(--red);color:#fff}
.btn.block{display:block;width:100%}
.btn.ghost-dark{background:rgba(255,255,255,.10);color:#fff;border:1px solid rgba(255,255,255,.28)}
.btn.ghost-dark:hover,.btn.ghost-dark:focus-visible{background:rgba(255,255,255,.22);color:#fff}
[data-theme="dark"] .btn.ghost{border-color:var(--heading)}
[data-theme="dark"] .btn:not(.solid):not(.gold):not(.red):not(.ghost-dark){border-color:var(--heading)}

/* Quick links (top nav shortcuts) */
.quick-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0}
.quick-links a,.quick-links .ql-card{display:flex;flex-direction:column;gap:5px;background:var(--surface);border-radius:16px;
  box-shadow:var(--shadow);padding:14px 12px;font-weight:700;border:1px solid var(--line);
  border-top:3px solid var(--gold);transition:box-shadow var(--motion) ease,transform var(--motion) ease;text-decoration:none;color:inherit}
.quick-links a:hover,.quick-links a:focus-visible,
.quick-links .ql-card:hover,.quick-links .ql-card:focus-visible{transform:translateY(-2px);box-shadow:var(--elev-hover)}
.quick-links .ql-icon{font-size:1.5rem;display:block;color:var(--heading)}
.quick-links .ql-title{font-size:.9rem;color:var(--heading)}
.quick-links .ql-text{font-size:.76rem;color:var(--muted);font-weight:600}
.quick-links--home{margin:0}
.quick-links--home .ql-card--primary{
  background:linear-gradient(180deg,var(--face-plain),color-mix(in srgb, var(--gold) 12%, var(--face-plain)));
  border-top-width:4px;border-top-color:var(--gold);
  box-shadow:var(--elev-1);
  position:relative;
}
.quick-links--home .ql-card--primary::after{
  content:"";position:absolute;left:12px;right:12px;bottom:0;height:3px;
  background:var(--accent-line);border-radius:2px 2px 0 0;pointer-events:none;
}
.quick-links--home .ql-card--primary .ql-icon{font-size:1.7rem;color:var(--navy)}
.quick-links--home .ql-card--primary .ql-title{font-size:1rem;font-weight:800}
/* Secondary quick links (2段目のサブ導線アイコン行) */
.quick-links-secondary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:0 0 20px}
.quick-links-secondary a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  min-height:60px;padding:8px 4px;background:var(--surface);border:1px solid var(--line);border-radius:12px;
  font-weight:700;font-size:.72rem;color:var(--heading);text-align:center;line-height:1.2;
  transition:box-shadow var(--motion) ease,transform var(--motion) ease}
.quick-links-secondary a:hover,.quick-links-secondary a:focus-visible{transform:translateY(-1px);box-shadow:var(--shadow)}
.quick-links-secondary i{font-size:1.05rem;color:var(--heading)}

/* 写真館の操作: アイコンタイル横並び（他ページのカードと統一トーン） */
.gallery-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:10px;margin:16px 0 20px}
.gallery-actions .ga-item{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:8px;
  min-height:88px;padding:12px 8px;background:var(--surface);border:1px solid var(--line);border-radius:14px;
  color:var(--heading);font-weight:700;font-size:.78rem;line-height:1.25;text-align:center;box-shadow:var(--elev-1);
  transition:transform var(--motion) ease,box-shadow var(--motion) ease,border-color var(--motion) ease}
.gallery-actions .ga-item:hover,.gallery-actions .ga-item:focus-visible{transform:translateY(-2px);box-shadow:var(--elev-hover)}
.gallery-actions .ga-ic{display:grid;place-items:center;color:var(--heading);flex-shrink:0}
.gallery-actions .ga-item i{font-size:1.5rem}
.gallery-actions .ga-item--primary{border-color:var(--red);background:color-mix(in srgb, var(--red) 7%, var(--surface))}
.gallery-actions .ga-item--primary .ga-ic{color:var(--red)}

/* PWA install banner */
.install-banner{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;margin:10px var(--page-inline) 0;padding:10px 12px;
  background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:var(--radius-md);
  box-shadow:var(--shadow);font-size:.84rem;font-weight:700;color:var(--heading)}
.install-banner[hidden]{display:none}
.install-banner-icon{font-size:1.1rem;color:var(--heading);flex-shrink:0}
.install-banner-text{flex:1;line-height:1.35;min-width:12rem}
.install-banner .btn{white-space:nowrap;flex-shrink:0;width:auto;padding:8px 16px;font-size:.82rem;min-height:var(--tap-min,44px)}
.install-banner-close{background:none;border:none;font-size:1.25rem;line-height:1;color:var(--muted);cursor:pointer;padding:2px 6px;min-width:44px;min-height:44px;border-radius:var(--radius-sm)}
.install-banner-help{font-size:.78rem;font-weight:700;color:var(--heading);text-decoration:underline;text-underline-offset:2px;min-height:44px;display:inline-flex;align-items:center}
.install-banner-help[hidden]{display:none}
@media(max-width:767px){
  .install-banner{margin-bottom:8px}
}
@media(min-width:768px){.install-banner{max-width:var(--container-max);margin-left:auto;margin-right:auto}}

.sw-update-banner{
  position:fixed;left:50%;bottom:calc(var(--bottom-nav-height,0px) + env(safe-area-inset-bottom) + 16px);
  transform:translateX(-50%);z-index:80;display:flex;align-items:center;gap:12px;
  padding:12px 16px;background:var(--navy);color:var(--on-dark);border-radius:var(--radius-md);
  box-shadow:var(--elev-2);font-size:.86rem;font-weight:700;max-width:min(92vw,420px);
  border:1px solid color-mix(in srgb, var(--gold) 45%, transparent);
}
.sw-update-banner > i{color:var(--gold);flex-shrink:0}
.sw-update-banner .btn{background:var(--gold);color:var(--navy);border:none;width:auto;min-height:var(--tap-min,44px);padding:8px 14px}

/* Notice bar */
.notice{background:linear-gradient(135deg,var(--red),var(--red-deep));color:var(--on-dark);border-radius:12px;padding:12px 14px;font-weight:700;margin-bottom:14px;box-shadow:var(--shadow);font-size:.92rem}

/* Next schedule */
.sched-item{
  display:flex;gap:12px;align-items:center;background:var(--surface);
  border-radius:var(--radius-md);padding:12px 14px;
  border:1px solid var(--line);box-shadow:var(--shadow);margin-bottom:8px;
  transition:box-shadow var(--motion) ease,transform var(--motion) ease,border-color var(--motion) ease;
}
.sched-item:hover,.sched-item:focus-within{box-shadow:var(--shadow-strong);transform:translateY(-1px)}
.sched-item--game{border-left:4px solid var(--game)}
.sched-item--practice{border-left:4px solid var(--practice)}
.sched-item .d{
  background:linear-gradient(180deg,var(--navy),var(--navy-3));color:var(--on-dark);
  border-radius:var(--radius-sm);padding:8px 10px;text-align:center;min-width:58px;flex-shrink:0;
}
.sched-item .d .day{font-size:1.25rem;font-weight:800;line-height:1}

/* Scoreboard */
.scoreboard{width:100%;border-collapse:collapse;background:var(--surface);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow)}
.scoreboard th,.scoreboard td{border:1px solid var(--line);padding:8px;text-align:center;font-size:.9rem}
.scoreboard thead th{background:var(--navy);color:var(--on-dark)}
.score-final{font-size:2rem;font-weight:800;color:var(--heading)}
.result-win .score-final{color:var(--green)}
.result-loss .score-final{color:var(--muted)}

/* Player card */
.player-card{text-align:center}
.player-card .num{
  display:inline-flex;align-items:center;justify-content:center;
  width:2.55rem;height:2.55rem;margin:-1.15rem auto .35rem;
  border-radius:50%;
  background:var(--navy);color:var(--gold);
  border:2px solid var(--gold);
  box-shadow:var(--shadow);
  font-weight:800;font-size:1.05rem;line-height:1;
  position:relative;z-index:1;white-space:nowrap;
}
.player-card .num-pre{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
.player-card .ph{position:relative;aspect-ratio:1;background:var(--bg);overflow:hidden;color:var(--muted);font-size:1.8rem}
.player-card .ph::before{content:"";display:block;padding-top:100%}
.player-card .ph img,.player-card .ph .ph-icon{position:absolute;inset:0;width:100%;height:100%}
.player-card .ph img{width:100%;height:100%;object-fit:cover;display:block}
.player-card .ph .ph-icon{display:grid;place-items:center}
/* 成長記録一覧：選手を写真で見分けやすくするアバター */
.growth-th-photo,.growth-td-photo{width:64px;text-align:center}
.growth-avatar{display:inline-grid;place-items:center;width:48px;height:48px;border-radius:50%;
  overflow:hidden;background:var(--bg);border:1px solid var(--line)}
.growth-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.growth-avatar__icon{display:grid;place-items:center;width:100%;height:100%;color:var(--muted);font-size:1.1rem}
.player-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.player-grid .player-card,.player-row .player-card{display:flex;flex-direction:column;min-width:0;height:100%}
.player-grid .player-card .num{width:2.2rem;height:2.2rem;font-size:.88rem;margin-top:-1rem}
.player-grid .player-card .card-body,.player-row .player-card .card-body{display:flex;flex:1;flex-direction:column}
.player-grid .player-card .card-body{padding:8px 4px 10px}
.player-grid .player-card strong{display:-webkit-box;font-size:.76rem;line-height:1.2;min-height:2.4em;word-break:break-word;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.player-grid .player-card .muted{display:block;font-size:.66rem;line-height:1.2;margin-top:2px}
.player-row .player-card .num{width:2.35rem;height:2.35rem;font-size:.95rem;margin-top:-1.05rem}
.player-row .player-card .card-body{padding:8px 6px 10px}
.player-row .player-card strong{display:-webkit-box;font-size:.82rem;line-height:1.25;min-height:2.5em;word-break:break-word;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.player-row .player-card .muted{display:block;font-size:.72rem;line-height:1.25;margin-top:2px}

/* Home stacked cards — 外枠はフレームレス（内側カード／区切り線が唯一の面） */
.home-stack-card{
  background:transparent;border:none;box-shadow:none;border-radius:0;padding:0;
}
.home-stack-card .section-title{margin-top:0}
.home-stack-card .scroll-row{padding-bottom:2px}
.home-stack-card .sched-item:last-child{margin-bottom:0}
.home-stack-card .sched-item,
.home-stack-card .result-list--home .result-card{
  box-shadow:var(--elev-1);
}
/* 会場など「内側カードが無い」stack は単独の面として維持 */
.home-stack-card.venue-card{
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-lg);box-shadow:var(--elev-1);padding:16px 16px 14px;
}

/* Home news list — 区切り線リスト（カード入れ子なし） */
.news-list{display:grid;gap:0;background:transparent}
.news-list-item{
  display:block;padding:14px 2px;border-radius:0;
  border-bottom:1px solid var(--line);
  transition:background var(--motion) ease;
}
.news-list-item.has-thumb{display:flex;gap:12px;align-items:center}
.news-list-body{display:grid;gap:6px;min-width:0}
.news-thumb{width:64px;height:64px;flex-shrink:0;border-radius:var(--radius-sm);overflow:hidden;background:var(--bg);box-shadow:var(--elev-1);transition:transform var(--motion) ease,box-shadow var(--motion) ease}
.news-list-item:hover{background:color-mix(in srgb, var(--surface-2) 70%, transparent)}
.news-list-item:hover .news-thumb{transform:translateY(-1px);box-shadow:var(--elev-1)}
.news-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.news-list-item:first-child{padding-top:4px}
.news-list-item:last-child{border-bottom:none;padding-bottom:4px}
.news-list-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.news-list-item .date{font-size:.76rem;white-space:nowrap;color:var(--muted)}
.news-list-item .tag{margin-bottom:0}
.news-list-title{font-size:.95rem;font-weight:800;line-height:1.45;color:var(--heading);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.news-list-empty{margin:0}
/* News list page thumbnail */
.news-card-thumb{aspect-ratio:16/9;background:var(--bg);overflow:hidden;border-radius:var(--radius-md) var(--radius-md) 0 0}
.news-card-thumb img{width:100%;height:100%;object-fit:cover;display:block}

/* Social link cards */
.social-links-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.social-links-grid .card-body{padding:12px 8px}
.social-links-grid .social-card .card-body{font-size:.82rem}
.social-links-grid .social-card i{display:block;font-size:1.15rem;margin-bottom:6px}

/* Tables */
.data-table{width:100%;border-collapse:collapse;background:var(--surface);box-shadow:var(--shadow);border-radius:16px;overflow:hidden}
.data-table th,.data-table td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:center;font-size:.88rem}
.data-table th{white-space:nowrap;word-break:keep-all}
.data-table thead th{background:var(--navy);color:#fff}
/* 成績表など横スクロール前提のテーブルは本文セルも縦落ちさせない */
.hint-scroll .data-table td{white-space:nowrap}
.data-table td.name{text-align:left;font-weight:700}
.table-wrap{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}
.hint-scroll::after{content:"↔ 左右にスクロールできます";display:block;font-size:.76rem;color:var(--muted);margin-top:6px}
@media(min-width:768px){.hint-scroll::after{display:none}}
.table-first-sticky th:first-child,
.table-first-sticky td:first-child{position:sticky;left:0;background:var(--surface);z-index:2;text-align:left;font-weight:700}
.table-first-sticky thead th:first-child{background:var(--navy);z-index:4}

/* Player analysis */
.player-header{border-top:3px solid var(--gold);box-shadow:var(--shadow-strong);overflow:hidden}
.player-header-inner{display:grid;grid-template-columns:120px 1fr;gap:16px;align-items:center}
.player-photo{width:120px;height:120px;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--navy),var(--navy-2));color:var(--on-dark);display:grid;place-items:center;overflow:hidden;box-shadow:var(--shadow)}
.player-photo img{width:100%;height:100%;object-fit:cover}
.player-eyebrow{margin:0 0 4px;font-size:.72rem;letter-spacing:.14em;font-weight:800;color:var(--muted)}
.player-number{display:inline-block;padding:4px 10px;border-radius:var(--radius-pill);background:var(--navy);color:var(--on-dark);font-weight:800}
.player-name{margin:8px 0 0;font-size:clamp(1.28rem,3vw,1.7rem);font-weight:800;line-height:1.3;color:var(--heading);text-wrap:balance}
.player-name .muted{font-size:.72em;font-weight:600}
.player-badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.player-badge{display:inline-flex;padding:4px 10px;border:1px solid var(--line);border-radius:var(--radius-pill);font-size:.82rem;background:var(--surface-2);font-weight:700}
.player-goal{margin:.75rem 0 0;color:var(--muted);line-height:1.55}
.player-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.player-tab{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-pill);padding:8px 14px;font-weight:700;cursor:pointer;min-height:var(--tap-min)}
.player-tab.is-active{background:var(--navy);color:var(--on-dark);border-color:var(--heading)}
.player-tab:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.tab-panel{display:none}
.tab-panel.is-active{display:block}
.radar-wrap{height:320px;max-width:460px}
.player-links{display:flex;gap:8px;flex-wrap:wrap}

/* Gallery */
.album-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:6px}
.photo-grid .pcell{position:relative;aspect-ratio:1;border-radius:var(--radius-md);overflow:hidden;background:var(--bg);box-shadow:var(--shadow);transition:transform var(--motion) ease,box-shadow var(--motion) ease}
.photo-grid .pcell:hover{transform:translateY(-2px);box-shadow:var(--shadow-strong)}
.photo-grid .pcell img{width:100%;height:100%;object-fit:cover}
.photo-grid .pcell input{position:absolute;top:6px;left:6px;width:20px;height:20px}
.album-cover{aspect-ratio:4/3;background:var(--bg);display:grid;place-items:center;color:var(--muted);border-radius:var(--radius-md) var(--radius-md) 0 0;overflow:hidden}
.album-cover img{width:100%;height:100%;object-fit:cover}
.gallery-album-grid,.gallery-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.gallery-album-card,.gallery-photo-card{display:flex;flex-direction:column;height:100%}
.gallery-album-card .card-body,.gallery-photo-card .card-body{padding:10px 12px 12px}
.gallery-album-card strong,.gallery-photo-card strong{display:block;font-size:.82rem;line-height:1.35;color:var(--heading)}
.gallery-flags{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px;align-items:center}
.pill--public{background:var(--green)}
.pill--private{background:var(--muted)}
.pill--download{background:var(--gold);color:var(--heading);font-weight:800}
.gallery-photo-thumb{display:block;aspect-ratio:1;background:var(--bg);overflow:hidden;border-radius:var(--radius-md) var(--radius-md) 0 0}
.gallery-photo-thumb img{width:100%;height:100%;object-fit:cover}
.gallery-photo-players{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.gallery-photo-players .pill{padding:2px 8px;font-size:.68rem}
.gallery-photo-card form{padding:0 10px 10px;margin-top:auto}
.deadline-note{font-size:.78rem;color:var(--muted)}

/* Forms */
.form-box{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;max-width:520px;margin:0 auto}
.form-box label,.form-label{display:block;font-weight:700;margin:12px 0 4px;color:var(--heading)}
.input,.form-input,.form-box input,.form-box select,.form-box textarea,
input[type="text"],input[type="email"],input[type="tel"],input[type="password"],input[type="number"],input[type="search"],input[type="date"],
select,textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font-size:16px;font-family:inherit;min-height:var(--tap-min);background:var(--surface);color:var(--ink)}
.form-box textarea,textarea{min-height:6rem}
.form-help{margin:0;font-size:max(.875rem,14px);color:var(--muted);line-height:1.45}
.field{margin:0 0 4px}
.field--error input,.field--error select,.field--error textarea{border-color:var(--red)}
.field-error{color:var(--red);font-size:.86rem;font-weight:700;margin:6px 0 0}
.field-hint{font-size:max(.875rem,14px);color:var(--muted);margin:4px 0 12px}
.privacy-note{font-size:.86rem;color:var(--muted);line-height:1.55;margin:14px 0}
.privacy-consent{margin-top:8px}
.checkbox-label{display:flex;align-items:flex-start;gap:10px;font-weight:700;cursor:pointer;min-height:var(--tap-min)}
.checkbox-label input[type="checkbox"]{width:auto;min-width:20px;min-height:20px;margin-top:2px;flex-shrink:0}
.required{color:var(--red);font-weight:800}
.goods-shop-cta{margin:0 0 16px;display:grid;gap:8px}
.goods-shop-cta .btn{width:auto;justify-self:start}
.goods-card__media{aspect-ratio:1/1;overflow:hidden;background:var(--bg);display:grid;place-items:center}
.goods-card__media img{width:100%;height:100%;object-fit:contain}
.goods-ext-link{margin:10px 0 0}

/* Year lock UI */
.year-list{display:grid;gap:10px}
.year-chip{display:flex;align-items:center;gap:10px;background:var(--surface);border-radius:14px;padding:14px;box-shadow:var(--shadow)}
.year-chip .lock{margin-left:auto}
.unlocked{color:var(--status-ok);font-weight:700}

/* ===== Layout: Footer ===== */
.site-footer{
  margin-top:var(--space-7);background:var(--navy);color:var(--on-dark);
  padding:32px var(--page-inline) 20px;
  border-top:3px solid var(--gold);
}
.footer-inner{max-width:var(--container-max);margin:0 auto;display:grid;gap:22px;align-items:start}
.footer-col{min-width:0}
.footer-heading{margin:0 0 8px;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-weight:800}
.footer-brand{display:flex;align-items:center;gap:10px}
.footer-brand p{margin:.2rem 0 0;color:var(--on-dark-muted);font-size:.88rem}
.footer-nav,.footer-support{display:flex;flex-wrap:wrap;gap:6px}
.footer-sns-links{display:flex;flex-wrap:wrap;gap:6px}
.sns-link,.footer-nav a,.footer-support a{display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border-radius:var(--radius-sm);
  background:rgba(255,255,255,.07);font-weight:700;color:var(--on-dark-soft);font-size:var(--text-sm);
  transition:background var(--motion) ease;min-height:var(--tap-min)}
.sns-link:hover,.footer-nav a:hover,.footer-support a:hover,.sns-link:focus-visible,.footer-nav a:focus-visible,.footer-support a:focus-visible{background:rgba(255,255,255,.15);color:var(--on-dark)}
.sns-link--icon{width:44px;height:44px;padding:0;font-size:1.05rem}
.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}
.footer-theme{display:flex;justify-content:center;margin-top:14px}
.copyright{max-width:var(--container-max);margin:14px auto 0;color:rgba(255,255,255,.56);font-size:.82rem;padding-top:var(--space-3);border-top:1px solid rgba(255,255,255,.08);text-align:center}
@media(min-width:768px){
  .footer-inner{grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));align-items:start}
}
@media(min-width:1024px){
  .main-nav{gap:2px}
}

@media(min-width:768px){
  :root{--header-height:68px;--section-gap:36px;--block-gap:20px}
  .header-inner{padding:10px var(--page-inline);min-height:var(--header-height);gap:var(--space-4)}
  .brand-logo{width:44px;height:44px}
  .brand-text{font-size:1.05rem;letter-spacing:.01em}
  .brand-subtext{display:block;font-size:.68rem;letter-spacing:.18em;margin-top:2px}
  .nav-toggle{display:none !important}
  .nav-quick,.nav-meta{display:none !important}
  .nav-desk{
    display:flex;align-items:center;flex-wrap:wrap;gap:2px 4px;
    margin-left:auto;min-width:0;max-width:100%;
  }
  .nav-logout-form--desk{display:inline-flex;margin:0}
  .nav-logout-form--desk .nav-link{cursor:pointer}
  .hero-home{grid-template-columns:minmax(0,1.7fr) minmax(260px,.9fr)}
  .hero-home--bleed{
    min-height:clamp(280px,36vw,420px);padding:40px max(var(--page-inline),5vw);
    display:grid;grid-template-columns:minmax(0,1.35fr) minmax(240px,.85fr);
    gap:28px;align-items:center;
  }
  .hero-brand-panel{
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
    position:relative;z-index:1;min-height:220px;padding:28px 20px;
    border-radius:var(--radius-lg);
    background:
      radial-gradient(circle at 30% 20%,color-mix(in srgb, var(--gold) 22%, transparent),transparent 55%),
      linear-gradient(160deg,color-mix(in srgb, var(--navy-3) 70%, transparent),color-mix(in srgb, var(--navy) 55%, transparent));
    border:1px solid color-mix(in srgb, var(--gold) 35%, transparent);
    box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--on-dark) 8%, transparent);
  }
  .hero-brand-panel__logo{
    width:min(42%,160px);height:auto;aspect-ratio:1;border-radius:50%;
    background:var(--white);padding:8px;box-shadow:var(--elev-2);
  }
  .hero-brand-panel__name{
    margin:4px 0 0;font-size:1.05rem;font-weight:800;letter-spacing:.06em;
    color:var(--on-dark);text-align:center;
  }
  .hero-brand-panel__meta{
    margin:0;font-size:.72rem;font-weight:700;letter-spacing:.18em;
    color:var(--on-dark-muted);text-align:center;
  }
  .hero-slider--bleed{max-height:min(68vh,620px)}
  .hero-lead{font-size:1.05rem;line-height:1.65;max-width:38rem}
  .section-kicker{letter-spacing:.16em;font-size:.78rem}
  .section-title{font-size:1.35rem;letter-spacing:.01em}
  .quick-links--home{gap:14px;margin:8px 0 0}
  .quick-links--home .ql-card{padding:18px 14px;transition:transform var(--motion) ease,box-shadow var(--motion) ease}
  .quick-links--home .ql-card:hover,.quick-links--home .ql-card:focus-visible{transform:translateY(-3px);box-shadow:var(--elev-hover)}
  .quick-links-secondary{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0 28px}
  .home-brandbar__inner{padding:18px max(var(--page-inline),4vw) 14px}
  .home-page-title--bar{font-size:1.35rem}
  .page-home .section--brand-band{padding:var(--space-5) var(--space-4)}
  /* Scroll rows become grid on desktop */
  .scroll-row{overflow:visible;scroll-snap-type:none;display:grid;padding-bottom:0}
  .scroll-row>.card,.scroll-row.player-row>.card,.scroll-row.album-row>.card{width:auto}
  .scroll-row.result-row{grid-template-columns:repeat(3,minmax(0,1fr))}
  .scroll-row.player-row{grid-template-columns:repeat(4,minmax(0,1fr))}
  .scroll-row.album-row{grid-template-columns:repeat(4,minmax(0,1fr))}
  .bottom-nav{display:none}
  .player-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
  .gallery-album-grid,.gallery-photo-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
  .member-home-primary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--block-gap);align-items:start;margin:0 0 var(--section-gap)}
  .member-home-primary > .section{margin:0}
}

.staff-grid{align-items:stretch}
.staff-card{display:flex;flex-direction:column;height:100%}
.staff-card__photo{aspect-ratio:1;background:var(--surface-2);overflow:hidden}
.staff-card__photo img{width:100%;height:100%;object-fit:cover}
.staff-card__photo--empty{
  display:grid;place-items:center;color:var(--muted);
  aspect-ratio:auto;min-height:72px;max-height:96px;font-size:1.35rem;
  border-bottom:1px solid var(--line);
}
.staff-card__role{margin:0 0 4px;font-size:.78rem;font-weight:800;letter-spacing:.08em;color:var(--muted)}
.staff-card__name{margin:0 0 8px;font-size:1.05rem;color:var(--heading)}
@media (max-width:480px){
  .page-staff .staff-grid.grid.cols-3,
  .page-staff .staff-grid{grid-template-columns:1fr}
  .page-about .staff-grid.grid.cols-3,
  .page-about .staff-grid{grid-template-columns:1fr}
}
@media (min-width:481px) and (max-width:767px){
  .page-staff .staff-grid.grid.cols-3,
  .page-about .staff-grid.grid.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:768px){
  .page-staff .staff-grid.grid.cols-3,
  .page-about .staff-grid.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
}
.flow-list{margin:0;padding-left:1.2rem;line-height:1.8}
.flow-list li{margin:0 0 6px}
.measure{max-width:42rem}
.privacy-toc__heading{margin:0 0 8px;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--heading);font-weight:800}
.privacy-toc__list{margin:0;padding-left:0;list-style:none;line-height:1.4;display:flex;flex-direction:column;gap:4px}
.privacy-toc__list a{
  display:flex;align-items:center;min-height:var(--tap-min);padding:10px 12px;
  text-decoration:none;border-radius:var(--radius-sm);border:1px solid var(--line);
  color:var(--heading);font-weight:700;background:var(--surface);
}
.privacy-toc__list a:hover,.privacy-toc__list a:focus-visible{background:var(--face-tinted);border-color:var(--gold)}
[id^="privacy-"]{scroll-margin-top:calc(var(--header-height,64px) + 12px)}
.venue-note{margin:10px 0;padding:12px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-2)}
.venue-note__title{margin:0 0 6px;font-size:.9rem;color:var(--heading)}
.trial-status{margin:0 0 6px}
.center{text-align:center}
.mt{margin-top:16px}
.pill{display:inline-block;padding:2px 10px;border-radius:var(--radius-sm);background:var(--navy);color:#fff;font-size:.75rem}
/* フィルターチップ（アイコン付き・角丸で統一） */
.filter-chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.filter-chips .pill{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;font-size:.8rem;text-decoration:none}
.filter-chips .pill i{font-size:.9em}
/* 試合結果を日程に残したときの表示（結果ラベル色＋スコア） */
.pill--result{color:#fff}
.pill--win{background:var(--game,#1f6feb)}
.pill--lose{background:var(--muted,#64748b)}
.pill--draw{background:var(--navy-2,#334155)}
.sched-score{display:inline-block;margin-left:6px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--heading)}
.cal-chip .cal-chip-score{flex:0 0 auto;font-weight:800;font-variant-numeric:tabular-nums}

/* Filter bar */
.filter-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px}
.filter-bar label{display:flex;align-items:center;gap:6px;font-weight:700;font-size:.9rem}
.filter-bar select,.filter-bar input[type="number"]{padding:6px 10px;border:1px solid var(--line);border-radius:8px;font-size:.9rem;font-family:inherit}

/* Button size/state variants */
.btn.btn--sm,.btn--sm{padding:6px 14px;font-size:.82rem;min-height:36px}
.btn--outline{background:var(--surface);color:var(--heading);border:2px solid var(--navy)}
.btn--outline:hover,.btn--outline:focus-visible{background:var(--navy);color:#fff}
.btn--active{background:var(--navy);color:#fff;border-color:var(--heading);cursor:default}

/* Card extras */
.card-title{font-size:1rem;font-weight:800;margin:0 0 10px;color:var(--heading)}
.card-meta{font-size:.84rem;color:var(--muted);margin-bottom:12px}

/* Ranking grid */
.ranking-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-top:12px}
.ranking-block{background:var(--surface);border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow);padding:12px}
.ranking-title{font-size:.9rem;font-weight:800;color:var(--heading);margin:0 0 8px;border-bottom:2px solid var(--gold);padding-bottom:4px}

/* Stat cards (attendance summary) */
.stat-cards{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.stat-card{flex:1;min-width:80px;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px;text-align:center;border:1px solid var(--line)}
.stat-card--attend{border-top:3px solid var(--green)}
.stat-card--absent{border-top:3px solid var(--red)}
.stat-card--undecided{border-top:3px solid var(--gold)}
.stat-num{display:block;font-size:1.8rem;font-weight:800;color:var(--heading)}
.stat-label{display:block;font-size:.8rem;color:var(--muted);margin-top:2px}

/* Attendance badges */
.badge--attend{background:var(--green);color:#fff;padding:2px 8px;border-radius:var(--radius-sm);font-size:.78rem;font-weight:700}
.badge--absent{background:var(--red);color:#fff;padding:2px 8px;border-radius:var(--radius-sm);font-size:.78rem;font-weight:700}
.badge--undecided{background:var(--gold);color:var(--heading);padding:2px 8px;border-radius:var(--radius-sm);font-size:.78rem;font-weight:700}

/* Mobile – shared chrome (header drawer / bottom nav overlap) */
@media(max-width:767px){
  body.nav-open{overflow:hidden}
  .header-inner{padding:8px var(--page-inline);flex-wrap:nowrap}
  .brand{min-width:0;max-width:calc(100% - 108px);flex:1}
  .brand-text{font-size:.88rem}
  .brand-subtext{display:none}
  .nav-toggle{display:flex}
  body.nav-open .nav-toggle span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
  body.nav-open .nav-toggle span:nth-child(2){opacity:0}
  body.nav-open .nav-toggle span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
  .main-nav{
    display:none;position:fixed;
    top:var(--header-height);left:0;right:0;bottom:0;
    height:calc(100dvh - var(--header-height));
    z-index:56;flex-direction:column;flex-wrap:nowrap;align-items:stretch;justify-content:flex-start;gap:0;
    margin:0;padding:10px var(--page-inline) calc(var(--bottom-nav-height) + 20px + env(safe-area-inset-bottom));
    width:100%;max-width:100%;min-width:0;box-sizing:border-box;
    background:var(--surface);
    color:var(--heading);
    overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
    border-top:1px solid var(--line);
    box-shadow:var(--elev-1);
  }
  .main-nav.is-open,body.nav-open .main-nav{display:flex}
  .nav-desk{display:none !important}
  /* 明色ドロワー上で .main-nav a の --on-dark-soft / on-dark-faint を打ち消し（WCAG AA） */
  body.nav-open .main-nav,
  body.nav-open .main-nav a,
  body.nav-open .main-nav .nav-logout-btn{
    color:var(--ink);
  }
  body.nav-open .main-nav a:hover,
  body.nav-open .main-nav a:focus-visible,
  body.nav-open .main-nav .nav-logout-btn:hover,
  body.nav-open .main-nav .nav-logout-btn:focus-visible{
    color:var(--heading);
    background:var(--surface-2);
  }
  body.nav-open .main-nav a[aria-current="page"]{
    background:color-mix(in srgb, var(--gold) 14%, var(--surface));
    color:var(--heading);
    box-shadow:inset 0 -2px 0 var(--gold);
  }
  body.nav-open .main-nav .nav-quick-item{
    background:var(--surface-2);
    border:1px solid var(--line);
    color:var(--ink);
    box-shadow:none;
  }
  body.nav-open .main-nav .nav-quick-item[aria-current="page"]{
    background:color-mix(in srgb, var(--gold) 18%, var(--surface));
    border-color:color-mix(in srgb, var(--gold) 55%, var(--line));
    color:var(--heading);
    box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--gold) 35%, transparent);
  }
  body.nav-open .main-nav .nav-quick-item i{color:var(--navy)}
  body.nav-open .main-nav .nav-meta .nav-row i,
  body.nav-open .main-nav .nav-meta .nav-logout-btn i{color:var(--navy)}
  [data-theme="dark"] body.nav-open .main-nav .nav-quick-item i,
  [data-theme="dark"] body.nav-open .main-nav .nav-meta .nav-row i,
  [data-theme="dark"] body.nav-open .main-nav .nav-meta .nav-logout-btn i,
  :root:not([data-theme="light"]) body.nav-open .main-nav .nav-quick-item i,
  :root:not([data-theme="light"]) body.nav-open .main-nav .nav-meta .nav-row i,
  :root:not([data-theme="light"]) body.nav-open .main-nav .nav-meta .nav-logout-btn i{
    color:var(--gold);
  }
  body.nav-open .main-nav .nav-meta .nav-row,
  body.nav-open .main-nav .nav-meta .nav-logout-btn{
    background:transparent;
    color:var(--ink);
    box-shadow:none;
  }
  body.nav-open .main-nav .nav-meta .nav-row[aria-current="page"]{
    background:color-mix(in srgb, var(--gold) 12%, var(--surface));
    color:var(--heading);
    box-shadow:inset 4px 0 0 var(--gold);
  }
  .nav-quick{
    display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;
    margin:0 0 12px;padding:0 0 12px;border-bottom:1px solid var(--line);
    width:100%;min-width:0;
  }
  .nav-quick-item{
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
    min-width:0;min-height:64px;padding:8px 4px;border-radius:var(--radius-md);
    background:var(--surface-2);border:1px solid var(--line);
    color:var(--ink);font-size:.7rem;font-weight:800;text-align:center;line-height:1.2;
    box-shadow:none;overflow-wrap:anywhere;hyphens:auto;
  }
  .nav-quick-item span{min-width:0;max-width:100%;color:inherit}
  .nav-quick-item i{font-size:1.15rem;color:var(--navy);width:auto;flex-shrink:0}
  .nav-quick-item:hover,.nav-quick-item:focus-visible{
    background:color-mix(in srgb, var(--gold) 14%, var(--surface-2));
    border-color:color-mix(in srgb, var(--gold) 40%, var(--line));
    color:var(--heading);
  }
  .nav-quick-item[aria-current="page"]{
    background:color-mix(in srgb, var(--gold) 18%, var(--surface));
    border-color:color-mix(in srgb, var(--gold) 55%, var(--line));
    box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--gold) 35%, transparent);
    color:var(--heading);
  }
  .nav-meta{
    display:flex;flex-direction:column;align-items:stretch;gap:0;
    width:100%;min-width:0;margin-top:2px;
  }
  .nav-meta .nav-row,.nav-meta .nav-logout-btn.nav-row{
    padding:12px 4px;border-radius:0;width:100%;justify-content:flex-start;gap:14px;
    font-size:.95rem;font-weight:700;color:var(--ink);min-height:48px;
    background:transparent;border:0;border-bottom:1px solid var(--line);
    box-shadow:none;min-width:0;
  }
  .nav-meta .nav-row i,.nav-meta .nav-logout-btn.nav-row i{
    width:26px;flex-shrink:0;text-align:center;font-size:1.05rem;color:var(--navy);
  }
  .nav-meta .nav-label{color:inherit}
  .nav-meta .nav-chevron{display:inline-block;color:var(--muted)}
  .nav-meta .nav-row:hover,.nav-meta .nav-row:focus-visible,
  .nav-meta .nav-logout-btn.nav-row:hover,.nav-meta .nav-logout-btn.nav-row:focus-visible{
    background:var(--surface-2);color:var(--heading);
  }
  .nav-meta .nav-row[aria-current="page"]{
    background:color-mix(in srgb, var(--gold) 12%, var(--surface));
    box-shadow:inset 4px 0 0 var(--gold);color:var(--heading);
  }
  .nav-meta .nav-member{
    background:color-mix(in srgb, var(--navy) 6%, var(--surface));
    margin-top:4px;color:var(--ink);
  }
  .nav-meta .nav-logout-form{display:block;width:100%;margin:0}
  .nav-scrim{display:none;position:fixed;inset:0;background:var(--scrim);border:0;padding:0;z-index:45}
  body.nav-open .nav-scrim{display:block}
  .cta-fixed{display:inline-flex;align-items:center}
  /* スマホでも2列を維持（縦積み防止）。個別に4列化したい所は各テンプレートで .grid.cols-4.is-compact を使う */
  .grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  /* 体験会: 600px未満は1列（390pxでの過密を解消） */
  .page-trial-list .grid.cols-2{grid-template-columns:1fr}
  .grid.cols-4.is-compact{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
  .grid.cols-3.is-compact{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .social-links-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .quick-links{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0 14px}
  .quick-links-secondary{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:14px}
  .quick-links-secondary a{min-height:52px;font-size:.68rem;padding:8px 3px}
  .quick-links-secondary i{font-size:1rem}
  .quick-links:not(.quick-links--home) a{padding:10px 4px;gap:4px;align-items:center;text-align:center;border-radius:14px}
  .quick-links:not(.quick-links--home) .ql-icon{font-size:1.1rem}
  .quick-links:not(.quick-links--home) .ql-title{font-size:.72rem;line-height:1.2}
  .quick-links:not(.quick-links--home) .ql-text{display:none}
  .home-brandbar__inner{padding:8px var(--page-inline) 6px}
  .home-brandbar__tag{margin:2px 0 0;letter-spacing:.1em}
  .hero{padding:16px 14px}
  .hero-home{gap:6px}
  .hero h1,.hero .recruit-heading,.hero .members-heading{font-size:1.22rem;margin:0}
  .home-page-title{font-size:1.15rem;margin-bottom:10px}
  .home-page-title--bar{font-size:1rem}
  .hero-home .eyebrow{margin-bottom:2px;font-size:max(.8125rem,13px)}
  .hero-lead{font-size:.76rem;line-height:1.35;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;max-width:100%}
  .hero .hero-badges{margin-top:6px;gap:6px}
  .hero .badge{padding:4px 10px;font-size:.72rem}
  .hero-actions,.recruit-banner{flex-direction:column;align-items:stretch}
  .hero-home .hero-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:8px}
  .hero-home .hero-actions .btn{width:auto;padding:8px 8px;font-size:.72rem;line-height:1.25;min-height:var(--tap-min)}
  .btn{width:100%;justify-content:center}
  .player-header-inner{grid-template-columns:1fr}
  .player-photo{width:100%;max-width:220px;height:auto;aspect-ratio:1;margin:0 auto}
  .player-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .player-tab{width:100%}
  .footer-sns-links,.footer-nav,.footer-support{gap:6px}
  .footer-nav a,.footer-support a{flex:1 1 calc(50% - 6px);min-width:140px}
  .hero-slider{aspect-ratio:4/3;border-radius:14px}
  .hero-slider--bleed{aspect-ratio:var(--ratio-hero-mobile);max-height:min(42vh,360px);border-radius:0}
  .hero-home--bleed{min-height:0;padding:10px var(--page-inline) 12px;border-radius:0}
  .slider-copy h1,.slider-copy .slider-headline{font-size:1.15rem}
  .slider-overlay{padding:14px}
  .section--home-quick{margin:0 0 8px}
  .quick-links--home{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:0}
  .quick-links--home .ql-text{display:none}
  .quick-links--home .ql-card{padding:8px 4px;align-items:center;text-align:center;gap:3px;border-radius:14px;min-height:var(--tap-min)}
  .quick-links--home .ql-icon{font-size:1.1rem}
  .quick-links--home .ql-title{font-size:.68rem;line-height:1.2}
  .quick-links--home .ql-card--primary .ql-title{font-size:.7rem}
  .quick-links-secondary{margin:0 0 10px}
  .home-body{padding-top:var(--space-2)}
  .ticker-inner{animation-duration:20s}
  /* Scroll rows stay as flex on mobile */
  .scroll-row.player-row{gap:10px}
  .scroll-row.player-row>.card{width:min(27vw,108px)}
  .scroll-row.album-row>.card{width:min(54vw,210px)}
  .news-list-item{padding:12px 0}
  .news-list-title{font-size:.9rem}
  .home-stack-card{padding:0}
}

@media(min-width:481px){
  .player-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
  .gallery-album-grid,.gallery-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media(min-width:1100px){
  .gallery-album-grid,.gallery-photo-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
}

/* Bottom Navigation (mobile only) */
.bottom-nav{
  display:none;
  position:fixed;bottom:0;left:0;right:0;z-index:55;
  background:var(--navy-a97);backdrop-filter:blur(12px);
  border-top:1px solid rgba(255,255,255,.10);
  padding-bottom:env(safe-area-inset-bottom);
  box-shadow:0 -2px 12px var(--navy-a20);
  min-height:var(--bottom-nav-height);
}
.bottom-nav-item{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:4px;padding:8px 4px;flex:1;position:relative;
  color:rgba(255,255,255,.65);font-size:.68rem;font-weight:700;
  text-decoration:none;transition:color var(--motion) ease,background var(--motion) ease;
  min-height:var(--tap-min);background:transparent;border:0;cursor:pointer;font-family:inherit;
  -webkit-appearance:none;appearance:none
}
button.bottom-nav-item{color:rgba(255,255,255,.65)}
.bottom-nav-item i{font-size:1.15rem;line-height:1}
.bottom-nav-item:hover,.bottom-nav-item:focus-visible{color:var(--on-dark);background:var(--on-dark-faint)}
.bottom-nav-item.is-active{color:var(--gold)}
.bottom-nav-item.is-active i{color:var(--gold)}
.bottom-nav-item.is-active::before{
  content:"";position:absolute;top:0;left:20%;right:20%;height:2px;
  background:var(--gold);border-radius:0 0 2px 2px;
}

@media(max-width:767px){
  .bottom-nav{display:flex}
  /* Content padding to prevent overlap with bottom nav */
  .site-main{padding-bottom:calc(var(--bottom-nav-height) + 56px + env(safe-area-inset-bottom))}
  .site-footer{margin-bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom))}
  /* Fixed CTA: raise above bottom nav */
  .cta-fixed{bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom) + 10px)}
  /* Scroll margin: account for both sticky header and bottom nav */
  :target,:focus-visible{scroll-margin-top:calc(var(--header-height) + 4px);scroll-margin-bottom:calc(var(--bottom-nav-height) + 12px)}
}

/* ===== 試合速報（Live updates / #50） ===== */
.live-banner { display: flex; flex-direction: column; gap: 10px; }
.live-card {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px;
  padding: 12px 14px; border-radius: 12px; text-decoration: none;
  color: inherit; background: color-mix(in srgb, var(--red) 8%, transparent);
  border: 1px solid color-mix(in srgb, var(--red) 35%, transparent);
}
.live-card:hover { background: color-mix(in srgb, var(--red) 14%, transparent); }
.live-badge {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 2px 10px; border-radius: var(--radius-sm); font-weight: 700; font-size: 0.85rem;
  color: var(--on-dark); background: var(--red);
}
.live-dot {
  width: 8px; height: 8px; border-radius: 50%; background: var(--on-dark);
  animation: live-blink 1.2s ease-in-out infinite;
}
@keyframes live-blink { 0%,100% { opacity: 1; } 50% { opacity: 0.25; } }
@media (prefers-reduced-motion: reduce) { .live-dot { animation: none; } }
.live-title { font-weight: 700; }
.live-latest { color: var(--muted); }
.live-feed .live-list { list-style: none; margin: 8px 0 0; padding: 0; }
.live-item {
  display: flex; gap: 10px; padding: 8px 0;
  border-bottom: 1px solid var(--line);
}
.live-time { color: var(--muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
.live-form { display: flex; flex-direction: column; gap: 8px; max-width: 420px; }
.live-form-row { display: flex; gap: 8px; }
.live-input, .live-input-sm {
  padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; font: inherit;
}
.live-input { width: 100%; }
.live-input-sm { width: 80px; }
.live-notify { display: inline-flex; align-items: center; gap: 6px; font-size: 0.9rem; }

/* ===== サイト内検索（#51） ===== */
.search-form { display: flex; gap: 8px; margin: 12px 0 18px; align-items: stretch; }
.search-form input[type="search"] {
  flex: 1; min-width: 0; padding: 12px 16px; border: 1px solid var(--line);
  border-radius: var(--radius); font: inherit; min-height: var(--tap-min);
}
.search-form .btn { flex: 0 0 auto; }
/* スマホは縦積み（検索窓を大きく・ボタンは下に角丸フル幅） */
@media (max-width: 600px) {
  .search-form { flex-direction: column; }
  .search-form input[type="search"] { width: 100%; }
  .search-form .btn { width: 100%; }
}
.search-list { list-style: none; margin: 8px 0 0; padding: 0; }
.search-list li { padding: 8px 0; border-bottom: 1px solid var(--line); }



/* ===== ダークモード（OS追従＋手動トグル。変数は両トリガーに定義、部品上書きは共有） ===== */
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]){
  --ink:#e8edf4; --muted:#aab8c9; --line:#35465c;
  --bg:#0d1522; --surface:#161f2d; --surface-2:#1f2a3a;
  --heading:#cfe0f5;
  --gold:#f5c34a; --gold-light:#ffe08a; --gold-deep:#d4a017;
  --shadow:0 2px 10px rgba(0,0,0,.55); --shadow-strong:0 10px 28px rgba(0,0,0,.72);
}
}
[data-theme="dark"]{
  --ink:#e8edf4; --muted:#aab8c9; --line:#35465c;
  --bg:#0d1522; --surface:#161f2d; --surface-2:#1f2a3a;
  --heading:#cfe0f5;
  --gold:#f5c34a; --gold-light:#ffe08a; --gold-deep:#d4a017;
  --shadow:0 2px 10px rgba(0,0,0,.55); --shadow-strong:0 10px 28px rgba(0,0,0,.72);
}
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) .badge,
:root:not([data-theme="light"]) .btn.gold,
:root:not([data-theme="light"]) .pill--download,
:root:not([data-theme="light"]) .badge--undecided { color: var(--navy); }
:root:not([data-theme="light"]) .message { background: var(--surface-2); color: var(--ink); }
:root:not([data-theme="light"]) .message.success { background: color-mix(in srgb, var(--green) 16%, transparent); }
:root:not([data-theme="light"]) .message.error { background: color-mix(in srgb, var(--red) 18%, transparent); }
:root:not([data-theme="light"]) .message.warning { background: color-mix(in srgb, var(--gold) 16%, transparent); }
:root:not([data-theme="light"]) .input,
:root:not([data-theme="light"]) .form-box input,
:root:not([data-theme="light"]) .form-box select,
:root:not([data-theme="light"]) .form-box textarea,
:root:not([data-theme="light"]) .filter-bar select,
:root:not([data-theme="light"]) .filter-bar input,
:root:not([data-theme="light"]) .search-form input[type="search"],
:root:not([data-theme="light"]) .live-input,
:root:not([data-theme="light"]) .live-input-sm { background: var(--surface); color: var(--ink); border-color: var(--line); }
:root:not([data-theme="light"]) .btn { border-color: var(--heading); }
:root:not([data-theme="light"]) .live-item,
:root:not([data-theme="light"]) .search-list li { border-bottom-color: var(--line); }
}
[data-theme="dark"] .badge,
[data-theme="dark"] .btn.gold,
[data-theme="dark"] .pill--download,
[data-theme="dark"] .badge--undecided { color: var(--navy); }
[data-theme="dark"] .message { background: var(--surface-2); color: var(--ink); }
[data-theme="dark"] .message.success { background: color-mix(in srgb, var(--green) 16%, transparent); }
[data-theme="dark"] .message.error { background: color-mix(in srgb, var(--red) 18%, transparent); }
[data-theme="dark"] .message.warning { background: color-mix(in srgb, var(--gold) 16%, transparent); }
[data-theme="dark"] .input,
[data-theme="dark"] .form-box input,
[data-theme="dark"] .form-box select,
[data-theme="dark"] .form-box textarea,
[data-theme="dark"] .filter-bar select,
[data-theme="dark"] .filter-bar input,
[data-theme="dark"] .search-form input[type="search"],
[data-theme="dark"] .live-input,
[data-theme="dark"] .live-input-sm { background: var(--surface); color: var(--ink); border-color: var(--line); }
[data-theme="dark"] .btn { border-color: var(--heading); }
[data-theme="dark"] .live-item,
[data-theme="dark"] .search-list li { border-bottom-color: var(--line); }

.theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);margin:6px auto 0;padding:10px 16px;
  min-height:var(--tap-min);min-width:var(--tap-min);
  background:rgba(255,255,255,.10);color:var(--on-dark);border:1px solid rgba(255,255,255,.28);
  border-radius:var(--radius-pill);font-weight:700;font-size:.85rem;cursor:pointer;font-family:inherit}
.theme-toggle:hover,.theme-toggle:focus-visible{background:rgba(255,255,255,.22);}

/* ===== 戻るボタン（詳細ページのモバイル導線） ===== */
.back-bar{margin:0 0 14px}
.back-btn{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 18px;
  border-radius:var(--radius);border:2px solid var(--navy);background:var(--surface);color:var(--heading);
  font-weight:800;font-size:.9rem;cursor:pointer;font-family:inherit;line-height:1;
  box-shadow:var(--shadow);text-decoration:none}
.back-btn:hover,.back-btn:focus-visible{background:var(--navy);color:#fff;}
.back-btn:active{transform:translateY(1px)}
[data-theme="dark"] .back-btn{border-color:var(--heading)}

/* ===== 空状態（準備中プレースホルダの統一表示） ===== */
.empty-state{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;
  padding:32px 22px;border:1px dashed var(--line);border-radius:var(--radius);background:var(--face-tinted);
  color:var(--muted);box-shadow:var(--elev-1);margin:var(--block-gap) 0}
.empty-state i{font-size:2rem;color:var(--gold)}
.empty-state p{margin:0;line-height:1.6;max-width:28em}
.empty-state .empty-title{font-weight:700;color:var(--heading);font-size:1.05rem;letter-spacing:.015em}
.empty-state__cta{margin-top:8px}
.empty-state__cta .btn{width:auto}
.album-grid > .empty-state,
.photo-grid > .empty-state,
.grid > .empty-state,
.sched-view > .empty-state{grid-column:1 / -1;width:100%}

/* ===== 月別カレンダー ===== */
.sched-view{display:none}
.sched-view.is-active{display:block}

.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;background:var(--line);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.cal-head{background:var(--navy);color:#fff;text-align:center;font-weight:700;font-size:.8rem;padding:8px 0}
.cal-head.cal-col-0{color:color-mix(in srgb, var(--red) 55%, #fff)}
.cal-head.cal-col-6{color:color-mix(in srgb, var(--cyan) 55%, #fff)}
.cal-cell{position:relative;min-height:84px;background:var(--surface);color:var(--ink);padding:4px 4px 6px;display:flex;flex-direction:column;gap:3px;text-decoration:none;overflow:hidden}
.cal-cell.cal-col-0{background:var(--weekend-sun)}
.cal-cell.cal-col-6{background:var(--weekend-sat)}
.cal-cell--out{background:var(--surface-2)}
.cal-cell--out .cal-num{color:var(--muted);font-weight:600}
.cal-cell--out.cal-col-0 .cal-num,.cal-cell--out.cal-col-6 .cal-num{color:var(--muted)}
.cal-cell--out .cal-chip,.cal-cell--out .cal-more{opacity:.72}
.cal-cell--today{
  outline:2px solid var(--gold);outline-offset:-2px;
  box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--gold) 45%, transparent);
  background:color-mix(in srgb, var(--gold) 12%, var(--surface));
}
.cal-cell--today .cal-num{background:var(--gold);color:var(--navy);font-weight:800}
.cal-num{font-size:.82rem;font-weight:700;min-width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px}
.cal-weather{position:absolute;top:3px;right:3px;display:inline-flex;align-items:center;gap:1px;font-size:.72rem;line-height:1;pointer-events:none;z-index:1;text-shadow:0 0 2px var(--surface)}
.cal-weather-temp{font-size:.58rem;font-weight:800;color:var(--heading);font-variant-numeric:tabular-nums}
.cal-cell--out .cal-weather{opacity:.55}
.cal-col-0 .cal-num{color:var(--cal-sun)}
.cal-col-6 .cal-num{color:var(--cal-sat)}
.cal-cell--today.cal-col-0 .cal-num,.cal-cell--today.cal-col-6 .cal-num{color:var(--navy)}
.cal-events{display:flex;flex-direction:column;gap:2px;min-width:0}
.cal-chip{
  font-size:.62rem;line-height:1.25;background:var(--navy);color:#fff;border-radius:4px;
  padding:1px 4px;display:flex;flex-direction:column;align-items:flex-start;gap:0;
  min-width:0;max-width:100%;overflow:hidden;text-decoration:none;
}
.cal-chip .cal-chip-time{flex:0 0 auto;font-weight:700}
.cal-chip .cal-chip-place{
  flex:0 0 auto;min-width:0;max-width:100%;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  font-weight:600;opacity:.95;
}
.cal-more{font-size:.62rem;color:var(--muted);font-weight:700}
.sched-item--link{text-decoration:none;color:inherit}
.sched-item--link:hover,.sched-item--link:focus-visible{box-shadow:var(--shadow-strong);}
.sched-item-chevron{font-size:.7rem;color:var(--muted)}
@media(max-width:520px){
  .cal-grid{gap:2px}
  .cal-cell{min-height:66px;padding:3px 2px 4px}
  .cal-chip{font-size:.54rem;padding:1px 3px}
  .cal-num{font-size:.76rem;min-width:20px;height:20px}
  .cal-weather{top:2px;right:2px;font-size:.62rem}
  .cal-weather-temp{display:none}
}

/* ===== PWA（ホーム画面起動）の戻る/進むバー ===== */
.pwa-nav{display:none}
@media (max-width:767px){
  .pwa-nav{
    display:flex;align-items:stretch;
    position:fixed;left:0;right:0;z-index:54;
    bottom:calc(56px + env(safe-area-inset-bottom));
    background:rgba(10,31,61,.97);backdrop-filter:blur(12px);
    border-top:1px solid rgba(255,255,255,.10);
    box-shadow:0 -2px 10px rgba(10,31,61,.18);
  }
  .pwa-nav-btn{
    flex:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;
    min-height:44px;background:transparent;color:#fff;border:none;
    font-weight:700;font-size:.86rem;cursor:pointer;font-family:inherit;
  }
  .pwa-nav-btn:active{background:rgba(255,255,255,.08)}
  .pwa-nav-btn+.pwa-nav-btn{border-left:1px solid rgba(255,255,255,.12)}
  /* 追加バー分だけ本文とCTAを持ち上げる */
  .site-main{padding-bottom:calc(var(--bottom-nav-height) + 46px + 12px + env(safe-area-inset-bottom))}
  .cta-fixed{bottom:calc(var(--bottom-nav-height) + 46px + env(safe-area-inset-bottom) + 8px)}
}

/* ===== 週間天気カード（気象庁JSON） ===== */
.weather-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;
  box-shadow:var(--shadow);padding:14px 12px;margin:0 0 18px}
.weather-title{font-size:1rem;font-weight:800;color:var(--heading);margin:0 0 10px}
.weather-days{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(56px,1fr);gap:6px;
  overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}
.weather-day{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;
  padding:8px 4px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}
.weather-date{font-size:.72rem;font-weight:700;color:var(--ink);white-space:nowrap}
.weather-wday{color:var(--muted);margin-left:2px}
.weather-icon{font-size:1.4rem;line-height:1}
.weather-temp{font-size:.74rem;white-space:nowrap}
.weather-temp .tmax{color:var(--temp-max)}
.weather-temp .tmin{color:var(--temp-min);margin-left:3px}
.weather-src{margin:8px 0 0;font-size:.78rem}
.weather-src a{color:var(--heading);font-weight:700}
.weather-card--fallback{color:var(--muted);font-size:.88rem}
.weather-card--fallback a{color:var(--heading);font-weight:700}

/* ===== カレンダー 月切替ヘッダー ===== */
.cal-monthnav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 10px}
.cal-monthnav .cal-nav-btn{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--heading);font-weight:800;text-decoration:none;font-size:1rem}
.cal-monthnav .cal-nav-btn:hover,.cal-monthnav .cal-nav-btn:focus-visible{background:var(--navy);color:#fff;}
.cal-monthnav .cal-nav-label{font-weight:800;color:var(--heading);font-size:1.05rem}

/* ===== 地図の埋め込み（iframe） ===== */
.map-embed{position:relative;width:100%;padding-top:56.25%;border-radius:14px;overflow:hidden;margin:6px 0;border:1px solid var(--line)}
.map-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
/* ===== 外部アルバム誘導ボックス ===== */
.ext-album-box{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:14px;padding:14px;margin:12px 0;box-shadow:var(--shadow)}
.ext-album-box p{margin:.2rem 0}

/* ===== 日程の年度/月ピッカー（コンパクト表示） ===== */
.sched-nav{margin:0 0 14px}
.sched-years{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px}
.sched-years__label{font-size:.85rem;font-weight:700;color:var(--heading)}
.sched-years__select{
  min-height:var(--tap-min);min-width:9.5rem;max-width:100%;
  padding:8px 12px;font-weight:700;border:1px solid var(--line);border-radius:var(--radius-sm);
  background:var(--surface);color:var(--heading);
}
.sched-years__chips{display:flex;flex-wrap:wrap;gap:8px}
.sched-years__chips .btn,.sched-year-chip{width:auto;padding:8px 16px;min-height:var(--tap-min)}
.sched-months{
  display:flex;flex-wrap:nowrap;align-items:stretch;gap:0;
  margin:0 0 14px;padding:0 2px 4px;
  overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;
  scroll-snap-type:x proximity;border-bottom:1px solid var(--line);
}
.sched-month-tab{
  flex:0 0 auto;scroll-snap-align:start;
  display:inline-flex;align-items:center;justify-content:center;
  min-height:44px;min-width:44px;padding:8px 14px;
  font-size:.88rem;font-weight:700;color:var(--muted);text-decoration:none;
  border:0;border-bottom:2px solid transparent;background:transparent;
  white-space:nowrap;
}
.sched-month-tab:hover,.sched-month-tab:focus-visible{
  color:var(--heading);background:color-mix(in srgb, var(--gold) 10%, transparent);
}
.sched-month-tab.is-active,.sched-month-tab[aria-current="page"]{
  color:var(--heading);
  border-bottom-color:var(--gold);
  background:color-mix(in srgb, var(--gold) 14%, transparent);
}

/* ===== カレンダーから予定追加（管理者のみ） ===== */
.cal-add{position:absolute;top:2px;right:2px;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;background:rgba(10,31,61,.10);color:var(--heading);font-weight:800;font-size:.82rem;line-height:1;text-decoration:none;z-index:2}
.cal-add:hover,.cal-add:focus-visible{background:var(--navy);color:#fff;}
[data-theme="dark"] .cal-add{background:rgba(255,255,255,.12)}
.cal-addbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px;padding:8px 10px;border:1px dashed var(--line);border-radius:12px;background:var(--surface)}
.cal-addbar-label{font-weight:800;color:var(--heading);font-size:.85rem}
.cal-addbar .btn{width:auto;padding:6px 12px;min-height:38px}
.cal-addbar-hint{font-size:.72rem;flex-basis:100%}

/* ===== 写真メンテナンス ===== */
.maint-form{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:8px}
.maint-form .btn{width:auto}
.maint-check{display:inline-flex;align-items:center;gap:6px;font-size:.9rem}
.maint-result{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:12px;white-space:pre-wrap;overflow-x:auto;font-size:.85rem;color:var(--ink)}

/* カレンダーの日ハイライト（天気カードから飛んだとき） */
@keyframes cal-flash{0%,100%{box-shadow:none}15%,55%{box-shadow:inset 0 0 0 3px var(--gold)}}
.cal-cell{scroll-margin-top:70px}
.cal-cell--flash{animation:cal-flash 1.8s ease-out}
@media (prefers-reduced-motion: reduce){.cal-cell--flash{animation:none;box-shadow:inset 0 0 0 3px var(--gold)}}

/* 選手カードの背番号バッジ（円形＋金縁） */
.player-card .num{white-space:nowrap}
.player-card .num-pre{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

/* 週間天気カードを丸ごと気象庁リンクに */
.weather-card--link{display:block;text-decoration:none;color:inherit;cursor:pointer;transition:box-shadow var(--motion) ease,transform var(--motion) ease}
.weather-card--link:hover,.weather-card--link:focus-visible{box-shadow:var(--shadow-strong);}
.weather-src-link{color:var(--heading);font-weight:700}

/* ===== 写真ボックス（一時保管） ===== */
.dropbox-newform{display:flex;gap:8px;flex-wrap:wrap}
.dropbox-newform .input{flex:1;min-width:200px}
.dropbox-newform .btn{width:auto}
.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  text-align:center;padding:28px 16px;border:2px dashed var(--line);border-radius:14px;
  background:var(--bg);color:var(--muted);cursor:pointer}
.dropzone i{font-size:2rem;color:var(--gold)}
.dropzone.is-drag{border-color:var(--navy);background:rgba(10,31,61,.06)}
.box-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:8px}
.box-actions .btn{width:auto}

/* ===== Phase 2 UI 調整（2026-07） ===== */
/* 汎用: ボタン横並び（2つでも均等・必要なら折返し）。iCalや検索/解除など */
.btn-row{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.btn-row>.btn,.btn-row>a.btn,.btn-row>button{flex:1 1 140px;width:auto}
.ical-subscribe{margin:0 0 1.2em;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}
.ical-subscribe-lead{margin:0 0 4px;font-weight:800;color:var(--heading);font-size:.95rem}
.ical-subscribe-help{margin:0 0 10px;font-size:.82rem;line-height:1.45}
/* 写真館メニュー: スマホは2列クイックアクション */
.photo-menu-grid{gap:10px}
.photo-menu-grid .btn{
  width:100%;font-size:.86rem;padding:12px 10px;min-height:var(--tap-min);
  display:inline-flex;align-items:center;justify-content:center;gap:8px;text-align:center;
}
.stack-form{display:flex;flex-direction:column;gap:12px}
.stack-form .form-field{display:flex;flex-direction:column;gap:6px}
.stack-form .form-field label{font-weight:700;color:var(--heading)}
@media (min-width:768px){
  .photo-menu-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
}
/* 保護者・年度ページの機能ボタン（ql-card・文字変形なし） */
.year-actions.quick-links{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;margin:0 0 12px;align-items:stretch;
}
.year-actions.quick-links .ql-card,
.year-actions.quick-links a.ql-card{
  align-items:center;text-align:center;min-height:var(--tap-min,44px);
  padding:12px 8px;gap:6px;
}
.year-actions.quick-links .ql-icon{font-size:1.35rem}
.year-actions.quick-links .ql-title{
  min-width:0;width:100%;text-align:center;line-height:1.25;
  font-size:.82rem;font-weight:700;color:var(--heading);
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;
  overflow:hidden;word-break:normal;overflow-wrap:normal;
}
@media (min-width:768px){
  .year-actions.quick-links{grid-template-columns:repeat(4,minmax(0,1fr))}
  .year-actions.quick-links .ql-title{font-size:.86rem}
}
/* 保護者・年度ページの機能ボタン（グリッド内で均等・折返しなし） — 旧 .btn 用フォールバック */
.year-actions .btn{width:auto;font-size:.86rem;padding:12px 8px;min-height:48px}
/* アクセス・会場: スマホでは埋め込み地図を隠し「地図を開く」ボタンで誘導（大きくなりすぎ防止） */
@media(max-width:767px){.map-embed{display:none}}
.venue-grid{display:grid;gap:14px}
@media(min-width:768px){.venue-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

@media(max-width:767px){
  /* ハンバーガー: 副次リスト行のみ横並び（タイルは .nav-quick-item のまま） */
  .nav-meta .nav-row,.nav-meta .nav-logout-btn{display:flex;align-items:center;gap:14px;min-height:48px;line-height:1.2}
  /* 戻る/進むバーはブラウザ閲覧時は非表示（下部ナビ分だけ余白を確保） */
  .pwa-nav{display:none !important}
  .site-main{padding-bottom:calc(var(--bottom-nav-height) + 56px + env(safe-area-inset-bottom))}
}
/* PWA（ホーム画面起動）時のみ戻る/進むを表示し、その分の余白を追加 */
@media (display-mode: standalone) and (max-width:767px){
  .pwa-nav{display:flex !important}
  .back-bar{display:none !important}
  .site-main{padding-bottom:calc(var(--bottom-nav-height) + 46px + 12px + env(safe-area-inset-bottom))}
  .cta-fixed{bottom:calc(var(--bottom-nav-height) + 46px + env(safe-area-inset-bottom) + 8px)}
}
.box-adopt-title{width:auto;min-width:180px}
.box-hint{flex-basis:100%;font-size:.78rem}


/* ===== 掲示板（Poster board） ===== */
.poster-board {
  margin: var(--section-gap) 0;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.poster-board__kicker { margin: 0 0 4px; }
.poster-board__title {
  font-size: var(--text-lg); font-weight: 700; margin: 0 0 var(--block-gap);
  display: flex; align-items: center; gap: .4rem; color: var(--heading);
  padding-bottom: 8px; border-bottom: 1px solid var(--line);
}
.poster-board__grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(220px,1fr)); gap: 14px; }
.poster-item {
  display: grid; grid-template-columns: 96px 1fr; gap: 12px; align-items: center;
  padding: 12px; border: 1px solid var(--line); border-radius: var(--radius-md);
  background: var(--surface); text-decoration: none; color: inherit;
  min-height: var(--tap-min); box-shadow: var(--elev-1);
  transition: transform var(--motion-fast) var(--ease-out), box-shadow var(--motion) ease;
}
.poster-item:hover,.poster-item:focus-visible { transform: translateY(-2px); box-shadow: var(--shadow-strong); }
.poster-thumb {
  width: 96px; height: 128px; object-fit: cover;
  border: 1px solid var(--line); border-radius: var(--radius-md);
  background: var(--surface);
  transition: transform var(--motion) ease, box-shadow var(--motion) ease;
}
.poster-item:hover .poster-thumb { transform: translateY(-1px); }
.poster-thumb--file { display: flex; align-items: center; justify-content: center; font-size: 2.2rem; color: var(--red); }
.poster-item__body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.poster-item__caption { font-size: max(.9rem,14px); line-height: 1.35; color: var(--heading); font-weight: 800; }
.poster-item__meta { margin: 0; font-size: max(.8125rem,13px); color: var(--muted); line-height: 1.4; }
.poster-item__thumbwrap { position: relative; display: block; width: 96px; height: 128px; flex-shrink: 0; }
@media (max-width: 430px) {
  .poster-board__grid { grid-template-columns: 1fr; }
  .poster-item { grid-template-columns: 112px 1fr; }
  .poster-item__thumbwrap,.poster-thumb { width: 112px; height: 150px; }
}
.poster-lock {
  position: absolute; top: 6px; right: 6px; width: 24px; height: 24px; border-radius: 50%;
  background: color-mix(in srgb, var(--navy) 88%, transparent); color: #fff;
  display: flex; align-items: center; justify-content: center; font-size: .72rem;
}

/* Narrow phones */
@media(max-width:390px){
  :root{--page-inline:12px}
  .home-page-title{font-size:1.05rem}
  .quick-links .ql-title{font-size:.68rem}
  .brand-text{font-size:.82rem}
}
@media(min-width:1024px){
  :root{--header-height:72px}
  .home-page-title{font-size:1.5rem}
  .home-page-title--bar{font-size:1.55rem}
  .section-title{font-size:1.45rem}
  .nav-desk{gap:4px 6px}
  .nav-link,.nav-dd__btn{font-size:.9rem;padding:10px 14px}
  .hero-home--bleed{padding:48px max(var(--page-inline),6vw)}
  .page-home .home-body{padding-top:var(--space-4)}
}
@media(min-width:1280px){
  :root{--container-max:1240px}
}

/* カレンダーのチップに開始時刻を常時表示 */
.cal-chip-time { font-weight: 700; margin-right: 0; font-variant-numeric: tabular-nums; opacity: .92; flex: 0 0 auto; }
.cal-chip-place { font-weight: 600; }

/* カレンダー種別の色分け（トークン: --game/--practice/--event/--trial） */
.cal-chip--game { background: var(--game); }
.cal-chip--practice { background: var(--practice); }
.cal-chip--event { background: var(--event); }
.cal-chip--trial { background: var(--trial); }
/* 種別の凡例 */
.cal-legend { display: flex; flex-wrap: wrap; gap: 10px; margin: 4px 0 10px; font-size: .78rem; color: var(--muted); }
.cal-legend span { display: inline-flex; align-items: center; gap: 5px; }
.cal-legend i { width: 12px; height: 12px; border-radius: 3px; display: inline-block; }
.cal-legend .lg-game { background: var(--game); }
.cal-legend .lg-practice { background: var(--practice); }
.cal-legend .lg-event { background: var(--event); }
.cal-legend .lg-trial { background: var(--trial); }

/* ===== マイクロモーション（リンク/カード/ボタン 120–160ms） ===== */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .ticker-inner{animation:none !important}
  .slider-slide{transition:none !important}
  .nav-toggle span{transition:none !important}
  .poster-item,.card,.quick-links .ql-card,.btn{transition:none !important}
}

/* ===== B5/B6: 下層・会員・デスクトップ安全装飾・状態UI ===== */
.measure-block{max-width:42rem}
.info-image{display:block;width:100%;max-width:100%;height:auto;border-radius:var(--radius-md);margin:0 0 .75rem;aspect-ratio:var(--ratio-card);object-fit:cover;background:var(--face-subtle)}
.page-offline .offline-actions,.page-404 .error-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:var(--block-gap)}
.page-offline .offline-actions .btn{min-height:var(--tap-min,44px);display:inline-flex;align-items:center;gap:8px}

/* ===== 会員ポータル質感（N4・軽微） ===== */
.site--member .card{border-radius:var(--radius-md);box-shadow:var(--shadow)}
.site--member .card-body strong{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}
.site--member .year-list .year-chip{border-radius:var(--radius-md)}
.site--member .quick-links a,.site--member .quick-links .ql-card{min-height:var(--tap-min,44px)}
@media(max-width:767px){
  .member-home-primary{display:contents}
}

/* ===== 会員メニューカード（.menu-card） ===== */
.menu-card{border-radius:var(--menu-card-radius);box-shadow:var(--elev-1)}
.menu-card:hover,.menu-card:focus-within{box-shadow:var(--elev-hover)}
.site--member .menu-card{border-radius:var(--menu-card-radius);box-shadow:var(--elev-1)}

/* ヘッダ：アイコンチップ＋見出し＋下線 */
.menu-card > .card-body > strong:first-of-type{
  display:flex;align-items:center;gap:10px;flex-wrap:nowrap;
  font-size:var(--text-lg);font-weight:800;color:var(--heading);
  padding-bottom:10px;margin-bottom:12px;
  border-bottom:1px solid var(--menu-divider);
}
.menu-card > .card-body > strong:first-of-type > i{
  display:inline-grid;place-items:center;flex-shrink:0;
  width:var(--menu-chip-size);height:var(--menu-chip-size);
  border-radius:50%;background:var(--menu-chip-bg);color:var(--menu-chip-fg);
  font-size:1rem;
}

/* 説明文 */
.menu-card .form-help{color:var(--muted);font-size:var(--text-sm);line-height:1.65;margin:0 0 14px}

/* 操作エリア */
.menu-card .btn-row{display:flex;flex-wrap:wrap;gap:10px;margin:0}
.menu-card .btn-row .btn{flex:1 1 auto;min-width:0;justify-content:center;text-align:center}
.menu-card .btn{min-height:var(--tap-min)}
.menu-card .sched-item{margin-bottom:8px}
.menu-card .sched-item .btn--sm{margin-left:auto;width:auto;flex:0 0 auto}
@media(max-width:767px){
  /* アプリ風: 会員メニューの単独ボタンは全幅バーにせず、コンパクトに（縦の圧迫を防ぐ） */
  .menu-card .card-body > .btn,
  .menu-card form .btn{width:auto;min-width:min(62%,220px);justify-content:center}
}
@media(max-width:360px){
  .menu-card .btn-row{flex-direction:column}
  .menu-card .btn-row .btn{width:100%}
}
@media (prefers-reduced-motion: reduce){
  .menu-card:hover,.menu-card:focus-within{transform:none}
}

/* 会員エリア一貫性：小ユーティリティ（新別名のみ） */
.input-qty{width:70px;max-width:100%;min-height:var(--tap-min)}
.mt-1{margin-top:6px}
.text-sub{font-size:var(--text-sm);font-weight:600}
.pre-wrap{white-space:pre-wrap;margin:.3em 0 0}
.ml-auto{margin-left:auto}
.sched-item--top{align-items:flex-start}
.video-wrap--sm{max-width:320px}
.menu-card .card-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px;padding-top:4px}
.menu-card .card-meta,.menu-card .card-note{color:var(--muted);font-size:var(--text-sm);line-height:1.55;margin:0 0 8px}
.menu-card .card-actions .btn{min-height:var(--tap-min)}

/* 会員: 可読性優先（公開の華やか面を持ち込まない） */
.site--member .page-hero{box-shadow:var(--elev-1);border-bottom-width:2px}
.site--member .section-kicker{color:var(--muted);letter-spacing:.1em}
.site--member .home-stack-card{
  border-left:none;
}
.site--member .home-stack-card > .section-kicker{
  padding-left:2px;
}
.site--member .member-ops{margin-top:var(--block-gap)}
.site--member .cal-chip-time{font-weight:800}
.site--member .quick-links .ql-card--primary::after{display:none}
.site--member .empty-state{box-shadow:none;background:var(--surface-2)}

/* 公開下層: 面リズム（写真なしでも成立） */
.site--public .page-shell{display:grid;gap:var(--section-gap)}
.site--public .lower-panel{
  background:transparent;border:0;border-radius:0;
  padding:0;box-shadow:none;
}
.site--public .lower-panel--tint{background:transparent}
.site--public .staff-card__photo--empty{
  background:
    radial-gradient(circle at 30% 25%, color-mix(in srgb, var(--gold) 16%, transparent), transparent 50%),
    var(--surface-2);
}

@media (min-width:768px){
  /* デスクトップ空白の安全装飾（画像なし・コントラスト維持） */
  .site--public .empty-state{
    min-height:12rem;
    background:
      radial-gradient(circle at 12% 18%, color-mix(in srgb, var(--gold) 14%, transparent), transparent 42%),
      radial-gradient(circle at 88% 82%, color-mix(in srgb, var(--navy) 8%, transparent), transparent 46%),
      var(--face-tinted);
  }
  .site--public .page-hero:not(.page-hero--hot)::before{
    content:"";position:absolute;inset:auto -10% -45% auto;width:min(28vw,240px);height:min(28vw,240px);
    border-radius:50%;background:color-mix(in srgb, var(--gold) 14%, transparent);pointer-events:none;
  }
  .site--public .page-hero--muted::before{background:color-mix(in srgb, var(--on-dark) 10%, transparent)}
  .site--public .home-body::before{
    content:"";display:block;height:3px;margin:0 0 var(--block-gap);
    background:var(--accent-line);border-radius:2px;opacity:.85;
  }
  .site--public .venue-card{
    background-image:linear-gradient(180deg, color-mix(in srgb, var(--gold) 6%, transparent), transparent 48px);
  }
}

@media (max-width:767px){
  /* ホーム第一画面のヒーローCTAと浮遊CTAの重なりを解消 */
  .page-home .cta-fixed{display:none!important}
}

