/* =========================================================
   ベース — リセット / タイポ / アクセシビリティ
   ========================================================= */
*,*::before,*::after { margin:0; padding:0; box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body {
  background:#5b6470; color:var(--c-text);
  font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic","Meiryo",sans-serif;
  font-weight:var(--fw-normal); line-height:var(--lh-base);
  font-feature-settings:"palt";              /* 日本語の約物アキを詰める */
  -webkit-font-smoothing:antialiased;
}
img,svg { display:block; max-width:100%; }
button,input,select,textarea { font:inherit; color:inherit; }
a { color:inherit; text-decoration:none; }
table { border-collapse:collapse; }

.lp {
  max-width:750px; margin:0 auto; background:var(--c-white); overflow-x:hidden;
  padding-bottom:calc(var(--fixed-cta-h) + env(safe-area-inset-bottom));
}
/* 画像への width:100% は .lp 配下全体に当てる。
   特定クラスだけに書くと、書き忘れたブロックが750pxのまま画面外へはみ出す */
.lp img { width:100%; height:auto; }

.sec { display:block; }

/* ---- アクセシビリティ ---- */
:focus-visible { outline:var(--focus-w) solid var(--focus-c); outline-offset:var(--focus-offset); border-radius:2px; }
:focus:not(:focus-visible) { outline:none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition-duration:.001ms !important; animation-duration:.001ms !important; }
}
.skip-link {
  position:absolute; left:8px; top:-60px; z-index:100;
  background:var(--c-navy); color:var(--c-white); padding:10px 16px;
  border-radius:6px; font-size:14px; font-weight:var(--fw-bold);
  transition:top var(--dur) var(--ease);
}
.skip-link:focus { top:8px; }

/* 主要な操作要素は最小48px（電話が主CVなので余裕を持たせる） */
.cta__tel,.cta__form,.head__tel,.fixed-cta__tel,.fixed-cta__form,
.form__submit,.faq__item summary { min-height:var(--tap-min); }

a,button { transition:filter var(--dur) var(--ease), transform var(--dur) var(--ease); }
@media (hover:hover) {
  .cta__tel:hover,.cta__form:hover,.form__submit:hover,
  .fixed-cta__tel:hover,.fixed-cta__form:hover { filter:brightness(1.07); }
}
.cta__tel:active,.cta__form:active,.form__submit:active,
.fixed-cta__tel:active,.fixed-cta__form:active { transform:translateY(2px); filter:brightness(.96); }

/* ---- 日本語の改行を自然にする ----
   ブラウザは日本語を1文字単位で折り返すため、行末に1〜3文字だけ残る。
   auto-phrase で文節境界、balance で行長を均等化する。 */
h1,h2,h3,.faq__item summary,.cta__lead,.form__ttl,.company__ttl,.faq__ttl {
  word-break:auto-phrase; text-wrap:balance;
}
p,dd,td,.faq__a { word-break:auto-phrase; text-wrap:pretty; }

.note {
  font-size:calc(var(--fs-note) * var(--u)); line-height:var(--lh-note);
  color:var(--c-note);
  padding:calc(var(--sp-2) * var(--u)) calc(var(--gutter) * var(--u)) calc(var(--sp-4) * var(--u));
}
