/* nexara-menu.css */
/* Top bar, mega menu dropdowns and footer destination links. Shared by index.html and every generated page.
   Markup comes from tools/lib/menu.mjs. Loaded after nexara-base.css, so equal-specificity rules here win. */

/* ---------- top bar ---------- */
.tbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:7px 4vw;background:#160b08;color:#f3e6e1;font:500 .8rem/1.2 Poppins,sans-serif;position:relative;z-index:51}
.tbar a{display:inline-flex;align-items:center;gap:7px;color:inherit;transition:color .25s}
.tbar a:hover{color:#ffa63b}
.tbl,.tbr{display:flex;align-items:center;gap:14px}
.tbl>a:not(.tmail){width:28px;height:28px;justify-content:center;border-radius:50%;background:rgba(255,255,255,.08);color:#ffa63b}
.tbl>a:not(.tmail):hover{background:linear-gradient(135deg,#ff4d2e,#ffa63b);color:#fff}
.tbl i{width:1px;height:18px;background:rgba(255,255,255,.18)}
.tbar svg{color:#ffa63b;flex:none}
.tnote{opacity:.7}
.tcall b{font-weight:600;letter-spacing:.06em}
@media(max-width:700px){.tnote,.tbl i{display:none}.tmail span{display:none}.tbar{padding:6px 16px}}

/* ---------- desktop menu ---------- */
@media(max-width:1500px){.hc{display:none}}
nav .nl a{padding:9px 14px;font-size:.88rem}
@media(min-width:1181px) and (max-width:1380px){nav .nl a{padding:9px 10px;font-size:.84rem}} /* nine top-level items on small laptops */
nav .nl .mdd{display:inline-flex;align-items:center;border-radius:99px}
nav .nl .mdd>a{padding-right:4px}
.ddt{display:grid;place-items:center;width:22px;height:30px;margin:0 6px 0 0;padding:0;border:0;border-radius:99px;background:none;color:inherit;cursor:pointer}
.ddt svg{transition:transform .3s var(--ease)}
.mdd:hover>.ddt svg,.mdd.open>.ddt svg{transform:rotate(180deg)}
nav .nl .mdd:hover>a{color:var(--red);background:#fff;box-shadow:0 2px 8px rgba(255,0,0,.08)}
nav .nl .mdd>a.cur{color:#fff}

.mega{position:absolute;left:4vw;right:4vw;top:100%;z-index:60;padding:22px 26px 20px;background:#fff;border-radius:0 0 20px 20px;box-shadow:inset 0 3px 0 #ff4d2e,0 26px 50px rgba(17,17,17,.16);opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .2s,transform .3s var(--ease),visibility 0s linear .2s;text-align:left}
.mega:before{content:"";position:absolute;left:0;right:0;top:-28px;height:28px} /* hover bridge from the menu item */
.mdd:hover>.mega,.mdd:focus-within>.mega,.mdd.open>.mega{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.mdd.shut>.mega{opacity:0!important;visibility:hidden!important}
.mdd.msm{position:relative}
.mdd.msm>.mega{left:50%;right:auto;top:calc(100% + 14px);width:max-content;max-width:min(760px,92vw);border-radius:18px;transform:translate(-50%,10px)}
.mdd.msm:hover>.mega,.mdd.msm:focus-within>.mega,.mdd.msm.open>.mega{transform:translate(-50%,0)}
.mdd.msm>.mega:before{top:-16px;height:16px}
.mcols{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(150px,1fr);gap:4px 30px;max-height:calc(100vh - 190px);overflow-y:auto;overscroll-behavior:contain}
.mdd.msm .mcols{grid-auto-columns:minmax(170px,auto)}
.mg+.mg{margin-top:14px}
.mg h6{margin:0 0 8px;padding-bottom:7px;border-bottom:1px solid #f3dcd3;font:700 .95rem Poppins,sans-serif;color:var(--ink)}
.mg ul{list-style:none;margin:0;padding:0}
.mg li{padding:2px 0}
nav .nl .mega a{display:inline;padding:0;border-radius:0;background:none;box-shadow:none;white-space:normal;font:400 .87rem/1.4 Poppins,sans-serif;color:#3b302c;transition:color .2s}
nav .nl .mega a:hover{color:var(--red);background:none;box-shadow:none}
nav .nl .mega h6 a{font-weight:700;font-size:.95rem;color:var(--ink)}
nav .nl .mega li a:before{content:"";display:inline-block;width:5px;height:5px;margin-right:9px;border-radius:50%;background:linear-gradient(135deg,#ff4d2e,#ffa63b);vertical-align:2px;transition:transform .2s}
nav .nl .mega li a:hover:before{transform:scale(1.6)}
nav .nl .mega a.mall{display:inline-flex;margin-top:14px;padding:10px 22px;border-radius:99px;background:linear-gradient(135deg,#ff0000,#cc0000);color:#fff;font-weight:600;box-shadow:0 8px 18px rgba(255,0,0,.25)}
nav .nl .mega a.mall:hover{color:#fff;box-shadow:0 12px 24px rgba(255,0,0,.35)}

/* ---------- burger menu (phones, tablets and small laptops) ---------- */
@media(max-width:1180px){
  .burger{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,122,47,.55);background:#fff;color:var(--red)}
  nav{position:absolute;top:100%;left:0;right:0;display:none;flex-direction:column;align-items:stretch;gap:6px;padding:12px 5vw 18px;background:rgba(255,255,255,.98);box-shadow:0 14px 24px rgba(0,0,0,.12);max-height:calc(100vh - 80px);overflow-y:auto}
  nav.open{display:flex}
  .nl{flex-direction:column;align-items:stretch;margin:0;padding:6px;border-radius:18px}
  nav .nl a{display:block;border-radius:12px;padding:12px 16px;font-size:1rem}
  nav a.ph{justify-content:space-between;margin:8px 0 0}
  nav .nl .mdd{display:flex;flex-wrap:wrap;border-radius:12px}
  nav .nl .mdd>a{flex:1;padding-right:16px}
  .ddt{width:44px;height:44px;margin:0}
  .mdd:hover>.ddt svg{transform:none}.mdd.open>.ddt svg{transform:rotate(180deg)}
  .mega,.mdd.msm>.mega{position:static;flex-basis:100%;width:auto;max-width:none;display:none;margin:2px 0 8px;padding:14px 16px;border-radius:14px;background:#ffffff;box-shadow:none;opacity:1;visibility:visible;transform:none!important;transition:none}
  .mega:before{display:none}
  .mdd.open>.mega{display:block}
  .mdd.shut>.mega{opacity:1!important;visibility:visible!important}
  .mcols{grid-auto-flow:row;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));grid-auto-columns:auto;max-height:none;overflow:visible}
  nav .nl .mega a{display:inline!important;padding:0}
  nav .nl .mega a.mall{display:inline-flex!important;padding:10px 22px}
  .mg li{padding:4px 0}
}

/* ---------- footer destination links ---------- */
.flinks{display:grid;gap:14px;max-width:1240px;margin:26px auto 0;padding:22px 0 4px;border-top:1px solid rgba(40,70,110,.12);text-align:left}
.frow h5{margin:0 0 4px;font:600 .74rem Poppins,sans-serif;letter-spacing:.16em;text-transform:uppercase}
.frow h5 a{color:var(--red)}
.frow p{margin:0;font-size:.85rem;line-height:1.95}
.frow p a{display:inline-block;white-space:nowrap;color:var(--mut);transition:color .2s}
.frow p a:hover{color:var(--red)}
.frow p a:not(:last-child):after{content:"·";margin:0 8px;color:#c9b7b0}
.mg h6.h0{border-color:transparent} /* continuation column: keeps links level with the first column */
@media(max-width:1180px){.mg h6.h0{display:none}}

/* ---------- compact mega menu spacing (desktop), matched to the GT Holidays menu ----------
   Panel sized to its columns and centred under the menu; narrow columns; ~22px rows; tight heading gaps. */
@media(min-width:1181px){
  .mega{left:50%;right:auto;width:max-content;max-width:calc(100vw - 48px);translate:-50% 0;padding:16px 22px 16px;display:flex;flex-direction:column}
  .mcols{grid-auto-columns:minmax(150px,auto);column-gap:30px;row-gap:0;max-height:calc(100vh - 150px)}
  .mdd.msm .mcols{grid-auto-columns:minmax(150px,auto)}
  .mg+.mg{margin-top:12px}
  .mg h6{margin:0 0 4px;padding-bottom:5px;border-bottom:1px solid #e6e1df;font:600 .86rem/1.3 Poppins,sans-serif}
  .mg ul{margin-top:0}
  .mg li{padding:0;line-height:1.4;white-space:nowrap}
  nav .nl .mega a{font:400 .8rem/1.4 Poppins,sans-serif;color:#222;white-space:nowrap}
  nav .nl .mega h6 a{font-size:.86rem;font-weight:600}
  nav .nl .mega li a:before{width:4px;height:4px;margin-right:7px;vertical-align:2px}
  nav .nl .mega a.mall{align-self:flex-end;margin-top:8px;padding:7px 20px;font-size:.82rem}
}

/* page transition (assets/js/nexara-transition.js): a curved panel sweeps over the page between internal links,
   showing a red-tinted destination photo, a "next stop" caption and a dotted flight route */
.ptx{position:fixed;inset:0;z-index:10050;pointer-events:none;visibility:hidden;overflow:hidden;background:linear-gradient(135deg,#7a0000,#b3261e)}
.ptx.on{visibility:visible;pointer-events:auto}
.ptx>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;will-change:transform}
.ptx:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 55%,rgba(110,0,0,.45),rgba(70,0,0,.86) 75%),linear-gradient(135deg,rgba(158,0,0,.55),rgba(179,38,30,.35))}
.ptx-c{position:absolute;inset:0;z-index:1;padding:0 16px;display:flex;justify-content:center;flex-direction:column;align-items:center;text-align:center;color:#fff;opacity:0}
.ptx-k{font:600 .78rem/1 Poppins,sans-serif;letter-spacing:.32em;text-transform:uppercase;color:#ffd7c2}
.ptx-n{margin-top:12px;font:700 clamp(2rem,6vw,3.6rem)/1.05 "Playfair Display",Georgia,serif;text-shadow:0 4px 30px rgba(0,0,0,.35)}
.ptx-r{display:block;width:min(560px,100%);height:auto;margin-top:22px;overflow:visible}
.ptx-r path{fill:none;stroke-linecap:round}
.ptx-rb{stroke:rgba(255,255,255,.55);stroke-width:2;stroke-dasharray:.5 9}
.ptx-rp{stroke:#fff;stroke-width:2.5;stroke-dasharray:100;stroke-dashoffset:100}
.ptx-e{fill:none;stroke:#fff;stroke-width:2}
.ptx-d{fill:#fff;filter:drop-shadow(0 0 6px #ffb08a)}
.ptx-w{margin-top:20px;font:500 .74rem/1 Poppins,sans-serif;letter-spacing:.42em;text-transform:uppercase;color:rgba(255,255,255,.8)}
html.pt-in:after{content:"";position:fixed;inset:0;z-index:10051;background:linear-gradient(135deg,#5a0000,#8a1a14)}

/* ---------- burger overlay: menu, quote and contact panels, animated by assets/js/nexara-menu.js ---------- */
.mbg,.mfeat,.mfoot,header>nav .nl>.mlogo{display:none}
@media(max-width:1180px){
  html.mopen{overflow:hidden}
  html.mopen header{z-index:10000;transform:none!important}
  header>.burger{position:relative;z-index:3}
  html.mopen header>.burger{position:fixed;top:18px;right:max(5vw,20px)}
  header>nav{position:fixed;inset:0;z-index:2;display:flex;flex-direction:column;align-items:stretch;gap:8px;max-height:none;padding:12px;overflow:hidden;background:none;box-shadow:none;visibility:hidden;pointer-events:none}
  header>nav.open{visibility:visible;pointer-events:auto}
  header>nav>.hc,header>nav>.ph{display:none!important}
  header>nav .nl>.mlogo{display:flex!important;text-transform:none;letter-spacing:0;align-items:center;gap:10px;height:44px;margin:0 0 12px;padding:0 4px;background:none!important}
  header>nav .nl>.mlogo:after{display:none}
  .mlogo img{height:44px!important;width:auto!important;border-radius:0!important;box-shadow:none!important}
  .mbg{display:block;position:absolute;inset:0;background:rgba(17,17,17,.5);opacity:0}
  nav.open>.mbg{opacity:1}
  .mpanel{position:relative;width:100%;border:2px solid;border-radius:18px!important}
  header>nav>.nl{flex:1;min-height:0;margin:0;padding:14px;overflow-y:auto;overscroll-behavior:contain;background:#fff!important;border:2px solid #1e1e1e!important}
  .mfeat{display:flex;flex-direction:column;flex:none;padding:18px 20px;background:#9e0000;border-color:#7a0000;color:#fff}
  .mfeat small{margin-bottom:10px;font:600 .66rem Poppins,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.8)}
  .mfc{display:flex;align-items:center;gap:14px}
  .mfc i{flex:none;display:grid;place-items:center;width:46px;height:46px;border-radius:12px!important;background:rgba(0,0,0,.14)}
  .mfc b{display:block;font:600 1.05rem/1.25 Poppins,sans-serif;color:#fff}
  .mfeat .mfc p{margin:2px 0 0;font-size:.78rem;line-height:1.4;color:rgba(255,255,255,.88)}
  .mfa{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
  header>nav .mfa a{display:inline-block!important;padding:7px 16px;border:1px solid rgba(255,255,255,.45);border-radius:99px!important;background:rgba(0,0,0,.12);font:600 .76rem Poppins,sans-serif;letter-spacing:.04em;color:#fff}
  header>nav .mfa a:first-child{background:#fff;border-color:#fff;color:var(--red)}
  .mfoot{display:flex;align-items:center;flex:none;min-height:96px;padding:18px 20px;background:#1e1e1e;border-color:#42433d;overflow:hidden}
  .mfoot ul{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0;padding:0 70px 0 0;list-style:none}
  header>nav .mfoot a{display:inline-block!important;padding:4px 0;border-radius:0;background:none;font:500 .76rem Poppins,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#cfcfcf}
  header>nav .mfoot a:hover{color:#fff;background:none}
  header>nav .mfa a:after,header>nav .mfoot a:after{display:none}
  .mfoot img{position:absolute;right:18px;top:50%;width:84px;height:auto;margin-top:-27px;border-radius:0!important}
}

/* desktop header fits the screen: logo, menu and quote button never run past the right edge.
   Item spacing and text scale with the width; the phone block shows only where there is room. */
@media(min-width:1181px){
  header{padding-left:clamp(16px,3vw,64px);padding-right:clamp(16px,3vw,64px);gap:clamp(8px,1vw,18px)}
  header>.brand{flex:none}
  header>nav{min-width:0;gap:clamp(8px,.8vw,14px)}
  header>nav .nl>a,header>nav .nl .mdd>a{padding:9px clamp(5px,.75vw - 2px,14px);font-size:clamp(.74rem,.5rem + .3vw,.86rem);letter-spacing:0;white-space:nowrap}
  header>nav .nl .mdd>a{padding-right:2px}
  header>nav>a.ph{margin-left:0;padding:6px 6px 6px clamp(12px,1vw,22px);gap:clamp(6px,.6vw,12px);font-size:clamp(.72rem,.5rem + .25vw,.84rem);letter-spacing:.06em}
}
@media(min-width:1181px) and (max-width:1799px){header>nav>.hc{display:none}}
@media(min-width:1800px){header>nav>.hc{display:flex}}
@media(min-width:1181px) and (max-width:1279px){header{padding-left:20px;padding-right:20px}header>nav .nl>a,header>nav .nl .mdd>a{padding-left:4px;padding-right:4px}header>nav .nl .mdd>a{padding-right:1px}}

/* ten menu items (with Sacred): tighten the desktop menu just above the burger breakpoint so the quote button stays on screen */
@media(min-width:1181px) and (max-width:1366px){
  header>nav .nl>a,header>nav .nl .mdd>a{padding:9px 7px;font-size:.78rem}
  header>nav .nl .mdd>a{padding-right:1px}
  header>nav .ddt{width:16px;margin-right:3px}
  header>nav a.ph{margin-left:6px}
}
@media(min-width:1181px) and (max-width:1300px){header>.brand .bw{display:none}}

/* eleven menu items (with Experiences): from 1181 to 1535px the quote button shows only its arrow
   (the label stays available to screen readers), and the phone block waits until 1900px */
@media(min-width:1181px) and (max-width:1535px){
  header>nav>a.ph{padding:6px;gap:0;margin-left:4px}
  header>nav>a.ph>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}
@media(min-width:1800px) and (max-width:1899px){header>nav>.hc{display:none}}
/* top bar social links are text; the header call link is text only, so it hides with its label */
.tbl>a:not(.tmail){width:auto;height:auto;background:none;border-radius:0;color:#ffa63b;font-size:.78rem}
.tbl>a:not(.tmail):hover{background:none;color:#fff}
@media(max-width:700px){.tmail{display:none}}
@media(max-width:1340px){.hc .hcall{display:none}}
.mfc i{overflow:hidden;padding:0}
.mfc i img{width:100%;height:100%;object-fit:cover;display:block}

/* nexara-exp.css */
/* Travel Experiences (/experiences/ and the home-page section): image-led heroes, editorial layouts,
   the shared discovery block (filters, map, list) and the step-by-step planner. Uses the site tokens
   (--red, --ink, --mut, --line, --gold) and adds one accent per category through --xa / --xbg. */
.xph-biz,.xpplan-biz{--xa:#ff3b30;--xbg:#0f141c}
.xph-her,.xpplan-her{--xa:#e8a33d;--xbg:#2a1c14}
.xph-edu,.xpplan-edu{--xa:#2bb3a3;--xbg:#0f2a30}
.xph-cru,.xpplan-cru{--xa:#3fa9f5;--xbg:#0a2340}
.xph-yac,.xpplan-yac{--xa:#d4b26a;--xbg:#0c0c0e}
.xph-hub{--xa:#ff3b30;--xbg:#111}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.xpw{max-width:1240px;margin:0 auto;padding:0 clamp(16px,4vw,40px)}

/* ---------- hero: full-width photo, text over a category-tinted gradient ---------- */
.xph{position:relative;min-height:clamp(520px,80vh,760px);display:flex;align-items:flex-end;overflow:hidden;background:var(--xbg);color:#fff;isolation:isolate}
.xphi{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;animation:xpzoom 18s ease-out both}
.xphi[src$="x-biz-canton.webp"]{object-position:22% 18%} /* keep the Canton Fair logo in frame */
.xph:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,color-mix(in srgb,var(--xbg) 92%,transparent) 0%,color-mix(in srgb,var(--xbg) 55%,transparent) 48%,transparent 85%),linear-gradient(0deg,color-mix(in srgb,var(--xbg) 70%,transparent),transparent 45%)}
.xphw{position:relative;width:100%;max-width:1240px;margin:0 auto;padding:clamp(96px,14vh,140px) clamp(16px,4vw,40px) clamp(40px,8vh,80px)}
.xph .crumb{color:rgba(255,255,255,.75);margin-bottom:18px}.xph .crumb a{color:#fff}
.xpscr{display:inline-flex;align-items:center;gap:10px;font:600 .74rem/1 Poppins,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:var(--xa)}
.xpscr:before{content:"";width:34px;height:2px;background:var(--xa)}
.xph h1{font-family:"Playfair Display",Georgia,serif;font-weight:500;font-size:clamp(2.3rem,5.6vw,4.4rem);line-height:1.05;margin:16px 0 18px;max-width:14ch;color:#fff}
.xph p{max-width:58ch;font-size:clamp(1rem,1.4vw,1.15rem);line-height:1.7;color:rgba(255,255,255,.88);margin:0}
.xphb{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.xph .btn.glass{background:rgba(255,255,255,.1)!important;border:1.5px solid rgba(255,255,255,.55)!important;color:#fff!important;backdrop-filter:blur(6px)}
.xph .btn.glass:hover{background:#fff!important;color:var(--ink)!important}
@keyframes xpzoom{from{transform:scale(1.08)}to{transform:scale(1)}}

/* ---------- business: lettered index of the five sections ---------- */
.xpidx{max-width:1240px;margin:0 auto;padding:0 clamp(16px,4vw,40px);display:grid;grid-template-columns:repeat(5,1fr);border-bottom:1px solid var(--line)}
.xpidx a{display:flex;gap:12px;align-items:baseline;padding:22px 16px 22px 0;font:600 .92rem/1.35 Poppins,sans-serif;color:var(--ink);border-top:3px solid transparent;transition:border-color .25s,color .25s}
.xpidx a:hover,.xpidx a:focus-visible{border-color:var(--red);color:var(--red)}
.xpidx em{font:500 1.6rem/1 "Playfair Display",Georgia,serif;font-style:normal;color:var(--red)}
.xplead{max-width:72ch;color:var(--mut);margin:-6px 0 22px}

/* ---------- discovery: filters, map beside a list ---------- */
.xpf{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;padding:14px;background:#f6f4f2;border-radius:18px!important;position:sticky;top:84px;z-index:5}
.xpq{flex:1 1 280px;display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:12px!important;padding:0 14px;min-height:48px}
.xpq svg{width:18px;height:18px;color:var(--red);flex:none}
.xpq input{border:0!important;outline:0;background:none!important;flex:1;min-width:0;font:inherit;padding:12px 0!important;box-shadow:none!important}
.xpq:focus-within{border-color:var(--red);box-shadow:0 0 0 3px rgba(255,0,0,.12)}
.xpfs{display:flex;flex-direction:column;gap:4px;flex:0 1 180px;font:600 .7rem Poppins,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--mut)}
.xpfs select{min-height:48px;border:1px solid var(--line);border-radius:12px!important;background:#fff;padding:0 12px;font:500 .9rem Poppins,sans-serif;color:var(--ink);text-transform:none;letter-spacing:0}
.xpclr{min-height:48px;padding:0 16px;border:0;background:none;color:var(--red);font:600 .85rem Poppins,sans-serif;cursor:pointer}
.xpcount{margin:14px 2px 10px;color:var(--mut);font-size:.9rem}.xpcount b{color:var(--ink)}
.xpdg{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:28px;align-items:start}
.xpmap{position:sticky;top:210px;height:min(560px,70vh);border-radius:20px!important;overflow:hidden;background:#e9eef2;display:grid;place-items:center;color:var(--mut);font-size:.85rem;z-index:1}
.xpmap.on{display:block;background:#aad3df}
.xpmap .leaflet-tooltip{font:600 .78rem Poppins,sans-serif;border-radius:8px!important}
.xpmap .leaflet-control-zoom a{border-radius:0!important}
.xpmap .leaflet-popup-content{font:500 .85rem/1.45 Poppins,sans-serif;margin:12px 14px}
.xpmap .leaflet-popup-content button{margin-top:6px;border:0;background:none;color:var(--red);font:600 .8rem Poppins,sans-serif;padding:0;cursor:pointer}
.xpl{display:flex;flex-direction:column}
.xpi{border-top:1px solid var(--line);padding:22px 0;scroll-margin-top:190px;transition:background .4s}
.xpi:first-child{border-top:0;padding-top:4px}
.xpi.hide{display:none}
.xpi.hl{background:linear-gradient(90deg,rgba(255,0,0,.06),transparent 70%)}
.xpi h3{font:600 1.08rem/1.35 Poppins,sans-serif;margin:0 0 4px;color:var(--ink)}
.xpi h3 a{color:inherit}
.xpi p{margin:6px 0 0;color:var(--mut);font-size:.92rem;line-height:1.65}
.xpwhere{display:flex;align-items:center;gap:6px;color:var(--ink)!important;font-weight:500;font-size:.86rem!important}
.xpwhere svg{width:14px;height:14px;color:var(--red);flex:none}
.xpwhere a{color:var(--red)}
.xpsmall{font-size:.8rem!important;color:var(--mut)}
.xptg{list-style:none;display:flex;flex-wrap:wrap;gap:6px;padding:0;margin:12px 0 0}
.xptg li{font:500 .72rem Poppins,sans-serif;padding:5px 10px;border-radius:99px!important;background:#f3f0ed;color:#4a4a4a}
.xpgo{display:inline-flex;align-items:center;gap:8px;margin-top:14px;padding:0;border:0;background:none;color:var(--red);font:600 .86rem Poppins,sans-serif;cursor:pointer}
.xpgo svg{width:16px;height:16px;transition:transform .25s}
.xpgo:hover svg,.xpgo:focus-visible svg{transform:translateX(4px)}
.xpnone{margin-top:18px;padding:22px;border-radius:18px!important;background:#fff4f2;display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between}
.xpnone p{margin:0;max-width:52ch}
/* event rows: date column, details, actions */
.xpev{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:22px}
.xpdate b{display:block;font:500 1.15rem/1.25 "Playfair Display",Georgia,serif;color:var(--ink)}
.xpdate small{display:inline-block;margin-top:8px;font:600 .66rem/1.3 Poppins,sans-serif;letter-spacing:.04em;padding:4px 8px;border-radius:6px!important}
.st-official{background:#e7f6ec;color:#1d6b3a}.st-listed{background:#fff4dd;color:#8a5a00}.st-tba{background:#eef0f3;color:#4b5563}
.xpevb{display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:right}
.xpevb a{font:600 .82rem Poppins,sans-serif;color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.xpevb .xpgo{margin-top:6px}
/* destination rows: photo beside text */
.xpdc,.xproute{display:grid;grid-template-columns:170px minmax(0,1fr);gap:20px}
.xpdc img,.xproute img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:14px!important}
.xproute dl,.xpdc dl{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:12px 0 0;font-size:.84rem}
.xproute dt,.xpdc dt{color:var(--mut)}.xproute dd,.xpdc dd{margin:0;color:var(--ink);font-weight:500}
.xprow{display:grid;grid-template-columns:150px minmax(0,1fr);gap:4px 16px;align-items:baseline}
.xprow .xpwhere{grid-column:2}
.xpk{grid-row:span 2;font:600 .68rem Poppins,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--xa,var(--red))}
.xpk-biz{--xa:#d92d20}.xpk-her{--xa:#b7791f}.xpk-edu{--xa:#138a7c}.xpk-cru{--xa:#1f78c1}.xpk-yac{--xa:#9a7b35}

/* ---------- editorial blocks ---------- */
.xpsplit{max-width:1240px;margin:0 auto;padding:clamp(56px,8vw,96px) clamp(16px,4vw,40px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,64px);align-items:center}
.xpsplit.rev figure{order:2}
.xpsplit figure{margin:0}.xpsplit img{width:100%;aspect-ratio:5/4;object-fit:cover;border-radius:24px!important}
.xpsplit h2,.xpcorp h2,.xpher h2,.xpyk h2,.xpplan h2{font-family:"Playfair Display",Georgia,serif;font-weight:500;font-size:clamp(1.8rem,3.4vw,2.6rem);line-height:1.15;margin:10px 0 14px}
.xpticks{list-style:none;padding:0;margin:18px 0 6px;display:grid;gap:10px}
.xpticks li{position:relative;padding-left:26px;line-height:1.55}
.xpticks li:before{content:"";position:absolute;left:0;top:.55em;width:12px;height:2px;background:var(--red)}
.xpcorp{position:relative;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);background:#0f141c;color:#fff;overflow:hidden}
.xpcw{padding:clamp(48px,7vw,88px) clamp(16px,4vw,56px);display:grid;gap:28px}
.xpcorp .eye{color:#ff6b61}.xpcorp h2{color:#fff}.xpcorp p{color:#c9ced6}
.xpcorp ol{list-style:none;counter-reset:c;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:18px 28px}
.xpcorp li{counter-increment:c;display:grid;gap:4px;padding-top:14px;border-top:1px solid rgba(255,255,255,.14)}
.xpcorp li:before{content:counter(c,decimal-leading-zero);font:500 .8rem Poppins,sans-serif;color:#ff6b61}
.xpcorp li b{font:600 .98rem Poppins,sans-serif;color:#fff}.xpcorp li span{color:#aeb4bd;font-size:.88rem;line-height:1.55}
.xpcorp>img{width:100%;height:100%;object-fit:cover;object-position:58% 50%;min-height:320px}
.xpcorp .xpgo{color:#fff}
.xpher{padding:clamp(56px,8vw,96px) 0;background:#faf6f1}
.xpherw{max-width:1240px;margin:0 auto;padding:0 clamp(16px,4vw,40px);display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,5vw,64px);align-items:start}
.xpnum{list-style:none;counter-reset:n;padding:0;margin:26px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:20px 30px}
.xpnum li{counter-increment:n;display:grid;gap:4px}
.xpnum li:before{content:counter(n,decimal-leading-zero);font:500 1.4rem/1 "Playfair Display",Georgia,serif;color:#b7791f}
.xpnum b{font:600 .98rem Poppins,sans-serif}.xpnum span{color:var(--mut);font-size:.9rem;line-height:1.55}
.xpmos{display:grid;grid-template-columns:1fr 1fr;gap:14px;position:sticky;top:110px}
.xpmos img{width:100%;height:100%;object-fit:cover;border-radius:22px!important}
.xpmos img:first-child{grid-column:span 2;aspect-ratio:16/10}
.xpmos img:last-child{grid-column:2;aspect-ratio:1;margin-top:-90px;border:8px solid #faf6f1}
.xpedu,.xpstyles,.xpyk{padding:clamp(56px,8vw,96px) 0}
.xpcloud{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-wrap:wrap;gap:10px 12px}
.xpcloud li{padding:10px 16px;border:1px solid var(--line);border-radius:99px!important;font:500 .9rem Poppins,sans-serif;background:#fff}
.xpcloud li:nth-child(3n+1){border-color:#cfe9e5;background:#f2fbf9}
.xpsty{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:16px;margin:8px 0 22px}
.xpsty figure{position:relative;margin:0;border-radius:22px!important;overflow:hidden;aspect-ratio:4/5}
.xpsty figure:first-child{aspect-ratio:auto}
.xpsty img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.xpsty figure:hover img{transform:scale(1.05)}
.xpsty figcaption{position:absolute;inset:auto 0 0;padding:60px 20px 20px;background:linear-gradient(0deg,rgba(6,22,40,.88),transparent);color:#dbe8f4;font-size:.88rem;line-height:1.5}
.xpsty figcaption b{display:block;font:500 1.35rem "Playfair Display",Georgia,serif;color:#fff;margin-bottom:4px}
.xpyk{background:#0c0c0e;color:#e8e3d8}
.xpyk .eye{color:#d4b26a}.xpyk h2{color:#fff}
.xpykg{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(28px,5vw,64px);align-items:center;margin-bottom:34px}
.xpdef{display:grid;grid-template-columns:minmax(150px,auto) 1fr;gap:14px 24px;margin:22px 0 0}
.xpdef dt{font:600 .9rem Poppins,sans-serif;color:#d4b26a}.xpdef dd{margin:0;color:#c8c2b6;line-height:1.6;font-size:.92rem}
.xpykp{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.xpykp img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:20px!important}
.xpykp img:last-child{margin-top:48px}
.xpyk .xpcloud li{background:transparent;border-color:rgba(212,178,106,.35);color:#e8e3d8}
.xpofc{display:flex;gap:10px;font-size:.84rem!important;line-height:1.6;color:rgba(255,255,255,.72)!important;margin-top:18px!important}
.xpofc svg{flex:none;width:18px;height:18px;color:var(--xa)}

/* ---------- planner ---------- */
.xpplan{padding:clamp(56px,8vw,100px) 0;background:var(--xbg);color:#fff;scroll-margin-top:80px}
.xpplan>.xpw{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(24px,5vw,60px);align-items:start}
.xpph .eye{color:var(--xa)}.xpph h2{color:#fff}.xpph p{color:rgba(255,255,255,.78)}.xpph a{color:#fff}
.xpp{background:#fff;color:var(--ink);border-radius:24px!important;padding:clamp(20px,3vw,34px);box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
.xpsteps{list-style:none;display:flex;gap:6px;padding:0;margin:0 0 22px;counter-reset:s}
.xpsteps li{flex:1;display:flex;flex-direction:column;gap:6px;font:500 .72rem/1.3 Poppins,sans-serif;color:var(--mut)}
.xpsteps li b{height:4px;border-radius:4px!important;background:#ececec;font-size:0;transition:background .3s}
.xpsteps li.on b{background:var(--xa)}.xpsteps li.on{color:var(--ink)}
.xpst{border:0;padding:0;margin:0;min-width:0}
.xpst legend{font:500 1.25rem "Playfair Display",Georgia,serif;margin-bottom:16px;padding:0}
.xpgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}
.xpfld{display:flex;flex-direction:column;gap:6px;min-width:0}
.xpfld.w,.xpch,.xpdest{grid-column:1/-1}
.xpfld>label,.xpch legend,.xpdest>label{font:600 .82rem Poppins,sans-serif;color:var(--ink)}
.xpfld i{color:var(--red);font-style:normal}.xpfld small{color:var(--mut);font-weight:400}
.xpfld input,.xpfld select,.xpfld textarea{width:100%;min-height:46px;border:1px solid #dcdcdc;border-radius:12px!important;padding:10px 12px;font:400 .95rem Poppins,sans-serif;background:#fff;color:var(--ink)}
.xpfld input:focus,.xpfld select:focus,.xpfld textarea:focus{outline:0;border-color:var(--xa,var(--red));box-shadow:0 0 0 3px color-mix(in srgb,var(--xa,red) 20%,transparent)}
.xpfld.bad input,.xpfld.bad select,.xpfld.bad textarea,.xpch.bad>div,.xpdest.bad .xpdin{outline:2px solid #e11d48;outline-offset:2px;border-radius:12px!important}
.xpch{border:0;padding:0;margin:0}
.xpch legend{margin-bottom:8px;padding:0}
.xpch>div{display:flex;flex-wrap:wrap;gap:8px}
.xpch label{position:relative;cursor:pointer}
.xpch input{position:absolute;opacity:0;width:1px;height:1px}
.xpch span{display:inline-block;padding:9px 14px;border:1px solid #dcdcdc;border-radius:99px!important;font:500 .86rem Poppins,sans-serif;transition:background .2s,border-color .2s,color .2s}
.xpch input:checked+span{background:var(--ink);border-color:var(--ink);color:#fff}
.xpch input:focus-visible+span{outline:3px solid color-mix(in srgb,var(--xa,red) 45%,transparent);outline-offset:2px}
.xpdin{display:flex;gap:8px}.xpdin input{flex:1}
.xpdin .btn{min-height:46px;padding:0 18px}
.xpsel{display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:4px 0 0}
.xpsel span{display:inline-flex;align-items:center;gap:6px;padding:6px 6px 6px 12px;border-radius:99px!important;background:#f3f0ed;font:500 .84rem Poppins,sans-serif}
.xpsel button{width:24px;height:24px;border:0;border-radius:50%!important;background:#fff;cursor:pointer;font-size:.9rem;line-height:1}
.xphint{font-size:.8rem;color:var(--mut);margin:2px 0 0}
.xpsum{padding:18px;border-radius:16px!important;background:#f7f7f7;font-size:.9rem;margin-bottom:12px}
.xpsum dl{display:grid;grid-template-columns:minmax(120px,auto) 1fr;gap:8px 18px;margin:0}
.xpsum dt{color:var(--mut)}.xpsum dd{margin:0;font-weight:500;overflow-wrap:anywhere}
.xperr{min-height:1.4em;margin:12px 0 0;color:#e11d48;font-size:.88rem}
.xpact{display:flex;justify-content:space-between;gap:10px;margin-top:8px}
.xpact [data-next],.xpact [data-send]{margin-left:auto}
.xppi{margin:0 0 14px;color:var(--mut)}
.xpplan .xpsmall{color:rgba(255,255,255,.6)!important}

/* ---------- hub and home page: one large business feature, then an asymmetric grid ---------- */
.xpfeat{padding:clamp(56px,8vw,96px) 0}
.xpbig{position:relative;display:block;border-radius:28px!important;overflow:hidden;min-height:clamp(380px,52vw,560px);color:#fff;isolation:isolate}
.xpbig img,.xped a img,.xpol img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .8s}
.xpbig:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(10,14,25,.88),rgba(10,14,25,.35) 60%,transparent)}
.xpbig span{position:absolute;left:clamp(22px,4vw,56px);bottom:clamp(22px,4vw,56px);max-width:520px;display:grid;gap:12px}
.xpbig em{font:600 .72rem Poppins,sans-serif;font-style:normal;letter-spacing:.18em;text-transform:uppercase;color:#ff6b61}
.xpbig b{font:500 clamp(1.9rem,4vw,3.2rem)/1.08 "Playfair Display",Georgia,serif}
.xpbig small{font-size:1rem;line-height:1.6;color:rgba(255,255,255,.85)}
.xpbig i{font:600 .95rem Poppins,sans-serif;font-style:normal}
.xpbig:hover img,.xped a:hover img,.xpol a:hover img{transform:scale(1.04)}
.xped{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:minmax(150px,auto);gap:16px;margin-top:16px}
.xped a{position:relative;overflow:hidden;border-radius:22px!important;color:#fff;isolation:isolate;display:flex;align-items:flex-end;min-height:240px}
.xped a:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(0,0,0,.78),transparent 70%)}
.xped .xped-0{grid-column:span 2;grid-row:span 2;min-height:500px}
.xped .xped-1{grid-column:span 4}
.xped .xped-2{grid-column:span 2}
.xped .xped-3{grid-column:span 2}
.xped span,.xpol span{display:grid;gap:6px;padding:22px}
.xped b{font:500 1.5rem/1.15 "Playfair Display",Georgia,serif}
.xped small{font-size:.86rem;line-height:1.5;color:rgba(255,255,255,.85)}
.xped .xpo-her:after{background:linear-gradient(0deg,rgba(42,28,20,.85),transparent 70%)}
.xped .xpo-cru:after{background:linear-gradient(0deg,rgba(10,35,64,.85),transparent 70%)}
.xped .xpo-edu:after{background:linear-gradient(0deg,rgba(15,42,48,.85),transparent 70%)}
.xped .xpo-yac:after{background:linear-gradient(0deg,rgba(12,12,14,.88),transparent 70%)}
.xpall{text-align:center;margin-top:28px}
.xpo{max-width:1240px;margin:0 auto;padding:clamp(48px,7vw,80px) clamp(16px,4vw,40px)}
.xpol{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.xpol a{position:relative;min-height:220px;border-radius:20px!important;overflow:hidden;display:flex;align-items:flex-end;color:#fff;isolation:isolate}
.xpol a:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(0,0,0,.8),transparent 75%)}
.xpol b{font:500 1.15rem "Playfair Display",Georgia,serif}.xpol small{font-size:.8rem;color:rgba(255,255,255,.82);line-height:1.45}

/* ---------- smaller screens ---------- */
@media(max-width:1100px){
  .xpdg{grid-template-columns:1fr}
  .xpmap{position:relative;top:0;height:300px}
  .xpplan>.xpw{grid-template-columns:1fr}
  .xpidx{grid-template-columns:repeat(3,1fr)}
  .xpol{grid-template-columns:1fr 1fr}
}
@media(max-width:860px){
  .xpsplit,.xpherw,.xpykg,.xpcorp{grid-template-columns:1fr}
  .xpsplit.rev figure{order:0}
  .xpmos{position:relative;top:0}
  .xpev{grid-template-columns:1fr}.xpevb{align-items:flex-start;text-align:left}
  .xpf{position:relative;top:0}
  .xped{grid-template-columns:1fr 1fr}
  .xped .xped-0,.xped .xped-1,.xped .xped-2,.xped .xped-3{grid-column:span 1;grid-row:auto;min-height:260px}
  .xpsty{grid-template-columns:1fr}.xpsty figure,.xpsty figure:first-child{aspect-ratio:16/10}
}
@media(max-width:600px){
  .xph{min-height:auto}.xphw{padding-top:120px}
  .xpidx{grid-template-columns:1fr 1fr}
  .xpdc,.xproute{grid-template-columns:1fr}
  .xprow{grid-template-columns:1fr}.xprow .xpwhere{grid-column:1}.xpk{grid-row:auto}
  .xpgrid,.xpnum,.xpcorp ol{grid-template-columns:1fr}
  .xpfs{flex:1 1 calc(50% - 10px)}
  .xped,.xpol{grid-template-columns:1fr}
  .xpdef{grid-template-columns:1fr}
  .xpsum dl{grid-template-columns:1fr}
  .xpmos img:last-child{margin-top:0;border:0}
}
@media(prefers-reduced-motion:reduce){.xphi{animation:none}.xpbig img,.xped a img,.xpol img,.xpsty img,.xpgo svg,.xpi{transition:none}}
/* small uppercase labels in the custom sections (the site's plain .eye is a script face) */
.xpsplit .eye,.xpcorp .eye,.xpher .eye,.xpyk .eye,.xpplan .eye,.xpfeat .xpbig em{font:600 .74rem/1.3 Poppins,sans-serif;letter-spacing:.18em;text-transform:uppercase;rotate:none;display:block}
.xpsplit .eye,.xpher .eye{color:var(--red)}
.xpnone[hidden],.xpst[hidden],.xpact [hidden]{display:none!important}
form.xpp{display:block}
.xpdc.noimg,.xproute.noimg{grid-template-columns:1fr}
.xpmore{align-self:flex-start;margin-top:14px}.xpmore[hidden]{display:none}
@media(max-width:600px){.xpsteps li span{display:none}}

/* ---------- roots page: Tamil Nadu regions as tabs ---------- */
.xptn{padding:clamp(56px,8vw,96px) 0;background:linear-gradient(180deg,#fff7ec,#fff 70%);scroll-margin-top:80px}
.xptnh{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,5vw,60px);align-items:end;margin-bottom:34px}
.xptnh .eye{font:600 .74rem/1.3 Poppins,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:#b7791f;rotate:none;display:block}
.xptnh h2{font:500 clamp(2rem,4vw,3rem)/1.1 "Playfair Display",Georgia,serif;margin:10px 0 14px}
.xptnh p{color:var(--mut);line-height:1.7;margin:0}
.xptabs{display:grid;grid-template-columns:minmax(240px,4fr) minmax(0,9fr);gap:clamp(18px,3vw,36px);align-items:start}
.xptl{display:flex;flex-direction:column;border-left:2px solid #f0e2cc}
.xptl button{display:grid;gap:3px;text-align:left;padding:14px 18px;margin-left:-2px;border:0;border-left:3px solid transparent;background:none;cursor:pointer;color:var(--ink);transition:background .2s,border-color .2s}
.xptl button b{font:600 .98rem/1.3 Poppins,sans-serif}
.xptl button small{font-size:.8rem;color:var(--mut);line-height:1.4}
.xptl button:hover{background:#fff4e4}
.xptl button[aria-selected=true]{border-left-color:#b7791f;background:#fff1dc}
.xptl button:focus-visible{outline:3px solid #e8a33d;outline-offset:-3px}
.xptp{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(18px,3vw,32px);background:#fff;border-radius:24px!important;padding:clamp(16px,2vw,22px);box-shadow:0 24px 50px -32px rgba(90,50,10,.45)}
.xptp[hidden]{display:none}
.xptpm{align-self:start;display:grid;gap:16px}.xptp figure{margin:0}.xptp figure img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:18px!important}
/* portrait or very wide photos (a deity, a statue, a long relief) are shown whole on a warm mat instead of being cut to the frame */
.xptp figure.tall img{aspect-ratio:3/4;max-height:560px;object-fit:contain;background:#fbf1e3}
.xpsights{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px}
.xpsights li{display:grid;gap:7px;align-content:start}
.xpsights img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:12px!important}
.xpsights li.fit img{object-fit:contain;background:#fbf1e3}
.xpsights span{font:500 .8rem/1.35 Poppins,sans-serif;color:var(--ink)}
.xptp h3{font:500 1.6rem/1.2 "Playfair Display",Georgia,serif;margin:6px 0 10px}
.xptp h4{font:600 .8rem Poppins,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#b7791f;margin:18px 0 4px}
.xptp p{color:var(--mut);line-height:1.65;margin:0 0 8px}
.xptown{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;font-weight:500}
.xptown svg{width:15px;height:15px;color:#b7791f}
.xptown a{color:var(--ink);text-decoration:underline;text-underline-offset:3px;text-decoration-color:#e8c48a}
.xpwhen{font-size:.88rem;margin-top:12px!important}.xpwhen b{color:var(--ink)}
@media(max-width:960px){
  .xptnh,.xptabs,.xptp{grid-template-columns:1fr}
  .xptl{flex-direction:row;overflow-x:auto;border-left:0;border-bottom:2px solid #f0e2cc;scroll-snap-type:x mandatory}
  .xptl button{flex:0 0 auto;max-width:220px;margin:0 0 -2px;border-left:0;border-bottom:3px solid transparent;scroll-snap-align:start}
  .xptl button[aria-selected=true]{border-bottom-color:#b7791f}
}

/* ---------- trade-fair cards: photo with calendar badge, collapsible details, two actions ---------- */
.xpmon{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 14px;margin-bottom:6px;scroll-snap-type:x proximity;scrollbar-width:none}
.xpmon::-webkit-scrollbar{display:none}
.xpmon button{flex:none;scroll-snap-align:start;padding:10px 16px;border-radius:99px!important;border:1px solid var(--line);background:#fff;font:600 .82rem Poppins,sans-serif;color:var(--ink);cursor:pointer;transition:background .2s,color .2s,border-color .2s,transform .2s}
.xpmon button:hover{border-color:var(--red);color:var(--red)}
.xpmon button.on{background:var(--ink);border-color:var(--ink);color:#fff;transform:translateY(-1px)}
.xpi:has(.xpevc){border-top:0;padding:0 0 18px}
.xpevc{display:grid;grid-template-columns:240px minmax(0,1fr);background:#fff;border:1px solid var(--line);border-radius:22px!important;overflow:hidden;transition:transform .3s,box-shadow .3s,border-color .3s}
.xpevc:hover{transform:translateY(-3px);box-shadow:0 22px 40px -26px rgba(20,20,40,.45);border-color:#ffd1c9}
.xpevp{position:relative;margin:0;min-height:200px;background:linear-gradient(135deg,#1b2433,#3a1f1f)}
.xpevp img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s}
.xpevc:hover .xpevp img{transform:scale(1.06)}
.xpevp:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05) 40%,rgba(0,0,0,.55))}
.xpcal{position:absolute;z-index:1;top:14px;left:14px;display:grid;min-width:76px;text-align:center;background:#fff;border-radius:14px!important;overflow:hidden;box-shadow:0 10px 24px -10px rgba(0,0,0,.6)}
.xpcal:before{content:"";height:8px;background:var(--red)}
.xpcal b{padding:6px 10px 0;font:700 1.15rem/1.15 "Playfair Display",Georgia,serif;color:var(--ink);white-space:nowrap}
.xpcal small{padding:2px 10px 8px;font:600 .66rem Poppins,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--red);white-space:nowrap}
.xpbadge{position:absolute;z-index:1;left:14px;bottom:14px;right:14px;width:max-content;max-width:calc(100% - 28px);padding:5px 10px;border-radius:99px!important;font:600 .66rem/1.3 Poppins,sans-serif;letter-spacing:.03em}
.xpevt{padding:20px 22px 18px;display:flex;flex-direction:column;min-width:0}
.xpevt h3{font:500 1.35rem/1.25 "Playfair Display",Georgia,serif;margin:0 0 6px;color:var(--ink)}
.xpwhen2{font-size:.84rem!important;color:var(--ink)!important;font-weight:500;margin-top:4px!important}
.xpmore2{margin-top:12px;border-top:1px dashed var(--line);padding-top:10px}
.xpmore2 summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:8px;font:600 .84rem Poppins,sans-serif;color:var(--ink)}
.xpmore2 summary::-webkit-details-marker{display:none}
.xpmore2 summary:after{content:"+";display:grid;place-items:center;width:22px;height:22px;border-radius:50%!important;background:#f3f0ed;font-size:1rem;transition:transform .25s}
.xpmore2[open] summary:after{transform:rotate(45deg);background:var(--red);color:#fff}
.xpmore2 p{margin-top:8px!important}
.xpevb2{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.xpgo2{margin:0!important;padding:11px 18px!important;border-radius:12px!important;background:var(--red)!important;color:#fff!important;font:600 .84rem Poppins,sans-serif!important;box-shadow:0 10px 20px -12px rgba(255,0,0,.9)}
.xpgo2 svg{width:15px!important;height:15px!important}
.xpoff{display:inline-flex;align-items:center;padding:11px 16px;border-radius:12px!important;border:1px solid var(--ink);color:var(--ink);font:600 .84rem Poppins,sans-serif;transition:background .2s,color .2s}
.xpoff:hover{background:var(--ink);color:#fff}
.xpoff.off{border-style:dashed;border-color:#c9c9c9;color:var(--mut)}
@media(max-width:1100px) and (min-width:861px){.xpevc{grid-template-columns:200px minmax(0,1fr)}}
@media(max-width:600px){
  .xpevc{grid-template-columns:1fr}
  .xpevp{min-height:0;aspect-ratio:16/9}
  .xpevt{padding:16px 16px 16px}
  .xpevt h3{font-size:1.25rem}
  .xpevb2>*{flex:1 1 0;justify-content:center;text-align:center}
}
@media(prefers-reduced-motion:reduce){.xpevc,.xpevp img,.xpmon button{transition:none}}
/* Canton Fair: lead section of the Business & Trade Travel page (tools/lib/exp.mjs) */
.xpcf{padding:clamp(48px,6vw,84px) 0;background:#fff}
.xpcf .xpw{max-width:1240px;margin:auto;padding:0 5vw}
.xpcf-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(24px,4vw,56px);align-items:center}
.xpcf-copy h2{font-size:clamp(1.8rem,3.6vw,2.6rem);line-height:1.15;margin:4px 0 16px}
.xpcf-copy p{color:var(--mut);line-height:1.8;margin:0 0 12px}
.xpcf-btn{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.xpcf-btn .btn,.xpcf-cta .btn{margin:0;display:inline-flex;align-items:center;gap:8px}
.xpcf-main{margin:0;position:relative;border-radius:18px;overflow:hidden;box-shadow:0 24px 60px rgba(10,20,40,.22)}
.xpcf-main img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover}
.xpcf figcaption{font-size:.8rem;color:var(--mut);padding:8px 2px 0}
.xpcf-main figcaption{position:absolute;left:0;right:0;bottom:0;padding:28px 18px 14px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.65))}
.xpcf-facts{list-style:none;margin:32px 0 0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.xpcf-facts li{border:1px solid var(--line);border-top:3px solid var(--red);padding:14px 16px;background:#fff}
.xpcf-facts small{display:block;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}
.xpcf-facts b{display:block;font-size:1.02rem;margin-top:4px}
.xpcf-gal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:28px}
.xpcf-gal figure{margin:0}
.xpcf-gal img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:12px}
.xpcf-h{font-size:clamp(1.25rem,2.2vw,1.6rem);margin:48px 0 18px}
.xpcf-dates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.xpcf-dates>div{border:1px solid var(--line);padding:22px 24px;background:#fbfbfb}
.xpcf-dates h4{margin:0;font-size:1.05rem}
.xpcf-st{margin:4px 0 14px;font-size:.82rem;color:var(--red);font-weight:600}
.xpcf-dates ol{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.xpcf-dates li{display:flex;justify-content:space-between;gap:12px;border-bottom:1px dashed var(--line);padding-bottom:8px}
.xpcf-dates li:last-child{border:0;padding:0}
.xpcf-ph{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.xpcf-ph>div{border:1px solid var(--line);padding:22px 22px 18px;background:#fff;border-top:4px solid var(--red)}
.xpcf-ph>.xpcf-p2{border-top-color:var(--gold)}.xpcf-ph>.xpcf-p3{border-top-color:#111}
.xpcf-ph span{font-size:.74rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--mut)}
.xpcf-ph h4{margin:4px 0 12px;font-size:1.1rem}
.xpcf-ph ul{margin:0;padding-left:18px;color:var(--mut);line-height:1.75;font-size:.92rem}
.xpcf-steps{list-style:none;counter-reset:cf;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.xpcf-steps li{counter-increment:cf;position:relative;padding:58px 22px 22px;border:1px solid var(--line);background:#fff}
.xpcf-steps li:before{content:counter(cf,decimal-leading-zero);position:absolute;top:18px;left:22px;font:600 1.6rem/1 "Playfair Display",serif;color:var(--red)}
.xpcf-steps h4{margin:0 0 6px;font-size:1rem}
.xpcf-steps p{margin:0;font-size:.9rem;line-height:1.7;color:var(--mut)}
.xpcf-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
.xpcf-tips{margin:0;padding-left:18px;line-height:1.75;color:var(--mut)}
.xpcf-tips li{margin-bottom:8px}
.xpcf-cta{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:40px;padding:28px 32px;background:linear-gradient(135deg,#1a1a1a,#8f0000);color:#fff;scroll-margin-top:110px}
.xpcf-cta h3{margin:0 0 6px;color:#fff}
.xpcf-cta p{margin:0;opacity:.85;max-width:62ch}
.xpcf .xpgo.btn{border:0;cursor:pointer}
@media(max-width:960px){.xpcf-top,.xpcf-two,.xpcf-dates{grid-template-columns:1fr}.xpcf-facts{grid-template-columns:repeat(3,minmax(0,1fr))}.xpcf-ph,.xpcf-steps{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.xpcf-facts,.xpcf-gal,.xpcf-ph,.xpcf-steps{grid-template-columns:1fr 1fr}.xpcf-ph,.xpcf-steps{grid-template-columns:1fr}.xpcf-cta{flex-direction:column;align-items:flex-start;padding:24px}}
.xpcf-when{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.xpcf-when>div{border:1px solid var(--line);border-left:3px solid var(--red);padding:20px 22px;background:#fbfbfb}
.xpcf-when h4{margin:0 0 6px;font-size:1.02rem}
.xpcf-when p{margin:0;color:var(--mut);line-height:1.7;font-size:.92rem}
@media(max-width:760px){.xpcf-when{grid-template-columns:1fr}}

/* nexara-flat.css */
/* Flat, square style for the whole site (home page and generated pages). Loaded last.
   Square corners everywhere, no gloss: no shine sweeps, gradient buttons, gradient text, glass blur or drop shadows.
   Kept round on purpose: the circular logo and the floating WhatsApp button. */
:root{--grad:#ff0000}

/* square corners */
*,*:before,*:after{border-radius:0!important}
a.wa{border-radius:50%!important}
.more-pl{border-radius:24px!important}
.mpi{border-radius:999px!important}
.mpi i,.mpi:after{border-radius:50%!important}
.mpi i{overflow:hidden}.mpi i img{width:100%;height:100%;object-fit:cover;display:block}
/* kept rounded: package cards, destination cards, trip finder, video reel */
.card,.dc,.tfr,.rp{border-radius:22px!important;overflow:hidden}
.opt button{border-radius:16px!important}
.card .dd button,.card .btn,.tfr .btn,.tfr .match,.rside .btn,.chips button,.chips a,.rside .tg span,.dc .dcat span,.dc .dn,.dc .dr,.rp .vb{border-radius:10px!important}
.opt button.on:after,.rov button{border-radius:50%!important}
.tfn>button{border-radius:50%!important}.tfd button{border-radius:99px!important}
/* readable text: white on the trip finder photo and on selected (red) options */
.tfi h3,.tfi p{color:#fff!important}
.opt button.on,.opt button.on i{color:#fff!important}
.opt button.on small{color:rgba(255,255,255,.85)!important}
.opt button.on:after{background:#fff!important;color:var(--red)!important}
.tfi .btn{margin:0 8px 0 0!important;vertical-align:middle}

/* no glass, no drop shadows, no glow text */
*{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:none!important}
/* these pulses only animate box-shadow, which is off above; left running they restyle every frame for nothing */
.wa,.rov button,.enq i,.live,.fbatch:before{animation:none!important}
h1,h2,h3,.btn,nav a{text-shadow:none!important}
header,header.sc{background:#fff!important}
header:after{background:var(--red)!important;opacity:1!important;height:2px!important}

/* no shine sweeps */
.btn:before,nav a.ph:before,.card:before,.card:after,#dgrid .dc:before,#dgrid .dc:after,.dc:before{display:none!important;animation:none!important}

/* solid buttons */
.btn,.btn.red,nav a.ph,.enq,nav .nl .mega a.mall{background:var(--red)!important;color:#fff!important;border:1px solid var(--red)!important}
.btn:hover,.btn.red:hover,nav a.ph:hover,.enq:hover,nav .nl .mega a.mall:hover{background:#cc0000!important;border-color:#cc0000!important;transform:none!important}
.btn.ghost2,.btn.glass{background:#fff!important;color:var(--ink)!important;border:1px solid var(--line)!important}
.btn.ghost2:hover,.btn.glass:hover{border-color:var(--red)!important;color:var(--red)!important}
.hero .sl .btn.glass{background:transparent!important;color:#fff!important;border-color:#fff!important}
nav a.ph i{background:#fff!important;color:var(--red)!important}
nav a.ph:hover i{transform:none!important}

/* menu: square tabs, solid current item */
.nl{background:#fff!important;border:1px solid var(--line)!important}
nav .nl a.cur,nav .nl a.cur:hover{background:var(--red)!important;color:#fff!important}
.tabs .ind,.ftabs button.on,.opt button.on{background:var(--red)!important;color:#fff!important}

/* flat text: no gradient-filled headings */
.sl small,.eye,.scr,.sct,.fcta h3 em,.bw i{background:none!important;-webkit-text-fill-color:currentColor!important;color:var(--red)!important;filter:none!important}
.pgh .scr,.hero .sl small,.sl small{color:#ffb15c!important}
.bw i{color:#ff7a2f!important}

/* flat panels */
.cta,.fcta{background:var(--red)!important}
.cta:before,.cta:after,.fin:before,.glance:before{display:none!important}
.fin{background:#f6f6f6!important}
.pgh.mo{background:#b20000!important}
.stat,.stat b{background:none!important}
#prog{background:var(--red)!important}
.top{background:#b20000!important}

/* tag chips and badges: square, flat */
.dcat span,.tg span,.route a,.route span,.tbl>a:not(.tmail){border-radius:0!important}
.tbl>a:not(.tmail):hover{background:var(--red)!important;color:#fff!important}
nav .nl .mega li a:before{background:var(--red)!important}
.mega{box-shadow:none!important;border:1px solid var(--line)!important;border-top:3px solid var(--red)!important}
/* buttons on red panels */
.cta .btn,.fcta .btn{background:#fff!important;color:var(--red)!important;border-color:#fff!important}
.cta .btn.glass,.fcta .btn.glass{background:transparent!important;color:#fff!important;border-color:#fff!important}
.cta .btn:hover,.fcta .btn:hover{background:#111!important;color:#fff!important;border-color:#111!important}
.stat b{-webkit-text-fill-color:currentColor!important;color:var(--red)!important}

/* ---------- three-colour scheme (like GT: brand colour + white + charcoal) ----------
   white pages · Nexara red for buttons, active menu and accents · charcoal footer · light-grey copyright bar */
:root{--char:#1e1e1e;--char2:#2a2a2a;--bar:#efefef}
.sky{display:none!important}
footer{color:#cfcfcf!important;background:var(--char)}
.fin{background:var(--char)!important;padding:56px 5vw 0!important}
.fin:before,.fin:after,.fcta:after{display:none!important}
.fcta{background:var(--red)!important;padding:30px 36px!important;margin-bottom:48px!important;border:0!important}
.fcta h3,.fcta h3 em{color:#fff!important;-webkit-text-fill-color:#fff!important}
.fcta p{color:rgba(255,255,255,.88)!important}
.fg{background:transparent!important;border:0!important;padding:0!important}
footer h5{color:#fff!important;font:400 1.5rem "Playfair Display",Georgia,serif!important;letter-spacing:0!important;text-transform:none!important;padding-bottom:14px!important}
footer h5:after{background:var(--red)!important;width:44px!important;height:2px!important}
.fg a,.fbrand p,.frow p a{color:#cfcfcf!important}
.fg a:hover,.frow p a:hover{color:#fff!important}
.fc svg{color:var(--red)!important}
.soc a{border:1px solid rgba(255,255,255,.25)!important;color:#fff!important}
.soc a:hover{background:var(--red)!important;border-color:var(--red)!important}
.flinks{border-top:1px solid rgba(255,255,255,.12)!important}
.frow h5{font:600 .74rem Poppins,sans-serif!important;letter-spacing:.16em!important;text-transform:uppercase!important;padding:0!important}
.frow h5:after{display:none!important}
.frow h5 a{color:#fff!important}
.frow p a:not(:last-child):after{color:#555!important}
/* light-grey copyright bar, full width */
.fb2{max-width:none!important;margin:48px -5vw 0!important;padding:22px 5vw!important;background:var(--bar)!important;border:0!important;color:#333!important;font-size:.85rem!important}
.fb2 a{color:#333!important}.fb2 a:hover{color:var(--red)!important}
footer .credits{max-width:none!important;margin:0 -5vw!important;padding:0 5vw 96px!important;background:var(--bar)!important;color:#666!important;opacity:1!important}
footer .credits a{color:#666!important}
/* footer CTA button: white on red */
.fcta .btn{background:#fff!important;color:var(--red)!important;border-color:#fff!important}
.fcta .btn:hover{background:var(--char)!important;color:#fff!important;border-color:var(--char)!important}
.soc a,footer .soc a{background:transparent!important;color:#fff!important}
.soc a svg{color:#fff!important;stroke:#fff}
.soc a:hover svg{color:#fff!important}
.fb2{padding-bottom:84px!important}
footer .fb2+.credits{margin-top:-62px!important;padding-bottom:84px!important}

/* GT Holidays-style type: light serif headings, light grey Poppins body, bold uppercase nav */
body{font-family:Poppins,system-ui,sans-serif;font-weight:300;color:#3d3d3d}
h1,h2,h3,h4,h5{font-family:"Playfair Display",Georgia,serif!important;font-weight:400!important;color:#222;letter-spacing:0}
h1{line-height:1.15}
p,li,td,dd{font-weight:300;color:#555}
b,strong,th,dt,label{font-weight:500}
small,.sub,.lead{color:#666}
nav .nl>a,nav .nl .mdd>a{font-family:Poppins,sans-serif;font-weight:600;text-transform:uppercase;letter-spacing:.02em;font-size:.86rem}
.btn,.enq,nav a.ph{font-family:Poppins,sans-serif;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
/* page banners, red call-to-action boxes and photo card captions: keep text white on the dark background */
.pgh h1,.pgh h2,.cta h2,.cta h3,.fcta h2,.fcta h3{color:#fff}
.pgh p,.pgh li,.cta p,.cta li,.cta small,.fcta p,.fcta li{color:rgba(255,255,255,.9)}
.tpi small{color:rgba(255,255,255,.88)}
/* hero slides: keep text white over the photos */
.sl,.sl h1,.sl h2,.sl p,.sl li,.sl .kick,.hf li{color:#fff!important}
/* scroll story captions: keep text white over the film */
.scap h2,.scap p,#sqcaps h2,#sqcaps p{color:#fff!important}
/* large red areas use a deeper red: full #ff0000 across a wide panel is tiring to look at. Buttons and accents keep --red */
:root{--red-deep:#9e0000}
.cta,.fcta{background:var(--red-deep)!important;box-shadow:none!important}
.cta .btn,.fcta .btn{color:var(--red-deep)!important}
.cta .btn.glass,.fcta .btn.glass{color:#fff!important}
.cta .btn:hover,.fcta .btn:hover{color:#fff!important}
.cta h2,.cta h3,.fcta h2,.fcta h3,.fcta h3 em{color:#fff!important;-webkit-text-fill-color:#fff!important}
.cta p,.cta li,.cta small,.fcta p,.fcta li{color:rgba(255,255,255,.88)!important}
.cta .eye{color:#ffb38a!important}

/* nexara-home.css */
/* Home page: quick planner bar, group-batch countdown and "in numbers" band.
   Loaded after nexara-flat.css, so rounded corners here are set with !important. */

/* ---------- quick planner bar under the hero ---------- */
#v-home .qp{border-radius:22px!important;box-shadow:0 30px 70px -20px rgba(20,10,10,.35),0 0 0 1px rgba(0,0,0,.04)!important;padding:14px!important}
#v-home .qp .q{border-radius:16px!important}
#v-home .qp .qi{border-radius:14px!important;background:linear-gradient(135deg,#fff1e6,#ffe0d6)!important;color:var(--red)!important}
#v-home .qp .btn{border-radius:16px!important;background:linear-gradient(135deg,#ff2a1f,#e60000 55%,#ff6a2a)!important;box-shadow:0 14px 26px -12px rgba(255,0,0,.7);transition:transform .25s,box-shadow .25s}
#v-home .qp .btn:hover{transform:translateY(-2px);box-shadow:0 18px 30px -12px rgba(255,0,0,.8)}
#v-home .qp .mst button{border-radius:10px!important}

/* ---------- "in numbers" band: light, compact, one row on desktop ---------- */
.hband{margin-top:40px;padding:28px 0 8px;background:#fff}
.hbw{max-width:1240px;margin:0 auto;padding:0 clamp(16px,4vw,40px);display:grid;grid-template-columns:minmax(220px,3fr) minmax(0,9fr);gap:clamp(18px,3vw,40px);align-items:center}
.hbk{display:inline-block;font:600 .7rem Poppins,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--red)}
.hbc h2{font:500 clamp(1.35rem,2.2vw,1.75rem)/1.2 "Playfair Display",Georgia,serif;color:var(--ink);margin:8px 0 6px}
.hbc p{margin:0;color:var(--mut);font-size:.88rem;line-height:1.55}
.hbs{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.hband .stat{display:grid!important;grid-template-columns:auto 1fr;column-gap:12px;align-items:center;text-align:left!important;padding:14px 16px!important;border-radius:16px!important;background:linear-gradient(180deg,#fff,#fff8f4)!important;border:1px solid #f3e4dc!important;color:var(--ink);transition:transform .3s,box-shadow .3s,border-color .3s!important}
.hband .stat:hover,.hband .stat:focus-visible{transform:translateY(-3px);border-color:#ffc9b8!important;box-shadow:0 14px 26px -18px rgba(255,60,30,.55)!important}
.hband .stat i{grid-row:span 2;width:42px;height:42px;border-radius:12px!important;display:grid;place-items:center;background:#fff0e8;color:var(--red)}
.hband .stat i svg{width:22px;height:22px}
.hband .stat b{font:700 1.45rem/1.1 "Playfair Display",Georgia,serif!important;color:var(--red)!important;-webkit-text-fill-color:var(--red)!important}
.hband .stat span{font:500 .8rem/1.3 Poppins,sans-serif;color:var(--mut)!important}
.hband .stat small{display:none}
@media(max-width:1000px){.hbw{grid-template-columns:1fr}.hbc{text-align:center}}
@media(max-width:700px){.hbs{grid-template-columns:1fr 1fr;gap:10px}.hband .stat{padding:12px!important}.hband .stat i{width:36px;height:36px}}
@media(prefers-reduced-motion:reduce){.hband .stat{transition:none!important}}

/* ---------- opening flight and in-page transition: the Nexara airliner ---------- */
#intro .pl,#fly .pl{width:clamp(260px,38vw,520px)!important;transform-origin:50% 50%;opacity:0}
#intro .pl svg,#fly .pl svg{overflow:visible;filter:drop-shadow(0 18px 14px rgba(60,30,30,.22))}
#intro .pl:before,#intro .pl:after,#fly .pl:before,#fly .pl:after{display:none!important}
#intro .pl .ctr,#fly .pl .ctr{animation:ctr 1.4s ease-out both;transform-origin:250px 0}
@keyframes ctr{from{opacity:0;transform:scaleX(.2)}to{opacity:1;transform:none}}
/* soft clouds drifting behind the opening flight */
#intro:before{content:"";position:absolute;inset:-10% -40%;background:radial-gradient(60px 26px at 18% 30%,#fff 60%,transparent 62%),radial-gradient(90px 34px at 22% 32%,#fff 60%,transparent 62%),radial-gradient(70px 28px at 62% 66%,#fff 60%,transparent 62%),radial-gradient(110px 40px at 67% 68%,#fff 60%,transparent 62%),radial-gradient(80px 30px at 86% 22%,#fff 60%,transparent 62%);opacity:.9;animation:cld 6s linear both}
@keyframes cld{from{transform:translateX(6%)}to{transform:translateX(-10%)}}
@media(prefers-reduced-motion:reduce){#intro:before,#intro .pl .ctr{animation:none}}

/* ---------- opening flight, extra motion: glint, puffs, banner, tagline, logo glow, near clouds ---------- */
.pl .gl{animation:glint 2.6s ease-in-out .3s infinite}
@keyframes glint{0%{transform:skewX(-20deg) translateX(0)}60%,100%{transform:skewX(-20deg) translateX(760px)}}
#intro .puff{position:absolute;z-index:1;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%!important;background:radial-gradient(circle,rgba(214,224,236,.85) 0,rgba(224,232,242,.55) 40%,rgba(235,240,246,0) 70%);filter:blur(2px);pointer-events:none;animation:puff 1.4s ease-out forwards}
@keyframes puff{from{opacity:.95;transform:scale(calc(var(--s) * .6))}to{opacity:0;transform:translate(-60px,6px) scale(calc(var(--s) * 3.2))}}
#intro .pl .bnr{animation:bnin .6s ease-out .25s both}
@keyframes bnin{from{opacity:0}to{opacity:1}}
#intro .in p span{display:inline-block;opacity:0;transform:translateY(8px)}
#intro.pass .in p span{animation:tgin .45s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(var(--i) * 22ms)}
@keyframes tgin{to{opacity:1;transform:none}}
#intro.pass img{animation:logoglow 1.1s ease-out .5s both}
@keyframes logoglow{0%{filter:drop-shadow(0 0 0 rgba(255,90,40,0))}40%{filter:drop-shadow(0 0 22px rgba(255,90,40,.55));transform:scale(1.05)}100%{filter:drop-shadow(0 0 0 rgba(255,90,40,0));transform:none}}
#intro:after{content:"";position:absolute;inset:-10% -60%;pointer-events:none;background:radial-gradient(120px 46px at 12% 12%,rgba(255,255,255,.95) 60%,transparent 62%),radial-gradient(160px 56px at 16% 14%,rgba(255,255,255,.95) 60%,transparent 62%),radial-gradient(140px 50px at 55% 96%,rgba(255,255,255,.95) 60%,transparent 62%),radial-gradient(190px 60px at 60% 98%,rgba(255,255,255,.95) 60%,transparent 62%),radial-gradient(130px 44px at 92% 10%,rgba(255,255,255,.9) 60%,transparent 62%);animation:cld2 3.6s linear both}
@keyframes cld2{from{transform:translateX(14%)}to{transform:translateX(-22%)}}
@media(prefers-reduced-motion:reduce){.pl .gl,#intro:after{animation:none}#intro .in p span{opacity:1;transform:none}}

/* "Our holiday packages": filters, search, count and show-all */
.fbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:14px;margin-bottom:10px}
.fbar #ftabs{margin:0;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.fbar #ftabs::-webkit-scrollbar{display:none}
.fsch{display:flex;align-items:center;gap:8px;padding:0 16px;height:46px;border:1px solid var(--line);border-radius:99px;background:#fff;color:var(--mut);min-width:min(280px,100%);transition:border-color .25s,box-shadow .25s}
.fsch:focus-within{border-color:var(--red);box-shadow:0 0 0 4px rgba(255,0,0,.08)}
.fsch input{border:0;outline:0;background:transparent;font:400 .92rem Poppins,sans-serif;color:var(--ink);width:100%;min-width:0}
.fct{text-align:center;color:var(--mut);font-size:.85rem;margin:6px 0 18px;min-height:1.2em}
.fnone{text-align:center;color:var(--mut);margin:20px 0}
.fnone a{color:var(--red);font-weight:600}
.fmore{text-align:center;margin-top:28px}
#fgrid .card:hover .more,#fgrid .card:focus-within .more{max-height:340px}
#fgrid .card .ci{transition:transform 1.2s cubic-bezier(.2,.8,.2,1)}
#fgrid .card:hover .ci{transform:scale(1.08)}
@media(max-width:640px){.fbar{flex-direction:column;align-items:stretch}.fbar #ftabs{max-width:100%}.fsch{min-width:0}}
/* icon tiles now hold photos; the quick planner fields are label-over-input */
#v-home .qp .q{grid-template-columns:1fr}
.hband .stat i,.opt button i,.msf i,.gl2 i,.mpi i{overflow:hidden;padding:0}
.hband .stat i img,.opt button i img,.msf i img,.gl2 i img,.mpi i img{width:100%;height:100%;object-fit:cover;display:block}
.hband .stat i{width:48px;height:48px}
.opt button i{width:56px;height:56px;border-radius:14px;margin-bottom:6px}
.opt button:hover i{transform:scale(1.06)}

/* nexara-brush.css */
/* Brush-label photo tiles: a destination photo with its name in white script on an orange brush stroke.
   Used for popular-destination rows on the home page, destination hubs, region pages and "Nearby" lists. */
.brg{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}
.brg.sm{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}
.brt{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;border-radius:18px!important;background:#1e2a33;isolation:isolate;box-shadow:0 14px 30px -20px rgba(0,0,0,.55)}
.brt img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .7s}
.brt:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,0) 35%,rgba(0,0,0,.25))}
.brt:hover img,.brt:focus-visible img{transform:scale(1.07)}
.brl{position:absolute;left:50%;bottom:16%;transform:translateX(-50%) rotate(-3deg);display:grid;place-items:center;width:max-content;max-width:92%;padding:6px 26px 10px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 90' preserveAspectRatio='none'%3E%3Cpath fill='%23ff6a2a' d='M8 22c18-9 49-12 80-13 22-1 41 2 60-1 30-4 63-3 95 0 18 2 37 1 49 7 5 3 0 8 4 12 3 4 2 9-1 13 3 5 4 11 0 15 3 6-1 11-6 14-13 7-34 6-52 8-26 3-52 1-78 3-21 2-41-1-62 1-26 3-53 4-77-2-8-2-14-6-12-12-3-4-3-9 0-13-4-5-3-11 1-15-3-6 0-12 6-15 0-1-9 2-7-2z'/%3E%3Cpath fill='%23ff8a3d' opacity='.55' d='M20 14c40-6 90-3 140-5 40-2 80 1 120 6-30 3-70 1-110 3-50 2-100 3-150-4z'/%3E%3Cpath fill='%23e2450f' opacity='.45' d='M14 70c50 6 110 4 170 3 35-1 70 0 100-4-30 9-80 10-130 11-50 1-100 0-140-10z'/%3E%3C/svg%3E") center/100% 100% no-repeat;
  transition:transform .35s}
.brt:hover .brl{transform:translateX(-50%) rotate(-1deg) scale(1.04)}
.brl b{font:400 clamp(1.7rem,2.6vw,2.3rem)/1.05 "Mr Dafoe",cursive;color:#fff;text-align:center;text-shadow:0 2px 0 rgba(150,30,0,.35);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.brg.sm .brl b{font-size:clamp(1.4rem,2vw,1.8rem)}
.brt small{position:absolute;left:12px;top:12px;padding:4px 10px;border-radius:99px!important;background:rgba(255,255,255,.92);font:600 .7rem Poppins,sans-serif;color:var(--ink,#111)}
@media(max-width:600px){
  .brg,.brg.sm{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:68%;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -16px;padding:4px 16px 10px;scroll-padding:16px;scrollbar-width:none}
  .brg::-webkit-scrollbar{display:none}
  .brt{scroll-snap-align:start}
}
@media(prefers-reduced-motion:reduce){.brt img,.brl{transition:none}}
.brhome{max-width:1240px;margin:0 auto;padding:clamp(40px,6vw,70px) 5vw 10px}.brall{text-align:center;margin-top:24px}
.tnlead{color:var(--mut);max-width:70ch;margin:-6px 0 20px}.tnmore{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}

/* nexara-search.css */
/* Site search: header button (markup in tools/lib/menu.mjs) and the search panel (assets/js/nexara-search.js).
   Shared by index.html and every generated page. */

/* ---------- entry points: a search field in the top bar on desktop, an icon beside the burger below 1181px ---------- */
.tbar .tsrch{display:none}
@media(min-width:1181px){
  .tbar .tsrch{display:inline-flex;align-items:center;gap:9px;min-width:300px;padding:4px 6px 4px 12px;border:1px solid rgba(255,122,47,.45);border-radius:99px;background:#fff;color:#7a6f6b;font-weight:400}
  .tbar .tsrch:hover,.tbar .tsrch:focus-visible{border-color:#ff4d2e;color:#1f1a19;box-shadow:0 4px 12px rgba(255,77,46,.15)}
  .tbar .tsrch svg{width:15px;height:15px;color:var(--red)}
  .tbar .tsrch span{flex:1}
  .tsrch kbd{padding:0 7px;border:1px solid #f2dcd4;border-radius:99px;background:#fff6f2;font:600 .7rem/1.5 Poppins,sans-serif;color:#7a6f6b}
  header>.hsrch{display:none}
}
.hsrch{display:grid;place-items:center;flex:none;width:44px;height:44px;margin:0 10px 0 auto;border-radius:50%;border:1px solid rgba(255,122,47,.55);background:#fff;color:var(--red);transition:background .25s,color .25s}
.hsrch:hover,.hsrch:focus-visible{background:linear-gradient(135deg,#ff4d2e,#ffa63b);border-color:transparent;color:#fff}

/* ---------- panel: styled like the enquiry popup (#enq in nexara-base.css), red header, bordered field, square-ish chips ---------- */
html.sropen{overflow:hidden}
.srch{width:min(680px,94vw);max-width:none;max-height:none;margin:6vh auto 0;padding:0;border:0;border-radius:18px;background:#fff;color:#1f1a19;box-shadow:0 40px 100px rgba(12,12,12,.45);font-family:Poppins,sans-serif;overflow:hidden}
.srch::backdrop{background:rgba(15,15,15,.62);backdrop-filter:blur(4px)}
.srch[open]{animation:srIn .22s var(--ease,ease-out)}
@keyframes srIn{from{opacity:0;transform:translateY(-12px) scale(.98)}}
.srw{display:flex;flex-direction:column;max-height:min(88vh,800px);max-height:min(88dvh,800px)}
.srh,.srf,.srt,.srk{flex:none}

.srh{position:relative;padding:26px 30px 24px;background:linear-gradient(135deg,#cc0000,#ff0000 70%,#ff4d2e);color:#fff}
.srh small{display:block;margin-bottom:8px;font-size:.68rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gold,#ffd27a)}
.srh b{display:block;margin-bottom:6px;font:600 1.55rem/1.2 "Playfair Display",serif}
.srh span{display:block;max-width:44ch;font-size:.86rem;line-height:1.5;opacity:.82}
.srch .srx{position:absolute;top:18px;right:18px;width:34px;height:34px;margin:0;padding:0;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.1);color:#fff;cursor:pointer;transition:background .2s}
.srch .srx:hover{background:rgba(255,255,255,.22)}
.srch .srx:focus-visible{outline:2px solid var(--gold,#ffd27a);outline-offset:2px}

.srch .srf{display:block;margin:0;padding:20px 30px 6px}
.srf label{display:flex;width:100%;box-sizing:border-box;align-items:center;gap:12px;padding:0 16px;border:1px solid #e6e1e0;border-radius:10px;background:#fff;cursor:text;transition:border-color .2s,box-shadow .2s}
.srf label:hover{border-color:#d0c9c7}
.srf label:focus-within{border-color:#ff0000;box-shadow:0 0 0 4px rgba(255,0,0,.1)}
.srf svg{flex:none;color:var(--red)}
.srch .srf input{flex:1;min-width:0;height:auto;margin:0;padding:15px 0;border:0;border-radius:0;outline:0;box-shadow:none;background:none;font:500 1rem Poppins,sans-serif;color:#1f1a19}
.srf input::placeholder{color:#9a8e89;font-weight:400}
.srf input::-webkit-search-cancel-button{cursor:pointer}

.srt{display:flex;gap:8px;padding:12px 30px 14px;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--line,#f0e6e3)}
.srt::-webkit-scrollbar{display:none}
@media(min-width:701px){.srt{flex-wrap:wrap}}
.srch .srt button{flex:none;width:auto;margin:0;padding:8px 14px;border:1px solid #e6e1e0;border-radius:10px;background:#fff;font:500 .8rem Poppins,sans-serif;color:#4a403d;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.srt button small{font-size:.72rem;opacity:.7}
.srt button.on small{opacity:.9}
.srt button:hover:not(:disabled){border-color:#ff4d2e;color:var(--red)}
.srch .srt button.on{background:var(--red);border-color:var(--red);color:#fff}
.srt button:disabled{opacity:.45;cursor:default}

.srb{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:8px 20px 12px}
.srm{margin:6px 8px 4px;font-size:.78rem;color:#7a6f6b}
.srm:empty{display:none}
.srl{list-style:none;margin:0;padding:0}
.srl [role=option] a{display:grid;grid-template-columns:58px 1fr;gap:14px;align-items:center;padding:9px 10px;border-radius:12px;color:inherit;text-decoration:none}
.srl [role=option].on a{background:#fff1eb;box-shadow:inset 3px 0 0 #ff4d2e}
.srl img,.srl i{width:58px;height:58px;border-radius:10px;object-fit:cover;background:#fff6f2}
.srl i{display:grid;place-items:center;color:#ff4d2e;background:linear-gradient(135deg,#fff1eb,#ffe0d2)}
.srl a>span{display:flex;flex-direction:column;gap:1px;min-width:0}
.srl small{font:600 .66rem Poppins,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#e0301e}
.srl b{font:600 .95rem/1.3 Poppins,sans-serif;color:#1f1a19}
.srl em{font:400 .8rem/1.4 Poppins,sans-serif;font-style:normal;color:#7a6f6b;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.srl mark{background:rgba(255,166,59,.3);color:inherit;border-radius:3px;padding:0 1px}

.srp{display:flex;flex-direction:column;gap:10px;padding:10px 8px 6px}
.srp b{font:600 .78rem Poppins,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#7a6f6b}
.srp span{display:flex;flex-wrap:wrap;gap:8px}
.srch .srp button{flex:none;width:auto;margin:0;padding:8px 14px;border:1px solid #e6e1e0;border-radius:10px;background:#fff;font:500 .84rem Poppins,sans-serif;color:#4a403d;cursor:pointer;transition:border-color .2s,color .2s}
.srch .srp button:hover,.srch .srp button:focus-visible{border-color:#ff4d2e;color:var(--red)}
.srq{font:600 .88rem Poppins,sans-serif;color:var(--red)}

.srk{display:flex;justify-content:center;gap:18px;margin:0;padding:12px 30px;border-top:1px solid var(--line,#f0e6e3);background:#fbfbfb;font-size:.72rem;color:#7a6f6b}
.srk kbd{display:inline-block;min-width:20px;margin-right:4px;padding:1px 5px;border:1px solid #f2dcd4;border-bottom-width:2px;border-radius:5px;background:#fff;font:600 .68rem Poppins,sans-serif;text-align:center;color:#4a403d}

/* phones: the panel fills the screen */
@media(max-width:700px){
  .srch{width:100%;height:100%;margin:0;border-radius:0}
  .srw{height:100%;max-height:none}
  .srh{padding:22px 20px 20px}
  .srh b{font-size:1.3rem}
  .srh span{padding-right:30px}
  .srch .srf{padding:16px 20px 4px}
  .srt{padding:10px 20px 12px}
  .srb{padding:6px 10px 10px}
  .srl [role=option] a{grid-template-columns:50px 1fr;gap:12px;padding:8px}
  .srl img,.srl i{width:50px;height:50px}
  .srl em{-webkit-line-clamp:2}
}
@media(hover:none),(max-width:700px){.srk{display:none}}
@media(prefers-reduced-motion:reduce){.srch[open]{animation:none}}

/* nexara-light.css */
/* Light theme: replaces the black/charcoal panels across the site with warm light surfaces.
   Loaded last on every page so it wins over base, flat and page styles. Photo cards keep their dark overlays for legibility. */
:root{--lt-bg:#fff6f2;--lt-card:#ffffff;--lt-line:#f2dcd4;--lt-ink:#1f1a19;--lt-text:#4a403d;--lt-mut:#7a6f6b;--char:#fff6f2;--char2:#ffece5}

/* top bar */
.tbar{background:#fff0eb!important;color:var(--lt-text)!important;border-bottom:1px solid var(--lt-line)}
.tbar a:hover{color:var(--red)!important}
.tbar svg{color:var(--red)!important}

/* footer */
.sky{color:var(--lt-bg)!important}
footer{background:var(--lt-bg)!important;color:var(--lt-text)!important}
.fin{background:var(--lt-bg)!important}
footer h5{color:var(--lt-ink)!important}
.fg a,.fbrand p,.frow p a{color:var(--lt-text)!important}
.fg a:hover,.frow p a:hover{color:var(--red)!important}
.frow h5 a{color:var(--red)!important}
.frow p a:not(:last-child):after{color:#c9b7b0!important}
.flinks{border-top:1px solid var(--lt-line)!important}
.soc a,footer .soc a{border:1px solid var(--lt-line)!important;background:#fff!important;color:var(--red)!important}
.soc a svg{color:var(--red)!important;stroke:var(--red)}
.soc a:hover,footer .soc a:hover{background:var(--red)!important;border-color:var(--red)!important}
.soc a:hover svg{color:#fff!important;stroke:#fff}
.fg a.flogo{box-shadow:0 10px 26px rgba(255,0,0,.15)}
.cta .btn:hover,.fcta .btn:hover{background:#ffe3dc!important;color:var(--red-deep,#cc0000)!important;border-color:#ffe3dc!important}

/* mobile menu footer */
@media(max-width:1180px){
  .mfoot{background:#fff0eb!important;border-color:var(--lt-line)!important}
  header>nav .mfoot a{color:var(--lt-text)!important}
  header>nav .mfoot a:hover{color:var(--red)!important}
}

/* enquiry popup header and "at a glance" band: red instead of black-to-red */
.eh{background:linear-gradient(135deg,#cc0000,#ff0000 70%,#ff4d2e)!important}
.glance{background:linear-gradient(135deg,#b20000,#ff0000 60%,#ff4d2e)!important}

/* marquee and countdown */
.mq{background:#fff0eb!important;color:var(--lt-ink)!important;border-block:1px solid var(--lt-line)}
.clock div{background:#fff!important;color:var(--lt-ink)!important;border:1px solid var(--lt-line)!important;box-shadow:0 8px 18px rgba(255,0,0,.1)!important}
.clock b{color:var(--red)!important}
#toast{background:var(--red)!important;color:#fff!important}

/* destination pages: travel tips, departure board, must-try list */
.ptips>div{background:var(--lt-bg)!important;color:var(--lt-ink)!important;border:1px solid var(--lt-line)}
.ptips>div:after{background:radial-gradient(circle,rgba(255,40,30,.1),transparent 70%)!important}
.ptips b{color:var(--red)!important}
.ptips p{color:var(--lt-text)!important}
.dpbd{background:var(--lt-bg)!important;color:var(--lt-ink)!important;border:1px solid var(--lt-line)}
.dpbd .dep{background:var(--lt-card)!important;border-color:var(--lt-line)!important;color:var(--lt-ink)!important}
.dpbd .dep b{background:#fff0e0!important;color:#c25e00!important;border-bottom-color:#f3cfa8!important}
.dpbd .dep small{color:var(--lt-mut)!important}
.dpbd .dep:hover,.dpbd .dep:focus-visible{background:#ffece5!important}
.cxm{background:var(--lt-bg)!important;color:var(--lt-ink)!important;border:1px solid var(--lt-line)}
.cxm h3{color:var(--lt-ink)!important}
.cxm h3 span{color:#e07b00!important}
.cxm li{color:var(--lt-text)!important;border-bottom-color:rgba(0,0,0,.12)!important}
.tpc:nth-child(4) .tpb,.kc3>div:nth-child(3) i,.oat i,.oat button span,body.sub .dgrid .dn{background:var(--red)!important;color:#fff!important}

/* experience pages: corporate travel, yachts, Canton Fair call-out, chips */
.xpcorp{background:var(--lt-bg)!important;color:var(--lt-ink)!important}
.xpcorp .eye,.xpcorp li:before{color:var(--red)!important}
.xpcorp p,.xpcorp li span{color:var(--lt-text)!important}
.xpcorp li{border-top-color:var(--lt-line)!important}
.xpcorp li b{color:var(--lt-ink)!important}
.xpcorp .xpgo{color:var(--red)!important}
.xpyk{background:#fbf6ec!important;color:#3b2f1e!important}
.xpyk .eye{color:#a07a2a!important}
.xpyk .xpcloud li{background:#fff!important;border-color:rgba(160,122,42,.35)!important;color:#3b2f1e!important}
.xpcf-cta{background:linear-gradient(135deg,#cc0000,#ff4d2e)!important}
.xpch input:checked+span,.xpmon button.on{background:var(--red)!important;border-color:var(--red)!important;color:#fff!important}
.xpoff:hover{background:var(--red)!important;color:#fff!important}
.xpcorp h2,.xpcorp h3,.dpbd h2,.dpbd h3,.ptips h3{color:var(--lt-ink)!important}
.xpyk h2,.xpyk h3{color:#2a2114!important}
.xpyk p{color:#5a4a33!important}
