/*
 Theme Name:   G. Batista Studio
 Theme URI:    https://www.gregbatistastudio.com
 Description:  GeneratePress child theme for G. Batista Studio rebuild (1:1 visual match with pure blocks)
 Author:       G. Batista Studio
 Template:     generatepress
 Version:      1.1.0
 Text Domain:  gbstudio
*/

/* ==========================================================================
   1. Self-Hosted OFL Fonts
   ========================================================================== */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/montserrat-400.woff2') format('woff2');
}

@font-face {
  font-family: 'Montserrat';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/montserrat-400-italic.woff2') format('woff2');
}

@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/montserrat-700.woff2') format('woff2');
}

@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/playfair-display-400.woff2') format('woff2');
}

@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/playfair-display-700.woff2') format('woff2');
}

@font-face {
  font-family: 'Bodoni Moda';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/bodoni-moda-400-italic.woff2') format('woff2');
}

@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('fonts/barlow-condensed-500.woff2') format('woff2');
}

@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('fonts/poppins-600.woff2') format('woff2');
}

@font-face {
  font-family: 'Wix Madefor Display';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('fonts/wix-madefor-display-variable.woff2') format('woff2');
}

@font-face {
  font-family: 'Wix Madefor Text';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('fonts/wix-madefor-text-variable.woff2') format('woff2');
}

@font-face {
  font-family: 'Arimo';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('fonts/arimo-variable.woff2') format('woff2');
}

@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/barlow-condensed-700.woff2') format('woff2');
}

@font-face {
  font-family: 'Fraunces 120pt Light';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/fraunces_120pt-light-400.woff2') format('woff2');
}

@font-face {
  font-family: 'Fraunces 120pt Light';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/fraunces_120pt-light-700.woff2') format('woff2');
}

@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('fonts/jost-300.woff2') format('woff2');
}

@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/jost-400.woff2') format('woff2');
}

@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 200 1000;
  font-display: swap;
  src: url('fonts/nunito-sans-variable.woff2') format('woff2');
}

@font-face {
  font-family: 'Balfontheim';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/balfontheim-regular.woff2') format('woff2');
}

@font-face {
  font-family: 'Libre Baskerville';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/libre-baskerville-400-italic.woff2') format('woff2');
}

/* ==========================================================================
   2. Design Tokens & CSS Custom Properties
   ========================================================================== */
:root {
  --gb-color-bg-dark: #000000;
  --gb-color-bg-light: #FCF8ED;
  --gb-color-text-light: #ffffff;
  --gb-color-text-dark: #000000;
  --gb-color-accent: #AA3A3A;
  --gb-color-accent-dark: #8B0000;
  --gb-font-primary: 'Montserrat', sans-serif;
  --gb-font-condensed: 'Barlow Condensed', sans-serif;
  --gb-font-serif: 'Fraunces 120pt Light', serif;
  --gb-font-body: 'Jost', sans-serif;
  --gb-font-artist: 'Balfontheim', cursive, sans-serif;
  --gb-font-learn: 'Libre Baskerville', serif;
  --gb-font-display: 'Playfair Display', Georgia, serif;
  --m: calc(100vw / 320);
}

/* ==========================================================================
   3. Global Layout & Reset (Scoped to body.gb-custom-page)
   ========================================================================== */
body.gb-custom-page {
  font-family: var(--gb-font-body);
  color: var(--gb-color-text-dark);
  background-color: var(--gb-color-bg-dark);
  margin: 0;
  padding: 0;
  overflow-x: auto; /* like live: narrow desktops scroll sideways to the 980px layout */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body.gb-custom-page .site,
body.gb-custom-page .site-content,
body.gb-custom-page .content-area,
body.gb-custom-page .entry-content,
body.gb-custom-page .site-main {
  margin: 0;
  padding: 0;
  max-width: 100%;
  width: 100%;
}

body.gb-custom-page .inside-article {
  padding: 0;
  margin: 0;
}

/* Override GeneratePress dynamic CSS padding and width constraints on block groups */
body.gb-custom-page .site-main .wp-block-group__inner-container {
  padding: 0 !important; /* override GeneratePress dynamic CSS group padding */
  margin: 0 !important; /* override GeneratePress dynamic CSS group margin */
  max-width: none !important; /* override GeneratePress 1200px container constraint */
}

body.gb-custom-page .gb-section {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  margin: 0;
}

@media (min-width: 768px) {
  body.gb-custom-page .gb-section,
  body.gb-custom-page .wp-block-cover.gb-hero,
  body.gb-custom-page .gb-work-divider,
  body.gb-custom-page .gb-site-header {
    min-width: 980px;
  }

  body.gb-custom-page .gb-about .gb-about-grid,
  body.gb-custom-page .gb-about-artist .gb-about-artist-grid {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
  }
}

/* ==========================================================================
   4. Header & Navigation
   Desktop values verified against live in real Chrome (clientWidth 1905): logo 463,15 326x70;
   nav links 833/909/986/1111/1210/1358 (±3), 20px Barlow Condensed 500, 0.85px spacing, 12px padding, 8px gap.
   Wix docks both to its centered 980px grid. Header is transparent and scrolls away (not sticky).
   Mobile (<=767px) uses the 320px layout viewport set in functions.php, so 1px = 1 Wix mobile px.
   ========================================================================== */
body.gb-custom-page .gb-site-header {
  position: absolute;
  inset: 0 0 auto 0;
  height: 88px;
  margin: 0;
  padding: 0;
  background: transparent;
  z-index: 100;
}

body.gb-custom-page .gb-site-header .gb-header-logo {
  position: absolute;
  left: calc(50% - 489.5px);
  top: 15px;
  width: 326px;
  margin: 0;
}

body.gb-custom-page .gb-site-header .gb-header-logo img {
  display: block;
  width: 100%;
  height: auto;
}

body.gb-custom-page .gb-site-header nav.gb-header-nav {
  position: absolute;
  right: calc(50% - 488.5px);
  top: 29px;
  margin: 0;
}

body.gb-custom-page .gb-header-nav .wp-block-navigation__container {
  gap: 8px;
  margin: 0;
  padding: 0;
}

body.gb-custom-page .gb-header-nav .wp-block-navigation-item__content {
  display: flex;
  align-items: center;
  height: 44px;
  padding: 0 12px;
  font-family: var(--gb-font-condensed);
  font-weight: 500;
  font-size: 20px;
  line-height: normal;
  letter-spacing: 0.85px;
  color: #ffffff;
  text-decoration: none;
  white-space: nowrap;
}

/* Live has no hover change on desktop nav. */
body.gb-custom-page .gb-header-nav .wp-block-navigation-item__content:hover,
body.gb-custom-page .gb-header-nav .wp-block-navigation-item__content:focus {
  color: #ffffff;
}

body.gb-custom-page .gb-header-nav .wp-block-navigation-item__content:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 2px;
}

@media (max-width: 767px) {
  body.gb-custom-page .gb-site-header {
    height: 69px;
  }

  body.gb-custom-page .gb-site-header .gb-header-logo {
    left: 20px;
    top: 18px;
    width: 214px;
  }

  body.gb-custom-page .gb-site-header nav.gb-header-nav {
    right: 12px;
    top: 7px;
  }

  /* Hamburger: 50x50 hit area, three white 22px bars. */
  body.gb-custom-page .gb-header-nav .wp-block-navigation__responsive-container-open {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    padding: 0;
    color: #ffffff;
  }

  body.gb-custom-page .gb-header-nav .wp-block-navigation__responsive-container-open svg {
    width: 38px;
    height: 38px;
    fill: currentColor;
  }

  /* Open menu: solid black full-screen overlay, centered items 56px apart, active item red. */
  body.gb-custom-page .gb-header-nav .wp-block-navigation__responsive-container.is-menu-open {
    position: fixed;
    inset: 0;
    padding: 0;
    background-color: #000000;
    color: #ffffff;
    animation: gb-menu-fade 0.3s ease-out;
  }

  body.gb-custom-page .gb-header-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
    align-items: center;
    padding-top: 84px;
  }

  body.gb-custom-page .gb-header-nav .is-menu-open .wp-block-navigation__container {
    flex-direction: column;
    align-items: center;
    gap: 0;
  }

  body.gb-custom-page .gb-header-nav .is-menu-open .wp-block-navigation-item__content {
    height: 56px;
    padding: 0;
    font-family: var(--gb-font-primary);
    font-weight: 400;
    font-size: 16px;
    letter-spacing: 0;
    color: #ffffff;
  }

  body.gb-custom-page .gb-header-nav .is-menu-open .current-menu-item > .wp-block-navigation-item__content,
  body.gb-custom-page .gb-header-nav .is-menu-open .wp-block-navigation-item:first-child > .wp-block-navigation-item__content {
    color: #aa3a3a;
  }

  body.gb-custom-page .gb-header-nav .wp-block-navigation__responsive-container-close {
    top: 7px;
    right: 12px;
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
  }

  body.gb-custom-page .gb-header-nav .wp-block-navigation__responsive-container-close svg {
    width: 30px;
    height: 30px;
    fill: currentColor;
  }
}

@keyframes gb-menu-fade {
  from { opacity: 0; }
  to { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
  body.gb-custom-page .gb-header-nav .wp-block-navigation__responsive-container.is-menu-open {
    animation: none;
  }
}

/* ==========================================================================
   5. Hero Section (Approved in 016 & Frozen)
   ========================================================================== */
body.gb-custom-page .wp-block-cover.gb-hero {
  min-height: 624px;
  height: 624px;
  padding: 0;
  margin: 0;
  box-sizing: border-box;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  background-color: #000000;
}

body.gb-custom-page .gb-hero video.wp-block-cover__video-background {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  z-index: 0;
  pointer-events: none;
}

body.gb-custom-page .gb-hero .wp-block-cover__background {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background-color: #000000;
  opacity: 0.40;
  z-index: 1;
  pointer-events: none;
}

body.gb-custom-page .gb-hero .wp-block-cover__inner-container {
  position: relative;
  z-index: 2;
  max-width: 100%;
  width: 100%;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

body.gb-custom-page .gb-hero-quote {
  font-family: var(--gb-font-serif);
  font-size: 29px;
  font-weight: 400;
  color: #ffffff;
  line-height: 38px;
  letter-spacing: 4.35px;
  text-align: left;
  width: 776px;
  max-width: 776px;
  margin: 289px 0 0 calc(50% - 490px + 122px);
  padding: 0;
}

body.gb-custom-page .gb-hero-divider {
  position: absolute;
  left: calc(50% - 490px + 334px);
  top: 373px;
  width: 332px;
  height: 7px;
  border: none;
  border-top: 3px solid #ffffff;
  background: transparent;
  margin: 0;
  padding: 0;
}

body.gb-custom-page .gb-hero-name {
  font-family: var(--gb-font-serif);
  font-size: 30px;
  font-weight: 700;
  letter-spacing: 4.5px;
  color: #ffffff;
  line-height: 38px;
  margin: 25px auto 0 auto;
  position: relative;
  left: 8px;
  padding: 0;
  width: 196px;
  white-space: nowrap;
  text-align: center;
}

/* ==========================================================================
   6. About Studio Section (Approved in 021 & Frozen)
   ========================================================================== */
body.gb-custom-page .gb-section.gb-about {
  background-color: var(--gb-color-bg-light);
  height: 621px;
  min-height: 621px;
  box-sizing: border-box;
  overflow: hidden;
  padding: 0;
  margin: 0;
}

body.gb-custom-page .gb-about .gb-about-grid {
  display: grid;
  grid-template-columns: 28% 44% 28%;
  height: 621px;
  width: 100%;
  min-width: 980px;
  margin: 0;
  padding: 0;
  gap: 0;
}

body.gb-custom-page .gb-about .gb-about-col-img-left {
  width: 100%;
  height: 621px;
  padding: 0;
  margin: 0;
  overflow: hidden;
}

body.gb-custom-page .gb-about .gb-about-col-img-right {
  width: 100%;
  height: 621px;
  padding: 0;
  margin: 0;
  overflow: hidden;
}

body.gb-custom-page .gb-about .gb-about-img {
  margin: 0;
  padding: 0;
  height: 621px;
}

body.gb-custom-page .gb-about .gb-about-img img {
  width: 100%;
  height: 621px;
  object-fit: cover;
  display: block;
}

body.gb-custom-page .gb-about .gb-about-col-text {
  width: 100%;
  height: 621px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding: 92px 0 0 0;
  box-sizing: border-box;
  text-align: center;
}

body.gb-custom-page .gb-about .gb-section-title {
  font-family: var(--gb-font-condensed);
  font-weight: 500;
  font-size: 33px;
  line-height: 33px;
  letter-spacing: 7.2px;
  color: #000000;
  margin: 0 auto 40px auto;
  width: 103px;
  white-space: nowrap; /* box is exactly the text width; never break "About" */
}

body.gb-custom-page .gb-about .gb-about-logo {
  margin: 0 auto 19px auto;
}

body.gb-custom-page .gb-about .gb-about-logo img {
  width: 377px;
  height: 81px;
  display: block;
}

body.gb-custom-page .gb-about .gb-about-text {
  font-family: var(--gb-font-body);
  font-weight: 300;
  font-size: 15px;
  line-height: 22.5px;
  letter-spacing: 0.025px;
  word-spacing: -0.36px;
  color: #000000;
  width: 376px;
  max-width: 376px;
  margin: 0 auto;
}

@media (min-width: 768px) {
  body.gb-custom-page .gb-about {
    min-width: 980px;
  }
}

/* ==========================================================================
   7. About the Artist Section (Approved in 024 & Frozen)
   ========================================================================== */
body.gb-custom-page .gb-section.gb-about-artist {
  background-color: #ffffff;
  height: 528px;
  min-height: 528px;
  box-sizing: border-box;
  padding: 0;
  margin: 0;
}

body.gb-custom-page .gb-about-artist .gb-about-artist-grid {
  display: grid;
  grid-template-columns: 50% 50%;
  height: 528px;
  width: 100%;
  min-width: 980px;
  margin: 0;
  padding: 0;
  gap: 0;
}

body.gb-custom-page .gb-about-artist .gb-about-artist-content {
  width: 100%;
  height: 528px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding: 31px 0 0 0;
  box-sizing: border-box;
  text-align: center;
  background-color: #f5f5f5;
  position: relative;
  left: -2px;
}

body.gb-custom-page .gb-about-artist .gb-section-title {
  font-family: var(--gb-font-condensed);
  font-weight: 500;
  font-size: 25px;
  line-height: 29px;
  letter-spacing: 5.75px;
  color: #000000;
  margin: 0 auto 16px auto;
  width: auto;
  white-space: nowrap;
}

body.gb-custom-page .gb-about-artist .gb-artist-name {
  font-family: var(--gb-font-artist);
  font-size: 88px;
  line-height: 88px;
  color: #000000;
  margin: 0 auto 0 auto;
  width: 365px;
  /* One line as on live; the script font's ink overhangs its box, so tiny rendering differences would wrap it. */
  white-space: nowrap;
}

body.gb-custom-page .gb-about-artist hr.gb-artist-divider-a {
  width: 284px;
  height: 7px;
  border: none;
  border-top: 3px solid #000000;
  background: transparent; /* no default hr fill under the line */
  margin: 8px auto 20px auto;
}

body.gb-custom-page .gb-about-artist .gb-about-artist-text {
  font-family: 'Montserrat', sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 25.2px;
  letter-spacing: 0.7px;
  color: #000000;
  width: 482px;
  max-width: 482px;
  margin: 0 auto 12px auto;
}

body.gb-custom-page .gb-about-artist .gb-artist-actions .wp-block-button__link {
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 300;
  font-size: 14px;
  letter-spacing: 0.43px; /* Nunito Sans is narrower than live's Avenir; matches its 114px label */
  color: #ffffff;
  background-color: var(--gb-color-accent);
  border: none;
  border-radius: 0;
  width: 142px;
  height: 42px;
  line-height: 42px;
  padding: 0;
  display: inline-block;
  text-decoration: none;
  cursor: pointer;
  text-align: center;
  transition: all 0.2s ease;
}

body.gb-custom-page .gb-about-artist .gb-artist-actions .wp-block-button__link:hover {
  background-color: transparent;
  color: #000000;
}

body.gb-custom-page .gb-about-artist .gb-about-artist-media {
  width: 100%;
  height: 528px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(circle at 84.4% 73.9%, #C68585 0%, 22.8%, rgba(198,133,133,0) 35%), radial-gradient(circle at 11.2% 29.9%, #DFC1D1 0%, 35%, rgba(223,193,209,0) 50%), radial-gradient(circle at 48.9% 49.5%, rgba(255,255,255,0) 0%, 100%, rgba(255,255,255,0) 100%);
  background-color: #ffffff;
}

/* Fixed 796x469 like live (overflows the column below ~1590px); offset from the column centre as on live. */
body.gb-custom-page .gb-about-artist .gb-video-slot {
  flex: none;
  position: relative;
  left: 17.7px;
  top: -16.5px;
  width: 796px;
  height: 469px;
  background-color: #000000;
}

body.gb-custom-page .gb-about-artist .gb-video-slot > .wp-block-group__inner-container,
body.gb-custom-page .gb-about-artist .gb-artist-video-embed,
body.gb-custom-page .gb-about-artist .gb-artist-video-embed .wp-block-embed__wrapper,
body.gb-custom-page .gb-about-artist .gb-artist-video-embed iframe {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  border: 0;
}

/* ==========================================================================
   8. Work Section Divider (Approved in 024 & Frozen)
   ========================================================================== */
body.gb-custom-page #work,
body.gb-custom-page .gb-work-divider {
  background-color: #000000;
  height: 243px;
  min-height: 243px;
  padding: 35px 0 0 0;
  box-sizing: border-box;
  text-align: center;
}

body.gb-custom-page .gb-work-divider .gb-work-divider-title,
body.gb-custom-page .gb-work-divider .gb-work-divider-title span {
  font-family: var(--gb-font-condensed);
  font-size: 80px;
  font-weight: 500;
  line-height: 112px;
  letter-spacing: 15.26px;
  color: #ffffff;
  margin: 0 auto;
  width: 826px;
  max-width: 826px;
  white-space: nowrap;
  display: block;
}

body.gb-custom-page .gb-work-divider-br {
  display: none;
}

body.gb-custom-page .gb-work-divider hr.gb-work-divider-b {
  width: 284px;
  height: 7px;
  border: none;
  border-top: 3px solid #ffffff;
  background: transparent;
  margin: 23px auto 0 auto;
}

/* ==========================================================================
   9. Felix Trinidad Section (Approved in 026 & Frozen)
   ========================================================================== */
/* Live's static Wix gradient (5 radial layers). */
body.gb-custom-page .gb-section.gb-featured-portrait {
  background-color: transparent;
  background-image:
    radial-gradient(circle at 94.3538% 89.6159%, rgb(221, 173, 154) 0%, 20%, rgba(221, 173, 154, 0) 40%),
    radial-gradient(circle at 6.50391% 88.0371%, rgba(170, 58, 58, 0.99) 0%, 25%, rgba(170, 58, 58, 0) 50%),
    radial-gradient(circle at 6.16536% 12.6172%, rgb(204, 115, 81) 0%, 42%, rgba(204, 115, 81, 0) 70%),
    radial-gradient(circle at 93.6865% 11.4258%, rgb(159, 95, 128) 0%, 42%, rgba(159, 95, 128, 0) 70%),
    radial-gradient(circle at 48.9014% 49.5215%, rgb(255, 255, 255) 0%, 100%, rgba(255, 255, 255, 0) 100%);
  height: 731px;
  min-height: 731px;
  box-sizing: border-box;
  padding: 0;
  margin: 0;
  position: relative;
}

body.gb-custom-page .gb-featured-portrait .gb-featured-grid {
  width: 100%;
  max-width: 100%;
  height: 731px;
  margin: 0;
  position: relative;
  display: block;
  padding: 0;
}

body.gb-custom-page .gb-featured-portrait .gb-featured-info,
body.gb-custom-page .gb-featured-portrait .gb-featured-img-col {
  display: contents;
}

body.gb-custom-page .gb-featured-portrait .gb-featured-img {
  position: absolute;
  left: 50%;
  top: 65px;
  width: 490px;
  height: 600px;
  margin: 0;
  padding: 0;
  z-index: 1;
}

body.gb-custom-page .gb-featured-portrait .gb-featured-img img {
  width: 490px;
  height: 600px;
  max-width: 490px;
  object-fit: cover;
  display: block;
  margin: 0;
}

body.gb-custom-page .gb-featured-portrait .gb-featured-name {
  margin: 0;
  padding: 0;
  position: static;
}

body.gb-custom-page .gb-featured-portrait .gb-featured-name em {
  font-style: italic;
  display: contents;
}

body.gb-custom-page .gb-featured-portrait .gb-featured-name span:first-child {
  position: absolute;
  left: calc(50% - 350.5px);
  top: 151px;
  width: 313px;
  height: 180px;
  line-height: 146px;
  font-size: 146px;
  font-style: italic;
  font-family: 'Bodoni Moda', serif;
  font-weight: 400;
  letter-spacing: 1.6px;
  color: #000000;
  text-align: center;
  margin: 0;
  padding: 0;
  white-space: nowrap;
  z-index: 2;
  display: block;
}

body.gb-custom-page .gb-featured-portrait .gb-featured-name span:last-child {
  position: absolute;
  left: calc(50% - 461.5px);
  top: 301px;
  width: 536px;
  height: 180px;
  line-height: 146px;
  font-size: 146px;
  font-style: italic;
  font-family: 'Bodoni Moda', serif;
  font-weight: 400;
  letter-spacing: -2.8px;
  color: #000000;
  text-align: center;
  margin: 0;
  padding: 0;
  white-space: nowrap;
  z-index: 2;
  display: block;
}

body.gb-custom-page .gb-featured-portrait .gb-featured-subtitle {
  position: absolute;
  left: calc(50% - 317px);
  top: 449.5px;
  width: 243px;
  height: 70px;
  font-family: var(--gb-font-condensed);
  font-size: 25px;
  font-weight: 500;
  line-height: 42px;
  letter-spacing: 7.1px;
  color: #000000;
  text-align: center;
  margin: 0;
  padding: 0;
  z-index: 2;
}

body.gb-custom-page .gb-featured-portrait .gb-learn-more-wrap {
  position: absolute;
  left: calc(50% - 245.5px);
  top: 545px;
  width: 83px;
  height: 19px;
  margin: 0;
  padding: 0;
  z-index: 2;
  text-align: center;
}

body.gb-custom-page .gb-featured-portrait .gb-learn-more-link {
  text-decoration: none;
  display: block;
}

body.gb-custom-page .gb-featured-portrait .gb-learn-more-link span {
  display: block;
  width: 83px;
  height: 19px;
  line-height: 21px;
  font-family: var(--gb-font-learn);
  font-size: 15px;
  font-style: italic;
  font-weight: 400;
  letter-spacing: normal;
  white-space: nowrap;
  color: #ffffff;
  text-align: center;
}

body.gb-custom-page .gb-featured-portrait .gb-play-wrap {
  position: absolute;
  left: calc(50% - 243px);
  top: 569.5px;
  width: 80px;
  height: 80px;
  margin: 0;
  padding: 0;
  z-index: 2;
}

/* Play icon: one SVG used as a mask, coloured per context (white on Felix, accent on cards). */
body.gb-custom-page .gb-play-btn {
  display: block;
  width: 100%;
  height: 100%;
  background-color: currentColor;
  -webkit-mask: url('icons/play.svg') center / 100% 100% no-repeat;
  mask: url('icons/play.svg') center / 100% 100% no-repeat;
}

body.gb-custom-page .gb-featured-portrait .gb-play-btn {
  color: #ffffff;
}

/* Card play buttons (per-card left/top below and in the mobile section). */
body.gb-custom-page .gb-portrait-card .gb-play-wrap {
  position: absolute;
  z-index: 3;
  width: 55px;
  height: 55px;
  margin: 0;
  padding: 0;
  line-height: 0;
}

body.gb-custom-page .gb-portrait-grid .gb-portrait-card .gb-play-wrap {
  width: 45px;
  height: 45px;
}

body.gb-custom-page .gb-portrait-card .gb-play-btn {
  color: var(--gb-color-accent);
}

/* Rows are white edge to edge (below 980px the page scrolls sideways; black body must not show). */
body.gb-custom-page .gb-section.gb-row-cotto-torres,
body.gb-custom-page .gb-section.gb-row-taylor-winston {
  background-color: #fffffe;
}

/* Live clips content that overflows these sections (video box, wide grid cards) instead of scrolling sideways. */
body.gb-custom-page .gb-section.gb-about-artist,
body.gb-custom-page .gb-section.gb-portraits-section {
  overflow-x: clip;
}

/* Card play-button positions, measured from live (same containing block as each card's Learn More). */
@media (min-width: 768px) {
  body.gb-custom-page .gb-row-cotto-torres .gb-card-cotto .gb-play-wrap { left: calc(50% - 25.5px); top: 271.0px; }
  body.gb-custom-page .gb-row-taylor-winston .gb-card-taylor .gb-play-wrap { left: calc(50% - 24.5px); top: 217.0px; }
  body.gb-custom-page .gb-row-taylor-winston .gb-card-winston .gb-play-wrap { left: calc(50% - 26.5px); top: 265.0px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-adrian-peterson .gb-play-wrap { left: 43.0px; top: 1003.0px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-bobby-cruz .gb-play-wrap { left: 42.0px; top: 1920.0px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-maurice-ferre .gb-play-wrap { left: 57.0px; top: 2519.0px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-carmen-dominicci .gb-play-wrap { left: 755.0px; top: 782.0px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-drew-brees .gb-play-wrap { left: 756.0px; top: 1549.0px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-wayne-lapierre .gb-play-wrap { left: 753.0px; top: 2353.0px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-rita-moreno .gb-play-wrap { left: 469.0px; top: 2889.0px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-richie-ray .gb-play-wrap { left: 63.0px; top: 3141.0px; }
}

@media (max-width: 767px) {
  body.gb-custom-page .gb-row-cotto-torres .gb-card-cotto .gb-play-wrap { left: 134.5px; top: 487.5px; }
  body.gb-custom-page .gb-row-taylor-winston .gb-card-taylor .gb-play-wrap { left: 134.5px; top: 625.5px; }
  body.gb-custom-page .gb-row-taylor-winston .gb-card-winston .gb-play-wrap { left: 134.5px; top: 1242.5px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-adrian-peterson .gb-play-wrap { left: 139.5px; top: 636.5px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-bobby-cruz .gb-play-wrap { left: 139.5px; top: 1256.5px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-carmen-dominicci .gb-play-wrap { left: 139.5px; top: 1990.5px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-drew-brees .gb-play-wrap { left: 139.5px; top: 2596.5px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-wayne-lapierre .gb-play-wrap { left: 139.5px; top: 3236.5px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-maurice-ferre .gb-play-wrap { left: 139.5px; top: 3737.5px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-richie-ray .gb-play-wrap { left: 139.5px; top: 4204.5px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-rita-moreno .gb-play-wrap { left: 139.5px; top: 4711.5px; }
}

/* ==========================================================================
   10. Cotto & Torres Section (Approved in 026 & Frozen)
   ========================================================================== */
@media (min-width: 768px) {
  body.gb-custom-page .gb-section.gb-row-cotto-torres {
    min-width: 980px;
    height: 432px;
    box-sizing: border-box;
    position: relative;
    padding: 0;
  }
  body.gb-custom-page .gb-row-cotto-torres .gb-portraits-grid-2col {
    position: relative;
    width: 100%;
    height: 432px;
    margin: 0;
    padding: 0;
    display: block;
  }
  body.gb-custom-page .gb-row-cotto-torres .gb-portrait-card {
    position: static;
  }
  body.gb-custom-page .gb-row-cotto-torres .gb-card-cotto .gb-portrait-img {
    position: absolute;
    left: calc(12.5% - 169.5px);
    top: 39px;
    width: 521px;
    height: 342px;
    margin: 0;
    padding: 0;
    z-index: 1;
  }
  body.gb-custom-page .gb-row-cotto-torres .gb-card-cotto .gb-card-panel {
    position: absolute;
    left: 25%;
    top: 39px;
    width: 25%;
    height: 346px;
    background-color: #FFFFFE;
    margin: 0;
    padding: 0;
    z-index: 2;
    box-sizing: border-box;
  }
  body.gb-custom-page .gb-row-cotto-torres .gb-card-torres .gb-portrait-img {
    position: absolute;
    left: calc(62.5% - 170.5px);
    top: 40px;
    width: 341px;
    height: 341px;
    margin: 0;
    padding: 0;
    z-index: 3; /* live: overlaps the Cotto panel below ~1000px */
  }
  body.gb-custom-page .gb-row-cotto-torres .gb-card-torres .gb-card-panel {
    position: absolute;
    left: 75%;
    top: 39px;
    width: 25%;
    height: 346px;
    background-color: #FFFFFE;
    margin: 0;
    padding: 0;
    z-index: 4; /* above its own painting, as on live */
    box-sizing: border-box;
  }
}

body.gb-custom-page .gb-row-cotto-torres .gb-card-cotto .gb-portrait-img img {
  width: 521px;
  height: 342px;
  max-width: 521px;
  object-fit: cover;
  display: block;
}

body.gb-custom-page .gb-row-cotto-torres .gb-card-torres .gb-portrait-img img {
  width: 341px;
  height: 341px;
  max-width: 341px;
  object-fit: cover;
  display: block;
}

body.gb-custom-page .gb-row-cotto-torres .gb-card-panel .gb-portrait-name {
  position: absolute;
  top: 45px;
  margin: 0;
  font-family: var(--gb-font-condensed);
  font-weight: 500;
  font-size: 26px;
  line-height: 31px;
  color: var(--gb-color-accent-dark);
  text-align: center;
  white-space: nowrap;
}

body.gb-custom-page .gb-row-cotto-torres .gb-card-cotto .gb-card-panel .gb-portrait-name {
  left: calc(50% - 87px);
  width: 174px;
  letter-spacing: 5.2px;
}

body.gb-custom-page .gb-row-cotto-torres .gb-card-torres .gb-card-panel .gb-portrait-name {
  left: calc(50% - 92.5px);
  width: 185px;
  letter-spacing: 5.0px;
}

body.gb-custom-page .gb-row-cotto-torres .gb-card-panel .gb-portrait-desc {
  position: absolute;
  top: 101px;
  margin: 0;
  font-family: var(--gb-font-body);
  font-weight: 300;
  font-size: 15px;
  line-height: 24px;
  color: #000000;
  text-align: center;
  padding: 0;
}

body.gb-custom-page .gb-row-cotto-torres .gb-card-cotto .gb-card-panel .gb-portrait-desc {
  left: calc(50% - 119.5px);
  width: 239px;
}

body.gb-custom-page .gb-row-cotto-torres .gb-card-torres .gb-card-panel .gb-portrait-desc {
  left: calc(50% - 121px);
  width: 242px;
  letter-spacing: -0.15px;
}

body.gb-custom-page .gb-row-cotto-torres .gb-card-panel .gb-learn-more-wrap {
  position: absolute;
  top: 234px;
  margin: 0;
  width: 83px;
  height: 19px;
  padding: 0;
  text-align: center;
  color: var(--gb-color-accent);
}

body.gb-custom-page .gb-row-cotto-torres .gb-card-cotto .gb-card-panel .gb-learn-more-wrap {
  left: calc(50% - 41.5px);
}

body.gb-custom-page .gb-row-cotto-torres .gb-card-torres .gb-card-panel .gb-learn-more-wrap {
  left: calc(50% - 41.5px);
}

body.gb-custom-page .gb-row-cotto-torres .gb-card-panel .gb-learn-more-link {
  text-decoration: none;
  display: block;
  color: var(--gb-color-accent);
}

body.gb-custom-page .gb-row-cotto-torres .gb-card-panel .gb-learn-more-link span {
  display: block;
  width: 83px;
  height: 19px;
  line-height: 21px;
  font-family: var(--gb-font-learn);
  font-size: 15px;
  font-style: italic;
  letter-spacing: normal;
  white-space: nowrap;
  color: var(--gb-color-accent);
  text-align: center;
}

/* ==========================================================================
   11. Taylor & Winston Section (Desktop >= 768px)
   ========================================================================== */
body.gb-custom-page .gb-portrait-grid > .wp-block-group__inner-container,
body.gb-custom-page .gb-row-taylor-winston > .wp-block-group__inner-container {
  position: relative;
  width: 100%;
  height: 100%;
}

@media (min-width: 768px) {
  body.gb-custom-page .gb-section.gb-row-taylor-winston {
    min-width: 980px;
    height: 432px;
    box-sizing: border-box;
    position: relative;
    padding: 0;
  }
  body.gb-custom-page .gb-row-taylor-winston .gb-portraits-grid-2col {
    position: relative;
    width: 100%;
    height: 432px;
    margin: 0;
    padding: 0;
    display: block;
  }
  body.gb-custom-page .gb-row-taylor-winston .gb-portrait-card {
    position: static;
  }
  body.gb-custom-page .gb-row-taylor-winston .gb-card-taylor .gb-portrait-img {
    position: absolute;
    left: calc(12.5% - 181.5px);
    top: 39px;
    width: 346px;
    height: 340px;
    margin: 0;
    padding: 0;
    z-index: 1;
  }
  body.gb-custom-page .gb-row-taylor-winston .gb-card-taylor .gb-card-panel {
    position: absolute;
    left: 25%;
    top: 39px;
    width: 25%;
    height: 346px;
    background-color: #FFFFFE;
    margin: 0;
    padding: 0;
    z-index: 2;
    box-sizing: border-box;
  }
  body.gb-custom-page .gb-row-taylor-winston .gb-card-winston .gb-portrait-img {
    position: absolute;
    left: calc(62.5% - 167.5px);
    top: 41px;
    width: 343px;
    height: 340px;
    margin: 0;
    padding: 0;
    z-index: 3; /* live: overlaps the Taylor panel below ~1000px */
  }
  body.gb-custom-page .gb-row-taylor-winston .gb-card-winston .gb-card-panel {
    position: absolute;
    left: 75%;
    top: 39px;
    width: 25%;
    height: 346px;
    background-color: #FFFFFE;
    margin: 0;
    padding: 0;
    z-index: 4; /* above its own painting, as on live */
    box-sizing: border-box;
  }
}

body.gb-custom-page .gb-row-taylor-winston .gb-card-taylor .gb-portrait-img img {
  width: 346px;
  height: 340px;
  max-width: 346px;
  object-fit: cover;
  display: block;
}

body.gb-custom-page .gb-row-taylor-winston .gb-card-winston .gb-portrait-img img {
  width: 343px;
  height: 340px;
  max-width: 343px;
  object-fit: cover;
  display: block;
}

body.gb-custom-page .gb-row-taylor-winston .gb-card-panel .gb-portrait-name {
  position: absolute;
  margin: 0;
  font-family: var(--gb-font-condensed);
  font-weight: 500;
  font-size: 26px;
  line-height: 31px;
  color: var(--gb-color-accent-dark);
  text-align: center;
  white-space: nowrap;
}

body.gb-custom-page .gb-row-taylor-winston .gb-card-taylor .gb-card-panel .gb-portrait-name {
  top: 70px;
  left: calc(50% - 85.7px);
  width: 171.4px;
  letter-spacing: 4.75px;
}

body.gb-custom-page .gb-row-taylor-winston .gb-card-winston .gb-card-panel .gb-portrait-name {
  top: 68px;
  left: calc(50% - 100.5px);
  width: 208px;
  letter-spacing: 4.5px;
}

body.gb-custom-page .gb-row-taylor-winston .gb-card-panel .gb-portrait-desc {
  position: absolute;
  margin: 0;
  font-family: var(--gb-font-body);
  font-weight: 300;
  font-size: 15px;
  line-height: 22px;
  color: #000000;
  text-align: center;
  padding: 0;
}

body.gb-custom-page .gb-row-taylor-winston .gb-card-taylor .gb-card-panel .gb-portrait-desc {
  top: 123px;
  left: calc(50% - 113.5px);
  width: 227px;
}

body.gb-custom-page .gb-row-taylor-winston .gb-card-winston .gb-card-panel .gb-portrait-desc {
  top: 121px;
  left: calc(50% - 122.5px);
  width: 245px;
  line-height: 23px;
}

body.gb-custom-page .gb-row-taylor-winston .gb-card-panel .gb-learn-more-wrap {
  position: absolute;
  margin: 0;
  width: 83px;
  height: 19px;
  padding: 0;
  text-align: center;
  color: var(--gb-color-accent);
}

body.gb-custom-page .gb-row-taylor-winston .gb-card-taylor .gb-card-panel .gb-learn-more-wrap {
  top: 190.5px;
  left: calc(50% - 41.5px);
}

body.gb-custom-page .gb-row-taylor-winston .gb-card-winston .gb-card-panel .gb-learn-more-wrap {
  top: 238.5px;
  left: calc(50% - 41.5px);
}

body.gb-custom-page .gb-row-taylor-winston .gb-card-panel .gb-learn-more-link {
  text-decoration: none;
  display: block;
  color: var(--gb-color-accent);
}

body.gb-custom-page .gb-row-taylor-winston .gb-card-panel .gb-learn-more-link span {
  display: block;
  width: 83px;
  height: 19px;
  line-height: 21px;
  font-family: var(--gb-font-learn);
  font-size: 15px;
  font-style: italic;
  letter-spacing: normal;
  white-space: nowrap;
  color: var(--gb-color-accent);
  text-align: center;
}

/* ==========================================================================
   12. 12-Portrait Grid Section (Desktop >= 768px)
   ========================================================================== */
@media (min-width: 768px) {
  body.gb-custom-page .gb-section.gb-portrait-grid {
    min-width: 980px;
    height: 3852px;
    box-sizing: border-box;
    position: relative;
    padding: 0;
    background: radial-gradient(circle at 84.4% 73.9%, #C68585 0%, rgba(198,133,133,0) 35%),
                radial-gradient(circle at 11.2% 29.9%, #DFC1D1 0%, rgba(223,193,209,0) 50%);
  }
  body.gb-custom-page .gb-portrait-grid .gb-portrait-grid-inner {
    position: absolute;
    left: calc(50% - 490px);
    top: 0;
    width: 980px;
    height: 3852px;
    margin: 0;
    padding: 0;
  }
  body.gb-custom-page .gb-portrait-grid .gb-portrait-card {
    position: static;
  }
  body.gb-custom-page .gb-portrait-grid .gb-portrait-img {
    position: absolute;
    margin: 0;
    padding: 0;
    z-index: 1;
  }
  body.gb-custom-page .gb-portrait-grid .gb-portrait-img img {
    object-fit: cover;
    display: block;
    width: 100%;
    height: 100%;
  }

  /* 1. Adrian Peterson */
  body.gb-custom-page .gb-portrait-grid .gb-card-adrian-peterson .gb-portrait-img { left: -219px; top: 90px; width: 564px; height: 754px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-adrian-peterson .gb-portrait-name { left: -45.5px; top: 861px; width: 219px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-adrian-peterson .gb-portrait-desc { left: -124.5px; top: 903px; width: 374px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-adrian-peterson .gb-learn-more-wrap { left: 21px; top: 982.5px; }

  /* 2. Bobby Cruz */
  body.gb-custom-page .gb-portrait-grid .gb-card-bobby-cruz .gb-portrait-img { left: -220px; top: 1062px; width: 565px; height: 688px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-bobby-cruz .gb-portrait-name { left: -12px; top: 1774px; width: 152px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-bobby-cruz .gb-portrait-desc { left: -137px; top: 1822px; width: 399px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-bobby-cruz .gb-learn-more-wrap { left: 22px; top: 1902.5px; }

  /* 3. Maurice Ferré */
  body.gb-custom-page .gb-portrait-grid .gb-card-maurice-ferre .gb-portrait-img { left: -188px; top: 1974px; width: 532px; height: 347px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-maurice-ferre .gb-portrait-name { left: -16.3px; top: 2340px; width: 190.6px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-maurice-ferre .gb-portrait-desc { left: -119.5px; top: 2384px; width: 396px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-maurice-ferre .gb-learn-more-wrap { left: 36px; top: 2497.5px; }

  /* 4. Carmen Dominicci */
  body.gb-custom-page .gb-portrait-grid .gb-card-carmen-dominicci .gb-portrait-img { left: 414px; top: 90px; width: 723px; height: 521px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-carmen-dominicci .gb-portrait-name { left: 654.9px; top: 623px; width: 240.2px; letter-spacing: 4.4px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-carmen-dominicci .gb-portrait-desc { left: 425px; top: 661px; width: 700px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-carmen-dominicci .gb-learn-more-wrap { left: 733px; top: 760.5px; }

  /* 5. Drew Brees */
  body.gb-custom-page .gb-portrait-grid .gb-card-drew-brees .gb-portrait-img { left: 412px; top: 846px; width: 724px; height: 548px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-drew-brees .gb-portrait-name { left: 698px; top: 1404px; width: 154px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-drew-brees .gb-portrait-desc { left: 418px; top: 1448px; width: 718px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-drew-brees .gb-learn-more-wrap { left: 735px; top: 1529.5px; }

  /* 6. Wayne LaPierre */
  body.gb-custom-page .gb-portrait-grid .gb-card-wayne-lapierre .gb-portrait-img { left: 412px; top: 1606px; width: 724px; height: 548px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-wayne-lapierre .gb-portrait-name { left: 669.6px; top: 2164px; width: 208.8px; letter-spacing: 4.6px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-wayne-lapierre .gb-portrait-desc { left: 414px; top: 2208px; width: 720px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-wayne-lapierre .gb-learn-more-wrap { left: 735px; top: 2313.5px; }

  /* 7. Rita Moreno */
  body.gb-custom-page .gb-portrait-grid .gb-card-rita-moreno .gb-portrait-img { left: 397px; top: 2439px; width: 206px; height: 260px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-rita-moreno .gb-portrait-name { left: 417.9px; top: 2710px; width: 164.2px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-rita-moreno .gb-portrait-desc { left: 393.5px; top: 2759px; width: 213px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-rita-moreno .gb-learn-more-wrap { left: 458px; top: 2865.5px; }

  /* 8. Frida Kahlo */
  body.gb-custom-page .gb-portrait-grid .gb-card-frida-kahlo .gb-portrait-img { left: 629px; top: 2439px; width: 202px; height: 260px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-frida-kahlo .gb-portrait-name { left: 653.9px; top: 2710px; width: 156.2px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-frida-kahlo .gb-portrait-desc { left: 624.5px; top: 2759px; width: 209px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-frida-kahlo .gb-learn-more-wrap { left: 689px; top: 2865.5px; }

  /* 9. Carlos Arroyo */
  body.gb-custom-page .gb-portrait-grid .gb-card-carlos-arroyo .gb-portrait-img { left: 848px; top: 2439px; width: 214px; height: 260px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-carlos-arroyo .gb-portrait-name { left: 863.7px; top: 2710px; width: 188.6px; }
  /* 220px (not live's 211px text width): Jost wraps earlier than Futura; 220 restores live's 4 lines, centered on the same axis. */
  body.gb-custom-page .gb-portrait-grid .gb-card-carlos-arroyo .gb-portrait-desc { left: 848px; top: 2759px; width: 220px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-carlos-arroyo .gb-learn-more-wrap { left: 900px; top: 2865.5px; }

  /* 10. Richie Ray and Bobby Cruz */
  body.gb-custom-page .gb-portrait-grid .gb-card-richie-ray .gb-portrait-img { left: -187px; top: 2608px; width: 532px; height: 347px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-richie-ray .gb-portrait-name { left: -97.5px; top: 2981px; width: 364px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-richie-ray .gb-portrait-desc { left: -121px; top: 3028px; width: 399px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-richie-ray .gb-learn-more-wrap { left: 43px; top: 3119.5px; }

  /* 11. Daughter's Paint */
  body.gb-custom-page .gb-portrait-grid .gb-card-daughters-paint .gb-portrait-img { left: -105px; top: 3237px; width: 379px; height: 280px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-daughters-paint .gb-portrait-name { left: -27.6px; top: 3533px; width: 225.2px; letter-spacing: 4.8px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-daughters-paint .gb-portrait-desc { left: -30px; top: 3581px; width: 230px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-daughters-paint .gb-learn-more-wrap { left: 44px; top: 3713.5px; }

  /* 12. Laura Cruz */
  body.gb-custom-page .gb-portrait-grid .gb-card-laura-cruz .gb-portrait-img { left: 476px; top: 3006px; width: 476px; height: 600px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-laura-cruz .gb-portrait-name { left: 640.5px; top: 3624px; width: 146px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-laura-cruz .gb-portrait-desc { left: 511.5px; top: 3691px; width: 404px; }
}

body.gb-custom-page .gb-portrait-grid .gb-portrait-name {
  position: absolute;
  margin: 0;
  font-family: var(--gb-font-condensed);
  font-weight: 500;
  font-size: 26px;
  line-height: 31px;
  color: var(--gb-color-accent-dark);
  text-align: center;
  white-space: nowrap;
  letter-spacing: 0.2em;
}

body.gb-custom-page .gb-portrait-grid .gb-portrait-desc {
  position: absolute;
  margin: 0;
  font-family: var(--gb-font-body);
  font-weight: 300;
  font-size: 15px;
  line-height: 23px;
  color: #000000;
  text-align: center;
  padding: 0;
}

body.gb-custom-page .gb-portrait-grid .gb-learn-more-wrap {
  position: absolute;
  margin: 0;
  width: 83px;
  height: 19px;
  padding: 0;
  text-align: center;
  color: var(--gb-color-accent);
}

body.gb-custom-page .gb-portrait-grid .gb-learn-more-link {
  text-decoration: none;
  display: block;
  color: var(--gb-color-accent);
}

body.gb-custom-page .gb-portrait-grid .gb-learn-more-link span {
  display: block;
  width: 83px;
  height: 19px;
  line-height: 21px;
  font-family: var(--gb-font-learn);
  font-size: 15px;
  font-style: italic;
  letter-spacing: normal;
  white-space: nowrap;
  color: var(--gb-color-accent);
  text-align: center;
}

/* ==========================================================================
   13. Remaining Lower Sections
   ========================================================================== */

/* ==========================================================================
   12. CTA "Ordering Process"
   Live geometry (verified at 7 widths, ±1px), all relative to the section width:
     side margin  m = min(80px, 50% - 490px)
     block width  w = max(619px, 63.2% - 102px)   (image and white panel share it)
   The image hugs the left margin, the panel the right margin; the text block is
   579px wide and centered in the panel. Button straddles the top edge (-21px).
   ========================================================================== */
body.gb-custom-page .gb-section.gb-cta {
  --gb-cta-m: min(80px, calc(50% - 490px));
  --gb-cta-w: max(619px, calc(63.2% - 102px));
  position: relative;
  height: 508px;
  min-width: 980px;
  margin: 0;
  padding: 0;
  background-color: #ffffff;
}

body.gb-custom-page .gb-cta .gb-cta-btn-wrap {
  position: absolute;
  top: -21px;
  left: 0;
  right: 0;
  z-index: 2;
  margin: 0;
}

body.gb-custom-page .gb-cta .gb-cta-btn .wp-block-button__link {
  display: flex;
  align-items: center;
  gap: 9px;
  box-sizing: border-box;
  width: 485px;
  height: 45px;
  padding: 0 20px 0 14px;
  border-radius: 50px;
  background-color: var(--gb-color-accent);
  color: #ffffff;
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 300;
  font-size: 15px;
  letter-spacing: 3.94px; /* Nunito Sans is narrower than live Avenir; matches the 405px label */
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
}

body.gb-custom-page .gb-cta .gb-cta-btn .wp-block-button__link::after {
  content: "";
  flex: 0 0 37px;
  height: 37px;
  margin-left: auto;
  background: url("icons/cta-arrow.svg") center / contain no-repeat;
}

body.gb-custom-page .gb-cta .gb-cta-img {
  position: absolute;
  top: 70px;
  left: var(--gb-cta-m);
  width: var(--gb-cta-w);
  height: 362px;
  margin: 0;
  background-color: #f5f5f5;
}

body.gb-custom-page .gb-cta .gb-cta-img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
}

body.gb-custom-page .gb-cta .gb-cta-panel {
  position: absolute;
  top: 140px;
  right: var(--gb-cta-m);
  width: var(--gb-cta-w);
  height: 366px;
  margin: 0;
  padding: 82px 0 0 calc(var(--gb-cta-w) / 2 - 289.5px);
  box-sizing: border-box;
  background-color: #ffffff;
}

body.gb-custom-page .gb-cta .gb-cta-title {
  margin: 0;
  font-family: var(--gb-font-condensed);
  font-weight: 700;
  font-size: 55px;
  line-height: 65px;
  letter-spacing: 14.3px;
  color: #000000;
  white-space: nowrap;
}

body.gb-custom-page .gb-cta .gb-cta-divider {
  width: 284px;
  margin: 18px 0 0 2px;
  border: 0;
  border-top: 3px solid #000000;
  opacity: 1;
}

body.gb-custom-page .gb-cta .gb-cta-text {
  width: 518px;
  margin: 21px 0 0;
  font-family: var(--gb-font-primary);
  font-weight: 400;
  font-size: 16px;
  line-height: 28.8px;
  color: #000000;
}

/* ==========================================================================
   13. Ordering steps: four full-bleed 25% columns with centered icon, title, text.
   Vertical offsets are per step because the live layout positions each freely.
   ========================================================================== */
body.gb-custom-page .gb-section.gb-ordering {
  min-width: 980px;
  margin: 0;
  padding: 0;
}

body.gb-custom-page .gb-ordering .gb-ordering-steps {
  display: flex;
  gap: 0;
  margin: 0;
  height: 450px;
}

body.gb-custom-page .gb-ordering .gb-step {
  flex: 1 1 25%;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 0;
  padding: 0;
}

body.gb-custom-page .gb-ordering .gb-step--purchase { background-color: #d6ccc2; --icon-y: 102px; --icon-w: 48px; --icon-h: 84px; --title-gap: 39px; --title-w: 200px; --desc-gap: 26px; --desc-w: 194px; }
body.gb-custom-page .gb-ordering .gb-step--photo    { background-color: #f5ebe0; --icon-y: 108px; --icon-w: 87px; --icon-h: 87px; --title-gap: 8px;  --title-w: 140px; --desc-gap: 17px; --desc-w: 182px; }
body.gb-custom-page .gb-ordering .gb-step--timing   { background-color: #e3d5ca; --icon-y: 102px; --icon-w: 94px; --icon-h: 94px; --title-gap: 23px; --title-w: 200px; --desc-gap: 20px; --desc-w: 184px; }
body.gb-custom-page .gb-ordering .gb-step--payment  { background-color: #d5bdaf; --icon-y: 111px; --icon-w: 109px; --icon-h: 80px; --title-gap: 28px; --title-w: 200px; --desc-gap: 20px; --desc-w: 150px; }

body.gb-custom-page .gb-ordering .gb-step-icon {
  width: var(--icon-w);
  height: var(--icon-h);
  margin: var(--icon-y) 0 0;
  background: center / contain no-repeat;
}

body.gb-custom-page .gb-ordering .gb-step-icon--purchase { background-image: url("icons/step-purchase.svg"); }
body.gb-custom-page .gb-ordering .gb-step-icon--photo    { background-image: url("icons/step-photo.svg"); }
body.gb-custom-page .gb-ordering .gb-step-icon--timing   { background-image: url("icons/step-timing.svg"); }
body.gb-custom-page .gb-ordering .gb-step-icon--payment  { background-image: url("icons/step-payment.svg"); }

body.gb-custom-page .gb-ordering .gb-step-title {
  width: var(--title-w);
  margin: var(--title-gap) 0 0;
  font-family: var(--gb-font-condensed);
  font-weight: 500;
  font-size: 30px;
  line-height: 30px;
  letter-spacing: 8.8px;
  color: #000000;
}

body.gb-custom-page .gb-ordering .gb-step-desc {
  width: var(--desc-w);
  margin: var(--desc-gap) 0 0;
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 300;
  font-size: 16px;
  line-height: 22.4px;
  color: #000000;
}

@media (max-width: 767px) {
  /* CTA mobile (320px layout): image on top, white text block below; no button. */
  body.gb-custom-page .gb-section.gb-cta {
    min-width: 0;
    height: 556px;
  }

  body.gb-custom-page .gb-cta .gb-cta-btn-wrap {
    display: none;
  }

  body.gb-custom-page .gb-cta .gb-cta-img {
    top: 0;
    left: 0;
    width: 100%;
    height: 214px;
  }

  body.gb-custom-page .gb-cta .gb-cta-panel {
    top: 236px;
    right: 0;
    width: 100%;
    height: 320px;
    padding: 21px 20px 0;
  }

  body.gb-custom-page .gb-cta .gb-cta-title {
    width: 160px;
    font-size: 29px;
    line-height: 34.5px;
    letter-spacing: 8.1px;
    white-space: normal;
  }

  body.gb-custom-page .gb-cta .gb-cta-divider {
    width: 280px;
    margin: 20px 0 0;
  }

  body.gb-custom-page .gb-cta .gb-cta-text {
    width: 267px;
    margin: 14px 0 0;
  }

  /* Ordering mobile: steps stack; block heights and offsets from live 320px layout.
     min-height, not height: core forces flex-basis:100% on stacked columns, which overrides height. */
  body.gb-custom-page .gb-section.gb-ordering {
    min-width: 0;
  }

  body.gb-custom-page .gb-ordering .gb-ordering-steps {
    flex-direction: column;
    height: auto;
  }

  body.gb-custom-page .gb-ordering .gb-step { flex: 0 0 auto; --icon-y: 20px; }
  body.gb-custom-page .gb-ordering .gb-step--purchase { min-height: 236px; --icon-w: 73px; --icon-h: 81px; --title-gap: 8px;  --title-fs: 27px; --desc-gap: 14px; --desc-w: 210px; }
  body.gb-custom-page .gb-ordering .gb-step--photo    { min-height: 207px; --icon-w: 68px; --icon-h: 81px; --title-gap: 8px;  --title-fs: 21px; --desc-gap: 13px; --desc-w: 210px; }
  body.gb-custom-page .gb-ordering .gb-step--timing   { min-height: 246px; --icon-w: 83px; --icon-h: 94px; --title-gap: 11px; --title-fs: 25px; --desc-gap: 10px;  --desc-w: 184px; }
  body.gb-custom-page .gb-ordering .gb-step--payment  { min-height: 235px; --icon-w: 82px; --icon-h: 106px; --title-gap: 11px; --title-fs: 24px; --desc-gap: 10px;  --desc-w: 226px; }
  /* Nunito Sans runs ~4% wider than live's Avenir on this line. */
  body.gb-custom-page .gb-ordering .gb-step--payment .gb-step-desc { letter-spacing: -0.1px; }

  body.gb-custom-page .gb-ordering .gb-step-title {
    width: auto;
    font-size: var(--title-fs);
    line-height: var(--title-fs);
    letter-spacing: calc(var(--title-fs) * 0.3);
    white-space: nowrap;
  }
}


/* ==========================================================================
   15. "Call For Other Custom Sizes" banner
   Live: studio photo at 50% opacity over black (= core Cover with a 50% black overlay),
   all content centered on the page. Phone button links to tel:.
   ========================================================================== */
body.gb-custom-page .wp-block-cover.gb-custom-sizes {
  position: relative;
  display: block;
  min-height: 740px;
  height: 740px;
  min-width: 980px;
  margin: 0;
  padding: 0;
}

body.gb-custom-page .gb-custom-sizes .wp-block-cover__image-background {
  object-fit: cover;
  object-position: 50% 50%;
}

body.gb-custom-page .gb-custom-sizes .wp-block-cover__inner-container {
  position: relative;
  width: 100%;
  max-width: none;
  padding-top: 238px;
  color: #ffffff;
}

body.gb-custom-page .gb-custom-sizes .gb-custom-sizes-title {
  margin: 0;
  font-family: var(--gb-font-condensed);
  font-weight: 700;
  font-size: 55px;
  line-height: 65px;
  letter-spacing: 9.45px;
  color: #ffffff;
  text-align: center;
  white-space: nowrap;
}

body.gb-custom-page .gb-custom-sizes .gb-custom-sizes-text {
  width: 520px;
  margin: 25px auto 0;
  font-family: var(--gb-font-primary);
  font-weight: 400;
  font-size: 22px;
  line-height: 41.36px;
  color: #ffffff;
  text-align: center;
}

body.gb-custom-page .gb-custom-sizes .gb-custom-sizes-btn-wrap {
  margin: 49px 0 0;
}

body.gb-custom-page .gb-custom-sizes .gb-phone-btn .wp-block-button__link {
  display: flex;
  align-items: center;
  box-sizing: border-box;
  width: 192px;
  height: 39px;
  padding: 0 0 0 17px;
  border-radius: 7px;
  background-color: var(--gb-color-accent);
  color: #ffffff;
  font-family: 'Poppins', sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1;
  letter-spacing: -0.5px;
  white-space: nowrap;
  text-decoration: none;
}

body.gb-custom-page .gb-custom-sizes .gb-phone-btn .wp-block-button__link::after {
  content: "";
  flex: 0 0 22px;
  height: 22px;
  margin-left: 4px;
  background: url("icons/phone.svg") center / contain no-repeat;
}

@media (max-width: 767px) {
  body.gb-custom-page .wp-block-cover.gb-custom-sizes {
    min-width: 0;
    min-height: 348px;
    height: 348px;
  }

  body.gb-custom-page .gb-custom-sizes .wp-block-cover__inner-container {
    padding-top: 23px;
  }

  body.gb-custom-page .gb-custom-sizes .gb-custom-sizes-title {
    width: 210px;
    margin: 0 auto;
    font-size: 27px;
    line-height: 37.8px;
    letter-spacing: 5px;
    white-space: normal;
  }

  body.gb-custom-page .gb-custom-sizes .gb-custom-sizes-text {
    width: 275px;
    margin-top: 9px;
    font-size: 21px;
    line-height: 39.48px;
  }

  body.gb-custom-page .gb-custom-sizes .gb-custom-sizes-btn-wrap {
    margin-top: 20px;
  }

  body.gb-custom-page .gb-custom-sizes .gb-phone-btn .wp-block-button__link {
    width: 160px;
    height: 42px;
    padding-left: 2px;
  }
}

/* ==========================================================================
   16. Gallery: horizontally scrolling collage (Wix "collage" gallery).
   A 1216x517 window centered on the page (it overflows the page on narrow screens, as on
   live) clips a 3510px strip of absolutely placed images. Arrows and the full-screen viewer
   are added by js/gbstudio.js. Mobile: 280x159 window, 1090px strip.
   ========================================================================== */
body.gb-custom-page .gb-section.gb-gallery {
  position: relative;
  height: 744px;
  min-width: 980px;
  margin: 0;
  padding: 0;
  background-color: #ffffff;
  overflow: hidden;
}

body.gb-custom-page .gb-gallery .gb-gallery-title {
  position: absolute;
  left: 0;
  top: 47px;
  width: 100%;
  margin: 0;
  font-family: var(--gb-font-condensed);
  font-weight: 500;
  font-size: 55px;
  line-height: 65px;
  letter-spacing: 12.6px;
  color: #000000;
  text-align: center;
}

body.gb-custom-page .gb-gallery .gb-gallery-divider {
  position: absolute;
  left: calc(50% - 141.5px);
  top: 127px;
  width: 284px;
  margin: 0;
  border: 0;
  border-top: 3px solid #000000;
  opacity: 1;
}

body.gb-custom-page .gb-gallery .gb-gallery-window {
  position: absolute;
  left: calc(50% - 608px);
  top: 184px;
  width: 1216px;
  height: 517px;
  margin: 0;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  scroll-behavior: smooth;
}

body.gb-custom-page .gb-gallery .gb-gallery-window::-webkit-scrollbar {
  display: none;
}

body.gb-custom-page .gb-gallery .gb-gallery-strip {
  position: relative;
  width: 3510px;
  height: 100%;
  margin: 0;
}

body.gb-custom-page .gb-gallery .gb-gal-item {
  position: absolute;
  margin: 0;
  background-color: #f5f5f5;
  cursor: pointer;
}

body.gb-custom-page .gb-gallery .gb-gal-item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body.gb-custom-page .gb-gal-item--01 { left: 0px; top: 0px; width: 284px; height: 160px; }
body.gb-custom-page .gb-gal-item--02 { left: 289px; top: 0px; width: 239px; height: 160px; }
body.gb-custom-page .gb-gal-item--03 { left: 0px; top: 165px; width: 528px; height: 352px; }
body.gb-custom-page .gb-gal-item--04 { left: 533px; top: 0px; width: 255px; height: 171px; }
body.gb-custom-page .gb-gal-item--05 { left: 533px; top: 176px; width: 255px; height: 341px; }
body.gb-custom-page .gb-gal-item--06 { left: 793px; top: 0px; width: 493px; height: 329px; }
body.gb-custom-page .gb-gal-item--07 { left: 793px; top: 334px; width: 244px; height: 183px; }
body.gb-custom-page .gb-gal-item--08 { left: 1042px; top: 334px; width: 244px; height: 183px; }
body.gb-custom-page .gb-gal-item--09 { left: 1291px; top: 0px; width: 437px; height: 321px; }
body.gb-custom-page .gb-gal-item--10 { left: 1291px; top: 326px; width: 287px; height: 191px; }
body.gb-custom-page .gb-gal-item--11 { left: 1583px; top: 326px; width: 145px; height: 191px; }
body.gb-custom-page .gb-gal-item--12 { left: 1733px; top: 0px; width: 204px; height: 264px; }
body.gb-custom-page .gb-gal-item--13 { left: 1942px; top: 0px; width: 205px; height: 264px; }
body.gb-custom-page .gb-gal-item--14 { left: 1733px; top: 269px; width: 414px; height: 248px; }
body.gb-custom-page .gb-gal-item--15 { left: 2152px; top: 0px; width: 256px; height: 341px; }
body.gb-custom-page .gb-gal-item--16 { left: 2152px; top: 346px; width: 256px; height: 171px; }
body.gb-custom-page .gb-gal-item--17 { left: 2413px; top: 0px; width: 403px; height: 517px; }
body.gb-custom-page .gb-gal-item--18 { left: 2821px; top: 0px; width: 689px; height: 517px; }

/* Arrow buttons (created by JS): white chevron, 23x39, 23px inside the window edge. */
body.gb-custom-page .gb-gallery .gb-gallery-arrow {
  position: absolute;
  top: calc(184px + 239px);
  z-index: 2;
  width: 23px;
  height: 39px;
  padding: 0;
  border: 0;
  background: url("icons/chevron-right.svg") center / contain no-repeat;
  cursor: pointer;
  filter: drop-shadow(0 0 2px rgba(0, 0, 0, 0.4));
}

body.gb-custom-page .gb-gallery .gb-gallery-arrow--next { left: calc(50% + 562px); }
body.gb-custom-page .gb-gallery .gb-gallery-arrow--prev { left: calc(50% - 585px); transform: scaleX(-1); }
body.gb-custom-page .gb-gallery .gb-gallery-arrow[hidden] { display: none; }

@media (max-width: 767px) {
  body.gb-custom-page .gb-section.gb-gallery {
    height: 274px;
    min-width: 0;
  }

  body.gb-custom-page .gb-gallery .gb-gallery-title {
    top: 21px;
    font-size: 31px;
    line-height: 37px;
    letter-spacing: 7.8px;
  }

  body.gb-custom-page .gb-gallery .gb-gallery-divider {
    display: none;
  }

  body.gb-custom-page .gb-gallery .gb-gallery-window {
    left: 20px;
    top: 95px;
    width: 280px;
    height: 159px;
  }

  body.gb-custom-page .gb-gallery .gb-gallery-strip {
    width: 1090px;
  }

  body.gb-custom-page .gb-gal-item--01 { left: 0px; top: 0px; width: 85px; height: 48px; }
  body.gb-custom-page .gb-gal-item--02 { left: 89px; top: 0px; width: 72px; height: 48px; }
  body.gb-custom-page .gb-gal-item--03 { left: 0px; top: 52px; width: 161px; height: 107px; }
  body.gb-custom-page .gb-gal-item--04 { left: 165px; top: 0px; width: 77px; height: 52px; }
  body.gb-custom-page .gb-gal-item--05 { left: 165px; top: 56px; width: 77px; height: 103px; }
  body.gb-custom-page .gb-gal-item--06 { left: 246px; top: 0px; width: 150px; height: 100px; }
  body.gb-custom-page .gb-gal-item--07 { left: 246px; top: 104px; width: 73px; height: 55px; }
  body.gb-custom-page .gb-gal-item--08 { left: 323px; top: 104px; width: 73px; height: 55px; }
  body.gb-custom-page .gb-gal-item--09 { left: 400px; top: 0px; width: 133px; height: 98px; }
  body.gb-custom-page .gb-gal-item--10 { left: 400px; top: 102px; width: 86px; height: 57px; }
  body.gb-custom-page .gb-gal-item--11 { left: 490px; top: 102px; width: 43px; height: 57px; }
  body.gb-custom-page .gb-gal-item--12 { left: 537px; top: 0px; width: 62px; height: 79px; }
  body.gb-custom-page .gb-gal-item--13 { left: 603px; top: 0px; width: 61px; height: 79px; }
  body.gb-custom-page .gb-gal-item--14 { left: 537px; top: 83px; width: 127px; height: 76px; }
  body.gb-custom-page .gb-gal-item--15 { left: 668px; top: 0px; width: 78px; height: 103px; }
  body.gb-custom-page .gb-gal-item--16 { left: 668px; top: 107px; width: 78px; height: 52px; }
  body.gb-custom-page .gb-gal-item--17 { left: 750px; top: 0px; width: 124px; height: 159px; }
  body.gb-custom-page .gb-gal-item--18 { left: 878px; top: 0px; width: 212px; height: 159px; }

  body.gb-custom-page .gb-gallery .gb-gallery-arrow { top: 155px; }
  body.gb-custom-page .gb-gallery .gb-gallery-arrow--next { left: 255px; }
  body.gb-custom-page .gb-gallery .gb-gallery-arrow--prev { left: 42px; }
}

/* Gallery full-screen viewer (live: rgba(0,0,0,.7) overlay, image contained in the viewport
   minus 74px top/bottom and 195px left/right; close/expand top corners, arrows mid-sides). */
.gb-lightbox {
  position: fixed;
  inset: 0;
  z-index: 100000;
  background-color: rgba(0, 0, 0, 0.7);
}

.gb-lightbox[hidden] {
  display: none;
}

.gb-lightbox-open,
.gb-lightbox-open body {
  overflow: hidden;
}

.gb-lightbox__img {
  position: absolute;
  inset: 74px 195px;
  width: calc(100% - 390px);
  height: calc(100% - 148px);
  object-fit: contain;
}

.gb-lightbox__btn {
  position: absolute;
  padding: 0;
  border: 0;
  background: center / contain no-repeat transparent;
  cursor: pointer;
  opacity: 0.85;
}

.gb-lightbox__btn:hover,
.gb-lightbox__btn:focus-visible {
  opacity: 1;
}

.gb-lightbox__btn:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 2px;
}

.gb-lightbox__expand { left: 35px;  top: 26px; width: 38px; height: 44px; background-image: url("icons/lb-expand.svg"); background-size: 26px; }
.gb-lightbox__close  { right: 30px; top: 30px; width: 38px; height: 44px; background-image: url("icons/lb-close.svg"); background-size: 30px; }
.gb-lightbox__prev,
.gb-lightbox__next   { top: calc(50% - 25px); width: 50px; height: 50px; background-image: url("icons/chevron-right.svg"); background-size: 18px 31px; }
.gb-lightbox__prev   { left: 20px; transform: scaleX(-1); }
.gb-lightbox__next   { right: 20px; }

@media (max-width: 767px) {
  .gb-lightbox__img {
    inset: 60px 0;
    width: 100%;
    height: calc(100% - 120px);
  }
}

/* ==========================================================================
   14. Sizes & Prices
   Live: four Wix HTML embeds (iframes) docked to the centered 980px grid. Each iframe crops
   a 350x450 tile (10px white border, shadow) that sits 8px + 8% of the frame width from the
   top inside the frame's 8px body margin. Rebuilt as blocks so the client can edit the text.
   Mobile: live shows four static card images instead (reversed order, 48x60 first).
   Tile text uses Helvetica/Arial on live -> Arimo (metric-compatible with Arial).
   ========================================================================== */
body.gb-custom-page .gb-section.gb-pricing {
  --gb-grid: calc(50% - 490px);
  position: relative;
  height: 1194px;
  min-width: 980px;
  margin: 0;
  padding: 0;
  background-color: #f5f5f5;
}

body.gb-custom-page .gb-pricing .gb-pricing-title {
  position: absolute;
  left: calc(var(--gb-grid) + 264.5px);
  top: 59px;
  width: 460px;
  margin: 0;
  font-family: var(--gb-font-condensed);
  font-weight: 500;
  font-size: 55px;
  line-height: 65px;
  letter-spacing: 12.6px;
  text-align: left;
  white-space: nowrap;
  color: #000000;
}

body.gb-custom-page .gb-pricing .gb-pricing-divider {
  position: absolute;
  left: calc(var(--gb-grid) + 347.5px);
  top: 147px;
  width: 284px;
  margin: 0;
  border: 0;
  border-top: 3px solid #000000;
  opacity: 1;
}

body.gb-custom-page .gb-pricing .gb-price-frame {
  position: absolute;
  margin: 0;
  padding: 0;
  overflow: hidden;
}

/* Frame = the live iframe box; tile = the tile inside it, measured from the original embeds
   rendered as live renders them (no doctype -> quirks mode). Each embed has its own tile size. */
body.gb-custom-page .gb-pricing .gb-price-frame--1 { left: calc(var(--gb-grid) + 18.5px);  top: 148px; width: 428px; height: 533px; --tile-x: 29px; --tile-y: 33px; --tile-w: 350px; --tile-h: 450px; --text-top: 140px; --text-pad: 35px; }
body.gb-custom-page .gb-pricing .gb-price-frame--2 { left: calc(var(--gb-grid) + 493.5px); top: 219px; width: 416px; height: 391px; --tile-x: 23px; --tile-y: 32px; --tile-w: 350px; --tile-h: 300px; --text-top: 40px;  --text-pad: 35px; }
body.gb-custom-page .gb-pricing .gb-price-frame--3 { left: calc(var(--gb-grid) - 41.5px);  top: 681px; width: 549px; height: 477px; --tile-x: 40px; --tile-y: 43px; --tile-w: 450px; --tile-h: 350px; --text-top: 40px;  --text-pad: 45px; }
body.gb-custom-page .gb-pricing .gb-price-frame--4 { left: calc(var(--gb-grid) + 481.5px); top: 712px; width: 487px; height: 422px; --tile-x: 34px; --tile-y: 38px; --tile-w: 400px; --tile-h: 300px; --text-top: 40px;  --text-pad: 40px; }

body.gb-custom-page .gb-pricing .gb-price-tile {
  position: absolute;
  left: var(--tile-x);
  top: var(--tile-y);
  box-sizing: content-box;
  width: var(--tile-w);
  height: var(--tile-h);
  margin: 0;
  border: 10px solid #ffffff;
  box-shadow: 2px 2px 20px gray;
  background: url("images/pricing-tile-texture.jpg") center / cover;
  color: #000000;
  font-family: 'Arimo', Helvetica, Arial, sans-serif;
}

/* GeneratePress wraps group content in an inner container: make that the flex column. */
body.gb-custom-page .gb-pricing .gb-price-tile > .wp-block-group__inner-container {
  display: flex;
  flex-direction: column;
  height: 100%;
}

body.gb-custom-page .gb-pricing .gb-price-size {
  flex: 1 0 auto;
  margin: var(--text-top) var(--text-pad) 0;
  font-size: 18px;
  line-height: 36px;
  text-align: center;
}

/* Quirks-mode line box on live puts the price line 3px lower than standards mode. */
body.gb-custom-page .gb-pricing .gb-price-size strong {
  position: relative;
  top: 3px;
  font-size: 25px;
}

body.gb-custom-page .gb-pricing .gb-price-caption {
  flex: 0 0 100px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  font-size: 28.8px;
  font-weight: 600;
  line-height: normal;
  letter-spacing: 3px;
  text-align: center;
}

body.gb-custom-page .gb-pricing .gb-price-mobile {
  display: none;
}

@media (max-width: 767px) {
  body.gb-custom-page .gb-section.gb-pricing {
    height: 1113px;
    min-width: 0;
  }

  body.gb-custom-page .gb-pricing .gb-pricing-title {
    left: 0;
    top: 23px;
    width: 100%;
    font-size: 27px;
    line-height: 32px;
    letter-spacing: 6.75px;
    text-align: center;
  }

  body.gb-custom-page .gb-pricing .gb-pricing-divider {
    left: 20px;
    top: 79px;
    width: 280px;
  }

  body.gb-custom-page .gb-pricing .gb-price-frame {
    display: none;
  }

  body.gb-custom-page .gb-pricing .gb-price-mobile {
    display: block;
    position: absolute;
    box-sizing: border-box;
    margin: 0;
    padding: 5px;
    background-color: #ffffff;
  }

  body.gb-custom-page .gb-pricing .gb-price-mobile img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  body.gb-custom-page .gb-pricing .gb-price-mobile--1 { left: 17px; top: 104px; width: 285px; height: 217px; }
  body.gb-custom-page .gb-pricing .gb-price-mobile--2 { left: 34px; top: 341px; width: 252px; height: 197px; }
  body.gb-custom-page .gb-pricing .gb-price-mobile--3 { left: 45px; top: 561px; width: 231px; height: 197px; }
  body.gb-custom-page .gb-pricing .gb-price-mobile--4 { left: 47px; top: 783px; width: 225px; height: 290px; }
}

/* ==========================================================================
   17. Contact Us
   Live: heading, divider, intro; then a 698px strip (80% #f5f5f5) with the photo filling the
   left 50% and a 433.5px info+form block centered in the right half (left = 75% - 216.75px).
   Form (WPForms) mirrors the Wix form: underline-only inputs, black " *" on labels, 2px red
   underline when invalid, red 140x36 Send button.
   ========================================================================== */
body.gb-custom-page .gb-section.gb-contact {
  position: relative;
  height: 1326px;
  min-width: 980px;
  margin: 0;
  padding: 0;
  background-color: #ffffff;
}

body.gb-custom-page .gb-contact .gb-contact-title {
  position: absolute;
  left: 0;
  top: 56px;
  width: 100%;
  margin: 0;
  font-family: var(--gb-font-condensed);
  font-weight: 500;
  font-size: 55px;
  line-height: 65px;
  letter-spacing: 12.6px;
  color: #000000;
  text-align: center;
}

body.gb-custom-page .gb-contact .gb-contact-divider {
  position: absolute;
  left: calc(50% - 141.5px);
  top: 134px;
  width: 284px;
  margin: 0;
  border: 0;
  border-top: 3px solid #000000;
  opacity: 1;
}

body.gb-custom-page .gb-contact .gb-contact-intro {
  position: absolute;
  left: calc(50% - 320px);
  top: 164px;
  width: 640px;
  margin: 0;
  font-family: var(--gb-font-primary);
  font-size: 18px;
  line-height: 32.4px;
  color: #000000;
}

body.gb-custom-page .gb-contact .gb-contact-strip {
  position: absolute;
  left: 0;
  top: 278px;
  width: 100%;
  height: 698px;
  margin: 0;
  background-color: rgba(245, 245, 245, 0.8);
}

body.gb-custom-page .gb-contact .gb-contact-img {
  position: absolute;
  left: 0;
  top: 0;
  width: 50%;
  height: 100%;
  margin: 0;
  background-color: #f5f5f5;
}

body.gb-custom-page .gb-contact .gb-contact-img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body.gb-custom-page .gb-contact .gb-contact-panel {
  position: absolute;
  left: calc(75% - 216.75px);
  top: 82px;
  width: 434px;
  margin: 0;
  font-family: var(--gb-font-primary);
  font-size: 16px;
  color: #000000;
}

body.gb-custom-page .gb-contact .gb-contact-address {
  margin: 0;
  line-height: 28.8px;
}

body.gb-custom-page .gb-contact .gb-contact-links {
  margin: 12px 0 0 1px;
  line-height: 19.2px;
}

body.gb-custom-page .gb-contact .gb-contact-links a {
  color: #000000;
  text-decoration: underline;
}

/* Live separator between email and phone is not text: draw it. */
body.gb-custom-page .gb-contact .gb-contact-links a[href^="mailto:"]::after {
  content: "|";
  display: inline-block;
  margin: 0 6px 0 5px;
  text-decoration: none;
}

body.gb-custom-page .gb-contact .gb-contact-address--2 {
  margin-top: 0;
}

body.gb-custom-page .gb-contact .gb-contact-map {
  position: absolute;
  left: 0;
  top: 976px;
  width: 100%;
  height: 350px;
  margin: 0;
}

/* The GP inner container sits between the group and the iframe; it must fill the group too. */
body.gb-custom-page .gb-contact .gb-contact-map > .wp-block-group__inner-container {
  height: 100%;
}

body.gb-custom-page .gb-contact .gb-map {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

@media (max-width: 767px) {
  body.gb-custom-page .gb-contact .gb-contact-map {
    top: 1175px;
    height: 240px;
  }
}

/* --- Form --- */
body.gb-custom-page .gb-contact .wpforms-container {
  margin: 79px 0 0;
  padding: 0;
}

body.gb-custom-page .gb-contact .wpforms-form .wpforms-field-container {
  display: grid;
  grid-template-columns: 200px 200px;
  column-gap: 17px;
  row-gap: 21px;
}

body.gb-custom-page .gb-contact .wpforms-form .wpforms-field {
  float: none;
  width: auto;
  margin: 0;
  padding: 0;
  clear: none;
}

body.gb-custom-page .gb-contact .wpforms-form .wpforms-field-textarea {
  grid-column: 1 / -1;
}

body.gb-custom-page .gb-contact .wpforms-form .wpforms-field-label {
  margin: 0 0 9px;
  padding: 0 0 0 2px;
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 300;
  font-size: 14px;
  line-height: 14px;
  color: #000000;
}

/* Live renders the asterisk with CSS, not as text. */
/* Live draws "Label *" with CSS; do the same (inputs keep the required attribute for assistive tech). */
body.gb-custom-page .gb-contact .wpforms-form .wpforms-required-label {
  display: none;
}

body.gb-custom-page .gb-contact .wpforms-form .wpforms-field-label:has(.wpforms-required-label)::after {
  content: " *";
}

body.gb-custom-page .gb-contact .wpforms-form input.wpforms-field-large,
body.gb-custom-page .gb-contact .wpforms-form textarea {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  height: 37px;
  margin: 0;
  padding: 3px 3px 3px 10px;
  border: 0;
  border-bottom: 1px solid #000000;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 300;
  font-size: 14px;
  color: #000000;
}

body.gb-custom-page .gb-contact .wpforms-form textarea {
  height: 86px;
  padding: 10.5px 10px 3px;
  resize: none;
}

body.gb-custom-page .gb-contact .wpforms-form input:focus,
body.gb-custom-page .gb-contact .wpforms-form textarea:focus {
  outline: none;
  border-bottom-width: 2px;
}

/* Invalid: live shows a 2px red underline only; keep WPForms' message for screen readers. */
body.gb-custom-page .gb-contact .wpforms-form .wpforms-field input.wpforms-error,
body.gb-custom-page .gb-contact .wpforms-form .wpforms-field textarea.wpforms-error {
  border: 0;
  border-bottom: 2px solid rgb(255, 64, 64);
}

body.gb-custom-page .gb-contact .wpforms-form label.wpforms-error,
body.gb-custom-page .gb-contact .wpforms-form em.wpforms-error {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

body.gb-custom-page .gb-contact .wpforms-form .wpforms-submit-container {
  margin: 25px 0 0 -2px;
  padding: 0;
}

body.gb-custom-page .gb-contact .wpforms-form button.wpforms-submit {
  width: 140px;
  height: 36px;
  margin: 0;
  padding: 0;
  border: 1px solid var(--gb-color-accent);
  border-radius: 0;
  background-color: var(--gb-color-accent);
  color: #ffffff;
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 300;
  font-size: 14px;
  line-height: 19.6px;
  cursor: pointer;
}

body.gb-custom-page .gb-contact .wpforms-confirmation-container-full {
  margin: 79px 0 0;
  padding: 0;
  border: 0;
  background: transparent;
  font-family: 'Nunito Sans', sans-serif;
  font-size: 14px;
  color: #000000;
}

@media (max-width: 767px) {
  body.gb-custom-page .gb-section.gb-contact {
    height: 1415px;
    min-width: 0;
  }

  body.gb-custom-page .gb-contact .gb-contact-title {
    top: 21px;
    font-size: 29px;
    line-height: 34px;
    letter-spacing: 6.6px;
  }

  body.gb-custom-page .gb-contact .gb-contact-divider {
    display: none;
  }

  body.gb-custom-page .gb-contact .gb-contact-intro {
    left: 26px;
    top: 92px;
    width: 268px;
    font-size: 16px;
    line-height: 28.8px;
  }

  body.gb-custom-page .gb-contact .gb-contact-strip {
    top: 256px;
    height: 919px;
  }

  body.gb-custom-page .gb-contact .gb-contact-img {
    width: 100%;
    height: 200px;
  }

  body.gb-custom-page .gb-contact .gb-contact-panel {
    left: 20px;
    top: 220px;
    width: 280px;
  }

  body.gb-custom-page .gb-contact .gb-contact-address {
    width: 220px;
  }

  body.gb-custom-page .gb-contact .gb-contact-links {
    margin-top: 6px;
    line-height: 30px;
  }

  body.gb-custom-page .gb-contact .gb-contact-links a {
    display: block;
  }

  /* Live shows no separator on mobile (email and phone on their own lines). */
  body.gb-custom-page .gb-contact .gb-contact-links a[href^="mailto:"]::after {
    content: none;
  }

  body.gb-custom-page .gb-contact .wpforms-container {
    margin-top: 23px;
  }

  body.gb-custom-page .gb-contact .wpforms-form .wpforms-field-container {
    grid-template-columns: 280px;
    row-gap: 10px;
  }

  body.gb-custom-page .gb-contact .wpforms-form .wpforms-field-label {
    font-size: 16px;
    line-height: 16px;
  }

  body.gb-custom-page .gb-contact .wpforms-form input.wpforms-field-large {
    height: 39px;
  }

  body.gb-custom-page .gb-contact .wpforms-form textarea {
    height: 85px;
  }

  body.gb-custom-page .gb-contact .wpforms-form .wpforms-submit-container {
    margin: 17px 0 0;
  }

  body.gb-custom-page .gb-contact .wpforms-form button.wpforms-submit {
    width: 280px;
    height: 42px;
  }
}


/* ==========================================================================
   12. Responsive Mobile Rules (<= 767px, --m model)
   ========================================================================== */
@media (max-width: 767px) {
  body.gb-custom-page {
    font-size: calc(14 * var(--m));
  }

  /* Hero Mobile (320px layout). On live the hero starts below the 69px header band and its
     video extends 69px up behind the header; the section box itself is 356px. */
  body.gb-custom-page .wp-block-cover.gb-hero {
    min-height: 356px;
    height: 356px;
    margin-top: 69px;
    overflow: visible;
  }

  body.gb-custom-page .gb-hero video.wp-block-cover__video-background,
  body.gb-custom-page .gb-hero .wp-block-cover__image-background,
  body.gb-custom-page .gb-hero .wp-block-cover__background {
    top: -69px;
    height: calc(100% + 69px);
  }

  body.gb-custom-page .gb-hero-quote {
    font-size: 24px;
    line-height: 28px;
    letter-spacing: 3.5px;
    width: 262px;
    max-width: 262px;
    text-align: center;
    margin: 166px 0 0 24px;
  }

  body.gb-custom-page .gb-hero-divider {
    position: absolute;
    left: 15px;
    top: 278px;
    width: 280px;
    height: 6px;
    margin: 0;
  }

  body.gb-custom-page .gb-hero-name {
    position: absolute;
    left: 77px;
    top: 287px;
    width: 156px;
    margin: 0;
    font-size: 24px;
    letter-spacing: 3.5px;
    text-align: center;
  }

  /* About Studio Mobile */
  body.gb-custom-page .gb-section.gb-about {
    height: 930px;
    min-height: 930px;
    width: 320px;
    margin: 0 auto;
    padding: 0;
    box-sizing: border-box;
    position: relative;
  }

  body.gb-custom-page .gb-about .gb-about-grid {
    display: grid;
    grid-template-columns: 100%;
    height: auto;
    width: 320px;
    min-width: 320px;
    margin: 0 auto;
    padding: 0;
    gap: 0;
  }

  body.gb-custom-page .gb-about .gb-about-col-text {
    order: 1;
    width: 320px;
    height: 530px;
    padding: 32px 0 0 0;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  body.gb-custom-page .gb-about .gb-section-title {
    font-size: 38px;
    line-height: 45px;
    letter-spacing: 9.3px;
    width: 122px;
    margin: 0 auto 15px auto;
  }

  body.gb-custom-page .gb-about .gb-about-logo {
    margin: 0 auto 10px auto;
  }

  body.gb-custom-page .gb-about .gb-about-logo img {
    width: 284px;
    height: 61px;
    filter: url('#goldie');
    display: block;
    margin: 0 auto;
  }

  body.gb-custom-page .gb-about .gb-about-text {
    font-family: var(--gb-font-body);
    font-weight: 300;
    font-size: 14px;
    line-height: 21.8px;
    letter-spacing: normal;
    word-spacing: normal;
    width: 280px;
    max-width: 280px;
    margin: 0 auto;
  }

  body.gb-custom-page .gb-about .gb-about-col-img-left {
    order: 2;
    width: 320px;
    height: 200px;
    margin: 0;
    padding: 0;
  }

  body.gb-custom-page .gb-about .gb-about-col-img-right {
    order: 3;
    width: 320px;
    height: 200px;
    margin: 0;
    padding: 0;
  }

  body.gb-custom-page .gb-about .gb-about-img {
    height: 200px;
    margin: 0;
    padding: 0;
  }

  body.gb-custom-page .gb-about .gb-about-col-img-left img,
  body.gb-custom-page .gb-about .gb-about-col-img-right img {
    width: 320px;
    height: 200px;
    display: block;
    object-fit: cover;
    margin: 0;
  }

  /* About the Artist Mobile */
  body.gb-custom-page .gb-section.gb-about-artist {
    height: 911px;
    min-height: 911px;
    width: 320px;
    margin: 0 auto;
    padding: 0;
    box-sizing: border-box;
    position: relative;
    background-color: #ffffff;
  }

  body.gb-custom-page .gb-about-artist .gb-about-artist-grid {
    display: flex;
    flex-direction: column;
    height: auto;
    width: 320px;
    min-width: 320px;
    margin: 0 auto;
  }

  body.gb-custom-page .gb-about-artist .gb-about-artist-content {
    width: 320px;
    min-height: 651px; /* core's inline flex-basis beats height in a flex column */
    flex: none;
    padding: 0;
    box-sizing: border-box;
    background-color: #f5f5f5;
    left: 0;
  }

  body.gb-custom-page .gb-about-artist .gb-section-title {
    font-size: 19px;
    line-height: 23px;
    letter-spacing: 5.0px;
    width: auto;
    white-space: nowrap;
    margin: 21px auto 25px auto;
    color: #000000;
  }

  body.gb-custom-page .gb-about-artist .gb-artist-name {
    font-size: 41px;
    line-height: 48px;
    width: 172px;
    margin: 0 auto 0 auto;
    color: #000000;
  }

  body.gb-custom-page .gb-about-artist hr.gb-artist-divider-a {
    width: 280px;
    margin: 10px auto 14px auto;
    border-top: 2px solid #000000;
  }

  body.gb-custom-page .gb-about-artist .gb-about-artist-text {
    font-size: 15px;
    line-height: 26.5px;
    letter-spacing: 0.05px;
    width: 280px;
    margin: 0 auto 20px auto;
    color: #000000;
  }

  body.gb-custom-page .gb-about-artist .gb-artist-actions .wp-block-button__link {
    font-size: 14px;
    letter-spacing: 0.43px;
    width: 170px;
    min-width: 170px;
    height: 42px;
    line-height: 42px;
    padding: 0;
    text-align: center;
    background-color: var(--gb-color-accent);
    color: #ffffff;
    border-radius: 0;
    white-space: nowrap;
  }

  body.gb-custom-page .gb-about-artist .gb-about-artist-media {
    display: block;
    width: 320px;
    flex: none;
    min-height: 260px;
  }

  body.gb-custom-page .gb-about-artist .gb-video-slot {
    left: 0;
    top: 0;
    width: 311px;
    height: 189px;
    margin: 35px auto 0;
  }

  /* Work Divider Mobile */
  body.gb-custom-page #work,
  body.gb-custom-page .gb-work-divider {
    height: 201px;
    min-height: 201px;
    width: 320px;
    margin: 0 auto;
    padding: 0;
    box-sizing: border-box;
    position: relative;
    display: block;
  }

  body.gb-custom-page .gb-work-divider .gb-work-divider-title {
    position: absolute;
    top: 16px;
    left: 20px;
    width: 280px;
    text-align: center;
    margin: 0;
  }

  body.gb-custom-page .gb-work-divider .gb-work-divider-title span {
    font-size: 37px;
    line-height: 53.5px;
    letter-spacing: 7.33px;
    width: 280px;
    white-space: normal;
    text-align: center;
    margin: 0 auto;
    display: block;
    position: static;
  }

  body.gb-custom-page .gb-work-divider-br {
    display: block;
  }

  body.gb-custom-page .gb-work-divider hr.gb-work-divider-b {
    position: absolute;
    top: 146px;
    left: 20px;
    width: 280px;
    margin: 0;
  }

  /* Felix Mobile */
  body.gb-custom-page .gb-section.gb-featured-portrait {
    height: 771px;
    min-height: 771px;
    width: 320px;
    margin: 0 auto;
    position: relative;
    box-sizing: border-box;
    padding: 0;
  }

  body.gb-custom-page .gb-featured-portrait .gb-featured-grid {
    width: 100%;
    height: 771px;
    position: relative;
    display: block;
    margin: 0;
    padding: 0;
  }

  body.gb-custom-page .gb-featured-portrait .gb-featured-img {
    position: absolute;
    left: calc(50% - 150.5px);
    top: 203px;
    width: 301px;
    height: 413px;
    margin: 0;
    padding: 0;
    z-index: 2;
  }

  body.gb-custom-page .gb-featured-portrait .gb-featured-img img {
    width: 301px;
    height: 413px;
    max-width: 301px;
    object-fit: cover;
    display: block;
    margin: 0;
  }

  body.gb-custom-page .gb-featured-portrait .gb-featured-name span:first-child {
    position: absolute;
    left: calc(50% - 76px);
    top: 28px;
    width: 136px;
    font-size: 63px;
    line-height: 63px;
    letter-spacing: 0.9px;
    text-align: center;
    z-index: 1;
    display: block;
  }

  body.gb-custom-page .gb-featured-portrait .gb-featured-name span:last-child {
    position: absolute;
    left: calc(50% - 122.5px);
    top: 93.5px;
    width: 233px;
    font-size: 63px;
    line-height: 63px;
    letter-spacing: -1.1px;
    text-align: center;
    z-index: 1;
    display: block;
  }

  body.gb-custom-page .gb-featured-portrait .gb-featured-subtitle {
    position: absolute;
    left: calc(50% - 121.5px);
    top: 158.7px;
    width: 243px;
    font-size: 25px;
    line-height: 35px;
    letter-spacing: 7.1px;
    text-align: center;
    z-index: 1; /* live: the painting covers the second line ("Boxer") */
  }

  body.gb-custom-page .gb-featured-portrait .gb-learn-more-wrap {
    position: absolute;
    left: calc(50% - 41.5px);
    top: 643.5px;
    width: 83px;
    height: 21px;
    z-index: 3;
    text-align: center;
  }

  body.gb-custom-page .gb-featured-portrait .gb-learn-more-link span {
    display: block;
    width: 83px;
    height: 21px;
    line-height: 21px;
    font-family: var(--gb-font-learn);
    font-size: 15px;
    font-style: italic;
    letter-spacing: normal;
    white-space: nowrap;
    color: #ffffff;
    text-align: center;
  }

  body.gb-custom-page .gb-featured-portrait .gb-play-wrap {
    position: absolute;
    left: calc(50% - 39px);
    top: 667.5px;
    width: 80px;
    height: 80px;
    z-index: 3;
  }


  /* Cotto & Torres Mobile */
  body.gb-custom-page .gb-section.gb-row-cotto-torres {
    height: 1108px;
    min-height: 1108px;
    width: 320px;
    margin: 0 auto;
    padding: 0;
    position: relative;
    box-sizing: border-box;
  }

  body.gb-custom-page .gb-row-cotto-torres .gb-portraits-grid-2col {
    position: relative;
    width: 100%;
    height: 1108px;
    margin: 0;
    padding: 0;
    display: block;
  }

  body.gb-custom-page .gb-row-cotto-torres .gb-portrait-card {
    position: static;
  }

  body.gb-custom-page .gb-row-cotto-torres .gb-card-cotto .gb-portrait-img {
    position: absolute;
    left: calc(50% - 140px);
    top: 39px;
    width: 280px;
    height: 184px;
    margin: 0;
    padding: 0;
  }

  body.gb-custom-page .gb-row-cotto-torres .gb-card-cotto .gb-portrait-img img {
    width: 280px;
    height: 184px;
    max-width: 280px;
    object-fit: cover;
    display: block;
  }

  body.gb-custom-page .gb-row-cotto-torres .gb-card-cotto .gb-card-panel {
    position: static;
    background: transparent;
  }

  body.gb-custom-page .gb-row-cotto-torres .gb-card-cotto .gb-card-panel .gb-portrait-name {
    position: absolute;
    left: calc(50% - 45.6px);
    top: 260px;
    width: 91.2px;
    height: 63px;
    font-family: var(--gb-font-condensed);
    font-weight: 500;
    font-size: 26px;
    line-height: 31.5px;
    letter-spacing: 5.2px;
    white-space: normal;
    color: var(--gb-color-accent-dark);
    text-align: center;
  }

  body.gb-custom-page .gb-row-cotto-torres .gb-card-cotto .gb-card-panel .gb-portrait-desc {
    position: absolute;
    left: calc(50% - 114px);
    top: 331px;
    width: 234px;
    height: 92px;
    font-family: var(--gb-font-body);
    font-weight: 300;
    font-size: 15px;
    line-height: 24px;
    letter-spacing: 0.1px;
    color: #000000;
    text-align: center;
  }

  body.gb-custom-page .gb-row-cotto-torres .gb-card-cotto .gb-card-panel .gb-learn-more-wrap {
    position: absolute;
    left: calc(50% - 41.5px);
    top: 454.5px;
    width: 83px;
    height: 21px;
  }

  body.gb-custom-page .gb-row-cotto-torres .gb-card-cotto .gb-card-panel .gb-learn-more-link span {
    display: block;
    width: 83px;
    height: 21px;
    line-height: 21px;
    font-family: var(--gb-font-learn);
    font-size: 15px;
    font-style: italic;
    color: var(--gb-color-accent);
    text-align: center;
    letter-spacing: normal;
    white-space: nowrap;
  }

  body.gb-custom-page .gb-row-cotto-torres .gb-card-torres .gb-portrait-img {
    position: absolute;
    left: calc(50% - 120px);
    top: 577px;
    width: 240px;
    height: 240px;
    margin: 0;
    padding: 0;
  }

  body.gb-custom-page .gb-row-cotto-torres .gb-card-torres .gb-portrait-img img {
    width: 240px;
    height: 240px;
    max-width: 240px;
    object-fit: cover;
    display: block;
  }

  body.gb-custom-page .gb-row-cotto-torres .gb-card-torres .gb-card-panel {
    position: static;
    background: transparent;
  }

  body.gb-custom-page .gb-row-cotto-torres .gb-card-torres .gb-card-panel .gb-portrait-name {
    position: absolute;
    left: calc(50% - 53.6px);
    top: 859px;
    width: 110px;
    height: 63px;
    font-family: var(--gb-font-condensed);
    font-weight: 500;
    font-size: 26px;
    line-height: 31.5px;
    letter-spacing: 5.2px;
    white-space: normal;
    color: var(--gb-color-accent-dark);
    text-align: center;
  }

  body.gb-custom-page .gb-row-cotto-torres .gb-card-torres .gb-card-panel .gb-portrait-desc {
    position: absolute;
    left: calc(50% - 114px);
    top: 930px;
    width: 228px;
    height: 92px;
    font-family: var(--gb-font-body);
    font-weight: 300;
    font-size: 15px;
    line-height: 24px;
    letter-spacing: -0.25px;
    color: #000000;
    text-align: center;
  }

  body.gb-custom-page .gb-row-cotto-torres .gb-card-torres .gb-card-panel .gb-learn-more-wrap {
    position: absolute;
    left: calc(50% - 41.5px);
    top: 1057.5px;
    width: 83px;
    height: 21px;
  }

  body.gb-custom-page .gb-row-cotto-torres .gb-card-torres .gb-card-panel .gb-learn-more-link span {
    display: block;
    width: 83px;
    height: 21px;
    line-height: 21px;
    font-family: var(--gb-font-learn);
    font-size: 15px;
    font-style: italic;
    color: var(--gb-color-accent);
    text-align: center;
    letter-spacing: normal;
    white-space: nowrap;
  }

  /* Taylor & Winston Mobile */
  body.gb-custom-page .gb-section.gb-row-taylor-winston {
    height: 1331px;
    min-height: 1331px;
    width: 320px;
    margin: 0 auto;
    padding: 0;
    position: relative;
    box-sizing: border-box;
  }

  body.gb-custom-page .gb-row-taylor-winston .gb-portraits-grid-2col {
    position: relative;
    width: 100%;
    height: 1331px;
    margin: 0;
    padding: 0;
    display: block;
  }

  body.gb-custom-page .gb-row-taylor-winston .gb-portrait-card {
    position: static;
  }

  body.gb-custom-page .gb-row-taylor-winston .gb-card-taylor .gb-portrait-img {
    position: absolute;
    left: calc(50% - 140px);
    top: 40px;
    width: 280px;
    height: 378px;
    margin: 0;
    padding: 0;
  }

  body.gb-custom-page .gb-row-taylor-winston .gb-card-taylor .gb-portrait-img img {
    width: 280px;
    height: 378px;
    max-width: 280px;
    object-fit: cover;
    display: block;
  }

  body.gb-custom-page .gb-row-taylor-winston .gb-card-taylor .gb-card-panel {
    position: static;
    background: transparent;
  }

  body.gb-custom-page .gb-row-taylor-winston .gb-card-taylor .gb-card-panel .gb-portrait-name {
    position: absolute;
    left: calc(50% - 50px);
    top: 454px;
    width: 100px;
    height: 63px;
    font-family: var(--gb-font-condensed);
    font-weight: 500;
    font-size: 26px;
    line-height: 31.5px;
    letter-spacing: 5.2px;
    white-space: normal;
    color: var(--gb-color-accent-dark);
    text-align: center;
  }

  body.gb-custom-page .gb-row-taylor-winston .gb-card-taylor .gb-card-panel .gb-portrait-desc {
    position: absolute;
    left: calc(50% - 113.5px);
    top: 525px;
    width: 227px;
    height: 44px;
    font-family: var(--gb-font-body);
    font-weight: 300;
    font-size: 15px;
    line-height: 22px;
    letter-spacing: normal;
    color: #000000;
    text-align: center;
  }

  body.gb-custom-page .gb-row-taylor-winston .gb-card-taylor .gb-card-panel .gb-learn-more-wrap {
    position: absolute;
    left: calc(50% - 41.5px);
    top: 592.5px;
    width: 83px;
    height: 19px;
  }

  body.gb-custom-page .gb-row-taylor-winston .gb-card-winston .gb-portrait-img {
    position: absolute;
    left: calc(50% - 120px);
    top: 715px;
    width: 240px;
    height: 238px;
    margin: 0;
    padding: 0;
  }

  body.gb-custom-page .gb-row-taylor-winston .gb-card-winston .gb-portrait-img img {
    width: 240px;
    height: 238px;
    max-width: 240px;
    object-fit: cover;
    display: block;
  }

  body.gb-custom-page .gb-row-taylor-winston .gb-card-winston .gb-card-panel {
    position: static;
    background: transparent;
  }

  body.gb-custom-page .gb-row-taylor-winston .gb-card-winston .gb-card-panel .gb-portrait-name {
    position: absolute;
    left: calc(50% - 60px);
    top: 995px;
    width: 120px;
    height: 63px;
    font-family: var(--gb-font-condensed);
    font-weight: 500;
    font-size: 26px;
    line-height: 31.5px;
    letter-spacing: 4.5px;
    white-space: normal;
    color: var(--gb-color-accent-dark);
    text-align: center;
  }

  body.gb-custom-page .gb-row-taylor-winston .gb-card-winston .gb-card-panel .gb-portrait-desc {
    position: absolute;
    left: calc(50% - 108.5px);
    top: 1070px;
    width: 217px;
    height: 116px;
    font-family: var(--gb-font-body);
    font-weight: 300;
    font-size: 15px;
    line-height: 23px;
    letter-spacing: normal;
    color: #000000;
    text-align: center;
  }

  body.gb-custom-page .gb-row-taylor-winston .gb-card-winston .gb-card-panel .gb-learn-more-wrap {
    position: absolute;
    left: calc(50% - 41.5px);
    top: 1209.5px;
    width: 83px;
    height: 19px;
  }

  /* Portrait Grid Mobile */
  body.gb-custom-page .gb-section.gb-portrait-grid {
    height: 6796px;
    min-height: 6796px;
    width: 320px;
    margin: 0 auto;
    padding: 0;
    position: relative;
    box-sizing: border-box;
    background: radial-gradient(circle at 84.4% 73.9%, #C68585 0%, rgba(198,133,133,0) 35%),
                radial-gradient(circle at 11.2% 29.9%, #DFC1D1 0%, rgba(223,193,209,0) 50%);
  }

  body.gb-custom-page .gb-portrait-grid .gb-portrait-grid-inner {
    position: static;
    width: 100%;
    height: 100%;
  }

  body.gb-custom-page .gb-portrait-grid .gb-portrait-card {
    position: static;
  }

  body.gb-custom-page .gb-portrait-grid .gb-portrait-img {
    position: absolute;
    margin: 0;
    padding: 0;
  }

  body.gb-custom-page .gb-portrait-grid .gb-portrait-img img {
    object-fit: cover;
    display: block;
    width: 100%;
    height: 100%;
  }

  /* 1. Adrian Peterson Mobile */
  body.gb-custom-page .gb-portrait-grid .gb-card-adrian-peterson .gb-portrait-img { left: 20px; top: 20px; width: 280px; height: 374px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-adrian-peterson .gb-portrait-name { left: calc(50% - 67.5px); top: 405px; width: 135px; height: 63px; white-space: normal; line-height: 31.5px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-adrian-peterson .gb-portrait-desc { left: 47.5px; top: 480px; width: 225px; height: 116px; line-height: 23px; letter-spacing: 0.15px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-adrian-peterson .gb-learn-more-wrap { left: 118px; top: 608.5px; }

  /* 2. Bobby Cruz Mobile */
  body.gb-custom-page .gb-portrait-grid .gb-card-bobby-cruz .gb-portrait-img { left: 20px; top: 720px; width: 280px; height: 341px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-bobby-cruz .gb-portrait-name { left: 84px; top: 1072px; width: 152px; height: 31px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-bobby-cruz .gb-portrait-desc { left: 53.5px; top: 1115px; width: 213px; height: 92px; line-height: 23px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-bobby-cruz .gb-learn-more-wrap { left: 118px; top: 1228.5px; }

  /* 3. Carmen Dominicci Mobile */
  body.gb-custom-page .gb-portrait-grid .gb-card-carmen-dominicci .gb-portrait-img { left: 20px; top: 1324px; width: 280px; height: 202px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-carmen-dominicci .gb-portrait-name { left: calc(50% - 72.5px); top: 1537px; width: 145px; height: 63px; white-space: normal; line-height: 31.5px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-carmen-dominicci .gb-portrait-desc { left: 46.5px; top: 1612px; width: 227px; height: 308px; line-height: 23.5px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-carmen-dominicci .gb-learn-more-wrap { left: 119px; top: 1952.5px; }

  /* 4. Drew Brees Mobile */
  body.gb-custom-page .gb-portrait-grid .gb-card-drew-brees .gb-portrait-img { left: 20px; top: 2063px; width: 280px; height: 212px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-drew-brees .gb-portrait-name { left: 83px; top: 2293px; width: 154px; height: 31px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-drew-brees .gb-portrait-desc { left: 50px; top: 2344px; width: 220px; height: 212px; line-height: 23.5px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-drew-brees .gb-learn-more-wrap { left: 119px; top: 2568.5px; }

  /* 5. Wayne LaPierre Mobile */
  body.gb-custom-page .gb-portrait-grid .gb-card-wayne-lapierre .gb-portrait-img { left: 20px; top: 2657px; width: 280px; height: 212px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-wayne-lapierre .gb-portrait-name { left: 82.9px; top: 2879px; width: 154.2px; height: 23px; font-size: 19px; line-height: 23px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-wayne-lapierre .gb-portrait-desc { left: 21px; top: 2914px; width: 278px; height: 260px; line-height: 23.5px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-wayne-lapierre .gb-learn-more-wrap { left: 118.5px; top: 3207.5px; }

  /* 6. Maurice Ferré Mobile */
  body.gb-custom-page .gb-portrait-grid .gb-card-maurice-ferre .gb-portrait-img { left: 20px; top: 3293px; width: 280px; height: 183px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-maurice-ferre .gb-portrait-name { left: 87px; top: 3489px; width: 146px; height: 24px; font-size: 20px; line-height: 24px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-maurice-ferre .gb-portrait-desc { left: 23.5px; top: 3525px; width: 273px; height: 140px; line-height: 23.5px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-maurice-ferre .gb-learn-more-wrap { left: 118.5px; top: 3698.5px; }

  /* 7. Richie Ray and Bobby Cruz Mobile */
  body.gb-custom-page .gb-portrait-grid .gb-card-richie-ray .gb-portrait-img { left: 20px; top: 3791px; width: 280px; height: 183px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-richie-ray .gb-portrait-name { left: 24.5px; top: 3991px; width: 271px; height: 23px; font-size: 19px; line-height: 23px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-richie-ray .gb-portrait-desc { left: 22.5px; top: 4026px; width: 275px; height: 116px; line-height: 23.5px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-richie-ray .gb-learn-more-wrap { left: 118.5px; top: 4175.5px; }

  /* 8. Rita Moreno Mobile */
  body.gb-custom-page .gb-portrait-grid .gb-card-rita-moreno .gb-portrait-img { left: 80px; top: 4271px; width: 160px; height: 202px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-rita-moreno .gb-portrait-name { left: 100px; top: 4484px; width: 120px; height: 63px; white-space: normal; line-height: 31.5px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-rita-moreno .gb-portrait-desc { left: 46px; top: 4559px; width: 228px; height: 92px; line-height: 23px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-rita-moreno .gb-learn-more-wrap { left: 119px; top: 4683.5px; }

  /* 9. Frida Kahlo Mobile */
  body.gb-custom-page .gb-portrait-grid .gb-card-frida-kahlo .gb-portrait-img { left: 85px; top: 4772px; width: 150px; height: 193px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-frida-kahlo .gb-portrait-name { left: 81.9px; top: 4976px; width: 156.2px; height: 31px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-frida-kahlo .gb-portrait-desc { left: 54px; top: 5019px; width: 212px; height: 92px; line-height: 23px; letter-spacing: 0.1px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-frida-kahlo .gb-learn-more-wrap { left: 119px; top: 5143.5px; }

  /* 10. Carlos Arroyo Mobile */
  body.gb-custom-page .gb-portrait-grid .gb-card-carlos-arroyo .gb-portrait-img { left: 80px; top: 5195px; width: 160px; height: 194px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-carlos-arroyo .gb-portrait-name { left: calc(50% - 55px); top: 5400px; width: 110px; height: 63px; white-space: normal; line-height: 31.5px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-carlos-arroyo .gb-portrait-desc { left: 46.5px; top: 5475px; width: 227px; height: 92px; line-height: 23px; letter-spacing: 0.15px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-carlos-arroyo .gb-learn-more-wrap { left: 119px; top: 5599.5px; }

  /* 11. Daughter's Paint Mobile */
  body.gb-custom-page .gb-portrait-grid .gb-card-daughters-paint .gb-portrait-img { left: 25px; top: 5653px; width: 270px; height: 199px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-daughters-paint .gb-portrait-name { left: calc(50% - 80px); top: 5888px; width: 160px; height: 63px; white-space: normal; line-height: 31.5px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-daughters-paint .gb-portrait-desc { left: 48.5px; top: 5975px; width: 223px; height: 116px; line-height: 23px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-daughters-paint .gb-learn-more-wrap { left: 118px; top: 6113.5px; }

  /* 12. Laura Cruz Mobile */
  body.gb-custom-page .gb-portrait-grid .gb-card-laura-cruz .gb-portrait-img { left: 20px; top: 6183px; width: 280px; height: 353px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-laura-cruz .gb-portrait-name { left: 82px; top: 6559px; width: 146px; height: 31px; }
  body.gb-custom-page .gb-portrait-grid .gb-card-laura-cruz .gb-portrait-desc { left: 22.5px; top: 6615px; width: 275px; height: 140px; line-height: 23.5px; letter-spacing: -0.15px; }
}


/* ==========================================================================
   18. Subpages (privacy policy): white header bar, page content, footer.
   ========================================================================== */
body.gb-custom-page .gb-site-header-sub {
  position: relative;
  height: 100px;
  margin: 0;
  padding: 0;
  background-color: #ffffff;
}

/* Subpages keep live's 980px minimum width; logo/nav dock to the 980 grid on narrow screens. */
body.gb-custom-page .gb-site-header-sub,
body.gb-custom-page .gb-privacy,
body.gb-custom-page .gb-site-footer {
  min-width: 980px;
}

body.gb-custom-page .gb-site-header-sub .gb-header-sub-logo {
  position: absolute;
  left: min(90px, calc(50% - 454px));
  top: 16px;
  width: 258px;
  margin: 0;
}

body.gb-custom-page .gb-site-header-sub .gb-header-sub-logo img {
  display: block;
  width: 100%;
  height: auto;
}

body.gb-custom-page .gb-site-header-sub nav.gb-header-sub-nav {
  position: absolute;
  right: min(55px, calc(50% - 489.5px));
  top: 25px;
  margin: 0;
}

body.gb-custom-page .gb-header-sub-nav .wp-block-navigation-item__content {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 71px;
  height: 50px;
  padding: 0;
  font-family: var(--gb-font-primary);
  font-size: 13px;
  color: #000000;
  text-decoration: none;
  white-space: nowrap;
}

body.gb-custom-page .gb-privacy {
  position: relative;
  margin: 0;
  padding: 27px 0 41px;
  background-color: #ffffff;
  color: #000000;
  font-family: var(--gb-font-primary);
}

body.gb-custom-page .gb-privacy .gb-privacy-title {
  width: 380px;
  margin: 0 auto;
  font-family: var(--gb-font-primary);
  font-weight: 400;
  font-size: 30px;
  line-height: 42px;
  letter-spacing: 15px;
  text-align: center;
}

body.gb-custom-page .gb-privacy .gb-privacy-body {
  width: 603px;
  margin: 63px auto 0;
  font-size: 13px;
  line-height: 24.7px;
}

body.gb-custom-page .gb-privacy-body :is(p, ol) {
  margin: 0;
}

body.gb-custom-page .gb-privacy-body .gb-privacy-lead,
body.gb-custom-page .gb-privacy-body .gb-privacy-help,
body.gb-custom-page .gb-privacy-body .gb-privacy-disclaimer {
  margin-top: 20px;
}

body.gb-custom-page .gb-privacy-body .gb-privacy-list {
  margin-top: 24.7px;
  padding-left: 23px;
}

body.gb-custom-page .gb-privacy a {
  color: #000000;
  text-decoration: underline;
}

body.gb-custom-page .gb-site-footer {
  margin: 0;
  padding: 31px 0 30px;
  background-color: #ffffff;
  color: #000000;
  font-family: var(--gb-font-primary);
  font-size: 13px;
  line-height: normal;
}

body.gb-custom-page .gb-site-footer .gb-footer-line {
  margin: 0;
}

body.gb-custom-page .gb-site-footer .gb-footer-city {
  width: 170px;
  margin: 0 auto;
}

body.gb-custom-page .gb-site-footer .gb-footer-copyright {
  margin-top: 11px;
}

body.gb-custom-page .gb-site-footer a {
  color: #000000;
  text-decoration: none;
}

body.gb-custom-page .gb-site-footer .gb-footer-copyright a {
  text-decoration: underline;
}

@media (max-width: 767px) {
  body.gb-custom-page .gb-site-header-sub,
  body.gb-custom-page .gb-privacy,
  body.gb-custom-page .gb-site-footer {
    min-width: 0;
  }

  body.gb-custom-page .gb-site-header-sub {
    height: 69px;
  }

  /* Live shows no logo on the mobile subpage header. */
  body.gb-custom-page .gb-site-header-sub .gb-header-sub-logo {
    display: none;
  }

  body.gb-custom-page .gb-site-header-sub nav.gb-header-sub-nav {
    right: 12px;
    top: 7px;
  }

  /* Three 22x2 bars at live's positions (live draws them white on white; ours stay visible). */
  body.gb-custom-page .gb-header-sub-nav .wp-block-navigation__responsive-container-open {
    width: 50px;
    height: 50px;
    padding: 0;
    background:
      linear-gradient(#000000, #000000) 14px 15px / 22px 2px no-repeat,
      linear-gradient(#000000, #000000) 14px 24px / 22px 2px no-repeat,
      linear-gradient(#000000, #000000) 14px 33px / 22px 2px no-repeat;
  }

  body.gb-custom-page .gb-header-sub-nav .wp-block-navigation__responsive-container-open svg {
    display: none;
  }

  body.gb-custom-page .gb-privacy {
    padding: 18px 20px 40px;
  }

  body.gb-custom-page .gb-privacy .gb-privacy-title {
    width: 250px;
    font-size: 20px;
    line-height: 28px;
    letter-spacing: 10px;
  }

  body.gb-custom-page .gb-privacy .gb-privacy-body {
    width: 280px;
    margin: 28px 0 0;
    font-size: 12px;
    line-height: 22.8px;
  }

  body.gb-custom-page .gb-privacy-body .gb-privacy-list {
    margin-top: 22.8px;
    padding-left: 22px;
  }

  body.gb-custom-page .gb-site-footer {
    padding: 12px 0 8px;
    font-size: 11px;
  }

  body.gb-custom-page .gb-site-footer .gb-footer-city {
    width: 180px;
  }

  body.gb-custom-page .gb-site-footer .gb-footer-copyright {
    width: 170px;
    margin: 12px auto 0;
  }
}

/* ==========================================================================
   19. 404: mirrors live's Wix system 404. Desktop: column centered in the
   viewport, sizes scale with vw, vertical gaps with vh. Mobile: top-aligned.
   ========================================================================== */
body.error404 {
  background-color: #ffffff;
}

.gb-404 {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  box-sizing: border-box;
  min-height: 100vh;
  margin: 0 5vw;
  color: #000000;
  font-family: 'Wix Madefor Display', sans-serif;
  line-height: normal;
}

.gb-404__eyebrow {
  margin: 3vh 0 0;
  font-weight: 700;
  font-size: 1.35vw;
  line-height: normal;
  letter-spacing: 0.05em;
}

.gb-404__code {
  margin: 0;
  font-weight: 400;
  font-size: 20vw;
  line-height: normal;
  letter-spacing: -0.07em;
}

.gb-404__text {
  margin: 0;
  font-size: 1.95vw;
  line-height: normal;
}

/* Live wraps the button in a link box: 20px above it, 12px below. */
.gb-404__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 3.7vw;
  margin: calc(3vh + 20px) 0 12px;
  padding: 0 2.8125vw;
  border-radius: 50px;
  background-color: #000000;
  color: #ffffff;
  font-family: 'Wix Madefor Text', sans-serif;
  font-size: 1.5vw;
  line-height: normal;
  text-decoration: none;
}

.gb-404__btn:focus-visible {
  outline: 2px solid #000000;
  outline-offset: 3px;
}

/* Portrait tablets/windows: live switches to a top-aligned layout. */
@media (orientation: portrait) and (min-width: 768px) {
  .gb-404 {
    justify-content: flex-start;
    min-height: 0;
    margin: 2vw 5vw 0;
  }

  .gb-404__eyebrow {
    margin-top: 5vh;
    font-size: 3vw;
  }

  .gb-404__code {
    margin-top: -40px;
    font-size: 50vw;
  }

  .gb-404__text { font-size: 4vw; }

  .gb-404__btn {
    height: 7vw;
    margin: calc(3vh + 10px) 0 11px;
    padding: 0 4.6vw;
    font-size: 2.4vw;
  }
}

@media (max-width: 767px) {
  .gb-404 {
    justify-content: flex-start;
    min-height: 0;
    margin: 1vw 5vw 0;
  }

  .gb-404__eyebrow {
    margin: 4vh 0 -1vh;
    font-size: 4.5vw;
    letter-spacing: 0;
  }

  .gb-404__code { font-size: 49vw; }
  .gb-404__text { font-size: 6vw; }

  .gb-404__btn {
    height: 11.3vw;
    margin: calc(1vh + 17.5px) 0 8px;
    padding: 0 8.2vw;
    font-size: 3.7vw;
  }
}

/* ==========================================================================
   20. Popups (Popup Maker) — mirror live's Wix lightboxes.
   Content is centred by CSS (Popup Maker repositioning is disabled per popup).
   The container ignores clicks so the overlay still receives "click to close".
   ========================================================================== */
body.gb-custom-page .pum-overlay:has(.gb-popup-video-content) {
  background-color: rgba(40, 38, 38, 0.7);
}

body.gb-custom-page .pum-overlay:has(.gb-popup-bio-content) {
  background-color: rgba(0, 0, 0, 0.85);
}

body.gb-custom-page .pum-overlay:has(.gb-popup--side) {
  background-color: rgba(40, 38, 38, 0.85);
}

/* Popup Maker keeps inline top/left/display on the container, so the content layer does the centring:
   a fixed full-screen flex area; the block centres with margin:auto (scroll-safe when taller than the screen). */
body.gb-custom-page .pum-overlay:has(.gb-popup-video-content, .gb-popup-bio-content) .pum-container {
  width: auto;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  pointer-events: none;
}

body.gb-custom-page .pum-overlay:has(.gb-popup-video-content, .gb-popup-bio-content) .pum-content {
  position: fixed;
  inset: 0;
  display: flex;
  overflow-y: auto;
  color: #ffffff;
  pointer-events: none;
}

body.gb-custom-page .pum-container .pum-content:focus {
  outline: none;
}

/* Live has no visible close control on desktop (overlay click / Esc). Popup Maker's button stays
   reachable for keyboard users and appears when focused. */
body.gb-custom-page .pum-overlay:has(.gb-popup-video-content, .gb-popup-bio-content) .pum-close {
  position: fixed;
  top: 10px;
  right: 20px;
  left: auto;
  width: 1px;
  height: 1px;
  margin: 0;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  pointer-events: auto;
}

body.gb-custom-page .pum-overlay:has(.gb-popup-video-content, .gb-popup-bio-content) .pum-close:focus-visible {
  width: auto;
  height: auto;
  padding: 4px 10px;
  clip-path: none;
  outline: 2px solid #ffffff;
}

/* Selector outranks Popup Maker's ".pum-container .pum-content > :first-child { margin-top: 0 }". */
body.gb-custom-page .pum-container .pum-content > .gb-popup-video-content,
body.gb-custom-page .pum-container .pum-content > .gb-popup-bio-content {
  position: relative;
  flex: none;
  align-self: auto;
  left: -15px; /* live keeps the page scrollbar while a lightbox is open, so it centres ~15px further left */
  height: auto;
  min-height: 0;
  margin: auto;
  padding: 0;
  pointer-events: none; /* empty areas (and the mobile close icon) fall through to the overlay */
}

body.gb-custom-page .pum-container .pum-content > .gb-popup-video-content > .wp-block-group__inner-container > *,
body.gb-custom-page .pum-container .pum-content > .gb-popup-bio-content > .wp-block-group__inner-container > * {
  pointer-events: auto;
}

body.gb-custom-page .gb-popup-video-content > .wp-block-group__inner-container > *,
body.gb-custom-page .gb-popup-bio-content > .wp-block-group__inner-container > * {
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}

body.gb-custom-page .pum-content .gb-popup-title {
  margin: 0;
  color: #ffffff;
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 700;
  line-height: normal;
  text-align: center;
}

body.gb-custom-page .pum-content .gb-popup-desc {
  color: #ffffff;
  font-family: 'Montserrat', sans-serif;
  font-weight: 400;
  font-size: 15px;
  line-height: 21px;
}

/* --- Video lightbox (title, 865x487 video, centred text) --- */
body.gb-custom-page .gb-popup-video-content {
  --pop-dy: -14px;
  --pop-title-gap: -7px;
  --pop-text-gap: 14px;
  --pop-text-w: 700px;
  top: var(--pop-dy);
  width: 865px;
}

body.gb-custom-page .gb-popup-video-content .gb-popup-title {
  margin-bottom: var(--pop-title-gap);
  font-size: 65px;
  letter-spacing: 6.5px;
}

body.gb-custom-page .gb-popup-video-content .gb-popup-embed {
  width: 865px;
  margin: 0;
}

body.gb-custom-page .gb-popup-video-content .gb-popup-desc {
  width: var(--pop-text-w);
  margin: 0 auto;
  text-align: center;
}

body.gb-custom-page .gb-popup-video-content .gb-popup-embed + .gb-popup-desc {
  margin-top: var(--pop-text-gap);
}

body.gb-custom-page .gb-popup--felix { --pop-text-w: 850px; --pop-text-gap: 12px; }
body.gb-custom-page .gb-popup--taylor { --pop-text-gap: 12px; --pop-text-w: 645px; }
body.gb-custom-page .gb-popup--bobby { --pop-dy: 0px; --pop-title-gap: -35px; }
body.gb-custom-page .gb-popup--rita { --pop-title-gap: -35px; --pop-dy: -8px; }
body.gb-custom-page .gb-popup--richie { --pop-dy: 0px; --pop-title-gap: -35px; }
body.gb-custom-page .gb-popup--richie .gb-popup-title { font-size: 55px; letter-spacing: 5.5px; }
body.gb-custom-page .gb-popup--bobby .gb-popup-desc,
body.gb-custom-page .gb-popup--richie .gb-popup-desc { font-size: 14px; line-height: 19.6px; }
body.gb-custom-page .gb-popup--drew .gb-popup-desc { font-size: 13px; line-height: 18.2px; }
body.gb-custom-page .gb-popup--drew .gb-popup-desc + .gb-popup-desc { margin-top: 18.2px; }
body.gb-custom-page .gb-popup--rita .gb-popup-desc + .gb-popup-desc { margin-top: 0; }
body.gb-custom-page .gb-popup--maurice .gb-popup-desc { color: #fcf8ed; }
body.gb-custom-page .gb-popup--maurice .gb-popup-desc + .gb-popup-desc { margin-top: 21px; }

/* Cotto: text left, small video right. */
body.gb-custom-page .gb-popup-video-content.gb-popup--side {
  --pop-dy: -4px;
  width: 901px;
}

body.gb-custom-page .gb-popup--side > .wp-block-group__inner-container {
  display: grid;
  grid-template-columns: 349px 518px;
  column-gap: 34px;
  align-items: start;
}

body.gb-custom-page .gb-popup--side .gb-popup-title {
  grid-column: 1 / -1;
  margin: 0 0 43px 0;
  transform: translateX(-3px);
}

body.gb-custom-page .gb-popup--side .gb-popup-embed {
  grid-column: 2;
  grid-row: 2;
  width: 518px;
}

body.gb-custom-page .gb-popup--side .gb-popup-desc,
body.gb-custom-page .gb-popup--side .gb-popup-embed + .gb-popup-desc {
  grid-column: 1;
  grid-row: 2;
  width: auto;
  margin: 42px 0 0;
  text-align: left;
}

/* --- Bio lightbox ("About" + name, text left, painting right) --- */
body.gb-custom-page .gb-popup-bio-content {
  --pop-text-top: 77px;
  --pop-img-top: 7px;
  top: -4px;
  width: 848px;
  padding-right: 30px;
}

body.gb-custom-page .gb-popup-bio-content .gb-popup-subtitle {
  margin: 0;
  color: #ffffff;
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 400;
  font-size: 47px;
  line-height: normal;
  text-align: center;
}

body.gb-custom-page .gb-popup-bio-content .gb-popup-title {
  margin: -7px 0 0;
  font-size: 56px;
  letter-spacing: 5.6px;
}

body.gb-custom-page .gb-popup-bio-content .gb-popup-bio-columns {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-start;
  gap: 0;
  margin: 0;
}

/* Core puts an inline flex-basis:50% on columns; min/max-width pin the real widths. */
body.gb-custom-page .gb-popup-bio-content .gb-popup-bio-desc-col {
  flex: 0 0 448px;
  min-width: 448px;
  max-width: 448px;
  padding-top: var(--pop-text-top);
}

body.gb-custom-page .gb-popup-bio-content .gb-popup-bio-desc-col .gb-popup-desc {
  margin: 0;
  text-align: left;
}

body.gb-custom-page .gb-popup-bio-content .gb-popup-bio-img-col {
  flex: 0 0 356px;
  min-width: 356px;
  max-width: 356px;
  margin: var(--pop-img-top) 0 0 38px;
}

body.gb-custom-page .gb-popup-bio-content .gb-popup-image,
body.gb-custom-page .gb-popup-bio-content .gb-popup-image img {
  display: block;
  width: 356px;
  height: 475px;
  margin: 0;
  object-fit: cover;
}

body.gb-custom-page .gb-popup--carlos { --pop-text-top: 166px; }
body.gb-custom-page .gb-popup--daughters { --pop-text-top: 99px; --pop-img-top: 46px; }
body.gb-custom-page .gb-popup--daughters .gb-popup-bio-img-col { flex-basis: 353px; min-width: 353px; max-width: 353px; margin-left: 28px; }
body.gb-custom-page .gb-popup--daughters .gb-popup-bio-columns { min-height: 482px; } /* same top as the other bio popups */
body.gb-custom-page .gb-popup--daughters .gb-popup-image,
body.gb-custom-page .gb-popup--daughters .gb-popup-image img { width: 353px; height: 268px; }

@media (max-width: 767px) {
  body.gb-custom-page .pum-container .pum-content > .gb-popup-video-content,
  body.gb-custom-page .pum-container .pum-content > .gb-popup-bio-content {
    left: 0;
  }

  /* 86/56 padding: centred popups sit 15px below centre like live; popups taller than the screen
     start with the title 86px from the top and the close icon at 14px, also like live. */
  body.gb-custom-page .pum-container .pum-content > .gb-popup-video-content {
    padding-top: 86px;
    padding-bottom: 56px;
  }

  body.gb-custom-page .pum-container .pum-content > .gb-popup-video-content.gb-popup--side {
    padding-top: 36px;
    padding-bottom: 0;
  }

  /* Visual close icon where live draws it; it ignores clicks, so a tap falls through to the overlay (closes). */
  body.gb-custom-page .gb-popup-video-content::before,
  body.gb-custom-page .gb-popup-bio-content::before {
    content: "";
    position: absolute;
    top: 14px;
    right: 10px;
    width: 26px;
    height: 26px;
    background-color: #ffffff;
    pointer-events: none;
    -webkit-mask: url('icons/lb-close.svg') center / 100% 100% no-repeat;
    mask: url('icons/lb-close.svg') center / 100% 100% no-repeat;
  }

  body.gb-custom-page .gb-popup-video-content.gb-popup--side::before {
    top: 0;
    right: 0;
  }

  body.gb-custom-page .gb-popup-bio-content::before {
    position: fixed;
    top: 10px;
    right: 20px;
  }

  /* Video: close 72px above the title; block sits 21px above centre like live. */
  body.gb-custom-page .gb-popup-video-content {
    --pop-dy: 0px;
    --pop-title-gap: -12px;
    --pop-text-gap: 17px;
    --pop-text-w: 260px;
    width: 280px;
    padding-top: 72px;
  }

  body.gb-custom-page .gb-popup-video-content .gb-popup-title {
    max-width: 260px;
    margin-left: auto;
    margin-right: auto;
    font-size: 29px;
    letter-spacing: 2.9px;
  }

  body.gb-custom-page .gb-popup-video-content .gb-popup-embed {
    width: 280px;
  }

  body.gb-custom-page .gb-popup--felix,
  body.gb-custom-page .gb-popup--taylor,
  body.gb-custom-page .gb-popup--bobby,
  body.gb-custom-page .gb-popup--rita,
  body.gb-custom-page .gb-popup--richie { --pop-dy: 0px; --pop-title-gap: -12px; --pop-text-gap: 17px; --pop-text-w: 260px; }
  body.gb-custom-page .gb-popup--richie .gb-popup-title { font-size: 26px; letter-spacing: 2.6px; }
  body.gb-custom-page .gb-popup--bobby .gb-popup-desc,
  body.gb-custom-page .gb-popup--richie .gb-popup-desc { font-size: 15px; line-height: 21px; }
  body.gb-custom-page .gb-popup--drew { --pop-text-w: 252px; }
  body.gb-custom-page .gb-popup--drew .gb-popup-desc { font-size: 14px; line-height: 19.6px; }
  body.gb-custom-page .gb-popup--drew .gb-popup-desc + .gb-popup-desc { margin-top: 19.6px; }

  /* Cotto on mobile: close 36px above the title, video, then left-aligned 12px text. */
  body.gb-custom-page .gb-popup-video-content.gb-popup--side {
    --pop-dy: -70px;
    width: 280px;
    padding-top: 36px;
  }

  body.gb-custom-page .gb-popup--side > .wp-block-group__inner-container {
    display: block;
  }

  body.gb-custom-page .gb-popup--side .gb-popup-title {
    margin: 0 auto 35px;
    transform: none;
  }

  body.gb-custom-page .gb-popup--side .gb-popup-embed {
    width: 280px;
  }

  body.gb-custom-page .gb-popup--side .gb-popup-desc,
  body.gb-custom-page .gb-popup--side .gb-popup-embed + .gb-popup-desc {
    width: 244px;
    margin: 30px 0 0 18px;
    font-size: 12px;
    line-height: 16.8px;
  }

  /* Bio: top-anchored and scrollable, single column. */
  body.gb-custom-page .pum-container .pum-content > .gb-popup-bio-content {
    top: 0;
    width: 260px;
    margin: 46px auto 0;
    padding: 0 0 80px;
  }

  body.gb-custom-page .gb-popup-bio-content .gb-popup-subtitle {
    font-size: 22px;
  }

  body.gb-custom-page .gb-popup-bio-content .gb-popup-title {
    margin: -3px 0 0;
    font-size: 27px;
    letter-spacing: 2.7px;
  }

  body.gb-custom-page .gb-popup-bio-content .gb-popup-bio-columns {
    display: block;
  }

  body.gb-custom-page .gb-popup-bio-content .gb-popup-bio-desc-col,
  body.gb-custom-page .gb-popup--carlos .gb-popup-bio-desc-col,
  body.gb-custom-page .gb-popup--daughters .gb-popup-bio-desc-col {
    min-width: 260px;
    max-width: 260px;
    padding-top: 20px;
  }

  body.gb-custom-page .gb-popup-bio-content .gb-popup-bio-img-col,
  body.gb-custom-page .gb-popup--daughters .gb-popup-bio-img-col {
    min-width: 250px;
    max-width: 250px;
    margin: 26px 0 0 5px;
  }

  body.gb-custom-page .gb-popup--daughters .gb-popup-bio-columns {
    min-height: 0;
  }

  body.gb-custom-page .gb-popup-bio-content .gb-popup-image,
  body.gb-custom-page .gb-popup-bio-content .gb-popup-image img,
  body.gb-custom-page .gb-popup--daughters .gb-popup-image,
  body.gb-custom-page .gb-popup--daughters .gb-popup-image img {
    width: 250px;
    height: 333px;
  }
}
