/* Base + shared components — written once, reused by every template */
*{ box-sizing:border-box; margin:0; padding:0; }
html,body{ background:#dcd7d0; }
body{ font-family:var(--font-body); color:var(--ink);
  font-size:var(--fs-body); line-height:1.6;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }

a{ color:var(--accent-deep); text-decoration:none; }
a:hover{ color:var(--ink); text-decoration:underline; }

/* --- the printable sheet (Letter by default; override @page per template) --- */
.zenior-page{ position:relative; width:8.5in; min-height:11in;
  margin:0 auto 0.35in; background:var(--bg); overflow:hidden;
  box-shadow:0 10px 34px rgba(58,51,43,0.16); page-break-after:always; }
.zenior-page:last-child{ page-break-after:auto; margin-bottom:0; }
.zenior-pad{ padding:var(--pad-page); }

/* --- type helpers --- */
.zenior-display{ font-family:var(--font-display); font-weight:700; line-height:1.02;
  letter-spacing:0.005em; color:var(--ink); }
.zenior-kicker{ font-family:var(--font-body); font-size:var(--fs-kicker); font-weight:600;
  letter-spacing:var(--ls-kicker); text-transform:uppercase; color:var(--muted); }
.zenior-lead{ font-size:var(--fs-lead); line-height:1.6; color:var(--ink-soft); }
.zenior-body{ font-size:var(--fs-body); line-height:1.7; color:var(--ink-soft);
  max-width:var(--maxw-text); }
.zenior-quote{ font-family:var(--font-display); font-style:italic; font-weight:400;
  font-size:var(--fs-h3); line-height:1.35; color:var(--ink); }
.zenior-accent{ color:var(--accent-deep); }

/* --- hairline rule --- */
.zenior-hair{ height:0; border:0; border-top:1px solid var(--hair); margin:18px 0; }

/* --- letterhead (wordmark) + footer --- */
/* Logo oficial: assets/zenior-logo-claro.svg (sobre fondos claros) y zenior-logo-oscuro.svg (sobre oscuros) → .zenior-logo-mark. .zenior-logo queda como wordmark tipográfico de respaldo. */
.zenior-logo{ display:block; width:auto; height:auto; font-family:var(--font-display); font-weight:700;
  font-size:16pt; letter-spacing:0.03em; text-transform:uppercase; color:var(--ink); line-height:1; }
.zenior-logo::before{ content:"ZENIOR"; }
.zenior-logo.sm{ font-size:12pt; }
.zenior-logo.lg{ font-size:24pt; }
.zenior-logo.center{ text-align:center; margin:0 auto; }
/* Logo oficial (SVG): anillo + "zenior" + RESORT LIVING ESTATES · 55+. Usar sobre claro / sobre oscuro. */
.zenior-logo-mark{ display:block; width:160px; aspect-ratio:480/520; background:url(assets/zenior-logo-claro.svg) center/contain no-repeat; }
.zenior-dark .zenior-logo-mark, .zenior-logo-mark.on-dark{ background-image:url(assets/zenior-logo-oscuro.svg); }
.zenior-footer{ position:absolute; left:var(--pad-page); right:var(--pad-page); bottom:0.55in;
  display:flex; justify-content:space-between; align-items:center;
  font-size:var(--fs-small); letter-spacing:0.14em; text-transform:uppercase; color:var(--muted); }
.zenior-footer .pg{ font-variant-numeric:tabular-nums; }

/* --- pills (amenities / tags) --- */
.zenior-pill{ display:inline-block; padding:8px 16px; border:1px solid var(--hair);
  border-radius:999px; font-size:var(--fs-small); font-weight:600;
  letter-spacing:0.07em; text-transform:uppercase; color:var(--ink); }

/* --- image placeholder frame --- */
.zenior-frame{ border:1px solid var(--hair); background:var(--band);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  overflow:hidden; position:relative; border-radius:2px;
  background-image:repeating-linear-gradient(135deg,transparent 0 18px,rgba(0,0,0,0.02) 18px 36px); }
.zenior-frame img{ width:100%; height:100%; object-fit:cover; }
.zenior-frame .ph{ font-size:var(--fs-small); letter-spacing:0.28em; text-transform:uppercase; color:var(--muted); }

@media print{
  @page{ size:8.5in 11in; margin:0; }
  html,body{ background:#fff; }
  *{ -webkit-print-color-adjust:exact !important; print-color-adjust:exact !important; }
  .zenior-page{ margin:0; box-shadow:none; }
  .zenior-page:last-child{ page-break-after:avoid; }
}
