/* Modelo 17 · Construction & Real Estate — clases .cr */
.pmc-m-construction-real-estate { --cr-c: var(--pmc-primary, #262626); --cr-a: var(--pmc-secondary, #f59e0b); --cr-on-a: var(--pmc-on-secondary, #1c1917); --cr-ink: #1c1917; --cr-muted: #57534e; --cr-bg: #f5f5f4; --cr-line: #d6d3d1; background: var(--cr-bg); color: var(--cr-ink); font-family: var(--pmc-font); }
.cr { max-width: 46rem; margin: 0 auto; padding-bottom: 1.5rem; }
.cr-head { position: relative; background: var(--pmc-primary-strong, var(--cr-c)); color: var(--pmc-on-strong, #fff); overflow: hidden; isolation: isolate; }
.cr-head::before { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 10px; background: repeating-linear-gradient(-45deg, var(--cr-a) 0 14px, var(--cr-c) 14px 28px); }
.cr-head:not(.has-cover)::after { content: ''; position: absolute; inset: 0; z-index: -1; background-image: linear-gradient(rgb(255 255 255 / .05) 1px, transparent 1px), linear-gradient(90deg, rgb(255 255 255 / .05) 1px, transparent 1px); background-size: 24px 24px; }
.cr-cover-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.cr-head.has-cover::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(to top, rgb(0 0 0 / .85), rgb(0 0 0 / .35)); }
.cr-head-in { padding: 1.75rem 1.25rem 2.5rem; }
.cr-brand { display: flex; justify-content: space-between; align-items: center; margin-bottom: 2.5rem; }
.cr-logo { width: 3.75rem; height: 3.75rem; background: var(--cr-a); display: grid; place-items: center; overflow: hidden; }
.cr-logo-img { width: 100%; height: 100%; object-fit: contain; background: #fff; }
.cr-logo span { font: 700 1.4rem var(--pmc-display); color: var(--cr-on-a); }
.cr-city { margin: 0; font: 500 .9rem var(--pmc-display); letter-spacing: .14em; text-transform: uppercase; color: inherit; }
.cr-name { margin: 0; font: 700 clamp(2.2rem, 10vw, 3.4rem)/1 var(--pmc-display); text-transform: uppercase; letter-spacing: .01em; overflow-wrap: break-word; hyphens: auto; }
.cr-tagline { margin: .7rem 0 0; padding-left: .8rem; border-left: 4px solid var(--cr-a); color: inherit; font-size: 1.05rem; }
.cr-ctas { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.75rem; }
.cr-btn { flex: 1 1 10rem; display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 3.1rem; padding: .6rem 1.1rem; border: 2px solid var(--cr-line); background: #fff; color: var(--cr-ink); font: 600 1rem var(--pmc-display); letter-spacing: .06em; text-transform: uppercase; text-decoration: none; cursor: pointer; }
.cr-btn[hidden] { display: none; }
.cr-btn-main { background: var(--cr-a); border-color: var(--cr-a); color: var(--cr-on-a); }
.cr-btn-ghost { background: transparent; border-color: currentColor; color: var(--pmc-on-strong, #fff); }
.cr-wide { display: flex; width: 100%; margin-top: 1.25rem; }
.cr-btn:focus-visible, .cr-prop-ask:focus-visible, .cr-contact a:focus-visible, .cr-links a:focus-visible, .cr-gallery a:focus-visible { outline: 3px solid var(--cr-a); outline-offset: 2px; }
.cr-section { padding: 2.25rem 1.25rem 0; }
.cr-h2 { display: flex; align-items: center; gap: .6rem; margin: 0 0 1rem; font: 700 1.5rem/1.15 var(--pmc-display); text-transform: uppercase; letter-spacing: .02em; }
.cr-h2::before { content: ''; flex: none; width: .9rem; height: .9rem; background: var(--cr-a); }
.cr-text p { margin: 0 0 .8rem; line-height: 1.65; color: var(--cr-muted); }
.cr-services { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; background: var(--cr-line); border: 2px solid var(--cr-line); }
.cr-services li { display: flex; gap: 1rem; padding: 1rem; background: #fff; }
.cr-num { flex: none; font: 700 1.6rem/1 var(--pmc-display); color: var(--pmc-secondary-ink, var(--cr-a)); }
.cr-services h3 { margin: 0; font: 600 1.15rem var(--pmc-display); text-transform: uppercase; letter-spacing: .02em; }
.cr-services p { margin: .2rem 0 0; color: var(--cr-muted); line-height: 1.45; }
.cr-services .cr-from { font-weight: 700; color: var(--cr-ink); }
.cr-gallery { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: .4rem; }
.cr-gallery li:first-child { grid-column: 1 / -1; }
.cr-gallery a { display: block; aspect-ratio: 4 / 3; overflow: hidden; }
.cr-gallery li:first-child a { aspect-ratio: 16 / 9; }
.cr-gallery img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cr-props { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.cr-prop { background: #fff; border: 1px solid var(--cr-line); }
.cr-prop-img { position: relative; aspect-ratio: 16 / 10; background: #e7e5e4; }
.cr-prop-img.is-empty { aspect-ratio: 16 / 7; display: grid; place-items: center; color: #a8a29e; }
.cr-prop-img.is-empty .pmc-icon { width: 40px; height: 40px; }
.cr-prop-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cr-badge { position: absolute; top: .75rem; left: .75rem; padding: .25rem .65rem; background: var(--pmc-primary-strong, var(--cr-c)); color: var(--pmc-on-strong, #fff); font: 600 .85rem var(--pmc-display); letter-spacing: .1em; text-transform: uppercase; }
.cr-badge.is-sale { background: var(--cr-a); color: var(--cr-on-a); }
.cr-badge.is-rent { background: #0f766e; color: #fff; }
.cr-prop-body { padding: 1rem 1.1rem 1.15rem; }
.cr-prop-price { margin: 0; font: 700 1.6rem var(--pmc-display); }
.cr-prop-price small { font-size: .9rem; color: var(--cr-muted); font-weight: 500; }
.cr-prop h3 { margin: .15rem 0 0; font-size: 1.05rem; font-weight: 700; }
.cr-prop p { margin: .25rem 0 0; color: var(--cr-muted); }
.cr-prop-ask { display: inline-flex; align-items: center; min-height: 2.75rem; margin-top: .9rem; padding: 0 1rem; background: var(--cr-c); color: var(--pmc-on-primary); font: 600 .95rem var(--pmc-display); letter-spacing: .06em; text-transform: uppercase; text-decoration: none; }
.cr-note { margin: .75rem 0 0; font-size: .85rem; color: var(--cr-muted); }
.cr-contact-box { margin: 2.25rem 1.25rem 0; padding: 1.5rem 1.25rem; background: #fff; border-top: 6px solid var(--cr-a); }
.cr-zones { margin: 0 0 1rem; color: var(--cr-muted); line-height: 1.5; }
.cr-zones strong { color: var(--cr-ink); }
.cr-contact { list-style: none; margin: 0; padding: 0; }
.cr-contact a { display: flex; gap: .6rem; align-items: center; padding: .75rem 0; border-bottom: 1px solid #e7e5e4; color: var(--cr-ink); text-decoration: none; word-break: break-word; }
.cr-contact .pmc-icon { flex: none; color: var(--cr-ink); }
.cr-hours { width: 100%; border-collapse: collapse; margin-top: .75rem; }
.cr-hours th, .cr-hours td { padding: .4rem 0; text-align: left; font-weight: 400; }
.cr-hours td { text-align: right; font-weight: 600; }
.cr-hours-note { color: var(--cr-muted); font-size: .9rem; }
.cr-row { display: flex; flex-wrap: wrap; gap: .5rem; }
.cr-links { list-style: none; margin: 1rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.cr-links a { display: inline-flex; gap: .4rem; align-items: center; min-height: 2.5rem; padding: .3rem .9rem; background: #fff; border: 1px solid var(--cr-line); color: var(--cr-ink); text-decoration: none; }
.cr-links .pmc-icon { width: 16px; height: 16px; }
.cr-foot { text-align: center; margin-top: 2rem; font-size: .8rem; }
.cr-foot a { color: var(--cr-muted); }
@media (min-width: 40rem) { .cr { padding-top: 1rem; } .cr-head-in { padding: 2.25rem 2rem 3rem; } .cr-section { padding-left: 0; padding-right: 0; } .cr-contact-box { margin-left: 0; margin-right: 0; padding: 2rem; } .cr-props { grid-template-columns: 1fr 1fr; } .cr-services { grid-template-columns: 1fr 1fr; } .cr-gallery { grid-template-columns: repeat(3, 1fr); } }
