/* Solar Seva theme – main stylesheet */

:root {
	--ss-navy: #0e3b6e;
	--ss-navy-d: #0a2647;
	--ss-green: #2e9e44;
	--ss-green-d: #21803a;
	--ss-sun: #f59e0b;
	--ss-sun-2: #fbbf24;
	--ss-ink: #0f1e33;
	--ss-text: #475569;
	--ss-muted: #64748b;
	--ss-bg: #f4f8fb;
	--ss-line: #e2e8f0;
	--ss-r: 18px;
	--ss-shadow: 0 10px 30px rgba(15, 30, 51, .07);
	--ss-shadow-lg: 0 24px 60px rgba(15, 30, 51, .14);
	--ss-grad: linear-gradient(135deg, #2e9e44 0%, #43b55c 100%);
	--ss-sun-grad: linear-gradient(135deg, #f59e0b 0%, #fbbf24 100%);
	--ss-navy-grad: linear-gradient(135deg, #0e3b6e 0%, #1b5fa8 100%);
	--ss-font: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	--ss-ease: cubic-bezier(.2, .7, .2, 1);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--ss-font); font-size: 16px; line-height: 1.7; color: var(--ss-text); background: #fff; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, h5, h6 { font-family: var(--ss-font); color: var(--ss-ink); line-height: 1.25; font-weight: 700; margin: 0 0 .6em; }
p { margin: 0 0 1em; }
a { color: var(--ss-green-d); text-decoration: none; transition: color .2s; }
a:hover { color: var(--ss-navy); }
img, svg, video { max-width: 100%; height: auto; }
img { vertical-align: middle; }
button, input, select, textarea { font: inherit; }
.ss-ico { flex-shrink: 0; vertical-align: middle; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.skip-link:focus { position: fixed !important; top: 10px; left: 10px; z-index: 100000; width: auto; height: auto; clip: auto; padding: 10px 16px; background: #fff; color: var(--ss-ink); border-radius: 8px; box-shadow: var(--ss-shadow); }
:focus-visible { outline: 3px solid var(--ss-sun-2); outline-offset: 2px; }
.ss-container { width: 100%; max-width: 1240px; margin: 0 auto; padding: 0 20px; }
.ss-main { overflow-x: clip; }
.ss-note { background: #fff8e6; border: 1px dashed var(--ss-sun); padding: 12px 16px; border-radius: 10px; font-size: 14px; color: #7a4b00; }

/* ---------- Buttons ---------- */
.ss-btn,
.ss-sec .elementor-widget-button .elementor-button,
.ss-fallback .elementor-widget-button .elementor-button {
	position: relative; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 14px 30px; border: 2px solid transparent; border-radius: 999px; background: var(--ss-grad); color: #fff;
	font-weight: 600; font-size: 15px; line-height: 1.2; letter-spacing: .01em; text-decoration: none; cursor: pointer;
	box-shadow: 0 10px 24px rgba(46, 158, 68, .28); transition: transform .3s var(--ss-ease), box-shadow .3s, background .3s, color .3s, border-color .3s;
}
.ss-btn::after,
.ss-sec .elementor-widget-button .elementor-button::after {
	content: ""; position: absolute; top: 0; left: -75%; width: 50%; height: 100%;
	background: linear-gradient(120deg, transparent, rgba(255, 255, 255, .35), transparent); transform: skewX(-20deg); transition: left .6s var(--ss-ease);
}
.ss-btn:hover, .ss-sec .elementor-widget-button .elementor-button:hover { transform: translateY(-3px); color: #fff; box-shadow: 0 16px 32px rgba(46, 158, 68, .35); }
.ss-btn:hover::after, .ss-sec .elementor-widget-button .elementor-button:hover::after { left: 130%; }
.ss-sec .ss-btn-outline .elementor-button { background: transparent; color: var(--ss-navy); border-color: var(--ss-navy); box-shadow: none; }
.ss-sec .ss-btn-outline .elementor-button:hover { background: var(--ss-navy); color: #fff; }
.ss-sec .ss-btn-outline-light .elementor-button { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .7); box-shadow: none; }
.ss-sec .ss-btn-outline-light .elementor-button:hover { background: #fff; color: var(--ss-navy); border-color: #fff; }
.ss-sec .ss-btn-light .elementor-button, .ss-btn--light { background: #fff; color: var(--ss-navy); box-shadow: 0 10px 24px rgba(0, 0, 0, .12); }
.ss-sec .ss-btn-light .elementor-button:hover, .ss-btn--light:hover { background: var(--ss-sun-2); color: var(--ss-ink); }
.ss-help-box .ss-btn-light .elementor-button { background: var(--ss-navy); color: #fff; }
.ss-inline, .elementor-widget.ss-inline { margin: 0 12px 12px 0 !important; }
.ss-center-btn { text-align: center; margin-top: 18px; }
.ss-link { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; color: var(--ss-green-d); }
.ss-link .ss-ico { transition: transform .3s var(--ss-ease); }
.ss-link:hover .ss-ico { transform: translateX(5px); }

/* ---------- Header ---------- */
.ss-header { --tb: 42px; position: sticky; top: calc(var(--tb) * -1); z-index: 999; }
body:not(.ss-has-topbar) .ss-header { --tb: 0px; }
.admin-bar .ss-header { top: calc(32px - var(--tb)); }
.ss-topbar { background: var(--ss-navy-d); color: rgba(255, 255, 255, .82); font-size: 13.5px; }
.ss-topbar-in { display: flex; align-items: center; justify-content: space-between; height: 42px; gap: 20px; }
.ss-topbar-info { display: flex; gap: 26px; align-items: center; min-width: 0; }
.ss-topbar-info a, .ss-topbar-info > span { display: inline-flex; align-items: center; gap: 8px; color: rgba(255, 255, 255, .85); white-space: nowrap; }
.ss-topbar-info a:hover { color: var(--ss-sun-2); }
.ss-topbar .ss-ico { color: var(--ss-sun-2); }
.ss-social { display: flex; gap: 8px; flex-wrap: wrap; }
.ss-social a { width: 32px; height: 32px; display: inline-grid; place-items: center; border-radius: 50%; background: rgba(255, 255, 255, .1); color: #fff; transition: background .3s, transform .3s; }
.ss-social a:hover { background: var(--ss-sun); color: #fff; transform: translateY(-3px); }
.ss-topbar .ss-social a { width: 28px; height: 28px; background: transparent; }
.ss-topbar .ss-social a:hover { background: rgba(255, 255, 255, .12); color: var(--ss-sun-2); }

.ss-navbar { background: rgba(255, 255, 255, .97); backdrop-filter: saturate(160%) blur(10px); -webkit-backdrop-filter: saturate(160%) blur(10px); border-bottom: 1px solid rgba(226, 232, 240, .7); transition: box-shadow .3s; }
.ss-header.is-scrolled .ss-navbar { box-shadow: 0 10px 30px rgba(15, 30, 51, .1); }
.ss-navbar-in { display: flex; align-items: center; gap: 24px; height: 96px; transition: height .3s; }
.ss-header.is-scrolled .ss-navbar-in { height: 80px; }
.ss-brand { display: inline-flex; align-items: center; gap: 12px; color: var(--ss-ink); flex-shrink: 0; }
.ss-brand-logo { height: 80px; width: auto; transition: height .3s, transform .5s var(--ss-ease); }
.ss-header.is-scrolled .ss-brand-logo { height: 66px; }
.ss-brand:hover .ss-brand-logo { transform: scale(1.04); }
.ss-brand-text { display: flex; flex-direction: column; line-height: 1.1; }
.ss-brand-1 { font-size: 22px; font-weight: 700; color: var(--ss-navy); letter-spacing: .01em; }
.ss-brand-1 em { font-style: normal; color: var(--ss-green); }
.ss-brand-2 { font-size: 11px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--ss-muted); margin-top: 4px; }

.ss-nav { flex: 1; display: flex; justify-content: flex-end; }
.ss-nav-head, .ss-nav-foot { display: none; }
.ss-menu, .ss-menu ul { list-style: none; margin: 0; padding: 0; }
.ss-menu { display: flex; align-items: center; gap: 2px; }
.ss-menu li { position: relative; }
.ss-menu > li > a { display: flex; align-items: center; gap: 4px; padding: 10px 14px; font-size: 15px; font-weight: 500; color: var(--ss-ink); border-radius: 10px; position: relative; }
.ss-menu > li > a::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 4px; height: 2px; background: var(--ss-sun-grad); border-radius: 2px; transform: scaleX(0); transform-origin: left; transition: transform .35s var(--ss-ease); }
.ss-menu > li:hover > a::after, .ss-menu > li.current-menu-item > a::after, .ss-menu > li.current-menu-ancestor > a::after, .ss-menu > li.current_page_parent > a::after { transform: scaleX(1); }
.ss-menu > li.current-menu-item > a, .ss-menu > li.current-menu-ancestor > a, .ss-menu li a:hover { color: var(--ss-green-d); }
.ss-sub-toggle { display: none; border: 0; background: none; padding: 0; color: inherit; cursor: pointer; }
.ss-menu .menu-item-has-children > a { padding-right: 30px; }
.ss-menu > .menu-item-has-children > .ss-sub-toggle { display: grid; place-items: center; position: absolute; right: 8px; top: 50%; width: 20px; height: 20px; margin-top: -10px; }
.ss-sub-toggle::before { content: ""; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translate(-2px, -2px); transition: transform .3s; }
.ss-menu .sub-menu { position: absolute; top: calc(100% + 8px); left: 0; min-width: 270px; padding: 10px; background: #fff; border: 1px solid var(--ss-line); border-radius: 14px; box-shadow: var(--ss-shadow-lg); opacity: 0; visibility: hidden; transform: translateY(12px); transition: opacity .3s, transform .3s var(--ss-ease), visibility .3s; z-index: 20; }
.ss-menu .sub-menu::before { content: ""; position: absolute; top: -10px; left: 0; right: 0; height: 10px; }
.ss-menu li:hover > .sub-menu, .ss-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.ss-menu .sub-menu .sub-menu { top: -10px; left: 100%; }
.ss-menu .sub-menu a { display: block; padding: 10px 14px; border-radius: 9px; font-size: 14.5px; color: var(--ss-ink); transition: background .2s, color .2s, padding .3s var(--ss-ease); }
.ss-menu .sub-menu a:hover, .ss-menu .sub-menu .current-menu-item > a { background: var(--ss-bg); color: var(--ss-green-d); padding-left: 20px; }

.ss-actions { display: flex; align-items: center; gap: 12px; flex-shrink: 0; margin-left: auto; }
.ss-header-cta { padding: 12px 24px; font-size: 14.5px; }
.ss-cart { position: relative; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--ss-bg); color: var(--ss-navy); transition: background .3s; }
.ss-cart:hover { background: var(--ss-navy); color: #fff; }
.ss-cart-count { position: absolute; top: -3px; right: -3px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px; background: var(--ss-sun); color: #fff; font-size: 11px; font-weight: 700; line-height: 20px; text-align: center; }
.ss-burger, .ss-nav-close { display: none; border: 0; background: var(--ss-bg); color: var(--ss-navy); width: 46px; height: 46px; border-radius: 12px; cursor: pointer; place-items: center; }
.ss-overlay { position: fixed; inset: 0; background: rgba(10, 20, 40, .55); z-index: 1000; opacity: 0; transition: opacity .3s; }
.ss-overlay.is-on { opacity: 1; }
.ss-overlay[hidden] { display: none; }

/* ---------- Sections (Elementor + fallback) ---------- */
.ss-sec { position: relative; padding: 100px 0; }
.ss-sec.ss-alt { background-color: var(--ss-bg); }
.ss-sec > .elementor-container, .ss-fb > .ss-container { position: relative; z-index: 2; }
.ss-kicker .elementor-heading-title { display: inline-flex; align-items: center; gap: 10px; margin: 0; font-size: 14px; font-weight: 600; line-height: 1.4; letter-spacing: .14em; text-transform: uppercase; color: var(--ss-green); }
.ss-kicker .elementor-heading-title::before { content: ""; width: 30px; height: 3px; border-radius: 3px; background: var(--ss-sun-grad); }
.ss-title .elementor-heading-title { margin: 0; font-size: clamp(28px, 3.4vw, 42px); font-weight: 700; line-height: 1.2; color: var(--ss-ink); }
.ss-subtitle .elementor-heading-title { margin: 8px 0 0; font-size: 22px; font-weight: 600; color: var(--ss-ink); }
.ss-lead, .ss-lead p { font-size: 17px; }
.ss-center-text, .ss-center-text .elementor-heading-title { text-align: center; }
.ss-lead.ss-center-text { max-width: 720px; margin-left: auto; margin-right: auto; }
.ss-small, .ss-small p { font-size: 14px; color: var(--ss-muted); }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.ss-sec .elementor-widget-text-editor { color: var(--ss-text); }

/* Card columns – the column's inner wrap becomes the card (equal heights) */
.ss-sec .elementor-column.ss-box > .elementor-widget-wrap {
	position: relative; margin: 12px; width: calc(100% - 24px); padding: 34px 30px; background: #fff;
	border: 1px solid var(--ss-line); border-radius: var(--ss-r); box-shadow: var(--ss-shadow);
	transition: transform .4s var(--ss-ease), box-shadow .4s, border-color .4s;
}
.ss-sec .elementor-column.ss-box:hover > .elementor-widget-wrap { box-shadow: var(--ss-shadow-lg); }
.ss-sec .elementor-column.ss-pillar > .elementor-widget-wrap,
.ss-sec .elementor-column.ss-step > .elementor-widget-wrap,
.ss-sec .elementor-column.ss-member > .elementor-widget-wrap,
.ss-sec .elementor-column.ss-mvv > .elementor-widget-wrap,
.ss-sec .elementor-column.ss-contact-card > .elementor-widget-wrap { overflow: hidden; }
.ss-sec .elementor-column.ss-pillar:hover > .elementor-widget-wrap,
.ss-sec .elementor-column.ss-step:hover > .elementor-widget-wrap,
.ss-sec .elementor-column.ss-member:hover > .elementor-widget-wrap,
.ss-sec .elementor-column.ss-mvv:hover > .elementor-widget-wrap,
.ss-sec .elementor-column.ss-contact-card:hover > .elementor-widget-wrap { transform: translateY(-8px); border-color: transparent; }
.ss-sec .elementor-column.ss-pillar > .elementor-widget-wrap::after,
.ss-sec .elementor-column.ss-mvv > .elementor-widget-wrap::after,
.ss-sec .elementor-column.ss-member > .elementor-widget-wrap::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: var(--ss-sun-grad); transform: scaleX(0); transform-origin: left; transition: transform .45s var(--ss-ease); }
.ss-sec .elementor-column.ss-pillar:hover > .elementor-widget-wrap::after,
.ss-sec .elementor-column.ss-mvv:hover > .elementor-widget-wrap::after,
.ss-sec .elementor-column.ss-member:hover > .elementor-widget-wrap::after { transform: scaleX(1); }

/* Icon boxes */
.ss-sec .elementor-icon-box-icon .elementor-icon { font-size: 28px; }
.ss-sec .elementor-view-stacked .elementor-icon { padding: .62em; background: var(--ss-grad); color: #fff; fill: #fff; box-shadow: 0 10px 22px rgba(46, 158, 68, .25); transition: transform .5s var(--ss-ease); }
.ss-sec .elementor-icon svg { width: 1em; height: 1em; }
.ss-sec .elementor-icon-box-title { margin: 16px 0 8px; font-size: 20px; font-weight: 600; line-height: 1.35; color: var(--ss-ink); }
.ss-sec .elementor-icon-box-title a { color: inherit; }
.ss-sec .elementor-icon-box-description { margin: 0; font-size: 15px; line-height: 1.7; color: var(--ss-text); }
.ss-pillar-box .elementor-icon, .ss-sec .ss-pillar-box.elementor-view-stacked .elementor-icon { background: var(--ss-sun-grad); box-shadow: 0 10px 22px rgba(245, 158, 11, .3); }
.ss-box:hover .elementor-view-stacked .elementor-icon { transform: rotate(-12deg) scale(1.08); }
.ss-mvv-box .elementor-icon, .ss-sec .ss-mvv-box.elementor-view-stacked .elementor-icon { background: var(--ss-navy-grad); box-shadow: 0 10px 22px rgba(14, 59, 110, .25); }

.ss-info .elementor-icon-box-wrapper { display: flex; align-items: center; gap: 16px; text-align: left; }
.ss-info .elementor-icon-box-icon { margin: 0 !important; }
.ss-sec .ss-info .elementor-icon { font-size: 18px; background: var(--ss-navy-grad); box-shadow: 0 8px 18px rgba(14, 59, 110, .22); }
.ss-sec .ss-info .elementor-icon-box-title { margin: 0 0 2px; font-size: 12.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--ss-muted); }
.ss-sec .ss-info .elementor-icon-box-description { font-size: 16px; font-weight: 600; color: var(--ss-ink); line-height: 1.5; }
.ss-info .elementor-icon-box-description a { color: var(--ss-ink); word-break: break-word; }
.ss-info .elementor-icon-box-description a:hover { color: var(--ss-green-d); }
.ss-info:not(:last-child) { padding-bottom: 18px; border-bottom: 1px dashed var(--ss-line); }
.ss-info, .ss-contact-box { position: relative; }
.ss-info .elementor-icon-box-title a::after, .ss-contact-box .elementor-icon-box-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.ss-info .elementor-icon-box-description, .ss-contact-box .elementor-icon-box-description { overflow-wrap: anywhere; }

/* Card grids: one inner section whose columns wrap (team, services) */
.ss-grid > .elementor-container, .ss-grid > .elementor-container > .elementor-row { flex-wrap: wrap; }

/* Icon lists */
.ss-checks .elementor-icon-list-item { align-items: flex-start !important; padding: 6px 0; font-size: 16px; color: var(--ss-ink); }
.ss-checks .elementor-icon-list-icon { color: var(--ss-green); margin-top: 5px; }
.ss-checks .elementor-icon-list-icon svg, .ss-checks .elementor-icon-list-icon i { width: 18px; height: 18px; font-size: 18px; fill: var(--ss-green); color: var(--ss-green); }
.ss-checks .elementor-icon-list-text { padding-left: 12px; color: var(--ss-ink); }
.ss-doc-facts .elementor-icon-list-item { padding: 12px 0; border-bottom: 1px solid var(--ss-line); }
.ss-doc-facts .elementor-icon-list-icon svg, .ss-doc-facts .elementor-icon-list-icon i { fill: var(--ss-sun); color: var(--ss-sun); }

/* Images */
.ss-rounded-img img { width: 100%; border-radius: 26px; box-shadow: var(--ss-shadow-lg); }
.ss-img-frame { position: relative; z-index: 0; }
.ss-img-frame::before { content: ""; position: absolute; z-index: -1; inset: 28px -18px -18px 28px; border: 3px solid var(--ss-sun-2); border-radius: 30px; animation: ss-float 6s ease-in-out infinite; }
.ss-img-frame--right::before { inset: 28px 28px -18px -18px; border-color: var(--ss-green); }
.ss-media-col > .elementor-widget-wrap { align-content: center !important; }
.ss-text-col > .elementor-widget-wrap { align-content: center !important; }
.ss-sec .ss-text-col > .elementor-widget-wrap { padding-left: 30px; }

/* ---------- Hero ---------- */
.ss-hero { padding: 130px 0 190px; color: #fff; overflow: hidden; }
.ss-hero::after { content: ""; position: absolute; top: -160px; right: -120px; width: 520px; height: 520px; border-radius: 50%; background: radial-gradient(circle, rgba(251, 191, 36, .45) 0%, rgba(251, 191, 36, 0) 68%); animation: ss-glow 7s ease-in-out infinite; pointer-events: none; z-index: 1; }
.ss-hero-col > .elementor-widget-wrap { max-width: 700px; }
.ss-tag .elementor-heading-title { display: inline-flex; margin: 0; padding: 8px 18px; border-radius: 999px; background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .25); color: #fde68a; font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.ss-hero-title .elementor-heading-title { margin: 0; color: #fff; font-size: clamp(34px, 5.2vw, 60px); font-weight: 700; line-height: 1.12; }
.ss-hero-title .elementor-heading-title span { background: var(--ss-sun-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.ss-hero-text, .ss-hero-text p { color: rgba(255, 255, 255, .9); font-size: 18px; }
.ss-trust { margin-top: 14px; }
.ss-trust .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: 10px 26px; }
.ss-trust .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; }
.ss-trust .elementor-icon-list-item::after { display: none !important; }
.ss-trust .elementor-icon-list-icon svg, .ss-trust .elementor-icon-list-icon i { fill: var(--ss-sun-2); color: var(--ss-sun-2); width: 16px; height: 16px; font-size: 16px; }
.ss-trust .elementor-icon-list-text { padding-left: 8px; color: rgba(255, 255, 255, .88); font-size: 14px; }

/* Pillars overlapping the hero */
.ss-sec.ss-pillars { padding: 0 0 30px; margin-top: -120px; z-index: 5; background: transparent; }
.ss-pillars .ss-pillar > .elementor-widget-wrap { box-shadow: var(--ss-shadow-lg); }

/* ---------- Document (PDF) section ---------- */
.ss-doc-img { position: relative; }
.ss-doc-img::after { content: "PDF"; position: absolute; top: 18px; left: 18px; padding: 6px 14px; border-radius: 999px; background: #dc2626; color: #fff; font-size: 12px; font-weight: 700; letter-spacing: .1em; box-shadow: 0 8px 18px rgba(220, 38, 38, .35); }
.ss-doc-img img { transition: transform .6s var(--ss-ease); }
.ss-doc-img:hover img { transform: scale(1.02) rotate(-.5deg); }

/* ---------- Services grid (shortcode) ---------- */
.ss-svc-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin: 10px 0; }
.ss-svc-card { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--ss-line); border-radius: var(--ss-r); overflow: hidden; box-shadow: var(--ss-shadow); transition: transform .45s var(--ss-ease), box-shadow .45s; }
.ss-svc-card:hover { transform: translateY(-8px); box-shadow: var(--ss-shadow-lg); }
.ss-svc-img { display: block; aspect-ratio: 16 / 10; overflow: hidden; }
.ss-svc-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ss-ease); }
.ss-svc-card:hover .ss-svc-img img { transform: scale(1.08); }
.ss-svc-body { position: relative; flex: 1; display: flex; flex-direction: column; padding: 30px 26px 26px; }
.ss-svc-num { position: absolute; top: -26px; right: 22px; width: 52px; height: 52px; display: grid; place-items: center; border-radius: 50%; background: var(--ss-sun-grad); color: #fff; font-weight: 700; box-shadow: 0 10px 20px rgba(245, 158, 11, .35); border: 4px solid #fff; }
.ss-svc-body h3 { font-size: 20px; margin: 0 0 10px; }
.ss-svc-body h3 a { color: var(--ss-ink); }
.ss-svc-body h3 a:hover { color: var(--ss-green-d); }
.ss-svc-body p { font-size: 15px; flex: 1; }
.ss-sec .elementor-column.ss-svc > .elementor-widget-wrap { padding: 0 0 26px; overflow: hidden; flex-direction: column; flex-wrap: nowrap; align-content: stretch; }
.ss-sec .elementor-column.ss-svc:hover > .elementor-widget-wrap { transform: translateY(-8px); }
.ss-svc > .elementor-widget-wrap > .elementor-widget { width: 100%; margin-bottom: 0 !important; }
.ss-svc > .elementor-widget-wrap > .elementor-widget:not(.ss-svc-thumb) { padding: 0 26px; }
.ss-svc-thumb { overflow: hidden; }
.ss-svc-thumb img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform .8s var(--ss-ease); }
.ss-svc:hover .ss-svc-thumb img { transform: scale(1.08); }
.ss-svc-title .elementor-heading-title { margin: 24px 0 10px; font-size: 20px; font-weight: 600; line-height: 1.35; }
.ss-svc-title .elementor-heading-title a { color: var(--ss-ink); }
.ss-svc-title .elementor-heading-title a:hover { color: var(--ss-green-d); }
.ss-svc > .elementor-widget-wrap > .ss-svc-text { flex: 1; margin-bottom: 18px !important; font-size: 15px; }
.ss-sec .ss-svc-btn .elementor-button { padding: 10px 22px; font-size: 14px; }
.ss-svc-links .elementor-icon-list-item { margin: 0 0 8px !important; padding: 0 !important; }
.ss-svc-links .elementor-icon-list-item::after { display: none !important; }
.ss-svc-links .elementor-icon-list-item > a { display: flex !important; flex-direction: row-reverse; justify-content: space-between; align-items: center; gap: 10px; width: 100%; padding: 13px 16px; border-radius: 12px; background: var(--ss-bg); color: var(--ss-ink); font-weight: 500; font-size: 15px; transition: background .3s, color .3s, padding .3s var(--ss-ease); }
.ss-svc-links .elementor-icon-list-item > a:hover { background: var(--ss-grad); color: #fff; padding-left: 22px; }
.ss-svc-links .elementor-icon-list-text { color: inherit !important; padding: 0 !important; }
.ss-svc-links .elementor-icon-list-icon svg, .ss-svc-links .elementor-icon-list-icon i { width: 12px; height: 12px; font-size: 12px; fill: currentColor; color: currentColor; }
.ss-map-widget iframe { display: block; border-radius: 16px; }
.ss-social-widget .elementor-social-icon { background: var(--ss-navy); transition: background .3s, transform .3s; }
.ss-social-widget .elementor-social-icon:hover { background: var(--ss-green); transform: translateY(-3px); }
.ss-svc-list { list-style: none; margin: 0; padding: 0; }
.ss-svc-list li a { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 13px 16px; margin-bottom: 8px; border-radius: 12px; background: var(--ss-bg); color: var(--ss-ink); font-weight: 500; font-size: 15px; transition: background .3s, color .3s, padding .3s var(--ss-ease); }
.ss-svc-list li a:hover, .ss-svc-list li.is-current a { background: var(--ss-grad); color: #fff; padding-left: 22px; }

/* ---------- Stats ---------- */
.ss-sec.ss-stats { padding: 80px 0; color: #fff; }
.ss-stat > .elementor-widget-wrap { text-align: center; }
.ss-stat + .ss-stat > .elementor-widget-wrap { border-left: 1px solid rgba(255, 255, 255, .15); }
.ss-sec .ss-counter .elementor-counter-number-wrapper { display: flex; justify-content: center; margin: 0; font-size: clamp(40px, 5vw, 58px); font-weight: 700; line-height: 1.1; color: #fff; }
.ss-sec .ss-counter .elementor-counter-number-suffix { color: var(--ss-sun-2); }
.ss-sec .ss-counter .elementor-counter-title { margin-top: 8px; font-size: 15px; line-height: 1.5; color: rgba(255, 255, 255, .78); text-align: center; }

/* ---------- Steps ---------- */
.ss-steps-row { counter-reset: ss-step; margin-top: 20px; }
.ss-step > .elementor-widget-wrap::before { counter-increment: ss-step; content: "0" counter(ss-step); position: absolute; top: 14px; right: 22px; font-size: 52px; font-weight: 700; line-height: 1; color: rgba(14, 59, 110, .07); transition: color .4s; }
.ss-step:hover > .elementor-widget-wrap::before { color: rgba(245, 158, 11, .22); }

/* ---------- Team ---------- */
.ss-team-row { margin-top: 10px; }
.ss-sec .elementor-column.ss-member > .elementor-widget-wrap { padding: 0; }
.ss-member-card .elementor-image-box-wrapper { text-align: center; }
.ss-member-card .elementor-image-box-img { display: block !important; width: 100% !important; margin: 0 !important; overflow: hidden; }
.ss-member-card .elementor-image-box-img img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; object-position: 50% 18%; transition: transform .8s var(--ss-ease); }
.ss-member:hover .ss-member-card img { transform: scale(1.07); }
.ss-member-card .elementor-image-box-content { padding: 20px 18px 24px; }
.ss-sec .ss-member-card .elementor-image-box-title { margin: 0 0 4px; font-size: 19px; font-weight: 600; color: var(--ss-ink); }
.ss-sec .ss-member-card .elementor-image-box-description { margin: 0; font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--ss-green); }

/* ---------- CTA ---------- */
.ss-sec.ss-cta { padding: 80px 0; color: #fff; overflow: hidden; }
.ss-cta::before { content: ""; position: absolute; width: 380px; height: 380px; right: -120px; top: -160px; border-radius: 50%; border: 50px solid rgba(255, 255, 255, .06); animation: ss-spin 40s linear infinite; }
.ss-cta .ss-title .elementor-heading-title { color: #fff; }
.ss-cta .elementor-widget-text-editor, .ss-cta p { color: rgba(255, 255, 255, .86); font-size: 17px; }
.ss-cta-actions > .elementor-widget-wrap { align-content: center !important; justify-content: flex-end; }
.ss-cta-actions .elementor-widget-button { width: auto !important; margin: 6px !important; }

/* ---------- Page banner ---------- */
.ss-sec.ss-banner, .ss-page-banner { padding: 110px 0 90px; text-align: center; color: #fff; overflow: hidden; }
.ss-page-banner { background-size: cover; background-position: center; }
.ss-banner-title .elementor-heading-title, .ss-page-banner h1 { margin: 0; color: #fff; font-size: clamp(32px, 4.4vw, 52px); }
.ss-banner-sub, .ss-banner-sub p { max-width: 720px; margin: 0 auto; color: rgba(255, 255, 255, .86); font-size: 17px; }
.ss-crumbs p, .ss-crumbs-line { display: inline-flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 6px 0 0; padding: 8px 20px; border-radius: 999px; background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .2); color: #fff; font-size: 14px; }
.ss-page-banner .ss-crumbs-line { margin-top: 18px; }
.ss-crumbs a, .ss-crumbs-line a { color: var(--ss-sun-2); }
.ss-crumbs span, .ss-crumbs-line span { opacity: .6; }

/* ---------- Service detail / sidebar ---------- */
.ss-service-img { margin-bottom: 10px !important; }
.ss-sidebar .ss-inner > .elementor-container > .elementor-column > .elementor-widget-wrap { padding: 0; }
.ss-sec .ss-sidebar .elementor-column.ss-box > .elementor-widget-wrap { margin: 0 0 24px; width: 100%; }
.ss-side-title .elementor-heading-title { margin: 0; font-size: 20px; font-weight: 600; padding-bottom: 12px; border-bottom: 2px solid var(--ss-line); position: relative; }
.ss-side-title .elementor-heading-title::after { content: ""; position: absolute; left: 0; bottom: -2px; width: 50px; height: 2px; background: var(--ss-sun-grad); }
.ss-sec .elementor-column.ss-help-box > .elementor-widget-wrap { background: var(--ss-navy-grad); border: 0; color: #fff; }
.ss-help-box .elementor-heading-title, .ss-help-box p { color: #fff; }
.ss-help-box .ss-side-title .elementor-heading-title { border-color: rgba(255, 255, 255, .2); }
.ss-sec .ss-help-box .ss-info .elementor-icon { background: rgba(255, 255, 255, .15); box-shadow: none; }
.ss-sec .ss-help-box .ss-info .elementor-icon-box-title { color: rgba(255, 255, 255, .7); }
.ss-help-box .ss-info .elementor-icon-box-description a { color: #fff; font-size: 14px; overflow-wrap: anywhere; }
.ss-help-box .ss-info .elementor-icon-box-wrapper { gap: 12px; }
.ss-help-box .ss-info:not(:last-child) { border-color: rgba(255, 255, 255, .2); }
.ss-sec .ss-help-box .ss-btn-light .elementor-button { background: #fff; color: var(--ss-navy); }

/* ---------- FAQ (Elementor accordion + fallback <details>) ---------- */
.ss-sec .ss-faq .elementor-accordion-item, .ss-faq details { margin-bottom: 14px; background: #fff; border: 1px solid var(--ss-line); border-radius: 14px; overflow: hidden; box-shadow: var(--ss-shadow); transition: box-shadow .3s, border-color .3s; }
.ss-sec .ss-faq .elementor-accordion-item + .elementor-accordion-item { border-top: 1px solid var(--ss-line); }
.ss-sec .ss-faq .elementor-accordion-item:hover { border-color: rgba(46, 158, 68, .4); }
.ss-sec .ss-faq .elementor-tab-title, .ss-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0; padding: 20px 24px; font-size: 17px; font-weight: 600; line-height: 1.45; color: var(--ss-ink); cursor: pointer; border: 0; }
.ss-sec .ss-faq .elementor-tab-title.elementor-active { color: var(--ss-green-d); }
.ss-faq .elementor-accordion-title { color: inherit; flex: 1; }
.ss-faq .elementor-accordion-icon { order: 2; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--ss-bg); color: var(--ss-green); fill: var(--ss-green); font-size: 13px; flex-shrink: 0; }
.ss-faq .elementor-accordion-icon svg { width: 13px; height: 13px; }
.ss-faq .elementor-tab-title.elementor-active .elementor-accordion-icon { background: var(--ss-grad); color: #fff; fill: #fff; }
.ss-sec .ss-faq .elementor-tab-content, .ss-faq details > div { padding: 0 24px 22px; border: 0; color: var(--ss-text); font-size: 15.5px; }
.ss-faq summary { list-style: none; }
.ss-faq summary::-webkit-details-marker { display: none; }
.ss-faq summary::after { content: "+"; font-size: 22px; color: var(--ss-green); }
.ss-faq details[open] summary::after { content: "–"; }

/* ---------- Contact ---------- */
.ss-sec.ss-contact-cards { padding: 80px 0 0; }
.ss-sec .elementor-column.ss-contact-card > .elementor-widget-wrap { padding: 32px 18px; }
.ss-sec .ss-contact-box .elementor-icon-box-description { font-size: 14.5px; }
.ss-contact-box .elementor-icon-box-description a { color: var(--ss-ink); font-weight: 600; overflow-wrap: anywhere; }
.ss-form-title .elementor-heading-title { margin: 0; font-size: 26px; }
.ss-map { position: relative; display: grid; place-items: center; min-height: 280px; border-radius: var(--ss-r); overflow: hidden; background: linear-gradient(135deg, rgba(14, 59, 110, .85), rgba(46, 158, 68, .75)), url("../img/page-banner.webp") center / cover; margin-bottom: 10px; }
.ss-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.ss-form-fallback .ss-btn { margin-top: 6px; }

/* WPForms */
.ss-sec .wpforms-container { margin: 0 !important; --wpforms-field-border-radius: 12px; --wpforms-field-border-color: #d7dee8; --wpforms-field-size-input-height: 50px; --wpforms-button-background-color: #2e9e44; --wpforms-button-border-radius: 999px; --wpforms-button-size-height: 52px; --wpforms-label-color: #0f1e33; --wpforms-field-size-font-size: 15px; --wpforms-button-size-font-size: 15px; --wpforms-button-size-padding-h: 34px; }
.ss-sec .wpforms-container .wpforms-field { padding: 8px 0 !important; }
.ss-sec .wpforms-container .wpforms-field-label { font-weight: 600 !important; font-size: 14px !important; color: var(--ss-ink) !important; }
.ss-sec .wpforms-container input[type=text], .ss-sec .wpforms-container input[type=email], .ss-sec .wpforms-container input[type=tel], .ss-sec .wpforms-container select, .ss-sec .wpforms-container textarea {
	width: 100% !important; max-width: 100% !important; border: 1px solid #d7dee8 !important; border-radius: 12px !important; background: #f8fafc !important; padding: 12px 16px !important; color: var(--ss-ink) !important; transition: border-color .2s, box-shadow .2s, background .2s;
}
.ss-sec .wpforms-container input:focus, .ss-sec .wpforms-container select:focus, .ss-sec .wpforms-container textarea:focus { border-color: var(--ss-green) !important; background: #fff !important; box-shadow: 0 0 0 4px rgba(46, 158, 68, .15) !important; outline: none !important; }
.ss-sec .wpforms-container .wpforms-submit-container { padding-top: 12px !important; }
.ss-sec .wpforms-container button[type=submit] { background: var(--ss-grad) !important; color: #fff !important; border: 0 !important; border-radius: 999px !important; padding: 15px 36px !important; font-weight: 600 !important; height: auto !important; box-shadow: 0 10px 24px rgba(46, 158, 68, .28); transition: transform .3s var(--ss-ease), box-shadow .3s !important; }
.ss-sec .wpforms-container button[type=submit]:hover { transform: translateY(-3px); box-shadow: 0 16px 32px rgba(46, 158, 68, .35) !important; }
.ss-sec .wpforms-confirmation-container-full { background: #ecfdf3 !important; border: 1px solid #a7e3b9 !important; border-radius: 12px !important; color: #14532d !important; }

/* ---------- Footer ---------- */
.ss-footer { position: relative; overflow: hidden; background: linear-gradient(160deg, #0a2647 0%, #0c3157 60%, #0a2647 100%); color: rgba(255, 255, 255, .72); font-size: 15px; }
.ss-footer-sun { position: absolute; top: -180px; left: -160px; width: 480px; height: 480px; border-radius: 50%; background: radial-gradient(circle, rgba(251, 191, 36, .16), rgba(251, 191, 36, 0) 70%); pointer-events: none; }
.ss-footer::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--ss-green), var(--ss-sun), var(--ss-navy)); }
.ss-footer-grid { position: relative; display: grid; grid-template-columns: 1.35fr 1fr 1.25fr 1.35fr; gap: 44px; padding-top: 80px; padding-bottom: 60px; }
.ss-footer-logo { display: inline-block; padding: 14px 18px; margin-bottom: 20px; background: #fff; border-radius: 18px; box-shadow: 0 14px 30px rgba(0, 0, 0, .2); }
.ss-footer-logo img { width: 170px; height: auto; display: block; }
.ss-footer p { margin-bottom: 20px; }
.ss-ftitle { position: relative; margin: 8px 0 26px; padding-bottom: 14px; color: #fff; font-size: 19px; font-weight: 600; }
.ss-ftitle::after { content: ""; position: absolute; left: 0; bottom: 0; width: 44px; height: 3px; border-radius: 3px; background: var(--ss-sun-grad); }
.ss-flinks, .ss-fcontact, .ss-legal { list-style: none; margin: 0; padding: 0; }
.ss-flinks li { margin-bottom: 12px; }
.ss-flinks a { position: relative; display: inline-block; color: rgba(255, 255, 255, .75); padding-left: 18px; transition: color .3s, transform .3s var(--ss-ease); }
.ss-flinks a::before { content: ""; position: absolute; left: 0; top: 50%; width: 7px; height: 7px; margin-top: -3.5px; border-radius: 50%; background: var(--ss-green); transition: background .3s; }
.ss-flinks a:hover { color: #fff; transform: translateX(5px); }
.ss-flinks a:hover::before { background: var(--ss-sun); }
.ss-fcontact li { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 16px; }
.ss-fcontact .ss-ico { width: 38px; height: 38px; padding: 10px; border-radius: 50%; background: rgba(255, 255, 255, .08); color: var(--ss-sun-2); }
.ss-fcontact li > a, .ss-fcontact li > span { padding-top: 7px; color: rgba(255, 255, 255, .82); word-break: break-word; }
.ss-fcontact a:hover { color: var(--ss-sun-2); }
.ss-footer-bottom { position: relative; border-top: 1px solid rgba(255, 255, 255, .1); }
.ss-footer-bottom-in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding-top: 22px; padding-bottom: 22px; font-size: 14px; }
.ss-footer-bottom p { margin: 0; }
.ss-reg { margin-left: 8px; padding-left: 10px; border-left: 1px solid rgba(255, 255, 255, .25); }
.ss-legal { display: flex; flex-wrap: wrap; gap: 22px; }
.ss-legal a { color: rgba(255, 255, 255, .8); }
.ss-legal a:hover { color: var(--ss-sun-2); }

/* Floating buttons */
.ss-totop { position: fixed; right: 22px; bottom: 22px; z-index: 900; width: 48px; height: 48px; display: grid; place-items: center; border: 0; border-radius: 50%; background: var(--ss-grad); color: #fff; cursor: pointer; box-shadow: 0 12px 26px rgba(46, 158, 68, .35); opacity: 0; visibility: hidden; transform: translateY(20px); transition: opacity .3s, transform .3s var(--ss-ease), visibility .3s; }
.ss-totop.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.ss-totop:hover { transform: translateY(-4px); }
.ss-wa-float { position: fixed; left: 22px; bottom: 22px; z-index: 900; width: 56px; height: 56px; display: grid; place-items: center; border-radius: 50%; background: #25d366; color: #fff; box-shadow: 0 12px 26px rgba(37, 211, 102, .4); animation: ss-pulse 2.4s infinite; }
.ss-wa-float:hover { color: #fff; }

/* PDF viewer modal */
.ss-modal { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; padding: 20px; background: rgba(8, 20, 40, .78); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.ss-modal[hidden] { display: none; }
.ss-modal-box { display: flex; flex-direction: column; width: min(1040px, 100%); height: min(90vh, 1200px); background: #fff; border-radius: 18px; overflow: hidden; box-shadow: 0 30px 80px rgba(0, 0, 0, .4); animation: ss-pop .35s var(--ss-ease); }
.ss-modal-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px 12px 20px; background: var(--ss-navy); color: #fff; }
.ss-modal-bar strong { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ss-modal-bar > span { display: inline-flex; align-items: center; gap: 12px; flex-shrink: 0; }
.ss-modal-title { text-transform: capitalize; }
.ss-modal-open { color: var(--ss-sun-2); font-size: 14px; }
.ss-modal-close { display: grid; place-items: center; width: 38px; height: 38px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .12); color: #fff; cursor: pointer; }
.ss-modal-close:hover { background: var(--ss-sun); }
.ss-modal-body { flex: 1; background: #525659; }
.ss-modal-body iframe { width: 100%; height: 100%; border: 0; display: block; }
body.ss-modal-open { overflow: hidden; }

/* ---------- Blog / content pages ---------- */
.ss-page-wrap { padding-top: 80px; padding-bottom: 90px; }
.ss-entry { max-width: 860px; margin: 0 auto; }
.ss-with-sidebar { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 50px; }
.ss-with-sidebar .ss-entry { max-width: none; }
.ss-with-sidebar:not(:has(.ss-sidebar-area)) { grid-template-columns: minmax(0, 860px); justify-content: center; }
.entry-content { font-size: 16.5px; }
.entry-content h2 { margin: 40px 0 14px; font-size: 26px; }
.entry-content h3 { margin: 30px 0 12px; font-size: 21px; }
.entry-content ul, .entry-content ol { padding-left: 22px; margin: 0 0 1.2em; }
.entry-content li { margin-bottom: 8px; }
.entry-content a { text-decoration: underline; text-underline-offset: 3px; }
.entry-content blockquote { margin: 26px 0; padding: 20px 26px; border-left: 4px solid var(--ss-sun); background: var(--ss-bg); border-radius: 0 12px 12px 0; }
.entry-content table { width: 100%; border-collapse: collapse; margin: 0 0 1.5em; }
.entry-content th, .entry-content td { padding: 12px; border: 1px solid var(--ss-line); text-align: left; }
.ss-entry-thumb img { width: 100%; border-radius: var(--ss-r); margin-bottom: 30px; }
.ss-post-meta { font-size: 14px; color: var(--ss-muted); margin-bottom: 10px; }
.ss-post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.ss-post-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--ss-line); border-radius: var(--ss-r); overflow: hidden; box-shadow: var(--ss-shadow); transition: transform .45s var(--ss-ease), box-shadow .45s; }
.ss-post-card:hover { transform: translateY(-6px); box-shadow: var(--ss-shadow-lg); }
.ss-post-img { display: block; aspect-ratio: 16 / 10; overflow: hidden; }
.ss-post-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ss-ease); }
.ss-post-card:hover .ss-post-img img { transform: scale(1.06); }
.ss-post-body { flex: 1; display: flex; flex-direction: column; padding: 24px; }
.ss-post-body h3 { font-size: 19px; margin-bottom: 10px; }
.ss-post-body h3 a { color: var(--ss-ink); }
.ss-post-body p:not(.ss-post-meta) { flex: 1; font-size: 15px; }
.nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 50px; }
.nav-links .page-numbers { min-width: 44px; height: 44px; display: inline-grid; place-items: center; padding: 0 14px; border-radius: 12px; background: var(--ss-bg); color: var(--ss-ink); font-weight: 600; }
.nav-links .page-numbers.current, .nav-links a.page-numbers:hover { background: var(--ss-grad); color: #fff; }
.ss-post-nav { display: flex; justify-content: space-between; gap: 20px; margin: 40px 0; padding: 20px 0; border-top: 1px solid var(--ss-line); border-bottom: 1px solid var(--ss-line); font-weight: 600; }
.ss-tags a { display: inline-block; margin: 0 6px 6px 0; padding: 4px 12px; border-radius: 999px; background: var(--ss-bg); font-size: 13px; }
.ss-empty { text-align: center; max-width: 560px; margin: 0 auto; }
.ss-widget { margin-bottom: 30px; padding: 26px; border: 1px solid var(--ss-line); border-radius: var(--ss-r); }
.ss-widget-title { font-size: 18px; }
.search-form { display: flex; gap: 8px; }
.search-form label { flex: 1; }
.search-field, .comment-form input[type=text], .comment-form input[type=email], .comment-form input[type=url], .comment-form textarea { width: 100%; padding: 12px 16px; border: 1px solid #d7dee8; border-radius: 12px; background: #f8fafc; }
.search-submit, .comment-form .submit { padding: 12px 24px; border: 0; border-radius: 999px; background: var(--ss-grad); color: #fff; font-weight: 600; cursor: pointer; }
.ss-comments { margin-top: 50px; }
.comment-list { list-style: none; padding: 0; }
.comment-list .comment-body { padding: 20px; margin-bottom: 16px; border: 1px solid var(--ss-line); border-radius: 14px; }
.comment-list .avatar { border-radius: 50%; float: left; margin-right: 12px; }

/* 404 */
.ss-404 { padding: 120px 0; text-align: center; }
.ss-404-sun { color: var(--ss-sun); animation: ss-spin 20s linear infinite; display: inline-block; }
.ss-404 h1 { font-size: clamp(80px, 14vw, 150px); line-height: 1; margin: 10px 0; background: var(--ss-navy-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* ---------- Fallback layout (only when Elementor is not active) ---------- */
.ss-fb .ss-row { display: flex; flex-wrap: wrap; width: 100%; }
.ss-fb .ss-col { display: flex; width: var(--wm, 100%); }
.ss-fb .elementor-widget-wrap { display: flex; flex-wrap: wrap; align-content: flex-start; width: 100%; padding: 15px; }
.ss-fb .elementor-widget { width: 100%; }
.ss-fb .elementor-widget:not(:last-child) { margin-bottom: 20px; }
.ss-fb .elementor-widget__width-auto { width: auto; }
.ss-fb .elementor-heading-title { margin: 0; }
.ss-fb .elementor-icon { display: inline-grid; place-items: center; border-radius: 50%; }
.ss-fb .elementor-icon-list-items { list-style: none; margin: 0; padding: 0; }
.ss-fb .elementor-icon-list-item { display: flex; }
.ss-fb .elementor-inline-items { display: flex; flex-wrap: wrap; }
.ss-fb .elementor-position-left .elementor-icon-box-wrapper { display: flex; gap: 16px; }
.ss-fb .elementor-position-top .elementor-icon-box-wrapper { text-align: center; }
.ss-fb .elementor-image-box-img { margin: 0; }
.ss-fb .elementor-counter-number-wrapper { display: flex; justify-content: center; }
.ss-fb.ss-hero { min-height: 86vh; display: flex; align-items: center; }
.ss-fb.ss-hero, .ss-fb.ss-banner, .ss-fb.ss-stats { background-size: cover; background-position: center; }
.ss-fb.ss-cta { background: linear-gradient(120deg, #0e3b6e, #21803a); }
@media (min-width: 768px) { .ss-fb .ss-col { width: var(--wt, var(--w, 100%)); } }
@media (min-width: 1025px) { .ss-fb .ss-col { width: var(--w, 100%); } }

/* ---------- WooCommerce ---------- */
:root .woocommerce ul.products { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin: 0 0 40px; }
:root .woocommerce ul.products::before, :root .woocommerce ul.products::after { display: none; }
:root .woocommerce ul.products li.product { width: auto !important; margin: 0 !important; float: none !important; padding: 16px 16px 22px; background: #fff; border: 1px solid var(--ss-line); border-radius: var(--ss-r); text-align: center; box-shadow: var(--ss-shadow); transition: transform .4s var(--ss-ease), box-shadow .4s; }
:root .woocommerce ul.products li.product:hover { transform: translateY(-6px); box-shadow: var(--ss-shadow-lg); }
:root .woocommerce ul.products li.product a img { border-radius: 12px; margin-bottom: 14px; }
:root .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 17px; color: var(--ss-ink); padding: 0; }
:root .woocommerce ul.products li.product .price, :root .woocommerce div.product p.price, :root .woocommerce div.product span.price { color: var(--ss-green-d); font-weight: 700; }
:root .woocommerce span.onsale { min-width: 0; min-height: 0; padding: 6px 14px; line-height: 1.4; border-radius: 999px; background: var(--ss-sun-grad); font-weight: 600; top: 22px; left: 22px; right: auto; }
:root .woocommerce a.button, :root .woocommerce button.button, :root .woocommerce input.button, :root .woocommerce #respond input#submit, :root .woocommerce a.button.alt, :root .woocommerce button.button.alt, :root .woocommerce input.button.alt,
:root .wc-block-components-button:not(.is-link), :root .wp-element-button.wc-block-components-button {
	padding: 13px 26px; border: 0; border-radius: 999px; background: var(--ss-grad); color: #fff; font-weight: 600; line-height: 1.2; transition: transform .3s var(--ss-ease), box-shadow .3s;
}
:root .woocommerce a.button:hover, :root .woocommerce button.button:hover, :root .woocommerce input.button:hover, :root .woocommerce a.button.alt:hover, :root .woocommerce button.button.alt:hover, :root .wc-block-components-button:not(.is-link):hover { background: var(--ss-navy-grad); color: #fff; transform: translateY(-2px); }
:root .woocommerce button.button:disabled, :root .woocommerce button.button:disabled[disabled] { opacity: .6; padding: 13px 26px; }
:root .woocommerce .star-rating span::before, :root .woocommerce p.stars a { color: var(--ss-sun); }
:root .woocommerce form .form-row input.input-text, :root .woocommerce form .form-row textarea, :root .woocommerce form .form-row select, :root .woocommerce .quantity .qty, :root .woocommerce-cart table.cart td.actions .coupon .input-text, :root .select2-container .select2-selection--single {
	min-height: 48px; padding: 10px 14px; border: 1px solid #d7dee8; border-radius: 12px; background: #f8fafc;
}
:root .select2-container .select2-selection--single .select2-selection__rendered { line-height: 26px; padding-left: 0; }
:root .select2-container .select2-selection--single .select2-selection__arrow { top: 10px; right: 8px; }
:root .woocommerce-message, :root .woocommerce-info, :root .woocommerce-error { border-radius: 12px; border-top-width: 3px; background: var(--ss-bg); }
:root .woocommerce-message, :root .woocommerce-info { border-top-color: var(--ss-green); }
:root .woocommerce-message::before, :root .woocommerce-info::before { color: var(--ss-green); }
:root .woocommerce table.shop_table { border-radius: 14px; overflow: hidden; border-collapse: separate; }
:root .woocommerce table.shop_table th { background: var(--ss-bg); color: var(--ss-ink); }
:root .woocommerce-checkout #payment { border-radius: 14px; background: var(--ss-bg); }
:root .woocommerce div.product .woocommerce-tabs ul.tabs li { border-radius: 10px 10px 0 0; }
:root .woocommerce div.product .woocommerce-tabs ul.tabs li.active { border-bottom-color: #fff; }
:root .woocommerce div.product div.images img { border-radius: var(--ss-r); }
:root .woocommerce .woocommerce-ordering select { padding: 10px 14px; border: 1px solid #d7dee8; border-radius: 12px; }
:root .woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; }
:root .woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: 11px 16px; margin-bottom: 6px; border-radius: 10px; background: var(--ss-bg); color: var(--ss-ink); }
:root .woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--ss-grad); color: #fff; }
.ss-page-wrap > .ss-entry:has(.woocommerce), .ss-page-wrap > .ss-entry:has(.wp-block-woocommerce-cart), .ss-page-wrap > .ss-entry:has(.wp-block-woocommerce-checkout) { max-width: none; }
.wc-block-components-text-input input, .wc-block-components-combobox .wc-block-components-combobox-control input { border-radius: 12px !important; }

/* ---------- Scroll reveal (theme shortcodes) ---------- */
.ss-js .ss-reveal { opacity: 0; transform: translateY(30px); transition: opacity .8s var(--ss-ease), transform .8s var(--ss-ease); transition-delay: var(--d, 0ms); }
.ss-js .ss-reveal.is-in { opacity: 1; transform: none; }

/* ---------- Keyframes ---------- */
@keyframes ss-glow { 0%, 100% { transform: scale(1); opacity: .9; } 50% { transform: scale(1.15); opacity: .6; } }
@keyframes ss-float { 0%, 100% { transform: translate(0, 0); } 50% { transform: translate(-8px, 8px); } }
@keyframes ss-spin { to { transform: rotate(360deg); } }
@keyframes ss-pop { from { opacity: 0; transform: scale(.94) translateY(20px); } to { opacity: 1; transform: none; } }
@keyframes ss-pulse { 0% { box-shadow: 0 0 0 0 rgba(37, 211, 102, .5); } 70% { box-shadow: 0 0 0 16px rgba(37, 211, 102, 0); } 100% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0); } }

/* ---------- Responsive ---------- */
@media (max-width: 1180px) {
	.ss-navbar { background: #fff; -webkit-backdrop-filter: none; backdrop-filter: none; }
	.ss-burger { display: grid; }
	.ss-nav { position: fixed; top: 0; right: 0; bottom: 0; z-index: 1001; width: min(360px, 88vw); flex-direction: column; justify-content: flex-start; padding: 20px 20px 30px; background: #fff; overflow-y: auto; transform: translateX(105%); transition: transform .45s var(--ss-ease); box-shadow: -20px 0 50px rgba(0, 0, 0, .15); }
	.ss-nav.is-open { transform: translateX(0); }
	.ss-nav-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; padding-bottom: 16px; border-bottom: 1px solid var(--ss-line); }
	.ss-nav-head .ss-brand-logo { height: 60px; }
	.ss-nav-head .ss-brand-1 { font-size: 18px; }
	.ss-nav-close { display: grid; }
	.ss-nav-foot { display: flex; flex-direction: column; gap: 12px; margin-top: auto; padding-top: 24px; }
	.ss-nav-foot a { display: flex; align-items: center; gap: 10px; color: var(--ss-ink); font-size: 14.5px; word-break: break-all; }
	.ss-nav-foot .ss-ico { color: var(--ss-green); }
	.ss-menu { flex-direction: column; align-items: stretch; gap: 0; }
	.ss-menu li { border-bottom: 1px solid var(--ss-line); }
	.ss-menu > li > a { padding: 14px 6px; font-size: 16px; }
	.ss-menu > li > a::after { display: none; }
	.ss-menu > .menu-item-has-children > .ss-sub-toggle, .ss-menu .sub-menu .menu-item-has-children > .ss-sub-toggle { display: grid; place-items: center; position: absolute; top: 6px; right: 0; margin: 0; width: 40px; height: 40px; border-radius: 10px; background: var(--ss-bg); }
	.ss-menu li.is-sub-open > .ss-sub-toggle::before { transform: rotate(-135deg) translate(-2px, -2px); }
	.ss-menu .sub-menu, .ss-menu .sub-menu .sub-menu { position: static; display: none; min-width: 0; margin: 0 0 12px; padding: 4px 0 4px 12px; border: 0; border-left: 2px solid var(--ss-sun-2); border-radius: 0; box-shadow: none; opacity: 1; visibility: visible; transform: none; }
	.ss-menu li.is-sub-open > .sub-menu { display: block; }
	.ss-menu .sub-menu li { border: 0; }
	.ss-menu .sub-menu a { padding: 9px 10px; }
	.ss-footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 1024px) {
	.ss-sec { padding: 80px 0; }
	.ss-sec .ss-text-col > .elementor-widget-wrap { padding-left: 15px; }
	.ss-media-col { margin-bottom: 20px; }
	.ss-svc-grid, .ss-post-grid, :root .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); }
	.ss-with-sidebar { grid-template-columns: 1fr; }
	.ss-stat:nth-child(3) > .elementor-widget-wrap { border-left: 0; }
	.ss-cta-actions > .elementor-widget-wrap { justify-content: flex-start; }
}
@media (max-width: 782px) {
	.admin-bar .ss-header { top: calc(46px - var(--tb)); }
}
@media (max-width: 767px) {
	body { font-size: 15.5px; }
	.ss-header { --tb: 0px; }
	.ss-topbar { display: none; }
	.ss-navbar-in { height: 76px; gap: 12px; }
	.ss-header.is-scrolled .ss-navbar-in { height: 70px; }
	.ss-brand-logo, .ss-header.is-scrolled .ss-brand-logo { height: 60px; }
	.ss-brand-1 { font-size: 17px; }
	.ss-brand-2 { font-size: 9px; letter-spacing: .14em; }
	.ss-header-cta { display: none; }
	.ss-sec { padding: 64px 0; }
	.ss-hero { padding: 90px 0 150px; }
	.ss-hero-text, .ss-hero-text p { font-size: 16px; }
	.ss-sec.ss-pillars { margin-top: -100px; }
	.ss-sec.ss-banner, .ss-page-banner { padding: 80px 0 64px; }
	.ss-svc-grid, .ss-post-grid, :root .woocommerce ul.products { grid-template-columns: 1fr; }
	.ss-stat > .elementor-widget-wrap { border-left: 0 !important; }
	.ss-footer-grid { grid-template-columns: 1fr; gap: 34px; padding-top: 60px; }
	.ss-footer-bottom-in { flex-direction: column; text-align: center; }
	.ss-reg { display: block; margin: 6px 0 0; padding: 0; border: 0; }
	.ss-inline, .elementor-widget.ss-inline { width: 100% !important; max-width: 340px; margin: 0 0 12px !important; }
	.ss-inline .elementor-button { width: 100%; }
	.ss-img-frame::before { inset: 16px -8px -8px 16px; }
	.ss-img-frame--right::before { inset: 16px 16px -8px -8px; }
	.ss-sec .elementor-column.ss-box > .elementor-widget-wrap { padding: 28px 22px; }
	.ss-sec .elementor-column.ss-member > .elementor-widget-wrap { padding: 0; }
	.ss-sec .elementor-column.ss-svc > .elementor-widget-wrap { padding: 0 0 22px; }
	.ss-svc > .elementor-widget-wrap > .elementor-widget:not(.ss-svc-thumb) { padding: 0 20px; }
	.ss-member-card .elementor-image-box-content { padding: 14px 10px 16px; }
	.ss-sec .ss-member-card .elementor-image-box-title { font-size: 16px; }
	.ss-sec .ss-member-card .elementor-image-box-description { font-size: 11px; letter-spacing: .06em; }
	.ss-modal { padding: 0; }
	.ss-modal-box { height: 100%; border-radius: 0; }
	.ss-totop { right: 14px; bottom: 14px; }
	.ss-wa-float { left: 14px; bottom: 14px; }
}
@media (max-width: 600px) {
	.admin-bar .ss-header { top: 0; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
	.ss-js .ss-reveal { opacity: 1; transform: none; }
}
