/**
 * HERMA — base.css
 * Tokens, reset, typography, buttons, chips, grids, cards shared by every view,
 * and the entrance-animation engine. Loaded everywhere (handle: hrm-base).
 * Real token values are printed inline from Theme Options (dynamic-css.php).
 */

/* ---- Tokens (fallbacks) ---- */
:root {
	--hrm-primary: #0A7882; --hrm-primary-rgb: 10,120,130;
	--hrm-primary-dark: #004851; --hrm-primary-dark-rgb: 0,72,81;
	--hrm-accent: #7FD0D3; --hrm-accent-rgb: 127,208,211;
	--hrm-ink: #0D2C31; --hrm-ink-rgb: 13,44,49;
	--hrm-body: #48606A;
	--hrm-dark: #062C31; --hrm-dark-rgb: 6,44,49;
	--hrm-darker: #041F23; --hrm-darker-rgb: 4,31,35;
	--hrm-bg: #FFFFFF; --hrm-bg-soft: #F4F8F8; --hrm-line: #E1EBEC;
	--hrm-container: 1240px; --hrm-radius: 16px; --hrm-fs-base: 1rem;
	--hrm-h-weight: 600; --hrm-h-stretch: 114%;
	--hrm-h1: clamp(2rem, 1.4rem + 2.4vw, 3.25rem); --hrm-h2: clamp(1.6rem, 1.22rem + 1.35vw, 2.125rem);
	--hrm-h3: clamp(1.25rem, 1.1rem + .5vw, 1.5rem); --hrm-h4: 1.2rem; --hrm-h5: 1.0625rem; --hrm-h6: .9375rem;
	--hrm-logo-h: 46px; --hrm-logo-h-m: 38px; --hrm-banner-h: 440px; --hrm-banner-h-m: 340px;
	--hrm-anim-dur: 900ms; --hrm-anim-dist: 18px; --hrm-anim-stagger: 90ms;

	/* Derived */
	--hrm-ease: cubic-bezier(.2, .7, .2, 1);
	--hrm-gutter: clamp(20px, 3.4vw, 32px);
	--hrm-space: clamp(64px, 7.5vw, 96px);
	--hrm-r-sm: calc(var(--hrm-radius) * .75);
	--hrm-r-lg: calc(var(--hrm-radius) * 1.375);
	--hrm-r-xl: calc(var(--hrm-radius) * 1.75);
	--hrm-header-h: 80px;
	--hrm-font-b: 'Archivo', 'IBM Plex Sans Arabic', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
	--hrm-font-h: var(--hrm-font-b);
	--hrm-font-ar: 'IBM Plex Sans Arabic', 'Archivo', ui-sans-serif, system-ui, sans-serif;
	--hrm-muted: #5A6F73;
	--hrm-shadow-s: 0 10px 24px -18px rgba(var(--hrm-ink-rgb), .35);
	--hrm-shadow-m: 0 22px 44px -30px rgba(var(--hrm-primary-dark-rgb), .4);
	--hrm-shadow-l: 0 34px 70px -44px rgba(var(--hrm-darker-rgb), .55);
	--hrm-grid-line: rgba(255, 255, 255, .034);
}

/* ---- Reset ---- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--hrm-header-h) + 16px); }
body {
	margin: 0; background: var(--hrm-bg); color: var(--hrm-body);
	font-family: var(--hrm-font-b); font-size: var(--hrm-fs-base); line-height: 1.65;
	-webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: clip;
	text-rendering: optimizeLegibility;
}
img, svg, video { max-inline-size: 100%; block-size: auto; }
img { display: block; }
a { color: var(--hrm-primary); text-decoration: none; transition: color .3s ease; }
a:hover { color: var(--hrm-primary-dark); }
h1, h2, h3, h4, h5, h6 { margin: 0; color: var(--hrm-ink); font-family: var(--hrm-font-h); font-weight: var(--hrm-h-weight); font-stretch: var(--hrm-h-stretch); letter-spacing: -.012em; line-height: 1.16; }
h1 { font-size: var(--hrm-h1); line-height: 1.08; } h2 { font-size: var(--hrm-h2); } h3 { font-size: var(--hrm-h3); line-height: 1.3; }
h4 { font-size: var(--hrm-h4); } h5 { font-size: var(--hrm-h5); } h6 { font-size: var(--hrm-h6); }
p { margin: 0; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--hrm-primary); outline-offset: 3px; border-radius: 4px; }
.hrm-sec--dark :focus-visible, .hrm-dark :focus-visible { outline-color: var(--hrm-accent); }
::selection { background: rgba(var(--hrm-primary-rgb), .18); }

.screen-reader-text { position: absolute !important; inline-size: 1px; block-size: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.hrm-skip { position: absolute; inset-inline-start: 16px; inset-block-start: -60px; z-index: 999; padding: 10px 16px; border-radius: 10px; background: var(--hrm-ink); color: #fff; transition: inset-block-start .2s ease; }
.hrm-skip:focus { inset-block-start: 12px; color: #fff; }

/* ---- Layout ---- */
.hrm-wrap { inline-size: 100%; max-inline-size: var(--hrm-container); margin-inline: auto; padding-inline: var(--hrm-gutter); }
.hrm-main { display: block; }
.hrm-main:focus { outline: none; }
.hrm-sec { padding-block: var(--hrm-space); }
.hrm-sec--soft { background: var(--hrm-bg-soft); border-block: 1px solid color-mix(in srgb, var(--hrm-line) 70%, transparent); }
.hrm-sec--flush-top { padding-block-start: 0; }
.hrm-sec--tight-top { padding-block-start: clamp(40px, 5vw, 64px); }
.hrm-sec--dark, .hrm-dark {
	background-color: var(--hrm-dark); color: #DDECEC;
	background-image:
		radial-gradient(900px 420px at 88% -10%, rgba(var(--hrm-accent-rgb), .13), transparent 62%),
		linear-gradient(var(--hrm-grid-line) 1px, transparent 1px),
		linear-gradient(90deg, var(--hrm-grid-line) 1px, transparent 1px);
	background-size: auto, 56px 56px, 56px 56px;
}
.hrm-sec--dark h1, .hrm-sec--dark h2, .hrm-sec--dark h3, .hrm-sec--dark h4, .hrm-dark h2, .hrm-dark h3 { color: #F2F8F8; }
.hrm-sec--dark p, .hrm-dark p { color: #A9C6C8; }

/* ---- Eyebrow + section head ---- */
.hrm-kick { display: inline-flex; align-items: center; gap: 10px; color: var(--hrm-primary); font-size: .845rem; font-weight: 600; letter-spacing: .01em; }
.hrm-kick::before { content: ""; inline-size: 8px; block-size: 8px; border-radius: 50%; border: 2px solid currentColor; flex: none; }
.hrm-sec--dark .hrm-kick, .hrm-dark .hrm-kick { color: var(--hrm-accent); }

.hrm-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 18px 32px; margin-block-end: clamp(32px, 4vw, 48px); }
.hrm-head__main { display: flex; flex-direction: column; gap: 14px; max-inline-size: 640px; }
.hrm-head__title { max-inline-size: 22ch; }
.hrm-head__text { max-inline-size: 44ch; font-size: .95rem; }
.hrm-head--center { justify-content: center; text-align: center; }
.hrm-head--center .hrm-head__main { align-items: center; }

/* ---- Prose ---- */
.hrm-prose { max-inline-size: 760px; }
.hrm-prose > * + * { margin-block-start: 1.1em; }
.hrm-prose h2 { font-size: var(--hrm-h2); margin-block-start: 1.4em; }
.hrm-prose h3 { margin-block-start: 1.3em; }
.hrm-prose > :first-child { margin-block-start: 0; }
.hrm-prose ul, .hrm-prose ol { padding-inline-start: 1.2em; }
.hrm-prose li + li { margin-block-start: .4em; }
.hrm-prose img { border-radius: var(--hrm-radius); }
.hrm-prose blockquote { margin: 1.5em 0; padding-inline-start: 20px; border-inline-start: 2px solid var(--hrm-primary); color: var(--hrm-ink); }
.hrm-prose--lead > p { font-size: 1.03rem; line-height: 1.8; }
.hrm-prose--lead h2 { max-inline-size: 20ch; margin-block: .5em 0; }

/* ---- Buttons ---- */
.hrm-btn {
	display: inline-flex; align-items: center; gap: 12px; block-size: 48px; padding-inline: 20px 8px;
	border-radius: var(--hrm-r-sm); border: 1px solid transparent; font-weight: 600; font-size: .94rem; line-height: 1;
	white-space: nowrap; cursor: pointer; transition: background .35s ease, color .35s ease, border-color .35s ease, box-shadow .35s ease;
}
.hrm-btn__ic { display: inline-flex; align-items: center; justify-content: center; inline-size: 32px; block-size: 32px; border-radius: 8px; transition: transform .45s var(--hrm-ease); }
.hrm-btn--primary { background: var(--hrm-primary); color: #fff; }
.hrm-btn--primary .hrm-btn__ic { background: rgba(255, 255, 255, .16); }
.hrm-btn--primary:hover { background: var(--hrm-primary-dark); color: #fff; box-shadow: var(--hrm-shadow-m); }
.hrm-btn--ghost { background: var(--hrm-bg); color: var(--hrm-ink); border-color: color-mix(in srgb, var(--hrm-line) 80%, var(--hrm-primary)); }
.hrm-btn--ghost .hrm-btn__ic { background: color-mix(in srgb, var(--hrm-bg-soft) 70%, var(--hrm-accent)); color: var(--hrm-primary); }
.hrm-btn--ghost:hover { border-color: var(--hrm-primary); color: var(--hrm-primary-dark); }
.hrm-btn--white { background: #fff; color: var(--hrm-dark); }
.hrm-btn--white .hrm-btn__ic { background: color-mix(in srgb, #fff 82%, var(--hrm-accent)); color: var(--hrm-primary); }
.hrm-btn--white:hover { background: color-mix(in srgb, #fff 86%, var(--hrm-accent)); color: var(--hrm-dark); }
.hrm-btn--outline-light { background: rgba(255, 255, 255, .04); color: #fff; border-color: rgba(255, 255, 255, .26); }
.hrm-btn--outline-light .hrm-btn__ic { background: rgba(255, 255, 255, .1); }
.hrm-btn--outline-light:hover { border-color: #fff; color: #fff; background: rgba(255, 255, 255, .08); }
.hrm-actions { display: flex; flex-wrap: wrap; gap: 12px; }

.hrm-link { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: .92rem; color: var(--hrm-primary); }
.hrm-link .hrm-icon { transition: transform .45s var(--hrm-ease); }
.hrm-sec--dark .hrm-link, .hrm-dark .hrm-link { color: #fff; }

/* ---- Chips, ticks, icon boxes, tabs ---- */
.hrm-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.hrm-chip { display: inline-flex; align-items: center; padding: 6px 12px; border-radius: 999px; background: var(--hrm-bg-soft); border: 1px solid color-mix(in srgb, var(--hrm-line) 85%, var(--hrm-primary)); color: #28464B; font-size: .82rem; line-height: 1.3; }
a.hrm-chip:hover { border-color: var(--hrm-primary); color: var(--hrm-primary-dark); }
.hrm-sec--dark .hrm-chip, .hrm-dark .hrm-chip { background: rgba(255, 255, 255, .07); border-color: rgba(255, 255, 255, .14); color: #DCECEC; }

.hrm-ticks { display: flex; flex-direction: column; gap: 12px; margin: 0; padding: 0; list-style: none; }
.hrm-ticks li { position: relative; padding-inline-start: 22px; color: #28464B; line-height: 1.6; }
.hrm-ticks li::before { content: ""; position: absolute; inset-inline-start: 0; inset-block-start: .55em; inline-size: 8px; block-size: 8px; border-radius: 50%; border: 2px solid var(--hrm-primary); }
.hrm-ticks--sm { gap: 8px; } .hrm-ticks--sm li { font-size: .88rem; }
.hrm-sec--dark .hrm-ticks li, .hrm-dark .hrm-ticks li { color: #D5E8E9; }
.hrm-sec--dark .hrm-ticks li::before, .hrm-dark .hrm-ticks li::before { border-color: var(--hrm-accent); }

.hrm-iconbox { display: inline-flex; align-items: center; justify-content: center; flex: none; inline-size: 42px; block-size: 42px; border-radius: 12px; background: color-mix(in srgb, var(--hrm-bg-soft) 75%, var(--hrm-accent)); color: var(--hrm-primary); transition: background .4s ease, color .4s ease; }
.hrm-iconbox--dark { background: rgba(var(--hrm-accent-rgb), .12); color: #9DE0E2; }

.hrm-tabs { display: flex; flex-wrap: wrap; gap: 8px; }
.hrm-tab { block-size: 40px; padding-inline: 16px; border-radius: 999px; border: 1px solid var(--hrm-line); background: var(--hrm-bg); color: #28464B; font-weight: 500; font-size: .875rem; cursor: pointer; transition: all .3s ease; }
.hrm-tab:hover { border-color: var(--hrm-primary); color: var(--hrm-primary-dark); }
.hrm-tab.is-active { background: var(--hrm-dark); border-color: var(--hrm-dark); color: #fff; }

/* ---- Grids ---- */
.hrm-grid { display: grid; gap: 18px; }
.hrm-grid--3 { grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); }
.hrm-grid--cards { grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); }
.hrm-grid--projects { gap: 28px 18px; }
.hrm-grid--clients { grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); gap: 16px; }

/* ---- Media zoom ---- */
.hrm-zoom { overflow: hidden; background: color-mix(in srgb, var(--hrm-bg-soft) 70%, var(--hrm-line)); }
.hrm-zoom img, .hrm-zoom__img { inline-size: 100%; block-size: 100%; object-fit: cover; transition: transform 1.1s var(--hrm-ease); }

/* ---- Cards ---- */
.hrm-card { background: var(--hrm-bg); border: 1px solid var(--hrm-line); border-radius: var(--hrm-radius); overflow: hidden; transition: border-color .4s ease, box-shadow .5s ease, transform .5s var(--hrm-ease); }
.hrm-glass { display: flex; flex-direction: column; gap: 14px; padding: clamp(24px, 2.6vw, 30px); border-radius: var(--hrm-r-lg); background: rgba(255, 255, 255, .04); border: 1px solid rgba(255, 255, 255, .1); transition: background .4s ease, border-color .4s ease; }
.hrm-glass__title { font-size: 1.12rem; }
.hrm-glass__text { font-size: .92rem; line-height: 1.7; }

/* ---- CTA panel ---- */
.hrm-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 32px; padding: clamp(28px, 4vw, 48px) clamp(24px, 4.5vw, 56px); border-radius: var(--hrm-r-xl); }
.hrm-cta__text { display: flex; flex-direction: column; gap: 10px; max-inline-size: 560px; }
.hrm-cta__title { font-size: clamp(1.45rem, 1.15rem + 1vw, 1.875rem); }
.hrm-cta--soft { background: linear-gradient(120deg, color-mix(in srgb, var(--hrm-bg-soft) 70%, var(--hrm-accent)) 0%, var(--hrm-bg-soft) 60%, color-mix(in srgb, var(--hrm-bg-soft) 80%, var(--hrm-accent)) 100%); border: 1px solid color-mix(in srgb, var(--hrm-line) 80%, var(--hrm-accent)); }
.hrm-band__in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 32px; }
.hrm-band__text { display: flex; flex-direction: column; gap: 12px; max-inline-size: 640px; }
.hrm-band__title { font-size: clamp(1.45rem, 1.15rem + 1vw, 1.875rem); }
.hrm-band.hrm-sec { padding-block: clamp(56px, 6vw, 80px); }

/* ---- Split (image + text) ---- */
.hrm-split { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(32px, 6vw, 72px); align-items: center; }
.hrm-split--top { align-items: start; }
.hrm-split__media { border-radius: var(--hrm-r-lg); aspect-ratio: 4 / 3; }
.hrm-split__body { display: flex; flex-direction: column; gap: 18px; }
.hrm-split__title { font-size: clamp(1.45rem, 1.15rem + 1vw, 1.875rem); max-inline-size: 22ch; }

/* ---- Entrance animation engine ---- */
.hrm-anim-on [data-hrm-anim] { opacity: 0; transition: opacity var(--hrm-anim-dur) var(--hrm-ease), transform var(--hrm-anim-dur) var(--hrm-ease), filter var(--hrm-anim-dur) var(--hrm-ease), clip-path calc(var(--hrm-anim-dur) * 1.2) var(--hrm-ease); transition-delay: var(--hrm-delay, 0ms); will-change: opacity, transform; }
.hrm-anim-on [data-hrm-anim="up"] { transform: translateY(var(--hrm-anim-dist)); }
.hrm-anim-on [data-hrm-anim="down"] { transform: translateY(calc(var(--hrm-anim-dist) * -1)); }
.hrm-anim-on [data-hrm-anim="start"] { transform: translateX(calc(var(--hrm-anim-dist) * -1.4)); }
.hrm-anim-on [data-hrm-anim="end"] { transform: translateX(calc(var(--hrm-anim-dist) * 1.4)); }
.hrm-anim-on [data-hrm-anim="zoom"] { transform: scale(.96); }
.hrm-anim-on [data-hrm-anim="blur"] { filter: blur(8px); }
.hrm-anim-on [data-hrm-anim="reveal"] { opacity: 1; clip-path: inset(0 0 100% 0 round var(--hrm-r-lg)); }
.hrm-anim-on [data-hrm-anim].hrm-in { opacity: 1; transform: none; filter: none; clip-path: inset(0 0 0 0 round var(--hrm-r-lg)); }
.hrm-anim-on [data-hrm-anim]:not([data-hrm-anim="reveal"]).hrm-in { clip-path: none; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
	.hrm-anim-on [data-hrm-anim] { opacity: 1; transform: none; filter: none; clip-path: none; }
}

@media (max-width: 1020px) {
	.hrm-split { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
	.hrm-btn { block-size: 46px; font-size: .9rem; }
	.hrm-cta, .hrm-band__in { align-items: flex-start; }
}


/* ==========================================================================
   Interaction system (v1.3)
   One motion language for every hover. Hover effects only apply to devices
   that really hover (mouse / trackpad) so touch screens never get "stuck".
   ========================================================================== */
:root { --hrm-dir: 1; --hrm-ease-out: cubic-bezier(.16, 1, .3, 1); --hrm-dur-s: .35s; --hrm-dur-m: .6s; --hrm-dur-l: 1.1s; }

/* Media containers clip cleanly on every browser (no radius bleed while zooming). */
.hrm-zoom { position: relative; isolation: isolate; transform: translateZ(0); }
.hrm-zoom img, .hrm-zoom__img { transition: transform var(--hrm-dur-l) var(--hrm-ease-out), filter var(--hrm-dur-m) ease; backface-visibility: hidden; }

/* Buttons: press feedback for everyone. */
.hrm-btn { -webkit-tap-highlight-color: transparent; touch-action: manipulation; transition: background-color var(--hrm-dur-s) ease, color var(--hrm-dur-s) ease, border-color var(--hrm-dur-s) ease, box-shadow var(--hrm-dur-m) var(--hrm-ease-out), transform var(--hrm-dur-s) var(--hrm-ease-out); }
.hrm-btn:active { transform: scale(.98); }
.hrm-btn__ic { overflow: hidden; transition: background-color var(--hrm-dur-s) ease, color var(--hrm-dur-s) ease; }
.hrm-btn__ic .hrm-icon { display: block; }
.hrm-link { inline-size: fit-content; align-self: flex-start; position: relative; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; padding-block-end: 2px; transition: background-size var(--hrm-dur-m) var(--hrm-ease-out), color var(--hrm-dur-s) ease; }
.hrm-link .hrm-icon { transition: translate var(--hrm-dur-m) var(--hrm-ease-out); }

@keyframes hrmArrowDiag { 0% { translate: 0 0; opacity: 1; } 42% { translate: calc(120% * var(--hrm-dir)) -120%; opacity: 0; } 43% { translate: calc(-120% * var(--hrm-dir)) 120%; opacity: 0; } 100% { translate: 0 0; opacity: 1; } }
@keyframes hrmArrowSide { 0% { translate: 0 0; opacity: 1; } 42% { translate: calc(120% * var(--hrm-dir)) 0; opacity: 0; } 43% { translate: calc(-120% * var(--hrm-dir)) 0; opacity: 0; } 100% { translate: 0 0; opacity: 1; } }
@keyframes hrmRing { 0%, 100% { rotate: 0deg; } 20% { rotate: -12deg; } 40% { rotate: 10deg; } 60% { rotate: -6deg; } 80% { rotate: 3deg; } }

@media (hover: hover) and (pointer: fine) {
	.hrm-btn:hover .hrm-icon--arrow-up-right { animation: hrmArrowDiag .6s var(--hrm-ease-out); }
	.hrm-btn:hover .hrm-icon--arrow-right, .hrm-btn:hover .hrm-icon--arrow-left { animation: hrmArrowSide .6s var(--hrm-ease-out); }
	.hrm-btn:hover .hrm-icon--phone { animation: hrmRing .7s ease; }
	.hrm-btn--primary:hover { transform: translateY(-1px); box-shadow: 0 14px 28px -16px rgba(var(--hrm-primary-dark-rgb), .65); }
	.hrm-btn--white:hover { transform: translateY(-1px); box-shadow: 0 14px 28px -18px rgba(0, 0, 0, .55); }
	.hrm-btn--ghost:hover { background: color-mix(in srgb, var(--hrm-bg-soft) 60%, #fff); }
	.hrm-btn--ghost:hover .hrm-btn__ic { background: var(--hrm-primary); color: #fff; }
	.hrm-btn--outline-light:hover .hrm-btn__ic { background: #fff; color: var(--hrm-dark); }
	.hrm-btn:active { transform: scale(.98); }

	.hrm-link:hover { background-size: 100% 1px; }
	.hrm-link:hover .hrm-icon { translate: calc(4px * var(--hrm-dir)) 0; }

	.hrm-zoom:hover img, .hrm-zoom:hover .hrm-zoom__img,
	.hrm-card:hover .hrm-zoom img, .hrm-proj:hover .hrm-zoom img, .hrm-post-card:hover .hrm-zoom img { transform: scale(1.05); }

	.hrm-card { transition: border-color var(--hrm-dur-m) ease, box-shadow var(--hrm-dur-m) var(--hrm-ease-out), transform var(--hrm-dur-m) var(--hrm-ease-out); }
	.hrm-card:hover { border-color: color-mix(in srgb, var(--hrm-line) 55%, var(--hrm-primary)); box-shadow: 0 26px 48px -32px rgba(var(--hrm-primary-dark-rgb), .42), 0 2px 6px -2px rgba(var(--hrm-ink-rgb), .06); transform: translateY(-4px); }
	.hrm-glass { transition: background-color var(--hrm-dur-m) ease, border-color var(--hrm-dur-m) ease, transform var(--hrm-dur-m) var(--hrm-ease-out); }
	.hrm-glass:hover { background-color: rgba(255, 255, 255, .065); border-color: rgba(var(--hrm-accent-rgb), .32); transform: translateY(-4px); }
	.hrm-glass:hover .hrm-iconbox--dark { background: var(--hrm-accent); color: var(--hrm-dark); }
	.hrm-tab:not(.is-active):hover { background: var(--hrm-bg-soft); }
	a.hrm-chip:hover { background: #fff; }
}
.hrm-btn:focus-visible { outline-offset: 3px; }
.hrm-link:focus-visible { background-size: 100% 1px; }
@media (prefers-reduced-motion: reduce) {
	.hrm-btn:hover .hrm-icon { animation: none !important; }
	.hrm-card:hover, .hrm-glass:hover, .hrm-btn:hover { transform: none !important; }
}

/* Mobile rhythm */
@media (max-width: 700px) {
	:root { --hrm-space: 60px; --hrm-gutter: 20px; }
	h2, .hrm-head__title { font-size: clamp(1.55rem, 1.2rem + 1.6vw, 1.75rem); line-height: 1.2; }
	.hrm-head { margin-block-end: 28px; gap: 12px; }
	.hrm-head__text { font-size: .906rem; }
	.hrm-kick { font-size: .8rem; }
	.hrm-cta { padding: 28px 22px; border-radius: var(--hrm-r-lg); }
	.hrm-cta .hrm-actions, .hrm-cta .hrm-btn, .hrm-band__in .hrm-btn { inline-size: 100%; }
	.hrm-btn { justify-content: space-between; }
	.hrm-actions { inline-size: 100%; }
	.hrm-actions .hrm-btn { flex: 1 1 auto; }
	.hrm-glass { padding: 22px; }
	.hrm-chip { font-size: .78rem; padding: 5px 11px; }
}

/* Card-level hover details (projects, products, partners, lists). */
.hrm-proj__media { position: relative; }
.hrm-proj__media::after { content: ""; position: absolute; inset-inline-end: 14px; inset-block-end: 14px; z-index: 2; inline-size: 40px; block-size: 40px; border-radius: 50%; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230A7882' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7M9 7h8v8'/%3E%3C/svg%3E") center / 16px no-repeat; box-shadow: 0 10px 24px -12px rgba(0, 0, 0, .45); opacity: 0; transform: translateY(8px) scale(.9); transition: opacity .45s ease, transform .6s var(--hrm-ease-out); }
.hrm-rtl .hrm-proj__media::after { transform: translateY(8px) scale(.9) scaleX(-1); }
.hrm-proj__title { transition: color .35s ease; }
.hrm-prd__title a, .hrm-why2__title, .hrm-office__city { transition: color .35s ease; }
.hrm-partner__logo img { transition: filter .6s ease, opacity .6s ease, transform .8s var(--hrm-ease-out); }
@media (hover: hover) and (pointer: fine) {
	.hrm-proj:hover .hrm-proj__media::after { opacity: 1; transform: none; }
	.hrm-rtl .hrm-proj:hover .hrm-proj__media::after { transform: scaleX(-1); }
	.hrm-proj:hover .hrm-proj__title { color: var(--hrm-primary-dark); }
	.hrm-card:hover .hrm-prd__title a { color: var(--hrm-primary-dark); }
	.hrm-card:hover .hrm-link { background-size: 100% 1px; }
	.hrm-card:hover .hrm-link .hrm-icon { translate: calc(4px * var(--hrm-dir)) 0; }
	.hrm-partner__logo img { filter: grayscale(.85); opacity: .8; }
	.hrm-partner:hover .hrm-partner__logo img { filter: none; opacity: 1; transform: scale(1.04); }
	.hrm-why2__item:hover .hrm-why2__title { color: var(--hrm-primary-dark); }
	.hrm-sec--dark .hrm-why2__item:hover .hrm-why2__title { color: var(--hrm-accent); }
}

/* Elementor editor: never hide content behind entrance animations. */
.elementor-editor-active [data-hrm-anim],
.elementor-editor-preview [data-hrm-anim],
body.elementor-editor-active .hrm-anim-on [data-hrm-anim] { opacity: 1 !important; transform: none !important; filter: none !important; clip-path: none !important; transition: none !important; }
.elementor-editor-active .hrm-hero__text-wrap.is-active > *, .elementor-editor-active .hrm-hero__btns { animation: none !important; }
