/* Isolated MV component; image URLs belong to the markup, never CSS. */
.kdk-brush { position: relative; isolation: isolate; width: 100%; background: #eef4f3; }
.kdk-brush__stage { position: relative; height: clamp(520px, 76svh, 940px); overflow: hidden; }
.kdk-brush__fallback, .kdk-brush__svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.kdk-brush__fallback { z-index: 1; object-fit: cover; object-position: var(--photo-x, 50%) var(--photo-y, 55%); }
.kdk-brush__svg { z-index: 2; display: block; visibility: hidden; }
.kdk-brush.is-ready .kdk-brush__svg { visibility: visible; }
.kdk-brush.is-ready .kdk-brush__fallback { visibility: hidden; }
.kdk-brush__petals { position: absolute; inset: -15% 0 0; z-index: 3; overflow: hidden; opacity: 0; visibility: hidden; pointer-events: none; }
.kdk-brush__petals--front { z-index: 6; }
.kdk-brush__petal { position: absolute; top: -10%; left: var(--left); width: var(--size); aspect-ratio: 1 / .78; opacity: calc(var(--opacity) * .78); border: 0; border-radius: 76% 22% 72% 27%; background: radial-gradient(ellipse at 34% 28%, rgba(255, 255, 255, .94) 0 13%, rgba(255, 255, 255, .36) 35%, rgba(255, 255, 255, 0) 65%), radial-gradient(ellipse at 68% 73%, rgba(224, 84, 128, .46) 0 7%, rgba(237, 137, 165, .3) 28%, rgba(251, 218, 227, .16) 62%, rgba(255, 255, 255, 0) 82%), linear-gradient(145deg, rgba(255, 245, 248, .84), rgba(243, 167, 190, .58)); box-shadow: 0 0 9px 4px rgba(245, 176, 197, .3), inset -2px -2px 5px rgba(213, 90, 132, .12); transform-origin: 50% 110%; animation: kdk-petal-fall var(--duration) linear var(--delay) infinite; will-change: transform; }
.kdk-brush__petal::before { content: ''; position: absolute; inset: 7% 8% 10%; border-radius: inherit; background: radial-gradient(ellipse at 30% 22%, rgba(255, 255, 255, .72), transparent 48%); }
.kdk-brush__petal::after { content: ''; position: absolute; left: 42%; bottom: -10%; width: 17%; height: 27%; border-radius: 0 0 90% 30%; background: rgba(220, 72, 118, .48); filter: blur(1.2px); transform: rotate(8deg); }
.kdk-brush__petals--back .kdk-brush__petal { filter: blur(5.5px) saturate(.7); box-shadow: 0 0 15px 9px rgba(245, 176, 197, .25); }
.kdk-brush__petals--front .kdk-brush__petal { filter: blur(2.25px) saturate(.78) drop-shadow(0 3px 7px rgba(160, 79, 110, .12)); }
@keyframes kdk-petal-fall {
  0% { transform: translate3d(0, -12svh, 0) rotate(0deg) rotateX(18deg); }
  24% { transform: translate3d(var(--sway), 22svh, 0) rotate(104deg) rotateX(70deg); }
  53% { transform: translate3d(calc(var(--sway) * -.55), 57svh, 0) rotate(225deg) rotateX(12deg); }
  78% { transform: translate3d(calc(var(--sway) * .75), 91svh, 0) rotate(318deg) rotateX(64deg); }
  100% { transform: translate3d(calc(var(--sway) * -.25), 132svh, 0) rotate(450deg) rotateX(20deg); }
}
.kdk-brush__controls { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; padding: 23px max(24px, calc((100% - 1360px) / 2)); background: #fff; color: #234f5b; border-bottom: 1px solid #dce6e6; font: 12px/1.6 system-ui, sans-serif; }
.kdk-brush__controls[hidden] { display: none; }
.kdk-brush__controls button { min-height: 44px; padding: 10px 20px; border: 1px solid #bdd0d2; border-radius: 2px; color: inherit; background: #fff; font: inherit; cursor: pointer; }
.kdk-brush__controls button:hover { background: #f0f6f6; }
.kdk-brush__controls button:focus-visible, .kdk-brush__controls input:focus-visible { outline: 3px solid #437888; outline-offset: 4px; }
.kdk-brush__seek { flex: 1; min-width: 160px; display: flex; align-items: center; gap: 15px; }
.kdk-brush__seek input { width: 100%; accent-color: #366e7d; cursor: pointer; }
.kdk-brush__status { min-width: 15em; font-variant-numeric: tabular-nums; }
.kdk-brush__copy { position: absolute; isolation: isolate; z-index: 5; top: clamp(30px, 6svh, 64px); left: max(28px, calc((100% - 1380px) / 2)); width: min(570px, 48vw); padding: clamp(23px, 2.2vw, 31px) clamp(28px, 3vw, 42px) clamp(24px, 2.3vw, 32px) clamp(27px, 3vw, 40px); color: #27465e; }
.kdk-brush__copy::before { content: ''; display: block; position: absolute; z-index: -1; inset: -34px -92px -40px -45px; border-radius: 46% 54% 48% 42%; background: radial-gradient(ellipse at 38% 47%, rgba(255, 255, 255, .86) 0 35%, rgba(255, 255, 255, .67) 52%, rgba(251, 253, 252, .33) 70%, rgba(250, 252, 250, .1) 81%, transparent 94%); filter: blur(16px); pointer-events: none; }
.kdk-brush__eyebrow { margin: 0 0 17px; color: #47798c; font: 600 10px/1.5 Arial, sans-serif; letter-spacing: .22em; }
.kdk-brush__copy h1 { margin: 0; color: #173f58; font-family: var(--bbt-heading-font, 'Yu Mincho', 'Hiragino Mincho ProN', serif); font-size: clamp(28px, 2.7vw, 38px); font-weight: 600; line-height: 1.44; letter-spacing: .04em; text-wrap: balance; }
.kdk-brush__lead { margin: 13px 0 18px; color: #405f70; font-size: clamp(11px, .92vw, 13px); line-height: 1.8; }
.kdk-brush__line-bg { padding: 0; background: none; }
.kdk-brush__actions { display: flex; flex-wrap: wrap; align-items: stretch; gap: 10px; }
.kdk-brush__cta, .kdk-brush__phone { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; gap: 14px; padding: 12px 19px; border: 1px solid #3f85b7; border-radius: 8px; font-size: 12px; font-weight: 700; line-height: 1.5; text-align: center; transition: background-color .2s ease, border-color .2s ease, color .2s ease; }
.kdk-brush__cta { color: #fff; background: #3f85b7; }
.kdk-brush__cta:hover, .kdk-brush__cta:focus-visible { border-color: #345b78; color: #fff; background: #345b78; }
.kdk-brush__phone { color: #3f85b7; background: rgba(255, 255, 255, .9); }
.kdk-brush__phone:hover, .kdk-brush__phone:focus-visible { border-color: #345b78; color: #fff; background: #345b78; }
.kdk-brush__phone span, .kdk-brush__phone small { font-size: 10px; font-weight: 400; }
.kdk-brush--wp .kdk-brush__controls { position: absolute; z-index: 7; right: max(20px, calc((100% - 1380px) / 2)); bottom: 18px; padding: 0; border: 0; background: transparent; }
.kdk-brush--wp .kdk-brush__controls [data-pause], .kdk-brush--wp .kdk-brush__seek, .kdk-brush--wp .kdk-brush__status { display: none; }
.kdk-brush--wp .kdk-brush__controls [data-replay] { min-height: 38px; padding: 8px 15px; border-color: rgba(36, 92, 123, .28); border-radius: 999px; background: rgba(255, 255, 255, .8); box-shadow: 0 4px 18px rgba(44, 73, 91, .08); backdrop-filter: blur(8px); }
.kdk-brush__noscript { position: absolute; z-index: 8; right: 20px; bottom: 10px; margin: 0; padding: 7px 10px; background: rgba(255, 255, 255, .85); font-size: 11px; }
@media (max-width: 680px) {
  .kdk-brush__stage { height: clamp(500px, 72svh, 820px); }
  .kdk-brush__fallback { object-position: var(--photo-mobile-x, 60%) var(--photo-mobile-y, 55%); }
  .kdk-brush__controls { gap: 10px; padding: 16px 20px; }
  .kdk-brush__seek { order: 4; flex-basis: 100%; }
  .kdk-brush__status { margin-left: auto; min-width: 0; font-size: 11px; }
  .kdk-brush__copy { top: 18px; left: 18px; width: calc(100% - 36px); padding: 18px 18px 19px; }
  .kdk-brush__copy::before { display: block; inset: -12px -18px -15px; border-radius: 34%; background: radial-gradient(ellipse at 44% 42%, rgba(255, 255, 255, .88) 0 38%, rgba(252, 253, 251, .62) 62%, rgba(250, 252, 250, .18) 80%, transparent 94%); filter: blur(6px); }
  .kdk-brush__line-bg { padding: 0; background: none; }
  .kdk-brush__eyebrow { margin-bottom: 9px; font-size: 8px; }
  .kdk-brush__copy h1 { font-size: clamp(21px, 6.2vw, 27px); line-height: 1.5; letter-spacing: .025em; }
  .kdk-brush__lead { margin: 10px 0 13px; font-size: 10.5px; line-height: 1.75; }
  .kdk-brush__actions { display: grid; grid-template-columns: 1fr; gap: 7px; width: min(310px, 100%); }
  .kdk-brush__cta, .kdk-brush__phone { min-height: 42px; padding: 8px 12px; font-size: 10.5px; }
  .kdk-brush--wp .kdk-brush__controls { right: 12px; bottom: 10px; }
  .kdk-brush--wp .kdk-brush__controls [data-replay] { min-height: 34px; padding: 6px 11px; font-size: 10px; }
}
@media (max-width: 360px) {
  .kdk-brush__copy { top: 12px; left: 12px; width: calc(100% - 24px); padding: 14px 13px 15px; }
  .kdk-brush__copy::before { inset: -8px -12px -10px; }
  .kdk-brush__eyebrow { margin-bottom: 6px; font-size: 7px; }
  .kdk-brush__copy h1 { font-size: 18px; line-height: 1.42; letter-spacing: 0; }
  .kdk-brush__lead { margin: 8px 0 10px; font-size: 9.5px; line-height: 1.65; }
  .kdk-brush__cta, .kdk-brush__phone { min-height: 38px; padding: 6px 9px; font-size: 9.5px; }
}
@media (prefers-reduced-motion: reduce) {
  .kdk-brush__petal { animation: none; display: none; }
  .kdk-brush__petal:nth-child(-n+3) { display: block; top: var(--top, 16%); transform: rotate(var(--rotate, 20deg)); }
}
