/* Theme additions on top of the compiled design system (app.css). */

html { scroll-behavior: smooth; }
body.admin-bar header[data-srm-header] { top: 32px; }
@media (max-width: 782px) { body.admin-bar header[data-srm-header] { top: 46px; } }

/* Header: compact + shadow once scrolled (reference: "bg-white shadow-lg py-2"). */
header[data-srm-header].is-scrolled {
	padding-top: .5rem;
	padding-bottom: .5rem;
	border-bottom-color: transparent;
	box-shadow: var(--shadow-lg);
}

/* Products dropdown + sub-category flyout. */
.srm-dropdown-panel,
.srm-flyout-panel {
	visibility: hidden;
	opacity: 0;
	transform: translateY(4px);
	transition: opacity .15s ease, transform .15s ease, visibility .15s;
}
.srm-dropdown::after { /* hover bridge over the mt-1 gap */
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	height: .5rem;
}
.srm-dropdown:hover > .srm-dropdown-panel,
.srm-dropdown:focus-within > .srm-dropdown-panel,
.srm-flyout:hover > .srm-flyout-panel,
.srm-flyout:focus-within > .srm-flyout-panel {
	visibility: visible;
	opacity: 1;
	transform: none;
}
.srm-flyout-panel {
	position: absolute;
	top: -.5rem;
	left: 100%;
	margin-left: .25rem;
	z-index: 51;
}
.srm-flyout::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 100%;
	width: .5rem;
}

/* Mobile menu. */
[data-mobile-menu].is-open { max-height: 80vh; opacity: 1; overflow-y: auto; }
.srm-sub-link { padding-left: 2rem; font-size: .8125rem; }

/* Quote dialog. */
.srm-modal[hidden] { display: none; }
.srm-modal-overlay { animation: srm-fade .2s ease; }
.srm-modal-dialog { animation: srm-zoom .2s ease; }
@keyframes srm-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes srm-zoom { from { opacity: 0; transform: translate(-50%, -48%) scale(.95); } to { opacity: 1; transform: translate(-50%, -50%) scale(1); } }
body.srm-modal-open { overflow: hidden; }

/* Forms. */
.srm-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.srm-form-status { border-radius: .75rem; padding: .75rem 1rem; }
.srm-form-status.is-success { background: hsl(160 70% 40% / .1); color: hsl(160 70% 28%); }
.srm-form-status.is-error { background: #fef2f2; color: #b91c1c; }
[data-enquiry-form].is-loading button[type="submit"] { opacity: .6; pointer-events: none; }

/* Contact Form 7 */
.srm-cf7 .wpcf7-form-control-wrap { display: block; }
.srm-cf7 .wpcf7-not-valid { border-color: #dc2626; }
.srm-cf7 .wpcf7-not-valid-tip { margin-top: .375rem; font-size: .8125rem; color: #b91c1c; }
.srm-cf7 .wpcf7 form .wpcf7-response-output { margin: 1.5rem 0 0; border: 0; border-radius: .75rem; padding: .75rem 1rem; font-size: .875rem; background: #fef2f2; color: #b91c1c; }
.srm-cf7 .wpcf7 form.sent .wpcf7-response-output { background: hsl(160 70% 40% / .1); color: hsl(160 70% 28%); }
.srm-cf7 .wpcf7 form.submitting .wpcf7-submit { opacity: .6; pointer-events: none; }
.srm-cf7 .wpcf7-spinner { margin: 0 0 0 .75rem; vertical-align: middle; }
.srm-cf7 .screen-reader-response { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* FAQ accordion (native <details>). */
.srm-faq summary { list-style: none; }
.srm-faq summary::-webkit-details-marker { display: none; }
.srm-faq[open] summary svg { transform: rotate(180deg); }

/* Rich text: blog posts, legal pages, product descriptions. */
.srm-prose { color: hsl(var(--muted-foreground)); font-size: 1.125rem; line-height: 1.78; }
.srm-prose > * + * { margin-top: 1.25em; }
.srm-prose h2 { color: hsl(var(--foreground)); font-size: 1.5rem; line-height: 2rem; margin-top: 2rem; margin-bottom: 1rem; }
.srm-prose h3 { color: hsl(var(--foreground)); font-size: 1.25rem; line-height: 1.75rem; margin-top: 1.75rem; margin-bottom: .75rem; }
.srm-prose h2 + *, .srm-prose h3 + * { margin-top: 0; }
.srm-prose ul { list-style: disc; padding-left: 1.5rem; }
.srm-prose ol { list-style: decimal; padding-left: 1.5rem; }
.srm-prose li + li { margin-top: .5rem; }
.srm-prose a { color: hsl(var(--primary)); text-decoration: underline; text-underline-offset: 2px; }
.srm-prose strong { color: hsl(var(--foreground)); }
.srm-prose img { border-radius: 1rem; height: auto; }
.srm-prose blockquote { border-left: 4px solid hsl(var(--primary)); padding-left: 1rem; font-style: italic; }

.srm-product-description p + p { margin-top: 1rem; }

/* Gallery filter + lightbox. */
[data-gallery-item].is-hidden { display: none; }
.srm-lightbox {
	position: fixed;
	inset: 0;
	z-index: 60;
	background: rgb(0 0 0 / .88);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 2rem;
	cursor: zoom-out;
	animation: srm-fade .2s ease;
}
.srm-lightbox img { max-width: 100%; max-height: 100%; border-radius: 1rem; }

/* Footer menu (when managed from Appearance → Menus). */
.srm-footer-menu a { font-size: .875rem; color: hsl(var(--secondary-foreground) / .7); transition: color .15s; }
.srm-footer-menu a:hover { color: hsl(var(--primary)); }

/* AOS fade-left/right start 100px off-screen: without this the page gets wider than the screen on phones. */
#main { overflow-x: clip; }

/* Thank-you page */
.srm-thanks-icon { display: inline-flex; align-items: center; justify-content: center; width: 4rem; height: 4rem; margin-bottom: 1.5rem; border-radius: 9999px; background: hsl(var(--primary) / .1); color: hsl(var(--primary)); }

.srm-thanks-call { margin-top: 2.5rem; }

/* MSME ZED Gold band (home) */
.srm-zed { background: #fbfaf6; border-block: 1px solid hsl(var(--border) / .6); }
.srm-zed-grid { display: grid; gap: 2.5rem; align-items: center; }
.srm-zed-card { display: block; max-width: 30rem; margin-inline: auto; background: #fff; border: 1px solid hsl(var(--border)); border-radius: 1rem; overflow: hidden; box-shadow: 0 18px 45px -18px rgb(15 23 42 / .35); transition: box-shadow .3s, transform .3s; }
.srm-zed-card:hover { box-shadow: 0 26px 55px -18px rgb(15 23 42 / .45); transform: translateY(-3px); }
.srm-zed-card img { display: block; width: 100%; height: auto; }
.srm-zed-badge { display: inline-block; padding: .55rem 1.25rem; border-radius: 9999px; background: #e3f3df; color: #14532d; font-size: .875rem; font-weight: 700; letter-spacing: .02em; }
.srm-zed-heading { margin-top: 1.25rem; font-size: clamp(1.875rem, 1.3rem + 2.2vw, 3rem); line-height: 1.15; }
.srm-zed-rule { display: block; width: 4rem; height: 4px; margin-block: 1.25rem; border-radius: 2px; background: #b8860b; }
.srm-zed-text { font-size: 1.125rem; line-height: 1.7; }
.srm-zed-pillars { display: flex; flex-wrap: wrap; gap: .25rem 0; width: fit-content; max-width: 100%; margin-top: 1.5rem; padding: .75rem 1.25rem; border-radius: 1rem; background: #fdf3d9; color: #7f5807; font-weight: 700; }
.srm-zed-pillars li + li { margin-left: .75rem; padding-left: .75rem; border-left: 2px solid currentColor; }
.srm-zed-issuer { margin-top: 1.25rem; font-size: .9375rem; line-height: 1.5; }
@media (max-width: 479px) {
	.srm-zed-pillars { flex-direction: column; }
	.srm-zed-pillars li + li { margin-left: 0; padding-left: 0; border-left: 0; }
}
@media (min-width: 1024px) {
	.srm-zed-grid { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 4rem; }
}

@media (prefers-reduced-motion: reduce) {
	* { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
