/* =========================================================
   Contact Page — Custom Elementor Sections
   Reuses design tokens from style.css (:root vars, .tap-container,
   .tap-section, .tap-btn*, [data-reveal], .tap-tilt). No new colors,
   radii, shadows, or fonts are introduced here.
   ========================================================= */

/* The native [hidden] attribute is UA-origin at (0,1,0) specificity —
   any of our own class rules that also set `display` (e.g. .tap-cf-state
   {display:flex}, .tap-cf-privacy{display:flex}, .tap-btn{display:
   inline-flex}) sit at the same specificity but author-origin beats
   user-agent origin, so `el.hidden = true` silently stopped hiding
   those elements. Force it to always win. */
[hidden]{display:none !important;}

/* Slightly tighter section rhythm than the sitewide 100px default —
   scoped here so only pages built from these widgets are affected. */
.tap-section{padding-block:78px;}

/* Elementor's own default column padding fights our sections' own
   .tap-container/.tap-section spacing — every one of our widgets sits
   alone in a full-width column, so this default is never wanted. */
.elementor-column-gap-default>.elementor-column>.elementor-element-populated{padding:0 !important;}

/* Language-only content swap (paired sibling elements, used where the
   text can't fit the single-element data-ar/data-en attribute pattern —
   e.g. multi-line addresses). Keyed off the same html.tap-lang-en class
   main.js already toggles. */
[data-en-only]{display:none;}
html.tap-lang-en [data-en-only]{display:block;}
html.tap-lang-en [data-ar-only]{display:none;}

/* Shared stroke-icon convention for every badge on this page */
.tap-cm-icon svg,.tap-ss-icon svg,.tap-ql-icon svg,.tap-ql-arrow svg,
.tap-hero-contact-icon svg,.tap-loc-map-icon svg{
	stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;
}

/* -----------------------------------------------------------
   Breadcrumb
----------------------------------------------------------- */
.tap-breadcrumb{display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:600;color:var(--text-muted);margin-bottom:18px;}
.tap-breadcrumb a{color:var(--text-muted);transition:color .3s var(--ease);}
.tap-breadcrumb a:hover{color:var(--gold);}
.tap-breadcrumb-sep{color:var(--gold);display:inline-flex;}
.tap-breadcrumb-sep svg{
	width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;
	transform:scaleX(-1);
}
html[dir="ltr"] .tap-breadcrumb-sep svg{transform:scaleX(1);}

/* -----------------------------------------------------------
   Hero — compact, centered, ambient contact icons
----------------------------------------------------------- */
.tap-hero-contact{
	position:relative;overflow:hidden;padding-top:188px;padding-bottom:70px;
	background:radial-gradient(900px 420px at 50% -10%,rgba(var(--gold-rgb),.14),transparent 60%),linear-gradient(165deg,var(--navy-dark) 0%,#16233a 55%,var(--navy-dark) 100%);
}
.tap-hero-contact-bg{position:absolute;inset:0;z-index:0;pointer-events:none;}
.tap-hero-contact-glow{position:absolute;top:-120px;left:50%;transform:translateX(-50%);width:560px;height:340px;border-radius:50%;background:radial-gradient(circle,rgba(var(--gold-rgb),.3),transparent 70%);filter:blur(45px);}
.tap-hero-contact-icon{
	position:absolute;top:var(--tap-y);left:var(--tap-x);
	width:46px;height:46px;border-radius:50%;
	display:flex;align-items:center;justify-content:center;
	background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);color:rgba(255,255,255,.55);
	animation:tapHeroCIconFloat 5s ease-in-out infinite;
	animation-delay:var(--tap-d,0s);
}
.tap-hero-contact-icon svg{width:19px;height:19px;}
@keyframes tapHeroCIconFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-12px);}}

.tap-hero-contact-inner{position:relative;z-index:1;max-width:850px;margin-inline:auto;text-align:center;}
.tap-hero-contact-h1{
	font-size:13px;font-weight:700;letter-spacing:.3px;color:rgba(255,255,255,.55);
	margin-bottom:4px;
}
.tap-hero-contact-heading{font-size:clamp(30px,4vw,46px);margin-block:14px 16px;color:#fff !important;}
.tap-hero-contact-desc{font-size:16.5px;max-width:640px;margin-inline:auto;color:rgba(255,255,255,.72);}
.tap-hero-contact-desc + .tap-hero-contact-desc{margin-top:14px;}
.tap-hero-contact-note{font-size:14px;color:rgba(255,255,255,.5);max-width:600px;}
.tap-hero-contact-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:16px;margin-top:30px;}
.tap-hero-contact-actions .tap-btn-ghost{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.28);color:#fff;}
.tap-hero-contact-actions .tap-btn-ghost:hover{border-color:var(--gold);background:rgba(var(--gold-rgb),.14);color:#fff;}
.tap-hero-contact .tap-breadcrumb{color:rgba(255,255,255,.6);}
.tap-hero-contact .tap-breadcrumb a{color:rgba(255,255,255,.6);}
.tap-hero-contact .tap-breadcrumb a:hover{color:var(--gold);}

/* Section-head intro paragraph (used when a widget adds one below its H2) */
.tap-section-head p{margin-top:10px;}

/* -----------------------------------------------------------
   Contact Methods — 4 cards
----------------------------------------------------------- */
.tap-cm-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;align-items:stretch;}
.tap-cm-card{
	position:relative;isolation:isolate;overflow:hidden;
	background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);
	box-shadow:var(--shadow-soft);padding:30px 24px 24px;text-align:center;
	display:flex;flex-direction:column;align-items:center;height:100%;
	transition:box-shadow .4s var(--ease),transform .4s var(--ease),border-color .4s var(--ease);
}
.tap-cm-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-6px);border-color:rgba(var(--gold-rgb),.4);}
.tap-cm-glow{
	position:absolute;inset:-30% -10% auto -10%;z-index:-1;height:70%;
	background:radial-gradient(circle,rgba(var(--gold-rgb),.16),transparent 72%);
	opacity:0;transition:opacity .5s var(--ease);
}
.tap-cm-card:hover .tap-cm-glow{opacity:1;}
.tap-cm-body{display:flex;flex-direction:column;align-items:center;}
.tap-cm-icon{
	width:56px;height:56px;border-radius:50%;flex-shrink:0;
	background:linear-gradient(135deg,rgba(var(--gold-rgb),.14),rgba(var(--navy-rgb),.06));
	color:var(--gold);
	display:flex;align-items:center;justify-content:center;margin-bottom:16px;
	transition:transform .5s cubic-bezier(.34,1.56,.64,1);
}
.tap-cm-icon svg{width:24px;height:24px;}
.tap-cm-card:hover .tap-cm-icon{transform:rotate(-8deg) scale(1.08);}
.tap-cm-card h3{font-size:17px;margin-bottom:8px;}
.tap-cm-card p{font-size:13.5px;margin-bottom:0;}
.tap-cm-foot{
	width:100%;margin-top:auto;padding-top:18px;
	display:flex;flex-direction:column;align-items:center;
}
.tap-cm-value{display:block;font-family:var(--font-head);font-size:14.5px;color:var(--navy-dark);margin-bottom:16px;word-break:break-word;}
.tap-cm-cta{
	width:100%;display:inline-flex;align-items:center;justify-content:center;gap:8px;
	padding:12px 18px;border-radius:100px;
	background:linear-gradient(135deg,var(--gold),#e07322);color:#fff;
	font-weight:700;font-size:13.5px;
	box-shadow:0 12px 26px -12px rgba(var(--gold-rgb),.65);
	transition:transform .4s cubic-bezier(.34,1.56,.64,1),box-shadow .35s var(--ease);
}
.tap-cm-cta:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 18px 34px -12px rgba(var(--gold-rgb),.8);color:#fff;}
.tap-cm-cta-arrow{
	width:15px;height:15px;flex-shrink:0;
	stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;
	transform:scaleX(-1);transition:transform .3s var(--ease);
}
html[dir="ltr"] .tap-cm-cta-arrow{transform:scaleX(1);}
.tap-cm-cta:hover .tap-cm-cta-arrow{transform:scaleX(-1) translateX(-3px);}
html[dir="ltr"] .tap-cm-cta:hover .tap-cm-cta-arrow{transform:scaleX(1) translateX(3px);}

/* -----------------------------------------------------------
   Service Selector — 8 routing cards
----------------------------------------------------------- */
.tap-ss-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.tap-ss-card{
	background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);
	box-shadow:var(--shadow-soft);padding:24px 20px;
	display:flex;flex-direction:column;height:100%;
	transition:box-shadow .4s var(--ease),transform .4s var(--ease),border-color .4s var(--ease);
}
.tap-ss-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-5px);border-color:rgba(var(--gold-rgb),.4);}
.tap-ss-icon{
	width:46px;height:46px;border-radius:12px;
	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;margin-bottom:14px;
	transition:background .4s var(--ease),color .4s var(--ease),transform .4s cubic-bezier(.34,1.56,.64,1);
}
.tap-ss-icon svg{width:21px;height:21px;}
.tap-ss-card:hover .tap-ss-icon{background:linear-gradient(135deg,var(--gold),var(--gold-light));color:#fff;transform:rotate(-6deg) scale(1.06);}
.tap-ss-card h3{font-size:15.5px;margin-bottom:6px;}
.tap-ss-card p{font-size:12.5px;margin-bottom:14px;min-height:2.6em;}

/* reset.css targets [type=button]/[type=submit]/button globally and
   flattens any native <button> on this page (pink border, transparent
   bg, no radius/padding) — !important is the established fix pattern
   for this clash sitewide (see header.css .tap-burger-v2). */
.tap-ss-cta{
	width:100% !important;font-size:12.5px !important;padding:9px 14px !important;
	background:linear-gradient(135deg,var(--gold),#e07322) !important;
	color:#fff !important;border:none !important;border-radius:100px !important;
	font-weight:700 !important;text-align:center !important;margin-top:auto !important;
	box-shadow:0 10px 22px -10px rgba(var(--gold-rgb),.6);
	transition:transform .4s cubic-bezier(.34,1.56,.64,1),box-shadow .35s var(--ease) !important;
}
.tap-ss-cta:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 14px 28px -10px rgba(var(--gold-rgb),.75);}

/* -----------------------------------------------------------
   Contact Form — 38 / 62 split
----------------------------------------------------------- */
.tap-cf-layout{display:grid;grid-template-columns:38fr 62fr;gap:56px;align-items:start;}
.tap-cf-intro{position:sticky;top:118px;align-self:start;}
.tap-cf-intro p{margin-block:14px 22px;}
.tap-cf-microcopy{
	background:rgba(var(--gold-rgb),.08);border:1px solid rgba(var(--gold-rgb),.25);
	border-radius:var(--radius-md);padding:16px 18px;margin-bottom:20px;
	display:flex;flex-direction:column;gap:4px;
}
.tap-cf-microcopy strong{font-size:14px;color:var(--navy-dark);}
.tap-cf-microcopy span{font-size:13px;color:var(--text-muted);}

.tap-cf-form-wrap{
	background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);
	box-shadow:var(--shadow-soft);padding:32px;
}
.tap-cf-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.tap-cf-field{margin-bottom:18px;}
.tap-cf-field label,.tap-cf-legend{display:block;font-size:13.5px;font-weight:700;color:var(--navy-dark);margin-bottom:7px;}
.tap-cf-field input[type="text"],
.tap-cf-field input[type="tel"],
.tap-cf-field input[type="email"],
.tap-cf-field select,
.tap-cf-field textarea{
	width:100%;padding:12px 14px;border-radius:var(--radius-sm);
	border:1.5px solid var(--border);background:var(--bg);
	font:inherit;font-size:14.5px;color:var(--text);
	transition:border-color .3s var(--ease),box-shadow .3s var(--ease);
}
.tap-cf-field input:focus,.tap-cf-field select:focus,.tap-cf-field textarea:focus{
	outline:none;border-color:var(--gold);box-shadow:0 0 0 4px rgba(var(--gold-rgb),.12);
}
.tap-cf-field textarea{resize:vertical;min-height:100px;}

/* Custom validation state (no native browser bubbles — see contact-form.js) */
.tap-cf-field.has-error input,.tap-cf-field.has-error select,.tap-cf-field.has-error textarea{
	border-color:#c0392b;box-shadow:0 0 0 3px rgba(192,57,43,.1);
}
.tap-cf-error{
	display:none;font-size:12px;font-weight:600;color:#c0392b;margin-top:6px;
}
.tap-cf-error.is-visible{display:block;}
.tap-cf-error-privacy{margin-top:-8px;margin-bottom:12px;}
.tap-cf-radios{display:flex;flex-wrap:wrap;gap:10px;}
.tap-cf-radio{
	display:inline-flex;align-items:center;gap:7px;
	padding:9px 14px;border-radius:100px;border:1.5px solid var(--border);
	font-size:13px;font-weight:600;cursor:pointer;
	transition:border-color .3s var(--ease),background .3s var(--ease);
}
.tap-cf-radio:has(input:checked){border-color:var(--gold);background:rgba(var(--gold-rgb),.08);}
.tap-cf-radio input{accent-color:var(--gold);}

.tap-cf-privacy{
	display:flex;align-items:flex-start;gap:9px;font-size:12.5px;color:var(--text-muted);
	margin-block:20px 8px;cursor:pointer;
}
.tap-cf-privacy input{margin-top:3px;accent-color:var(--gold);flex-shrink:0;}
.tap-cf-privacy a{color:var(--gold-deep);font-weight:600;}

/* Honeypot: off-screen, not display:none, so bots that skip hidden
   fields still fill it while real users never see it. */
.tap-cf-hp{position:absolute !important;left:-9999px !important;top:auto;width:1px;height:1px;overflow:hidden;}

.tap-cf-submit{
	width:100% !important;margin-top:6px;position:relative !important;
	background:var(--navy) !important;color:#fff !important;
	border:none !important;border-radius:100px !important;
	padding:15px 32px !important;font-weight:700 !important;font-size:15px !important;
	text-align:center !important;
	box-shadow:0 14px 30px -12px rgba(var(--navy-rgb),.65);
	transition:transform .35s var(--ease),box-shadow .35s var(--ease),background .35s var(--ease) !important;
}
.tap-cf-submit:hover{background:var(--navy-dark) !important;transform:translateY(-3px);box-shadow:0 20px 40px -14px rgba(var(--navy-rgb),.7);}
.tap-cf-spinner{
	display:none;width:16px;height:16px;border-radius:50%;
	border:2px solid rgba(255,255,255,.4);border-top-color:#fff;
	animation:tapSpin .7s linear infinite;margin-inline-start:8px;
}
.tap-cf-submit.is-loading .tap-cf-spinner{display:inline-block;}
.tap-cf-submit.is-loading{pointer-events:none;opacity:.85;}
@keyframes tapSpin{to{transform:rotate(360deg);}}

.tap-cf-state{
	border-radius:var(--radius-md);padding:36px 28px;margin-top:0;
	text-align:center;display:flex;flex-direction:column;align-items:center;
}
.tap-cf-state-icon{
	width:48px;height:48px;border-radius:50%;flex-shrink:0;margin-bottom:14px;
	display:flex;align-items:center;justify-content:center;
}
.tap-cf-state-icon svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;}
.tap-cf-state-success{background:rgba(46,160,90,.1);border:1px solid rgba(46,160,90,.35);}
.tap-cf-state-success .tap-cf-state-icon{background:rgba(46,160,90,.16);color:#1f7a45;}
.tap-cf-state-success strong{color:#1f7a45;display:block;margin-bottom:8px;font-size:17px;}
.tap-cf-state-error{background:rgba(210,60,60,.08);border:1px solid rgba(210,60,60,.3);}
.tap-cf-state-error .tap-cf-state-icon{background:rgba(210,60,60,.14);color:#b23636;}
.tap-cf-state-error strong{color:#b23636;display:block;margin-bottom:8px;font-size:17px;}
.tap-cf-state p{margin:0;font-size:13.5px;color:var(--text);max-width:420px;}

/* -----------------------------------------------------------
   Location — 35 / 65 split
----------------------------------------------------------- */
.tap-loc-layout{display:grid;grid-template-columns:35fr 65fr;gap:48px;align-items:stretch;}
.tap-loc-info{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:6px;}
.tap-loc-company{font-family:var(--font-head);font-size:19px;color:var(--navy-dark);margin-top:6px;}
.tap-loc-info address{font-style:normal;color:var(--text-muted);margin-block:8px 16px;line-height:1.8;}
.tap-loc-en{max-width:350px;overflow:auto;}
.tap-loc-meta{display:flex;flex-direction:column;gap:6px;margin-bottom:24px;font-size:14px;}
.tap-loc-meta span{color:var(--text-muted);}
.tap-loc-meta a{font-weight:700;color:var(--navy-dark);}

.tap-loc-map{
	position:relative;min-height:360px;border-radius:var(--radius-lg);overflow:hidden;
	border:3px solid transparent;
	background:linear-gradient(var(--bg-alt),var(--bg-alt)) padding-box,linear-gradient(135deg,var(--gold),var(--navy)) border-box;
	box-shadow:0 26px 55px -18px rgba(var(--gold-rgb),.4),0 20px 45px -20px rgba(26,39,61,.35);
}
.tap-loc-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}

/* -----------------------------------------------------------
   Quick Links
----------------------------------------------------------- */
.tap-ql-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;}
.tap-ql-item{
	display:flex;align-items:center;gap:16px;
	background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);
	padding:18px 20px;
	transition:box-shadow .35s var(--ease),transform .35s var(--ease),border-color .35s var(--ease);
}
.tap-ql-item:hover{box-shadow:var(--shadow-lift);transform:translateY(-4px);border-color:rgba(var(--gold-rgb),.4);}
.tap-ql-icon{
	flex:0 0 auto;width:42px;height:42px;border-radius:11px;
	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;
}
.tap-ql-icon svg{width:19px;height:19px;}
.tap-ql-text{flex:1;display:flex;flex-direction:column;gap:2px;}
.tap-ql-text strong{font-size:14.5px;color:var(--navy-dark);}
.tap-ql-text span{font-size:12.5px;color:var(--text-muted);}
.tap-ql-arrow{flex:0 0 auto;width:16px;height:16px;color:var(--gold);transform:scaleX(-1);transition:transform .3s var(--ease);}
html[dir="ltr"] .tap-ql-arrow{transform:scaleX(1);}
.tap-ql-item:hover .tap-ql-arrow{transform:scaleX(-1) translateX(-4px);}
html[dir="ltr"] .tap-ql-item:hover .tap-ql-arrow{transform:scaleX(1) translateX(4px);}
.tap-ql-arrow svg{width:100%;height:100%;}

/* -----------------------------------------------------------
   Final CTA
----------------------------------------------------------- */
.tap-final-cta-panel{
	position:relative;overflow:hidden;isolation:isolate;
	max-width:720px;margin-inline:auto;text-align:center;
	background:linear-gradient(165deg,var(--navy-dark) 0%,#16233a 55%,var(--navy-dark) 100%);
	border-radius:var(--radius-lg);
	box-shadow:0 30px 70px -25px rgba(26,39,61,.5);
	padding:56px 44px;
}
.tap-final-cta-panel::before{
	content:"";position:absolute;z-index:-1;
	top:-45%;left:50%;transform:translateX(-50%);
	width:520px;height:320px;border-radius:50%;
	background:radial-gradient(circle,rgba(var(--gold-rgb),.28),transparent 70%);
	filter:blur(50px);pointer-events:none;
}
.tap-final-cta-panel h2{color:#fff !important;}
.tap-final-cta-panel p{color:rgba(255,255,255,.7);margin-block:14px 30px;max-width:520px;margin-inline:auto;}

.tap-final-cta-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:14px;}
.tap-final-cta-btn{
	position:relative;display:inline-flex;align-items:center;justify-content:center;gap:9px;
	padding:14px 28px;border-radius:100px;font-weight:700;font-size:14.5px;
	transition:transform .4s cubic-bezier(.34,1.56,.64,1),box-shadow .35s var(--ease),background .35s var(--ease),border-color .35s var(--ease);
}
.tap-final-cta-btn-primary{
	background:linear-gradient(135deg,var(--gold),#e07322);color:#fff;
	box-shadow:0 16px 34px -12px rgba(var(--gold-rgb),.65);
}
.tap-final-cta-btn-primary:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 22px 44px -14px rgba(var(--gold-rgb),.8);color:#fff;}
.tap-final-cta-arrow{
	width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;
	transform:scaleX(-1);transition:transform .3s var(--ease);
}
html[dir="ltr"] .tap-final-cta-arrow{transform:scaleX(1);}
.tap-final-cta-btn-primary:hover .tap-final-cta-arrow{transform:scaleX(-1) translateX(-3px);}
html[dir="ltr"] .tap-final-cta-btn-primary:hover .tap-final-cta-arrow{transform:scaleX(1) translateX(3px);}

.tap-final-cta-btn-ghost{
	background:rgba(255,255,255,.06);border:1.5px solid rgba(255,255,255,.25);color:#fff;
}
.tap-final-cta-btn-ghost:hover{border-color:var(--gold);background:rgba(var(--gold-rgb),.14);color:#fff;transform:translateY(-3px);}
.tap-final-cta-btn-icon{
	width:26px;height:26px;border-radius:50%;flex-shrink:0;
	background:rgba(var(--gold-rgb),.18);color:var(--gold-light);
	display:flex;align-items:center;justify-content:center;
}
.tap-final-cta-btn-icon svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}

/* -----------------------------------------------------------
   Accreditations grid — dashboard-driven cards (Licenses page)
----------------------------------------------------------- */
.tap-acc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.tap-acc-card{
	position:relative;
	background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);
	box-shadow:var(--shadow-soft);padding:28px 24px;
	display:flex;flex-direction:column;height:100%;
	transition:box-shadow .4s var(--ease),transform .4s var(--ease),border-color .4s var(--ease);
}
.tap-acc-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-6px);border-color:rgba(var(--gold-rgb),.4);}
.tap-acc-badge{
	display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:.2px;
	padding:5px 13px;border-radius:100px;margin-bottom:16px;
	background:rgba(var(--navy-rgb),.08);color:var(--navy);
	width:fit-content;
}
.tap-acc-badge-license{background:rgba(var(--gold-rgb),.14);color:#a85a1c;}
.tap-acc-badge-certificate{background:rgba(46,160,90,.14);color:#1f7a45;}
.tap-acc-icon{
	width:48px;height:48px;border-radius:12px;
	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;margin-bottom:14px;
}
.tap-acc-icon svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.tap-acc-card h3{font-size:16.5px;margin-bottom:12px;}
.tap-acc-meta{display:flex;flex-direction:column;gap:6px;font-size:13px;margin-bottom:18px;}
.tap-acc-meta li{color:var(--text);}
.tap-acc-meta span{color:var(--text-muted);font-weight:600;margin-inline-end:4px;}
.tap-acc-view{
	width:100% !important;display:inline-flex !important;align-items:center;justify-content:center;
	padding:10px 16px !important;border-radius:100px !important;margin-top:auto !important;
	background:transparent !important;border:1.5px solid var(--gold) !important;color:var(--gold) !important;
	font-weight:700 !important;font-size:13px !important;text-align:center !important;
	transition:background .3s var(--ease),color .3s var(--ease) !important;
}
.tap-acc-view:hover{background:var(--gold) !important;color:#fff !important;}

/* -----------------------------------------------------------
   Verification callout — text-only, no cards
----------------------------------------------------------- */
.tap-vc-box{
	max-width:640px;margin-inline:auto;text-align:center;
	display:flex;flex-direction:column;align-items:center;
}
.tap-vc-icon{
	width:56px;height:56px;border-radius:50%;margin-bottom:16px;
	background:rgba(var(--gold-rgb),.12);color:var(--gold);
	display:flex;align-items:center;justify-content:center;
}
.tap-vc-icon svg{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.tap-vc-box h2{margin-top:8px;}
.tap-vc-box p{margin-top:14px;}

/* -----------------------------------------------------------
   Blog — dashboard-driven grid + instant category filter
----------------------------------------------------------- */
.tap-blog-filters{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:44px;}
.tap-blog-filter{
	padding:10px 22px !important;border-radius:100px !important;
	background:var(--surface) !important;border:1.5px solid var(--border) !important;color:var(--navy) !important;
	font-weight:700 !important;font-size:13.5px !important;text-align:center !important;
	transition:background .3s var(--ease),border-color .3s var(--ease),color .3s var(--ease) !important;
}
.tap-blog-filter:hover{border-color:rgba(var(--gold-rgb),.5) !important;}
.tap-blog-filter.is-active{
	background:linear-gradient(135deg,var(--gold),#e07322) !important;
	border-color:transparent !important;color:#fff !important;
}

.tap-blog-empty{text-align:center;color:var(--text-muted);padding-block:20px;}

.tap-blog-grid{
	display:grid;grid-template-columns:repeat(3,1fr);gap:28px;
	transition:opacity .18s var(--ease);
}
.tap-blog-grid.is-filtering{opacity:.35;}

.tap-blog-card{
	background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);
	box-shadow:var(--shadow-soft);overflow:hidden;
	display:flex;flex-direction:column;
	transition:box-shadow .4s var(--ease),transform .4s var(--ease),border-color .4s var(--ease);
}
.tap-blog-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-6px);border-color:rgba(var(--gold-rgb),.35);}
.tap-blog-card-media{position:relative;display:block;aspect-ratio:640/420;background:var(--bg-alt);overflow:hidden;}
.tap-blog-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease);}
.tap-blog-card:hover .tap-blog-card-media img{transform:scale(1.06);}
.tap-blog-card-media-fallback{
	position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
	background:linear-gradient(150deg,rgba(var(--navy-rgb),.06),rgba(var(--gold-rgb),.1));color:var(--navy);
}
.tap-blog-card-media-fallback svg{width:44px;height:44px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;opacity:.5;}
.tap-blog-card-cat{
	position:absolute;top:14px;inset-inline-start:14px;z-index:1;
	background:rgba(26,39,61,.72);backdrop-filter:blur(6px);color:#fff;
	font-size:11.5px;font-weight:700;padding:5px 13px;border-radius:100px;
}
.tap-blog-card-body{padding:24px;display:flex;flex-direction:column;flex:1;}
.tap-blog-card-date{font-size:12px;color:var(--text-muted);font-weight:600;margin-bottom:8px;}
.tap-blog-card-body h3{font-size:18.5px;line-height:1.4;margin-bottom:10px;}
.tap-blog-card-body h3 a{color:var(--gold) !important;font-weight:800 !important;transition:color .3s var(--ease);}
.tap-blog-card-body h3 a:hover{color:var(--navy-dark) !important;}
.tap-blog-card-body p{font-size:13.5px;margin-bottom:16px;flex:1;}
.tap-blog-card-more{
	display:inline-flex;align-items:center;gap:7px;align-self:flex-start;
	font-size:13px;font-weight:700;color:var(--navy-dark);
	transition:gap .3s var(--ease),color .3s var(--ease);
}
.tap-blog-card-more:hover{color:var(--gold);gap:11px;}
.tap-blog-card-more svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transform:scaleX(-1);}
html[dir="ltr"] .tap-blog-card-more svg{transform:scaleX(1);}

/* Single-post layout, article typography, comments, share, related-posts
   sidebar and prev/next nav all live in assets/css/single-post.css,
   enqueued only on is_single() — see functions.php. */

/* -----------------------------------------------------------
   Final CTA — optional footnote (About page)
----------------------------------------------------------- */
.tap-final-cta-footnote{margin-top:22px;text-align:center;}
.tap-final-cta-footnote strong{display:block;color:#fff;font-size:14px;margin-bottom:4px;}
.tap-final-cta-footnote span{display:block;color:rgba(255,255,255,.65);font-size:13px;}

/* -----------------------------------------------------------
   About — Hero (55/45 split, real-photo collage, trust badges)
----------------------------------------------------------- */
.tap-about-hero{padding-top:188px;padding-bottom:70px;}
.tap-about-hero-inner{display:grid;grid-template-columns:55fr 45fr;gap:56px;align-items:center;}
.tap-about-hero-heading{margin-block:10px 18px;font-size:clamp(28px,3.6vw,44px);line-height:1.3;display:flex;flex-direction:column;gap:6px;}
.tap-about-hero-brand{color:var(--gold-deep);}
.tap-about-hero-text p{font-size:16px;margin-bottom:14px;}
.tap-about-hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-block:22px 30px;}

.tap-about-hero-badges{display:flex;flex-wrap:wrap;gap:20px;}
.tap-about-hero-badge{display:flex;align-items:flex-start;gap:12px;flex:1 1 180px;}
.tap-about-hero-badge-icon{
	flex-shrink:0;width:40px;height:40px;border-radius:12px;
	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;
}
.tap-about-hero-badge-icon svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.tap-about-hero-badge-text{display:flex;flex-direction:column;gap:2px;}
.tap-about-hero-badge-text strong{font-size:13.5px;color:var(--navy-dark);}
.tap-about-hero-badge-text span{font-size:12px;color:var(--text-muted);}

.tap-about-hero-visual{position:relative;min-height:420px;}
.tap-about-hero-img{position:absolute;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lift);background:var(--bg-alt);}
.tap-about-hero-img img{width:100%;height:100%;object-fit:cover;display:block;}
.tap-about-hero-img-main{inset-inline-start:8%;top:0;width:78%;height:80%;z-index:1;}
.tap-about-hero-img-sub1{inset-inline-end:0;top:6%;width:38%;height:42%;z-index:2;border:5px solid var(--bg);}
.tap-about-hero-img-sub2{inset-inline-start:0;bottom:0;width:42%;height:38%;z-index:2;border:5px solid var(--bg);}

/* -----------------------------------------------------------
   About — Company intro (2-col, image + badge)
----------------------------------------------------------- */
.tap-about-intro-layout{display:grid;grid-template-columns:54fr 46fr;gap:56px;align-items:center;}
.tap-about-intro-text p{margin-block:14px 0;}
.tap-about-intro-text .tap-btn{margin-top:26px;}
.tap-about-intro-media{position:relative;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lift);}
.tap-about-intro-media img{width:100%;height:100%;object-fit:cover;display:block;aspect-ratio:4/3.4;}
.tap-about-intro-badge{
	position:absolute;bottom:18px;inset-inline-start:18px;z-index:1;
	background:rgba(26,39,61,.82);backdrop-filter:blur(6px);color:#fff;
	font-size:12.5px;font-weight:700;padding:9px 18px;border-radius:100px;
}

/* -----------------------------------------------------------
   About — Journey (horizontal numbered timeline)
----------------------------------------------------------- */
.tap-journey-track{display:flex;align-items:flex-start;gap:8px;}
.tap-journey-stage{
	flex:1;position:relative;
	background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);
	box-shadow:var(--shadow-soft);padding:26px 20px;text-align:center;
	display:flex;flex-direction:column;align-items:center;
	transition:box-shadow .4s var(--ease),transform .4s var(--ease),border-color .4s var(--ease);
}
.tap-journey-stage:hover{box-shadow:var(--shadow-lift);transform:translateY(-6px);border-color:rgba(var(--gold-rgb),.4);}
.tap-journey-num{font-family:var(--font-head);font-size:13px;font-weight:700;color:var(--gold-deep);letter-spacing:.5px;margin-bottom:10px;}
.tap-journey-icon{
	width:52px;height:52px;border-radius:50%;margin-bottom:14px;
	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;
}
.tap-journey-icon svg{width:23px;height:23px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.tap-journey-stage h3{font-size:16px;margin-bottom:8px;}
.tap-journey-stage p{font-size:13px;margin-bottom:0;}
.tap-journey-arrow{
	flex-shrink:0;align-self:center;margin-top:44px;color:var(--gold);
	stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;
	transform:scaleX(-1);
}
.tap-journey-arrow svg{width:18px;height:18px;transform:scaleX(-1) rotate(180deg);}
html[dir="ltr"] .tap-journey-arrow svg{transform:scaleX(1) rotate(180deg);}

/* -----------------------------------------------------------
   About — Stats (dark cards, reuses sitewide [data-count] animation)
----------------------------------------------------------- */
.tap-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.tap-stats-card{
	position:relative;overflow:hidden;isolation:isolate;text-align:center;
	background:linear-gradient(165deg,var(--navy-dark) 0%,#16233a 55%,var(--navy-dark) 100%);
	border-radius:var(--radius-lg);padding:34px 20px;
	box-shadow:0 24px 55px -22px rgba(26,39,61,.5);
	transition:transform .4s var(--ease),box-shadow .4s var(--ease);
}
.tap-stats-card:hover{transform:translateY(-6px);box-shadow:0 30px 65px -20px rgba(26,39,61,.6);}
.tap-stats-card::before{
	content:"";position:absolute;z-index:-1;top:-50%;left:50%;transform:translateX(-50%);
	width:220px;height:180px;border-radius:50%;
	background:radial-gradient(circle,rgba(var(--gold-rgb),.28),transparent 70%);
	filter:blur(40px);pointer-events:none;
}
.tap-stats-number{
	display:flex;align-items:baseline;justify-content:center;gap:2px;
	font-family:var(--font-head);font-weight:700;
	font-size:clamp(32px,3.4vw,44px);color:var(--gold-light);
	margin-bottom:10px;
}
.tap-stats-label{display:block;font-size:13.5px;color:rgba(255,255,255,.72);}

/* -----------------------------------------------------------
   About — Service sectors (3-col, fully clickable cards)
----------------------------------------------------------- */
.tap-sectors-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.tap-sectors-grid .tap-ss-card{display:flex;flex-direction:column;}
.tap-sectors-grid .tap-ss-card p{min-height:0;flex:1;}
.tap-sectors-cta{
	display:inline-flex;align-items:center;gap:7px;align-self:flex-start;margin-top:auto;padding-top:6px;
	font-size:13px;font-weight:700;color:var(--navy-dark);
	transition:gap .3s var(--ease),color .3s var(--ease);
}
.tap-sectors-grid .tap-ss-card:hover .tap-sectors-cta{color:var(--gold);gap:11px;}
.tap-sectors-cta svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transform:scaleX(-1);}
html[dir="ltr"] .tap-sectors-cta svg{transform:scaleX(1);}

/* -----------------------------------------------------------
   About — Feature grid (Vision pillars / Why Us, shared widget)
----------------------------------------------------------- */
.tap-section-head-center{max-width:640px;margin-inline:auto;text-align:center;}
.tap-feature-grid-subhead{text-align:center;font-size:15px;margin-bottom:28px;color:var(--text-muted);}
.tap-feature-grid{display:grid;gap:22px;}
.tap-feature-grid-row{grid-template-columns:repeat(5,1fr);}
.tap-feature-grid-cols{grid-template-columns:repeat(3,1fr);}
.tap-feature-grid-cols4{grid-template-columns:repeat(4,1fr);}
.tap-feature-item{
	background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);
	box-shadow:var(--shadow-soft);padding:26px 20px;text-align:center;
	display:flex;flex-direction:column;align-items:center;height:100%;
	transition:box-shadow .4s var(--ease),transform .4s var(--ease),border-color .4s var(--ease);
}
.tap-feature-item:hover{box-shadow:var(--shadow-lift);transform:translateY(-5px);border-color:rgba(var(--gold-rgb),.4);}
.tap-feature-item-featured{
	border-color:rgba(var(--gold-rgb),.4);
	background:linear-gradient(165deg,rgba(var(--gold-rgb),.07),var(--surface) 60%);
	box-shadow:var(--shadow-lift);
}
.tap-feature-icon{
	width:46px;height:46px;border-radius:12px;margin-bottom:14px;
	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;
}
.tap-feature-icon svg{width:21px;height:21px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.tap-feature-item h3{font-size:15px;margin-bottom:8px;}
.tap-feature-item p{font-size:12.5px;margin-bottom:0;}

/* -----------------------------------------------------------
   Feature grid — flip-card variant (card_style="flip")
   Front: icon + title on the surface card. Back: navy/gold panel
   with the description + CTA. Flips on hover (desktop) or on tap
   (touch — toggled via .is-flipped, see main.js), since touch
   devices have no hover to trigger a CSS-only flip.
----------------------------------------------------------- */
.tap-feature-item-flip{background:transparent;border:none;box-shadow:none;padding:0;perspective:1600px;min-height:270px;cursor:pointer;}
.tap-feature-item-flip:hover{box-shadow:none;transform:none;border-color:transparent;}
.tap-feature-item-flip-inner{
	position:relative;width:100%;height:100%;min-height:270px;
	transition:transform .8s var(--ease);
	transform-style:preserve-3d;
}
.tap-feature-item-flip.is-flipped .tap-feature-item-flip-inner{transform:rotateY(180deg);}
@media (hover:hover) and (pointer:fine){
	.tap-feature-item-flip:hover .tap-feature-item-flip-inner{transform:rotateY(180deg);}
}
.tap-feature-item-flip-face{
	position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;
	border-radius:var(--radius-md);padding:26px 22px;
	display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center;
	box-shadow:var(--shadow-soft);
}
.tap-feature-item-flip-front{background:var(--surface);border:1px solid var(--border);}
.tap-feature-item-flip.tap-feature-item-featured .tap-feature-item-flip-front{
	border-color:rgba(var(--gold-rgb),.4);
	background:linear-gradient(165deg,rgba(var(--gold-rgb),.07),var(--surface) 60%);
}
.tap-feature-item-flip-front .tap-feature-icon{width:56px;height:56px;margin-bottom:16px;}
.tap-feature-item-flip-front .tap-feature-icon svg{width:26px;height:26px;}
.tap-feature-item-flip-front h3{font-size:16px;margin-bottom:0;}
.tap-feature-item-flip-hint{
	position:absolute;bottom:16px;left:50%;transform:translateX(-50%);
	width:30px;height:30px;border-radius:50%;
	display:flex;align-items:center;justify-content:center;
	background:rgba(var(--gold-rgb),.12);color:var(--gold-deep);opacity:.75;
}
.tap-feature-item-flip-hint svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.tap-feature-item-flip-back{
	background:linear-gradient(165deg,var(--navy-dark),var(--navy) 75%);
	transform:rotateY(180deg);color:#fff;justify-content:flex-start;gap:2px;
}
.tap-feature-item-flip-back h3{color:#fff;font-size:15px;margin-bottom:8px;}
.tap-feature-item-flip-back p{color:rgba(255,255,255,.8);font-size:12.5px;margin-bottom:0;}
.tap-feature-item-flip-back .tap-feature-item-indicator{border-top-color:rgba(255,255,255,.2);width:100%;}
.tap-feature-item-flip-back .tap-feature-item-indicator strong{color:var(--gold-light);}
.tap-feature-item-flip-back .tap-feature-item-indicator span{color:rgba(255,255,255,.7);}
.tap-feature-item-flip-back .tap-feature-item-cta{color:var(--gold-light);margin-top:16px;}
.tap-feature-item-flip-back .tap-feature-item-cta:hover{color:#fff;}
.tap-feature-item-flip-back .tap-feature-item-cta-static{color:rgba(255,255,255,.6);margin-top:16px;}

/* -----------------------------------------------------------
   Feature items — image variant: "portrait medallion" luxury
   flip card. Deliberately different from the decision-cards
   photo flip: rotates on the X axis (not Y), a frosted glass
   title bar up front instead of a bottom scrim, and a blurred-
   photo-behind-frosted-glass back instead of a flat navy panel.
----------------------------------------------------------- */
.tap-feature-item-photo-flip{min-width:0;height:300px;perspective:1700px;cursor:pointer;}
.tap-feature-item-photo-flip-inner{
	position:relative;width:100%;height:100%;
	transition:transform .85s cubic-bezier(.4,.1,.2,1);
	transform-style:preserve-3d;
	border-radius:var(--radius-lg);
}
.tap-feature-item-photo-flip:hover .tap-feature-item-photo-flip-inner,
.tap-feature-item-photo-flip.is-flipped .tap-feature-item-photo-flip-inner{transform:rotateX(180deg);}
.tap-feature-item-photo-flip-front,.tap-feature-item-photo-flip-back{
	position:absolute;inset:0;
	backface-visibility:hidden;-webkit-backface-visibility:hidden;
	border-radius:var(--radius-lg);overflow:hidden;
	box-shadow:0 18px 40px -20px rgba(26,39,61,.45);
}
.tap-feature-item-photo-flip-front{
	background-size:cover;background-position:center;
	box-shadow:inset 0 0 0 1px rgba(255,255,255,.5),0 18px 40px -20px rgba(26,39,61,.45);
}
.tap-feature-item-photo-flip-front::before{
	content:'';position:absolute;inset:9px;border:1px solid rgba(var(--gold-rgb),.55);border-radius:calc(var(--radius-lg) - 6px);pointer-events:none;
}
.tap-feature-item-photo-badge{
	position:absolute;top:18px;inset-inline-end:18px;z-index:2;
	width:42px;height:42px;border-radius:50%;
	background:rgba(255,255,255,.16);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
	border:1px solid rgba(var(--gold-rgb),.6);
	display:flex;align-items:center;justify-content:center;color:#fff;
}
.tap-feature-item-photo-badge svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.tap-feature-item-photo-badge-sm{position:static;width:38px;height:38px;margin:0 auto 14px;border-color:rgba(var(--gold-rgb),.5);}
.tap-feature-item-photo-title-bar{
	position:absolute;left:16px;right:16px;bottom:16px;z-index:2;
	background:rgba(10,18,32,.42);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
	border:1px solid rgba(255,255,255,.16);border-radius:var(--radius-sm);
	padding:14px 16px;display:flex;flex-direction:column;gap:8px;
}
.tap-feature-item-photo-title-bar span{color:#fff;font-size:15px;font-weight:700;line-height:1.4;}
.tap-feature-item-photo-underline{width:22px;height:2px;border-radius:2px;background:var(--gold);transition:width .5s var(--ease);}
.tap-feature-item-photo-flip:hover .tap-feature-item-photo-underline{width:100%;}

.tap-feature-item-photo-flip-back{transform:rotateX(180deg);}
.tap-feature-item-photo-back-bg{
	position:absolute;inset:-10px;z-index:0;
	background-size:cover;background-position:center;
	filter:blur(16px) brightness(.4) saturate(1.15);
	transform:scale(1.12);
}
.tap-feature-item-photo-back-panel{
	position:relative;z-index:1;width:100%;height:100%;
	display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
	padding:26px 22px;
	background:linear-gradient(165deg,rgba(15,26,44,.72) 0%,rgba(22,35,58,.6) 100%);
}
.tap-feature-item-photo-back-panel h3{color:#fff !important;font-size:16px;margin-bottom:8px;}
.tap-feature-item-photo-back-panel p{color:rgba(255,255,255,.75);font-size:12.5px;line-height:1.7;margin-bottom:0;}
.tap-feature-item-photo-back-panel .tap-feature-item-indicator{border-top-color:rgba(255,255,255,.2);width:100%;margin-top:14px;padding-top:14px;}
.tap-feature-item-photo-back-panel .tap-feature-item-indicator strong{color:var(--gold-light);}
.tap-feature-item-photo-back-panel .tap-feature-item-indicator span{color:rgba(255,255,255,.7);}
.tap-feature-item-photo-cta{margin-top:18px;padding:10px 22px !important;font-size:13px !important;}
.tap-feature-item-photo-back-panel .tap-feature-item-cta-static{color:rgba(255,255,255,.6);margin-top:16px;font-size:12.5px;}

/* -----------------------------------------------------------
   About — Licenses teaser (2-col: text / logo grid)
----------------------------------------------------------- */
.tap-lic-teaser-layout{display:grid;grid-template-columns:42fr 58fr;gap:48px;align-items:center;}
.tap-lic-teaser-text .tap-btn{margin-top:24px;}
.tap-lic-teaser-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.tap-lic-teaser-item{
	aspect-ratio:1/1;border-radius:var(--radius-md) !important;
	background:var(--surface) !important;border:1px solid var(--border) !important;
	padding:14px !important;display:flex !important;align-items:center;justify-content:center;
	transition:box-shadow .3s var(--ease),transform .3s var(--ease),border-color .3s var(--ease) !important;
}
.tap-lic-teaser-item:hover{box-shadow:var(--shadow-lift);transform:translateY(-3px);border-color:rgba(var(--gold-rgb),.4) !important;}
.tap-lic-teaser-item img{max-width:100%;max-height:100%;object-fit:contain;}
.tap-lic-teaser-item-fallback{color:var(--navy);opacity:.5;}
.tap-lic-teaser-item-fallback svg{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}

/* -----------------------------------------------------------
   About — Projects showcase (reuses .tap-blog-card, 4-col)
----------------------------------------------------------- */
.tap-projects-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.tap-projects-grid .tap-blog-card-body h3{color:var(--navy-dark);transition:color .3s var(--ease);}
.tap-projects-grid .tap-blog-card:hover .tap-blog-card-body h3{color:var(--gold);}
.tap-projects-cta{text-align:center;margin-top:40px;}

/* -----------------------------------------------------------
   About — Partners grid (static, full color)
----------------------------------------------------------- */
.tap-partners-grid-static{
	display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:20px;
	margin-bottom:48px;
}
/* .tap-partner-logo is built for the homepage's flex marquee row, where
   a fixed 210px width is fine — inside this grid, cells can render
   narrower than that at some widths, so the fixed width overflowed its
   cell. Stretch it to fill the cell instead, scoped to this grid only. */
.tap-partners-grid-static .tap-partner-logo{width:100%;height:110px;}
.tap-partners-footer{max-width:560px;margin-inline:auto;text-align:center;}
.tap-partners-footer strong{display:block;font-size:18px;color:var(--navy-dark);margin-bottom:10px;}
.tap-partners-footer p{margin-bottom:22px;}

/* -----------------------------------------------------------
   About — Service areas (abstract coverage radar, not a literal map)
----------------------------------------------------------- */
.tap-areas-layout{display:grid;grid-template-columns:52fr 48fr;gap:48px;align-items:center;}
.tap-areas-list{display:flex;flex-direction:column;gap:16px;margin-block:22px 0;}
.tap-areas-text > .tap-btn{margin-top:30px;}
.tap-areas-list li{display:flex;align-items:flex-start;gap:12px;}
.tap-areas-list-icon{
	flex-shrink:0;width:34px;height:34px;border-radius:50%;
	background:rgba(var(--gold-rgb),.14);color:var(--gold);
	display:flex !important;align-items:center;justify-content:center;
}
.tap-areas-list-icon svg{margin:0;width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.tap-areas-list li strong{display:block;font-size:14.5px;color:var(--navy-dark);margin-bottom:2px;}
.tap-areas-list li span{font-size:13px;color:var(--text-muted);}
.tap-areas-list li > span{display:block;}

.tap-areas-radar{
	/* Every child here is position:absolute, so the box has no in-flow
	   content to size itself from — aspect-ratio needs an explicit width
	   to resolve against, or it collapses to 0x0. */
	position:relative;width:100%;aspect-ratio:1/1;max-width:420px;margin-inline:auto;
	display:flex;align-items:center;justify-content:center;
}
.tap-areas-map-frame{
	position:absolute;inset:0;border-radius:var(--radius-lg);overflow:hidden;
	border:1px solid var(--border);box-shadow:var(--shadow-lift);
	background:var(--bg-alt);
}
.tap-areas-map-embed{
	display:block;width:100%;height:100%;border:0;
	filter:grayscale(.2) contrast(1.05) saturate(1.1);
}
.tap-areas-pin{
	position:absolute;top:var(--tap-y);left:var(--tap-x);transform:translate(-50%,-50%);
	display:flex;flex-direction:column;align-items:center;gap:7px;z-index:1;
}
.tap-areas-pin-dot{
	position:relative;width:34px;height:34px;border-radius:50%;flex-shrink:0;
	background:linear-gradient(135deg,var(--gold),var(--gold-light));color:#fff;
	display:flex;align-items:center;justify-content:center;
	box-shadow:0 0 0 5px rgba(var(--gold-rgb),.18),0 6px 16px -2px rgba(var(--gold-rgb),.7);
}
.tap-areas-pin-dot svg{
	display:block;width:16px;height:16px;
	stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;
}
.tap-areas-pin-dot::after{
	content:"";position:absolute;inset:-9px;border-radius:50%;
	border:1.5px solid rgba(var(--gold-rgb),.5);
	animation:tapAreasPulse 2.6s ease-out infinite;
}
@keyframes tapAreasPulse{
	0%{transform:scale(.75);opacity:.9;}
	100%{transform:scale(1.6);opacity:0;}
}
.tap-areas-pin-label{
	font-size:11.5px;font-weight:700;color:var(--navy-dark);white-space:nowrap;
	background:var(--surface);padding:4px 12px;border-radius:100px;
	box-shadow:var(--shadow-soft);border:1px solid var(--border);
}

/* Hover/focus tooltip — city name + description + phone. Anchored to
   the pin itself (not the label), so it stays put regardless of label
   width; a small caret ties it visually back to the pin dot. Raised
   z-index on hover keeps it above neighboring pins. */
.tap-areas-pin{cursor:pointer;outline:none;}
.tap-areas-pin:hover,.tap-areas-pin:focus-within{z-index:10;}
.tap-areas-pin-tooltip{
	position:absolute;bottom:calc(100% + 14px);left:50%;transform:translate(-50%,6px);
	width:224px;text-align:center;
	background:linear-gradient(165deg,var(--navy-dark),var(--navy) 80%);color:#fff;
	border-radius:var(--radius-md);padding:16px 18px;
	box-shadow:0 20px 44px -14px rgba(26,39,61,.55);
	opacity:0;visibility:hidden;pointer-events:none;
	transition:opacity .25s var(--ease),transform .25s var(--ease),visibility .25s;
}
.tap-areas-pin-tooltip::after{
	content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);
	border:7px solid transparent;border-top-color:var(--navy);
}
.tap-areas-pin:hover .tap-areas-pin-tooltip,
.tap-areas-pin:focus-within .tap-areas-pin-tooltip{
	opacity:1;visibility:visible;transform:translate(-50%,0);pointer-events:auto;
}
.tap-areas-pin-tooltip strong{display:block;font-size:13.5px;color:var(--gold-light);margin-bottom:6px;}
.tap-areas-pin-tooltip > span{display:block;font-size:11.5px;line-height:1.6;color:rgba(255,255,255,.82);margin-bottom:10px;}
.tap-areas-pin-tooltip a{
	display:inline-flex;align-items:center;gap:6px;
	font-size:12.5px;font-weight:700;color:var(--gold-light);
	direction:ltr;
}
.tap-areas-pin-tooltip a:hover{color:#fff;}
.tap-areas-pin-tooltip a.tap-areas-pin-address{
	display:block;font-size:11.5px;font-weight:400;line-height:1.6;
	color:rgba(255,255,255,.82);margin-bottom:10px;
	direction:inherit;text-decoration:none;
	transition:color .25s var(--ease);
}
.tap-areas-pin-tooltip a.tap-areas-pin-address:hover{color:var(--gold-light);text-decoration:underline;}
.tap-areas-pin-tooltip a svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;}

/* -----------------------------------------------------------
   About — FAQ (luxury card treatment, scoped over the sitewide
   .tap-accordion* structure so the homepage's own FAQ is untouched)
----------------------------------------------------------- */
.tap-about-faq .tap-faq-container{margin-top:8px;margin-inline:auto;}
.tap-about-faq .tap-accordion{display:flex;flex-direction:column;gap:14px;}
.tap-about-faq .tap-accordion-item{
	border:1px solid var(--border);border-radius:var(--radius-md);
	background:var(--surface);box-shadow:var(--shadow-soft);
	padding-inline:24px;
	transition:box-shadow .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease);
}
.tap-about-faq .tap-accordion-item:hover{box-shadow:var(--shadow-lift);transform:translateY(-2px);}
.tap-about-faq .tap-accordion-item.is-open{border-color:rgba(var(--gold-rgb),.4);box-shadow:var(--shadow-lift);}
.tap-about-faq .tap-accordion-trigger{padding-block:22px;font-size:15.5px;}
.tap-about-faq-icon{
	flex-shrink:0;width:32px;height:32px;border-radius:50%;margin-inline-start:16px;
	background:rgba(var(--gold-rgb),.12);color:var(--gold);
	display:flex;align-items:center;justify-content:center;
	transition:background .3s var(--ease),color .3s var(--ease);
}
/* The sitewide .tap-accordion-trigger svg rule adds a directional
   margin for its own (non-circle) layout — it shifted our icon off
   center inside this circular badge, so it's neutralized here. */
.tap-about-faq-icon svg{display:block;margin:0;width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .35s var(--ease);}
.tap-about-faq .tap-accordion-item.is-open .tap-about-faq-icon{background:var(--gold);color:#fff;}
.tap-about-faq .tap-accordion-item.is-open .tap-about-faq-icon svg{transform:rotate(180deg);color:#fff;}
.tap-about-faq .tap-accordion-panel-inner{padding-bottom:24px;}

/* -----------------------------------------------------------
   Journey — optional per-stage badge (Projects page reuse)
----------------------------------------------------------- */
.tap-journey-badge{
	display:inline-block;margin-top:10px;font-size:11px;font-weight:700;
	padding:4px 12px;border-radius:100px;
	background:rgba(var(--gold-rgb),.14);color:#a85a1c;
}
.tap-journey-track{flex-wrap:wrap;row-gap:24px;}
.tap-journey-stage{flex:1 1 210px;}

/* -----------------------------------------------------------
   Projects — Hero (48/52, mosaic collage w/ overlay labels)
----------------------------------------------------------- */
.tap-projects-hero{padding-top:188px;padding-bottom:70px;}
.tap-projects-hero-inner{display:grid;grid-template-columns:48fr 52fr;gap:56px;align-items:center;}
.tap-projects-hero-text h1{margin-block:10px 18px;font-size:clamp(28px,3.4vw,42px);line-height:1.3;}
.tap-projects-hero-text p{font-size:16px;margin-bottom:14px;}
.tap-projects-hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-block:22px 30px;}
.tap-projects-hero-actions button.tap-btn{background:linear-gradient(135deg,var(--gold),#e07322) !important;color:#fff !important;border:none !important;border-radius:100px !important;}
.tap-projects-hero-actions button.tap-btn:hover{transform:translateY(-3px);}

.tap-projects-hero-points{display:flex;flex-direction:column;gap:16px;}
.tap-projects-hero-point{display:flex;align-items:flex-start;gap:12px;}
.tap-projects-hero-point-icon{
	flex-shrink:0;width:40px;height:40px;border-radius:12px;
	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;
}
.tap-projects-hero-point-icon svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.tap-projects-hero-point-text{display:flex;flex-direction:column;gap:2px;}
.tap-projects-hero-point-text strong{font-size:13.5px;color:var(--navy-dark);}
.tap-projects-hero-point-text span{font-size:12px;color:var(--text-muted);}

.tap-projects-hero-mosaic{
	position:relative;display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);
	gap:14px;min-height:440px;
}
.tap-projects-hero-tile{position:relative;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-soft);}
.tap-projects-hero-tile img{width:100%;height:100%;object-fit:cover;display:block;}
.tap-projects-hero-tile-1{grid-row:1 / 3;}
.tap-projects-hero-tile-label{
	position:absolute;bottom:14px;inset-inline-start:14px;z-index:1;
	background:rgba(26,39,61,.75);backdrop-filter:blur(6px);color:#fff;
	font-size:12px;font-weight:700;padding:6px 14px;border-radius:100px;
}

/* -----------------------------------------------------------
   Projects — Sector filter cards
----------------------------------------------------------- */
.tap-project-sector-card{
	/* Grid's 1fr tracks default to minmax(auto,1fr) — a <button>'s
	   intrinsic min-content (driven by its longest-title sibling in the
	   same column) was winning over the equal-thirds split, blowing the
	   grid out past the container. min-width:0 forces genuine 1fr. */
	width:100%;min-width:0;text-align:start !important;cursor:pointer;
	background:var(--surface) !important;border:1px solid var(--border) !important;
}
/* Browsers/reset.css give text inside <button> a nowrap default —
   the description paragraph was refusing to wrap and overflowing the
   card. Same class of clash as the other button resets on this page. */
.tap-project-sector-card p,
.tap-project-sector-card h3{white-space:normal !important;text-wrap:wrap !important;}
.tap-project-sector-card.is-active-filter{border-color:var(--gold) !important;box-shadow:var(--shadow-lift);}

/* -----------------------------------------------------------
   Projects — Grid (dashboard-driven cards, filter + load more)
----------------------------------------------------------- */
.tap-project-filters{margin-bottom:36px;}
.tap-project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;transition:opacity .18s var(--ease);}
.tap-project-grid.is-filtering{opacity:.35;}
.tap-project-card{
	background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);
	box-shadow:var(--shadow-soft);overflow:hidden;display:flex;flex-direction:column;
	transition:box-shadow .4s var(--ease),transform .4s var(--ease),border-color .4s var(--ease);
}
.tap-project-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-6px);border-color:rgba(var(--gold-rgb),.35);}
.tap-project-card-media{position:relative;display:block;aspect-ratio:4/3;background:var(--bg-alt);overflow:hidden;}
.tap-project-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease);}
.tap-project-card:hover .tap-project-card-media img{transform:scale(1.06);}
.tap-project-card-cat{
	position:absolute;top:14px;inset-inline-start:14px;z-index:1;
	background:rgba(26,39,61,.72);backdrop-filter:blur(6px);color:#fff;
	font-size:11.5px;font-weight:700;padding:5px 13px;border-radius:100px;
}
.tap-project-card-body{padding:22px;display:flex;flex-direction:column;flex:1;}
.tap-project-card-body h3{font-size:17px;line-height:1.4;margin-bottom:8px;}
.tap-project-card-body h3 a{color:var(--navy-dark);transition:color .3s var(--ease);}
.tap-project-card-body h3 a:hover{color:var(--gold);}
.tap-project-card-city{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--text-muted);margin-bottom:8px;}
.tap-project-card-city svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.tap-project-card-body p{font-size:13.5px;margin-bottom:12px;}
.tap-project-card-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px;}
.tap-project-card-tags span{font-size:11px;font-weight:700;padding:4px 10px;border-radius:100px;background:var(--bg-alt);color:var(--navy);}
.tap-project-card-more{
	margin-top:auto;display:inline-flex;align-items:center;gap:7px;align-self:flex-start;
	font-size:13px;font-weight:700;color:var(--navy-dark);
	transition:gap .3s var(--ease),color .3s var(--ease);
}
.tap-project-card-more:hover{color:var(--gold);gap:11px;}
.tap-project-card-more svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transform:scaleX(-1);}
html[dir="ltr"] .tap-project-card-more svg{transform:scaleX(1);}
.tap-project-load-more-wrap{text-align:center;margin-top:40px;}

/* -----------------------------------------------------------
   Projects — Featured project (conditional, 45/55)
----------------------------------------------------------- */
.tap-featured-project-layout{display:grid;grid-template-columns:45fr 55fr;gap:48px;align-items:center;}
.tap-featured-project-text h3{font-size:26px;margin-block:8px 20px;}
.tap-featured-project-block{margin-bottom:18px;}
.tap-featured-project-block strong{display:block;font-size:13px;color:var(--gold-deep);margin-bottom:6px;}
.tap-featured-project-block p{font-size:14.5px;margin:0;}
.tap-featured-project-block ul{margin:0;padding-inline-start:1.2em;font-size:14px;}
.tap-featured-project-block li{margin-bottom:.4em;color:var(--text);}
.tap-featured-project-text .tap-btn{margin-top:8px;}

.tap-featured-project-media{position:relative;}
.tap-featured-project-main-img{display:block;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lift);}
.tap-featured-project-main-img img{width:100%;height:auto;display:block;aspect-ratio:4/3;object-fit:cover;}
.tap-featured-project-thumbs{display:flex;gap:12px;margin-top:14px;}
.tap-featured-project-thumb{flex:1;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-soft);aspect-ratio:1/1;display:block;}
.tap-featured-project-thumb img{width:100%;height:100%;object-fit:cover;display:block;}

/* -----------------------------------------------------------
   Projects — Field tiles (image + hover overlay CTA)
----------------------------------------------------------- */
.tap-field-tiles-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.tap-field-tile{
	position:relative;display:block;aspect-ratio:3/4;border-radius:var(--radius-lg);
	overflow:hidden;box-shadow:var(--shadow-soft);
	transition:box-shadow .4s var(--ease),transform .4s var(--ease);
}
.tap-field-tile:hover{box-shadow:var(--shadow-lift);transform:translateY(-5px);}
.tap-field-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease);}
.tap-field-tile:hover img{transform:scale(1.08);}
.tap-field-tile-fallback{
	position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
	background:linear-gradient(150deg,rgba(var(--navy-rgb),.1),rgba(var(--gold-rgb),.16));color:var(--navy);
}
.tap-field-tile-fallback svg{width:44px;height:44px;stroke:currentColor;fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;opacity:.5;}
.tap-field-tile-overlay{
	position:absolute;inset:0;z-index:1;padding:22px;
	display:flex;flex-direction:column;justify-content:flex-end;
	background:linear-gradient(0deg,rgba(15,22,35,.9) 0%,rgba(15,22,35,.35) 55%,transparent 100%);
	color:#fff;
}
.tap-field-tile-overlay h3{color:#fff !important;font-size:17px;margin-bottom:6px;}
.tap-field-tile-overlay p{font-size:12.5px;color:rgba(255,255,255,.75);margin-bottom:0;max-height:0;overflow:hidden;opacity:0;transition:max-height .4s var(--ease),opacity .3s var(--ease),margin .3s var(--ease);}
.tap-field-tile:hover .tap-field-tile-overlay p{max-height:80px;opacity:1;margin-top:8px;}
.tap-field-tile-hover{
	display:inline-flex;align-items:center;gap:7px;margin-top:14px;
	font-size:12.5px;font-weight:700;color:var(--gold-light);
	opacity:0;transform:translateY(6px);transition:opacity .3s var(--ease),transform .3s var(--ease);
}
.tap-field-tile:hover .tap-field-tile-hover{opacity:1;transform:translateY(0);}
.tap-field-tile-hover svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transform:scaleX(-1);}
html[dir="ltr"] .tap-field-tile-hover svg{transform:scaleX(1);}

/* -----------------------------------------------------------
   Services — Hero (55/45 split, abstract icon-flow visual)
----------------------------------------------------------- */
.tap-services-hero{padding-top:188px;padding-bottom:70px;}
.tap-services-hero-inner{display:grid;grid-template-columns:55fr 45fr;gap:56px;align-items:center;}
.tap-services-hero-text p{font-size:16px;margin-block:18px 0;}
.tap-services-hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-block:24px 30px;}
/* Native <button> hits the same reset.css [type=button]/button clash as
   every other button-tag CTA on this site — !important is the
   established fix (see .tap-projects-hero-actions button.tap-btn). */
.tap-services-hero-actions button.tap-btn-primary{
	background:linear-gradient(135deg,var(--gold),#e07322) !important;color:#fff !important;
	border:none !important;border-radius:100px !important;
	box-shadow:0 16px 34px -12px rgba(var(--gold-rgb),.65) !important;
	transition:transform .4s cubic-bezier(.34,1.56,.64,1),box-shadow .35s var(--ease) !important;
}
.tap-services-hero-actions button.tap-btn-primary:hover{
	transform:translateY(-3px) scale(1.03);box-shadow:0 22px 44px -14px rgba(var(--gold-rgb),.8) !important;
}
.tap-services-hero-actions button.tap-btn-primary:hover .tap-final-cta-arrow{transform:scaleX(-1) translateX(-3px);}
html[dir="ltr"] .tap-services-hero-actions button.tap-btn-primary:hover .tap-final-cta-arrow{transform:scaleX(1) translateX(3px);}

.tap-services-hero-points{display:flex;flex-direction:column;gap:16px;}
.tap-services-hero-point{display:flex;align-items:flex-start;gap:12px;}
.tap-services-hero-point-icon{
	flex-shrink:0;width:40px;height:40px;border-radius:12px;
	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;
}
.tap-services-hero-point-icon svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.tap-services-hero-point-text{display:flex;flex-direction:column;gap:2px;}
.tap-services-hero-point-text strong{font-size:13.5px;color:var(--navy-dark);}
.tap-services-hero-point-text span{font-size:12px;color:var(--text-muted);}

.tap-services-hero-visual{
	position:relative;min-height:420px;border-radius:var(--radius-lg);overflow:hidden;
	background:linear-gradient(165deg,var(--navy-dark) 0%,#16233a 55%,var(--navy-dark) 100%);
	box-shadow:0 30px 70px -25px rgba(26,39,61,.5);
	display:flex;align-items:center;justify-content:center;padding:36px;
}
.tap-services-hero-visual::before{
	content:"";position:absolute;z-index:0;top:-30%;left:50%;transform:translateX(-50%);
	width:460px;height:300px;border-radius:50%;
	background:radial-gradient(circle,rgba(var(--gold-rgb),.24),transparent 70%);
	filter:blur(46px);pointer-events:none;
}
.tap-services-hero-flow{
	position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;
	place-items:center;width:100%;
}
.tap-services-hero-flow-center{
	grid-column:1 / -1;display:flex;align-items:center;justify-content:center;
	width:100px;height:100px;border-radius:50%;margin-bottom:6px;
	background:linear-gradient(135deg,var(--gold),#e07322);
	box-shadow:0 16px 34px -12px rgba(var(--gold-rgb),.65);
}
.tap-services-hero-flow-center strong{color:#fff;font-size:14px;font-weight:800;text-align:center;line-height:1.25;}
.tap-services-hero-flow-node{
	display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;
	background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-md);
	padding:16px 10px;width:100%;
	transition:background .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease);
}
.tap-services-hero-flow-node:hover{background:rgba(var(--gold-rgb),.14);border-color:rgba(var(--gold-rgb),.4);transform:translateY(-4px);}
.tap-services-hero-flow-node-icon{
	width:38px;height:38px;border-radius:10px;flex-shrink:0;
	background:rgba(var(--gold-rgb),.16);color:var(--gold-light);
	display:flex;align-items:center;justify-content:center;
}
.tap-services-hero-flow-node-icon svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.tap-services-hero-flow-node span{font-size:11.5px;font-weight:600;color:rgba(255,255,255,.82);line-height:1.3;}

/* -----------------------------------------------------------
   Services — Category cards (2-per-row expanded, sub-services + Hub CTA)
----------------------------------------------------------- */
.tap-svc-cat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;}
.tap-svc-cat-card{
	background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);
	box-shadow:var(--shadow-soft);padding:30px 28px;
	display:flex;flex-direction:column;
	transition:box-shadow .4s var(--ease),transform .4s var(--ease),border-color .4s var(--ease);
}
.tap-svc-cat-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-6px);border-color:rgba(var(--gold-rgb),.4);}
.tap-svc-cat-icon{
	width:52px;height:52px;border-radius:14px;margin-bottom:16px;
	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-svc-cat-icon svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.tap-svc-cat-card:hover .tap-svc-cat-icon{background:linear-gradient(135deg,var(--gold),var(--gold-light));color:#fff;transform:rotate(-6deg) scale(1.06);}
.tap-svc-cat-card h3{font-size:19px;margin-bottom:10px;}
.tap-svc-cat-card p{font-size:14px;margin-bottom:18px;}
.tap-svc-cat-sublist{margin:0 0 20px;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px;}
.tap-svc-cat-sublist li{display:flex;align-items:center;gap:10px;font-size:13.5px;}
.tap-svc-cat-sub-check{width:16px;height:16px;flex-shrink:0;stroke:var(--gold);fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;}
.tap-svc-cat-sublist li a{color:var(--text);font-weight:600;transition:color .3s var(--ease);}
.tap-svc-cat-sublist li a:hover{color:var(--gold);}
.tap-svc-cat-sublist li span{color:var(--text-muted);}

.tap-svc-cat-sublist-wrap{position:relative;margin-bottom:14px;}
.tap-svc-cat-sublist-wrap .tap-svc-cat-sublist{margin-bottom:0;}
.tap-svc-cat-sublist-wrap.is-collapsible{max-height:186px;overflow:hidden;transition:max-height .55s cubic-bezier(.4,.1,.2,1);}
.tap-svc-cat-sublist-fade{
	position:absolute;inset-inline:0;bottom:0;height:56px;pointer-events:none;
	background:linear-gradient(180deg,rgba(255,255,255,0) 0%,var(--surface) 88%);
	transition:opacity .4s var(--ease);
}
.tap-svc-cat-sublist-wrap.is-expanded .tap-svc-cat-sublist-fade{opacity:0;}

.tap-svc-cat-toggle{
	display:inline-flex !important;align-items:center !important;gap:8px !important;
	background:transparent !important;border:1px solid rgba(var(--gold-rgb),.4) !important;border-radius:100px !important;
	padding:8px 16px !important;margin:0 0 20px !important;cursor:pointer !important;
	font-family:inherit !important;font-size:12.5px !important;font-weight:700 !important;color:var(--gold-deep) !important;
	box-shadow:none !important;
	transition:background .3s var(--ease),border-color .3s var(--ease),color .3s var(--ease) !important;
}
.tap-svc-cat-toggle:hover{background:rgba(var(--gold-rgb),.1) !important;border-color:var(--gold) !important;}
.tap-svc-cat-toggle-label-less{display:none;}
.tap-svc-cat-toggle[aria-expanded="true"] .tap-svc-cat-toggle-label-more{display:none;}
.tap-svc-cat-toggle[aria-expanded="true"] .tap-svc-cat-toggle-label-less{display:inline;}
.tap-svc-cat-toggle-chevron{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .4s var(--ease);}
.tap-svc-cat-toggle[aria-expanded="true"] .tap-svc-cat-toggle-chevron{transform:rotate(180deg);}

.tap-svc-cat-hub-cta{
	margin-top:auto;display:inline-flex;align-items:center;gap:8px;align-self:flex-start;
	font-size:13.5px;font-weight:700;color:var(--navy-dark);
	transition:gap .3s var(--ease),color .3s var(--ease);
}
.tap-svc-cat-hub-cta:hover{color:var(--gold);gap:12px;}
.tap-svc-cat-hub-cta svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transform:scaleX(-1);}
html[dir="ltr"] .tap-svc-cat-hub-cta svg{transform:scaleX(1);}
.tap-svc-cat-hub-cta-static{color:var(--text-muted);cursor:default;}
.tap-svc-cat-hub-cta-static:hover{color:var(--text-muted);gap:8px;}

/* -----------------------------------------------------------
   Services — Featured sector banner (reusable dark highlight)
----------------------------------------------------------- */
.tap-fsb-panel{
	position:relative;overflow:hidden;isolation:isolate;
	display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:center;
	background:linear-gradient(165deg,var(--navy-dark) 0%,#16233a 55%,var(--navy-dark) 100%);
	border-radius:var(--radius-lg);box-shadow:0 30px 70px -25px rgba(26,39,61,.5);
}
.tap-fsb-panel::before{
	content:"";position:absolute;z-index:0;top:-40%;left:0;
	width:420px;height:320px;border-radius:50%;
	background:radial-gradient(circle,rgba(var(--gold-rgb),.26),transparent 70%);
	filter:blur(50px);pointer-events:none;
}
.tap-fsb-text{position:relative;z-index:1;padding:48px 44px;}
.tap-fsb-badge{
	display:inline-block;font-size:12px;font-weight:700;letter-spacing:.2px;
	padding:6px 16px;border-radius:100px;margin-bottom:16px;
	background:rgba(var(--gold-rgb),.18);color:var(--gold-light);
}
.tap-fsb-text h2{color:#fff !important;font-size:clamp(22px,2.6vw,30px);margin-bottom:14px;}
.tap-fsb-text p{color:rgba(255,255,255,.72);margin-bottom:22px;}
.tap-fsb-points{margin:0 0 26px;padding:0;list-style:none;display:flex;flex-direction:column;gap:12px;}
.tap-fsb-points li{display:flex;align-items:center;gap:10px;font-size:13.5px;color:rgba(255,255,255,.85);}
.tap-fsb-points svg{width:18px;height:18px;flex-shrink:0;stroke:var(--gold-light);fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;}
.tap-fsb-media{position:relative;height:100%;min-height:340px;}
.tap-fsb-media img{width:100%;height:100%;object-fit:cover;display:block;}

/* -----------------------------------------------------------
   Feature grid — cols2 layout + optional per-item CTA (Services page)
----------------------------------------------------------- */
.tap-feature-grid-cols2{grid-template-columns:repeat(2,1fr);}
.tap-feature-item-cta{
	margin-top:auto;padding-top:14px;display:inline-flex;align-items:center;gap:8px;align-self:center;
	font-size:13px;font-weight:700;color:var(--navy-dark);
	transition:gap .3s var(--ease),color .3s var(--ease);
}
.tap-feature-item-cta:hover{color:var(--gold);gap:12px;}
.tap-feature-item-cta svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transform:scaleX(-1);}
html[dir="ltr"] .tap-feature-item-cta svg{transform:scaleX(1);}

/* -----------------------------------------------------------
   About/Services Journey — optional outro text + CTA
----------------------------------------------------------- */
.tap-journey-outro{max-width:620px;margin:44px auto 0;text-align:center;}
.tap-journey-outro p{margin-bottom:22px;}

/* -----------------------------------------------------------
   Selected Projects — "browse all" link wrap
----------------------------------------------------------- */
.tap-selected-projects-more{text-align:center;margin-top:40px;}

/* -----------------------------------------------------------
   Service Hub — Hero (reusable across every future service page)
----------------------------------------------------------- */
.tap-service-hub-hero{padding-top:188px;padding-bottom:70px;}
.tap-service-hub-hero-inner{display:grid;grid-template-columns:55fr 45fr;gap:56px;align-items:center;}
.tap-service-hub-hero-text .tap-breadcrumb{justify-content:flex-start;margin-bottom:14px;}
.tap-service-hub-hero-text p{font-size:16px;margin-block:18px 0;}
.tap-service-hub-hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-block:24px 30px;}
.tap-service-hub-hero-actions button.tap-btn-primary{
	background:linear-gradient(135deg,var(--gold),#e07322) !important;color:#fff !important;
	border:none !important;border-radius:100px !important;
	box-shadow:0 16px 34px -12px rgba(var(--gold-rgb),.65) !important;
	transition:transform .4s cubic-bezier(.34,1.56,.64,1),box-shadow .35s var(--ease) !important;
}
.tap-service-hub-hero-actions button.tap-btn-primary:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 22px 44px -14px rgba(var(--gold-rgb),.8) !important;}
.tap-service-hub-hero-actions button.tap-btn-ghost{
	background:transparent !important;color:var(--navy) !important;
	border:1.5px solid var(--border) !important;border-radius:100px !important;
}
.tap-service-hub-hero-actions button.tap-btn-ghost:hover{border-color:var(--gold) !important;color:var(--gold) !important;}

.tap-service-hub-hero-points{display:flex;flex-direction:column;gap:16px;}
.tap-service-hub-hero-point{display:flex;align-items:flex-start;gap:12px;}
.tap-service-hub-hero-point-icon{
	flex-shrink:0;width:40px;height:40px;border-radius:12px;
	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;
}
.tap-service-hub-hero-point-icon svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.tap-service-hub-hero-point-text{display:flex;flex-direction:column;gap:2px;}
.tap-service-hub-hero-point-text strong{font-size:13.5px;color:var(--navy-dark);}
.tap-service-hub-hero-point-text span{font-size:12px;color:var(--text-muted);}

.tap-service-hub-hero-visual{
	position:relative;min-height:420px;border-radius:var(--radius-lg);overflow:hidden;isolation:isolate;
	background:linear-gradient(165deg,var(--navy-dark) 0%,#16233a 55%,var(--navy-dark) 100%);
	box-shadow:0 30px 70px -25px rgba(26,39,61,.5);
	display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;padding:40px;
}
.tap-service-hub-hero-visual::before{
	content:"";position:absolute;z-index:0;top:-30%;left:50%;transform:translateX(-50%);
	width:460px;height:300px;border-radius:50%;
	background:radial-gradient(circle,rgba(var(--gold-rgb),.24),transparent 70%);
	filter:blur(46px);pointer-events:none;
}
.tap-service-hub-hero-visual-title{
	position:relative;z-index:1;font-size:12px;font-weight:700;letter-spacing:.3px;
	padding:6px 16px;border-radius:100px;background:rgba(255,255,255,.08);color:rgba(255,255,255,.75);
}
.tap-service-hub-hero-flow{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:0;width:100%;max-width:280px;}
.tap-service-hub-hero-flow-node{
	display:flex;align-items:center;gap:14px;width:100%;
	background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-md);
	padding:14px 18px;
	transition:background .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease);
}
.tap-service-hub-hero-flow-node:hover{background:rgba(var(--gold-rgb),.14);border-color:rgba(var(--gold-rgb),.4);transform:translateX(-4px);}
html[dir="ltr"] .tap-service-hub-hero-flow-node:hover{transform:translateX(4px);}
.tap-service-hub-hero-flow-node-icon{
	flex-shrink:0;width:42px;height:42px;border-radius:10px;
	background:rgba(var(--gold-rgb),.16);color:var(--gold-light);
	display:flex;align-items:center;justify-content:center;
}
.tap-service-hub-hero-flow-node-icon svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.tap-service-hub-hero-flow-node span{font-size:14px;font-weight:700;color:#fff;}
.tap-service-hub-hero-flow-arrow{color:rgba(var(--gold-rgb),.7);padding-block:4px;}
.tap-service-hub-hero-flow-arrow svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}

/* -----------------------------------------------------------
   Service Hub — sub-service cards (dashboard-driven)
----------------------------------------------------------- */
.tap-svc-items-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.tap-svc-item-card{
	position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);
	box-shadow:var(--shadow-soft);padding:26px 22px;display:flex;flex-direction:column;
	transition:box-shadow .4s var(--ease),transform .4s var(--ease),border-color .4s var(--ease);
}
.tap-svc-item-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-5px);border-color:rgba(var(--gold-rgb),.4);}
.tap-svc-item-badge{
	align-self:flex-start;font-size:10.5px;font-weight:700;letter-spacing:.2px;
	padding:4px 11px;border-radius:100px;margin-bottom:12px;
	background:rgba(var(--gold-rgb),.14);color:#a85a1c;
}
.tap-svc-item-icon{
	width:46px;height:46px;border-radius:12px;margin-bottom:14px;
	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-svc-item-icon svg{width:21px;height:21px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.tap-svc-item-card:hover .tap-svc-item-icon{background:linear-gradient(135deg,var(--gold),var(--gold-light));color:#fff;transform:rotate(-6deg) scale(1.06);}
.tap-svc-item-card h3{font-size:15.5px;margin-bottom:8px;}
.tap-svc-item-card p{font-size:12.5px;margin-bottom:14px;}
.tap-svc-item-fit{
	background:var(--bg-alt);border-radius:var(--radius-sm);padding:10px 12px;margin-bottom:16px;
	display:flex;flex-direction:column;gap:2px;
}
.tap-svc-item-fit strong{font-size:11px;color:var(--gold-deep);}
.tap-svc-item-fit span{font-size:12px;color:var(--text);line-height:1.5;}
.tap-svc-item-cta{
	margin-top:auto;display:inline-flex;align-items:center;gap:7px;
	font-size:12.5px;font-weight:700;color:var(--navy-dark);
	transition:gap .3s var(--ease),color .3s var(--ease);
}
.tap-svc-item-cta:hover{color:var(--gold);gap:11px;}
.tap-svc-item-cta svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transform:scaleX(-1);}
html[dir="ltr"] .tap-svc-item-cta svg{transform:scaleX(1);}
.tap-svc-item-cta-static{color:var(--text-muted);cursor:default;}
.tap-svc-item-cta-static:hover{color:var(--text-muted);gap:7px;}
.tap-svc-item-card-closing{
	max-width:720px;margin-inline:auto;margin-top:26px;
	background:linear-gradient(165deg,var(--navy-dark) 0%,#16233a 100%);border:none;
	align-items:center;justify-content:center;text-align:center;padding:32px 30px;
}
.tap-svc-item-card-closing strong{color:#fff;font-size:17px;margin-bottom:10px;}
.tap-svc-item-card-closing p{color:rgba(255,255,255,.7);font-size:13.5px;margin-bottom:20px;}
.tap-svc-item-card-closing button.tap-btn-primary{
	background:linear-gradient(135deg,var(--gold),#e07322) !important;color:#fff !important;
	border:none !important;border-radius:100px !important;font-size:13px !important;padding:11px 22px !important;
}

/* -----------------------------------------------------------
   Service Hub — Solution process (factors + timeline + disclaimer)
----------------------------------------------------------- */
.tap-service-solution-stages-head{margin-top:20px;}
h3.tap-feature-grid-subhead.tap-service-solution-stages-head{margin-top:20px;}
.tap-svc-disclaimer{
	display:flex;gap:16px;align-items:flex-start;margin-top:44px;
	max-width:720px;margin-inline:auto;
	background:rgba(var(--gold-rgb),.08);border:1px solid rgba(var(--gold-rgb),.25);
	border-radius:var(--radius-md);padding:20px 22px;
}
.tap-svc-disclaimer-icon{flex-shrink:0;color:var(--gold);}
.tap-svc-disclaimer-icon svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.tap-svc-disclaimer p{font-size:13.5px;color:var(--text);margin-bottom:8px;}
.tap-svc-disclaimer p:last-child{margin-bottom:0;}
.tap-service-solution-ctas{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:24px;margin-top:36px;}
.tap-service-solution-ctas button.tap-btn-primary{
	background:linear-gradient(135deg,var(--gold),#e07322) !important;color:#fff !important;
	border:none !important;border-radius:100px !important;
}
.tap-service-solution-link{
	font-size:14px;font-weight:700;color:var(--navy-dark);text-decoration:underline;text-underline-offset:4px;
	transition:color .3s var(--ease);
}
.tap-service-solution-link:hover{color:var(--gold);}

/* -----------------------------------------------------------
   Service Hub — Maintenance split (checklist + comparison)
----------------------------------------------------------- */
.tap-svc-maint-layout{display:grid;grid-template-columns:58fr 42fr;gap:56px;align-items:start;}
.tap-svc-maint-text p{margin-block:14px 0;}
.tap-svc-maint-checklist-head{font-size:16px;margin-block:32px 18px;}
.tap-svc-maint-checklist{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
.tap-svc-maint-checklist li{display:flex;align-items:flex-start;gap:10px;}
.tap-svc-maint-checklist li svg{
	flex-shrink:0;width:18px;height:18px;margin-top:2px;
	stroke:var(--gold);fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;
}
.tap-svc-maint-checklist strong{display:block;font-size:13.5px;color:var(--navy-dark);margin-bottom:2px;}
.tap-svc-maint-checklist span{font-size:12.5px;color:var(--text-muted);line-height:1.6;}

.tap-svc-maint-media{
	border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-soft);margin-bottom:28px;
	aspect-ratio:4/3;background:var(--bg-alt);
}
.tap-svc-maint-media img{width:100%;height:100%;object-fit:cover;display:block;}
.tap-svc-maint-media-illustration{
	display:flex;align-items:center;justify-content:center;
	background:linear-gradient(150deg,rgba(var(--navy-rgb),.08),rgba(var(--gold-rgb),.16));
}
.tap-svc-maint-media-illustration span{
	width:88px;height:88px;border-radius:50%;
	background:linear-gradient(135deg,var(--navy),var(--navy-dark));color:var(--gold-light);
	display:flex;align-items:center;justify-content:center;
}
.tap-svc-maint-media-illustration svg{width:38px;height:38px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
.tap-svc-maint-compare-head{font-size:16px;margin-bottom:16px;}
.tap-svc-maint-compare{display:flex;flex-direction:column;gap:14px;}
.tap-svc-maint-compare-card{
	background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);
	box-shadow:var(--shadow-soft);padding:20px;
	display:flex;flex-direction:column;
	transition:box-shadow .4s var(--ease),transform .4s var(--ease),border-color .4s var(--ease);
}
.tap-svc-maint-compare-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-3px);border-color:rgba(var(--gold-rgb),.4);}
.tap-svc-maint-compare-card strong{display:block;font-size:14.5px;color:var(--navy-dark);margin-bottom:6px;}
.tap-svc-maint-compare-card p{font-size:12.5px;margin-bottom:14px;}
.tap-svc-maint-compare-cta{
	width:100% !important;font-size:12.5px !important;padding:10px 14px !important;margin-top:auto !important;
	background:linear-gradient(135deg,var(--gold),#e07322) !important;
	color:#fff !important;border:none !important;border-radius:100px !important;
	font-weight:700 !important;display:flex !important;align-items:center;justify-content:center;gap:7px;
	box-shadow:0 10px 22px -10px rgba(var(--gold-rgb),.6);
	transition:transform .4s cubic-bezier(.34,1.56,.64,1),box-shadow .35s var(--ease) !important;
}
.tap-svc-maint-compare-cta:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 14px 28px -10px rgba(var(--gold-rgb),.75);}
.tap-svc-maint-compare-cta svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transform:scaleX(-1);}
html[dir="ltr"] .tap-svc-maint-compare-cta svg{transform:scaleX(1);}

/* -----------------------------------------------------------
   Service Hub Hero — optional trust badge below visual
----------------------------------------------------------- */
.tap-service-hub-hero-trust-badge{
	position:relative;z-index:1;display:flex;align-items:center;gap:12px;
	background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);
	border-radius:100px;padding:10px 18px;
}
.tap-service-hub-hero-trust-badge-icon{
	flex-shrink:0;width:32px;height:32px;border-radius:50%;
	background:rgba(var(--gold-rgb),.18);color:var(--gold-light);
	display:flex;align-items:center;justify-content:center;
}
.tap-service-hub-hero-trust-badge-icon svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.tap-service-hub-hero-trust-badge-text{display:flex;flex-direction:column;gap:1px;}
.tap-service-hub-hero-trust-badge-text strong{font-size:12.5px;color:#fff;}
.tap-service-hub-hero-trust-badge-text span{font-size:11px;color:rgba(255,255,255,.6);}

/* -----------------------------------------------------------
   Service Items Grid — 2-column variant
----------------------------------------------------------- */
.tap-svc-items-grid-cols2{grid-template-columns:repeat(2,1fr);}
.tap-svc-items-grid-cols3{grid-template-columns:repeat(3,1fr);}

/* -----------------------------------------------------------
   Service Solution Process — checklist layout + note block
----------------------------------------------------------- */
.tap-svc-solution-checklist{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:30px;}
.tap-svc-solution-checklist-item{
	display:inline-flex;align-items:center;gap:9px;
	background:var(--surface);border:1px solid var(--border);border-radius:100px;
	padding:10px 18px 10px 10px;font-size:13.5px;font-weight:600;color:var(--navy-dark);
	transition:box-shadow .35s var(--ease),border-color .35s var(--ease);
}
html[dir="ltr"] .tap-svc-solution-checklist-item{padding:10px 10px 10px 18px;}
.tap-svc-solution-checklist-item:hover{box-shadow:var(--shadow-soft);border-color:rgba(var(--gold-rgb),.4);}
.tap-svc-solution-checklist-icon{
	flex-shrink:0;width:30px;height:30px;border-radius:50%;
	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;
}
.tap-svc-solution-checklist-icon svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.tap-svc-disclaimer-note{
	background:rgba(var(--navy-rgb),.06);border-color:rgba(var(--navy-rgb),.18);
}
.tap-svc-disclaimer-note .tap-svc-disclaimer-icon{color:var(--navy);}
.tap-svc-disclaimer-note strong{display:block;font-size:14px;color:var(--navy-dark);margin-bottom:4px;}

/* -----------------------------------------------------------
   Membership Verification — 60/40 text + compact data card
----------------------------------------------------------- */
.tap-mv-layout{display:grid;grid-template-columns:60fr 40fr;gap:48px;align-items:center;}
.tap-mv-text p{margin-block:14px 0;}
.tap-mv-text .tap-btn{margin-top:24px;}
.tap-mv-card{
	background:linear-gradient(165deg,var(--navy-dark) 0%,#16233a 100%);border-radius:var(--radius-lg);
	box-shadow:0 30px 70px -25px rgba(26,39,61,.5);padding:32px 28px;
}
.tap-mv-card-icon{
	display:flex;align-items:center;justify-content:center;
	width:48px;height:48px;border-radius:14px;margin-bottom:16px;
	background:rgba(var(--gold-rgb),.18);color:var(--gold-light);
}
.tap-mv-card-icon svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.tap-mv-card-company{display:block;color:#fff;font-size:16px;line-height:1.4;margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid rgba(255,255,255,.14);}
.tap-mv-card-rows{display:flex;flex-direction:column;gap:14px;}
.tap-mv-card-row{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.tap-mv-card-row span{font-size:12.5px;color:rgba(255,255,255,.6);}
.tap-mv-card-row strong{font-size:13.5px;color:#fff;text-align:end;}

/* -----------------------------------------------------------
   Service System Tabs — big accordion with rich panel content
----------------------------------------------------------- */
.tap-sys-tabs-accordion{max-width:820px;margin-inline:auto;}
.tap-sys-tab-panel p{margin-bottom:20px;}
.tap-sys-tab-points{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:20px;}
.tap-sys-tab-point{display:flex;align-items:flex-start;gap:10px;}
.tap-sys-tab-point-icon{
	flex-shrink:0;width:34px;height:34px;border-radius:10px;
	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;
}
.tap-sys-tab-point-icon svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.tap-sys-tab-point-text{display:flex;flex-direction:column;gap:2px;}
.tap-sys-tab-point-text strong{font-size:13.5px;color:var(--navy-dark);}
.tap-sys-tab-point-text span{font-size:12.5px;color:var(--text-muted);line-height:1.5;}
.tap-sys-tab-disclaimer{margin-bottom:20px;}
/* Native <button> hits the same reset.css [type=button]/button clash as
   every other button-tag CTA on this site — !important is the
   established fix pattern (see .tap-projects-hero-actions button.tap-btn). */
.tap-sys-tab-cta.tap-btn.tap-btn-primary{
	font-size:13.5px !important;padding:12px 24px !important;
	background:linear-gradient(135deg,var(--gold),#e07322) !important;color:#fff !important;
	border:none !important;border-radius:100px !important;
	box-shadow:0 16px 34px -12px rgba(var(--gold-rgb),.65) !important;
	transition:transform .4s cubic-bezier(.34,1.56,.64,1),box-shadow .35s var(--ease) !important;
}
.tap-sys-tab-cta.tap-btn.tap-btn-primary:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 22px 44px -14px rgba(var(--gold-rgb),.8) !important;}

/* -----------------------------------------------------------
   Service Solution Process — New vs Existing comparison block
----------------------------------------------------------- */
.tap-svc-compare-head{margin-top:56px;}
h3.tap-feature-grid-subhead.tap-svc-compare-head{margin-top:20px;}
.tap-svc-solution-compare{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;}
.tap-svc-solution-compare-card{
	background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);
	box-shadow:var(--shadow-soft);padding:26px 24px;
	transition:box-shadow .4s var(--ease),transform .4s var(--ease),border-color .4s var(--ease);
}
.tap-svc-solution-compare-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-4px);border-color:rgba(var(--gold-rgb),.4);}
.tap-svc-solution-compare-card strong{display:block;font-size:16px;color:var(--navy-dark);margin-bottom:10px;}
.tap-svc-solution-compare-card > p{font-size:13.5px;margin-bottom:16px;}
.tap-svc-solution-compare-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px;}
.tap-svc-solution-compare-list li{display:flex;align-items:flex-start;gap:9px;font-size:13px;color:var(--text);}
.tap-svc-solution-compare-list svg{
	flex-shrink:0;width:16px;height:16px;margin-top:2px;
	stroke:var(--gold);fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;
}

/* -----------------------------------------------------------
   Service Items Grid — scope list, full-width last card, callout bar
----------------------------------------------------------- */
.tap-svc-item-scope{margin:0 0 16px;padding-inline-start:1.1em;list-style:disc;}
.tap-svc-item-scope li{font-size:12px;color:var(--text-muted);line-height:1.7;margin-bottom:2px;}
.tap-svc-item-card-full{grid-column:1 / -1;}
.tap-svc-items-callout{
	margin-top:26px;display:flex;align-items:center;gap:20px;flex-wrap:wrap;
	background:var(--bg-alt);border-radius:var(--radius-lg);padding:24px 28px;
}
.tap-svc-items-callout-icon{
	flex-shrink:0;width:48px;height:48px;border-radius:14px;
	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;
}
.tap-svc-items-callout-icon svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.tap-svc-items-callout-text{flex:1;min-width:220px;}
.tap-svc-items-callout-text strong{display:block;font-size:15.5px;color:var(--navy-dark);margin-bottom:4px;}
.tap-svc-items-callout-text p{font-size:13px;color:var(--text-muted);margin:0;}
.tap-svc-items-callout-cta{flex-shrink:0;font-size:13px !important;padding:11px 22px !important;}
/* Native <button> hits reset.css's [type=button]/button flattening,
   same as every other button-tag CTA on this site — !important is the
   established fix pattern (see .tap-sys-tab-cta.tap-btn.tap-btn-primary). */
.tap-svc-items-callout-cta.tap-btn.tap-btn-ghost{
	background:transparent !important;color:var(--navy) !important;
	border:1.5px solid var(--border) !important;border-radius:100px !important;
	font-weight:600 !important;cursor:pointer !important;
	transition:border-color .3s var(--ease),color .3s var(--ease),background .3s var(--ease) !important;
}
.tap-svc-items-callout-cta.tap-btn.tap-btn-ghost:hover{border-color:var(--gold) !important;color:var(--gold) !important;background:rgba(var(--gold-rgb),.06) !important;}

/* -----------------------------------------------------------
   Feature Grid — optional shared CTA below the grid
----------------------------------------------------------- */
.tap-feature-grid-bottom-cta{display:flex;justify-content:center;margin-top:40px;}
.tap-feature-grid-bottom-cta button.tap-btn-primary{
	background:linear-gradient(135deg,var(--gold),#e07322) !important;color:#fff !important;
	border:none !important;border-radius:100px !important;
	box-shadow:0 16px 34px -12px rgba(var(--gold-rgb),.65) !important;
	transition:transform .4s cubic-bezier(.34,1.56,.64,1),box-shadow .35s var(--ease) !important;
}
.tap-feature-grid-bottom-cta button.tap-btn-primary:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 22px 44px -14px rgba(var(--gold-rgb),.8) !important;}

/* -----------------------------------------------------------
   Decision Cards — homepage "which path fits you?" section
----------------------------------------------------------- */
.tap-decision-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;}
.tap-decision-card{
	min-width:0;
	background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);
	padding:34px 26px;text-align:center;box-shadow:var(--shadow-soft);
	display:flex;flex-direction:column;align-items:center;
	transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s var(--ease);
}
.tap-decision-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lift);border-color:rgba(var(--gold-rgb),.4);}
.tap-decision-icon{
	width:56px;height:56px;border-radius:16px;margin-bottom:18px;
	background:linear-gradient(135deg,var(--navy),var(--navy-dark));color:#fff;
	display:flex;align-items:center;justify-content:center;
}
.tap-decision-icon svg{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.tap-decision-card h3{font-size:18px;margin-bottom:10px;}
.tap-decision-card p{font-size:13.5px;color:var(--text-muted);line-height:1.7;margin-bottom:24px;flex-grow:1;}
.tap-decision-cta{width:100%;justify-content:center;margin-top:auto;}
.tap-decision-cta.tap-btn.tap-btn-primary{
	background:linear-gradient(135deg,var(--gold),#e07322) !important;color:#fff !important;
	border:none !important;border-radius:100px !important;
	box-shadow:0 16px 34px -12px rgba(var(--gold-rgb),.65) !important;
	transition:transform .4s cubic-bezier(.34,1.56,.64,1),box-shadow .35s var(--ease) !important;
}
.tap-decision-cta.tap-btn.tap-btn-primary:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 22px 44px -14px rgba(var(--gold-rgb),.8) !important;}

/* -----------------------------------------------------------
   Decision Cards — image variant: luxury 3D flip card.
   Hover flips .tap-decision-flip-inner; .is-flipped (toggled by
   main.js on touch devices, where :hover can't drive the flip)
   does the same via JS instead of CSS :hover.
----------------------------------------------------------- */
.tap-decision-flip{min-width:0;height:410px;perspective:1800px;}
.tap-decision-flip-inner{
	position:relative;width:100%;height:100%;
	transition:transform .8s cubic-bezier(.4,.1,.2,1);
	transform-style:preserve-3d;
	border-radius:var(--radius-lg);
	box-shadow:var(--shadow-soft);
}
.tap-decision-flip:hover .tap-decision-flip-inner,
.tap-decision-flip.is-flipped .tap-decision-flip-inner{
	transform:rotateY(180deg);
	box-shadow:var(--shadow-lift);
}
.tap-decision-flip-front,.tap-decision-flip-back{
	position:absolute;inset:0;
	backface-visibility:hidden;-webkit-backface-visibility:hidden;
	border-radius:var(--radius-lg);overflow:hidden;
	display:flex;flex-direction:column;
}
.tap-decision-flip-front{
	background-size:cover;background-position:center;
	justify-content:flex-end;padding:26px 24px;
}
.tap-decision-flip-scrim{
	position:absolute;inset:0;z-index:0;
	background:linear-gradient(180deg,rgba(10,18,32,0) 34%,rgba(10,18,32,.55) 72%,rgba(10,18,32,.92) 100%);
}
.tap-decision-flip-num{
	position:absolute;top:20px;inset-inline-start:20px;z-index:2;
	width:36px;height:36px;border-radius:50%;
	background:rgba(255,255,255,.12);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
	border:1px solid rgba(255,255,255,.35);
	display:flex;align-items:center;justify-content:center;
	font-size:12.5px;font-weight:700;letter-spacing:.3px;color:#fff;
}
.tap-decision-flip-title{position:relative;z-index:2;color:#fff !important;font-size:19px;line-height:1.45;margin:0 0 14px;}
.tap-decision-flip-hint{
	position:relative;z-index:2;align-self:flex-start;
	width:36px;height:36px;border-radius:50%;
	background:var(--gold);color:#fff;
	display:flex;align-items:center;justify-content:center;
	box-shadow:0 10px 24px -10px rgba(var(--gold-rgb),.8);
	transition:transform .5s var(--ease);
}
.tap-decision-flip:hover .tap-decision-flip-hint,
.tap-decision-flip.is-flipped .tap-decision-flip-hint{transform:rotate(180deg);}
.tap-decision-flip-hint svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}

.tap-decision-flip-back{
	transform:rotateY(180deg);
	background:linear-gradient(165deg,var(--navy-dark) 0%,#16233a 55%,var(--navy-dark) 100%);
	border:1px solid rgba(var(--gold-rgb),.3);
	padding:36px 28px;align-items:center;justify-content:center;text-align:center;
}
.tap-decision-flip-back::before{
	content:'';position:absolute;top:28px;left:50%;transform:translateX(-50%);
	width:52px;height:3px;border-radius:2px;background:var(--gold);
}
.tap-decision-flip-back h3{color:#fff !important;font-size:19px;margin:14px 0 14px;}
.tap-decision-flip-back p{color:rgba(255,255,255,.72);font-size:13.5px;line-height:1.8;margin-bottom:26px;}
.tap-decision-flip-back .tap-decision-cta{width:100%;justify-content:center;}

/* -----------------------------------------------------------
   Home Request Form — "looking for a different service?" link
----------------------------------------------------------- */
.tap-hp-form-other{margin-top:18px;font-size:13px;color:var(--text-muted);}
.tap-hp-form-other a{color:var(--gold-deep);font-weight:700;text-decoration:underline;text-underline-offset:3px;margin-inline-start:4px;}

/* -----------------------------------------------------------
   Feature Grid — optional per-item indicator line
----------------------------------------------------------- */
.tap-feature-item-indicator{margin-top:14px;padding-top:14px;border-top:1px dashed var(--border);}
.tap-feature-item-indicator strong{display:block;font-size:11px;font-weight:700;color:var(--gold-deep);text-transform:uppercase;letter-spacing:.3px;margin-bottom:3px;}
.tap-feature-item-indicator span{display:block;font-size:12.5px;color:var(--text-muted);line-height:1.5;}

/* -----------------------------------------------------------
   Review / Deliverables Split — two checklist columns
----------------------------------------------------------- */
.tap-rds-flow-caption{text-align:center;font-size:13px;font-weight:700;color:var(--gold-deep);letter-spacing:.3px;margin:-8px 0 28px;}
.tap-rds-layout{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:8px;}
.tap-rds-col h3{font-size:19px;margin-bottom:20px;text-align:center;}
.tap-rds-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px;}
.tap-rds-list li{display:flex;align-items:flex-start;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 16px;}
.tap-rds-list li svg{flex-shrink:0;width:18px;height:18px;stroke:var(--gold);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-top:2px;}
.tap-rds-list li strong{display:block;font-size:14px;color:var(--navy-dark);margin-bottom:3px;}
.tap-rds-list li>span>span{display:block;font-size:12.5px;color:var(--text-muted);line-height:1.6;}
.tap-rds-disclaimer{margin-top:36px;}

/* -----------------------------------------------------------
   Service Solution Process — closing badge row
----------------------------------------------------------- */
.tap-svc-solution-badges{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:32px;}
.tap-svc-solution-badge{
	font-size:13px;font-weight:700;color:var(--navy-dark);
	background:var(--bg-alt);border:1px solid var(--border);border-radius:100px;
	padding:9px 20px;
}

/* -----------------------------------------------------------
   Timeline + Info Split — vertical numbered timeline + fixed box
----------------------------------------------------------- */
.tap-tis-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:48px;align-items:start;margin-top:40px;}
.tap-tis-timeline{display:flex;flex-direction:column;}
.tap-tis-step{display:flex;gap:20px;padding-block:18px;position:relative;}
.tap-tis-step:not(:last-child)::after{content:'';position:absolute;top:56px;bottom:-18px;inset-inline-start:19px;width:1px;background:var(--border);}
.tap-tis-step-num{
	flex-shrink:0;width:40px;height:40px;border-radius:50%;
	background:linear-gradient(135deg,var(--navy),var(--navy-dark));color:#fff;
	display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;
	position:relative;z-index:1;
}
.tap-tis-step-body h3{font-size:16.5px;margin-bottom:6px;}
.tap-tis-step-body p{font-size:13.5px;color:var(--text-muted);line-height:1.7;margin:0;}
.tap-tis-box{
	position:sticky;top:120px;background:var(--surface);border:1px solid var(--border);
	border-radius:var(--radius-lg);padding:30px 26px;box-shadow:var(--shadow-soft);
}
.tap-tis-box strong{display:block;font-size:16px;color:var(--navy-dark);margin-bottom:16px;}
.tap-tis-box ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;}
.tap-tis-box li{display:flex;align-items:flex-start;gap:10px;font-size:13.5px;color:var(--text);line-height:1.6;}
.tap-tis-box li svg{flex-shrink:0;width:18px;height:18px;stroke:var(--gold);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-top:1px;}
.tap-tis-cta{display:flex;justify-content:center;margin-top:44px;}
.tap-tis-cta button.tap-btn-primary{
	background:linear-gradient(135deg,var(--gold),#e07322) !important;color:#fff !important;
	border:none !important;border-radius:100px !important;
	box-shadow:0 16px 34px -12px rgba(var(--gold-rgb),.65) !important;
	transition:transform .4s cubic-bezier(.34,1.56,.64,1),box-shadow .35s var(--ease) !important;
}
.tap-tis-cta button.tap-btn-primary:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 22px 44px -14px rgba(var(--gold-rgb),.8) !important;}

/* -----------------------------------------------------------
   Checklist + Visual — info points list + decorative icon panel
----------------------------------------------------------- */
.tap-cv-layout{display:grid;grid-template-columns:1fr .8fr;gap:48px;align-items:center;margin-top:40px;}
.tap-cv-points{display:flex;flex-direction:column;gap:22px;}
.tap-cv-point{display:flex;gap:16px;align-items:flex-start;}
.tap-cv-point-icon{
	flex-shrink:0;width:44px;height:44px;border-radius:12px;
	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;
}
.tap-cv-point-icon svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.tap-cv-point-body h3{font-size:15.5px;margin-bottom:4px;}
.tap-cv-point-body p{font-size:13px;color:var(--text-muted);line-height:1.6;margin:0;}
.tap-cv-visual{display:flex;align-items:center;justify-content:center;}
.tap-cv-visual-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;background:var(--bg-alt);border-radius:var(--radius-lg);padding:40px;max-width:280px;}
.tap-cv-visual-icon{
	width:76px;height:76px;border-radius:18px;background:var(--surface);box-shadow:var(--shadow-soft);color:var(--navy);
	display:flex;align-items:center;justify-content:center;
}
.tap-cv-visual-icon svg{width:32px;height:32px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
.tap-cv-callout{
	margin-top:36px;max-width:640px;margin-inline:auto;text-align:center;
	background:rgba(var(--gold-rgb),.08);border:1px solid rgba(var(--gold-rgb),.25);
	border-radius:var(--radius-md);padding:18px 24px;
}
.tap-cv-callout strong{display:block;font-size:14px;color:var(--navy-dark);margin-bottom:4px;}
.tap-cv-callout p{font-size:13px;color:var(--text-muted);margin:0;}
.tap-cv-visual-flow{display:flex;align-items:center;justify-content:center;}
.tap-cv-flow{display:flex;flex-direction:column;align-items:center;}
.tap-cv-flow-node{display:flex;flex-direction:column;align-items:center;gap:8px;padding-block:10px;text-align:center;}
.tap-cv-flow-node-icon{
	width:48px;height:48px;border-radius:14px;
	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;
}
.tap-cv-flow-node-icon svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.tap-cv-flow-node span{font-size:13px;font-weight:700;color:var(--navy-dark);}
.tap-cv-flow-arrow{color:var(--gold);}
.tap-cv-flow-arrow svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.tap-cv-cta{display:flex;justify-content:center;margin-top:36px;}
.tap-cv-cta button.tap-btn-primary{
	background:linear-gradient(135deg,var(--gold),#e07322) !important;color:#fff !important;
	border:none !important;border-radius:100px !important;
	box-shadow:0 16px 34px -12px rgba(var(--gold-rgb),.65) !important;
	transition:transform .4s cubic-bezier(.34,1.56,.64,1),box-shadow .35s var(--ease) !important;
}
.tap-cv-cta button.tap-btn-primary:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 22px 44px -14px rgba(var(--gold-rgb),.8) !important;}

/* -----------------------------------------------------------
   Routing Callout — small accent-tinted routing panel
----------------------------------------------------------- */
.tap-routing-callout-panel{
	background:linear-gradient(135deg,rgba(var(--gold-rgb),.10),rgba(var(--navy-rgb),.06));
	border:1px solid rgba(var(--gold-rgb),.25);border-radius:var(--radius-lg);
	padding:40px 44px;text-align:center;
}
.tap-routing-callout-panel h2{margin-bottom:12px;}
.tap-routing-callout-panel p{max-width:640px;margin:0 auto 26px;color:var(--text-muted);font-size:14.5px;}
.tap-routing-callout-ctas{display:flex;justify-content:center;flex-wrap:wrap;gap:14px;}
.tap-routing-callout-cta-static{opacity:.55;cursor:default;}

/* -----------------------------------------------------------
   Service Duo Flow — two roles + a short horizontal flow diagram
----------------------------------------------------------- */
.tap-duo-flow-roles{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:36px;max-width:900px;margin-inline:auto;}
.tap-duo-flow-role{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px 28px;text-align:center;box-shadow:var(--shadow-soft);}
.tap-duo-flow-role-icon{
	width:52px;height:52px;border-radius:14px;margin:0 auto 16px;
	background:linear-gradient(135deg,var(--navy),var(--navy-dark));color:#fff;
	display:flex;align-items:center;justify-content:center;
}
.tap-duo-flow-role-icon svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.tap-duo-flow-role h3{font-size:20px;margin-bottom:10px;}
.tap-duo-flow-role p{font-size:14px;color:var(--text-muted);line-height:1.7;margin:0;}

.tap-duo-flow-diagram-head{text-align:center;margin-top:48px;}

.tap-duo-flow-diagram{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px;margin-top:24px;}
.tap-duo-flow-node{display:flex;flex-direction:column;align-items:center;gap:10px;width:128px;text-align:center;}
.tap-duo-flow-node-icon{
	width:56px;height:56px;border-radius:16px;
	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;
}
.tap-duo-flow-node-icon svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.tap-duo-flow-node span{font-size:12.5px;font-weight:700;color:var(--navy-dark);}
.tap-duo-flow-arrow{color:var(--gold);flex-shrink:0;}
.tap-duo-flow-arrow svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}

.tap-duo-flow-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:28px;margin-top:22px;}
.tap-duo-flow-legend-item{font-size:13.5px;color:var(--text-muted);}
.tap-duo-flow-legend-item strong{color:var(--navy-dark);font-weight:700;margin-inline-end:6px;}

.tap-duo-flow-note{max-width:640px;margin:24px auto 0;text-align:center;font-size:12.5px;color:var(--text-muted);}

/* -----------------------------------------------------------
   Compact Tiles — 5-tile comparison explainer
----------------------------------------------------------- */
.tap-compact-tiles-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;}
.tap-compact-tile{
	background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);
	padding:22px 16px;text-align:center;
	transition:box-shadow .4s var(--ease),transform .4s var(--ease),border-color .4s var(--ease);
}
.tap-compact-tile:hover{box-shadow:var(--shadow-lift);transform:translateY(-4px);border-color:rgba(var(--gold-rgb),.4);}
.tap-compact-tile-featured{
	background:linear-gradient(165deg,rgba(var(--gold-rgb),.06),var(--surface) 60%);
	border-color:rgba(var(--gold-rgb),.35);box-shadow:var(--shadow-soft);
}
.tap-compact-tile-icon{
	width:42px;height:42px;margin-inline:auto 12px auto;border-radius:12px;
	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;
}
.tap-compact-tile-featured .tap-compact-tile-icon{background:linear-gradient(135deg,var(--gold),var(--gold-light));color:#fff;}
.tap-compact-tile-icon svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.tap-compact-tile h3{font-size:14px;margin-bottom:12px;}
.tap-compact-tile-row{margin-bottom:10px;text-align:start;}
.tap-compact-tile-row:last-child{margin-bottom:0;}
.tap-compact-tile-row strong{display:block;font-size:10.5px;font-weight:700;color:var(--gold-deep);letter-spacing:.2px;margin-bottom:2px;}
.tap-compact-tile-row span{display:block;font-size:12px;color:var(--text);line-height:1.55;}
.tap-compact-tiles-disclaimer{margin-top:36px;}

/* -----------------------------------------------------------
   Responsive — per the brief's exact breakpoints
----------------------------------------------------------- */
@media (max-width:1020px){
	.tap-section{padding-block:72px;}
	.tap-cm-grid{grid-template-columns:repeat(2,1fr);}
	.tap-ss-grid{grid-template-columns:repeat(2,1fr);}
	.tap-cf-layout{grid-template-columns:1fr;gap:32px;}
	.tap-cf-intro{position:static;}
	.tap-loc-layout{grid-template-columns:1fr;gap:28px;}
	.tap-acc-grid{grid-template-columns:repeat(2,1fr);}
	.tap-blog-grid{grid-template-columns:repeat(2,1fr);}
	.tap-about-hero{padding-top:188px;}
	.tap-about-hero-inner{grid-template-columns:1fr;gap:44px;}
	.tap-about-hero-visual{min-height:340px;order:2;}
	.tap-about-intro-layout{grid-template-columns:1fr;gap:32px;}
	.tap-journey-track{flex-wrap:wrap;flex-direction:column;}
	.tap-journey-arrow{margin-top:0;transform:rotate(90deg);align-self:center;}
	.tap-journey-arrow svg{transform:scaleX(-1) rotate(180deg);}
	.tap-stats-grid{grid-template-columns:repeat(2,1fr);}
	.tap-sectors-grid{grid-template-columns:repeat(2,1fr);}
	.tap-feature-grid-row{grid-template-columns:repeat(3,1fr);}
	.tap-feature-grid-cols{grid-template-columns:repeat(2,1fr);}
	.tap-lic-teaser-layout{grid-template-columns:1fr;gap:28px;}
	.tap-lic-teaser-grid{grid-template-columns:repeat(4,1fr);}
	.tap-projects-grid{grid-template-columns:repeat(2,1fr);}
	.tap-areas-layout{grid-template-columns:1fr;gap:32px;}
	.tap-areas-radar{order:-1;max-width:340px;}
	.tap-feature-grid-cols4{grid-template-columns:repeat(2,1fr);}
	.tap-projects-hero{padding-top:188px;}
	.tap-projects-hero-inner{grid-template-columns:1fr;gap:44px;}
	.tap-projects-hero-mosaic{order:2;min-height:320px;}
	.tap-project-sectors-grid{grid-template-columns:repeat(2,1fr);}
	.tap-project-grid{grid-template-columns:repeat(2,1fr);}
	.tap-featured-project-layout{grid-template-columns:1fr;gap:32px;}
	.tap-featured-project-media{order:-1;}
	.tap-field-tiles-grid{grid-template-columns:repeat(2,1fr);}
	.tap-services-hero{padding-top:188px;}
	.tap-services-hero-inner{grid-template-columns:1fr;gap:44px;}
	.tap-services-hero-visual{min-height:320px;order:2;}
	.tap-svc-cat-grid{grid-template-columns:1fr;}
	.tap-fsb-panel{grid-template-columns:1fr;}
	.tap-fsb-media{min-height:240px;order:-1;}
	.tap-feature-grid-cols2{grid-template-columns:1fr;}
	.tap-service-hub-hero{padding-top:188px;}
	.tap-service-hub-hero-inner{grid-template-columns:1fr;gap:44px;}
	.tap-service-hub-hero-visual{min-height:280px;order:2;}
	.tap-svc-items-grid{grid-template-columns:repeat(2,1fr);}
	.tap-svc-items-grid-cols3{grid-template-columns:repeat(2,1fr);}
	.tap-svc-maint-layout{grid-template-columns:1fr;gap:36px;}
	.tap-svc-maint-checklist{grid-template-columns:1fr;}
	.tap-mv-layout{grid-template-columns:1fr;gap:32px;}
	.tap-mv-card{max-width:420px;}
	.tap-tis-layout{grid-template-columns:1fr;gap:36px;}
	.tap-tis-box{position:static;}
	.tap-cv-layout{grid-template-columns:1fr;gap:32px;}
	.tap-routing-callout-panel{padding:32px 26px;}
	.tap-rds-layout{grid-template-columns:1fr;gap:36px;}
	.tap-decision-grid{grid-template-columns:repeat(2,1fr);}
	.tap-decision-flip{height:380px;}
	.tap-feature-item-photo-flip{height:280px;}
}

@media (min-width:768px) and (max-width:1024px){
	.tap-journey-track{flex-direction:column;flex-wrap:wrap;}
	.tap-journey-stage{width:100%;}
	.tap-journey-arrow{align-self:center;margin-inline:auto;}
}

@media (max-width:640px){
	.tap-hero-contact{padding-top:188px;padding-bottom:48px;}
	.tap-decision-flip{height:360px;}
	.tap-decision-flip-front{padding:22px 20px;}
	.tap-decision-flip-back{padding:30px 22px;}
	.tap-cm-grid{grid-template-columns:1fr;}
	.tap-ss-grid{grid-template-columns:1fr;}
	.tap-ss-card{text-align:center;display:flex;flex-direction:column;align-items:center;}
	.tap-ss-card p{min-height:0;}
	.tap-cf-row{grid-template-columns:1fr;gap:0;}
	.tap-cf-form-wrap{padding:22px;}
	.tap-ql-grid{grid-template-columns:1fr;}
	.tap-acc-grid{grid-template-columns:1fr;}
	.tap-blog-grid{grid-template-columns:1fr;}
	.tap-hero-contact-actions .tap-btn,
	.tap-final-cta-actions .tap-final-cta-btn{width:100%;}
	.tap-hero-contact-actions,.tap-final-cta-actions{flex-direction:column;}
	.tap-final-cta-panel{padding:32px 22px;}
	.tap-about-hero{padding-top:188px;padding-bottom:48px;}
	.tap-about-hero-actions{flex-direction:column;}
	.tap-about-hero-actions .tap-btn{width:100%;}
	.tap-about-hero-badges{flex-direction:column;gap:16px;}
	.tap-about-hero-badge{flex:1 1 80px;}
	.tap-about-hero-visual{min-height:280px;}
	.tap-journey-arrow{display:none;}
	.tap-stats-grid{grid-template-columns:1fr;}
	.tap-sectors-grid{grid-template-columns:1fr;}
	.tap-feature-grid-row,.tap-feature-grid-cols{grid-template-columns:1fr;}
	.tap-feature-item-flip,.tap-feature-item-flip-inner{min-height:230px;}
	.tap-feature-item-photo-flip{height:260px;}
	.tap-lic-teaser-grid{grid-template-columns:repeat(3,1fr);}
	.tap-projects-grid{grid-template-columns:1fr;}
	.tap-partners-grid-static{grid-template-columns:repeat(2,1fr);}
	.tap-feature-grid-cols4{grid-template-columns:1fr;}
	.tap-projects-hero{padding-top:188px;padding-bottom:48px;}
	.tap-projects-hero-actions{flex-direction:column;}
	.tap-projects-hero-actions .tap-btn{width:100%;}
	.tap-projects-hero-mosaic{grid-template-columns:1fr 1fr;min-height:220px;}
	.tap-projects-hero-tile-1{grid-row:auto;}
	.tap-project-sectors-grid{grid-template-columns:1fr;}
	.tap-project-grid{grid-template-columns:1fr;}
	.tap-svc-items-grid,.tap-svc-items-grid-cols2,.tap-svc-items-grid-cols3{grid-template-columns:1fr;}
	.tap-duo-flow-roles{grid-template-columns:1fr;}
	.tap-duo-flow-diagram{flex-direction:column;}
	.tap-duo-flow-arrow svg{transform:rotate(90deg);}
	.tap-duo-flow-legend{gap:14px 28px;}
	.tap-tis-step{padding-block:14px;}
	.tap-tis-box{padding:24px 20px;}
	.tap-routing-callout-ctas{flex-direction:column;}
	.tap-routing-callout-ctas .tap-btn{width:100%;}
	.tap-routing-callout-panel{padding:26px 20px;}
	.tap-decision-grid{grid-template-columns:1fr;}
	.tap-sys-tab-points{grid-template-columns:1fr;}
	.tap-svc-solution-compare{grid-template-columns:1fr;}
	.tap-featured-project-thumbs{gap:8px;}
	.tap-field-tiles-grid{grid-template-columns:1fr;}
	.tap-field-tile{aspect-ratio:16/10;}
	.tap-services-hero{padding-top:188px;padding-bottom:48px;}
	.tap-services-hero-actions{flex-direction:column;}
	.tap-services-hero-actions .tap-btn{width:100%;}
	.tap-services-hero-visual{min-height:280px;padding:24px;}
	.tap-services-hero-flow{grid-template-columns:repeat(2,1fr);}
	.tap-svc-cat-card{padding:24px 20px;}
	.tap-fsb-text{padding:32px 24px;}
	.tap-fsb-media{min-height:200px;}
}

/* -----------------------------------------------------------
   Brand Logos — "we work with these brands" grid, reused per
   service (cameras, access control, ...) on hub pages.
----------------------------------------------------------- */
.tap-brand-logos-grid{
	display:grid;grid-template-columns:repeat(5,1fr);gap:20px;
}
.tap-brand-logo-tile{
	display:flex;align-items:center;justify-content:center;
	background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);
	padding:26px 20px;min-height:96px;
	box-shadow:var(--shadow-soft);
	transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s var(--ease);
}
.tap-brand-logo-tile:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift);border-color:rgba(var(--gold-rgb),.4);}
.tap-brand-logo-tile img{max-width:100%;max-height:36px;width:auto;height:auto;object-fit:contain;}

@media (max-width:1020px){
	.tap-brand-logos-grid{grid-template-columns:repeat(3,1fr);}
}
@media (max-width:640px){
	.tap-brand-logos-grid{grid-template-columns:repeat(2,1fr);gap:14px;}
	.tap-brand-logo-tile{padding:20px 16px;min-height:80px;}
	.tap-brand-logo-tile img{max-height:28px;}
}

@media (prefers-reduced-motion:reduce){
	.tap-hero-contact-icon{animation:none !important;}
	.tap-areas-pin-dot::after{animation:none !important;}
}
