.rwvs {
    --rwvs-bg:#FFFDF9;
    --rwvs-text:#000000;
    --rwvs-accent:#FF9600;
    --rwvs-hover:#DF7615;
    --rwvs-light:#FFF1DB;
    --rwvs-map:#B8B8B8;
    --rwvs-map-opacity:.14;
    --rwvs-route:#C7C7C7;
    --rwvs-plane:#FF9600;
    position:relative;
    width:100%;
    overflow:hidden;
    padding:clamp(60px,8vw,100px) 20px;
    background:var(--rwvs-bg);
    color:var(--rwvs-text);
    font-family:inherit;
    isolation:isolate;
}
.rwvs *, .rwvs *::before, .rwvs *::after { box-sizing:border-box; }
.rwvs__inner { position:relative; z-index:2; width:100%; max-width:1200px; margin:0 auto; }
.rwvs__header { max-width:700px; margin:0 auto 50px; text-align:center; }
.rwvs__badge { display:inline-flex; align-items:center; justify-content:center; margin:0 0 10px; padding:6px 18px; border-radius:999px; background:var(--rwvs-light); color:var(--rwvs-text); font-size:12px; font-weight:700; letter-spacing:.08em; line-height:1.4; text-transform:uppercase; }
.rwvs__heading { margin:0; color:var(--rwvs-text); font-size:clamp(32px,4.5vw,46px); font-weight:700; letter-spacing:-.025em; line-height:1.16; }
.rwvs__description { max-width:620px; margin:12px auto 0; color:var(--rwvs-text); font-size:17px; line-height:1.65; }

.rwvs__map { position:absolute; z-index:0; top:50%; left:50%; width:112%; max-width:1500px; aspect-ratio:2/1; pointer-events:none; transform:translate(-50%,-50%); }
.rwvs__map-svg { display:block; width:100%; height:100%; overflow:visible; }
.rwvs__continents { fill:var(--rwvs-map); opacity:var(--rwvs-map-opacity); }
.rwvs__flight-canvas { position:absolute; z-index:1; inset:0; overflow:hidden; pointer-events:none; }
.rwvs__dynamic-routes { position:absolute; inset:0; display:block; width:100%; height:100%; overflow:visible; }
.rwvs__dynamic-route { fill:none; stroke:var(--rwvs-route); stroke-width:1.35; stroke-dasharray:5 8; opacity:.3; vector-effect:non-scaling-stroke; animation:rwvs-route-appear .5s ease both; }
.rwvs__dynamic-route.is-leaving { opacity:0; transition:opacity .5s ease; }
.rwvs__aircraft-layer { position:absolute; inset:0; }
.rwvs__plane { position:absolute; top:0; left:0; display:block; width:var(--rwvs-plane-size,19px); height:var(--rwvs-plane-size,19px); margin:calc(var(--rwvs-plane-size,19px) / -2); color:var(--rwvs-plane); opacity:0; filter:drop-shadow(0 3px 5px rgba(255,150,0,.14)); offset-anchor:center; offset-rotate:auto; will-change:offset-distance,opacity; }
.rwvs__plane svg { display:block; width:100%; height:100%; fill:currentColor; transform:rotate(90deg); transform-origin:50% 50%; }

.rwvs__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; }
.rwvs__card { position:relative; display:flex; min-width:0; flex-direction:column; overflow:hidden; padding:38px 34px; border:1px solid #FFE1B3; border-radius:30px; background:rgba(255,255,255,.92); color:var(--rwvs-text); box-shadow:0 14px 38px -18px rgba(0,0,0,.11); opacity:0; transform:translateY(20px); animation:rwvs-card-enter .55s ease forwards; animation-delay:var(--rwvs-delay,0ms); transition:transform .28s ease,border-color .28s ease,box-shadow .28s ease; }
.rwvs__card::before { content:""; position:absolute; top:0; left:0; width:100%; height:3px; background:var(--rwvs-accent); opacity:0; transition:opacity .25s ease; }
.rwvs:not(.rwvs--has-accent) .rwvs__card::before { display:none; }
.rwvs__card:hover { transform:translateY(-6px); border-color:var(--rwvs-accent); box-shadow:0 24px 50px -20px rgba(0,0,0,.17); }
.rwvs__card:hover::before { opacity:1; }
.rwvs__icon { display:grid; width:70px; height:70px; place-items:center; margin:0 0 19px; border-radius:22px; background:var(--rwvs-light); color:var(--rwvs-accent); transition:transform .25s ease; }
.rwvs__card:hover .rwvs__icon { transform:translateY(-2px) scale(1.04); }
.rwvs__icon i { font-size:34px; }
.rwvs__icon svg { width:34px; height:34px; fill:currentColor; }
.rwvs__title { margin:0 0 10px; color:var(--rwvs-text); font-size:24px; font-weight:700; line-height:1.25; }
.rwvs__body { flex:1 1 auto; margin:0 0 25px; color:var(--rwvs-text); font-size:16px; line-height:1.7; }
.rwvs .rwvs__button { display:inline-flex; width:fit-content; min-height:46px; align-items:center; justify-content:center; gap:10px; padding:12px 22px; border:0; border-radius:60px; background:var(--rwvs-accent); color:#000; font-weight:700; line-height:1.35; text-decoration:none; box-shadow:0 9px 22px -12px rgba(0,0,0,.2); transition:background-color .2s ease,color .2s ease,transform .2s ease; }
.rwvs .rwvs__button svg { width:16px; height:16px; fill:currentColor; transition:transform .2s ease; }
.rwvs .rwvs__button:hover, .rwvs .rwvs__button:focus-visible { background:var(--rwvs-hover); color:#000; transform:translateY(-2px); }
.rwvs .rwvs__button:hover svg { transform:translateX(4px); }
.rwvs .rwvs__button:focus-visible { outline:2px solid #000; outline-offset:3px; }

@keyframes rwvs-card-enter { to { opacity:1; transform:translateY(0); } }
@keyframes rwvs-route-appear { from { opacity:0; } to { opacity:.3; } }
@media (max-width:820px) {
    .rwvs__grid { grid-template-columns:1fr; max-width:580px; margin:0 auto; gap:20px; }
    .rwvs__map { width:145%; top:46%; opacity:.8; }
    .rwvs__card { padding:30px 27px; }
}
@media (max-width:767px) {
    .rwvs { padding:52px 15px; }
    .rwvs__header { margin-bottom:35px; }
    .rwvs__card { text-align:center; }
    .rwvs__icon { margin-left:auto; margin-right:auto; }
    .rwvs .rwvs__button { width:100%; }
}
@media (max-width:420px) { .rwvs { padding-inline:12px; } .rwvs__card { padding:25px 20px; } }
@media (prefers-reduced-motion:reduce) {
    .rwvs__card { opacity:1; transform:none; animation:none; transition:none; }
    .rwvs__flight-canvas { display:none; }
    .rwvs__icon, .rwvs__button, .rwvs__button svg { transition:none!important; }
}

/* Royal Walk live global design tokens. Local Elementor controls remain available when this mode is off. */
.rwvs.rwvs--global-design {
    --rwvs-bg:var(--rwds-section-bg,#FFFDF9)!important;
    --rwvs-text:var(--rwds-text,#000000)!important;
    --rwvs-accent:var(--rwds-accent,#FF9600)!important;
    --rwvs-hover:var(--rwds-button-hover,#DF7615)!important;
    --rwvs-light:var(--rwds-accent-light,#FFF1DB)!important;
    background:var(--rwds-section-bg,#FFFDF9)!important;
    color:var(--rwds-text,#000000)!important;
    font-family:var(--rwds-body-font,inherit)!important;
}
.rwvs.rwvs--global-design .rwvs__heading,
.rwvs.rwvs--global-design .rwvs__title { color:var(--rwds-heading,#000000)!important; font-family:var(--rwds-heading-font,inherit)!important; }
.rwvs.rwvs--global-design .rwvs__description,
.rwvs.rwvs--global-design .rwvs__body,
.rwvs.rwvs--global-design .rwvs__badge { color:var(--rwds-text,#000000)!important; font-family:var(--rwds-body-font,inherit)!important; }
.rwvs.rwvs--global-design .rwvs__badge,
.rwvs.rwvs--global-design .rwvs__icon { background:var(--rwds-accent-light,#FFF1DB)!important; }
.rwvs.rwvs--global-design .rwvs__icon { color:var(--rwds-icon,#FF9600)!important; }
.rwvs.rwvs--global-design .rwvs__card { background:var(--rwds-card-bg,#FFFFFF)!important; border-color:var(--rwds-border,#F2E6D6)!important; }
.rwvs.rwvs--global-design .rwvs__card:hover { border-color:var(--rwds-accent,#FF9600)!important; }
.rwvs.rwvs--global-design .rwvs__card::before { background:var(--rwds-accent,#FF9600)!important; }
.rwvs.rwvs--global-design .rwvs__button { background:var(--rwds-button-bg,#FF9600)!important; color:var(--rwds-button-text,#000000)!important; font-family:var(--rwds-button-font,inherit)!important; }
.rwvs.rwvs--global-design .rwvs__button:hover,
.rwvs.rwvs--global-design .rwvs__button:focus-visible { background:var(--rwds-button-hover,#DF7615)!important; color:var(--rwds-button-text,#000000)!important; }
