:root {
    --anthys-mauve: var(--display-accent, #B34FBD);
    --anthys-mauve-dark: var(--display-accent, #7C3684);
    --anthys-mauve-light: var(--display-on-strong-muted, #E9D8EC);
    --anthys-beige: var(--display-paper, #EDE4D8);
    --anthys-beige-light: var(--display-paper, #F8F4EF);
    --anthys-anthracite: var(--display-strong, #171717);
    --anthys-black-soft: var(--display-text, #222222);
    --anthys-off-white: var(--display-paper, #FCFAF7);
    --anthys-text-muted: var(--display-muted, rgba(34, 34, 34, 0.72));
    --anthys-border: var(--display-border, rgba(124, 54, 132, 0.18));
    --anthys-shadow: rgba(23, 23, 23, 0.08);
    --bs-body-bg: var(--display-paper, #F8F4EF);
    --bs-body-color: var(--display-text, #222222);
    --bs-primary: var(--display-accent, #7C3684);
    --bs-primary-rgb: 124, 54, 132;
    --bs-link-color: var(--display-accent, #7C3684);
    --bs-link-hover-color: var(--display-text, #171717);
    --anthys-gradient: linear-gradient(
        120deg,
        hsla(221, 39%, 11%, 0.96) 0%,
        rgba(23, 23, 23, 0.90) 10%,
        var(--display-accent, #B34FBD) 100%
    );
}

.cookie-consent {
    bottom: 1rem;
    left: 1rem;
    position: fixed;
    right: 1rem;
    z-index: 1080;
}

html {
    overflow-x: hidden;
}

body {
    background-color: var(--anthys-beige-light);
    color: var(--anthys-black-soft);
    overflow-x: clip;
    text-rendering: optimizeLegibility;
}

a {
    color: var(--anthys-mauve-dark);
}

a:hover {
    color: var(--display-text, var(--anthys-anthracite));
}

.btn-primary,
.btn-primary:focus {
    --bs-btn-bg: var(--anthys-mauve-dark);
    --bs-btn-border-color: var(--anthys-mauve-dark);
    --bs-btn-hover-bg: var(--anthys-anthracite);
    --bs-btn-hover-border-color: var(--anthys-anthracite);
    --bs-btn-active-bg: var(--anthys-black-soft);
    --bs-btn-active-border-color: var(--anthys-black-soft);
    --bs-btn-disabled-bg: var(--anthys-mauve-dark);
    --bs-btn-disabled-border-color: var(--anthys-mauve-dark);
}

.btn-outline-primary {
    --bs-btn-color: var(--anthys-mauve-dark);
    --bs-btn-border-color: var(--anthys-mauve-dark);
    --bs-btn-hover-bg: var(--anthys-mauve-dark);
    --bs-btn-hover-border-color: var(--anthys-mauve-dark);
    --bs-btn-active-bg: var(--anthys-anthracite);
    --bs-btn-active-border-color: var(--anthys-anthracite);
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus {
    border-color: var(--anthys-mauve);
    box-shadow: 0 0 0 0.22rem rgba(179, 79, 189, 0.18);
}

.form-check-input:checked {
    background-color: var(--anthys-mauve-dark);
    border-color: var(--anthys-mauve-dark);
}

.text-primary {
    color: var(--anthys-mauve-dark) !important;
}

.bg-primary {
    background-color: var(--anthys-mauve-dark) !important;
}

.bg-white {
    background-color: var(--anthys-off-white) !important;
}

.card,
.dropdown-menu,
.modal-content {
    --bs-card-bg: var(--anthys-off-white);
    --bs-dropdown-bg: var(--anthys-off-white);
    --bs-modal-bg: var(--anthys-off-white);
}

.anthys-container {
    margin-left: auto;
    margin-right: auto;
    max-width: 1180px;
    padding-left: 1rem;
    padding-right: 1rem;
    width: 100%;
}

.anthys-page {
    background: var(--anthys-beige-light);
    min-height: calc(100vh - 76px);
    padding: 1.5rem 0 2.5rem;
}

.anthys-page-header {
    align-items: flex-start;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    margin-bottom: 1rem;
}

.anthys-page-title {
    color: var(--display-text, var(--anthys-anthracite));
    font-weight: 800;
}

.anthys-page-subtitle {
    color: var(--anthys-text-muted);
}

.anthys-grid {
    display: grid;
    gap: 1rem;
}

.anthys-grid--2 {
    grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
}

.anthys-grid--form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.anthys-card {
    background: var(--anthys-off-white);
    border: 1px solid var(--anthys-border);
    border-radius: 8px;
    box-shadow: 0 1rem 2rem rgba(23, 23, 23, 0.06);
}

.anthys-card__header {
    align-items: center;
    border-bottom: 1px solid var(--anthys-border);
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: 1rem;
}

.anthys-card__body {
    padding: 1rem;
}

.anthys-btn {
    border-radius: 8px;
    font-weight: 700;
}

.anthys-form-control {
    background-color: var(--anthys-off-white);
    border-color: var(--anthys-border);
    border-radius: 8px;
    display: block;
    min-height: 44px;
    padding: 0.65rem 0.8rem;
    width: 100%;
}

textarea.anthys-form-control {
    min-height: 96px;
    resize: vertical;
}

.anthys-form-control:focus {
    border-color: var(--anthys-mauve-dark);
    box-shadow: 0 0 0 0.22rem rgba(124, 54, 132, 0.14);
}

.anthys-badge {
    border-radius: 999px;
    display: inline-flex;
    font-size: 0.78rem;
    font-weight: 700;
    padding: 0.25rem 0.6rem;
}

.anthys-badge--soft {
    background: var(--display-soft, var(--anthys-mauve-light));
    color: var(--anthys-mauve-dark);
}

.anthys-badge--muted {
    background: var(--anthys-beige);
    color: var(--anthys-black-soft);
}

.anthys-badge--success {
    background: var(--display-success-surface, #dcfce7);
    color: var(--display-success-text, #166534);
}

.anthys-badge--warning {
    background: var(--display-warning-surface, #fef3c7);
    color: var(--display-warning-text, #92400e);
}

.anthys-badge--danger {
    background: var(--display-error-surface, #fee2e2);
    color: var(--display-invalid, #991b1b);
}

.anthys-table {
    margin: 0;
}

.anthys-table th {
    color: var(--anthys-text-muted);
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
}

.anthys-table td,
.anthys-table th {
    vertical-align: middle;
}

.anthys-equipment-image {
    align-items: center;
    background: var(--anthys-beige);
    border: 1px solid var(--anthys-border);
    border-radius: 8px;
    color: var(--anthys-text-muted);
    display: inline-flex;
    flex: 0 0 auto;
    height: 48px;
    justify-content: center;
    overflow: hidden;
    width: 64px;
}

.anthys-equipment-image--large {
    height: 190px;
    width: 100%;
}

.anthys-equipment-image img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.anthys-detail-list {
    display: grid;
    gap: 0.75rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0;
}

.anthys-detail-list dt {
    color: var(--anthys-text-muted);
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
}

.anthys-detail-list dd {
    color: var(--display-text, var(--anthys-anthracite));
    margin: 0.15rem 0 0;
}

.anthys-upload {
    border: 1px dashed var(--anthys-border);
    border-radius: 8px;
    padding: 1rem;
}

.anthys-upload.is-dragover {
    background: var(--anthys-beige-light);
    border-color: var(--anthys-mauve-dark);
}

.anthys-upload__preview {
    margin-bottom: 1rem;
}

.anthys-product-editor {
    padding-top: 2.25rem;
}

.anthys-product-editor .anthys-container {
    max-width: 1120px;
}

.anthys-product-editor__eyebrow {
    color: var(--anthys-mauve-dark);
    display: block;
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    margin-bottom: 0.35rem;
    text-transform: uppercase;
}

.anthys-product-editor .anthys-page-header {
    align-items: center;
    margin-bottom: 1.5rem;
}

.anthys-product-editor .anthys-page-title {
    font-size: clamp(1.75rem, 3vw, 2.25rem);
    letter-spacing: -0.035em;
}

.anthys-product-editor .anthys-grid--2 {
    align-items: start;
    gap: 1.5rem;
    grid-template-columns: minmax(0, 1fr) 340px;
}

.anthys-product-editor .anthys-card {
    border-radius: 16px;
    box-shadow: 0 16px 40px rgba(23, 23, 23, 0.07);
    overflow: hidden;
}

.anthys-product-editor .anthys-card__header,
.anthys-product-editor .anthys-card__body {
    padding: 1.4rem;
}

.anthys-card__hint {
    color: var(--anthys-text-muted);
    font-size: 0.88rem;
}

.anthys-field .form-label {
    color: var(--anthys-black-soft);
    font-size: 0.86rem;
    margin-bottom: 0.45rem;
}

.anthys-product-editor .anthys-grid--form {
    column-gap: 1rem;
    row-gap: 1.15rem;
}

.anthys-activation {
    align-items: flex-start;
    background: var(--anthys-beige-light);
    border: 1px solid var(--anthys-mauve-light);
    border-radius: 10px;
    display: flex;
    gap: 0.75rem;
    padding: 0.9rem 1rem;
}

.anthys-activation .form-check-input {
    flex: 0 0 auto;
    height: 1.15rem;
    margin: 0.15rem 0 0;
    width: 1.15rem;
}

.anthys-activation p {
    color: var(--anthys-text-muted);
    font-size: 0.82rem;
}

.anthys-product-editor .anthys-upload {
    background: var(--anthys-beige-light);
    border-radius: 12px;
    padding: 0.75rem;
    text-align: center;
}

.anthys-product-editor .anthys-upload__preview {
    margin-bottom: 0.9rem;
}

.anthys-product-editor .anthys-equipment-image--large {
    border: 0;
    border-radius: 9px;
    height: 190px;
}

.anthys-upload__copy {
    align-items: center;
    color: var(--anthys-black-soft);
    display: flex;
    gap: 0.7rem;
    margin: 0.75rem 0;
    text-align: left;
}

.anthys-upload__copy > i {
    color: var(--anthys-mauve-dark);
    font-size: 1.5rem;
}

.anthys-upload__copy span {
    color: var(--anthys-text-muted);
    display: block;
    font-size: 0.76rem;
}

.anthys-product-editor .anthys-upload input[type="file"] {
    background: var(--anthys-off-white);
    border: 1px solid var(--anthys-border);
    border-radius: 8px;
    color: var(--anthys-text-muted);
    cursor: pointer;
    font-size: 0.8rem;
    padding: 0.35rem;
    width: 100%;
}

.anthys-product-editor .form-text {
    color: var(--anthys-text-muted);
    font-size: 0.75rem;
    margin-top: 0.65rem;
    text-align: left;
}

.anthys-actions--editor {
    justify-content: flex-end;
}

.anthys-actions--editor .btn-primary {
    background: var(--anthys-mauve-dark);
    border-color: var(--anthys-mauve-dark);
}

/* Professional hardware catalog */
.catalog-page { background:var(--anthys-beige-light); color:var(--display-text, var(--anthys-anthracite)); }
.catalog-hero { background:var(--anthys-gradient),url('/assets/img/site/tianyi-ma-WiONHd_zYI4-unsplash.jpg') center/cover; color:var(--display-on-strong, #fff); padding:4.5rem 0 4rem; }
.catalog-hero__content { max-width:760px; }
.catalog-kicker { align-items:center; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.18); border-radius:999px; display:inline-flex; font-size:.82rem; font-weight:800; gap:.5rem; letter-spacing:.03em; margin-bottom:1rem; padding:.45rem .75rem; text-transform:uppercase; }
.catalog-kicker--light { background:var(--display-soft, var(--anthys-mauve-light)); border-color:var(--anthys-mauve-light); color:var(--anthys-mauve-dark); }
.catalog-hero h1 { font-size:clamp(2.35rem,6vw,4.6rem); font-weight:850; letter-spacing:-.055em; line-height:1; margin-bottom:1rem; max-width:750px; }
.catalog-hero p { color:rgba(255,255,255,.8); font-size:1.05rem; max-width:680px; }
.catalog-hero .catalog-hero__lead { color:var(--display-on-strong, #fff); font-size:clamp(1.15rem,2.2vw,1.45rem); font-weight:700; }
.catalog-hero .btn,.catalog-cta .btn { border-radius:9px; font-weight:750; }
.catalog-nav { background: var(--anthys-off-white); border-bottom:1px solid var(--anthys-border); position:sticky; top:0; z-index:1020; }
.catalog-nav__inner { display:flex; gap:1.6rem; overflow-x:auto; scrollbar-width:none; }
.catalog-nav a { color:var(--anthys-text-muted); flex:0 0 auto; font-size:.88rem; font-weight:750; padding:1rem 0; text-decoration:none; }
.catalog-nav a:hover { color:var(--anthys-mauve-dark); }
.catalog-section { padding:4.5rem 0; scroll-margin-top:55px; }
.catalog-section--soft { background:var(--anthys-beige); }
.catalog-section--dark { background:var(--anthys-anthracite); color:var(--display-on-strong, #fff); }
.catalog-heading { margin-bottom:1.75rem; max-width:760px; }
.catalog-heading>span { color:var(--anthys-mauve-dark); font-size:.78rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.catalog-section--dark .catalog-heading>span { color:var(--anthys-mauve-light); }
.catalog-heading h2 { font-size:clamp(1.75rem,3.5vw,2.7rem); font-weight:850; letter-spacing:-.035em; margin:.2rem 0 .55rem; }
.catalog-heading p { color:var(--anthys-text-muted); font-size:1.02rem; margin:0; }
.catalog-section--dark .catalog-heading p { color:var(--display-on-strong-muted, var(--anthys-beige)); }
.catalog-grid { display:grid; gap:1.25rem; grid-template-columns:repeat(3,minmax(0,1fr)); }
.catalog-card { background: var(--anthys-off-white); border:1px solid var(--anthys-border); border-radius:14px; box-shadow:0 12px 32px rgba(23, 23, 23, .06); display:flex; flex-direction:column; min-width:0; overflow:hidden; transition:transform .2s,box-shadow .2s; }
.catalog-card:hover { box-shadow:0 18px 42px rgba(23, 23, 23, .1); transform:translateY(-3px); }
.catalog-card__image { aspect-ratio:16/10; background:var(--anthys-beige); display:block; overflow:hidden; }
.catalog-card__image img { height:100%; object-fit:contain; width:100%; }
.catalog-card__placeholder { align-items:center; color:var(--anthys-text-muted); display:flex; flex-direction:column; gap:.5rem; height:100%; justify-content:center; }
.catalog-card__placeholder i { color:var(--anthys-mauve-dark); font-size:2.6rem; }
.catalog-card__body { display:flex; flex:1; flex-direction:column; padding:1.25rem; }
.catalog-card__meta { align-items:center; display:flex; font-size:.75rem; font-weight:800; justify-content:space-between; margin-bottom:.65rem; text-transform:uppercase; }
.catalog-card__meta span { color:var(--anthys-mauve-dark); }.catalog-card__meta strong,.quote-pill { background:var(--anthys-beige); border-radius:999px; color:var(--anthys-black-soft); padding:.3rem .55rem; }
.catalog-card__price { color:var(--display-text, var(--anthys-anthracite)); font-size:1.45rem; font-weight:850; letter-spacing:-.025em; margin:-.1rem 0 .75rem; }
.catalog-card h3 { font-size:1.18rem; font-weight:850; }.catalog-card h3 a { color:var(--display-text, var(--anthys-anthracite)); text-decoration:none; }
.catalog-card p { color:var(--anthys-text-muted); font-size:.9rem; line-height:1.55; }.catalog-card__model { color:var(--anthys-black-soft)!important; font-weight:700; margin-bottom:.4rem; }.catalog-card__usage { color:var(--anthys-text-muted)!important; font-weight:650; }
.catalog-card__services { border-top:1px solid var(--anthys-border); display:grid; gap:.25rem; margin-top:.35rem; padding-top:.7rem; }.catalog-card__services strong { color:var(--anthys-black-soft); font-size:.76rem; text-transform:uppercase; }.catalog-card__services span { color:var(--anthys-text-muted); font-size:.78rem; }.catalog-card__services i { color:var(--anthys-mauve-dark); margin-right:.3rem; }
.catalog-card__actions { display:flex; gap:.5rem; margin-top:auto; padding-top:.8rem; }.catalog-card__actions .btn { border-radius:8px; flex:1; font-size:.78rem; font-weight:750; padding:.55rem .4rem; }.catalog-card__actions .btn-primary,.product-detail .btn-primary { background:var(--anthys-mauve-dark); border-color:var(--anthys-mauve-dark); }
.catalog-empty { background: var(--anthys-off-white); border:1px dashed var(--anthys-border); border-radius:14px; color:var(--anthys-text-muted); padding:2.5rem; text-align:center; }.catalog-empty>i { color:var(--anthys-mauve-dark); font-size:2.5rem; }.catalog-empty h3 { color:var(--display-text, var(--anthys-anthracite)); margin-top:.75rem; }.catalog-empty--compact { padding:1.5rem; }.catalog-empty--compact p { margin-bottom:.35rem; }
.service-grid { display:grid; gap:1rem; grid-template-columns:repeat(3,minmax(0,1fr)); }.service-grid article { background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); border-radius:12px; padding:1.3rem; }.service-grid i { color:var(--anthys-mauve-light); font-size:1.7rem; }.service-grid h3 { font-size:1.03rem; font-weight:800; margin:.7rem 0 .4rem; }.service-grid p { color:var(--display-on-strong-muted, var(--anthys-beige)); font-size:.88rem; margin:0; }
.qr-feature { align-items:center; background: var(--anthys-off-white); border:1px solid var(--anthys-border); border-radius:16px; display:flex; justify-content:space-between; padding:2.25rem; }.qr-feature>div { max-width:720px; }.qr-feature span { color:var(--anthys-mauve-dark); font-size:.78rem; font-weight:850; text-transform:uppercase; }.qr-feature h2 { font-weight:850; margin:.35rem 0 .6rem; }.qr-feature p { color:var(--anthys-text-muted); margin:0; }.qr-feature>i { color:var(--anthys-mauve-dark); font-size:6rem; }
.catalog-cta { background:var(--display-strong, var(--anthys-mauve-dark)); color:var(--display-on-strong, #fff); padding:3rem 0; }.catalog-cta .anthys-container { align-items:center; display:flex; gap:2rem; justify-content:space-between; }.catalog-cta h2 { font-weight:850; }.catalog-cta p { color:var(--anthys-mauve-light); margin:0; max-width:700px; }
.product-back { color:var(--anthys-text-muted); display:inline-block; font-weight:700; margin-bottom:1.25rem; text-decoration:none; }.product-detail__hero { align-items:center; display:grid; gap:3rem; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }.product-detail__image { align-items:center; aspect-ratio:4/3; background:var(--anthys-beige); border-radius:18px; display:flex; justify-content:center; overflow:hidden; }.product-detail__image img { height:100%; object-fit:contain; width:100%; }.product-detail__image>i { color:var(--anthys-mauve-dark); font-size:6rem; }.product-detail h1 { font-size:clamp(2rem,4vw,3.5rem); font-weight:850; letter-spacing:-.045em; }.product-detail__model { color:var(--anthys-mauve-dark); font-weight:800; }.product-detail__lead { color:var(--anthys-black-soft); font-size:1.2rem; font-weight:650; }.quote-pill { display:inline-block; font-size:.8rem; font-weight:800; }.product-block { background: var(--anthys-off-white); border:1px solid var(--anthys-border); border-radius:14px; margin-top:1.5rem; padding:1.6rem; }.product-block h2 { font-size:1.35rem; font-weight:850; }.product-detail__grid { display:grid; gap:1.5rem; grid-template-columns:1fr 1fr; }.product-detail__grid .product-block { margin-top:1.5rem; }
.product-detail__price { color:var(--display-text, var(--anthys-anthracite)); font-size:1.8rem; font-weight:850; margin:.75rem 0; }

/* Hardware administration */
.hardware-admin .anthys-container { max-width:1240px; }.hardware-admin-nav { background: var(--anthys-off-white); border:1px solid var(--anthys-border); border-radius:12px; display:flex; gap:.35rem; margin-bottom:1.5rem; overflow-x:auto; padding:.4rem; }.hardware-admin-nav a { border-radius:8px; color:var(--anthys-text-muted); flex:0 0 auto; font-size:.87rem; font-weight:750; padding:.65rem .85rem; text-decoration:none; }.hardware-admin-nav a.active { background:var(--display-soft, var(--anthys-mauve-light)); color:var(--anthys-mauve-dark); }.admin-stat-grid { display:grid; gap:1rem; grid-template-columns:repeat(4,1fr); }.admin-stat-grid article { background: var(--anthys-off-white); border:1px solid var(--anthys-border); border-radius:14px; display:grid; padding:1.3rem; }.admin-stat-grid i { color:var(--anthys-mauve-dark); font-size:1.35rem; }.admin-stat-grid strong { color:var(--display-text, var(--anthys-anthracite)); font-size:2rem; line-height:1.2; margin-top:.5rem; }.admin-stat-grid span { color:var(--anthys-text-muted); font-size:.85rem; }.admin-quick { align-items:center; display:flex; justify-content:space-between; }.admin-filters { background: var(--anthys-off-white); border:1px solid var(--anthys-border); border-radius:12px; display:grid; gap:.7rem; grid-template-columns:2fr repeat(3,1fr) auto; margin-bottom:1rem; padding:1rem; }.admin-product-cell { align-items:center; display:flex; gap:.7rem; min-width:190px; }.admin-product-cell small { color:var(--anthys-text-muted); display:block; }.admin-row-actions { display:flex; gap:.35rem; justify-content:flex-end; }.admin-row-actions form { margin:0; }.admin-empty { color:var(--anthys-text-muted); padding:2.5rem; text-align:center; }.admin-empty i { color:var(--anthys-mauve-dark); font-size:2.4rem; }.admin-empty h2 { color:var(--display-text, var(--anthys-anthracite)); font-size:1.3rem; margin-top:.6rem; }.admin-card-grid { display:grid; gap:1rem; grid-template-columns:repeat(3,1fr); }.admin-card-grid p { color:var(--anthys-text-muted); min-height:2.7rem; }.admin-simple-form { margin:auto; max-width:850px; }.admin-field-wide { grid-column:1/-1; }.admin-editor-layout { display:grid; gap:1.5rem; grid-template-columns:minmax(0,1fr) 340px; }.admin-toggle-list { display:grid; gap:.65rem; }.admin-toggle-list>div,.admin-service-choices .form-check { align-items:center; display:flex; gap:.55rem; }.admin-toggle-list input,.admin-service-choices input { flex:0 0 auto; }.admin-service-choices>fieldset>div { display:grid; gap:.6rem; grid-template-columns:repeat(2,1fr); }.admin-sticky-actions { background: var(--anthys-off-white); border:1px solid var(--anthys-border); border-radius:12px; display:flex; gap:.5rem; justify-content:flex-end; padding:1rem; position:sticky; top:1rem; }

@media(max-width:991.98px){.catalog-grid{grid-template-columns:repeat(2,1fr)}.service-grid{grid-template-columns:repeat(2,1fr)}.admin-stat-grid{grid-template-columns:repeat(2,1fr)}.admin-filters{grid-template-columns:repeat(2,1fr)}.admin-filters button{grid-column:1/-1}.admin-card-grid{grid-template-columns:repeat(2,1fr)}.admin-editor-layout{grid-template-columns:1fr}.admin-sticky-actions{position:static}.product-detail__hero{gap:1.5rem}.catalog-section{padding:3.5rem 0}}
@media(max-width:575.98px){.catalog-hero{padding:3rem 0}.catalog-grid,.service-grid,.admin-stat-grid,.admin-filters,.admin-card-grid,.product-detail__hero,.product-detail__grid{grid-template-columns:1fr}.catalog-section{padding:2.75rem 0}.catalog-card__actions{flex-direction:column}.qr-feature{align-items:flex-start; padding:1.4rem}.qr-feature>i{font-size:3.5rem}.catalog-cta .anthys-container,.admin-quick{align-items:stretch; flex-direction:column}.admin-service-choices>fieldset>div{grid-template-columns:1fr}.admin-row-actions{justify-content:flex-start}.hardware-admin .anthys-table th:nth-child(3),.hardware-admin .anthys-table td:nth-child(3),.hardware-admin .anthys-table th:nth-child(5),.hardware-admin .anthys-table td:nth-child(5){display:none}}

@media (max-width: 860px) {
    .anthys-product-editor .anthys-grid--2 {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 576px) {
    .anthys-product-editor {
        padding-top: 1.25rem;
    }

    .anthys-product-editor .anthys-page-header {
        align-items: stretch;
        flex-direction: column;
    }

    .anthys-product-editor .anthys-grid--form {
        grid-template-columns: 1fr;
    }
}

.anthys-empty-state {
    color: var(--anthys-text-muted);
    padding: 2rem;
    text-align: center;
}

.anthys-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

img,
svg,
video,
iframe {
    max-width: 100%;
}

img {
    height: auto;
}

iframe,
video {
    display: block;
}

.container,
.container-fluid {
    min-width: 0;
}

.module-video {
    margin: 0 auto 2rem;
    max-width: 1040px;
}

.module-video__heading {
    margin: 0 auto 1.5rem;
    max-width: 760px;
    text-align: center;
}

.module-video__heading h2 {
    color: var(--display-text, var(--anthys-anthracite));
    font-size: clamp(1.8rem, 3.5vw, 2.8rem);
    font-weight: 850;
    line-height: 1.1;
    margin: .75rem 0;
}

.module-video__heading p {
    color: var(--anthys-text-muted);
    font-size: 1.05rem;
    line-height: 1.65;
    margin: 0;
}

.module-video__eyebrow {
    align-items: center;
    background: var(--display-soft, var(--anthys-mauve-light));
    border-radius: 999px;
    color: var(--anthys-mauve-dark);
    display: inline-flex;
    font-size: .82rem;
    font-weight: 800;
    gap: .45rem;
    letter-spacing: .04em;
    padding: .45rem .75rem;
    text-transform: uppercase;
}

.module-video__frame {
    aspect-ratio: 16 / 9;
    background: linear-gradient(135deg, var(--anthys-anthracite) 0%, var(--anthys-anthracite) 55%, var(--anthys-mauve-dark) 140%);
    border: 1px solid rgba(124, 54, 132, .3);
    border-radius: 12px;
    box-shadow: 0 1rem 2.5rem rgba(23, 23, 23, .16);
    overflow: hidden;
    position: relative;
}

.module-video__frame iframe,
.module-video__thumbnail {
    border: 0;
    height: 100%;
    width: 100%;
}

.module-video__thumbnail {
    inset: 0;
    object-fit: cover;
    position: absolute;
}

.module-video__load {
    align-items: center;
    background: linear-gradient(180deg, rgba(23, 23, 23, .08), rgba(23, 23, 23, .7));
    border: 0;
    color: var(--display-on-strong, #fff);
    cursor: pointer;
    display: flex;
    flex-direction: column;
    gap: .85rem;
    height: 100%;
    justify-content: center;
    padding: 1.5rem;
    position: absolute;
    inset: 0;
    text-align: center;
    width: 100%;
}

.module-video__load > span:not(.module-video__play) {
    font-size: clamp(1.1rem, 2.5vw, 1.45rem);
    font-weight: 800;
    text-shadow: 0 2px 8px rgba(0, 0, 0, .8);
}

.module-video__load small { color: rgba(255, 255, 255, .9); text-shadow: 0 1px 5px rgba(0, 0, 0, .9); }

.module-video__play {
    align-items: center;
    background: var(--anthys-mauve-dark);
    border-radius: 50%;
    box-shadow: 0 .5rem 1.5rem rgba(0, 0, 0, .25);
    display: inline-flex;
    font-size: 2rem;
    height: 4.5rem;
    justify-content: center;
    transition: transform .2s ease, background-color .2s ease;
    width: 4.5rem;
}

.module-video__load:hover .module-video__play,
.module-video__load:focus-visible .module-video__play {
    background: var(--anthys-mauve-dark);
    transform: scale(1.06);
}

.module-video__load:focus-visible { outline: 3px solid var(--anthys-mauve-light); outline-offset: -5px; }

@media (max-width: 575.98px) {
    .module-video__heading { text-align: left; }
    .module-video__frame { border-radius: 8px; }
    .module-video__load small { max-width: 16rem; }
    .module-video__play { font-size: 1.55rem; height: 3.5rem; width: 3.5rem; }
}

.row > * {
    min-width: 0;
}

.btn,
.badge,
.nav-link,
.footer-link {
    white-space: normal;
}

.btn {
    min-height: 2.65rem;
}

.site-navbar .navbar-brand img {
    height: 48px;
    width: 48px;
}

.site-navbar {
    overflow: visible;
    position: relative;
    z-index: 1060;
}

.site-navbar button.nav-link {
    background: transparent;
    border: 0;
}

.site-navbar .navbar-toggler {
    border-radius: 8px;
}

.site-navbar .navbar-collapse {
    min-width: 0;
    overflow: visible;
}

.site-navbar .navbar-nav {
    gap: 0.1rem;
    overflow: visible;
}

.site-navbar .nav-item.dropdown {
    position: relative;
}

.site-navbar .dropdown-menu {
    background: var(--display-paper, rgba(255, 255, 255, 0.98));
    border: 1px solid rgba(23, 23, 23, 0.10);
    border-radius: 8px;
    box-shadow: 0 1.25rem 2.5rem rgba(23, 23, 23, 0.12);
    display: none;
    min-width: 14.5rem;
    padding: 0.45rem;
    z-index: 1050;
}

.site-navbar .dropdown-menu.show {
    display: block;
}

.site-navbar .dropdown-item {
    align-items: center;
    border-radius: 8px;
    color: var(--anthys-black-soft);
    display: flex;
    font-weight: 700;
    gap: 0.65rem;
    padding: 0.65rem 0.75rem;
}

.site-navbar .dropdown-item i {
    color: var(--anthys-mauve-dark);
    font-size: 1rem;
}

.site-navbar .dropdown-item:hover,
.site-navbar .dropdown-item:focus {
    background: var(--display-soft, rgba(124, 54, 132, 0.08));
    color: var(--display-text, var(--anthys-anthracite));
}

.site-navbar .dropdown-item.active,
.site-navbar .dropdown-item:active {
    background: var(--anthys-mauve-dark);
    color: var(--display-on-strong, #ffffff);
}

.site-navbar .dropdown-item.active i,
.site-navbar .dropdown-item:active i {
    color: var(--display-on-strong, #ffffff);
}

@media (min-width: 992px) {
    .site-navbar .anthys-dropdown {
        left: 50%;
        margin-top: 0.65rem;
        right: auto;
        transform: translateX(-50%);
    }
}

.site-footer {
    overflow-wrap: anywhere;
}

.table-responsive {
    -webkit-overflow-scrolling: touch;
}

.login-page {
    align-items: center;
    display: flex;
    flex: 1;
    min-height: calc(100vh - 76px);
}

.login-card {
    background: var(--display-paper, rgba(255, 255, 255, 0.94));
    border: 1px solid rgba(23, 23, 23, 0.10);
    border-radius: 8px;
    box-shadow: 0 1.25rem 3rem rgba(23, 23, 23, 0.10);
    max-width: 460px;
    padding: 2rem;
}

.login-card__header {
    align-items: center;
    display: flex;
    gap: 1rem;
    margin-bottom: 1.75rem;
}

.login-card__logo {
    border-radius: 8px;
    box-shadow: 0 0.75rem 1.75rem rgba(23, 23, 23, 0.12);
    flex: 0 0 auto;
}

.login-card__eyebrow {
    color: var(--anthys-mauve-dark);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0;
    margin: 0 0 0.15rem;
    text-transform: uppercase;
}

.login-card h1 {
    color: var(--display-text, var(--anthys-anthracite));
    font-size: 1.75rem;
    font-weight: 800;
    line-height: 1.15;
    margin: 0;
}

.login-card .form-label {
    color: var(--anthys-black-soft);
    font-weight: 700;
}

.login-card .form-control {
    border-color: var(--anthys-border);
    border-radius: 8px;
}

.login-card .form-control:focus {
    border-color: var(--anthys-mauve-dark);
    box-shadow: 0 0 0 0.22rem rgba(124, 54, 132, 0.14);
}

.login-card .btn-primary {
    background: var(--anthys-mauve-dark);
    border-color: var(--anthys-mauve-dark);
    border-radius: 8px;
    font-weight: 800;
}

.login-card .btn-primary:hover,
.login-card .btn-primary:focus {
    background: var(--anthys-mauve-dark);
    border-color: var(--anthys-mauve-dark);
}

.login-card__status {
    align-items: flex-start;
    background: var(--anthys-beige-light);
    border: 1px solid var(--anthys-mauve-light);
    border-radius: 8px;
    color: var(--anthys-black-soft);
    display: grid;
    gap: 0.35rem 0.6rem;
    grid-template-columns: auto minmax(0, 1fr);
    padding: 0.85rem 1rem;
}

.login-card__status a {
    color: var(--anthys-mauve-dark);
    font-weight: 800;
    grid-column: 2;
}

.cookie-consent__panel {
    align-items: flex-start;
    background: var(--anthys-off-white);
    border: 1px solid var(--anthys-border);
    border-radius: 8px;
    box-shadow: 0 1.5rem 4rem rgba(23, 23, 23, 0.22);
    display: grid;
    gap: 1rem;
    grid-template-columns: auto minmax(0, 1fr) auto;
    margin: 0 auto;
    max-width: 980px;
    padding: 1.2rem;
}

.cookie-consent__icon {
    align-items: center;
    background: var(--display-soft, var(--anthys-mauve-light));
    border-radius: 8px;
    color: var(--anthys-mauve-dark);
    display: inline-flex;
    font-size: 1.35rem;
    height: 3rem;
    justify-content: center;
    width: 3rem;
}

.cookie-consent__content h2 {
    color: var(--display-text, var(--anthys-anthracite));
    font-size: 1.1rem;
    font-weight: 800;
    margin: 0 0 0.35rem;
}

.cookie-consent__content p {
    color: var(--anthys-text-muted);
    line-height: 1.55;
    margin: 0;
}

.cookie-consent__list {
    color: var(--anthys-black-soft);
    display: flex;
    flex-wrap: wrap;
    font-size: 0.9rem;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.cookie-consent__list span {
    background: var(--anthys-beige-light);
    border: 1px solid var(--anthys-border);
    border-radius: 999px;
    padding: 0.35rem 0.65rem;
}

.cookie-consent__actions {
    display: grid;
    gap: 0.5rem;
    min-width: 150px;
}

@media (max-width: 767.98px) {
    body {
        font-size: 0.97rem;
    }

    .container,
    .container-fluid {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .anthys-page-header {
        flex-direction: column;
    }

    .anthys-grid--2,
    .anthys-grid--form,
    .anthys-detail-list {
        grid-template-columns: 1fr;
    }

    .navbar .container-fluid {
        gap: 0.75rem;
    }

    .site-navbar .navbar-nav {
        padding: 0.75rem 0 0.25rem;
        text-align: left !important;
    }

    .site-navbar .nav-link {
        border-radius: 8px;
        padding: 0.7rem 0.85rem;
    }

    .site-navbar .nav-link.active {
        background: var(--display-soft, rgba(124, 54, 132, 0.08));
    }

    .site-navbar .dropdown-menu {
        border: 0;
        box-shadow: none;
        margin: 0 0 0.5rem;
        padding: 0.25rem 0 0.25rem 0.75rem;
        position: static;
        width: 100%;
    }

    main [class*="-hero"],
    .hero-section {
        padding-bottom: 2.75rem !important;
        padding-top: 2.75rem !important;
    }

    .section-band {
        padding-bottom: 2.75rem !important;
        padding-top: 2.75rem !important;
    }

    .display-6,
    main h1 {
        overflow-wrap: anywhere;
    }

    .card,
    [class$="-card"],
    [class$="-panel"],
    .quote-panel,
    .quote-form-card,
    .quote-summary-card,
    .contact-form-card,
    .contact-side {
        border-radius: 8px !important;
    }

    .hero-actions,
    .offer-actions,
    .module-actions {
        width: 100%;
    }

    .hero-actions .btn,
    .offer-actions .btn,
    .module-actions .btn,
    .cta-panel .btn,
    .offer-note .btn,
    .quote-form-card .btn,
    .contact-form-card .btn {
        width: 100%;
    }

    .product-frame,
    .preview-panel,
    .demo-player {
        margin-left: -0.25rem;
        margin-right: -0.25rem;
    }

    .cookie-consent {
        bottom: 0.75rem;
        left: 0.75rem;
        right: 0.75rem;
    }

    .cookie-consent__panel {
        grid-template-columns: 1fr;
        padding: 1rem;
    }

    .cookie-consent__actions {
        grid-template-columns: 1fr;
    }

    .login-page {
        align-items: flex-start;
        min-height: auto;
    }

    .login-card {
        padding: 1.35rem;
    }

    .login-card__header {
        align-items: flex-start;
    }

    .login-card h1 {
        font-size: 1.45rem;
    }
}

.peripheral-page {
    background: var(--anthys-beige-light);
    color: var(--display-text, var(--anthys-anthracite));
    min-height: calc(100vh - 76px);
}

.peripheral-hero {
    background: var(--anthys-anthracite);
    color: var(--display-on-strong, #ffffff);
    padding: 4rem 0 3.25rem;
}

.peripheral-hero__content {
    max-width: 820px;
}

.peripheral-kicker {
    color: var(--anthys-mauve-light);
    font-size: 0.9rem;
    font-weight: 800;
    letter-spacing: 0;
    margin-bottom: 0.8rem;
    text-transform: uppercase;
}

.peripheral-hero h1 {
    font-size: clamp(2rem, 4vw, 3.5rem);
    font-weight: 800;
    line-height: 1.08;
    margin-bottom: 1rem;
}

.peripheral-hero p:not(.peripheral-kicker) {
    color: rgba(255, 255, 255, 0.82);
    font-size: 1.08rem;
    line-height: 1.65;
    margin-bottom: 1.5rem;
    max-width: 760px;
}

.peripheral-section {
    padding: 3.25rem 0;
}

.peripheral-section__header {
    margin-bottom: 1.5rem;
    max-width: 760px;
}

.peripheral-section__header h2 {
    font-size: clamp(1.6rem, 3vw, 2.4rem);
    font-weight: 800;
    line-height: 1.12;
    margin-bottom: 0.6rem;
}

.peripheral-section__header p {
    color: var(--anthys-text-muted);
    line-height: 1.6;
    margin-bottom: 0;
}

.peripheral-public-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.peripheral-category-title {
    color: var(--display-text, var(--anthys-anthracite));
    font-size: 1.05rem;
    font-weight: 800;
    grid-column: 1 / -1;
    margin: 1.1rem 0 0;
}

.peripheral-category-title:first-child {
    margin-top: 0;
}

.peripheral-public-card {
    background: var(--anthys-off-white);
    border: 1px solid var(--anthys-border);
    border-radius: 8px;
    box-shadow: 0 10px 24px rgba(23, 23, 23, 0.05);
    display: flex;
    flex-direction: column;
    min-height: 100%;
    overflow: hidden;
}

.peripheral-public-image {
    aspect-ratio: 16 / 10;
    background: var(--anthys-beige);
    border-bottom: 1px solid var(--anthys-border);
    overflow: hidden;
}

.peripheral-public-image img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.peripheral-public-content {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 1rem;
}

.peripheral-public-meta {
    color: var(--anthys-text-muted);
    font-size: 0.78rem;
    font-weight: 800;
    margin-bottom: 0.4rem;
    text-transform: uppercase;
}

.peripheral-public-content h3 {
    font-size: 1.08rem;
    font-weight: 800;
    line-height: 1.25;
    margin-bottom: 0.55rem;
}

.peripheral-public-content p {
    color: var(--anthys-text-muted);
    line-height: 1.55;
}

.peripheral-public-usage {
    color: var(--anthys-text-muted) !important;
    font-size: 0.92rem;
    font-weight: 700;
    margin-bottom: 0.6rem;
}

@media (max-width: 991.98px) {
    .peripheral-public-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .peripheral-hero {
        padding: 2.5rem 0 2.25rem;
    }

    .peripheral-section {
        padding: 2.25rem 0;
    }

    .peripheral-public-grid {
        grid-template-columns: 1fr;
    }

    .peripheral-public-card .btn,
    .peripheral-hero .btn {
        width: 100%;
    }
}

@media (min-width: 768px) and (max-width: 1199.98px) {
    .site-navbar .navbar-nav {
        font-size: 0.95rem;
    }
}

.site-navbar__brand-name {
    font-size: 1.05rem;
    font-weight: 850;
    letter-spacing: -0.02em;
    margin-left: 0.65rem;
}

.site-navbar__primary {
    flex: 1;
    justify-content: center;
}

.site-navbar__secondary {
    align-items: center;
    margin-left: auto;
}

.site-navbar .nav-link--secondary {
    color: var(--anthys-text-muted);
    font-size: 0.86rem;
}

.site-navbar .nav-link--admin {
    align-items: center;
    display: inline-flex;
    gap: 0.35rem;
}

.site-navbar__admin-label {
    font-size: 0.86rem;
}

@media (min-width: 992px) {
    .site-navbar .container-fluid {
        padding-left: clamp(1rem, 2.5vw, 2.5rem);
        padding-right: clamp(1rem, 2.5vw, 2.5rem);
    }

    .site-navbar__secondary .anthys-dropdown {
        left: auto;
        right: 0;
        transform: none;
    }
}

@media (max-width: 1199.98px) and (min-width: 992px) {
    .site-navbar__brand-name,
    .site-navbar__admin-label {
        display: none;
    }

    .site-navbar .nav-link {
        padding-left: 0.55rem;
        padding-right: 0.55rem;
    }
}

@media (max-width: 991.98px) {
    .site-navbar .navbar-collapse {
        padding-bottom: 0.75rem;
    }

    .site-navbar .navbar-nav {
        align-items: stretch;
        padding-top: 0.6rem;
        text-align: left !important;
    }

    .site-navbar__secondary {
        border-top: 1px solid rgba(23, 23, 23, 0.09);
        margin-left: 0;
        margin-top: 0.45rem;
        padding-top: 0.45rem !important;
    }

    .site-navbar .nav-link {
        border-radius: 8px;
        padding: 0.7rem 0.85rem;
        width: 100%;
    }

    .site-navbar .nav-link.active {
        background: var(--display-soft, rgba(124, 54, 132, 0.08));
    }

    .site-navbar .dropdown-menu {
        border: 0;
        box-shadow: none;
        margin: 0 0 0.5rem;
        padding: 0.25rem 0 0.25rem 0.75rem;
        position: static;
        transform: none;
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

.module-discovery {
    padding: 4.5rem 0;
}

.module-discovery__heading {
    align-items: end;
    display: flex;
    gap: 2rem;
    justify-content: space-between;
    margin-bottom: 1.5rem;
}

.module-discovery__eyebrow {
    color: var(--anthys-mauve-dark);
    display: inline-flex;
    font-size: 0.86rem;
    font-weight: 800;
    gap: 0.4rem;
    letter-spacing: 0.035em;
    margin-bottom: 0.65rem;
    text-transform: uppercase;
}

.module-discovery__heading h2 {
    font-size: clamp(1.75rem, 3vw, 2.6rem);
    font-weight: 850;
    line-height: 1.1;
    margin-bottom: 0.65rem;
}

.module-discovery__heading p,
.module-discovery__card-copy span,
.module-discovery__cta p {
    color: var(--anthys-text-muted);
    line-height: 1.6;
}

.module-discovery__heading p {
    margin: 0;
    max-width: 650px;
}

.module-discovery__all,
.module-discovery__quote {
    color: var(--anthys-mauve-dark);
    font-weight: 800;
    text-decoration: none;
}

.module-discovery__all {
    flex: 0 0 auto;
}

.module-discovery__all:hover,
.module-discovery__all:focus,
.module-discovery__quote:hover,
.module-discovery__quote:focus {
    color: var(--display-text, var(--anthys-anthracite));
    text-decoration: underline;
}

.module-discovery__grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.module-discovery__card {
    align-items: flex-start;
    background: var(--anthys-off-white);
    border: 1px solid var(--anthys-border);
    border-radius: 10px;
    box-shadow: 0 0.3rem 1rem rgba(23, 23, 23, 0.045);
    color: var(--display-text, var(--anthys-anthracite));
    display: grid;
    gap: 0.85rem;
    grid-template-columns: auto minmax(0, 1fr) auto;
    min-height: 100%;
    padding: 1.25rem;
    text-decoration: none;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.module-discovery__card:hover,
.module-discovery__card:focus-visible {
    border-color: var(--anthys-mauve-dark);
    box-shadow: 0 0.55rem 1.25rem rgba(23, 23, 23, 0.08);
    color: var(--display-text, var(--anthys-anthracite));
    transform: translateY(-2px);
}

.module-discovery__icon {
    align-items: center;
    background: var(--display-soft, var(--anthys-mauve-light));
    border-radius: 8px;
    color: var(--anthys-mauve-dark);
    display: inline-flex;
    height: 2.5rem;
    justify-content: center;
    width: 2.5rem;
}

.module-discovery__card-copy {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.module-discovery__card-copy strong {
    font-size: 1.02rem;
    line-height: 1.3;
}

.module-discovery__card-copy span {
    font-size: 0.92rem;
}

.module-discovery__arrow {
    color: var(--anthys-mauve-dark);
    margin-top: 0.65rem;
}

.module-discovery__cta {
    background: var(--anthys-off-white);
    border: 1px solid var(--anthys-border);
    border-left: 4px solid var(--anthys-mauve-dark);
    border-radius: 10px;
    box-shadow: 0 0.3rem 1rem rgba(23, 23, 23, 0.045);
    margin-top: 2rem;
    padding: 2rem;
    text-align: center;
}

.module-discovery__cta p {
    margin: 0 auto 1.25rem;
    max-width: 740px;
}

.module-discovery__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: center;
}

.module-discovery__quote {
    display: inline-block;
    font-size: 0.92rem;
    margin-top: 0.9rem;
}

@media (max-width: 1199.98px) {
    .module-discovery__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .module-discovery {
        padding: 3.25rem 0;
    }

    .module-discovery__heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.75rem;
    }

    .module-discovery__grid {
        grid-template-columns: 1fr;
    }

    .module-discovery__cta {
        padding: 1.5rem;
    }
}

@media (max-width: 575.98px) {
    .module-discovery__actions .btn {
        width: 100%;
    }
}

/* Accueil : une surface forte, une preuve lisible et des compositions éditoriales. */
.home-page {
    --home-ink: var(--display-text, #27232b);
    --home-muted: var(--display-muted, #605a63);
    --home-plum: var(--display-strong, #39243e);
    --home-space: clamp(3rem, 5vw, 5rem);
    --home-gap: clamp(1.5rem, 3.4vw, 3.5rem);
    --bs-heading-color: currentColor;
    color: var(--home-ink);
    background: var(--anthys-off-white);
}
.home-page *, .home-page *::before, .home-page *::after { box-sizing: border-box; }
.home-page .container { width: 100%; max-width: 1440px; padding-inline: clamp(1.25rem, 4.5vw, 4rem); }
.home-page h1, .home-page h2, .home-page h3 { color: inherit; font-weight: 750; letter-spacing: -.025em; text-wrap: balance; }
.home-page h1 { font-size: clamp(2.35rem, 4.2vw, 3.75rem); line-height: 1.09; margin: 0; }
.home-page h2 { font-size: clamp(1.75rem, 2.7vw, 2.6rem); line-height: 1.18; margin: 0; }
.home-page h3 { font-size: 1.25rem; line-height: 1.35; margin: 0 0 .8rem; }
.home-page p { color: var(--home-muted); font-size: 1rem; line-height: 1.75; margin: 0; }
.home-page p + p { margin-top: 1rem; }
.home-page a { color: var(--anthys-mauve-dark); text-underline-offset: .25em; }
.home-page a:not(.btn):hover { color: var(--display-text, var(--anthys-anthracite)); }
.home-page a:focus-visible { outline: 3px solid var(--anthys-mauve-dark); outline-offset: 5px; }
.home-page [id] { scroll-margin-top: 2rem; }
.home-page .btn { display: inline-flex; justify-content: center; align-items: center; min-height: 48px; padding: .8rem 1.15rem; font-size: .95rem; font-weight: 700; line-height: 1.45; border-radius: 6px; box-shadow: none; transform: none; transition: color 150ms ease, background-color 150ms ease, border-color 150ms ease; }
.home-page .btn-primary { color: var(--display-on-strong, #fff); }
.home-page .btn-outline-secondary { color: var(--bs-btn-color); --bs-btn-color: var(--anthys-mauve-dark); --bs-btn-border-color: var(--display-border, #a491a8); --bs-btn-hover-color: var(--display-on-strong, #fff); --bs-btn-hover-bg: var(--anthys-mauve-dark); --bs-btn-hover-border-color: var(--anthys-mauve-dark); }
.home-page .btn-outline-secondary:is(:hover, :focus-visible) { color: var(--bs-btn-hover-color); }
.home-page .home-eyebrow { display: block; color: var(--anthys-mauve-dark); font-size: .8rem; line-height: 1.5; font-weight: 700; letter-spacing: .045em; margin-bottom: 1.1rem; }
.home-page .home-text-link { display: inline-flex; gap: 1rem; align-items: center; min-height: 44px; margin-top: 1rem; font-weight: 700; font-size: .95rem; text-decoration: none; }
.home-page .home-text-link:hover { text-decoration: underline; }
/* The dark surface owns its text palette, including headings and capture captions. */
.home-page .home-introduction { padding-block: clamp(3rem, 5vw, 5rem); background: var(--home-plum); color: var(--display-on-strong, #fff); }
.home-page .home-intro__grid { display: grid; grid-template-columns: minmax(0,.95fr) minmax(0,1.05fr); gap: var(--home-gap); align-items: center; }
.home-page .home-intro__heading { margin-bottom: 1.75rem; }
.home-page .home-intro__heading .home-eyebrow { color: var(--anthys-mauve-light); }
.home-page .home-intro__lead { color: var(--display-on-strong-muted, #f3edf4); font-size: 1.13rem; line-height: 1.7; }
.home-page .home-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.75rem; }
.home-page .home-introduction .btn-primary { --bs-btn-bg: var(--anthys-mauve-dark); --bs-btn-border-color: var(--display-border, #b57abd); --bs-btn-hover-bg: var(--display-button-hover, #58255e); --bs-btn-hover-border-color: var(--display-soft, #e9d8ec); }
.home-page .home-introduction .btn-outline-secondary { --bs-btn-color: var(--display-on-strong, #fff); --bs-btn-border-color: var(--display-border, #bda8c1); --bs-btn-hover-color: var(--home-plum); --bs-btn-hover-bg: var(--display-paper, #fff); --bs-btn-hover-border-color: var(--display-on-strong, #fff); }
.home-page .home-introduction a:focus-visible { outline-color: var(--display-on-strong-muted, #e9d8ec); }
.home-page .home-introduction .home-trial-note { color: var(--display-on-strong-muted, #e0d3e3); margin-top: 1rem; font-size: .85rem; line-height: 1.6; }
.home-page .home-intro__audience { color: var(--display-on-strong-muted, #e0d3e3); margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--display-strong-border, #7c6482); font-size: .95rem; }
.home-page .home-capture { margin: 0; min-width: 0; }
.home-page .home-capture > a { display: block; background: var(--display-paper, #fff); border: 1px solid var(--display-border, #d6cbd8); border-radius: 6px; overflow: hidden; }
.home-page .home-capture img { display: block; width: 100%; height: auto; }
.home-page .home-capture--intro { padding-block: 1rem; }
.home-page .home-dashboard-caption { margin-bottom: 1.25rem; }
.home-page .home-dashboard-caption .home-eyebrow { color: var(--anthys-mauve-light); margin-bottom: .5rem; }
.home-page .home-dashboard-highlights { display: flex; flex-wrap: wrap; gap: .6rem 1.25rem; list-style: none; padding: 0; margin: 1rem 0 0; font-size: .95rem; font-weight: 650; }
.home-page .home-dashboard-highlights li { display: flex; align-items: center; gap: .6rem; }
.home-page .home-capture--intro > .home-dashboard-link { display: inline-flex; color: var(--display-on-strong, #fff); background: transparent; border: 0; border-radius: 0; overflow: visible; }
.home-page .home-capture--intro > .home-dashboard-link:hover { color: var(--display-on-strong, #fff); }
.home-page .home-dashboard { background: var(--display-soft, #eee5ef); border-bottom: 1px solid var(--anthys-border); }
.home-page .home-dashboard h2 { color: var(--anthys-mauve-dark); }
.home-page .home-dashboard-features { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; margin-top: 1.75rem; }
.home-page .home-dashboard-feature { padding: 1.5rem; background: var(--display-paper, #fff); border-top: 3px solid var(--anthys-mauve-dark); border-radius: 6px; }
.home-page .home-dashboard-feature > i { display: block; color: var(--anthys-mauve-dark); font-size: 1.75rem; margin-bottom: 1rem; }
.home-page .home-section { padding-block: var(--home-space); }
.home-page .home-editorial { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: var(--home-gap); }
.home-page .home-daily { background: var(--display-paper, #fff); padding-bottom: 0; }
.home-page .home-daily .home-editorial { border-bottom: 1px solid var(--anthys-border); padding-bottom: var(--home-space); }
.home-page .home-editorial__copy { min-width: 0; }
.home-page .home-section__heading { margin-bottom: 2.5rem; }
.home-page .home-software { background: var(--display-paper, #fff); }
.home-page .home-heading-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; }
.home-page .home-heading-row > div { flex: 1; max-width: 760px; }
.home-page .home-heading-row .home-text-link { flex: 0 0 auto; margin: 0; }
/* Four open rows: the hierarchy comes from type and alignment, not card frames. */
.home-page .home-uses { border-top: 2px solid var(--home-ink); }
.home-page .home-use { display: grid; grid-template-columns: minmax(0,.65fr) minmax(0,1.35fr); column-gap: var(--home-gap); padding-block: 1.6rem; border-bottom: 1px solid var(--anthys-border); }
.home-page .home-use h3 { grid-row: 1 / 3; font-size: clamp(1.25rem,1.8vw,1.6rem); margin: 0; }
.home-page .home-use p { grid-column: 2; }
.home-page .home-use__links { grid-column: 2; display: flex; flex-wrap: wrap; gap: .35rem 1.4rem; margin-top: .65rem; }
.home-page .home-use__links a { display: inline-flex; align-items: center; min-height: 44px; font-size: .88rem; font-weight: 650; }
.home-page .home-transmission { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); align-items: center; gap: var(--home-gap); margin-top: var(--home-space); }
.home-page .home-transmission h3 { font-size: clamp(1.6rem,2.4vw,2.1rem); line-height: 1.25; }
.home-page .home-transmission .home-capture { padding: 1.25rem 1.25rem .5rem; background: var(--display-soft, #eee5ef); border-radius: 6px; }
.home-page .home-small-town { background: var(--anthys-off-white); border-block: 1px solid var(--anthys-border); }
.home-page .home-small-town h2 { color: var(--anthys-mauve-dark); font-size: clamp(2rem,3.3vw,2.9rem); }
/* One continuous pilot section; author is attached to the quote on the same light surface. */
.home-page .home-testimonial { background: var(--display-soft, #eee5ef); }
.home-page .home-testimonial .container { display: grid; grid-template-columns: minmax(0,.65fr) minmax(0,1.35fr); gap: 2rem var(--home-gap); }
.home-page .home-testimonial .home-section__heading { margin: 0; }
.home-page .home-terrain-reference { display: flex; align-items: flex-start; gap: 1.25rem; margin: 0; }
.home-page .home-terrain-reference__logo { width: 72px; height: auto; flex: 0 0 auto; }
.home-page .home-terrain-reference h3 { letter-spacing: normal; font-size: 1.2rem; }
.home-page .home-testimonial__panel { grid-column: 1 / -1; margin: .5rem 0 0; border-top: 1px solid var(--display-border, #b9a5be); padding-top: 2rem; }
.home-page .home-testimonial__quote { max-width: 1100px; margin: 0; padding-left: 1.5rem; border-left: 3px solid var(--anthys-mauve-dark); }
.home-page .home-testimonial__quote p { font-size: clamp(1.1rem,1.55vw,1.35rem); line-height: 1.65; color: var(--home-ink); }
.home-page .home-testimonial__author { display: block; background: transparent; color: var(--home-ink); padding: 1.25rem 0 0 1.5rem; margin: 0; border: 0; }
.home-page .home-testimonial__author > div { display: flex; flex-wrap: wrap; align-items: baseline; gap: .4rem 1.25rem; }
.home-page .home-testimonial__author strong { font-size: 1rem; }
.home-page .home-testimonial__author span { color: var(--home-muted); font-size: .9rem; line-height: 1.6; }
.home-page .home-testimonial__author .home-testimonial__pilot { color: var(--anthys-mauve-dark); }
.home-page .home-testimonial__points { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2rem var(--home-gap); list-style: none; padding: 0; margin: .5rem 0 0; }
.home-page .home-testimonial__point { padding-top: 1.25rem; border-top: 1px solid var(--display-border, #b9a5be); }
.home-page .home-testimonial__point-title { display: block; color: var(--anthys-mauve-dark); font-weight: 700; font-size: .95rem; margin-bottom: .7rem; }
.home-page .home-testimonial__point-quote { margin: 0; }
.home-page .home-testimonial__point-quote p { font-size: .95rem; line-height: 1.75; }
/* Security occupies the shared container; the definition list spans both columns. */
.home-page .home-security { background: var(--display-paper, #fff); }
.home-page .home-security__layout { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: 2rem var(--home-gap); }
.home-page .home-security__body { min-width: 0; }
.home-page .home-security__details { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--home-gap); margin: 0; padding-top: 1.75rem; border-top: 1px solid var(--anthys-border); }
.home-page .home-security__details > div { display: grid; grid-template-columns: minmax(0,.65fr) minmax(0,1fr); gap: 1.25rem; }
.home-page .home-security__details dt { font-size: .95rem; font-weight: 700; }
.home-page .home-security__details dd { font-size: .95rem; line-height: 1.7; color: var(--home-muted); margin: 0; }
.home-page .home-services { background: var(--display-paper, #fff); padding-bottom: 0; }
.home-page .home-services .home-editorial { padding-bottom: var(--home-space); border-bottom: 1px solid var(--anthys-border); }
.home-page .home-service-links { display: flex; gap: .5rem 2rem; flex-wrap: wrap; }
.home-page .home-contact { border-top: 1px solid var(--anthys-border); }
.home-page .home-contact__grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: clamp(2rem,7vw,7rem); }
.home-page .home-contact h2 { color: var(--anthys-mauve-dark); font-size: clamp(2rem,3.7vw,3.5rem); margin-bottom: 1.5rem; }
.home-page .home-contact__options > div + div { padding-top: 1.5rem; margin-top: 1.5rem; border-top: 1px solid var(--anthys-border); }
.home-page .home-contact__options .btn { margin-top: 1.25rem; }
@media (max-width: 1199.98px) {
    .home-page .home-intro__grid { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
    .home-page h1 { font-size: 2.9rem; }
    .home-page .home-title-break { display: none; }
    .home-page .home-security__details > div { grid-template-columns: 1fr; gap: .65rem; }
}
@media (max-width: 991.98px) {
    .home-page .home-intro__grid, .home-page .home-transmission { grid-template-columns: 1fr; }
    .home-page .home-intro__copy { max-width: 760px; }
    .home-page .home-intro__audience { margin-top: 1.25rem; }
    .home-page .home-editorial, .home-page .home-security__layout { grid-template-columns: 1fr; gap: 1.75rem; }
    .home-page .home-testimonial .container { grid-template-columns: 1fr; }
    .home-page .home-heading-row { display: block; }
    .home-page .home-heading-row .home-text-link { margin-top: 1rem; }
}
@media (max-width: 767.98px) {
    .home-page .home-dashboard-features { grid-template-columns: 1fr; }
    .home-page h1 { font-size: clamp(2.2rem,6.2vw,2.85rem); }
    .home-page .home-intro__lead { font-size: 1.1rem; }
    .home-page .home-use { grid-template-columns: 1fr; gap: .75rem; }
    .home-page .home-use h3, .home-page .home-use p, .home-page .home-use__links { grid-column: 1; grid-row: auto; }
    .home-page .home-testimonial__points, .home-page .home-security__details, .home-page .home-contact__grid { grid-template-columns: 1fr; }
    .home-page .home-terrain-reference { gap: 1rem; }
    .home-page .home-terrain-reference__logo { width: 64px; }
    .home-page .home-terrain-reference h3 { font-size: 1.1rem; }
    .home-page .home-testimonial__quote { padding-left: 1rem; }
    .home-page .home-testimonial__author { padding-left: 1rem; }
    .home-page .home-section__heading { margin-bottom: 1.75rem; }
    .home-page .home-transmission .home-capture { padding: .75rem .75rem .25rem; }
}
@media (max-width: 575.98px) {
    .home-page .home-actions { display: grid; }
    .home-page .home-actions .btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .home-page *, .home-page *::before, .home-page *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* Pages principales : vocabulaire commun avec l’accueil, compositions propres à chaque usage. */
.vitrine-page {
    --vitrine-ink: var(--display-text, #27232b);
    --vitrine-muted: var(--display-muted, #605a63);
    --vitrine-plum: var(--display-strong, #39243e);
    --vitrine-space: clamp(3rem, 5vw, 5rem);
    --vitrine-gap: clamp(1.5rem, 3.4vw, 3.5rem);
    --bs-heading-color: currentColor;
    background: var(--anthys-off-white);
    color: var(--vitrine-ink);
}
.vitrine-page *, .vitrine-page *::before, .vitrine-page *::after { box-sizing: border-box; }
.vitrine-page .vitrine-container, .vitrine-page .mp-container { width: 100%; max-width: 1440px; margin-inline: auto; padding-inline: clamp(1.25rem, 4.5vw, 4rem); }
.vitrine-page h1, .vitrine-page h2, .vitrine-page h3, .vitrine-page h4 { color: inherit; font-weight: 750; letter-spacing: -.025em; text-wrap: balance; }
.vitrine-page h1 { font-size: clamp(2.35rem,4.2vw,3.75rem); line-height: 1.09; margin: 0; }
.vitrine-page h2 { font-size: clamp(1.75rem,2.7vw,2.6rem); line-height: 1.18; margin: 0; }
.vitrine-page h3 { font-size: 1.25rem; line-height: 1.35; margin: 0 0 .8rem; }
.vitrine-page p { color: var(--vitrine-muted); font-size: 1rem; line-height: 1.75; margin: 0; }
.vitrine-page p + p { margin-top: 1rem; }
.vitrine-page a { color: var(--anthys-mauve-dark); text-underline-offset: .25em; }
.vitrine-page a:not(.btn):hover { color: var(--display-text, var(--anthys-anthracite)); }
.vitrine-page a:focus-visible, .vitrine-page button:focus-visible, .vitrine-page input:focus-visible, .vitrine-page textarea:focus-visible { outline: 3px solid var(--anthys-mauve-dark); outline-offset: 5px; }
.vitrine-page [id] { scroll-margin-top: 2rem; }
.vitrine-page .btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: .8rem 1.15rem; border-radius: 6px; box-shadow: none; transform: none; font-size: .95rem; font-weight: 700; line-height: 1.45; transition: color 150ms ease, background-color 150ms ease, border-color 150ms ease; }
.vitrine-page .btn-primary { color: var(--display-on-strong, #fff); }
.vitrine-page .btn-outline-secondary { color: var(--bs-btn-color); --bs-btn-color: var(--anthys-mauve-dark); --bs-btn-border-color: var(--display-border, #a491a8); --bs-btn-hover-color: var(--display-on-strong, #fff); --bs-btn-hover-bg: var(--anthys-mauve-dark); --bs-btn-hover-border-color: var(--anthys-mauve-dark); }
.vitrine-page .btn-outline-secondary:is(:hover,:focus-visible) { color: var(--bs-btn-hover-color); }
.vitrine-page .vitrine-eyebrow, .vitrine-page .mp-eyebrow { display: block; color: var(--anthys-mauve-dark); font-size: .8rem; line-height: 1.5; font-weight: 700; letter-spacing: .045em; margin-bottom: 1.1rem; }
.vitrine-page .vitrine-lead { color: var(--vitrine-ink); font-size: 1.13rem; line-height: 1.7; }
.vitrine-page .vitrine-link { display: inline-flex; align-items: center; gap: 1rem; min-height: 44px; margin-top: 1rem; font-size: .95rem; font-weight: 700; text-decoration: none; }
.vitrine-page .vitrine-link:hover { text-decoration: underline; }
.vitrine-page .vitrine-section { padding-block: var(--vitrine-space); }
.vitrine-page .vitrine-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem 1.5rem; margin-top: 1.5rem; }
.vitrine-page .vitrine-actions .vitrine-link { margin-top: 0; }

/* Catalogue : une introduction claire, quatre familles ouvertes et un socle commun marqué. */
.mp-page--catalogue .mp-catalogue-hero { padding-block: var(--vitrine-space); background: var(--anthys-off-white); border-bottom: 1px solid var(--anthys-border); }
.mp-page--catalogue .mp-catalogue-hero__grid { grid-template-columns: minmax(0,.95fr) minmax(0,1.05fr); gap: var(--vitrine-gap); }
.mp-page--catalogue .mp-catalogue-hero h1 { font-size: clamp(2.35rem,4.2vw,3.75rem); line-height: 1.09; }
.mp-page--catalogue .mp-catalogue-hero .mp-intro__lead { color: var(--vitrine-muted); margin-block: 1.5rem; }
.mp-page--catalogue .mp-capture { border-radius: 6px; box-shadow: none; }
.mp-page--catalogue .mp-catalogue { background: var(--display-paper, #fff); padding-block: var(--vitrine-space); }
.mp-page--catalogue .mp-catalogue__heading { margin-bottom: 1.75rem; }
.mp-page--catalogue .mp-catalogue-nav { gap: .25rem 1.5rem; padding-block: .75rem; border-block: 1px solid var(--anthys-border); }
.mp-page--catalogue .mp-catalogue-nav a { padding: .5rem 0; min-height: 44px; border: 0; border-radius: 0; text-decoration: underline; }
.mp-page--catalogue .mp-catalogue-nav a:hover { background: transparent; }
.mp-page--catalogue .mp-catalogue-group { grid-template-columns: minmax(0,.65fr) minmax(0,1.35fr); gap: var(--vitrine-gap); padding-block: 3rem; }
.mp-page--catalogue .mp-catalogue-group > header h2 { font-size: clamp(1.5rem,2.1vw,1.9rem); }
.mp-page--catalogue .mp-chapter { color: var(--anthys-mauve-dark); font-size: .85rem; font-weight: 750; margin-bottom: .85rem; }
.mp-page--catalogue .mp-catalogue-group--administration .mp-catalogue-module--featured { padding: 0 0 1.5rem; border-bottom: 2px solid var(--vitrine-plum); border-radius: 0; background: transparent; }
.mp-page--catalogue .mp-catalogue-module h3 { color: var(--vitrine-ink); font-size: 1.2rem; }
.mp-page--catalogue .mp-catalogue-module__title { margin-bottom: .65rem; }
.mp-page--catalogue .mp-catalogue-module p { font-size: .95rem; }
.mp-page--catalogue .mp-common-ground { background: var(--vitrine-plum); padding-block: var(--vitrine-space); }
.mp-page--catalogue .mp-common-ground h2 { color: var(--display-on-strong, #fff); }
.mp-page--catalogue .mp-common-ground p, .mp-page--catalogue .mp-common-ground__list li { color: var(--display-on-strong-muted, #f3edf4); }
.mp-page--catalogue .mp-common-ground .mp-eyebrow, .mp-page--catalogue .mp-common-ground a { color: var(--anthys-mauve-light); }
.mp-page--catalogue .mp-common-ground a:hover { color: var(--display-on-strong, #fff); }
.mp-page--catalogue .mp-common-ground a:focus-visible { outline-color: var(--anthys-mauve-light); }
.mp-page--catalogue .mp-common-ground__list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.25rem 2rem; }
.mp-page--catalogue .mp-common-ground__list li { border-bottom: 1px solid var(--display-strong-border, #7c6482); padding-bottom: .75rem; }
.mp-page--catalogue .mp-common-ground__list li::before { content: none; }
.mp-page--catalogue .catalogue-benefits { padding-block: var(--vitrine-space); background: var(--display-paper, #fff); }
.mp-page--catalogue .catalogue-benefits .mp-container { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: var(--vitrine-gap); }
.mp-page--catalogue .catalogue-benefits header p { margin-top: 1.25rem; }
.mp-page--catalogue .mp-benefits { display: block; list-style: none; margin: 0; padding: 0; }
.mp-page--catalogue .mp-benefits li { display: block; color: var(--vitrine-muted); padding: 1rem 0; background: transparent; border: 0; border-top: 1px solid var(--anthys-border); border-radius: 0; }
.mp-page--catalogue .mp-benefits li::before { content: none; }
.mp-page--catalogue .mp-cta { padding-block: var(--vitrine-space); background: var(--anthys-off-white); border-top: 1px solid var(--anthys-border); }
.mp-page--catalogue .module-discovery__cta { padding: 0; border: 0; box-shadow: none; background: transparent; gap: var(--vitrine-gap); }

/* Offres : des colonnes de comparaison alignées, sans offre artificiellement privilégiée. */
.offers-introduction { padding-block: var(--vitrine-space); }
.offers-next__grid, .offers-commissioning__heading { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: var(--vitrine-gap); }
.offers-introduction h1 { color: var(--anthys-mauve-dark); max-width: 22ch; }
.offers-subscriptions { background: var(--display-paper, #fff); border-top: 1px solid var(--anthys-border); }
.offers-section-heading { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: var(--vitrine-gap); align-items: end; margin-bottom: 2.5rem; }
.offer-comparison { display: grid; grid-template-columns: repeat(var(--offer-count),minmax(0,1fr)); column-gap: 0; row-gap: 1.4rem; border-top: 3px solid var(--vitrine-plum); padding-top: 2rem; }
.offer-column { display: grid; grid-template-rows: subgrid; grid-row: span 5; padding-inline: 2rem; border-left: 1px solid var(--anthys-border); min-width: 0; }
.offer-column:first-child { padding-left: 0; border-left: 0; }
.offer-column:last-child { padding-right: 0; }
.vitrine-page .offer-column h3 { font-size: 1.65rem; margin: 0; }
.vitrine-page .offer-label { font-size: .8rem; margin-top: .6rem; }
.vitrine-page .offer-price { color: var(--anthys-mauve-dark); font-size: clamp(1.5rem,2vw,1.9rem); line-height: 1.3; font-weight: 750; letter-spacing: -.02em; margin: 0; }
.vitrine-page .offer-users { font-size: 1rem; line-height: 1.6; margin: .6rem 0 0; }
.vitrine-page .offer-description { margin: 0; }
.vitrine-page .offer-inheritance { margin: 0 0 .75rem; font-size: .95rem; line-height: 1.6; font-weight: 600; }
.vitrine-page .offer-content summary { color: var(--anthys-mauve-dark); cursor: pointer; font-weight: 700; font-size: .95rem; line-height: 1.5; padding-block: .6rem; min-height: 44px; border-block: 1px solid var(--anthys-border); }
.vitrine-page .offer-content summary:focus-visible { outline: 3px solid var(--anthys-mauve-dark); outline-offset: 4px; }
.offer-content .offer-content-label-open,
.offer-content[open] .offer-content-label-closed { display: none; }
.offer-content[open] .offer-content-label-open { display: inline; }
.offer-content[open] .offer-features { padding-top: 1rem; }
.offer-features { margin: 0; padding: 0; display: grid; gap: 1.4rem; }
.vitrine-page .offer-feature-group h4 { margin: 0 0 .65rem; font-size: .85rem; line-height: 1.5; font-weight: 700; color: var(--anthys-mauve-dark); }
.offer-feature-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.offer-features li { color: var(--vitrine-muted); font-size: .92rem; line-height: 1.6; }
.offer-column .btn { justify-self: start; align-self: start; }
.offers-included { border-top: 1px solid var(--anthys-border); margin-top: 3rem; padding-top: 2rem; }
.offers-included dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--vitrine-gap); margin: 1.25rem 0 0; }
.offers-included dt { font-size: 1rem; margin-bottom: .5rem; }
.offers-included dd { color: var(--vitrine-muted); font-size: .95rem; line-height: 1.75; margin: 0; }
.offers-commissioning { color: var(--display-on-strong, #fff); background: var(--vitrine-plum); }
.vitrine-page .offers-commissioning .vitrine-eyebrow { color: var(--anthys-mauve-light); }
.vitrine-page .offers-commissioning p, .offers-commissioning li { color: var(--display-on-strong-muted, #f3edf4); }
.offers-service-details { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--vitrine-gap); margin-top: 2.5rem; padding-top: 1.75rem; border-top: 1px solid var(--display-strong-border, #7c6482); }
.offers-service-details ul { margin: 0; padding: 0; list-style: none; display: grid; gap: .5rem; }
.offers-service-details li { font-size: .95rem; line-height: 1.7; }
.vitrine-page .offers-commissioning__note { font-size: .9rem; margin-top: 2rem; max-width: 90ch; }
.offers-next h2 { color: var(--anthys-mauve-dark); margin-bottom: 1.5rem; }
.offers-next__actions { padding-left: 2rem; border-left: 1px solid var(--anthys-border); }
.offers-empty p { margin-block: 1rem; }

/* Contact : formulaire ouvert et coordonnées vérifiées, avec des erreurs associées aux champs. */
.contact-page { --bs-form-invalid-color: var(--display-invalid, #a12330); --bs-form-invalid-border-color: var(--display-invalid, #a12330); background: var(--display-paper, #fff); }
.contact-introduction { padding-block: var(--vitrine-space) 2.5rem; }
.contact-introduction h1 { color: var(--anthys-mauve-dark); }
.vitrine-page .contact-introduction .vitrine-lead { margin-top: 1.5rem; max-width: 850px; }
.contact-content { padding-bottom: var(--vitrine-space); }
.contact-layout { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(0,.65fr); gap: clamp(2rem,6vw,6rem); align-items: start; }
.contact-form-area { border-top: 2px solid var(--vitrine-plum); padding-top: 2rem; }
.contact-form-area header { margin-bottom: 1.75rem; }
.contact-form-area header p { margin-top: .75rem; }
.contact-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem; }
.contact-field { min-width: 0; }
.contact-field--wide { grid-column: 1 / -1; }
.contact-page .form-label { font-weight: 700; font-size: .95rem; margin-bottom: .6rem; }
.contact-page .form-label span { color: var(--vitrine-muted); font-weight: 400; }
.contact-page .form-control { background: var(--display-paper, #fff); color: var(--vitrine-ink); border: 1px solid var(--display-border, #9b8c9f); border-radius: 6px; padding: .8rem .9rem; font-size: 1rem; min-height: 48px; }
.contact-page .form-control::placeholder { color: var(--display-muted, #6b626d); opacity: 1; }
.contact-page .form-control:focus { border-color: var(--anthys-mauve-dark); box-shadow: none; }
.contact-page .form-control.is-invalid { border-color: var(--display-invalid, #b02a37); background-image: none; }
.contact-page .invalid-feedback { color: var(--display-invalid, #a12330); line-height: 1.6; font-size: .88rem; }
.contact-page .contact-field-hint { color: var(--vitrine-muted); font-size: .85rem; margin-top: .5rem; }
.contact-consent { margin-top: 1.75rem; padding-left: 1.75rem; }
.contact-consent .form-check-label { color: var(--vitrine-ink); line-height: 1.7; font-size: .95rem; }
.contact-consent .form-check-input { border-color: var(--display-input-border, #9b8c9f); margin-top: .35rem; }
.contact-page .contact-privacy { margin-block: .75rem 1.5rem; font-size: .85rem; }
.contact-page .contact-errors-summary { color: var(--display-invalid, #a12330); padding: .75rem 0; margin-bottom: 1.5rem; border-block: 1px solid var(--display-border, #dcabb1); }
.contact-address { padding: 2rem; color: var(--display-on-strong, #fff); background: var(--vitrine-plum); }
.contact-page .contact-address .vitrine-eyebrow { color: var(--anthys-mauve-light); }
.contact-page .contact-address h2 { font-size: 1.6rem; }
.contact-page .contact-address a { color: var(--display-on-strong, #fff); min-height: 44px; display: inline-flex; align-items: center; margin-top: 1rem; overflow-wrap: anywhere; }
.contact-page .contact-address a:hover { color: var(--display-on-strong, #fff); }
.contact-page .contact-address a:focus-visible { outline-color: var(--anthys-mauve-light); }
.contact-address address { color: var(--display-on-strong-muted, #e0d3e3); font-size: .95rem; line-height: 1.75; margin: 1.25rem 0 0; }
.contact-project { padding-top: 2rem; }
.contact-project .vitrine-link { display: flex; }
@media (max-width: 1199.98px) {
    .offer-column { padding-inline: 1.5rem; }
    .mp-page--catalogue .mp-catalogue-group { grid-template-columns: minmax(0,.65fr) minmax(0,1.35fr); }
}
@media (max-width: 991.98px) {
    .mp-page--catalogue .mp-catalogue-hero__grid, .mp-page--catalogue .catalogue-benefits .mp-container { grid-template-columns: 1fr; }
    .mp-page--catalogue .mp-catalogue-hero__grid > div { text-align: left; }
    .mp-page--catalogue .mp-catalogue-hero .mp-actions { justify-content: flex-start; }
    .mp-page--catalogue .mp-catalogue-group { grid-template-columns: 1fr; gap: 1.75rem; }
    .mp-page--catalogue .mp-catalogue-group__modules { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .mp-page--catalogue .mp-catalogue-group--organisation .mp-catalogue-group__modules { grid-template-columns: 1fr; }
    .offers-section-heading, .offers-commissioning__heading { grid-template-columns: 1fr; gap: 1.75rem; }
    .contact-layout { grid-template-columns: 1fr; }
    .contact-details { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--vitrine-gap); }
    .contact-project { padding-top: 0; }
    .offer-column { padding-inline: 1rem; }
}
@media (max-width: 767.98px) {
    .vitrine-page h1, .mp-page--catalogue .mp-catalogue-hero h1 { font-size: clamp(2.2rem,6.2vw,2.85rem); }
    .mp-page--catalogue .mp-catalogue-group__modules, .mp-page--catalogue .mp-common-ground__grid, .mp-page--catalogue .module-discovery__cta { grid-template-columns: 1fr; }
    .mp-page--catalogue .mp-catalogue-group--organisation .mp-catalogue-module { grid-template-columns: 1fr; }
    .mp-page--catalogue .mp-catalogue-group--organisation .module-link { grid-column: 1; }
    .mp-page--catalogue .mp-cta__links { text-align: left; }
    .mp-page--catalogue .mp-cta .mp-actions { justify-content: flex-start; }
    .offer-comparison, .offers-next__grid, .offers-service-details, .offers-included dl, .contact-details { grid-template-columns: 1fr; }
    .offer-comparison { padding-top: 0; row-gap: 0; }
    .offer-column { display: block; padding: 2rem 0; border: 0; border-bottom: 1px solid var(--anthys-border); }
    .offer-column:last-child { padding-bottom: 0; border-bottom: 0; }
    .vitrine-page .offer-price, .vitrine-page .offer-description, .offer-content { margin-top: 1rem; }
    .offer-column .btn { margin-top: 1.5rem; }
    .offers-next__actions { border: 0; padding-left: 0; }
    .contact-fields { grid-template-columns: 1fr; }
    .contact-project { padding-top: 1rem; }
}
@media (max-width: 575.98px) {
    .vitrine-actions { align-items: stretch; flex-direction: column; }
    .vitrine-page .vitrine-actions .btn { width: 100%; }
    .mp-page--catalogue .mp-actions .btn { width: 100%; }
    .contact-address { padding: 1.5rem; }
}
@media (prefers-reduced-motion: reduce) {
    .vitrine-page *, .vitrine-page *::before, .vitrine-page *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* Composition commerciale, dans les couleurs et préférences de la vitrine. */
.offers-composition { padding-bottom: var(--vitrine-space); }
.offers-composition__grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: var(--vitrine-gap); align-items: start; }
.offers-core, .quote-core { padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid var(--anthys-border); border-radius: 8px; background: var(--display-paper, var(--anthys-off-white)); }
.quote-core legend { float: none; width: auto; padding: 0 .25rem; }
.solution-core-list { padding-left: 1.25rem; display: grid; gap: .65rem; margin-block: 1rem; }
.quote-module-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
.quote-module-choice { display: flex; align-items: start; gap: .7rem; padding: .85rem; min-height: 44px; border: 1px solid var(--anthys-border); border-radius: 8px; cursor: pointer; overflow-wrap: anywhere; }
.quote-module-choice input { flex: 0 0 auto; margin-top: .25rem; }
.quote-module-choice:focus-within { outline: 3px solid var(--anthys-mauve-dark); outline-offset: 2px; }
.quote-module-choice:has(input:checked) { border-color: var(--anthys-mauve-dark); }
[data-quote-custom][hidden], [data-quote-plan][hidden] { display: none !important; }
@media (max-width: 767.98px) { .offers-composition__grid, .quote-module-grid { grid-template-columns: 1fr; } }

/* Prix d'entrée du socle et catalogue commercial de la page Offres. */
.vitrine-page .offers-entry-price { color: var(--anthys-mauve-dark); line-height: 1.6; margin-block: 1rem; }
.offers-entry-price strong { display: inline-block; }
.offers-entry-price strong:first-child { font-size: clamp(1.35rem, 2vw, 1.65rem); }
.offers-modules { border-top: 1px solid var(--anthys-border); }
.offers-modules__heading { max-width: 52rem; margin-bottom: 2rem; }
.offers-module-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.offers-module-grid .mp-catalogue-module { min-width: 0; padding: 1.5rem; display: flex; flex-direction: column; border: 1px solid var(--anthys-border); border-radius: 8px; background: var(--display-paper, var(--anthys-off-white)); }
.offers-module-grid .mp-catalogue-module h3 { font-size: 1.15rem; margin: 0 0 .75rem; }
.offers-module-grid .mp-catalogue-module p { font-size: .95rem; margin-bottom: 1rem; }
.offers-module-grid .module-link { color: var(--anthys-mauve-dark); margin-top: auto; font-weight: 650; font-size: .95rem; padding-block: .5rem; }
.offers-module-grid .module-link:focus-visible { outline: 3px solid var(--anthys-mauve-dark); outline-offset: 4px; }
@media (max-width: 991.98px) { .offers-module-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575.98px) { .offers-module-grid { grid-template-columns: 1fr; } }

.vitrine-page .offer-annual-price { color: var(--vitrine-muted); font-size: .95rem; margin: .4rem 0 0; line-height: 1.6; }
