/* Hallmark · macrostructure: Narrative Workflow · theme: Atelier · enrichment: imagegen
 * pre-emit critique: P5 H4 E4 S5 R5 V4 · genre: editorial
 * audience: Japanese SMEs · use: book a free consultation · tone: luxury
 * palette anchor: warm antique gold (78°) on ivory paper and charcoal ink
 * hero: H2 Split Diptych (7/5 · proof column · vertical rule)
 * nav: Koiroo two-tier utility rail · footer: Ft1 Mast-headed directory
 * section: S3 Sticky Pinned · feature: F4 Step Sequence (1.0 · vertical · rule)
 * variation: proof-led project ledger · six-step capability · compact trust band
 * cta: C3 Typographic Link (inline arrow · underline on hover)
 * contrast: pass (40–41) · slop: pass (1–58) · mobile: pass (34, 49, 50–57)
 */
html,
body {
    overflow-x: clip;
}

.koiroo-site-page {
    background: var(--color-paper);
    color: var(--color-ink);
    font-family: var(--font-body);
    font-size: var(--text-base);
    line-break: strict;
    line-height: 1.65;
    word-break: normal;
}

.koiroo-site-page :where(h1, h2, h3) {
    min-width: 0;
    color: inherit;
    font-family: var(--font-display);
    font-style: normal;
    font-weight: 700;
    overflow-wrap: anywhere;
}

.koiroo-site-page :where(a, button, summary) {
    -webkit-tap-highlight-color: var(--color-transparent);
}

.kr-container {
    width: 100%;
    max-width: var(--layout-container);
    margin-inline: auto;
    padding-inline: clamp(var(--space-md), 4vw, var(--space-xl));
}

.kr-narrow {
    max-width: 58rem;
}

/* Hallmark · component: global header · genre: editorial · theme: Koiroo Precision Gold
 * pre-emit critique: P5 H5 E5 S5 R5 V4
 * states: default · hover · focus · active · disabled · loading · error · success
 * contrast: pass (40–41)
 */
.kr-header {
    position: relative;
    z-index: var(--z-sticky-nav);
    top: auto;
    border: 0;
    border-bottom: var(--rule-hair) solid var(--color-rule);
    background: var(--color-paper-raised);
    color: var(--color-ink);
}

.kr-utility {
    border-bottom: var(--rule-hair) solid var(--color-rule);
    background: var(--color-paper);
    color: var(--color-muted);
}

.kr-utility__inner {
    display: flex;
    align-items: center;
    justify-content: center;
}

.kr-mastline {
    margin: 0;
    padding-block: var(--space-xs);
    color: var(--color-muted);
    font-size: var(--text-xs);
    letter-spacing: 0.04em;
    line-height: 1.35;
    text-align: center;
    white-space: nowrap;
}

.kr-mastline__full {
    display: none;
}

.kr-header__inner {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--space-md);
    padding-block: var(--space-xs);
}

.kr-brand {
    display: inline-flex;
    width: clamp(9.25rem, 42vw, 10.25rem);
    flex: 0 0 auto;
    min-height: 44px;
    align-items: center;
    justify-content: flex-start;
    line-height: 1;
    white-space: nowrap;
}

.kr-brand img {
    display: block;
    width: 100%;
    height: auto;
}

.kr-menu-button {
    position: relative;
    display: grid;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    place-content: center;
    border: var(--rule-hair) solid var(--color-rule-strong);
    border-radius: var(--radius-sm);
    background: var(--color-paper-raised);
    color: var(--color-ink);
    line-height: 1;
}

.kr-menu-button span {
    width: var(--space-lg);
    height: var(--rule-strong);
    margin: var(--space-3xs) auto;
    background: var(--color-ink);
    transition: opacity var(--dur-micro) var(--ease-out), transform var(--dur-micro) var(--ease-out);
}

.kr-menu-open .kr-menu-button span:first-child {
    transform: translateY(calc(var(--space-2xs) + var(--rule-strong))) rotate(45deg);
}

.kr-menu-open .kr-menu-button span:nth-child(2) {
    opacity: 0;
}

.kr-menu-open .kr-menu-button span:last-child {
    transform: translateY(calc((var(--space-2xs) + var(--rule-strong)) * -1)) rotate(-45deg);
}

.kr-mastnav {
    position: static;
    margin-inline-start: auto;
}

.kr-nav {
    position: absolute;
    z-index: var(--z-dropdown);
    inset-block-start: 100%;
    inset-inline: 0;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: var(--space-xs) var(--space-md) var(--space-md);
    border: var(--rule-hair) solid var(--color-rule);
    background: var(--color-paper-raised);
    color: var(--color-ink);
    box-shadow: var(--shadow-whisper);
}

.kr-menu-open .kr-nav {
    display: flex;
}

.kr-nav a,
.kr-footer a,
.kr-button,
.kr-text-link,
.kr-consultation__link {
    white-space: nowrap;
}

.kr-nav a {
    display: flex;
    min-height: 44px;
    align-items: center;
    border-bottom: var(--rule-hair) solid var(--color-rule);
    padding-inline: var(--space-xs);
    color: var(--color-ink);
    font-size: var(--text-sm);
    font-weight: 700;
    letter-spacing: 0.01em;
    line-height: 1;
}

.kr-nav a::after {
    display: none;
}

.kr-nav a[aria-current="page"] {
    color: var(--color-accent-dark);
}

.kr-nav__cta {
    margin-top: var(--space-sm);
    gap: var(--space-xs);
    justify-content: center;
    border: var(--rule-hair) solid var(--color-accent) !important;
    border-radius: var(--radius-sm);
    background: var(--color-accent);
    color: var(--color-accent-ink) !important;
    transition: background-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out), transform var(--dur-micro) var(--ease-out);
}

.kr-nav__cta svg {
    width: var(--space-md);
    height: var(--space-md);
    flex: 0 0 auto;
    fill: none;
    stroke: currentColor;
    stroke-linecap: square;
    stroke-linejoin: miter;
    stroke-width: 1.5;
}

.kr-button {
    min-height: 48px;
    border: var(--rule-hair) solid var(--color-accent-dark);
    border-radius: var(--radius-none);
    padding: var(--space-sm) var(--space-lg);
    background: var(--color-paper-raised);
    color: var(--color-ink);
    font-size: var(--text-sm);
    font-weight: 700;
    line-height: 1;
    transition: background-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out), transform var(--dur-micro) var(--ease-out);
}

.kr-button--primary {
    background: var(--color-accent);
    color: var(--color-accent-ink);
}

.kr-button--secondary,
.kr-button--light {
    background: var(--color-paper-raised);
    color: var(--color-ink);
}

.kr-button:active,
.kr-text-link:active,
.kr-consultation__link:active,
.kr-nav a:active,
.kr-footer a:active,
.kr-brand:active,
.kr-menu-button:active,
.kr-faq summary:active {
    transform: translateY(var(--rule-hair));
}

.kr-button[aria-disabled="true"],
.kr-button:disabled,
.kr-nav a[aria-disabled="true"],
.kr-footer a[aria-disabled="true"],
.kr-text-link[aria-disabled="true"],
.kr-consultation__link[aria-disabled="true"],
.kr-brand[aria-disabled="true"],
.kr-menu-button:disabled,
.kr-faq summary[aria-disabled="true"] {
    cursor: not-allowed;
    opacity: 0.52;
    pointer-events: none;
}

.kr-button[data-state="loading"],
.kr-header :where(a, button)[data-state="loading"] {
    cursor: wait;
    opacity: 0.72;
}

.kr-button[data-state="error"],
.kr-header :where(a, button)[data-state="error"] {
    border-color: var(--color-error);
    outline: var(--rule-strong) solid var(--color-error);
    outline-offset: var(--space-2xs);
}

.kr-button[data-state="success"],
.kr-header :where(a, button)[data-state="success"] {
    border-color: var(--color-success);
    outline: var(--rule-strong) solid var(--color-success);
    outline-offset: var(--space-2xs);
}

.kr-button:focus-visible,
.kr-nav a:focus-visible,
.kr-menu-button:focus-visible,
.kr-text-link:focus-visible,
.kr-faq summary:focus-visible,
.kr-footer a:focus-visible,
.kr-brand:focus-visible {
    outline: var(--rule-strong) solid var(--color-focus);
    outline-offset: var(--space-2xs);
}

.kr-footer a:focus-visible {
    outline-color: var(--color-accent);
}

.kr-hero,
.kr-page-hero {
    min-height: auto;
    overflow: visible;
    border-bottom: var(--rule-hair) solid var(--color-rule);
    background: var(--color-paper);
    color: var(--color-ink);
}

.kr-hero::after,
.kr-page-hero::after {
    display: none;
}

.kr-hero__grid,
.kr-page-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    min-height: auto;
    align-items: center;
    gap: var(--space-xl);
    padding-block: var(--space-xl) var(--space-2xl);
}

.kr-hero h1,
.kr-page-hero h1,
.kr-generic-hero h1 {
    max-width: 18ch;
    margin: 0;
    color: var(--color-ink);
    font-size: var(--text-display-s);
    font-weight: 700;
    letter-spacing: -0.035em;
    line-height: 1.08;
}

.kr-hero h1 {
    max-width: none;
    font-size: var(--text-home-hero-mobile);
}

.kr-hero h1 em,
.kr-page-hero h1 em {
    color: var(--color-accent-dark);
    font-style: normal;
}

.kr-kicker {
    margin: 0 0 var(--space-md);
    color: var(--color-accent-dark);
    font-size: var(--text-sm);
    font-weight: 700;
    letter-spacing: 0.04em;
}

.kr-hero__lead,
.kr-page-hero__lead {
    max-width: var(--layout-reading);
    margin-top: var(--space-lg);
    color: var(--color-muted);
    font-size: var(--text-base);
    line-height: 1.9;
}

.kr-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-sm);
    margin-top: var(--space-lg);
}

.kr-hero__proof {
    min-width: 0;
    border-inline-start: var(--rule-hair) solid var(--color-rule);
    padding-inline-start: var(--space-lg);
}

.kr-story-image {
    min-width: 0;
    overflow: clip;
    margin: 0;
    border: var(--rule-hair) solid var(--color-rule-strong);
    background: var(--color-paper-2);
}

.kr-story-image > img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.kr-story-image--hero > img {
    height: auto;
    aspect-ratio: 3 / 2;
}

.kr-story-image--hero figcaption {
    border-top: var(--rule-hair) solid var(--color-rule);
    padding: var(--space-sm) var(--space-md);
    color: var(--color-muted);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.04em;
}

.kr-brand-panel {
    position: relative;
    inset: auto;
    display: grid;
    width: 100%;
    min-height: auto;
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
    align-items: center;
    gap: var(--space-lg);
    border: 0;
    border-radius: var(--radius-none);
    padding-block: var(--space-lg);
    background: var(--color-paper-raised);
    box-shadow: none;
    transform: none;
}

.kr-brand-panel::before,
.kr-brand-panel::after {
    display: none;
}

.kr-brand-panel img {
    width: 100%;
    max-width: 11rem;
    height: auto;
}

.kr-brand-panel figcaption {
    margin: 0;
    color: var(--color-muted);
    font-size: var(--text-sm);
    font-weight: 700;
    letter-spacing: 0.06em;
}

.kr-domain-ledger {
    margin: 0;
    border-top: var(--rule-hair) solid var(--color-rule-strong);
}

.kr-domain-ledger div {
    display: grid;
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
    gap: var(--space-md);
    border-bottom: var(--rule-hair) solid var(--color-rule);
    padding-block: var(--space-sm);
}

.kr-domain-ledger dt {
    color: var(--color-accent-dark);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.08em;
}

.kr-domain-ledger dd {
    margin: 0;
    color: var(--color-muted);
    font-size: var(--text-sm);
}

.kr-proof {
    background: var(--color-paper-raised);
    color: var(--color-ink);
}

.kr-proof__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
}

.kr-proof article,
.kr-proof article:first-child,
.kr-proof article:nth-child(3) {
    min-height: auto;
    border: 0;
    border-bottom: var(--rule-hair) solid var(--color-rule);
    padding: var(--space-md) 0;
}

.kr-proof__mark {
    width: 44px;
    height: 44px;
    flex-basis: 44px;
    border-color: var(--color-rule-strong);
    color: var(--color-accent-dark);
    font-family: var(--font-display);
}

.kr-proof p {
    color: var(--color-muted);
    font-size: var(--text-sm);
}

.kr-section {
    padding-block: var(--space-2xl);
}

.kr-section--surface {
    border-color: var(--color-rule);
    background: var(--color-paper-raised);
    color: var(--color-ink);
}

.kr-section-heading {
    display: grid;
    max-width: 52rem;
    gap: var(--space-sm);
    margin: 0 0 var(--space-xl);
}

.kr-section-heading h2,
.kr-platform h2,
.kr-loop h2,
.kr-capability h2,
.kr-tactics h2,
.kr-proof-policy h2,
.kr-work-categories h2,
.kr-audience h2,
.kr-one-partner h2,
.kr-company-pending h2,
.kr-consultation h2 {
    margin: 0;
    font-size: clamp(var(--text-xl), 3vw, var(--text-3xl));
    line-height: 1.2;
}

.kr-section-heading p,
.kr-platform p,
.kr-loop p,
.kr-decision-cta p,
.kr-capability p,
.kr-tactics p,
.kr-proof-policy p,
.kr-work-categories p,
.kr-audience p,
.kr-one-partner p,
.kr-company-pending p {
    max-width: var(--layout-reading);
    margin: 0;
    color: var(--color-muted);
    font-size: var(--text-base);
    line-height: 1.8;
}

.kr-problem-grid,
.kr-service-bento,
.kr-business__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    border-top: var(--rule-hair) solid var(--color-rule);
    border-inline-start: var(--rule-hair) solid var(--color-rule);
}

.kr-problem-grid article,
.kr-service-card,
.kr-business__grid article {
    min-height: auto;
    border: 0;
    border-inline-end: var(--rule-hair) solid var(--color-rule);
    border-bottom: var(--rule-hair) solid var(--color-rule);
    border-radius: var(--radius-none);
    padding: var(--space-lg);
    background: var(--color-paper-raised);
    color: var(--color-ink);
    box-shadow: none;
}

.kr-problem-grid__lead,
.kr-service-card--gold,
.kr-business__main {
    min-height: auto !important;
    background: var(--color-paper-3) !important;
    color: var(--color-ink);
}

.kr-problem-grid__dark,
.kr-service-card--dark,
.kr-business__dark {
    background: var(--color-ink) !important;
    color: var(--color-paper) !important;
}

.kr-problem-grid__dark h3,
.kr-service-card--dark h3,
.kr-business__dark h3,
.kr-loop h2,
.kr-proof-policy h2 {
    color: var(--color-paper);
}

.kr-problem-grid__dark p,
.kr-service-card--dark p,
.kr-business__dark p,
.kr-loop p,
.kr-proof-policy p {
    color: var(--color-paper-3);
}

.kr-service-card,
a.kr-service-card:hover {
    transform: none;
    transition: color var(--dur-short) var(--ease-out), background-color var(--dur-short) var(--ease-out);
}

.kr-service-card--image {
    overflow: clip;
    padding: 0;
}

.kr-service-card__image {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 2;
    border-bottom: var(--rule-hair) solid var(--color-rule);
    object-fit: cover;
}

.kr-service-card--image > :not(.kr-service-card__image) {
    margin-inline: var(--space-lg);
}

.kr-service-card--image > span {
    margin-top: var(--space-lg);
}

.kr-service-card--image > strong {
    margin-bottom: var(--space-lg);
}

.kr-service-card > span,
.kr-business__grid article > span,
.kr-problem-grid article > span {
    color: var(--color-accent-dark);
    font-size: var(--text-xs);
    letter-spacing: 0.06em;
}

.kr-service-card h3,
.kr-business__grid h3,
.kr-problem-grid h3 {
    margin-top: var(--space-lg);
    font-size: var(--text-lg);
    line-height: 1.3;
}

.kr-service-card p,
.kr-business__grid p,
.kr-problem-grid p {
    margin-top: var(--space-sm);
    color: var(--color-muted);
    font-size: var(--text-base);
}

.kr-service-card strong {
    margin-top: var(--space-lg);
    color: var(--color-accent-dark);
    font-size: var(--text-sm);
}

.kr-service-card--dark > span,
.kr-service-card--dark strong,
.kr-problem-grid article.kr-problem-grid__dark > span,
.kr-business__dark > span {
    color: var(--color-accent);
}

.kr-problem-grid__dark p,
.kr-service-card--dark p,
.kr-business__dark p {
    color: var(--color-paper-3);
}

.kr-flow {
    padding-block: var(--space-xl);
    border-color: var(--color-rule-strong);
    background: var(--color-paper-3);
    color: var(--color-ink);
}

.kr-flow__track,
.kr-stage-list,
.kr-process__grid,
.kr-delivery__row,
.kr-purchase-flow__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    border-top: var(--rule-hair) solid var(--color-rule-strong);
    border-inline-start: 0;
}

.kr-flow__track li,
.kr-stage-list article,
.kr-process__grid li,
.kr-delivery__row li,
.kr-purchase-flow__row li {
    min-height: auto;
    border: 0;
    border-bottom: var(--rule-hair) solid var(--color-rule);
    padding: var(--space-lg) var(--space-sm);
    background: var(--color-transparent);
    color: var(--color-ink);
}

.kr-flow__track li::after {
    display: none;
}

.kr-flow__track span,
.kr-stage-list article > span,
.kr-process__grid span,
.kr-delivery__row span,
.kr-purchase-flow__row span {
    display: block;
    width: auto;
    height: auto;
    margin: 0 0 var(--space-xs);
    border-radius: var(--radius-none);
    background: var(--color-transparent);
    color: var(--color-accent-dark);
    font-family: var(--font-display);
    font-size: var(--text-md);
    font-variant-numeric: tabular-nums;
}

.kr-process__grid h3,
.kr-stage-list h3,
.kr-delivery__row h3,
.kr-purchase-flow__row h3 {
    margin: 0;
    font-size: var(--text-md);
}

.kr-process__grid p,
.kr-stage-list p,
.kr-delivery__row p,
.kr-purchase-flow__row p {
    margin-top: var(--space-xs);
    color: var(--color-muted);
    font-size: var(--text-base);
}

.kr-platform__grid,
.kr-loop__grid,
.kr-capability__grid,
.kr-proof-policy__grid,
.kr-one-partner__grid,
.kr-company-pending__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-xl);
}

.kr-platform__mark,
.kr-one-partner__mark,
.kr-page-hero__mark,
.kr-capability__intro {
    min-height: 18rem;
    border: var(--rule-hair) solid var(--color-rule-strong);
    border-radius: var(--radius-none);
    background: var(--color-ink);
    color: var(--color-accent);
    box-shadow: none;
}

.kr-story-image--platform {
    min-height: 18rem;
}

.kr-case-studies {
    border-top: var(--rule-hair) solid var(--color-rule);
    background: var(--color-paper);
    color: var(--color-ink);
}

.kr-case-studies__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-2xl);
}

.kr-case-studies__note {
    margin: 0 0 var(--space-md);
    color: var(--color-muted);
    font-size: var(--text-sm);
}

.kr-project-ledger {
    margin: 0;
    border-top: var(--rule-strong) solid var(--color-ink);
}

.kr-project-ledger li {
    display: flex;
    min-height: 64px;
    flex-direction: column;
    justify-content: center;
    gap: var(--space-xs);
    border-bottom: var(--rule-hair) solid var(--color-rule);
    padding-block: var(--space-md);
}

.kr-project-ledger strong {
    font-family: var(--font-display);
    font-size: var(--text-md);
    letter-spacing: -0.015em;
}

.kr-project-ledger span {
    color: var(--color-muted);
    font-size: var(--text-xs);
    font-weight: 700;
}

.kr-case-evidence {
    border-block: var(--rule-hair) solid var(--color-rule-strong);
    padding-block: var(--space-lg);
}

.kr-case-evidence h3 {
    margin: 0;
    font-family: var(--font-display);
    font-size: var(--text-lg);
}

.kr-case-evidence ol {
    margin: var(--space-lg) 0 0;
    border-top: var(--rule-hair) solid var(--color-rule);
}

.kr-case-evidence li {
    display: grid;
    min-height: 56px;
    grid-template-columns: minmax(0, 3rem) minmax(0, 1fr);
    align-items: center;
    gap: var(--space-md);
    border-bottom: var(--rule-hair) solid var(--color-rule);
}

.kr-case-evidence li span {
    color: var(--color-accent-dark);
    font-family: var(--font-display);
    font-variant-numeric: tabular-nums;
}

.kr-case-evidence li strong {
    font-size: var(--text-sm);
}

.kr-case-evidence > p {
    margin: var(--space-lg) 0 0;
    color: var(--color-muted);
    font-size: var(--text-sm);
}

.kr-platform__mark::after,
.kr-page-hero__ring {
    border-color: var(--color-accent-rule);
}

.kr-check-list,
.kr-tactics ul,
.kr-work-categories ul,
.kr-audience ul,
.kr-company-pending ul {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    margin-top: var(--space-lg);
    border-color: var(--color-rule);
}

.kr-check-list li,
.kr-tactics li,
.kr-work-categories li,
.kr-audience li,
.kr-company-pending li {
    min-height: 44px;
    border-color: var(--color-rule);
    padding-block: var(--space-sm);
    background: var(--color-paper-raised);
    color: var(--color-ink);
    font-size: var(--text-sm);
}

.kr-loop,
.kr-proof-policy {
    padding-block: var(--space-2xl);
    background: var(--color-ink);
    color: var(--color-paper);
}

.kr-loop ol,
.kr-proof-policy__requirements {
    border-color: var(--color-paper-rule);
}

.kr-loop li,
.kr-proof-policy__requirements span {
    border-color: var(--color-paper-rule);
    color: var(--color-accent-soft);
    font-size: var(--text-sm);
}

.kr-trust-band {
    border-block: var(--rule-hair) solid var(--color-rule-strong);
    padding-block: var(--space-xl);
    background: var(--color-paper-2);
    color: var(--color-ink);
}

.kr-trust-band__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-lg);
}

.kr-trust-band h2,
.kr-decision-cta h2 {
    margin: 0;
    font-size: clamp(var(--text-lg), 2.2vw, var(--text-2xl));
    line-height: 1.25;
}

.kr-trust-band ul {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    border-top: var(--rule-hair) solid var(--color-rule-strong);
}

.kr-trust-band li {
    position: relative;
    min-height: 48px;
    border-bottom: var(--rule-hair) solid var(--color-rule);
    padding: var(--space-sm) 0 var(--space-sm) var(--space-lg);
    color: var(--color-ink-soft);
    font-size: var(--text-sm);
    font-weight: 700;
}

.kr-trust-band li::before {
    position: absolute;
    inset-block-start: var(--space-sm);
    inset-inline-start: 0;
    color: var(--color-accent-dark);
    content: "✓";
}

.kr-decision-cta {
    border-block: var(--rule-strong) solid var(--color-accent-dark);
    padding-block: var(--space-2xl);
    background: var(--color-paper-3);
    color: var(--color-ink);
}

.kr-decision-cta__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-lg);
    align-items: end;
}

.kr-decision-cta p {
    margin-top: var(--space-sm);
}

.kr-decision-cta .kr-actions {
    margin-top: 0;
}

.kr-faq {
    border-top: var(--rule-hair) solid var(--color-rule-strong);
}

.kr-faq details {
    border-bottom: var(--rule-hair) solid var(--color-rule);
}

.kr-faq summary {
    min-height: 56px;
    padding: var(--space-md) var(--space-xl) var(--space-md) 0;
    color: var(--color-ink);
    font-size: var(--text-base);
}

.kr-faq summary::after {
    color: var(--color-accent-dark);
}

.kr-faq details p {
    max-width: var(--layout-reading);
    padding: 0 var(--space-xl) var(--space-lg) 0;
    color: var(--color-muted);
    font-size: var(--text-base);
}

.kr-consultation {
    padding-block: var(--space-2xl);
    border-top: var(--rule-strong) solid var(--color-ink);
    background: var(--color-paper-3);
    color: var(--color-ink);
}

.kr-contact-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: var(--space-xl);
    text-align: start;
}

.kr-contact-intro > p:not(.kr-kicker, .kr-consultation__note) {
    max-width: var(--layout-reading);
    margin-top: var(--space-sm);
    color: var(--color-muted);
    font-size: var(--text-base);
    font-weight: 400;
}

.kr-consultation__note {
    width: 100%;
    margin: var(--space-lg) auto 0;
    border-top: var(--rule-hair) solid var(--color-rule-strong);
    padding-top: var(--space-md);
    color: var(--color-muted);
    font-size: var(--text-sm);
    text-align: start;
}

.kr-contact-points {
    display: grid;
    gap: var(--space-sm);
    margin: var(--space-lg) 0 0;
    border-top: var(--rule-hair) solid var(--color-rule-strong);
    padding: var(--space-md) 0 0;
}

.kr-contact-points li {
    position: relative;
    padding-inline-start: var(--space-lg);
    color: var(--color-ink-soft);
    font-size: var(--text-sm);
}

.kr-contact-points li::before {
    position: absolute;
    inset-inline-start: 0;
    color: var(--color-accent-dark);
    content: "・";
}

.kr-contact-panel {
    min-width: 0;
    border: var(--rule-hair) solid var(--color-rule-strong);
    padding: var(--space-lg);
    background: var(--color-paper-raised);
}

.kr-contact-panel__heading {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
    margin-bottom: var(--space-lg);
    border-bottom: var(--rule-hair) solid var(--color-rule);
    padding-bottom: var(--space-md);
}

.kr-contact-panel__heading h3 {
    margin: 0;
    font-family: var(--font-display);
    font-size: var(--text-lg);
}

.kr-contact-panel__heading p {
    margin: 0;
    color: var(--color-muted);
    font-size: var(--text-xs);
}

.kr-contact-status {
    margin: 0 0 var(--space-lg);
    border: var(--rule-hair) solid currentColor;
    padding: var(--space-md);
    background: var(--color-paper);
    font-size: var(--text-sm);
    font-weight: 700;
}

.kr-contact-status--success {
    color: var(--color-success);
}

.kr-contact-status--error {
    color: var(--color-error);
}

.kr-contact-form,
.kr-contact-form__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-lg);
}

.kr-contact-form__grid {
    gap: var(--space-md);
}

.kr-contact-form__trap {
    position: absolute;
    inset-inline-start: -10000px;
    width: var(--rule-hair);
    height: var(--rule-hair);
    overflow: hidden;
}

.kr-field {
    display: grid;
    min-width: 0;
    gap: var(--space-xs);
}

.kr-field label {
    display: flex;
    align-items: center;
    gap: var(--space-xs);
    color: var(--color-ink);
    font-size: var(--text-sm);
    font-weight: 700;
    line-height: 1.4;
}

.kr-required {
    color: var(--color-error);
    font-size: var(--text-xs);
}

.kr-optional {
    color: var(--color-muted);
    font-size: var(--text-xs);
    font-weight: 400;
}

.kr-field :where(input, select, textarea) {
    width: 100%;
    min-width: 0;
    border: var(--rule-hair) solid var(--color-rule-strong);
    border-radius: var(--radius-none);
    outline: var(--rule-strong) solid var(--color-transparent);
    outline-offset: var(--space-2xs);
    padding: var(--space-sm) var(--space-md);
    background: var(--color-paper-raised);
    color: var(--color-ink);
    font: inherit;
    line-height: 1.5;
    transition: border-color var(--dur-short) var(--ease-out), background-color var(--dur-short) var(--ease-out);
}

.kr-field :where(input, select) {
    min-height: 48px;
}

.kr-field textarea {
    min-height: 12rem;
    resize: vertical;
}

.kr-field :where(input, textarea)::placeholder {
    color: var(--color-muted);
    opacity: 1;
}

.kr-field select:required:invalid {
    color: var(--color-muted);
}

.kr-field :where(input, select, textarea):focus-visible,
.kr-contact-form__consent input:focus-visible {
    border-color: var(--color-focus);
    outline: var(--rule-strong) solid var(--color-focus);
    outline-offset: var(--space-2xs);
}

.kr-field :where(input, select, textarea):active {
    border-color: var(--color-accent-dark);
}

.kr-contact-form.is-validated :where(input, select, textarea):invalid,
.kr-field :where(input, select, textarea)[aria-invalid="true"] {
    border-color: var(--color-error);
}

.kr-field__feedback {
    min-height: 1lh;
    color: var(--color-muted);
    font-size: var(--text-xs);
    line-height: 1.5;
}

.kr-field__feedback[data-state="error"] {
    color: var(--color-error);
    font-weight: 700;
}

.kr-field :where(input, select, textarea):disabled {
    cursor: not-allowed;
    opacity: 0.52;
}

.kr-contact-form__consent {
    display: flex;
    min-height: 44px;
    align-items: flex-start;
    gap: var(--space-sm);
    color: var(--color-ink-soft);
    cursor: pointer;
    font-size: var(--text-sm);
    line-height: 1.65;
}

.kr-contact-form__consent input {
    flex: 0 0 auto;
    width: var(--space-lg);
    height: var(--space-lg);
    margin-top: var(--space-3xs);
    accent-color: var(--color-accent-dark);
}

.kr-contact-form__submit {
    width: 100%;
    justify-content: center;
}

.kr-text-link,
.kr-consultation__link {
    display: inline-flex;
    width: fit-content;
    min-height: 44px;
    align-items: center;
    gap: var(--space-xs);
    margin-top: var(--space-md);
    border-bottom: var(--rule-hair) solid currentColor;
    color: var(--color-accent-dark);
    font-size: var(--text-sm);
    font-weight: 700;
    line-height: 1;
    transition: color var(--dur-short) var(--ease-out), transform var(--dur-micro) var(--ease-out);
}

/* Hallmark · component: global footer · genre: editorial · theme: Koiroo Precision Gold
 * states: default · hover · focus · active · disabled · loading · error · success
 * contrast: pass (40–41) · pre-emit critique: P5 H5 E5 S5 R5 V4
 */
.kr-footer {
    border-top: var(--space-2xs) solid var(--color-accent);
    padding-block: var(--space-2xl) var(--space-lg);
    background: var(--color-ink);
    color: var(--color-paper);
}

.kr-footer__mast {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-2xl);
    align-items: start;
}

.kr-footer__identity {
    min-width: 0;
}

.kr-brand--footer {
    justify-content: flex-start;
}

.kr-brand--footer img {
    width: clamp(9rem, 20vw, 12rem);
    filter: grayscale(1) brightness(4);
}

.kr-footer__statement {
    max-width: 26ch;
    margin: var(--space-lg) 0 0;
    color: var(--color-paper);
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-style: normal;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.kr-footer__description {
    max-width: 45ch;
    margin: var(--space-md) 0 0;
    color: var(--color-paper-3);
    font-size: var(--text-sm);
    line-height: 1.75;
}

.kr-footer__directory {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-xl);
    min-width: 0;
}

.kr-footer__group {
    min-width: 0;
}

.kr-footer__group h2,
.kr-footer__contact h2 {
    margin: 0;
    color: var(--color-accent);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    font-style: normal;
    font-weight: 700;
    line-height: 1.4;
}

.kr-footer__group h2 {
    border-bottom: var(--rule-hair) solid var(--color-paper-rule);
    padding-bottom: var(--space-sm);
}

.kr-footer__group a {
    display: flex;
    min-height: 44px;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-md);
    border-bottom: var(--rule-hair) solid var(--color-paper-rule);
    color: var(--color-paper-3);
    font-size: var(--text-sm);
    line-height: 1.35;
}

.kr-footer__group a > span:first-child {
    min-width: 0;
}

.kr-footer__group a > span:last-child,
.kr-footer__contact-link > span,
.kr-footer__utility a > span {
    flex: 0 0 auto;
    color: var(--color-accent);
}

.kr-footer__contact {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-sm);
    border-block: var(--rule-hair) solid var(--color-paper-rule);
    padding-block: var(--space-lg);
}

.kr-footer__contact p {
    max-width: 45ch;
    color: var(--color-paper-3);
    font-size: var(--text-sm);
    line-height: 1.7;
}

.kr-footer__contact-link {
    display: inline-flex;
    min-height: 44px;
    width: fit-content;
    align-items: center;
    gap: var(--space-sm);
    border-bottom: var(--rule-hair) solid var(--color-accent);
    color: var(--color-accent);
    font-size: var(--text-sm);
    font-weight: 700;
    line-height: 1.2;
}

.kr-footer__bottom {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-sm);
    margin-top: var(--space-2xl);
    border-top: var(--rule-hair) solid var(--color-paper-rule);
    padding-top: var(--space-md);
    color: var(--color-paper-3);
    font-size: var(--text-sm);
    line-height: 1.4;
}

.kr-footer__bottom p {
    margin: 0;
}

.kr-footer__utility {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-xs) var(--space-lg);
}

.kr-footer__utility a {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    gap: var(--space-xs);
    color: var(--color-paper-3);
    font-size: var(--text-sm);
    line-height: 1;
}

.kr-footer a[data-state="loading"] {
    cursor: wait;
    opacity: 0.72;
}

.kr-footer a[data-state="error"] {
    color: var(--color-error);
    text-decoration: underline wavy;
    text-underline-offset: var(--space-2xs);
}

.kr-footer a[data-state="success"] {
    color: var(--color-success);
    text-decoration: underline;
    text-underline-offset: var(--space-2xs);
}

.kr-page-hero__mark {
    display: grid;
    place-items: center;
}

.kr-page-hero__mark img {
    position: relative;
    z-index: var(--z-raised);
    width: min(52%, 12rem);
    height: auto;
}

.kr-page-hero__mark--image {
    position: relative;
    overflow: clip;
    background: var(--color-paper-2);
}

.kr-page-hero__mark--image > img {
    position: absolute;
    z-index: var(--z-base);
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.kr-page-hero__domains {
    position: absolute;
    inset-inline: var(--space-md);
    bottom: var(--space-md);
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-xs);
    z-index: var(--z-raised);
    padding: var(--space-xs);
    background: var(--color-paper-overlay);
}

.kr-page-hero__domains span {
    border-color: var(--color-paper-rule);
    background: var(--color-transparent);
    color: var(--color-ink);
    font-size: var(--text-xs);
}

.kr-capability__list,
.kr-case-framework__row,
.kr-values__rows {
    border-color: var(--color-rule);
}

.kr-capability__list article,
.kr-case-framework__row article,
.kr-values__rows article {
    min-height: auto;
    border-color: var(--color-rule);
    padding: var(--space-lg);
}

.kr-case-framework__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
}

.kr-values__rows article {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-sm);
}

.kr-generic-hero {
    padding-block: var(--space-2xl) var(--space-xl);
    border-color: var(--color-rule);
}

.kr-prose {
    color: var(--color-ink);
    font-size: var(--text-base);
}

@media (hover: hover) and (pointer: fine) {
    .kr-button:hover {
        background: var(--color-ink);
        color: var(--color-paper);
        transform: translateY(calc(var(--rule-hair) * -1));
    }

    .kr-nav a:hover,
    .kr-footer a:hover,
    .kr-text-link:hover,
    .kr-consultation__link:hover,
    .kr-brand:hover,
    .kr-faq summary:hover {
        color: var(--color-accent);
    }

    .kr-nav__cta:hover {
        background: var(--color-accent-dark);
        color: var(--color-paper-raised) !important;
    }

    .kr-menu-button:hover {
        border-color: var(--color-accent-dark);
        color: var(--color-accent-dark);
    }

    .kr-service-card:hover {
        background: var(--color-paper-2);
    }

    .kr-field :where(input, select, textarea):hover {
        border-color: var(--color-ink-soft);
    }

    .kr-contact-form__consent:hover {
        color: var(--color-ink);
    }
}

@media (min-width: 40rem) {
    .kr-hero h1 {
        font-size: var(--text-home-hero);
    }

    .kr-mastline__full {
        display: inline;
    }

    .kr-mastline__short {
        display: none;
    }

    .kr-proof__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .kr-proof article,
    .kr-proof article:first-child,
    .kr-proof article:nth-child(3) {
        border-inline-end: var(--rule-hair) solid var(--color-rule);
        padding-inline: var(--space-md);
    }

    .kr-flow__track,
    .kr-process__grid,
    .kr-delivery__row,
    .kr-purchase-flow__row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .kr-check-list,
    .kr-tactics ul,
    .kr-work-categories ul,
    .kr-audience ul,
    .kr-company-pending ul {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .kr-project-ledger li {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }

    .kr-trust-band ul {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: var(--space-xl);
    }

    .kr-contact-form__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .kr-field--full {
        grid-column: 1 / -1;
    }

    .kr-contact-panel {
        padding: var(--space-xl);
    }

    .kr-contact-form__submit {
        width: fit-content;
    }

    .kr-footer__bottom {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }

    .kr-footer__directory {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: var(--space-xl);
    }

    .kr-footer__contact {
        grid-column: 1 / -1;
        grid-template-columns: minmax(0, 0.6fr) minmax(0, 1.4fr);
        align-items: start;
        column-gap: var(--space-xl);
    }

    .kr-footer__contact-link {
        grid-column: 2;
    }
}

@media (min-width: 60rem) {
    .kr-menu-button {
        display: none;
    }

    .kr-header__inner {
        gap: var(--space-lg);
        padding-block: var(--space-md);
    }

    .kr-brand {
        width: clamp(10.5rem, 15vw, 11.5rem);
    }

    .kr-mastnav {
        margin-inline-start: auto;
    }

    .kr-nav,
    .kr-menu-open .kr-nav {
        position: static;
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: flex-end;
        gap: var(--space-lg);
        margin: 0;
        padding: 0;
        border: 0;
        background: var(--color-transparent);
        box-shadow: none;
    }

    .kr-nav a {
        min-height: 44px;
        border: 0;
        padding: 0;
    }

    .kr-nav__cta {
        min-height: 48px !important;
        margin: 0 0 0 var(--space-sm);
        padding-inline: var(--space-lg) !important;
    }

    .kr-hero__grid,
    .kr-page-hero__grid {
        grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
        gap: var(--space-2xl);
        padding-block: var(--space-xl) var(--space-2xl);
    }

    .kr-page-hero h1,
    .kr-generic-hero h1 {
        font-size: var(--text-display-s);
    }

    .kr-proof__grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .kr-section {
        padding-block: var(--space-3xl);
    }

    .kr-problem-grid,
    .kr-business__grid {
        grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
    }

    .kr-problem-grid__lead,
    .kr-business__main {
        grid-row: span 2;
        min-height: 26rem !important;
        justify-content: flex-end;
    }

    .kr-problem-grid__dark {
        grid-column: 1 / -1;
    }

    .kr-service-bento {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .kr-service-card {
        min-height: 17rem;
    }

    .kr-service-card--wide {
        min-height: 21rem;
    }

    .kr-flow__track {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }

    .kr-case-studies__grid {
        grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
        gap: var(--space-3xl);
    }

    .kr-trust-band__grid {
        grid-template-columns: minmax(0, 0.7fr) minmax(0, 1.3fr);
        align-items: start;
        gap: var(--space-2xl);
    }

    .kr-trust-band ul {
        grid-template-columns: repeat(5, minmax(0, 1fr));
        column-gap: 0;
        border-inline-start: var(--rule-hair) solid var(--color-rule);
    }

    .kr-trust-band li {
        min-height: 100%;
        border-inline-end: var(--rule-hair) solid var(--color-rule);
        padding: 0 var(--space-sm) var(--space-sm) var(--space-lg);
    }

    .kr-trust-band li::before {
        inset-block-start: 0;
        inset-inline-start: var(--space-xs);
    }

    .kr-decision-cta__grid {
        grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
        gap: var(--space-3xl);
    }

    .kr-decision-cta .kr-actions {
        justify-content: flex-end;
    }

    .kr-stage-list article {
        grid-template-columns: minmax(0, 8rem) minmax(0, 1fr);
    }

    .kr-platform__grid,
    .kr-loop__grid,
    .kr-one-partner__grid,
    .kr-company-pending__grid {
        grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
        gap: var(--space-3xl);
    }

    .kr-capability__grid,
    .kr-proof-policy__grid {
        grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    }

    .kr-delivery__row,
    .kr-purchase-flow__row {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .kr-process > .kr-container {
        display: grid;
        grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr);
        align-items: start;
        gap: var(--space-3xl);
    }

    .kr-process .kr-section-heading {
        position: sticky;
        z-index: var(--z-sticky);
        top: var(--space-lg);
        margin: 0;
        border-bottom: var(--rule-hair) solid var(--color-rule-strong);
        padding-block: var(--space-sm) var(--space-lg);
        background: var(--color-paper);
    }

    .kr-process__grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .kr-process__grid li {
        display: grid;
        min-height: 9rem;
        grid-template-columns: minmax(0, 4rem) minmax(0, 0.8fr) minmax(0, 1.2fr);
        align-items: start;
        gap: var(--space-lg);
    }

    .kr-process__grid span,
    .kr-process__grid h3,
    .kr-process__grid p {
        margin: 0;
    }

    .kr-contact-layout {
        grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr);
        gap: var(--space-3xl);
    }

    .kr-contact-intro {
        position: sticky;
        z-index: var(--z-sticky);
        top: var(--space-lg);
    }

    .kr-footer__mast {
        grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr);
        gap: var(--space-3xl);
    }

    .kr-footer__identity {
        border-inline-end: var(--rule-hair) solid var(--color-paper-rule);
        padding-inline-end: var(--space-2xl);
    }

    .kr-case-framework__row {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .kr-values__rows article {
        grid-template-columns: minmax(0, 8rem) minmax(0, 0.85fr) minmax(0, 1.15fr);
        gap: var(--space-lg);
    }
}

@media (min-width: 90rem) {
    .kr-hero__grid,
    .kr-page-hero__grid {
        gap: var(--space-4xl);
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 150ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 150ms !important;
        transform: none !important;
    }
}
