:root {
    --kr-bg: #fbfaf7;
    --kr-surface: #ffffff;
    --kr-ink: #191a1c;
    --kr-muted: #65625c;
    --kr-accent: #c7931a;
    --kr-accent-dark: #8f650b;
    --kr-accent-soft: #f5e8bd;
    --kr-border: #e7e2d7;
    --kr-charcoal: #17191b;
    --kr-font-heading: "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
    --kr-font-body: "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", sans-serif;
    --kr-shadow: 0 18px 50px rgba(126, 92, 21, 0.12);
    --kr-container: 1180px;
}

html { scroll-behavior: smooth; }

body.koiroo-site-page {
    margin: 0;
    background: var(--kr-bg);
    color: var(--kr-ink);
    font-family: var(--kr-font-body);
    font-size: 16px;
    line-height: 1.8;
    line-break: strict;
    word-break: normal;
    -webkit-font-smoothing: antialiased;
}

.koiroo-site-page *,
.koiroo-site-page *::before,
.koiroo-site-page *::after { box-sizing: border-box; }

.koiroo-site-page :where(h1, h2, h3, h4, p, figure, ul, ol, blockquote) { margin: 0; padding: 0; }
.koiroo-site-page :where(ul, ol) { list-style: none; }
.koiroo-site-page :where(a) { color: inherit; text-decoration: none; }
.koiroo-site-page :where(button, input, textarea, select) { font: inherit; }
.koiroo-site-page :where(img) { max-width: 100%; }

.kr-site {
    min-height: 100vh;
    overflow: hidden;
    background: var(--kr-bg);
}

.kr-container { width: min(calc(100% - 48px), var(--kr-container)); margin-inline: auto; }
.kr-narrow { max-width: 860px; }

.kr-header {
    position: relative;
    z-index: 50;
    border-bottom: 1px solid rgba(231, 226, 215, 0.9);
    background: rgba(255, 255, 255, 0.98);
}

.kr-header__inner { display: flex; align-items: center; min-height: 82px; gap: 28px; }
.kr-brand { display: flex; flex: 0 0 178px; align-items: center; }
.kr-brand img { display: block; width: 178px; height: auto; }
.kr-nav { display: flex; align-items: center; justify-content: center; gap: clamp(18px, 2vw, 32px); min-width: 0; margin-left: auto; white-space: nowrap; }
.kr-nav a { position: relative; font-size: 13px; font-weight: 700; letter-spacing: 0.01em; }
.kr-nav a::after { position: absolute; right: 0; bottom: -9px; left: 0; height: 2px; background: var(--kr-accent); content: ""; opacity: 0; transform: scaleX(0.5); transition: opacity 150ms ease, transform 150ms ease; }
.kr-nav a:hover::after, .kr-nav a:focus-visible::after, .kr-nav a[aria-current="page"]::after { opacity: 1; transform: scaleX(1); }

.kr-button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; gap: 9px; border: 1px solid transparent; border-radius: 6px; padding: 11px 22px; font-size: 14px; font-weight: 700; line-height: 1.2; transition: transform 150ms ease, background-color 150ms ease, border-color 150ms ease; }
.kr-button:hover { transform: translateY(-2px); }
.kr-button:active { transform: translateY(0); }
.kr-button:focus-visible, .kr-nav a:focus-visible, .kr-menu-button:focus-visible, .kr-text-link:focus-visible, .kr-faq summary:focus-visible { outline: 3px solid var(--kr-accent-soft); outline-offset: 3px; }
.kr-button--header { flex: 0 0 auto; min-height: 44px; padding-inline: 18px; background: var(--kr-accent); color: var(--kr-charcoal); }
.kr-button--primary { min-width: 174px; background: var(--kr-accent); color: var(--kr-charcoal); }
.kr-button--primary:hover, .kr-button--header:hover { background: var(--kr-accent-dark); color: var(--kr-surface); }
.kr-button--secondary { min-width: 168px; border-color: var(--kr-accent); background: var(--kr-surface); color: var(--kr-ink); }
.kr-button--light { border-color: var(--kr-surface); background: var(--kr-surface); color: var(--kr-ink); }
.kr-text-link { display: inline-flex; gap: 10px; align-items: center; margin-top: 22px; color: var(--kr-accent-dark); font-size: 14px; font-weight: 700; }
.kr-text-link span { transition: transform 150ms ease; }
.kr-text-link:hover span { transform: translateX(4px); }
.kr-menu-button { display: none; width: 44px; height: 44px; border: 1px solid var(--kr-border); border-radius: 6px; background: var(--kr-surface); }
.kr-menu-button span { display: block; width: 20px; height: 2px; margin: 4px auto; background: var(--kr-ink); }

.kr-kicker { margin-bottom: 15px; color: var(--kr-accent-dark); font-size: 12px; font-weight: 700; letter-spacing: 0.1em; }
.kr-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 30px; }

.kr-hero { position: relative; min-height: 636px; border-bottom: 1px solid var(--kr-border); background: linear-gradient(115deg, transparent 0 58%, rgba(199, 147, 26, 0.035) 58% 100%); }
.kr-hero::after { position: absolute; right: -120px; bottom: -190px; width: 720px; height: 360px; border: 1px solid rgba(199, 147, 26, 0.18); border-radius: 50%; content: ""; transform: rotate(-10deg); }
.kr-hero__grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(470px, 0.94fr); align-items: center; gap: 48px; min-height: 636px; padding-block: 58px 52px; }
.kr-hero h1, .kr-page-hero h1, .kr-generic-hero h1 { color: var(--kr-ink); font-family: var(--kr-font-heading); font-weight: 600; letter-spacing: -0.04em; line-height: 1.13; }
.kr-hero h1 { max-width: 670px; font-size: clamp(42px, 4vw, 61px); }
.kr-hero h1 em, .kr-page-hero h1 em { color: var(--kr-accent-dark); font-style: normal; }
.kr-hero__lead { max-width: 610px; margin-top: 22px; color: var(--kr-muted); font-size: 15px; font-weight: 500; line-height: 1.9; }

.kr-hero__visual { position: relative; min-height: 488px; isolation: isolate; }
.kr-brand-panel { position: absolute; z-index: 3; top: 50%; left: 50%; display: grid; width: 338px; min-height: 338px; place-items: center; border: 1px solid rgba(199, 147, 26, 0.28); border-radius: 8px; background: rgba(255, 255, 255, 0.96); box-shadow: var(--kr-shadow); transform: translate(-50%, -50%); }
.kr-brand-panel::before, .kr-brand-panel::after { position: absolute; width: 52px; height: 52px; border-color: var(--kr-accent); content: ""; }
.kr-brand-panel::before { top: 14px; left: 14px; border-top: 2px solid var(--kr-accent); border-left: 2px solid var(--kr-accent); }
.kr-brand-panel::after { right: 14px; bottom: 14px; border-right: 2px solid var(--kr-accent); border-bottom: 2px solid var(--kr-accent); }
.kr-brand-panel img { display: block; width: 214px; height: 214px; object-fit: contain; }
.kr-brand-panel p { margin-top: -44px; color: var(--kr-muted); font-size: 12px; font-weight: 700; letter-spacing: 0.14em; }
.kr-orbit { position: absolute; z-index: 1; top: 50%; left: 50%; border: 1px solid rgba(199, 147, 26, 0.28); border-radius: 50%; }
.kr-orbit--one { width: 510px; height: 280px; transform: translate(-50%, -50%) rotate(-20deg); }
.kr-orbit--two { width: 470px; height: 360px; border-color: rgba(25, 26, 28, 0.1); transform: translate(-50%, -50%) rotate(25deg); }
.kr-domain { position: absolute; z-index: 4; display: grid; min-width: 142px; gap: 1px; border: 1px solid var(--kr-border); border-left: 3px solid var(--kr-accent); border-radius: 4px; padding: 10px 13px; background: rgba(255, 255, 255, 0.98); box-shadow: 0 10px 28px rgba(91, 74, 35, 0.09); }
.kr-domain strong { font-size: 11px; letter-spacing: 0.1em; }
.kr-domain span { color: var(--kr-muted); font-size: 11px; }
.kr-domain--web { top: 40px; left: 6px; }
.kr-domain--commerce { top: 65px; right: -4px; }
.kr-domain--system { bottom: 58px; left: -5px; }
.kr-domain--growth { right: 10px; bottom: 34px; }

.kr-proof { position: relative; z-index: 3; background: var(--kr-surface); }
.kr-proof__grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.kr-proof article { display: flex; align-items: center; min-height: 112px; gap: 16px; padding: 22px 25px; border-right: 1px solid var(--kr-border); }
.kr-proof article:first-child { border-left: 1px solid var(--kr-border); }
.kr-proof__mark { display: grid; flex: 0 0 46px; width: 46px; height: 46px; place-items: center; border: 1px solid var(--kr-accent); border-radius: 50%; color: var(--kr-accent-dark); font-family: var(--kr-font-heading); font-size: 15px; font-weight: 700; }
.kr-proof strong { display: block; font-size: 14px; line-height: 1.4; }
.kr-proof p { margin-top: 4px; color: var(--kr-muted); font-size: 11px; line-height: 1.55; }

.kr-section { padding-block: 76px; }
.kr-section--surface { border-top: 1px solid var(--kr-border); border-bottom: 1px solid var(--kr-border); background: var(--kr-surface); }
.kr-section-heading { max-width: 800px; margin-bottom: 38px; }
.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 { font-family: var(--kr-font-heading); font-size: clamp(30px, 3vw, 44px); font-weight: 600; letter-spacing: -0.035em; line-height: 1.17; }
.kr-section-heading p, .kr-platform p, .kr-loop 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: 690px; margin-top: 14px; color: var(--kr-muted); font-size: 15px; line-height: 1.9; }

.kr-problem-grid { display: grid; grid-template-columns: 1.15fr 0.85fr; border-top: 1px solid var(--kr-border); border-left: 1px solid var(--kr-border); }
.kr-problem-grid article { min-height: 210px; padding: 30px; border-right: 1px solid var(--kr-border); border-bottom: 1px solid var(--kr-border); background: var(--kr-surface); }
.kr-problem-grid article > span { color: var(--kr-accent-dark); font-size: 12px; font-weight: 700; }
.kr-problem-grid h3 { margin-top: 26px; font-size: 20px; line-height: 1.45; }
.kr-problem-grid p { max-width: 500px; margin-top: 10px; color: var(--kr-muted); font-size: 14px; }
.kr-problem-grid__lead { grid-row: span 2; min-height: 420px !important; display: flex; flex-direction: column; justify-content: flex-end; background: linear-gradient(140deg, var(--kr-surface), var(--kr-accent-soft)) !important; }
.kr-problem-grid__lead h3 { max-width: 450px; font-family: var(--kr-font-heading); font-size: clamp(30px, 3vw, 44px); }
.kr-problem-grid__dark { background: var(--kr-charcoal) !important; color: var(--kr-surface); }
.kr-problem-grid__dark h3 { color: var(--kr-surface); }
.kr-problem-grid__dark p { color: var(--kr-border); }

.kr-flow { padding-block: 62px; border-top: 1px solid var(--kr-border); border-bottom: 1px solid var(--kr-border); background: var(--kr-accent-soft); }
.kr-flow__track { display: grid; grid-template-columns: repeat(7, 1fr); border-top: 1px solid rgba(143, 101, 11, 0.3); border-bottom: 1px solid rgba(143, 101, 11, 0.3); }
.kr-flow__track li { position: relative; display: grid; min-height: 96px; place-content: center; gap: 4px; padding: 14px; text-align: center; }
.kr-flow__track li:not(:last-child)::after { position: absolute; top: 50%; right: -6px; color: var(--kr-accent-dark); content: "›"; transform: translateY(-50%); }
.kr-flow__track span { color: var(--kr-accent-dark); font-size: 10px; font-weight: 700; }
.kr-flow__track strong { font-size: 13px; }

.kr-service-bento { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.kr-service-card { display: flex; min-height: 265px; flex-direction: column; justify-content: flex-end; border: 1px solid var(--kr-border); border-radius: 8px; padding: 30px; background: var(--kr-surface); transition: transform 150ms ease, border-color 150ms ease; }
a.kr-service-card:hover { border-color: var(--kr-accent); transform: translateY(-3px); }
.kr-service-card > span { margin-bottom: auto; color: var(--kr-accent-dark); font-size: 11px; font-weight: 700; letter-spacing: 0.1em; }
.kr-service-card h3 { margin-top: 34px; font-family: var(--kr-font-heading); font-size: 28px; line-height: 1.25; }
.kr-service-card p { max-width: 520px; margin-top: 10px; color: var(--kr-muted); font-size: 14px; }
.kr-service-card strong { margin-top: 20px; color: var(--kr-accent-dark); font-size: 13px; }
.kr-service-card--wide { min-height: 330px; background: linear-gradient(135deg, var(--kr-surface), var(--kr-bg)); }
.kr-service-card--gold { background: var(--kr-accent-soft); }
.kr-service-card--dark { background: var(--kr-charcoal); color: var(--kr-surface); }
.kr-service-card--dark h3 { color: var(--kr-surface); }
.kr-service-card--dark p { color: var(--kr-border); }
.kr-service-card--dark > span, .kr-service-card--dark strong { color: var(--kr-accent); }

.kr-platform__grid { display: grid; grid-template-columns: 0.72fr 1.28fr; align-items: center; gap: 72px; }
.kr-platform__mark { position: relative; display: grid; min-height: 390px; place-items: center; border: 1px solid var(--kr-border); border-radius: 8px; background: var(--kr-charcoal); color: var(--kr-accent); font-family: var(--kr-font-heading); font-size: clamp(84px, 10vw, 150px); box-shadow: var(--kr-shadow); }
.kr-platform__mark::after { position: absolute; inset: 18px; border: 1px solid rgba(199, 147, 26, 0.3); content: ""; }
.kr-check-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 24px; margin-top: 24px; }
.kr-check-list li { position: relative; padding: 13px 0 13px 25px; border-top: 1px solid var(--kr-border); font-size: 14px; font-weight: 700; }
.kr-check-list li::before { position: absolute; top: 13px; left: 0; color: var(--kr-accent-dark); content: "✓"; }

.kr-stage-list { border-top: 1px solid var(--kr-border); }
.kr-stage-list article { display: grid; grid-template-columns: 140px 1fr; gap: 24px; align-items: center; padding: 27px 20px; border-bottom: 1px solid var(--kr-border); }
.kr-stage-list article > span { color: var(--kr-accent-dark); font-family: var(--kr-font-heading); font-size: 42px; }
.kr-stage-list h3 { font-size: 20px; }
.kr-stage-list p { margin-top: 5px; color: var(--kr-muted); font-size: 14px; }

.kr-loop { padding-block: 70px; background: var(--kr-charcoal); color: var(--kr-surface); }
.kr-loop h2 { color: var(--kr-surface); }
.kr-loop__grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 80px; }
.kr-loop p { color: var(--kr-border); }
.kr-loop ol { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid rgba(245, 232, 189, 0.3); border-left: 1px solid rgba(245, 232, 189, 0.3); }
.kr-loop li { display: grid; min-height: 100px; place-items: center; border-right: 1px solid rgba(245, 232, 189, 0.3); border-bottom: 1px solid rgba(245, 232, 189, 0.3); color: var(--kr-accent); font-size: 12px; font-weight: 700; letter-spacing: 0.1em; }

.kr-process__grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--kr-border); border-left: 1px solid var(--kr-border); }
.kr-process__grid li { min-height: 190px; padding: 24px; border-right: 1px solid var(--kr-border); border-bottom: 1px solid var(--kr-border); background: var(--kr-surface); }
.kr-process__grid span { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; background: var(--kr-accent); color: var(--kr-charcoal); font-size: 12px; font-weight: 700; }
.kr-process__grid h3 { margin-top: 30px; font-size: 16px; }
.kr-process__grid p { margin-top: 7px; color: var(--kr-muted); font-size: 13px; line-height: 1.75; }

.kr-faq { border-top: 1px solid var(--kr-border); }
.kr-faq details { border-bottom: 1px solid var(--kr-border); }
.kr-faq summary { position: relative; cursor: pointer; padding: 24px 48px 24px 0; font-size: 16px; font-weight: 700; list-style: none; }
.kr-faq summary::-webkit-details-marker { display: none; }
.kr-faq summary::after { position: absolute; top: 50%; right: 10px; color: var(--kr-accent-dark); content: "+"; font-size: 24px; transform: translateY(-50%); }
.kr-faq details[open] summary::after { content: "−"; }
.kr-faq details p { max-width: 740px; padding: 0 40px 25px 0; color: var(--kr-muted); font-size: 14px; }

.kr-consultation { padding: 44px 0 28px; background: var(--kr-accent); color: var(--kr-charcoal); }
.kr-consultation__inner { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 28px; }
.kr-consultation__icon { display: grid; width: 58px; height: 58px; place-items: center; border-radius: 50%; background: var(--kr-surface); font-size: 24px; }
.kr-consultation h2 { font-size: clamp(25px, 2.5vw, 36px); }
.kr-consultation__inner p { margin-top: 5px; font-size: 13px; font-weight: 600; }
.kr-consultation__note { width: min(calc(100% - 48px), var(--kr-container)); margin: 20px auto 0; border-top: 1px solid rgba(25, 26, 28, 0.25); padding-top: 16px; font-size: 12px; text-align: center; }

.kr-footer { padding: 55px 0 20px; background: var(--kr-charcoal); color: var(--kr-surface); }
.kr-footer__grid { display: grid; grid-template-columns: 1.4fr 0.8fr 0.8fr 1.1fr; gap: 44px; }
.kr-brand--footer { width: 170px; filter: brightness(0) invert(1); }
.kr-footer__brand p, .kr-footer__contact p { max-width: 320px; margin-top: 18px; color: var(--kr-border); font-size: 12px; }
.kr-footer__links, .kr-footer__contact { display: flex; flex-direction: column; gap: 8px; }
.kr-footer strong { margin-bottom: 6px; color: var(--kr-accent); font-size: 13px; }
.kr-footer a { color: var(--kr-border); font-size: 12px; }
.kr-footer a:hover { color: var(--kr-accent); }
.kr-footer__contact > a { margin-top: 9px; color: var(--kr-accent); font-weight: 700; }
.kr-footer__bottom { display: flex; justify-content: space-between; margin-top: 42px; border-top: 1px solid rgba(231, 226, 215, 0.2); padding-top: 18px; color: var(--kr-border); font-size: 11px; }

.kr-page-hero { position: relative; min-height: 500px; overflow: hidden; border-bottom: 1px solid var(--kr-border); background: linear-gradient(118deg, var(--kr-bg) 0 58%, var(--kr-surface) 58% 100%); }
.kr-page-hero::after { position: absolute; right: -170px; bottom: -210px; width: 690px; height: 390px; border: 1px solid rgba(199, 147, 26, 0.22); border-radius: 50%; content: ""; transform: rotate(-15deg); }
.kr-page-hero__grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.08fr 0.92fr; align-items: center; gap: 60px; min-height: 500px; padding-block: 55px; }
.kr-page-hero h1 { max-width: 760px; font-size: clamp(40px, 4.2vw, 64px); }
.kr-page-hero__lead { max-width: 650px; margin-top: 20px; color: var(--kr-muted); font-size: 15px; }
.kr-page-hero__mark { position: relative; display: grid; min-height: 330px; place-items: center; }
.kr-page-hero__mark img { position: relative; z-index: 2; width: 220px; height: 220px; object-fit: contain; }
.kr-page-hero__ring { position: absolute; width: 370px; height: 220px; border: 1px solid rgba(199, 147, 26, 0.35); border-radius: 50%; transform: rotate(-24deg); }
.kr-page-hero__domains { position: absolute; z-index: 3; right: 0; bottom: 20px; left: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 7px; }
.kr-page-hero__domains span { border: 1px solid var(--kr-border); border-radius: 4px; padding: 5px 9px; background: var(--kr-surface); color: var(--kr-muted); font-size: 10px; font-weight: 700; }

.kr-delivery__row, .kr-purchase-flow__row { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--kr-border); border-left: 1px solid var(--kr-border); }
.kr-delivery__row li, .kr-purchase-flow__row li { min-height: 210px; padding: 26px; border-right: 1px solid var(--kr-border); border-bottom: 1px solid var(--kr-border); }
.kr-delivery__row span, .kr-purchase-flow__row span { color: var(--kr-accent-dark); font-family: var(--kr-font-heading); font-size: 30px; }
.kr-delivery__row h3, .kr-purchase-flow__row h3 { margin-top: 30px; font-size: 18px; }
.kr-delivery__row p, .kr-purchase-flow__row p { margin-top: 8px; color: var(--kr-muted); font-size: 13px; }

.kr-capability__grid { display: grid; grid-template-columns: 0.9fr 1.1fr; align-items: stretch; border: 1px solid var(--kr-border); background: var(--kr-surface); }
.kr-capability__intro { display: flex; min-height: 470px; flex-direction: column; justify-content: flex-end; padding: 40px; background: var(--kr-charcoal); color: var(--kr-surface); }
.kr-capability__intro h2 { color: var(--kr-surface); }
.kr-capability__intro--gold { background: var(--kr-accent-soft); color: var(--kr-ink); }
.kr-capability__intro--gold h2 { color: var(--kr-ink); }
.kr-capability__intro > span { margin-bottom: auto; color: var(--kr-accent); font-family: var(--kr-font-heading); font-size: 72px; }
.kr-capability__intro--gold > span { color: var(--kr-accent-dark); }
.kr-capability__intro p { color: var(--kr-border); }
.kr-capability__intro--gold p { color: var(--kr-muted); }
.kr-capability__list { display: grid; grid-template-columns: repeat(2, 1fr); }
.kr-capability__list article { min-height: 235px; padding: 30px; border-left: 1px solid var(--kr-border); border-bottom: 1px solid var(--kr-border); }
.kr-capability__list article:nth-child(n+3) { border-bottom: 0; }
.kr-capability__list h3 { font-size: 17px; }
.kr-capability__list p { margin-top: 10px; color: var(--kr-muted); font-size: 13px; }

.kr-business__grid { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: 14px; }
.kr-business__grid article { min-height: 215px; border: 1px solid var(--kr-border); border-radius: 8px; padding: 28px; background: var(--kr-surface); }
.kr-business__grid article > span { color: var(--kr-accent-dark); font-size: 10px; font-weight: 700; letter-spacing: 0.1em; }
.kr-business__grid h3 { margin-top: 40px; font-family: var(--kr-font-heading); font-size: 27px; }
.kr-business__grid p { margin-top: 8px; color: var(--kr-muted); font-size: 13px; }
.kr-business__main { grid-row: span 2; min-height: 444px !important; display: flex; flex-direction: column; justify-content: flex-end; background: linear-gradient(145deg, var(--kr-accent-soft), var(--kr-surface)) !important; }
.kr-business__main > span { margin-bottom: auto; }
.kr-business__main h3 { font-size: 38px; }
.kr-business__dark { background: var(--kr-charcoal) !important; color: var(--kr-surface); }
.kr-business__dark h3 { color: var(--kr-surface); }
.kr-business__dark p { color: var(--kr-border); }

.kr-tactics__grid, .kr-work-categories__grid, .kr-audience__grid { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 70px; align-items: start; }
.kr-tactics ul, .kr-work-categories ul, .kr-audience ul { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--kr-border); border-left: 1px solid var(--kr-border); }
.kr-tactics li, .kr-work-categories li, .kr-audience li { min-height: 70px; display: flex; align-items: center; border-right: 1px solid var(--kr-border); border-bottom: 1px solid var(--kr-border); padding: 15px 20px; background: var(--kr-surface); font-size: 13px; font-weight: 700; }
.kr-tactics li::before, .kr-audience li::before { margin-right: 10px; color: var(--kr-accent-dark); content: "✓"; }

.kr-proof-policy { background: var(--kr-charcoal); color: var(--kr-surface); }
.kr-proof-policy h2 { color: var(--kr-surface); }
.kr-proof-policy__grid { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 80px; }
.kr-proof-policy__title > span, .kr-company-pending span { color: var(--kr-accent); font-size: 11px; font-weight: 700; letter-spacing: 0.1em; }
.kr-proof-policy p { color: var(--kr-border); }
.kr-proof-policy__requirements { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 45px; border-top: 1px solid rgba(231, 226, 215, 0.25); border-left: 1px solid rgba(231, 226, 215, 0.25); }
.kr-proof-policy__requirements span { padding: 16px; border-right: 1px solid rgba(231, 226, 215, 0.25); border-bottom: 1px solid rgba(231, 226, 215, 0.25); color: var(--kr-border); font-size: 12px; }

.kr-case-framework__row { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--kr-border); }
.kr-case-framework__row article { min-height: 260px; padding: 28px; border-right: 1px solid var(--kr-border); border-bottom: 1px solid var(--kr-border); }
.kr-case-framework__row article:first-child { border-left: 1px solid var(--kr-border); }
.kr-case-framework__row span { color: var(--kr-accent-dark); font-size: 10px; font-weight: 700; letter-spacing: 0.1em; }
.kr-case-framework__row h3 { margin-top: 70px; font-family: var(--kr-font-heading); font-size: 26px; }
.kr-case-framework__row p { margin-top: 10px; color: var(--kr-muted); font-size: 13px; }

.kr-values__rows { border-top: 1px solid var(--kr-border); }
.kr-values__rows article { display: grid; grid-template-columns: 160px 0.85fr 1.15fr; gap: 30px; align-items: center; min-height: 150px; border-bottom: 1px solid var(--kr-border); }
.kr-values__rows span { color: var(--kr-accent-dark); font-size: 11px; font-weight: 700; letter-spacing: 0.1em; }
.kr-values__rows h3 { font-family: var(--kr-font-heading); font-size: 25px; }
.kr-values__rows p { color: var(--kr-muted); font-size: 13px; }

.kr-one-partner__grid { display: grid; grid-template-columns: 0.75fr 1.25fr; align-items: center; gap: 70px; }
.kr-one-partner__mark { display: grid; min-height: 410px; place-items: center; border: 1px solid var(--kr-border); background: var(--kr-surface); box-shadow: var(--kr-shadow); }
.kr-one-partner__mark img { width: 250px; height: 250px; object-fit: contain; }
.kr-one-partner ol { counter-reset: kr-partner; margin-top: 24px; border-top: 1px solid var(--kr-border); }
.kr-one-partner li { counter-increment: kr-partner; padding: 13px 0; border-bottom: 1px solid var(--kr-border); font-size: 14px; font-weight: 700; }
.kr-one-partner li::before { display: inline-block; width: 38px; color: var(--kr-accent-dark); content: "0" counter(kr-partner); font-size: 10px; }

.kr-company-pending { padding-block: 70px; background: var(--kr-accent-soft); }
.kr-company-pending__grid { display: grid; grid-template-columns: 0.95fr 1.05fr; gap: 70px; }
.kr-company-pending ul { display: grid; grid-template-columns: repeat(2, 1fr); margin-top: 20px; border-top: 1px solid rgba(143, 101, 11, 0.3); }
.kr-company-pending li { padding: 10px 0; border-bottom: 1px solid rgba(143, 101, 11, 0.3); font-size: 12px; font-weight: 700; }

.kr-generic-hero { padding-block: 78px 55px; border-bottom: 1px solid var(--kr-border); }
.kr-generic-hero h1 { font-size: clamp(40px, 5vw, 64px); }
.kr-prose { color: var(--kr-ink); }
.kr-prose > * + * { margin-top: 1.35em; }
.kr-prose h2, .kr-prose h3 { margin-top: 2em; font-family: var(--kr-font-heading); line-height: 1.3; }
.kr-prose p, .kr-prose li { max-width: 70ch; }
.kr-prose ul, .kr-prose ol { padding-left: 1.25em; list-style: revert; }
.kr-prose blockquote { border-left: 3px solid var(--kr-accent); padding: 14px 20px; background: var(--kr-bg); }

@media (max-width: 1080px) {
    .kr-header__inner { gap: 18px; }
    .kr-nav { gap: 16px; }
    .kr-nav a { font-size: 12px; }
    .kr-hero__grid { grid-template-columns: minmax(0, 1fr) minmax(400px, 0.9fr); gap: 30px; }
    .kr-brand-panel { width: 292px; min-height: 292px; }
    .kr-brand-panel img { width: 180px; height: 180px; }
    .kr-orbit--one { width: 430px; }
    .kr-orbit--two { width: 390px; }
    .kr-footer__grid { grid-template-columns: 1.2fr repeat(3, 1fr); gap: 28px; }
}

@media (max-width: 900px) {
    .kr-container { width: min(calc(100% - 36px), var(--kr-container)); }
    .kr-header__inner { position: relative; min-height: 70px; }
    .kr-brand, .kr-brand img { width: 146px; flex-basis: 146px; }
    .kr-button--header { display: none; }
    .kr-menu-button { display: block; margin-left: auto; }
    .kr-nav { position: absolute; top: 70px; right: 0; left: 0; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: 10px 18px 18px; border-top: 1px solid var(--kr-border); border-bottom: 1px solid var(--kr-border); background: var(--kr-surface); box-shadow: var(--kr-shadow); }
    .kr-nav a { padding: 12px 5px; border-bottom: 1px solid var(--kr-border); font-size: 13px; }
    .kr-nav a::after { display: none; }
    .kr-menu-open .kr-nav { display: flex; }
    .kr-hero { min-height: auto; }
    .kr-hero__grid, .kr-page-hero__grid { grid-template-columns: 1fr; min-height: auto; padding-block: 54px 42px; }
    .kr-hero h1, .kr-page-hero h1 { max-width: 720px; font-size: clamp(40px, 8vw, 56px); }
    .kr-hero__visual { min-height: 430px; }
    .kr-domain--commerce { right: 2%; }
    .kr-domain--growth { right: 3%; }
    .kr-proof__grid { grid-template-columns: repeat(2, 1fr); }
    .kr-proof article:nth-child(2) { border-right: 0; }
    .kr-proof article:nth-child(-n+2) { border-bottom: 1px solid var(--kr-border); }
    .kr-proof article:nth-child(3) { border-left: 1px solid var(--kr-border); }
    .kr-flow__track { grid-template-columns: repeat(4, 1fr); }
    .kr-flow__track li:nth-child(4)::after { display: none; }
    .kr-service-bento, .kr-platform__grid, .kr-loop__grid, .kr-capability__grid, .kr-proof-policy__grid, .kr-one-partner__grid, .kr-company-pending__grid { grid-template-columns: 1fr; }
    .kr-platform__mark { min-height: 300px; }
    .kr-process__grid, .kr-delivery__row, .kr-purchase-flow__row { grid-template-columns: repeat(2, 1fr); }
    .kr-page-hero { min-height: auto; }
    .kr-page-hero__mark { min-height: 300px; }
    .kr-capability__intro { min-height: 360px; }
    .kr-capability__list article { border-top: 1px solid var(--kr-border); border-bottom: 0; }
    .kr-tactics__grid, .kr-work-categories__grid, .kr-audience__grid { grid-template-columns: 1fr; gap: 34px; }
    .kr-values__rows article { grid-template-columns: 130px 1fr; gap: 20px; padding-block: 22px; }
    .kr-values__rows p { grid-column: 2; }
    .kr-footer__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 560px) {
    .kr-container { width: min(calc(100% - 28px), var(--kr-container)); }
    .kr-section { padding-block: 58px; }
    .kr-hero__grid { gap: 24px; padding-top: 38px; }
    .kr-kicker { font-size: 10px; letter-spacing: 0.07em; }
    .kr-hero h1, .kr-page-hero h1 { font-size: clamp(34px, 10.4vw, 44px); letter-spacing: -0.045em; line-height: 1.19; }
    .kr-hero__lead, .kr-page-hero__lead { margin-top: 18px; font-size: 14px; line-height: 1.85; }
    .kr-actions { display: grid; grid-template-columns: 1fr; margin-top: 24px; }
    .kr-button { width: 100%; }
    .kr-hero__visual { min-height: 330px; margin-top: 4px; }
    .kr-brand-panel { width: 220px; min-height: 220px; }
    .kr-brand-panel img { width: 134px; height: 134px; }
    .kr-brand-panel p { margin-top: -34px; font-size: 9px; }
    .kr-orbit--one { width: 320px; height: 190px; }
    .kr-orbit--two { width: 290px; height: 250px; }
    .kr-domain { min-width: 112px; padding: 7px 9px; }
    .kr-domain strong, .kr-domain span { font-size: 9px; }
    .kr-domain--web { top: 8px; left: 0; }
    .kr-domain--commerce { top: 35px; right: 0; }
    .kr-domain--system { bottom: 34px; left: 0; }
    .kr-domain--growth { right: 0; bottom: 10px; }
    .kr-proof__grid { grid-template-columns: 1fr; }
    .kr-proof article, .kr-proof article:first-child, .kr-proof article:nth-child(3) { min-height: 92px; border-right: 0; border-bottom: 1px solid var(--kr-border); border-left: 0; }
    .kr-proof__mark { width: 42px; height: 42px; flex-basis: 42px; }
    .kr-section-heading { margin-bottom: 28px; }
    .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 { font-size: 29px; }
    .kr-problem-grid, .kr-service-bento, .kr-business__grid { grid-template-columns: 1fr; }
    .kr-problem-grid__lead, .kr-business__main { grid-row: auto; min-height: 300px !important; }
    .kr-flow__track { grid-template-columns: repeat(2, 1fr); }
    .kr-flow__track li:nth-child(even)::after { display: none; }
    .kr-service-card, .kr-service-card--wide { min-height: 245px; padding: 24px; }
    .kr-service-card h3 { font-size: 24px; }
    .kr-platform__mark { min-height: 240px; }
    .kr-check-list, .kr-loop ol, .kr-capability__list, .kr-tactics ul, .kr-work-categories ul, .kr-audience ul, .kr-company-pending ul { grid-template-columns: 1fr; }
    .kr-stage-list article { grid-template-columns: 78px 1fr; padding-inline: 8px; }
    .kr-stage-list article > span { font-size: 31px; }
    .kr-process__grid, .kr-delivery__row, .kr-purchase-flow__row { grid-template-columns: 1fr; }
    .kr-process__grid li, .kr-delivery__row li, .kr-purchase-flow__row li { min-height: 165px; }
    .kr-loop__grid { gap: 38px; }
    .kr-page-hero__grid { gap: 10px; padding-top: 42px; }
    .kr-page-hero__mark { min-height: 250px; }
    .kr-page-hero__mark img { width: 160px; height: 160px; }
    .kr-page-hero__ring { width: 280px; height: 170px; }
    .kr-capability__intro { min-height: 330px; padding: 28px; }
    .kr-capability__list article { min-height: 180px; }
    .kr-proof-policy__requirements, .kr-case-framework__row { grid-template-columns: 1fr; }
    .kr-case-framework__row article { min-height: 210px; border-left: 1px solid var(--kr-border); }
    .kr-case-framework__row h3 { margin-top: 35px; }
    .kr-values__rows article { grid-template-columns: 1fr; gap: 8px; }
    .kr-values__rows p { grid-column: auto; }
    .kr-one-partner__mark { min-height: 290px; }
    .kr-one-partner__mark img { width: 190px; height: 190px; }
    .kr-consultation__inner { grid-template-columns: 1fr; text-align: center; }
    .kr-consultation__icon { margin-inline: auto; }
    .kr-footer__grid { grid-template-columns: 1fr; }
    .kr-footer__bottom { flex-direction: column; gap: 6px; }
}

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