:root{
  --ht-navy:#263746;
  --ht-blue:#6f92b5;
  --ht-gold:#efdca6;
  --ht-cream:#f8f4ec;
  --ht-soft-blue:#eef5fa;
  --ht-text:#2c2c2c;
}
body{
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--ht-text);
  background:#fff;
}
.navbar-brand{font-weight:800;color:var(--ht-navy)!important}
.brand-mark{
  width:38px;
  height:38px;
  border-radius:50%;
  background:linear-gradient(135deg,var(--ht-gold),#f2dfaa);
  color:var(--ht-navy);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-right:.55rem;
}
.hero{
  background:linear-gradient(90deg,rgba(38,55,70,.92),rgba(38,55,70,.72)),url("https://images.unsplash.com/photo-1500530855697-b586d89ba3ee?auto=format&fit=crop&w=1800&q=80") center/cover;
  color:#fff;
  padding:7rem 0;
}
.page-hero{background:var(--ht-cream);padding:4rem 0}
.hero-badge{
  display:inline-flex;
  gap:.45rem;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.22);
  color:#fff;
  padding:.45rem .8rem;
  border-radius:999px;
  font-size:.92rem;
  margin-bottom:1rem;
}
.btn-gold{background:var(--ht-gold);border-color:var(--ht-gold);color:#1f1f1f;font-weight:700}
.btn-gold:hover{background:#e4cf8f;border-color:#e4cf8f;color:#111}
.section-title{color:var(--ht-navy);font-weight:800}
.bg-cream{background:var(--ht-cream)}
.bg-soft-blue{background:var(--ht-soft-blue)}
.tribute-card{
  border:0;
  border-radius:1.25rem;
  overflow:hidden;
  box-shadow:0 10px 28px rgba(38,55,70,.1);
  height:100%;
}
.tribute-photo{height:215px;width:100%;object-fit:cover;background:#e9ecef}
.type-badge{background:var(--ht-soft-blue);color:var(--ht-navy);border:1px solid rgba(111,146,181,.25);font-weight:600}
.featured-badge{background:var(--ht-gold);color:#1f1f1f;font-weight:700}
.icon-circle{
  width:58px;
  height:58px;
  border-radius:50%;
  background:var(--ht-soft-blue);
  color:var(--ht-navy);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:1.6rem;
  margin-bottom:1rem;
}
.pricing-card{
  border-radius:1.25rem;
  border:1px solid rgba(38,55,70,.1);
  height:100%;
  box-shadow:0 8px 24px rgba(38,55,70,.06);
}
.pricing-card.featured{border:2px solid var(--ht-gold);transform:translateY(-4px)}
.footer{background:var(--ht-navy);color:rgba(255,255,255,.75)}
.footer a{color:#fff;text-decoration:none}
.admin-wrapper{display:flex;min-height:calc(100vh - 57px)}
.admin-sidebar{width:240px;background:#fff;border-right:1px solid #e9ecef;padding:20px 12px;position:fixed;top:57px;bottom:0;left:0}
.admin-sidebar .nav-link{color:#333;border-radius:8px;padding:10px 14px;margin-bottom:4px}
.admin-sidebar .nav-link:hover{background:#f5f6f8}
.admin-content{margin-left:240px;padding:28px;width:100%;background:#f5f6f8;min-height:calc(100vh - 57px)}
.stat-card{border:0;border-radius:16px;box-shadow:0 4px 16px rgba(0,0,0,.06)}






50%{transform:translateX(-52%) scale(1.08) rotate(2deg);opacity:1}
  100%{transform:translateX(-48%) scale(.95) rotate(-1deg);opacity:.85}
}
@media(max-width:767px){
  .hero{padding:5rem 0}
  .pricing-card.featured{transform:none}
  .admin-sidebar{position:static;width:100%;border-right:0;border-bottom:1px solid #e9ecef}
  .admin-content{margin-left:0;padding:18px}
  .admin-wrapper{display:block}
}


:root{--ht-gold:#efdca6;--ht-gold-dark:#e4cf8f}
.btn-gold{background:var(--ht-gold)!important;border-color:var(--ht-gold)!important;color:#1f1f1f!important;font-weight:700}
.btn-gold:hover{background:var(--ht-gold-dark)!important;border-color:var(--ht-gold-dark)!important;color:#111!important}
.featured-badge{background:var(--ht-gold)!important;color:#1f1f1f!important;font-weight:700}
.ht-icon{width:26px;height:26px;opacity:.9;margin-right:.45rem;vertical-align:-6px}
.clean-hero{background:linear-gradient(90deg,rgba(38,55,70,.92),rgba(38,55,70,.70)),url("https://images.unsplash.com/photo-1500530855697-b586d89ba3ee?auto=format&fit=crop&w=1800&q=80") center/cover;color:#fff;padding:7.5rem 0}
.soft-panel{background:#fff;border:1px solid rgba(38,55,70,.08);border-radius:1.5rem;box-shadow:0 10px 28px rgba(38,55,70,.07)}
.memory-line{height:1px;background:linear-gradient(90deg,transparent,rgba(217,188,115,.8),transparent)}
.clean-obit-photo{width:185px;height:235px;object-fit:cover;border-radius:1.25rem}
.side-card{border:0;border-radius:1.25rem;box-shadow:0 8px 24px rgba(38,55,70,.08)}
.story-copy{font-size:1.07rem;line-height:1.85}



.memory-quote{
  width:34px;
  height:34px;
  border-radius:50%;
  background:var(--ht-soft-blue);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-right:.6rem;
  flex-shrink:0;
}


}


.memory-section{
  margin-top:2rem;
  padding:1.5rem;
  background:#faf8f3;
  border-radius:1.5rem;
  border:1px solid rgba(38,55,70,.08);
}
.memory-form-card{
  background:#fff;
  border:1px solid rgba(38,55,70,.10);
  border-radius:1.25rem;
  padding:1.35rem;
  box-shadow:0 10px 26px rgba(38,55,70,.06);
  margin-bottom:1.5rem;
}
.memory-form-card .form-control{
  border-radius:.85rem;
  border-color:rgba(38,55,70,.16);
}
.memory-form-card .form-control:focus{
  border-color:var(--ht-gold);
  box-shadow:0 0 0 .2rem rgba(239,220,166,.35);
}
.memory-form-heading{
  display:flex;
  align-items:center;
  gap:.65rem;
  margin-bottom:.35rem;
}
.memory-form-heading img{
  width:28px;
  height:28px;
}
.memory-list{
  display:grid;
  gap:1rem;
  margin-top:1.25rem;
}
.memory-card{
  position:relative;
  background:linear-gradient(180deg,#ffffff,#fffdf8);
  border:1px solid rgba(38,55,70,.10);
  border-radius:1.25rem;
  padding:1.25rem;
  box-shadow:0 10px 26px rgba(38,55,70,.075);
  transition:transform .15s ease, box-shadow .15s ease;
}
.memory-card:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 30px rgba(38,55,70,.10);
}
.memory-card::before{
  content:"";
  position:absolute;
  top:0;
  left:1.25rem;
  right:1.25rem;
  height:3px;
  background:var(--ht-gold);
  border-radius:0 0 99px 99px;
}
.memory-card-header{
  display:flex;
  align-items:center;
  gap:.75rem;
  margin-bottom:.85rem;
}
.memory-avatar{
  width:42px;
  height:42px;
  border-radius:50%;
  background:var(--ht-soft-blue);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
.memory-avatar img{
  width:22px;
  height:22px;
}
.memory-name{
  font-weight:800;
  color:var(--ht-navy);
  line-height:1.2;
}
.memory-date{
  color:#7a7f86;
  font-size:.875rem;
}
.memory-message{
  color:#333;
  line-height:1.75;
  margin:0;
  padding-left:3.4rem;
}
@media(max-width:575px){
  .memory-section{padding:1rem}
  .memory-message{padding-left:0}
}

/* =========================================================
   HeavenlyTributes mobile polish patch - safe CSS only
   Added after reverted baseline; no CFM structure changes.
   ========================================================= */

@media (max-width: 767px) {
  /* Tighter inner-page hero spacing, without touching the homepage hero */
  .page-hero {
    padding-top: 2.25rem !important;
    padding-bottom: 2.25rem !important;
  }
  .page-hero h1 {
    font-size: 2.15rem !important;
    line-height: 1.12 !important;
    margin-bottom: .7rem !important;
  }
  .page-hero .lead,
  .page-hero p {
    font-size: 1.1rem !important;
    line-height: 1.45 !important;
    margin-bottom: 0 !important;
  }

  /* Give inner content a tighter mobile start */
  main.py-5 {
    padding-top: 2.2rem !important;
    padding-bottom: 2.75rem !important;
  }

  /* Browse page: tighter search-to-results spacing */
  main form.row.g-3.mb-4 {
    margin-bottom: 1rem !important;
  }
  main form.row.g-3.mb-4 + .row {
    margin-top: .25rem !important;
  }

  /* Obituary breadcrumb strip: reduce extra vertical gap */
  header.py-4.bg-cream {
    padding-top: 1.25rem !important;
    padding-bottom: 1.25rem !important;
  }
  .breadcrumb {
    margin-bottom: 0 !important;
    font-size: 1rem;
  }

  /* Obituary intro image: full-width on mobile, but height-controlled */
  .clean-obit-photo {
    width: 100% !important;
    height: 320px !important;
    max-height: 320px !important;
    object-fit: cover !important;
    border-radius: 1.15rem !important;
    display: block !important;
  }

  /* Obituary intro spacing */
  section.border-bottom.pb-4.mb-4 {
    padding-bottom: 1.4rem !important;
    margin-bottom: 1.6rem !important;
  }
  section.border-bottom.pb-4.mb-4 .display-6 {
    font-size: 2rem !important;
    line-height: 1.12 !important;
  }

  /* Memories & Messages: tighter, cleaner mobile spacing */
  .memory-section {
    margin-top: 1.25rem !important;
    padding: 1rem !important;
  }
  .memory-form-card {
    padding: 1rem !important;
    margin-bottom: 1.25rem !important;
  }
  .memory-card {
    overflow: hidden !important;
    padding: 1.15rem !important;
  }
  .memory-card::before {
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    height: 4px !important;
    border-radius: 0 !important;
  }
  .memory-card-header {
    align-items: center !important;
    gap: .75rem !important;
  }
  .memory-message {
    padding-left: 0 !important;
    line-height: 1.6 !important;
  }

  /* Sidebar cards on obituary detail */
  .side-card {
    border-radius: 1.15rem !important;
  }
}

@media (min-width: 768px) {
  /* Keep desktop obituary image controlled but not cropped unless very tall */
  .clean-obit-photo {
    max-height: 420px;
    object-fit: cover;
  }
}
