/* Customize page (the Kit Builder app) in the look of the site: page title with the brand dot, big image tiles with the sport name on them,
   a squad-stores call to action, chip breadcrumbs, the site's cards and pill buttons. Only loaded on pages with [dominer_kit_builder];
   dominer_kit_page() puts .dm-kitpage on <body>, the script of the shortcode adds .dm-kit-inner away from the start view.
   On the light pages of the theme --paper is the dark text colour and --ink the light page colour. */

body.dm-kitpage .dominer-customize-banner { display: none; }

/* Kit Builder's own stylesheet strips the padding and width of every container around its app (main:has(.kb-wrapper), div:has(.kb-wrapper));
   put the site's page layout back: gutter, 1400px column, everything on one left edge. */
body.dm-kitpage .wp-site-blocks { width: 100% !important; display: block !important; }
body.dm-kitpage main.dm-main { display: block !important; width: 100% !important; max-width: 1400px !important; margin-inline: auto !important; padding: 140px var(--gutter) 64px !important; box-sizing: border-box; }
body.dm-kitpage main.dm-main div:has(.kb-wrapper) { display: block !important; width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
body.dm-kitpage .dm-prose > .wp-block-post-content > .dm-kit { max-width: none; width: 100%; margin: 2em 0 0; }
body.dm-kitpage .dm-kit--app .kb-page-content { max-width: none !important; margin-inline: 0 !important; padding: 0 !important; width: 100%; }
@media (max-width: 760px) { body.dm-kitpage main.dm-main { padding-top: 120px !important; } }

/* Title: the brand dot, and the sport's name takes its place inside the app (script of the shortcode) */
body.dm-kitpage .dm-page-title::after { content: "."; color: var(--accent); }
body.dm-kitpage .dm-lead, body.dm-kitpage .dm-lead p { text-wrap: balance; }
body.dm-kit-inner .dm-lead, body.dm-kit-inner .dm-steps { display: none; }

/* Steps and tiles share one three-column grid, so their edges line up */
body.dm-kitpage .dm-steps { max-width: none !important; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-block: 1.6em 2.4em; }
@media (max-width: 760px) { body.dm-kitpage .dm-steps { grid-template-columns: 1fr; } }

/* The app itself */
body.dm-kitpage .dm-kit--app { width: 100%; }
body.dm-kitpage .kb-wrapper { margin: 0 !important; padding: 0 !important; width: 100% !important; font-family: var(--body); }
body.dm-kitpage .kb-wrapper > * { margin-top: 0 !important; }
body.dm-kitpage #kitBuilder, body.dm-kitpage .kb-wrapper-parent { margin-top: 0 !important; padding-top: 0 !important; }
body.dm-kitpage #kb-app, body.dm-kitpage .kb-categories-page, body.dm-kitpage .kb-page-content, body.dm-kitpage .kb-wrapper [class*="kb-page-"], body.dm-kitpage .kb-wrapper [class*="-page"] { background: transparent !important; box-shadow: none !important; }
body.dm-kitpage .kb-categories-page { padding: 0 !important; }
body.dm-kitpage .kb-journey-title-wrapper { display: none !important; }
body.dm-kitpage .kb-wrapper .ng-hide { display: none !important; }

/* ---- Sport tiles: the picture fills the card, the name sits on it, a green count pill and an arrow ---- */
body.dm-kitpage .kb-page-content > ul.kb-categories { order: 1; margin-top: 0 !important; }
body.dm-kitpage .kb-wrapper .kb-categories-page .kb-categories { grid-template-columns: repeat(3, 1fr) !important; max-width: none !important; }
body.dm-kitpage .kb-wrapper .kb-categories { gap: 20px !important; padding-inline: 0 !important; }
body.dm-kitpage .kb-wrapper .kb-categories .kb-category { border: 0 !important; clip-path: none !important; border-radius: 20px !important; box-shadow: none !important; overflow: hidden; background: #0a0a0a !important; position: relative; transition: transform 0.45s var(--ease), box-shadow 0.45s var(--ease); }
body.dm-kitpage .kb-wrapper .kb-categories .kb-category:hover { transform: translateY(-6px); box-shadow: 0 22px 44px -18px rgba(0, 0, 0, 0.55) !important; }
body.dm-kitpage .kb-wrapper .kb-categories .kb-category-link { position: relative; display: block; background: transparent !important; color: #fff; overflow: hidden; border-radius: 20px; }
body.dm-kitpage .kb-wrapper .kb-categories .kb-category img { aspect-ratio: 3 / 4 !important; width: 100% !important; height: auto !important; object-fit: cover !important; display: block; padding: 0 !important; border-radius: 0 !important; transform: none; filter: none !important; background: #141414 !important; transition: transform 1.2s var(--ease); }
body.dm-kitpage .kb-wrapper .kb-categories .kb-category:hover img { transform: scale(1.07); }
body.dm-kitpage .kb-wrapper .kb-categories .kb-category-link::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 0, 0, 0) 38%, rgba(0, 0, 0, 0.82) 100%); pointer-events: none; }
body.dm-kitpage .kb-wrapper .kb-categories .kb-category-name { position: absolute; z-index: 2; left: clamp(18px, 2vw, 28px); right: 76px; bottom: 62px; font-family: var(--display) !important; font-size: clamp(2.3rem, 1.4rem + 2.6vw, 4rem) !important; font-weight: 800 !important; line-height: 0.92; letter-spacing: 0.005em; text-transform: uppercase; color: #fff !important; padding: 0 !important; margin: 0; text-shadow: 0 2px 18px rgba(0, 0, 0, 0.35); }
body.dm-kitpage .kb-wrapper .kb-categories .kb-category-item-count { position: absolute; z-index: 2; left: clamp(18px, 2vw, 28px); bottom: clamp(18px, 2vw, 26px); padding: 0 !important; margin: 0; }
body.dm-kitpage .kb-wrapper .kb-categories .kb-category-item-count span { display: inline-block; background: var(--accent); color: #0a0a0a; border: 0; font-family: var(--display) !important; font-size: 0.95rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; padding: 4px 14px; border-radius: 999px; }
body.dm-kitpage .kb-wrapper .kb-categories .kb-category-link::before { content: "→"; position: absolute; z-index: 3; right: clamp(16px, 1.8vw, 24px); bottom: clamp(16px, 1.8vw, 24px); width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; background: var(--accent); color: #0a0a0a; font: 800 1.5rem/1 var(--display); transform: translateX(-8px) scale(0.85); opacity: 0; transition: transform 0.45s var(--ease), opacity 0.35s; }
body.dm-kitpage .kb-wrapper .kb-categories .kb-category:hover .kb-category-link::before { transform: none; opacity: 1; }
@media (hover: none) { body.dm-kitpage .kb-wrapper .kb-categories .kb-category-link::before { opacity: 1; transform: none; } }

/* ---- Squad stores: a dark call-to-action card under the tiles ---- */
body.dm-kitpage .kb-page-content > .kb-home-navigation-options ~ .kb-home-navigation-options { display: none !important; }
body.dm-kitpage .kb-page-content > .kb-home-navigation-options {
  order: 2; display: flex !important; align-items: center; justify-content: space-between; gap: 20px 32px; flex-wrap: wrap;
  margin: 24px 0 0 !important; padding: clamp(22px, 3vw, 38px) clamp(20px, 3vw, 44px) !important; border: 0 !important; border-radius: 24px; background: #0a0a0a; position: relative; overflow: hidden;
}
body.dm-kitpage .kb-page-content > .kb-home-navigation-options::before { content: "Squad stores" !important; font-family: var(--display); font-weight: 800; text-transform: uppercase; font-size: clamp(2rem, 1.2rem + 2.6vw, 3.6rem); line-height: 0.95; color: #f5f5f2; flex: 1 1 260px; }
body.dm-kitpage.dm-kitpage--it .kb-page-content > .kb-home-navigation-options::before { content: "Negozi di squadra" !important; }
body.dm-kitpage .kb-page-content > .kb-home-navigation-options::after { content: ""; position: absolute; right: -60px; top: -60px; width: 220px; height: 220px; border-radius: 50%; background: radial-gradient(circle, rgba(98, 187, 70, 0.55), rgba(98, 187, 70, 0) 70%); pointer-events: none; }

/* Buttons of the app: the site's pill buttons (dark; green in the squad-stores card) */
body.dm-kitpage:not(.dm-kit-editor) .kb-wrapper .kb-button { clip-path: none !important; background: var(--paper) !important; color: var(--ink) !important; border: 0 !important; border-radius: 999px !important; box-shadow: none !important; padding: 0.8em 1.7em !important; font-family: var(--display) !important; font-weight: 700 !important; font-size: 1.05rem !important; letter-spacing: 0.06em; text-transform: uppercase; transition: transform 0.35s var(--ease), background 0.25s, color 0.25s; }
body.dm-kitpage:not(.dm-kit-editor) .kb-wrapper .kb-button:hover { transform: translateY(-3px); background: var(--accent) !important; color: #0a0a0a !important; }
body.dm-kitpage .kb-wrapper .kb-home-navigation-options .kb-button { position: relative; z-index: 1; background: var(--accent) !important; color: #0a0a0a !important; font-weight: 800 !important; font-size: 1.15rem !important; padding: 0.85em 1.9em !important; display: inline-flex; align-items: center; gap: 0.6em; }
body.dm-kitpage .kb-wrapper .kb-home-navigation-options .kb-button:hover { background: #f5f5f2 !important; }
body.dm-kitpage .kb-wrapper .kb-home-navigation-options .kb-button::before { content: none !important; display: none !important; }
body.dm-kitpage .kb-wrapper .kb-home-navigation-options .kb-button::after { content: "→"; font-size: 1.2em; }
body.dm-kitpage .kb-wrapper .kb-home-navigation-options .kb-button .kb-button-icon-team-store { display: none !important; }

/* ---- Breadcrumbs: chips, the current page filled ---- */
body.dm-kitpage .kb-wrapper .kb-breadcrumbs { display: flex !important; align-items: center; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0 0 22px !important; padding: 0 !important; flex: 1 0 100%; }
body.dm-kitpage .kb-wrapper .kb-page-home .kb-breadcrumbs { display: none !important; }
body.dm-kitpage .kb-wrapper .kb-page-home .kb-team-stores-home .kb-breadcrumbs, body.dm-kitpage .kb-wrapper .kb-page-home .kb-team-stores-catalog .kb-breadcrumbs { display: flex !important; }
body.dm-kitpage .kb-wrapper .kb-breadcrumbs .kb-breadcrumb, body.dm-kitpage .kb-wrapper .kb-breadcrumbs .kb-breadcrumb-selected { margin: 0; padding: 0; }
body.dm-kitpage .kb-wrapper .kb-breadcrumbs .kb-breadcrumb::after, body.dm-kitpage .kb-wrapper .kb-breadcrumbs .kb-breadcrumb-selected::after { content: none !important; }
body.dm-kitpage .kb-wrapper .kb-breadcrumbs li > a, body.dm-kitpage .kb-wrapper .kb-breadcrumbs li > span {
  display: inline-flex; align-items: center; min-height: 40px; padding: 0 18px; border-radius: 999px; border: 1.5px solid var(--paper); color: var(--paper) !important; background: transparent;
  font-family: var(--display) !important; font-size: 1.05rem !important; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; text-decoration: none; transition: background 0.25s, color 0.25s, transform 0.3s var(--ease);
}
body.dm-kitpage .kb-wrapper .kb-breadcrumbs li > a:hover { background: var(--paper); color: var(--ink) !important; transform: translateY(-2px); }
body.dm-kitpage .kb-wrapper .kb-breadcrumbs .kb-breadcrumb-selected > a, body.dm-kitpage .kb-wrapper .kb-breadcrumbs .kb-breadcrumb-selected > span { background: var(--accent); border-color: var(--accent); color: #0a0a0a !important; pointer-events: none; }
body.dm-kitpage .kb-wrapper .kb-breadcrumbs .kb-breadcrumb:first-child > a { font-size: 0 !important; }
body.dm-kitpage .kb-wrapper .kb-breadcrumbs .kb-breadcrumb:first-child > a::before { content: "← Customize"; font-size: 1.05rem; }
body.dm-kitpage.dm-kitpage--it .kb-wrapper .kb-breadcrumbs .kb-breadcrumb:first-child > a::before { content: "← Personalizza"; }

/* Products and stores inside the app: the site's cards */
body.dm-kitpage .kb-wrapper .kb-product, body.dm-kitpage .kb-wrapper .kb-team-store { border-radius: 14px !important; overflow: hidden; border: 0 !important; box-shadow: 0 0 0 1px var(--line-soft) !important; background: #fff !important; transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease); }
body.dm-kitpage .kb-wrapper .kb-product:hover, body.dm-kitpage .kb-wrapper .kb-team-store:hover { transform: translateY(-4px); box-shadow: 0 18px 36px -18px rgba(0, 0, 0, 0.35), 0 0 0 1px var(--line-soft) !important; }
body.dm-kitpage .kb-wrapper .kb-product-name, body.dm-kitpage .kb-wrapper .kb-team-store-name { font-family: var(--display) !important; font-weight: 800; font-size: 1.25rem; letter-spacing: 0.02em; text-transform: uppercase; }
@media (min-width: 1025px) { body.dm-kitpage .kb-team-stores-products, body.dm-kitpage .kb-wrapper .kb-products { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; } }

/* Tablets and phones */
@media (max-width: 760px) {
  body.dm-kitpage .kb-wrapper .kb-categories-page .kb-categories { grid-template-columns: 1fr !important; gap: 14px !important; }
  body.dm-kitpage .kb-wrapper .kb-categories .kb-category img { aspect-ratio: 4 / 5 !important; }
  body.dm-kitpage .kb-wrapper .kb-categories .kb-category-name { font-size: clamp(2.6rem, 14vw, 3.6rem) !important; bottom: 66px; }
  body.dm-kitpage .kb-page-content > .kb-home-navigation-options { flex-direction: column; align-items: stretch; }
  body.dm-kitpage .kb-wrapper .kb-home-navigation-options .kb-button { width: 100%; justify-content: center; }
  body.dm-kitpage .kb-wrapper .kb-products, body.dm-kitpage .kb-wrapper .kb-category-page .kb-products { grid-template-columns: repeat(2, 1fr) !important; gap: 10px !important; }
  body.dm-kitpage .kb-wrapper .kb-breadcrumbs li > a, body.dm-kitpage .kb-wrapper .kb-breadcrumbs li > span { min-height: 36px; padding: 0 14px; font-size: 0.95rem !important; }
}

/* The designer itself (the 3D editor): no page title or steps, and as wide as the screen */
body.dm-kit-editor .dm-page-title, body.dm-kit-editor .dm-lead, body.dm-kit-editor .dm-steps { display: none !important; }
body.dm-kit-editor main.dm-main { max-width: none !important; padding: 104px 0 0 !important; }
body.dm-kit-editor .dm-prose > .wp-block-post-content > .dm-kit { margin-top: 0; }
body.dm-kit-editor .kb-wrapper, body.dm-kit-editor .dm-kit--app { width: 100% !important; max-width: none !important; }
@media (max-width: 760px) { body.dm-kit-editor main.dm-main { padding-top: 88px !important; } }

/* The current crumb is plain text inside its li (the product name script replaces the span): make the li itself the green chip */
body.dm-kitpage .kb-wrapper .kb-breadcrumbs li.kb-breadcrumb-selected:not(:has(a, span)) { display: inline-flex; align-items: center; min-height: 40px; padding: 0 18px; border-radius: 999px; background: var(--accent); color: #0a0a0a; font-family: var(--display); font-size: 1.05rem; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; }

/* ---- One screen, no scrolling: no intro on any view, tiles and editor sized to the window ---- */
body.dm-kitpage { --dm-kit-top: 104px; }
@media (max-width: 760px) { body.dm-kitpage { --dm-kit-top: 88px; } }
body.dm-kitpage .dm-lead, body.dm-kitpage .dm-steps { display: none !important; }
body.dm-kitpage .dm-page-title { display: none !important; }
body.dm-kit-inner:not(.dm-kit-editor) .dm-page-title { display: block !important; }
body.dm-kit-editor main.dm-main { padding-top: var(--dm-kit-top) !important; }
body.dm-kitpage:not(.dm-kit-editor) main.dm-main { padding-top: 140px !important; }
body.dm-kitpage .dm-prose > .wp-block-post-content > .dm-kit { margin-top: 0; }
body.dm-kit-inner:not(.dm-kit-editor) .dm-prose > .wp-block-post-content > .dm-kit { margin-top: 2em; }

/* Start view: the sport tiles take the height the window has left (title and steps gone), so nothing is cut off */
@media (min-width: 761px) {
  body.dm-kitpage:not(.dm-kit-inner) .kb-wrapper .kb-categories .kb-category img { aspect-ratio: auto !important; height: clamp(320px, calc(100svh - var(--dm-kit-top) - 190px), 820px) !important; }
}

/* Editor: exactly the window below the header, the page itself never scrolls */
html:has(body.dm-kit-editor), body.dm-kit-editor { overflow: hidden !important; }
body.dm-kit-editor footer, body.dm-kit-editor .dm-footer { display: none !important; }
body.dm-kit-editor main.dm-main { padding-bottom: 0 !important; height: 100svh; overflow: hidden; }
body.dm-kit-editor .kb-page-customize, body.dm-kit-editor .kb-page-customize .kb-partial-wrap, body.dm-kit-editor .kb-customise-page { height: calc(100svh - var(--dm-kit-top)) !important; min-height: 0 !important; }
body.dm-kit-editor .kb-customise-page > div, body.dm-kit-editor .kb-preview-panel, body.dm-kit-editor .kb-preview-panel-inner, body.dm-kit-editor .kb-preview-image { height: calc(100svh - var(--dm-kit-top) - 80px) !important; min-height: 0 !important; }

/* Start view: the title and its sentence are back, only the three step boxes stay hidden. The tiles take what is left of the window under them. */
body.dm-kitpage:not(.dm-kit-inner):not(.dm-kit-editor) .dm-page-title, body.dm-kitpage:not(.dm-kit-inner):not(.dm-kit-editor) .dm-lead { display: block !important; }
body.dm-kitpage:not(.dm-kit-inner):not(.dm-kit-editor) .dm-prose > .wp-block-post-content > .dm-kit { margin-top: 1.4em; }
@media (min-width: 761px) {
  body.dm-kitpage:not(.dm-kit-inner) .kb-wrapper .kb-categories .kb-category img { height: clamp(240px, calc(100svh - var(--dm-kit-above, 300px) - 168px), 820px) !important; }
}
/* The sport pictures carry dark bars at their sides: keep the tile tall enough to crop them away, and give the picture some air under the sentence */
@media (min-width: 761px) {
  body.dm-kitpage:not(.dm-kit-inner) .kb-wrapper .kb-categories .kb-category img { min-height: calc((min(100vw, 1400px) - 2 * var(--gutter) - 40px) / 3 * 1.22) !important; height: clamp(240px, calc(100svh - var(--dm-kit-above, 300px) - 214px), 820px) !important; }
}
body.dm-kitpage:not(.dm-kit-inner):not(.dm-kit-editor) .dm-kit--app { padding-top: 24px; }
/* Same rhythm as the other pages: air between the sentence and the app */
body.dm-kitpage:not(.dm-kit-inner):not(.dm-kit-editor) .dm-lead { padding-bottom: 28px; margin-bottom: 0; }

/* ---- Breadcrumb chips: long product names wrap inside the chip instead of overflowing ---- */
body.dm-kitpage .kb-wrapper .kb-breadcrumbs li { min-width: 0; max-width: 100%; }
body.dm-kitpage .kb-wrapper .kb-breadcrumbs li > a, body.dm-kitpage .kb-wrapper .kb-breadcrumbs li > span,
body.dm-kitpage .kb-wrapper .kb-breadcrumbs li.kb-breadcrumb-selected:not(:has(a, span)) { max-width: 100%; box-sizing: border-box; white-space: normal; overflow-wrap: anywhere; line-height: 1.15; padding-top: 8px; padding-bottom: 8px; border-radius: 22px; text-align: left; }

/* ---- Product cards inside a sport: the look of the rest of the page (soft picture panel, big condensed name under it, green pill on hover) ---- */
body.dm-kitpage .kb-wrapper .kb-product { background: transparent !important; box-shadow: none !important; border-radius: 0 !important; overflow: visible !important; transform: none !important; }
body.dm-kitpage .kb-wrapper .kb-product:hover { transform: none !important; box-shadow: none !important; }
body.dm-kitpage .kb-wrapper .kb-product-card { background: transparent !important; border: 0 !important; box-shadow: none !important; }
body.dm-kitpage .kb-wrapper .kb-product-card-link { position: relative; display: block; color: var(--paper); }
body.dm-kitpage .kb-wrapper .kb-product-image { position: relative; aspect-ratio: 1 / 1.1; border-radius: 14px; overflow: hidden; background: var(--surface) !important; }
body.dm-kitpage .kb-wrapper .kb-product-image img { width: 100% !important; height: 100% !important; object-fit: contain !important; display: block; transition: transform 1s var(--ease); }
body.dm-kitpage .kb-wrapper .kb-product:hover .kb-product-image img { transform: scale(1.05); }
body.dm-kitpage .kb-wrapper .kb-product-card-hover { position: absolute !important; z-index: 3; top: 12px; left: 12px; right: auto !important; bottom: auto !important; width: auto !important; height: auto !important; background: var(--accent) !important; color: #0a0a0a !important; border-radius: 999px; padding: 6px 14px !important; font-family: var(--display) !important; font-weight: 800; font-size: 0.9rem !important; letter-spacing: 0.07em; text-transform: uppercase; opacity: 0; transform: translateY(-6px); transition: opacity 0.3s, transform 0.4s var(--ease); pointer-events: none; }
body.dm-kitpage .kb-wrapper .kb-product:hover .kb-product-card-hover { opacity: 1; transform: none; }
@media (hover: none) { body.dm-kitpage .kb-wrapper .kb-product-card-hover { display: none !important; } }
body.dm-kitpage .kb-wrapper .kb-product-card-title { background: transparent !important; padding: 12px 2px 0 !important; text-align: left; }
body.dm-kitpage .kb-wrapper .kb-product-name { font-family: var(--display) !important; font-size: clamp(1.15rem, 1rem + 0.5vw, 1.5rem) !important; font-weight: 800; line-height: 1.05; letter-spacing: 0.01em; text-transform: uppercase; color: var(--paper) !important; white-space: normal; overflow-wrap: anywhere; }
body.dm-kitpage .kb-wrapper .kb-product-image img { object-fit: cover !important; }
/* Everything inside a sport starts on the same left edge as the title and uses the tiles' 20px gap */
body.dm-kitpage .kb-wrapper .kb-category-page, body.dm-kitpage .kb-wrapper .kb-catalog-page, body.dm-kitpage .kb-wrapper .kb-category-page-only, body.dm-kitpage .kb-wrapper .kb-breadcrumbs, body.dm-kitpage .kb-wrapper .kb-products { padding-inline: 0 !important; margin-inline: 0 !important; max-width: none !important; }
body.dm-kitpage .kb-wrapper .kb-products { gap: 28px 20px !important; }
@media (max-width: 760px) { body.dm-kitpage .kb-wrapper .kb-products { gap: 22px 12px !important; } }
body.dm-kitpage .kb-wrapper .kb-product-image { padding: 0 !important; margin: 0 !important; }

/* Selected crumb (plain text in its li): the display font again, and the same left edge as the title on phones */
body.dm-kitpage .kb-wrapper .kb-breadcrumbs li.kb-breadcrumb-selected:not(:has(a, span)) { font-family: var(--display) !important; font-size: 1.05rem !important; font-weight: 700; letter-spacing: 0.07em; min-height: 40px; }
body.dm-kitpage .kb-wrapper .kb-breadcrumbs { padding-inline: 0 !important; margin-inline: 0 !important; }
@media (max-width: 760px) { body.dm-kitpage .kb-wrapper .kb-breadcrumbs, body.dm-kitpage .kb-wrapper .kb-breadcrumbs li { padding-inline: 0 !important; } body.dm-kitpage .kb-wrapper .kb-breadcrumbs li > a, body.dm-kitpage .kb-wrapper .kb-breadcrumbs li > span, body.dm-kitpage .kb-wrapper .kb-breadcrumbs li.kb-breadcrumb-selected:not(:has(a, span)) { padding-inline: 14px !important; } }

/* Design cards (V01, V02 ...) like the product cards */
body.dm-kitpage .kb-wrapper .kb-design, body.dm-kitpage .kb-wrapper .kb-design-card { background: transparent !important; box-shadow: none !important; border: 0 !important; border-radius: 0 !important; }
body.dm-kitpage .kb-wrapper .kb-design-card-link { display: block; color: var(--paper); }
body.dm-kitpage .kb-wrapper .kb-design-card img { border-radius: 14px; background: var(--surface) !important; transition: transform 1s var(--ease); }
body.dm-kitpage .kb-wrapper .kb-design-card-title { background: transparent !important; text-align: left; padding: 10px 2px 0 !important; font-family: var(--display) !important; font-size: 1.3rem !important; font-weight: 800; letter-spacing: 0.02em; text-transform: uppercase; color: var(--paper) !important; }
/* No inner padding on any app page: everything shares the title's left edge */
body.dm-kitpage:not(.dm-kit-editor) .kb-wrapper [class*="-page"] { padding-inline: 0 !important; }
body.dm-kitpage .kb-wrapper .kb-design-card img { object-fit: cover !important; width: 100% !important; }
body.dm-kitpage .kb-wrapper .kb-design-card img { aspect-ratio: 1 / 1.1; height: auto !important; max-width: 100% !important; display: block; }
body.dm-kitpage .kb-wrapper .kb-design-card-image, body.dm-kitpage .kb-wrapper .kb-design-card-link > div:first-child { padding: 0 !important; background: transparent !important; }
body.dm-kitpage .kb-wrapper .kb-design-image { padding: 0 !important; background: var(--surface) !important; border-radius: 14px; overflow: hidden; }
body.dm-kitpage .kb-wrapper .kb-design-thumbnail-image-wrapper { width: 100% !important; height: auto !important; overflow: hidden; }
body.dm-kitpage .kb-wrapper .kb-design-card img.kb-design-img { transform: scale(1.1); }
body.dm-kitpage .kb-wrapper .kb-design-card:hover img.kb-design-img { transform: scale(1.15); }

/* No hover pill on the product cards */
body.dm-kitpage .kb-wrapper .kb-product-card-hover { display: none !important; }

/* The current crumb (plain text in its li) needs its own side padding: the li rule above zeroed it and the text ran over the pill's edge */
body.dm-kitpage .kb-wrapper .kb-breadcrumbs li.kb-breadcrumb-selected:not(:has(a, span)) { padding-left: 20px !important; padding-right: 20px !important; }

/* ---- Heading banner: a soft green gradient that keeps flowing behind the title (and the sentence) ---- */
body.dm-kitpage:not(.dm-kit-editor) main.dm-main { position: relative; isolation: isolate; }
body.dm-kitpage:not(.dm-kit-editor) main.dm-main::before {
  content: ""; position: absolute; z-index: -1; left: var(--gutter); right: var(--gutter); top: var(--dm-banner-top, 140px); height: var(--dm-banner-h, 190px);
  border-radius: 28px; overflow: hidden;
  background:
    radial-gradient(60% 120% at 12% 20%, rgba(255, 255, 255, 0.55), rgba(255, 255, 255, 0) 60%),
    linear-gradient(115deg, #62bb46, #a9e06a, #5fd0a0, #8fd45f, #62bb46, #c4ec7a);
  background-size: 100% 100%, 400% 400%;
  animation: dm-banner-flow 16s ease-in-out infinite;
}
@keyframes dm-banner-flow { 0% { background-position: 0 0, 0% 50%; } 50% { background-position: 0 0, 100% 50%; } 100% { background-position: 0 0, 0% 50%; } }
@media (prefers-reduced-motion: reduce) { body.dm-kitpage:not(.dm-kit-editor) main.dm-main::before { animation-duration: 60s; } }
body.dm-kitpage:not(.dm-kit-editor) .dm-page-title { padding: 28px clamp(20px, 3vw, 40px) 0 !important; }
body.dm-kitpage:not(.dm-kit-editor) .dm-page-title::after { color: #fff; }
body.dm-kitpage:not(.dm-kit-inner):not(.dm-kit-editor) .dm-lead { padding: 6px clamp(20px, 3vw, 40px) 28px !important; color: #0a0a0a; }
body.dm-kitpage:not(.dm-kit-inner):not(.dm-kit-editor) .dm-lead p { color: #0a0a0a; }
body.dm-kit-inner:not(.dm-kit-editor) .dm-page-title { padding-bottom: 28px !important; }
body.dm-kitpage:not(.dm-kit-editor) .dm-prose > .wp-block-post-content > .dm-kit { margin-top: 22px !important; }
/* Inside a sport or product the breadcrumb chips sit in the banner under the title */
body.dm-kit-inner:not(.dm-kit-editor) .dm-page-title { padding-bottom: 14px !important; }
body.dm-kit-inner:not(.dm-kit-editor) .kb-wrapper .kb-breadcrumbs { padding-left: clamp(20px, 3vw, 40px) !important; padding-right: clamp(20px, 3vw, 40px) !important; margin: 0 0 24px !important; }
body.dm-kit-inner:not(.dm-kit-editor) .dm-kit--app { margin-top: 0; }

/* ---- Banner, full width of the page like the other pages' banners, and more colour ---- */
body.dm-kitpage:not(.dm-kit-editor) main.dm-main::before {
  left: 50%; right: auto; width: 100vw; transform: translateX(-50%); top: 0; border-radius: 0 0 36px 36px;
  background:
    radial-gradient(45% 90% at 8% 10%, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0) 60%),
    radial-gradient(40% 80% at 92% 90%, rgba(255, 255, 255, 0.35), rgba(255, 255, 255, 0) 60%),
    linear-gradient(120deg, #62bb46, #2fd1b0, #3fa7ff, #a97bff, #ff6fb1, #ffb44f, #c8e65a, #62bb46);
  background-size: 100% 100%, 100% 100%, 500% 500%;
  animation: dm-banner-flow2 18s ease-in-out infinite;
}
@keyframes dm-banner-flow2 { 0% { background-position: 0 0, 0 0, 0% 50%; } 50% { background-position: 0 0, 0 0, 100% 50%; } 100% { background-position: 0 0, 0 0, 0% 50%; } }
/* the heading lines up with the tiles' left edge now that the banner runs edge to edge */
body.dm-kitpage:not(.dm-kit-editor) .dm-page-title { padding-left: 0 !important; padding-right: 0 !important; padding-top: 0 !important; }
body.dm-kitpage:not(.dm-kit-inner):not(.dm-kit-editor) .dm-lead { padding-left: 0 !important; padding-right: 0 !important; padding-bottom: 36px !important; }
body.dm-kit-inner:not(.dm-kit-editor) .kb-wrapper .kb-breadcrumbs { padding-left: 0 !important; padding-right: 0 !important; }
body.dm-kit-inner:not(.dm-kit-editor) .dm-page-title { padding-bottom: 16px !important; }

/* ---- Round 2: square banner, breadcrumbs under it, smooth moves between the app's views, phones ---- */
body.dm-kitpage:not(.dm-kit-editor) main.dm-main::before { border-radius: 0 !important; transition: height 0.6s var(--ease); }
body.dm-kit-inner:not(.dm-kit-editor) .dm-page-title { padding-bottom: 44px !important; }
body.dm-kit-inner:not(.dm-kit-editor) .kb-wrapper .kb-breadcrumbs { margin: 8px 0 26px !important; }
body.dm-kitpage .dm-page-title.dm-swap { animation: dm-title-in 0.55s var(--ease) both; }
@keyframes dm-title-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

/* every view of the app slides in; its cards follow one after the other */
body.dm-kitpage .kb-wrapper .kb-partial-wrap { animation: dm-view-in 0.6s var(--ease) both; }
@keyframes dm-view-in { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
body.dm-kitpage .kb-wrapper .kb-categories .kb-category, body.dm-kitpage .kb-wrapper .kb-product, body.dm-kitpage .kb-wrapper .kb-design, body.dm-kitpage .kb-wrapper .kb-team-store { animation: dm-card-in 0.6s var(--ease) both; }
@keyframes dm-card-in { from { opacity: 0; transform: translateY(26px) scale(0.98); } to { opacity: 1; transform: none; } }
body.dm-kitpage .kb-wrapper .kb-categories .kb-category:nth-child(2), body.dm-kitpage .kb-wrapper .kb-product:nth-child(4n+2), body.dm-kitpage .kb-wrapper .kb-design:nth-child(4n+2) { animation-delay: 0.07s; }
body.dm-kitpage .kb-wrapper .kb-categories .kb-category:nth-child(3), body.dm-kitpage .kb-wrapper .kb-product:nth-child(4n+3), body.dm-kitpage .kb-wrapper .kb-design:nth-child(4n+3) { animation-delay: 0.14s; }
body.dm-kitpage .kb-wrapper .kb-product:nth-child(4n+4), body.dm-kitpage .kb-wrapper .kb-design:nth-child(4n+4) { animation-delay: 0.21s; }
body.dm-kitpage .kb-wrapper .kb-page-customize .kb-partial-wrap { animation-duration: 0.8s; }
@media (prefers-reduced-motion: reduce) { body.dm-kitpage .kb-wrapper .kb-partial-wrap, body.dm-kitpage .kb-wrapper .kb-category, body.dm-kitpage .kb-wrapper .kb-product, body.dm-kitpage .kb-wrapper .kb-design, body.dm-kitpage .dm-page-title.dm-swap { animation: none !important; } }

/* ---- Squad stores view: logo cards in the site's style, a plain back button ---- */
body.dm-kitpage .kb-wrapper ul.kb-team-stores-catalogs { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 30px 20px !important; margin: 0 !important; padding: 0 !important; list-style: none; width: 100% !important; max-width: none !important; }
body.dm-kitpage .kb-wrapper .kb-team-stores-catalog { width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; background: transparent !important; border: 0 !important; box-shadow: none !important; border-radius: 0 !important; float: none !important; animation: dm-card-in 0.6s var(--ease) both; }
body.dm-kitpage .kb-wrapper .kb-team-stores-catalog:nth-child(3n+2) { animation-delay: 0.07s; }
body.dm-kitpage .kb-wrapper .kb-team-stores-catalog:nth-child(3n+3) { animation-delay: 0.14s; }
body.dm-kitpage .kb-wrapper .kb-team-stores-link { display: flex !important; flex-direction: column; align-items: stretch; width: 100%; height: auto !important; background: transparent !important; color: var(--paper); text-decoration: none; }
body.dm-kitpage .kb-wrapper .kb-team-stores-img-wrapper { width: 100% !important; height: auto !important; aspect-ratio: 4 / 3; display: grid !important; place-items: center; padding: 0 !important; border-radius: 14px; overflow: hidden; background: var(--surface) !important; transition: background 0.3s; }
body.dm-kitpage .kb-wrapper .kb-team-stores-img { width: auto !important; height: auto !important; max-width: 58% !important; max-height: 68% !important; object-fit: contain !important; transition: transform 0.9s var(--ease); }
body.dm-kitpage .kb-wrapper .kb-team-stores-catalog:hover .kb-team-stores-img { transform: scale(1.08); }
body.dm-kitpage .kb-wrapper .kb-team-stores-catalog:hover .kb-team-stores-img-wrapper { background: #fff !important; }
body.dm-kitpage .kb-wrapper .kb-team-store-info { padding: 14px 2px 0 !important; background: transparent !important; text-align: left; width: 100% !important; }
body.dm-kitpage .kb-wrapper .kb-team-stores-name { font-family: var(--display) !important; font-size: clamp(1.5rem, 1.2rem + 1vw, 2.1rem) !important; font-weight: 800 !important; line-height: 1; letter-spacing: 0.01em; text-transform: uppercase; color: var(--paper) !important; padding: 0 !important; margin: 0 0 8px !important; }
body.dm-kitpage .kb-wrapper .kb-team-store-info .kb-team-stores-products { display: inline-block !important; width: auto !important; border: 1.5px solid var(--paper) !important; border-radius: 999px; padding: 2px 12px !important; margin: 0 0 8px !important; font-family: var(--display) !important; font-size: 0.95rem !important; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--paper) !important; background: transparent !important; }
body.dm-kitpage .kb-wrapper .kb-team-store-info > :not(.kb-team-stores-name):not(.kb-team-stores-products) { color: var(--text-soft) !important; font-size: 0.95rem !important; line-height: 1.45; border: 0 !important; }

/* On this view the dark call-to-action card is only a back button */
body.dm-kitpage .kb-wrapper .kb-team-store-navigation-options { background: transparent !important; padding: 0 !important; margin: 30px 0 0 !important; border-radius: 0 !important; justify-content: flex-start !important; overflow: visible !important; }
body.dm-kitpage .kb-wrapper .kb-team-store-navigation-options::before, body.dm-kitpage .kb-wrapper .kb-team-store-navigation-options::after { content: none !important; display: none !important; }
body.dm-kitpage .kb-wrapper .kb-team-store-navigation-options .kb-button { background: var(--paper) !important; color: var(--ink) !important; font-size: 1.05rem !important; }
body.dm-kitpage .kb-wrapper .kb-team-store-navigation-options .kb-button::after { content: none !important; }
body.dm-kitpage .kb-wrapper .kb-team-store-navigation-options .kb-button:hover { background: var(--accent) !important; color: #0a0a0a !important; }

@media (max-width: 900px) { body.dm-kitpage .kb-wrapper ul.kb-team-stores-catalogs { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 560px) {
  body.dm-kitpage .kb-wrapper ul.kb-team-stores-catalogs { gap: 22px 12px !important; }
  body.dm-kitpage .kb-wrapper .kb-team-stores-name { font-size: 1.35rem !important; }
  body.dm-kitpage .kb-wrapper .kb-team-store-info > :not(.kb-team-stores-name):not(.kb-team-stores-products) { font-size: 0.85rem !important; }
  body.dm-kitpage .kb-wrapper .kb-team-store-navigation-options .kb-button { width: 100%; justify-content: center; }
}
body.dm-kitpage .kb-wrapper .kb-team-stores-home, body.dm-kitpage .kb-wrapper .kb-team-stores-home .kb-widget, body.dm-kitpage .kb-wrapper [class*="kb-widget-kb-team"] { background: transparent !important; padding: 0 !important; box-shadow: none !important; border: 0 !important; }
body.dm-kitpage .kb-wrapper .kb-team-store-info .kb-team-stores-products { width: fit-content !important; max-width: 100%; }
/* store description: tight under the pills, fades out instead of a hard cut, "See more" as a quiet link */
body.dm-kitpage .kb-wrapper .kb-team-store-info .kb-description-preview { margin: 0 !important; max-height: 4.4em; overflow: hidden; position: relative; -webkit-mask-image: linear-gradient(180deg, #000 55%, transparent 100%); mask-image: linear-gradient(180deg, #000 55%, transparent 100%); }
body.dm-kitpage .kb-wrapper .kb-description-see-more { display: none !important; }
body.dm-kitpage .kb-wrapper .kb-description-preview::before, body.dm-kitpage .kb-wrapper .kb-description-preview::after { display: none !important; }

/* Arrow on the hover circle drawn as a picture, so it sits exactly in the middle */
body.dm-kitpage .kb-wrapper .kb-categories .kb-category-link::before {
  content: "" !important; display: block !important; font-size: 0 !important; width: 48px; height: 48px; border-radius: 50%;
  background: var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230a0a0a' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E") center / 24px 24px no-repeat !important;
}
/* Breadcrumb chips: only the colour changes on hover, no movement */
body.dm-kitpage .kb-wrapper .kb-breadcrumbs li > a:hover, body.dm-kitpage .kb-wrapper .kb-breadcrumbs li > a:focus { transform: none !important; }
body.dm-kitpage .kb-wrapper .kb-breadcrumbs li > a, body.dm-kitpage .kb-wrapper .kb-breadcrumbs li > span { transition: background 0.25s, color 0.25s, border-color 0.25s !important; }

/* The banner keeps nearly the same height on every view (the script floors it at 300 px); the breadcrumbs make up the difference */
body.dm-kit-inner:not(.dm-kit-editor) .kb-wrapper .kb-breadcrumbs { margin-top: calc(8px + var(--dm-banner-gap, 0px)) !important; }
