/* 共通の初期化・タイポグラフィ。直接編集する公開CSS。 */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; scroll-padding-top: var(--alice-anchor-offset); }

body {
  margin: 0; color: var(--alice-color-text); background: var(--alice-color-surface);
  font-family: var(--alice-font-family); font-size: var(--alice-font-body);
  font-weight: var(--alice-weight-normal); line-height: var(--alice-leading-body);
  /* 日本語は字詰め・禁則処理・和欧間隔を共通指定する。 */
  font-feature-settings: "palt" 1;
  line-break: strict;
  word-break: normal;
  text-autospace: normal;
  -webkit-font-smoothing: antialiased; overflow-wrap: anywhere;
}

@supports (word-break: auto-phrase) {
body { word-break: auto-phrase; }
}

h1, h2, h3, h4, p, ul, ol { margin: 0; }

h1, h2, h3, h4 { font-weight: var(--alice-weight-medium); line-height: var(--alice-leading-heading); letter-spacing: var(--alice-tracking-heading); text-wrap: pretty; }

h1 { font-size: var(--alice-font-h1); }

h2 { font-size: var(--alice-font-h2); }

h3 { font-size: var(--alice-font-h3); }

h4 { font-size: var(--alice-font-h4); }

p + p { margin-top: var(--alice-stack-gap); }

a { color: inherit; text-decoration: none; }

img { max-width: 100%; height: auto; display: block; }

a, button, input, textarea, select, summary { -webkit-tap-highlight-color: transparent; }

:focus-visible { outline: var(--alice-focus-width) solid var(--alice-color-focus); outline-offset: var(--alice-focus-offset); }

.section { padding-block: var(--alice-section-space); }

.kicker { font-family: var(--alice-font-family-latin); font-size: var(--alice-font-caption); line-height: var(--alice-leading-label); letter-spacing: var(--alice-tracking-eyebrow); color: var(--alice-color-action); font-weight: var(--alice-weight-bold); margin-bottom: var(--alice-space-16); }

.lead { font-size: var(--alice-font-lead); line-height: var(--alice-leading-body); margin-bottom: var(--alice-space-24); }

.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

.skip-link { position: fixed; left: var(--alice-space-20); top: -100%; background: var(--alice-color-surface); padding: var(--alice-space-12); z-index: var(--alice-z-skip); border-radius: var(--alice-radius-control); }

.skip-link:focus { top: var(--alice-space-12); }

body.admin-bar { --alice-admin-offset: var(--alice-admin-height); }

@media (max-width: 1199px) {
html:not(.alice-js) .site-header { position: static; }
}

@media (max-width: 767px) {
.section-heading { display: block; margin-bottom: var(--alice-space-32); }
.section-heading > p, .section-heading > .text-link { margin-top: var(--alice-space-24); }
}

@media (max-width: 782px) {
body.admin-bar { --alice-admin-offset: var(--alice-admin-height-mobile); }
}

@media (max-width: 600px) {
body.admin-bar { --alice-admin-offset: 0px; }
}

@media (prefers-reduced-motion: reduce) {
html { scroll-behavior: auto; }
*, *::before, *::after { transition: none !important; animation: none !important; }
}

/* トップページは設備写真を主とする構成にする。 */
.section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:var(--alice-space-40); margin-bottom:var(--alice-space-40); }

.section-heading > p, .section-heading > div + div { max-width:var(--alice-width-aside); font-size:var(--alice-font-body); }

.section-heading .text-link { margin-top:var(--alice-space-16); }

@media (max-width: 767px) {
.section-heading { display:block; margin-bottom:var(--alice-space-32); }
.section-heading > p, .section-heading > div + div, .section-heading > .text-link { margin-top:var(--alice-space-24); }
}

@media (max-width: 1199px) {
/* JavaScript無効時も子リンクへ到達できるようにする。 */
  html:not(.alice-js) #primary-nav .nav-submenu { display: block; }
html:not(.alice-js) #primary-nav .nav-submenu-toggle { display: none; }
}

/* 問い合わせボタンは青地・白文字を使い、通常・ホバー・フォーカスで可読性を保つ。 */
/* 後読みの共通 .action-link / a.button より詳細な指定とし、通常時の青を維持する。 */
a.button-inquiry.action-link, #primary-nav a.nav-contact.button-inquiry {
  background: var(--alice-color-action-hover);
  color: var(--alice-color-inverse);
  border: var(--alice-border-width) solid var(--alice-color-action-hover);
  border-radius: var(--alice-radius-button);
  box-shadow: var(--alice-shadow-none);
  padding: var(--alice-space-16) var(--alice-space-32);
}

a.button-inquiry::after, #primary-nav a.nav-contact.button-inquiry::after { content: none; }

a.button-inquiry:hover, a.button-inquiry:focus-visible,
#primary-nav a.nav-contact.button-inquiry:hover, #primary-nav a.nav-contact.button-inquiry:focus-visible {
  background: var(--alice-color-deep);
  color: var(--alice-color-inverse);
  border-color: var(--alice-color-deep);
  text-decoration: none;
}
