/* Core rendering path: tokens, reset, type, layout, controls, accessibility. */
:root {
	--ec-primary: #173f5f;
	--ec-primary-strong: color-mix(in srgb, var(--ec-primary), #000 24%);
	--ec-accent: #f59e0b;
	--ec-text: #172033;
	--ec-header: #fff;
	--ec-navigation: #173f5f;
	--ec-muted: #5d6878;
	--ec-surface: #fff;
	--ec-subtle: #f5f7fa;
	--ec-border: #dce2e9;
	--ec-success: #137a4b;
	--ec-danger: #b42318;
	--ec-danger-strong: #8f1710;
	--ec-danger-soft: #fff0ef;
	--ec-loading-surface: rgb(255 255 255 / 90%);
	--ec-footer: #101b28;
	--ec-footer-text: #dcd7ed;
	--ec-footer-link: #fff;
	--ec-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--ec-logo-size: 42px;
	--ec-logo-width: 260px;
	--ec-logo-mobile-width: 160px;
	--ec-container: 1280px;
	--ec-reading: 760px;
	--ec-radius: 10px;
	--ec-density: 1;
	--ec-product-ratio: 4 / 5;
	--ec-shadow: 0 10px 30px rgb(20 34 50 / 8%);
	--ec-space-1: calc(.35rem * var(--ec-density));
	--ec-space-2: calc(.65rem * var(--ec-density));
	--ec-space-3: calc(1rem * var(--ec-density));
	--ec-space-4: calc(1.5rem * var(--ec-density));
	--ec-space-5: calc(2.25rem * var(--ec-density));
	--ec-space-6: calc(3.5rem * var(--ec-density));
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; text-size-adjust: 100%; }
body {
	display: flex;
	min-height: 100vh;
	min-height: 100dvh;
	flex-direction: column;
	margin: 0;
	background: var(--ec-surface);
	color: var(--ec-text);
	font-family: var(--ec-font);
	font-size: 1rem;
	line-height: 1.62;
	-webkit-font-smoothing: antialiased;
}
.site { display: flex; flex: 1 0 auto; flex-direction: column; }
.site > .site-main { flex: 1 0 auto; }
body.admin-bar .site-header { top: 32px; }
main { min-height: 40vh; }
a { color: var(--ec-primary); text-decoration-thickness: .08em; text-underline-offset: .16em; }
a:hover { color: var(--ec-primary-strong); }
img, svg, video { display: block; max-width: 100%; }
img { height: auto; }
figure { margin-inline: 0; }
iframe { max-width: 100%; }
hr { border: 0; border-top: 1px solid var(--ec-border); margin-block: var(--ec-space-5); }
h1, h2, h3, h4, h5, h6 { margin: 0 0 .6em; color: var(--ec-text); font-weight: 760; line-height: 1.15; text-wrap: balance; }
h1 { font-size: clamp(2rem, 4vw, 3.5rem); letter-spacing: -.035em; }
h2 { font-size: clamp(1.5rem, 2.6vw, 2.35rem); letter-spacing: -.025em; }
h3 { font-size: clamp(1.2rem, 2vw, 1.6rem); }
p { margin: 0 0 1em; }
ul, ol { padding-inline-start: 1.3rem; }
blockquote { margin: var(--ec-space-4) 0; padding-inline-start: var(--ec-space-4); border-inline-start: 4px solid var(--ec-accent); font-size: 1.12em; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: .8rem; border-bottom: 1px solid var(--ec-border); text-align: start; }
th { background: var(--ec-subtle); font-weight: 700; }

button, input, select, textarea { color: inherit; font: inherit; }
button, [type="button"], [type="submit"], [type="reset"] { cursor: pointer; }
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), select, textarea {
	width: 100%; min-height: 44px; padding: .72rem .85rem; border: 1px solid #aeb8c4; border-radius: calc(var(--ec-radius) * .65); background: #fff;
}
textarea { min-height: 8rem; resize: vertical; }
label { display: inline-block; margin-block-end: .35rem; font-weight: 650; }
input:focus, select:focus, textarea:focus { border-color: var(--ec-primary); outline: 3px solid color-mix(in srgb, var(--ec-primary), transparent 82%); outline-offset: 1px; }
::placeholder { color: #6b7380; opacity: 1; }

.container { width: min(100% - 2rem, var(--ec-container)); margin-inline: auto; }
.reading-column { width: min(100%, var(--ec-reading)); margin-inline: auto; }
.page-shell { padding-block: var(--ec-space-5) var(--ec-space-6); }
.site-main--front { overflow: clip; }
.entry-content > :where(:not(.alignwide):not(.alignfull)) { max-width: var(--ec-reading); margin-inline: auto; }
.entry-content > .alignwide { width: min(100%, var(--ec-container)); margin-inline: auto; }
.entry-content > .alignfull, .front-page-content > .alignfull { width: 100%; max-width: none; }
.front-page-content > :where(:not(.alignfull):not(.alignwide)) { width: min(100% - 2rem, var(--ec-container)); margin-inline: auto; }

.button, button.button, input[type="submit"], .wp-element-button, .wp-block-button__link, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button {
	display: inline-flex; min-height: 44px; align-items: center; justify-content: center; gap: .45rem; padding: .68rem 1.15rem; border: 1px solid transparent; border-radius: calc(var(--ec-radius) * .7); background: var(--ec-primary); color: #fff; font-weight: 750; line-height: 1.2; text-decoration: none; transition: background-color .16s ease, border-color .16s ease;
}
.button:hover, button.button:hover, input[type="submit"]:hover, .wp-element-button:hover, .wp-block-button__link:hover, .woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover { background: var(--ec-primary-strong); color: #fff; }
.button:active, button.button:active, input[type="submit"]:active, .wp-element-button:active, .wp-block-button__link:active, .woocommerce a.button:active, .woocommerce button.button:active, .woocommerce input.button:active { transform: none !important; }
.button--primary { background: var(--ec-primary); }
.icon-button { display: inline-grid; width: 44px; height: 44px; padding: 0; place-items: center; border: 0; background: transparent; color: currentColor; }
.icon-button > svg { width: 28px; height: 28px; }
.text-link { font-weight: 720; }
.eyebrow { margin-bottom: .45rem; color: var(--ec-primary); font-size: .76rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }

:focus-visible { outline: 3px solid var(--ec-primary); outline-offset: 3px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.screen-reader-text:focus, .skip-link:focus { z-index: 100000; top: .75rem; left: .75rem; width: auto; height: auto; padding: .75rem 1rem; clip: auto; background: #fff; color: #111; box-shadow: var(--ec-shadow); }
.skip-link { position: fixed !important; }

@media (min-width: 900px) {
	.content-with-sidebar { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, 300px); gap: var(--ec-space-5); }
}
@media (max-width: 782px) { body.admin-bar .site-header { top: 46px; } }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
@media print { .site-header, .site-footer, .announcement, .sticky-purchase, .sidebar { display: none !important; } a { color: inherit; } }

/* Site chrome and reusable non-commerce components. */
.announcement { position: relative; z-index: 50; background: var(--ec-primary); color: #fff; font-size: .9rem; }
.announcement__inner { display: flex; min-height: 38px; align-items: center; justify-content: center; gap: 1rem; text-align: center; }
.announcement p { margin: 0; }
.announcement a { color: #fff; font-weight: 720; }
.announcement__close { position: absolute; inset-inline-end: max(1rem, calc((100vw - var(--ec-container)) / 2)); width: 38px; height: 38px; }
.site-header { z-index: 40; border-bottom: 1px solid var(--ec-border); background: var(--ec-header); color: var(--ec-text); box-shadow: 0 3px 14px rgb(18 32 48 / 7%); }
.has-sticky-header .site-header { position: sticky; top: 0; transition: transform .2s ease; }
.has-sticky-header.header-scrolling-down .site-header { transform: translateY(-102%); }
.header-main { display: grid; min-height: 82px; grid-template-columns: max-content minmax(300px, 1fr) max-content; align-items: center; gap: clamp(2rem, 3vw, 3.5rem); }
.site-branding { min-width: max-content; line-height: 1.15; }
.custom-logo-link { display: block; width: var(--ec-logo-width); max-width: 100%; }
.custom-logo { display: block; width: 100%; height: auto; max-height: 54px; object-fit: contain; }
.site-title { color: var(--ec-text); font-family: "Sofia Pro", "Sofia Pro Soft", Avenir, "Avenir Next", Montserrat, var(--ec-font); font-size: var(--ec-logo-size); font-style: normal; font-weight: 600; letter-spacing: -.045em; line-height: .9; text-decoration: none; }
.site-title:hover { color: var(--ec-primary); }
.site-description { margin: .18rem 0 0; color: var(--ec-muted); font-size: .72rem; }
.nav-toggle { display: none; }
.header-search { width: 100%; justify-self: stretch; }
.search-form { position: relative; display: flex; width: 100%; }
.search-form .search-field { min-height: 50px; padding-inline: 1rem 4rem; border: 1px solid #9ca7b3; border-radius: 7px; background: #fff; color: var(--ec-text); }
.search-submit { position: absolute; inset-block: 0; inset-inline-end: 0; display: grid; width: 52px; padding: 0; place-items: center; border: 0; border-radius: 0 7px 7px 0; background: var(--ec-primary); color: #fff; }
.search-submit:hover { background: var(--ec-primary-strong); }
.search-suggestions { position: absolute; z-index: 70; inset-block-start: calc(100% + 6px); inset-inline: 0; overflow: hidden; border: 1px solid var(--ec-border); border-radius: var(--ec-radius); background: #fff; box-shadow: var(--ec-shadow); }
.search-suggestions__item { display: grid; min-height: 68px; grid-template-columns: 52px minmax(0, 1fr); align-items: center; gap: .75rem; padding: .55rem; color: var(--ec-text); text-decoration: none; }
.search-suggestions__item:hover, .search-suggestions__item[aria-selected="true"] { background: var(--ec-subtle); }
.search-suggestions__item img { width: 52px; height: 52px; border-radius: 6px; object-fit: cover; }
.search-suggestions__name, .search-suggestions__price { display: block; }
.search-suggestions__name { font-weight: 720; }
.search-suggestions__price, .search-suggestions__empty { color: var(--ec-muted); font-size: .85rem; }
.search-suggestions__empty { margin: 0; padding: .8rem; }
.header-actions { display: flex; align-items: stretch; gap: .4rem; }
.header-action { position: relative; display: flex; width: auto; min-width: 0; min-height: 54px; align-items: center; justify-content: center; gap: .55rem; padding: .35rem .75rem; border: 0; background: transparent; color: var(--ec-text); font-size: .86rem; font-synthesis: none; font-weight: 720; line-height: 1; text-decoration: none; white-space: nowrap; }
.header-action:hover { border-radius: 7px; background: var(--ec-subtle); color: var(--ec-primary); }
.header-action > svg:first-child { width: 28px; height: 28px; flex: 0 0 28px; overflow: visible; }
.header-action > svg:last-child:not(:first-child) { width: 15px; height: 15px; flex: 0 0 15px; }
.header-action__text { display: block; text-align: left; }
.header-dropdown { position: relative; flex: 0 0 auto; }
.header-help, .header-account, .header-mini-cart { width: auto; }
.header-dropdown > summary { cursor: pointer; list-style: none; }
.header-dropdown > summary::-webkit-details-marker { display: none; }
.header-dropdown[open] > summary { border-radius: 9px; background: var(--ec-subtle); color: var(--ec-primary); box-shadow: inset 0 0 0 2px var(--ec-primary); }
.header-dropdown[open] > summary > svg:last-child { transform: rotate(180deg); }
.header-dropdown > summary > svg:last-child { transition: transform .16s ease; }
.header-dropdown__panel, .header-mini-cart__panel { position: absolute; z-index: 76; inset-block-start: calc(100% + 8px); inset-inline-end: 0; border: 1px solid var(--ec-border); border-radius: 12px; background: #fff; color: var(--ec-text); box-shadow: 0 18px 48px rgb(20 34 50 / 17%); animation: ec-popover-in .16s ease-out both; }
.header-dropdown__panel { display: grid; width: min(88vw, 270px); padding: .65rem; }
.header-dropdown__panel::before { position: absolute; top: -6px; right: 24px; width: 11px; height: 11px; border-top: 1px solid var(--ec-border); border-left: 1px solid var(--ec-border); background: #fff; content: ""; transform: rotate(45deg); }
@keyframes ec-popover-in { from { opacity: 0; transform: translateY(-6px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
.header-dropdown__panel > a:not(.button) { position: relative; z-index: 1; padding: .68rem .7rem; border-radius: 6px; color: var(--ec-text); font-size: .88rem; text-decoration: none; }
.header-dropdown__panel > a:not(.button):hover { background: var(--ec-subtle); color: var(--ec-primary); }
.header-dropdown__title { margin: 0; padding: .45rem .7rem .6rem; border-bottom: 1px solid var(--ec-border); font-weight: 780; }
.header-sign-in { margin: .65rem .55rem .45rem; }
.header-account__note { margin: 0; padding: .35rem .7rem .5rem; color: var(--ec-muted); font-size: .78rem; text-align: left; }
.header-account__note a { font-weight: 700; }
.header-cart { min-width: 0; }
.header-cart__icon { position: relative; display: grid; width: 28px; height: 28px; flex: 0 0 28px; place-items: center; }
.header-cart__icon > svg { width: 28px; height: 28px; }
.header-cart__count { position: absolute; inset: 9px 4px 3px; display: grid; min-width: 0; padding: 0; overflow: hidden; place-items: center; color: currentColor; font-size: .5rem; font-variant-numeric: tabular-nums; font-weight: 850; letter-spacing: -.04em; line-height: 1; text-align: center; }
.primary-navigation { position: relative; background: var(--ec-navigation); color: #fff; }
.primary-menu, .primary-menu ul, .secondary-menu, .footer-menu { margin: 0; padding: 0; list-style: none; }
.primary-menu { display: flex; align-items: center; gap: clamp(1rem, 2vw, 2rem); }
.primary-menu > li { position: static; display: flex; align-items: center; }
.primary-menu a { display: flex; min-height: 48px; align-items: center; color: #fff; font-size: .9rem; font-weight: 680; text-decoration: none; }
.primary-menu > li > a:hover, .primary-menu > .current-menu-item > a { color: #fff; text-decoration: underline; text-underline-offset: .22em; }
.submenu-toggle { display: grid; width: 34px; height: 44px; padding: 0; place-items: center; border: 0; background: transparent; color: currentColor; }
.submenu-toggle svg { width: 16px; height: 16px; transition: transform .16s ease; }
.submenu-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.primary-menu > li > .sub-menu { position: absolute; z-index: 60; inset-block-start: 100%; inset-inline: 0; display: none; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1.4rem 2rem; width: 100%; padding: 1.7rem; border: 1px solid var(--ec-border); border-top: 0; border-radius: 0 0 var(--ec-radius) var(--ec-radius); background: #fff; box-shadow: 0 22px 46px rgb(16 4 41 / 16%); }
.primary-menu > li.submenu-open > .sub-menu, .primary-menu > li:focus-within > .sub-menu { display: grid; }
.primary-menu > li > .sub-menu > li { min-width: 0; }
.primary-menu > li > .sub-menu > li > a { min-height: 36px; color: var(--ec-text); font-weight: 780; }
.primary-menu > li > .sub-menu .sub-menu { position: static; display: block; min-width: 0; padding: .15rem 0 0; border: 0; background: transparent; box-shadow: none; }
.primary-menu > li > .sub-menu .sub-menu a { min-height: 34px; padding: .25rem 0; color: var(--ec-muted); font-size: .85rem; font-weight: 520; }
.primary-menu > li > .sub-menu .sub-menu a:hover { color: var(--ec-primary); }
.primary-menu > li > .sub-menu .submenu-toggle { display: none; }
.primary-navigation .container { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.secondary-menu { display: flex; gap: 1rem; }
.secondary-menu a { color: #fff; font-size: .82rem; font-weight: 650; text-decoration: none; }
@media (min-width: 821px) {
	.primary-menu { column-gap: 2.25rem; }
	.primary-menu > li { gap: 0; margin: 0; }
	/* Keep dropdown indicators inside the shared inter-item space so every label
	 * begins after the same visual gap, whether it has a submenu or not. */
	.primary-menu > li > .submenu-toggle { width: 24px; height: 48px; margin: 0 -24px 0 0; }
	.primary-menu > li > .submenu-toggle svg { width: 14px; height: 14px; }
}
body.mega-menu-open::before { position: fixed; z-index: 35; inset: 0; pointer-events: none; background: rgb(13 45 72 / 58%); content: ""; }
.nav-scrim { display: none; }
.header-mini-cart { position: relative; }
.header-mini-cart > summary { cursor: pointer; list-style: none; }
.header-mini-cart > summary::-webkit-details-marker { display: none; }
.header-mini-cart__panel { width: min(92vw, 410px); padding: 1rem; }
.header-mini-cart__panel::before { position: absolute; top: -6px; right: 28px; width: 11px; height: 11px; border-top: 1px solid var(--ec-border); border-left: 1px solid var(--ec-border); background: #fff; content: ""; transform: rotate(45deg); }
.header-mini-cart__panel .woocommerce-mini-cart { display: grid; max-height: var(--ec-mini-cart-height); gap: 0; margin: 0 !important; padding: 0 .2rem 0 0 !important; overflow-y: auto; overscroll-behavior: contain; list-style: none; scrollbar-gutter: stable; scrollbar-width: thin; }
.header-mini-cart__panel .mini_cart_item { position: relative; min-height: 92px; margin: 0 !important; padding: 14px 38px 14px 82px !important; border-bottom: 1px solid var(--ec-border); }
.header-mini-cart__panel .mini_cart_item > a:not(.remove) { display: block; min-height: 42px; color: var(--ec-text); font-size: .92rem; font-weight: 750; line-height: 1.25; text-decoration: none; }
.header-mini-cart__panel .mini_cart_item > a:not(.remove):hover { color: var(--ec-primary); text-decoration: underline; text-underline-offset: .15em; }
.header-mini-cart__panel .mini_cart_item img { position: absolute !important; top: 14px !important; left: 8px !important; float: none !important; width: 62px !important; height: 62px !important; margin: 0 !important; border: 1px solid var(--ec-border); border-radius: 9px; background: var(--ec-subtle); object-fit: contain; }
.header-mini-cart__panel .remove { position: absolute !important; z-index: 2; top: 14px; right: 6px; }
.header-mini-cart__panel a.remove, .woocommerce a.remove {
	display: inline-flex !important; width: 30px; height: 30px; align-items: center !important; justify-content: center !important; padding: 0 !important; border: 1px solid transparent !important; border-radius: 50% !important; background: transparent !important; color: var(--ec-danger) !important; font-size: 0 !important; line-height: 1 !important; text-decoration: none !important; transition: background-color .16s ease, border-color .16s ease, color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.header-mini-cart__panel a.remove::before, .header-mini-cart__panel a.remove::after, .woocommerce a.remove::before, .woocommerce a.remove::after { position: absolute; top: 50%; left: 50%; display: block; width: 14px; height: 2px; margin: -1px 0 0 -7px; background: currentColor; content: ""; transform: rotate(45deg); transform-origin: center; }
.header-mini-cart__panel a.remove::after, .woocommerce a.remove::after { transform: rotate(-45deg); }
.header-mini-cart__panel a.remove:hover, .woocommerce a.remove:hover { border-color: rgb(180 35 24 / 18%) !important; background: var(--ec-danger-soft) !important; color: var(--ec-danger-strong) !important; box-shadow: 0 3px 10px rgb(180 35 24 / 12%); transform: scale(1.04); }
.header-mini-cart__panel a.remove:focus-visible, .woocommerce a.remove:focus-visible { border-color: var(--ec-danger) !important; outline: 3px solid rgb(180 35 24 / 18%); outline-offset: 2px; }
.header-mini-cart__panel .quantity { display: block; margin-top: .35rem; color: var(--ec-muted); font-size: .84rem; }
.header-mini-cart__panel .woocommerce-mini-cart__total { display: flex; justify-content: space-between; gap: 1rem; margin: .85rem 0 0; padding: .85rem .25rem 0; border-top: 0; color: var(--ec-text); }
.header-mini-cart__panel .woocommerce-mini-cart__buttons { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; margin: .8rem 0 0; }
.header-mini-cart__panel .woocommerce-mini-cart__buttons a.button { display: inline-flex !important; width: 100%; min-height: 44px; align-items: center; justify-content: center; margin: 0 !important; padding: .68rem 1.15rem !important; border: 1px solid var(--ec-primary) !important; border-radius: calc(var(--ec-radius) * .7) !important; background: var(--ec-primary) !important; color: #fff !important; font-size: .92rem; font-weight: 750; line-height: 1.2; text-align: center; text-decoration: none; }
.header-mini-cart__panel .woocommerce-mini-cart__buttons a.button:hover { border-color: var(--ec-primary-strong) !important; background: var(--ec-primary-strong) !important; color: #fff !important; }
.header-mini-cart__panel .woocommerce-mini-cart__empty-message { margin: 0; padding: 1.5rem .75rem; color: var(--ec-muted); text-align: center; }

/* One reusable loading treatment for WooCommerce AJAX regions. */
.blockUI.blockOverlay {
	background: var(--ec-loading-surface) !important;
	opacity: 1 !important;
	border-radius: inherit;
}
.blockUI.blockOverlay::before {
	position: absolute !important; top: 50% !important; left: 50% !important; width: 32px !important; height: 32px !important; margin: -16px 0 0 -16px !important; border: 3px solid color-mix(in srgb, var(--ec-primary), transparent 82%) !important; border-top-color: var(--ec-primary) !important; border-radius: 50% !important; background: none !important; content: "" !important; animation: ec-loading-spin .7s linear infinite !important;
}
@keyframes ec-loading-spin { to { transform: rotate(360deg); } }
.ec-is-processing { position: relative; pointer-events: none; }
.ec-is-processing::before { position: absolute; z-index: 5; inset: -.25rem; border-radius: inherit; background: var(--ec-loading-surface); content: ""; }
.ec-is-processing::after { position: absolute; z-index: 6; top: 50%; left: 50%; width: 32px; height: 32px; margin: -16px 0 0 -16px; border: 3px solid color-mix(in srgb, var(--ec-primary), transparent 82%); border-top-color: var(--ec-primary); border-radius: 50%; content: ""; animation: ec-loading-spin .7s linear infinite; }

.breadcrumbs { padding-block: 1rem; color: var(--ec-muted); font-size: .82rem; }
.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: .3rem; margin: 0; padding: 0; list-style: none; }
.breadcrumbs li { display: inline-flex; align-items: center; gap: .25rem; }
.breadcrumbs svg { width: 14px; }
.archive-header { max-width: var(--ec-reading); margin-bottom: var(--ec-space-5); }
.archive-description { color: var(--ec-muted); font-size: 1.08rem; }
.post-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: var(--ec-space-4); }
.post-card { overflow: hidden; border: 1px solid var(--ec-border); border-radius: var(--ec-radius); background: #fff; }
.post-card__image { display: block; aspect-ratio: 16 / 9; overflow: hidden; }
.post-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease; }
.post-card:hover .post-card__image img { transform: scale(1.02); }
.post-card__body { padding: var(--ec-space-4); }
.post-card .entry-title { font-size: 1.3rem; }
.post-card .entry-title a, .search-result h2 a { color: var(--ec-text); text-decoration: none; }
.entry-meta { display: flex; flex-wrap: wrap; gap: .75rem; margin-bottom: .65rem; color: var(--ec-muted); font-size: .8rem; }
.entry-header { margin-bottom: var(--ec-space-4); }
.entry-hero { overflow: hidden; margin-block: 0 var(--ec-space-5); border-radius: var(--ec-radius); }
.entry-content { overflow-wrap: anywhere; }
.entry-content > * + * { margin-block-start: 1.15em; }
.entry-footer { margin-top: var(--ec-space-5); }
.tag-links { display: flex; flex-wrap: wrap; gap: .5rem; }
.tag-links a { padding: .25rem .6rem; border-radius: 999px; background: var(--ec-subtle); font-size: .82rem; text-decoration: none; }
.search-result { display: grid; grid-template-columns: minmax(90px, 160px) 1fr; gap: 1.2rem; padding-block: 1.2rem; border-bottom: 1px solid var(--ec-border); }
.search-result__image img { width: 100%; aspect-ratio: 1; border-radius: var(--ec-radius); object-fit: cover; }
.search-result h2 { margin-bottom: .35rem; font-size: 1.3rem; }
.empty-state { padding-block: var(--ec-space-6); text-align: center; }
.empty-state .search-form { max-width: 540px; margin: 1.5rem auto; }
.sidebar { margin-top: var(--ec-space-5); }
.widget { margin-bottom: var(--ec-space-4); padding: 1rem; border: 1px solid var(--ec-border); border-radius: var(--ec-radius); }
.widget__title { font-size: 1.05rem; }
.widget ul { margin: 0; padding: 0; list-style: none; }
.widget li + li { margin-top: .4rem; }
.pagination .nav-links { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: var(--ec-space-5); }
.page-numbers { display: grid; min-width: 44px; min-height: 44px; padding: .45rem; place-items: center; border: 1px solid var(--ec-border); border-radius: 7px; text-decoration: none; }
.page-numbers.current { border-color: var(--ec-primary); background: var(--ec-primary); color: #fff; }
.post-navigation { margin-block: var(--ec-space-5); }
.post-navigation .nav-links { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.post-navigation a { display: grid; min-height: 70px; padding: .8rem; border: 1px solid var(--ec-border); border-radius: var(--ec-radius); text-decoration: none; }
.post-navigation span { color: var(--ec-muted); font-size: .78rem; }
.comments-area { margin-top: var(--ec-space-6); padding-top: var(--ec-space-4); border-top: 1px solid var(--ec-border); }
.comment-list { padding: 0; list-style: none; }
.comment-body { margin-block: 1rem; padding: 1rem; border: 1px solid var(--ec-border); border-radius: var(--ec-radius); }

.site-footer { flex: 0 0 auto; margin-top: var(--ec-space-6); background: var(--ec-footer); color: var(--ec-footer-text); }
.site-footer a { color: var(--ec-footer-link); }
.site-conversion-cta { margin-top: var(--ec-space-6); padding-block: clamp(2rem, 5vw, 4.5rem); background: var(--ec-subtle); }
.site-conversion-cta + .site-footer { margin-top: 0; }
.site-conversion-cta__inner { display: flex; align-items: center; justify-content: space-between; gap: clamp(1.25rem, 4vw, 4rem); }
.site-conversion-cta__inner > div { max-width: 760px; }
.site-conversion-cta__inner h2 { margin-bottom: .4rem; }
.site-conversion-cta__inner p:not(.eyebrow) { margin: 0; color: var(--ec-muted); }
.site-conversion-cta__inner .button { min-width: 160px; flex: 0 0 auto; }
.footer-newsletter { border-bottom: 1px solid rgb(255 255 255 / 14%); background: color-mix(in srgb, var(--ec-footer), #fff 4%); }
.footer-newsletter__inner { display: grid; grid-template-columns: minmax(220px, .85fr) minmax(340px, 1.15fr); align-items: center; gap: clamp(1.5rem, 5vw, 5rem); padding-block: clamp(2rem, 5vw, 3.75rem); }
.footer-newsletter__copy h2 { margin-bottom: .45rem; color: var(--ec-footer-link); font-size: clamp(1.45rem, 3vw, 2.2rem); }
.footer-newsletter__copy p { max-width: 620px; margin: 0; }
.footer-newsletter__form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .65rem; }
.footer-newsletter__form input { min-height: 50px; border-color: rgb(255 255 255 / 35%); background: #fff; color: var(--ec-text); }
.footer-newsletter__form button { min-height: 50px; background: var(--ec-footer-link); color: var(--ec-footer); }
.footer-newsletter__form button:hover { background: color-mix(in srgb, var(--ec-footer-link), #000 10%); color: var(--ec-footer); }
.footer-newsletter__privacy { grid-column: 1 / -1; margin: 0; color: var(--ec-footer-text); font-size: .76rem; }
.footer-newsletter__setup { margin: 0; padding: .8rem; border: 1px dashed rgb(255 255 255 / 35%); border-radius: 8px; }
.footer-intro { display: grid; grid-template-columns: minmax(180px, .7fr) minmax(260px, 1.3fr); gap: var(--ec-space-4); padding-block: var(--ec-space-5); border-bottom: 1px solid rgb(255 255 255 / 14%); }
.footer-intro__title { margin: 0; color: var(--ec-footer-link); font-size: clamp(1.45rem, 3vw, 2.2rem); font-weight: 780; letter-spacing: -.025em; }
.footer-intro__copy { max-width: 680px; margin: 0; color: var(--ec-footer-text); }
.footer-widgets { display: grid; gap: var(--ec-space-4); padding-block: var(--ec-space-5); }
.footer-widgets--1 { grid-template-columns: 1fr; }
.footer-widgets--2 { grid-template-columns: repeat(2, 1fr); }
.footer-widgets--3 { grid-template-columns: repeat(3, 1fr); }
.footer-widgets--4 { grid-template-columns: repeat(4, 1fr); }
.site-footer .widget { border: 0; padding: 0; }
.site-footer .widget__title, .site-footer .widget h2, .site-footer .widget h3 { color: var(--ec-footer-link); }
.footer-bottom { display: flex; min-height: 72px; align-items: center; justify-content: space-between; gap: 1rem; border-top: 1px solid rgb(255 255 255 / 14%); font-size: .84rem; }
.footer-bottom p { margin: 0; }
.footer-menu { display: flex; flex-wrap: wrap; gap: 1rem; }

@media (min-width: 900px) { .sidebar { margin-top: 0; } }
@media (max-width: 820px) {
	.header-main { position: relative; min-height: 68px; grid-template-columns: 92px minmax(0, 1fr) 92px; grid-template-rows: 68px auto; gap: 0 .5rem; }
	.nav-toggle { display: grid; }
	.site-branding { position: absolute; top: 12px; left: 50%; display: flex; width: calc(100% - 200px); max-width: none; min-width: 0; min-height: 44px; align-items: center; justify-content: center; text-align: center; transform: translateX(-50%); }
	.site-title { display: flex; min-height: 44px; align-items: center; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
	.site-branding .custom-logo-link { width: var(--ec-logo-mobile-width); max-width: 100%; }
	.site-branding .custom-logo { width: 100%; height: auto; max-height: 40px; object-fit: contain; }
	.header-actions { grid-column: 3; grid-row: 1; align-items: center; justify-self: end; gap: .25rem; }
	.header-search { grid-column: 1 / -1; grid-row: 2; width: 100%; padding-bottom: .75rem; }
	.site-description, .header-action__text, .header-action > svg:last-child:not(:first-child) { display: none; }
	.site-title { width: 100%; justify-content: center; font-size: min(var(--ec-logo-size), clamp(1.45rem, 7vw, 1.8rem)); }
	.header-action { width: 44px; min-width: 44px; min-height: 44px; padding: 0; }
	.header-dropdown, .header-help, .header-account, .header-mini-cart { width: 44px; }
	.header-help { position: absolute; top: 12px; left: 48px; display: block; }
	.header-help .header-dropdown__panel { right: auto; left: -48px; }
	.header-help .header-dropdown__panel::before { right: auto; left: 64px; }
	.primary-navigation { position: fixed; z-index: 80; inset: 0 auto 0 0; width: min(88vw, 360px); overflow-y: auto; border: 0; background: #fff; color: var(--ec-text); box-shadow: var(--ec-shadow); transform: translateX(-105%); transition: transform .2s ease; }
	.primary-navigation:not(.is-open) { visibility: hidden; }
	.primary-navigation.is-open { visibility: visible; transform: translateX(0); }
	body.nav-open .nav-scrim { position: fixed; z-index: 70; inset: 0; display: block; width: 100%; height: 100%; padding: 0; border: 0; border-radius: 0; background: rgb(13 45 72 / 58%); cursor: default; }
	body.nav-open .nav-toggle { position: relative; z-index: 90; border-radius: 7px; background: #fff; color: var(--ec-text); }
	.primary-navigation .container { width: 100%; padding: 6rem 1rem 2rem; }
	.primary-navigation .container { display: block; }
	.primary-menu { display: block; }
	.primary-menu li { position: relative; display: block; min-width: 0; }
	.primary-menu > li { border-bottom: 1px solid var(--ec-border); }
	.primary-menu a { min-height: 48px; padding: .5rem 3rem .5rem .5rem; color: var(--ec-text); -webkit-tap-highlight-color: transparent; }
	.primary-navigation .primary-menu a:hover, .primary-navigation .primary-menu a:focus, .primary-navigation .primary-menu a:active, .primary-navigation .primary-menu .current-menu-item > a { background: var(--ec-subtle); color: var(--ec-primary); text-decoration: none; }
	.primary-menu .submenu-toggle { position: absolute; z-index: 2; top: 2px; right: 0; display: grid; width: 44px; height: 44px; margin: 0; padding: 0; place-items: center; border: 0; border-radius: 6px; background: transparent; color: var(--ec-text); appearance: none; }
	.primary-menu .submenu-toggle:hover, .primary-menu .submenu-toggle:active { background: var(--ec-subtle); color: var(--ec-primary); }
	.primary-menu .submenu-toggle:focus-visible { outline-offset: -3px; }
	.primary-menu .submenu-toggle svg { display: block; width: 18px; height: 18px; margin: 0; pointer-events: none; }
	.primary-menu .sub-menu, .primary-menu > li > .sub-menu { position: static; display: none; width: 100%; padding: 0 0 .65rem .8rem; border: 0; background: transparent; box-shadow: none; }
	.primary-menu > li:focus-within > .sub-menu { display: none; }
	.primary-menu li.submenu-open > .sub-menu { display: block; }
	.primary-menu > li > .sub-menu > li > a { min-height: 42px; color: var(--ec-text); }
	.primary-menu > li > .sub-menu .submenu-toggle { display: grid; }
	.primary-menu > li > .sub-menu .sub-menu { display: none; padding-inline-start: .8rem; }
	.primary-menu > li > .sub-menu li.submenu-open > .sub-menu { display: block; }
	.secondary-menu { display: block; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--ec-border); }
	.secondary-menu a { color: var(--ec-text); }
	.secondary-menu a:hover, .secondary-menu a:focus, .secondary-menu a:active { color: var(--ec-primary); }
	body.nav-open { overflow: hidden; }
	body.admin-bar .primary-navigation { top: 46px; }
	body.admin-bar .nav-scrim { top: 46px; height: calc(100% - 46px); }
	.footer-intro, .footer-widgets, .footer-newsletter__inner { grid-template-columns: 1fr; }
	.site-conversion-cta__inner { align-items: flex-start; flex-direction: column; }
	.site-conversion-cta__inner .button { width: 100%; }
	.footer-newsletter__form { grid-template-columns: 1fr; }
	.footer-newsletter__privacy { grid-column: 1; }
	.front-page-content > .alignfull > .wp-block-group__inner-container { width: min(100% - 2rem, var(--ec-container)); margin-inline: auto; }
	.front-page-content > :not(.alignfull) { width: min(calc(100% - 2rem), var(--ec-container)); margin-inline: auto; }
	.front-page-content :where(.wp-block-heading, .wp-block-post-title) { overflow-wrap: anywhere; }
}
@media (max-width: 560px) {
	.footer-bottom { align-items: flex-start; flex-direction: column; justify-content: center; padding-block: 1rem; }
	.post-navigation .nav-links { grid-template-columns: 1fr; }
	.search-result { grid-template-columns: 86px 1fr; }
}
