/*
Theme Name: Arriendo Vehículos
Theme URI: https://example.com/arriendo-vehiculos
Author: Arriendo Vehículos
Author URI: https://example.com
Description: Tema a medida (PHP puro, sin builders) para plataformas de arriendo de vehículos por días o temporada, con solicitud de reserva sin pago en línea y confirmación manual desde el panel de WordPress.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: arriendo-vehiculos
Domain Path: /languages
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

/* ==========================================================================
   1. DESIGN TOKENS — todo el frontend se gobierna desde aquí.
   Cambiar --radius-btn propaga el radio a TODOS los elementos clicables.
   ========================================================================== */
:root {
	/* Tipografía */
	--font-display: "Space Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
	--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;

	/* Radios — UNA variable gobierna botones, cards, submits, píldoras, chips */
	--radius-btn: 10px;
	--radius-card: 16px;
	--radius-pill: 999px;

	/* Paleta de marca: ink casi negro azulado + acento rojo fuerte */
	--av-ink: #12141c;
	--av-ink-2: #1b1e2a;
	--av-ink-foreground: #f5f6f8;
	--av-ink-foreground-muted: rgba(245, 246, 248, 0.62);
	--av-ink-border: rgba(255, 255, 255, 0.1);

	--av-bg: #fbfbfc;
	--av-fg: #14161d;
	--av-card: #ffffff;
	--av-border: #e6e7eb;
	--av-muted: #6b7280;
	--av-muted-bg: #f2f3f5;

	--av-primary: #d1352c;
	--av-primary-hover: #b32921;
	--av-primary-foreground: #ffffff;
	--av-accent-soft: #fbeae8;
	--av-accent-soft-foreground: #8a281f;

	--av-success: #1f8a52;
	--av-warning: #b57b12;
	--av-danger: #c0332a;

	--av-shadow-soft: 0 1px 2px rgba(18, 20, 28, 0.05), 0 12px 32px rgba(18, 20, 28, 0.07);
	--av-shadow-lift: 0 24px 60px rgba(18, 20, 28, 0.16);

	--av-shell-max: 78rem;
}

/* ==========================================================================
   2. RESET / BASE
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--av-bg);
	color: var(--av-fg);
	font-family: var(--font-sans);
	font-size: 16px;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul, ol { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4, h5 {
	font-family: var(--font-display);
	letter-spacing: -0.02em;
	margin: 0 0 0.5em;
	font-weight: 700;
	line-height: 1.15;
}
p { margin: 0 0 1em; }
button { font-family: inherit; }

.av-shell {
	width: 100%;
	max-width: var(--av-shell-max);
	margin-inline: auto;
	padding-inline: 1.25rem;
}
.av-eyebrow {
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--av-primary);
	display: inline-block;
	margin-bottom: 0.75rem;
}
.screen-reader-text {
	position: absolute !important;
	clip: rect(1px,1px,1px,1px);
	width: 1px; height: 1px; overflow: hidden;
}
.skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	background: var(--av-primary);
	color: #fff;
	padding: 0.75rem 1.25rem;
	z-index: 10000;
	border-radius: 0 0 var(--radius-btn) 0;
}
.skip-link:focus { left: 0; }

/* ==========================================================================
   3. ELEMENTOS CLICABLES — gobernados por --radius-btn
   ========================================================================== */
.av-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	border-radius: var(--radius-btn);
	padding: 0.75rem 1.5rem;
	font-size: 0.9375rem;
	font-weight: 600;
	border: 1px solid transparent;
	cursor: pointer;
	transition: transform 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
	line-height: 1.2;
}
.av-btn--primary { background: var(--av-primary); color: var(--av-primary-foreground); }
.av-btn--primary:hover { background: var(--av-primary-hover); transform: translateY(-2px); }
.av-btn--ink { background: var(--av-ink); color: var(--av-ink-foreground); }
.av-btn--ink:hover { transform: translateY(-2px); }
.av-btn--outline { background: transparent; border-color: var(--av-border); color: var(--av-fg); }
.av-btn--outline:hover { background: var(--av-muted-bg); }
.av-btn--ghost { background: transparent; color: var(--av-fg); padding: 0.5rem 0.9rem; }
.av-btn--block { width: 100%; }
.av-btn:disabled { opacity: 0.55; cursor: not-allowed; transform: none; }

.av-card,
.av-vehiculo-card,
.av-form-card,
input, select, textarea,
.av-pill,
.av-chip,
.av-filter-drawer,
.av-account-pill {
	border-radius: var(--radius-btn);
}
.av-vehiculo-card,
.av-form-card,
.av-card {
	border-radius: var(--radius-card);
}
.av-pill, .av-account-pill, .av-chip { border-radius: var(--radius-pill); }

input[type="text"], input[type="email"], input[type="tel"], input[type="date"],
input[type="number"], input[type="password"], select, textarea {
	width: 100%;
	border: 1px solid var(--av-border);
	background: #fff;
	padding: 0.7rem 0.9rem;
	font-family: inherit;
	font-size: 0.9375rem;
	color: var(--av-fg);
}
input:focus, select:focus, textarea:focus, button:focus-visible, a:focus-visible {
	outline: 2px solid var(--av-primary);
	outline-offset: 2px;
}
label { display: block; font-size: 0.8125rem; font-weight: 600; margin-bottom: 0.35rem; }
.av-field { margin-bottom: 1rem; }
.av-field--check { display: flex; align-items: flex-start; gap: 0.6rem; }
.av-field--check input { width: auto; margin-top: 0.2rem; }
.av-field--check label { font-weight: 400; margin: 0; }

/* ==========================================================================
   4. HEADER
   ========================================================================== */
.av-header { position: sticky; top: 0; z-index: 500; background: var(--av-ink); color: var(--av-ink-foreground); }
.av-topbar { border-bottom: 1px solid var(--av-ink-border); font-size: 0.8125rem; }
.av-topbar .av-shell { display: flex; align-items: center; justify-content: space-between; padding-block: 0.5rem; gap: 1rem; flex-wrap: wrap; }
.av-topbar-left { display: flex; align-items: center; gap: 1.5rem; color: var(--av-ink-foreground-muted); }
.av-topbar-left a { color: inherit; }
.av-topbar-left a:hover { color: var(--av-ink-foreground); }
.av-topbar-social { display: flex; gap: 0.9rem; }
.av-topbar-social a { color: var(--av-ink-foreground-muted); }
.av-topbar-social a:hover { color: var(--av-primary); }

.av-nav-main { border-bottom: 1px solid var(--av-ink-border); }
.av-nav-main .av-shell { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding-block: 0.9rem; }
.av-brand { display: flex; align-items: center; gap: 0.65rem; font-family: var(--font-display); font-weight: 700; font-size: 1.05rem; color: var(--av-ink-foreground); }
.av-brand-mark { width: 34px; height: 34px; border-radius: var(--radius-btn); background: var(--av-primary); display: grid; place-items: center; font-weight: 800; }
.av-brand .dot { color: var(--av-primary); }

.av-nav-toggle { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border: 1px solid var(--av-ink-border); border-radius: var(--radius-btn); background: transparent; color: var(--av-ink-foreground); cursor: pointer; }

.av-primary-nav { display: none; align-items: center; gap: 2.25rem; }
.av-primary-nav > ul { display: flex; align-items: center; gap: 2.25rem; }
.av-primary-nav .menu-item { position: relative; }
.av-primary-nav .menu-item > a { display: flex; align-items: baseline; gap: 0.4rem; font-size: 0.875rem; color: var(--av-ink-foreground-muted); transition: color 0.25s; }
.av-primary-nav .menu-item > a .av-nav-index { font-size: 0.6875rem; color: var(--av-primary); font-weight: 700; }
.av-primary-nav .menu-item > a:hover,
.av-primary-nav .current-menu-item > a { color: var(--av-ink-foreground); }
.av-primary-nav .menu-item-has-children:hover > .sub-menu,
.av-primary-nav .menu-item-has-children:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.av-primary-nav .sub-menu {
	position: absolute; top: 100%; left: 0; margin-top: 0.85rem; min-width: 210px;
	background: var(--av-ink-2); border: 1px solid var(--av-ink-border); border-radius: var(--radius-btn);
	padding: 0.5rem; opacity: 0; visibility: hidden; transform: translateY(6px);
	transition: all 0.25s ease; box-shadow: var(--av-shadow-lift);
}
.av-primary-nav .sub-menu a { display: block; padding: 0.55rem 0.75rem; border-radius: calc(var(--radius-btn) - 4px); font-size: 0.85rem; color: var(--av-ink-foreground-muted); }
.av-primary-nav .sub-menu a:hover { background: var(--av-ink); color: var(--av-ink-foreground); }

.av-nav-right { display: flex; align-items: center; gap: 0.9rem; }
.av-account-pill { display: inline-flex; align-items: center; gap: 0.5rem; background: #000; color: #fff; padding: 0.55rem 1.1rem; font-size: 0.85rem; font-weight: 600; }
.av-account-pill:hover { background: var(--av-primary); }
.av-lang-switcher select { width: auto; background: transparent; border-color: var(--av-ink-border); color: var(--av-ink-foreground); padding: 0.4rem 0.6rem; font-size: 0.8rem; }
.av-lang-switcher { display: flex; align-items: center; }

.av-mobile-panel { display: none; border-bottom: 1px solid var(--av-ink-border); }
.av-mobile-panel.is-open { display: block; }
.av-mobile-panel ul li a { display: block; padding: 0.9rem 0; border-bottom: 1px solid var(--av-ink-border); font-size: 0.9rem; color: var(--av-ink-foreground-muted); }

@media (min-width: 900px) {
	.av-primary-nav { display: flex; }
	.av-nav-toggle { display: none; }
	.av-mobile-panel { display: none !important; }
}

/* ==========================================================================
   5. HERO (compartido) + BREADCRUMBS
   ========================================================================== */
.av-page-hero {
	background: linear-gradient(160deg, var(--av-ink) 0%, var(--av-ink-2) 100%);
	color: var(--av-ink-foreground);
	padding: 3.5rem 0 3rem;
}
.av-page-hero h1 { font-size: clamp(1.9rem, 4vw, 2.75rem); color: var(--av-ink-foreground); }
.av-page-hero p { color: var(--av-ink-foreground-muted); max-width: 42rem; }
.av-breadcrumbs { font-size: 0.8125rem; color: var(--av-ink-foreground-muted); margin-bottom: 1rem; }
.av-breadcrumbs a { color: var(--av-ink-foreground-muted); }
.av-breadcrumbs a:hover { color: var(--av-ink-foreground); }
.av-breadcrumbs .sep { margin: 0 0.4rem; opacity: 0.5; }

/* ==========================================================================
   6. HOME HERO + BUSCADOR
   ========================================================================== */
.av-home-hero { position: relative; background: linear-gradient(160deg, var(--av-ink) 0%, var(--av-ink-2) 100%); background-size: cover; background-position: center; color: var(--av-ink-foreground); overflow: hidden; }
.av-home-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(18,20,28,0.55), rgba(18,20,28,0.92)); }
.av-home-hero .av-shell { position: relative; padding: 5.5rem 1.25rem 8rem; }
.av-home-hero h1 { font-size: clamp(2.25rem, 5vw, 3.75rem); max-width: 38rem; color: #fff; }
.av-home-hero .lede { color: var(--av-ink-foreground-muted); max-width: 32rem; font-size: 1.05rem; }
.av-hero-actions { display: flex; gap: 0.9rem; margin-top: 1.75rem; flex-wrap: wrap; }

.av-search-card {
	position: relative; margin-top: -4.5rem; z-index: 20;
}
.av-search-card form {
	background: #fff; border-radius: var(--radius-card); box-shadow: var(--av-shadow-lift);
	padding: 1.5rem; display: grid; gap: 1rem; grid-template-columns: repeat(4, 1fr) auto;
	align-items: end;
}
.av-search-card label { color: var(--av-fg); }
@media (max-width: 900px) {
	.av-search-card form { grid-template-columns: 1fr 1fr; }
}

/* ==========================================================================
   7. BENEFICIOS / SECCIONES GENÉRICAS
   ========================================================================== */
.av-section { padding: 4.5rem 0; }
.av-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; margin-bottom: 2.5rem; flex-wrap: wrap; }
.av-section-head h2 { font-size: clamp(1.5rem, 3vw, 2.1rem); }
.av-benefits { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.av-benefit { padding: 1.75rem; border: 1px solid var(--av-border); border-radius: var(--radius-card); background: #fff; }
.av-benefit .icon { width: 42px; height: 42px; border-radius: var(--radius-btn); background: var(--av-accent-soft); color: var(--av-primary); display: grid; place-items: center; margin-bottom: 1rem; }
@media (max-width: 900px) { .av-benefits { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .av-benefits { grid-template-columns: 1fr; } }

.av-categories-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1.25rem; }
.av-category-card { position: relative; border-radius: var(--radius-card); overflow: hidden; aspect-ratio: 4/5; background: var(--av-ink); color: #fff; display: flex; align-items: flex-end; padding: 1.25rem; font-weight: 700; }
.av-category-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.75; transition: transform 0.5s; }
.av-category-card:hover img { transform: scale(1.06); }
.av-category-card span { position: relative; z-index: 2; }
.av-category-card::after { content:""; position:absolute; inset:0; background: linear-gradient(180deg, transparent 40%, rgba(0,0,0,.75)); }
@media (max-width: 900px) { .av-categories-grid { grid-template-columns: repeat(2, 1fr); } }

.av-cta-double { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.av-cta-panel { border-radius: var(--radius-card); padding: 2.5rem; }
.av-cta-panel--primary { background: var(--av-primary); color: #fff; }
.av-cta-panel--ink { background: var(--av-ink); color: var(--av-ink-foreground); }
.av-cta-panel h3 { font-size: 1.5rem; }
@media (max-width: 760px) { .av-cta-double { grid-template-columns: 1fr; } }

/* ==========================================================================
   8. GRID DE VEHÍCULOS / CARD
   ========================================================================== */
.av-vehiculos-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
@media (max-width: 1024px) { .av-vehiculos-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .av-vehiculos-grid { grid-template-columns: 1fr; } }

.av-vehiculo-card {
	display: flex; flex-direction: column; background: var(--av-card);
	border: 1px solid var(--av-border); overflow: hidden;
	transition: transform 0.4s ease, box-shadow 0.4s ease, border-color 0.4s ease;
}
.av-vehiculo-card:hover { transform: translateY(-5px); box-shadow: var(--av-shadow-lift); border-color: rgba(0,0,0,0.15); }
.av-vehiculo-card .media { position: relative; background: var(--av-muted-bg); aspect-ratio: 3/2; overflow: hidden; }
.av-vehiculo-card .media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; }
.av-vehiculo-card:hover .media img { transform: scale(1.05); }
.av-vehiculo-card .badge-cat { position: absolute; top: 0.85rem; left: 0.85rem; background: rgba(255,255,255,0.92); padding: 0.3rem 0.7rem; font-size: 0.6875rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; border-radius: var(--radius-btn); }
.av-vehiculo-card .body { padding: 1.25rem; display: flex; flex-direction: column; flex: 1; }
.av-vehiculo-card .head-row { display: flex; justify-content: space-between; gap: 1rem; }
.av-vehiculo-card .head-row h3 { font-size: 1.05rem; margin-bottom: 0.15rem; }
.av-vehiculo-card .head-row .sub { font-size: 0.85rem; color: var(--av-muted); }
.av-vehiculo-card .price { text-align: right; font-family: var(--font-display); font-weight: 700; }
.av-vehiculo-card .price small { display: block; font-family: var(--font-sans); font-weight: 600; font-size: 0.6875rem; text-transform: uppercase; color: var(--av-muted); }
.av-vehiculo-card .specs { display: flex; flex-wrap: wrap; gap: 0.9rem 1.25rem; margin: 1.1rem 0; font-size: 0.85rem; color: var(--av-muted); }
.av-vehiculo-card .specs span { display: inline-flex; align-items: center; gap: 0.35rem; }
.av-vehiculo-card .cta { margin-top: auto; display: flex; align-items: center; justify-content: space-between; border: 1px solid var(--av-border); padding: 0.65rem 1rem; font-weight: 600; font-size: 0.875rem; }
.av-vehiculo-card:hover .cta { border-color: rgba(0,0,0,0.2); background: var(--av-muted-bg); }

/* ==========================================================================
   9. ARCHIVO / FILTROS (drawer en móvil)
   ========================================================================== */
.av-archive-layout { display: grid; grid-template-columns: 280px 1fr; gap: 2.5rem; align-items: start; }
.av-filters-toggle { display: none; align-items: center; gap: 0.5rem; }
.av-filters-toggle .badge { background: var(--av-primary); color: #fff; border-radius: 999px; font-size: 0.7rem; padding: 0.1rem 0.5rem; }
.av-filters { position: sticky; top: 6.5rem; }
.av-filter-group { border-bottom: 1px solid var(--av-border); padding-bottom: 1.25rem; margin-bottom: 1.25rem; }
.av-filter-group h4 { font-size: 0.8125rem; text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 0.85rem; }
.av-chip-group { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.av-chip { display: inline-flex; align-items: center; padding: 0.4rem 0.9rem; font-size: 0.8125rem; border: 1px solid var(--av-border); cursor: pointer; background: #fff; user-select: none; }
.av-chip input { position: absolute; opacity: 0; pointer-events: none; }
.av-chip.is-active, .av-chip:has(input:checked) { background: var(--av-ink); color: #fff; border-color: var(--av-ink); }
.av-check-row { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.55rem; font-size: 0.875rem; font-weight: 400; }
.av-check-row input { width: auto; }
.av-date-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0.6rem; }

.av-filter-overlay { position: fixed; inset: 0; background: rgba(18,20,28,0.55); z-index: 900; opacity: 0; visibility: hidden; transition: opacity 0.3s; }
.av-filter-overlay.is-open { opacity: 1; visibility: visible; }

@media (max-width: 900px) {
	.av-archive-layout { grid-template-columns: 1fr; }
	.av-filters-toggle { display: inline-flex; }
	.av-filters {
		position: fixed; top: 0; right: 0; height: 100%; width: min(340px, 88vw);
		background: #fff; z-index: 950; padding: 1.5rem; overflow-y: auto;
		transform: translateX(100%); transition: transform 0.35s ease; box-shadow: var(--av-shadow-lift);
	}
	.av-filters.is-open { transform: translateX(0); }
	.av-filters-close { display: flex; justify-content: flex-end; margin-bottom: 1rem; }
}

/* ==========================================================================
   10. FICHA DE VEHÍCULO
   ========================================================================== */
.av-vehiculo-layout { display: grid; grid-template-columns: 1.4fr 1fr; gap: 3rem; align-items: start; }
.av-gallery-main { border-radius: var(--radius-card); overflow: hidden; aspect-ratio: 16/10; background: var(--av-muted-bg); margin-bottom: 0.75rem; }
.av-gallery-main img { width: 100%; height: 100%; object-fit: cover; }
.av-gallery-thumbs { display: flex; gap: 0.6rem; flex-wrap: wrap; }
.av-gallery-thumbs img { width: 90px; height: 62px; object-fit: cover; border-radius: calc(var(--radius-btn) - 2px); cursor: pointer; opacity: 0.6; border: 2px solid transparent; }
.av-gallery-thumbs img.is-active, .av-gallery-thumbs img:hover { opacity: 1; border-color: var(--av-primary); }
.av-specs-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.9rem; margin: 1.75rem 0; }
.av-spec-item { border: 1px solid var(--av-border); border-radius: var(--radius-btn); padding: 0.85rem 1rem; }
.av-spec-item .label { font-size: 0.7rem; text-transform: uppercase; color: var(--av-muted); letter-spacing: 0.04em; }
.av-spec-item .value { font-weight: 700; font-family: var(--font-display); }
.av-includes { margin: 1.5rem 0; display: flex; flex-direction: column; gap: 0.5rem; }
.av-includes li { display: flex; gap: 0.6rem; font-size: 0.9rem; }
@media (max-width: 960px) { .av-vehiculo-layout { grid-template-columns: 1fr; } }

.av-form-card { background: #fff; border: 1px solid var(--av-border); padding: 1.75rem; position: sticky; top: 6.5rem; }
.av-form-card h3 { font-size: 1.15rem; }
.av-form-price { font-family: var(--font-display); font-size: 1.6rem; font-weight: 700; margin-bottom: 1.25rem; }
.av-form-price small { font-family: var(--font-sans); font-size: 0.75rem; font-weight: 600; color: var(--av-muted); text-transform: uppercase; }
.av-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; }
.av-form-msg { padding: 0.85rem 1rem; border-radius: var(--radius-btn); font-size: 0.875rem; margin-top: 1rem; }
.av-form-msg--success { background: #eafaf0; color: var(--av-success); }
.av-form-msg--error { background: #fdecec; color: var(--av-danger); }
.av-honeypot-field { position: absolute !important; left: -9999px !important; top: -9999px !important; height: 0; width: 0; overflow: hidden; }

/* ==========================================================================
   11. MI CUENTA / RESERVAS
   ========================================================================== */
.av-account-grid { display: grid; grid-template-columns: 360px 1fr; gap: 2.5rem; align-items: start; }
.av-reservas-list { display: flex; flex-direction: column; gap: 1rem; }
.av-reserva-row { border: 1px solid var(--av-border); border-radius: var(--radius-card); padding: 1.25rem; display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; align-items: center; }
.av-status { display: inline-flex; align-items: center; padding: 0.3rem 0.75rem; font-size: 0.75rem; font-weight: 700; border-radius: 999px; text-transform: uppercase; letter-spacing: 0.03em; }
.av-status--pendiente { background: #fff4e0; color: var(--av-warning); }
.av-status--confirmada { background: #e5f7ec; color: var(--av-success); }
.av-status--rechazada, .av-status--cancelada { background: #fdecec; color: var(--av-danger); }
.av-status--completada { background: #e9edf7; color: #38508c; }
@media (max-width: 900px) { .av-account-grid { grid-template-columns: 1fr; } }

/* ==========================================================================
   12. FAQ / TERMS
   ========================================================================== */
.av-accordion-item { border-bottom: 1px solid var(--av-border); }
.av-accordion-item summary { cursor: pointer; padding: 1.25rem 0; font-weight: 600; font-family: var(--font-display); list-style: none; display: flex; justify-content: space-between; }
.av-accordion-item summary::-webkit-details-marker { display: none; }
.av-accordion-item[open] summary { color: var(--av-primary); }
.av-accordion-item p { padding-bottom: 1.25rem; color: var(--av-muted); }

/* ==========================================================================
   13. FOOTER
   ========================================================================== */
.av-footer { margin-top: 5rem; background: var(--av-ink); color: var(--av-ink-foreground); }
.av-footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 2.5rem; padding: 4rem 0; }
.av-footer-brand p { color: var(--av-ink-foreground-muted); max-width: 24rem; font-size: 0.9rem; }
.av-footer-col h3 { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.14em; color: rgba(245,246,248,0.45); margin-bottom: 1rem; }
.av-footer-col ul { display: flex; flex-direction: column; gap: 0.65rem; }
.av-footer-col a { color: var(--av-ink-foreground-muted); font-size: 0.9rem; }
.av-footer-col a:hover { color: var(--av-primary); }
.av-footer-bottom { border-top: 1px solid var(--av-ink-border); }
.av-footer-bottom .av-shell { display: flex; justify-content: space-between; padding-block: 1.25rem; font-size: 0.75rem; color: rgba(245,246,248,0.45); flex-wrap: wrap; gap: 0.5rem; }
@media (max-width: 900px) { .av-footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .av-footer-grid { grid-template-columns: 1fr; } }

/* Widgets del footer */
.av-widget-area .widget { margin-bottom: 1.5rem; }
.av-widget-area .widget-title { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.14em; color: rgba(245,246,248,0.45); margin-bottom: 1rem; }

/* Utilidades */
.av-muted { color: var(--av-muted); }
.av-mt-lg { margin-top: 2.5rem; }
.av-text-center { text-align: center; }
.av-empty-state { text-align: center; padding: 4rem 1rem; color: var(--av-muted); }
