/* 彩加ホーム C: what theme.json cannot express. Colors, fonts and spacing come from theme.json presets. */

html { scroll-padding-top: 8rem; }
body { -webkit-text-size-adjust: 100%; text-rendering: optimizeLegibility; font-kerning: normal; }
/* Header, main and footer sit directly against each other; spacing comes from each section. */
.wp-site-blocks > * + * { margin-block-start: 0; }
h1, h2, h3, h4 { text-wrap: balance; word-break: auto-phrase; }
/* Headings: proportional kana spacing keeps large Japanese headings even. */
h1, h2, h3, .saika-hero-title { font-feature-settings: "palt" 1; }
p, li, dd, td, th, figcaption { text-wrap: pretty; overflow-wrap: anywhere; }
img { height: auto; }

/* Focus is always visible, never color alone: an outline with offset. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--wp--custom--focus);
	outline-offset: 3px;
}

/* ---------- Header ---------- */
.saika-utility { font-size: var(--wp--preset--font-size--x-small); }
.saika-utility a { color: inherit; font-weight: 700; }
.saika-site-header { background: var(--wp--preset--color--base); border-bottom: 1px solid var(--wp--preset--color--line); }
/* The whole header template part sticks (a sticky child could only stick inside its own wrapper). */
.saika-sticky-header .wp-site-blocks > header.wp-block-template-part { position: sticky; top: 0; z-index: 50; }
.saika-sticky-header.admin-bar .wp-site-blocks > header.wp-block-template-part { top: var(--wp-admin--admin-bar--height, 32px); }
/* ④ U35 Phone and tablet: the top band (法人の方へ・対応地域) scrolls away and the bar with the name and the menu stays,
   so more of the small screen is left for reading. The band's height comes from functions.php (--saika-utility-h). */
@media (max-width: 781px) {
	.saika-sticky-header:not(.admin-bar) .wp-site-blocks > header.wp-block-template-part { top: calc(-1 * var(--saika-utility-h, 0px)); }
}
.saika-header-inner { max-width: var(--wp--custom--header-max); margin-inline: auto; }
.saika-site-header .wp-block-site-title { white-space: nowrap; font-weight: 800; }
.saika-site-header .wp-block-site-title a { text-decoration: none; color: var(--wp--preset--color--brand-dark); }
/* Logos are sized by height, so wide, tall and small logos all stay readable and are never enlarged beyond the
   file; sizes chosen in 彩加ホーム設定 → ロゴ・画像 come after this and win. */
.saika-brand.wp-block-site-logo img { width: auto; height: auto; max-height: 40px; max-width: min(220px, 45vw); object-fit: contain; }
.saika-brand-footer.wp-block-site-logo img { max-height: 56px; max-width: min(260px, 70vw); }
@media (max-width: 782px) { .saika-brand-header.wp-block-site-logo img { max-height: 34px; max-width: min(170px, 40vw); } }
/* Menu collapses into the menu button up to 1080px (core switches at 600px), so items never wrap. */
@media (min-width: 600px) and (max-width: 1080px) {
	.saika-site-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.saika-site-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}
@media (max-width: 1080px) {
	.saika-site-header .wp-block-navigation { margin-left: auto; }
}
/* Opened menu (phone and tablet): left-aligned, large tap targets, separators. */
.saika-site-header .wp-block-navigation__responsive-container.is-menu-open { padding: 1.25rem 1.5rem 2rem; }
.saika-site-header .is-menu-open .wp-block-navigation__responsive-container-content { align-items: stretch; }
.saika-site-header .is-menu-open .wp-block-navigation__container { align-items: stretch; gap: 0; width: 100%; }
.saika-site-header .is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: 1px solid var(--wp--preset--color--line); }
.saika-site-header .is-menu-open .wp-block-navigation-item__content { display: block; padding: .9rem .25rem; font-size: 1.05rem; }
.saika-site-header .is-menu-open .wp-block-navigation__submenu-container { padding-left: 1rem; border: 0; }
@media (max-width: 600px) {
	html { scroll-padding-top: 7rem; } /* the sticky header is about 102px tall here (44px tap targets in the top band) */
	.saika-utility .saika-site-info-area_label { display: none; }
	.saika-site-header .wp-block-site-title { font-size: 1.05rem !important; }
}
.saika-site-header .wp-block-navigation .wp-block-navigation-item__content { padding-block: .35rem; white-space: nowrap; }
/* Current page: underline plus aria-current, not color alone. */
.wp-block-navigation .current-menu-item > .wp-block-navigation-item__content,
.wp-block-navigation [aria-current="page"] {
	text-decoration: underline;
	text-decoration-thickness: 3px;
	text-underline-offset: .45em;
}
.saika-header-business { --saika-head-accent: var(--wp--preset--color--business); }

/* ---------- Page head (template part) ---------- */
.saika-page-title .wp-block-post-title { margin-block: .25rem 0; }
.saika-page-title .wp-block-post-excerpt__excerpt { color: var(--wp--preset--color--muted); max-width: 46rem; }
/* 施工事例の工事の種類（題名の上）：一覧のカードの札と同じ見た目で、押しやすい高さに。区切りの「, 」は出さない */
.saika-page-title .wp-block-post-terms { display: flex; flex-wrap: wrap; gap: .4rem; }
.saika-page-title .wp-block-post-terms a { display: inline-flex; align-items: center; min-height: 32px; padding: 0 .75rem; border-radius: 2px; background: var(--wp--preset--color--brand-soft); color: var(--wp--preset--color--brand-dark, var(--wp--preset--color--brand)); font-weight: 700; text-decoration: none; }
.saika-page-title .wp-block-post-terms a:hover, .saika-page-title .wp-block-post-terms a:focus-visible { text-decoration: underline; }
.saika-page-title .wp-block-post-terms__separator { display: none; }

/* ---------- Block styles registered in functions.php ---------- */
.is-style-saika-card { background: var(--wp--preset--color--base); border: 1px solid var(--wp--preset--color--line); border-radius: var(--wp--preset--border-radius--medium, 8px); padding: clamp(1rem, 3vw, 1.75rem); }
.is-style-saika-panel { background: var(--wp--preset--color--brand-soft); border-radius: var(--wp--preset--border-radius--medium, 8px); padding: clamp(1rem, 3vw, 1.75rem); }
.is-style-saika-note { border-left: 4px solid var(--wp--preset--color--brand); background: var(--wp--preset--color--wash); padding: 1rem 1.25rem; }
.is-style-saika-frame img { border: 1px solid var(--wp--preset--color--line); border-radius: var(--wp--preset--border-radius--medium, 8px); }
/* Images with text, diagrams and logos: shown whole on every device, never cropped by a ratio (also per device). */
.wp-block-image.is-style-saika-graphic img { object-fit: contain !important; max-width: 100%; }
/* theme-30：WordPress が後から読み込む画像（sizes="auto"）は、ブラウザーが大きさを固定（contain: size）するため、比率を auto に
   すると枠が 1500px の高さになる。その画像は画像の縦横の比率（width・height）か、ブロックの比率の枠に収める（切り抜かない） */
.wp-block-image.is-style-saika-graphic img:not([sizes^="auto" i]) { aspect-ratio: auto !important; height: auto !important; }
.is-style-saika-check { list-style: none; padding-left: 0; }
.is-style-saika-check li { position: relative; padding-left: 1.6em; }
.is-style-saika-check li::before { content: "✓"; position: absolute; left: 0; color: var(--wp--preset--color--brand); font-weight: 800; }
/* 比べる表：.wp-block-table を付けて、WordPress の表の既定（後から読み込まれることがある）より強くする */
.wp-block-table.is-style-saika-compare table { border-collapse: collapse; width: 100%; }
.wp-block-table.is-style-saika-compare th, .wp-block-table.is-style-saika-compare td { border: 1px solid var(--wp--preset--color--line); padding: .75rem 1rem; text-align: left; vertical-align: top; }
.wp-block-table.is-style-saika-compare thead th { background: var(--wp--preset--color--ink); color: var(--wp--preset--color--base); }
.wp-block-table.is-style-saika-compare tbody th, .wp-block-table.is-style-saika-compare tbody td:first-child { background: var(--wp--preset--color--wash); font-weight: 700; }
/* スマホ：1行を1枚のカードに。1列目をカードの見出し、ほかのマスは列の見出し（data-label。functions.php が付ける）を上に出す */
@media (max-width: 600px) {
	.wp-block-table.is-style-saika-compare table, .wp-block-table.is-style-saika-compare tbody, .wp-block-table.is-style-saika-compare tr, .wp-block-table.is-style-saika-compare td, .wp-block-table.is-style-saika-compare tbody th { display: block; width: 100%; box-sizing: border-box; }
	.wp-block-table.is-style-saika-compare table.has-fixed-layout { table-layout: auto; }
	.wp-block-table.is-style-saika-compare thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.wp-block-table.is-style-saika-compare tr { margin-bottom: .75rem; border: 1px solid var(--wp--preset--color--line); border-radius: 10px; overflow: hidden; background: var(--wp--preset--color--base); }
	.wp-block-table.is-style-saika-compare td, .wp-block-table.is-style-saika-compare tbody th { border: 0; border-top: 1px solid var(--wp--preset--color--line); padding: .7rem 1rem; }
	.wp-block-table.is-style-saika-compare tr > :first-child { border-top: 0; font-size: 1.0625rem; }
	.wp-block-table.is-style-saika-compare td[data-label]:not(:first-child)::before { content: attr(data-label); display: block; margin-bottom: .15rem; font-size: .8125rem; font-weight: 700; color: var(--wp--preset--color--muted); }
}
/* theme-24 ④ 空欄のマス（その工程で関わらない役割など）：PC は「—」、スマホのカードでは出さない。編集画面の入力欄（contenteditable）は対象外 */
.wp-block-table.is-style-saika-compare td:empty:not([contenteditable])::after { content: "—"; content: "—" / ""; color: var(--wp--preset--color--muted); }
@media (max-width: 600px) {
	.wp-block-table.is-style-saika-compare td:empty:not([contenteditable]) { display: none; }
}
.is-style-saika-numbered { border-top: 3px solid currentColor; padding-top: .6rem; }

/* ---------- Pattern parts ---------- */
/* Photo tiles: the heading link covers the whole tile, so there is one link per tile. */
.saika-tile { position: relative; background: var(--wp--preset--color--base); border: 1px solid var(--wp--preset--color--line); border-radius: var(--wp--preset--border-radius--small, 4px); overflow: hidden; transition: border-color .15s ease, box-shadow .15s ease; }
.saika-tile:hover, .saika-tile:focus-within { border-color: var(--wp--preset--color--brand); box-shadow: var(--wp--preset--shadow--card); }
.saika-tile figure { margin: 0; }
.saika-tile > :not(figure) { padding-inline: .75rem; }
.saika-tile .wp-block-heading a { color: inherit; text-decoration: none; }
.saika-tile .wp-block-heading a::after { content: ""; position: absolute; inset: 0; }
.saika-tile .wp-block-heading a:focus-visible { outline: none; }
.saika-tile:focus-within { outline: 3px solid var(--wp--custom--focus); outline-offset: 2px; }
.saika-tile:hover .wp-block-heading a { text-decoration: underline; text-underline-offset: 4px; }
.saika-tile-more { color: var(--wp--preset--color--brand); font-weight: 700; }

.saika-badge { display: inline-block; padding: .15rem .65rem; font-size: var(--wp--preset--font-size--x-small); font-weight: 800; letter-spacing: .04em; border-radius: 2px; }
.saika-index a { color: inherit; text-decoration: none; }
.saika-index a:hover { text-decoration: underline; }
.saika-step-num { min-width: 3.25rem; }

/* Long tables scroll inside their own box instead of widening the page. */
.wp-block-table { overflow-x: auto; }

/* ---------- Footer ---------- */
.saika-footer a { color: inherit; }
.saika-footer .wp-block-navigation .wp-block-navigation-item__content { padding-block: .2rem; }

/* =====================================================================================
   theme-06 finished components (inc/components.php). Text is always in blocks; lines,
   arrows and icons below are decoration only.
   ===================================================================================== */

/* Grids and rows built from groups: the automatic space between blocks does not apply inside them. */
.saika-structure > *, .saika-flow > *, .saika-step-detail > *, .saika-qa > *, .saika-qa-row > * { margin-block: 0 !important; }

/* ---------- Icons (decorative masks, colored by currentColor) ---------- */
.saika-icon { display: flex; align-items: center; gap: .5em; }
.saika-icon::before { content: ""; flex: 0 0 auto; width: 1.25em; height: 1.25em; background: currentColor; -webkit-mask: var(--saika-icon) center / contain no-repeat; mask: var(--saika-icon) center / contain no-repeat; order: -2; }
.saika-icon-person { --saika-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c0-4 3.6-6.5 8-6.5s8 2.5 8 6.5'/%3E%3C/svg%3E"); }
.saika-icon-home { --saika-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11l9-7 9 7'/%3E%3Cpath d='M5 10v10h14V10'/%3E%3Cpath d='M10 20v-6h4v6'/%3E%3C/svg%3E"); }
.saika-icon-tools { --saika-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20l9-9'/%3E%3Cpath d='M13 5l6 6-3 3-6-6z'/%3E%3Cpath d='M16 3l5 5'/%3E%3C/svg%3E"); }
.saika-icon-check { --saika-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E"); }
.saika-icon-scale { --saika-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 7h9M18 7h2M4 17h3M12 17h8'/%3E%3Ccircle cx='15.5' cy='7' r='2.5'/%3E%3Ccircle cx='9.5' cy='17' r='2.5'/%3E%3C/svg%3E"); }
.saika-icon-pin { --saika-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6-7-11a7 7 0 0 1 14 0c0 5-7 11-7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E"); }
.saika-icon-key { --saika-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='8' cy='15' r='4'/%3E%3Cpath d='M11 12l9-9M17 6l2 2M15 8l2 2'/%3E%3C/svg%3E"); }
.saika-icon-calendar { --saika-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Crect x='3.5' y='5' width='17' height='15.5' rx='2'/%3E%3Cpath d='M3.5 10h17M8 3v4M16 3v4'/%3E%3C/svg%3E"); }
.saika-icon-doc { --saika-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M6 3h8l4 4v14H6z'/%3E%3Cpath d='M14 3v4h4M9 12.5h6M9 16.5h6'/%3E%3C/svg%3E"); }
.saika-icon-shield { --saika-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M12 3l8 3v6c0 5-3.5 8-8 9-4.5-1-8-4-8-9V6z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E"); }
.saika-icon-building, .is-style-saika-business .wp-block-button__link { --saika-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'%3E%3Crect x='5' y='3' width='14' height='18'/%3E%3Cpath d='M9 7h2M13 7h2M9 11h2M13 11h2M9 15h2M13 15h2M11 21v-3h2v3'/%3E%3C/svg%3E"); }

/* ---------- Section labels, leads, notes ---------- */
.saika-eyebrow { display: flex; align-items: center; gap: .65em; margin: 0 0 .5rem; font-size: .9375rem; font-weight: 700; letter-spacing: .1em; line-height: 1.5; }
.saika-eyebrow::after { content: ""; order: -1; flex: 0 0 1.75rem; height: 2px; background: currentColor; }
.saika-eyebrow + h1, .saika-eyebrow + h2, .saika-eyebrow + h3 { margin-block-start: .25rem; }
.saika-lead { color: #2f3d36; line-height: 1.9; }
/* Narrow measure only where the lead sits in a column; in page-width sections it keeps the section's left edge. */
.wp-block-column .saika-lead, .saika-hero-cover-text .saika-lead, .saika-reason-text .saika-lead { max-width: 44rem; }
.has-base-color.saika-lead, .has-base-color .saika-lead { color: inherit; }
.saika-figure-note { color: var(--wp--preset--color--muted); }
.saika-subhead { display: flex; align-items: center; gap: .75rem; margin: 2rem 0 1rem; font-weight: 700; font-size: 1.0625rem; letter-spacing: .06em; }
.saika-subhead::after { content: ""; flex: 1; height: 1px; background: var(--wp--preset--color--line); }
.wp-block-image .wp-element-caption { margin-top: .6rem; font-size: .8125rem; line-height: 1.6; color: var(--wp--preset--color--muted); text-align: left; }
.saika-band > .wp-block-heading { margin-block-start: .25rem; }

/* ---------- Photo head (split) ---------- */
.saika-hero .wp-block-breadcrumbs { margin-bottom: .75rem; }
.saika-hero-title { margin-block: .15em .35em; line-height: 1.25; letter-spacing: .03em; }
.saika-hero-photo img { border-radius: 12px; box-shadow: 0 24px 50px rgba(20, 40, 29, .16); }
.saika-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 10.5rem), 1fr)); gap: 1rem 1.25rem; margin-block: 1.75rem; }
.saika-fact { border-top: 2px solid var(--wp--preset--color--ink); padding-top: .65rem; }
.saika-facts > .saika-fact { margin: 0 !important; }
.saika-fact p { margin: 0; }
.saika-fact-label { font-size: .8125rem; font-weight: 700; color: var(--wp--preset--color--muted); letter-spacing: .06em; }
.saika-fact-value { font-weight: 700; font-size: 1.0625rem; line-height: 1.6; }
.saika-hero-note { color: var(--wp--preset--color--muted); }
.saika-hero-cost .saika-fact { border-top-color: var(--wp--preset--color--cost); }

/* ---------- Photo head (text on the photo) ---------- */
.saika-hero-cover { padding-block: var(--wp--preset--spacing--50); }
.saika-hero-cover-text > * { max-width: 40rem; }
.saika-hero-cover-text > .saika-hero-title { max-width: 44rem; }
.saika-hero-cover .wp-block-breadcrumbs, .saika-hero-cover .wp-block-breadcrumbs a { color: #fff; }
.saika-hero-cover .saika-lead { color: #fff; opacity: .95; }
.saika-hero-cover .saika-hero-note a { color: #fff; }
.saika-photo-credit { margin-top: 2.5rem !important; opacity: .85; }
.saika-on-dark .is-style-outline .wp-block-button__link { color: #fff; border-color: rgba(255, 255, 255, .85); background: transparent; }
.saika-on-dark .is-style-outline .wp-block-button__link:hover { background: rgba(255, 255, 255, .14); }
@media (max-width: 782px) {
	/* Text runs across the whole photo on narrow screens: add an even shade so it stays readable.
	   Layers: photo → the cover's own overlay → this shade → text, links and focus rings. The shade never takes clicks. */
	.saika-hero-cover::before { content: ""; position: absolute; inset: 0; z-index: 1; background: rgba(8, 18, 14, .38); pointer-events: none; }
	.saika-hero-cover > .wp-block-cover__inner-container { z-index: 2; }
}

/* ---------- Photo tiles (cost page work types) ---------- */
.saika-tiles .saika-tile { border-radius: 10px; }
.saika-tiles .saika-tile .wp-block-heading { margin-block-start: .75rem; }
.saika-tiles .saika-tile > :not(figure) { padding-inline: 1rem; }

/* ---------- Photo cards ---------- */
.saika-photo-card { display: flex; flex-direction: column; background: var(--wp--preset--color--base); border: 1px solid var(--wp--preset--color--line); border-radius: 12px; overflow: hidden; }
.saika-photo-card > .saika-card-photo { margin: 0; }
.saika-card-body { padding: 1.1rem 1.25rem 1.4rem; }
.saika-card-body > * { margin-block: 0 .5rem; }
.saika-card-no { font-size: .875rem; font-weight: 800; letter-spacing: .12em; color: var(--wp--preset--color--business); }
.saika-card-body .wp-block-list { font-size: .9375rem; }

/* ---------- Structure diagram ---------- */
.saika-structure { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1.2fr) auto minmax(0, 1fr); align-items: stretch; margin-block: 1.5rem; }
.saika-role { background: var(--wp--preset--color--base); border: 1px solid var(--wp--preset--color--line); border-radius: 12px; padding: 1.25rem 1.4rem; }
.saika-role > * { margin-block: 0 .4rem; }
.saika-role-label { font-size: .8125rem; font-weight: 700; letter-spacing: .06em; color: var(--wp--preset--color--muted); }
.saika-role .wp-block-list { margin: .5rem 0 0; padding-left: 1.1em; font-size: .9375rem; line-height: 1.75; }
.saika-role.is-core { background: var(--wp--preset--color--brand-dark); color: #fff; border-color: transparent; box-shadow: var(--wp--preset--shadow--soft); }
.saika-role.is-core .wp-block-heading, .saika-role.is-core .saika-role-label { color: #fff; }
.saika-role-link { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .35rem; padding: 0 .75rem; min-width: 7rem; color: var(--wp--preset--color--brand); }
.saika-role-link p { margin: 0; font-size: .8125rem; font-weight: 700; text-align: center; color: var(--wp--preset--color--ink); }
.saika-role-link::after { content: ""; width: 2.5rem; height: 1rem; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 16' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 8h35M30 2l7 6-7 6'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 16' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 8h35M30 2l7 6-7 6'/%3E%3C/svg%3E") center / contain no-repeat; }
@media (max-width: 960px) {
	.saika-structure { grid-template-columns: minmax(0, 1fr); }
	.saika-role-link { flex-direction: row; padding: .6rem 0; min-width: 0; }
	.saika-role-link::after { transform: rotate(90deg); width: 2rem; }
}

/* ---------- Points, preparation, numbered row ---------- */
.saika-point { border-top: 2px solid var(--wp--preset--color--ink); padding-top: .9rem; }
.saika-point > * { margin-block: 0 .4rem; }
.saika-prep-item { border-top: 3px solid var(--wp--preset--color--business); padding-top: 1rem; }
.saika-prep-item > * { margin-block: 0 .5rem; }
.saika-prep-no { font-size: 1.75rem; font-weight: 800; line-height: 1; color: var(--wp--preset--color--business); }
.saika-prep-no::before { width: 1.1em; height: 1.1em; }
.saika-line-step { border-top: 3px solid var(--wp--preset--color--business); padding-top: .9rem; }
.saika-line-step > * { margin-block: 0 .4rem; }
.saika-line-no { font-size: 1.5rem; font-weight: 800; line-height: 1.1; color: var(--wp--preset--color--business); }
.saika-callout { margin-top: var(--wp--preset--spacing--40); padding: 1.5rem 1.75rem; border-radius: 12px; background: var(--wp--preset--color--business-soft); }
.saika-callout > * { margin-block: 0 .6rem; }
.saika-callout.is-quiet { background: var(--wp--preset--color--base); border: 1px solid var(--wp--preset--color--line); }
.saika-facts-list { list-style: none; padding: 0; margin: 1rem 0 1.5rem; border-top: 1px solid var(--wp--preset--color--line); }
.saika-facts-list li { padding: .55rem 0; border-bottom: 1px solid var(--wp--preset--color--line); }

/* ---------- Flow: overview ---------- */
.saika-flow { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; margin-block: 1.5rem .5rem; }
.saika-flow-group { padding: 1.25rem 1.4rem 1.5rem; border-radius: 14px; background: var(--wp--preset--color--brand-soft); }
.saika-flow-group.is-paid { background: var(--wp--preset--color--business-soft); }
.saika-flow-label { display: inline-block; margin: 0 0 1rem; padding: .2rem .9rem; border-radius: 999px; font-size: .875rem; font-weight: 700; color: #fff; background: var(--wp--preset--color--brand); }
.saika-flow-label.is-paid { background: var(--wp--preset--color--business); }
.saika-flow-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; counter-reset: saika-step; }
.saika-flow-steps[start="4"] { counter-reset: saika-step 3; }
.saika-flow-steps li { position: relative; counter-increment: saika-step; margin: 0; }
.saika-flow-steps li:not(:last-child)::after { content: ""; position: absolute; top: 2.15rem; right: -1rem; width: 1rem; height: 2px; background: currentColor; opacity: .35; }
.saika-flow-steps a { display: flex; flex-direction: column; align-items: center; gap: .45rem; height: 100%; padding: .85rem .5rem 1rem; border-radius: 10px; background: var(--wp--preset--color--base); color: var(--wp--preset--color--ink); font-weight: 700; text-align: center; text-decoration: none; }
.saika-flow-steps a:hover { box-shadow: var(--wp--preset--shadow--card); text-decoration: underline; }
.saika-flow-steps a::before { content: counter(saika-step, decimal-leading-zero); display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 50%; color: #fff; background: var(--wp--preset--color--brand); font-weight: 800; font-size: .95rem; }
.saika-flow-group.is-paid .saika-flow-steps a::before { background: var(--wp--preset--color--business); }
@media (max-width: 1024px) {
	.saika-flow { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
	.saika-flow-steps { grid-template-columns: minmax(0, 1fr); gap: .6rem; }
	.saika-flow-steps a { flex-direction: row; justify-content: flex-start; text-align: left; padding: .6rem .9rem; min-height: 3.25rem; }
	.saika-flow-steps a::before { width: 2.1rem; height: 2.1rem; font-size: .85rem; }
	.saika-flow-steps li:not(:last-child)::after { top: auto; bottom: -.6rem; left: 1.95rem; right: auto; width: 2px; height: .6rem; }
}

/* ---------- Flow: one step in detail ---------- */
.saika-step-detail { display: grid; grid-template-columns: 6rem minmax(0, 1fr); gap: 1.25rem; padding-block: 2rem; border-top: 1px solid var(--wp--preset--color--line); }
.saika-step-head { display: flex; flex-direction: column; align-items: flex-start; gap: .55rem; }
.saika-step-head > * { margin: 0; }
.saika-step-no { font-size: 2.75rem; font-weight: 800; line-height: 1; color: var(--wp--preset--color--brand); font-variant-numeric: tabular-nums; }
.saika-step-detail.is-paid .saika-step-no { color: var(--wp--preset--color--business); }
.saika-chip { display: inline-block; padding: .15rem .75rem; border-radius: 999px; font-size: .8125rem; font-weight: 700; color: #fff; background: var(--wp--preset--color--brand); }
.saika-chip.is-paid { background: var(--wp--preset--color--business); }
.saika-step-body > .wp-block-heading { margin-block: 0 1rem; }
.saika-party { height: 100%; padding: 1rem 1.2rem; border-radius: 10px; }
.saika-party > * { margin-block: 0 .35rem; }
.saika-party.is-you { background: var(--wp--preset--color--base); border: 1px solid var(--wp--preset--color--line); }
.saika-party.is-us { background: var(--wp--preset--color--brand-soft); border: 1px solid #cfe3d6; }
.saika-party-label { font-size: .875rem; font-weight: 700; letter-spacing: .04em; }
.saika-party.is-us .saika-party-label { color: var(--wp--preset--color--brand-dark); }
.saika-terms { margin-top: 1rem; padding: .7rem 1rem; border-left: 3px solid var(--wp--preset--color--accent); background: var(--wp--preset--color--accent-soft); }
.saika-more { margin-top: .9rem; }
.saika-more summary { cursor: pointer; font-weight: 700; color: var(--wp--preset--color--brand-dark); min-height: 44px; display: flex; align-items: center; }
@media (max-width: 600px) {
	.saika-step-detail { grid-template-columns: minmax(0, 1fr); gap: .75rem; padding-block: 1.5rem; }
	.saika-step-head { flex-direction: row; align-items: center; }
	.saika-step-no { font-size: 2rem; }
}

/* ---------- Reasons ---------- */
.saika-reason-photo img { border-radius: 12px; }
.saika-evidence { width: fit-content; max-width: 100%; margin-top: 1.25rem; padding: .7rem 1rem; border: 1px solid var(--wp--preset--color--line); border-radius: 8px; background: var(--wp--preset--color--base); align-items: flex-start; }
.saika-evidence.saika-icon { display: block; }
.saika-evidence::before { display: inline-block; vertical-align: -.25em; margin-right: .45em; color: var(--wp--preset--color--brand); }
.saika-qa { margin-top: var(--wp--preset--spacing--40); border: 1px solid var(--wp--preset--color--line); border-radius: 12px; overflow: hidden; background: var(--wp--preset--color--base); }
.saika-qa-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.7fr); }
.saika-qa-row + .saika-qa-row { border-top: 1px solid var(--wp--preset--color--line); }
.saika-qa-row > p { margin: 0; padding: 1rem 1.3rem; }
.saika-qa-q { font-weight: 700; background: var(--wp--preset--color--wash); }
.saika-qa-a { position: relative; }
.saika-qa-row:not(.is-head) .saika-qa-a::before { content: ""; position: absolute; left: -.5rem; top: 50%; width: .9rem; height: .9rem; background: var(--wp--preset--color--base); border-top: 1px solid var(--wp--preset--color--line); border-right: 1px solid var(--wp--preset--color--line); transform: translateY(-50%) rotate(45deg); }
.saika-qa-row.is-head > p { padding-block: .55rem; font-size: .8125rem; font-weight: 700; letter-spacing: .06em; color: #fff; background: var(--wp--preset--color--ink); }
@media (max-width: 600px) {
	.saika-qa-row { grid-template-columns: minmax(0, 1fr); }
	.saika-qa-row.is-head { display: none; }
	.saika-qa-row > p { padding: .8rem 1rem; }
	.saika-qa-q::before, .saika-qa-row:not(.is-head) .saika-qa-a::before { content: "よくある不安"; position: static; display: block; width: auto; height: auto; border: 0; background: none; transform: none; font-size: .75rem; font-weight: 700; color: var(--wp--preset--color--muted); }
	.saika-qa-row:not(.is-head) .saika-qa-a::before { content: "彩加ホームの対応"; color: var(--wp--preset--color--brand-dark); }
}
.saika-jump { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; gap: .5rem; counter-reset: saika-jump; max-width: 34rem; }
.saika-jump li { counter-increment: saika-jump; margin: 0; }
.saika-jump a { display: flex; align-items: center; gap: .8rem; min-height: 3rem; padding: .6rem 1rem; border: 1px solid var(--wp--preset--color--line); border-radius: 10px; background: var(--wp--preset--color--base); color: var(--wp--preset--color--ink); font-weight: 700; text-decoration: none; }
.saika-jump a:hover { border-color: var(--wp--preset--color--brand); text-decoration: underline; }
.saika-jump a::before { content: counter(saika-jump); display: grid; place-items: center; flex: 0 0 2rem; height: 2rem; border-radius: 50%; color: #fff; background: var(--wp--preset--color--brand); font-size: .9rem; font-weight: 800; }

/* ---------- Guarantee, comparison ---------- */
.saika-guarantee-item { padding: 1.25rem 1.35rem; border: 1px solid var(--wp--preset--color--line); border-radius: 12px; background: var(--wp--preset--color--base); }
.saika-guarantee-item > * { margin-block: 0 .45rem; }
.saika-guarantee-title { font-size: 1.125rem; font-weight: 700; color: var(--wp--preset--color--brand-dark); }
.saika-compare-card { padding: 1.5rem 1.6rem; border: 1px solid var(--wp--preset--color--line); border-radius: 14px; background: var(--wp--preset--color--base); }
.saika-compare-card > * { margin-block: 0 .6rem; }
.saika-compare-label { font-size: .875rem; font-weight: 700; color: var(--wp--preset--color--brand-dark); }
.saika-compare-note { color: var(--wp--preset--color--muted); }

/* ---------- Cost page work blocks ---------- */
.saika-work-photo img { border-radius: 12px; }
.saika-work-photo + .saika-work-photo { margin-top: .75rem; }
.saika-work-block + .saika-work-block { border-top: 1px solid var(--wp--preset--color--line); }
.saika-work-business { border-radius: 14px; }
.saika-list-panel { height: 100%; padding: 1rem 1.2rem; border: 1px solid var(--wp--preset--color--line); border-radius: 10px; background: var(--wp--preset--color--base); }
.saika-list-panel.is-conditions { background: var(--wp--preset--color--cost-soft); border-color: transparent; }
.saika-list-title { margin: 0 0 .5rem; font-size: 1rem; color: var(--wp--preset--color--cost); }
.saika-list-panel .wp-block-list { margin: 0; padding-left: 1.15em; font-size: .9375rem; line-height: 1.75; }

/* ---------- Tap targets: at least 44px for buttons, menus and stand-alone links (24px minimum for small toggles) ---------- */
.saika-utility a { display: inline-flex; align-items: center; min-height: 44px; }
.wp-block-breadcrumbs a { display: inline-flex; align-items: center; min-height: 44px; }
.saika-site-header .wp-block-navigation__responsive-container-open, .saika-site-header .wp-block-navigation__responsive-container-close { padding: 10px; margin: -10px -10px -10px 0; }
.wp-block-navigation .wp-block-navigation-submenu__toggle { min-width: 24px; min-height: 24px; display: inline-flex; align-items: center; justify-content: center; }
.wp-block-button__link { min-height: var(--wp--custom--tap, 44px); display: inline-flex; align-items: center; justify-content: center; }
.saika-tile .wp-block-heading a, .saika-card-link a { display: inline-block; padding-block: .3rem; }

/* ---------- Questions (details) ---------- */
.wp-block-details { border-bottom: 1px solid var(--wp--preset--color--line); padding-block: .2rem; }
.saika-faq .wp-block-details:first-of-type, .wp-block-details:not(.wp-block-details + .wp-block-details) { border-top: 1px solid var(--wp--preset--color--line); }
.wp-block-details > summary { display: flex; align-items: center; gap: .75rem; min-height: 3.25rem; padding-block: .6rem; font-weight: 700; cursor: pointer; list-style: none; }
.wp-block-details > summary::-webkit-details-marker { display: none; }
.wp-block-details > summary::after { content: "+"; margin-left: auto; flex: 0 0 auto; display: grid; place-items: center; width: 1.75rem; height: 1.75rem; border-radius: 50%; background: var(--wp--preset--color--brand-soft); color: var(--wp--preset--color--brand-dark); font-weight: 700; }
.wp-block-details[open] > summary::after { content: "−"; }
.wp-block-details > :not(summary) { margin-block: 0 1rem; color: #2f3d36; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* Header / footer variants (theme-10, chosen in the Site Editor; the current header and footer are unchanged). */
.saika-header-two-row .saika-header-row2 { border-top: 1px solid var(--wp--preset--color--line); }
.saika-header-compact .saika-header-inner { min-height: 56px; }
.saika-footer-simple .wp-block-site-title, .saika-footer-simple .saika-site-info { margin: 0; }
.saika-footer-company .saika-contact-actions + p { margin-top: 1rem; }
.saika-header-centered .saika-header-logo-row { text-align: center; }
.saika-header-centered .saika-header-inner { row-gap: 0.4rem; }
@media (max-width: 599px) { /* phones: the menu is a button, so the logo and the button share one row */
	.saika-header-centered { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; }
	.saika-header-centered > .saika-header-logo-row, .saika-header-centered > .saika-header-inner { margin: 0 !important; max-width: none; padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; }
	.saika-header-centered > .saika-header-logo-row { justify-content: flex-start; }
	.saika-header-centered > .saika-header-inner { justify-content: flex-end; }
}
/* Tablet: four cards never sit as three plus one (2 × 2 until four fit in a row). */
@media (min-width: 600px) and (max-width: 960px) {
	.wp-block-group.is-layout-grid:has(> .is-style-saika-card:nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* Tablet footer: the company block across the top, the link columns side by side below (core stacks every column). */
@media (min-width: 600px) and (max-width: 781px) {
	.saika-footer > .wp-block-columns { flex-wrap: wrap !important; }
	.saika-footer > .wp-block-columns > .wp-block-column:first-child { flex-basis: 100% !important; }
	.saika-footer > .wp-block-columns > .wp-block-column:not(:first-child) { flex: 1 1 0 !important; min-width: 0; }
}
/* ④ U32 Phone footer: each link list in two columns (one long column took 1.7 screens at 390); taps stay 44px high. */
@media (max-width: 599px) {
	.saika-footer .wp-block-navigation__container { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1rem !important; align-items: start; }
	.saika-footer .wp-block-navigation .wp-block-navigation-item__content { display: flex; align-items: center; min-height: 44px; padding-block: .25rem; }
}
body:not(.editor-styles-wrapper) .saika-footer-banner-slot:not(:has(.saika-banner)) { display: none; } /* an empty slot shows nothing on the site; the editor keeps it visible */
.saika-footer .saika-action-phone, .saika-footer .saika-action-phone:hover { color: var(--wp--preset--color--brand-dark); }

/* Icon colour / size and the round number label, chosen in the editor (B23 アイコン・番号・ラベル). */
.saika-icon-lg::before { width: 1.6em; height: 1.6em; }
.saika-icon-c-brand::before { background: var(--wp--preset--color--brand); }
.saika-icon-c-accent::before { background: var(--wp--preset--color--accent); }
.saika-icon-c-business::before { background: var(--wp--preset--color--business); }
.saika-icon-c-cost::before { background: var(--wp--preset--color--cost); }
.saika-icon-c-muted::before { background: var(--wp--preset--color--muted); }
p.saika-num, h2.saika-num, h3.saika-num, h4.saika-num { display: inline-flex; align-items: center; justify-content: center; min-width: 2.4em; min-height: 2.4em; padding: 0 .6em; border-radius: 999px; background: var(--wp--preset--color--brand); color: var(--wp--preset--color--base); font-weight: 800; line-height: 1; }
/* ④ U40 担当が現場に入るとき：番号付きの札を横に並べる（狭い画面では折り返す） */
.saika-visit-steps { list-style: none; counter-reset: visit; display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0 .5rem; padding: 0; }
.saika-visit-steps > li { counter-increment: visit; display: flex; align-items: center; gap: .5rem; margin: 0; padding: .5rem .9rem .5rem .55rem; border: 1px solid var(--wp--preset--color--line); border-radius: 999px; background: var(--wp--preset--color--base); font-weight: 700; line-height: 1.4; }
.saika-visit-steps > li::before { content: counter(visit); display: inline-grid; place-items: center; flex: none; width: 1.6rem; height: 1.6rem; border-radius: 50%; background: var(--wp--preset--color--brand); color: var(--wp--preset--color--base); font-size: .8rem; font-weight: 800; }
/* ④2 U45 スマホ：写真つきの入口（TOP の「直したい場所・状況から探す」・工事の入口・費用）を2列に。縦に1枚ずつだと4つで約2.5画面あった */
/* theme-24 R01：列数・間隔・見出しの大きさを端末ごとに指定した部品（T09 が saika-set-… を付ける）は、その指定を優先する。
   スマホの指定は480px以下（theme.json の viewport.mobile と同じ境目）、481〜599px はタブレットの指定を見る。境目は変えない */
@media (width <= 480px) {
	.is-layout-grid:not(.saika-set-m-cols):has(> .saika-tile) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.is-layout-grid:not(.saika-set-m-gap):has(> .saika-tile) { gap: .75rem !important; }
	.is-layout-grid:has(> .saika-tile) > .saika-tile .wp-block-heading:not(.saika-set-m-font) { font-size: 1rem !important; }
}
@media (480px < width <= 599px) {
	.is-layout-grid:not(.saika-set-t-cols):has(> .saika-tile) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.is-layout-grid:not(.saika-set-t-gap):has(> .saika-tile) { gap: .75rem !important; }
	.is-layout-grid:has(> .saika-tile) > .saika-tile .wp-block-heading:not(.saika-set-t-font) { font-size: 1rem !important; }
}
@media (max-width: 599px) {
	.is-layout-grid:has(> .saika-tile) > .saika-tile > :not(figure) { padding-inline: .6rem; }
	.is-layout-grid:has(> .saika-tile) > .saika-tile .wp-block-heading { line-height: 1.45; }
}
/* theme-24 R01：端末ごとに列を増やして入口が細くなっても、見出しを枠で切らない（収まらない語だけ途中で折り返す） */
.saika-tile .wp-block-heading { overflow-wrap: anywhere; }
/* ④2 U46 フッターのリンクの名前は、語の途中で折り返さない（「オーナ／ーの方」「リフォ／ーム」→ 句の切れ目で）。見出しと同じ指定 */
.saika-footer .wp-block-navigation-item__content { word-break: auto-phrase; text-wrap: balance; }
/* ④2 U47 スマホ：写真つきのカード（法人の「対応する工事」）の写真を横長に。4:3 では1枚 約270px で、4枚で写真だけ1画面を超えていた */
/* theme-24 R01：写真の比率を端末ごとに指定した写真（saika-set-m-ratio / -t-ratio）は、その比率を優先する */
@media (width <= 480px) {
	.saika-photo-card > .saika-card-photo:not(.saika-set-m-ratio) img { aspect-ratio: 16 / 9 !important; }
}
@media (480px < width <= 599px) {
	.saika-photo-card > .saika-card-photo:not(.saika-set-t-ratio) img { aspect-ratio: 16 / 9 !important; }
}
@media (max-width: 599px) {
	/* U47：番号（01〜04）を見出しの横に（U33 の番号付きの要点と同じ） */
	.saika-photo-card .saika-card-body { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: .6rem; align-items: baseline; }
	.saika-photo-card .saika-card-body > * { grid-column: 1 / -1; }
	.saika-photo-card .saika-card-body > .saika-card-no { grid-column: 1; margin: 0; }
	.saika-photo-card .saika-card-body > .saika-card-no + * { grid-column: 2; margin-top: 0; }
}
/* theme-30 2：一般⇄法人の入口を、文字のリンクではなくボタンに（本人 10-07「法人向けのページのボタンが無いから分かりにくい」）。
   上部の帯の切り替え（全ページ）は枠付きのボタンと矢印。矢印は飾りで、行き先はボタンの文字が示す */
.saika-audience-switch a { gap: .4em; padding: 0 .95rem; border: 1px solid currentColor; border-radius: 999px; text-decoration: none; line-height: 1.3; }
.saika-audience-switch a::after { content: "→"; }
.saika-audience-switch a:hover, .saika-audience-switch a:focus-visible { background: rgba(255, 255, 255, .16); }
/* ボタンのスタイル「法人の入口」：白地・紺の文字と枠・建物の印（一般の相談ボタン＝橙の塗り、事例＝白い枠線と見分ける） */
.is-style-saika-business .wp-block-button__link { gap: .5em; border: 2px solid var(--wp--preset--color--business); background: var(--wp--preset--color--base); color: var(--wp--preset--color--business); }
.is-style-saika-business .wp-block-button__link::before { content: ""; flex: none; width: 1.2em; height: 1.2em; background: currentColor; -webkit-mask: var(--saika-icon) center / contain no-repeat; mask: var(--saika-icon) center / contain no-repeat; }
.is-style-saika-business .wp-block-button__link:hover, .is-style-saika-business .wp-block-button__link:focus-visible { background: var(--wp--preset--color--business-soft); }
/* TOP の写真の中の「法人の入口」：一般向けのボタンの下に線で区切り、ボタンと短い説明（何のページか） */
.saika-audience-entry { margin-top: var(--wp--preset--spacing--30); padding-top: var(--wp--preset--spacing--30); border-top: 1px solid rgba(255, 255, 255, .45); gap: .6rem 1.1rem; }
.saika-audience-entry > .wp-block-buttons { margin: 0; }
.saika-audience-entry > p { margin: 0; max-width: 38rem; word-break: auto-phrase; text-wrap: pretty; }
/* 入口の分だけ写真の中身が高くなり、最小の高さを超えると上下の余白が 1em になる（見出しがヘッダーに詰まる）ため、余白を確保 */
.wp-block-cover:has(> .wp-block-cover__inner-container > .saika-audience-entry) { padding-block: var(--wp--preset--spacing--50); }
/* theme-30 3：体制の図の画像（イラスト・写真。画像ブロックの「置換」で差し替える）。カードの上端いっぱいに置く。
   比率は画像ブロックの設定（PC 3:2、スマホ 16:9）。縦長の写真に替えても枠の比率で切り抜き、カードは崩れない */
.saika-role > .wp-block-image.saika-role-image { margin: -1.25rem -1.4rem 1rem !important; }
.saika-role > .wp-block-image.saika-role-image img { display: block; width: 100%; border-radius: 12px 12px 0 0; }
/* タブレット（図が縦に並ぶ幅）：画像を文字の左に（上に置くと1枚 約490px の高さになる）。タブレットの比率を本人が決めた画像は除く */
@media (481px <= width <= 960px) {
	.saika-role:has(> .saika-role-image:not(.saika-set-t-ratio)) { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); column-gap: 1.25rem; align-content: start; }
	.saika-role:has(> .saika-role-image:not(.saika-set-t-ratio)) > * { grid-column: 2; }
	/* 画像は枠いっぱいに敷く（高さは右の文字で決まる。画像の縦横で枠が伸びない） */
	.saika-role > .wp-block-image.saika-role-image:not(.saika-set-t-ratio) { grid-column: 1; grid-row: 1 / span 8; align-self: stretch; position: relative; min-height: 10rem; margin: -1.25rem 0 -1.25rem -1.4rem !important; }
	.saika-role > .wp-block-image.saika-role-image:not(.saika-set-t-ratio) img { position: absolute; inset: 0; width: 100%; height: 100% !important; aspect-ratio: auto !important; object-fit: cover; border-radius: 12px 0 0 12px; }
}
/* 工事の場所の参考図（画像型）：図全体を見せる（切り抜かない）。番号の一覧は編集できる文字で、費用のページの各工事へ */
.saika-scope-figure { margin-block: var(--wp--preset--spacing--40) !important; }
.saika-scope-figure .wp-block-image img { border: 1px solid var(--wp--preset--color--line); border-radius: 12px; }
.saika-scope-figure .wp-element-caption { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); text-align: left; }
.saika-scope-list { list-style: none; counter-reset: scope; display: grid; gap: .15rem; margin: .5rem 0 1rem; padding: 0; }
.saika-scope-list > li { counter-increment: scope; display: flex; align-items: center; gap: .7rem; margin: 0; font-weight: 700; }
.saika-scope-list > li::before { content: counter(scope); display: inline-grid; place-items: center; flex: none; width: 2.1rem; height: 2.1rem; border-radius: 50%; background: var(--wp--preset--color--accent); color: #fff; font-weight: 800; }
.saika-scope-list a { display: inline-flex; align-items: center; min-height: 44px; }
.saika-scope-list a::after { content: "→"; margin-left: .4em; }
/* theme-34 外回り：写真・図つきの入口のカード（画像は画像ブロックの「置換」で差し替える。ボタンはカードの下にそろえる） */
.saika-o-cards { gap: var(--wp--preset--spacing--30) !important; }
.saika-o-card { display: flex; flex-direction: column; padding: 0 1.25rem 1.25rem; border: 1px solid var(--wp--preset--color--line); border-radius: 12px; background: var(--wp--preset--color--base); overflow: hidden; }
.saika-o-card > * { margin-block: 0 .6rem; }
.saika-o-card > .wp-block-image:first-child { margin: 0 -1.25rem 1rem !important; }
.saika-o-card > .wp-block-image:first-child img { display: block; width: 100%; }
.saika-o-card > .wp-block-image .wp-element-caption { margin: .35rem 1.25rem 0; font-size: var(--wp--preset--font-size--x-small); color: var(--wp--preset--color--muted); text-align: left; }
.saika-o-card > .wp-block-buttons { margin-top: auto !important; }
/* 図の番号の説明（番号は一覧の印。説明の文は長いので上でそろえ、太字にしない） */
.saika-o-legend > li { align-items: flex-start; font-weight: 400; line-height: 1.7; }
.saika-o-legend > li::before { margin-top: .1rem; }
/* theme-30 4：施工事例の本文の「写真：…」（事例の写真が何を写しているか） */
.saika-case-photo-note { color: var(--wp--preset--color--muted); }

/* P9（2026-10-21）お知らせの一覧（home.html）とリフォームコラムの一覧（category-column.html） */
.saika-news-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--wp--preset--color--line); }
.saika-news-list > li { margin: 0; padding: .8rem 0; border-bottom: 1px solid var(--wp--preset--color--line); }
.saika-news-row { gap: .15rem 1.5rem; }
.saika-news-row .wp-block-post-date { min-width: 9em; color: var(--wp--preset--color--muted); }
.saika-news-row .wp-block-post-title { margin: 0; flex: 1 1 18rem; min-width: 0; }
.saika-column-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; align-items: start; }
.saika-column-grid > li { margin: 0; }
.saika-column-card { position: relative; background: var(--wp--preset--color--base); border: 1px solid var(--wp--preset--color--line); border-radius: 6px; overflow: hidden; }
.saika-column-card:focus-within { outline: 3px solid var(--wp--custom--focus); outline-offset: 2px; }
.saika-column-card .wp-block-post-featured-image { margin: 0; }
.saika-column-card .wp-block-post-featured-image img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.saika-column-card-body { padding: 1rem 1.1rem 1.2rem; }
.saika-column-card-body .wp-block-post-date { color: var(--wp--preset--color--muted); }
.saika-column-card-body .wp-block-post-title { margin: .3rem 0 .4rem; line-height: 1.6; }
.saika-column-card-body .wp-block-post-title a { color: inherit; text-decoration: none; }
.saika-column-card-body .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; }
.saika-column-card-body .wp-block-post-title a:focus-visible { outline: none; }
.saika-column-card:hover .wp-block-post-title a { text-decoration: underline; text-underline-offset: 4px; }
.saika-column-card-body .wp-block-post-excerpt { margin: 0; color: var(--wp--preset--color--muted); }
.saika-column-card-body .wp-block-post-excerpt__more-text { display: none; }
@media (max-width: 781px) { .saika-column-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .saika-column-grid { grid-template-columns: minmax(0, 1fr); } }
/* P9 9.3：トップの入口 8 項目（PC 4 列×2 段・タブレットとスマホ 2 列×4 段）。とても狭い画面（359px 以下）だけ 1 列 */
.saika-tile-grid .saika-tile { height: 100%; }
@media (max-width: 359px) { .saika-tile-grid.is-layout-grid { grid-template-columns: minmax(0, 1fr) !important; } }
/* P11（2026-10-21）トップの法人向け案内枠（8 項目の下）。中身は固定ページの標準ブロック（グループ・段落・見出し・ボタン）で編集する */
.saika-biz-panel { margin-top: var(--wp--preset--spacing--40); padding: 1.25rem 1.5rem; border-left: 4px solid var(--wp--preset--color--business); border-radius: 8px; gap: 1rem 2rem; }
.saika-biz-panel > .saika-biz-panel-copy { flex: 1 1 24rem; min-width: 0; }
.saika-biz-panel-copy > * { margin-block: 0; }
.saika-biz-panel-label { display: inline-block; padding: .1rem .6rem; border-radius: 2px; background: var(--wp--preset--color--business); color: var(--wp--preset--color--base); font-size: .8rem; font-weight: 700; line-height: 1.6; }
.saika-biz-panel-copy > .saika-biz-panel-title { margin-top: .45rem; color: var(--wp--preset--color--business); font-size: var(--wp--preset--font-size--large, 1.25rem); line-height: 1.5; }
.saika-biz-panel-copy > .saika-biz-panel-text { margin-top: .35rem; line-height: 1.75; }
.saika-biz-panel > .wp-block-buttons { flex: 0 0 auto; margin: 0; }
@media (max-width: 600px) {
	.saika-biz-panel { padding: 1.1rem 1.1rem 1.25rem; }
	.saika-biz-panel > .wp-block-buttons, .saika-biz-panel > .wp-block-buttons > .wp-block-button { width: 100%; }
	.saika-biz-panel .wp-block-button__link { width: 100%; justify-content: center; }
}

/* 12.1 記事部品「写真＋説明」：写真を選ぶまでは、空の枠を出さずに文章を全幅で表示する（編集画面では枠に「画像を選ぶ」が入るので対象外） */
.wp-block-media-text:has(> .wp-block-media-text__media:empty) { grid-template-columns: 100% !important; }
.wp-block-media-text:has(> .wp-block-media-text__media:empty) > .wp-block-media-text__media { display: none; }
.wp-block-media-text:has(> .wp-block-media-text__media:empty) > .wp-block-media-text__content { grid-column: 1; grid-row: 1; padding-inline: 0; }

/* 10/29 本人の承認：スマホの「ページ上部へ戻る」（相談バーと同じ 782px 以下だけ。PC には出さない）。濃い緑の丸 44px に白い↑。
   右端から 16px、相談バーの上端から 16px 上（--saika-bar-h はバーの実際の高さ。バーがないときは画面の下端のセーフエリアから 16px）。
   出す・隠す・位置は assets/js/back-to-top.js。目次の一覧より下に重なり、一覧を開いている間は隠す */
.saika-to-top { display: none; }
@media screen and (max-width: 782px) {
	.saika-to-top:not([hidden]) { position: fixed; z-index: 30; right: calc(16px + env(safe-area-inset-right, 0px)); bottom: calc(16px + var(--saika-bar-h, env(safe-area-inset-bottom, 0px))); display: grid; place-items: center; box-sizing: border-box; width: 44px; height: 44px; margin: 0; padding: 0; border: 0; border-radius: 50%; background: var(--wp--preset--color--brand-dark, #0f4d31); color: #fff; box-shadow: 0 2px 10px rgba(0, 0, 0, .2); cursor: pointer; -webkit-tap-highlight-color: transparent; }
	.saika-to-top svg { display: block; }
	body:has(.saika-index-float-panel:not([hidden])) .saika-to-top { visibility: hidden; }
}
