/*
Theme Name: Sopred Astra Child
Theme URI: https://sopred.dz/
Description: Direct, conversion-focused Sopred redesign built as an update-safe Astra child theme.
Author: Site Administrator
Template: astra
Version: 1.0.5
Requires at least: 6.9
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: sopred-astra-child
*/

body.sopred-modern-site {
	--sopred-brand: var( --ast-global-color-0, #6c279b );
	--sopred-brand-deep: var( --ast-global-color-1, #42145f );
	--sopred-ink: var( --ast-global-color-2, #201827 );
	--sopred-text: var( --ast-global-color-3, #5b5362 );
	--sopred-soft: var( --ast-global-color-4, #f7f4fa );
	--sopred-surface: var( --ast-global-color-5, #fff );
	--sopred-border: rgba( 66, 20, 95, 0.13 );
	--sopred-border-strong: rgba( 66, 20, 95, 0.24 );
	--sopred-shadow-sm: 0 6px 18px rgba( 38, 20, 49, 0.08 );
	--sopred-shadow-md: 0 16px 38px rgba( 38, 20, 49, 0.12 );
	--sopred-shadow-lg: 0 26px 64px rgba( 38, 20, 49, 0.16 );
	--sopred-radius: 8px;
	background: var( --sopred-soft );
	color: var( --sopred-text );
}

body.sopred-modern-site :where( *, *::before, *::after ) {
	box-sizing: border-box;
}

body.sopred-modern-site :where( h1, h2, h3, h4, h5, h6 ) {
	color: var( --sopred-ink );
	letter-spacing: -0.02em;
	text-wrap: balance;
}

body.sopred-modern-site :where( p, li ) {
	text-wrap: pretty;
}

body.sopred-modern-site :where( a, button, input, select, textarea ) {
	-webkit-tap-highlight-color: transparent;
}

.sopred-shell {
	margin-inline: auto;
	max-width: 1540px;
	width: calc( 100% - 32px );
}

/* Floating Astra header. */
body.sopred-modern-site .site-header {
	background: transparent;
	padding-block: 10px;
	position: relative;
	z-index: 50;
}

body.sopred-modern-site .ast-primary-header-bar {
	background: rgba( 255, 255, 255, 0.96 );
	border: 1px solid var( --sopred-border );
	border-radius: var( --sopred-radius );
	box-shadow: var( --sopred-shadow-md );
	margin-inline: auto;
	max-width: min( 1740px, calc( 100% - 24px ) );
	width: calc( 100% - 24px );
	backdrop-filter: blur( 14px );
	-webkit-backdrop-filter: blur( 14px );
}

body.sopred-modern-site :where( .custom-logo, .site-logo-img img ) {
	filter: drop-shadow( 0 5px 8px rgba( 66, 20, 95, 0.12 ) );
}

body.sopred-modern-site :where( .main-header-menu > .menu-item > .menu-link, .hfe-nav-menu > .menu-item > .hfe-menu-item ) {
	border-radius: var( --sopred-radius );
	font-weight: 650;
	transition: background-color 160ms ease, color 160ms ease, transform 160ms ease;
}

body.sopred-modern-site :where( .main-header-menu > .menu-item > .menu-link, .hfe-nav-menu > .menu-item > .hfe-menu-item ):hover,
body.sopred-modern-site :where( .main-header-menu > .current-menu-item > .menu-link, .hfe-nav-menu > .current-menu-item > .hfe-menu-item ) {
	background: rgba( 108, 39, 155, 0.08 );
}

body.sopred-modern-site :where( .main-header-menu .sub-menu, .hfe-nav-menu .sub-menu, .ast-header-account-wrap .ast-account-nav-menu ) {
	background: var( --sopred-surface );
	border: 1px solid var( --sopred-border );
	border-radius: var( --sopred-radius );
	box-shadow: var( --sopred-shadow-lg );
	overflow: hidden;
}

/* Direct HTML conversion strip. */
.sopred-trust-strip {
	background: var( --sopred-brand-deep );
	color: #fff;
	position: relative;
	z-index: 20;
}

.sopred-trust-strip__inner {
	align-items: center;
	display: flex;
	gap: 18px;
	justify-content: space-between;
	min-height: 58px;
	padding-block: 8px;
}

.sopred-trust-list {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 8px 24px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.sopred-trust-list li {
	align-items: center;
	display: inline-flex;
	font-size: 0.92rem;
	font-weight: 600;
	gap: 7px;
}

.sopred-trust-list span {
	align-items: center;
	background: rgba( 255, 255, 255, 0.14 );
	border-radius: 50%;
	display: inline-flex;
	height: 24px;
	justify-content: center;
	width: 24px;
}

/* Buttons and conversion actions. */
body.sopred-modern-site :where(
	button,
	.button,
	.wp-element-button,
	.wp-block-button__link,
	.elementor-button,
	.uagb-button__link,
	input[type="submit"],
	input[type="button"],
	input[type="reset"],
	.woocommerce a.button,
	.woocommerce button.button,
	.woocommerce input.button
),
.sopred-button {
	align-items: center;
	background: var( --sopred-brand );
	border: 1px solid var( --sopred-brand );
	border-radius: var( --sopred-radius );
	box-shadow: 0 8px 18px rgba( 66, 20, 95, 0.2 );
	color: #fff;
	display: inline-flex;
	font-weight: 700;
	justify-content: center;
	line-height: 1.2;
	min-height: 44px;
	padding: 11px 20px;
	text-decoration: none;
	transition: box-shadow 160ms ease, filter 160ms ease, transform 160ms ease;
}

body.sopred-modern-site :where(
	button,
	.button,
	.wp-element-button,
	.wp-block-button__link,
	.elementor-button,
	.uagb-button__link,
	input[type="submit"],
	.woocommerce a.button,
	.woocommerce button.button
):hover,
.sopred-button:hover {
	box-shadow: 0 12px 28px rgba( 66, 20, 95, 0.27 );
	color: #fff;
	filter: brightness( 0.94 );
	transform: translateY( -2px );
}

.sopred-button--compact {
	background: #fff;
	border-color: #fff;
	box-shadow: none;
	color: var( --sopred-brand-deep );
	min-height: 40px;
	padding: 9px 16px;
	white-space: nowrap;
}

.sopred-button--compact:hover {
	color: var( --sopred-brand-deep );
}

.sopred-button--secondary {
	background: transparent;
	border-color: rgba( 255, 255, 255, 0.72 );
	box-shadow: none;
	color: #fff;
}

body.sopred-modern-site :where( a, button, input, select, textarea, [tabindex]:not( [tabindex="-1"] ) ):focus-visible {
	outline: 3px solid var( --sopred-brand );
	outline-offset: 3px;
}

/* Global page-builder surfaces: direct CSS over the existing HTML. */
body.sopred-modern-site :where(
	.elementor[data-elementor-type="wp-page"] > .e-con.e-parent,
	.entry-content > .elementor > .e-con.e-parent,
	.elementor[data-elementor-type="wp-page"] > .elementor-top-section,
	.entry-content > .elementor > .elementor-top-section,
	.entry-content > .wp-block-group
) {
	background-color: transparent;
	border: 0;
	isolation: isolate;
	margin: clamp( 16px, 3vw, 34px ) auto;
	max-width: 1540px;
	overflow: visible;
	padding: clamp( 12px, 2.5vw, 30px ) clamp( 12px, 3vw, 30px );
	width: 100%;
}

body.sopred-modern-site :where(
	.elementor-widget-image-box > .elementor-widget-container,
	.elementor-widget-icon-box > .elementor-widget-container,
	.elementor-widget-testimonial > .elementor-widget-container,
	.elementor-widget-counter > .elementor-widget-container,
	.uagb-infobox__content-wrap,
	.wp-block-media-text,
	.wp-block-column
) {
	background: var( --sopred-surface );
	border: 1px solid var( --sopred-border );
	border-radius: var( --sopred-radius );
	box-shadow: var( --sopred-shadow-sm );
	padding: clamp( 16px, 2.4vw, 28px );
	transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

body.sopred-modern-site :where(
	.elementor-widget-image-box > .elementor-widget-container,
	.elementor-widget-icon-box > .elementor-widget-container,
	.elementor-widget-testimonial > .elementor-widget-container,
	.elementor-widget-counter > .elementor-widget-container,
	.uagb-infobox__content-wrap,
	.wp-block-media-text,
	.wp-block-column
):hover {
	border-color: var( --sopred-border-strong );
	box-shadow: var( --sopred-shadow-md );
	transform: translateY( -4px );
}

/* Preserve every existing image source and improve only its presentation. */
body.sopred-modern-site :where(
	.elementor-widget-image:not( .elementor-widget-theme-site-logo ) img,
	.wp-block-image img,
	.entry-content > p > img,
	.post-thumb-img-content img,
	.woocommerce-product-gallery__image img,
	.woocommerce ul.products li.product img
):not( .custom-logo ):not( .hfe-site-logo-img ) {
	border-radius: var( --sopred-radius );
	box-shadow: var( --sopred-shadow-sm );
}

body.sopred-modern-site :where( .elementor-widget-image a img, .wp-block-image a img, .woocommerce ul.products li.product a img ) {
	transition: box-shadow 220ms ease, transform 220ms ease;
}

body.sopred-modern-site :where( .elementor-widget-image a img, .wp-block-image a img, .woocommerce ul.products li.product a img ):hover {
	box-shadow: var( --sopred-shadow-md );
	transform: translateY( -3px );
}

/* Existing Sopred homepage: same exhibition image, visibly redesigned hero. */
body.sopred-modern-site.home .elementor-107 .elementor-element.elementor-element-a410116 {
	--overlay-opacity: 0.7;
	background-color: #fff;
	border: 1px solid var( --sopred-border-strong );
	border-radius: var( --sopred-radius );
	box-shadow: var( --sopred-shadow-lg );
	isolation: isolate;
	margin: 24px auto 60px;
	max-width: min( 1740px, calc( 100% - 24px ) );
	min-height: clamp( 540px, 68vh, 730px );
	overflow: hidden;
	padding: 0;
	width: calc( 100% - 24px );
}

body.sopred-modern-site.home .elementor-107 .elementor-element.elementor-element-efe05f9 {
	--margin-bottom: clamp( 48px, 7vw, 88px );
	--margin-left: auto;
	--margin-right: auto;
	--margin-top: clamp( 96px, 12vw, 158px );
	background: rgba( 255, 255, 255, 0.9 );
	border: 1px solid rgba( 255, 255, 255, 0.84 );
	border-radius: var( --sopred-radius );
	box-shadow: 0 26px 62px rgba( 38, 20, 49, 0.22 );
	max-width: min( 1080px, calc( 100% - 40px ) );
	padding: clamp( 26px, 4vw, 52px );
	width: 100%;
	backdrop-filter: blur( 13px );
	-webkit-backdrop-filter: blur( 13px );
}

body.sopred-modern-site.home .elementor-107 .elementor-element.elementor-element-0f91fec .elementor-heading-title {
	color: var( --sopred-brand );
	display: inline-block;
	font-size: clamp( 1.7rem, 3vw, 3rem );
	letter-spacing: 0.04em;
	line-height: 1;
	margin-block-end: 12px;
	text-transform: uppercase;
}

body.sopred-modern-site.home .elementor-107 .elementor-element.elementor-element-647f6b9 .elementor-heading-title {
	color: var( --sopred-ink );
	font-size: clamp( 2.25rem, 4.2vw, 4rem );
	line-height: 1.08;
	margin-inline: auto;
	max-width: 960px;
}

body.sopred-modern-site.home .elementor-107 .elementor-element.elementor-element-613fc41 .elementor-heading-title {
	color: var( --sopred-brand );
	font-size: clamp( 1.05rem, 2vw, 1.55rem );
	line-height: 1.4;
	margin-inline: auto;
	max-width: 820px;
}

body.sopred-modern-site.home .elementor-107 :where( .elementor-element-82665b0, .elementor-element-c5e48d2, .elementor-element-1246cee ) {
	border: 1px solid var( --sopred-border );
	border-radius: var( --sopred-radius );
	box-shadow: var( --sopred-shadow-md );
	margin: clamp( 24px, 4vw, 56px ) auto;
	max-width: min( 1540px, calc( 100% - 24px ) );
	padding: clamp( 24px, 4vw, 56px );
	width: calc( 100% - 24px );
}

/* Standard pages, titles, blog, and sidebars. */
body.sopred-modern-site:not( .home ):not( .elementor-page ):not( .woocommerce-page ) .site-main > article,
body.sopred-modern-site.search .site-main,
body.sopred-modern-site.error404 .site-main {
	background: var( --sopred-surface );
	border: 1px solid var( --sopred-border );
	border-radius: var( --sopred-radius );
	box-shadow: var( --sopred-shadow-md );
	margin-block: clamp( 22px, 4vw, 50px );
	padding: clamp( 22px, 4vw, 52px );
}

body.sopred-modern-site:not( .home ) :where( .entry-header, .page-header, .woocommerce-products-header, .ast-archive-description ) {
	background: rgba( 255, 255, 255, 0.96 );
	border: 1px solid var( --sopred-border );
	border-inline-start: 4px solid var( --sopred-brand );
	border-radius: var( --sopred-radius );
	box-shadow: var( --sopred-shadow-sm );
	margin-block-end: clamp( 20px, 3vw, 36px );
	padding: clamp( 16px, 2.5vw, 28px );
}

body.sopred-modern-site:not( .home ) :where( .entry-title, .page-title ) {
	font-size: clamp( 2rem, 4vw, 3.5rem );
	line-height: 1.1;
	margin: 0;
}

body.sopred-modern-site :where( .blog .site-main, .archive .site-main, .search-results .site-main ) {
	display: grid;
	gap: clamp( 18px, 3vw, 30px );
}

body.sopred-modern-site :where( .blog .site-main article, .archive .site-main article, .search-results .site-main article, .widget, .ast-comment-list li.depth-1 ) {
	background: var( --sopred-surface );
	border: 1px solid var( --sopred-border );
	border-radius: var( --sopred-radius );
	box-shadow: var( --sopred-shadow-sm );
	margin: 0;
	padding: clamp( 18px, 3vw, 30px );
}

body.sopred-modern-site :where( .blog .site-main article, .archive .site-main article, .search-results .site-main article ) {
	transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

body.sopred-modern-site :where( .blog .site-main article, .archive .site-main article, .search-results .site-main article ):hover {
	border-color: var( --sopred-border-strong );
	box-shadow: var( --sopred-shadow-md );
	transform: translateY( -4px );
}

/* Equipment category hub injected from the existing WooCommerce catalog. */
.sopred-category-hub {
	background: var( --sopred-surface );
	border: 1px solid var( --sopred-border );
	border-radius: var( --sopred-radius );
	box-shadow: var( --sopred-shadow-md );
	margin: 0 auto clamp( 24px, 4vw, 48px );
	max-width: 1540px;
	padding: clamp( 22px, 4vw, 46px );
	width: calc( 100% - 32px );
}

.sopred-category-hub__intro {
	margin-block-end: clamp( 20px, 3vw, 32px );
	max-width: 760px;
}

.sopred-category-hub__intro h2 {
	font-size: clamp( 1.7rem, 3vw, 2.7rem );
	line-height: 1.12;
	margin: 0 0 10px;
}

.sopred-category-hub__intro p:last-child {
	margin: 0;
}

.sopred-category-hub__grid {
	display: grid;
	gap: 14px;
	grid-template-columns: repeat( auto-fit, minmax( 210px, 1fr ) );
}

.sopred-category-card {
	align-items: stretch;
	background: var( --sopred-soft );
	border: 1px solid var( --sopred-border );
	border-radius: var( --sopred-radius );
	color: var( --sopred-ink );
	display: flex;
	flex-direction: column;
	overflow: hidden;
	text-decoration: none;
	transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.sopred-category-card:hover,
.sopred-category-card:focus-visible {
	border-color: var( --sopred-brand );
	box-shadow: var( --sopred-shadow-md );
	color: var( --sopred-ink );
	transform: translateY( -4px );
}

.sopred-category-card__image {
	background: #fff;
	display: grid;
	height: 142px;
	place-items: center;
}

.sopred-category-card__image img {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.sopred-category-card__image--placeholder {
	color: var( --sopred-brand );
	font-size: 2.8rem;
	font-weight: 300;
}

.sopred-category-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 5px;
	padding: 16px 16px 8px;
}

.sopred-category-card__body strong {
	font-size: 1.05rem;
	line-height: 1.25;
}

.sopred-category-card__body span {
	color: var( --sopred-text );
	font-size: 0.84rem;
}

.sopred-category-card__arrow {
	align-self: flex-end;
	color: var( --sopred-brand );
	font-size: 1.35rem;
	line-height: 1;
	padding: 0 16px 14px;
}

/* Reliable direct blog template. */
.sopred-blog-index {
	margin-inline: auto;
	max-width: 1540px;
	padding-block: clamp( 24px, 5vw, 64px );
	width: calc( 100% - 32px );
}

.sopred-page-hero {
	background: var( --sopred-surface );
	border: 1px solid var( --sopred-border );
	border-inline-start: 4px solid var( --sopred-brand );
	border-radius: var( --sopred-radius );
	box-shadow: var( --sopred-shadow-md );
	margin-block-end: clamp( 22px, 4vw, 38px );
	padding: clamp( 22px, 4vw, 42px );
}

.sopred-page-hero h1 {
	font-size: clamp( 2.1rem, 4.5vw, 4rem );
	line-height: 1.05;
	margin: 0 0 12px;
}

.sopred-page-hero > p:last-child {
	font-size: clamp( 1rem, 1.5vw, 1.2rem );
	margin: 0;
	max-width: 700px;
}

.sopred-blog-grid {
	display: grid;
	gap: clamp( 18px, 3vw, 30px );
	grid-template-columns: repeat( auto-fit, minmax( min( 100%, 280px ), 1fr ) );
}

.sopred-blog-card {
	background: var( --sopred-surface );
	border: 1px solid var( --sopred-border );
	border-radius: var( --sopred-radius );
	box-shadow: var( --sopred-shadow-sm );
	overflow: hidden;
	transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.sopred-blog-card:hover {
	border-color: var( --sopred-border-strong );
	box-shadow: var( --sopred-shadow-md );
	transform: translateY( -4px );
}

.sopred-blog-card__image,
.sopred-blog-card__image img {
	display: block;
	width: 100%;
}

.sopred-blog-card__image img {
	height: 210px;
	object-fit: cover;
}

.sopred-blog-card__body {
	padding: 22px;
}

.sopred-blog-card__meta {
	color: var( --sopred-brand );
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	margin: 0 0 8px;
	text-transform: uppercase;
}

.sopred-blog-card h2 {
	font-size: clamp( 1.25rem, 2vw, 1.6rem );
	line-height: 1.2;
	margin: 0 0 10px;
}

.sopred-blog-card h2 a {
	color: inherit;
	text-decoration: none;
}

.sopred-blog-card__excerpt p {
	margin-block: 0 14px;
}

.sopred-text-link {
	color: var( --sopred-brand );
	font-weight: 700;
}

.sopred-empty-state {
	background: var( --sopred-surface );
	border: 1px solid var( --sopred-border );
	border-radius: var( --sopred-radius );
	padding: 32px;
}

/* Full homepage rebuild. */
.sopred-homepage {
	margin-inline: auto;
	max-width: 1540px;
	padding-block: clamp( 22px, 5vw, 64px );
	width: calc( 100% - 32px );
}

.sopred-home-hero {
	align-items: stretch;
	background: var( --sopred-brand-deep );
	border: 1px solid var( --sopred-border-strong );
	border-radius: var( --sopred-radius );
	box-shadow: var( --sopred-shadow-lg );
	color: rgba( 255, 255, 255, 0.9 );
	display: grid;
	grid-template-columns: minmax( 0, 1fr ) minmax( 320px, 0.9fr );
	overflow: hidden;
}

.sopred-home-hero__copy {
	padding: clamp( 28px, 6vw, 76px );
}

.sopred-home-hero .sopred-eyebrow {
	color: rgba( 255, 255, 255, 0.74 );
}

.sopred-home-hero h1 {
	color: #fff;
	font-size: clamp( 2.25rem, 5vw, 4.7rem );
	line-height: 1.02;
	margin: 0 0 18px;
	max-width: 720px;
}

.sopred-home-hero__copy > p:not( .sopred-eyebrow ) {
	font-size: clamp( 1.05rem, 1.8vw, 1.35rem );
	line-height: 1.55;
	margin: 0;
	max-width: 650px;
}

.sopred-home-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-block-start: 28px;
}

.sopred-home-hero__image {
	min-height: 420px;
}

.sopred-home-hero__image img {
	display: block;
	height: 100%;
	min-height: 420px;
	object-fit: cover;
	width: 100%;
}

.sopred-home-categories,
.sopred-home-services {
	margin-block-start: clamp( 40px, 7vw, 82px );
}

.sopred-home-categories__grid {
	display: grid;
	gap: 12px;
	grid-template-columns: repeat( auto-fit, minmax( 230px, 1fr ) );
}

.sopred-home-category-link {
	align-items: center;
	background: var( --sopred-surface );
	border: 1px solid var( --sopred-border );
	border-radius: var( --sopred-radius );
	box-shadow: var( --sopred-shadow-sm );
	color: var( --sopred-ink );
	display: grid;
	gap: 4px 12px;
	grid-template-columns: minmax( 0, 1fr ) auto;
	padding: 18px 20px;
	text-decoration: none;
	transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.sopred-home-category-link:hover,
.sopred-home-category-link:focus-visible {
	border-color: var( --sopred-brand );
	box-shadow: var( --sopred-shadow-md );
	color: var( --sopred-ink );
	transform: translateY( -3px );
}

.sopred-home-category-link strong {
	font-size: 1.05rem;
	grid-column: 1;
}

.sopred-home-category-link span:nth-of-type(1) {
	color: var( --sopred-text );
	font-size: 0.82rem;
	grid-column: 1;
}

.sopred-home-category-link span:last-child {
	color: var( --sopred-brand );
	font-size: 1.5rem;
	grid-column: 2;
	grid-row: 1 / span 2;
}

.sopred-home-services__grid {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat( 3, 1fr );
}

.sopred-home-services__grid article {
	background: var( --sopred-soft );
	border: 1px solid var( --sopred-border );
	border-radius: var( --sopred-radius );
	padding: 24px;
}

.sopred-home-services__grid article > span {
	color: var( --sopred-brand );
	display: block;
	font-size: 1.2rem;
	font-weight: 750;
	margin-block-end: 22px;
}

.sopred-home-services__grid h3 {
	font-size: 1.4rem;
	margin: 0 0 8px;
}

.sopred-home-services__grid p {
	margin: 0;
}

.sopred-home-cta {
	align-items: center;
	background: var( --sopred-soft );
	border: 1px solid var( --sopred-border );
	border-radius: var( --sopred-radius );
	box-shadow: var( --sopred-shadow-sm );
	display: flex;
	gap: 24px;
	justify-content: space-between;
	margin-block: clamp( 40px, 7vw, 82px ) 0;
	padding: clamp( 24px, 4vw, 42px );
}

.sopred-home-cta h2 {
	font-size: clamp( 1.45rem, 2.5vw, 2.2rem );
	line-height: 1.12;
	margin: 0;
}

body.sopred-modern-site :where( .sopred-page-shell, .sopred-page-shell--maintenance, .maintenance-page, .elementor-maintenance-mode ) {
	min-height: 42vh;
}

.sopred-page-content {
	background: var( --sopred-surface );
	border: 1px solid var( --sopred-border );
	border-radius: var( --sopred-radius );
	box-shadow: var( --sopred-shadow-md );
	margin-inline: auto;
	max-width: 1540px;
	padding: clamp( 20px, 4vw, 54px );
}

.sopred-page-content > .elementor,
.sopred-page-content > .wp-block-group {
	margin-inline: auto;
	max-width: 100%;
}

body.sopred-modern-site.single-product div.product .summary.entry-summary > .pdmgr-product-documents {
	clear: both;
	margin-block: 22px 26px;
	padding: 18px;
}

/* Full equipment catalogue page. */
.sopred-equipment-page {
	margin-inline: auto;
	max-width: 1540px;
	padding-block: clamp( 22px, 5vw, 64px );
	width: calc( 100% - 32px );
}

.sopred-equipment-hero {
	align-items: stretch;
	background: var( --sopred-brand-deep );
	border: 1px solid var( --sopred-border-strong );
	border-radius: var( --sopred-radius );
	box-shadow: var( --sopred-shadow-lg );
	color: rgba( 255, 255, 255, 0.9 );
	display: grid;
	grid-template-columns: minmax( 0, 1.5fr ) minmax( 250px, 0.7fr );
	overflow: hidden;
}

.sopred-equipment-hero__content {
	padding: clamp( 28px, 6vw, 76px );
}

.sopred-equipment-hero .sopred-eyebrow {
	color: rgba( 255, 255, 255, 0.74 );
}

.sopred-equipment-hero h1 {
	color: #fff;
	font-size: clamp( 2.25rem, 5vw, 4.8rem );
	line-height: 1.02;
	margin: 0 0 18px;
	max-width: 720px;
}

.sopred-equipment-hero__content > p:not( .sopred-eyebrow ) {
	font-size: clamp( 1.05rem, 1.8vw, 1.35rem );
	line-height: 1.55;
	margin: 0;
	max-width: 700px;
}

.sopred-equipment-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-block-start: 28px;
}

.sopred-button--outline {
	background: transparent;
	border-color: rgba( 255, 255, 255, 0.72 );
	box-shadow: none;
}

.sopred-button--outline:hover,
.sopred-button--outline:focus-visible {
	background: #fff;
	border-color: #fff;
	color: var( --sopred-brand-deep );
}

.sopred-equipment-hero__facts {
	background: rgba( 0, 0, 0, 0.15 );
	display: grid;
	grid-template-rows: repeat( 3, 1fr );
}

.sopred-equipment-hero__facts div {
	align-items: center;
	border-block-end: 1px solid rgba( 255, 255, 255, 0.16 );
	display: flex;
	gap: 16px;
	padding: 24px;
}

.sopred-equipment-hero__facts div:last-child {
	border-block-end: 0;
}

.sopred-equipment-hero__facts strong {
	color: #fff;
	font-size: 1.7rem;
}

.sopred-equipment-hero__facts span {
	font-size: 0.95rem;
	line-height: 1.35;
}

.sopred-equipment-categories {
	margin-block-start: clamp( 34px, 6vw, 72px );
}

.sopred-section-heading {
	margin-block-end: clamp( 22px, 4vw, 38px );
	max-width: 820px;
}

.sopred-section-heading h2 {
	font-size: clamp( 1.8rem, 3.5vw, 3rem );
	line-height: 1.1;
	margin: 0 0 10px;
}

.sopred-section-heading p:last-child {
	margin: 0;
}

.sopred-equipment-categories__grid {
	display: grid;
	gap: 18px;
	grid-template-columns: repeat( auto-fit, minmax( 240px, 1fr ) );
}

.sopred-equipment-category-card {
	background: var( --sopred-surface );
	border: 1px solid var( --sopred-border );
	border-radius: var( --sopred-radius );
	box-shadow: var( --sopred-shadow-sm );
	color: var( --sopred-ink );
	display: flex;
	flex-direction: column;
	overflow: hidden;
	text-decoration: none;
	transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.sopred-equipment-category-card:hover,
.sopred-equipment-category-card:focus-visible {
	border-color: var( --sopred-brand );
	box-shadow: var( --sopred-shadow-md );
	color: var( --sopred-ink );
	transform: translateY( -5px );
}

.sopred-equipment-category-card__media {
	background: var( --sopred-soft );
	display: grid;
	height: 190px;
	place-items: center;
}

.sopred-equipment-category-card__media img {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.sopred-equipment-category-card__placeholder {
	color: var( --sopred-brand );
	font-size: 3rem;
	font-weight: 300;
}

.sopred-equipment-category-card__content {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 7px;
	padding: 20px 20px 6px;
}

.sopred-equipment-category-card__content strong {
	font-size: 1.18rem;
	line-height: 1.25;
}

.sopred-equipment-category-card__content span {
	color: var( --sopred-text );
	font-size: 0.9rem;
}

.sopred-equipment-category-card__arrow {
	align-self: flex-end;
	color: var( --sopred-brand );
	font-size: 1.55rem;
	line-height: 1;
	padding: 0 20px 17px;
}

.sopred-equipment-note {
	align-items: center;
	background: var( --sopred-soft );
	border: 1px solid var( --sopred-border );
	border-radius: var( --sopred-radius );
	box-shadow: var( --sopred-shadow-sm );
	display: flex;
	gap: 28px;
	justify-content: space-between;
	margin-block: clamp( 34px, 6vw, 72px ) 0;
	padding: clamp( 24px, 4vw, 42px );
}

.sopred-equipment-note h2 {
	font-size: clamp( 1.45rem, 2.5vw, 2.2rem );
	line-height: 1.12;
	margin: 0 0 8px;
}

.sopred-equipment-note p:last-child {
	margin: 0;
}

/* Forms and contact conversion. */
body.sopred-modern-site :where(
	input:not( [type="checkbox"] ):not( [type="radio"] ):not( [type="submit"] ):not( [type="button"] ):not( [type="reset"] ),
	select,
	textarea
) {
	background: var( --sopred-surface );
	border: 1px solid var( --sopred-border-strong );
	border-radius: var( --sopred-radius );
	min-height: 46px;
	transition: border-color 150ms ease, box-shadow 150ms ease;
}

body.sopred-modern-site :where(
	input:not( [type="checkbox"] ):not( [type="radio"] ):not( [type="submit"] ):not( [type="button"] ):not( [type="reset"] ),
	select,
	textarea
):focus {
	border-color: var( --sopred-brand );
	box-shadow: 0 0 0 4px rgba( 108, 39, 155, 0.11 );
}

body.sopred-modern-site :where( .wpforms-container, .elementor-widget-form > .elementor-widget-container, .wpcf7, .search-form ) {
	background: var( --sopred-surface );
	border: 1px solid var( --sopred-border );
	border-radius: var( --sopred-radius );
	box-shadow: var( --sopred-shadow-md );
	padding: clamp( 20px, 3vw, 34px );
}

body.sopred-modern-site :where( .wpforms-container label, .elementor-field-group label, .woocommerce form .form-row label ) {
	color: var( --sopred-ink );
	font-weight: 650;
}

/* WooCommerce catalog and products. */
body.sopred-modern-site.woocommerce .woocommerce-breadcrumb {
	background: var( --sopred-surface );
	border: 1px solid var( --sopred-border );
	border-radius: var( --sopred-radius );
	box-shadow: var( --sopred-shadow-sm );
	display: inline-flex;
	flex-wrap: wrap;
	gap: 4px;
	padding: 9px 13px;
}

body.sopred-modern-site.woocommerce ul.products li.product,
body.sopred-modern-site :where( .eael-product-grid .product, .eael-product-list-container ) {
	background: var( --sopred-surface );
	border: 1px solid var( --sopred-border );
	border-radius: var( --sopred-radius );
	box-shadow: var( --sopred-shadow-sm );
	overflow: hidden;
	padding: clamp( 14px, 2vw, 20px );
	transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

body.sopred-modern-site.woocommerce ul.products li.product:hover,
body.sopred-modern-site :where( .eael-product-grid .product, .eael-product-list-container ):hover {
	border-color: var( --sopred-border-strong );
	box-shadow: var( --sopred-shadow-md );
	transform: translateY( -5px );
}

body.sopred-modern-site.woocommerce ul.products li.product .button {
	margin-block-start: 12px;
	text-align: center;
	width: 100%;
}

body.sopred-modern-site.single-product div.product :where( .woocommerce-product-gallery, .summary.entry-summary ) {
	background: var( --sopred-surface );
	border: 1px solid var( --sopred-border );
	border-radius: var( --sopred-radius );
	box-shadow: var( --sopred-shadow-md );
	padding: clamp( 18px, 2.7vw, 30px );
}

body.sopred-modern-site.single-product div.product .price {
	color: var( --sopred-brand );
	font-weight: 750;
}

body.sopred-modern-site.single-product :where( .woocommerce-tabs, .related.products, .up-sells.upsells.products ) {
	background: var( --sopred-surface );
	border: 1px solid var( --sopred-border );
	border-radius: var( --sopred-radius );
	box-shadow: var( --sopred-shadow-sm );
	clear: both;
	margin-block-start: clamp( 26px, 4vw, 48px );
	padding: clamp( 20px, 3vw, 32px );
}

body.sopred-modern-site :where(
	.woocommerce form.login,
	.woocommerce form.register,
	.woocommerce form.checkout_coupon,
	.woocommerce-account .woocommerce-MyAccount-navigation,
	.woocommerce-account .woocommerce-MyAccount-content,
	.woocommerce-cart .cart-collaterals .cart_totals,
	.woocommerce-checkout #order_review,
	.woocommerce-checkout .woocommerce-billing-fields,
	.woocommerce-checkout .woocommerce-shipping-fields,
	table.shop_table
) {
	background: var( --sopred-surface );
	border: 1px solid var( --sopred-border );
	border-radius: var( --sopred-radius );
	box-shadow: var( --sopred-shadow-sm );
	padding: clamp( 18px, 3vw, 30px );
}

body.sopred-modern-site :where( .woocommerce-message, .woocommerce-info, .woocommerce-error ) {
	background: var( --sopred-surface );
	border-radius: var( --sopred-radius );
	box-shadow: var( --sopred-shadow-sm );
}

/* Product Documents Manager belongs to the same direct theme design. */
body.sopred-modern-site .pdmgr-product-documents {
	--pdmgr-accent: var( --sopred-brand );
	--pdmgr-border: var( --sopred-border );
	box-shadow: var( --sopred-shadow-md );
}

body.sopred-modern-site .pdmgr-document-card {
	box-shadow: var( --sopred-shadow-sm );
}

/* Direct HTML pre-footer conversion panel. */
.sopred-conversion {
	margin-block: clamp( 42px, 7vw, 82px ) clamp( 24px, 4vw, 48px );
}

.sopred-conversion__inner {
	align-items: center;
	background: var( --sopred-brand-deep );
	border: 1px solid rgba( 255, 255, 255, 0.12 );
	border-radius: var( --sopred-radius );
	box-shadow: var( --sopred-shadow-lg );
	color: rgba( 255, 255, 255, 0.86 );
	display: flex;
	gap: clamp( 24px, 5vw, 70px );
	justify-content: space-between;
	padding: clamp( 28px, 5vw, 58px );
}

.sopred-conversion__copy {
	max-width: 760px;
}

.sopred-conversion h2 {
	color: #fff;
	font-size: clamp( 2rem, 4vw, 3.4rem );
	line-height: 1.05;
	margin: 0 0 14px;
}

.sopred-conversion p {
	margin-block-end: 0;
}

.sopred-eyebrow {
	color: var( --sopred-brand );
	font-size: 0.82rem;
	font-weight: 750;
	letter-spacing: 0.12em;
	margin-block-end: 10px !important;
	text-transform: uppercase;
}

.sopred-conversion .sopred-eyebrow {
	color: rgba( 255, 255, 255, 0.76 );
}

.sopred-conversion__actions {
	display: flex;
	flex: 0 0 auto;
	flex-wrap: wrap;
	gap: 12px;
}

body.sopred-modern-site :where( .site-footer, .elementor-location-footer, footer[data-elementor-type="footer"] ) {
	border-block-start: 1px solid var( --sopred-border );
	box-shadow: 0 -10px 32px rgba( 38, 20, 49, 0.06 );
}

@media screen and ( max-width: 921px ) {
	body.sopred-modern-site .site-header {
		padding-block: 6px;
	}

	body.sopred-modern-site .ast-primary-header-bar {
		max-width: calc( 100% - 12px );
		width: calc( 100% - 12px );
	}

	.sopred-trust-strip__inner,
	.sopred-conversion__inner {
		align-items: flex-start;
		flex-direction: column;
	}

	.sopred-trust-strip__inner {
		padding-block: 12px;
	}

	body.sopred-modern-site.home .elementor-107 .elementor-element.elementor-element-a410116 {
		min-height: 560px;
	}

	body.sopred-modern-site.home .elementor-107 .elementor-element.elementor-element-efe05f9 {
		--margin-bottom: 48px;
		--margin-top: 105px;
		max-width: calc( 100% - 28px );
		padding: 28px 22px;
	}

	body.sopred-modern-site.single-product div.product :where( .woocommerce-product-gallery, .summary.entry-summary ) {
		padding: 18px;
	}

	.sopred-equipment-hero {
		grid-template-columns: 1fr;
	}

	.sopred-equipment-hero__facts {
		grid-template-columns: repeat( 3, 1fr );
		grid-template-rows: none;
	}

	.sopred-equipment-hero__facts div {
		border-block-end: 0;
		border-inline-end: 1px solid rgba( 255, 255, 255, 0.16 );
	}

	.sopred-equipment-hero__facts div:last-child {
		border-inline-end: 0;
	}

	.sopred-home-hero {
		grid-template-columns: 1fr;
	}

	.sopred-home-hero__image,
	.sopred-home-hero__image img {
		min-height: 300px;
	}

	.sopred-home-services__grid {
		grid-template-columns: 1fr;
	}
}

@media screen and ( max-width: 782px ) {
	.sopred-trust-list {
		align-items: flex-start;
		flex-direction: column;
		gap: 7px;
	}

	.sopred-button--compact {
		width: 100%;
	}

	body.sopred-modern-site :where(
		.elementor-widget-image-box > .elementor-widget-container,
		.elementor-widget-icon-box > .elementor-widget-container,
		.elementor-widget-testimonial > .elementor-widget-container,
		.elementor-widget-counter > .elementor-widget-container,
		.uagb-infobox__content-wrap,
		.woocommerce ul.products li.product,
		.blog .site-main article,
		.archive .site-main article
	):hover {
		transform: none;
	}

	body.sopred-modern-site.woocommerce-account :where( .woocommerce-MyAccount-navigation, .woocommerce-MyAccount-content ) {
		float: none;
		width: 100%;
	}
}

@media screen and ( max-width: 544px ) {
	.sopred-shell {
		width: calc( 100% - 20px );
	}

	body.sopred-modern-site :where(
		.elementor[data-elementor-type="wp-page"] > .e-con.e-parent,
		.entry-content > .elementor > .e-con.e-parent,
		.elementor[data-elementor-type="wp-page"] > .elementor-top-section,
		.entry-content > .elementor > .elementor-top-section,
		.entry-content > .wp-block-group
	) {
		margin-block: 14px;
		max-width: calc( 100% - 12px );
		padding: 18px 12px;
		width: calc( 100% - 12px );
	}

	body.sopred-modern-site.home .elementor-107 .elementor-element.elementor-element-a410116 {
		--overlay-opacity: 0.64;
		margin-block-start: 10px;
		min-height: 510px;
	}

	body.sopred-modern-site.home .elementor-107 .elementor-element.elementor-element-efe05f9 {
		--margin-bottom: 34px;
		--margin-top: 88px;
		max-width: calc( 100% - 20px );
		padding: 22px 15px;
	}

	body.sopred-modern-site.home .elementor-107 .elementor-element.elementor-element-647f6b9 .elementor-heading-title {
		font-size: clamp( 1.8rem, 9vw, 2.65rem );
	}

	.sopred-conversion__inner {
		padding: 24px 18px;
	}

	.sopred-conversion__actions,
	.sopred-conversion__actions .sopred-button {
		width: 100%;
	}

	.sopred-equipment-page {
		width: calc( 100% - 20px );
	}

	.sopred-equipment-hero__content {
		padding: 28px 22px;
	}

	.sopred-equipment-hero__facts {
		grid-template-columns: 1fr;
	}

	.sopred-equipment-hero__facts div {
		border-block-end: 1px solid rgba( 255, 255, 255, 0.16 );
		border-inline-end: 0;
		padding: 17px 22px;
	}

	.sopred-equipment-hero__facts div:last-child {
		border-block-end: 0;
	}

	.sopred-equipment-hero__actions,
	.sopred-equipment-hero__actions .sopred-button,
	.sopred-equipment-note,
	.sopred-equipment-note .sopred-button {
		width: 100%;
	}

	.sopred-equipment-note {
		align-items: flex-start;
		flex-direction: column;
	}

	.sopred-homepage {
		width: calc( 100% - 20px );
	}

	.sopred-home-hero__copy {
		padding: 28px 22px;
	}

	.sopred-home-hero__actions,
	.sopred-home-hero__actions .sopred-button,
	.sopred-home-cta,
	.sopred-home-cta .sopred-button {
		width: 100%;
	}

	.sopred-home-cta {
		align-items: flex-start;
		flex-direction: column;
	}
}

@media ( prefers-reduced-motion: reduce ) {
	body.sopred-modern-site :where( *, *::before, *::after ) {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}

@media print {
	.sopred-trust-strip,
	.sopred-conversion {
		display: none !important;
	}

	body.sopred-modern-site :where( * ) {
		box-shadow: none !important;
		transform: none !important;
	}
}
