@charset "UTF-8";
/*
Theme Name: Presso - Child
Theme URI: http://envirra.com/themes/presso4
Author: envirra
Author URI: http://themeforest.net/user/envirra?ref=envirra
Description: Magazine WordPress Theme
Version: 1.0
License: GPL
License URI: http://www.gnu.org/licenses/gpl.html‎
Tags: black, white, one-column, two-columns, three-columns, right-sidebar, flexible-width, custom-colors, custom-menu, featured-images, post-formats, theme-options, translation-ready, photoblogging
Text Domain: envirra
Template: presso
*/

/*//////////////////////////////////////
// Widget : Social Counter
//////////////////////////////////////*/
.vw-social-counter-item-facebook {
  --vw-social-color: #3b5998;
}

.vw-social-counter-item-instagram {
  --vw-social-color: #e1306c;
}

.vw-social-counter-item-youtube {
  --vw-social-color: #ff0000;
}

.vw-social-counter-item-pinterest {
  --vw-social-color: #bd081c;
}

@font-face {
  font-family: "Font Awesome 5 Brands";
  src:
    url("../woff2/awesome.woff2") format("woff2"),
    url("../woff/awesome.woff") format("woff"),
    url("../ttf/fa-brands-400.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
}

/* 1) Include only the "solid" font-face */
@font-face {
  font-family: "Font Awesome 6 Free";
  font-style: normal;
  font-weight: 900; /* solid weight */
  font-display: block;
  src: url("../woff2/fa-solid-900.woff2") format("woff2"),
       url("../ttf/fa-solid-900.ttf") format("truetype");
}

/* 2) Basic icon styling for .fa, .fas */
.fa,
.fas {
  -moz-osx-font-smoothing: grayscale;   /* fixes for sharper rendering */
  -webkit-font-smoothing: antialiased;
  display: inline-block;
  font-style: normal; 
  font-variant: normal;
  text-rendering: auto;
  line-height: 1;
}

/* 3) .fas uses the solid 900 weight (the "solid" icon set) */
.fas {
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
}

/* 4) Define only the star icons we actually need */

/* Full Star (fa-star) */
.fa-star:before {
  content: "\f005"; /* Unicode for solid star */
}

/* Half-Star (fa-star-half-stroke in FA6; also known as fa-star-half-alt) */
.fa-star-half-stroke:before {
  content: "\f5c0"; /* Unicode for half-stroke star */
}

/* (Optional) If you use the old name "fa-star-half-alt": */
.fa-star-half-alt:before {
  content: "\f5c0";
}


@media only screen and (min-width: 992px) {
  /*.vw-bar {
    display: none !important;
  }*/
  /*.vw-header__main-container {display: none !important;} */
}

.custom-html-widget a {
	text-decoration: underline;
}

.ig-list {
	list-style-type: none;
	font-size: 20px;
	margin-left: 0;
	margin-top: -15px;
}

.ig-list li {
  background: url(../png/instagram-icon.png) no-repeat left center;
  height: 34px;
  padding-top: 4px;
  padding-left: 27px;
  margin: 0;
}

div.vw-about-author.clearfix {
  padding-bottom: 40px;
}

.vw-about-author .avatar {
	float: left;
    margin-right: 15px;
    margin-top: 5px;
}

.vw-post-meta .vw-avatar {
  margin: 0;
}

.admin-bar .vw-stuck {
  top: 0 !important;
}

.admin-bar .vw-stuck--up {
  top: 49px !important;
}

.vw-header, .vw-header__inner {height: 0px !important;}

.vw-content-area{background-color:#ffffff;}h1, h2, h3, h4, h5, h6, .vw-header-font,#wp-calendar caption,.vw-accordion-header-text,.vw-review-item-title,.vw-previous-link-page, .vw-next-link-page,.vw-quote,blockquote,.vw-comment__author,.widget_shopping_cart_content .mini_cart_item a:nth-child(2),.vw-post-content .vw-post-box__link{font-family:Oswald;text-transform:uppercase;letter-spacing:0px;font-weight:700;font-style:normal;color:#333;}h1{font-size:36px;}h2{font-size:30px;}h3{font-size:24px;}h4{font-size:18px;}h5{font-size:14px;}h6{font-size:12px;}body,cite,.vw-quote-cite{font-family:"Open Sans";font-weight:400;font-style:normal;color:#666;font-size:16px;}.vw-top-bar{font-family:Oswald;letter-spacing:0px;font-weight:400;font-style:normal;font-size:13px;}.widget-title{font-family:Oswald;letter-spacing:1px;font-weight:700;font-style:normal;color:#333;font-size:33px;}body .vwspc-section-title{font-family:Oswald;letter-spacing:1px;font-weight:700;font-style:normal;color:#333;font-size:33px;}.vw-super-title{font-size:13px;}.vw-post-box .vw-post-box__meta{font-size:11px;}.vw-categories{font-size:11px;}.vw-site-header__floating{padding-top:10px;padding-bottom:10px;}.vw-header{background:#ffffff;}.vw-header,.vw-header .vw-instant-search i{color:#191919;}.vw-top-bar{background:#333333;}.vw-top-bar{color:#eeeeee;}.vw-footer{background-color:#191919;}.vw-footer h1,.vw-footer h2,.vw-footer h3,.vw-footer h4,.vw-footer h5,.vw-footer h6{color:#ffffff;}.vw-footer .widget-title{color:#3facd6;}.vw-footer{color:#9a9a9a;}.vw-bottom-bar{background:#111111;}.vw-bottom-bar{color:#f7f7f7;}

.vwspc-section-post-slider-section, #vwspc-section-1 .container, .goob, .goob .vw-post-box, .goob .vw-slides, .goob .vw-post-box--slide, .goob .vw-single-slider {height: 500px;}
.goob .vw-post-box__inner {
	position: absolute;
    bottom: 0;
    width: 100%;
}

.vw-post-box--slide-1 {background-position: top !important;}

.vw-header-area {margin-bottom: 48px;}

#shiftnav-toggle-main.shiftnav-toggle-edge-right .shiftnav-toggle-burger {
  padding-right: 10px;
  padding-top: 13px;
}

.shiftnav.shiftnav-skin-standard-dark ul.shiftnav-menu li.menu-item.current-menu-item > .shiftnav-target {
  color: #333 !important;
  background: wheat !important;
}

.shiftnav-main-toggle-content img, #footer-logo {
  -webkit-filter: invert(100%);
  filter: invert(100%);
}

.page-artists .vw-post-header h1 {
  margin-top: -25px;
  text-align: center;
  font-size: 30px;
}

.page-artists .vw-post-header {
  margin-bottom: 15px;
}

.page-artists .biopic {
  width: 100%;
}

.page-artists .artist-profile h2 {
  margin-top: 10px;
  margin-bottom: 10px;
  font-size: 24px;
}

/*//////////////////////////////////////
// Social Counter Widget
//////////////////////////////////////*/
.vw-widget-apsc-social-counter .vw-social-counters {
  grid-gap: 11px;
}

.vw-widget-apsc-social-counter .vw-social-counter-item {
  display: grid;
  text-decoration: none !important;
  grid-template-columns: 45px 1fr;
}

.vw-widget-apsc-social-counter .vw-social-counter-item:hover .vw-social-counter-item-icon {
  background-color: var(--vw-social-color);
}

.vw-widget-apsc-social-counter .vw-social-counter-item:hover .vw-social-counter-item-count {
  color: var(--vw-social-color);
}

.vw-widget-apsc-social-counter .vw-social-counter-item-icon {
  color: #fff;
  background-color: #333;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  grid-row: span 2;
  height: 45px;
  font-size: 1.1em;
  -webkit-transition: var(--vw-transition);
  transition: var(--vw-transition);
}

.vw-widget-apsc-social-counter .vw-social-counter-item-count {
  font-family: Oswald;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 24px;
  line-height: 1;
  color: white;
  margin-left: 10px;
  -webkit-transition: var(--vw-transition);
  transition: var(--vw-transition);
}

.vw-widget-apsc-social-counter .vw-social-counter-item-unit {
  text-transform: uppercase;
  font-size: 10px;
  margin-left: 10px;
}

.vw-widget-apsc-social-counter .vw-social-counter-item-label {
  display: none;
}

.envirra_widget_posts_small .vw-grid {
  --vw-grid-gap: 1em;
}

/*//////////////////////////////////////
// Social Icons Widget
//////////////////////////////////////*/
.widget_vw_widget_social_icons {
  --vw-social-link-size: 40px;
}

.fab {
    font-family: 'Font Awesome 5 Brands';
	-webkit-font-smoothing: antialiased;
    font-style: normal;
    font-variant: normal;
    text-rendering: auto;
    line-height: 1;
}

.vw-social-counters {
	display: grid;
    list-style: none;
    margin: 0;
    grid-template-columns: repeat(2, 1fr);
}

.artist-videos a {
  color: #3facd6;
}

.artist-videos iframe {
  margin-bottom: 30px;
}

.link-list {
    background: transparent;
    padding: 0;
}

.artists-container {
    display: flex;
    flex-wrap: wrap;
    gap: 25px;
    justify-content: center;
}

.artist-container {
  width: 46%;
}

@media (max-width: 768px) {
    .artist-container {
        width: 100%; /* Full width for smaller screens */
    }
}

.artist-card {
    display: flex;
    align-items: center;
    background-color: #f9f9f9;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 15px;
    width: 100%;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    transition: transform 0.2s ease-in-out;
}

.artist-card:hover {
    transform: scale(1.04);
	text-decoration: none;
}

.artist-image img {
    width: 80px;
	min-width: 80px;
    height: 80px;
    border-radius: 50%;
    object-fit: cover;
    margin-right: 15px;
}

.artist-info {
    display: flex;
    flex-direction: column;
}

.artist-name {
    font-size: 20px;
    font-weight: bold;
    margin: 0;
    color: #333;
}

.artist-location {
    font-size: 18px;
    color: #666;
    margin-top: 5px;
}

.vw-about-author__bio {
    font-size: 12px;
}

.vw-avatar > img:nth-of-type(1) {
    display: block !important;
}

#vw_widget_posts-2 .vw-post-box .wp-post-image {width: 70px;}

@media only screen and (max-width:767px) {
	.vw-copyright {text-align:center;}
}

@media screen and (min-width: 800px) {
  iframe {
	  width: 100%;
	  height: 380px;
  }
}

@media screen and (min-width: 1200px) {
  iframe {
	  width: 100%;
	  height: 400px;
  }
	.vw-post-header .vw-post-title {font-size: 40px;}
	
	.vw-post-header hr {
		margin-top: 20px;
	}
}

.vw-about-author__info {
  margin-left: 165px;
}

.vw-about-author .vw-user-social-links {
  margin-top: 0;
}

.vw-about-author__bio {
    margin-bottom: 15px;
}

@media (max-width: 767px) {
    .vw-about-author {
	  text-align: center;
	}
	
	.vw-about-author .avatar {
	  float: none;
	}
	
	.vw-about-author__info {
  	margin-left: 0;
	}
	
	.vw-about-author__name {
        font-size: 38px;
        margin-top: -10px;
    }
	
	.vw-about-author__tagline {
	margin-top: 20px;
    font-size: 13px;
	}
	
	.vw-about-author .vw-user-social-links {
    margin-top: 10px;
     }
	 
	 .back-button {
	   margin: 0 auto;
	 }
	 
	 .sidebar-ad {
	   text-align: center;
	 }
}

.vw-social-icon {
    margin-bottom: 4px;
    text-decoration: none !important;
    background-color: rgb(53, 54, 64);
    color: white;
    padding: 6px;
    margin-right: 8px;
    font-size: 11px;
}

div.vw-post-navigation.clearfix {
  margin-bottom: 40px;
  padding-bottom: 40px;
}

.icon-social-threads {
    font-family: 'Font Awesome 5 Brands';
}

.icon-social-threads:before {
    content: '\e618';
}

.vw-social-icons--solid .vw-icon-social-threads:hover {
  background: black;
}

.icon-social-threads {
    display: inline-block;
    width: 10px;
    height: 12px;
    background-image: url('../png/threads-logowhite.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    margin-right: 1px;
    vertical-align: middle; /* Aligns the icon with text */
}

.back-button {
    background: rgb(53, 54, 64);
    color: white;
    padding: 15px;
    text-decoration: none;
	display: block;
    margin-top: 15px;
    width: 180px;
    text-align: center;
	font-family: 'Oswald';
    text-transform: uppercase;
}

.back-button:hover {
  text-decoration: none;
  background-color: rgb(63, 172, 214);
  color: white;
}

.vw-avatar img.avatar-24, .vw-avatar img.avatar-16 {
  display: none !important;
}

.vw-post-box .vw-post-box__meta .vw-avatar {
  margin-right: 0;
}

.artist-profile td {
    padding-right: 10px;
}

.artist-profile a {
  color: #3facd6;
}

/* 
      -------------------------------------------------------
      SLIDER WRAPPER
      -------------------------------------------------------
      - Contains the arrow buttons and the .slider-container
    */
    .slider {
      position: relative;   /* So we can position arrow buttons inside */
      max-width: 1200px;    /* Optional max width; remove if you want full-bleed */
      margin: 0 auto;       /* Center horizontally if using a max width */
    }

    /*
      -------------------------------------------------------
      SLIDER-CONTAINER
      -------------------------------------------------------
      - The horizontally scrollable wrapper for .slider-item
      - We use flexbox + overflow-x: auto
    */
   .slider-container {
  display: flex;
  flex-wrap: nowrap;
  gap: 1rem;
  margin-bottom: 20px;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  scroll-snap-type: x mandatory;
}

.slider-container::-webkit-scrollbar {
  display: none;
}

.slider-item {
  flex: 0 0 30%;
  scroll-snap-align: start;
  text-align: center;
}

.slider-item img {
  width: 100%;
  height: auto;
  object-fit: cover;
  display: block;
  border-radius: 6px;
}

.slider-item p {
  margin-bottom: 0;
}

.slider-item a p {
  text-align: left;
  font-weight: bold;
  color: #000;
  margin-top: 0.5rem;
}


    /* 
      -------------------------------------------------------
      ARROW BUTTONS
      -------------------------------------------------------
    */
    .slider {
  position: relative; /* to position children absolutely inside */
}

/* Arrow Buttons */
.slider-button {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255, 255, 255, 0.8);
  color: rgb(68, 68, 68) !important;
  border: none;
  cursor: pointer;
  font-size: 1.5rem;
  padding: 0.5rem 1rem;
  border-radius: 50px;
  z-index: 2; /* ensures buttons are above the slider items */
}

.slider-button:hover {
  background: rgba(255, 255, 255, 1);
}

/* Left vs. Right positions */
.slider-button-left {
  left: 0; 
}

.slider-button-right {
  right: 0; 
}

/*
	-------------------------------------------------------
    RESPONSIVE BREAKPOINT
    -------------------------------------------------------
    - Show ~1.5 slides on smaller screens
    - e.g., "flex: 0 0 66%" => about 1.5 slides visible
*/
@media (max-width: 768px) {
	.slider {
	   border-bottom: 1px dotted #DDDDDD;
	}
	
	.slider-container {
	  margin-bottom: 25px;
	}
	
	.slider-item {
		flex: 0 0 66%;
 	}
}

/* 
 * Example: Target devices under 768px (commonly "mobile").
 * Tweak the max-width to match your theme’s breakpoints.
 */
#articles-section .vw-post-box__title, #videos-section .vw-post-box__title {
  margin-top: 12px;
}
#articles-section .vw-post-box__category, #videos-section .vw-post-box__category {
    display: none;
}

#homepage-hero {
	margin: -48px auto 0;
    max-width: 1000px;
}

#section1 {
  margin-bottom: 0;
}

section .container {
    padding-left: 0;
	padding-right: 0;
}

.vw-loop--border-bottom .vw-post-box {
  border: 0;
  padding-bottom: 0;
}

.viewall svg path {
    fill: rgb(95, 170, 210);
}
 
.viewall {
    margin-top: 20px;
    font-size: 18px;
    text-transform: uppercase;
}
  
.viewall a {
    font-weight: 600;
    text-decoration: none;
}
  
.viewall a:hover {
    border-bottom: 2px solid #989286;
}
  
#custom_html-2 a {
  text-decoration: none;
  font-weight: bold;
}

.vw-post-box__title a {
	text-transform: none;
}

#event-details {
  margin-top: -48px;
}

#event-details .label {
  font-size: 22px;
  font-weight: 700;
  margin-bottom: 10px;
  text-transform: none;
  letter-spacing: 1px;
}

#event-details .event-type {
  font-size: 15px;
  margin-bottom: 20px;
}

#event-details .event-type strong {
  font-weight: 600;
}

#event-details .hero {
	background-image: url('../png/dancers-background.png');
    position: relative;
    background-size: cover;
    background-position: center;
    height: 300px;
    width: 100%;
	margin: 0 auto 15px;
	max-width: 1140px;
}

#event-details .hero::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  /* Black with 0.4 opacity - tweak to desired darkness */
  background-color: rgba(0, 0, 0, 0.4);
}

#event-details .hero-overlay h1 {
  position: relative;
  color: #fff;
  z-index: 1;
  margin: 0;
  padding: 0;
  font-size: 40px;
  text-transform: none;
}

#event-details .hero-overlay p {
  margin: 0;
  margin-top: 10px;
  position: relative;
  font-size: 24px;
  z-index: 1;
}

#event-details .hero-overlay {
    position: absolute;
    bottom: 20px; /* or top/center, depending on design */
    left: 20px;
    color: #fff;
    /* add background-color: rgba(0,0,0,0.5) if you want a semi-transparent overlay behind the text */
    padding: 10px;
}

.directions a {
  color: rgb(95, 170, 210);
}
#event-details .directions a:hover {
  text-decoration: underline;
}

.event-type i {
  margin-right: 6px;
  color: #333; /* or whichever color you want */
  vertical-align: top;
}

#event-details .event-type.cost {
  padding-left: 34px;
}

#event-details .vw-content-main {
  padding: 0;
}

#salsa-flyers .gallery {
  margin: 0 auto;              /* Center the gallery if desired */
}
#salsa-flyers .gallery .gallery-item {
  float: none !important;      /* Disable the default float-based layout */
  margin: 0 !important;        /* Remove default spacing if needed */
}

#salsa-flyers .gallery {
  display: grid !important;           /* Make sure to override default WP inline styles */
  grid-template-columns: repeat(4, 1fr); /* 4 columns by default (desktop) */
  gap: 1rem;                          /* Space between items, adjust as needed */
}


@media only screen and (max-width: 768px) {
  #salsa-flyers .gallery {
    grid-template-columns: repeat(2, 1fr); 
  }
  
  #salsa-flyers .gallery img {
    width: 100%;
  }

  #event-details .vw-content-sidebar {
    padding: 0;
  }

  #event-details .hero-overlay h1 {
    font-size: 30px;
  }

  #event-details .hero-overlay p {
    font-size: 20px;
	margin: 0;
  }

  #event-details .hero {
    height: 200px;
    width: 100%;
	margin: 0 auto 15px;
	max-width: 1140px;
}

  #event-details {
    margin-top: -41px;
  }

   #homepage-hero {
	margin: -41px auto 0;
    max-width: 1000px;
  }
  
  .vw-loop--border-bottom .vw-post-box {
	border-bottom: 1px dotted #DDDDDD;
  }

  #articles-section .vw-post-box__thumbnail img, #videos-section .vw-post-box__thumbnail img {
    width: 130px;
	float: left;
	margin-right: 15px;
    aspect-ratio: 1 / 1;
    object-fit: cover;
	height: auto;
    display: block; 
  }
  
  #articles-section .vw-post-box__title, #videos-section .vw-post-box__title {
    margin-top: 0;
	font-size: 20px;
  }
  
  #articles-section .vw-post-box__title a, #videos-section .vw-post-box__title a {
    text-transform: none;
	line-height: normal;
  }
  
  #articles-section .vw-post-box--block-g .vw-post-box__thumbnail-wrapper, #videos-section .vw-post-box--block-g .vw-post-box__thumbnail-wrapper {
    margin-bottom: 0;
  }
  
  #articles-section .vw-post-box__category, #videos-section .vw-post-box__category {
  	font-size: 13px;
	text-transform: uppercase;
    margin-bottom: 4px;
    display: block;
	font-weight: 600;
    color: #5FAAD2;
  }
  
  section .container {
    padding-left: 20px;
	padding-right: 20px;
  }
}

/* Style the headings (e.g. "Date and time", "Location") */
.event-section h2 {
  font-size: 24px;
  font-weight: bold;
  margin-bottom: 12px;
  color: #2E1550; /* Adjust to your desired color */
}

/* The container that holds both icon and text */
.event-detail {
  display: flex;
  align-items: flex-start;
}

/* Style the icons */
.event-detail i {
  margin-right: 10px;
}

.share-hidden {
  display: none;
}

/* NEW EXPLORATION */

/* Basic resets */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
body {
  font-family: sans-serif;
  background-color: #111;
  color: #3a3247;
}

.app-container {
  max-width: 500px; /* For mobile-ish layout, adjust as needed */
  margin: 0 auto;
  background-color: #fff;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  margin-top: -41px;
  margin-bottom: -48px;
  padding-bottom: 40px;
}

/* HEADER */
.header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background-color: #ffe5ca; 
  padding: 1rem;
  border-bottom-left-radius: 20px;
  border-bottom-right-radius: 20px;
}
.header-title {
  font-size: 1.2rem;
  font-weight: bold;
  color: #3a3247;
}
.icon-btn {
  background: none;
  border: none;
  font-size: 1.2rem;
  color: #3a3247;
  cursor: pointer;
}
.icon-btn:focus {
  outline: 2px solid #ccc;
}

/* MAIN CONTENT */
.event-details {
  flex: 1;
  padding: 1rem;
  padding-top: 10px;
  background: #FCEED9;
}

/* HERO CARD */
.hero-card {
  background-color: #FEFEFE;
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 25px;
  box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
.hero-image img {
  display: block;
  width: 100%;
  height: auto;
}

/* remove the forced 6:4 on defaults and cap its height */
.hero-image--default {
  aspect-ratio: auto;   /* cancel the old 6/4 */
  height: 200px;        /* choose your “shrunk” height */
  overflow: hidden;     /* crop any overflow */
}

/* make sure the img fills the wrapper */
.hero-image--default img {
  width: 100%;
  height: 100%;
  object-fit: fill;
  object-position: center -125px;
}

@media (max-width: 768px) {
  .hero-image--default img {
    object-position: center -44px;
  }
}

.hero-info {
  padding: 1rem;
  background: #f6f6f6;
}
.hero-info .event-title {
  font-size: 25px;
  margin-bottom: 0.5rem;
}
.price-and-participants {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.5rem;
}
.price {
  font-size: 1.2rem;
  font-weight: bold;
  color: #f49300; /* orange-ish color */
}
.participants {
  display: flex;
  align-items: center;
}
.more {
  background-color: #f49300;
  color: #fff;
  font-size: 0.9rem;
  border-radius: 50%;
  display: inline-block;
  padding: 4px 8px;
  margin-left: -8px;
  border: 2px solid #fff;
}
.event-meta {
  display: flex;
  justify-content: space-between;
  margin-top: 1rem;
}
.meta-box {
  background-color: white;
  padding: 7px;
  border-radius: 8px;
  width: 48%; /* 2 boxes side by side */
  text-align: center;
}
.meta-box .time {
  font-weight: 400;
}
.meta-box .directions a {
  font-size: 0.9rem;
}
.meta-label {
  font-size: 0.75rem;
  color: #888;
  margin: 0;
  line-height: 1em;
}
.meta-value {
  font-size: 0.9rem;
  font-weight: 600;
}

/* ORGANIZER CARD */
.organizer-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background-color: white;
  margin-bottom: 10px;
  padding: 1rem;
  border-radius: 10px;
  box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
.organizer-info {
  display: flex;
  align-items: center;
}
@media (max-width: 768px) {
	.organizer-info {
		max-width: 188px;
	}
}
.organizer-photo {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  margin-right: 0.8rem;
}
.organizer-text .organizer-label {
  font-size: 0.8rem;
  color: #aaa;
  line-height: 18px;
}
.organizer-name {
  font-size: 1rem;
  font-weight: bold;
  color: #3a3247;
}
.call-btn {
  background: #f6f6f6;
  border: 1px solid #ddd;
  border-radius: 6px;
  font-size: 1.2rem;
  padding: 3px 6px;
  cursor: pointer;
  margin-left: 5px;
}

.call-btn:hover {
  text-decoration: none;
}

/* ABOUT SECTION */
.about-section {
  margin-bottom: 1rem;
  background: #FDF7ED;
  padding: 15px;
  padding-bottom: 0;
  border: 1px solid #ddd;
  border-radius: 6px;
}
.about-section p {
  font-size: 15px;
}
.about-section a {
  color: rgb(95, 170, 210);
}
.event-details h3 {
  margin-bottom: 10px;
  margin-top: 10px;
  font-size: 21px;
}
.rating {
  margin-bottom: 0.5rem;
}
.star {
  color: #f2b01e; /* star color */
  font-size: 1.2rem;
  margin-right: 2px;
}
.about-text {
  font-size: 15px;
  line-height: 1.4;
}
.about-text a {
  color: rgb(95, 170, 210);
  text-decoration: none;
}
.about-text a:hover {
  text-decoration: underline;
}

/* LOCATION SECTION */
.location-section {
  margin-bottom: 1rem;
}

.location-section .event-detail {
  margin-bottom: 10px;
}

.map-preview img {
  width: 100%;
  border-radius: 8px;
  border: 1px solid #ddd;
}

/* FOOTER BUTTON */
.button-div {
  padding: 1rem;
  background-color: #fff;
  box-shadow: 0 -2px 5px rgba(0,0,0,0.1);
}
.buy-ticket-btn {
  width: 100%;
  padding: 1rem;
  font-size: 1.2rem;
  background-color: #f49300;
  color: #fff;
  border: none;
  border-radius: 8px;
  cursor: pointer;
}
.buy-ticket-btn:hover {
  background-color: #d97f00;
}
.buy-ticket-btn:focus {
  outline: 2px solid #ccc;
}

.hero-image {
  /* Force a 6:4 ratio */
  aspect-ratio: 6 / 4;
  width: 100%;
  overflow: hidden; /* Hide any overflow if the image doesn't match exactly */
  border-radius: 10px; /* optional, if you still want rounded corners */
}

.hero-image img {
  width: 100%;
  height: 100%;
  object-fit: cover; /* crops the image if needed */
  display: block;
}

.tags {
  margin-top: 30px;
  margin-left: 0;
  margin-bottom: 20px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}

.tags .tag {
    display: inline-block;
    margin-left: 10px;
}

.tags .tag div {
    display: inline-block;
    border-radius: 6px;
    background: white;
    padding: 3px 10px;
    font-size: 14px;
	text-decoration: none;
}

.tags .tag div:hover {
  text-decoration: none;
  outline: 2px solid lightgrey;
}

.event-type p {
  margin-bottom: 10px;
}

.directions a:hover {
  text-decoration: underline;
}

.map-preview a img:hover {
  /*outline: 2px solid rgb(95, 170, 210);*/
}

.recurring p {
  margin-bottom: 0;
  margin-top: 10px;
  font-size: 14px;
  font-weight: bold;
  display: flex;
  align-items: center;
  gap: 8px;
}

.calendar-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.calendar-icon svg {
  overflow: visible;
}

.dollar-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.dollar-container p {
  margin-bottom: 1px;
  margin-top: 1px;
  font-size: 14px;
  font-weight: bold;
  display: flex;
  align-items: center;
  gap: 8px;
  color: #f49300;
}

.calendar-svg {
  width: 16px;
  height: 16px;
  vertical-align: middle;
}

/* City Page CSS */

/* Basic resets */
/* Container to hold all event cards */
.event-list-view {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  width: 100%;
  margin: 0 auto;   /* center horizontally */
  background: #FCEED9;
}

/* Individual event card */
.event-list-view .event-card {
  display: flex;
  background-color: #ffffff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
  margin-bottom: 20px;
}

/* Image on the left (or top on small screens) */
.event-list-view .event-image {
  width: 120px;   /* adjust size as needed */
  height: 120px;
  object-fit: cover;
  margin: 10px;
  border-radius: 12px;
}

/* Details container */
.event-list-view .event-list-details {
  padding: 10px 10px 0 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  background: white;
}

.event-list-view .list-view {
  padding: 10px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background: #FCEED9;
}

/* Top row: title and price */
.event-list-view .event-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

/* Title styling */
.event-list-view .event-title {
  font-weight: bold;
  color: #333;
  text-transform: none;
  font-size: 16px;
  font-family: "Open Sans";
}

.event-list-view .event-title:hover {
  text-decoration: none;
}

.event-list-view .event-details a:hover {
  text-decoration: none;
}

/* Price styling */
.event-list-view .event-price {
  font-size: 1rem;
  color: #ff9900; /* or any accent color you like */
  font-weight: bold;
}

/* Location styling */
.event-list-view .event-location {
  font-size: 0.9rem;
  color: #666;
  margin-bottom: 0;
}

/* Date & time styling */
.event-list-view .event-datetime {
  font-size: 0.9rem;
  color: #666;
  margin-bottom: 0;
  margin-top: 3px;
}

.event-list-view .event-card .img-label {
    margin: 10px;
    margin-top: -34px;
	width: 120px;
    text-transform: uppercase;
    text-align: center;
    font-weight: bold;
    color: white;
    background: black;
    position: relative;
    font-size: 12px;
    z-index: 10;
    border-bottom-left-radius: 12px;
    border-bottom-right-radius: 12px;
}

.mini-card .img-label {
	color: white;
	background: black;
	text-transform: uppercase;
	position: relative;
    z-index: 10;
	margin-top: -10px;
    font-size: 12px;
	font-weight: bold;
	margin-bottom: 10px;
}

.event-list-view .event-card .img-label.social, .mini-card .img-label.social {
    background: #c12923;
}

.event-list-view .event-card .img-label.lesson, .mini-card .img-label.lesson {
    background: #588157;
}

.event-list-view .event-card .img-label.both, .mini-card .img-label.both {
    background: #467599;
}

.event-list-view .event-card .img-label.festival, .mini-card .img-label.festival {
    background: #f96e45;
}

.app-container {
  background: #FCEED9;
}

.event-list-details .recurring p {
  margin-top: 5px;
}


/* Container holding the tabs at the top */
.tabs-container {
  display: flex;
  width: 100%;
  margin: 0 auto;
  overflow: hidden;
  background: transparent;
}

.tabs-container a {
  width: inherit;
}

.tabs-container a:hover {
  text-decoration: none;
}

/* Individual tab */
.tab {
  flex: 1;                 /* Distribute space evenly for each tab */
  text-align: center;
  padding: 0.75rem 1rem;
  cursor: pointer;
  background-color: #F8DEB5;
  border-right: 1px solid #F4CE90;
  border-top: 1px solid #F4CE90;
  border-bottom: 1px solid #F4CE90;
  transition: background-color 0.2s ease-in-out;
  border-top-left-radius: 12px;
  border-top-right-radius: 12px;
  font-weight: 600;
}

/* Remove the right border on the last tab */
a.tab:last-child {
  border-right: none;
}

/* Hover effect */
.tab:hover {
  background-color: #FCEED9;
  text-decoration: none;
}

/* Active tab styling */
.tab.active {
  background-color: #FCEED9;
  font-weight: 800;
  border-bottom-color: transparent;
}

.title-container {
  background: #FDF7ED;
  padding-bottom: 30px;
}

.title-container h1 {
  font-size: 30px;
  text-transform: none;
  text-align: center;
  margin: 10px 0 15px;
  line-height: 38px;
}

.title-container p {
  padding: 0 15px;
  font-size: 15px;
  margin-bottom: 0;
}

.title-container p a {
	font-weight: 600;
	color: rgb(95, 170, 210);
}

.event-list-view h2 {
  margin-top: 40px;
  font-size: 28px;
}

.event-list-view h2:first-of-type {
  margin-top: 0;
}

.disclaimer {
	font-size: 13px;
	margin-bottom: 25px;
}

.breadcrumbs a, .breadcrumbs {
  font-size: 13px;
  margin-bottom: 10px;
}

.app-container.category .breadcrumbs {
  padding: 10px 1rem 0;
  background: #FDF7ED;
  margin-bottom: 0;
}

#related-events {
  margin-top: 35px;
  padding-bottom: 30px;
}

.view-all-events-link {
  text-transform: uppercase;
  font-weight: bold;
  border: 0;
}

.slider-item.mini-card {
  border: 0;
  height: 310px;
  width: 230px;
  border-radius: 10px;
  background: #f6f6f6;
  flex: none;
  padding: 0;
  padding-bottom: 15px;
}

.slider-item.mini-card img {
  height: 130px;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  margin-bottom: 5px;
  position: relative;
  z-index: 0;
}

.slider-item.mini-card:hover, .slider-item.mini-card a:hover, .slider-container a:hover {
  text-decoration: none;
}

.mini-container {
  padding: 0 10px;
}

.mini-container .mini-title {
    font-weight: bold;
    font-size: 16px;
	margin-bottom: 10px;
}

.mini-container .mini-date, .mini-container .mini-location {
	font-size: 14px;
}

.mini-container .mini-location {
  padding-bottom: 10px;
}

.vw-post-box--block-a .vw-post-box__thumbnail-wrapper {
  margin-bottom: 10px;
}

#homepage-title {
  background: #FDF7ED;
}

#homepage-title h1 {
  font-size: 30px;
  text-transform: none;
  text-align: center;
  margin: 10px 0 15px;
  line-height: 38px;
}

#homepage-title p {
  padding: 0 15px;
  font-size: 14px;
  margin-bottom: 10px;
}

#homepage-title p a {
	font-weight: 600;
	color: rgb(95, 170, 210);
}

#events-homepage h2 {
  text-transform: none;
  text-align: center;
  font-size: 25px;
}

#homepage-browse {
  background: #FDF7ED;
  padding: 0 20px 30px;
}

#homepage-browse h2 {
  margin-top: 20px;
  margin-bottom: 0;
}

.city-container {
  position: relative;
  display: inline-block;
  width: 100%;
  overflow: hidden;
  border-radius: 20px;
}

.city-container img {
  display: block;
  width: 100%;
  height: auto;
}

#homepage-festivals h2 {
  margin-bottom: 10px;
}

#homepage-festivals, #homepage-articles {
  padding: 20px;
}

#homepage-submit {
  padding: 20px 20px 25px;
}

#homepage-festivals {
  background: #FDF7ED;
}

#homepage-festivals .slider-item.mini-card {
  background: white;
}

.vw-main-post .slider-item.mini-card {
  background: #FDF7ED;
}

.vw-post-content .slider-item a {
  color: #666;
}

#homepage-festivals .slider-item.mini-card .mini-location p, .vw-main-post .slider-item.mini-card .mini-location p {
  text-align: center;
  color: #666;
}

#homepage-submit form {
  text-align: center;
}

#homepage-submit form button {
  margin-top: -5px;
}

#homepage-articles {
  background: #FDF7ED;;
}

#homepage-articles .vw-loop--border-bottom .vw-post-box, #homepage-festivals .slider, .upcoming-parent-events .slider, .vw-main-post .slider  {
  border: 0;
}

#homepage-articles h4 {
  text-align: center;
  font-size: 17px;
}

#homepage-articles .viewall, #homepage-festivals .viewall {
  margin: 30px 0;
  text-align: center;
}


/* ===== Editorial Review Box CSS ===== */
.editorial-review {
  border: 1px solid #ddd;
  border-radius: 6px;
  padding: 15px;
  background-color: #FDF7ED;
  font-size: 15px;
  margin-top: 30px;
  margin-bottom: -10px;
  width: 100%;
}

/* Container for heading + rating */
.review-header {
  display: flex;
  align-items: center;            /* Vertically centers items */
  justify-content: space-between; /* Puts heading on left, rating on right */
  margin-bottom: 1em;            /* Space below heading section */
}

/* Heading */
.review-heading {
  margin: 0;
  font-size: 1.25rem;
  font-weight: bold;
  color: #333;
}

/* Rating Section */
.review-rating {
  margin-bottom: 12px;
  font-size: 16px;
}

.review-rating i {
  color: #f5c518; /* Gold color for stars */
  margin-right: 2px;
}

.review-rating .rating-score {
  margin-left: 0.5em;
  font-weight: bold;
  color: #333;
}

.review-rating .rating-max {
  font-weight: bold;
  color: #333;
}

/* Review Text */
.review-text {
  margin-top: 0;
  line-height: 1.5;
  color: #555;
}

.num-reviews {
  display: none;
}

@font-face {
  font-display: swap;
  font-family: 'Dancing Script';
  font-style: normal;
  font-weight: 400;
  src: url('../woff2/dancing-script-v25-latin-regular.woff2') format('woff2'),
       url('../ttf/dancing-script-v25-latin-regular.ttf') format('truetype');
}

@font-face {
  font-display: swap;
  font-family: 'Dancing Script';
  font-style: normal;
  font-weight: 700;
  src: url('../woff2/dancing-script-v25-latin-700.woff2') format('woff2'),
       url('../ttf/dancing-script-v25-latin-700.ttf') format('truetype');
}

.review-signature {
  font-family: "Dancing Script", cursive;
  font-size: 1.8em;
  font-weight: 700;
  margin-top: 0; 
  display: block;
  text-align: right;
}

.resources .rsrc img {
	border:1px solid #d3d3d3; padding:3px;
	float: left;
	margin-right: 10px;
	width: 150px;
	height: 100px;
}

.resources .rsrc h4 {
	font-size: 18px;
}

.resources .rsrc {
	margin-bottom: 30px;
}

.resources .rsrc:after {
	clear: both;
}

@media (min-width: 992px) {
  .app-container {
    max-width: 1000px;
	margin-top: -48px;
  }
  
  .app-container .city-container {
    display: block;
    max-width: 465px;
    margin: 0 auto;
  }
  
  #events-homepage > img {
    height: 325px;
    width: 100%; /* (optional) fill container width */
    object-fit: cover; /* crop if the aspect ratio is different */
  }
  
  #events-homepage .intro-text {
    max-width: 900px;
    margin: 0 auto 30px;
    font-size: 17px;
  }
  
  .submit-event-invite {
    font-size: 17px;
  }
  
  .submit-event-invite p {
    max-width: 650px;
    margin: 0 auto 24px;
    text-align: center;
  }
  
  #events-homepage h1 {
    font-size: 40px;
	margin: 20px 0;
  }
  
  #events-homepage h2 {
    font-size: 32px;
  }
  
  #homepage-browse {
    padding-bottom: 30px;
  }
  
  #homepage-articles {
    padding-top: 30px;
  }
  
  .slider-item.mini-card img {
    height: 160px;
  }
  
  .slider-item.mini-card {
    width: 250px;
	height: 330px;
  }
  
  
  #homepage-articles h4 {
    font-size: 20px;
  }
}


/* =============================
   WRAPPER TO AVOID COLLISIONS
============================== */
#featured {
  width: 100%;
  margin: 0 auto;
  background: transparent;
}

/***************************************
 * FEATURED SLIDER SECTION
 ***************************************/
.featured-slider {
  position: relative;
  width: 100%;
  max-width: 1000px; /* Adjust as needed */
  margin: 0 auto;
  overflow: hidden;
}

/* Hide the radio inputs */
.featured-slider input {
  display: none;
}

.featured-slides {
  position: relative;
  width: 100%;
  height: 400px; /* Adjust slide height as needed */
}

.featured-slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transition: opacity 0.5s ease;
  /* Remove or comment out if you want absolute positioning for the text
     display: flex;
     justify-content: center;
     align-items: center;
  */
  color: #fff;
}

/* ABSOLUTE-POSITIONED TEXT OVERLAY */
.featured-slide .overlay-text {
  position: absolute;
  bottom: 20px;       /* Move overlay up/down as desired */
  left: 20px;         /* Move overlay left/right as desired */
  background-color: transparent; /* Solid white background for contrast */
  color: #000;            /* Black text */
  padding: 1rem;
  border-radius: 4px;
  max-width: 300px;       /* Prevent overlay from stretching too wide */
  text-align: left;       /* Left-align text */
}

/* Larger, bolder headings */
.featured-slide .overlay-text h2 {
  font-size: 2rem;
  font-weight: 900;
  margin-bottom: 0.5rem;
  padding: 1px 5px;
  background-color: rgba(255, 255, 255, 0.8);
}

/* Adjust paragraph spacing */
.featured-slide .overlay-text p {
  font-size: 1rem;
  margin: 0;
  background-color: rgba(255, 255, 255, 0.8);
  display: inline-block;
  padding: 0px 5px;
}

.featured-slide .overlay-text a {
  display: inline-block;
  background: #22201B;   /* Black background */
  color: #fff;        /* White text */
  text-decoration: none;
  border-radius: 10px;
  font-weight: bold;
  padding: 5px 14px;
  font-size: 16px;
  border: 1px solid #fff;
}

.featured-slide .overlay-text a:hover {
  background: #36342F;
}

/* Show the correct slide when radio is checked */
#featSlide1:checked ~ .featured-slides .featured-slide:nth-child(1),
#featSlide2:checked ~ .featured-slides .featured-slide:nth-child(2),
#featSlide3:checked ~ .featured-slides .featured-slide:nth-child(3) {
  opacity: 1;
  z-index: 1;
}

/* DOT NAVIGATION */
.featured-dots {
  position: absolute;
  bottom: 1rem;       /* adjust to place dots higher or lower */
  left: 50%;
  transform: translateX(-50%);
  margin-top: 0;      /* remove any top margin */
  display: flex;      /* so dots line up horizontally */
  gap: 0.5rem;        /* spacing between dots (optional) */
  z-index: 2;         /* place above slides */
}

.featured-dots label {
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #ccc;
  margin: 0 5px;
  cursor: pointer;
}

/* Highlight active dot */
#featSlide1:checked ~ .featured-dots label[for="featSlide1"],
#featSlide2:checked ~ .featured-dots label[for="featSlide2"],
#featSlide3:checked ~ .featured-dots label[for="featSlide3"] {
  background: #333;
}

/***************************************
 * ICON GRID SECTION (CSS Grid Layout)
 ***************************************/
.featured-icon-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  max-width: 1000px;
  margin: 2rem auto;
  padding: 0 1rem;
}

.featured-icon {
  text-align: center;
}

.featured-icon img {
  width: 90px;
  height: 90px;
  border-radius: 5px;
  margin-bottom: 0.5rem;
}

.featured-icon p {
  font-size: 14px;
  font-weight: bold;
}

.featured-icon a {
  text-decoration: none;
  color: inherit;
}

/* Responsive adjustments */
@media (max-width: 600px) {
  .featured-slides {
    height: 250px;
  }

  .featured-slide .overlay-text h2 {
    font-size: 1.5rem;
  }

  .featured-slide .overlay-text p {
    font-size: 0.9rem;
  }

  .featured-icon-grid {
    margin: 30px auto 24px;
    gap: 0;
  }

  .featured-icon {
    padding: 0 5px;
  }

  .featured-icon img {
    width: 65px;
    height: 65px;
  }

  .featured-icon p {
    font-size: 14px;
    font-weight: bold;
    padding: 0;
  }
}

/* Base styles for the dropdown */
.custom-dropdown .dropdown-menu,
.custom-dropdown .dropdown-submenu {
    list-style: none;
    margin: 0;
    padding: 0;
}

/* Positioning for the dropdown */
.custom-dropdown .dropdown-menu > li {
    position: relative;
}

/* Hide the submenu by default */
.custom-dropdown .dropdown-submenu {
    display: none;
    position: absolute;
	width: 250px;
	z-index: 15;
    top: 100%;
    left: 0;
    box-shadow: 0 4px 12px -4px rgba(0, 0, 0, 0.3);
	outline: 1px solid #dcdcdc;
    padding-bottom: 10px;
    background: white;
}

/* Display submenu when open via JavaScript */
.custom-dropdown .dropdown-submenu.open {
    display: block;
}

/* Optional: Show submenu on hover for desktop users */
.custom-dropdown .dropdown-item:hover > .dropdown-submenu {
    display: block;
}

/* Basic styling for links */
.custom-dropdown a {
    text-decoration: none;
    display: block;
    padding: 6px 12px;
    color: #333;
}

.custom-dropdown a:hover {
    background-color: #f0f0f0;
}

.dropdown-item {
  background: #fff;
  margin: 0;
}

.dropdown-submenu .dropdown-item {
  padding-left: 10px;
}

.dropdown-item.parent {
  width: 250px;
  margin-left: 15px;
  outline: 1px solid #dcdcdc;
  margin-bottom: 5px;
}

.navheader {
  font-weight: bold;
  margin-top: 20px;
}

#event_start_time.form-field__input, #event_end_time.form-field__input {
  margin: 0;
}

#event_start_time, #event_end_time {
  font-size: 1.05rem;
  line-height: 1.4;
  color: black;
}

input.form-control {
  border: 1px solid #ccc;
  border-radius: 4px;
  margin-left: 10px;
}

/* Container for the sub-navigation */
.list-sub-tabs {
  display: flex;
  justify-content: left; /* center the sub-tabs */
  margin: -5px 0 25px;
  padding: 5px 0;
}

/* Basic styling for each sub-tab link */
.list-sub-tabs .sub-tab {
  display: inline-block;
  padding: 6px 20px;
  margin: 0 15px 0 0;
  text-decoration: none;
  color: #555;
  font-size: 14px;
  border-radius: 25px;      /* creates a pill shape */
  border: 1px solid #ddd;
  transition: background-color 0.2s, color 0.2s, border-color 0.2s;
  background-color: #f7f7f7;
}

/* Hover state */
.list-sub-tabs .sub-tab:hover {
  background-color: white;
  border-color: #ddd;
}

/* Active state styling */
.list-sub-tabs .sub-tab.active {
  background-color: white;  /* your brand's highlight color */
  color: #333;
  border: 2px solid grey;
  font-weight: bold;
}



/* Calendar CSS */
.calendar-navigation {
    text-align: center;
    margin-bottom: 1em;
}
.calendar-navigation a {
    padding: 0.5em;
    text-decoration: none;
    font-size: 1.2em;
}
.calendar-month {
    font-weight: bold;
    margin: 0 1em;
}

.calendar-filters {
    text-align: center;
    margin-bottom: 1em;
}
.calendar-filters a {
    margin: 0 0.5em;
    padding: 0.5em 1em;
    text-decoration: none;
    border-radius: 20px;
	color: white;
	font-size: 15px;
}
.calendar-filters a.all {
  background: #467599;
}
.calendar-filters a.all:hover {
  background: #5E8BB4;
}
.calendar-filters a.lessons {
  background: #588157;
}
.calendar-filters a.lessons:hover {
  background: #6BA36C;
}
.calendar-filters a.socials {
  background: #c12923;
}
.calendar-filters a.socials:hover {
  background: #D14E4B;
}
.calendar-filters a.allevents, .calendar-filters a.festival {
  background: #f96e45;
}
.calendar-filters a.active {
    border: 2px solid black;
	font-weight: 600;
}

.calendar-table {
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
	margin-top: 30px;
}
.calendar-table th,
.calendar-table td {
    border: 1px solid #ddd;
    width: 14.28%;
    vertical-align: top;
    height: 100px;
    position: relative;
    padding: 5px;
}
.day-number {
    font-size: 0.9em;
    font-weight: bold;
    margin-bottom: 5px;
}

.events-in-day {
    list-style: none;
    padding: 0;
    margin: 0;
}

.event-marker {
    margin-bottom: 4px;
	border-radius: 5px;
}

/* Adjust anchor styling so that the entire marker is clickable */
.event-marker a {
    text-decoration: none;
    display: flex;
    flex-direction: column;  /* Stack icon & title vertically */
    align-items: center;     /* Center the flex items horizontally */
    text-align: center;      /* Center text within the anchor */
    color: inherit;
}

/* The icon for events */
.event-icon {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    margin-right: 4px;
    flex-shrink: 0;
}

/* Allow the event title to wrap */
.event-marker .event-title {
    font-size: 0.8em;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
	color: white;
	margin: 0;
	padding: 4px 8px;
	line-height: 20px;
}

/* Updated background and white text for event markers */
.event-marker.lessons {
    background-color: #588157;
    color: #fff;
}
.event-marker.lessons:hover {
    background-color: #6BA36C;
    color: #fff;
}

.event-marker.socials {
    background-color: #c12923;
    color: #fff;
}
.event-marker.socials:hover {
    background-color: #D14E4B;
    color: #fff;
}

.event-marker.both {
    background-color: #467599;
    color: #fff;
}
.event-marker.both:hover {
    background-color: #5E8BB4;
    color: #fff;
}
.event-marker.allevents, .event-marker.festival {
  background: #f96e45;
}

/* Ensure anchor elements in event markers have white text */
.event-marker.lessons a,
.event-marker.socials a,
.event-marker.both a {
    color: #fff;
}

.calendar-table th {
    height: 30px;          /* Adjust this value as needed */
    padding: 3px;          /* Reduce padding to further limit height */
    vertical-align: middle; /* Center the header text vertically */
}

#calendar-grid {
  width: 100%;
  overflow-x: auto; /* let the user scroll horizontally if needed */
  margin: 0 auto;
}

@media (max-width: 768px) {
  /* Let the table shrink and scroll if needed */
  .calendar-table {
    width: auto;
    table-layout: auto;
  }
  .calendar-table th,
  .calendar-table td {
    min-width: 110px; /* ensures columns can’t get too narrow */
  }
  .event-title {
    font-size: 0.75em; /* reduce text size */
  }
}


.other-month {
  background-color: #FCEED9;
  color: #888;
}

.other-month .event-marker {
  opacity: 0.5;
}


/* ================================
   Sticky calendar header
   ================================ */

/*.calendar-table {
  border-collapse: separate;
  border-spacing: 0;
}

#calendar-grid {
  overflow-x: auto;
  overflow-y: visible !important;
}

#calendar-grid,
.event-details,
.app-container {
  transform: none !important;
}

.calendar-table thead th {
  position: sticky !important;
  top: 0;                     
  background-color: #fff;     
  z-index: 1000;              
  box-shadow: 0 2px 4px -1px rgba(0,0,0,0.2);
}
*/

#homepage-browse {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;              
}

#homepage-browse > h2 {
  flex: 0 0 100%;
}

.city-container-container {
  flex: 0 0 100%;
}

.city-container-container.mini {
  flex: 0 0 calc(50% - 1rem);
  max-width: calc(50% - 1rem);
}

.city-container-container.mobile-mini {
  flex: 0 0 calc(50% - 1rem);
  max-width: calc(50% - 1rem);
}

.city-label {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  color: #fff;
  text-align: center;
  font-size: 22px;
  font-weight: bold;
  text-shadow: 1px 1px 2px rgba(0,0,0,0.8);
  padding: 10px;
  box-sizing: border-box;
  pointer-events: none;
  border-bottom-left-radius: 20px;
  border-bottom-right-radius: 20px;
}

.city-label.sm {
  font-size: 21px;
}

/* 2) At desktop sizes, switch to side‑by‑side */
@media (min-width: 768px) {
  #homepage-browse {
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
    align-items: flex-start;
    justify-content: flex-start;   /* keeps leftover space on the right */
    padding: 0 20px 30px;
  }

  /* default two-up layout */
  .city-container-container, .city-container-container.mobile-mini {
    flex: 1 1 calc(50% - 1rem);
    margin-bottom: 0;
  }

  /* four-up “mini” cards – never grow wider than a quarter */
  .city-container-container.mini {
    flex: 0 1 calc(24% - 1rem);   /* grow:0, shrink:1, basis:25% */
    max-width: calc(24% - 1rem);  /* optional: caps width in older browsers */
    margin-bottom: 0;
  }

  /* three-up cards */
  .city-container-container.tres {
    flex: 0 1 calc(32% - 1rem);
    max-width: calc(32% - 1rem);
    margin-bottom: 0;
  }

  /* make the section heading span the full row */
  #homepage-browse > h2 {
    flex: 0 0 100%;
    margin-bottom: 0;
  }
  
  .city-label {
    font-size: 24px;
  }
  
  .city-label.sm {
    font-size: 24px;
  }
}


.tags .tag a {
    display: inline-block;
    border-radius: 6px;
    background: white;
    padding: 3px 10px;
    font-size: 14px;
	text-decoration: none;
}

.tags .tag a:hover {
  text-decoration: none;
  outline: 2px solid lightgrey;
}

.city-tags {
  margin-top: 15px;
}

.dance-teams h2, .djs-list h2 {
  text-align: center;
  margin-top: 20px;
}

.instructor-city-group {
  margin-bottom: 40px;
}

/* NEW: force each .city-container to a set aspect-ratio */
.city-container {
  position: relative;
  width: 100%;
  /* adjust this to whatever ratio you like, e.g. 1/1 for square, 16/9, 4/3, etc.: */
  aspect-ratio: 3 / 2;
  overflow: hidden;
  flex: 1 1 calc(50% - 1rem);
}

/* fill the container and crop/scale the image */
.city-container img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* remove the old width/height rules */
}

.artist-profile h2, .artist-bio h2 {
  margin-top: 25px;
}

.artist-profile ul {
  margin: 0;
}

.artist-profile ul li {
  list-style: none;
  margin: 0; 
  padding: 0; 
}

.view-active-link, .view-inactive-link {
  margin-left: 20px;
  margin-bottom: 0;
}

@media (max-width: 600px) {
  .view-active-link, .view-inactive-link {
  	margin: 0;
  	text-align: center;
  }
}

h1.page-title {
  margin-bottom: 20px;
}

/* 6) The sliding mobile menu panel */
.vw-mobile-nav {
  display: none;
  max-height: 0;
  overflow: hidden;
  background: #333;
  transition: max-height 0.3s ease;
}
/* when Presso’s JS toggles “.open” it slides down */
.vw-mobile-nav.open {
  max-height: 500px; /* big enough to show your menu items */
}

/* 7) Style the UL and LIs inside */
.vw-mobile-nav .vw-mobile-menu-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.vw-mobile-nav .vw-mobile-menu-list li {
  border-bottom: 1px solid #eee;
  margin: 0;
}
.vw-mobile-nav .vw-mobile-menu-list li a {
  display: block;
  padding: 0.75rem 1rem;
  color: white;
  text-decoration: none;
  font-weight: 600;
}
.vw-mobile-nav .vw-mobile-menu-list li a:hover {
  background: #e57a44;
}

/* in your child theme’s style.css */
.vw-header__mobile-bar .vw-header__mobile-logo img {
  filter: brightness(0) invert(1);
}


/* if you find 'sticky' isn’t supported or doesn’t behave, fall back to fixed */
 .vw-header__mobile-bar {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 10000;
  background: #333;
} 

/* ——————— stick the mobile BAR ——————— */
.vw-header__mobile-bar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 56px;
  z-index: 1000;
  background: #333;
}

.vw-mobile-nav {
  position: fixed;
  top: 56px;
  left: 0;
  right: 0;
  bottom: 0;
  background: #333;
  overflow-y: auto;
  transform: translateX(-100%);
  transition: transform 0.3s ease-in-out;
  z-index: 999;
}

.vw-mobile-nav.open {
  transform: translateX(0);
}

/* optional: make sure your toggle button visually reflects “open” state */
.vw-mobile-toggle.is-open {
  /* e.g. change icon color, rotate, whatever */
}

.add-event-btn {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  text-decoration: none;
}

.add-event-icon {
  transition: background 0.15s ease, transform 0.15s ease;
}
.add-event-icon:hover {
  background: rgba(255,255,255,0.1);
  transform: scale(1.05);
  cursor: pointer;
}

.vw-mobile-nav {
  display: none;
}

.vw-mobile-nav.open {
  display: block;
}

.vw-mobile-nav {
  display: none !important;
}
.vw-mobile-nav.open {
  display: block !important;
}

.vw-header__mobile-bar .add-event-icon:hover {
  background: darkcyan;
}

/* hide the native menu at mobile widths */
@media (max-width: 1024px) {
  .vw-header__main-menu { display: none !important; }

  /* mobile bar */
  .vw-header__mobile-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: fixed; top:0; left:0; right:0;
    height:56px; padding:0 1rem;
    background:#333; z-index:9999;
  }
  .vw-mobile-toggle {
    display: inline-flex;
    background:transparent;
    border:none;
    padding:.5rem;
    cursor:pointer;
  }
  .vw-header__mobile-logo img {
    height:32px;
    filter: brightness(0) invert(1);
  }
  .vw-header__mobile-add { /* … your add-button styles … */ }

  /* mobile nav default hidden */
  .vw-mobile-nav {
    max-height: 0;
    overflow: hidden;
    transition: max-height .3s ease;
    background: #333;
  }

  /* when checkbox is checked, expand */
  .vw-mobile-toggle-checkbox:checked ~ .vw-mobile-nav {
    max-height: 80vh;
  }
}

/* on desktop, hide custom mobile elements */
@media (min-width: 1025px) {
  .vw-header__mobile-bar,
  .vw-mobile-nav {
    display: none !important;
  }
}

/* Target your new menu item */
#menu-main-menu .add-event-menu-item .add-event-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 15px;
  height: 15px;
  border: 2px solid #fff;
  border-radius: 5px;
  font-size: 16px;            
  line-height: 1;
  color: #fff;
  transition: background 0.15s ease, transform 0.15s ease;
}
#menu-main-menu .add-event-menu-item .add-event-icon:hover {
  background: rgba(255,255,255,0.1);
  transform: scale(1.05);
  cursor: pointer;
}

#menu-main-menu .add-event-menu-item .add-event-icon,
#menu-main-menu .add-event-menu-item .add-event-label {
  vertical-align: baseline;
}


/* target your menu item */
#menu-main-menu .add-event-menu-item a {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .25rem .75rem;
  border: 1px solid rgba(255,255,255,0.5);
  border-radius: 4px;
  background: rgba(255,255,255,0.05);
  transition: 
    background 0.2s ease,
    box-shadow 0.2s ease,
    border-color 0.2s ease;
}

/* slightly darker on hover/focus */
#menu-main-menu .add-event-menu-item a:hover,
#menu-main-menu .add-event-menu-item a:focus {
  background: rgba(255,255,255,0.15);
  border-color: rgba(255,255,255,0.8);
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
}

#menu-main-menu .add-menu:hover {
  background-color: transparent;
}

#menu-main-menu .add-menu a {
  margin-left: 20px;
}

#menu-main-menu .add-menu a:hover {
  background: #3FACD6;
}



.vw-header__main-menu {
    background: #333333;
}

/* 1) Make the UL a flex container, fixed max-width so it never auto-sizes */
/*    (removes any jumping when the page first paints) */
.kesh-menu-main .vw-menu {
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 1025px;
  margin: 0 auto;
  padding: 0;
  height: 49px;
  list-style: none;
}

/* 2) Logo on the far left */
#menu-logo {
  filter: invert(1);
  width: 200px;
  height: 32px;
}

#menu-logo img {
  width: 200px;
  height: 32px
}

/* 3) “Add Event” on the far right */
.add-event-menu-item {
  margin-left: auto;    /* pushes itself to the right, leaving the middle items centered */
}

/* 4) Style your links in the middle however you like: */
.kesh-menu-main .main-menu-link {
  padding: 14px 16px;
  color: #fff;
  font-family: Oswald, sans-serif;
  text-transform: uppercase;
  font-size: 16px;
  text-decoration: none;
}
.kesh-menu-main .main-menu-link:hover {
  text-decoration: none;
}

/* 5) Tweak your Add-Event icon + label */
.add-event-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border: 2px solid #fff;
  border-radius: 6px;
  font-size: 16px;
  color: #fff;
}
.add-event-label {
  margin-left: 0.5rem;
  color: #fff;
  font-size: 16px;
}

.fa-youtube:before {
    content: "\f167";
}
.fa-instagram:before {
    content: "\f16d";
}
.fa-facebook-f:before, .fa-facebook:before {
    content: "\f09a";
}
.fa-pinterest:before {
    content: "\f0d2";
}

@media (max-width: 768px) {
	.title-container .navheader {
		text-align: center;
		font-size: 17px;
		margin-bottom: 5px;
	}

    .custom-dropdown,
    .custom-dropdown .dropdown-menu {
        width: 100%;
        margin: 0 auto;
    }

    .custom-dropdown .dropdown-submenu {
        position: relative;
        top: auto;
        left: auto;
        width: 80%;
        margin: 0 auto;
        box-shadow: none;
        outline: none;
    }

    .dropdown-item.parent {
        width: 80%;
        margin: 0 auto 5px;
    }
}

#menu-footer, #menu-bottom-menu-japanese, #menu-bottom-menu-espanol, #menu-bottom-menu-deutsch {
  list-style: none;
  text-align: initial;
  display: flex;
  flex-wrap: wrap;
  margin: 0;
}

#menu-footer li, #menu-bottom-menu-japanese li, #menu-bottom-menu-espanol li, #menu-bottom-menu-deutsch li {
  margin: 0;
  margin-right: 7px;
}

@media (max-width: 991px) {
  #menu-footer, #menu-bottom-menu-japanese, #menu-bottom-menu-espanol, #menu-bottom-menu-deutsch {
    justify-content: center;
    margin-top: 12px;
  }
}

/* Only on single event pages, and only on mobile */
@media (max-width: 768px) {
  body.single-event .breadcrumbs [itemprop="itemListElement"]:last-child {
    display: none;
  }
  body.single-event .breadcrumbs span:last-child::before {
    content: none;
  }
  body.single-event .breadcrumbs .breadcrumb-separator:nth-last-child(2) {
    display: none;
  }
}

.suggest-edit {
	text-align: right;
	margin-top: -20px;
	margin-bottom: 4px;
	font-size: 14px;
}

.suggest-link {
	display:inline-flex;
	align-items:center; 
	/*color: #374151;*/
	color: #b65300;
	text-decoration:none;
	padding-top: 4px;
	padding-bottom:4px;
	padding-right: 1px;
}

.suggest-link:hover {
  text-decoration: none;
  color: rgb(95, 170, 210);
}

.suggest-icon{
	margin-right:5px;
	margin-top: 1px;
}

/* simple form styling */
.suggest-form  { margin-top:8px; background:#fafafa; padding:12px 16px; border:1px solid #e5e7eb; border-radius:8px; font-size:13px; margin-bottom: 15px; }

.suggest-q     { margin:0 0 6px; font-weight:600; font-size:14px; }
.suggest-opt   { display:block; margin-bottom:4px; }
@media (min-width: 768px) {
	.suggest-q   { font-size:16px; }
	.suggest-opt { font-size:14px; }
}

.suggest-text  { width:100%; border:1px solid #d1d5db; border-radius:6px; padding:6px 8px; margin:6px 0 10px; font-size:13px; }
.suggest-submit{ background:#3facd6; color:#fff; border:none; border-radius:9999px; padding:6px 16px; font-size:13px; cursor:pointer; }
.suggest-submit:hover{ background:#339ac2; }
.suggest-thanks{ color:#16a34a; font-size:13px; margin-top:8px; }

.suggest-form input,
	.suggest-form textarea {
		font-size:16px;
	}
	
.event-details .vw-comments-area h3 {
  margin-top: 30px;
}

.vw-comment__meta .avatar {
  border-radius: 5px;
}

.vw-post-meta .vw-bar__placeholder .published {
  margin:0;
  margin-right: 3px;
  margin-left: 0.5em;
}

.page-header a {
  font-weight: bold;
  color: rgb(95, 170, 210);
}

aside.tips, aside.sidenote {
  width: 100%;
  margin: 0 0 1em 1em;
  padding: 0.75em;
  font-style: italic;
  background-color: #f9f9f9;
  border-left: 4px solid #ccc;
  color: #555;
  line-height: 23px;
}

aside.tips p, aside.sidenote p {
  margin: 0.5em 0;
}

.vw-main-post .vw-post-media {
    margin: 0 0 10px 0;
}

article section h2, article section h2:first-child {
  margin-top: 48px;
}

/**
 * === Festival / Event List Cards ===
 */

/* 1) Make the <article> itself a flex container */
article.event-card {
  display: flex;
  background-color: #fff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  margin-bottom: 20px;
}

/* 2) Drop default <a> styling and make it fill the article */
article.event-card > a {
  display: flex;
  width: 100%;
  color: inherit;
  text-decoration: none;
}

/* 3) Image wrapper + image */
.event-image-wrap {
  flex-shrink: 0;           /* don’t let it shrink */
  position: relative;
}
.event-image-wrap img.event-image {
  display: block;
  width: 120px;             /* match your old size */
  height: 120px;
  object-fit: cover;
  border-radius: 12px;
}

/* 4) Label on top of the image */
.event-image-wrap .img-label {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  text-align: center;
  padding: 4px 0;
  font-size: 12px;
  font-weight: bold;
  text-transform: uppercase;
  color: #fff;
  background: rgba(0,0,0,0.7);
  border-bottom-left-radius: 12px;
  border-bottom-right-radius: 12px;
}

/* 5) Details area next to the image */
.event-list-details {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding: 10px;
  background: #FCEED9;      /* or white, whichever you prefer */
}

/* 6) Title and meta inside */
.event-list-details .event-title {
  font-weight: bold;
  font-size: 16px;
  color: #333;
  text-transform: none;
  margin: 0;
}
.event-list-details .recurring,
.event-list-details .event-datetime {
  display: flex;
  align-items: flex-start;
  font-size: 14px;
  color: #666;
}
.event-list-details .recurring i,
.event-list-details .event-datetime i {
/*  margin-right: 8px;*/
}

/* 7) Date line-break kept but no extra underlines */
.event-list-details time {
  display: block;
  font-weight: 700;
  margin-bottom: 4px;
}

/* 8) Hover state to restore pointer cursor */
article.event-card > a:hover {
  text-decoration: none;
  cursor: pointer;
}

/* 9) Responsive tweak: stack on narrow screens */
@media (max-width: 600px) {
  article.event-card {
    flex-direction: column;
  }
  .event-image-wrap,
  .event-image-wrap img.event-image {
    width: 100%;
    height: auto;
    margin: 0;
    border-radius: 0;
  }
  .event-list-details {
    padding: 8px;
  }
}

@media (max-width: 600px) {
  /* 1) Stack image + details vertically */
  article.event-card > a {
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }

  /* 2) Make the image fill the top, clipped by the article’s radius */
  .event-image-wrap {
    width: 100%;
    margin: 0;               /* no side-margin */
    overflow: hidden;        /* ensure rounded corners clip it */
  }
  .event-image-wrap img.event-image {
    width: 100%;
    height: auto;
    object-fit: cover;
    display: block;
  }

  /* 3) Restore a touch more padding on the details */
  .event-list-details {
    width: 100%;
    padding: 12px;           /* a bit more breathing room */
    background: #FCEED9;     /* or white, to taste */
  }

  /* 4) Tweak the icon/text rows for vertical spacing */
  .event-list-details .recurring,
  .event-list-details .event-datetime {
    display: flex;
    align-items: center;
    gap: 6px;                /* consistent gutter between icon + text */
    margin-bottom: 0;      /* space between rows */
  }

  /* 5) Date stays block-level, time below it */
  .event-list-details time {
    display: block;
    margin-bottom: 0;
  }
}

/* ==========================================================================
   Restore the original thumbnail layout on mobile
   ========================================================================== */
@media (max-width: 600px) {
  /* 1) Force the card back into row mode */
  article.event-card > a {
    flex-direction: row;
  }

  /* 2) Put the 120px thumbnail back */
  .event-image-wrap {
    flex-shrink: 0;
    width: 120px;
    margin: 10px;
    overflow: visible;
  }
  .event-image-wrap img.event-image {
    width: 120px;
    height: 120px;
    object-fit: cover;
    border-radius: 12px;
  }

  /* 3) Reset your details padding */
  .event-list-details {
    padding: 10px;
  }
  
  .event-list-view .event-card .img-label {
    margin: 0;
	margin-top: -32px;
  }
  
  .event-list-details .event-datetime {
    align-items: flex-start;
  }
  
  .vwspc-section-supertitle.vw-super-title {
    font-size: 15px;
  }
  
  small {
    font-size: 14px;
  }
}

figcaption {
  text-align: center;
}

.event-details.calendar-festivals {
  background: #FFF7EF;
}

#homepage-browse .viewall {
  margin: 0 auto;
  text-align: center;
}

.browse-page h2 {
  background: #FDF7ED;
  margin: 0;
  padding: 20px 0;
}

#homepage-browse h2 {
  padding: 0;
}

.faq-section {
  padding: 40px 15px 10px;
}

.faq-section a {
  text-decoration: underline;
}

.faq-section h2, .faq-section h3 {
  text-transform: none;
}

.nearby-cities {
  padding: 0 15px;
}

  #load-more-events {
    font-size: 16px;
  }
  
  /* ---- Jump-to pills ---- */
.jump-nav{margin:1rem 0 2rem;display:flex;flex-wrap:wrap;gap:.5rem}
.jump-pill{padding:.35rem .75rem;border:1px solid #ddd;border-radius:20px;font-size:.875rem;text-decoration:none}
.jump-pill:hover{background:#f6f6f6}

/* Desktop (≥1025px) – show first 8 */
.jump-nav .jump-pill:nth-child(n+9){display:none}

/* Tablet/phone (≤1024px) – show first 5 */
@media (max-width:1024px){
  .jump-nav .jump-pill:nth-child(n+6){display:none}
}

/* Small-pill styling (<992px) */
@media (max-width:992px){
  .jump-nav{gap:.25rem;margin:.5rem 0 1rem}
  .jump-pill{padding:.25rem .5rem;font-size:.75rem}
}

/* Horizontal scroll fallback for very narrow screens */
@media (max-width:480px){
  .jump-nav{overflow-x:auto;white-space:nowrap}
}

/* Offset headings for sticky nav (adjust value) */
h2[id] {
    scroll-margin-top: 50px;
}

.svcb-incontent_mid .svcb-img, .svcb-incontent_bottom .svcb-img {
  width: 60%;
  border: 1px solid darkslategrey;
}

@media (max-width:992px){
  .svcb-incontent_mid .svcb-img, .svcb-incontent_bottom .svcb-img {
    width: 1000%;
  }
}

/* ============================================================
   GUIDES HOMEPAGE (Browse) — paste into style.css
   Scope to: #events-homepage and #homepage-browse.archive-event
   ============================================================ */

/* ---------- H2 link + arrow ---------- */
#events-homepage h2.section-heading {
  margin-bottom: 10px;
  font-size: 28px;          /* can be overridden later for this page */
  text-align: left;

  /* Arrow sizing:
     - Arrow will be (1em - --arrow-delta)
     - Increase to 3px or 4px if you want it smaller vs the text */
  --arrow-delta: 5px;
  --arrow-nudge: 0.06em;    /* fine‑tune baseline alignment */
}

#events-homepage h2 .heading-link {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  color: inherit;
  text-decoration: none;
}

#events-homepage h2 .heading-link:hover,
#events-homepage h2 .heading-link:focus-visible {
  text-decoration: underline;
}

#events-homepage h2 .heading-arrow {
  display: inline-flex;
  line-height: 0;
}

#events-homepage h2 .heading-arrow svg {
  display: block;
  /* Arrow a couple points smaller than the H2 */
  width: clamp(10px, calc(1em - var(--arrow-delta)), 1em);
  height: clamp(10px, calc(1em - var(--arrow-delta)), 1em);
  fill: none;
  stroke: currentColor;
  stroke-width: 5.33333;
  stroke-linecap: round;
  stroke-linejoin: round;
  overflow: visible;
  transform: translateY(var(--arrow-nudge));
  transition: transform .15s ease, opacity .15s ease;
}

#events-homepage h2 .heading-link:hover .heading-arrow svg,
#events-homepage h2 .heading-link:focus-visible .heading-arrow svg {
  transform: translate(3px, var(--arrow-nudge));
}

@media (prefers-reduced-motion: reduce) {
  #events-homepage h2 .heading-arrow svg { transition: none; }
}

/* ============================================================
   BROWSE CAROUSELS
   Scope everything below to the Browse section on this page only
   ============================================================ */

#homepage-browse.archive-event {
  gap: 0;
  padding-bottom: 0;
}

#homepage-browse.archive-event h2 {
  margin-bottom: 10px;
}

/* Shared slider basics */
#homepage-browse.archive-event .slider {
  max-width: 100%;
  padding-bottom: 8px;
  border-bottom: 0;
}

#homepage-browse.archive-event .slider-container {
  gap: 0;
}

#homepage-browse.archive-event .slider-container--snap {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}

/* ---------- Cities carousel (desktop/tablet defaults) ---------- */
#homepage-browse.archive-event .slider-item {
  width: 250px;
  flex: 0 0 auto;
  margin: 0 10px;
  scroll-snap-align: start;
}

#homepage-browse.archive-event .slider-item img {
  width: 100%;
  height: 174px;
  object-fit: cover;
  border-radius: 8px;
}

#homepage-browse.archive-event .slider-item p {
  margin-top: 8px;
  font-weight: 600;
  text-align: center;
}

#homepage-browse.archive-event .slider-item small {
  font-weight: 400;
  color: #777;
}

/* ---------- Countries carousel (desktop/tablet defaults) ---------- */
#homepage-browse.archive-event .country-card {
  display: block;
  width: 250px;
  height: 174px;
  flex: 0 0 auto;
  margin: 0 10px;
  scroll-snap-align: start;

  /* background image */
  background-size: cover;
  background-position: center;

  /* rounded + overlay clipping */
  position: relative;
  overflow: hidden;
  border-radius: 20px;
  text-decoration: none;
}

/* Bottom bar label style (matches your original) */
#homepage-browse.archive-event .country-label {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;

  background-color: rgba(0, 0, 0, 0.5);
  color: #fff;

  text-align: center;
  font-size: 20px;
  font-weight: bold;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8);

  padding: 10px;
  box-sizing: border-box;
  pointer-events: none;

  border-bottom-left-radius: 20px;
  border-bottom-right-radius: 20px;
}

#homepage-browse.archive-event .countries-heading {
  margin: 18px 0 8px;
}

/* ---------- Mobile: make BOTH city & country cards square (200px) ---------- */
@media (max-width: 640px) {
  #homepage-browse.archive-event { --card-size: 200px; }

  /* City cards → 200px squares */
  #homepage-browse.archive-event .slider-item {
    width: var(--card-size);
  }
  #homepage-browse.archive-event .slider-item img {
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;   /* perfect square */
    object-fit: cover;
    border-radius: 8px;
  }

  /* Country cards → 200px squares */
  #homepage-browse.archive-event .country-card {
    width: var(--card-size);
    height: auto;
    aspect-ratio: 1 / 1;   /* perfect square */
    border-radius: 20px;
  }

  /* Slightly smaller label to fit 200px squares */
  #homepage-browse.archive-event .country-label {
    font-size: 18px;
    padding: 9px 10px;
  }
}

/* Fallback for older browsers without aspect-ratio support */
@supports not (aspect-ratio: 1 / 1) {
  @media (max-width: 640px) {
    /* City images: explicit square sizing */
    #homepage-browse.archive-event .slider-item { width: 200px; }
    #homepage-browse.archive-event .slider-item img {
      width: 200px;
      height: 200px;
    }

    /* Country cards: explicit square sizing */
    #homepage-browse.archive-event .country-card {
      width: 200px;
      height: 200px;
    }
  }
}

/* ---------- Other headings you had ---------- */
#homepage-articles h2 { margin-bottom: 10px; }

/* Keep festivals + browse headings consistent (overrides size above) */
#homepage-festivals h2,
#homepage-browse.archive-event h2 {
  font-size: 25px;  /* arrow will be 25px - --arrow-delta */
  text-align: left;
}

#homepage-submit h2 {
  font-size: 30px;
}



/* ------------------------------------------------------------------
   HERO
------------------------------------------------------------------*/

#guides-hero{position:relative}
#guides-hero img{width:100%;height:400px;object-fit:cover;display:block}

#guides-hero .hero-copy{
  position:absolute;inset:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;color:#fff;text-shadow:none;z-index:2
}

#guides-hero::after{
  content:"";position:absolute;inset:0;
  background:rgba(0,0,0,.4);mix-blend-mode:multiply;pointer-events:none;z-index:1
}

#guides-hero .hero-copy h2{font-size:48px;margin:0 0 24px;color:#fff}

#sv-search-form, #sv-site-search-form{
  position:relative;width:min(560px,90%);background:#fff;
  border-radius:50px;display:flex;align-items:center;overflow:visible;
  box-shadow:0 4px 12px rgba(0,0,0,.15);z-index:20
}

#sv-search-input, #sv-site-search-input {flex:1;border:0;padding:16px 20px;font-size:18px;outline:none;background:#fff;}
#sv-search-input::placeholder,#sv-search-input::-moz-placeholder,
#sv-search-input::-webkit-input-placeholder,#sv-site-search-input::placeholder,#sv-site-search-input::-moz-placeholder,
#sv-site-search-input::-webkit-input-placeholder{color:#444;opacity:1}

.search-btn{
  width:64px;aspect-ratio:1;border:0;background:#25A9A1;cursor:pointer;
  display:grid;place-items:center;border-top-right-radius:30px;border-bottom-right-radius:30px;
}
.search-btn svg{width:28px;height:28px;stroke:#fff;stroke-linecap:round;stroke-linejoin:round;margin-left:-10px;}

#sv-ac{
  position:absolute;top:100%;left:0;margin-top:4px;width:100%;
  background:#fff;border-radius:12px;box-shadow:0 4px 24px rgba(0,0,0,.15);
  max-height:60vh;overflow:auto;font-size:16px;line-height:1.35;display:none;z-index:50;padding:8px 0
}
#sv-ac.open{display:block}
#sv-ac h4{margin:6px 16px 4px;font-size:11px;font-weight:600;letter-spacing:.06em;color:#666}
#sv-ac ul{list-style:none;margin:0;padding:0}
#sv-ac li a{display:flex;align-items:center;gap:10px;padding:8px 16px;color:#333;text-decoration:none}
#sv-ac li a:hover{background:#f5f5f5}
#sv-ac small{margin-left:0;font-size:12px;color:#666;text-align:left;}

.ac-ico{width:18px;height:18px;flex:0 0 18px;background-size:contain;background-repeat:no-repeat}
.ac-ico.pin{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox=\'0 0 24 24\' fill=\'%2300a8a3\'><path d="M12 2a7 7 0 0 0-7 7c0 3.86 5 10.18 6.23 11.62a1 1 0 0 0 1.54 0C14 19.18 19 12.86 19 9a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 14.5 9 2.5 2.5 0 0 1 12 11.5z"/></svg>')}
.ac-ico.cal{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox=\'0 0 24 24\' fill=\'%2300a8a3\'><path d="M19 4h-1V2h-2v2H8V2H6v2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2zm0 16H5V9h14z"/></svg>')}

.nearby-link{margin-top:20px;font-size:18px;font-weight:700;color:#fff;text-decoration:underline}

.event-text{display:flex;flex-direction:column;gap:2px}
.event-text .title{font-weight:500; text-align: left;}
.event-date{font-size:12px;color:#666}

#sv-ac{top:calc(100% - 8px)}

#sv-search-form, #sv-site-search-form {box-shadow:0 6px 16px rgba(0,0,0,.18)}


/* wrapper keeps both elements together and sets the width */
.sv-search-wrapper{
  position:relative;                 /* ⬅︎ reference for #sv-ac */
  width:min(560px,90%);
  z-index:30;                        /* floats above hero img   */
}

/* search bar */
#sv-search-form, #sv-site-search-form {
  display:flex; align-items:center;
  background:#fff; border-radius:50px; overflow:hidden;
  box-shadow:0 4px 12px rgba(0,0,0,.15);
  width:100%;                        /* fill the wrapper        */
}

/* dropdown – always sits right under the bar */
#sv-ac{
  position:absolute;
  top:calc(100% - 32px);
  padding-top: 44px;
  left:0; width:100%;
  background:#fff;
  border-radius:12px;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
  box-shadow:0 6px 24px rgba(0,0,0,.15);
  display:none; max-height:60vh; overflow:auto;
  z-index:15;                        /* below the bar           */
}
#sv-ac.open{display:block;}

#sv-ac mark { background: transparent; padding: 0 1px; border-radius: 2px; font-weight: bold; }

/* Ensure safe-area env() variables are available via CSS vars for JS to read (optional). */
:root{
  --sv-safe-top: env(safe-area-inset-top, 0px);
  --sv-safe-bottom: env(safe-area-inset-bottom, 0px);
}

/* Dropdown z-index stays high so it overlays hero/header content */
#sv-ac { z-index: 15; }

/* Cancel button: hidden by default */
#sv-search-form .sv-cancel{
  display:none;
  background:none;border:0;color:#25A9A1;font-weight:600;font-size:16px;cursor:pointer;
  padding:0 12px; margin-left:4px;
}

/* ---------- Mobile overlay mode ---------- */
@media (max-width: 768px){
  .sv-search-wrapper.mobile-floating{
    position: fixed;
    top: var(--sv-top, 0px);
    background: transparent;
  }

  .sv-search-wrapper.mobile-floating #sv-search-form {
    width: 100%;
    max-width: none;
    box-shadow: 0 10px 24px rgba(0,0,0,.2);
  }

  .sv-search-wrapper.mobile-floating #sv-search-form .sv-cancel{
    display:inline-block;
  }

  .sv-search-wrapper.mobile-floating #sv-ac{
    top: calc(100% + 6px);
    left: 0; width: 100%;
    border-top-left-radius: 12px;
    border-top-right-radius: 12px;
    border-bottom-left-radius: 12px;
    border-bottom-right-radius: 12px;
    max-height: 50vh;
  }

  #sv-ac li a{ padding:12px 16px; }
}

#sv-ac mark{
  background: transparent; /* #ffec99 */
  padding:0 1px; 
  border-radius:2px;
}

@media (max-width: 768px){
  .sv-search-wrapper.mobile-floating #sv-ac{
    top: calc(100% + var(--sv-ac-gap, 8px));
    left: 0; width: 100%;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    border-bottom-left-radius: 12px;
    border-bottom-right-radius: 12px;
    max-height: 50vh;
  }
}

.search-results .vw-header-area, .search-no-results .vw-header-area {
  margin-bottom: 0;
}

.search-results .sr-searchbar, .search-no-results .sr-searchbar {
    margin: 8px 0 28px;
}

.search-results h1, .search-no-results h1 {
    font-size: 28px;
    text-transform: none;
    margin-bottom: 24px;
}




.sv-hero{
  position:relative;
  min-height:360px;
  overflow:hidden;
  background: transparent;
  --hero-bg:none;
  --hero-pos:center;
  --hero-size:cover;
}
.sv-hero::before{
  content:"";
  position:absolute; inset:0;
  background-image:var(--hero-bg);
  background-size:var(--hero-size);
  background-position:var(--hero-pos);
  background-repeat:no-repeat;
  z-index:1;
}

.sv-hero__overlay{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,.45), rgba(0,0,0,.45));
  mix-blend-mode:multiply;
  z-index:2;
}
.sv-hero__inner{
  position:relative;
  z-index:3;
  width:100%;
  margin:0 auto;
  color:#fff;
  text-align:left;
  min-height:360px;
  display:grid;
  grid-template-rows:auto 1fr auto;
  gap:14px;
  padding: 0;
}
.sv-hero__inner .breadcrumbs{
  font-size:13px;
  color:rgba(255,255,255,.9);
}
.sv-hero__inner .breadcrumbs a{
  color:rgba(255,255,255,.9);
  text-decoration:none;
  border-bottom:1px solid transparent;
}
.sv-hero__inner .breadcrumbs a:hover{
  border-bottom-color:rgba(255,255,255,.6);
}
.sv-hero__title{
  margin:0 7px;
  color:#fff;
  font-size:clamp(28px,5vw,44px);
  line-height:1.1;
  text-transform:none !important;
  text-align:center;
  grid-row:2;
  align-self:center;
  justify-self:center;
}
.sv-hero__inner #featured{
  grid-row:3;
  align-self:end;
  margin-top:0;
  padding-bottom:0;
}
.sv-hero__inner #featured .featured-icon-grid{
  display:grid;
  grid-template-columns:repeat(4,150px);
  justify-content:center;
  justify-items:center;
  gap:14px;
  margin:0 auto;
}
.sv-hero__inner #featured .featured-icon {
  width:150px;
}
.sv-hero__inner #featured .featured-icon a{
  display:grid;
  place-items:center;
  gap:0;
  background:rgba(255,255,255,.1);
  border-radius:12px;
  padding:6px;
  color:#fff;
  text-decoration:none;
  transition:background .2s ease;
}
.sv-hero__inner #featured .featured-icon a:hover{
  background:rgba(255,255,255,.18);
}
.sv-hero__inner #featured .featured-icon img{
  width:52px; height:52px; object-fit:contain;
}
.sv-hero__inner #featured .featured-icon p{
  margin:0; font-size:14px; font-weight:600;
}
.sv-hero__below{
  width:min(1100px,92%);
  margin:18px auto 0;
}
@media (max-width:991px){
  .sv-hero{ min-height:300px; }
  .sv-hero__inner{ min-height:300px; }
  .sv-hero__title{ font-size:clamp(24px,6vw,38px); }
  .sv-hero__inner #featured .featured-icon-grid{ 
    grid-template-columns: repeat(4, 100px);
    gap:0; 
  }
  .sv-hero__inner #featured .featured-icon img{ width:43px; height:43px; }
  .sv-hero__inner #featured .featured-icon a{ padding:2px; }
  .sv-hero__inner #featured .featured-icon {width: 100px;}
}
.custom-dropdown{ margin-bottom:35px; }
.navheader{ margin-bottom:3px; }
.app-container.category .sv-hero__inner .breadcrumbs{
  padding:0;
  background: transparent;
  margin: 10px 1rem 0;
}
.featured-icon-grid .featured-icon { 
  margin:0;
  margin-bottom: 12px;
}

.tabs-container.festivals {
  display: block;
}

@media (max-width: 768px){
  .navheader {
    text-align: center;
  }
}

.footer-lang {
  margin-top: 40px;
  display: flex;
  align-items: baseline;
  gap: 8px;               /* space between label and list */
  white-space: nowrap;    /* prevent wrapping on wider screens */
  flex-wrap: nowrap;
}

.footer-lang-label {
  font-weight: 600;
  margin-right: 0;        /* gap handles spacing */
}

.footer-lang-list {
  display: flex;          /* lays out items in a row */
  flex-wrap: nowrap;      /* keep items on one line */
  list-style: none;
  margin: 0;
  padding: 0;
}

.footer-lang-item {
  display: inline-flex;    /* keeps items tight and baseline-aligned */
  white-space: nowrap;     /* prevent breaking inside items */
}

.footer-lang-item + .footer-lang-item::before {
  content: "•";
  color: #777;
  margin: 0 10px;
}

.footer-lang-list a {
  text-decoration: none;
}

.footer-lang-list a:hover,
.footer-lang-list li.is-current a {
  text-decoration: underline;
  cursor: default;
}

/* Allow wrapping only on narrow screens to avoid overflow */
@media (max-width: 480px) {
  .footer-lang {
    white-space: normal;
    flex-wrap: wrap;
    row-gap: 6px;
  }
  .footer-lang-list {
    flex-wrap: wrap;
  }
  .footer-lang-item + .footer-lang-item::before {
    margin: 0 6px;
  }
}

/* === Sidebar: Recent Posts & Comments === */

/* Reset list styling */
.vw-content-sidebar .vw-widget .vw-list--recent-posts,
.vw-content-sidebar .vw-widget .vw-list--recent-comments {
  list-style: none;
  margin: 0;
  padding: 0;
}
.vw-content-sidebar .vw-widget .vw-list--recent-posts li,
.vw-content-sidebar .vw-widget .vw-list--recent-comments li {
  margin: 14px 0;
  padding: 0;
}

/* Recent Posts layout (thumb + title with date under it) */
:root { --sb-thumb: 96px; --sb-gap: 12px; }

.vw-content-sidebar .sv-sb-recent-post {
  display: grid;
  grid-template-columns: var(--sb-thumb) 1fr;
  grid-template-areas:
    "thumb title"
    "thumb date";
  column-gap: var(--sb-gap);
  align-items: center;
}

/* Make the anchor just a container for grid children */
.vw-content-sidebar .sv-sb-recent-post .sv-sb-link { display: contents; }

/* Thumb */
.vw-content-sidebar .sv-sb-thumb-wrap {
  grid-area: thumb;
  width: var(--sb-thumb);
  height: var(--sb-thumb);
  overflow: hidden;
  border-radius: 6px;
  box-shadow: 0 0 0 1px rgba(0,0,0,.06) inset;
}
.vw-content-sidebar .sv-sb-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Title and date */
.vw-content-sidebar .sv-sb-title {
  grid-area: title;
  font-weight: 600;
  line-height: 1.25;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.vw-content-sidebar .sv-sb-date {
  grid-area: date;
  font-size: .85rem;
  color: #888;
  margin-top: 4px;
  letter-spacing: .02em;
}

/* Hover states */
.vw-content-sidebar .sv-sb-recent-post a:hover .sv-sb-title { text-decoration: underline; }

/* Recent Comments list */
.vw-content-sidebar .vw-list--recent-comments .sv-sb-comment a {
  display: block;
  line-height: 1.35;
  text-decoration: none;
}
.vw-content-sidebar .sv-sb-comment-author { font-weight: 600; }
.vw-content-sidebar .sv-sb-comment-on { color: #888; margin: 0 .25em; }
.vw-content-sidebar .sv-sb-comment-post { }

/* Small screens: shrink thumbnails a bit */
@media (max-width: 480px) {
  :root { --sb-thumb: 80px; }
}

/* Fallback for old browsers without CSS grid */
@supports not (display: grid) {
  .vw-content-sidebar .sv-sb-recent-post { 
    display: flex; gap: var(--sb-gap); align-items: center; 
  }
  .vw-content-sidebar .sv-sb-date { margin-left: calc(var(--sb-thumb) + var(--sb-gap)); }
}

.search-form {
  margin-bottom: 20px;
}

/* === Header Search Dropdown (move to your CSS file if preferred) === */
.vw-header__inner { position: relative; }

.header-search-toggle { display:inline-flex; align-items:center; gap:6px; padding:8px 10px; background:transparent; border:0; cursor:pointer; color:#fff; }
.header-search-menu-item .header-search-toggle svg { display:block; }

/* Panel */
.header-search-panel {
  position: absolute; right: 12px; top: 100%; margin-top: 10px;
  width: 360px; max-width: calc(100vw - 16px);
  background: #fff; border: 1px solid #e5e7eb; border-radius: 12px;
  box-shadow: 0 12px 30px rgba(0,0,0,.14);
  padding: 12px; display: none; z-index: 1000;
}
.header-search-panel.open { display:block; }

/* Form */
.header-search-form { display:flex; gap:8px; align-items:center; }
.header-search-form input[type="search"] {
  flex:1; font-size:16px; line-height:1; padding:10px 12px;
  border:1px solid #e5e7eb; border-radius:10px; outline:none;
}
.header-search-form input[type="search"]:focus { border-color:#c7d2fe; box-shadow:0 0 0 3px rgba(199,210,254,.4); }
.header-search-submit {
  padding:10px 12px; border-radius:10px;
  background:#25A9A1; color:#fff; border:0; cursor:pointer;
}

/* A11y */
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* Mobile: make panel fixed and full-width under header */
@media (max-width: 768px){
  .header-search-panel {
    position: fixed; left: 8px; right: 8px; top: 58px; width: auto;
  }
  .vw-header__mobile-add .header-search-toggle { color:#fff; padding:12px 10px; }
}

@media (min-width: 769px){
  .vw-header__inner { position: relative; } /* container for absolute panel */
  .header-search-panel {
    position: absolute;
    top: 100%;
    margin-top: 40px;
    right: auto;
    left: 0;
  }
}

.page-numbers {
  padding: 0 8px;
}

#press-coverage-title {
  margin-top: 60px;
}


.hero-card .hero-image,
.hero-card .hero-carousel { position: relative; border-radius: 12px; overflow: hidden; background: #eee; }

.hero-card .hero-carousel {
  aspect-ratio: 3 / 2;               /* 4×6 print == 3:2 landscape */
  touch-action: pan-y;                /* allow vertical scroll; we handle horizontal swipe */
}

.hc-radio { position: absolute; opacity: 0; pointer-events: none; }

.hc-slides { position: relative; width: 100%; height: 100%; }
.hc-slide  { position: absolute; inset: 0; opacity: 0; transition: opacity .4s ease-in-out; pointer-events: none; }
.hc-slide.is-active { opacity: 1; pointer-events: auto; }

.hc-img { width: 100%; height: 100%; object-fit: cover; display: block; }

.hc-controls .hc-btn {
  position: absolute; top: 50%; transform: translateY(-50%);
  background: rgba(0,0,0,.45); color: #fff; width: 40px; height: 40px; line-height: 40px;
  text-align: center; border-radius: 999px; font-size: 20px; text-decoration: none; cursor: pointer; user-select: none;
}
.hc-controls .hc-prev { left: 10px; }
.hc-controls .hc-next { right: 10px; }

.hc-dots {
  position: absolute; left: 0; right: 0; bottom: 10px; display: flex; gap: 8px; justify-content: center; align-items: center;
}
.hc-dots label {
  width: 10px; height: 10px; border-radius: 999px; background: rgba(255,255,255,.6); cursor: pointer;
  border: 1px solid rgba(0,0,0,.25); transform: scale(1); transition: transform .15s ease, background .15s ease;
}
.hc-dots label.is-active { background: white; transform: scale(1.2); }

.hc-caption {
  position: absolute; left: 0; right: 0; bottom: 48px;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.55) 60%, rgba(0,0,0,.65) 100%);
  color: #fff; padding: 10px 14px; font-size: 14px;
}

/* Screen-reader only helper */
.sr-only { position: absolute !important; height: 1px; width: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }