@charset "UTF-8";
/* ==========================================================================
   fs-childcare / theme.css
   (c) 株式会社frankSQUARE — 無断再配布・他サイトへの流用を禁じます
   ---------------------------------------------------------------------------
   放課後等デイサービス／児童発達支援 事業者向け専用テーマ
   色・角丸・書体は :root の変数だけで案件ごとに切り替える
   ========================================================================== */

/* --------------------------------------------------------------- tokens */
:root{
  /* brand ------------------------------------------------ */
  --c-main:        #EE8B3C;   /* 放課後等デイサービス */
  --c-main-deep:   #D06E23;
  --c-main-tint:   #FDF0E2;
  --c-sub:         #5C9B7E;   /* 児童発達支援 */
  --c-sub-deep:    #3F7A61;
  --c-sub-tint:    #E9F2ED;
  --c-accent:      #6FA3C4;   /* 補助（イベント・リンク） */
  --c-accent-tint: #E8F1F6;

  /* neutrals（わずかに暖色へ寄せる） -------------------- */
  --c-ink:    #33302C;
  --c-ink-2:  #6B655E;
  --c-ink-3:  #9A938A;
  --c-line:   #EDE4D8;
  --c-line-2: #F5EEE5;
  --c-paper:  #FFFFFF;
  --c-cream:  #FFF9F1;

  /* status ---------------------------------------------- */
  --c-alert:  #C0492F;
  --c-alert-tint:#FBEDEA;

  /* type ------------------------------------------------- */
  --f-round: "Zen Maru Gothic","Hiragino Maru Gothic ProN","ヒラギノ丸ゴ ProN W4",sans-serif;
  --f-body:  "Zen Kaku Gothic New","Hiragino Sans","Yu Gothic UI","Noto Sans JP",sans-serif;
  --f-en:    "Outfit","Zen Kaku Gothic New",sans-serif;

  --fs-hero:   clamp(28px, 5.2vw, 46px);
  --fs-h2:     clamp(23px, 3.2vw, 32px);
  --fs-h3:     clamp(18px, 2.2vw, 21px);
  --fs-body:   16px;
  --fs-small:  14px;
  --fs-tiny:   12.5px;

  /* layout ----------------------------------------------- */
  --w-page:  1120px;
  /* ヘッダーは本文より広い枠を使う。ロゴ＋ナビ7項目＋電話＋ボタンで実測1320px必要で、
     1120pxに押し込むと申し込みボタンが画面右端からはみ出す（実測で確認） */
  --w-header:1320px;
  --w-text:  760px;
  --r-lg:    28px;
  --r-md:    18px;
  --r-sm:    10px;
  --shadow:  0 2px 10px rgba(90,70,50,.06), 0 12px 32px rgba(90,70,50,.05);
  --shadow-h:0 4px 14px rgba(90,70,50,.10), 0 18px 40px rgba(90,70,50,.08);
  --header-h: 76px;
}

/* --------------------------------------------------------------- reset */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 16px); }
body{
  margin:0; background:var(--c-cream); color:var(--c-ink);
  font-family:var(--f-body); font-size:var(--fs-body); line-height:1.9;
  font-feature-settings:"palt"; -webkit-font-smoothing:antialiased;
}
img,svg,video{ max-width:100%; height:auto; vertical-align:middle; }
a{ color:inherit; text-underline-offset:.22em; }
h1,h2,h3,h4{ font-family:var(--f-round); font-weight:700; line-height:1.5; margin:0; text-wrap:balance; }
p{ margin:0; }
ul,ol{ margin:0; padding:0; }
button{ font:inherit; color:inherit; }
:focus-visible{ outline:3px solid var(--c-accent); outline-offset:3px; border-radius:4px; }
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.01ms !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}

/* --------------------------------------------------------------- layout */
.l-wrap{ width:min(100% - 40px, var(--w-page)); margin-inline:auto; }
.l-narrow{ width:min(100% - 40px, var(--w-text)); margin-inline:auto; }
.l-section{ padding-block:clamp(56px, 8vw, 92px); }
.l-section--tint{ background:var(--c-paper); }
.l-stack{ display:flex; flex-direction:column; }
.l-stack--sm{ gap:12px; } .l-stack--md{ gap:24px; } .l-stack--lg{ gap:40px; }
.u-center{ text-align:center; }
.u-sr{ position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.skip-link{ position:absolute; left:-9999px; }
.skip-link:focus{ left:12px; top:12px; z-index:999; background:var(--c-paper); padding:10px 16px; border-radius:var(--r-sm); }

/* --------------------------------------------------------------- heading */
.c-head{ display:flex; flex-direction:column; align-items:center; gap:6px; margin-bottom:36px; text-align:center; }
.c-head__en{
  font-family:var(--f-en); font-size:var(--fs-tiny); font-weight:600;
  letter-spacing:.2em; text-transform:uppercase; color:var(--c-main);
}
.c-head__ja{ font-size:var(--fs-h2); }
.c-head__lead{ color:var(--c-ink-2); font-size:var(--fs-small); max-width:60ch; }
.c-head__lead--long{ text-align:left; }
.c-head--sub .c-head__en{ color:var(--c-sub); }
.c-head--start{ align-items:flex-start; text-align:left; }

/* --------------------------------------------------------------- button */
.c-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:14px 30px; border-radius:999px; border:2px solid transparent;
  background:var(--c-main); color:#fff; font-family:var(--f-round); font-weight:700;
  font-size:var(--fs-small); text-decoration:none; cursor:pointer; line-height:1.4;
  box-shadow:0 4px 0 var(--c-main-deep); transition:transform .16s ease, box-shadow .16s ease, background .16s ease;
}
.c-btn:hover{ transform:translateY(2px); box-shadow:0 2px 0 var(--c-main-deep); background:var(--c-main-deep); }
.c-btn:active{ transform:translateY(4px); box-shadow:none; }
.c-btn--sub{ background:var(--c-sub); box-shadow:0 4px 0 #3F7A61; }
.c-btn--sub:hover{ background:#4E8B70; box-shadow:0 2px 0 #3F7A61; }
.c-btn--ghost{ background:transparent; color:var(--c-main); border-color:var(--c-main); box-shadow:none; }
.c-btn--ghost:hover{ background:var(--c-main-tint); color:var(--c-main-deep); transform:none; }
.c-btn--wide{ width:min(100%, 340px); }
.c-btn__arrow{ font-family:var(--f-en); font-size:15px; }

/* --------------------------------------------------------------- header */
.p-header{
  position:sticky; top:0; z-index:100; background:rgba(255,255,255,.94);
  backdrop-filter:blur(8px); border-bottom:1px solid var(--c-line);
}
.p-header__inner{
  width:min(100% - 40px, var(--w-header)); margin-inline:auto;
  display:flex; align-items:center; gap:20px; height:var(--header-h);
}
.p-logo{ display:flex; align-items:center; gap:10px; text-decoration:none; margin-right:auto; flex:none; white-space:nowrap; }
.p-logo__mark{ width:38px; height:38px; flex:none; }
/* カスタマイズで設定されたロゴ画像。ヘッダー幅の計算（tools/check-header.py の LOGO=234px）に収まるよう上限をかける。
   サイト名と並べるときはマーク扱いで小さく、画像だけのときは横長ロゴを想定して広く取る */
.p-logo__img{ display:block; width:auto; height:auto; max-height:44px; max-width:64px; flex:none; object-fit:contain; }
.p-logo--image .p-logo__img{ max-width:234px; }
@media (max-width:480px){
  .p-logo--image .p-logo__img{ max-height:36px; max-width:180px; }
}
.p-logo__text{ display:flex; flex-direction:column; line-height:1.25; }
.p-logo__name{ font-family:var(--f-round); font-weight:700; font-size:17px; letter-spacing:.02em; }
.p-logo__note{ font-size:10.5px; color:var(--c-ink-3); letter-spacing:.04em; }

.p-gnav{ display:flex; align-items:center; gap:2px; }
.p-gnav__list{ display:flex; align-items:center; gap:2px; list-style:none; margin:0; padding:0; }
/* 左右のpaddingは12→10pxに詰めてある。採用情報を足すとナビが最大8項目になり、
   12pxのままだと合計1322pxで --w-header:1320px を超えて申し込みボタンが画面外へ出る。
   1項目あたり4px詰めることで8項目1290pxに収まる（tools/check-header.py で計算） */
.p-gnav a{
  display:block; padding:8px 10px; border-radius:999px; text-decoration:none;
  font-size:14px; font-weight:500; white-space:nowrap;
  transition:background .16s ease, color .16s ease;
}
.p-gnav a:hover, .p-gnav .is-current > a{ background:var(--c-main-tint); color:var(--c-main-deep); }
.p-gnav__tel{ display:none; }          /* モバイルメニューの中だけで使う */
.p-header__cta{ display:flex; gap:10px; align-items:center; }
.p-header__tel{ display:flex; flex-direction:column; text-decoration:none; line-height:1.2; }
.p-header__tel small{ font-size:10px; color:var(--c-ink-3); }
.p-header__tel strong{ font-family:var(--f-en); font-size:19px; font-weight:600; letter-spacing:.02em; white-space:nowrap; }
.p-header__tel small{ white-space:nowrap; }
.p-header__cta .c-btn{ white-space:nowrap; padding:12px 22px; }
@media (max-width:1340px){
  .p-header__tel{ display:none; }
}
.p-burger{ display:none; width:44px; height:44px; border:1px solid var(--c-line); border-radius:12px; background:var(--c-paper); flex-direction:column; align-items:center; justify-content:center; gap:5px; cursor:pointer; }
.p-burger span{ display:block; width:19px; height:2px; background:var(--c-ink); border-radius:2px; transition:transform .2s ease, opacity .2s ease; }
.p-burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.p-burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.p-burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* --------------------------------------------------------------- footer */
.p-footer{ background:var(--c-ink); color:#EFE9E1; padding-block:56px 28px; margin-top:auto; }
.p-footer a{ color:inherit; text-decoration:none; }
.p-footer a:hover{ text-decoration:underline; }
.p-footer__grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; }
.p-footer__name{ font-family:var(--f-round); font-weight:700; font-size:18px; margin-bottom:8px; }
.p-footer__addr{ font-size:var(--fs-tiny); color:#B7AFA5; line-height:1.9; }
.p-footer h3{ font-family:var(--f-en); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:#9A938A; }
.p-footer__list{ list-style:none; display:flex; flex-direction:column; gap:9px; font-size:var(--fs-small); }
.p-footer__demo{
  margin-top:36px; padding:16px 20px; border-radius:var(--r-sm);
  background:rgba(255,255,255,.08); border:1px dashed rgba(255,255,255,.28);
  font-size:var(--fs-tiny); color:#D8D0C6; line-height:1.9;
}
.p-footer__demo strong{ color:#fff; }
.p-footer__bottom{ margin-top:44px; padding-top:18px; border-top:1px solid rgba(255,255,255,.14); display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; font-size:var(--fs-tiny); color:#9A938A; }

/* --------------------------------------------------------------- hero */
.p-hero{ position:relative; overflow:hidden; background:var(--c-main-tint); }
.p-hero__inner{
  display:grid; grid-template-columns:1.05fr .95fr; gap:44px; align-items:center;
  padding-block:clamp(40px, 6vw, 72px);
}
.p-hero__catch{ font-size:var(--fs-hero); line-height:1.45; letter-spacing:.01em; }
.p-hero__catch em{ font-style:normal; color:var(--c-main-deep); }
.p-hero__ribbon{
  display:inline-block; align-self:flex-start; background:var(--c-paper); color:var(--c-main-deep);
  font-family:var(--f-round); font-weight:700; font-size:var(--fs-small);
  padding:7px 18px; border-radius:999px; box-shadow:var(--shadow);
}
.p-hero__lead{ color:var(--c-ink-2); font-size:15.5px; max-width:46ch; }
.p-hero__btns{ display:flex; flex-wrap:wrap; gap:12px; }
.p-hero__visual{ position:relative; }
.p-hero__photo{ border-radius:var(--r-lg); box-shadow:var(--shadow-h); aspect-ratio:4/3; object-fit:cover; width:100%; background:var(--c-line-2); }
.p-hero__badge{
  position:absolute; right:-8px; bottom:-18px; background:var(--c-paper); border-radius:20px;
  padding:14px 20px; box-shadow:var(--shadow-h); display:flex; flex-direction:column; align-items:center; line-height:1.3;
}
.p-hero__badge b{ font-family:var(--f-round); font-size:26px; color:var(--c-main); }
.p-hero__badge small{ font-size:11px; color:var(--c-ink-2); }
/* 波形の区切り */
.c-wave{ display:block; width:100%; height:auto; color:var(--c-main-tint); }
.c-wave--flip{ transform:scaleY(-1); }

/* --------------------------------- 緊急・重要のお知らせバー */
.p-alertbar{ background:var(--c-alert-tint); border-bottom:1px solid #F0D6D0; }
.p-alertbar__inner{ width:min(100% - 40px, var(--w-header)); display:flex; gap:12px; align-items:center; padding-block:11px; font-size:var(--fs-small); }
.p-alertbar__tag{ flex:none; background:var(--c-alert); color:#fff; font-size:11px; font-weight:700; padding:3px 10px; border-radius:999px; }
.p-alertbar a{ color:var(--c-alert); font-weight:500; }

/* --------------------------------------------------------------- 2サービス */
.p-services{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
/* サービスが1系統だけの事業者（放デイのみ等）。2列グリッドに1枚だと右half が空くため中央に寄せる */
.p-services--single{ grid-template-columns:minmax(0,680px); justify-content:center; }
.p-service{
  background:var(--c-paper); border-radius:var(--r-lg); padding:34px 30px 30px;
  display:flex; flex-direction:column; gap:16px; box-shadow:var(--shadow);
  border-top:6px solid var(--c-main); position:relative;
}
.p-service--sub{ border-top-color:var(--c-sub); }
.p-service__label{
  align-self:flex-start; font-size:var(--fs-tiny); font-weight:700; font-family:var(--f-round);
  background:var(--c-main-tint); color:var(--c-main-deep); padding:4px 14px; border-radius:999px;
}
.p-service--sub .p-service__label{ background:var(--c-sub-tint); color:var(--c-sub-deep); }
.p-service__name{ font-size:var(--fs-h3); }
.p-service__age{ font-family:var(--f-en); font-size:var(--fs-tiny); letter-spacing:.1em; color:var(--c-ink-3); }
.p-service__text{ font-size:var(--fs-small); color:var(--c-ink-2); }
.p-service__points{ list-style:none; display:flex; flex-direction:column; gap:8px; font-size:var(--fs-small); }
.p-service__points li{ display:flex; gap:9px; align-items:flex-start; }
.p-service__points li::before{ content:"✓"; color:var(--c-main); font-weight:700; flex:none; }
.p-service--sub .p-service__points li::before{ color:var(--c-sub); }
.p-service__foot{ margin-top:auto; padding-top:8px; }
.p-service__catch{ font-family:var(--f-round); font-weight:700; color:var(--c-main-deep); line-height:1.6; }
.p-service__point-title{ display:block; color:var(--c-ink); }
.p-service__point-text{ display:block; color:var(--c-ink-2); margin-top:2px; }

/* --------------------------------------------------------------- お知らせ */
.p-newslist{ list-style:none; display:flex; flex-direction:column; }
.p-newslist li{ border-bottom:1px dashed var(--c-line); }
.p-newslist a{
  display:grid; grid-template-columns:104px 108px 1fr; gap:16px; align-items:center;
  padding:16px 6px; text-decoration:none; transition:background .15s ease;
}
.p-newslist a:hover{ background:var(--c-main-tint); }
.p-newslist a:hover .p-newslist__title{ color:var(--c-main-deep); }
.p-newslist__date{ font-family:var(--f-en); font-size:var(--fs-tiny); color:var(--c-ink-3); font-variant-numeric:tabular-nums; letter-spacing:.04em; }
.p-newslist__title{ font-size:var(--fs-small); font-weight:500; }
.p-newslist__pdf{ font-size:11px; color:var(--c-alert); font-weight:700; margin-left:6px; white-space:nowrap; }
.c-cat{
  display:inline-block; text-align:center; font-size:11px; font-weight:700; font-family:var(--f-round);
  padding:3px 0; border-radius:999px; background:var(--c-line-2); color:var(--c-ink-2); min-width:100px;
}
.c-cat--news{ background:var(--c-main-tint); color:var(--c-main-deep); }
.c-cat--event{ background:var(--c-accent-tint); color:#3E7392; }
.c-cat--important{ background:var(--c-alert-tint); color:var(--c-alert); }
.c-cat--pico{ background:var(--c-sub-tint); color:var(--c-sub-deep); }
.p-newsmore{ display:flex; justify-content:center; margin-top:32px; }

/* --------------------------------------------------------------- 教室 */
.p-classgrid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(268px,1fr)); gap:22px; }
.p-classcard{
  background:var(--c-paper); border-radius:var(--r-md); overflow:hidden; text-decoration:none;
  display:flex; flex-direction:column; box-shadow:var(--shadow); transition:transform .18s ease, box-shadow .18s ease;
}
.p-classcard:hover{ transform:translateY(-4px); box-shadow:var(--shadow-h); }
.p-classcard--static:hover{ transform:none; box-shadow:var(--shadow); } /* 個別ページを持たない構成：押せないカードを浮かせない */
.p-classcard__photo{ aspect-ratio:16/10; object-fit:cover; width:100%; background:var(--c-line-2); }
.p-classcard__body{ padding:18px 20px 22px; display:flex; flex-direction:column; gap:8px; }
.p-classcard__type{ font-size:11px; font-weight:700; color:var(--c-main-deep); }
.p-classcard--sub .p-classcard__type{ color:var(--c-sub-deep); }
.p-classcard__name{ font-size:17px; }
.p-classcard__addr{ font-size:var(--fs-tiny); color:var(--c-ink-2); line-height:1.75; }
.p-classcard__tel{ font-family:var(--f-en); font-size:15px; font-weight:600; color:var(--c-ink); letter-spacing:.02em; }
.p-classfilter{ display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin-bottom:30px; }
.p-classfilter button{
  border:1px solid var(--c-line); background:var(--c-paper); border-radius:999px;
  padding:7px 18px; font-size:var(--fs-small); cursor:pointer; transition:.15s ease;
}
.p-classfilter button[aria-pressed="true"]{ background:var(--c-main); border-color:var(--c-main); color:#fff; font-weight:700; }

/* --------------------------------------------------------------- 流れ */
.p-flow{ list-style:none; display:flex; flex-direction:column; gap:14px; counter-reset:flow; }
.p-flow li{
  background:var(--c-paper); border-radius:var(--r-md); padding:24px 28px 24px 84px;
  position:relative; box-shadow:var(--shadow);
}
.p-flow li::before{
  counter-increment:flow; content:"STEP " counter(flow);
  position:absolute; left:0; top:0; bottom:0; width:64px;
  background:var(--c-main); color:#fff; font-family:var(--f-en); font-size:10px; font-weight:600;
  letter-spacing:.08em; display:flex; align-items:center; justify-content:center; text-align:center;
  border-radius:var(--r-md) 0 0 var(--r-md); writing-mode:horizontal-tb;
}
.p-flow li:nth-child(even)::before{ background:var(--c-main-deep); }
.p-flow__title{ font-size:var(--fs-h3); margin-bottom:6px; }
.p-flow__text{ font-size:var(--fs-small); color:var(--c-ink-2); }
.p-flow__text + .p-flow__text{ margin-top:.8em; }
.p-flow__case{ margin-top:12px; padding:12px 16px; border-radius:var(--r-sm, 8px); background:var(--c-main-tint); }
.p-flow__case-head{ font-size:var(--fs-small); font-weight:700; color:var(--c-main-deep); margin-bottom:2px; }
.p-flow__note{ margin-top:12px; font-size:var(--fs-tiny); color:var(--c-ink-3); }

/* --------------------------------------------------------------- FAQ */
.p-faq{ display:flex; flex-direction:column; gap:12px; }
.p-faq details{ background:var(--c-paper); border-radius:var(--r-md); box-shadow:var(--shadow); overflow:hidden; }
.p-faq summary{
  list-style:none; cursor:pointer; padding:20px 54px 20px 62px; position:relative;
  font-family:var(--f-round); font-weight:700; font-size:15.5px;
}
.p-faq summary::-webkit-details-marker{ display:none; }
.p-faq summary::before{
  content:"Q"; position:absolute; left:22px; top:18px; width:28px; height:28px; border-radius:50%;
  background:var(--c-main); color:#fff; font-family:var(--f-en); font-size:14px; font-weight:600;
  display:flex; align-items:center; justify-content:center;
}
.p-faq summary::after{
  content:""; position:absolute; right:24px; top:26px; width:10px; height:10px;
  border-right:2px solid var(--c-ink-3); border-bottom:2px solid var(--c-ink-3);
  transform:rotate(45deg); transition:transform .2s ease;
}
.p-faq details[open] summary::after{ transform:rotate(-135deg); }
.p-faq__body{ padding:0 28px 24px 62px; font-size:var(--fs-small); color:var(--c-ink-2); position:relative; }
.p-faq__body::before{
  content:"A"; position:absolute; left:22px; top:0; width:28px; height:28px; border-radius:50%;
  background:var(--c-line-2); color:var(--c-ink-2); font-family:var(--f-en); font-size:14px; font-weight:600;
  display:flex; align-items:center; justify-content:center;
}

/* --------------------------------------------------------------- 下層ページ共通 */
.p-pagehead{ background:var(--c-main-tint); padding-block:44px 40px; text-align:center; }
.p-pagehead--sub{ background:var(--c-sub-tint); }
.p-pagehead__en{ font-family:var(--f-en); font-size:var(--fs-tiny); font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--c-main); }
.p-pagehead--sub .p-pagehead__en{ color:var(--c-sub-deep); }
.p-pagehead__ja{ font-size:var(--fs-h2); margin-top:2px; }
.c-breadcrumb{ font-size:var(--fs-tiny); color:var(--c-ink-3); padding-block:14px; }
.c-breadcrumb ol{ list-style:none; display:flex; flex-wrap:wrap; gap:8px; }
.c-breadcrumb li:not(:last-child)::after{ content:"›"; margin-left:8px; color:var(--c-line); }
.c-breadcrumb a{ color:var(--c-ink-2); text-decoration:none; }
.c-breadcrumb a:hover{ text-decoration:underline; }

/* --------------------------------------------------------------- 本文（投稿・固定ページ） */
.c-entry{ font-size:15.5px; line-height:2.05; }
.c-entry > * + *{ margin-top:1.4em; }
.c-entry h2{
  font-size:var(--fs-h3); margin-top:2.2em; padding:10px 0 10px 16px;
  border-left:5px solid var(--c-main); background:var(--c-main-tint); border-radius:0 var(--r-sm) var(--r-sm) 0;
}
.c-entry h3{ font-size:17px; margin-top:1.9em; padding-bottom:7px; border-bottom:2px dotted var(--c-line); }
.c-entry ul,.c-entry ol{ padding-left:1.5em; }
.c-entry li + li{ margin-top:.5em; }
/* 学校名など短い項目の一覧を段組みにする（本文の <ul class="u-cols">） */
.c-entry ul.u-cols{ columns:3 11em; column-gap:2em; }
.c-entry ul.u-cols li{ break-inside:avoid; margin:0 0 .4em; }
.c-entry a{ color:var(--c-main-deep); }
.c-entry img{ border-radius:var(--r-md); }
.c-entry blockquote{
  margin-inline:0; padding:18px 22px; background:var(--c-line-2);
  border-radius:var(--r-sm); color:var(--c-ink-2); font-size:var(--fs-small);
}
.c-entry table{ width:100%; border-collapse:collapse; font-size:var(--fs-small); }
.c-entry th,.c-entry td{ border:1px solid var(--c-line); padding:11px 14px; text-align:left; }
.c-entry th{ background:var(--c-line-2); white-space:nowrap; }
.c-entry .wp-caption-text,.c-entry figcaption{ font-size:var(--fs-tiny); color:var(--c-ink-3); text-align:center; margin-top:8px; }
.c-tablewrap{ overflow-x:auto; }

.c-entry__meta{ display:flex; flex-wrap:wrap; gap:12px; align-items:center; font-size:var(--fs-tiny); color:var(--c-ink-3); }
.c-entry__title{ font-size:clamp(21px,3vw,28px); line-height:1.55; }

/* PDF添付 */
.c-attach{ border:2px solid var(--c-line); border-radius:var(--r-md); padding:20px 22px; background:var(--c-paper); }
.c-attach__head{ font-family:var(--f-round); font-weight:700; font-size:var(--fs-small); margin-bottom:12px; }
.c-attach__list{ list-style:none; display:flex; flex-direction:column; gap:10px; }
.c-attach__item{
  display:flex; align-items:center; gap:12px; padding:12px 16px; border-radius:var(--r-sm);
  background:var(--c-line-2); text-decoration:none; transition:background .15s ease;
}
.c-attach__item:hover{ background:var(--c-main-tint); }
.c-attach__icon{ flex:none; width:34px; height:34px; border-radius:8px; background:var(--c-alert); color:#fff; font-family:var(--f-en); font-size:10px; font-weight:600; display:flex; align-items:center; justify-content:center; }
.c-attach__name{ font-size:var(--fs-small); font-weight:500; }
.c-attach__size{ font-size:var(--fs-tiny); color:var(--c-ink-3); margin-left:auto; font-variant-numeric:tabular-nums; white-space:nowrap; }

/* ページ送り */
.c-pager{ display:flex; justify-content:center; gap:8px; margin-top:44px; flex-wrap:wrap; }
.c-pager .page-numbers{
  min-width:42px; height:42px; padding:0 12px; border-radius:12px; background:var(--c-paper);
  border:1px solid var(--c-line); display:inline-flex; align-items:center; justify-content:center;
  text-decoration:none; font-family:var(--f-en); font-size:14px;
}
.c-pager .page-numbers.current{ background:var(--c-main); border-color:var(--c-main); color:#fff; font-weight:600; }
.c-pager .page-numbers:hover:not(.current){ background:var(--c-main-tint); }
.c-postnav{ display:flex; justify-content:space-between; gap:16px; margin-top:40px; font-size:var(--fs-small); }
.c-postnav a{ text-decoration:none; color:var(--c-main-deep); }

/* --------------------------------------------------------------- フォーム */
.c-form{ display:flex; flex-direction:column; gap:22px; }
.c-form__row{ display:flex; flex-direction:column; gap:8px; }
.c-form__label{ font-family:var(--f-round); font-weight:700; font-size:var(--fs-small); display:flex; align-items:center; gap:8px; }
.c-form__req{ font-size:10.5px; font-weight:700; padding:2px 8px; border-radius:4px; background:var(--c-alert); color:#fff; }
.c-form__opt{ font-size:10.5px; font-weight:500; padding:2px 8px; border-radius:4px; background:var(--c-line-2); color:var(--c-ink-2); }
.c-form__note{ font-size:var(--fs-tiny); color:var(--c-ink-3); }
.c-form input[type="text"],.c-form input[type="email"],.c-form input[type="tel"],.c-form select,.c-form textarea{
  width:100%; padding:14px 16px; border:1px solid var(--c-line); border-radius:var(--r-sm);
  background:var(--c-paper); font-family:inherit; font-size:16px; /* iOSの自動ズーム防止のため16px以上を厳守 */
  color:var(--c-ink); transition:border-color .15s ease, box-shadow .15s ease;
}
.c-form textarea{ min-height:170px; resize:vertical; line-height:1.8; }
.c-form input:focus,.c-form select:focus,.c-form textarea:focus{
  outline:none; border-color:var(--c-main); box-shadow:0 0 0 3px var(--c-main-tint);
}
.c-form__radios{ display:flex; flex-wrap:wrap; gap:10px; }
.c-form__radio{ display:inline-flex; align-items:center; gap:8px; padding:11px 18px; border:1px solid var(--c-line); border-radius:999px; background:var(--c-paper); cursor:pointer; font-size:var(--fs-small); }
.c-form__radio:has(input:checked){ border-color:var(--c-main); background:var(--c-main-tint); font-weight:700; }
.c-form__agree{ display:flex; gap:10px; align-items:flex-start; font-size:var(--fs-small); background:var(--c-line-2); padding:16px 18px; border-radius:var(--r-sm); }
.c-form__submit{ display:flex; justify-content:center; }
.c-form__error{ background:var(--c-alert-tint); border:1px solid #EEC9C1; border-radius:var(--r-sm); padding:16px 18px; font-size:var(--fs-small); color:var(--c-alert); }
.c-form__error ul{ list-style:disc; padding-left:1.3em; margin-top:6px; }
.c-form__done{ background:var(--c-sub-tint); border:1px solid #C6DED2; border-radius:var(--r-md); padding:28px 26px; text-align:center; display:flex; flex-direction:column; gap:10px; }
.c-form__done h2{ font-size:var(--fs-h3); color:var(--c-sub-deep); }
.c-hp{ position:absolute !important; left:-9999px !important; }

/* --------------------------------------------------------------- CTA帯 */
.p-cta{ background:var(--c-main); color:#fff; border-radius:var(--r-lg); padding:clamp(32px,5vw,48px); text-align:center; display:flex; flex-direction:column; align-items:center; gap:16px; }
.p-cta h2{ font-size:var(--fs-h2); }
.p-cta p{ font-size:var(--fs-small); max-width:56ch; opacity:.94; }
.p-cta__tel{ display:flex; flex-direction:column; align-items:center; background:rgba(255,255,255,.16); border-radius:var(--r-md); padding:16px 34px; }
.p-cta__tel strong{ font-family:var(--f-en); font-size:32px; font-weight:600; letter-spacing:.02em; line-height:1.2; }
.p-cta__tel small{ font-size:var(--fs-tiny); opacity:.9; }
.p-cta .c-btn{ background:var(--c-paper); color:var(--c-main-deep); box-shadow:0 4px 0 rgba(0,0,0,.18); }
.p-cta .c-btn:hover{ background:#FFF6EC; }
.p-cta__row{ display:flex; flex-wrap:wrap; gap:16px; justify-content:center; align-items:center; }

/* --------------------------------------------------------------- 404 / 検索 */
.p-notfound{ text-align:center; padding-block:80px; display:flex; flex-direction:column; align-items:center; gap:18px; }
.p-notfound__code{ font-family:var(--f-en); font-size:64px; font-weight:600; color:var(--c-main); line-height:1; }

/* --------------------------------------------------------------- responsive */
@media (max-width:1180px){
  /* 縦並びのときは「何のサイトか」を先に読ませ、写真はその下に置く */
  .p-hero__inner{ grid-template-columns:1fr; }
  .p-hero__badge{ right:12px; bottom:-16px; }
}
@media (max-width:1180px){
  :root{ --header-h:64px; }
  .p-burger{ display:flex; }
  .p-header__cta{ display:none; }
  /* ヘッダー（sticky）を基準に absolute で吊るす。
     fixed だとビューポート基準になり、緊急お知らせ帯がある間はヘッダーに重なってしまう */
  .p-gnav{
    position:absolute; top:100%; left:0; right:0; background:var(--c-paper);
    flex-direction:column; align-items:stretch; gap:0; padding:12px 20px 28px;
    border-bottom:1px solid var(--c-line); box-shadow:var(--shadow-h);
    max-height:calc(100dvh - var(--header-h)); overflow-y:auto;
    transform:translateY(-8px); opacity:0; pointer-events:none; transition:opacity .18s ease, transform .18s ease;
  }
  .p-gnav.is-open{ transform:none; opacity:1; pointer-events:auto; }
  .p-gnav__list{ flex-direction:column; align-items:stretch; gap:0; }
  .p-gnav a{ padding:15px 10px; border-bottom:1px dashed var(--c-line); border-radius:0; font-size:15px; }
  .p-gnav__tel{ margin-top:16px; display:flex; flex-direction:column; align-items:center; gap:4px; }
  .p-gnav__tel .c-btn{ white-space:normal; }
  .p-services{ grid-template-columns:1fr; }
  .p-newslist a{ grid-template-columns:1fr; gap:6px; padding:15px 4px; }
  .p-newslist .c-cat{ justify-self:start; }
  .p-flow li{ padding:20px 20px 20px 20px; }
  .p-flow li::before{ position:static; width:auto; display:inline-flex; padding:3px 12px; border-radius:999px; margin-bottom:10px; }
  .p-footer__grid{ grid-template-columns:1fr; gap:28px; }
  .l-wrap,.l-narrow{ width:min(100% - 32px, var(--w-page)); }
  .p-faq summary{ padding:18px 44px 18px 56px; font-size:15px; }
  .p-faq__body{ padding:0 20px 20px 56px; }
}
@media (max-width:480px){
  .p-hero__badge{ right:8px; bottom:-14px; padding:11px 16px; }
  .c-btn{ width:100%; }
  .p-hero__btns .c-btn{ width:100%; }
}
@media print{
  .p-header,.p-footer,.p-cta,.c-breadcrumb,.p-burger{ display:none !important; }
  body{ background:#fff; }
}

/* ==========================================================================
   プランC（教室ブログ・イベント・教室担当者）で使うパーツ
   FS_ENABLE_CLASS_BLOG / FS_ENABLE_EVENT が false の案件では未使用になる
   ========================================================================== */

/* --------------------------------------------------------------- 教室バッジ */
.c-roombadge{
  display:inline-flex; align-items:center; gap:7px; align-self:flex-start;
  font-family:var(--f-round); font-weight:700; font-size:var(--fs-tiny);
  background:var(--c-main-tint); color:var(--c-main-deep);
  padding:5px 13px 5px 9px; border-radius:999px; white-space:nowrap;
}
.c-roombadge--sub{ background:var(--c-sub-tint); color:var(--c-sub-deep); }
.c-roombadge__dot{ width:7px; height:7px; border-radius:50%; background:currentColor; flex:none; }

/* --------------------------------------------------------------- 教室ブログ */
.p-bloggrid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(292px,1fr)); gap:24px; }
.p-blogcard{
  background:var(--c-paper); border-radius:var(--r-md); overflow:hidden; text-decoration:none;
  display:flex; flex-direction:column; box-shadow:var(--shadow);
  transition:transform .18s ease, box-shadow .18s ease;
}
.p-blogcard:hover{ transform:translateY(-4px); box-shadow:var(--shadow-h); }
.p-blogcard__photo{ aspect-ratio:16/10; object-fit:cover; width:100%; background:var(--c-line-2); }
.p-blogcard__body{ padding:16px 20px 22px; display:flex; flex-direction:column; gap:10px; flex:1; }
.p-blogcard__meta{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.p-blogcard__date{ font-family:var(--f-en); font-size:var(--fs-tiny); color:var(--c-ink-3); font-variant-numeric:tabular-nums; }
.p-blogcard__title{ font-size:16px; line-height:1.6; }
.p-blogcard__excerpt{ font-size:var(--fs-tiny); color:var(--c-ink-2); line-height:1.85; }
.p-blogcard__more{ margin-top:auto; padding-top:6px; font-size:var(--fs-tiny); color:var(--c-main-deep); font-weight:700; }

/* トップの「今日の教室」— 横1列に流す */
.p-today{ display:grid; grid-template-columns:repeat(auto-fit, minmax(258px,1fr)); gap:20px; }
.p-today .p-blogcard__photo{ aspect-ratio:3/2; }

/* --------------------------------------------------------------- イベント */
.p-eventlist{ list-style:none; display:flex; flex-direction:column; gap:16px; }
.p-eventcard{
  display:grid; grid-template-columns:96px 1fr auto; gap:22px; align-items:center;
  background:var(--c-paper); border-radius:var(--r-md); padding:20px 24px;
  box-shadow:var(--shadow); text-decoration:none; border-left:5px solid var(--c-accent);
  transition:transform .18s ease, box-shadow .18s ease;
}
.p-eventcard:hover{ transform:translateX(3px); box-shadow:var(--shadow-h); }
.p-eventcard--done{ border-left-color:var(--c-line); background:var(--c-line-2); box-shadow:none; }
.p-eventcard--done:hover{ transform:none; box-shadow:none; }

.c-datechip{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  background:var(--c-accent-tint); color:#31698D; border-radius:var(--r-sm); padding:10px 0 12px;
  font-variant-numeric:tabular-nums; line-height:1.15;
}
.c-datechip__ym{ font-family:var(--f-en); font-size:10.5px; letter-spacing:.1em; }
.c-datechip__d{ font-family:var(--f-en); font-size:30px; font-weight:600; }
.c-datechip__w{ font-size:10.5px; }
.p-eventcard--done .c-datechip{ background:var(--c-line); color:var(--c-ink-3); }

.p-eventcard__body{ display:flex; flex-direction:column; gap:7px; min-width:0; }
.p-eventcard__title{ font-size:17px; line-height:1.55; }
.p-eventcard__place{ font-size:var(--fs-tiny); color:var(--c-ink-2); display:flex; gap:16px; flex-wrap:wrap; }
.p-eventcard__place span{ display:inline-flex; align-items:center; gap:5px; }
.p-eventcard__place svg{ width:13px; height:13px; color:var(--c-ink-3); flex:none; }
.p-eventcard__status{
  font-size:11px; font-weight:700; font-family:var(--f-round); padding:5px 14px; border-radius:999px;
  background:var(--c-accent); color:#fff; white-space:nowrap;
}
.p-eventcard__status--soon{ background:var(--c-alert); }
.p-eventcard__status--done{ background:var(--c-line); color:var(--c-ink-3); }

.c-eventmeta{ display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:1px; background:var(--c-line); border:1px solid var(--c-line); border-radius:var(--r-sm); overflow:hidden; }
.c-eventmeta__cell{ background:var(--c-paper); padding:14px 18px; display:flex; flex-direction:column; gap:3px; }
.c-eventmeta__k{ font-family:var(--f-en); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--c-ink-3); }
.c-eventmeta__v{ font-size:var(--fs-small); font-weight:500; }

/* --------------------------------------------------------------- 採用情報 */
.p-jobgrid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(320px,1fr)); gap:22px; }
.p-jobcard{
  display:flex; flex-direction:column; gap:12px; text-decoration:none;
  background:var(--c-paper); border-radius:var(--r-md); padding:22px 24px 20px;
  box-shadow:var(--shadow); border-left:5px solid var(--c-sub);
  transition:transform .18s ease, box-shadow .18s ease;
}
.p-jobcard:hover{ transform:translateY(-4px); box-shadow:var(--shadow-h); }
.p-jobcard--closed{ border-left-color:var(--c-line); background:var(--c-line-2); box-shadow:none; }
.p-jobcard--closed:hover{ transform:none; box-shadow:none; }

.p-jobcard__head{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.p-jobcard__type{
  font-size:var(--fs-tiny); font-weight:700; color:var(--c-sub-deep);
  background:var(--c-sub-tint); border-radius:999px; padding:4px 12px;
}
.p-jobcard__status{
  font-size:11px; font-weight:700; font-family:var(--f-round); padding:5px 14px; border-radius:999px;
  background:var(--c-sub); color:#fff; white-space:nowrap; margin-left:auto;
}
.p-jobcard__status--soon{ background:var(--c-alert); }
.p-jobcard__status--closed{ background:var(--c-line); color:var(--c-ink-3); }
.p-jobcard__title{ font-size:var(--fs-h3); line-height:1.5; }

/* 定義リストを「ラベル / 値」の2列に組む（項目が空のときは行ごと出さない） */
.p-jobcard__meta{ display:flex; flex-direction:column; gap:6px; font-size:var(--fs-tiny); }
.p-jobcard__meta > div{ display:grid; grid-template-columns:62px 1fr; gap:10px; align-items:baseline; }
.p-jobcard__meta dt{ color:var(--c-ink-3); }
.p-jobcard__meta dd{ color:var(--c-ink); font-weight:500; }
.p-jobcard__more{ margin-top:auto; padding-top:6px; font-size:var(--fs-tiny); color:var(--c-main-deep); font-weight:700; }
.p-jobcard--closed .p-jobcard__more{ color:var(--c-ink-3); }

.p-jobclosed{ margin-top:56px; }

/* 詳細ページの募集要項 */
.c-joboutline{ border:1px solid var(--c-line); border-radius:var(--r-sm); overflow:hidden; }
.c-joboutline__head{
  font-size:var(--fs-h3); padding:16px 22px; background:var(--c-cream);
  border-bottom:1px solid var(--c-line);
}
.c-joboutline__row{ display:grid; grid-template-columns:180px 1fr; border-bottom:1px solid var(--c-line); }
.c-joboutline__row:last-child{ border-bottom:0; }
.c-joboutline__row dt{
  padding:16px 22px; background:var(--c-line-2); font-size:var(--fs-small); font-weight:700;
}
.c-joboutline__row dd{ padding:16px 22px; font-size:var(--fs-small); line-height:1.85; }
.p-cta__note{ font-size:var(--fs-tiny); color:var(--c-ink-2); margin-top:14px; line-height:1.8; }

@media (max-width:1180px){
  .p-jobgrid{ grid-template-columns:1fr; }
  .c-joboutline__row{ grid-template-columns:1fr; }
  .c-joboutline__row dt{ padding:12px 18px 6px; background:transparent; color:var(--c-ink-3); }
  .c-joboutline__row dd{ padding:0 18px 14px; }
}

/* --------------------------------------------------------------- 絞り込み（複数軸） */
.p-filterset{ display:flex; flex-direction:column; gap:12px; margin-bottom:32px; }
.p-filterrow{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; justify-content:center; }
.p-filterrow__label{
  font-family:var(--f-en); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--c-ink-3); min-width:64px; text-align:right;
}
.p-filterrow button{
  border:1px solid var(--c-line); background:var(--c-paper); border-radius:999px;
  padding:7px 18px; font-size:var(--fs-small); cursor:pointer; transition:.15s ease;
}
.p-filterrow button[aria-pressed="true"]{ background:var(--c-main); border-color:var(--c-main); color:#fff; font-weight:700; }
.p-filterrow--type button[aria-pressed="true"]{ background:var(--c-sub); border-color:var(--c-sub); }
.p-filter-empty{ text-align:center; color:var(--c-ink-2); padding:40px 0; }

/* --------------------------------------------------------------- 教室ページ内のブログ */
.p-roomblog{ background:var(--c-cream); border-radius:var(--r-lg); padding:32px 30px; }
.p-roomblog__head{ display:flex; align-items:baseline; gap:14px; margin-bottom:20px; flex-wrap:wrap; }
.p-roomblog__head h2{ font-size:var(--fs-h3); }
.p-roomblog__head a{ margin-left:auto; font-size:var(--fs-tiny); color:var(--c-main-deep); }

@media (max-width:1180px){
  .p-eventcard{ grid-template-columns:72px 1fr; gap:16px; padding:16px 18px; }
  .p-eventcard__status{ grid-column:2; justify-self:start; }
  .c-datechip__d{ font-size:24px; }
  .p-filterrow__label{ min-width:auto; text-align:left; width:100%; }
  .p-roomblog{ padding:24px 20px; }
}

/* ==========================================================================
   ヒーローの写真スライダー（クロスフェード）
   写真が1枚だけの案件では、JSが動かず静止画のまま表示される
   ========================================================================== */
.p-slider{
  position:relative; border-radius:var(--r-lg); overflow:hidden;
  aspect-ratio:4/3; background:var(--c-line-2); box-shadow:var(--shadow-h);
  touch-action:pan-y;
}
.p-slider__item{
  position:absolute; inset:0; opacity:0;
  transition:opacity .9s ease;
  will-change:opacity;
}
.p-slider__item:first-child{ opacity:1; }          /* JS未実行でも1枚目は見える */
.p-slider.is-ready .p-slider__item{ opacity:0; }
.p-slider.is-ready .p-slider__item.is-active{ opacity:1; }
.p-slider__item img{ width:100%; height:100%; object-fit:cover; display:block; }

.p-slider__dots{
  position:absolute; left:16px; bottom:14px;
  display:flex; gap:9px; z-index:2; padding:7px 12px;
  background:rgba(255,255,255,.72); border-radius:999px; backdrop-filter:blur(4px);
}
.p-slider__dot{
  width:9px; height:9px; padding:0; border:0; border-radius:50%; cursor:pointer;
  background:var(--c-ink-3); opacity:.45; transition:opacity .2s ease, transform .2s ease, background .2s ease;
}
.p-slider__dot:hover{ opacity:.8; }
.p-slider__dot[aria-current="true"]{ background:var(--c-main); opacity:1; transform:scale(1.25); }

@media (prefers-reduced-motion:reduce){
  .p-slider__item{ transition:none; }
}

/* ============================================================ 療育方針 */
.p-policies{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.p-policy{
  position:relative; background:var(--c-paper); border-radius:var(--r-md);
  padding:34px 26px 26px; box-shadow:var(--shadow); border-top:6px solid var(--c-main);
}
.p-policy__no{
  position:absolute; top:-16px; left:24px;
  width:44px; height:44px; border-radius:50%; background:var(--c-main); color:#fff;
  font-family:var(--f-en); font-size:15px; font-weight:600;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 3px 0 var(--c-main-deep);
}
.p-policy__name{ font-family:var(--f-round); font-size:var(--fs-h3); margin:6px 0 12px; }
.p-policy__text{ font-size:var(--fs-small); color:var(--c-ink-2); line-height:1.9; }

/* ============================================================ 公表資料 */
.p-docyear + .p-docyear{ margin-top:38px; }
.p-docyear__head{
  font-family:var(--f-round); font-size:var(--fs-h3); font-weight:700;
  padding-bottom:10px; border-bottom:2px solid var(--c-main); margin-bottom:20px;
}
.p-docgroup + .p-docgroup{ margin-top:22px; }
.p-docgroup__room{
  font-size:var(--fs-small); font-weight:700; color:var(--c-main-deep);
  display:flex; align-items:center; gap:8px; margin-bottom:10px;
}
.p-docgroup__room::before{
  content:""; width:8px; height:8px; border-radius:50%; background:var(--c-main); flex:none;
}
.p-doclist{ list-style:none; display:flex; flex-direction:column; gap:10px; }
.p-doclist__item{
  display:flex; align-items:center; gap:14px; padding:14px 18px; border-radius:var(--r-sm);
  background:var(--c-paper); border:1px solid var(--c-line);
  text-decoration:none; transition:background .15s ease, border-color .15s ease;
}
a.p-doclist__item:hover{ background:var(--c-main-tint); border-color:var(--c-main); }
.p-doclist__item--empty{ background:var(--c-line-2); border-style:dashed; }
.p-doclist__icon{
  flex:none; width:36px; height:36px; border-radius:8px; background:var(--c-alert); color:#fff;
  font-family:var(--f-en); font-size:10px; font-weight:600;
  display:flex; align-items:center; justify-content:center;
}
.p-doclist__body{ display:flex; flex-direction:column; gap:3px; min-width:0; }
.p-doclist__name{ font-size:var(--fs-small); font-weight:500; }
.p-doclist__date{ font-size:var(--fs-tiny); color:var(--c-ink-3); font-variant-numeric:tabular-nums; }
.p-doclist__size{
  font-size:var(--fs-tiny); color:var(--c-ink-3); margin-left:auto;
  font-variant-numeric:tabular-nums; white-space:nowrap;
}

@media (max-width:900px){
  .p-policies{ grid-template-columns:1fr; gap:30px; }
}
@media (max-width:480px){
  .p-doclist__item{ padding:12px 14px; gap:11px; }
  .p-doclist__size{ display:none; }   /* 幅が足りないので容量は省く（リンク名を優先） */
}

/* --------------------------------------------------------------- social
   SNSリンク（inc/social.php）。
   --c-social が指定されていればそれを、無ければテーマカラーを地色にする。
   マーク自体は白抜きのまま（各社のブランドガイドラインに合わせて形は変えない）。 */
.p-social{ display:flex; gap:8px; }
.p-social__item{
  --c-social:var(--c-main);
  display:grid; place-items:center; width:44px; height:44px;
  background:var(--c-social); color:#fff; text-decoration:none;
  transition:opacity .15s ease, transform .15s ease;
}
.p-social__item:hover{ opacity:.86; transform:translateY(-1px); text-decoration:none; }
.p-social__item:focus-visible{ outline:3px solid var(--c-accent); outline-offset:2px; }
/* 光学調整：LINEのマークは吹き出し形で四隅の余白が大きく、同じ22pxだと他より小さく見える。
   拡大縮小は各社のガイドラインで許容されている（変形・切り抜きは不可） */
.p-social__item--line svg{ width:26px; height:26px; }

/* PC左端の固定レール。ヘッダー（z-index:100）より下に置く */
.p-social--rail{
  position:fixed; left:0; top:50%; transform:translateY(-50%); z-index:90;
  flex-direction:column; gap:0;
  border-radius:0 var(--r-sm) var(--r-sm) 0; overflow:hidden;
  box-shadow:var(--shadow);
}
.p-social--rail .p-social__item{ width:52px; height:52px; }
.p-social--rail .p-social__item:hover{ transform:none; }

/* フッター（暗い背景なので角丸だけ添える） */
.p-social--footer{ margin-top:32px; flex-wrap:wrap; }
.p-social--footer .p-social__item{ border-radius:var(--r-sm); }

/* 教室ページ */
.p-social--room .p-social__item{ border-radius:var(--r-sm); }

/* スマホでは固定レールを出さない。
   画面幅を食ううえ、スクロール中の誤タップが起きるため（フッターには出る） */
@media (max-width:1180px){
  .p-social--rail{ display:none; }
}
@media print{
  .p-social--rail{ display:none !important; }
}
