:root{
  --bg:#050505;
  --paper:#202226;
  --ink:#f7f7f7;
  --muted:#b8bcc1;
  --line:#3a3d42;
  --charcoal:#050607;
  --charcoal2:#1a1d20;
  --burgundy:#c3263f;
  --burgundy-dark:#9f1d33;
  --steel:#728b9b;
  --stone:#17191c;
  --soft:#111214;
  --shadow:0 18px 44px rgba(0,0,0,.34);
  --radius:22px;
  --max:1240px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:Inter,Segoe UI,Arial,sans-serif;
  line-height:1.5;
  font-size:15px;
}
img{display:block;width:100%}
a{color:inherit}
button,input,textarea,select{font:inherit}
.wrap{width:min(calc(100% - 34px),var(--max));margin:0 auto}

/* HEADER */
.site-header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(7,8,9,.95);
  backdrop-filter:blur(12px);
  border-bottom:1px solid #25282b;
}
.header-row{
  min-height:70px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.brand{
  display:flex;
  align-items:center;
  gap:11px;
  text-decoration:none;
  min-width:max-content;
}
.brand-monogram{
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border:1px solid #3a3d41;
  background:#121416;
  color:#fff;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.22rem;
  font-weight:700;
  border-radius:8px;
  box-shadow:0 8px 18px rgba(20,22,24,.14);
}
.brand-copy strong{
  display:block;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.08rem;
  letter-spacing:-.01em;
}
.brand-copy span{
  display:block;
  margin-top:2px;
  color:var(--muted);
  font-size:.7rem;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-weight:800;
}
.desktop-nav{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:4px;
  flex-wrap:wrap;
}
.desktop-nav a{
  text-decoration:none;
  padding:9px 10px;
  font-size:.78rem;
  font-weight:800;
  color:#c3c7ca;
  border-radius:8px;
}
.desktop-nav a:hover,
.desktop-nav a.active{
  color:var(--burgundy);
  background:#17191c;
}
.nav-more{
  position:relative;
}
.nav-more summary{
  list-style:none;
  cursor:pointer;
  padding:9px 10px;
  font-size:.78rem;
  font-weight:800;
  color:#c3c7ca;
  border-radius:8px;
}
.nav-more summary::-webkit-details-marker{display:none}
.nav-more[open] summary,
.nav-more summary:hover{color:var(--burgundy);background:#f4f1f1}
.nav-more-menu{
  position:absolute;
  right:0;
  top:44px;
  width:190px;
  background:#121416;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  border-radius:12px;
  padding:8px;
}
.nav-more-menu a{
  display:block;
  padding:10px 11px;
}
.mobile-menu{display:none}

/* SHARED */
.page-main{min-height:70vh}
.kicker{
  color:var(--burgundy);
  font-size:.73rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.14em;
}
.display{
  font-family:Georgia,"Times New Roman",serif;
  letter-spacing:-.045em;
  line-height:.95;
}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:39px;
  padding:9px 14px;
  text-decoration:none;
  border-radius:9px;
  font-weight:900;
  border:1px solid transparent;
}
.btn.primary{background:var(--burgundy);color:#fff}
.btn.primary:hover{background:var(--burgundy-dark)}
.btn.secondary{background:#121416;border-color:var(--line)}
.btn.secondary:hover{border-color:#666b70;background:#1e2124}
.muted{color:var(--muted)}

/* HOME */
.home-hero{padding:28px 0 24px}
.home-hero-grid{
  display:grid;
  grid-template-columns:.92fr 1.08fr;
  min-height:455px;
  background:#101214;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  border-radius:24px;
  overflow:hidden;
}
.home-copy{
  padding:40px 38px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.home-copy h1{
  margin:13px 0 18px;
  font-size:clamp(2.65rem,4.8vw,4.75rem);
}
.home-copy h1 span{color:var(--burgundy)}
.home-copy p{
  max-width:600px;
  color:var(--muted);
  font-size:.98rem;
  margin:0;
}
.home-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:22px}
.signature{
  margin-top:25px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.08rem;
  font-style:italic;
  color:#b5babf;
}
.hero-collage{
  background:var(--stone);
  padding:14px;
  display:grid;
  grid-template-columns:1.05fr .95fr;
  grid-template-rows:1fr 1fr;
  gap:10px;
}
.hero-image{
  border:0;
  padding:0;
  cursor:pointer;
  overflow:hidden;
  background:#202327;
  min-height:205px;
  position:relative;
}
.hero-image:first-child{grid-row:1 / span 2}
.hero-image img{height:100%;object-fit:cover;transition:transform .3s ease}
.hero-image:hover img{transform:scale(1.025)}
.hero-caption{
  position:absolute;
  left:10px;
  bottom:10px;
  padding:6px 9px;
  background:rgba(10,11,12,.84);
  color:#f3f4f5;
  font-size:.68rem;
  font-weight:900;
  border-radius:6px;
}

/* HOME SECTION CARDS */
.section-index{padding:24px 0 52px}
.index-heading{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:24px;
  margin-bottom:16px;
}
.index-heading h2{font-size:clamp(1.9rem,3.2vw,3rem);margin:5px 0 0}
.index-heading p{max-width:520px;margin:0;color:var(--muted);text-align:right}
.index-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:11px;
}
.index-card{
  text-decoration:none;
  background:#121416;
  border:1px solid var(--line);
  min-height:226px;
  overflow:hidden;
  transition:.2s;
  border-radius:12px;
  display:flex;
  flex-direction:column;
}
.index-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(20,22,24,.08)}
.index-card-photo{height:132px;overflow:hidden;background:#202327}
.index-card-photo img{height:100%;object-fit:cover;transition:transform .3s ease}
.index-card:hover .index-card-photo img{transform:scale(1.025)}
.index-card-copy{padding:13px 14px 14px}
.index-card-copy small{color:var(--burgundy);font-weight:900;text-transform:uppercase;letter-spacing:.1em}
.index-card-copy strong{
  display:block;
  margin-top:5px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.12rem;
}
.index-card-copy span{display:block;margin-top:4px;color:var(--muted);font-size:.79rem;line-height:1.4}

/* INNER PAGES */
.inner-hero{
  padding:38px 0 24px;
}
.inner-hero-box{
  border-bottom:1px solid #25282b;
  padding-bottom:24px;
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:28px;
}
.inner-hero h1{
  margin:7px 0 0;
  font-size:clamp(2.5rem,4.7vw,4.4rem);
}
.inner-hero p{
  margin:0;
  max-width:510px;
  text-align:right;
  color:var(--muted);
  font-size:.92rem;
}
.gallery-section{padding:16px 0 54px}
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  grid-auto-rows:145px;
  gap:9px;
}
.gallery-photo{
  position:relative;
  border:0;
  padding:0;
  cursor:pointer;
  overflow:hidden;
  background:#202327;
  border-radius:8px;
}
.gallery-photo img{height:100%;object-fit:cover;transition:transform .35s ease}
.gallery-photo:hover img{transform:scale(1.03)}
.gallery-photo:after{
  content:"View";
  position:absolute;
  right:9px;
  bottom:9px;
  background:rgba(10,11,12,.84);
  padding:5px 8px;
  border-radius:5px;
  font-size:.65rem;
  font-weight:900;
  opacity:0;
  transition:.2s;
}
.gallery-photo:hover:after{opacity:1}
.gallery-photo.wide{grid-column:span 7;grid-row:span 2}
.gallery-photo.tall{grid-column:span 5;grid-row:span 2}
.gallery-photo.mid{grid-column:span 4;grid-row:span 1}
.gallery-photo.large{grid-column:span 8;grid-row:span 2}
.gallery-photo.small{grid-column:span 4;grid-row:span 1}
.gallery-photo.half{grid-column:span 6;grid-row:span 2}

.story-note{
  margin-top:18px;
  background:#121416;
  border-left:4px solid var(--burgundy);
  padding:14px 16px;
  border-top:1px solid var(--line);
  border-right:1px solid var(--line);
  border-bottom:1px solid #25282b;
}
.story-note strong{
  display:block;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.05rem;
}
.story-note span{display:block;margin-top:4px;color:var(--muted)}

.split-section{
  padding:8px 0 54px;
}
.split-heading{
  margin:0 0 20px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.65rem;
}
.page-links{
  padding:0 0 52px;
}
.page-links-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
}
.page-link{
  padding:13px 14px;
  background:#121416;
  border:1px solid var(--line);
  text-decoration:none;
  border-radius:8px;
}
.page-link small{
  display:block;
  color:var(--burgundy);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:.65rem;
}
.page-link strong{
  display:block;
  margin-top:5px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:.98rem;
}

/* JESSICA */
.love-hero{padding:28px 0 54px}
.love-grid{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:11px;
}
.love-main,
.love-stack button{
  border:0;
  padding:0;
  cursor:pointer;
  overflow:hidden;
  background:#202327;
  border-radius:14px;
}
.love-main{min-height:465px;position:relative}
.love-main img,
.love-stack img{height:100%;object-fit:cover}
.love-stack{display:grid;grid-template-rows:1fr 1fr;gap:14px}
.love-message{
  position:absolute;
  left:18px;
  right:18px;
  bottom:18px;
  padding:15px 16px;
  background:rgba(10,11,12,.88);
  border-left:4px solid var(--burgundy);
}
.love-message strong{
  display:block;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.22rem;
}
.love-message span{display:block;color:var(--muted);margin-top:3px}

/* MEMORIAL */
.memorial-section{padding:24px 0 56px}
.memorial-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:9px;
}
.memorial-card{
  min-height:140px;
  padding:17px;
  background:#050607;
  color:#fff;
  border-top:4px solid var(--burgundy);
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  border-radius:8px;
}
.memorial-card strong{
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.08rem;
}
.memorial-card span{margin-top:4px;color:#c9ccce;font-size:.84rem}

/* FOOTER */
.site-footer{
  background:#050607;
  color:#cdd0d2;
  border-top:4px solid var(--burgundy);
}
.footer-main{
  padding:26px 0 22px;
  display:flex;
  justify-content:space-between;
  gap:32px;
  align-items:flex-start;
}
.footer-brand strong{
  display:block;
  color:#fff;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.25rem;
}
.footer-brand span{display:block;color:#aeb3b6;margin-top:4px;font-size:.84rem}
.footer-nav{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:7px 14px;
}
.footer-nav a{
  color:#d4d6d8;
  text-decoration:none;
  font-size:.79rem;
}
.footer-nav a:hover{color:#fff}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.1);
  padding:16px 0 24px;
}
.footer-bottom-row{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:center;
  font-size:.76rem;
  color:#959a9e;
}
.admin-key{
  display:inline-block;
  width:10px;
  height:10px;
  margin-left:6px;
  border-radius:50%;
  background:rgba(255,255,255,.07);
  vertical-align:middle;
  text-decoration:none;
}
.admin-key:hover{background:rgba(255,255,255,.35)}

/* LIGHTBOX */
.lightbox{
  position:fixed;
  inset:0;
  z-index:200;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(12,13,14,.94);
}
.lightbox.open{display:flex}
.lightbox img{
  width:auto;
  max-width:94vw;
  max-height:90vh;
  border-radius:6px;
  box-shadow:0 24px 80px rgba(0,0,0,.55);
}
.lightbox-close{
  position:fixed;
  right:18px;
  top:16px;
  width:44px;
  height:44px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.07);
  color:#fff;
  font-size:1.4rem;
  cursor:pointer;
}

/* RESPONSIVE */
@media(max-width:1040px){
  .desktop-nav{display:none}
  .mobile-menu{display:block;position:relative}
  .mobile-menu summary{
    list-style:none;
    cursor:pointer;
    font-weight:900;
    padding:9px 12px;
    border:1px solid var(--line);
    border-radius:8px;
    background:#121416;
  }
  .mobile-menu summary::-webkit-details-marker{display:none}
  .mobile-menu nav{
    position:absolute;
    right:0;
    top:48px;
    width:230px;
    background:#121416;
    border:1px solid var(--line);
    box-shadow:var(--shadow);
    border-radius:12px;
    padding:8px;
  }
  .mobile-menu nav a{
    display:block;
    padding:10px 11px;
    text-decoration:none;
    font-weight:800;
    color:#c5c9cc;
    border-radius:6px;
  }
  .mobile-menu nav a:hover{background:#17191c;color:var(--burgundy)}
  .home-hero-grid{grid-template-columns:1fr}
  .hero-collage{min-height:520px}
  .index-grid{grid-template-columns:repeat(2,1fr)}
  .inner-hero-box{display:block}
  .inner-hero p{text-align:left;margin-top:14px}
  .page-links-grid{grid-template-columns:repeat(2,1fr)}
  .love-grid{grid-template-columns:1fr}
  .love-stack{min-height:500px}
}
@media(max-width:700px){
  .wrap{width:min(calc(100% - 24px),var(--max))}
  .header-row{min-height:72px}
  .brand-copy span{display:none}
  .home-hero{padding-top:20px}
  .home-hero-grid{border-radius:16px}
  .home-copy{padding:28px 22px}
  .hero-collage{
    grid-template-columns:1fr;
    grid-template-rows:repeat(3,185px);
  }
  .hero-image:first-child{grid-row:auto}
  .index-heading{display:block}
  .index-heading p{text-align:left;margin-top:10px}
  .index-grid{grid-template-columns:1fr}
  .gallery-grid{grid-template-columns:1fr 1fr;grid-auto-rows:160px}
  .gallery-photo.wide,.gallery-photo.tall,.gallery-photo.mid,.gallery-photo.large,.gallery-photo.small,.gallery-photo.half{
    grid-column:span 1;
    grid-row:span 1;
  }
  .gallery-photo.wide,.gallery-photo.tall,.gallery-photo.large,.gallery-photo.half{grid-row:span 2}
  .memorial-grid{grid-template-columns:1fr 1fr}
  .page-links-grid{grid-template-columns:1fr 1fr}
  .footer-main{display:block}
  .footer-nav{justify-content:flex-start;margin-top:18px}
  .footer-bottom-row{align-items:flex-start;flex-direction:column}
}
@media(max-width:460px){
  .brand-copy strong{font-size:1.05rem}
  .brand-monogram{width:42px;height:42px}
  .gallery-grid{grid-template-columns:1fr}
  .gallery-photo.wide,.gallery-photo.tall,.gallery-photo.mid,.gallery-photo.large,.gallery-photo.small,.gallery-photo.half{
    min-height:280px;
    grid-row:auto;
  }
  .memorial-grid{grid-template-columns:1fr}
  .page-links-grid{grid-template-columns:1fr}
}


/* DARK BACKGROUND REFINEMENTS */
body{background:#070809;color:#f3f4f5}
.page-main{background:transparent}
.index-heading h2,
.inner-hero h1,
.split-heading{color:#f5f6f7}
.index-heading p,
.inner-hero p,
.story-note span,
.page-link span{color:#a7adb2}
.index-card,
.page-link,
.story-note{box-shadow:none}
.index-card:hover,
.page-link:hover{border-color:#45494e}
.index-card-copy strong,
.page-link strong,
.story-note strong{color:#f4f5f6}
.index-card-copy span{color:#a7adb2}
.home-copy p{color:#a7adb2}
.home-hero-grid{border-color:#292c30}
.home-copy{background:#101214}
.hero-collage{background:#17191c}
.gallery-photo{border:1px solid #25282c}
.love-message{color:#f3f4f5}
.memorial-card{background:#111316;border:1px solid #292c30;border-top:4px solid var(--burgundy)}
.site-footer{background:#050607}
.footer-main,.footer-bottom{background:#050607}
.footer-nav a{color:#bfc4c8}
.footer-nav a:hover{color:#fff}
/* =========================================================
   CONTRAST PASS — BLACK PAGE / DARK-GRAY CARDS / RED DETAILS
   ========================================================= */

body{
  background:#050505;
}

.site-header{
  background:rgba(7,7,7,.96);
  border-bottom:1px solid #2d3034;
  box-shadow:0 1px 0 rgba(255,255,255,.02);
}

.brand-monogram{
  background:#1d1f22;
  border-color:#4a4e53;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.025),
    0 8px 18px rgba(0,0,0,.32);
}

.brand-monogram:after{
  content:"";
  width:18px;
  height:2px;
  position:absolute;
  margin-top:33px;
  background:var(--burgundy);
  border-radius:2px;
}

.desktop-nav a:hover,
.desktop-nav a.active,
.nav-more[open] summary,
.nav-more summary:hover{
  color:#fff;
  background:#202226;
  box-shadow:inset 0 -2px 0 var(--burgundy);
}

.nav-more-menu,
.mobile-menu nav{
  background:#1a1c1f;
  border-color:#3a3d42;
}

.home-hero-grid{
  background:#1d1f22;
  border:1px solid #3a3d42;
  box-shadow:0 18px 46px rgba(0,0,0,.46);
}

.home-copy{
  background:#202226;
  position:relative;
}

.home-copy:before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:linear-gradient(to bottom,var(--burgundy),#6f1223);
}

.hero-collage{
  background:#111214;
}

.kicker{
  color:#ff4d66;
}

.home-copy h1 span{
  color:#e83853;
}

.btn.primary{
  background:var(--burgundy);
  box-shadow:0 8px 18px rgba(195,38,63,.18);
}

.btn.primary:hover{
  background:#df2d49;
}

.btn.secondary{
  background:#2a2d31;
  border-color:#484c51;
}

.btn.secondary:hover{
  background:#32353a;
  border-color:#62676d;
}

.index-card,
.page-link,
.story-note{
  background:#232529;
  border-color:#41454a;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.025),
    0 10px 24px rgba(0,0,0,.18);
}

.index-card{
  position:relative;
}

.index-card:before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:3px;
  background:linear-gradient(90deg,var(--burgundy) 0 24%,transparent 24%);
  z-index:2;
}

.index-card:hover,
.page-link:hover{
  border-color:#666b72;
  transform:translateY(-3px);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.035),
    0 16px 32px rgba(0,0,0,.32);
}

.index-card-copy{
  background:#232529;
}

.index-card-copy small,
.page-link small{
  color:#ff4d66;
}

.index-card-copy strong,
.page-link strong,
.story-note strong{
  color:#ffffff;
}

.index-card-copy span,
.page-link span,
.story-note span{
  color:#b9bec3;
}

.inner-hero-box{
  border-bottom-color:#34373b;
  position:relative;
}

.inner-hero-box:after{
  content:"";
  position:absolute;
  left:0;
  bottom:-1px;
  width:110px;
  height:3px;
  background:var(--burgundy);
}

.gallery-photo{
  background:#202226;
  border:1px solid #3b3e43;
  box-shadow:0 8px 18px rgba(0,0,0,.18);
}

.gallery-photo:hover{
  border-color:#5b6066;
}

.gallery-photo:after{
  background:rgba(195,38,63,.92);
  color:#fff;
}

.story-note{
  border-left:4px solid var(--burgundy);
}

.love-main,
.love-stack button{
  background:#202226;
  border:1px solid #3b3e43;
}

.love-message{
  background:rgba(29,31,34,.94);
  border-left:4px solid var(--burgundy);
  color:#fff;
}

.memorial-card{
  background:#202226;
  border:1px solid #41454a;
  border-top:4px solid var(--burgundy);
  box-shadow:0 10px 22px rgba(0,0,0,.22);
}

.site-footer{
  background:#090909;
  border-top:4px solid var(--burgundy);
}

.footer-main,
.footer-bottom{
  background:#090909;
}

.footer-bottom{
  border-top:1px solid #25272a;
}

.admin-key{
  background:rgba(195,38,63,.18);
  box-shadow:0 0 0 1px rgba(195,38,63,.16);
}

.admin-key:hover{
  background:var(--burgundy);
  box-shadow:0 0 0 3px rgba(195,38,63,.14);
}

/* Small red section markers */
.index-heading .kicker:before,
.inner-hero .kicker:before{
  content:"";
  display:inline-block;
  width:22px;
  height:2px;
  margin-right:8px;
  vertical-align:middle;
  background:var(--burgundy);
}

/* Slightly brighter photo captions */
.hero-caption{
  background:rgba(28,30,33,.92);
  color:#fff;
  border-left:3px solid var(--burgundy);
}
