/* ==========================================================================
   AURELYA · Base
   Reglas globales que Elementor no cubre. Sin colores literales.
   ========================================================================== */
html { scroll-behavior: smooth; }
body {
	background-color: var(--au-surface);
	color: var(--au-on-surface);
	font-family: var(--au-font-body);
	-webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, h6 { font-family: var(--au-font-headline); color: var(--au-teal); margin: 0; }
a { color: var(--au-teal); text-decoration: none; transition: color var(--au-transition); }
a:hover { color: var(--au-copper); }
img { height: auto; max-width: 100%; }

/* Esquinas rectas en todo (DESIGN.md · Shapes) */
button, .button, input, textarea, select, .elementor-button, .elementor-field { border-radius: var(--au-radius) !important; }

/* Etiquetas / overlines (label-sm) */
.au-label, .au-overline {
	font-family: var(--au-font-body);
	font-size: 12px; font-weight: 600; line-height: 1;
	letter-spacing: 0.1em; text-transform: uppercase;
}

/* Chip / tag blush */
.au-chip {
	display: inline-block; padding: 6px 12px;
	background: var(--au-blush); color: var(--au-teal);
	font-family: var(--au-font-body); font-size: 11px; font-weight: 600;
	letter-spacing: 0.1em; text-transform: uppercase; line-height: 1;
}
.au-chip--gray { background: var(--au-surface-container); color: var(--au-on-surface-variant); }
.au-chip--teal { background: var(--au-teal); color: var(--au-white); }

/* Card con borde 1px, sin sombra */
.au-card {
	background: var(--au-white);
	border: var(--au-border);
	transition: box-shadow var(--au-transition), border-color var(--au-transition);
}
.au-card:hover { box-shadow: var(--au-shadow-hover); }
.au-card--copper { border: var(--au-border-copper); }

/* Divisor con rombo (Carrito / Políticas) */
.au-divider-diamond { position: relative; height: 1px; background: var(--au-light-gray); margin: 24px 0; }
.au-divider-diamond::after {
	content: ""; position: absolute; left: 50%; top: 50%; width: 8px; height: 8px;
	background: var(--au-surface); border: 1px solid var(--au-outline-variant);
	transform: translate(-50%, -50%) rotate(45deg);
}

/* Línea decorativa copper 45° */
.au-corner { position: relative; }
.au-corner::before {
	content: ""; position: absolute; width: 120px; height: 1px; background: var(--au-copper);
	transform: rotate(-45deg); transform-origin: left center; pointer-events: none;
}
.au-corner--tr::before { top: 0; right: -20px; transform: rotate(45deg); transform-origin: right center; }

/* Patrones geométricos como textura de fondo */
.au-pattern-45 {
	background-image: repeating-linear-gradient(45deg, var(--au-surface-highest) 0 1px, transparent 1px 28px);
}
.au-pattern-grid {
	background-image:
		linear-gradient(var(--au-surface-high) 1px, transparent 1px),
		linear-gradient(90deg, var(--au-surface-high) 1px, transparent 1px);
	background-size: 48px 48px;
}
.au-pattern-check {
	background-image:
		linear-gradient(45deg, var(--au-surface-container) 25%, transparent 25%),
		linear-gradient(-45deg, var(--au-surface-container) 25%, transparent 25%),
		linear-gradient(45deg, transparent 75%, var(--au-surface-container) 75%),
		linear-gradient(-45deg, transparent 75%, var(--au-surface-container) 75%);
	background-size: 24px 24px;
	background-position: 0 0, 0 12px, 12px -12px, -12px 0;
}

/* Botones (fallback fuera de Elementor) */
.au-btn, .button, button.button, input[type="submit"] {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 16px 32px; border: 1px solid var(--au-teal);
	background: var(--au-teal); color: var(--au-white);
	font-family: var(--au-font-headline); font-weight: 700; font-size: 13px;
	letter-spacing: 0.08em; text-transform: uppercase; line-height: 1;
	cursor: pointer; transition: background var(--au-transition), color var(--au-transition), box-shadow var(--au-transition);
}
.au-btn:hover, .button:hover, input[type="submit"]:hover { background: var(--au-teal-dark); color: var(--au-white); box-shadow: var(--au-shadow-hover); }
.au-btn--outline { background: transparent; color: var(--au-copper); border-color: var(--au-copper); }
.au-btn--outline:hover { background: var(--au-copper); color: var(--au-white); }

/* Inputs: solo borde inferior, copper en focus */
.au-field, .woocommerce input.input-text, .woocommerce textarea, .woocommerce select,
.fluentform input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]), .fluentform textarea, .fluentform select {
	width: 100%; padding: 12px 0; background: transparent;
	border: 0; border-bottom: 1px solid var(--au-light-gray);
	font-family: var(--au-font-body); font-size: 16px; color: var(--au-on-surface);
	outline: none; transition: border-color var(--au-transition);
}
.au-field:focus, .woocommerce input.input-text:focus, .woocommerce textarea:focus, .woocommerce select:focus,
.fluentform input:focus, .fluentform textarea:focus, .fluentform select:focus { border-bottom-color: var(--au-copper); }
.au-field::placeholder, .woocommerce input.input-text::placeholder, .fluentform input::placeholder, .fluentform textarea::placeholder { color: var(--au-outline); }

/* Ocultar título de página por defecto de Hello (lo ponen las plantillas de Elementor) */
.elementor-page .entry-title, .elementor-page .page-header { display: none; }

/* ==========================================================================
   Header
   ========================================================================== */
.au-header { position: relative; }
.au-header__wordmark a, .au-header__wordmark { color: var(--au-teal); }
.au-header__wordmark a:hover { color: var(--au-copper); }
.au-header__nav .hfe-nav-menu__layout-horizontal .menu-item a.hfe-menu-item { font-family: var(--au-font-body); }
.au-header__nav .hfe-nav-menu li.current-menu-item > a { color: var(--au-teal); }
.au-header__icons .hfe-cart-wrapper .hfe-menu-cart__toggle .elementor-button { padding: 0; border: 0; background: transparent; }
.au-header__icons .hfe-search-icon-toggle i, .au-header__icons .hfe-search-form__toggle { color: var(--au-teal); }
.au-header__icons .hfe-search-form__container { border: 1px solid var(--au-light-gray); }
.au-header__account .elementor-icon { color: var(--au-teal); }
.au-header__account .elementor-icon:hover { color: var(--au-copper); }
.au-header__account .elementor-icon svg, .au-header__account .elementor-icon i { font-size: 22px; }

/* Mobile: hamburguesa al final, iconos antes */
@media (max-width: 1024px) {
	.au-header__inner { flex-wrap: nowrap; }
	.au-header__nav { order: 3; flex-grow: 0 !important; width: auto; }
	.au-header__icons { order: 2; margin-left: auto; }
	.au-header__nav .hfe-nav-menu__toggle { margin: 0; border: 0; }
	.au-header__nav .hfe-nav-menu__toggle svg, .au-header__nav .hfe-nav-menu__toggle i { color: var(--au-teal); fill: var(--au-teal); }
	.au-header__nav nav.hfe-dropdown { position: absolute; left: 0; right: 0; top: 100%; background: var(--au-white); border-top: 1px solid var(--au-light-gray); box-shadow: var(--au-shadow-hover); }
	.au-header__nav nav.hfe-dropdown .menu-item a { padding: 16px var(--au-margin) !important; border-bottom: 1px solid var(--au-surface-container); }
}

/* ==========================================================================
   Footer
   ========================================================================== */
.au-footer { border-top: 1px solid var(--au-light-gray); }
.au-footer__heading { letter-spacing: 0.1em; }
.au-footer__menu .hfe-nav-menu__layout-vertical .menu-item a { font-family: var(--au-font-body); letter-spacing: 0.02em; }
.au-footer__menu .hfe-nav-menu__layout-vertical .menu-item a:hover { color: var(--au-copper); }
.au-footer__copyright .hfe-copyright-wrapper { font-family: var(--au-font-body); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--au-on-surface-variant); }
.au-header__brand, .au-header__icons { width: auto !important; flex: 0 0 auto; }
.au-header__nav { flex: 1 1 auto; }
.e-con { min-width: 0; }
.au-footer__social .elementor-icon { width: 34px; height: 34px; padding: 0; display: inline-flex; align-items: center; justify-content: center; border-width: 1px; }
.au-footer__mobile .au-footer__menu .hfe-nav-menu__layout-vertical .menu-item a { font-size: 13px; padding: 3px 0 !important; }
