/**
 * AIGIS テーマスタイル（Bootstrap 5 / Barrio サブテーマ）
 * 医療機器サイバーセキュリティ支援サービス向け。清潔感・信頼感のある配色。
 * Bootstrap本体はCDNから読み込み、以下でブランド色・chromeを上書きする。
 */

/* ------------------------------------------------------------------ */
/* Bootstrap 変数のブランド上書き                                       */
/* ------------------------------------------------------------------ */
:root {
  --bs-primary: #13518a;
  --bs-primary-rgb: 19, 81, 138;
  --bs-secondary: #0e8f8f;
  --bs-secondary-rgb: 14, 143, 143;
  --bs-link-color: #13518a;
  --bs-link-color-rgb: 19, 81, 138;
  --bs-link-hover-color: #0e8f8f;
  --bs-body-color: #1c2b36;
  --bs-body-font-family: "Helvetica Neue", "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
}

/* ナビバー（白基調・ロゴ表示・横並び・モバイルトグル） */
.navbar.bg-primary,
.navbar.bg-dark,
.navbar.bg-white,
.navbar.bg-light {
  background: #ffffff !important;
  border-bottom: 1px solid #e3e9f0;
  box-shadow: 0 2px 14px rgba(11, 37, 69, 0.06);
}
.navbar {
  padding-block: 0.5rem;
  padding-inline: clamp(1rem, 4vw, 2.5rem);
}
/* ロゴ */
.navbar .navbar-brand {
  display: inline-flex;
  align-items: center;
  padding: 0;
}
.navbar .navbar-brand img,
.navbar .site-branding__logo img {
  height: 46px;
  width: auto;
  display: block;
}
.navbar .navbar-nav .nav-link {
  color: var(--aigis-navy) !important;
  font-weight: 600;
  padding-inline: 0.9rem;
}
.navbar .navbar-nav .nav-link:hover,
.navbar .navbar-nav .nav-link:focus,
.navbar .navbar-nav .nav-link.is-active {
  color: #0e8f8f !important;
}
.navbar .navbar-nav .nav-link.is-active { border-bottom: 2px solid #0e8f8f; }
/* 最後の「お問い合わせ」をボタン風に */
.navbar .navbar-nav > .nav-item:last-child .nav-link {
  background: #0e8f8f;
  color: #fff !important;
  border-radius: 999px;
  padding-inline: 1.1rem;
  margin-left: 0.5rem;
}
.navbar .navbar-nav > .nav-item:last-child .nav-link:hover { background: #0b7878; color: #fff !important; }

/* ボタン */
.btn-primary {
  --bs-btn-bg: #13518a;
  --bs-btn-border-color: #13518a;
  --bs-btn-hover-bg: #0b2545;
  --bs-btn-hover-border-color: #0b2545;
  --bs-btn-active-bg: #0b2545;
}

/* フッター（ネイビー基調・フレックスレイアウトでBarrioのrow崩れを是正） */
.site-footer {
  background: #0b2545;
  color: #dbe6f0;
  padding: 3rem 0 1.75rem;
  margin-top: 3rem;
}
.site-footer__top {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem 4rem;
  align-items: flex-start;
  max-width: 1120px;
  margin-inline: auto;
  padding-inline: clamp(1rem, 4vw, 2rem);
}
/* Barrioは各フッターリージョンを .row にするため、負マージン・枠線・幅を打ち消す */
.site-footer__top .region {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  width: auto;
  display: block;
}
.site-footer__top .region.region-footer-first { flex: 1 1 300px; max-width: 380px; }
.site-footer__top .region.region-footer-third { flex: 0 1 auto; }
.site-footer .block {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
}
.site-footer a { color: #cfe0ef; text-decoration: none; }
.site-footer a:hover { color: #9fe3e3; }
/* フッターロゴ（紺→白反転・金の十字は維持） */
.aigis-footer__logo-wrap { margin: 0 0 0.9rem; }
.aigis-footer__logo { height: 52px; width: auto; display: block; }
.aigis-footer__tagline { color: #b9c9d8; margin: 0 0 0.9rem; line-height: 1.8; font-size: 0.92rem; }
.aigis-footer__company { font-size: 0.9rem; color: #cfe0ef; margin: 0 0 0.7rem; }
.aigis-footer__company a { color: #9fe3e3; font-weight: 600; }
.aigis-footer__company a:hover { color: #fff; }
.aigis-footer__copy { font-size: 0.82rem; color: #8ea3b6; margin: 0; }
/* フッターメニュー */
.site-footer .region-footer-third h2 {
  font-size: 0.8rem;
  letter-spacing: 0.06em;
  color: #9fb3c6;
  text-transform: uppercase;
  margin: 0 0 0.8rem;
  border: 0;
  padding: 0;
}
.site-footer .menu { list-style: none; padding: 0; margin: 0; }
.site-footer .menu a { display: block; padding: 0.3rem 0; }

/* コンテンツ領域の上余白（ヒーロー直結時の調整） */
.main-content, .region-content { padding-top: 0; }

:root {
  --aigis-navy: #0b2545;
  --aigis-blue: #13518a;
  --aigis-teal: #0e8f8f;
  --aigis-accent: #1f7a8c;
  --aigis-bg-soft: #f3f7fb;
  --aigis-bg-muted: #eef2f6;
  --aigis-border: #d7e1ea;
  --aigis-text: #1c2b36;
  --aigis-text-soft: #4a5b68;
  --aigis-radius: 12px;
  --aigis-shadow: 0 6px 22px rgba(11, 37, 69, 0.08);
}

/* ------------------------------------------------------------------ */
/* セクション共通                                                       */
/* ------------------------------------------------------------------ */
.aigis-section {
  padding: clamp(2.5rem, 6vw, 5rem) 0;
}
.aigis-section__inner {
  max-width: 1120px;
  margin-inline: auto;
  padding-inline: clamp(1rem, 4vw, 2rem);
}
.aigis-eyebrow {
  display: inline-block;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--aigis-teal);
  margin-bottom: 0.6rem;
  text-transform: uppercase;
}
.aigis-heading {
  font-size: clamp(1.5rem, 3.2vw, 2.1rem);
  line-height: 1.4;
  color: var(--aigis-navy);
  margin: 0 0 1rem;
  font-weight: 700;
}
.aigis-lead {
  font-size: 1.05rem;
  line-height: 1.9;
  color: var(--aigis-text-soft);
  max-width: 52rem;
}
.aigis-section--muted {
  background: var(--aigis-bg-soft);
}
.aigis-section--accent {
  background: linear-gradient(135deg, var(--aigis-navy), var(--aigis-blue));
  color: #fff;
}
.aigis-section--accent .aigis-heading,
.aigis-section--accent .aigis-lead {
  color: #fff;
}

/* ------------------------------------------------------------------ */
/* Hero                                                                */
/* ------------------------------------------------------------------ */
.aigis-hero {
  background: linear-gradient(135deg, var(--aigis-navy) 0%, var(--aigis-blue) 55%, var(--aigis-accent) 100%);
  color: #fff;
  padding: clamp(3rem, 8vw, 6rem) 0;
}
.aigis-hero__inner {
  max-width: 1120px;
  margin-inline: auto;
  padding-inline: clamp(1rem, 4vw, 2rem);
}
.aigis-hero__eyebrow {
  color: #9fe3e3;
  font-weight: 700;
  letter-spacing: 0.08em;
}
.aigis-hero__heading {
  font-size: clamp(1.9rem, 5vw, 3.1rem);
  line-height: 1.35;
  margin: 0.6rem 0 1.2rem;
  font-weight: 800;
  max-width: 22em;
  color: #fff;
}
.aigis-hero__subcopy {
  font-size: clamp(1rem, 2vw, 1.2rem);
  line-height: 1.9;
  max-width: 46rem;
  color: #e6eef7;
}
.aigis-hero__ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-top: 2rem;
}

/* ------------------------------------------------------------------ */
/* ボタン                                                              */
/* ------------------------------------------------------------------ */
.aigis-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.85rem 1.6rem;
  border-radius: 999px;
  font-weight: 700;
  text-decoration: none;
  transition: transform 0.12s ease, box-shadow 0.12s ease;
}
.aigis-btn:hover { transform: translateY(-2px); }
.aigis-btn--primary {
  background: #fff;
  color: var(--aigis-navy);
  box-shadow: var(--aigis-shadow);
}
.aigis-btn--ghost {
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.5);
}
.aigis-section .aigis-btn--primary {
  background: var(--aigis-blue);
  color: #fff;
}

/* ------------------------------------------------------------------ */
/* カード群                                                            */
/* ------------------------------------------------------------------ */
.aigis-cards__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 1.2rem;
  margin-top: 2rem;
}
.aigis-card {
  background: #fff;
  border: 1px solid var(--aigis-border);
  border-radius: var(--aigis-radius);
  padding: 1.5rem;
  box-shadow: var(--aigis-shadow);
}
.aigis-card__icon {
  font-size: 1.8rem;
  display: block;
  margin-bottom: 0.6rem;
}
.aigis-card__heading {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--aigis-navy);
  margin: 0 0 0.5rem;
}
.aigis-card__body {
  color: var(--aigis-text-soft);
  line-height: 1.8;
  font-size: 0.95rem;
}
.aigis-card--linked {
  display: flex;
  flex-direction: column;
}
.aigis-card--linked .aigis-card__body {
  flex: 1;
}
.aigis-card__action {
  margin-top: 1.2rem;
  padding-top: 1rem;
  border-top: 1px solid var(--aigis-border);
}
.aigis-btn--outline {
  background: transparent;
  color: var(--aigis-blue);
  border: 2px solid var(--aigis-blue);
  box-shadow: none;
}
.aigis-btn--outline:hover {
  background: var(--aigis-blue);
  color: #fff;
}
.aigis-btn--sm {
  padding: 0.5rem 1.2rem;
  font-size: 0.9rem;
}

/* ------------------------------------------------------------------ */
/* 2カラム（開発段階 / 販売後）                                          */
/* ------------------------------------------------------------------ */
.aigis-two-column__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.4rem;
  margin-top: 2rem;
}
.aigis-two-column__col {
  background: #fff;
  border: 1px solid var(--aigis-border);
  border-top: 4px solid var(--aigis-teal);
  border-radius: var(--aigis-radius);
  padding: 1.6rem;
}
.aigis-two-column__col h3 {
  color: var(--aigis-navy);
  margin-top: 0;
}
.aigis-two-column__col ul { line-height: 1.9; color: var(--aigis-text-soft); }

/* ------------------------------------------------------------------ */
/* ステップ（導入の流れ）                                               */
/* ------------------------------------------------------------------ */
.aigis-steps__list {
  display: grid;
  gap: 1rem;
  margin-top: 2rem;
  counter-reset: aigis-step;
}
.aigis-step {
  position: relative;
  background: #fff;
  border: 1px solid var(--aigis-border);
  border-radius: var(--aigis-radius);
  padding: 1.3rem 1.4rem 1.3rem 4.2rem;
}
.aigis-step::before {
  counter-increment: aigis-step;
  content: counter(aigis-step);
  position: absolute;
  left: 1.1rem;
  top: 1.2rem;
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 50%;
  background: var(--aigis-blue);
  color: #fff;
  font-weight: 700;
  display: grid;
  place-items: center;
}
.aigis-step__heading {
  font-weight: 700;
  color: var(--aigis-navy);
  margin: 0 0 0.3rem;
}
.aigis-step__body { color: var(--aigis-text-soft); line-height: 1.8; }

/* ------------------------------------------------------------------ */
/* CTAバナー                                                           */
/* ------------------------------------------------------------------ */
.aigis-cta {
  background: linear-gradient(135deg, var(--aigis-teal), var(--aigis-blue));
  color: #fff;
  border-radius: var(--aigis-radius);
  padding: clamp(2rem, 5vw, 3rem);
  text-align: center;
  margin: 2rem auto;
  max-width: 1120px;
}
.aigis-cta__heading { font-size: 1.6rem; margin: 0 0 0.8rem; color: #fff; }
.aigis-cta__body { color: #eaf4f4; line-height: 1.8; margin-bottom: 1.4rem; }
.aigis-cta .aigis-btn--primary { background: #fff; color: var(--aigis-blue); }

/* ------------------------------------------------------------------ */
/* 埋め込み一覧（Views）                                                */
/* ------------------------------------------------------------------ */
.aigis-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.2rem;
  margin-top: 1.5rem;
  list-style: none;
  padding: 0;
}
.aigis-list .views-row { height: 100%; }

/* サービス・ブログ埋め込みをグリッド表示 */
.view-id-aigis_services .view-content,
.view-id-aigis_blog .view-content {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.2rem;
  margin-top: 1.5rem;
}
.view-id-aigis_services .views-row,
.view-id-aigis_blog .views-row { height: 100%; }

/* サービス/記事のティーザー：枠線なしのソフトな浮きカード（囲み感を軽減） */
.aigis-teaser {
  background: #fff;
  border: 1px solid transparent;
  border-radius: 14px;
  padding: 1.5rem;
  box-shadow: 0 2px 10px rgba(11, 37, 69, 0.05);
  height: 100%;
  transition: box-shadow 0.16s ease, transform 0.16s ease;
}
.aigis-teaser:hover {
  box-shadow: 0 14px 32px rgba(11, 37, 69, 0.12);
  transform: translateY(-3px);
}
.aigis-teaser__icon { font-size: 1.7rem; }
.aigis-teaser__title { margin: 0.45rem 0; font-size: 1.12rem; line-height: 1.5; }
.aigis-teaser__title a { color: var(--aigis-navy); text-decoration: none; }
.aigis-teaser__title a:hover { color: var(--aigis-teal); }
.aigis-teaser__meta { font-size: 0.78rem; color: var(--aigis-teal); font-weight: 700; }
.aigis-teaser__summary { color: var(--aigis-text-soft); line-height: 1.8; font-size: 0.93rem; }

/* ------------------------------------------------------------------ */
/* 用語集：定義リスト（囲みなし・区切り線）                              */
/* ------------------------------------------------------------------ */
.view-id-aigis_glossary .view-content {
  max-width: 880px;
  border-top: 1px solid var(--aigis-border);
}
.view-id-aigis_glossary .views-row { border-bottom: 1px solid var(--aigis-border); }
.aigis-deflist__item { padding: 1.05rem 0.2rem; }
.aigis-deflist__term { font-size: 1.12rem; font-weight: 700; color: var(--aigis-navy); }
.aigis-deflist__term:hover { color: var(--aigis-teal); }
.aigis-deflist__reading { color: var(--aigis-text-soft); font-size: 0.86rem; margin-left: 0.3rem; }
.aigis-deflist__desc { color: var(--aigis-text-soft); margin: 0.35rem 0 0; line-height: 1.75; font-size: 0.95rem; }

/* ------------------------------------------------------------------ */
/* お知らせ：行リスト（囲みなし・区切り線）                              */
/* ------------------------------------------------------------------ */
.view-id-aigis_news .view-content {
  max-width: 880px;
  border-top: 1px solid var(--aigis-border);
}
.view-id-aigis_news .views-row { border-bottom: 1px solid var(--aigis-border); }
.aigis-newsrow {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.3rem 1.4rem;
  padding: 1rem 0.2rem;
}
.aigis-newsrow__meta {
  display: flex;
  gap: 0.8rem;
  align-items: baseline;
  flex: 0 0 auto;
  color: var(--aigis-text-soft);
  font-size: 0.84rem;
  font-variant-numeric: tabular-nums;
}
.aigis-newsrow__cat {
  background: var(--aigis-bg-muted);
  color: var(--aigis-text-soft);
  padding: 0.12rem 0.55rem;
  border-radius: 4px;
  font-size: 0.76rem;
}
.aigis-newsrow__title { color: var(--aigis-navy); font-weight: 600; flex: 1 1 320px; }
.aigis-newsrow__title:hover { color: var(--aigis-teal); }

.aigis-more {
  text-align: center;
  margin-top: 1.8rem;
}

/* ------------------------------------------------------------------ */
/* FAQ                                                                 */
/* ------------------------------------------------------------------ */
.aigis-faq-item {
  background: #fff;
  border: 1px solid var(--aigis-border);
  border-radius: var(--aigis-radius);
  padding: 1.2rem 1.4rem;
  margin-bottom: 0.9rem;
}
.aigis-faq-item__q {
  font-weight: 700;
  color: var(--aigis-navy);
  display: flex;
  gap: 0.5rem;
}
.aigis-faq-item__q::before { content: "Q."; color: var(--aigis-teal); }
.aigis-faq-item__a { margin-top: 0.6rem; color: var(--aigis-text-soft); line-height: 1.9; }

/* ------------------------------------------------------------------ */
/* サービス詳細などの本文ブロック                                        */
/* ------------------------------------------------------------------ */
.aigis-field-block {
  margin: 1.5rem 0;
}
.aigis-field-block > .field__label {
  color: var(--aigis-navy);
  font-size: 1.15rem;
  border-left: 4px solid var(--aigis-teal);
  padding-left: 0.6rem;
  margin-bottom: 0.6rem;
}

/* ------------------------------------------------------------------ */
/* ランディング（フロント）：ページタイトル非表示・セクション全幅化      */
/* ------------------------------------------------------------------ */
.aigis-front .block-page-title-block,
.aigis-front .page-title,
.aigis-landing > h1,
/* ノード詳細はテンプレート側でタイトルを表示するため、ブロックのタイトルを抑制 */
.node--type-article .block-page-title-block,
.node--type-glossary .block-page-title-block,
.node--type-news .block-page-title-block,
.node--type-issue .block-page-title-block,
.node--type-service .block-page-title-block,
.node--type-faq .block-page-title-block {
  display: none;
}
/* フロントではBootstrapの .container 制約を外し、各セクションを全幅で見せる */
.aigis-front main .container,
.aigis-front .region-content,
.aigis-front .main-content {
  max-width: 100%;
  width: 100%;
  padding-left: 0;
  padding-right: 0;
}
.aigis-front main { padding: 0; }

/* ================================================================== */
/* コンテンツページ全体のデザイン調整                                    */
/* ================================================================== */

/* --- リンク：下線を全廃し、色とホバーで表現 --- */
a { text-decoration: none; }
a:hover, a:focus { text-decoration: none; }
.region-content a,
.aigis-prose a,
.aigis-teaser a,
.aigis-faq-item__a a {
  color: var(--aigis-blue);
  transition: color 0.12s ease;
}
.region-content a:hover,
.aigis-prose a:hover { color: var(--aigis-teal); }
/* 本文中の文章リンクのみ、視認性のため控えめな下線をホバー時に付与 */
.aigis-prose a { border-bottom: 1px solid rgba(19, 81, 138, 0.3); }
.aigis-prose a:hover { border-bottom-color: var(--aigis-teal); }

/* --- パンくず --- */
.breadcrumb, nav[role="navigation"].breadcrumb, .block-system-breadcrumb-block ol,
.region-breadcrumb ol {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  padding: 0.2rem 0;
  margin: 0 0 0.4rem;
  font-size: 0.85rem;
  color: var(--aigis-text-soft);
}
.region-breadcrumb a { color: var(--aigis-text-soft); }
.region-breadcrumb a:hover { color: var(--aigis-blue); }
.region-breadcrumb li + li::before { content: "/"; margin-right: 0.4rem; color: #b6c2cd; }

/* --- ページタイトル（一覧・詳細共通） --- */
.page-title, h1.title, .block-page-title-block h1 {
  color: var(--aigis-navy);
  font-weight: 800;
  font-size: clamp(1.6rem, 3.4vw, 2.3rem);
  line-height: 1.4;
  margin: 0.2rem 0 1.4rem;
}

/* メインコンテンツの下に十分な余白（フッターが詰まって見えないように） */
main .region-content { padding-block: 1.5rem 3.5rem; }

/* デフォルトの投稿者バイライン（admin が…に投稿）を非表示 */
.node__meta, .node__submitted, article .node__submitted { display: none; }

/* ================================================================== */
/* 記事・コンテンツ詳細（読みやすい1カラム）                            */
/* ================================================================== */
.aigis-article {
  max-width: 820px;
  margin-inline: auto;
}
.aigis-article__header {
  border-bottom: 1px solid var(--aigis-border);
  padding-bottom: 1.4rem;
  margin-bottom: 1.8rem;
}
.aigis-article__title {
  color: var(--aigis-navy);
  font-weight: 800;
  font-size: clamp(1.7rem, 3.6vw, 2.4rem);
  line-height: 1.45;
  margin: 0.6rem 0 0.8rem;
}
.aigis-article__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.8rem;
  color: var(--aigis-text-soft);
  font-size: 0.88rem;
}
.aigis-article__meta time { font-variant-numeric: tabular-nums; }

/* バッジ・チップ・タグ */
.aigis-badge {
  display: inline-block;
  background: var(--aigis-teal);
  color: #fff;
  font-size: 0.78rem;
  font-weight: 700;
  padding: 0.25rem 0.7rem;
  border-radius: 999px;
}
.aigis-chip {
  display: inline-block;
  background: var(--aigis-bg-muted);
  color: var(--aigis-text-soft);
  font-size: 0.78rem;
  font-weight: 600;
  padding: 0.2rem 0.6rem;
  border-radius: 6px;
}
.aigis-tags { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; margin-top: 0.7rem; }
.aigis-tags__label { font-size: 0.82rem; color: var(--aigis-text-soft); }
.aigis-tag {
  display: inline-block;
  background: var(--aigis-bg-soft);
  border: 1px solid var(--aigis-border);
  color: var(--aigis-blue);
  font-size: 0.78rem;
  padding: 0.15rem 0.6rem;
  border-radius: 999px;
}
.aigis-reading { color: var(--aigis-text-soft); margin: 0; font-size: 0.95rem; }

/* 本文プロース（読みやすい行長・行間・見出し） */
.aigis-prose { color: var(--aigis-text); line-height: 1.95; font-size: 1.02rem; }
.aigis-prose > * + * { margin-top: 1.1rem; }
.aigis-prose h2 {
  color: var(--aigis-navy);
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.5;
  margin-top: 2.4rem;
  padding-left: 0.7rem;
  border-left: 4px solid var(--aigis-teal);
}
.aigis-prose h3 { color: var(--aigis-navy); font-size: 1.15rem; font-weight: 700; margin-top: 1.8rem; }
.aigis-prose ul, .aigis-prose ol { padding-left: 1.4rem; }
.aigis-prose li { margin-top: 0.4rem; }
.aigis-prose strong { color: var(--aigis-navy); }

/* 関連コンテンツ */
.aigis-related {
  max-width: 820px;
  margin: 2.5rem auto 0;
  padding-top: 1.6rem;
  border-top: 1px solid var(--aigis-border);
}
.aigis-related__title {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--aigis-navy);
  margin: 0 0 0.8rem;
}
.aigis-related .field__items, .aigis-related ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.5rem; }
.aigis-related a { color: var(--aigis-blue); font-weight: 600; }

/* 詳細ページ内CTA（サービス等） */
.aigis-detail-cta { max-width: 820px; margin: 2.5rem auto 0; }

/* 一覧ティーザーの日付・カテゴリ */
.aigis-teaser__date { font-size: 0.8rem; color: var(--aigis-text-soft); }

@media (max-width: 600px) {
  .aigis-hero__ctas { flex-direction: column; align-items: stretch; }
  .aigis-btn { justify-content: center; }
  .aigis-article, .aigis-related, .aigis-detail-cta { max-width: 100%; }
}

/* ------------------------------------------------------------------ */
/* 簡易診断フォーム                                                     */
/* ------------------------------------------------------------------ */
.aigis-diagnosis {
  max-width: 720px;
  margin-inline: auto;
}
.aigis-diagnosis__fallback {
  color: var(--aigis-text-soft);
  font-size: 0.9rem;
  padding: 2rem 0;
}
.aigis-diagnosis__form {}
.aigis-diagnosis__questions {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
.aigis-diagnosis__question {
  background: #fff;
  border: 1px solid #dce5ef;
  border-radius: 12px;
  padding: 1.5rem;
}
.aigis-diagnosis__qlabel {
  font-weight: 700;
  font-size: 0.95rem;
  margin-bottom: 1rem;
  line-height: 1.6;
  color: var(--aigis-navy, #0b2545);
}
.aigis-diagnosis__qnum {
  display: inline-block;
  background: var(--aigis-teal, #0e8f8f);
  color: #fff;
  font-size: 0.7rem;
  font-weight: 800;
  padding: 0.1em 0.5em;
  border-radius: 4px;
  margin-right: 0.5em;
  vertical-align: middle;
  line-height: 1.6;
}
.aigis-diagnosis__options {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.aigis-diagnosis__option {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.65rem 1rem;
  border: 1.5px solid #dce5ef;
  border-radius: 8px;
  cursor: pointer;
  font-size: 0.92rem;
  transition: border-color 0.15s, background 0.15s;
  user-select: none;
}
.aigis-diagnosis__option:hover {
  border-color: var(--aigis-teal, #0e8f8f);
  background: #f0fbfb;
}
.aigis-diagnosis__option input[type="radio"],
.aigis-diagnosis__option input[type="checkbox"] {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  accent-color: var(--aigis-teal, #0e8f8f);
  cursor: pointer;
}
.aigis-diagnosis__option:has(input:checked) {
  border-color: var(--aigis-teal, #0e8f8f);
  background: #e6f8f8;
}
.aigis-diagnosis__textarea {
  width: 100%;
  border: 1.5px solid #dce5ef;
  border-radius: 8px;
  padding: 0.75rem 1rem;
  font-size: 0.92rem;
  font-family: inherit;
  resize: vertical;
  transition: border-color 0.15s;
}
.aigis-diagnosis__textarea:focus {
  border-color: var(--aigis-teal, #0e8f8f);
  outline: none;
}
.aigis-diagnosis__actions {
  margin-top: 2.5rem;
  text-align: center;
}
.aigis-diagnosis__submit {
  font-size: 1.05rem;
  padding: 0.85rem 2.5rem;
}
.aigis-diagnosis__note {
  margin-top: 0.75rem;
  font-size: 0.82rem;
  color: var(--aigis-text-soft, #5a6a7a);
}
/* 診断結果 */
.aigis-diagnosis__result {
  background: #fff;
  border: 2px solid var(--aigis-teal, #0e8f8f);
  border-radius: 16px;
  overflow: hidden;
}
.aigis-diagnosis__result-inner {
  padding: 2.5rem 2rem;
  text-align: center;
}
.aigis-diagnosis__result-label {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--aigis-teal, #0e8f8f);
  text-transform: uppercase;
  margin-bottom: 0.75rem;
}
.aigis-diagnosis__result-heading {
  font-size: 1.45rem;
  font-weight: 800;
  color: var(--aigis-navy, #0b2545);
  margin-bottom: 1rem;
  line-height: 1.4;
}
.aigis-diagnosis__result-body {
  font-size: 0.95rem;
  color: #3a4a5a;
  line-height: 1.8;
  max-width: 540px;
  margin-inline: auto;
  margin-bottom: 2rem;
}
.aigis-diagnosis__result-cta {
  margin-bottom: 0.75rem;
}
.aigis-diagnosis__result-note {
  font-size: 0.8rem;
  color: var(--aigis-text-soft, #5a6a7a);
  margin-bottom: 1.5rem;
}
.aigis-diagnosis__retry {
  background: none;
  border: none;
  color: var(--aigis-blue, #13518a);
  font-size: 0.85rem;
  cursor: pointer;
  text-decoration: underline;
  padding: 0;
}
.aigis-diagnosis__retry:hover { color: var(--aigis-teal, #0e8f8f); }

/* 問い合わせページにクラスを付与するためのセレクタ */
.page-contact .webform-submission-form {}

@media (max-width: 600px) {
  .aigis-diagnosis__question { padding: 1.2rem 1rem; }
  .aigis-diagnosis__option { padding: 0.6rem 0.75rem; font-size: 0.88rem; }
  .aigis-diagnosis__result-inner { padding: 2rem 1.25rem; }
  .aigis-diagnosis__result-heading { font-size: 1.2rem; }
}

/* 一覧ページ（ビュー）のヘッダー：h1＋導入文 */
.aigis-listing-header {
  margin: 1.5rem 0 2.5rem;
}
.aigis-listing-header__title {
  color: var(--aigis-navy);
  font-weight: 800;
  font-size: clamp(1.7rem, 3.6vw, 2.4rem);
  line-height: 1.45;
  margin: 0.6rem 0 0.8rem;
}
.aigis-listing-header__lead {
  color: var(--aigis-text-soft);
  max-width: 46em;
  margin: 0;
}

/* フッターのプライバシーポリシー等リンク */
.aigis-footer__links {
  margin-top: 0.75rem;
}
.aigis-footer__links a {
  color: rgba(255, 255, 255, 0.85);
  text-decoration: underline;
  font-size: 0.85rem;
}
.aigis-footer__links a:hover { color: #fff; }
