/* ==========================================================================
   WaveAmp — hoja de estilos del modelo de objetos
   Paleta: oceano protagonista, tono mas suave que TWEFDA.
   ========================================================================== */

:root {
	--wa-navy: #0a2540;
	--wa-navy-2: #0d3a5c;
	--wa-cyan: #009ec4;
	--wa-teal: #34b9bc;
	--wa-sand: #d0b38f;
	--wa-white: #ffffff;
	--wa-ink: #16324a;
	--wa-muted: #5c7488;
	--wa-bg-soft: #f4f9fb;
	--wa-radius: 18px;
	--wa-max: 1180px;
	/* Altura de reposo del header fijo (95px de logo + 18px de padding arriba
	   y abajo). Se usa para reservarle sitio al contenido de cada pagina y
	   para que el Hero de Home quede a pantalla completa igualmente. */
	--wa-header-h: 131px;
}

@media (max-width: 640px) {
	:root { --wa-header-h: 98px; }
}

/* El header es "fixed" (no ocupa espacio en el documento), asi que sin esto
   se solaparia con el contenido de cualquier pagina que no empiece con un
   bloque tan alto como el Hero (por ejemplo Invest, Team, Contact...). */
body { padding-top: var(--wa-header-h); }
body.admin-bar { padding-top: calc(var(--wa-header-h) + 32px); }
@media (max-width: 782px) {
	body.admin-bar { padding-top: calc(var(--wa-header-h) + 46px); }
}

.wa-section {
	padding: 88px 24px;
}
.wa-section--soft { background: var(--wa-bg-soft); }
.wa-inner {
	max-width: var(--wa-max);
	margin: 0 auto;
}
.wa-eyebrow {
	display: inline-block;
	color: var(--wa-cyan);
	font-weight: 600;
	font-size: 0.85rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin-bottom: 10px;
}
.wa-h2 {
	font-size: clamp(1.8rem, 3vw, 2.6rem);
	font-weight: 700;
	color: var(--wa-ink);
	line-height: 1.2;
	margin: 0 0 18px;
}
.wa-lead {
	font-size: 1.1rem;
	line-height: 1.7;
	color: var(--wa-muted);
	max-width: 760px;
}
.wa-center { text-align: center; margin-left: auto; margin-right: auto; }

/* Divisor tipo "ola" entre secciones */
.wa-wave-divider { display: block; width: 100%; height: 60px; margin-top: -1px; }
.wa-wave-divider path { fill: var(--wa-bg-soft); }
.wa-wave-divider--navy path { fill: var(--wa-navy); }

/* ---------- Limpieza defensiva del tema ----------
   El plugin pinta su propio header/footer via wp_body_open / wp_footer.
   Estas reglas ocultan cualquier resto de cabecera/titulo/menu que el
   tema (Hello) intente añadir por su cuenta en paginas que aun no esten
   puestas en plantilla "Elementor Canvas". */
.site-header, #masthead, .site-branding, .site-title, .site-description,
.entry-header, .page-header, .entry-title:not(.wa-hero__title),
.menu-toggle, .main-navigation { display: none !important; }

/* ---------- Header ---------- */
.wa-header {
	position: fixed;
	top: 0; left: 0; right: 0;
	z-index: 999;
	padding: 18px 24px;
	transition: background 0.3s ease, box-shadow 0.3s ease, padding 0.3s ease, top 0.2s ease;
}
/* WordPress inyecta la barra de administracion (32px, o 46px en movil)
   fija arriba del todo cuando estas conectado. Desplazamos nuestro header
   esa misma altura para que no quede tapado/recortado por ella. */
body.admin-bar .wa-header { top: 32px; }
@media (max-width: 782px) {
	body.admin-bar .wa-header { top: 46px; }
}
.wa-header__inner {
	max-width: var(--wa-max);
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}
/* El header es siempre solido (no flota transparente sobre nada) — asi no
   se superpone visualmente al video del Hero ni a ningun otro contenido.
   Al hacer scroll solo se anade una sombra mas marcada, como indicador. */
.wa-header {
	background: rgba(255,255,255,0.98);
	box-shadow: 0 2px 14px rgba(10,37,64,0.06);
}
.wa-header.is-scrolled {
	box-shadow: 0 4px 22px rgba(10,37,64,0.12);
	padding: 10px 24px;
}
.wa-header__logo { display: flex; align-items: center; }
.wa-header__logo img { height: 95px; width: auto; max-width: 320px; display: block; object-fit: contain; transition: height 0.25s ease; }
.wa-header.is-scrolled .wa-header__logo img { height: 64px; }
/* Un unico logo siempre visible (ya no hace falta version clara/oscura
   distinta, porque el header nunca esta sobre una imagen oscura). */
.wa-header__logo .wa-logo-light { display: none; }
.wa-header__logo .wa-logo-dark { display: block; }

@media (max-width: 640px) {
	.wa-header__logo img { height: 62px; }
	.wa-header.is-scrolled .wa-header__logo img { height: 46px; }
}

/* ---------- Menus condensados (Paginas / Idioma) ----------
   Ambos siguen el mismo patron: un boton disparador con icono, y un panel
   desplegable debajo, alineado a la derecha, oculto hasta que se abre. */
.wa-header__actions { display: flex; align-items: center; gap: 10px; }
.wa-menu { position: relative; }
.wa-menu__trigger {
	display: flex; align-items: center; gap: 8px;
	background: rgba(10,37,64,0.06) !important;
	border: 1px solid rgba(10,37,64,0.15) !important;
	color: var(--wa-ink) !important;
	padding: 9px 14px;
	border-radius: 999px;
	font-weight: 600;
	font-size: 0.88rem;
	cursor: pointer;
	transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.wa-menu__trigger:hover { border-color: var(--wa-teal) !important; }
.wa-menu__trigger svg { width: 16px; height: 16px; flex-shrink: 0; }
.wa-menu__trigger .wa-menu__chevron { width: 10px; height: 10px; transition: transform 0.2s ease; }
.wa-menu.is-open .wa-menu__chevron { transform: rotate(180deg); }

.wa-menu__panel {
	position: absolute;
	top: calc(100% + 10px);
	right: 0;
	min-width: 200px;
	background: var(--wa-white);
	border-radius: 14px;
	box-shadow: 0 14px 40px rgba(10,37,64,0.16);
	border: 1px solid rgba(10,37,64,0.06);
	padding: 8px;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s;
	z-index: 20;
}
.wa-menu.is-open .wa-menu__panel { opacity: 1; visibility: visible; transform: translateY(0); }
.wa-menu__panel a, .wa-menu__panel button {
	display: block; width: 100%; text-align: left;
	padding: 10px 14px; border-radius: 9px;
	color: var(--wa-ink) !important; text-decoration: none;
	font-weight: 500; font-size: 0.95rem;
	background: none; border: none; cursor: pointer;
}
.wa-menu__panel a:hover, .wa-menu__panel button:hover { background: var(--wa-bg-soft); color: var(--wa-cyan) !important; }
.wa-menu__panel a.is-current { color: var(--wa-cyan) !important; font-weight: 700; }

.wa-header__cta {
	background: var(--wa-cyan) !important;
	border: 1px solid var(--wa-cyan) !important;
	color: var(--wa-white) !important;
	padding: 9px 18px;
	border-radius: 999px;
	font-weight: 600;
	font-size: 0.9rem;
	text-decoration: none;
}

@media (max-width: 640px) {
	.wa-header__cta { display: none; }
	.wa-menu__trigger span.wa-menu__label { display: none; }
	.wa-menu__trigger { padding: 9px; }
	.wa-menu__panel { right: -10px; }
}

/* ---------- Hero ---------- */
.wa-hero {
	position: relative;
	min-height: 92vh;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	color: var(--wa-white);
	text-align: center;
	/* Ya no cancela el padding-top del body: el Hero empieza justo debajo
	   del header, como cualquier otro bloque, sin superponerse a el. */
}
.wa-hero__media { position: absolute; inset: 0; }
.wa-hero__media video, .wa-hero__media img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.wa-hero__overlay {
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(10,37,64,0.55) 0%, rgba(10,37,64,0.35) 45%, rgba(10,37,64,0.75) 100%);
}
.wa-hero__content { position: relative; z-index: 2; max-width: 860px; padding: 0 24px; }
.wa-hero__badge {
	display: inline-flex; align-items: center; gap: 8px;
	background: rgba(255,255,255,0.12); border: 1px solid rgba(255,255,255,0.25);
	border-radius: 999px; padding: 8px 16px; font-size: 0.85rem; margin-bottom: 24px;
}
.wa-hero__badge-dot { width: 8px; height: 8px; border-radius: 50%; background: #4ade80; }
.wa-hero__title { font-size: clamp(2.2rem, 5vw, 4rem); font-weight: 700; line-height: 1.15; margin: 0 0 20px; }
.wa-hero__title .wa-accent {
	background: linear-gradient(90deg, var(--wa-teal), #7dd3fc);
	-webkit-background-clip: text; background-clip: text; color: transparent;
	display: block;
}
.wa-hero__subtitle { font-size: 1.15rem; opacity: 0.9; max-width: 640px; margin: 0 auto 32px; line-height: 1.7; }
.wa-hero__ctas { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; margin-bottom: 48px; }
.wa-btn { display: inline-block; padding: 14px 30px; border-radius: 999px; font-weight: 600; text-decoration: none; font-size: 0.95rem; transition: transform 0.2s ease; }
.wa-btn:hover { transform: translateY(-2px); }
.wa-btn--solid { background: var(--wa-white); color: var(--wa-navy); }
.wa-btn--outline { background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.45); color: var(--wa-white); }
.wa-btn--cyan { background: var(--wa-cyan); color: var(--wa-white); }
.wa-hero__stats { display: flex; gap: 40px; justify-content: center; flex-wrap: wrap; }
.wa-hero__stat-value { font-size: 2rem; font-weight: 700; }
.wa-hero__stat-label { font-size: 0.85rem; opacity: 0.7; margin-top: 4px; }

/* ---------- What We Do / pilares ---------- */
.wa-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; margin-top: 50px; }
@media (max-width: 860px) { .wa-grid-3 { grid-template-columns: 1fr; } }
.wa-card {
	background: var(--wa-white);
	border-radius: var(--wa-radius);
	padding: 34px 28px;
	box-shadow: 0 4px 24px rgba(10,37,64,0.06);
	border: 1px solid rgba(10,37,64,0.05);
}
.wa-card__icon {
	width: 52px; height: 52px; border-radius: 14px;
	background: linear-gradient(135deg, var(--wa-cyan), var(--wa-teal));
	display: flex; align-items: center; justify-content: center;
	color: #fff; font-size: 1.4rem; margin-bottom: 18px;
}
.wa-card__title { font-size: 1.15rem; font-weight: 700; color: var(--wa-ink); margin: 0 0 10px; }
.wa-card__text { color: var(--wa-muted); line-height: 1.65; font-size: 0.98rem; }

.wa-compare { margin-top: 60px; background: var(--wa-white); border-radius: var(--wa-radius); overflow: hidden;
	display: grid; grid-template-columns: 1fr 1fr; box-shadow: 0 4px 24px rgba(10,37,64,0.06); }
@media (max-width: 860px) { .wa-compare { grid-template-columns: 1fr; } }
.wa-compare__text { padding: 44px; display: flex; flex-direction: column; justify-content: center; }
.wa-compare__img { display: flex; align-items: center; justify-content: center; padding: 24px; background: #fff; }
.wa-compare__img img { width: 100%; height: auto; border-radius: 10px; }
.wa-metric-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 22px; }
.wa-metric { background: var(--wa-bg-soft); border-radius: 12px; padding: 16px; }
.wa-metric__value { font-size: 1.5rem; font-weight: 700; color: var(--wa-cyan); }
.wa-metric__label { font-size: 0.85rem; color: var(--wa-muted); }

/* ---------- Problema / Solucion ---------- */
.wa-aerial { position: relative; height: 320px; border-radius: var(--wa-radius); overflow: hidden; margin-bottom: 46px; }
.wa-aerial img { width: 100%; height: 100%; object-fit: cover; }
.wa-aerial__overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10,37,64,0.82), rgba(10,37,64,0.25) 70%);
	display: flex; align-items: center; }
.wa-aerial__text { color: #fff; font-size: 1.35rem; font-weight: 500; max-width: 560px; padding: 0 44px; line-height: 1.5; }
.wa-split-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
@media (max-width: 860px) { .wa-split-2 { grid-template-columns: 1fr; } }
.wa-panel { background: var(--wa-white); border-radius: var(--wa-radius); padding: 38px; box-shadow: 0 4px 24px rgba(10,37,64,0.06); }
.wa-panel__head { display: flex; align-items: center; gap: 14px; margin-bottom: 20px; }
.wa-panel__icon { width: 44px; height: 44px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 1.2rem; }
.wa-panel--problem .wa-panel__icon { background: #fde8e8; color: #d9534f; }
.wa-panel--solution .wa-panel__icon { background: #e3f6f6; color: var(--wa-cyan); }
.wa-panel__title { font-size: 1.3rem; font-weight: 700; color: var(--wa-ink); margin: 0; }
.wa-point-list { list-style: none; margin: 0; padding: 0; }
.wa-point-list li { display: flex; gap: 10px; margin-bottom: 12px; color: var(--wa-muted); line-height: 1.6; }
.wa-point-list li::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--wa-teal); margin-top: 8px; flex-shrink: 0; }
.wa-figure-box { margin-top: 26px; background: var(--wa-bg-soft); border-radius: 14px; padding: 20px 24px; }
.wa-figure-box__value { font-size: 2.2rem; font-weight: 700; color: var(--wa-cyan); }
.wa-figure-box__label { color: var(--wa-muted); font-size: 0.9rem; }

/* ---------- Technology ---------- */
.wa-tech-top { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; align-items: center; margin-bottom: 50px; }
@media (max-width: 860px) { .wa-tech-top { grid-template-columns: 1fr; } }
.wa-tech-top video { width: 100%; border-radius: var(--wa-radius); }
.wa-phase-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
@media (max-width: 860px) { .wa-phase-steps { grid-template-columns: 1fr 1fr; } }
.wa-phase { background: var(--wa-white); border-radius: 14px; padding: 20px; box-shadow: 0 4px 18px rgba(10,37,64,0.05); }
.wa-phase__num { width: 30px; height: 30px; border-radius: 50%; background: rgba(0,158,196,0.12); color: var(--wa-cyan);
	display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 0.85rem; margin-bottom: 10px; }
.wa-phase__title { font-weight: 600; color: var(--wa-ink); margin: 0 0 6px; font-size: 0.98rem; }
.wa-phase__text { color: var(--wa-muted); font-size: 0.85rem; line-height: 1.5; }
.wa-innovation { margin-top: 50px; background: linear-gradient(135deg, rgba(0,158,196,0.08), rgba(52,185,188,0.08));
	border: 1px solid rgba(0,158,196,0.18); border-radius: var(--wa-radius); padding: 42px; }
.wa-innovation__badge { display: inline-block; background: rgba(0,158,196,0.12); color: var(--wa-cyan); font-size: 0.78rem;
	font-weight: 600; padding: 6px 14px; border-radius: 999px; margin-bottom: 16px; }

/* ---------- Team ---------- */
.wa-team-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 26px; margin-top: 50px; }
.wa-team-card { background: var(--wa-white); border-radius: var(--wa-radius); padding: 34px 26px; text-align: center;
	box-shadow: 0 4px 24px rgba(10,37,64,0.06); }
.wa-team-card__photo { width: 92px; height: 92px; border-radius: 50%; object-fit: cover; margin: 0 auto 18px;
	border: 3px solid rgba(0,158,196,0.15); background: var(--wa-bg-soft); }
.wa-team-card__name { font-weight: 700; color: var(--wa-ink); margin: 0; font-size: 1.05rem; }
.wa-team-card__role { color: var(--wa-cyan); font-weight: 600; font-size: 0.88rem; margin: 4px 0 10px; }
.wa-team-card__text { color: var(--wa-muted); font-size: 0.88rem; line-height: 1.6; }
.wa-team-card__linkedin { display: inline-flex; margin-top: 14px; color: var(--wa-muted); }

/* ---------- Impacto (Triple Bottom Line) ---------- */
.wa-pillars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; margin-top: 50px; }
@media (max-width: 860px) { .wa-pillars { grid-template-columns: 1fr; } }
.wa-pillar { border-radius: var(--wa-radius); padding: 32px 28px; background: linear-gradient(160deg, rgba(0,158,196,0.06), rgba(0,158,196,0.01)); border: 1px solid rgba(0,158,196,0.12); }
.wa-pillar__title { font-size: 1.3rem; font-weight: 700; color: var(--wa-ink); margin: 0 0 2px; }
.wa-pillar__subtitle { color: var(--wa-cyan); font-size: 0.85rem; font-weight: 600; margin-bottom: 16px; }
.wa-vision { text-align: center; max-width: 700px; margin: 60px auto 0; }
.wa-vision__quote { font-size: 1.3rem; font-style: italic; color: var(--wa-ink); font-weight: 500; }

/* ---------- Funding ---------- */
.wa-funding { background: linear-gradient(135deg, var(--wa-navy), var(--wa-navy-2)); color: #fff; }
.wa-funding .wa-eyebrow { color: var(--wa-teal); }
.wa-funding .wa-lead { color: rgba(255,255,255,0.78); }
.wa-funding__badge { display: inline-flex; align-items: center; gap: 8px; background: rgba(255,255,255,0.1);
	border: 1px solid rgba(255,255,255,0.2); border-radius: 999px; padding: 7px 16px; font-size: 0.85rem; margin-bottom: 20px; }
.wa-funding-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin: 40px 0; }
@media (max-width: 860px) { .wa-funding-grid { grid-template-columns: 1fr 1fr; } }
.wa-funding-item { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12); border-radius: 14px; padding: 22px; text-align: center; }
.wa-funding-item__value { font-size: 1.9rem; font-weight: 700; color: var(--wa-teal); }
.wa-funding-item__label { font-size: 0.85rem; color: rgba(255,255,255,0.7); margin-top: 4px; }

/* ---------- Contact ---------- */
.wa-contact-note { background: var(--wa-white); border-radius: var(--wa-radius); padding: 34px; text-align: center;
	box-shadow: 0 4px 24px rgba(10,37,64,0.06); max-width: 640px; margin: 40px auto 0; }
.wa-contact-note a { color: var(--wa-cyan); font-weight: 600; }

/* Boton de contorno oscuro: pensado para fondos claros (wa-section--soft),
   a diferencia de .wa-btn--outline (texto blanco, pensado para fondos
   oscuros como el Hero o Funding). */
.wa-btn--outline-dark {
	background: transparent;
	border: 1.5px solid rgba(10,37,64,0.35);
	color: var(--wa-ink);
}
.wa-btn--outline-dark:hover { border-color: var(--wa-cyan); color: var(--wa-cyan); }

.wa-contact-grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 50px;
	align-items: start;
	margin-top: 44px;
}
@media (max-width: 960px) { .wa-contact-grid { grid-template-columns: 1fr; } }

.wa-contact-form-col { background: var(--wa-white); border-radius: var(--wa-radius); padding: 42px;
	box-shadow: 0 4px 24px rgba(10,37,64,0.06); border: 1px solid rgba(10,37,64,0.05); }
@media (max-width: 640px) { .wa-contact-form-col { padding: 28px 22px; } }

.wa-form-notice {
	border-radius: 12px;
	padding: 14px 18px;
	font-size: 0.92rem;
	font-weight: 500;
	margin-bottom: 24px;
}
.wa-form-notice--ok { background: #e6f7ed; color: #1e7a45; border: 1px solid rgba(30,122,69,0.2); }
.wa-form-notice--error { background: #fdeceb; color: #b3352b; border: 1px solid rgba(179,53,43,0.2); }

.wa-contact-form { margin-top: 8px; }

/* Honeypot: presente en el DOM y accesible por tabulacion nunca, pero
   invisible para una persona real. Los bots que rellenan todos los campos
   lo detectan como "texto normal" y lo completan; nosotros lo comprobamos
   en el servidor. */
.wa-hp-field {
	position: absolute !important;
	left: -9999px !important;
	width: 1px; height: 1px;
	overflow: hidden;
}

.wa-form-row { margin-bottom: 20px; }
.wa-form-row--split { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
@media (max-width: 560px) { .wa-form-row--split { grid-template-columns: 1fr; } }

.wa-form-label, .wa-form-label-static {
	display: block;
	font-weight: 600;
	font-size: 0.9rem;
	color: var(--wa-ink);
	margin-bottom: 7px;
}
.wa-form-input {
	display: block;
	width: 100%;
	margin-top: 7px;
	padding: 12px 14px;
	border-radius: 10px;
	border: 1px solid rgba(10,37,64,0.15);
	background: var(--wa-bg-soft);
	color: var(--wa-ink);
	font-size: 0.96rem;
	font-family: inherit;
	transition: border-color 0.2s ease, background 0.2s ease;
}
.wa-form-input:focus {
	outline: none;
	border-color: var(--wa-cyan);
	background: var(--wa-white);
}
textarea.wa-form-input { resize: vertical; min-height: 110px; }
.wa-form-hint { color: var(--wa-muted); font-size: 0.82rem; margin: 8px 0 0; line-height: 1.5; }

.wa-channel-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.wa-channel-tab {
	background: var(--wa-bg-soft);
	border: 1px solid rgba(10,37,64,0.12);
	color: var(--wa-ink);
	padding: 8px 16px;
	border-radius: 999px;
	font-size: 0.85rem;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.wa-channel-tab:hover { border-color: var(--wa-teal); }
.wa-channel-tab.is-active { background: var(--wa-cyan); border-color: var(--wa-cyan); color: var(--wa-white); }

.wa-channel-detail {
	margin-top: 18px;
	padding: 18px;
	background: var(--wa-bg-soft);
	border-radius: 12px;
}
.wa-channel-detail .wa-form-input { background: var(--wa-white); }

.wa-form-checkbox-row {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 0.88rem;
	color: var(--wa-ink);
	line-height: 1.55;
	margin-top: 18px;
	cursor: pointer;
}
.wa-form-checkbox-row input[type="checkbox"] { margin-top: 3px; flex-shrink: 0; width: 16px; height: 16px; accent-color: var(--wa-cyan); }
.wa-form-checkbox-row a { color: var(--wa-cyan); font-weight: 600; }
.wa-form-checkbox-row--muted { color: var(--wa-muted); }

.wa-form-actions {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
	margin-top: 28px;
}
.wa-form-actions .wa-btn { padding: 13px 26px; }

.wa-contact-sidebar { display: flex; flex-direction: column; gap: 20px; }
.wa-contact-card { padding: 26px 24px; }
.wa-contact-card__title { font-size: 1rem; font-weight: 700; color: var(--wa-ink); margin: 0 0 10px; }
.wa-contact-card__line { color: var(--wa-muted); font-size: 0.92rem; line-height: 1.7; margin: 0 0 4px; }
.wa-contact-card__line a { color: var(--wa-cyan); font-weight: 600; text-decoration: none; }
.wa-contact-card__line a:hover { text-decoration: underline; }
.wa-contact-card .wa-btn { margin-top: 12px; width: 100%; text-align: center; }

/* ---------- Footer ---------- */
.wa-footer { background: var(--wa-navy); color: #fff; padding: 64px 24px 30px; }
.wa-footer__grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 40px; max-width: var(--wa-max); margin: 0 auto; }
@media (max-width: 760px) { .wa-footer__grid { grid-template-columns: 1fr; } }
.wa-footer__logo img { height: 36px; margin-bottom: 18px; }
.wa-footer__text { color: rgba(255,255,255,0.7); line-height: 1.7; max-width: 380px; font-size: 0.95rem; }
.wa-footer__title { font-weight: 600; margin-bottom: 18px; }
.wa-footer__links { list-style: none; padding: 0; margin: 0; }
.wa-footer__links li { margin-bottom: 10px; }
.wa-footer__links a { color: rgba(255,255,255,0.7); text-decoration: none; font-size: 0.92rem; }
.wa-footer__links a:hover { color: #fff; }
.wa-footer__bottom { max-width: var(--wa-max); margin: 40px auto 0; padding-top: 24px; border-top: 1px solid rgba(255,255,255,0.1);
	display: flex; justify-content: space-between; flex-wrap: wrap; gap: 10px; color: rgba(255,255,255,0.5); font-size: 0.85rem; }
