/* ============================================================
   memorial.css
   Pagina publica: refinada en Claude Design (brief A1).
   Panel del cliente (C1-C6): se conserva debajo.
   Tokens y .ps-* vienen de css/colors_and_type.css.
   ============================================================ */

.memorial-body{
  margin:0;background:var(--ps-cream);color:var(--ps-ink-deep);
  font-family:var(--ps-font-serif);font-size:var(--ps-text-base);
  line-height:var(--ps-leading-relaxed);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}

/* ── Ornamento de marca: filete · ✦ · filete ── */
.memorial-orn{display:flex;align-items:center;justify-content:center;gap:var(--ps-space-3);color:var(--ps-tan);margin:var(--ps-space-5) 0;}
.memorial-orn::before,.memorial-orn::after{content:"";height:1px;width:clamp(40px,12vw,84px);background:linear-gradient(to var(--d,right),transparent,var(--ps-stone));}
.memorial-orn::before{--d:left;}
.memorial-orn-glyph{font-family:var(--ps-font-display);font-size:var(--ps-text-sm);line-height:1;opacity:.9;}

/* ── Topbar ── */
.memorial-topbar{position:relative;display:flex;justify-content:center;padding:var(--ps-space-4);background:var(--ps-bg-alt);border-bottom:1px solid rgba(42,37,34,.07);}
.memorial-topbar-cuenta{position:absolute;right:var(--ps-space-5);top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:var(--ps-space-3);font-family:var(--ps-font-sans);font-size:var(--ps-text-xs);}
.memorial-topbar-hola{color:var(--ps-fog);}
.memorial-topbar-link{color:var(--ps-tan);text-decoration:none;font-weight:500;white-space:nowrap;}
.memorial-topbar-link:hover{color:var(--ps-accent-hover);}
@media(max-width:560px){.memorial-topbar{flex-direction:column;gap:var(--ps-space-2);align-items:center;}.memorial-topbar-cuenta{position:static;transform:none;right:auto;}}
.memorial-topbar .memorial-logo{display:block;line-height:0;}
.memorial-topbar .memorial-logo img{height:34px;display:block;}

/* ── Layout ── */
.memorial-main{max-width:760px;margin:0 auto;padding:0 var(--ps-space-5) var(--ps-space-10);}
.memorial-section{margin:var(--ps-space-9) 0;}
.memorial-section-head{text-align:center;margin-bottom:var(--ps-space-6);}
.memorial-section-head .ps-eyebrow{display:block;margin-bottom:var(--ps-space-3);color:var(--ps-tan);}
.memorial-h2{
  font-family:var(--ps-font-display);font-weight:400;
  font-size:var(--ps-text-2xl);color:var(--ps-ink-deep);
  margin:0;line-height:var(--ps-leading-snug);letter-spacing:var(--ps-tracking-tight);
}

/* ════ HERO ════ */
.memorial-hero{position:relative;text-align:center;margin-bottom:var(--ps-space-8);}
/* Portada rompe el ancho de lectura y se funde con la página */
.memorial-portada{
  position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;width:100vw;
  height:clamp(240px,42vh,440px);
  background-size:cover;background-position:center 38%;
}
.memorial-portada::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(to bottom,rgba(42,37,34,.18) 0%,rgba(42,37,34,0) 26%,rgba(245,235,224,0) 55%,var(--ps-cream) 100%);
}
.memorial-hero-card{position:relative;margin-top:var(--ps-space-6);padding:0 var(--ps-space-2);}
/* El solape hacia arriba solo aplica cuando hay portada; sin portada la tarjeta
   no debe subir (antes se montaba sobre el topbar/logo). */
.memorial-portada + .memorial-hero-card{margin-top:-92px;}

/* Retrato (slot arrastrable en el mockup; <img class="memorial-retrato"> en prod) */
.memorial-retrato,image-slot.memorial-retrato{
  width:152px;height:152px;display:inline-block;
  border-radius:50%;object-fit:cover;
  border:6px solid var(--ps-bg-alt);
  box-shadow:0 2px 10px rgba(42,37,34,.10),0 0 0 1px var(--ps-stone);
  background:var(--ps-cream);overflow:hidden;
  --is-placeholder-bg:var(--ps-cream);
}

.memorial-eyebrow-mem{display:block;margin-top:var(--ps-space-4);color:var(--ps-tan);}
/* Texto de participación (antes del nombre) — tono del libro de condolencias */
.memorial-participa{
  display:block;margin:var(--ps-space-4) auto 0;max-width:34ch;
  font-family:var(--ps-font-serif);font-size:var(--ps-text-md);
  color:var(--ps-fog);line-height:var(--ps-leading-snug);text-wrap:pretty;
}
/* Invitación a dejar un mensaje (después de las fechas, antes del CTA) */
.memorial-invitacion{
  margin:var(--ps-space-5) auto 0;max-width:48ch;
  font-family:var(--ps-font-serif);font-size:var(--ps-text-md);
  color:var(--ps-fog);line-height:var(--ps-leading-relaxed);text-wrap:pretty;
}
.memorial-nombre{
  font-family:var(--ps-font-display);font-weight:400;
  font-size:clamp(2.6rem,7.5vw,4.25rem);
  line-height:1.04;letter-spacing:var(--ps-tracking-tight);
  margin:var(--ps-space-3) 0 var(--ps-space-3);text-wrap:balance;color:var(--ps-ink-deep);
}
.memorial-acronimo{
  font-family:var(--ps-font-sans);text-transform:uppercase;
  letter-spacing:var(--ps-tracking-caps);font-size:var(--ps-text-xs);font-weight:500;
  color:var(--ps-mauve);margin:0;
}
/* Fechas — línea editorial con símbolos de marca */
.memorial-fechas{
  display:flex;flex-direction:column;gap:var(--ps-space-2);align-items:center;justify-content:center;
  margin:var(--ps-space-5) 0 0;color:var(--ps-fog);
}
.memorial-fecha{display:inline-flex;align-items:baseline;gap:.6ch;white-space:nowrap;font-family:var(--ps-font-display);font-style:italic;font-size:var(--ps-text-lg);color:var(--ps-ink-deep);}
.memorial-fecha .glyph{font-style:normal;color:var(--ps-tan);font-size:.85em;}
.memorial-fecha-sep{width:34px;height:1px;background:var(--ps-stone);display:inline-block;}

/* ── CTA primaria (patrón plan-cta-primary) ── */
.memorial-cta{
  display:inline-flex;align-items:center;gap:.7ch;
  margin-top:var(--ps-space-6);padding:15px 34px;
  background:var(--ps-ink-deep);color:var(--ps-cream);
  font-family:var(--ps-font-sans);font-weight:500;text-decoration:none;
  text-transform:uppercase;letter-spacing:var(--ps-tracking-caps);font-size:var(--ps-text-xs);
  border:1px solid var(--ps-ink-deep);border-radius:var(--ps-radius-sm);cursor:pointer;
  transition:background var(--ps-dur-base) var(--ps-ease-out),color var(--ps-dur-base) var(--ps-ease-out);
}
.memorial-cta:hover{background:transparent;color:var(--ps-ink-deep);}
.memorial-cta-enviar{width:100%;justify-content:center;margin-top:var(--ps-space-5);padding:16px;}

/* ════ EPITAFIO ════ */
.memorial-epitafio{text-align:center;max-width:560px;margin:0 auto;}
.memorial-epitafio .ps-quote{font-size:clamp(1.6rem,4.4vw,2.35rem);line-height:1.3;}
.memorial-epitafio-mark{font-family:var(--ps-font-display);font-size:3.4rem;line-height:0;color:var(--ps-tan);opacity:.55;display:block;height:1.1rem;}
.memorial-epitafio-firma{display:block;margin-top:var(--ps-space-6);}

/* ════ SERVICIOS ════ */
.memorial-servicio{
  background:var(--ps-bg-alt);border:1px solid var(--ps-border);
  border-radius:var(--ps-radius-md);padding:var(--ps-space-4) var(--ps-space-5);margin:0;
}
.memorial-servicio + .memorial-servicio{margin-top:var(--ps-space-3);}
.memorial-servicio-tipo{
  font-family:var(--ps-font-display);font-weight:500;font-size:var(--ps-text-lg);
  margin:0 0 var(--ps-space-2);padding-bottom:var(--ps-space-2);
  border-bottom:1px solid var(--ps-border);color:var(--ps-ink-deep);
}
.memorial-datos{display:grid;grid-template-columns:1fr;gap:0;}
.memorial-dato{
  display:flex;justify-content:space-between;gap:var(--ps-space-4);align-items:baseline;
  padding:var(--ps-space-2) 0;margin:0;border-bottom:1px solid var(--ps-border);
}
.memorial-dato:first-of-type{padding-top:calc(var(--ps-space-2) / 2);}
.memorial-dato:last-child{border-bottom:0;padding-bottom:0;}
.memorial-dato-label{
  font-family:var(--ps-font-sans);text-transform:uppercase;letter-spacing:var(--ps-tracking-wide);
  font-size:var(--ps-text-xs);color:var(--ps-mauve);font-weight:500;flex:none;
}
.memorial-dato-val{font-family:var(--ps-font-serif);font-size:var(--ps-text-md);color:var(--ps-ink-deep);text-align:right;}

/* Servicio ya finalizado — atenuado pero IDENTIFICABLE: panel recesado con tinte
   propio (distinto del fondo crema y de la tarjeta blanca) + etiqueta "Finalizado". */
.memorial-servicio-pasado{background:rgba(58,50,42,.05);border-color:var(--ps-stone);box-shadow:none;}
.memorial-servicio-pasado .memorial-servicio-tipo{color:var(--ps-fog);font-weight:400;border-bottom-color:var(--ps-stone);}
.memorial-servicio-pasado .memorial-dato{border-bottom-color:rgba(58,50,42,.10);}
.memorial-servicio-pasado .memorial-dato-val{color:var(--ps-fog);}
.memorial-servicio-pasado .memorial-dato-label{color:var(--ps-sage);}
.memorial-servicio-estado{
  display:inline-block;margin-left:.8ch;vertical-align:.14em;
  font-family:var(--ps-font-sans);font-size:.6em;font-weight:500;
  text-transform:uppercase;letter-spacing:var(--ps-tracking-wide);
  color:var(--ps-mauve);background:var(--ps-bg-alt);
  border:1px solid var(--ps-stone);border-radius:var(--ps-radius-pill);padding:3px 11px;
}

/* ════ BIOGRAFÍA ════ */
.memorial-bio-texto{
  font-family:var(--ps-font-serif);font-size:var(--ps-text-md);line-height:var(--ps-leading-relaxed);
  color:var(--ps-ink-deep);max-width:600px;margin:0 auto;text-align:center;text-wrap:pretty;
}
.memorial-bio-texto.left{text-align:left;}
.memorial-bio-texto .dropcap::first-letter{
  font-family:var(--ps-font-display);font-weight:500;font-size:3.4em;line-height:.8;
  float:left;margin:.06em .12em 0 0;color:var(--ps-tan);
}

/* ════ COMPARTIR ════ */
.memorial-share{display:flex;flex-wrap:wrap;gap:var(--ps-space-3);align-items:center;justify-content:center;margin:var(--ps-space-8) 0;}
.memorial-share-label{font-family:var(--ps-font-sans);text-transform:uppercase;letter-spacing:var(--ps-tracking-caps);font-size:var(--ps-text-xs);color:var(--ps-mauve);width:100%;text-align:center;margin-bottom:var(--ps-space-1);}
.memorial-share-btn{
  display:inline-flex;align-items:center;gap:.6ch;
  padding:10px 20px;background:var(--ps-bg-alt);border:1px solid var(--ps-tan);color:var(--ps-ink-deep);
  border-radius:var(--ps-radius-pill);font-family:var(--ps-font-sans);font-size:var(--ps-text-sm);font-weight:500;cursor:pointer;
  transition:background var(--ps-dur-base) var(--ps-ease-out),color var(--ps-dur-base) var(--ps-ease-out);
}
.memorial-share-btn svg{width:15px;height:15px;}
.memorial-share-btn:hover{background:var(--ps-cream);}
.memorial-share-wa{background:#25D366;border-color:#25D366;color:#fff;}
.memorial-share-wa:hover{background:#1eb5c;color:#fff;}

/* ════ MURO — libro de firmas ════ */
.memorial-muro-count{font-family:var(--ps-font-sans);font-size:var(--ps-text-xs);text-transform:uppercase;letter-spacing:var(--ps-tracking-caps);color:var(--ps-mauve);}
.memorial-vacio{
  text-align:center;color:var(--ps-mauve);font-family:var(--ps-font-display);font-style:italic;
  font-size:var(--ps-text-xl);line-height:var(--ps-leading-snug);padding:var(--ps-space-7) var(--ps-space-4);
}
.memorial-mensajes{display:flex;flex-direction:column;}
.memorial-mensaje{
  position:relative;padding:var(--ps-space-6) 0;border-top:1px solid var(--ps-border);
}
.memorial-mensaje:first-child{border-top:0;}
.memorial-mensaje-autor{font-family:var(--ps-font-display);font-weight:500;font-size:var(--ps-text-xl);margin:0 0 var(--ps-space-1);color:var(--ps-ink-deep);}
.memorial-mensaje-meta{font-family:var(--ps-font-sans);font-size:var(--ps-text-xs);text-transform:uppercase;letter-spacing:var(--ps-tracking-wide);color:var(--ps-mauve);margin:0 0 var(--ps-space-3);}
.memorial-mensaje-texto{
  font-family:var(--ps-font-serif);font-size:var(--ps-text-md);line-height:var(--ps-leading-relaxed);
  color:var(--ps-ink-deep);position:relative;text-wrap:pretty;
}
.memorial-mensaje-texto::before{content:"\201C";position:absolute;left:-.62em;top:-.12em;font-family:var(--ps-font-display);font-size:1.9em;line-height:1;color:var(--ps-tan);opacity:.5;}
.memorial-mensaje-fotos{display:flex;flex-wrap:wrap;gap:var(--ps-space-2);margin-top:var(--ps-space-4);}
.memorial-mensaje-fotos img{width:120px;height:96px;object-fit:cover;border-radius:var(--ps-radius-sm);border:1px solid var(--ps-border);}
.memorial-reportar{margin-top:var(--ps-space-4);background:none;border:0;color:var(--ps-mauve);font-family:var(--ps-font-sans);font-size:var(--ps-text-xs);cursor:pointer;text-decoration:underline;text-underline-offset:2px;}
.memorial-reportar:hover{color:var(--ps-danger);}

/* ════ FORMULARIO ════ */
.memorial-firmar{background:var(--ps-bg-alt);border:1px solid var(--ps-border);border-radius:var(--ps-radius-lg);padding:clamp(var(--ps-space-5),5vw,var(--ps-space-8));}
.memorial-firmar .memorial-section-head{margin-bottom:var(--ps-space-5);}
.memorial-firmar-lead{font-family:var(--ps-font-serif);font-size:var(--ps-text-md);color:var(--ps-fog);text-align:center;max-width:440px;margin:var(--ps-space-3) auto 0;text-wrap:pretty;}
.memorial-aviso{background:rgba(202,160,103,.14);border:1px solid var(--ps-warning);color:#7a5a26;padding:12px 16px;border-radius:var(--ps-radius-sm);font-family:var(--ps-font-sans);font-size:var(--ps-text-sm);margin-bottom:var(--ps-space-4);}
.memorial-label{display:block;margin:var(--ps-space-5) 0 var(--ps-space-2);font-family:var(--ps-font-sans);font-size:var(--ps-text-sm);font-weight:500;color:var(--ps-ink-deep);}
.memorial-label:first-of-type{margin-top:0;}
.memorial-hint{color:var(--ps-mauve);font-weight:400;}
.memorial-input{
  width:100%;box-sizing:border-box;padding:13px 14px;font-size:16px;
  font-family:var(--ps-font-sans);color:var(--ps-ink-deep);
  border:1px solid var(--ps-border-strong);border-radius:var(--ps-radius-sm);background:var(--ps-cream);
  transition:border-color var(--ps-dur-base) var(--ps-ease-out),box-shadow var(--ps-dur-base) var(--ps-ease-out);
}
.memorial-input::placeholder{color:var(--ps-sage);}
.memorial-input:focus{outline:0;border-color:var(--ps-tan);box-shadow:0 0 0 3px rgba(211,177,132,.22);}
textarea.memorial-input{resize:vertical;min-height:120px;line-height:var(--ps-leading-normal);}
.memorial-input[type=file]{padding:11px 14px;background:var(--ps-bg-alt);cursor:pointer;font-size:var(--ps-text-sm);}
.memorial-input[type=file]::file-selector-button{font-family:var(--ps-font-sans);font-size:var(--ps-text-xs);text-transform:uppercase;letter-spacing:var(--ps-tracking-wide);font-weight:500;color:var(--ps-ink-deep);background:var(--ps-cream);border:1px solid var(--ps-border-strong);border-radius:var(--ps-radius-sm);padding:7px 12px;margin-right:12px;cursor:pointer;}

/* ════ FLASH ════ */
.memorial-flash{margin:var(--ps-space-5) auto 0;max-width:760px;padding:13px 18px;border-radius:var(--ps-radius-sm);font-family:var(--ps-font-sans);font-size:var(--ps-text-sm);border:1px solid;}
.memorial-flash-ok{background:rgba(112,136,68,.12);border-color:var(--ps-success);color:#46562b;}
.memorial-flash-aviso{background:rgba(202,160,103,.15);border-color:var(--ps-warning);color:#7a5a26;}
.memorial-flash-error{background:rgba(140,74,58,.10);border-color:var(--ps-danger);color:var(--ps-danger);}

/* ════ CTA flotante (mobile) ════ */
.memorial-cta-flotante{
  position:fixed;left:0;right:0;bottom:0;z-index:40;
  padding:var(--ps-space-3) var(--ps-space-4);
  padding-bottom:calc(var(--ps-space-3) + env(safe-area-inset-bottom));
  background:rgba(42,37,34,.97);backdrop-filter:blur(6px);
  border-top:1px solid rgba(245,235,224,.12);
  transform:translateY(120%);transition:transform var(--ps-dur-slow) var(--ps-ease-out);
}
.memorial-cta-flotante.visible{transform:translateY(0);}
.memorial-cta-flotante a{
  display:flex;align-items:center;justify-content:center;gap:.7ch;
  padding:14px;background:var(--ps-tan);color:var(--ps-ink-deep);text-decoration:none;
  font-family:var(--ps-font-sans);font-weight:600;text-transform:uppercase;
  letter-spacing:var(--ps-tracking-wide);font-size:var(--ps-text-xs);border-radius:var(--ps-radius-sm);
}
@media(min-width:720px){.memorial-cta-flotante{display:none;}}

/* ════ FOOTER ════ */
.memorial-footer{text-align:center;padding:var(--ps-space-8) var(--ps-space-4) var(--ps-space-9);color:var(--ps-mauve);background:var(--ps-bg-alt);border-top:1px solid var(--ps-border);}
.memorial-footer-inner{display:flex;flex-direction:column;gap:var(--ps-space-3);align-items:center;}
.memorial-footer-logo-link{display:inline-block;line-height:0;}
.memorial-footer-logo{height:38px;width:auto;display:block;}
.memorial-footer-tag{font-family:var(--ps-font-display);font-style:italic;font-size:var(--ps-text-lg);color:var(--ps-tan);}
.memorial-footer-since{font-family:var(--ps-font-sans);font-size:var(--ps-text-xs);letter-spacing:var(--ps-tracking-wide);text-transform:uppercase;color:var(--ps-sage);}
.memorial-footer-contacto{display:flex;flex-direction:column;align-items:center;gap:var(--ps-space-1);margin-top:var(--ps-space-4);padding-top:var(--ps-space-5);border-top:1px solid var(--ps-border);width:100%;max-width:340px;}
.memorial-footer-eyebrow{font-family:var(--ps-font-sans);font-size:var(--ps-text-xs);letter-spacing:var(--ps-tracking-caps);text-transform:uppercase;color:var(--ps-tan);}
.memorial-footer-phone{color:var(--ps-ink-deep);text-decoration:none;font-family:var(--ps-font-display);font-size:var(--ps-text-xl);letter-spacing:.2px;}
.memorial-footer-phone:hover{color:var(--ps-tan);}
.memorial-footer-links{display:flex;align-items:center;gap:var(--ps-space-2);font-family:var(--ps-font-sans);font-size:var(--ps-text-sm);margin-top:var(--ps-space-1);}
.memorial-footer-links a{color:var(--ps-mauve);text-decoration:none;}
.memorial-footer-links a:hover{color:var(--ps-ink-deep);text-decoration:underline;text-underline-offset:2px;}
.memorial-footer-sep{color:var(--ps-stone);}
.memorial-footer-sitio{font-family:var(--ps-font-sans);font-size:var(--ps-text-sm);color:var(--ps-tan);text-decoration:none;margin-top:var(--ps-space-4);letter-spacing:.3px;}
.memorial-footer-sitio:hover{color:var(--ps-ink-deep);}
.memorial-footer-copy{font-family:var(--ps-font-sans);font-size:var(--ps-text-xs);color:var(--ps-sage);margin-top:var(--ps-space-1);}

/* ── Desktop ── */
@media(min-width:720px){
  .memorial-main{padding-bottom:var(--ps-space-10);}
  .memorial-retrato,image-slot.memorial-retrato{width:176px;height:176px;}
  .memorial-portada + .memorial-hero-card{margin-top:-104px;}
  .memorial-datos{grid-template-columns:1fr;}
}

/* (entrada suave retirada — el contenido del memorial debe estar siempre visible) */

/* ── Aviso "libro cerrado" ── */
.memorial-cerrado{text-align:center;padding:var(--ps-space-3) 0 var(--ps-space-2);}
.memorial-cerrado-glyph{font-family:var(--ps-font-display);font-size:var(--ps-text-2xl);color:var(--ps-tan);line-height:1;display:block;margin-bottom:var(--ps-space-3);}
.memorial-cerrado-title{font-family:var(--ps-font-display);font-weight:400;font-size:var(--ps-text-xl);color:var(--ps-ink-deep);margin:0 0 var(--ps-space-2);}
.memorial-cerrado-text{font-family:var(--ps-font-serif);font-size:var(--ps-text-md);color:var(--ps-fog);max-width:430px;margin:0 auto;text-wrap:pretty;}

/* ════════════════════════════════════════════════════════════
   LIBRO DE MENSAJES — sección protagonista (romántica + elegante)
   ════════════════════════════════════════════════════════════ */
.memorial-libro{
  position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;width:100vw;
  box-sizing:border-box;   /* el padding entra dentro del 100vw; sin esto desborda 2×padding en mobile */
  margin-top:var(--ps-space-7);
  padding:var(--ps-space-9) var(--ps-space-5) var(--ps-space-9);
  background:
    radial-gradient(130% 92% at 50% 0%, rgba(211,177,132,.14), rgba(211,177,132,0) 58%),
    linear-gradient(180deg,#FCF6EE 0%, #F5EADF 100%);
  border-top:1px solid var(--ps-border);
}
/* el panel cierra la página: anula el padding inferior del main */
.memorial-main{padding-bottom:0;}

.memorial-libro-inner{max-width:680px;margin:0 auto;}

/* ── Header protagonista ── */
.memorial-libro-head{text-align:center;margin-bottom:var(--ps-space-8);}
.memorial-libro-seal{
  width:64px;height:64px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;margin:0 auto var(--ps-space-5);
  border:1px solid var(--ps-tan);background:var(--ps-bg-alt);
  box-shadow:0 4px 20px rgba(211,177,132,.32),0 0 0 6px rgba(255,255,255,.5);
  color:var(--ps-tan);font-family:var(--ps-font-display);font-size:1.55rem;line-height:1;
}
.memorial-libro-eyebrow{display:block;color:var(--ps-tan);margin-bottom:var(--ps-space-3);}
.memorial-libro-title{
  font-family:var(--ps-font-display);font-weight:400;
  font-size:clamp(2.5rem,6.4vw,3.5rem);line-height:1.06;letter-spacing:var(--ps-tracking-tight);
  margin:0;color:var(--ps-ink-deep);text-wrap:balance;
}
.memorial-libro-title em{font-style:italic;color:var(--ps-accent-hover);}
.memorial-libro-lead{
  font-family:var(--ps-font-display);font-style:italic;font-weight:400;
  font-size:clamp(1.25rem,3.4vw,1.6rem);line-height:var(--ps-leading-snug);
  color:var(--ps-fog);max-width:500px;margin:var(--ps-space-4) auto var(--ps-space-5);text-wrap:pretty;
}
.memorial-libro .memorial-muro-count{display:block;margin:var(--ps-space-4) 0 0;}

/* ── Mensajes como tarjetas — páginas del libro ── */
.memorial-libro .memorial-mensajes{gap:var(--ps-space-5);}
.memorial-libro .memorial-mensaje{
  background:var(--ps-bg-alt);
  border:1px solid var(--ps-border);
  border-radius:var(--ps-radius-md);
  padding:var(--ps-space-6) var(--ps-space-6) var(--ps-space-5);
  box-shadow:0 12px 32px rgba(42,37,34,.055);
}
.memorial-libro .memorial-mensaje:first-child{border-top:1px solid var(--ps-border);}
.memorial-libro .memorial-mensaje-autor{font-size:var(--ps-text-2xl);}
.memorial-libro .memorial-mensaje-texto{padding-left:.55em;}

/* ── Divisor romántico hacia el formulario ── */
.memorial-libro .memorial-orn{margin:var(--ps-space-8) 0;}

/* ── Formulario elevado dentro del libro ── */
.memorial-libro .memorial-firmar{
  box-shadow:0 20px 48px rgba(42,37,34,.085);
  border-color:var(--ps-stone);
}

@media(min-width:720px){
  .memorial-libro{padding:var(--ps-space-10) var(--ps-space-6) var(--ps-space-10);}
}

/* ── Enlace discreto para familiares (reclamo de acceso) ── */
.memorial-familiar{text-align:center;margin:var(--ps-space-7) auto var(--ps-space-9);padding:0 var(--ps-space-4) 64px;font-family:var(--ps-font-sans);font-size:var(--ps-text-sm);}
.memorial-familiar a{color:var(--ps-mauve);text-decoration:underline;text-underline-offset:3px;}
.memorial-familiar a:hover{color:var(--ps-ink-deep);}
