.esp-cms-managed { position: relative; }

/*
 * Home-page blocks edited in NetCat live beside React's native children.
 * Keep those React nodes mounted (so client-side navigation remains safe),
 * but hide them while the CMS-managed main slot is active.
 */
main.esp-builder-replaced > :not([data-esp-builder-slot]) { display: none !important; }

.esp-cms-theme--dark { background-color: #0d0f13; color: #fff; }
.esp-cms-theme--graphite { background-color: #181b21; color: #fff; }
.esp-cms-theme--smoke { background-color: #30343d; color: #fff; }
.esp-cms-theme--white { background-color: #f6f6f5; color: #111318; }
.esp-cms-theme--red { background-color: #e21b23; color: #fff; }

.esp-cms-section { padding: clamp(72px, 9vw, 150px) 0; border-top: 1px solid rgba(255,255,255,.08); }
.esp-cms-section__inner { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(300px, .95fr); gap: clamp(36px, 7vw, 110px); align-items: center; }
.esp-cms-layout--image_left .esp-cms-section__media { order: -1; }
.esp-cms-layout--wide .esp-cms-section__inner { grid-template-columns: 1fr; }
.esp-cms-heading { max-width: 900px; }
.esp-cms-heading h2 { margin: 0; color: inherit; font: 900 clamp(52px, 7.2vw, 118px)/.85 "Fira Sans Extra Condensed", Impact, sans-serif; letter-spacing: -.035em; text-transform: uppercase; }
.esp-cms-heading > p:not(.eyebrow) { max-width: 720px; margin: 28px 0 0; color: currentColor; opacity: .7; font-size: clamp(16px, 1.5vw, 21px); line-height: 1.6; }
.esp-cms-heading > strong { display: block; margin-top: 16px; color: #ed1c24; font-size: 15px; letter-spacing: .16em; text-transform: uppercase; }
.esp-cms-section__media { min-height: 460px; overflow: hidden; background: #252931; }
.esp-cms-section__media img { width: 100%; height: 100%; min-height: 460px; object-fit: cover; }
.esp-cms-rich-text { max-width: 840px; margin-top: 38px; color: currentColor; opacity: .82; font-size: 17px; line-height: 1.8; }
.esp-cms-rich-text h2, .esp-cms-rich-text h3 { margin: 1.6em 0 .6em; color: inherit; }
.esp-cms-rich-text a { color: #ed1c24; }
.esp-cms-secondary { margin: 26px 0 0; opacity: .64; line-height: 1.7; }
.esp-cms-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 34px; }

.esp-cms-card-grid { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(var(--esp-cms-columns, 4), minmax(0, 1fr)); gap: 1px; margin-top: 24px; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.12); }
.esp-cms-card { min-width: 0; background: #15181e; }
.esp-cms-theme--white .esp-cms-card { background: #fff; }
.esp-cms-card > img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.esp-cms-card > div { padding: 28px; }
.esp-cms-card small { color: #ed1c24; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.esp-cms-card h3 { margin: 12px 0 0; color: inherit; font: 900 30px/1 "Fira Sans Extra Condensed", Impact, sans-serif; text-transform: uppercase; }
.esp-cms-card p { margin: 14px 0 0; opacity: .65; line-height: 1.55; }
.esp-cms-card a { display: inline-block; margin-top: 24px; color: inherit; font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }

.esp-cms-gallery__grid { display: grid; grid-template-columns: repeat(var(--esp-cms-columns, 4), minmax(0, 1fr)); gap: 1px; margin-top: 50px; background: rgba(255,255,255,.1); }
.esp-cms-gallery figure { margin: 0; background: #171a20; }
.esp-cms-gallery img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.esp-cms-gallery figcaption { padding: 14px 16px; font-size: 12px; opacity: .68; }
.esp-cms-callout-copy { max-width: 720px; margin: 18px 0 0; opacity: .7; }

.craft-image[style] { background-position: center; background-size: cover; }

.esp-cms-empty { padding: 28px 0; opacity: .7; font-size: 16px; line-height: 1.6; }
.esp-cms-products__grid { display: grid; grid-template-columns: repeat(var(--esp-cms-columns, 4), minmax(0, 1fr)); gap: 20px; margin-top: 40px; }
.esp-cms-product { min-width: 0; border: 1px solid currentColor; border-color: color-mix(in srgb, currentColor 18%, transparent); }
.esp-cms-product a { color: inherit; text-decoration: none; }
.esp-cms-product__image { display: flex; aspect-ratio: 4/3; align-items: center; justify-content: center; overflow: hidden; background: #242932; color: #fff; }
.esp-cms-product__image img { width: 100%; height: 100%; object-fit: contain; transition: transform .2s ease; }
.esp-cms-product__image:hover img { transform: scale(1.03); }
.esp-cms-product a:focus-visible { outline: 2px solid #ed1c24; outline-offset: 3px; }
.esp-cms-product__copy { padding: 22px; }
.esp-cms-product__copy small { font-size: 10px; letter-spacing: .08em; opacity: .65; overflow-wrap: anywhere; }
.esp-cms-product h3 { margin: 12px 0 0; font: 800 clamp(24px, 2.2vw, 32px)/1.1 "Fira Sans Extra Condensed", Impact, sans-serif; overflow-wrap: anywhere; }
.esp-cms-product__stock { margin: 18px 0 8px; font-size: 12px; opacity: .7; }
.esp-cms-product__price { display: block; font-size: 20px; }
@media (max-width: 960px) { .esp-cms-products__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { .esp-cms-products__grid { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .esp-cms-product__image img { transition: none; } }

@media (max-width: 960px) {
  .esp-cms-section__inner { grid-template-columns: 1fr; }
  .esp-cms-section__media, .esp-cms-section__media img { min-height: 360px; }
  .esp-cms-card-grid, .esp-cms-gallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
  .esp-cms-section { padding: 70px 0; }
  .esp-cms-heading h2 { font-size: clamp(46px, 16vw, 72px); }
  .esp-cms-card-grid, .esp-cms-gallery__grid { grid-template-columns: 1fr; }
}
.esp-cms-promos__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:18px}.esp-cms-promos__grid>a{display:flex;min-height:145px;flex-direction:column;justify-content:space-between;gap:20px;padding:24px;border:1px solid #363b44;border-top:3px solid #ed1c24;background:#181c22;color:#fff;text-decoration:none;overflow-wrap:anywhere}.esp-cms-promos__grid>a:hover,.esp-cms-promos__grid>a:focus-visible{border-color:#ed1c24;outline:2px solid #ed1c24;outline-offset:3px}.esp-cms-promos__grid strong{font-size:22px;line-height:1.25}.esp-cms-promos__grid span{display:flex;justify-content:space-between;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#c1c5cc}.main-menu__promos{position:relative;color:inherit}.main-menu__promos>summary{padding:12px 0;cursor:pointer;font-size:inherit;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.main-menu__promos>div{position:absolute;right:0;top:100%;z-index:70;min-width:230px;max-width:min(340px,85vw);max-height:60vh;overflow-y:auto;padding:12px;background:#101216;border:1px solid #363b44;box-shadow:0 12px 30px #0008}.main-menu__promos>div>a{display:block!important;padding:12px!important;white-space:normal;overflow-wrap:anywhere}.main-menu__promos>summary:focus-visible{outline:2px solid #ed1c24;outline-offset:4px}@media(max-width:1050px){.main-menu__promos>div{position:static;min-width:0;max-width:100%;box-shadow:none}.main-menu__promos>summary{padding:12px}}
.main-menu__promos>summary{display:flex;align-items:center;gap:8px;list-style:none}.main-menu__promos>summary::-webkit-details-marker{display:none}.main-menu__promos>summary:after{content:'⌄';font-size:14px;color:#939aa5}
