/* Homepage and section details: the design gallery, references, pictograms, texture and motion. */

/* The site's own motif: a halftone that fades in from the right, on dark sections. */
.elementor .e-con.bs-texture, .elementor .e-con.bs-content-hero { position: relative; isolation: isolate; }
.elementor .e-con.bs-texture::before, .elementor .e-con.bs-content-hero::before {
    content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
    background-image: radial-gradient(circle, #ea7c1f 1.3px, transparent 1.6px); background-size: 16px 16px; opacity: .22;
    -webkit-mask-image: linear-gradient(105deg, transparent 45%, #000 100%); mask-image: linear-gradient(105deg, transparent 45%, #000 100%);
}

/* The design gallery: tenues from the configurator, scrolled sideways. */
.elementor .bs-gallery__track.e-con { display: flex; flex-wrap: nowrap; gap: 18px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 6px 2px 14px; margin-top: 8px; scrollbar-width: thin; scrollbar-color: #ea7c1f #ffffff1a; }
.elementor .bs-gallery__card.e-con { flex: 0 0 236px; width: 236px; scroll-snap-align: start; position: relative; background: #161b22; border-radius: 18px; overflow: hidden; transition: transform .25s ease, box-shadow .25s ease; }
.elementor .bs-gallery__card.e-con:hover { transform: translateY(-6px); box-shadow: 0 18px 40px #00000066; }
.elementor .bs-gallery__card img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; }
.elementor .bs-gallery__name { padding: 14px 16px 16px; }
.elementor .bs-gallery__name p { margin: 0; font-weight: 750; font-size: 15px; }
.elementor .bs-gallery__name a { color: #fff; text-decoration: none; }
.elementor .bs-gallery__name a::after { content: ''; position: absolute; inset: 0; }
.elementor .bs-gallery__name p::after { content: ' \2192'; color: #ea7c1f; }
.elementor-edit-mode .bs-gallery__name a::after { display: none; }

/* References: client logos and featured projects. */
.elementor .bs-logo-row.e-con { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 16px; margin: 34px 0 40px; }
.elementor .bs-logo-slot img { display: block; width: 100%; height: auto; border-radius: 12px; }
.elementor .bs-projects.e-con { gap: 24px; }
.elementor .bs-project.e-con { background: #fff; border-radius: 18px; overflow: hidden; box-shadow: 0 10px 30px #0d111714; transition: transform .25s ease, box-shadow .25s ease; padding-bottom: 24px; }
.elementor .bs-project.e-con:hover { transform: translateY(-4px); box-shadow: 0 18px 40px #0d11171f; }
.elementor .bs-project__photo img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.elementor .bs-project__kicker { padding: 20px 24px 0; }
.elementor .bs-project__kicker p { margin: 0; color: #a54800; font-size: 12px; font-weight: 750; letter-spacing: .16em; text-transform: uppercase; }
.elementor .bs-project__name { padding: 6px 24px 0; }
.elementor .bs-project__name .elementor-heading-title { font-size: 22px; font-weight: 850; color: #0d1117; }
.elementor .bs-project__text { padding: 8px 24px 0; }
.elementor .bs-project__text p { margin: 0; color: #535f6b; line-height: 1.6; }
.elementor .bs-home-references.e-con { background: #fff; }

/* Pictograms above the promises and the price and delivery points. */
/* (On the heading: Elementor uses a container's own ::before for background overlays.) */
.elementor .bs-feature > .elementor-widget-heading::before {
    content: ''; display: block; width: 54px; height: 54px; border-radius: 16px; margin-bottom: 20px;
    background: #fff1e4 var(--bs-icon) center / 26px no-repeat;
}
.elementor .bs-icon-eye { --bs-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ea580c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 12s4-7 11-7 11 7 11 7-4 7-11 7S1 12 1 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E"); }
.elementor .bs-icon-check { --bs-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ea580c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2l8 4v6c0 5-3.5 8.5-8 10-4.5-1.5-8-5-8-10V6z'/%3E%3Cpath d='M8.5 12l2.5 2.5 4.5-5'/%3E%3C/svg%3E"); }
.elementor .bs-icon-swatch { --bs-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ea580c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20c1.1 0 2-.9 2-2 0-.5-.2-1-.5-1.3-.3-.4-.5-.8-.5-1.3 0-1.1.9-2 2-2h2.3A4.7 4.7 0 0 0 22 10.7C22 5.9 17.5 2 12 2z'/%3E%3Ccircle cx='7.5' cy='10.5' r='1.2'/%3E%3Ccircle cx='10.5' cy='6.5' r='1.2'/%3E%3Ccircle cx='15.5' cy='7' r='1.2'/%3E%3C/svg%3E"); }
.elementor .bs-icon-tag { --bs-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ea580c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.6 13.4l-7.2 7.2a2 2 0 0 1-2.8 0L2 12V2h10l8.6 8.6a2 2 0 0 1 0 2.8z'/%3E%3Ccircle cx='7' cy='7' r='1.5'/%3E%3C/svg%3E"); }
.elementor .bs-icon-clock { --bs-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ea580c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E"); }
.elementor .bs-icon-truck { --bs-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ea580c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 4h14v12H1zM15 9h4l3 3v4h-7z'/%3E%3Ccircle cx='5.5' cy='18.5' r='2'/%3E%3Ccircle cx='18.5' cy='18.5' r='2'/%3E%3C/svg%3E"); }

/* Garment cards lift a little under the pointer. */
.elementor .bs-garment.e-con { transition: transform .25s ease, box-shadow .25s ease; }
.elementor .bs-garment.e-con:hover { transform: translateY(-5px); box-shadow: 0 16px 36px #0d11171a; }

/* Sections come in softly as they scroll into view (assets-reveal.js). */
.bs-reveal .elementor > .e-con:not(:first-child) { opacity: 0; transform: translateY(26px); transition: opacity .7s ease, transform .7s ease; }
.bs-reveal .elementor > .e-con.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
    .bs-reveal .elementor > .e-con:not(:first-child) { opacity: 1; transform: none; transition: none; }
    .elementor .bs-gallery__card.e-con, .elementor .bs-project.e-con, .elementor .bs-garment.e-con { transition: none; }
}
@media (max-width: 860px) {
    .elementor .bs-logo-row.e-con { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .elementor .bs-gallery__card.e-con { flex-basis: 200px; width: 200px; }
}

/* The turning shirt, in the studio (tools/install-studio-turntable.php): a framed photo-like card on the section's dark. */
.elementor .bs-turntable-wrap { width: 100%; }
.elementor .bs-turntable-wrap video { display: block; width: 100%; height: auto; aspect-ratio: 960 / 808; background: #101c2c; object-fit: cover; border-radius: 20px; box-shadow: 0 30px 70px #0006, 0 0 0 1px #ffffff14; }
.elementor .bs-turntable-wrap .elementor-wrapper { background: transparent; aspect-ratio: auto; }
.elementor .bs-home-showcase .elementor-heading-title { color: #fff; }
.elementor .bs-home-showcase .elementor-widget-text-editor:not(:first-child) p { color: #c4ccd4; }

/* The design gallery on light: white cards. */
.elementor .bs-home-gallery .elementor-heading-title { color: #0d1117; }
.elementor .bs-home-gallery .bs-gallery__card.e-con { background: #fff; box-shadow: 0 8px 24px #0d111714; }
.elementor .bs-home-gallery .bs-gallery__card.e-con:hover { box-shadow: 0 18px 40px #0d111726; }
.elementor .bs-home-gallery .bs-gallery__name a { color: #0d1117; }
.elementor .bs-home-gallery .bs-gallery__track.e-con { scrollbar-color: #ea7c1f #0d11171a; }

/* A page that opens with a full-bleed photo hero, as the homepage does (meta _bs_full_hero, the business page): the bar floats over it until the page scrolls. */
body.bs-full-hero .ct-container-full, body.bs-full-hero #main-container > main { padding-top: 0 !important; padding-bottom: 0; margin-top: 0 !important; }
body.bs-full-hero:not(.home) .bs-header:not(.is-stuck) { background: transparent; backdrop-filter: none; box-shadow: none; }
body.bs-full-hero .entry-content > .elementor { margin: 0; }
body.bs-full-hero.elementor-page .entry-content { margin-bottom: 0; }
/* Links in the business page's steps, on the dark band. */
.elementor .bs-business-steps a { color: #f39540; font-weight: 700; }

/* A page that opens with the garment grid (the clothing page): the band under the header takes the grid's colour. */
body:has(.elementor > .e-con.bs-garments:first-child) { background: #f6f5f2; }
