/* =========================================================
   SkyReach Aviation – custom styles (paired with static Tailwind utilities)
   Palette: Primary #0B4FA2 | Secondary #FE5A02 | Accent #126A19
   ========================================================= */
:root {
    --primary: #0B4FA2;
    --primary-dark: #073672;
    --secondary: #FE5A02;
    --secondary-dark: #D94A00;
    --accent: #126A19;
    --ink: #0f172a;
}

* {
    -webkit-tap-highlight-color: transparent;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 90px;
    max-width: 100%;
    overflow-x: clip;
}

body {
    font-family: 'Inter', sans-serif;
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
}

main,
section,
#navbar,
footer {
    min-width: 0;
    max-width: 100%;
}

::selection {
    background: var(--secondary);
    color: #fff;
}

::-webkit-scrollbar {
    width: 9px;
}

::-webkit-scrollbar-track {
    background: #eef2f7;
}

::-webkit-scrollbar-thumb {
    background: var(--primary);
    border-radius: 8px;
}

/* ---------- Scroll progress ---------- */
.scroll-progress {
    position: fixed;
    top: 0;
    left: 0;
    height: 3px;
    width: 0;
    z-index: 100;
    background: linear-gradient(90deg, var(--secondary), var(--primary));
}

/* ---------- Header ---------- */
#navbar {
    --nav-fg: #fff;
    transition: color .45s ease;
}

.nav-main {
    background: transparent;
    transform: translateY(36px);
    transition: transform .45s cubic-bezier(.22, 1, .36, 1), background .3s, box-shadow .3s;
}

#navbar.scrolled .nav-main {
    transform: translateY(0);
}

@media (max-width: 767px) {
    .nav-main {
        transform: none;
    }
}

#navbar.scrolled {
    --nav-fg: var(--ink);
}

#navbar.scrolled .nav-main {
    background: rgba(255, 255, 255, .96);
    backdrop-filter: blur(10px);
    box-shadow: 0 8px 30px rgba(2, 20, 50, .12);
}

.logo-text,
.menu-btn {
    color: var(--nav-fg);
    transition: color .3s;
}

.navbar-logo {
    display: block;
    width: 150px;
    height: 72px;
    object-fit: contain;
}

.nav-link {
    color: var(--nav-fg);
    font-weight: 500;
    font-size: 15px;
    position: relative;
    padding: .4rem 0;
    transition: color .3s;
}

.nav-link::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: -2px;
    height: 2px;
    width: 0;
    background: var(--secondary);
    transition: width .3s;
}

.nav-link:hover::after,
.nav-link.active::after {
    width: 100%;
}

.nav-link.active,
.nav-link:hover {
    color: var(--secondary);
}

@media (min-width: 1024px) {
    #navbar:not(.scrolled) .nav-main > .max-w-7xl > ul {
        padding: .65rem 1.35rem;
        border: 1px solid rgba(255, 255, 255, .24);
        border-radius: 999px;
        background: rgba(9, 43, 78, .36);
        box-shadow: 0 8px 24px rgba(3, 24, 47, .12);
        backdrop-filter: blur(12px);
    }
}

.nav-cta {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    overflow: hidden;
    padding: .7rem 1rem;
    border: 1px solid rgba(255, 255, 255, .35);
    border-radius: 999px;
    background: linear-gradient(120deg, var(--secondary), #ff7b2e);
    color: #fff;
    font-size: .82rem;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
    box-shadow: 0 6px 18px rgba(254, 90, 2, .28);
    animation: nav-cta-pulse 2.6s ease-in-out infinite;
    transition: transform .2s, box-shadow .2s;
}

.nav-cta::after {
    content: '';
    position: absolute;
    inset: -30% auto -30% -45%;
    z-index: 0;
    width: 35%;
    background: rgba(255, 255, 255, .28);
    transform: skewX(-22deg);
    animation: nav-cta-shine 3.2s ease-in-out infinite;
    pointer-events: none;
}

.nav-cta span,
.nav-cta i {
    position: relative;
    z-index: 1;
}

.nav-cta i {
    font-size: .75rem;
    transition: transform .2s;
}

.nav-cta:hover,
.nav-cta:focus-visible {
    transform: translateY(-2px);
    box-shadow: 0 9px 24px rgba(254, 90, 2, .42);
}

.nav-cta:hover i,
.nav-cta:focus-visible i {
    transform: translate(2px, -2px);
}

@keyframes nav-cta-pulse {
    0%, 100% { box-shadow: 0 6px 18px rgba(254, 90, 2, .28); }
    50% { box-shadow: 0 8px 23px rgba(254, 90, 2, .48); }
}

@keyframes nav-cta-shine {
    0%, 15% { left: -45%; }
    55%, 100% { left: 125%; }
}

.service-nav-dropdown {
    position: absolute;
    top: 100%;
    left: 50%;
    z-index: 60;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .25rem;
    width: min(760px, calc(100vw - 2rem));
    padding: .75rem;
    border: 1px solid #e8eef6;
    border-radius: .9rem;
    background: #fff;
    box-shadow: 0 16px 40px rgba(2, 20, 50, .18);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translate(-50%, .5rem);
    transition: opacity .2s, transform .2s, visibility .2s;
}

.services-nav-item {
    position: relative;
}

.services-nav-item:hover .service-nav-dropdown,
.services-nav-item:focus-within .service-nav-dropdown {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translate(-50%, 0);
}

.service-nav-dropdown a {
    padding: .65rem .75rem;
    border-radius: .5rem;
    color: var(--ink);
    font-size: .8rem;
    line-height: 1.35;
    transition: color .2s, background .2s;
}

.service-nav-dropdown a:hover,
.service-nav-dropdown a:focus-visible {
    color: var(--primary);
    background: #f4f8fe;
    outline: none;
}

.menu-overlay {
    position: fixed;
    inset: 0;
    z-index: 51;
    padding: 0;
    border: 0;
    background: rgba(5, 17, 32, .58);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    cursor: pointer;
    transition: opacity .3s ease, visibility 0s linear .3s;
}

.mobile-menu {
    position: fixed;
    inset: 0 0 auto auto;
    z-index: 52;
    display: flex;
    flex-direction: column;
    width: min(390px, calc(100vw - 14px));
    height: 100vh;
    height: 100dvh;
    padding: 0;
    overflow: hidden;
    border-radius: 28px 0 0 28px;
    background: #fff;
    box-shadow: -18px 0 55px rgba(2, 20, 50, .2);
    transform: translateX(105%);
    visibility: hidden;
    transition: transform .38s cubic-bezier(.22, 1, .36, 1), visibility 0s linear .38s;
}

.mobile-menu.open {
    transform: translateX(0);
    visibility: visible;
    transition: transform .38s cubic-bezier(.22, 1, .36, 1), visibility 0s;
}

.menu-overlay.open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition: opacity .3s ease, visibility 0s;
}

.mobile-menu-header {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    min-height: 92px;
    padding: max(.75rem, env(safe-area-inset-top)) 1.1rem .75rem;
    background: #f6f8fb;
}

.mobile-menu-brand {
    display: grid;
    width: min(220px, calc(100% - 3.25rem));
    height: 68px;
    place-items: center;
    border-radius: 15px;
    background: #f6f8fb;
}

.mobile-menu-brand img {
    display: block;
    width: 100%;
    height: 100%;
    padding: .35rem .75rem;
    object-fit: contain;
}

.menu-close-btn {
    display: grid;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    place-items: center;
    border: 1px solid #e5eaf0;
    border-radius: 50%;
    background: #fff;
    color: #334155;
    font-size: 1.25rem;
    cursor: pointer;
    transition: color .2s, border-color .2s, background .2s, transform .2s;
}

.menu-close-btn:hover,
.menu-close-btn:focus-visible {
    transform: rotate(90deg);
    border-color: #dce8f7;
    background: #f4f8fe;
    color: var(--primary);
}

.mobile-menu-content {
    flex: 1 1 auto;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior-y: contain;
    padding: .75rem 1.1rem max(1rem, env(safe-area-inset-bottom));
    scrollbar-width: thin;
    scrollbar-color: #cbd5e1 transparent;
}

.mobile-menu-nav {
    flex: 0 0 auto;
    width: 100%;
    padding: .15rem 0;
}

.mobile-menu-kicker {
    display: flex;
    align-items: center;
    gap: .55rem;
    margin: 0 0 .55rem;
    padding: .35rem .75rem;
    color: #64748b;
    font-size: .66rem;
    font-weight: 750;
    letter-spacing: .13em;
}

.mobile-menu-kicker span {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--secondary);
    box-shadow: 0 0 0 4px rgba(254, 90, 2, .12);
}

.mobile-menu-nav > a {
    display: flex;
    align-items: center;
    min-height: 56px;
    padding: .85rem .75rem;
    border-radius: 12px;
    color: #334155;
    font-size: .98rem;
    font-weight: 650;
    letter-spacing: .015em;
    text-decoration: none;
    transition: color .2s, background .2s, transform .2s;
}

.mobile-menu-nav > a:hover,
.mobile-menu-nav > a:focus-visible {
    transform: translateX(3px);
    background: #f4f8fe;
    color: var(--primary);
    outline: none;
}

.mobile-services {
    margin: .2rem 0 .35rem;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    background: #fff;
    overflow: hidden;
}

.mobile-services summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 52px;
    padding: .85rem .75rem;
    color: #334155;
    font-size: .98rem;
    font-weight: 650;
    cursor: pointer;
    list-style: none;
    transition: color .2s, background .2s;
}

.mobile-services summary::-webkit-details-marker {
    display: none;
}

.mobile-services summary i {
    color: var(--primary);
    font-size: .8rem;
    transition: transform .25s;
}

.mobile-services[open] summary i {
    transform: rotate(180deg);
}

.mobile-services summary:hover,
.mobile-services summary:focus-visible {
    background: #f8fafc;
    color: var(--primary);
    outline: none;
}

.mobile-services-links {
    padding: .3rem .45rem .6rem;
    border-top: 1px solid #eef2f7;
    background: #f8fafc;
}

.mobile-menu .mobile-services-links a {
    display: block;
    padding: .65rem .6rem;
    border-radius: 8px;
    color: #475569;
    font-size: .88rem;
    line-height: 1.35;
    text-decoration: none;
    transition: color .2s, background .2s;
}

.mobile-menu .mobile-services-links a + a {
    border-top: 1px solid #e8edf4;
}

.mobile-menu .mobile-services-links a:hover,
.mobile-menu .mobile-services-links a:focus-visible {
    background: #eaf2fc;
    color: var(--primary);
    outline: none;
}

.mobile-menu-cta {
    flex: 0 0 auto;
    width: 100%;
    min-height: 54px;
    margin: .75rem 0 .15rem;
    padding: .85rem 1rem;
    font-size: .95rem;
}

body.menu-open {
    overflow: hidden;
}

@media (min-width: 1024px) {
    .mobile-menu {
        display: none;
    }

    .menu-overlay {
        display: none;
    }
}

@media (max-width: 380px) {
    .mobile-menu {
        padding-right: .85rem;
        padding-left: .85rem;
    }
}

@media (max-width: 640px) {
    .navbar-logo {
        width: 128px;
        height: 62px;
    }
}

@media (max-width: 767px) {
    #navbar .nav-main .nav-cta {
        display: none;
    }
}

@media (max-width: 360px) {
    .nav-main > .max-w-7xl {
        padding-inline: .5rem;
    }

    .navbar-logo {
        width: 88px;
        height: 54px;
    }

    .nav-actions {
        gap: .4rem;
    }

    .menu-btn {
        width: 2.5rem;
        height: 2.5rem;
    }
}

/* ---------- Buttons ---------- */
.btn {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    padding: .9rem 1.6rem;
    border-radius: .6rem;
    font-weight: 600;
    cursor: pointer;
    border: 2px solid transparent;
    transition: all .3s ease;
    white-space: nowrap;
}

.btn i.fa-arrow-right {
    transition: transform .3s;
}

.btn:hover i.fa-arrow-right {
    transform: translateX(5px);
}

.btn-secondary {
    background: var(--secondary);
    color: #fff;
    box-shadow: 0 12px 26px -10px rgba(254, 90, 2, .8);
}

.btn-secondary:hover {
    background: var(--secondary-dark);
    transform: translateY(-2px);
}

.btn-primary {
    background: var(--primary);
    color: #fff;
    box-shadow: 0 12px 26px -10px rgba(11, 79, 162, .8);
}

.btn-primary:hover {
    background: var(--primary-dark);
    transform: translateY(-2px);
}

.btn-outline {
    border-color: rgba(255, 255, 255, .55);
    color: #fff;
    background: transparent;
}

.btn-outline:hover {
    background: #fff;
    color: var(--primary);
}

/* ---------- Section helpers ---------- */
.section-tag {
    display: inline-block;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--primary);
    background: #E8F0FB;
    padding: .45rem 1rem;
    border-radius: 999px;
}

.section-title {
    font-family: 'Playfair Display', serif;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.15;
    margin-top: 1rem;
    font-size: clamp(2rem, 4.2vw, 3.2rem);
}

.text-gradient {
    background: linear-gradient(90deg, var(--primary), var(--secondary));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.blob {
    position: absolute;
    border-radius: 50%;
    filter: blur(80px);
    opacity: .25;
    pointer-events: none;
}

.blob-blue {
    width: 380px;
    height: 380px;
    background: var(--primary);
    left: -120px;
    top: 80px;
}

.dots-pattern {
    position: absolute;
    inset: 0;
    opacity: .12;
    background-image: radial-gradient(#fff 1.2px, transparent 1.2px);
    background-size: 26px 26px;
}

/* ---------- Hero ---------- */
.hero-overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(4, 14, 34, .95) 0%, rgba(4, 14, 34, .75) 45%, rgba(4, 14, 34, .25) 100%),
        linear-gradient(0deg, rgba(4, 14, 34, .85) 0%, transparent 45%);
}

#home {
    height: 100vh;
}

.hero-video {
    pointer-events: none;
}

.float-anim {
    animation: floaty 5s ease-in-out infinite;
}

@keyframes floaty {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-16px);
    }
}

#heroTilt {
    transition: transform .15s ease-out;
    will-change: transform;
    box-shadow: none;
}

#heroImg {
    transition: opacity .35s;
    border-radius: 0;
    box-shadow: none;
}

/* ---------- Booking card ---------- */
.tab-btn {
    flex: 1 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    padding: 1.05rem 1.5rem;
    font-weight: 600;
    color: #64748b;
    white-space: nowrap;
    position: relative;
    transition: color .3s, background .3s;
}

.tab-btn::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 3px;
    background: var(--secondary);
    transform: scaleX(0);
    transition: transform .3s;
}

.tab-btn:hover {
    color: var(--primary);
}

.tab-btn.active {
    color: var(--primary);
    background: #f4f8fe;
}

.tab-btn.active::after {
    transform: scaleX(1);
}

.field label {
    display: block;
    font-size: .75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #64748b;
    margin-bottom: .4rem;
}

.field-box {
    display: flex;
    align-items: center;
    gap: .7rem;
    border: 1.5px solid #dbe3ee;
    border-radius: .7rem;
    padding: .8rem 1rem;
    background: #fff;
    transition: border-color .25s, box-shadow .25s;
}

.field-box:focus-within {
    border-color: var(--primary);
    box-shadow: 0 0 0 4px rgba(11, 79, 162, .12);
}

.field-box i {
    color: var(--secondary);
}

.field-box input,
.field-box select {
    width: 100%;
    min-width: 0;
    outline: none;
    background: transparent;
    font-size: .95rem;
    color: var(--ink);
}

.field-box.invalid,
.field-box.invalid:focus-within {
    border-color: #dc2626;
    box-shadow: 0 0 0 4px rgba(220, 38, 38, .1);
}

.field-box.light {
    background: #f8fafc;
}

.textarea {
    width: 100%;
    border: 1.5px solid #dbe3ee;
    border-radius: .7rem;
    padding: .85rem 1rem;
    background: #f8fafc;
    outline: none;
    resize: vertical;
    transition: border-color .25s, box-shadow .25s;
    font-size: .95rem;
}

.textarea:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 4px rgba(11, 79, 162, .12);
}

.err {
    display: block;
    color: #dc2626;
    font-size: .75rem;
    margin-top: .3rem;
    min-height: 0;
}

/* ---------- Services ---------- */
.filter-btn {
    padding: .65rem 1.4rem;
    border-radius: 999px;
    font-weight: 600;
    font-size: .92rem;
    color: #475569;
    background: #f1f5f9;
    transition: all .3s;
}

.filter-btn:hover {
    background: #E8F0FB;
    color: var(--primary);
}

.filter-btn.active {
    background: var(--primary);
    color: #fff;
    box-shadow: 0 10px 22px -8px rgba(11, 79, 162, .7);
}

/* Service cards */
.service-card {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-height: var(--svc-h, 320px);
    padding: 1.4rem 1.5rem 1.5rem;
    background: #fff;
    border: 1px solid rgba(254, 90, 2, .55);
    border-radius: 1rem;
    box-shadow: 0 8px 24px rgba(15, 23, 42, .07);
    transition: transform .35s, opacity .35s, border-color .35s, box-shadow .35s;
}

.service-card:hover {
    border-color: var(--secondary);
    box-shadow: 0 14px 32px rgba(15, 23, 42, .11), 0 3px 12px rgba(254, 90, 2, .12);
}

.service-card::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -2;
    background:
        linear-gradient(180deg,
            rgba(255, 255, 255, .04) 0%,
            rgba(255, 255, 255, .12) 35%,
            rgba(255, 255, 255, .82) 70%,
            rgba(255, 255, 255, .96) 100%),
        var(--bg, none) center / cover no-repeat;
}

.service-icon {
    width: 3rem;
    height: 3rem;
    border: 1px solid rgba(11, 79, 162, .14);
    border-radius: .75rem;
    display: grid;
    place-items: center;
    font-size: 1.2rem;
    color: var(--primary);
    background: rgba(255, 255, 255, .92);
    margin-bottom: auto;
    transition: none;
}

.service-card:hover .service-icon {
    transition: transform .6s ease;
    transform: rotate(360deg);
}

.service-bar {
    display: block;
    width: 2rem;
    height: 3px;
    border-radius: 4px;
    margin: 1rem 0 .7rem;
    background: var(--secondary);
}

.service-card .heading-copy {
    font-weight: 700;
    font-size: 1.1rem;
    line-height: 1.25;
    color: #0a1f44;
}

.service-card p:not(.heading-copy) {
    color: #334155;
    font-size: .92rem;
    line-height: 1.6;
    margin-top: .4rem;
}

.service-link {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    margin-top: .9rem;
    font-weight: 700;
    font-size: .95rem;
    color: var(--primary);
}

@media (max-width: 640px) {
    .service-card {
        min-height: var(--svc-h-m, 300px);
    }
}

/* filter animation */
.service-card.hiding {
    opacity: 0;
    transform: scale(.94);
}

.service-card.gone {
    display: none;
}

/* ---------- Empty legs ---------- */
.countdown {
    display: flex;
    gap: .5rem;
    margin-top: 1rem;
}

.countdown div {
    flex: 1;
    text-align: center;
    background: #E8F0FB;
    border-radius: .6rem;
    padding: .45rem 0;
}

.countdown b {
    display: block;
    font-size: 1.15rem;
    color: var(--primary-dark);
    font-variant-numeric: tabular-nums;
}

.countdown small {
    font-size: .65rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: #64748b;
}

/* ---------- Char Dham ---------- */
.parallax-bg {
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
}

@media (max-width: 1024px) {
    .parallax-bg {
        background-attachment: scroll;
    }
}

/* ---------- Air ambulance ---------- */
/* ---------- Cargo / group cards ---------- */
.big-card {
    position: relative;
    border-radius: 1.6rem;
    overflow: hidden;
    background-size: cover;
    background-position: center;
    transition: transform .9s, box-shadow .5s;
}

.big-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 35px 60px -25px rgba(7, 54, 114, .6);
}

.big-card-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(0deg, rgba(5, 20, 50, .95) 10%, rgba(7, 54, 114, .55) 60%, rgba(7, 54, 114, .25));
    transition: opacity .4s;
}

.big-card-overlay-green {
    background: linear-gradient(0deg, rgba(4, 36, 8, .95) 10%, rgba(18, 106, 25, .55) 60%, rgba(18, 106, 25, .2));
}

.chip {
    padding: .35rem .9rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, .15);
    border: 1px solid rgba(255, 255, 255, .3);
    backdrop-filter: blur(6px);
}

/* ---------- Testimonials ---------- */

.slider-arrow {
    width: 3.2rem;
    height: 3.2rem;
    border-radius: 50%;
    border: 1.5px solid #cbd5e1;
    color: var(--primary);
    display: grid;
    place-items: center;
    transition: all .3s;
}

.slider-arrow:hover {
    background: var(--secondary);
    border-color: var(--secondary);
    color: #fff;
}

.t-dot {
    width: 10px;
    height: 10px;
    border-radius: 10px;
    background: #cbd5e1;
    transition: all .3s;
}

.t-dot.active {
    width: 32px;
    background: var(--secondary);
}

/* ---------- FAQ ---------- */
.faq-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2.5rem;
    align-items: stretch;
}

.faq-visual {
    display: grid;
    min-height: 300px;
    place-items: center;
}

.faq-illustration {
    display: block;
    width: 100%;
    height: auto;
    max-height: 520px;
    object-fit: contain;
}

.faq-heading {
    text-align: center;
}

.faq-heading > p {
    margin-top: .8rem;
    color: #64748b;
    line-height: 1.7;
}

.faq-list {
    display: grid;
    gap: .85rem;
    margin-top: 2rem;
}

.faq-item {
    background: #fff;
    border: 1px solid #e3eaf3;
    border-radius: .9rem;
    overflow: hidden;
    box-shadow: 0 4px 14px rgba(7, 54, 114, .035);
    transition: box-shadow .25s, border-color .25s, transform .25s;
}

.faq-item.open {
    border-color: rgba(11, 79, 162, .35);
    box-shadow: 0 12px 28px -18px rgba(11, 79, 162, .42);
}

.faq-q {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    text-align: left;
    padding: 1.2rem 1.35rem;
    font-weight: 600;
    color: var(--ink);
    font-size: 1.02rem;
}

.faq-q i {
    width: 2.15rem;
    height: 2.15rem;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #E8F0FB;
    color: var(--primary);
    font-size: .8rem;
    transition: transform .3s, background .3s, color .3s;
}

.faq-item.open .faq-q i {
    transform: rotate(180deg);
    background: var(--primary);
    color: #fff;
}

.faq-a {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows .4s ease;
}

.faq-a>div {
    overflow: hidden;
    min-height: 0;
}

.faq-a p {
    padding: 0 1.35rem 1.3rem;
    color: #64748b;
    line-height: 1.75;
}

.faq-item.open .faq-a {
    grid-template-rows: 1fr;
}

@media (min-width: 900px) {
    .faq-layout {
        grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
        gap: clamp(2.5rem, 5vw, 5rem);
    }

    .faq-visual {
        min-height: 100%;
    }

    .faq-heading {
        text-align: left;
    }
}

@media (prefers-reduced-motion: reduce) {
    .faq-item,
    .faq-q i {
        transition: none;
    }
}

/* ---------- Contact ---------- */
.contact-row {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.contact-row>span {
    width: 3.1rem;
    height: 3.1rem;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: var(--secondary);
    color: #fff;
    flex-shrink: 0;
}

.contact-row small {
    display: block;
    font-size: .75rem;
    opacity: .75;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.contact-row a,
.contact-row p {
    font-weight: 600;
    font-size: 1.1rem;
}

.contact-row a:hover {
    color: var(--secondary);
}

.contact-card {
    background: #fff;
    border-radius: 1.5rem;
    padding: 2rem;
    box-shadow: 0 35px 70px -25px rgba(0, 0, 0, .55);
}

@media (min-width: 640px) {
    .contact-card {
        padding: 2.6rem;
    }
}

/* ---------- Footer ---------- */
.footer-logo {
    display: block;
    width: 150px;
    height: 72px;
    padding: .25rem;
    border-radius: .5rem;
    background: #fff;
    object-fit: contain;
}

.footer-nav-content,
.footer-services-scroll {
    height: 18rem;
}

.footer-services-scroll {
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-right: .65rem;
    scrollbar-width: thin;
    scrollbar-color: #64748b #1e293b;
}

.footer-services-scroll::-webkit-scrollbar {
    width: 6px;
}

.footer-services-scroll::-webkit-scrollbar-track {
    border-radius: 999px;
    background: #1e293b;
}

.footer-services-scroll::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: #64748b;
}

.footer-h {
    color: #fff;
    font-weight: 700;
    font-size: 1.05rem;
    margin-bottom: 1.2rem;
    position: relative;
    padding-bottom: .7rem;
}

.footer-h::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 36px;
    height: 3px;
    background: var(--secondary);
    border-radius: 3px;
}

.footer-a {
    transition: color .25s, padding .25s;
}

.footer-a:hover {
    color: var(--secondary);
    padding-left: .3rem;
}

.soc {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: #1e293b;
    color: #fff;
    transition: all .3s;
}

.soc:hover {
    background: var(--secondary);
    transform: translateY(-4px);
}

/* ---------- Floating buttons / toast ---------- */
.fab {
    width: 3.3rem;
    height: 3.3rem;
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: #fff;
    font-size: 1.35rem;
    box-shadow: 0 14px 28px -8px rgba(0, 0, 0, .45);
    transition: transform .3s;
}

.fab:hover {
    transform: scale(1.12) rotate(-6deg);
}

.to-top {
    width: 2.8rem;
    height: 2.8rem;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: var(--secondary);
    color: #fff;
    opacity: 0;
    visibility: hidden;
    transform: translateY(14px);
    transition: all .35s;
    box-shadow: 0 12px 24px -8px rgba(254, 90, 2, .7);
}

.to-top.show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.toast {
    position: fixed;
    left: 50%;
    bottom: 1.5rem;
    transform: translate(-50%, 140%);
    z-index: 120;
    max-width: calc(100% - 2rem);
    padding: .9rem 1.4rem;
    border-radius: .8rem;
    color: #fff;
    font-weight: 600;
    font-size: .95rem;
    background: var(--accent);
    box-shadow: 0 20px 40px -10px rgba(0, 0, 0, .5);
    transition: transform .45s cubic-bezier(.2, .8, .2, 1);
}

.toast.error {
    background: #dc2626;
}

.toast.show {
    transform: translate(-50%, 0);
}

/* ---------- Scroll reveal ---------- */
.reveal {
    opacity: 0;
    transform: translateY(36px);
    transition: opacity .8s ease, transform .8s cubic-bezier(.2, .8, .2, 1);
    transition-delay: var(--d, 0ms);
}

.reveal[data-reveal="left"] {
    transform: translateX(-50px);
}

.reveal[data-reveal="right"] {
    transform: translateX(50px);
}

.reveal.show {
    opacity: 1;
    transform: none;
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {

    *,
    *::before,
    *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }

    .reveal {
        opacity: 1;
        transform: none;
    }
}


/* ---------- Entrance: cards 1-2 from left, cards 3-4 from right ---------- */
/* Hidden state applies only after JS adds .hiw-ready, so content never stays invisible if JS fails */
#how.hiw-ready .hiw-left {
    opacity: 0;
    transform: translateX(-90px);
}

#how.hiw-ready .hiw-right {
    opacity: 0;
    transform: translateX(90px);
}

#how.hiw-ready .hiw-left,
#how.hiw-ready .hiw-right {
    transition: opacity .8s ease, transform .9s cubic-bezier(.22, 1, .36, 1);
    transition-delay: var(--d, 0ms);
}

#how.hiw-ready.is-in .hiw-left,
#how.hiw-ready.is-in .hiw-right {
    opacity: 1;
    transform: none;
}

/* ---------- Connector line between cards (large screens only) ---------- */
/* ::after  = dim track (always visible)
       ::before = bright orange light that fills the track left -> right */
@media (min-width: 1024px) {

    #how .hiw-step:not(:last-child)::after,
    #how .hiw-step:not(:last-child)::before {
        content: "";
        position: absolute;
        top: 80px;
        /* middle of the h-40 image area */
        right: -2rem;
        /* grid gap-8 */
        width: 2rem;
        height: 6px;
        border-radius: 9999px;
    }

    #how .hiw-step:not(:last-child)::after {
        background: rgba(255, 255, 255, .18);
    }

    #how .hiw-step:not(:last-child)::before {
        z-index: 1;
        background: linear-gradient(90deg, #ff671f, #ffb27d);
        box-shadow: 0 0 14px 3px rgba(255, 103, 31, .75);
        transform: scaleX(0);
        transform-origin: left center;
    }

    #how.is-in .hiw-step:not(:last-child)::before {
        animation: hiw-fill .5s ease-out var(--bar-d, 0s) forwards;
    }
}

@keyframes hiw-fill {
    0% {
        transform: scaleX(0);
        box-shadow: 0 0 18px 6px rgba(255, 178, 125, .95);
    }

    100% {
        transform: scaleX(1);
        box-shadow: 0 0 10px 2px rgba(255, 103, 31, .55);
    }
}

/* ---------- Number badge flashes orange when the light reaches it ---------- */
#how.is-in .hiw-badge {
    animation: hiw-badge .7s ease var(--b-d, 0s) 1;
}

@keyframes hiw-badge {
    0% {
        transform: translateX(-50%) scale(1);
    }

    40% {
        transform: translateX(-50%) scale(1);
        background-color: #ff671f;
        box-shadow: 0 0 0 6px rgba(255, 103, 31, .35), 0 0 22px 6px rgba(255, 103, 31, .8);
    }

    100% {
        transform: translateX(-50%) scale(1);
    }
}

@media (prefers-reduced-motion: reduce) {

    #how.hiw-ready .hiw-left,
    #how.hiw-ready .hiw-right {
        opacity: 1;
        transform: none;
        transition: none;
    }

    #how .hiw-step:not(:last-child)::before {
        transform: scaleX(1);
        animation: none !important;
    }

    #how .hiw-badge {
        animation: none !important;
    }
}

/* ============ WHY CHOOSE US (add at the end of style.css) ============ */

.wcu-glow {
    position: absolute;
    right: -120px;
    top: -120px;
    width: 420px;
    height: 420px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(254, 90, 2, .28), transparent 65%);
    pointer-events: none;
}

/* Card: glass panel, small radius, orange line grows on hover */
.wcu-card {
    position: relative;
    display: flex;
    flex-direction: column;
    padding: 12px;
    border-radius: 10px;
    background: linear-gradient(160deg, rgba(255, 255, 255, .14), rgba(255, 255, 255, .05));
    border: 1px solid rgba(255, 255, 255, .18);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    box-shadow: 0 18px 40px -18px rgba(0, 0, 0, .55);
    overflow: hidden;
    transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}

.wcu-card::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    height: 3px;
    width: 38%;
    background: linear-gradient(90deg, #FE5A02, #ffa05c);
    transition: width .45s ease;
    z-index: 3;
}

.wcu-card:hover {
    transform: translateY(-8px);
    border-color: rgba(254, 90, 2, .65);
    box-shadow: 0 28px 55px -16px rgba(0, 0, 0, .7), 0 0 0 1px rgba(254, 90, 2, .25);
}

.wcu-card:hover::before {
    width: 100%;
}

/* Image: only a slight radius */
.wcu-img {
    position: relative;
    height: 11rem;
    border-radius: 6px;
    overflow: hidden;
}

.wcu-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s ease;
}

.wcu-img::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(7, 54, 114, .75), transparent 60%);
}

.wcu-card:hover .wcu-img img {
    transform: scale(1.08);
}

.wcu-body {
    padding: 18px 8px 8px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.wcu-body .heading-copy {
    color: #fff;
    font-size: 1.2rem;
    font-weight: 700;
}

.wcu-body p:not(.heading-copy) {
    color: #cbd5e1;
    font-size: .92rem;
    line-height: 1.65;
    margin-top: 8px;
    flex: 1;
}

.wcu-tag {
    align-self: flex-start;
    margin-top: 16px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px;
    border-radius: 6px;
    background: rgba(254, 90, 2, .16);
    border: 1px solid rgba(254, 90, 2, .45);
    color: #ffd2b5;
    font-size: .8rem;
    font-weight: 600;
}

.wcu-tag i {
    color: #FE5A02;
}

.wcu-cta {
    justify-content: center;
}

@media (prefers-reduced-motion: reduce) {

    .wcu-card,
    .wcu-card::before,
    .wcu-img img {
        transition: none;
    }

    .wcu-card:hover {
        transform: none;
    }
}

/* ---------- Homepage section backgrounds ---------- */
#booking,
#services {
    background-color: #f8fbff;
    background-image:
        radial-gradient(ellipse at 12% 8%, rgba(11, 79, 162, .10), transparent 30rem),
        radial-gradient(ellipse at 92% 76%, rgba(254, 90, 2, .07), transparent 25rem),
        linear-gradient(135deg, rgba(11, 79, 162, .025) 25%, transparent 25%, transparent 50%, rgba(11, 79, 162, .025) 50%, rgba(11, 79, 162, .025) 75%, transparent 75%);
    background-size: auto, auto, 44px 44px;
}

#services .blob-blue {
    opacity: .1;
}

#how {
    background-color: var(--primary-dark);
    background-image:
        radial-gradient(ellipse at 15% 10%, rgba(72, 150, 238, .55), transparent 38rem),
        linear-gradient(120deg, #073672 0%, #0b4fa2 52%, #062b59 100%);
}

#cargo-group {
    background-color: #f2f6fb;
    background-image:
        radial-gradient(ellipse at 50% 0%, rgba(11, 79, 162, .10), transparent 34rem),
        linear-gradient(180deg, #f5f8fc 0%, #edf3fa 100%);
}

#testimonials {
    background-color: #fff;
    background-image:
        radial-gradient(ellipse at 0% 50%, rgba(254, 90, 2, .055), transparent 28rem),
        radial-gradient(ellipse at 100% 0%, rgba(11, 79, 162, .07), transparent 32rem);
}

#faq {
    background-color: #f4f8fd;
    background-image:
        radial-gradient(ellipse at 90% 5%, rgba(11, 79, 162, .09), transparent 30rem),
        linear-gradient(180deg, #f7faff 0%, #edf4fb 100%);
}

#why-choose-us {
    background-position: center 42%;
}

.wcu-heading .section-title {
    max-width: 20ch;
    margin: .75rem auto 0;
    font-size: clamp(2rem, 3.5vw, 3rem);
    line-height: 1.08;
}

.wcu-heading p {
    max-width: 54rem;
    margin: 1rem auto 0;
}

#contact {
    background-color: #062b59;
    background-image: linear-gradient(125deg, #061d3d, #0b4fa2);
}

#contact > .absolute:first-child {
    background-size: auto 88%;
    background-position: right 5% center;
    background-repeat: no-repeat;
}

#how::after,
#why-choose-us::after,
#contact::after {
    position: absolute;
    z-index: 0;
    color: rgba(255, 255, 255, .12);
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    line-height: 1;
    content: "\f072";
    pointer-events: none;
}

/* #how::after {
    top: 8%;
    right: 6%;
    font-size: clamp(12rem, 28vw, 27rem);
    transform: rotate(-18deg);
} */

#why-choose-us::after {
    top: 10%;
    right: 7%;
    font-size: clamp(10rem, 22vw, 21rem);
    transform: rotate(-18deg);
}

#contact::after {
    top: 8%;
    right: 35%;
    font-size: clamp(9rem, 20vw, 19rem);
    opacity: .65;
    transform: rotate(-18deg);
}

#how > .max-w-7xl,
#why-choose-us > .max-w-7xl,
#contact > .max-w-7xl {
    position: relative;
    z-index: 1;
}

@media (max-width: 640px) {
    #how::after,
    #why-choose-us::after,
    #contact::after {
        font-size: 11rem;
        opacity: .45;
    }

    #contact > .absolute:first-child {
        background-size: auto 65%;
        background-position: right bottom;
    }
}


/* =========================================================
   TESTIMONIALS  (plain CSS - works with your static tailwind.css)
   Paste at the END of style.css. Delete the old ".tm-stage / .tm-card /
   .tm-left ... @keyframes tmIn" block that is currently there.
   ========================================================= */
 
.tm-head {
    max-width: 640px;
    margin: 0 auto;
    text-align: center;
}
 
.tm-sub {
    max-width: 30rem;
    margin: 14px auto 0;
    font-size: 1rem;
    line-height: 1.75;
    color: #64748b;
}
 
.tm-stage {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
    align-items: center;
    width: 100%;
    margin: 0 auto;
    padding: 64px 20px 36px;
    background: radial-gradient(ellipse 55% 70% at 50% 50%, rgba(11, 79, 162, .07), transparent 70%);
}
 
@media (min-width: 1024px) {
    .tm-stage {
        grid-template-columns: 1fr 1.32fr 1fr;
        gap: 36px;
        background:
            radial-gradient(ellipse 55% 70% at 50% 50%, rgba(11, 79, 162, .07), transparent 70%),
            linear-gradient(90deg, transparent calc(28% - 1px), #eef1f6 28%, transparent calc(28% + 1px)),
            linear-gradient(90deg, transparent calc(72% - 1px), #eef1f6 72%, transparent calc(72% + 1px));
    }
}
 
/* ---------- Card ---------- */
.tm-card {
    position: relative;
    isolation: isolate;          /* keeps the z-index:-1/-2 shapes inside the card */
    text-align: center;
    padding: 46px 20px 26px;
    cursor: pointer;
    transition: transform .3s ease-out;
    animation: tmIn .5s cubic-bezier(.2, .7, .2, 1) backwards;
}

.tm-hidden {
    display: none;
}
 
.tm-left,
.tm-right {
    display: none;               /* mobile / tablet: only the centre card */
}
 
@media (min-width: 1024px) {
    .tm-left,
    .tm-right {
        display: block;
    }

    .tm-left {
        grid-column: 1;
        grid-row: 1;
    }

    .tm-center {
        grid-column: 2;
        grid-row: 1;
    }

    .tm-right {
        grid-column: 3;
        grid-row: 1;
    }
 
    .tm-left:hover,
    .tm-right:hover {
        transform: translateY(-8px);
    }
}
 
.tm-center {
    cursor: default;
    padding: 56px 24px 32px;
}
 
@media (min-width: 640px) {
    .tm-center {
        padding-left: 32px;
        padding-right: 32px;
    }
}
 
/* ---------- Shapes behind the content ---------- */
.tm-shape {
    position: absolute;
    inset: 0;
    pointer-events: none;
}
 
.tm-blob {
    z-index: -2;
    background: linear-gradient(135deg, #0B4FA2, #073672);
}
 
.tm-face {
    z-index: -1;
    background: #fff;
    border: 1.5px solid rgba(11, 79, 162, .15);
    box-shadow: 0 24px 50px -12px rgba(7, 54, 114, .28), 0 6px 14px rgba(7, 54, 114, .08);
}
 
.tm-center .tm-face {
    border-color: rgba(11, 79, 162, .25);
    box-shadow: 0 34px 70px -14px rgba(7, 54, 114, .38), 0 8px 20px rgba(7, 54, 114, .10);
}
 
/* LEFT: slants down to the right, blob shows bottom-left */
.tm-left .tm-face {
    border-radius: 24% 34% 28% 16% / 18% 26% 24% 20%;
    transform: skewY(6deg) rotate(1deg);
}
.tm-left .tm-blob {
    border-radius: 22% 30% 30% 20% / 18% 24% 26% 24%;
    transform: translate(-16px, 18px) rotate(-6deg) skewY(6deg);
}
 
/* CENTER: rises slightly to the right, blob shows top-left */
.tm-center .tm-face {
    border-radius: 14% 12% 18% 12% / 17% 15% 18% 15%;
    transform: skewY(-3deg);
}
.tm-center .tm-blob {
    border-radius: 14% 12% 16% 14% / 17% 15% 18% 17%;
    transform: translate(-8px, -16px) rotate(2deg) skewY(-3deg);
}
 
/* RIGHT: rises to the right, blob shows right + bottom */
.tm-right .tm-face {
    border-radius: 16% 28% 24% 30% / 20% 22% 26% 18%;
    transform: skewY(-5deg) rotate(-1deg);
}
.tm-right .tm-blob {
    border-radius: 20% 26% 24% 28% / 22% 20% 26% 20%;
    transform: translate(16px, 16px) rotate(4deg) skewY(-5deg);
}
 
/* ---------- Content ---------- */
.tm-avatar {
    position: absolute;
    left: 50%;
    top: 0;
    transform: translate(-50%, -50%);
    display: grid;
    place-items: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    border: 4px solid #fff;
    background: linear-gradient(135deg, #0B4FA2, #073672);
    color: #fff;
    font-size: 1.25rem;
    font-weight: 700;
    box-shadow: 0 0 0 2px #0B4FA2, 0 10px 18px -4px rgba(7, 54, 114, .35);
}
 
.tm-center .tm-avatar {
    width: 72px;
    height: 72px;
}
 
.tm-name {
    font-size: 1.02rem;
    font-weight: 600;
    line-height: 1.25;
    color: #073672;
}
 
.tm-center .tm-name {
    font-size: 1.25rem;
}
 
.tm-role {
    margin-top: 4px;
    font-size: .78rem;
    color: #64748b;
}
 
.tm-center .tm-role {
    font-size: .92rem;
    font-weight: 500;
    color: #FE5A02;
}
 
.tm-quote {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    margin: 12px auto 8px;
    border-radius: 50%;
    font-size: .85rem;
    color: #FE5A02;
    background: rgba(254, 90, 2, .10);
}
 
.tm-center .tm-quote {
    width: 36px;
    height: 36px;
    margin: 16px auto 10px;
    font-size: .95rem;
}
 
.tm-text {
    font-size: .74rem;
    font-style: italic;
    line-height: 1.7;
    color: #64748b;
}
 
.tm-center .tm-text {
    font-size: .92rem;
    line-height: 1.8;
    color: #334155;
}
 
@media (min-width: 1024px) {
    .tm-center .tm-name {
        font-size: 1.45rem;
    }
}
 
/* ---------- Controls (re-uses your existing .slider-arrow and .t-dot) ---------- */
.tm-controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    margin-top: 8px;
}
 
#tDots {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
 
@keyframes tmIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: none; }
}
 
@media (prefers-reduced-motion: reduce) {
    .tm-card { animation: none; }
}
 /* =========================================================
   service.css – extra styles for the service page
   Load AFTER tailwind.css and style.css
   ========================================================= */

/* ---------- Banner + breadcrumb ---------- */
.page-banner {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 10rem 0 2.75rem;
  color: #fff;
  background: #061d3d url("") center / cover no-repeat;
}
.page-banner::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(4, 14, 34, .92) 0%, rgba(7, 54, 114, .78) 55%, rgba(7, 54, 114, .5) 100%),
    linear-gradient(0deg, rgba(4, 14, 34, .7), transparent 50%);
}
.page-banner-inner { max-width: 48rem; }
.page-banner .heading-copy {
  font-family: "Playfair Display", serif;
  font-weight: 700;
  line-height: 1.1;
  margin-top: 1.1rem;
  font-size: clamp(2.2rem, 5.2vw, 4rem);
}
.page-banner p:not(.heading-copy) {
  margin-top: 1rem;
  max-width: 38rem;
  color: #e2e8f0;
  font-size: 1.05rem;
  line-height: 1.7;
}
.breadcrumb {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .825rem;
  font-size: 1.1rem;
  font-weight: 500;
}
.breadcrumb a { color: #fff; transition: color .25s; }
.breadcrumb a:hover { color: var(--secondary); }
.breadcrumb i { font-size: .66rem; opacity: .7; }
.breadcrumb .current { color: var(--secondary); font-weight: 600; }

@media (max-width: 480px) {
  .breadcrumb {
    gap: .55rem;
    font-size: 1.99rem;
  }
}

/* ---------- About (image floats left, text wraps) ---------- */
.about-section { padding: 6rem 0; background: #fff; }
.about-wrap { display: flow-root; }
.about-media {
  position: relative;
  margin: 0 0 2rem;
  padding: 10px;
}
.about-media::before,
.about-media::after {
  content: "";
  position: absolute;
  width: 56px;
  height: 56px;
  pointer-events: none;
}
.about-media::before {
  top: 0; left: 0;
  border-top: 4px solid var(--primary);
  border-left: 4px solid var(--primary);
  border-top-left-radius: 14px;
}
.about-media::after {
  bottom: 0; right: 0;
  border-bottom: 4px solid var(--secondary);
  border-right: 4px solid var(--secondary);
  border-bottom-right-radius: 14px;
}
.about-media img {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 22px;
  box-shadow: 0 25px 55px -22px rgba(7, 54, 114, .45);
}
@media (min-width: 900px) {
  .about-media {
    float: left;
    width: min(40%, 440px);
    margin: 0 2.75rem 1.5rem 0;
  }
}
.about-tag {
  display: block;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--primary);
}
.about-section .heading-copy {
  font-family: "Playfair Display", serif;
  font-weight: 700;
  line-height: 1.15;
  color: #0f2a44;
  margin-top: .7rem;
  font-size: clamp(1.8rem, 3.4vw, 2.6rem);
}
.about-section .heading-copy.about-sub { font-size: clamp(1.4rem, 2.4vw, 1.9rem); margin-top: 2rem; }
.about-section p:not(.heading-copy) {
  margin-top: 1rem;
  color: #334155;
  line-height: 1.8;
  font-size: .98rem;
}
.about-section p strong { color: #0f172a; }
.about-points {
  display: grid;
  gap: .6rem;
  margin-top: 1.2rem;
}
.about-points li {
  display: flex;
  gap: .7rem;
  align-items: flex-start;
  color: #334155;
  font-size: .95rem;
}
.about-points i { color: var(--secondary); margin-top: .3rem; }
.about-cta { margin-top: 1.8rem; clear: none; }

/* ---------- Draggable infinite services slider ---------- */
.svc-slider-section {
  padding: 6rem 0;
  overflow: hidden;
  background: #f4f8fd;
}
.svc-slider {
  margin-top: 3rem;
  overflow: hidden;
  cursor: grab;
  touch-action: pan-y;
  user-select: none;
  -webkit-user-select: none;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
}
.svc-slider.dragging { cursor: grabbing; }
.svc-track {
  display: flex;
  width: max-content;
  padding: 1rem 0 1.5rem;
  will-change: transform;
}
.svc-track .service-card {
  flex: 0 0 auto;
  width: 300px;
  margin-right: 1.5rem;
  min-height: 330px;
}
.svc-track .service-card:hover { transform: none; }
@media (max-width: 640px) {
  .svc-track .service-card { width: 260px; min-height: 310px; }
}

/* =========================================================
   marketplace.css – marketplace directory section
   Load AFTER style.css and service.css (banner/breadcrumb live in service.css)
   Palette: --primary #0B4FA2 | --secondary #FE5A02 | --ink #0f172a
   ========================================================= */

.mp-section {
  padding: 5rem 0;
  color: var(--ink);
  background-color: #f4f8fd;
  background-image:
    radial-gradient(ellipse at 10% 0%, rgba(11, 79, 162, .09), transparent 30rem),
    radial-gradient(ellipse at 95% 90%, rgba(254, 90, 2, .06), transparent 26rem);
}
.mp-wrap {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  max-width: 80rem;
  margin: 0 auto;
  padding: 1.5rem 1rem;
}
@media (min-width: 640px) { .mp-wrap { padding-inline: 1.5rem; } }
@media (min-width: 1024px) { .mp-wrap { padding-inline: 3rem; } }

/* Heading */
.mp-head { max-width: 42rem; margin: 0 auto .5rem; text-align: center; }
.mp-eyebrow {
  margin-bottom: .5rem;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--secondary);
}
.mp-title {
  font-family: "Playfair Display", serif;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -.01em;
  color: var(--ink);
  font-size: clamp(2rem, 4vw, 2.8rem);
}
.mp-line {
  width: 3rem;
  height: 4px;
  margin: .9rem auto 0;
  border-radius: 4px;
  background: var(--secondary);
}

/* Grids */
.mp-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media (min-width: 640px) { .mp-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .mp-grid { grid-template-columns: repeat(4, 1fr); } }

/* Buttons */
.mp-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  padding: 1.25rem 1rem;
  border-radius: 1rem;
  text-align: center;
  font-weight: 600;
  transition: all .3s ease;
}
.mp-btn:hover { transform: translateY(-3px); }

.mp-btn-primary {
  background: var(--primary);
  color: #fff;
  font-size: 1.05rem;
  box-shadow: 0 12px 26px -12px rgba(11, 79, 162, .75);
}
.mp-btn-primary:hover { background: var(--secondary); box-shadow: 0 14px 28px -10px rgba(254, 90, 2, .6); }

.mp-parent-wrap { display: flex; flex-direction: column; gap: 1.5rem; padding-top: 1rem; }
.mp-btn-parent {
  padding: 1rem;
  background: #E8F0FB;
  color: var(--primary-dark);
  font-size: 1.15rem;
  font-weight: 700;
  border: 1px solid rgba(11, 79, 162, .25);
  box-shadow: 0 4px 14px rgba(7, 54, 114, .06);
}
.mp-btn-parent:hover { background: var(--primary); color: #fff; }

.mp-btn-child {
  background: var(--primary-dark);
  color: #fff;
  font-size: 1.05rem;
  box-shadow: 0 12px 26px -14px rgba(7, 54, 114, .8);
}
.mp-btn-child:hover { background: var(--secondary); box-shadow: 0 14px 28px -10px rgba(254, 90, 2, .6); }