.skip-link { position: fixed; top: .75rem; left: var(--gutter); z-index: 100; display: inline-flex; align-items: center; min-height: 44px; max-width: calc(100% - var(--gutter) * 2); padding: .75rem 1.25rem; background: var(--signal); color: var(--ink); border: 2px solid var(--ink); font-weight: 700; transform: translateY(-180%); }
.skip-link:focus { transform: none; }
.site-header { background: var(--paper); color: var(--ink); border-bottom: var(--rule) solid var(--ink); position: relative; z-index: var(--layer-header); }
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; min-height: var(--header-height); padding-block: 1rem; }
.header-inner > * { min-width: 0; }
.brand { display: inline-flex; align-items: center; justify-content: flex-start; flex-shrink: 0; min-height: 44px; padding: .25rem 0; text-decoration: none; }
.brand img { height: 2.1rem; width: auto; max-width: 100%; }
.site-nav { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: clamp(.25rem, 1.5vw, 1.5rem); }
.site-nav a { display: inline-flex; align-items: center; min-height: 44px; padding: .5rem .65rem; font-family: var(--font-mono); font-size: var(--text-xs); font-weight: 600; text-transform: uppercase; letter-spacing: .035em; text-decoration: none; line-height: 1.45; border-bottom: 2px solid transparent; }
.site-nav a[aria-current='page'] { border-color: var(--signal); }
.site-nav a:hover { border-color: var(--ink); }
.site-nav .nav-contact { background: var(--signal); border: 2px solid var(--ink); padding-inline: 1.1rem; }
.nav-toggle { display: none; align-items: center; justify-content: center; gap: .5rem; min-height: 44px; padding: .5rem .75rem; border: 2px solid var(--ink); background: transparent; font-family: var(--font-mono); font-size: var(--text-xs); font-weight: 600; text-transform: uppercase; }
.nav-toggle .icon { width: 1.25rem; height: 1.25rem; }
.nav-toggle .nav-close-icon { display: none; }
.nav-toggle[aria-expanded='true'] .nav-close-icon { display: block; }
.nav-toggle[aria-expanded='true'] .nav-menu-icon { display: none; }
.site-header.is-condensed { border-bottom-color: var(--signal); }
.icon { display: inline-block; width: 1.25rem; height: 1.25rem; flex: 0 0 auto; vertical-align: middle; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.icon--large { width: 1.75rem; height: 1.75rem; }
.button, .btn { display: inline-flex; justify-content: center; align-items: center; gap: .875rem; min-height: 48px; max-width: 100%; padding: .875rem 1.5rem; background: var(--signal); border: 2px solid var(--ink); color: var(--ink); font-family: var(--font-mono); font-size: var(--text-sm); font-weight: 600; letter-spacing: .015em; line-height: 1.4; text-align: center; text-decoration: none; overflow-wrap: anywhere; }
.button > span, .btn > span { min-width: 0; }
.button--ink { background: var(--ink); color: var(--paper); }
.button--paper { background: var(--paper); color: var(--ink); }
.button--outline { background: transparent; color: inherit; border-color: currentColor; }
.button--small { min-height: 44px; padding: .625rem 1rem; font-size: var(--text-xs); }
.button--wide { width: 100%; }
.button[aria-disabled='true'] { cursor: not-allowed; background: var(--concrete); color: var(--steel); }
.button:active, .btn:active, .button.is-pressed { border-style: double; border-width: 2px; text-decoration: underline; text-underline-offset: .25em; }
.button:disabled { background: var(--concrete); color: var(--ink); }
.button-row, .actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; }
.text-link { display: inline-flex; align-items: center; gap: .75rem; min-height: 44px; padding: .5rem 0; font-family: var(--font-mono); font-size: var(--text-sm); font-weight: 600; line-height: 1.45; }
.text-link .icon { width: 1.1rem; height: 1.1rem; }
.icon-button { min-width: 44px; min-height: 44px; padding: .6rem; display: inline-flex; gap: .5rem; align-items: center; justify-content: center; border: 1px solid currentColor; background: transparent; }
.pill, .tag, .badge { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; padding: .5rem .875rem; border: 1px solid currentColor; font-family: var(--font-mono); font-size: var(--text-xs); font-weight: 500; text-transform: uppercase; line-height: 1.5; overflow-wrap: anywhere; }
.stamp { display: block; width: auto; height: clamp(5rem, 9vw, 9rem); max-width: 100%; object-fit: contain; transform: rotate(var(--stamp-turn)); transform-origin: center; }
.stamp--small { height: 3rem; transform: none; }
.stamp--large { height: clamp(7rem, 13vw, 12rem); }
.section-opener { display: flex; align-items: center; gap: 1rem; margin-bottom: clamp(2rem, 5vw, 4rem); }
.section-opener > * { min-width: 0; }
.section-opener .section-label { flex: 1; }
.section-opener .section-index { font-family: var(--font-mono); font-size: var(--text-xs); }
.section-heading { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 2rem; align-items: end; padding-bottom: 2.75rem; }
.section-heading p { max-width: 42ch; }
.service-list { list-style: none; padding: 0; margin: 0; border-top: var(--rule) solid var(--ink); }
.service-row { position: relative; display: grid; grid-template-columns: 3rem minmax(0, 1.2fr) minmax(0, 1fr) 44px; align-items: center; gap: clamp(1rem, 2vw, 2rem); padding: 1.75rem 0; border-bottom: 2px solid var(--ink); }
.service-row > * { min-width: 0; }
.service-number { align-self: start; padding-top: .65rem; font-family: var(--font-mono); font-size: var(--text-xs); font-weight: 500; }
.service-name { font-family: var(--font-display); font-size: clamp(1.875rem, 1.4rem + 2vw, 3.5rem); line-height: 1.03; font-weight: 800; letter-spacing: -.02em; text-decoration: none; min-height: 44px; padding-block: .4rem; }
.service-description { font-size: var(--text-sm); line-height: 1.65; max-width: 39ch; }
.service-arrow { display: inline-flex; align-items: center; justify-content: center; padding: .6rem; min-height: 44px; text-decoration: none; border: 1px solid var(--ink); }
.service-row:focus-within { border-bottom-color: var(--signal); }
.service-name:hover { text-decoration: underline; text-decoration-color: var(--signal); text-decoration-thickness: 3px; }
.service-visual { grid-column: 2 / -1; width: min(100%, 420px); margin-top: .5rem; }
.service-visual img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.hover-preview { pointer-events: none; z-index: var(--layer-preview); }
.hover-preview img { width: 100%; height: 100%; object-fit: cover; }
.service-row.has-hover-preview .service-visual.is-following { position: fixed; width: 260px; max-width: 32vw; margin: 0; z-index: var(--layer-preview); pointer-events: none; border: 4px solid var(--ink); }
.service-row.has-hover-preview .service-visual.is-following figcaption { background: var(--paper); padding: .5rem; }
.flat-list { list-style: none; padding: 0; border-top: 2px solid currentColor; }
.flat-list > li { padding: 1.25rem 0; border-bottom: 1px solid currentColor; }
.flat-list a { min-height: 44px; display: inline-flex; align-items: center; gap: 1rem; }
.scope-list { margin: 0; padding: 0; list-style: none; }
.scope-list li { display: grid; grid-template-columns: 1.5rem minmax(0, 1fr); gap: .75rem; padding: .875rem 0; border-bottom: 1px solid var(--concrete); }
.scope-list .icon { margin-top: .25rem; }
.scope-list--refused .icon { color: var(--signal); }
.spec-table { width: 100%; font-size: var(--text-sm); border-top: var(--rule) solid var(--ink); }
.spec-table caption { font-family: var(--font-mono); font-size: var(--text-xs); text-transform: uppercase; letter-spacing: .06em; padding-bottom: 1rem; }
.spec-table th, .spec-table td { padding: 1.1rem 1rem 1.1rem 0; vertical-align: top; border-bottom: 1px solid var(--steel); overflow-wrap: anywhere; }
.spec-table th { font-family: var(--font-mono); font-weight: 500; width: 34%; }
.spec-table thead th { background: var(--ink); color: var(--paper); padding: 1rem; width: auto; }
.spec-table tbody tr:last-child > * { border-bottom-width: 2px; }
.spec-table td:last-child, .spec-table th:last-child { padding-right: 0; }
.notice { padding: 1.25rem 1.5rem; border-left: 4px solid var(--signal); background: var(--concrete); color: var(--ink); font-size: var(--text-sm); }
.notice strong { display: block; margin-bottom: .4rem; }
.notice--ink { background: var(--ink); color: var(--paper); }
.notice--line { background: transparent; border-top: 1px solid currentColor; border-bottom: 1px solid currentColor; }
.inquiry-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; min-width: 0; }
.form-field, .field { min-width: 0; display: flex; flex-direction: column; gap: .5rem; }
.form-field--full, .field--full, .form-full { grid-column: 1 / -1; }
.inquiry-form label, .form-label { font-family: var(--font-mono); font-size: var(--text-xs); font-weight: 600; line-height: 1.55; text-transform: uppercase; letter-spacing: .045em; }
.inquiry-form input:not([type='checkbox']):not([type='radio']):not([type='hidden']), .inquiry-form select, .inquiry-form textarea, .field input:not([type='checkbox']):not([type='radio']), .field select, .field textarea { width: 100%; min-height: 52px; border: 1px solid var(--steel); border-bottom: 2px solid var(--ink); padding: .875rem 1rem; background: var(--paper); color: var(--ink); line-height: 1.5; font-size: 1rem; }
.inquiry-form textarea { min-height: 156px; }
.inquiry-form select, .field select { padding-right: 2rem; }
.inquiry-form input:focus, .inquiry-form textarea:focus, .inquiry-form select:focus, .field input:focus, .field select:focus { border-bottom-color: var(--signal); }
.field-hint, .form-hint { font-size: var(--text-xs); color: var(--steel); line-height: 1.6; }
.field-error { display: block; font-size: var(--text-sm); font-weight: 600; color: var(--ink); border-left: 3px solid var(--signal); padding-left: .75rem; line-height: 1.5; }
.field-error:empty { display: none; }
.inquiry-form [aria-invalid='true'], .field [aria-invalid='true'] { border: 2px solid var(--signal) !important; }
.form-summary { grid-column: 1 / -1; background: var(--ink); color: var(--paper); border-left: 5px solid var(--signal); padding: 1.25rem; }
.form-summary h3 { font-size: 1.5rem; margin-bottom: .75rem; }
.form-summary a { display: inline-flex; align-items: center; min-height: 44px; padding-block: .4rem; }
.form-summary ul { margin-top: .5rem; }
.consent-field { grid-column: 1 / -1; }
.checkbox-label, .inquiry-form .checkbox-label { display: flex; align-items: flex-start; gap: .875rem; min-height: 44px; padding-block: .5rem; font-family: var(--font-body); font-size: var(--text-sm); font-weight: 400; text-transform: none; letter-spacing: 0; line-height: 1.65; cursor: pointer; }
.checkbox-label input { width: 22px; height: 22px; min-height: 22px; flex: 0 0 22px; margin: .15rem 0 0; accent-color: var(--ink); }
.checkbox-label span { min-width: 0; }
.form-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem; padding-top: .5rem; }
.form-actions p { max-width: 38ch; font-size: var(--text-xs); }
.form-status { grid-column: 1 / -1; font-size: var(--text-sm); font-weight: 500; }
.form-status:empty { display: none; }
.form-divider { grid-column: 1 / -1; border-top: 2px solid var(--ink); padding-top: 1.5rem; }
.form-divider legend { float: left; width: 100%; margin-bottom: 1rem; }
.inquiry-form.is-submitting { cursor: progress; }
.inquiry-form.is-submitting .button { background: var(--concrete); }
.form-privacy { font-size: var(--text-xs); max-width: 58ch; }
.inquiry-strip { background: var(--concrete); border-top: var(--rule) solid var(--ink); border-bottom: var(--rule) solid var(--ink); padding-block: clamp(3rem, 6vw, 6rem); }
.inquiry-strip__inner { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: clamp(2rem, 6vw, 6rem); }
.inquiry-strip__intro { display: flex; flex-direction: column; align-items: flex-start; gap: 1.5rem; }
.inquiry-strip__intro h2 { max-width: 10ch; }
.breadcrumbs { padding-block: 1.25rem; font-family: var(--font-mono); font-size: var(--text-xs); }
.breadcrumbs ol { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem 1rem; padding: 0; list-style: none; }
.breadcrumbs li { display: inline-flex; align-items: center; gap: 1rem; min-width: 0; padding: 0; }
.breadcrumbs li + li::before { content: '/'; color: var(--concrete-dark); }
.breadcrumbs a { display: inline-flex; align-items: center; min-height: 44px; padding-block: .5rem; }
.breadcrumbs [aria-current] { overflow-wrap: anywhere; }
.site-footer { border-top: var(--rule) solid var(--ink); background: var(--ink); color: var(--paper); padding-top: clamp(3rem, 7vw, 7rem); padding-bottom: calc(1.25rem + var(--cookie-height)); }
.footer-main { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, .75fr); gap: clamp(2rem, 5vw, 5rem); padding-bottom: 3.5rem; }
.footer-main > * { min-width: 0; }
.footer-brand .brand img { height: 3rem; width: auto; }
.footer-brand p { font-size: var(--text-sm); max-width: 29ch; margin-top: 1.25rem; color: var(--concrete); }
.footer-contact { font-family: var(--font-mono); font-size: var(--text-xs); line-height: 1.8; }
.footer-contact address { margin-bottom: .75rem; }
.footer-contact a { display: flex; align-items: center; min-height: 44px; padding-block: .5rem; gap: .75rem; }
.footer-contact .section-label { margin-bottom: 1rem; color: var(--concrete); }
.footer-stamp { display: flex; align-items: center; justify-content: center; }
.footer-stamp .stamp { height: 8rem; transform: none; }
.footer-nav { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; border-top: 1px solid var(--steel); padding-block: 1rem; }
.footer-nav a { display: inline-flex; align-items: center; min-height: 44px; padding-block: .5rem; font-family: var(--font-mono); font-size: var(--text-xs); text-transform: uppercase; }
.footer-legal { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1.75rem; padding-block: 1.25rem; border-top: 1px solid var(--steel); }
.footer-legal-links { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; }
.footer-legal a, .footer-legal button { display: inline-flex; align-items: center; min-height: 44px; padding: .5rem 0; color: var(--paper); background: none; border: 0; font-family: var(--font-mono); font-size: .6875rem; text-decoration: underline; text-underline-offset: .25em; line-height: 1.6; }
.footer-copyright { font-family: var(--font-mono); font-size: .6875rem; color: var(--concrete); }
.cookie-banner { position: fixed; inset: auto 0 0; z-index: var(--layer-consent); background: var(--paper); color: var(--ink); border-top: 3px solid var(--ink); padding: .65rem var(--gutter); padding-bottom: max(.65rem, env(safe-area-inset-bottom)); max-height: 30vh; overflow-y: auto; }
.cookie-inner { max-width: var(--shell); margin-inline: auto; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.cookie-copy { font-size: .8125rem; line-height: 1.45; margin: 0; min-width: 0; }
.cookie-copy a { text-decoration-thickness: 1px; font-weight: 600; }
.cookie-actions { display: flex; gap: .5rem; flex: 0 0 auto; }
.cookie-actions button { min-height: 44px; padding: .5rem 1rem; border: 2px solid var(--ink); background: var(--signal); color: var(--ink); font-family: var(--font-mono); font-size: .75rem; font-weight: 600; line-height: 1.3; }
.cookie-actions [data-consent='denied'] { background: var(--paper); }
.cookie-status { font-size: var(--text-xs); }
.cookie-settings { min-height: 44px; }
.chat-widget { position: relative; z-index: var(--layer-chat); }
.chat-launcher { position: fixed; right: max(1.25rem, env(safe-area-inset-right)); bottom: calc(1.25rem + var(--cookie-height)); display: inline-flex; align-items: center; justify-content: center; gap: .625rem; max-width: calc(100% - 2.5rem); min-height: 48px; padding: .75rem 1rem; border: 2px solid var(--paper); background: var(--ink); color: var(--paper); font-family: var(--font-mono); font-size: var(--text-xs); font-weight: 600; line-height: 1.5; }
.chat-widget.is-footer-visible .chat-launcher { position: static; margin: 0 var(--gutter) 1.25rem auto; display: flex; width: fit-content; }
.chat-unread { display: inline-flex; align-items: center; justify-content: center; min-width: 1.5rem; min-height: 1.5rem; padding: .1rem .35rem; background: var(--signal); color: var(--ink); font-weight: 600; }
.chat-panel { position: fixed; right: 1.25rem; bottom: calc(1.25rem + var(--cookie-height)); width: min(420px, calc(100% - 2.5rem)); max-height: min(640px, calc(100dvh - var(--cookie-height) - 2.5rem)); display: flex; flex-direction: column; background: var(--paper); color: var(--ink); border: 3px solid var(--ink); overflow: auto; overscroll-behavior: contain; }
.chat-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .875rem 1rem; background: var(--ink); color: var(--paper); flex: 0 0 auto; }
.chat-header h2 { font-family: var(--font-mono); font-size: .875rem; letter-spacing: 0; font-weight: 600; line-height: 1.45; }
.chat-header .icon-button { border-color: var(--steel); font-size: .75rem; }
.chat-intro { padding: 1rem 1.25rem; border-bottom: 1px solid var(--concrete); font-size: var(--text-sm); }
.chat-transcript { flex: 1 1 auto; min-height: 100px; overflow-y: auto; padding: 1.25rem; display: flex; flex-direction: column; gap: 1rem; scrollbar-color: var(--steel) var(--paper); }
.chat-message { padding: .875rem 1rem; border-left: 3px solid var(--steel); background: var(--concrete); overflow-wrap: anywhere; font-size: .875rem; line-height: 1.55; max-width: 100%; }
.chat-message--visitor { background: var(--ink); color: var(--paper); border-left-color: var(--signal); margin-left: 1rem; }
.chat-message__author { display: block; margin-bottom: .4rem; font-family: var(--font-mono); font-size: .625rem; text-transform: uppercase; letter-spacing: .05em; }
.chat-message__body { white-space: pre-wrap; }
.chat-message__state { display: block; font-family: var(--font-mono); font-size: .625rem; margin-top: .5rem; }
.chat-message.is-failed { border: 2px solid var(--signal); }
.chat-message button { margin-top: .5rem; background: var(--paper); color: var(--ink); padding: .5rem .75rem; border: 1px solid currentColor; font-size: .75rem; }
.chat-start, .chat-compose { padding: 1rem 1.25rem; border-top: 2px solid var(--ink); display: grid; gap: .875rem; }
.chat-start label, .chat-compose label { display: block; font-family: var(--font-mono); font-size: .6875rem; font-weight: 500; line-height: 1.5; }
.chat-start input:not([type='checkbox']), .chat-start textarea, .chat-compose textarea { display: block; width: 100%; margin-top: .4rem; border: 1px solid var(--steel); background: var(--paper); padding: .65rem .75rem; font-size: 1rem; line-height: 1.5; }
.chat-start textarea, .chat-compose textarea { min-height: 76px; max-height: 160px; }
.chat-start .checkbox-label { font-family: var(--font-body); font-size: .75rem; }
.chat-start .button, .chat-compose .button { width: 100%; min-height: 44px; padding-block: .65rem; }
.chat-status { padding: .5rem 1.25rem; font-size: .75rem; line-height: 1.5; border-top: 1px solid var(--concrete); }
.chat-status:empty { display: none; }
.chat-footer { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem 1rem; padding: .5rem 1.25rem; border-top: 1px solid var(--concrete); }
.chat-footer a, .chat-footer button { display: inline-flex; align-items: center; min-height: 44px; padding: .5rem 0; background: none; border: 0; font-size: .6875rem; text-decoration: underline; }
.chat-panel [aria-invalid='true'] { border: 2px solid var(--signal); }
.js-only { display: none; }
.js .js-only { display: revert; }

@media (hover: hover) and (pointer: fine) {
  .button:hover, .btn:hover { background: var(--ink); color: var(--paper); }
  .button--ink:hover { background: var(--signal); color: var(--ink); }
  .button--outline:hover { background: var(--foreground, var(--ink)); color: var(--surface, var(--paper)); }
  .cookie-actions button:hover { text-decoration: underline; }
  .service-arrow:hover { background: var(--signal); }
  .footer-nav a:hover, .footer-legal a:hover, .footer-legal button:hover { text-decoration-color: var(--signal); }
}
@media (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .button, .text-link, .site-nav a { transition: background-color var(--duration-fast), color var(--duration-fast), border-color var(--duration-fast); }
  [data-magnetic] { will-change: transform; }
  .stamp { backface-visibility: hidden; }
}
@media (max-width: 1023px) {
  .header-inner { gap: 1rem; }
  .site-nav { gap: .25rem; }
  .service-row { grid-template-columns: 2rem minmax(0, 1.4fr) minmax(0, 1fr) 44px; }
  .footer-main { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .footer-stamp { grid-column: 1 / -1; justify-content: flex-start; border-top: 1px solid var(--steel); padding-top: 2rem; }
  .footer-stamp .stamp { height: 5rem; }
  .inquiry-strip__inner { grid-template-columns: minmax(0, 1fr); }
  .inquiry-strip__intro h2 { max-width: 18ch; }
}
@media (max-width: 767px) {
  .header-inner { flex-wrap: wrap; min-height: 76px; padding-block: .75rem; }
  .site-nav { width: 100%; justify-content: flex-start; gap: .25rem .75rem; border-top: 1px solid var(--ink); padding-top: .75rem; }
  .js .nav-toggle { display: inline-flex; }
  .js .site-nav { display: none; }
  .js .site-nav.is-open { display: flex; }
  .site-nav a { padding-inline: .5rem; }
  .section-heading { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
  .service-row { grid-template-columns: 1.75rem minmax(0, 1fr) 44px; gap: .75rem; padding-block: 1.5rem; }
  .service-name { font-size: clamp(1.875rem, 5vw, 2.75rem); }
  .service-description { grid-column: 2 / 3; grid-row: 2; max-width: none; }
  .service-arrow { grid-column: 3; grid-row: 1; }
  .service-visual { grid-column: 2 / -1; margin-top: 1rem; width: 100%; }
  .service-number { padding-top: .6rem; }
  .inquiry-form { gap: 1.25rem; }
  .footer-main { gap: 2.5rem; }
  .cookie-inner { gap: .5rem; }
  .cookie-copy { font-size: .75rem; }
  .cookie-actions button { padding-inline: .75rem; }
  .chat-panel { right: .75rem; bottom: calc(.75rem + var(--cookie-height)); width: calc(100% - 1.5rem); max-height: calc(100dvh - var(--cookie-height) - 1.5rem); }
}
@media (max-width: 540px) {
  .inquiry-form { grid-template-columns: minmax(0, 1fr); }
  .footer-main { grid-template-columns: minmax(0, 1fr); }
  .footer-stamp { justify-content: center; }
  .footer-legal { align-items: flex-start; }
  .footer-legal-links { gap: .25rem 1rem; }
  .cookie-banner { padding: .5rem 1rem; padding-bottom: max(.5rem, env(safe-area-inset-bottom)); }
  .cookie-inner { flex-wrap: wrap; gap: .375rem; }
  .cookie-copy { width: 100%; font-size: .6875rem; line-height: 1.4; }
  .cookie-actions { width: 100%; gap: .5rem; }
  .cookie-actions button { flex: 1; font-size: .6875rem; min-height: 44px; padding: .5rem .75rem; }
  .chat-launcher { bottom: calc(.75rem + var(--cookie-height)); right: .75rem; padding: .625rem .875rem; }
  .form-actions { align-items: stretch; flex-direction: column; }
  .form-actions .button { width: 100%; }
  .spec-table th { width: 40%; }
  .spec-table th, .spec-table td { padding-block: .875rem; font-size: .8125rem; }
}
@media (max-width: 359px) {
  .brand img { height: 1.9rem; }
  .service-row { grid-template-columns: 1.25rem minmax(0, 1fr) 44px; gap: .5rem; }
  .service-visual { grid-column: 1 / -1; }
  .service-description { grid-column: 1 / -1; }
  .button { padding-inline: 1rem; }
  .chat-header { gap: .5rem; padding-inline: .75rem; }
  .chat-start, .chat-compose, .chat-transcript { padding-inline: .875rem; }
}
@media (prefers-reduced-motion: reduce), (pointer: coarse) {
  .service-row.has-hover-preview .service-visual.is-following { position: static !important; width: 100%; max-width: 420px; transform: none !important; }
}
@media print {
  .site-header, .site-footer, .cookie-banner, .chat-widget, .skip-link, .nav-toggle, .inquiry-form, .inquiry-strip, .button-row { display: none !important; }
  .service-row { break-inside: avoid; }
  .stamp { transform: none; }
  .service-visual { position: static !important; }
}
