:root {
  --fukamori: #18382c;
  --koke: #526b55;
  --wakaba: #a9b79a;
  --kihada: #b98157;
  --kinari: #f5f1e8;
  --shiracha: #e7dfd0;
  --paper: #fcfaf5;
  --sumi: #26302b;
  --usuzumi: #657069;
  --serif: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  --sans: "Yu Gothic", "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif;
  --shell: 1180px;
  --gutter: clamp(1.125rem, 4vw, 2.25rem);
  --section: clamp(5.25rem, 9vw, 8rem);
  --gap: clamp(2rem, 5vw, 5.25rem);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: clip; }
body { margin: 0; min-width: 0; overflow-wrap: anywhere; background: var(--kinari); color: var(--sumi); font-family: var(--sans); font-size: clamp(1rem, .35vw + .92rem, 1.125rem); line-height: 1.9; letter-spacing: .02em; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-underline-offset: .22em; }
a:focus-visible { outline: 3px solid var(--kihada); outline-offset: 4px; }
h1, h2, h3, p, figure, blockquote { margin-top: 0; }
h1, h2, h3, blockquote { font-family: var(--serif); font-weight: 500; letter-spacing: .055em; line-height: 1.4; text-wrap: balance; overflow-wrap: normal; word-break: auto-phrase; }
h1 { font-size: clamp(2rem, 3.75vw, 4rem); }
h2 { font-size: clamp(1.75rem, 2.7vw, 3rem); }
h3 { font-size: clamp(1.3rem, 1.6vw, 1.7rem); }
p { margin-bottom: 1.35em; }
.shell { width: min(calc(100% - (var(--gutter) * 2)), var(--shell)); margin-inline: auto; }
.readable { max-width: 46rem; }
.tone-paper { background: var(--paper); }
.skip-link { position: fixed; z-index: 100; top: .75rem; left: .75rem; transform: translateY(-180%); padding: .7rem 1rem; background: var(--fukamori); color: var(--paper); }
.skip-link:focus { transform: none; }

.site-header { position: relative; z-index: 10; background: var(--paper); border-bottom: 1px solid var(--shiracha); }
.header-inner { width: min(calc(100% - (var(--gutter) * 2)), 1320px); min-height: 96px; margin-inline: auto; display: grid; grid-template-columns: minmax(13rem, 1fr) auto auto; align-items: center; gap: clamp(1.2rem, 3vw, 3rem); }
.brand { display: inline-flex; min-width: 0; align-items: center; gap: .8rem; color: var(--fukamori); font-family: var(--serif); font-size: .92rem; font-weight: 600; line-height: 1.5; text-decoration: none; letter-spacing: .04em; }
.brand-mark { width: 18px; height: 34px; flex: 0 0 auto; border: 1px solid var(--koke); border-radius: 50% 50% 45% 55%; transform: rotate(18deg); }
.primary-nav { display: flex; align-items: center; justify-content: center; gap: clamp(1rem, 2.3vw, 2.25rem); font-size: .88rem; white-space: nowrap; }
.primary-nav a { min-height: 44px; display: inline-flex; align-items: center; text-decoration: none; border-bottom: 1px solid transparent; }
.primary-nav a:hover, .primary-nav a[aria-current="page"] { color: var(--fukamori); border-bottom-color: var(--kihada); }
.header-cta { min-height: 46px; display: inline-flex; align-items: center; justify-content: center; padding: .6rem 1rem; border: 1px solid var(--fukamori); border-radius: 10px; color: var(--fukamori); font-size: .84rem; font-weight: 700; line-height: 1.45; text-decoration: none; text-align: center; }

.hero { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: center; gap: clamp(2.5rem, 4vw, 3.25rem); min-height: min(760px, calc(100vh - 96px)); padding-block: clamp(3.5rem, 7vw, 6.5rem); }
.hero-copy, .hero-visual, .editorial-grid > *, .cta-inner > * { min-width: 0; }
.eyebrow, .section-index, .scope-tag, .step-meta { color: var(--koke); font-family: var(--sans); font-size: .76rem; font-weight: 700; letter-spacing: .15em; line-height: 1.6; text-transform: uppercase; }
.eyebrow { display: flex; align-items: center; gap: .8rem; margin-bottom: 1.8rem; }
.eyebrow::before { content: ""; width: 2.5rem; height: 1px; background: var(--kihada); }
.hero h1 { max-width: 9.5em; margin-bottom: clamp(1.5rem, 3vw, 2.25rem); color: var(--fukamori); }
.hero-lead { max-width: 35rem; color: #465149; }
.button-row { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.button { min-height: 52px; max-width: 100%; display: inline-flex; align-items: center; justify-content: center; padding: .85rem 1.4rem; border: 1px solid var(--fukamori); border-radius: 12px; font-size: .92rem; font-weight: 700; line-height: 1.45; text-decoration: none; text-align: center; }
.button-primary { background: var(--fukamori); color: var(--paper); }
.button-primary:hover { background: #244c3d; }
.button-secondary { color: var(--fukamori); background: transparent; }
.button-secondary:hover { background: var(--paper); }
.hero-note { margin: 1.25rem 0 0; color: var(--usuzumi); font-size: .82rem; }
.hero-visual { position: relative; margin: 0; padding: .65rem; background: var(--paper); border: 1px solid var(--shiracha); border-radius: 9rem 1.25rem 1.25rem 1.25rem; }
.hero-visual img { width: 100%; min-height: 500px; object-fit: cover; object-position: center; border-radius: 8.4rem .8rem .8rem .8rem; }
.hero-visual figcaption { position: absolute; bottom: 1.7rem; left: 1.7rem; writing-mode: vertical-rl; padding: 1rem .55rem; background: rgba(252, 250, 245, .92); color: var(--fukamori); font-family: var(--serif); font-size: .86rem; letter-spacing: .12em; }

.trace { display: grid; grid-template-columns: minmax(12rem, 3fr) minmax(0, 8fr); gap: var(--gap); padding-block: var(--section); border-top: 1px solid var(--shiracha); }
.section-index { margin-bottom: 1.1rem; }
.section-intro h2 { margin-bottom: 1.4rem; color: var(--fukamori); }
.section-intro > p:not(.section-index) { color: var(--usuzumi); font-size: .94rem; }
.lead-copy { color: var(--fukamori); font-family: var(--serif); font-size: clamp(1.25rem, 1.45vw, 1.65rem); line-height: 1.8; text-wrap: pretty; }
.audience-note { margin-top: 3rem; padding: 1.5rem 0 0 1.6rem; border-top: 1px solid var(--shiracha); border-left: 3px solid var(--kihada); }
.audience-note p { margin-bottom: 0; font-family: var(--serif); color: var(--fukamori); }
.note-label { display: block; margin-bottom: .5rem; color: var(--usuzumi); font-size: .75rem; font-weight: 700; letter-spacing: .12em; }

.path-section, .manifesto, .service-scope { padding-block: var(--section); }
.editorial-grid { display: grid; grid-template-columns: minmax(13rem, 3fr) minmax(0, 8fr); gap: var(--gap); }
.sticky-intro { align-self: start; position: sticky; top: 2rem; }
.path-list { position: relative; margin: 0; padding: 0; list-style: none; }
.path-list::before { content: ""; position: absolute; top: 1rem; bottom: 1rem; left: 1.35rem; width: 1px; background: var(--shiracha); }
.path-list li { position: relative; display: grid; grid-template-columns: 2.7rem minmax(0, 1fr); gap: clamp(1.25rem, 3vw, 2.5rem); padding-bottom: clamp(2.8rem, 6vw, 5rem); }
.path-list li:last-child { padding-bottom: 0; }
.path-number { position: relative; z-index: 1; width: 2.7rem; height: 2.7rem; display: grid; place-items: center; border: 1px solid var(--kihada); border-radius: 50%; background: var(--paper); color: var(--fukamori); font-family: var(--serif); font-size: .72rem; }
.path-list h3 { margin-bottom: .65rem; color: var(--fukamori); }
.path-list p { max-width: 39rem; margin-bottom: 0; color: #4b554f; }

.proof { padding-block: var(--section); }
.proof-panel { position: relative; display: grid; grid-template-columns: minmax(0, 7fr) minmax(15rem, 3fr); gap: var(--gap); padding: clamp(2.25rem, 6vw, 5.5rem); overflow: hidden; border-radius: 1.25rem 8rem 1.25rem 1.25rem; background: var(--fukamori); color: var(--paper); }
.proof-panel::after { content: ""; position: absolute; right: 4rem; top: -4rem; width: 9rem; height: 14rem; border: 1px solid rgba(169,183,154,.38); border-radius: 50%; transform: rotate(32deg); }
.proof-panel .section-index { grid-column: 1 / -1; }
.section-index.light { color: #c8d2c0; }
.proof blockquote { margin-bottom: 0; font-size: clamp(1.75rem, 3vw, 3.1rem); }
.proof-detail { align-self: end; font-size: .92rem; color: #dce2d8; }
.signature { margin: 1.75rem 0 0; color: var(--paper); font-weight: 700; }

.cta-band { padding-block: clamp(3.5rem, 7vw, 6rem); border-top: 6px solid var(--fukamori); background: #eee7da; }
.cta-inner { display: grid; grid-template-columns: minmax(0, 6fr) minmax(16rem, 4fr); align-items: end; gap: var(--gap); }
.cta-inner h2 { max-width: 16em; margin-bottom: 0; color: var(--fukamori); }
.cta-action p { color: var(--usuzumi); font-size: .9rem; }

.site-footer { padding-block: 3.5rem; background: var(--fukamori); color: #dce2d8; }
.footer-inner { display: flex; justify-content: space-between; gap: 2rem; }
.footer-brand { margin-bottom: .3rem; color: var(--paper); font-family: var(--serif); font-size: 1rem; font-weight: 600; }
.footer-inner p { margin-bottom: 0; font-size: .82rem; }
.footer-inner nav { display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem; font-size: .82rem; }

.page-hero { min-height: 500px; display: grid; grid-template-columns: minmax(0, 7fr) minmax(16rem, 3fr); align-items: center; gap: var(--gap); padding-block: var(--section); }
.page-hero h1 { max-width: 11em; margin-bottom: 0; color: var(--fukamori); }
.page-hero .hero-lead { margin-top: 1.75rem; margin-bottom: 0; }
.page-hero-note { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 1.25rem; padding: 1.5rem; border: 1px solid var(--shiracha); border-radius: 5rem 1rem 1rem 5rem; background: var(--paper); }
.page-hero-note > span { width: 4.25rem; height: 4.25rem; display: grid; place-items: center; border-radius: 50%; background: var(--fukamori); color: var(--paper); font-family: var(--serif); font-size: 1.3rem; }
.page-hero-note p { margin: 0; color: var(--usuzumi); font-size: .85rem; line-height: 1.75; }
.manifesto-copy p:last-child { margin-bottom: 0; }

.values { padding-block: var(--section); }
.values > .section-intro { display: grid; grid-template-columns: 3fr 8fr; gap: var(--gap); margin-bottom: clamp(3rem, 6vw, 5rem); }
.value-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--shiracha); }
.value-list li { display: grid; grid-template-columns: minmax(3rem, 1fr) minmax(0, 8fr); gap: var(--gap); padding-block: clamp(2rem, 4vw, 3.5rem); border-bottom: 1px solid var(--shiracha); }
.value-list li > span { color: var(--kihada); font-family: var(--serif); font-size: 1.7rem; }
.value-list h3 { color: var(--fukamori); }
.value-list p { max-width: 42rem; margin-bottom: 0; }
.who-for, .deliverables { padding-block: var(--section); background: var(--fukamori); color: var(--paper); }
.who-for h2, .deliverables h2 { color: var(--paper); }
.quiet-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(231,223,208,.35); }
.quiet-list li { position: relative; padding: 1.3rem 1rem 1.3rem 2rem; border-bottom: 1px solid rgba(231,223,208,.35); font-family: var(--serif); font-size: clamp(1.1rem, 1.5vw, 1.35rem); }
.quiet-list li::before { content: ""; position: absolute; left: .3rem; top: 2rem; width: .45rem; height: .45rem; border-radius: 50%; background: var(--kihada); }

.scope-list article { display: grid; grid-template-columns: 6rem minmax(0, 1fr); column-gap: 1.5rem; padding: 0 0 2.5rem; margin-bottom: 2.5rem; border-bottom: 1px solid var(--shiracha); }
.scope-list article:last-child { margin-bottom: 0; }
.scope-list .scope-tag { grid-row: 1 / 3; }
.scope-list h3 { margin-bottom: .6rem; color: var(--fukamori); }
.scope-list article > p:last-child { margin-bottom: 0; }
.flow { padding-block: var(--section); }
.flow > .section-intro { max-width: 42rem; margin-bottom: clamp(3rem, 7vw, 6rem); }
.flow-list { max-width: 54rem; margin-left: auto; }
.flow-list::before { background: var(--wakaba); }
.flow-list .path-number { background: var(--kinari); }
.flow-list li { padding-bottom: clamp(3.5rem, 7vw, 6rem); }
.flow-list .step-meta { margin-bottom: .4rem; color: var(--kihada); }
.flow-list h3 { font-size: clamp(1.55rem, 2.2vw, 2.25rem); }
.flow-list ul { margin: 1.25rem 0 0; padding: 1.25rem 1.25rem 1.25rem 2.7rem; background: var(--paper); border-left: 2px solid var(--wakaba); color: var(--usuzumi); font-size: .88rem; }
.deliverable-body .lead-copy { color: var(--paper); }
.deliverable-body dl { margin: 2.5rem 0 0; border-top: 1px solid rgba(231,223,208,.35); }
.deliverable-body dl > div { display: grid; grid-template-columns: minmax(8rem, 2fr) minmax(0, 5fr); gap: 1.5rem; padding-block: 1.25rem; border-bottom: 1px solid rgba(231,223,208,.35); }
.deliverable-body dt { color: #c8d2c0; font-weight: 700; }
.deliverable-body dd { margin: 0; }
.reassurance { display: grid; grid-template-columns: minmax(13rem, 3fr) minmax(0, 8fr); gap: var(--gap); padding-block: var(--section); }
.reassurance-copy { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
.reassurance-copy p { margin: 0; padding-top: 1.25rem; border-top: 1px solid var(--shiracha); }

@media (max-width: 1050px) {
  .header-inner { grid-template-columns: minmax(12rem, 1fr) auto; padding-block: .8rem; }
  .primary-nav { grid-row: 2; grid-column: 1 / -1; justify-content: flex-start; }
  .header-cta { grid-column: 2; grid-row: 1; }
  .hero { min-height: auto; }
  .hero-visual img { min-height: 420px; }
}

@media (min-width: 1200px) and (max-width: 1365px) {
  .hero-visual img { min-height: 540px; }
}

@media (max-width: 760px) {
  :root { --section: clamp(4.5rem, 18vw, 6rem); --gap: 2.5rem; }
  .header-inner { min-height: 0; grid-template-columns: 1fr auto; gap: .6rem 1rem; }
  .brand { font-size: .78rem; }
  .header-cta { min-height: 42px; max-width: 8.5rem; padding-inline: .7rem; }
  .primary-nav { width: 100%; gap: .5rem 1.25rem; overflow: visible; flex-wrap: wrap; font-size: .78rem; }
  .primary-nav a { min-height: 40px; white-space: nowrap; }
  .hero { grid-template-columns: 1fr; gap: 2.75rem; padding-top: 3.75rem; }
  .hero-copy { max-width: 39rem; }
  .hero-visual { border-radius: 5rem 1rem 1rem 1rem; }
  .hero-visual img { min-height: 0; aspect-ratio: 16 / 11; border-radius: 4.5rem .6rem .6rem .6rem; }
  .hero-visual figcaption { right: 1.2rem; left: 1.2rem; bottom: 1.2rem; writing-mode: horizontal-tb; padding: .5rem .75rem; text-align: right; }
  .trace, .editorial-grid, .reassurance { grid-template-columns: 1fr; }
  .sticky-intro { position: static; }
  .proof-panel { grid-template-columns: 1fr; border-radius: 1rem 5rem 1rem 1rem; }
  .proof-detail { max-width: 35rem; }
  .cta-inner { grid-template-columns: 1fr; }
  .footer-inner { flex-direction: column; }
  .page-hero { min-height: 440px; grid-template-columns: 1fr; }
  .page-hero-note { max-width: 30rem; }
  .values > .section-intro { display: block; }
  .scope-list article { grid-template-columns: 1fr; }
  .scope-list .scope-tag { grid-row: auto; }
  .reassurance-copy { grid-template-columns: 1fr; }
}

@media (max-width: 430px) {
  :root { --gutter: 1.375rem; }
  body { line-height: 1.85; }
  h1 { font-size: clamp(2rem, 9vw, 2.4rem); }
  h2 { font-size: clamp(1.7rem, 7.6vw, 2.05rem); }
  .header-inner { grid-template-columns: 1fr; padding-block: .75rem; }
  .header-cta { display: none; }
  .primary-nav { grid-column: 1; gap: .25rem 1rem; }
  .hero { padding-top: 3.25rem; }
  .hero h1 { max-width: 8.7em; }
  .button-row { display: grid; grid-template-columns: 1fr; }
  .button { width: 100%; min-height: 54px; white-space: normal; }
  .hero-visual { padding: .45rem; border-radius: 3.5rem .8rem .8rem .8rem; }
  .hero-visual img { border-radius: 3.1rem .45rem .45rem .45rem; }
  .path-list::before { left: 1.1rem; }
  .path-list li { grid-template-columns: 2.2rem minmax(0, 1fr); gap: 1.35rem; }
  .path-number { width: 2.2rem; height: 2.2rem; }
  .audience-note { padding-left: 1.1rem; }
  .proof-panel { padding: 2rem 1.4rem; }
  .page-hero-note { grid-template-columns: 3.4rem minmax(0, 1fr); padding: 1rem; }
  .page-hero-note > span { width: 3.4rem; height: 3.4rem; }
  .value-list li { grid-template-columns: 2rem minmax(0, 1fr); gap: 1rem; }
  .deliverable-body dl > div { grid-template-columns: 1fr; gap: .35rem; }
}

@media (max-width: 390px) {
  :root { --gutter: 1.25rem; }
  .brand { max-width: 16rem; }
  .primary-nav { gap: .15rem .85rem; }
  .primary-nav a { font-size: .74rem; }
}

@media (max-width: 375px) {
  :root { --gutter: 1.125rem; }
  .hero-note { font-size: .78rem; }
  .page-hero-note { border-radius: 3.8rem 1rem 1rem 3.8rem; }
}

@media (min-width: 1366px) {
  .hero { gap: 3.25rem; }
  .hero-visual img { min-height: 570px; }
}

@media (min-width: 1440px) {
  .hero-visual img { min-height: 590px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}


h1,h2,h3{text-wrap:balance;overflow-wrap:normal;word-break:normal}
h1 .phrase,h2 .phrase,h3 .phrase{display:inline}


html body>.zova-powered-by{display:block!important;position:relative!important;inset:auto!important;box-sizing:border-box!important;width:100%!important;min-width:0!important;height:auto!important;min-height:44px!important;margin:0!important;padding:1rem max(1rem,calc((100% - 1180px)/2))!important;overflow:visible!important;clip:auto!important;clip-path:none!important;transform:none!important;visibility:visible!important;opacity:1!important;z-index:1!important;font:600 .75rem/1.4 system-ui,sans-serif!important;letter-spacing:.08em!important;text-align:center!important;color:#243029!important;background:#f7f5ef!important}

