/* NexoColonia public portal — premium editorial layer */
.public-page .public-breadcrumb { min-height: 48px; display: flex; align-items: center; gap: .55rem; overflow: hidden; color: var(--nc-text-muted); font-size: .82rem; white-space: nowrap; }
.public-page .public-breadcrumb a { color: var(--nc-brand-700); font-weight: 700; }
.public-page .public-breadcrumb span[aria-current] { overflow: hidden; text-overflow: ellipsis; }


/* Commercial and clearly disclosed advertising */
.public-page .commercial-logo-strip { border-bottom: 1px solid var(--nc-border); background: #fff; padding-block: 1rem; }
.public-page .commercial-logo-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: .65rem; }
.public-page .commercial-logo-title { color: var(--nc-text-muted); font-size: .67rem; font-weight: 850; letter-spacing: .1em; }
.public-page .commercial-logo-heading small { color: var(--nc-text-muted); }
.public-page .commercial-carousel { display: grid; grid-template-columns: 40px minmax(0,1fr) 40px; align-items: center; gap: .5rem; }
.public-page .commercial-carousel-control { width: 40px; height: 40px; border: 1px solid var(--nc-border); border-radius: 50%; background: #fff; color: var(--nc-ink-900); cursor: pointer; }
.public-page .commercial-carousel-viewport { overflow-x: auto; scrollbar-width: none; }
.public-page .commercial-logo-list { display: flex; gap: .65rem; }
.public-page .commercial-brand-link { position: relative; flex: 0 0 9.5rem; min-height: 7.5rem; display: grid; place-items: center; align-content: center; gap: .2rem; padding: 1.3rem .65rem .6rem; border: 1px solid var(--nc-border); border-radius: var(--nc-radius-sm); background: var(--nc-surface); text-align: center; text-decoration: none; }
.public-page .commercial-brand-link:hover { border-color: var(--nc-brand-600); box-shadow: var(--nc-shadow-sm); }
.public-page .commercial-brand-link img { width: 5rem; height: 2.7rem; object-fit: contain; }
.public-page .commercial-brand-link b { max-width: 100%; overflow: hidden; text-overflow: ellipsis; font-size: .76rem; white-space: nowrap; }
.public-page .commercial-brand-link small { color: var(--nc-text-muted); font-size: .66rem; }
.public-page .ad-disclosure { position: absolute; top: .35rem; left: .45rem; color: var(--nc-text-muted); font-size: .58rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.public-page .commercial-carousel-progress { display: none; }

/* Home hierarchy */
.public-page .home-lead { padding-block: clamp(1.4rem, 4vw, 3.25rem); }
.public-page .hero-grid { display: grid; grid-template-columns: minmax(0,1.72fr) minmax(18rem,.72fr); gap: clamp(1rem, 2vw, 1.6rem); }
.public-page .lead-story-card { position: relative; min-height: clamp(27rem, 50vw, 39rem); overflow: hidden; display: flex; align-items: end; border-radius: var(--nc-radius-lg); background: var(--nc-ink-900); color: #fff; box-shadow: var(--nc-shadow-md); text-decoration: none; }
.public-page .lead-story-card > img,
.public-page .lead-story-card > .img-fallback-container { position: absolute; inset: 0; width: 100%; height: 100%; }
.public-page .lead-story-card > img { object-fit: cover; transition: transform 550ms var(--nc-ease); }
.public-page .lead-story-card:hover > img { transform: scale(1.025); }
.public-page .lead-shade { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 24%, rgb(3 15 30 / 88%) 100%); }
.public-page .lead-copy { position: relative; z-index: 1; max-width: 52rem; padding: clamp(1.25rem, 4vw, 3rem); }
.public-page .lead-copy .eyebrow { color: #9ce1ff; }
.public-page .lead-copy h1 { margin: .55rem 0 .8rem; color: #fff; font-family: var(--nc-font-editorial); font-size: clamp(2rem, 5vw, 4.35rem); font-weight: 700; letter-spacing: -.04em; line-height: 1; text-wrap: balance; }
.public-page .lead-copy > p { max-width: 56ch; margin: 0 0 1.2rem; color: #e4edf7; font-size: clamp(.95rem, 1.6vw, 1.12rem); }
.public-page .author-row { display: flex; align-items: center; gap: .65rem; }
.public-page .avatar { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid rgb(255 255 255 / 45%); border-radius: 50%; background: rgb(255 255 255 / 13%); font-size: .7rem; font-weight: 850; }
.public-page .author-info b,
.public-page .author-info small { display: block; }
.public-page .author-info small { color: #bed0e3; }

.public-page .hero-side-card { overflow: hidden; border: 1px solid var(--nc-border); border-radius: var(--nc-radius-lg); background: #fff; box-shadow: var(--nc-shadow-sm); }
.public-page .hero-side-header { display: flex; align-items: center; justify-content: space-between; padding: 1.1rem 1.2rem; border-bottom: 1px solid var(--nc-border); background: linear-gradient(135deg,var(--nc-ink-950),var(--nc-ink-800)); color: #fff; }
.public-page .hero-side-title { display: flex; align-items: center; gap: .55rem; margin: 0; font-size: 1rem; }
.public-page .hero-side-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: rgb(255 255 255 / 13%); }
.public-page .hero-side-badge { font-size: .65rem; font-weight: 850; letter-spacing: .1em; }
.public-page .club-news-list { display: grid; }
.public-page .club-news-item { display: grid; gap: .38rem; padding: 1rem 1.15rem; border-bottom: 1px solid var(--nc-border); text-decoration: none; }
.public-page .club-news-item:last-child { border: 0; }
.public-page .club-news-item:hover { background: var(--nc-surface-muted); }
.public-page .club-news-meta { display: flex; align-items: center; gap: .45rem; color: var(--nc-text-muted); font-size: .68rem; font-weight: 760; text-transform: uppercase; }
.public-page .club-news-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--nc-brand-600); }
.public-page .club-news-date { margin-left: auto; }
.public-page .club-news-title { margin: 0; color: var(--nc-ink-950); font-family: var(--nc-font-editorial); font-size: 1.08rem; line-height: 1.25; }
.public-page .club-news-author { display: flex; align-items: center; gap: .45rem; color: var(--nc-text-muted); font-size: .72rem; }
.public-page .club-news-avatar { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; background: var(--nc-brand-100); color: var(--nc-brand-700); font-size: .56rem; font-weight: 850; }
.public-page .club-news-empty { padding: 2rem 1.2rem; color: var(--nc-text-muted); }

.public-page .premium-layout { display: grid; grid-template-columns: minmax(9.5rem, .22fr) minmax(0,1fr) minmax(9.5rem,.22fr); align-items: start; gap: 1.25rem; }
.public-page .premium-layout:not(.has-left):not(.has-right) { grid-template-columns: minmax(0,1fr); }
.public-page .premium-layout.has-left:not(.has-right),
.public-page .premium-layout.has-right:not(.has-left) { grid-template-columns: minmax(9.5rem,.22fr) minmax(0,1fr); }
.public-page .premium-layout.has-right:not(.has-left) .premium-main-content { grid-column: 1; grid-row: 1; }
.public-page .premium-layout.has-right:not(.has-left) .right-sidebar { grid-column: 2; grid-row: 1; }
.public-page .premium-main-content { min-width: 0; }
.public-page .premium-main-content > .shell { width: 100%; }
.public-page .premium-sidebar { min-width: 0; }
.public-page .premium-ads-sticky { position: sticky; top: 5.5rem; max-height: calc(100vh - 7rem); overflow-y: auto; scrollbar-width: thin; }
.public-page .premium-ads-scrollable { display: grid; gap: .8rem; }
.public-page .premium-ad-card { overflow: hidden; border: 1px solid var(--nc-border); border-radius: var(--nc-radius-md); background: #fff; box-shadow: var(--nc-shadow-sm); }
.public-page .premium-ad-card::before { content: "Publicidad"; display: block; padding: .35rem .55rem; border-bottom: 1px solid var(--nc-border); color: var(--nc-text-muted); font-size: .58rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.public-page .premium-ad-img { width: 100%; aspect-ratio: 4/3; display: block; object-fit: cover; }
.public-page .premium-ad-content { padding: .8rem; }
.public-page .premium-ad-title { margin: 0; color: var(--nc-ink-950); font-size: .9rem; }
.public-page .premium-ad-desc { margin: .35rem 0; color: var(--nc-text-muted); font-size: .72rem; }
.public-page .premium-ad-contact { display: grid; gap: .25rem; margin-top: .55rem; }
.public-page .premium-ad-contact a,
.public-page .premium-ad-link { overflow-wrap: anywhere; color: var(--nc-brand-700); font-size: .7rem; font-weight: 700; }
.public-page .premium-ad-link { display: inline-flex; margin-top: .65rem; }

.public-page .actualidad-grid,
.public-page .dynamic-news-grid,
.public-page .journalist-publication-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.15rem; }
.public-page .actualidad-card,
.public-page .dynamic-news-card,
.public-page .journalist-publication-card { overflow: hidden; border: 1px solid var(--nc-border); border-radius: var(--nc-radius-md); background: #fff; box-shadow: var(--nc-shadow-sm); text-decoration: none; transition: transform var(--nc-motion-fast), box-shadow var(--nc-motion-fast), border-color var(--nc-motion-fast); }
.public-page :is(.actualidad-card,.dynamic-news-card,.journalist-publication-card):hover { border-color: var(--nc-border-strong); box-shadow: var(--nc-shadow-md); transform: translateY(-2px); }
.public-page .actualidad-thumb,
.public-page .publication-cover { position: relative; aspect-ratio: 16/10; overflow: hidden; display: block; background: var(--nc-surface-muted); }
.public-page .actualidad-thumb img,
.public-page .publication-cover img,
.public-page .dynamic-news-card > img,
.public-page .dynamic-news-card > a > img { width: 100%; height: 100%; display: block; object-fit: cover; }
.public-page .actualidad-cat,
.public-page .publication-category { position: absolute; left: .75rem; bottom: .75rem; padding: .3rem .5rem; border-radius: var(--nc-radius-xs); background: rgb(6 26 50 / 88%); color: #fff; font-size: .62rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.public-page .actualidad-body,
.public-page .publication-content,
.public-page .dynamic-news-card > div { padding: 1rem; }
.public-page .actualidad-body h3,
.public-page .publication-content h3,
.public-page .dynamic-news-card h2 { margin: 0; color: var(--nc-ink-950); font-family: var(--nc-font-editorial); font-size: clamp(1.15rem,2vw,1.45rem); line-height: 1.2; }
.public-page .actualidad-body p,
.public-page .publication-content > p,
.public-page .dynamic-news-card p { margin: .55rem 0; color: var(--nc-text-muted); font-size: .9rem; }
.public-page .actualidad-meta,
.public-page .publication-author,
.public-page .dynamic-news-card small { display: flex; align-items: center; justify-content: space-between; gap: .5rem; color: var(--nc-text-muted); font-size: .72rem; }

.public-page .ultimas-dual-layout { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(18rem,.65fr); gap: 1.25rem; }
.public-page .ultimas-block { overflow: hidden; border: 1px solid var(--nc-border); border-radius: var(--nc-radius-md); background: #fff; }
.public-page .ultimas-block-header { display: flex; align-items: center; gap: .6rem; padding: 1rem 1.15rem; border-bottom: 1px solid var(--nc-border); }
.public-page .ultimas-block-header h3 { margin: 0; font-family: var(--nc-font-editorial); }
.public-page .ultimas-item { display: grid; grid-template-columns: 2rem minmax(0,1fr) 7.5rem; align-items: center; gap: .8rem; padding: .9rem 1rem; border-bottom: 1px solid var(--nc-border); text-decoration: none; }
.public-page .ultimas-item:hover { background: var(--nc-surface-muted); }
.public-page .ultimas-item-number { color: var(--nc-brand-600); font-family: var(--nc-font-editorial); font-size: 1.35rem; font-weight: 700; }
.public-page .ultimas-item h4,
.public-page .masleidas-item h4 { margin: .15rem 0; color: var(--nc-ink-950); font-family: var(--nc-font-editorial); line-height: 1.25; }
.public-page .ultimas-item-cat,
.public-page .masleidas-cat { color: var(--nc-brand-700); font-size: .63rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.public-page .ultimas-item-meta,
.public-page .masleidas-meta { display: flex; gap: .8rem; color: var(--nc-text-muted); font-size: .68rem; }
.public-page .ultimas-item-img { width: 7.5rem; aspect-ratio: 4/3; border-radius: var(--nc-radius-sm); object-fit: cover; }
.public-page .masleidas-list { margin: 0; padding: 0; list-style: none; }
.public-page .masleidas-item { display: grid; grid-template-columns: 2rem 1fr; gap: .7rem; padding: 1rem; border-bottom: 1px solid var(--nc-border); text-decoration: none; }
.public-page .masleidas-rank { color: var(--nc-breaking-600); font-family: var(--nc-font-editorial); font-size: 1.5rem; font-weight: 700; }

.public-page .sorteos-portada-grid,
.public-page .club-updates-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.public-page .sorteo-portada-card,
.public-page .club-update-card { position: relative; padding: 1.25rem; border: 1px solid var(--nc-border); border-radius: var(--nc-radius-md); background: #fff; box-shadow: var(--nc-shadow-sm); }
.public-page .sorteo-portada-card h3,
.public-page .club-update-card h3 { color: var(--nc-ink-950); font-family: var(--nc-font-editorial); }
.public-page .sorteo-portada-countdown { display: grid; grid-template-columns: repeat(4,1fr); gap: .35rem; margin-block: 1rem; }
.public-page .sorteo-portada-countdown > div { padding: .55rem .25rem; border-radius: var(--nc-radius-sm); background: var(--nc-ink-950); color: #fff; text-align: center; }
.public-page .sorteo-portada-countdown strong,
.public-page .sorteo-portada-countdown small { display: block; }
.public-page .sorteo-portada-countdown small { font-size: .62rem; }

.public-page .newsletter { margin-top: clamp(3rem,7vw,6rem); padding-block: clamp(3rem,6vw,5.5rem); background: linear-gradient(135deg,var(--nc-ink-950),var(--nc-ink-800)); color: #fff; }
.public-page .newsletter-inner { display: grid; grid-template-columns: minmax(0,1fr) minmax(20rem,.8fr); align-items: center; gap: clamp(2rem,5vw,5rem); }
.public-page .newsletter h2 { margin: .45rem 0; color: #fff; font-family: var(--nc-font-editorial); font-size: clamp(2rem,4vw,3.6rem); line-height: 1; }
.public-page .newsletter p { color: #c8dbef; }
.public-page .newsletter label { color: #fff; }
.public-page .newsletter form > div { display: grid; grid-template-columns: 1fr auto; gap: .5rem; }
.public-page .newsletter .consent { display: block; margin-top: .5rem; color: #b8cde2; }
.public-page .newsletter .button-white { background: #fff; border-color: #fff; color: var(--nc-ink-950); }

/* Listing and search */
.public-page .listing-page { display: grid; gap: 2rem; }
.public-page .page-search { max-width: 48rem; padding: 1.25rem; border: 1px solid var(--nc-border); border-radius: var(--nc-radius-md); background: #fff; box-shadow: var(--nc-shadow-sm); }
.public-page .page-search > div { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .6rem; margin-top: .45rem; }
.public-page .search-filter-form { max-width: none; }
.public-page .search-filter-form .search-primary-field > div { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .6rem; margin-top: .35rem; }
.public-page .search-filter-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .75rem; margin-top: 1rem; }
.public-page .search-reset { display: inline-flex; margin-top: .8rem; color: var(--nc-brand-700); font-size: .82rem; font-weight: 750; }
.public-page .search-result-count { margin: 0; color: var(--nc-text-muted); font-weight: 750; }
.public-page .public-pagination { display: flex; align-items: center; justify-content: center; gap: 1rem; padding-top: .75rem; }
.public-page .public-pagination a { min-height: 42px; display: inline-flex; align-items: center; padding: .5rem .75rem; border: 1px solid var(--nc-border); border-radius: var(--nc-radius-sm); background: #fff; color: var(--nc-brand-700); font-weight: 750; text-decoration: none; }
.public-page .public-pagination span { color: var(--nc-text-muted); font-size: .82rem; }
.public-page .listing-page .dynamic-news-card { display: grid; grid-template-rows: auto 1fr; }
.public-page .listing-page .dynamic-news-card > a:first-child { aspect-ratio: 16/10; }
.public-page .listing-page .dynamic-news-card .eyebrow { margin-bottom: .45rem; }

/* Article reader */
.public-page .article-reader-container { max-width: 72rem; padding-block: clamp(2rem,5vw,4.5rem); }
.public-page .official-police-header-box { margin-bottom: 1.5rem; padding: 1rem 1.5rem; border: 1px solid var(--nc-border); border-radius: var(--nc-radius-md); background: #fff; box-shadow: var(--nc-shadow-sm); text-align: center; }
.public-page .official-police-header-box img { display: inline-block; width: auto; max-height: 85px; }
.public-page .article-header-hero { max-width: 48rem; margin-inline: auto; }
.public-page .article-meta-kicker { display: flex; flex-wrap: wrap; gap: .55rem; }
.public-page .category-kicker-pill,
.public-page .locality-kicker-badge { display: inline-flex; align-items: center; min-height: 32px; padding: .35rem .65rem; border-radius: var(--nc-radius-pill); font-size: .7rem; font-weight: 850; letter-spacing: .07em; text-decoration: none; text-transform: uppercase; }
.public-page .category-kicker-pill { background: var(--nc-brand-700); color: #fff; box-shadow: var(--nc-shadow-sm); }
.public-page .locality-kicker-badge { background: var(--nc-surface-muted); color: var(--nc-text-muted); }
.public-page .article-main-title { position: relative; margin: 1.2rem 0 .85rem; padding-bottom: 1.25rem; color: var(--nc-ink-950); font-family: var(--nc-font-editorial); font-size: clamp(1.75rem,3.6vw,2.65rem); font-weight: 800; letter-spacing: -.03em; line-height: 1.08; text-wrap: balance; }
.public-page .article-main-title::after { content: ""; position: absolute; bottom: 0; left: 0; width: 60px; height: 3px; background: var(--nc-brand-700); border-right: 14px solid var(--nc-breaking-600); }
.public-page .article-main-lead { max-width: 62ch; margin: 1.2rem 0 2rem; color: var(--nc-ink-800); font-family: var(--nc-font-editorial); font-size: clamp(1.15rem,2vw,1.45rem); font-weight: 400; line-height: 1.6; }
.public-page .article-author-card { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 1rem; margin-top: 2rem; padding: 1.2rem 0; border-top: 1px solid var(--nc-border); border-bottom: 1px solid var(--nc-border); }
.public-page .author-avatar-img,
.public-page .author-avatar-fallback { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; background: var(--nc-brand-100); color: var(--nc-brand-700); object-fit: cover; font-size: .75rem; font-weight: 850; }
.public-page .author-name-row { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; }
.public-page .author-name { color: var(--nc-ink-950); text-decoration: none; }
.public-page a.author-name:hover { color: var(--nc-brand-700); text-decoration: underline; }
.public-page .journalist-badge { padding: .2rem .4rem; border-radius: var(--nc-radius-xs); background: var(--nc-success-700); color: #fff; font-size: .56rem; font-weight: 850; letter-spacing: .07em; }
.public-page .article-pub-details { display: flex; flex-wrap: wrap; gap: .45rem; color: var(--nc-text-muted); font-size: .76rem; }
.public-page .btn-tts-listen { min-height: 44px; padding: .6rem .8rem; border: 1px solid var(--nc-border-strong); border-radius: var(--nc-radius-sm); background: #fff; color: var(--nc-ink-900); font-weight: 760; cursor: pointer; }
.public-page .btn-tts-listen[aria-pressed="true"] { background: var(--nc-ink-950); color: #fff; }
.public-page .article-featured-image-box { max-width: 48rem; margin: clamp(1.5rem,4vw,3rem) auto; }
.public-page .featured-img-frame { display: grid; place-items: center; overflow: hidden; border-radius: var(--nc-radius-md); background: linear-gradient(135deg, rgba(7, 26, 55, .96), rgba(20, 43, 64, .88)); border: 1px solid var(--nc-border); box-shadow: var(--nc-shadow-md); transition: border-color var(--nc-motion-fast); }
.public-page .article-featured-image-box:hover .featured-img-frame { border-color: var(--nc-brand-700); }
.public-page .featured-img { width: 100%; height: auto; max-height: 52rem; display: block; object-fit: contain; }
.public-page .featured-img-caption { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; padding: .85rem .4rem; color: var(--nc-text-muted); font-family: var(--nc-font-editorial); font-size: .85rem; font-style: italic; }
.public-page .img-credit-tag { font-family: var(--nc-font-ui); font-size: .7rem; font-style: normal; font-weight: 800; color: var(--nc-success-700); letter-spacing: .06em; text-transform: uppercase; }
.public-page .article-content-body { max-width: 48rem; margin-inline: auto; }
.public-page .article-text-render { color: #14273d; font-family: var(--nc-font-editorial); font-size: clamp(1.08rem,2vw,1.22rem); line-height: 1.78; }
.public-page .article-text-render p { margin: 0 0 1.4em; text-align: justify; text-justify: inter-word; hyphens: auto; }
.public-page .article-text-render a { color: var(--nc-brand-700); font-weight: 600; text-decoration-color: var(--nc-brand-100); transition: text-decoration-color var(--nc-motion-fast); }
.public-page .article-text-render a:hover { text-decoration-color: var(--nc-brand-700); }
.public-page .article-text-render h2,
.public-page .article-text-render h3,
.public-page .article-text-render h4 { color: var(--nc-brand-700); font-family: var(--nc-font-editorial); margin-top: 2em; margin-bottom: 1em; line-height: 1.3; font-weight: 700; }
.public-page .article-text-render h2 { font-size: clamp(1.4rem, 3vw, 1.8rem); }
.public-page .article-text-render h3 { font-size: clamp(1.2rem, 2.5vw, 1.45rem); }
.public-page .article-text-render blockquote { margin: 2rem 0; padding: 1.25rem 1.5rem; border-left: 4px solid var(--nc-breaking-600); background: var(--nc-surface-muted); border-radius: 0 var(--nc-radius-sm) var(--nc-radius-sm) 0; font-size: 1.1em; font-style: italic; color: var(--nc-ink-900); }
.public-page .article-text-render blockquote p { margin: 0; }

/* TTS Player Premium Styles */
.public-page .premium-tts-player { position: sticky; top: 1rem; z-index: 100; margin-bottom: 2rem; margin-top: -1rem; }
.public-page .tts-player-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 1.25rem; border: 1px solid var(--nc-brand-700); border-left: 4px solid var(--nc-brand-600); border-radius: var(--nc-radius-md); background: var(--nc-surface); box-shadow: var(--nc-shadow-md); }
.public-page .tts-info { display: flex; flex-direction: column; }
.public-page .tts-label { font-size: .65rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; color: var(--nc-brand-600); }
.public-page .tts-title { font-size: .95rem; color: var(--nc-ink-950); font-family: var(--nc-font-editorial); }
.public-page .tts-controls { display: flex; align-items: center; gap: .75rem; }
.public-page .tts-btn { display: grid; place-items: center; width: 40px; height: 40px; border: none; border-radius: 50%; cursor: pointer; transition: all var(--nc-motion-fast); }
.public-page .tts-btn.primary { background: var(--nc-brand-700); color: #fff; }
.public-page .tts-btn.primary:hover { background: var(--nc-brand-600); transform: scale(1.05); }
.public-page .tts-btn.secondary { background: var(--nc-surface-muted); color: var(--nc-text-muted); }
.public-page .tts-btn.secondary:hover { background: #e2e8f0; color: var(--nc-breaking-600); }
.public-page .tts-volume-control { display: flex; align-items: center; gap: .5rem; margin-left: .5rem; color: var(--nc-text-muted); }
.public-page .tts-slider { width: 80px; accent-color: var(--nc-brand-700); }

/* Carousel Premium Overrides */
.public-page .nc-premium-carousel { max-width: 48rem; margin: clamp(1.5rem,4vw,3rem) auto; position: relative; overflow: hidden; border-radius: var(--nc-radius-md); border: 1px solid var(--nc-border); background: linear-gradient(135deg, rgba(7, 26, 55, .96), rgba(20, 43, 64, .88)); box-shadow: var(--nc-shadow-md); }
.public-page .nc-carousel-track { display: flex; transition: transform var(--nc-motion) ease; }
.public-page .nc-carousel-slide { flex: 0 0 100%; position: relative; }
.public-page .nc-carousel-slide img { width: 100%; height: 100%; max-height: 52rem; object-fit: contain; display: block; cursor: zoom-in; }
.public-page .nc-carousel-caption { position: absolute; bottom: 0; left: 0; width: 100%; padding: 2.5rem 1rem 1.5rem; background: linear-gradient(0deg, rgba(6,26,50,0.85) 0%, rgba(6,26,50,0) 100%); color: #fff; display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; font-family: var(--nc-font-editorial); font-size: .9rem; font-style: italic; }
.public-page .nc-carousel-caption .nc-credit-badge { font-family: var(--nc-font-ui); font-size: .65rem; font-style: normal; font-weight: 800; color: #a2f2c8; letter-spacing: .06em; text-transform: uppercase; }
.public-page .nc-carousel-btn { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; display: grid; place-items: center; border: none; border-radius: 50%; background: rgba(255,255,255,0.9); color: var(--nc-brand-700); font-size: 1.2rem; cursor: pointer; transition: all var(--nc-motion-fast); opacity: 0; }
.public-page .nc-premium-carousel:hover .nc-carousel-btn { opacity: 1; }
.public-page .nc-carousel-btn:hover { background: var(--nc-brand-700); color: #fff; }
.public-page .nc-carousel-btn.prev { left: 1rem; }
.public-page .nc-carousel-btn.next { right: 1rem; }
.public-page .nc-carousel-dots { position: absolute; bottom: .5rem; left: 50%; transform: translateX(-50%); display: flex; gap: .4rem; z-index: 10; }
.public-page .nc-carousel-dot { width: 8px; height: 8px; padding: 0; border: none; border-radius: 50%; background: rgba(255,255,255,0.5); cursor: pointer; transition: all var(--nc-motion-fast); }
.public-page .nc-carousel-dot.active { width: 24px; border-radius: 4px; background: var(--nc-brand-600); }

.public-page .article-gallery-section { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--nc-border); }
.public-page .gallery-section-title { font-family: var(--nc-font-editorial); font-size: 1.5rem; }
.public-page .gallery-media-grid { display: grid; gap: 1rem; }
.public-page .gallery-item-card { margin: 0; }
.public-page .gallery-item-card img { width: 100%; border-radius: var(--nc-radius-md); }
.public-page .article-video-embed { position: relative; aspect-ratio: 16/9; overflow: hidden; border-radius: var(--nc-radius-md); background: #000; }
.public-page .article-video-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.public-page .article-video-player video { width: 100%; border-radius: var(--nc-radius-md); }
.public-page .article-audio-card { display: grid; gap: .7rem; padding: 1rem; border: 1px solid var(--nc-border); border-radius: var(--nc-radius-md); background: #fff; }
.public-page .article-audio-card audio { width: 100%; }
.public-page .article-source-box { display: flex; gap: .8rem; margin-top: 2rem; padding: 1rem; border-left: 4px solid var(--nc-brand-600); border-radius: 0 var(--nc-radius-sm) var(--nc-radius-sm) 0; background: var(--nc-brand-100); }
.public-page .article-source-box :where(span,strong,a) { display: block; }
.public-page .source-link { color: var(--nc-brand-700); font-weight: 750; }
.public-page .article-tags-wrap { display: flex; align-items: center; gap: .75rem; margin-top: 1.5rem; flex-wrap: wrap; }
.public-page .article-tags-label { font-size: .8rem; font-weight: 800; color: var(--nc-text-muted, #64748b); text-transform: uppercase; letter-spacing: .05em; }
.public-page .article-tags-cloud { display: flex; flex-wrap: wrap; gap: .5rem; }
.public-page .article-tag-pill { display: inline-flex; align-items: center; padding: .3rem .75rem; border-radius: 999px; background: #eef6fc; color: #0369a1; font-size: .8rem; font-weight: 700; text-decoration: none; border: 1px solid #bae6fd; transition: all .15s ease; }
.public-page .article-tag-pill:hover { background: #0284c7; color: #ffffff; border-color: #0284c7; transform: translateY(-1px); }
.public-page .article-share-bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-block: 2.5rem; padding-block: 1rem; border-block: 1px solid var(--nc-border); }
.public-page .article-share-bar > span { font-weight: 800; }
.public-page .share-buttons-group { display: flex; flex-wrap: wrap; gap: .45rem; }
.public-page .btn-share { min-height: 40px; display: inline-flex; align-items: center; padding: .5rem .7rem; border: 1px solid var(--nc-border-strong); border-radius: var(--nc-radius-sm); background: #fff; font-size: .75rem; font-weight: 750; text-decoration: none; }
.public-page button.btn-share { color: var(--nc-text); cursor: pointer; }
.public-page .related-news { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--nc-border); }
.public-page .related-news-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; }
.public-page .related-news-grid article { padding: 1rem; border: 1px solid var(--nc-border); border-radius: var(--nc-radius-md); background: #fff; }
.public-page .related-news-grid h3 { margin: .35rem 0; font-family: var(--nc-font-editorial); font-size: 1.05rem; line-height: 1.25; }
.public-page .related-news-grid a { text-decoration: none; }
.public-page .related-news-grid a:hover { color: var(--nc-brand-700); text-decoration: underline; }
.public-page .related-news-grid time { color: var(--nc-text-muted); font-size: .7rem; }
.public-page .article-comments-section { margin-top: 2.5rem; }
.public-page .comments-section-header h2,
.public-page .comments-section-header h3 { font-family: var(--nc-font-editorial); font-size: 1.75rem; }
.public-page .comments-policy-notice { padding: 1rem; border: 1px solid var(--nc-border); border-radius: var(--nc-radius-md); background: var(--nc-surface-muted); }
.public-page .comment-input-form { display: grid; gap: .7rem; }
.public-page .btn-submit-comment,
.public-page .btn-login-comment { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; width: fit-content; padding: .65rem 1rem; border: 0; border-radius: var(--nc-radius-sm); background: var(--nc-brand-600); color: #fff; font-weight: 800; text-decoration: none; }
.public-page .comments-feed-list { display: grid; gap: .75rem; margin-top: 1rem; }
.public-page .comment-card { padding: 1rem; border: 1px solid var(--nc-border); border-radius: var(--nc-radius-md); background: #fff; }
.public-page .comment-card-header { display: flex; justify-content: space-between; gap: 1rem; }
.public-page .comment-card time { color: var(--nc-text-muted); font-size: .72rem; }

/* Authentication and access states */
.public-page [data-password-bar][data-score="0"] { width: 0; }
.public-page [data-password-bar][data-score="1"],
.public-page [data-club-password-bar][data-score="1"] { width: 20%; }
.public-page [data-password-bar][data-score="2"],
.public-page [data-club-password-bar][data-score="2"] { width: 40%; }
.public-page [data-password-bar][data-score="3"],
.public-page [data-club-password-bar][data-score="3"] { width: 60%; }
.public-page [data-password-bar][data-score="4"],
.public-page [data-club-password-bar][data-score="4"] { width: 80%; }
.public-page [data-password-bar][data-score="5"],
.public-page [data-club-password-bar][data-score="5"] { width: 100%; }
.public-page [data-club-password-bar][data-score="0"] { width: 0; }
.public-page .auth-page { min-height: 65vh; display: grid; place-items: center; padding: clamp(2rem,6vw,5rem) 1rem; }
.public-page .register-slide-colonia { background-image: url('/assets/images/hero/colonia-sacramento.jpg'); }
.public-page .register-slide-carmelo { background-image: url('/assets/images/hero/carmelo.jpg'); }
.public-page .register-slide-rural { background-image: url('/assets/images/hero/colonia-rural-ruta1.jpg'); }
.public-page .auth-card,
.public-page .contract-card { width: min(100%, 34rem); padding: clamp(1.5rem,4vw,2.5rem); border: 1px solid var(--nc-border); border-radius: var(--nc-radius-lg); background: #fff; box-shadow: var(--nc-shadow-md); }
.public-page .contract-card { width: min(100%, 58rem); }
.public-page .auth-card h1,
.public-page .contract-card h1 { margin: .35rem 0; color: var(--nc-ink-950); font-family: var(--nc-font-editorial); font-size: clamp(2rem,4vw,3rem); line-height: 1.05; }
.public-page .auth-card > p,
.public-page .contract-card > p { color: var(--nc-text-muted); }
.public-page .auth-card form { display: grid; gap: 1rem; margin-top: 1.4rem; }
.public-page .password-field { position: relative; }
.public-page .password-field input { padding-right: 4.8rem; }
.public-page .password-toggle { position: absolute; right: .4rem; bottom: .35rem; min-height: 36px; padding: .3rem .55rem; border: 0; border-radius: var(--nc-radius-xs); background: var(--nc-surface-muted); color: var(--nc-brand-700); font-size: .72rem; font-weight: 800; cursor: pointer; }
.public-page .forgot-password-link { justify-self: end; color: var(--nc-brand-700); font-size: .82rem; font-weight: 700; }
.public-page .auth-register-callout { display: grid; gap: .7rem; margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid var(--nc-border); text-align: center; }
.public-page .access-gate { min-height: 65vh; display: grid; place-items: center; }
.public-page .access-gate-card { width: min(100%, 38rem); overflow: hidden; border: 1px solid var(--nc-border); border-radius: var(--nc-radius-lg); background: #fff; box-shadow: var(--nc-shadow-md); }
.public-page .access-gate-main { padding: clamp(1.5rem,5vw,3rem); text-align: center; }
.public-page .access-gate-icon { width: 64px; height: 64px; display: grid; place-items: center; margin: 0 auto 1rem; border-radius: 50%; background: var(--nc-brand-100); font-size: 1.8rem; }
.public-page .access-gate-card.is-premium .access-gate-icon { background: #fff2cd; }
.public-page .access-gate-main h1 { margin: .45rem 0; color: var(--nc-ink-950); font-family: var(--nc-font-editorial); font-size: clamp(2rem,5vw,3rem); line-height: 1.05; }
.public-page .access-gate-main > p { color: var(--nc-text-muted); }
.public-page .access-gate-actions { display: grid; gap: .65rem; margin-top: 1.4rem; }
.public-page .access-gate-newsletter { padding: 1.25rem; border-top: 1px solid var(--nc-border); background: var(--nc-surface-muted); }
.public-page .access-gate-newsletter h2 { margin: 0; font-family: var(--nc-font-editorial); font-size: 1.25rem; }
.public-page .access-gate-newsletter p { margin: .3rem 0 .8rem; color: var(--nc-text-muted); font-size: .86rem; }
.public-page .access-gate-newsletter form { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .5rem; }
.public-page .ad-order-divider { margin: .65rem 0; border: 0; border-top: 1px solid #bfe5d2; }
.public-page .ad-order-subheading { margin-bottom: .25rem; color: #334155; font-size: .75rem; }
.public-page .ad-validation-list { margin: .4rem 0 0 1rem; padding: 0; text-align: left; }

/* Municipalities */
.public-page .municipalities-catalog-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.public-page .municipality-card { overflow: hidden; border: 1px solid var(--nc-border); border-radius: var(--nc-radius-md); background: #fff; box-shadow: var(--nc-shadow-sm); }
.public-page .municipality-card-link { display: block; height: 100%; text-decoration: none; }
.public-page .municipality-card-image { position: relative; aspect-ratio: 16/10; overflow: hidden; background: var(--nc-surface-muted); }
.public-page .municipality-card-image img { width: 100%; height: 100%; object-fit: cover; }
.public-page .municipality-card-placeholder { height: 100%; display: grid; place-items: center; color: var(--nc-brand-700); font-size: 3rem; }
.public-page .municipality-card-badge { position: absolute; left: .7rem; bottom: .7rem; padding: .25rem .45rem; border-radius: var(--nc-radius-xs); background: var(--nc-ink-950); color: #fff; font-size: .62rem; font-weight: 850; letter-spacing: .08em; }
.public-page .municipality-card-body { padding: 1rem; }
.public-page .municipality-card-body h2 { margin: 0; color: var(--nc-ink-950); font-family: var(--nc-font-editorial); font-size: 1.45rem; }
.public-page .municipality-card-body p { color: var(--nc-text-muted); }
.public-page .municipality-card-action { color: var(--nc-brand-700); font-weight: 800; }
.public-page .municipality-page-hero { padding-block: clamp(2.5rem,6vw,5rem); background: linear-gradient(135deg,var(--nc-ink-950),#0d4774); color: #fff; }
.public-page .municipality-hero-card { display: grid; gap: 1rem; }
.public-page .municipality-brand-badge { display: flex; align-items: center; gap: 1.2rem; }
.public-page .municipality-coat,
.public-page .municipality-coat-icon { width: 82px; height: 82px; display: grid; place-items: center; padding: .5rem; border-radius: var(--nc-radius-md); background: #fff; object-fit: contain; font-size: 2.4rem; }
.public-page .municipality-kicker { color: #91dcff; font-size: .7rem; font-weight: 850; letter-spacing: .1em; }
.public-page .municipality-brand-badge h1 { margin: .3rem 0; color: #fff; font-family: var(--nc-font-editorial); font-size: clamp(2rem,5vw,4rem); line-height: 1; }
.public-page .municipality-mayor-tag { display: flex; align-items: center; gap: .5rem; color: #d9e9f7; }
.public-page .municipality-mayor-tag small,
.public-page .municipality-mayor-tag strong { display: block; }
.public-page .municipality-councilors-strip { padding: .8rem 1rem; border: 1px solid rgb(255 255 255 / 20%); border-radius: var(--nc-radius-sm); background: rgb(255 255 255 / 8%); }
.public-page .municipality-quick-meta { display: flex; flex-wrap: wrap; gap: .7rem; }
.public-page .history-trigger-hero-btn,
.public-page .contact-jump-btn { min-height: 44px; display: inline-flex; align-items: center; gap: .5rem; padding: .65rem .85rem; border: 1px solid rgb(255 255 255 / 35%); border-radius: var(--nc-radius-sm); background: #fff; color: var(--nc-ink-950); font-weight: 800; text-decoration: none; cursor: pointer; }
.public-page .municipality-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(17rem,.32fr); gap: 1.5rem; }
.public-page .municipality-main-content { display: grid; gap: 2rem; }
.public-page .municipality-intro-card,
.public-page .municipality-contact-card { padding: 1.25rem; border: 1px solid var(--nc-border); border-radius: var(--nc-radius-md); background: #fff; box-shadow: var(--nc-shadow-sm); }
.public-page .municipality-intro-card h2,
.public-page .municipality-contact-card h3 { margin-top: 0; font-family: var(--nc-font-editorial); }
.public-page .municipality-contact-card { position: sticky; top: 5.5rem; }
.public-page .municipality-contact-card ul { display: grid; gap: .8rem; padding: 0; list-style: none; }
.public-page .municipality-contact-card li { display: flex; gap: .65rem; }
.public-page .municipality-contact-card li strong,
.public-page .municipality-contact-card li span { display: block; }
.public-page .municipality-contact-card li span { color: var(--nc-text-muted); }
.public-page .history-modal-overlay { position: fixed; z-index: 1500; inset: 0; display: grid; place-items: center; padding: 1rem; }
.public-page .history-modal-backdrop { position: absolute; inset: 0; border: 0; background: rgb(6 26 50 / 75%); }
.public-page .history-modal-card { position: relative; width: min(56rem,100%); max-height: calc(100vh - 2rem); overflow-y: auto; border-radius: var(--nc-radius-lg); background: #fff; box-shadow: var(--nc-shadow-lg); }
.public-page .history-modal-close { position: sticky; z-index: 2; top: .7rem; float: right; width: 44px; height: 44px; margin: .7rem .7rem -3.5rem 0; border: 1px solid var(--nc-border); border-radius: 50%; background: #fff; cursor: pointer; }
.public-page .history-modal-header,
.public-page .history-modal-body,
.public-page .history-modal-footer { padding: 1.5rem; }
.public-page .history-modal-header { padding-right: 4rem; border-bottom: 1px solid var(--nc-border); }
.public-page .history-modal-header h2 { margin: .35rem 0; font-family: var(--nc-font-editorial); font-size: clamp(2rem,5vw,3rem); }
.public-page .history-prose { max-width: var(--nc-reading); font-family: var(--nc-font-editorial); font-size: 1.1rem; line-height: 1.75; }
.public-page .history-photos { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; }
.public-page .history-photo-card { margin: 0; overflow: hidden; border: 1px solid var(--nc-border); border-radius: var(--nc-radius-md); }
.public-page .history-photo-card img { width: 100%; aspect-ratio: 16/10; object-fit: cover; }
.public-page .history-photo-card figcaption { padding: .65rem; color: var(--nc-text-muted); font-size: .78rem; }
.public-page .history-modal-footer { border-top: 1px solid var(--nc-border); }
.public-page .history-modal-close-btn { min-height: 44px; padding: .65rem 1rem; border: 0; border-radius: var(--nc-radius-sm); background: var(--nc-ink-950); color: #fff; font-weight: 800; cursor: pointer; }

/* Footer */
.public-page .site-footer { padding-top: clamp(3rem,6vw,5rem); background: #041528; color: #c5d5e6; }
.public-page .footer-grid { display: grid; grid-template-columns: minmax(15rem,1.5fr) repeat(3,minmax(10rem,1fr)); gap: clamp(1.5rem,4vw,4rem); }
.public-page .footer-grid h2 { margin: 0 0 .7rem; color: #fff; font-size: .8rem; letter-spacing: .09em; text-transform: uppercase; }
.public-page .footer-grid > div > a:not(.footer-brand-lockup) { display: block; width: fit-content; margin-block: .45rem; color: #dce7f2; text-decoration: none; }
.public-page .footer-grid > div > a:hover { color: #fff; text-decoration: underline; }
.public-page .footer-bottom { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: center; gap: 1rem; margin-top: 3rem; padding-block: 1.25rem; border-top: 1px solid rgb(255 255 255 / 12%); color: #8ea6bd; font-size: .78rem; }
.public-page .footer-bottom > span:first-child { grid-column: 1; justify-self: start; }
.public-page .footer-developer-credit { display: inline-flex; grid-column: 2; align-items: center; justify-self: center; gap: 6px; color: #94a3b8; font-size: .78rem; letter-spacing: 0; white-space: nowrap; }
.public-page .footer-developer-credit b { color: #e2e8f0; font-weight: 700; }
.public-page .footer-developer-credit .developer-brand { color: #7dd3fc; font-weight: 750; letter-spacing: 0; text-decoration: none; }
.public-page .footer-developer-credit .developer-brand:hover,
.public-page .footer-developer-credit .developer-brand:focus-visible { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 680px) {
  .public-page .footer-bottom { grid-template-columns: 1fr; justify-items: center; gap: .6rem; text-align: center; }
  .public-page .footer-bottom > span:first-child,
  .public-page .footer-developer-credit { grid-column: 1; justify-self: center; }
  .public-page .footer-developer-credit { flex-wrap: wrap; justify-content: center; white-space: normal; }
}
.public-page .whatsapp-float { position: fixed; z-index: 800; right: 1rem; bottom: 1rem; min-height: 48px; display: flex; align-items: center; gap: .5rem; padding: .55rem .8rem; border-radius: var(--nc-radius-pill); background: #087a52; color: #fff; box-shadow: var(--nc-shadow-md); font-size: .78rem; text-decoration: none; }

/* Cuenta de lector, mensajes y páginas informativas */
.public-page .form-feedback { margin: 1rem 0; padding: .85rem 1rem; border: 1px solid var(--nc-border); border-radius: var(--nc-radius-sm); background: var(--nc-surface-muted); color: var(--nc-text); }
.public-page .form-feedback-error { border-color: #efbdc4; background: #fff1f3; color: var(--nc-danger-700); }
.public-page .form-feedback-success { border-color: #a8d9c4; background: #edfaf4; color: var(--nc-success-700); }
.public-page .form-feedback-warning { border-color: #e8c98d; background: #fff8e8; color: var(--nc-warning-700); }
.public-page .form-feedback-info { border-color: #b7d4ef; background: #eef7ff; color: var(--nc-ink-800); }
.public-page .is-loading { cursor: wait; }
.public-page button.is-loading::before { display: inline-block; }
.public-page .auth-password-help.is-valid { color: var(--nc-success-700); }
.public-page .auth-password-help.is-error { color: var(--nc-danger-700); }
.public-page .auth-card .form-feedback,.public-page .first-access-modal .form-feedback,.public-page .register-workspace>.form-feedback{max-width:820px;margin:0 auto 18px}.public-page .auth-card form[aria-busy="true"],.public-page .first-access-form[aria-busy="true"]{opacity:.88}.public-page .password-field{position:relative}.public-page .password-field .password-toggle{position:absolute;right:7px;bottom:7px;min-height:36px;padding:5px 9px;border:1px solid var(--nc-border-strong);border-radius:6px;background:#fff;color:var(--nc-ink-800);font-size:10px;font-weight:800}.public-page .password-field input{padding-right:76px!important}.public-page .auth-password-help{font-size:11px;line-height:1.5}.public-page .contract-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.public-page .contract-summary div{display:grid;gap:3px}.public-page .contract-summary dt{font-size:9px;font-weight:900;text-transform:uppercase}.public-page .contract-summary dd{margin:0}.public-page .contract-acceptance{display:grid;gap:13px}.public-page .contract-acceptance>input{width:100%;min-height:46px;padding:11px;border:1px solid var(--nc-border-strong);border-radius:7px}.public-page .role-card-grid input:focus-visible+span{outline:3px solid var(--nc-focus);outline-offset:3px}.public-page .role-card-grid input:disabled+span{cursor:not-allowed;opacity:.5}.public-page :is(.reader-profile-message,.journalist-profile-fields,.club-profile-fields,.municipality-profile-fields) h3{font:800 24px var(--nc-font-editorial);margin:8px 0}

.public-page .account-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.public-page .account-heading h1 { margin: .25rem 0; font: 800 clamp(2.4rem, 6vw, 4.5rem)/1 var(--nc-font-editorial); }
.public-page .account-heading p { margin: 0; color: var(--nc-text-muted); }
.public-page .account-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(17rem, .7fr); gap: 1.25rem; align-items: start; }
.public-page .account-card { padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid var(--nc-border); border-radius: var(--nc-radius-lg); background: var(--nc-surface); box-shadow: var(--nc-shadow-sm); }
.public-page .account-card h2 { margin-top: 0; font-family: var(--nc-font-editorial); }
.public-page .account-card form { display: grid; gap: .65rem; }
.public-page .account-card label { font-weight: 750; }
.public-page .account-card :is(input,select,textarea) { width: 100%; min-height: 46px; padding: .65rem .75rem; border: 1px solid var(--nc-border-strong); border-radius: var(--nc-radius-sm); background: var(--nc-surface); color: var(--nc-text); }
.public-page .account-card input[readonly] { background: var(--nc-surface-muted); color: var(--nc-text-muted); }
.public-page .account-card small { color: var(--nc-text-muted); }
.public-page .account-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.public-page .account-form-grid > div { display: grid; gap: .4rem; }
.public-page .account-privacy-note { padding: .75rem; border-left: 3px solid var(--nc-brand-600); background: var(--nc-brand-100); color: var(--nc-ink-800); }
.public-page .account-summary { position: sticky; top: 5.5rem; }
.public-page .account-summary dl { margin: 0 0 1rem; }
.public-page .account-summary dl div { display: flex; justify-content: space-between; gap: 1rem; padding-block: .7rem; border-bottom: 1px solid var(--nc-border); }
.public-page .account-summary dt { color: var(--nc-text-muted); }
.public-page .account-summary dd { margin: 0; font-weight: 800; text-align: end; }

.public-page .legal-index { display: flex; flex-wrap: wrap; gap: .55rem; margin-bottom: 2rem; }
.public-page .legal-index a { padding: .5rem .75rem; border: 1px solid var(--nc-border); border-radius: var(--nc-radius-pill); background: var(--nc-surface); text-decoration: none; }
.public-page .legal-page > section { max-width: var(--nc-reading); margin: 0 auto 2.5rem; scroll-margin-top: 7rem; }
.public-page .legal-page h2 { font: 800 clamp(1.7rem, 4vw, 2.35rem)/1.15 var(--nc-font-editorial); }
.public-page .legal-page p { color: var(--nc-text-muted); }
.public-page .contact-option-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.public-page .contact-option-grid article { display: flex; flex-direction: column; }
.public-page .contact-option-grid p { flex: 1; color: var(--nc-text-muted); }

.public-page :is(.dynamic-news-card > a img,.journalist-profile-portrait img,.writer-note-image img,.actualidad-thumb img,.publication-cover > img,.gallery-item-card img) { height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.public-page :is(.journalist-profile-portrait img,.writer-profile-photo img) { aspect-ratio: 1; }

@media (max-width: 72rem) {
  .public-page .portal-nav-logo { margin-right: auto; }
  .public-page .premium-layout { grid-template-columns: minmax(0,1fr); }
  .public-page .premium-sidebar { order: 2; }
  .public-page .premium-main-content { order: 1; }
  .public-page .premium-ads-sticky { position: static; max-height: none; overflow: visible; }
  .public-page .premium-ads-scrollable { display: grid; grid-template-columns: repeat(auto-fit,minmax(13rem,1fr)); }
  .public-page .premium-ad-img { aspect-ratio: 16/9; }
  .public-page .footer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 56rem) {
  .public-page .hero-grid { grid-template-columns: 1fr; }
  .public-page .lead-story-card { min-height: 30rem; }
  .public-page .actualidad-grid,
  .public-page .dynamic-news-grid,
  .public-page .journalist-publication-grid,
  .public-page .municipalities-catalog-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .public-page .related-news-grid { grid-template-columns: 1fr; }
  .public-page .ultimas-dual-layout,
  .public-page .municipality-layout { grid-template-columns: 1fr; }
  .public-page .municipality-contact-card { position: static; }
  .public-page .newsletter-inner { grid-template-columns: 1fr; }
  .public-page .search-filter-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .public-page .account-grid { grid-template-columns: 1fr; }
  .public-page .account-summary { position: static; }
  .public-page .contact-option-grid { grid-template-columns: 1fr; }
}

@media (max-width: 42rem) {
  .public-page .topline-place,
  .public-page .topline-action-btn:nth-of-type(n+2),
  .public-page .topline-sep { display: none; }
  .public-page .header-panorama { min-height: 20rem; }
  .public-page .panorama-arrow { display: none; }
  .public-page .hero-brand-lockup { width: 74vw; }
  .public-page .breaking-inner { grid-template-columns: auto minmax(0,1fr); }
  .public-page .breaking-inner a { display: none; }
  .public-page .portal-journalists { display: none; }
  .public-page .portal-nav-logo { flex-basis: 7rem; }
  .public-page .commercial-logo-heading small { display: none; }
  .public-page .commercial-carousel { grid-template-columns: 1fr; }
  .public-page .commercial-carousel-control { display: none; }
  .public-page .actualidad-grid,
  .public-page .dynamic-news-grid,
  .public-page .journalist-publication-grid,
  .public-page .municipalities-catalog-grid,
  .public-page .sorteos-portada-grid,
  .public-page .club-updates-grid { grid-template-columns: 1fr; }
  .public-page .lead-story-card { min-height: 28rem; }
  .public-page .lead-copy > p { display: none; }
  .public-page .lead-copy h1 { font-size: clamp(2rem,10vw,3rem); }
  .public-page .ultimas-item { grid-template-columns: 1.6rem minmax(0,1fr); }
  .public-page .ultimas-item-img { display: none; }
  .public-page .article-author-card { grid-template-columns: auto 1fr; }
  .public-page .article-tts-widget { grid-column: 1/-1; }
  .public-page .btn-tts-listen { width: 100%; }
  .public-page .article-main-title { font-size: clamp(2.1rem,11vw,3.5rem); }
  .public-page .article-share-bar { align-items: flex-start; flex-direction: column; }
  .public-page .featured-img-caption { flex-direction: column; }
  .public-page .page-search > div,
  .public-page .search-filter-form .search-primary-field > div,
  .public-page .search-filter-grid,
  .public-page .newsletter form > div,
  .public-page .access-gate-newsletter form { grid-template-columns: 1fr; }
  .public-page .municipality-brand-badge { align-items: flex-start; }
  .public-page .municipality-coat,
  .public-page .municipality-coat-icon { width: 60px; height: 60px; flex: 0 0 60px; }
  .public-page .history-photos { grid-template-columns: 1fr; }
  .public-page .footer-grid { grid-template-columns: 1fr; }
  .public-page .footer-bottom { grid-template-columns: 1fr; }
  .public-page .whatsapp-float b { display: none; }
  .public-page .account-heading { align-items: flex-start; flex-direction: column; }
  .public-page .account-form-grid { grid-template-columns: 1fr; }
  .public-page .contract-summary { grid-template-columns: 1fr; }
}
