/*
 * 下層ページ（コラム一覧・記事・運営会社・お問い合わせ・404）。v0.2.0。
 * 色・余白・文字組みは TOP（top-sections.css）に合わせる：オレンジ #ef8f35／濃色 #2e2a22／補助色 #5c5546／線 #f0dcc0／地 #fff8ef・#fffdf9。
 * 旧サイトで別プラグイン（VK Blocks 等）が担っていた表示の切替（スペーサー、PC/スマホの出し分け）は、依存なしで再現する。
 */
body.hvr-sub { background: #fffdf9; color: #2e2a22; font-size: 16px; line-height: 1.8; }
body.hvr-sub .hvr-main a { color: #c86f14; }
body.hvr-sub .hvr-main a:hover { color: #a85a0c; }
/* 日本語の見出し・リード文：文節で折り返し、1文字だけの行（孤立）を避ける（対応ブラウザのみ。非対応でも崩れない） */
.hvr-page-head__title, .hvr-page-head__lead, .hvr-article__title, .hvr-card__title, .hvr-cta-box__title, .hvr-cta-box__lead, .hvr-content h2, .hvr-content h3, .hvr-content h4 { word-break: auto-phrase; text-wrap: balance; }
.hvr-content p, .hvr-content li, .hvr-card__excerpt, .hvr-thanks p { text-wrap: pretty; }

.hvr-main { padding: 28px 20px 80px; }
.hvr-container { max-width: 1080px; margin: 0 auto; }
.hvr-container--narrow { max-width: 880px; }
.hvr-container--article { max-width: 860px; }

/* パンくず */
.hvr-breadcrumb { font-size: 13px; color: #5c5546; margin: 0 0 20px; }
.hvr-breadcrumb ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 0; }
.hvr-breadcrumb li:not(:last-child)::after { content: "›"; margin: 0 8px; color: #b9ad94; }
.hvr-breadcrumb a { color: #5c5546; text-decoration: none; }
.hvr-breadcrumb a:hover { text-decoration: underline; }
.hvr-breadcrumb li[aria-current] { color: #2e2a22; overflow-wrap: anywhere; }

/* ページ見出し */
.hvr-page-head { margin: 0 0 36px; padding: 8px 0 0; text-align: center; }
.hvr-page-head__eyebrow { margin: 0 0 6px; font-size: 13px; font-weight: 700; letter-spacing: .18em; color: #ef8f35; }
.hvr-page-head__title { margin: 0; font-size: clamp(24px, 3.2vw, 34px); line-height: 1.4; font-weight: 800; color: #2e2a22; }
.hvr-page-head__title::after { content: ""; display: block; width: 56px; height: 4px; margin: 16px auto 0; border-radius: 2px; background: #ef8f35; }
.hvr-page-head__lead { margin: 18px auto 0; max-width: 680px; font-size: 15px; color: #5c5546; }

/* ボタン */
.hvr-btn { display: inline-block; padding: 14px 28px; border-radius: 999px; font-size: 15px; font-weight: 700; line-height: 1.3; text-align: center; text-decoration: none; cursor: pointer; border: 2px solid transparent; transition: background-color .2s, box-shadow .2s, color .2s; }
body.hvr-sub .hvr-main a.hvr-btn--primary, .hvr-btn--primary { background: #ef8f35; color: #26190a; box-shadow: 0 3px 10px rgba(239, 143, 53, .35); }
body.hvr-sub .hvr-main a.hvr-btn--primary:hover, .hvr-btn--primary:hover { background: #e57f1f; color: #26190a; }
body.hvr-sub .hvr-main a.hvr-btn--ghost, .hvr-btn--ghost { background: #fff; color: #c86f14; border-color: #f0dcc0; }
body.hvr-sub .hvr-main a.hvr-btn--ghost:hover { background: #fff4e8; color: #a85a0c; }
.hvr-btn--lg { padding: 18px 56px; font-size: 18px; min-width: 260px; }
.hvr-btn:focus-visible, .hvr-card__link:focus-visible { outline: 3px solid #4f94d4; outline-offset: 3px; }

/* CTAボックス */
.hvr-cta-box { margin: 56px 0 8px; padding: 36px 24px; border-radius: 20px; text-align: center; background: linear-gradient(135deg, #fff8ef 0%, #ffe9d0 100%); border: 1px solid #f0dcc0; }
.hvr-cta-box__title { margin: 0 0 10px; font-size: clamp(19px, 2.4vw, 24px); line-height: 1.5; color: #2e2a22; border: 0; background: none; padding: 0; }
.hvr-cta-box__lead { margin: 0 0 22px; color: #5c5546; font-size: 15px; }
.hvr-cta-box__btns { margin: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }

/* カード（コラム一覧・ほかのコラム） */
.hvr-card-grid { display: grid; gap: 28px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hvr-card { background: #fff; border: 1px solid #f0dcc0; border-radius: 16px; overflow: hidden; box-shadow: 0 2px 10px rgba(92, 85, 70, .06); transition: transform .2s, box-shadow .2s; }
.hvr-card:hover { transform: translateY(-3px); box-shadow: 0 8px 22px rgba(92, 85, 70, .14); }
.hvr-card__link { display: flex; flex-direction: column; height: 100%; color: inherit; text-decoration: none; }
body.hvr-sub .hvr-main a.hvr-card__link { color: #2e2a22; }
body.hvr-sub .hvr-main .hvr-card__more, body.hvr-sub .hvr-main .hvr-card__cat { color: #c86f14; }
body.hvr-sub .hvr-main .hvr-content .wp-block-button__link { color: #26190a; text-decoration: none; }
body.hvr-sub .hvr-main .hvr-article__cat a { color: #c86f14; }
body.hvr-sub .hvr-main .hvr-postnav a { color: #2e2a22; }
body.hvr-sub .hvr-main .hvr-pagination a { color: #5c5546; }
.hvr-card__thumb { display: block; aspect-ratio: 16 / 9; background: #fff4e8; overflow: hidden; }
.hvr-card__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.hvr-card__noimg { display: block; width: 100%; height: 100%; background: linear-gradient(135deg, #fff4e8, #ffe0bd); }
.hvr-card__body { display: flex; flex-direction: column; gap: 10px; flex: 1; padding: 18px 20px 20px; }
.hvr-card__cat { align-self: flex-start; padding: 2px 10px; border-radius: 999px; background: #fff4e8; color: #c86f14; font-size: 12px; font-weight: 700; }
.hvr-card__title { font-size: 17px; line-height: 1.6; font-weight: 800; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.hvr-card__excerpt { font-size: 14px; line-height: 1.8; color: #5c5546; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.hvr-card__foot { margin-top: auto; padding-top: 6px; display: flex; justify-content: space-between; align-items: center; font-size: 13px; color: #8a8068; }
.hvr-card__more { color: #c86f14; font-weight: 700; }
.hvr-empty { text-align: center; padding: 48px 0; color: #5c5546; }

/* ページ送り */
.hvr-pagination { margin: 44px 0 0; }
.hvr-pagination ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.hvr-pagination a, .hvr-pagination span { display: inline-block; min-width: 44px; padding: 10px 14px; border: 1px solid #f0dcc0; border-radius: 10px; background: #fff; color: #5c5546; text-align: center; text-decoration: none; font-weight: 700; }
.hvr-pagination .current { background: #ef8f35; border-color: #ef8f35; color: #26190a; }
.hvr-pagination a:hover { background: #fff4e8; }

/* 記事 */
.hvr-article__head { margin: 0 0 26px; }
.hvr-article__cat { margin: 0 0 10px; }
.hvr-article__cat a { display: inline-block; padding: 2px 12px; border-radius: 999px; background: #fff4e8; color: #c86f14; font-size: 13px; font-weight: 700; text-decoration: none; }
.hvr-article__title { margin: 0 0 12px; font-size: clamp(22px, 3vw, 30px); line-height: 1.55; font-weight: 800; color: #2e2a22; overflow-wrap: anywhere; }
.hvr-article__meta { margin: 0; font-size: 13px; color: #8a8068; }

/* 本文（記事・運営会社・汎用ページ共通） */
.hvr-content { overflow-wrap: anywhere; }
.hvr-content > *:first-child { margin-top: 0; }
.hvr-content p { margin: 0 0 1.3em; }
.hvr-content strong { color: #2e2a22; }
.hvr-content a { text-decoration: underline; text-underline-offset: 3px; }
.hvr-content h2 { margin: 2.4em 0 1em; padding: .55em .9em; font-size: clamp(20px, 2.4vw, 24px); line-height: 1.5; font-weight: 800; background: #fff8ef; border-left: 6px solid #ef8f35; border-radius: 0 10px 10px 0; color: #2e2a22; }
.hvr-content h3 { margin: 2em 0 .8em; padding: 0 0 .4em; font-size: clamp(18px, 2.1vw, 21px); line-height: 1.55; font-weight: 800; border-bottom: 2px solid #f0dcc0; color: #2e2a22; }
.hvr-content h4 { margin: 1.6em 0 .6em; font-size: 17px; line-height: 1.6; font-weight: 800; color: #c86f14; }
.hvr-content ul, .hvr-content ol { margin: 0 0 1.4em; padding-left: 1.5em; }
.hvr-content li { margin: .35em 0; }
.hvr-content li::marker { color: #ef8f35; }
.hvr-content hr, .hvr-content .wp-block-separator { margin: 2.6em 0; border: 0; border-top: 1px solid #f0dcc0; }
.hvr-content figure { margin: 1.6em 0; }
.hvr-content .wp-block-image img { display: block; height: auto; max-width: 100%; border-radius: 10px; }
.hvr-content .wp-block-image.aligncenter { text-align: center; }
.hvr-content .wp-block-image.aligncenter img { margin-left: auto; margin-right: auto; }
.hvr-content figure.wp-block-table { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 1.6em 0; }
.hvr-content table { width: 100%; border-collapse: collapse; font-size: 15px; line-height: 1.7; background: #fff; }
.hvr-content th, .hvr-content td { padding: 10px 14px; border: 1px solid #e8e2d2; vertical-align: top; text-align: left; }
.hvr-content thead th, .hvr-content tr:first-child th { background: #fff4e8; color: #2e2a22; font-weight: 800; }
.hvr-content table.has-fixed-layout { table-layout: auto; }
@media (max-width: 640px) {
	.hvr-content table { min-width: 560px; font-size: 14px; }
	.hvr-content th, .hvr-content td { padding: 8px 10px; }
}
/* 記事末尾のCTAカバー（旧サイトの wp-block-cover をそのまま持ち込んだ部分）。新サイトの配色・余白に揃える */
.hvr-content .wp-block-cover { position: relative; display: flex; align-items: center; justify-content: center; min-height: 0; margin: 3em 0 0; padding: 32px 24px; border-radius: 20px; overflow: hidden; border: 1px solid #f0dcc0; }
.hvr-content .wp-block-cover__background { position: absolute; inset: 0; opacity: 1; }
.hvr-content .wp-block-cover__inner-container { position: relative; z-index: 1; width: 100%; }
.hvr-content .wp-block-cover .wp-block-columns { display: flex; flex-wrap: wrap; gap: 24px; align-items: center; margin: 0; }
.hvr-content .wp-block-cover .wp-block-column { flex: 1 1 280px; min-width: 0; }
.hvr-content .wp-block-cover h2 { margin: 0 0 .8em; padding: 0; background: none; border: 0; border-radius: 0; font-size: clamp(18px, 2.3vw, 22px); line-height: 1.6; }
.hvr-content .wp-block-cover ul { margin-bottom: 1em; }
.hvr-content .wp-block-cover p { margin-bottom: 1em; }
.hvr-content .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin: 1.2em 0 0; }
.hvr-content .wp-block-button__link { display: inline-block; padding: 14px 28px; border-radius: 999px; background: #ef8f35; color: #26190a; font-weight: 700; text-decoration: none; box-shadow: 0 3px 10px rgba(239, 143, 53, .35); }
.hvr-content .wp-block-button__link:hover { background: #e57f1f; color: #26190a; }
/* VK Blocks のスペーサーと、PC／スマホの出し分け（旧サイトのプラグインが担っていた切替。ブレークポイントは同じ：〜575px／576〜991px／992px〜） */
.vk_spacer-display-pc, .vk_spacer-display-tablet, .vk_spacer-display-mobile { display: none; }
@media (min-width: 992px) { .vk_spacer-display-pc { display: block; } .block-visibility-hide-large-screen { display: none !important; } }
@media (min-width: 576px) and (max-width: 991px) { .vk_spacer-display-tablet { display: block; } .block-visibility-hide-medium-screen { display: none !important; } }
@media (max-width: 575px) { .vk_spacer-display-mobile { display: block; } .block-visibility-hide-small-screen { display: none !important; } }

/* 前後の記事・ほかのコラム・戻る */
.hvr-postnav { margin: 40px 0 0; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.hvr-postnav a { display: block; height: 100%; padding: 16px 18px; border: 1px solid #f0dcc0; border-radius: 12px; background: #fff; color: #2e2a22; text-decoration: none; font-weight: 700; line-height: 1.6; font-size: 15px; }
.hvr-postnav a:hover { background: #fff4e8; }
.hvr-postnav a span { display: block; margin-bottom: 4px; font-size: 12px; color: #c86f14; }
.hvr-postnav__next { text-align: right; }
.hvr-related { margin: 56px 0 0; }
.hvr-related__title { margin: 0 0 20px; font-size: 20px; text-align: center; color: #2e2a22; background: none; border: 0; padding: 0; }
.hvr-card-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hvr-back { margin: 36px 0 0; display: flex; flex-wrap: wrap; gap: 8px 28px; justify-content: center; font-weight: 700; }
.hvr-back a { text-decoration: none; }

/* 運営会社 */
.hvr-company .wp-block-heading, .hvr-company h2 { margin-top: 2.2em; }
.hvr-company > h2:first-child { margin-top: 0; }
.hvr-company-dl { display: grid; grid-template-columns: 160px 1fr; margin: 0 0 2em; border-top: 1px solid #e8e2d2; background: #fff; }
.hvr-company-dl dt, .hvr-company-dl dd { margin: 0; padding: 14px 18px; border-bottom: 1px solid #e8e2d2; }
.hvr-company-dl dt { background: #fff8ef; font-weight: 800; color: #2e2a22; }
.hvr-company-dl ul { margin: 0; padding-left: 1.2em; }
.hvr-profile { display: grid; grid-template-columns: 300px 1fr; gap: 32px; align-items: start; margin: 0 0 1.5em; padding: 28px; background: #fff; border: 1px solid #f0dcc0; border-radius: 20px; }
.hvr-profile__photo { margin: 0; }
.hvr-profile__photo img { display: block; width: 100%; height: auto; border-radius: 16px; background: #fff4e8; }
.hvr-profile__name { margin: 0 0 .2em; font-size: 22px; font-weight: 800; }
.hvr-profile__name small { display: block; font-size: 14px; font-weight: 600; color: #8a8068; letter-spacing: .04em; }
.hvr-profile h3 { margin-top: 1.4em; font-size: 17px; }
.hvr-profile p:last-child { margin-bottom: 0; }

/* お問い合わせフォーム */
.hvr-form { padding: 32px 36px 36px; background: #fff; border: 1px solid #f0dcc0; border-radius: 20px; box-shadow: 0 2px 14px rgba(92, 85, 70, .06); }
.hvr-form__notice { margin: 0 0 24px; padding: 14px 18px; border-radius: 10px; background: #fdecea; border: 1px solid #f5c2bd; color: #8a1c14; font-weight: 700; }
.hvr-form__notice[hidden] { display: none; }
.hvr-form__row { display: grid; grid-template-columns: 240px 1fr; gap: 12px 28px; margin: 0; padding: 22px 0; border: 0; border-bottom: 1px dashed #f0dcc0; min-width: 0; }
.hvr-form__row:first-of-type { padding-top: 0; }
.hvr-form__label { padding: 10px 0 0; font-weight: 800; font-size: 15px; line-height: 1.6; float: none; width: auto; }
legend.hvr-form__label { padding: 10px 0 0; margin: 0; }
.hvr-form__label small { display: block; margin-top: 2px; font-weight: 500; font-size: 12px; color: #8a8068; }
.hvr-form__field { min-width: 0; }
.hvr-badge { display: inline-block; margin-right: 10px; padding: 1px 9px; border-radius: 4px; font-size: 12px; font-weight: 800; line-height: 1.7; vertical-align: 1px; }
.hvr-badge--req { background: #ef8f35; color: #26190a; }
.hvr-badge--opt { background: #ece6d6; color: #5c5546; }
.hvr-form input[type="text"], .hvr-form input[type="email"], .hvr-form input[type="tel"], .hvr-form textarea {
	display: block; width: 100%; padding: 13px 14px; border: 1px solid #d9cfb8; border-radius: 10px; background: #fffefa; color: #2e2a22; font: inherit; font-size: 16px; line-height: 1.6; box-shadow: none;
}
.hvr-form textarea { min-height: 180px; resize: vertical; }
.hvr-form input::placeholder, .hvr-form textarea::placeholder { color: #a79d86; }
.hvr-form input:focus, .hvr-form textarea:focus { outline: 3px solid rgba(79, 148, 212, .45); outline-offset: 1px; border-color: #4f94d4; }
.hvr-form [aria-invalid="true"] { border-color: #c9372c !important; background: #fff7f6; }
.hvr-form__error { margin: 8px 0 0; color: #b3261e; font-size: 14px; font-weight: 700; }
.hvr-form__error[hidden] { display: none; }
/* チェックボックス群（fieldset は grid が使えないため、凡例を上に置いて、選択肢を全幅で並べる） */
fieldset.hvr-form__row--group { display: block; }
fieldset.hvr-form__row--group > legend.hvr-form__label { display: block; float: none; width: 100%; padding: 0 0 12px; margin: 0; }
.hvr-choices { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 10px; }
.hvr-choice--wide { grid-column: 1 / -1; }
body.medisapo-no-fixed-cta .medisapo-pc-fixed-cta, body.medisapo-no-fixed-cta .medisapo-sp-fixed-footer { display: none !important; }
.hvr-choice { display: inline-flex; align-items: flex-start; gap: 8px; padding: 10px 14px; border: 1px solid #d9cfb8; border-radius: 10px; background: #fffefa; cursor: pointer; font-size: 15px; line-height: 1.5; min-height: 44px; }
.hvr-choice input { flex: 0 0 auto; width: 20px; height: 20px; margin: 1px 0 0; accent-color: #ef8f35; }
.hvr-choice:hover { background: #fff4e8; }
.hvr-choice:has(input:checked) { border-color: #ef8f35; background: #fff4e8; }
.hvr-choice:has(input:focus-visible) { outline: 3px solid #4f94d4; outline-offset: 2px; }
.hvr-form__consent { margin: 26px 0 0; text-align: center; }
.hvr-choice--consent { display: inline-flex; text-align: left; border: 0; background: none; padding: 8px 0; }
.hvr-choice--consent small { color: #8a8068; }
.hvr-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.hvr-form__submit { margin: 22px 0 0; text-align: center; }
.hvr-form__submit button { font-family: inherit; }
.hvr-form__submit button[disabled] { opacity: .6; cursor: wait; }
.hvr-form__fine { margin: 14px 0 0; text-align: center; font-size: 13px; color: #8a8068; }
.hvr-thanks { padding: 40px 28px; text-align: center; background: #fff; border: 1px solid #f0dcc0; border-radius: 20px; }
.hvr-thanks__title { margin: 0 0 14px; font-size: 22px; color: #2e2a22; background: none; border: 0; padding: 0; }
.hvr-thanks__note { font-size: 14px; color: #5c5546; }

/* フッターのリンク */
.hvr-footer-nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 22px; margin: 0 0 14px; font-size: 14px; }
.hvr-footer-nav a { color: #5c5546; text-decoration: none; }
.hvr-footer-nav a:hover { text-decoration: underline; }

/* タブレット・スマホ */
@media (max-width: 960px) {
	.hvr-card-grid, .hvr-card-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
	.hvr-profile { grid-template-columns: 220px 1fr; gap: 24px; padding: 22px; }
	.hvr-form__row { grid-template-columns: 1fr; gap: 8px; }
	.hvr-form__label, legend.hvr-form__label { padding-top: 0; }
}
@media (max-width: 640px) {
	.hvr-main { padding: 20px 16px 72px; }
	.hvr-card-grid, .hvr-card-grid--3 { grid-template-columns: 1fr; }
	.hvr-page-head { margin-bottom: 26px; }
	.hvr-cta-box { padding: 28px 18px; margin-top: 44px; }
	.hvr-cta-box__btns .hvr-btn { width: 100%; }
	.hvr-postnav { grid-template-columns: 1fr; }
	.hvr-postnav__next { text-align: left; }
	.hvr-company-dl { grid-template-columns: 1fr; }
	.hvr-company-dl dt { border-bottom: 0; padding-bottom: 6px; }
	.hvr-company-dl dd { padding-top: 6px; }
	.hvr-profile { grid-template-columns: 1fr; padding: 18px; }
	.hvr-profile__photo { max-width: 260px; margin: 0 auto; }
	.hvr-form { padding: 22px 16px 28px; border-radius: 16px; }
	.hvr-choices { grid-template-columns: 1fr; }
	.hvr-choice { width: 100%; }
	.hvr-btn--lg { width: 100%; min-width: 0; padding: 17px 20px; }
	.hvr-content .wp-block-cover { padding: 24px 16px; }
}
@media (prefers-reduced-motion: reduce) { .hvr-card, .hvr-btn { transition: none; } .hvr-card:hover { transform: none; } }
