@keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.7}}.obituaries-wrap{background-color:#f8f7f5;padding:3em 0;min-height:60vh;z-index:2;position:relative}.obituaries-wrap .inner{display:flex;gap:2em;max-width:1400px;margin:0 auto;padding:0 15px}@media only screen and (max-width:992px){.obituaries-wrap .inner{flex-direction:column}}.obituaries-sidebar{flex:0 0 280px;max-width:280px}@media only screen and (max-width:992px){.obituaries-sidebar{flex:1;max-width:100%}}.sidebar-filters{background:#fff;border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,0.08);padding:1.5em;position:sticky;top:100px;transition:box-shadow .3s ease}.sidebar-filters:hover{box-shadow:0 8px 24px rgba(0,0,0,0.12)}@media only screen and (max-width:992px){.sidebar-filters{position:static}}.filter-heading{color:#5a1300;font-size:1.25em;margin:0 0 1.25em;padding-bottom:.75em;border-bottom:2px solid #cc8a00}.filter-group{margin-bottom:1.25em}.filter-group label{display:block;font-weight:600;color:#333;margin-bottom:.5em;font-size:.9em}.filter-select,.filter-input{width:100%;padding:.75em 1em;border:1px solid #dcd6ce;border-radius:6px;font-size:.95em;background-color:#fff;transition:border-color .2s ease,box-shadow .2s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none}.filter-select:focus,.filter-input:focus{outline:none;border-color:#cc8a00;box-shadow:0 0 0 3px rgba(204,138,0,0.15)}.filter-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23333' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1em center;padding-right:2.5em;cursor:pointer}.search-input-wrap{position:relative;display:flex}.search-input-wrap .filter-input{border-radius:6px 0 0 6px;border-right:none}.search-btn{background-color:#cc8a00;border:1px solid #cc8a00;color:#fff;padding:0 1em;border-radius:0 6px 6px 0;cursor:pointer;transition:background-color .2s ease}.search-btn:hover{background-color:#ad7500}.filter-checkbox-group{padding:.1em 0 0}.checkbox-label{display:flex !important;align-items:center;cursor:pointer;user-select:none}.filter-checkbox{position:absolute;opacity:0;cursor:pointer}.filter-checkbox:checked+.checkbox-custom{background-color:#cc8a00;border-color:#cc8a00}.filter-checkbox:checked+.checkbox-custom::after{display:block}.filter-checkbox:focus+.checkbox-custom{box-shadow:0 0 0 3px rgba(204,138,0,0.15)}.checkbox-custom{width:22px;height:22px;border:2px solid #dcd6ce;border-radius:4px;margin-right:10px;position:relative;transition:all .2s ease;flex-shrink:0}.checkbox-custom::after{content:'';position:absolute;display:none;left:6px;top:2px;width:6px;height:12px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.checkbox-text{font-weight:400}.filter-actions{margin-top:1.5em;padding-top:1em;border-top:1px solid #eee}.filter-actions .btn-secondary{display:block;text-align:center;background:transparent;color:#555;padding:.6em 1.5em;border:1px solid #dcd6ce;border-radius:6px;cursor:pointer;font-weight:600;width:100%;transition:all .2s ease}.filter-actions .btn-secondary:hover{background-color:#f8f7f5;border-color:#c6bdb1;color:#555;padding:.6em 1.5em}.filter-actions .btn-secondary::before,.filter-actions .btn-secondary::after{display:none;content:none}.obituaries-content{flex:1;min-width:0;position:relative}.results-header{margin-bottom:1.5em;padding:1em 1.25em;background:#fff;border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,0.08);box-shadow:0 2px 8px rgba(0,0,0,0.06)}.results-header-top{display:flex;justify-content:space-between;align-items:center}@media only screen and (max-width:600px){.results-header-top{flex-direction:column;gap:1em;text-align:center}}.obituaries-search{margin-top:1em}.obituaries-search .search-input-wrap{max-width:70ch}.obituaries-search .filter-input{flex:1}.results-count{font-size:1em;color:#666}.results-count #results-count{font-weight:700;color:#5a1300}.results-sort{display:flex;align-items:center;gap:.75em}.results-sort label{font-size:.9em;color:#666}.active-filters{display:flex;flex-wrap:wrap;gap:.5em;margin-bottom:1.5em}.filter-pill{display:inline-flex;align-items:center;gap:.4em;padding:.5em .85em;background:#fff;color:#555;border:1px solid #dcd6ce;border-radius:6px;font-size:.85em;cursor:pointer;transition:all .2s ease}.filter-pill:hover{background-color:#f8f7f5;border-color:#c6bdb1}.filter-pill .pill-label{font-weight:600}.filter-pill .pill-value{font-weight:400}.filter-pill .pill-close{display:flex;align-items:center;justify-content:center;margin-left:.25em;font-size:.75em;opacity:.6;transition:opacity .2s ease}.filter-pill:hover .pill-close{opacity:1}.sort-select{padding:.5em 2em .5em .75em;border:1px solid #dcd6ce;border-radius:4px;font-size:.9em;background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23333' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1em center;background-position:right .5em center;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.obituaries-grid{display:grid;grid-template-columns:1;gap:1.5em;transition:opacity .3s ease}.obituaries-grid.loading{opacity:.5;pointer-events:none}@media only screen and (max-width:480px){.obituaries-grid{grid-template-columns:1fr}}.obituary-card{background:#fff;border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,0.08);border-radius:10px;overflow:hidden;transition:transform .3s ease,box-shadow .3s ease;animation:fadeInUp .4s ease forwards;opacity:0}.obituary-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(0,0,0,0.12)}.obituary-card:nth-child(1){animation-delay:.05s}.obituary-card:nth-child(2){animation-delay:.1s}.obituary-card:nth-child(3){animation-delay:.15s}.obituary-card:nth-child(4){animation-delay:.2s}.obituary-card:nth-child(5){animation-delay:.25s}.obituary-card:nth-child(6){animation-delay:.3s}.obituary-card:nth-child(7){animation-delay:.35s}.obituary-card:nth-child(8){animation-delay:.4s}.obituary-card:nth-child(9){animation-delay:.45s}.obituary-card:nth-child(10){animation-delay:.5s}.obituary-card:nth-child(11){animation-delay:.55s}.obituary-card:nth-child(12){animation-delay:.6s}.obituary-card.fade-out{opacity:0;transform:translateY(-10px)}.obituary-card.fade-in{animation:fadeInUp .4s ease forwards}.obituary-card-inner{padding:1.5em;display:flex;flex-direction:column;height:100%}.obituary-header{margin-bottom:.75em}.obituary-name{font-size:1.25em;margin:0 0 .25em;line-height:1.3}.obituary-name a{color:#5a1300;text-decoration:none;transition:color .2s ease}.obituary-name a:hover{color:#cc8a00}.obituary-badges{display:flex;flex-wrap:wrap;align-items:center;gap:.5em}.obituary-class{display:inline-block;background-color:#666;color:#fff;font-size:.75em;padding:.25em .75em;border-radius:20px;font-weight:600}.obituary-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.75em;margin-bottom:1em;font-size:.9em}.obituary-dates{color:#666}.obituary-badge{display:inline-flex;align-items:center;gap:.35em;background:#666;color:#fff;padding:.2em .6em;border-radius:4px;font-size:.8em;font-weight:600}.veteran-badge .badge-icon{font-size:1em}.obituary-excerpt{flex:1;margin-bottom:1em;max-width:70ch}.obituary-excerpt p{color:#555;font-size:.9em;line-height:1.6;margin:0}.obituary-details{overflow:hidden;max-height:0;opacity:0;margin-bottom:0;padding-top:0;border-top:1px solid transparent;transition:max-height .25s ease-out,opacity .15s ease-out .1s,margin .25s ease-out,padding .25s ease-out,border-color .25s ease-out}.obituary-details.expanded{max-height:500px;opacity:1;margin-bottom:1em;padding-top:1em;border-top:1px solid #eee;transition:max-height .3s ease-out,opacity .2s ease-out,margin .3s ease-out,padding .3s ease-out,border-color .3s ease-out}.detail-row{display:flex;margin-bottom:.5em;font-size:.9em}.detail-label{font-weight:600;color:#5a1300;min-width:100px;flex-shrink:0}.detail-value{color:#555}.obituary-actions{display:flex;gap:.75em;margin-top:auto;padding-top:1em;border-top:1px solid #f0f0f0;max-width:400px}.btn-toggle-details{flex:1;display:flex;align-items:center;justify-content:center;gap:.4em;background:transparent;border:none;padding:.6em 0;cursor:pointer;font-size:.8em;color:#555;transition:color .2s ease}.btn-toggle-details:hover{color:#cc8a00}.btn-toggle-details .btn-icon{transition:transform .3s ease;font-size:.75em}.btn-toggle-details.active .btn-icon{transform:rotate(180deg)}.btn-read-more{flex:1;display:inline-block;text-align:center;background-color:#cc8a00;color:#fff;padding:.6em 1em;border-radius:6px;text-decoration:none;font-size:.85em;font-weight:600;transition:background-color .2s ease}.btn-read-more:hover{background-color:#ad7500;color:#fff}.btn-placeholder{width:50%}.loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(248,247,245,0.9);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;z-index:100;border-radius:8px}.loading-overlay.active{opacity:1;visibility:visible}.loading-spinner{text-align:center}.loading-spinner img{width:60px;height:60px;animation:pulse 1.5s ease-in-out infinite}.obituaries-pagination{margin-top:2.5em;padding:1.5em;background:#fff;border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,0.08);box-shadow:0 2px 8px rgba(0,0,0,0.06)}.pagination-info{text-align:center;margin-bottom:1em;color:#666;font-size:.95em}.pagination-info span{font-weight:600;color:#5a1300}.pagination-controls{display:flex;align-items:center;justify-content:center;gap:.5em;flex-wrap:wrap}@media only screen and (max-width:600px){.pagination-controls{flex-direction:column;gap:1em}}.pagination-btn{display:inline-flex;align-items:center;gap:.5em;padding:.6em 1.25em;border:1px solid #dcd6ce;border-radius:6px;cursor:pointer;font-weight:600;transition:all .2s ease;background:#fff;font-size:.9em;color:#333}.pagination-btn:hover:not(:disabled){background-color:#cc8a00;border-color:#cc8a00;color:#fff}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.pagination-numbers{display:flex;gap:.25em}@media only screen and (max-width:600px){.pagination-numbers{order:-1}}.pagination-number{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border:1px solid #dcd6ce;background:#fff;border-radius:6px;cursor:pointer;font-size:.9em;color:#333;transition:all .2s ease}.pagination-number:hover{background-color:#f8f7f5;border-color:#cc8a00}.pagination-number.active{background-color:#cc8a00;border-color:#cc8a00;color:#fff;font-weight:600}.pagination-ellipsis{width:38px;height:38px;display:flex;align-items:center;justify-content:center;color:#999}.no-results{grid-column:1 / -1;text-align:center;padding:4em 2em;background:#fff;border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,0.08)}.no-results p{color:#666;font-size:1.1em;margin:0}.filter-select.has-value,.filter-input.has-value{border-color:#cc8a00;background-color:rgba(204,138,0,0.05)}.single-obituary-wrap{background-color:#f8f7f5;padding:3em 0;min-height:60vh}.single-obituary-wrap .inner{max-width:900px;margin:0 auto;padding:0 15px}.single-obituary{background:#fff;border-radius:12px;box-shadow:0 4px 20px rgba(0,0,0,0.1);animation:fadeInUp .5s ease forwards}.single-obituary-header{background:linear-gradient(135deg, #5a1300 0%, #7a2a10 100%);color:#fff;padding:2.5em 2em;text-align:center}@media only screen and (max-width:600px){.single-obituary-header{padding:1.75em 1.25em}}.single-obituary-name{font-size:2.25em;margin:0 0 .25em;font-weight:700;line-height:1.2;color:#e1a21b}@media only screen and (max-width:600px){.single-obituary-name{font-size:1.75em}}.single-obituary-nicknames{font-size:1.25em;font-style:italic;margin:0 0 1em;opacity:.9}@media only screen and (max-width:600px){.single-obituary-nicknames{font-size:1.1em}}.single-obituary-badges{display:flex;flex-wrap:wrap;justify-content:center;gap:.75em;margin-bottom:1.25em}.single-obituary-badges .obituary-badge{display:inline-flex;align-items:center;gap:.4em;padding:.4em 1em;border-radius:25px;font-size:.9em;font-weight:600}@media only screen and (max-width:600px){.single-obituary-badges .obituary-badge{font-size:.8em;padding:.35em .85em}}.single-obituary-badges .class-badge{background:rgba(255,255,255,0.2);color:#fff}.single-obituary-badges .veteran-badge{background:linear-gradient(135deg, #cc8a00 0%, #ad7500 100%);color:#fff}.single-obituary-badges .alumni-year-badge{background:linear-gradient(135deg, #006c73 0%, #005a60 100%);color:#fff}.single-obituary-dates{font-size:1.1em;opacity:.95}.single-obituary-dates .life-dates{display:block;margin-bottom:.25em}.single-obituary-dates .age{font-size:.9em;opacity:.8}.single-obituary-body{padding:2em;display:flex;gap:2em}@media only screen and (max-width:768px){.single-obituary-body{flex-direction:column;padding:1.5em}}@media only screen and (max-width:600px){.single-obituary-body{padding:1.25em}}.single-obituary-details{flex:0 0 220px;background:#f8f7f5;border-radius:8px;padding:1.5em;height:fit-content}@media only screen and (max-width:768px){.single-obituary-details{flex:1}}.single-obituary-details h3{font-size:1em;color:#5a1300;margin:0 0 1em;padding-bottom:.5em;border-bottom:2px solid #cc8a00;text-transform:uppercase;letter-spacing:.05em}.details-list{margin:0}.details-list .detail-item{margin-bottom:1.25em}.details-list .detail-item:last-child{margin-bottom:0}.details-list dt{font-size:.8em;color:#888;text-transform:uppercase;letter-spacing:.03em;margin-bottom:.25em;display:flex;align-items:center;gap:.5em}.details-list dt .fa{color:#cc8a00;width:14px;text-align:center}.details-list dd{margin:0;color:#333;font-size:.95em;padding-left:22px}.single-obituary-content{flex:1;min-width:0}.obituary-text{font-size:1.05em;line-height:1.8;color:#444}.obituary-text p{margin-bottom:1.25em}.obituary-text p:last-child{margin-bottom:0}.obituary-text.no-content{text-align:center;padding:2em;background:#f8f7f5;border-radius:8px;color:#666;font-style:italic}@media only screen and (max-width:600px){.obituary-text{font-size:1em}}.single-obituary-footer{padding:1.5em 2em;background:#f8f7f5;border-top:1px solid #eee}.btn-back{display:inline-flex;align-items:center;gap:.5em;padding:.6em 1.25em;border:1px solid #dcd6ce;border-radius:6px;cursor:pointer;font-weight:600;transition:all .2s ease;color:#5a1300;text-decoration:none;font-size:.95em;background:#fff}.btn-back:hover{background:#5a1300;border-color:#5a1300;color:#fff}.btn-back:hover .fa{transform:translateX(-3px)}.btn-back .fa{transition:transform .2s ease}