/* ==========================================================
   Safety & Tracking Solutions Product Page Styles
   Template : stores/safety-and-tracking-solutions/product-pages/
   Prefix   : .flp- (fleet product page)
   
   ========================================================== */
/* ----------------------------------------------------------
   Page shell
   ---------------------------------------------------------- */
.flp-page {
    display: flex;
    flex-direction: column;
    width: 100%;
    margin: 0 auto;
}

/* Force full-width layout: this stylesheet only loads on custom product pages
   (scoped via inc/enqueue.php), so this rule is already safe and specific. */
.site-content>.ast-container {
    max-width: 100% !important;
    padding: 0 !important;
}

.ap_custom-ast-container {
    max-width: 100%;
    padding: 0;
}

/* ----------------------------------------------------------
   1. HERO
   Background image band.
   Row A : product image (left) + summary card (right)
   ---------------------------------------------------------- */
.flp-bg-wrapper {
    background-color: white;
    background-position: center top;
    background-repeat: no-repeat;
    width: 100%;
}

.flp-hero {
    background-color: transparent;
    position: relative;
    padding: 2rem 0 2rem;
    overflow: hidden;
}

/* Semi-transparent dark overlay for text readability over background image */
.flp-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.flp-hero .ast-container {
    position: relative;
    /* sit above overlay */
    display: flex !important;
    flex-direction: column;
}

/*  Row A  */
.flp-hero__top {
    display: flex !important;
    align-items: center;
    gap: 3rem;
    margin-bottom: 2.5rem;
}

.flp-hero__image {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
}

.flp-hero__image img {
    max-height: 320px;
    width: auto;
    max-width: 100%;
    display: block;
}

/* White info card */
.flp-hero__card {
    flex: 1.5;
    background: rgba(255, 255, 255, 0.88);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    border: 1px solid rgba(255, 255, 255, 0.5);
    padding: 2rem 2.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.5);
}

.flp-hero__title {
    font-size: 2rem !important;
    font-weight: 700 !important;
    color: #32255e !important;
    line-height: 1.2 !important;
    margin: 0 !important;
}

/* Gradient subtitle line below title (prd_description_title) */
.flp-hero__subtitle {
    font-size: 1.1rem;
    font-weight: 600;
    margin: 0;
    line-height: 1.3;
}

/* Bold subheading (prd_short_description) â€” e.g. "Fleet Tracking + Driver Behavior + Vehicle Health" */
.flp-hero__tagline {
    font-weight: 700;
    color: #1b1e24;
    font-size: 0.97rem;
    margin: 0;
}

.flp-hero__desc,
.flp-hero__access {
    color: #444;
    font-size: 0.97rem;
    line-height: 1.55;
    margin: 0;
}

/* Price row: strikethrough  sale price  period */
.flp-hero__pricing {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.flp-hero__price-was {
    font-size: 1rem;
    color: #aaa;
    text-decoration: line-through;
}

.flp-hero__price-was .woocommerce-Price-amount {
    color: inherit;
    font-size: inherit;
}

.flp-hero__price-now {
    font-size: 1.9rem;
    font-weight: 700;
    color: #32255e;
    line-height: 1;
}

.flp-hero__price-now .woocommerce-Price-amount {
    font-size: inherit;
    color: inherit;
}

.flp-hero__price-period {
    font-size: 0.9rem;
    color: #666;
    font-weight: 400;
}

/* ----------------------------------------------------------
   2. PRODUCT DETAILS (two-column)
   Left  : big headline + "Best for" + description
   Right : "What's Included" checklist
   ---------------------------------------------------------- */
.flp-details {
    padding: 2rem 0;
}

.flp-details__inner {
    display: flex !important;
    gap: 3.5rem;
    align-items: flex-start;
}

/* Left column */
.flp-details__desc {
    flex: 1.1;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.flp-details__headline {
    font-size: 1.3rem !important;
    font-weight: 500 !important;
    color: #1b1e24 !important;
    line-height: 1.25 !important;
    margin: 0 !important;
}

.flp-details__access {
    font-size: 0.95rem;
    color: #444;
    margin: 0;
}

.flp-details__tagline {
    color: #555;
    font-size: 0.97rem;
    line-height: 1.6;
    margin: 0;
}

/* Right column */
.flp-details__features {
    flex: 0.9;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.flp-features__title {
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    color: #1b1e24 !important;
    margin: 0 !important;
}

.flp-features__list ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.flp-features__list ul li {
    position: relative;
    padding-left: 0.25rem;
    font-size: 0.92rem;
    color: #333;
    line-height: 1.55;
}

/* ----------------------------------------------------------
   3. EXPERIENCE — full-width video
   ---------------------------------------------------------- */
.flp-experience {
    background: #fff;
    padding: 2rem 0;
}

.flp-experience .ast-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
}

.flp-experience__video {
    width: 100%;
    max-width: 100%;
    border-radius: 6px;
    background: #000;
    display: block;
    aspect-ratio: 16 / 9;
}

/* ----------------------------------------------------------
   4. TESTIMONIALS
   ---------------------------------------------------------- */
.flp-testimonials {
    background: #fff;
    padding: 1rem 0;
}

.flp-testimonials .ast-container {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.flp-testimonials__videos {
    display: flex;
    gap: 2rem;
    justify-content: center;
    width: 100%;
}

.flp-testimonials__videos video,
.flp-testimonials__video {
    flex: 1;
    min-width: 0;
    max-width: 50%;
    aspect-ratio: 16 / 9;
    border-radius: 6px;
    background: #000;
    display: block;
    border: none;
}

/* ----------------------------------------------------------
   RESPONSIVE  tablet / mobile (768px)
   ---------------------------------------------------------- */
@media (max-width: 768px) {

    /* Hero */
    .flp-hero {
        padding: 2rem 0;
    }

    .flp-hero__top {
        flex-direction: column;
        gap: 1.5rem;
        margin-bottom: 1.5rem;
    }

    /* Hide product image on small screens; card takes full width */
    .flp-hero__image {
        display: none;
    }

    .flp-hero__card {
        padding: 1.25rem 1rem;
        width: 100%;
    }

    .flp-hero__title {
        font-size: 2rem !important;
    }

    /* Details */
    .flp-details {
        padding: 2rem 0;
    }

    .flp-details__inner {
        flex-direction: column;
        gap: 2rem;
    }

    .flp-details__headline {
        font-size: 1.45rem !important;
    }

    /* Testimonials */
    .flp-testimonials {
        padding: 1rem 0;
    }

    .flp-testimonials__videos {
        flex-direction: column;
        gap: 1.25rem;
    }

    .flp-testimonials__videos video,
    .flp-testimonials__video {
        max-width: 100%;
    }
}

/* ----------------------------------------------------------
   Add-to-cart button â€” overrides WooCommerce / Astra resets.
   ---------------------------------------------------------- */
.solera-add-to-cart,
.solera-add-to-cart:focus,
.solera-add-to-cart:active,
.solera-add-to-cart[disabled] {
    background-color: var(--solera-sun) !important;
    color: var(--solera-jacarta) !important;
    border: none !important;
    text-decoration: none !important;
    box-shadow: none !important;
    filter: none !important;
    transition: none !important;
    width: 100% !important;
}

/* ----------------------------------------------------------
   4. AVAILABILITY NOTICE
   ---------------------------------------------------------- */
.fleet-info-section {
    color: var(--solera-shark);
    padding: 1rem;
    font-size: 0.9rem;
    font-weight: 600;
    margin-top: 2rem;
}

/* end of fleet product-page styles */

/* ----------------------------------------------------------
   CAROUSEL  (inside .flp-hero__image)
   ---------------------------------------------------------- */

/* Wrapper: fills the flex slot set by .flp-hero__image */
.flp-carousel {
    position: relative;
    width: 100%;
    overflow: hidden;
    border-radius: 12px;
    height: 320px;
}

/* Sliding track: all slides sit in a row; only one is visible at a time */
.flp-carousel__track {
    display: flex;
    transition: transform 0.45s ease;
    width: 100%;
    height: 100%;
}

.flp-carousel__track img {
    width: 100%;
    height: 320px;
    object-fit: cover;
    flex-shrink: 0;
    cursor: pointer;
    user-select: none;
    border-radius: 12px;
}

/* Sale badge */
.flp-carousel__badge {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 3;
    background: #f0f0f0;
    color: #1b1e24;
    font-size: 0.8rem;
    font-weight: 600;
    padding: 4px 12px;
    border-radius: 999px;
    pointer-events: none;
    box-shadow: 0 1px 4px rgba(0,0,0,0.12);
}

/* Prev / Next arrows */
.flp-carousel__arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    background: rgba(2, 6, 23, 0.45);
    color: #fff;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.25);
    cursor: pointer;
    font-size: 22px;
    display: grid;
    place-items: center;
    z-index: 2;
    line-height: 1;
}

.flp-carousel__arrow--left  { left:  8px; }
.flp-carousel__arrow--right { right: 8px; }

/* ----------------------------------------------------------
   LIGHTBOX  (fixed overlay, covers full viewport)
   ---------------------------------------------------------- */
.flp-lightbox {
    position: fixed;
    inset: 0;
    background: rgba(2, 6, 23, 0.72);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 9999;
}
.flp-lightbox[aria-hidden="false"] { display: flex; }

.flp-lb-stage {
    position: relative;
    width: min(92vw, 1200px);
    height: min(90vh, 800px);
    background: #0b1220;
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid #1f2937;
}

/* Toolbar: zoom + close buttons */
.flp-lb-toolbar {
    position: absolute;
    top: 10px;
    right: 10px;
    display: flex;
    gap: 8px;
    z-index: 2;
}

.flp-lb-btn {
    appearance: none;
    border: 1px solid #334155;
    background: rgba(15, 23, 42, 0.6);
    color: #e5e7eb;
    padding: 8px 10px;
    border-radius: 10px;
    cursor: pointer;
    font-size: 13px;
}

/* Prev / Next nav arrows */
.flp-lb-nav {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    pointer-events: none;
    z-index: 2;
}

.flp-lb-arrow {
    pointer-events: all;
    width: 48px;
    height: 48px;
    margin: 0 10px;
    border-radius: 999px;
    border: 1px solid #334155;
    background: rgba(15, 23, 42, 0.55);
    color: #e5e7eb;
    cursor: pointer;
    font-size: 18px;
}

/* Canvas: panning/zooming area */
.flp-lb-canvas {
    position: absolute;
    inset: 0;
    overflow: hidden;
    cursor: grab;
}
.flp-lb-canvas.is-dragging { cursor: grabbing; }

/* The big image: positioned from center, transformed by JS */
.flp-lb-img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(1);
    transform-origin: 50% 50%;
    will-change: transform;
    user-select: none;
    -webkit-user-drag: none;
    max-width: none;
}

/* Caption bar at the bottom */
.flp-lb-caption {
    position: absolute;
    left: 0; right: 0; bottom: 0;
    padding: 10px 14px;
    color: #cbd5e1;
    font-size: 13px;
    background: linear-gradient(180deg, rgba(2,6,23,0) 0%, rgba(2,6,23,0.55) 50%, rgba(2,6,23,0.75) 100%);
    z-index: 1;
    pointer-events: none;
}

/* ----------------------------------------------------------
   RESPONSIVE — carousel on small screens
   ---------------------------------------------------------- */
@media (max-width: 768px) {
    .flp-carousel,
    .flp-carousel__track img {
        height: 240px;
    }
}
