/* Cards e listagens públicas do Drago Imóveis. */
.drago-imoveis-lista,
.drago-property {
	--drago-gold: var(--drago-primary-color);
	--drago-navy: var(--drago-secondary-color);
	--drago-button: var(--drago-button-color);
	--drago-white: #fff;
	--drago-background: #f7f7f7;
	color: var(--drago-navy);
	font-family: inherit;
}

.drago-imoveis-lista *,
.drago-imoveis-lista *::before,
.drago-imoveis-lista *::after { box-sizing: border-box; }

.drago-imoveis-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	align-items: stretch;
	gap: 28px;
}

.drago-card {
	display: flex;
	min-width: 0;
	flex-direction: column;
	overflow: hidden;
	border-radius: 5px;
	background: var(--drago-white);
}

.drago-card__media {
	display: block;
	position: relative;
	isolation: isolate;
	width: 100%;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	background: var(--drago-navy);
	color: inherit;
	text-decoration: none;
	cursor: pointer;
}

.drago-card__media:hover,
.drago-card__media:visited { text-decoration: none; }

.drago-card__media:focus-visible { outline: 3px solid var(--drago-gold); outline-offset: -3px; }

.drago-card__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.drago-card__image--empty { background: linear-gradient(135deg, #264959, var(--drago-navy)); }

.drago-card__overlay {
	position: absolute;
	z-index: 0;
	inset: 0;
	background: linear-gradient(180deg, rgb(8 42 62 / 45%) 0%, rgb(8 42 62 / 42%) 42%, rgb(3 24 37 / 83%) 100%);
	pointer-events: none;
}

.drago-card__badge,
.drago-card__brand,
.drago-card__media-details { position: absolute; z-index: 1; }

.drago-card__badge {
	top: 15px;
	left: 11px;
	padding: 6px 14px;
	border-radius: 999px;
	background: var(--drago-gold);
	color: var(--drago-navy);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.2;
}

.drago-card__brand {
	top: 9px;
	right: 19px;
	max-width: 28%;
}

.drago-card__logo {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 58px;
	object-fit: contain;
}

.drago-card__media-details {
	right: 20px;
	bottom: 33px;
	left: 32px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.drago-card__type {
	color: var(--drago-gold);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.drago-card__price {
	color: var(--drago-white);
	font-size: clamp(20px, 1.7vw, 24px);
	font-weight: 400;
	line-height: 1.2;
}

.drago-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 10px;
	min-height: 270px;
	padding: 25px 25px 40px;
}

.drago-card .drago-card__title {
	margin: 0;
	color: var(--drago-navy);
	font-size: clamp(24px, 2vw, 27px);
	font-weight: 400;
	line-height: 1.2;
	word-break: normal;
	overflow-wrap: normal;
	hyphens: none;
}

.drago-card__location {
	margin: 0;
	color: var(--drago-gold);
	font-size: 14px;
	font-weight: 400;
}

.drago-card__facts {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 7px 12px;
	margin: 3px 0 0;
	padding: 0;
	list-style: none;
}

.drago-card__facts li {
	display: flex;
	align-items: center;
	gap: 6px;
	color: var(--drago-navy);
	font-size: 12px;
	font-weight: 500;
	white-space: nowrap;
}

.drago-card__facts svg {
	width: 15px;
	height: 15px;
	flex: none;
	color: currentColor;
}

.drago-card .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.drago-card__address {
	display: flex;
	min-height: 48px;
	flex-direction: column;
	margin-bottom: 10px;
	color: var(--drago-navy);
	font-size: 15px;
	line-height: 1.5;
	overflow-wrap: anywhere;
}

.drago-card__button {
	display: inline-flex;
	min-height: 34px;
	align-items: center;
	align-self: flex-start;
	justify-content: center;
	margin-top: auto;
	padding: 6px 18px;
	border: 1px solid var(--drago-button);
	border-radius: 4px;
	background: var(--drago-button);
	color: var(--drago-navy);
	font-size: 13px;
	font-weight: 500;
	text-decoration: none;
	transition: background-color .15s ease, color .15s ease;
}

.drago-card__button:hover,
.drago-card__button:focus-visible {
	background: var(--drago-navy);
	color: var(--drago-white);
	text-decoration: none;
}

.drago-card__button:focus-visible,
.drago-imoveis-pagination a:focus-visible { outline: 3px solid var(--drago-gold); outline-offset: 3px; }

.drago-imoveis-pagination ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin: 28px 0 0;
	padding: 0;
	list-style: none;
}

.drago-imoveis-pagination a,
.drago-imoveis-pagination .current {
	display: inline-flex;
	min-width: 38px;
	min-height: 38px;
	align-items: center;
	justify-content: center;
	padding: 6px 11px;
	border: 1px solid var(--drago-gold);
	border-radius: 5px;
	color: var(--drago-navy);
	font-weight: 600;
	text-decoration: none;
}

.drago-imoveis-pagination .current,
.drago-imoveis-pagination a:hover { background: var(--drago-gold); }

.drago-imoveis-empty { color: #5b6870; }

.drago-imoveis-filters {
	margin-bottom: 25px;
	padding: clamp(18px, 2.5vw, 30px);
	border: 1px solid #e7e8e9;
	border-radius: 12px;
	background: var(--drago-white);
	box-shadow: 0 12px 32px rgb(8 42 62 / 6%);
}

.drago-imoveis-filters__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 17px;
}

.drago-imoveis-filters__field { display: flex; min-width: 0; flex-direction: column; gap: 7px; }
.drago-imoveis-filters__field label { color: var(--drago-navy); font-size: 13px; font-weight: 700; }
.drago-imoveis-filters__field select,
.drago-imoveis-filters__field input {
	width: 100%;
	min-width: 0;
	min-height: 43px;
	padding: 9px 12px;
	border: 1px solid #cbd3d8;
	border-radius: 6px;
	background: var(--drago-white);
	color: var(--drago-navy);
	font: inherit;
	font-size: 14px;
}

.drago-imoveis-filters__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; margin-top: 20px; }
.drago-imoveis-filters__actions button {
	min-height: 43px;
	padding: 9px 20px;
	border: 1px solid var(--drago-button);
	border-radius: 6px;
	background: var(--drago-button);
	color: var(--drago-navy);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}
.drago-imoveis-filters__actions a,
.drago-imoveis-empty a { color: var(--drago-navy); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.drago-imoveis-filters__loading { color: var(--drago-navy); font-size: 13px; }
.drago-imoveis-filters__error { margin: 14px 0 0; color: #a32620; }
.drago-imoveis-count { margin: 0 0 18px; color: var(--drago-navy); font-size: 15px; font-weight: 700; }
.drago-imoveis-lista--loading [data-drago-results] { opacity: .55; }
.drago-imoveis-filters :focus-visible,
.drago-imoveis-empty a:focus-visible { outline: 3px solid var(--drago-gold); outline-offset: 2px; }
.drago-imoveis-lista--filtered .drago-imoveis-empty { padding: 28px; border-radius: 8px; background: var(--drago-background); }
.drago-imoveis-lista--filtered .drago-imoveis-empty p { margin-top: 0; }

@media (max-width: 1024px) {
	.drago-imoveis-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.drago-imoveis-filters__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
	.drago-imoveis-grid { grid-template-columns: minmax(0, 1fr); gap: 22px; }
	.drago-card__body { min-height: 0; padding: 24px; }
	.drago-imoveis-filters__grid { grid-template-columns: minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
	.drago-card__button { transition: none; }
}

/* Página individual: estilos limitados ao escopo do imóvel. */
.drago-property {
	color: var(--drago-navy);
	background: var(--drago-background);
	font-family: inherit;
}

.drago-property *,
.drago-property *::before,
.drago-property *::after { box-sizing: border-box; }

.drago-property-shell {
	width: min(100% - 40px, 1260px);
	margin-right: auto;
	margin-left: auto;
}

.drago-property-hero {
	position: relative;
	isolation: isolate;
	display: flex;
	min-height: clamp(520px, 45vw, 640px);
	align-items: center;
	overflow: hidden;
	background: var(--drago-navy);
	color: var(--drago-white);
}

.drago-property-hero--empty { background: linear-gradient(125deg, #21485b, var(--drago-navy)); }

.drago-property-hero__image,
.drago-property-hero__overlay {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.drago-property-hero__image { object-fit: cover; }

.drago-property-hero__overlay {
	background: linear-gradient(180deg, rgb(8 42 62 / 28%) 0%, rgb(8 42 62 / 55%) 65%, rgb(8 42 62 / 68%) 100%);
}

.drago-property-hero__inner {
	position: relative;
	z-index: 1;
	padding-top: 140px;
	padding-bottom: 80px;
	text-align: center;
}

.drago-property-hero__purpose {
	display: inline-block;
	margin-bottom: 17px;
	color: var(--drago-gold);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .15em;
	text-transform: uppercase;
}

.drago-property-hero .drago-property-hero__title {
	max-width: 1020px;
	margin: 0 auto;
	color: var(--drago-white);
	font-size: clamp(28px, 2.2vw, 38px);
	font-weight: 300;
	line-height: 1.15;
	letter-spacing: normal;
	text-align: center;
	word-break: normal;
	overflow-wrap: normal;
	hyphens: none;
}

.drago-property-hero__details {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	width: min(100%, 750px);
	margin: 26px auto 0;
	border-radius: 4px;
	background: rgb(8 42 62 / 42%);
	text-align: left;
}

.drago-property-hero__details--split { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
.drago-property-hero__details:not(.drago-property-hero__details--split) { width: min(100%, 540px); }

.drago-property-hero__detail {
	display: flex;
	min-width: 0;
	align-items: center;
	gap: 14px;
	padding: 19px 22px;
}

.drago-property-hero__details--split .drago-property-hero__detail + .drago-property-hero__detail { border-left: 1px solid rgb(255 255 255 / 20%); }
.drago-property-hero__detail-icon { width: 27px; height: 27px; flex: none; color: var(--drago-white); }
.drago-property-hero__detail-copy { display: flex; min-width: 0; flex-direction: column; gap: 3px; }

.drago-property-hero__label {
	color: var(--drago-white);
	font-size: 12px;
	font-weight: 500;
}

.drago-property-hero__price {
	color: var(--drago-white);
	font-size: 17px;
	font-weight: 600;
	line-height: 1.2;
}

.drago-property-hero__address {
	color: var(--drago-white);
	font-size: 14px;
	font-style: normal;
	line-height: 1.35;
	overflow-wrap: anywhere;
}

.drago-property-overview {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0;
	margin-top: -112px;
	overflow: hidden;
	border-radius: 5px;
	background: var(--drago-white);
}

.drago-property-overview--with-extra { grid-template-columns: minmax(0, 1.85fr) minmax(0, 1fr); }

.drago-property-summary,
.drago-property-broker {
	border: 1px solid #e9ecee;
	border-radius: 12px;
	background: var(--drago-white);
	box-shadow: 0 12px 32px rgb(8 42 62 / 6%);
}

.drago-property-summary {
	min-width: 0;
	padding: 48px;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

.drago-property-summary .drago-property-section-title { margin-bottom: 25px; padding-bottom: 19px; border-bottom: 1px solid #d9dddf; font-size: 24px; font-weight: 400; }

.drago-property-section-title {
	margin: 0 0 25px;
	color: var(--drago-navy);
	font-size: clamp(23px, 2vw, 29px);
	font-weight: 700;
	line-height: 1.25;
}

.drago-property-summary__facts {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 12px;
	margin: 0;
	padding: 0 0 25px;
	border-bottom: 1px solid #d9dddf;
	list-style: none;
}

.drago-property-summary__fact {
	display: grid;
	grid-template-columns: 32px minmax(0, 1fr);
	grid-template-rows: auto auto;
	min-width: 0;
	align-content: start;
	column-gap: 10px;
}

.drago-property-summary__icon { grid-row: 1 / 3; width: 32px; height: 32px; align-self: center; color: var(--drago-navy); }
.drago-property-summary__label { min-width: 0; color: var(--drago-navy); font-size: 13px; line-height: 1.35; }
.drago-property-summary__value { min-width: 0; color: var(--drago-navy); font-size: 16px; line-height: 1.35; overflow-wrap: anywhere; }

.drago-property-overview--with-extra .drago-property-summary__facts { grid-template-columns: repeat(5, minmax(0, 1fr)); }

.drago-property-map {
	position: relative;
	min-width: 0;
	min-height: 235px;
	border: 0;
	border-radius: 0;
	background: var(--drago-white);
}

.drago-property-map__header {
	position: absolute;
	z-index: 1;
	top: 8px;
	left: 8px;
}

.drago-property-map__header .drago-property-section-title { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.drago-property-map__link { display: inline-flex; padding: 8px 11px; border-radius: 3px; background: var(--drago-white); color: var(--drago-navy); font-size: 13px; font-weight: 600; text-decoration: none; box-shadow: 0 1px 5px rgb(8 42 62 / 18%); }
.drago-property-map__link:focus-visible { outline: 3px solid var(--drago-navy); outline-offset: 3px; }
.drago-property-map__frame { position: absolute; inset: 0; display: block; width: 100%; height: 100%; border: 0; }

.drago-property-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.85fr) minmax(280px, 1fr);
	align-items: start;
	gap: 64px;
	padding: 50px 48px 60px;
}

.drago-property-layout--full,
.drago-property-layout--sidebar-only { grid-template-columns: minmax(0, 1fr); }
.drago-property-layout--sidebar-only .drago-property-sidebar { max-width: 480px; }

.drago-property-content { display: flex; min-width: 0; flex-direction: column; gap: 30px; }
.drago-property-sidebar { display: flex; min-width: 0; flex-direction: column; gap: 30px; }
.drago-property-content .drago-property-section { padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.drago-property-content .drago-property-section-title { margin-bottom: 20px; font-size: 24px; font-weight: 400; }

.drago-property-description__text { color: #20262b; font-size: 16px; line-height: 1.62; overflow-wrap: anywhere; }
.drago-property-description__text p { margin: 0 0 16px; }
.drago-property-description__text ul,
.drago-property-description__text ol { margin: 0 0 16px; padding-left: 24px; }
.drago-property-description__text li + li { margin-top: 5px; }
.drago-property-description__text > :first-child { margin-top: 0; }
.drago-property-description__text > :last-child { margin-bottom: 0; }
.drago-property-description__text a { color: var(--drago-navy); text-decoration: underline; text-decoration-color: var(--drago-gold); text-underline-offset: 3px; }
.drago-property-description__text img { max-width: 100%; height: auto; }
.drago-property-description__text iframe,
.drago-property-description__text video { max-width: 100%; }

.drago-property-features__list {
	columns: 2;
	column-gap: 36px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.drago-property-features__list li { display: flex; min-width: 0; align-items: flex-start; break-inside: avoid; gap: 9px; margin-bottom: 8px; color: #20262b; font-size: 16px; line-height: 1.45; overflow-wrap: anywhere; }
.drago-property-features__list svg { width: 14px; height: 14px; flex: none; margin-top: 5px; color: var(--drago-gold); }
.drago-property-features__list strong { font-weight: 700; }
.drago-property-extra-group .drago-property-features__list { columns: 1; }

.drago-property-broker { padding: 12px; border: 0; border-radius: 5px; box-shadow: none; }
.drago-property-broker .drago-property-section-title { margin-bottom: 18px; font-size: 24px; font-weight: 400; }
.drago-property-broker__identity { display: flex; min-width: 0; align-items: center; gap: 14px; }
.drago-property-broker__identity > div { min-width: 0; }
.drago-property-broker__photo { width: 86px; height: 86px; flex: none; border-radius: 4px; object-fit: cover; }
.drago-property-broker__name { display: block; margin-bottom: 5px; color: var(--drago-navy); font-size: 16px; line-height: 1.3; overflow-wrap: anywhere; }
.drago-property-broker__role,
.drago-property-broker__creci { color: #20262b; font-size: 13px; line-height: 1.4; }
.drago-property-broker__role + .drago-property-broker__creci::before { content: ' · '; }

.drago-property-broker__actions { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 18px; }
.drago-property-broker__action {
	display: inline-flex;
	width: 34px;
	height: 34px;
	align-items: center;
	justify-content: center;
	border-radius: 3px;
	color: var(--drago-white);
	text-decoration: none;
}

.drago-property-broker__action svg { width: 19px; height: 19px; }
.drago-property-broker__action--phone { background: #69747e; }
.drago-property-broker__action--whatsapp { background: #23c65b; }
.drago-property-broker__action--email { background: #e54436; }
.drago-property-broker__action:hover { filter: brightness(.9); }
.drago-property-broker__action:focus-visible { outline: 3px solid var(--drago-navy); outline-offset: 2px; }

.drago-property-contact {
	min-width: 0;
	padding: 0;
	border: 0;
	background: transparent;
}

.drago-property-contact .drago-property-section-title { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.drago-property-contact__form { display: grid; gap: 7px; }
.drago-property-contact__form label { margin-top: 5px; color: var(--drago-navy); font-size: 14px; font-weight: 600; }
.drago-property-contact__form input:not([type="hidden"]),
.drago-property-contact__form textarea {
	box-sizing: border-box;
	width: 100%;
	min-width: 0;
	padding: 9px 14px;
	border: 1px solid #cbd0d3;
	border-radius: 4px;
	background: var(--drago-white);
	color: var(--drago-navy);
	font: inherit;
}

.drago-property-contact__form input:not([type="hidden"]) { min-height: 42px; }
.drago-property-contact__form input::placeholder,
.drago-property-contact__form textarea::placeholder { color: #61788b; opacity: 1; }
.drago-property-contact__form textarea { resize: vertical; }
.drago-property-contact__form input:focus-visible,
.drago-property-contact__form textarea:focus-visible,
.drago-property-contact__form button:focus-visible { outline: 3px solid var(--drago-gold); outline-offset: 2px; }
.drago-property-contact__form button {
	width: 100%;
	min-height: 42px;
	margin-top: 4px;
	padding: 10px 16px;
	border: 0;
	border-radius: 4px;
	background: var(--drago-button);
	color: var(--drago-navy);
	font: inherit;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
}

.drago-property-contact__form button:hover { filter: brightness(.95); }
.drago-property-contact__form button:disabled { opacity: .55; cursor: not-allowed; }
.drago-property-contact__note,
.drago-property-contact__unavailable { margin: 8px 0 0; color: #52636c; font-size: 13px; line-height: 1.5; overflow-wrap: anywhere; }

@media (max-width: 1100px) {
	.drago-property-overview--with-extra .drago-property-summary__facts { grid-template-columns: repeat(auto-fit, minmax(105px, 1fr)); }
}

@media (max-width: 1024px) {
	.drago-property-layout { grid-template-columns: minmax(0, 1fr); row-gap: 30px; }
	.drago-property-content { display: contents; }
	.drago-property-sidebar { order: 1; }
	.drago-property-content > .drago-property-gallery,
	.drago-property-content > .drago-property-video { order: 2; }
	.drago-property-layout--sidebar-only .drago-property-sidebar { max-width: 480px; }
	.drago-property-sidebar { width: min(100%, 480px); }
	.drago-property-summary__facts { grid-template-columns: repeat(auto-fit, minmax(125px, 1fr)); }
}

@media (max-width: 900px) {
	.drago-property-overview--with-extra { grid-template-columns: minmax(0, 1fr); }
	.drago-property-map { min-height: 300px; }
}

@media (max-width: 640px) {
	.drago-property-shell { width: min(100% - 32px, 1260px); }
	.drago-property-hero { min-height: 420px; }
	.drago-property-hero__inner { padding-top: 76px; padding-bottom: 50px; }
	.drago-property-hero__purpose { margin-bottom: 14px; font-size: 12px; }
	.drago-property-hero .drago-property-hero__title { font-size: clamp(26px, 7vw, 34px); }
	.drago-property-hero__details,
	.drago-property-hero__details--split { grid-template-columns: minmax(0, 1fr); margin-top: 25px; }
	.drago-property-hero__detail { padding: 14px 18px; }
	.drago-property-hero__details--split .drago-property-hero__detail + .drago-property-hero__detail { border-top: 1px solid rgb(255 255 255 / 20%); border-left: 0; }
	.drago-property-hero__detail-icon { width: 24px; height: 24px; }
	.drago-property-overview { margin-top: 0; }
	.drago-property-summary { padding: 24px; }
	.drago-property-broker { padding: 14px; }
	.drago-property-contact { padding: 0; }
	.drago-property-summary__facts,
	.drago-property-overview--with-extra .drago-property-summary__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 12px; }
	.drago-property-summary__fact { grid-template-columns: 27px minmax(0, 1fr); column-gap: 8px; }
	.drago-property-summary__icon { width: 27px; height: 27px; }
	.drago-property-map { min-height: 280px; }
	.drago-property-map__link { min-height: 44px; align-items: center; }
	.drago-property-layout { gap: 28px; padding: 32px 0 40px; }
	.drago-property-content > .drago-property-gallery,
	.drago-property-content > .drago-property-video { order: 1; }
	.drago-property-sidebar { order: 2; }
	.drago-property-features__list { columns: 1; }
	.drago-property-broker__action { width: 44px; height: 44px; }
	.drago-property-contact__form button { min-height: 44px; }
}
