/**
 * CKL Elementor layout fixes — video section & slider track.
 */

/* Featured video: fill column height */
.elementor-widget-ckl_featured_video {
  width: 100%;
  height: 100%;
}

.elementor-widget-ckl_featured_video .elementor-widget-container {
  height: 100%;
  width: 100%;
}

.ckl-featured-video-root {
  position: relative;
  width: 100%;
  aspect-ratio: 7 / 6;
  overflow: hidden;
  border-radius: 1rem;
  isolation: isolate;
}

@media (min-width: 1024px) {
  .ckl-featured-video-root {
    aspect-ratio: auto;
    min-height: 540px;
  }
}

/* Shared video card overlay (featured + slider slides) */
.ckl-featured-video-root .video-thumbnail-overlay,
.ckl-featured-video-root .video-embed,
.ckl-slide-video-root .video-thumbnail-overlay,
.ckl-slide-video-root .video-embed {
  position: absolute;
  inset: 0;
  overflow: hidden;
  border-radius: inherit;
}

.ckl-featured-video-root .video-thumbnail-overlay img,
.ckl-featured-video-root .video-iframe,
.ckl-slide-video-root .video-thumbnail-overlay img,
.ckl-slide-video-root .video-iframe {
  display: block;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 0;
  border-radius: inherit;
}

.ckl-slide-video-root {
  position: relative;
  width: 301px;
  height: 308px;
  flex-shrink: 0;
  overflow: hidden;
  border-radius: 0.75rem;
  isolation: isolate;
}

.ckl-slide-video-root .video-thumbnail-overlay p,
.ckl-featured-video-root .video-thumbnail-overlay p {
  z-index: 2;
  margin: 0;
}

/* Video slider — viewport shows 1 slide + natural peek of the next (mobile) or 2 full (desktop) */
.ckl-video-slider {
  width: 100%;
}

.ckl-video-slider__viewport,
.wpcore-slider__viewport {
  width: 100% !important;
  overflow: hidden !important;
}

@media (min-width: 640px) {
  .ckl-video-slider__viewport,
  .wpcore-slider__viewport {
    max-width: calc(301px * 2 + 24px) !important;
  }
}

.wpcore-slider {
  width: 100%;
  max-width: 100%;
  overflow: visible;
}

.wpcore-slider__track {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: stretch;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.wpcore-slider__track::-webkit-scrollbar {
  display: none;
}

.ckl-video-content {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  position: relative;
  width: 100%;
  overflow: hidden;
}

.ckl-video-intro {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.ckl-video-intro p {
  margin-bottom: 0 !important;
}

.wpcore-slider__nav {
  pointer-events: auto;
  position: relative;
  z-index: 5;
}

.wpcore-slider__prev,
.wpcore-slider__next {
  pointer-events: auto;
  position: relative;
  z-index: 6;
}

.e-con.ckl-video-wrapper,
.elementor-element.ckl-video-wrapper {
  max-width: 1440px;
  margin: 0 auto;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

@media (min-width: 1024px) {
  .e-con.ckl-video-wrapper,
  .elementor-element.ckl-video-wrapper {
    flex-direction: row !important;
    align-items: stretch !important;
  }

  .ckl-video-wrapper > .elementor-element,
  .ckl-video-wrapper > .e-con {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    max-width: none !important;
    width: auto !important;
  }
}

/* CKL Goals — goals.php: cream wrap + yellow panel, border-radius TR/BL only */
.ckl-goals-wrap {
  background-color: #f5f4f0;
}

.ckl-goals-panel.e-con,
.elementor-element.ckl-goals-panel {
  overflow: hidden;
  --border-radius: 0 !important;
  border-radius: 0 !important;
}

@media (min-width: 1024px) {
  .ckl-goals-panel.e-con,
  .elementor-element.ckl-goals-panel {
    --border-radius: 0 50px 0 50px !important;
    border-top-right-radius: 50px !important;
    border-bottom-left-radius: 50px !important;
  }

  .elementor-element.ckl-goals-panel:not(
      .elementor-motion-effects-element-type-background
    ),
  .elementor-element.ckl-goals-panel
    > .elementor-motion-effects-container
    > .elementor-motion-effects-layer {
    background-color: #ecb95d !important;
    background-image: none !important;
    border-radius: inherit;
  }
}

.ckl-goals-inner,
.ckl-goals-inner > .e-con-inner {
  position: relative;
}

.ckl-goals-inner {
  width: 100%;
  max-width: 90rem;
  margin-left: auto;
  margin-right: auto;
  align-items: center !important;
}

@media (min-width: 1024px) {
  .ckl-goals-inner {
    padding-left: 0 !important;
    padding-right: 0 !important;
    flex-direction: column !important;
    min-height: 380px;
  }
}

@media (min-width: 1280px) {
  .ckl-goals-inner {
    align-items: flex-start !important;
    padding-left: 1.5rem !important;
  }
}

@media (min-width: 1281px) {
  .ckl-goals-inner {
    padding-left: 4.25rem !important;
  }
}

.ckl-goals-image-col {
  flex: 0 0 auto;
  width: 100%;
  max-width: 414px;
  padding-left: 1rem;
  padding-right: 1rem;
}

@media (min-width: 1024px) {
  .ckl-goals-image-col {
    position: relative;
    z-index: 1;
    padding-left: 0;
    padding-right: 0;
  }
}

.ckl-goals-image-col img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0.5rem;
  box-shadow:
    0 4px 6px -1px rgb(0 0 0 / 0.1),
    0 2px 4px -2px rgb(0 0 0 / 0.1);
}

@media (min-width: 1024px) {
  .ckl-goals-image-col img {
    border-radius: 1rem;
  }
}

.ckl-goals-content-col {
  width: 100%;
  margin-top: 1.75rem;
}

@media (min-width: 1280px) {
  .ckl-goals-content-col {
    max-width: 860px;
    position: absolute !important;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 100%;
    margin-top: 0;
    z-index: 2;
  }
}

@media (min-width: 1281px) {
  .ckl-goals-content-col {
    max-width: 994px;
  }
}

.ckl-goals-intro {
  text-align: center;
  padding-left: 1rem;
  padding-right: 1rem;
}

@media (min-width: 1024px) {
  .ckl-goals-intro {
    padding-left: 4.75rem;
    padding-right: 4.75rem;
  }
}

@media (min-width: 1280px) {
  .ckl-goals-intro {
    padding-left: 6.75rem;
    padding-right: 6.75rem;
  }
}

.ckl-goals-intro .elementor-widget-heading .elementor-heading-title {
  color: #fbf1df !important;
}

.ckl-goals-intro .elementor-widget-text-editor,
.ckl-goals-intro .elementor-widget-text-editor p {
  color: #fbf1df;
  margin: 0;
}

/* Cards row — horizontal + overlap onto left image */
.e-con.ckl-goals-cards,
.elementor-element.ckl-goals-cards {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  gap: 1.25rem !important;
  width: 100%;
  position: relative;
  overflow-x: auto;
  scrollbar-width: none;
  padding-left: 1rem;
  padding-right: 1rem;
}

.ckl-goals-cards::-webkit-scrollbar {
  display: none;
}

@media (min-width: 1024px) {
  .e-con.ckl-goals-cards,
  .elementor-element.ckl-goals-cards {
    z-index: 3;
    justify-content: center;
    padding-left: 0;
    padding-right: 0;
  }
}

@media (min-width: 1280px) {
  .e-con.ckl-goals-cards,
  .elementor-element.ckl-goals-cards {
    margin-left: -7rem !important;
    width: calc(100% + 5rem);
  }
}

@media (min-width: 1281px) {
  .e-con.ckl-goals-cards,
  .elementor-element.ckl-goals-cards {
    margin-left: -5rem !important;
  }
}

.ckl-goals-cards > .elementor-element {
  flex: 0 0 301px !important;
  min-width: 301px !important;
  align-self: stretch !important;
}

@media (min-width: 1280px) {
  .ckl-goals-cards > .elementor-element {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    max-width: none !important;
    width: auto !important;
  }
}

.elementor-widget-ckl_feature_card {
  display: flex;
  flex-direction: column;
  width: 100%;
}

@media (min-width: 1024px) {
  .elementor-widget-ckl_feature_card {
    position: relative;
    z-index: 3;
  }
}

.elementor-widget-ckl_feature_card .elementor-widget-container {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.ckl-feature-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  width: 100%;
  flex: 1;
  padding: 2rem 1.5rem;
  border-radius: 0.5rem;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  box-sizing: border-box;
}

.ckl-feature-card__badge {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  margin: 0 auto;
  border-radius: 9999px;
  font-weight: 600;
  font-size: 1rem;
  line-height: 1;
}

.ckl-feature-card__body {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  width: 100%;
  margin-top: 2rem;
}

.ckl-feature-card__title {
  margin: 0;
  padding: 0;
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.35;
}

@media (min-width: 768px) {
  .ckl-feature-card__title {
    font-size: 1.25rem;
  }
}

.ckl-feature-card__desc {
  margin: 0;
  padding: 0;
  font-size: 0.875rem;
  line-height: 1.5;
}

@media (min-width: 768px) {
  .ckl-feature-card__desc {
    font-size: 1rem;
  }
}

/* CKL Goals widget — goals.php */
.ckl-goals-desc p {
  color: var(--ckl-goals-desc-color, #fbf1df);
  font-size: 0.875rem;
  line-height: 1.7;
  margin: 0;
}

.ckl-goals-desc p + p {
  margin-top: 0.5rem;
}

@media (min-width: 768px) {
  .ckl-goals-desc p {
    font-size: 1.125rem;
  }
}

/* Calculator — composable section (bg image + form card + side photo) */
.ckl-calculator-section {
  position: relative;
  overflow: hidden;
}

.ckl-calculator-section > .e-con-inner {
  position: relative;
  z-index: 1;
}

.elementor-element.ckl-calculator-section:not(
    .elementor-motion-effects-element-type-background
  ),
.elementor-element.ckl-calculator-section
  > .elementor-motion-effects-container
  > .elementor-motion-effects-layer {
  background-position: top center !important;
  background-size: cover !important;
}

.ckl-calculator-bg {
  position: absolute;
  top: 0;
  left: 50%;
  width: 100vw;
  height: 37rem;
  transform: translateX(-50%);
  overflow: hidden;
  z-index: 0;
  background-repeat: no-repeat;
  background-size: cover;
}

.ckl-calculator-inner {
  position: relative;
  z-index: 1;
}

.ckl-calculator-intro {
  max-width: 880px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.ckl-calculator-intro .elementor-widget-text-editor p {
  margin: 0;
}

.ckl-calculator-cards {
  max-width: 64rem;
  margin-left: auto;
  margin-right: auto;
  padding-left: 0;
  padding-right: 0;
}

@media (min-width: 640px) {
  .ckl-calculator-cards {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}

.e-con.ckl-calculator-cards,
.elementor-element.ckl-calculator-cards {
  align-items: stretch !important;
}

.ckl-calculator-form-col,
.ckl-calculator-image-col {
  align-self: stretch !important;
}

.ckl-calculator-form-col > .e-con-inner,
.ckl-calculator-image-col > .e-con-inner {
  height: 100%;
  display: flex;
  flex-direction: column;
}

.elementor-widget-ckl_onboarding_form {
  flex: 1 1 auto;
  width: 100%;
  height: 100%;
}

.elementor-widget-ckl_onboarding_form .elementor-widget-container {
  height: 100%;
}

.ckl-calculator-image-col {
  display: none;
  overflow: hidden;
  border-radius: 1rem;
  box-shadow:
    0 4px 6px -1px rgb(0 0 0 / 0.1),
    0 2px 4px -2px rgb(0 0 0 / 0.1);
}

.ckl-calculator-intro {
  margin-bottom: 20px;
}

@media (min-width: 821px) {
  .ckl-calculator-intro {
    margin-bottom: 5.625rem;
  }
}

@media (min-width: 768px) {
  .ckl-calculator-image-col {
    display: flex;
    position: relative;
    min-height: 0;
  }

  .ckl-calculator-image-col > .e-con-inner {
    position: relative;
    flex: 1 1 auto;
    min-height: 100%;
  }

  .ckl-calculator-image-col .elementor-widget-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
  }

  .ckl-calculator-image-col
    .elementor-widget-image
    .elementor-widget-container {
    height: 100%;
    width: 100%;
  }

  .ckl-calculator-image-col .elementor-widget-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 1rem;
  }
}

@media (max-width: 1023px) {
  .ckl-calculator-bg {
    background-position: center top !important;
    background-size: cover !important;
  }

  .ckl-calculator-bg img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
  }

  .ckl-calculator-intro {
    padding: 36px 50px;
  }

  .ckl-calculator-inner {
    padding: 0 !important;
  }
}

/* Pricing — composable section */
.ckl-pricing-section > .e-con-inner {
  position: relative;
  z-index: 1;
}

.ckl-pricing-intro {
  max-width: 846px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.ckl-pricing-intro .elementor-widget-text-editor p {
  margin: 0;
}

.e-con.ckl-pricing-cards,
.elementor-element.ckl-pricing-cards {
  align-items: end !important;
  justify-content: center;
  max-width: 956px;
  margin-left: auto;
  margin-right: auto;
}

.ckl-pricing-plan-col {
  align-self: stretch !important;
}

.ckl-pricing-plan-col > .e-con-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.ckl-pricing-plan {
  display: flex;
  justify-content: center;
}

.ckl-plan-btn:hover {
  background: var(--ckl-plan-accent, var(--color-primary-500)) !important;
  color: #fff !important;
}

@media (max-width: 1023px) {
  .e-con.ckl-pricing-cards,
  .elementor-element.ckl-pricing-cards {
    max-width: 300px;
    margin-left: auto;
    margin-right: auto;
    flex-direction: column !important;
    align-items: center !important;
  }

  .elementor-widget-ckl_pricing_plan {
    width: 100% !important;
  }
}

/* FAQ — faq.php */
.ckl-faq {
  background: var(--ckl-faq-bg, #f5f4f0);
}

.ckl-faq-title,
.ckl-faq .ckl-faq-question {
  color: var(--ckl-faq-title, #101828);
}

.ckl-faq .ckl-faq-sub p {
  color: var(--ckl-faq-sub, #6a7282);
  margin: 0;
}

.ckl-faq .faq-item {
  background: var(--ckl-faq-card, #fdfdfc);
}

.ckl-faq .faq-item .faq-toggle {
  background: var(--ckl-faq-accent, #ecb95d);
}

.ckl-faq .faq-item .faq-toggle:hover {
  filter: brightness(0.92);
}

.ckl-faq .faq-answer p {
  margin: 0;
}

.ckl-faq .faq-answer p + p {
  margin-top: 0.5rem;
}

/* Heading Hero — heading-hero.php */
.ckl-heading-hero-title p,
.ckl-heading-hero-sub p {
  margin: 0;
}

/* Terms of Service — term-of-service.php */
.ckl-terms-body .terms-content p {
  margin: 0;
}

.ckl-terms-body .terms-content p + p {
  margin-top: 0.75rem;
}

.ckl-terms-body .terms-content ul,
.ckl-terms-body .terms-content ol {
  margin: 0.75rem 0 0;
  padding-left: 1.25rem;
}

.ckl-terms-body .terms-content li {
  margin-top: 0.375rem;
}

/* Subscription header — subscription-header.php */
.ckl-subscription-header-sub p,
.ckl-subscription-header-banner p {
  margin: 0 !important;
}

/* ============================================
   Testimonial Story — fade + expand pattern
   ============================================ */

.ckl-testimonial-story .ckl-story-title p {
  margin: 0;
  font-size: inherit;
  line-height: inherit;
  font-weight: inherit;
  color: inherit;
}

.ckl-testimonial-story .ckl-story-desc {
  font-size: 0.875rem !important;
  line-height: 1.7;
}

.ckl-testimonial-story .ckl-story-desc p,
.ckl-testimonial-story .ckl-story-desc div {
  color: var(--ckl-story-desc-color, #364153) !important;
  font-size: inherit !important;
  line-height: inherit;
  margin: 0;
}

@media (min-width: 768px) {
  .ckl-testimonial-story .ckl-story-desc {
    font-size: 1.125rem !important;
  }
}

.ckl-testimonial-story .ckl-story-desc * + * {
  margin-top: 0.5rem;
}

.ckl-testimonial-story .ckl-story-desc-toggle:hover {
  background: #fff7e6 !important;
}

.ckl-testimonial-story .ckl-story-desc-toggle:focus-visible {
  outline: 2px solid var(--color-harvest-gold, #d4a843);
  outline-offset: 2px;
}

.ckl-testimonial-title p {
  margin: 0;
  line-height: inherit;
}

.ckl-testimonial-desc p {
  color: var(--ckl-testimonial-desc-color, #364153);
  font-size: 0.875rem;
  line-height: 1.7;
  margin: 0;
}

.ckl-testimonial-desc p + p {
  margin-top: 0.5rem;
}

@media (min-width: 768px) {
  .ckl-testimonial-desc p {
    font-size: 1.125rem;
  }
}

.ckl-news-desc p {
  color: var(--ckl-news-desc-color, #364153);
  margin: 0;
}

/* Testimonial page — content wrapper */
.ckl-testimonial-wrap {
  max-width: 1440px;
  width: 100%;
  margin: 0 auto;
}

/* Testimonial page — native video embed */
.ckl-testimonial-video-native .elementor-video-container,
.ckl-testimonial-video-native iframe,
.ckl-testimonial-video-native video {
  border-radius: 16px;
  overflow: hidden;
  width: 100%;
  height: auto;
}

@media (min-width: 768px) {
  .ckl-testimonial-video-native .elementor-video-container {
    height: 414px;
  }
  .ckl-testimonial-video-native iframe,
  .ckl-testimonial-video-native video {
    height: 414px;
  }
}

@media (min-width: 1024px) {
  .ckl-testimonial-video-native .elementor-video-container {
    height: 720px;
  }
  .ckl-testimonial-video-native iframe,
  .ckl-testimonial-video-native video {
    height: 720px;
  }
}
