.icon{width:1.25rem;height:1.25rem;display:inline-block;vertical-align:-0.18em;fill:none;stroke:currentColor;stroke-width:1.75;flex:0 0 auto}
.skip-link{position:fixed;z-index:var(--z-skip);inset-block-start:0.75rem;inset-inline-start:var(--gutter);max-width:calc(100% - var(--gutter) * 2);min-height:44px;padding:0.75rem 1.25rem;background:var(--paper);color:var(--ink);font-weight:600;text-decoration:none;transform:translateY(-180%);border:2px solid var(--paper);transition:background-color var(--duration-control),border-color var(--duration-control),color var(--duration-control)}
.skip-link:focus-visible{transform:none;outline:2px solid var(--brass);outline-offset:3px}
.skip-link:hover{background:var(--muted);border-color:var(--muted)}
.skip-link:active{background:var(--brass);border-color:var(--ink)}
.site-header{position:relative;z-index:var(--z-header);padding-block-start:clamp(1.5rem,3vw,2.75rem);background:var(--ink);color:var(--paper)}
.header-inner{width:min(var(--measure-shell),calc(100% - var(--gutter) * 2));margin-inline:auto;border-block-end:1px solid var(--brass);padding-block-end:1.125rem}
.header-brand-row{display:flex;justify-content:center;align-items:center;gap:var(--space-4);margin-block-end:1rem}
.brand{display:inline-flex;justify-content:center;align-items:center;padding:0.5rem 0.75rem;min-height:44px;max-width:100%;text-decoration:none;border:1px solid transparent;transition:background-color var(--duration-control),border-color var(--duration-control),box-shadow var(--duration-control)}
.brand img{height:3.2rem;width:auto;max-width:100%;object-fit:contain}
.brand:hover{background:var(--deep);border-color:var(--line)}
.brand:active{background:var(--jewel);border-color:var(--brass)}
.brand:focus-visible{outline:2px solid var(--paper);outline-offset:4px;background:var(--deep)}
.site-nav{width:min(52rem,100%);margin-inline:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(1rem,5vw,5rem);align-items:center}
.nav-group{display:flex;align-items:center;justify-content:flex-end;gap:clamp(0.5rem,3vw,2.5rem);list-style:none;margin:0;padding:0}
.nav-group+.nav-group { justify-content:flex-start; }
.nav-group li{margin:0;padding:0;min-width:0}
.nav-link{display:flex;align-items:center;justify-content:center;gap:0.625rem;min-height:44px;padding:0.625rem 0.75rem;border-block-end:1px solid transparent;font-size:1rem;font-weight:600;line-height:1.3;text-decoration:none;overflow-wrap:anywhere;text-align:center;transition:color var(--duration-control),background-color var(--duration-control),border-color var(--duration-control)}
.nav-link .icon{width:1rem;height:1rem}
.nav-link:hover{background:var(--deep);border-color:var(--brass);color:var(--paper)}
.nav-link:active{background:var(--jewel);border-color:var(--paper)}
.nav-link:focus-visible{outline:2px solid var(--paper);outline-offset:3px;background:var(--deep)}
.nav-link[aria-current="page"],.nav-link[aria-current="location"] { border-color:var(--brass); }
.nav-link--inquiry{color:var(--paper);border-block-end-color:var(--brass)}
.nav-toggle{display:none;align-items:center;justify-content:center;gap:0.625rem;min-height:44px;max-width:100%;padding:0.625rem 0.875rem;border:1px solid var(--line);background:var(--ink);color:var(--paper);font-size:1rem;line-height:1.3;transition:background-color var(--duration-control),border-color var(--duration-control),box-shadow var(--duration-control)}
.nav-toggle:hover{background:var(--deep);border-color:var(--brass)}
.nav-toggle:active{background:var(--jewel);box-shadow:inset 0 0 0 1px var(--brass)}
.nav-toggle:focus-visible{outline:2px solid var(--paper);outline-offset:3px;border-color:var(--paper)}
.nav-toggle[aria-expanded='true'] { border-color:var(--brass); }
.nav-toggle .nav-close-icon { display:none; }
.nav-toggle[aria-expanded='true'] .nav-close-icon { display:inline-block; }
.nav-toggle[aria-expanded='true'] .nav-menu-icon { display:none; }

.site-header.is-condensed .header-inner { padding-block-end:0.625rem; }
.site-header.is-condensed .header-brand-row { margin-block-end:0.375rem; }
.site-header.is-condensed .brand img { height:2.8rem; }
.button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:0.875rem;min-height:48px;max-width:100%;padding:0.8125rem 1.375rem;border:1px solid var(--jewel);border-radius:0;background:var(--jewel);color:var(--paper);font-family:var(--lepi-d1c);font-size:1.0625rem;font-weight:600;line-height:1.35;text-align:center;text-decoration:none;white-space:normal;overflow-wrap:anywhere;touch-action:manipulation;transition:background-color var(--duration-control),border-color var(--duration-control),color var(--duration-control),box-shadow var(--duration-control)}
.button:hover,.btn:hover{background:var(--deep);border-color:var(--brass);box-shadow:var(--shadow-control)}
.button:active,.btn:active{background:var(--ink);border-color:var(--paper);box-shadow:inset 0 0 0 1px var(--paper)}
.button:focus-visible,.btn:focus-visible{outline:2px solid var(--paper);outline-offset:4px;border-color:var(--paper)}
.button--outline,.button--secondary,.btn--secondary{background:transparent;border-color:var(--line);color:var(--paper)}
.button--outline:hover,.button--secondary:hover,.btn--secondary:hover{background:var(--surface-raised);border-color:var(--brass)}
.button--outline:active,.button--secondary:active,.btn--secondary:active{background:var(--jewel);border-color:var(--paper)}
.button--paper{background:var(--paper);border-color:var(--paper);color:var(--ink)}
.button--paper:hover{background:var(--muted);border-color:var(--paper);color:var(--ink)}
.button--paper:active{background:var(--brass);color:var(--ink);border-color:var(--brass)}
.button--small{min-height:44px;padding:0.625rem 1rem;font-size:0.9375rem}
.button--full { width:100%; }
.button:disabled,.btn:disabled,.button[aria-disabled='true']{background:var(--surface-raised);border-color:var(--line);color:var(--muted);box-shadow:none;cursor:not-allowed}
.button[aria-busy='true'] { border-style:dashed; }
.button-group{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin-block-start:var(--space-6)}
.button-group>* { min-width:0; }
.text-link,.prose a,.inline-link{color:var(--paper);text-decoration:underline;text-decoration-color:var(--brass);text-underline-offset:0.25em;text-decoration-thickness:1px;transition:background-color var(--duration-control),color var(--duration-control),text-decoration-color var(--duration-control)}
.text-link{display:inline-flex;align-items:center;gap:0.625rem;min-height:44px;padding-block:0.625rem;font-weight:600;line-height:1.35}
.text-link:hover,.prose a:hover,.inline-link:hover{color:var(--paper);background:var(--jewel);text-decoration-color:var(--paper)}
.text-link:active,.prose a:active,.inline-link:active{color:var(--ink);background:var(--brass);text-decoration-color:var(--ink)}
.text-link:focus-visible,.prose a:focus-visible,.inline-link:focus-visible{outline:2px solid var(--paper);outline-offset:4px;background:var(--deep)}
.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;min-width:44px;min-height:44px;padding:0.625rem;border:1px solid var(--line);background:transparent;color:var(--paper);font-size:0.9375rem;line-height:1.3;transition:background-color var(--duration-control),border-color var(--duration-control),box-shadow var(--duration-control)}
.icon-button:hover{border-color:var(--brass);background:var(--surface-hover)}
.icon-button:active{border-color:var(--paper);background:var(--jewel);box-shadow:inset 0 0 0 1px var(--paper)}
.icon-button:focus-visible{outline:2px solid var(--paper);outline-offset:3px;background:var(--deep)}
.work-row,.service-row{display:grid;grid-template-columns:3rem minmax(0,1fr);gap:var(--space-6);padding-block:var(--space-10);border-block-start:1px solid var(--line)}
.work-row__number,.service-row__number{color:var(--brass);font-family:var(--lepi-d01);font-size:var(--text-meta);letter-spacing:var(--tracking-meta);padding-block-start:0.5rem}
.work-row__body,.service-row__body { min-width:0; }
.work-row__body>p,.service-row__body>p { margin-block-start:var(--space-5); }
.work-row__meta,.service-row__meta{margin-block-start:var(--space-6);padding-block-start:var(--space-4);border-block-start:1px solid var(--line);font-size:1rem;color:var(--muted)}
.field-note{border-block-start:1px solid var(--brass);padding-block:var(--space-6);margin-block:var(--space-8)}
.field-note__label{display:block;margin-block-end:var(--space-3);font-family:var(--lepi-d01);font-size:var(--text-meta);letter-spacing:var(--tracking-meta);text-transform:uppercase;color:var(--brass)}
.field-note p { max-width:42rem; }
.work-figure,.editorial-figure { margin:0; }
.figure-frame,.image-frame{overflow:hidden;background:var(--deep);isolation:isolate}
.figure-frame img,.image-frame img{display:block;width:100%;height:auto}
.work-figure figcaption,.editorial-figure figcaption{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);padding-block-start:var(--space-4);color:var(--muted);font-size:0.9375rem;line-height:1.5}
.figure-index{font-family:var(--lepi-d01);font-size:0.75rem;color:var(--brass);flex-shrink:0}
.figure-caption-text{max-width:43rem;min-width:0}
.spec-table{font-size:1rem;line-height:1.5;border-block-start:1px solid var(--brass)}
.spec-table caption{font-family:var(--lepi-d01);font-size:var(--text-meta);color:var(--brass);text-transform:uppercase;letter-spacing:var(--tracking-meta);padding-block-end:var(--space-4)}
.spec-table th,.spec-table td{padding:1rem 1.25rem 1rem 0;border-block-end:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere}
.spec-table th{width:32%;color:var(--paper);font-weight:600}
.spec-table td { color:var(--muted); }
.spec-table thead th{width:auto;font-family:var(--lepi-d01);font-size:0.75rem;text-transform:uppercase;letter-spacing:0.04em;background:var(--deep)}
.spec-table thead th:first-child { padding-inline-start:1rem; }
.spec-table td:last-child,.spec-table th:last-child { padding-inline-end:0; }
.scope-list{list-style:none;padding:0;border-block-start:1px solid var(--line)}
.scope-list li{display:grid;grid-template-columns:1.25rem minmax(0,1fr);gap:1rem;padding:1.125rem 0;border-block-end:1px solid var(--line);margin:0}
.scope-list .icon{color:var(--brass);margin-block-start:0.3rem}
.inquiry-form{margin:0;accent-color:var(--jewel)}
.form-section{padding-block:var(--space-8);border-block-start:1px solid var(--line)}
.form-section legend{font-family:var(--lepi-f89);font-size:var(--text-h3);font-weight:600;line-height:1.1;padding-inline-end:var(--space-4)}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6)}
.form-field{display:flex;flex-direction:column;min-width:0;gap:var(--space-2)}
.form-field--full { grid-column:1/-1; }
.form-field+.form-field:not(.form-grid>.form-field) { margin-block-start:var(--space-6); }
.form-label,.form-field>label{display:block;font-size:1rem;font-weight:600;line-height:1.4;color:var(--paper)}
.form-label small,.form-field label small,.optional{font-size:0.875rem;font-weight:400;color:var(--muted)}
.form-input,.form-select,.form-textarea,.form-field input:not([type='checkbox']):not([type='radio']):not([type='hidden']),.form-field select,.form-field textarea{display:block;width:100%;min-height:48px;padding:0.75rem 0.875rem;border:1px solid var(--line);border-radius:0;background:var(--surface-raised);color:var(--paper);font-size:1rem;line-height:1.5;box-shadow:none;transition:background-color var(--duration-control),border-color var(--duration-control),box-shadow var(--duration-control)}
.form-textarea,.form-field textarea{min-height:9rem;resize:vertical}
.form-select,.form-field select{appearance:auto;padding-inline-end:1rem}
.form-input:hover,.form-select:hover,.form-textarea:hover,.form-field input:hover,.form-field select:hover,.form-field textarea:hover{border-color:var(--brass);background:var(--surface-hover)}
.form-input:active,.form-select:active,.form-textarea:active,.form-field input:active,.form-field select:active,.form-field textarea:active{border-color:var(--paper);background:var(--deep)}
.form-input:focus-visible,.form-select:focus-visible,.form-textarea:focus-visible,.form-field input:focus-visible,.form-field select:focus-visible,.form-field textarea:focus-visible{outline:2px solid var(--paper);outline-offset:3px;border-color:var(--brass);background:var(--deep)}
.form-field input:autofill{box-shadow:0 0 0 1000px var(--deep) inset;color:var(--paper)}
.form-field input:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px var(--deep) inset;-webkit-text-fill-color:var(--paper);caret-color:var(--paper)}
.form-hint,.form-help{font-size:0.9375rem;color:var(--muted);line-height:1.45;overflow-wrap:anywhere}
.form-error,.field-error{font-size:0.9375rem;color:var(--error);line-height:1.45;overflow-wrap:anywhere}
.form-error:empty,.field-error:empty { display:none; }
.form-field [aria-invalid='true']{border-color:var(--error)!important;box-shadow:inset 3px 0 0 var(--error);background:var(--error-surface)}
.form-field.has-error .form-label { color:var(--error); }
.form-check,.checkbox-label{display:grid;grid-template-columns:1.375rem minmax(0,1fr);align-items:start;gap:0.75rem;min-height:44px;padding-block:0.625rem;font-size:1rem;line-height:1.45;cursor:pointer}
.form-check input,.checkbox-label input{appearance:auto;width:1.25rem;height:1.25rem;min-width:1.25rem;margin:0.15rem 0 0;accent-color:var(--jewel);outline-offset:3px;cursor:pointer}
.form-check:hover,.checkbox-label:hover { background:var(--surface-raised); }
.form-check:active,.checkbox-label:active { background:var(--deep); }
.form-check:has(:focus-visible),.checkbox-label:has(:focus-visible){outline:2px solid var(--paper);outline-offset:4px;background:var(--deep)}
.form-check input:hover,.checkbox-label input:hover { outline:1px solid var(--brass); }
.form-check input:active,.checkbox-label input:active { outline:2px solid var(--paper); }
.form-check input:focus-visible,.checkbox-label input:focus-visible{outline:2px solid var(--paper);outline-offset:4px}
.form-check a,.checkbox-label a { text-decoration-color:var(--brass); }
.form-check a:hover,.checkbox-label a:hover{background:var(--jewel);text-decoration-color:var(--paper)}
.form-check a:active,.checkbox-label a:active{background:var(--brass);color:var(--ink)}
.form-check a:focus-visible,.checkbox-label a:focus-visible{outline:2px solid var(--paper);outline-offset:3px}
.form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-5);padding-block-start:var(--space-6)}
.form-actions p{flex:1 1 15rem;font-size:0.9375rem;line-height:1.45;color:var(--muted)}
.form-summary,.form-status,.form-success{margin-block:var(--space-6);padding:var(--space-6);border:1px solid var(--line);background:var(--deep);font-size:1rem;overflow-wrap:anywhere}
.form-summary:empty,.form-status:empty { display:none; }
.form-summary--error,.form-summary[role="alert"]{border-color:var(--error);background:var(--error-surface);color:var(--paper)}
.form-summary h2,.form-summary h3,.form-success h2{font-size:var(--text-h4);margin-block-end:var(--space-3)}
.form-summary ul { margin-block-start:var(--space-3); }
.form-summary a{display:inline-block;min-height:44px;padding-block:0.5rem;text-decoration-color:var(--error)}
.form-summary a:hover { background:var(--ink); }
.form-summary a:active{background:var(--paper);color:var(--ink)}
.form-summary a:focus-visible{outline:2px solid var(--paper);outline-offset:3px}
.form-success{border-color:var(--success);background:var(--success-surface)}
.form-success p+p { margin-block-start:var(--space-3); }
.form-honeypot{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.faq-list { border-block-start:1px solid var(--brass); }
.faq-item { border-block-end:1px solid var(--line); }
.faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);min-height:64px;list-style:none;padding:var(--space-5) 0;font-family:var(--lepi-f89);font-size:var(--text-h4);font-weight:600;line-height:1.15;transition:background-color var(--duration-control),color var(--duration-control),box-shadow var(--duration-control)}
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary .icon{width:1.125rem;height:1.125rem;color:var(--brass)}
.faq-item summary:hover { background:var(--surface-raised); }
.faq-item summary:active{background:var(--jewel);box-shadow:inset 3px 0 0 var(--brass)}
.faq-item summary:focus-visible{outline:2px solid var(--paper);outline-offset:4px;background:var(--deep)}
.faq-item[open] summary { color:var(--paper); }
.faq-item[open] .faq-plus { display:none; }
.faq-item:not([open]) .faq-minus { display:none; }
.faq-item:not([open]) > .faq-answer { display:none; }
.faq-answer{padding:0 0 var(--space-6);max-width:42rem;color:var(--muted)}
.faq-answer p+p { margin-block-start:var(--space-4); }
.site-footer{margin-block-start:var(--section-space);padding:var(--space-16) var(--gutter) calc(7.5rem + var(--safe-bottom));border-block-start:1px solid var(--brass);background:var(--deep);text-align:center}
.footer-inner{max-width:var(--measure);margin-inline:auto;display:flex;flex-direction:column;align-items:center;gap:var(--space-6)}
.footer-brand img{height:4rem;width:auto}

.footer-description{font-size:1.125rem;line-height:1.5;max-width:29rem;color:var(--muted)}
.footer-address{max-width:28rem;font-size:1rem;line-height:1.55}
.footer-address span { display:block; }
.footer-contact{display:flex;flex-direction:column;align-items:center;gap:0.125rem;max-width:100%}
.footer-contact a{display:inline-flex;justify-content:center;align-items:center;gap:0.75rem;min-height:44px;max-width:100%;padding:0.625rem 0.75rem;font-size:1rem;line-height:1.35;text-decoration-color:var(--brass);transition:background-color var(--duration-control),color var(--duration-control),text-decoration-color var(--duration-control)}
.footer-contact a:hover{background:var(--jewel);text-decoration-color:var(--paper)}
.footer-contact a:active{background:var(--paper);color:var(--ink)}
.footer-contact a:focus-visible{outline:2px solid var(--paper);outline-offset:3px;background:var(--ink)}
.footer-legal{display:flex;flex-wrap:wrap;justify-content:center;gap:0.25rem 0.625rem;list-style:none;padding:var(--space-5) 0 0;margin:0;border-block-start:1px solid var(--line);width:100%}
.footer-legal li{padding:0;margin:0;min-width:0}
.footer-legal a,.cookie-preferences{display:inline-flex;align-items:center;justify-content:center;min-height:44px;max-width:100%;padding:0.625rem 0.75rem;border:1px solid transparent;background:transparent;color:var(--paper);font-size:0.9375rem;line-height:1.3;text-align:center;text-decoration:none;transition:background-color var(--duration-control),border-color var(--duration-control),color var(--duration-control)}
.footer-legal a:hover,.cookie-preferences:hover{background:var(--jewel);border-color:var(--brass)}
.footer-legal a:active,.cookie-preferences:active{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.footer-legal a:focus-visible,.cookie-preferences:focus-visible{outline:2px solid var(--paper);outline-offset:3px;background:var(--ink)}
.cookie-preferences{border-color:var(--line);text-decoration:underline;text-underline-offset:0.2em}
.footer-fineprint{font-family:var(--lepi-d01);font-size:0.6875rem;color:var(--muted);letter-spacing:0.04em;line-height:1.7}
.cookie-banner{position:fixed;z-index:var(--z-consent);inset-inline:0;inset-block-end:0;padding:0.75rem var(--gutter) calc(0.75rem + var(--safe-bottom));background:var(--paper);color:var(--ink);border-block-start:1px solid var(--brass);box-shadow:0 -6px 24px rgb(0 0 0 / 0.15)}
.cookie-banner__inner{width:min(var(--measure-shell),100%);margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:var(--space-6)}
.cookie-banner__text{font-size:0.9375rem;line-height:1.35;min-width:0;max-width:40rem}
.cookie-banner__text a{display:inline;text-decoration:underline;text-underline-offset:0.18em;text-decoration-thickness:1px;transition:background-color var(--duration-control),color var(--duration-control)}
.cookie-banner__text a:hover{background:var(--ink);color:var(--paper)}
.cookie-banner__text a:active{background:var(--jewel);color:var(--paper)}
.cookie-banner__text a:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.cookie-banner__actions{display:flex;gap:0.5rem;flex:0 0 auto;max-width:100%}
.cookie-banner__actions .button{min-height:44px;padding:0.625rem 1rem;font-size:0.9375rem;flex:1 1 0;border-color:var(--ink);background:var(--ink);color:var(--paper)}
.cookie-banner__actions .button:hover{background:var(--jewel);border-color:var(--jewel)}
.cookie-banner__actions .button:active{background:var(--deep);border-color:var(--brass);box-shadow:inset 0 0 0 1px var(--brass)}
.cookie-banner__actions .button:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.consent-status{font-size:0.9375rem;color:var(--muted);line-height:1.5}
body:has([data-5f1c23]:not([hidden])) { --consent-offset:6.25rem; }
body:has([data-5f1c23]:not([hidden])) [data-chat-launcher]{visibility:hidden;pointer-events:none}
.chat-widget{position:relative;z-index:var(--z-chat-launcher)}
.chat-launcher{position:fixed;inset-inline-end:var(--gutter);inset-block-end:calc(1.25rem + var(--safe-bottom) + var(--consent-offset));display:inline-flex;align-items:center;justify-content:center;gap:0.75rem;min-height:48px;max-width:calc(100% - var(--gutter) * 2);padding:0.875rem 1.25rem;border:1px solid var(--brass);border-radius:0;background:var(--deep);color:var(--paper);font-size:1rem;font-weight:600;line-height:1.35;box-shadow:var(--shadow-panel);transition:background-color var(--duration-control),border-color var(--duration-control),box-shadow var(--duration-control)}
.chat-widget .chat-launcher { transition:background-color 160ms,border-color 160ms,color 160ms,box-shadow 160ms,transform 160ms!important; }
.chat-widget .chat-launcher:hover{background:var(--paper);color:var(--ink);border-color:var(--paper);transform:translateY(-2px);box-shadow:0 6px 24px rgb(0 0 0 / 0.45)}
.chat-widget .chat-launcher:active{background:var(--brass);border-color:var(--paper);color:var(--ink);transform:translateY(0);box-shadow:inset 0 0 0 2px var(--ink)}
.chat-launcher:focus-visible{outline:2px solid var(--paper);outline-offset:4px;background:var(--jewel)}
.chat-unread{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;min-height:1.5rem;padding:0.125rem 0.375rem;background:var(--paper);color:var(--ink);font-family:var(--lepi-d01);font-size:0.6875rem;line-height:1.35}
.chat-panel{position:fixed;z-index:var(--z-chat);inset-inline-end:var(--gutter);inset-block-end:calc(1.25rem + var(--safe-bottom) + var(--consent-offset));width:min(26rem,calc(100% - var(--gutter) * 2));max-height:calc(100dvh - 2.5rem - var(--safe-bottom) - var(--consent-offset));display:flex;flex-direction:column;overflow:hidden;background:var(--ink);border:1px solid var(--brass);box-shadow:var(--shadow-panel);text-align:start}
.chat-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;background:var(--deep);border-block-end:1px solid var(--line);flex:0 0 auto}
.chat-header h2{font-size:1.875rem;line-height:1.1}
.chat-header p{margin-block-start:0.25rem;font-size:0.8125rem;color:var(--muted);line-height:1.4}
.chat-body{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:1.25rem;scrollbar-color:var(--brass) var(--ink)}
.chat-intro{font-size:1rem;line-height:1.5;margin-block-end:1.25rem;color:var(--muted)}
.chat-start-form .form-field+.form-field { margin-block-start:1rem; }
.chat-start-form .form-check{font-size:0.875rem;margin-block:0.75rem}
.chat-start-form .form-check a { display:inline; }
.chat-start-form .button { width:100%; }
.chat-start-form textarea { min-height:6rem; }
.chat-transcript{display:flex;flex-direction:column;gap:1rem;min-height:7rem;list-style:none;padding:0;margin:0;font-size:1rem;line-height:1.5}
.chat-message{margin:0;padding:0.875rem 1rem;background:var(--surface-raised);border-inline-start:2px solid var(--line);max-width:95%;align-self:flex-start;overflow-wrap:anywhere;white-space:pre-wrap}
.chat-message--visitor,.chat-message[data-sender="visitor"]{background:var(--deep);border-inline-start-color:var(--brass);align-self:flex-end}
.chat-message--support,.chat-message[data-sender='support'] { border-inline-start-color:var(--muted); }
.chat-message--pending{border-style:dashed;color:var(--muted)}
.chat-message--failed{border-color:var(--error);background:var(--error-surface)}
.chat-message__meta{display:block;margin-block-end:0.375rem;font-family:var(--lepi-d01);font-size:0.625rem;line-height:1.5;color:var(--muted);white-space:normal}
.chat-message__status{display:block;margin-block-start:0.5rem;font-size:0.75rem;color:var(--muted);white-space:normal}
.chat-composer{padding:1rem 1.25rem;border-block-start:1px solid var(--line);background:var(--ink);flex:0 0 auto}

.chat-composer .form-label{font-size:0.875rem;margin-block-end:0.5rem}
.chat-composer textarea{min-height:5rem;max-height:10rem;font-size:1rem}
.chat-composer__actions{display:flex;align-items:center;justify-content:space-between;gap:0.75rem;margin-block-start:0.75rem}
.chat-composer__actions .button{min-height:44px;padding:0.625rem 1rem;font-size:0.9375rem}
.chat-status{font-size:0.8125rem;line-height:1.4;color:var(--muted);overflow-wrap:anywhere}
.chat-error{font-size:0.875rem;line-height:1.4;color:var(--error);padding-block:0.5rem}
.chat-error:empty,.chat-status:empty { display:none; }
.chat-fallback{padding:0.75rem 1.25rem;border-block-start:1px solid var(--line);font-size:0.8125rem;line-height:1.45;color:var(--muted);flex:0 0 auto}
.chat-fallback a{display:inline-block;min-height:44px;padding-block:0.75rem;color:var(--paper);text-decoration-color:var(--brass);transition:background-color var(--duration-control),color var(--duration-control)}
.chat-fallback a:hover { background:var(--jewel); }
.chat-fallback a:active{background:var(--paper);color:var(--ink)}
.chat-fallback a:focus-visible{outline:2px solid var(--paper);outline-offset:3px}
.chat-retry{display:inline-flex;min-height:44px;align-items:center;padding:0.5rem 0.75rem;margin-block-start:0.5rem;border:1px solid var(--error);background:transparent;color:var(--paper);font-size:0.875rem;transition:background-color var(--duration-control),border-color var(--duration-control)}
.chat-retry:hover{background:var(--ink);border-color:var(--paper)}
.chat-retry:active{background:var(--paper);color:var(--ink)}
.chat-retry:focus-visible{outline:2px solid var(--paper);outline-offset:3px}
.noscript-note{max-width:var(--measure);margin:1rem auto;padding:1rem var(--gutter);font-size:1rem;color:var(--muted)}
@media(min-width:48rem){.site-nav[hidden]{display:grid!important}}
@media(max-width:63.99rem){.cookie-banner__inner{gap:1rem}.cookie-banner__text{font-size:0.875rem}.cookie-banner__actions .button{padding-inline:0.875rem}.site-footer{padding-block-start:var(--space-12)}}
@media(max-width:47.99rem){.header-inner{padding-block-end:0.75rem}.header-brand-row{margin-block-end:0.75rem;flex-wrap:wrap}.js .header-brand-row{justify-content:space-between}.js .nav-toggle{display:inline-flex}.site-nav{gap:0.25rem;grid-template-columns:repeat(2,minmax(0,1fr))}.nav-group,.nav-group+.nav-group{justify-content:center;gap:0.25rem;flex-wrap:wrap}.nav-group li{flex:1 1 auto}.nav-link{font-size:0.9375rem;padding-inline:0.5rem}.nav-link--inquiry .icon{display:none}.site-header.is-condensed .brand img{height:3.2rem}.site-header.is-condensed .header-inner{padding-block-end:0.75rem}.site-header.is-condensed .header-brand-row{margin-block-end:0.75rem}.form-grid{grid-template-columns:minmax(0,1fr)}.form-actions{align-items:stretch}.form-actions .button{flex:1 1 100%}.form-actions p{flex-basis:100%}.work-row,.service-row{grid-template-columns:2rem minmax(0,1fr);gap:1rem}.cookie-banner{padding:0.5rem 1rem calc(0.5rem + var(--safe-bottom))}.cookie-banner__inner{flex-wrap:wrap;gap:0.375rem}.cookie-banner__text{max-width:none;width:100%;font-size:0.8125rem;line-height:1.3}.cookie-banner__actions{width:100%;gap:0.5rem}.cookie-banner__actions .button{font-size:0.875rem;padding:0.5rem 0.75rem;min-height:44px}.chat-launcher{inset-inline-end:1rem;inset-block-end:calc(1rem + var(--safe-bottom) + var(--consent-offset));padding:0.75rem 1rem}.chat-panel{inset-inline:1rem;inset-block-end:calc(1rem + var(--safe-bottom) + var(--consent-offset));width:calc(100% - 2rem);max-height:calc(100dvh - 2rem - var(--safe-bottom) - var(--consent-offset))}.chat-header,.chat-body,.chat-composer{padding:1rem}.chat-header h2{font-size:1.75rem}.chat-fallback{padding:0.5rem 1rem}.site-footer{padding-block-end:calc(8rem + var(--safe-bottom))}.footer-legal{gap:0.125rem}.footer-legal a{padding-inline:0.625rem}.work-figure figcaption,.editorial-figure figcaption{gap:0.75rem}.spec-table th,.spec-table td{padding:0.875rem 0.75rem 0.875rem 0}}
@media(max-width:25.99rem){.site-nav{gap:0.125rem}.nav-group{flex-direction:column;align-items:stretch}.nav-group+.nav-group{align-items:stretch}.nav-group li{width:100%}.brand{padding-inline:0.5rem}.header-brand-row{gap:0.5rem}.brand img{height:3.2rem}.nav-toggle{padding-inline:0.75rem}.button-group{align-items:stretch}.button-group .button{width:100%}.work-row,.service-row{grid-template-columns:minmax(0,1fr);gap:0.75rem}.work-row__number,.service-row__number{padding:0}.spec-table{font-size:0.9375rem}.spec-table th{width:38%}.footer-contact a{gap:0.5rem;padding-inline:0.25rem}.footer-contact .icon{width:1rem;height:1rem}.chat-header{gap:0.5rem}.chat-header .icon-button{font-size:0.8125rem}.chat-header .icon-button .icon{display:none}.chat-message{max-width:100%;padding:0.75rem}.chat-composer__actions{flex-wrap:wrap}}
@media(max-height:35rem) and (max-width:47.99rem){.chat-panel{inset-block-start:0.5rem;inset-block-end:calc(0.5rem + var(--consent-offset));max-height:calc(100dvh - 1rem - var(--consent-offset))}.chat-header p{display:none}.chat-header{padding-block:0.5rem}.chat-fallback{display:none}.chat-composer textarea{min-height:3rem;max-height:4rem}.chat-composer{padding-block:0.5rem}.cookie-banner__inner{flex-wrap:nowrap}.cookie-banner__text{flex:1 1 55%}.cookie-banner__actions{flex:1 1 45%;width:auto}.cookie-banner__actions .button{padding-inline:0.5rem;font-size:0.75rem}}
@media(prefers-reduced-motion:reduce){.chat-widget .chat-launcher{transition:none!important}.brand,.nav-link,.nav-toggle,.button,.btn,.icon-button,.text-link,.cookie-preferences,.chat-launcher,.chat-retry,.faq-item summary{transition:none}.chat-panel,.site-nav{transform:none!important}}
@media(forced-colors:active){.button,.btn,.nav-toggle,.icon-button,.chat-launcher,.chat-panel,.cookie-banner,.form-input,.form-select,.form-textarea,.form-field input,.form-field textarea{border:1px solid ButtonText}.button:hover,.chat-launcher:hover{outline:2px solid Highlight}.form-field [aria-invalid='true']{border:2px solid Mark!important}.chat-unread{outline:1px solid ButtonText}.brand img{background:#111813}.faq-item summary{border-block-end:1px solid CanvasText}}
@media print{.skip-link,.nav-toggle,.site-nav,.cookie-banner,.chat-widget,.cookie-preferences,.form-actions{display:none!important}.site-header{padding-block:0.5rem}.header-inner{border-color:#555}.brand img{background:#111813}.site-footer{margin-block-start:2rem;padding:1rem 0;border-color:#555;background:#fff}.footer-brand{display:none}.footer-inner{gap:0.5rem}.footer-legal{padding-block-start:0.5rem}.work-row,.service-row,.field-note{break-inside:avoid}.faq-item .faq-answer{display:block!important}.chat-panel{display:none!important}}
