/* ページ固有の表示。直接編集する公開CSS。 */
button, input, textarea, select { font: inherit; }

button { cursor: pointer; }

.hero-intro { font-size: var(--alice-font-body); max-width: var(--alice-width-intro); margin-top: var(--alice-space-24); }

/* お問い合わせ完了画面は案内と戻るボタンを中央にそろえる。
   共通の .empty-state（未掲載・検索結果なし）は変更しない。 */
.contact-thanks {
  width:100%;
  max-width:var(--alice-width-reading);
  margin-inline:auto;
  text-align:center;
}

/* 404の説明と戻るリンクを中央へ置く。 */
.not-found-content { display: flex; flex-direction: column; align-items: center; gap: var(--alice-space-32); text-align: center; }

.not-found-content p { max-width: var(--alice-width-reading); line-height: var(--alice-leading-reading); }

.reading { max-width: var(--alice-width-reading); }

.policy-content .reading { width: 100%; max-width: none; }

.content-section { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--alice-space-24); padding: var(--alice-space-32) 0 var(--alice-space-48); border-bottom: var(--alice-border-width) solid var(--alice-color-border); }

.content-section h2 { font-size: var(--alice-font-h3); margin-bottom: var(--alice-heading-gap); }

.content-section p { font-size: var(--alice-font-body); line-height: var(--alice-leading-reading); }

/* 企業理念の段落は罫線を使わず余白で区切る。 */
.philosophy-content .content-section { padding: 0; border-bottom: 0; }

.philosophy-content .content-section + .content-section { margin-top: var(--alice-space-80); }

.philosophy-content .content-section h2 { font-size: var(--alice-font-h3); line-height: var(--alice-leading-heading); }

input::placeholder, textarea::placeholder { color: var(--alice-color-muted); opacity: 1; }

/* お知らせのタイトルと公開日はヒーロー直下にまとめる。 */
.news-article-header { margin-bottom: var(--alice-space-40); }

.news-article-title { font-size: var(--alice-font-h2); margin-bottom: var(--alice-space-24); overflow-wrap:anywhere; }

.news-article-header .article-date { font-size: var(--alice-font-small); color: var(--alice-color-muted); }

.article-image { margin: 0 auto var(--alice-space-40); border-radius: var(--alice-radius-card); }

.article-content > h2 { font-size: var(--alice-font-h3); margin: var(--alice-space-40) 0 var(--alice-space-24); }

.article-content > p, .article-content > ul, .article-content > ol { max-width: var(--alice-width-reading); }

.article-content > ul, .article-content > ol { padding-left: var(--alice-space-24); margin-block: var(--alice-space-16); }

.article-content table { width: 100%; border-collapse: collapse; font-size: var(--alice-font-small); }

.article-content td, .article-content th { padding: var(--alice-space-12); border-bottom: var(--alice-border-width) solid var(--alice-color-border); text-align: left; }

/* 前後のお知らせは実際の記事名を付けて表示する。 */
.news-article-navigation { max-width:var(--alice-width-reading); display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-block:var(--alice-border-width) solid var(--alice-color-border); }

.news-article-navigation-link { display:flex; align-items:center; min-width:0; gap:var(--alice-space-20); padding:var(--alice-space-32) var(--alice-space-20); color:var(--alice-color-text); text-decoration:none; transition:background var(--alice-motion-normal) var(--alice-motion-ease),color var(--alice-motion-normal) var(--alice-motion-ease); }

.news-article-navigation-link--next { justify-content:flex-end; text-align:right; border-left:var(--alice-border-width) solid var(--alice-color-border); }


.news-article-navigation-copy { display:flex; flex-direction:column; min-width:0; gap:var(--alice-space-8); }

.news-article-navigation-label { font-size:var(--alice-font-small); font-weight:var(--alice-weight-medium); line-height:var(--alice-leading-heading); }

.news-article-navigation-title { font-size:var(--alice-font-body); font-weight:var(--alice-weight-normal); line-height:var(--alice-leading-heading); overflow-wrap:anywhere; }

.news-article-navigation-link:hover, .news-article-navigation-link:focus-visible { color:var(--alice-color-action); background:var(--alice-color-surface-alt); }

.news-article-navigation-link:focus-visible { outline:var(--alice-focus-width) solid var(--alice-color-action); outline-offset:calc(-1 * var(--alice-focus-width)); }

.news-article-navigation--single { grid-template-columns:minmax(0,1fr); justify-items:center; }

.news-article-navigation--single .news-article-navigation-link { width:100%; max-width:var(--alice-width-reading); }

.news-article-navigation--single .news-article-navigation-link--next { border-left:0; }

@media (max-width: 767px) {
.news-article-navigation { grid-template-columns:minmax(0,1fr); }
.news-article-navigation-link { gap:var(--alice-space-16); padding:var(--alice-space-24) var(--alice-space-16); }
.news-article-navigation-link--next { border-left:0; border-top:var(--alice-border-width) solid var(--alice-color-border); }
.news-article-navigation--single .news-article-navigation-link--next { border-top:0; }
}

/* 採用フォームの説明には余白を残し、先頭の入力欄の上線を除く。 */
.recruit-application-page .hero-intro { margin-bottom: var(--alice-space-32); }

.contact-copyright { padding-block: var(--alice-space-24); border-top: var(--alice-border-width) solid var(--alice-color-border); color: var(--alice-color-muted); font-size: var(--alice-font-caption); text-align: center; }

.post-password-form p:last-child { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--alice-space-16); }

.post-password-form label { display: grid; gap: var(--alice-space-8); width: 100%; max-width: var(--alice-width-aside); }

.post-password-form input { min-height: var(--alice-control-height); padding: var(--alice-space-12) var(--alice-space-16); border: var(--alice-border-width) solid var(--alice-color-control-border); border-radius: var(--alice-radius-control); background: var(--alice-color-surface); color: var(--alice-color-text); font: inherit; }

.post-password-form input[type="password"] { width: 100%; min-width: 0; }

.post-password-form input[type="submit"] { cursor: pointer; font-weight: var(--alice-weight-bold); }

.post-password-form input[type="submit"]:hover { border-color: var(--alice-color-action); color: var(--alice-color-action); }

@media (max-width: 1199px) {
.menu-open { overflow: hidden; }
}

@media (max-width: 767px) {
.contact-copyright { border-top:0; }
.content-section { grid-template-columns: minmax(0, 1fr); gap: var(--alice-space-16); padding: var(--alice-space-24) 0 var(--alice-space-32); }
}

/* 初期表示は顧客提供写真を使用し、文章の可読性を確保する。 */
.home-hero {
  position:relative; isolation:isolate; display:flex; align-items:stretch;
  width:100%; min-height:clamp(40rem,78svh,55rem); overflow:hidden;
  background:var(--alice-color-deep); color:var(--alice-color-inverse);
}

.hero-media { position:absolute; inset:0; z-index:var(--alice-z-base); pointer-events:none; }

.hero-media img { display:block; width:100%; height:100%; object-fit:cover; object-position:center 50%; }

.hero-copy-panel { width:min(65%,var(--alice-width-intro)); padding:var(--alice-space-40); }

.hero-copy {
  position:relative; z-index:var(--alice-z-content); display:flex; flex-direction:column;
  align-items:flex-start; justify-content:center; min-height:inherit;
  width:calc(100% - var(--alice-gutter) * 2); max-width:var(--alice-width-wide);
  margin-inline:auto; padding-block:var(--alice-space-96);
}

.hero-copy .kicker { color:var(--alice-color-inverse); font-size:var(--alice-font-small); font-weight:var(--alice-weight-normal); margin-bottom:var(--alice-space-32); }

.home-hero h1 { font-size:clamp(var(--alice-font-h1),5vw,calc(var(--alice-font-display) + var(--alice-space-24))); line-height:var(--alice-leading-display); text-wrap:pretty; }

.hero-description { max-width:34rem; font-size:var(--alice-font-body); line-height:var(--alice-leading-body); margin-top:var(--alice-space-32); }

.hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:var(--alice-space-24); margin-top:var(--alice-space-40); }

.home-hero :focus-visible { outline-color:var(--alice-color-inverse); }

/* 事業紹介は線型リンクと画面端へ広がる写真で構成する。 */
.home-services { overflow-x:clip; background:var(--alice-color-surface-alt); }

.services-split {
  display:grid; grid-template-columns:minmax(0,3fr) minmax(0,2fr);
  grid-template-areas:"heading image" "summary image" "links image";
  column-gap:var(--alice-column-gap); row-gap:var(--alice-space-24); align-items:start;
}

.services-intro { grid-area:heading; min-width:0; }

.services-intro h2 { margin-bottom:0; }

.services-summary { grid-area:summary; max-width:var(--alice-width-aside); color:var(--alice-color-muted); }

.services-content { grid-area:links; min-width:0; }

.service-row {
  display:flex; align-items:center; justify-content:space-between; gap:var(--alice-space-16);
  min-height:var(--alice-target-min); padding:var(--alice-space-20) var(--alice-space-24);
  background:var(--alice-color-surface); border:var(--alice-border-width) solid var(--alice-color-border);
  border-radius:var(--alice-radius-card);
  transition:background var(--alice-motion-normal) var(--alice-motion-ease),border-color var(--alice-motion-normal) var(--alice-motion-ease);
}

.service-row:hover, .service-row:focus-visible { background:var(--alice-color-action-surface-hover); border-color:var(--alice-color-action); }

.service-row-copy { display:block; min-width:0; }

.service-row-title { display:block; font-size:var(--alice-font-h4); font-weight:var(--alice-weight-medium); line-height:var(--alice-leading-heading); }

.service-row-description { display:block; margin-top:var(--alice-space-4); color:var(--alice-color-muted); font-size:var(--alice-font-small); line-height:var(--alice-leading-label); }

.service-row-arrow { flex-shrink:0; }

/* 会社・事業一覧は同じ線型リンクを使う。ホバー操作は共通のalice-hover-linkに委譲する。 */
.home-line-list { display:grid; grid-template-columns:minmax(0,1fr); gap:0; }

.home-line-link {
  display:flex; align-items:center; justify-content:space-between; min-width:0;
  gap:var(--alice-space-16); min-height:var(--alice-target-min);
  padding:var(--alice-space-20) var(--alice-space-8);
  background:transparent; color:var(--alice-color-text);
  border-bottom:var(--alice-border-width) solid var(--alice-color-border);
}

.home-line-link:first-child { border-top:var(--alice-border-width) solid var(--alice-color-border); }

.services-image {
  grid-area:image; position:relative; min-width:0; align-self:center; height:clamp(calc(var(--alice-space-96) * 3),48vw,calc(var(--alice-space-96) * 7));
  overflow:hidden; border-radius:var(--alice-radius-image);
  margin-right:min(calc(var(--alice-gutter) * -1),calc((var(--alice-width-site) - 100vw) / 2));
}

.services-image img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }

.home-expertise { background:var(--alice-color-surface); }

.expertise-grid { display:grid; grid-template-columns:repeat(var(--alice-grid-columns),minmax(0,1fr)); gap:var(--alice-grid-gap); }

.expertise-grid > div:first-child { grid-column:1 / 7; }

.expertise-detail { grid-column:8 / -1; }

.expertise-lead { font-size:var(--alice-font-lead); margin-block:var(--alice-space-32) var(--alice-space-16); }

.home-company-intro > p:not(.kicker) { margin-top:var(--alice-space-20); max-width:34rem; }

.home-company-intro .expertise-lead { margin-top:var(--alice-space-32); }

.home-company-directory { align-content:start; }

.solution-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--alice-space-12); }

.home-solutions .solution-choice .service-row-title { font-size:var(--alice-font-body); }

.home-facilities { background:var(--alice-color-surface-alt); color:var(--alice-color-text); }

.facility-index { display:grid; grid-template-columns:minmax(0,1fr); gap:var(--alice-space-48); align-items:stretch; }

.facility-index > div { display:flex; flex-direction:column; min-width:0; height:100%; padding:var(--alice-space-24); background:var(--alice-color-surface); border-radius:var(--alice-radius-card); }

.facility-index h3 { font-size:var(--alice-font-lead); margin-bottom:var(--alice-space-24); }

/* 施設・設備のリンクは、長い機器名でも読める幅と押しやすい高さを確保する。 */
.facility-index > div > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:minmax(var(--alice-space-64),auto); column-gap:var(--alice-space-16); }

.line-link { display:flex; align-items:center; min-height:var(--alice-button-height); padding-block:var(--alice-space-12); border-bottom:var(--alice-border-width) solid var(--alice-color-control-border); font-size:var(--alice-font-body); }

.line-link:hover { text-decoration:underline; text-underline-offset:var(--alice-space-4); }

.facility-link { gap:var(--alice-space-12); }
.facility-index .facility-link { min-height:var(--alice-space-64); padding-block:var(--alice-space-16); }

.facility-link::after {
  content:""; display:block; width:var(--alice-link-arrow-size, var(--alice-space-16)); height:var(--alice-link-arrow-size, var(--alice-space-16));
  margin-left:auto; flex-shrink:0;
}


/* 公開中の施工実績を表示し、0件では共通の案内へ切り替える。 */
.home-works-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--alice-space-32); }

.home-work-card { display:block; min-width:0; }

.home-work-card img { display:block; width:100%; aspect-ratio:4 / 3; object-fit:cover; background:var(--alice-color-surface-alt); }

.client-logo { display:flex; align-items:center; justify-content:center; min-height:calc(var(--alice-space-80) + var(--alice-space-64)); padding:var(--alice-space-32); margin:0 0 var(--alice-space-24); background:var(--alice-color-surface); border:var(--alice-border-width) solid var(--alice-color-border); border-radius:var(--alice-radius-image); }

.client-logo--article { max-width:var(--alice-width-reading); margin-bottom:var(--alice-space-40); }

.work-content-section { margin-bottom:var(--alice-space-48); }

.work-content-section h2 { font-size:var(--alice-font-h3); margin-bottom:var(--alice-space-24); }

.work-content-section ul { padding-left:var(--alice-space-24); margin-top:var(--alice-space-24); }

.work-photo { margin:var(--alice-space-32) 0; }

.work-photo-placeholder { padding:var(--alice-space-64) var(--alice-space-24); background:var(--alice-color-surface-alt); color:var(--alice-color-muted); text-align:center; border:var(--alice-border-width) solid var(--alice-color-border); border-radius:var(--alice-radius-image); }

.work-photo figcaption { margin-top:var(--alice-space-8); color:var(--alice-color-muted); }

.home-work-info { border-top:var(--alice-border-width) solid var(--alice-color-control-border); padding-top:var(--alice-space-20); margin-top:var(--alice-space-16); }

.home-work-info h3 { font-size:var(--alice-font-h4); font-weight:var(--alice-weight-medium); }

.home-work-info p { font-size:var(--alice-font-small); color:var(--alice-color-muted); margin-top:var(--alice-space-12); }

/* カード全体をリンクとし、ホバー・キーボードフォーカス時はテキストリンクの色も変える。 */
.home-work-card:hover h3, .home-work-card:focus-visible h3 { color:var(--alice-color-action); }

.home-work-card:is(:hover, :focus-visible) .text-link {
  color:var(--alice-color-action-hover);
  border-color:var(--alice-color-action-hover);
}

@media (max-width: 1199px) {
.hero-description br { display:none; }
.hero-actions { gap:var(--alice-space-16); }
.facility-index { gap:var(--alice-space-32); }
.home-works-grid { gap:var(--alice-space-24); }
.expertise-detail { grid-column:7 / -1; }
.solution-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 959px) {
.facility-index { grid-template-columns:1fr; }
.home-works-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.services-split { grid-template-columns:minmax(0,1fr); grid-template-areas:"heading" "summary" "links" "image"; row-gap:var(--alice-space-24); }
.services-image { margin-top:var(--alice-space-8); margin-right:calc(var(--alice-gutter) * -1); height:auto; }
.services-image img { position:static; height:auto; aspect-ratio:16 / 9; }
.expertise-grid { display:block; }
.expertise-detail { margin-top:var(--alice-space-32); }
}

@media (max-width: 767px) {
.home-hero { min-height:clamp(36rem,80svh,50rem); flex-direction:row; }
.hero-media { position:absolute; inset:0; width:100%; height:100%; }
.hero-media img { object-position:60% center; }
.hero-media::after { content:""; position:absolute; inset:0; background:linear-gradient(to bottom, color-mix(in srgb, var(--alice-color-deep) 25%, transparent), color-mix(in srgb, var(--alice-color-deep) 78%, transparent)); }
.hero-copy { min-height:inherit; width:100%; margin:0; padding:var(--alice-space-32) var(--alice-gutter) var(--alice-space-80); justify-content:center; }
.hero-copy-panel { width:100%; padding:0; background:transparent; }
.hero-copy .kicker { margin-bottom:var(--alice-space-20); }
.home-hero h1 { font-size:clamp(2rem,9vw,var(--alice-font-display)); }
.hero-description { margin-top:var(--alice-space-24); }
.hero-actions { margin-top:var(--alice-space-32); width:100%; justify-content:center; }
.expertise-grid { display:block; }
.home-works-grid { grid-template-columns:1fr; }
.service-row { padding:var(--alice-space-16); }
.home-line-link { padding-block:var(--alice-space-16); }
.home-line-link .service-row-title { font-size:var(--alice-font-body); }
.services-split { grid-template-areas:"heading" "image" "summary" "links"; }
.services-image { margin-top:0; }
.expertise-detail { margin-top:var(--alice-space-32); }
.expertise-lead { margin-top:var(--alice-space-24); }
/* 外側の20px余白とカード内余白が重なるため、このセクションだけスマホで余白を抑える。 */
.home-facilities .facility-content.shell { width:calc(100% - var(--alice-space-24)); }
.facility-index { gap:var(--alice-space-24); }
.facility-index > div { padding:var(--alice-space-16); }
.facility-index > div > div { grid-template-columns:minmax(0,1fr); grid-template-rows:none; }
.home-work-card + .home-work-card { margin-top:var(--alice-space-24); }
}

@media (max-width: 479px) {
.solution-grid { grid-template-columns:1fr; }
}

.content-section h2 { font-weight: var(--alice-weight-medium); }

.reading { width: 100%; min-width: 0; }

.reading .content-section:first-child { padding-top: 0; }

@media (max-width: 1199px) {
.hero-meta { display: none; }
}

.menu-label-close { display: none; }

/* 会社概要は中央の1列と意味のある表で構成する。 */
.company-overview { padding-block: var(--alice-section-space); }

.company-overview-section { padding-bottom: var(--alice-space-64); margin-bottom: var(--alice-space-64); }

.company-overview-section > h2 { font-size: var(--alice-font-h3); margin-bottom: var(--alice-space-32); }

.company-section-intro { max-width: var(--alice-width-intro); margin-bottom: var(--alice-space-24); }

.company-info-table { border-collapse: collapse; width: 100%; table-layout: fixed; }

.company-info-table tr { border-bottom: var(--alice-border-width) solid var(--alice-color-border); }

.company-info-table tbody tr:last-child { border-bottom: 0; }

.company-info-table th, .company-info-table td { padding: var(--alice-space-24) var(--alice-space-32); text-align: left; vertical-align: top; line-height: var(--alice-leading-body); }

.company-info-table th { width: 28%; background: var(--alice-color-surface-alt); font-weight: var(--alice-weight-medium); }

.company-info-table td { overflow-wrap: anywhere; }

.company-info-list { list-style: none; padding: 0; margin: 0; border-top: var(--alice-border-width) solid var(--alice-color-border); }

.company-info-list li { padding: var(--alice-space-20) var(--alice-space-8); border-bottom: var(--alice-border-width) solid var(--alice-color-border); }

.company-more { margin-bottom: 0; border-bottom: 0; padding-bottom: 0; }

@media (max-width: 767px) {
.company-overview-section { margin-bottom: var(--alice-space-40); padding-bottom: var(--alice-space-40); }
.company-info-table th, .company-info-table td { padding: var(--alice-space-16); }
.company-info-table th { width: 34%; }
}

/* 強みは代表の受賞写真と文章中心のセクションで構成する。 */
.strengths-content { padding-block: var(--alice-section-space); }

.strengths-award { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--alice-space-64); align-items: center; }

.strengths-award-photo { margin: 0; min-width: 0; }

.strengths-award-photo img { display: block; width: 100%; height: auto; border-radius: var(--alice-radius-image); }

.strengths-award-photo figcaption { margin-top: var(--alice-space-12); font-size: var(--alice-font-small); line-height: var(--alice-leading-label); color: var(--alice-color-muted); }

.strengths-award-copy { min-width: 0; }

.strengths-award-copy h2 { font-size: var(--alice-font-h3); margin-bottom: var(--alice-space-32); }

.strengths-award-copy > p:not(.kicker) { line-height: var(--alice-leading-reading); }

.strengths-award-copy > p:not(.kicker) + p { margin-top: var(--alice-space-24); }

.strengths-principles { padding-top: var(--alice-section-space); }

.strengths-principles-copy { max-width: var(--alice-width-reading); margin-inline: auto; counter-reset: alice-strength; }

.strengths-principles-copy > h2 { font-size: var(--alice-font-h3); margin-bottom: var(--alice-space-32); }

.strengths-principle { padding-block: var(--alice-space-32); border-top: var(--alice-border-width) solid var(--alice-color-border); counter-increment: alice-strength; }

.strengths-principle h3 {
  position: relative; isolation: isolate; display: flex; align-items: center;
  min-height: var(--alice-space-120);
  padding-inline: var(--alice-space-40) var(--alice-space-16);
  margin-bottom: var(--alice-space-16); font-size: var(--alice-font-h3);
}

.strengths-principle h3::before {
  content: counter(alice-strength, decimal-leading-zero);
  position: absolute; z-index: calc(-1 * var(--alice-z-decor)); left: 0; top: 50%;
  transform: translateY(-50%); font-family: var(--alice-font-family-latin);
  font-size: var(--alice-space-120); font-weight: var(--alice-weight-normal);
  line-height: var(--alice-leading-none); color: var(--alice-color-action);
  opacity: 0.10; pointer-events: none; user-select: none;
}

.strengths-principle-body p { line-height: var(--alice-leading-reading); }

.strengths-principle-body p + p { margin-top: var(--alice-space-24); }

@media (max-width: 767px) {
.strengths-award { grid-template-columns: minmax(0, 1fr); gap: var(--alice-space-32); }
.strengths-award-photo { max-width: var(--alice-width-intro); }
.strengths-principles { padding-top: var(--alice-space-48); }
.strengths-principle { padding-block: var(--alice-space-24); }
.strengths-principle h3 { min-height: var(--alice-space-96); }
.strengths-principle h3::before { font-size: var(--alice-space-48); }
}

/* 代表メッセージとアクセスは専用の本文レイアウトを使う。 */
.representative-layout { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--alice-space-64); padding-block: var(--alice-section-space); align-items: start; }

.representative-photo { max-width: var(--alice-width-search-min); margin: 0 auto; }

.representative-photo img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; }

.representative-content { min-width: 0; }

.representative-message-heading { display: none; }

.representative-message p { margin-bottom: var(--alice-space-24); line-height: var(--alice-leading-body); }

.representative-signature { margin-top: var(--alice-space-40); text-align: right; font-weight: var(--alice-weight-normal); }

.representative-profile { padding-top: var(--alice-space-32); }

.representative-profile h2 { font-size: var(--alice-font-body); font-weight: var(--alice-weight-bold); margin-bottom: var(--alice-space-20); }

.representative-profile p { margin-top: var(--alice-space-16); line-height: var(--alice-leading-body); }

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

.access-location h2 { font-size: var(--alice-font-h3); margin-bottom: var(--alice-space-16); }

.access-location p { margin-bottom: var(--alice-space-16); }

.access-location .access-station { margin-bottom: var(--alice-space-32); }

.access-map iframe { display: block; width: 100%; height: min(60vw, 32rem); min-height: 20rem; border: 0; }

.access-content .reading { padding-top: var(--alice-space-48); }

@media (max-width: 1199px) {
.representative-layout { gap: var(--alice-space-40); }
}

@media (max-width: 767px) {
.representative-layout { grid-template-columns: 1fr; gap: var(--alice-space-40); }
.representative-visual { max-width: var(--alice-width-intro); }
/* スマホでプロフィールとメッセージ本文の境界を明確にする。 */
  .representative-content { border-top: var(--alice-border-width) solid var(--alice-color-border); padding-top: var(--alice-space-32); }
.representative-message-heading { display: block; margin-bottom: var(--alice-space-24); font-size: var(--alice-font-body); font-weight: var(--alice-weight-bold); line-height: var(--alice-leading-heading); }
.access-map iframe { min-height: 18rem; }
}

/* サービスと相談詳細で書体とFAQを共有する。 */
.detail-content { padding-block:var(--alice-section-space); }

.detail-editorial { min-width:0; }

.detail-editorial p { line-height:var(--alice-leading-reading); }

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

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

.detail-editorial h4 { font-size:var(--alice-font-h4); margin-block:var(--alice-space-24) var(--alice-space-12); }

.detail-editorial .kicker { color:var(--alice-color-action); }

.detail-section { margin-bottom:var(--alice-section-space); }

.detail-section-heading { margin-bottom:var(--alice-space-32); }

.detail-section-heading h2 { margin-top:var(--alice-space-12); }

.detail-section > p { max-width:var(--alice-width-reading); margin-bottom:var(--alice-space-32); }

.detail-faq { max-width:var(--alice-width-reading); margin-inline:auto; }

/* お困りごと・施設・設備は相談者の関心に沿う6セクションで構成する。 */
.detail-consultation-content { padding-block:0; }

.detail-consultation-content > :not(.detail-consultation) { max-width:var(--alice-width-reading); margin-inline:auto; padding-inline:var(--alice-gutter); }

.detail-consultation > .detail-band { padding-block:var(--alice-section-space); background:var(--alice-color-surface); }

.detail-consultation > .detail-band:nth-child(even) { background:var(--alice-color-surface-alt); }

.detail-consultation .detail-section { margin-bottom:0; }

.detail-consultation .detail-section-heading { text-align:center; }

.detail-concern-list { max-width:var(--alice-width-reading); margin-inline:auto; padding-left:0; list-style:none; }

.detail-concern-list li { position:relative; padding-block:var(--alice-space-20); padding-left:var(--alice-space-32); border-bottom:var(--alice-border-width) solid var(--alice-color-border); line-height:var(--alice-leading-reading); }

.detail-concern-list li::before { content:""; position:absolute; left:var(--alice-space-4); top:calc(var(--alice-space-20) + var(--alice-space-8)); width:var(--alice-space-8); height:var(--alice-space-12); border-right:var(--alice-border-emphasis) solid var(--alice-color-action); border-bottom:var(--alice-border-emphasis) solid var(--alice-color-action); transform:rotate(45deg); }

.detail-concern-list li:first-child { border-top:var(--alice-border-width) solid var(--alice-color-border); }

.detail-response-list > article { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,3fr); gap:var(--alice-space-48); align-items:start; padding-block:var(--alice-space-40); border-top:var(--alice-border-width) solid var(--alice-color-border); }

.detail-response-list > article:last-child { border-bottom:var(--alice-border-width) solid var(--alice-color-border); }

.detail-response-list h3 { font-size:var(--alice-font-lead); line-height:var(--alice-leading-heading); text-wrap:balance; }

/* 詳細ページの工程名と要約はPC・スマホで共通定義を使う。 */
.detail-consultation .detail-request-guide .detail-section-heading { text-align:left; margin-bottom:var(--alice-space-24); }

.detail-process-layout { display:grid; grid-template-columns:minmax(0,1fr); gap:var(--alice-space-40); }

.detail-process {
  position:relative; display:grid; grid-template-columns:repeat(6,minmax(0,1fr));
  list-style:none; margin:0; padding:0;
}

.detail-process::before {
  content:""; position:absolute; top:calc(var(--alice-space-48) / 2);
  left:calc(100% / 12); right:calc(100% / 12);
  border-top:var(--alice-border-width) solid var(--alice-color-border);
  pointer-events:none;
}

.detail-process-step {
  display:flex; flex-direction:column; align-items:center; gap:var(--alice-space-12);
  min-width:0; padding-inline:var(--alice-space-8); text-align:center;
}

.detail-process-number {
  position:relative; z-index:var(--alice-z-content);
  display:inline-flex; flex:none; align-items:center; justify-content:center;
  width:var(--alice-space-48); height:var(--alice-space-48);
  border:var(--alice-border-width) solid var(--alice-color-border);
  border-radius:var(--alice-radius-pill); background:var(--alice-color-surface);
  color:var(--alice-color-text); font-family:var(--alice-font-family-latin);
  font-size:var(--alice-font-body); font-weight:var(--alice-weight-medium);
  font-variant-numeric:tabular-nums; line-height:var(--alice-leading-none);
}

.detail-process-copy { display:grid; grid-template-columns:minmax(0,1fr); gap:var(--alice-space-8); width:100%; min-width:0; }

.detail-process-label {
  display:block; min-height:3rem;
  font-size:var(--alice-font-body); font-weight:var(--alice-weight-medium);
  line-height:var(--alice-leading-heading); overflow-wrap:anywhere;
}

.detail-process-copy .detail-process-description {
  margin:0; color:var(--alice-color-muted); font-size:var(--alice-font-small);
  line-height:var(--alice-leading-label); overflow-wrap:anywhere;
}

.detail-process-layout > .detail-action { margin-top:0; }

@media (max-width: 959px) {
.detail-process { grid-template-columns:minmax(0,1fr); gap:var(--alice-space-20); }
.detail-process::before {
    top:calc(var(--alice-space-40) / 2); bottom:calc(var(--alice-space-40) / 2);
    left:calc(var(--alice-space-40) / 2); right:auto;
    border-top:0; border-left:var(--alice-border-width) solid var(--alice-color-border);
  }
.detail-process-step {
    display:grid; grid-template-columns:var(--alice-space-40) minmax(0,1fr);
    align-items:start; gap:var(--alice-space-20); padding-inline:0; text-align:left;
  }
.detail-process-number { width:var(--alice-space-40); height:var(--alice-space-40); }
.detail-process-copy { gap:var(--alice-space-4); padding-block:var(--alice-space-4); }
.detail-process-label { min-height:0; }
.detail-process-layout { gap:var(--alice-space-32); }
}

/* 料金案内は説明文と主な操作ボタン1つに絞る。 */
.detail-consultation .detail-pricing-guide .detail-section-heading { text-align:center; }

.detail-pricing-center { text-align:center; }

.detail-pricing-description { max-width:var(--alice-width-reading); margin-inline:auto; line-height:var(--alice-leading-reading); }

@media (max-width: 767px) {
/* スマホの対応説明は見出し・本文をそれぞれ1列の幅全体で使う。 */
  .detail-response-list > article { grid-template-columns:minmax(0,1fr); gap:var(--alice-space-20); padding-block:var(--alice-space-32); }
.detail-response-list > article > :is(h3, div) { grid-column:1 / -1; min-width:0; width:100%; }
.detail-response-list > article > h3 { text-wrap:wrap; }
}

/* 事業詳細は全幅セクションと簡潔な案内リンクで構成する。 */
.detail-service-content { padding:0; }

.detail-service-content > :not(.detail-service) { max-width:var(--alice-width-reading); margin-inline:auto; padding-inline:var(--alice-gutter); }

.detail-service > :is(.service-band, .detail-recent-cases) { padding-block:var(--alice-section-space); background:var(--alice-color-surface); }

.detail-service > :is(.service-band, .detail-recent-cases):nth-child(even) { background:var(--alice-color-surface-alt); }

.detail-service .detail-section { margin-bottom:0; }

.detail-service .detail-section-heading { text-align:center; }

/* 課題紹介は写真と説明を左右交互に配置する。 */
.service-issue-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:var(--alice-space-80); }

.service-issue-card { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--alice-space-64); align-items:center; min-width:0; scroll-margin-top:calc(var(--alice-header-height) + var(--alice-space-80)); }

.service-issue-image { min-width:0; margin:0; }

.service-issue-image img { display:block; width:100%; height:auto; aspect-ratio:var(--alice-image-ratio); object-fit:cover; border-radius:var(--alice-radius-image); }

.service-issue-copy { min-width:0; }

.service-issue-card h3 { font-size:var(--alice-font-h3); margin-bottom:var(--alice-space-24); text-wrap:balance; }

.service-issue-card p { line-height:var(--alice-leading-reading); }

.service-issue-copy p + p { margin-top:var(--alice-space-16); }

.service-issue-card:nth-child(even) .service-issue-image { grid-column:2; grid-row:1; }

.service-issue-card:nth-child(even) .service-issue-copy { grid-column:1; grid-row:1; }

/* 3つの特徴は縦に並べ、番号を見出しの背面に置く。 */
.service-features-list { display:grid; grid-template-columns:minmax(0,1fr); gap:0; counter-reset:alice-feature; }

.service-features-list article { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,3fr); align-items:center; gap:var(--alice-space-48); border-top:var(--alice-border-width) solid var(--alice-color-border); padding-block:var(--alice-space-40); counter-increment:alice-feature; }

.service-features-list article:last-child { border-bottom:var(--alice-border-width) solid var(--alice-color-border); }

.service-features-list h3 { position:relative; isolation:isolate; display:flex; align-items:center; min-height:var(--alice-space-120); padding-inline:var(--alice-space-40) var(--alice-space-16); margin:0; font-size:var(--alice-font-h3); }

.service-features-list h3::before { content:counter(alice-feature,decimal-leading-zero); position:absolute; z-index:calc(-1 * var(--alice-z-decor)); left:0; top:50%; transform:translateY(-50%); font-family:var(--alice-font-family-latin); font-size:var(--alice-space-120); font-weight:var(--alice-weight-normal); line-height:var(--alice-leading-none); color:var(--alice-color-action); opacity:0.10; pointer-events:none; }

.service-features-list article > p { margin:0; }

.service-feature-copy { min-width:0; }

.service-feature-copy p { margin:0; line-height:var(--alice-leading-reading); }

.service-feature-copy p + p { margin-top:var(--alice-space-16); }

/* 関連情報のセクションは写真を使わず共通背景にする。 */
.detail-service > .service-resource-navigation { background-image:none; }

.service-resource-navigation .detail-section-heading { margin-bottom:var(--alice-space-32); }

.service-resource-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--alice-space-16); }

/* ご利用案内は設備・課題・施設の回遊リンクから分ける。 */
/* ご利用案内は説明を左、縦のリンク群を右に置く。 */
.service-request-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); gap:var(--alice-space-64); align-items:center; }

.detail-service .service-request-guide .detail-section-heading { text-align:left; margin-bottom:var(--alice-space-24); }

.service-request-copy > p { max-width:var(--alice-width-reading); line-height:var(--alice-leading-reading); }

.service-guide-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:0; }

.service-request-guide .service-guide-card { min-height:var(--alice-space-80); padding:var(--alice-space-20) var(--alice-space-24); padding-right:var(--alice-space-64); background:transparent; border:0; border-bottom:var(--alice-border-width) solid var(--alice-color-border); border-radius:var(--alice-radius-none); }

.service-request-guide .service-guide-card:first-child { border-top:var(--alice-border-width) solid var(--alice-color-border); }

.service-resource-card { position:relative; display:flex; flex-direction:column; justify-content:center; gap:var(--alice-space-12); min-width:0; min-height:var(--alice-space-120); padding:var(--alice-space-24); padding-right:var(--alice-space-64); background:var(--alice-color-surface); border:var(--alice-border-width) solid var(--alice-color-border); border-radius:var(--alice-radius-card); color:var(--alice-color-text); text-decoration:none; transition:border-color var(--alice-motion-normal) var(--alice-motion-ease),background var(--alice-motion-normal) var(--alice-motion-ease); }

.service-resource-card::after { content:""; position:absolute; right:var(--alice-space-24); top:50%; transform:translateY(-50%); width:var(--alice-link-arrow-size, var(--alice-space-16)); height:var(--alice-link-arrow-size, var(--alice-space-16)); color:var(--alice-color-action); pointer-events:none; }

.service-resource-card:hover,.service-resource-card:focus-visible { border-color:var(--alice-color-action); background:var(--alice-color-surface-alt); color:var(--alice-color-text); }

.service-resource-type { color:var(--alice-color-action); font-size:var(--alice-font-caption); font-weight:var(--alice-weight-medium); }

.service-resource-label { font-size:var(--alice-font-h4); font-weight:var(--alice-weight-medium); line-height:var(--alice-leading-heading); }

@media (max-width: 1199px) {
.service-resource-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 479px) {
.service-resource-grid { grid-template-columns:minmax(0,1fr); gap:var(--alice-space-12); }
.service-resource-card { min-height:var(--alice-space-96); padding:var(--alice-space-20); padding-right:var(--alice-space-64); }
}

.detail-service .detail-faq { padding:0; }

@media (max-width: 959px) {
.service-request-layout { grid-template-columns:minmax(0,1fr); gap:var(--alice-space-32); }
.service-issue-card { grid-template-columns:minmax(0,1fr); gap:var(--alice-space-24); }
.service-issue-card:nth-child(even) .service-issue-image,
  .service-issue-card:nth-child(even) .service-issue-copy { grid-column:auto; grid-row:auto; }
.service-features-list article { grid-template-columns:minmax(0,1fr); gap:var(--alice-space-16); padding-block:var(--alice-space-24); }
.service-features-list h3 { min-height:var(--alice-space-96); }
.service-features-list h3::before { font-size:var(--alice-space-48); }
}

@media (max-width: 767px) {
.service-issue-grid { gap:var(--alice-space-56); }
}

/* 採用タブは選択中・ホバー時の区別を明確にする。 */
.recruit-tab-intro { margin-bottom: var(--alice-space-20); }

.recruit-tab-intro h2 { font-size: var(--alice-font-h3); font-weight: var(--alice-weight-medium); margin-bottom: var(--alice-space-8); }

.recruit-tab-intro p { color: var(--alice-color-muted); line-height: var(--alice-leading-body); }

.recruit-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--alice-space-8); padding: var(--alice-space-8); border: var(--alice-border-width) solid var(--alice-color-border); border-radius: var(--alice-radius-card); background: var(--alice-color-surface-alt); margin-bottom: var(--alice-space-48); }

.recruit-tab { min-width: 0; min-height: var(--alice-space-64); padding: var(--alice-space-16) var(--alice-space-24); background: var(--alice-color-surface); border: var(--alice-border-width) solid var(--alice-color-control-border); border-radius: var(--alice-radius-button); color: var(--alice-color-muted); font-family: inherit; font-size: var(--alice-font-body); font-weight: var(--alice-weight-normal); line-height: var(--alice-leading-label); cursor: pointer; transition: background var(--alice-motion-normal) var(--alice-motion-ease), color var(--alice-motion-normal) var(--alice-motion-ease); }

.recruit-tab:hover { background: var(--alice-color-surface-alt); color: var(--alice-color-action); border-color:var(--alice-color-action); }

.recruit-tab[aria-selected="true"] { background: var(--alice-color-action); color: var(--alice-color-inverse); border-color:var(--alice-color-action); font-weight: var(--alice-weight-bold); }

.recruit-job-panel[hidden] { display: none; }

/* 採用条件の表は会社情報と配置をそろえる。 */
.recruit-content { max-width: var(--alice-width-reading); margin-inline: auto; padding-block: var(--alice-section-space); }

.recruit-section + .recruit-section { margin-top: var(--alice-space-64); }

.recruit-section h2 { font-size: var(--alice-font-h3); margin-bottom: var(--alice-space-32); }

.recruit-background p { max-width: var(--alice-width-reading); line-height: var(--alice-leading-reading); }

.recruit-background p + p { margin-top: var(--alice-space-24); }

.recruit-info-table th { width: 27%; }

.recruit-condition-list { margin: 0; padding-left: var(--alice-space-24); }

.recruit-condition-list li + li { margin-top: var(--alice-space-8); }

.recruit-entry { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: var(--alice-space-24); margin-top: var(--alice-space-48); }

.recruit-entry p { color: var(--alice-color-muted); }

@media (max-width: 767px) {
.recruit-tabs { margin-bottom: var(--alice-space-32); }
.recruit-tab { padding: var(--alice-space-12) var(--alice-space-8); font-size: var(--alice-font-small); }
.recruit-section + .recruit-section { margin-top: var(--alice-space-48); }
.recruit-section h2 { margin-bottom: var(--alice-space-24); }
.recruit-info-table th, .recruit-info-table td { display: block; width: 100%; }
.recruit-info-table th { padding-bottom: var(--alice-space-8); }
.recruit-info-table td { padding-top: var(--alice-space-8); }
.recruit-entry { gap: var(--alice-space-16); }
}

/* 空調ナレッジは独立した記事メディアの外観を使う。 */
.knowledge-site { background:var(--alice-color-surface); }

.knowledge-brand { display:flex; align-items:center; gap:var(--alice-space-12); color:var(--alice-color-text); min-width:0; }

.knowledge-brand img { flex-shrink:0; width:var(--alice-space-40); height:var(--alice-space-40); }

.knowledge-brand strong { display:block; font-size:var(--alice-font-h3); font-weight:var(--alice-weight-bold); line-height:var(--alice-leading-heading); }

.knowledge-brand small { display:block; color:var(--alice-color-muted); font-size:var(--alice-font-caption); margin-top:var(--alice-space-4); }

.knowledge-company-link { display:inline-flex; min-height:var(--alice-target-min); align-items:center; font-size:var(--alice-font-small); color:var(--alice-color-text); }

.knowledge-masthead h1 { font-size:var(--alice-font-h1); line-height:var(--alice-leading-heading); margin-bottom:var(--alice-space-24); }

.knowledge-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,3fr); gap:var(--alice-space-48); padding-block:var(--alice-space-48) var(--alice-space-80); align-items:start; }

.knowledge-main, .knowledge-sidebar { min-width:0; }

.knowledge-sidebar { position:sticky; top:var(--alice-space-24); }

.knowledge-browse > summary { display:none; list-style:none; align-items:center; justify-content:space-between; gap:var(--alice-space-16); }

.knowledge-browse > summary::-webkit-details-marker { display:none; }

.knowledge-browse-body { max-height:calc(100vh - var(--alice-space-80) - var(--alice-space-80) - var(--alice-space-64)); overflow-y:auto; }

.knowledge-browse-body > h2 { font-size:var(--alice-font-h4); margin-bottom:var(--alice-space-16); }

.knowledge-topic-group { border-bottom:var(--alice-border-width) solid var(--alice-color-border); }

.knowledge-topic-group summary { display:flex; align-items:center; justify-content:space-between; gap:var(--alice-space-16); list-style:none; padding:var(--alice-space-16) var(--alice-space-8); cursor:pointer; font-size:var(--alice-font-small); font-weight:var(--alice-weight-medium); transition:color var(--alice-motion-normal) var(--alice-motion-ease); }

.knowledge-topic-group summary::-webkit-details-marker { display:none; }

.knowledge-topic-group > summary:is(:hover, :focus-visible) { color:var(--alice-color-action); }

.knowledge-topic-group li + li { border-top:var(--alice-border-width) solid var(--alice-color-border); }

.knowledge-topic-group ul { list-style:none; padding:0 0 var(--alice-space-16); }

.knowledge-topic-group a { display:block; padding:var(--alice-space-12) var(--alice-space-8); color:var(--alice-color-text); font-size:var(--alice-font-small); line-height:var(--alice-leading-body); }

.knowledge-topic-group a:hover, .knowledge-topic-group a[aria-current="page"] { color:var(--alice-color-action); background:var(--alice-color-surface-alt); }

.knowledge-topic-group .knowledge-topic-all { color:var(--alice-color-action); text-decoration:underline; }

.knowledge-side-contact { margin-top:var(--alice-space-32); padding:var(--alice-space-24); background:var(--alice-color-surface-alt); }

.knowledge-side-contact p { text-align:center; font-size:var(--alice-font-body); font-weight:var(--alice-weight-medium); margin-bottom:var(--alice-space-16); }

.knowledge-service-link { display:inline-flex; min-height:var(--alice-target-min); align-items:center; color:var(--alice-color-action); font-size:var(--alice-font-small); text-decoration:underline; }

.knowledge-search { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:var(--alice-space-16); align-items:end; padding:var(--alice-space-24); background:var(--alice-color-surface-alt); margin-bottom:var(--alice-space-48); }

.knowledge-search label { font-size:var(--alice-font-small); min-width:0; }

.knowledge-search input { width:100%; min-height:var(--alice-target-min); padding:var(--alice-space-12); margin-top:var(--alice-space-8); border:var(--alice-border-width) solid var(--alice-color-control-border); border-radius:var(--alice-radius-button); background:var(--alice-color-surface); color:var(--alice-color-text); }

.knowledge-section-heading h2, .knowledge-related > h2 { font-size:var(--alice-font-h3); margin-bottom:var(--alice-space-24); }

.knowledge-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--alice-space-24); }

.knowledge-card { display:flex; flex-direction:column; min-width:0; padding:var(--alice-space-24); color:var(--alice-color-text); border:var(--alice-border-width) solid var(--alice-color-border); border-radius:var(--alice-radius-card); background:var(--alice-color-surface); }

.knowledge-label { display:block; color:var(--alice-color-action); font-size:var(--alice-font-caption); font-weight:var(--alice-weight-medium); margin-bottom:var(--alice-space-12); }

.knowledge-card h3 { font-size:var(--alice-font-h4); line-height:var(--alice-leading-heading); font-weight:var(--alice-weight-medium); margin-bottom:var(--alice-space-16); }

.knowledge-card p { color:var(--alice-color-muted); font-size:var(--alice-font-small); line-height:var(--alice-leading-reading); margin-bottom:var(--alice-space-24); }

.knowledge-card-end { color:var(--alice-color-action); font-size:var(--alice-font-small); margin-top:auto; }

.knowledge-card:hover { border-color:var(--alice-color-action); }

.knowledge-card:hover h3 { color:var(--alice-color-action); }

.knowledge-search-query { margin-bottom:var(--alice-space-24); }

.knowledge-empty { background:var(--alice-color-surface-alt); padding:var(--alice-space-32); }

.knowledge-pagination { display:flex; flex-wrap:wrap; justify-content:center; gap:var(--alice-space-8); margin-top:var(--alice-space-32); }

.knowledge-pagination a, .knowledge-pagination span { display:grid; place-items:center; min-width:var(--alice-target-min); min-height:var(--alice-target-min); border:var(--alice-border-width) solid var(--alice-color-border); }

.knowledge-pagination span { background:var(--alice-color-text); color:var(--alice-color-inverse); border-color:var(--alice-color-text); }

.knowledge-pagination a { color:var(--alice-color-text); transition:background var(--alice-motion-normal) var(--alice-motion-ease),border-color var(--alice-motion-normal) var(--alice-motion-ease); }

.knowledge-pagination a:hover, .knowledge-pagination a:focus-visible { background:var(--alice-color-disabled-bg); border-color:var(--alice-color-text); }

.knowledge-article-heading { margin:0; }

.knowledge-article-heading h1 { font-size:var(--alice-font-h2); line-height:var(--alice-leading-heading); margin-bottom:0; }

.knowledge-lead { font-size:var(--alice-font-lead); line-height:var(--alice-leading-reading); margin-block:var(--alice-space-24) var(--alice-space-32); }

.knowledge-article-image { margin:0 0 var(--alice-space-32); }

.knowledge-article-image img { display:block; width:100%; height:auto; border-radius:var(--alice-radius-image); }

.knowledge-takeaways { padding:var(--alice-space-24) var(--alice-space-32); background:var(--alice-color-surface-alt); margin-bottom:var(--alice-space-32); }

.knowledge-takeaways h2, .knowledge-toc h2 { font-size:var(--alice-font-h4); font-weight:var(--alice-weight-medium); margin-bottom:var(--alice-space-16); }

.knowledge-takeaways ul, .knowledge-article-content ul { list-style:disc; padding-left:var(--alice-space-24); }

.knowledge-takeaways li + li, .knowledge-article-content li + li { margin-top:var(--alice-space-8); }

.knowledge-toc { border:var(--alice-border-width) solid var(--alice-color-border); padding:var(--alice-space-24) var(--alice-space-32); margin-bottom:var(--alice-space-48); }

.knowledge-toc ol { padding-left:var(--alice-space-24); }

.knowledge-toc li + li { margin-top:var(--alice-space-12); }

.knowledge-toc a { color:var(--alice-color-action); text-decoration:underline; line-height:var(--alice-leading-body); }

.knowledge-toc .h3 { margin-left:var(--alice-space-24); }

.knowledge-article-content { font-size:var(--alice-font-body); line-height:var(--alice-leading-reading); }

.knowledge-article-content h2 { font-size:var(--alice-font-h3); line-height:var(--alice-leading-heading); margin-block:var(--alice-space-48) var(--alice-space-24); padding-bottom:var(--alice-space-16); border-bottom:var(--alice-border-width) solid var(--alice-color-border); scroll-margin-top:var(--alice-space-24); }

.knowledge-article-content h3 { font-size:var(--alice-font-h4); margin-block:var(--alice-space-32) var(--alice-space-16); }

.knowledge-article-content p + p, .knowledge-article-content ul, .knowledge-article-content ol { margin-top:var(--alice-space-24); }

.knowledge-table-wrap { overflow-x:auto; margin-top:var(--alice-space-24); }

.knowledge-article-content table { width:100%; border-collapse:collapse; font-size:var(--alice-font-small); }

.knowledge-article-content th, .knowledge-article-content td { padding:var(--alice-space-16); text-align:left; vertical-align:top; border:var(--alice-border-width) solid var(--alice-color-border); }

.knowledge-article-content th { background:var(--alice-color-surface-alt); font-weight:var(--alice-weight-medium); }

.knowledge-article-content tbody th { width:27%; }

.knowledge-related { margin-top:var(--alice-space-56); }

.knowledge-back { margin-top:var(--alice-space-32); text-align:center; }

@media (max-width: 959px) {
.knowledge-layout { grid-template-columns:minmax(0,1fr); gap:var(--alice-space-32); }
.knowledge-sidebar { position:static; }
.knowledge-browse > summary { display:flex; cursor:pointer; padding:var(--alice-space-16); background:var(--alice-color-surface-alt); font-size:var(--alice-font-body); font-weight:var(--alice-weight-medium); }
.knowledge-browse-body { padding:var(--alice-space-16); max-height:none; overflow:visible; }
.knowledge-browse-body > h2 { display:none; }
.knowledge-side-contact { display:none; }
}

@media (max-width: 767px) {
.knowledge-masthead h1 { font-size:var(--alice-font-h2); }
.knowledge-layout { padding-block:var(--alice-space-32) var(--alice-space-56); }
.knowledge-article-layout .knowledge-main { order:1; }
.knowledge-article-layout .knowledge-sidebar { order:2; }
.knowledge-lead { font-size:var(--alice-font-body); }
.knowledge-search { grid-template-columns:minmax(0,1fr); padding:var(--alice-space-24); }
.knowledge-card-grid { grid-template-columns:minmax(0,1fr); gap:var(--alice-space-16); }
.knowledge-takeaways, .knowledge-toc { padding:var(--alice-space-24); }
}

/* 記事の冒頭にメディア説明と共通の監修者を表示する。 */
.home-knowledge {
  display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);
  grid-template-areas:"heading visual" "copy visual";
  gap:var(--alice-space-24) var(--alice-space-64); align-items:start;
}

.home-knowledge-heading { grid-area:heading; min-width:0; }

.home-knowledge-visual { grid-area:visual; margin:0; width:100%; max-width:var(--alice-width-aside); justify-self:end; align-self:center; }

.home-knowledge-visual a {
  display:block; overflow:hidden; border:var(--alice-border-width) solid var(--alice-color-control-border);
  border-radius:var(--alice-radius-image);
  transition:border-color var(--alice-motion-normal) var(--alice-motion-ease);
}

.home-knowledge-visual a:hover, .home-knowledge-visual a:focus-visible { border-color:var(--alice-color-action); }

.home-knowledge-visual img { display:block; width:100%; height:auto; }

.home-knowledge-copy { min-width:0; }

.home-knowledge-heading h2 { font-size:clamp(var(--alice-font-h3), 2.5vw, var(--alice-font-h2)); margin-bottom:0; }

.home-knowledge-copy > p:not(.kicker) { font-size:var(--alice-font-body); line-height:var(--alice-leading-reading); }

.knowledge-reviewer { display:grid; grid-template-columns:var(--alice-space-96) minmax(0,1fr); gap:var(--alice-space-8) var(--alice-space-24); padding:var(--alice-space-24); background:var(--alice-color-surface-alt); border:var(--alice-border-width) solid var(--alice-color-border); border-radius:var(--alice-radius-card); margin-bottom:var(--alice-space-32); }

.knowledge-reviewer-photo { grid-row:1 / span 2; display:block; width:100%; height:auto; aspect-ratio:4 / 5; object-fit:cover; border-radius:var(--alice-radius-image); }

.knowledge-reviewer-identity { min-width:0; }

.knowledge-reviewer-label { font-size:var(--alice-font-caption); color:var(--alice-color-action); margin-bottom:var(--alice-space-4); }

.knowledge-reviewer h2 { font-size:var(--alice-font-h4); font-weight:var(--alice-weight-medium); line-height:var(--alice-leading-heading); margin-bottom:var(--alice-space-4); }

.knowledge-reviewer-role { font-size:var(--alice-font-small); color:var(--alice-color-muted); line-height:var(--alice-leading-body); }

.knowledge-reviewer-bio { grid-column:2; font-size:var(--alice-font-small); line-height:var(--alice-leading-reading); }

@media (max-width: 767px) {
.home-knowledge { grid-template-columns:minmax(0,1fr); grid-template-areas:"heading" "visual" "copy"; gap:var(--alice-space-24); }
.home-knowledge-visual { justify-self:center; }
.home-knowledge-heading h2 { font-size:var(--alice-font-h3); }
.home-knowledge-action { text-align:center; margin-top:var(--alice-space-24); }
.knowledge-reviewer { grid-template-columns:var(--alice-space-80) minmax(0,1fr); padding:var(--alice-space-20); gap:var(--alice-space-16); }
.knowledge-reviewer-photo { grid-row:1; }
.knowledge-reviewer-bio { grid-column:1 / -1; }
}

.article-content { max-width:var(--alice-width-reading); margin-inline:auto; }

.pricing-content .content-section p { margin:0; }

.pricing-content .content-section h2 { margin-bottom:0; }

/* 料金の最後の説明の下には罫線を付けない。 */
.pricing-content .content-section:last-child { border-bottom:0; }

.pricing-content ul { display:block; list-style:disc; padding-left:var(--alice-space-24); }

.pricing-content ul > li { display:list-item; }

.home-knowledge-band { background:var(--alice-color-surface-alt); }

/* セクション側は配置と周囲の余白だけを管理する。 */
.detail-action { display:flex; justify-content:center; width:100%; margin-top:var(--alice-space-32); }

.home-works-action, .home-directory-action { margin-top:var(--alice-space-40); text-align:center; }


/* 設備一覧は既存の行リンクを2分類の見出しと説明の下に置く。 */
.equipment-directory-group { margin-block:var(--alice-space-48); }
.equipment-directory-group h2 { font-size:var(--alice-font-h3); margin-bottom:var(--alice-space-16); }
.equipment-directory-group > p { margin-bottom:var(--alice-space-24); }
