/*
Theme Name: Bien Azul
Theme URI: https://bienazul.com
Author: Bien Azul
Description: Tema a medida para el portal inmobiliario Bien Azul (Ecuador). Diseño inspirado en portales de propiedades tipo Plusvalia, 100% código propio.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: bienazul
*/

:root{
	--baz-navy: #21305D;
	--baz-blue: #0075BE;
	--baz-blue-dark: #005a94;
	--baz-white: #ffffff;
	--baz-gray-50: #f7f8fa;
	--baz-gray-100: #eef0f4;
	--baz-gray-300: #d7dbe3;
	--baz-gray-500: #8992a3;
	--baz-gray-700: #4b5468;
	--baz-text: #1f2430;
	--baz-whatsapp: #25D366;
	--baz-radius: 10px;
	--baz-shadow: 0 2px 10px rgba(33,48,93,0.08);
	--baz-shadow-hover: 0 8px 24px rgba(33,48,93,0.16);
	--baz-maxw: 1200px;
}

*{ box-sizing:border-box; }

html{ scroll-behavior:smooth; }

body{
	margin:0;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	color: var(--baz-text);
	background: var(--baz-white);
	line-height:1.5;
}

a{ color: inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
ul{ list-style:none; margin:0; padding:0; }

.baz-container{
	max-width: var(--baz-maxw);
	margin:0 auto;
	padding:0 20px;
}

/* ---------- Header ---------- */
.baz-header{
	background: var(--baz-white);
	box-shadow: var(--baz-shadow);
	position: sticky;
	top:0;
	z-index: 100;
}
.baz-header__inner{
	display:flex;
	align-items:center;
	justify-content:space-between;
	padding:14px 20px;
	max-width: var(--baz-maxw);
	margin:0 auto;
	gap:20px;
}
.baz-logo img{ height:44px; width:auto; }
.baz-nav ul{ display:flex; gap:28px; }
.baz-nav a{
	font-weight:600;
	color: var(--baz-navy);
	font-size:15px;
}
.baz-nav a:hover{ color: var(--baz-blue); }
.baz-header__whatsapp{
	display:inline-flex;
	align-items:center;
	gap:8px;
	background: var(--baz-whatsapp);
	color:#fff;
	padding:10px 18px;
	border-radius: 999px;
	font-weight:700;
	font-size:14px;
	white-space:nowrap;
}
.baz-header__whatsapp:hover{ filter:brightness(0.95); color:#fff; }
.baz-menu-toggle{ display:none; background:none; border:0; font-size:26px; color:var(--baz-navy); cursor:pointer; }

@media (max-width: 880px){
	.baz-nav{ display:none; }
	.baz-menu-toggle{ display:block; }
}

/* ---------- Hero / búsqueda ---------- */
.baz-hero{
	background: linear-gradient(135deg, var(--baz-navy) 0%, var(--baz-blue) 100%);
	color:#fff;
	padding:60px 20px 90px;
	text-align:center;
}
.baz-hero h1{
	font-size:clamp(26px,4vw,42px);
	margin:0 0 12px;
	font-weight:800;
}
.baz-hero p{
	font-size:18px;
	opacity:.92;
	margin:0 0 34px;
}

.baz-search{
	background:#fff;
	border-radius: var(--baz-radius);
	box-shadow: var(--baz-shadow-hover);
	padding:18px;
	max-width: 980px;
	margin:0 auto;
	margin-top:-56px;
	position:relative;
	z-index:5;
	text-align:left;
}
.baz-search__tabs{
	display:flex;
	gap:6px;
	margin-bottom:14px;
}
.baz-search__tab{
	border:none;
	background: var(--baz-gray-100);
	color: var(--baz-navy);
	font-weight:700;
	padding:10px 22px;
	border-radius: 8px 8px 0 0;
	cursor:pointer;
	font-size:14px;
}
.baz-search__tab.is-active{
	background: var(--baz-navy);
	color:#fff;
}
.baz-search__grid{
	display:grid;
	grid-template-columns: 2fr 1.3fr 1.3fr 1fr 1fr auto;
	gap:10px;
	align-items:end;
}
@media (max-width: 900px){
	.baz-search__grid{ grid-template-columns: 1fr 1fr; }
}
.baz-search label{
	display:block;
	font-size:12px;
	font-weight:700;
	color: var(--baz-gray-700);
	margin-bottom:5px;
	text-transform:uppercase;
	letter-spacing:.03em;
}
.baz-search select, .baz-search input[type="text"], .baz-search input[type="number"]{
	width:100%;
	padding:11px 12px;
	border:1px solid var(--baz-gray-300);
	border-radius:8px;
	font-size:14px;
	background:#fff;
}
.baz-search button.baz-btn-search{
	background: var(--baz-blue);
	color:#fff;
	border:none;
	padding:12px 22px;
	border-radius:8px;
	font-weight:700;
	cursor:pointer;
	font-size:15px;
}
.baz-search button.baz-btn-search:hover{ background: var(--baz-blue-dark); }

/* ---------- Secciones generales ---------- */
.baz-section{ padding:60px 20px; }
.baz-section--muted{ background: var(--baz-gray-50); }
.baz-section__head{
	display:flex;
	align-items:baseline;
	justify-content:space-between;
	margin-bottom:28px;
	flex-wrap:wrap;
	gap:10px;
}
.baz-section__head h2{
	font-size:28px;
	margin:0;
	color: var(--baz-navy);
	font-weight:800;
}
.baz-section__head a{
	color: var(--baz-blue);
	font-weight:700;
	font-size:14px;
}

/* ---------- Grid de propiedades ---------- */
.baz-grid{
	display:grid;
	grid-template-columns: repeat(auto-fill, minmax(280px,1fr));
	gap:24px;
}

.baz-card{
	background:#fff;
	border-radius: var(--baz-radius);
	overflow:hidden;
	box-shadow: var(--baz-shadow);
	transition: transform .18s ease, box-shadow .18s ease;
	display:flex;
	flex-direction:column;
}
.baz-card:hover{
	transform: translateY(-4px);
	box-shadow: var(--baz-shadow-hover);
}
.baz-card__media{
	position:relative;
	aspect-ratio: 4/3;
	background: var(--baz-gray-100);
	overflow:hidden;
}
.baz-card__media img{
	width:100%; height:100%; object-fit:cover;
}
.baz-card__badge{
	position:absolute;
	top:12px;
	left:12px;
	background: var(--baz-navy);
	color:#fff;
	font-size:12px;
	font-weight:700;
	padding:5px 12px;
	border-radius:999px;
	text-transform:uppercase;
	letter-spacing:.03em;
}
.baz-card__badge--alquiler{ background: var(--baz-blue); }
.baz-card__badge--destacada{
	position:absolute;
	top:12px;
	right:12px;
	background:#ffb400;
	color:#3a2a00;
}
.baz-card__body{ padding:16px 18px 18px; flex:1; display:flex; flex-direction:column; }
.baz-card__price{
	font-size:22px;
	font-weight:800;
	color: var(--baz-navy);
	margin:0 0 4px;
}
.baz-card__title{
	font-size:15px;
	font-weight:600;
	margin:0 0 8px;
	color: var(--baz-text);
}
.baz-card__zone{
	font-size:13px;
	color: var(--baz-gray-700);
	margin:0 0 12px;
}
.baz-card__specs{
	display:flex;
	gap:14px;
	font-size:13px;
	color: var(--baz-gray-700);
	margin-top:auto;
	padding-top:12px;
	border-top:1px solid var(--baz-gray-100);
}
.baz-card__specs span{ display:flex; align-items:center; gap:5px; }

.baz-empty{
	text-align:center;
	padding:60px 20px;
	color: var(--baz-gray-700);
}

/* ---------- Listado / filtros (archive) ---------- */
.baz-archive{
	display:grid;
	grid-template-columns: 280px 1fr;
	gap:30px;
	align-items:start;
}
@media (max-width: 900px){
	.baz-archive{ grid-template-columns: 1fr; }
}
.baz-filters{
	background:#fff;
	border:1px solid var(--baz-gray-100);
	border-radius: var(--baz-radius);
	padding:20px;
	position:sticky;
	top:90px;
}
.baz-filters h3{ margin:0 0 16px; font-size:16px; color:var(--baz-navy); }
.baz-filters .baz-filter-group{ margin-bottom:18px; }
.baz-filters label{
	display:block;
	font-size:12px;
	font-weight:700;
	color: var(--baz-gray-700);
	margin-bottom:6px;
	text-transform:uppercase;
}
.baz-filters select, .baz-filters input{
	width:100%;
	padding:9px 10px;
	border:1px solid var(--baz-gray-300);
	border-radius:8px;
	font-size:14px;
}
.baz-filters .baz-btn-search{
	width:100%;
	margin-top:6px;
	background: var(--baz-blue);
	color:#fff;
	border:none;
	padding:11px;
	border-radius:8px;
	font-weight:700;
	cursor:pointer;
}
.baz-archive__head{
	display:flex;
	justify-content:space-between;
	align-items:center;
	margin-bottom:20px;
}
.baz-archive__count{ color: var(--baz-gray-700); font-size:14px; }

.baz-pagination{
	display:flex;
	gap:8px;
	justify-content:center;
	margin-top:36px;
}
.baz-pagination a, .baz-pagination span{
	padding:9px 14px;
	border-radius:8px;
	border:1px solid var(--baz-gray-300);
	font-weight:600;
	font-size:14px;
}
.baz-pagination .current{ background: var(--baz-navy); color:#fff; border-color: var(--baz-navy); }

/* ---------- Ficha de propiedad ---------- */
.baz-single__top{ padding:30px 20px 0; }
.baz-breadcrumb{ font-size:13px; color: var(--baz-gray-700); margin-bottom:14px; }
.baz-breadcrumb a{ color: var(--baz-blue); }

.baz-single__gallery{
	display:grid;
	grid-template-columns: 2fr 1fr 1fr;
	grid-template-rows: 1fr 1fr;
	gap:8px;
	border-radius: var(--baz-radius);
	overflow:hidden;
	max-height:480px;
}
.baz-single__gallery img{ width:100%; height:100%; object-fit:cover; cursor:pointer; }
.baz-single__gallery a:first-child{ grid-row: 1 / span 2; }
.baz-single__gallery-more{
	position:relative;
}
.baz-single__gallery-more span{
	position:absolute; inset:0;
	background:rgba(0,0,0,.45);
	color:#fff;
	display:flex; align-items:center; justify-content:center;
	font-weight:700;
	font-size:18px;
}

.baz-single__wrap{
	display:grid;
	grid-template-columns: 2fr 1fr;
	gap:40px;
	padding:36px 20px 70px;
	max-width: var(--baz-maxw);
	margin:0 auto;
	align-items:start;
}
@media (max-width: 900px){
	.baz-single__wrap{ grid-template-columns: 1fr; }
}

.baz-single__header{
	display:flex;
	justify-content:space-between;
	align-items:flex-start;
	gap:20px;
	flex-wrap:wrap;
	margin-bottom:18px;
}
.baz-single__price{ font-size:32px; font-weight:800; color: var(--baz-navy); margin:0; }
.baz-single__title{ font-size:20px; font-weight:600; margin:6px 0; }
.baz-single__addr{ color: var(--baz-gray-700); font-size:14px; }

.baz-specs-table{
	display:grid;
	grid-template-columns: repeat(auto-fill,minmax(140px,1fr));
	gap:16px;
	background: var(--baz-gray-50);
	border-radius: var(--baz-radius);
	padding:20px;
	margin:22px 0;
}
.baz-specs-table div{ text-align:center; }
.baz-specs-table strong{ display:block; font-size:19px; color:var(--baz-navy); }
.baz-specs-table span{ font-size:12px; color: var(--baz-gray-700); text-transform:uppercase; }

.baz-single__desc{ font-size:15px; line-height:1.75; color:var(--baz-text); }
.baz-single__desc h2, .baz-single__desc h3{ color: var(--baz-navy); }

.baz-amenidades{ display:flex; flex-wrap:wrap; gap:10px; margin:18px 0; }
.baz-amenidades span{
	background: var(--baz-gray-100);
	padding:7px 14px;
	border-radius:999px;
	font-size:13px;
	font-weight:600;
	color: var(--baz-navy);
}

.baz-video{ margin:26px 0; }
.baz-video iframe{ width:100%; aspect-ratio:16/9; border:0; border-radius: var(--baz-radius); }

.baz-sidebar-card{
	background:#fff;
	border:1px solid var(--baz-gray-100);
	border-radius: var(--baz-radius);
	box-shadow: var(--baz-shadow);
	padding:22px;
	position:sticky;
	top:90px;
}
.baz-sidebar-card h3{ margin:0 0 14px; color: var(--baz-navy); font-size:17px; }
.baz-btn-whatsapp{
	display:flex;
	align-items:center;
	justify-content:center;
	gap:10px;
	background: var(--baz-whatsapp);
	color:#fff;
	font-weight:700;
	padding:14px;
	border-radius:8px;
	font-size:15px;
	margin-bottom:12px;
}
.baz-btn-whatsapp:hover{ filter:brightness(.95); color:#fff; }

.baz-form input, .baz-form textarea{
	width:100%;
	padding:11px 12px;
	border:1px solid var(--baz-gray-300);
	border-radius:8px;
	font-size:14px;
	margin-bottom:10px;
	font-family:inherit;
}
.baz-form button{
	width:100%;
	background: var(--baz-navy);
	color:#fff;
	border:none;
	padding:12px;
	border-radius:8px;
	font-weight:700;
	cursor:pointer;
	font-size:15px;
}
.baz-form button:hover{ background: var(--baz-blue); }
.baz-form__note{ font-size:11px; color: var(--baz-gray-500); margin-top:8px; }
.baz-form__ok{ color:#178a3b; font-weight:600; font-size:14px; }
.baz-form__err{ color:#c0392b; font-weight:600; font-size:14px; }

/* ---------- Página genérica (Nosotros) ---------- */
.baz-page{
	max-width: 860px;
	margin:0 auto;
	padding:60px 20px 80px;
}
.baz-page h1{ color: var(--baz-navy); font-size:34px; }
.baz-page .baz-content{ font-size:16px; line-height:1.8; }

/* ---------- Footer ---------- */
.baz-footer{
	background: var(--baz-navy);
	color:#fff;
	padding:50px 20px 24px;
	margin-top:40px;
}
.baz-footer__grid{
	display:grid;
	grid-template-columns: 1.3fr 1fr 1fr;
	gap:30px;
	max-width: var(--baz-maxw);
	margin:0 auto 30px;
}
@media (max-width:800px){ .baz-footer__grid{ grid-template-columns:1fr; } }
.baz-footer img{ height:40px; margin-bottom:14px; }
.baz-footer h4{ margin:0 0 14px; font-size:15px; }
.baz-footer p, .baz-footer a{ color: rgba(255,255,255,.8); font-size:14px; }
.baz-footer a:hover{ color:#fff; }
.baz-footer ul li{ margin-bottom:8px; }
.baz-footer__social{ display:flex; gap:12px; margin-top:14px; }
.baz-footer__social a{
	width:36px; height:36px;
	border-radius:50%;
	background: rgba(255,255,255,.12);
	display:flex; align-items:center; justify-content:center;
	font-size:15px;
}
.baz-footer__bottom{
	border-top:1px solid rgba(255,255,255,.15);
	max-width: var(--baz-maxw);
	margin:0 auto;
	padding-top:20px;
	font-size:13px;
	color: rgba(255,255,255,.6);
	text-align:center;
}

/* ---------- WhatsApp flotante ---------- */
.baz-whatsapp-float{
	position:fixed;
	bottom:22px;
	right:22px;
	background: var(--baz-whatsapp);
	color:#fff;
	width:58px;
	height:58px;
	border-radius:50%;
	display:flex;
	align-items:center;
	justify-content:center;
	font-size:28px;
	box-shadow: 0 6px 18px rgba(0,0,0,.25);
	z-index:200;
}
.baz-whatsapp-float:hover{ color:#fff; transform:scale(1.06); }


/* ---------- Cuentas / favoritos ---------- */
.baz-container--angosto{ max-width: 480px; }

.baz-form{
	display:flex;
	flex-direction:column;
	gap:14px;
	background: var(--baz-gray-50);
	border-radius: var(--baz-radius);
	padding: 24px;
	margin-top: 16px;
}
.baz-form label{
	display:flex;
	flex-direction:column;
	gap:6px;
	font-weight:600;
	font-size:14px;
	color: var(--baz-navy);
}
.baz-form input,
.baz-form select{
	border:1px solid var(--baz-gray-300);
	border-radius:8px;
	padding:10px 12px;
	font-size:15px;
	font-family:inherit;
}
.baz-msg{ font-size:14px; min-height:1.2em; }
.baz-msg--ok{ color:#1a7a3c; }
.baz-msg--error{ color:#c0392b; }

.baz-cuenta__tabs{
	display:flex;
	gap:8px;
	margin-top:20px;
}
.baz-cuenta__tab{
	flex:1;
	padding:10px 14px;
	border-radius:999px;
	border:1px solid var(--baz-gray-300);
	background:var(--baz-white);
	font-weight:700;
	cursor:pointer;
}
.baz-cuenta__tab.is-active{
	background: var(--baz-navy);
	color: var(--baz-white);
	border-color: var(--baz-navy);
}

.baz-header__cuenta{
	font-weight:600;
	color: var(--baz-navy);
	font-size:15px;
	white-space:nowrap;
}
.baz-header__cuenta:hover{ color: var(--baz-blue); }

.baz-fav-btn{
	position:absolute;
	top:10px;
	right:10px;
	width:36px;
	height:36px;
	border-radius:50%;
	border:none;
	background: rgba(255,255,255,0.9);
	box-shadow: var(--baz-shadow);
	font-size:18px;
	line-height:1;
	cursor:pointer;
	display:flex;
	align-items:center;
	justify-content:center;
	z-index:2;
}
.baz-fav-btn::before{ content:"\2661"; color: var(--baz-navy); }
.baz-fav-btn.is-active::before{ content:"\2665"; color:#e0245e; }
