body { font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
    .catalog-shell { width: min(1120px, calc(100% - 3rem)); margin: 0 auto; }
    .catalog-hero { background: linear-gradient(135deg, #111827, #17494d); color: #fff; padding: 3.75rem 0 4rem; }
    .catalog-hero__intro { max-width: 760px; margin-bottom: 2.25rem; }
    .catalog-eyebrow { color: rgba(255,255,255,.72); font-size: .78rem; font-weight: 900; letter-spacing: .18em; text-transform: uppercase; }
    .category-page-hero .catalog-eyebrow, .gallery-section .catalog-eyebrow { color: #8b5e3c; }
    .catalog-hero h1 { max-width: 18ch; margin: .65rem 0 1rem; font-size: clamp(2.35rem, 5vw, 4rem); line-height: 1.05; font-weight: 900; }
    .catalog-hero p { max-width: 46rem; color: rgba(255,255,255,.82); font-size: clamp(1.05rem, 2vw, 1.2rem); line-height: 1.6; }
    .category-choices { display: grid; gap: 1.25rem; }
    .category-choice { display: grid; grid-template-columns: minmax(0, 1fr) 42%; min-height: 245px; overflow: hidden; border: 1px solid rgba(255,255,255,.18); border-radius: 1.5rem; background: rgba(255,255,255,.09); box-shadow: 0 20px 40px rgba(0,0,0,.18); transition: transform .25s ease, background .25s ease; }
    .category-choice:hover { transform: translateY(-4px); background: rgba(255,255,255,.15); }
    .category-choice__content { display: flex; flex-direction: column; justify-content: center; padding: 1.6rem; }
    .category-choice__title { display: block; margin-bottom: .45rem; color: #fff; font-size: 1.4rem; font-weight: 900; }
    .category-choice__copy { color: rgba(255,255,255,.72); line-height: 1.45; }
    .category-choice__action { margin-top: 1rem; color: #fff; font-size: .9rem; font-weight: 800; }
    .category-choice__image { display: flex; align-items: center; justify-content: center; padding: .75rem; background: rgba(255,255,255,.96); }
    .category-choice__image picture { display: block; width: 100%; height: 100%; }
    .category-choice__image img { width: 100%; height: 100%; max-height: 225px; object-fit: contain; }
    .category-page-hero { padding: 2.5rem 0 2rem; background: #fdf8f3; }
    .category-page-hero__content { max-width: 760px; }
    .category-page-hero h1 { margin: .55rem 0 .75rem; color: #111827; font-size: clamp(2.25rem, 4vw, 3.5rem); font-weight: 900; line-height: 1.08; }
    .category-page-hero p { max-width: 46rem; color: #4b5563; font-size: 1.08rem; line-height: 1.6; }
    .category-page-hero__actions { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; margin-top: 1.35rem; }
    .gallery-section { padding: 1rem 0 5rem; background: #fdf8f3; }
    .gallery-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
    .door-card { overflow: hidden; border: 1px solid rgba(139,94,60,.14); border-radius: 1.25rem; background: #fff; box-shadow: 0 4px 16px rgba(17,24,39,.06); transition: transform .25s ease, box-shadow .25s ease; }
    .door-card:hover { transform: translateY(-4px); box-shadow: 0 18px 32px rgba(17,24,39,.13); }
    .door-card button { display: block; width: 100%; height: 100%; border: 0; border-radius: inherit; outline: none !important; text-align: left; }
    .door-card button:focus { outline: none !important; }
    .door-card:has(button:focus-visible) { box-shadow: 0 0 0 3px #8b5e3c, 0 18px 32px rgba(17,24,39,.13); }
    .door-card__image { display: flex; height: clamp(300px, 56vw, 360px); align-items: center; justify-content: center; padding: 1rem; background: #f9fafb; }
    .door-card__image picture { display: block; width: 100%; height: 100%; }
    .door-card__image img { display: block; width: 100%; height: 100%; object-fit: contain; }
    .door-card__content { display: block; padding: 1.2rem; }
    .door-card__title { display: block; color: #111827; font-size: 1.2rem; line-height: 1.25; }
    .door-card__colors { display: block; margin-top: .8rem; }
    .door-card__colors-label { display: block; margin-bottom: .45rem; color: #4b5563; font-size: .78rem; font-weight: 800; }
    .door-card__color-list { display: flex; flex-wrap: wrap; gap: .45rem; }
    .door-card__color { display: inline-flex; align-items: center; gap: .35rem; padding: .25rem .5rem; border: 1px solid rgba(17,24,39,.1); border-radius: 9999px; color: #374151; font-size: .76rem; line-height: 1.2; }
    .door-card__swatch { width: .7rem; height: .7rem; flex: 0 0 .7rem; border: 1px solid rgba(17,24,39,.18); border-radius: 9999px; background: #d1d5db; }
    .door-card__swatch--alb { background: #fff; }
    .door-card__swatch--ciment { background: #a7aaab; }
    .door-card__swatch--gri { background: #747b80; }
    .door-card__swatch--beton { background: #8c8f8f; }
    .door-card__swatch--arin { background: #a56f41; }
    .door-card__swatch--stejar-fumuriu { background: #5b4639; }
    .door-card__swatch--castan { background: #704127; }
    .door-card__swatch--eskimo { background: #e5dcc9; }
    .door-card__swatch--karamel { background: #bf8f60; }
    .door-card__swatch--onix { background: #1f2937; }
    .door-card__details { display: block; margin-top: .7rem; color: #4b5563; font-size: .92rem; line-height: 1.55; }
    .door-card__action { display: inline-block; margin-top: 1rem; color: #8b5e3c; font-size: .9rem; font-weight: 800; }
    .dialog-variants { margin-top: 1.25rem; }
    .dialog-variants__label { color: #4b5563; font-size: .82rem; font-weight: 800; }
    .dialog-variants__list { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .6rem; }
    .dialog-variant { padding: .45rem .7rem; border: 1px solid rgba(139,94,60,.25); border-radius: 9999px; background: #fff; color: #6f472b; font-size: .78rem; font-weight: 800; line-height: 1.2; }
    .dialog-variant:hover, .dialog-variant[aria-pressed="true"] { border-color: #8b5e3c; background: #8b5e3c; color: #fff; }
    .gallery-load-error { padding: 1.2rem; border: 1px solid #fecaca; border-radius: 1rem; background: #fff; color: #b91c1c; }
    dialog::backdrop { background: rgba(17,24,39,.82); backdrop-filter: blur(8px); }
    #gallery-dialog { width: min(1200px, 96vw); max-height: 94vh; overflow: auto; border-radius: 1.25rem; }
    .dialog-layout { display: grid; background: #fff; }
    .dialog-stage { position: relative; display: flex; height: min(76vh, 760px); min-height: 320px; align-items: center; justify-content: center; overflow: hidden; background: #030712; }
    .dialog-stage #dialog-image, .dialog-stage #dialog-image picture { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; }
    .dialog-stage #dialog-image img { display: block; width: 100%; height: 100%; object-fit: contain; }
    .dialog-close, .dialog-nav { position: absolute; z-index: 2; width: 3rem; height: 3rem; border-radius: 9999px; background: rgba(255,255,255,.94); color: #111827; font-size: 1.8rem; font-weight: 900; line-height: 1; box-shadow: 0 10px 25px rgba(0,0,0,.25); }
    .dialog-close { top: 1rem; right: 1rem; }
    .dialog-nav { top: 50%; transform: translateY(-50%); }
    .dialog-prev { left: 1rem; }
    .dialog-next { right: 1rem; }
    .dialog-counter { position: absolute; bottom: 1rem; left: 50%; z-index: 2; transform: translateX(-50%); padding: .4rem .75rem; border-radius: 9999px; background: rgba(17,24,39,.72); color: #fff; font-size: .8rem; font-weight: 800; }
    .dialog-details { padding: 1.5rem; }
    .dialog-details__category { color: #8b5e3c; font-size: .76rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
    .dialog-details h2 { margin: .35rem 0 .75rem; color: #111827; font-size: 1.75rem; line-height: 1.2; font-weight: 900; }
    .dialog-details p { color: #4b5563; line-height: 1.65; }
    .dialog-contact-button { display: flex; width: 100%; min-height: 3.25rem; align-items: center; justify-content: center; margin-top: 1.5rem; padding: .75rem 1rem; border-radius: .5rem; background: #8b5e3c; color: #fff; font-size: 1rem; font-weight: 800; line-height: 1.25; text-align: center; transition: background .2s ease; }
    .dialog-contact-button:hover { background: #6f472b; }
    .dialog-contact-button:focus-visible { outline: 3px solid #1d4ed8; outline-offset: 3px; }
    @media (max-width: 479px) { .category-choice { grid-template-columns: 1fr; } .category-choice__image { min-height: 220px; order: -1; } .category-choice__image img { max-height: 210px; } }
    @media (min-width: 640px) { .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
    @media (min-width: 768px) { .category-choices { grid-template-columns: repeat(2, minmax(0, 1fr)); } .dialog-layout { grid-template-columns: minmax(0, 1fr) 300px; } }
    @media (min-width: 1024px) { .gallery-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; } .gallery-grid--metal { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 820px; } }
