@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700&family=Manrope:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root{
  --paper:#F6F4ED;
  --paper-2:#EFEADB;
  --surface:#FFFDF8;
  --ink:#12181F;
  --muted:#4B5468;
  --navy:#16294D;
  --navy-2:#223A66;
  --on-navy:#EFF3FC;
  --on-navy-muted:#C3CEE6;
  --gold:#8E611D;
  --gold-bright:#C99A44;
  --on-gold:#FFFFFF;
  --gold-bg:#FDF8ED;
  --line:#D8CDAE;
  --good:#256B49;
  --good-bg:#E4EFE7;
  --warn:#AE3B2C;
  --warn-bg:#F5E4DF;
  --shadow: 0 1px 2px rgba(22,31,43,.06), 0 8px 24px -12px rgba(22,31,43,.22);
  --radius: 14px;
  --ease: cubic-bezier(.22,1,.36,1);
  --ease-bounce: cubic-bezier(.32,1.28,.4,1);
  --dur-1: .12s;
  --dur-2: .22s;
  --dur-3: .36s;
  color-scheme: light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#0B111C;
    --paper-2:#111A2B;
    --surface:#131D30;
    --ink:#F2F4F9;
    --muted:#AEB8CE;
    --navy:#1B3057;
    --navy-2:#2C4A80;
    --on-navy:#FFFFFF;
    --on-navy-muted:#CBD5EC;
    --gold:#E3B159;
    --gold-bright:#EFC978;
    --on-gold:#1B1102;
    --gold-bg:#2E2008;
    --line:#2E3A5A;
    --good:#5CC08E;
    --good-bg:#153926;
    --warn:#F08072;
    --warn-bg:#3E211D;
    --shadow: 0 1px 2px rgba(0,0,0,.4), 0 14px 36px -14px rgba(0,0,0,.7);
    color-scheme: dark;
  }
}
:root[data-theme="dark"]{
  --paper:#0B111C;
  --paper-2:#111A2B;
  --surface:#131D30;
  --ink:#F2F4F9;
  --muted:#AEB8CE;
  --navy:#1B3057;
  --navy-2:#2C4A80;
  --on-navy:#FFFFFF;
  --on-navy-muted:#CBD5EC;
  --gold:#E3B159;
  --gold-bright:#EFC978;
  --on-gold:#1B1102;
  --gold-bg:#2E2008;
  --line:#2E3A5A;
  --good:#5CC08E;
  --good-bg:#153926;
  --warn:#F08072;
  --warn-bg:#3E211D;
  --shadow: 0 1px 2px rgba(0,0,0,.4), 0 14px 36px -14px rgba(0,0,0,.7);
  color-scheme: dark;
}
:root[data-theme="light"]{ color-scheme: light; }

*{box-sizing:border-box; -webkit-tap-highlight-color:transparent;}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;
  -webkit-font-smoothing:antialiased;
  padding-inline:0;
  transition:background-color var(--dur-3) var(--ease), color var(--dur-3) var(--ease);
}
.wrap{max-width:1180px; margin-inline:auto; padding-inline:20px;}
h1,h2,h3{font-family:'Fraunces',Georgia,serif; font-optical-sizing:auto; text-wrap:balance; margin:0; line-height:1.08; font-weight:600;}
h1{font-size:clamp(2rem,4.4vw,3.4rem); letter-spacing:-.025em;}
h2{font-size:clamp(1.5rem,2.8vw,2.1rem); letter-spacing:-.015em;}
h3{font-size:1.05rem; font-weight:600; letter-spacing:-.005em;}
p{margin:0; line-height:1.65; color:var(--muted);}
a{color:inherit}
.mono{font-family:'IBM Plex Mono',ui-monospace,monospace; font-variant-numeric:tabular-nums;}
button{font-family:inherit; cursor:pointer}
.icon{width:1em;height:1em; display:inline-block; vertical-align:-.14em; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round;}
.visually-hidden{position:absolute; width:1px;height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;}
:focus-visible{outline:2px solid var(--gold-bright); outline-offset:2px; border-radius:4px;}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
}

/* ---------- utility bar ---------- */
.utility{background:var(--navy); color:var(--on-navy);}
.utility .wrap{display:flex; align-items:center; justify-content:space-between; gap:16px; padding-block:8px; font-size:.82rem;}
.utility .contacts{display:flex; align-items:center; gap:18px; flex-wrap:wrap;}
.utility .contacts a{display:inline-flex; align-items:center; gap:6px; text-decoration:none; color:var(--on-navy); transition:color var(--dur-2) var(--ease);}
.utility .contacts a:hover{color:var(--gold-bright)}
.utility .hours{color:var(--on-navy-muted); white-space:nowrap}
.utility .hours b{color:var(--on-navy); font-weight:700}
.theme-toggle{display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:8px; border:1px solid rgba(255,255,255,.28); background:rgba(255,255,255,.06); color:var(--on-navy); flex:none; transition:border-color var(--dur-2) var(--ease), color var(--dur-2) var(--ease), transform var(--dur-1) var(--ease);}
.theme-toggle:hover{border-color:var(--gold-bright); color:var(--gold-bright)}
.theme-toggle:active{transform:scale(.9) rotate(-12deg)}
.theme-toggle .i-moon{display:none}
:root[data-theme="dark"] .theme-toggle .i-sun{display:none}
:root[data-theme="dark"] .theme-toggle .i-moon{display:block}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .theme-toggle .i-sun{display:none}
  :root:not([data-theme="light"]) .theme-toggle .i-moon{display:block}
}

/* ---------- header ---------- */
header.site{
  position:sticky; top:0; z-index:40;
  background:color-mix(in srgb, var(--paper) 78%, transparent);
  backdrop-filter:blur(16px) saturate(160%); -webkit-backdrop-filter:blur(16px) saturate(160%);
  box-shadow: 0 1px 0 color-mix(in srgb, var(--ink) 8%, transparent), 0 16px 24px -20px color-mix(in srgb, var(--ink) 25%, transparent);
}
.nav-row{display:flex; align-items:center; justify-content:space-between; gap:20px; padding-block:14px;}
.logo{display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--ink);}
.logo .mark{width:42px;height:42px; border-radius:10px; background:var(--navy); color:#fff; display:flex; align-items:center; justify-content:center; font-family:'Fraunces',serif; font-weight:700; font-size:1rem; letter-spacing:-.02em; flex:none;}
.logo .word{line-height:1.15}
.logo .word b{display:block; font-family:'Fraunces',serif; font-size:1.08rem; font-weight:600;}
.logo .word span{display:block; font-size:.72rem; color:var(--muted); letter-spacing:.02em;}

nav.primary{display:flex; align-items:center; gap:2px;}
nav.primary > a, .dd > button{padding:10px 14px; text-decoration:none; color:var(--ink); font-size:.92rem; font-weight:600; border-radius:8px; background:none; border:none; display:inline-flex; align-items:center; gap:5px; transition:color var(--dur-2) var(--ease);}
nav.primary > a:hover, .dd > button:hover{color:var(--gold)}
nav.primary > a[aria-current="page"]{color:var(--gold)}
.dd{position:relative}
.dd > button .icon{transition:transform var(--dur-2) var(--ease);}
.dd.open > button .icon{transform:rotate(180deg)}
.dd-menu{
  position:absolute; top:calc(100% + 6px); left:0; transform-origin: top left;
  background:var(--surface); border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow);
  padding:8px; min-width:230px; display:flex; flex-direction:column; gap:2px;
  opacity:0; visibility:hidden; transform:scale(.94) translateY(-6px);
  transition:opacity var(--dur-2) var(--ease), transform var(--dur-3) var(--ease-bounce), visibility 0s linear var(--dur-3);
}
.dd.open .dd-menu{opacity:1; visibility:visible; transform:scale(1) translateY(0); transition:opacity var(--dur-2) var(--ease), transform var(--dur-3) var(--ease-bounce);}
.dd-menu a{display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 10px; border-radius:8px; text-decoration:none; color:var(--ink); font-size:.9rem; font-weight:500; transition:background-color var(--dur-1) var(--ease);}
.dd-menu a:hover{background:var(--paper-2)}
.dd-menu a[aria-current="page"]{background:var(--paper-2); color:var(--gold);}
.dd-menu a .code{font-family:'IBM Plex Mono',monospace; font-size:.72rem; color:var(--muted); border:1px solid var(--line); border-radius:5px; padding:1px 6px;}

.cta-btn{display:inline-flex; align-items:center; gap:8px; background:var(--gold); color:var(--on-gold); border:none; padding:11px 18px; border-radius:9px; font-weight:700; font-size:.92rem; text-decoration:none; white-space:nowrap; transition:background-color var(--dur-2) var(--ease), color var(--dur-2) var(--ease), transform var(--dur-1) var(--ease);}
.cta-btn:hover{background:var(--navy); color:var(--on-navy); transform:translateY(-1px);}
.cta-btn:active{transform:scale(.96); transition-duration:var(--dur-1);}
.cta-ghost{display:inline-flex; align-items:center; gap:8px; background:transparent; color:var(--ink); border:1.5px solid var(--line); padding:10.5px 17px; border-radius:9px; font-weight:700; font-size:.92rem; text-decoration:none; transition:border-color var(--dur-2) var(--ease), color var(--dur-2) var(--ease), transform var(--dur-1) var(--ease);}
.cta-ghost:hover{border-color:var(--gold); color:var(--gold)}
.cta-ghost:active{transform:scale(.96);}

.menu-toggle{display:none; background:none; border:1px solid var(--line); border-radius:9px; width:44px; height:44px; align-items:center; justify-content:center; color:var(--ink); transition:transform var(--dur-1) var(--ease), border-color var(--dur-2) var(--ease);}
.menu-toggle:active{transform:scale(.92);}

/* ---------- view tabs ---------- */
.view-switch{background:var(--paper-2); border-bottom:1px solid var(--line);}
.view-switch .wrap{display:flex; gap:6px; padding-block:10px;}
.view-tab{background:none; border:1px solid transparent; padding:8px 14px; border-radius:999px; font-size:.82rem; font-weight:700; color:var(--muted); display:inline-flex; align-items:center; gap:7px; transition:background-color var(--dur-2) var(--ease), color var(--dur-2) var(--ease), transform var(--dur-1) var(--ease); text-decoration:none;}
.view-tab[aria-selected="true"]{background:var(--surface); border-color:var(--line); color:var(--ink); box-shadow:var(--shadow)}
.view-tab:active{transform:scale(.96)}
.view-tab .tag{font-family:'IBM Plex Mono',monospace; font-size:.65rem; background:var(--navy); color:#fff; padding:1px 6px; border-radius:5px;}

#view-admin{display:none}
body.show-admin #view-site{display:none}
body.show-admin #view-admin{display:block}

/* ---------- hero ---------- */
.hero{padding-block:clamp(40px,7vw,84px); position:relative;}
.hero-grid{display:grid; grid-template-columns:1.15fr .85fr; gap:56px; align-items:center; position:relative;}
.eyebrow{display:inline-flex; align-items:center; gap:8px; font-family:'IBM Plex Mono',monospace; font-size:.74rem; letter-spacing:.06em; text-transform:uppercase; color:var(--gold); background:var(--surface); border:1px solid color-mix(in srgb, var(--gold) 30%, transparent); padding:6px 12px; border-radius:999px; margin-bottom:18px;}
.hero h1{margin-bottom:18px}
.hero .lead{font-size:1.08rem; max-width:46ch; margin-bottom:28px;}
.hero .actions{display:flex; gap:12px; flex-wrap:wrap; margin-bottom:30px;}
.trust-inline{display:flex; gap:22px; flex-wrap:wrap; font-size:.82rem; color:var(--muted);}
.trust-inline span{display:flex; align-items:center; gap:7px;}
.trust-inline .icon{color:var(--gold)}

/* boarding-pass ticket card in hero */
.ticket{background:var(--navy); color:#fff; border-radius:18px; padding:26px 24px; position:relative; box-shadow:var(--shadow); isolation:isolate;}
.ticket::before,.ticket::after{content:"";position:absolute; width:26px;height:26px; background:var(--paper); border-radius:50%; top:50%; transform:translateY(-50%);}
.ticket::before{left:-13px}
.ticket::after{right:-13px}
.ticket .row1{display:flex; justify-content:space-between; align-items:center; font-family:'IBM Plex Mono',monospace; font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; color:var(--on-navy-muted); margin-bottom:16px;}
.ticket .route{display:flex; align-items:center; gap:14px; margin-bottom:6px;}
.ticket .route .city{font-family:'Fraunces',serif; font-size:1.7rem; font-weight:600; color:var(--on-navy);}
.ticket .route .plane{color:var(--gold-bright); width:26px; flex:none;}
.ticket .sub{color:var(--on-navy-muted); font-size:.86rem; margin-bottom:20px;}
.ticket hr{border:none; border-top:1.5px dashed rgba(255,255,255,.35); margin:0 0 18px;}
.ticket .meta{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
.ticket .meta div b{display:block; font-family:'IBM Plex Mono',monospace; font-size:1.05rem; color:var(--on-navy);}
.ticket .meta div span{font-size:.7rem; color:var(--on-navy-muted); text-transform:uppercase; letter-spacing:.04em;}
.seat-pill{display:inline-flex; align-items:center; gap:6px; background:var(--good-bg); color:var(--good); font-family:'IBM Plex Mono',monospace; font-weight:700; font-size:.72rem; padding:4px 10px; border-radius:999px; margin-top:18px;}
.ticket-price{margin-top:10px; font-size:.84rem; color:var(--on-navy-muted);}
.ticket-price b{color:var(--gold-bright); font-family:'IBM Plex Mono',monospace; font-size:.98rem;}

/* ---------- section shell ---------- */
section{padding-block:clamp(48px,6vw,78px); border-top:1px solid var(--line);}
.section-head{display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:36px; flex-wrap:wrap;}
.kicker{font-family:'IBM Plex Mono',monospace; font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:var(--gold); display:block; margin-bottom:10px;}
.section-head p{max-width:48ch}

/* ---------- info block (airport facts) ---------- */
.info-grid{display:grid; grid-template-columns:1.3fr .7fr; gap:40px; align-items:start;}
.info-grid .facts{display:flex; flex-direction:column; gap:14px;}
.info-grid .facts p{font-size:.98rem; color:var(--ink);}
.fact-card{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); padding:22px;}
.fact-card dl{display:grid; grid-template-columns:auto 1fr; gap:10px 14px; margin:0;}
.fact-card dt{font-family:'IBM Plex Mono',monospace; font-size:.7rem; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); align-self:center;}
.fact-card dd{margin:0; font-weight:600; font-size:.92rem;}

/* ---------- routes ---------- */
.routes-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:14px;}
.route-card{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:20px 18px; text-decoration:none; color:var(--ink); display:flex; flex-direction:column; gap:14px; box-shadow:var(--shadow); transition:transform var(--dur-2) var(--ease), border-color var(--dur-2) var(--ease), box-shadow var(--dur-2) var(--ease);}
.route-card:hover{transform:translateY(-2px); border-color:var(--gold);}
.route-card:active{transform:translateY(-1px) scale(.98); transition-duration:var(--dur-1);}
.route-card[aria-current="page"]{border-color:var(--gold); box-shadow:0 0 0 2px color-mix(in srgb, var(--gold) 30%, transparent);}
.route-card .code-row{display:flex; justify-content:space-between; align-items:center;}
.route-card .code{font-family:'IBM Plex Mono',monospace; font-weight:600; font-size:1.3rem; letter-spacing:.02em;}
.route-card .icon{color:var(--gold); width:20px;}
.route-card h3{font-size:.98rem;}
.route-card .from{font-size:.8rem; color:var(--muted);}
.route-card .price-row{display:flex; justify-content:space-between; align-items:baseline; margin-top:auto; padding-top:10px; border-top:1px dashed var(--line); font-size:.82rem;}
.route-card .price-row b{font-family:'IBM Plex Mono',monospace; color:var(--ink); font-size:.95rem;}

/* ---------- schedule board ---------- */
.board{background:var(--navy); border-radius:20px; padding:clamp(20px,3vw,34px); color:var(--on-navy); box-shadow:var(--shadow);}
.board-top{display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; flex-wrap:wrap; gap:10px;}
.board-top .live{display:inline-flex; align-items:center; gap:7px; font-family:'IBM Plex Mono',monospace; font-size:.72rem; color:var(--on-navy-muted); text-transform:uppercase; letter-spacing:.06em;}
.board-top .live .dot{width:7px;height:7px;border-radius:50%; background:#63D296; box-shadow:0 0 0 3px rgba(99,210,150,.25);}

.board-filters{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:18px 0 4px; padding:14px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.14); border-radius:12px;}
.board-filters label{font-size:.72rem; text-transform:uppercase; letter-spacing:.05em; color:var(--on-navy-muted); display:flex; align-items:center; gap:8px;}
.board-filters select{background:var(--surface); color:var(--ink); border:1.5px solid rgba(255,255,255,.2); border-radius:8px; padding:8px 10px; font-family:inherit; font-size:.85rem;}
.board-filters .reset{margin-left:auto; background:none; border:1px solid rgba(255,255,255,.25); color:var(--on-navy); border-radius:8px; padding:8px 12px; font-size:.78rem; font-weight:600; transition:border-color var(--dur-2) var(--ease), color var(--dur-2) var(--ease), transform var(--dur-1) var(--ease);}
.board-filters .reset:hover{border-color:var(--gold-bright); color:var(--gold-bright)}
.board-filters .reset:active{transform:scale(.96)}
.board-filters select{transition:border-color var(--dur-2) var(--ease);}
.board-empty{padding:20px; text-align:center; color:var(--on-navy-muted); font-size:.86rem;}

.board-cols{display:grid; grid-template-columns:1fr 1fr; gap:26px; margin-top:20px;}
.board-col h3{font-family:'IBM Plex Mono',monospace; font-size:.78rem; text-transform:uppercase; letter-spacing:.07em; font-weight:600; display:flex; align-items:center; gap:8px; margin-bottom:12px; color:var(--on-navy);}
table.sched{width:100%; border-collapse:collapse; font-family:'IBM Plex Mono',monospace; font-size:.82rem;}
table.sched th{text-align:left; font-size:.68rem; text-transform:uppercase; letter-spacing:.05em; color:var(--on-navy-muted); font-weight:700; padding-bottom:8px; border-bottom:1px solid rgba(255,255,255,.22);}
table.sched td{padding:10px 6px; border-bottom:1px dashed rgba(255,255,255,.18); vertical-align:middle; color:var(--on-navy);}
table.sched tr:last-child td{border-bottom:none}
table.sched tr.is-hidden{display:none}
.tag{display:inline-block; padding:2px 8px; border-radius:999px; font-size:.68rem; font-weight:700;}
.tag.biz{background:var(--gold-bg); color:var(--gold);}
.tag.lux{background:var(--good-bg); color:var(--good);}
.tag.std{background:var(--surface); color:var(--ink);}
.board-note{display:flex; gap:10px; align-items:flex-start; margin-top:22px; padding-top:18px; border-top:1px dashed rgba(255,255,255,.24); font-size:.82rem; color:var(--on-navy-muted);}
.board-note .icon{flex:none; margin-top:2px; color:var(--gold-bright);}
.board-cta{display:flex; gap:12px; margin-top:22px; flex-wrap:wrap;}

/* ---------- fleet ---------- */
.fleet-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
.fleet-card{border:1px solid var(--line); border-radius:var(--radius); padding:22px; background:var(--surface); box-shadow:var(--shadow);}
.fleet-card .glyph{width:52px;height:52px; border-radius:12px; background:var(--paper-2); display:flex; align-items:center; justify-content:center; color:var(--navy); margin-bottom:16px;}
.fleet-card .glyph .icon{width:26px;height:26px;}
.fleet-card h3{margin-bottom:6px;}
.fleet-card p{font-size:.86rem; margin-bottom:14px;}
.fleet-feats{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px;}
.fleet-feats li{display:flex; gap:7px; align-items:flex-start; font-size:.78rem; color:var(--muted);}
.fleet-feats .icon{color:var(--good); flex:none; margin-top:2px; width:14px;}
.fleet-specs{display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:14px; padding-top:14px; border-top:1px dashed var(--line);}
.fleet-specs div b{display:block; font-family:'IBM Plex Mono',monospace; font-size:.92rem; color:var(--ink);}
.fleet-specs div span{font-size:.66rem; color:var(--muted); text-transform:uppercase; letter-spacing:.03em;}

/* ---------- why-us ---------- */
.why-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;}
.why-item{background:var(--surface); padding:24px 22px; display:flex; flex-direction:column; gap:10px;}
.why-item .icon{width:22px;height:22px; color:var(--gold);}
.why-item p{font-size:.86rem; color:var(--ink);}

/* ---------- reviews ---------- */
.reviews-note{display:inline-flex; align-items:center; gap:8px; font-size:.78rem; color:var(--muted); background:var(--paper-2); border:1px solid var(--line); padding:6px 12px; border-radius:999px; margin-bottom:26px;}
.reviews-note .icon{color:var(--gold); width:14px;}
.reviews-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
.review-card{border:1px solid var(--line); border-radius:var(--radius); padding:22px; background:var(--surface); box-shadow:var(--shadow); position:relative;}
.review-card .stars{color:var(--gold); display:flex; gap:2px; margin-bottom:12px;}
.review-card .stars .icon{width:14px;height:14px; fill:currentColor;}
.review-card p.quote{color:var(--ink); font-size:.92rem; line-height:1.6; margin-bottom:16px;}
.review-card .who{display:flex; justify-content:space-between; font-size:.76rem; color:var(--muted); border-top:1px dashed var(--line); padding-top:12px;}
.review-card .who b{color:var(--ink); font-weight:600;}
.reviews-filter{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:24px;}
.reviews-filter button{background:var(--surface); border:1px solid var(--line); color:var(--muted); padding:7px 14px; border-radius:999px; font-size:.82rem; font-weight:600; transition:all var(--dur-2) var(--ease);}
.reviews-filter button[aria-pressed="true"]{background:var(--navy); color:#fff; border-color:var(--navy);}
.reviews-filter button:active{transform:scale(.96)}
.review-card.is-hidden{display:none}

/* ---------- faq ---------- */
.faq-list{display:flex; flex-direction:column; gap:10px; max-width:820px;}
.faq-item{border:1px solid var(--line); border-radius:12px; background:var(--surface); overflow:hidden; transition:border-color var(--dur-2) var(--ease);}
.faq-q{width:100%; display:flex; justify-content:space-between; align-items:center; gap:16px; padding:16px 18px; background:none; border:none; text-align:left; font-weight:600; font-size:.95rem; color:var(--ink); transition:background-color var(--dur-2) var(--ease);}
.faq-q:hover{background:var(--paper-2)}
.faq-q .icon{flex:none; transition:transform var(--dur-3) var(--ease-bounce); color:var(--gold);}
.faq-q[aria-expanded="true"] .icon{transform:rotate(45deg)}
.faq-panel{display:grid; grid-template-rows:0fr; transition:grid-template-rows var(--dur-3) var(--ease);}
.faq-panel.open{grid-template-rows:1fr}
.faq-panel-inner{overflow:hidden; min-height:0;}
.faq-a{padding:0 18px 18px; font-size:.9rem;}

/* ---------- order/cta ---------- */
.order{background:var(--navy); border-radius:22px; padding:clamp(28px,4vw,48px); color:var(--on-navy); display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center;}
.order h2{color:var(--on-navy)}
.order p{color:var(--on-navy-muted)}
.order-form{background:var(--surface); border-radius:16px; padding:22px; display:grid; gap:12px; color:var(--ink); box-shadow:var(--shadow);}
.order-form .row2{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
.field label{display:block; font-size:.74rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); margin-bottom:6px;}
.field select, .field input{width:100%; border:1.5px solid var(--line); border-radius:9px; padding:11px 12px; font-family:inherit; font-size:.92rem; background:var(--paper); color:var(--ink); transition:border-color var(--dur-2) var(--ease), box-shadow var(--dur-2) var(--ease);}
.field select:focus, .field input:focus{border-color:var(--gold); outline:none; box-shadow:0 0 0 3px color-mix(in srgb, var(--gold) 18%, transparent);}
.form-status{margin:0; font-size:.86rem; font-weight:600; min-height:1.2em;}
.form-status.is-ok{color:var(--good);}
.form-status.is-error{color:var(--warn);}
.order-msgs{display:flex; gap:10px; margin-top:22px; flex-wrap:wrap;}
.msg-btn{display:inline-flex; align-items:center; gap:8px; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.3); color:var(--on-navy); padding:10px 16px; border-radius:9px; font-weight:700; font-size:.86rem; text-decoration:none; transition:background-color var(--dur-2) var(--ease), transform var(--dur-1) var(--ease);}
.msg-btn:hover{background:rgba(255,255,255,.18)}
.msg-btn:active{transform:scale(.96)}

/* ---------- footer ---------- */
footer{background:var(--navy); color:var(--on-navy-muted); padding-block:50px calc(26px + env(safe-area-inset-bottom));}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:36px; padding-bottom:34px; border-bottom:1px solid rgba(255,255,255,.18);}
footer h3{color:var(--on-navy); font-size:.78rem; text-transform:uppercase; letter-spacing:.06em; margin-bottom:14px; font-weight:700; font-family:'Manrope',sans-serif;}
footer .flogo{display:flex; align-items:center; gap:10px; margin-bottom:14px;}
footer .flogo .mark{width:38px;height:38px;border-radius:9px; background:rgba(255,255,255,.12); display:flex; align-items:center; justify-content:center; font-family:'Fraunces',serif; font-weight:700; color:var(--on-navy);}
footer .flogo b{color:var(--on-navy); font-family:'Fraunces',serif; font-weight:600;}
footer p{color:var(--on-navy-muted); font-size:.86rem; max-width:34ch;}
footer ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px;}
footer a{color:var(--on-navy-muted); text-decoration:none; font-size:.88rem;}
footer a:hover{color:var(--on-navy)}
.foot-contact{display:flex; align-items:flex-start; gap:9px; margin-bottom:10px; font-size:.88rem;}
.foot-contact .icon{margin-top:3px; color:var(--gold-bright); flex:none;}
.foot-bottom{display:flex; justify-content:space-between; gap:16px; padding-top:22px; font-size:.78rem; color:var(--on-navy-muted); flex-wrap:wrap;}

/* ---------- ad slot (РСЯ) ---------- */
.ad-section{border-top:none; padding-block:0 clamp(48px,6vw,78px);}
.ad-block{border:1.5px dashed var(--line); border-radius:12px; background:var(--paper-2); padding:14px;}
.ad-label{display:block; font-size:.64rem; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); margin-bottom:10px;}
.ad-surface{min-height:100px; display:flex; align-items:center; justify-content:center; text-align:center; color:var(--muted); font-size:.78rem; border-radius:8px; background:color-mix(in srgb, var(--line) 35%, transparent);}

/* ---------- mobile drawer ---------- */
.mobile-drawer{position:fixed; inset:0; z-index:80; background:var(--surface); display:flex; flex-direction:column; transform:translateX(100%); transition:transform var(--dur-3) var(--ease-bounce); visibility:hidden;}
.mobile-drawer.open{transform:translateX(0); visibility:visible;}
.mobile-drawer-head{display:flex; align-items:center; justify-content:space-between; padding:16px 20px; border-bottom:1px solid var(--line);}
.drawer-close{width:44px; height:44px; border-radius:10px; border:1px solid var(--line); background:none; color:var(--ink); display:flex; align-items:center; justify-content:center; transition:transform var(--dur-1) var(--ease);}
.drawer-close:active{transform:scale(.92)}
.mobile-nav{display:flex; flex-direction:column; padding:8px 12px; overflow-y:auto;}
.mobile-nav a{display:flex; align-items:center; min-height:52px; padding:0 12px; text-decoration:none; color:var(--ink); font-size:1.08rem; font-weight:600; border-bottom:1px solid var(--line); transition:background-color var(--dur-1) var(--ease), padding-left var(--dur-1) var(--ease);}
.mobile-nav a:active{background:var(--paper-2); padding-left:16px;}
.mobile-nav .mnav-label{padding:16px 12px 4px; font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); font-weight:700;}
.mobile-nav a .code{margin-left:auto; font-family:'IBM Plex Mono',monospace; font-size:.76rem; color:var(--muted); border:1px solid var(--line); border-radius:6px; padding:2px 7px;}
.mobile-drawer-foot{padding:16px 20px calc(20px + env(safe-area-inset-bottom)); border-top:1px solid var(--line); display:flex; flex-direction:column; gap:10px;}
.mobile-drawer-foot .cta-btn{justify-content:center; min-height:50px; font-size:1rem;}
.mobile-drawer-foot a.msg-line{display:flex; align-items:center; gap:10px; min-height:44px; color:var(--ink); text-decoration:none; font-weight:600; font-size:.95rem;}
body.drawer-open{overflow:hidden}

/* ---------- sticky mobile action bar ---------- */
.mobile-actionbar{display:none;}

/* ---------- admin concept ---------- */
.admin-shell{background:var(--paper); min-height:100vh;}
.admin-top{background:var(--surface); border-bottom:1px solid var(--line); padding-block:14px;}
.admin-top .wrap{display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap;}
.breadcrumb{font-size:.82rem; color:var(--muted); display:flex; align-items:center; gap:6px;}
.breadcrumb b{color:var(--ink)}
.admin-body{padding-block:30px 60px;}
.admin-head{display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:22px; flex-wrap:wrap; gap:14px;}
.admin-head p{max-width:56ch}
.concept-badge{display:inline-flex; align-items:center; gap:7px; background:var(--good-bg); color:var(--good); font-size:.72rem; font-weight:700; padding:5px 11px; border-radius:999px; margin-bottom:12px;}
.admin-toolbar{display:flex; justify-content:space-between; align-items:center; gap:14px; margin-bottom:16px; flex-wrap:wrap;}
.filters{display:flex; gap:8px; flex-wrap:wrap;}
.filters select, .filters input{border:1.5px solid var(--line); border-radius:8px; padding:8px 10px; font-family:inherit; font-size:.84rem; background:var(--surface); color:var(--ink);}
.stat-row{display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:22px;}
.stat-card{background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:16px 18px;}
.stat-card span{display:block; font-size:.72rem; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; margin-bottom:6px;}
.stat-card b{font-family:'IBM Plex Mono',monospace; font-size:1.5rem;}
.admin-panels{display:grid; grid-template-columns:1.6fr 1fr; gap:20px; align-items:start;}
.panel{background:var(--surface); border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow); overflow:hidden;}
.panel-head{display:flex; justify-content:space-between; align-items:center; padding:16px 18px; border-bottom:1px solid var(--line);}
.panel-head h3{font-size:.92rem;}
table.trips{width:100%; border-collapse:collapse; font-size:.84rem;}
table.trips th{text-align:left; padding:10px 14px; font-size:.68rem; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); background:var(--paper-2); border-bottom:1px solid var(--line);}
table.trips td{padding:11px 14px; border-bottom:1px solid var(--line); vertical-align:middle;}
table.trips tr:last-child td{border-bottom:none}
table.trips tr:hover td{background:var(--paper-2)}
.status-pill{display:inline-flex; align-items:center; gap:5px; font-size:.7rem; font-weight:700; padding:3px 9px; border-radius:999px;}
.status-pill.pub{background:var(--good-bg); color:var(--good)}
.status-pill.draft{background:var(--paper-2); color:var(--muted); border:1px solid var(--line);}
.row-actions{display:flex; gap:6px; justify-content:flex-end;}
.icon-btn{width:30px;height:30px; border-radius:7px; border:1px solid var(--line); background:var(--surface); display:inline-flex; align-items:center; justify-content:center; color:var(--muted); transition:color var(--dur-2) var(--ease), border-color var(--dur-2) var(--ease), transform var(--dur-1) var(--ease);}
.icon-btn:hover{color:var(--ink); border-color:var(--gold)}
.icon-btn:active{transform:scale(.92)}
.seat-bar{width:64px; height:6px; border-radius:4px; background:var(--paper-2); overflow:hidden; display:inline-block; vertical-align:middle; margin-right:8px;}
.seat-bar i{display:block; height:100%; background:var(--good);}
.seat-bar.low i{background:var(--warn)}

.form-grid{padding:18px; display:grid; gap:13px;}
.form-grid .row2{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
.form-grid label{display:block; font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:var(--muted); margin-bottom:6px;}
.form-grid select, .form-grid input, .form-grid textarea{width:100%; border:1.5px solid var(--line); border-radius:8px; padding:9px 11px; font-family:inherit; font-size:.87rem; background:var(--paper); color:var(--ink); transition:border-color var(--dur-2) var(--ease), box-shadow var(--dur-2) var(--ease);}
.form-grid select:focus, .form-grid input:focus, .form-grid textarea:focus{border-color:var(--gold); outline:none; box-shadow:0 0 0 3px color-mix(in srgb, var(--gold) 18%, transparent);}
.class-toggle{display:flex; gap:6px; flex-wrap:wrap;}
.class-toggle label{display:inline-flex; align-items:center; gap:6px; border:1.5px solid var(--line); border-radius:999px; padding:7px 12px; font-size:.78rem; font-weight:600; color:var(--muted); text-transform:none; letter-spacing:0; cursor:pointer; transition:border-color var(--dur-2) var(--ease), background-color var(--dur-2) var(--ease), color var(--dur-2) var(--ease), transform var(--dur-1) var(--ease);}
.class-toggle label:active{transform:scale(.96)}
.class-toggle label:has(input:checked){border-color:var(--gold); background:color-mix(in srgb, var(--gold) 14%, transparent); color:var(--ink);}
.class-toggle input{width:auto; accent-color:var(--gold);}
.form-actions{display:flex; gap:10px; padding:16px 18px; border-top:1px solid var(--line); background:var(--paper-2);}
.btn-primary{background:var(--navy); color:#fff; border:none; padding:10px 18px; border-radius:9px; font-weight:700; font-size:.86rem; transition:background-color var(--dur-2) var(--ease), transform var(--dur-1) var(--ease);}
.btn-primary:hover{background:var(--gold); color:var(--on-gold)}
.btn-primary:active{transform:scale(.96)}
.btn-secondary{background:var(--surface); color:var(--ink); border:1.5px solid var(--line); padding:9.5px 16px; border-radius:9px; font-weight:700; font-size:.86rem; transition:border-color var(--dur-2) var(--ease), transform var(--dur-1) var(--ease);}
.btn-secondary:active{transform:scale(.96)}
.admin-callout{display:flex; gap:12px; align-items:flex-start; background:var(--paper-2); border:1px solid var(--line); border-radius:12px; padding:16px 18px; margin-top:22px; font-size:.84rem; color:var(--muted);}
.admin-callout .icon{color:var(--gold); flex:none; margin-top:2px;}
.admin-callout b{color:var(--ink)}

/* ---------- responsive ---------- */
@media (max-width:1020px){
  .hero-grid{grid-template-columns:1fr; gap:40px;}
  .info-grid{grid-template-columns:1fr;}
  .routes-grid{grid-template-columns:repeat(3,1fr);}
  .fleet-grid{grid-template-columns:repeat(2,1fr);}
  .why-grid{grid-template-columns:repeat(2,1fr);}
  .reviews-grid{grid-template-columns:repeat(2,1fr);}
  .order{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr 1fr;}
  .admin-panels{grid-template-columns:1fr;}
  .stat-row{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:720px){
  nav.primary{display:none}
  .menu-toggle{display:inline-flex}
  .utility .hours{display:none}
  .routes-grid{grid-template-columns:1fr 1fr;}
  .board-cols{grid-template-columns:1fr;}
  .board-filters{gap:8px;}
  .board-filters .reset{margin-left:0;}
  .fleet-grid{grid-template-columns:1fr;}
  .why-grid{grid-template-columns:1fr;}
  .reviews-grid{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr 1fr;}
  .form-grid .row2{grid-template-columns:1fr;}
  .order-form .row2{grid-template-columns:1fr;}

  body{padding-bottom:calc(64px + env(safe-area-inset-bottom));}
  .mobile-actionbar{
    display:grid; grid-template-columns:1fr 1fr 1.3fr; position:fixed; left:0; right:0; bottom:0; z-index:60;
    background:color-mix(in srgb, var(--surface) 88%, transparent); backdrop-filter:blur(14px) saturate(160%); -webkit-backdrop-filter:blur(14px) saturate(160%);
    border-top:1px solid var(--line); box-shadow:0 -8px 24px -12px rgba(0,0,0,.25);
    padding-bottom:env(safe-area-inset-bottom);
  }
  .mobile-actionbar a{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; min-height:62px; text-decoration:none; color:var(--ink); font-size:.68rem; font-weight:700; border-right:1px solid var(--line); transition:background-color var(--dur-1) var(--ease);}
  .mobile-actionbar a:active{background:var(--paper-2)}
  .mobile-actionbar a:last-child{border-right:none; background:var(--gold); color:var(--on-gold);}
  .mobile-actionbar a:last-child:active{background:var(--navy)}
  .mobile-actionbar a .icon{width:19px;height:19px;}
}
@media (max-width:520px){
  .foot-grid{grid-template-columns:1fr;}
  .ticket .meta{grid-template-columns:1fr 1fr;}
  .board-filters label{width:100%;}
  .board-filters select{flex:1;}
  .nav-row .cta-btn{display:none;}
  .logo .word span{display:none;}
  .fleet-specs{grid-template-columns:1fr 1fr;}
}
