.pp-mem-page { --mem-paper:#fbf8ff; --mem-cream:#f4f1de; --mem-ink:#161a32; --mem-muted:#55423e; --mem-accent:#9a442d; --mem-sage:#45645e; --mem-line:rgba(61,64,91,.14); background:var(--mem-paper); color:var(--mem-ink); }
.pp-mem-page .pp-mem-shell { color:var(--mem-muted); }
.pp-mem-page .pp-mem-shell a { color:var(--mem-accent); text-underline-offset:.22em; }
.pp-mem-page .pp-mem-shell a:focus-visible, .pp-mem-page button:focus-visible, .pp-mem-page [tabindex]:focus-visible { outline:3px solid var(--mem-sage); outline-offset:4px; }
.pp-mem-page .pp-mem-hero { padding:1.8rem 0 4rem; background:radial-gradient(720px 360px at 8% 0%,rgba(224,122,95,.14),transparent 64%),radial-gradient(620px 340px at 88% 18%,rgba(132,165,157,.16),transparent 66%),linear-gradient(180deg,var(--mem-cream),var(--mem-paper)); border-bottom:1px solid var(--mem-line); }
.pp-mem-page .pp-mem-breadcrumb { font-size:.85rem; margin-bottom:2.4rem; }
.pp-mem-page .pp-mem-breadcrumb li, .pp-mem-page .pp-mem-breadcrumb li::before { color:var(--mem-muted); }
.pp-mem-hero-grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:clamp(2rem,5vw,5rem); align-items:center; }
.pp-mem-page .pp-mem-kicker { color:var(--mem-accent); font-size:.74rem; font-weight:800; text-transform:uppercase; letter-spacing:.11em; }
.pp-mem-page .pp-mem-hero h1 { color:var(--mem-ink); font-family:Georgia,'Times New Roman',serif; font-size:clamp(2.8rem,4.6vw,4.9rem); font-weight:500; letter-spacing:-.04em; line-height:1.06; margin:1rem 0 1.5rem; text-wrap:balance; }
.pp-mem-page .pp-mem-deck { font-family:Georgia,'Times New Roman',serif; color:var(--mem-muted); font-size:1.25rem; line-height:1.65; max-width:620px; }
.pp-mem-meta { display:flex; flex-wrap:wrap; gap:.6rem 1.2rem; font-size:.82rem; margin:1.5rem 0; }
.pp-mem-actions { display:flex; align-items:center; flex-wrap:wrap; gap:1.2rem; margin-top:1.7rem; }
.pp-mem-page .pp-mem-shell .pp-mem-button { display:inline-block; padding:.9rem 1.15rem; color:#fff; background:var(--mem-accent); border:1px solid var(--mem-accent); border-radius:.25rem; font-weight:700; line-height:1.5; text-decoration:none; }
.pp-mem-page .pp-mem-shell .pp-mem-button:hover { background:#773320; border-color:#773320; color:#fff; }
.pp-mem-photo { margin:0; padding:.6rem; border:1px solid var(--mem-line); border-radius:.3rem; background:#fff; min-width:0; }
.pp-mem-photo img { display:block; width:100%; height:auto; }
.pp-mem-photo-link { display:block; }
.pp-mem-photo figcaption { padding:.8rem .3rem .35rem; color:var(--mem-muted); font-size:.79rem; line-height:1.55; }
.pp-mem-hero-photo { max-width:420px; justify-self:end; }
.pp-mem-main { padding-top:4.5rem; padding-bottom:4.5rem; }
.pp-mem-layout { display:grid; grid-template-columns:minmax(0,820px) minmax(0,270px); gap:clamp(2rem,5vw,5rem); justify-content:space-between; align-items:start; }
.pp-mem-article { min-width:0; }
.pp-mem-article > section { scroll-margin-top:7rem; }
.pp-mem-article > section + section { margin-top:4.2rem; }
.pp-mem-page .pp-mem-article h2, .pp-mem-page .pp-mem-next h2 { color:var(--mem-ink); font-family:Georgia,'Times New Roman',serif; font-size:clamp(1.95rem,3vw,2.75rem); font-weight:500; line-height:1.16; letter-spacing:-.025em; text-wrap:balance; margin:.75rem 0 1.5rem; }
.pp-mem-page .pp-mem-article h3 { font-size:1.13rem; color:var(--mem-ink); margin:1rem 0 .7rem; }
.pp-mem-page .pp-mem-article p { color:var(--mem-muted); font-size:1.035rem; line-height:1.85; margin:0 0 1.3rem; }
.pp-mem-page .pp-mem-article .pp-mem-lead { font-family:Georgia,'Times New Roman',serif; font-size:1.35rem; color:var(--mem-ink); line-height:1.7; }
.pp-mem-note { margin:2rem 0; padding:1.5rem; border-left:4px solid #c9a45c; border-radius:0 .4rem .4rem 0; background:var(--mem-cream); }
.pp-mem-page .pp-mem-note p { margin-bottom:0; }
.pp-mem-photo-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin:2rem 0; align-items:start; }
.pp-mem-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; align-items:start; }
.pp-mem-page .pp-mem-guide { padding:2rem; border:1px solid var(--mem-line); border-left:4px solid var(--mem-sage); border-radius:.4rem; background:linear-gradient(135deg,#f1f6f4,#fff); }
.pp-mem-info-grid, .pp-mem-source-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.pp-mem-info-grid > div, .pp-mem-source-grid > div { padding:1.3rem; background:#fff; border:1px solid var(--mem-line); border-radius:.3rem; }
.pp-mem-page .pp-mem-info-grid h3, .pp-mem-page .pp-mem-source-grid h3 { margin-top:0; }
.pp-mem-page .pp-mem-info-grid p { margin:0; font-size:.94rem; }
.pp-mem-hours { border:1px solid var(--mem-line); border-radius:.3rem; margin:1rem 0; }
.pp-mem-hours table { width:100%; border-collapse:collapse; table-layout:fixed; font-size:.9rem; }
.pp-mem-hours th, .pp-mem-hours td { padding:1rem; vertical-align:top; border-bottom:1px solid var(--mem-line); overflow-wrap:break-word; }
.pp-mem-hours thead { background:var(--mem-cream); color:var(--mem-ink); }
.pp-mem-hours tbody { background:#fff; }
.pp-mem-hours caption { padding:.7rem; color:var(--mem-muted); font-size:.8rem; }
.pp-mem-page .pp-mem-article .pp-mem-small { font-size:.83rem; line-height:1.6; }
.pp-mem-contact { padding:1.2rem 1.5rem; background:var(--mem-cream); border-radius:.3rem; overflow-wrap:anywhere; }
.pp-mem-page .pp-mem-contact h3 { margin-top:0; }
.pp-mem-page .pp-mem-contact p { margin-bottom:.6rem; }
.pp-mem-sources { padding:1.5rem; border:1px solid var(--mem-line); border-radius:.4rem; background:#f1f6f4; }
.pp-mem-page .pp-mem-source-grid p { font-size:.85rem; line-height:1.7; margin:0; }
.pp-mem-sidebar { position:sticky; top:7rem; }
.pp-mem-side-card { padding:1.4rem; margin-bottom:1rem; border:1px solid var(--mem-line); border-radius:.4rem; background:#fff; }
.pp-mem-side-card ol { margin:1.2rem 0 0; padding-left:1.2rem; font-size:.85rem; }
.pp-mem-side-card li { margin-bottom:.65rem; line-height:1.5; }
.pp-mem-page .pp-mem-side-place h2 { font-family:Georgia,'Times New Roman',serif; font-size:1.45rem; font-weight:500; margin:.8rem 0; }
.pp-mem-side-place { background:var(--mem-cream); font-size:.9rem; }
.pp-mem-next { padding:3.5rem 0 4.5rem; background:linear-gradient(180deg,var(--mem-cream),var(--mem-paper)); border-top:1px solid var(--mem-line); }
.pp-mem-related { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.pp-mem-page .pp-mem-shell .pp-mem-related a { display:block; padding:1.5rem; color:var(--mem-ink); background:#fff; border:1px solid var(--mem-line); border-radius:.3rem; text-decoration:none; }
.pp-mem-related span { font-size:.73rem; color:var(--mem-accent); font-weight:700; text-transform:uppercase; }
.pp-mem-related strong { display:block; font-family:Georgia,'Times New Roman',serif; font-size:1.4rem; font-weight:500; margin:.8rem 0; }
.pp-mem-related p { margin:0; color:var(--mem-muted); line-height:1.65; font-size:.92rem; }
.pp-mem-page .pp-mem-lightbox { width:min(740px,94vw); max-width:94vw; max-height:94vh; padding:1rem; border:1px solid var(--mem-line); border-radius:.4rem; color:var(--mem-ink); background:#fff; }
.pp-mem-lightbox::backdrop { background:rgba(22,26,50,.55); }
.pp-mem-lightbox-controls { display:flex; gap:.5rem; justify-content:space-between; flex-wrap:wrap; margin-bottom:1rem; }
.pp-mem-lightbox-controls button { padding:.55rem .75rem; color:#161a32; background:#f4f1de; border:1px solid #b5ad98; border-radius:.25rem; font-size:.83rem; }
.pp-mem-lightbox figure { margin:0; }
.pp-mem-lightbox img { display:block; width:auto; max-width:100%; height:auto; max-height:72vh; margin:auto; object-fit:contain; }
.pp-mem-lightbox figcaption { font-size:.83rem; line-height:1.5; padding-top:.8rem; color:#55423e; }
@media(max-width:991.98px) { .pp-mem-layout { grid-template-columns:minmax(0,1fr); } .pp-mem-sidebar { position:static; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; } .pp-mem-hero-grid { gap:2rem; } .pp-mem-page .pp-mem-hero h1 { font-size:3rem; } }
@media(max-width:767.98px) { .pp-mem-hero-grid { grid-template-columns:minmax(0,1fr); } .pp-mem-hero-photo { justify-self:center; width:100%; } .pp-mem-page .pp-mem-hero h1 { font-size:clamp(2.6rem,10vw,3.5rem); } .pp-mem-main { padding-top:3rem; } .pp-mem-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); } .pp-mem-related,.pp-mem-sidebar { grid-template-columns:1fr; } }
@media(max-width:575.98px) { .pp-mem-page .pp-mem-hero { padding-top:1.2rem; } .pp-mem-page .pp-mem-deck { font-size:1.14rem; } .pp-mem-meta { display:grid; } .pp-mem-photo-pair,.pp-mem-info-grid,.pp-mem-source-grid { grid-template-columns:minmax(0,1fr); } .pp-mem-gallery { gap:.65rem; } .pp-mem-gallery .pp-mem-photo { padding:.35rem; } .pp-mem-gallery figcaption { font-size:.74rem; padding:.6rem .15rem .2rem; } .pp-mem-page .pp-mem-guide,.pp-mem-sources { padding:1.2rem; } .pp-mem-hours th,.pp-mem-hours td { padding:.7rem .5rem; font-size:.78rem; } .pp-mem-hours th:first-child { width:30%; } }
@media(prefers-reduced-motion:reduce) { .pp-mem-page * { scroll-behavior:auto; } }
