@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--navy:#080e20;--ink:#121c35;--muted:#53607a;--paper:#f6f8ff;--line:#dbe2f3;--blue:#5146b8;--gradient:linear-gradient(108deg,#63eaff,#a4b0ff 56%,#c992ff);font-family:"DM Sans",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*,*::before,*::after{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}[hidden]{display:none!important}:focus-visible{outline:3px solid #5650cb;outline-offset:3px}.shell{max-width:1224px;width:calc(100% - 96px);margin-inline:auto}.header{background:var(--navy);color:#f4f6ff;border-bottom:1px solid #ffffff19}.nav,.footer,.section-head,.admin-toolbar,.card-bottom{display:flex;align-items:center;justify-content:space-between;gap:18px}.nav{height:76px}.nav nav{display:flex;gap:32px;font-weight:700;font-size:14px}.brand{display:inline-flex;align-items:center;gap:9px;font-family:Manrope,sans-serif;font-weight:800;font-size:32px;letter-spacing:-.075em;line-height:1}.brand img{width:34px}.dot{color:#a08bff}.hero{background:radial-gradient(ellipse at 75% 15%,#232b60,transparent 65%),var(--navy);color:white;padding:48px 0 54px}.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px 44px;align-items:center}.hero h1{font-size:clamp(55px,6.7vw,104px);margin:16px 0 22px;line-height:.99;letter-spacing:-.086em}.hero h1 em{font-style:normal;background:var(--gradient);color:transparent;background-clip:text}.hero p:not(.eyebrow){color:#c0cbe7;font-size:18px;max-width:31ch}.eyebrow{font-size:12px;letter-spacing:.14em;font-weight:800;color:var(--blue)}.hero .eyebrow{color:#92eaff}.eyebrow span{display:inline-block;width:7px;height:7px;background:#82eaff;border-radius:50%;margin-right:6px}.hero-photo{margin:0;height:380px;border-radius:26px;overflow:hidden;position:relative}.hero-photo img{width:100%;height:100%;object-fit:cover}.search{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr auto;gap:14px;align-items:end;padding:16px 18px;background:#fff;color:var(--ink);border-radius:18px}.search label{padding:0 4px}.primary,.secondary{border:0;border-radius:10px;padding:13px 17px;font-weight:800;min-height:44px}.primary{background:var(--gradient);color:var(--navy)}.search .primary{min-width:178px}.primary span,.secondary span{margin-left:6px}.secondary{background:#eef0ff;color:#3e3594;border:1px solid #dedfff}.secondary:hover{background:#e1e3ff}.primary:hover{filter:saturate(1.35)}label{display:grid;gap:6px;font-weight:700;font-size:14px}input:not([type=checkbox]),textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);min-height:44px}textarea{min-height:100px;resize:vertical}.catalog{padding:48px 0}.section-head{margin-bottom:18px}h1,h2,h3{font-family:Manrope,sans-serif;letter-spacing:-.055em}h2{font-size:clamp(29px,4vw,45px);margin:0}h3{margin:6px 0;font-size:23px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.card{background:white;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 5px 16px #202e6a08}.card-media{height:178px;position:relative}.card-media img{width:100%;height:100%;object-fit:cover;background:#dbe2f3}.discount{position:absolute;top:12px;left:12px;background:var(--navy);color:#a2e9ff;border-radius:8px;padding:6px 9px;font-size:13px;font-weight:800}.card-content{padding:17px}.route,.date,.legend{color:var(--muted);font-size:14px}.route{margin:0;color:#5047a5;font-weight:700}.date{margin:6px 0 16px}.card-bottom{align-items:end;border-top:1px solid var(--line);padding-top:12px;flex-wrap:wrap}.card-bottom strong{font-size:23px;display:inline-block}.card-bottom del{display:block;color:#586680;font-size:13px}.card-bottom small{font-size:12px;color:var(--muted)}.card-bottom button{padding:9px 11px}.footer{padding:25px 0;border-top:1px solid var(--line);color:var(--muted);font-size:13px;flex-wrap:wrap}.footer .brand{color:var(--ink);font-size:24px}.footer img{width:25px}.order-section{padding:20px 0 42px;display:grid;gap:10px}.order-section form{display:flex;gap:10px;max-width:540px}.order-section p,.admin p{color:var(--muted)}dialog{width:min(720px,calc(100% - 26px));border:1px solid var(--line);border-radius:20px;padding:24px;color:var(--ink);max-height:90vh}dialog::backdrop{background:#080e20b8}.close{position:absolute;right:15px;top:12px}.close button{border:0;background:#eef0ff;border-radius:50%;height:36px;width:36px;font-size:21px}.booking-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px}.booking-grid form,.editor,#login{display:grid;gap:13px;align-content:start}.bus{background:#f3f5ff;border:2px solid #b8c3e2;border-radius:38px 38px 16px 16px;padding:13px;max-width:270px}.bus-front{text-align:center;padding:9px 0 14px;color:var(--muted);font-size:13px}.seats{display:grid;grid-template-columns:1fr 1fr 13px 1fr 1fr;gap:5px}.seat{min-height:40px;padding:0;border:1px solid #b1c3ee;border-radius:7px;background:white;color:#172a55;font-weight:800}.seat[data-selected=true]{background:#4d48bd;color:white}.seat:disabled{background:#bdc7d7;color:#1e304b}.seat:nth-child(4n+3){grid-column:4}.admin{padding:32px 0 48px}.admin h1{font-size:clamp(34px,5vw,58px)}#login{max-width:420px}.admin-toolbar{justify-content:flex-start;flex-wrap:wrap}.trip-list{display:grid;gap:8px;margin:18px 0}.trip-list button{text-align:left}.editor{background:white;border:1px solid var(--line);border-radius:18px;padding:20px;grid-template-columns:1fr 1fr}.editor h2,.wide{grid-column:1/-1}.photo-preview img{height:125px;border-radius:8px;object-fit:cover}.checkbox{display:flex;align-items:center}.sr-only{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}
@media(max-width:900px){.shell{width:calc(100% - 46px)}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-photo{height:310px}}
@media(max-width:620px){.shell{width:calc(100% - 30px)}.nav{height:62px}.nav nav{gap:13px}.hero{padding:25px 0}.hero-grid,.cards,.editor{grid-template-columns:1fr}.hero h1{font-size:clamp(54px,13vw,74px)}.hero h1 br{display:none}.hero-photo{height:190px}.search{grid-template-columns:1fr}.search .primary{min-width:0}.booking-grid{grid-template-columns:1fr}.bus{margin:auto}.order-section form{flex-wrap:wrap}.footer{gap:13px}}
@media(max-width:620px){.hero-grid{gap:17px}.hero-photo{grid-row:3;height:160px}.hero h1{margin-bottom:12px}.intro>p:last-child{margin-bottom:5px}.search{grid-row:2}.catalog{padding-top:30px}}
.test-banner{margin:0;padding:10px 16px;background:#e9e4ff;color:#30276c;font-size:14px;font-weight:700;text-align:center}
.city-field{position:relative;display:grid;gap:6px;min-width:0}
.search .city-field label{padding:0}
.city-options{position:absolute;top:100%;left:0;right:0;z-index:5;list-style:none;margin:4px 0 0;padding:4px;max-height:234px;overflow:auto;background:white;color:var(--ink);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 24px #080e2026}
.city-options li{padding:10px 12px;border-radius:6px;cursor:pointer;font-size:14px}
.city-options li:hover,.city-options li[aria-selected=true]{background:#edf0ff;color:#3b3199}
.nav nav{align-items:center}
#account-button{color:inherit;background:#ffffff16;border:1px solid #ffffff30;border-radius:8px;padding:8px 12px;font:inherit;white-space:nowrap}
#account-dialog{width:min(460px,calc(100% - 26px))}
.account-form{display:grid;gap:12px;margin-top:16px}
#account-profile{margin-top:16px}
#coupon-editor{margin-top:18px}
#coupon-editor select{font:inherit;background:white;color:var(--ink);border:1px solid var(--line);border-radius:9px;min-height:44px;padding:8px 12px}
#coupon-status,#coupon-admin-status,#account-status{margin:0;color:var(--muted)}
@media(max-width:390px){.nav nav{gap:8px;font-size:12px}#account-button{padding:6px 8px}}
@media(min-width:621px){.search{grid-template-columns:1fr 1fr minmax(142px,.65fr) auto}}
.sales{margin-top:32px}
.sales form{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:14px 0}
.sales-table{overflow:auto}
.sales table{width:100%;border-collapse:collapse;background:#fff}
.sales th,.sales td{text-align:left;padding:12px;border-bottom:1px solid var(--line);white-space:nowrap}
