html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
  color: #24313a;
  background: #f7f5ef;
}

a { color:#315c72; text-underline-offset:.18em; }
a:hover { color:#173f55; }
.eyebrow { margin:0 0 .35rem; color:#8b6f3d; font-size:.78rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin-bottom:1.25rem; }
.section-heading h2 { margin:0; }

.memorial-nav { background: #1f3442; }
.navbar-brand { font-family: Georgia, serif; letter-spacing: .04em; }
.staff-navigation-menu { min-width: 15rem; }
.staff-navigation-menu .dropdown-header { color: #d8c99f; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.memorial-nav .nav-link:focus-visible, .memorial-nav .dropdown-item:focus-visible { outline: 2px solid #fff; outline-offset: -2px; }
.memorial-hero { max-width: 760px; padding: 5rem 1rem; }
.memorial-hero h1 { color: #1f3442; font-family: Georgia, serif; font-size: clamp(2.5rem, 7vw, 4.5rem); }
.tracking { color: #8b6f3d; letter-spacing: .18em; }
.community-notice { margin: 2rem auto 0; max-width: 650px; padding: 1rem; border-left: 3px solid #8b6f3d; background: #fff; }
.account-card { max-width: 520px; margin: 3rem auto; padding: 2rem; background: #fff; border-top: 4px solid #8b6f3d; box-shadow: 0 .25rem 1rem rgba(31, 52, 66, .08); }
.account-card h1 { color: #1f3442; font-family: Georgia, serif; }
.account-links { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem; margin-top: 1.5rem; }
.page-heading { margin: 2.5rem 0; }
.page-heading h1, .memorial-form h1, .memorial-page h1, .memorial-page h2 { color: #1f3442; font-family: Georgia, serif; }
.memorial-form { max-width: 850px; margin: 2.5rem auto; padding: 2rem; background: #fff; }
.memorial-form fieldset { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid #d8d2c3; }
.memorial-form legend { color: #52636d; font-family: Georgia, serif; font-size: 1.3rem; }
.memorial-directory-heading { margin-bottom:1.5rem; }
.memorial-search { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.75rem; max-width:760px; margin:0 0 2rem; }
.memorial-grid { display:grid; grid-template-columns:1fr; gap:1.35rem; }
.memorial-card, .dashboard-item { background:#fff; border:1px solid #ded8ca; box-shadow:0 .35rem 1.1rem rgba(31,52,66,.06); }
.memorial-card { min-width:0; overflow:hidden; border-radius:.45rem; transition:transform .16s ease,box-shadow .16s ease; }
.memorial-card:focus-within { outline:3px solid #258cfb; outline-offset:3px; }
.memorial-card:hover { transform:translateY(-2px); box-shadow:0 .6rem 1.5rem rgba(31,52,66,.11); }
.memorial-card-link { display:flex; min-height:100%; flex-direction:column; color:inherit; text-decoration:none; }
.memorial-card-link:focus { outline:0; }
.memorial-card-photo { position:relative; display:grid; place-items:center; width:100%; aspect-ratio:4/3; overflow:hidden; background:#ece9df; }
.memorial-card-photo img,.card-photo-placeholder { display:block; width:100%; height:100%; object-fit:contain; object-position:center; }
.memorial-card-photo[class*="memorial-frame-"] { width:auto; margin:.75rem; aspect-ratio:4/3; }
.memorial-card-photo.memorial-frame-simple { padding:4px; }
.memorial-card-photo.memorial-frame-classic,.memorial-card-photo.memorial-frame-honor { padding:7px; border-width:4px; }
.memorial-card-photo.memorial-frame-gold { padding:8px; border-width:5px; }
.memorial-card-photo.memorial-frame-legacy { padding:9px; border-width:6px; }
.card-photo-placeholder { display:grid; place-items:center; color:#68747b; background:linear-gradient(145deg,#e8e4d9,#f8f7f2); font-family:Georgia,serif; letter-spacing:.08em; }
.memorial-card-body { display:flex; flex:1; flex-direction:column; padding:1.2rem; }
.card-preferred-name { margin:-.15rem 0 .55rem; color:#52636d; font-family:Georgia,serif; }
.card-service { display:flex; flex-wrap:wrap; gap:.25rem .7rem; margin-bottom:.45rem; }
.card-service,.card-hometown,.tribute-count { color:#66737a; font-size:.9rem; }
.card-hometown { margin-bottom:.75rem; }
.card-summary { display:-webkit-box; overflow:hidden; margin-bottom:1rem; line-height:1.55; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.tribute-count { margin:auto 0 0; padding-top:.8rem; border-top:1px solid #ebe7dc; font-weight:700; }
.memorial-pagination { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:2rem; }
.dashboard-item { padding:1.25rem; border-left:3px solid #8b6f3d; }
.memorial-card h2 { font-family: Georgia, serif; font-size: 1.35rem; }
.dashboard-list { display: grid; gap: 1rem; }
.dashboard-item { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; align-items: center; }
.dashboard-item h2 { margin: 0; font-family: Georgia, serif; font-size: 1.25rem; }
.dashboard-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.status-badge { color: #52636d; font-size: .9rem; }
.preview-banner { display:flex; align-items:center; justify-content:space-between; gap:1rem; max-width:1120px; margin:1.5rem auto -1rem; padding:1rem; color:#493b20; background:#fff8df; border:1px solid #dfcf9a; border-left:4px solid #8b6f3d; border-radius:.35rem; }
.preview-banner p { margin:.25rem 0 0; }
.memorial-management { display:flex; align-items:center; justify-content:space-between; gap:1rem; max-width:1120px; margin:1.5rem auto -1rem; padding:.75rem 1rem; background:#eef1f1; border:1px solid #d4dcdf; border-radius:.35rem; }
.memorial-management-actions { display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; }.memorial-management-actions form{margin:0}
.memorial-status-message { max-width:1120px; margin:1.5rem auto 0; }
.edit-next-steps { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:1.5rem; padding:1rem; background:#eef1f1; border:1px solid #d4dcdf; border-radius:.35rem; }
.edit-next-steps p { margin:.2rem 0 0; color:#52636d; font-size:.9rem; }
.memorial-page { max-width:1120px; margin:2.5rem auto; padding:clamp(1.25rem,4vw,3.75rem); background:#fff; border-top:4px solid #8b6f3d; box-shadow:0 .5rem 2rem rgba(31,52,66,.08); }
.memorial-introduction { display:grid; grid-template-columns:minmax(280px, .9fr) minmax(320px, 1.1fr); gap:clamp(2rem,5vw,5rem); align-items:center; }
.memorial-portrait { display:grid; place-items:center; min-width:0; }.memorial-identity{text-align:left}.memorial-identity h1{font-size:clamp(2.25rem,5vw,4rem);line-height:1.05}
.memorial-photo-placeholder { display:grid; place-items:center; align-content:center; gap:.75rem; width:min(100%,480px); aspect-ratio:4/3; margin:0 auto; color:#68747b; background:linear-gradient(145deg,#ece9df,#f8f7f2); border:1px solid #d8d2c3; }
.memorial-photo-action { margin-top:.75rem; }
.memorial-photo, .current-photo img { display:block; width:auto; height:auto; max-width:min(100%,720px); max-height:720px; margin:0 auto 2rem; object-fit:contain; }
.current-photo { text-align: center; }
.preferred-name, .lifespan { color: #52636d; }
.memorial-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem 1.5rem; margin:2rem 0 0; }
.memorial-facts div { padding:.75rem 0; border-top:1px solid #d8d2c3; }
.memorial-facts dt { color: #6b7479; font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; }
.memorial-facts dd{margin:0;color:#24313a}.memorial-biography { max-width:74ch; margin:3.5rem auto 0; text-align:left; }.memorial-biography h2{text-align:center;margin-bottom:1.25rem}
.plain-text { white-space: pre-line; line-height: 1.75; }
.community-disclosure { margin-top: 2.5rem; padding: 1rem; color: #52636d; background: #f7f5ef; border-left: 3px solid #8b6f3d; text-align: left; }
.empty-state { padding: 2rem; background: #fff; text-align: center; }
.tribute-area { max-width:1120px; margin:2rem auto; padding:clamp(1.25rem,3vw,2.5rem); background:#fff; border-top:3px solid #d8c99f; box-shadow:0 .35rem 1.25rem rgba(31,52,66,.05); }
.tribute-area h2 { color:#1f3442; font-family:Georgia,serif; }
.tribute-list,.catalog-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1rem; }
.tribute-symbol,.catalog-item { display:grid; gap:.65rem; padding:1.15rem; border:1px solid #d8d2c3; border-radius:.35rem; background:#fdfcf9; }
.tribute-symbol { position:relative; align-content:start; min-height:100%; padding:1.35rem; border-color:#d8caa8; background:linear-gradient(145deg,#fff 0%,#fbf8ef 100%); box-shadow:inset 0 0 0 3px #fff,0 .3rem .9rem rgba(31,52,66,.06); }
.tribute-symbol::after { content:""; position:absolute; inset:.45rem; pointer-events:none; border:1px solid rgba(139,111,61,.16); }
.tribute-symbol-heading { position:relative; z-index:1; display:flex; align-items:center; gap:1rem; padding-bottom:.8rem; border-bottom:1px solid #e4dcc8; }
.tribute-symbol .decoration-icon { width:4.4rem; height:4.4rem; font-size:2.8rem; background:radial-gradient(circle,#fff 0 45%,#eee6d2 100%); box-shadow:0 0 0 1px #d9cba8; }
.tribute-symbol h3 { margin:0; color:#1f3442; font-family:Georgia,serif; font-size:1.2rem; }
.tribute-symbol blockquote { position:relative; z-index:1; margin:.25rem 0 0; padding:.75rem .9rem; color:#485b66; font-size:.92rem; font-style:italic; line-height:1.55; border-left:3px solid #b89b59; background:rgba(255,255,255,.8); }
.decoration-icon { display:block; flex:0 0 auto; width:3.5rem; height:3.5rem; padding:.55rem; overflow:visible; color:#8b6f3d; background:#f4f0e5; border-radius:50%; }
.decoration-symbol-flame,.decoration-symbol-gold-star{color:#a57922}.decoration-symbol-flag,.decoration-symbol-ribbon{color:#31566b}.decoration-symbol-cross,.decoration-symbol-star-david,.decoration-symbol-crescent{color:#536774}.decoration-symbol-dove,.decoration-symbol-praying-hands{color:#6b7880}.decoration-symbol-wreath,.decoration-symbol-wreath-premium,.decoration-symbol-floral-spray,.decoration-symbol-bouquet{color:#68784d}
.photo-frame { position:relative; width:fit-content; max-width:100%; margin:0 auto; padding:0; }.photo-frame .memorial-photo{max-width:100%;margin:0}.frame-ornament{position:absolute;inset:0;z-index:1;pointer-events:none}
.memorial-frame-simple{padding:7px;border:2px solid #59666c;background:#e8ecec;box-shadow:0 3px 10px #0002}.memorial-frame-simple .frame-ornament{inset:3px;border:1px solid #aab3b5}
.memorial-frame-classic{padding:13px;border:6px ridge #6f604d;background:linear-gradient(135deg,#b5a487,#eee8dc,#8d7a60);box-shadow:inset 0 0 0 3px #f8f4e9,0 5px 15px #0003}.memorial-frame-classic .frame-ornament{inset:5px;border:2px solid #5d503f}
.memorial-frame-honor{padding:15px;border:5px double #243f50;background:linear-gradient(135deg,#1f3442 0 16%,#d9d3c3 16% 84%,#71383a 84%);box-shadow:0 0 0 3px #bda66f,0 7px 20px #0003}.memorial-frame-honor .frame-ornament{inset:6px;border:2px solid #bda66f}
.memorial-frame-gold{padding:18px;border:8px double #8c671e;background:linear-gradient(135deg,#725116,#d6b85d 28%,#fff0ae 50%,#b6882d 72%,#6f4c12);box-shadow:inset 0 0 0 4px #fff4c7,0 8px 24px #0004}.memorial-frame-gold .frame-ornament{inset:7px;border:3px ridge #f2dc8a}
.memorial-frame-legacy{padding:22px;border:10px double #352b20;background:linear-gradient(135deg,#1f3442 0 13%,#aa8b4f 13% 20%,#e9e1cf 20% 80%,#aa8b4f 80% 87%,#1f3442 87%);box-shadow:inset 0 0 0 5px #d9c58e,0 10px 28px #0005}.memorial-frame-legacy .frame-ornament{inset:8px;border:4px double #4b3a24}
.frame-picker fieldset { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:1rem; }
.frame-choice { display:grid; gap:.6rem; padding:1rem; border:1px solid #d8d2c3; border-radius:.35rem; background:#fff; cursor:pointer; }
.frame-choice:has(input:checked) { outline:3px solid #315c72; outline-offset:2px; }
.frame-preview { display:grid; place-items:center; min-height:110px; color:#52636d; background:#eeeae0; }
.frame-preview[class*="memorial-frame-"],.frame-gift-preview[class*="memorial-frame-"]{width:100%;min-height:110px}.frame-gift-preview{display:grid;place-items:center}.frame-gift-preview>span{display:block;width:72%;aspect-ratio:4/3;background:#e4e6e2;border:1px solid #b6b9b5}
.no-frame-preview { border:1px dashed #9b9588; }
.tribute-chooser{margin-top:2rem;padding-top:1.25rem;border-top:1px solid #d8d2c3}.tribute-chooser>summary{width:fit-content;color:#315c72;font-weight:700;cursor:pointer}.tribute-chooser>summary:focus-visible{outline:3px solid #258cfb;outline-offset:3px}.tribute-catalog-intro{margin-top:1.25rem}.catalog-section{margin-top:1.75rem}.catalog-section h3{color:#1f3442;font-family:Georgia,serif;font-size:1.3rem}.frame-gift-catalog{padding-top:1.25rem;border-top:1px solid #d8d2c3}.frame-gift-item{align-content:start;background:#f4f1e8}.frame-gift-explanation{margin:0;color:#52636d;line-height:1.45}.frame-gift-status{width:fit-content;padding:.2rem .55rem;color:#294c5f;background:#e5eef1;border-radius:1rem;font-size:.8rem;font-weight:700}.frame-gift-action{display:grid}.tribute-result{display:flex;align-items:center;justify-content:center;gap:.5rem;max-width:1120px;margin:1.5rem auto}.memorial-secondary-actions{max-width:1120px;margin:2rem auto;color:#52636d}.memorial-secondary-actions aside{padding:1rem;border-left:3px solid #8b6f3d;background:#fff}.memorial-secondary-actions .report-link{text-align:right;font-size:.9rem}
.home-actions { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin:0 auto 4rem; max-width:960px; }
.home-actions>a,.home-actions>div { display:grid; gap:.35rem; padding:1.4rem; color:inherit; text-decoration:none; background:#fff; border-top:3px solid #8b6f3d; }
.home-actions strong { color:#1f3442; font-family:Georgia,serif; font-size:1.15rem; }
.recent-memorials { margin:2rem 0 4rem; }
.tribute-total { color:#66737a; white-space:nowrap; }
.policy-page{max-width:760px;margin:2.5rem auto;padding:clamp(1.25rem,4vw,3rem);background:#fff;box-shadow:0 .35rem 1.5rem rgba(31,52,66,.06)}.policy-page header{padding-bottom:1rem;border-bottom:1px solid #d8d2c3}.policy-page section{margin-top:2rem}.policy-page h1,.policy-page h2{color:#1f3442;font-family:Georgia,serif}.policy-page h2{font-size:1.35rem}.policy-page p{line-height:1.72}.footer-links{display:flex;flex-wrap:wrap;gap:.25rem .5rem}.footer-disclaimer{max-width:900px;margin:.45rem 0;font-size:.78rem;line-height:1.4}
@media(min-width:768px){.memorial-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1200px){.memorial-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:991px){.memorial-introduction{grid-template-columns:1fr}.memorial-identity{text-align:center}.memorial-facts{max-width:680px;margin:2rem auto 0;text-align:left}}
@media(max-width:767px){.home-actions{grid-template-columns:1fr}.section-heading{align-items:start;flex-direction:column}.preview-banner,.memorial-management,.edit-next-steps{align-items:flex-start;flex-direction:column;margin:1rem 0}.memorial-page{margin:1rem -.5rem;padding:1.25rem}.memorial-introduction{gap:1.75rem}.memorial-facts{grid-template-columns:1fr 1fr}.catalog-grid,.tribute-list{grid-template-columns:1fr}.photo-frame[class*="memorial-frame-"]{padding:7px}.photo-frame.memorial-frame-legacy{padding:10px}.tribute-result{align-items:flex-start;flex-direction:column}.navbar-nav{padding-top:.75rem}}
@media(max-width:520px){.memorial-search{grid-template-columns:1fr}.memorial-search .btn{width:100%}}
@media(max-width:420px){.memorial-facts{grid-template-columns:1fr}.memorial-management-actions{display:grid;width:100%;grid-template-columns:1fr 1fr}.memorial-management-actions .btn{width:100%}}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
  text-align: start;
}
