/* =========================================================
   Header v2 — 3-Tier Luxury Futuristic Navigation
   ========================================================= */

/* -----------------------------------------------------------
   Tier 0 — Dreamy scroll progress bar
----------------------------------------------------------- */
.tap-scroll-progress{
	position:fixed;top:0;inset-inline:0;height:4px;
	background:rgba(15,22,36,.15);
	z-index:210;pointer-events:none;
}
.tap-scroll-progress-fill{
	display:block;height:100%;width:0%;
	background:linear-gradient(90deg,var(--navy),var(--gold),var(--gold-light));
	position:relative;
	box-shadow:0 0 14px 2px rgba(var(--gold-rgb),.7),0 0 34px 10px rgba(var(--gold-rgb),.35);
}
.tap-scroll-progress-tip{
	position:absolute;top:50%;inset-inline-end:0;transform:translate(50%,-50%);
	width:13px;height:13px;border-radius:50%;
	background:radial-gradient(circle,#fff,var(--gold-light));
	box-shadow:0 0 14px 5px rgba(var(--gold-rgb),.9),0 0 34px 14px rgba(var(--gold-rgb),.45);
	animation:tapTipPulse 1.6s ease-in-out infinite;
}
@keyframes tapTipPulse{
	0%,100%{transform:translate(50%,-50%) scale(1);}
	50%{transform:translate(50%,-50%) scale(1.4);}
}

/* -----------------------------------------------------------
   Header shell
----------------------------------------------------------- */
.tap-header-v2{position:fixed;inset-inline:0;top:0;z-index:100;}

/* Offset for the WordPress admin toolbar when logged in. On mobile the
   header and scroll progress stay pinned to the true top (0) instead of
   dropping below the mobile admin toolbar. */
body.admin-bar .tap-header-v2{top:32px;}
body.admin-bar .tap-scroll-progress{top:32px;}
@media screen and (max-width:782px){
	body.admin-bar .tap-header-v2{top:0;}
	body.admin-bar .tap-scroll-progress{top:0;}
}

/* -----------------------------------------------------------
   Tier 1 — Topbar
----------------------------------------------------------- */
.tap-topbar-v2{
	position:relative;overflow:hidden;
	background:linear-gradient(180deg,rgba(14,21,35,.94),rgba(20,30,48,.9));
	backdrop-filter:blur(18px) saturate(160%);
	-webkit-backdrop-filter:blur(18px) saturate(160%);
	color:rgba(255,255,255,.82);
	font-size:12.5px;
	border-bottom:1px solid rgba(255,255,255,.06);
	max-height:80px;opacity:1;
	transition:max-height .45s var(--ease),opacity .3s var(--ease);
}
.tap-topbar-v2::before{
	content:"";position:absolute;inset:0;pointer-events:none;
	background:
		radial-gradient(560px 60px at 18% 0%,rgba(var(--gold-rgb),.18),transparent 60%),
		radial-gradient(480px 60px at 82% 100%,rgba(86,120,180,.3),transparent 60%);
	animation:tapAmbientDrift 12s ease-in-out infinite alternate;
}
@keyframes tapAmbientDrift{
	from{opacity:.55;transform:translateX(-4%);}
	to{opacity:1;transform:translateX(4%);}
}
.tap-header-v2.is-scrolled .tap-topbar-v2{max-height:0;opacity:0;overflow:hidden;border-bottom-color:transparent;}

.tap-topbar-v2-inner{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:7px;}

.tap-topbar-v2-contacts{display:flex;align-items:center;gap:20px;}
.tap-topbar-v2-social{display:flex;align-items:center;gap:10px;}

.tap-halo-item{
	position:relative;display:inline-flex;align-items:center;gap:6px;
	isolation:isolate;color:rgba(255,255,255,.82);
	transition:color .3s var(--ease);
}
.tap-halo-item:hover{color:#fff;}
.tap-halo-item svg{
	position:relative;z-index:2;width:13px;height:13px;color:var(--gold);
	transition:transform .45s cubic-bezier(.34,1.56,.64,1);
}
.tap-halo-item:hover svg{transform:scale(1.3) rotateY(20deg) rotate(-8deg);}
.tap-halo-ring{
	position:absolute;top:50%;inset-inline-start:-8px;transform:translateY(-50%);
	width:26px;height:26px;border-radius:50%;z-index:1;
	background:radial-gradient(circle,rgba(var(--gold-rgb),.55),transparent 70%);
	opacity:0;filter:blur(2px);
	transition:opacity .35s var(--ease);
}
.tap-halo-item:hover .tap-halo-ring{opacity:1;animation:tapHaloPulse 1.1s ease-out infinite;}
/* transform + opacity only (compositor-friendly) — an earlier version
   pulsed via box-shadow, which forces the non-composited paint path. */
@keyframes tapHaloPulse{
	0%{transform:translate(-50%,-50%) scale(.7);opacity:.6;}
	100%{transform:translate(-50%,-50%) scale(1.7);opacity:0;}
}
.tap-topbar-v2-social a{
	width:24px;height:24px;border-radius:50%;
	background:rgba(255,255,255,.08);
	display:flex;align-items:center;justify-content:center;
}
.tap-topbar-v2-social svg{width:11px;height:11px;color:#fff;}

.tap-marquee-wave{
	direction:ltr;
	flex:1;min-width:0;overflow:hidden;
	mask:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);
	-webkit-mask:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);
	animation:tapSineWave 6s ease-in-out infinite;
}
@keyframes tapSineWave{
	0%,100%{transform:translateY(0);}
	50%{transform:translateY(2.5px);}
}
.tap-marquee-track{
	direction:ltr;
	display:flex;width:max-content;white-space:nowrap;
	font-weight:600;letter-spacing:.3px;color:var(--gold-light);
	animation:tapMarqueeScroll 22s linear infinite;
}
.tap-marquee-track span{unicode-bidi:isolate;}
.tap-marquee-wave:hover .tap-marquee-track{
	animation-play-state:paused;
	transform:scale(1.025);
	transition:transform .5s cubic-bezier(.34,1.56,.64,1);
}
@keyframes tapMarqueeScroll{
	from{transform:translateX(0);}
	to{transform:translateX(-50%);}
}

/* -----------------------------------------------------------
   Tier 2 — Main floating glass nav
----------------------------------------------------------- */
.tap-nav-v2-shell{
	position:relative;margin-top:0;
	width:100%;max-width:3840px;margin-inline:auto;
	background:rgba(255,255,255,.62);
	backdrop-filter:blur(22px) saturate(180%);
	-webkit-backdrop-filter:blur(22px) saturate(180%);
	border:1px solid rgba(255,255,255,.55);
	box-shadow:0 20px 50px -22px rgba(26,39,61,.4),0 0 0 1px rgba(255,255,255,.35) inset;
	transition:margin .45s var(--ease),width .45s var(--ease),max-width .45s var(--ease),border-radius .45s var(--ease),box-shadow .45s var(--ease),background .45s var(--ease);
}
.tap-header-v2.is-scrolled .tap-nav-v2-shell{
	width:calc(100% - 36px);max-width:1240px;margin-top:12px;border-radius:100px;
	background:rgba(255,255,255,.8);
	box-shadow:0 24px 60px -20px rgba(26,39,61,.45),0 0 0 1px rgba(255,255,255,.5) inset;
}
.tap-nav-v2-inner{position:relative;display:flex;align-items:center;justify-content:space-between;gap:26px;padding-block:11px;}

.tap-brand-v2{display:flex;align-items:center;gap:12px;}
.tap-brand-v2-logo{
	display:inline-flex;
	filter:drop-shadow(0 6px 14px rgba(var(--navy-rgb),.35));
	animation:tapHoloIn 1s var(--ease) both,tapBreathe 4.5s ease-in-out 1s infinite;
}
/* No border-radius here: the logo file's artwork touches its own pixel
   edges with zero transparent padding, so any radius clips straight
   into the mark itself (most visible as a "cropped" bottom edge in
   this short, wide box) instead of rounding empty corner space. */
.tap-brand-v2-logo img{display:block;}
/* Entrance kept to opacity + transform only (both compositor-friendly)
   — an earlier version also animated `filter`, which forces the
   browser onto the non-composited paint path and, since the keyframe
   never reset it back to the base rule's static drop-shadow, quietly
   dropped that shadow for good once the animation finished. */
@keyframes tapHoloIn{
	0%{opacity:0;transform:scale(.55) rotateY(85deg);}
	55%{opacity:1;}
	100%{opacity:1;transform:scale(1) rotateY(0);}
}
@keyframes tapBreathe{
	0%,100%{transform:translateY(0) scale(1);}
	50%{transform:translateY(-4px) scale(1.035);}
}
.tap-nav-v2{position:relative;}
.tap-nav-v2-list{display:flex;align-items:center;gap:6px;}
.tap-nav-v2-link{
	position:relative;display:inline-block;padding:10px 16px;
	font-size:14.5px;font-weight:600;color:var(--navy-dark);
	border-radius:100px;transition:transform .25s var(--ease),color .3s var(--ease);
	will-change:transform;
}
.tap-nav-v2-indicator{
	position:absolute;top:0;bottom:0;left:0;height:100%;border-radius:100px;
	background:linear-gradient(135deg,rgba(var(--gold-rgb),.18),rgba(var(--gold-rgb),.05));
	box-shadow:0 0 0 1px rgba(var(--gold-rgb),.28) inset,0 6px 18px -8px rgba(var(--gold-rgb),.5);
	opacity:0;transform:translateX(0);
	transition:transform .5s cubic-bezier(.22,1,.36,1),width .5s cubic-bezier(.22,1,.36,1),opacity .3s var(--ease);
	pointer-events:none;z-index:0;
}
.tap-nav-v2-indicator::after{
	content:"";position:absolute;bottom:-7px;left:50%;transform:translateX(-50%);
	width:6px;height:6px;border-radius:50%;background:var(--gold);
	box-shadow:0 0 10px 3px rgba(var(--gold-rgb),.85);
}
.tap-nav-v2-indicator.is-visible{opacity:1;}
.tap-nav-v2-link{z-index:1;}

/* -----------------------------------------------------------
   Services mega-dropdown
----------------------------------------------------------- */
.tap-nav-has-dropdown{position:relative;}

/* Invisible hover-bridge: sits flush against the link (no gap) so the
   pointer never leaves a hoverable box while travelling down to the panel. */
.tap-nav-dropdown{
	position:absolute;top:100%;left:50%;
	transform:translateX(-50%);
	width:520px;max-width:90vw;
	padding-top:22px;
	opacity:0;pointer-events:none;
	transition:opacity .35s var(--ease);
	z-index:60;
}
.tap-nav-dropdown-panel{
	background:rgba(255,255,255,.94);
	backdrop-filter:blur(24px) saturate(180%);
	-webkit-backdrop-filter:blur(24px) saturate(180%);
	border:1px solid rgba(255,255,255,.6);
	border-radius:var(--radius-lg);
	box-shadow:var(--shadow-lift);
	padding:18px;
	transform:translateY(-14px) scale(.95);
	transition:transform .5s cubic-bezier(.22,1,.36,1);
}
/* Only worth showing once the services bar (tier 3) has scrolled away */
.tap-header-v2.is-scrolled .tap-nav-has-dropdown:hover .tap-nav-dropdown,
.tap-header-v2.is-scrolled .tap-nav-has-dropdown:focus-within .tap-nav-dropdown{
	opacity:1;pointer-events:auto;
}
.tap-header-v2.is-scrolled .tap-nav-has-dropdown:hover .tap-nav-dropdown-panel,
.tap-header-v2.is-scrolled .tap-nav-has-dropdown:focus-within .tap-nav-dropdown-panel{
	transform:translateY(0) scale(1);
}
.tap-nav-dropdown-inner{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.tap-nav-dropdown-item{
	display:flex;align-items:center;gap:12px;
	padding:12px;border-radius:var(--radius-md);
	opacity:0;transform:translateY(10px);
	transition:opacity .4s var(--ease),transform .4s var(--ease),background .3s var(--ease);
	transition-delay:0s;
}
.tap-header-v2.is-scrolled .tap-nav-has-dropdown:hover .tap-nav-dropdown-item{
	opacity:1;transform:translateY(0);
	transition-delay:calc(var(--tap-i, 0) * 0.05s);
}
.tap-nav-dropdown-item:hover{background:rgba(var(--gold-rgb),.1);}
.tap-nav-dropdown-icon{
	width:40px;height:40px;border-radius:12px;flex-shrink:0;
	background:linear-gradient(135deg,rgba(var(--navy-rgb),.08),rgba(var(--gold-rgb),.14));
	color:var(--navy);
	display:flex;align-items:center;justify-content:center;
	transition:background .4s var(--ease),color .4s var(--ease),transform .4s cubic-bezier(.34,1.56,.64,1);
}
.tap-nav-dropdown-icon svg{width:19px;height:19px;}
.tap-nav-dropdown-item:hover .tap-nav-dropdown-icon{
	background:linear-gradient(135deg,var(--gold),var(--gold-light));color:#fff;
	transform:rotate(-8deg) scale(1.08);
}
.tap-nav-dropdown-text{display:flex;flex-direction:column;gap:2px;text-align:start;}
.tap-nav-dropdown-text strong{font-size:13.5px;font-weight:700;color:var(--navy-dark);}
.tap-nav-dropdown-text em{font-style:normal;font-size:11.5px;color:var(--text-muted);}
.tap-nav-dropdown-item.is-featured{background:rgba(var(--gold-rgb),.07);border:1px solid rgba(var(--gold-rgb),.22);}
.tap-nav-dropdown-item.is-featured .tap-nav-dropdown-icon{background:linear-gradient(135deg,var(--gold),var(--gold-light));color:#fff;}
.tap-mobile-nav-subitem.is-featured span:last-child{color:var(--gold);font-weight:700;}
.tap-nav-dropdown-all{
	display:block;margin-top:14px;padding-top:14px;
	border-top:1px solid var(--border);
	text-align:center;font-size:13px;font-weight:700;color:var(--gold-deep);
	transition:color .3s var(--ease);
}
.tap-nav-dropdown-all:hover{color:var(--navy);}

.tap-nav-v2-actions{display:flex;align-items:center;gap:12px;}

/* -----------------------------------------------------------
   Luxury language toggle
----------------------------------------------------------- */
.tap-lang-toggle{
	direction:ltr !important;
	position:relative !important;display:flex !important;align-items:center !important;gap:8px !important;
	padding:6px 12px 6px 6px !important;border-radius:100px !important;
	background-color:rgba(255,255,255,.65) !important;
	border:1px solid rgba(255,255,255,.75) !important;
	color:var(--navy) !important;
	box-shadow:0 8px 20px -10px rgba(26,39,61,.35);
	transition:transform .5s cubic-bezier(.34,1.56,.64,1),box-shadow .35s var(--ease),background-color .35s var(--ease) !important;
}
.tap-lang-toggle:hover,.tap-lang-toggle:focus{
	background-color:rgba(255,255,255,.85) !important;
	color:var(--navy) !important;
	text-decoration:none !important;
	transform:translateY(-2px);box-shadow:0 16px 30px -12px rgba(var(--gold-rgb),.55);
}
.tap-lang-toggle:active{transform:translateY(0) scale(.96);}

.tap-lang-globe{
	width:16px;height:16px;flex-shrink:0;color:var(--navy);
	fill:none;stroke:currentColor;stroke-width:1.4;
	transition:transform .6s var(--ease),color .3s var(--ease);
}
.tap-lang-toggle:hover .tap-lang-globe{color:var(--gold);}
.tap-lang-globe.is-spinning{animation:tapGlobeSpin .6s cubic-bezier(.34,1.56,.64,1);}
@keyframes tapGlobeSpin{
	from{transform:rotate(0deg) scale(1);}
	50%{transform:rotate(190deg) scale(1.18);}
	to{transform:rotate(360deg) scale(1);}
}

.tap-lang-track{position:relative;display:flex;align-items:center;height:26px;}
.tap-lang-thumb{
	position:absolute;top:0;left:0;height:26px;border-radius:100px;
	background:linear-gradient(135deg,var(--gold),#e07322);
	box-shadow:0 6px 16px -6px rgba(var(--gold-rgb),.75),0 0 0 1px rgba(255,255,255,.4) inset;
	transition:transform .5s cubic-bezier(.34,1.56,.64,1),width .5s cubic-bezier(.34,1.56,.64,1);
	z-index:1;
}
.tap-lang-opt{
	position:relative;z-index:2;min-width:26px;height:26px;padding-inline:8px;
	display:flex;align-items:center;justify-content:center;
	font-size:11.5px;font-weight:800;letter-spacing:.3px;color:var(--navy);
	transition:color .4s var(--ease);
}
.tap-lang-opt.is-active{color:#fff;}

.tap-cta-v2{
	position:relative;display:inline-flex;align-items:center;justify-content:center;
	padding:13px 30px;border-radius:100px;
	background:linear-gradient(135deg,var(--gold),#e07322);color:#fff;
	font-weight:700;font-size:14.5px;overflow:hidden;isolation:isolate;
	box-shadow:0 14px 30px -12px rgba(var(--gold-rgb),.65);
	transition:transform .45s cubic-bezier(.34,1.56,.64,1),box-shadow .35s var(--ease);
}
.tap-cta-v2:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 20px 44px -14px rgba(var(--gold-rgb),.8);}
.tap-cta-v2.is-clicked{animation:tapKineticBounce .55s cubic-bezier(.34,1.56,.64,1);}
@keyframes tapKineticBounce{
	0%{transform:scale(1);}
	35%{transform:scale(1.2);}
	60%{transform:scale(.93);}
	100%{transform:scale(1);}
}
.tap-cta-v2-label{position:relative;z-index:2;}
.tap-cta-v2-sheen{
	position:absolute;inset:-40% -10%;z-index:1;pointer-events:none;
	background:linear-gradient(75deg,transparent 42%,rgba(255,255,255,.65) 50%,transparent 58%);
	transform:translateX(-120%);
	animation:tapSheenSweep 3.6s ease-in-out infinite;
}
@keyframes tapSheenSweep{
	0%,42%{transform:translateX(-120%);}
	62%{transform:translateX(120%);}
	100%{transform:translateX(120%);}
}
.tap-cta-v2-sparkles{position:absolute;inset:0;z-index:3;pointer-events:none;}
.tap-cta-v2-sparkles span{
	position:absolute;width:4px;height:4px;border-radius:50%;background:#fff;opacity:0;
	box-shadow:0 0 6px 2px rgba(255,255,255,.9);
	animation:tapSparkleFloat .9s ease-out forwards;
}
@keyframes tapSparkleFloat{
	0%{opacity:0;transform:translateY(0) scale(.4);}
	22%{opacity:1;}
	100%{opacity:0;transform:translateY(-26px) scale(1.1);}
}

.tap-burger-v2{
	display:none;flex-direction:column;align-items:center;justify-content:center;gap:5px;
	width:44px !important;height:44px !important;
	background:rgba(255,255,255,.65) !important;
	border:1px solid rgba(255,255,255,.7) !important;
	border-radius:50% !important;padding:0 !important;
	box-shadow:0 8px 20px -10px rgba(26,39,61,.35);
	transition:transform .5s cubic-bezier(.34,1.56,.64,1),box-shadow .35s var(--ease),background-color .35s var(--ease);
}
.tap-burger-v2:hover,.tap-burger-v2:focus{
	background-color:#fff !important;
	transform:translateY(-2px);
	box-shadow:0 14px 26px -10px rgba(var(--gold-rgb),.55);
}
.tap-burger-v2:active{transform:translateY(0) scale(.94);}
.tap-burger-v2 span{
	width:20px;height:2px;flex:0 0 auto;
	background:var(--navy-dark);border-radius:2px;
	transition:transform .35s var(--ease),opacity .3s var(--ease),background-color .3s var(--ease);
}
.tap-burger-v2:hover span{background:var(--gold);}
.tap-burger-v2[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.tap-burger-v2[aria-expanded="true"] span:nth-child(2){opacity:0;}
.tap-burger-v2[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* -----------------------------------------------------------
   Luxury full-height mobile sidebar drawer
----------------------------------------------------------- */
.tap-mobile-overlay{
	position:fixed;inset:0;z-index:150;
	background:rgba(8,13,22,.6);
	backdrop-filter:blur(3px);
	-webkit-backdrop-filter:blur(3px);
	opacity:0;pointer-events:none;
	transition:opacity .4s var(--ease);
}
.tap-mobile-overlay.is-open{opacity:1;pointer-events:auto;}

.tap-mobile-menu-v2{
	position:fixed;top:0;bottom:0;right:0;z-index:151;
	width:min(340px,85vw);
	background:linear-gradient(165deg,var(--navy-dark) 0%,#16233a 55%,var(--navy-dark) 100%);
	overflow-y:auto;overflow-x:hidden;
	display:flex;flex-direction:column;
	padding:24px 22px 28px;
	transform:translateX(100%);
	transition:transform .55s cubic-bezier(.22,1,.36,1);
	box-shadow:-30px 0 80px -20px rgba(0,0,0,.55);
}
.tap-mobile-menu-v2.is-open{transform:translateX(0);}

.tap-mobile-glow{position:absolute;border-radius:50%;filter:blur(60px);opacity:.25;pointer-events:none;}
.tap-mobile-glow-1{width:220px;height:220px;background:var(--gold);top:-70px;right:-70px;}
.tap-mobile-glow-2{width:200px;height:200px;background:#3a5a8f;bottom:100px;left:-90px;}

.tap-mobile-head{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;}
.tap-mobile-brand{display:flex;align-items:center;gap:10px;color:#fff;font-family:var(--font-head);font-size:14.5px;}
.tap-mobile-brand-logo{display:inline-flex;background:#fff;border-radius:10px;padding:4px;line-height:0;}
.tap-mobile-close{
	width:38px;height:38px;border-radius:50% !important;
	background:rgba(255,255,255,.08) !important;border:1px solid rgba(255,255,255,.18) !important;
	display:flex;align-items:center;justify-content:center;color:#fff !important;
	transition:background .3s var(--ease),transform .4s cubic-bezier(.34,1.56,.64,1);
}
.tap-mobile-close svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;}
.tap-mobile-close:hover,.tap-mobile-close:focus{background:rgba(var(--gold-rgb),.3) !important;transform:rotate(90deg);}

.tap-mobile-nav{position:relative;z-index:1;flex:1;}
.tap-mobile-nav ul{display:flex;flex-direction:column;gap:4px;}
.tap-mobile-nav li{
	opacity:0;transform:translateX(24px);
	transition:opacity .5s var(--ease),transform .5s var(--ease);
}
html[dir="ltr"] .tap-mobile-nav li{transform:translateX(-24px);}
.tap-mobile-menu-v2.is-open .tap-mobile-nav li{
	opacity:1;transform:translateX(0);
	transition-delay:calc(.1s + var(--tap-i, 0) * .06s);
}
.tap-mobile-nav a{
	display:flex;align-items:center;gap:14px;
	padding:13px 12px;border-radius:14px;
	color:rgba(255,255,255,.85);font-weight:600;font-size:15px;
	transition:background .3s var(--ease),color .3s var(--ease);
}
.tap-mobile-nav a:hover{background:rgba(255,255,255,.07);color:#fff;}
.tap-mobile-nav-label{flex:1;text-align:right;}
html[dir="ltr"] .tap-mobile-nav-label{text-align:left;}
.tap-mobile-nav-icon{
	flex:0 0 auto;width:38px;height:38px;border-radius:11px;
	background:linear-gradient(135deg,rgba(var(--gold-rgb),.2),rgba(255,255,255,.06));
	color:var(--gold-light);
	display:flex;align-items:center;justify-content:center;
}
.tap-mobile-nav-icon svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.tap-mobile-nav-arrow{
	flex:0 0 auto;width:16px;height:16px;stroke:rgba(255,255,255,.35);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;
	transform:scaleX(-1);transition:transform .3s var(--ease),stroke .3s var(--ease);
}
html[dir="ltr"] .tap-mobile-nav-arrow{transform:scaleX(1);}
.tap-mobile-nav a:hover .tap-mobile-nav-arrow{stroke:var(--gold);transform:scaleX(-1) translateX(4px);}
html[dir="ltr"] .tap-mobile-nav a:hover .tap-mobile-nav-arrow{transform:scaleX(1) translateX(4px);}

/* Collapsible "Services" accordion item */
.tap-mobile-nav-accordion-trigger{
	width:100% !important;display:flex !important;align-items:center !important;gap:14px;
	padding:13px 12px;border-radius:14px;
	color:rgba(255,255,255,.85) !important;font-weight:600;font-size:15px;
	background:none !important;border:none !important;
	text-align:start;
	transition:background .3s var(--ease),color .3s var(--ease);
}
.tap-mobile-nav-accordion-trigger:hover{background:rgba(255,255,255,.07) !important;color:#fff !important;}
.tap-mobile-nav-chevron{
	flex:0 0 auto;width:16px;height:16px;stroke:rgba(255,255,255,.4);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;
	transition:transform .35s var(--ease),stroke .3s var(--ease);
}
.tap-mobile-nav-item-accordion.is-open .tap-mobile-nav-accordion-trigger{color:#fff !important;}
.tap-mobile-nav-item-accordion.is-open .tap-mobile-nav-chevron{transform:rotate(180deg);stroke:var(--gold);}

.tap-mobile-nav-submenu{max-height:0;overflow:hidden;transition:max-height .4s var(--ease);}
.tap-mobile-nav-submenu ul{display:flex;flex-direction:column;gap:2px;padding:2px 0 10px;}
.tap-mobile-nav-subitem{
	display:flex;align-items:center;gap:12px;
	padding:10px 12px 10px 50px;border-radius:12px;
	color:rgba(255,255,255,.6);font-weight:500;font-size:13.5px;
	transition:background .3s var(--ease),color .3s var(--ease);
}
html[dir="ltr"] .tap-mobile-nav-subitem{padding:10px 50px 10px 12px;}
.tap-mobile-nav-subitem:hover{background:rgba(255,255,255,.06);color:#fff;}
.tap-mobile-nav-subicon{width:5px;height:5px;border-radius:50%;background:var(--gold);flex:0 0 auto;}

.tap-mobile-foot{position:relative;z-index:1;margin-top:22px;padding-top:20px;border-top:1px solid rgba(255,255,255,.1);}
.tap-mobile-cta{width:100%;justify-content:center;}
.tap-mobile-social{display:flex;justify-content:center;gap:12px;margin-top:18px;}
.tap-mobile-social a{
	width:38px;height:38px;border-radius:50%;
	background:rgba(255,255,255,.08);
	display:flex;align-items:center;justify-content:center;color:#fff;
	transition:background .3s var(--ease),transform .3s var(--ease);
}
.tap-mobile-social svg{width:16px;height:16px;}
.tap-mobile-social a:hover{background:var(--gold);transform:translateY(-3px);}

body.tap-scroll-locked{overflow:hidden;}

/* -----------------------------------------------------------
   Tier 3 — Services pill bar
----------------------------------------------------------- */
.tap-services-bar{position:relative;background:linear-gradient(180deg,var(--navy-dark),#101a2c);overflow:hidden;max-height:80px;opacity:1;transition:max-height .45s var(--ease),opacity .3s var(--ease);}
.tap-header-v2.is-scrolled .tap-services-bar{max-height:0;opacity:0;}
.tap-services-bar-border{
	position:absolute;inset-inline:0;top:0;height:1px;z-index:1;overflow:hidden;
	background:rgba(var(--gold-rgb),.25);
}
/* A gradient-filled bar wider than its track, swept across with
   transform instead of animating background-position — the compositor
   can run this off the main thread, background-position can't. */
.tap-services-bar-border::after{
	content:'';position:absolute;inset-block:0;left:0;width:45%;
	background:linear-gradient(90deg,transparent,rgba(var(--gold-rgb),.85),var(--gold-light),rgba(var(--gold-rgb),.85),transparent);
	animation:tapMetallicShift 5s linear infinite;
	will-change:transform;
}
@keyframes tapMetallicShift{
	from{transform:translateX(-100%);}
	to{transform:translateX(320%);}
}
.tap-services-bar-inner{position:relative;padding-block:13px;}
.tap-services-pills{display:flex;align-items:center;gap:10px;overflow-x:auto;scrollbar-width:none;}
.tap-services-pills::-webkit-scrollbar{display:none;}
.tap-service-pill{
	position:relative;display:flex;align-items:center;gap:10px;
	padding:7px 16px 7px 7px;border-radius:100px;flex-shrink:0;
	background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08);
	white-space:nowrap;
	transition:background .4s var(--ease),border-color .4s var(--ease),transform .4s cubic-bezier(.34,1.56,.64,1);
}
html[dir="rtl"] .tap-service-pill{padding:7px 7px 7px 16px;}
/* display:contents keeps the <a> out of the flex layout entirely, so
   .tap-service-pill's own flex/gap/padding rules apply to the spans
   exactly as before — the link exists only to make the pill clickable,
   not to change how it looks. */
.tap-pill-link{display:contents;color:inherit;text-decoration:none;}
.tap-pill-aura{
	position:absolute;inset:-10px;border-radius:100px;z-index:0;
	background:radial-gradient(circle,rgba(var(--gold-rgb),.4),transparent 70%);
	opacity:0;filter:blur(6px);transition:opacity .4s var(--ease);
}
.tap-pill-badge{
	position:relative;z-index:1;width:32px;height:32px;border-radius:50%;
	background:linear-gradient(135deg,rgba(var(--gold-rgb),.28),rgba(120,150,200,.35));
	display:flex;align-items:center;justify-content:center;color:var(--gold-light);
	transition:transform .55s cubic-bezier(.34,1.56,.64,1);
}
.tap-pill-badge svg{width:15px;height:15px;}
.tap-pill-label{position:relative;z-index:1;font-size:12.5px;font-weight:600;color:rgba(255,255,255,.85);}
.tap-service-pill:hover{background:rgba(255,255,255,.09);border-color:rgba(var(--gold-rgb),.4);transform:translateY(-4px);}
.tap-service-pill:hover .tap-pill-aura{opacity:1;}
.tap-service-pill:hover .tap-pill-badge{transform:translateY(-3px) rotate(-16deg) scale(1.14);}

/* Synced with the hero's auto-rotating service showcase */
.tap-service-pill.is-active{background:rgba(255,255,255,.09);border-color:rgba(var(--gold-rgb),.55);transform:translateY(-2px);}
.tap-service-pill.is-active .tap-pill-aura{opacity:1;}
.tap-service-pill.is-active .tap-pill-badge{background:linear-gradient(135deg,var(--gold),var(--gold-light));color:#fff;transform:translateY(-2px) scale(1.08);}

/* -----------------------------------------------------------
   Scroll anchor offset (accounts for compact sticky header)
----------------------------------------------------------- */
.tap-section,.tap-hero{scroll-margin-top:118px;}

/* -----------------------------------------------------------
   Responsive
----------------------------------------------------------- */
@media (max-width:1080px){
	.tap-nav-v2-list{gap:2px;}
	.tap-nav-v2-link{padding:10px 12px;font-size:13.5px;}
}

/* Hide the CTA in the tablet range so the nav doesn't feel cramped */
@media (min-width:768px) and (max-width:1024px){
	.tap-cta-v2{display:none;}
}

@media (max-width:860px){
	/* Topbar: marquee only */
	.tap-topbar-v2-contacts,.tap-topbar-v2-social{display:none;}
	.tap-topbar-v2-inner{justify-content:center;}
	.tap-marquee-wave{flex:1 1 100%;}

	/* Main nav: logo + burger only */
	.tap-nav-v2{display:none;}
	.tap-lang-toggle{display:none;}
	.tap-cta-v2{display:none;}
	.tap-burger-v2{display:flex !important;}
}

@media (max-width:640px){
	.tap-topbar-v2-social{display:none;}
}

@media (prefers-reduced-motion:reduce){
	.tap-brand-v2-logo,.tap-marquee-track,.tap-services-bar-border,.tap-cta-v2-sheen,.tap-scroll-progress-tip{animation:none !important;}
}
