/* v3 polish + mobile fixes
   loaded on every v3 page after the page's own <style>.
   intentionally uses !important to override card-specific positioning. */

:root {
  --v3-cream: #f6efe3;
  --v3-cream-2: #ebe0cc;
  --v3-ink: #15110d;
  --v3-fuchsia: #e54a7c;
  --v3-fuchsia-deep: #b8235a;
  --v3-oxblood: #5b1f2a;
  --v3-muted-readable: #4a4036;
  --v3-hair: #d8cab2;
}

/* ============ Photo card overlay readability ============ */
.tile--photo-a::after, .tile--photo-b::after, .tile--photo-c::after, .tile--photo-d::after,
[class*="card-photo"]::after, [class*="photo-card"]::after, .featured__card::after,
.phase__photo::after, .closer-photo::after, .hero__photo::before {
  background: linear-gradient(180deg, rgba(0,0,0,0) 25%, rgba(0,0,0,0.55) 65%, rgba(0,0,0,0.88) 100%) !important;
  z-index: 0 !important;
}
.tile--photo-a > *, .tile--photo-b > *, .tile--photo-c > *, .tile--photo-d > *,
[class*="card-photo"] > *, [class*="photo-card"] > *,
.featured__card > *, .phase__photo > * { position: relative; z-index: 1 !important; }

/* Text inside photo cards: full white with subtle shadow */
.tile--photo-a *, .tile--photo-b *, .tile--photo-c *, .tile--photo-d *,
[class*="card-photo"] *, .featured__card * {
  text-shadow: 0 1px 12px rgba(0,0,0,0.45);
}

/* ============ Faint label contrast bump ============ */
.label, .tile__eyebrow, .nav-dropdown__heading, .field label, .footer__col h4,
.row-stats .stat__label, .phase__meta-label, .glass-card__title {
  color: var(--v3-oxblood) !important;
  font-weight: 600 !important;
  opacity: 1 !important;
}

/* ============ Form polish ============ */
input[type="text"], input[type="email"], input[type="tel"], textarea, select {
  font-size: 16px !important;
  font-family: 'Inter', sans-serif !important;
  color: var(--v3-ink) !important;
  background: rgba(255,250,238,0.85) !important;
  border: 1px solid var(--v3-hair) !important;
  border-radius: 14px !important;
  padding: 13px 16px !important;
  width: 100% !important;
  transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;
}
input[type="text"]:focus, input[type="email"]:focus, input[type="tel"]:focus,
textarea:focus, select:focus {
  outline: none !important;
  border-color: var(--v3-fuchsia-deep) !important;
  background: #fffaee !important;
  box-shadow: 0 0 0 4px rgba(229,74,124,0.12) !important;
}
input::placeholder, textarea::placeholder {
  color: rgba(21,17,13,0.5) !important;
  font-weight: 400;
}
textarea { min-height: 110px !important; line-height: 1.55 !important; resize: vertical; }

select {
  appearance: none; -webkit-appearance: none; -moz-appearance: none;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--v3-ink) 50%),
    linear-gradient(135deg, var(--v3-ink) 50%, transparent 50%);
  background-position: calc(100% - 20px) center, calc(100% - 14px) center;
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
  padding-right: 38px !important;
  cursor: pointer;
}
.field label, .form-card label {
  display: block !important;
  margin-bottom: 6px !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 11px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.14em !important;
}

/* ============ Mobile sweep ============ */
@media (max-width: 768px) {
  /* Consistent section rhythm */
  section, .hero, .footer, .bento, .quote-form, .cta-band, .statement-band, .row-stats {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
  section, .hero, .cta-band, .statement-band, .quote-form { padding-top: 48px !important; padding-bottom: 48px !important; }

  /* Bento + grids collapse */
  .bento, .hero__grid, .row-stats, .quote-form__grid, .statement-band__grid,
  .commitments__grid, .construction__grid, .featured__card, .story__body, .footer,
  .field-row, .other__grid, .contact__grid, .included__grid, .partnerships__grid,
  .pillars__grid, .stats__grid {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
  .bento { gap: 14px !important; }
  .bento [class*="tile--"]:not(.tile--photo-a):not(.tile--photo-b):not(.tile--photo-c):not(.tile--photo-d) {
    grid-column: span 1 !important;
  }

  /* Photo cards: vertical-friendly */
  .tile--photo-a, .tile--photo-b, .tile--photo-c, .tile--photo-d, [class*="card-photo"] {
    min-height: 380px !important;
    background-size: cover !important;
    background-position: center 32% !important;
  }
  .hero__photo {
    min-height: 460px !important;
    aspect-ratio: 4 / 5;
    background-size: cover !important;
    background-position: center 30% !important;
  }
  .hero__main { padding: 36px 24px !important; min-height: auto !important; }

  /* Form spacing/inputs */
  .field { margin-bottom: 12px !important; }
  .glass-card, .form-card { padding: 24px 20px !important; border-radius: 22px !important; }

  /* Type sizes */
  .hero__title, .hero-cat__title, h1 { font-size: clamp(40px, 10vw, 56px) !important; line-height: 1.04 !important; }
  h2, .section-head h2, .statement-band__title { font-size: clamp(28px, 7vw, 38px) !important; line-height: 1.08 !important; }
  h3, .tile__title { font-size: clamp(22px, 5.5vw, 28px) !important; line-height: 1.15 !important; }

  /* Nav: collapse links */
  .header__nav { display: none !important; }
  .nav-item__caret { display: none; }
  .nav-dropdown { display: none !important; }
  .header__cta { padding: 10px 16px !important; font-size: 12px !important; }

  /* Footer */
  .footer { padding: 56px 20px 32px !important; gap: 36px !important; }
  .footer__col h4 { margin-bottom: 10px !important; }
  .footer__signup { padding: 18px !important; }
  .footer__signup-form { flex-direction: column !important; gap: 10px !important; }
  .footer__signup-btn { width: 100% !important; }

  /* Trust strip + stats */
  .row-stats { display: flex !important; flex-direction: column !important; gap: 12px !important; }
  .row-stats .stat { padding: 18px 20px !important; border-radius: 18px !important; background: rgba(255,250,238,0.6); }
}

/* ============ Mobile dropdown - hamburger version ============ */
@media (max-width: 768px) {
  .mobile-menu-btn { display: inline-flex !important; }
  .mobile-menu-panel.is-open { transform: translateY(0) !important; }
}
.mobile-menu-btn { display: none; background: transparent; border: 0; cursor: pointer; padding: 8px; gap: 4px; flex-direction: column; align-items: center; justify-content: center; }
.mobile-menu-btn span { display: block; width: 22px; height: 1.5px; background: var(--v3-ink); border-radius: 2px; transition: transform 0.2s, opacity 0.2s; }
.mobile-menu-panel { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: var(--v3-cream); z-index: 1100; padding: 80px 24px 24px; transform: translateY(-100%); transition: transform 0.3s cubic-bezier(0.16,1,0.3,1); overflow-y: auto; }
.mobile-menu-panel a { display: block; padding: 14px 0; font-family: 'Cormorant Garamond', serif; font-size: 24px; color: var(--v3-ink); border-bottom: 1px solid var(--v3-hair); }
.mobile-menu-panel__close { position: absolute; top: 24px; right: 24px; background: transparent; border: 0; cursor: pointer; font-size: 22px; }

/* ============ Chrome-ring CTAs (ported from f2 Mugler aesthetic) ============ */
/* Use multi-layer box-shadow for the chrome ring (more reliable across browsers than pseudo-element mask-composite). */
.btn--fuchsia, a.btn--fuchsia, .header__cta, a.header__cta, .form-submit, button.form-submit, button[type="submit"].form-submit {
  background: linear-gradient(135deg, #b8235a 0%, #e54a7c 100%) !important;
  color: #f6efe3 !important;
  padding: 16px 32px !important;
  border-radius: 999px !important;
  font-family: 'Inter', sans-serif !important;
  font-weight: 600 !important;
  font-size: 14.5px !important;
  letter-spacing: 0.01em !important;
  border: none !important;
  cursor: pointer;
  transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease !important;
  box-shadow:
    0 0 0 1px rgba(214,210,200,0.95),
    0 0 0 2.5px rgba(248,245,237,0.85),
    0 0 0 3.5px rgba(179,174,162,0.55),
    0 14px 30px -10px rgba(184, 35, 90, 0.55),
    inset 0 1px 0 rgba(255, 220, 230, 0.55) !important;
}
.btn--fuchsia:hover, a.btn--fuchsia:hover, .header__cta:hover, a.header__cta:hover, .form-submit:hover, button.form-submit:hover {
  transform: translateY(-1px) !important;
  background: linear-gradient(135deg, #e54a7c 0%, #b8235a 100%) !important;
  box-shadow:
    0 0 0 1px rgba(214,210,200,1),
    0 0 0 2.5px rgba(248,245,237,1),
    0 0 0 3.5px rgba(179,174,162,0.7),
    0 18px 36px -8px rgba(184, 35, 90, 0.65),
    inset 0 1px 0 rgba(255, 220, 230, 0.7) !important;
}

/* Footer signup keeps its ink fill but gets the same chrome ring */
.footer__signup-btn {
  background: linear-gradient(135deg, #15110d 0%, #2a1822 100%) !important;
  border: none !important;
  box-shadow:
    0 0 0 1px rgba(214,210,200,0.95),
    0 0 0 2.5px rgba(248,245,237,0.85),
    0 0 0 3.5px rgba(179,174,162,0.55),
    0 10px 22px -8px rgba(15, 17, 13, 0.45) !important;
}
.footer__signup-btn:hover {
  background: linear-gradient(135deg, #2a1822 0%, #b8235a 100%) !important;
  box-shadow:
    0 0 0 1px rgba(214,210,200,1),
    0 0 0 2.5px rgba(248,245,237,1),
    0 0 0 3.5px rgba(179,174,162,0.7),
    0 14px 28px -6px rgba(15, 17, 13, 0.55) !important;
}

/* ============ Maisone bento card text readability + gradient depth ============ */
/* Stronger gradient overlay so labels never fight bright fabric */
.tile--photo-a::after, .tile--photo-b::after, .tile--photo-c::after, .tile--photo-d::after {
  background: linear-gradient(180deg,
    rgba(15,17,13,0.55) 0%,
    rgba(15,17,13,0.12) 18%,
    rgba(15,17,13,0.05) 38%,
    rgba(15,17,13,0.55) 70%,
    rgba(15,17,13,0.92) 100%) !important;
}
/* Label at top of photo cards: full cream + drop-shadow for legibility */
.tile--photo-a .label, .tile--photo-b .label, .tile--photo-c .label, .tile--photo-d .label {
  color: rgba(246, 239, 227, 1) !important;
  text-shadow: 0 1px 8px rgba(0,0,0,0.5);
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  font-size: 11px !important;
}
/* Body / sub copy on photo cards: bigger + readable */
.tile--photo-a p, .tile--photo-b p, .tile--photo-c p, .tile--photo-d p {
  color: rgba(246, 239, 227, 0.95) !important;
  text-shadow: 0 1px 6px rgba(0,0,0,0.45);
  font-size: 13.5px !important;
  line-height: 1.5 !important;
  font-weight: 500 !important;
}
/* Tile titles on photo cards: bigger + crisper */
.tile--photo-a .tile__title, .tile--photo-b .tile__title, .tile--photo-c .tile__title, .tile--photo-d .tile__title,
.tile--photo-a h3, .tile--photo-b h3, .tile--photo-c h3, .tile--photo-d h3 {
  text-shadow: 0 2px 14px rgba(0,0,0,0.45);
}

/* Soft pink tile aurora — replace flat fuchsia-soft with a layered gradient for depth */
.tile--soft {
  background:
    radial-gradient(ellipse 80% 65% at 100% 0%, rgba(229,74,124,0.18) 0%, transparent 55%),
    radial-gradient(ellipse 70% 55% at 0% 100%, rgba(229,74,124,0.10) 0%, transparent 60%),
    linear-gradient(155deg, #fbdce5 0%, #f7c7d6 70%, #f1b3c5 100%) !important;
  box-shadow: 0 14px 36px -10px rgba(229,74,124,0.32), inset 0 1px 0 rgba(255,255,255,0.7);
}

/* Ink tile gets gradient depth instead of flat ink */
.tile--ink {
  background:
    radial-gradient(ellipse 70% 50% at 0% 0%, rgba(229,74,124,0.18) 0%, transparent 60%),
    linear-gradient(155deg, #15110d 0%, #2a1822 60%, #1a1410 100%) !important;
}

/* Cream tile (Selected reference rows) gets warm gradient */
.tile--cream {
  background:
    radial-gradient(ellipse 80% 70% at 100% 100%, rgba(229,74,124,0.06) 0%, transparent 55%),
    linear-gradient(160deg, #f6efe3 0%, #ebe0cc 70%, #ddd1b8 100%) !important;
}

/* Tighten the SELECTED label so it doesn't collide with photo top */
.tile--photo-a .label, .tile--photo-b .label, .tile--photo-c .label,
.tile--photo-d .label {
  padding-top: 4px;
}

/* ============ Atelier consult full-fold (embedded chat mid-page) ============ */
.consult-fold {
  min-height: 100vh;
  padding: 120px 24px;
  position: relative;
  display: flex; align-items: center; justify-content: center;
  background:
    radial-gradient(ellipse 60% 50% at 25% 20%, rgba(229,74,124,0.16) 0%, transparent 55%),
    radial-gradient(ellipse 60% 50% at 80% 80%, rgba(232,185,163,0.20) 0%, transparent 55%),
    radial-gradient(ellipse 50% 45% at 60% 50%, rgba(91,31,42,0.10) 0%, transparent 65%),
    linear-gradient(180deg, #f6efe3 0%, #f9f1e1 50%, #f6efe3 100%);
  overflow: hidden;
}
.consult-fold::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(circle 600px at 30% 40%, rgba(229,74,124,0.14), transparent 60%),
    radial-gradient(circle 500px at 70% 60%, rgba(232,185,163,0.16), transparent 60%);
  filter: blur(60px);
  animation: maisone-consult-drift 18s ease-in-out infinite alternate;
}
@keyframes maisone-consult-drift {
  0% { transform: translate(0,0) scale(1); }
  100% { transform: translate(4%,-3%) scale(1.1); }
}
.consult-fold__inner {
  position: relative; z-index: 2;
  max-width: 1100px; width: 100%;
  display: grid; gap: 56px;
  text-align: center;
}
.consult-fold__head { display: flex; flex-direction: column; align-items: center; gap: 16px; }
.consult-fold__eyebrow {
  font-family: 'Inter', sans-serif;
  font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--v3-oxblood); font-weight: 600;
  display: inline-flex; align-items: center; gap: 12px;
}
.consult-fold__eyebrow-line {
  display: inline-block; width: 28px; height: 1.5px; background: var(--v3-fuchsia-deep);
}
.consult-fold__title {
  font-family: 'Cormorant Garamond', serif; font-weight: 500;
  font-size: clamp(64px, 9vw, 144px); line-height: 0.96;
  letter-spacing: -0.02em; color: var(--v3-ink);
  max-width: 940px;
}
.consult-fold__title em {
  font-style: italic;
  background: linear-gradient(135deg, var(--v3-fuchsia-deep), var(--v3-fuchsia));
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
}
.consult-fold__sub {
  font-family: 'Inter', sans-serif; font-size: 18px; line-height: 1.6;
  color: var(--v3-muted-readable); max-width: 640px;
}
.consult-fold__stage {
  position: relative; width: 100%; min-height: 520px;
  display: flex; align-items: center; justify-content: center;
}
.consult-fold__orb {
  position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background:
    radial-gradient(circle 360px at 50% 50%, rgba(229,74,124,0.18) 0%, transparent 60%),
    radial-gradient(circle 280px at 50% 50%, rgba(232,185,163,0.14) 0%, transparent 65%);
  filter: blur(50px);
}
.consult-fold__mount {
  position: relative; z-index: 2;
  width: 100%; max-width: 760px; min-height: 520px;
  border-radius: 28px;
  background: linear-gradient(155deg, rgba(255,250,238,0.85) 0%, rgba(246,239,227,0.85) 100%);
  backdrop-filter: blur(28px) saturate(140%);
  -webkit-backdrop-filter: blur(28px) saturate(140%);
  border: 1.5px solid rgba(216,202,178,0.5);
  box-shadow:
    0 40px 80px rgba(15,17,13,0.15),
    inset 0 1px 0 rgba(255,255,255,0.8);
  display: flex; flex-direction: column;
  overflow: hidden;
}
.consult-fold__messages {
  flex: 1; padding: 28px; overflow-y: auto;
  display: flex; flex-direction: column; gap: 14px; min-height: 360px;
}
.consult-fold__msg {
  padding: 14px 18px; border-radius: 16px; font-size: 15.5px; line-height: 1.55; max-width: 88%;
}
.consult-fold__msg--bot {
  background: rgba(229,74,124,0.06); color: var(--v3-ink);
  border: 1px solid rgba(229,74,124,0.22); align-self: flex-start;
}
.consult-fold__msg--user {
  background: rgba(15,17,13,0.04); color: var(--v3-ink);
  border: 1px solid rgba(15,17,13,0.10); align-self: flex-end;
}
.consult-fold__suggested {
  display: flex; gap: 10px; flex-wrap: wrap; padding: 0 24px 18px;
}
.consult-fold__suggested button {
  background: rgba(15,17,13,0.04); color: var(--v3-ink);
  border: 1px solid var(--v3-hair); border-radius: 999px;
  padding: 10px 16px; font-family: 'Inter', sans-serif; font-size: 12px;
  letter-spacing: 0.04em; cursor: pointer; transition: background 0.2s, border-color 0.2s;
}
.consult-fold__suggested button:hover {
  background: rgba(229,74,124,0.10); border-color: var(--v3-fuchsia-deep);
  color: var(--v3-fuchsia-deep);
}
.consult-fold__inputrow { display: flex; gap: 0; padding: 16px 20px 20px; border-top: 1px solid var(--v3-hair); }
.consult-fold__input {
  flex: 1; background: rgba(255,250,238,0.85); border: 1.5px solid var(--v3-hair);
  color: var(--v3-ink); padding: 14px 18px; font-family: 'Inter', sans-serif; font-size: 16px;
  border-radius: 14px 0 0 14px; outline: none;
  transition: border-color 0.2s, background 0.2s;
}
.consult-fold__input:focus {
  border-color: var(--v3-fuchsia-deep);
  background: #fffaee;
}
.consult-fold__send {
  background: linear-gradient(135deg, var(--v3-fuchsia-deep), var(--v3-fuchsia));
  color: var(--v3-cream);
  border: 1.5px solid rgba(216,202,178,0.5);
  border-left: none; border-radius: 0 14px 14px 0;
  padding: 0 22px; font-family: 'Inter', sans-serif; font-weight: 600; font-size: 14px;
  cursor: pointer; transition: filter 0.2s;
}
.consult-fold__send:hover { filter: brightness(1.05); }
@media (max-width: 820px) {
  .consult-fold { padding: 80px 16px; }
  .consult-fold__title { font-size: clamp(52px, 13vw, 80px); }
  .consult-fold__mount { min-height: 440px; }
  .consult-fold__messages { padding: 20px; }
}

/* ── Launch landing pages (LA / GCC / Tokyo / Singapore / Influencer): mobile stack ── */
@media (max-width: 900px) {
  /* Header */
  .header { flex-wrap: wrap !important; gap: 8px !important; padding: 14px 16px !important; }
  .header__cta { padding: 10px 14px !important; font-size: 11.5px !important; }
  .press-strip-top { gap: 10px !important; padding: 8px 12px 12px !important; flex-wrap: wrap; justify-content: center; }
  .press-strip-top__label { font-size: 9.5px !important; letter-spacing: 0.12em !important; }
  .press-strip-top__logo { height: 13px !important; }
  .press-strip-top__divider { display: none !important; }

  /* Hero grid */
  .ad-hero { padding: 24px 16px 36px !important; }
  .ad-hero__grid { grid-template-columns: 1fr !important; gap: 18px !important; }
  .ad-hero__main { padding: 36px 22px !important; min-height: auto !important; border-radius: 22px !important; }
  .ad-hero__title { font-size: clamp(40px, 11vw, 56px) !important; max-width: 100% !important; }
  .ad-hero__sub { font-size: 14.5px !important; max-width: 100% !important; }
  .ad-hero__loc { padding: 7px 14px !important; font-size: 10px !important; letter-spacing: 0.14em !important; margin-bottom: 18px !important; max-width: max-content; }
  .ad-hero__cta-row { gap: 8px !important; }
  .btn--fuchsia-big, .btn--ghost-light-big { padding: 14px 22px !important; font-size: 12.5px !important; }
  .ad-hero__trust { gap: 12px !important; margin-top: 22px !important; padding-top: 18px !important; }
  .ad-hero__trust-pill { font-size: 11px !important; }
  .ad-hero__trust-pill strong { font-size: 14px !important; }
  .ad-hero__form { padding: 28px 22px !important; border-radius: 22px !important; }
  .ad-hero__form h2 { font-size: clamp(34px, 9vw, 44px) !important; }

  /* Problem framing */
  .problem { padding: 48px 16px !important; }
  .problem h2 { font-size: clamp(32px, 8vw, 48px) !important; margin-bottom: 24px !important; }
  .problem__grid { grid-template-columns: 1fr !important; gap: 14px !important; }
  .problem-card { padding: 24px 22px !important; border-radius: 20px !important; }
  .problem-card h3 { font-size: clamp(30px, 8vw, 42px) !important; }

  /* Comparison table -> stack as cards */
  .compare { padding: 36px 16px !important; }
  .compare__head h2 { font-size: clamp(32px, 8vw, 44px) !important; }
  .compare__table { padding: 6px !important; border-radius: 20px !important; }
  .compare__row { grid-template-columns: 1fr !important; gap: 4px !important; padding: 14px 16px !important; }
  .compare__row--head { display: none !important; }
  .compare__criterion { font-size: 16px !important; padding-bottom: 4px !important; border-bottom: 1px dashed rgba(216,202,178,0.4); }
  .compare__cell { font-size: 12.5px !important; }
  .compare__cell--us { font-size: 13px !important; }

  /* Case studies */
  .cases { padding: 36px 16px !important; }
  .cases__head h2 { font-size: clamp(32px, 8vw, 44px) !important; }
  .cases__grid { grid-template-columns: 1fr !important; gap: 16px !important; }
  .case-card { border-radius: 22px !important; }
  .case-card__body { padding: 22px 24px 26px !important; }

  /* Numbers band (the dark pull band on landing pages) */
  .numbers-pub { padding: 60px 20px !important; border-radius: 24px !important; }
  .numbers-pub h2 { font-size: clamp(34px, 8.5vw, 48px) !important; }
  .numbers-pub__grid { grid-template-columns: 1fr 1fr !important; gap: 12px !important; }

  /* FAQ */
  .faqs, .faq-list { padding: 36px 16px !important; }
  .faq-item { padding: 18px 20px !important; }
  .faq-item h3 { font-size: 16px !important; }

  /* Final big CTA */
  .bigcta-end { padding: 48px 16px !important; }
  .bigcta-end__inner { padding: 48px 24px !important; border-radius: 28px !important; }

  /* Floating widgets */
  .whatsapp-widget { bottom: 78px !important; right: 10px !important; }
  .chat-widget { bottom: 12px !important; right: 10px !important; }

  /* Outfit / model image crops on service pages -- raise focal point so heads are visible */
  .subcat-card__media,
  .case-card__media,
  .rel-tile,
  .other-card__media,
  .hero-cat__media {
    background-position: center 22% !important;
    aspect-ratio: 4/5 !important;
  }
  /* Square category tiles get a slightly higher focal point */
  .rel-tile { aspect-ratio: 1/1 !important; background-position: center 18% !important; }
  /* Service hero media (e.g. dresses model) tightened to a torso-up portrait crop */
  .hero-cat__media { aspect-ratio: 3/4 !important; min-height: 380px !important; background-position: center 18% !important; }
}

/* Desktop also: nudge the focal point up on subcat cards so heads aren't clipped */
.subcat-card__media,
.case-card__media,
.other-card__media {
  background-position: center 28% !important;
}
