/*
Theme Name: Astra Child
Theme URI: https://wpastra.com/
Template: astra
Author: Brainstorm Force
Author URI: https://wpastra.com/about/
Description: Astra is fast, fully customizable &amp; beautiful WordPress theme suitable for blog, personal portfolio, business website and WooCommerce storefront. It is very lightweight (less than 50KB on frontend) and offers unparalleled speed. Built with SEO in mind, Astra comes with Schema.org code integrated and is Native AMP ready so search engines will love your site. It offers special features and templates so it works perfectly with all page builders like Elementor, Beaver Builder, Visual Composer, SiteOrigin, Divi, etc. Some of the other features: # WooCommerce Ready # Responsive # RTL &amp; Translation Ready # Extendible with premium addons # Regularly updated # Designed, Developed, Maintained &amp; Supported by Brainstorm Force. Looking for a perfect base theme? Look no further. Astra is fast, fully customizable and WooCommerce ready theme that you can use for building any kind of website!
Tags: custom-menu,custom-logo,entertainment,one-column,two-columns,left-sidebar,e-commerce,right-sidebar,custom-colors,editor-style,featured-images,full-width-template,microformats,post-formats,rtl-language-support,theme-options,threaded-comments,translation-ready,blog
Version: 2.2.1.1579604434
Updated: 2020-01-21 11:00:34

*/

/* ─── Layout ───────────────────────────────────────────────── */
.ast-container { margin-left: auto; margin-right: auto; padding-left: 0px !important; padding-right: 0px !important; }
html, body { overflow-x: clip; width: 100%; }

/* ─── Announcement Banner ───────────────────────────────────── */
.Announcement-Banner {
    width: 100%;
    background-color: #0A1E3E; /* VIP Blue — per DS preview/components-announcement (navy, white text, champagne bus) */
    z-index: 9999;
    position: relative;
    overflow: hidden;
    color: #FFFFFF;
    max-width: 100vw;
}
.Announcement-Banner a {
    display: block;
    text-decoration: none;
    color: inherit; /* was #FFFFFF !important — the banner's own colour, which the chosen surface may override, must reach the text */
    font-weight: bold;
}
.scrolling-text {
    display: flex;
    align-items: center;
    white-space: nowrap;
    overflow: hidden;
    padding: 14px 0;
    max-width: 100vw;
}
/* Each track holds 14 copies of the announcement; two tracks sit side by side
   and every track slides one full track-width left per cycle, so the second
   track seamlessly replaces the first — an infinite loop on any viewport.
   Duration comes from the Scroll Speed field via --announcement-duration,
   computed in announcement-banner.php from the copy length so the pace holds
   at any text length. The 112s fallback is the old fixed value. */
.scroll-track {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    animation: scroll-left var(--announcement-duration, 112s) linear infinite;
}
.scroll-item {
    display: inline-flex;
    align-items: center;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 15px;
    letter-spacing: 0.04em;
}
.scroll-divider {
    margin: 0 24px; /* equal gap either side — divider sits centred between items */
    flex-shrink: 0;
}
.scroll-divider--bus {
    width: 32px;
    height: 22px;
    fill: var(--announcement-accent, #D4A418);
}
.scroll-btn {
    display: inline-flex;
    align-items: center;
    margin-left: 16px;
    padding: 6px 14px;
    border-radius: 999px;
    background: var(--announcement-btn-bg, #D4A418);
    color: var(--announcement-btn-text, #0A1E3E);
    font-family: 'Barlow', sans-serif;
    font-weight: 600;
    font-size: 12px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    transition: background 220ms cubic-bezier(0.2, 0.7, 0.2, 1);
}
.Announcement-Banner a:hover .scroll-btn { background: color-mix(in srgb, var(--announcement-btn-bg, #D4A418) 93%, black); }
.scroll-divider--ph {
    display: inline-flex;
    color: var(--announcement-accent, #D4A418); /* phosphor glyphs fill currentColor */
}
.scroll-divider--ph svg {
    width: 24px;
    height: 24px;
    fill: currentColor;
}
.scroll-divider--icon {
    color: var(--announcement-accent, #D4A418); /* champagne dashicon divider on VIP Blue */
}
.scroll-divider--img {
    width: auto;
    height: 22px;
}
.bus-icon-above-header {
    width: 40px;
    height: auto;
    margin-left: 30px;
    margin-right: 30px;
    vertical-align: middle;
}
.scrolling-text:hover .scroll-track { animation-play-state: paused; }
@keyframes scroll-left {
    0%   { transform: translateX(0%); }
    100% { transform: translateX(-100%); }
}
@media (prefers-reduced-motion: reduce) {
    .scroll-track { animation: none; }
}

/* ─── Trust Banner ──────────────────────────────────────────── */
.trust-banner {
    color: #222831; /* row default; a row with a chosen background overrides this inline */
    position: relative;
    z-index: 50;
    display: flex;
    align-items: stretch;
    justify-content: center;
    width: 100%;
    padding: 0;
    margin: 0;
}
.trust-banner__item {
    position: relative;
    flex: 1 1 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 16px 24px;
    cursor: default;
    border-right: 1px solid #D1C2AE;
    transition: filter .2s ease;
}
.trust-banner__item:last-child { border-right: none; }
.trust-banner__item:hover { filter: brightness(.97); }
.trust-banner__icon {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    line-height: 1;
}
.trust-banner__icon .dashicons { width: 22px; height: 22px; font-size: 22px; line-height: 1; color: inherit; }
.trust-banner__icon svg { width: 22px; height: 22px; fill: currentColor; }
.trust-banner__label {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 17px;
    font-weight: 600;
    letter-spacing: .01em;
    color: inherit;
    white-space: nowrap;
}
.trust-banner__tooltip {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%) translateY(4px);
    background: #fff;
    color: #363C38;
    padding: 14px 20px;
    border-radius: 8px;
    box-shadow: 0 4px 20px rgba(0,0,0,.12);
    font-family: 'Montserrat', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.55;
    width: max-content;
    max-width: 320px;
    text-align: center;
    white-space: normal;
    opacity: 0;
    transition: opacity .15s ease, transform .15s ease;
    z-index: 100;
    pointer-events: none;
}
.trust-banner__tooltip::before {
    content: '';
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 8px solid transparent;
    border-bottom-color: #fff;
}
.trust-banner__item:hover .trust-banner__tooltip {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}
@media (max-width: 768px) {
    .trust-banner { position: relative; overflow: hidden; height: 54px; }
    .trust-banner__item {
        position: absolute;
        top: 0; left: 0;
        width: 100%; height: 100%;
        border-right: none;
        opacity: 0;
        transform: translateY(8px);
        transition: opacity .4s ease, transform .4s ease;
        pointer-events: none;
    }
    .trust-banner__item.is-visible { opacity: 1; transform: translateY(0); pointer-events: auto; }
    .trust-banner__tooltip { display: none; }
}

/* ─── Fluent Forms: SELECT chevron ─────────────────────────── */
.fluentform select.ff-el-form-control:not([multiple]) {
    background-image: url("data:image/svg+xml,%3Csvg class='ast-arrow-svg' xmlns='http://www.w3.org/2000/svg' viewBox='57 35.171 26 16.043'%3E%3Cpath d='M57.5,38.193l12.5,12.5l12.5-12.5l-2.5-2.5l-10,10l-10-10L57.5,38.193z'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-size: .8em !important;
    background-position: calc(100% - 14px) center !important;
    padding-right: 2.4em !important;
    appearance: none !important;
}
.fluentform input[type="date"].ff-el-form-control,
.fluentform input[type="time"].ff-el-form-control,
.fluentform input[type="datetime-local"].ff-el-form-control { background-image: none !important; }

/* ─── Fluent Forms: stop iOS zooming on focus ──────────────────── */
/* Fields inherit the Astra Customizer body size, which resolves to
   15.504px below 921px. WebKit zooms the whole page when a focused field is
   under 16px, so on the 5-step, 20-field contact form the visitor is pinched
   back out on every single field. 16px exactly clears the threshold.

   Scoped to .fluentform on purpose: the root size is 3.1% small site-wide,
   but form controls are the only place it crosses a behavioural threshold.
   Raising the Customizer root instead would reflow every rem on the site. */
@media (max-width: 921px) {
    .fluentform .ff-el-form-control,
    .fluentform select.ff-el-form-control:not([multiple]),
    .fluentform textarea.ff-el-form-control { font-size: 16px; }
}

/* ─── Page-builder template: give blocks their inner width back ──── */
/* Astra's page-builder container resets content width with
     .ast-page-builder-template .entry-content[data-ast-blocks-layout] > *
     { max-width: none }
   at specificity (0,3,0), which outranks each block's own
   .vip-*__inner rule at (0,1,0). The blocks are full-bleed by design and
   rely on that inner container to hold their text to a readable measure, so
   on the ~40% of pages set to "Page Builder" the reviews, FAQ, final-CTA and
   feature-grid sections ran the full viewport width — 1824px at 1920.

   Pages set to "Plain Container" were never affected, which is why this only
   showed on some pages. Values below are each block's OWN authored width, not
   new numbers; (0,4,0) beats Astra and this sheet loads after it. */
.ast-page-builder-template .entry-content[data-ast-blocks-layout] .vip-reviews__inner   { max-width: 1200px; }
.ast-page-builder-template .entry-content[data-ast-blocks-layout] .vip-faq__inner       { max-width: 820px; }
.ast-page-builder-template .entry-content[data-ast-blocks-layout] .vip-final-cta__inner { max-width: 760px; }
.ast-page-builder-template .entry-content[data-ast-blocks-layout] .vip-fg6__inner       { max-width: 1280px; }

/* ─── Hero Switcher: Full-width override ────────────────────────── */
/* Specificity 0-5-0 matches Astra's alignfull/alignwide rules.
   Because this stylesheet loads after Astra's, it wins the source-order tie.
   uagb-is-root-container on the PHP wrapper handles the grandchild constraint. */
.ast-page-builder-template .entry-content[data-ast-blocks-layout] > .alignfull.wp-block-vip-buses-hero-switcher,
.ast-page-builder-template .entry-content[data-ast-blocks-layout] > .alignwide.wp-block-vip-buses-hero-switcher {
    margin-left: calc(-50vw + 50%) !important;
    margin-right: 0 !important;
    max-width: 100vw !important;
    width: 100vw !important;
    box-sizing: border-box;
}
