.catalogue-page { --ink-soft: var(--muted); --line-strong: #cdddea; --cyan-dark: #006b89; --surface-soft: #f4fbff; }
.catalogue-page button { font: inherit; }
.catalogue-page h1 { background: linear-gradient(90deg,#101828,#075d76,#3730a3); -webkit-background-clip:text; background-clip:text; color:transparent; letter-spacing:-.045em; line-height:1.08; margin:12px 0 18px; }
.catalogue-page .lead { color:var(--muted); font-size:1.08rem; }
.catalogue-page .button { display:inline-flex; justify-content:center; align-items:center; gap:8px; border-radius:999px; padding:13px 18px; font-weight:800; cursor:pointer; min-height:50px; border:0; }
.catalogue-page .button-primary { background:linear-gradient(90deg,#0089a8,#1789ee,#5747ff); color:white; box-shadow:0 12px 28px rgba(31,100,224,.22); }
.catalogue-page .button-secondary { border:1px solid var(--line); background:#fff; color:var(--ink); }
.catalogue-page .service-card { border:1px solid var(--line); border-radius:var(--radius); background:rgba(255,255,255,.92); padding:24px; box-shadow:var(--soft); }
.catalogue-page .contact-card,.catalogue-page .contact-form { background:white; border:1px solid var(--line); border-radius:34px; padding:30px; box-shadow:var(--shadow); }
.catalogue-page .field-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.catalogue-page .field.full { grid-column:1/-1; }
.catalogue-page .form-note { color:var(--muted); font-size:.875rem; }
.catalogue-page label { margin:8px 0 7px; }
.catalogue-page h3 { margin:0 0 10px; }
.catalogue-page .product-photo { margin:0 0 18px; padding:10px; background:white; border:1px solid var(--line); border-radius:20px; }
.catalogue-page .product-photo img { width:100%; height:180px; object-fit:contain; }
.catalogue-page .product-photo figcaption { font-size:.75rem; color:var(--muted); margin-top:8px; line-height:1.5; }
.catalogue-page .product-current-ref { color:#006b89; font-weight:700; font-size:.875rem; margin:8px 0; }
.catalogue-page .selection-thumb { float:left; margin:0 16px 8px 0; object-fit:contain; background:white; border-radius:12px; }
.catalogue-page .selection-row > div:first-child { min-width:0; }
.catalogue-page summary { cursor:pointer; font-size:.875rem; color:var(--ink); padding:8px 0; }
.catalogue-page :is(a,button,input,select,textarea):focus-visible { outline:3px solid var(--cyan); outline-offset:3px; }
#demande { scroll-margin-top:100px; }
.catalogue-intro { padding-top: 54px; padding-bottom: 36px; }
.catalogue-page h1 { font-size: clamp(2.5rem,5vw,4.3rem); max-width: 100%; }
.catalogue-page .lead { max-width: 860px; }
.catalogue-toolbar { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(0,1fr) auto; gap: 18px; align-items: end; margin: 28px 0 16px; }
.catalogue-page label,.catalogue-meta { font-size: .875rem; }
.catalogue-meta { color: var(--ink-soft); }
.catalogue-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.catalogue-product { display: flex; flex-direction: column; min-width: 0; }
.catalogue-product .product-description { margin-bottom: 18px; font-size: 1rem; }
.catalogue-product .product-category { color: var(--cyan-dark); font-size: .875rem; font-weight: 700; margin-bottom: 8px; }
.catalogue-product h3 { font-size: 1.2rem; }
.catalogue-product select { margin-top: 6px; }
.catalogue-product .product-spec { color: var(--ink-soft); font-size: .875rem; overflow-wrap: anywhere; padding: 12px 0; white-space: pre-line; }
.catalogue-product .product-config { margin-top: auto; }
.catalogue-product .product-add { margin-top: 14px; display: grid; grid-template-columns: 88px minmax(0,1fr); gap: 12px; align-items: end; }
.catalogue-product .product-add button { padding-inline: 12px; }
.catalogue-product:after { pointer-events: none; }
.catalogue-pagination { display: flex; justify-content: center; align-items: center; gap: 20px; margin-top: 28px; }
.catalogue-page button:disabled { opacity: .45; cursor: default; transform: none; }
.catalogue-request { padding-top: 36px; }
.catalogue-request .contact-form,.selection-card { margin-bottom: 24px; }
.selection-row { display: grid; grid-template-columns: minmax(0,1fr) 160px auto; gap: 18px; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--line); }
.selection-row p { margin: 4px 0 0; color: var(--ink-soft); font-size: .875rem; overflow-wrap: anywhere; }
.catalogue-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 18px; }
#quote-text { margin-top: 8px; line-height: 1.6; }
#selection-feedback:empty,#quote-error:empty,#copy-status:empty { margin: 0; }
#quote-error { color: #9b2639; }
[hidden] { display: none !important; }
@media(max-width:1100px) { .catalogue-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .catalogue-toolbar { grid-template-columns: minmax(0,1fr) minmax(0,1fr); } .catalogue-toolbar>a { justify-self: start; } }
@media(max-width:660px) { .catalogue-toolbar,.catalogue-grid { grid-template-columns: 1fr; } .catalogue-intro { padding-top: 36px; } .selection-row { grid-template-columns: minmax(0,1fr) 110px; gap: 12px; } .selection-row>button { grid-column: 1/-1; justify-self: start; width: auto; } .catalogue-pagination { gap: 12px; } .catalogue-pagination .button { width: auto; min-width: 0; padding-inline: 14px; } #page-label { text-align: center; } }

@media(max-width:660px){.catalogue-page .field-grid{grid-template-columns:1fr}.catalogue-page .contact-card,.catalogue-page .contact-form{padding:22px;border-radius:24px}.catalogue-page .product-photo img{height:180px}}
