/* Modelo 07 · Catalog Plus — clases .cg */
.pmc-m-catalog-plus { --cg-c: var(--pmc-primary, #0f766e); --cg-bg: var(--pmc-secondary, #f0fdfa); --cg-ink: #10201e; --cg-muted: #4b5b59; --cg-line: #d5e3e0; background: var(--cg-bg); color: var(--cg-ink); font-family: var(--pmc-font); }
.cg { max-width: 60rem; margin: 0 auto; padding: 0 1rem 1.5rem; }
.cg-head { display: flex; gap: 1rem; align-items: center; padding: 1.5rem 0 1rem; }
.cg-logo { flex: none; width: 4.5rem; height: 4.5rem; border-radius: 1.25rem; background: #fff; display: grid; place-items: center; overflow: hidden; box-shadow: 0 2px 10px rgb(0 0 0 / .06); }
.cg-logo-img { width: 100%; height: 100%; object-fit: cover; }
.cg-logo span { font: 800 1.5rem var(--pmc-display); color: var(--pmc-primary-ink, var(--cg-c)); }
.cg-id { min-width: 0; }
.cg-name { margin: 0; font: 800 clamp(1.5rem, 6vw, 2.2rem)/1.1 var(--pmc-display); letter-spacing: -.02em; overflow-wrap: break-word; hyphens: auto; }
.cg-tagline { margin: .25rem 0 0; color: var(--cg-muted); }
.cg-open { margin: .4rem 0 0; font-size: .85rem; font-weight: 700; }
.cg-open.is-open { color: #047857; }
.cg-open.is-closed { color: #b91c1c; }
.cg-quick { display: flex; flex-wrap: wrap; gap: .5rem; }
.cg-btn { flex: 1 1 8rem; display: inline-flex; align-items: center; justify-content: center; gap: .45rem; min-height: 2.9rem; padding: .5rem .9rem; border-radius: 999px; border: 1px solid var(--cg-line); background: #fff; color: var(--cg-ink); font: 700 .95rem var(--pmc-display); text-decoration: none; cursor: pointer; }
.cg-btn[hidden] { display: none; }
.cg-btn .pmc-icon { width: 18px; height: 18px; color: var(--pmc-primary-ink, var(--cg-c)); }
.cg-btn-main { flex-basis: 100%; background: var(--cg-c); border-color: var(--cg-c); color: var(--pmc-on-primary); }
.cg-btn-main .pmc-icon { color: currentColor; }
.cg-btn:focus-visible, .cg-ask:focus-visible, .cg-chips button:focus-visible, .cg-contact a:focus-visible, .cg-links a:focus-visible { outline: 3px solid var(--cg-c); outline-offset: 2px; }
.cg-intro { margin-top: 1.25rem; color: var(--cg-muted); line-height: 1.6; }
.cg-intro p { margin: 0 0 .6rem; }
.cg-catalog { margin-top: 1.5rem; }
.cg-cat-head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.cg-h2 { margin: 0 0 .8rem; font: 800 1.35rem var(--pmc-display); letter-spacing: -.01em; }
.cg-count { margin: 0; color: var(--cg-muted); font-size: .9rem; }
.cg-controls { position: sticky; top: 0; z-index: 2; background: var(--cg-bg); padding: .5rem 0 .75rem; }
.cg-controls[hidden] { display: none; }
.cg-search { display: flex; align-items: center; gap: .5rem; background: #fff; border: 2px solid var(--cg-line); border-radius: 999px; padding: 0 1rem; color: var(--cg-muted); }
.cg-search:focus-within { border-color: var(--cg-c); }
.cg-search input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; font: 500 1rem var(--pmc-font); min-height: 2.9rem; color: var(--cg-ink); }
.cg-chips { display: flex; gap: .4rem; overflow-x: auto; padding: .6rem 0 .1rem; scrollbar-width: none; }
.cg-chips button { flex: none; min-height: 2.5rem; padding: .3rem 1rem; border-radius: 999px; border: 1px solid var(--cg-line); background: #fff; color: var(--cg-ink); font: 600 .9rem var(--pmc-font); cursor: pointer; }
.cg-chips button[aria-pressed="true"] { background: var(--cg-ink); border-color: var(--cg-ink); color: #fff; }
.cg-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
.cg-item { display: flex; flex-direction: column; background: #fff; border-radius: 1rem; overflow: hidden; border: 1px solid var(--cg-line); }
.cg-item[hidden] { display: none; }
.cg-img { aspect-ratio: 1; background: color-mix(in srgb, var(--cg-c) 10%, #fff); display: grid; place-items: center; }
.cg-grid:not(.has-img) .cg-img.is-empty { aspect-ratio: 2 / 1; }
.cg-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cg-img span { font: 800 2.2rem var(--pmc-display); color: var(--pmc-primary-ink, var(--cg-c)); opacity: .55; }
.cg-body { padding: .7rem .75rem .8rem; display: flex; flex-direction: column; flex: 1; }
.cg-kicker { margin: 0 0 .15rem; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--pmc-primary-ink, var(--cg-c)); }
.cg-item-name { margin: 0; font: 700 .98rem/1.25 var(--pmc-display); overflow-wrap: break-word; }
.cg-desc { margin: .25rem 0 0; font-size: .84rem; color: var(--cg-muted); line-height: 1.35; }
.cg-foot { margin-top: auto; padding-top: .6rem; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .4rem; }
.cg-price { font: 800 1.05rem var(--pmc-display); }
.cg-ask { display: inline-flex; align-items: center; min-height: 2.4rem; padding: 0 .8rem; border-radius: 999px; background: color-mix(in srgb, var(--cg-c) 12%, #fff); color: var(--pmc-primary-ink, var(--cg-c)); font-weight: 700; font-size: .85rem; text-decoration: none; }
.cg-none { margin: 1rem 0 0; padding: 1rem; border-radius: 1rem; background: #fff; border: 1px dashed var(--cg-line); text-align: center; color: var(--cg-muted); }
.cg-section { margin-top: 2rem; }
.cg-gallery { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: .4rem; }
.cg-gallery a { display: block; aspect-ratio: 1; border-radius: .75rem; overflow: hidden; }
.cg-gallery img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cg-contact { list-style: none; margin: 0 0 1rem; padding: 0; background: #fff; border-radius: 1rem; border: 1px solid var(--cg-line); }
.cg-contact a { display: flex; gap: .6rem; align-items: center; padding: .8rem 1rem; border-top: 1px solid var(--cg-line); color: var(--cg-ink); text-decoration: none; word-break: break-word; }
.cg-contact li:first-child a { border-top: 0; }
.cg-contact .pmc-icon { flex: none; color: var(--pmc-primary-ink, var(--cg-c)); }
.cg-hours { width: 100%; border-collapse: collapse; background: #fff; border-radius: 1rem; overflow: hidden; border: 1px solid var(--cg-line); }
.cg-hours th, .cg-hours td { padding: .6rem 1rem; text-align: left; font-weight: 500; border-top: 1px solid var(--cg-line); }
.cg-hours tr:first-child th, .cg-hours tr:first-child td { border-top: 0; }
.cg-hours td { text-align: right; color: var(--cg-muted); }
.cg-hours-note { color: var(--cg-muted); font-size: .9rem; }
.cg-row { display: flex; flex-wrap: wrap; gap: .5rem; }
.cg-links { list-style: none; margin: 1rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.cg-links a { display: inline-flex; align-items: center; gap: .35rem; min-height: 2.5rem; padding: .3rem .9rem; border-radius: 999px; background: #fff; border: 1px solid var(--cg-line); color: var(--cg-ink); text-decoration: none; }
.cg-links .pmc-icon { width: 16px; height: 16px; color: var(--pmc-primary-ink, var(--cg-c)); }
.cg-footer { margin-top: 2rem; text-align: center; font-size: .8rem; }
.cg-footer a { color: var(--cg-muted); }
@media (min-width: 40rem) { .cg-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .cg-btn-main { flex-basis: auto; flex-grow: 2; } .cg-info { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; } .cg-info .cg-h2 { grid-column: 1 / -1; } .cg-contact { margin: 0; } }
@media (min-width: 56rem) { .cg-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
