/* Shared editorial rhythm. Child themes inherit tokens and can override them. */
.siteframe-base-main > .wp-block-post-content:has(.kumitate-pattern) { max-width: var(--wp--style--global--wide-size,1104px); }
.kumitate-pattern { --wp--style--global--content-size: var(--wp--style--global--wide-size,1104px); margin-block: 96px; }
/* Nested patterns belong to their heading, not to the outer section rhythm. */
.kumitate-pattern .kumitate-pattern { margin-block: 32px 0; }
.kumitate-pattern .kumitate-section + .kumitate-section { margin-block-start: clamp(48px,6vw,80px); }
.kumitate-pattern .wp-block-columns { gap: var(--kumitate-pattern-gap,40px); align-items: stretch; }
.kumitate-pattern :is(.is-style-kumitate-panel,.is-style-kumitate-card,.is-style-kumitate-dark) { padding: clamp(24px,3vw,40px); }
.kumitate-pattern .wp-block-image { margin-block: 0; }
.kumitate-pattern .wp-block-image img { display: block; width: 100%; border-radius: var(--wp--custom--siteframe--radius--card,16px); }
.kumitate-pattern :is(h2,h3) { text-wrap: pretty; }
.kumitate-pattern h2 { font-size: clamp(24px,2.3vw,32px); line-height: 1.5; }
.kumitate-pattern h3 { font-size: clamp(20px,2vw,24px); line-height: 1.5; }
.kumitate-pattern p { font-size: 16px; line-height: 1.9; }
.kumitate-pattern > p + h2 { margin-block-start: 48px; }
.kumitate-pattern > h2 + .wp-block-columns { margin-block-start: 32px; }
.kumitate-pattern .wp-block-buttons { margin-block-start: 28px; }
.kumitate-pattern-sample { padding-block: clamp(32px,4vw,56px); }
.kumitate-pattern-sample > .kumitate-pattern { margin-block: 32px 0; }
.kumitate-pattern-sample > h2 { font-size: 18px; }
.kumitate-pattern-sample > p { font-size: 14px; opacity: .8; }
@media (max-width: 781px) {
 .kumitate-pattern { margin-block: 64px; }
 .kumitate-pattern .wp-block-columns { gap: 28px; }
 .kumitate-pattern .wp-block-column + .wp-block-column { margin-block-start: 8px; }
}

/* Role-specific composition: do not infer image geometry from column nesting. */
.kumitate-pattern--wide-intro .wp-block-image.alignwide img,
.kumitate-pattern--company-page .wp-block-image.alignwide img { aspect-ratio: 5 / 2; object-fit: cover; object-position: center 55%; }
/* A single reading group avoids an empty heading column and a heavy action column. */
.kumitate-intro-copy { max-width: 720px !important; margin: 48px auto 0 !important; text-align: center; }
.kumitate-intro-copy > :is(h1,h2) { max-width: none; margin: 0; text-wrap: balance; font-size: clamp(24px,2.6vw,36px); }
.kumitate-intro-copy > p { max-width: 640px; margin: 24px auto 0 !important; text-align: left; }
.kumitate-pattern .kumitate-intro-copy .wp-block-buttons { justify-content: center !important; margin: 28px 0 0 !important; }

.kumitate-pattern--feature > .wp-block-columns,
.kumitate-pattern--alternating-story .wp-block-columns { align-items: center; gap: 64px; }
.kumitate-pattern--feature .wp-block-image img,
.kumitate-pattern--alternating-story .wp-block-image img { aspect-ratio: 3 / 2; object-fit: cover; }
.kumitate-feature-copy { max-width: 440px; margin-inline: auto; }
.kumitate-feature-copy > h2 { margin-top: 0; }
.kumitate-feature-copy > p { margin-top: 24px; }
.kumitate-pattern--feature > .wp-block-columns > .wp-block-column { align-self: center; }
.kumitate-pattern .kumitate-feature-copy .wp-block-buttons { justify-content: flex-start !important; }

.kumitate-pattern--photo-links .is-style-kumitate-card { padding: 0; overflow: hidden; height: 100%; }
.kumitate-pattern--photo-links .wp-block-image img { aspect-ratio: 3 / 2; object-fit: cover; border-radius: 0; }
.kumitate-card-caption { padding: 28px 32px 24px; margin-top: 0 !important; }
.kumitate-pattern--photo-links h3 { margin-top: 0; margin-bottom: 0; font-size: 24px; }
.kumitate-pattern--photo-links p { margin-top: 12px; margin-bottom: 0; }
/* Compact card action: equal outside padding, explicit label-to-icon gap. */
.kumitate-pattern.kumitate-pattern--photo-links .wp-block-buttons { justify-content: flex-end !important; margin: 24px 0 0 !important; }
.kumitate-pattern.kumitate-pattern--photo-links .wp-block-button { margin: 0 !important; width: auto; }
.kumitate-pattern.kumitate-pattern--photo-links .wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; gap: 16px; padding: 12px 24px; min-width: 0; width: auto; min-height: 48px; box-sizing: border-box; background: transparent; color: var(--wp--preset--color--contrast); text-align: center; box-shadow: none; }
.kumitate-pattern.kumitate-pattern--photo-links .wp-block-button__link::after { position: static; flex: 0 0 16px; width: 16px; height: 16px; transform: none; }
.kumitate-pattern.kumitate-pattern--photo-links .wp-block-button__link:is(:hover,:focus-visible) { background: var(--wp--preset--color--surface); box-shadow: none; }
.kumitate-pattern.kumitate-pattern--photo-links .wp-block-button__link:hover::after { transform: translateX(3px); }
.kumitate-pattern.kumitate-pattern--photo-links .wp-block-button__link:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
 .kumitate-pattern.kumitate-pattern--photo-links .wp-block-button__link:hover::after { transform: none; }
}
@media (max-width: 781px) {
 .kumitate-pattern--wide-intro .wp-block-image.alignwide img,
 .kumitate-pattern--company-page .wp-block-image.alignwide img { aspect-ratio: 3 / 2; }
 .kumitate-intro-copy { margin-top: 28px !important; text-align: left; }
 .kumitate-pattern .kumitate-intro-copy .wp-block-buttons { justify-content: flex-start !important; }
 .kumitate-pattern--feature > .wp-block-columns { gap: 28px; }
 .kumitate-card-caption { padding: 24px; }
 .kumitate-pattern--photo-links h3 { font-size: 22px; margin-top: 0; }
}

/* Information pairs: generous value column, flat label surfaces, no grid lines. */
.kumitate-pattern--information .wp-block-table table { border-collapse: separate; border-spacing: 0 8px; }
.kumitate-pattern--information .wp-block-table td { border: 0; padding: 20px 24px; vertical-align: top; }
.kumitate-pattern--information .wp-block-table td:first-child { width: 25%; background: var(--wp--preset--color--surface, #f4f4f4); border-radius: 12px; font-weight: 700; }
@media (max-width: 600px) {
 .kumitate-pattern--information .wp-block-table td { padding: 16px 12px; }
 .kumitate-pattern--information .wp-block-table td:first-child { width: 28%; }
}

/* News rows share the section grid; proximity groups metadata and title. */
.kumitate-pattern--news-rows .wp-block-post-template { display: grid; gap: 8px; }
.kumitate-pattern--news-rows .wp-block-post-template > li > .wp-block-group { padding: 24px !important; border-radius: 16px; transition: background-color .2s ease; }
.kumitate-pattern--news-rows .wp-block-post-template > li > .wp-block-group:is(:hover,:focus-within) { background: var(--wp--preset--color--surface); }
.kumitate-pattern--news-rows .wp-block-post-title { margin-block: 8px 0; }
.kumitate-pattern--news-rows .wp-block-post-terms a { text-decoration: none; }

/* Keep numbered labels with their heading; separate the explanatory paragraph. */
.kumitate-pattern--values .wp-block-column > p:first-child { margin-block: 0; line-height: 1.5; }
.kumitate-pattern--values .wp-block-column > p:first-child + h3 { margin-block: 8px 0; }
.kumitate-pattern--values .wp-block-column > h3 + p { margin-block: 16px 0; }
/* Optical alignment: geometric arrow avoids a font glyph's baseline offset. */
.kumitate-pattern .wp-block-button__link::after {
 content: ""; width: 16px; height: 16px; background: currentColor;
 mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 12h15m-6-6 6 6-6 6' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Content-rich tables become label/value stacks rather than compressed columns. */
@media (max-width: 600px) {
 .kumitate-pattern--information .wp-block-table table,
 .kumitate-pattern--information .wp-block-table tbody,
 .kumitate-pattern--information .wp-block-table tr,
 .kumitate-pattern--information .wp-block-table td { display: block; width: auto; }
 .kumitate-pattern--information .wp-block-table table { border-spacing: 0; }
 .kumitate-pattern--information .wp-block-table tr { padding: 20px 0; }
 .kumitate-pattern--information .wp-block-table tr:first-child { padding-top: 0; }
 .kumitate-pattern--information .wp-block-table td:first-child { width: auto; padding: 0; background: transparent; border-radius: 0; }
 .kumitate-pattern--information .wp-block-table td + td { padding: 8px 0 0; }
}
/* Distinct reading modes: photographic story, then compact editorial updates. */
.kumitate-pattern--feature { padding: 40px; box-sizing: border-box; border-radius: 24px; background: var(--wp--preset--color--surface,#f4f4f4); }
.kumitate-pattern--feature > .wp-block-columns { gap: 48px; margin-bottom: 0; }
.kumitate-pattern--feature .kumitate-feature-copy { max-width: 416px; }
.kumitate-pattern--feature .wp-block-image img { border-radius: 16px; }
@media (min-width: 1000px) {
 .kumitate-pattern:has(> .kumitate-pattern--news-rows) { display: grid; grid-template-columns: minmax(240px,1fr) minmax(0,2fr); gap: 64px; align-items: start; }
 .kumitate-pattern:has(> .kumitate-pattern--news-rows) > h2 { margin: 24px 0 0 !important; max-width: 10em; }
 .kumitate-pattern:has(> .kumitate-pattern--news-rows) > .kumitate-pattern--news-rows { margin: 0 !important; width: 100%; }
}
@media (max-width: 781px) {
 .kumitate-pattern--feature { padding: 24px; border-radius: 20px; }
 .kumitate-pattern--feature > .wp-block-columns { gap: 24px; }
 .kumitate-pattern--feature .wp-block-column + .wp-block-column { margin-top: 0; }
 .kumitate-pattern--news-rows .wp-block-post-template > li > .wp-block-group { padding: 20px 0 !important; }
}
.kumitate-pattern--news-rows .wp-block-post-template > li { margin-block: 0; }
@media (max-width: 999px) {
 .kumitate-pattern:has(> .kumitate-pattern--news-rows) > h2 br { display: none; }
}
.kumitate-pattern--steps .is-style-kumitate-panel > p:first-child { margin: 0; line-height: 1.5; }
.kumitate-pattern--steps .is-style-kumitate-panel > h3 { margin-block: 8px 0; }
.kumitate-pattern--steps .is-style-kumitate-panel > h3 + p { margin-block: 16px 0; }
.siteframe-base-main .kumitate-pattern .wp-block-button__link::after { width: 16px; height: 16px; }
/* Editorial panels stay aligned when neighboring descriptions differ in length. */
.kumitate-pattern .wp-block-column > .is-style-kumitate-panel { height: 100%; box-sizing: border-box; }
.kumitate-pattern .is-style-kumitate-panel > h4 { margin-block: 24px 0; font-size: 18px; line-height: 1.5; }
.kumitate-pattern .is-style-kumitate-panel > h4 + p { margin-block-start: 12px; }
.kumitate-pattern > p + .wp-block-columns { margin-block-start: 32px; }

/* Project examples lead with photography, followed by a compact caption. */
.kumitate-pattern--case-studies .is-style-kumitate-card { padding: 0; height: 100%; overflow: hidden; }
.kumitate-pattern--case-studies .wp-block-image img { aspect-ratio: 3 / 2; object-fit: cover; border-radius: 0; }
.kumitate-pattern--case-studies .kumitate-card-caption > h3 { margin: 0; }
.kumitate-pattern--case-studies .kumitate-card-caption > p { margin: 16px 0 0; }

/* Photographic page entrances with one consistent, editable title panel. */
.kumitate-photo-hero { position: relative; display: grid; width: calc(100vw - 48px); max-width: none !important; margin-inline: calc(50% - 50vw + 24px) !important; margin-block: 0 48px; border-radius: 24px; overflow: hidden; }
.kumitate-photo-hero > .wp-block-image { grid-area: 1 / 1; margin: 0; }
.kumitate-photo-hero > .wp-block-image img { display: block; width: 100%; height: 400px; object-fit: cover; }
.kumitate-photo-hero--home > .wp-block-image img { height: 500px; }
.kumitate-photo-hero > .kumitate-photo-hero__title { grid-area: 1 / 1; z-index: 1; align-self: end; justify-self: start; margin: 40px max(40px,calc((100vw - 1104px) / 2 - 24px)) !important; padding: 24px 32px; background: #fff; border-radius: 20px; border-left: 8px solid var(--kumitate-accent,#d9ed99); }
.kumitate-photo-hero__title h1 { margin: 0; font-size: clamp(28px,3vw,40px); line-height: 1.4; }
.kumitate-photo-hero--home h1 { font-size: clamp(32px,4vw,52px); }
.kumitate-photo-hero + .kumitate-pattern { margin-top: 48px; }
.kumitate-pattern--values .wp-block-column > p:first-child,
.kumitate-pattern--steps .is-style-kumitate-panel > p:first-child { color: var(--kumitate-accent,#d9ed99); font-weight: 700; }
.kumitate-pattern > h2::before { content: ''; display: block; width: 32px; height: 6px; border-radius: 3px; background: var(--kumitate-accent,#d9ed99); margin-bottom: 16px; }
.kumitate-pattern--feature { background: color-mix(in srgb,var(--kumitate-accent,#d9ed99) 6%,white); }
.kumitate-pattern .wp-block-button:not(.is-style-outline) > .wp-block-button__link:is(:hover,:focus-visible) { color: var(--kumitate-accent,#d9ed99); }
@media (max-width: 781px) {
 .kumitate-photo-hero { width: calc(100vw - 32px); margin-inline: calc(50% - 50vw + 16px) !important; border-radius: 20px; }
 .kumitate-photo-hero > .wp-block-image img { height: 320px; }
 .kumitate-photo-hero--home > .wp-block-image img { height: 400px; }
 .kumitate-photo-hero > .kumitate-photo-hero__title { margin: 20px !important; padding: 18px 20px; max-width: calc(100% - 40px); box-sizing: border-box; border-left-width: 6px; }
}
@media (max-width: 781px) {
 .kumitate-photo-hero--home h1 { font-size: clamp(20px,6vw,28px); }
}

/* Shared sales-site accent: pale lime surfaces keep dark text legible. */
:root { --kumitate-accent: #d9ed99; --kumitate-accent-soft: #f1f7e2; }
.kumitate-pattern--values .wp-block-column > p:first-child,
.kumitate-pattern--steps .is-style-kumitate-panel > p:first-child { color: #292b29; background: var(--kumitate-accent); display: inline-block; padding: 4px 10px; border-radius: 8px; }
.kumitate-pattern .wp-block-button:not(.is-style-outline) > .wp-block-button__link:is(:hover,:focus-visible) { background: var(--kumitate-accent-soft); color: #292b29; }
.kumitate-pattern--photo-links .is-style-kumitate-card,
.kumitate-pattern--case-studies .is-style-kumitate-card { transition: background-color .2s ease; }
.kumitate-pattern--photo-links .is-style-kumitate-card:is(:hover,:focus-within),
.kumitate-pattern--case-studies .is-style-kumitate-card:is(:hover,:focus-within),
.kumitate-pattern--news-rows .wp-block-post-template > li > .wp-block-group:is(:hover,:focus-within) { background: var(--kumitate-accent-soft); }
.kumitate-pattern--news-rows .wp-block-post-terms a { color: #292b29; }
.siteframe-base-footer .wp-block-navigation-item__content:is(:hover,:focus-visible) { background: #d9ed9926; }
