/* OS3 Careers: base (all pages). Colours, fonts and spacing come from theme.json tokens.
   Unit system: --u is one design pixel locked to the viewport HEIGHT (comp 1487 x 1058),
   --h grows type slightly on ultra-wide screens, --m is the unit on portrait/narrow screens. */

:root {
	--u: calc(100vh / 1058);
	--uw: calc(100vw / 1487);
	--h: clamp(var(--u), calc(var(--u) * 0.65 + var(--uw) * 0.35), calc(var(--u) * 1.16));
	--m: min(100vw / 430, 1.34px);
	--os3c-line: var(--wp--custom--line);
	--os3c-ease: var(--wp--custom--motion--ease);
	--os3c-fast: var(--wp--custom--motion--fast);
	--os3c-base: var(--wp--custom--motion--base);
	--os3c-gutter: clamp(10px, 3.5vw, 48px);
	--os3c-edge: max(var(--os3c-gutter), calc(50% - 675px));
}
@supports (height: 100dvh) { :root { --u: calc(100dvh / 1058); } }
/* Windows narrower than the comp (but still landscape): lock the unit to WIDTH so the type column never runs into the video's light. */
@media (max-aspect-ratio: 1487/1058) { :root { --u: calc(100vw / 1487); } }
@media (max-aspect-ratio: 11/10) { :root { --u: var(--m); } }
@media (min-width: 600px) and (max-aspect-ratio: 11/10) { :root { --m: min(100vw / 860, 100vh / 760, 1.25px); } }

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: geometricPrecision; overflow-x: clip; background: #050505; }
img { max-width: 100%; height: auto; }

/* Focus: visible everywhere */
:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 3px solid var(--wp--preset--color--green-soft);
	outline-offset: 3px;
	border-radius: 6px;
}

/* Section rhythm */
.wp-site-blocks > .os3c-main { margin-block-start: 0; }
.os3c-section {
	padding-block: var(--wp--preset--spacing--70);
	padding-inline: var(--os3c-gutter);
	border-top: 1px solid var(--os3c-line);
}
.os3c-section__head { margin-bottom: var(--wp--preset--spacing--50); gap: 1.25rem; }
.os3c-section__title { margin: 0; max-width: 16ch; }

/* Eyebrow label */
.os3c-eyebrow {
	margin: 0 0 1.1rem;
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--green-mid);
}

/* White pill buttons, ghost link for secondary actions */
.wp-block-button__link {
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	transition: transform var(--os3c-fast) var(--os3c-ease), background-color var(--os3c-fast) var(--os3c-ease), border-color var(--os3c-fast) var(--os3c-ease), color var(--os3c-fast) var(--os3c-ease);
}
.wp-block-button:not(.is-style-outline):not(.is-style-ghost) .wp-block-button__link:hover { background-color: #e9e9e9; transform: translateY(-2px); }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background-color: rgba(255, 255, 255, 0.08); border-color: rgba(255, 255, 255, 0.55); }
.wp-block-button.is-style-ghost .wp-block-button__link { background: transparent; color: #fff; padding-inline: 0; font-weight: 500; letter-spacing: 0.12px; }
.wp-block-button.is-style-ghost .wp-block-button__link:hover { color: var(--wp--preset--color--green-soft); }

/* Header: fixed, transparent over the hero, frosted once the page scrolls */
.os3c-header {
	position: fixed;
	inset: 0 0 auto 0;
	z-index: 70;
	padding: calc(27 * var(--u)) var(--os3c-gutter);
	transition: background-color var(--os3c-base) var(--os3c-ease), padding var(--os3c-base) var(--os3c-ease), border-color var(--os3c-base) var(--os3c-ease);
	border-bottom: 1px solid transparent;
}
body.admin-bar .os3c-header { top: 32px; }
.os3c-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: rgba(5, 5, 5, 0.82);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
	opacity: 0;
	transition: opacity var(--os3c-base) var(--os3c-ease);
	pointer-events: none;
}
.os3c-header.is-scrolled { padding-block: 12px; border-bottom-color: var(--os3c-line); }
.os3c-header.is-scrolled::before { opacity: 1; }
.os3c-header__bar { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1rem; max-width: none; }
.os3c-header__bar > * { margin: 0; }
.os3c-header .wp-block-site-logo { line-height: 0; justify-self: start; }
.os3c-header .wp-block-site-logo a { display: inline-flex; min-height: 44px; align-items: center; }
.os3c-nav { justify-self: center; }
.os3c-nav a { display: inline-flex; min-height: 44px; align-items: center; padding: 0 calc(12 * var(--u)); text-decoration: none; font-size: clamp(14px, calc(19 * var(--u)), 20px); font-weight: 400; color: var(--wp--preset--color--nav); transition: color var(--os3c-fast) var(--os3c-ease); }
.os3c-nav a:hover { color: #fff; }
.os3c-header__cta { justify-self: end; margin: 0; }
.os3c-header__cta .wp-block-button__link { min-height: max(44px, calc(49 * var(--u))); padding: 0 max(20px, calc(34 * var(--u))); font-size: clamp(15px, calc(20.6 * var(--u)), 21px); }
/* Core overlay menu (phones): dark, full screen. */
.os3c-nav .wp-block-navigation__responsive-container-open { color: #fff; border: 1px solid rgba(255, 255, 255, 0.14); background: rgba(255, 255, 255, 0.06); border-radius: 999px; width: 44px; height: 44px; padding: 0; align-items: center; justify-content: center; }
.os3c-nav .wp-block-navigation__responsive-container.is-menu-open { background-color: #050505 !important; color: #fff !important; padding: 24px 20px; }
.os3c-nav .wp-block-navigation__responsive-container.is-menu-open a { font-size: clamp(25px, calc(31 * var(--m)), 34px); color: #fff; font-weight: 400; }
@media (max-width: 599px) {
	.os3c-header { padding: 14px 16px; }
	.os3c-header__bar { grid-template-columns: 1fr auto auto; }
}

/* Footer */
.os3c-footer { padding: var(--wp--preset--spacing--60) var(--os3c-gutter) var(--wp--preset--spacing--50); border-top: 1px solid var(--os3c-line); }
.os3c-footer__grid { display: grid; gap: 2.5rem 2rem; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
.os3c-footer__col > * { margin-block: 0; }
.os3c-footer__col > * + * { margin-top: 0.5rem; }
.os3c-footer__title { font-size: var(--wp--preset--font-size--xs); font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; color: var(--wp--preset--color--strip); margin-bottom: 1rem !important; }
.os3c-footer__line { color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--s); margin-top: 1rem !important; max-width: 22rem; }
.os3c-footer__list { list-style: none; padding: 0 !important; margin: 0; }
.os3c-footer__list li { margin: 0; }
.os3c-footer__list a, .os3c-footer__text a { display: inline-flex; min-height: 32px; align-items: center; color: var(--wp--preset--color--ink); text-decoration: none; }
.os3c-footer__text { font-size: var(--wp--preset--font-size--s); color: var(--wp--preset--color--muted); }
.os3c-footer__list a:hover, .os3c-footer__text a:hover { color: var(--wp--preset--color--green-soft); text-decoration: underline; text-underline-offset: 4px; }
.os3c-footer__legal { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem 2rem; margin-top: var(--wp--preset--spacing--50); padding: 1.5rem 72px 0 0; border-top: 1px solid var(--os3c-line); color: var(--wp--preset--color--strip); font-size: var(--wp--preset--font-size--xs); }
.os3c-footer__legal > *, .os3c-footer__legal p { margin: 0 !important; }
.os3c-footer__policies { display: flex; flex-wrap: wrap; gap: 0 1.5rem; }
.os3c-footer__policies a { display: inline-flex; min-height: 44px; align-items: center; color: var(--wp--preset--color--muted); text-decoration: none; }
.os3c-footer__policies a:hover { color: var(--wp--preset--color--green-soft); text-decoration: underline; text-underline-offset: 4px; }

/* WhatsApp float + sticky Apply bar. The WhatsApp button sits above the bar on phones. */
.os3c-whatsapp {
	position: fixed;
	right: 16px;
	bottom: 16px;
	z-index: 60;
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: #fff;
	color: #050505;
	transition: transform var(--os3c-fast) var(--os3c-ease);
}
.os3c-whatsapp:hover { transform: translateY(-3px); }
.os3c-stickybar { display: none; }
@media (max-width: 719px) {
	body { padding-bottom: 76px; }
	.os3c-stickybar {
		display: block;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 55;
		padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
		background: rgba(5, 5, 5, 0.94);
		border-top: 1px solid var(--os3c-line);
		-webkit-backdrop-filter: blur(12px);
		backdrop-filter: blur(12px);
	}
	.os3c-stickybar .wp-block-button__link { width: 100%; }
	.os3c-stickybar.is-enhanced { transform: translateY(100%); transition: transform var(--os3c-base) var(--os3c-ease); }
	.os3c-stickybar.is-enhanced.is-visible { transform: none; }
	.os3c-whatsapp { bottom: calc(76px + 12px + env(safe-area-inset-bottom)); }
}

/* Generic pages (header is fixed, so leave room for it) */
.os3c-page { padding: calc(140 * var(--u) + 40px) var(--os3c-gutter) var(--wp--preset--spacing--70); }

/* Entrance and scroll motion (transform and opacity only). JS tags only below-the-fold items. */
@keyframes os3c-rise { from { opacity: 0; transform: translateY(calc(14 * var(--u))); } }
@keyframes os3c-fade { from { opacity: 0; } }
[data-reveal] { opacity: 0; transform: translateY(24px); transition: opacity 600ms var(--os3c-ease), transform 600ms var(--os3c-ease); transition-delay: var(--os3c-delay, 0ms); }
[data-reveal].is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: no-preference) {
	.os3c-logo, .os3c-header__cta { animation: os3c-rise 0.8s var(--os3c-ease) both; }
	.os3c-nav { animation: os3c-fade 0.8s var(--os3c-ease) both; }
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
	[data-reveal] { opacity: 1; transform: none; }
}

/* While the phone menu is open, keep the header button from covering its close button. */
.os3c-header:has(.wp-block-navigation__responsive-container.is-menu-open) .os3c-header__cta { visibility: hidden; }
.os3c-nav .wp-block-navigation__responsive-container-close { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; color: #fff; }

/* ---------- Icon chips (decorative CSS masks; the text stays editable) ---------- */
.os3c-ico--calendar { --os3c-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M16 3v4M8 3v4M3 10h18'/%3E%3C/svg%3E"); }
.os3c-ico--trophy { --os3c-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 21h8M12 17v4M7 4h10v5a5 5 0 0 1-10 0V4zM17 6h3v2a3 3 0 0 1-3 3M7 6H4v2a3 3 0 0 0 3 3'/%3E%3C/svg%3E"); }
.os3c-ico--users { --os3c-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.5'/%3E%3Cpath d='M2.5 20a6.5 6.5 0 0 1 13 0M16 4.5a3.5 3.5 0 0 1 0 7M18.5 20a6.5 6.5 0 0 0-3-5.5'/%3E%3C/svg%3E"); }
.os3c-ico--coffee { --os3c-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 9h13v5a6 6 0 0 1-6 6h-1a6 6 0 0 1-6-6V9zM17 11h1.5a2.5 2.5 0 0 1 0 5H17M8 3v3M12 3v3'/%3E%3C/svg%3E"); }
.os3c-ico--coins { --os3c-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cellipse cx='12' cy='6' rx='7' ry='3'/%3E%3Cpath d='M5 6v6c0 1.7 3.1 3 7 3s7-1.3 7-3V6M5 12v6c0 1.7 3.1 3 7 3s7-1.3 7-3v-6'/%3E%3C/svg%3E"); }
.os3c-ico--book { --os3c-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5a2 2 0 0 1 2-2h13v16H6a2 2 0 0 0-2 2V5zM4 19a2 2 0 0 1 2-2h13'/%3E%3C/svg%3E"); }
.os3c-ico--heart { --os3c-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20s-7-4.4-7-10a4 4 0 0 1 7-2.6A4 4 0 0 1 19 10c0 5.6-7 10-7 10z'/%3E%3C/svg%3E"); }
.os3c-ico--monitor { --os3c-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='12' rx='2'/%3E%3Cpath d='M8 20h8M12 16v4M9.5 8.5L7.5 10l2 1.5M14.5 8.5l2 1.5-2 1.5'/%3E%3C/svg%3E"); }
.os3c-ico--phone { --os3c-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='6' y='2.5' width='12' height='19' rx='2.5'/%3E%3Cpath d='M10.5 9.5v5l4-2.5z'/%3E%3C/svg%3E"); }
.os3c-ico--pen { --os3c-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4l6 6-9 9H5v-6l9-9zM12 6l6 6'/%3E%3C/svg%3E"); }
.os3c-ico--megaphone { --os3c-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11v3a1 1 0 0 0 1 1h3l6 4V6L7 10H4a1 1 0 0 0-1 1zM17 9a4 4 0 0 1 0 6M7 15l1.5 5'/%3E%3C/svg%3E"); }
.os3c-ico--send { --os3c-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 3L3 10.5l7 2.5 2.5 7L21 3zM10 13l5-5'/%3E%3C/svg%3E"); }
.os3c-ico--chat { --os3c-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h16v11H9l-5 4V5z'/%3E%3Cpath d='M8 9.5h8M8 12.5h5'/%3E%3C/svg%3E"); }
.os3c-ico--folder { --os3c-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6z'/%3E%3Cpath d='M8 13.5s1.6-2.5 4-2.5 4 2.5 4 2.5-1.6 2.5-4 2.5-4-2.5-4-2.5z'/%3E%3C/svg%3E"); }
.os3c-ico--team { --os3c-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.5'/%3E%3Cpath d='M2.5 20a6.5 6.5 0 0 1 11.5-4M15 17.5l2 2 4-4.5'/%3E%3C/svg%3E"); }
.os3c-ico--arrow { --os3c-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17L17 7M8 7h9v9'/%3E%3C/svg%3E"); }
.os3c-ico { position: relative; }
.os3c-ico::before {
	content: "";
	position: absolute;
	top: var(--ico-top, 0px);
	left: var(--ico-left, 0px);
	width: 46px;
	height: 46px;
	border-radius: 13px;
	background: rgba(91, 227, 96, 0.08);
	border: 1px solid rgba(91, 227, 96, 0.28);
	transition: background-color var(--os3c-base) var(--os3c-ease), transform var(--os3c-base) var(--os3c-ease), border-color var(--os3c-base) var(--os3c-ease);
}
.os3c-ico::after {
	content: "";
	position: absolute;
	top: calc(var(--ico-top, 0px) + 12px);
	left: calc(var(--ico-left, 0px) + 12px);
	width: 22px;
	height: 22px;
	background: var(--wp--preset--color--green-mid);
	-webkit-mask: var(--os3c-icon) center / contain no-repeat;
	mask: var(--os3c-icon) center / contain no-repeat;
	transition: transform var(--os3c-base) var(--os3c-ease), background-color var(--os3c-base) var(--os3c-ease);
}
.os3c-ico:hover::before { background: var(--wp--preset--color--green-mid); border-color: var(--wp--preset--color--green-mid); transform: rotate(-8deg) scale(1.06); }
.os3c-ico:hover::after { background: #050505; transform: rotate(-8deg) scale(1.06); }

/* ---------- Typography roles (Cairo headings, Poppins Light body) ---------- */
.os3c-eyebrow, .os3c-footer__title, .os3c-tag, .os3c-hero__strip a { font-family: var(--wp--preset--font-family--poppins); }
strong, b { font-weight: 500; }

/* ---------- Animated buttons: arrow chip, light sweep, lift. Works on every core button. ---------- */
.wp-block-button__link { position: relative; overflow: hidden; isolation: isolate; gap: 0.7rem; }
.wp-block-button:not(.is-style-ghost) .wp-block-button__link { padding-right: 0.55rem !important; }
.wp-block-button__link::after {
	content: "";
	flex: none;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: #050505 var(--os3c-arrow) center / 14px no-repeat;
	transition: transform 420ms var(--os3c-ease), background-color 300ms var(--os3c-ease);
}
:root { --os3c-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17L17 7M8 7h9v9'/%3E%3C/svg%3E"); --os3c-arrow-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23050505' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17L17 7M8 7h9v9'/%3E%3C/svg%3E"); }
.wp-block-button__link:hover::after { transform: rotate(45deg); background-color: var(--wp--preset--color--green); }
/* Light sweep */
.wp-block-button__link::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(110deg, transparent 30%, rgba(91, 227, 96, 0.35) 50%, transparent 70%);
	transform: translateX(-120%);
	transition: transform 700ms var(--os3c-ease);
}
.wp-block-button__link:hover::before { transform: translateX(120%); }
.wp-block-button.is-style-outline .wp-block-button__link::after { background-color: #fff; background-image: var(--os3c-arrow-dark); }
.wp-block-button.is-style-outline .wp-block-button__link:hover::after { background-color: var(--wp--preset--color--green-mid); }
.wp-block-button.is-style-ghost .wp-block-button__link::after { width: 28px; height: 28px; background-color: rgba(255, 255, 255, 0.1); background-size: 12px; }
.wp-block-button.is-style-ghost .wp-block-button__link::before { display: none; }
.wp-block-button.is-style-ghost .wp-block-button__link:hover::after { background-color: var(--wp--preset--color--green-mid); background-image: var(--os3c-arrow-dark); }
/* Magnetic pull (set by main.js on mouse devices) */
.wp-block-button__link.is-magnetic { transform: translate(var(--mgx, 0px), var(--mgy, 0px)); }
.wp-block-button:not(.is-style-outline):not(.is-style-ghost) .wp-block-button__link.is-magnetic:hover { transform: translate(var(--mgx, 0px), var(--mgy, 0px)); }
.os3c-stickybar .wp-block-button__link { padding-right: 0.55rem; }
/* WhatsApp: gentle attention pulse */
.os3c-whatsapp::after { content: ""; position: absolute; inset: -6px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, 0.5); animation: os3c-ring 2.6s var(--os3c-ease) infinite; }
@keyframes os3c-ring { from { transform: scale(0.85); opacity: 0.9; } to { transform: scale(1.35); opacity: 0; } }

/* ---------- Nav: animated underline ---------- */
.os3c-nav a { position: relative; }
.os3c-nav a::after { content: ""; position: absolute; left: calc(12 * var(--u)); right: calc(12 * var(--u)); bottom: 10px; height: 1px; background: var(--wp--preset--color--green-mid); transform: scaleX(0); transform-origin: right; transition: transform 320ms var(--os3c-ease); }
.os3c-nav a:hover::after { transform: scaleX(1); transform-origin: left; }
.wp-block-navigation__responsive-container.is-menu-open .os3c-nav a::after, .is-menu-open a::after { display: none; }

/* ---------- Scroll progress ---------- */
.os3c-progress { position: fixed; top: 0; left: 0; right: 0; height: 2px; z-index: 80; background: var(--wp--preset--color--green-mid); transform-origin: left; transform: scaleX(var(--p, 0)); pointer-events: none; }
body.admin-bar .os3c-progress { top: 32px; }

/* ---------- Word-by-word blur reveal on headings (JS adds the spans; no JS = plain text) ---------- */
.os3c-w { display: inline-block; white-space: pre; }
.os3c-split.is-armed .os3c-w { opacity: 0; filter: blur(10px); transform: translateY(0.35em); }
.os3c-split.is-in .os3c-w { opacity: 1; filter: blur(0); transform: none; transition: opacity 700ms var(--os3c-ease), filter 700ms var(--os3c-ease), transform 700ms var(--os3c-ease); transition-delay: calc(var(--i) * 55ms); }

/* Card and row reveal: fade, rise and un-blur */
[data-reveal] { filter: blur(6px); transition: opacity 700ms var(--os3c-ease), transform 700ms var(--os3c-ease), filter 700ms var(--os3c-ease); transition-delay: var(--os3c-delay, 0ms); }
[data-reveal].is-in { filter: none; }

@media (prefers-reduced-motion: reduce) {
	.os3c-split.is-armed .os3c-w { opacity: 1; filter: none; transform: none; }
	[data-reveal] { filter: none; }
	.os3c-whatsapp::after { display: none; }
	.wp-block-button__link::before { display: none; }
}
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
@media (max-width: 599px) {
	.os3c-header__cta .wp-block-button__link { min-height: 44px; padding: 0 0.4rem 0 1rem !important; font-size: 14px; gap: 0.5rem; }
	.os3c-header__cta .wp-block-button__link::after { width: 30px; height: 30px; }
	.os3c-header .wp-block-site-logo img { width: 104px !important; height: auto; }
	.os3c-header__bar { gap: 0.5rem; }
}

.os3c-header__cta .wp-block-button__link { white-space: nowrap; }
@media (max-width: 1180px) and (min-width: 600px) { .os3c-nav a { padding-inline: 8px; font-size: 15px; } }

/* Bigger logo */
.os3c-header .wp-block-site-logo img { width: clamp(132px, calc(170 * var(--u)), 176px) !important; height: auto !important; }
@media (max-width: 599px) { .os3c-header .wp-block-site-logo img { width: 124px !important; } }

/* ---------- Layout frame: content 1350px wide on desktop, 20px side padding on phones ---------- */
@media (max-width: 600px) { :root { --os3c-gutter: 20px; } }
.os3c-header__bar { max-width: 1350px; margin-inline: auto; }
@media (max-width: 599px) { .os3c-header { padding-inline: 20px; } }
