/**
 * ============================================
 * ASTRA TYPOGRAPHY RESET
 * Tipografía Responsive con clamp()
 * Escala: 1.5 | Viewport: 320px - 1920px
 * ============================================
 */

/* ============================================
   LAYOUT - Estructura Base
   ============================================ */
#primary {
  margin: 0;
  padding: 0;
}

/* ============================================
   BASE - HTML & BODY
   ============================================ */
html {
  font-size: 100%;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
}

body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Oxygen-Sans', Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;
  font-weight: 400;
  font-size: clamp(0.6667rem, 0.5152rem + 0.6061vw, 1rem);
  line-height: 1.65;
  color: var(--ast-global-color-3, #334155);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ============================================
   HEADINGS - Niveles H1-H6
   ============================================ */
h1,
.entry-content h1,
.entry-content :where(h1) {
  font-size: clamp(3rem, 2.3182rem + 2.7273vw, 4.5rem);
  font-weight: 600;
  line-height: 1.2;
  margin-bottom: 1.25rem;
  color: var(--ast-global-color-2, #1e293b);
}

h2,
.entry-content h2,
.entry-content :where(h2) {
  font-size: clamp(2.25rem, 1.7386rem + 2.0455vw, 3.375rem);
  font-weight: 600;
  line-height: 1.3;
  margin-bottom: 1.25rem;
  color: var(--ast-global-color-2, #1e293b);
}

h3,
.entry-content h3,
.entry-content :where(h3) {
  font-size: clamp(1.875rem, 1.4489rem + 1.7045vw, 2.8125rem);
  font-weight: 600;
  line-height: 1.3;
  margin-bottom: 1.25rem;
  color: var(--ast-global-color-2, #1e293b);
}

h4,
.entry-content h4,
.entry-content :where(h4) {
  font-size: clamp(1.5rem, 1.1591rem + 1.3636vw, 2.25rem);
  font-weight: 600;
  line-height: 1.4;
  margin-bottom: 1.25rem;
  color: var(--ast-global-color-2, #1e293b);
}

h5,
.entry-content h5,
.entry-content :where(h5) {
  font-size: clamp(1.25rem, 0.9659rem + 1.1364vw, 1.875rem);
  font-weight: 600;
  line-height: 1.5;
  margin-bottom: 1.25rem;
  color: var(--ast-global-color-2, #1e293b);
}

h6,
.entry-content h6,
.entry-content :where(h6) {
  font-size: clamp(1.125rem, 0.8693rem + 1.0227vw, 1.6875rem);
  font-weight: 600;
  line-height: 1.6;
  margin-bottom: 1.25rem;
  color: var(--ast-global-color-2, #1e293b);
}

/* ============================================
   TÍTULOS ESPECÍFICOS DE ASTRA
   ============================================ */

/* Site Title */
.site-title,
.site-title a {
  font-size: clamp(1.6875rem, 1.304rem + 1.5341vw, 2.5313rem);
  font-weight: 600;
  line-height: 1.23;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Oxygen-Sans', Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;
}

/* Site Description */
.site-header .site-description {
  font-size: clamp(0.5625rem, 0.4347rem + 0.5114vw, 0.8438rem);
  line-height: 1.5;
}

/* Entry Title */
.entry-title {
  font-size: clamp(1.375rem, 1.0625rem + 1.25vw, 2.0625rem);
  font-weight: var(--ast-blog-title-font-weight, 600);
  line-height: 1.3;
  margin-bottom: 0.6em;
}

.entry-title a {
  font-weight: var(--ast-blog-title-font-weight, 600);
}

/* Entry Header Title */
header.entry-header .entry-title {
  font-size: clamp(2.25rem, 1.7386rem + 2.0455vw, 3.375rem);
  font-weight: 600;
  line-height: 1.2;
  margin-bottom: 0.6em;
  color: var(--ast-global-color-2, #1e293b);
}

/* Single Post Entry Title */
.ast-single-post .entry-title,
.ast-single-post .entry-title a {
  font-size: clamp(2.25rem, 1.7386rem + 2.0455vw, 3.375rem);
  line-height: 1.2;
}

/* Archive Title */
.ast-archive-title {
  font-size: clamp(2.25rem, 1.7386rem + 2.0455vw, 3.375rem);
  font-weight: 600;
}

body.archive .ast-archive-description .ast-archive-title,
body.archive .ast-archive-description .ast-archive-title * {
  font-size: clamp(2.25rem, 1.7386rem + 2.0455vw, 3.375rem);
  font-weight: 600;
}

/* Page Title */
.page-title {
  font-size: clamp(2.25rem, 1.7386rem + 2.0455vw, 3.375rem);
  font-weight: 600;
  margin-bottom: 1em;
}

/* Widget Title */
.widget-title,
#secondary .widget-title {
  font-size: clamp(1.25rem, 0.9659rem + 1.1364vw, 1.875rem);
  font-weight: 600;
  line-height: 1.5;
  margin-bottom: 1em;
  color: var(--ast-global-color-2, #1e293b);
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Oxygen-Sans', Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;
}

h1.widget-title,
h2.widget-title,
h3.widget-title,
h4.widget-title,
h5.widget-title,
h6.widget-title {
  font-weight: 600;
}

/* Comment Reply Title */
.comment-reply-title {
  font-size: clamp(1.25rem, 0.9659rem + 1.1364vw, 1.875rem);
  font-weight: 600;
  line-height: 1.65;
}

/* Comments Title */
.comments-title {
  font-weight: 600;
}

/* ============================================
   PÁRRAFOS Y TEXTO BASE
   ============================================ */
p {
  font-size: clamp(0.6667rem, 0.5152rem + 0.6061vw, 1rem);
  line-height: 1.75;
  margin-bottom: 1.75em;
}

.entry-content p {
  margin-bottom: 1.6em;
}

/* ============================================
   ENLACES
   ============================================ */
a {
  color: var(--ast-global-color-0, #046bd2);
  text-decoration: none;
  transition: all 0.2s linear;
}

a:hover,
a:focus {
  color: var(--ast-global-color-1, #045cb4);
}

/* ============================================
   LISTAS
   ============================================ */
ul,
ol {
  font-size: clamp(0.6667rem, 0.5152rem + 0.6061vw, 1rem);
  line-height: 1.65;
  margin: 0 0 1.5em 3em;
}

.entry-content ul li,
.entry-content ol li {
  margin-bottom: 10px;
}

/* ============================================
   BLOCKQUOTE
   ============================================ */
blockquote {
  font-size: clamp(0.8334rem, 0.644rem + 0.7576vw, 1.25rem);
  line-height: 1.65;
  font-style: italic;
  margin: 1.5em;
  padding: 20px;
  border-left: 5px solid var(--ast-border-color);
  color: var(--ast-global-color-3, #334155);
}

cite {
  font-size: clamp(0.6667rem, 0.5152rem + 0.6061vw, 1rem);
  font-style: italic;
}

/* ============================================
   CÓDIGO
   ============================================ */
code,
kbd,
tt,
var,
samp,
pre {
  font-family: Monaco, Consolas, 'Andale Mono', 'DejaVu Sans Mono', monospace;
  font-size: clamp(0.5834rem, 0.4506rem + 0.5303vw, 0.875rem);
}

pre {
  line-height: 1.6;
  padding: 1.6em;
  margin-bottom: 1.6em;
  overflow: auto;
  background: var(--ast-code-block-background, #ECEFF3);
}

/* ============================================
   BOTONES
   ============================================ */
button,
.ast-button,
.ast-custom-button,
.button,
input[type="button"],
input[type="submit"],
input[type="reset"] {
  font-family: inherit;
  font-weight: 500;
  font-size: clamp(0.6667rem, 0.5152rem + 0.6061vw, 1rem);
  line-height: 1.857;
  padding: clamp(0.75rem, 0.625rem + 0.625vw, 1.125rem) clamp(1.25rem, 1rem + 1.25vw, 1.875rem);
}

/* Botones de bloques de WordPress */
.wp-block-button .wp-block-button__link,
.wp-block-search .wp-block-search__button,
body .wp-block-file .wp-block-file__button {
  font-family: inherit;
  font-weight: 500;
  font-size: clamp(0.6667rem, 0.5152rem + 0.6061vw, 1rem);
  line-height: 1em;
}

/* Botones outline */
.wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link.wp-element-button,
.ast-outline-button {
  font-family: inherit;
  font-weight: 500;
  font-size: clamp(0.6667rem, 0.5152rem + 0.6061vw, 1rem);
  line-height: 1em;
}

/* ============================================
   FORMULARIOS
   ============================================ */
input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="date"],
select,
textarea {
  font-size: clamp(0.6667rem, 0.5152rem + 0.6061vw, 1rem);
  line-height: 1.5;
  font-weight: 400;
}

label,
legend {
  font-size: clamp(0.5834rem, 0.4506rem + 0.5303vw, 0.875rem);
  font-weight: 500;
  line-height: 1.25;
  color: #111827;
}

/* ============================================
   NAVEGACIÓN
   ============================================ */
.main-header-menu .menu-link,
.main-header-menu > a {
  font-size: clamp(0.6667rem, 0.5152rem + 0.6061vw, 1rem);
  font-weight: inherit;
}

/* Menú Builder */
.ast-builder-menu-1 {
  font-family: inherit;
  font-weight: inherit;
}

/* Menú Mobile */
.ast-builder-menu-mobile .main-navigation .main-header-menu .menu-item > .menu-link {
  font-size: clamp(0.6667rem, 0.5152rem + 0.6061vw, 1rem);
}

/* Mobile Menu Toggle */
.ast-button-wrap .menu-toggle.main-header-menu-toggle .mobile-menu {
  font-size: clamp(0.6667rem, 0.5152rem + 0.6061vw, 1rem);
  font-weight: 600;
}

/* Footer Menu */
#astra-footer-menu {
  font-size: clamp(0.6667rem, 0.5152rem + 0.6061vw, 1rem);
}

/* ============================================
   META INFORMACIÓN DEL BLOG
   ============================================ */
.ast-blog-meta-container {
  font-size: clamp(0.5rem, 0.3864rem + 0.4545vw, 0.75rem);
  font-weight: 600;
}

.entry-meta,
.entry-meta * {
  font-size: clamp(0.5rem, 0.3864rem + 0.4545vw, 0.75rem);
  line-height: 1.45;
}

.ast-comment-meta {
  font-size: clamp(0.5417rem, 0.4186rem + 0.4924vw, 0.8125rem);
  line-height: 1.666;
}

/* Read More */
.ast-read-more-container a {
  font-size: clamp(0.6667rem, 0.5152rem + 0.6061vw, 1rem);
}

/* Excerpt */
.ast-excerpt-container {
  font-size: clamp(0.6667rem, 0.5152rem + 0.6061vw, 1rem);
}

/* Pagination */
.ast-pagination .page-numbers,
.ast-pagination .page-navigation {
  font-size: clamp(0.6667rem, 0.5152rem + 0.6061vw, 1rem);
}

.page-links .page-link {
  font-size: clamp(0.5834rem, 0.4506rem + 0.5303vw, 0.875rem);
}

/* ============================================
   TAXONOMÍAS Y CATEGORÍAS
   ============================================ */
.ast-blog-single-element.ast-taxonomy-container a {
  font-size: clamp(0.5834rem, 0.4506rem + 0.5303vw, 0.875rem);
}

.cat-links.badge a,
.tags-links.badge a {
  font-size: clamp(0.625rem, 0.483rem + 0.5682vw, 0.9375rem);
  font-weight: 400;
}

/* ============================================
   COMENTARIOS
   ============================================ */
.ast-comment-cite-wrap cite {
  font-size: clamp(1rem, 0.9375rem + 0.3125vw, 1.2rem);
  font-weight: 600;
}

.ast-comment-list #cancel-comment-reply-link {
  font-size: clamp(0.875rem, 0.8125rem + 0.3125vw, 1rem);
}

a.comment-edit-link,
a.comment-reply-link {
  font-size: clamp(0.75rem, 0.6875rem + 0.3125vw, 0.8125rem);
}

/* ============================================
   WIDGETS ESPECÍFICOS
   ============================================ */

/* Widget Search */
.widget_search .search-field {
  font-size: clamp(0.875rem, 0.8125rem + 0.3125vw, 1rem);
}

/* Widget Calendar */
.widget_calendar caption {
  font-size: clamp(0.875rem, 0.8125rem + 0.3125vw, 1rem);
  line-height: 2.7em;
}

.widget_calendar thead a {
  font-size: clamp(0.875rem, 0.8125rem + 0.3125vw, 1rem);
}

/* Widget Tag Cloud */
.widget_tag_cloud .tagcloud a {
  font-size: clamp(0.8125rem, 0.75rem + 0.3125vw, 0.875rem);
  line-height: 1.5;
}

/* Secondary Widget */
.secondary .widget > *:not(.widget-title) {
  font-size: clamp(0.875rem, 0.8125rem + 0.3125vw, 1rem);
}

/* ============================================
   FOOTER
   ============================================ */
.ast-footer-copyright {
  font-size: clamp(0.875rem, 0.8125rem + 0.3125vw, 1rem);
}

/* ============================================
   OTROS ELEMENTOS TIPOGRÁFICOS
   ============================================ */

/* Small text */
small {
  font-size: clamp(0.5rem, 0.3864rem + 0.4545vw, 0.75rem);
}

/* Strong y Bold */
b,
strong {
  font-weight: 700;
}

/* Italic */
em,
i,
cite,
dfn {
  font-style: italic;
}

/* Address */
address {
  font-style: italic;
  margin: 0 0 1.5em;
}

/* Archive Description */
.ast-archive-description p {
  font-size: clamp(0.8334rem, 0.644rem + 0.7576vw, 1.25rem);
  line-height: 1.65;
  font-weight: 300;
}

/* Post Navigation */
.post-navigation a {
  font-size: clamp(0.7084rem, 0.5476rem + 0.6439vw, 1.0625rem);
}

/* Author Box */
.ast-author-box {
  font-size: clamp(0.6667rem, 0.5152rem + 0.6061vw, 1rem);
}

/* 404 Error */
.ast-404-layout-1 .page-sub-title {
  font-size: clamp(1.125rem, 0.8693rem + 1.0227vw, 1.6875rem);
  font-weight: 700;
}

/* ============================================
   UTILIDADES
   ============================================ */

/* Text Transform */
.capitalize {
  text-transform: uppercase;
}

/* Screen Reader Text */
.screen-reader-text {
  font-size: 0.875rem;
  line-height: normal;
}
