/*
Theme Name:     Divi Child (BiTB)
Theme URI:
Description:    Black In The Ballroom brand child theme for Divi.
Author:         EXPRE
Author URI:     https://expre.co.uk
Template:       Divi
Version:        1.0.0
*/

/* ============================================================
   BRAND VARIABLES
   ============================================================ */
:root {
  --bitb-ivory:       #FAF8F5;
  --bitb-charcoal:    #1C1C1E;
  --bitb-dark:        #2A2320;
  --bitb-gold:        #C89B3C;
  --bitb-terracotta:  #C4785A;
  --bitb-white:       #FFFFFF;

  --bitb-font-serif:  'Cormorant Garamond', Georgia, serif;
  --bitb-font-label:  'Bebas Neue', sans-serif;
  --bitb-font-body:   'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
}

/* ============================================================
   BASE
   ============================================================ */
body,
body.et_pb_pagebuilder_layout {
  font-family: var(--bitb-font-body);
  color: var(--bitb-charcoal);
  background-color: var(--bitb-ivory);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

/* ============================================================
   TYPOGRAPHY
   ============================================================ */
h1, h2, h3, .et_pb_text h1, .et_pb_text h2, .et_pb_text h3 {
  font-family: var(--bitb-font-serif);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.01em;
  margin-bottom: 0.6em;
}

h4, h5, h6 {
  font-family: var(--bitb-font-label);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

p { margin-bottom: 1.2em; }

/* ============================================================
   DIVI GLOBAL OVERRIDES
   ============================================================ */
.et_pb_section { background-color: transparent; }

/* Strip Divi's default max-width on full-width rows */
.et_pb_row.bitb-full-row {
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
}

/* ============================================================
   NAVIGATION
   ============================================================ */
#top-header,
#main-header {
  background-color: var(--bitb-ivory) !important;
}

#et-top-navigation nav > ul > li > a {
  font-family: var(--bitb-font-body);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.88) !important;
}

#et-top-navigation nav > ul > li > a:hover {
  color: #C89B3C !important;
}

/* Gold enquire button in nav */
.bitb-nav-cta a,
#et-top-navigation nav > ul > li.bitb-nav-cta > a {
  background-color: var(--bitb-gold) !important;
  color: var(--bitb-white) !important;
  padding: 8px 20px !important;
  border-radius: 4px;
}

/* ============================================================
   HERO SECTION — CONCEPT B SPLIT
   ============================================================ */
.bitb-hero-section {
  padding: 0 !important;
  margin-top: 0;
}

.bitb-hero-section .et_pb_row {
  max-width: 100% !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.bitb-hero-left {
  min-height: 100vh;
  display: flex !important;
  flex-direction: column;
  justify-content: center;
  background-color: var(--bitb-dark) !important;
  padding: 80px 64px !important;
}

.bitb-hero-right {
  min-height: 100vh;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}

/* Hero typography */
.bitb-hero-left .bitb-overline {
  font-family: var(--bitb-font-label);
  font-size: 11px;
  letter-spacing: 4px;
  color: var(--bitb-gold);
  text-transform: uppercase;
  margin-bottom: 12px;
  display: block;
}

.bitb-hero-left h1 {
  font-family: var(--bitb-font-serif);
  font-size: clamp(42px, 5vw, 72px);
  font-weight: 300;
  color: var(--bitb-white);
  line-height: 1.0;
  margin-bottom: 20px;
}

.bitb-hero-left .bitb-hero-sub {
  font-family: var(--bitb-font-body);
  font-size: 17px;
  font-weight: 300;
  color: rgba(255,255,255,0.72);
  line-height: 1.6;
  max-width: 360px;
  margin-bottom: 36px;
}

.bitb-hero-logo {
  width: 100px !important;
  margin-bottom: 32px;
  filter: invert(1) brightness(2);
}

/* Hero CTA buttons */
.bitb-btn-primary,
.bitb-btn-outline {
  display: inline-block;
  font-family: var(--bitb-font-body);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none !important;
  padding: 14px 28px;
  border-radius: 3px;
  cursor: pointer;
  transition: opacity 0.2s;
}
.bitb-btn-primary { background: var(--bitb-gold); color: var(--bitb-white) !important; }
.bitb-btn-outline { border: 2px solid var(--bitb-white); color: var(--bitb-white) !important; margin-left: 12px; }
.bitb-btn-primary:hover, .bitb-btn-outline:hover { opacity: 0.85; }

/* ============================================================
   TICKER BAR
   ============================================================ */
.bitb-ticker {
  background-color: var(--bitb-gold) !important;
  padding: 12px 0 !important;
  overflow: hidden;
}

.bitb-ticker p, .bitb-ticker .et_pb_text_inner {
  font-family: var(--bitb-font-label);
  font-size: 12px;
  letter-spacing: 3px;
  color: var(--bitb-charcoal);
  text-transform: uppercase;
  margin: 0;
  white-space: nowrap;
  animation: bitb-marquee 24s linear infinite;
}

@keyframes bitb-marquee {
  0%   { transform: translateX(100%); }
  100% { transform: translateX(-100%); }
}

/* ============================================================
   MISSION SECTION
   ============================================================ */
.bitb-mission-section { background-color: var(--bitb-ivory) !important; }

.bitb-mission-quote-col {
  background-color: var(--bitb-dark) !important;
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 60px 40px !important;
  text-align: center;
}

.bitb-mission-quote-col img {
  width: 120px !important;
  margin-bottom: 28px;
  filter: invert(1) brightness(2);
}

.bitb-mission-rule {
  display: block;
  width: 40px;
  height: 2px;
  background: var(--bitb-gold);
  margin: 0 auto 24px;
}

.bitb-mission-quote-col blockquote {
  font-family: var(--bitb-font-serif);
  font-style: italic;
  font-size: 18px;
  color: var(--bitb-white);
  line-height: 1.5;
  border: none;
  padding: 0;
  margin: 0 0 16px 0;
}

.bitb-mission-quote-col cite {
  font-family: var(--bitb-font-label);
  font-size: 11px;
  letter-spacing: 2px;
  color: var(--bitb-gold);
  text-transform: uppercase;
}

.bitb-mission-text-col {
  background-color: var(--bitb-ivory) !important;
  padding: 80px 64px !important;
}

.bitb-mission-text-col .bitb-overline {
  font-family: var(--bitb-font-label);
  font-size: 11px;
  letter-spacing: 3px;
  color: var(--bitb-terracotta);
  text-transform: uppercase;
  display: block;
  margin-bottom: 14px;
}

.bitb-mission-text-col h2 {
  font-family: var(--bitb-font-serif);
  font-size: clamp(32px, 3.5vw, 52px);
  font-weight: 400;
  color: var(--bitb-charcoal);
  line-height: 1.1;
  margin-bottom: 24px;
}

.bitb-mission-text-col p {
  font-family: var(--bitb-font-body);
  font-size: 17px;
  color: var(--bitb-charcoal);
  line-height: 1.75;
  max-width: 500px;
}

.bitb-text-link {
  display: inline-block;
  font-family: var(--bitb-font-body);
  font-weight: 600;
  font-size: 14px;
  color: var(--bitb-gold) !important;
  text-decoration: underline !important;
  text-underline-offset: 3px;
  margin-top: 8px;
}

/* ============================================================
   CLASS TILES
   ============================================================ */
.bitb-classes-section {
  background-color: var(--bitb-ivory) !important;
  padding: 80px 0 !important;
}

.bitb-classes-section .bitb-section-heading {
  text-align: center;
  margin-bottom: 40px;
  padding: 0 32px;
}

.bitb-classes-section .bitb-section-heading .bitb-overline {
  font-family: var(--bitb-font-label);
  font-size: 11px;
  letter-spacing: 3px;
  color: var(--bitb-terracotta);
  text-transform: uppercase;
  display: block;
  margin-bottom: 10px;
}

.bitb-classes-section .bitb-section-heading h2 {
  font-family: var(--bitb-font-serif);
  font-size: clamp(32px, 3.5vw, 52px);
  color: var(--bitb-charcoal);
}

.bitb-class-tile {
  position: relative;
  min-height: 380px;
  background-size: cover !important;
  background-position: center !important;
  overflow: hidden;
  cursor: pointer;
}

.bitb-class-tile::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(28,28,30,0.85) 0%, rgba(28,28,30,0.15) 60%, transparent 100%);
}

.bitb-class-tile-inner {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 28px 24px;
  z-index: 2;
  transition: transform 0.25s ease;
}

.bitb-class-tile:hover .bitb-class-tile-inner { transform: translateY(-4px); }
.bitb-class-tile:hover { border-bottom: 4px solid var(--bitb-gold); }

.bitb-class-tile-inner h3 {
  font-family: var(--bitb-font-serif);
  font-size: 26px;
  font-weight: 400;
  color: var(--bitb-white);
  margin-bottom: 4px;
}

.bitb-class-tile-inner span {
  font-family: var(--bitb-font-body);
  font-size: 13px;
  color: rgba(255,255,255,0.8);
}

/* ============================================================
   EVENTS SECTION
   ============================================================ */
.bitb-events-section {
  background-color: var(--bitb-charcoal) !important;
  padding: 80px 0 !important;
}

.bitb-events-section .bitb-section-heading {
  text-align: center;
  margin-bottom: 48px;
  padding: 0 32px;
}

.bitb-events-section .bitb-section-heading .bitb-overline {
  font-family: var(--bitb-font-label);
  font-size: 11px;
  letter-spacing: 3px;
  color: var(--bitb-gold);
  text-transform: uppercase;
  display: block;
  margin-bottom: 10px;
}

.bitb-events-section .bitb-section-heading h2 {
  font-family: var(--bitb-font-serif);
  font-size: clamp(32px, 3.5vw, 52px);
  font-weight: 400;
  color: var(--bitb-white);
}

.bitb-event-card {
  background: var(--bitb-ivory);
  border-radius: 4px;
  overflow: hidden;
}

.bitb-event-card-img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  display: block;
}

.bitb-event-card-body {
  padding: 20px 20px 24px;
}

.bitb-event-card-date {
  font-family: var(--bitb-font-label);
  font-size: 11px;
  letter-spacing: 2px;
  color: var(--bitb-gold);
  text-transform: uppercase;
  display: block;
  margin-bottom: 6px;
}

.bitb-event-card-title {
  font-family: var(--bitb-font-body);
  font-size: 16px;
  font-weight: 600;
  color: var(--bitb-charcoal);
  line-height: 1.35;
  margin-bottom: 8px;
}

.bitb-event-card-desc {
  font-family: var(--bitb-font-body);
  font-size: 14px;
  color: rgba(28,28,30,0.65);
  line-height: 1.5;
  margin: 0;
}

.bitb-view-all-link {
  display: block;
  text-align: center;
  margin-top: 36px;
  font-family: var(--bitb-font-label);
  font-size: 13px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--bitb-gold) !important;
  text-decoration: none !important;
}

/* ============================================================
   ENQUIRY FORM SECTION
   ============================================================ */
.bitb-enquiry-section {
  background-color: var(--bitb-ivory) !important;
  padding: 80px 0 !important;
}

.bitb-enquiry-section .bitb-section-heading {
  text-align: center;
  margin-bottom: 48px;
  padding: 0 32px;
}

.bitb-enquiry-section .bitb-section-heading h2 {
  font-family: var(--bitb-font-serif);
  font-size: clamp(32px, 3.5vw, 48px);
  color: var(--bitb-charcoal);
}

.bitb-enquiry-section .bitb-section-heading p {
  font-family: var(--bitb-font-body);
  font-size: 16px;
  color: rgba(28,28,30,0.65);
  max-width: 500px;
  margin: 0 auto;
}

/* Divi contact form styling */
.bitb-enquiry-section .et_pb_contact_form_container {
  max-width: 640px;
  margin: 0 auto;
}

.bitb-enquiry-section .et_pb_contact_field input,
.bitb-enquiry-section .et_pb_contact_field textarea,
.bitb-enquiry-section .et_pb_contact_field select {
  background-color: var(--bitb-white) !important;
  border: 1px solid rgba(28,28,30,0.2) !important;
  border-radius: 3px !important;
  font-family: var(--bitb-font-body) !important;
  font-size: 15px !important;
  color: var(--bitb-charcoal) !important;
  padding: 14px 16px !important;
  width: 100% !important;
}

.bitb-enquiry-section .et_pb_contact_submit,
.bitb-enquiry-section input[type="submit"] {
  background-color: var(--bitb-gold) !important;
  color: var(--bitb-white) !important;
  border: none !important;
  border-radius: 3px !important;
  font-family: var(--bitb-font-body) !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  padding: 16px 32px !important;
  cursor: pointer !important;
  width: 100% !important;
  transition: opacity 0.2s !important;
}

.bitb-enquiry-section .et_pb_contact_submit:hover { opacity: 0.85 !important; }

.bitb-email-fallback {
  text-align: center;
  margin-top: 16px;
  font-family: var(--bitb-font-body);
  font-size: 14px;
  color: rgba(28,28,30,0.55);
}

/* ============================================================
   FOOTER
   ============================================================ */
#main-footer {
  background-color: var(--bitb-charcoal) !important;
}

#footer-widgets {
  background-color: var(--bitb-charcoal) !important;
  padding: 60px 0 !important;
}

.footer-widget h4 {
  font-family: var(--bitb-font-label);
  font-size: 12px;
  letter-spacing: 3px;
  color: var(--bitb-gold);
  text-transform: uppercase;
  margin-bottom: 16px;
}

.footer-widget p, .footer-widget a, .footer-widget li, .footer-widget li a {
  font-family: var(--bitb-font-body);
  font-size: 14px;
  color: rgba(255,255,255,0.65) !important;
  text-decoration: none;
  line-height: 1.9;
}

.footer-widget a:hover { color: var(--bitb-gold) !important; }

#footer-bottom {
  background-color: #111010 !important;
  border-top: none !important;
}

#footer-bottom p { color: rgba(255,255,255,0.35) !important; font-size: 12px !important; }

/* ============================================================
   DIVI SECTION / ROW RESETS
   ============================================================ */
.bitb-no-padding { padding: 0 !important; }
.bitb-col-full-height { min-height: 100vh; }

/* ============================================================
   MOBILE RESPONSIVE
   ============================================================ */
@media (max-width: 980px) {
  .bitb-hero-left,
  .bitb-hero-right {
    min-height: 50vh;
    padding: 48px 32px !important;
  }

  .bitb-hero-right {
    min-height: 280px;
  }

  .bitb-mission-quote-col,
  .bitb-mission-text-col {
    padding: 48px 32px !important;
  }

  .bitb-class-tile { min-height: 260px; }

  .bitb-btn-outline { margin-left: 0; margin-top: 10px; display: block; }
}

/* ==== Native Divi Gallery module -> match bitb-gallery 3-col grid (run r-z39j57) ==== */
.bitb-gallery-native .et_pb_gallery_items { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-top: 40px; }
.bitb-gallery-native .et_pb_gallery_item { width: auto !important; margin: 0 !important; float: none !important; padding: 0 !important; }
.bitb-gallery-native .et_pb_gallery_item .et_pb_gallery_image { aspect-ratio: 4/3; overflow: hidden; }
.bitb-gallery-native .et_pb_gallery_image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bitb-gallery-native .et_pb_gallery_caption,
.bitb-gallery-native .et_pb_gallery_pagination { display: none !important; }
@media (max-width: 767px){ .bitb-gallery-native .et_pb_gallery_items { grid-template-columns: repeat(2, 1fr); } }

/* override Divi 5 gallery default 4-col grid -> force 3-col (run r-z39j57) */
.bitb-gallery-native .et_pb_gallery_items { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 6px !important; }
@media (max-width: 767px){ .bitb-gallery-native .et_pb_gallery_items { grid-template-columns: repeat(2, 1fr) !important; } }

/* fix: reserve 4/3 on the ITEM so all 9 tiles hold height (lazy imgs dont collapse) (run r-z39j57) */
.bitb-gallery-native .et_pb_gallery_item { aspect-ratio: 4/3; overflow: hidden; }
.bitb-gallery-native .et_pb_gallery_item .et_pb_gallery_image,
.bitb-gallery-native .et_pb_gallery_item .et_pb_gallery_image span,
.bitb-gallery-native .et_pb_gallery_item .et_pb_gallery_image a { display:block; width:100%; height:100%; }
.bitb-gallery-native .et_pb_gallery_item .et_pb_gallery_image img { width:100%; height:100%; object-fit:cover; display:block; }

/* ============================================================
   NATIVE DIVI BRIDGE (run r-lbcs1s) — maps native Divi DOM onto the
   bespoke bitb-* design. Needed because Divi's in-page module CSS
   loads AFTER style.css, so widths/margins need !important.
   ============================================================ */

/* Rows: bitb containers are 1200px, Divi rows default to 1080px */
.bitb-container.et_pb_row,
.bitb-inner-hero__content.et_pb_row {
  max-width: 1200px !important;
  width: 100% !important;
  padding: 0 40px !important;
}
/* kill Divi's default module bottom margin inside our sections */
.bitb-inner-hero .et_pb_module,
.bitb-cta-band .et_pb_module,
.bitb-section--dark .et_pb_module { margin-bottom: 0; }

/* Hero: class supplies overlay + min-height, but Divi section resets display */
.bitb-inner-hero.et_pb_section { display: flex !important; align-items: flex-end; }
.bitb-inner-hero.et_pb_section > .et_pb_row { position: relative; z-index: 1; }

/* Sponsors grid: row becomes the CSS grid, columns become grid items */
.bitb-sponsors-grid.et_pb_row {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
  gap: 32px;
  margin-bottom: 40px;
}
.bitb-sponsors-grid > .et_pb_column {
  width: auto !important; margin: 0 !important; float: none !important;
}
/* Sponsor card internals: rebuild the flex head from native modules */
.bitb-sponsor-card {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-areas: "logo titles" "body body" "btn btn";
  gap: 0 20px;
  align-items: center;
}
.bitb-sponsor-card .sp-logo    { grid-area: logo;   margin: 0 !important; }
.bitb-sponsor-card .sp-titles  { grid-area: titles; margin: 0 !important; }
.bitb-sponsor-card .sp-body    { grid-area: body;   margin: 20px 0 0 !important; }
.bitb-sponsor-card .et_pb_button_module_wrapper { grid-area: btn; margin: 4px 0 0 !important; }
.bitb-sponsor-card .sp-logo img { max-width: 150px; height: auto; }

/* CTA band: centre the native buttons like the old inline <a> pair */
.bitb-cta-band__inner { text-align: center; }
.bitb-cta-band__inner .et_pb_button_module_wrapper { display: inline-block; margin: 10px 8px 0 !important; }
.bitb-cta-band__inner .et_pb_button_module_wrapper .et_pb_button { display: inline-block; }

/* fix: card head must be logo BESIDE titles — beat Divi's .et_pb_column display (run r-lbcs1s) */
.bitb-sponsor-card.et_pb_column {
  display: grid !important;
  grid-template-columns: auto 1fr !important;
  grid-template-areas: "logo titles" "body body" "btn btn" !important;
  gap: 0 20px !important;
  align-items: center !important;
}
.bitb-sponsor-card.et_pb_column > .sp-logo   { grid-area: logo !important; }
.bitb-sponsor-card.et_pb_column > .sp-titles { grid-area: titles !important; }
.bitb-sponsor-card.et_pb_column > .sp-body   { grid-area: body !important; }
.bitb-sponsor-card.et_pb_column > .et_pb_button_module_wrapper { grid-area: btn !important; }

/* --- Services grid: 2-col card grid from native columns (run r-lbcs1s) --- */
.bitb-services-grid.et_pb_row {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 32px !important;
}
.bitb-services-grid > .et_pb_column {
  width: auto !important; margin: 0 !important; float: none !important;
}
/* service card: full-bleed image on top, padded body below */
.bitb-service-card .sc-img { margin: 0 !important; }
.bitb-service-card .sc-img img { width: 100%; height: 300px; object-fit: cover; display: block; }
.bitb-service-card .sc-h3  { padding: 28px 28px 0 !important; margin: 0 !important; }
.bitb-service-card .sc-txt { padding: 12px 28px 0 !important; margin: 0 !important; }
.bitb-service-card .et_pb_button_module_wrapper { padding: 20px 28px 28px !important; margin: 0 !important; }

/* --- Two-column text + image block --- */
.bitb-two-col.et_pb_row {
  display: flex !important;
  gap: 64px !important;
  align-items: center !important;
}
.bitb-two-col > .et_pb_column { margin: 0 !important; float: none !important; }
.bitb-two-col > .bitb-two-col__text  { flex: 1 1 auto !important; width: auto !important; min-width: 0; }
.bitb-two-col > .bitb-two-col__image { flex: 0 0 45% !important; width: 45% !important; }
.bitb-two-col__image .tc-img { margin: 0 !important; }
.bitb-two-col__image img { width: 100%; height: 480px; object-fit: cover; display: block; }

/* --- Classes grid + class cards (run r-lbcs1s) --- */
.bitb-classes-grid.et_pb_row {
  display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 32px !important; margin-top: 40px !important;
}
.bitb-classes-grid > .et_pb_column { width: auto !important; margin: 0 !important; float: none !important; }
.bitb-class-card .cc-img { margin: 0 !important; }
.bitb-class-card .cc-img img { width: 100%; height: 220px; object-fit: cover; display: block; }
.bitb-class-card .cc-tag  { padding: 28px 28px 0 !important; margin: 0 !important; }
.bitb-class-card .cc-h3   { padding: 12px 28px 0 !important; margin: 0 !important; }
.bitb-class-card .cc-time { padding: 0 28px !important; margin: 0 !important; }
.bitb-class-card .cc-body { padding: 0 28px !important; margin: 0 !important; }
.bitb-class-card .et_pb_button_module_wrapper { padding: 4px 28px 28px !important; margin: 0 !important; }

/* reversed two-col */
.bitb-two-col--reverse.et_pb_row { flex-direction: row-reverse !important; }

/* FAQ column */
.bitb-faq.et_pb_column { max-width: 760px !important; margin: 0 auto !important; float: none !important; }

/* --- Team grid (About) (run r-lbcs1s) --- */
.bitb-team-grid.et_pb_row {
  display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 32px !important; margin-top: 48px !important;
}
.bitb-team-grid > .et_pb_column { width: auto !important; margin: 0 !important; float: none !important; }

.bitb-team-card .tm-photo { margin: 0 !important; }
.bitb-team-card .tm-photo img { width: 100%; height: 260px; object-fit: cover; object-position: center top; display: block; }
.bitb-team-card .tm-h3   { padding: 28px 28px 0 !important; margin: 0 !important; }
.bitb-team-card .tm-role { padding: 0 28px !important; margin: 0 !important; }
.bitb-team-card .tm-body { padding: 12px 28px 28px !important; margin: 0 !important; }

/* wide team card: photo left, text right, spanning the full grid row */
.bitb-team-card--wide.et_pb_column {
  grid-column: 1 / -1 !important;
  display: grid !important;
  grid-template-columns: 320px 1fr !important;
  grid-template-areas: "photo h3" "photo role" "photo body" !important;
  grid-template-rows: auto auto 1fr !important;
}
.bitb-team-card--wide .tm-photo { grid-area: photo !important; height: 100%; }
.bitb-team-card--wide .tm-photo img { height: 100% !important; min-height: 240px; }
.bitb-team-card--wide .tm-h3   { grid-area: h3 !important; }
.bitb-team-card--wide .tm-role { grid-area: role !important; }
.bitb-team-card--wide .tm-body { grid-area: body !important; }

/* --- Photo strip: full-bleed 4-up native gallery --- */
.bitb-photo-strip .et_pb_row {
  max-width: none !important; width: 100% !important; padding: 0 !important; margin: 0 !important;
}
.bitb-strip-native .et_pb_gallery_items {
  display: grid !important; grid-template-columns: repeat(4, 1fr) !important; gap: 0 !important; margin: 0 !important;
}
.bitb-strip-native .et_pb_gallery_item {
  height: 520px; overflow: hidden; width: auto !important; margin: 0 !important; float: none !important;
}
.bitb-strip-native .et_pb_gallery_item .et_pb_gallery_image,
.bitb-strip-native .et_pb_gallery_item .et_pb_gallery_image span,
.bitb-strip-native .et_pb_gallery_item .et_pb_gallery_image a { display: block; width: 100%; height: 100%; }
.bitb-strip-native .et_pb_gallery_image img {
  width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block;
}
.bitb-strip-native .et_pb_gallery_caption,
.bitb-strip-native .et_pb_gallery_pagination { display: none !important; }

/* --- Contact layout (run r-lbcs1s) --- */
.bitb-contact-layout.et_pb_row {
  display: grid !important; grid-template-columns: 1fr 1.4fr !important; gap: 64px !important; align-items: start !important;
}
.bitb-contact-layout > .et_pb_column { width: auto !important; margin: 0 !important; float: none !important; }
.bitb-contact-layout__info .et_pb_button_module_wrapper { margin: 8px 0 0 !important; }

/* --- Events list + event cards (run r-lbcs1s) --- */
.bitb-events-list.et_pb_row {
  display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 28px !important;
}
.bitb-events-list > .et_pb_column { width: auto !important; margin: 0 !important; float: none !important; }

/* regular card: image on top, padded body */
.bitb-event-card .ev-img { margin: 0 !important; }
.bitb-event-card .ev-img img { width: 100%; height: 200px; object-fit: cover; display: block; }
.bitb-event-card .ev-date { padding: 24px 24px 0 !important; margin: 0 !important; }
.bitb-event-card .ev-h3   { padding: 4px 24px 0 !important; margin: 0 !important; }
.bitb-event-card .ev-body { padding: 4px 24px 0 !important; margin: 0 !important; }
.bitb-event-card .et_pb_button_module_wrapper { padding: 8px 24px 24px !important; margin: 0 !important; }
.bitb-event-card .ev-body:last-child { padding-bottom: 24px !important; }

/* featured card: full-width row, image left 50%, text vertically centred right */
.bitb-event-card--featured.et_pb_column {
  grid-column: 1 / -1 !important;
  display: grid !important;
  grid-template-columns: 50% 1fr !important;
  grid-template-areas: "img date" "img h3" "img body" "img btn" !important;
  grid-template-rows: auto auto auto auto !important;
  align-content: center !important;
  min-height: 300px;
}
.bitb-event-card--featured .ev-img { grid-area: img !important; height: 100%; }
.bitb-event-card--featured .ev-img img { height: 100% !important; min-height: 280px; object-fit: cover; }
.bitb-event-card--featured .ev-date { grid-area: date !important; padding-top: 0 !important; }
.bitb-event-card--featured .ev-h3   { grid-area: h3 !important; }
.bitb-event-card--featured .ev-body { grid-area: body !important; }
.bitb-event-card--featured .et_pb_button_module_wrapper { grid-area: btn !important; }

/* ============================================================
   FIX (run r-lbcs1s): a Divi Image module wraps its <img> in an
   INLINE span (.et_pb_image_wrap). Giving the <img> a fixed px height
   inside that inline wrap does not paint. The pattern that works is:
   module + wrap = block with the fixed height, img = height:100%.
   (Featured event cards + galleries already used height:100% and were fine.)
   ============================================================ */
.ev-img, .sc-img, .cc-img, .tm-photo, .tc-img { display: block !important; width: 100% !important; line-height: 0; }
.ev-img .et_pb_image_wrap,
.sc-img .et_pb_image_wrap,
.cc-img .et_pb_image_wrap,
.tm-photo .et_pb_image_wrap,
.tc-img .et_pb_image_wrap { display: block !important; width: 100% !important; height: 100% !important; }

.bitb-event-card .ev-img            { height: 200px !important; }
.bitb-event-card .ev-img img        { width: 100% !important; height: 100% !important; object-fit: cover; display: block; }
.bitb-service-card .sc-img          { height: 300px !important; }
.bitb-service-card .sc-img img      { width: 100% !important; height: 100% !important; object-fit: cover; display: block; }
.bitb-class-card .cc-img            { height: 220px !important; }
.bitb-class-card .cc-img img        { width: 100% !important; height: 100% !important; object-fit: cover; display: block; }
.bitb-team-card .tm-photo           { height: 260px !important; }
.bitb-team-card .tm-photo img       { width: 100% !important; height: 100% !important; object-fit: cover; object-position: center top; display: block; }
.bitb-two-col__image .tc-img        { height: 480px !important; }
.bitb-two-col__image .tc-img img    { width: 100% !important; height: 100% !important; object-fit: cover; display: block; }

/* featured event card + wide team card keep a full-height image column */
.bitb-event-card--featured .ev-img     { height: 100% !important; min-height: 280px; }
.bitb-event-card--featured .ev-img img { height: 100% !important; }
.bitb-team-card--wide .tm-photo        { height: 100% !important; min-height: 240px; }
.bitb-team-card--wide .tm-photo img    { height: 100% !important; }

/* --- Sponsor card: padded logo well for real sponsor logos (run r-4327fv) ---
   The placeholder cards give their logo a 104x64 dashed well with breathing room,
   but a real sponsor logo (EXPRE) was a bare <img> sitting straight on the card,
   so it read as having no padding inside the box. Give .sp-logo a matching well:
   solid instead of dashed (a real logo, not a placeholder), same footprint. */
.bitb-sponsor-card .sp-logo {
  display: flex !important;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-width: 104px;
  min-height: 64px;
  padding: 14px 18px !important;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(200, 155, 60, 0.28);
  border-radius: 6px;
}
.bitb-sponsor-card .sp-logo .et_pb_image_wrap { display: block; line-height: 0; }
.bitb-sponsor-card .sp-logo img {
  max-width: 132px;
  max-height: 40px;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
}

/* --- Front-page hero: restore edge-to-edge full-bleed (run r-ihtotv) ---------
   WHY THIS APPEARED "SUDDENLY": until r-4327fv, wp-content/et-cache/ was
   root-owned so Divi could generate NO frontend CSS at all. Restoring that
   directory brought Divi 5's own inline rule back into play for the first time:

     .et_pb_row:not([class*="et_flex_column"]) {
       width: var(--content-width); max-width: var(--content-max-width); margin: auto;
     }

   That caps the hero row at 1080px and centres it, leaving 143px ivory gutters
   either side. The hero SECTION has a transparent background and no background
   image (both hero photos live on .et_pb_column_0::before / _1::before), so
   wherever the section shows through you see the ivory page background.

   The child theme already had `.bitb-hero-section .et_pb_row { max-width:100% }`
   but the homepage hero section carries no `bitb-hero-section` class, so that
   override never matched. Scope to the front page's first section instead.

   `#page-container` raises specificity above Divi 5's body-level module CSS,
   which loads AFTER wp_head and would otherwise win at equal specificity.
   Pure CSS: no post_content / block JSON touched, so Divi 5 editability is
   unaffected and this is reversible by deleting this block. */
.bitb-front-page #page-container .et_pb_section_0 > .et_pb_row,
.bitb-front-page #page-container .et_pb_section_0 > .et_pb_row.et_pb_row_0 {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Kill the 24px strip between the nav and the hero photos. That padding was
   added in r-mn5ngr purely as clearance for the 90px nav logo that protrudes
   20px below the 80px header bar. The logo is positioned absolute with
   z-index:999, so it still sits cleanly OVER the hero photo without it, which
   is the intended protruding-logo look. Desktop-only, matching where r-mn5ngr
   added it; the mobile hero (bitb_hero_mobile_rows) never had this padding. */
@media (min-width: 981px) {
  .bitb-front-page #page-container .et_pb_section_0 {
    padding-top: 0 !important;
  }
}
