/* My Heart Is v6.83 — Elementor widgets: Place Carousel and Place Ticker. */

/* ---------- Place Carousel ---------- */
.mhi-pc{position:relative;height:620px;background:#f1ece2;overflow:hidden;--mhi-heart:76px;--mhi-accent:#ed4056}
.mhi-pc-slide{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;transform:scale(.95);transition:opacity .8s,transform .8s;pointer-events:none}
.mhi-pc-slide.is-on{opacity:1;transform:none}
.mhi-pc-kind{position:absolute;top:28px;left:28px;font-family:'DM Sans',sans-serif;font-size:11px;font-weight:900;letter-spacing:.22em;color:var(--mhi-accent)}
.mhi-pc-map{position:relative;width:75%;max-width:460px;aspect-ratio:1/1}
.mhi-pc .mhi-pc-art{display:block;width:100%;height:100%;max-width:none;object-fit:contain}
/* Street maps: the arrow's left tip (6,95 of the 177px heart) marks the exact address. */
.mhi-pc .mhi-pc-heart{position:absolute;width:var(--mhi-heart);height:auto;max-width:none;--ax:-3.4%;--ay:-53.7%;transform-origin:3.4% 53.7%;transform:translate(var(--ax),var(--ay))}
/* Abstract maps: the heart itself sits on the place. */
.mhi-pc .is-abstract .mhi-pc-heart{width:calc(var(--mhi-heart) * .84);--ax:-50%;--ay:-51%;transform-origin:50% 51%}
.mhi-pc-slide.is-on .mhi-pc-heart{animation:mhiBeat 1.4s ease-in-out infinite}
@keyframes mhiBeat{0%,30%,100%{transform:translate(var(--ax),var(--ay)) scale(1)}15%{transform:translate(var(--ax),var(--ay)) scale(1.12)}}
.mhi-pc-name{font-family:'DM Sans',sans-serif;font-size:22px;font-weight:900;letter-spacing:.32em;margin-top:6px;color:#111;text-align:center}
.mhi-pc-dots{position:absolute;right:28px;bottom:28px;display:flex;gap:8px;z-index:2}
.mhi-pc .mhi-pc-dots button{width:12px;height:12px;min-height:0;padding:0;margin:0;border-radius:50%;border:2px solid #111;background:transparent;cursor:pointer;line-height:0;box-shadow:none}
.mhi-pc .mhi-pc-dots button.is-on{background:var(--mhi-accent);border-color:var(--mhi-accent)}

/* The typing cursor added after the headline word. */
.mhi-caret{display:inline-block;width:.055em;min-width:3px;height:.78em;margin-left:.07em;vertical-align:-.04em;background:#ed4056;animation:mhiBlink 1s steps(1) infinite}
.mhi-caret.is-typing{animation:none}
@keyframes mhiBlink{50%{opacity:0}}

@media (max-width:767px){
  .mhi-pc-kind{top:16px;left:16px}
  .mhi-pc-name{font-size:16px}
  .mhi-pc-dots{right:16px;bottom:16px}
}

/* ---------- Place Ticker ---------- */
.mhi-tk{overflow:hidden;background:#fff;border-top:2px solid #111;border-bottom:2px solid #111;padding:14px 0;--mhi-tk-speed:40s;--mhi-tk-heart:44px}
.mhi-tk-track,.mhi-tk-copy{display:flex;align-items:center;width:max-content}
.mhi-tk-track{animation:mhiTk var(--mhi-tk-speed) linear infinite}
.mhi-tk:hover .mhi-tk-track{animation-play-state:paused}
.mhi-tk-item{display:flex;align-items:center;white-space:nowrap;font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:22px;color:#111}
.mhi-tk .mhi-tk-heart{width:var(--mhi-tk-heart);height:var(--mhi-tk-heart);max-width:none;margin:0 18px}
@keyframes mhiTk{to{transform:translateX(-50%)}}

@media (prefers-reduced-motion:reduce){
  .mhi-tk-track,.mhi-pc-slide.is-on .mhi-pc-heart,.mhi-caret{animation:none}
  .mhi-pc-slide{transition:none}
}
