.cms-service-image { display: block; max-width: 100%; width: 100%; height: auto; object-fit: cover; border-radius: 12px; margin-block: 0 1.5rem; }
/*
 * OP1 Accounting — базов UI слой (без build стъпка).
 *
 * Стратегия (docs/UI-CONTRACT.md):
 *  - Композицията на страницата (странична навигация ↔ долна навигация) се
 *    решава по реалната ширина на прозореца (@media).
 *  - Компонентите (таблици → карти, мрежа от карти, филтри, split изглед)
 *    се решават по ширината на своя контейнер (@container) — така работят
 *    коректно и в split-screen, и в тясна колона на широк екран.
 *  - Никакви цветове/шрифтове тук — само променливи от themes/<тема>/theme.css.
 *  - Без User-Agent логика и без отделни мобилни адреси.
 */

/* ---------- Основа ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body.l-body {
    margin: 0;
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.55;
    color: var(--color-text);
    background: var(--color-bg);
}
img { max-width: 100%; height: auto; }
a { color: var(--color-primary); }
a:hover { color: var(--color-primary-strong); }
h1, h2, h3 { font-family: var(--font-heading); line-height: 1.25; }
h1 { font-size: clamp(1.5rem, 1.2rem + 1.4vw, 2.25rem); margin: 0 0 var(--space-4); }
h2 { font-size: 1.35rem; }
:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 2px; }

.u-visually-hidden {
    position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.u-skip-link { position: absolute; left: -999px; top: 0; z-index: 100; background: var(--color-surface); padding: var(--space-2) var(--space-4); }
.u-skip-link:focus { left: var(--space-2); }

/* ---------- Обвивки (контейнери за @container) ---------- */
.l-shell {
    container: shell / inline-size;
    max-width: var(--shell-max);
    margin: 0 auto;
    padding: var(--space-4);
}
.l-main { min-height: 50vh; }

/* Factual company presentation, independent of the shop and client portal. */
.c-company-intro { display: grid; align-items: center; gap: 2rem; padding-block: clamp(1.5rem, 5vw, 4.5rem); }
.c-company-intro__content { min-width: 0; }
.c-company-intro h1 { font-size: clamp(2rem, 4.3vw, 4rem); overflow-wrap: anywhere; }
.c-company-intro__lead { font-size: clamp(1.1rem, 2vw, 1.4rem); color: var(--color-primary); }
.c-company-intro__actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem 1.5rem; margin-top: 2rem; }
.c-company-intro__visual { min-width: 0; margin: 0; }
.c-company-intro__visual img { display: block; width: 100%; aspect-ratio: 1.2; object-fit: cover; border-start-start-radius: 5rem; }
.c-company-intro__visual figcaption { color: var(--color-muted); font-size: .75rem; margin-top: .75rem; }
@media (min-width: 56rem) { .c-company-intro { grid-template-columns: 1.1fr 1fr; gap: 4rem; } }

/* ---------- Header / навигация ---------- */
.c-header { background: var(--color-surface); border-bottom: 1px solid var(--color-border); }
.c-header__inner {
    max-width: var(--shell-max); margin: 0 auto; padding: var(--space-2) var(--space-4);
    display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-4);
}
.c-brand { display: inline-flex; align-items: center; gap: var(--space-2); text-decoration: none; color: var(--color-text); font-weight: 700; }
.c-brand__logo { width: 40px; height: 40px; }
.c-brand-group { display: grid; gap: .4rem; max-width: 17rem; flex-shrink: 1; }
.c-brand-group .c-brand { max-width: none; }
.c-eu-badge { display: flex; align-items: center; gap: .4rem; padding: .2rem; background: var(--color-surface); }
.c-eu-badge img { width: calc(50% - .2rem); height: auto; object-fit: contain; }
.c-eu-logos { display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem; padding: 1rem; width: fit-content; max-width: 100%; background: var(--color-surface); }
.c-eu-logos img { width: min(18rem, 100%); height: auto; object-fit: contain; }
@media (max-width: 36rem) { .c-brand-group { max-width: 12rem; } .c-eu-logos { gap: 1rem; } }
.c-nav { order: 3; flex-basis: 100%; }
.c-nav__toggle {
    list-style: none; cursor: pointer; min-height: var(--touch-target); display: inline-flex; align-items: center;
    padding: 0 var(--space-4); border: 1px solid var(--color-border); border-radius: var(--radius-small);
}
.c-nav__toggle::-webkit-details-marker { display: none; }
.c-nav__list { display: flex; flex-direction: column; padding: var(--space-2) 0; }
.c-nav__list a { min-height: var(--touch-target); display: flex; align-items: center; padding: 0 var(--space-2); text-decoration: none; }
.c-header__tools { margin-left: auto; display: flex; align-items: center; gap: var(--space-4); }
.c-lang { display: flex; gap: var(--space-2); }
.c-lang a { min-width: var(--touch-target); min-height: var(--touch-target); display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.c-lang a[aria-current="true"] { font-weight: 700; text-decoration: underline; }
.c-cart-link { min-height: var(--touch-target); display: inline-flex; align-items: center; gap: var(--space-1); text-decoration: none; }
.c-badge { display: inline-block; min-width: 1.5em; padding: 0 .4em; border-radius: 999px; background: var(--color-primary); color: var(--color-primary-contrast); font-size: .8rem; text-align: center; }

@media (min-width: 56rem) {
    .c-nav { order: 0; flex-basis: auto; }
    /* JS отваря менюто на широк екран; тогава бутонът е излишен */
    .c-nav[open] > .c-nav__toggle { display: none; }
    .c-nav__list { flex-direction: row; gap: var(--space-2); padding: 0; }
}

/* ---------- Breadcrumbs ---------- */
.c-breadcrumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: var(--space-1); padding: 0; margin: 0 0 var(--space-4); font-size: .9rem; color: var(--color-muted); }
.c-breadcrumbs li + li::before { content: "/"; margin-right: var(--space-1); color: var(--color-border); }

/* ---------- Бутони и форми ---------- */
.c-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2);
    min-height: var(--touch-target); padding: 0 var(--space-4);
    border: 1px solid transparent; border-radius: var(--radius-small);
    font: inherit; font-weight: 600; text-decoration: none; cursor: pointer;
}
.c-btn--primary { background: var(--color-primary); color: var(--color-primary-contrast); }
.c-btn--primary:hover { background: var(--color-primary-strong); color: var(--color-primary-contrast); }
.c-btn--secondary { background: var(--color-surface); color: var(--color-primary); border-color: var(--color-border); }
.c-btn--ghost { background: transparent; color: var(--color-muted); }
.c-btn--block { width: 100%; }
.c-link-button { background: none; border: 0; padding: 0; font: inherit; color: var(--color-primary); text-decoration: underline; cursor: pointer; min-height: var(--touch-target); }
.c-inline-form { display: inline; margin: 0; }

.c-form { display: grid; gap: var(--space-3); }
.c-field { display: grid; gap: var(--space-1); font-weight: 600; font-size: .95rem; }
.c-field input, .c-field select, .c-field textarea, .c-qty-form input, .c-chat__ask input {
    min-height: var(--touch-target); padding: var(--space-2) var(--space-3);
    font: inherit; font-weight: 400; color: var(--color-text); background: var(--color-surface);
    border: 1px solid var(--color-border); border-radius: var(--radius-small); width: 100%;
}
.c-field__hint { margin: 0; font-size: .85rem; color: var(--color-muted); }
.c-field__error { margin: 0; color: var(--color-danger); font-size: .9rem; }
.c-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-3); }
.c-form__actions { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.c-check { display: flex; gap: var(--space-2); align-items: flex-start; font-size: .9rem; }
.c-check input { width: 1.25rem; height: 1.25rem; margin-top: .15rem; flex: none; }

.c-flash { background: var(--color-surface); border-left: 4px solid var(--color-success); padding: var(--space-3) var(--space-4); border-radius: var(--radius-small); box-shadow: var(--shadow); }
.c-empty, .c-note { color: var(--color-muted); }

/* ---------- Карти и мрежи ---------- */
.c-card { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius); padding: var(--space-4); box-shadow: var(--shadow); }
.c-card__title { margin: 0 0 var(--space-2); font-size: 1.1rem; }
.c-card__title a { text-decoration: none; color: var(--color-text); }
.c-card__text { margin: 0 0 var(--space-3); color: var(--color-muted); }
.c-card__actions { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-3); }
.c-grid { display: grid; gap: var(--space-4); grid-template-columns: 1fr; }
@container (min-width: 36rem) { .c-grid { grid-template-columns: repeat(2, 1fr); } }
@container (min-width: 58rem) { .c-grid { grid-template-columns: repeat(3, 1fr); } }

.c-price { margin: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-1) var(--space-2); }
.c-price__amount { font-size: 1.25rem; font-weight: 700; }
.c-price__old { color: var(--color-muted); }
.c-price__vat, .c-price__period, .c-price__from { color: var(--color-muted); font-size: .9rem; }

.c-hero { padding: var(--space-6) 0; }
.c-hero__lead, .c-page__lead, .c-product__lead { font-size: 1.15rem; color: var(--color-muted); max-width: 46rem; }
.c-prose { max-width: 46rem; }
.c-section { margin-top: var(--space-8); }

/* ---------- Каталог: филтри + резултати ---------- */
.l-catalog { display: grid; gap: var(--space-4); }
.c-filters__toggle { cursor: pointer; font-weight: 700; min-height: var(--touch-target); display: flex; align-items: center; }
@container shell (min-width: 52rem) {
    .l-catalog { grid-template-columns: 17rem 1fr; align-items: start; }
    .l-catalog__header { grid-column: 1 / -1; }
    .l-catalog__filters { position: sticky; top: var(--space-4); }
}

/* ---------- Продукт ---------- */
.c-product { display: grid; gap: var(--space-4); }
.c-product__buy { display: grid; gap: var(--space-2); background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius); padding: var(--space-4); }
@container shell (min-width: 52rem) {
    .c-product { grid-template-columns: 2fr 1fr; align-items: start; }
    .c-product__header, .c-product__description { grid-column: 1; }
    .c-product__buy { grid-column: 2; grid-row: 1 / span 2; position: sticky; top: var(--space-4); }
}

/* ---------- Таблици: таблица на широко, карти на тясно ---------- */
.c-table { width: 100%; border-collapse: collapse; background: var(--color-surface); border-radius: var(--radius); overflow: hidden; }
.c-table th, .c-table td { text-align: left; padding: var(--space-3); border-bottom: 1px solid var(--color-border); vertical-align: middle; }
.c-table th { font-size: .85rem; color: var(--color-muted); text-transform: uppercase; letter-spacing: .02em; }
@container (max-width: 40rem) {
    .c-table--cards thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
    .c-table--cards, .c-table--cards tbody, .c-table--cards tr, .c-table--cards td { display: block; width: 100%; }
    .c-table--cards tr { border: 1px solid var(--color-border); border-radius: var(--radius); margin-bottom: var(--space-3); padding: var(--space-2) var(--space-3); background: var(--color-surface); }
    .c-table--cards td { border: 0; padding: var(--space-1) 0; display: flex; justify-content: space-between; gap: var(--space-3); }
    .c-table--cards td[data-label]::before { content: attr(data-label); color: var(--color-muted); font-size: .85rem; }
    .c-table--cards td .c-btn { width: 100%; }
}
.c-qty-form { display: flex; gap: var(--space-2); align-items: center; }
.c-qty-form input { width: 5rem; }
.c-totals { display: grid; grid-template-columns: 1fr auto; gap: var(--space-1) var(--space-4); max-width: 24rem; margin-left: auto; }
.c-totals dd { margin: 0; text-align: right; }
.c-totals__grand { font-weight: 700; font-size: 1.2rem; }

/* ---------- Странициране ---------- */
.pagination { list-style: none; display: flex; flex-wrap: wrap; gap: var(--space-1); padding: 0; margin: var(--space-4) 0; }
.pagination li > * { min-width: var(--touch-target); min-height: var(--touch-target); display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--color-border); border-radius: var(--radius-small); background: var(--color-surface); text-decoration: none; }
.pagination .active > * { background: var(--color-primary); color: var(--color-primary-contrast); }

/* ---------- Footer ---------- */
.c-footer { margin-top: var(--space-8); background: var(--color-surface); border-top: 1px solid var(--color-border); }
.c-footer__inner { container: footer / inline-size; max-width: var(--shell-max); margin: 0 auto; padding: var(--space-6) var(--space-4); display: grid; gap: var(--space-6); }
.c-footer__col { display: grid; gap: var(--space-1); align-content: start; }
.c-footer__col p { margin: 0; }
.c-footer__name { font-weight: 700; }
.c-footer__eu { font-size: .85rem; color: var(--color-muted); grid-column: 1 / -1; }
@media (min-width: 48rem) { .c-footer__inner { grid-template-columns: repeat(2, 1fr); } }

/* ---------- Банер за бисквитки ---------- */
.c-consent {
    position: fixed; inset: auto var(--space-2) var(--space-2) var(--space-2); z-index: 50;
    max-width: 40rem; margin: 0 auto; padding: var(--space-4);
    background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius); box-shadow: var(--shadow-float);
}
.c-consent__title { margin: 0 0 var(--space-2); font-size: 1.1rem; }
.c-consent__actions { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.c-consent__actions form { flex: 1 1 12rem; }
.c-consent__actions .c-btn { width: 100%; }

/* ---------- Чат уиджет ---------- */
.c-chat { position: fixed; right: var(--space-4); bottom: var(--space-4); z-index: 40; }
.c-chat__toggle {
    list-style: none; cursor: pointer; min-height: var(--touch-target); padding: 0 var(--space-4);
    display: inline-flex; align-items: center; border-radius: 999px;
    background: var(--color-primary); color: var(--color-primary-contrast); font-weight: 700; box-shadow: var(--shadow);
}
.c-chat__toggle::-webkit-details-marker { display: none; }
.c-chat[open] .c-chat__toggle { position: absolute; right: 0; bottom: 100%; margin-bottom: var(--space-2); }
.c-chat__panel {
    width: min(24rem, calc(100vw - 2 * var(--space-4))); max-height: min(36rem, 75vh); overflow: auto;
    background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius);
    padding: var(--space-4); box-shadow: var(--shadow-float); display: grid; gap: var(--space-3);
}
.c-chat__title { margin: 0; font-size: 1.1rem; }
.c-chat__disclaimer { margin: 0; font-size: .8rem; color: var(--color-muted); }
.c-chat__log { display: grid; gap: var(--space-2); }
.c-chat__msg { padding: var(--space-2) var(--space-3); border-radius: var(--radius-small); background: var(--color-bg); }
.c-chat__msg--visitor { background: var(--color-primary); color: var(--color-primary-contrast); justify-self: end; }
.c-chat__related { display: flex; flex-wrap: wrap; gap: var(--space-1); }
.c-chat__related button { font: inherit; font-size: .85rem; min-height: 36px; padding: 0 var(--space-2); border: 1px solid var(--color-border); border-radius: 999px; background: var(--color-surface); cursor: pointer; }
.c-chat__ask { display: flex; gap: var(--space-2); }
.c-chat__inquiry-title { margin: 0; font-weight: 700; }
.c-chat__ask[hidden], .c-chat__inquiry[hidden] { display: none; }

/* ---------- Вход ---------- */
.c-auth { max-width: 26rem; margin: var(--space-6) auto; }

/* ---------- Портал: две композиции ---------- */
body[data-layout="portal"] { padding-bottom: calc(var(--touch-target) + var(--space-6)); }
.l-portal__sidebar { display: none; }
.l-portal__main { container: portal / inline-size; padding: var(--space-4); }
.c-bottom-nav {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 40;
    display: grid; grid-auto-flow: column; grid-auto-columns: 1fr;
    background: var(--color-surface); border-top: 1px solid var(--color-border);
    padding-bottom: env(safe-area-inset-bottom);
}
.c-bottom-nav a, .c-bottom-nav button {
    min-height: calc(var(--touch-target) + var(--space-2)); display: flex; align-items: center; justify-content: center;
    font: inherit; font-weight: 600; text-decoration: none; color: var(--color-text); background: none; border: 0; cursor: pointer;
}
.c-bottom-nav form { display: contents; }
.c-bottom-nav__primary { background: var(--color-primary) !important; color: var(--color-primary-contrast) !important; }

@media (min-width: 56rem) {
    body[data-layout="portal"] { padding-bottom: 0; }
    .c-bottom-nav { display: none; }
    .l-portal { display: grid; grid-template-columns: 16rem 1fr; min-height: 100vh; }
    .l-portal__sidebar { display: flex; flex-direction: column; gap: var(--space-6); padding: var(--space-4); background: var(--color-surface); border-right: 1px solid var(--color-border); }
    .l-portal__main { padding: var(--space-6) var(--space-8); }
}
.c-sidenav { display: grid; gap: var(--space-1); }
.c-sidenav a { min-height: var(--touch-target); display: flex; align-items: center; padding: 0 var(--space-3); border-radius: var(--radius-small); text-decoration: none; color: var(--color-text); }
.c-sidenav a[aria-current="page"] { background: var(--color-bg); font-weight: 700; }
.c-sidenav__logout { margin-top: auto; }

.c-tile-list { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--space-3); }
@container portal (min-width: 40rem) { .c-tile-list { grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr)); } }
.c-tile__link { display: grid; gap: var(--space-1); padding: var(--space-4); min-height: 5rem; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius); text-decoration: none; color: var(--color-text); box-shadow: var(--shadow); }
.c-tile__title { font-weight: 700; font-size: 1.1rem; }
.c-tile__meta { color: var(--color-muted); font-size: .9rem; }

.c-portal-header__meta { margin-top: calc(-1 * var(--space-3)); color: var(--color-muted); }
.l-split { display: grid; gap: var(--space-6); }
@container portal (min-width: 60rem) {
    .l-split { grid-template-columns: 1fr 20rem; align-items: start; }
    .l-split__aside { position: sticky; top: var(--space-4); }
}

/* Premium accounting presentation. All colours and fonts come from client theme tokens. */
[hidden]{display:none!important}
body.l-body{line-height:1.65}
h1,h2,h3{font-weight:400;line-height:1.15;text-wrap:balance}
h1{font-size:clamp(2.1rem,1.4rem + 2.2vw,4.2rem);letter-spacing:-.03em;margin:0 0 1.4rem}
h2{font-size:clamp(1.7rem,1.2rem + 1.3vw,2.6rem);letter-spacing:-.02em}
h3{font-size:1.45rem}
h1,h2,h3,p,a,dt,dd,span,summary{overflow-wrap:normal}
.c-prose,.c-document-detail,.c-comment-body,.c-definition-list dd{overflow-wrap:anywhere}
button,input,select,textarea{font:inherit}
p{margin:0 0 1rem}
a{text-underline-offset:.22em}
button:disabled{cursor:wait;opacity:.7}
.l-shell,.l-portal__main,main,section,article,aside,form,nav,details,div,td{min-width:0}
.l-shell{width:100%;padding:2rem clamp(1.1rem,3vw,3rem)}
.l-shell:has(.c-page--home){padding-top:0}
.c-icon{width:1.3rem;height:1.3rem;flex:none}
.c-eyebrow{font:600 .74rem/1.5 var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--color-accent);margin:0 0 1rem}
.c-lead,.c-page__lead,.c-product__lead{font-size:1.12rem;line-height:1.75;max-width:43rem;color:var(--color-muted)}
.c-page-header,.c-page-heading{margin:1.5rem 0 2.5rem;max-width:62rem}
.c-section{margin-top:5rem}
.c-section-heading{display:flex;align-items:end;justify-content:space-between;gap:1.5rem;margin-bottom:1.8rem}
.c-section-heading h2{max-width:43rem;margin-bottom:0}
.c-section-heading .c-eyebrow{margin-bottom:.6rem}
.c-text-link{display:inline-flex;align-items:center;gap:.8rem;font-weight:600;min-height:44px}
.c-header__inner{padding:1.2rem clamp(1.1rem,3vw,3rem);gap:1.25rem}
.c-brand{gap:.75rem;font-weight:650;line-height:1.25}
.c-brand__name{max-width:14rem}
.c-brand__logo{width:44px;height:44px;flex:none}
.c-nav{flex:1;order:0}
.c-nav__toggle{gap:.65rem;padding:.5rem .8rem}
.c-menu-icon{width:1.1rem;height:.55rem;border-block:1.5px solid currentColor}
.c-nav__list{align-items:center;justify-content:end;gap:.25rem}
.c-nav__list a{gap:.5rem;padding:.5rem .7rem;font-size:.9rem}
.c-nav__list a[aria-current]{text-decoration:underline;text-decoration-color:var(--color-accent);text-underline-offset:.5em}
.c-nav__portal{border:1px solid var(--color-border);border-radius:var(--radius-small);margin-inline-start:.5rem}
.c-header__tools{gap:.5rem}
.c-lang{gap:0}
.c-lang a{min-width:38px;font-size:.78rem;color:var(--color-muted)}
.c-lang a[aria-current]{color:var(--color-text)}
.c-cart-link{min-width:44px;justify-content:center;gap:.3rem}
.c-badge{background:transparent;color:var(--color-text);padding:0;font-size:.75rem}
@media(min-width:72rem){.c-nav[open]>.c-nav__toggle{display:none}.c-nav__list{flex-direction:row}}
@media(max-width:71.999rem){
.c-header__inner{gap:.6rem;padding-block:.8rem}
.c-brand{margin-right:auto;max-width:calc(100% - 8.7rem)}
.c-brand__name{font-size:.88rem;max-width:12rem}
.c-nav{flex-basis:100%;order:3}
.c-nav[open]>.c-nav__toggle,.c-nav__toggle{display:flex;width:100%;justify-content:center}
.c-nav__list{display:grid;grid-template-columns:1fr 1fr;padding-top:.7rem;gap:.3rem}
.c-nav__list a{border-bottom:1px solid var(--color-border);padding:.8rem}
.c-nav__portal{margin:0}.c-header__tools{margin-left:auto}
}
.c-breadcrumbs{margin-bottom:1.8rem}
.c-breadcrumbs ol{align-items:center;gap:.5rem;margin:0;font-size:.8rem}
.c-breadcrumbs li+li::before{color:var(--color-accent)}
.c-breadcrumbs a{display:inline-flex;align-items:center;min-height:32px}
.c-btn{min-height:48px;max-width:100%;padding:.65rem 1.15rem;font:600 .91rem/1.4 var(--font-body);text-align:center}
.c-btn--secondary:hover{border-color:var(--color-primary)}
.c-btn--light{color:var(--color-primary);background:var(--color-primary-contrast)}
.c-link-button{padding:.45rem 0}
.c-form{gap:1.2rem}
.c-field{gap:.4rem;font-size:.92rem}
.c-field input,.c-field select,.c-field textarea,.c-qty-form input{display:block;min-width:0;min-height:48px;padding:.7rem .8rem;font:400 1rem/1.5 var(--font-body)}
.c-field textarea{resize:vertical}
.c-field input[type=file]{font-size:.85rem;padding:.65rem;overflow:hidden}
input::file-selector-button{font:inherit;padding:.55rem .6rem;min-height:44px;margin-right:.5rem;color:var(--color-primary);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-small)}
.c-field__hint,.c-field__error{font-weight:400}
[aria-invalid=true]{border-color:var(--color-danger)!important}
.c-field-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}
.c-check{gap:.7rem;min-height:44px;font-size:.88rem;cursor:pointer}
.c-check input{margin:.15rem 0;accent-color:var(--color-primary)}
.c-flash,.c-notice{padding:1.2rem;background:var(--color-surface);border-left:3px solid var(--color-success);margin:0 0 1.5rem;box-shadow:none}
.c-notice{border-color:var(--color-accent)}
.c-form-errors{padding:1rem;border:1px solid var(--color-danger);margin-bottom:1.5rem}
.c-form-errors a{color:var(--color-danger)}
.c-empty-state,.c-state-panel{padding:clamp(1.25rem,3vw,3rem);border:1px solid var(--color-border);background:var(--color-surface)}
.c-empty-state h2,.c-state-panel h2{font-size:1.8rem}
.c-prose{max-width:48rem;font-size:1.04rem;line-height:1.85}
.c-prose h2,.c-prose h3{margin-top:2rem}
.c-prose table{width:100%;table-layout:fixed}
.c-prose pre{white-space:pre-wrap;overflow-wrap:anywhere}
.c-reading-layout,.c-contact-layout{display:grid;gap:3rem}
.c-reading-aside{padding:1.8rem;background:var(--color-soft);align-self:start}
.c-reading-aside h2{font-size:1.6rem}
.c-contact-form{padding:clamp(1.2rem,3vw,2.5rem);background:var(--color-surface);border:1px solid var(--color-border)}
.c-contact-details{border-block:1px solid var(--color-border);margin:1.5rem 0;padding:1.5rem 0;font-size:1.15rem}
@container shell (min-width:52rem){.c-reading-layout{grid-template-columns:minmax(0,2fr) minmax(15rem,1fr)}.c-contact-layout{grid-template-columns:1fr 1fr}}
.c-hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:3.5rem;align-items:center;padding:3.8rem 0 2rem}
.c-hero h1{font-size:clamp(2.5rem,2rem + 2.4vw,4.8rem);max-width:12ch}
.c-hero__lead{max-width:32rem;font-size:1.08rem}
.c-hero__actions{display:flex;align-items:center;flex-wrap:wrap;gap:.8rem 1.4rem;margin:1.8rem 0}
.c-hero__actions .c-btn{min-height:54px;padding-inline:1.4rem}
.c-hero__footnote{font-size:.8rem;color:var(--color-muted);padding-top:1rem;border-top:1px solid var(--color-border)}
.c-hero__visual{position:relative;isolation:isolate;min-height:32rem;padding:6.5rem 2rem 1.2rem;background:var(--color-primary);color:var(--color-primary-contrast);overflow:hidden;border-radius:12rem 12rem .3rem .3rem}
.c-hero__arch{position:absolute;z-index:-1;inset:1.5rem 1.5rem 2rem;border:1px solid var(--color-dark-line);border-radius:11rem 11rem 0 0}
.c-hero__orbit{position:absolute;width:15rem;height:15rem;border:1px solid var(--color-accent-soft);border-radius:50%;right:-5rem;top:2rem;opacity:.5}
.c-hero__folio{position:relative;background:var(--color-surface);padding:2rem 1.8rem;color:var(--color-text);box-shadow:var(--shadow-float);transform:rotate(-3deg)}
.c-hero__folio::before{content:"";width:3rem;height:.18rem;background:var(--color-accent);display:block;margin-bottom:1.5rem}
.c-hero__folio-title{font-family:var(--font-heading);font-size:1.9rem;line-height:1.25}
.c-hero__index{list-style:none;padding:0;margin:1rem 0 0}
.c-hero__index li{border-top:1px solid var(--color-border)}
.c-hero__index a{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.5rem;min-height:54px;text-decoration:none;font-size:.88rem}

.c-hero__caption{text-align:center;color:var(--color-on-dark-muted);font-size:.7rem;margin:1.8rem 0 0;letter-spacing:.07em}
.c-process{border-block:1px solid var(--color-border);padding:3rem 0}
.c-process__list{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3rem;padding:0;margin:2rem 0 0}

.c-process__list h3{font-size:1.5rem}
.c-process__list p{color:var(--color-muted);font-size:.94rem}
.c-process__note{margin-top:1.5rem;font-size:.9rem}
.c-situation{border-top:1px solid var(--color-border)}
.c-situation:last-child{border-bottom:1px solid var(--color-border)}
.c-situation>summary{display:grid;grid-template-columns:1fr 2rem;gap:1rem;align-items:center;list-style:none;padding:1.5rem 0;font:400 1.55rem/1.3 var(--font-heading);min-height:72px}
.c-situation>summary::-webkit-details-marker{display:none}

.c-situation__plus{justify-self:end;color:var(--color-accent)}
.c-situation[open] .c-situation__plus{transform:rotate(45deg)}
.c-situation__body{padding:0 3rem 2rem;max-width:50rem}
.c-portal-invite{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:3rem;padding:3rem;background:var(--color-primary);color:var(--color-primary-contrast)}
.c-portal-invite .c-eyebrow{color:var(--color-accent-soft)}
.c-portal-invite h2{max-width:35rem}
.c-portal-invite p:not(.c-eyebrow){color:var(--color-on-dark-muted);max-width:39rem;margin:0}
.c-contact-strip{display:grid;grid-template-columns:1fr 1fr;gap:3rem;padding-bottom:1rem}
.c-contact-strip p{color:var(--color-muted)}
.c-grid{gap:1.2rem}
@container(min-width:36rem){.c-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container(min-width:62rem){.c-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.c-card{padding:1.5rem;border-radius:var(--radius-small);box-shadow:none}
.c-product-card{border:0;border-top:2px solid var(--color-primary);padding:1.8rem 1.5rem;display:flex;flex-direction:column}
.c-card__title{font-size:1.65rem}
.c-card__text{font-size:.94rem}
.c-card__actions{margin-top:auto;padding-top:1.5rem;gap:.6rem}
.c-card__actions .c-btn{font-size:.83rem;padding:.6rem .85rem}
.c-product-card__type{color:var(--color-accent);font-size:.73rem;letter-spacing:.06em;text-transform:uppercase}
.c-price{gap:.25rem .5rem;margin:.6rem 0}
.c-price__amount{font-size:1.7rem;font-weight:650;letter-spacing:-.04em}
.c-price__vat{width:100%}
.l-catalog{gap:2rem}
.c-filters{padding:1.3rem;background:var(--color-soft);border:1px solid var(--color-border)}
.c-filters__form{margin-top:.75rem}
.c-catalog-summary{display:flex;justify-content:space-between;gap:1rem;align-items:center;border-bottom:1px solid var(--color-border);margin-bottom:1.4rem;padding-bottom:.8rem;color:var(--color-muted)}
.c-service-list{display:grid;gap:1rem}
.c-service-list .c-product-card{padding:1.5rem}
@container shell (min-width:52rem){.l-catalog{grid-template-columns:16rem minmax(0,1fr)}}
.c-product{gap:2rem}
.c-product__buy{padding:2rem;border:0;border-top:3px solid var(--color-primary);border-radius:0;box-shadow:var(--shadow)}
.c-product__buy .c-price__amount{font-size:2.6rem}
.c-product__buy .c-btn{width:100%}
.c-product__meta{font-size:.9rem;color:var(--color-muted)}
.c-product-facts,.c-definition-list{margin:1.5rem 0}
.c-product-facts>div,.c-definition-list>div{border-top:1px solid var(--color-border);padding:.7rem 0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:1rem}
.c-product-facts dt,.c-definition-list dt{color:var(--color-muted);font-size:.87rem}
.c-product-facts dd,.c-definition-list dd{margin:0}
@container shell (min-width:52rem){.c-product{grid-template-columns:minmax(0,1.7fr) minmax(18rem,1fr)}}
.c-cart-layout,.c-checkout-layout{display:grid;gap:2rem;align-items:start}
.c-cart-items{list-style:none;margin:0;padding:0}
.c-cart-item{padding:1.6rem 0;border-top:1px solid var(--color-border)}
.c-cart-item__heading{display:flex;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.c-cart-item__heading h2{font-size:1.5rem}
.c-cart-item__controls{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;align-items:center}
.c-cart-item__total{font-weight:650;font-size:1.2rem}
.c-cart-item__total{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem .8rem;margin-top:1rem}
.c-cart-item__total small{font-size:.8rem;font-weight:400;color:var(--color-muted)}
.c-cart-item__heading{display:block}
.c-qty-form{gap:.5rem;flex-wrap:wrap}
.c-qty-form label{font-size:.85rem}
.c-qty-form input{width:4.5rem}
.c-cart-summary,.c-order-summary{background:var(--color-surface);border:1px solid var(--color-border);border-top:3px solid var(--color-primary);padding:1.6rem}
.c-cart-summary h2,.c-order-summary h2{font-size:1.7rem}
.c-totals{grid-template-columns:minmax(0,1fr) auto;gap:.75rem 1rem;margin:1.5rem 0;max-width:none}
.c-summary-lines{list-style:none;padding:0;margin:1.5rem 0}
.c-summary-lines li{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--color-border)}
.c-steps{padding:0;margin:0 0 2.5rem;display:flex;gap:.5rem 1.5rem;list-style:none;flex-wrap:wrap;font-size:.88rem}
.c-steps li{min-height:44px;display:flex;align-items:center;gap:.5rem;color:var(--color-muted)}
.c-steps [aria-current]{color:var(--color-primary);font-weight:650;border-bottom:2px solid var(--color-accent)}
.c-choice-list{display:grid;gap:.8rem}
.c-choice{display:flex;align-items:start;gap:.8rem;border:1px solid var(--color-border);padding:1rem}
.c-choice input{accent-color:var(--color-primary);margin-top:.4rem}
.c-form-section{border:0;border-top:1px solid var(--color-border);margin:0;padding:1.5rem 0;min-width:0}
.c-form-section legend{padding-right:.6rem;font-weight:650}
.c-checklist{padding-left:1.2rem}
.c-checklist li{padding-bottom:.7rem}
.c-pricing-guide{display:grid;gap:2rem}
@container shell (min-width:52rem){.c-cart-layout,.c-checkout-layout{grid-template-columns:minmax(0,1fr) 22rem}.c-cart-summary{position:sticky;top:1rem}.c-pricing-guide{grid-template-columns:1fr 1fr}}
.c-table{font-size:.9rem;border-radius:0}
.c-table th,.c-table td{padding:1rem .75rem}
.c-table th{font-size:.72rem;background:var(--color-soft)}
@container(max-width:48rem){
.c-table--cards thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.c-table--cards,.c-table--cards tbody,.c-table--cards tr,.c-table--cards td{display:block;width:100%}
.c-table--cards{background:transparent}
.c-table--cards tr{border:1px solid var(--color-border);padding:1rem;margin-bottom:1rem;background:var(--color-surface);border-radius:0}
.c-table--cards td{padding:.5rem 0;border:0;display:flex;justify-content:space-between;gap:1rem}
.c-table--cards td[data-label]::before{content:attr(data-label);font-size:.8rem;color:var(--color-muted)}
.c-table--cards td:first-child{display:block;font-size:1.1rem;font-weight:650;border-bottom:1px solid var(--color-border);margin-bottom:.5rem;padding-bottom:.8rem}
.c-table--cards td:first-child::before{display:none}
.c-table--cards td:last-child .c-btn{width:100%}
.c-table--cards td:has(details){display:block}
}
.pagination li>*{padding:.4rem .7rem}
.c-consent{position:static;max-width:none;margin:0;padding:0;background:var(--color-soft);border:0;border-bottom:1px solid var(--color-border);border-radius:0;box-shadow:none}
.c-consent__inner{max-width:var(--shell-max);margin:auto;padding:1.2rem clamp(1.1rem,3vw,3rem);display:flex;align-items:center;justify-content:space-between;gap:2rem}
.c-consent__inner>div:first-child{max-width:46rem}
.c-consent__title{font:650 .95rem/1.3 var(--font-body);margin-bottom:.4rem}
.c-consent p{font-size:.82rem;margin:0;color:var(--color-muted)}
.c-consent__actions{gap:.6rem;flex:none}
.c-consent__actions form{flex:1}
.c-consent__actions .c-btn{font-size:.8rem;padding:.6rem .8rem;white-space:nowrap}
.c-support-dock{max-width:var(--shell-max);margin:4rem auto 0;padding:0 clamp(1.1rem,3vw,3rem)}
.c-chat{position:static;border-top:2px solid var(--color-primary);border-bottom:1px solid var(--color-border);background:var(--color-surface)}
.c-chat__toggle,.c-chat[open] .c-chat__toggle{position:static;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.5rem 2rem;min-height:88px;background:transparent;color:var(--color-text);border-radius:0;box-shadow:none;margin:0}
.c-chat__toggle .c-eyebrow{display:block;margin:0 0 .25rem}
.c-chat__toggle strong{display:block;font:400 1.8rem/1.3 var(--font-heading)}
.c-chat__toggle-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--color-border);border-radius:50%;font-size:1.5rem;flex:none}
.c-chat[open] .c-chat__toggle-icon{transform:rotate(45deg)}
.c-chat__panel{width:auto;max-height:none;overflow:visible;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:2.5rem;padding:2rem;border:0;border-top:1px solid var(--color-border);border-radius:0;box-shadow:none}
.c-chat__intro{padding-right:1rem}
.c-chat__intro h2{font-size:1.7rem}
.c-chat__intro p{color:var(--color-muted);font-size:.9rem}
.c-chat__intro button{display:flex;margin-top:1.5rem}
.c-chat__msg{padding:1rem 1.2rem;border-left:2px solid var(--color-border);margin:0;font-size:.94rem;max-width:100%;border-radius:0}
.c-chat__msg p:last-child{margin:0}
.c-chat__msg--visitor{border:0}
.c-chat__suggestions,.c-chat__related{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}
.c-chat__suggestions p,.c-chat__related p{flex-basis:100%;margin:0}
.c-chat__related button{min-height:44px;padding:.6rem .9rem;text-align:left;border-radius:var(--radius-small);color:var(--color-primary)}
.c-chat__status{min-height:1.5rem;font-size:.85rem;color:var(--color-muted);margin:.7rem 0}
.c-chat__ask{gap:.6rem;align-items:end}
.c-chat__ask .c-field{flex:1}
.c-chat__tools{display:flex;gap:1rem;margin:.5rem 0}
.c-chat__inquiry{margin-top:1rem}
.c-footer{background:var(--color-primary);color:var(--color-primary-contrast);margin-top:4rem}
.c-footer a,.c-footer .c-link-button{color:var(--color-primary-contrast)}
.c-footer__inner{padding:3rem clamp(1.1rem,3vw,3rem);grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) auto;gap:3rem}
.c-footer .c-eyebrow{color:var(--color-accent-soft)}
.c-footer__name{font:400 1.7rem var(--font-heading);max-width:25rem}
.c-footer__col{font-size:.87rem}
.c-footer__col p{margin:0 0 .3rem}
.c-footer__col a{min-height:36px;display:inline-flex;align-items:center}
.c-footer__top{align-self:start;min-height:44px;font-size:.85rem}
.c-footer__eu{border-top:1px solid var(--color-dark-line);padding-top:1.5rem;color:var(--color-on-dark-muted);font-size:.8rem}
/* Protected compositions */
.c-auth-header{max-width:var(--shell-max);margin:auto;padding:1.5rem clamp(1.1rem,3vw,3rem);display:flex;justify-content:space-between;align-items:center;gap:1rem}
.c-auth-layout{display:grid;gap:3rem;max-width:68rem;margin:2rem auto;align-items:start}
.c-auth-intro{padding:2rem 0}
.c-auth-intro h1,.c-auth-intro h2{font-size:clamp(2rem,1.5rem + 2vw,3.6rem)}
.c-auth-intro p{color:var(--color-muted)}
.c-auth{width:100%;max-width:30rem;margin:0 auto;background:var(--color-surface);border-top:3px solid var(--color-primary);padding:clamp(1.2rem,3vw,2.5rem);box-shadow:var(--shadow)}
.c-auth h1,.c-auth h2{font-size:2rem}
.c-auth__form{margin-top:1.7rem}
.c-auth .c-note,.c-auth__staff{font-size:.85rem;margin-top:1.5rem}
.c-auth-benefits{list-style:none;padding:0}
.c-auth-benefits li{border-top:1px solid var(--color-border);padding:1rem 0}
.c-auth-footer{max-width:68rem;margin:2rem auto;padding:1rem;display:flex;gap:1.5rem;flex-wrap:wrap;font-size:.8rem}
@container shell (min-width:48rem){.c-auth-layout{grid-template-columns:1fr 1fr;gap:4rem}}
body[data-layout=portal]{padding-bottom:calc(76px + env(safe-area-inset-bottom))}
.l-portal__main{padding:1.5rem;max-width:100%}
.c-portal-topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1rem;background:var(--color-surface);border-bottom:1px solid var(--color-border)}
.c-portal-menu[open]{flex:1 0 100%}
.c-portal-topbar .c-brand{max-width:75%}
.c-portal-menu{position:relative}
.c-portal-menu>summary{min-height:44px;padding:.6rem}
.c-portal-menu nav{padding:1rem;display:grid;gap:.5rem;background:var(--color-surface);border:1px solid var(--color-border)}
.c-portal-user{display:flex;align-items:center;gap:.75rem;border-bottom:1px solid var(--color-border);padding-bottom:1.3rem}
.c-avatar{display:inline-flex;width:40px;height:40px;flex:none;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:50%;font-size:.85rem}
.c-sidenav a,.c-sidenav>span{gap:.6rem;min-height:48px;padding:.7rem .8rem;font-size:.92rem;border-left:2px solid transparent;border-radius:0}
.c-sidenav a[aria-current=page]{background:var(--color-soft);border-color:var(--color-accent)}
.c-sidenav [aria-disabled]{color:var(--color-muted);font-size:.85rem;display:flex;justify-content:space-between;gap:.5rem;flex-wrap:wrap}
.c-sidenav__unavailable small{font-size:.65rem}
.c-sidenav__unavailable{display:flex;align-items:center;gap:.6rem;color:var(--color-muted)}
.c-sidenav__unavailable small{display:block;font-size:.65rem;line-height:1.4}
.c-portal-support{font-size:.82rem;color:var(--color-muted)}
.c-portal-header{display:flex;align-items:start;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;margin:1rem 0 2rem}
.c-portal-header h1{font-size:clamp(2rem,1.5rem + 1.4vw,3.3rem)}
.c-portal-header__meta{font-size:.88rem;margin-top:0}
.c-company-list{list-style:none;padding:0;display:grid;gap:1rem}
.c-company-row{padding:1.5rem;border:1px solid var(--color-border);background:var(--color-surface);display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.c-company-row h2{font-size:1.5rem;margin-bottom:.5rem}
.c-company-row p{margin:0;color:var(--color-muted);font-size:.88rem}
.c-company-row__count{font-size:.85rem}
.c-portal-modules{display:grid;gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:2rem}
.c-portal-module{padding:1.3rem 0;border-top:1px solid var(--color-border)}
.c-portal-module h2,.c-portal-module h3{font-size:1.4rem}
.c-portal-module p{font-size:.85rem;color:var(--color-muted)}
.c-status{display:inline-flex;align-items:center;padding:.2rem .6rem;border:1px solid var(--color-border);color:var(--color-primary);background:var(--color-bg);font-size:.74rem;border-radius:var(--radius-small)}
.c-document-name{display:flex;align-items:start;gap:.5rem;font-weight:600}
.c-document-detail{width:100%;margin-top:.5rem}
.c-document-detail summary{color:var(--color-primary);font-size:.82rem;min-height:44px;display:flex;align-items:center;text-decoration:underline}
.c-document-detail .c-definition-list{font-size:.84rem}
.c-upload-panel{background:var(--color-surface);border:1px solid var(--color-border);border-top:3px solid var(--color-primary);padding:1.5rem}
.c-upload-panel>summary{min-height:48px;font-family:var(--font-heading);font-size:1.6rem}
.c-upload-panel__summary{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.c-upload-panel__summary h2{font-size:1.6rem;margin:0}
.c-upload-panel__summary small{font:400 .8rem var(--font-body)}
.c-upload-panel__body{padding-top:1.2rem}
.c-upload-panel .c-form{margin-top:1.2rem}
.c-upload-panel [data-upload-file-name]{color:var(--color-primary);font-size:.9rem}
.c-upload-picker{border:1px dashed var(--color-border);background:var(--color-bg);padding:1rem}
.l-split{gap:2rem;align-items:start}
.c-bottom-nav a,.c-bottom-nav button{flex-direction:column;gap:.2rem;padding:.5rem .3rem;min-height:68px;width:100%;font:600 .76rem/1.2 var(--font-body)}
.c-bottom-nav form{margin:0}
@media(min-width:56rem){body[data-layout=portal]{padding-bottom:0}.c-portal-topbar{display:none}.l-portal{grid-template-columns:15rem minmax(0,1fr)}.l-portal__sidebar{padding:2rem 1.2rem;gap:2rem}.l-portal__sidebar .c-brand{max-width:100%}.l-portal__sidebar .c-brand__name{font-size:.9rem}.l-portal__main{padding:2.5rem clamp(1.5rem,3vw,3.5rem)}}
@container portal (min-width:60rem){.l-split{grid-template-columns:minmax(0,1fr) 21rem}}
.c-calendar__toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}
.c-calendar__weekdays,.c-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));list-style:none;padding:0;margin:0}
.c-calendar__weekdays{font-size:.75rem;color:var(--color-muted)}
.c-calendar__weekdays li{padding:.7rem}
.c-calendar-day{min-height:7rem;padding:.7rem;border:1px solid var(--color-border);background:var(--color-surface);font-size:.85rem}
.c-calendar-day--today{border-color:var(--color-primary);background:var(--color-soft)}
.c-calendar-events{list-style:none;padding:0;font-size:.73rem}
.c-calendar-events li{padding:.5rem 0}
.c-appointment-list,.c-version-list{list-style:none;padding:0}
.c-appointment,.c-version{padding:1.5rem 0;border-top:1px solid var(--color-border);display:flex;gap:1.5rem;align-items:start;flex-wrap:wrap}
.c-appointment h3,.c-version h3{font-size:1.35rem}
.c-appointment__date,.c-version__number{font-size:.85rem;color:var(--color-accent)}
.c-profile-panel,.c-security-panel{max-width:48rem}
.c-code-input{letter-spacing:.3em}
.c-recovery{white-space:normal;overflow-wrap:anywhere}
.c-recovery>summary{min-height:44px;display:flex;align-items:center}
@container portal (max-width:48rem){.c-calendar__weekdays{display:none}.c-calendar-grid{display:block}.c-calendar-day{min-height:0;padding:1rem;display:flex;gap:1rem}.c-calendar-day--blank,.c-calendar-day--empty{display:none}.c-calendar-events{font-size:.88rem}}
@media(max-width:55.999rem){
.c-hero{grid-template-columns:1fr;gap:1.5rem;padding-top:2.5rem}
.c-hero h1{max-width:18ch;font-size:clamp(2.3rem,1.3rem + 4vw,3.6rem)}
.c-hero__visual{min-height:0;border-radius:var(--radius-small);padding:1.4rem}
.c-hero__arch,.c-hero__caption,.c-hero__folio::before{display:none}
.c-hero__folio{padding:0;background:transparent;color:var(--color-primary-contrast);transform:none;box-shadow:none}
.c-hero__folio>.c-eyebrow{color:var(--color-accent-soft);margin-bottom:.4rem}
.c-hero__folio-title{font-size:1.45rem;margin-bottom:.8rem}
.c-hero__index a{color:var(--color-primary-contrast);min-height:50px}

.c-hero__index li{border-color:var(--color-dark-line)}
.c-consent__inner{display:block}
.c-consent__actions{margin-top:.8rem}
.c-consent__actions form{flex:1;min-width:0}
.c-consent__actions .c-btn{width:100%;height:100%;white-space:normal}
.c-portal-invite{padding:2rem;grid-template-columns:1fr;gap:1.5rem}
.c-contact-strip{grid-template-columns:1fr;gap:1rem}
.c-process__list{gap:1.5rem}
.c-footer__inner{grid-template-columns:1fr 1fr;gap:2rem}
.c-footer__top{grid-column:1/-1}
.c-chat__panel{grid-template-columns:1fr;gap:1rem}
.c-chat__intro{padding:0 0 1rem;border-bottom:1px solid var(--color-border)}
.c-chat__intro h2{display:none}
.c-chat__intro button{display:inline-flex;margin:0 0 0 1rem}
}
@media(max-width:39.999rem){
.l-shell{padding:1.3rem 1.1rem}
.c-section{margin-top:3rem}
.c-section-heading{display:block}
.c-section-heading>.c-text-link{margin-top:.7rem}
.c-hero{padding-top:2rem}
.c-hero__actions{display:grid;justify-items:start;margin:1.4rem 0}
.c-hero__actions .c-btn{width:100%}
.c-hero__actions .c-text-link{font-size:.88rem}
.c-process{padding:2rem 0}
.c-process__list{grid-template-columns:1fr;gap:1.5rem}
.c-process__list li{display:block}

.c-process__list p{margin:0}
.c-process__list h3{font-size:1.4rem;margin-bottom:.4rem}
.c-situation>summary{grid-template-columns:1fr 1rem;gap:.5rem;font-size:1.25rem;padding:1.2rem 0}
.c-situation__body{padding:0 0 1.5rem 1.8rem}
.c-portal-invite{padding:1.5rem}
.c-portal-invite .c-btn{width:100%}
.c-footer__inner{grid-template-columns:1fr}
.c-footer__top{grid-column:auto}
.c-chat__toggle,.c-chat[open] .c-chat__toggle{padding:1.2rem}
.c-chat__toggle strong{font-size:1.4rem}
.c-chat__panel{padding:1.1rem}
.c-chat__ask{display:grid}
.c-chat__ask>.c-btn{width:100%}
.c-chat__suggestions,.c-chat__related{display:grid}
.c-auth-layout{margin:0;gap:1rem}
.c-auth-intro{padding:1rem 0 0;order:2}
.c-auth-layout>.c-auth{order:1}
.c-auth-intro h2,.c-auth-intro h1{font-size:1.9rem}
.c-auth-intro p{font-size:.9rem}
.c-auth-benefits{display:none}
.c-company-row{display:grid}
.c-company-row .c-btn{width:100%}
.c-portal-modules{grid-template-columns:1fr}
.l-portal__main{padding:1.2rem 1rem}
.c-cart-item__heading{display:block}
.c-cart-item__controls{display:grid}
.c-cart-item__controls>.c-inline-form{justify-self:start}
.c-cart-summary{padding:1.3rem}
.c-product__buy{padding:1.5rem}
.c-card__actions{display:grid;grid-template-columns:1fr}
.c-card__actions .c-btn{width:100%}
.c-steps{gap:.5rem 1rem;font-size:.8rem}
.c-catalog-summary{font-size:.85rem}
}
@media(max-width:23rem){
.c-brand__logo{width:34px;height:34px}
.c-brand__name{font-size:.77rem}
.c-header__inner{padding-inline:1rem}
.c-header__tools{gap:0}
.c-lang a{min-width:30px}
.c-brand{max-width:calc(100% - 7rem);gap:.4rem}
.c-consent__actions{display:grid;grid-template-columns:1fr}
.c-consent__actions .c-btn{min-height:44px}
.c-field-row{grid-template-columns:1fr}
.c-qty-form{gap:.4rem}
}
@media(prefers-reduced-motion:no-preference){.c-btn,a,.c-situation__plus,.c-chat__toggle-icon{transition:color .15s ease,background-color .15s ease,border-color .15s ease,transform .15s ease}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.c-header,.c-footer,.c-consent,.c-support-dock,.c-bottom-nav,.l-portal__sidebar{display:none}.l-portal{display:block}.l-shell,.l-portal__main{padding:0}}
.c-error-summary{padding:1rem;border:1px solid var(--color-danger);margin:1rem 0 1.5rem}
.c-error-summary h2{font:600 1rem/1.5 var(--font-body);margin:0 0 .6rem}
.c-error-summary a{color:var(--color-danger)}
.c-definition-list>dt{font-size:.8rem;color:var(--color-muted);margin-top:.6rem}
.c-definition-list>dd{margin:0}
.c-calendar__weekdays>span{padding:.7rem}
.c-calendar-day h3{font:600 .9rem/1.5 var(--font-body);margin:0 0 .5rem}
.c-calendar-day__weekday{display:block;font-size:.7rem;color:var(--color-muted);font-weight:400}
.c-calendar-day__empty{font-size:.72rem}
.c-calendar-events span{display:block}
.c-calendar-events .c-status{display:inline-flex;margin-top:.4rem}
.c-upload-panel[open] .c-upload-panel__toggle{transform:rotate(45deg)}
.c-field input,.c-field select,.c-field textarea,.c-qty-form input,.c-choice{border-color:var(--color-control-border)}
.c-footer :focus-visible,.c-portal-invite :focus-visible,.c-hero__visual :focus-visible{outline-color:var(--color-accent-soft)}
.c-footer__col a{min-height:44px}
.c-choice>span>span{display:block}
.c-form-section>.c-field+.c-field{margin-top:1.2rem}
.c-lang a{min-width:44px}
@media(max-width:71.999rem){.c-header__inner>.c-brand{flex:1;max-width:none}.c-header__tools{flex:none}}

/* Final backend integration: native preferences and task-focused portal forms. */
.c-consent__actions>a{flex:1;min-height:44px;text-align:center}
.c-consent-preferences{max-width:36rem}
.c-consent-preferences>summary,.c-cancel-booking>summary{min-height:44px;display:flex;align-items:center;cursor:pointer;text-decoration:underline}
.c-consent-preferences .c-form{padding:1rem;margin-block:1rem;background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-small)}
.c-footer .c-consent-preferences .c-form a{color:var(--color-primary)}
.c-consent-preferences .c-choice{align-items:center}
.c-consent-preferences input{flex:none}
.c-chat__human{padding:1rem;border:1px solid var(--color-border);margin-block:1rem}
.c-two-factor-qr{max-width:100%;height:auto;background:var(--color-surface)}
.c-setup-key{display:block;overflow-wrap:anywhere;padding:1rem;font-size:1rem}
.c-two-factor-setup summary{min-height:44px;display:flex;align-items:center;cursor:pointer}
.c-slot-list{max-height:28rem;overflow:auto;overscroll-behavior:contain;padding:.25rem}
.c-slot-list .c-choice{align-items:center}
.c-document-comments{list-style:none;padding:0;display:grid;gap:1rem}
.c-document-comment--staff{border-inline-start:3px solid var(--color-primary)}
.c-comment-body{white-space:pre-wrap;overflow-wrap:anywhere}
.c-recovery-codes ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.75rem;padding-inline-start:1.5rem}
.c-cancel-booking{max-width:22rem}
@media(max-width:56rem){.c-appointment .c-form__actions{grid-column:1/-1}.c-two-factor-setup{max-width:100%}}
@media print{body:has([data-recovery-codes]) *{visibility:hidden}body:has([data-recovery-codes]) [data-recovery-codes],body:has([data-recovery-codes]) [data-recovery-codes] *{visibility:visible}[data-recovery-codes]{position:absolute;inset:0}[data-print-recovery]{display:none}}

/* V1.1: controls retain words; secondary public links use a native disclosure. */
.c-btn,.c-nav__list a,.c-nav-more>summary,.c-bottom-nav a,.c-sidenav a{overflow-wrap:normal;word-break:normal;hyphens:none}
.c-nav-more{position:relative;flex:none}
.c-nav-more>summary{cursor:pointer;min-height:44px;padding:.5rem .7rem;display:flex;align-items:center;gap:.4rem;font-size:.9rem;color:var(--color-primary)}
.c-nav-more>summary::after{content:'⌄'}
.c-nav-more__links{display:grid;min-width:14rem;padding:.5rem;border:1px solid var(--color-border);background:var(--color-surface);z-index:30}
@media(min-width:72rem){.c-nav{flex:1 0 auto}.c-nav__list a,.c-nav-more>summary{white-space:nowrap}.c-nav-more__links{position:absolute;top:100%;right:0}}
@media(max-width:71.999rem){.c-nav-more{grid-column:1/-1;width:100%}.c-nav-more__links{min-width:0}.c-nav__list>a{justify-content:center}}
.c-document-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:.8rem;padding:1rem;background:var(--color-surface);border:1px solid var(--color-border);margin-bottom:1rem}
.c-document-filters__search,.c-document-filters .c-form__actions{grid-column:1/-1}
.c-document-actions{min-width:8.5rem}
.c-document-actions .c-btn{white-space:nowrap;padding-inline:.65rem}
.c-clarification-list{display:grid;gap:1rem}
.c-clarification-list h2{font-size:1.2rem;margin:0}
.c-clarification-list .c-section-heading{margin-bottom:.75rem;align-items:center;flex-wrap:wrap}
.c-daily-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0}
.c-pending-work{padding:1rem;border-left:3px solid var(--color-primary);background:var(--color-surface);margin:1rem 0}
.c-company-context{padding:1rem;background:var(--color-surface);border:1px solid var(--color-border);margin-bottom:.75rem}
.c-company-context h2{font-size:1.1rem;margin:0 0 .25rem}
.c-company-context p{margin:0;font-size:.85rem}
.c-company-context form{display:flex;align-items:end;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}
.c-company-context .c-field{flex:1}
@container portal (min-width:60rem){.c-document-filters{grid-template-columns:2fr 1fr 1fr 1fr}.c-document-filters__search{grid-column:auto}}
@media(max-width:430px){.c-document-filters{grid-template-columns:minmax(0,1fr)}.c-daily-actions{display:grid;grid-template-columns:minmax(0,1fr)}.c-daily-actions .c-btn{justify-content:start}}

/* Arbitrary document metadata may break; navigation/action labels never do. */
.c-document-detail summary,.c-clarification-list h2,.c-definition-list dd,.c-comment-body{overflow-wrap:anywhere}

.c-portal-user>span:last-child{min-width:0;overflow-wrap:anywhere}
.c-company-context h2,.c-company-row h3,.c-portal-header h1{overflow-wrap:anywhere}
