/* site.css — 全ページ共通(base / 配色 / 土台 / ヘッダ・フッタ / 汎用コンポーネント)
   各ページは <link site.css> の後に <link css/<page>.css>(ページ固有) を読む。インライン style は使わない。 */

/* ---- design tokens(配色・寸法を一元管理) ----------------------------- */
:root {
  --ink:    #202020;   /* 基本の文字色 */
  --muted:  #6b6b6b;   /* 補助テキスト */
  --line:   #707070;   /* 罫線・グレーの面 */
  --beige:  #f2eee7;   /* 帯の地色(明) */
  --khaki:  #e4d8b6;   /* 帯の地色(濃)=VOICE帯/about特徴帯。設計実測 */
  --salmon: #bd856b;   /* アクセント(サーモン) */
  --green:  #80876f;   /* アクセント(グリーン) */
  --gold:   #ddb85c;   /* CTA */
  --accent: #c48a6f;   /* 番号・強調 */
  --logo-green: #02341f;
  --content-w: 1160px; /* 中央内容カラムの最大幅 */
  --serif: "Palatino", "Hiragino Mincho ProN", "Times New Roman", serif;
  --sans:  "YuGothic", "Hiragino Sans", "Noto Sans JP", sans-serif;
}

/* ---- base ------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; color: var(--ink); background: #fff;
  font-family: var(--sans); line-height: 1.8; font-size: 16px;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, p, figure { margin: 0; }
ul { margin: 0; padding: 0; list-style: none; }

/* ---- 土台: 全幅バンド + 中央内容カラム --------------------------------- */
header, section, footer { width: 100%; }
.content-area { width: 100%; max-width: var(--content-w); margin: 0 auto; padding: 72px 24px; }
.band { width: 100%; }
.band--beige { background: var(--beige); }
.band--khaki { background: var(--khaki); }

/* セクション見出し */
.section-title { text-align: center; margin-bottom: 48px; }
.section-title h1, .section-title h2 {
  font-family: var(--sans); font-weight: 400;   /* サイト標準はゴシック(sans)。セリフは FV タイトルのみ */
  letter-spacing: .12em;
}
.section-title h1 { font-size: clamp(3rem, 4.7vw, 4.3rem); }      /* ページタイトル(COURSE/SCHOOL/ABOUT/PRIVACY): 設計実測 cap高≈46px(font≈67px)。cap比≈0.69 */
.section-title h2 { font-size: clamp(1.8rem, 4.5vw, 2.4rem); }    /* index 節見出し(NEWS/悩み/VOICE/STAFF): 承認済み index の見た目を維持 */
.section-title .sub-text { color: var(--ink); font-size: .9rem; letter-spacing: .1em; margin-top: 6px; }   /* 設計実測(全ページ): サブは #202020(ink)。muted ではない */
.lead-2 { font-size: clamp(1.7rem, 3.6vw, 2.7rem); font-weight: 600; margin-bottom: 28px; }   /* 設計(course/about 節見出し実測): 字高≈40〜48px */

/* ---- ヘッダ(全ページ共通) --------------------------------------------- */
.site-header .content-area { padding: 20px 24px; display: flex; align-items: center; justify-content: space-between; }   /* 設計: ハンバーガーはロゴと縦中央で揃う */
/* ロゴは画像(img/Scent_logo.png)。高さは従来のテキストロゴ(3行×16px×line-height1.25=60px)に一致させ、幅は比率維持で自動 */
.logo-area { display: inline-block; }
/* 横長ロゴ(約8:1)。高さ・横幅の両上限で収め、ハンバーガーと干渉しないようにする */
.logo-area img { display: block; height: auto; width: auto; max-height: 42px; max-width: min(58vw, 360px); }
/* 設計 TOP-pc 実測: 幅90px・線太5px・線間30px(中心間)。緑上/サーモン下 */
.humberger-icon { background: none; border: 0; padding: 0; cursor: pointer; position: relative; width: 90px; height: 35px; }
.humberger-icon::before, .humberger-icon::after { content: ""; position: absolute; left: 0; width: 90px; height: 5px; border-radius: 2px; }
.humberger-icon::before { top: 0;   background: var(--green); }   /* 上線(緑) */
.humberger-icon::after  { top: 30px; background: var(--salmon); }  /* 下線(サーモン) */

/* ---- フッタ(全ページ共通) --------------------------------------------- */
.site-footer { background: var(--beige); }
/* 設計: nav は全体を中央寄せ、各項目は EN(大)＋JP(小) を中央揃えで縦積み */
.footer-menu-area { display: flex; flex-wrap: wrap; justify-content: center; gap: 22px 56px; }
.footer-menu-area a { display: flex; flex-direction: column; align-items: center; text-align: center; }
.footer-menu-area .en { font-size: 1.05rem; letter-spacing: .1em; }
.footer-menu-area .jp { font-size: .8rem; color: var(--muted); margin-top: 6px; }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: 100px; font-size: .85rem; }
.footer-bottom .footer-copy { font-family: var(--sans); }   /* サイト標準ゴシック */
.footer-logo { display: none; }   /* SP のみブランド縦積みを表示(下の @media) */

/* ---- 改行のブレークポイント出し分け(⑫) ------------------------------- */
.br-sp { display: none; }   /* SP のみ改行 */
.br-pc { display: inline; } /* PC のみ改行 */

/* ---- 汎用: 2カラム(テキスト|画像)。交互は --reverse ------------------- */
.split { display: flex; gap: 48px; align-items: center; }
.split--reverse { flex-direction: row-reverse; }
.split > * { flex: 1; min-width: 0; }
.split__media { position: relative; }
.bg-decoration { position: absolute; z-index: 0; }   /* 装飾は背景。DOM/リフローに影響させない */
.split__media img { position: relative; z-index: 1; }

/* ---- 汎用: ボタン ----------------------------------------------------- */
.view-more, .fv-cta {
  display: inline-flex; align-items: center; justify-content: center;
  padding: .85em 2.6em; color: #fff; background: var(--line); border: 1px solid #fff;
  letter-spacing: .12em; font-size: .9rem; cursor: pointer;
}
.fv-cta { background: var(--gold); color: var(--ink); border-color: #fffdfd; border-radius: 33px 0 0 0; }   /* デザイン: 左上のみ角丸 radii(TL,TR,BR,BL)=33,0,0,0 */
/* 設計 TOP-pc 実測: VIEW MORE ボックスは 266x52(テキスト113幅・左右余白76・上下16)。全ページ共通の標準サイズ */
.view-more { padding: 18px 76px; font-size: 1rem; line-height: 1; }   /* line-height:1 で箱高を設計52pxに合わせる */

/* ---- 追従CTA: 画面右下に固定し、スクロールしても常に表示する「体験レッスンはこちら」 --- */
.floating-cta {
  position: fixed; right: 22px; bottom: 22px; z-index: 900;
  display: inline-flex; align-items: center;
  background: var(--gold); color: var(--ink);
  padding: 1em 1.7em; border-radius: 999px;
  font-size: 1rem; font-weight: 700; letter-spacing: .04em; line-height: 1.2;
  box-shadow: 0 8px 22px rgba(0,0,0,.22);
  transition: transform .25s ease, box-shadow .18s ease, opacity .25s ease;
  animation: floating-cta-in .5s ease-out .8s both;
}
.floating-cta::after { content: "›"; margin-left: .5em; font-size: 1.2em; line-height: 1; }
.floating-cta:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(0,0,0,.28); }
/* フッター到達時: JS が .is-hidden を付与 → 下へフェードアウトして重なりを回避 */
.floating-cta.is-hidden { opacity: 0; transform: translateY(28px); pointer-events: none; }
@keyframes floating-cta-in { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 768px) {
  .floating-cta { right: 12px; bottom: 12px; padding: .75em 1.15em; font-size: .8rem; max-width: calc(100vw - 24px); text-align: center; }
}
@media (prefers-reduced-motion: reduce) { .floating-cta { animation: none; } }

/* ---- 汎用: カードグリッド --------------------------------------------- */
.card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.card-grid--2 { grid-template-columns: repeat(2, 1fr); }
.card { display: flex; flex-direction: column; }
.card__num { font-size: 1.6rem; color: var(--accent); letter-spacing: .1em; }
.card h3 { font-size: 1.05rem; margin: 10px 0 8px; }
.card p { font-size: .9rem; color: #444; }
.card img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }

/* ---- 汎用: チェックリスト --------------------------------------------- */
.checks li { display: flex; align-items: center; gap: 10px; margin: 8px 0; font-size: .92rem; }
.checks li::before {
  content: "✓"; flex: 0 0 auto; width: 1.4em; height: 1.4em; margin-top: .1em;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--line); color: #fff; border-radius: 30%; font-size: .8em;   /* デザイン: 角丸四角(30x30 r9)。真円ではない */
}

/* ---- 汎用: 価格 ------------------------------------------------------- */
.price { display: flex; align-items: center; justify-content: center; gap: 10px; flex-wrap: wrap; margin: 18px 0 22px; }   /* 設計: 3要素を上下中央・全体センタリング */
/* 単位ブロック: 設計の2段配置 →（税込）を小さく上段・円の左端に揃え、下段に大きい「円」＋右に小さい「/月4回」 */
.price .unit {
  display: inline-grid; grid-template-columns: auto auto; grid-template-rows: auto auto;
  align-items: baseline; text-align: left; line-height: 1; color: #555; margin-left: -12px;   /* 設計: （税込）左端が金額右端にほぼ密着(わずかに重なる)。flex gap10pxを相殺 */
}
.price .unit .tax { grid-area: 1 / 1 / 2 / 3; font-size: clamp(.72rem, 1.2vw, .82rem); justify-self: start; }  /*（税込）: 上段・小・金額の右端に寄る(左に張り出す) */
.price .unit .yen { grid-area: 2 / 1 / 3 / 2; font-size: clamp(1.15rem, 2.1vw, 1.9rem); margin-left: .7em; }   /* 円: 金額に比例(約0.7倍)・ベースライン。設計では（税込）より右へ約0.7em インデント */
.price .unit .per { grid-area: 2 / 2 / 3 / 3; font-size: clamp(.72rem, 1.2vw, .82rem); margin-left: .2em; }    /* /月4回: 円の右・小 */
.price .badge { border: 1px solid var(--line); border-radius: 999px; padding: .25em 1.1em; font-size: .85rem; }
.price .amount { font-size: clamp(1.6rem, 3vw, 2.75rem); letter-spacing: .02em; }   /* 設計(course実測): 金額字高≈44px */
.price .note { font-size: .8rem; color: #555; }

/* ====================================================================== */
/*  SP: 同じタグを縦リフロー                                               */
/* ====================================================================== */
@media (max-width: 768px) {
  .content-area { padding: 48px 18px; }
  .site-header .content-area { padding: 16px 18px; }
  .logo-area img { max-height: 30px; max-width: 60vw; }   /* SP: 横長ロゴを小さめにしてハンバーガーと干渉させない */
  .split, .split--reverse { flex-direction: column; gap: 28px; }
  .card-grid, .card-grid--2 { grid-template-columns: 1fr; gap: 24px; }
  .footer-menu-area { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 16px; }
  .footer-bottom { align-items: flex-end; }
  .footer-bottom .footer-copy { display: none; }            /* SPは©でなく縦ワードマーク */
  /* SP 左下のワードマーク: ヘッダーロゴと同じ配色(S=緑 / H=赤 / 本文=茶)・ゴシック */
  .footer-logo { display: flex; flex-direction: column; line-height: 1.25; font-size: 16px;
    letter-spacing: .06em; color: #6a2804; font-family: var(--sans); }
  .footer-logo .lead   { color: var(--logo-green); }
  .footer-logo .lead-r { color: #9e1717; }
  .br-sp { display: inline; }   /* SP で改行を効かせる */
  .br-pc { display: none; }

  /* SP: ハンバーガーは小さく(設計 TOP-sp ≈ 幅25px・線間20px)。PC の 90px を上書き */
  .humberger-icon { width: 40px; height: 24px; }
  .humberger-icon::before, .humberger-icon::after { width: 40px; height: 3px; }
  .humberger-icon::before { top: 2px; }
  .humberger-icon::after  { top: 19px; }
  /* SP: VIEW MORE は 215x50 相当(設計 TOP-sp)。PC の 266x52 を詰める */
  .view-more { padding: 14px 60px; font-size: .9rem; }
  /* SP: index 節見出し(h2)は字間を詰めて1行に収める(例「こんな悩みありませんか？」の孤立改行を防ぐ) */
  .section-title h2 { font-size: clamp(1.5rem, 6vw, 1.9rem); letter-spacing: .04em; }
  /* SP: ページタイトル(h1)は設計 cap高≈38px(font≈55px)と大きい。PRIVACY は privacy.css で縮小 */
  .section-title h1 { font-size: clamp(2.6rem, 13.3vw, 3.6rem); letter-spacing: .04em; }
}

/* ---- ハンバーガーメニュー(全画面オーバーレイ。js/site-nav.js が注入) ----- */
.hm-overlay {
  position: fixed; inset: 0; z-index: 1000; background: var(--beige);
  display: flex; flex-direction: column; padding: 44px 48px;
  opacity: 0; visibility: hidden; transition: opacity .3s ease; overflow-y: auto;
}
.hm-overlay.is-open { opacity: 1; visibility: visible; }
.hm-overlay .hm-logo { line-height: 1.25; font-size: 16px; letter-spacing: .06em; color: #6a2804; }
.hm-overlay .hm-logo .lead   { color: var(--logo-green); }   /* S = 緑 */
.hm-overlay .hm-logo .lead-r { color: #9e1717; }             /* H = 赤 */
.hm-close { position: absolute; top: 44px; right: 48px; width: 48px; height: 48px; border: 0; background: none; cursor: pointer; }
.hm-close::before, .hm-close::after { content: ""; position: absolute; left: 4px; top: 23px; width: 40px; height: 2px; }
.hm-close::before { background: var(--green);  transform: rotate(45deg); }
.hm-close::after  { background: var(--salmon); transform: rotate(-45deg); }
.hm-nav { flex: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 30px 90px;
  align-content: center; justify-items: center; max-width: 720px; width: 100%; margin: 0 auto; }
.hm-nav a { text-align: center; }
.hm-nav .en { display: block; font-family: var(--sans); font-size: 2.2rem; letter-spacing: .06em; }
.hm-nav .jp { font-size: .9rem; color: #555; }
.hm-cta { display: block; width: 100%; max-width: 680px; margin: 16px auto 8px; text-align: center;
  background: var(--gold); color: var(--ink); border-radius: 999px; padding: 1.1em; font-size: 1.1rem; }
@media (max-width: 768px) {
  .hm-overlay { padding: 24px; }
  .hm-close { top: 20px; right: 20px; }
  .hm-nav { grid-template-columns: 1fr; gap: 22px; }
  .hm-nav .en { font-size: 1.8rem; }
}
