/*
 * Lestonnac 330 · Sistema visual 3.2
 * Capa estable para páginas interiores, patrones y bloques del editor.
 */

:root {
  --l330-reading-width: 52rem;
  --l330-wide-width: 74rem;
  --l330-page-radius: .45rem;
  --l330-page-line: rgba(27, 52, 34, .14);
  --l330-page-shadow: 0 18px 50px rgba(7, 35, 18, .09);
}

/* Variantes de cabecera por página. */
.page-hero-subtitle { max-width: 46rem; margin: 1.2rem auto 0; color: rgba(255,255,255,.9); font-size: clamp(1.05rem, 2vw, 1.3rem); line-height: 1.65; text-wrap: balance; }
.page-hero--compact { min-height: clamp(17rem, 32vw, 25rem); padding-block: 5.5rem 3.5rem; }
.page-hero--compact h1 { font-size: clamp(2.8rem, 6vw, 5rem); }
.page-hero--green:not(.has-custom-image) { min-height: clamp(19rem, 36vw, 28rem); color: #fff; background: linear-gradient(135deg, var(--pine-950), var(--pine-700)) !important; text-align: left; }
.page-hero--light:not(.has-custom-image) { min-height: clamp(17rem, 31vw, 24rem); color: var(--pine-950); background: linear-gradient(145deg, #fff, #edf6ef) !important; background: linear-gradient(145deg, #fff, color-mix(in srgb, var(--pine-100) 42%, #fff)) !important; text-align: left; }
.page-hero--green .l330-container, .page-hero--light .l330-container { width: min(calc(100% - clamp(2rem, 7vw, 8rem)), var(--l330-content-width)); }
.page-hero--green h1, .page-hero--light h1 { max-width: 16ch; margin-left: 0; font-size: clamp(2.8rem, 6vw, 5.6rem); }
.page-hero--green .page-hero-subtitle, .page-hero--light .page-hero-subtitle { max-width: 44rem; margin-left: 0; text-align: left; }
.page-hero--light:not(.has-custom-image) h1 { color: var(--pine-950); }
.page-hero--light:not(.has-custom-image) .eyebrow { color: var(--pine-700); }
.page-hero--light:not(.has-custom-image) .page-hero-subtitle { color: var(--muted); }
.page-hero.has-custom-image { color: #fff; background-repeat: no-repeat; }
.page-hero.has-custom-image h1 { color: #fff; }
.l330-content-without-hero { padding-top: clamp(5rem, 9vw, 8rem); }

/* Anchuras editoriales predecibles. */
.l330-content-layout--reading .entry-content { width: 100%; max-width: var(--l330-reading-width); }
.l330-content-layout--wide .entry-content { width: 100%; max-width: var(--l330-wide-width); }
.l330-content-layout--full { width: 100%; max-width: none; padding-inline: 0; }
.l330-content-layout--full > .entry-content { width: 100%; max-width: none; }
.l330-content-layout--full > .entry-content > :not(.alignfull) { width: min(calc(100% - clamp(2rem, 7vw, 8rem)), var(--l330-content-width)); margin-inline: auto; }
.l330-content-layout--full > .entry-content > .alignwide { width: min(calc(100% - 2rem), var(--l330-wide-width)); margin-inline: auto; transform: none; }
.l330-content-layout--full > .l330-page-cta { width: min(calc(100% - clamp(2rem, 7vw, 8rem)), var(--l330-content-width)); margin-inline: auto; }

/* Identidad automática para páginas de sección. */
.page-hero--section { border-bottom: .42rem solid var(--l330-section-accent, var(--pine-700)); }
.page-hero--section .eyebrow { display: inline-flex; align-items: center; gap: .65rem; }
.page-hero--section .eyebrow::before { width: .72rem; height: .72rem; flex: 0 0 auto; border: 2px solid rgba(255,255,255,.82); border-radius: 50%; background: var(--l330-section-accent, var(--pine-700)); box-shadow: 0 0 0 .28rem rgba(255,255,255,.13); content: ""; }
.page-hero--light.page-hero--section .eyebrow::before { border-color: #fff; box-shadow: 0 0 0 .25rem color-mix(in srgb, var(--l330-section-accent) 18%, transparent); }
.l330-section-content { --l330-section-accent: var(--pine-700); }
.l330-section-content .l330-section-principles .l330-pattern-card { position: relative; overflow: hidden; }
.l330-section-content .l330-section-principles .l330-pattern-card::before { position: absolute; inset: 0 0 auto; height: .28rem; background: var(--l330-section-accent); content: ""; }
.l330-section-content .is-style-l330-highlight { border-left-color: var(--l330-section-accent); }
.l330-section-content .eyebrow { color: color-mix(in srgb, var(--l330-section-accent) 72%, var(--pine-950)); }

/* Llamada final opcional de cada página. */
.l330-page-cta { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2rem; align-items: center; margin-top: clamp(3rem, 7vw, 6rem); padding: clamp(2rem, 5vw, 4rem); border-radius: var(--l330-page-radius); color: #fff; background: linear-gradient(135deg, var(--pine-950), var(--pine-700)); }
.l330-page-cta .eyebrow { color: #cde8d3; }
.l330-page-cta h2 { max-width: 19ch; margin: 0; color: #fff; font-size: clamp(1.8rem, 4vw, 3rem); }
.l330-page-cta h2 + p { max-width: 46rem; margin: .8rem 0 0; color: #dceae0; }
.l330-page-cta .button { color: var(--pine-950); border-color: var(--nature-yellow); background: var(--nature-yellow); box-shadow: none; }
.l330-page-cta .button:hover { color: var(--pine-950); border-color: var(--nature-yellow-hover); background: var(--nature-yellow-hover); }

/* Patrones oficiales Lestonnac. */
.l330-pattern { box-sizing: border-box; margin-block: clamp(3rem, 7vw, 6rem); }
.l330-pattern .eyebrow { margin-bottom: .75rem; }
.l330-pattern-intro { max-width: 52rem; margin-inline: auto; text-align: center; }
.l330-pattern-intro > p:not(.eyebrow) { color: var(--muted); font-size: clamp(1.08rem, 2vw, 1.3rem); }
.l330-pattern-media { gap: clamp(2rem, 7vw, 6rem); align-items: center; }
.l330-pattern-media .wp-block-image, .l330-pattern-media figure { margin: 0; }
.l330-pattern-media .wp-block-media-text__media:empty { min-height: clamp(19rem, 40vw, 31rem); border-radius: var(--l330-page-radius); background: linear-gradient(145deg, var(--pine-100), #8eae92); }
.l330-pattern-media img, .is-style-l330-landscape img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--l330-page-radius); }
.l330-pattern-card-grid { gap: clamp(1rem, 2.5vw, 1.75rem); }
.l330-pattern-card, .wp-block-group.is-style-l330-card { height: 100%; padding: clamp(1.35rem, 3vw, 2rem); border: 1px solid var(--l330-page-line); border-radius: var(--l330-page-radius); background: #fff; box-shadow: 0 8px 26px rgba(7,35,18,.055); transition: border-color .25s ease, box-shadow .3s ease, transform .35s cubic-bezier(.16,1,.3,1); }
.l330-pattern-card:hover, .wp-block-group.is-style-l330-card:hover { border-color: rgba(20,99,51,.3); box-shadow: var(--l330-page-shadow); transform: translateY(-4px); }
.l330-pattern-card h3 { margin-bottom: .55rem; }
.l330-pattern-card p { color: var(--muted); }
.l330-pattern-stats { gap: 1px; overflow: hidden; border-radius: var(--l330-page-radius); color: #fff; background: rgba(255,255,255,.2); }
.l330-pattern-stat { min-height: 11rem; padding: 2rem; color: #fff; background: var(--pine-950); }
.l330-pattern-stat strong { display: block; margin-bottom: .35rem; color: #fff; font-size: clamp(2.5rem, 5vw, 4rem); font-weight: 500; line-height: 1; }
.l330-pattern-stat p { margin: 0; color: #c6d8ca; }
.l330-pattern-cta { padding: clamp(2.2rem, 6vw, 5rem); border-radius: var(--l330-page-radius); color: #fff; background: linear-gradient(135deg, var(--pine-950), var(--pine-700)); }
.l330-pattern-cta h2 { color: #fff; }
.l330-pattern-cta p { color: #dceae0; }
.l330-pattern-cta .eyebrow { color: #cde8d3; }
.l330-pattern-cta .wp-block-button__link { color: var(--pine-950); background: var(--nature-yellow); }
.l330-pattern-cta .wp-block-button__link:hover { color: var(--pine-950); background: var(--nature-yellow-hover); }
.l330-pattern-faq .wp-block-details { padding: 1rem 0; border-top: 1px solid var(--l330-page-line); }
.l330-pattern-faq .wp-block-details:last-child { border-bottom: 1px solid var(--l330-page-line); }
.l330-pattern-faq summary { color: var(--pine-950); cursor: pointer; font-weight: 700; }
.l330-pattern-team-grid { gap: clamp(1.3rem, 3vw, 2.2rem); }
.l330-team-card { height: 100%; }
.l330-team-card figure { aspect-ratio: 4 / 3; overflow: hidden; margin: 0 0 1.2rem; border-radius: var(--l330-page-radius); background: linear-gradient(145deg, var(--pine-100), #a8c2ad); }
.l330-team-card figure:empty::after { display: grid; height: 100%; place-items: center; color: var(--pine-700); content: "Añadir fotografía"; font-size: .78rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.l330-team-card figure img { width: 100%; height: 100%; object-fit: cover; }
.l330-team-card h3 { margin-bottom: .25rem; }
.l330-team-card .l330-team-role { margin-top: 0; color: var(--pine-700); font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.wp-block-quote.is-style-l330-highlight { margin-inline: 0; padding: clamp(1.5rem, 4vw, 2.5rem); border: 0; border-left: 3px solid var(--pine-700); background: color-mix(in srgb, var(--pine-100) 52%, #fff); }
.wp-block-button.is-style-l330-secondary .wp-block-button__link { color: var(--pine-950); border: 1px solid var(--pine-700); background: transparent; box-shadow: none; }
.wp-block-button.is-style-l330-secondary .wp-block-button__link:hover { color: #fff; background: var(--pine-700); }

@media (max-width: 48rem) {
  .page-hero--green, .page-hero--light { min-height: 22rem; padding-block: 5rem 3rem; }
  .l330-page-cta { grid-template-columns: 1fr; }
  .l330-page-cta .button { width: 100%; }
  .l330-pattern-media { gap: 2rem; }
  .l330-pattern-card-grid, .l330-pattern-stats { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  .l330-pattern-card, .wp-block-group.is-style-l330-card { transition: none; }
}

@media print {
  .page-hero { min-height: 0 !important; padding-block: 2rem !important; color: #000 !important; background: #fff !important; }
  .page-hero h1, .page-hero .eyebrow, .page-hero-subtitle { color: #000 !important; }
  .l330-page-cta { color: #000; border: 1px solid #999; background: #fff; }
  .l330-page-cta h2 { color: #000; }
}

/* Publicación editorial: archivo, tarjetas y lectura de noticias. */
.news-archive-hero { min-height: clamp(28rem,48vw,38rem); }
.news-archive-hero .l330-container { width: min(calc(100% - clamp(2rem,7vw,8rem)),var(--l330-content-width)); text-align: left; }
.news-archive-hero h1 { max-width: 13ch; margin-inline: 0; text-wrap: balance; }
.news-archive-description { max-width: 43rem; margin-top: 1.25rem; color: rgba(255,255,255,.9); font-size: clamp(1.05rem,2vw,1.26rem); line-height: 1.65; }
.news-archive-description p { margin: 0; }
.news-category-filter { display: flex; overflow-x: auto; gap: .55rem; margin-bottom: clamp(2.3rem,5vw,4rem); padding: .2rem 0 .7rem; scrollbar-width: thin; }
.news-category-filter a,.news-categories a { display: inline-flex; align-items: center; width: max-content; border: 1px solid rgba(20,99,51,.22); border-radius: 99px; color: var(--pine-700); background: color-mix(in srgb,var(--pine-100) 38%,#fff); font-weight: 700; line-height: 1; text-decoration: none; transition: color .2s ease,background .2s ease,border-color .2s ease,transform .2s ease; }
.news-category-filter a { min-height: 2.7rem; padding: .7rem 1rem; font-size: .8rem; }
.news-category-filter a:hover,.news-category-filter a:focus-visible,.news-category-filter a.is-current { border-color: var(--pine-700); color: #fff; background: var(--pine-700); }
.news-category-filter a:hover { transform: translateY(-2px); }
.news-categories { display: flex; flex-wrap: wrap; gap: .35rem; margin-bottom: .8rem; }
.news-categories a { min-height: 1.7rem; padding: .4rem .62rem; font-size: .62rem; letter-spacing: .045em; text-transform: uppercase; }
.news-categories a:hover,.news-categories a:focus-visible { border-color: var(--pine-700); color: #fff; background: var(--pine-700); }
.post-meta { display: flex; flex-wrap: wrap; gap: .4rem .85rem; align-items: center; }
.post-meta > * + * { position: relative; padding-left: .85rem; }
.post-meta > * + *::before { position: absolute; top: 50%; left: 0; width: .22rem; height: .22rem; border-radius: 50%; background: currentColor; content: ""; transform: translateY(-50%); opacity: .55; }
.news-archive-grid { align-items: start; }
.news-archive-grid .news-card--featured { grid-column: span 2; display: grid; grid-template-columns: minmax(0,1.22fr) minmax(18rem,.78fr); align-items: stretch; padding: clamp(.6rem,1.3vw,1rem); border: 1px solid var(--l330-page-line); border-radius: calc(var(--nature-radius-media) + .35rem); background: #fff; box-shadow: 0 18px 50px rgba(7,35,18,.075); }
.news-archive-grid .news-card--featured .news-image { min-height: 100%; aspect-ratio: 4 / 3; }
.news-archive-grid .news-card--featured .news-card-body { display: flex; flex-direction: column; justify-content: center; padding: clamp(1.4rem,3vw,2.6rem); }
.news-archive-grid .news-card--featured h3 { font-size: clamp(1.8rem,3.5vw,3rem); line-height: 1.08; }
.news-archive-grid .news-card--featured .text-link { margin-top: auto; padding-top: 1rem; }
.news-empty { grid-column: 1 / -1; padding: clamp(2rem,6vw,5rem); border: 1px solid var(--l330-page-line); border-radius: var(--l330-page-radius); background: color-mix(in srgb,var(--pine-100) 32%,#fff); text-align: center; }
.news-empty h2 { margin-inline: auto; }
.news-empty p { max-width: 38rem; margin: .8rem auto 1.5rem; color: var(--muted); }
.navigation.pagination { display: flex; justify-content: center; }
.navigation.pagination .nav-links { justify-content: center; }
.navigation.pagination .prev,.navigation.pagination .next { padding-inline: 1rem; }

.single-news-header { min-height: clamp(31rem,56vw,44rem); }
.single-news-header .narrow { display: flex; flex-direction: column; align-items: center; }
.single-news-header .news-categories { justify-content: center; }
.single-news-header .news-categories a { border-color: rgba(255,255,255,.5); color: #fff; background: rgba(255,255,255,.12); backdrop-filter: blur(8px); }
.single-news-header .news-categories a:hover,.single-news-header .news-categories a:focus-visible { border-color: #fff; color: var(--pine-950); background: #fff; }
.single-news-header .post-meta { justify-content: center; color: rgba(255,255,255,.84); }
.single-news-lead { max-width: 44rem; margin: 1.3rem auto 0; color: rgba(255,255,255,.9); font-size: clamp(1.05rem,2vw,1.25rem); line-height: 1.65; text-wrap: balance; }
.single-featured { margin-bottom: 0; }
.single-featured figcaption { padding: .8rem .45rem 0; color: var(--muted); font-size: .76rem; line-height: 1.5; }
.single-news-entry .entry-content { font-size: clamp(1.03rem,1.5vw,1.13rem); }
.single-news-entry .entry-content > p:first-child,.single-news-entry .entry-content > .l330-news-lead:first-child { color: var(--pine-950); font-size: clamp(1.15rem,2vw,1.35rem); line-height: 1.7; }
.single-post-navigation { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; margin-top: -2.5rem; padding-bottom: clamp(4rem,8vw,7rem); }
.single-post-navigation > div { min-width: 0; }
.single-post-navigation > div:last-child { text-align: right; }
.single-post-navigation span { display: block; margin-bottom: .38rem; color: var(--muted); font-size: .68rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.single-post-navigation a { color: var(--pine-950); font: 600 clamp(1rem,2vw,1.25rem)/1.3 Georgia,serif; text-decoration-color: color-mix(in srgb,var(--pine-700) 35%,transparent); text-underline-offset: .25rem; }
.single-post-navigation a:hover { color: var(--pine-700); }
.single-related { padding-block: clamp(4rem,9vw,7rem); background: #f7f6f1; }
.single-related > .l330-container > h2 { margin: .25rem 0 clamp(2rem,4vw,3.5rem); font-size: clamp(2.2rem,5vw,4rem); }

@media (max-width: 62rem) {
  .news-archive-grid .news-card--featured { grid-template-columns: 1fr; }
  .news-archive-grid .news-card--featured .news-image { aspect-ratio: 16 / 9; }
}
@media (max-width: 48rem) {
  .news-archive-hero .l330-container { text-align: center; }
  .news-archive-hero h1 { margin-inline: auto; }
  .news-archive-description { margin-inline: auto; }
  .news-archive-grid .news-card--featured { grid-column: auto; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
  .news-archive-grid .news-card--featured .news-card-body { padding: 1.35rem 0 0; }
  .single-post-navigation { grid-template-columns: 1fr; margin-top: -1.5rem; }
  .single-post-navigation > div:last-child { padding-top: 1rem; border-top: 1px solid var(--l330-page-line); text-align: left; }
}
@media (prefers-reduced-motion: reduce) {
  .news-category-filter a { transition: none; }
}
@media print {
  .news-category-filter,.single-post-navigation,.single-related { display: none; }
  .single-news-header .post-meta,.single-news-lead { color: #000; }
}
