@charset "UTF-8";
:root {
  --primary-navy: #003785;
  --accent-blue: #003785;
  --border-blue: #003785;
  --bg-light-blue: #f0f7fc;
  --pill-bg: #e1f1fa;
}
body {
  font-family: 'Helvetica Neue', 'Arial', 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Meiryo', sans-serif;
  background-color: #ffffff;
  color: #333333;
}
/* 施設基準セクション全般 */
.facility-standards-section {
  padding: 1.5rem 15px 2rem 15px; /*40px 15px 40px 15px*/
  max-width: 1140px;
  margin: 0 auto;
  position: relative;
}
/* ヘッダーエリア装飾 */
.header-container {
  position: relative;
  padding: 10px 0 20px;
  text-align: center;
}
.header-decor-left {
  position: absolute;
  left: 0;
  top: 0;
  display: flex;
  align-items: center;
  gap: 10px;
}
.header-decor-right {
  position: absolute;
  right: 0;
  top: 0;
  display: flex;
  align-items: center;
  gap: 12px;
}
.main-title {
  color: var(--primary-navy) !important;
  font-weight: 700 !important;
  font-size: 2rem !important;
  letter-spacing: 0.05em !important;
  margin-bottom: 12px !important;
}
/* サブタイトルの両脇の全幅ライン＆両端ドット (●-----------------●) */
.sub-title-wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 30px;
  width: 100%;
}
.sub-title-line {
  flex: 1;
  height: 2px;
  background-color: var(--accent-blue);
  position: relative;
}
.sub-title-line::before, .sub-title-line::after {
  content: '';
  position: absolute;
  top: -3px;
  width: 8px;
  height: 8px;
  background-color: var(--accent-blue);
  border-radius: 50%;
}
.sub-title-line-left::before {
  left: 0;
}
.sub-title-line-left::after {
  right: 0;
}
.sub-title-line-right::before {
  left: 0;
}
.sub-title-line-right::after {
  right: 0;
}
.sub-title {
  color: #333333;
  font-size: 1.05rem;
  font-weight: 600;
  margin: 0 18px;
  white-space: nowrap;
}
/* ==============================================
   カードの配色テーマ設定
   ============================================== */
/* テーマ：ブルー (#003785) */
.theme-blue {
  --card-border: #003785;
  --card-title: #003785;
  --card-dot: #003785;
}
/* テーマ：ティール／青緑 (#04868A) */
.theme-teal {
  --card-border: #04868A;
  --card-title: #04868A;
  --card-dot: #04868A;
}
/* テーマ：インディゴ／紺紫 */
.theme-indigo {
  --card-border: #5a71c4;
  --card-title: #142a6c;
  --card-dot: #3a5bc4;
}
/* カード共通スタイル */
.feature-card {
  background-color: #ffffff;
  border: 2px solid var(--card-border);
  border-radius: 16px;
  padding: 22px 20px;
  height: 100%;
  display: flex;
  flex-direction: column;
  box-shadow: 0 4px 12px rgba(14, 59, 108, 0.05);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.feature-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 16px rgba(14, 59, 108, 0.1);
}
.feature-card-wide:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 16px rgba(14, 59, 108, 0.1);
}
/* アイコン＋タイトルの横並びヘッダーエリア */
.card-header-flex {
  display: flex;
  align-items: center;
  width: 100%;
  margin-bottom: 14px;
}
/* アイコン画像エリア */
.icon-wrapper {
  width: 72px;
  height: 72px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 15px;
  flex-shrink: 0;
}
.icon-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
/* アイコン右側のタイトル・区切り線ブロック */
.card-header-text {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.card-title-custom {
  color: var(--card-title);
  font-weight: 700;
  font-size: 1.2rem;
  line-height: 1.35;
  margin-bottom: 8px;
  text-align: center;
}
/* タイトル下のドット付き区切り線 */
.card-title-divider {
  width: 100%;
  height: 1px;
  background-color: #e2ecf5;
  position: relative;
}
.card-title-divider::after {
  content: '';
  position: absolute;
  top: -3px;
  left: 50%;
  transform: translateX(-50%);
  width: 7px;
  height: 7px;
  background-color: var(--card-dot);
  border-radius: 50%;
}
/* カード本文 */
.card-text-custom {
  color: #333333;
  font-size: 0.93rem;
  line-height: 1.65;
  text-align: justify;
  text-justify: inter-ideograph;
  margin-bottom: 0;
  flex-grow: 1;
}
/* 届出番号バッジ */
.approval-badge-wrapper {
  text-align: center;
  margin-top: 12px;
}
.approval-badge {
  background-color: var(--pill-bg);
  color: var(--primary-navy);
  border: 1px solid #bce1f5;
  border-radius: 20px;
  padding: 5px 14px;
  font-size: 0.85rem;
  font-weight: 600;
  display: inline-block;
}
/* 下部ワイドカード */
.feature-card-wide {
  background-color: #ffffff;
  border: 2px solid var(--card-border);
  border-radius: 16px;
  padding: 24px 28px;
  box-shadow: 0 4px 12px rgba(14, 59, 108, 0.05);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.wide-card-title {
  color: var(--card-title) !important;
  font-weight: 700 !important;
  font-size: 1.35rem !important;
  margin-bottom: 8px !important;
}
.wide-card-divider {
  width: 100%;
  height: 1px;
  border-bottom: 1px dashed var(--accent-blue);
  margin-bottom: 16px;
}
/* フッター注意書き装飾 */
.footer-note-wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 35px;
  padding: 0 10px;
}
.footer-line {
  flex: 1;
  height: 1px;
  border-bottom: 2px dashed var(--accent-blue);
}
.footer-note {
  color: #333333;
  font-size: 0.98rem;
  font-weight: 700;
  margin: 0 15px;
  white-space: nowrap;
}
.compliance-checklist-link {
  text-decoration: underline;
}
.compliance-checklist-link:hover {
  text-decoration: none;
  color: #9F0002;
}
/* スマホ向けレスポンシブ最適化 */
@media (max-width: 767.98px) {
  .header-decor-left, .header-decor-right {
    display: none;
  }
  .main-title {
    font-size: 1.6rem !important;
  }
  .sub-title {
    font-size: 0.85rem;
    white-space: normal;
    margin: 0 8px;
  }
  .card-title-custom {
    font-size: 1.1rem;
  }
  .icon-wrapper {
    width: 60px;
    height: 60px;
    margin-right: 10px;
  }
  .feature-card-wide {
    padding: 20px 18px;
    text-align: center;
  }
  .wide-card-title {
    font-size: 1.15rem !important;
  }
  .footer-note {
    font-size: 0.85rem;
    white-space: normal;
  }
  .facility-standards-section {
    padding: .5rem 15px 1rem 15px; /*40px 15px 40px 15px*/
  }
}