.skip-link {
  position: fixed;
  z-index: var(--z-skip);
  inset-block-start: .75rem;
  inset-inline-start: var(--gutter);
  max-width: calc(100% - 2 * var(--gutter));
  min-height: var(--control-min);
  padding: .75rem 1.25rem;
  background: var(--ink);
  color: var(--paper);
  font-weight: 600;
  transform: translateY(-180%);
  transition: background-color var(--duration-control) var(--ease-control), color var(--duration-control) var(--ease-control), transform var(--duration-control) var(--ease-control);
}
.skip-link:focus-visible { transform: translateY(0); outline: 2px solid var(--paper); box-shadow: 0 0 0 5px var(--ink); }
.skip-link:hover { background: var(--signal); color: var(--ink); }
.skip-link:active { background: var(--paper); color: var(--ink); }

:where(a, button, summary, input, select, textarea, [role='tab']) {
  -webkit-tap-highlight-color: transparent;
  transition: color var(--duration-control) var(--ease-control), background-color var(--duration-control) var(--ease-control), border-color var(--duration-control) var(--ease-control), box-shadow var(--duration-control) var(--ease-control), transform var(--duration-control) var(--ease-control);
}
:where(a):hover { text-decoration-thickness: 2px; color: var(--ink); background-color: var(--steel); }
:where(a):active { background-color: var(--ink); color: var(--paper); }
:where(a, button, summary, input, select, textarea, [role='tab']):focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; box-shadow: var(--focus-light); }
:where(button):hover { background-color: var(--steel); color: var(--ink); }
:where(button):active { background-color: var(--ink); color: var(--paper); box-shadow: inset 0 0 0 2px var(--paper); }
:where(input, textarea, select):hover { border-color: var(--ink); }
:where(input, textarea, select):active { background-color: var(--paper); box-shadow: inset 0 0 0 1px var(--ink); }
:where(input, textarea, select):focus-visible { border-color: var(--ink); }

.site-header {
  position: sticky;
  inset-block-start: 0;
  z-index: var(--z-header);
  background: var(--paper);
  border-block-end: 1px solid transparent;
  transition: border-color var(--duration-state) var(--ease-control), box-shadow var(--duration-state) var(--ease-control);
}
.site-header__inner { position: relative; display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-6); min-height: var(--header-height); padding-block: 1.5rem; }
.site-header.is-condensed, .site-header.is-scrolled { border-block-end-color: var(--rule); box-shadow: 0 3px 0 var(--paper); }
.brand { display: inline-flex; align-items: center; min-height: 2.75rem; min-width: 0; max-width: 100%; padding-block: .375rem; text-decoration: none; }
.brand img { height: clamp(1.5rem, 2.4vw, 2.1rem); width: auto; max-width: 100%; object-fit: contain; object-position: left center; }
.brand:hover { background: transparent; box-shadow: 0 2px 0 var(--signal); }
.brand:active { background: var(--steel); box-shadow: 0 3px 0 var(--ink); }
.brand:focus-visible { outline: 2px solid var(--ink); outline-offset: 5px; box-shadow: var(--focus-light); }
.site-nav { width: var(--rail-width); flex-shrink: 0; background: var(--paper); }
.site-nav__label { display: block; padding: .25rem .75rem .75rem; font-family: var(--kazu-e27); font-size: .6875rem; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.site-nav__list { display: flex; flex-direction: column; list-style: none; padding: 0; margin: 0; border-block-start: 2px solid var(--ink); }
.site-nav__list li { margin: 0; min-width: 0; border-block-end: 1px solid var(--rule); }
.site-nav__link { display: flex; align-items: center; justify-content: space-between; gap: .75rem; min-height: 2.75rem; padding: .625rem .75rem; font-size: 1rem; font-weight: 600; line-height: 1.2; text-decoration: none; }
.site-nav__link .icon { width: 1rem; height: 1rem; }
.site-nav__link[aria-current='page'] { background: var(--ink); color: var(--paper); border-inline-start: 3px solid var(--signal); padding-inline-start: calc(.75rem - 3px); }
.site-nav__link:hover { background: var(--steel); color: var(--ink); box-shadow: inset 3px 0 0 var(--signal); }
.site-nav__link:active { background: var(--signal); color: var(--ink); box-shadow: inset 3px 0 0 var(--ink); }
.site-nav__link:focus-visible { position: relative; z-index: 1; outline-offset: 2px; box-shadow: var(--focus-light); }
.site-nav__phone { display: flex; align-items: flex-start; gap: .5rem; min-height: 2.75rem; margin-block-start: .75rem; padding: .625rem .5rem; font-family: var(--kazu-e27); font-size: .75rem; font-weight: 500; line-height: 1.6; text-decoration: none; }
.site-nav__phone .icon { width: 1rem; height: 1rem; margin-block-start: .1rem; }
.site-nav__phone:hover { background: var(--ink); color: var(--paper); }
.site-nav__phone:active { background: var(--signal); color: var(--ink); }
.site-nav__phone:focus-visible { outline-offset: 2px; box-shadow: var(--focus-light); }
.nav-toggle { display: none; align-items: center; justify-content: space-between; gap: .625rem; flex-shrink: 0; min-height: 2.75rem; padding: .625rem .75rem; border: 1px solid var(--ink); background: var(--paper); color: var(--ink); font-size: 1rem; font-weight: 600; line-height: 1.2; }
.nav-toggle:hover { background: var(--ink); color: var(--paper); }
.nav-toggle:active { background: var(--signal); color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }
.nav-toggle:focus-visible { outline-offset: 3px; box-shadow: var(--focus-light); }
.nav-toggle__close { display: none; }
.nav-toggle[aria-expanded='true'] .nav-toggle__menu { display: none; }
.nav-toggle[aria-expanded='true'] .nav-toggle__close { display: block; }

.button, .btn {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  max-width: 100%;
  min-height: 3.25rem;
  padding: .875rem 1.25rem;
  border: 2px solid var(--ink);
  background: var(--ink);
  color: var(--paper);
  font-family: var(--kazu-e76);
  font-size: 1.0625rem;
  font-weight: 600;
  line-height: 1.25;
  text-align: left;
  text-decoration: none;
  overflow-wrap: anywhere;
}
.button > span, .btn > span { min-width: 0; }
.button:hover, .btn:hover { background: var(--signal); border-color: var(--ink); color: var(--ink); transform: translateY(-1px); }
.button:active, .btn:active { background: var(--paper); border-color: var(--ink); color: var(--ink); transform: translateY(1px); box-shadow: inset 0 0 0 1px var(--ink); }
.button:focus-visible, .btn:focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; box-shadow: var(--focus-light); }
.button--signal, .button--primary { background: var(--signal); border-color: var(--signal); color: var(--paper); }
.button--signal:hover, .button--primary:hover { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.button--signal:active, .button--primary:active { background: var(--paper); color: var(--ink); border-color: var(--ink); }
.button--outline, .button--secondary { background: transparent; border-color: currentColor; color: inherit; }
.button--outline:hover, .button--secondary:hover { background: var(--steel); color: var(--ink); border-color: var(--ink); }
.button--outline:active, .button--secondary:active { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.button--light { background: var(--paper); color: var(--ink); border-color: var(--paper); }
.button--light:hover { background: var(--signal); border-color: var(--signal); color: var(--ink); }
.button--light:active { background: var(--steel); border-color: var(--ink); color: var(--ink); }
.button--small { min-height: 2.75rem; padding: .625rem 1rem; font-size: 1rem; }
.button:disabled, .btn:disabled { background: var(--steel); color: var(--muted); border-color: var(--rule); box-shadow: none; transform: none; }
.button[aria-busy='true'] { cursor: progress; }
.button-row { display: flex; align-items: flex-start; flex-wrap: wrap; gap: 1rem; }
.text-link { display: inline-flex; align-items: center; gap: .75rem; min-height: 2.75rem; padding: .5rem .125rem; font-weight: 600; line-height: 1.35; }
.text-link:hover { color: var(--ink); background: var(--steel); box-shadow: 0 2px 0 var(--ink); }
.text-link:active { color: var(--paper); background: var(--ink); box-shadow: 0 2px 0 var(--signal); }
.text-link:focus-visible { outline-offset: 4px; box-shadow: var(--focus-light); }
.icon-button { display: inline-flex; align-items: center; gap: .5rem; min-height: 2.75rem; min-width: 2.75rem; padding: .625rem .75rem; border: 1px solid currentColor; background: transparent; color: inherit; line-height: 1.2; }
.icon-button:hover { background: var(--steel); color: var(--ink); }
.icon-button:active { background: var(--signal); color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }
.icon-button:focus-visible { outline-offset: 3px; box-shadow: var(--focus-light); }
.surface-ink :is(.button, .btn, .text-link, .icon-button):focus-visible { outline-color: var(--paper); box-shadow: 0 0 0 2px var(--ink); }

.maker-stamp { display: inline-flex; flex-direction: column; align-items: flex-start; gap: .75rem; width: fit-content; max-width: 100%; padding: .75rem; border: 3px double var(--ink); background: var(--paper); color: var(--ink); }
.maker-stamp__mark { width: clamp(2rem, 4vw, 4rem); height: auto; }
.maker-stamp__text { max-width: 13ch; font-family: var(--kazu-e27); font-size: .625rem; font-weight: 500; line-height: 1.5; letter-spacing: .04em; text-transform: uppercase; }
.maker-stamp--hero { padding: 1rem; border-color: var(--signal); }
.maker-stamp--hero .maker-stamp__mark { width: clamp(3rem, 5vw, 5.5rem); }
.maker-stamp--small { padding: .5rem; }
.maker-stamp--small .maker-stamp__mark { width: 1.75rem; }
.section-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 1.5rem; margin-block-end: clamp(2rem, 4vw, 4rem); }
.section-heading__copy { min-width: 0; }
.section-heading h2 { max-width: 17ch; }
.section-heading .lead { margin-block-start: 1.5rem; }
.registration-label { display: flex; align-items: baseline; flex-wrap: wrap; gap: .75rem; padding-inline-start: .75rem; border-inline-start: 2px solid var(--signal); font-family: var(--kazu-e27); font-size: .75rem; font-weight: 500; line-height: 1.5; text-transform: uppercase; letter-spacing: .045em; }
.registration-label__number { font-size: .875rem; }
.photo-frame { margin: 0; border-block-start: 2px solid var(--ink); padding-block-start: .5rem; }
.photo-frame picture, .photo-frame img { width: 100%; }
.photo-frame img { aspect-ratio: 3 / 2; object-fit: cover; }
.photo-frame figcaption { padding-block: .75rem; border-block-end: 1px solid var(--rule); font-family: var(--kazu-e27); font-size: .6875rem; font-weight: 400; line-height: 1.6; color: var(--muted); }
.surface-ink .photo-frame { border-color: var(--paper); }
.surface-ink .photo-frame figcaption { color: var(--steel); }
.scope-note { padding: 1.5rem 0 1.5rem 1.25rem; border-inline-start: 2px solid var(--signal); }
.scope-note > * + * { margin-block-start: 1rem; }
.scope-note__label { font-family: var(--kazu-e27); font-size: .75rem; text-transform: uppercase; letter-spacing: .045em; }
.scope-note p { max-width: 45ch; }
.work-ledger { border-block-start: 2px solid currentColor; }
.work-ledger__row { display: grid; grid-template-columns: 2.5rem minmax(0, 1.4fr) minmax(0, 1fr) 1.5rem; align-items: start; gap: 1.5rem; min-height: 5rem; padding: 1.75rem .5rem; border-block-end: 1px solid var(--rule); text-decoration: none; }
.work-ledger__number { font-family: var(--kazu-e27); font-size: .8125rem; line-height: 1.5; border-block-start: 2px solid var(--signal); padding-block-start: .375rem; }
.work-ledger__title { font-family: var(--kazu-e9e); font-size: clamp(1.75rem, 2.5vw, 2.75rem); font-weight: 600; line-height: 1.05; }
.work-ledger__detail { font-size: 1rem; line-height: 1.5; }
.work-ledger__basis { display: block; margin-block-start: .75rem; font-family: var(--kazu-e27); font-size: .6875rem; line-height: 1.6; }
.work-ledger__row > .icon { margin-block-start: .25rem; }
.work-ledger__row:hover { color: var(--ink); background: var(--paper); box-shadow: inset 4px 0 0 var(--signal); }
.work-ledger__row:active { color: var(--ink); background: var(--signal); box-shadow: inset 4px 0 0 var(--ink); }
.work-ledger__row:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; box-shadow: var(--focus-light); }

.spec-table, .legal-table { table-layout: fixed; font-size: 1rem; line-height: 1.5; border-block-start: 2px solid var(--ink); }
.spec-table caption, .legal-table caption { padding-block: .75rem 1rem; font-family: var(--kazu-e27); font-size: .75rem; line-height: 1.5; }
.spec-table th, .spec-table td, .legal-table th, .legal-table td { padding: 1rem .75rem 1rem 0; vertical-align: top; border-block-end: 1px solid var(--rule); overflow-wrap: anywhere; }
.spec-table thead th, .legal-table thead th { font-family: var(--kazu-e27); font-size: .6875rem; font-weight: 500; letter-spacing: .035em; text-transform: uppercase; }
.spec-table tbody th { width: 36%; font-weight: 600; }
.spec-table :is(th, td):last-child, .legal-table :is(th, td):last-child { padding-inline-end: 0; }
.spec-table td p + p, .legal-table td p + p { margin-block-start: .75rem; }
.surface-ink .spec-table { border-color: var(--paper); }
.bugu0d6:focus-visible { outline-offset: 4px; box-shadow: var(--focus-light); }

.inquiry-form { display: flex; flex-direction: column; gap: 2rem; }
.form-fieldset { padding-block-start: 1.5rem; border-block-start: 2px solid var(--ink); }
.form-fieldset legend { padding-inline-end: 1rem; font-family: var(--kazu-e9e); font-size: 1.75rem; font-weight: 600; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.form-field { display: flex; flex-direction: column; gap: .5rem; min-width: 0; }
.form-field--full { grid-column: 1 / -1; }
.form-field label, .field-label { display: block; font-size: 1rem; font-weight: 600; line-height: 1.4; }
.form-field__optional { margin-inline-start: .375rem; font-size: .8125rem; color: var(--muted); font-weight: 400; }
.form-field :is(input, select, textarea), .form-input { display: block; width: 100%; max-width: 100%; min-height: 3rem; padding: .75rem; border: 1px solid var(--muted); background: var(--white); color: var(--ink); line-height: 1.4; }
.form-field textarea { min-height: 10rem; }
.form-field select { padding-inline-end: 2rem; }
.form-field :is(input, select, textarea):hover, .form-input:hover { border-color: var(--ink); box-shadow: inset 0 -2px 0 var(--ink); }
.form-field :is(input, select, textarea):active, .form-input:active { background: var(--paper); box-shadow: inset 0 0 0 1px var(--ink); }
.form-field :is(input, select, textarea):focus-visible, .form-input:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; border-color: var(--ink); box-shadow: var(--focus-light); }
.form-field [aria-invalid='true'] { border: 2px solid var(--signal); padding: calc(.75rem - 1px); }
.form-field [aria-invalid='true']:focus-visible { outline-color: var(--ink); }
.field-hint, .form-hint { color: var(--muted); font-size: .875rem; line-height: 1.45; }
.field-error { font-size: .875rem; font-weight: 600; line-height: 1.4; border-inline-start: 2px solid var(--signal); padding-inline-start: .625rem; color: var(--ink); }
.field-error:empty { display: none; }
.form-required-note { font-size: .875rem; }
.form-check { display: flex; align-items: flex-start; gap: .875rem; min-height: 2.75rem; padding: .625rem .25rem; cursor: pointer; }
.form-check input { flex: 0 0 auto; width: 1.25rem; height: 1.25rem; min-height: 0; margin-block-start: .2rem; accent-color: var(--ink); cursor: pointer; }
.form-check span { min-width: 0; font-size: 1rem; line-height: 1.45; }
.form-check:hover { background: var(--steel); }
.form-check:active { background: var(--white); box-shadow: inset 3px 0 0 var(--ink); }
.form-check:has(input:focus-visible) { outline: 2px solid var(--ink); outline-offset: 3px; box-shadow: var(--focus-light); }
.form-check input:hover { outline: 1px solid var(--ink); outline-offset: 2px; }
.form-check input:active { outline: 2px solid var(--ink); outline-offset: 2px; }
.form-check input:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
.form-summary { padding: 1.25rem; border: 2px solid var(--ink); border-inline-start: .375rem solid var(--signal); background: var(--white); }
.form-summary h2, .form-summary h3 { font-size: 1.75rem; }
.form-summary > * + * { margin-block-start: .75rem; }
.form-summary ul { margin-block-start: .75rem; }
.form-summary a { display: inline-flex; align-items: center; min-height: 2.75rem; padding: .5rem .25rem; }
.form-status { padding: 1rem 0; border-block-start: 1px solid var(--rule); font-weight: 600; }
.form-status:empty { display: none; }
.form-success { padding: 1.5rem; background: var(--ink); color: var(--paper); border-inline-start: 4px solid var(--signal); }
.form-success h2 { font-size: clamp(2rem, 4vw, 3rem); }
.form-success p { margin-block-start: 1rem; }
.form-actions { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 1rem 1.5rem; }
.form-actions p { flex: 1 1 16rem; font-size: .875rem; max-width: 44ch; }

.faq-list { border-block-start: 2px solid var(--ink); }
.faq-item { position: relative; border-block-end: 1px solid var(--rule); }
.faq-item summary { position: relative; z-index: 3; display: flex; align-items: flex-start; justify-content: space-between; gap: 1.5rem; min-height: 3.5rem; padding: 1.25rem .5rem; background: var(--paper); list-style: none; cursor: pointer; font-size: 1.25rem; font-weight: 600; line-height: 1.35; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary span { display: block; min-width: 0; }
.faq-item summary .icon { margin-block-start: .1875rem; }
.faq-item summary:hover { background: var(--steel); color: var(--ink); box-shadow: inset 3px 0 0 var(--signal); }
.faq-item summary:active { background: var(--ink); color: var(--paper); }
.faq-item summary:focus-visible { outline-offset: 3px; box-shadow: var(--focus-light); }
.faq-item[open] summary { border-block-end: 1px solid var(--rule); }
.faq-item[open] summary .icon { transform: rotate(45deg); }
.faq-item__answer { position: relative; z-index: 2; display: block; max-width: 68ch; padding: 1.5rem .5rem 2rem; background: var(--paper); }
.faq-item__answer > * + * { margin-block-start: 1rem; }
.tabs { display: flex; flex-wrap: wrap; gap: .5rem; padding-block-end: 1rem; border-block-end: 1px solid var(--rule); }
.tab { min-height: 2.75rem; padding: .625rem 1rem; background: transparent; border: 1px solid var(--ink); font-weight: 600; text-align: left; }
.tab[aria-selected='true'] { background: var(--ink); color: var(--paper); border-block-end: 3px solid var(--signal); }
.tab:hover { background: var(--steel); color: var(--ink); }
.tab:active { background: var(--signal); color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }
.tab:focus-visible { outline-offset: 3px; box-shadow: var(--focus-light); }
.tab-panel { padding-block: 1.5rem; }

.site-footer { margin-block-start: var(--section-space); background: var(--ink); color: var(--paper); border-block-start: 4px solid var(--signal); }
.site-footer__inner { padding-block: clamp(2.5rem, 5vw, 5rem) 1.5rem; }
.site-footer__top { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: var(--grid-gap); padding-block-end: 3rem; }
.site-footer__identity { display: flex; flex-direction: column; align-items: flex-start; gap: 1.5rem; }
.site-footer .brand img { height: clamp(1.1rem, 3.5vw, 2.5rem); width: auto; }
.site-footer .brand:hover { background: transparent; box-shadow: 0 2px 0 var(--signal); }
.site-footer .brand:active { background: var(--muted); box-shadow: 0 3px 0 var(--paper); }
.site-footer .brand:focus-visible { outline-color: var(--paper); box-shadow: 0 0 0 2px var(--ink); }
.site-footer__statement { max-width: 23ch; font-family: var(--kazu-e9e); font-size: clamp(2rem, 3vw, 3.5rem); font-weight: 600; line-height: 1.1; }
.site-footer__maker { display: flex; align-items: flex-start; gap: 1rem; margin-block-start: .5rem; }
.site-footer__maker p { max-width: 27ch; color: var(--steel); font-size: .875rem; }
.site-footer__contact { border-block-start: 1px solid var(--rule); padding-block-start: 1.25rem; }
.site-footer__label { margin-block-end: .75rem; font-family: var(--kazu-e27); font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; }
.site-footer__contact address { font-size: 1rem; line-height: 1.5; }
.site-footer__contact address > span { display: block; }
.site-footer__contact .postal-note { margin-block-start: .5rem; color: var(--steel); font-size: .8125rem; }
.site-footer__contact-links { display: flex; flex-direction: column; align-items: flex-start; gap: .25rem; margin-block-start: 1rem; }
.site-footer__contact-links a { display: inline-flex; align-items: flex-start; gap: .625rem; min-height: 2.75rem; padding: .625rem .25rem; font-size: 1rem; line-height: 1.4; }
.site-footer__contact-links .icon { margin-block-start: .125rem; width: 1.125rem; height: 1.125rem; }
.site-footer__legal { border-block-start: 1px solid var(--muted); padding-block-start: 1rem; }
.site-footer__legal-list { display: flex; flex-wrap: wrap; align-items: flex-start; column-gap: 1.25rem; row-gap: .25rem; list-style: none; padding: 0; }
.site-footer__legal-list li { margin: 0; }
.site-footer__legal-list a, .site-footer__legal-list button { display: inline-flex; align-items: center; min-height: 2.75rem; padding: .625rem .25rem; border: 0; background: transparent; color: var(--paper); font-size: .875rem; line-height: 1.35; text-decoration: underline; text-underline-offset: .2em; text-align: left; }
.site-footer :is(.site-footer__contact-links a, .site-footer__legal-list a, .site-footer__legal-list button):hover { color: var(--ink); background: var(--paper); box-shadow: 0 2px 0 var(--signal); }
.site-footer :is(.site-footer__contact-links a, .site-footer__legal-list a, .site-footer__legal-list button):active { color: var(--ink); background: var(--signal); box-shadow: inset 0 -2px 0 var(--paper); }
.site-footer :is(.site-footer__contact-links a, .site-footer__legal-list a, .site-footer__legal-list button):focus-visible { outline: 2px solid var(--paper); outline-offset: 3px; box-shadow: 0 0 0 2px var(--ink); }
.site-footer__bottom { display: flex; flex-wrap: wrap; align-items: baseline; gap: .75rem 2rem; padding-block-start: 1.5rem; padding-block-end: calc(6rem + var(--consent-height) + var(--safe-bottom)); color: var(--steel); font-family: var(--kazu-e27); font-size: .6875rem; line-height: 1.6; }
.site-footer__bottom p { max-width: 62ch; }

.cookie-banner { position: fixed; z-index: var(--z-consent); inset-inline: 0; inset-block-end: 0; padding: .375rem var(--gutter) calc(.375rem + var(--safe-bottom)); border-block-start: 2px solid var(--ink); background: var(--paper); color: var(--ink); box-shadow: 0 -4px 0 rgb(20 20 20 / .08); }
.cookie-banner__inner { width: min(100%, calc(var(--shell-width) - 2 * var(--gutter))); margin-inline: auto; display: flex; align-items: center; justify-content: space-between; gap: .5rem 2rem; min-width: 0; }
.cookie-banner__copy { max-width: 60ch; font-size: .875rem; line-height: 1.2; }
.cookie-banner__copy a { display: inline-flex; align-items: center; min-height: 2.75rem; padding-inline: .25rem; font-weight: 600; }
.cookie-banner__actions { display: flex; align-items: stretch; gap: .5rem; flex: 0 0 auto; }
.cookie-banner__actions button { min-height: 2.75rem; padding: .625rem 1rem; border: 1px solid var(--ink); background: var(--paper); color: var(--ink); font-size: .9375rem; font-weight: 600; line-height: 1.2; text-align: left; }
.cookie-banner__actions button:hover { background: var(--steel); color: var(--ink); box-shadow: inset 0 -2px 0 var(--ink); }
.cookie-banner__actions button:active { background: var(--ink); color: var(--paper); box-shadow: inset 0 0 0 1px var(--paper); }
.cookie-banner__actions button:focus-visible { outline-offset: 2px; box-shadow: var(--focus-light); }
.cookie-banner__actions [data-483f09-allow] { background: var(--ink); color: var(--paper); }
.cookie-banner__actions [data-483f09-allow]:hover { background: var(--steel); color: var(--ink); }
.cookie-banner__actions [data-483f09-allow]:active { background: var(--signal); color: var(--ink); }
.consent-status { font-size: .875rem; padding-block: .75rem; border-block-start: 1px solid var(--rule); }
.consent-status:empty { display: none; }

.chat-widget { position: relative; z-index: var(--z-chat); }
.chat-launcher { position: fixed; inset-inline-end: var(--gutter); inset-block-end: calc(1rem + var(--consent-height) + var(--safe-bottom)); display: inline-flex; align-items: center; gap: .625rem; max-width: calc(100% - 2 * var(--gutter)); min-height: 3rem; padding: .75rem 1rem; border: 2px solid var(--paper); background: var(--ink); color: var(--paper); box-shadow: 0 0 0 1px var(--ink); font-size: 1rem; font-weight: 600; line-height: 1.25; }
.chat-launcher:hover { background: var(--signal); color: var(--ink); border-color: var(--ink); box-shadow: 0 0 0 2px var(--paper); transform: translateY(-1px); }
.chat-launcher:active { background: var(--paper); color: var(--ink); border-color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); transform: translateY(1px); }
.chat-launcher:focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; box-shadow: var(--focus-light); }
.chat-launcher__count { display: inline-flex; align-items: center; min-width: 1.5rem; min-height: 1.5rem; padding: .125rem .375rem; background: var(--paper); color: var(--ink); font-family: var(--kazu-e27); font-size: .75rem; }
body:has([data-483f09]:not([hidden])) .chat-launcher { display: none; }
body.consent-visible .chat-launcher { display: none; }
.chat-panel { position: fixed; inset-inline-end: var(--gutter); inset-block-end: calc(1rem + var(--consent-height) + var(--safe-bottom)); width: min(26rem, calc(100% - 2 * var(--gutter))); max-height: calc(100vh - 2rem - var(--consent-height) - var(--safe-bottom)); max-height: calc(100dvh - 2rem - var(--consent-height) - var(--safe-bottom)); display: flex; flex-direction: column; border: 2px solid var(--ink); background: var(--paper); color: var(--ink); box-shadow: var(--shadow-panel); }
.chat-panel__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: .875rem 1rem; border-block-end: 1px solid var(--rule); flex: 0 0 auto; background: var(--ink); color: var(--paper); }
.chat-panel__title { font-family: var(--kazu-e9e); font-size: 1.875rem; font-weight: 600; line-height: 1.1; }
.chat-panel__subtitle { margin-block-start: .375rem; font-size: .8125rem; line-height: 1.4; color: var(--steel); }
.chat-close { flex-shrink: 0; font-size: .8125rem; }
.chat-close:hover { background: var(--paper); color: var(--ink); }
.chat-close:active { background: var(--signal); color: var(--ink); box-shadow: inset 0 0 0 1px var(--paper); }
.chat-close:focus-visible { outline-color: var(--paper); box-shadow: 0 0 0 2px var(--ink); }
.chat-panel__body { min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 1rem; }
.chat-intro { font-size: 1rem; line-height: 1.4; margin-block-end: 1rem; }
.chat-contact { display: flex; flex-direction: column; gap: 1rem; }
.chat-contact .form-check span { font-size: .875rem; }
.chat-log { display: flex; flex-direction: column; align-items: stretch; gap: .875rem; max-height: min(36vh, 20rem); min-height: 4rem; overflow-y: auto; overscroll-behavior: contain; padding: .75rem .25rem; }
.chat-log:empty { min-height: 0; padding: 0; }
.chat-message { max-width: 92%; padding: .875rem; border-inline-start: 2px solid var(--ink); background: var(--white); color: var(--ink); font-size: 1rem; line-height: 1.45; overflow-wrap: anywhere; }
.chat-message p { white-space: pre-wrap; }
.chat-message--outgoing { align-self: flex-end; background: var(--ink); color: var(--paper); border-color: var(--signal); }
.chat-message__meta { display: block; margin-block-end: .375rem; font-family: var(--kazu-e27); font-size: .625rem; line-height: 1.5; }
.chat-message--pending { border: 1px dashed var(--rule); }
.chat-message--failed { border: 2px solid var(--signal); }
.chat-message__retry { display: inline-flex; align-items: center; min-height: 2.75rem; padding: .5rem .75rem; margin-block-start: .5rem; border: 1px solid currentColor; background: var(--paper); color: var(--ink); font-size: .875rem; }
.chat-message__retry:hover { background: var(--steel); color: var(--ink); }
.chat-message__retry:active { background: var(--signal); color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }
.chat-message__retry:focus-visible { outline-offset: 3px; box-shadow: var(--focus-light); }
.chat-composer { display: flex; flex-direction: column; gap: .75rem; padding-block-start: 1rem; border-block-start: 1px solid var(--rule); }
.chat-composer textarea { min-height: 5rem; max-height: 12rem; }
.chat-composer__actions { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem; }
.chat-composer__actions .button { margin-inline-start: auto; }
.chat-status { font-size: .8125rem; line-height: 1.4; padding-block: .5rem; }
.chat-status:empty { display: none; }
.chat-status.is-error { border-inline-start: 2px solid var(--signal); padding-inline-start: .5rem; font-weight: 600; }
.chat-panel__privacy { padding: .75rem 1rem; border-block-start: 1px solid var(--rule); font-size: .75rem; line-height: 1.4; }
.chat-panel__privacy a { display: inline-flex; align-items: center; min-height: 2.75rem; padding: .25rem; }

@media (min-width: 1100px) {
  .site-header__inner { padding-inline-end: calc(var(--gutter) + var(--rail-width) + var(--rail-gap)); }
  .site-nav { position: absolute; inset-block-start: 1.5rem; inset-inline-end: var(--gutter); }
  .site-header.is-condensed .site-nav__label, .site-header.is-scrolled .site-nav__label { border-inline-start: 2px solid var(--signal); }
}
@media (max-width: 1099px) {
  .site-header__inner { flex-wrap: wrap; align-items: center; gap: .75rem 1.5rem; padding-block: 1rem; }
  .site-nav { width: 100%; }
  .site-nav__label { display: none; }
  .site-nav__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .site-nav__phone { margin-block-start: .375rem; }
  .js .nav-toggle { display: inline-flex; }
  .js .site-nav[data-7eb8d0] { display: none; }
  .js .site-nav[data-7eb8d0].is-open, .js .site-nav[data-7eb8d0][data-open='true'], .js .site-nav[data-7eb8d0][aria-hidden='false'], .js .site-header:has([data-4e5c62][aria-expanded='true']) [data-7eb8d0] { display: block; }
  .site-header:has([data-4e5c62][aria-expanded='true']) { max-height: 90dvh; overflow-y: auto; }
}
@media (max-width: 767px) {
  .site-header__inner { gap: .75rem; }
  .brand img { height: clamp(.875rem, 3.1vw, 1.5rem); }
  .site-nav__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .site-nav__list li:nth-child(odd) { border-inline-end: 1px solid var(--rule); }
  .work-ledger__row { grid-template-columns: 2rem minmax(0, 1fr) 1.25rem; gap: .75rem; padding-block: 1.5rem; }
  .work-ledger__detail { grid-column: 2; }
  .work-ledger__row > .icon { grid-column: 3; grid-row: 1; }
  .section-heading { gap: 1rem; }
  .section-heading .maker-stamp__text { display: none; }
  .form-grid { grid-template-columns: minmax(0, 1fr); }
  .site-footer__top { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
  .site-footer__contact-links a { font-size: 1rem; }
  .site-footer__legal-list { column-gap: 1rem; }
  .cookie-banner { padding-block-start: .375rem; padding-block-end: calc(.375rem + var(--safe-bottom)); }
  .cookie-banner__inner { flex-wrap: wrap; gap: .25rem; }
  .cookie-banner__copy { display: flex; flex-wrap: wrap; align-items: center; gap: 0 .25rem; font-size: .875rem; line-height: 1.2; }
  .cookie-banner__copy a { min-height: 2.75rem; padding-block: .25rem; }
  .cookie-banner__actions { width: 100%; }
  .cookie-banner__actions button { flex: 1 1 0; padding: .5rem .75rem; font-size: .875rem; }
  .chat-panel { inset-inline-end: 1rem; width: calc(100% - 2rem); }
  .chat-panel__header { padding: .75rem; gap: .5rem; }
  .chat-panel__body { padding: .75rem; }
  .chat-panel__title { font-size: 1.625rem; }
  .spec-table, .legal-table { font-size: .9375rem; }
  .spec-table th, .spec-table td, .legal-table th, .legal-table td { padding-block: .875rem; padding-inline-end: .5rem; }
}
@media (max-width: 414px) {
  .nav-toggle { gap: .375rem; padding-inline: .625rem; font-size: .9375rem; }
  .nav-toggle .icon { width: 1rem; height: 1rem; }
  .button-row { align-items: stretch; }
  .button-row .button { width: 100%; }
  .section-heading { grid-template-columns: minmax(0, 1fr); }
  .section-heading .maker-stamp { justify-self: start; }
  .cookie-banner__copy { font-size: .8125rem; }
  .chat-panel__privacy { padding: .5rem .75rem; }
  .site-footer__legal-list { column-gap: .875rem; }
}
@media (max-height: 500px) and (max-width: 767px) {
  .chat-panel { inset-block-end: .5rem; max-height: calc(100dvh - 1rem); }
  .chat-panel__subtitle { display: none; }
  .chat-panel__privacy { padding-block: .25rem; }
  .chat-log { max-height: 25dvh; }
}
@media (prefers-reduced-motion: reduce) {
  .button:hover, .button:active, .btn:hover, .btn:active, .chat-launcher:hover, .chat-launcher:active { transform: none; }
}
@media (forced-colors: active) {
  .button, .btn, .nav-toggle, .chat-launcher, .chat-panel, .cookie-banner, .maker-stamp { border: 2px solid ButtonText; }
  .site-nav__link[aria-current='page'], .tab[aria-selected='true'] { outline: 2px solid Highlight; outline-offset: -3px; }
  .form-field [aria-invalid='true'] { border: 3px double CanvasText; }
  .form-check input { appearance: auto; }
}
@media print {
  .site-footer { margin-block-start: 2rem; border-block-start: 2px solid black; background: white; color: black; }
  .site-footer__identity, .site-footer__legal, .site-footer__bottom { display: none; }
  .site-footer__top { display: block; padding: 0; }
  .site-footer__contact { border: 0; }
  .site-footer__contact-links a { color: black; }
  .faq-item__answer { display: block; }
}
