/* ============================================================
   WedYara — component motion states (used by animations.js)
   Loaded after design-system.css and before animations.css.
   ============================================================ */

/* Header: translucent + blur at the top, solid + soft shadow after scrolling */
.site-header:not(.scrolled) {
    background: rgba(255, 255, 255, .78);
    -webkit-backdrop-filter: blur(14px) saturate(1.2);
    backdrop-filter: blur(14px) saturate(1.2);
    border-bottom-color: transparent;
}
.site-header.scrolled { background: #fff; }
.site-nav__dropdown:focus-within .site-nav__dropdown-panel {
    opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0);
}
.site-header__btn--primary { transition: background-color .22s ease, border-color .22s ease, transform .22s var(--wy-ease); }
@media (hover: hover) { .site-header__btn--primary:hover { transform: translateY(-2px); } }

/* Hero scroll cue */
.hm-hero__scroll {
    position: absolute; left: 50%; bottom: 1.25rem; width: 1.6rem; height: 2.6rem; margin-left: -.8rem;
    border: 1.5px solid rgba(255,255,255,.75); border-radius: var(--wy-r-pill);
    transition: opacity .4s ease;
}
.hm-hero__scroll span {
    position: absolute; left: 50%; top: .5rem; width: 3px; height: .5rem; margin-left: -1.5px;
    border-radius: 2px; background: #fff; animation: wyCue 2.2s var(--wy-ease) infinite;
}
.hm-hero__scroll.is-gone { opacity: 0; pointer-events: none; }
@keyframes wyCue { 0% { opacity: 0; transform: translateY(0); } 30% { opacity: 1; } 80%, 100% { opacity: 0; transform: translateY(.95rem); } }

/* Trust: animated separators + icon hover */
.hm-trust__item { position: relative; border-right: 0; }
.hm-trust__item::after {
    content: ""; position: absolute; right: 0; top: 18%; bottom: 18%; width: 1px; background: var(--wy-border);
    transform-origin: top; transition: transform .7s var(--wy-ease) .25s;
}
.hm-trust__item:last-child::after { display: none; }
.wy-anim .hm-trust__item.wy-reveal:not(.is-seen)::after { transform: scaleY(0); }
.hm-trust__item i { transition: transform .25s var(--wy-ease), background-color .25s, color .25s; }
@media (hover: hover) { .hm-trust__item:hover i { transform: translateY(-2px) scale(1.06); background: var(--wy-pink); color: #fff; } }

/* Form: validation message opens without a layout jump */
.hm-form-status {
    display: block; max-height: 0; opacity: 0; margin-top: 0; padding-block: 0; border-width: 0; overflow: hidden;
    transform: translateY(-4px);
    transition: max-height .35s var(--wy-ease), opacity .3s ease, margin .3s ease, padding .3s ease, transform .3s var(--wy-ease);
}
.hm-form-status.is-open { max-height: 9rem; opacity: 1; margin-top: 1rem; padding-block: .85rem; border-width: 1px; transform: none; }
.wy-btn.is-success { background: #1E7A46; border-color: #1E7A46; }
.hm-form .form-control { transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease; }

/* Corporate: image tiles zoom gently on hover */
.hm-corp__mosaic { overflow: hidden; border-radius: var(--wy-r-md); }
.hm-corp__mosaic img { transition: transform .6s var(--wy-ease); }
@media (hover: hover) { .hm-corp__mosaic img:hover { transform: scale(1.04); } }

/* Services: consistent 1.04 image scale */
.hm-svc:hover .hm-svc__img img { transform: scale(1.04); }

/* Destinations: overlay + CTA affordances (titles always visible) */
.hm-dest__card::before {
    content: ""; position: absolute; inset: 0; z-index: 0; background: rgba(36,28,36,.28);
    opacity: 0; transition: opacity .4s ease;
}
.hm-dest__card:hover::before, .hm-dest__card:focus-within::before { opacity: 1; }
@media (hover: hover) and (pointer: fine) {
    .hm-dest__cta { opacity: 0; transform: translateY(8px); transition: opacity .3s ease, transform .35s var(--wy-ease); }
    .hm-dest__card:hover .hm-dest__cta, .hm-dest__card:focus-within .hm-dest__cta { opacity: 1; transform: none; }
}

/* Process: connected timeline */
.hm-process { border: 0; gap: 2.75rem 2rem; list-style: none; padding: 0; }
.hm-step { padding: 0; background: none; border: 0; position: relative; }
.hm-step:hover { background: none; }
.hm-step__num {
    display: grid; place-items: center; width: 3.25rem; height: 3.25rem; margin: 0 0 1.25rem;
    border-radius: 50%; border: 1.5px solid var(--wy-pink); background: #fff; color: var(--wy-pink);
    font: 500 1.05rem/1 var(--wy-serif); position: relative; z-index: 1;
    transition: background-color .45s ease .2s, color .45s ease .2s;
}
.hm-step:hover .hm-step__num { color: var(--wy-pink); }
.hm-step.is-seen .hm-step__num, .hm-step.is-seen:hover .hm-step__num { background: var(--wy-pink); color: #fff; }
.hm-step::after {          /* connector to the next stage */
    content: ""; position: absolute; top: 1.625rem; left: 3.25rem; right: -2rem; height: 1px;
    background: linear-gradient(90deg, var(--wy-pink), var(--wy-pink-soft));
    transform-origin: left; transition: transform 1s var(--wy-ease) .3s;
}
.hm-step:nth-child(3n)::after { display: none; }
.wy-anim .hm-step.wy-reveal:not(.is-seen)::after { transform: scaleX(0); }
.hm-step__body {
    background: #fff; border: 1px solid var(--wy-border); border-radius: var(--wy-r-md); padding: 1.4rem 1.5rem 1.6rem;
    transition: border-color .3s ease, box-shadow .3s ease;
}
.hm-step.is-seen .hm-step__body { border-color: var(--wy-pink-soft); }
@media (hover: hover) { .hm-step:hover .hm-step__body { box-shadow: var(--wy-shadow-md); } }
.hm-step h3 { margin: 0 0 .45rem; }

/* Gallery: settle-zoom per tile, smooth lightbox */
.wy-anim .hm-gallery__item.wy-reveal img { scale: 1.12; transition: scale 1.1s var(--wy-ease), transform .8s var(--wy-ease); }
.wy-anim .hm-gallery__item.wy-reveal.wy-in img { scale: 1; }
.hm-gallery__item:hover img { transform: scale(1.04); }
.hm-lightbox { display: flex; opacity: 0; visibility: hidden; transition: opacity .3s ease, visibility 0s linear .3s; }
.hm-lightbox.is-open { opacity: 1; visibility: visible; transition: opacity .3s ease; animation: none; }
.hm-lightbox img { transform: scale(.96); transition: transform .45s var(--wy-ease); }
.hm-lightbox.is-open img { transform: none; }

/* Testimonials: quotation mark eases in */
.hm-quote::before { transition: opacity .6s ease .25s, transform .7s var(--wy-ease) .25s; }
.wy-anim .hm-quote.wy-reveal:not(.is-seen)::before { opacity: 0; transform: translateY(10px) scale(.8); }

/* FAQ */
.hm-faq details { overflow: hidden; }

/* Final CTA: background reveal */
.wy-anim .hm-cta > img { scale: 1.12; opacity: 0; transition: scale 1.6s var(--wy-ease), opacity 1.1s ease; }
.wy-anim .hm-cta.is-seen > img { scale: 1; opacity: .45; }

/* Footer: link underline + icon feedback */
.wy-footer ul a { position: relative; display: inline-block; }
.wy-footer ul a::after {
    content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 1px; background: currentColor;
    transform: scaleX(0); transform-origin: left; transition: transform .3s var(--wy-ease);
}
.wy-footer ul a:hover::after, .wy-footer ul a:focus-visible::after { transform: scaleX(1); }
.wy-footer__contact i { transition: transform .25s var(--wy-ease); }
.wy-footer__contact li:hover i { transform: scale(1.18); }

@media (max-width: 1100px) {
    .hm-step:nth-child(3n)::after { display: block; }
    .hm-step:nth-child(2n)::after { display: none; }
}
@media (max-width: 640px) {
    .hm-hero__scroll { display: none; }
    .hm-process { gap: 1.5rem; }
    /* single column: node on the left, card beside it, vertical connector */
    .hm-step { display: grid; grid-template-columns: 3.25rem 1fr; column-gap: 1rem; }
    .hm-step__num { margin: 0; grid-column: 1; grid-row: 1; }
    .hm-step__body { grid-column: 2; grid-row: 1; }
    .hm-step::after, .hm-step:nth-child(3n)::after, .hm-step:nth-child(2n)::after {
        display: block; top: 3.25rem; bottom: -1.5rem; left: 1.625rem; right: auto; width: 1px; height: auto;
        background: linear-gradient(180deg, var(--wy-pink), var(--wy-pink-soft)); transform-origin: top;
    }
    .wy-anim .hm-step.wy-reveal:not(.is-seen)::after { transform: scaleY(0); }
    .hm-step:last-child::after { display: none; }
}
@media (hover: none) { .hm-dest__cta { opacity: 1; transform: none; } }

@media (prefers-reduced-motion: reduce) {
    .hm-hero__scroll span { animation: none; opacity: 1; }
    .hm-step::after, .hm-trust__item::after { transition: none; }
}

/* ---------- Footer: dark pink theme ---------- */
:root { --wy-pink-deep: #C4275A; --wy-pink-deeper: #9C1C45; }
.wy-footer { background: var(--wy-pink-deep); color: rgba(255, 255, 255, .88); }
.wy-footer p { color: rgba(255, 255, 255, .86); }
.wy-footer h4 { color: #fff; }
.wy-footer a:hover { color: #fff; }
.wy-footer__contact i { color: var(--wy-pink-soft); }
.wy-footer__news p { color: rgba(255, 255, 255, .8); }
.wy-footer__news input { border-color: rgba(255, 255, 255, .4); background: rgba(255, 255, 255, .1); }
.wy-footer__news input::placeholder { color: rgba(255, 255, 255, .72); }
.wy-footer__news input:focus { border-color: #fff; box-shadow: 0 0 0 3px rgba(255, 255, 255, .22); }
.wy-footer__news button { background: #fff; color: var(--wy-pink-deeper); }
.wy-footer__news button:hover { background: var(--wy-pink-soft); }
.wy-footer__bottom { border-top-color: rgba(255, 255, 255, .22); background: var(--wy-pink-deeper); }
.wy-footer__bottom-in { color: rgba(255, 255, 255, .85); }

/* ---------- Sitemap page ---------- */
.hm-sitemap { width: var(--wy-container); margin-inline: auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--wy-s6) var(--wy-s7); }
.hm-sitemap__col { padding: 1.75rem 1.75rem 1.5rem; background: #fff; border: 1px solid var(--wy-border); border-radius: var(--wy-r-lg); }
.hm-sitemap__col h2 { display: flex; align-items: center; gap: .6rem; margin: 0 0 1rem; padding-bottom: .9rem; border-bottom: 1px solid var(--wy-border); font: 500 1.3rem/1.2 var(--wy-serif); color: var(--wy-charcoal); }
.hm-sitemap__col h2 i { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 50%; background: var(--wy-pink-soft); color: var(--wy-pink); font-size: 1.1rem; }
.hm-sitemap__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .15rem; }
.hm-sitemap__col a { display: block; padding: .5rem .25rem; color: var(--wy-text); text-decoration: none; font-size: .9375rem; border-radius: 6px; transition: color .2s ease, padding-left .25s var(--wy-ease), background-color .2s; }
.hm-sitemap__col a:hover, .hm-sitemap__col a:focus-visible { color: var(--wy-pink); padding-left: .75rem; background: var(--wy-blush); }
.hm-sitemap__xml { width: var(--wy-container); margin: var(--wy-s7) auto 0; text-align: center; color: var(--wy-muted); font-size: .9375rem; }
@media (max-width: 1000px) { .hm-sitemap { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .hm-sitemap { grid-template-columns: 1fr; gap: 1rem; } }
