/* Complementary styles, restricted to this plugin. Typography, colors, backgrounds,
   container widths and spacing of Elementor widgets are managed natively in Elementor. */
.dcsp-site { box-sizing: border-box; }
.dcsp-site *, .dcsp-site *::before, .dcsp-site *::after { box-sizing: border-box; }
.dcsp-site .dcsp-header { position:sticky; top:0; z-index:45; box-shadow:0 3px 18px rgba(20,45,34,.065); }
.dcsp-site .dcsp-logo img { max-height:75px; width:auto; object-fit:contain; object-position:left center; }
.dcsp-site .dcsp-menu-trigger, .dcsp-site .dcsp-mobile-panel { display:none; }
.dcsp-site .dcsp-category-card, .dcsp-site .dcsp-crem-card,
.dcsp-site .dcsp-story-card, .dcsp-site .dcsp-panel { box-shadow:0 10px 25px rgba(24,61,51,.04); }
.dcsp-site .dcsp-card-photo img { width:100%; aspect-ratio:1.65; object-fit:cover; }
.dcsp-site .dcsp-metro-photo img { width:100%; aspect-ratio:1.5; object-fit:cover; }
.dcsp-site .dcsp-single-photo img { width:100%; aspect-ratio:1.75; object-fit:cover; }
.dcsp-site .dcsp-searchbox { display:grid; grid-template-columns: 1.35fr 1fr 1fr auto; gap:14px; align-items:end;
   padding:22px; border-radius:14px; border:1px solid #e2e9e3; background:white;
   box-shadow:0 15px 35px rgba(24,61,51,.09); }
.dcsp-site .dcsp-field { display:flex; flex-direction:column; gap:7px; min-width:0; }
.dcsp-site .dcsp-field label { color:#42584b; font-size:12px; font-weight:700; }
.dcsp-site .dcsp-field input, .dcsp-site .dcsp-field select { width:100%; border-radius:7px;
    border:1px solid #d9e3d9; background:white; color:#293d34; font-size:14px; padding:13px 12px; min-height:46px; }
.dcsp-site .dcsp-searchbox button { border:0; border-radius:8px; background:#245b4b;
    color:white; min-height:46px; padding:13px 22px; font-weight:750; font-size:14px; cursor:pointer; }
.dcsp-site .dcsp-featured-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.dcsp-site .dcsp-featured-item { overflow:hidden; border:1px solid #e2e9e3; border-radius:14px;
    background:white; display:flex; flex-direction:column; box-shadow:0 10px 26px rgba(24,61,51,.055); }
.dcsp-site .dcsp-featured-item[hidden] { display:none; }
.dcsp-site .dcsp-featured-photo { display:block; height:185px; background:#dfe9df; overflow:hidden; }
.dcsp-site .dcsp-featured-photo img { display:block; width:100%; height:100%; object-fit:cover; }
.dcsp-site .dcsp-featured-copy { display:flex; flex-direction:column; flex:1; gap:9px; padding:20px; }
.dcsp-site .dcsp-featured-copy>span { color:#416d54; font-size:11px; font-weight:750; }
.dcsp-site .dcsp-featured-copy h3 { color:#1c4837; font-weight:750; font-size:20px; line-height:1.3; margin:0; }
.dcsp-site .dcsp-featured-copy p { color:#627669; font-size:13px; line-height:1.7; margin:0 0 10px; }
.dcsp-site .dcsp-featured-copy>a { margin-top:auto; color:#245b4b; font-size:13px; font-weight:750; }
.dcsp-site .dcsp-featured-actions { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; margin-top:20px; gap:10px; }
.dcsp-site .dcsp-featured-actions p { color:#6b8073; font-size:13px; margin:0; }
.dcsp-site .dcsp-more { border:1px solid #b9cfc0; border-radius:8px; padding:12px 20px; color:#235b49; background:white; font-weight:700; cursor:pointer; }
.dcsp-site .dcsp-directory-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:19px; }
.dcsp-site .dcsp-directory-panel { background:#fff; padding:24px; border:1px solid #e2e9e3; border-radius:14px; }
.dcsp-site .dcsp-directory-panel h3 { font-size:21px; color:#173f34; margin:0 0 9px; }
.dcsp-site .dcsp-directory-badge { color:#67806f; font-size:12px; font-weight:750; }
.dcsp-site .dcsp-directory-panel ul { list-style:none; padding:0; margin:19px 0 0; }
.dcsp-site .dcsp-directory-panel li { padding:9px 0; border-top:1px solid #edf1eb; line-height:1.55; }
.dcsp-site .dcsp-directory-panel a { color:#245b4b; font-size:14px; font-weight:650; }
.dcsp-site .dcsp-directory-panel small { color:#809086; font-size:12px; }
.dcsp-site .dcsp-empty { color:#63786b; }
.dcsp-site .dcsp-single-hero { background-image:linear-gradient(130deg,#17483c,#286859); }
.dcsp-site .dcsp-single-header { box-shadow:0 2px 16px rgba(0,0,0,.045); }
@media (max-width:1050px) {
  .dcsp-site .dcsp-searchbox { grid-template-columns:1fr 1fr; }
  .dcsp-site .dcsp-featured-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:900px) {
  /* Mobile/tablet header never sticks; avoids obscuring content on small screens. */
  .dcsp-site .dcsp-header { position:static; top:auto; }
  .dcsp-site .dcsp-nav { display:none; }
  .dcsp-site .dcsp-menu-trigger { display:flex; }
  .dcsp-site .dcsp-header.dcsp-menu-open .dcsp-mobile-panel { display:flex; }
}
@media (max-width:650px) {
  .dcsp-site .dcsp-searchbox { grid-template-columns:1fr; padding:17px; }
  .dcsp-site .dcsp-searchbox button { width:100%; }
  .dcsp-site .dcsp-featured-grid, .dcsp-site .dcsp-directory-grid { grid-template-columns:1fr; }
  .dcsp-site .dcsp-featured-photo { height:220px; }
  .dcsp-site .dcsp-directory-panel { padding:20px; }
  .dcsp-site .dcsp-logo img { max-height:60px; }
}

/* Breadcrumb for the shared cemetery template, based on the original HTML.
   Scoped to cemetery pages; Elementor still controls template/layout typography. */
.dcsp-cemetery-page .dcsp-breadcrumbs {
  width:96%; max-width:1120px; margin:-15px auto 36px;
  font-size:12px; line-height:1.7; color:#62766b;
}
.dcsp-cemetery-page .dcsp-breadcrumbs a { color:#255c49; text-decoration:underline; text-underline-offset:2px; }
.dcsp-cemetery-page .dcsp-breadcrumbs a:hover { color:#153f33; }
@media (max-width:767px) {
  .dcsp-cemetery-page .dcsp-breadcrumbs { width:92%; margin:-12px auto 26px; font-size:11px; }
}


/* v1.4 — Home highlights: match original index.html without replacing other Elementor widgets. */
.dcsp-site .dcsp-featured-item { transition: transform .2s ease,box-shadow .2s ease; }
.dcsp-site .dcsp-featured-item:hover { transform:translateY(-3px);box-shadow:0 15px 32px rgba(24,61,51,.12); }
.dcsp-site .dcsp-featured-photo { position:relative;height:220px;background:#e1e7e2;overflow:hidden; }
.dcsp-site .dcsp-featured-photo>a { display:block;width:100%;height:100%; }
.dcsp-site .dcsp-featured-photo img { width:100%;height:100%;object-fit:cover;transition:transform .45s; }
.dcsp-site .dcsp-featured-item:hover .dcsp-featured-photo img { transform:scale(1.035); }
.dcsp-site .dcsp-featured-tag { position:absolute;left:14px;top:14px;max-width:calc(100% - 28px);background:#fffef2ed;border-radius:5px;padding:8px 9px;color:#234b40;font-size:10px;font-weight:800;letter-spacing:.45px;text-transform:uppercase; }
.dcsp-site .dcsp-featured-illustrative { position:absolute;bottom:9px;right:9px;background:rgba(24,45,37,.83);color:white;padding:5px 8px;border-radius:4px;font-size:10px; }
.dcsp-site .dcsp-featured-copy { padding:23px;gap:10px; }
.dcsp-site .dcsp-featured-location { color:#987d50;font-size:11px;font-weight:800;letter-spacing:.55px;text-transform:uppercase; }
.dcsp-site .dcsp-featured-copy h3 { color:#173f34;font-size:22px;font-weight:650;line-height:1.25; }
.dcsp-site .dcsp-featured-copy p { color:#76847d;font-size:13px;line-height:1.7;flex:1;margin:0 0 8px; }
.dcsp-site .dcsp-featured-links { display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:15px;border-top:1px solid #edf0ec; }
.dcsp-site .dcsp-featured-links a { color:#17503e;font-size:12px;font-weight:800;text-decoration:none; }
.dcsp-site .dcsp-featured-links .dcsp-featured-map { color:#987d50; }
.dcsp-site .dcsp-card-contact { margin-top:5px;padding:14px;background:#edf6e9;border:1px solid #d5e8c9;border-radius:10px; }
.dcsp-site .dcsp-card-contact>strong { display:block;color:#234e3b;font-size:11px;line-height:1.5;text-transform:uppercase;margin-bottom:10px; }
.dcsp-site .dcsp-card-contact-buttons { display:grid;grid-template-columns:1fr 1fr;gap:8px; }
.dcsp-site .dcsp-card-contact-buttons a { display:flex;align-items:center;justify-content:center;min-height:41px;padding:9px 5px;border-radius:6px;color:#fff;font-weight:800;text-align:center;font-size:11px;line-height:1.3;text-decoration:none; }
.dcsp-site .dcsp-card-contact-phone { background:#1888d5; }
.dcsp-site .dcsp-card-contact-wa { background:#27a653; }
.dcsp-site .dcsp-card-contact small { display:block;margin-top:9px;font-size:10px;line-height:1.5;color:#64796a; }
/* v1.4 — Cremation cards: native Elementor widgets in original horizontal layout. */
.dcsp-site .dcsp-crem-card.dcsp-crem-horizontal { display:flex;flex-direction:row;align-items:stretch;overflow:hidden; }
.dcsp-site .dcsp-crem-media { flex:0 0 45%;width:45%;min-width:0;min-height:360px;display:flex; }
.dcsp-site .dcsp-crem-media .elementor-widget-image, .dcsp-site .dcsp-crem-media .elementor-widget-container { width:100%;height:100%; }
.dcsp-site .dcsp-crem-media img { display:block;width:100%;height:100%;object-fit:cover; }
.dcsp-site .dcsp-crem-body { flex:1 1 55%;width:55%;min-width:0; }
.dcsp-site .dcsp-crem-extra { display:none; }
.dcsp-site .dcsp-crem-expanded .dcsp-crem-extra { display:block; }
.dcsp-site .dcsp-crem-actions { flex-wrap:nowrap;gap:8px; }
.dcsp-site .dcsp-crem-actions>.elementor-element { flex:1 1 0;min-width:0; }
.dcsp-site .dcsp-crem-actions .elementor-button { display:flex;align-items:center;justify-content:center;min-height:42px; }
.dcsp-site .dcsp-crem-contact-note p { margin:0;line-height:1.5;font-size:10px; }
.dcsp-site .dcsp-crem-contact-title .elementor-heading-title { text-transform:uppercase; }
@media(max-width:1050px) {
  .dcsp-site .dcsp-crem-card.dcsp-crem-horizontal { width:100%; }
}
@media(max-width:760px) {
  .dcsp-site .dcsp-crem-card.dcsp-crem-horizontal { flex-direction:column; }
  .dcsp-site .dcsp-crem-media { width:100%;min-height:260px;height:260px;flex:0 0 auto; }
  .dcsp-site .dcsp-crem-body { width:100%; }
}
@media(max-width:410px) {
  .dcsp-site .dcsp-card-contact-buttons { grid-template-columns:1fr; }
  .dcsp-site .dcsp-crem-actions { flex-direction:column; }
}

/* v1.5 — Source typography. Widget text/font values are edited via the native
   Elementor settings by the version upgrade; only generated shortcode links,
   breadcrumbs and the full-footer structure require complementary CSS. */
.dcsp-site { font-family:'DM Sans',Arial,sans-serif; }
.dcsp-site .dcsp-featured-copy h3,
.dcsp-site .dcsp-directory-panel h3 { font-family:'Playfair Display',Georgia,serif; font-weight:600; }

/* Accessible breadcrumb sits BETWEEN the hero and information cards.
   No negative margin: cannot overlap the green banner anymore. */
.dcsp-cemetery-page .dcsp-site > .dcsp-breadcrumbs,
.dcsp-cemetery-page .dcsp-breadcrumbs {
  display:block;
  width:100%;
  max-width:none;
  margin:0;
  padding:16px max(20px,calc((100% - 1120px)/2));
  background:#f7f8f5;
  color:#63796e;
  font-size:12px;
  line-height:1.65;
  border-bottom:1px solid #e6ece5;
}
.dcsp-cemetery-page .dcsp-breadcrumbs a {
  color:#245b4b;
  text-decoration:none;
}
.dcsp-cemetery-page .dcsp-breadcrumbs a:hover { text-decoration:underline; }
.dcsp-cemetery-page .dcsp-breadcrumbs [aria-current="page"] { color:#536c61; }
@media(max-width:767px) {
  .dcsp-cemetery-page .dcsp-site > .dcsp-breadcrumbs,
  .dcsp-cemetery-page .dcsp-breadcrumbs {padding:14px 20px;font-size:12px;}
}

/* v1.5 — Full source footer: its copy, links and logo remain native Elementor
   widgets, while only the three-column grouping and legal separators use CSS. */
.dcsp-site .dcsp-full-footer { color:#d4e1d8; }
.dcsp-site .dcsp-footer-shell { width:calc(100% - 40px); max-width:1200px; margin-inline:auto; }
.dcsp-site .dcsp-footer-cols { display:flex; align-items:flex-start; flex-wrap:wrap; justify-content:space-between; gap:42px; }
.dcsp-site .dcsp-footer-cols > .dcsp-footer-about { flex: 2 1 360px; }
.dcsp-site .dcsp-footer-cols > .dcsp-footer-nav { flex: 1 1 170px; }
.dcsp-site .dcsp-footer-cols > .dcsp-footer-contact { flex: 1.3 1 265px; }
.dcsp-site .dcsp-footer-logo-box { display:inline-flex; align-self:flex-start; width:auto; max-width:100%; }
.dcsp-site .dcsp-full-footer-logo img { max-width:290px; width:100%; height:auto; object-fit:contain; }
.dcsp-site .dcsp-footer-cols .dcsp-footer-links p { margin:0 0 12px; line-height:1.6; }
.dcsp-site .dcsp-footer-cols .dcsp-footer-links a,
.dcsp-site .dcsp-footer-credit a { color:inherit; text-decoration:none; }
.dcsp-site .dcsp-footer-cols .dcsp-footer-links a:hover,
.dcsp-site .dcsp-footer-credit a:hover { text-decoration:underline; }
.dcsp-site .dcsp-footer-cols .dcsp-footer-links .dcsp-footer-email-note { font-size:11px; color:#aac5b9; }
.dcsp-site .dcsp-footer-developer { border-top:1px solid rgba(255,255,255,.17); text-align:center; align-items:center; }
.dcsp-site .dcsp-footer-developer .elementor-widget-heading,
.dcsp-site .dcsp-footer-developer .elementor-widget-text-editor { text-align:center; }
.dcsp-site .dcsp-footer-developer .elementor-heading-title { text-align:center; }
.dcsp-site .dcsp-footer-credit p { margin:0; }
.dcsp-site .dcsp-footer-credit a { color:#e5c18d; font-weight:800; }
.dcsp-site .dcsp-footer-copy { border-top:1px solid rgba(255,255,255,.15); }
.dcsp-site .dcsp-footer-copy p { margin:0; }
@media(max-width:800px) {
  .dcsp-site .dcsp-footer-cols {gap:30px;}
  .dcsp-site .dcsp-footer-cols > .dcsp-footer-about,
  .dcsp-site .dcsp-footer-cols > .dcsp-footer-nav,
  .dcsp-site .dcsp-footer-cols > .dcsp-footer-contact { flex:1 1 100%; width:100%; }
  .dcsp-site .dcsp-footer-shell { width:calc(100% - 36px); }
}
