/* =============================================================================
   Caitlin Coreris Theme – Main Stylesheet
   Bootstrap 5 + Custom Artist Portfolio Styles
   Author: HyperArts, Inc.
   ============================================================================= */

/**
 * @license
 * MyFonts Webfont Build ID 3867246, 2020-12-16T11:57:38-0500
 * 
 * The fonts listed in this notice are subject to the End User License
 * Agreement(s) entered into by the website owner. All other parties are 
 * explicitly restricted from using the Licensed Webfonts(s).
 * 
 * You may obtain a valid license at the URLs below.
 * 
 * Webfont: Futura Book by URW Type Foundry
 * URL: https://www.myfonts.com/collections/urw-foundry

 * Webfont: Minion Pro Regular by Adobe
 * URL: https://www.myfonts.com/collections/adobe-foundry

 * Webfont: Minion Pro Italic by Adobe
 * URL: https://www.myfonts.com/collections/adobe-foundry

 * Webfont: Minion Pro Bold by Adobe
 * URL: https://www.myfonts.com/collections/adobe-foundry
 
 * © 2026 MyFonts Inc. */


  
@font-face {
  font-family: "MinionProRegular";
  src: url('webFonts/MinionProRegular/font.woff2') format('woff2'), url('webFonts/MinionProRegular/font.woff') format('woff');
}
@font-face {
  font-family: "FuturaBook";
  src: url('webFonts/FuturaBook/font.woff2') format('woff2'), url('webFonts/FuturaBook/font.woff') format('woff');
}
@font-face {
  font-family: "MinionProBold";
  src: url('webFonts/MinionProBold/font.woff2') format('woff2'), url('webFonts/MinionProBold/font.woff') format('woff');
}
@font-face {
  font-family: "MinionProItalic";
  src: url('webFonts/MinionProItalic/font.woff2') format('woff2'), url('webFonts/MinionProItalic/font.woff') format('woff');
}




/* -------------------------
   1. CSS Custom Properties
   ------------------------- */
:root {
  --cc-font-heading:    'FuturaBook', Georgia, sans-serif;
  --cc-font-body:       'MinionProRegular', Georgia, serif;

  --cc-color-dark:      #1a1a1a;
  --cc-color-mid:       #4a4a4a;
  --cc-color-light:     #f8f6f3;
  --cc-color-accent:    #c9a96e;
  --cc-color-nav-hover: #4a6e8c;
  --cc-color-white:     #ffffff;
  --cc-color-border:    #e0ddd8;

  --cc-nav-height:      72px;
  --cc-section-pad:     5rem;
  --cc-transition:      0.25s ease;
  --cc-letter-spacing:  0.08em;
}

/* -------------------------
   2. Base / Reset
   ------------------------- */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: var(--cc-font-body);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.4;
  color: var(--cc-color-dark);
  background-color: var(--cc-color-white);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: var(--cc-font-heading);
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: -0.01em;
}

p {
  margin-bottom: 1.25rem;
}

a {
  color: var(--cc-color-dark);
  transition: color var(--cc-transition), opacity var(--cc-transition);
}

a:hover {
  color: var(--cc-color-mid);
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* -------------------------
   3. Utility Classes
   ------------------------- */
.letter-spacing {
  letter-spacing: var(--cc-letter-spacing);
}

.section-pad {
  padding-top: var(--cc-section-pad);
  padding-bottom: var(--cc-section-pad);
}

.section-title {
  font-family: var(--cc-font-heading);
  font-weight: 400;
}

.section-label {
  color: var(--cc-color-mid);
  letter-spacing: var(--cc-letter-spacing);
}

/* -------------------------
   4. Skip Link
   ------------------------- */
.skip-link {
  position: absolute;
  top: -100%;
  left: 1rem;
  z-index: 9999;
  background: var(--cc-color-dark);
  color: var(--cc-color-white);
  padding: 0.5rem 1rem;
  text-decoration: none;
  transition: top var(--cc-transition);
}

.skip-link:focus {
  top: 1rem;
}

/* -------------------------
   5. Header / Navbar
   ------------------------- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background-color: var(--cc-color-white);
  border-bottom: 1px solid var(--cc-color-border);
}

.navbar {
  min-height: var(--cc-nav-height);
  padding-top: 0;
  padding-bottom: 0;
}

.navbar-brand.site-title {
  font-family: var(--cc-font-heading);
  font-size: 37px;
  font-weight: 400;
  letter-spacing: 0.02px;
  color: var(--cc-color-dark);
  text-transform: uppercase;
  text-decoration: none;
}

.navbar-brand.site-title:hover {
  opacity: 0.75;
}

/* Custom logo in navbar */
.navbar-brand .custom-logo {
  max-height: 48px;
  width: auto;
}

.navbar-nav .nav-link {
  font-size: 1.1rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--cc-color-dark);
  padding: 0.5rem 1rem;
  transition: color var(--cc-transition);
}

.navbar-nav .nav-link:hover,
.navbar-nav .nav-link.active {
  color: var(--cc-color-nav-hover);
}

.navbar-toggler {
  border: none;
  padding: 0.25rem;
}

.navbar-toggler:focus {
  box-shadow: none;
  outline: 2px solid var(--cc-color-accent);
}

/* -------------------------
   6. Dropdown Menus
   ------------------------- */
.dropdown-menu {
  border: 1px solid var(--cc-color-border);
  border-radius: 0;
  padding: 0.5rem 0;
  box-shadow: 0 8px 24px rgba(0,0,0,0.08);
  min-width: 200px;
}

/* Remove Bootstrap's blue focus ring on the primary nav links / dropdown
   toggle (e.g. tapping "Portfolios" to expand the submenu on mobile). */
.navbar-nav .nav-link:focus,
.navbar-nav .nav-link:focus-visible,
.navbar-nav .dropdown-toggle:focus,
.navbar-nav .dropdown-toggle:focus-visible {
  outline: none;
  box-shadow: none;
}

.dropdown-menu .nav-link {
  display: block;
  padding: 0.5rem 1.25rem;
  font-size: 1.15rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--cc-color-dark);
  white-space: nowrap;
  text-decoration: none;
}

.dropdown-menu .nav-link:hover {
  background-color: var(--cc-color-light);
  color: var(--cc-color-dark);
}

/* -------------------------
   7. Hero Section
   ------------------------- */
.hero-section {
  position: relative;
  min-height: 85vh;
  display: flex;
  align-items: center;
  overflow: hidden;
  background-color: var(--cc-color-dark);
}

.hero-image-wrap {
  position: absolute;
  inset: 0;
}

.hero-bg-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to right,
    rgba(26,26,26,0.75) 0%,
    rgba(26,26,26,0.3) 60%,
    rgba(26,26,26,0.1) 100%
  );
}

.hero-content {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 5rem 0;
}

.hero-title {
  font-family: var(--cc-font-heading);
  font-weight: 400;
  color: var(--cc-color-white);
  margin-bottom: 1rem;
}

.hero-subtitle {
  color: rgba(255,255,255,0.85);
  font-weight: 300;
  margin-bottom: 2rem;
}

.hero-text {
  color: var(--cc-color-white);
}

.hero-text p {
  color: rgba(255,255,255,0.9);
  font-size: 1.15rem;
}

/* -------------------------
   8. Buttons
   ------------------------- */
.btn {
  border-radius: 0;
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.65rem 1.5rem;
  transition: all var(--cc-transition);
}

.btn-dark {
  background-color: var(--cc-color-dark);
  border-color: var(--cc-color-dark);
}

.btn-dark:hover {
  background-color: var(--cc-color-mid);
  border-color: var(--cc-color-mid);
}

.btn-outline-dark {
  border-color: var(--cc-color-dark);
  color: var(--cc-color-dark);
}

.btn-outline-dark:hover {
  background-color: var(--cc-color-dark);
  border-color: var(--cc-color-dark);
}

.btn-lg {
  padding: 0.85rem 2rem;
  font-size: 0.85rem;
}

.btn-sm {
  padding: 0.4rem 0.9rem;
  font-size: 0.75rem;
}

.btn-link {
  color: var(--cc-color-dark);
  text-decoration: none;
  padding-left: 0;
  padding-right: 0;
  letter-spacing: var(--cc-letter-spacing);
}

.btn-link:hover {
  color: var(--cc-color-mid);
}

.link-arrow::after {
  content: ' →';
  display: inline;
  transition: transform var(--cc-transition);
}

/* -------------------------
   9. Page Headers
   ------------------------- */
.page-header {
  border-bottom: 1px solid var(--cc-color-border);
  background-color: var(--cc-color-white);
  padding-top: 1.5rem !important;
  padding-bottom: 1rem !important;
}

.page-title {
  font-family: var(--cc-font-heading);
  font-weight: 400;
  font-size: 2rem;
  margin-bottom: 0;
}

/* -------------------------
   10. Exhibition Cards
   ------------------------- */
.exhibition-card {
  transition: transform var(--cc-transition);
}

.exhibition-card .card-img-link {
  overflow: hidden;
  display: block;
}

.exhibition-card .card-img-top {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.exhibition-card .card-img-link:hover .card-img-top {
  transform: scale(1.03);
}

.exhibition-card .card-title {
  font-family: var(--cc-font-heading);
  font-weight: 400;
  font-size: 1.05rem;
  margin-bottom: 0.35rem;
}

.exhibition-card .card-title a {
  color: var(--cc-color-dark);
  text-decoration: none;
}

.exhibition-card .card-title a:hover {
  color: var(--cc-color-mid);
}

.exhibition-meta {
  color: var(--cc-color-mid);
}

.exhibition-dates {
  color: var(--cc-color-mid);
  font-style: italic;
}

/* -------------------------
   11. Badges
   ------------------------- */
.badge-current {
  background-color: var(--cc-color-dark);
  color: var(--cc-color-white);
  font-size: 0.65rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.3em 0.6em;
  border-radius: 0;
}

.badge-type {
  background-color: transparent;
  color: var(--cc-color-mid);
  border: 1px solid var(--cc-color-border);
  font-size: 0.65rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.3em 0.7em;
  border-radius: 0;
  transition: all var(--cc-transition);
}

.badge-type:hover {
  background-color: var(--cc-color-dark);
  border-color: var(--cc-color-dark);
  color: var(--cc-color-white);
}

/* -------------------------
   12. Single Exhibition
   ------------------------- */
.single-exhibition .exhibition-title {
  font-family: var(--cc-font-heading);
  font-weight: 400;
}

.exhibition-details-list dt {
  color: var(--cc-color-mid);
  letter-spacing: var(--cc-letter-spacing);
}

.alert-current {
  background-color: var(--cc-color-dark);
  color: var(--cc-color-white);
  border: none;
  border-radius: 0;
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: var(--cc-letter-spacing);
  text-transform: uppercase;
}

/* -------------------------
   13. Filter Bar (Archive)
   ------------------------- */
.filter-bar .btn {
  font-size: 0.7rem;
  padding: 0.3rem 0.75rem;
}

/* -------------------------
   14. About / CV
   ------------------------- */
.about-portrait {
  width: 100%;
  aspect-ratio: 3/4;
  object-fit: cover;
}

/* About/CV page title */
.about-header .page-title {
  text-align: center;
  text-transform: uppercase;
  font-size: 2rem;
}

/* Tighten header — less space between border and content */
.about-header,
.contact-header {
  padding-top: 1.5rem !important;
  padding-bottom: 1rem !important;
}

/* Contact page title — match About/CV style */
.contact-header .page-title {
  text-align: center;
  text-transform: uppercase;
  font-size: 2rem;
}

/* Smaller page title on mobile for About/CV and Contact (client request). */
@media (max-width: 767.98px) {
  .about-header .page-title,
  .contact-header .page-title {
    font-size: 1.5rem;
  }
}

/* Bio section layout — explicit flexbox, no Bootstrap grid */
.bio-layout {
  display: flex;
  gap: 3rem;
  align-items: flex-start;
}

.bio-text-col {
  flex: 1 1 0;
  min-width: 0;
}

/* Override global entry-content max-width inside bio */
.bio-text-col .entry-content {
  max-width: none;
}

.bio-portrait-col {
  flex: 0 0 360px;
  width: 360px;
}

/* No portrait: cap width for readability */
.bio-no-portrait .bio-text-col {
  max-width: 860px;
  margin-left: auto;
  margin-right: auto;
}

@media (max-width: 767px) {
  .bio-layout {
    flex-direction: column;
  }
  .bio-portrait-col {
    flex: 0 0 auto;
    width: 100%;
  }
}

.cv-section .col-lg-9 {
  flex: 0 0 auto;
  width: 80%;
}

/* Bio body text */
.bio-content p,
.bio-content li,
.bio-content div {
  font-size: 1.3rem;
}

/* About/CV — juror credit lines: tucked tight under their exhibition and
   rendered a size smaller so they read as a sub-detail. (Tagged in main.js.) */
.bio-content p.cv-juror {
  margin-top: -0.85rem;
  font-size: 1.05rem;
  line-height: 1.35;
}

/* CV body text — override Bootstrap .small */
.cv-item .cv-detail,
.cv-item .cv-detail.small {
  font-size: 1.1rem;
}

.cv-section-heading {
  color: var(--cc-color-mid);
  letter-spacing: var(--cc-letter-spacing);
}

.cv-item .cv-year {
  font-style: italic;
}

/* -------------------------
   15. Contact Form
   ------------------------- */
.contact-form .form-control {
  border-radius: 0;
  border-color: var(--cc-color-border);
  font-size: 0.95rem;
  padding: 0.65rem 0.9rem;
  transition: border-color var(--cc-transition), box-shadow var(--cc-transition);
}

.contact-form .form-control:focus {
  border-color: var(--cc-color-dark);
  box-shadow: none;
}

.contact-form .form-label {
  font-size: 0.85rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  margin-bottom: 0.4rem;
}

.contact-info .contact-detail {
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--cc-color-border);
  margin-bottom: 1rem;
}

.contact-info a {
  text-decoration: none;
  font-size: 0.95rem;
}

/* -------------------------
   16. Footer
   ------------------------- */
.site-footer {
  background-color: var(--cc-color-white);
  color: var(--cc-color-mid);
}

.footer-widgets {
  border-bottom: 1px solid var(--cc-color-border);
}

.footer-brand .site-title {
  color: var(--cc-color-dark);
  font-family: var(--cc-font-heading);
  font-size: 1.2rem;
}

.footer-tagline {
  color: var(--cc-color-mid);
}

.footer-nav li {
  margin-bottom: 0.5rem;
}

.footer-nav a {
  color: var(--cc-color-mid);
  text-decoration: none;
  font-size: 0.85rem;
  transition: color var(--cc-transition);
}

.footer-nav a:hover {
  color: var(--cc-color-dark);
}

.widget-title {
  color: var(--cc-color-dark);
  font-family: var(--cc-font-heading);
  font-size: 0.85rem;
  font-weight: 400;
  letter-spacing: var(--cc-letter-spacing);
  text-transform: uppercase;
  margin-bottom: 1rem;
}

.footer-bottom {
  border-top: 1px solid var(--cc-color-border);
}

.copyright,
.credit {
  color: var(--cc-color-mid);
  font-size: 0.8rem;
}

.credit a {
  color: var(--cc-color-mid);
  text-decoration: none;
  transition: color var(--cc-transition);
}

.credit a:hover {
  color: var(--cc-color-dark);
}

/* -------------------------
   16b. Footer Newsletter Band
   ------------------------- */
.footer-newsletter {
  border-bottom: 1px solid var(--cc-color-border);
  padding: 64px 0;
}

.footer-newsletter-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 40px;
  flex-wrap: wrap;
}

.footer-newsletter-block {
  max-width: 450px;
  flex: 1 1 auto;
}

.footer-newsletter-heading {
  font-family: var(--cc-font-heading);
  font-size: 1.75rem;
  font-weight: 400;
  line-height: 1.3;
  color: var(--cc-color-dark);
  text-transform: uppercase;
  margin-bottom: 20px;
}

.footer-newsletter-form {
  width: 100%;
}

.footer-newsletter-fields {
  display: flex;
  align-items: stretch;
  gap: 12px;
  margin-bottom: 12px;
}

.footer-newsletter-input {
  flex: 1;
  border: 1px solid var(--cc-color-border);
  outline: none;
  background: transparent;
  font-family: var(--cc-font-body);
  font-size: 17px;
  color: var(--cc-color-dark);
  padding: 10px 14px;
}

.footer-newsletter-input::placeholder {
  color: var(--cc-color-mid);
}

.footer-newsletter-btn {
  background-color: var(--cc-color-white);
  border: 1px solid var(--cc-color-dark);
  outline: none;
  font-family: var(--cc-font-heading);
  font-size: 0.8rem;
  letter-spacing: var(--cc-letter-spacing);
  text-transform: uppercase;
  color: var(--cc-color-dark);
  padding: 10px 20px;
  cursor: pointer;
  transition: background-color var(--cc-transition), color var(--cc-transition), border-color var(--cc-transition);
  white-space: nowrap;
}

.footer-newsletter .footer-newsletter-btn:hover,
.footer-newsletter .footer-newsletter-btn:focus-visible {
  background-color: var(--cc-color-dark) !important;
  border-color: var(--cc-color-dark) !important;
  color: var(--cc-color-white) !important;
}

.footer-newsletter-note {
  font-size: 1.1rem;
  color: var(--cc-color-mid);
  margin: 5px 0 0;
}

.footer-newsletter-note a {
  color: var(--cc-color-mid);
  text-decoration: underline;
}

.footer-newsletter-note a:hover {
  color: var(--cc-color-dark);
}

/* Honeypot field — visually and physically hidden from real users. */
.footer-newsletter-hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* Subscribe success / error feedback. */
.footer-newsletter-message {
  font-size: 1.15rem;
  margin: 0 0 12px;
}

.footer-newsletter-message--success {
  color: var(--cc-color-dark);
}

.footer-newsletter-message--error {
  color: #b00020;
}

.footer-newsletter-meta {
  text-align: left;
  flex-shrink: 0;
}

.footer-newsletter-meta .copyright {
  font-size: 1.1rem;
  color: var(--cc-color-mid);
}

.footer-instagram-link {
  display: inline-block;
  color: var(--cc-color-mid);
  text-decoration: none;
  transition: color var(--cc-transition), transform var(--cc-transition);
}

.footer-instagram-link:hover {
  color: var(--cc-color-dark);
  transform: scale(1.15);
}

.footer-hyperarts {
  font-size: 1.1rem;
  color: var(--cc-color-mid);
}

.footer-hyperarts-link {
  color: var(--cc-color-mid);
  text-decoration: none;
  transition: color var(--cc-transition), text-decoration-color var(--cc-transition);
}

.footer-hyperarts-link:hover {
  color: var(--cc-color-dark);
  text-decoration: underline;
}

/* -------------------------
   17. Pagination
   ------------------------- */
.pagination-wrap .page-numbers {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  flex-wrap: wrap;
}

.page-numbers a,
.page-numbers span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--cc-color-dark);
  text-decoration: none;
  border: 1px solid var(--cc-color-border);
  transition: all var(--cc-transition);
}

.page-numbers a:hover {
  background-color: var(--cc-color-dark);
  border-color: var(--cc-color-dark);
  color: var(--cc-color-white);
}

.page-numbers .current {
  background-color: var(--cc-color-dark);
  border-color: var(--cc-color-dark);
  color: var(--cc-color-white);
}

/* -------------------------
   18. Post Navigation
   ------------------------- */
.post-navigation .nav-links {
  display: flex;
  justify-content: space-between;
  gap: 2rem;
}

.post-navigation .nav-subtitle {
  font-size: 0.75rem;
  letter-spacing: var(--cc-letter-spacing);
  color: var(--cc-color-mid);
  text-transform: uppercase;
}

.post-navigation .nav-title {
  font-family: var(--cc-font-heading);
  font-size: 1.05rem;
}

/* -------------------------
   19. Breadcrumb
   ------------------------- */
.breadcrumb-item + .breadcrumb-item::before {
  color: var(--cc-color-mid);
}

.breadcrumb-item a {
  color: var(--cc-color-mid);
  text-decoration: none;
}

.breadcrumb-item a:hover {
  color: var(--cc-color-dark);
}

/* -------------------------
   20. Front Page Exhibition Grid
   ------------------------- */
.fp-exhibition-grid {
  padding-top: 24px;
  padding-left: 20px;
  padding-right: 20px;
  max-width: 1400px;
  margin-left: auto;
  margin-right: auto;
}

.fp-grid-gap {
  --bs-gutter-x: 60px;
  --bs-gutter-y: 20px;
}

.fp-exhibition-grid .col {
  display: flex;
  flex-direction: column;
}

/* Pull left-column item to the right, right-column item to the left */
.fp-exhibition-grid .col:nth-child(odd) {
  align-items: flex-end;
}

.fp-exhibition-grid .col:nth-child(even) {
  align-items: flex-start;
}

@media (max-width: 767px) {
  .fp-exhibition-grid .col:nth-child(odd),
  .fp-exhibition-grid .col:nth-child(even) {
    align-items: center;
  }
}

/* Wrapper shrinks to image width so title centers under the image */
.fp-thumb-item {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
}

.fp-thumb-link {
  display: block;
  overflow: hidden;
  line-height: 0;
}

.fp-thumb-img {
  max-height: calc(100vh - var(--cc-nav-height) - 80px);
  width: auto;
  max-width: 100%;
  display: block;
}

.fp-thumb-title {
    text-align: center;
    margin-top: 10px;
    margin-bottom: 10px;
    font-size: 1.2rem;
    font-weight: 600;
    font-family: 'MinionProBold';
}

/* On mobile, make both portfolio thumbnails fill the column width so they
   render at a consistent size regardless of each image's resolution
   (otherwise a lower-res image displays narrower than a full-res one).
   align-items:stretch lets the link/image fill the width instead of
   shrinking to the image's intrinsic size. */
@media (max-width: 767px) {
  .fp-thumb-item {
    width: 100%;
    align-items: stretch;
  }

  .fp-thumb-img {
    width: 100%;
  }
}

.fp-page-content .entry-content {
  max-width: 72ch;
  margin: 0 auto;
  text-align: center;
}

/* -------------------------
   21. Front Page About Section
   ------------------------- */
.fp-about {
  background-color: #f5f5f5;
  margin-top: 30px;
  margin-bottom: 0;
}

.fp-about-inner-wrap {
  max-width: 1400px;
  margin-left: auto;
  margin-right: auto;
  padding: 60px 40px;
}

.fp-about-heading {
  margin-bottom: 32px;
  text-align: center;
  text-transform: uppercase;
}

.fp-about-inner {
  display: flex;
  gap: 40px;
  align-items: flex-start;
}

.fp-about-image {
  flex: 1 1 0;
  min-width: 0;
}

.fp-about-image img {
  width: 100%;
  height: auto;
  display: block;
}

.fp-about-text {
  flex: 1 1 0;
  min-width: 0;
  padding-top: 15px;
}

.fp-about-text p {
  font-size: 1.25rem;
  line-height: 1.4;
}

@media (max-width: 767px) {
  .fp-about-inner {
    flex-direction: column;
  }
  .fp-about-image,
  .fp-about-text {
    flex: 0 0 100%;
    max-width: 100%;
  }
}

/* -------------------------
   22. Entry Content (WP default styles)
   ------------------------- */
.entry-content {
  max-width: 68ch;
}

.entry-content > *:last-child {
  margin-bottom: 0;
}

.entry-content h2,
.entry-content h3,
.entry-content h4 {
  margin-top: 2rem;
  margin-bottom: 0.75rem;
}

.entry-content img {
  max-width: 100%;
  height: auto;
  margin: 1.5rem 0;
}

.entry-content figure {
  margin: 2rem 0;
}

.entry-content figcaption {
  font-size: 0.8rem;
  color: var(--cc-color-mid);
  font-style: italic;
  margin-top: 0.5rem;
}

/* -------------------------
   22. Navbar Scrolled State
   ------------------------- */
.site-header.scrolled {
  box-shadow: 0 2px 16px rgba(0,0,0,0.08);
}

/* -------------------------
   23. Print Styles (CV)
   ------------------------- */
@media print {
  .site-header,
  .site-footer,
  .breadcrumb-wrap,
  .cv-download,
  .exhibition-navigation {
    display: none !important;
  }

  body {
    font-size: 10pt;
    color: #000;
  }

  .cv-section {
    background-color: #fff !important;
  }

  .section-pad {
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
  }
}

/* Mobile menu item entrance: slide down + fade in. */
@keyframes ccNavSlideDown {
  from { opacity: 0; transform: translateY(-18px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* -------------------------
   23. Responsive Tweaks
   ------------------------- */
@media (max-width: 991.98px) {
  :root {
    --cc-section-pad: 3.5rem;
    --cc-nav-height: 60px;
  }

  .hero-section {
    min-height: 60vh;
  }

  .hero-content {
    padding: 3rem 0;
  }

  .hero-overlay {
    background: linear-gradient(
      to bottom,
      rgba(26,26,26,0.65) 0%,
      rgba(26,26,26,0.45) 100%
    );
  }

  /* Prevent the page behind the full-screen menu from scrolling. */
  body.nav-open {
    overflow: hidden;
  }

  /* ---- Mobile menu: full-screen centered overlay ---- */
  #primary-menu.navbar-collapse {
    background-color: transparent;
    border-top: 0;
    margin-top: 0;
    padding: 0;
  }

  /* When open, take over the viewport with a centered dark-blue panel.
     .collapsing is included (and its height animation disabled) so the menu
     snaps straight to the overlay — no flash of the inline white dropdown
     while Bootstrap animates the collapse open/closed. */
  #primary-menu.show,
  #primary-menu.collapsing {
    display: flex !important;
    position: fixed;
    inset: 0;
    z-index: 1040;
    height: auto !important;
    background-color: #3d59ab;
    align-items: center;
    justify-content: center;
    padding: 2rem;
    overflow-y: auto;
    transition: none;
  }

  /* The child rules below match .show AND .collapsing so the menu contents
     stay fully styled during Bootstrap's collapse phase — otherwise the blue
     panel would briefly show unstyled default menu items on every click. */
  #primary-menu.show .navbar-nav,
  #primary-menu.collapsing .navbar-nav {
    flex-direction: column;
    align-items: center;
    width: 100%;
    gap: 1.5rem;
    margin: 0;
  }

  /* Bigger, white, centered menu text. */
  #primary-menu.show .nav-link,
  #primary-menu.collapsing .nav-link {
    color: #fff;
    font-size: 1.75rem;
    padding: 0.25rem 0;
    text-align: center;
  }

  /* Keep every interaction state flat on the overlay — no white hover box on
     the submenu links (which otherwise inherit the desktop dropdown hover). */
  #primary-menu.show .nav-link,
  #primary-menu.collapsing .nav-link {
    -webkit-tap-highlight-color: transparent;
  }

  #primary-menu.show .nav-link:hover,
  #primary-menu.show .nav-link:focus,
  #primary-menu.show .nav-link:active,
  #primary-menu.show .nav-link.active,
  #primary-menu.collapsing .nav-link:hover,
  #primary-menu.collapsing .nav-link:focus,
  #primary-menu.collapsing .nav-link:active,
  #primary-menu.collapsing .nav-link.active {
    color: #fff;
    background-color: transparent;
    opacity: 0.75;
  }

  /* Portfolios: drop the toggle caret; submenu stays expanded, no tap needed. */
  #primary-menu.show .dropdown-toggle::after,
  #primary-menu.collapsing .dropdown-toggle::after {
    display: none;
  }

  #primary-menu.show .dropdown-menu,
  #primary-menu.collapsing .dropdown-menu {
    display: block !important;
    position: static;
    float: none;
    width: auto;
    min-width: 0;
    margin: 0.75rem 0 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background-color: transparent;
    text-align: center;
  }

  #primary-menu.show .dropdown-menu .nav-link,
  #primary-menu.collapsing .dropdown-menu .nav-link {
    padding-left: 0;
    font-size: 1.35rem;
    color: #fff;
  }

  /* ---- Staggered slide-down entrance for the menu items ---- */
  /* Hidden until the menu is fully open; keeps items out of sight during the
     brief collapse phase so they only ever appear via the animation. */
  #primary-menu.collapsing .nav-link {
    opacity: 0;
  }

  #primary-menu.show .nav-link {
    animation: ccNavSlideDown 0.45s cubic-bezier(0.22, 1, 0.36, 1) both;
  }

  /* Cascade in visual top-to-bottom order:
     Portfolios → Nebulous → Convergence → About/CV → Contact. */
  #primary-menu.show .navbar-nav > .nav-item:nth-child(1) > .nav-link  { animation-delay: 0.06s; }
  #primary-menu.show .dropdown-menu > .nav-item:nth-child(1) > .nav-link { animation-delay: 0.13s; }
  #primary-menu.show .dropdown-menu > .nav-item:nth-child(2) > .nav-link { animation-delay: 0.20s; }
  #primary-menu.show .navbar-nav > .nav-item:nth-child(2) > .nav-link  { animation-delay: 0.27s; }
  #primary-menu.show .navbar-nav > .nav-item:nth-child(3) > .nav-link  { animation-delay: 0.34s; }
  /* Any further top-level items fall in just after. */
  #primary-menu.show .navbar-nav > .nav-item:nth-child(n+4) > .nav-link { animation-delay: 0.41s; }

  /* Keep the toggler above the overlay so it doubles as the close control. */
  .navbar-toggler {
    position: relative;
    z-index: 1060;
  }

  .navbar-toggler[aria-expanded="true"] .navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' d='M7 7 L23 23 M23 7 L7 23'/%3e%3c/svg%3e");
  }

  .exhibition-details.sticky-top {
    position: static !important;
  }
}

/* No slide-down entrance for users who prefer reduced motion. */
@media (prefers-reduced-motion: reduce) {
  #primary-menu.show .nav-link {
    animation: none;
  }
  #primary-menu.collapsing .nav-link {
    opacity: 1;
  }
}

@media (max-width: 575.98px) {
  :root {
    --cc-section-pad: 2.5rem;
  }

  .page-title {
    font-size: 2rem;
  }

  .post-navigation .nav-links {
    flex-direction: column;
  }
}

/* Site-wide: at least 20px side gutter on Bootstrap containers at mobile
   widths (.container only provides 12px by default). */
@media (max-width: 767px) {
  .container {
    padding-left: 20px;
    padding-right: 20px;
  }
}

/* -------------------------
   24. Exhibition Header + Subnav
   ------------------------- */
.exhibition-header {
  padding: 1.5rem 0 1rem;
  text-align: center;
}

.exhibition-header-title {
  font-family: var(--cc-font-heading);
  font-size: 2rem;
  font-weight: 400;
  text-transform: uppercase;
  color: var(--cc-color-dark);
  margin-bottom: 0;
}

.exhibition-subnav-bar {
  position: sticky;
  top: var(--cc-nav-height);
  z-index: 100;
  background: var(--cc-color-white);
  border-top: 1px solid var(--cc-color-border);
  border-bottom: 1px solid var(--cc-color-border);
  padding: 0.85rem 0;
}

.exhibition-section-heading {
  font-family: var(--cc-font-heading);
  font-size: 1.75rem;
  font-weight: 400;
  letter-spacing: var(--cc-letter-spacing);
  color: var(--cc-color-dark);
  text-align: center;
  margin-bottom: 2rem;
}

.exhibition-subnav {
  display: flex;
  justify-content: center;
}

.exhibition-subnav-list {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 2.5rem;
}

.exhibition-subnav-list a {
  font-family: var(--cc-font-heading);
  font-size: 1.15rem;
  font-weight: 400;
  letter-spacing: var(--cc-letter-spacing);
  text-transform: capitalize;
  color: var(--cc-color-mid);
  text-decoration: none;
  transition: color var(--cc-transition);
  padding-bottom: 2px;
  border-bottom: 1px solid transparent;
  white-space: nowrap;
}

.exhibition-subnav-list a:hover,
.exhibition-subnav-list a.active {
  color: var(--cc-color-dark);
  border-bottom-color: var(--cc-color-dark);
}

.exhibition-subnav-list a.active {
  font-weight: 700;
}

@media (max-width: 575.98px) {
  .exhibition-header-title {
    font-size: 1.75rem;
  }

  .exhibition-subnav-list {
    flex-wrap: wrap;          /* safety net for very narrow (<360px) screens */
    justify-content: center;
    gap: 0.6rem 0.6rem;
  }

  /* Shrink labels so all items fit on one line on typical phone widths. */
  .exhibition-subnav-list a {
    font-size: 0.85rem;
  }
}

/* -------------------------
   24b. Single Exhibition – News Grid
   ------------------------- */
.exhibition-news-section {
  padding: 4rem 0;
  border-top: 1px solid var(--cc-color-border);
}

.exhibition-news-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 2.5rem;
}

.exhibition-news-item {
  display: flex;
  flex-direction: column;
  cursor: pointer;
}

.exhibition-news-img-wrap {
  margin-bottom: 1rem;
  line-height: 0;
  overflow: hidden;
}

/* Zoom-on-hover — matches the artwork treatment on exhibition pages. */
.exhibition-news-img {
  width: 100%;
  height: auto;
  display: block;
  transform: scale(1);
  transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
}

.exhibition-news-item:hover .exhibition-news-img,
.exhibition-news-item:focus-visible .exhibition-news-img {
  transform: scale(1.012);
}

@media (prefers-reduced-motion: reduce) {
  .exhibition-news-img {
    transition: none;
  }
  .exhibition-news-item:hover .exhibition-news-img,
  .exhibition-news-item:focus-visible .exhibition-news-img {
    transform: none;
  }
}

.exhibition-news-text {
  font-family: var(--cc-font-body);
  font-size: 1.2rem;
  color: var(--cc-color-mid);
  margin: 0;
  line-height: 1.4;
}

/* -------------------------
   24b2. Single Exhibition – About This Portfolio
   ------------------------- */
.exhibition-about-portfolio {
  margin-top: 0;
}

/* Let the nested .container govern horizontal width so this block lines up
   flush with the artwork grid above; the wrap keeps only vertical padding. */
.exhibition-about-portfolio .fp-about-inner-wrap {
  max-width: none;
  padding-left: 0;
  padding-right: 0;
  text-align: center;
}

.exhibition-about-portfolio-content {
  text-align: center;
}

/* Text runs the full width of the block, matching the artwork grid above. */
.exhibition-about-portfolio-content p,
.exhibition-about-portfolio-content div {
  font-size: 1.25rem;
  max-width: none;
  text-align: center;
}

/* -------------------------
   24c. Single Exhibition – Inquiry
   ------------------------- */
.exhibition-inquiry-section {
  padding: 4rem 0;
  border-top: 1px solid var(--cc-color-border);
}

.exhibition-inquiry-section .gform_wrapper {
  max-width: 640px;
  margin: 0 auto;
}

/* Gravity Forms – minimum 17px for all text */
.gform_wrapper input[type="text"],
.gform_wrapper input[type="email"],
.gform_wrapper input[type="tel"],
.gform_wrapper input[type="url"],
.gform_wrapper input[type="number"],
.gform_wrapper input[type="password"],
.gform_wrapper select,
.gform_wrapper textarea,
.gform_wrapper .gfield_label,
.gform_wrapper .gfield_label .gfield_required,
.gform_wrapper .gfield_description,
.gform_wrapper .ginput_complex label,
.gform_wrapper .gf_progressbar_percentage,
.gform_wrapper .gsection_title,
.gform_wrapper .gform_submission_error,
.gform_wrapper .validation_message,
.gform_wrapper .gform_ajax_spinner,
.gform_wrapper .gfield_checkbox label,
.gform_wrapper .gfield_radio label {
  font-size: 17px !important;
}

/* Gravity Forms – submit button: black/white like footer subscribe */
.gform_wrapper .gform_footer input[type="submit"],
.gform_wrapper .gform_page_footer input[type="submit"],
.gform_wrapper .gform_footer button[type="submit"],
.gform_wrapper .gform_page_footer button[type="submit"] {
  background-color: var(--cc-color-white) !important;
  border: 1px solid var(--cc-color-dark) !important;
  color: var(--cc-color-dark) !important;
  font-family: var(--cc-font-heading) !important;
  font-size: 0.8rem !important;
  letter-spacing: var(--cc-letter-spacing) !important;
  text-transform: uppercase !important;
  padding: 10px 28px !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  cursor: pointer !important;
  transition: background-color var(--cc-transition), color var(--cc-transition), border-color var(--cc-transition) !important;
}

.gform_wrapper .gform_footer input[type="submit"]:hover,
.gform_wrapper .gform_page_footer input[type="submit"]:hover,
.gform_wrapper .gform_footer button[type="submit"]:hover,
.gform_wrapper .gform_page_footer button[type="submit"]:hover {
  background-color: var(--cc-color-dark) !important;
  border-color: var(--cc-color-dark) !important;
  color: var(--cc-color-white) !important;
}

/* -------------------------
   24c. Single Exhibition – Artwork Grid
   ------------------------- */
.artwork-grid-section {
  padding: 3rem 0 4rem;
  border-top: 1px solid var(--cc-color-border);
}

.artwork-masonry {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}

@media (max-width: 575px) {
  .artwork-masonry {
    grid-template-columns: 1fr;
  }
}

.artwork-masonry .artwork-lightbox-link {
  display: block;
  width: 100%;
}

.artwork-lightbox-link {
  display: block;
  line-height: 0;
  overflow: hidden;
}

.artwork-img {
  width: 100%;
  height: auto;
  display: block;
}

/* Artwork caption under each thumbnail — mobile only (client request).
   Desktop shows this info in the lightbox instead. */
.artwork-caption {
  display: none;
}

@media (max-width: 767.98px) {
  .artwork-caption {
    display: block;
    text-align: center;
    padding: 0.85rem 0.25rem 0;
    line-height: 1.35;
  }

  .artwork-caption-name {
    font-family: var(--cc-font-heading);
    font-size: 1.2rem;
    color: var(--cc-color-dark);
    margin: 0 0 0.3rem;
  }

  .artwork-caption-type,
  .artwork-caption-size,
  .artwork-caption-size-cm {
    font-family: var(--cc-font-body);
    font-size: 0.9rem;
    color: var(--cc-color-mid);
    margin: 0 0 0.15rem;
  }
}

/* Zoom-on-hover — the artwork treatment across exhibition pages.
   Subtle, slow, smooth ease-out (no overshoot bounce). */
.artwork-img {
  transform: scale(1);
  transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
}

.artwork-lightbox-link:hover .artwork-img,
.artwork-lightbox-link:focus-visible .artwork-img {
  transform: scale(1.012);
}

/* Respect users who prefer reduced motion */
@media (prefers-reduced-motion: reduce) {
  .artwork-img {
    transition: none;
  }
  .artwork-lightbox-link:hover .artwork-img,
  .artwork-lightbox-link:focus-visible .artwork-img {
    transform: none;
  }
}


/* -------------------------
   25. Artwork Lightbox
   ------------------------- */
.artwork-lb {
  position: fixed;
  inset: 0;
  background: #fff;
  z-index: 9999;
  display: flex;
  align-items: stretch;
}

.artwork-lb[hidden] {
  display: none;
}

.artwork-lb-close {
  position: absolute;
  top: 40px;
  right: 24px;
  background: none;
  border: none;
  padding: 4px;
  cursor: pointer;
  color: var(--cc-color-dark);
  line-height: 0;
  transition: opacity var(--cc-transition);
  z-index: 1;
}

.artwork-lb-close:hover {
  opacity: 0.5;
}

.artwork-lb-inner {
  display: flex;
  width: 100%;
  gap: 0;
}

/* Right panel – image + nav arrows (second in DOM) */
.artwork-lb-image-panel {
  position: relative;
  flex: 0 0 60%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 60px 80px;
}

.artwork-lb-img {
  max-width: 100%;
  max-height: calc(100vh - 80px);
  width: auto;
  height: auto;
  display: block;
  object-fit: contain;
}

.artwork-lb-prev,
.artwork-lb-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  padding: 15px;
  cursor: pointer;
  color: var(--cc-color-dark);
  line-height: 0;
  transition: opacity var(--cc-transition);
}

.artwork-lb-prev:hover,
.artwork-lb-next:hover {
  opacity: 0.5;
}

.artwork-lb-prev {
  left: 12px;
}

.artwork-lb-next {
  right: 12px;
}

/* Left panel – artwork info (first in DOM) */
.artwork-lb-info-panel {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 60px 48px 60px 80px;
  position: relative;
}

.artwork-lb-artist {
  position: absolute;
  top: 60px;
  left: 80px;
  right: 48px;
  font-family: var(--cc-font-heading);
  font-size: 2rem;
  font-weight: 400;
  letter-spacing: var(--cc-letter-spacing);
  text-transform: uppercase;
  color: var(--cc-color-mid);
  padding-bottom: 1.25rem;
  margin-bottom: 0;
  border-bottom: 1px solid var(--cc-color-border);
}

.artwork-lb-name {
  font-family: var(--cc-font-heading);
  font-size: 1.4rem;
  font-weight: 400;
  color: var(--cc-color-dark);
  margin-bottom: 1rem;
}

.artwork-lb-type,
.artwork-lb-size,
.artwork-lb-size-cm {
  font-family: var(--cc-font-body);
  font-size: 1.2rem;
  color: var(--cc-color-mid);
  margin-bottom: 0.25rem;
}

@media (max-width: 767px) {
  .artwork-lb-inner {
    flex-direction: column;
    min-height: 100%;
    overflow-y: auto;
    padding: 108px 0 32px;   /* top reserved for the logomark header + divider */
  }

  /* Logomark header pinned across the top, with a divider line below it;
     the X close button sits above it at the top-right. */
  .artwork-lb-artist {
    position: absolute;
    top: 36px;
    left: 24px;
    right: 24px;
    margin: 0;
    padding: 0 0 16px;
    border: 0;
    border-bottom: 1px solid var(--cc-color-border);
    font-size: 2rem;
    line-height: 1;
    text-align: left;
  }

  /* Painting centered in the space between the header and the info. */
  .artwork-lb-image-panel {
    order: -1;
    flex: 0 0 auto;
    margin-top: auto;
    padding: 0 52px;   /* wider sides give the nav arrows room */
  }

  .artwork-lb-img {
    max-height: 52vh;
  }

  /* Painting info sits below the image, centered. */
  .artwork-lb-info-panel {
    position: static;   /* lets the logomark's absolute pin to the modal */
    flex: 0 0 auto;
    margin-bottom: auto;
    justify-content: flex-start;
    align-items: center;
    text-align: center;
    padding: 20px 24px 0;
  }

  /* More breathing room / larger tap target around the nav arrows. */
  .artwork-lb-prev,
  .artwork-lb-next {
    padding: 20px 12px;
  }

  .artwork-lb-prev {
    left: 4px;
  }

  .artwork-lb-next {
    right: 4px;
  }
}

/* -------------------------
   26. News Lightbox
   ------------------------- */
.news-lb {
  position: fixed;
  inset: 0;
  background: #fff;
  z-index: 9999;
  display: flex;
  align-items: stretch;
}

.news-lb[hidden] {
  display: none;
}

.news-lb-close {
  position: absolute;
  top: 40px;
  right: 24px;
  background: none;
  border: none;
  padding: 4px;
  cursor: pointer;
  color: var(--cc-color-dark);
  line-height: 0;
  transition: opacity var(--cc-transition);
  z-index: 1;
}

.news-lb-close:hover {
  opacity: 0.5;
}

.news-lb-inner {
  display: flex;
  width: 100%;
  gap: 0;
}

/* Right panel – image + nav arrows */
.news-lb-image-panel {
  position: relative;
  flex: 0 0 60%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 60px 80px;
}

.news-lb-img {
  max-width: 100%;
  max-height: calc(100vh - 80px);
  width: auto;
  height: auto;
  display: block;
  object-fit: contain;
}

.news-lb-prev,
.news-lb-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  padding: 15px;
  cursor: pointer;
  color: var(--cc-color-dark);
  line-height: 0;
  transition: opacity var(--cc-transition);
}

.news-lb-prev:hover,
.news-lb-next:hover {
  opacity: 0.5;
}

.news-lb-prev {
  left: 12px;
}

.news-lb-next {
  right: 12px;
}

/* Left panel – text info */
.news-lb-info-panel {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 60px 48px 60px 80px;
  position: relative;
}

.news-lb-heading {
  position: absolute;
  top: 60px;
  left: 80px;
  right: 48px;
  font-family: var(--cc-font-heading);
  font-size: 2rem;
  font-weight: 400;
  letter-spacing: var(--cc-letter-spacing);
  text-transform: uppercase;
  color: var(--cc-color-mid);
  padding-bottom: 1.25rem;
  margin-bottom: 0;
  border-bottom: 1px solid var(--cc-color-border);
}

.news-lb-text {
  font-family: var(--cc-font-body);
  font-size: 1.2rem;
  color: var(--cc-color-dark);
  line-height: 1.6;
  margin-bottom: 1.5rem;
}

.news-lb-text p {
  margin: 0 0 1rem;
}

.news-lb-text p:last-child {
  margin-bottom: 0;
}

.news-lb-link {
  font-family: var(--cc-font-body);
  font-size: 1rem;
  color: var(--cc-color-dark);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.news-lb-link:hover {
  opacity: 0.6;
}

@media (max-width: 767px) {
  .news-lb-inner {
    flex-direction: column;
    min-height: 100%;
    overflow-y: auto;
    padding: 108px 0 32px;   /* top reserved for the heading + divider */
  }

  /* "News" header pinned across the top, with a divider line below it;
     the X close button sits above it at the top-right. */
  .news-lb-heading {
    top: 36px;
    left: 24px;
    right: 24px;
    margin: 0;
    padding: 0 0 16px;
    border: 0;
    border-bottom: 1px solid var(--cc-color-border);
    font-size: 2rem;
    line-height: 1;
    text-align: left;
  }

  /* Photo centered in the space between the header and the text. */
  .news-lb-image-panel {
    order: -1;
    flex: 0 0 auto;
    margin-top: auto;
    padding: 0 24px;
  }

  .news-lb-img {
    max-height: 52vh;
  }

  /* Text sits below the photo; static so the heading's absolute pins to the modal. */
  .news-lb-info-panel {
    position: static;
    flex: 0 0 auto;
    margin-bottom: auto;
    padding: 20px 24px 0;
  }

  /* No prev/next arrows in the News modal on mobile (X still closes it). */
  .news-lb-prev,
  .news-lb-next {
    display: none;
  }
}
