:root{--red:#bd392b;--ink:#20231e;--paper:#faf9f6;--line:#deded6;--muted:#696b63}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 Arial,sans-serif}a{color:inherit;text-decoration:none}a:hover{color:var(--red)}button,input,select,textarea{font:inherit}button,.button{cursor:pointer;background:var(--red);color:white;border:0;padding:10px 18px;border-radius:3px;display:inline-block}button:hover,.button:hover{background:#92271d;color:white}button.secondary{background:#e8e6de;color:var(--ink)}.top{background:var(--ink);color:white;display:flex;justify-content:space-between;padding:8px max(5vw,20px);font-size:10px;letter-spacing:1.7px}header{max-width:1280px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:26px 24px}.brand{font-weight:900;font-size:48px;letter-spacing:-3px;line-height:1}.brand span{color:var(--red)}.brand i{font-size:18px;color:var(--red);vertical-align:top;padding:5px}.header-actions{display:flex;gap:24px;align-items:center;font-size:13px;font-weight:700}nav{border-block:1px solid var(--line);display:flex;justify-content:center;gap:24px;padding:14px 20px;overflow:auto;white-space:nowrap;font-size:13px;font-weight:700}nav a.active{color:var(--red)}main{max-width:1240px;margin:0 auto;padding:28px 24px 65px}.ad{border:1px dashed #c6c4ba;background:#efeee8;color:#858579;text-align:center;display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:90px;font-size:11px;letter-spacing:2px;margin:0 0 28px}.ad small{font-size:10px;letter-spacing:0;margin-top:7px}.eyebrow{color:var(--red);font-size:11px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase}.intro{display:flex;justify-content:space-between;align-items:end;border-bottom:3px solid var(--ink);margin:25px 0}.intro h1{font:700 34px/1.1 Georgia,serif;margin:10px 0 18px}.intro p{font-size:13px;color:var(--muted)}.layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:35px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.card{border-bottom:1px solid var(--line);padding-bottom:24px}.card:first-child{grid-column:1/-1}.card h2{font:700 26px/1.15 Georgia,serif;margin:12px 0}.card:first-child h2{font-size:42px}.card p{color:var(--muted);font-size:15px}.art{height:180px;background:#e5d5bd;position:relative;overflow:hidden}.card:first-child .art{height:280px}.art svg{width:100%;height:100%}.photo{width:100%;height:220px;object-fit:cover}.meta{font-size:11px;color:var(--muted);margin-top:16px}.pill{display:inline-block;padding:3px 7px;background:#f0dfbb;font-size:10px;margin-left:8px;color:#685226}.side-box{padding:22px;background:#ebece3;margin-bottom:24px}.side-box h3{font:700 24px Georgia,serif;margin:6px 0 15px}.city-links{display:grid;gap:12px}.city-links a{border-bottom:1px solid #ced0c5;padding-bottom:8px}.side-box p{font-size:13px}.filters{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}input,select,textarea{padding:12px;border:1px solid #cccac1;background:white;width:100%;border-radius:3px;color:var(--ink)}textarea{min-height:150px;resize:vertical}input[type=file]{padding:8px}label{display:block;font-size:13px;font-weight:700;margin:16px 0 6px}.form{max-width:720px;background:#fff;border:1px solid var(--line);padding:30px;margin:auto}.form h1{font:700 32px Georgia,serif;margin-top:0}.form button{margin-top:20px}.pair{display:grid;grid-template-columns:1fr 1fr;gap:20px}.empty{padding:40px;border:1px solid var(--line);background:white}.article{max-width:850px;margin:auto}.article h1{font:700 48px/1.1 Georgia,serif}.article .lead{font-size:22px;color:var(--muted)}.article .body{white-space:pre-wrap;font:20px/1.8 Georgia,serif}.article .photo{height:auto;max-height:600px}.stars{display:flex;gap:7px}.stars button{padding:8px 12px}.review{background:white;border:1px solid var(--line);padding:25px;margin-bottom:20px}.review .body{white-space:pre-wrap}.status{font-size:12px;font-weight:700;color:var(--red)}.map-layout{display:grid;grid-template-columns:1fr 1fr;gap:40px}.map{background:#eaece2;position:relative;padding:20px}.map svg{width:100%;height:520px}.map button{background:var(--paper);color:var(--ink);border:1px solid var(--line);margin:5px}.profile-photo{width:110px;height:110px;border-radius:50%;object-fit:cover}footer{background:#eeeee7;border-top:1px solid var(--line);padding:40px 5vw;font-size:13px}footer .brand{font-size:32px}#notice{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;max-width:90%;padding:14px 25px;border-radius:5px;display:none;z-index:9}.error{color:#a4251d;font-weight:700}.note{font-size:13px;color:var(--muted)}.contact-list{white-space:pre-wrap}.actionbar{display:flex;gap:10px;margin:18px 0;flex-wrap:wrap}:focus-visible{outline:3px solid #ed9c3b;outline-offset:3px}@media(max-width:850px){.layout{grid-template-columns:1fr}.aside{display:grid;grid-template-columns:1fr 1fr;gap:20px}.map-layout{grid-template-columns:1fr}nav{justify-content:flex-start;gap:20px}.brand{font-size:38px}.header-actions{gap:12px}.header-actions>a:first-child{display:none}.card:first-child h2{font-size:34px}.article h1{font-size:36px}}@media(max-width:540px){main{padding:20px 16px}.grid,.pair,.aside{grid-template-columns:1fr}.card:first-child{grid-column:auto}.card h2,.card:first-child h2{font-size:28px}.card:first-child .art{height:220px}.intro{display:block}.header-actions{font-size:12px}header{padding:24px 16px}.brand{font-size:34px}.top span:last-child{display:none}.form{padding:20px}.article h1{font-size:32px}}

button:disabled{opacity:.55;cursor:wait}.success{color:#245b30;font-weight:700}[data-feedback]{padding:10px 0}.meta a{text-decoration:underline;font-weight:700}

.wall{max-width:900px;margin:auto}.wall-header{display:block;padding:0;background:white;border:1px solid var(--line)}.wall-cover{height:120px;background:linear-gradient(110deg,#20231e,#795d48)}.wall-identity{display:flex;align-items:center;gap:24px;padding:24px}.wall-identity h1{font:700 34px Georgia,serif;margin:5px 0}.wall-identity p{white-space:pre-wrap}.profile-placeholder{width:110px;height:110px;border-radius:50%;background:#eee3d4;display:grid;place-items:center;font-size:48px;font-weight:bold;flex-shrink:0}.wall-identity .profile-photo{flex-shrink:0}.author-rating{padding:0 24px 20px;display:grid;gap:5px}.wall-feed{padding-top:24px}.wall-entry{background:white;border:1px solid var(--line);margin:20px 0;padding:24px}.wall-entry .card{border:0;padding:0}.wall-entry .card h2{font-size:28px}.wall-entry .art{height:200px}@media(max-width:540px){.wall-identity{align-items:flex-start;flex-direction:column;padding:20px}.wall-entry{padding:18px}.wall-identity h1{font-size:28px}}

/* Identidad oficial Pulso Rioja: tinta, rojo y papel. Fuentes locales. */
@font-face{font-family:'Pulso Sans';src:url('fonts/DejaVuSans.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:'Pulso Sans';src:url('fonts/DejaVuSans-Bold.ttf') format('truetype');font-weight:700 900;font-display:swap}
@font-face{font-family:'Pulso Serif';src:url('fonts/DejaVuSerif.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:'Pulso Serif';src:url('fonts/DejaVuSerif-Bold.ttf') format('truetype');font-weight:700;font-display:swap}
body{font-family:'Pulso Sans',sans-serif}.intro h1,.card h2,.side-box h3,.form h1,.article h1,.wall-identity h1,h2,h3{font-family:'Pulso Serif',serif}.article .body{font-family:'Pulso Serif',serif}.brand{display:block;line-height:0;letter-spacing:normal}.brand img{width:270px;max-width:100%;height:auto}footer .brand img{width:190px}.header-actions{flex-wrap:wrap;justify-content:flex-end}.header-actions [hidden]{display:none}.top{background:var(--ink)}nav{border-top:3px solid var(--red)}.side-box{background:#f0eee7;border-top:3px solid var(--red)}.social-links{display:grid;gap:12px;font-size:13px}.social-links a{padding-bottom:8px;border-bottom:1px solid var(--line)}footer .social-links{max-width:400px;margin-top:24px}.check{display:flex;gap:12px;align-items:center;font-weight:400;line-height:1.5}.check input{width:18px;height:18px;flex-shrink:0;accent-color:var(--red)}.newsletter{margin:32px auto;border-top:5px solid var(--red)}.form+.form{margin-top:24px}.wall-cover{background:linear-gradient(110deg,#20231e 65%,#bd392b)}.birthday-banner{background:#e6d1ad;padding:20px;margin-top:20px;font-weight:700}.multimedia:empty{display:none}.multimedia{margin:24px 0}.multimedia audio{width:100%;display:block}.youtube{padding:24px;background:#eeeee7}.youtube:has(iframe){padding:0;background:transparent}.youtube iframe{width:100%;aspect-ratio:16/9;border:0;display:block}.youtube>a{display:inline-block;margin-top:10px;text-decoration:underline}.multimedia details{margin:18px 0;border:1px solid var(--line);padding:18px}.multimedia summary{cursor:pointer;font-weight:700}.report{max-width:650px;margin-top:20px;border-top:1px solid var(--line)}.review .body{overflow-wrap:anywhere}.review .photo{height:auto;max-height:450px;object-fit:contain}.form h2{line-height:1.3}.article .body,.wall-identity p{overflow-wrap:anywhere}
@media(max-width:850px){.brand img{width:210px}.header-actions{gap:10px}header{gap:18px}}
@media(max-width:540px){body>header{flex-direction:column;align-items:flex-start}.brand img{width:220px}.header-actions{width:100%;justify-content:flex-start}.header-actions>a:first-child{display:block}.article .lead{font-size:19px}.article .body{font-size:18px}.youtube{padding:18px}}

/* Depuración editorial: nombre visible, portada más compacta y acceso separado. */
.brand{position:relative;font-size:0;min-width:190px}.brand img{display:block;width:300px;height:auto;max-height:110px;object-fit:contain}.brand-fallback{display:none;font:700 34px/1.1 'Pulso Sans',sans-serif;letter-spacing:-2px;white-space:nowrap}.brand-fallback>span{color:var(--red);font-size:17px;vertical-align:top;margin-left:5px}.brand.logo-missing .brand-fallback{display:block}.brand.logo-missing img{display:none}body>header{padding-block:18px;min-height:116px}footer .brand img{width:210px}.home-intro{margin-top:0;align-items:center}.home-intro h1{font-size:44px;margin-bottom:16px}.home-intro p{max-width:300px}.filters{display:grid;grid-template-columns:230px minmax(0,1fr);gap:12px}.card:first-child .photo{height:340px}.card .photo{background:#eae6dd}.ad{min-height:74px;margin-bottom:24px}.auth-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:start;max-width:1100px;margin:30px auto}.auth-intro{border-top:5px solid var(--red);padding:36px 0}.auth-intro h1{font:700 40px/1.2 'Pulso Serif',serif}.auth-intro p{max-width:450px;color:var(--muted);font-size:18px}.auth-layout .form{width:100%;margin:0}.auth-tabs{display:flex;gap:10px;border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:24px}.auth-tabs button{margin-top:0}.auth-layout .form h2{font-size:28px}.loading{padding:60px;border-top:3px solid var(--red);background:white;text-align:center}.image-fallback{background:#eeeee7;border:1px solid var(--line);padding:30px;font-size:14px;color:var(--muted)}a.button.secondary{background:#e8e6de;color:var(--ink)}.note{line-height:1.5}nav{scrollbar-width:thin}.photo{display:block}.form input,.form textarea,.form select{min-width:0}
@media(max-width:850px){.auth-layout{grid-template-columns:1fr;gap:24px;margin:10px auto}.auth-intro{padding:18px 0}.auth-intro h1{font-size:30px}.home-intro h1{font-size:36px}.card:first-child .photo{height:280px}.brand img{width:240px}}
@media(max-width:540px){body>header{min-height:0;padding-block:16px;gap:16px}.brand img{width:260px}.home-intro h1{font-size:32px}.filters{grid-template-columns:1fr}.card:first-child .photo,.card .photo{height:210px}.intro.home-intro{display:block}.auth-intro p{font-size:16px}.auth-layout .form h2{font-size:24px}.brand-fallback{font-size:32px}.loading{padding:30px}}
.brand .brand-logo{display:block;width:300px;max-width:100%;height:auto;max-height:110px}footer .brand .brand-logo{width:210px}@media(max-width:850px){.brand .brand-logo{width:240px}}@media(max-width:540px){.brand .brand-logo{width:260px}}

/* Pulso Rioja · paleta editorial clara · 11/10/2026
   Capa visual sobre los estilos originales. No cambia estructura ni funciones.
   --red se conserva exclusivamente como color original de marca. */
:root {
  --red: #bd392b;
  --ink: #243244;
  --paper: #f5f7fa;
  --line: #dde5ec;
  --muted: #596979;
  --accent: #176b78;
  --accent-hover: #10515c;
  --surface: #ffffff;
  --surface-soft: #eaf3f4;
  --surface-neutral: #eef2f6;
  --brand-ink: #20231e;
  --error: #a4251d;
  --success: #245b30;
}

/* Lectura y marca: se mantiene el SVG original, sin filtros ni recoloreado. */
body { background: var(--paper); color: var(--ink); }
a:hover { color: var(--accent); }
.brand, .brand-fallback { color: var(--brand-ink); }
.brand span, .brand i, .brand-fallback > span { color: var(--red); }
.brand:hover { color: var(--brand-ink); }
body > header { background: var(--surface); }
.top { background: var(--surface-neutral); color: var(--muted); }
nav { background: var(--surface); border-color: var(--line); }
nav a.active { color: var(--accent); }
.header-actions a:hover, .meta a:hover, .city-links a:hover,
.social-links a:hover, footer a:not(.brand):hover { color: var(--accent); }
.eyebrow { color: var(--accent); }
.intro { border-bottom-color: var(--line); }

/* Controles existentes: misma geometría, estados y comportamiento. */
button, .button { background: var(--accent); color: var(--surface); }
button:hover, .button:hover { background: var(--accent-hover); color: var(--surface); }
button.secondary, a.button.secondary {
  background: var(--surface-neutral); color: var(--ink);
}
button.secondary:hover, a.button.secondary:hover {
  background: #dde7ee; color: var(--ink);
}
input, select, textarea {
  border-color: #b7c5d1; background: var(--surface); color: var(--ink);
}
input::placeholder, textarea::placeholder { color: var(--muted); opacity: 1; }
.check input { accent-color: var(--accent); }
:focus-visible { outline-color: var(--accent); }

/* Noticias, formularios y administración. */
.form, .empty, .review, .loading { background: var(--surface); border-color: var(--line); }
.card { border-bottom-color: var(--line); }
.card p, .meta, .note, .intro p, .article .lead, .auth-intro p { color: var(--muted); }
.card .photo, .art { background: var(--surface-neutral); }
.pill { background: var(--surface-soft); color: var(--accent-hover); }
.status { color: var(--accent-hover); }
.auth-intro, .newsletter, .loading { border-top-color: var(--accent); }
.auth-tabs { border-bottom-color: var(--line); }
.error { color: var(--error); }
.success { color: var(--success); }
#notice { background: var(--ink); color: var(--surface); }

/* Publicidad y módulos: tonos neutros, sin grandes franjas rojas o negras. */
.ad { background: var(--surface-neutral); border-color: #b7c5d1; color: var(--muted); }
.side-box { background: var(--surface-soft); border-top-color: var(--line); }
.city-links a, .social-links a { border-bottom-color: var(--line); }
footer { background: var(--surface-neutral); border-top-color: var(--line); }

/* Perfil, muro, cumpleaños y casilla: se conserva cada sección. */
.wall-header, .wall-entry { background: var(--surface); border-color: var(--line); }
.wall-cover { background: linear-gradient(110deg, #ddebee, #c8dfe5); }
.profile-placeholder { background: #dcebef; color: var(--accent-hover); }
.birthday-banner { background: #f3ead6; color: #594b2f; }

/* Multimedia y mapa existentes. Los colores del logo quedan intactos. */
.youtube { background: var(--surface-neutral); }
.youtube:has(iframe) { background: transparent; }
.multimedia details, .report { border-color: var(--line); }
.image-fallback { background: var(--surface-neutral); border-color: var(--line); color: var(--muted); }
.map { background: var(--surface-soft); }
.map button { background: var(--surface); color: var(--ink); border-color: var(--line); }
.map button:hover { background: #dcebef; color: var(--accent-hover); }
.map svg > path { fill: #d0e4e7; stroke: #5b8992; }
.map svg > text { fill: var(--ink); }
.map svg a circle { fill: var(--accent); }
.map svg a text { fill: var(--ink); }
.map svg a:hover circle { fill: var(--accent-hover); }
