/* Fuente base y reset ligero */

* { box-sizing: border-box; }
html { font-size: 16px; }
body {
	margin: 0;
	font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, Arial, sans-serif;
	line-height: 1.55;
	color: #1A1F29;
	background: #F5F7FA;
	-webkit-font-smoothing: antialiased;
}

:root {
	--color-primary: #0057B8; /* azul noticia */
	--color-secondary: #FFB400; /* acento cálido */
	--color-accent: #E0483E; /* alerta/destacado */
	--brand-purple: #5B3DF4;
	--brand-orange: #FF7A18;
	--color-dark: #1A1F29;
	--color-soft: #F5F7FA;
	--radius-sm: 4px;
	--radius-md: 10px;
	--shadow-sm: 0 2px 4px rgba(0,0,0,.06);
	--shadow-md: 0 4px 16px rgba(0,0,0,.08);
	--grad-header: linear-gradient(135deg,#0a2540,#003b79 55%,#0057B8);
	--max-width: 1240px;
}

a { color: var(--color-primary); text-decoration: none; }
a:hover { text-decoration: underline; }

img { max-width: 100%; display: block; height: auto; }

/* Accesibilidad visualmente oculto */
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); border: 0; }

/* Header */
.site-header {
	background: var(--grad-header);
	color: #fff;
	padding: 1.1rem 1.5rem 1.4rem;
	position: sticky;
	top: 0;
	z-index: 100;
	box-shadow: 0 3px 8px rgba(0,0,0,.18);
	transition: transform .3s ease, box-shadow .2s ease, padding .25s ease;
}
.site-header.header-hidden { transform: translateY(-100%); box-shadow: none; }
.site-header.header-compact { padding: .6rem 1.25rem .8rem; }
.site-header.header-compact .site-title { font-size: 1.2rem; }
.site-title { font-size: 1.35rem; line-height: 1.15; margin: 0 0 .25rem; font-weight: 600; letter-spacing: .5px; }
.brand-badge { display:inline-block; font-weight:700; font-size:.82rem; letter-spacing:.8px; text-transform:uppercase; background:linear-gradient(135deg,var(--brand-purple),#4020c9 55%); color:#fff; padding:.4rem .75rem .45rem; border-radius:6px; margin:0 0 .55rem; box-shadow:0 4px 10px -3px rgba(0,0,0,.35), 0 0 0 1px rgba(255,255,255,.15) inset; position:relative; }
.brand-badge .accent { color: var(--brand-orange); text-shadow:0 0 4px rgba(255,122,24,.5); }
.tagline { margin: 0; font-size: .85rem; opacity: .85; }
.logo-wrap { max-width: 760px; }

.main-nav { position: relative; }
/* Desktop: menú siempre visible, sin hamburguesa */
.main-nav ul {
	list-style: none; margin: .75rem 0 0; padding: 0;
	display: flex; flex-wrap: wrap; gap: .85rem 1.25rem;
}
.main-nav a { color: #fff; font-weight: 500; font-size: .85rem; letter-spacing: .5px; text-transform: uppercase; }
.main-nav a:hover { color: var(--color-secondary); }

/* Botón hamburguesa: oculto en desktop */
.nav-toggle { display:none; position:absolute; right:0; top:0; transform: translateY(-10%); background: transparent; border: none; cursor:pointer; padding:.5rem; }
.nav-toggle:focus-visible { outline: 2px solid var(--color-secondary); outline-offset: 2px; border-radius:6px; }
.nav-toggle .bar { display:block; width:26px; height:3px; background:#fff; margin:5px 0; border-radius:2px; box-shadow:0 1px 0 rgba(0,0,0,.2); }

/* Móvil: menú desplegable con hamburguesa */
@media (max-width: 780px){
	.nav-toggle { display:block; }
	.main-nav ul { 
		position: absolute; left: -1.25rem; right: -1.25rem; top: 2.6rem; 
		background: rgba(10,37,64,.98);
		backdrop-filter: blur(4px);
		padding: .75rem 1rem 1rem; margin: 0;
		display: grid; gap: .4rem; grid-auto-rows: min-content;
		max-height: 0; overflow: hidden; transition: max-height .3s ease, opacity .2s ease; 
		box-shadow: 0 10px 20px -6px rgba(0,0,0,.35);
		border-radius: 8px;
		opacity: 0; pointer-events: none;
	}
	.main-nav ul.open { max-height: 60vh; opacity: 1; pointer-events: auto; }
	.main-nav a { font-size:.9rem; padding:.5rem .25rem; display:block; }
}

/* Layout */
.layout {
	display: grid;
	grid-template-columns: minmax(0,1fr) 320px;
	gap: 2.25rem;
	max-width: var(--max-width);
	margin: 1.5rem auto 2.5rem;
	padding: 0 1.25rem;
	align-items: start;
}

@media (max-width: 980px){
	.layout { grid-template-columns: 1fr; }
	.sidebar { order: 2; }
}

/* Mejoras móviles generales */
@media (max-width: 780px){
	.site-title { font-size: 1.1rem; }
	.tagline { font-size: .8rem; }
	.hero { gap: 1rem; }
	article.principal h2 { font-size: 1.5rem; }
	p, .bullets li { font-size: .95rem; }
	.ad-top { height: 60px; }
	.ad-side, .ad-square { height: 180px; }
}

/* Anclas con offset para header sticky */
section[id] { scroll-margin-top: 96px; }
@media (max-width:780px){ section[id] { scroll-margin-top: 108px; } }

/* Eliminado FAB: ya no se usa botón flotante */

article.principal section { margin-bottom: 2.75rem; }
article.principal h2 { margin: 0 0 1rem; font-size: 1.85rem; line-height: 1.2; position: relative; }
article.principal h2:after { content:""; position:absolute; left:0; bottom:-6px; width:54px; height:4px; background: var(--color-secondary); border-radius: 2px; }
p { margin: 0 0 1.15rem; }
.mini-note { margin:-.4rem 0 1.25rem; font-size:.72rem; line-height:1.35; background:#fff; padding:.55rem .75rem .65rem; border-left:4px solid var(--brand-purple); border-radius:4px; box-shadow:0 1px 3px rgba(0,0,0,.05); color:#2c3340; }
.mini-note em { font-style:normal; color: var(--color-primary); font-weight:600; }

/* Hero */
.hero { display: grid; gap: 1.8rem; grid-template-columns: 420px 1fr; align-items: start; }
.hero-media { margin: 0; background:#fff; border-radius: var(--radius-md); overflow: hidden; box-shadow: var(--shadow-md); }
.hero-media img { aspect-ratio: 4 / 5; object-fit: cover; }
.hero-media figcaption { font-size: .7rem; letter-spacing: .5px; padding: .4rem .65rem; background: #fff; color: #555; }
.hero-text { background: #fff; padding: 1.25rem 1.5rem 1.4rem; border-radius: var(--radius-md); box-shadow: var(--shadow-md); }
.hero-text p { font-size: 1.05rem; }

@media (max-width: 1020px){
	.hero { grid-template-columns: 360px 1fr; }
}
@media (max-width: 880px){
	.hero { grid-template-columns: 320px 1fr; }
}
@media (max-width: 760px){
	.hero { grid-template-columns: 1fr; }
	.hero-media img { aspect-ratio: 16 / 9; }
}

/* Lists */
.bullets { list-style: none; padding: 0; margin: 0; display: grid; gap: .65rem; }
.bullets li { position: relative; padding-left: 1.15rem; font-size: .97rem; }
.bullets li:before { content:""; position:absolute; left:0; top: .55em; width: .55rem; height: .55rem; background: var(--color-primary); border-radius: 2px; box-shadow: 0 0 0 2px var(--color-soft); }
.bullets.small li { font-size: .8rem; }

.steps { counter-reset: paso; list-style: none; margin: 0; padding: 0; display: grid; gap: .85rem; }
.steps li { background:#fff; padding: .9rem 1rem .95rem 3.2rem; border-radius: var(--radius-sm); position: relative; box-shadow: var(--shadow-sm); font-size: .92rem; }
.steps li:before { counter-increment: paso; content: counter(paso); position: absolute; left: .9rem; top: 50%; transform: translateY(-50%); width: 1.85rem; height: 1.85rem; background: var(--color-primary); color:#fff; font-weight:600; display:flex; align-items:center; justify-content:center; border-radius: 50%; font-size:.85rem; }

/* Cards */
.info-cards { display: grid; gap: 1.1rem; grid-template-columns: repeat(auto-fit,minmax(180px,1fr)); margin-top: 1.25rem; }
.card { background:#fff; border-radius: var(--radius-md); padding: 1rem 1.05rem 1.15rem; box-shadow: var(--shadow-sm); position: relative; overflow: hidden; }
.card:before { content:""; position:absolute; inset:0; background:linear-gradient(135deg,rgba(0,87,184,.08),rgba(255,180,0,.08)); mix-blend-mode: multiply; opacity:.75; pointer-events:none; }
.card h3 { margin:.2rem 0 .65rem; font-size:1rem; letter-spacing:.5px; text-transform:uppercase; color: var(--color-dark); }
.card ul { list-style:none; margin:0; padding:0; display:grid; gap:.35rem; font-size:.8rem; }
.card p { margin:0; font-size:.85rem; }

/* Sidebar */
.sidebar { display: flex; flex-direction: column; gap: 2rem; }
.mini-panel { background:#fff; border-radius: var(--radius-md); padding: 1rem 1rem 1.1rem; box-shadow: var(--shadow-sm); }
.mini-panel h3 { margin:0 0 .65rem; font-size:.9rem; letter-spacing:.5px; text-transform:uppercase; }

.palette { list-style:none; margin:0; padding:0; display:grid; gap:.5rem; font-size:.7rem; letter-spacing:.5px; }
.palette li { display:flex; align-items:center; gap:.5rem; font-weight:500; }
.swatch { width: 1.6rem; height:1.6rem; border-radius:4px; box-shadow:0 0 0 1px rgba(0,0,0,.12); display:inline-block; }
.bg-prim { background: var(--color-primary); }
.bg-sec { background: var(--color-secondary); }
.bg-dark { background: var(--color-dark); }
.bg-soft { background: var(--color-soft); }
.bg-accent { background: var(--color-accent); }

/* Ads placeholders */
.ad { background: repeating-linear-gradient(45deg,#e4e8ef,#e4e8ef 10px,#f0f3f8 10px,#f0f3f8 20px); color:#505965; font-size:.7rem; font-weight:600; display:flex; align-items:center; justify-content:center; text-transform:uppercase; letter-spacing:.5px; border:1px dashed #b8c1cc; border-radius: var(--radius-sm); position:relative; overflow:hidden; }
.ad:empty { min-height:40px; }
.ad:after { content:"PUBLICIDAD"; position:absolute; top:4px; right:6px; font-size:.55rem; color:#6a7480; letter-spacing:1px; }
.ad-top { height: 90px; margin: 0 auto; max-width: var(--max-width); width: min(100%, 1000px); border-radius:0 0 var(--radius-sm) var(--radius-sm); }
.ad-side { width:100%; height:600px; }
.ad-square { width:100%; height:250px; }

/* Newsletter CTA */
.cta-newsletter { background: linear-gradient(135deg,#0057B8,#003b79); color:#fff; padding: 2rem 1.75rem 2.2rem; border-radius: var(--radius-md); box-shadow: var(--shadow-md); position: relative; overflow:hidden; }
.cta-newsletter:before { content:""; position:absolute; width:420px; height:420px; background: radial-gradient(circle at center, rgba(255,180,0,.55), transparent 70%); top:-180px; right:-120px; mix-blend-mode: screen; opacity:.5; pointer-events:none; }
.cta-newsletter h2 { margin:0 0 .8rem; font-size:1.55rem; }
.cta-newsletter p { margin:0 0 1.15rem; }
.newsletter { display:flex; gap:.75rem; flex-wrap:wrap; }
.newsletter input { flex:1 1 240px; border: none; padding:.85rem 1rem; border-radius: var(--radius-sm); font-size:.9rem; font-family:inherit; outline:2px solid transparent; }
.newsletter input:focus { outline-color: var(--color-secondary); background:#fff; }
.newsletter button { background: var(--color-secondary); color:#1A1F29; border:none; font-weight:600; letter-spacing:.5px; padding:.85rem 1.2rem; border-radius: var(--radius-sm); cursor:pointer; font-size:.85rem; transition: background .25s, transform .25s; }
.newsletter button:hover { background:#ffc640; }
.newsletter button:active { transform: translateY(2px); }

/* Footer */
.site-footer { background:#1A1F29; color:#d4dae2; padding:1.4rem 1rem 2.2rem; text-align:center; font-size:.75rem; }
.site-footer a { color: var(--color-secondary); }

/* Conflictos */
.conflicts-grid { display:grid; gap:2rem; grid-template-columns: repeat(auto-fit,minmax(340px,1fr)); margin-top:1.25rem; }
.conflict-card { background:#fff; padding:1.15rem 1.15rem 1.35rem; border-radius: var(--radius-md); box-shadow: var(--shadow-sm); display:flex; flex-direction:column; gap:.85rem; position:relative; }
.conflict-card h3 { margin:.15rem 0 .25rem; font-size:1.05rem; line-height:1.2; letter-spacing:.3px; }
.mini-media { aspect-ratio:16 / 9; border-radius:12px; overflow:hidden; position:relative; background:linear-gradient(135deg,#233244,#0a2540); display:flex; align-items:center; justify-content:center; }
.img-placeholder { color:#fff; font-size:.8rem; font-weight:600; letter-spacing:1px; opacity:.9; text-transform:uppercase; }
.facts { list-style:none; margin:0; padding:0; display:grid; gap:.4rem; font-size:.75rem; }
.facts li { background:#f1f4f8; padding:.45rem .6rem; border-radius:4px; line-height:1.25; }
details { font-size:.72rem; background:#f7f9fc; border:1px solid #e2e8f0; padding:.7rem .85rem .85rem; border-radius:6px; }
details summary { cursor:pointer; font-weight:600; color: var(--color-primary); outline:none; }
details[open] { background:#fff; box-shadow: var(--shadow-sm); }
details p { margin:.7rem 0 0; font-size:.72rem; }
.nota-neutral { font-size:.65rem; opacity:.8; margin-top:1.5rem; }

/* Galería de referencias */
.gallery-grid { display:grid; gap:2rem; grid-template-columns: repeat(auto-fit,minmax(340px,1fr)); margin-top:1.6rem; }
@media (max-width: 780px){
	.gallery-grid { grid-template-columns: repeat(auto-fit,minmax(280px,1fr)); gap:1.4rem; }
}
.ref-card { background:#fff; border-radius: var(--radius-md); overflow:hidden; box-shadow: var(--shadow-sm); display:flex; flex-direction:column; }
.ref-card .img-frame { display:block; position:relative; background:#101820; aspect-ratio: 5 / 3; overflow:hidden; }
.ref-card img { width:100%; height:100%; object-fit:cover; transition: transform .6s cubic-bezier(.4,.0,.2,1); cursor: zoom-in; }
.ref-card:hover img { transform: scale(1.08); }
.ref-card figcaption { padding:.8rem .9rem 1rem; display:flex; flex-direction:column; gap:.35rem; }
.ref-card h3 { margin:0; font-size:.95rem; letter-spacing:.3px; }
.ref-card .mini { margin:0; font-size:.7rem; line-height:1.35; opacity:.85; }
.mini-list { list-style:none; margin:.2rem 0 0; padding:0; display:grid; gap:.3rem; font-size:.62rem; letter-spacing:.4px; }
.mini-list li { background:#f3f6fa; padding:.35rem .5rem; border-radius:4px; line-height:1.2; }
.sub-sep { border:0; height:1px; background:linear-gradient(to right,rgba(0,87,184,.15),rgba(0,87,184,.5),rgba(0,87,184,.15)); margin:2.5rem 0 1.5rem; }
.subheading { font-size:1.2rem; margin:0 0 .6rem; letter-spacing:.5px; }

/* Lightbox */
.lightbox-backdrop { position:fixed; inset:0; background:rgba(10,18,28,.78); backdrop-filter: blur(6px); display:flex; align-items:center; justify-content:center; padding:2rem 1.2rem; z-index:999; animation: lbEnter .35s ease; }
.lightbox { max-width: min(1080px,92vw); max-height:85vh; position:relative; display:flex; flex-direction:column; gap:.6rem; }
.lightbox img { width:100%; height:auto; border-radius:12px; box-shadow:0 10px 40px -10px rgba(0,0,0,.6); }
.lightbox .caption { font-size:.75rem; color:#f0f3f8; letter-spacing:.5px; text-align:center; }
.lightbox button { position:absolute; top:-12px; right:-12px; background: var(--color-secondary); border:none; width:38px; height:38px; border-radius:50%; font-weight:600; cursor:pointer; box-shadow:0 4px 16px -4px rgba(0,0,0,.4); display:flex; align-items:center; justify-content:center; font-size:1rem; }
.lightbox button:hover { background:#ffc640; }
.lightbox button:active { transform: translateY(2px); }
@keyframes lbEnter { from { opacity:0; transform: scale(.94);} to { opacity:1; transform: scale(1);} }
@media (max-width:640px){ .lightbox { max-height:75vh; } }

/* Code tag styling */
code { background:#e3e9f2; padding:.15rem .4rem; border-radius:4px; font-size:.75rem; font-family: 'SFMono-Regular', Menlo, Consolas, 'Courier New', monospace; }

/* Smooth scroll */
html { scroll-behavior: smooth; }

/* Selection */
::selection { background: var(--color-secondary); color:#1A1F29; }

/* Reduce motion preference */
@media (prefers-reduced-motion: reduce){
	* { animation: none !important; transition: none !important; }
	html { scroll-behavior: auto; }
}
