/* v1.0.4 — same visuals as 1.0.3 */
.cfps-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  gap: 1.25rem;
  align-items: start;
  margin-bottom: 1.5rem;
}
.cfps-hero--stacked { grid-template-columns: 1fr; }
@media (max-width: 900px) { .cfps-hero { grid-template-columns: 1fr; } }
.cfps-hero__text p:first-child { margin-top: 0; }

.cfps-slider {
  position: relative; width: 100%; overflow: hidden;
  border-radius: 12px; box-shadow: 0 6px 24px rgba(0,0,0,0.08); background: #fff;
}
.cfps-track {
  display: flex; transition: transform 400ms ease; will-change: transform;
  touch-action: pan-y; cursor: grab;
}
.cfps-track:active { cursor: grabbing; }
.cfps-slide { min-width: 100%; user-select: none; }
.cfps-slide img.cfps-img {
  display: block; width: 100%; height: auto; object-fit: cover;
  aspect-ratio: 4 / 3; border-radius: 12px;
}

.cfps-controls {
  position: absolute; inset: auto 0 0 0;
  display: flex; align-items: center; justify-content: space-between;
  padding: .5rem .5rem .75rem; pointer-events: none;
}
.cfps-controls[data-hide="1"] { display:none; }

.cfps-prev, .cfps-next {
  pointer-events: auto; border: 0; background: transparent; width: 40px; height: 40px;
  border-radius: 999px; display: grid; place-items: center; cursor: pointer;
  position: relative;
}
.cfps-prev::before, .cfps-next::before {
  content: ""; position: absolute; inset: 0; border-radius: 999px; background: rgba(0,0,0,0.55);
  transform: none; transition: background 180ms ease;
}
.cfps-prev:hover::before, .cfps-next:hover::before { background: rgba(0,0,0,0.75); }
.cfps-prev::after, .cfps-next::after {
  content: ""; position: relative; width: 14px; height: 14px;
  mask-size: contain; mask-repeat: no-repeat; mask-position: center;
  -webkit-mask-size: contain; -webkit-mask-repeat: no-repeat; -webkit-mask-position: center;
  background: #fff;
}
.cfps-prev::after { 
  mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="%23fff" d="M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z"/></svg>');
  -webkit-mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="%23fff" d="M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z"/></svg>');
}
.cfps-next::after { 
  mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="%23fff" d="M8.59 16.59 10 18l6-6-6-6-1.41 1.41L13.17 12z"/></svg>');
  -webkit-mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="%23fff" d="M8.59 16.59 10 18l6-6-6-6-1.41 1.41L13.17 12z"/></svg>');
}





/* Hide featured-image wrappers & captions */
.single .post-thumbnail
/* Scoped hide rules: only when body has cfps-has-slider AND only on posts/pages */
body.cfps-has-slider.single-post .entry-thumbnail,
body.cfps-has-slider.page .post-thumbnail,
body.cfps-has-slider.page .entry-thumbnail,
body.cfps-has-slider.single-post img.wp-post-image,
body.cfps-has-slider.page img.wp-post-image,
body.cfps-has-slider .wp-caption .wp-caption-text,
body.cfps-has-slider .figure .wp-caption-text,
body.cfps-has-slider figcaption.wp-caption-text,
body.cfps-has-slider .wp-element-caption { display: none !important; }

/* v1.0.5 — Tap target fix for dots (≥44px target while keeping small visual dot) */









/* Glassy square dots with large tap targets */
.cfps-dot {
  width: 44px !important;
  height: 44px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 6px !important;
  background: transparent !important;
  border: 0 !important;
  cursor: pointer !important;
  position: relative !important;
  pointer-events: auto !important;
}

.cfps-dot::before{
  content:"" !important;
  display:block !important;
  width: 14px !important;
  height: 14px !important;
  border-radius: 4px !important; /* slight rounding */
  background: rgba(255,255,255,0.06) !important; /* subtle glass */
  border: 1px solid rgba(255,255,255,0.35) !important;
  box-shadow: 0 1px 2px rgba(0,0,0,0.12), inset 0 0 0 1px rgba(255,255,255,0.08) !important;
  backdrop-filter: saturate(180%) blur(6px) !important;
  -webkit-backdrop-filter: saturate(180%) blur(6px) !important;
  opacity: .85 !important;
  transition: opacity .2s ease, transform .2s ease, background .2s ease, border-color .2s ease !important;
}

.cfps-dot.is-active::before{
  opacity: 1 !important;
  background: rgba(255,255,255,0.18) !important;
  border-color: rgba(255,255,255,0.6) !important;
  transform: translateZ(0) scale(1.05) !important;
}

.cfps-dot:focus{ outline:none !important; }
.cfps-dot:focus-visible{
  outline: 2px solid rgba(255,255,255,0.65) !important;
  outline-offset: 4px !important;
}

