/**
 * style.css — Blackwood Collections
 * Componentes BEM. Consume var(). No define variables.
 *
 * SMACSS: Base / Layout / Modules / State / Utils
 */

/* ── Base ─────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { font-family: var(--bw-font-primary); font-weight: var(--bw-font-weight-reg); color: var(--bw-color-dark); background-color: var(--bw-color-light); -webkit-font-smoothing: antialiased; margin: 0; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button { cursor: pointer; font-family: inherit; border: none; background: none; padding: 0; }

/* ── Layout ───────────────────────────────────────────── */
.bw-container { max-width: var(--bw-max-width); margin-inline: auto; padding-inline: var(--bw-padding-x); }
.bw-section { padding-block: var(--bw-space-section); }
.bw-section--light { background-color: var(--bw-color-light); }
.bw-section--dark  { background-color: var(--bw-color-dark);  }
.bw-section--white { background-color: var(--bw-color-white); }
.bw-section--blue  { background-color: var(--bw-color-blue);  }
.site-main { padding-top: var(--bw-nav-height); }

/* ── bw-pill ──────────────────────────────────────────── */
.bw-pill { display: inline-block; padding: 0.2em 0.85em; border-radius: var(--bw-radius-pill); line-height: 1.4; }
.bw-pill--blue   { background-color: var(--bw-color-blue);   color: var(--bw-color-white); }
.bw-pill--violet { background-color: var(--bw-color-violet); color: var(--bw-color-white); }

/* ── bw-btn ───────────────────────────────────────────── */
.bw-btn { display: inline-flex; align-items: center; gap: 0.6em; border-radius: var(--bw-radius-pill); font-family: var(--bw-font-primary); font-weight: var(--bw-font-weight-reg); font-size: var(--bw-text-base); line-height: 1; transition: background-color var(--bw-transition-base), color var(--bw-transition-base), border-color var(--bw-transition-base); text-decoration: none; cursor: pointer; }
.bw-btn svg { flex-shrink: 0; width: 1em; height: 1em; }
.bw-btn--primary { background-color: var(--bw-color-blue); color: var(--bw-color-white); padding: 1em 2em; border: 2px solid var(--bw-color-blue); }
.bw-btn--primary:hover { background-color: var(--bw-color-blue-hover); border-color: var(--bw-color-blue-hover); }
.bw-btn--outline { background-color: transparent; color: var(--bw-color-dark); padding: 1em 2em; border: 2px solid var(--bw-border-light); }
.bw-btn--outline:hover { background-color: var(--bw-color-dark); color: var(--bw-color-white); border-color: var(--bw-color-dark); }
.bw-btn--outline-white { background-color: transparent; color: var(--bw-color-white); padding: 1em 2.5em; border: 2px solid rgba(var(--bw-rgb-white), 0.15); }
.bw-btn--outline-white:hover { background-color: rgba(var(--bw-rgb-white), 0.10); }

/* ── bw-section-header ────────────────────────────────── */
.bw-section-header { margin-bottom: var(--bw-space-xl); }
.bw-u-tag { display: block; font-size: var(--bw-text-sm); letter-spacing: 0.2em; text-transform: uppercase; font-weight: var(--bw-font-weight-semi); color: var(--bw-color-blue); margin-bottom: 1rem; }
.bw-section-header__heading { font-size: var(--bw-text-section); line-height: 1; letter-spacing: -0.03em; font-weight: var(--bw-font-weight-reg); color: var(--bw-color-dark); margin: 0; }
.bw-section-header__heading--white { color: var(--bw-color-white); }
.bw-section-header__body { font-size: var(--bw-text-lg); color: var(--bw-text-subtle); line-height: 1.65; max-width: 36rem; margin-top: var(--bw-space-md); }
.bw-section-header--split { display: grid; grid-template-columns: 1fr; gap: var(--bw-space-lg); margin-bottom: var(--bw-space-xl); }
@media (min-width: 1024px) { .bw-section-header--split { grid-template-columns: 1fr 2fr; align-items: start; } }

/* ── bw-hero ──────────────────────────────────────────── */
.bw-hero { position: relative; min-height: 100svh; overflow: hidden; background-color: var(--bw-color-light); margin-top: calc(-1 * var(--bw-nav-height)); padding-top: var(--bw-nav-height); }
.bw-hero__inner { display: grid; grid-template-columns: 1fr; gap: var(--bw-space-xl); align-items: center; min-height: calc(100svh - 200px); padding-block: var(--bw-space-2xl); }
@media (min-width: 1024px) { .bw-hero__inner { grid-template-columns: 1fr 1fr; gap: var(--bw-space-lg); } }
.bw-hero__heading { font-size: var(--bw-text-hero); line-height: 0.95; letter-spacing: -0.04em; font-weight: var(--bw-font-weight-reg); color: var(--bw-color-dark); max-width: 36rem; margin: 0 0 var(--bw-space-md); }
.bw-hero__subtext { font-size: var(--bw-text-lg); color: var(--bw-text-muted); max-width: 30rem; line-height: 1.6; margin: 0 0 var(--bw-space-lg); }
.bw-hero__cta-group { display: flex; flex-wrap: wrap; gap: 1rem; }
.bw-hero__bento { display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(2, 1fr); gap: 0.75rem; height: 420px; }
@media (min-width: 1024px) { .bw-hero__bento { height: 500px; } }
.bw-hero__bento-main { grid-column: span 2; grid-row: span 2; border-radius: var(--bw-radius-lg); overflow: hidden; position: relative; cursor: pointer; }
.bw-hero__bento-main img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--bw-transition-img); }
.bw-hero__bento-main:hover img { transform: scale(1.05); }
.bw-hero__bento-main::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,0.5), transparent); }
.bw-hero__bento-overlay { position: absolute; bottom: 1.25rem; left: 1.25rem; right: 1.25rem; z-index: 1; display: flex; align-items: flex-end; justify-content: space-between; }
.bw-hero__bento-label { color: rgba(255,255,255,0.6); font-size: var(--bw-text-xs); letter-spacing: 0.2em; text-transform: uppercase; display: block; margin-bottom: 0.25rem; }
.bw-hero__bento-title { color: var(--bw-color-white); font-size: var(--bw-text-sm); font-weight: var(--bw-font-weight-reg); margin: 0; }
.bw-hero__play-btn { width: 3rem; height: 3rem; border-radius: var(--bw-radius-pill); background-color: var(--bw-color-blue); display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: transform var(--bw-transition-base); }
.bw-hero__bento-main:hover .bw-hero__play-btn { transform: scale(1.1); }
.bw-hero__bento-secondary { border-radius: var(--bw-radius-md); overflow: hidden; }
.bw-hero__bento-secondary img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--bw-transition-slow); }
.bw-hero__bento-secondary:hover img { transform: scale(1.1); }

/* ── bw-marquee ───────────────────────────────────────── */
.bw-marquee { overflow: hidden; padding-block: 1.25rem; background-color: var(--bw-color-light); }
.bw-marquee__track { display: flex; gap: 2rem; white-space: nowrap; animation: bwMarqueeScroll 30s linear infinite; }
.bw-marquee__item { display: inline-flex; align-items: center; gap: 2rem; font-size: clamp(2rem, 4.5vw, 3.75rem); letter-spacing: -0.03em; color: rgba(var(--bw-rgb-dark), 0.14); font-weight: var(--bw-font-weight-reg); flex-shrink: 0; }
.bw-marquee__dot { display: inline-block; width: 0.5rem; height: 0.5rem; border-radius: var(--bw-radius-pill); background-color: rgba(var(--bw-rgb-dark), 0.20); flex-shrink: 0; }
@keyframes bwMarqueeScroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ── bw-stats ─────────────────────────────────────────── */
.bw-stats { padding-block: var(--bw-space-xl); }
.bw-stats__grid { display: grid; grid-template-columns: repeat(2, 1fr); background-color: var(--bw-color-white); border: 1px solid var(--bw-border-subtle); border-radius: var(--bw-radius-lg); overflow: hidden; }
@media (min-width: 768px) { .bw-stats__grid { grid-template-columns: repeat(4, 1fr); } }
.bw-stats__item { padding: 2rem 2.5rem; display: flex; flex-direction: column; align-items: center; text-align: center; border-right: 1px solid var(--bw-border-subtle); }
.bw-stats__item:last-child { border-right: none; }
@media (max-width: 767px) { .bw-stats__item:nth-child(2n) { border-right: none; } .bw-stats__item:nth-child(-n+2) { border-bottom: 1px solid var(--bw-border-subtle); } }
.bw-stats__value { font-size: clamp(2.5rem, 5vw, 4rem); line-height: 0.9; letter-spacing: -0.04em; font-weight: var(--bw-font-weight-reg); color: var(--bw-color-dark); margin-bottom: 0.75rem; }
.bw-stats__label { font-size: var(--bw-text-sm); color: var(--bw-text-muted); }

/* ── bw-about ─────────────────────────────────────────── */
.bw-about__grid { display: grid; grid-template-columns: 1fr; gap: var(--bw-space-2xl); align-items: start; }
@media (min-width: 1024px) { .bw-about__grid { grid-template-columns: repeat(2, 1fr); } }
.bw-about__bento { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.75rem; }
.bw-about__bento-img { border-radius: var(--bw-radius-md); overflow: hidden; aspect-ratio: 3 / 4; }
.bw-about__bento-img img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--bw-transition-slow); }
.bw-about__bento-img:hover img { transform: scale(1.05); }
.bw-about__bento-img--wide { grid-column: span 2; aspect-ratio: 2 / 1; }

/* ── bw-pipeline ──────────────────────────────────────── */
.bw-pipeline__grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 640px)  { .bw-pipeline__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .bw-pipeline__grid { grid-template-columns: repeat(5, 1fr); } }
.bw-pipeline__step { background-color: var(--bw-color-light); border-radius: var(--bw-radius-lg); padding: 1.75rem; cursor: pointer; transition: background-color var(--bw-transition-base); }
.bw-pipeline__step:hover { background-color: var(--bw-color-blue); }
.bw-pipeline__number { font-size: 3rem; line-height: 1; color: rgba(var(--bw-rgb-blue), 0.15); font-weight: var(--bw-font-weight-reg); display: block; margin-bottom: 1rem; transition: color var(--bw-transition-base); }
.bw-pipeline__step:hover .bw-pipeline__number { color: rgba(var(--bw-rgb-white), 0.20); }
.bw-pipeline__title { font-size: var(--bw-text-base); font-weight: var(--bw-font-weight-reg); color: var(--bw-color-dark); margin: 0 0 0.5rem; transition: color var(--bw-transition-base); }
.bw-pipeline__step:hover .bw-pipeline__title { color: var(--bw-color-white); }
.bw-pipeline__desc { font-size: var(--bw-text-sm); color: var(--bw-text-muted); line-height: 1.55; margin: 0; transition: color var(--bw-transition-base); }
.bw-pipeline__step:hover .bw-pipeline__desc { color: rgba(var(--bw-rgb-white), 0.60); }

/* ── bw-ecosystem ─────────────────────────────────────── */
.bw-ecosystem__grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
@media (min-width: 768px)  { .bw-ecosystem__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1280px) { .bw-ecosystem__grid { grid-template-columns: repeat(4, 1fr); } }
.bw-ecosystem__card { background-color: var(--bw-color-white); border: 1px solid var(--bw-border-subtle); border-radius: var(--bw-radius-lg); overflow: hidden; display: flex; flex-direction: column; transition: box-shadow var(--bw-transition-base), transform var(--bw-transition-base); }
.bw-ecosystem__card:hover { box-shadow: var(--bw-shadow-hover); transform: translateY(-4px); }
.bw-ecosystem__card-img { aspect-ratio: 16 / 9; overflow: hidden; }
.bw-ecosystem__card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--bw-transition-img); }
.bw-ecosystem__card:hover .bw-ecosystem__card-img img { transform: scale(1.05); }
.bw-ecosystem__card-body { padding: 1.5rem; display: flex; flex-direction: column; flex: 1; }
.bw-ecosystem__card-tag { font-family: var(--bw-font-mono); font-size: var(--bw-text-xs); letter-spacing: 0.2em; color: var(--bw-color-blue); text-transform: uppercase; margin-bottom: 0.5rem; }
.bw-ecosystem__card-title { font-size: var(--bw-text-xl); font-weight: var(--bw-font-weight-reg); color: var(--bw-color-dark); margin: 0 0 0.25rem; }
.bw-ecosystem__card-subtitle { font-size: var(--bw-text-sm); color: var(--bw-text-muted); margin: 0 0 1rem; }
.bw-ecosystem__card-desc { font-size: var(--bw-text-sm); color: var(--bw-text-subtle); line-height: 1.6; margin: 0 0 1.25rem; flex: 1; }
.bw-ecosystem__card-services { list-style: none; padding: 0; margin: 0 0 1.5rem; display: flex; flex-direction: column; gap: 0.4rem; }
.bw-ecosystem__card-services li { font-size: var(--bw-text-xs); color: var(--bw-text-muted); padding-left: 1rem; position: relative; }
.bw-ecosystem__card-services li::before { content: '—'; position: absolute; left: 0; color: var(--bw-color-blue); }
.bw-ecosystem__card-cta { display: inline-flex; align-items: center; gap: 0.4rem; font-size: var(--bw-text-sm); color: var(--bw-color-blue); font-weight: var(--bw-font-weight-med); transition: gap var(--bw-transition-fast); text-decoration: none; margin-top: auto; }
.bw-ecosystem__card-cta:hover { gap: 0.7rem; }

/* ── bw-portfolio ─────────────────────────────────────── */
.bw-portfolio__track { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1rem; overflow-x: auto; scrollbar-width: none; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; }
.bw-portfolio__track::-webkit-scrollbar { display: none; }
.bw-portfolio__item { scroll-snap-align: start; }
.bw-portfolio__card { display: block; text-decoration: none; }
.bw-portfolio__card-img { aspect-ratio: 3 / 4; border-radius: var(--bw-radius-lg); overflow: hidden; position: relative; margin-bottom: 1rem; }
.bw-portfolio__card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--bw-transition-slow); }
.bw-portfolio__card:hover .bw-portfolio__card-img img { transform: scale(1.05); }
.bw-portfolio__card-nda { width: 100%; height: 100%; background-color: var(--bw-color-dark); display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 0.75rem; }
.bw-portfolio__card-nda-label { font-size: var(--bw-text-xs); letter-spacing: 0.2em; text-transform: uppercase; color: rgba(255,255,255,0.40); font-weight: var(--bw-font-weight-med); }
.bw-portfolio__card-title { font-size: 1.125rem; font-weight: var(--bw-font-weight-reg); color: var(--bw-color-dark); margin: 0 0 0.25rem; transition: color var(--bw-transition-fast); }
.bw-portfolio__card:hover .bw-portfolio__card-title { color: var(--bw-color-blue); }
.bw-portfolio__card-meta { font-size: var(--bw-text-sm); color: var(--bw-text-muted); margin: 0; }
.bw-portfolio__card-badge { font-size: var(--bw-text-xs); letter-spacing: 0.15em; text-transform: uppercase; font-weight: var(--bw-font-weight-med); color: rgba(var(--bw-rgb-dark), 0.40); background-color: rgba(var(--bw-rgb-dark), 0.05); border-radius: var(--bw-radius-pill); padding: 0.15em 0.65em; }
.bw-portfolio__nav { display: flex; gap: 0.75rem; margin-top: 2rem; }
.bw-portfolio__nav-btn { width: 2.5rem; height: 2.5rem; border-radius: var(--bw-radius-pill); border: 1px solid var(--bw-border-light); display: flex; align-items: center; justify-content: center; color: var(--bw-text-muted); transition: background-color var(--bw-transition-fast), color var(--bw-transition-fast), border-color var(--bw-transition-fast); cursor: pointer; background: transparent; }
.bw-portfolio__nav-btn:hover { background-color: var(--bw-color-dark); color: var(--bw-color-white); border-color: var(--bw-color-dark); }

/* ── bw-services-tabs ─────────────────────────────────── */
.bw-services-tabs__nav { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1.5rem; }
.bw-services-tabs__tab { padding: 0.65em 1.25em; border-radius: var(--bw-radius-pill); font-size: var(--bw-text-sm); font-weight: var(--bw-font-weight-reg); color: rgba(var(--bw-rgb-dark), 0.60); border: 2px solid var(--bw-border-light); background: transparent; cursor: pointer; transition: all var(--bw-transition-base); }
.bw-services-tabs__tab:hover { border-color: rgba(var(--bw-rgb-dark), 0.25); color: var(--bw-color-dark); }
.bw-services-tabs__tab--active { background-color: var(--bw-color-blue); color: var(--bw-color-white); border-color: var(--bw-color-blue); font-weight: var(--bw-font-weight-med); }
.bw-services-tabs__desc { font-size: var(--bw-text-lg); color: var(--bw-text-subtle); line-height: 1.6; max-width: 42rem; margin: 0 0 var(--bw-space-lg); }
.bw-services-tabs__grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 640px)  { .bw-services-tabs__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1280px) { .bw-services-tabs__grid { grid-template-columns: repeat(4, 1fr); } }
.bw-service-card { background-color: var(--bw-color-white); border-radius: var(--bw-radius-lg); overflow: hidden; border: 1px solid var(--bw-border-subtle); transition: box-shadow var(--bw-transition-base); }
.bw-service-card:hover { box-shadow: var(--bw-shadow-hover); }
.bw-service-card__img { height: 180px; overflow: hidden; position: relative; }
.bw-service-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--bw-transition-slow); }
.bw-service-card:hover .bw-service-card__img img { transform: scale(1.05); }
.bw-service-card__img::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,0.5), transparent); }
.bw-service-card__img-title { position: absolute; bottom: 1rem; left: 1rem; right: 1rem; z-index: 1; color: var(--bw-color-white); font-size: var(--bw-text-base); font-weight: var(--bw-font-weight-reg); margin: 0; }
.bw-service-card__body { padding: 1.25rem; }
.bw-service-card__desc { font-size: var(--bw-text-sm); color: var(--bw-text-subtle); line-height: 1.6; margin: 0; }

/* ── bw-feature-cards ─────────────────────────────────── */
.bw-feature-cards__grid { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
@media (min-width: 1024px) { .bw-feature-cards__grid { grid-template-columns: repeat(2, 1fr); } }
.bw-feature-card { display: block; border-radius: var(--bw-radius-lg); overflow: hidden; position: relative; aspect-ratio: 4 / 3; text-decoration: none; }
.bw-feature-card__bg { width: 100%; height: 100%; object-fit: cover; mix-blend-mode: multiply; opacity: 0.80; transition: transform var(--bw-transition-slow); }
.bw-feature-card:hover .bw-feature-card__bg { transform: scale(1.05); }
.bw-feature-card__overlay { position: absolute; inset: 0; padding: 2rem; display: flex; flex-direction: column; justify-content: flex-end; }
.bw-feature-card__title { font-size: var(--bw-text-2xl); font-weight: var(--bw-font-weight-reg); color: var(--bw-color-white); line-height: 1.05; margin: 0 0 0.5rem; }
.bw-feature-card__desc { font-size: var(--bw-text-sm); color: rgba(255,255,255,0.70); max-width: 26rem; line-height: 1.5; margin: 0 0 1.25rem; }
.bw-feature-card__cta { display: inline-flex; align-items: center; gap: 0.5rem; background-color: var(--bw-color-white); color: var(--bw-color-dark); padding: 0.65em 1.25em; border-radius: var(--bw-radius-pill); font-size: var(--bw-text-base); font-weight: var(--bw-font-weight-reg); transition: background-color var(--bw-transition-fast), color var(--bw-transition-fast); width: fit-content; }
.bw-feature-card:hover .bw-feature-card__cta { background-color: var(--bw-color-dark); color: var(--bw-color-white); }
.bw-feature-card--orange { background-color: var(--bw-color-orange); }
.bw-feature-card--blue   { background-color: var(--bw-color-blue);   }
.bw-feature-card--dark   { background-color: var(--bw-color-dark);   }

/* ── bw-values ────────────────────────────────────────── */
.bw-values__grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 768px) { .bw-values__grid { grid-template-columns: repeat(3, 1fr); } }
.bw-values__team-card { background-color: var(--bw-color-dark); border-radius: var(--bw-radius-lg); padding: 2rem; color: var(--bw-color-white); display: flex; flex-direction: column; justify-content: space-between; min-height: 280px; }
@media (min-width: 768px) { .bw-values__team-card { grid-row: span 2; } }
.bw-values__team-tag { font-size: var(--bw-text-sm); letter-spacing: 0.2em; text-transform: uppercase; color: rgba(255,255,255,0.40); display: block; margin-bottom: 0.5rem; }
.bw-values__team-number { font-size: clamp(3rem, 6vw, 5rem); line-height: 0.9; letter-spacing: -0.04em; font-weight: var(--bw-font-weight-reg); color: var(--bw-color-white); display: block; margin-bottom: 1.5rem; }
.bw-values__team-title { font-size: var(--bw-text-base); font-weight: var(--bw-font-weight-reg); color: var(--bw-color-white); margin: 0 0 1rem; }
.bw-values__team-desc { font-size: var(--bw-text-sm); color: rgba(255,255,255,0.40); line-height: 1.65; margin: 0 0 1.5rem; }
.bw-values__team-badge { display: inline-block; border: 1px solid rgba(255,255,255,0.20); color: var(--bw-color-white); font-size: var(--bw-text-sm); font-weight: var(--bw-font-weight-med); padding: 0.6em 1.25em; border-radius: var(--bw-radius-pill); width: fit-content; }
.bw-values__value-card { background-color: var(--bw-color-white); border: 1px solid var(--bw-border-subtle); border-radius: var(--bw-radius-lg); padding: 2rem; transition: border-color var(--bw-transition-base); }
.bw-values__value-card:hover { border-color: rgba(var(--bw-rgb-blue), 0.20); }
.bw-values__value-icon { color: rgba(var(--bw-rgb-dark), 0.30); margin-bottom: 1.25rem; width: 1.25rem; height: 1.25rem; transition: color var(--bw-transition-fast); }
.bw-values__value-card:hover .bw-values__value-icon { color: var(--bw-color-blue); }
.bw-values__value-title { font-size: var(--bw-text-base); font-weight: var(--bw-font-weight-reg); color: var(--bw-color-dark); margin: 0 0 0.75rem; }
.bw-values__value-desc { font-size: var(--bw-text-sm); color: var(--bw-text-muted); line-height: 1.65; margin: 0; }

/* ── bw-showreel ──────────────────────────────────────── */
.bw-showreel { padding-block: var(--bw-space-xl); }
.bw-showreel__wrapper { border-radius: var(--bw-radius-xl); overflow: hidden; aspect-ratio: 21 / 9; position: relative; cursor: pointer; }
.bw-showreel__wrapper img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--bw-transition-img); }
.bw-showreel__wrapper:hover img { transform: scale(1.05); }
.bw-showreel__overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.40); display: flex; flex-direction: column; align-items: center; justify-content: center; transition: background var(--bw-transition-base); }
.bw-showreel__wrapper:hover .bw-showreel__overlay { background: rgba(0,0,0,0.30); }
.bw-showreel__play { width: 5rem; height: 5rem; border-radius: var(--bw-radius-pill); background-color: var(--bw-color-blue); display: flex; align-items: center; justify-content: center; margin-bottom: 1.5rem; transition: transform var(--bw-transition-base); }
.bw-showreel__wrapper:hover .bw-showreel__play { transform: scale(1.1); }
.bw-showreel__title { font-size: var(--bw-text-xl); font-weight: var(--bw-font-weight-reg); color: var(--bw-color-white); margin: 0 0 0.5rem; }
.bw-showreel__year { font-size: var(--bw-text-sm); letter-spacing: 0.2em; text-transform: uppercase; color: rgba(255,255,255,0.40); }

/* ── bw-manifesto ─────────────────────────────────────── */
.bw-manifesto__heading { font-size: var(--bw-text-3xl); line-height: 0.95; letter-spacing: -0.04em; font-weight: var(--bw-font-weight-reg); color: var(--bw-color-white); max-width: 62rem; margin: 0; }
.bw-manifesto__inline-img { display: inline-block; width: 1.5em; height: 0.65em; object-fit: cover; border-radius: var(--bw-radius-md); vertical-align: middle; margin-inline: 0.15em; }

/* ── bw-cta ───────────────────────────────────────────── */
.bw-cta__heading { font-size: var(--bw-text-3xl); line-height: 0.95; letter-spacing: -0.04em; font-weight: var(--bw-font-weight-reg); color: var(--bw-color-white); max-width: 62rem; margin: 0 0 var(--bw-space-2xl); }
.bw-cta__group { display: flex; flex-wrap: wrap; gap: 1rem; }

/* ── bw-team ──────────────────────────────────────────── */
.bw-team-card { background-color: var(--bw-color-white); border: 1px solid var(--bw-border-subtle); border-radius: var(--bw-radius-lg); overflow: hidden; transition: box-shadow var(--bw-transition-base); }
.bw-team-card:hover { box-shadow: var(--bw-shadow-hover); }
.bw-team-card__img { aspect-ratio: 3 / 4; overflow: hidden; }
.bw-team-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--bw-transition-slow); }
.bw-team-card:hover .bw-team-card__img img { transform: scale(1.05); }
.bw-team-card__body { padding: 1.25rem; }
.bw-team-card__name { font-size: var(--bw-text-base); font-weight: var(--bw-font-weight-med); color: var(--bw-color-dark); margin: 0 0 0.25rem; }
.bw-team-card__role { font-size: var(--bw-text-sm); color: var(--bw-color-blue); margin: 0 0 0.75rem; }
.bw-team-card__bio { font-size: var(--bw-text-sm); color: var(--bw-text-muted); line-height: 1.55; margin: 0 0 1rem; }
.bw-team-card__tags { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.bw-team-card__tag { font-size: var(--bw-text-xs); color: var(--bw-text-muted); background-color: rgba(var(--bw-rgb-dark), 0.05); border-radius: var(--bw-radius-pill); padding: 0.2em 0.65em; }

/* ── bw-ip-card ───────────────────────────────────────── */
.bw-ip-card { display: block; border-radius: var(--bw-radius-md); overflow: hidden; position: relative; text-decoration: none; }
.bw-ip-card--wide { grid-column: span 2; }
.bw-ip-card--wide .bw-ip-card__img { aspect-ratio: 2 / 1; }
.bw-ip-card__img { aspect-ratio: 3 / 4; }
.bw-ip-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--bw-transition-img); }
.bw-ip-card:hover .bw-ip-card__img img { transform: scale(1.05); }
.bw-ip-card__overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,0.80), rgba(0,0,0,0.20), transparent); }
.bw-ip-card__status { position: absolute; top: 0.75rem; left: 0.75rem; font-size: var(--bw-text-xs); letter-spacing: 0.15em; text-transform: uppercase; font-weight: var(--bw-font-weight-med); border-radius: var(--bw-radius-pill); padding: 0.25em 0.75em; border: 1px solid; }
.bw-ip-card__status--available { background-color: rgba(34,197,94,0.25); color: #4ade80; border-color: rgba(34,197,94,0.40); }
.bw-ip-card__status--dev { background-color: rgba(var(--bw-rgb-blue), 0.25); color: var(--bw-color-blue-muted); border-color: rgba(var(--bw-rgb-blue), 0.40); }
.bw-ip-card__status--sold { background-color: rgba(255,255,255,0.10); color: rgba(255,255,255,0.50); border-color: rgba(255,255,255,0.20); }
.bw-ip-card__info { position: absolute; bottom: 1rem; left: 1rem; right: 1rem; z-index: 1; }
.bw-ip-card__title { color: var(--bw-color-white); font-size: var(--bw-text-base); font-weight: var(--bw-font-weight-reg); margin: 0 0 0.25rem; line-height: 1.1; }
.bw-ip-card__genre { color: rgba(255,255,255,0.50); font-size: var(--bw-text-xs); margin: 0; }

/* ── State: reveal ────────────────────────────────────── */
.bw-reveal { opacity: 0; transform: translateY(2rem); transition: opacity 0.7s ease, transform 0.7s ease; }
.bw-reveal--visible { opacity: 1; transform: translateY(0); }
.bw-reveal--delay-1 { transition-delay: 0.10s; }
.bw-reveal--delay-2 { transition-delay: 0.20s; }
.bw-reveal--delay-3 { transition-delay: 0.30s; }
.bw-reveal--delay-4 { transition-delay: 0.40s; }

/* ── Utils ────────────────────────────────────────────── */
.bw-u-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.elementor-widget-container { overflow: visible; }
