﻿/*
 * Final accessibility, shell and responsive refinements.
 * WooCommerce and Blocksy remain responsible for product state.
 */
html { --theme-frame-size: 0px !important; }
html, body { max-width: 100%; overflow-x: hidden; }
body.ae-theme,
body.ae-theme[data-frame],
body.ae-theme #page,
body.ae-theme .site,
body.ae-theme #main-container,
body.ae-theme main,
body.ae-theme .site-main {
	margin: 0;
	border: 0 !important;
	outline: 0;
	box-shadow: none;
}
body.ae-theme #main-container { width: 100%; }
body.ae-theme .ae-shell { max-width: min(100% - (var(--ae-gutter) * 2), var(--ae-shell-width)); }
.ae-utility-bar { position: relative; z-index: 310; }
.ae-utility-bar__links { align-items: stretch; gap: 12px; }
.ae-utility-switcher { position: relative; color: rgba(255, 255, 255, .76); text-transform: none; }
.ae-utility-switcher summary { display: flex; align-items: center; gap: 5px; min-height: 25px; padding: 0 3px; color: inherit; cursor: pointer; list-style: none; transition: color .2s ease; }
.ae-utility-switcher summary::-webkit-details-marker { display: none; }
.ae-utility-switcher summary:hover, .ae-utility-switcher summary:focus-visible, .ae-utility-switcher[open] summary { color: var(--aev2-gold-light, #dfbf8e); }
.ae-utility-switcher summary:focus-visible { outline: 1px solid var(--aev2-gold, #c8a16b); outline-offset: 2px; }
.ae-utility-switcher__chevron { width: 5px; height: 5px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: translateY(-1px) rotate(45deg); transition: transform .2s ease; }
.ae-utility-switcher[open] .ae-utility-switcher__chevron { transform: translateY(1px) rotate(225deg); }
.ae-utility-switcher__panel { position: absolute; top: calc(100% + 7px); right: 0; z-index: 5; width: 210px; padding: 7px; border: 1px solid rgba(200, 161, 107, .42); background: #080808; box-shadow: 0 18px 40px rgba(0, 0, 0, .35); }
.ae-utility-switcher__current { position: relative; display: grid; width: 100%; padding: 10px 11px; border: 0; background: rgba(255, 255, 255, .04); color: #fff; font: inherit; letter-spacing: .04em; text-align: left; cursor: pointer; }
.ae-utility-switcher__current::after { content: "✓"; position: absolute; right: 18px; color: var(--aev2-gold, #c8a16b); font-size: 11px; }
.ae-utility-switcher__current small { margin-top: 4px; padding-right: 20px; color: rgba(255, 255, 255, .58); font-size: 8px; font-weight: 400; letter-spacing: .02em; line-height: 1.45; }
.ae-utility-switcher__current:hover, .ae-utility-switcher__current:focus-visible { background: rgba(200, 161, 107, .13); outline: 0; }
.ae-wordmark { flex-direction: column; align-items: center; gap: 4px; white-space: nowrap; }
.ae-footer-brand__logo { flex-direction: row; align-items: center; gap: 9px; white-space: nowrap; }
body.ae-theme .ae-wordmark > .ae-wordmark__mark { display: block; width: auto !important; max-width: none; height: clamp(26px, 2.5vw, 34px) !important; flex: 0 0 auto; object-fit: contain; filter: invert(80%) sepia(28%) saturate(650%) hue-rotate(352deg) brightness(94%) contrast(88%); transform: none; }
.ae-footer-brand__logo .ae-wordmark__mark { width: auto; height: 22px; }
.ae-welcome-modal[hidden] { display: none !important; }
.ae-welcome-modal { position: fixed; inset: 0; z-index: 500; display: grid; place-items: center; padding: 24px; }
.ae-welcome-modal__backdrop { position: absolute; inset: 0; background: rgba(5, 5, 5, .72); }
.ae-welcome-modal__dialog { position: relative; z-index: 1; width: min(100%, 560px); padding: clamp(30px, 6vw, 64px); border: 1px solid rgba(200, 161, 107, .6); background: var(--aev2-cream, #f4efe9); box-shadow: 0 28px 80px rgba(0, 0, 0, .3); }
.ae-welcome-modal__dialog h2 { max-width: 430px; margin: 0 0 16px; color: var(--aev2-text, #171310); font-family: var(--ae-display); font-size: clamp(34px, 6vw, 58px); font-weight: 400; line-height: .95; }
.ae-welcome-modal__dialog > p:not(.aev2-kicker) { max-width: 420px; margin: 0 0 24px; color: var(--aev2-muted, #70675f); }
.ae-welcome-modal__close { position: absolute; top: 14px; right: 14px; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0; border: 1px solid var(--aev2-border, #d9cfc5); background: transparent; color: var(--aev2-text, #171310); cursor: pointer; }
.ae-welcome-modal__close:hover, .ae-welcome-modal__close:focus-visible { border-color: var(--aev2-gold, #c8a16b); background: var(--aev2-gold, #c8a16b); }
body.ae-modal-is-open { overflow: hidden; }
.ae-online-services { padding: clamp(44px, 7vw, 86px) 0; background: #efe6dd; }
.ae-online-services__heading { max-width: 650px; margin-bottom: 30px; }
.ae-online-services__heading h2 { margin: 0; color: var(--aev2-text); font-family: var(--ae-display); font-size: clamp(32px, 4vw, 52px); font-weight: 400; line-height: .98; }
.ae-online-services__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--aev2-border); border-left: 1px solid var(--aev2-border); }
.ae-online-service { min-width: 0; padding: 24px clamp(16px, 2.3vw, 32px) 20px; border-right: 1px solid var(--aev2-border); border-bottom: 1px solid var(--aev2-border); }
.ae-online-service__number { display: block; margin-bottom: 24px; color: var(--aev2-gold); font-size: 10px; letter-spacing: .15em; }
.ae-online-service h3 { margin: 0 0 8px; color: var(--aev2-text); font-size: 22px; font-weight: 400; line-height: 1.1; }
.ae-online-service p { margin: 0; color: var(--aev2-muted); font-size: 12px; line-height: 1.65; }
.ae-floating-contact { position: fixed; right: max(18px, env(safe-area-inset-right)); bottom: max(18px, env(safe-area-inset-bottom)); z-index: 280; display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; border: 1px solid var(--aev2-gold-light); border-radius: 50%; background: var(--aev2-black); color: var(--aev2-gold-light) !important; box-shadow: 0 10px 30px rgba(0, 0, 0, .2); text-decoration: none !important; transition: transform .2s ease, background-color .2s ease, color .2s ease; }
.ae-floating-contact:hover, .ae-floating-contact:focus-visible { background: var(--aev2-gold); color: var(--aev2-black) !important; transform: translateY(-2px); }
.ae-floating-contact.is-suppressed { display: none !important; }
.ae-single-product__promises { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin: 36px 0 0; border: 1px solid var(--ae-border); background: var(--ae-border); }
.ae-single-product__promise { min-width: 0; padding: 18px; background: var(--ae-card); }
.ae-single-product__promise .ae-icon { margin-bottom: 10px; color: var(--ae-gold); }
.ae-single-product__promise strong, .ae-single-product__promise span { display: block; }
.ae-single-product__promise strong { margin-bottom: 4px; color: var(--ae-text); font-family: var(--ae-display); font-size: 20px; font-weight: 500; line-height: 1.05; }
.ae-single-product__promise span { color: var(--ae-muted); font-size: 11px; line-height: 1.5; }
.ae-product-editorial { display: grid; gap: clamp(48px, 7vw, 88px); padding-top: clamp(58px, 8vw, 104px); }
.ae-product-editorial__split { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(320px, .92fr); gap: clamp(34px, 7vw, 96px); align-items: center; }
.ae-product-editorial__split--reverse .ae-product-editorial__media { order: 2; }
.ae-product-editorial__media { min-width: 0; overflow: hidden; background: #efe7df; }
.ae-product-editorial__media:empty { display: none; }
.ae-product-editorial__media img { display: block; width: 100%; aspect-ratio: 1 / 1.08; object-fit: contain; }
.ae-product-editorial__copy { min-width: 0; }
.ae-product-editorial__copy h2 { max-width: 540px; margin: 0 0 22px; color: var(--ae-text) !important; font-family: var(--ae-display); font-size: clamp(38px, 5vw, 66px); font-weight: 400; line-height: .92; }
.ae-product-editorial__copy > p:not(.ae-eyebrow), .ae-product-editorial__body { color: var(--ae-muted); font-size: 13px; line-height: 1.8; }
.ae-product-editorial__body > :first-child { margin-top: 0; }
.ae-product-editorial__body > :last-child { margin-bottom: 0; }
.ae-product-editorial__body ul { padding-left: 18px; }
.ae-product-editorial__copy .ae-btn { margin-top: 18px; }
.ae-product-editorial__details { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--ae-border); border-left: 1px solid var(--ae-border); }
.ae-product-editorial__details article { min-width: 0; padding: clamp(22px, 3vw, 38px); border-right: 1px solid var(--ae-border); border-bottom: 1px solid var(--ae-border); }
.ae-product-editorial__details article > span { color: var(--ae-gold); font-size: 9px; letter-spacing: .14em; }
.ae-product-editorial__details h3 { margin: 18px 0 9px; color: var(--ae-text) !important; font-family: var(--ae-display); font-size: 27px; font-weight: 500; line-height: 1; }
.ae-product-editorial__details p { margin: 0; color: var(--ae-muted); font-size: 11px; line-height: 1.65; overflow-wrap: anywhere; }
.ae-site-footer__grid { grid-template-columns: 1.4fr repeat(2, minmax(0, 1fr)); }
.ae-site-footer__grid > * { min-width: 0; }
@media (min-width: 861px) { .ae-single-product__summary { position: sticky; top: 24px; } }
@media (max-width: 800px) { .ae-online-services__grid, .ae-single-product__promises { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ae-product-editorial__split { grid-template-columns: 1fr; } .ae-product-editorial__split--reverse .ae-product-editorial__media { order: 0; } .ae-product-editorial__details { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .ae-shell { width: min(100% - 36px, var(--ae-shell-width)); } .ae-wordmark { gap: 3px; font-size: 15px; } body.ae-theme .ae-wordmark > .ae-wordmark__mark { width: auto !important; height: 23px !important; } .ae-online-services__grid, .ae-single-product__promises { grid-template-columns: 1fr; } .ae-online-service { padding: 20px; } .ae-floating-contact { width: 52px; height: 52px; } .ae-product-editorial { gap: 44px; padding-top: 54px; } .ae-product-editorial__copy h2 { font-size: 38px; } .ae-site-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; } }
