:root{--dk:#14110d;--dk2:#1e1913;--gold:#c99a3c;--gold2:#e2bf73;--cream:#f7f0e3;--rust:#a3542b;--sage:#8a9a7b;--ink:#2b2219}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font:300 17px/1.7 Lato,sans-serif;color:var(--ink);background:var(--cream)}
img{max-width:100%;display:block}a{color:var(--rust)}
h1,h2,h3{font-family:"Cormorant Garamond",serif;font-weight:600;line-height:1.15}
h2{font-size:clamp(2rem,5vw,3rem);text-align:center;margin:0 0 1.2rem;color:var(--dk)}
h3{font-size:1.4rem;margin:.2rem 0 .4rem}
.script{font-family:"Great Vibes",cursive;color:var(--gold);font-size:4.5rem;margin:0;line-height:1}
.script.small{font-size:2.2rem}
.wrap{max-width:1150px;margin:auto;padding:4.5rem 1.25rem}.narrow{max-width:760px}
.center{text-align:center}.sub{max-width:640px;margin:0 auto 2rem}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;z-index:99;background:#fff;padding:.5rem}
.nav{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:.6rem 1.25rem;background:rgba(20,17,13,.94);backdrop-filter:blur(6px)}
.logo{font-family:"Great Vibes",cursive;color:var(--gold2);font-size:2rem;text-decoration:none}
.nav nav{display:none}.nav nav a{color:var(--cream);text-decoration:none;margin-left:1.3rem;font-size:.9rem;letter-spacing:.08em;text-transform:uppercase}
.nav nav a:hover{color:var(--gold2)}
.menu-btn{background:none;border:0;color:var(--gold2);font-size:1.7rem;cursor:pointer}
.nav nav.open{display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:var(--dk);padding:1rem 1.25rem}
.nav nav.open a{margin:.5rem 0}
@media(min-width:900px){.nav nav{display:block}.menu-btn{display:none}}
.btn{display:inline-block;background:var(--gold);color:var(--dk);padding:.85rem 1.6rem;border:0;border-radius:2px;text-decoration:none;font:700 .85rem Lato;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;margin:.3rem}
.btn:hover{background:var(--gold2)}.btn.ghost{background:transparent;color:var(--gold2);border:1px solid var(--gold2)}
.btn-sm{border:1px solid var(--gold);padding:.35rem .8rem;color:var(--gold2)!important}
.hero{position:relative;min-height:92vh;display:flex;align-items:flex-end;background:var(--dk);overflow:hidden}
.hero picture,.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(20,17,13,.9),rgba(20,17,13,.15) 60%)}
.hero-text{position:relative;z-index:2;color:var(--cream);padding:2rem 1.25rem 4rem;max-width:760px}
.hero h1{font-size:clamp(2rem,6vw,3.6rem);margin:.2rem 0 .6rem}.lede{font-size:1.15rem;font-style:italic;font-family:"Cormorant Garamond",serif;font-size:1.4rem}
@media(min-width:900px){.hero-text{padding-left:6vw}}
.intro{text-align:center;max-width:820px}.eyebrow{color:var(--rust);letter-spacing:.15em;text-transform:uppercase;font-size:.85rem}
.big{font-family:"Cormorant Garamond",serif;font-size:clamp(1.4rem,3vw,1.9rem);line-height:1.4}
.stars{color:var(--gold);font-size:1.3rem}.stars span{color:var(--ink);font-size:.9rem;display:block}
.filters{text-align:center;margin-bottom:1.5rem}
.filters button{background:none;border:1px solid var(--gold);color:var(--ink);padding:.45rem 1rem;margin:.25rem;border-radius:30px;cursor:pointer;font:400 .9rem Lato}
.filters button.on{background:var(--gold);color:var(--dk)}
.grid{columns:2 160px;column-gap:.7rem}@media(min-width:900px){.grid{columns:3}}
.grid button{display:block;width:100%;padding:0;border:0;margin:0 0 .7rem;cursor:zoom-in;background:none;break-inside:avoid}
.grid img{width:100%;height:auto;transition:transform .4s,filter .4s}.grid button:hover img{filter:brightness(1.08)}
.band{background:var(--dk);color:var(--cream)}.band h2{color:var(--gold2)}.band a{color:var(--gold2)}
.cards{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-bottom:2rem}
.cards article{border:1px solid rgba(201,154,60,.35);padding:1.4rem;background:var(--dk2)}.cards h3{color:var(--gold2)}
.about{display:grid;gap:2.5rem;align-items:start}@media(min-width:900px){.about{grid-template-columns:1fr 1.2fr}}
.about h2{text-align:left}.about img{border:8px solid #fff;box-shadow:0 10px 30px rgba(0,0,0,.15)}
.memorial{margin-top:2rem;padding:1.5rem;border-left:3px solid var(--gold);background:#efe4cf}
.memorial p{margin:.4rem 0}.quiet{opacity:.75}
.steps{list-style:none;padding:0;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.steps li{border-top:2px solid var(--gold);padding-top:1rem}.steps h3{color:var(--gold2)}
.quotes{columns:1;column-gap:1.2rem}@media(min-width:700px){.quotes{columns:2}}
blockquote{break-inside:avoid;margin:0 0 1.2rem;padding:1.4rem;background:#fff;border-top:3px solid var(--gold)}
blockquote p{font-family:"Cormorant Garamond",serif;font-size:1.25rem;margin:0 0 .6rem;line-height:1.4}
cite{font-style:normal;font-weight:700;color:var(--rust);font-size:.9rem}cite:before{content:"— "}
details{border-bottom:1px solid rgba(201,154,60,.35);padding:1rem 0}summary{cursor:pointer;font-family:"Cormorant Garamond",serif;font-size:1.35rem;color:var(--gold2)}
.contact{display:grid;gap:2rem}@media(min-width:900px){.contact{grid-template-columns:1fr 1.2fr}}.contact h2{text-align:left}
.direct{list-style:none;padding:0}.direct li{margin:.5rem 0}.direct a{font-weight:700}
form label{display:block;margin-bottom:.9rem;font-size:.9rem;font-weight:700}
input,select,textarea{display:block;width:100%;margin-top:.3rem;padding:.75rem;border:1px solid #cdbb98;background:#fff;font:inherit;border-radius:2px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--gold)}.small-t{font-size:.8rem}
footer{background:var(--dk);color:#cfc2aa;text-align:center;padding:3rem 1.25rem;font-size:.9rem}
footer a{color:var(--gold2)}.dedication{font-family:"Cormorant Garamond",serif;font-style:italic;font-size:1.15rem;color:var(--cream)}
.lb{position:fixed;inset:0;z-index:100;background:rgba(10,8,6,.95);display:flex;align-items:center;justify-content:center}
.lb[hidden]{display:none}.lb img{max-height:90vh;max-width:92vw}
.lb button{position:absolute;background:none;border:0;color:var(--gold2);font-size:3rem;cursor:pointer;padding:1rem}
.lb-x{top:0;right:.5rem}.lb-p{left:0}.lb-n{right:0}
.about picture{display:block;max-width:520px;width:100%;margin:0 auto}
.about img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 25%}
.about img.headshot{object-position:50% 18%}
