.icon { width: 1.25rem; height: 1.25rem; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.skip-link { position: fixed; z-index: var(--z-skip); top: .75rem; left: var(--gutter); max-width: calc(100% - var(--gutter) * 2); padding: .875rem 1.25rem; min-height: var(--tap-size); background: var(--paper); color: var(--ink); border: 2px solid var(--rust); transform: translateY(-200%); text-decoration: none; font-weight: 600; }
.skip-link:focus { transform: none; }
.site-header { position: sticky; top: 0; z-index: var(--z-header); background: var(--ink); border-bottom: 1px solid var(--line-soft); }
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: var(--header-space); padding-block: 1.1rem; transition: padding var(--duration-control) var(--ease-standard), min-height var(--duration-control) var(--ease-standard); }
.brand { display: inline-flex; align-items: center; min-height: var(--tap-size); padding-block: .25rem; text-decoration: none; flex: 0 1 auto; }
.brand img { height: 3.2rem; width: auto; max-width: 100%; object-fit: contain; }
.site-header.is-condensed .header-inner { min-height: 5.25rem; padding-block: .65rem; }
.menu-toggle { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; gap: .875rem; min-height: 48px; padding: .65rem .875rem; color: var(--paper); background: none; border: 1px solid var(--line); border-radius: var(--radius-control); font-size: var(--text-sm); font-weight: 500; transition: background var(--duration-fast), border-color var(--duration-fast); }
.menu-toggle .icon { width: 1.375rem; height: 1.375rem; }
.menu-toggle:hover, .menu-toggle[aria-expanded='true'] { background: var(--surface); border-color: var(--sand); }
.menu-toggle:active { background: var(--surface-raised); }
.navigation-overlay { position: fixed; inset: 0; z-index: var(--z-menu); background: var(--ink); overflow-y: auto; overscroll-behavior: contain; padding-bottom: calc(2rem + var(--safe-bottom)); }
.navigation-overlay__top { display: flex; justify-content: space-between; align-items: center; gap: 1rem; min-height: var(--header-space); padding-block: 1.1rem; border-bottom: 1px solid var(--line); }
.navigation-overlay__body { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr); gap: clamp(2rem, 7vw, 7rem); padding-top: clamp(2rem, 6vh, 5rem); }
.navigation-main { align-self: start; }
.navigation-main li { border-bottom: 1px solid var(--line); }
.navigation-main a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .2em 0 .3em; min-height: 64px; font-family: var(--font-display); font-size: clamp(2.3rem, 4.8vw, 5rem); line-height: 1.15; letter-spacing: -.045em; text-decoration: none; }
.navigation-main a .icon { width: clamp(1.25rem, 2.5vw, 2rem); height: clamp(1.25rem, 2.5vw, 2rem); color: var(--rust); transition: transform var(--duration-control) var(--ease-out); }
.navigation-main a:hover { color: var(--sand); }
.navigation-main a:hover .icon { transform: translate(3px, -3px); }
.navigation-main a[aria-current='page'] { color: var(--rust); }
.navigation-main a:focus-visible { outline-offset: -3px; }
.navigation-support { padding-top: .75rem; }
.navigation-support figure img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.navigation-support figcaption { border-bottom: 1px solid var(--line); padding-bottom: 1.25rem; }
.navigation-contact { margin-top: 1.5rem; display: grid; gap: .5rem; }
.navigation-contact a { width: fit-content; min-height: 44px; display: inline-flex; align-items: center; gap: .75rem; padding-block: .5rem; font-family: var(--font-mono); font-size: var(--text-sm); }
.navigation-contact address { color: var(--sand); font-size: var(--text-sm); }
.navigation-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem 2rem; padding-top: 2.5rem; color: var(--sand); font-size: var(--text-sm); }
.navigation-bottom a { display: inline-flex; align-items: center; min-height: 44px; padding-block: .5rem; }
.no-script-nav { padding-block: 1rem; border-bottom: 1px solid var(--line); }
.no-script-nav ul { display: flex; flex-wrap: wrap; gap: .25rem 1.5rem; }
.no-script-nav a { display: inline-flex; align-items: center; min-height: 44px; }
.button, .btn { display: inline-flex; align-items: center; justify-content: center; gap: .75rem; min-height: 48px; max-width: 100%; padding: .875rem 1.4rem; border: 1px solid var(--rust); border-radius: var(--radius-control); background: var(--rust); color: var(--ink); text-align: center; font-size: var(--text-sm); font-weight: 600; line-height: 1.45; text-decoration: none; white-space: normal; overflow-wrap: anywhere; transition: background var(--duration-fast), color var(--duration-fast), border-color var(--duration-fast), box-shadow var(--duration-fast); }
.button span, .btn span { min-width: 0; }
.button:hover, .btn:hover { background: #eea264; border-color: #eea264; }
.button:active, .btn:active, .button.is-pressed { background: #cc7030; border-color: #cc7030; box-shadow: inset 0 2px 0 rgb(0 0 0 / .15); }
.button--secondary, .btn--secondary { background: transparent; color: var(--paper); border-color: var(--line-strong); }
.button--secondary:hover, .btn--secondary:hover { background: var(--surface-raised); color: var(--paper); border-color: var(--sand); }
.button--secondary:active { background: var(--surface); }
.button--paper { background: var(--paper); border-color: var(--paper); color: var(--ink); }
.button--paper:hover { background: var(--sand); border-color: var(--sand); }
.button--small { padding: .65rem 1rem; min-height: 44px; }
.button--wide { width: 100%; }
.button:disabled, .btn:disabled { opacity: .6; box-shadow: none; }
.button[aria-busy='true'] { cursor: progress; }
.text-link { display: inline-flex; align-items: center; justify-content: space-between; gap: .75rem; min-height: 44px; max-width: 100%; padding-block: .625rem; text-decoration: underline; text-decoration-color: var(--line-strong); font-size: var(--text-sm); font-weight: 500; }
.text-link .icon { color: var(--rust); transition: transform var(--duration-control) var(--ease-standard); }
.text-link:hover .icon { transform: translateX(3px); }
.phone-link { display: inline-flex; align-items: center; gap: .75rem; min-height: 44px; padding-block: .5rem; font-family: var(--font-mono); font-size: clamp(.9rem, .8rem + .5vw, 1.15rem); text-decoration-thickness: 1px; }
.button-row { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.tag, .badge { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; max-width: 100%; padding: .5rem .75rem; border: 1px solid var(--line); border-radius: var(--radius-tag); color: var(--sand); font-family: var(--font-mono); font-size: var(--text-xs); line-height: 1.4; }
.tag--accent { color: var(--rust); border-color: var(--rust); }
.section-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: var(--grid-gap); margin-bottom: clamp(2rem, 5vw, 4.5rem); }
.section-heading .eyebrow { margin: .5rem 0 0; }
.section-heading__body { max-width: 48rem; }
.section-heading__body > p { margin-top: 1.5rem; color: var(--sand); max-width: 36rem; }
.section-heading__body .text-link { margin-top: 1rem; }
.service-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3.5rem 2rem; }
.service-card { display: flex; flex-direction: column; align-items: start; min-width: 0; border-bottom: 1px solid var(--line); padding-bottom: 1.75rem; }
.service-card__media { width: 100%; display: block; margin-bottom: 1.5rem; }
.service-card__media img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.service-card__meta { display: flex; flex-wrap: wrap; gap: .5rem 1rem; justify-content: space-between; width: 100%; margin-bottom: 1rem; color: var(--sand); font-family: var(--font-mono); font-size: var(--text-xs); }
.service-card h3 { font-size: clamp(1.55rem, 2.3vw, 2.4rem); max-width: 100%; }
.service-card h3 a { display: inline-block; min-height: 44px; padding-block: .15rem; text-decoration: none; }
.service-card h3 a:hover { text-decoration: underline; text-decoration-color: var(--rust); }
.service-card p { margin-block: 1rem 1.25rem; max-width: 35rem; color: var(--sand); font-size: var(--text-sm); }
.service-card .text-link { margin-top: auto; width: 100%; }
.service-card:focus-within { border-color: var(--rust); }
.service-row { display: grid; grid-template-columns: minmax(0, .3fr) minmax(0, 1.3fr) minmax(0, 1fr) auto; gap: 1.5rem; align-items: start; padding-block: 2rem; border-top: 1px solid var(--line); text-decoration: none; }
.service-row:last-child { border-bottom: 1px solid var(--line); }
.service-row__number { color: var(--rust); font-family: var(--font-mono); font-size: var(--text-sm); }
.service-row h3 { font-size: var(--text-xl); }
.service-row p { font-size: var(--text-sm); color: var(--sand); }
.service-row > .icon { margin-top: .25rem; color: var(--rust); }
.service-row:hover { background: var(--surface); }
.spec-table { width: 100%; table-layout: fixed; border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line-strong); }
.spec-table caption { font-family: var(--font-display); font-size: var(--heading-sm); line-height: 1.25; padding-bottom: 1.5rem; }
.spec-table th, .spec-table td { padding: 1.15rem 1rem 1.15rem 0; border-bottom: 1px solid var(--line); }
.spec-table th:last-child, .spec-table td:last-child { padding-right: 0; }
.spec-table thead th { font-family: var(--font-mono); font-size: var(--text-xs); letter-spacing: .025em; color: var(--sand); }
.spec-table tbody th { color: var(--paper); font-weight: 500; }
.spec-table tbody td { color: var(--sand); }
.spec-table .value { font-family: var(--font-mono); color: var(--paper); font-variant-numeric: tabular-nums; }
.spec-table tr:last-child > * { border-bottom: 0; }
.table-note { margin-top: 1.25rem; font-size: var(--text-sm); color: var(--sand); line-height: 1.7; max-width: 48rem; }
.detail-list { border-top: 1px solid var(--line); }
.detail-list > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.7fr); gap: 1.5rem; padding-block: 1.25rem; border-bottom: 1px solid var(--line); }
.detail-list dt { font-family: var(--font-mono); font-size: var(--text-xs); color: var(--sand); }
.detail-list dd { font-size: var(--text-sm); }
.notice { border-inline-start: 2px solid var(--rust); background: var(--surface); padding: 1.5rem clamp(1rem, 3vw, 2rem); }
.notice h3, .notice h4 { margin-bottom: .75rem; font-size: var(--text-xl); }
.notice p { font-size: var(--text-sm); line-height: 1.75; }
.notice p + p { margin-top: .875rem; }
.notice--risk { border-inline-start-color: var(--sand); }
.notice--error { border-color: var(--error); color: var(--error); background: var(--error-surface); }
.inquiry-form { display: grid; gap: 1.75rem; min-width: 0; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.field { display: grid; align-content: start; gap: .5rem; min-width: 0; }
.field--full { grid-column: 1 / -1; }
.field label, .field-label { font-size: var(--text-sm); font-weight: 500; line-height: 1.5; }
.field label small { color: var(--sand); font-weight: 400; font-size: var(--text-xs); }
.field input, .field textarea, .field select { width: 100%; min-height: 52px; padding: .8rem 1rem; border: 1px solid var(--line-strong); border-radius: var(--radius-control); background: var(--ink); color: var(--paper); font-size: 1rem; line-height: 1.5; transition: border-color var(--duration-fast), background var(--duration-fast); }
.field select { appearance: auto; padding-right: .75rem; }
.field option { color: var(--paper); background: var(--ink); }
.field textarea { min-height: 9rem; }
.field input:hover, .field textarea:hover, .field select:hover { border-color: var(--sand); }
.field input:focus, .field textarea:focus, .field select:focus { border-color: var(--rust); background: var(--surface); }
.field input:focus-visible, .field textarea:focus-visible, .field select:focus-visible { outline-offset: 3px; }
.field input[aria-invalid='true'], .field select[aria-invalid='true'], .field textarea[aria-invalid='true'] { border-color: var(--error); background: var(--error-surface); }
.field input:disabled { background: var(--surface); color: var(--sand); }
.field-help { color: var(--sand); font-size: var(--text-xs); line-height: 1.65; }
.field-error { display: block; color: var(--error); font-size: var(--text-sm); line-height: 1.5; }
.field-error:empty { display: none; }
.required-note { color: var(--sand); font-size: var(--text-xs); }
.form-section-title { font-family: var(--font-display); font-size: var(--text-xl); margin-bottom: 1.5rem; }
.form-divider { border: 0; border-top: 1px solid var(--line); margin: .5rem 0; }
.check-field { display: grid; grid-template-columns: 1.5rem minmax(0, 1fr); align-items: start; gap: .75rem; padding-block: .5rem; min-height: 44px; font-size: var(--text-sm); line-height: 1.6; cursor: pointer; }
.check-field input { width: 1.25rem; height: 1.25rem; margin: .18rem 0 0; accent-color: var(--rust); cursor: pointer; }
.check-field a { text-decoration-color: var(--rust); }
.check-field input[aria-invalid='true'] { outline: 1px solid var(--error); outline-offset: 3px; }
.consent-field .field-error { padding-left: 2.25rem; }
.form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem 2rem; }
.form-actions p { max-width: 24rem; font-size: var(--text-xs); color: var(--sand); }
.form-status { padding: 1rem 1.25rem; border: 1px solid var(--line-strong); font-size: var(--text-sm); background: var(--surface); }
.form-status:empty { display: none; }
.form-status--error { border-color: var(--error); color: var(--error); }
.form-status--success { border-color: var(--success); color: var(--success); }
.form-summary { background: var(--error-surface); border: 1px solid var(--error); padding: 1.25rem; color: var(--paper); }
.form-summary p { font-weight: 600; margin-bottom: .5rem; }
.form-summary a { display: inline-flex; align-items: center; min-height: 44px; padding-block: .35rem; }
.form-summary ul { padding-left: 1.2rem; }
.form-summary li + li { margin-top: 0; }
input:-webkit-autofill { -webkit-text-fill-color: var(--paper); box-shadow: 0 0 0 1000px var(--surface) inset; caret-color: var(--paper); }
.tabs { margin-block: 2rem; }
.tab-list, [role='tablist'] { display: flex; flex-wrap: wrap; gap: .5rem; border-bottom: 1px solid var(--line); padding-bottom: .75rem; }
.tab-list button, [role='tab'] { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: .75rem 1.25rem; border: 1px solid var(--line); border-radius: var(--radius-tag); color: var(--sand); background: transparent; font-size: var(--text-sm); line-height: 1.4; }
[role='tab'][aria-selected='true'] { background: var(--paper); border-color: var(--paper); color: var(--ink); }
[role='tab']:hover { border-color: var(--rust); }
[role='tabpanel'] { padding-block: 2rem; }
[role='tabpanel']:focus-visible { outline-offset: .5rem; }
.breadcrumbs { padding-block: 1.5rem; font-size: var(--text-xs); color: var(--sand); }
.breadcrumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: .375rem .75rem; }
.breadcrumbs li { display: inline-flex; align-items: center; gap: .75rem; min-width: 0; }
.breadcrumbs li + li::before { content: '/'; color: var(--olive); }
.breadcrumbs a { display: inline-flex; align-items: center; min-height: 44px; padding-block: .5rem; }
.site-footer { border-top: 1px solid var(--line); padding-top: clamp(3rem, 6vw, 6rem); background: var(--surface-deep); }
.footer-main { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) minmax(0, .8fr); gap: 3rem; padding-bottom: 3.5rem; }
.footer-brand .brand img { height: 3.7rem; }
.footer-brand p { margin-top: 1.5rem; max-width: 22rem; font-size: var(--text-sm); color: var(--sand); }
.footer-heading { display: block; margin-bottom: 1rem; font-family: var(--font-mono); font-size: var(--text-xs); color: var(--sand); letter-spacing: .04em; }
.footer-contact address { font-size: var(--text-sm); line-height: 1.9; }
.footer-contact .phone-link { margin-top: .75rem; }
.footer-links ul { display: grid; grid-template-columns: minmax(0, 1fr); }
.footer-links a { display: inline-flex; align-items: center; min-height: 44px; padding-block: .5rem; font-size: var(--text-sm); text-decoration: none; }
.footer-links a:hover { text-decoration: underline; text-decoration-color: var(--rust); }
.footer-legal { border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 2rem; padding-block: 1.25rem; }
.footer-legal ul { display: flex; flex-wrap: wrap; gap: .25rem 1.5rem; list-style: none; padding: 0; }
.footer-legal li { margin: 0; }
.footer-legal a, .consent-reopen { display: inline-flex; align-items: center; min-height: 44px; padding-block: .5rem; font-size: var(--text-xs); line-height: 1.5; color: var(--sand); }
.consent-reopen { background: none; border: 0; padding-inline: 0; text-decoration: underline; text-underline-offset: .25em; text-align: left; }
.footer-colophon { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1.5rem; padding-block: 1rem calc(2rem + var(--consent-height) + var(--safe-bottom)); border-top: 1px solid var(--line-soft); font-family: var(--font-mono); font-size: .6875rem; color: var(--sand); letter-spacing: .02em; }
.cookie-banner { position: fixed; z-index: var(--z-consent); inset-inline: 0; bottom: 0; padding: .75rem var(--gutter) calc(.75rem + var(--safe-bottom)); background: var(--paper); color: var(--ink); border-top: 1px solid var(--sand); box-shadow: 0 -6px 24px rgb(0 0 0 / .15); }
.cookie-banner__inner { width: min(100%, var(--shell-width)); margin-inline: auto; display: flex; align-items: center; justify-content: space-between; gap: .5rem 2rem; }
.cookie-banner p { display: flex; flex-wrap: wrap; align-items: center; gap: 0 .35rem; font-size: var(--text-sm); line-height: 1.45; }
.cookie-banner p a { display: inline-flex; align-items: center; min-height: 44px; text-decoration-color: #735b3b; }
.cookie-banner__actions { display: flex; flex: 0 0 auto; gap: .5rem; }
.cookie-banner .button { min-height: 44px; padding: .6rem 1.1rem; font-size: .8125rem; }
.cookie-banner .button--secondary { color: var(--ink); border-color: #8b7554; }
.cookie-banner .button--secondary:hover { background: #e4d5bc; }
.consent-status { font-size: var(--text-sm); color: var(--sand); margin-top: 1rem; }
.consent-status:empty { display: none; }
.chat-launcher { position: fixed; z-index: var(--z-chat); right: var(--gutter); bottom: calc(1.25rem + var(--safe-bottom)); display: inline-flex; align-items: center; gap: .65rem; min-height: 48px; max-width: calc(100% - var(--gutter) * 2); padding: .75rem 1.1rem; background: var(--paper); color: var(--ink); border: 1px solid var(--sand); border-radius: var(--radius-control); font-size: var(--text-sm); font-weight: 500; box-shadow: var(--shadow-panel); }
.chat-launcher:hover { background: var(--sand); }
.chat-launcher__count { display: inline-flex; min-width: 1.5rem; min-height: 1.5rem; padding: .1rem .35rem; align-items: center; justify-content: center; border-radius: 2px; background: var(--ink); color: var(--paper); font-family: var(--font-mono); font-size: .6875rem; }
body.consent-visible .chat-launcher, body.footer-visible .chat-launcher { visibility: hidden; pointer-events: none; }
.chat-panel { position: fixed; z-index: var(--z-chat); right: var(--gutter); bottom: calc(1.25rem + var(--safe-bottom) + var(--consent-height)); width: min(25rem, calc(100% - var(--gutter) * 2)); max-height: calc(100dvh - 2.5rem - var(--safe-bottom) - var(--consent-height)); display: flex; flex-direction: column; background: var(--surface); color: var(--paper); border: 1px solid var(--line-strong); border-radius: var(--radius-control); box-shadow: var(--shadow-dialog); overflow: hidden; }
.chat-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.25rem; border-bottom: 1px solid var(--line); }
.chat-header h2 { font-size: 1.375rem; line-height: 1.25; }
.chat-close { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; padding: .5rem; min-height: 44px; max-width: 100%; background: transparent; color: var(--sand); border: 1px solid var(--line); border-radius: 2px; font-size: .75rem; line-height: 1.4; }
.chat-close .icon { width: 1rem; height: 1rem; }
.chat-content { padding: 1rem 1.25rem; overflow-y: auto; min-height: 0; overscroll-behavior: contain; }
.chat-intro { color: var(--sand); font-size: var(--text-sm); line-height: 1.65; margin-bottom: 1rem; }
.chat-start { display: grid; gap: 1rem; }
.chat-start .field input { min-height: 48px; padding: .65rem .875rem; }
.chat-start .check-field { font-size: .8125rem; }
.chat-transcript { list-style: none; padding: 0; display: grid; gap: .875rem; align-content: start; }
.chat-message { margin: 0; max-width: 94%; padding: .875rem 1rem; background: var(--ink); border: 1px solid var(--line-soft); font-size: .875rem; line-height: 1.6; overflow-wrap: anywhere; }
.chat-message--outgoing { justify-self: end; background: #382b1e; border-color: var(--olive); }
.chat-message__body { white-space: pre-wrap; }
.chat-message__meta { display: block; color: var(--sand); font-family: var(--font-mono); font-size: .6875rem; line-height: 1.5; margin-bottom: .375rem; }
.chat-message__state { color: var(--sand); font-size: .75rem; display: block; margin-top: .5rem; }
.chat-message--failed { border-color: var(--error); }
.chat-message--failed .chat-message__state { color: var(--error); }
.chat-retry { min-height: 44px; padding: .5rem .75rem; margin-top: .5rem; background: transparent; border: 1px solid var(--error); color: var(--error); border-radius: 2px; font-size: .75rem; }
.chat-compose { border-top: 1px solid var(--line); padding: 1rem 1.25rem; display: grid; gap: .75rem; }
.chat-compose .field textarea { min-height: 4.75rem; max-height: 9rem; padding: .65rem .875rem; }
.chat-compose__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; }
.chat-compose__actions small { font-size: .6875rem; color: var(--sand); max-width: 12rem; }
.chat-status { padding: .625rem 1.25rem; color: var(--sand); border-top: 1px solid var(--line); font-size: .75rem; line-height: 1.5; }
.chat-status:empty { display: none; }
.chat-status.is-error { color: var(--error); }
.chat-footer { padding: .5rem 1.25rem; border-top: 1px solid var(--line); font-size: .6875rem; color: var(--sand); }
.chat-footer a { display: inline-flex; align-items: center; min-height: 44px; }
.chat-panel [aria-invalid='true'] { border-color: var(--error); }
.contact-strip { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem 3rem; padding-block: 2rem; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.contact-strip p { max-width: 38rem; font-family: var(--font-display); font-size: var(--heading-sm); line-height: 1.3; }
.back-to-top { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; padding-block: .5rem; color: var(--sand); font-size: var(--text-xs); }
@media (hover: none) {
  .navigation-main a:hover .icon, .text-link:hover .icon { transform: none; }
  .service-row:hover { background: transparent; }
}
@media (max-width: 1023px) {
  .footer-main { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2.5rem; }
  .footer-brand { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem 4rem; }
  .footer-brand p { margin: 0; }
  .navigation-overlay__body { gap: 2.5rem; }
  .service-row { grid-template-columns: 2rem minmax(0, 1fr) minmax(0, 1fr) 1.25rem; gap: 1rem; }
  .section-heading { grid-template-columns: minmax(0, .6fr) minmax(0, 1.4fr); }
}
@media (max-width: 767px) {
  .header-inner, .navigation-overlay__top { padding-block: .8rem; }
  .brand img { height: 2.65rem; }
  .navigation-overlay__body { grid-template-columns: minmax(0, 1fr); padding-top: 1.25rem; gap: 2rem; }
  .navigation-main a { font-size: clamp(2.4rem, 8.5vw, 4rem); padding-block: .3em; }
  .navigation-support { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.25rem; padding: 0; }
  .navigation-support figure img { aspect-ratio: 4 / 3; }
  .navigation-support figcaption { font-size: .75rem; padding-bottom: .75rem; }
  .navigation-contact { margin-top: 0; gap: .5rem; align-content: start; }
  .navigation-contact a { font-size: .75rem; gap: .4rem; flex-wrap: wrap; }
  .navigation-contact address { font-size: .75rem; }
  .navigation-bottom { padding-top: 1.25rem; }
  .section-heading { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
  .section-heading .eyebrow { margin: 0; }
  .service-list { gap: 2.5rem 1.5rem; }
  .service-row { grid-template-columns: 2rem minmax(0, 1fr) 1.25rem; gap: .75rem; padding-block: 1.5rem; }
  .service-row p { grid-column: 2; }
  .service-row > .icon { grid-column: 3; grid-row: 1; }
  .form-grid { gap: 1.25rem; }
  .form-actions { align-items: start; }
  .footer-main { padding-bottom: 2.5rem; gap: 2rem; }
  .footer-legal { align-items: start; }
  .footer-legal ul { gap: .125rem 1.25rem; }
  .cookie-banner { padding: .25rem 1rem calc(.4rem + var(--safe-bottom)); }
  .cookie-banner__inner { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
  .cookie-banner p { font-size: .75rem; line-height: 1.3; }
  .cookie-banner__actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
  .cookie-banner .button { padding: .45rem .65rem; min-height: 44px; font-size: .75rem; }
  .chat-launcher { right: 1rem; bottom: calc(1rem + var(--safe-bottom)); }
  .chat-panel { right: 1rem; bottom: calc(1rem + var(--safe-bottom) + var(--consent-height)); width: min(25rem, calc(100% - 2rem)); max-height: calc(100dvh - 2rem - var(--safe-bottom) - var(--consent-height)); }
}
@media (max-width: 539px) {
  .service-list, .form-grid { grid-template-columns: minmax(0, 1fr); }
  .service-card h3 { font-size: 1.85rem; }
  .footer-main { grid-template-columns: minmax(0, 1fr); }
  .footer-brand { grid-column: auto; display: block; }
  .footer-brand p { margin-top: 1.25rem; }
  .footer-brand .brand img { height: 3.2rem; }
  .footer-links ul { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1rem; }
  .form-actions .button { width: 100%; }
  .detail-list > div { grid-template-columns: minmax(0, 1fr); gap: .5rem; }
  .spec-table--stack thead { display: none; }
  .spec-table--stack, .spec-table--stack tbody, .spec-table--stack tr, .spec-table--stack th, .spec-table--stack td { display: block; width: 100%; }
  .spec-table--stack tr { padding-block: 1rem; border-bottom: 1px solid var(--line); }
  .spec-table--stack th, .spec-table--stack td { border: 0; padding: .5rem 0; }
  .spec-table--stack td[data-label]::before { content: attr(data-label); display: block; color: var(--paper); font-family: var(--font-mono); font-size: .6875rem; margin-bottom: .25rem; }
  .spec-table--stack tr:last-child { border: 0; }
  .chat-header, .chat-content, .chat-compose { padding-inline: 1rem; }
}
@media (max-width: 359px) {
  .brand img { height: 2.3rem; }
  .menu-toggle { padding-inline: .625rem; gap: .5rem; }
  .navigation-support { grid-template-columns: minmax(0, 1fr); }
  .navigation-support figure img { aspect-ratio: 2 / 1; }
  .navigation-contact { grid-template-columns: minmax(0, 1fr); }
  .button-row .button { width: 100%; }
  .chat-header { gap: .5rem; }
  .chat-header h2 { font-size: 1.2rem; }
}
@media (max-height: 500px) and (orientation: landscape) {
  .cookie-banner__inner { display: flex; }
  .cookie-banner__actions { display: flex; }
  .chat-panel { max-height: calc(100dvh - 1rem - var(--consent-height)); bottom: calc(.5rem + var(--consent-height)); }
  .chat-header { padding-block: .25rem; }
  .chat-compose { padding-block: .5rem; }
  .chat-compose .field textarea { min-height: 3rem; }
}
@media (prefers-reduced-motion: reduce) {
  .text-link:hover .icon, .navigation-main a:hover .icon { transform: none; }
  .header-inner { transition: none; }
}
@media (forced-colors: active) {
  .cookie-banner, .chat-panel, .navigation-overlay { border: 1px solid CanvasText; }
  .button, .chat-launcher { border: 1px solid ButtonText; }
  .field-error, .form-status--error { color: CanvasText; }
  [role='tab'][aria-selected='true'] { outline: 2px solid Highlight; }
}
@media print {
  .site-header, .navigation-overlay, .no-script-nav, .cookie-banner, .chat-launcher, .chat-panel, .skip-link, .consent-reopen, .back-to-top { display: none !important; }
  .site-footer { background: none; padding-top: 2rem; }
  .footer-main { grid-template-columns: 1fr 1fr; padding-bottom: 1rem; }
  .footer-brand, .footer-links, .footer-legal { display: none; }
  .footer-colophon { padding-bottom: 0; }
  .field input, .field textarea, .field select { background: none; color: #111; border-color: #999; }
  .button, .btn { background: none; color: #111; border-color: #999; }
}
