/*
 * Safeit Security Solutions — front-end styles.
 * Mobile-first. Breakpoints: 600px, 782px, 1024px, 1280px.
 * Colours/fonts come from theme.json presets (--wp--preset--*).
 */

:root {
	--sf-ink: var(--wp--preset--color--ink, #070B14);
	--sf-navy: var(--wp--preset--color--navy, #0B1046);
	--sf-night: var(--wp--preset--color--night, #0E1526);
	--sf-charcoal: var(--wp--preset--color--charcoal, #111827);
	--sf-slate: var(--wp--preset--color--slate, #475569);
	--sf-mist: var(--wp--preset--color--mist, #94A3B8);
	--sf-line: var(--wp--preset--color--line, #E2E8F0);
	--sf-cloud: var(--wp--preset--color--cloud, #F4F6FA);
	--sf-blue: var(--wp--preset--color--blue, #1F6BFF);
	--sf-blue-deep: var(--wp--preset--color--blue-deep, #1450D6);
	--sf-sky: var(--wp--preset--color--sky, #38BDF8);
	--sf-ice: var(--wp--preset--color--ice, #7FD3F0);
	--sf-wa: #25D366;
	--sf-wa-ink: #052E1A;
	--sf-font-head: var(--wp--preset--font-family--heading, Manrope, system-ui, sans-serif);
	--sf-gutter: clamp(1rem, 4vw, 2rem);
	--sf-max: 1240px;
	--sf-radius: 18px;
	--sf-radius-sm: 12px;
	--sf-shadow: 0 1px 2px rgba(7, 11, 20, .04), 0 12px 32px -12px rgba(7, 11, 20, .18);
	--sf-shadow-lg: 0 30px 60px -20px rgba(7, 11, 20, .35);
	--sf-section-y: clamp(4rem, 2.75rem + 5vw, 7.5rem);
	--sf-header-h: 72px;
	--sf-bar-h: 0px;
	--sf-ease: cubic-bezier(.2, .7, .2, 1);
}
@media (max-width: 781.98px) {
	:root { --sf-bar-h: 64px; --sf-header-h: 64px; }
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--sf-header-h) + 16px); -webkit-text-size-adjust: 100%; }
body { margin: 0; overflow-x: clip; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
body.sf-has-bar { padding-bottom: calc(var(--sf-bar-h) + env(safe-area-inset-bottom, 0px)); }
img, video, iframe, svg { max-width: 100%; height: auto; }
iframe { border: 0; }
a { text-underline-offset: .18em; text-decoration-thickness: 1px; }
:focus-visible { outline: 3px solid var(--sf-sky); outline-offset: 3px; border-radius: 6px; }
::selection { background: var(--sf-blue); color: #fff; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.sf-skip { position: absolute; left: 1rem; top: -100px; z-index: 1000; background: #fff; color: var(--sf-navy); padding: .75rem 1rem; border-radius: 10px; font-weight: 700; }
.sf-skip:focus { top: 1rem; }
.wp-site-blocks { padding: 0; }
.wp-site-blocks > * { margin-block-start: 0; }
main.sf-main { display: block; }
main.sf-main > .entry-content, main.sf-main > .wp-block-post-content { margin: 0; }
.entry-content > *, .wp-block-post-content > * { margin-block-start: 0; }
/* (no text-wrap: pretty — costly layout on long pages) */
h1, h2, h3, h4 { text-wrap: balance; margin-block: 0 .5em; }

/* ---------- Layout primitives ---------- */
.sf-container, .sf-section > .sf-container, .wp-block-group.sf-container {
	width: 100%;
	max-width: calc(var(--sf-max) + 2 * var(--sf-gutter));
	margin-inline: auto !important;
	padding-inline: var(--sf-gutter);
}
.sf-container.is-narrow { max-width: calc(820px + 2 * var(--sf-gutter)); }
.sf-section { position: relative; padding-block: var(--sf-section-y); margin: 0 !important; isolation: isolate; }
.sf-section.is-tight { padding-block: clamp(2.5rem, 2rem + 2vw, 4rem); }
.sf-section.is-cloud { background: var(--sf-cloud); }
.sf-section.is-white { background: #fff; }
.sf-section.is-dark, .sf-section.is-navy { background: var(--sf-ink); color: #C7D2E3; }
.sf-section.is-navy { background: radial-gradient(120% 120% at 85% 0%, rgba(31,107,255,.28) 0%, rgba(11,16,70,.0) 55%), linear-gradient(180deg, var(--sf-navy) 0%, var(--sf-ink) 100%); }
.sf-section.is-dark :is(h1, h2, h3, h4), .sf-section.is-navy :is(h1, h2, h3, h4), .sf-dark :is(h1, h2, h3, h4) { color: #fff; }
.sf-section.is-dark :where(a:not(.wp-block-button__link):not(.sf-chip):not(.sf-card-link)), .sf-section.is-navy :where(a:not(.wp-block-button__link):not(.sf-chip):not(.sf-card-link)) { color: var(--sf-ice); }
.sf-section.is-dark .sf-lead, .sf-section.is-navy .sf-lead { color: #AFC0D8; }

.sf-grid { display: grid; gap: clamp(1rem, .75rem + 1vw, 1.5rem); grid-template-columns: 1fr; }
@media (min-width: 600px) { .sf-grid.is-2, .sf-grid.is-3, .sf-grid.is-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) {
	.sf-grid.is-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.sf-grid.is-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.sf-grid > * { margin: 0 !important; }

.sf-split { display: grid; gap: clamp(2rem, 1rem + 4vw, 5rem); align-items: center; grid-template-columns: 1fr; }
@media (min-width: 1024px) {
	.sf-split { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sf-split.is-reverse > :first-child { order: 2; }
	.sf-split.is-wide-left { grid-template-columns: 1.15fr .85fr; }
}
.sf-split > * { margin: 0 !important; min-width: 0; }

/* ---------- Typography helpers ---------- */
.sf-eyebrow {
	display: inline-flex; align-items: center; gap: .6rem;
	font-family: var(--sf-font-head); font-weight: 700; font-size: .8125rem; letter-spacing: .14em; text-transform: uppercase;
	color: var(--sf-blue); margin: 0 0 1rem !important;
}
.sf-eyebrow::before { content: ""; width: 28px; height: 2px; border-radius: 2px; background: linear-gradient(90deg, var(--sf-blue), var(--sf-sky)); }
.is-dark .sf-eyebrow, .is-navy .sf-eyebrow, .sf-hero .sf-eyebrow, .sf-dark .sf-eyebrow { color: var(--sf-sky); }
.sf-lead { font-size: clamp(1.0625rem, 1rem + .35vw, 1.25rem); line-height: 1.6; color: var(--sf-slate); max-width: 62ch; }
.sf-section-head { max-width: 760px; margin: 0 0 clamp(2rem, 1.5rem + 2vw, 3.5rem) !important; }
.sf-section-head.is-center { margin-inline: auto !important; text-align: center; }
.sf-section-head.is-center .sf-lead { margin-inline: auto; }
.sf-section-head h2 { margin-bottom: .4em; }
.sf-section-head > :last-child { margin-bottom: 0; }
.sf-gradient-text { background: linear-gradient(100deg, #fff 10%, var(--sf-ice) 55%, var(--sf-sky) 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.sf-muted { color: var(--sf-mist); font-size: .9375rem; }

/* ---------- Buttons ---------- */
.wp-block-buttons.sf-btns, .sf-btns { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem !important; }
.wp-block-button__link, .sf-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .55rem;
	min-height: 52px; padding: .95rem 1.6rem; border-radius: 12px; border: 1.5px solid transparent;
	background: var(--sf-blue); color: #fff; text-decoration: none; line-height: 1.2;
	font-family: var(--sf-font-head); font-weight: 700; font-size: 1rem; letter-spacing: -.005em;
	box-shadow: 0 10px 24px -10px rgba(31, 107, 255, .65);
	transition: transform .2s var(--sf-ease), background-color .2s, box-shadow .2s, border-color .2s, color .2s;
	cursor: pointer;
}
.wp-block-button__link:hover, .sf-btn:hover { transform: translateY(-2px); background: var(--sf-blue-deep); color: #fff; box-shadow: 0 16px 30px -12px rgba(31, 107, 255, .7); }
.wp-block-button__link::after, .sf-btn.has-arrow::after { content: ""; width: 1em; height: 1em; background: currentColor; -webkit-mask: var(--sf-i-arrow) center/contain no-repeat; mask: var(--sf-i-arrow) center/contain no-repeat; transition: transform .2s var(--sf-ease); }
.wp-block-button__link:hover::after { transform: translateX(3px); }
.is-style-whatsapp .wp-block-button__link, .sf-btn.is-whatsapp { background: var(--sf-wa); color: var(--sf-wa-ink); box-shadow: 0 10px 24px -12px rgba(37, 211, 102, .6); }
.is-style-whatsapp .wp-block-button__link:hover, .sf-btn.is-whatsapp:hover { background: #1FBF5B; color: var(--sf-wa-ink); }
.is-style-whatsapp .wp-block-button__link::after, .sf-btn.is-whatsapp::after { display: none; }
.is-style-whatsapp .wp-block-button__link::before, .sf-btn.is-whatsapp::before { content: ""; width: 1.25em; height: 1.25em; background: currentColor; -webkit-mask: var(--sf-i-whatsapp) center/contain no-repeat; mask: var(--sf-i-whatsapp) center/contain no-repeat; }
.is-style-outline-light .wp-block-button__link, .sf-btn.is-outline-light { background: rgba(255, 255, 255, .04); color: #fff; border-color: rgba(255, 255, 255, .28); box-shadow: none; backdrop-filter: blur(6px); }
.is-style-outline-light .wp-block-button__link:hover, .sf-btn.is-outline-light:hover { background: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .6); }
.is-style-outline-dark .wp-block-button__link, .sf-btn.is-outline-dark { background: transparent; color: var(--sf-navy); border-color: rgba(11, 16, 70, .2); box-shadow: none; }
.is-style-outline-dark .wp-block-button__link:hover, .sf-btn.is-outline-dark:hover { background: var(--sf-navy); color: #fff; border-color: var(--sf-navy); }
.is-style-call .wp-block-button__link::after, .sf-btn.is-call::after { display: none; }
.is-style-call .wp-block-button__link::before, .sf-btn.is-call::before { content: ""; width: 1.1em; height: 1.1em; background: currentColor; -webkit-mask: var(--sf-i-phone) center/contain no-repeat; mask: var(--sf-i-phone) center/contain no-repeat; }
.is-style-text-arrow .wp-block-button__link { background: none; color: var(--sf-blue); padding: .5rem 0; min-height: 44px; box-shadow: none; }
.is-style-text-arrow .wp-block-button__link:hover { background: none; color: var(--sf-blue-deep); transform: none; }
@media (max-width: 599.98px) {
	.sf-btns.is-stack-mobile, .sf-hero .sf-btns, .sf-cta .sf-btns { flex-direction: column; align-items: stretch; }
	.sf-btns.is-stack-mobile .wp-block-button, .sf-hero .sf-btns .wp-block-button, .sf-cta .sf-btns .wp-block-button { width: 100%; }
	.sf-btns.is-stack-mobile .wp-block-button__link, .sf-hero .sf-btns .wp-block-button__link, .sf-cta .sf-btns .wp-block-button__link { width: 100%; }
}

/* ---------- Icons (CSS masks, used by ::before and .sf-ico) ---------- */
:root {
	--sf-i-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
	--sf-i-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
	--sf-i-shield: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E");
	--sf-i-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E");
	--sf-i-whatsapp: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17.5 14.4c-.3-.1-1.8-.9-2-1-.3-.1-.5-.1-.7.1-.2.3-.8 1-.9 1.2-.2.2-.3.2-.6.1-.3-.1-1.3-.5-2.4-1.5-.9-.8-1.5-1.8-1.7-2.1-.2-.3 0-.5.1-.6l.4-.5c.2-.2.2-.3.3-.5.1-.2 0-.4 0-.5l-.9-2.2c-.2-.6-.5-.5-.7-.5h-.6c-.2 0-.5.1-.8.4-.3.3-1 1-1 2.5s1.1 2.9 1.2 3.1c.1.2 2.1 3.2 5.1 4.5.7.3 1.3.5 1.7.6.7.2 1.4.2 1.9.1.6-.1 1.8-.7 2-1.4.2-.7.2-1.3.2-1.4-.1-.1-.3-.2-.6-.3zM12 21.8c-1.8 0-3.5-.5-5-1.4l-.4-.2-3.7 1 1-3.6-.2-.4A9.8 9.8 0 1 1 12 21.8zm8.4-18.2A11.8 11.8 0 0 0 1.8 17.9L.1 24l6.3-1.7A11.8 11.8 0 0 0 23.8 12c0-3.2-1.2-6.1-3.4-8.4z'/%3E%3C/svg%3E");
	--sf-i-pin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
	--sf-i-bolt: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2 3 14h9l-1 8 10-12h-9l1-8z'/%3E%3C/svg%3E");
	--sf-i-tools: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.8-3.8a6 6 0 0 1-7.9 7.9l-6.9 6.9a2.1 2.1 0 0 1-3-3l6.9-6.9a6 6 0 0 1 7.9-7.9l-3.8 3.8z'/%3E%3C/svg%3E");
	--sf-i-cpu: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='4' width='16' height='16' rx='2'/%3E%3Crect x='9' y='9' width='6' height='6'/%3E%3Cpath d='M9 1v3M15 1v3M9 20v3M15 20v3M20 9h3M20 14h3M1 9h3M1 14h3'/%3E%3C/svg%3E");
	--sf-i-layers: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 2 10 5-10 5L2 7l10-5z'/%3E%3Cpath d='m2 17 10 5 10-5M2 12l10 5 10-5'/%3E%3C/svg%3E");
	--sf-i-headset: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 14v-2a9 9 0 0 1 18 0v2'/%3E%3Cpath d='M21 19a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3zM3 19a2 2 0 0 0 2 2h1a2 2 0 0 0 2-2v-3a2 2 0 0 0-2-2H3z'/%3E%3C/svg%3E");
	--sf-i-target: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Ccircle cx='12' cy='12' r='6'/%3E%3Ccircle cx='12' cy='12' r='2'/%3E%3C/svg%3E");
	--sf-i-clock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E");
	--sf-i-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 6L2 7'/%3E%3C/svg%3E");
	--sf-i-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	--sf-i-plus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E");
}
.sf-ico { display: inline-block; width: 1.25em; height: 1.25em; flex: none; background: currentColor; -webkit-mask: var(--sf-icon) center/contain no-repeat; mask: var(--sf-icon) center/contain no-repeat; }
.sf-svg { width: 24px; height: 24px; flex: none; }

/* ---------- Header ---------- */
.sf-header {
	position: fixed; inset: 0 0 auto 0; z-index: 100; height: var(--sf-header-h);
	color: #fff; transition: background-color .3s, box-shadow .3s, backdrop-filter .3s;
}
.admin-bar .sf-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .sf-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .sf-header { top: 0; } .admin-bar.sf-scrolled .sf-header { top: 0; } }
.sf-header::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(7, 11, 20, .65), rgba(7, 11, 20, 0)); pointer-events: none; transition: opacity .3s; }
.sf-scrolled .sf-header, .sf-menu-open .sf-header { background: rgba(7, 11, 20, .92); backdrop-filter: saturate(160%) blur(14px); -webkit-backdrop-filter: saturate(160%) blur(14px); box-shadow: 0 1px 0 rgba(255, 255, 255, .06), 0 10px 30px -15px rgba(0, 0, 0, .6); }
.sf-scrolled .sf-header::before { opacity: 0; }
.sf-header__inner { position: relative; height: 100%; display: flex; align-items: center; gap: 1rem; }
.sf-logo { display: inline-flex; align-items: center; gap: .65rem; color: #fff; text-decoration: none; margin-right: auto; min-height: 44px; }
.sf-logo img { width: auto; height: 40px; display: block; }
.sf-logo__text { display: flex; flex-direction: column; line-height: 1; font-family: var(--sf-font-head); }
.sf-logo__name { font-weight: 800; font-size: 1.375rem; letter-spacing: -.02em; color: #fff; }
.sf-logo__tag { font-weight: 700; font-size: .625rem; letter-spacing: .2em; text-transform: uppercase; color: var(--sf-ice); margin-top: .3rem; }

.sf-nav { display: none; }
.sf-header__actions { display: flex; align-items: center; gap: .5rem; }
.sf-header__call { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 12px; color: #fff; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .14); text-decoration: none; }
.sf-header__call span { display: none; }
.sf-header__cta { display: none !important; }
.sf-burger { width: 44px; height: 44px; border-radius: 12px; border: 1px solid rgba(255, 255, 255, .14); background: rgba(255, 255, 255, .08); color: #fff; display: inline-grid; place-items: center; cursor: pointer; padding: 0; }
.sf-burger span { display: block; width: 20px; height: 2px; background: currentColor; border-radius: 2px; position: relative; transition: background-color .2s; }
.sf-burger span::before, .sf-burger span::after { content: ""; position: absolute; left: 0; width: 20px; height: 2px; background: currentColor; border-radius: 2px; transition: transform .25s var(--sf-ease), top .25s; }
.sf-burger span::before { top: -6px; } .sf-burger span::after { top: 6px; }
.sf-menu-open .sf-burger span { background: transparent; }
.sf-menu-open .sf-burger span::before { top: 0; transform: rotate(45deg); }
.sf-menu-open .sf-burger span::after { top: 0; transform: rotate(-45deg); }

/* Mobile drawer */
.sf-drawer {
	position: fixed; inset: var(--sf-header-h) 0 0 0; z-index: 99; background: var(--sf-ink);
	overflow-y: auto; overscroll-behavior: contain; padding: 1rem var(--sf-gutter) calc(var(--sf-bar-h) + 2rem);
	opacity: 0; visibility: hidden; transform: translateY(-8px); transition: opacity .25s, transform .25s var(--sf-ease), visibility .25s;
}
.admin-bar .sf-drawer { top: calc(var(--sf-header-h) + 46px); }
.sf-menu-open .sf-drawer { opacity: 1; visibility: visible; transform: none; }
.sf-menu-open { overflow: hidden; }
.sf-drawer ul { list-style: none; margin: 0; padding: 0; }
.sf-drawer .menu > li { border-bottom: 1px solid rgba(255, 255, 255, .08); position: relative; }
.sf-drawer .menu > li > a { display: flex; align-items: center; min-height: 56px; padding-right: 56px; color: #fff; text-decoration: none; font-family: var(--sf-font-head); font-weight: 700; font-size: 1.25rem; }
.sf-drawer .sub-menu { display: none; padding: 0 0 .75rem .25rem; }
.sf-drawer li.is-open > .sub-menu { display: block; }
.sf-drawer .sub-menu a { display: flex; align-items: center; min-height: 44px; color: #AFC0D8; text-decoration: none; font-size: 1rem; }
.sf-drawer .sub-menu a:hover, .sf-drawer .current-menu-item > a { color: #fff; }
.sf-subtoggle { position: absolute; right: 0; top: 6px; width: 44px; height: 44px; display: grid; place-items: center; background: rgba(255, 255, 255, .06); border: 0; border-radius: 10px; color: #fff; cursor: pointer; }
.sf-subtoggle::before { content: ""; width: 18px; height: 18px; background: currentColor; -webkit-mask: var(--sf-i-chevron) center/contain no-repeat; mask: var(--sf-i-chevron) center/contain no-repeat; transition: transform .2s; }
li.is-open > .sf-subtoggle::before { transform: rotate(180deg); }
.sf-drawer__cta { display: grid; gap: .75rem; margin-top: 1.5rem; }
.sf-drawer__cta .sf-btn { width: 100%; }
.sf-drawer__meta { margin-top: 1.5rem; color: var(--sf-mist); font-size: .9375rem; line-height: 1.8; }
.sf-drawer__meta a { color: var(--sf-ice); }

@media (min-width: 1024px) {
	:root { --sf-header-h: 80px; }
	.sf-burger, .sf-drawer { display: none; }
	.sf-header__call { width: auto; padding: 0 .9rem; gap: .5rem; background: transparent; border: 0; font-weight: 600; font-size: .9375rem; }
	.sf-header__call span { display: inline; }
	.sf-header__cta { display: inline-flex !important; min-height: 46px; padding: .7rem 1.25rem; }
	.sf-nav { display: block; margin-inline: auto; }
	.sf-nav .menu { list-style: none; display: flex; align-items: center; gap: .25rem; margin: 0; padding: 0; }
	.sf-nav .menu > li { position: relative; }
	.sf-nav .menu > li > a { display: inline-flex; align-items: center; gap: .3rem; padding: .6rem .8rem; color: #E2E8F0; text-decoration: none; font-weight: 500; font-size: .9375rem; border-radius: 10px; transition: color .2s, background-color .2s; }
	.sf-nav .menu > li > a:hover, .sf-nav .menu > li:focus-within > a, .sf-nav .current-menu-item > a, .sf-nav .current-menu-ancestor > a { color: #fff; background: rgba(255, 255, 255, .07); }
	.sf-nav .menu-item-has-children > a::after { content: ""; width: 12px; height: 12px; background: currentColor; -webkit-mask: var(--sf-i-chevron) center/contain no-repeat; mask: var(--sf-i-chevron) center/contain no-repeat; opacity: .7; }
	.sf-nav .sf-subtoggle { display: none; }
	.sf-nav .sub-menu {
		list-style: none; position: absolute; top: calc(100% + 10px); left: 50%; translate: -50% 0; min-width: 300px; margin: 0; padding: .6rem;
		background: #fff; border-radius: 16px; box-shadow: var(--sf-shadow-lg); border: 1px solid var(--sf-line);
		opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .2s, transform .2s var(--sf-ease), visibility .2s;
	}
	.sf-nav .sub-menu::before { content: ""; position: absolute; inset: -12px 0 auto 0; height: 12px; }
	.sf-nav li:hover > .sub-menu, .sf-nav li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
	.sf-nav .sub-menu a { display: block; padding: .6rem .85rem; border-radius: 10px; color: var(--sf-navy); text-decoration: none; font-weight: 600; font-size: .9375rem; }
	.sf-nav .sub-menu a:hover, .sf-nav .sub-menu .current-menu-item > a { background: var(--sf-cloud); color: var(--sf-blue); }
	.sf-nav .sub-menu.is-mega { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); min-width: 560px; gap: 0 .25rem; }
}
@media (min-width: 1024px) and (max-width: 1179.98px) {
	.sf-header__call span { display: none; }
	.sf-nav .menu > li > a { padding: .6rem .55rem; font-size: .875rem; }
}

/* ---------- Mobile action bar & WhatsApp bubble ---------- */
.sf-actionbar {
	position: fixed; inset: auto 0 0 0; z-index: 98; display: grid; grid-template-columns: 1fr 1fr 1.3fr; gap: .5rem;
	padding: .5rem .75rem calc(.5rem + env(safe-area-inset-bottom, 0px)); background: rgba(7, 11, 20, .96);
	backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-top: 1px solid rgba(255, 255, 255, .08);
}
.sf-actionbar a { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; min-height: 48px; border-radius: 12px; text-decoration: none; font-family: var(--sf-font-head); font-weight: 700; font-size: .9375rem; color: #fff; background: rgba(255, 255, 255, .08); }
.sf-actionbar a.is-wa { background: var(--sf-wa); color: var(--sf-wa-ink); }
.sf-actionbar a.is-quote { background: var(--sf-blue); }
.sf-actionbar .sf-svg { width: 20px; height: 20px; }
.sf-wa-bubble { display: none; }
@media (min-width: 782px) {
	.sf-actionbar { display: none; }
	.sf-wa-bubble {
		position: fixed; right: 24px; bottom: 24px; z-index: 98; display: inline-flex; align-items: center; gap: .6rem;
		height: 60px; padding: 0 1.25rem 0 1rem; border-radius: 999px; background: var(--sf-wa); color: var(--sf-wa-ink);
		font-family: var(--sf-font-head); font-weight: 800; text-decoration: none; box-shadow: 0 14px 30px -10px rgba(37, 211, 102, .55);
		transition: transform .2s var(--sf-ease);
	}
	.sf-wa-bubble:hover { transform: translateY(-3px); color: var(--sf-wa-ink); }
	.sf-wa-bubble .sf-svg { width: 28px; height: 28px; }
}

/* ---------- Hero ---------- */
.sf-hero {
	position: relative; isolation: isolate; overflow: hidden; color: #D6E0EE; background: var(--sf-ink);
	min-height: min(92svh, 860px); display: flex; align-items: flex-end;
	padding: calc(var(--sf-header-h) + clamp(3rem, 2rem + 6vw, 7rem)) 0 clamp(3rem, 2rem + 4vw, 6rem) !important; margin: 0 !important;
}
.sf-hero.is-compact { min-height: 0; align-items: center; padding-top: calc(var(--sf-header-h) + clamp(2.5rem, 2rem + 4vw, 5rem)) !important; padding-bottom: clamp(3rem, 2rem + 3vw, 5rem) !important; }
.sf-hero > .wp-block-image, .sf-hero__media { position: absolute !important; inset: 0; z-index: -2; margin: 0 !important; max-width: none !important; width: 100%; height: 100%; }
.sf-hero > .wp-block-image img, .sf-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 60% center; }
.sf-hero::before { content: ""; position: absolute; inset: 0; z-index: -1;
	background:
		radial-gradient(80% 70% at 85% 10%, rgba(31, 107, 255, .32) 0%, rgba(31, 107, 255, 0) 60%),
		linear-gradient(90deg, rgba(7, 11, 20, .94) 0%, rgba(7, 11, 20, .82) 42%, rgba(7, 11, 20, .35) 100%),
		linear-gradient(0deg, rgba(7, 11, 20, .9) 0%, rgba(7, 11, 20, 0) 45%);
}
@media (max-width: 781.98px) {
	.sf-hero::before { background: radial-gradient(90% 60% at 80% 0%, rgba(31, 107, 255, .3) 0%, rgba(31, 107, 255, 0) 60%), linear-gradient(0deg, rgba(7, 11, 20, .96) 0%, rgba(7, 11, 20, .78) 55%, rgba(7, 11, 20, .55) 100%); }
	.sf-hero { min-height: 0; }
}
.sf-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; opacity: .35; pointer-events: none;
	background-image: linear-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .05) 1px, transparent 1px);
	background-size: 56px 56px; -webkit-mask-image: radial-gradient(70% 70% at 80% 20%, #000 0%, transparent 70%); mask-image: radial-gradient(70% 70% at 80% 20%, #000 0%, transparent 70%);
}
.sf-hero .sf-container { position: relative; }
.sf-hero__content { max-width: 760px; }
.sf-hero h1 { color: #fff; font-size: clamp(2.25rem, 1.15rem + 4.6vw, 4.75rem); line-height: 1.04; letter-spacing: -.035em; margin-bottom: .45em; }
.sf-hero.is-compact h1 { font-size: clamp(2rem, 1.25rem + 3.2vw, 3.75rem); }
.sf-hero .sf-lead { color: #B8C6DA; font-size: clamp(1.0625rem, 1rem + .5vw, 1.3125rem); }
.sf-hero .sf-btns { margin-top: 2.25rem !important; }
.sf-hero__trust { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; margin-top: 1.75rem !important; color: #9FB0C8; font-size: .875rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.sf-hero__trust::before { content: ""; width: 18px; height: 18px; background: var(--sf-sky); -webkit-mask: var(--sf-i-shield) center/contain no-repeat; mask: var(--sf-i-shield) center/contain no-repeat; }
.sf-hero .sf-breadcrumbs { margin-bottom: 1.25rem; }

/* Breadcrumbs */
.sf-breadcrumbs { font-size: .875rem; color: var(--sf-mist); }
.sf-breadcrumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: .25rem .5rem; margin: 0; padding: 0; }
.sf-breadcrumbs li { display: inline-flex; align-items: center; gap: .5rem; }
.sf-breadcrumbs li + li::before { content: "/"; opacity: .5; }
.sf-breadcrumbs a { color: #C7D2E3; text-decoration: none; }
.sf-breadcrumbs a:hover { color: #fff; text-decoration: underline; }
.sf-breadcrumbs [aria-current] { color: var(--sf-ice); }

/* ---------- Trust bar ---------- */
.sf-trust { background: var(--sf-night); border-top: 1px solid rgba(255, 255, 255, .06); border-bottom: 1px solid rgba(255, 255, 255, .06); padding: 0 !important; margin: 0 !important; }
.sf-trust ul { list-style: none; margin: 0 auto; padding: 1.1rem var(--sf-gutter); max-width: calc(var(--sf-max) + 2 * var(--sf-gutter));
	display: flex; gap: 1.75rem; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.sf-trust ul::-webkit-scrollbar { display: none; }
.sf-trust li { flex: none; scroll-snap-align: start; display: inline-flex; align-items: center; gap: .6rem; color: #E2E8F0; font-family: var(--sf-font-head); font-weight: 700; font-size: .9375rem; white-space: nowrap; }
.sf-trust li::before { content: ""; width: 22px; height: 22px; flex: none; background: var(--sf-sky); -webkit-mask: var(--sf-i-shield) center/contain no-repeat; mask: var(--sf-i-shield) center/contain no-repeat; }
@media (min-width: 1024px) { .sf-trust ul { flex-wrap: wrap; justify-content: center; gap: .75rem 2rem; overflow: visible; padding-block: 1.25rem; } }
@media (min-width: 1280px) { .sf-trust ul { flex-wrap: nowrap; justify-content: space-between; padding-block: 1.4rem; } }

/* ---------- Cards ---------- */
.sf-card {
	position: relative; background: #fff; border: 1px solid var(--sf-line); border-radius: var(--sf-radius); padding: clamp(1.4rem, 1.1rem + 1vw, 2rem);
	box-shadow: var(--sf-shadow); transition: transform .3s var(--sf-ease), box-shadow .3s, border-color .3s; height: 100%; isolation: isolate;
	display: flex; flex-direction: column;
}
.sf-card:hover { transform: translateY(-4px); box-shadow: 0 24px 50px -24px rgba(11, 16, 70, .35); border-color: rgba(31, 107, 255, .35); }
.sf-card h3 { margin: 0 0 .5rem; font-size: clamp(1.125rem, 1.05rem + .35vw, 1.3125rem); }
.sf-card p { margin: 0; color: var(--sf-slate); font-size: .975rem; }
.sf-card > * + p { margin-top: .25rem; }
.is-dark .sf-card, .is-navy .sf-card, .sf-card.is-glass { background: rgba(255, 255, 255, .04); border-color: rgba(255, 255, 255, .09); box-shadow: none; }
.is-dark .sf-card p, .is-navy .sf-card p, .sf-card.is-glass p { color: #A9B8CE; }
.is-dark .sf-card:hover, .is-navy .sf-card:hover { border-color: rgba(56, 189, 248, .4); background: rgba(255, 255, 255, .06); }
.sf-card__icon, .sf-card[class*="sf-icon-"]::before {
	display: grid; place-items: center; width: 52px; height: 52px; border-radius: 14px; margin-bottom: 1.25rem; flex: none;
	background: linear-gradient(135deg, rgba(31, 107, 255, .12), rgba(56, 189, 248, .14)); color: var(--sf-blue);
}
.is-dark .sf-card__icon, .is-navy .sf-card__icon { background: linear-gradient(135deg, rgba(31, 107, 255, .3), rgba(56, 189, 248, .18)); color: var(--sf-ice); }
.sf-card__icon .sf-svg { width: 26px; height: 26px; }
.sf-card[class*="sf-icon-"]::before { content: ""; background: var(--sf-blue); -webkit-mask: var(--sf-icon) center/26px no-repeat; mask: var(--sf-icon) center/26px no-repeat; box-shadow: none; position: relative; z-index: 1; }
.sf-card[class*="sf-icon-"] { padding-top: clamp(1.4rem, 1.1rem + 1vw, 2rem); }
.sf-card[class*="sf-icon-"]::after { content: ""; position: absolute; top: clamp(1.4rem, 1.1rem + 1vw, 2rem); left: clamp(1.4rem, 1.1rem + 1vw, 2rem); width: 52px; height: 52px; border-radius: 14px; background: linear-gradient(135deg, rgba(31, 107, 255, .12), rgba(56, 189, 248, .16)); z-index: 0; }
.is-dark .sf-card[class*="sf-icon-"]::before, .is-navy .sf-card[class*="sf-icon-"]::before { background: var(--sf-ice); }
.is-dark .sf-card[class*="sf-icon-"]::after, .is-navy .sf-card[class*="sf-icon-"]::after { background: linear-gradient(135deg, rgba(31, 107, 255, .35), rgba(56, 189, 248, .2)); }
.sf-icon-shield { --sf-icon: var(--sf-i-shield); } .sf-icon-tools { --sf-icon: var(--sf-i-tools); } .sf-icon-cpu { --sf-icon: var(--sf-i-cpu); }
.sf-icon-layers { --sf-icon: var(--sf-i-layers); } .sf-icon-headset { --sf-icon: var(--sf-i-headset); } .sf-icon-pin { --sf-icon: var(--sf-i-pin); }
.sf-icon-target { --sf-icon: var(--sf-i-target); } .sf-icon-bolt { --sf-icon: var(--sf-i-bolt); } .sf-icon-check { --sf-icon: var(--sf-i-check); }
.sf-icon-clock { --sf-icon: var(--sf-i-clock); } .sf-icon-phone { --sf-icon: var(--sf-i-phone); } .sf-icon-mail { --sf-icon: var(--sf-i-mail); }

/* Service cards (dynamic block) */
.sf-services { display: grid; gap: clamp(1rem, .75rem + 1vw, 1.5rem); grid-template-columns: 1fr; }
@media (min-width: 600px) { .sf-services { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .sf-services { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.sf-service { overflow: hidden; padding: 0; }
.sf-service__media { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: var(--sf-night); }
.sf-service__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--sf-ease); }
.sf-service:hover .sf-service__media img { transform: scale(1.05); }
.sf-service__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(7, 11, 20, 0) 40%, rgba(7, 11, 20, .55) 100%); }
.sf-service__body { padding: 1.5rem clamp(1.25rem, 1rem + 1vw, 1.75rem) 1.75rem; display: flex; flex-direction: column; flex: 1; position: relative; }
.sf-service__body .sf-card__icon { margin-top: -3.25rem; position: relative; z-index: 1; background: #fff; box-shadow: var(--sf-shadow); border: 1px solid var(--sf-line); }
.sf-service__body p { flex: 1; }
.sf-card-link { display: inline-flex; align-items: center; gap: .4rem; margin-top: 1.25rem; min-height: 44px; font-family: var(--sf-font-head); font-weight: 700; color: var(--sf-blue); text-decoration: none; }
.sf-card-link::after { content: ""; width: 1em; height: 1em; background: currentColor; -webkit-mask: var(--sf-i-arrow) center/contain no-repeat; mask: var(--sf-i-arrow) center/contain no-repeat; transition: transform .2s var(--sf-ease); }
.sf-card:hover .sf-card-link::after, .sf-card-link:hover::after { transform: translateX(4px); }
.sf-stretched::before { content: ""; position: absolute; inset: 0; z-index: 2; }
.sf-services-compact { display: grid; gap: 1rem; grid-template-columns: 1fr; margin-top: clamp(1rem, .75rem + 1vw, 1.5rem); }
@media (min-width: 600px) { .sf-services-compact { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .sf-services-compact { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.sf-mini { display: flex; gap: 1rem; align-items: flex-start; padding: 1.25rem; flex-direction: row; }
.sf-mini .sf-card__icon { width: 44px; height: 44px; margin: 0; border-radius: 12px; }
.sf-mini .sf-card__icon .sf-svg { width: 22px; height: 22px; }
.sf-mini h3 { font-size: 1.0625rem; margin-bottom: .25rem; }
.sf-mini p { font-size: .9rem; }
.sf-mini .sf-card-link { display: inline; margin-top: .4rem; min-height: 0; font-size: .9375rem; line-height: 1.5; }
.sf-mini .sf-card-link::after { display: inline-block; vertical-align: -.12em; margin-left: .35rem; }
.sf-mini > div { display: flex; flex-direction: column; align-items: flex-start; gap: .1rem; }

/* ---------- Layered system diagram ---------- */
.sf-media-frame { position: relative; border-radius: calc(var(--sf-radius) + 6px); overflow: hidden; box-shadow: var(--sf-shadow-lg); margin: 0 !important; }
.sf-media-frame img { display: block; width: 100%; height: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
@media (max-width: 1023.98px) { .sf-media-frame img { aspect-ratio: 16 / 10; } }
.sf-media-frame::after { content: ""; position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08); pointer-events: none; }
.sf-layers { list-style: none; counter-reset: layer; margin: 2rem 0 0 !important; padding: 0; position: relative; display: grid; gap: .6rem; }
.sf-layers::before { content: ""; position: absolute; left: 23px; top: 24px; bottom: 24px; width: 2px; background: linear-gradient(180deg, var(--sf-sky), var(--sf-blue) 60%, rgba(31, 107, 255, .2)); }
.sf-layers li { counter-increment: layer; position: relative; display: grid; grid-template-columns: 48px 1fr; column-gap: 1rem; row-gap: .1rem; align-items: center; padding: .55rem 1rem .55rem 0; margin: 0; font-family: var(--sf-font-head); font-weight: 700; color: #fff; }
.sf-layers li::before { grid-row: 1 / span 2; }
.sf-layers li strong { align-self: end; line-height: 1.25; }
.sf-layers li span { align-self: start; line-height: 1.45; }
.sf-layers li::before { content: counter(layer, decimal-leading-zero); position: relative; z-index: 1; flex: none; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; font-size: .8125rem; letter-spacing: .04em; color: #fff; background: var(--sf-night); border: 1px solid rgba(56, 189, 248, .45); box-shadow: 0 0 0 6px var(--sf-ink), 0 0 22px -4px rgba(56, 189, 248, .55); }
.sf-layers li > * { margin: 0; }
.sf-layers li span, .sf-layers li em { display: block; font-family: var(--wp--preset--font-family--body); font-style: normal; font-weight: 400; font-size: .875rem; color: #8FA3BF; }
.sf-layers li:last-child::before { background: var(--sf-blue); border-color: var(--sf-blue); }
.is-cloud .sf-layers li, .is-white .sf-layers li { color: var(--sf-navy); }
.is-cloud .sf-layers li::before, .is-white .sf-layers li::before { box-shadow: 0 0 0 6px var(--sf-cloud); }

/* ---------- Chips ---------- */
.sf-chips { list-style: none; display: flex; flex-wrap: wrap; gap: .6rem; margin: 1.75rem 0 0 !important; padding: 0; }
.sf-chips li { margin: 0; }
.sf-chips li, .sf-chip { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; padding: .55rem 1rem; border-radius: 999px; font-weight: 600; font-size: .9375rem; background: #fff; border: 1px solid var(--sf-line); color: var(--sf-navy); text-decoration: none; }
.sf-chips li::before { content: ""; width: 16px; height: 16px; background: var(--sf-blue); -webkit-mask: var(--sf-i-check) center/contain no-repeat; mask: var(--sf-i-check) center/contain no-repeat; }
.sf-chips.is-links li { padding: 0; }
.sf-chips.is-links li::before { display: none; }
.sf-chips li > a { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; padding: .55rem 1.1rem; color: inherit; text-decoration: none; border-radius: inherit; }
.sf-chips li > a::after { content: ""; width: 14px; height: 14px; background: currentColor; opacity: .6; -webkit-mask: var(--sf-i-arrow) center/contain no-repeat; mask: var(--sf-i-arrow) center/contain no-repeat; }
.sf-chips.is-links li:hover { border-color: var(--sf-blue); color: var(--sf-blue); }
.is-dark .sf-chips li, .is-navy .sf-chips li { background: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); color: #E2E8F0; }
.is-dark .sf-chips li::before, .is-navy .sf-chips li::before { background: var(--sf-sky); }
.is-dark .sf-chips.is-links li:hover, .is-navy .sf-chips.is-links li:hover { border-color: var(--sf-sky); color: #fff; }
.sf-section.is-dark .sf-chips a, .sf-section.is-navy .sf-chips a { color: inherit; }

/* Feature panel (residential / business) */
.sf-panel { position: relative; border-radius: calc(var(--sf-radius) + 8px); overflow: hidden; background: var(--sf-ink); color: #C7D2E3; padding: clamp(1.75rem, 1rem + 4vw, 4rem); isolation: isolate; }
.sf-panel > .wp-block-image { position: absolute !important; inset: 0; z-index: -2; margin: 0 !important; }
.sf-panel > .wp-block-image img { width: 100%; height: 100%; object-fit: cover; }
.sf-panel::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(7, 11, 20, .96) 0%, rgba(7, 11, 20, .85) 50%, rgba(7, 11, 20, .35) 100%); }
@media (max-width: 781.98px) { .sf-panel::before { background: linear-gradient(0deg, rgba(7, 11, 20, .97) 0%, rgba(7, 11, 20, .8) 70%, rgba(7, 11, 20, .55) 100%); } }
.sf-panel h2 { color: #fff; }
.sf-panel .sf-lead { color: #B8C6DA; }
.sf-panel__content { max-width: 640px; }
.sf-panel .sf-chips li { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .14); color: #fff; }
.sf-panel .sf-chips li::before { background: var(--sf-sky); }

/* ---------- Process steps ---------- */
.sf-steps { list-style: none; counter-reset: step; margin: 0 !important; padding: 0; display: grid; gap: 1rem; grid-template-columns: 1fr; position: relative; }
@media (min-width: 600px) { .sf-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .sf-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; } }
.sf-steps > li { counter-increment: step; position: relative; margin: 0; padding: 1.75rem 1.5rem 1.6rem; border-radius: var(--sf-radius); background: #fff; border: 1px solid var(--sf-line); box-shadow: var(--sf-shadow); }
.sf-steps > li::before { content: counter(step, decimal-leading-zero); display: block; font-family: var(--sf-font-head); font-weight: 800; font-size: 2.75rem; line-height: 1; letter-spacing: -.04em; margin-bottom: 1rem; background: linear-gradient(135deg, var(--sf-blue), var(--sf-sky)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.sf-steps > li strong { display: block; font-family: var(--sf-font-head); font-weight: 800; color: var(--sf-navy); font-size: 1.125rem; text-transform: uppercase; letter-spacing: .02em; margin-bottom: .35rem; }
.sf-steps > li { color: var(--sf-slate); font-size: .975rem; }
@media (max-width: 599.98px) {
	.sf-steps { gap: 0; padding-left: 0; }
	.sf-steps > li { border: 0; box-shadow: none; background: none; padding: 0 0 1.75rem 4.25rem; border-radius: 0; }
	.sf-steps > li::before { position: absolute; left: 0; top: 0; width: 48px; height: 48px; display: grid; place-items: center; font-size: 1rem; border-radius: 14px; background: var(--sf-blue); color: #fff; -webkit-background-clip: border-box; background-clip: border-box; }
	.sf-steps > li::after { content: ""; position: absolute; left: 23px; top: 56px; bottom: 8px; width: 2px; background: var(--sf-line); }
	.sf-steps > li:last-child::after { display: none; }
}
.is-dark .sf-steps > li, .is-navy .sf-steps > li { background: rgba(255, 255, 255, .04); border-color: rgba(255, 255, 255, .09); color: #A9B8CE; }
.is-dark .sf-steps > li strong, .is-navy .sf-steps > li strong { color: #fff; }
@media (max-width: 599.98px) { .is-dark .sf-steps > li, .is-navy .sf-steps > li { background: none; } .is-dark .sf-steps > li::after, .is-navy .sf-steps > li::after { background: rgba(255, 255, 255, .12); } }

/* ---------- Projects ---------- */
.sf-projects { display: grid; gap: clamp(1rem, .75rem + 1vw, 1.5rem); grid-template-columns: 1fr; }
@media (min-width: 782px) { .sf-projects { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1280px) { .sf-projects.is-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.sf-project { padding: 0; overflow: hidden; }
.sf-project__media { position: relative; aspect-ratio: 16 / 9; background: var(--sf-night); overflow: hidden; }
.sf-project__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--sf-ease); }
.sf-project:hover .sf-project__media img { transform: scale(1.04); }
.sf-project__badge { position: absolute; left: 1rem; top: 1rem; z-index: 1; padding: .35rem .7rem; border-radius: 999px; font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; background: rgba(7, 11, 20, .75); color: #fff; backdrop-filter: blur(6px); }
.sf-project__badge.is-soon { background: rgba(31, 107, 255, .9); }
.sf-project__body { padding: 1.5rem clamp(1.25rem, 1rem + 1vw, 1.75rem) 1.75rem; display: flex; flex-direction: column; gap: .75rem; flex: 1; }
.sf-project__meta { display: flex; flex-wrap: wrap; gap: .5rem 1rem; font-size: .875rem; color: var(--sf-slate); }
.sf-project__meta span { display: inline-flex; align-items: center; gap: .35rem; }
.sf-project__meta .sf-ico { width: 1em; height: 1em; color: var(--sf-blue); }
.sf-project dl { display: grid; gap: .6rem; margin: .25rem 0 0; }
.sf-project dt { font-family: var(--sf-font-head); font-weight: 800; font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: var(--sf-blue); }
.sf-project dd { margin: 0; color: var(--sf-slate); font-size: .95rem; }
.sf-project h3 { margin: 0; }

/* ---------- Testimonials ---------- */
.sf-testimonials { display: grid; gap: clamp(1rem, .75rem + 1vw, 1.5rem); grid-auto-flow: column; grid-auto-columns: minmax(85%, 1fr); overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: .5rem; scrollbar-width: thin; }
@media (min-width: 782px) { .sf-testimonials { grid-auto-flow: row; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: visible; } }
@media (min-width: 1024px) { .sf-testimonials { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.sf-quote { scroll-snap-align: start; margin: 0; }
.sf-quote blockquote { margin: 0 0 1.5rem; font-size: 1.0625rem; line-height: 1.65; color: var(--sf-charcoal); flex: 1; }
.sf-quote blockquote::before { content: "\201C"; display: block; font-family: Georgia, serif; font-size: 3.5rem; line-height: .8; color: var(--sf-blue); margin-bottom: .5rem; }
.sf-quote figcaption { display: flex; flex-direction: column; gap: .15rem; padding-top: 1rem; border-top: 1px solid var(--sf-line); }
.sf-quote figcaption strong { font-family: var(--sf-font-head); color: var(--sf-navy); }
.sf-quote figcaption span { font-size: .875rem; color: var(--sf-slate); }
.sf-sample-flag { position: absolute; top: .9rem; right: .9rem; padding: .25rem .6rem; border-radius: 999px; background: #FEF3C7; color: #92400E; font-size: .75rem; font-weight: 700; }

/* ---------- FAQ ---------- */
.sf-faq { display: grid; gap: .75rem; }
.sf-faq details { background: #fff; border: 1px solid var(--sf-line); border-radius: 14px; transition: border-color .2s, box-shadow .2s; }
.sf-faq details[open] { border-color: rgba(31, 107, 255, .35); box-shadow: var(--sf-shadow); }
.sf-faq summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 60px; padding: 1rem 1.25rem; font-family: var(--sf-font-head); font-weight: 700; font-size: 1.0625rem; color: var(--sf-navy); }
.sf-faq summary::-webkit-details-marker { display: none; }
.sf-faq summary::after { content: ""; flex: none; width: 32px; height: 32px; border-radius: 10px; background: var(--sf-cloud) var(--sf-i-plus) center/16px no-repeat; transition: transform .25s var(--sf-ease); }
.sf-faq details[open] summary::after { transform: rotate(45deg); }
.sf-faq__answer { padding: 0 1.25rem 1.25rem; color: var(--sf-slate); }
.sf-faq__answer > :first-child { margin-top: 0; } .sf-faq__answer > :last-child { margin-bottom: 0; }
.is-dark .sf-faq details, .is-navy .sf-faq details { background: rgba(255, 255, 255, .04); border-color: rgba(255, 255, 255, .1); }
.is-dark .sf-faq summary, .is-navy .sf-faq summary { color: #fff; }
.is-dark .sf-faq__answer, .is-navy .sf-faq__answer { color: #A9B8CE; }
.is-dark .sf-faq summary::after, .is-navy .sf-faq summary::after { background-color: rgba(255, 255, 255, .9); }

/* ---------- Areas ---------- */
.sf-areas { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.5rem 0 0; padding: 0; }
.sf-areas li { margin: 0; }
.sf-areas a, .sf-areas span { display: inline-flex; align-items: center; gap: .4rem; min-height: 40px; padding: .45rem .9rem; border-radius: 999px; background: #fff; border: 1px solid var(--sf-line); color: var(--sf-navy); font-size: .9375rem; font-weight: 600; text-decoration: none; }
.sf-areas a:hover { border-color: var(--sf-blue); color: var(--sf-blue); }
.sf-areas .is-primary a, .sf-areas .is-primary span { background: var(--sf-navy); border-color: var(--sf-navy); color: #fff; }
.sf-areas .sf-ico { width: 14px; height: 14px; color: var(--sf-blue); }
.sf-areas .is-primary .sf-ico { color: var(--sf-sky); }
.sf-map { position: relative; border-radius: var(--sf-radius); overflow: hidden; aspect-ratio: 4 / 3; background: var(--sf-cloud); box-shadow: var(--sf-shadow); border: 1px solid var(--sf-line); }
.sf-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; }
.sf-map__consent { position: absolute; inset: 0; display: grid; place-items: center; text-align: center; padding: 1.5rem; background: linear-gradient(135deg, var(--sf-cloud), #E8EEF8); }
.sf-map__consent p { margin: 0 0 1rem; color: var(--sf-slate); }
@media (min-width: 1024px) { .sf-map.is-tall { aspect-ratio: auto; height: 100%; min-height: 420px; } }

/* ---------- CTA band ---------- */
.sf-cta { position: relative; overflow: hidden; border-radius: calc(var(--sf-radius) + 8px); padding: clamp(2rem, 1.25rem + 4vw, 4.5rem) !important; color: #D6E0EE; isolation: isolate;
	background: radial-gradient(70% 120% at 100% 0%, rgba(56, 189, 248, .35) 0%, rgba(56, 189, 248, 0) 60%), linear-gradient(120deg, var(--sf-navy) 0%, #0A1A6B 55%, var(--sf-blue-deep) 130%); }
.sf-cta::after { content: ""; position: absolute; right: -60px; bottom: -80px; width: 340px; height: 340px; z-index: -1; opacity: .12; background: #fff; -webkit-mask: var(--sf-i-shield) center/contain no-repeat; mask: var(--sf-i-shield) center/contain no-repeat; }
.sf-cta h2 { color: #fff; margin-bottom: .4em; max-width: 22ch; }
.sf-cta p { color: #C7D6F0; max-width: 60ch; margin: 0; }
.sf-cta .sf-btns { margin-top: 1.75rem !important; }
.sf-cta-wrap { padding-block: clamp(1rem, .5rem + 2vw, 2rem) var(--sf-section-y) !important; }

/* ---------- Content page (posts, legal) ---------- */
.sf-page-hero { position: relative; background: var(--sf-ink); color: #C7D2E3; padding: calc(var(--sf-header-h) + clamp(2.5rem, 2rem + 3vw, 4.5rem)) 0 clamp(2.5rem, 2rem + 2vw, 3.5rem) !important; margin: 0 !important; overflow: hidden; isolation: isolate; }
.sf-page-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(70% 90% at 90% 0%, rgba(31, 107, 255, .35) 0%, rgba(31, 107, 255, 0) 60%), linear-gradient(180deg, var(--sf-navy) 0%, var(--sf-ink) 100%); }
.sf-page-hero h1 { color: #fff; max-width: 24ch; margin: .75rem 0 0; font-size: clamp(2rem, 1.3rem + 3vw, 3.5rem); }
.sf-page-hero .wp-block-post-terms a, .sf-page-hero .sf-post-meta { color: var(--sf-ice); }
.sf-post-meta { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; margin-top: 1.25rem !important; font-size: .9375rem; color: #9FB0C8; }
.sf-post-meta > * { margin: 0 !important; }
.sf-prose { padding-block: clamp(2.5rem, 2rem + 3vw, 4.5rem) !important; }
.sf-prose > * { max-width: 760px; margin-inline: auto !important; }
.sf-prose > .alignwide { max-width: var(--sf-max); }
.sf-prose h2 { margin-top: 2em; font-size: clamp(1.5rem, 1.25rem + 1vw, 2rem); }
.sf-prose h3 { margin-top: 1.6em; }
.sf-prose p, .sf-prose li { font-size: 1.0625rem; color: #283548; }
.sf-prose ul, .sf-prose ol { padding-left: 1.25rem; }
.sf-prose li + li { margin-top: .4rem; }
.sf-prose a { color: var(--sf-blue); text-decoration: underline; }
.sf-prose blockquote { border-left: 4px solid var(--sf-blue); padding: .5rem 0 .5rem 1.25rem; margin-left: 0; color: var(--sf-navy); font-weight: 500; }
.sf-prose table { width: 100%; border-collapse: collapse; font-size: .9375rem; }
.sf-prose .wp-block-table { overflow-x: auto; }
.sf-prose th, .sf-prose td { border: 1px solid var(--sf-line); padding: .7rem .85rem; text-align: left; }
.sf-prose th { background: var(--sf-cloud); color: var(--sf-navy); }
.sf-prose .wp-block-post-featured-image img, .sf-prose .wp-block-image img { border-radius: var(--sf-radius); }
.sf-callout { background: var(--sf-cloud); border: 1px solid var(--sf-line); border-left: 4px solid var(--sf-blue); border-radius: 14px; padding: 1.25rem 1.5rem !important; }
.sf-callout > :last-child { margin-bottom: 0; }

/* Blog cards (query loop) */
.sf-posts .wp-block-post-template { display: grid; gap: clamp(1rem, .75rem + 1vw, 1.5rem); grid-template-columns: 1fr; list-style: none; padding: 0; margin: 0; }
@media (min-width: 782px) { .sf-posts .wp-block-post-template { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .sf-posts .wp-block-post-template { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.sf-posts .wp-block-post-template > li { margin: 0; }
.sf-post-card { padding: 0 !important; overflow: hidden; gap: 0; }
.sf-post-card .wp-block-post-featured-image { margin: 0; aspect-ratio: 16 / 10; overflow: hidden; background: var(--sf-night); }
.sf-post-card .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; }
.sf-post-card .sf-post-card__body { padding: 1.4rem 1.5rem 1.6rem; display: flex; flex-direction: column; gap: .6rem; flex: 1; }
.sf-post-card .wp-block-post-terms { font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; margin: 0; }
.sf-post-card .wp-block-post-terms a { color: var(--sf-blue); text-decoration: none; }
.sf-post-card .wp-block-post-title { font-size: 1.25rem; margin: 0; }
.sf-post-card .wp-block-post-title a { color: var(--sf-navy); text-decoration: none; }
.sf-post-card .wp-block-post-title a::before { content: ""; position: absolute; inset: 0; }
.sf-post-card .wp-block-post-excerpt { color: var(--sf-slate); font-size: .95rem; margin: 0; }
.sf-post-card .wp-block-post-excerpt p { margin: 0; }
.sf-post-card .wp-block-post-date { font-size: .8125rem; color: var(--sf-mist); margin-top: auto; }
.sf-cats { display: flex; gap: .5rem; overflow-x: auto; scrollbar-width: none; padding-bottom: .25rem; margin-top: 1.75rem !important; }
.sf-cats::-webkit-scrollbar { display: none; }
.sf-cats a { flex: none; display: inline-flex; align-items: center; min-height: 40px; padding: .4rem .9rem; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .16); color: #E2E8F0; text-decoration: none; font-size: .875rem; font-weight: 600; }
.sf-cats a:hover, .sf-cats a.is-active { background: #fff; color: var(--sf-navy); }
.wp-block-query-pagination { margin-top: 2.5rem !important; gap: .5rem; justify-content: center; }
.wp-block-query-pagination a, .wp-block-query-pagination .page-numbers { display: inline-grid; place-items: center; min-width: 44px; min-height: 44px; padding: 0 .75rem; border-radius: 10px; border: 1px solid var(--sf-line); text-decoration: none; color: var(--sf-navy); }
.wp-block-query-pagination .current { background: var(--sf-navy); color: #fff; border-color: var(--sf-navy); }
.sf-post-cta { margin-top: 3rem !important; }

/* ---------- Forms ---------- */
.sf-form { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 782px) { .sf-form { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem 1.25rem; } .sf-form .is-full { grid-column: 1 / -1; } }
.sf-field { display: flex; flex-direction: column; gap: .4rem; }
.sf-field label { font-weight: 600; font-size: .9375rem; color: var(--sf-navy); }
.sf-field label .req { color: var(--sf-blue); }
.sf-field input, .sf-field select, .sf-field textarea {
	width: 100%; min-height: 52px; padding: .8rem 1rem; font: inherit; font-size: 16px; color: var(--sf-charcoal);
	background: #fff; border: 1.5px solid #D5DDEA; border-radius: 12px; transition: border-color .2s, box-shadow .2s; appearance: none;
}
.sf-field select { background-image: var(--sf-i-chevron); background-repeat: no-repeat; background-position: right 1rem center; background-size: 16px; padding-right: 2.75rem; }
.sf-field textarea { min-height: 130px; resize: vertical; }
.sf-field input:focus, .sf-field select:focus, .sf-field textarea:focus { outline: none; border-color: var(--sf-blue); box-shadow: 0 0 0 4px rgba(31, 107, 255, .15); }
.sf-field.has-error input, .sf-field.has-error select, .sf-field.has-error textarea { border-color: #DC2626; }
.sf-field__error { color: #B91C1C; font-size: .8125rem; min-height: 0; }
.sf-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.sf-form__foot { display: flex; flex-direction: column; gap: 1rem; align-items: stretch; }
.sf-form__foot .sf-btn { width: 100%; min-height: 56px; font-size: 1.0625rem; }
@media (min-width: 782px) { .sf-form__foot { flex-direction: row; align-items: center; justify-content: space-between; } .sf-form__foot .sf-btn { width: auto; } }
.sf-form__note { font-size: .875rem; color: var(--sf-slate); margin: 0; }
.sf-form-card { background: #fff; border-radius: calc(var(--sf-radius) + 4px); padding: clamp(1.25rem, 1rem + 2vw, 2.5rem); box-shadow: var(--sf-shadow-lg); border: 1px solid var(--sf-line); }
.sf-form-card h2, .sf-form-card h3 { margin-top: 0; }
.sf-notice { padding: 1rem 1.25rem; border-radius: 12px; font-weight: 500; margin-bottom: 1.25rem; }
.sf-notice.is-error { background: #FEF2F2; color: #991B1B; border: 1px solid #FECACA; }
.sf-notice.is-success { background: #ECFDF5; color: #065F46; border: 1px solid #A7F3D0; }

/* Contact details block */
.sf-contact { list-style: none; margin: 0; padding: 0; display: grid; gap: .9rem; }
.sf-contact li { display: flex; gap: 1rem; align-items: flex-start; margin: 0; }
.sf-contact .sf-card__icon { width: 46px; height: 46px; margin: 0; border-radius: 12px; }
.sf-contact .sf-card__icon .sf-svg { width: 22px; height: 22px; }
.sf-contact strong { display: block; font-family: var(--sf-font-head); color: var(--sf-navy); font-size: .8125rem; letter-spacing: .08em; text-transform: uppercase; }
.sf-contact a, .sf-contact span { color: var(--sf-charcoal); text-decoration: none; font-weight: 500; }
.sf-contact a:hover { color: var(--sf-blue); }
.is-dark .sf-contact strong, .is-navy .sf-contact strong { color: var(--sf-ice); }
.is-dark .sf-contact a, .is-dark .sf-contact span, .is-navy .sf-contact a, .is-navy .sf-contact span { color: #fff; }
.sf-hours { width: 100%; border-collapse: collapse; font-size: .9375rem; }
.sf-hours td { padding: .45rem 0; border-bottom: 1px dashed var(--sf-line); }
.sf-hours td:last-child { text-align: right; font-weight: 600; color: var(--sf-navy); }

/* ---------- Footer ---------- */
.sf-footer { background: var(--sf-ink); color: #9FB0C8; padding-top: clamp(3.5rem, 2.5rem + 4vw, 6rem); font-size: .9375rem; position: relative; overflow: hidden; }
.sf-footer::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 1px; background: linear-gradient(90deg, transparent, rgba(56, 189, 248, .5), transparent); }
.sf-footer__grid { display: grid; gap: 2.25rem 1.5rem; grid-template-columns: 1fr; }
@media (min-width: 600px) { .sf-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .sf-footer__brand { grid-column: 1 / -1; } }
@media (min-width: 1024px) { .sf-footer__grid { grid-template-columns: 1.5fr 1fr 1fr 1fr 1.3fr; } .sf-footer__brand { grid-column: auto; } }
.sf-footer__brand p { margin: 1.25rem 0 0; max-width: 36ch; line-height: 1.7; }
.sf-footer__logo img { height: 92px; width: auto; display: block; }
.sf-footer h2 { font-size: .8125rem; letter-spacing: .14em; text-transform: uppercase; color: #fff; margin: 0 0 1rem; font-weight: 800; }
.sf-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .1rem; }
.sf-footer ul a { display: inline-flex; align-items: center; min-height: 36px; color: #C7D2E3; text-decoration: none; }
.sf-footer a:hover { color: #fff; }
.sf-footer__contact li { display: flex; gap: .65rem; align-items: flex-start; padding: .35rem 0; color: #C7D2E3; }
.sf-footer__contact .sf-svg { width: 18px; height: 18px; margin-top: .2rem; color: var(--sf-sky); }
.sf-footer__contact a { min-height: 0; }
.sf-footer__social { display: flex; gap: .5rem; margin-top: 1.5rem; }
.sf-footer__social a { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: rgba(255, 255, 255, .06); color: #fff; border: 1px solid rgba(255, 255, 255, .1); }
.sf-footer__social a:hover { background: var(--sf-blue); border-color: var(--sf-blue); }
.sf-footer__social .sf-svg { width: 20px; height: 20px; }
.sf-footer__bottom { margin-top: clamp(2.5rem, 2rem + 2vw, 4rem); padding-block: 1.5rem; border-top: 1px solid rgba(255, 255, 255, .08); display: flex; flex-direction: column; gap: .75rem; font-size: .875rem; }
.sf-footer__bottom ul { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; }
.sf-footer__bottom ul a { min-height: 32px; }
@media (min-width: 782px) { .sf-footer__bottom { flex-direction: row; justify-content: space-between; align-items: center; } }
@media (max-width: 599.98px) {
	.sf-footer details > summary { list-style: none; display: flex; justify-content: space-between; align-items: center; min-height: 48px; cursor: pointer; border-bottom: 1px solid rgba(255, 255, 255, .08); }
	.sf-footer details > summary::-webkit-details-marker { display: none; }
	.sf-footer details > summary::after { content: ""; width: 16px; height: 16px; background: #fff; -webkit-mask: var(--sf-i-chevron) center/contain no-repeat; mask: var(--sf-i-chevron) center/contain no-repeat; transition: transform .2s; }
	.sf-footer details[open] > summary::after { transform: rotate(180deg); }
	.sf-footer details > summary h2 { margin: 0; }
	.sf-footer details ul { padding: .5rem 0 .75rem; }
}
@media (min-width: 600px) { .sf-footer details > summary { list-style: none; pointer-events: none; } .sf-footer details > summary::-webkit-details-marker { display: none; } }

/* ---------- 404 / search ---------- */
.sf-404 { text-align: center; }
.sf-404 .sf-code { font-family: var(--sf-font-head); font-weight: 800; font-size: clamp(5rem, 3rem + 10vw, 10rem); line-height: 1; background: linear-gradient(135deg, var(--sf-blue), var(--sf-sky)); -webkit-background-clip: text; background-clip: text; color: transparent; margin: 0; }
.wp-block-search__inside-wrapper { gap: .5rem; }
.wp-block-search__input { min-height: 52px; border-radius: 12px !important; border: 1.5px solid #D5DDEA !important; padding: .75rem 1rem !important; font-size: 16px !important; }
.wp-block-search__button { min-height: 52px; border-radius: 12px !important; margin: 0 !important; }

/* ---------- Reveal animation ---------- */
@media (prefers-reduced-motion: no-preference) {
	.sf-js .sf-reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s var(--sf-ease), transform .7s var(--sf-ease); }
	.sf-js .sf-reveal.is-in { opacity: 1; transform: none; }
	.sf-layers li { animation: none; }
	.sf-js .sf-layers.is-in li { animation: sf-layer-in .6s var(--sf-ease) both; }
	.sf-js .sf-layers.is-in li:nth-child(2) { animation-delay: .08s; } .sf-js .sf-layers.is-in li:nth-child(3) { animation-delay: .16s; }
	.sf-js .sf-layers.is-in li:nth-child(4) { animation-delay: .24s; } .sf-js .sf-layers.is-in li:nth-child(5) { animation-delay: .32s; }
	.sf-js .sf-layers.is-in li:nth-child(6) { animation-delay: .4s; }
	@keyframes sf-layer-in { from { opacity: 0; transform: translateX(-14px); } to { opacity: 1; transform: none; } }
	.sf-hero__content > * { animation: sf-rise .8s var(--sf-ease) both; }
	.sf-hero__content > :nth-child(2) { animation-delay: .06s; } .sf-hero__content > :nth-child(3) { animation-delay: .12s; }
	.sf-hero__content > :nth-child(4) { animation-delay: .18s; } .sf-hero__content > :nth-child(5) { animation-delay: .24s; }
	@keyframes sf-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* ---------- Editor niceties ---------- */
.editor-styles-wrapper .sf-hero, .editor-styles-wrapper .sf-page-hero { padding-top: 6rem !important; }
.editor-styles-wrapper .sf-reveal { opacity: 1 !important; transform: none !important; }

/* Centered button rows */
.sf-btns.is-center-buttons { justify-content: center; margin-top: clamp(2rem, 1.5rem + 1.5vw, 3rem) !important; }

/* Mega menu for long sub-menus (e.g. Services) */
@media (min-width: 1024px) {
	.sf-nav .sub-menu.is-mega { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); min-width: 560px; gap: 0 .25rem; }
}

/* Blog cards: keep category links clickable above the stretched title link */
.sf-post-card { position: relative; }
.sf-post-card .wp-block-post-terms { position: relative; z-index: 3; }
.sf-post-card .wp-block-post-title { font-size: 1.25rem; line-height: 1.3; }
.sf-eyebrow-terms { font-family: var(--sf-font-head); font-weight: 700; font-size: .8125rem; letter-spacing: .14em; text-transform: uppercase; }
.sf-eyebrow-terms a { color: var(--sf-sky); text-decoration: none; }
.sf-post-meta p { margin: 0; }
.sf-related-title { margin-bottom: 1.75rem !important; }

/* Category list as chips (core/categories) */
ul.sf-cats, .sf-cats ul { list-style: none; display: flex; flex-wrap: nowrap; gap: .5rem; overflow-x: auto; scrollbar-width: none; padding: 0 0 .25rem; margin: 1.75rem 0 0; }
ul.sf-cats li { flex: none; margin: 0; }
@media (min-width: 782px) { ul.sf-cats { flex-wrap: wrap; overflow: visible; } }

/* Contact & quote side panels */
.sf-contact-side, .sf-quote-side { align-self: start; }
.sf-contact-side h2 { font-size: clamp(1.375rem, 1.2rem + .8vw, 1.75rem); }
.sf-contact-side .sf-btns, .sf-quote-side .sf-btns { margin-top: 1.5rem !important; }
.sf-quote-side h3 { margin-top: 0; }
.sf-quote-side h3 + .sf-btns { margin-top: .75rem !important; }
.sf-steps.is-compact-steps { grid-template-columns: 1fr !important; gap: 0; margin-bottom: 2rem !important; }
.sf-steps.is-compact-steps > li { border: 0; box-shadow: none; background: none; padding: 0 0 1.5rem 4rem; border-radius: 0; font-size: .95rem; }
.sf-steps.is-compact-steps > li::before { position: absolute; left: 0; top: 0; width: 44px; height: 44px; display: grid; place-items: center; font-size: .95rem; border-radius: 12px; background: var(--sf-blue); color: #fff; -webkit-background-clip: border-box; background-clip: border-box; margin: 0; }
.sf-steps.is-compact-steps > li strong { font-size: 1rem; text-transform: none; letter-spacing: 0; }
.sf-split.sf-contact-split, .sf-split.is-wide-left { align-items: start; }
.sf-form-card h2 { font-size: clamp(1.375rem, 1.2rem + .8vw, 1.875rem); }

/* Phone refinements */
.sf-hero__trust { flex-wrap: nowrap; align-items: flex-start; }
.sf-hero__trust::before { flex: none; margin-top: .1em; }
@media (max-width: 599.98px) {
	.wp-block-buttons.sf-btns { flex-direction: column; align-items: stretch; }
	.wp-block-buttons.sf-btns > .wp-block-button { width: 100%; }
	.wp-block-buttons.sf-btns .wp-block-button__link { width: 100%; }
	.sf-footer ul a { min-height: 44px; }
	.sf-actionbar a { font-size: .875rem; gap: .3rem; }
	.sf-service__media { aspect-ratio: 16 / 9; }
}

/* Icon cards (icon injected server-side as .sf-card__icon) */
.sf-card[class*="sf-icon-"]::before, .sf-card[class*="sf-icon-"]::after { content: none; display: none; }
.sf-card > .sf-card__icon { margin-bottom: 1.25rem; }
.sf-card > .sf-card__icon + * { margin-top: 0 !important; }
.sf-card > * + p { margin-top: .35rem !important; }

/* Flow spacing inside sections */
.sf-section-head > * + * { margin-top: 0; }
.sf-section-head .sf-eyebrow + h2 { margin-top: 0 !important; }
.sf-hero__content > * + * { margin-top: 0; }
.sf-prose-section .sf-container > h2, .sf-prose-section .sf-container > h3 { margin-top: 2.25rem; margin-bottom: .5rem; }
.sf-prose-section .sf-container > h3 { font-size: clamp(1.2rem, 1.05rem + .6vw, 1.45rem); }
.sf-prose-section .sf-container > p, .sf-prose-section .sf-container > ul, .sf-prose-section .sf-container > ol { color: #283548; font-size: 1.0625rem; }
.sf-prose-section .sf-container > ul { padding-left: 1.25rem; }
.sf-prose-section .sf-callout { margin-top: 2rem; }
.sf-split__content > * + *, .sf-system__content > * + *, .sf-business__content > * + *, .sf-panel__content > * + * { margin-top: 1rem; }
.sf-split__content > .sf-eyebrow + h2, .sf-system__content > .sf-eyebrow + h2, .sf-business__content > .sf-eyebrow + h2, .sf-panel__content > .sf-eyebrow + h2 { margin-top: 0; }
.sf-split__content ul { padding-left: 1.25rem; }
.sf-split__content li + li { margin-top: .3rem; }
.sf-prose > .wp-block-post-featured-image { margin-bottom: 2.5rem !important; }
.sf-page-hero .sf-container > * + * { margin-top: .75rem; }
.sf-page-hero .sf-breadcrumbs + * { margin-top: 1rem; }
@media (min-width: 782px) { .sf-footer__bottom { padding-right: 230px; } }

/* Performance: skip rendering work for off-screen sections until they approach the viewport. */
.sf-main .sf-section:not(.sf-hero):not(.sf-trust), .sf-footer { content-visibility: auto; contain-intrinsic-size: auto 900px; }
