:root {
  --ink: #080808;
  --paper: #fffefa;
  --cream: #f7f3ec;
  --line: #bdb8af;
  --muted: #4e4a45;
  --serif: Georgia, "Times New Roman", Times, serif;
  --sans: Arial, Helvetica, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; overflow-x:clip; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:var(--serif); font-size:18px; line-height:1.45; overflow-x:clip; }
a { color: inherit; }
button, input, textarea { font: inherit; }
button, a { touch-action:manipulation; }
img { max-width: 100%; height: auto; }
.skip-link { position:absolute; left:16px; top:-80px; z-index:9999; background:#fff; color:#000; padding:12px 16px; border:2px solid #000; }
.skip-link:focus { top:16px; }

.site-header { background: #fff; border-bottom: 1px solid #ddd; position: relative; z-index: 50; }
.header-shell { width: min(1480px, 100%); margin: 0 auto; min-height: 140px; padding: 14px 28px; display: grid; grid-template-columns: 360px 1fr auto; gap: 22px; align-items: center; }
.brand { display:flex; align-items:center; justify-content:flex-start; justify-self:start; width:min(330px,100%); text-decoration:none; }
.brand-logo { display:block; width:100%; height:auto; }
.primary-nav { display:flex; justify-content:center; align-items:center; gap: 34px; height: 100%; }
.primary-nav a { text-decoration:none; text-transform:uppercase; font-size:14px; font-weight:700; letter-spacing:.02em; padding: 14px 0 9px; border-bottom:2px solid transparent; }
.primary-nav a:hover, .primary-nav a:focus-visible, .primary-nav a.active { border-bottom-color:#000; }
.call-button { display:inline-flex; align-items:center; justify-content:center; gap:10px; background:#080808; color:#fff; text-decoration:none; border:2px solid #080808; border-radius:6px; min-height:56px; padding:13px 20px; font-size:20px; font-weight:700; letter-spacing:.015em; white-space:nowrap; }
.call-button:hover, .call-button:focus-visible { background:#fff; color:#000; }
.top-call { min-width: 184px; }
.menu-toggle { display:none; }

.hero { height:540px; background-color:#403d38; background-image:image-set(url("images/hero-cemetery.webp") type("image/webp"), url("images/hero-cemetery.png") type("image/png")); background-position:center 53%; background-size:cover; background-repeat:no-repeat; position:relative; color:#fff; }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg, rgba(0,0,0,.76) 0%, rgba(0,0,0,.43) 42%, rgba(0,0,0,.09) 70%, rgba(0,0,0,.02) 100%); }
.hero-content { position:relative; z-index:2; width:min(1480px,100%); height:100%; margin:0 auto; padding: 62px 84px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }
.hero h1 { margin:0; font-size:clamp(46px,5vw,71px); line-height:1.04; letter-spacing:-.02em; text-shadow:0 2px 8px rgba(0,0,0,.3); }
.diamond-rule, .title-rule, .small-rule { display:flex; align-items:center; }
.diamond-rule { width: 530px; max-width: 70%; margin: 21px 0 15px; }
.diamond-rule span, .title-rule span, .small-rule span { height:1px; background:currentColor; flex:1; }
.diamond-rule b, .title-rule b, .small-rule b { font-size:11px; padding:0 9px; }
.hero p { margin:0 0 26px; font-size:23px; line-height:1.55; max-width:650px; }
.light-button, .outline-button { display:inline-flex; align-items:center; justify-content:center; gap:22px; min-height:59px; padding:14px 26px; border:2px solid #111; border-radius:7px; text-decoration:none; font-size:18px; font-weight:700; letter-spacing:.04em; }
.light-button { background:#fff; color:#111; box-shadow:0 0 0 2px rgba(255,255,255,.55); }
.light-button:hover, .light-button:focus-visible { background:#111; color:#fff; border-color:#fff; }
.outline-button { background:#fff; color:#111; min-height:48px; font-size:16px; padding:10px 18px; }

.quote-section { padding:54px 24px; background:var(--cream); border-bottom:1px solid #ded8cf; }
.quote-card { width:min(680px,100%); margin:0 auto; padding:34px; border:1px solid #d5cec3; border-radius:18px; background:#fff; box-shadow:0 14px 38px rgba(22,18,13,.12); font-family:var(--sans); }
.quote-step-label { color:#6a635b; font-size:13px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.quote-card h2 { margin:5px 0 3px; font-family:var(--serif); font-size:34px; line-height:1.15; text-align:center; }
.quote-intro { margin:0 0 22px; color:#655f58; text-align:center; font-size:16px; }
.quote-step-one > .quote-step-label { display:block; text-align:center; }
.quote-services { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.quote-service { min-height:92px; padding:16px; border:2px solid #d7d0c6; border-radius:10px; background:#fff; color:#151310; text-align:left; cursor:pointer; transition:border-color .15s, background .15s, transform .15s; }
.quote-service:hover, .quote-service:focus-visible { border-color:#171512; transform:translateY(-1px); }
.quote-service[aria-checked="true"] { border-color:#111; background:#f2eee7; box-shadow:0 0 0 2px #111 inset; }
.quote-service span { display:block; font-size:18px; font-weight:800; line-height:1.2; }
.quote-service small { display:block; margin-top:5px; color:#676058; font-size:13px; line-height:1.3; }
.quote-proof { margin:18px 0; padding:14px 16px; border-radius:9px; background:#f8f5ef; text-align:center; color:#292621; font-size:14px; }
.quote-proof > span { padding:0 10px; color:#999086; }
.quote-proof p { margin:6px 0 0; color:#625b53; font-family:var(--serif); font-style:italic; }
.quote-continue, .quote-submit, .quote-reset { width:100%; min-height:54px; border:2px solid #080808; border-radius:8px; background:#080808; color:#fff; font-weight:800; cursor:pointer; }
.quote-continue:disabled { border-color:#bbb4aa; background:#bbb4aa; cursor:not-allowed; }
.quote-response-note { margin:11px 0 5px; text-align:center; color:#696159; font-size:13px; }
.quote-call-link { display:block; text-align:center; font-weight:800; font-size:16px; }
.quote-step-topline { display:flex; justify-content:space-between; align-items:center; gap:14px; }
.quote-back { padding:4px 0; border:0; background:none; text-decoration:underline; cursor:pointer; font-size:14px; }
.quote-step-two h2 { margin-bottom:20px; }
.quote-field { display:block; margin:12px 0; color:#312d28; font-size:14px; font-weight:700; }
.quote-field-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.quote-phone-row { grid-template-columns:140px 1fr; }
.quote-field input, .quote-field textarea { display:block; width:100%; margin-top:6px; padding:12px 13px; border:1px solid #aaa198; border-radius:7px; background:#fff; color:#111; font-weight:400; }
.quote-field input:focus, .quote-field textarea:focus { border-color:#111; outline:3px solid rgba(0,0,0,.12); }
.quote-details { margin:14px 0; border:0; }
.quote-details summary { padding:8px 0; border:0; font-size:15px; font-weight:700; }
.quote-details small { color:#756d64; font-weight:400; }
.quote-success { text-align:center; }
.quote-success p { color:#5c554d; }
.quote-reset { width:auto; min-width:180px; padding:0 22px; }

.services-section { background:#fff; padding: 24px 70px 42px; }
.ornate-title { display:flex; justify-content:center; align-items:center; gap:15px; }
.title-leaf { width:145px; height:58px; object-fit:contain; }
.ornate-title h2 { margin:0; font-size:48px; line-height:1; letter-spacing:.03em; }
.title-rule { width: 410px; margin: 9px auto 18px; }
.service-grid { max-width:1380px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); }
.service-item { text-align:center; padding: 0 32px 4px; min-height: 250px; }
.service-item + .service-item { border-left:1px solid #8f8a84; }
.service-icon { height:88px; display:flex; align-items:center; justify-content:center; color:#000; font-size:51px; margin-bottom:4px; }
.service-icon img { width:88px; height:82px; object-fit:contain; }
.service-item h3 { margin: 8px 0 10px; font-size:24px; line-height:1.14; letter-spacing:.035em; }
.service-item p { margin:0 auto; max-width:245px; font-size:17px; line-height:1.5; }
.service-list { max-width:360px; margin:0 auto; padding-left:22px; text-align:left; font-size:17px; line-height:1.45; }
.service-list li + li { margin-top:7px; }

.about-section { min-height: 390px; display:grid; grid-template-columns: 1fr 1.03fr; background:#fff; }
.about-image { min-height:390px; overflow:hidden; }
.about-image img { display:block; width:100%; height:100%; min-height:390px; object-fit:cover; }
.about-copy { padding: 28px 56px 22px 42px; align-self:center; }
.about-copy h2 { margin:0; font-size:46px; letter-spacing:.02em; }
.small-rule { width:235px; margin:8px 0 16px; }
.about-copy p { font-size:18px; line-height:1.55; max-width:700px; margin:0 0 10px; }
.about-copy .outline-button { margin-top:5px; }

.blog-section { padding:60px 24px 72px; background:#f8f5ef; border-top:1px solid #ded8cf; }
.blog-shell { width:min(1120px,100%); margin:0 auto; }
.blog-heading h2 { font-size:44px; }
.blog-post { overflow:hidden; border-radius:14px; background:#fff; }
.blog-post-image { display:block; width:100%; max-height:430px; object-fit:contain; padding:22px; background:transparent; }
.blog-post-body { width:min(790px,100%); margin:0 auto; padding:44px 38px 54px; }
.blog-kicker { margin:0 0 7px !important; color:#655e56; font-family:var(--sans); font-size:13px !important; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.blog-post h3 { margin:0 0 18px; font-size:44px; line-height:1.1; }
.blog-post h4 { margin:42px 0 14px; padding-top:16px; border-top:1px solid #d7d0c7; font-size:29px; line-height:1.2; }
.blog-post-body p { margin:0 0 17px; font-size:18px; line-height:1.7; }
.blog-lead { font-size:22px !important; line-height:1.55 !important; }
.blog-post blockquote { margin:25px 0; padding:0; border:0; background:transparent; }
.blog-post blockquote p { margin:0 0 6px; font-weight:700; }
.blog-post blockquote p:last-child { margin-bottom:0; }
.blog-goal { display:grid; gap:8px; margin:20px 0 25px; padding:0; background:transparent; color:inherit; font-size:20px; }

.legacy-strip { min-height: 118px; background:#090909; color:#fff; display:grid; grid-template-columns:120px 1fr auto; align-items:center; gap:28px; padding: 14px 80px; }
.legacy-shield { width:96px; height:98px; display:grid; place-items:center; margin:auto; }
.legacy-shield img { width:100%; height:100%; object-fit:contain; }
.legacy-copy { font-size:26px; line-height:1.2; letter-spacing:.12em; }
.strip-call { border-color:#fff; min-width: 274px; font-size:24px; }

.trust-section { display:grid; grid-template-columns:repeat(3,1fr); max-width:1400px; margin:0 auto; padding: 26px 46px 20px; background:#fff; }
.trust-section article { display:grid; grid-template-columns:88px 1fr; gap:16px; padding:0 38px; min-height:110px; align-items:start; }
.trust-section article + article { border-left:1px solid #aaa59e; }
.trust-symbol { font-size:50px; line-height:1; text-align:center; }
.trust-symbol img { width:82px; height:82px; object-fit:contain; }
.trust-section h3 { margin:0 0 4px; font-size:20px; line-height:1.18; letter-spacing:.035em; }
.trust-section p { margin:0; font-size:15px; line-height:1.35; }

.cta-wrap { background:#fff; padding: 4px 68px 20px; }
.cta-box { max-width:1220px; min-height:98px; margin:0 auto; border:1px solid #c8c0b6; border-radius:11px; background:#fbf8f2; display:grid; grid-template-columns:90px 1fr auto; gap:22px; align-items:center; padding:12px 32px; }
.cta-phone-icon { width:62px; height:62px; display:grid; place-items:center; }
.cta-phone-icon img { width:62px; height:62px; object-fit:contain; }
.cta-copy h2 { margin:0; font-size:25px; letter-spacing:.04em; }
.cta-copy p { margin:1px 0 0; font-size:16px; }
.cta-call { min-width: 252px; font-size:20px; }

.gallery-accessible, .faq-section { padding: 58px 24px; background:#f9f6f0; border-top:1px solid #e2ddd4; }
.faq-section { background:#fff; }
.content-shell { max-width:1100px; margin:0 auto; text-align:center; }
.content-shell.narrow { max-width:880px; }
.content-shell h2 { font-size:42px; margin:0 0 12px; }
.content-shell p { font-size:19px; }
.faq-list { text-align:left; margin-top:24px; }
details { border-top:1px solid #bbb; }
details:last-child { border-bottom:1px solid #bbb; }
summary { cursor:pointer; font-size:21px; font-weight:700; padding:18px 2px; }
details p { margin:0 0 18px; color:#48443f; }

.site-footer { min-height: 160px; background:#080808; color:#fff; display:grid; grid-template-columns:1fr minmax(300px,auto) 1fr; align-items:center; padding:18px 54px 30px; gap:20px; position:relative; }
.footer-brand-block { justify-self:start; }
.footer-brand { display:block; width:min(300px,100%); margin:0; }
.footer-logo { display:block; width:100%; height:auto; }
.footer-contact { display:flex; flex-direction:column; align-items:center; }
.footer-contact a { color:#fff; text-decoration:none; font-weight:700; letter-spacing:.04em; }
.footer-contact a:first-child { font-size:35px; }
.footer-contact a:last-child { font-size:15px; }
.footer-rule { width:270px; border-top:1px solid #fff; margin:5px 0 4px; position:relative; }
.footer-rule:after { content:"◆"; position:absolute; left:48%; top:-10px; background:#080808; padding:0 6px; font-size:10px; }
.footer-region { display:grid; grid-template-columns:75px 1fr; gap:15px; align-items:center; justify-self:end; }
.indiana-mark { width:55px; height:85px; display:grid; place-items:center; }
.indiana-mark img { width:55px; height:85px; object-fit:contain; }
.footer-region strong { font-size:18px; line-height:1.18; letter-spacing:.05em; }
.footer-bottom { position:absolute; bottom:8px; left:50%; transform:translateX(-50%); white-space:nowrap; font-size:12px; }
.mobile-call-bar { display:none; }

.about-section, .blog-section, .legacy-strip, .trust-section, .cta-wrap, .gallery-accessible, .faq-section, .site-footer { content-visibility:auto; contain-intrinsic-size:auto 700px; }

:focus-visible { outline:4px solid #d29b00; outline-offset:3px; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; }
}

@media (max-width: 1100px) {
  .header-shell { grid-template-columns: 1fr auto; min-height:110px; padding:10px 22px; }
  .brand { width:280px; justify-content:flex-start; }
  .top-call { display:none; }
  .menu-toggle { display:inline-flex; align-items:center; gap:8px; min-height:52px; padding:10px 16px; background:#fff; border:2px solid #000; border-radius:6px; font-weight:700; }
  .primary-nav { display:none; position:absolute; top:100%; left:0; right:0; background:#fff; flex-direction:column; align-items:stretch; gap:0; padding:8px 22px 18px; border-top:1px solid #ddd; box-shadow:0 8px 18px rgba(0,0,0,.12); }
  .primary-nav.is-open { display:flex; }
  .primary-nav a { font-size:18px; padding:16px 8px; border-bottom:1px solid #ddd; }
  .service-grid { grid-template-columns:repeat(3,1fr); }
  .service-item { padding:28px; border-bottom:1px solid #aaa; }
  .trust-section { grid-template-columns:1fr; gap:18px; }
  .trust-section article + article { border-left:0; border-top:1px solid #aaa; padding-top:18px; }
  .site-footer { grid-template-columns:1fr minmax(280px,auto) 1fr; }
}

@media (max-width: 760px) {
  body { font-size:18px; padding-bottom:70px; }
  .header-shell { min-height:92px; }
  .brand { width:min(220px,calc(100vw - 118px)); }
  .hero { height: 560px; background-position: 63% center; }
  .hero-shade { background:linear-gradient(90deg,rgba(0,0,0,.8),rgba(0,0,0,.38)); }
  .hero-content { padding:44px 26px; justify-content:flex-end; }
  .hero h1 { font-size:47px; }
  .hero p { font-size:20px; }
  .desktop-break { display:none; }
  .diamond-rule { max-width:90%; }
  .services-section { padding:34px 18px; }
  .quote-section { padding:30px 14px; }
  .quote-card { padding:24px 18px; border-radius:14px; }
  .quote-card h2 { font-size:29px; }
  .quote-services { grid-template-columns:1fr; }
  .quote-service { min-height:78px; }
  .quote-field-row, .quote-phone-row { grid-template-columns:1fr; gap:0; }
  .ornate-title { gap:8px; }
  .ornate-title h2 { font-size:37px; }
  .title-leaf { flex:0 0 60px; width:60px; height:36px; }
  .title-rule { width:300px; max-width:90%; }
  .service-grid { grid-template-columns:1fr; }
  .service-item { border-left:0 !important; border-bottom:1px solid #aaa; padding:32px 18px; }
  .service-item:last-child { border-bottom:0; }
  .about-section { grid-template-columns:1fr; }
  .about-image { min-height:300px; }
  .about-copy { padding:32px 25px; }
  .about-copy h2 { font-size:40px; }
  .blog-section { padding:42px 14px 50px; }
  .blog-heading h2 { font-size:32px; text-align:center; }
  .blog-heading .title-leaf { flex-basis:52px; width:52px; }
  .blog-post-image { padding:10px; }
  .blog-post-body { padding:30px 21px 38px; }
  .blog-post h3 { font-size:35px; }
  .blog-post h4 { font-size:25px; }
  .blog-post-body p { font-size:17px; }
  .blog-lead { font-size:20px !important; }
  .legacy-strip { grid-template-columns:70px 1fr; padding:18px 22px; gap:18px; }
  .legacy-copy { font-size:19px; letter-spacing:.06em; }
  .strip-call { grid-column:1/-1; width:100%; font-size:21px; }
  .trust-section { padding:26px 18px; }
  .trust-section article { grid-template-columns:70px 1fr; padding:0 4px; }
  .cta-wrap { padding:8px 16px 20px; }
  .cta-box { grid-template-columns:64px 1fr; padding:16px; gap:14px; }
  .cta-call { grid-column:1/-1; width:100%; }
  .site-footer { grid-template-columns:1fr; text-align:center; padding:30px 20px 44px; }
  .footer-brand-block { justify-self:center; }
  .footer-brand { width:min(280px,90%); margin:auto; }
  .footer-region { grid-column:auto; justify-self:center; margin:auto; }
  .footer-contact a:first-child { font-size:30px; }
  .mobile-call-bar { display:block; position:fixed; left:0; right:0; bottom:0; z-index:100; background:#000; border-top:2px solid #fff; }
  .mobile-call-bar a { display:flex; align-items:center; justify-content:center; min-height:68px; color:#fff; text-decoration:none; font-size:23px; font-weight:700; }
}
