/* Open house en la ficha pública (y chip en tarjetas). Mismo lenguaje que Mi espacio. */
.cp-oh { margin-bottom: 1.5rem; padding: 1.25rem; border-radius: 1rem; background: #fff; box-shadow: 0 0 0 1px rgba(103, 26, 176, .16), 0 12px 32px -24px rgba(32, 19, 61, .45); }
.cp-oh__head { display: flex; align-items: center; gap: .75rem; margin-bottom: 1rem; }
.cp-oh__icon { display: flex; width: 2.75rem; height: 2.75rem; flex-shrink: 0; align-items: center; justify-content: center; border-radius: .875rem; background: rgba(103, 26, 176, .1); color: #671ab0; font-size: 1.25rem; }
.cp-oh__kicker { margin: 0; color: #671ab0; font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.cp-oh__title { margin: 0; color: #15131f; font-size: 1.125rem; font-weight: 700; line-height: 1.3; }
.cp-oh__dates { display: flex; flex-direction: column; gap: .5rem; margin-bottom: .75rem; }
.cp-oh__date { position: relative; margin: 0; cursor: pointer; }
.cp-oh__date input { position: absolute; opacity: 0; pointer-events: none; }
.cp-oh__date > span { display: flex; align-items: baseline; justify-content: space-between; gap: .75rem; padding: .7rem .875rem; border-radius: .75rem; box-shadow: inset 0 0 0 1px rgba(21, 19, 31, .14); color: #4a4659; transition: box-shadow .15s ease, background-color .15s ease; }
.cp-oh__date strong { color: #15131f; font-size: .9375rem; font-weight: 700; }
.cp-oh__date small { font-size: .8125rem; white-space: nowrap; }
.cp-oh__date input:checked + span { background: rgba(103, 26, 176, .06); box-shadow: inset 0 0 0 2px #671ab0; }
.cp-oh__date input:focus-visible + span { outline: 2px solid #671ab0; outline-offset: 2px; }
.cp-oh__dates:has(.cp-oh__date:only-child) .cp-oh__date > span { box-shadow: none; padding: 0; background: none; justify-content: flex-start; gap: .5rem; }
.cp-oh__host { margin: 0 0 1rem; color: #6b677a; font-size: .875rem; }
.cp-oh__host strong { color: #15131f; font-weight: 600; }
.cp-oh__cta { min-height: 3rem; border-radius: .75rem !important; font-weight: 600; }
.cp-oh__form { margin-top: .25rem; }
.cp-oh__form[hidden], .cp-oh__done[hidden], .cp-oh [hidden] { display: none !important; }
.cp-oh__label { display: block; margin-bottom: .25rem; color: #15131f; font-size: .8125rem; font-weight: 600; }
.cp-oh__form .form-control { height: 2.75rem; border-radius: .625rem; border-color: rgba(21, 19, 31, .16); font-size: .9375rem; }
.cp-oh__form .form-control:focus { border-color: #671ab0; box-shadow: 0 0 0 3px rgba(103, 26, 176, .12); }
.cp-oh__fieldset { margin: .75rem 0; padding: 0; border: 0; }
.cp-oh__chips { display: flex; gap: .5rem; }
.cp-oh__chip { position: relative; margin: 0; cursor: pointer; }
.cp-oh__chip input { position: absolute; opacity: 0; pointer-events: none; }
.cp-oh__chip span { display: inline-flex; min-width: 3.5rem; min-height: 2.25rem; align-items: center; justify-content: center; padding: .375rem .875rem; border-radius: 999px; box-shadow: inset 0 0 0 1px rgba(21, 19, 31, .16); color: #4a4659; font-size: .875rem; font-weight: 500; }
.cp-oh__chip input:checked + span { background: rgba(103, 26, 176, .08); box-shadow: inset 0 0 0 1.5px #671ab0; color: #671ab0; font-weight: 600; }
.cp-oh__chip input:focus-visible + span { outline: 2px solid #671ab0; outline-offset: 2px; }
.cp-oh__check { display: flex; align-items: flex-start; gap: .5rem; margin: 0 0 .75rem; color: #4a4659; font-size: .8125rem; line-height: 1.45; cursor: pointer; }
.cp-oh__check input { margin-top: .15rem; accent-color: #671ab0; }
.cp-oh__error { margin: 0 0 .75rem; color: #c2334a; font-size: .8125rem; font-weight: 500; }
.cp-oh__closed { margin: 0; padding: .75rem 1rem; border-radius: .75rem; background: #f6f5f9; color: #6b677a; font-size: .875rem; text-align: center; }
.cp-oh__privacy { margin: .625rem 0 0; color: #6b677a; font-size: .75rem; line-height: 1.5; text-align: center; }
.cp-oh__done { display: flex; align-items: flex-start; gap: .625rem; padding: .875rem 1rem; border-radius: .875rem; background: rgba(16, 185, 129, .1); color: #0f7a55; outline: none; }
.cp-oh__done i { margin-top: .15rem; font-size: 1.125rem; }
.cp-oh__done strong { display: block; color: #0b5f43; font-size: .9375rem; line-height: 1.4; }
.cp-oh__done a { color: #0f7a55; font-size: .875rem; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.cp-oh__links { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem 1.25rem; margin: .875rem 0 0; font-size: .8125rem; }
.cp-oh__links a { display: inline-flex; align-items: center; gap: .375rem; color: #671ab0; font-weight: 600; }

/* Chip "Open house" en tarjetas de propiedades. */
.cp-oh-chip { position: absolute; left: .75rem; bottom: .75rem; z-index: 3; display: inline-flex; align-items: center; gap: .375rem; max-width: calc(100% - 1.5rem); padding: .3rem .7rem; border-radius: 999px; background: #671ab0; color: #fff !important; font-size: .75rem; font-weight: 600; line-height: 1.2; box-shadow: 0 4px 12px -4px rgba(32, 19, 61, .5); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; pointer-events: none; }
.cp-oh-chip i { font-size: .75rem; }
.hover-change-image:hover .cp-oh-chip { opacity: 0; }
.cp-oh-chip { transition: opacity .15s ease; }
.cp-oh-pill-icon { margin-right: .375rem; font-size: .7rem; }
