/*
Theme Name: Hello Elementor Child – Schellhase
Theme URI: https://schellhase-bestattungen.de
Description: Child theme of Hello Elementor for Schellhase Bestattungen. Holds the pixel-perfect header/footer CSS ported 1:1 from the Lovable design.
Author: NMG Technologies
Template: hello-elementor
Version: 1.0.4
*/

/* ============================================================
   Schellhase – pixel-perfect Header/Footer (ported 1:1 from the

/* ============================================================
   Schellhase — design layer for NATIVE Elementor widgets.
   Container layout/background = Elementor container SETTINGS (editable in UI).
   Widget fine-styling = these CSS classes (Advanced > CSS Classes on each widget).
   (Elementor only reliably outputs custom classes on WIDGETS here, so all
    selectors below hang off widget classes + Elementor's own markup.)
   ============================================================ */
:root{
  --sh-primary:#00a88c; --sh-fg:#4d4d4d; --sh-muted-fg:#666666;
  --sh-bg:#f5f5f5; --sh-card:#ffffff; --sh-border:#dde3e2; --sh-muted:#eaeeed;
}
/* All spacing comes from explicit flex gaps (Tailwind-style). Kill Elementor's
   default 20px widget bottom-margin so it never doubles up with container gaps. */
.elementor-widget:not(:last-child){ margin-block-end:0; }
/* nested flex item children must not add their own block margins (Elementor quirk) */
.e-con > .elementor-widget, .e-con-inner > .elementor-widget{ margin-block-start:0; margin-block-end:0; }

/* ---------------- HEADER ---------------- */
.elementor-location-header{ position:sticky; top:0; z-index:50; }
.sh-hdr__logo img{ height:144px !important; width:auto !important; max-width:none; }
.sh-hdr__nav .elementor-nav-menu > li > a.elementor-item{
  font-size:16px; font-weight:500; color:var(--sh-fg); padding:6px 12px; line-height:1.2; transition:color .15s;
}
.sh-hdr__nav .elementor-nav-menu > li > a.elementor-item:hover,
.sh-hdr__nav .elementor-nav-menu > li > a.elementor-item.elementor-item-active{ color:var(--sh-primary); }
.sh-hdr__nav .elementor-nav-menu .elementor-item.elementor-item-active{ box-shadow:inset 0 -2px 0 0 var(--sh-primary); }
.sh-hdr__nav ul.elementor-nav-menu--dropdown{ border-radius:6px; box-shadow:0 10px 15px -3px rgb(0 0 0/.1),0 4px 6px -4px rgb(0 0 0/.1); padding:6px; }
.sh-hdr__nav ul.elementor-nav-menu--dropdown a.elementor-sub-item{ font-size:14px; color:var(--sh-fg); border-radius:4px; padding:8px 12px; }
.sh-hdr__nav ul.elementor-nav-menu--dropdown a.elementor-sub-item:hover{ background:var(--sh-primary); color:#fff; }
/* phone button — teal, stacked "24h" above number */
.sh-hdr__phone .elementor-button{ background:var(--sh-primary); color:#fff; border-radius:6px; padding:8px 16px; font-size:14px; font-weight:500; }
.sh-hdr__phone .elementor-button:hover{ background:#009a80; }
.sh-hdr__phone .elementor-button-content-wrapper{ align-items:center; gap:8px; }
.sh-hdr__phone .elementor-button-text{ display:flex; flex-direction:column; align-items:center; line-height:1.15; }
.sh-hdr__phone .elementor-button-text::before{ content:"24h"; font-size:12px; font-weight:400; opacity:.9; }
@media (max-width:1024px){ .sh-hdr__logo img{ height:84px !important; } .sh-hdr__nav .elementor-nav-menu > li > a.elementor-item{ font-size:14px; padding:6px 8px; } }

/* ---------------- FOOTER (layout via container settings; colors via widget classes) ---------------- */
.sh-ftr__logo img{ filter:brightness(0) invert(1); opacity:.85; }
.sh-ftr__h .elementor-heading-title{ font-size:18px; font-weight:600; color:#fff; margin-bottom:16px; }
.sh-ftr__tag, .sh-ftr__tag p{ font-size:14px; line-height:1.6; color:rgb(255 255 255/.8); }
.sh-ftr__links .elementor-nav-menu > li > a.elementor-item{ font-size:14px; color:rgb(255 255 255/.8); padding:4px 0; }
.sh-ftr__links .elementor-nav-menu > li > a.elementor-item:hover{ color:#fff; }
.sh-ftr__contact .elementor-icon-list-item{ align-items:flex-start; margin-bottom:8px; }
.sh-ftr__contact .elementor-icon-list-icon{ padding-top:2px; }
.sh-ftr__contact .elementor-icon-list-icon svg,
.sh-ftr__contact .elementor-icon-list-icon i{ width:16px; height:16px; color:#fff; fill:#fff; }
.sh-ftr__contact .elementor-icon-list-text{ font-size:14px; color:rgb(255 255 255/.8); }
.sh-ftr__contact a:hover .elementor-icon-list-text{ color:#fff; }
.sh-ftr__st, .sh-ftr__st p{ font-size:14px; line-height:1.5; color:rgb(255 255 255/.8); }
.sh-ftr__st strong{ color:#fff; font-weight:500; }
.sh-ftr__st a{ color:rgb(255 255 255/.8); }
.sh-ftr__copy, .sh-ftr__copy p, .sh-ftr__legal, .sh-ftr__legal p{ font-size:14px; color:rgb(255 255 255/.8); margin:0; }
.sh-ftr__copy a, .sh-ftr__legal a{ color:rgb(255 255 255/.8); }
.sh-ftr__copy a:hover, .sh-ftr__legal a:hover{ color:#fff; }

/* ============================ HOMEPAGE ============================ */
/* hero */
.sh-hero-h1 .elementor-heading-title{ font-size:60px; font-weight:300; color:var(--sh-fg); line-height:1.1; }
@media(max-width:1024px){ .sh-hero-h1 .elementor-heading-title{ font-size:48px; } }
@media(max-width:767px){ .sh-hero-h1 .elementor-heading-title{ font-size:36px; } }
.sh-hero-sub .elementor-widget-container{ font-family:Georgia,"Times New Roman",serif; font-style:italic; font-size:30px; color:var(--sh-fg); }
@media(max-width:1024px){ .sh-hero-sub .elementor-widget-container{ font-size:24px; } }
@media(max-width:767px){ .sh-hero-sub .elementor-widget-container{ font-size:20px; } }
/* section headings / leads */
.sh-h2 .elementor-heading-title{ font-size:36px; font-weight:300; line-height:1.15; }
.sh-h2--teal .elementor-heading-title{ color:var(--sh-primary); }
.sh-h2--fg .elementor-heading-title{ color:var(--sh-fg); }
.sh-lead .elementor-widget-container{ font-size:18px; line-height:1.625; color:var(--sh-muted-fg); }
.sh-body .elementor-widget-container{ font-size:18px; line-height:1.625; color:var(--sh-muted-fg); }
.sh-body a{ color:var(--sh-primary); text-decoration:underline; }
.sh-cta-btn .elementor-button{ background:var(--sh-primary); color:#fff; border-radius:6px; padding:12px 32px; font-size:14px; font-weight:500; min-height:44px; display:inline-flex; align-items:center; justify-content:center; gap:8px; }
.sh-cta-btn .elementor-button-icon svg, .sh-cta-btn .elementor-button-icon i{ width:16px; height:16px; font-size:16px; }
.sh-cta-btn .elementor-button:hover{ background:#009a80; }
/* feature cards (3) */
.sh-feat-h .elementor-heading-title{ font-size:20px; font-weight:600; color:var(--sh-fg); }
.sh-feat-p .elementor-widget-container{ color:var(--sh-muted-fg); }
/* "Im Trauerfall" cards */
.sh-tf-h .elementor-heading-title{ font-size:20px; font-weight:600; color:var(--sh-fg); margin:0; line-height:1.3; }
/* zero inner heading/paragraph margins inside Im-Trauerfall cards so spacing = container gap only */
.sh-tf-p, .sh-tf-em, .sh-hinweis, .sh-tf-h{ margin:0 !important; }
.sh-tf-p .elementor-widget-container, .sh-tf-em .elementor-widget-container{ margin:0; padding:0; }
.sh-tf-p p, .sh-tf-em p, .sh-hinweis p, .sh-tf-num .elementor-heading-title{ margin:0 !important; }
.sh-tf-p p{ line-height:1.6; }
.sh-tf-num .elementor-heading-title{ line-height:1; }
/* icon-list: no top padding on first item, no bottom on last (space comes from card gap) */
.sh-tf-list .elementor-icon-list-items{ margin:0; }
.sh-tf-list .elementor-icon-list-item:first-child{ padding-block-start:0 !important; }
.sh-tf-list .elementor-icon-list-item:last-child{ padding-block-end:0 !important; }
.sh-tf-num .elementor-heading-title{ display:flex; align-items:center; justify-content:center; width:32px; height:32px; border-radius:9999px; background:var(--sh-primary); color:#fff; font-size:16px; font-weight:600; }
.sh-tf-p .elementor-widget-container{ color:var(--sh-muted-fg); }
.sh-tf-em .elementor-widget-container{ font-weight:600; color:var(--sh-primary); }
.sh-tf-list .elementor-icon-list-icon svg{ width:20px; height:20px; fill:var(--sh-primary); }
.sh-tf-list .elementor-icon-list-text{ color:var(--sh-muted-fg); font-size:15px; }
.sh-hinweis .elementor-widget-container{ font-size:14px; color:var(--sh-muted-fg); }
.sh-hinweis strong{ color:var(--sh-fg); }
/* about */
.sh-about-img img{ width:320px; height:320px; border-radius:9999px; object-fit:cover; object-position:top; box-shadow:0 10px 15px -3px rgb(0 0 0/.1); }
@media(max-width:767px){ .sh-about-img img{ width:256px; height:256px; } }
.sh-about-name .elementor-widget-container{ font-size:16px; font-weight:500; color:var(--sh-fg); text-align:center; }
/* service cards (6) */
.sh-svc-img img{ height:224px; width:100%; object-fit:cover; transition:transform .3s; }
.sh-svc-img:hover img{ transform:scale(1.08); }
.sh-svc-h .elementor-heading-title{ font-size:20px; font-weight:300; color:var(--sh-fg); }
.sh-svc-p .elementor-widget-container{ font-size:14px; line-height:1.6; color:var(--sh-muted-fg); }
/* location cards (4) */
.sh-loc-img img{ width:100%; aspect-ratio:4/3; object-fit:cover; transition:transform .3s; }
.sh-loc-img:hover img{ transform:scale(1.05); }
.sh-loc-h .elementor-heading-title{ font-size:20px; font-weight:600; color:var(--sh-fg); }
.sh-loc-addr .elementor-widget-container{ font-size:14px; color:var(--sh-muted-fg); }
.sh-loc-tel .elementor-widget-container{ font-size:14px; }
.sh-loc-tel a{ color:var(--sh-primary); }
.sh-loc-desc .elementor-widget-container{ font-size:14px; line-height:1.6; color:var(--sh-muted-fg); }
.sh-loc-links .elementor-widget-container{ font-size:14px; }
.sh-loc-links a{ color:var(--sh-primary); margin-right:16px; text-decoration:none; }
.sh-loc-links a:hover{ text-decoration:underline; }

/* ============================ VORSORGE ============================ */
.sh-h2v .elementor-heading-title{ font-size:30px; font-weight:300; line-height:1.2; }
.sh-herotext .elementor-widget-container{ font-size:18px; line-height:1.6; color:var(--sh-fg); }
/* step list */
.sh-step-list .elementor-icon-list-item{ margin-bottom:16px; align-items:flex-start; }
.sh-step-list .elementor-icon-list-icon{ padding-top:2px; }
.sh-step-list .elementor-icon-list-icon svg{ width:20px; height:20px; fill:var(--sh-primary); }
.sh-step-list .elementor-icon-list-text{ font-size:18px; color:var(--sh-muted-fg); }
/* Vorsorge form (Elementor Pro Form widget) */
.sh-form .elementor-form-fields-wrapper{ gap:0; }
.sh-form .elementor-field-group{ margin-bottom:18px; }
.sh-form .elementor-field-group > .elementor-field-label{ font-size:14px; font-weight:500; color:var(--sh-fg); margin-bottom:8px; }
.sh-form .elementor-field-group .elementor-field-textual,
.sh-form .elementor-field-group select.elementor-field,
.sh-form .elementor-field-group textarea.elementor-field{
  background:var(--sh-bg); border:1px solid var(--sh-border); border-radius:6px; min-height:42px;
  font-size:14px; color:var(--sh-fg); padding:8px 12px; box-shadow:none;
}
.sh-form .elementor-field-group textarea.elementor-field{ min-height:120px; }
.sh-form .elementor-field-group .elementor-field-textual:focus,
.sh-form .elementor-field-group select.elementor-field:focus{ border-color:var(--sh-primary); outline:none; }
.sh-form .elementor-field-type-html h3{ font-size:20px; font-weight:600; color:var(--sh-fg); margin:8px 0 4px; }
.sh-form .elementor-field-subgroup .elementor-field-label{ font-size:14px; color:var(--sh-muted-fg); font-weight:400; }
.sh-form .elementor-button{ background:var(--sh-primary); color:#fff; border-radius:6px; padding:0 32px; min-height:44px; font-size:16px; font-weight:500; justify-content:center; }
.sh-form .elementor-button:hover{ background:#009a80; }
.sh-form button[type="submit"], .sh-form .elementor-field-type-submit{ display:flex; justify-content:center; }

/* ---- Gravity Forms (Vorsorge) styled to match the design ---- */
.sh-gform .gform_wrapper .gform_required_legend{ display:none; }
.sh-gform .gform_wrapper .gfield_label{ font-size:14px; font-weight:500; color:var(--sh-fg); margin-bottom:8px; }
.sh-gform .gform_wrapper .gsection{ border-bottom:0; margin-top:8px; padding-bottom:0; }
.sh-gform .gform_wrapper .gsection .gsection_title{ font-size:20px; font-weight:600; color:var(--sh-fg); }
.sh-gform .gform_wrapper input[type=text],
.sh-gform .gform_wrapper input[type=email],
.sh-gform .gform_wrapper input[type=tel],
.sh-gform .gform_wrapper input[type=number],
.sh-gform .gform_wrapper input[type=date],
.sh-gform .gform_wrapper select,
.sh-gform .gform_wrapper textarea{
  background:var(--sh-bg) !important; border:1px solid var(--sh-border) !important; border-radius:6px !important;
  min-height:42px; font-size:14px; color:var(--sh-fg); padding:8px 12px; box-shadow:none !important; width:100%;
}
.sh-gform .gform_wrapper textarea{ min-height:120px; }
.sh-gform .gform_wrapper input:focus,
.sh-gform .gform_wrapper select:focus,
.sh-gform .gform_wrapper textarea:focus{ border-color:var(--sh-primary) !important; outline:none; }
.sh-gform .gform_wrapper .gfield_consent_label, .sh-gform .gform_wrapper .gfield-consent-description{ font-size:14px; color:var(--sh-muted-fg); font-weight:400; }
.sh-gform .gform_wrapper .gfield_consent_label a{ color:var(--sh-primary); text-decoration:underline; }
.sh-gform .gform_wrapper .gform_footer{ display:flex; justify-content:center; padding-top:8px; }
.sh-gform .gform_wrapper .gform_button{
  background:var(--sh-primary) !important; color:#fff !important; border:0; border-radius:6px;
  padding:0 32px; min-height:44px; font-size:16px; font-weight:500; cursor:pointer; transition:background-color .15s;
}
.sh-gform .gform_wrapper .gform_button:hover{ background:#009a80 !important; }
.sh-gform .gform_confirmation_message{ font-size:18px; color:var(--sh-primary); text-align:center; padding:24px 0; }

/* ============================ GEDENKPORTAL ============================ */
.sh-hero-h1--white .elementor-heading-title{ color:#fff !important; }
.sh-herotext--white .elementor-widget-container{ color:rgba(255,255,255,0.9); font-size:18px; line-height:1.6; }
.sh-btn-outline .elementor-button{ background:transparent; color:var(--sh-primary); border:1px solid var(--sh-primary); border-radius:6px; padding:12px 32px; font-size:16px; font-weight:500; }
.sh-btn-outline .elementor-button:hover{ background:var(--sh-primary); color:#fff; }
.sh-btnrow{ } /* row container of CTA buttons (layout via container settings) */

/* ============================ IM TRAUERFALL ============================ */
/* emergency contact bar (teal, white text, white button) */
.sh-emh .elementor-heading-title{ font-size:24px; font-weight:300; color:#fff; }
.sh-emt .elementor-widget-container{ font-size:18px; color:#fff; }
.sh-btn-white .elementor-button{ background:#fff; color:var(--sh-fg); border-radius:6px; padding:12px 28px; font-size:20px; font-weight:600; }
.sh-btn-white .elementor-button:hover{ background:rgba(255,255,255,.9); }
.sh-btn-white .elementor-button-icon{ color:var(--sh-fg); }
/* checklist accordion */
.sh-acc .elementor-accordion .elementor-accordion-item{ border:1px solid var(--sh-border); border-radius:12px; overflow:hidden; margin-bottom:16px; background:#fff; box-shadow:0 1px 2px rgb(0 0 0/.05); }
.sh-acc .elementor-accordion .elementor-tab-title{ border:0; padding:16px 20px; font-size:16px; font-weight:500; color:var(--sh-fg); background:transparent; }
.sh-acc .elementor-accordion .elementor-tab-title.elementor-active{ color:var(--sh-primary); }
.sh-acc .elementor-accordion .elementor-tab-title .elementor-accordion-icon{ color:var(--sh-primary); }
.sh-acc .elementor-accordion .elementor-tab-content{ border:0; padding:0 20px 16px; }
.sh-acc .elementor-tab-content ul{ margin:0; padding:0; list-style:none; }
.sh-acc .elementor-tab-content li{ position:relative; padding-left:32px; margin-bottom:12px; color:var(--sh-muted-fg); line-height:1.5; }
.sh-acc .elementor-tab-content li::before{ content:""; position:absolute; left:0; top:2px; width:20px; height:20px; background-color:var(--sh-primary); -webkit-mask:url("/schellhase-bestattungen-wp/wp-content/uploads/2026/06/circle-check-mask.svg") center / 20px 20px no-repeat; mask:url("/schellhase-bestattungen-wp/wp-content/uploads/2026/06/circle-check-mask.svg") center / 20px 20px no-repeat; }
/* print button (HTML widget) */
.sh-print button{ display:inline-flex; align-items:center; gap:8px; padding:8px 16px; font-size:14px; font-weight:500; color:var(--sh-muted-fg); background:var(--sh-muted); border:0; border-radius:8px; cursor:pointer; transition:background .2s; }
.sh-print button:hover{ background:#dde7e5; }
.sh-print svg{ width:16px; height:16px; }


/* Im-Trauerfall accordion: chevron-down right-aligned (Lovable shadcn), rotates on open */
.sh-acc .elementor-accordion .elementor-tab-title{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.sh-acc .elementor-accordion .elementor-tab-title .elementor-accordion-title{ order:1; }
.sh-acc .elementor-accordion .elementor-accordion-icon{ order:2; width:20px; height:20px; min-width:20px; position:relative; margin:0; padding:0; float:none; }
.sh-acc .elementor-accordion .elementor-accordion-icon i, .sh-acc .elementor-accordion .elementor-accordion-icon svg{ display:none !important; }
.sh-acc .elementor-accordion .elementor-accordion-icon::before{ content:""; position:absolute; inset:0; background-color:var(--sh-muted-fg); -webkit-mask:url("/schellhase-bestattungen-wp/wp-content/uploads/2026/06/chevron-mask.svg") center / 20px 20px no-repeat; mask:url("/schellhase-bestattungen-wp/wp-content/uploads/2026/06/chevron-mask.svg") center / 20px 20px no-repeat; transition:transform .25s; }
.sh-acc .elementor-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon::before{ transform:rotate(180deg); }

/* ============================ ERSTE SCHRITTE ============================ */
.sh-prose .elementor-widget-container{ font-size:16px; line-height:1.7; color:var(--sh-muted-fg); }
.sh-prose strong{ color:var(--sh-fg); }
.sh-prose a{ color:var(--sh-primary); text-decoration:underline; }
.sh-rounded-img img{ border-radius:12px; box-shadow:0 10px 15px -3px rgb(0 0 0/.1),0 4px 6px -4px rgb(0 0 0/.1); width:100%; height:auto; object-fit:cover; }
.sh-es-card .elementor-icon-box-icon, .sh-es-icon .elementor-icon{ }
.sh-tf-num--sm .elementor-heading-title{ width:24px; height:24px; font-size:12px; }

/* ============================ GRABMALE + FLORISTIK ============================ */
/* image carousel */
.sh-carousel .elementor-image-carousel-wrapper{ border-radius:12px; overflow:hidden; box-shadow:0 10px 15px -3px rgb(0 0 0/.1); }
.sh-carousel .elementor-swiper-button{ color:#fff; background:rgba(0,168,140,.85); width:40px; height:40px; border-radius:9999px; display:flex; align-items:center; justify-content:center; }
.sh-carousel .swiper-pagination-bullet-active{ background:var(--sh-primary); }
/* bold heading variant (Floristik uses font-bold) */
.sh-h2b .elementor-heading-title{ font-size:30px; font-weight:700; line-height:1.2; color:var(--sh-fg); }
/* Floristik: vorteile cards (icon no-circle + title + desc) */
.sh-fcard{ }
.sh-fc-ico .elementor-icon{ color:var(--sh-primary); }
.sh-fc-ico .elementor-icon svg, .sh-fc-ico .elementor-icon i{ width:48px; height:48px; font-size:48px; color:var(--sh-primary); fill:var(--sh-primary); }
.sh-fc-h .elementor-heading-title{ font-size:20px; font-weight:600; color:var(--sh-fg); }
.sh-fc-p .elementor-widget-container{ color:var(--sh-muted-fg); }
/* arrangement cards: title bold + checklist */
.sh-arr-h .elementor-heading-title{ font-size:20px; font-weight:700; color:var(--sh-fg); }
.sh-arr-list .elementor-icon-list-icon svg{ width:16px; height:16px; fill:var(--sh-primary); }
.sh-arr-list .elementor-icon-list-text{ font-size:14px; color:var(--sh-fg); }
/* FAQ cards (icon + question + answer) */
.sh-faq-q .elementor-heading-title{ font-size:18px; font-weight:600; color:var(--sh-fg); }
.sh-faq-a .elementor-widget-container{ color:var(--sh-muted-fg); }
/* numbered step card (Floristik Ablauf) */
.sh-stepnum .elementor-heading-title{ display:flex; align-items:center; justify-content:center; width:48px; height:48px; border-radius:9999px; background:var(--sh-primary); color:#fff; font-size:20px; font-weight:700; }
/* map embed */
.sh-map iframe{ width:100%; height:400px; border:0; border-radius:12px; }
/* accent note box */
.sh-note .elementor-widget-container{ background:rgba(0,168,140,.08); border:1px solid rgba(0,168,140,.2); border-radius:8px; padding:16px; }
.sh-note strong{ color:var(--sh-primary); }
/* teal CTA bar text */
.sh-emh-b .elementor-heading-title{ font-size:30px; font-weight:700; color:#fff; }
.sh-emt2 .elementor-widget-container{ font-size:18px; color:rgba(255,255,255,.9); }
.sh-btn-white2 .elementor-button{ background:#fff; color:var(--sh-primary); border-radius:6px; padding:12px 32px; font-size:16px; font-weight:600; }
.sh-btn-outline-w .elementor-button{ background:rgba(255,255,255,.15); color:#fff; border:1px solid #fff; border-radius:6px; padding:12px 32px; font-size:16px; font-weight:600; }
.sh-btn-outline-w .elementor-button:hover{ background:#fff; color:var(--sh-primary); }
.sh-bold .elementor-heading-title{ font-weight:700 !important; }
.sh-hnote .elementor-widget-container{ font-size:14px; color:rgba(255,255,255,.8); }
.sh-fc-ico .elementor-icon{ text-align:left; }
.sh-contact-list .elementor-icon-list-icon svg{ width:18px; height:18px; stroke:var(--sh-primary) !important; fill:none !important; }
.sh-contact-list .elementor-icon-list-text{ color:var(--sh-muted-fg); }
.sh-contact-list .elementor-icon-list-text strong{ color:var(--sh-fg); display:block; }

/* ---- lucide SVG icons (stroke-based, exact 1:1) ---- */
.sh-licon .elementor-icon-wrapper, .sh-licon .elementor-icon{ display:flex; align-items:center; justify-content:center; line-height:0; padding:0; margin:0; }
.sh-licon .elementor-icon svg{ stroke:var(--sh-primary) !important; fill:none !important; display:block; }
.sh-licon-24 .elementor-icon, .sh-licon-24 .elementor-icon-wrapper{ width:24px; height:24px; }
.sh-licon-32 .elementor-icon, .sh-licon-32 .elementor-icon-wrapper{ width:32px; height:32px; }
.sh-licon-20 .elementor-icon, .sh-licon-20 .elementor-icon-wrapper{ width:20px; height:20px; }
.sh-licon-16 .elementor-icon, .sh-licon-16 .elementor-icon-wrapper{ width:16px; height:16px; }
.sh-licon-48 .elementor-icon svg{ width:48px; height:48px; }
.sh-licon-40 .elementor-icon svg{ width:40px; height:40px; }
.sh-licon-24 .elementor-icon svg{ width:24px; height:24px; }
.sh-llist .elementor-icon-list-icon svg{ stroke:var(--sh-primary) !important; fill:none !important; width:16px; height:16px; }
.sh-llist-20 .elementor-icon-list-icon svg{ width:20px; height:20px; }
/* Floristik hero exact sizing */
.sh-fhero-h1 .elementor-heading-title{ font-size:48px; font-weight:700; color:#fff; line-height:1.1; }
@media(max-width:767px){ .sh-fhero-h1 .elementor-heading-title{ font-size:36px; } }
.sh-fhero-sub .elementor-widget-container{ font-size:24px; color:#fff; line-height:1.4; }
@media(max-width:767px){ .sh-fhero-sub .elementor-widget-container{ font-size:20px; } }

/* ============================ ÜBER UNS ============================ */
.sh-eyebrow .elementor-widget-container{ font-size:14px; text-transform:uppercase; letter-spacing:.15em; color:var(--sh-primary); font-weight:500; }
.sh-uh1 .elementor-heading-title{ font-size:48px; font-weight:300; color:var(--sh-fg); line-height:1.15; }
@media(max-width:767px){ .sh-uh1 .elementor-heading-title{ font-size:36px; } }
.sh-img-2xl img{ border-radius:16px; box-shadow:0 10px 15px -3px rgb(0 0 0/.1),0 4px 6px -4px rgb(0 0 0/.1); width:100%; height:auto; }
.sh-team-img img{ width:96px; height:96px; border-radius:9999px; object-fit:cover; }
.sh-team-name .elementor-heading-title{ font-size:18px; font-weight:600; color:var(--sh-fg); }
.sh-team-role .elementor-widget-container{ font-size:14px; color:var(--sh-muted-fg); }
.sh-sq-img img{ aspect-ratio:1/1; width:100%; object-fit:cover; border-radius:12px; box-shadow:0 4px 6px -1px rgb(0 0 0/.1); transition:transform .3s; }
.sh-sq-img:hover img{ transform:scale(1.05); }
.sh-vid-img img{ aspect-ratio:16/9; width:100%; object-fit:cover; transition:transform .3s; }
.sh-vid-img:hover img{ transform:scale(1.05); }
.sh-licon-32 .elementor-icon svg{ width:32px; height:32px; }
.sh-licon-center .elementor-icon{ text-align:center; }
.sh-maplink .elementor-widget-container{ font-size:14px; }
.sh-maplink a{ color:var(--sh-primary); text-decoration:none; display:inline-flex; align-items:center; gap:6px; }
.sh-maplink a:hover{ text-decoration:underline; }

/* ============================ KONTAKT ============================ */
.sh-h2b-24 .elementor-heading-title{ font-size:24px; font-weight:700; color:var(--sh-fg); }
.sh-cc-h .elementor-heading-title{ font-size:16px; font-weight:600; color:var(--sh-fg); }
.sh-cc-t .elementor-widget-container{ font-size:15px; color:var(--sh-muted-fg); line-height:1.5; }
.sh-cc-t a{ color:var(--sh-muted-fg); }
.sh-cc-t a:hover{ color:var(--sh-primary); }
.sh-cc-t .sub{ font-size:13px; }
.sh-kstandort .elementor-widget-container{ font-size:14px; color:var(--sh-muted-fg); line-height:1.6; }
.sh-kstandort strong{ color:var(--sh-fg); font-weight:600; }
.sh-kstandort .nm{ font-size:18px; font-weight:600; color:var(--sh-fg); display:block; margin-bottom:6px; }
.sh-kstandort a{ color:var(--sh-primary); }
.sh-map-500 iframe{ width:100%; height:500px; border:0; border-radius:8px; box-shadow:0 10px 15px -3px rgb(0 0 0/.1); }

/* ============================ STANDORT (Potsdam) ============================ */
.sh-h3sub .elementor-heading-title{ font-size:24px; font-weight:300; color:var(--sh-fg); }
.sh-introtext .elementor-widget-container{ font-size:18px; line-height:1.625; color:var(--sh-muted-fg); }
.sh-introtext strong{ color:var(--sh-fg); }
.sh-introtext a{ color:var(--sh-primary); }
.sh-introtext a:hover{ text-decoration:underline; }
.sh-stloc-list .elementor-icon-list-item{ margin-bottom:6px; align-items:center; }
.sh-stloc-list .elementor-icon-list-icon svg{ width:16px; height:16px; stroke:var(--sh-primary) !important; fill:none !important; }
.sh-stloc-list .elementor-icon-list-text{ font-size:14px; color:var(--sh-muted-fg); }
.sh-stloc-list a:hover .elementor-icon-list-text{ color:var(--sh-primary); }

/* ============================ LEISTUNGEN ============================ */
.sh-detail-h .elementor-heading-title{ font-size:18px; font-weight:300; color:var(--sh-fg); }
.sh-arrlist .elementor-icon-list-item{ margin-bottom:10px; align-items:flex-start; }
.sh-arrlist .elementor-icon-list-icon{ padding-top:2px; }
.sh-arrlist .elementor-icon-list-icon svg{ width:20px; height:20px; stroke:var(--sh-primary) !important; fill:none !important; }
.sh-arrlist .elementor-icon-list-text{ font-size:15px; color:var(--sh-muted-fg); line-height:1.45; }
.sh-svc-desc .elementor-widget-container{ font-size:18px; line-height:1.625; color:var(--sh-muted-fg); }
.sh-svc500 img{ height:500px; width:100%; object-fit:cover; border-radius:8px; box-shadow:0 10px 15px -3px rgb(0 0 0/.1),0 4px 6px -4px rgb(0 0 0/.1); }
@media(max-width:767px){ .sh-svc500 img{ height:300px; } }
.sh-fullbtn .elementor-button{ width:100%; justify-content:center; background:var(--sh-primary); color:#fff; border-radius:6px; padding:12px 24px; font-size:14px; font-weight:500; }
.sh-fullbtn .elementor-button:hover{ background:#009a80; }

/* carousel fixed 500px (Edelstein/Ökologische image side) */
.sh-carousel-500 .swiper-slide img, .sh-carousel-500 .elementor-image-carousel img{ height:500px; object-fit:cover; border-radius:8px; }

/* ===== Standort detail pages ===== */
.sh-stbar{ color:#fff; font-size:16px; }
.sh-stbar .elementor-widget-container{ color:#fff; white-space:nowrap; }
.sh-stbar a, .sh-stbar a:visited{ color:#fff; text-decoration:none; }
.sh-stbar a:hover{ opacity:.82; }
.sh-stbar-strong .elementor-widget-container{ font-weight:600; }
.sh-stbar-item{ flex:0 0 auto !important; width:auto !important; }
.sh-licon-w .elementor-icon svg{ stroke:#fff !important; fill:none !important; }
.sh-licon-20 .elementor-icon svg{ width:20px; height:20px; }
.sh-st-h2 .elementor-heading-title{ font-size:30px; line-height:1.25; font-weight:300; color:var(--sh-primary); }
.sh-st-h3 .elementor-heading-title{ font-size:24px; line-height:1.35; font-weight:300; color:var(--sh-fg); }
.sh-st-p{ font-size:18px; line-height:1.625; color:var(--sh-muted-fg); }
.sh-st-p strong{ color:var(--sh-fg); font-weight:600; }
.sh-st-p a{ color:var(--sh-primary); text-decoration:none; }
.sh-st-p a:hover{ text-decoration:underline; }
.sh-st-maph .elementor-heading-title{ font-size:24px; font-weight:300; color:var(--sh-primary); }
.sh-st-cap .elementor-widget-container{ font-size:14px; color:var(--sh-muted-fg); text-align:center; }
.sh-stcta-h .elementor-heading-title{ font-size:24px; font-weight:300; color:#fff; }
.sh-stcta-p .elementor-widget-container{ color:rgba(255,255,255,.9); font-size:18px; }
.sh-stcar .elementor-image-carousel img{ height:460px; object-fit:contain; background:var(--sh-muted); border-radius:0; }
.sh-stcar .elementor-image-carousel-wrapper{ border-radius:12px; overflow:hidden; box-shadow:0 10px 15px -3px rgb(0 0 0/.1); }

/* ===== Homepage correction fixes (hero/trauerfall/gedenk/standorte) ===== */
.sh-licon-16 .elementor-icon svg{ width:16px; height:16px; }
/* Im Trauerfall: lucide check list (outline teal) */
.sh-tf-list .elementor-icon-list-icon svg{ stroke:var(--sh-primary) !important; fill:none !important; width:20px; height:20px; }
.sh-tf-list .elementor-icon-list-item{ align-items:flex-start; }
.sh-tf-list .elementor-icon-list-text{ color:var(--sh-muted-fg); }
/* Hinweis muted box */
.sh-hinweis .elementor-widget-container{ background:var(--sh-muted); border-radius:8px; padding:16px; font-size:14px; color:var(--sh-muted-fg); }
.sh-hinweis strong{ color:var(--sh-fg); }
.sh-loc-sub .elementor-widget-container{ max-width:672px; margin-left:auto; margin-right:auto; }
/* Standorte homepage links row */
.sh-loc-links .elementor-icon-list-icon svg{ stroke:var(--sh-primary) !important; fill:none !important; width:16px; height:16px; }
.sh-loc-links .elementor-icon-list-text{ color:var(--sh-primary); font-size:14px; }
.sh-loc-links .elementor-icon-list-item:hover .elementor-icon-list-text{ text-decoration:underline; }
.sh-loc-links a{ color:var(--sh-primary); }

/* ===== Vorsorge 1:1 corrections ===== */
.sh-w2xl .elementor-widget-container{ max-width:672px; margin-left:auto; margin-right:auto; }
/* steps: lucide circle-check must be stroke-based (outline), not filled */
.sh-step-list .elementor-icon-list-icon svg{ stroke:var(--sh-primary) !important; fill:none !important; width:20px; height:20px; }

/* ===== Erste Schritte: prominent phone-number button (Lovable text-xl) ===== */
.sh-phone-xl .elementor-button{ font-size:20px; font-weight:600; }

/* ===== Grabmale: portrait content image (max-w-sm, aspect-3/4) ===== */
.sh-img-3x4 img{ width:100%; max-width:384px; aspect-ratio:3/4; object-fit:cover; border-radius:12px; box-shadow:0 10px 15px -3px rgb(0 0 0/.1),0 4px 6px -4px rgb(0 0 0/.1); display:block; margin:0 auto; }

/* Grabmale "Unsere Arbeit" carousel — 16:9 contained image + blurred image bg fill (Lovable) */
.sh-gmcar .elementor-image-carousel-wrapper{ border-radius:12px; overflow:hidden; box-shadow:0 10px 15px -3px rgb(0 0 0/.1); }
.sh-gmcar .swiper-slide{ height:auto; }
.sh-gmcar .swiper-slide-inner{ position:relative; overflow:hidden; aspect-ratio:16/9; height:auto !important; background:var(--sh-muted); }
.sh-gmcar .swiper-slide-inner::before{ content:""; position:absolute; inset:0; background-image:var(--sh-slidebg,none); background-size:cover; background-position:center; filter:blur(22px); transform:scale(1.15); opacity:.55; z-index:0; }
.sh-gmcar .swiper-slide-image{ position:relative; z-index:1; width:100% !important; height:100% !important; object-fit:contain !important; }

/* Floristik: lucide phone icon sizing inside white/outline buttons (inherits currentColor) */
.sh-btn-white2 .elementor-button-icon svg, .sh-btn-outline-w .elementor-button-icon svg, .sh-btn-white .elementor-button-icon svg{ width:16px; height:16px; }

/* ===== Trauerfloristik gallery slider — square images + subtle arrows (Lovable) ===== */
.sh-gallery .swiper-slide-image{ aspect-ratio:1/1 !important; object-fit:cover !important; border-radius:8px; box-shadow:0 4px 6px -1px rgb(0 0 0/.1),0 2px 4px -2px rgb(0 0 0/.1); }
.sh-gallery .elementor-image-carousel-wrapper{ box-shadow:none; border-radius:0; overflow:visible; }
/* subtle white circular arrows instead of heavy teal overlay */
.sh-gallery .elementor-swiper-button{ background:#fff; color:var(--sh-fg); width:36px; height:36px; border-radius:9999px; box-shadow:0 1px 4px rgb(0 0 0/.18); }
.sh-gallery .elementor-swiper-button svg, .sh-gallery .elementor-swiper-button i{ font-size:14px; }
@media(max-width:1024px){ .sh-gallery .elementor-swiper-button{ display:none; } }

/* ===== Trauerfloristik: exact Lovable line-heights to stop vertical drift ===== */
.sh-fc-p .elementor-widget-container{ line-height:1.5; }
.sh-fc-p p{ margin:0; }
.sh-faq-a .elementor-widget-container{ line-height:1.55; }
.sh-faq-a p{ margin:0; }
.sh-arr-h .elementor-heading-title{ line-height:1.3; }
.sh-fc-h .elementor-heading-title{ line-height:1.3; }
.sh-faq-q .elementor-heading-title{ line-height:1.35; }
.sh-arr-list .elementor-icon-list-text{ line-height:1.4; }
.sh-prose .elementor-widget-container{ line-height:1.55; }

/* ===== Erdbestattung/burial: subtitle max-w-3xl + exact line-heights ===== */
.sh-w3xl .elementor-widget-container{ max-width:768px; margin-left:auto; margin-right:auto; }
.sh-feat-p .elementor-widget-container{ line-height:1.5; }

/* burial benefit-card heading = text-lg/18 (Lovable), distinct from homepage feature 20px */
.sh-bfh .elementor-heading-title{ font-size:18px; font-weight:600; color:var(--sh-fg); }

/* Standort/Potsdam intro: subheading top-spacing (Lovable h3 mt-8) */
.sh-h3sub{ margin-top:10px !important; }

/* Standort detail pages: h3 subheading top-spacing (Lovable mt-8) + map full width */
.sh-st-h3{ margin-top:14px !important; }
.sh-map{ width:100% !important; }
.sh-map .elementor-widget-container{ width:100%; }

/* Footer fine-tuning to match Lovable 1:1 */
.sh-ftr__contact .elementor-icon-list-item:nth-child(2){ margin-top:-6px; margin-bottom:10px; }
.sh-ftr__contact .elementor-icon-list-item:nth-child(2) .elementor-icon-list-text{ font-size:12px; color:rgb(255 255 255/.6); }
.sh-ftr__legal a:not(:first-child){ margin-left:12px; }

/* Footer Standorte: raw-HTML CSS grid-cols-2 (Lovable gap-x-6 gap-y-3) */
.sh-ftr__stwrap{ display:grid; grid-template-columns:1fr 1fr; column-gap:24px; row-gap:12px; }
.sh-ftr__stcell{ display:block; font-size:14px; line-height:1.5; color:rgb(255 255 255/.8); text-decoration:none; }
.sh-ftr__stcell strong{ display:block; color:#fff; font-weight:500; }
.sh-ftr__stcell:hover{ color:#fff; }

/* Header dropdown caret -> lucide chevron-down (mask the SmartMenus .sub-arrow span) */
.sh-hdr__nav .elementor-item.has-submenu{ display:inline-flex; align-items:center; gap:4px; }
.sh-hdr__nav .sub-arrow svg{ display:none !important; }
.sh-hdr__nav .sub-arrow{ display:inline-block; width:16px; height:16px; background-color:currentColor; -webkit-mask:url("/schellhase-bestattungen-wp/wp-content/uploads/2026/06/chevron-mask.svg") center / 16px 16px no-repeat; mask:url("/schellhase-bestattungen-wp/wp-content/uploads/2026/06/chevron-mask.svg") center / 16px 16px no-repeat; }


/* ===== Sticky side contact buttons (Lovable StickySideButtons), injected via wp_footer ===== */
.sh-sticky{ position:fixed; right:0; top:50%; transform:translateY(-50%); z-index:40; display:flex; flex-direction:column; align-items:flex-end; gap:8px; }
.sh-sticky__btn{ display:flex; align-items:center; width:max-content; background:var(--sh-primary); border-radius:6px 0 0 6px; box-shadow:0 10px 15px -3px rgb(0 0 0/.1),0 4px 6px -4px rgb(0 0 0/.1); overflow:hidden; text-decoration:none; transition:padding-right .3s ease; }
.sh-sticky__btn:hover, .sh-sticky__btn:focus-visible{ padding-right:16px; }
.sh-sticky__ico{ display:flex; align-items:center; justify-content:center; width:48px; height:48px; flex-shrink:0; color:#fff; }
.sh-sticky__ico svg{ width:20px; height:20px; }
.sh-sticky__lbl{ max-width:0; overflow:hidden; white-space:nowrap; color:#fff; font-size:14px; font-weight:500; opacity:0; transition:max-width .3s ease, opacity .3s ease; }
.sh-sticky__btn:hover .sh-sticky__lbl, .sh-sticky__btn:focus-visible .sh-sticky__lbl{ max-width:200px; opacity:1; }
.sh-mbar{ position:fixed; bottom:0; left:0; right:0; z-index:40; display:none; background:var(--sh-primary); box-shadow:0 -2px 10px rgb(0 0 0/.15); }
.sh-mbar__item{ flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; padding:12px 0; color:#fff; text-decoration:none; }
.sh-mbar__item svg{ width:20px; height:20px; }
.sh-mbar__item span{ font-size:10px; font-weight:500; }
.sh-mbar__item--div{ border-left:1px solid rgb(255 255 255/.2); border-right:1px solid rgb(255 255 255/.2); }
@media (max-width:767px){ .sh-sticky{ display:none; } .sh-mbar{ display:flex; } }
@media print{ .sh-sticky, .sh-mbar{ display:none !important; } }

/* ===== RESPONSIVE: footer links always vertical list (no burger), header mobile ===== */
.sh-ftr__links .elementor-menu-toggle{ display:none !important; }
.sh-ftr__links .elementor-nav-menu--main{ display:block !important; }
.sh-ftr__links ul.elementor-nav-menu{ display:flex !important; flex-direction:column; position:static !important; width:auto !important; background:transparent !important; box-shadow:none !important; }
.sh-ftr__links ul.elementor-nav-menu li{ width:100%; }
/* header burger: clean (no border/box), dark icon, right-aligned */
.sh-hdr__nav .elementor-menu-toggle{ background:transparent !important; border:0 !important; color:var(--sh-fg) !important; padding:6px; }
.sh-hdr__nav .elementor-menu-toggle svg, .sh-hdr__nav .elementor-menu-toggle i{ width:30px; height:30px; font-size:28px; fill:var(--sh-fg); color:var(--sh-fg); }
@media (max-width:1023px){
  /* burger range: dropdown menu = absolute overlay so it never stretches the header height */
  .sh-hdr__nav .elementor-nav-menu--dropdown{ position:absolute !important; left:0; right:0; top:100%; width:100% !important; z-index:999; background:#fff; box-shadow:0 8px 16px rgb(0 0 0/.12); border-radius:0 0 8px 8px; padding:8px 0; }
  .sh-hdr__nav .elementor-nav-menu--dropdown .elementor-item{ padding:10px 20px; }
  .sh-hdr__row{ justify-content:space-between !important; }
}
@media (max-width:767px){
  .sh-hdr__phone{ display:none !important; } 
  nav.elementor-nav-menu--dropdown.elementor-nav-menu__container {
    width: 150px !important;
            left: -110px;
}
     .elementor-element.elementor-element-f95085d8.sh-carousel.sh-gallery.elementor-arrows-position-inside.elementor-pagination-position-outside.elementor-widget.elementor-widget-image-carousel.e-widget-swiper {
    overflow: hidden;
}      /* phone hidden on mobile (use sticky bottom bar) */
}
