@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Inter:wght@400;500;600&display=swap');
:root{--paper:#faf7f1;--ink:#342f2a;--muted:#786f65;--line:rgba(52,47,42,.12);--accent:#8b6f47;--accent-soft:#efe4d2;--card:rgba(255,255,255,.72)}
body{font-family:Inter,system-ui,sans-serif}.font-serif,.section-title{font-family:'Cormorant Garamond',Georgia,serif}.memorial{background:var(--paper);color:var(--ink);min-height:100vh}.theme-classic{--paper:#faf7f1;--accent:#8b6f47;--accent-soft:#efe4d2}.theme-garden{--paper:#f5f7f0;--accent:#697b51;--accent-soft:#dfe8d4}.theme-celestial{--paper:#f3f5fb;--accent:#596d9f;--accent-soft:#dfe6fb}.theme-album{--paper:#fbf6f3;--accent:#9a6a66;--accent-soft:#f1ddd9}.memorial-hero{background:radial-gradient(circle at top,var(--accent-soft),transparent 42%),linear-gradient(135deg,var(--paper),#fff)}.hero-texture{opacity:.18;background-image:radial-gradient(var(--accent) 1px,transparent 1px);background-size:28px 28px}.section-title{font-size:clamp(2.2rem,5vw,4rem);line-height:.95;color:var(--ink)}.eyebrow{font-size:.72rem;text-transform:uppercase;letter-spacing:.32em;color:var(--accent);font-weight:700}.memory-card{background:var(--card);border:1px solid var(--line);border-radius:2rem;box-shadow:0 20px 80px rgba(52,47,42,.08);backdrop-filter:blur(16px)}.theme-badge{font-size:.75rem;border:1px solid var(--line);padding:.45rem .8rem;border-radius:999px;color:var(--accent)}.pill-primary,.pill-secondary,.btn{border-radius:999px;padding:.8rem 1.15rem;font-weight:700;transition:.2s ease;display:inline-flex;align-items:center;justify-content:center}.pill-primary,.btn{background:var(--ink);color:white}.pill-secondary{background:white;color:var(--ink);border:1px solid var(--line)}.pill-primary:hover,.btn:hover{transform:translateY(-1px);filter:brightness(1.08)}.input{width:100%;border:1px solid var(--line);border-radius:1rem;background:rgba(255,255,255,.85);padding:.8rem 1rem;outline:none}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.label{display:block;font-size:.8rem;font-weight:700;color:var(--muted);margin-bottom:.4rem}.timeline{position:relative}.timeline:before{content:"";position:absolute;left:.45rem;top:.2rem;bottom:.2rem;width:1px;background:var(--line)}.timeline-item{position:relative;padding-left:2rem;margin-bottom:1.8rem}.timeline-item:before{content:"";position:absolute;left:0;top:.3rem;width:.9rem;height:.9rem;border-radius:999px;background:var(--accent);box-shadow:0 0 0 6px var(--accent-soft)}.timeline-item time{display:block;color:var(--accent);font-size:.85rem;font-weight:700}.timeline-item strong{display:block;margin-top:.15rem}.timeline-item p{margin-top:.25rem;color:var(--muted)}.candle-wall{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.candle{text-align:center;border-radius:1.2rem;padding:1rem .5rem;background:rgba(255,255,255,.55);border:1px solid var(--line)}.candle.premium{background:linear-gradient(180deg,#fff8dd,#fff)}.flame{width:22px;height:34px;margin:auto;border-radius:70% 30% 55% 45%;background:radial-gradient(circle at 55% 65%,#fff6a8 0 18%,#ffb347 42%,#d86f35 70%);filter:drop-shadow(0 0 12px #ffbf68);animation:flicker 1.45s infinite alternate;transform-origin:bottom}.candle p{font-size:.8rem;margin-top:.6rem;font-weight:700}.candle small{display:block;font-size:.68rem;color:var(--muted);line-height:1.2;margin-top:.25rem}@keyframes flicker{from{transform:rotate(-2deg) scale(.95)}to{transform:rotate(2deg) scale(1.06)}}.carousel-controls{display:flex;gap:.65rem}.carousel-controls button{width:3rem;height:3rem;border-radius:999px;background:white;border:1px solid var(--line);font-size:1.3rem}.memory-carousel{overflow:hidden;border-radius:2rem}.carousel-track{display:flex;gap:1.25rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding-bottom:1rem}.carousel-track::-webkit-scrollbar{height:10px}.carousel-track::-webkit-scrollbar-thumb{background:var(--accent-soft);border-radius:999px}.carousel-slide{scroll-snap-align:center;flex:0 0 min(92vw,760px);background:white;border:1px solid var(--line);border-radius:2rem;overflow:hidden;box-shadow:0 20px 70px rgba(52,47,42,.08)}.media-frame{height:min(68vh,520px);background:linear-gradient(135deg,#eee,#fff);display:flex;align-items:center;justify-content:center}.media-frame img,.media-frame video{width:100%;height:100%;object-fit:cover}.audio-memory{width:80%;text-align:center}.audio-memory span{display:block;font-family:'Cormorant Garamond',serif;font-size:4rem;color:var(--accent);margin-bottom:2rem}.carousel-slide figcaption{display:grid;gap:.8rem;padding:1rem 1.2rem}.carousel-slide figcaption span{font-size:.75rem;color:var(--accent);font-weight:700}.report-form{display:grid;grid-template-columns:1fr auto;gap:.5rem;align-items:center}.report-form button{font-size:.8rem;text-decoration:underline;color:var(--muted)}.empty-state{width:100%;padding:4rem;text-align:center;background:white;border:1px dashed var(--line);border-radius:2rem;color:var(--muted)}.message-grid{columns:1;column-gap:1.2rem}@media(min-width:768px){.message-grid{columns:2}.carousel-slide{flex-basis:min(78vw,820px)}}.message-card{break-inside:avoid;background:white;border:1px solid var(--line);border-radius:1.5rem;padding:1.4rem;margin:0 0 1.2rem;box-shadow:0 12px 40px rgba(52,47,42,.06);font-family:'Cormorant Garamond',serif;font-size:1.45rem;line-height:1.35}.message-card footer{font-family:Inter,sans-serif;font-size:.8rem;color:var(--muted);margin-top:1rem}.prose p{line-height:1.85;color:var(--muted)}

.home-shell{min-height:100vh;background:linear-gradient(135deg,#fbf7ef,#f1e5d6 55%,#e7d5c1);color:#3f342b}.home-hero{max-width:1120px;margin:0 auto;padding:90px 24px 60px;display:grid;grid-template-columns:1.4fr .8fr;gap:42px;align-items:center}.home-hero h1{font-family:Georgia,serif;font-size:clamp(3rem,7vw,6.8rem);line-height:.92;margin:18px 0;color:#2d241e}.home-lead{font-size:1.18rem;line-height:1.8;max-width:690px;color:#5e5046}.home-actions{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap}.btn-secondary{background:transparent;color:#5b4634;border:1px solid rgba(91,70,52,.35)}.home-card{background:rgba(255,255,255,.58);border:1px solid rgba(100,78,58,.16);border-radius:34px;padding:38px;box-shadow:0 30px 90px rgba(88,62,36,.12);backdrop-filter:blur(8px)}.home-card h2{font-family:Georgia,serif;font-size:2rem;margin:18px 0 10px}.home-card p{line-height:1.7;color:#66594f}.home-candle{width:92px;height:130px;border-radius:40px 40px 18px 18px;background:linear-gradient(#fff,#ead7be);position:relative;margin:auto;box-shadow:inset 0 -18px 30px rgba(90,60,30,.09)}.home-candle span{position:absolute;left:35px;top:-24px;width:24px;height:38px;border-radius:50% 50% 45% 45%;background:radial-gradient(circle at 60% 35%,#fff8bc,#f3ae43 55%,#d86c36);animation:flicker 1.8s infinite alternate}.home-section{max-width:1120px;margin:0 auto;padding:20px 24px 90px}.home-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin-top:28px}.home-memorial{text-decoration:none;color:inherit;display:block}.home-memorial span{font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:#90735a}.home-memorial strong{display:block;font-family:Georgia,serif;font-size:1.7rem;margin:10px 0}.home-memorial small{color:#76685f}@media(max-width:800px){.home-hero{grid-template-columns:1fr;padding-top:54px}.home-card{padding:26px}.home-actions .btn{width:100%;text-align:center}}

.form-notice{border-radius:1.25rem;padding:1rem 1.2rem;border:1px solid var(--line);background:white;box-shadow:0 12px 40px rgba(52,47,42,.06);color:var(--ink)}.notice-success{border-color:color-mix(in srgb,var(--accent) 30%,var(--line));background:color-mix(in srgb,var(--accent-soft) 45%,white)}.notice-error{border-color:#d9a2a2;background:#fff5f5;color:#7f1d1d}

.owner-topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.5rem;background:rgba(250,247,241,.88);border-bottom:1px solid var(--line);backdrop-filter:blur(14px)}.owner-brand{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.8rem;font-weight:700;text-decoration:none;color:var(--ink)}.owner-muted{margin-left:.8rem;color:var(--muted);font-size:.85rem}.owner-nav{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.owner-nav a,.owner-nav button{border:1px solid var(--line);background:white;border-radius:999px;padding:.55rem .8rem;font-size:.85rem;color:var(--ink);text-decoration:none}.owner-nav button{cursor:pointer}.owner-breadcrumb{display:flex;gap:.5rem;align-items:center;color:var(--muted);font-size:.9rem;margin-bottom:1.25rem}.owner-breadcrumb a{text-decoration:underline;color:var(--ink)}.owner-page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem}.owner-actions{display:flex;gap:.7rem;flex-wrap:wrap;justify-content:flex-end}.owner-review-card{border:1px solid var(--line)}.review-preview{height:14rem;border-radius:1rem;overflow:hidden;background:linear-gradient(135deg,#f3efe7,#fff);display:flex;align-items:center;justify-content:center;border:1px solid var(--line)}.review-preview img,.review-preview video{width:100%;height:100%;object-fit:cover}.owner-memorial-card{transition:.2s ease}.owner-memorial-card:hover{transform:translateY(-2px);box-shadow:0 24px 90px rgba(52,47,42,.1)}@media(max-width:820px){.owner-topbar,.owner-page-head{align-items:flex-start;flex-direction:column}.owner-nav{width:100%}.owner-nav a,.owner-nav button{font-size:.8rem}.owner-muted{display:block;margin-left:0}.owner-actions{justify-content:flex-start}}

.background-audio{display:inline-flex;border:1px solid var(--line);background:rgba(255,255,255,.72);border-radius:999px;padding:.45rem;box-shadow:0 16px 40px rgba(52,47,42,.08)}.background-audio button{border-radius:999px;padding:.65rem 1rem;font-weight:700;color:var(--ink)}.memory-modal[hidden]{display:none}.memory-modal{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:1rem}.memory-modal-backdrop{position:absolute;inset:0;background:rgba(38,31,26,.5);backdrop-filter:blur(6px)}.memory-modal-panel{position:relative;z-index:1;width:min(94vw,720px);max-height:92vh;overflow:auto;background:var(--paper);border:1px solid var(--line);border-radius:2rem;padding:1.5rem;box-shadow:0 40px 120px rgba(0,0,0,.25)}.memory-modal-close{position:absolute;right:1rem;top:1rem;width:2.4rem;height:2.4rem;border-radius:999px;background:white;border:1px solid var(--line);font-size:1.5rem}.modal-open{overflow:hidden}.modal-tabs{display:flex;gap:.6rem;flex-wrap:wrap}.modal-tabs button{border:1px solid var(--line);background:white;border-radius:999px;padding:.7rem 1rem;font-weight:700}.modal-tabs button.active{background:var(--ink);color:white}.hidden{display:none!important}.carousel-controls button[data-open-memory-modal]{width:auto;padding:0 1rem;font-size:.9rem;font-weight:700}.owner-filterbar{display:flex;gap:.5rem;flex-wrap:wrap}.owner-filterbar a{border:1px solid var(--line);background:white;border-radius:999px;padding:.55rem .85rem;text-decoration:none;color:var(--ink);font-size:.85rem}.owner-filterbar a.active{background:var(--ink);color:white}.status-pill{border-radius:999px;padding:.25rem .55rem;font-size:.72rem;font-weight:800;background:#f3f4f6;color:#374151}.status-approved{background:#dcfce7;color:#166534}.status-pending{background:#fef3c7;color:#92400e}.status-rejected{background:#fee2e2;color:#991b1b}.status-flagged{background:#ede9fe;color:#5b21b6}.status-removed_by_admin{background:#e5e7eb;color:#111827}.owner-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.owner-action-grid button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:.5rem .65rem;font-size:.78rem;font-weight:700}.owner-action-grid button[value=approve]{background:#166534;color:white}.owner-action-grid button[value=reject],.owner-action-grid button[value=delete],.owner-action-grid button[value=hide]{background:#991b1b;color:white}.owner-action-grid button[value=unapprove]{background:#92400e;color:white}

/* v2.10: carrusel íntimo de un solo recuerdo, CTA inferior y utilidades owner */
.carousel-controls{align-items:center}.carousel-position{min-width:4.8rem;height:3rem;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.75);display:inline-flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:800;color:var(--accent)}.memory-carousel{overflow:hidden;border-radius:2rem}.carousel-track{gap:0;overflow:visible;scroll-snap-type:none;padding-bottom:0;transition:transform .45s ease;will-change:transform}.carousel-track::-webkit-scrollbar{display:none}.carousel-slide{flex:0 0 100%;max-width:100%;scroll-snap-align:none}.media-frame{height:min(70vh,620px)}.media-frame img{object-fit:contain;background:#111}.media-frame video{object-fit:contain;background:#111}.copy-row{display:grid;grid-template-columns:1fr auto;gap:.75rem;align-items:center}@media(max-width:640px){.copy-row{grid-template-columns:1fr}.media-frame{height:min(58vh,460px)}.carousel-controls{width:100%;justify-content:center}.carousel-position{order:2;width:100%}}

/* Cover image and owner timeline patch */
.hero-cover-bg{background-size:cover;background-position:center;filter:blur(18px);transform:scale(1.08);opacity:.18}.hero-content-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(280px,.8fr);gap:3rem;align-items:center;min-height:420px}.hero-content-centered{display:flex;text-align:center;justify-content:center}.hero-content-centered .hero-copy{margin:auto}.hero-cover-card{border-radius:2.5rem;overflow:hidden;border:1px solid var(--line);box-shadow:0 30px 100px rgba(52,47,42,.18);background:white;aspect-ratio:4/5}.hero-cover-card img{width:100%;height:100%;object-fit:cover;display:block}.cover-preview{border-radius:1.25rem;overflow:hidden;border:1px solid var(--line);background:#fff;max-width:340px}.cover-preview img{display:block;width:100%;height:220px;object-fit:cover}.danger-link{color:#991b1b!important;border-color:#fecaca!important;background:#fff5f5!important}@media(max-width:900px){.hero-content-grid{display:flex;flex-direction:column;text-align:center}.hero-copy p{margin-left:auto;margin-right:auto}.hero-cover-card{width:min(92vw,420px)}}

/* Candle modal trigger */
.candle-open-button,
.candle-submit-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
}
.candle-open-button span[aria-hidden="true"],
.candle-submit-button span[aria-hidden="true"] {
  filter: drop-shadow(0 0 10px rgba(251, 191, 36, .42));
}
.candle-modal-panel {
  max-width: 520px;
}
.form-notice.notice-error {
  border-color: rgba(185, 28, 28, .18);
  background: #fff1f2;
  color: #991b1b;
}

/* Pagination and commercial landing patch */
.owner-toolbar{display:grid;grid-template-columns:2fr 1fr 1fr auto auto auto;gap:10px;align-items:center;background:#fff;border:1px solid #e6ddd4;border-radius:24px;padding:14px;box-shadow:0 18px 60px rgba(55,43,31,.06)}
.owner-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}.owner-pagination{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.page-pill{min-width:36px;height:36px;border:1px solid #ded3c8;border-radius:999px;background:#fff;display:inline-flex;align-items:center;justify-content:center;padding:0 12px;font-weight:800;color:#3b332c;text-decoration:none}.page-pill.active{background:#342c26;color:#fff;border-color:#342c26}.page-pill:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(55,43,31,.08)}
.landing-shell{max-width:1180px;margin:0 auto;padding:42px 24px 80px}.landing-hero{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);gap:28px;align-items:center;min-height:600px}.landing-copy h1{font-family:Georgia,serif;font-size:clamp(48px,7vw,88px);line-height:.96;letter-spacing:-.05em;margin:18px 0;color:#332c27}.landing-note{color:#7b7168;margin-top:16px}.commercial-actions{margin-top:30px}.landing-preview{background:linear-gradient(160deg,#fff,#f5eee6);border:1px solid #e8ded2;border-radius:38px;padding:32px;min-height:420px;box-shadow:0 30px 90px rgba(63,48,34,.13);position:relative;overflow:hidden}.preview-orb{width:170px;height:170px;border-radius:50%;background:radial-gradient(circle,#fff7c6,#d9b483 55%,transparent 68%);margin:20px auto 40px;filter:blur(.2px)}.landing-preview h2{font-family:Georgia,serif;font-size:58px;margin:0 0 10px}.preview-candles{display:flex;gap:12px;margin-top:38px}.preview-candles span{width:34px;height:48px;border-radius:18px 18px 8px 8px;background:#f5ddac;box-shadow:0 0 30px rgba(245,181,79,.35)}.landing-section{padding:70px 0;border-top:1px solid rgba(92,76,60,.12)}.landing-section.soft{background:#fffaf4;border:1px solid #e9ded0;border-radius:36px;padding:44px;margin:30px 0}.landing-grid.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.feature-card,.price-card{background:#fff;border:1px solid #e4d9cc;border-radius:26px;padding:24px;box-shadow:0 16px 50px rgba(55,43,31,.06)}.feature-card strong,.price-card span{font-size:18px;color:#332c27}.feature-card p,.price-card p,.faq p{color:#746a62;line-height:1.7}.pricing-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;margin-top:20px}.price-card h3{font-family:Georgia,serif;font-size:54px;margin:10px 0;color:#332c27}.price-card h3 small{font-size:20px;color:#746a62}.main-price{border-color:#cbb79e}.price-card ul{margin:12px 0 0;padding-left:22px;color:#5e534a;line-height:1.9}.faq details{background:#fff;border:1px solid #e4d9cc;border-radius:20px;padding:18px 20px;margin:10px 0}.faq summary{font-weight:800;cursor:pointer;color:#332c27}
@media(max-width:900px){.owner-toolbar{grid-template-columns:1fr}.landing-hero,.landing-grid.three,.pricing-grid{grid-template-columns:1fr}.landing-shell{padding:20px 16px 60px}.landing-hero{min-height:auto}.landing-copy h1{font-size:52px}.landing-preview{min-height:320px}}

/* v2.12: live updates and safer access polish */
.candle-wall{align-items:stretch}
.candle[hx-swap-oob],.message-card[hx-swap-oob]{display:initial}
.candle{min-height:7.5rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;animation:softAppear .32s ease both}
.candle .flame{flex:0 0 auto}.candle p{max-width:100%;overflow-wrap:anywhere}.candle small{max-width:100%;overflow-wrap:anywhere;padding:0 .25rem}.message-card{animation:softAppear .32s ease both;white-space:pre-line}
@keyframes softAppear{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
.plans-hero{max-width:1120px;margin:0 auto;padding:72px 24px 34px}.plans-hero h1{font-family:Georgia,serif;font-size:clamp(44px,7vw,82px);line-height:.95;letter-spacing:-.04em;color:#332c27}.plans-grid{max-width:1120px;margin:0 auto;padding:20px 24px 80px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.plan-card{background:#fff;border:1px solid #e4d9cc;border-radius:30px;padding:26px;box-shadow:0 18px 60px rgba(55,43,31,.07);display:flex;flex-direction:column;gap:14px}.plan-card.featured{border-color:#bda589;transform:translateY(-8px);box-shadow:0 30px 90px rgba(55,43,31,.12)}.plan-card h2{font-family:Georgia,serif;font-size:32px;color:#332c27}.plan-price{font-family:Georgia,serif;font-size:46px;color:#332c27}.plan-price small{font-family:Inter,system-ui,sans-serif;font-size:15px;color:#746a62}.plan-card ul{padding-left:20px;color:#5e534a;line-height:1.8}.plan-muted{color:#746a62;line-height:1.7}.security-note{max-width:1120px;margin:0 auto 80px;padding:0 24px}.security-note-inner{background:#fffaf4;border:1px solid #e9ded0;border-radius:28px;padding:28px}.security-note h2{font-family:Georgia,serif;font-size:34px;color:#332c27}.security-note p{color:#746a62;line-height:1.75}@media(max-width:900px){.plans-grid{grid-template-columns:1fr}.plan-card.featured{transform:none}}

/* v2.16: candle wall pagination, reliable OOB rendering and visible async feedback */
.global-feedback {
  max-width: 760px;
  margin: 1rem auto 0;
  padding: 0 1rem;
}
.global-feedback:empty { display: none; }
.global-feedback.has-message .form-notice { animation: softAppear .24s ease both; }
.candle-carousel { width: 100%; }
.candle-wall {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  align-items: stretch;
}
.candle,
.candle[hx-swap-oob] {
  min-height: 7.75rem;
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .25rem;
  text-align: center;
  animation: softAppear .32s ease both;
}
.candle.is-candle-hidden { display: none !important; }
.candle .flame { flex: 0 0 auto; }
.candle p,
.candle small {
  width: 100%;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: normal;
}
.candle small { padding: 0 .25rem; line-height: 1.25; }
.candle-pager {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: .65rem;
  margin-top: 1rem;
}
.candle-pager[hidden] { display: none !important; }
.candle-pager button {
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.82);
  font-weight: 800;
}
.candle-pager span {
  min-width: 4.4rem;
  height: 2.4rem;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.82);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: .85rem;
  font-weight: 800;
  color: var(--accent);
}
.form-notice {
  border-radius: 1.25rem;
  padding: 1rem 1.15rem;
  border: 1px solid rgba(22, 101, 52, .18);
  background: #ecfdf3;
  color: #166534;
  font-weight: 700;
}
.form-notice.notice-error {
  border-color: rgba(185, 28, 28, .18);
  background: #fff1f2;
  color: #991b1b;
}
@media (min-width: 640px) {
  .candle-wall { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  .global-feedback { margin-top: .75rem; }
  .candle-wall { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; }
}

/* v2.17: fixed toast feedback and robust candle OOB insertion */
.global-feedback {
  position: fixed;
  left: 50%;
  bottom: 1.25rem;
  z-index: 10000;
  width: min(92vw, 520px);
  transform: translate(-50%, 18px);
  margin: 0;
  padding: 0;
  pointer-events: none;
  opacity: 0;
  transition: opacity .22s ease, transform .22s ease;
}
.global-feedback.has-message {
  opacity: 1;
  transform: translate(-50%, 0);
}
.global-feedback .form-notice {
  box-shadow: 0 18px 60px rgba(40, 32, 26, .20);
  border-radius: 1.35rem;
  pointer-events: auto;
}
.candle-wall > [hx-swap-oob] { display: contents; }
.candle-wall > .flame,
.candle-wall > p:not(#candles-empty),
.candle-wall > small {
  display: none !important;
}
@media (max-width: 520px) {
  .global-feedback {
    bottom: .85rem;
    width: calc(100vw - 2rem);
  }
}







/* ==========================================================
   Commercial header
   ========================================================== */

.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  width: 100%;
  border-bottom: 1px solid rgba(52, 47, 42, 0.1);
  background: rgba(250, 247, 241, 0.92);
  box-shadow: 0 8px 34px rgba(52, 47, 42, 0.04);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.site-header__inner {
  width: min(1180px, calc(100% - 40px));
  min-height: 78px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 30px;
}

.site-logo {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--ink);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-decoration: none;
}

.site-logo__mark {
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--accent-soft);
  color: var(--accent);
  font-family: Inter, system-ui, sans-serif;
  font-size: 0.85rem;
  letter-spacing: 0;
}

.site-nav {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 24px;
}

.site-nav > a {
  position: relative;
  color: #5f554d;
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  transition:
    color 160ms ease,
    transform 160ms ease;
}

.site-nav > a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -9px;
  height: 1px;
  background: var(--accent);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 160ms ease;
}

.site-nav > a:hover {
  color: var(--ink);
}

.site-nav > a:hover::after {
  transform: scaleX(1);
}

.site-nav > .site-nav__access {
  min-height: 42px;
  padding: 0 17px;
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.74);
}

.site-nav > .site-nav__access::after {
  display: none;
}

.site-nav > .site-nav__access:hover {
  background: #fff;
  box-shadow: 0 10px 28px rgba(52, 47, 42, 0.08);
  transform: translateY(-1px);
}

.locale-switcher {
  position: relative;
  display: flex;
  align-items: center;
  flex: 0 0 auto;
}

.locale-switcher__icon {
  position: absolute;
  left: 13px;
  z-index: 1;
  font-size: 0.9rem;
  pointer-events: none;
}

.locale-switcher-select {
  min-width: 142px;
  height: 42px;
  padding: 0 38px 0 38px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background-color: rgba(255, 255, 255, 0.78);
  color: var(--ink);
  font-family: Inter, system-ui, sans-serif;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  outline: none;
  appearance: auto;
  transition:
    border-color 160ms ease,
    background-color 160ms ease,
    box-shadow 160ms ease;
}

.locale-switcher-select:hover,
.locale-switcher-select:focus {
  border-color: color-mix(in srgb, var(--accent) 50%, var(--line));
  background: #fff;
  box-shadow: 0 0 0 4px
    color-mix(in srgb, var(--accent-soft) 55%, transparent);
}

.site-menu-toggle {
  display: none;
  width: 43px;
  height: 43px;
  margin-left: auto;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.82);
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 4px;
  cursor: pointer;
}

.site-menu-toggle span {
  width: 17px;
  height: 1.5px;
  border-radius: 999px;
  background: var(--ink);
  transition:
    transform 180ms ease,
    opacity 180ms ease;
}

.site-menu-toggle[aria-expanded="true"] span:nth-child(1) {
  transform: translateY(5.5px) rotate(45deg);
}

.site-menu-toggle[aria-expanded="true"] span:nth-child(2) {
  opacity: 0;
}

.site-menu-toggle[aria-expanded="true"] span:nth-child(3) {
  transform: translateY(-5.5px) rotate(-45deg);
}

@media (max-width: 980px) {
  .site-header__inner {
    min-height: 70px;
  }

  .site-menu-toggle {
    display: flex;
  }

  .site-nav {
    position: absolute;
    top: calc(100% + 10px);
    left: 20px;
    right: 20px;
    display: none;
    margin-left: 0;
    padding: 14px;
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
    border: 1px solid var(--line);
    border-radius: 24px;
    background: rgba(255, 253, 249, 0.98);
    box-shadow: 0 24px 70px rgba(52, 47, 42, 0.15);
    backdrop-filter: blur(18px);
  }

  .site-nav.is-open {
    display: flex;
  }

  .site-nav > a {
    padding: 13px 14px;
    border-radius: 13px;
  }

  .site-nav > a::after {
    display: none;
  }

  .site-nav > a:hover {
    background: var(--accent-soft);
  }

  .site-nav > .site-nav__access {
    min-height: auto;
    padding: 13px 14px;
    justify-content: flex-start;
    border: 0;
    background: transparent;
  }

  .locale-switcher {
    margin-top: 7px;
  }

  .locale-switcher-select {
    width: 100%;
  }
}

@media (max-width: 560px) {
  .site-header__inner {
    width: calc(100% - 28px);
  }

  .site-logo {
    font-size: 1.08rem;
    letter-spacing: 0.12em;
  }

  .site-logo__mark {
    width: 30px;
    height: 30px;
  }

  .site-nav {
    left: 14px;
    right: 14px;
  }
}



/* ==========================================================
   Owner memorial navigation
   ========================================================== */

.owner-memorial-nav {
  position: sticky;
  top: 0;
  z-index: 90;
  width: 100%;
  border-bottom: 1px solid rgba(52, 47, 42, 0.1);
  background: rgba(250, 247, 241, 0.94);
  box-shadow: 0 8px 30px rgba(52, 47, 42, 0.05);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.owner-memorial-nav-inner {
  width: min(1180px, calc(100% - 40px));
  min-height: 82px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 28px;
}

.owner-memorial-nav-title {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  min-width: 170px;
}

.owner-memorial-nav-title span {
  color: var(--muted);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.owner-memorial-nav-title strong {
  margin-top: 2px;
  color: var(--ink);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 1.45rem;
  line-height: 1.1;
}

.owner-memorial-nav-links {
  margin-left: auto;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.owner-memorial-nav-links a {
  min-height: 40px;
  padding: 0 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: 999px;
  color: #5f554d;
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  transition:
    color 160ms ease,
    background-color 160ms ease,
    border-color 160ms ease,
    box-shadow 160ms ease,
    transform 160ms ease;
}

.owner-memorial-nav-links a:hover {
  color: var(--ink);
  border-color: var(--line);
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 8px 22px rgba(52, 47, 42, 0.06);
  transform: translateY(-1px);
}

.owner-memorial-nav-links a:last-child {
  border-color: var(--line);
  background: var(--ink);
  color: #fff;
}

.owner-memorial-nav-links a:last-child:hover {
  filter: brightness(1.08);
}

/* Estado activo opcional */
.owner-memorial-nav-links a.is-active,
.owner-memorial-nav-links a[aria-current="page"] {
  border-color: color-mix(in srgb, var(--accent) 28%, var(--line));
  background: var(--accent-soft);
  color: var(--ink);
}

/* Tablet */
@media (max-width: 1050px) {
  .owner-memorial-nav-inner {
    align-items: flex-start;
    flex-direction: column;
    gap: 12px;
    padding: 14px 0;
  }

  .owner-memorial-nav-title {
    min-width: 0;
  }

  .owner-memorial-nav-links {
    width: 100%;
    margin-left: 0;
    justify-content: flex-start;
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 4px;
    scrollbar-width: thin;
    scrollbar-color: var(--accent-soft) transparent;
  }

  .owner-memorial-nav-links::-webkit-scrollbar {
    height: 6px;
  }

  .owner-memorial-nav-links::-webkit-scrollbar-thumb {
    background: var(--accent-soft);
    border-radius: 999px;
  }

  .owner-memorial-nav-links a {
    flex: 0 0 auto;
  }
}

/* Móvil */
@media (max-width: 560px) {
  .owner-memorial-nav-inner {
    width: calc(100% - 28px);
  }

  .owner-memorial-nav-title strong {
    font-size: 1.25rem;
  }

  .owner-memorial-nav-links a {
    min-height: 38px;
    padding: 0 12px;
    font-size: 0.78rem;
  }
}