/* TAXI Prague: platinová paleta, černé pozadí a průsvitné plochy. */
:root {
    --brand-background: #111315;
    --brand-surface: rgba(232, 235, 238, .055);
    --brand-field: rgba(232, 235, 238, .075);
    --brand-ink: #eef0f2;
    --brand-muted: #c1c6ca;
    --brand-platinum: #c8cdd1;
    --brand-platinum-bright: #f0f2f3;
    --brand-orange: var(--brand-platinum);
    --brand-orange-hover: #e5e8ea;
    --brand-gold: var(--brand-platinum);
    --brand-gold-light: rgba(223, 227, 230, .12);
    --brand-gold-deep: #f0f2f3;
    --brand-border: rgba(220, 224, 227, .16);
    color-scheme: dark;
}

html, body {
    background-color: var(--brand-background) !important;
    color: var(--brand-ink);
}
body {
    font-family: Arial, sans-serif;
    font-weight: 500;
    background-image:
        radial-gradient(ellipse at 50% -18%, rgba(207, 213, 218, .09), transparent 52%),
        linear-gradient(180deg, #151719 0%, #111315 48%, #131517 100%);
    background-attachment: fixed;
}
body :where(h1,h2,h3,h4,.font-serif,.font-sans) {
    font-family: Arial, sans-serif;
}
body :where(p,li,dt,dd,label,legend,summary,span,a,strong,small,th,td,figcaption,button,input,textarea,select,option,div[class*="text-"],div[role="status"]) {
    color: var(--brand-ink);
}
/* Zesílit světlé texty, ale neoslabit existující tučné nadpisy ani stavové barvy. */
body .text-white:not(:where(.font-bold,.font-semibold,.font-extrabold,.gm-style *)) { font-weight: 600; }
body :is(.text-zinc-300,.text-zinc-400,.text-zinc-500,.text-gray-400):not(:where(.gm-style *)) {
    color: var(--brand-muted);
}
body :where(*):not(#map):not(#map *):not(#streetMap):not(#streetMap *):not(.leaflet-container):not(.leaflet-container *) {
    border-color: var(--brand-border);
}
body :is(.gold-text,h1,h2,h3,h4,.page-kicker,.site-nav a[aria-current="page"]) {
    background: none;
    color: var(--brand-platinum-bright) !important;
    -webkit-text-fill-color: currentColor;
    text-shadow: none;
}
body :is(.glass-panel,.contact-btn,.settings-dialog,.gallery-lightbox,.site-menu,.arrival-guarantee,.trip-price) {
    background: rgba(232, 235, 238, .045);
    border: 0;
    box-shadow: none;
    -webkit-backdrop-filter: blur(18px) saturate(115%);
    backdrop-filter: blur(18px) saturate(115%);
}
body [class*="bg-"]:not(button):not(.btn-gold):not(.btn-outline):not(.contact-btn):not(.gallery-close):not(.skip-link):not(.icon-control):not(.tab):not(.badge):not(.payment-option):not(#map):not(#map *):not(#streetMap):not(#streetMap *):not(.leaflet-container):not(.leaflet-container *):not([id$="Modal"]):not(:where(#pickup-results,#stop1-results,#stop2-results,#destination-results,#phonePrefixPanel)):not(:where(#pickup-results *,#stop1-results *,#stop2-results *,#destination-results *,#phonePrefixPanel *)) {
    background-color: rgba(232, 235, 238, .045) !important;
}

/* Průsvitná hlavička zachovává původní logo a ovládání. */
body #siteHeader, body #siteHeader.is-scrolled {
    background:
        linear-gradient(135deg, rgba(255,255,255,.12), rgba(255,255,255,.025) 42%, rgba(255,255,255,.055)),
        rgba(18, 20, 22, .58);
    border: 0;
    border-bottom: 1px solid rgba(255,255,255,.13);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 12px 36px rgba(0,0,0,.2);
    -webkit-backdrop-filter: blur(18px) saturate(112%);
    backdrop-filter: blur(18px) saturate(112%);
}
.brand-home { gap: 14px; min-width: 0; }
#siteHeader .header-stars { display: block; width: 70px; height: 14px; flex-shrink: 0; fill: #d8dde0; }
.brand-logo { display: block; width: 80px; height: 80px; flex-shrink: 0; object-fit: contain; filter: none; }
.brand-home .brand-logo { width: 76px; height: 76px; }
.brand-footer { display: inline-block; margin-bottom: 14px; border-radius: 50%; }
.brand-footer .brand-logo { width: 88px; height: 88px; }
.brand-result { display: inline-block; margin: 0 auto 20px; border-radius: 50%; }
.brand-result .brand-logo, #bookingSuccess > .brand-logo { width: 120px; height: 120px; margin: 0 auto 20px; }
#login .brand-logo { margin: 0 auto 16px; width: 112px; height: 112px; }
@media (max-width: 640px) {
    .brand-home { gap: 9px; }
    .brand-home .brand-logo { width: 54px; height: 54px; }
    .brand-home .text-xl { font-size: 16px; }
    #siteHeader .header-stars { width: 50px; height: 10px; }
}

/* Rezervace využívá šířku obrazovky bez vnějšího rámečku. */
body #hlavni-obsah {
    width: 100%;
    max-width: 100%;
    padding: clamp(16px, 3vw, 40px) clamp(16px, 4vw, 56px);
}
body #hlavni-obsah > div.max-w-2xl {
    width: 100%;
    max-width: 980px;
    margin-inline: auto;
}
body #bookingForm > .glass-panel,
body .glass-panel.p-6 {
    padding: clamp(16px, 3vw, 34px);
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}
body #bookingTitle {
    font-size: clamp(30px, 5vw, 48px);
    letter-spacing: .09em;
    line-height: 1.1;
}
body #bookingIntro { color: var(--brand-muted) !important; font-size: 14px; line-height: 1.7; }
body #bookingForm label, body #bookingForm legend {
    color: #c8cdd1 !important;
    line-height: 1.5;
    font-weight: 600;
}
body #bookingForm :is(input:not([type="checkbox"]):not([type="radio"]),textarea,select),
body :is(#phonePrefixSearch,.exchange-panel select) {
    background:
        linear-gradient(135deg, rgba(255,255,255,.105), rgba(255,255,255,.025) 48%, rgba(255,255,255,.045)),
        rgba(17,19,21,.58) !important;
    color: #f0f2f3 !important;
    border: 0 !important;
    border-radius: 11px;
    color-scheme: dark !important;
    -webkit-backdrop-filter: blur(10px) saturate(108%);
    backdrop-filter: blur(10px) saturate(108%);
    transition: background-color .2s ease, border-color .2s ease, box-shadow .2s ease;
}
body #bookingForm :is(#pickup,#destination) {
    box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 8px 20px rgba(0,0,0,.42);
}
body #bookingForm :is(#pickup,#destination):hover:not(:focus) {
    box-shadow: inset 0 1px 0 rgba(255,255,255,.16), 0 10px 24px rgba(0,0,0,.48);
}
body #bookingForm :is(#pickup,#destination):focus {
    outline-color: rgba(240,242,243,.72);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.16), 0 12px 26px rgba(0,0,0,.5), 0 0 0 4px rgba(230,234,237,.08);
}
/* Ikony musí ležet nad sklem pole, jinak je jeho rozostření pozadí rozmaže. */
body #bookingForm .relative:has(> :is(#pickup,#destination,#stop1,#stop2)) > :is(svg,i) {
    z-index: 1;
    pointer-events: none;
}
body #bookingForm input::placeholder,
body #bookingForm textarea::placeholder,
body #phonePrefixSearch::placeholder { color: #92999f !important; opacity: 1; }
body #bookingForm :is(input,textarea,select):focus,
body :is(#phonePrefixSearch,.exchange-panel select):focus {
    border-color: rgba(230, 234, 237, .58) !important;
    outline: 2px solid rgba(230, 234, 237, .30);
    outline-offset: 2px;
    box-shadow: 0 0 0 4px rgba(230, 234, 237, .06);
}
body :is(input[type="checkbox"],input[type="radio"]) { accent-color: #d8dde0; }
body #bookingForm :is(#reservationDetails,#bookingSummary,.payment-option,.route-choice,[id$="-results"],#phonePrefixBtn,#phonePrefixPanel) {
    background: rgba(224, 229, 233, .055) !important;
}
body #bookingForm :is(#reservationDetails,.payment-option,#bookingSummary,#phonePrefixBtn,#phonePrefixPanel,.route-choice,[id$="-results"]) {
    border: 0 !important;
    box-shadow: none;
}
body #bookingForm .trip-price {
    background:
        linear-gradient(140deg, rgba(255,255,255,.11), rgba(255,255,255,.025) 46%, rgba(255,255,255,.055)),
        rgba(232,235,238,.045) !important;
    -webkit-backdrop-filter: blur(14px) saturate(110%);
    backdrop-filter: blur(14px) saturate(110%);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.13), 0 9px 26px rgba(0,0,0,.18);
}
/* Světlé našeptávače: uzavřená pole a tlačítko předvolby zůstávají tmavé. */
body #bookingForm :is(#pickup-results,#stop1-results,#stop2-results,#destination-results,#phonePrefixPanel) {
    background-color: #f4f2ed !important;
    color: #191a1b !important;
    color-scheme: light;
}
body #bookingForm :is(#pickup-results,#stop1-results,#stop2-results,#destination-results,#phonePrefixPanel) :where(*) {
    color: #191a1b !important;
}
body #bookingForm :is(#pickup-results,#stop1-results,#stop2-results,#destination-results,#phonePrefixPanel) :where([role="option"],[role="option"]:hover,[role="option"]:focus,[role="option"]:focus-visible,[role="option"][aria-selected="true"]) {
    background-color: #f4f2ed !important;
}
body #bookingForm :is(#pickup-results,#stop1-results,#stop2-results,#destination-results,#phonePrefixPanel) :where([role="option"]:hover,[role="option"]:focus,[role="option"]:focus-visible,[role="option"][aria-selected="true"]) {
    background-color: #e8e5df !important;
}
body #bookingForm #phonePrefixPanel #phonePrefixSearch {
    background: #f4f2ed !important;
    color: #191a1b !important;
    -webkit-text-fill-color: #191a1b !important;
    color-scheme: light !important;
}
body #bookingForm #phonePrefixPanel #phonePrefixSearch::placeholder {
    color: #66645f !important;
    -webkit-text-fill-color: #66645f !important;
    opacity: 1;
}
body #bookingForm :is(#pickup-results,#stop1-results,#stop2-results,#destination-results,#phonePrefixPanel) :where([role="option"],input):focus-visible {
    outline: 2px solid #55514c;
    outline-offset: -2px;
    box-shadow: none;
}
body .arrival-guarantee {
    margin: 0 0 22px;
    padding: 15px 17px;
    border: 0;
    background:
        linear-gradient(140deg, rgba(255,255,255,.10), rgba(255,255,255,.02) 48%, rgba(255,255,255,.045)),
        rgba(18,20,22,.52);
    color: var(--brand-ink);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 8px 22px rgba(0,0,0,.16);
    -webkit-backdrop-filter: blur(12px) saturate(108%);
    backdrop-filter: blur(12px) saturate(108%);
}
body .arrival-guarantee p { color: #b9bec3 !important; font-size: 13px; }
body .arrival-guarantee a { color: var(--brand-platinum-bright) !important; }
body .trip-price-title { font-size: 14px; font-weight: 600; margin: 0 0 10px; color: #c9ced2; }
.trip-price-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: clamp(12px, 4vw, 28px); font-size: 15px; font-weight: 500; font-variant-numeric: tabular-nums; }
.trip-price-row > span { white-space: nowrap; color: #aeb4b9; }
body .trip-price-row #priceVal { margin-left: auto; white-space: nowrap; font-size: clamp(28px, 5vw, 38px); font-weight: 700; line-height: 1.2; color: var(--brand-platinum-bright) !important; }
body .trip-price #priceEur { text-align: right; font-size: 12px; line-height: 1.6; margin-top: 8px; color: #a8afb4 !important; }
body #bookingForm #priceDiscount { color: #ff9696 !important; }
body #bookingForm :is(#driverPickupEta, #driverBusyStatus) { color: #4ade80 !important; -webkit-text-fill-color: #4ade80 !important; }
body #bookingForm #dropoffTime { color: #4ade80 !important; -webkit-text-fill-color: #4ade80 !important; }
body #bookingForm #dropoffTime .dropoff-clock { display: inline-block; font-size: 2rem; line-height: 1.25; font-weight: 800; font-variant-numeric: tabular-nums; color: #4ade80 !important; -webkit-text-fill-color: #4ade80 !important; }
body #demandVal { color: var(--demand-color, var(--brand-platinum)) !important; }
body #recenze .review-card .review-stars[role="img"],
body #recenze .review-card .review-stars[role="img"] span { color: #f0c96d !important; -webkit-text-fill-color: #f0c96d; }
body #bookingForm :is(svg.lucide,.address-icon) { color: #cbd0d4 !important; }
body .address-action { display: flex; align-items: center; justify-content: center; min-height: 44px; cursor: pointer; }
body .address-action:disabled { opacity: .45; cursor: default; }

/* Platinová tlačítka s jemnou odezvou na stisk. */
body :is(button,.btn-gold,.btn-outline,.contact-btn,.gallery-close,.skip-link,.icon-control,#siteHeader a[href^="tel:"]):not(:where(#submitBtn,.page-cta,#siteMenu *)):not(#map *):not(#streetMap *):not(.leaflet-container):not(.leaflet-container *):not(.gm-style *) {
    color: #17191b !important;
    background: linear-gradient(145deg, #e6e9eb, #bfc5ca) !important;
    border-color: transparent !important;
    box-shadow: none;
}
body :is(.btn-gold,.btn-outline,.contact-btn,.gallery-close,.skip-link) { border: 0; }
body :is(button,.btn-gold,.btn-outline,.contact-btn,.gallery-close,.skip-link,.icon-control,#siteHeader a[href^="tel:"]) :is(span,p,strong,small,svg,i) {
    color: inherit !important;
}
body :is(button,.btn-gold,.btn-outline,.contact-btn,.gallery-close,.icon-control,#siteHeader a[href^="tel:"]) {
    transition: background-color .18s ease, transform .18s ease, opacity .18s ease;
}
body :is(button,.btn-gold,.btn-outline,.contact-btn,.gallery-close,.icon-control,#siteHeader a[href^="tel:"]):not(:where(#submitBtn,.page-cta,#siteMenu *)):hover:not(:disabled):not(#map *):not(#streetMap *):not(.leaflet-container):not(.leaflet-container *):not(.gm-style *) {
    background: linear-gradient(145deg, #f0f2f3, #d0d5d9) !important;
}
body :is(button,.btn-gold,.btn-outline,.contact-btn,.gallery-close,.icon-control):active:not(:disabled) { transform: translateY(1px) scale(.985); }
body :is(button,.btn-gold,.btn-outline,.contact-btn,.gallery-close,.icon-control):focus-visible,
body a:focus-visible, body summary:focus-visible, body [role="option"]:focus-visible {
    outline: 2px solid #eff1f2;
    outline-offset: 3px;
}
body #submitBtn { min-height: 54px; letter-spacing: .055em; font-weight: 700; }
body .page-cta,
body .page-cta:hover,
body .page-cta:focus-visible {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    background: #25292c !important;
}
body #bookingForm #submitBtn,
body #bookingForm #submitBtn:hover:not(:disabled),
body #bookingForm #submitBtn:focus-visible {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    background: #25292c !important;
    border-color: rgba(232,235,238,.32) !important;
    box-shadow: 0 3px 12px rgba(0,0,0,.24);
}
body #bookingForm #submitBtn :is(#submitLabel,span,svg,i) {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}
body #bookingForm #reservationDetails > summary {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    background: #25292c !important;
}
body #bookingForm #reservationDetails > summary :is(span,svg,i) {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}
body #submitBtn:disabled { opacity: .58; cursor: wait; transform: none; }
body :is(.tab.active,.badge,.site-nav a[aria-current="page"],.payment-option:has(input:checked)) {
    background: rgba(220, 225, 229, .16) !important;
    border-color: rgba(225, 229, 232, .24) !important;
}
body .payment-option { transition: background-color .18s ease, transform .18s ease; }
body .payment-option:has(input:checked) { background-color: rgba(225, 229, 232, .16) !important; }
body .site-nav a { color: #b7bdc2 !important; }
body .site-nav a:hover { background: rgba(220, 225, 229, .09); color: #f0f2f3 !important; }
body .icon-control small { background: #24282b; color: #e3e6e8; }

body [id$="Modal"] { background: rgba(7, 8, 9, .76); }
body .settings-dialog::backdrop, body .gallery-lightbox::backdrop { background: rgba(7, 8, 9, .82); }
body .gallery-lightbox { background: #171a1c; }
body .customer-messages .customer-message,
body .customer-messages .customer-message button.message-content,
body .customer-messages .customer-message button.message-content:hover,
body .customer-messages .customer-message button.message-content:focus-visible {
    background: rgba(33, 36, 39, .96) !important;
    color: #edf0f1 !important;
    border-color: rgba(225, 229, 232, .2);
}
body .customer-messages .customer-message button.message-close,
body .customer-messages .customer-message button.message-enable-sound {
    background: #d3d8dc !important;
    color: #17191b !important;
}
body .customer-messages .customer-message button.message-close:hover,
body .customer-messages .customer-message button.message-enable-sound:hover { background: #edf0f1 !important; }
body .arrival-guarantee p, body .message-text { color: #c6cbd0 !important; }
body .trip-dialog { background: rgba(28, 31, 34, .98); border-color: rgba(225, 229, 232, .18); color: #e7e9eb; color-scheme: dark; }
body .trip-dialog :is(p,small,.trip-note) { color: #c2c7cb; }

body .vehicle-amenities { display: flex; flex-wrap: wrap; gap: 12px 20px; margin: 14px 0 0; padding: 0; list-style: none; }
body .vehicle-amenities li { display: flex; align-items: center; gap: 7px; font-size: 12px; color: #c4c9cd; }
body .vehicle-amenities svg { width: 18px; height: 18px; flex-shrink: 0; color: var(--brand-platinum); }
body .payment-option:has(input[name="timing"]) { color: var(--brand-ink); }
body .payment-logos .logo-tile { background: #f5f6f7; }

/* Veřejné informační stránky sdílejí průsvitnou paletu bez rámečků. */
.site-nav { max-width: 1280px; margin: auto; padding: 0 16px 12px; display: flex; flex-wrap: wrap; gap: 4px; }
.site-nav a { font-size: 12px; padding: 9px 12px; border-radius: 8px; text-decoration: none; }
.skip-link { position: fixed; left: 16px; top: -80px; z-index: 100; padding: 12px; }
.skip-link:focus { top: 12px; }
.page-main { max-width: 1056px; width: 100%; margin: auto; padding: 48px 24px 24px; flex: 1; }
.page-intro { padding: 0 0 32px; border-bottom: 1px solid rgba(220, 224, 227, .15); margin-bottom: 32px; }
.page-kicker { font-size: 11px; letter-spacing: .22em; text-transform: uppercase; margin-bottom: 12px; }
.page-main h1 { font-size: clamp(30px,5vw,52px); font-weight: 700; line-height: 1.12; margin-bottom: 16px; }
.page-main h2 { font-size: 22px; font-weight: 700; margin: 28px 0 14px; }
.page-main p, .page-main li { line-height: 1.85; color: #c4c9cd; }
.page-main p + p { margin-top: 16px; }
.page-main .glass-panel { padding: 28px; border-radius: 0; }
.page-main .gallery-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; padding: 0; }
.page-main .gallery-item img { aspect-ratio: 4/3; }
.page-main .reveal { opacity: 1; transform: none; }
.page-main .contact-btn { overflow-wrap: anywhere; }
.content-split { display: grid; grid-template-columns: 1.25fr 1fr; gap: 32px; align-items: start; }
.content-photo { width: 100%; border: 0; border-radius: 4px; }
.price-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.price-table th, .price-table td { padding: 16px 8px; text-align: left; border-bottom: 1px solid rgba(220, 224, 227, .13); vertical-align: top; }
.price-table th { color: #e0e4e7; }
.price-table td { color: #c4c9cd; }
.page-cta { display: inline-block; margin-top: 28px; padding: 14px 24px; border-radius: 10px; font-weight: bold; }
.legal-copy { max-width: 800px; }
.legal-copy p { margin-bottom: 18px; }
.table-scroll { overflow-x: auto; }

/* Rozbalovací nabídky zachovávají ovládání klávesnicí i viditelný fokus. */
#preferencesBar { width: 100%; padding: 8px max(16px, calc((100% - 1248px)/2)); color: #d9dde0; font: 12px Arial, sans-serif; display: flex; flex-direction: column; align-items: flex-end; }
.preferences-controls { display: flex; gap: 8px; align-items: center; }
#preferencesBar .icon-control { position: relative; display: grid; place-items: center; flex: none; width: 44px; height: 44px; margin: 0; padding: 0; border: 0 !important; border-radius: 12px; background: rgba(224,229,233,.075) !important; color: #e1e5e8 !important; cursor: pointer; }
.icon-control > span { display: flex; align-items: center; justify-content: center; color: inherit; font-size: 18px; font-weight: 600; }
.icon-control svg { width: 21px; height: 21px; }
.icon-control small { position: absolute; bottom: 2px; right: 3px; font-size: 8px; line-height: 12px; padding: 0 2px; border-radius: 3px; }
#preferencesBar .icon-control select { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.icon-control select option { color: #e7e9eb; background: #202326; }
#preferencesBar .icon-control:hover, #preferencesBar .icon-control:focus-within, .menu-control[aria-expanded="true"] { border-color: rgba(235,238,240,.38) !important; background: rgba(224,229,233,.15) !important; }
#preferencesBar .icon-control:focus-within { outline: 2px solid #e7e9eb; outline-offset: 2px; }
.site-nav[hidden], .menu-control[hidden], .site-menu[hidden], .ride-offer[hidden], .site-nav .hidden { display: none; }
.site-menu { max-height: 65vh; overflow-y: auto; width: min(100%, 360px); margin-top: 12px; padding: 12px; border: 0; border-radius: 14px; background: rgba(29,32,35,.96); box-shadow: 0 20px 50px rgba(0,0,0,.32); transform-origin: top right; }
.site-menu .site-nav { display: flex; flex-direction: column; gap: 4px; padding: 0 0 12px; margin: 0; }
.site-menu .site-nav a { font-size: 14px; padding: 12px; }
.site-menu .preferences-controls { padding: 12px 4px 4px; border-top: 1px solid rgba(225,229,232,.12); }
#preferencesBar > .menu-control:focus-visible { outline: 2px solid #e7e9eb; outline-offset: 3px; }

/* Rozbalená navigace je neprůhledná perleťová výjimka průsvitného vzhledu. */
body #siteMenu {
    background: #e9e7e2 !important;
    border: 0 !important;
    box-shadow: 0 18px 42px rgba(0,0,0,.34);
    color-scheme: light;
}
body #siteMenu .site-nav a,
body #siteMenu .site-nav a:hover,
body #siteMenu .site-nav a:focus-visible,
body #siteMenu .site-nav a[aria-current="page"],
body #siteMenu .preferences-controls,
body #siteMenu .icon-control,
body #siteMenu .icon-control :is(span,svg,small),
body #siteMenu .icon-control:focus-within,
body #siteMenu .icon-control:hover {
    color: #191a1b !important;
    -webkit-text-fill-color: #191a1b !important;
}
body #siteMenu .site-nav a:hover,
body #siteMenu .site-nav a:focus-visible,
body #siteMenu .site-nav a[aria-current="page"] {
    background: #dcd9d2 !important;
}
body #siteMenu .preferences-controls {
    border-color: #cbc8c1 !important;
}
body #siteMenu .icon-control,
body #siteMenu .icon-control:hover,
body #siteMenu .icon-control:focus-within {
    background: #f3f1ec !important;
    border: 0 !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}
body #siteMenu .icon-control small {
    background: #d8d5ce !important;
    color: #191a1b !important;
    -webkit-text-fill-color: #191a1b !important;
}
body #siteMenu .icon-control:focus-within,
body #siteMenu .site-nav a:focus-visible {
    outline: 2px solid #292b2d !important;
    outline-offset: 2px;
}
body #siteMenu .icon-control select {
    color: #191a1b !important;
    color-scheme: light !important;
}
body #siteMenu .icon-control select option,
body #siteMenu .icon-control select option:hover,
body #siteMenu .icon-control select option:focus,
body #siteMenu .icon-control select option:checked {
    color: #191a1b !important;
    background: #e9e7e2 !important;
    -webkit-text-fill-color: #191a1b !important;
}
.exchange-panel > label { display: block; margin-bottom: 8px; color: #c4c9cd; font-size: 13px; }
.exchange-panel select { width: 100%; max-width: 360px; padding: 12px; margin-bottom: 16px; border-radius: 8px; font: 14px Arial, sans-serif; }
.exchange-panel #exchangeNote { font-size: clamp(16px,3vw,22px); color: #e3e6e8; }
.exchange-panel .exchange-source { display: block; font-size: 12px; color: #a7adb3; line-height: 1.7; margin-top: 12px; }
.exchange-panel a.exchange-source { color: #d1d6da; text-decoration: underline; text-underline-offset: 3px; }

/* Recenze, galerie a doplňkové prvky webu. */
.reviews-viewport { overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 12px; }
.reviews-viewport:focus-visible { outline: 2px solid #dce1e4; outline-offset: 4px; }
.reviews-track, .reviews-group { display: flex; }
.reviews-group { gap: 24px; align-items: stretch; width: 100%; }
.review-card { flex: 0 0 100%; min-width: 0; box-sizing: border-box; margin: 0; padding: 24px; background: rgba(232,235,238,.045); color: var(--brand-ink); border: 0; border-radius: 0; scroll-snap-align: start; }
.review-card-linked { position: relative; }
.review-link::after { content: ""; position: absolute; inset: 0; }
.review-link:hover::after, .review-link:focus-visible::after { outline: 2px solid #dce1e4; outline-offset: 2px; }
.review-card img { width: 56px; height: 56px; flex-shrink: 0; object-fit: cover; border-radius: 50%; }
.gallery-grid { display: grid; grid-template-columns: repeat(2,minmax(0,160px)); justify-content: center; gap: 12px; }
.gallery-item { display: block; padding: 0; overflow: hidden; border: 0; border-radius: 4px; background: #191c1f; cursor: zoom-in; }
.gallery-item img { display: block; width: 100%; height: auto; aspect-ratio: 4/3; object-fit: cover; transition: transform 180ms ease; }
.gallery-item:hover img { transform: scale(1.035); }
.gallery-item:focus-visible, .gallery-close:focus-visible { outline: 2px solid #e7e9eb; outline-offset: 4px; }
.gallery-lightbox { position: fixed; inset: 0; box-sizing: border-box; width: 100%; max-width: none; height: 100%; height: 100dvh; max-height: none; margin: 0; padding: 64px 16px 24px; border: 0; color: #e7e9eb; }
.gallery-lightbox[open] { display: flex; align-items: center; justify-content: center; }
.gallery-lightbox img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.gallery-close { position: absolute; top: 12px; right: 16px; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; cursor: pointer; }

.sponsor-card { display: flex; align-items: center; justify-content: center; width: fit-content; margin: 24px auto 0; padding: 16px; border-radius: 10px; background: rgba(232,235,238,.045); }
.sponsor-card img { width: 116px; height: 136px; object-fit: contain; }
.sponsor-card:focus-visible { outline: 2px solid #e7e9eb; outline-offset: 4px; }
.driver-calendar { padding: 20px; margin-bottom: 24px; background: rgba(232,235,238,.045); border: 0; border-radius: 12px; }
.calendar-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 16px; }
.calendar-toolbar button { padding: 8px 12px; border-radius: 8px; }
.calendar-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 5px; }
.calendar-grid button { min-height: 58px; border-radius: 8px; padding: 6px 2px; font-variant-numeric: tabular-nums; }
.calendar-grid button[aria-pressed="true"] { outline: 2px solid #e7e9eb; outline-offset: 1px; }
.calendar-grid small { display: block; font-size: 10px; }
.calendar-weekday { text-align: center; font-size: 11px; padding-bottom: 8px; }
.calendar-agenda { margin-top: 20px; }
.calendar-agenda article { padding: 12px 0; border-top: 1px solid rgba(220,224,227,.14); }
.calendar-agenda p { margin: 4px 0; font-size: 13px; }

.standalone-result { margin-block: auto; width: calc(100% - 32px); }
.ride-offer {
    position: fixed; z-index: 45; right: max(16px, env(safe-area-inset-right)); bottom: max(16px, env(safe-area-inset-bottom));
    box-sizing: border-box; width: min(370px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); overflow-y: auto;
    padding: 24px; border: 0; border-radius: 16px;
    background: rgba(34,37,40,.96); box-shadow: 0 16px 48px rgba(0,0,0,.4); font-family: Arial, sans-serif;
}
body .ride-offer .ride-offer-heading { margin: 0 24px 10px 0; font-size: 22px; line-height: 1.25; font-weight: 800; color: #eef0f2 !important; }
.ride-offer-copy { margin: 0 0 18px; font-size: 14px; line-height: 1.5; color: #c4c9cd; }
.ride-offer button { cursor: pointer; }
.ride-offer-close { position: absolute; top: 6px; right: 6px; width: 44px; height: 44px; font-size: 24px; border: 0; background: transparent !important; color: #e7e9eb !important; }
.ride-offer-apply { width: 100%; min-height: 44px; padding: 10px 16px; border: 0; border-radius: 10px; font-weight: 700; }
.ride-offer button:focus-visible { outline: 3px solid #f0f2f3; outline-offset: 3px; }
.vehicle-gallery { margin-bottom: 12px; min-width: 0; }
.vehicle-gallery-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; border-radius: 8px; background: #1b1e20; scrollbar-width: thin; }
.vehicle-slide { flex: 0 0 100%; width: 100%; min-width: 0; height: auto; aspect-ratio: 4/3; object-fit: contain; scroll-snap-align: start; }
.vehicle-gallery-controls { display: flex; align-items: center; justify-content: center; gap: 12px; margin-top: 8px; font-size: 13px; color: #c4c9cd; }
.vehicle-gallery-track:focus-visible { outline: 2px solid #e7e9eb; outline-offset: 2px; }
#bookingForm :is(input,textarea,select), #phonePrefixSearch { font-size: 16px; }
.driver-portrait { width: min(100%,240px); }
.driver-portrait .content-photo { height: auto; aspect-ratio: 3/4; object-fit: cover; }
.content-photo { height: auto; }
body :is(#gdprModal,#termsModal) { z-index: 80; }
body :is(#gdprModal,#termsModal) > div { max-height: calc(100dvh - 32px); overscroll-behavior: contain; overflow-wrap: anywhere; }
#kontakt .contact-btn { border-radius: 12px; }

/* Google mapy používají vlastní styl; ovládání ani povinné označení se nefiltruje. */
#openBookingMap { background: #202326; border: 0 !important; }
body .gm-style :where(p,li,label,span,a,strong,small,button,div) { color: inherit; }
.maps-attribution { padding: 6px 10px; font: 500 12px Arial, sans-serif; text-align: right; }
#openBookingMap .booking-map-tiles { filter: grayscale(1) invert(.9) brightness(.8) contrast(.95); }
#openBookingMap .leaflet-bar { border: 1px solid #aeb4b9; box-shadow: none; }
#openBookingMap .leaflet-bar a { background: #fff; color: #27272a; border-bottom-color: #d4d4d8; }
#openBookingMap .leaflet-bar a span { color: #27272a !important; }
#openBookingMap .leaflet-bar a:hover { background: #f4f4f5; }
#openBookingMap .leaflet-bar a:focus-visible { outline: 2px solid #646b70; outline-offset: -2px; }
#openBookingMap .leaflet-control-attribution { background: #fff; color: #52525b; }
#openBookingMap .leaflet-control-attribution a { color: #41484d; }

@media (min-width: 640px) { .gallery-grid { grid-template-columns: repeat(auto-fit,minmax(0,160px)); } }
@media (max-width: 640px) {
    body #hlavni-obsah { padding: 24px 0; }
    body #hlavni-obsah > div.max-w-2xl > div > .glass-panel { padding: 0 16px; }
    .page-main { padding: 32px 16px 16px; }
    .page-main .glass-panel { padding: 20px; }
    .content-split { grid-template-columns: 1fr; }
    .page-main .gallery-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
    .site-nav { gap: 0; padding-bottom: 8px; }
    .site-nav a { font-size: 11px; padding: 8px; }
    #siteHeader { position: relative; }
}
@media (max-width: 480px) {
    #siteHeader .brand-home > div { display: none; }
    #siteHeader .header-actions { gap: 8px; }
    #siteHeader .header-actions > a { font-size: 11px; padding: 8px 10px; }
    #siteHeader .header-actions > a svg { width: 14px; height: 14px; }
    #kontakt { padding: 20px 16px; }
    #kontakt .contact-btn { gap: 10px; padding: 14px 10px; }
    #kontakt .contact-btn > span:first-child { width: 32px; height: 32px; }
    #kontakt .contact-btn .text-base { font-size: 14px; }
    #kontakt .contact-btn[href^="tel:"], #kontakt .contact-btn[href*="wa.me"] { white-space: nowrap; }
    #kontakt .contact-btn[href^="mailto:"] .text-base { word-break: normal; overflow-wrap: anywhere; font-size: 12px; }
}
@media (max-width: 380px) {
    #siteHeader > div { gap: 8px; }
    #siteHeader a[href^="tel:"] { font-size: 11px; padding: 8px; white-space: nowrap; }
    #siteHeader a[href^="tel:"] svg { display: none; }
}
html[data-view="mobile"] body { width: 100%; max-width: none; margin-inline: auto; }
html[data-view="mobile"] body #hlavni-obsah { padding: 24px 0; }
html[data-view="mobile"] body #hlavni-obsah > div.max-w-2xl > div > .glass-panel { padding: 0 16px; }
html[data-view="mobile"] .page-main { padding: 32px 16px 16px; }
html[data-view="mobile"] .content-split { grid-template-columns: 1fr; }
html[data-view="mobile"] .page-main .gallery-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
html[data-view="mobile"] .site-nav { gap: 0; padding-bottom: 8px; }
html[data-view="mobile"] .site-nav a { font-size: 11px; padding: 8px; }
html[data-view="mobile"] .md\:grid-cols-3 { grid-template-columns: 1fr; }
html[data-view="mobile"] .sm\:grid-cols-4 { grid-template-columns: repeat(2,minmax(0,1fr)); }
html[data-view="mobile"] .page-main h1 { font-size: 30px; }
html[data-view="mobile"] #siteHeader { position: relative; }
html[data-view="mobile"] #siteHeader .brand-home > div { display: none; }

/* Rozbalení má krátký nástup bez zásahu do stávajícího JavaScriptu. */
@keyframes platinum-reveal {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: translateY(0); }
}
body .site-menu:not([hidden]),
body details[open] > :not(summary),
body #scheduleWrap:not(.hidden),
body #phonePrefixPanel:not(.hidden) {
    animation: platinum-reveal 220ms ease-out both;
}
body .accordion-icon { transition: transform 220ms ease; }
body .menu-control[aria-expanded="true"] svg { transform: rotate(90deg); }
body .menu-control svg { transition: transform 220ms ease; }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
@media (forced-colors: active) {
    body .trip-price-row #priceVal, body #rides .ride-price .gold-text { color: CanvasText !important; }
}
