/*
 * ============================================================
 *  MILES LVCIS Nº 110 — CSS Global para WordPress
 *  Pegar en: Apariencia > Personalizar > CSS adicional
 *  Tema recomendado: Hello Elementor
 * ============================================================
 */

/* ─── VARIABLES DE DISEÑO ─── */
:root {
  --gold:        #9A6F28;
  --gold-bright: #C9A84C;
  --gold-dim:    rgba(154,111,40,0.10);
  --ivory:       #FAF7F0;
  --surface:     #F3EDE0;
  --surface-2:   #EBE2CE;
  --ink:         #1C1710;
  --ink-mid:     #4A3F2F;
  --ink-light:   #7A6A52;
  --border:      rgba(154,111,40,0.22);
  --shadow:      rgba(28,23,16,0.08);
  --radius:      0px; /* Estilo sin bordes redondeados, sobrio */
}

/* ─── RESET Y BASE ─── */
html { scroll-behavior: smooth; }

body {
  background-color: var(--ivory) !important;
  color: var(--ink) !important;
  font-family: 'Libre Baskerville', Georgia, serif !important;
  font-weight: 400 !important;
  font-size: 16px !important;
  line-height: 1.85 !important;
  overflow-x: hidden;
}

/* Textura de papel sutil */
body::before {
  content: '';
  position: fixed;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");
  pointer-events: none;
  z-index: 9999;
}

/* ─── TIPOGRAFÍA ─── */
h1, h2, h3, h4, h5, h6,
.elementor-heading-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 400 !important;
  color: var(--ink) !important;
  line-height: 1.15 !important;
}

p, .elementor-widget-text-editor,
.elementor-widget-text-editor p {
  font-family: 'Libre Baskerville', Georgia, serif !important;
  color: var(--ink-mid) !important;
  font-size: 16px !important;
  line-height: 1.85 !important;
}

/* ─── HEADER / MENÚ (Hello Elementor Header Builder) ─── */
.e-n-menu,
.elementor-nav-menu,
header.site-header {
  background: rgba(250,247,240,0.93) !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  border-bottom: 1px solid var(--border) !important;
  box-shadow: 0 2px 32px var(--shadow) !important;
}

/* Links del menú */
.elementor-nav-menu .elementor-item,
.e-n-menu-item {
  font-family: 'Cinzel', serif !important;
  font-size: 10px !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  color: var(--ink-mid) !important;
  transition: color 0.3s !important;
}
.elementor-nav-menu .elementor-item:hover,
.e-n-menu-item:hover {
  color: var(--gold) !important;
}
.elementor-nav-menu .elementor-item:after,
.e-n-menu-item::after {
  background-color: var(--gold) !important;
}

/* Logo del sitio */
.site-title a,
.elementor-site-title {
  font-family: 'Cinzel', serif !important;
  font-size: 13px !important;
  letter-spacing: 2px !important;
  color: var(--ink) !important;
  text-decoration: none !important;
}

/* ─── BOTONES ─── */
.elementor-button,
a.elementor-button,
button.elementor-button,
.btn-ml {
  font-family: 'Cinzel', serif !important;
  font-size: 11px !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  border: 1.5px solid var(--gold) !important;
  color: var(--gold) !important;
  background: transparent !important;
  border-radius: 0 !important;
  padding: 14px 36px !important;
  transition: all 0.3s ease !important;
  position: relative;
  overflow: hidden;
}
.elementor-button::before,
.btn-ml::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--gold);
  transform: translateX(-101%);
  transition: transform 0.3s ease;
  z-index: 0;
}
.elementor-button:hover::before,
.btn-ml:hover::before { transform: translateX(0); }
.elementor-button:hover,
.btn-ml:hover {
  color: var(--ivory) !important;
}
.elementor-button span,
.btn-ml span { position: relative; z-index: 1; }

/* ─── SECCIONES — fondos alternos ─── */

/* Sección clara (ivory) */
.section-ivory,
.e-con.section-ivory,
.elementor-section.section-ivory > .elementor-container {
  background-color: var(--ivory) !important;
}

/* Sección pergamino */
.section-surface,
.e-con.section-surface,
.elementor-section.section-surface > .elementor-container {
  background-color: var(--surface) !important;
}

/* Sección oscura (contacto, footer) */
.section-dark,
.e-con.section-dark,
.elementor-section.section-dark > .elementor-container {
  background-color: var(--ink) !important;
}
.section-dark h1,
.section-dark h2,
.section-dark h3,
.section-dark .elementor-heading-title {
  color: #F0E8D8 !important;
}
.section-dark p,
.section-dark .elementor-widget-text-editor p {
  color: #B8A98C !important;
}

/* ─── ETIQUETA DE SECCIÓN (supratítulo dorado) ─── */
.section-label,
.elementor-widget-heading.is-label .elementor-heading-title {
  font-family: 'Cinzel', serif !important;
  font-size: 10px !important;
  letter-spacing: 4px !important;
  color: var(--gold) !important;
  text-transform: uppercase !important;
  margin-bottom: 16px !important;
  display: block;
}

/* ─── HERO ─── */
.hero-section {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 120px 5% 80px;
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(ellipse 70% 60% at 50% 30%, rgba(201,168,76,0.14) 0%, transparent 65%),
    radial-gradient(ellipse 50% 40% at 80% 80%, rgba(154,111,40,0.06) 0%, transparent 60%),
    linear-gradient(180deg, #FAF7F0 0%, #F3EDE0 100%) !important;
}
/* Grid geométrico decorativo en el hero */
.hero-section::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(154,111,40,0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(154,111,40,0.06) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: radial-gradient(ellipse at 50% 40%, black 20%, transparent 65%);
  mask-image: radial-gradient(ellipse at 50% 40%, black 20%, transparent 65%);
  pointer-events: none;
  z-index: 0;
}
.hero-section .elementor-container { position: relative; z-index: 1; }

.hero-section .elementor-heading-title {
  font-size: clamp(36px, 6vw, 72px) !important;
  line-height: 1.1 !important;
}
.hero-section em { color: var(--gold) !important; font-style: italic; }

/* Indicador scroll */
.scroll-indicator {
  position: absolute;
  bottom: 40px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  font-family: 'Cinzel', serif;
  font-size: 9px;
  letter-spacing: 3px;
  color: var(--ink-light);
}
.scroll-indicator::before {
  content: '';
  display: block;
  width: 1px;
  height: 48px;
  background: linear-gradient(to bottom, var(--gold), transparent);
  animation: scrollPulse 2s ease-in-out infinite;
}
@keyframes scrollPulse {
  0%, 100% { opacity: 0.4; }
  50% { opacity: 1; }
}

/* ─── EMBLEMA GIRATORIO ─── */
.emblem-ring-wrapper {
  position: relative;
  width: 160px;
  height: 160px;
  margin: 0 auto 48px;
}
.emblem-ring-svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  animation: rotate 30s linear infinite;
}
@keyframes rotate { to { transform: rotate(360deg); } }
.emblem-ring-inner {
  position: absolute;
  inset: 20px;
  border-radius: 50%;
  background: var(--ivory);
  border: 1.5px solid var(--gold-bright);
  box-shadow: 0 4px 32px rgba(154,111,40,0.15), inset 0 0 20px rgba(201,168,76,0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 52px;
}

/* ─── GALERÍA (Elementor Gallery Widget o FooGallery) ─── */
.gallery-section { background-color: var(--surface) !important; }

/* Si usas el widget Elementor Gallery */
.elementor-gallery-item__overlay {
  background: linear-gradient(to top,
    rgba(28,23,16,0.88) 0%,
    rgba(28,23,16,0.55) 50%,
    rgba(28,23,16,0.2) 100%) !important;
}
.elementor-gallery-item__title {
  font-family: 'Cinzel', serif !important;
  font-size: 11px !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  color: var(--gold-bright) !important;
}
.elementor-gallery-item__description {
  font-family: 'Libre Baskerville', serif !important;
  font-size: 13px !important;
  color: rgba(250,247,240,0.85) !important;
  line-height: 1.6 !important;
}

/* ─── TARJETAS / PILARES ─── */
.pillar-card,
.elementor-widget-container .pillar-card {
  background: var(--surface) !important;
  border: 1px solid transparent;
  box-shadow: 0 2px 16px var(--shadow);
  padding: 48px 36px;
  position: relative;
  overflow: hidden;
  transition: box-shadow 0.3s, border-color 0.3s, transform 0.3s;
}
.pillar-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
  transform: scaleX(0);
  transition: transform 0.5s;
}
.pillar-card:hover {
  box-shadow: 0 8px 40px rgba(154,111,40,0.12) !important;
  border-color: var(--border) !important;
  transform: translateY(-4px);
}
.pillar-card:hover::before { transform: scaleX(1); }
.pillar-number {
  font-family: 'Cormorant Garamond', serif;
  font-size: 80px;
  font-weight: 300;
  color: rgba(154,111,40,0.12);
  line-height: 1;
  margin-bottom: 16px;
  display: block;
}
.pillar-title {
  font-family: 'Cinzel', serif !important;
  font-size: 12px !important;
  letter-spacing: 2px !important;
  color: var(--gold) !important;
  text-transform: uppercase !important;
  margin-bottom: 16px !important;
}

/* ─── ARTÍCULOS / POSTS (archive y blog) ─── */
.elementor-post__card,
.elementor-post.elementor-grid-item article {
  background: var(--ivory) !important;
  border: 1px solid var(--border) !important;
  box-shadow: 0 2px 20px var(--shadow) !important;
  border-radius: 0 !important;
  transition: box-shadow 0.3s, transform 0.3s !important;
}
.elementor-post__card:hover,
.elementor-post.elementor-grid-item article:hover {
  box-shadow: 0 8px 48px rgba(154,111,40,0.14) !important;
  transform: translateY(-4px) !important;
}
.elementor-post__title a,
.elementor-post__title {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 20px !important;
  font-weight: 400 !important;
  color: var(--ink) !important;
  transition: color 0.3s !important;
}
.elementor-post__title a:hover {
  color: var(--gold) !important;
  text-decoration: none !important;
}
.elementor-post__excerpt p {
  font-size: 14px !important;
  color: var(--ink-mid) !important;
  line-height: 1.82 !important;
}
.elementor-post__read-more {
  font-family: 'Cinzel', serif !important;
  font-size: 10px !important;
  letter-spacing: 2px !important;
  color: var(--gold) !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
}
.elementor-post-info .elementor-icon,
.elementor-post-info span {
  color: var(--ink-light) !important;
  font-size: 11px !important;
  font-family: 'Libre Baskerville', serif !important;
}

/* ─── DIVISOR DECORATIVO ─── */
.divider-ornament {
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 0 auto;
  max-width: 320px;
  color: var(--gold);
  opacity: 0.7;
}
.divider-ornament::before,
.divider-ornament::after {
  content: '';
  flex: 1;
  height: 1px;
  background: linear-gradient(to right, transparent, var(--gold), transparent);
}

/* ─── ACORDEÓN FAQ (Elementor Accordion Widget) ─── */
.elementor-accordion .elementor-accordion-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 21px !important;
  font-weight: 400 !important;
  color: var(--ink) !important;
  padding: 20px 0 !important;
  transition: color 0.3s !important;
}
.elementor-accordion .elementor-accordion-title:hover {
  color: var(--gold) !important;
}
.elementor-accordion-item {
  border-bottom: 1px solid var(--border) !important;
  border-top: none !important;
  border-left: none !important;
  border-right: none !important;
}
.elementor-accordion .elementor-tab-content {
  font-family: 'Libre Baskerville', serif !important;
  font-size: 15px !important;
  color: var(--ink-mid) !important;
  line-height: 1.9 !important;
  padding-bottom: 20px !important;
}
.elementor-accordion .elementor-accordion-icon {
  color: var(--gold) !important;
  border: 1px solid var(--border) !important;
  border-radius: 50% !important;
  width: 28px !important;
  height: 28px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* ─── FORMULARIO DE CONTACTO (WPForms / CF7) ─── */
.wpforms-field-label,
.wpcf7-form label {
  font-family: 'Cinzel', serif !important;
  font-size: 10px !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  color: var(--ink-mid) !important;
  margin-bottom: 8px !important;
}
.wpforms-field input,
.wpforms-field textarea,
.wpcf7-form input,
.wpcf7-form textarea {
  font-family: 'Libre Baskerville', serif !important;
  background: var(--ivory) !important;
  border: 1px solid var(--border) !important;
  border-radius: 0 !important;
  color: var(--ink) !important;
  padding: 12px 16px !important;
  font-size: 15px !important;
  transition: border-color 0.3s !important;
  width: 100%;
}
.wpforms-field input:focus,
.wpforms-field textarea:focus,
.wpcf7-form input:focus,
.wpcf7-form textarea:focus {
  border-color: var(--gold) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px var(--gold-dim) !important;
}
.wpforms-submit,
.wpcf7-submit {
  font-family: 'Cinzel', serif !important;
  font-size: 11px !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
  border: 1.5px solid var(--gold) !important;
  color: var(--gold) !important;
  background: transparent !important;
  border-radius: 0 !important;
  padding: 14px 36px !important;
  cursor: pointer !important;
  transition: all 0.3s !important;
}
.wpforms-submit:hover,
.wpcf7-submit:hover {
  background: var(--gold) !important;
  color: var(--ivory) !important;
}

/* ─── SECCIÓN "ACERCA DE" — Marco decorativo ─── */
.about-frame-box {
  position: relative;
  border: 1px solid var(--border);
  background: var(--surface);
  box-shadow: 0 8px 56px var(--shadow);
}
.about-frame-box::before {
  content: '';
  position: absolute;
  top: 20px; left: 20px; right: 20px; bottom: 20px;
  border: 1px solid var(--border);
  pointer-events: none;
}
.about-frame-box .corner {
  position: absolute;
  width: 20px; height: 20px;
  border-color: var(--gold);
  border-style: solid;
}
.about-frame-box .corner.tl { top: -1px; left: -1px; border-width: 2px 0 0 2px; }
.about-frame-box .corner.tr { top: -1px; right: -1px; border-width: 2px 2px 0 0; }
.about-frame-box .corner.bl { bottom: -1px; left: -1px; border-width: 0 0 2px 2px; }
.about-frame-box .corner.br { bottom: -1px; right: -1px; border-width: 0 2px 2px 0; }

/* Badges informativos */
.info-badge {
  display: inline-block;
  padding: 8px 16px;
  border: 1px solid var(--border);
  background: var(--surface);
  font-family: 'Cinzel', serif;
  font-size: 9px;
  letter-spacing: 2px;
  color: var(--ink-mid);
  text-transform: uppercase;
}

/* ─── FOOTER ─── */
footer,
.elementor-location-footer {
  background-color: var(--surface) !important;
  border-top: 1px solid var(--border) !important;
}
footer p,
.elementor-location-footer p {
  font-size: 12px !important;
  color: var(--ink-light) !important;
}
footer a,
.elementor-location-footer a {
  font-family: 'Cinzel', serif !important;
  font-size: 9px !important;
  letter-spacing: 2px !important;
  color: var(--ink-light) !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  transition: color 0.3s !important;
}
footer a:hover,
.elementor-location-footer a:hover {
  color: var(--gold) !important;
}

/* ─── SCROLL REVEAL (animaciones de entrada) ─── */
.ml-reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}
.ml-reveal.visible {
  opacity: 1;
  transform: none;
}
.ml-delay-1 { transition-delay: 0.15s; }
.ml-delay-2 { transition-delay: 0.30s; }
.ml-delay-3 { transition-delay: 0.45s; }

/* ─── RESPONSIVE ─── */
@media (max-width: 768px) {
  body { font-size: 15px !important; }
  .hero-section .elementor-heading-title {
    font-size: clamp(28px, 8vw, 48px) !important;
  }
  .pillar-card { margin-bottom: 16px; }
}

