/* ===================================================================================
   ===== v9.0 patch — DUFFEL FLIGHTS JOURNEY (append to end of site.css, bump AWT_VERSION)
   Search panel · results · checkout · confirmation · my trips · flight lab.
   Namespace: .fl-*  (plus .se__tab-new for the Holidays badge).
   Uses existing tokens: --plum --purple --orange --gold --sand --sand2 --txt --txt-soft --r
   =================================================================================== */

/* ---------- product tab 'New' badge (Holidays, last tab) ---------- */
.se__tab{position:relative}
.se__tab-new{display:inline-block;margin-left:7px;padding:2px 8px 3px;border-radius:999px;
  font-size:.62rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;vertical-align:2px;
  color:#3d2b12;background:linear-gradient(135deg,var(--gold2,#E3C990),var(--gold,#C6A15B));
  box-shadow:0 1px 4px rgba(138,109,59,.35)}
.se__tab[aria-selected="true"] .se__tab-new{box-shadow:0 1px 6px rgba(138,109,59,.5)}
@media (max-width:640px){.se__tabs{scroll-snap-type:x proximity}.se__tab{scroll-snap-align:center}}

/* ---------- flight search panel (home + results inline editor) ---------- */
.fl-search{display:block}
.fl-search .se__err{margin-top:10px}
.fl-trip{display:inline-flex;gap:0;background:#F3EDFA;border:1.5px solid #ddd3ea;border-radius:999px;padding:4px;margin-bottom:14px}
.fl-trip label{position:relative;display:inline-flex;align-items:center;padding:9px 18px;border-radius:999px;
  font-weight:600;font-size:.93rem;color:#5b4a6e;cursor:pointer;transition:color .15s,background .15s;white-space:nowrap}
.fl-trip input{position:absolute;opacity:0;pointer-events:none}
.fl-trip label.is-on{background:var(--purple);color:#fff;box-shadow:0 4px 12px rgba(91,46,145,.28)}
.fl-trip input:focus-visible + span{outline:2px solid var(--purple);outline-offset:3px;border-radius:999px}

.fl-row{display:grid;grid-template-columns:minmax(0,2.1fr) 44px minmax(0,2.1fr) minmax(0,2.2fr) minmax(0,2.2fr) minmax(0,1.9fr);gap:10px;align-items:end}
.fl-field{position:relative;display:flex;flex-direction:column;gap:6px;min-width:0}
.fl-label{font-size:.72rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#5b4a6e;padding-left:2px}
.fl-ctl{position:relative;display:flex;align-items:center;width:100%;height:64px;border:1.5px solid #ddd3ea;border-radius:14px;background:#fff}
.fl-ctl > svg{flex:0 0 auto;width:18px;height:18px;margin-left:14px;color:var(--purple);opacity:.75;pointer-events:none}
.fl-ctl input[type=text]{flex:1 1 auto;min-width:0;height:100%;border:0;border-radius:14px;background:transparent;
  font:inherit;font-size:1rem;color:var(--txt);padding:0 38px 0 10px}
.fl-ctl input[type=text]:focus{outline:none}
.fl-ctl:focus-within,.fl-btnctl:focus-visible{border-color:var(--purple);box-shadow:0 0 0 4px rgba(91,46,145,.14);outline:none}
.fl-ctl:hover,.fl-btnctl:hover{border-color:#b9a6d6}
.fl-field.is-invalid .fl-ctl,.fl-field.is-invalid .fl-btnctl{border-color:#C13A2E;box-shadow:0 0 0 4px rgba(193,58,46,.12)}
.fl-fielderr{font-size:.8rem;color:#C13A2E;margin:2px 0 0;padding-left:2px}
.fl-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:26px;height:26px;border:0;border-radius:50%;
  background:#EFE9F7;color:#5b4a6e;font-size:15px;line-height:1;cursor:pointer;display:none;align-items:center;justify-content:center}
.fl-clear.is-show{display:inline-flex}
.fl-clear:hover{background:#e2d7f1;color:var(--plum)}
.fl-btnctl{display:flex;align-items:center;gap:10px;width:100%;height:64px;border:1.5px solid #ddd3ea;border-radius:14px;
  background:#fff;font:inherit;font-size:1rem;color:var(--txt);cursor:pointer;text-align:left;padding:0 14px;
  white-space:nowrap;overflow:hidden}
.fl-btnctl svg{flex:0 0 auto;width:18px;height:18px;color:var(--purple);opacity:.75}
.fl-btnctl b{font-weight:600;overflow:hidden;text-overflow:ellipsis}
.fl-btnctl .is-ph{color:#8B8496;font-weight:500}
.fl-swap{align-self:end;width:44px;height:64px;display:flex;align-items:center;justify-content:center}
.fl-swap button{width:40px;height:40px;border-radius:50%;border:1.5px solid #ddd3ea;background:#fff;color:var(--purple);
  cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:transform .25s,border-color .15s,background .15s}
.fl-swap button:hover{border-color:var(--purple);background:#F7F3FC}
.fl-swap button:focus-visible{outline:none;border-color:var(--purple);box-shadow:0 0 0 4px rgba(91,46,145,.14)}
.fl-swap button.is-spun{transform:rotate(180deg)}
.fl-go{height:64px;width:100%;border:0;border-radius:14px;background:var(--orange);color:#fff;font:inherit;font-weight:700;
  font-size:1.05rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  box-shadow:0 12px 30px rgba(245,119,43,.38);transition:background .15s,box-shadow .15s}
.fl-go:hover{background:var(--orange-soft)}
.fl-go:focus-visible{outline:none;box-shadow:0 0 0 4px rgba(245,119,43,.3)}
.fl-go[disabled]{opacity:.6;cursor:default}

/* popovers (calendar + travellers) — mirror .sf__panel behaviour */
.fl-pop{position:absolute;top:calc(100% + 8px);left:0;z-index:70;min-width:320px;max-width:420px;background:#fff;
  border:1px solid var(--sand2);border-radius:16px;box-shadow:0 24px 60px rgba(36,19,51,.26);padding:16px}
.fl-pop--wide{min-width:340px;max-width:680px}
@media (max-width:640px){.fl-pop{position:fixed;left:10px;right:10px;top:auto;bottom:10px;max-width:none;min-width:0;z-index:220;max-height:76vh;overflow:auto}}
.fl-pop__done{margin-top:12px}

/* calendar */
.fl-cal{display:flex;gap:18px}
.fl-cal__m{flex:1 1 50%;min-width:0}
.fl-cal__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.fl-cal__title{font-weight:700;color:var(--plum);font-size:.98rem}
.fl-cal__nav{width:34px;height:34px;border:1.5px solid #ddd3ea;border-radius:10px;background:#fff;color:var(--plum);
  font-size:18px;cursor:pointer}
.fl-cal__nav:hover{border-color:var(--purple)}
.fl-cal__nav[disabled]{opacity:.35;cursor:default}
.fl-cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.fl-cal__dow{font-size:.68rem;font-weight:700;color:#8B8496;text-align:center;padding:4px 0;text-transform:uppercase}
.fl-cal__d{appearance:none;border:0;background:transparent;border-radius:10px;height:38px;font:inherit;font-size:.9rem;
  color:var(--txt);cursor:pointer}
.fl-cal__d:hover{background:#F3EDFA}
.fl-cal__d:focus-visible{outline:2px solid var(--purple);outline-offset:-2px}
.fl-cal__d.is-past{color:#c9c2d3;cursor:default;background:none}
.fl-cal__d.is-today{box-shadow:inset 0 0 0 1.5px var(--gold)}
.fl-cal__d.is-sel{background:var(--purple);color:#fff;font-weight:700}
.fl-cal__d.is-in{background:#EFE7F9;border-radius:0}
.fl-cal__d.is-start{border-radius:10px 0 0 10px}
.fl-cal__d.is-end{border-radius:0 10px 10px 0}
.fl-cal__hint{font-size:.8rem;color:var(--txt-soft);margin:10px 0 0}
@media (max-width:640px){.fl-cal{flex-direction:column;gap:10px}}

/* travellers popover */
.fl-who__step{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0}
.fl-who__step span{font-weight:600;color:var(--txt)}
.fl-who__step small{display:block;font-weight:400;color:var(--txt-soft)}
.fl-who__btns{display:inline-flex;align-items:center;gap:12px}
.fl-who__btns button{width:36px;height:36px;border-radius:50%;border:1.5px solid #ddd3ea;background:#fff;color:var(--purple);
  font-size:18px;line-height:1;cursor:pointer}
.fl-who__btns button:hover{border-color:var(--purple)}
.fl-who__btns button[disabled]{opacity:.35;cursor:default}
.fl-who__btns b{min-width:20px;text-align:center;font-size:1rem}
.fl-who__ages{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 6px}
.fl-who__ages label{display:flex;flex-direction:column;gap:4px;font-size:.75rem;color:var(--txt-soft)}
.fl-who__ages select{height:40px;border:1.5px solid #ddd3ea;border-radius:10px;background:#fff;font:inherit;padding:0 8px}
.fl-who__cabin{margin-top:8px;padding-top:12px;border-top:1px solid var(--sand)}
.fl-who__cabin .fl-label{margin-bottom:6px;display:block}
.fl-who__cabin select{width:100%;height:46px;border:1.5px solid #ddd3ea;border-radius:12px;background:#fff;font:inherit;padding:0 10px}
.fl-who__note{font-size:.82rem;color:#8A5A00;background:#FFF6E8;border:1px solid #F2DDBB;border-radius:10px;padding:8px 12px;margin:8px 0 0}

/* autocomplete dropdown */
.fl-ac{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:80;background:#fff;border:1px solid var(--sand2);
  border-radius:14px;box-shadow:0 18px 44px rgba(36,19,51,.22);overflow:hidden;max-height:340px;overflow-y:auto}
.fl-ac__opt{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:#fff;border:0;padding:11px 14px;
  font:inherit;font-size:.94rem;color:var(--txt);cursor:pointer}
.fl-ac__opt:hover,.fl-ac__opt.is-hot{background:#FFF1E8;box-shadow:inset 3px 0 0 var(--orange)}
.fl-ac__opt--child{padding-left:34px}
.fl-ac__code{flex:0 0 auto;min-width:44px;text-align:center;font-weight:700;font-size:.78rem;color:var(--purple);
  background:#F3EDFA;border-radius:8px;padding:4px 6px}
.fl-ac__main{flex:1 1 auto;min-width:0}
.fl-ac__main b{display:block;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fl-ac__main small{display:block;color:var(--txt-soft);font-size:.8rem}
.fl-ac__group{padding:9px 14px 4px;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#8B8496}
.fl-ac__none,.fl-ac__load,.fl-ac__err{padding:13px 15px;color:#6b5a80;font-size:.9rem;font-style:italic}
.fl-ac__err{color:#8A5A00;font-style:normal}

/* multi-city legs */
.fl-legs{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.fl-leg{display:grid;grid-template-columns:auto minmax(0,2fr) minmax(0,2fr) minmax(0,1.4fr) 40px;gap:10px;align-items:end}
.fl-leg__n{align-self:center;font-weight:800;color:var(--purple);background:#F3EDFA;border-radius:10px;padding:6px 10px;font-size:.8rem}
.fl-leg input[type=date]{height:56px;border:1.5px solid #ddd3ea;border-radius:14px;background:#fff;font:inherit;padding:0 10px;width:100%}
.fl-leg .fl-ctl{height:56px}
.fl-leg__rm{width:40px;height:56px;border:0;background:transparent;color:#a1489b;font-size:20px;cursor:pointer;border-radius:10px}
.fl-leg__rm:hover{background:#F9EFF8;color:#7c2f77}
.fl-addleg{margin-top:10px;background:transparent;border:1.5px dashed #c9b8e2;color:var(--purple);border-radius:12px;
  padding:10px 16px;font:inherit;font-weight:600;cursor:pointer}
.fl-addleg:hover{background:#F7F3FC;border-style:solid}

/* no-JS fallback: native controls shown until flights.js enhances (root gains [data-flenh]) */
.fl-njs{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:10px}
.fl-njs select,.fl-njs input{height:56px;border:1.5px solid #ddd3ea;border-radius:12px;background:#fff;font:inherit;padding:0 10px}
[data-flenh] .fl-njs{display:none}
.fl-native{display:flex;gap:8px;margin-top:8px}
.fl-native input[type=date]{height:56px;border:1.5px solid #ddd3ea;border-radius:12px;background:#fff;font:inherit;padding:0 10px;flex:1 1 auto;min-width:0}
[data-flenh] .fl-native{display:none}
.fl-search [data-fl-dates-btn],.fl-search [data-fl-who-btn]{display:none}
[data-flenh] [data-fl-dates-btn],[data-flenh] [data-fl-who-btn]{display:flex}
.fl-trip label:has(input:checked){background:var(--purple);color:#fff}
.fl-leg .fl-ctl input[type=text]{padding-left:14px}
.fl-search--inline{margin:0}

@media (max-width:1100px){
  .fl-row{grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr);grid-auto-rows:auto}
  .fl-row .fl-field--dates{grid-column:1 / 2}
  .fl-row .fl-field--who{grid-column:3 / 4}
  .fl-row .fl-go{grid-column:1 / -1;max-width:none}
  .fl-leg{grid-template-columns:auto minmax(0,1fr) minmax(0,1fr);grid-auto-rows:auto}
  .fl-leg input[type=date]{grid-column:2 / 4}
}
@media (max-width:640px){
  .fl-row{grid-template-columns:1fr;gap:8px}
  .fl-swap{width:100%;height:36px;align-self:auto}
  .fl-swap button{width:34px;height:34px;transform:rotate(90deg)}
  .fl-swap button.is-spun{transform:rotate(270deg)}
  .fl-row .fl-field--dates,.fl-row .fl-field--who,.fl-row .fl-go{grid-column:auto}
  .fl-ctl,.fl-btnctl,.fl-go{height:58px}
  .fl-trip{width:100%;justify-content:space-between}
  .fl-trip label{flex:1 1 auto;justify-content:center;padding:9px 8px}
}

/* ---------- results page ---------- */
.fl-page{background:linear-gradient(180deg,#FAF7F2 0%,#fff 340px);min-height:60vh;padding:26px 0 70px}
.fl-sum{background:#fff;border:1px solid var(--sand2);border-radius:18px;box-shadow:var(--shadow);padding:14px 18px;
  display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:18px}
.fl-sum__route{font-weight:800;color:var(--plum);font-size:1.06rem;display:flex;align-items:center;gap:8px}
.fl-sum__route svg{width:17px;height:17px;color:var(--orange)}
.fl-sum__meta{color:var(--txt-soft);font-size:.92rem;display:flex;flex-wrap:wrap;gap:4px 14px}
.fl-sum__edit{margin-left:auto;background:transparent;border:1.5px solid #ddd3ea;border-radius:999px;color:var(--purple);
  font:inherit;font-weight:600;font-size:.9rem;padding:8px 16px;cursor:pointer}
.fl-sum__edit:hover{border-color:var(--purple);background:#F7F3FC}
.fl-sum__editwrap{flex-basis:100%;display:none;border-top:1px solid var(--sand);padding-top:14px;margin-top:4px}
.fl-sum__editwrap.is-open{display:block}

.fl-status{display:flex;align-items:center;gap:10px;margin:2px 2px 14px;color:var(--txt-soft);font-size:.95rem;min-height:28px}
.fl-status b{color:var(--plum)}
.fl-status__spin{width:16px;height:16px;border-radius:50%;border:2.5px solid #E5DCF2;border-top-color:var(--purple);
  animation:flspin .8s linear infinite}
@keyframes flspin{to{transform:rotate(360deg)}}
.fl-status__bar{flex:1 1 120px;max-width:220px;height:5px;border-radius:999px;background:#EFE8F8;overflow:hidden}
.fl-status__bar i{display:block;height:100%;width:30%;border-radius:999px;background:linear-gradient(90deg,var(--purple),var(--orange));
  animation:flsweep 1.4s ease-in-out infinite}
@keyframes flsweep{0%{margin-left:-30%}100%{margin-left:100%}}
@media (prefers-reduced-motion:reduce){.fl-status__bar i,.fl-status__spin{animation-duration:3s}}

.fl-body{display:grid;grid-template-columns:272px minmax(0,1fr);gap:22px;align-items:start}
@media (max-width:960px){.fl-body{grid-template-columns:minmax(0,1fr)}}

/* filters rail */
.fl-filters{background:#fff;border:1px solid var(--sand2);border-radius:18px;box-shadow:var(--shadow);padding:18px;position:sticky;top:86px}
.fl-filters h3{margin:0 0 4px;font-size:1rem;color:var(--plum)}
.fl-filters__clear{background:none;border:0;color:var(--purple);font:inherit;font-size:.85rem;font-weight:600;cursor:pointer;padding:0}
.fl-fgroup{border-top:1px solid var(--sand);padding:13px 0 12px}
.fl-fgroup > b{display:block;font-size:.78rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#5b4a6e;margin-bottom:9px}
.fl-check{display:flex;align-items:center;gap:9px;padding:5px 0;font-size:.92rem;color:var(--txt);cursor:pointer}
.fl-check input{width:17px;height:17px;accent-color:var(--purple)}
.fl-check .mut{margin-left:auto;font-size:.82rem}
.fl-frange{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--txt-soft)}
.fl-frange input[type=range]{flex:1 1 auto;accent-color:var(--purple)}
.fl-fhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.fl-filters__toggle{display:none}
@media (max-width:960px){
  .fl-filters{position:fixed;left:0;right:0;bottom:0;top:auto;z-index:230;border-radius:20px 20px 0 0;max-height:78vh;overflow:auto;
    transform:translateY(105%);transition:transform .25s}
  .fl-filters.is-open{transform:none}
  .fl-filters__toggle{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1.5px solid #ddd3ea;border-radius:999px;
    padding:9px 16px;font:inherit;font-weight:600;color:var(--plum);cursor:pointer}
  .fl-scrim{position:fixed;inset:0;background:rgba(20,10,30,.45);z-index:225;display:none}
  .fl-scrim.is-on{display:block}
}

/* sort tabs */
.fl-sort{display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px;margin-bottom:14px}
.fl-sort button{flex:0 0 auto;background:#fff;border:1.5px solid #ddd3ea;border-radius:999px;padding:9px 16px;font:inherit;
  font-weight:600;font-size:.9rem;color:#5b4a6e;cursor:pointer;white-space:nowrap}
.fl-sort button:hover{border-color:#b9a6d6}
.fl-sort button.is-on{background:var(--plum);border-color:var(--plum);color:#fff}
.fl-sort button small{display:block;font-weight:500;font-size:.72rem;opacity:.75}
.fl-sort__why{background:none;border:0;color:var(--purple);font:inherit;font-size:.83rem;cursor:pointer;text-decoration:underline;white-space:nowrap;align-self:center}

/* offer cards */
.fl-list{display:flex;flex-direction:column;gap:14px}
.fl-card{background:#fff;border:1px solid var(--sand2);border-radius:18px;box-shadow:var(--shadow);overflow:hidden}
.fl-card.is-expired{opacity:.72}
.fl-card__main{display:grid;grid-template-columns:minmax(0,1fr) 178px;gap:0}
.fl-card__slices{padding:16px 18px 12px;min-width:0}
.fl-card__buy{border-left:1px dashed var(--sand2);padding:16px;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:6px;text-align:right}
.fl-badges{display:flex;flex-wrap:wrap;gap:6px;padding:12px 18px 0}
.fl-badge{font-size:.7rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;border-radius:999px;padding:4px 10px}
.fl-badge--best{background:#EFE7F9;color:var(--purple)}
.fl-badge--cheap{background:#E8F4EC;color:#1E7A4C}
.fl-badge--fast{background:#FFF1E8;color:#B4551A}
.fl-badge--direct{background:#EAF3F4;color:var(--teal)}
.fl-badge--expired{background:#F5E9E7;color:#B03A2E}
.fl-slice{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;padding:9px 0;align-items:center}
.fl-slice + .fl-slice{border-top:1px solid var(--sand)}
.fl-logo{width:44px;height:44px;border-radius:12px;background:#F3EDFA;display:flex;align-items:center;justify-content:center;overflow:hidden}
.fl-logo img{width:34px;height:34px;object-fit:contain}
.fl-logo span{font-weight:800;font-size:.82rem;color:var(--purple)}
.fl-slice__body{min-width:0}
.fl-slice__times{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.fl-slice__times b{font-size:1.14rem;color:var(--plum);font-weight:700}
.fl-slice__arrow{color:var(--txt-soft)}
.fl-slice__plus{font-size:.72rem;font-weight:700;color:var(--orange);vertical-align:super}
.fl-slice__meta{display:flex;flex-wrap:wrap;gap:4px 12px;color:var(--txt-soft);font-size:.84rem;margin-top:3px}
.fl-slice__meta .is-direct{color:var(--teal);font-weight:600}
.fl-slice__meta .is-stops{color:#B4551A;font-weight:600}
.fl-slice__op{font-size:.78rem;color:var(--txt-soft);margin-top:2px}
.fl-price__from{font-size:.76rem;color:var(--txt-soft)}
.fl-price{font-size:1.5rem;font-weight:800;color:var(--plum);line-height:1.1}
.fl-price small{display:block;font-size:.78rem;font-weight:500;color:var(--txt-soft)}
.fl-card__cta{margin-top:6px;border:0;border-radius:12px;background:var(--orange);color:#fff;font:inherit;font-weight:700;
  padding:11px 18px;cursor:pointer;box-shadow:0 8px 20px rgba(245,119,43,.32)}
.fl-card__cta:hover{background:var(--orange-soft)}
.fl-card__cta[disabled]{background:#cfc6dc;box-shadow:none;cursor:default}
.fl-card__foot{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;border-top:1px solid var(--sand);padding:9px 18px;font-size:.83rem;color:var(--txt-soft)}
.fl-card__foot .fl-fare{font-weight:700;color:var(--purple)}
.fl-tag{display:inline-flex;align-items:center;gap:5px}
.fl-tag svg{width:14px;height:14px;color:var(--purple);opacity:.8}
.fl-tag.is-no{color:#a89bb8;text-decoration:line-through}
.fl-card__more{margin-left:auto;background:none;border:0;color:var(--purple);font:inherit;font-size:.86rem;font-weight:600;cursor:pointer;padding:4px 0}
.fl-card__more:hover{text-decoration:underline}
.fl-ali{display:flex;align-items:center;gap:8px;background:#FBF7FF;border-top:1px solid #EFE7F9;padding:7px 18px;font-size:.85rem;color:#4A3563}
.fl-ali__dot{flex:0 0 auto;width:22px;height:22px;border-radius:50%;background:var(--purple) url(/assets/img/hero-guru.png?v=1.7.5) center 18%/cover no-repeat;box-shadow:0 0 0 2px #EFE7F9}

/* details + fares expansion */
.fl-detail{border-top:1px solid var(--sand);background:#FCFAF7;padding:16px 18px;display:none}
.fl-detail.is-open{display:block}
.fl-detail h4{margin:8px 0 8px;font-size:.83rem;letter-spacing:.06em;text-transform:uppercase;color:#5b4a6e}
.fl-seg{display:grid;grid-template-columns:14px minmax(0,1fr);gap:12px;position:relative;padding:6px 0}
.fl-seg::before{content:"";position:absolute;left:6px;top:14px;bottom:-8px;width:2px;background:#E2D8EF}
.fl-seg:last-of-type::before{display:none}
.fl-seg__dot{width:14px;height:14px;border-radius:50%;border:3px solid var(--purple);background:#fff;margin-top:4px;position:relative;z-index:1}
.fl-seg__t{font-weight:700;color:var(--plum)}
.fl-seg__t small{font-weight:500;color:var(--txt-soft);margin-left:8px}
.fl-seg__sub{font-size:.85rem;color:var(--txt-soft);margin:2px 0 4px}
.fl-lay{margin:4px 0 4px 26px;background:#FFF6E8;border:1px solid #F2DDBB;border-radius:10px;padding:8px 12px;font-size:.85rem;color:#7A5200}
.fl-lay.is-warn{background:#F9E9E7;border-color:#EAC5C0;color:#8E2F24;font-weight:600}
.fl-fares{border-top:1px solid var(--sand);background:#FCFAF7;padding:14px 18px;display:none}
.fl-fares.is-open{display:block}
.fl-fares__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}
.fl-fareopt{background:#fff;border:1.5px solid var(--sand2);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:7px}
.fl-fareopt.is-picked{border-color:var(--purple);box-shadow:0 0 0 3px rgba(91,46,145,.12)}
.fl-fareopt b{color:var(--plum)}
.fl-fareopt ul{list-style:none;margin:0;padding:0;font-size:.84rem;color:var(--txt-soft);display:flex;flex-direction:column;gap:4px}
.fl-fareopt .fl-price{font-size:1.2rem}
.fl-fareopt button{border:1.5px solid var(--purple);background:#fff;color:var(--purple);border-radius:10px;padding:9px 12px;
  font:inherit;font-weight:700;cursor:pointer}
.fl-fareopt button:hover{background:var(--purple);color:#fff}

/* skeletons */
.fl-skel{background:#fff;border:1px solid var(--sand2);border-radius:18px;padding:18px;display:grid;grid-template-columns:44px 1fr 150px;gap:14px;align-items:center}
.fl-skel i{display:block;border-radius:8px;background:linear-gradient(90deg,#F1ECE4 25%,#FAF6EF 50%,#F1ECE4 75%);background-size:200% 100%;animation:flshim 1.2s linear infinite}
@keyframes flshim{to{background-position:-200% 0}}
.fl-skel__logo{width:44px;height:44px;border-radius:12px}
.fl-skel__l1{height:16px;width:70%}
.fl-skel__l2{height:11px;width:45%;margin-top:8px}
.fl-skel__p{height:26px;width:90%;justify-self:end}
@media (prefers-reduced-motion:reduce){.fl-skel i{animation:none}}

.fl-empty{background:#fff;border:1px solid var(--sand2);border-radius:18px;box-shadow:var(--shadow);padding:34px 26px;text-align:center}
.fl-empty h3{margin:0 0 8px;color:var(--plum)}
.fl-empty p{margin:0 0 16px;color:var(--txt-soft)}

/* why-best popover */
.fl-why{position:absolute;z-index:90;background:var(--plum);color:#EFE9F7;border-radius:14px;padding:14px 16px;font-size:.86rem;
  max-width:320px;box-shadow:0 20px 50px rgba(20,10,30,.4)}
.fl-why b{color:#fff}

/* ---------- checkout ---------- */
.fl-steps{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:20px}
.fl-steps li{list-style:none;display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;font-size:.86rem;
  font-weight:600;color:#8B8496;background:#F5F1EA}
.fl-steps li.is-on{background:var(--plum);color:#fff}
.fl-steps li.is-done{background:#E8F4EC;color:#1E7A4C}
.fl-steps li i{font-style:normal;width:20px;height:20px;border-radius:50%;background:rgba(255,255,255,.25);display:inline-flex;
  align-items:center;justify-content:center;font-size:.75rem;font-weight:800}
.fl-steps li.is-done i{background:#1E7A4C;color:#fff}
.fl-steps li:not(.is-on):not(.is-done) i{background:#E7E0D2;color:#8B8496}

.fl-co{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;align-items:start}
@media (max-width:960px){.fl-co{grid-template-columns:minmax(0,1fr)}.fl-rail{position:static}}
.fl-panelbox{background:#fff;border:1px solid var(--sand2);border-radius:18px;box-shadow:var(--shadow);padding:22px;margin-bottom:16px}
.fl-panelbox h2{margin:0 0 4px;font-size:1.25rem;color:var(--plum)}
.fl-panelbox .mut{color:var(--txt-soft)}
.fl-stage{display:none}
.fl-stage.is-on{display:block}

/* countdown */
.fl-timer{display:flex;align-items:center;gap:10px;background:#F7F3FC;border:1.5px solid #E2D8EF;border-radius:14px;
  padding:11px 14px;font-size:.92rem;color:var(--plum);margin-bottom:14px}
.fl-timer b{font-variant-numeric:tabular-nums;font-size:1.05rem}
.fl-timer svg{width:18px;height:18px;color:var(--purple)}
.fl-timer.is-warm{background:#FFF3E9;border-color:#F5CBA6;color:#8F4A12}
.fl-timer.is-warm svg{color:var(--orange)}
.fl-timer.is-hot{background:#FDEBE0;border-color:#F0B18A;color:#93400C;font-weight:600}
.fl-timer.is-hot b{color:#C4551B}
.fl-timer__sub{font-size:.8rem;color:inherit;opacity:.85;display:block;font-weight:400}

/* reprice overlay card */
.fl-reprice{background:#fff;border:1.5px solid #E2D8EF;border-radius:18px;box-shadow:var(--shadow);padding:22px;margin-bottom:16px}
.fl-reprice h3{margin:0 0 6px;color:var(--plum)}
.fl-reprice p{margin:0 0 8px;color:var(--txt-soft)}
.fl-reprice__ok{color:#1E7A4C;font-weight:700}
.fl-reprice__down{color:#1E7A4C;font-weight:700}
.fl-reprice__up{color:#B4551A;font-weight:700}
.fl-reprice .btn-row{margin-top:14px}

/* passenger forms */
.fl-pax{border:1.5px solid var(--sand2);border-radius:16px;padding:18px;margin-bottom:14px}
.fl-pax h3{margin:0 0 2px;font-size:1.02rem;color:var(--plum)}
.fl-pax .mut{font-size:.85rem}
.fl-grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-top:12px}
.fl-f label{display:block;font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#5b4a6e;margin-bottom:5px}
.fl-f input,.fl-f select{width:100%;height:50px;border:1.5px solid #ddd3ea;border-radius:12px;background:#fff;font:inherit;padding:0 12px}
.fl-f input:focus,.fl-f select:focus{outline:none;border-color:var(--purple);box-shadow:0 0 0 4px rgba(91,46,145,.14)}
.fl-f.is-invalid input,.fl-f.is-invalid select{border-color:#C13A2E}
.fl-f .fl-fielderr{display:none}
.fl-f.is-invalid .fl-fielderr{display:block}
.fl-docnote{background:#F7F3FC;border:1px solid #E2D8EF;border-radius:12px;padding:10px 14px;font-size:.86rem;color:#4A3563;margin:12px 0 0}

/* bags */
.fl-bag{display:flex;align-items:center;gap:14px;border:1.5px solid var(--sand2);border-radius:14px;padding:13px 16px;margin-bottom:10px}
.fl-bag svg{width:22px;height:22px;color:var(--purple);flex:0 0 auto}
.fl-bag__body{flex:1 1 auto;min-width:0}
.fl-bag__body b{display:block;color:var(--plum)}
.fl-bag__body small{color:var(--txt-soft)}
.fl-bag__inc{font-weight:700;color:#1E7A4C;font-size:.88rem}
.fl-bag__qty{display:inline-flex;align-items:center;gap:10px}
.fl-bag__qty button{width:32px;height:32px;border-radius:50%;border:1.5px solid #ddd3ea;background:#fff;color:var(--purple);cursor:pointer;font-size:16px}
.fl-bag__qty button[disabled]{opacity:.35;cursor:default}
.fl-bag__price{min-width:74px;text-align:right;font-weight:700;color:var(--plum)}

/* seat map */
.fl-seattabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.fl-seattabs button{background:#fff;border:1.5px solid #ddd3ea;border-radius:999px;padding:8px 14px;font:inherit;font-size:.86rem;font-weight:600;color:#5b4a6e;cursor:pointer}
.fl-seattabs button.is-on{background:var(--purple);border-color:var(--purple);color:#fff}
.fl-paxchips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.fl-paxchips button{background:#F5F1EA;border:1.5px solid transparent;border-radius:999px;padding:7px 13px;font:inherit;font-size:.84rem;font-weight:600;color:var(--txt);cursor:pointer}
.fl-paxchips button.is-on{background:#EFE7F9;border-color:var(--purple);color:var(--purple)}
.fl-paxchips button b{font-weight:800}
.fl-cabinwrap{overflow-x:auto;padding:6px 2px 14px}
.fl-cabin{margin:0 auto;background:linear-gradient(180deg,#F8F5FD,#fff);border:1.5px solid #E2D8EF;border-radius:40px 40px 18px 18px;
  padding:26px 14px 18px;width:max-content;min-width:230px}
.fl-cabin__row{display:flex;align-items:center;gap:5px;margin-bottom:5px}
.fl-cabin__num{width:26px;text-align:center;font-size:.72rem;font-weight:700;color:#8B8496}
.fl-cabin__aisle{width:18px;text-align:center;font-size:.62rem;color:#c9c2d3}
.fl-seat{width:34px;height:34px;border-radius:9px 9px 6px 6px;border:1.5px solid #C8BBDD;background:#fff;color:var(--plum);
  font-size:.66rem;font-weight:700;cursor:pointer;position:relative}
.fl-seat:hover{border-color:var(--purple);background:#F7F3FC}
.fl-seat.is-free{border-color:#9CC7A9;background:#F0F8F2}
.fl-seat.is-paid{border-color:#C8BBDD;background:#fff}
.fl-seat.is-unavail{background:#EEE9E1;border-color:#E0D8CB;color:#B7AE9F;cursor:default}
.fl-seat.is-sel{background:var(--purple);border-color:var(--purple);color:#fff;box-shadow:0 4px 10px rgba(91,46,145,.35)}
.fl-seat.is-other{background:#E3D9F2;border-color:#C8BBDD;color:#5B2E91}
.fl-seat.is-bass::after{content:"👶";position:absolute;top:-9px;right:-5px;font-size:.6rem}
.fl-seatlegend{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:.8rem;color:var(--txt-soft);margin-top:4px}
.fl-seatlegend i{display:inline-block;width:14px;height:14px;border-radius:4px;vertical-align:-2px;margin-right:5px;border:1.5px solid #C8BBDD;background:#fff}
.fl-seatlegend .lg-free{background:#F0F8F2;border-color:#9CC7A9}
.fl-seatlegend .lg-sel{background:var(--purple);border-color:var(--purple)}
.fl-seatlegend .lg-un{background:#EEE9E1;border-color:#E0D8CB}
.fl-seatpick{font-size:.86rem;color:var(--txt-soft);margin-top:6px}

/* notices */
.fl-notice{display:flex;gap:11px;align-items:flex-start;border:1.5px solid var(--sand2);border-radius:14px;padding:14px 16px;margin-bottom:10px}
.fl-notice input{width:19px;height:19px;margin-top:2px;accent-color:var(--purple);flex:0 0 auto}
.fl-notice span{font-size:.9rem;color:var(--txt)}
.fl-notice a{color:var(--purple)}
.fl-conds{background:#FCFAF7;border:1px solid var(--sand2);border-radius:14px;padding:14px 16px;font-size:.88rem;color:var(--txt-soft);margin-bottom:14px}
.fl-conds b{color:var(--plum)}

/* sticky total rail */
.fl-rail{position:sticky;top:86px}
.fl-total{background:#fff;border:1px solid var(--sand2);border-radius:18px;box-shadow:var(--shadow);padding:20px}
.fl-total h3{margin:0 0 10px;font-size:1.02rem;color:var(--plum)}
.fl-total__row{display:flex;justify-content:space-between;gap:10px;padding:5px 0;font-size:.93rem;color:var(--txt)}
.fl-total__row .mut{color:var(--txt-soft)}
.fl-total__grand{border-top:1.5px solid var(--sand);margin-top:8px;padding-top:11px;font-weight:800;color:var(--plum);font-size:1.12rem}
.fl-total__test{font-size:.78rem;color:var(--txt-soft);margin-top:6px}
.fl-total .fl-go{margin-top:14px;height:56px;font-size:1rem}
@media (max-width:960px){
  .fl-mobilebar{position:fixed;left:0;right:0;bottom:0;z-index:210;background:#fff;border-top:1.5px solid var(--sand2);
    box-shadow:0 -12px 30px rgba(36,19,51,.14);padding:10px 14px calc(10px + env(safe-area-inset-bottom));
    display:flex;align-items:center;gap:12px}
  .fl-mobilebar__tot{font-weight:800;color:var(--plum);font-size:1.06rem;line-height:1.15}
  .fl-mobilebar__tot small{display:block;font-weight:500;font-size:.72rem;color:var(--txt-soft)}
  .fl-mobilebar__timer{font-variant-numeric:tabular-nums;font-size:.82rem;color:var(--purple);font-weight:700}
  .fl-mobilebar__timer.is-hot{color:#C4551B}
  .fl-mobilebar .fl-go{margin-left:auto;height:48px;width:auto;padding:0 20px;font-size:.95rem}
  body.fl-hasbar{padding-bottom:84px}
}

/* test-mode banner */
.fl-testband{background:repeating-linear-gradient(-45deg,#33194A,#33194A 14px,#3F2158 14px,#3F2158 28px);color:#F1E7FF;
  border-radius:14px;padding:11px 16px;font-size:.9rem;font-weight:600;display:flex;align-items:center;gap:10px;margin-bottom:18px}
.fl-testband svg{width:18px;height:18px;color:var(--gold2);flex:0 0 auto}

/* ---------- confirmation ---------- */
.fl-conf__head{display:flex;align-items:center;gap:14px;margin-bottom:6px}
.fl-conf__tick{width:52px;height:52px;border-radius:50%;background:#E8F4EC;color:#1E7A4C;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.fl-conf__tick svg{width:26px;height:26px}
.fl-kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:14px 0}
.fl-kv div{background:#FCFAF7;border:1px solid var(--sand2);border-radius:12px;padding:11px 14px}
.fl-kv b{display:block;font-size:.72rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#5b4a6e;margin-bottom:3px}
.fl-kv span{color:var(--plum);font-weight:600;word-break:break-word}

/* ---------- my trips ---------- */
.fl-trip-card{background:#fff;border:1px solid var(--sand2);border-radius:18px;box-shadow:var(--shadow);padding:20px;margin-bottom:16px}
.fl-trip-card__head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:10px}
.fl-trip-card__head h3{margin:0;font-size:1.08rem;color:var(--plum)}
.fl-trip-card__refs{font-size:.85rem;color:var(--txt-soft)}
.fl-trip-card__refs b{color:var(--plum)}
.fl-trip-card .fl-slice{padding:7px 0}
.fl-trip-card__facts{display:flex;flex-wrap:wrap;gap:5px 18px;font-size:.87rem;color:var(--txt-soft);border-top:1px solid var(--sand);padding-top:10px;margin-top:6px}
.fl-alert{background:#FFF6E8;border:1.5px solid #F2DDBB;border-radius:12px;padding:11px 14px;font-size:.88rem;color:#7A5200;margin:10px 0}
.fl-alert.is-red{background:#F9E9E7;border-color:#EAC5C0;color:#8E2F24}
.fl-cancelbox{border-top:1px solid var(--sand);margin-top:12px;padding-top:14px}
.fl-cancelbox[hidden]{display:none}
.fl-modal{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:16px}
.fl-modal__scrim{position:absolute;inset:0;background:rgba(20,10,30,.5)}
.fl-modal__card{position:relative;background:#fff;border-radius:18px;box-shadow:0 30px 80px rgba(20,10,30,.4);max-width:460px;width:100%;padding:24px;max-height:88vh;overflow:auto}
.fl-modal__card h3{margin:0 0 8px;color:var(--plum)}

/* (Flight Lab styles are inlined in src/views/hq/flightlab.php — HQ pages load hq.css, not site.css) */

/* ---------- shared bits ---------- */
.fl-hidden{display:none !important}
.fl-visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* ===== end v9.0 flights patch ===== */

/* trip-type visibility fix (v1.8.3) */
.fl-legs[hidden],.fl-leg[hidden]{display:none!important;}
.fl-field.fl-hidden,.fl-swap.fl-hidden,.fl-field--dates.fl-hidden{display:none!important;}

/* multi-city row layout fix (v1.8.4) */
.fl-row:has(.fl-field--from.fl-hidden){grid-template-columns:minmax(0,1fr) minmax(0,240px)!important;}
.fl-row:has(.fl-field--from.fl-hidden) .fl-field--who{grid-column:1/2!important;}
.fl-row:has(.fl-field--from.fl-hidden) .fl-go{grid-column:2/3!important;}

/* ===== AWT FLIGHTS — PREMIUM VISUAL REFINEMENT v1.9.0 ===== */
@media (min-width:1000px){ .fl-page{padding-top:92px} }
.fl-page,.fl-co{font-family:var(--ff-b);color:var(--txt)}
.fl-page h2,.fl-co h2{font-family:var(--ff-d);font-weight:600;letter-spacing:-.012em;color:var(--plum);font-size:clamp(1.12rem,1.5vw,1.34rem);margin:0 0 4px}
.fl-page h3,.fl-co h3{font-family:var(--ff-b);font-weight:700;color:var(--plum)}
.fl-stage h4{font-family:var(--ff-b)!important;font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--txt-soft);margin:24px 0 12px;display:flex;align-items:center;gap:12px}
.fl-stage h4::after{content:"";flex:1;height:1px;background:rgba(36,19,51,.09)}
.fl-seg,.fl-seg__t,.fl-seg__sub,.fl-lay,.fl-conds,.fl-total,.fl-total__row,.fl-total__grand,.fl-mobilebar,.fl-mobilebar__tot,.fl-mobilebar__timer,.fl-price,.fl-card__buy,.fl-slice__meta,.fl-fare{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
.fl-testband{background:var(--plum)!important;background-image:none!important;border:0!important;border-radius:0!important;padding:11px 22px!important;font-size:.82rem;color:#E9E2EF!important;box-shadow:inset 0 -1px 0 rgba(255,255,255,.07)}
.fl-testband b,.fl-testband strong{color:#fff}
@media (min-width:1000px){ .fl-testband{padding-left:272px!important} }
.fl-steps{gap:8px;flex-wrap:wrap}
.fl-timer{display:none!important}
.fl-panelbox{background:rgba(255,255,255,.88)!important;-webkit-backdrop-filter:blur(14px) saturate(1.04);backdrop-filter:blur(14px) saturate(1.04);border:1px solid rgba(36,19,51,.07)!important;border-radius:18px!important;box-shadow:0 1px 2px rgba(36,19,51,.04),0 12px 34px rgba(36,19,51,.07)!important;padding:26px 28px!important}
.fl-seg__t{font-weight:650;color:var(--plum);letter-spacing:-.01em}
.fl-seg__sub{color:var(--txt-soft);font-size:.86rem}
.fl-lay{background:#FBFAF8!important;border:1px solid rgba(36,19,51,.09)!important;border-left:3px solid var(--gold)!important;border-radius:10px!important;color:var(--plum)!important;font-size:.83rem;font-weight:600;padding:10px 14px!important;margin:10px 0 10px 26px!important;display:flex;align-items:center;gap:10px}
.fl-lay::before{content:"";width:13px;height:13px;border-radius:50%;border:2px solid var(--gold-deep);flex:0 0 13px;opacity:.9}
.fl-lay.is-warn{background:#fff!important;border:1px solid rgba(36,19,51,.14)!important;border-left:3px solid var(--plum)!important;color:var(--plum)!important;font-weight:700;box-shadow:0 2px 12px rgba(36,19,51,.07)!important}
.fl-lay.is-warn::before{content:"!";width:18px;height:18px;flex:0 0 18px;border:0;border-radius:50%;background:var(--plum);color:#fff;font-size:.68rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center;opacity:1}
.fl-conds{background:#FBFAF8!important;border:1px solid rgba(36,19,51,.07)!important;border-radius:14px!important;padding:16px 18px!important;margin-top:22px!important;display:grid!important;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px 24px}
.fl-conds>div{display:flex;flex-direction:column;gap:3px;font-size:.88rem;color:var(--plum)}
.fl-conds b{font-family:var(--ff-b);font-size:.64rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--txt-soft)}
.fl-rail{align-self:start}
@media (min-width:1000px){ .fl-rail{position:sticky;top:84px} }
.fl-total{background:rgba(255,255,255,.9)!important;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(36,19,51,.08)!important;border-radius:18px!important;box-shadow:0 1px 2px rgba(36,19,51,.04),0 14px 40px rgba(36,19,51,.08)!important;padding:22px!important}
.fl-total h3{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--txt-soft);margin:0 0 14px}
.fl-total__row{display:flex;justify-content:space-between;gap:16px;padding:7px 0;font-size:.9rem}
.fl-total__grand{display:flex;justify-content:space-between;align-items:baseline;margin-top:12px;padding-top:14px;border-top:1px solid rgba(36,19,51,.10);font-size:1.45rem;font-weight:750;color:var(--plum);letter-spacing:-.02em}
.fl-total__test{font-size:.75rem;color:var(--txt-soft);line-height:1.55;margin-top:12px}
.fl-total .fl-go[data-fl-cta]{display:none!important}
.btn-row .btn[data-fl-next]{display:none!important}
.fl-mobilebar{display:flex!important;align-items:center;gap:20px;position:fixed;left:0;right:0;bottom:0;z-index:60;padding:12px 20px!important;background:rgba(255,255,255,.86)!important;-webkit-backdrop-filter:blur(18px) saturate(1.1);backdrop-filter:blur(18px) saturate(1.1);border-top:1px solid rgba(36,19,51,.10)!important;box-shadow:0 -8px 30px rgba(36,19,51,.09)!important}
@media (min-width:1000px){ .fl-mobilebar{padding:13px clamp(22px,5vw,60px)!important} }
.fl-mobilebar__tot{display:flex!important;flex-direction:column;gap:1px;font-size:1.22rem;font-weight:750;color:var(--plum);letter-spacing:-.02em}
.fl-mobilebar__tot small{font-size:.71rem;font-weight:600;color:var(--txt-soft);letter-spacing:.02em}
.fl-mobilebar__timer{font-weight:700;color:var(--plum)}
.fl-mobilebar__timer.is-hot{color:var(--orange)}
.fl-mobilebar [data-fl-mcta]{margin-left:auto;height:48px;padding:0 26px;border:0;border-radius:12px;background:var(--orange);color:#fff;font:inherit;font-weight:700;font-size:.97rem;cursor:pointer;box-shadow:0 8px 22px rgba(245,119,43,.26);transition:background .16s ease}
.fl-mobilebar [data-fl-mcta]:hover{background:var(--orange-soft)}
@media (min-width:721px){
  .fl-mobilebar [data-fl-mcta]{flex:0 0 auto!important;width:auto!important;min-width:250px;max-width:330px}
  .fl-mobilebar__tot{flex:0 0 auto}
  .fl-mobilebar__tot small{white-space:nowrap}
}
.fl-page{padding-bottom:104px!important}
.fl-card{background:rgba(255,255,255,.92)!important;border:1px solid rgba(36,19,51,.07)!important;border-radius:16px!important;box-shadow:0 1px 2px rgba(36,19,51,.04),0 10px 26px rgba(36,19,51,.06)!important;transition:box-shadow .18s ease,border-color .18s ease}
.fl-card:hover{box-shadow:0 2px 5px rgba(36,19,51,.05),0 18px 44px rgba(36,19,51,.11)!important;border-color:rgba(36,19,51,.13)!important}
.fl-badge{background:rgba(36,19,51,.05)!important;color:var(--txt-soft)!important;border:1px solid rgba(36,19,51,.08)!important;font-size:.6rem!important;font-weight:700!important;letter-spacing:.08em;text-transform:uppercase;padding:4px 9px!important;border-radius:6px!important}
.fl-badge--best{background:var(--plum)!important;color:#fff!important;border-color:var(--plum)!important}
.fl-badge--cheap{background:rgba(198,161,91,.15)!important;color:var(--gold-deep)!important;border-color:rgba(198,161,91,.34)!important}
.fl-price{font-size:1.45rem!important;font-weight:750!important;color:var(--plum)!important;letter-spacing:-.02em}
.fl-card__cta{white-space:nowrap!important;height:46px!important;padding:0 22px!important;border-radius:12px!important;font-weight:700!important;background:var(--orange)!important;color:#fff!important;border:0!important;box-shadow:0 6px 18px rgba(245,119,43,.24)!important}
.fl-card__cta:hover{background:var(--orange-soft)!important}
.fl-fare{font-size:.77rem!important;color:var(--txt-soft)!important;border-top:1px solid rgba(36,19,51,.07);padding-top:10px;display:flex;flex-wrap:wrap;gap:6px 16px}
.fl-card .fl-lay{margin-left:0!important;font-size:.78rem}
.fl-filters{background:rgba(255,255,255,.9)!important;border:1px solid rgba(36,19,51,.07)!important;border-radius:16px!important;box-shadow:0 1px 2px rgba(36,19,51,.04),0 10px 26px rgba(36,19,51,.05)!important}
.fl-check{font-size:.85rem;line-height:1.3}
.fl-check .mut,.fl-check span:last-child{white-space:nowrap;font-size:.76rem;color:var(--txt-soft)}
@keyframes fl-shimmer{0%{background-position:-520px 0}100%{background-position:520px 0}}
.fl-skel,.is-skel,.fl-card--skel{background:linear-gradient(90deg,#F3F0ED 25%,#FAF8F6 50%,#F3F0ED 75%)!important;background-size:1040px 100%;animation:fl-shimmer 1.45s linear infinite;border-radius:12px;color:transparent!important;border-color:rgba(36,19,51,.05)!important;box-shadow:none!important}
/* filters render after offers arrive (airlines/price come from results) —
   reserve the space with an intentional skeleton so nothing jumps or blanks */
.fl-filters:empty{display:block!important;min-height:520px;border-radius:16px;border:1px solid rgba(36,19,51,.06)!important;background:linear-gradient(90deg,#F3F0ED 25%,#FAF8F6 50%,#F3F0ED 75%)!important;background-size:1040px 100%;animation:fl-shimmer 1.45s linear infinite;box-shadow:none!important}
@media (prefers-reduced-motion:reduce){ .fl-skel,.is-skel,.fl-card--skel,.fl-filters:empty{animation:none} }
.fl-co .ali-launcher,.fl-co #ali-root .ali-launcher{bottom:96px!important}
@media (max-width:720px){
  .fl-panelbox{padding:18px 16px!important;border-radius:14px!important}
  .fl-lay{margin-left:0!important}
  .fl-mobilebar{gap:12px;padding:10px 14px!important}
  .fl-mobilebar [data-fl-mcta]{min-width:0;flex:1;padding:0 14px}
  .fl-mobilebar__tot{font-size:1.05rem}
  .fl-conds{grid-template-columns:1fr 1fr;gap:12px 16px}
  .fl-filters:empty{min-height:0}
}

/* filters skeleton: stand down on error/empty */
.fl-page:has(.fl-empty) .fl-filters:empty{display:none!important;min-height:0!important;animation:none!important;border:0!important;background:none!important;box-shadow:none!important}

/* ===== SEARCH PANEL v2 — roomy premium row (Depart | Return) ===== */
/* [hidden] must win over .fl-field's display */
.fl-field[hidden]{display:none!important}

/* one balanced row: From · swap · To · Depart · Return · Travellers · Search */
@media (min-width:1080px){
  .fl-row{
    grid-template-columns:
      minmax(0,1.85fr) 46px minmax(0,1.85fr)
      minmax(0,1.05fr) minmax(0,1.05fr)
      minmax(0,1.5fr) minmax(158px,auto) !important;
    gap:12px!important;
    align-items:end;
  }
  /* one-way: Return removed -> reflow so nothing stretches oddly */
  .fl-row:has(.fl-field--ret[hidden]){
    grid-template-columns:
      minmax(0,2fr) 46px minmax(0,2fr)
      minmax(0,1.3fr) minmax(0,1.7fr) minmax(158px,auto) !important;
  }
}

/* roomier, calmer controls */
.fl-label{font-size:.66rem!important;font-weight:700!important;letter-spacing:.1em!important;text-transform:uppercase;color:var(--txt-soft)!important;margin:0 0 7px 2px!important;display:block}
.fl-ctl,.fl-btnctl{height:60px!important;border-radius:14px!important;border:1px solid rgba(36,19,51,.14)!important;background:#fff!important;box-shadow:0 1px 2px rgba(36,19,51,.04)!important;padding:0 14px!important;display:flex;align-items:center;gap:10px;width:100%;transition:border-color .15s ease,box-shadow .15s ease}
.fl-ctl:focus-within,.fl-btnctl:focus-visible,.fl-btnctl:hover,.fl-ctl:hover{border-color:rgba(91,46,145,.55)!important;box-shadow:0 2px 10px rgba(91,46,145,.10)!important}
.fl-ctl input,.fl-btnctl b{font-family:var(--ff-b);font-size:1rem!important;font-weight:650!important;color:var(--plum)!important;letter-spacing:-.01em;border:0;outline:0;background:none;width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fl-ctl input::placeholder,.fl-btnctl b.is-ph{color:#9A8FA6!important;font-weight:500!important}
.fl-btnctl{cursor:pointer;text-align:left}
/* icons: clearer, plum, consistent */
.fl-ctl>svg,.fl-btnctl>svg{width:19px;height:19px;flex:0 0 19px;color:var(--purple);opacity:.85}
.fl-clear{margin-left:auto;flex:0 0 auto;width:22px;height:22px;border-radius:50%;border:0;background:rgba(36,19,51,.06);color:var(--txt-soft);cursor:pointer;line-height:1}
.fl-clear:hover{background:rgba(36,19,51,.12)}
/* swap sits on the baseline between From and To */
.fl-swap{align-self:end;display:flex;align-items:center;justify-content:center;height:60px}
.fl-swap button{width:44px;height:44px;border-radius:50%;border:1px solid rgba(36,19,51,.14);background:#fff;color:var(--purple);cursor:pointer;box-shadow:0 1px 2px rgba(36,19,51,.05)}
.fl-swap button:hover{border-color:rgba(91,46,145,.5);box-shadow:0 2px 10px rgba(91,46,145,.12)}
/* search button matches field height exactly */
.fl-go{height:60px!important;border-radius:14px!important;font-size:1rem!important;font-weight:700!important;box-shadow:0 8px 22px rgba(245,119,43,.26)!important}
/* trip pills */
.fl-trip{margin-bottom:16px!important}
/* dropdown: readable, roomy */
.fl-ac__opt{padding:11px 12px!important;gap:11px!important}
.fl-ac{max-height:none!important}

@media (max-width:1079px){
  .fl-row{grid-template-columns:1fr 1fr!important;gap:12px!important}
  .fl-field--from,.fl-field--to{grid-column:span 1}
  .fl-swap{display:none}
  .fl-go{grid-column:1 / -1}
}
@media (max-width:640px){
  .fl-row{grid-template-columns:1fr!important}
  .fl-ctl,.fl-btnctl,.fl-go{height:56px!important}
}

/* ===== HERO SEARCH v3 — tabs out of the card, headline in ===== */
/* card chrome moves OFF the wrapper so the tabs sit free on the hero */
#se-root.se__card{background:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;border:0!important;box-shadow:none!important;padding:0!important}

/* service tabs — even, calm, glass on the hero */
.se__tabs{display:flex!important;gap:8px!important;flex-wrap:wrap;margin:0 0 14px!important;padding:0!important;border:0!important;background:none!important}
.se__tab{
  height:44px!important;padding:0 20px!important;border-radius:12px!important;
  border:1px solid rgba(255,255,255,.55)!important;
  background:rgba(255,255,255,.74)!important;
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  color:var(--plum)!important;font-family:var(--ff-b)!important;font-size:.94rem!important;
  font-weight:650!important;letter-spacing:-.01em!important;text-transform:none!important;
  display:inline-flex!important;align-items:center;gap:8px;cursor:pointer;
  box-shadow:0 2px 10px rgba(36,19,51,.07)!important;transition:background .15s ease,transform .15s ease,box-shadow .15s ease;
}
.se__tab:hover{background:#fff!important;transform:translateY(-1px)}
.se__tab.is-active,.se__tab[aria-selected="true"]{background:var(--plum)!important;color:#fff!important;border-color:var(--plum)!important;box-shadow:0 8px 20px rgba(36,19,51,.30)!important}
/* "New" badge — small gold chip, aligned */
.se__tab span,.se__tab small,.se__tab b{font:inherit}
.se__tab [class*="new"],.se__tab [class*="badge"]{
  font-size:.58rem!important;font-weight:800!important;letter-spacing:.09em;text-transform:uppercase;
  background:var(--gold2)!important;color:#5A4520!important;border:0!important;
  padding:3px 7px!important;border-radius:5px!important;line-height:1;
}
.se__tab.is-active [class*="new"],.se__tab[aria-selected="true"] [class*="badge"]{background:var(--gold)!important;color:#2B1A06!important}

/* the glass card is now the panel itself -> more room, one clean surface */
.se__panels{
  background:rgba(255,255,255,.62)!important;
  -webkit-backdrop-filter:blur(22px) saturate(1.15);backdrop-filter:blur(22px) saturate(1.15);
  border:1px solid rgba(255,255,255,.62)!important;
  border-radius:22px!important;
  box-shadow:0 20px 60px rgba(36,19,51,.18)!important;
  padding:22px 24px 24px!important;
}
/* bold headline in place of the tabs */
.se__panels::before{
  content:"Find the best deals — anywhere in the world";
  display:block;font-family:var(--ff-d);font-weight:600;
  font-size:clamp(1.1rem,1.6vw,1.45rem);line-height:1.25;
  color:var(--plum);letter-spacing:-.015em;margin:2px 0 16px;
}

/* trip type — proper segmented control (was uppercase + overflowing) */
.fl-trip{
  display:inline-flex!important;gap:4px!important;padding:4px!important;
  border-radius:12px!important;background:rgba(36,19,51,.06)!important;
  border:1px solid rgba(36,19,51,.08)!important;margin:0 0 18px!important;
}
.fl-trip label{
  margin:0!important;height:38px!important;padding:0 18px!important;border-radius:9px!important;
  display:inline-flex!important;align-items:center;justify-content:center;cursor:pointer;
  background:none!important;border:0!important;box-shadow:none!important;
  font-family:var(--ff-b)!important;font-size:.86rem!important;font-weight:650!important;
  color:var(--txt-soft)!important;transition:background .15s ease,color .15s ease;
}
.fl-trip label span{text-transform:none!important;letter-spacing:0!important;font:inherit!important;color:inherit!important}
.fl-trip label:hover{background:rgba(36,19,51,.05)!important}
.fl-trip label.is-on{background:var(--plum)!important;color:#fff!important;box-shadow:0 2px 8px rgba(36,19,51,.22)!important}
.fl-trip label.is-on span{color:#fff!important}
.fl-trip input{position:absolute!important;opacity:0!important;width:1px!important;height:1px!important;pointer-events:none}

@media (max-width:640px){
  .se__tab{height:40px!important;padding:0 14px!important;font-size:.86rem!important}
  .se__panels{padding:16px 14px 18px!important;border-radius:18px!important}
  .se__panels::before{font-size:1.05rem;margin-bottom:12px}
}

/* ===== HERO SEARCH v4 — connected folder tabs ===== */
/* wrapper carries no chrome — the tabs + panel ARE the one piece */
#se-root.se__card{background:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;border:0!important;box-shadow:none!important;padding:0!important}

/* tabs sit ON the card and merge into it */
.se__tabs{
  display:flex!important;gap:3px!important;flex-wrap:wrap;
  margin:0 0 0 18px!important;padding:0!important;border:0!important;background:none!important;
  position:relative;z-index:2;
}
.se__tab{
  height:50px!important;padding:0 22px!important;
  border-radius:16px 16px 0 0!important;
  border:1px solid rgba(255,255,255,.42)!important;border-bottom:0!important;
  background:rgba(255,255,255,.34)!important;
  -webkit-backdrop-filter:blur(20px) saturate(1.12);backdrop-filter:blur(20px) saturate(1.12);
  color:var(--plum)!important;font-family:var(--ff-b)!important;font-size:.94rem!important;
  font-weight:650!important;letter-spacing:-.01em!important;text-transform:none!important;
  display:inline-flex!important;align-items:center;gap:8px;cursor:pointer;
  margin-bottom:-1px!important;box-shadow:none!important;
  transition:background .15s ease,color .15s ease;
}
.se__tab:hover{background:rgba(255,255,255,.50)!important}
/* active tab = exactly the panel's glass, so the seam disappears -> one piece */
.se__tab.is-active,.se__tab[aria-selected="true"]{
  background:rgba(255,255,255,.62)!important;
  border-color:rgba(255,255,255,.62)!important;
  color:var(--plum)!important;font-weight:750!important;
  z-index:3;
}
.se__tab .se__new,.se__tab [class*="new"],.se__tab [class*="badge"]{
  font-size:.58rem!important;font-weight:800!important;letter-spacing:.09em;text-transform:uppercase;
  background:var(--gold2)!important;color:#5A4520!important;border:0!important;
  padding:3px 7px!important;border-radius:5px!important;line-height:1;
}

/* the panel is the body of the open tab */
.se__panels{
  background:rgba(255,255,255,.62)!important;
  -webkit-backdrop-filter:blur(22px) saturate(1.15);backdrop-filter:blur(22px) saturate(1.15);
  border:1px solid rgba(255,255,255,.62)!important;
  border-radius:22px!important;
  box-shadow:0 20px 60px rgba(36,19,51,.18)!important;
  padding:22px 24px 24px!important;
  position:relative;z-index:1;
}
.se__panels::before{
  content:"Find the best deals — anywhere in the world";
  display:block;font-family:var(--ff-d);font-weight:600;
  font-size:clamp(1.1rem,1.6vw,1.45rem);line-height:1.25;
  color:var(--plum);letter-spacing:-.015em;margin:2px 0 16px;
}

@media (max-width:760px){
  .se__tabs{margin-left:10px!important;gap:2px!important}
  .se__tab{height:42px!important;padding:0 13px!important;font-size:.82rem!important;border-radius:12px 12px 0 0!important}
  .se__panels{padding:16px 14px 18px!important;border-radius:18px!important}
  .se__panels::before{font-size:1.05rem;margin-bottom:12px}
}

/* ===== v5 — square tabs, wide visual dropdown, colour calendar ===== */
/* --- TABS: square, flush with the card's left edge, one piece --- */
.se__tabs{margin:0!important;gap:0!important;padding:0!important}
.se__tab{
  height:52px!important;padding:0 24px!important;
  border-radius:10px 10px 0 0!important;
  border:1px solid rgba(255,255,255,.34)!important;border-bottom:0!important;
  border-left-width:0!important;
  background:rgba(255,255,255,.26)!important;
  -webkit-backdrop-filter:blur(20px) saturate(1.1);backdrop-filter:blur(20px) saturate(1.1);
  margin:0 0 -1px 0!important;
  transition:background .18s ease,transform .18s ease,box-shadow .18s ease!important;
}
.se__tab:first-child{border-left-width:1px!important;border-top-left-radius:10px!important}
/* dynamic hover — lifts + brightens, not a flat highlight */
.se__tab:hover{
  background:rgba(255,255,255,.52)!important;
  transform:translateY(-2px);
  box-shadow:0 -6px 18px rgba(36,19,51,.10)!important;
}
.se__tab.is-active,.se__tab[aria-selected="true"]{
  background:rgba(255,255,255,.62)!important;
  border-color:rgba(255,255,255,.62)!important;
  transform:none;box-shadow:none!important;
}
.se__panels{border-radius:0 22px 22px 22px!important}

/* --- AUTOCOMPLETE: wider + visual --- */
.fl-ac{
  min-width:430px!important;width:max-content!important;max-width:min(560px,92vw)!important;
  border-radius:16px!important;border:1px solid rgba(36,19,51,.10)!important;
  box-shadow:0 24px 60px rgba(36,19,51,.22)!important;padding:6px!important;
  background:#fff!important;
}
.fl-ac__opt{
  display:grid!important;grid-template-columns:26px 46px 1fr!important;
  align-items:center;gap:12px!important;padding:11px 12px!important;
  border-radius:10px!important;border:0!important;background:none!important;width:100%;text-align:left;
}
.fl-ac__opt:hover,.fl-ac__opt.is-hot{background:rgba(91,46,145,.08)!important}
.fl-ac__flag{font-size:1.15rem;line-height:1;text-align:center}
.fl-ac__code{
  background:rgba(91,46,145,.10)!important;color:var(--purple)!important;
  font-size:.72rem!important;font-weight:800!important;letter-spacing:.04em;
  border-radius:7px!important;padding:5px 0!important;text-align:center;
}
.fl-ac__main{display:flex;flex-direction:column;gap:2px;min-width:0}
.fl-ac__main b{font-size:.94rem;font-weight:650;color:var(--plum);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fl-ac__main small{font-size:.78rem;color:var(--txt-soft)}
.fl-ac__opt--child{grid-template-columns:26px 46px 1fr!important;padding-left:24px!important}

/* --- CALENDAR: colour, contrast, obvious nav --- */
.fl-pop--wide{min-width:620px!important;border-radius:18px!important;box-shadow:0 26px 70px rgba(36,19,51,.26)!important;padding:16px!important}
.fl-cal__nav{
  width:36px!important;height:36px!important;border-radius:10px!important;
  border:1px solid rgba(36,19,51,.14)!important;background:#fff!important;color:var(--plum)!important;
  font-size:1.05rem;line-height:1;cursor:pointer;transition:background .15s ease,border-color .15s ease;
}
.fl-cal__nav:hover:not(:disabled){background:var(--purple)!important;border-color:var(--purple)!important;color:#fff!important}
.fl-cal__nav:disabled{opacity:.28!important;cursor:not-allowed}
.fl-cal__title{font-family:var(--ff-b)!important;font-size:.95rem;font-weight:750;color:var(--plum)}
.fl-cal__dow{font-size:.68rem;font-weight:700;letter-spacing:.06em;color:var(--txt-soft);text-transform:uppercase}
.fl-cal__d{
  height:38px!important;border-radius:9px!important;border:0!important;background:none!important;
  font-size:.88rem;font-weight:600;color:var(--plum);cursor:pointer;
  transition:background .12s ease,color .12s ease;
}
.fl-cal__d:hover:not(:disabled){background:rgba(91,46,145,.12)!important}
.fl-cal__d:disabled{color:#C9C2D0!important;cursor:not-allowed}
/* selected endpoints = solid purple, range = soft purple wash */
.fl-cal__d.is-sel,.fl-cal__d[aria-selected="true"]{background:var(--purple)!important;color:#fff!important;font-weight:750!important}
.fl-cal__d.is-in,.fl-cal__d.is-range{background:rgba(91,46,145,.13)!important;color:var(--plum)!important;border-radius:0!important}
.fl-cal__d.is-today{box-shadow:inset 0 0 0 1.5px var(--gold)!important}
.fl-cal__hint{font-size:.82rem;color:var(--txt-soft);margin:10px 2px 12px}
.fl-pop__done{background:var(--orange)!important;color:#fff!important;border:0!important;height:42px!important;padding:0 22px!important;border-radius:11px!important;font-weight:700!important}

/* --- TRAVELLERS panel --- */
.fl-who__policy{
  font-size:.76rem;line-height:1.5;color:var(--txt-soft);
  background:rgba(91,46,145,.05);border:1px solid rgba(91,46,145,.10);
  border-radius:10px;padding:10px 12px;margin:12px 0 4px;
}
.fl-who__policy::before{content:"i";display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;background:var(--purple);color:#fff;font-size:.6rem;font-weight:800;margin-right:7px;vertical-align:-2px}

@media (max-width:760px){
  .fl-ac{min-width:0!important;width:100%!important}
  .fl-pop--wide{min-width:0!important;width:100%!important}
  .se__tab{height:42px!important;padding:0 14px!important;font-size:.82rem!important}
}

/* ===== v6 — per-tab headline, proper font ===== */
/* kill the generic serif headline */
.se__panels::before{content:none!important;display:none!important}

/* headline lives on the active panel -> changes per tab automatically */
.se__panel::before{
  display:block;
  font-family:var(--ff-b)!important;      /* Inter, not the serif */
  font-weight:750;
  font-size:clamp(1.18rem,1.55vw,1.52rem);
  line-height:1.22;
  letter-spacing:-.022em;
  color:var(--plum);
  margin:2px 0 16px;
}
.se__panel[data-service="flight"]::before{content:"Find the best flight deals — anywhere in the world"}
.se__panel[data-service="hotel"]::before{content:"Stays you'll actually look forward to"}
.se__panel[data-service="experience"]::before{content:"Experiences worth travelling for"}
.se__panel[data-service="car-hire"]::before{content:"Car hire, sorted — wherever you land"}
.se__panel[data-service="transfer"]::before{content:"Airport transfers, without the stress"}
.se__panel[data-service="holiday"]::before{content:"Your holiday, built around you"}
@media (max-width:760px){ .se__panel::before{font-size:1.08rem;margin-bottom:12px} }


/* ===== AWT SEARCH v8 — BRAIN DUMPS 10:39 + 10:58 + 11:01, 17 JUL 2026 =====
   Ali: "those purple line black lines orange lines ... never do them again in
   any of the design because they look very very unprofessional". So: NO accent
   lines anywhere. Selected state = surface + weight, never a bar.
   Ali: "let's get this whole thing squared up" -> radius 0 across the search UI.
   ========================================================================== */

/* 1 — HEADLINES: Title Case, no dashes, one per tab */
.se__panel[data-service="flight"]::before{content:"Find the Best Flight Deals Anywhere in the World"}
.se__panel[data-service="hotel"]::before{content:"Find the Best Hotel Deals Anywhere in the World"}
.se__panel[data-service="experience"]::before{content:"Find the Best Experiences Anywhere in the World"}
.se__panel[data-service="car-hire"]::before{content:"Find the Best Car Hire Deals Anywhere in the World"}
.se__panel[data-service="transfer"]::before{content:"Find the Best Airport Transfers Anywhere in the World"}
.se__panel[data-service="holiday"]::before{content:"Find the Best Holiday Deals Anywhere in the World"}

/* 2 — NO ACCENT LINES. ANYWHERE. */
.se__tab,.se__tab:hover,.se__tab.is-active,.se__tab[aria-selected="true"]{box-shadow:none!important}
.fl-ac__opt,.fl-ac__opt.is-hot,.fl-ac__opt:hover{box-shadow:none!important;border-left:0!important}
.fl-lay{border-left:0!important}
.fl-lay.is-warn{border-left:0!important}

/* 3 — SQUARE EVERYTHING */
.se__card{border-radius:0!important}
.se__panels{border-radius:0!important}
.se__panel{border-radius:0!important}
.se__tabs{overflow:visible!important;height:auto!important;min-height:52px;flex-wrap:wrap!important}
.se__tab{border-radius:0!important;height:52px!important;margin:0 0 -1px 0!important;transform:none!important;
  transition:background .18s ease,color .18s ease!important}
.fl-ctl,.fl-btnctl,.fl-go,.fl-ac,.fl-pop,.fl-addleg,.fl-leg__rm,.fl-swap{border-radius:0!important}
.fl-trip label,.fl-trip__opt,[name="trip"]+*{border-radius:0!important}

/* 4 — TAB STATES without a line: surface + weight only */
.se__tab{background:rgba(255,255,255,.22)!important;color:var(--plum)!important;font-weight:600!important}
.se__tab:hover{background:rgba(255,255,255,.44)!important}
.se__tab.is-active,.se__tab[aria-selected="true"]{background:rgba(255,255,255,.62)!important;font-weight:750!important}

/* 5 — the panel: bigger, a touch more see-through, blur keeps the text legible */
.se__panels{background:rgba(255,255,255,.54)!important;
  -webkit-backdrop-filter:blur(26px) saturate(1.15);backdrop-filter:blur(26px) saturate(1.15)}
.se__panel{padding:26px 28px 28px!important}

/* 6 — flag cell */
.fl-ac__flag{display:flex!important;align-items:center;justify-content:center;width:26px}
.fl-ac__flag img{width:24px;height:16px;border-radius:0;object-fit:cover;display:block;
  box-shadow:0 0 0 1px rgba(36,19,51,.16)}
.fl-ac__opt.is-hot,.fl-ac__opt:hover{background:rgba(91,46,145,.075)!important}

/* 7 — fields: glass, square, no lines */
.fl-ctl,.fl-btnctl{background:rgba(255,255,255,.5)!important;
  -webkit-backdrop-filter:blur(10px) saturate(1.06);backdrop-filter:blur(10px) saturate(1.06);
  border:1px solid rgba(255,255,255,.75)!important;box-shadow:none!important;
  transition:background .16s ease,border-color .16s ease}
.fl-ctl:hover,.fl-btnctl:hover{background:rgba(255,255,255,.68)!important}
.fl-ctl:focus-within,.fl-btnctl:focus-visible{background:rgba(255,255,255,.9)!important;
  border-color:rgba(91,46,145,.55)!important;box-shadow:none!important}
.fl-ctl input::placeholder{color:rgba(36,19,51,.5)!important}

/* 8 — MULTI-CITY: the real bug. .fl-row is an explicit 6-track grid; when
   From/swap/To/Depart/Return go display:none the two survivors (Travellers +
   Search) are auto-placed into tracks 1 and 2 - and track 2 is the 46px SWAP
   column, which is why "Search flights" collapsed into a squeezed blob.
   Collapse the row to two sane tracks whenever From is hidden. */
.fl-row:has(.fl-field--from.fl-hidden){grid-template-columns:minmax(220px,340px) auto!important;
  gap:14px!important;align-items:end!important}
.fl-row:has(.fl-field--from.fl-hidden) .fl-go{width:auto!important;min-width:190px!important;
  padding:0 26px!important;height:60px!important;white-space:nowrap!important}
.fl-go{white-space:nowrap!important}

/* 9 — multi-city legs */
.fl-leg__n{font-family:var(--ff-b)!important;font-size:.66rem!important;font-weight:700!important;
  letter-spacing:.09em!important;text-transform:uppercase!important;color:var(--txt-soft)!important;
  background:none!important;border:0!important;padding:0!important;align-self:center}
.fl-addleg{background:rgba(255,255,255,.5)!important;border:1px dashed rgba(36,19,51,.22)!important;
  color:var(--plum)!important;font-weight:650!important;height:44px!important;padding:0 18px!important;
  box-shadow:none!important;transition:background .16s ease,border-color .16s ease}
.fl-addleg:hover{background:rgba(255,255,255,.78)!important;border-color:var(--purple)!important;
  border-style:solid!important;color:var(--purple)!important;transform:none!important}
.fl-leg__rm{background:transparent!important;border:0!important;color:var(--txt-soft)!important;font-size:1.15rem!important;line-height:1}
.fl-leg__rm:hover{background:rgba(36,19,51,.07)!important;color:var(--plum)!important}

/* 10 — HERO: drop the sub-paragraph, pull the signpost up under the headline */
.hero p.lead,p.lead{display:none!important}
.signpost{margin-top:10px!important}
/* --- v8.1 search button sizing --- */
/* The multi-city 'auto' track stretched .fl-go to the full ~885px. Pin it. */
.fl-row:has(.fl-field--from.fl-hidden){grid-template-columns:minmax(220px,340px) max-content!important}
.fl-row:has(.fl-field--from.fl-hidden) .fl-go{justify-self:start!important;width:auto!important;
  min-width:200px!important;max-width:260px!important;padding:0 26px!important;height:60px!important}
/* --- v8.2 multi-city order + field contrast --- */
/* MULTI-CITY ORDER: legs must come BEFORE travellers+search - you cannot pick
   passengers and hit Search above the flights you have not entered yet.
   .fl-row and .fl-legs are siblings under a display:block panel, so flex it and
   pin the orders. ::before (the headline) is pinned to 0 so it stays on top. */
.se__panel.fl-search:has(.fl-field--from.fl-hidden){display:flex!important;flex-direction:column!important;align-items:stretch!important}
.se__panel.fl-search:has(.fl-field--from.fl-hidden)::before{order:0!important}
.se__panel.fl-search:has(.fl-field--from.fl-hidden) .fl-legs{order:2!important;margin-top:4px!important}
.se__panel.fl-search:has(.fl-field--from.fl-hidden) .fl-row{order:3!important;margin-top:6px!important}

/* FIELD CONTRAST: the panel sits at .54 white and the fields were .50 - they
   dissolved into it (the Travellers box all but disappeared). Fields must read
   as input surfaces: brighter than the panel, with a real edge. */
.fl-ctl,.fl-btnctl{background:rgba(255,255,255,.74)!important;
  border:1px solid rgba(36,19,51,.10)!important;box-shadow:none!important}
.fl-ctl:hover,.fl-btnctl:hover{background:rgba(255,255,255,.86)!important;border-color:rgba(36,19,51,.18)!important}
.fl-ctl:focus-within,.fl-btnctl:focus-visible{background:#fff!important;border-color:rgba(91,46,145,.6)!important;box-shadow:none!important}
.fl-ctl input::placeholder{color:rgba(36,19,51,.48)!important}
/* --- v8.3 first-tab corner --- */
/* An earlier rule .se__tab:first-child{border-top-left-radius:10px!important}
   outranks .se__tab{border-radius:0!important} on specificity, so the first tab
   kept a curved top-left. Match the specificity to kill it. */
.se__tab:first-child,
.se__tab:last-child{border-radius:0!important}
.se__tab:first-child{border-top-left-radius:0!important;border-bottom-left-radius:0!important}
.se__tab:last-child{border-top-right-radius:0!important;border-bottom-right-radius:0!important}

/* Ali: "you can leave them curved inside looks nice" -> the trip selector keeps
   its curve. Do not square .fl-trip. */
.fl-trip{border-radius:12px!important}
/* --- v8.3 keep the inner pills curved --- */
/* Ali: "you can leave them curved inside looks nice" - the OUTER shell is
   square (card, panels, tabs, fields); the trip pills stay curved. */
.fl-trip label,.fl-trip__opt,[name="trip"]+*{border-radius:9px!important}
.fl-trip,.fl-trip__wrap{border-radius:12px!important}
/* --- v8.4 pills fully rounded + signpost --- */
/* Ali: "they should of stayed rounded in side" - go properly pill-shaped,
   not the timid 9px. Outer shell stays square; inner controls are round. */
.fl-trip label,.fl-trip__opt,[name="trip"]+*{border-radius:999px!important}
.fl-trip,.fl-trip__wrap{border-radius:999px!important}

/* Ali: "that scrolling thing does not need a circle around it... just arrow
   flashing is enough" - the ring was .signpost__flow::before (2px orange). */
.signpost__flow::before{content:none!important;display:none!important;border:0!important}
.signpost__flow{border:0!important;background:transparent!important;box-shadow:none!important}

/* Ali: "move it up more then the arrow ... like its coming from behind that
   text so its closing the gap" */
.hero__signpost{margin-top:-14px!important;display:flex!important;flex-direction:column!important;
  align-items:center!important;gap:0!important}
.signpost__script{margin:0!important;position:relative!important;z-index:2!important}
.signpost__flow{margin-top:-14px!important;height:56px!important;position:relative!important;z-index:1!important}
/* --- v8.5 reapplied --- */
.se{margin-top:-18px!important}
.signpost__flow{scale:1.06}
.fl-ctl,.fl-btnctl{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:rgba(255,255,255,.78)!important}
.fl-ctl:hover,.fl-btnctl:hover{background:rgba(255,255,255,.88)!important}
.fl-ctl:focus-within,.fl-btnctl:focus-visible{background:#fff!important}
.fl-ctl>svg,.fl-btnctl>svg{width:20px!important;height:20px!important;flex:0 0 20px}
/* --- v8.6 curves back (tops sharp) + hero motion + who-tip --- */
.se__panels{border-radius:0 0 22px 22px!important}
.se__card{border-radius:0 0 22px 22px!important}
.fl-ctl,.fl-btnctl,.fl-go,.fl-ac,.fl-pop,.fl-addleg{border-radius:12px!important}
.hero h1{margin-top:-24px!important}
.se{margin-top:-110px!important}
.signpost__flow{scale:1.2}
@keyframes awtHeroIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes awtSheen{0%,60%{transform:translateX(-130%) skewX(-16deg)}100%{transform:translateX(260%) skewX(-16deg)}}
.hero h1{animation:awtHeroIn .7s cubic-bezier(.2,.7,.2,1) both;position:relative;overflow:hidden}
.hero h1::after{content:"";position:absolute;top:0;bottom:0;left:0;width:34%;
  background:linear-gradient(105deg,transparent 0%,rgba(255,255,255,.28) 50%,transparent 100%);
  animation:awtSheen 5.5s ease-in-out 1.2s infinite;pointer-events:none}
@media (prefers-reduced-motion:reduce){.hero h1{animation:none}.hero h1::after{content:none}}
.fl-who__info{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;
  margin-left:6px;border:0;border-radius:50%;background:rgba(36,19,51,.55);color:#fff;
  font-size:.62rem;font-weight:800;font-style:italic;font-family:Georgia,serif;cursor:pointer}
.fl-who__info:hover{background:var(--plum)}
.fl-who__tip{background:#fff;border:1px solid rgba(36,19,51,.12);border-radius:12px;
  box-shadow:0 14px 40px rgba(36,19,51,.16);padding:12px 14px;margin:8px 0;font-size:.8rem;
  color:var(--txt);line-height:1.5}
.fl-who__tip p{margin:0 0 8px}
.fl-who__tip p:last-child{margin:0}
/* --- v8.7 shimmer on the letters, not a box --- */
/* the v8.6 sweep read as a grey box sliding over the photo - dead. */
.hero h1{overflow:visible!important}
.hero h1::after{content:none!important;display:none!important;animation:none!important}
/* the shine is now CLIPPED TO THE GLYPHS of the orange words */
@supports ((-webkit-background-clip:text) or (background-clip:text)){
  .hero h1 em.accent-i{
    background:linear-gradient(110deg,#F5772B 32%,#FFC993 50%,#F5772B 68%);
    background-size:240% 100%;background-position:118% 0;
    -webkit-background-clip:text;background-clip:text;
    -webkit-text-fill-color:transparent;
    animation:awtShine 5.2s ease-in-out 1.4s infinite;
  }
}
@keyframes awtShine{0%,28%{background-position:118% 0}72%,100%{background-position:-118% 0}}
@media (prefers-reduced-motion:reduce){.hero h1 em.accent-i{animation:none;background:none;-webkit-text-fill-color:currentColor}}
/* --- v8.8 outer corners soften --- */
/* outer silhouette curved; joins between tabs and panel stay sharp */
.se__tab:first-child{border-top-left-radius:10px!important}
.se__tab:last-child{border-top-right-radius:10px!important}
.se__panels{border-radius:0 14px 22px 22px!important}
.se__card{border-radius:0 14px 22px 22px!important}
/* --- v8.9 bright headline + typewriter + signpost scale --- */
/* the "dull box" was a 26px-blur text-shadow smearing behind both lines.
   Crisp edge + faint far glow instead - bright, glassy, no smudge. */
.hero h1{text-shadow:0 1px 2px rgba(10,5,18,.55),0 12px 38px rgba(10,5,18,.28)!important;
  animation:none!important} /* the typewriter IS the intro now */
.signpost__script{font-size:1.35rem!important;font-weight:650!important;color:#fff!important;
  letter-spacing:.01em;text-shadow:0 1px 2px rgba(10,5,18,.5)}
.hero h1.is-typing::after{content:""!important;display:inline-block!important;width:3px;height:.82em;
  background:#fff;margin-left:8px;vertical-align:-.06em;animation:awtCaret .75s steps(1) infinite!important}
.signpost__script.is-typing::after{content:"";display:inline-block;width:2px;height:.9em;
  background:#fff;margin-left:5px;vertical-align:-.1em;animation:awtCaret .75s steps(1) infinite}
@keyframes awtCaret{0%,49%{opacity:1}50%,100%{opacity:0}}
/* --- v9.0 sign-off tweaks (brain dump 12:06) --- */
/* 1 - "Your Next" hi-vis bright orange; narrower, brighter shimmer band */
.hero h1 em.accent-i{color:#FF8A3D!important}
@supports ((-webkit-background-clip:text) or (background-clip:text)){
  .hero h1 em.accent-i{
    background:linear-gradient(110deg,#FF8A3D 42%,#FFE3C7 50%,#FF8A3D 58%)!important;
    background-size:240% 100%;-webkit-background-clip:text;background-clip:text;
    -webkit-text-fill-color:transparent;
    animation:awtShine 7s ease-in-out 2s infinite!important}
}
/* 2 - chevrons: fatter, not a skinny afterthought */
.signpost__flow{scale:1.38}
/* 3 - THE ALIGNMENT BUG: .fl-row aligns items to end, so a field that grows an
   inline error underneath rides UP out of line. Errors leave the flow. */
.fl-field{position:relative}
.fl-fielderr{position:absolute;top:calc(100% + 3px);left:2px;margin:0!important;
  white-space:nowrap;font-size:.72rem!important;font-weight:600;color:var(--purple)!important}
/* 4 - the error banner: brand plum, white text - not AI pink */
.se__err{background:var(--plum)!important;color:#fff!important;border:0!important;
  border-radius:12px!important;padding:13px 18px!important;font-weight:600!important;
  box-shadow:0 10px 26px rgba(36,19,51,.25)!important;margin-top:18px!important}
/* 5 - the cream seam: when errors show, the card grows past the photo edge.
   Extend the hero so the picture always runs behind the whole card. */
.hero{padding-bottom:595px!important}
/* --- v9.1 accent words: plain bright orange, no effects --- */
/* Ali: "no highlighting effects. just the font color can be bright orange."
   Kills the background-clip shimmer entirely (it also cascade-broke into
   solid orange boxes: an !important background shorthand resets
   background-clip to border-box over any later plain longhand). */
.hero h1 em.accent-i{
  background:none!important;
  -webkit-background-clip:border-box!important;background-clip:border-box!important;
  -webkit-text-fill-color:currentColor!important;
  color:#FF8A3D!important;
  animation:none!important}
/* --- v9.2 card fully on the photo --- */
/* The card follows the hero in flow, so growing the hero moves both together -
   the overlap is set by the card\u2019s own negative margin. Pull it up so the
   photo runs behind the whole card even with the error banner open. */
.se{margin-top:-110px!important}
/* --- v9.3 travelling caret + typing dots --- */
.hero h1.is-typing::after,.signpost__script.is-typing::after{content:none!important}
.awt-caret{display:inline-block;width:3px;height:.74em;background:#fff;margin-left:5px;
  vertical-align:-.03em;border-radius:1px;animation:awtCaret .9s steps(1) infinite}
.signpost__script .awt-caret{width:2px;height:.86em;margin-left:4px}
.awt-dots{display:inline-flex;gap:9px;align-items:center;vertical-align:middle}
.awt-dots b{width:11px;height:11px;border-radius:50%;background:rgba(255,255,255,.9);
  animation:awtDot 1.15s ease-in-out infinite}
.awt-dots b:nth-child(2){animation-delay:.17s}
.awt-dots b:nth-child(3){animation-delay:.34s}
@keyframes awtDot{0%,60%,100%{opacity:.32;transform:translateY(0)}30%{opacity:1;transform:translateY(-6px)}}
/* --- v9.4 close the dead space + kill the cream seam --- */
/* THE CREAM SEAM (brain dump 12:06): .hero__scene is absolute inset:0, so the
   photo ended exactly where the hero did - and the card, pulled up into the
   hero, still hung ~45px past it onto the cream. hero padding and .se margin
   move BOTH together so neither could ever close it. Overhang the photo instead. */
.hero{padding-bottom:430px!important;overflow:visible!important}
.hero__scene{bottom:-80px!important;height:auto!important}
/* dead space under the chevron: 235px -> 70px */
/* the box, slightly bigger */
.se__panel{padding:30px 32px 32px!important}
.fl-ctl,.fl-btnctl,.fl-go{height:64px!important}
.se__panel::before{font-size:clamp(1.26rem,1.7vw,1.62rem)!important}
/* --- v9.5 subtle fade intro (typewriter retired) --- */
/* caret + dots: gone */
.awt-caret,.awt-dots{display:none!important}
.hero h1.is-typing::after,.signpost__script.is-typing::after{content:none!important}
/* the intro: a soft rise-and-fade, staggered headline -> signpost -> chevron.
   Reads as the page settling, not as an effect. */
@keyframes awtFadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.hero h1{animation:awtFadeUp .85s cubic-bezier(.22,.68,.24,1) .1s both!important}
.signpost__script{animation:awtFadeUp .85s cubic-bezier(.22,.68,.24,1) .42s both}
.signpost__flow{animation:awtFadeUp .85s cubic-bezier(.22,.68,.24,1) .62s both}
@media (prefers-reduced-motion:reduce){
  .hero h1,.signpost__script,.signpost__flow{animation:none!important}
}
/* --- v9.6 proportional hero + cinematic reveal --- */
/* ROOT CAUSE of the Mac/mobile dead space (brain dump 12:30): the hero was
   min-height:760px + padding-bottom:430px - FIXED pixels. On a big Windows
   monitor that reads fine; on a shorter Mac viewport and on a phone those same
   pixels become a chasm and push the card off the fold. Fixed px cannot be
   proportionate. Everything below scales with the viewport instead. */
.hero{min-height:clamp(520px,84vh,860px)!important;
  padding-bottom:clamp(140px,21vh,430px)!important;
  overflow:visible!important}
.hero__scene{bottom:clamp(-90px,-6vh,-40px)!important;height:auto!important}
.hero h1{font-size:clamp(2.05rem,5.1vw,4.2rem)!important;margin-top:0!important}
.signpost__script{font-size:clamp(1.02rem,1.55vw,1.35rem)!important}
.hero__signpost{margin-top:clamp(-14px,-1vh,-6px)!important}
.se{margin-top:clamp(-110px,-7vh,-56px)!important}

/* CINEMATIC REVEAL (brain dump 12:31): not a gimmick, not a plain fade - it
   resolves out of a blur like a title card. Beat of silence, then it lands. */
@keyframes awtCine{
  0%{opacity:0;transform:scale(1.07) translateY(12px);filter:blur(18px)}
  55%{opacity:1}
  100%{opacity:1;transform:none;filter:blur(0)}
}
@keyframes awtRise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.hero h1{animation:awtCine 1.55s cubic-bezier(.16,.84,.24,1) .5s both!important}
.signpost__script{animation:awtRise 1s cubic-bezier(.16,.84,.24,1) 1.45s both!important}
.signpost__flow{animation:awtRise 1s cubic-bezier(.16,.84,.24,1) 1.85s both!important}
.se__card{animation:awtRise 1.1s cubic-bezier(.16,.84,.24,1) 2.05s both}
@media (prefers-reduced-motion:reduce){
  .hero h1,.signpost__script,.signpost__flow,.se__card{animation:none!important}
}

/* MOBILE (brain dump 12:30 + phone screenshots) */
@media (max-width:760px){
  /* tabs were wrapping to a 2nd row and colliding with the panel */
  .se__tabs{flex-wrap:nowrap!important;overflow-x:auto!important;overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch;scrollbar-width:none;min-height:46px}
  .se__tabs::-webkit-scrollbar{display:none}
  .se__tab{flex:0 0 auto!important;height:46px!important;padding:0 16px!important;font-size:.86rem!important}
  .se__panel{padding:20px 16px 22px!important}
  .se__panel::before{font-size:1.12rem!important;margin-bottom:12px!important}
  .fl-ctl,.fl-btnctl,.fl-go{height:56px!important}
  .hero{padding-bottom:clamp(90px,13vh,150px)!important;min-height:clamp(430px,66vh,560px)!important}
  .se{margin-top:-34px!important}
  /* the Ask Ali launcher was sitting on top of the form */
  .ali-launcher,#ali-root .ali-launcher{transform:scale(.82);transform-origin:bottom right}
}
/* --- v9.7 lift the hero copy + readable glass --- */
/* 1 - hero copy up a touch (proportional, not a fixed nudge) */
.hero__grid{margin-top:clamp(-170px,-12vh,-55px)!important}

/* 2 - the glass was 54% white over a photograph: plum text on a moving
   background = hard reading. Lift the surface and let the blur do more work,
   so it still reads as glass but the contrast is comfortable. */
.se__panels{background:rgba(255,255,255,.76)!important;
  -webkit-backdrop-filter:blur(30px) saturate(1.18);backdrop-filter:blur(30px) saturate(1.18)}
/* tabs track the panel so the strip still reads as one piece */
.se__tab{background:rgba(255,255,255,.42)!important}
.se__tab:hover{background:rgba(255,255,255,.62)!important}
.se__tab.is-active,.se__tab[aria-selected="true"]{background:rgba(255,255,255,.76)!important}
/* fields sit above the panel, so they lift too or they vanish into it */
.fl-ctl,.fl-btnctl{background:rgba(255,255,255,.92)!important;
  border-color:rgba(36,19,51,.10)!important}
.fl-ctl:hover,.fl-btnctl:hover{background:#fff!important}
.fl-ctl:focus-within,.fl-btnctl:focus-visible{background:#fff!important}
/* --- v9.8 dynamic photo overhang + solider glass --- */
.hero__scene{bottom:calc(-1 * var(--awt-overhang, 70px))!important;height:auto!important}
/* glass: 76% still read as a window onto the photograph. */
.se__panels{background:rgba(255,255,255,.9)!important;
  -webkit-backdrop-filter:blur(34px) saturate(1.1);backdrop-filter:blur(34px) saturate(1.1)}
.se__tab{background:rgba(255,255,255,.55)!important}
.se__tab:hover{background:rgba(255,255,255,.76)!important}
.se__tab.is-active,.se__tab[aria-selected="true"]{background:rgba(255,255,255,.9)!important}
.fl-ctl,.fl-btnctl{background:#fff!important;border-color:rgba(36,19,51,.13)!important}
/* --- brand plate: glass + sparkle --- */
/* the plate was a flat white rectangle. Real depth: layered glass, a lit top
   edge, and a base shadow so it sits ABOVE the hero photo. */
.brand{position:relative;isolation:isolate;overflow:hidden}
.brand::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(160deg,rgba(255,255,255,.97),rgba(249,245,253,.86) 46%,rgba(238,231,246,.92));
  -webkit-backdrop-filter:blur(18px) saturate(1.25);backdrop-filter:blur(18px) saturate(1.25);
  box-shadow:inset 0 1px 0 rgba(255,255,255,1),
             inset 0 -1px 0 rgba(36,19,51,.07),
             0 14px 34px rgba(36,19,51,.16),
             0 2px 6px rgba(36,19,51,.08)}
/* THE SPARKLE: a specular glint travelling across the glass - like a smile
   catching the light. Clipped to the plate, subtle, every ~9s. */
.brand::after{content:"";position:absolute;top:-60%;bottom:-60%;left:-40%;width:24%;
  z-index:3;pointer-events:none;transform:rotate(18deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.8) 45%,rgba(255,255,255,.95) 52%,transparent);
  filter:blur(7px);opacity:0;
  animation:brandGlint 9s cubic-bezier(.3,.1,.2,1) 3s infinite}
@keyframes brandGlint{0%{left:-40%;opacity:0}6%{opacity:.7}17%{left:125%;opacity:0}100%{left:125%;opacity:0}}
.brand-logo{position:relative;z-index:2;filter:drop-shadow(0 3px 6px rgba(36,19,51,.20))}
@media (prefers-reduced-motion:reduce){.brand::after{animation:none}}

/* --- brand plate: close the gap v3.3.0 --- */
/* was padding 18px 30px 20px -> ~31px of dead space on every side, which is
   what made it read as a blank box. logo grows 258 -> 286, plate width unchanged. */
.brand{padding:14px 16px!important}
.brand-logo{display:block;width:286px;height:auto;position:relative;z-index:2;
  filter:drop-shadow(0 3px 6px rgba(36,19,51,.20))}
@media (max-width:640px){.brand{padding:10px 12px!important}.brand-logo{width:214px}}

/* --- brand plate: no effect, plain box, big logo v3.4.0 --- */
/* kills the gradient/backdrop-filter surface AND the glint sweep. plain white box. */
.brand::before{content:none!important;display:none!important}
.brand::after{content:none!important;display:none!important;animation:none!important}
.brand{
  background:#fff!important;
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  padding:10px 12px!important;
  border-radius:0 0 18px 18px!important;
  overflow:visible!important;isolation:auto!important;
  box-shadow:0 10px 26px rgba(36,19,51,.16),0 2px 6px rgba(36,19,51,.08)!important;
}
.brand-logo{display:block;width:300px;height:auto;filter:none!important}
@media (max-width:640px){.brand{padding:8px 10px!important}.brand-logo{width:224px}}

/* --- brand plate: sit low + dissolve the box on narrow v3.5.0 --- */
/* 1. logo was floating high with a big dead gap under WORLD TOURS.
      flex-end pins it to the bottom of the plate. */
.brand{
  display:flex!important;align-items:flex-end!important;justify-content:center!important;
  padding:18px 12px 8px!important;
  transition:background .28s ease,box-shadow .28s ease,border-radius .28s ease,padding .28s ease!important;
}
.brand-logo{display:block;height:auto;transition:width .28s ease!important}

/* 2. narrow: no box at all — logo sits straight on the header and uses the room.
      fluid width so the hand-off is seamless in both directions. */
@media (max-width:820px){
  .brand{
    background:transparent!important;
    box-shadow:none!important;
    border-radius:0!important;
    padding:6px 0 6px 4px!important;
    justify-content:flex-start!important;
    align-items:center!important;
  }
  .brand::before,.brand::after{content:none!important;display:none!important}
  .brand-logo{width:clamp(210px,44vw,300px)!important}
}
@media (min-width:821px){.brand-logo{width:300px}}

/* --- brand plate: drop it lower v3.6.0 --- */
.brand{padding:30px 12px 2px!important}
@media (max-width:820px){.brand{padding:6px 0 6px 4px!important}}

/* --- brand plate: scroll states v3.7.0 --- */
/* AT TOP = big white box. STUCK = box dissolves into the header bar.
   .brand background goes TRANSPARENT rather than a hardcoded colour, so it
   inherits the header gradient (#fff -> #faf7f2) exactly and can never mismatch. */
.brand{transition:background .3s ease,box-shadow .3s ease,border-radius .3s ease,padding .3s ease!important}
.brand-logo{transition:width .3s ease!important}

html.hdr--stuck .brand{
  background:transparent!important;
  box-shadow:none!important;
  border-radius:0!important;
  padding:6px 10px 6px 0!important;
  align-items:center!important;
}
/* 210px, not a shrunken stamp — it fills the 108px-tall bar properly */
html.hdr--stuck .brand-logo{width:210px!important}

/* the header keeps its own gradient; just tighten it when stuck */
html.hdr--stuck .hdr__in{padding-top:6px!important;padding-bottom:6px!important}
html.hdr--stuck .hdr{box-shadow:0 2px 14px rgba(36,19,51,.10)!important}

@media (max-width:820px){
  html.hdr--stuck .brand-logo{width:clamp(180px,40vw,210px)!important}
}
@media (prefers-reduced-motion:reduce){.brand,.brand-logo{transition:none!important}}

/* --- brand plate: lift the big box v3.7.2 --- */
/* box hung too far down into the hero. trim the top padding so the whole
   plate rises ~16px; logo keeps its low seat (2px off the bottom edge). */
.brand{padding:14px 12px 2px!important}
html.hdr--stuck .brand{padding:6px 10px 6px 0!important}

/* --- brand plate: seat the logo v3.7.4 --- */
/* the plate is stretched by the header row (142 tall vs a 104 logo), so flex-end
   pinned the logo hard to the bottom: 36 above / 2 below. bottom padding 12 lifts
   it to ~26/12 — off the floor, still sitting low rather than dead centre. */
.brand{padding:10px 12px 12px!important}
html.hdr--stuck .brand{padding:6px 10px 6px 0!important}

/* --- brand plate: no lift v3.7.5 --- */
/* my -18px translate shoved the plate up behind the purple topbar and clipped its
   top corners. plate sits back in the header; only the logo seat is adjusted. */
.brand{transform:none!important;padding:10px 12px 12px!important}
html.hdr--stuck .brand{transform:none!important;padding:6px 10px 6px 0!important}

/* --- brand plate: binary state, no half-box v3.7.6 --- */
/* BUG: background/shadow/radius faded over .3s while the logo width animated
   separately. Mid-scroll that produced a ghost half-box with a full-size logo
   spilling out of the header onto the hero. Two animating properties = an
   in-between state. It is now atomic: full box OR merged. Never halfway. */
.brand,.brand-logo,.hdr,.hdr__in{transition:none!important}

/* belt and braces: when merged, the logo physically cannot exceed the bar */
html.hdr--stuck .brand{
  background:transparent!important;box-shadow:none!important;border-radius:0!important;
  padding:6px 10px 6px 0!important;align-items:center!important;
  max-height:100%!important;overflow:hidden!important;
}
html.hdr--stuck .brand-logo{width:210px!important;max-height:76px!important;object-fit:contain!important}

/* --- brand plate: depth v3.8.0 --- */
/* it looked "off" because it was pure #fff sitting on a cream site whose header
   is a #fff -> #faf7f2 gradient. Pure white reads as a foreign patch. Now the
   plate carries the same warm falloff, so it belongs — depth comes from layered
   shadow + a lit top edge, NOT from glass. No tint, no blur, no glint. */
.brand{
  background:linear-gradient(180deg,#FFFFFF 0%,#FFFFFF 52%,#FCFAF5 100%)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,1),
    inset 0 -1px 0 rgba(36,19,51,.05),
    0 1px 2px rgba(36,19,51,.07),
    0 8px 16px -6px rgba(36,19,51,.14),
    0 22px 44px -14px rgba(36,19,51,.20)!important;
  will-change:transform;
}
/* dynamic: the plate lifts off the header on hover. transition is scoped to
   transform + box-shadow ONLY — background and width stay instant so the
   scroll hand-off can never desync into a half-box again (v3.7.6). */
.brand{transition:transform .22s cubic-bezier(.2,.7,.3,1),box-shadow .22s ease!important}
.brand:hover{
  transform:translateY(-2px)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,1),
    inset 0 -1px 0 rgba(36,19,51,.05),
    0 2px 4px rgba(36,19,51,.09),
    0 12px 22px -6px rgba(36,19,51,.18),
    0 30px 56px -14px rgba(36,19,51,.26)!important;
}
/* merged state stays flat and invisible — no depth, no hover lift */
html.hdr--stuck .brand,html.hdr--stuck .brand:hover{
  background:transparent!important;box-shadow:none!important;transform:none!important;
}
@media (prefers-reduced-motion:reduce){.brand{transition:none!important}.brand:hover{transform:none!important}}

/* --- guru: floats above his OWN shadow v5.4.0 --- */
/* NEVER set .ali-fig here: it is position:fixed and that is what pins the guru
   to the bottom-right. Resetting it dropped him into the flow at y=6168. */
.bot{position:relative}
/* the shadow is a separate layer UNDER the canvas, so he hovers on top of it */
.bot::after{
  content:"";position:absolute;left:50%;bottom:6%;
  width:46%;height:7%;transform:translateX(-50%);
  background:radial-gradient(ellipse at center,rgba(36,19,51,.34),rgba(36,19,51,.14) 45%,transparent 72%);
  filter:blur(5px);z-index:0;pointer-events:none;
  animation:guruShadow 3.2s ease-in-out infinite;
}
.bot>canvas{position:relative;z-index:1}
/* shadow tightens as he rises — sells the float instead of a sticker */
@keyframes guruShadow{
  0%,100%{transform:translateX(-50%) scale(1);opacity:.85}
  50%{transform:translateX(-50%) scale(.86);opacity:.6}
}
@media (prefers-reduced-motion:reduce){.bot::after{animation:none}}
