.catalog-page { padding-bottom:64px; }
.catalog-page [id] { scroll-margin-top:120px; }
.catalog-hero h1 { font-size:clamp(2.6rem,5vw,5rem); max-width:1000px; }
.catalog-hero .button { margin:24px 18px 12px 0; }
.catalog-guide { display:inline-block; color:white; text-decoration:underline; }
.catalog-intro { padding-bottom:24px; }
.catalog-intro p { max-width:1000px; line-height:1.7; color:var(--muted); }
.catalog-tools { display:flex; gap:16px; align-items:end; flex-wrap:wrap; padding:18px; background:#f6f5f6; border:1px solid var(--line); }
.catalog-tools>div { flex:1 1 240px; min-width:0; }
.catalog-page label { display:block; font-weight:700; margin-bottom:8px; }
.catalog-page input,.catalog-page select,.catalog-page textarea { width:100%; max-width:100%; min-height:44px; border:1px solid #a7a7ad; background:white; color:var(--ink); border-radius:6px; padding:11px; font:inherit; }
.catalog-layout { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:28px; align-items:start; }
.catalog-group { border:1px solid var(--line); margin:16px 0; }
.catalog-group>summary,.catalog-summary summary { cursor:pointer; padding:18px; background:#f7f6f7; }
.catalog-group summary h2 { display:inline; font-size:1.25rem; }
.catalog-group summary>span { margin-left:14px; color:var(--muted); font-size:.9rem; }
.catalog-product { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:20px; border-top:1px solid var(--line); padding:18px; }
.catalog-product h3 { font-size:1rem; line-height:1.4; margin:0 0 7px; overflow-wrap:anywhere; }
.catalog-product p { margin:4px 0; font-size:.9rem; }
.catalog-code,.catalog-note { color:var(--muted); font-size:.875rem; line-height:1.5; }
.catalog-unit { font-weight:650; }
.catalog-select,.catalog-clear,.catalog-remove { cursor:pointer; min-height:44px; border:1px solid #aaa; background:white; padding:9px 12px; border-radius:6px; font:inherit; }
.catalog-select[aria-pressed=true] { background:var(--pink-dark); color:white; border-color:var(--pink-dark); }
.catalog-summary { position:sticky; top:110px; border:1px solid var(--line); background:white; min-width:0; }
.catalog-summary details>p,.catalog-summary details>.button,.catalog-clear { margin:16px; }
.catalog-summary h2 { display:inline; font-size:1.2rem; }
#selection-list { max-height:55vh; overflow-y:auto; overscroll-behavior:contain; }
#selection-list > p { margin:16px; }
.selection-item { padding:16px; border-top:1px solid var(--line); overflow-wrap:anywhere; }
.selection-item h3 { font-size:1rem; margin:0 0 8px; }
.selection-item p { font-size:.85rem; margin:5px 0; }
.selection-item label { font-size:.85rem; margin-top:12px; }
.selection-item input { max-width:110px; margin-right:8px; }
.catalog-request { max-width:1100px; margin:24px auto; padding:32px; border:1px solid var(--line); background:#f7f6f7; }
.catalog-request h2 { font-size:clamp(1.8rem,3vw,2.5rem); }
.catalog-request p { line-height:1.65; }
.catalog-disclaimer { padding:16px; background:white; border-left:4px solid var(--pink-dark); }
.catalog-request .contact-form-row { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.catalog-request .contact-field { margin:18px 0; min-width:0; }
.catalog-consent { display:flex!important; gap:12px; align-items:flex-start; font-weight:400!important; line-height:1.5; }
.catalog-consent input { width:20px; min-height:20px; margin-top:3px; flex-shrink:0; }
.catalog-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
.catalog-actions .button { white-space:normal; text-align:center; }
.catalog-honeypot { position:absolute; left:-10000px; }
.catalog-page [hidden] { display:none!important; }
.catalog-page :focus-visible { outline:3px solid var(--pink-dark); outline-offset:3px; }
.catalog-page button:disabled { cursor:default; opacity:.55; }
@media(max-width:1000px) { .catalog-layout { grid-template-columns:minmax(0,1fr); } .catalog-summary { position:static; } #selection-list { max-height:none; } }
@media(max-width:600px) { .catalog-page .section { padding:28px 18px; } .catalog-tools { padding:14px; gap:12px; } .catalog-tools>div { flex-basis:100%; } .catalog-product { padding:14px; gap:12px; grid-template-columns:minmax(0,1fr); } .catalog-select { justify-self:start; } .catalog-request { margin:20px 14px; padding:20px 16px; } .catalog-request .contact-form-row { grid-template-columns:minmax(0,1fr); gap:0; } .catalog-request .contact-field { margin:12px 0; } .catalog-actions { flex-direction:column; } .catalog-actions .button { width:100%; } }


/* Preview B: direct quantities, bounded scrolling, read-only request summary. */
.catalog-groups { height: min(68vh, 720px); min-height: 320px; overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; border:1px solid var(--line); border-radius:8px; padding:0 10px 10px; background:#fff; }
.catalog-group { margin:10px 0; }
.catalog-product { grid-template-columns:minmax(0,1fr) 158px; padding:13px 14px; gap:16px; }
.catalog-product.has-quantity { background:#fff4f8; box-shadow:inset 3px 0 var(--pink-dark); }
.catalog-product h3 { font-size:.98rem; }
.row-quantity { min-width:0; }
.row-quantity label { font-size:.78rem; line-height:1.35; font-weight:650; margin:0 0 7px; }
.quantity-stepper { display:grid; grid-template-columns:44px minmax(46px,1fr) 44px; gap:3px; align-items:center; }
.quantity-stepper button { border:1px solid #92929b; border-radius:6px; background:white; color:var(--ink); height:44px; font:700 1.3rem/1 system-ui; cursor:pointer; padding:0; }
.quantity-stepper input { min-width:0; height:44px; padding:6px 2px; border:1px solid #92929b; text-align:center; font-weight:750; border-radius:6px; -moz-appearance:textfield; }
.quantity-stepper input::-webkit-inner-spin-button,.quantity-stepper input::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
.quantity-stepper button:disabled { opacity:.35; cursor:default; }
.quantity-help { font-size:.9rem; color:var(--muted); line-height:1.5; }
.catalog-summary .summary-quantity { font-weight:750; color:var(--ink); margin-top:10px; padding-top:8px; border-top:1px solid var(--line); }
@media(max-width:1000px) { .catalog-summary { margin-top:8px; } }
@media(max-width:600px) {
 .catalog-groups { height:58svh; min-height:280px; max-height:560px; padding:0 6px 6px; }
 .catalog-group>summary { padding:14px 10px; }
 .catalog-group summary h2 { font-size:1.08rem; }
 .catalog-group summary>span { margin-left:6px; font-size:.8rem; }
 .catalog-product { grid-template-columns:minmax(0,1fr); padding:13px 10px; gap:10px; }
 .row-quantity { width:168px; max-width:100%; }
 .row-quantity label { font-size:.8rem; }
 .catalog-product h3 { font-size:1rem; }
}
