/*
Theme Name: ViveBenidorm Child
Theme URI: https://vivebenidorm.com
Description: Tema hijo de Astra personalizado para ViveBenidorm - Periódico digital de Benidorm
Author: ViveBenidorm
Author URI: https://vivebenidorm.com
Template: astra
Version: 1.0.0
License: GNU General Public License v2 or later
Text Domain: vivebenidorm-child
*/

/* ============================================================
   VIVE BENIDORM — TEMA HIJO DE ASTRA
   Periódico digital independiente de Benidorm
============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,700;0,800;0,900;1,700&family=Inter:wght@400;500;600;700;800&display=swap');

/* ---- VARIABLES ---- */
:root {
  --vb-marino:   #0F2338;
  --vb-marino2:  #162D45;
  --vb-turquesa: #2ABFB5;
  --vb-turq2:    #22A89F;
  --vb-blanco:   #FFFFFF;
  --vb-gris-f:   #F4F7FA;
  --vb-gris-e:   #E8EDF2;
  --vb-gris-m:   #8899AA;
  --vb-gris-d:   #4A5A6A;
  --vb-negro:    #1A2535;
}

/* ============================================================
   RESET / GLOBAL
============================================================ */
*, *::before, *::after { box-sizing: border-box; }

body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;
  color: var(--vb-negro) !important;
  background: var(--vb-blanco) !important;
  font-size: 15px !important;
  line-height: 1.65 !important;
}

a { transition: color .2s !important; }
img { max-width: 100%; height: auto; }

/* ============================================================
   TOPBAR SUPERIOR
============================================================ */
.ast-above-header-wrap {
  background: var(--vb-marino) !important;
  border-bottom: 1px solid rgba(255,255,255,0.07) !important;
  min-height: auto !important;
}
.ast-above-header-section,
.ast-above-header {
  background: var(--vb-marino) !important;
  padding: 6px 0 !important;
}
.ast-above-header a,
.ast-above-header-section a {
  color: rgba(255,255,255,0.55) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.3px !important;
}
.ast-above-header a:hover { color: var(--vb-turquesa) !important; }
.ast-above-header-section .ast-builder-grid-row {
  font-size: 11px !important;
  color: rgba(255,255,255,0.45) !important;
}

/* ============================================================
   HEADER
============================================================ */
.site-header,
#masthead,
.ast-header-wrap,
.main-header-wrap {
  background: var(--vb-blanco) !important;
  border-bottom: 1px solid var(--vb-gris-e) !important;
  box-shadow: none !important;
  padding: 14px 0 !important;
}

/* Logo texto */
.ast-site-identity .site-title,
.ast-site-identity .site-title a {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: 26px !important;
  font-weight: 800 !important;
  color: var(--vb-marino) !important;
  letter-spacing: -0.5px !important;
  text-decoration: none !important;
}
.ast-site-identity .site-description {
  font-size: 10px !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  color: var(--vb-gris-m) !important;
  font-weight: 500 !important;
}

/* ============================================================
   BARRA DE NAVEGACIÓN
============================================================ */
.main-header-bar,
#ast-desktop-header .main-header-bar,
.ast-primary-header-bar {
  background: var(--vb-marino) !important;
  border-top: none !important;
  padding: 0 !important;
}

/* Links del menú */
.main-navigation ul > li > a,
.ast-primary-menu > .menu-item > a,
#site-navigation ul > li > a,
.ast-nav-menu > li > a {
  font-family: 'Inter', sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 1.2px !important;
  text-transform: uppercase !important;
  color: rgba(255,255,255,0.78) !important;
  padding: 18px 16px !important;
  border-bottom: 3px solid transparent !important;
  transition: color .2s, border-color .2s !important;
  text-decoration: none !important;
}
.main-navigation ul > li > a:hover,
.ast-primary-menu > .menu-item > a:hover,
.main-navigation ul > li.current-menu-item > a,
.ast-primary-menu > .menu-item.current-menu-item > a,
.main-navigation ul > li.current_page_item > a {
  color: var(--vb-turquesa) !important;
  border-bottom-color: var(--vb-turquesa) !important;
}

/* Submenús dropdown */
.main-navigation .sub-menu,
.ast-primary-menu .sub-menu {
  background: var(--vb-marino) !important;
  border-top: 2px solid var(--vb-turquesa) !important;
  box-shadow: 0 8px 24px rgba(0,0,0,0.3) !important;
  border-radius: 0 0 4px 4px !important;
  min-width: 200px !important;
}
.main-navigation .sub-menu li a,
.ast-primary-menu .sub-menu li a {
  color: rgba(255,255,255,0.72) !important;
  font-size: 12px !important;
  padding: 10px 16px !important;
  border-bottom: 1px solid rgba(255,255,255,0.06) !important;
}
.main-navigation .sub-menu li a:hover { color: var(--vb-turquesa) !important; }

/* Botón Newsletter en nav */
.ast-header-button-1 a,
.ast-masthead-custom-menu-items a.ast-custom-nav-menu-link {
  background: var(--vb-turquesa) !important;
  color: var(--vb-marino) !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  padding: 9px 18px !important;
  border-radius: 2px !important;
  border-bottom: none !important;
}
.ast-header-button-1 a:hover { background: var(--vb-turq2) !important; }

/* Icono búsqueda */
.ast-search-menu-icon .search-field,
.ast-header-search-wrap input {
  background: rgba(255,255,255,0.08) !important;
  border: 1px solid rgba(255,255,255,0.15) !important;
  color: var(--vb-blanco) !important;
  border-radius: 2px !important;
}

/* ============================================================
   BREADCRUMBS
============================================================ */
.ast-breadcrumbs-wrapper {
  background: var(--vb-blanco) !important;
  border-bottom: 1px solid var(--vb-gris-e) !important;
  padding: 10px 0 !important;
}
.trail-items, .ast-breadcrumbs {
  font-size: 12px !important;
  color: var(--vb-gris-m) !important;
}
.trail-items a, .ast-breadcrumbs a {
  color: var(--vb-turquesa) !important;
  font-weight: 600 !important;
  text-decoration: none !important;
}
.trail-items .trail-end { color: var(--vb-gris-d) !important; }

/* ============================================================
   CONTENIDO PRINCIPAL - ANCHO
============================================================ */
.ast-container,
.ast-page-builder-template .ast-container {
  max-width: 1200px !important;
}
.site-content .ast-container {
  padding: 0 20px !important;
}

/* ============================================================
   PÁGINA DE BLOG / ARCHIVO
============================================================ */
.ast-archive-description {
  background: var(--vb-gris-f) !important;
  padding: 24px 0 !important;
  border-bottom: 1px solid var(--vb-gris-e) !important;
  margin-bottom: 28px !important;
}
.ast-archive-description h1,
.page-title {
  font-family: 'Playfair Display', serif !important;
  font-size: 28px !important;
  font-weight: 800 !important;
  color: var(--vb-marino) !important;
  letter-spacing: -0.3px !important;
}

/* ============================================================
   TARJETAS DE POSTS (listado)
============================================================ */
.ast-article-post,
.ast-article-single,
article.type-post,
.ast-grid-post {
  background: var(--vb-blanco) !important;
  border: 1px solid var(--vb-gris-e) !important;
  border-radius: 3px !important;
  overflow: hidden !important;
  transition: box-shadow .2s, transform .2s !important;
  margin-bottom: 24px !important;
}
.ast-article-post:hover,
article.type-post:hover {
  box-shadow: 0 8px 28px rgba(15,35,56,0.10) !important;
  transform: translateY(-2px) !important;
}

/* Imagen en tarjeta */
.ast-article-post .post-thumb,
article.type-post .post-thumb,
.ast-blog-single-element img {
  width: 100% !important;
  display: block !important;
  border-radius: 0 !important;
}

/* Título de post */
.entry-title,
.ast-blog-single-element .entry-title {
  font-family: 'Playfair Display', serif !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  margin-bottom: 8px !important;
}
.ast-article-post .entry-title,
article.type-post .entry-title {
  font-size: 18px !important;
  color: var(--vb-negro) !important;
}
.ast-article-post .entry-title a,
article.type-post .entry-title a {
  color: var(--vb-negro) !important;
  text-decoration: none !important;
}
.ast-article-post .entry-title a:hover,
article.type-post .entry-title a:hover {
  color: var(--vb-turquesa) !important;
}

/* Excerpt */
.ast-article-post .entry-content,
article.type-post .entry-content,
.entry-summary {
  font-size: 14px !important;
  color: var(--vb-gris-d) !important;
  line-height: 1.65 !important;
}

/* Meta */
.entry-meta,
.ast-blog-meta-info,
.posted-on, .byline, .ast-post-meta {
  font-size: 11px !important;
  color: var(--vb-gris-m) !important;
  margin-bottom: 8px !important;
}
.entry-meta a,
.ast-blog-meta-info a {
  color: var(--vb-turquesa) !important;
  font-weight: 600 !important;
  text-decoration: none !important;
}

/* Categorías pill */
.cat-links a,
.ast-blog-meta-info .category a,
.ast-wc-meta-info .cat-links a {
  display: inline-block !important;
  background: var(--vb-turquesa) !important;
  color: var(--vb-blanco) !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  padding: 3px 9px !important;
  border-radius: 2px !important;
  text-decoration: none !important;
  margin-bottom: 6px !important;
}
.cat-links a:hover { background: var(--vb-turq2) !important; }

/* ============================================================
   BOTONES
============================================================ */
.ast-read-more-btn,
a.more-link,
.read-more a,
.wp-block-button__link,
button, input[type="submit"],
.ast-button, .button {
  background: var(--vb-turquesa) !important;
  color: var(--vb-blanco) !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  padding: 9px 18px !important;
  border-radius: 2px !important;
  border: none !important;
  cursor: pointer !important;
  text-decoration: none !important;
  display: inline-block !important;
  transition: background .2s !important;
}
.ast-read-more-btn:hover,
a.more-link:hover,
.wp-block-button__link:hover,
button:hover, input[type="submit"]:hover {
  background: var(--vb-turq2) !important;
  color: var(--vb-blanco) !important;
}

/* ============================================================
   ARTÍCULO INDIVIDUAL (single post)
============================================================ */
.single .entry-title {
  font-family: 'Playfair Display', serif !important;
  font-size: clamp(26px, 4vw, 40px) !important;
  font-weight: 800 !important;
  color: var(--vb-marino) !important;
  line-height: 1.15 !important;
  letter-spacing: -0.5px !important;
  margin-bottom: 14px !important;
}

/* Imagen destacada */
.single .ast-post-thumbnail-wrap img,
.single .post-thumbnail img {
  border-radius: 4px !important;
  width: 100% !important;
  margin-bottom: 8px !important;
}

/* Cuerpo del artículo */
.single .entry-content p {
  font-size: 17px !important;
  line-height: 1.85 !important;
  color: #2D3748 !important;
  margin-bottom: 22px !important;
}
.single .entry-content h2 {
  font-family: 'Playfair Display', serif !important;
  font-size: 22px !important;
  font-weight: 800 !important;
  color: var(--vb-marino) !important;
  margin: 36px 0 14px !important;
  padding-bottom: 8px !important;
  border-bottom: 2px solid var(--vb-turquesa) !important;
}
.single .entry-content h3 {
  font-family: 'Playfair Display', serif !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  color: var(--vb-marino) !important;
  margin: 26px 0 10px !important;
}
.single .entry-content blockquote {
  border-left: 4px solid var(--vb-turquesa) !important;
  background: var(--vb-gris-f) !important;
  padding: 18px 22px !important;
  margin: 24px 0 !important;
  border-radius: 0 3px 3px 0 !important;
  font-style: italic !important;
  font-size: 18px !important;
  color: var(--vb-marino) !important;
}
.single .entry-content ul,
.single .entry-content ol {
  font-size: 16px !important;
  color: #2D3748 !important;
  padding-left: 24px !important;
  margin-bottom: 20px !important;
  line-height: 1.8 !important;
}
.single .entry-content a {
  color: var(--vb-turquesa) !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}

/* Tags al pie del artículo */
.tags-links a,
.post-tags a {
  display: inline-block !important;
  background: var(--vb-gris-f) !important;
  color: var(--vb-gris-d) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  padding: 4px 11px !important;
  border: 1px solid var(--vb-gris-e) !important;
  border-radius: 2px !important;
  margin: 2px !important;
  text-decoration: none !important;
  transition: all .2s !important;
}
.tags-links a:hover { background: var(--vb-marino) !important; color: var(--vb-blanco) !important; }

/* Artículos relacionados */
.ast-related-posts-title,
.related-posts h3 {
  font-family: 'Playfair Display', serif !important;
  font-size: 20px !important;
  font-weight: 800 !important;
  color: var(--vb-marino) !important;
  border-bottom: 2px solid var(--vb-turquesa) !important;
  padding-bottom: 8px !important;
  margin-bottom: 20px !important;
}

/* ============================================================
   SIDEBAR
============================================================ */
#secondary,
.widget-area {
  border-left: 1px solid var(--vb-gris-e) !important;
  padding-left: 28px !important;
}
.widget {
  margin-bottom: 32px !important;
}
.widget-title, .widgettitle {
  font-family: 'Playfair Display', serif !important;
  font-size: 16px !important;
  font-weight: 800 !important;
  color: var(--vb-marino) !important;
  padding-bottom: 8px !important;
  border-bottom: 2px solid var(--vb-turquesa) !important;
  margin-bottom: 14px !important;
}
.widget ul { list-style: none !important; padding: 0 !important; margin: 0 !important; }
.widget ul li {
  border-bottom: 1px solid var(--vb-gris-e) !important;
  padding: 9px 0 !important;
  font-size: 13px !important;
}
.widget ul li:last-child { border-bottom: none !important; }
.widget ul li a {
  color: var(--vb-negro) !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  transition: color .2s !important;
}
.widget ul li a:hover { color: var(--vb-turquesa) !important; }

/* ============================================================
   PAGINACIÓN
============================================================ */
.page-numbers {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important;
  height: 36px !important;
  border: 1px solid var(--vb-gris-e) !important;
  border-radius: 2px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: var(--vb-negro) !important;
  text-decoration: none !important;
  transition: all .2s !important;
  margin: 0 2px !important;
}
.page-numbers.current {
  background: var(--vb-turquesa) !important;
  color: var(--vb-blanco) !important;
  border-color: var(--vb-turquesa) !important;
}
.page-numbers:hover:not(.current) {
  border-color: var(--vb-turquesa) !important;
  color: var(--vb-turquesa) !important;
}

/* ============================================================
   FORMULARIOS
============================================================ */
input[type="text"],
input[type="email"],
input[type="search"],
textarea {
  border: 1px solid var(--vb-gris-e) !important;
  border-radius: 2px !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 14px !important;
  padding: 10px 14px !important;
  width: 100% !important;
  transition: border-color .2s !important;
  outline: none !important;
}
input:focus, textarea:focus {
  border-color: var(--vb-turquesa) !important;
  box-shadow: 0 0 0 3px rgba(42,191,181,0.1) !important;
}

/* ============================================================
   FOOTER
============================================================ */
.site-footer,
#colophon,
.ast-footer-wrap {
  background: var(--vb-marino) !important;
  color: rgba(255,255,255,0.65) !important;
  border-top: none !important;
}
.ast-footer-widget-area {
  background: var(--vb-marino) !important;
  padding: 40px 0 !important;
  border-bottom: 1px solid rgba(255,255,255,0.08) !important;
}
.ast-footer-widget-area .widget-title,
footer .widgettitle {
  font-size: 11px !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  color: var(--vb-turquesa) !important;
  border-bottom-color: rgba(255,255,255,0.1) !important;
}
footer .widget ul li {
  border-bottom-color: rgba(255,255,255,0.06) !important;
  color: rgba(255,255,255,0.6) !important;
}
footer .widget ul li a { color: rgba(255,255,255,0.6) !important; }
footer .widget ul li a:hover { color: var(--vb-turquesa) !important; }
footer p { color: rgba(255,255,255,0.6) !important; font-size: 13px !important; }

.ast-small-footer,
.ast-footer-copyright,
.footer-widget-area + .ast-small-footer {
  background: rgba(0,0,0,0.25) !important;
  color: rgba(255,255,255,0.3) !important;
  font-size: 12px !important;
  padding: 14px 0 !important;
  text-align: center !important;
}
.ast-small-footer a,
.ast-footer-copyright a {
  color: rgba(255,255,255,0.3) !important;
  text-decoration: none !important;
}
.ast-small-footer a:hover { color: var(--vb-turquesa) !important; }

/* ============================================================
   BLOQUES GUTENBERG PERSONALIZADOS
============================================================ */
/* Separador */
.wp-block-separator {
  border-color: var(--vb-turquesa) !important;
  border-width: 2px !important;
  opacity: 1 !important;
}

/* Cita / Quote */
.wp-block-quote {
  border-left: 4px solid var(--vb-turquesa) !important;
  background: var(--vb-gris-f) !important;
  padding: 18px 22px !important;
  border-radius: 0 3px 3px 0 !important;
}
.wp-block-quote p {
  font-style: italic !important;
  font-size: 18px !important;
  color: var(--vb-marino) !important;
}
.wp-block-quote cite {
  font-size: 11px !important;
  color: var(--vb-turquesa) !important;
  font-weight: 700 !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  font-style: normal !important;
}

/* Columnas */
.wp-block-columns { gap: 24px !important; }

/* Imagen con caption */
.wp-block-image figcaption {
  font-size: 11px !important;
  color: var(--vb-gris-m) !important;
  font-style: italic !important;
  text-align: left !important;
  margin-top: 6px !important;
}

/* ============================================================
   SEARCH RESULTS
============================================================ */
.search-results .entry-title {
  font-size: 18px !important;
}
.search-no-results h1 {
  color: var(--vb-marino) !important;
}

/* ============================================================
   RESPONSIVE
============================================================ */
@media (max-width: 900px) {
  .main-navigation ul > li > a,
  .ast-nav-menu > li > a {
    padding: 14px 12px !important;
    font-size: 10px !important;
  }
  .single .entry-content p { font-size: 15px !important; }
  .single .entry-title { font-size: 24px !important; }
  #secondary { border-left: none !important; padding-left: 0 !important; border-top: 1px solid var(--vb-gris-e) !important; padding-top: 28px !important; }
}

@media (max-width: 600px) {
  body { font-size: 14px !important; }
  .single .entry-title { font-size: 22px !important; }
  .single .entry-content p { font-size: 14px !important; }
  .ast-article-post .entry-title { font-size: 16px !important; }
}
