/* =========================================================
   セクション固有 — すべて --u 基準
   ========================================================= */

/* ---------- ヘッダー ---------- */
.head {
  position:sticky; top:0; z-index:var(--z-header);
  display:flex; align-items:center; justify-content:space-between;
  gap:calc(var(--sp-2) * var(--u));
  background:var(--c-white); border-bottom:calc(var(--bw-thin) * var(--u)) solid var(--c-line);
  padding:calc(var(--sp-2) * var(--u)) calc(var(--sp-3) * var(--u));
}
.head__logo {
  font-size:calc(38 * var(--u)); font-weight:var(--fw-black);
  color:var(--c-navy); letter-spacing:.04em; line-height:1.1;
}
.head__logo-sub {
  display:block; font-size:calc(16 * var(--u)); font-weight:var(--fw-bold);
  color:var(--c-blue); letter-spacing:.02em;
}
.head__tel {
  display:flex; flex-direction:column; align-items:flex-end;
  font-size:calc(30 * var(--u)); font-weight:var(--fw-black);
  color:var(--c-navy); letter-spacing:var(--ls-tight); white-space:nowrap;
}
.head__tel-label {
  font-size:calc(16 * var(--u)); font-weight:var(--fw-bold);
  color:var(--c-white); background:var(--c-pink);
  border-radius:calc(var(--r-sm) * var(--u));
  padding:0 calc(var(--sp-1) * var(--u)); margin-bottom:calc(2 * var(--u));
}

/* ---------- CTA（主CV=電話） ---------- */
.cta {
  padding:calc(var(--sp-4) * var(--u)) calc(var(--gutter) * var(--u)) calc(var(--sp-6) * var(--u));
  background:var(--c-blue-pale);
  text-align:center;
}
.cta__lead {
  font-size:calc(var(--fs-md) * var(--u)); font-weight:var(--fw-bold);
  color:var(--c-navy); line-height:var(--lh-md);
  margin-bottom:calc(var(--sp-3) * var(--u));
}
.cta__free {
  display:inline-block; background:var(--c-yellow); color:var(--c-navy);
  font-size:calc(var(--fs-sm) * var(--u)); font-weight:var(--fw-black);
  border-radius:calc(var(--r-sm) * var(--u));
  padding:0 calc(var(--sp-1) * var(--u)); margin-right:calc(var(--sp-1) * var(--u));
}
/* 電話は主CV。白地＋紺で「情報」として読ませ、押せることを枠で示す */
.cta__tel {
  display:flex; align-items:center; justify-content:center;
  gap:calc(var(--sp-2) * var(--u));
  background:var(--c-white); border:calc(var(--bw-bold) * var(--u)) solid var(--c-navy);
  border-radius:calc(var(--r-md) * var(--u));
  padding:calc(var(--sp-2) * var(--u)) calc(var(--sp-3) * var(--u));
}
.cta__tel-icon { width:calc(46 * var(--u)); height:calc(46 * var(--u)); color:var(--c-pink); flex:0 0 auto; }
.cta__tel-icon svg { width:100%; height:100%; }
.cta__tel-body { display:flex; flex-direction:column; align-items:flex-start; }
.cta__tel-num {
  font-size:calc(56 * var(--u)); font-weight:var(--fw-black);
  color:var(--c-navy); line-height:1.05; letter-spacing:var(--ls-tight);
}
.cta__tel-time { font-size:calc(var(--fs-note) * var(--u)); color:var(--c-note); }
/* フォームは補助。ピンクの塊で「行動」を示す */
.cta__form {
  display:flex; align-items:center; justify-content:center;
  gap:calc(var(--sp-1) * var(--u));
  margin-top:calc(var(--sp-2) * var(--u));
  background:var(--c-pink); color:var(--c-white);
  border-radius:calc(var(--r-pill) * var(--u));
  box-shadow:0 calc(5 * var(--u)) 0 var(--c-pink-dark);
  padding:calc(var(--sp-3) * var(--u)) calc(var(--sp-4) * var(--u));
  font-size:calc(var(--fs-lg) * var(--u)); font-weight:var(--fw-black);
}
.cta__arrow { font-size:1.2em; line-height:1; }
.cta__note {
  margin-top:calc(var(--sp-3) * var(--u));
  font-size:calc(var(--fs-sm) * var(--u)); font-weight:var(--fw-bold); color:var(--c-navy);
}

/* ---------- 比較表 ---------- */
.cmp { padding:0 calc(var(--sp-3) * var(--u)); }
.cmp__scroll { overflow-x:auto; -webkit-overflow-scrolling:touch; }
.cmp__table { width:100%; font-size:calc(var(--fs-sm) * var(--u)); }
.cmp__table th,.cmp__table td {
  border:calc(var(--bw-thin) * var(--u)) solid var(--c-line);
  padding:calc(var(--sp-2) * var(--u)) calc(var(--sp-1) * var(--u));
  text-align:center; vertical-align:middle; line-height:var(--lh-sm);
}
.cmp__table thead th { background:var(--c-gray-bg); color:var(--c-text); font-size:calc(var(--fs-note) * var(--u)); }
.cmp__table thead th.is-lease { background:var(--c-pink); color:var(--c-white); font-size:calc(var(--fs-md) * var(--u)); }
.cmp__table thead th.is-cash  { background:var(--c-navy); color:var(--c-white); font-size:calc(var(--fs-md) * var(--u)); }
.cmp__table tbody th {
  background:var(--c-gray-bg); text-align:left; width:calc(140 * var(--u));
  font-weight:var(--fw-bold); font-size:calc(var(--fs-note) * var(--u));
}
.cmp__table td.is-lease { background:var(--c-pink-pale); font-weight:var(--fw-bold); color:var(--c-navy); }
.cmp__sub { font-size:calc(var(--fs-note) * var(--u)); font-weight:var(--fw-normal); color:var(--c-note); }

/* ---------- FAQ ---------- */
.faq { padding:calc(var(--sp-7) * var(--u)) calc(var(--sp-3) * var(--u)); }
.faq__ttl {
  text-align:center; font-size:calc(var(--fs-xl) * var(--u)); font-weight:var(--fw-black);
  color:var(--c-navy); line-height:var(--lh-xl);
  margin-bottom:calc(var(--sp-4) * var(--u));
}
.faq__item { border-bottom:calc(var(--bw-thin) * var(--u)) solid var(--c-line); }
.faq__item:first-of-type { border-top:calc(var(--bw-thin) * var(--u)) solid var(--c-line); }
.faq__item summary {
  list-style:none; cursor:pointer; position:relative;
  display:flex; align-items:center; gap:calc(var(--sp-2) * var(--u));
  padding:calc(var(--sp-3) * var(--u)) calc(var(--sp-6) * var(--u)) calc(var(--sp-3) * var(--u)) 0;
  font-size:calc(var(--fs-md) * var(--u)); font-weight:var(--fw-bold);
  color:var(--c-navy); line-height:var(--lh-md);
}
.faq__item summary::-webkit-details-marker { display:none; }
.faq__q,.faq__a-mark {
  flex:0 0 auto; width:calc(44 * var(--u)); height:calc(44 * var(--u));
  border-radius:50%; display:grid; place-items:center;
  font-size:calc(var(--fs-base) * var(--u)); font-weight:var(--fw-black);
}
.faq__q { background:var(--c-navy); color:var(--c-white); }
.faq__a-mark { background:var(--c-pink); color:var(--c-white); }
.faq__item summary::after {
  content:""; position:absolute; right:calc(var(--sp-2) * var(--u)); top:calc(var(--sp-5) * var(--u));
  width:calc(16 * var(--u)); height:calc(16 * var(--u));
  border-right:calc(3 * var(--u)) solid var(--c-blue);
  border-bottom:calc(3 * var(--u)) solid var(--c-blue);
  transform:rotate(45deg); transition:transform var(--dur) var(--ease);
}
.faq__item[open] summary::after { transform:rotate(-135deg); top:calc(var(--sp-6) * var(--u)); }
.faq__a {
  display:flex; gap:calc(var(--sp-2) * var(--u));
  padding:0 0 calc(var(--sp-3) * var(--u));
  font-size:calc(var(--fs-base) * var(--u)); line-height:var(--lh-base);
}

/* ---------- 会社情報 ---------- */
.company { background:var(--c-gray-bg); padding:calc(var(--sp-7) * var(--u)) calc(var(--gutter) * var(--u)); }
.company__ttl {
  text-align:center; font-size:calc(var(--fs-xl) * var(--u)); font-weight:var(--fw-black);
  color:var(--c-navy); margin-bottom:calc(var(--sp-4) * var(--u));
}
.company__list {
  display:grid; grid-template-columns:calc(180 * var(--u)) 1fr;
  background:var(--c-white); border-radius:calc(var(--r-md) * var(--u)); overflow:hidden;
  font-size:calc(var(--fs-sm) * var(--u)); line-height:var(--lh-sm);
}
.company__list dt,.company__list dd {
  padding:calc(var(--sp-2) * var(--u)) calc(var(--sp-3) * var(--u));
  border-bottom:calc(var(--bw-thin) * var(--u)) solid var(--c-line);
}
.company__list dt { background:var(--c-blue-pale); color:var(--c-navy); font-weight:var(--fw-bold); }
.company__list dd a { color:var(--c-pink); font-weight:var(--fw-bold); text-decoration:underline; }
.company__sub { color:var(--c-note); font-size:calc(var(--fs-note) * var(--u)); }

/* ---------- フォーム ---------- */
.form { padding:calc(var(--sp-7) * var(--u)) calc(var(--gutter) * var(--u)); background:var(--c-blue-pale); }
.form__ttl {
  text-align:center; font-size:calc(var(--fs-xl) * var(--u)); font-weight:var(--fw-black); color:var(--c-navy);
}
.form__lead {
  text-align:center; font-size:calc(var(--fs-base) * var(--u));
  margin:calc(var(--sp-2) * var(--u)) 0 calc(var(--sp-4) * var(--u));
}
.form__body { background:var(--c-white); border-radius:calc(var(--r-md) * var(--u)); padding:calc(var(--sp-4) * var(--u)); }
.form__row { display:block; margin-bottom:calc(var(--sp-3) * var(--u)); }
.form__label {
  display:block; font-size:calc(var(--fs-sm) * var(--u)); font-weight:var(--fw-bold);
  color:var(--c-navy); margin-bottom:calc(var(--sp-1) * var(--u));
}
.form__label em {
  font-style:normal; background:var(--c-pink); color:var(--c-white);
  font-size:calc(var(--fs-note) * var(--u)); border-radius:calc(4 * var(--u));
  padding:0 calc(6 * var(--u)); margin-left:calc(var(--sp-1) * var(--u));
}
.form__row input,.form__row select,.form__row textarea {
  width:100%; border:calc(2 * var(--u)) solid var(--c-line);
  border-radius:calc(var(--r-sm) * var(--u));
  padding:calc(var(--sp-2) * var(--u));
  font-size:16px;                            /* iOSの自動ズーム防止に16px固定 */
  background:var(--c-white);
}
.form__row input:focus,.form__row select:focus,.form__row textarea:focus { border-color:var(--c-blue); }
.form__privacy { font-size:calc(var(--fs-note) * var(--u)); color:var(--c-note); margin-bottom:calc(var(--sp-3) * var(--u)); }
.form__privacy a { color:var(--c-pink); text-decoration:underline; }
.form__submit {
  width:100%; cursor:pointer; border:0;
  background:var(--c-pink); color:var(--c-white);
  border-radius:calc(var(--r-pill) * var(--u));
  box-shadow:0 calc(5 * var(--u)) 0 var(--c-pink-dark);
  padding:calc(var(--sp-3) * var(--u));
  font-size:calc(var(--fs-lg) * var(--u)); font-weight:var(--fw-black);
}
.form__status {
  margin-top:calc(var(--sp-2) * var(--u)); text-align:center;
  font-size:calc(var(--fs-sm) * var(--u)); font-weight:var(--fw-bold); color:var(--c-navy);
  min-height:calc(var(--fs-sm) * var(--u) * 1.6);
}

/* ---------- フッター ---------- */
.foot {
  background:var(--c-navy); color:var(--c-white); text-align:center;
  padding:calc(var(--sp-6) * var(--u)) calc(var(--gutter) * var(--u));
}
.foot__logo { font-size:calc(var(--fs-lg) * var(--u)); font-weight:var(--fw-black); letter-spacing:.06em; }
.foot__addr { font-size:calc(var(--fs-note) * var(--u)); margin-top:calc(var(--sp-2) * var(--u)); opacity:.9; }
.foot__links { margin:calc(var(--sp-3) * var(--u)) 0; font-size:calc(var(--fs-sm) * var(--u)); }
.foot__links a { margin:0 calc(var(--sp-2) * var(--u)); text-decoration:underline; }
.foot__copy { font-size:calc(var(--fs-note) * var(--u)); opacity:.7; }

/* ---------- 追従CTA ---------- */
.fixed-cta {
  position:fixed; left:0; right:0; bottom:0; z-index:var(--z-fixed);
  display:grid; grid-template-columns:1fr 1fr; gap:6px;
  background:rgba(255,255,255,.96); border-top:1px solid var(--c-line);
  padding:8px 10px calc(8px + env(safe-area-inset-bottom));
}
.fixed-cta__tel,.fixed-cta__form {
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  border-radius:10px; font-weight:var(--fw-black); line-height:1.15;
}
.fixed-cta__tel {
  background:var(--c-white); border:2px solid var(--c-navy); color:var(--c-navy);
}
.fixed-cta__label { font-size:11px; font-weight:var(--fw-bold); }
.fixed-cta__num { font-size:19px; letter-spacing:var(--ls-tight); }
.fixed-cta__form {
  background:var(--c-pink); color:var(--c-white); font-size:17px;
  box-shadow:0 3px 0 var(--c-pink-dark);
}
