/*
 * Durrer Design — BM21 Child
 * Variables, typography, and block-style adapters for Gutenberg standard blocks
 * plus custom blocks (eyebrow, service-card, hero-orbs, emergency-card, faq-item).
 */

:root {
  --plum:         #8A2A6B;
  --plum-deep:    #5E1A48;
  --pink:         #E5408C;
  --pink-bright:  #F25BA0;
  --blush:        #FAEEF4;
  --blush-2:      #F4DDEA;
  --cream:        #FCFAFB;
  --ink:          #2A1A28;
  --ink-soft:     #5B4456;
  --muted:        #8A7884;
  --line:         #EADCE5;
  --white:        #FFFFFF;

  --shadow-sm: 0 2px 8px rgba(138,42,107,0.06);
  --shadow-md: 0 12px 32px -8px rgba(138,42,107,0.18);
  --shadow-lg: 0 30px 60px -20px rgba(138,42,107,0.30);

  --radius-sm: 12px;
  --radius-md: 20px;
  --radius-lg: 28px;
  --radius-xl: 40px;

  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ============ BASE TYPOGRAPHY ============ */
body {
  font-family: 'Karla', system-ui, -apple-system, sans-serif;
  color: var(--ink);
  background: var(--cream);
  line-height: 1.55;
  font-size: 17px;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4 {
  font-family: 'Karla', system-ui, sans-serif;
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.15;
  color: var(--plum-deep);
  text-wrap: balance;
}
h1 { font-size: clamp(2.2rem, 4.6vw + 0.5rem, 4.4rem); letter-spacing: -0.025em; line-height: 1.05; }
h2 { font-size: clamp(1.85rem, 2.4vw + 1rem, 3rem); letter-spacing: -0.02em; }
h3 { font-size: clamp(1.2rem, 0.6vw + 1rem, 1.5rem); }
h4 { font-size: 1.1rem; }
p  { text-wrap: pretty; }

/* Pink gradient text utility — paired with core/heading "Pink Verlauf" style */
.is-style-pink-gradient,
.is-style-pink-gradient .has-pink-gradient,
.bm21-pink-gradient {
  background: linear-gradient(120deg, var(--plum) 0%, var(--pink) 60%, var(--pink-bright) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* ============ KEYFRAMES ============ */
@keyframes bm21FloatOrb {
  0%, 100% { transform: translate(0,0) scale(1); }
  50%      { transform: translate(-30px, 30px) scale(1.06); }
}
@keyframes bm21Spin { to { transform: rotate(360deg); } }
@keyframes bm21Pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(229,64,140,0.5); }
  50%      { box-shadow: 0 0 0 12px rgba(229,64,140,0); }
}
@keyframes bm21LineGrow { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes bm21Rise     { to { opacity: 1; transform: translateY(0); } }

/* ============ SCROLL REVEAL ============ */
.bm21-reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.9s var(--ease), transform 0.9s var(--ease);
}
.bm21-reveal.in { opacity: 1; transform: none; }
.bm21-reveal[data-delay="1"] { transition-delay: 0.1s; }
.bm21-reveal[data-delay="2"] { transition-delay: 0.2s; }
.bm21-reveal[data-delay="3"] { transition-delay: 0.3s; }
.bm21-reveal[data-delay="4"] { transition-delay: 0.4s; }
.bm21-reveal[data-delay="5"] { transition-delay: 0.5s; }

/* ============ EYEBROW (custom block + paragraph style) ============ */
.wp-block-bm21-eyebrow,
.is-style-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 0.78rem !important;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--pink);
  margin: 0 0 18px;
}
.wp-block-bm21-eyebrow::before,
.is-style-eyebrow::before {
  content: "";
  width: 24px;
  height: 2px;
  background: currentColor;
  border-radius: 2px;
  transform-origin: left;
  animation: bm21LineGrow 0.8s var(--ease) both;
  flex-shrink: 0;
}
.has-text-color.wp-block-bm21-eyebrow,
.has-text-color.is-style-eyebrow {
  /* let the color picker drive the line + text together */
}

/* ============ BUTTONS — adapt core/button ============ */
.wp-block-button .wp-block-button__link {
  padding: 16px 28px;
  border-radius: 999px;
  font-weight: 600;
  font-size: 1rem;
  letter-spacing: -0.005em;
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease), background 0.3s var(--ease), color 0.3s var(--ease);
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
/* Default fill button = Durrer gradient */
.wp-block-button:not(.is-style-outline):not(.is-style-ghost-pill):not(.is-style-small-button):not(.is-style-small-button-2) .wp-block-button__link {
  background: linear-gradient(135deg, var(--plum) 0%, var(--pink) 100%);
  color: var(--white);
  box-shadow: 0 14px 30px -10px rgba(229,64,140,0.55), inset 0 1px 0 rgba(255,255,255,0.2);
}
.wp-block-button:not(.is-style-outline):not(.is-style-ghost-pill):not(.is-style-small-button):not(.is-style-small-button-2) .wp-block-button__link:hover {
  transform: translateY(-2px);
  box-shadow: 0 22px 40px -12px rgba(229,64,140,0.65);
  background: linear-gradient(135deg, var(--pink) 0%, var(--plum) 100%);
}

/* Ghost button style */
.wp-block-button.is-style-ghost-pill .wp-block-button__link {
  background: transparent;
  color: var(--plum);
  border: 1.5px solid var(--blush-2);
  box-shadow: none;
}
.wp-block-button.is-style-ghost-pill .wp-block-button__link:hover {
  background: var(--blush);
  border-color: var(--pink);
}

/* Outline = use brand colors */
.wp-block-button.is-style-outline .wp-block-button__link {
  color: var(--plum);
  border-color: var(--blush-2);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
  background: var(--blush);
  border-color: var(--pink);
}

/* ============ COVER — hero orb style (core/cover) ============ */
.wp-block-cover.is-style-hero-orbs {
  background: var(--cream);
  color: var(--ink);
  min-height: clamp(560px, 70vh, 820px);
  padding: 140px 28px 90px;
  border-radius: 0;
  overflow: hidden;
}
.wp-block-cover.is-style-hero-orbs .wp-block-cover__background,
.wp-block-cover.is-style-hero-orbs .wp-block-cover__image-background,
.wp-block-cover.is-style-hero-orbs video.wp-block-cover__video-background {
  display: none !important;
}
.wp-block-cover.is-style-hero-orbs .wp-block-cover__inner-container {
  position: relative;
  z-index: 1;
  color: var(--ink);
}
.wp-block-cover.is-style-hero-orbs::before {
  content: "";
  position: absolute;
  top: -40%;
  right: -15%;
  width: 70vw;
  height: 70vw;
  max-width: 900px;
  max-height: 900px;
  background: radial-gradient(circle at 30% 40%, rgba(229,64,140,0.18), transparent 60%);
  border-radius: 50%;
  animation: bm21FloatOrb 16s ease-in-out infinite;
  z-index: 0;
  pointer-events: none;
}
.wp-block-cover.is-style-hero-orbs::after {
  content: "";
  position: absolute;
  bottom: -30%;
  left: -20%;
  width: 50vw;
  height: 50vw;
  max-width: 600px;
  max-height: 600px;
  background: radial-gradient(circle at 60% 40%, rgba(138,42,107,0.15), transparent 65%);
  border-radius: 50%;
  animation: bm21FloatOrb 20s ease-in-out infinite reverse;
  z-index: 0;
  pointer-events: none;
}

/* ============ GROUP — section background variants ============ */
.wp-block-group.is-style-section-blush {
  background: var(--blush);
  padding: clamp(72px, 9vw, 140px) 28px;
  position: relative;
  overflow: hidden;
}
.wp-block-group.is-style-section-blush::before {
  content: "";
  position: absolute;
  top: -200px;
  right: -100px;
  width: 500px;
  height: 500px;
  background: radial-gradient(circle, rgba(229,64,140,0.12), transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}
.wp-block-group.is-style-section-blush > * { position: relative; z-index: 1; }

.wp-block-group.is-style-section-dark {
  background: var(--plum-deep);
  color: var(--white);
  padding: clamp(72px, 9vw, 140px) 28px;
  position: relative;
  overflow: hidden;
}
.wp-block-group.is-style-section-dark h1,
.wp-block-group.is-style-section-dark h2,
.wp-block-group.is-style-section-dark h3,
.wp-block-group.is-style-section-dark h4 { color: var(--white); }
.wp-block-group.is-style-section-dark p   { color: rgba(255,255,255,0.78); }
.wp-block-group.is-style-section-dark .is-style-eyebrow,
.wp-block-group.is-style-section-dark .wp-block-bm21-eyebrow { color: var(--pink-bright); }
.wp-block-group.is-style-section-dark::before {
  content: "";
  position: absolute;
  top: -30%;
  right: -15%;
  width: 60%;
  height: 120%;
  background: radial-gradient(circle at 50% 50%, rgba(229,64,140,0.25), transparent 60%);
  pointer-events: none;
}
.wp-block-group.is-style-section-dark > * { position: relative; z-index: 1; }

/* Highlight pink gradient card (used inside content, e.g. Lachgas info box) */
.wp-block-group.is-style-highlight-pink {
  margin-top: 32px;
  padding: 28px 30px;
  background: linear-gradient(135deg, var(--plum) 0%, var(--pink) 100%);
  color: var(--white);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  position: relative;
  overflow: hidden;
}
.wp-block-group.is-style-highlight-pink::before {
  content: "";
  position: absolute;
  top: -60px;
  right: -60px;
  width: 200px;
  height: 200px;
  background: radial-gradient(circle, rgba(255,255,255,0.18), transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}
.wp-block-group.is-style-highlight-pink h1,
.wp-block-group.is-style-highlight-pink h2,
.wp-block-group.is-style-highlight-pink h3,
.wp-block-group.is-style-highlight-pink h4 { color: var(--white); position: relative; }
.wp-block-group.is-style-highlight-pink p   { color: rgba(255,255,255,0.92); position: relative; }

/* Contact card (white surface with shadow) */
.wp-block-group.is-style-contact-card {
  background: var(--white);
  border-radius: var(--radius-lg);
  padding: 36px;
  box-shadow: var(--shadow-md);
  position: relative;
  overflow: hidden;
}
.wp-block-group.is-style-contact-card h4 { color: var(--plum-deep); font-size: 1.25rem; margin-bottom: 6px; }

/* Final CTA card */
.wp-block-group.is-style-cta-card {
  text-align: center;
  max-width: 780px;
  margin: 0 auto;
  padding: 80px 60px;
  border-radius: var(--radius-xl);
  background:
    radial-gradient(circle at 20% 0%, rgba(229,64,140,0.12), transparent 50%),
    radial-gradient(circle at 80% 100%, rgba(138,42,107,0.10), transparent 50%),
    var(--white);
  box-shadow: var(--shadow-lg);
  position: relative;
  overflow: hidden;
}
.wp-block-group.is-style-cta-card::before,
.wp-block-group.is-style-cta-card::after {
  content: "";
  position: absolute;
  width: 120px;
  height: 120px;
  border: 2px dashed var(--blush-2);
  border-radius: 50%;
  animation: bm21Spin 40s linear infinite;
  pointer-events: none;
}
.wp-block-group.is-style-cta-card::before { top: -50px; left: -50px; }
.wp-block-group.is-style-cta-card::after  { bottom: -50px; right: -50px; animation-direction: reverse; }
.wp-block-group.is-style-cta-card > * { position: relative; z-index: 1; }

/* ============ COLUMNS — grid variants ============ */
/* Trust bar: 4 cells with dividers, rounded white card */
.wp-block-columns.is-style-trust-bar {
  background: var(--white);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  overflow: hidden;
  gap: 0 !important;
  margin: 0 auto;
}
.wp-block-columns.is-style-trust-bar > .wp-block-column {
  padding: 28px 26px;
  border-right: 1px solid var(--line);
  transition: background 0.3s var(--ease);
}
.wp-block-columns.is-style-trust-bar > .wp-block-column:last-child { border-right: 0; }
.wp-block-columns.is-style-trust-bar > .wp-block-column:hover { background: var(--blush); }

/* Services grid: white cards with hover lift */
.wp-block-columns.is-style-services-grid > .wp-block-column,
.wp-block-group.is-style-service-card,
.wp-block-bm21-service-card {
  background: var(--white);
  border-radius: var(--radius-lg);
  padding: 36px 32px;
  transition: transform 0.45s var(--ease), box-shadow 0.45s var(--ease), border-color 0.45s var(--ease);
  position: relative;
  overflow: hidden;
  border: 1px solid transparent;
}
.wp-block-columns.is-style-services-grid > .wp-block-column:hover,
.wp-block-group.is-style-service-card:hover,
.wp-block-bm21-service-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--shadow-lg);
  border-color: var(--blush-2);
}
.wp-block-columns.is-style-services-grid > .wp-block-column::after,
.wp-block-group.is-style-service-card::after,
.wp-block-bm21-service-card::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--plum), var(--pink));
  transition: width 0.5s var(--ease);
}
.wp-block-columns.is-style-services-grid > .wp-block-column:hover::after,
.wp-block-group.is-style-service-card:hover::after,
.wp-block-bm21-service-card:hover::after { width: 100%; }

/* Values grid: dark translucent cards */
.wp-block-columns.is-style-values-grid {
  gap: 12px;
}
.wp-block-columns.is-style-values-grid > .wp-block-column {
  padding: 32px 24px;
  border-radius: var(--radius-md);
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  transition: background 0.4s var(--ease), transform 0.4s var(--ease), border-color 0.4s var(--ease);
}
.wp-block-columns.is-style-values-grid > .wp-block-column:hover {
  background: rgba(229,64,140,0.12);
  border-color: rgba(229,64,140,0.4);
  transform: translateY(-6px);
}
.wp-block-columns.is-style-values-grid > .wp-block-column p { color: rgba(255,255,255,0.72); font-size: 0.92rem; }

/* ============ ACCORDION (FAQ) — core/accordion ============ */
.wp-block-accordion-group.is-style-faq-pink .wp-block-accordion-item {
  border-bottom: 1px solid var(--line);
  background: transparent;
  border-radius: 0;
  transition: border-color 0.3s var(--ease);
  padding: 0;
}
.wp-block-accordion-group.is-style-faq-pink .wp-block-accordion-item[open] { border-color: var(--pink); }
.wp-block-accordion-group.is-style-faq-pink .wp-block-accordion-trigger,
.wp-block-accordion-group.is-style-faq-pink .wp-block-accordion-header__heading > button {
  padding: 24px 0;
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--plum-deep);
  background: transparent;
  border: 0;
  text-align: left;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.wp-block-accordion-group.is-style-faq-pink .wp-block-accordion-trigger:hover { color: var(--pink); }
.wp-block-accordion-group.is-style-faq-pink .wp-block-accordion-content { padding: 0 0 24px; color: var(--ink-soft); font-size: 1rem; line-height: 1.65; max-width: 720px; }

/* Native <details>/<summary> fallback when accordion block isn't available */
.bm21-faq details {
  border-bottom: 1px solid var(--line);
  transition: border-color 0.3s var(--ease);
}
.bm21-faq details[open] { border-color: var(--pink); }
.bm21-faq summary {
  list-style: none;
  cursor: pointer;
  padding: 24px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--plum-deep);
  transition: color 0.3s var(--ease);
}
.bm21-faq summary::-webkit-details-marker { display: none; }
.bm21-faq summary:hover { color: var(--pink); }
.bm21-faq summary::after {
  content: "+";
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--blush);
  color: var(--plum);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 400;
  font-size: 1.4rem;
  flex-shrink: 0;
  transition: transform 0.4s var(--ease), background 0.3s var(--ease), color 0.3s var(--ease);
}
.bm21-faq details[open] summary::after {
  background: linear-gradient(135deg, var(--plum), var(--pink));
  color: var(--white);
  transform: rotate(45deg);
}
.bm21-faq details > *:not(summary) {
  padding: 0 0 24px;
  color: var(--ink-soft);
  font-size: 1rem;
  line-height: 1.65;
  max-width: 720px;
}

/* ============ LISTS — team-pills variant (core/list) ============ */
.wp-block-list.is-style-team-pills {
  list-style: none !important;
  padding: 0 !important;
  margin-top: 32px;
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}
.wp-block-list.is-style-team-pills li {
  padding: 10px 18px;
  border-radius: 999px;
  background: var(--blush);
  color: var(--plum-deep);
  font-weight: 600;
  font-size: 0.95rem;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  transition: background 0.3s var(--ease), color 0.3s var(--ease);
}
.wp-block-list.is-style-team-pills li::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--pink);
}
.wp-block-list.is-style-team-pills li:hover { background: var(--plum); color: var(--white); }
.wp-block-list.is-style-team-pills li:hover::before { background: var(--white); }

/* City chips (location section) */
.wp-block-list.is-style-city-chips {
  list-style: none !important;
  padding: 0 !important;
  margin-top: 28px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.wp-block-list.is-style-city-chips li {
  padding: 7px 14px;
  border-radius: 999px;
  background: var(--white);
  font-size: 0.88rem;
  color: var(--plum-deep);
  font-weight: 500;
  border: 1px solid var(--blush-2);
  transition: transform 0.25s var(--ease), background 0.3s var(--ease), color 0.3s var(--ease), border-color 0.3s var(--ease);
}
.wp-block-list.is-style-city-chips li:hover {
  transform: translateY(-2px);
  background: var(--plum);
  color: var(--white);
  border-color: var(--plum);
}

/* ============ IMAGE — circular team portrait with rotating dashed ring ============ */
.wp-block-image.is-style-team-portrait { position: relative; }
.wp-block-image.is-style-team-portrait img {
  border-radius: 50%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  box-shadow: var(--shadow-lg);
  max-width: 480px;
  margin: 0 auto;
  display: block;
}
.wp-block-image.is-style-team-portrait::before {
  content: "";
  position: absolute;
  inset: -20px;
  border: 2px dashed var(--blush-2);
  border-radius: 50%;
  animation: bm21Spin 50s linear infinite;
  pointer-events: none;
}

/* Rounded portrait with deep shadow (hero / nitrous) */
.wp-block-image.is-style-rounded-soft img {
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-lg);
  aspect-ratio: 4 / 5;
  object-fit: cover;
  width: 100%;
}

/* ============ FOOTER ============ */
footer.site-footer,
.bm21-footer {
  background: var(--plum-deep);
  color: rgba(255,255,255,0.78);
  padding: 80px 0 32px;
}
.bm21-footer h5 {
  color: var(--white);
  font-size: 0.85rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 600;
  margin-bottom: 18px;
}
.bm21-footer a { transition: color 0.25s var(--ease); }
.bm21-footer a:hover { color: var(--pink-bright); }

/* ============ NAV — frosted-glass on scroll (parent nav .scrolled) ============ */
.bm21-nav-scrolled,
header.site-header.bm21-scrolled {
  background: rgba(252,250,251,0.85) !important;
  backdrop-filter: saturate(160%) blur(14px);
  -webkit-backdrop-filter: saturate(160%) blur(14px);
  box-shadow: 0 1px 0 var(--line);
}

/* ============ CUSTOM BLOCK: hero-orbs ============ */
.wp-block-bm21-hero-orbs {
  position: relative;
  padding: 140px 0 90px;
  overflow: hidden;
}
.wp-block-bm21-hero-orbs__orb,
.wp-block-bm21-hero-orbs__orb-2 {
  position: absolute;
  border-radius: 50%;
  z-index: 0;
  pointer-events: none;
}
.wp-block-bm21-hero-orbs__orb {
  top: -40%;
  right: -15%;
  width: 70vw;
  height: 70vw;
  max-width: 900px;
  max-height: 900px;
  background: radial-gradient(circle at 30% 40%, rgba(229,64,140,0.18), transparent 60%);
  animation: bm21FloatOrb 16s ease-in-out infinite;
}
.wp-block-bm21-hero-orbs__orb-2 {
  bottom: -30%;
  left: -20%;
  width: 50vw;
  height: 50vw;
  max-width: 600px;
  max-height: 600px;
  background: radial-gradient(circle at 60% 40%, rgba(138,42,107,0.15), transparent 65%);
  animation: bm21FloatOrb 20s ease-in-out infinite reverse;
}
.wp-block-bm21-hero-orbs__inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 80px;
  align-items: center;
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 28px;
}
.wp-block-bm21-hero-orbs__content > * {
  opacity: 0;
  transform: translateY(24px);
  animation: bm21Rise 1s var(--ease) forwards;
}
.wp-block-bm21-hero-orbs__content > *:nth-child(1) { animation-delay: 0.05s; }
.wp-block-bm21-hero-orbs__content > *:nth-child(2) { animation-delay: 0.2s; }
.wp-block-bm21-hero-orbs__content > *:nth-child(3) { animation-delay: 0.35s; }
.wp-block-bm21-hero-orbs__content > *:nth-child(4) { animation-delay: 0.5s; }
.wp-block-bm21-hero-orbs__content > *:nth-child(5) { animation-delay: 0.65s; }
.wp-block-bm21-hero-orbs__title {
  margin: 18px 0 24px;
  font-size: clamp(2.2rem, 4.6vw + 0.5rem, 4.4rem);
  letter-spacing: -0.025em;
  line-height: 1.05;
  color: var(--plum-deep);
  font-weight: 600;
}
.wp-block-bm21-hero-orbs__title-accent {
  background: linear-gradient(120deg, var(--plum) 0%, var(--pink) 60%, var(--pink-bright) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.wp-block-bm21-hero-orbs__sub {
  font-size: 1.2rem;
  color: var(--ink-soft);
  max-width: 540px;
  margin-bottom: 18px;
}
.wp-block-bm21-hero-orbs__intro {
  font-size: 1rem;
  color: var(--muted);
  max-width: 540px;
  margin-bottom: 36px;
}
.wp-block-bm21-hero-orbs__visual {
  position: relative;
  aspect-ratio: 4 / 5;
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  opacity: 0;
  transform: translateY(40px) scale(0.96);
  animation: bm21Rise 1.2s var(--ease) 0.3s forwards;
}
.wp-block-bm21-hero-orbs__visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.08);
  transition: transform 1.4s var(--ease);
}
.wp-block-bm21-hero-orbs__visual:hover img { transform: scale(1.13); }
.wp-block-bm21-hero-orbs__visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 50%, rgba(94,26,72,0.35) 100%);
  pointer-events: none;
}
.wp-block-bm21-hero-orbs__ring {
  position: absolute;
  top: -40px;
  right: -40px;
  width: 140px;
  height: 140px;
  border: 2px dashed var(--pink);
  border-radius: 50%;
  animation: bm21Spin 30s linear infinite;
  opacity: 0.4;
  pointer-events: none;
}
.wp-block-bm21-hero-orbs__ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  align-items: center;
}

/* ============ CUSTOM BLOCK: service-card ============ */
.wp-block-bm21-service-card__number {
  position: absolute;
  top: 24px;
  right: 28px;
  font-size: 0.75rem;
  color: var(--muted);
  font-weight: 600;
  letter-spacing: 0.12em;
}
.wp-block-bm21-service-card__icon {
  width: 56px;
  height: 56px;
  border-radius: 16px;
  background: var(--blush);
  color: var(--plum);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 22px;
  font-size: 1.4rem;
  transition: background 0.4s var(--ease), color 0.4s var(--ease), transform 0.5s var(--ease);
}
.wp-block-bm21-service-card:hover .wp-block-bm21-service-card__icon {
  background: linear-gradient(135deg, var(--plum), var(--pink));
  color: var(--white);
  transform: rotate(-6deg) scale(1.06);
}
.wp-block-bm21-service-card__title {
  margin: 0 0 10px;
  color: var(--plum-deep);
  font-weight: 600;
}
.wp-block-bm21-service-card__text {
  color: var(--ink-soft);
  font-size: 0.98rem;
  margin: 0;
}

/* ============ CUSTOM BLOCK: emergency-card ============ */
.wp-block-bm21-emergency-card {
  background: linear-gradient(135deg, var(--plum-deep) 0%, var(--plum) 60%, var(--pink) 130%);
  color: var(--white);
  border-radius: var(--radius-xl);
  padding: 60px;
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 40px;
  align-items: center;
  position: relative;
  overflow: hidden;
  box-shadow: var(--shadow-lg);
}
.wp-block-bm21-emergency-card::before {
  content: "";
  position: absolute;
  top: -50%;
  right: -10%;
  width: 60%;
  height: 200%;
  background: radial-gradient(circle, rgba(255,255,255,0.12), transparent 60%);
  border-radius: 50%;
  animation: bm21FloatOrb 14s ease-in-out infinite;
  pointer-events: none;
}
.wp-block-bm21-emergency-card > * { position: relative; z-index: 1; }
.wp-block-bm21-emergency-card__title { color: var(--white); margin: 0 0 16px; }
.wp-block-bm21-emergency-card__text  { color: rgba(255,255,255,0.88); font-size: 1.08rem; margin: 0 0 20px; max-width: 520px; }
.wp-block-bm21-emergency-card__action { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.wp-block-bm21-emergency-card__phone {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  background: var(--white);
  color: var(--plum-deep);
  padding: 20px 32px;
  border-radius: 999px;
  font-weight: 600;
  font-size: 1.2rem;
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease);
  box-shadow: 0 14px 30px -10px rgba(0,0,0,0.3);
  text-decoration: none;
}
.wp-block-bm21-emergency-card__phone:hover {
  transform: translateY(-3px) scale(1.02);
  box-shadow: 0 22px 40px -10px rgba(0,0,0,0.35);
}
.wp-block-bm21-emergency-card__pulse {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--plum), var(--pink));
  color: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  animation: bm21Pulse 2s ease-in-out infinite;
  flex-shrink: 0;
}
.wp-block-bm21-emergency-card__pulse svg { width: 20px; height: 20px; }
.wp-block-bm21-emergency-card__note { font-size: 0.9rem; color: rgba(255,255,255,0.7); }

/* ============ CUSTOM BLOCK: faq-item (single Q/A used standalone) ============ */
.wp-block-bm21-faq-item {
  border-bottom: 1px solid var(--line);
  transition: border-color 0.3s var(--ease);
}
.wp-block-bm21-faq-item[open] { border-color: var(--pink); }
.wp-block-bm21-faq-item > summary {
  list-style: none;
  cursor: pointer;
  padding: 24px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--plum-deep);
  transition: color 0.3s var(--ease);
}
.wp-block-bm21-faq-item > summary::-webkit-details-marker { display: none; }
.wp-block-bm21-faq-item > summary:hover { color: var(--pink); }
.wp-block-bm21-faq-item__toggle {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--blush);
  color: var(--plum);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 1.4rem;
  font-weight: 400;
  transition: transform 0.4s var(--ease), background 0.3s var(--ease), color 0.3s var(--ease);
}
.wp-block-bm21-faq-item[open] .wp-block-bm21-faq-item__toggle {
  background: linear-gradient(135deg, var(--plum), var(--pink));
  color: var(--white);
  transform: rotate(45deg);
}
.wp-block-bm21-faq-item__body {
  padding: 0 0 24px;
  color: var(--ink-soft);
  font-size: 1rem;
  line-height: 1.65;
  max-width: 720px;
}

/* ============ RESPONSIVE ============ */
@media (max-width: 1024px) {
  .wp-block-bm21-hero-orbs__inner { grid-template-columns: 1fr; gap: 48px; }
  .wp-block-bm21-emergency-card { grid-template-columns: 1fr; gap: 32px; padding: 48px; }
  .wp-block-columns.is-style-trust-bar { grid-template-columns: repeat(2, 1fr); }
  .wp-block-columns.is-style-values-grid { gap: 12px; }
}
@media (max-width: 720px) {
  body { font-size: 16px; }
  .wp-block-bm21-emergency-card { padding: 32px 24px; border-radius: var(--radius-lg); }
  .wp-block-group.is-style-cta-card { padding: 48px 24px; }
}
