/* ==========================================================================
   Inter, self-hosted and subset to the characters this site actually uses.
   Two files, 39 KB total, instead of four Google-hosted weights plus a DNS
   lookup and TLS handshake to two extra domains. Variable font, so the
   in-between weights the design uses (520, 550, 620, 650) render properly
   rather than being rounded to the nearest static cut.
   ========================================================================== */
@font-face{
  font-family:'Inter';
  font-style:normal;
  font-display:swap;
  font-weight:100 900;
  src:url(fonts/inter-latin.woff2) format('woff2-variations');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Inter';
  font-style:normal;
  font-display:swap;
  font-weight:100 900;
  src:url(fonts/inter-latin-ext.woff2) format('woff2-variations');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* ==========================================================================
   City Taxi Bratislava — design system (same as transferbratislava.sk)
   Palette: Midnight + Gold
   ========================================================================== */

:root{
  --bg:#0B1020;
  --bg-2:#0E1428;
  --card:#141A2E;
  --card-2:#1A2140;
  --line:rgba(255,255,255,.09);
  --line-strong:rgba(255,255,255,.16);

  /* sampled from the Transfer Bratislava logo — antique bronze-gold */
  --gold:#C0A063;
  --gold-2:#DCC084;
  --gold-3:#97753C;
  --gold-4:#E3CB96;
  --gold-dim:rgba(192,160,99,.12);

  --text:#F5F6FA;
  --muted:#A3AAC0;
  --muted-2:#7C8399;

  --ok:#4ADE80;

  --radius:18px;
  --radius-sm:12px;
  --radius-lg:26px;

  --maxw:1180px;
  --shadow:0 20px 60px -20px rgba(0,0,0,.7);
  --shadow-gold:0 14px 40px -14px rgba(192,160,99,.45);

  --ff:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
}

*,*::before,*::after{box-sizing:border-box}

html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}

body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--ff);
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

h1,h2,h3,h4{
  margin:0 0 .5em;
  line-height:1.12;
  letter-spacing:-.025em;
  font-weight:700;
}
h1{font-size:clamp(2.1rem,5.2vw,3.9rem)}
h2{font-size:clamp(1.65rem,3.4vw,2.6rem)}
h3{font-size:clamp(1.1rem,1.9vw,1.35rem);letter-spacing:-.015em}
p{margin:0 0 1rem}

::selection{background:var(--gold);color:#0B1020}

:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:6px}

/* ---------- layout ---------- */
.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 22px}
.section{padding:clamp(56px,8vw,104px) 0;position:relative}
.section--tight{padding:clamp(40px,5vw,64px) 0}
.section--alt{background:linear-gradient(180deg,var(--bg) 0%,var(--bg-2) 50%,var(--bg) 100%)}

.grid{display:grid;gap:22px}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:940px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}

.center{text-align:center}
.sec-head{max-width:720px;margin:0 0 44px}
.sec-head.center{margin-left:auto;margin-right:auto}
.sec-head p{color:var(--muted);font-size:1.05rem;margin:0}

/* ---------- eyebrow / badges ---------- */
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold);margin-bottom:16px;
}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--gold);opacity:.7}

.badge{
  display:inline-flex;align-items:center;gap:8px;
  padding:7px 14px;border-radius:999px;
  background:var(--gold-dim);border:1px solid rgba(192,160,99,.34);
  color:var(--gold-2);font-size:.8rem;font-weight:600;white-space:nowrap;
}
.badge--plain{background:rgba(255,255,255,.05);border-color:var(--line);color:var(--muted)}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:14px 26px;border-radius:999px;border:1px solid transparent;
  font-weight:650;font-size:.98rem;letter-spacing:-.01em;cursor:pointer;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease;
  font-family:inherit;text-align:center;
}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}

.btn-gold{
  background:linear-gradient(135deg,var(--gold-4),var(--gold) 58%,#A88044);
  color:#14100A;box-shadow:var(--shadow-gold);
}
.btn-gold:hover{box-shadow:0 18px 48px -12px rgba(192,160,99,.6)}

.btn-ghost{background:rgba(255,255,255,.04);border-color:var(--line-strong);color:var(--text)}
.btn-ghost:hover{background:rgba(255,255,255,.09);border-color:var(--gold)}

.btn-wa{background:#25D366;color:#06240F}
.btn-block{width:100%}
.btn-sm{padding:10px 18px;font-size:.88rem}

.btn-row{display:flex;flex-wrap:wrap;gap:14px}

/* inline icon sizing — must come after .btn so nothing renders full-bleed */
.btn svg{width:18px;height:18px;flex-shrink:0}
.badge svg{width:13px;height:13px;flex-shrink:0}
.crumbs svg{width:12px;height:12px}

/* ---------- header ---------- */
.header{
  position:sticky;top:0;z-index:70;
  background:rgba(11,16,32,.72);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid transparent;
  transition:border-color .25s ease,background .25s ease;
}
.header.is-stuck{border-bottom-color:var(--line);background:rgba(11,16,32,.92)}
.header > .wrap{display:flex;align-items:center;gap:18px;height:74px}
.mobile-nav > .wrap{display:block}

.logo{display:flex;align-items:center;gap:11px;font-weight:700;letter-spacing:-.03em;font-size:1.06rem;flex-shrink:0}
.logo-mark{
  width:38px;height:38px;border-radius:11px;flex-shrink:0;
  background:linear-gradient(135deg,var(--gold-2),var(--gold-3));
  display:grid;place-items:center;color:#14100A;
}
.logo-mark svg{width:21px;height:21px}
.logo-img{height:54px;width:auto;display:block}
.footer .logo-img{height:72px}
@media(max-width:420px){.logo-img{height:44px}}
.logo b{color:var(--gold-2);font-weight:700}
.logo-text{display:block;line-height:1.1}
.logo-text small{display:block;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-2);font-weight:600;line-height:1;margin-top:4px}

.nav{display:flex;align-items:center;gap:4px;margin-left:auto}
.nav a{
  padding:9px 13px;border-radius:9px;font-size:.92rem;font-weight:520;color:var(--muted);
  transition:color .16s ease,background .16s ease;white-space:nowrap;
}
.nav a:hover{color:var(--text);background:rgba(255,255,255,.05)}
.nav a.is-active{color:var(--gold-2)}

.head-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}
.head-tel{display:inline-flex;align-items:center;gap:8px;font-weight:650;font-size:.93rem;color:var(--text);padding:9px 14px;border-radius:999px;border:1px solid var(--line-strong)}
.head-tel:hover{border-color:var(--gold);color:var(--gold-2)}
.head-tel svg{width:15px;height:15px;color:var(--gold)}
.head-tel span{white-space:nowrap}
/* Nav + language switch + full WhatsApp number do not fit between the
   burger breakpoint and ~1300px, so show just "WhatsApp" there. */
@media(min-width:1081px) and (max-width:1300px){.head-tel-num{display:none}}

/* language switcher */
.lang{display:flex;gap:2px;background:rgba(255,255,255,.05);border:1px solid var(--line);border-radius:999px;padding:3px}
.lang a{
  font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  padding:5px 10px;border-radius:999px;color:var(--muted-2);transition:.16s ease;
}
.lang a:hover{color:var(--text)}
.lang a.is-active{background:var(--gold);color:#14100A}

/* mobile nav */
.burger{display:none;width:42px;height:42px;border-radius:11px;border:1px solid var(--line-strong);background:rgba(255,255,255,.04);cursor:pointer;padding:0;place-items:center}
.burger svg{width:20px;height:20px;color:var(--text)}
.mobile-nav{display:none;border-top:1px solid var(--line);background:var(--bg-2);padding:14px 0 22px}
.mobile-nav.is-open{display:block}
.mobile-nav a{display:block;padding:12px 4px;border-bottom:1px solid var(--line);font-weight:550;color:var(--muted)}
.mobile-nav a:last-of-type{border-bottom:0}
.mobile-nav .btn{margin-top:16px}

@media(max-width:1080px){
  .nav{display:none}
  .burger{display:grid}
  .head-actions{margin-left:auto}
}
.lang-mobile{display:none}
@media(max-width:820px){
  .header .head-actions .lang{display:none}
  .head-tel{display:none}
  .mobile-nav .lang-mobile{display:inline-flex;margin-top:16px}
}
@media(max-width:420px){
  .header .logo-text small{display:none}
}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;padding:clamp(48px,7vw,86px) 0 clamp(56px,7vw,96px)}
.hero::before{
  content:"";position:absolute;inset:-30% -10% auto -10%;height:820px;pointer-events:none;
  background:
    radial-gradient(680px 380px at 18% 20%,rgba(192,160,99,.16),transparent 62%),
    radial-gradient(760px 420px at 85% 8%,rgba(80,120,255,.13),transparent 60%);
}
.hero::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--line-strong),transparent);
}
.hero .wrap{position:relative;z-index:2}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:start}
@media(max-width:980px){.hero-grid{grid-template-columns:1fr;gap:36px}}

.hero h1{margin-bottom:20px}
.hero h1 em{font-style:normal;background:linear-gradient(120deg,var(--gold-2),var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-lead{font-size:clamp(1.02rem,1.6vw,1.18rem);color:var(--muted);max-width:56ch;margin-bottom:28px}

.hero-points{list-style:none;padding:0;margin:0 0 30px;display:grid;gap:11px}
.hero-points li{display:flex;gap:11px;align-items:flex-start;color:var(--text);font-size:.97rem}
.hero-points svg{width:19px;height:19px;flex-shrink:0;margin-top:3px;color:var(--gold)}

.trust{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px;padding-top:26px;border-top:1px solid var(--line)}

/* ---------- booking form ---------- */
.book{
  background:linear-gradient(165deg,rgba(26,33,64,.92),rgba(20,26,46,.96));
  border:1px solid var(--line-strong);border-radius:var(--radius-lg);
  padding:28px;box-shadow:var(--shadow);position:relative;
}
.book::before{
  content:"";position:absolute;inset:0;border-radius:var(--radius-lg);padding:1px;
  background:linear-gradient(160deg,rgba(192,160,99,.5),transparent 42%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;
}
.book h2{font-size:1.5rem;margin-bottom:6px}
.book .book-sub{color:var(--muted);font-size:.9rem;margin-bottom:22px}

.field{margin-bottom:14px}
.field label{display:block;font-size:.78rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
.field input,.field select,.field textarea{
  width:100%;padding:13px 15px;border-radius:var(--radius-sm);
  background:rgba(11,16,32,.75);border:1px solid var(--line-strong);
  color:var(--text);font-family:inherit;font-size:.96rem;transition:border-color .16s ease,box-shadow .16s ease;
}
.field textarea{resize:vertical;min-height:84px}
.field input::placeholder,.field textarea::placeholder{color:var(--muted-2)}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(192,160,99,.16);
}
.field select{appearance:none;-webkit-appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A3AAC0' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;background-size:17px;padding-right:42px;
}
.field select option{background:#141A2E;color:var(--text)}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:420px){.field-row{grid-template-columns:1fr}}

.form-note{font-size:.79rem;color:var(--muted-2);margin:14px 0 0;line-height:1.55}
.form-note a{color:var(--gold-2);text-decoration:underline;text-underline-offset:2px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}

.form-msg{margin-top:14px;padding:13px 16px;border-radius:var(--radius-sm);font-size:.9rem;display:none}
.form-msg.is-ok{display:block;background:rgba(74,222,128,.12);border:1px solid rgba(74,222,128,.35);color:#9CF3BE}
.form-msg.is-err{display:block;background:rgba(248,113,113,.12);border:1px solid rgba(248,113,113,.35);color:#FCA5A5}

/* ---------- cards ---------- */
.card{
  background:linear-gradient(165deg,var(--card),rgba(20,26,46,.6));
  border:1px solid var(--line);border-radius:var(--radius);padding:26px;
  transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease;
  height:100%;display:flex;flex-direction:column;
}
.card:hover{transform:translateY(-4px);border-color:rgba(192,160,99,.4);box-shadow:var(--shadow)}
.card h3{margin-bottom:9px}
.card p{color:var(--muted);font-size:.94rem;margin-bottom:0}
.card .card-link{margin-top:auto;padding-top:18px;color:var(--gold-2);font-weight:600;font-size:.9rem;display:inline-flex;align-items:center;gap:7px}
.card .card-link svg{width:15px;height:15px;transition:transform .18s ease}
.card:hover .card-link svg{transform:translateX(4px)}

.icon-box{
  width:48px;height:48px;border-radius:14px;display:grid;place-items:center;margin-bottom:18px;
  background:var(--gold-dim);border:1px solid rgba(192,160,99,.3);color:var(--gold-2);
}
.icon-box svg{width:23px;height:23px}

/* ---------- route price cards ---------- */
.route-card{
  background:linear-gradient(165deg,var(--card),rgba(20,26,46,.55));
  border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px;
  display:flex;flex-direction:column;gap:6px;transition:.22s ease;height:100%;
}
.route-card:hover{border-color:rgba(192,160,99,.45);transform:translateY(-4px)}
.route-card .r-name{font-weight:700;font-size:1.12rem;letter-spacing:-.02em}
.route-card .r-meta{font-size:.83rem;color:var(--muted-2)}
.route-card .r-price{margin-top:12px;font-size:1.9rem;font-weight:700;color:var(--gold-2);letter-spacing:-.03em;line-height:1}
.route-card .r-price small{font-size:.78rem;font-weight:500;color:var(--muted);letter-spacing:0;display:block;margin-top:6px}
.route-card .r-go{margin-top:16px;font-size:.86rem;font-weight:600;color:var(--gold-2);display:inline-flex;gap:6px;align-items:center}
.route-card .r-go svg{width:15px;height:15px;flex-shrink:0;transition:transform .18s ease}
.route-card:hover .r-go svg{transform:translateX(4px)}

/* ---------- price table ---------- */
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--card)}
table.price{width:100%;border-collapse:collapse;min-width:560px}
table.price th,table.price td{padding:16px 20px;text-align:left;border-bottom:1px solid var(--line)}
table.price thead th{
  font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);
  font-weight:600;background:rgba(255,255,255,.03);
}
table.price tbody tr:last-child td{border-bottom:0}
table.price tbody tr:hover{background:rgba(192,160,99,.05)}
table.price .dest{font-weight:650;font-size:1rem}
table.price .dest small{display:block;font-weight:400;font-size:.8rem;color:var(--muted-2);margin-top:2px}
table.price .p{font-weight:700;color:var(--gold-2);font-size:1.06rem;white-space:nowrap}

.notes{list-style:none;padding:0;margin:26px 0 0;display:grid;gap:12px}
.notes li{display:flex;gap:12px;align-items:flex-start;color:var(--muted);font-size:.93rem}
.notes svg{width:18px;height:18px;flex-shrink:0;margin-top:4px;color:var(--gold)}

/* ---------- fleet ---------- */
.fleet-card{
  background:linear-gradient(165deg,var(--card-2),var(--card));
  border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;height:100%;
  display:flex;flex-direction:column;
}
.fleet-visual{
  height:170px;position:relative;
  background:
    radial-gradient(420px 150px at 50% 118%,rgba(192,160,99,.34),transparent 70%),
    linear-gradient(160deg,#1C2444,#10162B);
  display:grid;place-items:center;border-bottom:1px solid var(--line);
}
.fleet-visual svg{width:150px;height:auto;color:rgba(245,246,250,.9)}
.fleet-body{padding:24px;display:flex;flex-direction:column;flex:1}
.fleet-body h3{margin-bottom:4px}
.fleet-cap{font-size:.85rem;color:var(--gold-2);font-weight:600;margin-bottom:12px}
.fleet-body ul{list-style:none;padding:0;margin:0 0 0;display:grid;gap:8px}
.fleet-body li{display:flex;gap:9px;font-size:.9rem;color:var(--muted)}
.fleet-body li svg{width:16px;height:16px;flex-shrink:0;margin-top:3px;color:var(--gold)}

/* ---------- stats ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.stats div{background:var(--card);padding:26px 20px;text-align:center}
.stats b{display:block;font-size:clamp(1.6rem,3vw,2.3rem);color:var(--gold-2);letter-spacing:-.03em;line-height:1}
.stats span{display:block;margin-top:8px;font-size:.83rem;color:var(--muted)}
@media(max-width:700px){.stats{grid-template-columns:repeat(2,1fr)}}

/* ---------- steps ---------- */
.steps{counter-reset:s;display:grid;gap:22px;grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.steps{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.steps{grid-template-columns:1fr}}
.step{position:relative;padding-top:52px}
.step::before{
  counter-increment:s;content:counter(s);
  position:absolute;top:0;left:0;width:40px;height:40px;border-radius:12px;
  display:grid;place-items:center;font-weight:700;font-size:1rem;
  background:var(--gold-dim);border:1px solid rgba(192,160,99,.34);color:var(--gold-2);
}
.step h3{font-size:1.06rem;margin-bottom:6px}
.step p{color:var(--muted);font-size:.92rem;margin:0}

/* ---------- FAQ ---------- */
.faq{display:grid;gap:12px;max-width:860px;margin:0 auto}
.faq details{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius-sm);
  padding:0;overflow:hidden;transition:border-color .2s ease;
}
.faq details[open]{border-color:rgba(192,160,99,.38)}
.faq summary{
  list-style:none;cursor:pointer;padding:19px 54px 19px 22px;position:relative;
  font-weight:620;font-size:1rem;letter-spacing:-.01em;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"";position:absolute;right:22px;top:50%;width:11px;height:11px;
  border-right:2px solid var(--gold);border-bottom:2px solid var(--gold);
  transform:translateY(-70%) rotate(45deg);transition:transform .22s ease;
}
.faq details[open] summary::after{transform:translateY(-25%) rotate(-135deg)}
.faq .faq-a{padding:0 22px 20px;color:var(--muted);font-size:.94rem}
.faq .faq-a p:last-child{margin-bottom:0}

/* ---------- CTA band ---------- */
.cta-band{
  position:relative;overflow:hidden;border-radius:var(--radius-lg);
  background:linear-gradient(140deg,#1A2140,#101731 60%);
  border:1px solid var(--line-strong);padding:clamp(32px,5vw,56px);
  display:flex;flex-wrap:wrap;gap:26px;align-items:center;justify-content:space-between;
}
.cta-band::before{
  content:"";position:absolute;inset:auto -10% -60% 40%;height:320px;
  background:radial-gradient(closest-side,rgba(192,160,99,.3),transparent);pointer-events:none;
}
.cta-band > *{position:relative;z-index:1}
.cta-band h2{margin-bottom:8px}
.cta-band p{color:var(--muted);margin:0;max-width:52ch}

/* ---------- contact ---------- */
.contact-item{display:flex;gap:16px;align-items:flex-start;padding:20px 0;border-bottom:1px solid var(--line)}
.contact-item:last-child{border-bottom:0}
.contact-item .icon-box{margin-bottom:0;width:42px;height:42px;border-radius:12px;flex-shrink:0}
.contact-item .icon-box svg{width:19px;height:19px}
.contact-item .ci-label{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2);font-weight:600}
.contact-item .ci-value{font-size:1.08rem;font-weight:650;letter-spacing:-.015em}
.contact-item .ci-value a:hover{color:var(--gold-2)}
.contact-item .ci-note{font-size:.85rem;color:var(--muted)}

.legal-box{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px}
.legal-box dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:10px 22px;font-size:.93rem}
.legal-box dt{color:var(--muted-2);font-weight:500}
.legal-box dd{margin:0;font-weight:600}

/* ---------- breadcrumbs ---------- */
.crumbs{font-size:.83rem;color:var(--muted-2);padding:20px 0 0}
.crumbs a:hover{color:var(--gold-2)}
.crumbs span{margin:0 8px;opacity:.5}

/* ---------- prose ---------- */
.prose{max-width:74ch}
.prose h2{margin-top:2em}
.prose h3{margin-top:1.6em}
.prose p,.prose li{color:var(--muted);font-size:1rem}
.prose strong{color:var(--text);font-weight:650}
.prose ul{padding-left:20px;display:grid;gap:8px;margin-bottom:1.4rem}
.prose a{color:var(--gold-2);text-decoration:underline;text-underline-offset:3px}

/* ---------- footer ---------- */
.footer{border-top:1px solid var(--line);background:var(--bg-2);padding:56px 0 0;margin-top:0}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:36px;padding-bottom:44px}
@media(max-width:900px){.footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:540px){.footer-grid{grid-template-columns:1fr}}
.footer h4{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2);margin-bottom:16px;font-weight:600}
.footer ul{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.footer a{color:var(--muted);font-size:.93rem}
.footer a:hover{color:var(--gold-2)}
.footer .f-about{color:var(--muted);font-size:.92rem;max-width:38ch;margin:16px 0 0}
.footer-bottom{
  border-top:1px solid var(--line);padding:22px 0 30px;
  display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;
  font-size:.84rem;color:var(--muted-2);
}
.footer-bottom a:hover{color:var(--gold-2)}

/* ---------- floating mobile bar ---------- */
.mobile-bar{
  display:none;position:fixed;left:0;right:0;bottom:0;z-index:80;
  background:rgba(11,16,32,.94);backdrop-filter:blur(14px);
  border-top:1px solid var(--line);padding:10px 14px calc(10px + env(safe-area-inset-bottom));
  gap:10px;
}
.mobile-bar .btn{flex:1;padding:13px 10px;font-size:.9rem}
@media(max-width:760px){
  .mobile-bar{display:flex}
  body{padding-bottom:78px}
}

/* ---------- utility ---------- */
.mt-0{margin-top:0}
.mb-0{margin-bottom:0}
.muted{color:var(--muted)}
.nowrap{white-space:nowrap}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

/* reCAPTCHA v3 — badge hidden, replaced by the notice Google requires */
.grecaptcha-badge{visibility:hidden!important}
.form-note--captcha{margin-top:8px;font-size:.74rem;opacity:.8}

/* ==========================================================================
   Date & time pickers
   Native <input type="date"> and <input type="time"> are small, inconsistent
   between browsers and genuinely hard to operate — especially the time
   spinner. These replace them with large, obvious controls.
   ========================================================================== */

.dt{position:relative}

.dt-btn{
  width:100%;display:flex;align-items:center;gap:12px;
  padding:15px 16px;border-radius:var(--radius-sm);cursor:pointer;
  background:rgba(11,16,32,.75);border:1px solid var(--line-strong);
  color:var(--text);font-family:inherit;font-size:1.02rem;font-weight:550;
  text-align:left;transition:border-color .16s ease,box-shadow .16s ease;
}
.dt-btn:hover{border-color:var(--gold)}
.dt-btn[aria-expanded="true"]{border-color:var(--gold);box-shadow:0 0 0 3px rgba(192,160,99,.16)}
.dt-btn svg{width:20px;height:20px;flex-shrink:0;color:var(--gold)}
.dt-btn .dt-caret{margin-left:auto;width:14px;height:14px;color:var(--muted)}
.dt-btn.is-empty .dt-value{color:var(--muted-2);font-weight:400}
.dt-btn.is-invalid{border-color:#F87171}

/* quick-choice chips under the date field */
.dt-quick{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.dt-quick button{
  padding:9px 15px;border-radius:999px;cursor:pointer;font-family:inherit;
  font-size:.88rem;font-weight:600;
  background:rgba(255,255,255,.05);border:1px solid var(--line-strong);color:var(--muted);
  transition:.16s ease;
}
.dt-quick button:hover{border-color:var(--gold);color:var(--gold-2)}
.dt-quick button.is-active{background:var(--gold);border-color:var(--gold);color:#14100A}

/* calendar popover */
.dt-pop{
  /* Stretch to the width of the field itself — that way it can never
     overflow the viewport, whatever the screen size. */
  position:absolute;z-index:60;top:calc(100% + 8px);left:0;right:0;
  background:#161D33;border:1px solid var(--line-strong);border-radius:var(--radius);
  box-shadow:0 26px 70px -18px rgba(0,0,0,.85);padding:16px;
}
.dt-pop[hidden]{display:none}
.dt-head{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.dt-head .dt-title{flex:1;text-align:center;font-weight:700;font-size:1.02rem;letter-spacing:-.02em}
.dt-nav{
  width:40px;height:40px;flex-shrink:0;border-radius:11px;cursor:pointer;
  background:rgba(255,255,255,.05);border:1px solid var(--line-strong);color:var(--text);
  display:grid;place-items:center;
}
.dt-nav:hover:not(:disabled){border-color:var(--gold);color:var(--gold-2)}
.dt-nav:disabled{opacity:.3;cursor:not-allowed}
.dt-nav svg{width:16px;height:16px}

.dt-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.dt-grid .dt-dow{
  text-align:center;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--muted-2);padding-bottom:6px;
}
.dt-grid button{
  aspect-ratio:1;min-height:44px;border-radius:10px;cursor:pointer;
  background:transparent;border:1px solid transparent;color:var(--text);
  font-family:inherit;font-size:.98rem;font-weight:550;transition:.12s ease;
}
.dt-grid button:hover:not(:disabled){background:rgba(192,160,99,.16);border-color:var(--gold)}
.dt-grid button:disabled{color:var(--muted-2);opacity:.35;cursor:not-allowed}
.dt-grid button.is-today{border-color:var(--line-strong)}
.dt-grid button.is-selected{background:var(--gold);border-color:var(--gold);color:#14100A;font-weight:700}
.dt-grid .dt-empty{visibility:hidden}

/* time: two large dropdowns, no spinner */
.tpick{display:flex;align-items:flex-end;gap:10px}
.tpick .t-col{flex:1;min-width:0}
.tpick .t-sub{
  display:block;font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--muted-2);margin-bottom:6px;
}
.tpick select{
  width:100%;padding:15px 40px 15px 16px;border-radius:var(--radius-sm);
  background:rgba(11,16,32,.75);border:1px solid var(--line-strong);color:var(--text);
  font-family:inherit;font-size:1.15rem;font-weight:650;cursor:pointer;
  appearance:none;-webkit-appearance:none;letter-spacing:.02em;
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A3AAC0' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 13px center;background-size:18px;
}
.tpick select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(192,160,99,.16)}
.tpick select.is-invalid{border-color:#F87171}
.tpick select option{background:#141A2E;color:var(--text);font-size:1rem}
.tpick .t-colon{font-size:1.4rem;font-weight:700;color:var(--muted);padding-bottom:14px}

.field-error{display:none;margin-top:7px;font-size:.82rem;color:#FCA5A5}
.field-error.is-on{display:block}

@media(max-width:560px){
  .book{padding:20px}
  .dt-pop{padding:12px}
  .dt-grid button{min-height:40px;font-size:.94rem}
}

/* ==========================================================================
   Mobile refinements
   ========================================================================== */

/* Long addresses and e-mails must never push the layout wider than the
   screen — this was overflowing the contact page at 320–360px. */
.ci-value, .ci-note, .legal-box dd, .prose p, .prose li, .footer a{
  overflow-wrap:anywhere;
  word-break:break-word;
}
.contact-item{min-width:0}
.contact-item > div{min-width:0;flex:1}
.legal-box dl{grid-template-columns:minmax(0,auto) minmax(0,1fr)}

/* Phone and e-mail on the contact page are the two things people tap most —
   give them a real target instead of a 21px line of text. */
.contact-item .ci-value a{
  display:inline-block;
  padding:7px 0;
  min-height:36px;
  text-decoration:underline;
  text-decoration-color:rgba(192,160,99,.45);
  text-underline-offset:4px;
}
.form-note a{display:inline-block;padding:3px 0}

@media(max-width:480px){
  .wrap{padding:0 16px}
  .section{padding:clamp(44px,9vw,72px) 0}
  h1{font-size:clamp(1.95rem,8.2vw,2.6rem)}
  h2{font-size:clamp(1.45rem,6.2vw,1.9rem)}

  .hero{padding:28px 0 44px}
  .hero-lead{font-size:1rem}
  .btn{width:100%}
  .btn-row{gap:10px}
  .btn-row .btn{flex:1 1 100%}

  .card, .route-card, .legal-box{padding:20px}
  .cta-band{padding:26px 20px}
  .fleet-body{padding:20px}
  .trust{gap:8px;padding-top:20px;margin-top:22px}
  .badge{font-size:.76rem;padding:6px 12px}

  .stats div{padding:20px 12px}
  table.price th, table.price td{padding:13px 14px}

  .contact-item{padding:16px 0;gap:13px}
  .legal-box dl{gap:8px 16px;font-size:.88rem}
}

@media(max-width:360px){
  .wrap{padding:0 14px}
  .book{padding:16px}
  .dt-grid button{min-height:36px;font-size:.9rem}
  .dt-quick button{padding:8px 12px;font-size:.84rem}
  .tpick select{font-size:1.05rem;padding:13px 34px 13px 12px}
  .mobile-bar .btn{font-size:.85rem;padding:12px 6px}
}

/* Landscape phones: the sticky bottom bar eats too much of a short screen. */
@media(max-height:460px) and (orientation:landscape){
  .mobile-bar{display:none}
  body{padding-bottom:0}
}

/* Two columns of label + value get too narrow for an e-mail address on a
   small phone, and it breaks mid-word. Stack them instead. */
@media(max-width:520px){
  .legal-box dl{grid-template-columns:1fr;gap:0}
  .legal-box dt{margin-top:14px;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase}
  .legal-box dt:first-child{margin-top:0}
  .legal-box dd{margin-bottom:0;overflow-wrap:normal;word-break:normal}
}

/* --------------------------------------------------------------------------
   Date picker on phones
   As an absolutely-positioned popover the calendar covered the Dnes/Zajtra
   buttons and the time dropdowns, and its last week row ended up underneath
   the fixed call bar where it could not be tapped. On small screens it opens
   inline instead: the form grows, nothing is covered, everything reachable.
   -------------------------------------------------------------------------- */
/* Narrow screens, and also short ones — a phone held sideways is 780px wide
   but only ~360px tall, where a floating calendar covers the whole form. */
@media(max-width:640px),(max-height:620px){
  .dt-pop{
    position:static;
    width:auto;
    margin-top:10px;
    background:#141B30;
    box-shadow:none;
  }
  .dt-grid button{min-height:42px}
}


/* ==========================================================================
   City Taxi additions — built only from the tokens above
   ========================================================================== */

/* tariff tiles reuse .route-card but are not links */
.tariff-card:hover{transform:none;border-color:var(--line)}
.tariff-card .r-price{margin-top:14px}

/* partner hotels */
.hotels{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;max-width:900px;margin:0 auto}
.hotel{
  padding:12px 20px;border-radius:var(--radius-sm);
  background:var(--card);border:1px solid var(--line);
  font-weight:650;letter-spacing:-.01em;color:var(--text);font-size:.98rem;white-space:nowrap;
}
.hotel--more{background:transparent;border-style:dashed;color:var(--muted);font-weight:500}

/* quiet CTA band (sister service) */
.cta-band--quiet{background:linear-gradient(140deg,var(--card),var(--bg-2) 70%)}
.cta-band--quiet::before{opacity:.45}

/* fair-price note */
.fair{flex-direction:row;gap:20px;align-items:flex-start}
.fair .icon-box{flex-shrink:0;margin-bottom:0}
.fair:hover{transform:none;box-shadow:none;border-color:var(--line)}
@media(max-width:560px){.fair{flex-direction:column}}

/* price table with two columns */
table.price--tariff{min-width:0}
table.price--tariff td.p{text-align:right}
table.price--tariff th:last-child{text-align:right}

/* ---------- fare calculator ---------- */
.calc{
  display:grid;grid-template-columns:1.1fr .9fr;gap:0;
  border:1px solid var(--line-strong);border-radius:var(--radius-lg);overflow:hidden;
  background:linear-gradient(165deg,rgba(26,33,64,.92),rgba(20,26,46,.96));box-shadow:var(--shadow);
  scroll-margin-top:100px;
}
.calc-form{padding:clamp(24px,4vw,40px)}
.calc-form h2{margin-bottom:8px}
.calc-form > p{margin-bottom:24px}
.calc .label{display:block;font-size:.78rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
.seg{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.seg label{position:relative;margin:0;cursor:pointer;display:block;text-transform:none;letter-spacing:0}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg span{
  display:block;text-align:center;padding:12px 10px;border-radius:var(--radius-sm);
  border:1px solid var(--line-strong);background:rgba(11,16,32,.75);color:var(--muted);
  font-size:.92rem;font-weight:600;transition:.16s ease;
}
.seg input:checked + span{background:var(--gold-dim);border-color:var(--gold);color:var(--gold-2)}
.seg input:focus-visible + span{outline:2px solid var(--gold);outline-offset:2px}
.calc-out{
  padding:clamp(24px,4vw,40px);background:rgba(11,16,32,.55);border-left:1px solid var(--line);
  display:flex;flex-direction:column;
}
.calc-label{font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.calc-price{font-size:clamp(2.6rem,6vw,3.6rem);font-weight:700;letter-spacing:-.035em;color:var(--gold-2);line-height:1.05;margin:10px 0 20px}
.calc-lines{list-style:none;padding:0;margin:0;display:grid;gap:10px;border-top:1px solid var(--line);padding-top:18px}
.calc-lines li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;font-size:.9rem;color:var(--muted)}
.calc-lines b{color:var(--text);font-weight:650;white-space:nowrap}
.calc-note{margin:auto 0 0;padding-top:20px;font-size:.8rem;color:var(--muted-2)}
.calc-long{margin:14px 0 0;padding:12px 14px;border-radius:var(--radius-sm);background:var(--gold-dim);border:1px solid rgba(192,160,99,.34);font-size:.88rem;color:var(--gold-4)}
.calc-long a{color:var(--gold-2);text-decoration:underline;text-underline-offset:2px}
@media(max-width:860px){.calc{grid-template-columns:1fr}.calc-out{border-left:0;border-top:1px solid var(--line)}}

/* ---------- legal pages ---------- */
.legal h2{font-size:1.35rem}
.legal-table{width:100%;border-collapse:collapse;font-size:.9rem;margin:6px 0 1.4rem;display:block;overflow-x:auto}
.legal-table th,.legal-table td{padding:12px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);color:var(--muted)}
.legal-table th{color:var(--muted-2);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;font-weight:600;white-space:nowrap}
.legal-table td:first-child{color:var(--text);font-weight:600}
@media(max-width:640px){
  .legal-table{display:table}
  .legal-table thead{display:none}
  .legal-table tr{display:block;border-bottom:1px solid var(--line);padding:10px 0}
  .legal-table td{display:block;border:0;padding:3px 0}
}
