/* ================================================================================
   CONTACTO - ESTILOS CSS
   Basado en la estética de la portada principal y la página Nosotros
   ================================================================================ */

:root {
	--bg: #f5f1ec;
	--surface: #ffffff;
	--surface-soft: #f8f6f3;
	--text: #161616;
	--muted: #6d6863;
	--red: #e21c1c;
	--red-dark: #be1515;
	--dark: #080808;
	--border: rgba(18, 18, 18, .1);
	--shadow: 0 20px 60px rgba(0, 0, 0, .12);
	--shadow-strong: 0 24px 70px rgba(0, 0, 0, .22);
}

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	color: var(--text);
	background:
		radial-gradient(circle at top left, rgba(226, 28, 28, .06), transparent 28%),
		linear-gradient(180deg, #faf8f5 0%, var(--bg) 100%);
	overflow-x: hidden;
}

img {
	max-width: 100%;
	display: block;
}

a {
	text-decoration: none;
}

.container {
	position: relative;
	z-index: 1;
}

.site-header {
	position: absolute;
	top: 1rem;
	inset: 0 0 auto 0;
	z-index: 30;
	pointer-events: none;
}

.navbar {
	padding: 0;
}

.navbar-shell {
	width: min(calc(100% - 2rem), 1320px);
	max-width: 1320px;
	margin: 0 auto;
	padding: .95rem 1.35rem;
	background: rgba(5, 5, 5, .58);
	backdrop-filter: blur(18px) saturate(120%);
	-webkit-backdrop-filter: blur(18px) saturate(120%);
	box-shadow: 0 18px 45px rgba(0, 0, 0, .25), inset 0 1px 0 rgba(255, 255, 255, .07);
	border-radius: 24px;
	pointer-events: auto;
}

.navbar-brand img {
	height: 54px;
	width: auto;
}

.navbar-brand {
	padding: 0;
	margin: 0;
	flex-shrink: 0;
}

.navbar-toggler {
	border: 0;
	box-shadow: none;
	padding: .45rem .65rem;
}

.navbar-toggler:focus {
	box-shadow: none;
}

.navbar-collapse {
	justify-content: flex-end;
}

.navbar-nav .nav-link {
	position: relative;
	color: rgba(255, 255, 255, .85);
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	padding: .75rem .9rem;
	transition: color .2s ease, opacity .2s ease;
}

.navbar-nav .nav-link::after {
	content: "";
	position: absolute;
	left: .72rem;
	right: .72rem;
	bottom: .4rem;
	height: 2px;
	background: var(--red);
	transform: scaleX(0);
	transform-origin: center;
	transition: transform .22s ease;
}

.navbar-nav .nav-link:hover::after,
.navbar-nav .nav-link.active::after {
	transform: scaleX(1);
}

.navbar-nav .nav-link:hover,
.navbar-nav .nav-link.active {
	color: var(--red);
}

.btn-header,
#btn-hero,
#btn-primary-hero,
#btn-secondary-hero,
#btn-white-hero {
	display: inline-flex;
	align-items: center;
	gap: .65rem;
	font-weight: 700;
	letter-spacing: .02em;
	transition: transform .22s ease, box-shadow .22s ease, background-color .22s ease, border-color .22s ease, color .22s ease;
}

.btn-header,
#btn-hero {
	background: var(--red);
	color: #fff;
	border: 0;
	border-radius: 0;
	padding: .95rem 1.25rem;
	font-size: .85rem;
	text-transform: uppercase;
	box-shadow: 0 16px 30px rgba(226, 28, 28, .25);
	margin-left: 1rem;
}

.btn-header:hover,
#btn-hero:hover,
#btn-primary-hero:hover,
#btn-white-hero:hover {
	transform: translateY(-2px);
	box-shadow: 0 18px 35px rgba(0, 0, 0, .22);
}

#btn-primary-hero,
#btn-secondary-hero,
#btn-white-hero {
	padding: 1rem 1.35rem;
	border-radius: 0;
	font-size: .84rem;
	text-transform: uppercase;
}

#btn-primary-hero {
	background: var(--red);
	color: #fff;
	box-shadow: 0 18px 35px rgba(226, 28, 28, .3);
}

#btn-secondary-hero {
	color: #fff;
	border: 1px solid rgba(255, 255, 255, .35);
	background: rgba(255, 255, 255, .05);
}

#btn-secondary-hero:hover {
	background: rgba(255, 255, 255, .1);
	color: #fff;
}

#btn-white-hero {
	margin-top: 2rem;
	align-self: flex-start;
	background: #fff;
	color: var(--red);
	box-shadow: 0 16px 30px rgba(0, 0, 0, .14);
}

.eyebrow,
.section-kicker {
	margin: 0 0 .9rem;
	font-size: .74rem;
	font-weight: 800;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .86);
}

.section-kicker {
	color: var(--red);
}

.hero-contact h1,
.section-title,
.cta-panel h3,
.contact-card h3,
.contact-hero-top h2,
.side-block-dark h3 {
	font-family: "Playfair Display", Georgia, serif;
	font-weight: 800;
	line-height: .95;
	letter-spacing: -.03em;
}

.hero-contact {
	position: relative;
	min-height: 100vh;
	display: flex;
	align-items: center;
	background:
		linear-gradient(90deg, rgba(6, 6, 6, .9) 0%, rgba(6, 6, 6, .74) 44%, rgba(6, 6, 6, .42) 72%, rgba(6, 6, 6, .18) 100%),
		url("https://santanareformas.s3.us-east-2.amazonaws.com/img/inicio/hero/hero.png") center center / cover no-repeat;
	overflow: hidden;
	padding-top: 7rem;
}

.hero-contact-overlay {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at 15% 30%, rgba(255, 255, 255, .08), transparent 24%),
		linear-gradient(120deg, rgba(255, 255, 255, .04) 0%, transparent 36%, transparent 70%, rgba(0, 0, 0, .2) 100%);
	pointer-events: none;
}

.hero-contact::after {
	content: "";
	position: absolute;
	inset: auto 0 0 0;
	height: 140px;
	background: linear-gradient(180deg, transparent 20%, rgba(245, 241, 236, .65) 100%);
	pointer-events: none;
}

.hero-contact-inner {
	position: relative;
	z-index: 2;
	padding: 6rem 0 4.8rem;
}

.hero-contact h1 {
	margin: 0;
	color: #fff;
	font-size: clamp(3.2rem, 6vw, 6.2rem);
	max-width: 9ch;
}

.hero-text,
.section-text,
.contact-hero-top p,
.contact-card p,
.contact-form-panel p,
.side-block p,
.side-info-list span {
	line-height: 1.75;
	color: var(--muted);
}

.hero-text {
	margin: 1.4rem 0 0;
	max-width: 36rem;
	font-size: 1.05rem;
	color: rgba(255, 255, 255, .82);
}

.hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin-top: 2rem;
}

.contact-hero-card {
	background: rgba(255, 255, 255, .94);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	box-shadow: var(--shadow-strong);
	border: 1px solid rgba(255, 255, 255, .18);
	overflow: hidden;
}

.contact-hero-top {
	padding: 1.45rem 1.35rem 1.15rem;
	background: linear-gradient(180deg, rgba(255, 255, 255, .95), rgba(248, 246, 243, .9));
}

.contact-hero-top span {
	display: inline-flex;
	margin-bottom: .9rem;
	font-size: .74rem;
	font-weight: 800;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--red);
}

.contact-hero-top h2 {
	margin: 0;
	font-size: 2rem;
	color: var(--text);
}

.contact-hero-top p {
	margin: .9rem 0 0;
}

.contact-quick-list {
	display: grid;
	gap: 0;
	background: rgba(255, 255, 255, .8);
}

.contact-quick-list a {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: .95rem;
	align-items: center;
	padding: 1rem 1.25rem;
	border-top: 1px solid var(--border);
	color: var(--text);
	transition: background-color .2s ease, transform .2s ease;
}

.contact-quick-list a:hover {
	background: rgba(226, 28, 28, .04);
	transform: translateX(3px);
}

.contact-quick-list i {
	width: 2.8rem;
	height: 2.8rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: rgba(226, 28, 28, .08);
	color: var(--red);
	font-size: 1rem;
}

.contact-quick-list strong {
	display: block;
	font-size: .98rem;
	line-height: 1.2;
}

.contact-quick-list span {
	display: block;
	font-size: .86rem;
	margin-top: .15rem;
}

section {
	padding: 5.8rem 0;
}

.contact-cards-section,
.contact-split-section {
	background: linear-gradient(180deg, rgba(255, 255, 255, .92), rgba(248, 246, 243, .92));
}

.section-title {
	margin: 0;
	font-size: clamp(2.2rem, 4vw, 4rem);
	color: var(--text);
}

.section-text {
	margin: 1rem 0 0;
	max-width: 34rem;
}

.section-head,
.section-head-dark {
	display: grid;
	gap: 2rem;
	align-items: center;
}

.section-head {
	grid-template-columns: minmax(0, 1.4fr) auto;
	margin-bottom: 1.5rem;
}

.contact-card,
.contact-form-panel,
.contact-side-panel,
.cta-panel {
	height: 100%;
	background: var(--surface);
	border: 1px solid rgba(16, 16, 16, .08);
	box-shadow: 0 14px 40px rgba(16, 16, 16, .06);
	transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.contact-card:hover,
.contact-form-panel:hover,
.contact-side-panel:hover,
.cta-panel:hover {
	transform: translateY(-6px);
	box-shadow: var(--shadow);
	border-color: rgba(226, 28, 28, .18);
}

.contact-card {
	padding: 1.8rem 1.35rem 1.45rem;
	background: linear-gradient(180deg, rgba(255, 255, 255, .95), rgba(248, 246, 243, .78));
}

.contact-card i {
	display: inline-flex;
	width: 3rem;
	height: 3rem;
	align-items: center;
	justify-content: center;
	background: rgba(226, 28, 28, .08);
	color: var(--red);
	font-size: 1.08rem;
	margin-bottom: 1rem;
}

.contact-card h3 {
	margin: 0;
	font-size: 1.45rem;
	color: var(--text);
}

.contact-card p {
	margin: .85rem 0 1.2rem;
	font-size: .95rem;
}

.contact-card a {
	display: inline-flex;
	align-items: center;
	gap: .65rem;
	font-size: .84rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--text);
	transition: transform .2s ease, color .2s ease;
}

.contact-card a:hover {
	transform: translateX(3px);
	color: var(--red);
}

.contact-form-panel {
	padding: 2rem;
}

.contact-form label {
	display: block;
	margin: 0 0 .45rem;
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--text);
}

.contact-form input,
.contact-form textarea {
	width: 100%;
	border: 1px solid rgba(16, 16, 16, .12);
	background: rgba(255, 255, 255, .88);
	color: var(--text);
	padding: .95rem 1rem;
	outline: none;
	transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.contact-form textarea {
	resize: vertical;
	min-height: 160px;
}

.contact-form input:focus,
.contact-form textarea:focus {
	border-color: rgba(226, 28, 28, .5);
	box-shadow: 0 0 0 4px rgba(226, 28, 28, .08);
	background: #fff;
}

.contact-side-panel {
	display: grid;
	gap: 1rem;
	padding: 1.25rem;
	background: rgba(255, 255, 255, .72);
}

.side-block {
	padding: 1.25rem 1.1rem;
	background: linear-gradient(180deg, rgba(255, 255, 255, .95), rgba(248, 246, 243, .86));
	border: 1px solid rgba(16, 16, 16, .08);
}

.side-block-dark {
	background: linear-gradient(180deg, #0b0b0b 0%, #080808 100%);
	color: #fff;
}

.side-block-dark p,
.side-block-dark h3 {
	color: #fff;
}

.side-block-dark h3 {
	margin: 0;
	font-size: 1.9rem;
}

.section-kicker-dark {
	color: rgba(255, 255, 255, .72);
}

.side-info-list {
	display: grid;
	gap: .95rem;
	margin-top: 1rem;
}

.side-info-list > div {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: .9rem;
	align-items: center;
	padding: .9rem;
	background: rgba(255, 255, 255, .72);
	border: 1px solid rgba(16, 16, 16, .08);
}

.side-info-list i {
	width: 2.7rem;
	height: 2.7rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: rgba(226, 28, 28, .08);
	color: var(--red);
	font-size: 1rem;
}

.side-info-list span,
.side-info-list strong {
	display: block;
}

.side-info-list strong {
	font-size: 1rem;
	color: var(--text);
	line-height: 1.25;
}

.side-info-list span {
	font-size: .84rem;
}

.contact-socials {
	justify-content: flex-start;
	padding-top: .15rem;
}

.contact-cta-section {
	padding-top: 2rem;
}

.cta-panel {
	padding: 2.2rem 2rem;
	background: linear-gradient(180deg, rgba(255, 255, 255, .96), rgba(248, 246, 243, .88));
}

.cta-panel-wide {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: .2rem;
}

.cta-panel h3 {
	margin: 0;
	font-size: clamp(2rem, 3.5vw, 3.4rem);
	color: var(--text);
}

.cta-panel p {
	margin: .35rem 0 0;
	color: var(--muted);
	line-height: 1.7;
}

/* Footer */
.site-footer {
	background: linear-gradient(180deg, #060606 0%, #080808 100%);
	color: rgba(255, 255, 255, .8);
	padding: 3.6rem 0 1.25rem;
}

.footer-top {
	padding-bottom: 1.55rem;
	border-bottom: 1px solid var(--footer-border);
}

.footer-logo {
	height: 58px;
	width: auto;
}

.site-footer p {
	margin: .9rem 0 0;
	font-size: .92rem;
	line-height: 1.62;
	color: rgba(255, 255, 255, .68);
}

.site-footer h4 {
	margin: 0 0 .9rem;
	font-size: .76rem;
	font-weight: 800;
	letter-spacing: .15em;
	text-transform: uppercase;
	color: #fff;
}

.site-footer ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.site-footer li {
	margin-bottom: .56rem;
}

.site-footer a,
.site-footer span {
	font-size: .93rem;
	color: rgba(255, 255, 255, .72);
	transition: color .2s ease;
}

.site-footer a:hover {
	color: #fff;
}

.footer-socials {
	display: flex;
	gap: .65rem;
	margin-top: 1.1rem;
}

.footer-socials a,
.whatsapp-circle {
	width: 2.3rem;
	height: 2.3rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, .24);
	color: #fff;
	transition: transform .2s ease, border-color .2s ease;
}

.footer-socials a:hover,
.whatsapp-circle:hover {
	transform: translateY(-2px);
	border-color: var(--red);
}

.footer-contact-list li {
	display: flex;
	align-items: flex-start;
	gap: .6rem;
}

.footer-contact-list i {
	margin-top: .15rem;
	color: rgba(255, 255, 255, .57);
}

.whatsapp-circle {
	margin-top: .9rem;
	width: 3rem;
	height: 3rem;
	font-size: 1.1rem;
}

.footer-bottom {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	padding-top: 1rem;
	flex-wrap: wrap;
}

.footer-bottom p {
	margin: 0;
	font-size: .87rem;
}

.footer-legal {
	display: flex;
	align-items: center;
	gap: .75rem;
	flex-wrap: wrap;
}

.footer-legal span {
	display: block;
	width: 1px;
	height: 14px;
	background: rgba(255, 255, 255, .2);
}

@media (max-width: 991.98px) {
	.site-header {
		top: .65rem;
	}

	.navbar-shell {
		width: min(calc(100% - 1rem), 1320px);
		padding: .85rem 1rem;
		border-radius: 22px;
	}

	.navbar-collapse {
		padding: 1rem 0 .2rem;
		width: 100%;
	}

	.navbar-nav .nav-link {
		padding: .58rem 0;
	}

	.navbar-nav .nav-link::after {
		left: 0;
		right: 0;
		bottom: .18rem;
	}

	.btn-header,
	#btn-hero {
		width: 100%;
		margin: .7rem 0 0;
		justify-content: center;
	}

	.hero-contact {
		align-items: center;
	}

	.hero-contact h1 {
		max-width: 11ch;
	}

	.section-head {
		grid-template-columns: 1fr;
	}

	.footer-bottom {
		flex-direction: column;
		align-items: flex-start;
	}
}

@media (max-width: 767.98px) {
	.site-header {
		top: .45rem;
	}

	.navbar-brand img {
		height: 46px;
	}

	.navbar-shell {
		width: min(calc(100% - .75rem), 1320px);
		padding: .75rem .85rem;
		border-radius: 20px;
	}

	.navbar-nav .nav-link {
		font-size: .76rem;
	}

	section {
		padding: 4.5rem 0;
	}

	.hero-contact-inner {
		padding-top: 7rem;
		padding-bottom: 4rem;
	}

	.hero-contact h1 {
		font-size: clamp(2.7rem, 12vw, 4.4rem);
	}

	.hero-text {
		font-size: 1rem;
	}

	.contact-form-panel {
		padding: 1.5rem;
	}

	.cta-panel {
		padding: 1.7rem 1.35rem;
	}

	#btn-primary-hero,
	#btn-secondary-hero,
	#btn-white-hero,
	#btn-hero,
	.contact-card a,
	.contact-form button {
		width: 100%;
		justify-content: center;
	}
}
