/*
Theme Name:   Sealinkers (Flatsome child)
Theme URI:    https://sealinkers.in/
Description:  Sealinkers brand layer on Flatsome: brand tokens, self-hosted Noto Sans, product quote box, content components and speed fixes. Versioned in the sealinkers-wp repo; do not edit in wp-admin.
Author:       Sealinkers Pvt. Ltd.
Template:     flatsome
Version:      1.3.3
Text Domain:  sealinkers-child
*/

/* ---------------------------------------------------------------- tokens */
:root {
	--sl-blue: #2B58AD;        /* text, links, buttons (ONE_BLUE 500) */
	--sl-blue-700: #1F4389;
	--sl-signature: #3F78DA;   /* figures, rules, accents */
	--sl-deep: #142F66;        /* bands */
	--sl-deeper: #0E2048;
	--sl-ink: #1E293B;         /* brand slate ink */
	--sl-muted: #475569;
	--sl-line: #E2E8F0;
	--sl-tint: #F0F4FC;        /* panels, figure boxes */
	--sl-on-deep: #94B8F8;     /* blue text on deep */
	--sl-surface: #FFFFFF;
	--sl-page: #EEF1F5;
	--sl-radius: 3px;
	--sl-font: "Noto Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	--sl-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
}

@font-face {
	font-family: "Noto Sans";
	src: url("fonts/noto-sans-latin-wght.woff") format("woff");
	font-weight: 400 700;
	font-style: normal;
	font-display: swap;
}

/* The site has one (light) colour scheme: keep dark-mode phones from darkening the
   canvas or form controls under dark text. */
:root { color-scheme: light; }
html, body { background-color: var(--sl-surface); }

/* ------------------------------------------------------------ base type */
body, .nav > li > a, h1, h2, h3, h4, h5, h6, .heading-font, .alt-font, button, .button, input, select, textarea {
	font-family: var(--sl-font) !important;
}
body { color: var(--sl-ink); }
a { color: var(--sl-blue); }
a:hover { color: var(--sl-blue-700); }
h1, h2, h3 { color: var(--sl-ink); letter-spacing: -0.01em; }
.button.primary, .button.alt, button[type="submit"], input[type="submit"] {
	background-color: var(--sl-blue) !important;
	border-radius: var(--sl-radius) !important;
}
.button.primary:hover, .button.alt:hover { background-color: var(--sl-blue-700) !important; }
img { height: auto; }

/* ----------------------------------------------------------- components */
.sl-band { background: var(--sl-deep); color: #fff; padding: 48px 0; }
.sl-band h2, .sl-band h3, .sl-band a { color: #fff; }
.sl-eyebrow { font: 600 12px/1.4 var(--sl-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--sl-signature); margin-bottom: 6px; }
.sl-lede { font-size: 1.15em; color: var(--sl-muted); max-width: 46em; }
.sl-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1px; background: var(--sl-line); border: 1px solid var(--sl-line); margin: 24px 0; }
.sl-facts > div { background: var(--sl-surface); padding: 16px; }
.sl-facts strong { display: block; font-size: 1.6em; color: var(--sl-signature); line-height: 1.1; }
.sl-facts span { font-size: .85em; color: var(--sl-muted); }
.sl-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; margin: 20px 0; }
.sl-card { background: var(--sl-surface); border: 1px solid var(--sl-line); border-radius: var(--sl-radius); padding: 18px; }
.sl-card h3 { font-size: 1.05em; margin: 0 0 6px; }
.sl-card p { margin: 0; color: var(--sl-muted); font-size: .92em; }
.sl-card a.sl-more { display: inline-block; margin-top: 10px; font-weight: 600; }
.sl-logos { display: flex; flex-wrap: wrap; gap: 18px 28px; align-items: center; margin: 18px 0; }
.sl-logos img { max-height: 44px; width: auto; filter: grayscale(1); opacity: .8; }
.sl-faq details { border-top: 1px solid var(--sl-line); padding: 12px 0; }
.sl-faq summary { cursor: pointer; font-weight: 600; }
.sl-faq details p { margin: 8px 0 0; color: var(--sl-muted); }

/* spec + size tables (product descriptions) */
table.sl-specs, table.sl-sizes { width: 100%; border-collapse: collapse; margin: 8px 0 24px; font-size: .95em; }
table.sl-specs th, table.sl-specs td, table.sl-sizes th, table.sl-sizes td { border-bottom: 1px solid var(--sl-line); padding: 8px 10px; text-align: left; vertical-align: top; }
table.sl-specs th { width: 38%; color: var(--sl-muted); font-weight: 600; }
table.sl-sizes thead th { background: var(--sl-page); font-weight: 600; }
table.sl-sizes { display: block; overflow-x: auto; }
.sl-quote-note { color: var(--sl-muted); font-size: .92em; border-left: 3px solid var(--sl-signature); padding-left: 12px; }

/* product enquiry box */
.sl-enquiry { border: 1px solid var(--sl-line); border-radius: var(--sl-radius); padding: 16px; margin: 18px 0; background: var(--sl-surface); }
.sl-enquiry h3 { margin: 0 0 4px; font-size: 1.05em; }
.sl-enquiry p { margin: 0 0 10px; color: var(--sl-muted); font-size: .9em; }
.sl-wa { display: inline-flex; align-items: center; gap: 8px; background: #1F7A4D; color: #fff !important; padding: 9px 14px; border-radius: var(--sl-radius); font-weight: 600; margin-top: 8px; }
.sl-wa:hover { background: #17603C; }
.sl-enquiry .wpcf7-form p { margin-bottom: 8px; }

/* catalogue mode: hide empty price shells */
.woocommerce .price:empty, .product-small .price-wrapper:empty { display: none; }

@media (max-width: 549px) {
	.sl-facts { grid-template-columns: repeat(2, 1fr); }
	.sl-band { padding: 32px 0; }
}

/* content images rendered by the importer */
img.sl-media, img.sl-photo { display: block; max-width: min(100%, 560px); max-height: 420px; width: auto; object-fit: contain; margin: 16px 0; border-radius: var(--sl-radius); }

/* ------------------------------------------------------------ responsive
   Fluid by default (no fixed widths), checked at 320–2560 px wide and in
   landscape phones. Breakpoints follow Flatsome's: 549 / 849 px. */
.entry-content, .product-short-description, .woocommerce-Tabs-panel { overflow-wrap: break-word; }
.entry-content h1 { font-size: clamp(1.6rem, 1.1rem + 2.4vw, 2.6rem); line-height: 1.2; }
.entry-content h2 { font-size: clamp(1.3rem, 1rem + 1.2vw, 1.8rem); line-height: 1.25; }
.sl-lede { font-size: clamp(1rem, .95rem + .3vw, 1.15rem); }
.entry-content img, .entry-content iframe, .entry-content video { max-width: 100%; }
.entry-content iframe { width: 100%; aspect-ratio: 16 / 9; height: auto; max-height: 70vh; }
.sl-facts { grid-template-columns: repeat(auto-fit, minmax(min(150px, 100%), 1fr)); }
.sl-facts > div { min-width: 0; }
.sl-facts strong { font-size: clamp(1.2rem, 1rem + 1vw, 1.6rem); overflow-wrap: anywhere; }
.sl-cards { grid-template-columns: repeat(auto-fill, minmax(min(240px, 100%), 1fr)); }
.sl-card { min-width: 0; }
.entry-content .button, .sl-enquiry .button { margin: 0 8px 8px 0; max-width: 100%; white-space: normal; }
.sl-band .container { padding-left: 15px; padding-right: 15px; }
table.sl-sizes { max-width: 100%; -webkit-overflow-scrolling: touch; }
table.sl-specs th, table.sl-specs td { overflow-wrap: anywhere; }
.sl-enquiry input:not([type="submit"]):not([type="hidden"]), .sl-enquiry textarea { width: 100%; max-width: 100%; box-sizing: border-box; }
.sl-enquiry textarea { min-height: 96px; }
.sl-wa { min-height: 44px; } /* touch target */
.sl-faq summary { min-height: 44px; display: flex; align-items: center; }

@media (max-width: 849px) {
	table.sl-specs th { width: 45%; }
	.sl-band { padding: 36px 0; }
}
@media (max-width: 549px) {
	.sl-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sl-facts > div { padding: 12px; }
	table.sl-specs th, table.sl-specs td { padding: 7px 6px; font-size: .9em; }
	.sl-enquiry { padding: 12px; }
	.entry-content .button { display: block; text-align: center; margin-right: 0; }
	/* thumb-reachable WhatsApp on product pages */
	.single-product .sl-wa.sl-wa-float { position: fixed; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); z-index: 50; box-shadow: 0 4px 14px rgba(0,0,0,.25); border-radius: 999px; }
}
@media (max-width: 359px) {
	.sl-facts { grid-template-columns: minmax(0, 1fr); }
}
/* landscape phones: keep the map and media from eating the screen */
@media (orientation: landscape) and (max-height: 500px) {
	.entry-content iframe { max-height: 80vh; }
	img.sl-media, img.sl-photo { max-height: 60vh; }
}
/* very wide screens: comfortable reading measure inside full-width layouts */
@media (min-width: 1600px) {
	.sl-lede, .entry-content > p { max-width: 75ch; }
}
.sl-wa-float { display: none; }
@media (max-width: 549px) { .single-product .sl-wa.sl-wa-float { display: inline-flex; } }
.sl-enquiry .wpcf7-submit, .sl-enquiry input, .sl-enquiry textarea { min-height: 44px; font-size: 16px; } /* 16px stops iOS zoom-on-focus */
.sl-enquiry .wpcf7-submit { padding: 0 18px; background: var(--sl-blue); color: #fff; border: 0; border-radius: var(--sl-radius); font-weight: 600; cursor: pointer; }

/* product gallery: WooCommerce's flexslider builds the slider in JS, so until then every photo
   stacks full size; then for 100 ms after setup the slides sit unsized in a 600%-wide track, so the
   first photo renders at its full 510 px and pushes the summary off-screen (CLS 0.15–0.30 on phones).
   Pre-shape the final layout until flexslider writes each slide's width: first photo only, sized to
   the viewport (container units), plus a reserved thumbnail row (Flatsome thumbs: 25% wide, 10px
   gutter/margin). Thumbs are inserted without dimensions and sized on load, so give them their
   square (WooCommerce 100x100 crops) up front. */
.woocommerce-product-gallery--with-images .woocommerce-product-gallery__image:nth-child(n+2):not([style*="width"]) { display: none; }
.woocommerce-product-gallery .flex-viewport { container-type: inline-size; }
.woocommerce-product-gallery .flex-viewport .woocommerce-product-gallery__image:not([style*="width"]) { width: 100cqw; }
.woocommerce-product-gallery--with-images:has(.woocommerce-product-gallery__image:nth-child(2)):not(:has(.flex-control-nav))::after { content: ""; display: block; padding-top: calc((100% + 10px) / 4 + 14px); }
.woocommerce-product-gallery .flex-control-thumbs li img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; }
.sl-page-title { font-size: clamp(1.6rem, 1.1rem + 2.4vw, 2.6rem); line-height: 1.2; margin: .2em 0 .5em; }

/* ================================================================ layout system (1.3)
   Pages built from <section class="sl-sec"> bands (bin/import_content.py). Brand rules:
   one blue, slate neutrals, corners 0–4 px, no gradients/glow/text shadows; real photos
   framed with the certificate "stamp" double rule; test-certificate grid on deep grounds. */

/* Flatsome wraps page content in a padded row: let section pages run edge to edge. */
.sl-sections #content, .sl-sections .page-wrapper { padding-top: 0 !important; padding-bottom: 0 !important; }
.sl-sections #content > .row, .sl-sections .row-main { max-width: none !important; padding: 0 !important; margin: 0 !important; }
.sl-sections .row-main > .col, .sl-sections .row-main > .col > .col-inner { padding: 0 !important; max-width: none; flex-basis: 100%; }

.sl-wrap { max-width: 1200px; margin-inline: auto; padding-inline: clamp(16px, 4vw, 32px); }
.sl-sec { padding-block: clamp(48px, 7vw, 88px); background: var(--sl-surface); }
.sl-sec--tint { background: var(--sl-tint); }
.sl-sec--page { background: var(--sl-page); }
.sl-sec--tight { padding-block: clamp(28px, 4vw, 44px); }
.sl-sec--line { border-top: 1px solid var(--sl-line); }
.sl-sec > .sl-wrap > *:last-child { margin-bottom: 0; }

.sl-head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 12px 32px; margin-bottom: clamp(20px, 3vw, 32px); }
.sl-head h2 { margin: 0; }
.sl-head p { margin: 6px 0 0; color: var(--sl-muted); max-width: 44em; }
.sl-sec h2 { font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.2rem); font-weight: 700; line-height: 1.15; letter-spacing: -0.015em; text-wrap: balance; }
.sl-label { font: 600 12px/1.3 var(--sl-font); letter-spacing: .1em; text-transform: uppercase; color: var(--sl-blue); margin: 0 0 8px; }

/* buttons */
.sl-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.sl-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 22px; border-radius: 4px; font-weight: 600; font-size: 15px; letter-spacing: .01em; text-decoration: none; border: 2px solid transparent; transition: background-color .15s, border-color .15s, color .15s; }
.sl-btn--primary { background: var(--sl-blue); color: #fff !important; }
.sl-btn--primary:hover { background: var(--sl-blue-700); }
.sl-btn--ghost { border-color: currentColor; color: var(--sl-blue) !important; background: transparent; }
.sl-btn--ghost:hover { background: var(--sl-tint); }
.sl-btn--light { background: #fff; color: var(--sl-deep) !important; }
.sl-btn--light:hover { background: var(--sl-tint); }
.sl-btn--outline-light { border-color: rgba(255,255,255,.7); color: #fff !important; }
.sl-btn--outline-light:hover { background: rgba(255,255,255,.08); border-color: #fff; }
.sl-btn--wa { background: #1F7A4D; color: #fff !important; }
.sl-btn--wa:hover { background: #17603C; }

/* deep grounds carry the faint test-certificate grid */
.sl-hero, .sl-cta, .sl-sec--deep {
	background-color: var(--sl-deep);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64'%3E%3Cpath d='M64 0H0v64' fill='none' stroke='%23ffffff' stroke-opacity='.06'/%3E%3Cpath d='M32 0v64M0 32h64' fill='none' stroke='%23ffffff' stroke-opacity='.03'/%3E%3C/svg%3E");
	color: #fff;
}
.sl-sec--deep h2, .sl-sec--deep h3, .sl-cta h2 { color: #fff; }
.sl-sec--deep p, .sl-cta p { color: rgba(255,255,255,.82); }

/* hero */
.sl-hero { padding-block: clamp(40px, 6vw, 80px); }
.sl-hero__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(28px, 5vw, 64px); align-items: center; }
.sl-hero .sl-eyebrow { color: var(--sl-on-deep); }
.sl-hero h1 { color: #fff; font-size: clamp(2rem, 1.2rem + 3.2vw, 3.4rem); line-height: 1.06; font-weight: 700; letter-spacing: -0.02em; margin: 6px 0 16px; text-wrap: balance; }
.sl-hero .sl-lede { color: rgba(255,255,255,.85); font-size: clamp(1rem, .95rem + .35vw, 1.2rem); max-width: 34em; }
.sl-hero__media { margin: 0; }
.sl-hero__proof { list-style: none; display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 26px 0 0; padding: 0; font-size: 14px; color: rgba(255,255,255,.8); }
.sl-hero__proof li { margin: 0; display: flex; align-items: center; gap: 8px; }
.sl-hero__proof li::before { content: ""; width: 14px; height: 14px; flex: none; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.5l3.2 3L13 4.5' fill='none' stroke='%2394B8F8' stroke-width='2'/%3E%3C/svg%3E") center/contain no-repeat; }
.sl-hero--page .sl-hero__grid { grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); }
.sl-hero--page h1 { font-size: clamp(1.8rem, 1.2rem + 2.4vw, 2.8rem); }

/* the "stamp": real photographs inside a double-ruled certificate frame */
.sl-stamp { position: relative; margin: 0; border-radius: 2px; overflow: hidden; background: var(--sl-page); }
.sl-stamp img { display: block; width: 100%; height: 100%; object-fit: cover; }
.sl-stamp::after { content: ""; position: absolute; inset: 10px; border: 3px double rgba(255,255,255,.75); pointer-events: none; }
.sl-ratio-43 { aspect-ratio: 4 / 3; }
.sl-ratio-11 { aspect-ratio: 1; }
.sl-ratio-32 { aspect-ratio: 3 / 2; }
.sl-ratio-169 { aspect-ratio: 16 / 9; }
.sl-stamp figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 28px 18px 16px; background: rgba(14,32,72,.82); color: #fff; font-size: 14px; line-height: 1.4; }
.sl-stamp figcaption strong { display: block; font-size: 16px; }

/* product search */
.sl-search { display: flex; margin-top: 26px; max-width: 560px; background: #fff; border-radius: 4px; padding: 4px; }
.sl-search input[type="search"] { flex: 1; min-width: 0; border: 0 !important; box-shadow: none !important; margin: 0 !important; height: 48px; padding: 0 14px; font-size: 16px; color: var(--sl-ink); background: transparent; }
.sl-search button { margin: 0 !important; min-height: 48px; padding: 0 22px; border-radius: 3px !important; background: var(--sl-blue) !important; color: #fff; font-weight: 600; text-transform: none; letter-spacing: 0; }
.sl-search input:focus { outline: none; }
.sl-search:focus-within { outline: 3px solid var(--sl-on-deep); outline-offset: 2px; }

/* key figures */
.sl-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); background: #fff; border: 1px solid var(--sl-line); border-radius: 4px; }
.sl-stats > div { padding: clamp(16px, 2.4vw, 26px); border-left: 1px solid var(--sl-line); min-width: 0; }
.sl-stats > div:first-child { border-left: 0; }
.sl-stats strong { display: block; font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.3rem); line-height: 1.05; font-weight: 700; color: var(--sl-signature); font-variant-numeric: tabular-nums lining-nums; letter-spacing: -0.02em; }
.sl-stats span { display: block; margin-top: 6px; font-size: 14px; color: var(--sl-muted); line-height: 1.4; }
.sl-overlap { margin-top: calc(-1 * clamp(28px, 4vw, 48px)); position: relative; z-index: 2; }

/* photo cards (families, industries, articles) */
.sl-grid { display: grid; gap: clamp(14px, 2vw, 22px); grid-template-columns: repeat(auto-fill, minmax(min(260px, 100%), 1fr)); }
.sl-grid--3 { grid-template-columns: repeat(auto-fill, minmax(min(320px, 100%), 1fr)); }
.sl-pcard { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--sl-line); border-radius: 4px; overflow: hidden; color: var(--sl-ink) !important; text-decoration: none; transition: border-color .15s, transform .15s; min-width: 0; }
.sl-pcard:hover { border-color: var(--sl-signature); transform: translateY(-2px); }
.sl-pcard__img { display: block; aspect-ratio: 4 / 3; background: var(--sl-page); overflow: hidden; }
.sl-pcard__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s; }
.sl-pcard:hover .sl-pcard__img img { transform: scale(1.03); }
.sl-pcard__body { display: flex; flex-direction: column; gap: 6px; padding: 16px 18px 18px; flex: 1; }
.sl-pcard h3 { font-size: 17px; line-height: 1.3; margin: 0; color: var(--sl-ink); }
.sl-pcard p { margin: 0; font-size: 14px; line-height: 1.5; color: var(--sl-muted); }
.sl-pcard .sl-more { margin-top: auto; padding-top: 8px; font-size: 14px; font-weight: 600; color: var(--sl-blue); }
.sl-pcard .sl-more::after { content: " →"; transition: margin .15s; }
.sl-pcard:hover .sl-more::after { margin-left: 4px; }

/* image + text rows */
.sl-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(24px, 5vw, 64px); align-items: center; }
.sl-split + .sl-split { margin-top: clamp(40px, 6vw, 72px); }
.sl-split--flip > :first-child { order: 2; }
.sl-split h2 { margin-top: 0; }
.sl-ticks { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 10px; }
.sl-ticks li { margin: 0; padding-left: 28px; position: relative; line-height: 1.5; }
.sl-ticks li::before { content: ""; position: absolute; left: 0; top: .2em; width: 18px; height: 18px; background: var(--sl-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 2.8 6-6.6' fill='none' stroke='%232B58AD' stroke-width='2'/%3E%3C/svg%3E") center/12px no-repeat; border-radius: 2px; }

/* feature tiles (no photo) */
.sl-tiles { display: grid; gap: 1px; background: var(--sl-line); border: 1px solid var(--sl-line); grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); border-radius: 4px; overflow: hidden; }
.sl-tiles > div { background: #fff; padding: 22px; }
.sl-tiles h3 { font-size: 16px; margin: 0 0 6px; }
.sl-tiles p { margin: 0; font-size: 14px; color: var(--sl-muted); line-height: 1.55; }
.sl-tiles .sl-num { font: 700 13px/1 var(--sl-font); color: var(--sl-signature); letter-spacing: .08em; margin-bottom: 10px; display: block; }

/* logo strips */
.sl-logos { display: block; margin: 0; }
.sl-logos__label { text-align: center; font: 600 12px/1.3 var(--sl-font); letter-spacing: .1em; text-transform: uppercase; color: var(--sl-muted); margin: 0 0 18px; }
.sl-logos ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 10px; align-items: center; }
.sl-logos li { margin: 0; display: flex; align-items: center; justify-content: center; height: 76px; padding: 12px 16px; background: #fff; border: 1px solid var(--sl-line); border-radius: 4px; }
.sl-logos img { max-height: 44px; max-width: 100%; width: auto; object-fit: contain; filter: grayscale(1); opacity: .75; transition: filter .2s, opacity .2s; }
.sl-logos li:hover img { filter: none; opacity: 1; }

/* project cards: photo with caption */
.sl-projects { display: grid; gap: clamp(14px, 2vw, 22px); grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); }
.sl-projects .sl-stamp { aspect-ratio: 4 / 3; }

/* timeline */
.sl-timeline { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; border-left: 2px solid var(--sl-line); }
.sl-timeline li { margin: 0; padding: 0 0 24px 26px; position: relative; }
.sl-timeline li::before { content: ""; position: absolute; left: -7px; top: 4px; width: 12px; height: 12px; background: var(--sl-signature); border-radius: 2px; }
.sl-timeline b { display: block; font-size: 20px; color: var(--sl-signature); font-variant-numeric: tabular-nums; }
.sl-timeline strong { display: block; margin: 2px 0 4px; }
.sl-timeline p { margin: 0; color: var(--sl-muted); font-size: 15px; }

/* FAQ accordion */
.sl-faq { border-top: 1px solid var(--sl-line); max-width: 860px; }
.sl-faq details { border-bottom: 1px solid var(--sl-line); border-top: 0; padding: 0; }
.sl-faq summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 0; font-size: 16px; font-weight: 600; min-height: 44px; }
.sl-faq summary::-webkit-details-marker { display: none; }
.sl-faq summary::after { content: ""; flex: none; width: 22px; height: 22px; border-radius: 2px; background: var(--sl-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 3v10M3 8h10' stroke='%232B58AD' stroke-width='2'/%3E%3C/svg%3E") center/12px no-repeat; transition: transform .2s; }
.sl-faq details[open] summary::after { transform: rotate(45deg); }
.sl-faq details p { margin: 0 0 18px; color: var(--sl-muted); max-width: 70ch; }

/* closing call to action */
.sl-cta { padding-block: clamp(44px, 6vw, 72px); }
.sl-cta .sl-wrap { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 40px; }
.sl-cta h2 { margin: 0 0 6px; font-size: clamp(1.4rem, 1.1rem + 1.2vw, 2rem); }
.sl-cta p { margin: 0; }
.sl-cta .sl-actions { margin-top: 0; }

/* knowledge cards from [sl_latest_posts] */
.sl-posts { display: grid; gap: clamp(14px, 2vw, 22px); grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr)); }

@media (max-width: 849px) {
	.sl-hero__grid, .sl-hero--page .sl-hero__grid, .sl-split { grid-template-columns: minmax(0, 1fr); }
	.sl-split--flip > :first-child { order: 0; }
	.sl-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sl-stats > div:nth-child(3) { border-left: 0; }
	.sl-stats > div:nth-child(n+3) { border-top: 1px solid var(--sl-line); }
	.sl-cta .sl-wrap { display: block; }
	.sl-cta .sl-actions { margin-top: 20px; }
}
@media (max-width: 549px) {
	.sl-search { flex-direction: column; gap: 4px; }
	.sl-search button { width: 100%; }
	.sl-actions .sl-btn { flex: 1 1 100%; }
	.sl-logos ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
	.sl-pcard, .sl-pcard__img img, .sl-faq summary::after { transition: none; }
	.sl-pcard:hover { transform: none; }
}

/* footer on brand deep ground (Flatsome's grey demo footer) */
.footer-wrapper .footer-1, .footer-wrapper .footer-2 { background-color: var(--sl-deep) !important; }
.footer-wrapper .absolute-footer { background-color: var(--sl-deeper) !important; color: rgba(255,255,255,.7); }
.footer-wrapper, .footer-wrapper p, .footer-wrapper li { color: rgba(255,255,255,.82); }
.footer-wrapper a { color: #fff; }
.footer-wrapper a:hover { color: var(--sl-on-deep); }
.footer-wrapper .widget-title { color: #fff; font-size: 13px; letter-spacing: .1em; }
.footer-wrapper .is-divider { background-color: var(--sl-signature); }
.sl-foot ul { list-style: none; margin: 0; padding: 0; }
.sl-foot li { margin: 0 0 8px; }
.sl-foot address { font-style: normal; line-height: 1.6; }
.sl-foot .sl-foot__soc { display: flex; gap: 6px; margin-top: 10px; font-size: 13px; color: rgba(255,255,255,.7); }
.sl-pcard__img img.sl-contain { object-fit: contain; padding: 18px; background: #fff; }
.sl-prose { max-width: 820px; }
.sl-prose h2 { font-size: clamp(1.3rem, 1rem + 1vw, 1.7rem); margin-top: 1.6em; }
.sl-prose h3 { font-size: 1.15rem; margin-top: 1.4em; }
.sl-prose p, .sl-prose li { line-height: 1.7; }
.sl-sec .products { margin-top: 8px; }
.sl-sec h2, .sl-sec h3, .sl-head h2 { color: var(--sl-ink); }
.sl-sec--deep h2, .sl-sec--deep h3 { color: #fff; }
/* catalogue site: no payment icons in the footer bar */
.footer-wrapper .payment-icons { display: none !important; }
/* logo strips: even rows (12 = 2 × 6), spacing between stacked strips */
.sl-logos ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.sl-logos li { flex: 0 0 calc((100% - 50px) / 6); }
.sl-logos + .sl-logos { margin-top: 28px; }
@media (max-width: 849px) { .sl-logos li { flex-basis: calc((100% - 20px) / 3); } }
@media (max-width: 549px) { .sl-logos li { flex-basis: calc((100% - 10px) / 2); } }
