
/* home */

.home-header {
  width:100%;
  height:calc(100vh - 128px);
  background:black;
  background-size:cover;
  background-position:center center;
  position:relative;
}

.home-header-cover {
  position:absolute; 
  top:0px;
  bottom:0px;
  left:0px;
  right:0px;
  background:rgba(0,0,0,0.25);
}

.home-header-content { 
  position:absolute; 
  bottom:40px;
  left:24px;
  text-align:left;
}
@media all and (min-width: 992px) {
  .home-header-content { bottom:60px; left:5%; max-width:50%; }
}

.home-header-tag {
  display:inline-block;
  background-color:#FFC90D;
  color:#000;
  font-weight: 600;
  font-size: 18px;
  line-height: 32px;
  text-align: center;
  text-transform: uppercase;
  padding:0 10px;
  margin-bottom:24px;
}

.home-header-cta a { color:white; text-decoration:none; }
.home-header-cta a:hover { color:white; text-decoration:none; }

.home-header-cta1 { 
  font-size: 88px;
  line-height: 88px;
  padding-bottom:12px;
  text-wrap:balance;
}
.home-header-cta2 {
  font-size: 30px;
  line-height: 30px;
  text-wrap:balance;
}




/* cty-io */

.cty-io { color:inherit; }
.cty-io-fadein { opacity:0; } 
.cty-io-visible { transition: opacity 1000ms ease; opacity:1; } 

.cty-io-grow { 
  -webkit-transform: scale(0.7);
  -ms-transform: scale(0.7);
  transform: scale(0.7);
}
.cty-io-grown {
  transition:all 2.0s ease;
  -webkit-transform: scale(1.0);
  -ms-transform: scale(1.0);
  transform: scale(1.0);
}

.ani-stat { text-align:center; padding-bottom:30px; }
.ani-stat-value { font-weight: 400; font-size:58px; line-height:1.1; }
.ani-stat-label { font-weight: 400; font-size:18px; line-height:1.1; }

.ani-grid { display:block; margin:0 auto; }
.ani-grid-cell { display:block; padding:0 24px; }
@media all and (min-width: 992px) {
  .ani-grid { display:table; width:100%; }
  .ani-grid-cell { display:table-cell; width:50%; vertical-align:top; }
}




/* https://ryanmulligan.dev/blog/css-marquee/ */

.marquee {
  --gap: 2rem;
  display: flex;
  overflow: hidden;
  user-select: none;
  gap: var(--gap);
  padding:12px 0; 
  margin:0;
  background-color:#D73B2D;
  color:#000000;
}

ul.marquee_content {
  flex-shrink: 0;
  display: flex;
  justify-content: space-around;
  min-width: 100%;
  gap: var(--gap);
  list-style:none;
  margin:0;
  padding:0;
}

ul.marquee_content li { font-size:20px; line-height:40px; }
ul.marquee_content li a { text-decoration:none; }
ul.marquee_content li a:hover { text-decoration:none; }

@keyframes scroll {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(calc(-100% - var(--gap)));
  }
}

/* Pause animation when reduced-motion is set */
@media (prefers-reduced-motion: reduce) {
  .marquee_content {
    animation-play-state: paused !important;
  }
}

/* Enable animation */
.marquee_content {
  animation: scroll 40s linear infinite;
}

/* Pause on hover */
.marquee:hover .marquee_content {
  animation-play-state: paused;
}


/* statistics */  

.statistics { margin:1rem 0; }
.statistic { text-align:left; }
.statistic .stat-headline { font-size:50px; line-height:1; font-weight:700; padding-top:20px; padding-bottom:10px; }
.statistic .stat-text { text-wrap:balance; }



/* point-section */

#point-section #clmap { width:100%; height:80vh; min-height:200px; max-height:800px; background-color:#E6E4E0; }

.section-filters { text-align:center; margin:30px 0px; }
.section-filters .section-filters-title { text-align:center; color:#222; font-size:14px; line-height:16px; letter-spacing:0.100rem; font-weight:700; text-transform:uppercase; margin:0 0 14px 0;}
.section-filters ul { list-style:none; margin:0; padding:0 ;}
.section-filters li { display:inline; margin:0; padding:0; }
.section-filters a {
font-weight:400;
text-decoration: none;
line-height: 12px;
font-size: 12px;
text-align: center;
display:inline-block;
color:#122C50;
background-color:white;
letter-spacing:  0.050rem;
border:1px solid #122C50;
border-radius:2px;
padding:6px 10px;
white-space: nowrap;
margin:4px 3px;
text-transform:uppercase;
}
.section-filters a:hover { background-color:#122C50; border-color:#122C50; color:white; text-decoration: none; }
.section-filters a.selected { background-color:#122C50; border-color:#122C50; color:white; }

.point-section-results { margin:30px 0px; }

.pst { margin-bottom:24px; }
.pst-topline { border-top:1px solid #eee; padding-top:8px; }
.pst a { display:block; }

.pst a .pst-image { position:relative; width:100%; padding-bottom:66.66%; background-color:#eee; margin-bottom:12px; }
.pst a .pst-image-bg { position:absolute; top:0; width:100%; height:100%; background-position:center center; background-size:cover; }
.pst a .pst-image-cover { position:absolute; top:0; width:100%; height:100%; background-color:rgba(0,0,0,0.1); transition: all .5s;}
.pst a:hover .pst-image-cover { background-color:rgba(0,0,0,0.5);  }


/* point section sticky */

.sticky-wrap { background-color:#fafafa; }
.sticky-hold { display:block; }
.sticky-content { width:100%; background-color:white; padding:40px; min-height:100px; }
.sticky-map { width:100%; height:90vh; min-height:420px; background-color:#E8E0D8; }
#stickymap { width:100%; height:90vh; background-color:#E8E0D8; }
@media all and (min-width: 768px) {
	.sticky-hold { display:flex; flex-direction: row-reverse; width:100%; max-width:1600px; margin:0 auto; min-height:100vh; }
	.sticky-content { width:50%; height:auto; padding-top:0; padding-bottom:0; }
	.sticky-map { width:50%; height:auto; }
	#stickymap { width:100%; height:100vh; top:0px; position: sticky; position: -webkit-sticky; /* need for safari */ }
}


/* point section stacky */

:root {
  --stacky-height: 900px; /* desktop element height */
}
.stacky-wrap { background-color:inherit; }
.stacky-hold { display:block; }
.stacky-content { width:100%; padding:24px; min-height:100px; }
.stacky-map { width:100%; height:90vh; min-height:420px; background-color:#E8E0D8; }
#stackymap { width:100%; height:90vh; background-color:#E8E0D8; }
@media all and (min-width: 768px) {
	.stacky-hold { display:flex; flex-direction:row; width:100%; max-width:1600px; margin:0 auto; height:904px; /* includes border */}
  .stacky-hold { border:2px solid #aaa; overflow:hidden; }
	.stacky-content { width:40%; padding:16px; height:auto; overflow-y: scroll; }
	.stacky-map { width:60%; height:var(--stacky-height); }
	#stackymap { width:100%; height:var(--stacky-height); top:0px; }
}

.stackycards { color:inherit; }
.stackycard { display:flex; width:100%; border:2px solid #ccc; overflow:hidden; margin-top:1rem; }
.stackycard-content { width:calc(100% - 160px); min-height:160px; padding:1rem; }
.stackycard-image { width:160px; height:inherit; }
@media all and (min-width: 768px) {
	.stackycard-content { width:calc(100% - 200px); min-height:160px; padding:1rem; }
	.stackycard-image { width:200px; }
}
.stackycard-headline { font-weight:700; font-size:1.1rem; line-height:1.3; margin-bottom:0.5rem; }
.stackycard-text { font-size:0.85rem; line-height:1.3; margin-bottom:0.5rem; }




/* point-detail */

.point-social-icons { margin:24px 0; text-align:left;}
.point-social-icons a { display:inline-block; width:30px; height:30px; font-size:15px; line-height:30px; border-radius:50%; text-align:center; margin:0 12px 0 0; }
.point-social-icons a { text-decoration:none; color:white; background-color:var(--cty-alink); border:none; transition: all 0.15s linear 0s;}
.point-social-icons a:hover { color:white; background-color:var(--cty-ahover); }

#point-detail { margin-left:-24px; margin-right:-24px; border-top:1px solid #E6E4E0; border-bottom:1px solid #E6E4E0;}
#point-detail #clmap { width:100%; height:50vh; min-height:150px; max-height:500px; background-color:#E6E4E0; border-top:2px solid white; border-bottom:2px solid white; }
@media all and (min-width: 992px) {
	#point-detail #clmap { border:2px solid white; }
	#point-detail { margin-left:0px; margin-right:0px; border: 1px solid #E6E4E0; }
}

.ftn { text-align:center; }
.ftn h4 { text-align:center; }
.ftn ul { margin:20px 0px; padding:0; }
.ftn li { list-style-type: none; padding:10px 0px; margin:0; border-bottom:1px solid #eee6e8;}
.ftn li:last-child { border-bottom:0;}
.ftnname { display:block; font-size:110%;}
.ftnaddress { font-size:80%; color:#000; }
.ftndistance { font-size:80%; color:#666;}


/* event-detail */

ul.datelist { list-style-type: none; padding-left:0; margin-left:0; }
ul.datelist li { margin-bottom:6px; }
ul.datelist li .dldate { color:inherit; }
ul.datelist li .dltime { color:#666; }


/* meeting calendar */

:root {
	--cty-meetingsbg-100: #fafafa; /* blank dates */
	--cty-meetingsbg-200: #f4f4f4;
	--cty-meetingsbg-300: #eaeaea;
}

.bcal { margin-top:2rem; }
.bcal-header { width:100%; background-color:var(--cty-meetingsbg-300); padding: 0.5rem; border:1px solid white; font-size:1.1rem; font-weight:700; }
.bcal-header-prev { display:inline-block; padding: 0.5rem; }
.bcal-header-current { display:inline-block; padding: 0.5rem; }
.bcal-header-next { display:inline-block; padding: 0.5rem; }
.bcal-row { width:100%; }
.bcal-cell { width:100%; background-color:var(--cty-meetingsbg-200); border:1px solid white; font-size:16px; }
.bcal-cell span { display:block; padding:6px 12px; background-color:var(--cty-meetingsbg-300); font-weight:700; }
.bcal-cell ul { padding:6px 12px; margin:0; }
.bcal-cell ul li { padding:0; margin:0 0 8px 16px; }
.bcal-cell-blank { display:none; background-color: var(--cty-meetingsbg-100); }
.bcal-cell-empty { display:none; }
@media all and (min-width: 992px) {
  .bcal-cell-blank { display:table-cell; }
  .bcal-cell-empty { display:table-cell; }
  .bcal-header { text-align:center; border-bottom:2px; }
  .bcal-row { display:table; width:100%; }
  .bcal-cell { display:table-cell; width:14.3%; height:100px; vertical-align:top; }
  .bcal-cell ul li { font-size:15px;}
}

