/* ==========================================================================
   Hills Integrated — main stylesheet
   Palette from the logo: Hills cyan #00AFEF, slate #606062, deep ink #0F1E2E.
   ========================================================================== */

:root {
	--hi-ink: #0F1E2E;
	--hi-ink-2: #172B40;
	--hi-ink-3: #22384F;
	--hi-cyan: #00AFEF;
	--hi-cyan-2: #33C3F5;
	--hi-cyan-ink: #0072A0;
	--hi-cyan-soft: #DDF4FD;
	--hi-slate: #606062;
	--hi-text: #2A3644;
	--hi-muted: #5B6675;
	--hi-mist: #EEF4F7;
	--hi-line: #DCE6EC;
	--hi-sun: #FFB21E;
	--hi-white: #ffffff;
	--hi-on-dark: #C9D7E2;

	--hi-font-head: 'Bricolage Grotesque', 'Onest', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
	--hi-font-body: 'Onest', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

	--hi-wrap: 1240px;
	--hi-gutter: clamp(16px, 4vw, 40px);
	--hi-sec-y: clamp(72px, 9vw, 132px);
	--hi-r-lg: 28px;
	--hi-r: 18px;
	--hi-r-sm: 10px;
	--hi-ease: cubic-bezier(.2, .8, .2, 1);
	--hi-header-h: 84px;
	--hi-shadow: 0 30px 60px -32px rgba(15, 30, 46, .35);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--hi-header-h) + 16px); }
body.hi-site {
	margin: 0;
	font-family: var(--hi-font-body);
	font-size: 1.0625rem;
	line-height: 1.65;
	color: var(--hi-text);
	background: var(--hi-white);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
}
img, svg, video, iframe { max-width: 100%; }
img { height: auto; }
a { color: var(--hi-cyan-ink); text-underline-offset: .18em; text-decoration-thickness: 1px; }
a:hover { color: var(--hi-ink); }
:focus-visible { outline: 3px solid var(--hi-cyan); outline-offset: 3px; border-radius: 4px; }
::selection { background: var(--hi-cyan); color: var(--hi-ink); }

.hi-site h1, .hi-site h2, .hi-site h3, .hi-site h4, .hi-site h5,
.hi-site .elementor-heading-title {
	font-family: var(--hi-font-head);
	color: var(--hi-ink);
	font-weight: 650;
	letter-spacing: -0.02em;
	line-height: 1.08;
	margin: 0 0 .5em;
	font-variation-settings: 'wdth' 100;
}
.hi-site h1, .hi-site .elementor-widget-heading h1.elementor-heading-title { font-size: clamp(2.6rem, 6.2vw, 5.4rem); letter-spacing: -0.035em; line-height: 1.0; }
.hi-site h2, .hi-site .elementor-widget-heading h2.elementor-heading-title { font-size: clamp(2rem, 3.8vw, 3.4rem); letter-spacing: -0.03em; }
.hi-site h3, .hi-site .elementor-widget-heading h3.elementor-heading-title { font-size: clamp(1.3rem, 1.8vw, 1.6rem); letter-spacing: -0.015em; line-height: 1.2; }
.hi-site h4, .hi-site .elementor-widget-heading h4.elementor-heading-title { font-size: 1.15rem; line-height: 1.3; letter-spacing: -0.01em; }
.hi-site p { margin: 0 0 1em; }
.hi-site .elementor-widget-text-editor p:last-child, .hi-site .elementor-widget-text-editor ul:last-child { margin-bottom: 0; }

.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.hi-skip { position: absolute; left: 12px; top: -60px; z-index: 1000; background: var(--hi-cyan); color: var(--hi-ink); padding: 10px 16px; border-radius: 8px; font-weight: 600; }
.hi-skip:focus { top: 12px; }

.hi-wrap { width: 100%; max-width: calc(var(--hi-wrap) + var(--hi-gutter) * 2); margin: 0 auto; padding-left: var(--hi-gutter); padding-right: var(--hi-gutter); }
.hi-icon { display: inline-block; vertical-align: middle; flex: none; }

/* ---------- Buttons ---------- */
.hi-btn,
.hi-site .elementor-widget-button .elementor-button {
	display: inline-flex; align-items: center; justify-content: center; gap: .55em;
	min-height: 52px; padding: 0 1.6em;
	border-radius: 999px; border: 2px solid var(--hi-cyan);
	background: var(--hi-cyan); color: var(--hi-ink);
	font-family: var(--hi-font-body); font-weight: 600; font-size: 1rem; line-height: 1; letter-spacing: 0;
	text-decoration: none; cursor: pointer;
	transition: transform .35s var(--hi-ease), background-color .25s, color .25s, border-color .25s, box-shadow .35s var(--hi-ease);
	box-shadow: 0 10px 24px -14px rgba(0, 175, 239, .9);
	position: relative; overflow: hidden; isolation: isolate;
}
.hi-btn::after,
.hi-site .elementor-widget-button .elementor-button::after {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background: var(--hi-white); transform: translateY(101%); border-radius: inherit;
	transition: transform .45s var(--hi-ease);
}
.hi-btn:hover, .hi-site .elementor-widget-button .elementor-button:hover { color: var(--hi-ink); transform: translateY(-2px); box-shadow: 0 18px 30px -16px rgba(0, 175, 239, .9); }
.hi-btn:hover::after, .hi-site .elementor-widget-button .elementor-button:hover::after { transform: translateY(0); }
.hi-site .elementor-widget-button .elementor-button .elementor-button-content-wrapper { gap: .5em; }
.hi-site .elementor-button, .hi-btn { white-space: nowrap; }

.hi-btn--ghost, .hi-site .hi-b--ghost .elementor-button {
	background: transparent; color: var(--hi-white); border-color: rgba(255, 255, 255, .45); box-shadow: none;
}
.hi-btn--ghost:hover, .hi-site .hi-b--ghost .elementor-button:hover { border-color: var(--hi-white); color: var(--hi-ink); box-shadow: none; }
.hi-btn--ghost-dark, .hi-site .hi-b--ghost-dark .elementor-button {
	background: transparent; color: var(--hi-ink); border-color: var(--hi-ink); box-shadow: none;
}
.hi-btn--ghost-dark::after, .hi-site .hi-b--ghost-dark .elementor-button::after { background: var(--hi-ink); }
.hi-btn--ghost-dark:hover, .hi-site .hi-b--ghost-dark .elementor-button:hover { color: var(--hi-white); box-shadow: none; }
.hi-site .hi-b--dark .elementor-button { background: var(--hi-ink); border-color: var(--hi-ink); color: var(--hi-white); box-shadow: none; }
.hi-site .hi-b--dark .elementor-button::after { background: var(--hi-cyan); }
.hi-site .hi-b--dark .elementor-button:hover { color: var(--hi-ink); }
.hi-btn--wa { background: #25D366; border-color: #25D366; color: #08331b; box-shadow: 0 10px 24px -14px rgba(37, 211, 102, .9); }
.hi-btn--sm { min-height: 42px; padding: 0 1.15em; font-size: .95rem; }
.hi-site .hi-b--link .elementor-button {
	background: none; border: 0; box-shadow: none; padding: 0; min-height: 0; color: var(--hi-cyan-ink);
	text-decoration: underline; text-underline-offset: .25em;
}
.hi-site .hi-b--link .elementor-button::after { display: none; }
.hi-btns { display: flex; flex-wrap: wrap; gap: 12px; }

/* ---------- Header ---------- */
.hi-header {
	position: fixed; inset: 0 0 auto 0; z-index: 90;
	height: var(--hi-header-h);
	color: var(--hi-white);
	transition: background-color .35s, box-shadow .35s, height .35s var(--hi-ease), color .35s, transform .45s var(--hi-ease);
}
.admin-bar .hi-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .hi-header { top: 46px; } }
.hi-header__inner {
	height: 100%; max-width: calc(1360px + var(--hi-gutter) * 2); margin: 0 auto; padding: 0 var(--hi-gutter);
	display: flex; align-items: center; gap: 28px;
}
.hi-logo { display: inline-flex; align-items: center; flex: none; }
.hi-logo .hi-logo__img { height: 42px; width: auto; display: block; }
.hi-logo__dark { display: none; }
.hi-header.is-solid { background: rgba(255, 255, 255, .94); backdrop-filter: saturate(1.4) blur(12px); -webkit-backdrop-filter: saturate(1.4) blur(12px); box-shadow: 0 1px 0 var(--hi-line), 0 12px 30px -24px rgba(15, 30, 46, .4); color: var(--hi-ink); height: 72px; }
.hi-header.is-solid .hi-logo__light { display: none; }
.hi-header.is-solid .hi-logo__dark { display: inline-flex; }
.hi-header.is-hidden { transform: translateY(-110%); }

.hi-nav { margin-left: auto; }
.hi-nav__list, .hi-nav ul { list-style: none; margin: 0; padding: 0; }
.hi-nav > ul { display: flex; align-items: center; gap: 4px; }
.hi-nav li { position: relative; }
.hi-nav > ul > li > a {
	display: inline-flex; align-items: center; gap: 2px;
	padding: 10px 14px; border-radius: 999px;
	color: inherit; text-decoration: none; font-weight: 500; font-size: .98rem;
	transition: background-color .2s, color .2s;
}
.hi-nav > ul > li > a:hover, .hi-nav > ul > li.current-menu-item > a, .hi-nav > ul > li.current-menu-ancestor > a, .hi-nav > ul > li.current-page-ancestor > a { background: rgba(255, 255, 255, .12); }
.hi-header.is-solid .hi-nav > ul > li > a:hover, .hi-header.is-solid .hi-nav > ul > li.current-menu-item > a, .hi-header.is-solid .hi-nav > ul > li.current-menu-ancestor > a { background: var(--hi-mist); }
.hi-nav__chev { display: inline-flex; transition: transform .25s; opacity: .8; }
.hi-nav li:hover > a .hi-nav__chev, .hi-nav li:focus-within > a .hi-nav__chev { transform: rotate(180deg); }
.hi-nav .sub-menu {
	position: absolute; top: calc(100% + 8px); left: 50%; min-width: 300px;
	background: var(--hi-white); color: var(--hi-ink);
	border-radius: var(--hi-r); padding: 10px;
	box-shadow: 0 30px 60px -20px rgba(15, 30, 46, .35), 0 0 0 1px rgba(15, 30, 46, .06);
	opacity: 0; visibility: hidden; transform: translate(-50%, 8px);
	transition: opacity .25s, transform .3s var(--hi-ease), visibility .25s;
}
.hi-nav .sub-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 12px; }
.hi-nav li:hover > .sub-menu, .hi-nav li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.hi-nav .sub-menu a {
	display: flex; align-items: center; justify-content: space-between; gap: 12px;
	padding: 11px 14px; border-radius: 12px; color: var(--hi-ink); text-decoration: none; font-weight: 500;
}
.hi-nav .sub-menu a::after { content: "→"; color: var(--hi-cyan-ink); opacity: 0; transform: translateX(-6px); transition: .25s var(--hi-ease); }
.hi-nav .sub-menu a:hover { background: var(--hi-mist); }
.hi-nav .sub-menu a:hover::after { opacity: 1; transform: none; }

.hi-header__actions { display: flex; align-items: center; gap: 14px; }
.hi-header__call { display: inline-flex; align-items: center; gap: 8px; color: inherit; text-decoration: none; font-weight: 500; font-size: .95rem; }
.hi-header__call:hover { color: var(--hi-cyan); }
.hi-header.is-solid .hi-header__call:hover { color: var(--hi-cyan-ink); }
.hi-burger { display: none; width: 46px; height: 46px; border-radius: 50%; border: 1px solid currentColor; background: none; color: inherit; cursor: pointer; position: relative; }
.hi-burger i { position: absolute; left: 13px; right: 13px; height: 2px; background: currentColor; border-radius: 2px; transition: transform .35s var(--hi-ease), top .35s var(--hi-ease); }
.hi-burger i:first-of-type { top: 18px; }
.hi-burger i:last-of-type { top: 26px; right: 18px; }
.hi-burger[aria-expanded="true"] i:first-of-type { top: 22px; transform: rotate(45deg); }
.hi-burger[aria-expanded="true"] i:last-of-type { top: 22px; right: 13px; transform: rotate(-45deg); }

.hi-mobile {
	position: fixed; inset: 0; z-index: 85; background: var(--hi-ink); color: var(--hi-white);
	padding: calc(var(--hi-header-h) + 24px) var(--hi-gutter) 32px; overflow-y: auto;
	display: flex; flex-direction: column; justify-content: space-between; gap: 32px;
	clip-path: circle(0% at calc(100% - 44px) 42px); transition: clip-path .6s var(--hi-ease);
}
.hi-mobile.is-open { clip-path: circle(150% at calc(100% - 44px) 42px); }
.hi-mobile ul { list-style: none; margin: 0; padding: 0; }
.hi-mobile__list > li > a { display: block; font-family: var(--hi-font-head); font-size: clamp(1.8rem, 7vw, 2.6rem); font-weight: 600; letter-spacing: -0.02em; color: var(--hi-white); text-decoration: none; padding: 6px 0; }
.hi-mobile .sub-menu { padding: 4px 0 12px 2px; columns: 2; column-gap: 20px; }
.hi-mobile .sub-menu a { display: block; color: var(--hi-on-dark); text-decoration: none; padding: 5px 0; font-size: .98rem; }
.hi-mobile .hi-nav__chev { display: none; }
.hi-mobile__foot { display: grid; gap: 12px; }
.hi-mobile__foot .hi-socials { margin-top: 8px; }
body.hi-menu-open { overflow: hidden; }
body.hi-menu-open .hi-header { color: var(--hi-white); background: transparent; box-shadow: none; }
body.hi-menu-open .hi-header .hi-logo__light { display: inline-flex; }
body.hi-menu-open .hi-header .hi-logo__dark { display: none; }

@media (max-width: 1180px) {
	.hi-nav, .hi-header__call span { display: none; }
	.hi-burger { display: inline-block; }
	.hi-header__actions { margin-left: auto; }
}
@media (max-width: 560px) {
	:root { --hi-header-h: 70px; }
	.hi-header__actions .hi-btn { display: none; }
	.hi-logo .hi-logo__img { height: 34px; }
}

/* ---------- Generic Elementor section system ---------- */
.hi-site .e-con.hi-sec { --padding-top: var(--hi-sec-y); --padding-bottom: var(--hi-sec-y); --padding-left: var(--hi-gutter); --padding-right: var(--hi-gutter); --container-max-width: var(--hi-wrap); position: relative; }
.hi-site .e-con.hi-sec--tight { --padding-top: calc(var(--hi-sec-y) * .55); --padding-bottom: calc(var(--hi-sec-y) * .55); }
.hi-site .e-con.hi-sec--flush-top { --padding-top: 0; }
.hi-site .e-con.hi-sec--dark { background: var(--hi-ink); color: var(--hi-on-dark); }
.hi-site .e-con.hi-sec--mist { background: var(--hi-mist); }
.hi-site .e-con.hi-sec--cyan { background: var(--hi-cyan); color: var(--hi-ink); }
.hi-sec--dark .elementor-heading-title, .hi-sec--dark h2, .hi-sec--dark h3, .hi-sec--dark h4 { color: var(--hi-white); }
.hi-sec--dark a:not(.elementor-button):not(.hi-btn) { color: var(--hi-cyan-2); }
.hi-site .e-con.hi-gap-lg { --gap: clamp(32px, 5vw, 72px); --row-gap: clamp(32px, 5vw, 72px); --column-gap: clamp(32px, 5vw, 72px); }
.hi-site .e-con.hi-gap-sm { --gap: 12px; --row-gap: 12px; --column-gap: 12px; }
.hi-site .e-con.hi-center { --text-align: center; text-align: center; align-items: center; }
.hi-site .e-con.hi-center > .e-con-inner { align-items: center; }
.hi-site .e-con.hi-narrow > .e-con-inner, .hi-site .e-con-full.hi-narrow { max-width: 760px; margin-left: auto; margin-right: auto; }
.hi-site .e-con.hi-nopad { --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; }

.hi-lead, .hi-lead p { font-size: clamp(1.1rem, 1.4vw, 1.3rem); line-height: 1.55; color: var(--hi-muted); }
.hi-sec--dark .hi-lead, .hi-sec--dark .hi-lead p { color: var(--hi-on-dark); }
.hi-measure { max-width: 62ch; }
.hi-label .elementor-heading-title, .hi-label {
	font-family: var(--hi-font-body) !important; font-size: .95rem !important; font-weight: 600 !important; letter-spacing: 0 !important;
	color: var(--hi-cyan-ink) !important; display: inline-flex; align-items: center; gap: 10px; line-height: 1.3 !important;
}
.hi-label .elementor-heading-title::before, .hi-label::before { content: ""; width: 28px; height: 2px; background: currentColor; border-radius: 2px; }
.hi-sec--dark .hi-label .elementor-heading-title { color: var(--hi-cyan) !important; }
.hi-display .elementor-heading-title { font-size: clamp(2.8rem, 7.4vw, 6.4rem) !important; letter-spacing: -0.045em !important; line-height: .96 !important; font-weight: 700 !important; }

/* Elementor icon list */
.hi-site .elementor-widget-icon-list .elementor-icon-list-items { display: grid; gap: 10px; }
.hi-site .elementor-widget-icon-list .elementor-icon-list-item { align-items: flex-start !important; }
.hi-site .elementor-widget-icon-list .elementor-icon-list-icon { padding-top: 4px; }
.hi-site .elementor-widget-icon-list .elementor-icon-list-icon svg { fill: var(--hi-cyan); width: 16px; height: 16px; }
.hi-site .elementor-widget-icon-list .elementor-icon-list-icon i { color: var(--hi-cyan); }
.hi-site .elementor-widget-icon-list .elementor-icon-list-text { color: inherit; padding-left: 10px; }
.hi-ticks .elementor-icon-list-item { padding: 12px 0; border-bottom: 1px solid var(--hi-line); }
.hi-sec--dark .hi-ticks .elementor-icon-list-item { border-color: rgba(255, 255, 255, .12); }

/* Elementor toggle / accordion as FAQ */
.hi-site .elementor-widget-toggle .elementor-toggle-item { border-bottom: 1px solid var(--hi-line); }
.hi-site .elementor-widget-toggle .elementor-tab-title { border: 0 !important; padding: 22px 0 !important; font-family: var(--hi-font-head); font-size: 1.2rem; font-weight: 600; color: var(--hi-ink); display: flex; gap: 14px; align-items: center; cursor: pointer; }
.hi-site .elementor-widget-toggle .elementor-tab-title a { color: inherit; text-decoration: none; }
.hi-site .elementor-widget-toggle .elementor-toggle-icon { order: 2; margin-left: auto; color: var(--hi-cyan-ink); }
.hi-site .elementor-widget-toggle .elementor-tab-content { border: 0 !important; padding: 0 0 24px !important; color: var(--hi-muted); max-width: 70ch; }
.hi-site .elementor-widget-toggle .elementor-tab-title.elementor-active { color: var(--hi-cyan-ink); }

/* Images inside Elementor */
.hi-site .hi-img-round img { border-radius: var(--hi-r-lg); }
.hi-site .hi-img-shadow img { box-shadow: var(--hi-shadow); }

/* ==========================================================================
   HOME — hero
   ========================================================================== */
.hi-site .e-con.hi-hero {
	--padding-top: calc(var(--hi-header-h) + clamp(40px, 7vw, 96px));
	--padding-bottom: clamp(150px, 16vw, 230px);
	--padding-left: var(--hi-gutter); --padding-right: var(--hi-gutter);
	--container-max-width: 1300px;
	min-height: min(100svh, 980px);
	background:
		radial-gradient(1100px 600px at 85% 15%, rgba(0, 175, 239, .20), transparent 60%),
		radial-gradient(800px 500px at 0% 100%, rgba(0, 175, 239, .10), transparent 60%),
		var(--hi-ink);
	color: var(--hi-on-dark);
	overflow: hidden;
}
.hi-hero .elementor-heading-title { color: var(--hi-white); }
.hi-site .hi-hero h1.elementor-heading-title { font-size: clamp(2.6rem, 5.4vw, 4.9rem); font-weight: 700; letter-spacing: -0.045em; line-height: .98; }
.hi-hero__copy .hi-lead p { color: #B9CAD8; max-width: 34em; }
.hi-site .e-con.hi-hero__copy { --gap: 28px; position: relative; z-index: 2; }
.hi-site .e-con.hi-hero__art { position: relative; z-index: 1; }
.hi-hero__chips ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.hi-hero__chips li { border: 1px solid rgba(255, 255, 255, .16); border-radius: 999px; padding: 6px 14px; font-size: .9rem; color: #D7E3EC; background: rgba(255, 255, 255, .04); }
.hi-hero__chips li:first-child { border-color: rgba(0, 175, 239, .6); color: var(--hi-white); }

/* Layered hills at the bottom of dark heroes */
.hi-hills { position: absolute; left: 0; right: 0; bottom: -1px; height: clamp(120px, 15vw, 220px); pointer-events: none; z-index: 1; }
.hi-hills svg { position: absolute; left: -5%; width: 110%; max-width: none; overflow: visible; bottom: 0; height: 100%; display: block; }
.hi-hills .l1 { color: #1A3550; }
.hi-hills .l2 { color: #13283D; }
.hi-hills .l3 { color: var(--hi-white); }
.hi-hills--mist .l3 { color: var(--hi-mist); }

/* Summit illustration */
.hi-summit { width: 100%; max-width: 640px; margin-left: auto; aspect-ratio: 600 / 500; position: relative; }
.hi-summit svg { width: 100%; height: 100%; overflow: visible; }
.hi-summit .contour { fill: none; stroke: rgba(0, 175, 239, .16); stroke-width: 1.2; }
.hi-summit .ridge { fill: none; stroke: var(--hi-cyan); stroke-width: 3.5; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1400; stroke-dashoffset: 1400; animation: hi-draw 2.4s .3s var(--hi-ease) forwards; filter: drop-shadow(0 0 12px rgba(0, 175, 239, .5)); }
.hi-summit .ridge-2 { fill: none; stroke: #8C8C8F; stroke-width: 2.5; stroke-linecap: round; stroke-dasharray: 1400; stroke-dashoffset: 1400; animation: hi-draw 2.6s .1s var(--hi-ease) forwards; opacity: .7; }
.hi-summit .fill { fill: url(#hiSummitFill); opacity: 0; animation: hi-fade 1.2s 1.4s forwards; }
.hi-summit .node circle { fill: var(--hi-ink); stroke: var(--hi-cyan); stroke-width: 3; }
.hi-summit .node .pulse { fill: var(--hi-cyan); opacity: .35; transform-box: fill-box; transform-origin: center; animation: hi-pulse 2.8s infinite; }
.hi-summit .node { opacity: 0; animation: hi-pop .6s var(--hi-ease) forwards; }
.hi-summit .node text { font-family: var(--hi-font-body); font-size: 15px; font-weight: 600; fill: var(--hi-white); }
.hi-summit .node rect { fill: rgba(255, 255, 255, .07); stroke: rgba(255, 255, 255, .18); }
.hi-summit .link { fill: none; stroke: rgba(0, 175, 239, .55); stroke-width: 1.4; stroke-dasharray: 4 6; opacity: 0; animation: hi-fade .8s 2.4s forwards, hi-dash 18s linear infinite; }
.hi-summit .peak { opacity: 0; animation: hi-pop .8s 2.3s var(--hi-ease) forwards; transform-box: fill-box; transform-origin: center bottom; }
.hi-summit .peak circle { fill: var(--hi-cyan); }
.hi-summit .peak text { font-family: var(--hi-font-head); font-weight: 700; font-size: 18px; fill: var(--hi-ink); }
.hi-summit .flag { fill: var(--hi-sun); transform-origin: left center; transform-box: fill-box; animation: hi-flag 2.2s ease-in-out infinite; }
@keyframes hi-draw { to { stroke-dashoffset: 0; } }
@keyframes hi-fade { to { opacity: 1; } }
@keyframes hi-pop { from { opacity: 0; transform: translateY(10px) scale(.9); } to { opacity: 1; transform: none; } }
@keyframes hi-pulse { 0% { transform: scale(1); opacity: .45; } 70% { transform: scale(2.6); opacity: 0; } 100% { opacity: 0; } }
@keyframes hi-dash { to { stroke-dashoffset: -400; } }
@keyframes hi-flag { 0%, 100% { transform: skewY(0deg) scaleX(1); } 50% { transform: skewY(-6deg) scaleX(.86); } }

/* ---------- Client marquee ---------- */
.hi-marquee { overflow: hidden; mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
.hi-marquee__track { display: flex; width: max-content; gap: 64px; animation: hi-marquee 38s linear infinite; padding: 6px 0; }
.hi-marquee:hover .hi-marquee__track { animation-play-state: paused; }
.hi-marquee__item { font-family: var(--hi-font-head); font-size: clamp(1.3rem, 2.4vw, 2rem); font-weight: 600; letter-spacing: -0.02em; color: #9AA7B4; white-space: nowrap; display: inline-flex; align-items: center; gap: 64px; }
.hi-marquee__item::after { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--hi-cyan); opacity: .7; }
@keyframes hi-marquee { to { transform: translateX(-50%); } }

/* ---------- Services index ---------- */
.hi-svc { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--hi-line); position: relative; }
.hi-svc__row { border-bottom: 1px solid var(--hi-line); }
.hi-svc__link {
	display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) 56px; align-items: center; gap: 24px;
	padding: clamp(22px, 3vw, 34px) 0; text-decoration: none; color: var(--hi-ink); position: relative;
}
.hi-svc__link::before { content: ""; position: absolute; inset: 0 -20px; background: var(--hi-mist); border-radius: 18px; transform: scaleY(.6); opacity: 0; transition: .45s var(--hi-ease); z-index: -1; }
.hi-svc__link:hover::before, .hi-svc__link:focus-visible::before { transform: none; opacity: 1; }
.hi-svc__name { font-family: var(--hi-font-head); font-size: clamp(1.6rem, 3.1vw, 2.7rem); font-weight: 600; letter-spacing: -0.03em; line-height: 1.05; transition: transform .45s var(--hi-ease); }
.hi-svc__link:hover .hi-svc__name { transform: translateX(12px); }
.hi-svc__desc { color: var(--hi-muted); font-size: 1rem; line-height: 1.5; }
.hi-svc__go { width: 56px; height: 56px; border-radius: 50%; border: 1px solid var(--hi-line); display: grid; place-items: center; color: var(--hi-ink); transition: .4s var(--hi-ease); }
.hi-svc__link:hover .hi-svc__go { background: var(--hi-cyan); border-color: var(--hi-cyan); transform: rotate(-45deg); }
.hi-svc__peek { position: fixed; left: 0; top: 0; width: 280px; aspect-ratio: 4/3; border-radius: 18px; overflow: hidden; pointer-events: none; z-index: 40; opacity: 0; transform: translate(-50%, -50%) scale(.7) rotate(-6deg); transition: opacity .3s, transform .45s var(--hi-ease); box-shadow: var(--hi-shadow); }
.hi-svc__peek.is-on { opacity: 1; transform: translate(-50%, -50%) scale(1) rotate(-3deg); }
.hi-svc__peek img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 760px) {
	.hi-svc__link { grid-template-columns: 1fr 44px; }
	.hi-svc__desc { grid-column: 1 / -1; grid-row: 2; }
	.hi-svc__go { width: 44px; height: 44px; grid-column: 2; grid-row: 1; }
	.hi-svc__peek { display: none; }
}

/* ---------- Integration diagram ---------- */
.hi-integrate { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(16px, 3vw, 32px); }
.hi-integrate__panel { border-radius: var(--hi-r-lg); padding: clamp(24px, 3vw, 40px); position: relative; overflow: hidden; }
.hi-integrate__panel--before { background: var(--hi-white); border: 1px dashed #BCCBD6; }
.hi-integrate__panel--after { background: var(--hi-ink); color: var(--hi-on-dark); }
.hi-integrate__panel h3 { font-size: 1.35rem; margin-bottom: .35em; }
.hi-integrate__panel--after h3 { color: var(--hi-white); }
.hi-integrate__panel p { margin: 0; font-size: .98rem; }
.hi-integrate__fig { margin-top: 24px; aspect-ratio: 16 / 10; }
.hi-integrate__fig svg { width: 100%; height: 100%; overflow: visible; }
.hi-integrate .v-box rect { fill: var(--hi-mist); stroke: #C8D5DE; }
.hi-integrate .v-box text, .hi-integrate .o-box text { font: 600 13px var(--hi-font-body); fill: var(--hi-ink); }
.hi-integrate .tangle { fill: none; stroke: #E0645B; stroke-width: 1.6; stroke-dasharray: 5 5; }
.hi-integrate .you circle { fill: var(--hi-ink); }
.hi-integrate .you text { font: 700 13px var(--hi-font-body); fill: #fff; }
.hi-integrate .o-box rect { fill: rgba(255, 255, 255, .06); stroke: rgba(0, 175, 239, .5); }
.hi-integrate .o-box text { fill: #E6F0F6; }
.hi-integrate .flow { fill: none; stroke: var(--hi-cyan); stroke-width: 2.5; stroke-linecap: round; stroke-dasharray: 600; stroke-dashoffset: 600; }
.hi-integrate .hub circle { fill: var(--hi-cyan); }
.hi-integrate .hub text { font: 700 13px var(--hi-font-body); fill: var(--hi-ink); }
.hi-integrate .is-in .flow, .hi-no-anim .hi-integrate .flow { animation: hi-draw 1.8s var(--hi-ease) forwards; }
.hi-integrate .is-in .tangle { animation: hi-dash 14s linear infinite; }
.hi-integrate .x { font: 700 12px var(--hi-font-body); fill: #C2453C; }
@media (max-width: 860px) { .hi-integrate { grid-template-columns: 1fr; } }

/* ---------- Stats ---------- */
.hi-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border-top: 1px solid rgba(255, 255, 255, .14); }
.hi-stats__item { padding: 28px 24px 0 0; }
.hi-stats__item + .hi-stats__item { padding-left: 24px; border-left: 1px solid rgba(255, 255, 255, .14); }
.hi-stats__num { font-family: var(--hi-font-head); font-size: clamp(2.6rem, 5vw, 4.2rem); font-weight: 700; letter-spacing: -0.04em; color: var(--hi-white); line-height: 1; display: block; }
.hi-stats__num sup { font-size: .45em; color: var(--hi-cyan); top: -1em; margin-left: 2px; }
.hi-stats__label { display: block; margin-top: 10px; color: var(--hi-on-dark); font-size: .98rem; max-width: 22ch; }
@media (max-width: 760px) {
	.hi-stats { grid-template-columns: 1fr 1fr; }
	.hi-stats__item:nth-child(3) { border-left: 0; padding-left: 0; }
	.hi-stats__item { padding-bottom: 20px; }
}

/* ---------- Showreel ---------- */
.hi-reel { position: relative; border-radius: var(--hi-r-lg); overflow: hidden; background: #000; aspect-ratio: 16 / 9; box-shadow: 0 50px 100px -40px rgba(0, 0, 0, .7); }
.hi-reel video { width: 100%; height: 100%; object-fit: cover; display: block; }
.hi-reel__play {
	position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
	width: clamp(84px, 11vw, 132px); aspect-ratio: 1; border-radius: 50%; border: 0; cursor: pointer;
	background: var(--hi-cyan); color: var(--hi-ink); display: grid; place-items: center;
	box-shadow: 0 0 0 0 rgba(0, 175, 239, .6); animation: hi-ring 2.4s infinite; transition: transform .4s var(--hi-ease);
}
.hi-reel__play:hover { transform: translate(-50%, -50%) scale(1.08); }
.hi-reel__play svg { width: 34%; height: 34%; margin-left: 6%; }
.hi-reel__cap { position: absolute; left: 24px; bottom: 20px; color: #fff; font-weight: 600; font-size: .95rem; display: flex; gap: 10px; align-items: center; text-shadow: 0 2px 10px rgba(0, 0, 0, .5); }
.hi-reel__cap::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: #FF4D4D; animation: hi-blink 1.4s infinite; }
@keyframes hi-ring { 0% { box-shadow: 0 0 0 0 rgba(0, 175, 239, .55); } 80%, 100% { box-shadow: 0 0 0 34px rgba(0, 175, 239, 0); } }
@keyframes hi-blink { 50% { opacity: .2; } }

/* ---------- Work grid ---------- */
.hi-filter { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 36px; }
.hi-filter button, .hi-filter a {
	border: 1px solid var(--hi-line); background: var(--hi-white); color: var(--hi-ink);
	border-radius: 999px; padding: 10px 18px; font: 500 .95rem var(--hi-font-body); cursor: pointer; text-decoration: none; transition: .2s;
}
.hi-filter button:hover, .hi-filter a:hover { border-color: var(--hi-ink); }
.hi-filter .is-active { background: var(--hi-ink); border-color: var(--hi-ink); color: var(--hi-white); }
.hi-work__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(20px, 2.6vw, 36px); }
.hi-work__item { grid-column: span 6; }
.hi-work--grid .hi-work__item:nth-child(4n+1), .hi-work--grid .hi-work__item:nth-child(4n+4) { grid-column: span 7; }
.hi-work--grid .hi-work__item:nth-child(4n+2), .hi-work--grid .hi-work__item:nth-child(4n+3) { grid-column: span 5; }
.hi-work__item.is-hidden { display: none; }
.hi-work__link { display: block; text-decoration: none; color: var(--hi-ink); }
.hi-work__media { position: relative; border-radius: var(--hi-r-lg); overflow: hidden; background: var(--hi-mist); aspect-ratio: 16 / 11; }
.hi-work__item.is-website .hi-work__media { padding-top: 34px; background: #E3EBF1; }
.hi-work__bar { position: absolute; top: 0; left: 0; right: 0; height: 34px; display: flex; align-items: center; gap: 6px; padding: 0 16px; }
.hi-work__bar i { width: 10px; height: 10px; border-radius: 50%; background: #C3CFD9; }
.hi-work__bar i:first-child { background: #FF6B5E; } .hi-work__bar i:nth-child(2) { background: #FFC53D; } .hi-work__bar i:nth-child(3) { background: #3BD16F; }
.hi-work__media img { width: 100%; height: 100%; object-fit: cover; object-position: top; display: block; transition: transform 1.1s var(--hi-ease), object-position 4s ease; }
.hi-work__link:hover .hi-work__media img { transform: scale(1.035); }
.hi-work__item.is-website .hi-work__link:hover .hi-work__media img { transform: none; object-position: bottom; }
.hi-work__meta { padding: 18px 4px 0; }
.hi-work__type { display: block; font-size: .88rem; color: var(--hi-cyan-ink); font-weight: 600; }
.hi-work__title { font-size: clamp(1.35rem, 2vw, 1.8rem) !important; margin: 4px 0 6px !important; display: inline-flex; gap: 10px; align-items: center; }
.hi-work__title::after { content: "→"; color: var(--hi-cyan-ink); transform: translateX(-8px); opacity: 0; transition: .35s var(--hi-ease); }
.hi-work__link:hover .hi-work__title::after { transform: none; opacity: 1; }
.hi-work__sum { color: var(--hi-muted); margin: 0; font-size: .98rem; max-width: 52ch; }
.hi-sec--dark .hi-work__link, .hi-sec--dark .hi-work__title { color: var(--hi-white); }
.hi-sec--dark .hi-work__sum { color: var(--hi-on-dark); }
.hi-sec--dark .hi-work__type { color: var(--hi-cyan); }
@media (max-width: 860px) { .hi-work__grid .hi-work__item { grid-column: 1 / -1 !important; } }

/* ---------- Process steps ---------- */
.hi-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 24px; position: relative; counter-reset: step; }
.hi-steps::before { content: ""; position: absolute; left: 0; right: 0; top: 27px; height: 2px; background: var(--hi-line); }
.hi-steps__line { position: absolute; left: 0; top: 27px; height: 2px; width: 100%; background: var(--hi-cyan); transform-origin: left; transform: scaleX(0); }
.hi-sec--dark .hi-steps::before { background: rgba(255, 255, 255, .14); }
.hi-steps li { position: relative; padding-top: 76px; counter-increment: step; }
.hi-steps li::before {
	content: counter(step, decimal-leading-zero); position: absolute; top: 0; left: 0;
	width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center;
	background: var(--hi-white); border: 2px solid var(--hi-cyan); color: var(--hi-ink);
	font: 700 1rem var(--hi-font-head); transition: background-color .4s, transform .4s var(--hi-ease);
}
.hi-sec--dark .hi-steps li::before { background: var(--hi-ink); color: var(--hi-white); }
.hi-steps li.is-lit::before { background: var(--hi-cyan); color: var(--hi-ink); transform: scale(1.06); }
.hi-steps h3 { font-size: 1.25rem !important; margin-bottom: .4em !important; }
.hi-steps p { color: var(--hi-muted); font-size: .98rem; margin: 0; }
.hi-sec--dark .hi-steps p { color: var(--hi-on-dark); }
.hi-steps--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
@media (max-width: 960px) {
	.hi-steps, .hi-steps--6 { grid-template-columns: 1fr; gap: 0; }
	.hi-steps::before, .hi-steps__line { left: 27px; right: auto; top: 0; bottom: 0; width: 2px; height: auto; }
	.hi-steps__line { transform-origin: top; transform: scaleY(0); height: 100%; }
	.hi-steps li { padding: 0 0 36px 84px; min-height: 56px; }
}

/* ---------- Testimonials ---------- */
.hi-quotes { position: relative; }
.hi-quotes__track { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(300px, 42%); gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 6px 2px 20px; outline: none; }
.hi-quotes__track::-webkit-scrollbar { display: none; }
.hi-quote { scroll-snap-align: start; margin: 0; background: var(--hi-white); border-radius: var(--hi-r-lg); padding: clamp(24px, 3vw, 40px); display: flex; flex-direction: column; gap: 18px; border: 1px solid var(--hi-line); }
.hi-sec--dark .hi-quote { background: var(--hi-ink-2); border-color: rgba(255, 255, 255, .08); }
.hi-quote__stars { color: var(--hi-sun); display: flex; gap: 3px; }
.hi-quote blockquote { margin: 0; font-family: var(--hi-font-head); font-size: clamp(1.15rem, 1.6vw, 1.4rem); line-height: 1.4; color: var(--hi-ink); letter-spacing: -0.01em; font-weight: 500; flex: 1; }
.hi-quote blockquote p { margin: 0; }
.hi-sec--dark .hi-quote blockquote { color: var(--hi-white); }
.hi-quote figcaption { display: flex; align-items: center; gap: 14px; }
.hi-quote figcaption strong { display: block; color: var(--hi-ink); }
.hi-sec--dark .hi-quote figcaption strong { color: var(--hi-white); }
.hi-quote figcaption small { color: var(--hi-muted); font-size: .9rem; }
.hi-sec--dark .hi-quote figcaption small { color: var(--hi-on-dark); }
.hi-quote__avatar { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
.hi-quote__avatar--initial { display: grid; place-items: center; background: var(--hi-cyan); color: var(--hi-ink); font: 700 1.2rem var(--hi-font-head); }
.hi-quotes__nav { display: flex; gap: 10px; margin-top: 16px; }
.hi-quotes__btn { width: 52px; height: 52px; border-radius: 50%; border: 1px solid var(--hi-line); background: var(--hi-white); color: var(--hi-ink); cursor: pointer; display: grid; place-items: center; transition: .25s; }
.hi-quotes__btn:hover { background: var(--hi-ink); color: var(--hi-white); border-color: var(--hi-ink); }
.hi-sec--dark .hi-quotes__btn { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .25); }
@media (max-width: 700px) { .hi-quotes__track { grid-auto-columns: 88%; } }

/* ---------- Blog cards ---------- */
.hi-posts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 2.6vw, 36px); }
.hi-card { display: flex; flex-direction: column; }
.hi-card__media { display: block; border-radius: var(--hi-r); overflow: hidden; aspect-ratio: 16 / 10; background: var(--hi-mist); }
.hi-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .9s var(--hi-ease); }
.hi-card:hover .hi-card__media img { transform: scale(1.05); }
.hi-card__body { padding-top: 18px; display: flex; flex-direction: column; flex: 1; }
.hi-card__meta { display: flex; gap: 14px; align-items: center; font-size: .88rem; color: var(--hi-muted); margin: 0 0 8px !important; }
.hi-card__cat { color: var(--hi-cyan-ink); font-weight: 600; }
.hi-card__title { font-size: 1.35rem !important; margin: 0 0 8px !important; line-height: 1.2 !important; }
.hi-card__title a { color: var(--hi-ink); text-decoration: none; background: linear-gradient(var(--hi-cyan), var(--hi-cyan)) 0 100% / 0 2px no-repeat; transition: background-size .45s var(--hi-ease); }
.hi-card:hover .hi-card__title a { background-size: 100% 2px; }
.hi-card__excerpt { color: var(--hi-muted); font-size: .98rem; margin: 0 0 12px !important; }
.hi-card__more { margin-top: auto; font-size: .88rem; color: var(--hi-muted); }
@media (max-width: 960px) { .hi-posts { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .hi-posts { grid-template-columns: 1fr; } }

/* ---------- CTA band ---------- */
.hi-site .e-con.hi-cta { background: var(--hi-cyan); color: var(--hi-ink); border-radius: var(--hi-r-lg); --padding-top: clamp(40px, 6vw, 80px); --padding-bottom: clamp(40px, 6vw, 80px); --padding-left: clamp(24px, 5vw, 72px); --padding-right: clamp(24px, 5vw, 72px); overflow: hidden; position: relative; }
.hi-cta .elementor-heading-title { color: var(--hi-ink); }
.hi-cta .hi-lead p { color: #0E3A52; }
.hi-cta::after { content: ""; position: absolute; right: -60px; bottom: -40px; width: 520px; height: 260px; background: url('../img/ridge-ink.svg') no-repeat right bottom / contain; opacity: .14; pointer-events: none; }
.hi-site .hi-cta .elementor-widget-button .elementor-button { background: var(--hi-ink); border-color: var(--hi-ink); color: var(--hi-white); box-shadow: none; }
.hi-site .hi-cta .elementor-widget-button .elementor-button::after { background: var(--hi-white); }
.hi-site .hi-cta .elementor-widget-button .elementor-button:hover { color: var(--hi-ink); }
.hi-site .hi-cta .hi-b--ghost-dark .elementor-button { background: transparent; color: var(--hi-ink); }
.hi-site .hi-cta .hi-b--ghost-dark .elementor-button::after { background: var(--hi-ink); }
.hi-site .hi-cta .hi-b--ghost-dark .elementor-button:hover { color: var(--hi-white); }
.hi-cta .hi-btn--ghost { color: var(--hi-ink); border-color: var(--hi-ink); }
.hi-cta .hi-btn--ghost::after { background: var(--hi-ink); }
.hi-cta .hi-btn--ghost:hover { color: var(--hi-white); }

/* ---------- Feature blocks (services overview / values) ---------- */
.hi-site .e-con.hi-panel { background: var(--hi-white); border: 1px solid var(--hi-line); border-radius: var(--hi-r-lg); --padding-top: clamp(24px, 3vw, 40px); --padding-bottom: clamp(24px, 3vw, 40px); --padding-left: clamp(24px, 3vw, 40px); --padding-right: clamp(24px, 3vw, 40px); transition: transform .5s var(--hi-ease), box-shadow .5s var(--hi-ease), border-color .3s; }
.hi-site .e-con.hi-panel:hover { transform: translateY(-4px); box-shadow: var(--hi-shadow); border-color: transparent; }
.hi-sec--mist .e-con.hi-panel { border-color: transparent; }
.hi-site .e-con.hi-panel--dark { background: var(--hi-ink-2); border-color: rgba(255, 255, 255, .08); color: var(--hi-on-dark); }
.hi-panel--dark .elementor-heading-title { color: var(--hi-white); }
.hi-panel .elementor-widget-image img { border-radius: 14px; }
.hi-glyph { width: 56px; height: 56px; border-radius: 16px; background: var(--hi-cyan-soft); color: var(--hi-cyan-ink); display: grid; place-items: center; }
.hi-glyph svg { width: 28px; height: 28px; }
.hi-sec--dark .hi-glyph, .hi-panel--dark .hi-glyph { background: rgba(0, 175, 239, .14); color: var(--hi-cyan); }

/* Service overview rows (Services page) */
.hi-site .e-con.hi-svc-block { border-top: 1px solid var(--hi-line); --padding-top: clamp(40px, 5vw, 72px); --padding-bottom: clamp(40px, 5vw, 72px); }
.hi-svc-block .hi-ticks { columns: 2; column-gap: 28px; }
.hi-svc-block .hi-ticks .elementor-icon-list-items { display: block; }
.hi-svc-block .hi-ticks .elementor-icon-list-item { break-inside: avoid; }
@media (max-width: 700px) { .hi-svc-block .hi-ticks { columns: 1; } }

.hi-svc-links { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; border-top: 1px solid var(--hi-line); }
.hi-svc-links li { border-bottom: 1px solid var(--hi-line); }
.hi-svc-links a { display: flex; justify-content: space-between; align-items: center; padding: 18px 2px; text-decoration: none; color: var(--hi-ink); font: 600 1.15rem var(--hi-font-head); transition: padding .35s var(--hi-ease), color .2s; }
.hi-svc-links a:hover { padding-left: 12px; color: var(--hi-cyan-ink); }
.hi-sec--dark .hi-svc-links, .hi-sec--dark .hi-svc-links li { border-color: rgba(255, 255, 255, .14); }
.hi-sec--dark .hi-svc-links a { color: var(--hi-white); }

/* Page hero for Elementor inner pages */
.hi-site .e-con.hi-pagehero {
	--padding-top: calc(var(--hi-header-h) + clamp(48px, 7vw, 110px)); --padding-bottom: clamp(120px, 13vw, 190px);
	--padding-left: var(--hi-gutter); --padding-right: var(--hi-gutter); --container-max-width: var(--hi-wrap);
	background: radial-gradient(900px 500px at 90% 0%, rgba(0, 175, 239, .18), transparent 60%), var(--hi-ink);
	color: var(--hi-on-dark); overflow: hidden;
}
.hi-pagehero .elementor-heading-title { color: var(--hi-white); }
.hi-pagehero .hi-lead p { color: #B9CAD8; }
.hi-pagehero .hi-art { position: relative; z-index: 2; }
.hi-pagehero .hi-art img, .hi-pagehero .hi-art svg { border-radius: var(--hi-r-lg); }
.hi-crumb { font-size: .95rem; color: #9FB2C2; }
.hi-crumb a { color: var(--hi-cyan-2); text-decoration: none; }

/* ---------- Contact ---------- */
.hi-contact { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.hi-contact li { display: flex; gap: 14px; align-items: flex-start; }
.hi-contact .hi-icon { color: var(--hi-cyan); margin-top: 2px; }
.hi-contact a, .hi-contact span { color: inherit; text-decoration: none; }
.hi-contact a:hover { color: var(--hi-cyan-ink); text-decoration: underline; }
.hi-sec--dark .hi-contact a:hover { color: var(--hi-cyan-2); }
.hi-map { border-radius: var(--hi-r-lg); overflow: hidden; aspect-ratio: 16 / 8; background: var(--hi-mist); }
.hi-map iframe { width: 100%; height: 100%; border: 0; display: block; filter: grayscale(.4) contrast(1.05); }
.hi-socials { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.hi-socials a { width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; color: inherit; border: 1px solid currentColor; opacity: .85; transition: .25s; }
.hi-socials a:hover { background: var(--hi-cyan); border-color: var(--hi-cyan); color: var(--hi-ink); opacity: 1; transform: translateY(-2px); }

/* ---------- Forms (Fluent Forms) ---------- */
.hi-form .fluentform .ff-el-group { margin-bottom: 18px; }
.hi-form .fluentform .ff-el-input--label label { font-weight: 600; font-size: .95rem; color: var(--hi-ink); }
.hi-form .fluentform .ff-el-form-control,
.hi-form .fluentform select.ff-el-form-control {
	border: 1.5px solid #CBD7E0; border-radius: 14px; min-height: 54px; padding: 12px 16px;
	font: 400 1rem var(--hi-font-body); color: var(--hi-ink); background: var(--hi-white);
	transition: border-color .2s, box-shadow .2s; box-shadow: none;
}
.hi-form .fluentform textarea.ff-el-form-control { min-height: 140px; }
.hi-form .fluentform .ff-el-form-control:hover { border-color: #9FB3C1; }
.hi-form .fluentform .ff-el-form-control:focus { border-color: var(--hi-cyan); box-shadow: 0 0 0 4px rgba(0, 175, 239, .18); outline: none; }
.hi-form .fluentform .ff-el-form-control::placeholder { color: #8A97A5; }
.hi-form .fluentform .ff-el-form-check { margin-bottom: 0; }
.hi-form .fluentform .ff-el-input--content .ff-el-form-check { display: inline-block; margin: 0 8px 8px 0; }
.hi-form .fluentform .ff-el-form-check-label { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border: 1.5px solid #CBD7E0; border-radius: 999px; cursor: pointer; transition: .2s; font-size: .95rem; background: var(--hi-white); }
.hi-form .fluentform .ff-el-form-check-label:hover { border-color: var(--hi-ink); }
.hi-form .fluentform .ff-el-form-check input { accent-color: var(--hi-cyan); }
.hi-form .fluentform .ff_item_selected .ff-el-form-check-label, .hi-form .fluentform .ff-el-form-check-label:has(input:checked) { border-color: var(--hi-cyan); background: var(--hi-cyan-soft); }
.hi-form .fluentform .ff-el-tc .ff-el-form-check-label, .hi-form .fluentform .ff_gdpr_field .ff-el-form-check-label { border: 0; padding: 0; background: none; border-radius: 0; font-size: .9rem; color: var(--hi-muted); align-items: flex-start; }
.hi-form .fluentform .ff-btn-submit {
	background: var(--hi-ink) !important; color: var(--hi-white) !important; border: 0 !important;
	border-radius: 999px !important; min-height: 56px; padding: 0 2em !important;
	font: 600 1.02rem var(--hi-font-body) !important; cursor: pointer; transition: transform .35s var(--hi-ease), background-color .25s !important;
}
.hi-form .fluentform .ff-btn-submit:hover { background: var(--hi-cyan) !important; color: var(--hi-ink) !important; transform: translateY(-2px); }
.hi-form .fluentform .ff-el-is-error .ff-el-form-control { border-color: #D9473D; }
.hi-form .fluentform .error, .hi-form .fluentform .text-danger { color: #C23A30; font-size: .88rem; margin-top: 6px; }
.hi-form .ff-message-success { border: 0; border-radius: var(--hi-r); background: var(--hi-cyan-soft); color: var(--hi-ink); padding: 24px 28px; box-shadow: none; font-size: 1.05rem; }
.hi-form .ff-message-success::before { content: "✓"; display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--hi-cyan); color: var(--hi-ink); font-weight: 700; margin-right: 12px; }
.hi-form .ff-el-help-message { color: var(--hi-muted); font-size: .85rem; }
.hi-form .fluentform .ff-el-section-break .ff-el-section-title { font: 600 1.1rem var(--hi-font-head); color: var(--hi-ink); margin-top: 8px; }
.hi-form .fluentform .ff-el-section-break hr { border: 0; border-top: 1px solid var(--hi-line); }
.hi-form--missing { padding: 20px; border-radius: var(--hi-r); background: var(--hi-mist); color: var(--hi-text); }
.hi-footer .hi-form--missing { background: rgba(255,255,255,.06); color: var(--hi-on-dark); }
.hi-footer .hi-form--missing a { color: var(--hi-cyan-2); }
.hi-site .e-con.hi-formcard { background: var(--hi-white); border-radius: var(--hi-r-lg); box-shadow: 0 40px 80px -40px rgba(15, 30, 46, .35); --padding-top: clamp(24px, 4vw, 52px); --padding-bottom: clamp(24px, 4vw, 52px); --padding-left: clamp(20px, 4vw, 52px); --padding-right: clamp(20px, 4vw, 52px); }
/* Newsletter inline form */
.hi-form--newsletter .fluentform form { display: flex; gap: 10px; flex-wrap: wrap; align-items: flex-start; }
.hi-form--newsletter .fluentform .ff-el-group { margin: 0; flex: 1 1 200px; }
.hi-form--newsletter .fluentform .ff_submit_btn_wrapper { flex: 0 0 auto; }
.hi-form--newsletter .fluentform .ff-el-form-control { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .2); color: #fff; }
.hi-form--newsletter .fluentform .ff-el-form-control::placeholder { color: #8FA3B4; }
.hi-form--newsletter .fluentform .ff-btn-submit { background: var(--hi-cyan) !important; color: var(--hi-ink) !important; }
.hi-form--newsletter .fluentform .ff-btn-submit:hover { background: #fff !important; }
.hi-form--newsletter .fluentform .ff_gdpr_field, .hi-form--newsletter .fluentform .ff-el-tc { flex-basis: 100%; }
.hi-form--newsletter .ff-el-form-check-label { color: #8FA3B4 !important; }
.hi-form--newsletter .ff-message-success { background: rgba(0, 175, 239, .14); color: #fff; }

/* ---------- Footer ---------- */
.hi-footer { position: relative; background: var(--hi-ink); color: var(--hi-on-dark); padding: clamp(80px, 9vw, 120px) 0 0; margin-top: 0; }
.hi-footer__ridge { position: absolute; left: 0; right: 0; top: -1px; width: 100%; height: clamp(40px, 6vw, 90px); color: var(--hi-white); transform: scaleY(-1); }
body.hi-footer-mist .hi-footer__ridge { color: var(--hi-mist); }
.hi-footer__inner { max-width: calc(var(--hi-wrap) + var(--hi-gutter) * 2); margin: 0 auto; padding: 0 var(--hi-gutter); }
.hi-footer__top { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 96px); padding-bottom: 56px; border-bottom: 1px solid rgba(255, 255, 255, .1); }
.hi-footer__brand p { max-width: 38ch; margin: 22px 0 24px; }
.hi-footer__brand .hi-logo__img { height: 48px; }
.hi-footer__title { color: var(--hi-white) !important; font-size: clamp(1.5rem, 2.4vw, 2rem) !important; }
.hi-footer__cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; padding: 48px 0; }
.hi-footer__cols h3 { color: var(--hi-white) !important; font-size: 1rem !important; font-family: var(--hi-font-body) !important; font-weight: 600 !important; letter-spacing: 0 !important; margin-bottom: 16px !important; }
.hi-footer__cols ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.hi-footer__cols a { color: var(--hi-on-dark); text-decoration: none; }
.hi-footer__cols a:hover { color: var(--hi-cyan-2); }
.hi-footer__bottom { display: flex; flex-wrap: wrap; gap: 12px 28px; align-items: center; padding: 22px 0 28px; border-top: 1px solid rgba(255, 255, 255, .1); font-size: .9rem; color: #8FA3B4; }
.hi-footer__bottom p { margin: 0; margin-right: auto; }
.hi-footer__legal { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 20px; }
.hi-footer__legal a, .hi-footer__cookie { color: #8FA3B4; text-decoration: none; background: none; border: 0; font: inherit; cursor: pointer; padding: 0; }
.hi-footer__legal a:hover, .hi-footer__cookie:hover { color: #fff; }
@media (max-width: 860px) {
	.hi-footer__top { grid-template-columns: 1fr; }
	.hi-footer__cols { grid-template-columns: 1fr 1fr; }
	.hi-footer__cols > div:last-child { grid-column: 1 / -1; }
}

/* ---------- Modal ---------- */
.hi-modal { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; padding: 16px; }
.hi-modal[hidden] { display: none; }
.hi-modal__backdrop { position: absolute; inset: 0; background: rgba(9, 18, 29, .72); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); animation: hi-fade .3s both; opacity: 0; }
.hi-modal__panel { position: relative; width: min(560px, 100%); max-height: calc(100svh - 32px); overflow: auto; background: var(--hi-white); border-radius: var(--hi-r-lg); padding: clamp(24px, 4vw, 44px); animation: hi-rise .5s var(--hi-ease) both; box-shadow: 0 50px 100px -30px rgba(0, 0, 0, .6); }
.hi-modal__close { position: absolute; right: 14px; top: 14px; width: 44px; height: 44px; border-radius: 50%; border: 0; background: var(--hi-mist); color: var(--hi-ink); cursor: pointer; display: grid; place-items: center; z-index: 2; }
.hi-modal__close:hover { background: var(--hi-ink); color: #fff; }
.hi-modal__head h2 { font-size: 1.9rem !important; margin: 14px 0 6px !important; }
.hi-modal__head p { color: var(--hi-muted); }
.hi-modal__icon { width: 56px; height: 56px; border-radius: 16px; background: var(--hi-cyan); color: var(--hi-ink); display: grid; place-items: center; }
.hi-modal__alt { margin: 8px 0 0 !important; font-size: .95rem; color: var(--hi-muted); }
.hi-modal--video .hi-modal__panel { width: min(1100px, 100%); padding: 0; background: #000; overflow: hidden; }
.hi-modal--video .hi-modal__close { background: rgba(255, 255, 255, .15); color: #fff; }
.hi-modal__video { aspect-ratio: 16 / 9; }
.hi-modal__video video, .hi-modal__video iframe { width: 100%; height: 100%; display: block; border: 0; }
@keyframes hi-rise { from { opacity: 0; transform: translateY(30px) scale(.97); } to { opacity: 1; transform: none; } }
body.hi-modal-open { overflow: hidden; }

/* ---------- WhatsApp float ---------- */
.hi-wa {
	position: fixed; right: 20px; bottom: 20px; z-index: 80;
	display: flex; align-items: center; gap: 10px; height: 60px; padding: 0 15px;
	border-radius: 999px; background: #25D366; color: #fff; text-decoration: none;
	box-shadow: 0 16px 36px -12px rgba(37, 211, 102, .8);
	transition: transform .35s var(--hi-ease), box-shadow .35s;
}
.hi-wa::before { content: ""; position: absolute; inset: 0; border-radius: inherit; border: 2px solid #25D366; animation: hi-wa 2.6s infinite; }
.hi-wa:hover { transform: translateY(-3px) scale(1.03); color: #fff; }
.hi-wa__label { max-width: 0; overflow: hidden; white-space: nowrap; font-weight: 600; transition: max-width .45s var(--hi-ease), margin .45s; }
.hi-wa:hover .hi-wa__label, .hi-wa:focus-visible .hi-wa__label { max-width: 140px; margin-right: 6px; }
@keyframes hi-wa { 0% { transform: scale(1); opacity: .8; } 100% { transform: scale(1.35); opacity: 0; } }

/* ---------- Cookie banner ---------- */
.hi-cookie {
	position: fixed; left: 20px; bottom: 20px; z-index: 150; width: min(440px, calc(100% - 110px));
	background: var(--hi-white); color: var(--hi-text); border-radius: var(--hi-r); padding: 20px 22px;
	box-shadow: 0 30px 60px -20px rgba(15, 30, 46, .45), 0 0 0 1px rgba(15, 30, 46, .06);
	font-size: .93rem; animation: hi-rise .6s var(--hi-ease) both;
}
.hi-cookie[hidden] { display: none; }
.hi-cookie p { margin: 0 0 14px !important; }
.hi-cookie__btns { display: flex; gap: 8px; flex-wrap: wrap; }
.hi-cookie .hi-btn--ghost { color: var(--hi-ink); border-color: var(--hi-line); }
.hi-cookie .hi-btn--ghost::after { background: var(--hi-mist); }
@media (max-width: 560px) { .hi-cookie { left: 12px; right: 12px; bottom: 90px; width: auto; } }

/* ==========================================================================
   Template pages: page head, prose, blog, project
   ========================================================================== */
.hi-pagehead {
	position: relative; overflow: hidden;
	background: radial-gradient(900px 500px at 90% 0%, rgba(0, 175, 239, .18), transparent 60%), var(--hi-ink);
	color: var(--hi-on-dark);
	padding: calc(var(--hi-header-h) + clamp(48px, 7vw, 100px)) var(--hi-gutter) clamp(64px, 8vw, 112px);
}
.hi-pagehead__contours { position: absolute; inset: 0; background: url('../img/contours.svg') right center / cover no-repeat; opacity: .5; pointer-events: none; }
.hi-pagehead__inner { position: relative; max-width: var(--hi-wrap); margin: 0 auto; }
.hi-pagehead__title { color: var(--hi-white) !important; max-width: 18ch; font-size: clamp(2.4rem, 5.4vw, 4.6rem) !important; }
.hi-pagehead--post .hi-pagehead__title { max-width: 24ch; font-size: clamp(2.1rem, 4.4vw, 3.8rem) !important; }
.hi-pagehead__sub { font-size: clamp(1.1rem, 1.4vw, 1.3rem); max-width: 48ch; color: #B9CAD8; }
.hi-pagehead__kicker { font-size: .95rem; color: #9FB2C2; display: flex; gap: 8px; flex-wrap: wrap; }
.hi-pagehead__kicker a { color: var(--hi-cyan-2); text-decoration: none; }
.hi-pagehead .hi-btn { margin-top: 12px; }

.hi-prose-wrap { padding-top: clamp(48px, 6vw, 88px); padding-bottom: clamp(64px, 8vw, 120px); }
.hi-prose { max-width: 740px; margin: 0 auto; font-size: 1.1rem; line-height: 1.75; }
.hi-prose > * { margin-top: 0; }
.hi-prose h2 { font-size: clamp(1.6rem, 2.6vw, 2.15rem) !important; margin: 2em 0 .6em !important; }
.hi-prose h3 { font-size: 1.35rem !important; margin: 1.8em 0 .5em !important; }
.hi-prose p, .hi-prose ul, .hi-prose ol { margin-bottom: 1.25em; }
.hi-prose li { margin-bottom: .45em; }
.hi-prose ul li::marker { color: var(--hi-cyan); }
.hi-prose blockquote, .hi-prose .wp-block-quote { margin: 2em 0; padding: 6px 0 6px 26px; border-left: 3px solid var(--hi-cyan); font-family: var(--hi-font-head); font-size: 1.35rem; line-height: 1.45; color: var(--hi-ink); }
.hi-prose blockquote cite { display: block; margin-top: 10px; font: 400 .95rem var(--hi-font-body); color: var(--hi-muted); }
.hi-prose figure { margin: 2.2em 0; }
.hi-prose figure img { border-radius: var(--hi-r); }
.hi-prose figcaption { font-size: .9rem; color: var(--hi-muted); margin-top: 10px; text-align: left; }
.hi-prose table { width: 100%; border-collapse: collapse; font-size: .98rem; }
.hi-prose th, .hi-prose td { border-bottom: 1px solid var(--hi-line); padding: 12px 10px; text-align: left; vertical-align: top; }
.hi-prose th { color: var(--hi-ink); background: var(--hi-mist); }
.hi-prose .wp-block-embed { margin: 2.2em 0; }
.hi-prose .wp-block-embed__wrapper { position: relative; aspect-ratio: 16 / 9; border-radius: var(--hi-r); overflow: hidden; background: #000; }
.hi-prose .wp-block-embed__wrapper iframe { position: absolute; inset: 0; width: 100%; height: 100%; }
.hi-prose hr { border: 0; border-top: 1px solid var(--hi-line); margin: 2.5em 0; }
.hi-prose code { background: var(--hi-mist); padding: 2px 6px; border-radius: 6px; font-size: .92em; }
.hi-prose a { color: var(--hi-cyan-ink); }
.hi-updated { color: var(--hi-muted); font-size: .95rem; border-top: 1px solid var(--hi-line); padding-top: 18px; margin-top: 40px; }
.hi-callout { background: var(--hi-mist); border-radius: var(--hi-r); padding: 22px 26px; margin: 2em 0; }
.hi-callout > :last-child { margin-bottom: 0; }
.hi-callout strong:first-child { color: var(--hi-ink); }

/* Blog */
.hi-blog { padding-top: clamp(40px, 5vw, 72px); padding-bottom: clamp(64px, 8vw, 120px); }
.hi-blog .nav-links { display: flex; gap: 8px; justify-content: center; margin-top: 56px; }
.hi-blog .page-numbers { min-width: 46px; height: 46px; padding: 0 14px; border-radius: 999px; display: inline-grid; place-items: center; border: 1px solid var(--hi-line); text-decoration: none; color: var(--hi-ink); }
.hi-blog .page-numbers.current { background: var(--hi-ink); color: #fff; border-color: var(--hi-ink); }
.hi-posts--archive .hi-card:first-child { grid-column: 1 / -1; display: grid; grid-template-columns: 1.3fr 1fr; gap: clamp(24px, 4vw, 56px); align-items: center; }
.hi-posts--archive .hi-card:first-child .hi-card__title { font-size: clamp(1.8rem, 3vw, 2.6rem) !important; }
@media (max-width: 860px) { .hi-posts--archive .hi-card:first-child { display: flex; } }
.hi-empty { text-align: center; padding: 60px 0; }

.hi-article__meta { display: flex; flex-wrap: wrap; gap: 6px 22px; color: #9FB2C2; font-size: .95rem; margin-top: 12px; }
.hi-article__cover { max-width: calc(var(--hi-wrap) + var(--hi-gutter) * 2); margin: clamp(-80px, -6vw, -48px) auto 0; padding: 0 var(--hi-gutter); position: relative; z-index: 2; }
.hi-article__cover img { width: 100%; border-radius: var(--hi-r-lg); display: block; aspect-ratio: 16 / 8; object-fit: cover; box-shadow: var(--hi-shadow); }
.hi-pagehead--post { padding-bottom: clamp(110px, 10vw, 150px); }
.hi-article__layout { display: grid; grid-template-columns: 80px minmax(0, 1fr) 80px; gap: 24px; padding-top: clamp(40px, 5vw, 72px); padding-bottom: clamp(48px, 6vw, 96px); }
.hi-article__share { position: sticky; top: 110px; align-self: start; display: grid; gap: 10px; justify-items: center; font-size: .82rem; color: var(--hi-muted); }
.hi-article__share a { width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--hi-line); display: grid; place-items: center; color: var(--hi-ink); transition: .2s; }
.hi-article__share a:hover { background: var(--hi-cyan); border-color: var(--hi-cyan); }
.hi-article__body { margin: 0; max-width: 740px; justify-self: center; width: 100%; }
@media (max-width: 900px) {
	.hi-article__layout { grid-template-columns: 1fr; }
	.hi-article__share { position: static; display: flex; justify-content: flex-start; order: 2; }
}
.hi-article__cta { margin-top: 56px; background: var(--hi-ink); color: var(--hi-on-dark); border-radius: var(--hi-r-lg); padding: clamp(28px, 4vw, 44px); display: grid; gap: 20px; }
.hi-article__cta h2 { color: #fff !important; margin: 0 0 6px !important; font-size: 1.8rem !important; }
.hi-article__cta p { margin: 0; }
.hi-article__cta-btns { display: flex; flex-wrap: wrap; gap: 10px; }
.hi-article__cta .hi-btn--ghost-dark { color: #fff; border-color: rgba(255, 255, 255, .4); }
.hi-article__cta .hi-btn--ghost-dark::after { background: #fff; }
.hi-article__cta .hi-btn--ghost-dark:hover { color: var(--hi-ink); }
.hi-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 36px; }
.hi-tags a { font-size: .88rem; padding: 6px 12px; border-radius: 999px; background: var(--hi-mist); color: var(--hi-ink); text-decoration: none; }
.hi-related { background: var(--hi-mist); padding: clamp(64px, 8vw, 110px) 0; }
.hi-related__title { margin-bottom: 36px !important; }
body.single-post .hi-footer__ridge { color: var(--hi-mist); }
.hi-comments { margin-top: 56px; }
.hi-comments input[type=text], .hi-comments input[type=email], .hi-comments input[type=url], .hi-comments textarea { width: 100%; border: 1.5px solid #CBD7E0; border-radius: 12px; padding: 12px 14px; font: inherit; }

/* Charts & animations inside posts */
.hi-chart { background: var(--hi-white); border: 1px solid var(--hi-line); border-radius: var(--hi-r); padding: 24px 24px 18px; margin: 2.2em 0; }
.hi-chart__title { font: 600 1.05rem var(--hi-font-head); color: var(--hi-ink); margin: 0 0 4px !important; }
.hi-chart__sub { font-size: .9rem; color: var(--hi-muted); margin: 0 0 18px !important; }
.hi-chart__src { font-size: .82rem; color: var(--hi-muted); margin: 14px 0 0 !important; }
.hi-bars { display: grid; gap: 12px; }
.hi-bars__row { display: grid; grid-template-columns: 140px 1fr; gap: 14px; align-items: center; font-size: .95rem; }
.hi-bars__track { height: 34px; background: var(--hi-mist); border-radius: 8px; overflow: hidden; }
.hi-bars__fill { height: 100%; width: var(--v); background: var(--hi-cyan); border-radius: 8px; display: flex; align-items: center; justify-content: flex-end; padding-right: 10px; font-weight: 700; font-size: .9rem; color: var(--hi-ink); transform-origin: left; }
.hi-bars__fill--muted { background: #B9C8D3; }
.hi-js .hi-chart:not(.is-in) .hi-bars__fill { transform: scaleX(0); }
.hi-chart.is-in .hi-bars__fill { transition: transform 1.2s var(--hi-ease); transition-delay: calc(var(--d, 0) * 120ms); }
@media (max-width: 560px) { .hi-bars__row { grid-template-columns: 1fr; gap: 6px; } }
.hi-anim { margin: 2.2em 0; border-radius: var(--hi-r); overflow: hidden; background: var(--hi-ink); }
.hi-anim svg { display: block; width: 100%; height: auto; }

/* Project template */
.hi-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 0; margin: 0; padding: 30px 0; border-bottom: 1px solid var(--hi-line); }
.hi-facts div { padding: 6px 20px 6px 0; }
.hi-facts dt { font-size: .85rem; color: var(--hi-muted); }
.hi-facts dd { margin: 4px 0 0; font-weight: 600; color: var(--hi-ink); }
.hi-showcase { position: relative; padding-top: clamp(40px, 5vw, 72px); padding-bottom: clamp(40px, 5vw, 72px); }
.hi-browser { border-radius: 18px; overflow: hidden; background: #E3EBF1; box-shadow: var(--hi-shadow); max-width: 1060px; }
.hi-browser__bar { height: 42px; display: flex; align-items: center; gap: 7px; padding: 0 16px; }
.hi-browser__bar i { width: 11px; height: 11px; border-radius: 50%; background: #FF6B5E; }
.hi-browser__bar i:nth-child(2) { background: #FFC53D; } .hi-browser__bar i:nth-child(3) { background: #3BD16F; }
.hi-browser__bar span { margin-left: 16px; flex: 1; max-width: 420px; height: 26px; border-radius: 8px; background: #fff; font-size: .82rem; color: var(--hi-muted); display: flex; align-items: center; padding: 0 12px; }
.hi-browser__screen { aspect-ratio: 16 / 10; overflow: hidden; background: #fff; }
.hi-browser__screen img { width: 100%; display: block; }
.hi-phone { position: absolute; right: var(--hi-gutter); bottom: 20px; width: clamp(150px, 20vw, 250px); aspect-ratio: 9 / 19; border-radius: 34px; background: #0B141E; padding: 10px; box-shadow: 0 40px 70px -30px rgba(0, 0, 0, .6); }
.hi-phone__screen { width: 100%; height: 100%; border-radius: 26px; overflow: hidden; background: #fff; }
.hi-phone__screen img { width: 100%; display: block; }
[data-hi-scrollshot] img { transition: transform 6s ease-in-out; }
[data-hi-scrollshot]:hover img { transform: translateY(calc(-100% + var(--hi-frame-h, 300px))); }
@media (max-width: 700px) { .hi-phone { position: relative; right: auto; bottom: auto; margin: -80px 20px 0 auto; } }
.hi-brandset { padding-top: clamp(40px, 5vw, 72px); padding-bottom: 24px; }
.hi-brandset__logos { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.hi-brandset__tile { margin: 0; border-radius: var(--hi-r-lg); aspect-ratio: 4 / 3; display: grid; place-items: center; position: relative; padding: 12%; }
.hi-brandset__tile img { max-height: 100%; width: auto; object-fit: contain; }
.hi-brandset__tile--light { background: var(--hi-mist); }
.hi-brandset__tile--dark { background: var(--hi-ink); }
.hi-brandset__tile figcaption { position: absolute; left: 20px; bottom: 16px; font-size: .85rem; color: var(--hi-muted); }
.hi-brandset__tile--dark figcaption { color: #8FA3B4; }
@media (max-width: 700px) { .hi-brandset__logos { grid-template-columns: 1fr; } }
.hi-sublabel { font-size: 1.3rem !important; margin: 56px 0 20px !important; }
.hi-swatches { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 16px; }
.hi-swatches li { display: grid; gap: 4px; }
.hi-swatches__chip { display: block; aspect-ratio: 3 / 2; border-radius: var(--hi-r); background: var(--sw); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .06); margin-bottom: 8px; }
.hi-swatches code { font-size: .85rem; color: var(--hi-muted); background: none; padding: 0; }
.hi-typefaces { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; }
.hi-typefaces li { display: grid; grid-template-columns: 120px 1fr; grid-template-rows: auto auto; column-gap: 24px; align-items: center; padding: 20px 24px; background: var(--hi-mist); border-radius: var(--hi-r); }
.hi-typefaces__aa { grid-row: 1 / 3; font-size: 4rem; line-height: 1; color: var(--hi-ink); }
.hi-typefaces__abc { color: var(--hi-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hi-cover { padding-top: clamp(40px, 5vw, 72px); }
.hi-cover img, .hi-cover__video { width: 100%; border-radius: var(--hi-r-lg); display: block; }
.hi-cover__embed { aspect-ratio: 16 / 9; border-radius: var(--hi-r-lg); overflow: hidden; }
.hi-cover__embed iframe { width: 100%; height: 100%; }
.hi-story { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(24px, 4vw, 56px); padding-top: clamp(48px, 6vw, 88px); padding-bottom: clamp(32px, 4vw, 56px); }
.hi-story h2 { font-size: 1.35rem !important; padding-top: 18px; border-top: 2px solid var(--hi-cyan); }
.hi-story p { color: var(--hi-muted); }
@media (max-width: 860px) { .hi-story { grid-template-columns: 1fr; } }
.hi-chips { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.hi-chips span { font-weight: 600; margin-right: 6px; color: var(--hi-ink); }
.hi-chips em { font-style: normal; font-size: .9rem; padding: 6px 14px; border-radius: 999px; background: var(--hi-mist); color: var(--hi-ink); }
.hi-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; padding-top: 40px; padding-bottom: 40px; }
.hi-gallery figure { margin: 0; }
.hi-gallery img { width: 100%; border-radius: var(--hi-r); display: block; }
.hi-gallery figure:nth-child(3n+1) { grid-column: 1 / -1; }
@media (max-width: 700px) { .hi-gallery { grid-template-columns: 1fr; } }
.hi-project__next { background: var(--hi-mist); padding: clamp(56px, 7vw, 96px) 0; margin-top: 40px; }
.hi-project__nextlink { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 6px 20px; text-decoration: none; color: var(--hi-ink); padding-bottom: 40px; border-bottom: 1px solid var(--hi-line); }
.hi-project__nextlink span { color: var(--hi-muted); grid-column: 1; }
.hi-project__nextlink strong { font: 650 clamp(2rem, 5vw, 4rem) var(--hi-font-head); letter-spacing: -0.035em; grid-column: 1; line-height: 1.05; }
.hi-project__nextlink svg { grid-column: 2; grid-row: 1 / 3; width: clamp(40px, 6vw, 72px); height: auto; transition: transform .5s var(--hi-ease); }
.hi-project__nextlink:hover svg { transform: translateX(10px); }
.hi-project__cta { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; padding-top: 32px; }
.hi-project__cta p { margin: 0 12px 0 0; font: 600 1.25rem var(--hi-font-head); color: var(--hi-ink); }
.hi-project__cta .hi-btn--ghost { color: var(--hi-ink); border-color: var(--hi-ink); }
.hi-project__cta .hi-btn--ghost::after { background: var(--hi-ink); }
.hi-project__cta .hi-btn--ghost:hover { color: #fff; }
body.single-hills_project .hi-footer__ridge { color: var(--hi-mist); }
.hi-404 { padding: 64px var(--hi-gutter) 120px; }
.hi-404__actions { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 32px; }
.search-form { display: flex; gap: 8px; max-width: 520px; }
.search-form label { flex: 1; }
.search-form .search-field { width: 100%; min-height: 52px; border: 1.5px solid #CBD7E0; border-radius: 999px; padding: 0 20px; font: inherit; }
.search-form .search-submit { min-height: 52px; border-radius: 999px; border: 0; background: var(--hi-ink); color: #fff; padding: 0 24px; font: 600 1rem var(--hi-font-body); cursor: pointer; }

/* ==========================================================================
   Motion: reveals (only when JS is on, never inside the Elementor editor)
   ========================================================================== */
.hi-js .hi-reveal { opacity: 0; transform: translateY(28px); transition: opacity .9s var(--hi-ease), transform .9s var(--hi-ease); transition-delay: calc(var(--i, 0) * 90ms); }
.hi-js .hi-reveal.is-in { opacity: 1; transform: none; }
.hi-js .hi-reveal-mask .elementor-heading-title, .hi-js .hi-reveal-mask.hi-split { clip-path: inset(0 0 100% 0); transform: translateY(30px); transition: clip-path 1.1s var(--hi-ease), transform 1.1s var(--hi-ease); }
.hi-js .hi-reveal-mask.is-in .elementor-heading-title, .hi-js .hi-reveal-mask.hi-split.is-in { clip-path: inset(0 0 -10% 0); transform: none; }
.hi-js .hi-hero .hi-word { display: inline-block; opacity: 0; transform: translateY(.5em) rotate(3deg); transition: opacity .8s var(--hi-ease), transform .9s var(--hi-ease); transition-delay: calc(var(--w) * 70ms + 150ms); }
.hi-js .hi-hero.is-ready .hi-word { opacity: 1; transform: none; }
.elementor-editor-active .hi-reveal, .elementor-editor-preview .hi-reveal, .elementor-editor-active .hi-reveal-mask .elementor-heading-title { opacity: 1 !important; transform: none !important; clip-path: none !important; }
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
	.hi-js .hi-reveal, .hi-js .hi-reveal-mask .elementor-heading-title, .hi-js .hi-hero .hi-word { opacity: 1; transform: none; clip-path: none; }
	.hi-marquee__track { animation: none; }
}

/* ---------- Helpers used by the Elementor pages ---------- */
.hi-site .elementor-widget.hi-abs-fill { position: absolute !important; left: 0; right: 0; bottom: 0; width: 100% !important; max-width: none !important; z-index: 1; margin: 0 !important; pointer-events: none; }
.hi-site .e-con.hi-hero > .e-con-inner > .e-con, .hi-site .e-con.hi-pagehero > .e-con-inner > .e-con { position: relative; z-index: 2; }
.hi-marquee-label p { color: var(--hi-muted); font-size: .95rem; }
.hi-site .e-con.hi-sec--flush-top.hi-sec--tight { --padding-top: 8px; }
.hi-panel--dark .hi-contact .hi-icon { color: var(--hi-cyan); }
.hi-panel--dark .hi-socials a { color: #fff; }
.hi-crumb p, .hi-crumb { margin: 0; }

/* ---------- Blog post animations ---------- */
.hi-anim--palette { background: #F5EFE6; padding: 22px; }
.hi-palette { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.hi-palette span { aspect-ratio: 3 / 4; border-radius: 14px; background: var(--c); color: #fff; padding: 12px; display: flex; flex-direction: column; justify-content: flex-end; font-size: .82rem; box-shadow: inset 0 0 0 1px rgba(0,0,0,.06); }
.hi-palette b { font-weight: 600; }
.hi-palette code { background: none; padding: 0; color: inherit; opacity: .8; font-size: .78rem; }
.hi-js .hi-anim--palette:not(.is-in) .hi-palette span { transform: translateY(30px) scale(.9); opacity: 0; }
.hi-anim--palette.is-in .hi-palette span { transition: transform .8s var(--hi-ease), opacity .8s; transition-delay: calc(var(--i) * 140ms); }
@media (max-width: 560px) { .hi-palette { grid-template-columns: repeat(3, 1fr); } }

.hi-anim--easing .dot { transform-box: fill-box; }
.hi-anim--easing.is-in .dot--linear, .hi-no-js .dot--linear { animation: hi-move-linear 2.4s linear infinite alternate; }
.hi-anim--easing.is-in .dot--ease { animation: hi-move-ease 2.4s cubic-bezier(.65,0,.35,1) infinite alternate; }
@keyframes hi-move-linear { to { transform: translateX(560px); } }
@keyframes hi-move-ease { to { transform: translateX(560px); } }

.hi-linechart { width: 100%; height: auto; display: block; }
.hi-linechart__line { stroke-dasharray: 1000; stroke-dashoffset: 0; }
.hi-js .hi-chart:not(.is-in) .hi-linechart__line { stroke-dashoffset: 1000; }
.hi-chart.is-in .hi-linechart__line { transition: stroke-dashoffset 2.2s var(--hi-ease); }

.hi-anim--checks { background: var(--hi-mist); padding: 24px 28px; }
.hi-checks { list-style: none; margin: 0 !important; padding: 0; display: grid; gap: 4px; }
.hi-checks li { display: flex; gap: 14px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--hi-line); margin: 0 !important; color: var(--hi-ink); }
.hi-checks li:last-child { border-bottom: 0; }
.hi-checks li::before { content: ""; flex: none; width: 28px; height: 28px; border-radius: 9px; background: var(--hi-cyan) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5' stroke='%230F1E2E' stroke-width='3' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") center / 18px no-repeat; }
.hi-js .hi-anim--checks:not(.is-in) li::before { transform: scale(0); }
.hi-anim--checks.is-in li::before { transition: transform .5s cubic-bezier(.3,1.6,.5,1); transition-delay: calc(var(--i) * 260ms + 200ms); }

.hi-anim--chat { background: linear-gradient(135deg, #0F1E2E, #172B40); padding: 28px; }
.hi-chat { max-width: 420px; margin: 0 auto; background: #ECE5DD; border-radius: 22px; overflow: hidden; font-size: .95rem; line-height: 1.45; padding-bottom: 14px; }
.hi-chat__head { background: #075E54; color: #fff; padding: 14px 16px; display: grid; grid-template-columns: 38px 1fr; column-gap: 12px; align-items: center; }
.hi-chat__head span { grid-row: 1 / 3; width: 38px; height: 38px; border-radius: 50%; background: #fff url('../img/favicon.svg') center / 30px no-repeat; }
.hi-chat__head small { opacity: .8; font-size: .78rem; }
.hi-chat p { margin: 10px 14px 0 !important; padding: 9px 12px; border-radius: 12px; max-width: 82%; box-shadow: 0 1px 0 rgba(0,0,0,.08); color: #111; }
.hi-chat .in { background: #fff; border-top-left-radius: 4px; }
.hi-chat .out { background: #DCF8C6; margin-left: auto !important; border-top-right-radius: 4px; }
.hi-chat .card span { display: block; font-weight: 600; }
.hi-js .hi-anim--chat:not(.is-in) .hi-chat p { opacity: 0; transform: translateY(14px) scale(.96); }
.hi-anim--chat.is-in .hi-chat p { transition: opacity .5s, transform .5s var(--hi-ease); transition-delay: calc(var(--i) * 700ms + 200ms); }
.hi-prose .hi-integrate { margin: 2.2em 0; }
.hi-prose .hi-integrate__panel h3 { margin-top: 0 !important; }
.hi-site .hi-sec--dark .hi-svc-links a { color: var(--hi-white); } .hi-site .hi-sec--dark .hi-svc-links a:hover { color: var(--hi-cyan-2); }
