:root {
  --dli-navy: #082044;
  --dli-navy-2: #0d2b58;
  --dli-ink: #111827;
  --dli-red: #c91f2b;
  --dli-red-dark: #a91520;
  --dli-paper: #fbfaf7;
  --dli-paper-2: #f4efe6;
  --dli-soft: #f8f5ef;
  --dli-line: rgba(8, 32, 68, .16);
  --dli-line-strong: rgba(8, 32, 68, .34);
  --dli-muted: #667085;
  --dli-serif: Georgia, "Times New Roman", Times, serif;
  --dli-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --dli-max: 1220px;
  --dli-radius: 18px;
  --dli-shadow: 0 14px 38px rgba(8, 32, 68, .08);
}

* { box-sizing: border-box; }
html { text-size-adjust: 100%; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  color: var(--dli-ink);
  background: var(--dli-paper);
  font-family: var(--dli-sans);
  line-height: 1.65;
  text-rendering: optimizeLegibility;
}
body.dli-watermark-enabled::before {
  content: "";
  position: fixed;
  right: -160px;
  top: 240px;
  width: 520px;
  height: 520px;
  background: url('../images/diario-la-isla-symbol.png') center/contain no-repeat;
  opacity: .026;
  pointer-events: none;
  z-index: -1;
}
img, svg, video { max-width: 100%; height: auto; vertical-align: middle; }
a { color: var(--dli-navy); text-decoration-thickness: .06em; text-underline-offset: .18em; transition: color .18s ease, border-color .18s ease, background .18s ease, transform .18s ease; }
a:hover { color: var(--dli-red); }
button, input, textarea, select { font: inherit; }
.dli-container { width: min(100% - 38px, var(--dli-max)); margin-inline: auto; }
.dli-skip-link { position: absolute; left: 16px; top: -80px; z-index: 999; background: var(--dli-navy); color: #fff; padding: 10px 14px; border-radius: 10px; }
.dli-skip-link:focus { top: 14px; }

/* Masthead */
.dli-site-header { background: rgba(251,250,247,.94); border-bottom: 1px solid var(--dli-line); }
.dli-topbar { border-bottom: 1px solid var(--dli-line); background: var(--dli-navy); color: rgba(255,255,255,.86); font-size: .78rem; letter-spacing: .02em; }
.dli-topbar a { color: #fff; text-decoration-color: rgba(255,255,255,.35); }
.dli-topbar-inner { display: flex; justify-content: space-between; align-items: center; gap: 18px; min-height: 36px; }
.dli-topbar-left, .dli-topbar-right { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.dli-edition-label { color: #fff; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; font-size: .68rem; }
.dli-dot { opacity: .5; }
.dli-masthead { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 360px); gap: 28px; align-items: center; padding: 26px 0 14px; }
.dli-brand { display: inline-flex; align-items: center; justify-content: flex-start; text-decoration: none; min-width: 0; }
.dli-brand-logo { width: min(100%, 820px); max-height: 142px; object-fit: contain; object-position: left center; }
.dli-masthead-ad { border: 1px solid var(--dli-line); background: #fff; min-height: 92px; border-radius: 14px; display: flex; align-items: center; justify-content: center; overflow: hidden; color: var(--dli-muted); }
.dli-tagline-row { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 22px; padding: 0 0 20px; color: var(--dli-navy); }
.dli-tagline-row span { height: 2px; background: var(--dli-red); opacity: .95; }
.dli-tagline-row strong { font-family: var(--dli-serif); font-size: .76rem; font-weight: 700; letter-spacing: .38em; text-transform: uppercase; white-space: nowrap; }

/* Navigation */
.dli-nav-shell { border-top: 2px solid var(--dli-navy); border-bottom: 1px solid var(--dli-line-strong); background: rgba(251,250,247,.98); }
.dli-sticky-nav-enabled .dli-nav-shell { position: sticky; top: 0; z-index: 50; backdrop-filter: blur(12px); }
.dli-nav-inner { min-height: 52px; display: flex; align-items: center; gap: 18px; }
.dli-menu-toggle { display: none; align-items: center; gap: 10px; border: 0; background: var(--dli-navy); color: #fff; padding: 10px 13px; border-radius: 999px; cursor: pointer; font-weight: 800; }
.dli-menu-icon, .dli-menu-icon::before, .dli-menu-icon::after { display: block; width: 18px; height: 2px; background: currentColor; border-radius: 4px; content: ""; }
.dli-menu-icon { position: relative; }
.dli-menu-icon::before { position: absolute; top: -6px; }
.dli-menu-icon::after { position: absolute; top: 6px; }
.dli-main-nav { flex: 1; min-width: 0; }
.dli-main-nav ul, .dli-main-nav .mod-menu { margin: 0; padding: 0; list-style: none; display: flex; align-items: center; gap: 0; flex-wrap: wrap; }
.dli-main-nav li { position: relative; }
.dli-main-nav a, .dli-main-nav .nav-header, .dli-main-nav .separator { display: block; padding: 15px 14px; color: var(--dli-navy); text-decoration: none; font-size: .78rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.dli-main-nav a:hover, .dli-main-nav li.active > a { color: var(--dli-red); }
.dli-main-nav li.parent > a::after { content: "▾"; font-size: .64em; margin-left: 7px; }
.dli-main-nav ul ul { display: none; position: absolute; top: 100%; left: 0; min-width: 230px; padding: 8px; background: #fff; border: 1px solid var(--dli-line); box-shadow: var(--dli-shadow); z-index: 70; border-radius: 0 0 14px 14px; }
.dli-main-nav li:hover > ul, .dli-main-nav li:focus-within > ul { display: block; }
.dli-main-nav ul ul a { padding: 9px 10px; border-radius: 8px; letter-spacing: .03em; }
.dli-nav-search { max-width: 270px; margin-left: auto; }
.dli-nav-search input[type="search"], .dli-nav-search input[type="text"] { width: 100%; border-radius: 999px; border: 1px solid var(--dli-line); padding: 9px 13px; background: #fff; }

/* Breaking news */
.dli-breaking { background: var(--dli-red); color: #fff; }
.dli-breaking-inner { min-height: 46px; display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 16px; }
.dli-breaking strong { align-self: stretch; display: inline-flex; align-items: center; background: var(--dli-red-dark); padding: 0 18px; margin-left: -18px; text-transform: uppercase; font-size: .75rem; letter-spacing: .14em; font-weight: 900; }
.dli-breaking-content { overflow: hidden; white-space: nowrap; font-weight: 700; }
.dli-breaking-content a { color: #fff; text-decoration-color: rgba(255,255,255,.55); }
.dli-breaking-content p { margin: 0; display: inline; }

/* Pulso */
.dli-pulso { margin-top: 22px; margin-bottom: 24px; display: grid; grid-template-columns: 300px minmax(0, 1fr); overflow: hidden; border: 1px solid var(--dli-line); background: #fff; box-shadow: var(--dli-shadow); }
.dli-pulso-header { display: flex; align-items: center; gap: 15px; padding: 20px 22px; background: var(--dli-navy); color: #fff; }
.dli-pulso-header img { width: 62px; height: 62px; object-fit: contain; filter: brightness(0) invert(1); opacity: .96; }
.dli-pulso-header p { margin: 0 0 2px; color: rgba(255,255,255,.7); text-transform: uppercase; font-weight: 900; font-size: .68rem; letter-spacing: .14em; }
.dli-pulso-header h2 { margin: 0; color: #fff; font-size: 1.55rem; line-height: 1; }
.dli-pulso-body { padding: 18px 22px; display: flex; align-items: center; min-width: 0; }
.dli-pulso-default { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: 0; padding: 0; list-style: none; width: 100%; }
.dli-pulso-default li { border-left: 3px solid var(--dli-red); padding-left: 13px; }
.dli-pulso-default strong { display: block; color: var(--dli-navy); font-family: var(--dli-serif); font-size: 1.05rem; line-height: 1.2; }
.dli-pulso-default span { display: block; color: var(--dli-muted); font-size: .88rem; line-height: 1.45; margin-top: 3px; }

/* Common module styling */
.dli-module { position: relative; }
.dli-module-card, .dli-module-section { background: #fff; border: 1px solid var(--dli-line); border-radius: 0; padding: 20px; box-shadow: none; }
.dli-module-feature { background: #fff; border: 1px solid var(--dli-line); padding: 24px; box-shadow: var(--dli-shadow); }
.dli-module-clean { width: 100%; }
.dli-module-title { margin: 0 0 16px; color: var(--dli-navy); font-family: var(--dli-serif); font-weight: 800; letter-spacing: -.025em; line-height: 1.1; display: flex; align-items: center; gap: 12px; }
.dli-module-title::after { content: ""; height: 2px; background: var(--dli-red); flex: 1; min-width: 32px; opacity: .95; }
.dli-module-card .dli-module-title { font-size: 1.25rem; }
.dli-module-feature .dli-module-title { font-size: clamp(1.6rem, 2.4vw, 2.2rem); }
.dli-module-section .dli-module-title { font-size: 1.55rem; border-bottom: 2px solid var(--dli-navy); padding-bottom: 10px; }
.dli-module-content > :first-child { margin-top: 0; }
.dli-module-content > :last-child { margin-bottom: 0; }
.dli-module ul, .dli-sidebar ul { padding-left: 0; list-style: none; margin: 0; }
.dli-module li + li, .dli-sidebar li + li { border-top: 1px solid var(--dli-line); padding-top: 12px; margin-top: 12px; }

/* Home layouts */
.dli-home-hero { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(260px, .8fr); grid-template-areas: "main side" "secondary side" "top top"; gap: 22px; padding: 0 0 28px; }
.dli-hero-main { grid-area: main; }
.dli-hero-secondary { grid-area: secondary; }
.dli-hero-side { grid-area: side; }
.dli-home-top { grid-area: top; }
.dli-hero-main .dli-module-feature { min-height: 340px; display: flex; flex-direction: column; justify-content: flex-end; }
.dli-news-river { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; padding: 0 0 28px; }
.dli-news-river-bottom { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.dli-video-band { background: var(--dli-navy); color: #fff; padding: 34px 0; margin: 8px 0 34px; }
.dli-video-band .dli-module-feature { background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.18); box-shadow: none; }
.dli-video-band .dli-module-title, .dli-video-band h1, .dli-video-band h2, .dli-video-band h3, .dli-video-band a { color: #fff; }
.dli-video-band .dli-module-title::after { background: var(--dli-red); }
.dli-newsletter-band { padding: 0 0 34px; }
.dli-newsletter-band .dli-module-feature { background: linear-gradient(135deg, var(--dli-navy), #0b346c); color: #fff; border: 0; }
.dli-newsletter-band .dli-module-title, .dli-newsletter-band h2, .dli-newsletter-band h3, .dli-newsletter-band label { color: #fff; }
.dli-newsletter-band .dli-module-title::after { background: var(--dli-red); }
.dli-newsletter-band input { background: #fff; }
.dli-bottom-sections { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; padding: 0 0 42px; }

/* Main layout */
.dli-main { padding: 0 0 32px; }
.dli-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; align-items: start; }
.dli-three-column .dli-layout { grid-template-columns: 230px minmax(0, 1fr) 310px; }
.dli-right-column .dli-layout { grid-template-columns: minmax(0, 1fr) 320px; }
.dli-left-column .dli-layout { grid-template-columns: 260px minmax(0, 1fr); }
.dli-content-area { min-width: 0; }
.dli-sidebar { display: grid; gap: 18px; position: relative; }
.dli-sidebar-right { position: sticky; top: 84px; }
.dli-sidebar .dli-module-card { padding: 18px; }
.dli-sidebar .dli-module-title { font-size: 1.05rem; text-transform: none; }
.dli-sidebar a { text-decoration: none; font-weight: 800; }

/* Joomla content / article cards */
.com-content-category-blog__heading,
.page-header h1,
h1, h2, h3, h4, h5, h6 { font-family: var(--dli-serif); color: var(--dli-navy); line-height: 1.08; letter-spacing: -.028em; }
h1, .item-page h1, .com-content-article__heading, .com-content-category-blog__heading { font-size: clamp(2.35rem, 5.2vw, 5rem); margin: 0 0 18px; }
h2 { font-size: clamp(1.8rem, 3vw, 2.8rem); }
h3 { font-size: clamp(1.3rem, 2vw, 1.8rem); }
.item-page, .com-content-article, .blog, .com-content-category-blog { background: #fff; border: 1px solid var(--dli-line); padding: clamp(20px, 4vw, 42px); }
.item-page .page-header, .com-content-article .page-header { border-bottom: 2px solid var(--dli-navy); padding-bottom: 18px; margin-bottom: 24px; }
.article-info, .com-content-article__info, .article-info-term { color: var(--dli-muted); font-size: .88rem; }
.article-info dd, .article-info dt { display: inline; margin: 0 10px 0 0; }
.icons, .com-content-article__icons { float: right; margin: 0 0 12px 12px; }
.item-image, .com-content-article__image { margin: 0 0 24px; }
.item-image img, .com-content-article__image img, .blog-item img, .com-content-category-blog__item img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; background: var(--dli-soft); }
.item-page p, .com-content-article p { font-size: 1.075rem; }
.item-page blockquote, .com-content-article blockquote { margin: 28px 0; padding: 22px 26px; border-left: 5px solid var(--dli-red); background: var(--dli-soft); color: var(--dli-navy); font-family: var(--dli-serif); font-size: clamp(1.3rem, 2vw, 1.8rem); line-height: 1.25; }
.tags, .com-tags-tag__category { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.tags .tag, .tags a, .com-tags-tag__category a { display: inline-flex; border: 1px solid var(--dli-line); border-radius: 999px; padding: 6px 10px; text-decoration: none; font-size: .78rem; font-weight: 900; text-transform: uppercase; letter-spacing: .05em; }
.readmore a, .btn, button.btn, input[type="submit"] { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 1px solid var(--dli-navy); background: var(--dli-navy); color: #fff; padding: 10px 15px; border-radius: 999px; text-decoration: none; font-weight: 900; cursor: pointer; }
.readmore a:hover, .btn:hover, button.btn:hover, input[type="submit"]:hover { background: var(--dli-red); border-color: var(--dli-red); color: #fff; }
.blog-items, .items-row, .com-content-category-blog__items { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.blog-item, .items-row > div, .com-content-category-blog__item { background: #fff; border: 1px solid var(--dli-line); padding: 18px; min-width: 0; position: relative; }
.blog-item .item-title, .blog-item h2, .com-content-category-blog__item-title { font-size: clamp(1.35rem, 2.1vw, 2rem); margin-top: 12px; }
.blog-item .item-title a, .com-content-category-blog__item-title a { color: var(--dli-navy); text-decoration: none; }
.blog-item .item-title a:hover, .com-content-category-blog__item-title a:hover { color: var(--dli-red); }
.category-name, .mod-articles-category-category, .fields-container .field-entry { color: var(--dli-red); text-transform: uppercase; letter-spacing: .1em; font-size: .72rem; font-weight: 900; }
.pagination { display: flex; justify-content: center; gap: 7px; padding: 28px 0 0; margin: 0; list-style: none; }
.pagination a, .pagination span { display: inline-flex; min-width: 38px; height: 38px; align-items: center; justify-content: center; border: 1px solid var(--dli-line); background: #fff; border-radius: 999px; text-decoration: none; }
.pagination .active a, .pagination .active span { background: var(--dli-navy); color: #fff; }

/* Article/news module content helpers */
.mod-articlesnews, .mod-articles-category-group, .latestnews, .mostread, .newsflash { margin: 0; padding: 0; list-style: none; }
.latestnews li, .mostread li, .mod-articles-category-group li { list-style: none; }
.newsflash-title, .mod-articlesnews__item-title, .latestnews a, .mostread a { font-family: var(--dli-serif); color: var(--dli-navy); font-weight: 800; line-height: 1.18; text-decoration: none; }
.newsflash-title { font-size: 1.45rem; }
.mod-articlesnews__item, .newsflash .newsflash-item { position: relative; }
.mod-articlesnews img, .newsflash img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; background: url('../images/fallback-news.svg') center/cover no-repeat var(--dli-soft); margin-bottom: 12px; }
.mod-articles-category-date, .mod-articlesnews__item-date, .published { color: var(--dli-muted); font-size: .82rem; }

/* Forms/messages */
input, textarea, select { max-width: 100%; border: 1px solid var(--dli-line); border-radius: 10px; padding: 10px 12px; color: var(--dli-ink); background: #fff; }
textarea { min-height: 150px; }
label { font-weight: 800; color: var(--dli-navy); }
.control-group { margin-bottom: 15px; }
.alert, .system-message-container .alert { border-radius: 0; border: 1px solid var(--dli-line); padding: 14px 16px; background: var(--dli-soft); }

/* Footer */
.dli-footer { background: var(--dli-navy); color: rgba(255,255,255,.82); margin-top: 20px; }
.dli-footer a { color: #fff; text-decoration-color: rgba(255,255,255,.35); }
.dli-footer-grid { display: grid; grid-template-columns: minmax(260px, 1.4fr) repeat(3, minmax(160px, .7fr)); gap: 34px; padding: 44px 0; }
.dli-footer-brand img { max-width: 360px; filter: brightness(0) invert(1); opacity: .96; margin-bottom: 12px; }
.dli-footer-brand p { margin: 0; max-width: 460px; color: rgba(255,255,255,.74); }
.dli-footer-module h3 { color: #fff; font-family: var(--dli-serif); font-size: 1.1rem; margin: 0 0 12px; }
.dli-footer-module ul { padding: 0; list-style: none; margin: 0; }
.dli-footer-module li + li { margin-top: 8px; }
.dli-footer-bottom { border-top: 1px solid rgba(255,255,255,.16); padding: 14px 0; font-size: .85rem; }

/* Utility module class suffix ideas */
.dli-urgent, .moduleclass_sfx-urgent { border-top: 4px solid var(--dli-red) !important; }
.dli-dark { background: var(--dli-navy) !important; color: #fff; }
.dli-dark h1, .dli-dark h2, .dli-dark h3, .dli-dark a { color: #fff; }
.dli-muted-box { background: var(--dli-soft) !important; }
.dli-kicker { color: var(--dli-red); text-transform: uppercase; letter-spacing: .12em; font-weight: 900; font-size: .74rem; }

@media (max-width: 1120px) {
  .dli-masthead { grid-template-columns: 1fr; text-align: center; }
  .dli-brand { justify-content: center; justify-self: center; margin-inline: auto; }
  .dli-brand-logo { object-position: center; max-height: 126px; }
  .dli-masthead-ad { width: 100%; }
  .dli-three-column .dli-layout, .dli-right-column .dli-layout, .dli-left-column .dli-layout { grid-template-columns: minmax(0, 1fr); }
  .dli-sidebar-right { position: static; }
  .dli-news-river, .dli-news-river-bottom { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 880px) {
  .dli-container { width: min(100% - 28px, var(--dli-max)); }
  .dli-topbar-inner { justify-content: center; text-align: center; }
  .dli-topbar-right { display: none; }
  .dli-masthead { padding: 20px 0 12px; }
  .dli-brand-logo { max-height: 104px; }
  .dli-tagline-row strong { letter-spacing: .16em; font-size: .64rem; text-align: center; }
  .dli-menu-toggle { display: inline-flex; }
  .dli-nav-inner { align-items: center; flex-wrap: wrap; padding: 8px 0; }
  .dli-main-nav { flex-basis: 100%; display: none; }
  .dli-main-nav.is-open { display: block; }
  .dli-main-nav ul, .dli-main-nav .mod-menu { display: block; }
  .dli-main-nav a, .dli-main-nav .nav-header, .dli-main-nav .separator { padding: 11px 4px; border-top: 1px solid var(--dli-line); }
  .dli-main-nav ul ul { position: static; display: block; border: 0; box-shadow: none; padding-left: 14px; background: transparent; }
  .dli-nav-search { max-width: none; flex: 1; }
  .dli-breaking-inner { grid-template-columns: 1fr; gap: 0; padding: 0; }
  .dli-breaking strong { margin: 0; justify-content: center; min-height: 38px; }
  .dli-breaking-content { padding: 10px 0; text-align: center; }
  .dli-pulso, .dli-home-hero, .dli-news-river, .dli-news-river-bottom, .dli-bottom-sections, .blog-items, .items-row, .com-content-category-blog__items, .dli-footer-grid { grid-template-columns: 1fr; }
  .dli-home-hero { grid-template-areas: none; }
  .dli-hero-main, .dli-hero-secondary, .dli-hero-side, .dli-home-top { grid-area: auto; }
  .dli-pulso-default { grid-template-columns: 1fr; }
  .dli-pulso-header { justify-content: center; text-align: left; }
}
@media (max-width: 560px) {
  .dli-container { width: min(100% - 22px, var(--dli-max)); }
  .dli-brand-logo { max-height: 78px; }
  .dli-tagline-row { grid-template-columns: 1fr; gap: 8px; }
  .dli-tagline-row span { width: 110px; margin-inline: auto; }
  h1, .item-page h1, .com-content-article__heading, .com-content-category-blog__heading { font-size: 2.2rem; }
  .item-page, .com-content-article, .blog, .com-content-category-blog { padding: 18px; }
  .dli-module-feature, .dli-module-card, .dli-module-section { padding: 16px; }
  .dli-pulso-header { display: none; }
  .dli-pulso { display: block; }
  .dli-pulso-body { padding: 16px; }
}
