/* ==========================================================================
   Smart Shield — base: design tokens, typography, buttons, icons, motion
   ========================================================================== */

:root {
	--ss-navy: #0b1f3a;
	--ss-midnight: #071629;
	--ss-blue: #1f6fe5;
	--ss-electric: #2f5bff;
	--ss-cyan: #12c2e9;
	--ss-sky: #eaf3ff;
	--ss-mist: #f4f8fd;
	--ss-line: #dce6f3;
	--ss-slate: #56677b;
	--ss-white: #ffffff;
	--ss-grad: linear-gradient(120deg, #2f5bff 0%, #1f8ff0 55%, #12c2e9 100%);
	--ss-grad-night: linear-gradient(160deg, #0b1f3a 0%, #071629 100%);
	--ss-radius-lg: 32px;
	--ss-radius: 24px;
	--ss-radius-sm: 16px;
	--ss-shadow: 0 18px 50px rgba(11, 31, 58, .10);
	--ss-shadow-lg: 0 30px 80px rgba(11, 31, 58, .18);
	--ss-section-pad: clamp(64px, 9vw, 120px);
	--ss-ease: cubic-bezier(.2, .7, .2, 1);
}

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img { max-width: 100%; height: auto; }

/* Anchored headings land below the sticky header */
[id] { scroll-margin-top: 110px; }

/* Remove default gaps between full-width sections and around main/footer */
.wp-site-blocks > * + * { margin-block-start: 0; }
.ss-main { margin-block: 0 !important; }
.wp-block-post-content > * { margin-block-start: 0; margin-block-end: 0; }

/* ---------- Section rhythm ---------- */
.ss-section { padding-block: var(--ss-section-pad); }
.ss-soft { background: var(--ss-mist); }

.ss-section h2 { font-size: clamp(2rem, 3.6vw, 3rem); margin-block: .35em .45em; }
.ss-section h3 { font-size: 1.22rem; letter-spacing: -.01em; }

.ss-kicker {
	display: inline-flex;
	align-items: center;
	gap: .55em;
	font-size: .8rem !important;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ss-blue);
	margin-bottom: 0 !important;
}
.ss-kicker::before {
	content: "";
	width: 8px; height: 8px;
	border-radius: 50%;
	background: var(--ss-cyan);
	box-shadow: 0 0 0 4px rgba(18, 194, 233, .18);
}
p.has-text-align-center.ss-kicker { display: flex; justify-content: center; }

.ss-intro {
	max-width: 680px;
	margin-inline: auto !important;
	color: var(--ss-slate);
	font-size: 1.125rem;
	line-height: 1.65;
}

/* ---------- Buttons ---------- */
.wp-block-button__link {
	padding: .95em 1.6em;
	font-size: 1rem;
	line-height: 1.2;
	display: inline-flex;
	align-items: center;
	gap: .55em;
	transition: transform .2s var(--ss-ease), box-shadow .2s var(--ss-ease), background .2s;
	min-height: 48px; /* large tap target */
}
.wp-block-button__link:hover { transform: translateY(-2px); }
.wp-block-button__link:focus-visible { outline: 3px solid var(--ss-cyan); outline-offset: 3px; }

.ss-btn-quote .wp-block-button__link {
	background: var(--ss-grad);
	color: #fff;
	box-shadow: 0 10px 28px rgba(47, 91, 255, .35);
}
.ss-btn-quote .wp-block-button__link:hover { color: #fff; box-shadow: 0 14px 34px rgba(47, 91, 255, .45); }

.ss-btn-glass .wp-block-button__link {
	background: rgba(255, 255, 255, .08);
	color: #fff;
	box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .55);
	backdrop-filter: blur(8px);
}
.ss-btn-glass .wp-block-button__link:hover { background: rgba(255, 255, 255, .18); color: #fff; }

.ss-btn-ghost .wp-block-button__link { background: var(--ss-sky); color: var(--ss-navy); }
.ss-btn-ghost .wp-block-button__link:hover { background: #dbeaff; color: var(--ss-navy); }

.ss-btn-light .wp-block-button__link { background: #fff; color: var(--ss-navy); }
.ss-btn-light .wp-block-button__link:hover { background: var(--ss-sky); color: var(--ss-navy); }

.ss-btn-talk .wp-block-button__link { background: #fff; color: var(--ss-navy); box-shadow: var(--ss-shadow); }
.ss-btn-talk .wp-block-button__link:hover { color: var(--ss-navy); }
.ss-btn-talk .wp-block-button__link::before,
.ss-talk.ss-btn-ghost .wp-block-button__link::before {
	content: "";
	width: 18px; height: 18px;
	background: currentColor;
	-webkit-mask: var(--ss-i-mic) center / contain no-repeat;
	mask: var(--ss-i-mic) center / contain no-repeat;
}

/* ---------- Check lists ---------- */
.ss-checks { list-style: none; padding-left: 0 !important; margin-block: 1.4em 2em !important; }
.ss-checks li { position: relative; padding-left: 36px; margin-bottom: .75em; font-weight: 600; }
.ss-checks li::before {
	content: "";
	position: absolute; left: 0; top: .1em;
	width: 24px; height: 24px;
	border-radius: 50%;
	background: var(--ss-grad);
}
.ss-checks li::after {
	content: "";
	position: absolute; left: 6px; top: calc(.1em + 6px);
	width: 12px; height: 12px;
	background: #fff;
	-webkit-mask: var(--ss-i-check) center / contain no-repeat;
	mask: var(--ss-i-check) center / contain no-repeat;
}
.ss-checks-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; }

/* ---------- Icon library (SVG masks; pick with an ss-ico-* class) ---------- */
:root {
	--ss-i-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
	--ss-i-mic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='2' width='6' height='12' rx='3'/%3E%3Cpath d='M19 10v1a7 7 0 0 1-14 0v-1M12 18v4'/%3E%3C/svg%3E");
}
.ss-ico-cctv { --ss-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6.5l13.5 4-1.6 5.2L1.5 11.7z'/%3E%3Cpath d='M16.5 10.5l3.5 1v4l-4.6-1.3'/%3E%3Cpath d='M6 13l-1 4H2M5 17v3'/%3E%3C/svg%3E"); }
.ss-ico-upgrade { --ss-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 16V8M8.5 11.5L12 8l3.5 3.5'/%3E%3C/svg%3E"); }
.ss-ico-maintain { --ss-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='17' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18M9 15.5l2 2 4-4'/%3E%3C/svg%3E"); }
.ss-ico-phone { --ss-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='6.5' y='2' width='11' height='20' rx='2.5'/%3E%3Cpath d='M11 18h2'/%3E%3C/svg%3E"); }
.ss-ico-repair { --ss-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a4 4 0 0 0-5.4 5.4L3 18l3 3 6.3-6.3a4 4 0 0 0 5.4-5.4l-2.5 2.5-2.4-.6-.6-2.4z'/%3E%3C/svg%3E"); }
.ss-ico-bolt { --ss-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2L4 14h7l-1 8 9-12h-7z'/%3E%3C/svg%3E"); }
.ss-ico-fire { --ss-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22c4 0 7-3 7-7 0-4-3-6-4-9-1 2-2 3-3 3 0-2-1-4-3-6-1 4-4 7-4 12 0 4 3 7 7 7z'/%3E%3C/svg%3E"); }
.ss-ico-alarm { --ss-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9M10.3 21a1.9 1.9 0 0 0 3.4 0'/%3E%3C/svg%3E"); }
.ss-ico-shield { --ss-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' 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 12l2 2 4-4'/%3E%3C/svg%3E"); }
.ss-ico-eye { --ss-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E"); }
.ss-ico-play { --ss-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M10 8.5l5 3.5-5 3.5z'/%3E%3C/svg%3E"); }
.ss-ico-help { --ss-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 18v-6a9 9 0 0 1 18 0v6'/%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"); }
.ss-ico-badge { --ss-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='6'/%3E%3Cpath d='M15.5 13.5L17 22l-5-3-5 3 1.5-8.5'/%3E%3C/svg%3E"); }
.ss-ico-chip { --ss-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='5' width='14' height='14' rx='2'/%3E%3Crect x='9' y='9' width='6' height='6'/%3E%3Cpath d='M9 2v3M15 2v3M9 19v3M15 19v3M19 9h3M19 15h3M2 9h3M2 15h3'/%3E%3C/svg%3E"); }
.ss-ico-pin { --ss-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' 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"); }
.ss-ico-user { --ss-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E"); }
.ss-ico-call { --ss-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' 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"); }
.ss-ico-whatsapp { --ss-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 11.5a8.4 8.4 0 0 1-12.4 7.4L3 21l2.1-5.4A8.4 8.4 0 1 1 21 11.5z'/%3E%3Cpath d='M9 9.5c0 3 2.5 5.5 5.5 5.5l1-1.5-2-1-1 .8a4 4 0 0 1-1.8-1.8l.8-1-1-2z'/%3E%3C/svg%3E"); }
.ss-ico-mail { --ss-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' 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 6l-10 7L2 6'/%3E%3C/svg%3E"); }
.ss-ico-mic { --ss-ico: var(--ss-i-mic); }

/* ---------- Scroll reveal (only when JS is running; never in the editor) ---------- */
.ss-js .ss-reveal {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity .8s var(--ss-ease), transform .8s var(--ss-ease);
}
.ss-js .ss-reveal.is-visible { opacity: 1; transform: none; }
/* Safety net: if the script never runs, everything still appears after 1.5s */
.ss-js .ss-reveal:not(.is-visible) { animation: ss-reveal-failsafe .6s ease 1.5s forwards; }
@keyframes ss-reveal-failsafe { to { opacity: 1; transform: none; } }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.ss-js .ss-reveal { opacity: 1; transform: none; transition: none; }
	*, *::before, *::after { animation: none !important; }
}

@media (max-width: 781px) {
	.ss-checks-2 { grid-template-columns: 1fr; }
	[id] { scroll-margin-top: 90px; }
}
