.skip-link { position: fixed; z-index: var(--layer-skip); inset: .75rem auto auto .75rem; padding: .75rem 1.25rem; min-height: var(--control-min); color: var(--ink); background: var(--paper); border: 2px solid var(--paper); transform: translateY(-180%); transition: transform 140ms, background-color 140ms; }
.skip-link:focus-visible { transform: translateY(0); outline-color: var(--brass); }
.skip-link:hover { background: var(--muted); }
.skip-link:active { background: var(--brass); }
.site-header { position: absolute; z-index: var(--layer-header); inset: 0 0 auto; min-height: var(--header-height); color: var(--paper); border-bottom: 1px solid #f3efe530; transition: background-color 180ms, box-shadow 180ms; }
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; min-height: var(--header-height); padding: 1rem var(--gutter); }

.brand { display: inline-flex; align-items: center; flex: 0 0 auto; min-height: 44px; padding: .2rem 0; text-decoration: none; transition: opacity 160ms, background-color 160ms; }
.brand img { height: 3.2rem; width: auto; max-width: 100%; }
.brand:hover { opacity: .78; }
.brand:active { opacity: .6; }
.brand:focus-visible { outline: 2px solid var(--paper); outline-offset: 6px; }
.site-nav { display: flex; align-items: center; gap: clamp(.75rem, 2vw, 2rem); }
.nav-list { display: flex; align-items: center; flex-wrap: wrap; gap: .3rem 1rem; list-style: none; padding: 0; }
.nav-list li { margin: 0; }
.nav-link { display: inline-flex; align-items: center; min-height: 44px; padding: .5rem .65rem; text-decoration: none; font-size: var(--text-sm); border-bottom: 1px solid transparent; transition: background-color 160ms, border-color 160ms, color 160ms; }
.nav-link:hover { background: #111411cc; border-color: var(--brass); }
.nav-link:active { background: var(--jewel); }
.nav-link:focus-visible { background: var(--ink); outline: 2px solid var(--paper); outline-offset: 3px; }
.nav-link[aria-current="page"] { border-color: var(--brass); }
.nav-toggle { display: none; align-items: center; justify-content: center; gap: .65rem; min-height: 44px; padding: .6rem .8rem; border: 1px solid var(--muted); background: var(--ink); color: var(--paper); font-size: .875rem; transition: background-color 160ms, border-color 160ms; }
.nav-toggle:hover { background: var(--jewel); border-color: var(--paper); }
.nav-toggle:active { background: var(--jewel-pressed); border-color: var(--brass); }
.nav-toggle:focus-visible { outline: 2px solid var(--paper); outline-offset: 4px; }
.nav-toggle .icon-close { display: none; }
.nav-toggle[aria-expanded="true"] .icon-menu { display: none; }
.nav-toggle[aria-expanded="true"] .icon-close { display: block; }
.site-header.is-condensed, .site-header.is-scrolled { position: fixed; background: var(--ink); box-shadow: 0 1px 0 var(--rule); border-bottom-color: transparent; }
.site-header.is-condensed .header-inner, .site-header.is-scrolled .header-inner { min-height: var(--header-compact); padding-block: .5rem; }
.site-header.is-condensed .brand img, .site-header.is-scrolled .brand img { height: 2.8rem; }
.site-header.is-menu-open { background: var(--ink); }
@supports (backdrop-filter: blur(12px)) {
   .site-header.is-condensed, .site-header.is-scrolled { background: #111411f2; backdrop-filter: blur(12px); }
}

.button, .btn { display: inline-flex; align-items: center; justify-content: center; gap: .85rem; min-height: 3.125rem; max-width: 100%; padding: .85rem 1.35rem; border: 1px solid var(--paper); background: var(--paper); color: var(--ink); font-family: var(--beji-280); font-size: var(--text-sm); font-weight: 500; line-height: 1.4; text-align: center; text-decoration: none; white-space: normal; overflow-wrap: anywhere; transition: background-color 180ms, color 180ms, border-color 180ms, box-shadow 180ms, transform 180ms; }
.button:hover, .btn:hover { background: var(--muted); border-color: var(--muted); box-shadow: 0 3px 0 #0003; transform: translateY(-1px); }
.button:active, .btn:active { background: var(--paper); border-color: var(--brass); transform: translateY(1px); box-shadow: none; }
.button:focus-visible, .btn:focus-visible { outline: 2px solid var(--paper); outline-offset: 5px; box-shadow: 0 0 0 2px var(--ink); }
.button--outline, .button--secondary, .btn--outline { color: #fff; background: transparent; border-color: var(--muted); }
.button--outline:hover, .button--secondary:hover, .btn--outline:hover { color: var(--paper); background: var(--jewel); border-color: var(--paper); }
.button--outline:active, .button--secondary:active, .btn--outline:active { background: var(--jewel-pressed); color: var(--paper); border-color: var(--brass); }
.button--jewel { background: var(--jewel); color: var(--paper); border-color: var(--jewel); }
.button--jewel:hover { background: var(--jewel-hover); color: var(--paper); border-color: var(--muted); }
.button--jewel:active { background: var(--jewel-pressed); color: var(--paper); }
.button--small { padding: .6rem 1rem; min-height: 44px; }
.button:disabled, .btn:disabled, .button[aria-disabled="true"] { opacity: .55; transform: none; box-shadow: none; cursor: not-allowed; }
.text-link { display: inline-flex; align-items: center; gap: .6rem; min-height: 44px; padding-block: .5rem; border-bottom: 1px solid var(--brass); text-decoration: none; transition: color 160ms, background-color 160ms, border-color 160ms; }
.text-link:hover { background: var(--surface-raised); border-color: var(--paper); }
.text-link:active { background: var(--jewel); border-color: var(--muted); }
.text-link:focus-visible { outline: 2px solid var(--paper); outline-offset: 4px; }
.icon-button { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; min-width: 44px; min-height: 44px; padding: .75rem; color: var(--paper); background: transparent; border: var(--rule-border); transition: border-color 160ms, background-color 160ms, transform 160ms; }
.icon-button:hover { background: var(--jewel); border-color: var(--paper); }
.icon-button:active { background: var(--jewel-pressed); transform: translateY(1px); }
.icon-button:focus-visible { outline: 2px solid var(--paper); outline-offset: 3px; }
.prose a, .inline-link { transition: background-color 160ms, text-decoration-color 160ms; }
.prose a:hover, .inline-link:hover { background-color: var(--jewel); text-decoration-color: var(--paper); }
.prose a:active, .inline-link:active { background-color: var(--jewel-pressed); }
.prose a:focus-visible, .inline-link:focus-visible { outline: 2px solid var(--paper); outline-offset: 4px; }

.maker-seal { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: .45rem; width: 6.25rem; aspect-ratio: 1; padding: 1rem .7rem; border: var(--brass-border); border-radius: 50%; transform: rotate(-9deg); color: var(--paper); }
.maker-seal img { width: auto; height: 2.4rem; max-width: 80%; }
.maker-seal span { font-family: var(--beji-f8e); font-size: .65rem; letter-spacing: .02em; line-height: 1.4; }
.maker-seal--small { width: 5rem; padding: .65rem; }
.maker-seal--small img { height: 1.75rem; }
.section-heading { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 1.5rem; margin-bottom: var(--space-7); }
.section-heading h2 { max-width: 100%; }
.section-intro { max-width: var(--reading-width); margin-bottom: var(--section-gap); }
.section-intro > * + * { margin-top: 1.25rem; }
.photograph { margin: 0; }
.photograph img { width: 100%; height: auto; object-fit: cover; }
.photograph figcaption { display: flex; flex-wrap: wrap; gap: .5rem 2rem; justify-content: space-between; padding: 1rem var(--gutter); border-bottom: var(--rule-border); color: var(--muted); font-family: var(--beji-f8e); font-size: var(--text-xs); line-height: 1.6; }
.offer-card { min-width: 0; background: var(--ink); border-bottom: var(--brass-border); }
.offer-card__image { overflow: hidden; margin: 0; background: var(--surface); }
.offer-card__image img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.offer-card__body { padding: 1.5rem 0 2rem; display: flex; flex-direction: column; align-items: flex-start; gap: 1.1rem; }
.offer-card__body h3 { font-size: clamp(1.75rem, 2.6vw, 2.6rem); }
.offer-card__body p { max-width: 36rem; color: var(--muted); font-size: var(--text-sm); }
.offer-card__price { color: var(--paper) !important; font-family: var(--beji-f8e); font-size: var(--text-base) !important; font-variant-numeric: tabular-nums; }
.offer-card__caption { padding-top: .75rem; font-family: var(--beji-f8e); font-size: var(--text-xs); color: var(--muted); }
.rail-controls { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; padding-block: 1.25rem; }
.rail-controls .rail-status { margin-inline-end: auto; color: var(--muted); font-family: var(--beji-f8e); font-size: var(--text-xs); }
.rail-button { display: inline-flex; align-items: center; justify-content: center; gap: .55rem; padding: .65rem 1rem; min-height: 44px; border: var(--rule-border); color: var(--paper); background: var(--ink); font-size: var(--text-sm); transition: background-color 160ms, border-color 160ms, transform 160ms; }
.rail-button:hover { background: var(--jewel); border-color: var(--muted); }
.rail-button:active { transform: translateY(1px); background: var(--jewel-pressed); }
.rail-button:focus-visible { outline: 2px solid var(--paper); outline-offset: 4px; }
.rail-button:disabled { opacity: .45; cursor: not-allowed; transform: none; }

.spec-table { width: 100%; border-top: var(--brass-border); font-size: var(--text-sm); }
.spec-table caption { margin-bottom: 1.25rem; font-family: var(--beji-cea); font-size: var(--heading-sm); }
.spec-table th, .spec-table td { padding: 1rem .8rem; border-bottom: var(--rule-border); vertical-align: top; overflow-wrap: anywhere; }
.spec-table th { color: var(--paper); font-weight: 500; }
.spec-table td { color: var(--muted); }
.spec-table thead th { font-family: var(--beji-f8e); font-size: var(--text-xs); }
.spec-table th:first-child, .spec-table td:first-child { padding-inline-start: 0; }
.spec-table th:last-child, .spec-table td:last-child { padding-inline-end: 0; }
.spec-table .price { color: var(--paper); }
.detail-list { margin: 0; padding: 0; list-style: none; border-top: var(--rule-border); }
.detail-list li { padding: 1rem 0; margin: 0; border-bottom: var(--rule-border); }
.notice { padding: 1.25rem 1.5rem; border-inline-start: var(--brass-border); background: var(--surface); font-size: var(--text-sm); }
.notice > * + * { margin-top: .75rem; }
.notice--error { background: var(--error-surface); border-color: var(--error); color: var(--error); }
.notice--success { background: var(--jewel); border-color: var(--success); }

.inquiry-form, .contact-form, .fit-form { display: grid; gap: 1.75rem; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.form-field { display: flex; flex-direction: column; gap: .6rem; min-width: 0; }
.form-field--full { grid-column: 1 / -1; }
.form-field label, .field-label { font-size: var(--text-sm); font-weight: 500; line-height: 1.5; }
.form-field .optional { font-size: var(--text-xs); color: var(--muted); font-weight: 400; }
.form-field input:not([type="checkbox"]):not([type="radio"]), .form-field select, .form-field textarea, .form-input { display: block; width: 100%; min-height: 3.125rem; padding: .85rem 1rem; border: 1px solid var(--rule); border-radius: 0; color: var(--paper); background: var(--ink); box-shadow: none; font-size: var(--text-base); transition: background-color 160ms, border-color 160ms, box-shadow 160ms; }
.form-field textarea { min-height: 10rem; line-height: 1.6; }
.form-field input:hover, .form-field select:hover, .form-field textarea:hover, .form-input:hover { border-color: var(--muted); background: var(--surface); }
.form-field input:active, .form-field select:active, .form-field textarea:active, .form-input:active { border-color: var(--brass); background: var(--surface-raised); }
.form-field input:focus-visible, .form-field select:focus-visible, .form-field textarea:focus-visible, .form-input:focus-visible { border-color: var(--paper); outline: 2px solid var(--paper); outline-offset: 3px; background: var(--surface); }
.form-field select { padding-inline-end: 2rem; }
.form-field option { background: var(--ink); color: var(--paper); }
.form-field input::placeholder, .form-field textarea::placeholder { color: var(--muted); opacity: .8; }
.form-field input[aria-invalid="true"], .form-field select[aria-invalid="true"], .form-field textarea[aria-invalid="true"] { border-color: var(--error); box-shadow: inset 3px 0 0 var(--error); }
.field-hint, .form-hint { font-size: var(--text-xs); line-height: 1.6; color: var(--muted); }
.field-error { font-size: var(--text-sm); line-height: 1.5; color: var(--error); }
.field-error:empty { display: none; }
.form-section { padding-top: 1.75rem; border-top: var(--rule-border); }
.form-section legend { font-family: var(--beji-cea); font-size: var(--heading-sm); margin-bottom: 1.5rem; }
.checkbox-field, .radio-field { display: flex; align-items: flex-start; gap: .85rem; min-height: 44px; padding: .65rem 0; font-size: var(--text-sm); cursor: pointer; }
.checkbox-field input, .radio-field input { flex: 0 0 auto; width: 1.25rem; height: 1.25rem; margin: .2rem 0 0; accent-color: var(--jewel); transition: outline-color 160ms, box-shadow 160ms; }
.checkbox-field:hover input, .radio-field:hover input { outline: 1px solid var(--muted); outline-offset: 3px; }
.checkbox-field input:active, .radio-field input:active { box-shadow: 0 0 0 5px #b99a6140; }
.checkbox-field input:focus-visible, .radio-field input:focus-visible { outline: 2px solid var(--paper); outline-offset: 4px; }
.checkbox-field span, .radio-field span { min-width: 0; }
.checkbox-field a { text-underline-offset: .2em; }
.checkbox-field a:hover { background: var(--jewel); }
.checkbox-field a:active { background: var(--jewel-pressed); }
.checkbox-field a:focus-visible { outline: 2px solid var(--paper); outline-offset: 3px; }
.form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; padding-top: .5rem; }
.form-actions p { max-width: 28rem; color: var(--muted); font-size: var(--text-xs); }
.form-status { padding: 1.25rem; border: var(--rule-border); background: var(--surface); }
.form-status:empty { display: none; }
.form-status.is-error { border-color: var(--error); color: var(--error); }
.form-status.is-success { border-color: var(--success); background: var(--jewel); }
.error-summary { padding: 1.5rem; border: 1px solid var(--error); color: var(--error); background: var(--error-surface); }
.error-summary h2 { font-size: var(--heading-sm); }
.error-summary ul { margin-top: 1rem; }
.error-summary a { display: inline-block; padding-block: .4rem; min-height: 44px; }
.error-summary a:hover { background: #ffffff12; }
.error-summary a:active { background: #ffffff24; }
.error-summary a:focus-visible { outline-color: var(--error); }
.fit-result { border-top: 1px solid #f3efe566; padding-top: 1.75rem; margin-top: 1.75rem; }
.fit-result output, [data-tool-output] { display: block; font-family: var(--beji-f8e); font-size: clamp(1.25rem, 2.8vw, 2rem); line-height: 1.45; overflow-wrap: anywhere; }
[data-tool-note] { margin-top: 1rem; max-width: var(--reading-width); font-size: var(--text-sm); }
[data-tool-status] { font-size: var(--text-sm); }
.fit-disclaimer { margin-top: 1.25rem; font-size: var(--text-xs); }

.faq-list { border-top: var(--rule-border); }
.faq-item { border-bottom: var(--rule-border); }
.faq-item summary, .faq-trigger { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; width: 100%; min-height: 44px; padding: 1.4rem 0; color: var(--paper); background: transparent; border: 0; text-align: left; font-family: var(--beji-280); font-size: var(--text-base); list-style: none; transition: background-color 160ms, color 160ms; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: "+"; font-family: var(--beji-f8e); font-size: 1.5rem; flex: 0 0 auto; }
.faq-item[open] summary::after { content: "−"; }
.faq-item summary:hover, .faq-trigger:hover { background: var(--surface); }
.faq-item summary:active, .faq-trigger:active { background: var(--jewel); }
.faq-item summary:focus-visible, .faq-trigger:focus-visible { outline: 2px solid var(--paper); outline-offset: 4px; }
.faq-answer { max-width: var(--reading-width); padding: 0 0 1.75rem; color: var(--muted); }
.faq-answer > * + * { margin-top: 1rem; }
.tabs { display: flex; flex-wrap: wrap; gap: .5rem; border-bottom: var(--rule-border); padding-bottom: .75rem; }
.tab { min-height: 44px; padding: .7rem 1rem; border: var(--rule-border); color: var(--paper); background: transparent; transition: border-color 160ms, background-color 160ms; }
.tab[aria-selected="true"] { background: var(--jewel); border-color: var(--muted); }
.tab:hover { background: var(--surface-raised); border-color: var(--paper); }
.tab:active { background: var(--jewel-pressed); }
.tab:focus-visible { outline: 2px solid var(--paper); outline-offset: 3px; }
.tab-panel { padding-block: 1.5rem; }

.site-footer { padding: clamp(2rem, 4vw, 4rem) var(--gutter) 1.5rem; background: var(--ink); border-top: var(--brass-border); }
.footer-top { max-width: var(--content-width); margin-inline: auto; display: flex; align-items: flex-start; justify-content: space-between; gap: 2rem; }
.footer-contact { min-width: 0; max-width: 65rem; }
.footer-contact h2 { margin-bottom: 1rem; }
.footer-contact-links { display: flex; flex-direction: row; flex-wrap: wrap; align-items: flex-start; gap: .5rem 2rem; }
.footer-contact-link { display: inline-block; max-width: 100%; min-height: 44px; padding: .35rem 0; font-family: var(--beji-cea); font-size: clamp(1.35rem, 3.8vw, 4rem); line-height: 1.25; letter-spacing: -.025em; text-decoration: none; border-bottom: 1px solid transparent; overflow-wrap: anywhere; transition: border-color 180ms, background-color 180ms; }
.footer-contact-link:hover { border-color: var(--brass); background: var(--surface); }
.footer-contact-link:active { background: var(--jewel); }
.footer-contact-link:focus-visible { outline: 2px solid var(--paper); outline-offset: 5px; }
.footer-address { margin-top: 1rem; max-width: 36rem; color: var(--muted); font-size: var(--text-sm); }
.footer-inquiry { margin-top: 1rem; }
.footer-bottom { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 1.5rem; margin-top: 2rem; padding-top: 1.5rem; border-top: var(--rule-border); }

.footer-brand .brand img { height: 4rem; }
.footer-description { margin-top: 1rem; max-width: 26rem; color: var(--muted); font-size: var(--text-xs); }
.footer-legal { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: flex-end; gap: .35rem .8rem; list-style: none; padding: 0; }
.footer-legal li { margin: 0; }
.footer-legal a, .footer-legal button { display: inline-flex; align-items: center; min-height: 44px; padding: .65rem .4rem; border: 0; border-bottom: 1px solid transparent; color: var(--muted); background: transparent; font-family: var(--beji-280); font-size: var(--text-xs); text-decoration: none; text-align: left; line-height: 1.5; transition: color 160ms, background-color 160ms, border-color 160ms; }
.footer-legal a:hover, .footer-legal button:hover { color: var(--paper); background: var(--surface); border-color: var(--brass); }
.footer-legal a:active, .footer-legal button:active { background: var(--jewel); color: var(--paper); }
.footer-legal a:focus-visible, .footer-legal button:focus-visible { outline: 2px solid var(--paper); outline-offset: 3px; }

.footer-meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 2rem; margin-top: 1rem; padding-bottom: 2rem; color: var(--muted); font-family: var(--beji-f8e); font-size: var(--text-xs); }

.cookie-banner { position: fixed; z-index: var(--layer-consent); inset: auto 0 0; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .6rem 1.5rem; padding: .75rem var(--gutter); padding-bottom: max(.75rem, env(safe-area-inset-bottom)); background: var(--surface); border-top: var(--brass-border); box-shadow: 0 -8px 30px #0004; }
.cookie-copy { flex: 1 1 24rem; font-size: var(--text-xs); line-height: 1.45; }
.cookie-copy a { display: inline-block; padding-block: .3rem; text-decoration-color: var(--brass); transition: background-color 160ms; }
.cookie-copy a:hover { background: var(--jewel); }
.cookie-copy a:active { background: var(--jewel-pressed); }
.cookie-copy a:focus-visible { outline: 2px solid var(--paper); outline-offset: 3px; }
.cookie-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.cookie-actions .button { min-height: 44px; padding: .55rem 1rem; font-size: .8125rem; }
.cookie-actions .button { background: transparent; border-color: var(--muted); color: var(--paper); }
.cookie-actions .button:hover { background: var(--jewel); border-color: var(--paper); }
.cookie-actions .button:active { background: var(--jewel-pressed); border-color: var(--brass); }
.cookie-actions .button:focus-visible { outline: 2px solid var(--paper); outline-offset: 3px; }
.consent-status { color: var(--muted); font-size: var(--text-sm); }
.consent-controls { display: flex; flex-wrap: wrap; gap: 1rem; margin-block: 1.5rem; }

.chat-launcher { position: fixed; z-index: var(--layer-chat); right: max(1.125rem, env(safe-area-inset-right)); bottom: calc(1.125rem + var(--cookie-offset)); display: inline-flex; justify-content: center; align-items: center; gap: .65rem; max-width: calc(100% - 2.25rem); min-height: 48px; padding: .8rem 1.1rem; border: 1px solid var(--muted); color: var(--paper); background: var(--jewel); box-shadow: 0 .3rem 1.5rem #0005; font-size: var(--text-sm); line-height: 1.35; transition: background-color 160ms, border-color 160ms, box-shadow 160ms, transform 160ms; }
.chat-launcher:hover { background: var(--jewel-hover); border-color: var(--paper); box-shadow: 0 .4rem 1.7rem #0008; transform: translateY(-1px); }
.chat-launcher:active { background: var(--jewel-pressed); border-color: var(--brass); transform: translateY(1px); box-shadow: none; }
.chat-launcher:focus-visible { outline: 2px solid var(--paper); outline-offset: 4px; }
.chat-unread { display: inline-flex; align-items: center; justify-content: center; min-width: 1.5rem; min-height: 1.5rem; padding: .15rem .4rem; background: var(--paper); color: var(--ink); font-family: var(--beji-f8e); font-size: .75rem; }
.chat-panel { position: fixed; z-index: var(--layer-chat); right: 1.125rem; bottom: calc(5.5rem + var(--cookie-offset)); width: min(27rem, calc(100% - 2.25rem)); max-height: min(40rem, calc(100dvh - 7rem - var(--cookie-offset))); display: flex; flex-direction: column; background: var(--surface); color: var(--paper); border: 1px solid var(--muted); box-shadow: var(--shadow-panel); }
.chat-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.25rem; border-bottom: var(--brass-border); }
.chat-header h2 { font-size: 1.8rem; line-height: 1.1; letter-spacing: -.02em; }
.chat-header p { margin-top: .3rem; color: var(--muted); font-size: var(--text-xs); }
.chat-body { overflow-y: auto; overscroll-behavior: contain; padding: 1.25rem; min-height: 0; }
.chat-intro { font-size: var(--text-sm); color: var(--muted); margin-bottom: 1.25rem; }
.chat-first-contact { display: grid; gap: 1rem; }
.chat-first-contact .form-field { gap: .4rem; }
.chat-first-contact .checkbox-field { font-size: var(--text-xs); }
.chat-transcript { display: flex; flex-direction: column; gap: 1rem; padding: 1.25rem; overflow-y: auto; min-height: 6rem; overscroll-behavior: contain; }
.chat-message { max-width: 90%; padding: .9rem 1rem; background: var(--ink); border-inline-start: var(--brass-border); font-size: var(--text-sm); overflow-wrap: anywhere; white-space: pre-wrap; }
.chat-message--visitor { align-self: flex-end; background: var(--jewel); border-inline-start: 0; border-inline-end: 1px solid var(--muted); }
.chat-message--pending { border-color: var(--rule); color: var(--muted); }
.chat-message--failed { border-color: var(--error); }
.chat-message time { display: block; margin-top: .5rem; font-family: var(--beji-f8e); color: var(--muted); font-size: .7rem; }
.chat-compose { display: grid; gap: .75rem; padding: 1rem 1.25rem; border-top: var(--rule-border); }
.chat-compose textarea { min-height: 5rem; max-height: 10rem; }
.chat-compose-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; }
.chat-status { padding-inline: 1.25rem; color: var(--muted); font-size: var(--text-xs); }
.chat-status:empty { display: none; }
.chat-status.is-error { color: var(--error); }
.chat-fallback { padding: .75rem 1.25rem; font-size: var(--text-xs); border-top: var(--rule-border); }
.chat-fallback a { display: inline-block; min-height: 44px; padding-block: .5rem; }
.chat-fallback a:hover { background: var(--jewel); }
.chat-fallback a:active { background: var(--jewel-pressed); }
.chat-fallback a:focus-visible { outline: 2px solid var(--paper); outline-offset: 3px; }
.chat-retry { min-height: 44px; padding: .6rem .8rem; background: transparent; color: var(--error); border: 1px solid var(--error); font-size: var(--text-xs); transition: background-color 160ms, border-color 160ms; }
.chat-retry:hover { background: var(--error-surface); border-color: var(--paper); }
.chat-retry:active { background: #452922; }
.chat-retry:focus-visible { outline: 2px solid var(--paper); outline-offset: 3px; }
body:has([data-41bc09]:not([hidden])) .chat-launcher, body:has([data-41bc09]:not([hidden])) .chat-panel { visibility: hidden; }
html:not(.js) .chat-launcher, html:not(.js) .chat-panel, html:not(.js) [data-41bc09], html:not(.js) [data-41bc09-open] { display: none; }

@media (max-width: 63.99rem) {
   .header-inner { gap: 1rem; }
   .nav-list { gap: .2rem; }
   .site-nav { gap: .65rem; }
   .nav-link { padding-inline: .5rem; }
   .footer-bottom { grid-template-columns: minmax(0, 1fr); }
   .footer-legal { justify-content: flex-start; }
}
@media (max-width: 47.99rem) {
   .header-inner { flex-wrap: wrap; padding-block: .75rem; }
   .brand img { height: 2.85rem; }
   .site-nav { width: 100%; align-items: stretch; flex-direction: column; gap: 1rem; padding-block: .75rem 1.25rem; }
   .nav-list { flex-direction: column; align-items: stretch; }
   .nav-link { display: flex; padding: .8rem .65rem; border-bottom-color: var(--rule); }
   .site-nav > .button { align-self: flex-start; }
   .js .nav-toggle { display: inline-flex; }
   .js [data-79de82] { display: none; }
   .js [data-79de82].is-open, .js [data-79de82][data-open="true"], .js .site-header.is-menu-open [data-79de82] { display: flex; }
   .js .site-header:has([data-e00d84][aria-expanded="true"]) [data-79de82] { display: flex; }
   .site-header:has([data-e00d84][aria-expanded="true"]) { background: var(--ink); max-height: 100dvh; overflow-y: auto; }
   html:not(.js) .site-header { position: relative; background: var(--ink); }
   .form-grid { grid-template-columns: minmax(0, 1fr); }
   .form-actions { align-items: stretch; flex-direction: column; }
   .form-actions .button { align-self: flex-start; }
   .footer-top { flex-direction: column; }
   .footer-top .maker-seal { align-self: flex-end; margin-top: 1rem; }
   .footer-bottom { margin-top: 3rem; }
   .footer-meta { padding-bottom: 5rem; }
   .cookie-banner { padding: .5rem 1.125rem; gap: .2rem; }
   .cookie-copy { flex-basis: 100%; font-size: .75rem; }
   .cookie-actions { gap: .5rem; }
   .cookie-actions .button { padding: .4rem .85rem; }
   .chat-panel { right: .75rem; width: calc(100% - 1.5rem); bottom: calc(5rem + var(--cookie-offset)); max-height: calc(100dvh - 6rem - var(--cookie-offset)); }
   .chat-header, .chat-body, .chat-compose { padding: 1rem; }
   .chat-transcript { padding: 1rem; }
   .rail-controls { gap: .6rem; }
   .rail-controls .rail-status { flex-basis: 100%; }
}
@media (max-width: 22.5rem) {
   .footer-contact-link { font-size: 1.35rem; }
   .cookie-copy { font-size: .7rem; }
   .cookie-banner { padding-inline: .75rem; }
   .cookie-actions .button { font-size: .75rem; padding-inline: .75rem; }
   .chat-launcher { padding: .65rem .85rem; }
   .header-inner { gap: .5rem; }
   .nav-toggle { padding-inline: .6rem; }
}
@media (prefers-reduced-motion: reduce) {
   .button:hover, .button:active, .btn:hover, .btn:active, .chat-launcher:hover, .chat-launcher:active, .rail-button:active { transform: none; }
}
@media print {
   .site-header, .cookie-banner, .chat-launcher, .chat-panel, .nav-toggle, .rail-controls, .footer-legal button { display: none !important; }
   .site-footer { padding: 2rem 0 0; background: transparent; }
   .footer-meta { padding-bottom: 0; }
   .footer-contact-link { font-size: 18pt; }
   .offer-card, .form-field, .faq-item { break-inside: avoid; }
}
