:root{
    --taxi-yellow: #ffc107;
    --taxi-yellow-2: #ffd04d;
    --taxi-black: #0b0c0f;
    --taxi-surface: #111318;
    --taxi-surface-2: #171a21;
    --taxi-ink: #f5f7fb;
    --taxi-muted: rgba(245,247,251,.72);
    --taxi-border: rgba(255,255,255,.10);

    --bs-primary: var(--taxi-yellow);
    --bs-primary-rgb: 255,193,7;
    --bs-link-color: var(--taxi-yellow);
    --bs-link-hover-color: var(--taxi-yellow-2);

    --bs-body-bg: var(--taxi-black);
    --bs-body-color: var(--taxi-ink);
    --bs-secondary-color: var(--taxi-muted);
    --bs-border-color: var(--taxi-border);
    --bs-tertiary-bg: var(--taxi-surface);
}

html{
    scroll-padding-top: 84px;
}

@media (min-width: 992px){
    .py-lg-6{
        padding-top: 4.5rem !important;
        padding-bottom: 4.5rem !important;
    }
}

body{
    color: var(--taxi-ink);
    background: radial-gradient(800px 500px at 85% 10%, rgba(255,193,7,.10), rgba(255,193,7,0) 60%),
        radial-gradient(700px 450px at 10% 20%, rgba(255,193,7,.08), rgba(255,193,7,0) 55%),
        var(--taxi-black);
}

.skip-link{
    position:absolute;
    left:-9999px;
    top:auto;
    width:1px;
    height:1px;
    overflow:hidden;
}
.skip-link:focus{
    left:12px;
    top:12px;
    width:auto;
    height:auto;
    padding:10px 12px;
    background:#fff;
    border:1px solid rgba(0,0,0,.2);
    border-radius:12px;
    z-index:1100;
}

.brand-mark{
    width: 14px;
    height: 14px;
    border-radius: 6px;
    background: conic-gradient(from 120deg, var(--taxi-yellow), #ffe59a, var(--taxi-yellow));
    box-shadow: 0 0 0 2px rgba(255,193,7,.18);
}

.brand-logo{
    width: 28px;
    height: 28px;
    border-radius: 999px;
    object-fit: cover;
    box-shadow: 0 0 0 2px rgba(255,193,7,.18);
}

.taxi-nav{
    background: rgba(11,12,15,.78);
    backdrop-filter: blur(10px);
    border-color: rgba(255,255,255,.10) !important;
}
.taxi-nav .navbar-brand,
.taxi-nav .nav-link{
    color: rgba(245,247,251,.92);
}
.taxi-nav .nav-link:hover,
.taxi-nav .nav-link:focus{
    color: #fff;
}
.taxi-nav .nav-link.active{
    color: var(--taxi-yellow);
}

.hero{
    position: relative;
    overflow: hidden;
    background: linear-gradient(180deg, rgba(255,193,7,.10), rgba(255,193,7,0));
    isolation: isolate;
}
.hero > .container{
    position: relative;
}

.hero-title{
    letter-spacing: -0.02em;
    line-height: 1.05;
    color: #ffffff;
}
@supports (-webkit-background-clip: text){
    .hero-title{
        background: linear-gradient(90deg, #ffffff 0%, #fff1bf 45%, rgba(255,193,7,.95) 100%);
        -webkit-background-clip: text;
        background-clip: text;
        color: transparent;
    }
}
.hero-subtitle{
    max-width: 52ch;
}
.hero-wrap{
    border-radius: 26px;
    border: 1px solid rgba(255,255,255,.10);
    background: rgba(17,19,24,.60);
    box-shadow: 0 22px 70px rgba(0,0,0,.52);
    backdrop-filter: blur(12px);
    overflow: hidden;
}
.hero-left{
    min-height: 100%;
}
.hero-actions{
    max-width: 440px;
}

.order-card{
    background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
}
@media (min-width: 992px){
    .order-card{
        border-left: 1px solid rgba(255,193,7,.20);
    }
}
@media (max-width: 991.98px){
    .order-card{
        border-top: 1px solid rgba(255,193,7,.16);
    }
}

.hero-gradient{
    position: absolute;
    inset: -120px -60px auto auto;
    width: 520px;
    height: 520px;
    background: radial-gradient(circle at 35% 35%, rgba(255,193,7,.22), rgba(255,193,7,0) 58%);
    pointer-events: none;
    z-index: -1;
}

.benefit-card{
    display:flex;
    gap:12px;
    align-items:flex-start;
    padding: 14px 14px;
    border-radius: 18px;
    background: rgba(255,255,255,.03);
    border: 1px solid rgba(255,255,255,.10);
    backdrop-filter: blur(10px);
}
.benefit-icon{
    width: 40px;
    height: 40px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,193,7,.12);
    border: 1px solid rgba(255,193,7,.22);
    color: var(--taxi-yellow);
    flex: 0 0 auto;
}
.benefit-icon i{
    font-size: 18px;
}

.status-pill{
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    border-radius: 999px;
    font-size: 12px;
    color: rgba(245,247,251,.92);
    background: rgba(255,255,255,.04);
    border: 1px solid rgba(255,255,255,.10);
}
.status-dot{
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: var(--taxi-yellow);
    box-shadow: 0 0 0 3px rgba(255,193,7,.16);
}

.order-note{
    padding-top: 16px;
    border-top: 1px solid rgba(255,255,255,.08);
}

.section{
    padding: 56px 0;
}
.section-muted{
    background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,0));
}

.card{
    background-color: var(--taxi-surface);
    border-color: rgba(255,255,255,.10);
}
.card-footer{
    border-top-color: rgba(255,255,255,.08) !important;
}

.icon-badge{
    width: 42px;
    height: 42px;
    border-radius: 14px;
    display:flex;
    align-items:center;
    justify-content:center;
    background: rgba(255,193,7,.12);
    color: var(--taxi-yellow);
    border: 1px solid rgba(255,193,7,.20);
}
.icon-badge i{ font-size: 18px; }

.btn-primary{
    --bs-btn-bg: var(--taxi-yellow);
    --bs-btn-border-color: var(--taxi-yellow);
    --bs-btn-color: #111318;
    --bs-btn-hover-bg: var(--taxi-yellow-2);
    --bs-btn-hover-border-color: var(--taxi-yellow-2);
    --bs-btn-hover-color: #0b0c0f;
    --bs-btn-active-bg: #ffdf7e;
    --bs-btn-active-border-color: #ffdf7e;
}
.btn-outline-primary{
    --bs-btn-color: var(--taxi-yellow);
    --bs-btn-border-color: rgba(255,193,7,.55);
    --bs-btn-hover-bg: rgba(255,193,7,.12);
    --bs-btn-hover-border-color: rgba(255,193,7,.85);
    --bs-btn-hover-color: #fff;
    --bs-btn-active-bg: rgba(255,193,7,.18);
    --bs-btn-active-border-color: rgba(255,193,7,.90);
    --bs-btn-active-color: #fff;
}

.badge.text-bg-primary-subtle{
    background: rgba(255,193,7,.12) !important;
    color: var(--taxi-yellow) !important;
    border-color: rgba(255,193,7,.25) !important;
}

.gallery-tile{
    width: 100%;
    border: 0;
    padding: 0;
    border-radius: 16px;
    overflow: hidden;
    position: relative;
    background: var(--taxi-surface-2);
    box-shadow: 0 10px 30px rgba(0,0,0,.35);
    transition: transform .15s ease, box-shadow .15s ease;
    text-align: left;
}
.gallery-tile:hover{
    transform: translateY(-2px);
    box-shadow: 0 16px 42px rgba(0,0,0,.46);
}
.gallery-tile img{
    display:block;
    width:100%;
    height: 220px;
    object-fit: cover;
    background: #fff;
}
.gallery-caption{
    position:absolute;
    inset:auto 12px 12px 12px;
    padding: 10px 12px;
    border-radius: 14px;
    color: var(--taxi-ink);
    background: rgba(17,19,24,.72);
    border: 1px solid rgba(255,255,255,.10);
    backdrop-filter: blur(6px);
    font-size: 14px;
}

.footer{
    background: rgba(255,255,255,.02);
}

.modal-content{
    background: var(--taxi-surface);
    border-color: rgba(255,255,255,.10);
}
.modal-header{
    border-bottom-color: rgba(255,255,255,.08);
}

.table{
    --bs-table-bg: transparent;
    --bs-table-color: var(--taxi-ink);
    --bs-table-border-color: rgba(255,255,255,.10);
}

.text-secondary{
    color: var(--taxi-muted) !important;
}

.border{
    border-color: rgba(255,255,255,.10) !important;
}

html.cookie-consent-lock,
body.cookie-consent-lock{
    overflow: hidden !important;
}

.cookie-consent{
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding: 16px;
}

.cookie-consent[hidden]{
    display: none !important;
}

.cookie-consent-backdrop{
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.60);
    backdrop-filter: blur(6px);
}

.cookie-consent-dialog{
    position: relative;
    width: min(720px, 100%);
    border-radius: 22px;
    border: 1px solid rgba(255,255,255,.12);
    background: rgba(17,19,24,.92);
    box-shadow: 0 26px 90px rgba(0,0,0,.72);
    padding: 18px 18px;
    animation: cookieSlideUp .22s ease-out both;
    outline: none;
}

.cookie-consent-icon{
    width: 48px;
    height: 48px;
    border-radius: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,193,7,.14);
    border: 1px solid rgba(255,193,7,.24);
    color: var(--taxi-yellow);
    flex: 0 0 auto;
}

.cookie-consent-icon i{
    font-size: 22px;
}

.cookie-settings-link{
    text-align: left;
}

@keyframes cookieSlideUp{
    from{
        opacity: 0;
        transform: translateY(14px);
    }
    to{
        opacity: 1;
        transform: translateY(0);
    }
}

.price-page-intro{
    max-width: 62ch;
}

.fare-calculator{
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(520px 280px at 100% 0%, rgba(255,193,7,.12), rgba(255,193,7,0) 65%),
        linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01)),
        var(--taxi-surface);
}

.fare-calculator::before{
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(135deg, rgba(255,193,7,.06), transparent 28%),
        linear-gradient(315deg, rgba(255,255,255,.03), transparent 35%);
}

.fare-calculator .card-body,
.fare-summary-card .card-body{
    position: relative;
    z-index: 1;
}

.fare-calculator-note{
    display: inline-flex;
    align-items: center;
    gap: 10px;
    max-width: 340px;
    padding: 12px 14px;
    border-radius: 18px;
    background: rgba(255,255,255,.04);
    border: 1px solid rgba(255,255,255,.10);
    color: var(--taxi-muted);
    font-size: 14px;
}

.fare-controls{
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.fare-field .form-label{
    font-weight: 600;
    margin-bottom: 8px;
}

.fare-calculator .form-control,
.fare-calculator .input-group-text{
    border-color: rgba(255,255,255,.12);
    background: rgba(8,10,14,.72);
    color: var(--taxi-ink);
}

.fare-calculator .form-control::placeholder{
    color: rgba(245,247,251,.42);
}

.fare-calculator .form-control:focus{
    border-color: rgba(255,193,7,.70);
    box-shadow: 0 0 0 .25rem rgba(255,193,7,.12);
    background: rgba(8,10,14,.92);
    color: var(--taxi-ink);
}

.fare-calculator .form-text{
    color: var(--taxi-muted);
}

.fare-route-swap{
    padding-top: 2px;
}

.fare-search-results{
    position: absolute;
    inset: calc(100% + 8px) 0 auto 0;
    z-index: 30;
    display: grid;
    gap: 8px;
    padding: 10px;
    border-radius: 18px;
    background: rgba(8,10,14,.97);
    border: 1px solid rgba(255,255,255,.10);
    box-shadow: 0 18px 44px rgba(0,0,0,.42);
}

.fare-search-results[hidden]{
    display: none;
}

.fare-search-item{
    width: 100%;
    padding: 12px 14px;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 14px;
    background: rgba(255,255,255,.03);
    color: var(--taxi-ink);
    text-align: left;
    transition: border-color .15s ease, background-color .15s ease, transform .15s ease;
}

.fare-search-item:hover,
.fare-search-item:focus{
    border-color: rgba(255,193,7,.48);
    background: rgba(255,193,7,.10);
    transform: translateY(-1px);
}

.fare-search-item small{
    display: block;
    margin-top: 4px;
    color: var(--taxi-muted);
}

.fare-quick-routes{
    margin-top: 4px;
    padding-top: 18px;
    border-top: 1px solid rgba(255,255,255,.08);
}

.fare-map-card{
    height: 100%;
    padding: 18px;
    border-radius: 26px;
    background: rgba(255,255,255,.03);
    border: 1px solid rgba(255,255,255,.10);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.03);
}

.fare-map-toolbar{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.fare-map-mode{
    display: inline-flex;
    align-items: center;
    padding: 8px 12px;
    border-radius: 999px;
    border: 1px solid rgba(255,193,7,.24);
    background: rgba(255,193,7,.10);
    color: var(--taxi-yellow);
    font-size: 13px;
    white-space: nowrap;
}

.fare-map{
    min-height: 440px;
    border-radius: 22px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.10);
    box-shadow: 0 18px 50px rgba(0,0,0,.28);
}

.fare-map .leaflet-control-zoom a,
.fare-map .leaflet-control-attribution{
    background: rgba(17,19,24,.92);
    color: var(--taxi-ink);
    border-color: rgba(255,255,255,.12);
}

.fare-map .leaflet-bar a{
    border-bottom-color: rgba(255,255,255,.12);
}

.fare-map .leaflet-popup-content-wrapper,
.fare-map .leaflet-popup-tip{
    background: var(--taxi-surface);
    color: var(--taxi-ink);
}

.fare-map .leaflet-control-attribution a{
    color: var(--taxi-yellow);
}

.fare-summary-card{
    background:
        radial-gradient(360px 220px at 100% 0%, rgba(255,193,7,.12), rgba(255,193,7,0) 62%),
        linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01)),
        var(--taxi-surface);
}

.fare-summary-route{
    padding: 16px 18px;
    border-radius: 20px;
    background: rgba(255,255,255,.03);
    border: 1px solid rgba(255,255,255,.08);
    color: var(--taxi-ink);
    line-height: 1.55;
}

.fare-summary-breakdown,
.fare-price-stack{
    display: grid;
    gap: 10px;
}

.fare-summary-row,
.fare-price-line{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 14px;
    border-radius: 16px;
    background: rgba(255,255,255,.03);
    border: 1px solid rgba(255,255,255,.08);
}

.fare-total{
    padding: 18px;
    border-radius: 24px;
    background: linear-gradient(135deg, rgba(255,193,7,.18), rgba(255,255,255,.02));
    border: 1px solid rgba(255,193,7,.18);
}

.fare-total-value{
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1;
    font-weight: 800;
    letter-spacing: -.03em;
    color: #fff4c8;
}

.fare-tariff-grid{
    display: grid;
    gap: 12px;
}

.fare-tariff-item{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 16px;
    border-radius: 18px;
    background: rgba(255,255,255,.03);
    border: 1px solid rgba(255,255,255,.08);
}

@media (max-width: 991.98px){
    .fare-map{
        min-height: 360px;
    }
}

@media (max-width: 575.98px){
    .fare-map-card{
        padding: 14px;
    }

    .fare-map-toolbar,
    .fare-summary-row,
    .fare-price-line,
    .fare-tariff-item{
        flex-direction: column;
        align-items: flex-start;
    }

    .fare-map{
        min-height: 320px;
    }
}

.google-reviews-card{
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(360px 220px at 100% 0%, rgba(255,193,7,.10), rgba(255,193,7,0) 60%),
        linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01)),
        var(--taxi-surface);
}

.google-reviews-card::before{
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(145deg, rgba(255,255,255,.04), transparent 28%),
        radial-gradient(280px 180px at 0% 100%, rgba(255,193,7,.07), transparent 65%);
}

.google-reviews-shell{
    position: relative;
    z-index: 1;
    display: grid;
    gap: 20px;
}

.google-reviews-summary{
    display: grid;
    gap: 18px;
    padding: 20px;
    border-radius: 26px;
    background: rgba(255,255,255,.03);
    border: 1px solid rgba(255,255,255,.08);
}

.google-reviews-brand{
    display: flex;
    align-items: center;
    gap: 14px;
}

.google-reviews-brand-icon{
    width: 52px;
    height: 52px;
    border-radius: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,193,7,.12);
    border: 1px solid rgba(255,193,7,.22);
    color: var(--taxi-yellow);
}

.google-reviews-brand-icon i{
    font-size: 24px;
}

.google-reviews-score{
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 10px 14px;
}

.google-reviews-stars{
    font-size: 18px;
    letter-spacing: .18em;
    color: #ffe08a;
}

.google-reviews-score-value{
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1;
    font-weight: 800;
    letter-spacing: -.04em;
    color: #fff4c8;
}

.google-reviews-list{
    display: grid;
    gap: 14px;
}

.google-review-item{
    padding: 18px;
    border-radius: 22px;
    background: rgba(255,255,255,.03);
    border: 1px solid rgba(255,255,255,.08);
}

.google-review-head{
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 12px;
}

.google-review-author{
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.google-review-avatar{
    width: 46px;
    height: 46px;
    border-radius: 999px;
    object-fit: cover;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.10);
}

.google-review-avatar-icon{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--taxi-yellow);
    flex: 0 0 auto;
}

.google-review-author-name{
    display: inline-block;
    color: var(--taxi-ink);
    text-decoration: none;
    font-weight: 600;
}

.google-review-author-name:hover,
.google-review-author-name:focus{
    color: #fff;
}

.google-review-date{
    color: var(--taxi-muted);
    font-size: 14px;
}

.google-review-rating{
    color: #ffe08a;
    font-size: 14px;
    white-space: nowrap;
}

.google-review-text{
    color: var(--taxi-ink);
    margin: 0;
    line-height: 1.65;
    white-space: pre-line;
}

.google-review-item-loading{
    animation: reviewPulse 1.6s ease-in-out infinite;
}

.google-review-meta-placeholder,
.google-review-line-placeholder{
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(255,255,255,.06), rgba(255,255,255,.12), rgba(255,255,255,.06));
    background-size: 240px 100%;
    animation: reviewShimmer 1.5s linear infinite;
}

.google-review-meta-placeholder{
    width: 38%;
    height: 16px;
    margin-bottom: 14px;
}

.google-review-line-placeholder{
    width: 100%;
    height: 12px;
    margin-bottom: 10px;
}

.google-review-line-placeholder.short{
    width: 68%;
    margin-bottom: 0;
}

@keyframes reviewPulse{
    0%, 100%{
        opacity: .78;
    }
    50%{
        opacity: 1;
    }
}

@keyframes reviewShimmer{
    from{
        background-position: -240px 0;
    }
    to{
        background-position: 240px 0;
    }
}

@media (max-width: 575.98px){
    .google-review-head{
        flex-direction: column;
    }
}
