
/* example of over-riding OLY style */

.op-card { border-radius:32px; overflow:hidden; }

.oc-cta { background-color:var(--cty-alink); color:white; padding:0.25rem 0.75rem; margin-top:1rem; }
.oc-cta:hover { background-color:var(--cty-ahover); }
.oc-cta a { color:white; text-decoration:none; }
.oc-cta a:hover { background-color:var(--cty-ahover);  color:white; text-decoration:none; }



/* basic cards */

.image-cover { background-position:center center; background-size:cover; }
.image-square { width:100%; padding-bottom:100%; background-position:center center; background-size:cover; }
.image-wide { width:100%; height:400px; background-position:center center; background-size:cover; }
.image-2x1 { width:100%; padding-bottom:50%; background-position:center center; background-size:cover; }
.image-3x2 { width:100%; padding-bottom:66%; background-position:center center; background-size:cover; }
.image-5x4 { width:100%; padding-bottom:80%; background-position:center center; background-size:cover; }
.image-4x5 { width:100%; padding-bottom:120%; background-position:center center; background-size:cover; }


.crds { margin:1.5rem 0; }
.crd { background-color:var(--cty-bg-card); height:100%; }
.crd-auto { height:auto; }  /* as with masonry */ 
.crd > a { display:block; height:100%; text-decoration:none; color:inherit; } /* just when whole card is clickable */
.crd a:hover { color:inherit; text-decoration:none; }
.crd-image { display:block; }
.crd-image-img { display:block; background-color:#eee; background-size:cover; background-position:center center; }
.crd-content { padding:1.5rem; }
.crd-headline { font-weight:700; font-size:1.1rem; margin-bottom:0.5rem; }
.crd-text { font-size:1rem;  margin-bottom:0.5rem; }
.crd-linklabel { font-weight:700; margin-top:0.5rem; }

.oly-swiper-button-next, .oly-swiper-button-prev {
  display: flex;
  position: absolute;
  z-index: 10;
  top: 50%;
  left: -24px;
  background-color: var(--cty-dahlia-dark);
  border: 0;
  color: white;
  padding: 0 !important;
  font-size: 30px;
  line-height: 48px;
  height: 48px;
  width: 48px;
  margin-top: -24px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: all 250ms ease;
}
.oly-swiper-button-next {
  left:auto; right:-24px;
}

/* sf-slider type of basic card slider */

.sf-slider { width:100%; }
.sf-slider {
  .op-card-image { position:relative; }
  .op-card-image::after {   
    content:'';
    position: absolute;
    bottom: -6px;
    width: 100%;
    height: 50px;
    background-image: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='utf-8'%3F%3E%3Csvg width='100%25' height='100%25' preserveAspectRatio='none' viewBox='0 0 600 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath style='fill:%233C3869' d='M316.9 73.4C190.4 52.7 155.6-6 0 13.2l0 86.9l600-0.1V73.4C550.1 81.5 443.4 94.1 316.9 73.4z'/%3E%3C/svg%3E");
    background-position: bottom left;
    background-repeat: no-repeat;
    background-size: 100% 100%;
  }
  .op-card-content { padding-top:1rem; padding-bottom:24px; }
  .op-subhead { font-weight: 800;
    font-size: 0.6rem;
    line-height:1.2;
    text-transform: uppercase;
    margin-bottom: 0.25rem;
    text-wrap: balance; 
  }
  .op-headline { 
    font-weight: 7  00;
    line-height:1.3;
    font-size: 1.3rem;
    margin-bottom: 0.25rem;
    text-wrap: balance; 
    }
    .op-text {
    font-size: 0.85rem;
    line-height:1.4;
    margin-bottom: 0.25rem;
    text-wrap: balance;
  }
  .op-cta {
    font-weight: 700;
    font-size: 0.9rem;
    margin-top: 0.75rem;
    text-wrap: balance;
  }
  .op-cta span { 
    display:inline-block; 
    background-color:var(--cty-pink); 
    color:white;
    font-size:14px; 
    line-height:1;
    padding:8px 16px;
    border-radius:24px;
    text-transform:uppercase;
    font-weight:600;
  }
  .oly-swiper-button-next, .oly-swiper-button-prev {
    background-color: var(--cty-dahlia-medium);
    border:0px solid var(--cty-dahlia-light);
    color: white;
  }
}


/* pill cards */

a.sf-pill-card { display:block; width:100%; text-decoration:none; }
a.sf-pill-card:hover { text-decoration:none; }
.sf-pill-card-tb { display:table; width:100%; background-color:var(--cty-dahlia-light); color:var(--cty-dahlia-dark); padding:1rem; border-radius:30px; 
border-bottom:2px solid var(--cty-dahlia-dark);
}
.sf-pill-card-label { display:table-cell; width:auto; height:100%; vertical-align:middle; text-align:left; font-weight:700; }
.sf-pill-card-arrow { display:table-cell; width:50px; height:100%; vertical-align:middle; text-align:right; }

/* events cards */

a.evcard { display:block; width:100%; height:100%; text-decoration:none; position:relative; 
  background-color:var(--cty-dahlia-lighter); 
  color:var(--cty-dahlia-dark); 
  border-radius:32px;
  overflow:hidden;
}

.evcard-image { position:relative; width:100%; }
.evcard-image-image { width:100%; background-position:center center; background-size:cover; }
.evcard-image-cover { position:absolute; top:0px; width:100%; height:100%; background-color:rgba(0,0,0,0); transition: all 250ms ease-out; }

.evcard-content { padding:1.5rem;}
.evcard-content-subhead { font-weight:800; font-size:0.8rem; margin-bottom:0.5rem; text-transform:uppercase; }
.evcard-content-headline { font-weight:700; font-size:1.2rem; line-height:1.3; margin-bottom:0.5rem; }
.evcard-content-time { font-weight:400; font-size:0.8rem; margin-bottom:0.5rem; }
.evcard-content-venue { font-weight:400; font-size:0.8rem; margin-bottom:0.5rem; }
.evcard-content-text { font-weight:400; font-size:0.8rem; margin-bottom:0.5rem; }

.evcard-content-time span, .evcard-content-venue span { display:inline-block; text-align:center; width:20px; color:black; }
.evcard-content-text span { opacity:0.5; }

.evcard-date-box { position:absolute; top:8px; right:8px; 
  border-radius:24px;
  background-color:var(--cty-dahlia-lighter); 
  color:var(--cty-dahlia-dark);  
  display: flex;
  width:70px; height:80px; 
  flex-direction: column;  /* Stack the text vertically */
  justify-content: center;  /* Center the content vertically */
  align-items: center;  /* Center the content horizontally */
  text-align: center;  /* align the text inside each child div */
}

.evcard-date-dow { font-size:12px; line-height:14px; font-weight:700; text-transform:uppercase; letter-spacing:0;  }
.evcard-date-day { font-size:22px; line-height:28px; font-weight:800; letter-spacing:0.050rem; }
.evcard-date-month { font-size:12px; line-height:14px; font-weight:700; text-transform:uppercase; letter-spacing:0; }

.evcard-date-range { font-size:12px; line-height:16px; font-weight:500; text-transform:uppercase; letter-spacing:0.050rem; }
.evcard-date-range span { font-size:16px; line-height:18px; font-weight:700; }
.evcard-date-through { font-size:10px; line-height:16px; font-weight:700; text-transform:uppercase; letter-spacing:0.050rem; }

a.evcard:hover { color:var(--cty-dahlia-dark); text-decoration:none; }
a.evcard:hover .evcard-content-headline { color:var(--cty-dahlia-dark); text-decoration:none; }
a.evcard:hover .evcard-image-cover { background-color:rgba(0,0,0,0.15); }



/* special cards */

.special-cards { margin:1.5rem 0; }
.special-card { background-color:var(--cty-bg-card); height:auto; }
.special-card-image { display:block; }
.special-card-image-img { display:block; background-color:#eee; background-size:cover; background-position:center center; }
.special-card-content { padding:1.5rem; }
.special-card-headline { font-weight:700; font-size:1.2rem; margin-bottom:1rem; }
.special-card-text { font-size:0.85rem;  margin-bottom:1rem; }
.special-card-limits { font-size:0.85rem;  margin-bottom:1rem; }
.special-card-link { font-weight:700; margin-top:1rem; }
.special-card-venue * { font-size:0.9rem; }
.special-card-venue .awesome-box { display:table; width:100%; }
.special-card-venue .awesome-box-icon { display:table-cell; width:24px; vertical-align:top; text-align:left; }
.special-card-venue .awesome-box-link { display:table-cell; width:auto; vertical-align:top; text-align:left; }




/* post cards */

.post-crds { margin:1.5rem 0; }
.post-crd { background-color:#fafafa; height:100%; }
.post-crd a { display:block; height:100%; text-decoration:none; color:inherit; }
.post-crd a:hover { color:inherit; text-decoration:none; }
.post-crd-image { display:block; }
.post-crd-image-img { display:block; background-color:#eee; background-size:cover; background-position:center center; }
.post-crd-content { padding:1.5rem; }
.post-crd-subhead { font-weight:400; font-size:0.8rem; margin-bottom:0.5rem; text-transform:uppercase; }
.post-crd-headline { font-weight:700; margin-bottom:0.5rem; }
.post-crd-text { font-size:1rem; }




/* place cards */

.pcrds { margin:1.5rem 0; }
.pcrd { background-color:#fafafa; height:100%; } 
.pcrd a { display:block; height:100%; text-decoration:none; color:inherit; }
.pcrd a:hover { color:inherit; text-decoration:none; }
.pcrd-image { display:block; }
.pcrd-image-img { display:block; background-color:#eee; background-size:cover; background-position:center center; }
.pcrd-content { padding:1.5rem; }

.pcrd-headline { font-size:1rem; font-weight:700; margin-bottom:0.1rem; }
.pcrd-text { font-size:0.8rem; }


/* staff card */

.staff-card { background-color:inherit; text-align:center; }
.staff-card-image { display:block; width:100%; max-width:270px; margin:0 auto; }
.staff-card-image-circle { display:block; background-color:#eee; background-size:cover; background-position:center center; 
width:100%; padding-bottom:100%; border-radius:50%;
}
.staff-card-content { padding:1rem 0; }
.staff-icon { display:inline-block; text-align:center; width:30px; padding-right:10px; }
.staff-card-headline { font-weight:700; font-size:1.1rem; margin-bottom:0rem; }
.staff-card-title { font-size:1rem; margin-bottom:0rem; }
.staff-card-phone { font-weight:500; font-size:0.9rem; margin-top:0.5rem; }
.staff-card-email { font-weight:500; font-size:0.9rem; margin-top:0.5rem; }

.staff-swiper-hold { position:relative; }

.staff-swiper-next, .staff-swiper-prev {
  display: flex;
  position: absolute;
  top: 50%;
  background-color: var(--cty-pink);
  border: 1px solid white;
  color: white;
  padding: 0 !important;
  font-size: 16px;
  line-height: 32px;
  height: 32px;
  width: 32px;
  margin-top: -16px;
  z-index: 10;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  border-radius:16px;
}
.staff-swiper-prev { left:-16px; }
.staff-swiper-next { right:-16px; }




/* visit planner card */

.vcards { margin:1.5rem 0; }
.vcard { background-color:#fafafa; height:100%; position:relative; border:2px solid #fafafa; } 
.vcard a { display:block; height:100%; text-decoration:none; color:inherit; }
.vcard a:hover { color:inherit; text-decoration:none; }
.vcard-image { display:block; }
.vcard-image-img { display:block; background-color:#eee; background-size:cover; background-position:center center; }
.vcard-content { padding:1.5rem; }

.vcard-headline { font-size:1rem; font-weight:700; margin-bottom:0.1rem; }
.vcard-text { font-size:0.8rem; }

.vcard-favorite { position:absolute; top:0px; right:0px; width:50px; height:50px; }
.vcard-favorite a { display:block; width:50px; height:50px; text-align:center; cursor:pointer; background-color:black; color:white; font-size:24px; line-height:50px; }
.vcard-favorite a:hover { background-color:#666; color:white; }
.vcard-favorite-icon { display:inline; }
.vcard-favorite-icon-selected { display:none; }

.vcard-selected { border-color:black; }
.vcard-selected .vcard-favorite-icon { display:none; }
.vcard-selected .vcard-favorite-icon-selected { display:inline; }


/* simple slider */

.cafe-swiper-hold { position:relative; }

.cafe-swiper-next, .cafe-swiper-prev {
  display: flex;
  position: absolute;
  top: var(--swiper-navigation-top-offset,40%);
  width: 48px;
  height: 48px;
  margin-top: -24px;
  z-index: 10;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  background-color: var(--cty-alink);
  font-size:30px;
  color: #fff;
  border-radius:32px;
}
.cafe-swiper-prev { left:-22px; }
.cafe-swiper-next { right:-22px; }


/* simple slider carousel */

.cafe-carousel-card { position:relative; }

.cafe-carousel-next, .cafe-carousel-prev {
  display: flex;
  position: absolute;
  top: var(--swiper-navigation-top-offset,50%);
  width: 48px;
  height: 48px;
  margin-top: -24px;
  z-index: 10;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  background-color: var(--cty-alink);
  font-size:30px;
  color: #fff;
  border-radius:32px;
}
.cafe-carousel-prev { left:-22px; }
.cafe-carousel-next { right:-22px; }

.carousel-card { display:block; background-color:#fafafa; }
.carousel-card-image { display:block; }
.carousel-card-image-img { display:block; width:100%; padding-bottom:80%; background-size:cover; background-position:center center; }
.carousel-card-content { padding:1rem; }
.carousel-card-content-cell { text-align:left; }

@media all and (min-width: 992px) {
  .carousel-card { display:flex; flex-direction: row-reverse; }
  .carousel-card-image { width:50%; height:auto; }
  .carousel-card-image-img { width:100%; height:100%; padding:0; }
  .carousel-card-content { width:50%; min-height:500px; padding:0; display: flex; align-items: center; }
  .carousel-card-content-cell { padding:0 2rem; }
}
@media all and (min-width: 992px) {
  .carousel-card-content-cell { padding:0 4rem; }
}

.carousel-card-headline { font-weight:700; font-size:1.1rem; margin-bottom:0.5rem; }
.carousel-card-text { font-size:1rem; }
.carousel-card-link { margin-top:0.5rem; }




/* hero slider */

.hero-swiper-hold { width:100%; position:relative; }
.hero-swiper-height { height:75vh; max-height:600px; min-height:100px; }
.hero-swiper-image-bg { width:100%; background-color:#eee; background-size:cover; background-position:center center;}

.hero-swiper-next, .hero-swiper-prev {
  display: flex;
  position: absolute;
  top: 50%;
  width: 48px;
  height: 48px;
  margin-top: -24px;
  z-index: 10;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  background-color: var(--cty-alink);
  font-size:30px;
  color: #fff;
  border-radius:32px;
}
.hero-swiper-prev { left:12px; }
.hero-swiper-next { right:12px; }
@media all and (min-width: 992px) {
  .hero-swiper-prev { left:5%; }
  .hero-swiper-next { right:5%; }
}

.hero-swiper-cover { 
  width:100%; height:100%; padding:24px 72px;
  background: rgb(48,93,200);
  background: linear-gradient(60deg, rgba(48,93,200,0.5) 0%, rgba(227,18,175,0.5) 100%); 
}
.hero-swiper-flex {
  width:100%; height:100%;
  display: flex; align-items: center; justify-content: center;
}
.hero-swiper-content { width:100%; max-width:600px; text-align:center; color:white; }
.hero-swiper-content-headline { font-size:1.25rem; font-weight:700; margin-bottom:0.5rem; }
.hero-swiper-content-text { font-size:1rem; font-weight:400; }
.home-swiper-content-link { margin-top:0.5rem; }


/* artcar */

.artcar-swiper-hold { width:100%; max-width:1500px; margin:0 auto; position:relative; }

.artcar-swiper-next, .artcar-swiper-prev {
  position: absolute;
  top: 200px; /* half desktop image height */
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  margin-top: -24px;
  border-radius:50%;
  font-size: 30px;
  color: #fff;
  background-color: var(--cty-alink);
  z-index: 10;
  cursor: pointer;
}
.artcar-swiper-prev { left:2px; }
.artcar-swiper-next { right:2px; }

.artcrd { width:100%; }
.artcrd-image { display:block; }
.artcrd-image-img { display:block; width:100%; height:400px; background-color:#eee; background-size:cover; background-position:center center; }

.artcrd-content-hold { width:100%; }
.artcrd-content { display:none; padding:1.5rem; background-color:#fafafa; }
.artcrd-headline { font-weight:700; margin-bottom:0.5rem; }
.artcrd-text { font-size:1rem; }

.artcar-swiper-hold .swiper-slide { transition: opacity 0.35s linear 0s; }
.artcar-swiper-hold .swiper-slide-active .artcrd-content { display:block; }
.artcar-swiper-hold .swiper-slide-prev .artcrd-image-img { height:360px; margin-top:20px; opacity:0.5; }
.artcar-swiper-hold .swiper-slide-next .artcrd-image-img { height:360px; margin-top:20px; opacity:0.5; }

@media all and (min-width: 992px) {
  .artcar-swiper-next, .artcar-swiper-prev { top:300px; /* half desktop image height */ }
  .artcar-swiper-next { right: 8%; }
  .artcar-swiper-prev { left: 8%; } 
  .artcrd-image-img { height:600px; }
  .artcar-swiper-hold .swiper-slide-prev .artcrd-image-img { height:560px; margin-top:20px; }
  .artcar-swiper-hold .swiper-slide-next .artcrd-image-img { height:560px; margin-top:20px; }
}


/* news links block type */

.newslink-swiper-container { position:relative; margin:0 0 1rem 0; padding-top:0px; }

.newslink-swiper-button-next, .newslink-swiper-button-prev {
  display: flex;
  position: absolute;
  z-index: 10;
  top:-15px;
  right:80px;
  background-color: var(--cty-dahlia-medium);
  border: 0;
  color: white;
  border:1px solid white;
  padding: 0 !important;
  font-size: 16px;
  line-height: 30px;
  height: 30px;
  width: 30px;
  margin-top: 0px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: all 250ms ease;
  }
  .newslink-swiper-button-next {
    right: 40px;
  }


.newslink-card {
  width:100%;
  border:1px solid white;
  border-radius:32px;
}
.newslink-card a { display:block; text-decoration:none; padding:1rem; }
.newslink-card a:hover { display:block; text-decoration:none; }

.newslink-subhead { color:inherit; font-size:0.6rem; font-weight:800; text-transform:uppercase; margin-bottom:0.5rem; text-wrap:balance; }
.newslink-headline { color:inherit; font-size:1.4rem; line-height:1.2; font-weight:800; text-wrap:balance;}

@media all and (min-width: 768px) {
.newslink-card a { padding:2rem; }
}


/* placemaking summary */

.pm-domino { width:100%; }

.pm-domino-hold { width:100%; margin:0; }
.pm-domino-bg { display:block; }
.pm-domino-row { display:block; width:100%; margin:0 auto; } /* apply max-width here as needed */
.pm-domino-image { display:block; }
.pm-domino-image-img { display:block; width:100%; padding-bottom:80%; background-size:cover; background-position:center center; }
.pm-domino-content { display:block; padding:1.5rem; }

.pm-domino-flex {
  display: flex;
  align-items: center; /* center vertically */
  justify-content: center; /* center horizontally */
}
.pm-domino-flex > div { width:100%; }

.pm-domino-bg-odd { background-color:var( --cty-dahlia-dark); background-color:#19162e; color:var(--cty-dahlia-light);  }
.pm-domino-bg-even { background-color:var(--cty-dahlia-light); color:var(--cty-dahlia-dark);  }

@media all and (min-width: 768px) {
	.pm-domino-row { display:flex; }
	.pm-domino-row-reverse { flex-direction: row-reverse; }
	.pm-domino-image  { width:40%; padding:0; }
  .pm-domino-image-img { width:100%; height:100%; padding:0; }
	.pm-domino-content { width:60%; padding:2rem; }
  .pm-domino-flex { min-height: 400px; }
}
@media all and (min-width: 992px) {
	.pm-domino-content { padding:2.5rem; }
}
@media all and (min-width: 1200px) {
	.pm-domino-content { padding:3rem;; }
}






/* bento intro block card */

.bento-intro-h2 h2 { font-size:2.6rem; line-height:1.1; letter-spacing:-0.050rem; }

.bento-intro { width:100%; height:200px; position:relative; border-radius:32px; overflow:hidden;  }
.bento-intro-image { position:absolute; top:0; left:0; width:100%; height:100%; background-position:center center; background-size:cover; }
.bento-intro-cover { position:absolute; top:0; left:0; width:100%; height:100%; background: linear-gradient(205deg, rgba(24, 22, 46, .10) 0%,  rgba(24, 22, 46, .25) 50%, rgba(24, 22, 46, 0.68) 90%) }
.bento-intro-hover { position:absolute; top:0; left:0; width:100%; height:100%; }
.bento-intro-content { position:absolute; top:0; left:0; width:100%; height:100%; display:flex; align-items:end; justify-content:start; padding:24px; }
.bento-intro-headline { font-size:30px; line-height:1.2; font-weight:700; color:var(--cty-mint-light); text-wrap:balance; }
.bento-intro-text { font-size:15px; line-height:1.2; font-weight:700; color:var(--cty-mint-light); text-wrap:balance; margin-top:6px; }

.make-larger { 
  .bento-intro-content { align-items:center; }
  .bento-intro-headline { font-size:40px; line-height:1.1;}
  .bento-intro-text { font-size:20px; }
}


.bento-intro .bento-intro-hover { background-color:rgba(24, 22, 46, 0.20); transition: all 250ms ease-out 0s; }
.bento-intro:hover .bento-intro-hover { background-color:rgba(24, 22, 46, 0); }
@media all and (min-width: 992px) {
  .bento-intro { height:400px; }
}