/* DNT editable content / block editor support - 2026-10-31.
 * Only WordPress block markup on fixed pages. Avoid legacy .page_cont layouts.
 */
body.page :where(.wp-block-heading) {
  color: #171717;
  line-height: 1.45;
  overflow-wrap: break-word;
}
body.page :where(h2.wp-block-heading) {
  font-size: clamp(22px, 2.3vw, 28px);
  font-weight: 600;
  border-bottom: 3px solid #b9dedf;
  padding-bottom: 10px;
  margin: 40px 0 18px;
}
body.page :where(h3.wp-block-heading) {
  font-size: clamp(18px, 2vw, 22px);
  font-weight: 600;
  border-left: 5px solid #0dabae;
  padding-left: 12px;
  margin: 28px 0 14px;
}
body.page :where(.wp-block-paragraph) { line-height: 1.85; margin: 0 0 1.4em; }
body.page :where(.wp-block-list) { line-height: 1.85; padding-left: 1.6em; margin: 0 0 1.5em; }
body.page :where(.wp-block-image img, .wp-block-cover img, .wp-block-media-text img) { max-width: 100%; height: auto; }
body.page :where(.wp-block-columns) { gap: clamp(16px, 2.5vw, 30px); }
body.page :where(.wp-block-column) { min-width: 0; }
body.page :where(.wp-block-button__link) {
  background: #099fa4; color: #fff; border-radius: 5px;
  padding: .75em 1.4em; text-decoration: none;
}
body.page :where(.wp-block-button__link:hover) { background: #087b80; color: #fff; }
body.page :where(.wp-block-table) { max-width: 100%; overflow-x: auto; margin: 0 0 1.5em; }
body.page :where(.wp-block-table table) { border-collapse: collapse; width: 100%; }
body.page :where(.wp-block-table th, .wp-block-table td) { border: 1px solid #d8dede; padding: 10px 12px; }
body.page :where(.wp-block-separator) { border: 0; border-top: 1px solid #d5e2e2; margin: 30px 0; }
body.page :where(.wp-block-quote) { border-left: 4px solid #0dabae; padding: 10px 18px; margin: 20px 0; background: #f3f9f9; }
body.page :where(.wp-block-group) { min-width: 0; }
body.page :where(.wp-block-group, .wp-block-columns, .wp-block-media-text, .wp-block-image, .wp-block-table) { max-width: 100%; }
@media (max-width: 767px) {
  body.page :where(.wp-block-columns:not(.is-not-stacked-on-mobile)) { flex-direction: column; }
  body.page :where(.wp-block-media-text:not(.has-media-on-the-right)) { grid-template-columns: 100% !important; }
  body.page :where(.wp-block-media-text:not(.has-media-on-the-right) .wp-block-media-text__content) { padding: 16px 0; }
  body.page :where(.wp-block-table th, .wp-block-table td) { padding: 8px; }
}

/* Block-only page template: scoped so legacy service/products HTML is unaffected. */
body.page .dnt-block-page-main { width: 100%; min-width: 0; box-sizing: border-box; }
body.page .dnt-page-content {
  box-sizing: border-box;
  width: min(1120px, 90%);
  margin-inline: auto;
  padding: 48px 0 80px;
  font-size: 15px;
  line-height: 1.85;
  overflow-wrap: anywhere;
}
body.page .dnt-page-content > * { max-width: 100%; }
body.page .dnt-page-content h2.wp-block-heading {
  font-size: clamp(22px, 2.3vw, 28px);
  font-weight: 600;
  line-height: 1.45;
  padding: 0 0 12px;
  margin: 36px 0 20px;
  color: #149da1;
  border-bottom: 3px solid #b9dedf;
}
body.page .dnt-page-content h3.wp-block-heading {
  font-size: clamp(18px, 2vw, 22px);
  font-weight: 600;
  line-height: 1.45;
  border-left: 5px solid #0dabae;
  padding: 3px 0 3px 12px;
  margin: 30px 0 16px;
}
body.page .dnt-page-content p { line-height: 1.85; margin: 0 0 1.5em; }
body.page .dnt-page-content ul.wp-block-list { list-style: disc outside; padding-left: 1.7em; margin: 0 0 1.5em; }
body.page .dnt-page-content ol.wp-block-list { list-style: decimal outside; padding-left: 1.7em; margin: 0 0 1.5em; }
body.page .dnt-page-content .wp-block-list li { display: list-item; margin: .25em 0; }
body.page .dnt-page-content .wp-block-button__link {
  display: inline-block; background: #099fa4; color: #fff;
  border-radius: 5px; padding: .75em 1.4em; text-decoration: none;
}
body.page .dnt-page-content .wp-block-button__link:hover { background: #087b80; }
body.page .dnt-page-content .wp-block-columns { display: flex; gap: clamp(16px, 3vw, 30px); }
body.page .dnt-page-content .wp-block-column { min-width: 0; }
body.page .dnt-page-content img { max-width: 100%; height: auto; }
body.page .dnt-page-content .wp-block-table { overflow-x: auto; }
body.page .dnt-page-content .wp-block-table table { width: 100%; border-collapse: collapse; }
body.page .dnt-page-content .wp-block-table :is(td,th) { border: 1px solid #ddd; padding: 10px; }
@media (max-width: 767px) {
  body.page .dnt-page-content { width: 90%; padding: 32px 0 56px; font-size: 14px; }
  body.page .dnt-page-content .wp-block-columns:not(.is-not-stacked-on-mobile) { flex-direction: column; }
  body.page .dnt-block-page-title { min-width: 0; width: 100%; }
}
/* ブロック編集ページの本文幅・余白 */
body.page-template-page-block .dnt-page-content {
    box-sizing: border-box;
    width: calc(100% - 40px);
    max-width: 1120px;
    margin: 50px auto 80px;
}

/* 箇条書きの表示 */
body.page-template-page-block .dnt-page-content ul.wp-block-list {
    list-style: disc;
    padding-left: 2em;
    margin-bottom: 25px;
}

body.page-template-page-block .dnt-page-content ol.wp-block-list {
    list-style: decimal;
    padding-left: 2em;
}

/* スマホ */
@media screen and (max-width: 767px) {
    body.page-template-page-block .dnt-page-content {
        width: calc(100% - 30px);
        margin: 30px auto 50px;
    }
}
/* ブロックボタンと次のコンテンツの余白 */
.dnt-page-content .wp-block-buttons {
    margin-bottom: 35px;
}

/* カラムの余白 */
.dnt-page-content .wp-block-columns {
    margin-top: 20px;
    margin-bottom: 35px;
}
@media screen and (max-width: 767px) {
    .dnt-page-content .wp-block-buttons {
        margin-bottom: 25px;
    }

    .dnt-page-content .wp-block-columns {
        margin-top: 15px;
        margin-bottom: 25px;
    }
}
/* ========================================
   DNT ブロックエディタ用：共通テーブル
======================================== */

.dnt-page-content .wp-block-table {
    width: 100%;
    max-width: 100%;
    margin: 25px 0 40px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.dnt-page-content .wp-block-table table {
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
    font-size: 15px;
    line-height: 1.8;
}

.dnt-page-content .wp-block-table th,
.dnt-page-content .wp-block-table td {
    border: 1px solid #ddd;
    padding: 14px 18px;
    text-align: left;
    vertical-align: middle;
    overflow-wrap: anywhere;
}

/* 見出しセル */
.dnt-page-content .wp-block-table th {
    background: #e7f4f4;
    font-weight: bold;
}

/* 行の背景 */
.dnt-page-content .wp-block-table tbody tr:nth-child(even) {
    background: #f8fafb;
}

/* WordPress標準の縞模様スタイル */
.dnt-page-content .wp-block-table.is-style-stripes
tbody tr:nth-child(odd) {
    background: #f0f7f7;
}

/* スマホ */
@media screen and (max-width: 767px) {
    .dnt-page-content .wp-block-table {
        margin: 20px 0 30px;
    }

    .dnt-page-content .wp-block-table table {
        font-size: 13px;
    }

    .dnt-page-content .wp-block-table th,
    .dnt-page-content .wp-block-table td {
        padding: 10px 12px;
    }
}