/* CCH global utilities + coverflow swiper styles — extracted from Webflow export, used on every page */

/* NOTE: WordPress's flow-layout 24px block-gap is neutralised in cch-flow-reset.css,
   which loads BEFORE the Webflow stylesheet so each section keeps its OWN Webflow
   margins (e.g. .section-about-gallery's 5rem) while gap-less sections stay flush.
   Do not re-add a blanket `margin-block:0 !important` here — it destroys real margins. */

/* Make text look crisper and more legible in all browsers */
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Focus state style for keyboard navigation for the focusable elements */
*[tabindex]:focus-visible,
  input[type="file"]:focus-visible {
   outline: 0.125rem solid #4d65ff;
   outline-offset: 0.125rem;
}

/* Set color style to inherit */
.inherit-color * {
    color: inherit;
}

/* Get rid of top margin on first element in any rich text element */
.w-richtext > :not(div):first-child, .w-richtext > div:first-child > :first-child {
  margin-top: 0 !important;
}

/* Get rid of bottom margin on last element in any rich text element */
.w-richtext>:last-child, .w-richtext ol li:last-child, .w-richtext ul li:last-child {
	margin-bottom: 0 !important;
}


/* Make sure containers never lose their center alignment */
.container-medium,.container-small, .container-large {
	margin-right: auto !important;
  margin-left: auto !important;
}

/* 
Make the following elements inherit typography styles from the parent and not have hardcoded values. 
Important: You will not be able to style for example "All Links" in Designer with this CSS applied.
Uncomment this CSS to use it in the project. Leave this message for future hand-off.
*/
/*
a,
.w-input,
.w-select,
.w-tab-link,
.w-nav-link,
.w-dropdown-btn,
.w-dropdown-toggle,
.w-dropdown-link {
  color: inherit;
  text-decoration: inherit;
  font-size: inherit;
}
*/

/* Apply "..." after 3 lines of text */
.text-style-3lines {
	display: -webkit-box;
	overflow: hidden;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
}

/* Apply "..." after 2 lines of text */
.text-style-2lines {
	display: -webkit-box;
	overflow: hidden;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}

/* These classes are never overwritten */
.hide {
  display: none !important;
}

@media screen and (max-width: 991px) {
    .hide, .hide-tablet {
        display: none !important;
    }
}
  @media screen and (max-width: 767px) {
    .hide-mobile-landscape{
      display: none !important;
    }
}
  @media screen and (max-width: 479px) {
    .hide-mobile{
      display: none !important;
    }
}
 
.margin-0 {
  margin: 0rem !important;
}
  
.padding-0 {
  padding: 0rem !important;
}

.spacing-clean {
padding: 0rem !important;
margin: 0rem !important;
}

.margin-top {
  margin-right: 0rem !important;
  margin-bottom: 0rem !important;
  margin-left: 0rem !important;
}

.padding-top {
  padding-right: 0rem !important;
  padding-bottom: 0rem !important;
  padding-left: 0rem !important;
}
  
.margin-right {
  margin-top: 0rem !important;
  margin-bottom: 0rem !important;
  margin-left: 0rem !important;
}

.padding-right {
  padding-top: 0rem !important;
  padding-bottom: 0rem !important;
  padding-left: 0rem !important;
}

.margin-bottom {
  margin-top: 0rem !important;
  margin-right: 0rem !important;
  margin-left: 0rem !important;
}

.padding-bottom {
  padding-top: 0rem !important;
  padding-right: 0rem !important;
  padding-left: 0rem !important;
}

.margin-left {
  margin-top: 0rem !important;
  margin-right: 0rem !important;
  margin-bottom: 0rem !important;
}
  
.padding-left {
  padding-top: 0rem !important;
  padding-right: 0rem !important;
  padding-bottom: 0rem !important;
}
  
.margin-horizontal {
  margin-top: 0rem !important;
  margin-bottom: 0rem !important;
}

.padding-horizontal {
  padding-top: 0rem !important;
  padding-bottom: 0rem !important;
}

.margin-vertical {
  margin-right: 0rem !important;
  margin-left: 0rem !important;
}
  
.padding-vertical {
  padding-right: 0rem !important;
  padding-left: 0rem !important;
}

  
/* Coverflow supplies the 3D transform; we only dim the non-active slides */
.swiper-slide.is-gallery .gallery-img_wrapper{
  opacity: 0.45;
  transition: opacity .6s cubic-bezier(.77, 0, .175, 1);
}

.swiper-slide.is-gallery.swiper-slide-active .gallery-img_wrapper{
  opacity: 1;
}

.swiper-slide.is-gallery .gallery-info__wrapper{
  opacity: 0;
  transform: translateY(40%);
  transition: opacity .6s ease, transform .6s ease;
}
.swiper-slide.is-gallery.swiper-slide-active .gallery-info__wrapper{
  opacity: 1;
  transform: translateY(0%);
}

.custom-slider-nav {
  height: 12px; /* Control nav height */
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.custom-slider-nav .w-slider-dot {
  width: 23.68px;
  height: 7.89px !important; /* Force height */
  background-color: #555;
  border-radius: 50px !important;
  transition: all 0.3s ease;
  padding: 0; /* Remove default padding */
}

/* Active */
.custom-slider-nav .w-slider-dot.w-active {
  width: 157.89px;
  height: 7.89px !important; /* Keep same height */
  background-color: red;
  border-radius: 50px !important;
}
.custom-scroll {
  overflow-y: auto;
}

/* Scrollbar */
.custom-scroll::-webkit-scrollbar {
  width: 6px;
}

/* Track */
.custom-scroll::-webkit-scrollbar-track {
  background: transparent;
}

/* Thumb */
.custom-scroll::-webkit-scrollbar-thumb {
  background: rgba(255,255,255,0.2);
  border-radius: 20px;
}

/* Hover */
.custom-scroll::-webkit-scrollbar-thumb:hover {
  background: rgba(255,255,255,0.4);
}

/* navbar slide-in visibility guard */
html.w-mod-js:not(.w-mod-ix3) :is(.navbar.slide-in-animation){visibility:hidden !important;}

/* ── Footer "CC Harris" marquee — port of the dead Webflow IX2 ───────────────
   The export scrolled .carasoul-inner-wrapper with a per-page IX2 interaction
   that doesn't survive the WP port (one data-wf-page for all pages → the
   interaction never activates). Driven here by a self-contained CSS loop, like
   the Collectors Series marquee. The footer already renders TWO identical
   "CC Harris" headings (each with the shared 7vw right margin), so the two
   halves are equal width and translateX(-50%) lands the second exactly where
   the first began — a seamless loop. Global (footer shows on every page). */
.footer-carasoul-wrapper .carasoul-inner-wrapper {
  width: max-content;
  flex-wrap: nowrap;
  will-change: transform;
  animation: cch-footer-marquee 26s linear infinite;
}
@keyframes cch-footer-marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .footer-carasoul-wrapper .carasoul-inner-wrapper { animation: none; }
}

/* --- Newsletter "Email Address" heading (GRO-410 a11y) ---
   Was an <h4> directly after the section's <h2> — axe heading-order flags the
   skipped level. The markup is now an <h3>; these rules restore the exact h4
   look (Anton 1.5rem/24px, 1.3rem under 991px) so nothing changes visually. */
.newsletter-form .newsletter-form-heading {
  color: inherit;
  margin-top: 0;
  margin-bottom: 0;
  font-family: Anton, Arial, sans-serif;
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 24px;
}
@media screen and (max-width: 991px) {
  .newsletter-form .newsletter-form-heading {
    font-size: 1.3rem;
  }
}
