/* Heighted Core — component styles (work with any theme; tuned for the Heighted theme). */
.hz-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.hz-link { font-size: .8125rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 2px; }
.hz-link:hover { color: #C8A66A; }
.hz-empty { border: 1px dashed rgba(94,99,107,.5); padding: 2rem; text-align: center; }
.hz-note { font-size: .875rem; color: #5E636B; }
.hz-dark .hz-note, .hz-navy .hz-note { color: #B8BDC6; }

/* grids */
.hz-grid { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.hz-project-grid, .hz-post-cards { display: grid; gap: 2rem; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); margin-top: 2rem; margin-bottom: 2rem; }

/* project card */
.hz-project-card { background: #fff; border: 1px solid rgba(94,99,107,.25); display: flex; flex-direction: column; transition: border-color .4s, transform .6s cubic-bezier(.65,0,.35,1); }
.hz-dark .hz-project-card { background: #1f2026; border-color: rgba(184,189,198,.16); }
.hz-project-card:hover { border-color: #C8A66A; }
.hz-project-card__media { display: block; aspect-ratio: 4/3; overflow: hidden; background: #1D2B3A; }
.hz-project-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .9s cubic-bezier(.65,0,.35,1); }
.hz-project-card:hover .hz-project-card__media img { transform: scale(1.04); }
.hz-project-card__noimg { display: block; width: 100%; height: 100%; background: repeating-linear-gradient(90deg, rgba(184,189,198,.12) 0 1px, transparent 1px 36px), #1D2B3A; }
.hz-project-card__body { padding: 1.4rem 1.5rem 1.6rem; display: flex; flex-direction: column; gap: .5rem; flex: 1; }
.hz-project-card__title { font-size: 1.25rem; margin: 0; }
.hz-project-card__title a { text-decoration: none; color: inherit; }
.hz-project-card__meta { margin: 0; font-size: .9rem; color: #5E636B; }
.hz-dark .hz-project-card__meta { color: #B8BDC6; }
.hz-project-card__price { margin: 0 0 .5rem; }
.hz-project-card .hz-link { margin-top: auto; align-self: flex-start; }
.hz-badge { align-self: flex-start; font-size: .6875rem; letter-spacing: .16em; text-transform: uppercase; border: 1px solid #C8A66A; color: #C8A66A; padding: .2rem .55rem; }
.hz-price { font-family: Montserrat, Arial, sans-serif; font-weight: 600; }
.hz-price-valid { font-size: .8125rem; color: #5E636B; }

/* filter */
.hz-filter { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); align-items: end; padding: 1.5rem; background: #fff; border: 1px solid rgba(94,99,107,.25); }
.hz-filter__actions { display: flex; gap: 1rem; align-items: center; }
.hz-field { display: flex; flex-direction: column; gap: .35rem; margin: 0; }
.hz-field > span, .hz-field > label { font-size: .75rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: #5E636B; }
.hz-dark .hz-field > label, .hz-navy .hz-field > label { color: #B8BDC6; }
.hz-field input, .hz-field select, .hz-field textarea, .hz-form input, .hz-form select, .hz-form textarea { font: inherit; font-size: 1rem; padding: .75rem .85rem; border: 1px solid rgba(94,99,107,.45); background: #fff; color: #17181C; border-radius: 2px; width: 100%; box-sizing: border-box; }
.hz-form input[type="checkbox"] { width: auto; }
.hz-pagination { display: flex; gap: .5rem; justify-content: center; }
.hz-pagination a, .hz-pagination span { min-width: 2.5rem; text-align: center; padding: .5rem; border: 1px solid rgba(94,99,107,.35); text-decoration: none; }
.hz-pagination span { background: #17181C; color: #F4F1EA; }

/* forms */
.hz-form-wrap { scroll-margin-top: 120px; }
.hz-form { display: flex; flex-direction: column; gap: 1rem; }
.hz-form__grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.hz-consent { font-size: .875rem; }
.hz-alert { padding: 1rem 1.25rem; margin-bottom: 1rem; border-left: 3px solid; }
.hz-alert--ok { border-color: #2f7d4f; background: #eef6f0; color: #17181C; }
.hz-alert--err { border-color: #a33b2b; background: #f8ecea; color: #17181C; }
.hz-escalation { border-top: 2px solid #C8A66A; margin-top: 3rem; padding-top: 1rem; }

/* project single */
.hz-project-head { padding-top: 2.5rem; }
.hz-project-head h1 { margin: .25rem 0 1rem; }
.hz-chips { list-style: none; padding: 0; margin: 0 0 1rem; display: flex; flex-wrap: wrap; gap: .5rem; }
.hz-chips li, .hz-chips--nav a { font-size: .8125rem; border: 1px solid rgba(94,99,107,.4); padding: .3rem .75rem; text-decoration: none; }
.hz-chips--nav { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.5rem; }
.hz-chips--nav a[aria-current="page"] { background: #17181C; color: #F4F1EA; border-color: #17181C; }
.hz-details { display: grid; gap: 3rem; grid-template-columns: minmax(0, 1fr) minmax(280px, 380px); margin-top: 3rem; }
@media (max-width: 900px) { .hz-details { grid-template-columns: 1fr; } }
.hz-facts { width: 100%; border-collapse: collapse; }
.hz-facts th, .hz-facts td { text-align: left; padding: .7rem 0; border-bottom: 1px solid rgba(94,99,107,.25); vertical-align: top; }
.hz-facts th { width: 38%; font-weight: 500; color: #5E636B; }
.hz-side-card { position: sticky; top: 110px; background: #fff; border: 1px solid rgba(94,99,107,.25); padding: 1.5rem; }
.hz-embed iframe, .hz-map iframe { width: 100%; aspect-ratio: 16/9; height: auto; border: 0; }
.hz-btn-wa { display: inline-flex; }
.hz-related { margin-top: 4rem; }

/* header whatsapp, footer lists */
.hz-header-wa { display: inline-flex; align-items: center; gap: .45rem; color: #F4F1EA; text-decoration: none; font-size: .8125rem; letter-spacing: .12em; text-transform: uppercase; border: 1px solid rgba(200,166,106,.6); padding: .5rem .8rem; white-space: nowrap; }
.hz-header-wa:hover { background: #C8A66A; color: #17181C; }
@media (max-width: 600px) { .hz-header-wa span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); } }
.hz-social, .hz-footer-nav, .hz-contact-list, .hz-legal { list-style: none; margin: 0; padding: 0; }
.hz-social { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; }
.hz-footer-nav li, .hz-contact-list li { margin-bottom: .6rem; }
.hz-contact-list__label { display: block; font-size: .6875rem; letter-spacing: .18em; text-transform: uppercase; color: #5E636B; }
.hz-footer .hz-contact-list__label { color: #B8BDC6; opacity: .75; }
.hz-legal { display: flex; flex-wrap: wrap; gap: 1.25rem; }

/* share + post cards */
.hz-share { display: flex; flex-wrap: wrap; gap: .75rem 1.25rem; align-items: center; border-top: 1px solid rgba(94,99,107,.25); border-bottom: 1px solid rgba(94,99,107,.25); padding: 1rem 0; margin: 2.5rem 0; font-size: .875rem; }
.hz-share__label { font-weight: 600; letter-spacing: .14em; text-transform: uppercase; font-size: .75rem; }
.hz-share__copy { font: inherit; background: none; border: 0; border-bottom: 1px solid currentColor; padding: 0 0 1px; cursor: pointer; color: inherit; }
.hz-post-card h3 { font-size: 1.2rem; margin: .4rem 0; }
.hz-post-card h3 a { text-decoration: none; color: inherit; }
.hz-post-card__media { display: block; aspect-ratio: 3/2; overflow: hidden; background: #1D2B3A; margin-bottom: .9rem; }
.hz-post-card__media img { width: 100%; height: 100%; object-fit: cover; }
.hz-fee { font-size: 1.125rem; }
