:root { --ink:#161b18; --forest:#263c32; --deep:#172820; --sage:#aebda8; --moss:#778d76; --stone:#d0c8bb; --cream:#f2efe8; --paper:#fbfaf7; --line:rgba(22,27,24,.14); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font:16px/1.7 "DM Sans",sans-serif; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; z-index:100; top:12px; left:12px; padding:10px 16px; color:white; background:var(--deep); transform:translateY(-160%); }
.skip-link:focus { transform:none; }
.site-header { height:96px; padding:0 clamp(24px,5vw,76px); display:flex; align-items:center; justify-content:space-between; background:var(--paper); }
.brand { display:flex; align-items:center; gap:13px; font:22px/1.05 "Libre Caslon Display",serif; }
.brand>span:last-child small { display:block; margin-top:5px; font:600 9px/1 "DM Sans",sans-serif; letter-spacing:.26em; text-transform:uppercase; }
.brand-seal { width:50px; height:58px; border:1px solid var(--ink); border-radius:50% 50% 45% 45%; display:grid; align-content:center; justify-items:center; line-height:1; }
.brand-seal strong { font:25px "Libre Caslon Display",serif; }
.brand-seal small { padding-top:4px; font-size:7px; letter-spacing:.12em; }
.site-nav { display:flex; align-items:center; gap:30px; font-size:13px; font-weight:600; }
.site-nav>a:not(.button) { border-bottom:1px solid transparent; }
.site-nav>a:not(.button):hover { border-color:var(--ink); }
.menu-button { display:none; border:0; background:none; padding:8px; cursor:pointer; }
.menu-button span:not(.sr-only) { display:block; width:24px; height:2px; margin:5px; background:var(--ink); }
.button { display:inline-block; padding:14px 23px; color:white; background:var(--forest); border:1px solid var(--forest); font-size:12px; font-weight:600; letter-spacing:.09em; text-transform:uppercase; transition:.2s; }
.button:hover { transform:translateY(-2px); background:var(--deep); }
.button-small { padding:10px 18px; }
.button-light { color:var(--deep); background:var(--paper); border-color:var(--paper); }
.eyebrow { margin:0 0 20px; color:var(--moss); font-size:11px; font-weight:600; letter-spacing:.25em; text-transform:uppercase; }
.eyebrow.light { color:#dce3d8; }
h1,h2 { margin:0; font-family:"Libre Caslon Display",serif; font-weight:400; line-height:1.02; letter-spacing:-.025em; }
.hero { min-height:calc(100vh - 96px); position:relative; display:flex; align-items:center; padding:90px clamp(24px,8vw,125px); color:white; background:url("../images/cemetery-entrance.jpg") center 60%/cover no-repeat; }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(12,26,20,.78) 0%,rgba(12,26,20,.38) 48%,rgba(12,26,20,.05) 78%); }
.hero-content { z-index:1; max-width:710px; }
.hero h1 { font-size:clamp(64px,8.4vw,126px); }
.hero-content>p:not(.eyebrow) { max-width:510px; margin:26px 0 33px; color:rgba(255,255,255,.82); font-size:18px; }
.hero-caption { position:absolute; z-index:1; right:clamp(24px,5vw,76px); bottom:35px; margin:0; font-size:11px; letter-spacing:.16em; text-transform:uppercase; }
.history { max-width:1400px; margin:auto; padding:clamp(85px,11vw,160px) clamp(24px,7vw,110px); display:grid; grid-template-columns:1fr .82fr; align-items:center; gap:clamp(50px,9vw,140px); }
.history-copy { max-width:620px; }
.history h2,.grave-search h2,.visit h2,.contact h2 { font-size:clamp(45px,5.5vw,78px); }
.history .lead { margin:30px 0 15px; font-size:21px; line-height:1.55; }
.history-copy>p:not(.eyebrow):not(.lead) { color:#626963; }
.history-image { margin:0; position:relative; }
.history-image:before { content:""; position:absolute; z-index:-1; inset:-20px 20px 20px -20px; background:var(--sage); }
.history-image img { width:100%; aspect-ratio:4/5; object-fit:cover; }
.history-image figcaption { margin-top:12px; color:#747a75; font-size:11px; }
.history-facts { margin-top:40px; padding-top:25px; display:flex; gap:60px; border-top:1px solid var(--line); }
.history-facts div { display:flex; flex-direction:column; }
.history-facts strong { font:38px "Libre Caslon Display",serif; }
.history-facts span { color:#747a75; font-size:11px; text-transform:uppercase; letter-spacing:.12em; }
.grave-search { min-height:690px; display:grid; grid-template-columns:1fr 1fr; background:var(--forest); color:white; }
.search-photo { min-height:480px; background:url("../images/cemetery-landscape.jpg") center/cover; }
.search-content { padding:clamp(60px,8vw,125px); align-self:center; }
.search-content>p:not(.eyebrow) { max-width:550px; color:rgba(255,255,255,.68); }
.search-form { margin-top:35px; display:flex; max-width:610px; }
.search-form input { min-width:0; flex:1; padding:18px 20px; border:1px solid white; border-radius:0; background:white; font:14px "DM Sans",sans-serif; outline:none; }
.search-form input:focus { box-shadow:inset 0 0 0 2px var(--sage); }
.search-form button { padding:0 26px; border:1px solid var(--sage); color:var(--deep); background:var(--sage); font:600 11px "DM Sans",sans-serif; letter-spacing:.12em; text-transform:uppercase; cursor:pointer; }
.search-results { max-width:610px; margin-top:25px; padding-top:20px; border-top:1px solid rgba(255,255,255,.2); }
.search-results .result-count { color:white!important; font-size:12px; text-transform:uppercase; letter-spacing:.1em; }
.search-results ul { padding:0; list-style:none; }
.search-results li { padding:13px 0; display:flex; justify-content:space-between; align-items:center; gap:20px; border-bottom:1px solid rgba(255,255,255,.13); }
.search-results li>span { display:flex; flex-direction:column; }
.search-results li>small { text-align:right; }
.search-results small { color:rgba(255,255,255,.5); }
.visit { padding:clamp(85px,10vw,140px) clamp(24px,8vw,125px); display:grid; grid-template-columns:1fr 1fr; gap:clamp(50px,10vw,160px); background:var(--cream); }
.visit>div:last-child { max-width:520px; align-self:end; color:#616862; }
.visit-address { margin:30px 0 0; padding:23px 26px; color:var(--ink); background:rgba(255,255,255,.52); border-left:3px solid var(--moss); font:24px/1.45 "Libre Caslon Display",serif; }
.visit-address span { display:block; margin-bottom:7px; color:var(--moss); font:600 9px/1.2 "DM Sans",sans-serif; letter-spacing:.18em; text-transform:uppercase; }
.text-link { display:inline-block; margin-top:18px; padding-bottom:3px; color:var(--ink); font-size:12px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; border-bottom:1px solid var(--ink); }
.landscape { min-height:560px; background:url("../images/cemetery-landscape.jpg") center 45%/cover fixed; }
/* Contact styling retained for when the client enables that section.
.contact { padding:clamp(90px,11vw,150px) 24px; text-align:center; color:white; background:var(--deep); }
.contact>p:not(.eyebrow) { max-width:580px; margin:25px auto 32px; color:rgba(255,255,255,.65); }
.contact address { margin:-16px 0 30px; color:rgba(255,255,255,.8); font-style:normal; }
.contact address a { border-bottom:1px solid rgba(255,255,255,.35); }
.contact>small { display:block; margin-top:20px; color:rgba(255,255,255,.4); font-size:10px; }
*/
footer { padding:45px clamp(24px,5vw,76px); display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:30px; color:var(--ink); background:var(--paper); }
footer>p { margin:0; color:#6b716d; font-size:10px; letter-spacing:.1em; text-transform:uppercase; }
footer>p:last-child { text-align:right; }
.footer-admin { color:#6b716d; border-bottom:1px solid #aeb2ae; }
.brand-footer { font-size:18px; }
.brand-footer .brand-seal { width:42px; height:48px; }
.results-page { min-height:100vh; background:var(--cream); }
.results-main { min-height:calc(100vh - 260px); }
.results-heading { min-height:520px; padding:clamp(65px,8vw,110px) clamp(24px,8vw,125px); display:flex; flex-direction:column; justify-content:center; color:white; background:linear-gradient(90deg,rgba(17,39,29,.88),rgba(17,39,29,.5) 58%,rgba(17,39,29,.18)),url("../images/site_search.jpg") center 68%/cover no-repeat; }
.results-heading h1 { font-size:clamp(52px,7vw,92px); }
.results-form { width:min(720px,100%); margin-top:38px; display:flex; }
.results-form input { min-width:0; flex:1; padding:18px 20px; border:1px solid white; border-radius:0; background:white; font:14px "DM Sans",sans-serif; outline:none; }
.results-form input:focus { box-shadow:inset 0 0 0 2px var(--sage); }
.results-form button { padding:0 30px; border:1px solid var(--sage); color:var(--deep); background:var(--sage); font:600 11px "DM Sans",sans-serif; letter-spacing:.12em; text-transform:uppercase; cursor:pointer; }
.results-list { padding:clamp(50px,7vw,90px) clamp(24px,8vw,125px); }
.result-summary { max-width:1100px; margin:0 auto 22px; color:#686f69; font-size:12px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; }
.result-card { max-width:1100px; margin:0 auto 12px; padding:28px 32px; display:grid; grid-template-columns:1fr auto; align-items:center; gap:35px; background:var(--paper); border-left:3px solid transparent; transition:.2s; }
.result-card:hover { border-color:var(--moss); transform:translateX(3px); }
.result-card:focus-visible { outline:2px solid var(--forest); outline-offset:3px; }
.result-card h2,.empty-result h2 { margin:0; font:30px/1.2 "Libre Caslon Display",serif; }
.record-dates { margin:15px 0 0; display:flex; gap:34px; border:0; }
.record-dates div { padding:0; display:flex; flex-direction:column; gap:1px; border:0; }
.record-dates dt { color:#858b86; font-size:9px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; }
.record-dates dd { margin:0; color:#4f5751; font-size:13px; text-align:left; }
.record-headstone { width:112px; height:112px; object-fit:cover; background:var(--cream); }
.result-arrow { align-self:center; color:var(--moss); font-size:28px; }
.empty-result { max-width:1100px; margin:auto; padding:55px; text-align:center; background:var(--paper); }
.empty-result p { margin-bottom:0; color:#747a75; }
.record-page { background:var(--cream); }
.record-banner { min-height:430px; padding:70px clamp(24px,8vw,125px); display:flex; flex-direction:column; justify-content:center; color:white; background:linear-gradient(90deg,rgba(17,39,29,.9),rgba(17,39,29,.38)),url("../images/site_search.jpg") center 68%/cover; }
.record-banner h1 { max-width:900px; font-size:clamp(50px,7vw,96px); }
.back-link { width:max-content; margin-bottom:auto; padding-bottom:3px; color:rgba(255,255,255,.8); font-size:12px; border-bottom:1px solid rgba(255,255,255,.4); }
.record-detail { max-width:1350px; margin:auto; padding:clamp(65px,8vw,110px) clamp(24px,7vw,100px); display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,.72fr); gap:clamp(50px,8vw,110px); align-items:start; }
.record-information { min-width:0; }
.detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid var(--line); }
.detail-grid>div { padding:22px 0; display:flex; flex-direction:column; gap:5px; border-bottom:1px solid var(--line); }
.detail-grid>div:nth-child(odd) { padding-right:30px; }
.detail-grid span { color:#7b827d; font-size:9px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; }
.detail-grid strong { font:24px/1.3 "Libre Caslon Display",serif; font-weight:400; }
.detail-heading { margin-top:55px; }
.location-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.location-grid>div:nth-child(odd) { padding-right:20px; }
.detail-photo { margin:0; }
.detail-photo img { width:100%; max-height:680px; object-fit:contain; background:var(--paper); }
.detail-photo figcaption { margin-top:10px; color:#747a75; font-size:11px; }
.record-unavailable { min-height:350px; padding:90px 24px; text-align:center; }
.record-unavailable h2 { margin:0; font:40px "Libre Caslon Display",serif; }
.record-unavailable p { color:#747a75; }
.record-unavailable .button { margin-top:20px; }
@media (max-width:850px) {
  .menu-button { display:block; }
  .site-nav { display:none; position:absolute; z-index:10; top:96px; left:0; right:0; padding:28px; flex-direction:column; background:var(--paper); box-shadow:0 15px 25px rgba(0,0,0,.12); }
  .site-nav.open { display:flex; }
  .history,.grave-search,.visit { grid-template-columns:1fr; }
  .history-copy { max-width:none; }
  .grave-search .search-photo { min-height:420px; }
  footer { grid-template-columns:1fr; justify-items:center; text-align:center; }
  footer>p:last-child { text-align:center; }
  .landscape { background-attachment:scroll; }
  .result-card { grid-template-columns:1fr; gap:18px; }
  .record-headstone { width:100%; height:auto; max-height:380px; object-fit:contain; justify-self:start; }
  .record-detail { grid-template-columns:1fr; }
  .detail-photo { grid-row:1; }
}
@media (max-width:520px) {
  .site-header { height:82px; }
  .site-nav { top:82px; }
  .brand { font-size:18px; }
  .brand-seal { width:42px; height:48px; }
  .hero { min-height:calc(100vh - 82px); }
  .hero-caption { left:24px; right:auto; }
  .history-facts { gap:28px; }
  .search-form { display:block; }
  .search-form button { width:100%; padding:16px; }
  .search-form input { width:100%; }
  .search-results li { display:block; }
  .search-results small { display:block; }
  .results-form { display:block; }
  .results-form input,.results-form button { width:100%; }
  .results-form button { padding:16px; }
  .result-card { padding:24px; }
  .record-banner { min-height:380px; }
  .detail-grid,.location-grid { grid-template-columns:1fr; }
  .detail-grid>div:nth-child(odd) { padding-right:0; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none!important; } }
