/* ==========================================================================
   Nexus One — Design System (Light)
   Palette: Deep Navy / Midnight Blue / Bright Cyan / Mint Green
   ========================================================================== */
:root{
	--navy:#0A1930; --midnight:#12305B; --cyan:#12D6FF; --mint:#3EF0A8;
	--bg:#f5f8fc;             /* page background */
	--surface:#ffffff;        /* cards, header, inputs */
	--surface-2:#eef3fa;      /* hover / subtle fills */
	--ink:#0c1c33;            /* primary text (deep navy) */
	--muted:#5a6b84;          /* secondary text */
	--line:rgba(12,28,51,.12);
	--card:var(--surface); --card-2:var(--surface-2);
	--link:#0a6f8f;           /* readable cyan for text/links (>=4.5:1 on --bg) */
	--grad:linear-gradient(120deg,var(--cyan),var(--mint));
	--grad-text:linear-gradient(120deg,var(--midnight),#0aa6cf); /* readable on light */
	--grad-deep:linear-gradient(160deg,var(--navy),var(--midnight));
	--r:18px; --maxw:1200px; --pad:clamp(20px,5vw,64px);
	--shadow:0 18px 45px -26px rgba(12,28,51,.40);
	--shadow-sm:0 6px 18px -10px rgba(12,28,51,.22);
	--font:"Inter",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
	--display:"Sora",var(--font);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
	margin:0;font-family:var(--font);color:var(--ink);line-height:1.65;
	background:var(--bg);overflow-x:hidden;-webkit-font-smoothing:antialiased;
}
body::before{ /* soft ambient brand tint */
	content:"";position:fixed;inset:0;z-index:-2;
	background:
		radial-gradient(60vw 60vw at 12% -10%, color-mix(in srgb,var(--cyan) 12%, transparent), transparent 60%),
		radial-gradient(50vw 50vw at 100% 0%, color-mix(in srgb,var(--mint) 10%, transparent), transparent 55%),
		radial-gradient(60vw 60vw at 50% 120%, color-mix(in srgb,var(--midnight) 6%, transparent), transparent 60%),
		var(--bg);
}
img{max-width:100%;height:auto;display:block}
a{color:var(--link);text-decoration:none}
h1,h2,h3,h4{font-family:var(--display);line-height:1.1;margin:0 0 .5em;font-weight:800;letter-spacing:-.02em;color:var(--ink)}
h1{font-size:clamp(2.4rem,6vw,4.4rem)}
h2{font-size:clamp(1.9rem,4vw,3rem)}
h3{font-size:clamp(1.2rem,2.2vw,1.6rem)}
p{margin:0 0 1rem}
.container{max-width:var(--maxw);margin:0 auto;padding-inline:var(--pad)}
.section{padding:clamp(60px,9vw,120px) 0;position:relative}
.eyebrow{font-family:var(--display);font-weight:700;letter-spacing:.18em;text-transform:uppercase;
	font-size:.72rem;color:var(--link);display:inline-block;margin-bottom:14px}
.gradient-text{
	background:linear-gradient(100deg,var(--midnight) 0%,var(--midnight) 34%,var(--cyan) 50%,var(--midnight) 66%,var(--midnight) 100%);
	background-size:220% auto;-webkit-background-clip:text;background-clip:text;color:transparent;
	animation:nx-shimmer 7s linear infinite}
@keyframes nx-shimmer{to{background-position:-220% center}}
.lead{font-size:clamp(1.05rem,1.6vw,1.25rem);color:var(--muted);max-width:60ch}
.center{text-align:center;margin-inline:auto}

/* Buttons ----------------------------------------------------------------- */
.nx-btn{display:inline-flex;align-items:center;gap:.5em;font-family:var(--display);font-weight:700;
	padding:.85em 1.5em;border-radius:999px;border:1px solid var(--line);cursor:pointer;
	transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s,filter .25s,background .25s;font-size:.98rem}
.nx-btn:hover{transform:translateY(-3px)}
.nx-btn--primary{background:var(--grad);color:#04121f;border:none;
	box-shadow:0 12px 26px -10px color-mix(in srgb,var(--cyan) 70%,transparent)}
.nx-btn--primary:hover{filter:brightness(1.04);box-shadow:0 18px 34px -10px color-mix(in srgb,var(--cyan) 75%,transparent)}
.nx-btn--ghost{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}
.nx-btn--ghost:hover{background:var(--surface-2);border-color:color-mix(in srgb,var(--cyan) 45%,transparent)}

/* Header ------------------------------------------------------------------ */
.site-header{position:sticky;top:0;z-index:60;transition:background .3s,backdrop-filter .3s,border-color .3s,box-shadow .3s;
	border-bottom:1px solid transparent}
.site-header.scrolled{background:color-mix(in srgb,var(--surface) 85%,transparent);
	backdrop-filter:blur(14px) saturate(140%);border-bottom-color:var(--line);box-shadow:var(--shadow-sm)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:16px}
.brand{display:flex;align-items:center;gap:12px;font-family:var(--display);font-weight:800;font-size:1.3rem;color:var(--ink)}
.brand .logo-mark{width:38px;height:38px;border-radius:11px;background:var(--grad);display:grid;place-items:center;
	color:#04121f;font-weight:800;box-shadow:0 8px 18px -8px color-mix(in srgb,var(--cyan) 60%,transparent)}
.brand small{display:block;font-family:var(--font);font-weight:500;font-size:.62rem;letter-spacing:.14em;
	text-transform:uppercase;color:var(--muted)}
.brand__logo{max-height:46px;width:auto;display:block}
.footer-grid .brand__logo{max-height:60px}
.menu{display:flex;align-items:center;gap:6px;list-style:none;margin:0;padding:0}
.menu a{color:var(--ink);font-weight:500;padding:.55em .9em;border-radius:10px;font-size:.95rem;
	position:relative;transition:color .2s,background .2s}
.menu a:hover,.menu .current-menu-item>a{background:var(--surface-2);color:var(--midnight)}
.nav__cta{display:flex;align-items:center;gap:10px}
.nav-toggle{display:none;background:var(--surface);border:1px solid var(--line);color:var(--ink);
	width:44px;height:44px;border-radius:12px;cursor:pointer;font-size:1.2rem;box-shadow:var(--shadow-sm)}

/* Hero -------------------------------------------------------------------- */
.hero{position:relative;padding:clamp(28px,6vw,72px) 0 clamp(40px,7vw,92px);overflow:hidden}
.hero__canvas{position:absolute;inset:0;z-index:0;width:100%;height:100%;display:block;pointer-events:none}
.hero__media{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center;background-repeat:no-repeat}
.hero__media-veil{position:absolute;inset:0;z-index:1;pointer-events:none;
	background:linear-gradient(90deg, var(--bg) 4%, color-mix(in srgb,var(--bg) 62%,transparent) 42%, transparent 78%)}
@media(max-width:820px){
	.hero__media-veil{background:linear-gradient(180deg, color-mix(in srgb,var(--bg) 35%,transparent), color-mix(in srgb,var(--bg) 82%,transparent))}
}
/* Hero grid: left copy aligns with the logo; slider aligns with the Book Now edge */
.hero .container{position:relative;z-index:2}
.hero__grid{display:grid;grid-template-columns:1fr;gap:clamp(28px,4vw,50px);align-items:start}
.hero__grid--split{grid-template-columns:minmax(0,1.05fr) minmax(0,.92fr);align-items:stretch}

/* Hero image slider */
.hero__slider{position:relative;z-index:2;border-radius:20px;overflow:hidden;border:1px solid var(--line);
	box-shadow:var(--shadow);height:100%;min-height:340px;background:var(--surface-2);transition:transform .3s ease;
	transform-style:preserve-3d;will-change:transform}
.hero__slides{position:absolute;inset:0}
.hero__slide{position:absolute;inset:0;opacity:0;transform:scale(1.06);transition:opacity .9s ease, transform 5s ease}
.hero__slide.is-active{opacity:1;transform:scale(1)}
.hero__slide img{width:100%;height:100%;object-fit:cover;display:block}
.hero__dots{position:absolute;left:0;right:0;bottom:14px;z-index:3;display:flex;gap:8px;justify-content:center}
.hero__dot{width:9px;height:9px;padding:0;border:0;border-radius:50%;cursor:pointer;background:rgba(255,255,255,.7);
	box-shadow:0 1px 4px rgba(0,0,0,.3);transition:width .3s,background .3s,border-radius .3s}
.hero__dot.is-active{background:var(--cyan);width:22px;border-radius:5px}
@media(max-width:900px){ .hero__grid--split{grid-template-columns:1fr} }
@media (prefers-reduced-motion:reduce){.hero__slide{transition:opacity .4s ease}}
.hero__inner{position:relative;z-index:2;max-width:820px}
.hero h1{margin-bottom:.35em}
.hero .lead{font-size:clamp(1.1rem,1.8vw,1.4rem)}
.hero__actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:44px;max-width:none}
.stat{position:relative;display:flex;align-items:center;gap:16px;background:var(--surface);border:1px solid var(--line);
	border-radius:16px;padding:22px;box-shadow:var(--shadow-sm);overflow:hidden;
	transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s,border-color .3s}
.stat::before{content:"";position:absolute;left:0;top:0;height:3px;width:100%;background:var(--grad);
	transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.stat:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:color-mix(in srgb,var(--cyan) 35%,transparent)}
.stat:hover::before{transform:scaleX(1)}
.stat__num{font-family:var(--display);font-weight:800;line-height:1;color:var(--midnight);
	font-size:clamp(1.9rem,3.2vw,2.7rem);display:inline-flex;align-items:flex-start}
.stat__suf{font-size:.55em;font-weight:700;color:var(--cyan);margin-left:2px;transform:translateY(.15em)}
.stat__label{margin-top:0;font-size:.82rem;color:var(--muted);font-weight:600;letter-spacing:.01em;line-height:1.25}
.orb{position:absolute;border-radius:50%;filter:blur(60px);opacity:.45;z-index:1;animation:float 14s ease-in-out infinite}
.orb--1{width:420px;height:420px;background:radial-gradient(circle,var(--cyan),transparent 65%);top:-90px;right:-60px}
.orb--2{width:360px;height:360px;background:radial-gradient(circle,var(--mint),transparent 65%);bottom:-120px;right:18%;animation-delay:-5s}
.orb--3{width:300px;height:300px;background:radial-gradient(circle,color-mix(in srgb,var(--midnight) 40%,transparent),transparent 70%);top:30%;left:-100px;animation-delay:-9s}
.grid-lines{position:absolute;inset:0;z-index:0;opacity:.7;
	background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
	background-size:54px 54px;mask-image:radial-gradient(circle at 70% 30%,#000,transparent 75%)}
@keyframes float{0%,100%{transform:translate(0,0)}50%{transform:translate(-24px,26px)}}

/* Divisions (two parts) --------------------------------------------------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:26px;perspective:1200px}
.division{--mx:50%;--my:50%;position:relative;padding:clamp(28px,4vw,48px);border-radius:calc(var(--r) + 6px);
	border:1px solid var(--line);background:var(--surface);overflow:hidden;box-shadow:var(--shadow-sm);transform-style:preserve-3d;
	transition:transform .4s cubic-bezier(.2,.8,.2,1),border-color .4s,box-shadow .4s}
.division::before{content:"";position:absolute;inset:0;background:var(--grad);opacity:0;transition:opacity .4s;
	mask:linear-gradient(#000,transparent);z-index:0}
.division::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:0;opacity:0;transition:opacity .4s;
	background:radial-gradient(340px circle at var(--mx) var(--my), color-mix(in srgb,var(--cyan) 15%,transparent), transparent 60%)}
.division>*{position:relative;z-index:1}
.division:hover{transform:translateY(-6px);border-color:color-mix(in srgb,var(--cyan) 45%,transparent);box-shadow:var(--shadow)}
.division:hover::before{opacity:.07}
.division:hover::after{opacity:1}
.division .tag{font-family:var(--display);font-weight:700;color:#0b9e6a;letter-spacing:.05em;font-size:.9rem}
.division h3{font-size:clamp(1.5rem,2.4vw,2rem);margin:.4em 0 .2em}
.division .moto{color:var(--link);font-style:italic;margin-bottom:1rem}
.division__media{position:relative;margin:8px 0 18px;border-radius:14px;overflow:hidden;border:1px solid var(--line);
	aspect-ratio:16/9;box-shadow:var(--shadow-sm);transform:translateZ(24px);animation:nx-divfloat 6s ease-in-out infinite}
.division:nth-child(2) .division__media{animation-delay:-3s}
.division__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.division:hover .division__media img{transform:scale(1.07)}
.division__media-shine{position:absolute;inset:0;pointer-events:none;
	background:linear-gradient(115deg,transparent 32%,rgba(255,255,255,.55) 48%,transparent 64%);transform:translateX(-130%)}
.division:hover .division__media-shine{animation:nx-divshine 1.1s ease forwards}
@keyframes nx-divshine{to{transform:translateX(130%)}}
@keyframes nx-divfloat{0%,100%{transform:translateZ(24px) translateY(0)}50%{transform:translateZ(24px) translateY(-9px)}}
@media (prefers-reduced-motion:reduce){.division__media{animation:none;transform:none}}

/* Cards / grids ----------------------------------------------------------- */
.grid-cards{display:grid;gap:22px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));perspective:1100px}
.grid-cards--3{grid-template-columns:repeat(3,1fr)}
@media(max-width:820px){.grid-cards--3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.grid-cards--3{grid-template-columns:1fr}}
.card{--mx:120px;--my:120px;position:relative;padding:26px;border-radius:var(--r);border:1px solid var(--line);
	background:var(--surface);box-shadow:var(--shadow-sm);transform-style:preserve-3d;
	transition:transform .3s cubic-bezier(.2,.8,.2,1),border-color .35s,box-shadow .35s;overflow:hidden}
.card:hover{transform:translateY(-6px);border-color:color-mix(in srgb,var(--cyan) 40%,transparent);box-shadow:var(--shadow)}
.card__glow{position:absolute;left:0;top:0;width:240px;height:240px;pointer-events:none;opacity:0;
	background:radial-gradient(circle, color-mix(in srgb,var(--cyan) 34%,transparent), transparent 62%);
	filter:blur(24px);transform:translate(calc(var(--mx) - 120px), calc(var(--my) - 120px));transition:opacity .35s}
.card:hover .card__glow{opacity:.55}
.card .ico{width:52px;height:52px;border-radius:14px;background:color-mix(in srgb,var(--cyan) 16%,var(--surface));
	display:grid;place-items:center;color:var(--midnight);margin-bottom:16px;border:1px solid var(--line)}
.card .ico .dashicons{font-size:26px;width:26px;height:26px}
.card h3{margin-bottom:.3em;font-size:1.25rem}
.card p{color:var(--muted);font-size:.95rem;margin-bottom:1rem}
.card .arrow{font-family:var(--display);font-weight:700;color:var(--link);display:inline-flex;gap:.4em;align-items:center}
.card:hover .arrow{gap:.75em}
.card__link{position:absolute;inset:0;z-index:2}
.card__media{margin:-26px -26px 18px;aspect-ratio:16/10;overflow:hidden;background:var(--surface-2);
	border-bottom:1px solid var(--line);border-radius:var(--r) var(--r) 0 0}
.card__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.card:hover .card__media img{transform:scale(1.06)}

/* Brand chip logos (text based) */
.brand-mark{font-family:var(--display);font-weight:800;font-size:1.4rem;letter-spacing:-.02em;color:var(--ink)}
.pill{display:inline-block;font-size:.72rem;padding:.35em .8em;border-radius:999px;border:1px solid var(--line);
	color:var(--muted);margin:0 6px 6px 0;background:var(--surface-2)}

/* Feature list */
.feat{list-style:none;padding:0;margin:18px 0}
.feat li{position:relative;padding:8px 0 8px 30px;color:var(--ink);border-bottom:1px solid var(--line)}
.feat li::before{content:"";position:absolute;left:0;top:15px;width:14px;height:14px;border-radius:50%;
	background:var(--grad);box-shadow:0 0 12px color-mix(in srgb,var(--cyan) 50%,transparent)}

/* Booking / forms --------------------------------------------------------- */
.nx-booking__switch{display:flex;gap:10px;margin-bottom:26px;flex-wrap:wrap}
.nx-tab{font-family:var(--display);font-weight:700;padding:.8em 1.3em;border-radius:999px;cursor:pointer;
	border:1px solid var(--line);background:var(--surface);color:var(--ink);transition:all .25s;box-shadow:var(--shadow-sm)}
.nx-tab.is-active{background:var(--grad);color:#04121f;border-color:transparent}
.nx-panel{display:none}
.nx-panel.is-active{display:block;animation:fade .4s ease}
@keyframes fade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.nx-form{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:clamp(20px,3vw,32px);box-shadow:var(--shadow-sm)}
.nx-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}
.nx-grid label{display:flex;flex-direction:column;gap:6px;font-size:.85rem;color:var(--muted);font-weight:600}
.nx-req{color:#e5484d;font-weight:700}
.nx-cap{display:inline-flex;align-items:center;gap:5px}
.nx-panel__intro{color:var(--muted);font-size:.95rem;margin:-2px 0 20px;max-width:60ch}
.nx-form__note{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:.85rem;margin:14px 0 0}
.nx-form__note .dashicons{color:var(--mint);font-size:18px;width:18px;height:18px}

/* Segmented booking type switch */
.nx-booking__switch{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:6px;border-radius:999px;
	background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);margin-bottom:24px}
.nx-booking__switch .nx-tab{display:flex;align-items:center;justify-content:center;gap:8px;border:0;background:transparent;
	box-shadow:none;color:var(--muted);padding:.75em 1em}
.nx-booking__switch .nx-tab .dashicons{font-size:18px;width:18px;height:18px}
.nx-booking__switch .nx-tab.is-active{background:var(--grad);color:#04121f}
@media(max-width:460px){.nx-booking__switch{grid-template-columns:1fr}}

/* Booking page layout */
.booking-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:32px;align-items:start}
.booking-aside{display:flex;flex-direction:column;gap:24px;position:sticky;top:100px}
.steps{list-style:none;padding:0;margin:16px 0 0;display:flex;flex-direction:column;gap:18px}
.steps li{display:flex;gap:14px;align-items:flex-start}
.steps__n{flex:0 0 34px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
	font-family:var(--display);font-weight:800;color:#04121f;background:var(--grad);box-shadow:var(--shadow-sm)}
.steps h4{margin:0 0 2px;font-size:1rem;color:var(--ink)}
.steps p{margin:0;color:var(--muted);font-size:.92rem}
@media(max-width:900px){
	.booking-layout{grid-template-columns:1fr}
	.booking-aside{position:static}
}
.nx-col-2{grid-column:1/-1}
.nx-form input,.nx-form select,.nx-form textarea{
	width:100%;padding:.8em .9em;border-radius:12px;border:1px solid var(--line);
	background:#fff;color:var(--ink);font-family:var(--font);font-size:1rem;transition:border-color .2s,box-shadow .2s}
.nx-form input:focus,.nx-form select:focus,.nx-form textarea:focus{outline:none;
	border-color:var(--cyan);box-shadow:0 0 0 3px color-mix(in srgb,var(--cyan) 22%,transparent)}
.nx-form option{color:var(--ink)}
.nx-note{color:var(--muted);font-size:.85rem;margin:-6px 0 16px}
.nx-alert{padding:14px 18px;border-radius:12px;margin-bottom:22px;border:1px solid var(--line)}
.nx-alert--ok{background:color-mix(in srgb,var(--mint) 20%,#fff);border-color:color-mix(in srgb,var(--mint) 55%,transparent);color:#0a5c3c}
.nx-alert--warn{background:color-mix(in srgb,#ffb020 20%,#fff);border-color:color-mix(in srgb,#ffb020 55%,transparent);color:#7a4b00}

/* Live time-slot picker */
.nx-slots{min-height:44px}
.nx-slots__hint{color:var(--muted);font-size:.9rem;display:inline-block;padding:6px 0}
.nx-slots__label{display:block;font-size:.85rem;color:var(--muted);font-weight:600;margin-bottom:8px}
.nx-slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
.nx-slot{font-family:var(--display);font-weight:600;font-size:.9rem;padding:.7em .8em;border-radius:12px;cursor:pointer;
	border:1px solid var(--line);background:var(--surface-2);color:var(--ink);transition:all .2s;text-align:center}
.nx-slot:hover{border-color:color-mix(in srgb,var(--cyan) 50%,transparent);transform:translateY(-2px)}
.nx-slot.is-sel{background:var(--grad);color:#04121f;border-color:transparent;box-shadow:0 8px 18px -8px color-mix(in srgb,var(--cyan) 60%,transparent)}

/* Article / content ------------------------------------------------------- */
.entry{max-width:760px}
.entry img{border-radius:var(--r);margin:1.5rem 0}
.post-card{display:flex;flex-direction:column;overflow:hidden}
.post-card time{color:var(--muted);font-size:.82rem}
.post-card h3 a{color:var(--ink)}
.page-hero{padding:clamp(24px,4vw,52px) 0 clamp(18px,3vw,38px);position:relative;overflow:hidden}
.page-hero h1{max-width:900px}
.page-hero--banner{background-size:cover;background-position:center;min-height:320px;display:flex;align-items:center;
	padding:clamp(40px,6vw,80px) 0}
.page-hero--banner::before{content:"";position:absolute;inset:0;z-index:1;
	background:linear-gradient(180deg, color-mix(in srgb,var(--navy) 52%,transparent), color-mix(in srgb,var(--navy) 78%,transparent))}
.page-hero--banner .container{position:relative;z-index:2;width:100%}
.page-hero--banner .eyebrow{color:var(--mint)}
.page-hero--banner h1,.page-hero--banner .lead{color:#fff}
.page-hero--banner .gradient-text{background:linear-gradient(120deg,var(--cyan),var(--mint));
	-webkit-background-clip:text;background-clip:text;color:transparent;animation:none}

/* Footer ------------------------------------------------------------------ */
.site-footer{border-top:1px solid var(--line);margin-top:40px;
	background:color-mix(in srgb,var(--midnight) 5%,var(--surface))}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:34px;padding:64px 0 40px}
.footer-grid h4{font-size:1rem;color:var(--ink);margin-bottom:1em}
.footer-grid a{color:var(--muted);display:block;padding:5px 0}
.footer-grid a:hover{color:var(--link)}
.social{display:flex;gap:10px;margin-top:14px}
.social a{width:40px;height:40px;border-radius:11px;background:var(--surface);border:1px solid var(--line);
	display:grid;place-items:center;color:var(--ink);padding:0;transition:all .25s;box-shadow:var(--shadow-sm)}
.social a:hover{background:var(--grad);color:#04121f;transform:translateY(-3px)}
.footer-bottom{border-top:1px solid var(--line);padding:20px 0;display:flex;justify-content:space-between;
	gap:12px;flex-wrap:wrap;color:var(--muted);font-size:.85rem}
/* Inline prose links: underlined so they don't rely on colour alone */
.footer-bottom a,.entry a,.info-item a{text-decoration:underline;text-underline-offset:2px}
.footer-bottom a{color:var(--link)}

/* WhatsApp floating button ------------------------------------------------ */
.nx-wa{position:fixed;right:22px;bottom:22px;z-index:80;width:58px;height:58px;border-radius:50%;
	background:#25D366;color:#fff;display:grid;place-items:center;box-shadow:0 14px 30px -8px rgba(37,211,102,.6);
	transition:transform .25s}
.nx-wa:hover{transform:scale(1.08)}
.nx-wa::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #25D366;
	animation:pulse 2.2s ease-out infinite}
@keyframes pulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.9);opacity:0}}

/* Scroll reveal ----------------------------------------------------------- */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.2,.8,.2,1),transform .7s cubic-bezier(.2,.8,.2,1)}
.reveal.in{opacity:1;transform:none}
.reveal[data-d="1"]{transition-delay:.08s}.reveal[data-d="2"]{transition-delay:.16s}
.reveal[data-d="3"]{transition-delay:.24s}.reveal[data-d="4"]{transition-delay:.32s}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.orb{animation:none}}

/* Pointer-following light */
.nx-cursor{position:fixed;top:0;left:0;width:480px;height:480px;border-radius:50%;pointer-events:none;z-index:4;opacity:0;
	transition:opacity .5s;will-change:transform;
	background:radial-gradient(circle, color-mix(in srgb,var(--cyan) 15%,transparent) 0%, color-mix(in srgb,var(--mint) 8%,transparent) 40%, transparent 62%);
	mix-blend-mode:multiply}
body.cursor-on .nx-cursor{opacity:.85}

/* Partner-brand ticker */
.marquee{overflow:hidden;-webkit-mask:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);
	mask:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.marquee__track{display:flex;gap:clamp(36px,5vw,64px);width:max-content;align-items:center;animation:nx-marquee 32s linear infinite}
.marquee:hover .marquee__track{animation-play-state:paused}
.marquee__item{font-family:var(--display);font-weight:800;font-size:clamp(1.15rem,2.4vw,1.7rem);color:var(--muted);
	opacity:.55;white-space:nowrap;transition:opacity .3s,color .3s,transform .3s}
.marquee__item:hover{opacity:1;color:var(--midnight);transform:translateY(-2px)}
@keyframes nx-marquee{to{transform:translateX(-50%)}}

@media (prefers-reduced-motion:reduce){
	.gradient-text{animation:none;background-position:0 center}
	.marquee__track{animation:none}
	.nx-cursor{display:none}
}

.section-head{max-width:640px;margin-bottom:44px}

/* About page */
.about-split{display:grid;grid-template-columns:1.5fr 1fr;gap:34px;align-items:center}
@media(max-width:820px){.about-split{grid-template-columns:1fr}}
.about-card{background:var(--grad-deep);color:#fff;border-radius:calc(var(--r) + 4px);padding:clamp(28px,4vw,42px);
	box-shadow:var(--shadow);position:relative;overflow:hidden}
.about-card::after{content:"";position:absolute;right:-30px;top:-30px;width:160px;height:160px;border-radius:50%;
	background:var(--grad);filter:blur(50px);opacity:.35}
.about-card p{position:relative;font-family:var(--display);font-size:clamp(1.2rem,2vw,1.5rem);font-weight:700;line-height:1.3;color:#fff;margin:0 0 .5em}
.about-card .about-card__by{font-size:.95rem;font-weight:500;color:var(--cyan);font-family:var(--font)}
.about-brands{display:flex;flex-wrap:wrap;gap:10px}
.pill--lg{font-size:.95rem;padding:.6em 1.2em;font-family:var(--display);font-weight:700;color:var(--ink)}

/* Home popup banner */
.nx-popup{position:fixed;inset:0;z-index:130;display:flex;align-items:center;justify-content:center;padding:24px;
	background:color-mix(in srgb,var(--navy) 80%,#000);opacity:0;transition:opacity .3s}
.nx-popup.open{opacity:1}
.nx-popup__box{position:relative;max-width:520px;width:100%;background:var(--surface);border-radius:20px;overflow:hidden;
	box-shadow:var(--shadow);text-align:center;transform:translateY(16px) scale(.98);transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.nx-popup.open .nx-popup__box{transform:none}
.nx-popup__img{width:100%;height:auto;display:block}
.nx-popup__btn{margin:18px auto 22px}
.nx-popup__close{position:absolute;top:10px;right:10px;width:36px;height:36px;border-radius:50%;border:0;cursor:pointer;
	background:rgba(0,0,0,.5);color:#fff;font-size:20px;line-height:1;display:grid;place-items:center;z-index:2}
.nx-popup__close:hover{background:rgba(0,0,0,.72)}

/* Event page */
.event-meta{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.event-meta__item{display:inline-flex;align-items:center;gap:6px;font-family:var(--display);font-weight:600;font-size:.92rem;
	padding:.5em 1em;border-radius:999px;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-sm)}
.page-hero--banner .event-meta__item{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.25);color:#fff;backdrop-filter:blur(6px)}
.nx-checks{display:flex;flex-wrap:wrap;gap:10px 18px;padding-top:4px}
.nx-check{display:inline-flex;align-items:center;gap:7px;font-size:.95rem;color:var(--ink);font-weight:500}
.nx-check input{width:auto}

/* Homepage auto-play video */
.nx-video-section{padding-bottom:0}
.nx-video-section + .section{padding-top:clamp(28px,4vw,52px)}
.nx-video{max-width:960px;margin:0 auto}
.nx-video__frame{position:relative;aspect-ratio:16/9;border-radius:20px;overflow:hidden;
	border:1px solid var(--line);box-shadow:var(--shadow);background:#000}
.nx-video__frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.section-head.center{margin-inline:auto}

/* WordPress pagination */
.wp-block-query-pagination,.navigation.pagination{display:flex;gap:8px;flex-wrap:wrap}
.pagination .page-numbers{display:inline-grid;place-items:center;min-width:42px;height:42px;padding:0 10px;border-radius:12px;
	border:1px solid var(--line);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}
.pagination .page-numbers.current{background:var(--grad);color:#04121f;border-color:transparent}

/* Contact page ------------------------------------------------------------ */
.contact-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:28px;align-items:start}
.info-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
	padding:clamp(20px,3vw,30px);box-shadow:var(--shadow-sm)}
.info-item{display:flex;gap:14px;align-items:flex-start;padding:16px 0;border-bottom:1px solid var(--line)}
.info-item:first-child{padding-top:0}
.info-item:last-child{border-bottom:0;padding-bottom:0}
.info-item .ico{flex:0 0 46px;width:46px;height:46px;border-radius:12px;display:grid;place-items:center;
	background:color-mix(in srgb,var(--cyan) 16%,var(--surface));color:var(--midnight);border:1px solid var(--line)}
.info-item .ico .dashicons{font-size:22px;width:22px;height:22px}
.info-item h4{margin:0 0 3px;font-size:1rem;color:var(--ink)}
.info-item a,.info-item span{color:var(--muted);font-size:.95rem;line-height:1.5}
.info-item a:hover{color:var(--link)}
.map-embed{border-radius:var(--r);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-sm);aspect-ratio:16/7}
.map-embed iframe{width:100%;height:100%;border:0;display:block}

/* Reactive image gallery + lightbox */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;perspective:1100px}
.gallery__item{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;border-radius:var(--r);
	border:1px solid var(--line);box-shadow:var(--shadow-sm);transform-style:preserve-3d;cursor:zoom-in;
	transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s}
.gallery__item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.gallery__item:hover{box-shadow:var(--shadow)}
.gallery__item:hover img{transform:scale(1.08)}
.gallery__zoom{position:absolute;right:12px;bottom:12px;width:38px;height:38px;border-radius:10px;display:grid;place-items:center;
	background:color-mix(in srgb,var(--navy) 55%,transparent);color:#fff;font-size:18px;opacity:0;transform:translateY(6px);transition:.3s;z-index:3}
.gallery__item:hover .gallery__zoom{opacity:1;transform:none}

.nx-lightbox{position:fixed;inset:0;z-index:120;padding:24px;display:flex;align-items:center;justify-content:center;
	background:color-mix(in srgb,var(--navy) 90%,#000);opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
.nx-lightbox.open{opacity:1;visibility:visible}
.nx-lightbox img{max-width:92vw;max-height:86vh;border-radius:12px;box-shadow:0 30px 80px -20px rgba(0,0,0,.7);
	transform:scale(.96);transition:transform .3s}
.nx-lightbox.open img{transform:scale(1)}
.nx-lb-btn{position:absolute;width:52px;height:52px;border-radius:50%;border:0;cursor:pointer;font-size:24px;
	display:grid;place-items:center;color:#fff;background:rgba(255,255,255,.14);backdrop-filter:blur(6px);transition:background .2s}
.nx-lb-btn:hover{background:rgba(255,255,255,.28)}
.nx-lb-close{top:20px;right:20px}
.nx-lb-prev{left:20px;top:50%;transform:translateY(-50%)}
.nx-lb-next{right:20px;top:50%;transform:translateY(-50%)}
@media(max-width:560px){.nx-lb-prev{left:8px}.nx-lb-next{right:8px}.nx-lb-btn{width:44px;height:44px;font-size:20px}}

/* Rocket launch transition ------------------------------------------------ */
.nx-launch{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;overflow:hidden;
	background:radial-gradient(circle at 50% 64%, color-mix(in srgb,var(--midnight) 60%, var(--navy)), var(--navy) 72%);
	opacity:0;transition:opacity .35s ease}
.nx-launch.show{opacity:1}
.nx-launch .stars{position:absolute;inset:0;opacity:.55;
	background-image:radial-gradient(2px 2px at 20% 30%,#fff,transparent),radial-gradient(2px 2px at 72% 58%,#cfe,transparent),
		radial-gradient(1px 1px at 42% 82%,#fff,transparent),radial-gradient(1.5px 1.5px at 85% 22%,#fff,transparent),
		radial-gradient(1px 1px at 55% 14%,#bff,transparent),radial-gradient(1.5px 1.5px at 12% 66%,#fff,transparent)}
.nx-launch.warp .stars{animation:nx-warp .8s ease-in forwards}
@keyframes nx-warp{to{transform:scaleY(3) translateY(-30%);opacity:0}}
.nx-launch.flash::after{content:"";position:absolute;inset:0;pointer-events:none;
	background:radial-gradient(circle at 50% 14%, #fff, color-mix(in srgb,var(--cyan) 60%,transparent) 32%, transparent 62%);
	animation:nx-flash .45s ease-out forwards}
@keyframes nx-flash{0%{opacity:0;transform:scale(.2)}30%{opacity:1}100%{opacity:0;transform:scale(2.6)}}
.nx-launch.shake{animation:nx-shake .5s linear}
@keyframes nx-shake{0%,100%{transform:translate(0,0)}10%{transform:translate(-6px,3px)}30%{transform:translate(6px,-3px)}
	50%{transform:translate(-5px,4px)}70%{transform:translate(5px,-2px)}90%{transform:translate(-3px,3px)}}

.nx-stage{position:relative;width:min(92vw,460px);height:min(80vh,600px)}
.nx-rocket{position:absolute;left:50%;bottom:12%;width:132px;transform:translateX(-50%);will-change:transform}
.nx-rocket.launch{transition:transform 1s cubic-bezier(.5,0,.85,.2);transform:translateX(-50%) translateY(-140vh) rotate(8deg)}
.nx-rocket.ignite{animation:nx-rumble .32s linear infinite}
@keyframes nx-rumble{0%,100%{margin-left:0}25%{margin-left:-2px}75%{margin-left:2px}}

.nx-nose{width:0;height:0;margin:0 auto -1px;border-left:66px solid transparent;border-right:66px solid transparent;
	border-bottom:46px solid var(--cyan);opacity:0;transition:opacity .4s .45s;
	filter:drop-shadow(0 -2px 10px color-mix(in srgb,var(--cyan) 70%,transparent))}
.nx-body{display:flex;flex-direction:column;gap:6px;padding:0 8px}
.nx-part{height:32px;display:grid;place-items:center;border-radius:8px;font-family:var(--display);font-weight:700;
	font-size:.72rem;color:#eaf6ff;letter-spacing:.02em;text-align:center;padding:0 6px;
	background:linear-gradient(120deg, color-mix(in srgb,var(--midnight) 82%, #000), color-mix(in srgb,var(--cyan) 24%, var(--midnight)));
	border:1px solid color-mix(in srgb,var(--cyan) 45%, transparent);box-shadow:inset 0 0 10px color-mix(in srgb,var(--cyan) 20%,transparent);
	opacity:0;transform:translate(var(--sx,0),var(--sy,0)) rotate(var(--sr,0deg)) scale(.55);
	transition:transform .7s cubic-bezier(.2,.9,.2,1),opacity .5s ease}
.nx-part:nth-child(1){transition-delay:0s}.nx-part:nth-child(2){transition-delay:.09s}
.nx-part:nth-child(3){transition-delay:.18s}.nx-part:nth-child(4){transition-delay:.27s}
.nx-part:nth-child(5){transition-delay:.36s}.nx-part:nth-child(6){transition-delay:.45s}
.nx-part:nth-child(7){transition-delay:.54s}.nx-part:nth-child(8){transition-delay:.63s}
.nx-rocket.assembled .nx-part{opacity:1;transform:none}
.nx-rocket.assembled .nx-nose,.nx-rocket.assembled .nx-fins{opacity:1}
.nx-fins{position:relative;height:26px;opacity:0;transition:opacity .4s .5s}
.nx-fins span{position:absolute;bottom:0;width:0;height:0;border-top:26px solid var(--mint)}
.nx-fins span:first-child{left:-8px;border-right:26px solid transparent}
.nx-fins span:last-child{right:-8px;border-left:26px solid transparent}
.nx-flame{width:26px;height:0;margin:0 auto;border-radius:0 0 45% 45%;filter:blur(1px);
	background:linear-gradient(#fff,var(--cyan),var(--mint))}
.nx-rocket.ignite .nx-flame{height:74px;animation:nx-flicker .12s infinite alternate}
@keyframes nx-flicker{from{height:60px;opacity:.85}to{height:84px;opacity:1}}
.nx-tagline{position:absolute;left:0;right:0;bottom:3%;text-align:center;color:#bfe9ff;font-family:var(--display);
	font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:.78rem;opacity:.9}
@media (prefers-reduced-motion:reduce){.nx-launch{display:none}}

/* Responsive -------------------------------------------------------------- */
@media(max-width:900px){
	.split{grid-template-columns:1fr}
	.contact-grid{grid-template-columns:1fr}
	.footer-grid{grid-template-columns:1fr 1fr}
	.nav-toggle{display:block}
	.menu{position:fixed;inset:0 0 0 auto;width:min(320px,84vw);flex-direction:column;align-items:stretch;
		background:color-mix(in srgb,var(--surface) 98%,transparent);backdrop-filter:blur(20px);
		padding:90px 22px 30px;transform:translateX(105%);transition:transform .35s cubic-bezier(.2,.8,.2,1);
		border-left:1px solid var(--line);gap:4px;box-shadow:var(--shadow)}
	.menu.open{transform:none}
	.menu a{padding:.9em 1em;font-size:1.05rem}
	body.nav-open{overflow:hidden}
}
@media(max-width:680px){
	.stats{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:560px){
	.nx-grid{grid-template-columns:1fr}
	.footer-grid{grid-template-columns:1fr}
	.brand small{display:none}
	.brand{font-size:1.15rem;gap:9px}
	.nav{padding:12px 0}
	.nav__cta .nx-btn{padding:.65em 1em;font-size:.88rem}
	.hero__actions{width:100%}
	.hero__actions .nx-btn{flex:1 1 100%;justify-content:center}
	.map-embed{aspect-ratio:3/4}
}
