/* ==========================================================================
   Synergy Seeds — Main Stylesheet v2.0
   Fonts: DM Serif Display (headings) + Hanken Grotesk (body)
   Primary: #1E4D0F
========================================================================== */


/* ------------------------------------------------------------------
   Preloader
------------------------------------------------------------------ */
#ss-preloader {
	position: fixed;
	inset: 0;
	z-index: 9999;
	background: #0e2606;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}


#ss-preloader.is-done {
	opacity: 0;
	pointer-events: none;
	transition: opacity 1s cubic-bezier(.4,0,.2,1) !important;
}

.ss-preloader-inner {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1.5rem;
	width: 100%;
	padding: 0 2rem;
	text-align: center;
}

/* Wordmark */
.ss-preloader-logo {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .6rem;
}

.ss-preloader-synergy {
	font-family: 'Nunito', 'Myriad Pro', Arial Rounded MT Bold, sans-serif;
	font-size: clamp(3.5rem, 12vw, 8rem);
	color: #D9B84A;
	letter-spacing: .08em;
	line-height: 1;
	font-weight: 800;
	display: inline-flex;
}

/* Each letter: rise into place, then wave-bounce once settled */
.ss-preloader-synergy span {
	display: inline-block;
	animation:
		ss-letter-rise  .7s cubic-bezier(0.16,1,0.3,1) both,
		ss-letter-bounce 2s ease-in-out 1.8s infinite;
}
.ss-preloader-synergy span:nth-child(1) { animation-delay: .05s,  1.85s; }
.ss-preloader-synergy span:nth-child(2) { animation-delay: .12s,  1.92s; }
.ss-preloader-synergy span:nth-child(3) { animation-delay: .19s,  1.99s; }
.ss-preloader-synergy span:nth-child(4) { animation-delay: .26s,  2.06s; }
.ss-preloader-synergy span:nth-child(5) { animation-delay: .33s,  2.13s; }
.ss-preloader-synergy span:nth-child(6) { animation-delay: .40s,  2.20s; }
.ss-preloader-synergy span:nth-child(7) { animation-delay: .47s,  2.27s; }

.ss-preloader-sub {
	font-family: 'Nunito', 'Myriad Pro', Arial Rounded MT Bold, sans-serif;
	font-size: clamp(.8rem, 2.2vw, 1.1rem);
	color: #F7F4EC;
	letter-spacing: .35em;
	font-weight: 400;
	opacity: 0;
	animation: ss-sub-rise .8s cubic-bezier(0.16,1,0.3,1) .85s both;
}

/* Divider line between wordmark and bar */
.ss-preloader-divider {
	width: min(1px, 1px);
	height: 0;
	display: none;
}

/* Progress bar */
.ss-preloader-bar {
	width: min(300px, 60vw);
	height: 1px;
	background: rgba(247,244,236,.15);
	border-radius: 1px;
	overflow: hidden;
	opacity: 0;
	animation: ss-pre-fade .5s ease 1.2s both;
}

.ss-preloader-bar-fill {
	height: 100%;
	width: 0%;
	background: #D9B84A;
	border-radius: 1px;
	box-shadow: 0 0 10px rgba(217,184,74,.8), 0 0 24px rgba(217,184,74,.4);
	animation: ss-pre-fill 2.6s cubic-bezier(.25,.1,.1,1) 1.3s both;
}

/* Keyframes */
@keyframes ss-pre-fade {
	from { opacity: 0; }
	to   { opacity: 1; }
}

@keyframes ss-pre-fill {
	from { width: 0%; }
	to   { width: 100%; }
}

@keyframes ss-letter-rise {
	from { opacity: 0; transform: translateY(56px); }
	to   { opacity: 1; transform: translateY(0); }
}

@keyframes ss-sub-rise {
	from { opacity: 0; transform: translateY(16px); }
	to   { opacity: 1; transform: translateY(0); }
}

@keyframes ss-letter-bounce {
	0%, 55%, 100% { transform: translateY(0); }
	28%            { transform: translateY(-18px); }
	42%            { transform: translateY(-7px); }
	50%            { transform: translateY(-12px); }
}

@media (prefers-reduced-motion: reduce) {
	#ss-preloader { transition: none; }
	#ss-preloader.is-done { opacity: 0; pointer-events: none; }
	.ss-preloader-synergy span { animation: none; opacity: 1; transform: none; }
	.ss-preloader-sub { animation: none; opacity: 1; transform: none; }
	.ss-preloader-bar { animation: none; opacity: 1; }
	.ss-preloader-bar-fill { animation: none; width: 100%; }
}

/* ------------------------------------------------------------------
   Design Tokens
------------------------------------------------------------------ */
:root {
	/* Brand palette — BrandGuidelines.md (locked) */
	--green:          #1E4D0F;
	--green-deep:     #14380A;
	--green-mid:      #2D5A1B;
	--green-light:    #3A7520;
	--green-pale:     #E6EEE2;
	--yellow:         #D9B84A;
	--off-white:      #F7F4EC;
	--white:          #ffffff;
	--charcoal:       #1C1C1C;
	--ink:            #171713;
	--muted:          #5C5C50;
	--border:         #E2DDD0;
	--border-strong:  #CFC8B6;
	--footer-bg:      #14380A;
	--dark-section:   #1E4D0F;
	--on-dark-body:   rgba(247, 244, 236, .82);
	--on-dark-muted:  rgba(247, 244, 236, .6);

	--font-heading:   'DM Serif Display', Georgia, serif;
	--font-body:      'Hanken Grotesk', system-ui, sans-serif;

	/* Fluid type scale — 1.2 ratio mobile → 1.25 desktop */
	--text-sm:        clamp(.8125rem, .78rem + .15vw, .875rem);
	--text-base:      clamp(1rem, .96rem + .2vw, 1.0625rem);
	--text-lg:        clamp(1.125rem, 1.05rem + .35vw, 1.25rem);
	--text-xl:        clamp(1.375rem, 1.2rem + .8vw, 1.75rem);
	--text-2xl:       clamp(1.75rem, 1.4rem + 1.6vw, 2.5rem);
	--text-3xl:       clamp(2.25rem, 1.7rem + 2.6vw, 3.5rem);
	--text-display:   clamp(2.75rem, 2rem + 4vw, 5rem);

	/* Spacing scale (4px base) */
	--space-1:        .25rem;
	--space-2:        .5rem;
	--space-3:        .75rem;
	--space-4:        1rem;
	--space-6:        1.5rem;
	--space-8:        2rem;
	--space-12:       3rem;
	--space-16:       4rem;
	--section-pad:    clamp(4.5rem, 4rem + 5vw, 8rem);

	/* Motion */
	--ease-out:       cubic-bezier(0.22, 1, 0.36, 1);
	--ease-out-quint: cubic-bezier(0.22, 1, 0.36, 1);
	--ease-in-out:    cubic-bezier(0.45, 0, 0.55, 1);
	--dur-fast:       .18s;
	--dur:            .3s;
	--dur-slow:       .55s;
	--transition:     var(--dur) var(--ease-out);

	--container:      1200px;
	--nav-h:          76px;
	--radius-sm:      2px;
	--radius:         4px;
	--radius-lg:      8px;

	/* Depth — hairline borders, not drop shadows */
	--hairline:       1px solid var(--border);
	--hairline-dark:  1px solid rgba(247, 244, 236, .14);
	--shadow-sm:      none;
	--shadow:         none;
	--shadow-lg:      none;

	/* Focus ring */
	--focus-ring:     0 0 0 2px var(--off-white), 0 0 0 4px var(--green-mid);

	/* Z-index scale */
	--z-dropdown:     100;
	--z-sticky:       500;
	--z-fab:          9000;
	--z-overlay:      9500;
	--z-preloader:    9999;
}

/* ------------------------------------------------------------------
   Mobile FAB — Get a Quote
------------------------------------------------------------------ */
.ss-fab {
	display: none;
}

@media (max-width: 960px) {
	.ss-fab {
		display: flex;
		align-items: center;
		gap: .5rem;
		position: fixed;
		bottom: 1.5rem;
		right: 1.25rem;
		z-index: 9000;
		background: var(--green-mid);
		color: #fff;
		font-family: var(--font-body);
		font-size: .875rem;
		font-weight: 600;
		letter-spacing: .01em;
		padding: .75rem 1.25rem;
		border-radius: 100px;
		text-decoration: none;
		box-shadow: 0 4px 16px rgba(0,0,0,.25);
		transition: background .2s ease, transform .2s ease;
	}
	.ss-fab:hover,
	.ss-fab:focus-visible {
		background: var(--green-light);
		transform: translateY(-2px);
	}
	.ss-fab svg { flex-shrink: 0; }

	/* The product multi-select bar (.ss-quote-bar) has its own "Get a Quote"
	   CTA and sits fixed at the bottom of the screen — hide the redundant
	   floating FAB while it's open so the two can't overlap each other. */
	body.ss-qbar-open .ss-fab { display: none; }
}

/* ------------------------------------------------------------------
   Grain Overlay
------------------------------------------------------------------ */
.ss-grain-overlay {
	position: fixed;
	inset: -100px;
	pointer-events: none;
	z-index: 9999;
	opacity: 0.03;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");
	background-repeat: repeat;
	background-size: 200px 200px;
	animation: ss-grain 0.25s steps(1) infinite;
}

@keyframes ss-grain {
	0%  { transform: translate(0,    0   ); }
	25% { transform: translate(10px, -5px); }
	50% { transform: translate(-5px, 10px); }
	75% { transform: translate(-10px,-8px); }
}

/* ------------------------------------------------------------------
   Reveal Animations
------------------------------------------------------------------ */
@keyframes blurFadeUp {
	from { opacity: 0; filter: blur(12px); transform: translateY(28px); }
	to   { opacity: 1; filter: blur(0);    transform: translateY(0); }
}

@keyframes fadeIn {
	from { opacity: 0; }
	to   { opacity: 1; }
}

.ss-reveal {
	opacity: 0;
	will-change: opacity, transform;
}

.ss-reveal.is-visible {
	animation: blurFadeUp 0.7s var(--ease-out) both;
	animation-delay: var(--reveal-delay, 0ms);
}

@media (prefers-reduced-motion: reduce) {
	.ss-reveal { opacity: 1; animation: none !important; }
	.ss-grain-overlay { animation: none; }
}

/* ------------------------------------------------------------------
   Base
------------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
	font-family: var(--font-body);
	font-size: var(--text-base);
	line-height: 1.65;
	color: var(--ink);
	background: var(--off-white);
	overflow-x: hidden;
	-webkit-font-smoothing: antialiased;
}

::selection { background: var(--green-mid); color: var(--off-white); }

img { display: block; max-width: 100%; height: auto; }

a { color: inherit; text-decoration: none; }

h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-heading);
	line-height: 1.12;
	font-weight: 700;
	color: var(--ink);
	letter-spacing: -0.01em;
}

h1, h2, h3 { text-wrap: balance; }

p { text-wrap: pretty; }

ul { list-style: none; }

button { cursor: pointer; border: none; background: none; font-family: inherit; }

/* Keyboard focus — visible everywhere, never removed */
:focus-visible {
	outline: 2px solid var(--green-mid);
	outline-offset: 2px;
	border-radius: var(--radius-sm);
}
.ss-section--dark :focus-visible,
.ss-footer-main :focus-visible {
	outline-color: var(--yellow);
}

.ss-container {
	max-width: var(--container);
	margin: 0 auto;
	padding: 0 2rem;
}

/* ------------------------------------------------------------------
   Buttons
------------------------------------------------------------------ */
.ss-btn {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .75rem 1.75rem;
	font-family: var(--font-body);
	font-size: .9375rem;
	font-weight: 600;
	letter-spacing: .02em;
	border-radius: var(--radius-sm);
	transition: var(--transition);
	text-decoration: none;
	white-space: nowrap;
}

.ss-btn--green,
.ss-btn--primary {
	background: var(--green);
	color: var(--white);
	border: 1.5px solid var(--green);
}
.ss-btn--green:hover,
.ss-btn--primary:hover {
	background: var(--green-mid);
	border-color: var(--green-mid);
	transform: translateY(-2px);
}

.ss-btn--yellow {
	background: var(--yellow);
	color: var(--green-deep);
	border: 1.5px solid var(--yellow);
	font-weight: 700;
}
.ss-btn--yellow:hover {
	background: #c9a93e;
	border-color: #c9a93e;
	transform: translateY(-2px);
}

.ss-btn--outline-green,
.ss-btn--ghost-green {
	background: transparent;
	color: var(--green);
	border: 1.5px solid var(--green);
}
.ss-btn--outline-green:hover,
.ss-btn--ghost-green:hover {
	background: var(--green);
	color: var(--white);
	transform: translateY(-2px);
}

.ss-btn--outline-white {
	background: transparent;
	color: var(--white);
	border: 1.5px solid rgba(255,255,255,.6);
}
.ss-btn--outline-white:hover {
	background: rgba(255,255,255,.12);
	border-color: var(--white);
}

/* ------------------------------------------------------------------
   Section Base
------------------------------------------------------------------ */
.ss-section { padding: 7rem 0; }
.ss-section--dark { background: var(--dark-section); color: var(--white); }
.ss-section--dark h2, .ss-section--dark h3, .ss-section--dark h4 { color: var(--white); }
.ss-section--dark p { color: rgba(255,255,255,.75); }

.ss-section-header {
	max-width: 680px;
	margin-bottom: 4rem;
}

.ss-section-heading {
	font-family: var(--font-heading);
	font-size: clamp(2rem, 4vw, 3rem);
	font-weight: 800;
	color: var(--charcoal);
	line-height: 1.1;
	margin-bottom: 1rem;
}

.ss-section-subtext {
	font-size: 1.0625rem;
	color: var(--muted);
	max-width: 520px;
	line-height: 1.7;
}

/* ------------------------------------------------------------------
   Header — Fixed, transparent on home, solid on scroll
------------------------------------------------------------------ */
#ss-header {
	position: sticky;
	top: 0;
	width: 100%;
	z-index: 100;
	background: var(--white);
	box-shadow: var(--shadow-sm);
	transition: background .4s var(--ease-out), box-shadow .4s var(--ease-out);
}

.home #ss-header {
	position: fixed;
	background: transparent;
	box-shadow: none;
}

.home #ss-header.scrolled {
	background: rgba(255,255,255,.96);
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
	box-shadow: 0 1px 24px rgba(0,0,0,.08);
}

.ss-nav-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: var(--nav-h);
	gap: 2rem;
}

.ss-logo {
	display: flex;
	align-items: center;
	flex-shrink: 0;
}
.ss-logo img {
	height: 108px;
	width: auto;
	display: block;
	transition: filter .3s ease;
}

.home #ss-header:not(.scrolled) .ss-logo img {
	filter: brightness(0) invert(1);
}

.ss-nav-menu {
	display: flex;
	align-items: center;
	gap: .25rem;
}

.ss-nav-menu > li > a {
	position: relative;
	display: block;
	padding: .5rem .875rem;
	font-size: .9375rem;
	font-weight: 500;
	color: var(--charcoal);
	transition: color .25s ease;
}

.ss-nav-menu > li > a::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: .875rem;
	right: .875rem;
	height: 1.5px;
	background: var(--green);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform .3s var(--ease-out);
}

.ss-nav-menu > li > a:hover::after,
.ss-nav-menu > li.current-menu-item > a::after,
.ss-nav-menu > li.current-menu-ancestor > a::after { transform: scaleX(1); }

/* Dropdown submenus — hidden by default, shown on hover */
.ss-nav-menu .sub-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 210px;
	background: var(--white);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	box-shadow: 0 8px 24px rgba(0,0,0,.10);
	z-index: 1000;
	padding: .375rem 0;
	/* Visual gap via padding so no dead zone between parent and submenu */
	padding-top: .625rem;
	margin-top: 0;
}
/* Bridge between nav link and submenu — prevents hover gap from hiding it */
.ss-nav-menu .sub-menu::before {
	content: '';
	position: absolute;
	top: -.625rem;
	left: 0;
	right: 0;
	height: .625rem;
}

.ss-nav-menu li { position: relative; }

.ss-nav-menu li.is-open > .sub-menu { display: block; }

/* No chevron arrows on dropdown items */

.ss-nav-menu .sub-menu li a {
	display: block;
	padding: .6rem 1.25rem;
	font-size: .875rem;
	color: var(--charcoal);
	white-space: nowrap;
	transition: background .2s ease, color .2s ease;
}

.ss-nav-menu .sub-menu li a:hover { background: var(--off-white); color: var(--green); }

.home #ss-header:not(.scrolled) .ss-nav-menu > li > a { color: rgba(255,255,255,.9); }
.home #ss-header:not(.scrolled) .ss-nav-menu > li > a::after { background: var(--white); }

.ss-nav-right {
	display: flex;
	align-items: center;
	gap: 1rem;
}

.ss-nav-cta { font-size: .875rem; padding: .6rem 1.25rem; }

.home #ss-header:not(.scrolled) .ss-nav-cta {
	background: transparent;
	color: var(--white);
	border-color: rgba(255,255,255,.7);
}
.home #ss-header:not(.scrolled) .ss-nav-cta:hover { background: rgba(255,255,255,.15); }

.ss-hamburger {
	display: none;
	flex-direction: column;
	gap: 5px;
	padding: 6px;
}

.ss-hamburger span {
	display: block;
	width: 22px;
	height: 1.5px;
	background: var(--charcoal);
	border-radius: 2px;
	transition: var(--transition);
	transform-origin: center;
}

.home #ss-header:not(.scrolled) .ss-hamburger span { background: var(--white); }

.ss-hamburger.active span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.ss-hamburger.active span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.ss-hamburger.active span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

.ss-mobile-nav {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	width: 100%;
	background: var(--white);
	box-shadow: 0 8px 32px rgba(0,0,0,.12);
	overflow: hidden;
	max-height: 0;
	transition: max-height .4s var(--ease-out);
}

.ss-mobile-nav.open { max-height: 600px; }

.ss-mobile-menu { padding: 1rem 0; }
.ss-mobile-menu li a {
	display: block;
	padding: .75rem 1.5rem;
	font-size: 1rem;
	font-weight: 500;
	color: var(--charcoal);
	border-bottom: 1px solid var(--border);
}

/* ------------------------------------------------------------------
   Hero
------------------------------------------------------------------ */
#ss-hero {
	position: relative;
	height: 100svh;
	min-height: 600px;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}

.ss-hero-slides {
	position: absolute;
	inset: 0;
}

.ss-hero-slide {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	opacity: 0;
	transition: opacity 1.2s ease, transform 6s ease;
	transform: scale(1.05);
	will-change: opacity, transform;
}

.ss-hero-slide.active {
	opacity: 1;
	transform: scale(1);
}

.ss-hero-slide::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to bottom,
		rgba(10,28,6,.45) 0%,
		rgba(10,28,6,.55) 50%,
		rgba(10,28,6,.7) 100%
	);
}

.ss-hero-content {
	position: relative;
	z-index: 2;
	width: 100%;
	text-align: center;
	padding: 0 1.5rem;
}

.ss-hero-inner {
	max-width: 860px;
	margin: 0 auto;
}

.ss-hero-slide-text { display: none; }
.ss-hero-slide-text.active { display: block; }

.ss-hero-headline {
	font-family: var(--font-heading);
	font-size: clamp(2.4rem, 6vw, 4.25rem);
	font-weight: 800;
	color: var(--white);
	line-height: 1.08;
	margin-bottom: 1.25rem;
	letter-spacing: -.02em;
}

.ss-hero-sub {
	font-size: clamp(1rem, 2vw, 1.2rem);
	color: rgba(255,255,255,.85);
	max-width: 560px;
	margin: 0 auto 2.5rem;
	line-height: 1.7;
}

.ss-hero-actions {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	flex-wrap: wrap;
}

.ss-hero-dots {
	position: absolute;
	bottom: 2rem;
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	gap: .5rem;
	z-index: 3;
}

.ss-hero-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: rgba(255,255,255,.4);
	transition: background .3s ease, transform .3s ease;
	border: none;
}

.ss-hero-dot.active {
	background: var(--white);
	transform: scale(1.3);
}


/* ------------------------------------------------------------------
   Expertise — Split image + numbered list
------------------------------------------------------------------ */
#ss-expertise {
	padding: 7rem 0;
	background: var(--off-white);
}

.ss-expertise-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 6rem;
	align-items: stretch;
}

.ss-expertise-image {
	position: relative;
	min-height: 620px;
	overflow: hidden;
	border-radius: var(--radius-lg);
}

.ss-expertise-image img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ss-expertise-heading {
	font-size: clamp(1.75rem, 3.5vw, 2.5rem);
	font-weight: 800;
	margin-bottom: 2.5rem;
	line-height: 1.15;
}

.ss-expertise-items { display: flex; flex-direction: column; }

.ss-expertise-item {
	padding: 1.5rem 0;
	border-top: 1px solid var(--border);
	cursor: pointer;
}

.ss-expertise-item:last-child { border-bottom: 1px solid var(--border); }

.ss-expertise-item-header {
	display: flex;
	align-items: baseline;
	gap: 1.25rem;
}

.ss-expertise-num {
	font-family: var(--font-heading);
	font-size: 1.75rem;
	font-weight: 800;
	color: var(--green-pale);
	line-height: 1;
	transition: color .3s ease;
	flex-shrink: 0;
	min-width: 3rem;
}

.ss-expertise-item:hover .ss-expertise-num,
.ss-expertise-item.expanded .ss-expertise-num { color: var(--green); }

.ss-expertise-item-title {
	font-family: var(--font-heading);
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--charcoal);
	transition: color .3s ease;
}

.ss-expertise-item:hover .ss-expertise-item-title { color: var(--green); }

.ss-expertise-item-desc {
	max-height: 0;
	overflow: hidden;
	opacity: 0;
	padding-left: calc(3rem + 1.25rem);
	font-size: .9375rem;
	color: var(--muted);
	line-height: 1.7;
	transition: max-height .4s ease, opacity .35s ease, padding .35s ease;
}

.ss-expertise-item.expanded .ss-expertise-item-desc {
	max-height: 120px;
	opacity: 1;
	padding-top: .75rem;
}

/* ------------------------------------------------------------------
   About — Split (image bleeds, no stats)
------------------------------------------------------------------ */
#ss-about {
	padding: 0;
	overflow: hidden;
}

.ss-about-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	min-height: 640px;
}

.ss-about-content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 6rem 5rem 6rem 2rem;
	max-width: 600px;
	margin-left: auto;
}

.ss-about-content .ss-section-heading { margin-bottom: 1.25rem; }

.ss-about-content > p {
	font-size: 1.0625rem;
	color: var(--muted);
	line-height: 1.75;
	margin-bottom: 1rem;
}

.ss-about-proofs {
	display: flex;
	flex-direction: column;
	gap: .875rem;
	margin: 2rem 0 2.5rem;
}

.ss-about-proof {
	display: flex;
	align-items: flex-start;
	gap: .875rem;
	font-size: .9375rem;
	color: var(--charcoal);
	line-height: 1.5;
}

.ss-about-proof::before {
	content: '';
	flex-shrink: 0;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--green);
	margin-top: .45rem;
}

.ss-about-image {
	position: relative;
	overflow: hidden;
	min-height: 780px;
}

.ss-about-image img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
}

/* ------------------------------------------------------------------
   Facilities / Portfolio — Asymmetric grid
------------------------------------------------------------------ */
#ss-portfolio {
	padding: 7rem 0;
	background: var(--white);
}

.ss-portfolio-header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	margin-bottom: 3rem;
	gap: 2rem;
}

.ss-portfolio-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.75rem;
}

/* Card 1: tall, spans 2 rows */
.ss-facility-card:nth-child(1) { grid-row: span 2; }
.ss-facility-card:nth-child(1) .ss-facility-card-inner { aspect-ratio: unset; height: 100%; }

/* Card 6: full-width cinematic banner */
.ss-facility-card:nth-child(6) { grid-column: 1 / 4; }
.ss-facility-card:nth-child(6) .ss-facility-card-inner { aspect-ratio: 16 / 5; }

.ss-facility-card {
	position: relative;
	overflow: hidden;
	border-radius: var(--radius-lg);
	background: var(--charcoal);
	cursor: pointer;
	transition: transform .4s var(--ease-out), box-shadow .4s var(--ease-out);
}

.ss-facility-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }

.ss-facility-card-inner {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
}

.ss-facility-card img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
	transition: transform .6s var(--ease-out);
}
.ss-facility-card:nth-child(6) img {
	object-position: center top;
}

.ss-facility-card:hover img { transform: scale(1.04); }

.ss-facility-card-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(10,28,6,.85) 0%, transparent 55%);
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 1.75rem;
}

.ss-facility-card-title {
	font-family: var(--font-heading);
	font-size: 1.1875rem;
	font-weight: 700;
	color: var(--white);
	margin-bottom: .25rem;
}

.ss-facility-card-tag {
	font-size: .8125rem;
	color: rgba(255,255,255,.65);
	text-transform: uppercase;
	letter-spacing: .1em;
}

/* ------------------------------------------------------------------
   Process — Dark background + animated connecting line
------------------------------------------------------------------ */
#ss-process {
	padding: 7rem 0;
	background: var(--green-deep);
	overflow: hidden;
}

.ss-process-header {
	text-align: center;
	margin-bottom: 5rem;
}

.ss-process-header .ss-section-heading { color: var(--white); }
.ss-process-header .ss-section-subtext { color: rgba(255,255,255,.6); max-width: 560px; margin: 0 auto; }

.ss-process-steps {
	position: relative;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 2rem;
}

.ss-process-connector {
	position: absolute;
	top: 27px;
	left: calc(12.5% + 28px);
	right: calc(12.5% + 28px);
	height: 1px;
	background: rgba(255,255,255,.1);
	pointer-events: none;
}

.ss-process-connector-fill {
	position: absolute;
	inset: 0;
	background: var(--green-light);
	transform-origin: left;
	transform: scaleX(0);
	transition: transform 1.4s var(--ease-out);
}

.ss-process-connector-fill.is-visible { transform: scaleX(1); }

.ss-process-step { position: relative; padding-top: 4.5rem; }

.ss-process-num {
	position: absolute;
	top: 0;
	left: 0;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: rgba(255,255,255,.08);
	border: 1.5px solid rgba(255,255,255,.2);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-heading);
	font-size: 1rem;
	font-weight: 800;
	color: var(--white);
	transition: background .5s ease, border-color .5s ease;
}

.ss-process-step.is-visible .ss-process-num {
	background: var(--green-mid);
	border-color: var(--green-mid);
}

.ss-process-step-title {
	font-family: var(--font-heading);
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--white);
	margin-bottom: .625rem;
}

.ss-process-step-desc {
	font-size: .9375rem;
	color: rgba(255,255,255,.6);
	line-height: 1.7;
}


/* ------------------------------------------------------------------
   Products — Filter tabs + grid
------------------------------------------------------------------ */
#ss-products {
	padding: 7rem 0;
	background: var(--white);
}

.ss-products-header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	margin-bottom: 2.5rem;
	gap: 2rem;
	flex-wrap: wrap;
}

.ss-products-filter { display: flex; gap: .5rem; flex-wrap: wrap; }

.ss-products-filter-btn {
	padding: .45rem 1.1rem;
	font-family: var(--font-body);
	font-size: .8125rem;
	font-weight: 600;
	color: var(--muted);
	border: 1.5px solid var(--border);
	border-radius: var(--radius-sm);
	background: transparent;
	transition: var(--transition);
	cursor: pointer;
}

.ss-products-filter-btn:hover { border-color: var(--green); color: var(--green); }
.ss-products-filter-btn.active { background: var(--green); border-color: var(--green); color: var(--white); }

.ss-products-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
}

.ss-product-card {
	background: var(--off-white);
	border-radius: var(--radius-lg);
	overflow: hidden;
	transition: transform .35s var(--ease-out), box-shadow .35s var(--ease-out);
}

.ss-product-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.ss-product-card.hidden { display: none; }
.ss-product-card-link { display: flex; flex-direction: column; height: 100%; color: inherit; text-decoration: none; }

.ss-product-card--featured {
	grid-column: span 2;
	/* Vertical layout — same as all cards, just wider */
}

.ss-product-card--featured .ss-product-card-img {
	aspect-ratio: 3 / 2;
}

.ss-product-card--featured .ss-product-card-title {
	font-size: 1.125rem;
}

.ss-product-card-img {
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: #F5F2EC;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.25rem;
}

.ss-product-card-img img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
	transition: transform .5s var(--ease-out);
}

.ss-product-card:hover .ss-product-card-img img,
.ss-product-card-link:hover .ss-product-card-img img { transform: scale(1.06); }

.ss-product-card-body { padding: 1.25rem 1.25rem 1.5rem; }

.ss-product-card-cat {
	font-size: .75rem;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--green);
	margin-bottom: .375rem;
}

.ss-product-card-title {
	font-family: var(--font-heading);
	font-size: 1rem;
	font-weight: 700;
	color: var(--charcoal);
	margin-bottom: .25rem;
}

.ss-product-card-desc {
	font-size: .875rem;
	color: var(--muted);
	line-height: 1.6;
}

/* ------------------------------------------------------------------
   Testimonials — Full-bleed photo cards with gradient overlay
------------------------------------------------------------------ */
#ss-testimonials {
	padding: 7rem 0;
	background: var(--footer-bg);
}

.ss-testimonials-header { margin-bottom: 3.5rem; }
.ss-testimonials-header .ss-section-heading { color: var(--white); }
.ss-testimonials-header .ss-section-subtext { color: rgba(255,255,255,.6); }

/* Photo card grid */
.ss-tcards-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 1.25rem;
	margin-bottom: 5rem;
	align-items: stretch;
}

/* Individual card */
.ss-tcard {
	border-radius: var(--radius-lg);
	overflow: hidden;
	margin: 0;
	background: var(--green-deep);
	border: 1px solid rgba(255,255,255,.08);
	transition: border-color .3s ease, transform .3s ease;
}

.ss-tcard:hover {
	border-color: rgba(255,255,255,.18);
	transform: translateY(-3px);
}

/* Inner layout — flex col so quote fills space, footer pins to bottom */
.ss-tcard-body {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 2.25rem 2rem 2rem;
	height: 100%;
	min-height: 320px;
}

/* Large decorative quote mark — fills visual weight at top */
.ss-tcard-bg-quote {
	width: 5.5rem;
	height: auto;
	color: var(--yellow);
	opacity: .12;
	margin-bottom: 1.5rem;
	flex-shrink: 0;
}

/* Quote text */
.ss-tcard-text {
	font-size: 1rem;
	line-height: 1.8;
	color: rgba(255,255,255,.85);
	font-style: italic;
	quotes: none;
	flex: 1;
	margin: 0;
}

/* Author row — avatar + name/role side by side */
.ss-tcard-footer {
	display: flex;
	align-items: center;
	gap: .875rem;
	margin-top: 1.75rem;
	padding-top: 1.25rem;
	border-top: 1px solid rgba(255,255,255,.12);
}

/* Avatar — real photo or initials circle, always 48px */
.ss-tcard-avatar {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	object-fit: cover;
	flex-shrink: 0;
	border: 2px solid rgba(255,255,255,.2);
}

/* Initials circle when no photo available */
.ss-tcard-initials {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--green-mid);
	color: var(--white);
	font-family: var(--font-heading);
	font-size: 1.125rem;
	font-weight: 700;
	letter-spacing: .02em;
	user-select: none;
}

.ss-tcard-author {
	display: flex;
	flex-direction: column;
	gap: .15rem;
}

.ss-tcard-name {
	font-family: var(--font-heading);
	font-size: .9375rem;
	font-weight: 700;
	color: var(--white);
	letter-spacing: .01em;
}

.ss-tcard-role {
	font-size: .8125rem;
	color: rgba(255,255,255,.5);
	letter-spacing: .01em;
}

.ss-testimonial-form-wrap {
	border-top: 1px solid rgba(255,255,255,.1);
	padding-top: 4rem;
}

.ss-testimonial-form-wrap .ss-form-heading {
	font-family: var(--font-heading);
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 800;
	color: var(--white);
	margin-bottom: .75rem;
}

.ss-testimonial-form-wrap > p {
	color: rgba(255,255,255,.6);
	margin-bottom: 2rem;
}

#ss-testimonial-form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
	max-width: 720px;
}

.ss-form-group--full { grid-column: span 2; }
.ss-form-submit { grid-column: span 2; }
.ss-form-message-wrap { grid-column: span 2; }

.ss-form-group input,
.ss-form-group textarea {
	width: 100%;
	padding: .875rem 1rem;
	background: rgba(255,255,255,.07);
	border: 1px solid rgba(255,255,255,.15);
	border-radius: var(--radius-sm);
	color: var(--white);
	font-family: var(--font-body);
	font-size: .9375rem;
	transition: border-color .25s ease;
	appearance: none;
}

.ss-form-group input::placeholder,
.ss-form-group textarea::placeholder { color: rgba(255,255,255,.38); }

.ss-form-group input:focus,
.ss-form-group textarea:focus { outline: none; border-color: var(--green-light); }

.ss-form-group textarea { resize: vertical; min-height: 110px; }

/* Persistent field labels — placeholders alone vanish on focus and leave
   the user guessing what belongs in each box. */
.ss-form-group > label {
	display: block;
	margin-bottom: .5rem;
	font-size: .75rem;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: rgba(255,255,255,.85);
}
.ss-form-group .ss-req { color: var(--yellow); }
.ss-form-group .ss-optional { color: rgba(255,255,255,.45); text-transform: none; letter-spacing: 0; font-weight: 400; }

.ss-field-hint {
	display: block;
	margin-top: .5rem;
	font-size: .8125rem;
	line-height: 1.5;
	color: rgba(255,255,255,.5);
}

/* Success box shown after submit */
.ss-form-success {
	display: flex;
	align-items: flex-start;
	gap: .875rem;
	background: rgba(58,117,32,.15);
	border: 1px solid var(--green-light);
	border-radius: var(--radius-sm);
	padding: 1.25rem 1.5rem;
	color: #a8d88a;
	font-size: .9375rem;
	line-height: 1.6;
	margin-bottom: 1.5rem;
}
.ss-form-success i { font-size: 1.125rem; margin-top: .1rem; flex-shrink: 0; }

/* Photo upload button */
.ss-upload-label {
	display: inline-flex;
	align-items: center;
	gap: .625rem;
	padding: .625rem 1.125rem;
	background: rgba(255,255,255,.06);
	border: 1px dashed rgba(255,255,255,.25);
	border-radius: var(--radius-sm);
	color: rgba(255,255,255,.65);
	font-size: .875rem;
	cursor: pointer;
	transition: background .2s ease, border-color .2s ease;
	width: 100%;
}
.ss-upload-label:hover { background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.4); color: var(--white); }
.ss-upload-label i { font-size: 1rem; }

.ss-upload-filename {
	display: block;
	margin-top: .5rem;
	font-size: .8125rem;
	color: rgba(255,255,255,.5);
	word-break: break-all;
}

.ss-form-message {
	padding: .875rem 1rem;
	border-radius: var(--radius-sm);
	font-size: .9375rem;
	display: none;
}

.ss-form-message.success { display: block; background: rgba(58,117,32,.2); border: 1px solid var(--green-light); color: #a8d88a; }
.ss-form-message.error   { display: block; background: rgba(180,30,30,.2); border: 1px solid #c03030; color: #f4a3a3; }

/* ------------------------------------------------------------------
   Team — Circular portraits, off-white section
------------------------------------------------------------------ */
@keyframes ss-float-a {
	0%, 100% { transform: translateY(0px);    }
	50%       { transform: translateY(-14px);  }
}
@keyframes ss-float-b {
	0%, 100% { transform: translateY(-8px);   }
	50%       { transform: translateY(8px);    }
}

#ss-team {
	padding: 7rem 0;
	background: var(--off-white);
	overflow: hidden;
	position: relative;
}

.ss-team-header {
	margin-bottom: 4.5rem;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2rem;
	align-items: end;
}

.ss-team-header .ss-section-heading { color: var(--green-deep); margin-bottom: 0; }
.ss-team-header .ss-section-subtext { color: var(--muted); margin: 0; }

.ss-team-outer { display: block; }
.ss-team-arrow { display: none; }
.ss-team-carousel-wrap { overflow: visible; cursor: default; }

.ss-team-track {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 2.5rem;
	align-items: center;
	transform: none !important;
}

/* Alternating vertical stagger */
.ss-team-card:nth-child(even) { margin-top: 3.5rem; }

/* Hide duplicated cards */
.ss-team-card[aria-hidden="true"] { display: none; }

/* Floating animations per card, staggered */
.ss-team-card:nth-child(1) { animation: ss-float-a 5s ease-in-out infinite; }
.ss-team-card:nth-child(2) { animation: ss-float-b 4.5s ease-in-out infinite 0.6s; }
.ss-team-card:nth-child(3) { animation: ss-float-a 5.5s ease-in-out infinite 1.2s; }
.ss-team-card:nth-child(4) { animation: ss-float-b 4.8s ease-in-out infinite 1.8s; }

.ss-team-card:hover { animation-play-state: paused; }

@media (prefers-reduced-motion: reduce) {
	.ss-team-card { animation: none !important; }
}

.ss-team-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	background: transparent;
	border: none;
	overflow: visible;
}

.ss-team-img {
	position: relative;
	width: 160px;
	height: 160px;
	border-radius: 50%;
	overflow: hidden;
	background: var(--border);
	margin-bottom: 1.25rem;
	flex-shrink: 0;
	box-shadow: 0 0 0 3px transparent;
	transition: box-shadow .35s ease;
}

.ss-team-card:hover .ss-team-img {
	box-shadow: 0 0 0 3px var(--yellow), 0 0 0 6px rgba(217,184,74,.2);
}

.ss-team-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
	filter: saturate(0.85);
	transition: transform .7s var(--ease-out), filter .5s ease;
}

.ss-team-card:hover .ss-team-img img {
	transform: scale(1.08);
	filter: saturate(1);
}

/* Social overlay — circular */
.ss-team-social-overlay {
	position: absolute;
	inset: 0;
	border-radius: 50%;
	background: rgba(14,38,8,.7);
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	opacity: 0;
	transition: opacity .35s ease;
}

.ss-team-card:hover .ss-team-social-overlay { opacity: 1; }

.ss-team-social-overlay a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: rgba(247,244,236,.15);
	color: var(--off-white);
	font-size: .875rem;
	border: 1px solid rgba(247,244,236,.3);
	transition: background .2s ease;
}

.ss-team-social-overlay a:hover { background: var(--green-mid); border-color: transparent; }

.ss-team-card-body { padding: 0; }

.ss-team-card h3 {
	font-family: var(--font-heading);
	font-size: 1rem;
	font-weight: 700;
	margin-bottom: .2rem;
	color: var(--green-deep);
	letter-spacing: -.01em;
}

.ss-team-role {
	font-size: .6875rem;
	color: var(--muted);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .09em;
}

/* ------------------------------------------------------------------
   Why Choose Us — Full-bleed overlay editorial grid
------------------------------------------------------------------ */
#ss-why {
	display: grid;
	grid-template-columns: 55% 45%;
	min-height: 90vh;
}

.ss-why-content {
	background: var(--green-deep);
	padding: 7rem 5rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 3rem;
}

.ss-why-photo {
	position: relative;
	overflow: hidden;
}

.ss-why-photo img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
}

.ss-why-heading {
	font-family: var(--font-heading);
	font-size: clamp(2rem, 3.5vw, 3.25rem);
	color: var(--white);
	line-height: 1.2;
	margin-bottom: .625rem;
}

.ss-why-sub {
	font-size: 1rem;
	color: rgba(255,255,255,.6);
	line-height: 1.65;
}

.ss-why-list {
	display: flex;
	flex-direction: column;
}

.ss-why-item {
	display: grid;
	grid-template-columns: 2.5rem 1fr;
	gap: 1.25rem;
	padding: 1.5rem 0;
	border-top: 1px solid rgba(255,255,255,.1);
	align-items: start;
}

.ss-why-item:last-child { border-bottom: 1px solid rgba(255,255,255,.1); }

.ss-why-item-num {
	font-family: var(--font-heading);
	font-size: .875rem;
	color: var(--yellow);
	padding-top: .25rem;
	letter-spacing: .05em;
}

.ss-why-item-title {
	font-family: var(--font-heading);
	font-size: 1.0625rem;
	color: var(--white);
	margin-bottom: .375rem;
	line-height: 1.3;
}

.ss-why-item-desc {
	font-size: .875rem;
	color: rgba(255,255,255,.55);
	line-height: 1.7;
}

/* ------------------------------------------------------------------
   Events — Full image background cards
------------------------------------------------------------------ */
#ss-events { padding: 7rem 0; background: var(--white); }

.ss-events-header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	margin-bottom: 3rem;
	gap: 2rem;
}

.ss-events-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.5rem;
}

.ss-event-card {
	position: relative;
	border-radius: var(--radius-lg);
	overflow: hidden;
	aspect-ratio: 16 / 9;
	background: var(--charcoal);
	display: block;
	cursor: pointer;
	transition: transform .35s var(--ease-out), box-shadow .35s var(--ease-out);
}

.ss-event-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }

.ss-event-bg-img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .7s var(--ease-out);
}

.ss-event-card:hover .ss-event-bg-img { transform: scale(1.04); }

.ss-event-card-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(10,28,6,.9) 0%, rgba(10,28,6,.3) 55%, transparent 100%);
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 2rem 2.25rem;
}

.ss-event-card-date {
	font-size: .8125rem;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: rgba(255,255,255,.65);
	margin-bottom: .5rem;
}

.ss-event-card-title {
	font-family: var(--font-heading);
	font-size: 1.375rem;
	font-weight: 700;
	color: var(--white);
	line-height: 1.25;
	margin-bottom: .5rem;
}

.ss-event-card-location {
	font-size: .875rem;
	color: rgba(255,255,255,.6);
	margin-bottom: 1.25rem;
}

.ss-event-card-link {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	font-size: .875rem;
	font-weight: 600;
	color: var(--white);
	opacity: 0;
	transform: translateX(-8px);
	transition: opacity .3s ease, transform .3s ease;
}

.ss-event-card:hover .ss-event-card-link { opacity: 1; transform: translateX(0); }
.ss-event-card-link i { transition: transform .25s ease; }
.ss-event-card-link:hover i { transform: translateX(4px); }

/* ------------------------------------------------------------------
   Footer
------------------------------------------------------------------ */
#ss-footer { background: var(--footer-bg); color: var(--white); }
#ss-footer h1, #ss-footer h2, #ss-footer h3,
#ss-footer h4, #ss-footer h5, #ss-footer h6 { color: var(--white); }
#ss-footer strong { color: inherit; }

.ss-footer-tagline-section {
	padding: 5rem 0 4rem;
	border-bottom: 1px solid rgba(255,255,255,.1);
}

.ss-footer-tagline-text {
	font-family: var(--font-heading);
	font-size: clamp(2rem, 5vw, 3.75rem);
	font-weight: 800;
	color: var(--white);
	line-height: 1.1;
	letter-spacing: -.02em;
	max-width: 860px;
}

.ss-footer-tagline-cta {
	margin-top: 2.5rem;
	display: inline-flex;
}

.ss-footer-main {
	padding: 4rem 0;
	border-bottom: 1px solid rgba(255,255,255,.08);
}

.ss-footer-grid {
	display: grid;
	grid-template-columns: 1.5fr 1fr 1.25fr 1.25fr;
	gap: 3rem;
}

.ss-footer-logo { margin-bottom: 1.25rem; }

.ss-footer-logo img {
	height: 44px;
	width: auto;
	filter: brightness(0) invert(1);
	opacity: .9;
}

.ss-footer-wordmark {
	font-family: var(--font-heading);
	font-size: 1.25rem;
	font-weight: 800;
	color: var(--white);
}

.ss-footer-about-text {
	font-size: .9375rem;
	color: rgba(255,255,255,.55);
	line-height: 1.7;
	margin-bottom: 1.5rem;
}

.ss-footer-social { display: flex; gap: .75rem; }

.ss-footer-social a {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	border: 1px solid rgba(255,255,255,.2);
	display: flex;
	align-items: center;
	justify-content: center;
	color: rgba(255,255,255,.65);
	font-size: .875rem;
	transition: background .25s ease, color .25s ease, border-color .25s ease;
}

.ss-footer-social a:hover { background: var(--green-mid); border-color: var(--green-mid); color: var(--white); }

.ss-footer-col h4 {
	font-family: var(--font-heading);
	font-size: .875rem;
	font-weight: 700;
	color: var(--white);
	letter-spacing: .06em;
	text-transform: uppercase;
	margin-bottom: 1.5rem;
}

.ss-footer-nav-menu { display: flex; flex-direction: column; gap: .75rem; }

.ss-footer-nav-menu a {
	font-size: .9375rem;
	color: rgba(255,255,255,.6);
	transition: color .25s ease;
}

.ss-footer-nav-menu a:hover { color: var(--white); }

.ss-footer-contact-item {
	display: flex;
	align-items: flex-start;
	gap: .875rem;
	margin-bottom: 1rem;
	font-size: .9375rem;
	color: rgba(255,255,255,.6);
}

.ss-footer-contact-item i { color: var(--green-light); margin-top: .15rem; flex-shrink: 0; width: 16px; }
.ss-footer-contact-item a { color: inherit; }
.ss-footer-contact-item a:hover { color: var(--white); }

.ss-footer-hours { display: flex; flex-direction: column; gap: .625rem; }

.ss-footer-hours li {
	display: flex;
	justify-content: space-between;
	font-size: .875rem;
	color: rgba(255,255,255,.5);
	padding-bottom: .625rem;
	border-bottom: 1px solid rgba(255,255,255,.06);
}

.ss-footer-hours li:last-child { border-bottom: none; }
.ss-footer-hours li span:first-child { color: rgba(255,255,255,.75); }

.ss-footer-bottom { padding: 1.5rem 0; }

.ss-footer-bottom-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
}

.ss-footer-bottom-inner p { font-size: .875rem; color: rgba(255,255,255,.38); }
.ss-footer-bottom-inner a { color: rgba(255,255,255,.6); transition: color .25s ease; }
.ss-footer-bottom-inner a:hover { color: var(--white); }

/* ------------------------------------------------------------------
   Page Banner (inner pages)
------------------------------------------------------------------ */
.ss-page-banner {
	padding: 6rem 0 5rem;
	background: var(--green-deep);
	position: relative;
	overflow: hidden;
}

.ss-page-banner::after {
	content: '';
	position: absolute;
	inset: 0;
	background: url('/wp-content/uploads/2025/07/corn-plantation-1.jpg') center/cover no-repeat;
	opacity: .12;
	pointer-events: none;
}

.ss-page-banner .ss-container { position: relative; z-index: 1; }

.ss-page-banner h1 {
	font-family: var(--font-heading);
	font-size: clamp(2.25rem, 5vw, 3.5rem);
	color: var(--white);
	margin-bottom: .5rem;
	line-height: 1.15;
}

.ss-breadcrumb { font-size: .875rem; color: rgba(255,255,255,.55); margin-top: .5rem; }
.ss-breadcrumb a { color: rgba(255,255,255,.7); text-decoration: none; }
.ss-breadcrumb a:hover { color: var(--white); }
.ss-breadcrumb span { margin: 0 .5rem; }

/* ------------------------------------------------------------------
   Interior pages — shared
------------------------------------------------------------------ */
.ss-page-body { padding: 5rem 0; }

/* About page */
.ss-about-page-story { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: center; margin-bottom: 6rem; }
.ss-about-page-story .ss-story-text h2 { font-family: var(--font-heading); font-size: clamp(1.75rem, 3vw, 2.75rem); margin-bottom: 1.5rem; color: var(--charcoal); }
.ss-about-page-story .ss-story-text p { color: var(--muted); line-height: 1.8; margin-bottom: 1.25rem; font-size: 1.0625rem; }
.ss-about-page-img { position: relative; border-radius: var(--radius-lg); overflow: hidden; }
.ss-about-page-img img { width: 100%; height: 500px; object-fit: cover; display: block; }

/* Credentials strip */
.ss-credentials-strip { background: var(--green-deep); padding: 3.25rem 0; }
.ss-credentials-inner { display: flex; align-items: stretch; gap: 0; }
.ss-cred-item { flex: 1; padding: 0 3rem; }
.ss-cred-item:first-child { padding-left: 0; }
.ss-cred-item:last-child { padding-right: 0; }
.ss-cred-item strong { display: block; font-family: var(--font-heading); font-size: 1.125rem; color: var(--white); margin-bottom: .5rem; letter-spacing: -.01em; }
.ss-cred-item span { display: block; font-size: .9375rem; color: rgba(255,255,255,.65); line-height: 1.65; }
.ss-cred-divider { width: 1px; background: rgba(255,255,255,.15); flex-shrink: 0; margin: .25rem 0; }

/* Delivering Value */
.ss-deliver-section { padding: 6rem 0; background: var(--off-white); }
.ss-deliver-grid { display: grid; grid-template-columns: 1fr 1.6fr; gap: 5rem; align-items: start; }
.ss-deliver-intro h2 { font-family: var(--font-heading); font-size: clamp(1.75rem, 3vw, 2.5rem); color: var(--charcoal); margin-bottom: 1rem; line-height: 1.15; }
.ss-deliver-intro p { color: var(--muted); line-height: 1.75; font-size: 1.0625rem; margin-bottom: 1.25rem; }
.ss-deliver-link { font-size: .9375rem; font-weight: 600; color: var(--green-mid); text-decoration: none; }
.ss-deliver-link:hover { color: var(--charcoal); }
.ss-deliver-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
.ss-deliver-item { padding: 1.75rem 1.5rem 1.75rem 0; border-top: 1px solid var(--border); }
.ss-deliver-item:nth-child(odd) { padding-right: 2rem; border-right: 1px solid var(--border); }
.ss-deliver-item:nth-child(even) { padding-left: 2rem; }
.ss-deliver-item h3 { font-family: var(--font-heading); font-size: 1.0625rem; color: var(--charcoal); margin-bottom: .5rem; line-height: 1.3; }
.ss-deliver-item p { font-size: .9375rem; color: var(--muted); line-height: 1.7; margin: 0; }

/* Mission / Vision */
.ss-mv-section { padding-top: 0 !important; }
.ss-mv-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; margin-bottom: 5rem; }
.ss-mv-card { padding: 2.75rem; border-radius: var(--radius-lg); }
.ss-mv-card--dark { background: var(--green-deep); color: var(--white); }
.ss-mv-card--dark h3 { font-family: var(--font-heading); font-size: 1.375rem; color: var(--white); margin-bottom: 1rem; }
.ss-mv-card--dark p { line-height: 1.8; color: rgba(255,255,255,.75); margin: 0; }
.ss-mv-card--light { background: var(--white); border: 1px solid var(--border); }
.ss-mv-card--light h3 { font-family: var(--font-heading); font-size: 1.375rem; color: var(--charcoal); margin-bottom: 1rem; }
.ss-mv-card--light p { line-height: 1.8; color: var(--muted); margin: 0; }

/* Research block spacing */
.ss-research-block { padding-top: 0 !important; }

/* Why Synergy */
.ss-why-synergy { background: var(--green-deep); padding: 6rem 0; }
.ss-why-synergy-heading { font-family: var(--font-heading); font-size: clamp(1.75rem, 3vw, 2.5rem); color: var(--white); margin-bottom: 3.5rem; max-width: 560px; line-height: 1.2; }
.ss-why-synergy-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
.ss-abp-why-item { display: flex; flex-direction: column; padding: 2.5rem 0; border-top: 1px solid rgba(255,255,255,.12); }
.ss-abp-why-item:nth-child(odd) { padding-right: 4rem; border-right: 1px solid rgba(255,255,255,.12); }
.ss-abp-why-item:nth-child(even) { padding-left: 4rem; }
.ss-abp-why-item h3 { display: block; font-family: var(--font-heading); font-size: 1.1875rem; color: var(--yellow); margin-bottom: .75rem; line-height: 1.3; }
.ss-abp-why-item p { display: block; font-size: .9375rem; color: rgba(255,255,255,.7); line-height: 1.75; margin: 0; }
.ss-abp-why-item p a { color: var(--yellow); text-decoration: none; }
.ss-abp-why-item p a:hover { text-decoration: underline; }

/* Team */
.ss-about-team { padding: 5rem 0; background: var(--off-white); }
.ss-about-team-header { text-align: center; max-width: 560px; margin: 0 auto 3.5rem; }
.ss-about-team-header h2 { font-family: var(--font-heading); font-size: clamp(1.75rem, 3vw, 2.5rem); margin-bottom: .75rem; }
.ss-about-team-header p { color: var(--muted); font-size: 1.0625rem; }
.ss-team-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.ss-team-card { text-align: center; }
.ss-team-card-img { aspect-ratio: 3/4; border-radius: var(--radius-lg); overflow: hidden; margin-bottom: 1rem; background: var(--border); }
.ss-team-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ss-team-card h3 { font-family: var(--font-heading); font-size: 1.0625rem; margin-bottom: .25rem; color: var(--charcoal); }
.ss-team-card-role { font-size: .875rem; color: var(--green-mid); font-weight: 600; margin: 0; }
.ss-team-empty { text-align: center; color: var(--muted); font-size: 1.0625rem; padding: 3rem 0; }
.ss-team-empty a { color: var(--green-mid); }

/* Facilities */
.ss-facilities-section { padding: 5rem 0; }
.ss-facilities-header { text-align: center; max-width: 560px; margin: 0 auto 3.5rem; }
.ss-facilities-header h2 { font-family: var(--font-heading); font-size: clamp(1.75rem, 3vw, 2.5rem); margin-bottom: .75rem; }
.ss-facilities-header p { color: var(--muted); font-size: 1.0625rem; }
.ss-facility-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }

/* About CTA — full-bleed split: off-white left, photo right */
.ss-about-cta { display: grid; grid-template-columns: 1fr 1fr; min-height: 520px; }
.ss-about-cta-text { background: var(--off-white); display: flex; align-items: center; justify-content: flex-end; padding: 5rem 4rem; }
.ss-about-cta-content { max-width: 480px; width: 100%; }

.ss-about-cta h2 { font-family: var(--font-heading); font-size: clamp(2rem, 3.5vw, 3rem); color: var(--charcoal); line-height: 1.1; margin-bottom: 1.25rem; text-wrap: balance; }
.ss-about-cta p { color: var(--muted); line-height: 1.75; font-size: 1.0625rem; margin-bottom: 2rem; max-width: 44ch; }
.ss-about-cta-actions { display: flex; gap: 1rem; flex-wrap: wrap; }
.ss-btn--outline-dark { background: transparent; border: 1.5px solid var(--charcoal); color: var(--charcoal); }
.ss-btn--outline-dark:hover { background: var(--charcoal); color: var(--white); }
.ss-about-cta-img { position: relative; overflow: hidden; }
.ss-about-cta-img img { width: 100%; height: 100%; object-fit: cover; display: block; }

.ss-timeline { position: relative; padding-left: 2rem; border-left: 2px solid var(--green-pale); max-width: 680px; margin: 4rem auto 0; }
.ss-timeline-item { position: relative; padding-bottom: 3rem; }
.ss-timeline-item::before { content: ''; position: absolute; left: -2.5rem; top: .25rem; width: 12px; height: 12px; border-radius: 50%; background: var(--green-mid); border: 2px solid var(--white); box-shadow: 0 0 0 3px var(--green-pale); }
.ss-timeline-year { font-family: var(--font-heading); font-size: 1rem; color: var(--green-mid); font-weight: 700; margin-bottom: .25rem; }
.ss-timeline-text { color: var(--muted); line-height: 1.7; }

/* ── Products archive ── */
.ss-products-page { padding: 4rem 0 5rem; }

.ss-products-toolbar {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	flex-wrap: wrap;
	margin-bottom: 2rem;
	padding-bottom: 2rem;
	border-bottom: 1px solid var(--border);
}

.ss-products-search-wrap { position: relative; flex-shrink: 0; }
.ss-search-icon { position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); color: var(--muted); font-size: .875rem; pointer-events: none; }
.ss-products-search {
	padding: .75rem 1rem .75rem 2.5rem;
	border: 1.5px solid var(--border);
	border-radius: 999px;
	font-size: .9375rem;
	font-family: var(--font-body);
	color: var(--charcoal);
	background: var(--white);
	width: 240px;
	outline: none;
	transition: border-color .2s;
}
.ss-products-search:focus { border-color: var(--green-mid); }

.ss-products-cats { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.ss-cat-pill {
	padding: .5rem 1.125rem;
	border: 1.5px solid var(--border);
	border-radius: 999px;
	font-size: .875rem;
	font-family: var(--font-body);
	font-weight: 500;
	color: var(--muted);
	background: var(--white);
	cursor: pointer;
	transition: background .15s, color .15s, border-color .15s;
	white-space: nowrap;
}
.ss-cat-pill:hover { border-color: var(--green-mid); color: var(--green-mid); }
.ss-cat-pill.active { background: var(--green-mid); border-color: var(--green-mid); color: var(--white); }

.ss-products-count { font-size: .875rem; color: var(--muted); margin-bottom: 1.5rem; height: 1.25em; }

.ss-products-sort { margin-left: auto; flex-shrink: 0; }
.ss-sort-select {
	padding: .5rem 2rem .5rem 1rem;
	border: 1.5px solid var(--border);
	border-radius: 999px;
	font-size: .875rem;
	font-family: var(--font-body);
	font-weight: 500;
	color: var(--charcoal);
	background: var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' stroke='%236B6B5E' stroke-width='1.5' stroke-linecap='round' fill='none'/%3E%3C/svg%3E") no-repeat right .75rem center;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
	outline: none;
	transition: border-color .2s;
}
.ss-sort-select:focus { border-color: var(--green-mid); }

.ss-product-catalogue {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.25rem;
}

/* Product card */
.ss-pcard { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; transition: box-shadow .25s ease, transform .25s ease; }
.ss-pcard:hover { box-shadow: 0 8px 32px rgba(0,0,0,.08); transform: translateY(-3px); }
.ss-pcard-link { display: flex; flex-direction: column; text-decoration: none; color: inherit; height: 100%; }
.ss-pcard-img { aspect-ratio: 4/3; background: #F7F5F0; display: flex; align-items: center; justify-content: center; overflow: hidden; border-bottom: 1px solid var(--border); padding: 1.5rem; }
.ss-pcard-img img { max-width: 100%; max-height: 100%; object-fit: contain; transition: transform .4s ease; }
.ss-pcard:hover .ss-pcard-img img { transform: scale(1.04); }
.ss-pcard-no-img { display: flex; flex-direction: column; align-items: center; gap: .5rem; color: var(--border); font-size: 2rem; }
.ss-pcard-body { padding: 1.25rem 1.5rem 1.5rem; display: flex; flex-direction: column; flex: 1; }
.ss-pcard-cat { font-size: .6875rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--green-mid); margin-bottom: .5rem; display: block; }
.ss-pcard-name { font-family: var(--font-heading); font-size: 1.125rem; color: var(--charcoal); margin-bottom: .5rem; line-height: 1.3; }
.ss-pcard-desc { font-size: .875rem; color: var(--muted); line-height: 1.65; flex: 1; margin-bottom: 1rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.ss-pcard-cta { font-size: .8125rem; font-weight: 700; color: var(--green-mid); display: flex; align-items: center; gap: .375rem; transition: gap .2s; }
.ss-pcard:hover .ss-pcard-cta { gap: .625rem; }

/* Add to Quote — floating circle button top-right corner of card */
.ss-pcard { position: relative; }
.ss-pcard-select {
	position: absolute; top: .75rem; right: .75rem; z-index: 10;
	width: 2.25rem; height: 2.25rem;
	display: flex; align-items: center; justify-content: center;
	border-radius: 50%;
	background: var(--white); border: 2px solid var(--border);
	color: var(--muted);
	cursor: pointer;
	transition: background .18s, border-color .18s, color .18s, transform .18s;
	font-size: .875rem;
	box-shadow: 0 2px 8px rgba(0,0,0,.12);
	font-family: var(--font-body);
}
.ss-pcard-select:hover {
	background: var(--green-mid); border-color: var(--green-mid); color: var(--white);
	transform: scale(1.12);
}
.ss-pcard-select .ss-sq-on { display: none; }
.ss-pcard.is-selected .ss-pcard-select {
	background: var(--green-mid); border-color: var(--green-mid); color: var(--white);
}
.ss-pcard.is-selected .ss-pcard-select .ss-sq-off { display: none; }
.ss-pcard.is-selected .ss-pcard-select .ss-sq-on { display: flex; }
.ss-pcard.is-selected { outline: 2px solid var(--green-mid); outline-offset: -2px; }

/* Sticky quote bar */
.ss-quote-bar {
	position: fixed; bottom: 0; left: 0; right: 0; z-index: 200;
	background: var(--charcoal, #1A1A15); padding: 1rem 0;
	transform: translateY(100%);
	transition: transform .3s cubic-bezier(.22,1,.36,1);
	box-shadow: 0 -4px 32px rgba(0,0,0,.28);
	border-top: 1px solid rgba(255,255,255,.08);
}
.ss-quote-bar.is-visible { transform: translateY(0); }
.ss-quote-bar-inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap; }
.ss-quote-bar-left { display: flex; flex-direction: column; gap: .2rem; min-width: 0; }
.ss-quote-bar-count { font-size: .9375rem; font-weight: 700; color: var(--white); }
.ss-quote-bar-names { font-size: .8125rem; color: rgba(255,255,255,.55); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 40vw; }
.ss-quote-bar-right { display: flex; gap: .625rem; align-items: center; flex-shrink: 0; }
.ss-quote-bar-clear {
	background: none; border: 1.5px solid rgba(255,255,255,.25);
	color: rgba(255,255,255,.75); border-radius: var(--radius-sm, 6px);
	padding: .625rem 1.125rem; font-size: .875rem; cursor: pointer;
	font-family: var(--font-body); font-weight: 500;
	transition: border-color .15s, color .15s, background .15s;
}
.ss-quote-bar-clear:hover { border-color: rgba(255,255,255,.6); color: var(--white); background: rgba(255,255,255,.06); }
.ss-quote-bar-cta {
	background: var(--green-mid) !important; color: var(--white) !important;
	border: 1.5px solid var(--green-mid) !important;
	padding: .625rem 1.375rem; font-size: .9375rem; font-weight: 700;
	border-radius: var(--radius-sm, 6px); gap: .4rem;
	transition: background .15s, border-color .15s;
}
.ss-quote-bar-cta:hover { background: var(--green-light, #2D5A1B) !important; border-color: var(--green-light, #2D5A1B) !important; }

/* Empty state */
.ss-products-empty { text-align: center; padding: 5rem 0; color: var(--muted); }
.ss-products-empty i { font-size: 3rem; display: block; margin-bottom: 1rem; opacity: .25; }

/* ── Sectioned product view ── */
.ss-sectioned-view { display: flex; flex-direction: column; gap: 3.5rem; }

.ss-psection {}

.ss-psection-header {
	display: flex; align-items: center; justify-content: space-between; gap: 1rem;
	border-bottom: 1.5px solid var(--border);
	padding-bottom: .875rem;
	margin-bottom: 1.75rem;
}
.ss-psection-header-text { display: flex; align-items: baseline; gap: .75rem; }
.ss-psection-title {
	font-family: var(--font-heading);
	font-size: 1.375rem;
	color: var(--charcoal);
	margin: 0;
}
.ss-psection-sub {
	font-size: .8125rem;
	color: var(--muted);
	font-style: italic;
}
.ss-psection-viewall {
	display: inline-flex; align-items: center; gap: .4rem;
	font-size: .875rem; font-weight: 600;
	color: var(--green-mid);
	text-decoration: none;
	white-space: nowrap;
	transition: gap .2s;
}
.ss-psection-viewall:hover { gap: .65rem; color: var(--green-deep); }
.ss-psection-viewall i { font-size: .75rem; }

.ss-psection-grid {
	grid-template-columns: repeat(4, 1fr);
}

.ss-psection-coming-soon {
	display: flex;
	align-items: center;
	gap: .875rem;
	padding: 2.25rem 2rem;
	background: var(--off-white);
	border: 1.5px dashed var(--border);
	border-radius: var(--radius-lg);
	color: var(--muted);
	font-size: .9375rem;
	font-style: italic;
}
.ss-psection-coming-soon i {
	font-size: 1.5rem;
	opacity: .35;
}

/* View panel toggle */
.ss-view-panel[hidden] { display: none !important; }
.ss-psection--overview[hidden] { display: none !important; }

/* Section jump dropdown */
.ss-section-jump[hidden] { display: none !important; }
.ss-section-jump {
	display: flex;
	align-items: center;
	gap: .625rem;
	margin-bottom: 1.5rem;
}
.ss-section-jump label {
	display: flex;
	align-items: center;
	gap: .375rem;
	font-size: .8125rem;
	font-weight: 600;
	color: var(--muted);
	white-space: nowrap;
	cursor: default;
}
.ss-section-jump label svg { opacity: .6; flex-shrink: 0; }
#ss-section-select {
	appearance: none;
	-webkit-appearance: none;
	background: var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236B6B5E' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right .75rem center;
	border: 1.5px solid var(--border);
	border-radius: var(--radius-sm, 6px);
	padding: .5rem 2.25rem .5rem .875rem;
	font-size: .875rem;
	font-family: var(--font-body);
	color: var(--charcoal);
	cursor: pointer;
	transition: border-color .15s;
	min-width: 220px;
}
#ss-section-select:focus { outline: none; border-color: var(--green-mid); }
.ss-products-empty p { font-size: 1.0625rem; }
.ss-products-reset { background: none; border: none; color: var(--green-mid); font-weight: 600; cursor: pointer; text-decoration: underline; font-size: inherit; }

/* Brochure strip */
.ss-brochure-strip { background: var(--off-white); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); padding: 2rem 0; }
.ss-brochure-inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap; }
.ss-brochure-inner strong { display: block; font-family: var(--font-heading); font-size: 1.125rem; color: var(--charcoal); margin-bottom: .25rem; }
.ss-brochure-inner span { color: var(--muted); font-size: .9375rem; }
.ss-brochure-btns { display: flex; gap: .75rem; flex-wrap: wrap; }

/* Agronomist CTA — editorial strip */
.ss-agro-cta { padding: 4.5rem 0; background: var(--white); border-top: 1px solid var(--border); }
.ss-agro-cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 3rem; flex-wrap: wrap; }
.ss-agro-cta-text h2 { font-family: var(--font-heading); font-size: clamp(1.5rem, 2.5vw, 2.125rem); color: var(--charcoal); margin-bottom: .5rem; text-wrap: balance; }
.ss-agro-cta-text p { color: var(--muted); font-size: 1rem; line-height: 1.7; max-width: 52ch; margin: 0; }
.ss-agro-cta-actions { display: flex; gap: 1rem; flex-shrink: 0; flex-wrap: wrap; }

/* ── Single product detail ── */
.ss-product-detail { display: grid; grid-template-columns: 1fr 1.05fr; gap: 5rem; align-items: start; margin-bottom: 5rem; }
.ss-pd-img-wrap { position: relative; }
.ss-pd-img { background: #F7F5F0; border-radius: var(--radius-lg); overflow: hidden; aspect-ratio: 1; display: flex; align-items: center; justify-content: center; padding: 3rem; border: 1px solid var(--border); }
.ss-pd-img img { max-width: 100%; max-height: 100%; object-fit: contain; }
.ss-pd-img--empty { flex-direction: column; gap: .75rem; color: var(--border); font-size: 3rem; }
.ss-pd-img--empty span { font-size: .9375rem; color: var(--muted); }
.ss-pd-img-badge { position: absolute; bottom: 1rem; left: 1rem; background: var(--green-deep); color: var(--white); font-size: .6875rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; padding: .375rem .875rem; border-radius: 999px; }
.ss-pd-cat { font-size: .6875rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--green-mid); margin-bottom: .75rem; }
.ss-pd-title { font-family: var(--font-heading); font-size: clamp(2rem, 3.5vw, 3rem); color: var(--charcoal); margin-bottom: 1.25rem; line-height: 1.1; }
.ss-pd-desc { color: var(--muted); line-height: 1.85; font-size: 1.0625rem; margin-bottom: 2rem; }
.ss-pd-desc p { margin-bottom: .75rem; }
.ss-pd-specs { border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); margin-bottom: 2rem; }
.ss-pd-spec-row { display: flex; justify-content: space-between; align-items: center; padding: .875rem 0; border-bottom: 1px solid var(--border); font-size: .9375rem; }
.ss-pd-spec-row:last-child { border-bottom: none; }
.ss-pd-spec-label { color: var(--muted); }
.ss-pd-spec-value { font-weight: 600; color: var(--charcoal); }
.ss-pd-actions { display: flex; gap: 1rem; flex-wrap: wrap; align-items: center; margin-bottom: 1.25rem; }
.ss-pd-quote-btn { gap: .5rem; }
.ss-pd-brochure-link { display: inline-flex; align-items: center; gap: .5rem; color: var(--green-mid); font-size: .9375rem; font-weight: 600; text-decoration: none; }
.ss-pd-brochure-link:hover { text-decoration: underline; }

/* Related products section */
.ss-related-section { padding: 4rem 0 5rem; background: var(--off-white); border-top: 1px solid var(--border); }
.ss-related-heading { font-family: var(--font-heading); font-size: 1.75rem; color: var(--charcoal); margin-bottom: 2rem; }
.ss-related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }

/* Legacy / other shop references kept for safety */
.ss-shop-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; margin-top: 2.5rem; }
.ss-spec-row { display: flex; justify-content: space-between; padding: .75rem 0; border-bottom: 1px solid var(--border); font-size: .9375rem; }
.ss-spec-label { color: var(--muted); }
.ss-spec-value { font-weight: 600; color: var(--charcoal); }

/* Events page */
.ss-event-filters {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin-bottom: 2.5rem;
}
.ss-event-filter-btn {
	display: inline-block;
	padding: .5rem 1.125rem;
	border-radius: 100px;
	border: 1px solid var(--border);
	background: transparent;
	color: var(--muted);
	font-size: .875rem;
	font-weight: 500;
	text-decoration: none;
	transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.ss-event-filter-btn:hover { border-color: var(--green-mid); color: var(--green-mid); }
.ss-event-filter-btn.active { background: var(--green-mid); border-color: var(--green-mid); color: #fff; }

.ss-events-grid-page { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2rem; }
.ss-event-card-full { display: block; text-decoration: none; color: inherit; background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; transition: box-shadow .3s ease; }
.ss-event-card-full:hover { box-shadow: var(--shadow); }
.ss-event-card-img { aspect-ratio: 16/9; overflow: hidden; }
.ss-event-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ease-out); }
.ss-event-card-full:hover .ss-event-card-img img { transform: scale(1.04); }
.ss-event-card-body { padding: 1.75rem; }
.ss-event-date-badge { display: inline-flex; align-items: center; gap: .5rem; font-size: .8125rem; font-weight: 600; color: var(--green-mid); margin-bottom: .75rem; }
.ss-event-title { font-family: var(--font-heading); font-size: 1.25rem; color: var(--charcoal); margin-bottom: .625rem; }
.ss-event-excerpt { font-size: .9375rem; color: var(--muted); line-height: 1.6; }

/* Single event */
.ss-event-single { display: grid; grid-template-columns: 2fr 1fr; gap: 4rem; align-items: start; }
.ss-event-single-img { border-radius: var(--radius-lg); overflow: hidden; aspect-ratio: 16/9; }
.ss-event-single-img img { width: 100%; height: 100%; object-fit: cover; }
.ss-event-single-content h1 { font-family: var(--font-heading); font-size: clamp(1.75rem, 3vw, 2.5rem); margin-bottom: 1.5rem; color: var(--charcoal); }
.ss-event-single-content .entry-content { color: var(--muted); line-height: 1.8; }
.ss-event-meta-card { background: var(--off-white); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 1.75rem; }
.ss-event-meta-row { display: flex; align-items: flex-start; gap: 1rem; padding: .875rem 0; border-bottom: 1px solid var(--border); }
.ss-event-meta-row:last-child { border-bottom: none; }
.ss-event-meta-icon { color: var(--green-mid); width: 20px; flex-shrink: 0; padding-top: .1rem; }
.ss-event-meta-text { font-size: .9375rem; color: var(--charcoal); }

/* ── Events archive — new editorial layout ──────────────────────────── */
.ss-ev-archive-top { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: 1.75rem; }
.ss-ev-archive-desc { font-size: 1.0625rem; color: var(--muted); line-height: 1.7; margin: 0; max-width: 560px; }
.ss-ev-count { font-size: .875rem; color: var(--muted); white-space: nowrap; }

/* Featured card */
.ss-ev-featured {
	display: grid;
	grid-template-columns: 1fr 1fr;
	border-radius: var(--radius-lg);
	overflow: hidden;
	border: 1px solid var(--border);
	margin-bottom: 3rem;
	text-decoration: none;
	color: inherit;
	background: var(--white);
	transition: box-shadow .3s;
}
.ss-ev-featured:hover { box-shadow: var(--shadow-lg); }
.ss-ev-featured-img { overflow: hidden; }
.ss-ev-featured-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease-out); display: block; }
.ss-ev-featured:hover .ss-ev-featured-img img { transform: scale(1.04); }
.ss-ev-featured-body { padding: 3rem; display: flex; flex-direction: column; justify-content: center; }
.ss-ev-featured-title { font-family: var(--font-heading); font-size: clamp(1.375rem, 2vw, 1.875rem); color: var(--charcoal); margin: 0 0 1rem; line-height: 1.25; }
.ss-ev-featured-meta { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; color: var(--muted); font-size: .875rem; margin-bottom: 1.25rem; }
.ss-ev-featured-meta span { display: inline-flex; align-items: center; gap: .4rem; }
.ss-ev-featured-excerpt { font-size: 1rem; color: var(--muted); line-height: 1.7; margin-bottom: 1.75rem; }
.ss-ev-featured-cta { display: inline-flex; align-items: center; gap: .5rem; color: var(--green-mid); font-weight: 600; font-size: .9375rem; transition: gap .2s; }
.ss-ev-featured:hover .ss-ev-featured-cta { gap: .75rem; }

/* Event type tag */
.ss-ev-type-tag {
	display: inline-block;
	font-size: .6875rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .1em;
	background: var(--green-deep);
	color: #fff;
	padding: .3rem .875rem;
	border-radius: 2rem;
	margin-bottom: 1rem;
}

/* Grid of remaining events */
.ss-ev-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.75rem; }
.ss-ev-card { display: flex; flex-direction: column; text-decoration: none; color: inherit; background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; transition: box-shadow .3s, transform .3s; }
.ss-ev-card:hover { box-shadow: var(--shadow); transform: translateY(-3px); }
.ss-ev-card-img { aspect-ratio: 16/9; overflow: hidden; flex-shrink: 0; }
.ss-ev-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ease-out); }
.ss-ev-card:hover .ss-ev-card-img img { transform: scale(1.05); }
.ss-ev-card-body { padding: 1.5rem; display: flex; flex-direction: column; flex: 1; }
.ss-ev-card-date { font-size: .8125rem; font-weight: 600; color: var(--green-mid); margin: 0 0 .5rem; display: flex; align-items: center; gap: .4rem; }
.ss-ev-card-title { font-family: var(--font-heading); font-size: 1.0625rem; color: var(--charcoal); margin: 0 0 .5rem; line-height: 1.3; }
.ss-ev-card-loc { font-size: .8125rem; color: var(--muted); margin: 0 0 .75rem; display: flex; align-items: center; gap: .4rem; }
.ss-ev-card-excerpt { font-size: .9rem; color: var(--muted); line-height: 1.6; margin: 0 0 1rem; flex: 1; }
.ss-ev-card-cta { display: inline-flex; align-items: center; gap: .4rem; font-size: .875rem; font-weight: 600; color: var(--green-mid); margin-top: auto; transition: gap .2s; }
.ss-ev-card:hover .ss-ev-card-cta { gap: .65rem; }
.ss-ev-empty { color: var(--muted); font-size: 1rem; padding: 3rem 0; }

/* ── Single event ──────────────────────────────────────────────────── */
.ss-ev-hero { position: relative; height: clamp(360px, 55vh, 600px); overflow: hidden; }
.ss-ev-hero-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ss-ev-hero-overlay { position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(0,0,0,.15) 0%, rgba(0,0,0,.72) 100%); }
.ss-ev-hero .ss-container { position: relative; height: 100%; display: flex; align-items: flex-end; }
.ss-ev-hero-text { padding: 3rem 0; color: #fff; }
.ss-ev-hero-meta { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; font-size: .9375rem; color: rgba(255,255,255,.85); margin-top: .875rem; }
.ss-ev-hero-meta span { display: inline-flex; align-items: center; gap: .45rem; }

/* Article layout */
.ss-ev-article-section { padding: 4rem 0 5rem; }
.ss-ev-article-layout { display: grid; grid-template-columns: 1fr 320px; gap: 4rem; align-items: start; }
.ss-ev-article { min-width: 0; }
.ss-ev-back { display: inline-flex; align-items: center; gap: .5rem; color: var(--green-mid); font-size: .9375rem; font-weight: 600; text-decoration: none; margin-bottom: 2.5rem; transition: gap .2s; }
.ss-ev-back:hover { gap: .75rem; }
.ss-ev-no-hero-meta { margin-bottom: 2rem; }
.ss-ev-content { font-size: 1.0625rem; line-height: 1.85; color: var(--charcoal); }
.ss-ev-content p { margin-bottom: 1.5rem; }
.ss-ev-content p:last-child { margin-bottom: 0; }

/* Sidebar */
.ss-ev-sidebar { position: sticky; top: 100px; }
.ss-ev-meta-card { background: var(--off-white); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 1.75rem; }
.ss-ev-meta-heading { font-family: var(--font-heading); font-size: 1.0625rem; color: var(--charcoal); margin: 0 0 .75rem; }
.ss-ev-meta-label { display: block; font-size: .6875rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); margin-bottom: .2rem; }
.ss-ev-contact-link { color: var(--charcoal); text-decoration: none; }
.ss-ev-contact-link:hover { color: var(--green-mid); }

/* Related events */
.ss-ev-related { padding: 5rem 0; background: var(--off-white); border-top: 1.5px solid var(--border); }
.ss-ev-related-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 2.5rem; }
.ss-ev-related-title { font-family: var(--font-heading); font-size: 1.625rem; color: var(--charcoal); margin: 0; }
.ss-ev-related-all { display: inline-flex; align-items: center; gap: .4rem; font-size: .9375rem; font-weight: 600; color: var(--green-mid); text-decoration: none; transition: gap .2s; }
.ss-ev-related-all:hover { gap: .65rem; }
.ss-ev-related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.75rem; }
.ss-ev-related-card { display: block; text-decoration: none; color: inherit; background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; transition: box-shadow .3s, transform .3s; }
.ss-ev-related-card:hover { box-shadow: var(--shadow); transform: translateY(-3px); }
.ss-ev-related-img { aspect-ratio: 16/9; overflow: hidden; }
.ss-ev-related-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.ss-ev-related-card:hover .ss-ev-related-img img { transform: scale(1.05); }
.ss-ev-related-body { padding: 1.25rem 1.5rem; }
.ss-ev-related-date { font-size: .8125rem; font-weight: 600; color: var(--green-mid); margin: 0 0 .5rem; display: flex; align-items: center; gap: .4rem; }
.ss-ev-related-card-title { font-family: var(--font-heading); font-size: 1rem; color: var(--charcoal); margin: 0 0 .375rem; line-height: 1.35; }

/* Services page */
/* Services page — editorial intro strip */
.ss-svc-intro {
	background: var(--green-deep);
	overflow: hidden;
}
.ss-svc-intro-grid {
	display: grid;
	grid-template-columns: 1fr 1.15fr 1fr;
	min-height: 420px;
}
.ss-svc-intro-img { overflow: hidden; position: relative; }
.ss-svc-intro-img img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; filter: brightness(.75); transition: transform .6s var(--ease-out); }
.ss-svc-intro-img:hover img { transform: scale(1.04); }
.ss-svc-intro-text {
	padding: 4.5rem 3.5rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
	background: var(--green-deep);
}
.ss-svc-intro-lead {
	font-family: var(--font-heading);
	font-size: clamp(1.5rem, 2.5vw, 2rem);
	font-weight: 700;
	color: var(--white);
	line-height: 1.2;
	margin-bottom: 1.25rem;
}
.ss-svc-intro-body {
	font-size: 1.0625rem;
	color: rgba(255,255,255,.65);
	line-height: 1.8;
	margin-bottom: 2rem;
}
.ss-svc-intro-pillars {
	display: flex;
	flex-direction: column;
	gap: .75rem;
}
.ss-svc-intro-pillars li {
	display: flex;
	align-items: center;
	gap: .75rem;
	font-size: .9375rem;
	font-weight: 600;
	color: var(--yellow);
	letter-spacing: .01em;
}
.ss-svc-intro-pillars li i {
	font-size: .875rem;
	opacity: .85;
}

.ss-service-block { display: grid; grid-template-columns: 1fr 1fr; gap: 0; min-height: 520px; margin-bottom: 1.5rem; border-radius: var(--radius-lg); overflow: hidden; }
.ss-service-block:nth-child(even) { direction: rtl; }
.ss-service-block:nth-child(even) > * { direction: ltr; }
.ss-service-img { position: relative; overflow: hidden; }
.ss-service-img img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.ss-service-content { background: var(--white); padding: 4rem 3.5rem; display: flex; flex-direction: column; justify-content: center; }
.ss-service-tag { font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--green-mid); margin-bottom: 1rem; }
.ss-service-title { font-family: var(--font-heading); font-size: clamp(1.5rem, 3vw, 2.25rem); color: var(--charcoal); margin-bottom: 1.25rem; line-height: 1.2; }
.ss-service-desc { color: var(--muted); line-height: 1.8; font-size: 1rem; margin-bottom: 1.5rem; }
.ss-service-points { list-style: none; padding: 0; }
.ss-service-points li { display: flex; align-items: flex-start; gap: .75rem; color: var(--charcoal); font-size: .9375rem; padding: .5rem 0; border-top: 1px solid var(--border); }
.ss-service-points li:first-child { border-top: none; }
.ss-service-points li i { color: var(--green-mid); margin-top: .2rem; flex-shrink: 0; }

/* ==========================================================================
   Contact Page
========================================================================== */

/* ── Outer section ── */
.ss-contact-body { padding: 6rem 0 5rem; }

.ss-contact-split {
	display: grid;
	grid-template-columns: 1.15fr 1fr;
	gap: 5rem;
	align-items: start;
}

/* ── Form column ── */
.ss-cform-header { margin-bottom: 2rem; }
.ss-cform-header h2 {
	font-family: var(--font-heading);
	font-size: clamp(1.75rem, 2.5vw, 2.25rem);
	color: var(--charcoal);
	margin-bottom: .5rem;
	line-height: 1.2;
}
.ss-cform-header p { color: var(--muted); font-size: .9375rem; line-height: 1.75; }

.ss-cform { display: flex; flex-direction: column; gap: 1.125rem; }
.ss-cform-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.125rem; }
.ss-cform-field { display: flex; flex-direction: column; gap: .375rem; }
.ss-cform-field label {
	font-size: .8125rem;
	font-weight: 600;
	color: var(--charcoal);
	letter-spacing: .025em;
}
.ss-cform-field label span { color: #b91c1c; margin-left: .125rem; }
.ss-cform-field input,
.ss-cform-field select,
.ss-cform-field textarea {
	width: 100%;
	border: 1.5px solid var(--border);
	border-radius: var(--radius);
	padding: .8125rem 1rem;
	font-family: var(--font-body);
	font-size: .9375rem;
	color: var(--charcoal);
	background: var(--white);
	transition: border-color .2s ease, box-shadow .2s ease;
	appearance: none;
}
.ss-cform-field input:focus,
.ss-cform-field select:focus,
.ss-cform-field textarea:focus {
	outline: none;
	border-color: var(--green-mid);
	box-shadow: 0 0 0 3px rgba(30,77,15,.08);
}
.ss-cform-field input::placeholder,
.ss-cform-field textarea::placeholder { color: #c4bfb5; }
.ss-cform-field textarea { resize: vertical; min-height: 150px; }
.ss-cform-actions { padding-top: .375rem; }
.ss-cform-submit { min-width: 160px; gap: .625rem; }
.ss-cform-submit .ss-btn-sending { display: none; }
.ss-cform-submit.sending .ss-btn-label { display: none; }
.ss-cform-submit.sending .ss-btn-sending { display: inline; }

/* Alerts */
.ss-form-success,
.ss-form-error {
	display: none;
	align-items: center;
	gap: .75rem;
	padding: 1rem 1.25rem;
	border-radius: var(--radius);
	font-size: .9375rem;
	font-weight: 500;
	margin-bottom: 1.5rem;
	line-height: 1.5;
}
.ss-form-success { background: #f0fdf4; border: 1.5px solid #86efac; color: #15803d; }
.ss-form-error   { background: #fef2f2; border: 1.5px solid #fca5a5; color: #b91c1c; }
.ss-form-success.show,
.ss-form-error.show { display: flex; }
.ss-form-success i,
.ss-form-error i { font-size: 1.125rem; flex-shrink: 0; }

/* ── Sidebar column ── */
.ss-contact-sidebar { display: flex; flex-direction: column; gap: 1.25rem; }

/* Office info card */
.ss-office-card {
	background: var(--green-deep);
	border-radius: var(--radius-lg);
	padding: 2.25rem;
	color: var(--white);
}
.ss-office-card-header {
	display: flex;
	align-items: center;
	gap: .625rem;
	font-size: .8125rem;
	color: rgba(255,255,255,.55);
	font-weight: 500;
	margin-bottom: 1.25rem;
	letter-spacing: .03em;
}
.ss-office-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #4ade80;
	box-shadow: 0 0 0 3px rgba(74,222,128,.25);
	flex-shrink: 0;
}
.ss-office-card h3 {
	font-family: var(--font-heading);
	font-size: 1.375rem;
	color: var(--white);
	margin-bottom: 1.75rem;
	padding-bottom: 1.25rem;
	border-bottom: 1px solid rgba(255,255,255,.12);
}
.ss-office-details {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
}
.ss-office-details li {
	display: flex;
	gap: .875rem;
	align-items: flex-start;
	padding: .875rem 0;
	border-bottom: 1px solid rgba(255,255,255,.08);
}
.ss-office-details li:last-child { border-bottom: none; padding-bottom: 0; }
.ss-od-icon {
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: rgba(255,255,255,.08);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: .875rem;
	color: rgba(255,255,255,.6);
	flex-shrink: 0;
	margin-top: .125rem;
}
.ss-office-details strong {
	display: block;
	font-size: .7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: rgba(255,255,255,.4);
	margin-bottom: .3rem;
}
.ss-office-details span,
.ss-office-details a {
	font-size: .9375rem;
	color: rgba(255,255,255,.85);
	text-decoration: none;
	line-height: 1.5;
}
.ss-office-details a:hover { color: var(--yellow); }

/* Quick-contact CTA buttons */
.ss-quick-contact { display: flex; flex-direction: column; gap: .75rem; }
.ss-qc-btn {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 1.125rem 1.375rem;
	border-radius: var(--radius-lg);
	text-decoration: none;
	border: 1.5px solid transparent;
	transition: transform .2s var(--ease-out), box-shadow .2s ease;
}
.ss-qc-btn:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.ss-qc-btn--wa  { background: #f0fdf4; border-color: #86efac; }
.ss-qc-btn--email { background: var(--off-white); border-color: var(--border); }
.ss-qc-icon {
	width: 46px;
	height: 46px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.25rem;
	flex-shrink: 0;
}
.ss-qc-btn--wa .ss-qc-icon   { background: #dcfce7; color: #15803d; }
.ss-qc-btn--email .ss-qc-icon { background: var(--green-pale); color: var(--green-mid); }
.ss-qc-text { flex: 1; }
.ss-qc-text strong { display: block; font-size: .9375rem; font-weight: 700; color: var(--charcoal); margin-bottom: .2rem; }
.ss-qc-text em { display: block; font-style: normal; font-size: .8125rem; color: var(--muted); }
.ss-qc-ext { color: var(--muted); font-size: .8125rem; flex-shrink: 0; margin-left: auto; }

/* ── Full-width map ── */
.ss-contact-map {
	position: relative;
	height: 480px;
	background: var(--border);
}
.ss-contact-map iframe { width: 100%; height: 100%; border: none; display: block; }
.ss-contact-map-label {
	position: absolute;
	top: 1.25rem;
	left: 50%;
	transform: translateX(-50%);
	z-index: 1;
	background: var(--green-deep);
	color: var(--white);
	font-size: .875rem;
	font-weight: 500;
	padding: .625rem 1.25rem;
	border-radius: 2rem;
	display: flex;
	align-items: center;
	gap: .625rem;
	white-space: nowrap;
	pointer-events: none;
	box-shadow: 0 4px 16px rgba(0,0,0,.25);
}
.ss-contact-map-label i { color: var(--yellow); font-size: .9375rem; }

/* ── Legacy WhatsApp btn (used elsewhere) ── */
.ss-whatsapp-btn { display: inline-flex; align-items: center; gap: .75rem; background: #25D366; color: var(--white); padding: .875rem 1.75rem; border-radius: var(--radius); font-weight: 600; font-size: 1rem; text-decoration: none; transition: background .2s ease; }
.ss-whatsapp-btn:hover { background: #1da851; }

/* Quote page */
.ss-quote-layout { display: grid; grid-template-columns: 1.5fr 1fr; gap: 5rem; }
.ss-quote-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.ss-quote-form .full { grid-column: span 2; }
.ss-quote-form label { display: block; font-size: .875rem; font-weight: 600; color: var(--charcoal); margin-bottom: .375rem; }
.ss-quote-form input,
.ss-quote-form textarea,
.ss-quote-form select { width: 100%; border: 1.5px solid var(--border); border-radius: var(--radius); padding: .75rem 1rem; font-family: var(--font-body); font-size: .9375rem; color: var(--charcoal); background: var(--white); transition: border-color .2s ease; }
.ss-quote-form input:focus,
.ss-quote-form textarea:focus,
.ss-quote-form select:focus { outline: none; border-color: var(--green-mid); }
.ss-quote-sidebar h3 { font-family: var(--font-heading); font-size: 1.375rem; margin-bottom: 1rem; }
.ss-quote-sidebar p { color: var(--muted); line-height: 1.7; margin-bottom: 1.5rem; }
.ss-form-success { background: rgba(45,90,27,.1); border: 1px solid var(--green-light); border-radius: var(--radius); padding: 1.25rem 1.5rem; color: var(--green-mid); display: none; margin-bottom: 1.5rem; }
.ss-form-success.show { display: block; }
.ss-form-error { background: rgba(180,30,30,.08); border: 1px solid #c03030; border-radius: var(--radius); padding: 1.25rem 1.5rem; color: #a02020; display: none; margin-bottom: 1.5rem; }
.ss-form-error.show { display: block; }

/* Quote channel buttons */
.ss-quote-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .875rem; margin-top: .5rem; }
.ss-quote-channel-btn {
	display: flex; align-items: center; justify-content: center; gap: .625rem;
	padding: .875rem 1.25rem;
	font-family: var(--font-body); font-size: .9375rem; font-weight: 700;
	border-radius: var(--radius-sm); border: 2px solid transparent;
	cursor: pointer; transition: background .18s, border-color .18s, transform .18s, color .18s;
	text-align: center; white-space: nowrap;
}
.ss-quote-channel-btn--wa {
	background: #25D366; color: #fff; border-color: #25D366;
}
.ss-quote-channel-btn--wa:hover { background: #1ebe5d; border-color: #1ebe5d; transform: translateY(-2px); }
.ss-quote-channel-btn--email {
	background: var(--green-deep); color: #fff; border-color: var(--green-deep);
}
.ss-quote-channel-btn--email:hover { background: var(--green-mid); border-color: var(--green-mid); transform: translateY(-2px); }
.ss-quote-note { font-size: .8125rem; color: var(--muted); margin-top: .875rem; }

/* ------------------------------------------------------------------
   Utilities
------------------------------------------------------------------ */
.ss-text-center { text-align: center; }
.ss-mt-3 { margin-top: 3rem; }
.ss-flex { display: flex; }
.ss-items-center { align-items: center; }
.ss-gap-2 { gap: .5rem; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }

/* ------------------------------------------------------------------
   Responsive — consolidated breakpoints
   1100 → tablet wide  |  960 → tablet  |  700 → mobile  |  480 → small
------------------------------------------------------------------ */

/* ── 1100px: start collapsing wide multi-column grids ── */
@media (max-width: 1100px) {
	.ss-products-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ── 960px: tablet — collapse most two-column layouts ── */
@media (max-width: 960px) {
	/* Global */
	.ss-section { padding: 5rem 0; }

	/* Homepage */
	.ss-expertise-split { grid-template-columns: 1fr; gap: 3rem; }
	.ss-expertise-image { height: 480px; min-height: 0; }
	.ss-expertise-item.expanded .ss-expertise-item-desc { max-height: 300px; }
	.ss-about-split { grid-template-columns: 1fr; }
	.ss-about-content { padding: 4rem 2rem; max-width: 100%; margin: 0; }
	.ss-about-image { height: 500px; min-height: 0; }
	.ss-portfolio-grid { grid-template-columns: 1fr 1fr; }
	.ss-facility-card:nth-child(1) { grid-row: auto; }
	.ss-facility-card:nth-child(1) .ss-facility-card-inner { aspect-ratio: 4/3; height: auto; }
	.ss-facility-card:nth-child(6) { grid-column: auto; }
	.ss-facility-card:nth-child(6) .ss-facility-card-inner { aspect-ratio: 4/3; }
	.ss-process-steps { grid-template-columns: repeat(2, 1fr); gap: 2.5rem; }
	.ss-process-header { margin-bottom: 3.5rem; }
	.ss-process-connector { display: none; }
	.ss-products-grid { grid-template-columns: repeat(2, 1fr); }
	.ss-product-card--featured { grid-column: span 2; }
	.ss-tcards-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
	#ss-why { grid-template-columns: 1fr; }
	.ss-why-photo { height: 50vh; position: relative; }
	.ss-why-content { padding: 5rem 2.5rem; }
	.ss-events-grid { grid-template-columns: 1fr; }
	.ss-footer-grid { grid-template-columns: 1fr 1fr; gap: 2.5rem; }
	.ss-footer-tagline-text { font-size: clamp(1.75rem, 5vw, 2.5rem); }
	#ss-testimonial-form { grid-template-columns: 1fr; }
	.ss-form-group--full, .ss-form-submit, .ss-form-message-wrap { grid-column: span 1; }

	/* Inner pages — About */
	.ss-about-page-story { grid-template-columns: 1fr; gap: 3rem; }
	.ss-about-page-img img { height: 360px; }
	.ss-credentials-inner { flex-direction: column; gap: 1.5rem; }
	.ss-cred-item { padding: 0; }
	.ss-cred-divider { width: 100%; height: 1px; margin: 0; }
	.ss-deliver-grid { grid-template-columns: 1fr; gap: 3rem; }
	.ss-deliver-list { grid-template-columns: 1fr; }
	.ss-deliver-item:nth-child(odd) { padding-right: 0; border-right: none; }
	.ss-deliver-item:nth-child(even) { padding-left: 0; }
	.ss-mv-grid { grid-template-columns: 1fr; }
	.ss-why-synergy-grid { grid-template-columns: 1fr; }
	.ss-abp-why-item { padding-right: 0 !important; padding-left: 0 !important; border-right: none !important; }
	.ss-team-grid { grid-template-columns: repeat(2, 1fr); }
	.ss-facility-grid { grid-template-columns: 1fr 1fr; }
	.ss-about-cta { grid-template-columns: 1fr; }
	.ss-about-cta-text { justify-content: center; padding: 4rem 2rem; }
	.ss-about-cta-img { min-height: 320px; }

	/* Inner pages — Products */
	.ss-product-catalogue { grid-template-columns: repeat(2, 1fr); }
	.ss-products-toolbar { flex-direction: column; align-items: flex-start; gap: 1rem; }
	.ss-products-search-wrap { width: 100%; }
	.ss-products-search { width: 100%; box-sizing: border-box; }
	.ss-products-cats { flex-wrap: wrap; }
	.ss-product-detail { grid-template-columns: 1fr; gap: 3rem; }
	.ss-agro-cta-inner { flex-direction: column; align-items: flex-start; gap: 2rem; }
	.ss-agro-cta-actions { width: 100%; flex-direction: column; }
	.ss-agro-cta-actions .ss-btn { width: 100%; justify-content: center; }
	.ss-related-grid { grid-template-columns: repeat(2, 1fr); }

	/* Inner pages — other */
	.ss-product-single { grid-template-columns: 1fr; }
	.ss-event-single { grid-template-columns: 1fr; }
	.ss-contact-split { grid-template-columns: 1fr; gap: 3rem; }
	.ss-contact-layout { grid-template-columns: 1fr; }
	.ss-quote-layout { grid-template-columns: 1fr; }
	.ss-quote-actions { grid-template-columns: 1fr; }
	.ss-svc-intro-grid { grid-template-columns: 1fr; }
	.ss-svc-intro-img--1 { height: 240px; }
	.ss-svc-intro-img--2 { display: none; }
	.ss-svc-intro-text { padding: 3rem 1.5rem; }
	.ss-service-block { grid-template-columns: 1fr; min-height: auto; direction: ltr !important; }
	.ss-service-img { height: 300px; position: relative; }
	.ss-service-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
	.ss-shop-grid { grid-template-columns: repeat(2, 1fr); }
	.ss-events-grid-page { grid-template-columns: 1fr; }
	/* New event layouts */
	.ss-ev-featured { grid-template-columns: 1fr; }
	.ss-ev-featured-body { padding: 2rem; }
	.ss-ev-grid { grid-template-columns: repeat(2, 1fr); }
	.ss-ev-article-layout { grid-template-columns: 1fr; }
	.ss-ev-sidebar { position: static; }
	.ss-ev-related-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ── 700px: mobile — single column, hamburger nav ── */
@media (max-width: 700px) {
	:root { --nav-h: 64px; }

	/* Global */
	.ss-section { padding: 3.5rem 0; }
	.ss-container { padding: 0 1.25rem; }

	/* Typography scale-down */
	.ss-section-heading { font-size: clamp(1.625rem, 6vw, 2.25rem); }
	.ss-page-banner h1 { font-size: clamp(1.75rem, 7vw, 2.5rem); text-wrap: balance; }
	.ss-page-banner { padding: 3rem 0 2rem; }
	.ss-breadcrumb { font-size: .8125rem; flex-wrap: wrap; gap: .25rem .5rem; }

	/* Nav */
	.ss-logo img { height: 72px; }
	.ss-nav-menu { display: none; }
	.ss-hamburger { display: flex; }
	.ss-mobile-nav { display: block; }
	.ss-mobile-nav.open { max-height: 85vh; overflow-y: auto; }

	/* Mobile nav submenu — hidden by default, revealed by arrow toggle */
	.ss-mobile-menu > li { position: relative; display: flex; flex-wrap: wrap; align-items: center; }
	.ss-mobile-menu > li > a { flex: 1; border-bottom: none; }
	.ss-mobile-menu > li:not(:last-child) { border-bottom: 1px solid var(--border); }
	.ss-mobile-menu .sub-menu { display: none; width: 100%; background: var(--off-white); }
	.ss-mobile-menu > li.ss-mobile-open > .sub-menu { display: block; }
	.ss-mobile-menu .sub-menu li a {
		padding: .625rem 1.5rem .625rem 2.5rem;
		font-size: .9rem;
		color: var(--muted);
		font-weight: 500;
		border-bottom: 1px solid var(--border);
		display: block;
	}
	.ss-mobile-menu .sub-menu li a:hover { color: var(--green); }

	/* Arrow toggle button */
	.ss-mobile-arrow {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		background: none;
		border: none;
		cursor: pointer;
		color: var(--charcoal);
		flex-shrink: 0;
		transition: transform .25s ease;
	}
	.ss-mobile-menu > li.ss-mobile-open > .ss-mobile-arrow { transform: rotate(180deg); }

	/* Products filter — horizontal scroll, never wraps, no visible scrollbar */
	.ss-products-filter {
		flex-wrap: nowrap;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		padding-bottom: .25rem;
		margin-bottom: -.25rem;
	}
	.ss-products-filter::-webkit-scrollbar { display: none; }
	.ss-products-filter-btn { flex-shrink: 0; white-space: nowrap; }

	/* Hero */
	.ss-hero-headline { font-size: clamp(1.875rem, 8vw, 2.75rem); }
	.ss-hero-sub { font-size: 1rem; max-width: 100%; }
	.ss-hero-actions { flex-direction: column; align-items: stretch; gap: .75rem; }
	.ss-hero-actions .ss-btn { justify-content: center; }

	/* Homepage sections */
	.ss-portfolio-grid { grid-template-columns: 1fr; }
	.ss-process-steps { grid-template-columns: 1fr; gap: 0; }
	.ss-process-step { padding-top: 0; padding-left: 4.5rem; min-height: 3.5rem; margin-bottom: 2rem; }
	.ss-process-step:last-child { margin-bottom: 0; }
	.ss-process-num { top: 0; left: 0; width: 48px; height: 48px; font-size: .875rem; }
	.ss-process-header { margin-bottom: 2.5rem; }
	.ss-products-grid { grid-template-columns: 1fr; }
	.ss-product-card--featured { grid-column: span 1; }
	.ss-product-card--featured .ss-product-card-img { min-height: 200px; }
	.ss-products-header { flex-direction: column; align-items: flex-start; gap: 1rem; }
	.ss-tcards-grid { grid-template-columns: 1fr; }
	.ss-tcard-body { min-height: auto; padding: 1.75rem 1.5rem 1.5rem; }
	.ss-tcard-text { font-size: .9375rem; }
	.ss-why-content { padding: 3.5rem 1.5rem; gap: 2rem; }
	.ss-why-photo { height: 45vw; min-height: 220px; }
	.ss-events-header { flex-direction: column; align-items: flex-start; gap: 1rem; }

	/* Footer */
	.ss-footer-grid { grid-template-columns: 1fr; gap: 2rem; }
	.ss-footer-bottom-inner { flex-direction: column; text-align: center; gap: .5rem; }
	.ss-footer-tagline-text { font-size: clamp(1.5rem, 6vw, 2rem); }
	.ss-footer-tagline { padding: 3rem 0; }

	/* Team — mobile 2×2 grid, no animation */
	#ss-team { padding: 4rem 0; }
	.ss-team-header { display: block; text-align: center; margin-bottom: 2.5rem; }
	.ss-team-carousel-wrap { overflow: visible; }
	.ss-team-track { grid-template-columns: repeat(2, 1fr); gap: 2rem 1.25rem; }
	.ss-team-card { animation: none !important; margin-top: 0 !important; }
	.ss-team-card[aria-hidden="true"] { display: none; }
	.ss-team-img { width: 100px; height: 100px; }
	.ss-team-card h3 { font-size: .875rem; }
	.ss-team-card-body { text-align: center; }

	/* About page inner sections */
	.ss-credentials-strip { padding: 2.25rem 0; }
	.ss-cred-item { padding: .5rem 0; }
	.ss-facility-grid { grid-template-columns: 1fr; }
	.ss-team-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
	.ss-about-cta-img { min-height: 240px; }
	.ss-about-cta-text { padding: 3rem 1.5rem; }
	.ss-about-cta-text h2 { font-size: clamp(1.625rem, 6vw, 2.25rem); }

	/* Products archive */
	.ss-product-catalogue { grid-template-columns: 1fr 1fr; gap: .625rem; }
	.ss-products-cats { flex-wrap: wrap; gap: .375rem; }
	.ss-cat-pill { font-size: .8rem; padding: .4rem .875rem; }
	.ss-pcard-body { padding: .875rem; }
	.ss-pcard-name { font-size: .9375rem; }
	.ss-pcard-desc { font-size: .8125rem; -webkit-line-clamp: 2; }

	/* Quote bar at mobile */
	.ss-quote-bar { padding: .875rem 0; }
	.ss-quote-bar-inner { flex-wrap: wrap; gap: .625rem; }
	.ss-quote-bar-left { flex: 1 1 100%; }
	.ss-quote-bar-right { width: 100%; justify-content: flex-end; }
	.ss-quote-bar-count { font-size: .875rem; }
	.ss-quote-bar-names { max-width: 100%; font-size: .75rem; }
	.ss-quote-bar-cta { flex: 1; justify-content: center; font-size: .875rem; padding: .625rem 1rem; }
	.ss-quote-bar-clear { font-size: .8125rem; padding: .5rem .875rem; }

	/* Events — mobile */
	.ss-ev-grid { grid-template-columns: 1fr; }
	.ss-ev-featured { grid-template-columns: 1fr; }
	.ss-ev-featured-body { padding: 1.5rem; }
	.ss-ev-archive-top { flex-direction: column; align-items: flex-start; gap: .5rem; }
	.ss-ev-hero { height: 55vw; min-height: 260px; }
	.ss-ev-hero-text { padding: 1.5rem 0; }
	.ss-ev-hero-meta { flex-direction: column; gap: .4rem; }
	.ss-ev-article-layout { grid-template-columns: 1fr; }
	.ss-ev-sidebar { position: static; }
	.ss-ev-related-grid { grid-template-columns: 1fr; }
	.ss-ev-related-header { flex-direction: column; align-items: flex-start; gap: .75rem; }

	/* Product detail */
	.ss-pd-actions { flex-direction: column; gap: .75rem; }
	.ss-pd-actions .ss-btn, .ss-pd-actions a, .ss-pd-actions .ss-whatsapp-btn { width: 100%; justify-content: center; box-sizing: border-box; }
	.ss-pd-title { font-size: clamp(1.5rem, 6vw, 2rem); }
	.ss-pd-img { aspect-ratio: 4/3; }
	.ss-related-grid { grid-template-columns: 1fr; }

	/* Quote page */
	.ss-quote-form { grid-template-columns: 1fr; }
	.ss-quote-form .full { grid-column: span 1; }
	.ss-quote-channel-btn { font-size: .875rem; padding: .875rem 1rem; }

	/* Contact page */
	.ss-contact-form { grid-template-columns: 1fr; }
	.ss-contact-form .full { grid-column: span 1; }
	.ss-cform-row { grid-template-columns: 1fr; }
	.ss-contact-map { height: 300px; }
	.ss-contact-map-label { font-size: .8125rem; padding: .5rem 1rem; max-width: calc(100vw - 2.5rem); white-space: normal; text-align: center; }

	/* Misc */
	.ss-shop-grid { grid-template-columns: 1fr; }
	.ss-portfolio-header { flex-direction: column; align-items: flex-start; gap: 1rem; }
}

/* ── 480px: very small phones (SE, Galaxy A) ── */
@media (max-width: 480px) {
	.ss-container { padding: 0 1rem; }

	/* Products — single column on very small screens */
	.ss-product-catalogue { grid-template-columns: 1fr; }
	.ss-team-grid { grid-template-columns: 1fr; }
	.ss-team-card { flex: 0 0 72vw; }

	/* Quote bar — stack everything */
	.ss-quote-bar-right { flex-direction: column; gap: .5rem; }
	.ss-quote-bar-cta { text-align: center; }
	.ss-quote-bar-clear { width: 100%; text-align: center; }

	/* Nav CTA hide on very small */
	.ss-nav-cta { display: none; }
}

/* ==========================================================================
   REDESIGN 3.0 — visual overhaul layer
   Fluid values only (no breakpoint conflicts). Brand locked; depth via
   hairline borders; motion via transform/opacity with shared timing tokens.
========================================================================== */

/* ── Typography & section rhythm ─────────────────────────────────── */
.ss-section { padding: var(--section-pad) 0; }

.ss-section-heading {
	font-size: var(--text-3xl);
	font-weight: 400; /* DM Serif carries weight through its forms, not boldness */
	letter-spacing: -0.015em;
	line-height: 1.06;
	margin-bottom: 1.25rem;
}

.ss-section-header { margin-bottom: clamp(3rem, 2.5rem + 2.5vw, 5rem); }

.ss-section-subtext {
	font-size: var(--text-lg);
	line-height: 1.7;
	color: var(--muted);
	max-width: 56ch;
}

.ss-section--dark p { color: var(--on-dark-body); }
.ss-section--dark .ss-section-subtext { color: var(--on-dark-body); }

/* Prose measure everywhere long text appears */
.ss-about-content p,
.ss-ev-content p,
.entry-content p { max-width: 68ch; }

/* ── Buttons — squared confidence, arrow micro-motion ────────────── */
.ss-btn {
	padding: .875rem 2rem;
	font-size: var(--text-sm);
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	border-radius: 0;
	transition: background var(--dur-fast) ease, color var(--dur-fast) ease,
	            border-color var(--dur-fast) ease, transform var(--dur) var(--ease-out);
}
.ss-btn i, .ss-btn svg { transition: transform var(--dur) var(--ease-out); }
.ss-btn:hover i, .ss-btn:hover svg { transform: translateX(3px); }
.ss-btn:active { transform: translateY(0) scale(.98); }

/* ── Navigation ──────────────────────────────────────────────────── */
.ss-nav-menu > li > a {
	font-size: .875rem;
	font-weight: 600;
	letter-spacing: .02em;
}

.ss-nav-menu .sub-menu {
	box-shadow: none;
	border: 1px solid var(--border-strong);
	border-radius: 0;
	padding: .5rem 0;
}

.ss-nav-menu .sub-menu a { transition: background var(--dur-fast) ease, color var(--dur-fast) ease, padding-left var(--dur-fast) ease; }
.ss-nav-menu .sub-menu a:hover { padding-left: 1.375rem; }

/* ── Cards: unified hairline treatment, transform-only hover ─────── */
.ss-facility-card,
.ss-product-card,
.ss-event-card,
.ss-tcard,
.ss-team-card,
.ss-pcard,
.ss-ev-card,
.ss-ev-featured,
.ss-ev-related-card {
	border-radius: 0;
	box-shadow: none;
}

.ss-pcard,
.ss-product-card,
.ss-ev-card,
.ss-ev-related-card,
.ss-ev-featured {
	border: var(--hairline);
	background: var(--white);
	transition: transform var(--dur) var(--ease-out), border-color var(--dur) ease;
}

.ss-pcard:hover,
.ss-product-card:hover,
.ss-ev-card:hover,
.ss-ev-related-card:hover {
	transform: translateY(-4px);
	border-color: var(--green-mid);
	box-shadow: none;
}
.ss-ev-featured:hover { border-color: var(--green-mid); box-shadow: none; }
.ss-facility-card:hover,
.ss-event-card:hover { box-shadow: none; }

/* Card images: slow zoom on hover, GPU only */
.ss-pcard-img img,
.ss-product-card-img img,
.ss-ev-card-img img,
.ss-ev-featured-img img,
.ss-ev-related-img img,
.ss-facility-card-inner img {
	transition: transform 1.2s var(--ease-out);
}
.ss-pcard:hover .ss-pcard-img img,
.ss-product-card:hover .ss-product-card-img img,
.ss-ev-card:hover .ss-ev-card-img img,
.ss-ev-featured:hover .ss-ev-featured-img img,
.ss-ev-related-card:hover .ss-ev-related-img img { transform: scale(1.045); }

/* Category kickers on cards — small caps, brand green */
.ss-pcard-cat,
.ss-product-card-cat,
.ss-pd-cat {
	font-size: .6875rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--green-mid);
}

.ss-pcard-name,
.ss-product-card-title {
	font-family: var(--font-heading);
	font-size: var(--text-xl);
	font-weight: 400;
	letter-spacing: 0;
}

/* ── Product archive chrome ──────────────────────────────────────── */
.ss-cat-pill {
	border-radius: 0;
	font-weight: 600;
	letter-spacing: .03em;
	transition: background var(--dur-fast) ease, color var(--dur-fast) ease, border-color var(--dur-fast) ease;
}

.ss-psection-title {
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: var(--text-2xl);
	letter-spacing: -0.01em;
}

.ss-products-search,
.ss-sort-select {
	border-radius: 0;
	transition: border-color var(--dur-fast) ease;
}
.ss-products-search:focus {
	border-color: var(--green-mid);
	outline: none;
	box-shadow: inset 0 -2px 0 var(--green-mid);
}

/* ── Product detail ──────────────────────────────────────────────── */
.ss-pd-title {
	font-size: var(--text-display);
	font-weight: 400;
	line-height: 1.02;
	letter-spacing: -0.02em;
}
.ss-pd-spec-row { border-bottom: var(--hairline); }
.ss-pd-spec-label {
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--muted);
}
.ss-pd-spec-value { font-variant-numeric: tabular-nums; }

/* ── Forms — visible focus, honest placeholders ──────────────────── */
.ss-cform-field input,
.ss-cform-field select,
.ss-cform-field textarea,
.ss-quote-form input,
.ss-quote-form select,
.ss-quote-form textarea,
.ss-testimonial-form-wrap input,
.ss-testimonial-form-wrap textarea {
	border-radius: 0;
	background: var(--white);
	color: var(--ink);
	border: 1px solid var(--border-strong);
	transition: border-color var(--dur-fast) ease, box-shadow var(--dur-fast) ease;
}

.ss-testimonial-form-wrap input::placeholder,
.ss-testimonial-form-wrap textarea::placeholder { color: #75756A; opacity: 1; }

.ss-cform-field input:focus,
.ss-cform-field select:focus,
.ss-cform-field textarea:focus,
.ss-quote-form input:focus,
.ss-quote-form select:focus,
.ss-quote-form textarea:focus,
.ss-testimonial-form-wrap input:focus,
.ss-testimonial-form-wrap textarea:focus {
	outline: none;
	border-color: var(--green-mid);
	box-shadow: inset 0 -2px 0 var(--green-mid);
}

.ss-cform-field ::placeholder,
.ss-quote-form ::placeholder { color: #75756A; opacity: 1; }

.ss-cform-field label,
.ss-quote-form label {
	font-size: .8125rem;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--ink);
}

/* ── Page banner + breadcrumb ────────────────────────────────────── */
.ss-page-banner h1 {
	font-size: var(--text-display);
	font-weight: 400;
	letter-spacing: -0.02em;
	line-height: 1.02;
}

.ss-breadcrumb {
	font-size: .8125rem;
	letter-spacing: .04em;
}
.ss-breadcrumb a { transition: color var(--dur-fast) ease; }

/* ── Hero ────────────────────────────────────────────────────────── */
.ss-hero-headline {
	font-weight: 400;
	letter-spacing: -0.02em;
	line-height: 1.04;
}
.ss-hero-sub { font-size: var(--text-lg); }

.ss-hero-dot { transition: background var(--dur-fast) ease, transform var(--dur-fast) var(--ease-out); }
.ss-hero-dot:hover { transform: scale(1.3); }

/* ── Homepage dark sections: warmer on-dark text ─────────────────── */
.ss-why-item-desc,
.ss-process-step-desc { color: var(--on-dark-body); }

/* ── Events ──────────────────────────────────────────────────────── */
.ss-ev-type-tag {
	border-radius: 0;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	font-size: .6875rem;
}
.ss-ev-featured-title { font-weight: 400; font-size: var(--text-2xl); letter-spacing: -0.01em; }
.ss-ev-card-title,
.ss-ev-related-card-title { font-weight: 400; }
.ss-event-filter-btn { border-radius: 0; letter-spacing: .03em; font-weight: 600; }

/* ── Footer ──────────────────────────────────────────────────────── */
.ss-footer-main a { transition: color var(--dur-fast) ease; }
.ss-footer-main a:hover { color: var(--yellow); }
.ss-footer-nav-menu a { display: inline-block; transition: color var(--dur-fast) ease, transform var(--dur-fast) var(--ease-out); }
.ss-footer-nav-menu a:hover { transform: translateX(3px); }

/* ── FAB — hairline depth, no shadow ─────────────────────────────── */
@media (max-width: 960px) {
	.ss-fab {
		box-shadow: none;
		border: 1px solid rgba(247, 244, 236, .35);
		background: var(--green-deep);
	}
}

/* ── Reduced motion: kill hover transforms too ───────────────────── */
@media (prefers-reduced-motion: reduce) {
	.ss-btn, .ss-btn i, .ss-btn svg,
	.ss-pcard, .ss-product-card, .ss-ev-card, .ss-ev-related-card,
	.ss-pcard-img img, .ss-product-card-img img, .ss-ev-card-img img,
	.ss-ev-featured-img img, .ss-ev-related-img img, .ss-facility-card-inner img,
	.ss-footer-nav-menu a, .ss-hero-dot {
		transition: none !important;
		transform: none !important;
	}
}
