/**
 * サイト全体のベースフォント 18px（高齢者向け可読性）
 * 他CSSより後に読み込むこと
 */
:root {
  --content_font_size: 18px;
  --content_font_size_sp: 18px;
  --headline_font_size: 34px;
  --headline_font_size_sp: 24px;
  --single_title_font_size: 30px;
  --single_title_font_size_sp: 22px;

  /* price.css 系（html 62.5% 前提: 1.8rem = 18px） */
  --fontsize-xl: clamp(1.9rem, 1.847rem + 0.22vw, 2.1rem);
  --fontsize-std: clamp(1.8rem, 1.774rem + 0.11vw, 1.9rem);
  --fontsize-m: clamp(1.7rem, 1.674rem + 0.11vw, 1.8rem);
  --fontsize-s: clamp(1.6rem, 1.574rem + 0.11vw, 1.7rem);
  --fontsize-xs: clamp(1.4rem, 1.347rem + 0.22vw, 1.6rem);
  --fontsize-x2s: 1.4rem;
}

/* TCD系ページ: 1rem = 18px（ブラウザ既定16px × 112.5%） */
html:not(:has(.l-main)) {
  font-size: 112.5%;
}

/* price.css系: rem スケールを維持（1.8rem = 18px） */
html:has(.l-main) {
  font-size: 62.5%;
}

/* ベースフォント（外部TCD CSS等の 16px 指定を上書き） */
body {
  font-size: 18px !important;
}

/* TCD系: 本文（1rem は html 112.5% で 18px になる） */
html:not(:has(.l-main)) .post_content,
html:not(:has(.l-main)) .post_content p,
html:not(:has(.l-main)) #footer_info_area_inner > .post_content {
  font-size: 18px;
}

/* price系: 本文は rem トークンで 18px */
html:has(.l-main) .l-main,
html:has(.l-main) .l-main-body,
html:has(.l-main) .l-main-body p {
  font-size: var(--fontsize-std);
}

@media screen and (max-width: 800px) {
  body {
    font-size: 18px !important;
  }
}

/* --- ヘッダー・フッター・ナビ --- */
#global_menu > ul > li {
  font-size: 14px;
}
#global_menu .matsuno-header__nav-label {
  font-size: 14px;
}
#global_menu ul ul li,
body.menu_layout_type2 #global_menu > ul > li > ul > li {
  font-size: 18px;
}
body.menu_layout_type2 #global_menu > ul > li > ul > li.header_menu {
  font-size: 18px;
}
#header_message {
  font-size: 18px;
}
#header_tel .desc {
  font-size: 18px;
}
#mobile_menu a,
#mobile_menu li li a {
  font-size: 18px;
}
#drawer_tel .desc {
  font-size: 18px;
}
#footer_menu li {
  font-size: 18px;
}
#footer_banner .title,
#footer_banner_sub .title {
  font-size: 18px;
}
#side_icon_button .label {
  font-size: 16px;
}

/* --- 本文・リスト・UI --- */
.post_content .design_headline1 {
  font-size: 32px !important;
}
:is(.design_header, .tcdce-body .design_header) .desc {
  font-size: 18px;
}
#news_ticker .date,
#news_ticker .title {
  font-size: 18px;
}
#bread_crumb li {
  font-size: 18px;
}
.news_list .date {
  font-size: 18px;
}
.news_list .title {
  font-size: 18px;
}
.faq_list .desc {
  font-size: 18px;
}
a.design_button {
  font-size: 18px;
}
#category_sort_button ol li,
#news_category_sort_button .item {
  font-size: 18px;
}
.page_navi a,
.page_navi .current,
.page_navi .dots {
  font-size: 18px;
}

.post_content .about-cta p,
.post_content section.about-cta > p {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

@media screen and (max-width: 800px) {
  .post_content .design_headline1 {
    font-size: 22px !important;
  }
  a.design_button {
    font-size: 18px;
  }
}
