/* PRESTIVEX Homepage Micro Hero 1.6.0
   Presentation-only homepage enhancement.
   Core DOM content, H1, CTA links, anchors, schema and SEO remain untouched. */

.pvx41-home > .pvx41-hero {
    position: relative !important;
    display: block !important;
    grid-template-columns: none !important;
    width: min(1320px, calc(100% - 72px)) !important;
    min-height: 0 !important;
    margin: 0 auto !important;
    background: #fff !important;
    overflow: hidden !important;
    isolation: isolate !important;
}
.pvx41-home > .pvx41-hero > .pvx41-hero__media { display: none !important; }
.pvx41-home > .pvx41-hero > .pvx41-hero__copy {
    position: relative !important;
    z-index: 4 !important;
    display: flex !important;
    width: 55% !important;
    max-width: 735px !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 54px 0 40px !important;
    justify-content: center !important;
}
.pvx41-home > .pvx41-hero > .pvx41-hero__copy h1 {
    max-width: 700px !important;
    font-size: clamp(50px, 4.35vw, 64px) !important;
    line-height: 1.01 !important;
}
.pvx41-home > .pvx41-hero > .pvx41-hero__copy > p:not(.pvx37-eyebrow):not(.pvx38-trustline) {
    max-width: 700px !important;
    margin-top: 19px !important;
    line-height: 1.58 !important;
}
.pvx41-home > .pvx41-hero > .pvx41-hero__copy .pvx37-actions { margin-top: 23px !important; }
.pvx41-home > .pvx41-hero > .pvx41-hero__copy .pvx38-trustline {
    max-width: 720px !important;
    margin-top: 16px !important;
}

.pvxmh-brand {
    --pvxmh-rx: 0deg;
    --pvxmh-ry: 0deg;
    position: absolute;
    z-index: 2;
    left: 76%;
    top: 50%;
    width: min(37%, 455px);
    height: 310px;
    transform: translate(-50%, -50%);
    pointer-events: none;
    user-select: none;
    contain: layout paint style;
    perspective: 880px;
    -webkit-perspective: 880px;
}
.pvxmh-parallax {
    position: absolute;
    inset: 0;
    transform: rotateX(var(--pvxmh-rx)) rotateY(var(--pvxmh-ry)) translateZ(0);
    transform-style: preserve-3d;
    -webkit-transform-style: preserve-3d;
    transition: transform 240ms cubic-bezier(.2,.7,.2,1);
    will-change: transform;
}
.pvxmh-scene {
    position: absolute;
    left: 50%;
    top: 4px;
    width: 172px;
    height: 172px;
    transform: translateX(-50%);
    perspective: 720px;
    -webkit-perspective: 720px;
    perspective-origin: 50% 48%;
    -webkit-perspective-origin: 50% 48%;
}
.pvxmh-float { position: absolute; inset: 0; animation: pvxmhFloat 4.8s ease-in-out infinite; will-change: transform; }
.pvxmh-rotor {
    position: absolute; inset: 0; transform-style: preserve-3d; -webkit-transform-style: preserve-3d;
    transform-origin: 50% 50%; animation: pvxmhRotor 7.8s cubic-bezier(.35,.02,.18,1) infinite; will-change: transform;
}
.pvxmh-face {
    position: absolute; inset: 0; display: grid; place-items: center;
    backface-visibility: hidden; -webkit-backface-visibility: hidden;
    transform-style: preserve-3d; -webkit-transform-style: preserve-3d;
}
.pvxmh-face--front { transform: translateZ(5px); }
.pvxmh-face--back { transform: rotateY(180deg) translateZ(5px); }
.pvxmh-face img {
    display: block; width: 100%; height: 100%; object-fit: contain;
    filter: drop-shadow(0 14px 24px rgba(61,43,14,.16)); -webkit-user-drag: none;
}
.pvxmh-floor-shadow {
    position: absolute; left: 50%; top: 174px; width: 118px; height: 16px; border-radius: 50%;
    background: rgba(82,57,20,.12); opacity: .58; transform: translateX(-50%) scaleX(1);
    filter: blur(8px); animation: pvxmhShadow 4.8s ease-in-out infinite;
}
/* Exact lower lockup from supplied logo. Keeps current crest position/size while replacing only the text block. */
.pvxmh-lockup {
    position: absolute;
    left: 50%;
    bottom: 8px;
    width: min(82%, 372px);
    transform: translateX(-50%);
    animation: pvxmhLockupBreath 5.6s ease-in-out infinite;
    will-change: transform, opacity;
}
.pvxmh-lockup img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
    filter: drop-shadow(0 8px 14px rgba(91,61,20,.10));
}
.pvxmh-lockup__shine {
    position: absolute;
    inset: 0;
    -webkit-mask-image: var(--pvxmh-lockup);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    mask-image: var(--pvxmh-lockup);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    overflow: hidden;
    opacity: .60;
}
.pvxmh-lockup__shine > span {
    position: absolute;
    top: -15%; bottom: -15%; left: 0; width: 24%;
    background: linear-gradient(90deg, rgba(255,246,214,0), rgba(255,246,214,.72) 46%, rgba(255,255,255,.92) 50%, rgba(255,246,214,.72) 54%, rgba(255,246,214,0));
    transform: translateX(-170%) skewX(-12deg);
    animation: pvxmhShine 5.1s cubic-bezier(.32,.01,.2,1) infinite;
    will-change: transform, opacity;
}

@keyframes pvxmhRotor {
    0%,10% { transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg) scale(1); }
    17% { transform: rotateX(2deg) rotateY(90deg) rotateZ(-1deg) scale(.985); }
    24% { transform: rotateX(-2deg) rotateY(180deg) rotateZ(1deg) scale(1.012); }
    31% { transform: rotateX(2deg) rotateY(270deg) rotateZ(-1deg) scale(.99); }
    38% { transform: rotateX(0deg) rotateY(360deg) rotateZ(0deg) scale(1); }
    53% { transform: rotateX(-7deg) rotateY(360deg) rotateZ(-1.8deg) scale(1.018); }
    68% { transform: rotateX(6deg) rotateY(360deg) rotateZ(1.4deg) scale(.998); }
    83% { transform: rotateX(-3deg) rotateY(360deg) rotateZ(-.8deg) scale(1.008); }
    100% { transform: rotateX(0deg) rotateY(360deg) rotateZ(0deg) scale(1); }
}
@keyframes pvxmhFloat { 0%,100% { transform: translateY(0) translateZ(0); } 50% { transform: translateY(-7px) translateZ(0); } }
@keyframes pvxmhShadow { 0%,100% { transform: translateX(-50%) scaleX(1); opacity: .58; } 50% { transform: translateX(-50%) scaleX(.76); opacity: .34; } }
@keyframes pvxmhLockupBreath { 0%,100% { transform: translateX(-50%) translateY(0) scale(1); opacity: .97; } 50% { transform: translateX(-50%) translateY(-2px) scale(1.006); opacity: 1; } }
@keyframes pvxmhShine {
    0%,16% { transform: translateX(-170%) skewX(-12deg); opacity: 0; }
    22% { opacity: .9; }
    52% { transform: translateX(500%) skewX(-12deg); opacity: .9; }
    58%,100% { transform: translateX(500%) skewX(-12deg); opacity: 0; }
}
.pvxmh-brand.is-paused *, .pvxmh-brand.is-paused *::before, .pvxmh-brand.is-paused *::after { animation-play-state: paused !important; }
.pvxmh-reduced-motion .pvxmh-rotor, .pvxmh-reduced-motion .pvxmh-float, .pvxmh-reduced-motion .pvxmh-floor-shadow, .pvxmh-reduced-motion .pvxmh-lockup, .pvxmh-reduced-motion .pvxmh-lockup__shine > span { animation: none !important; }
.pvxmh-reduced-motion .pvxmh-rotor { transform: rotateY(0deg) !important; }
.pvx41-home > .pvx41-hero + .pvx41-fleet { margin-top: 26px !important; }
@media (max-width: 1120px) {
    .pvx41-home > .pvx41-hero > .pvx41-hero__copy { width: 57% !important; max-width: 680px !important; }
    .pvxmh-brand { left: 78%; width: min(35%, 405px); height: 292px; }
    .pvxmh-scene { width: 158px; height: 158px; }
    .pvxmh-floor-shadow { top: 160px; }
    .pvxmh-lockup { width: min(84%, 338px); }
}
/* Show branding on tablet/mobile too, just smaller and stacked below the copy. */

@media (max-width: 960px) {
    .pvx41-home > .pvx41-hero { width: min(100% - 48px, 1320px) !important; }
    .pvx41-home > .pvx41-hero > .pvx41-hero__copy {
        width: 100% !important; max-width: 760px !important; padding: 48px 0 34px !important;
    }
    .pvx41-home > .pvx41-hero > .pvx41-hero__copy h1 {
        font-size: clamp(46px, 8.5vw, 58px) !important;
        max-width: calc(100% - 138px) !important;
    }
    .pvxmh-brand.pvxmh-inline-h1 {
        display: block !important;
        position: absolute !important;
        left: auto !important;
        right: 0 !important;
        top: var(--pvxmh-inline-top, 172px) !important;
        width: 118px !important;
        height: 118px !important;
        margin: 0 !important;
        transform: translateY(-50%) !important;
        perspective: 760px !important;
        -webkit-perspective: 760px !important;
    }
    .pvxmh-inline-h1 .pvxmh-parallax { inset: 0 !important; }
    .pvxmh-inline-h1 .pvxmh-scene {
        left: 50% !important; top: 50% !important; width: 112px !important; height: 112px !important;
        transform: translate(-50%, -50%) !important;
    }
    .pvxmh-inline-h1 .pvxmh-floor-shadow,
    .pvxmh-inline-h1 .pvxmh-lockup { display: none !important; }
    /* Safari/iOS: keep the rotating plane fully transparent; filter drop-shadow on a 3D-transformed PNG can reveal its rectangular compositor layer. */
    .pvxmh-inline-h1,
    .pvxmh-inline-h1 .pvxmh-parallax,
    .pvxmh-inline-h1 .pvxmh-scene,
    .pvxmh-inline-h1 .pvxmh-float,
    .pvxmh-inline-h1 .pvxmh-rotor,
    .pvxmh-inline-h1 .pvxmh-face,
    .pvxmh-inline-h1 .pvxmh-face img {
        background: transparent !important;
        box-shadow: none !important;
    }
    .pvxmh-inline-h1 .pvxmh-face img {
        filter: none !important;
        -webkit-filter: none !important;
    }
    .pvx41-home > .pvx41-hero + .pvx41-fleet { margin-top: 26px !important; }

    /* Symmetric horizontal rhythm: H1 starts at hero left edge; crest ends at hero right edge. */
    .pvxmh-brand.pvxmh-inline-h1 {
        transform-origin: 50% 50% !important;
    }
}
@media (max-width: 620px) {
    .pvx41-home > .pvx41-hero { width: min(100% - 28px, 1320px) !important; }
    .pvx41-home > .pvx41-hero > .pvx41-hero__copy { padding: 38px 0 27px !important; }
    .pvx41-home > .pvx41-hero > .pvx41-hero__copy h1 {
        font-size: 42px !important; line-height: 1.03 !important; max-width: calc(100% - 96px) !important;
    }
    .pvx41-home > .pvx41-hero > .pvx41-hero__copy > p:not(.pvx37-eyebrow):not(.pvx38-trustline) {
        margin-top: 16px !important; font-size: 14px !important; line-height: 1.55 !important;
    }
    .pvx41-home > .pvx41-hero > .pvx41-hero__copy .pvx37-actions { margin-top: 20px !important; }
    .pvx41-home > .pvx41-hero > .pvx41-hero__copy .pvx38-trustline { margin-top: 14px !important; }
    .pvxmh-brand.pvxmh-inline-h1 {
        right: 0 !important; width: 84px !important; height: 84px !important;
    }
    .pvxmh-inline-h1 .pvxmh-scene { width: 82px !important; height: 82px !important; }
    .pvxmh-inline-h1 .pvxmh-face img {
        filter: none !important;
        -webkit-filter: none !important;
    }
    .pvx41-home > .pvx41-hero + .pvx41-fleet { margin-top: 22px !important; }
}


/* 1.4.8 desktop-only optical lockup spacing fix.
   Desktop spacing remains unchanged from 1.4.8; this rule is desktop-only. */
@media (min-width: 1121px) {
    .pvxmh-scene {
        top: 12px;
    }
    .pvxmh-floor-shadow {
        top: 182px;
    }
    .pvxmh-lockup {
        bottom: 26px;
    }
}

/* ========================================================================
   PRESTIVEX Homepage Micro Hero 1.12.6 — journey finder geometry guard
   The finder is inserted as a direct .pvx41-home child, so its OUTER border
   must occupy exactly the Core --pvx-layout-shell. 1.12.5 set the right
   width but left content-box sizing in place; padding therefore enlarged the
   visible beige frame beyond the canonical edge. These rules also keep both
   dark primary actions on one baseline even if older injected finder CSS is
   still present in a browser/page cache.
   ======================================================================== */
.home .pvx41-home > .pvxseo-trip-finder,
.home .pvxseo-trip-finder {
    box-sizing: border-box !important;
    width: var(--pvx-layout-shell, min(1320px, calc(100% - 72px))) !important;
    max-width: var(--pvx-layout-shell, min(1320px, calc(100% - 72px))) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
.home .pvxseo-trip-finder *,
.home .pvxseo-trip-finder *::before,
.home .pvxseo-trip-finder *::after {
    box-sizing: border-box;
}
.home .pvxseo-trip-finder__grid {
    align-items: stretch !important;
}
.home .pvxseo-trip-finder__controls,
.home .pvxseo-trip-finder__result {
    min-height: 100% !important;
}
.home .pvxseo-trip-finder__controls {
    display: flex !important;
    flex-direction: column !important;
}
.home .pvxseo-trip-finder__controls > label {
    order: 0 !important;
}
.home .pvxseo-trip-finder__controls > small {
    order: 4 !important;
    margin-top: auto !important;
}
.home .pvxseo-trip-finder__controls > .pvx37-button--dark {
    order: 5 !important;
    width: 100% !important;
    min-height: 52px !important;
    margin-top: 12px !important;
    margin-bottom: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.home .pvxseo-trip-finder__result {
    display: flex !important;
    flex-direction: column !important;
}
.home .pvxseo-trip-finder__result > .pvx37-actions {
    margin-top: auto !important;
    min-height: 52px !important;
    align-items: stretch !important;
}
.home .pvxseo-trip-finder__result > .pvx37-actions > .pvx37-button {
    min-height: 52px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}
@media (max-width: 1180px) {
    .home .pvx41-home > .pvxseo-trip-finder,
    .home .pvxseo-trip-finder {
        width: var(--pvx-layout-shell, min(1320px, calc(100% - 48px))) !important;
        max-width: var(--pvx-layout-shell, min(1320px, calc(100% - 48px))) !important;
    }
}
@media (max-width: 620px) {
    .home .pvx41-home > .pvxseo-trip-finder,
    .home .pvxseo-trip-finder {
        width: var(--pvx-layout-shell, min(1320px, calc(100% - 28px))) !important;
        max-width: var(--pvx-layout-shell, min(1320px, calc(100% - 28px))) !important;
    }
    .home .pvxseo-trip-finder__controls > small {
        margin-top: 0 !important;
    }
}
