/* ============================================================
   RETA UK — Custom Theme CSS
   Prefix: ctf-
   Fonts: Josefin Sans (headings) + Nunito Sans (body)
   ============================================================ */

/* --- TOKENS --- */
:root {
  --ctf-navy:      #1E3A5F;
  --ctf-blue:      #2E6DA4;
  --ctf-sky:       #4BA3D3;
  --ctf-sky-light: #EAF4FB;
  --ctf-sky-mid:   #C5E2F4;
  --ctf-sand:      #F4F6F9;
  --ctf-white:     #FFFFFF;
  --ctf-text-p:    #1E3A5F;
  --ctf-text-s:    #4A6080;
  --ctf-text-m:    #8A9BB0;
  --ctf-border:    rgba(30,58,95,0.1);
  --ctf-border-sky:rgba(75,163,211,0.25);
  --ctf-radius:    10px;
  --ctf-max:       1280px;
}

/* --- BASE --- */
.ctf-wrap {
  max-width: var(--ctf-max);
  margin: 0 auto;
  padding: 0 24px;
}

/* --- ANNOUNCEMENT BAR --- */
.ctf-announce {
  background: var(--ctf-navy);
  padding: 8px 24px;
  text-align: center;
  font-family: 'Nunito Sans', sans-serif;
  font-size: 12px;
  color: #a8c4dc;
  letter-spacing: 0.02em;
}
.ctf-announce strong { color: #fff; font-weight: 700; }
.ctf-announce a { color: #4BA3D3; text-decoration: none; }

/* --- HERO --- */
.ctf-hero {
  background: linear-gradient(108deg, #F4F7FB 0%, #EAF4FB 55%, #deeef8 100%);
  padding: 72px 0 64px;
  position: relative;
  overflow: hidden;
}
.ctf-hero__inner {
  max-width: var(--ctf-max);
  margin: 0 auto;
  padding: 0 24px;
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 48px;
  align-items: center;
}
.ctf-hero__hex-bg {
  position: absolute;
  right: -60px; top: -60px;
  width: 400px; height: 400px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpolygon points='50,2 93,26 93,74 50,98 7,74 7,26' fill='none' stroke='%232E6DA4' stroke-opacity='0.05' stroke-width='1.5'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  pointer-events: none;
}
.ctf-hero__badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'Josefin Sans', sans-serif;
  font-size: 10px;
  font-weight: 700;
  color: var(--ctf-blue);
  background: rgba(46,109,164,0.08);
  border: 0.5px solid rgba(46,109,164,0.2);
  padding: 5px 14px;
  border-radius: 20px;
  margin-bottom: 20px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.ctf-hero__badge::before {
  content: '';
  width: 6px; height: 6px;
  background: var(--ctf-sky);
  border-radius: 50%;
  flex-shrink: 0;
}
.ctf-hero__title {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 44px;
  font-weight: 700;
  color: var(--ctf-navy);
  line-height: 1.15;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  margin-bottom: 20px;
}
.ctf-hero__title em {
  color: var(--ctf-blue);
  font-style: normal;
}
.ctf-hero__desc {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 16px;
  color: var(--ctf-text-s);
  line-height: 1.8;
  margin-bottom: 32px;
  max-width: 440px;
}
.ctf-hero__btns {
  display: flex;
  gap: 12px;
  margin-bottom: 32px;
  flex-wrap: wrap;
}
.ctf-btn-primary {
  background: var(--ctf-navy);
  color: #fff;
  font-family: 'Josefin Sans', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 14px 32px;
  border-radius: 8px;
  text-decoration: none;
  display: inline-block;
  transition: background 0.2s, transform 0.15s;
}
.ctf-btn-primary:hover {
  background: var(--ctf-blue);
  transform: translateY(-1px);
}
.ctf-btn-secondary {
  background: transparent;
  color: var(--ctf-navy);
  font-family: 'Josefin Sans', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 14px 28px;
  border-radius: 8px;
  border: 1px solid rgba(30,58,95,0.25);
  text-decoration: none;
  display: inline-block;
  transition: border-color 0.2s, color 0.2s;
}
.ctf-btn-secondary:hover {
  border-color: var(--ctf-navy);
  color: var(--ctf-navy);
}
.ctf-hero__trust {
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
}
.ctf-trust-pill {
  display: flex;
  align-items: center;
  gap: 7px;
  font-family: 'Nunito Sans', sans-serif;
  font-size: 12px;
  color: var(--ctf-text-s);
}
.ctf-trust-pill::before {
  content: '';
  width: 6px; height: 6px;
  background: var(--ctf-sky);
  border-radius: 50%;
  flex-shrink: 0;
}
.ctf-hero__image {
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 8px 48px rgba(30,58,95,0.12);
}
.ctf-hero__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
@media (max-width: 768px) {
  .ctf-hero__inner {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .ctf-hero__title { font-size: 30px; }
  .ctf-hero__image { order: -1; max-height: 260px; }
}

/* --- SECTION HEADER --- */
.ctf-section {
  padding: 72px 0;
}
.ctf-section--alt {
  background: var(--ctf-sand);
}
.ctf-section__label {
  display: block;
  font-family: 'Josefin Sans', sans-serif;
  font-size: 10px;
  font-weight: 700;
  color: var(--ctf-sky);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  margin-bottom: 8px;
}
.ctf-section__title {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 28px;
  font-weight: 700;
  color: var(--ctf-navy);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  line-height: 1.2;
}
.ctf-section__sub {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 15px;
  color: var(--ctf-text-s);
  margin-top: 8px;
  line-height: 1.7;
}

/* --- TOP SELLERS CAROUSEL --- */
.ctf-carousel-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 28px;
}
.ctf-carousel-arrows {
  display: flex;
  align-items: center;
  gap: 8px;
}
.ctf-arrow {
  width: 36px; height: 36px;
  border-radius: 50%;
  border: 1px solid var(--ctf-border);
  background: var(--ctf-white);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--ctf-navy);
  font-size: 14px;
  transition: border-color 0.2s, background 0.2s;
  user-select: none;
}
.ctf-arrow:hover {
  border-color: var(--ctf-sky);
  background: var(--ctf-sky-light);
}
.ctf-view-all {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 10px;
  font-weight: 700;
  color: var(--ctf-sky);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
  margin-left: 8px;
}
.ctf-carousel-track {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 8px;
}
.ctf-carousel-track::-webkit-scrollbar { height: 3px; }
.ctf-carousel-track::-webkit-scrollbar-thumb {
  background: var(--ctf-sky-mid);
  border-radius: 2px;
}
.ctf-product-card {
  background: var(--ctf-white);
  border: 0.5px solid var(--ctf-border);
  border-radius: var(--ctf-radius);
  padding: 16px;
  min-width: 200px;
  flex-shrink: 0;
  scroll-snap-align: start;
  transition: border-color 0.2s, box-shadow 0.2s;
  text-decoration: none;
  display: block;
}
.ctf-product-card:hover {
  border-color: var(--ctf-sky);
  box-shadow: 0 4px 20px rgba(30,58,95,0.08);
}
.ctf-product-card__img {
  background: var(--ctf-sky-light);
  border-radius: 8px;
  height: 200px;
  margin-bottom: 14px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ctf-product-card__img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  padding: 8px;
}
.ctf-product-card__tag {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 9px;
  font-weight: 700;
  color: var(--ctf-blue);
  background: rgba(46,109,164,0.08);
  padding: 3px 10px;
  border-radius: 20px;
  display: inline-block;
  margin-bottom: 8px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.ctf-product-card__title {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 15px;
  font-weight: 700;
  color: var(--ctf-navy);
  margin-bottom: 6px;
  letter-spacing: 0.03em;
}
.ctf-product-card__price {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 16px;
  color: var(--ctf-blue);
  font-weight: 700;
}
.ctf-product-card__meta {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 11px;
  color: var(--ctf-text-m);
  margin-top: 3px;
}
.ctf-carousel-dots {
  display: flex;
  gap: 6px;
  justify-content: center;
  margin-top: 20px;
}
.ctf-dot {
  width: 24px; height: 3px;
  background: var(--ctf-sky);
  border-radius: 2px;
  transition: width 0.2s, background 0.2s;
}
.ctf-dot--off {
  width: 6px;
  background: var(--ctf-sky-mid);
}

/* --- ABOUT --- */
.ctf-about__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}
.ctf-about__image {
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 8px 48px rgba(30,58,95,0.1);
}
.ctf-about__image img {
  width: 100%;
  display: block;
}
.ctf-about__text p {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 15px;
  color: var(--ctf-text-s);
  line-height: 1.85;
  margin-bottom: 16px;
}
.ctf-about__quote {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 13px;
  color: var(--ctf-text-s);
  font-style: italic;
  border-left: 3px solid var(--ctf-sky-mid);
  padding-left: 16px;
  margin: 20px 0 28px;
  line-height: 1.7;
}
.ctf-about__stats {
  display: flex;
  gap: 40px;
  margin-top: 32px;
  padding-top: 28px;
  border-top: 0.5px solid var(--ctf-border);
}
.ctf-stat__num {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 28px;
  font-weight: 700;
  color: var(--ctf-navy);
  letter-spacing: 0.02em;
}
.ctf-stat__label {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 11px;
  color: var(--ctf-text-m);
  margin-top: 3px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.ctf-about__pillars {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-top: 28px;
}
.ctf-pillar {
  background: var(--ctf-sky-light);
  border: 0.5px solid var(--ctf-border-sky);
  border-radius: var(--ctf-radius);
  padding: 18px 20px;
}
.ctf-pillar__title {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 12px;
  font-weight: 700;
  color: var(--ctf-navy);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 6px;
}
.ctf-pillar__text {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 12px;
  color: var(--ctf-text-s);
  line-height: 1.65;
}
@media (max-width: 768px) {
  .ctf-about__grid { grid-template-columns: 1fr; gap: 32px; }
  .ctf-about__pillars { grid-template-columns: 1fr; }
  .ctf-about__stats { gap: 20px; }
}

/* --- TRUSTPILOT BAND --- */
.ctf-tp {
  background: var(--ctf-navy);
  padding: 56px 0;
}
.ctf-tp__inner {
  max-width: var(--ctf-max);
  margin: 0 auto;
  padding: 0 24px;
  display: grid;
  grid-template-columns: auto 1px 1fr;
  gap: 48px;
  align-items: center;
}
.ctf-tp__divider {
  background: rgba(255,255,255,0.1);
  align-self: stretch;
}
.ctf-tp__label {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 9px;
  font-weight: 700;
  color: #5A7A99;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  margin-bottom: 10px;
}
.ctf-tp__score {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 42px;
  font-weight: 700;
  color: #fff;
  line-height: 1;
  letter-spacing: 0.02em;
}
.ctf-tp__stars {
  display: flex;
  gap: 4px;
  margin: 8px 0 6px;
}
.ctf-star {
  width: 20px; height: 20px;
  background: #00B67A;
  border-radius: 3px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  color: #fff;
}
.ctf-tp__meta {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 12px;
  color: #7A99BA;
}
.ctf-tp__meta strong { color: #a8c4dc; }
.ctf-tp__reviews {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.ctf-tp__card {
  background: rgba(255,255,255,0.05);
  border: 0.5px solid rgba(255,255,255,0.1);
  border-radius: 10px;
  padding: 16px 18px;
}
.ctf-tp__card-stars {
  font-size: 11px;
  color: #00B67A;
  margin-bottom: 8px;
  letter-spacing: 1px;
}
.ctf-tp__card p {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 12px;
  color: #a8c4dc;
  line-height: 1.65;
  margin-bottom: 10px;
}
.ctf-tp__card-author {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 11px;
  color: #5A7A99;
}
@media (max-width: 768px) {
  .ctf-tp__inner { grid-template-columns: 1fr; gap: 32px; }
  .ctf-tp__divider { display: none; }
  .ctf-tp__reviews { grid-template-columns: 1fr; }
}

/* --- CATEGORIES --- */
.ctf-cat__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
.ctf-cat__card {
  background: var(--ctf-white);
  border: 0.5px solid var(--ctf-border);
  border-radius: var(--ctf-radius);
  padding: 28px 20px;
  text-align: center;
  text-decoration: none;
  display: block;
  transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
}
.ctf-cat__card:hover {
  border-color: var(--ctf-sky);
  box-shadow: 0 4px 20px rgba(75,163,211,0.12);
  transform: translateY(-2px);
}
.ctf-cat__icon {
  width: 52px; height: 52px;
  background: var(--ctf-sky-light);
  border-radius: 14px;
  margin: 0 auto 16px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ctf-cat__card h3 {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: var(--ctf-navy);
  margin-bottom: 6px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.ctf-cat__card p {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 12px;
  color: var(--ctf-text-m);
  line-height: 1.5;
}
.ctf-cat__count {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 10px;
  color: var(--ctf-sky);
  margin-top: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
}
@media (max-width: 768px) {
  .ctf-cat__grid { grid-template-columns: repeat(2, 1fr); }
}

/* --- FAQ --- */
.ctf-faq__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  align-items: start;
}
.ctf-faq__item {
  border: 0.5px solid var(--ctf-border);
  border-radius: 10px;
  overflow: hidden;
  background: #ffffff !important;
  margin-bottom: 10px;
}
.ctf-faq__question {
  padding: 16px 20px;
  font-family: 'Josefin Sans', sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: var(--ctf-navy);
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  letter-spacing: 0.02em;
  gap: 12px;
}
.ctf-faq__toggle {
  color: var(--ctf-sky);
  font-size: 20px;
  font-weight: 300;
  flex-shrink: 0;
  font-family: 'Nunito Sans', sans-serif;
  line-height: 1;
  transition: transform 0.2s;
}
.ctf-faq__item.open .ctf-faq__toggle {
  transform: rotate(45deg);
}
.ctf-faq__answer {
  padding: 0 20px;
  font-family: 'Nunito Sans', sans-serif;
  font-size: 13px;
  color: var(--ctf-text-s);
  line-height: 1.75;
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease, padding 0.3s ease;
}
.ctf-faq__item.open .ctf-faq__answer {
  padding: 0 20px 16px;
  max-height: 200px;
}
@media (max-width: 768px) {
  .ctf-faq__grid { grid-template-columns: 1fr; }
}

/* --- BLOG --- */
.ctf-blog__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.ctf-blog__card {
  border: 0.5px solid var(--ctf-border);
  border-radius: var(--ctf-radius);
  overflow: hidden;
  background: var(--ctf-white);
  text-decoration: none;
  display: block;
  transition: box-shadow 0.2s, transform 0.2s;
}
.ctf-blog__card:hover {
  box-shadow: 0 4px 20px rgba(30,58,95,0.08);
  transform: translateY(-2px);
}
.ctf-blog__thumb {
  background: var(--ctf-sky-light);
  height: 180px;
  overflow: hidden;
}
.ctf-blog__thumb img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.3s;
}
.ctf-blog__card:hover .ctf-blog__thumb img { transform: scale(1.03); }
.ctf-blog__body { padding: 18px 20px; }
.ctf-blog__tag {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 9px;
  font-weight: 700;
  color: var(--ctf-blue);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 8px;
}
.ctf-blog__card h3 {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--ctf-navy);
  line-height: 1.45;
  margin-bottom: 8px;
  letter-spacing: 0.01em;
}
.ctf-blog__card p {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 12px;
  color: var(--ctf-text-m);
}
@media (max-width: 768px) {
  .ctf-blog__grid { grid-template-columns: 1fr; }
}

/* --- DISCLAIMER STRIP --- */
.ctf-disclaimer {
  background: var(--ctf-sky-light);
  border-top: 0.5px solid var(--ctf-border-sky);
  border-bottom: 0.5px solid var(--ctf-border-sky);
  padding: 14px 24px;
  text-align: center;
  font-family: 'Nunito Sans', sans-serif;
  font-size: 12px;
  color: var(--ctf-text-m);
  letter-spacing: 0.01em;
}
.ctf-disclaimer strong {
  color: var(--ctf-navy);
  font-weight: 700;
}

/* --- PRODUCTS GRID (4 cols desktop, 2 cols mobile) --- */
.ctf-products-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
.ctf-product-card__img {
  height: 220px;
}
@media (max-width: 768px) {
  /* Override any Horizon section padding on mobile */
  #ctf-top-sellers,
  #ctf-top-sellers .ctf-wrap,
  #ctf-top-sellers .section {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  #ctf-top-sellers > .ctf-wrap {
    padding: 0 16px !important;
    box-sizing: border-box;
    width: 100%;
  }
  .ctf-products-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    width: 100%;
    box-sizing: border-box;
  }
  .ctf-product-card {
    padding: 10px;
    min-width: 0;
    width: 100%;
    box-sizing: border-box;
  }
  .ctf-product-card__img {
    height: 200px;
    width: 100%;
  }
  .ctf-product-card__img img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    padding: 8px;
  }
  .ctf-product-card__title {
    font-size: 12px;
  }
  .ctf-product-card__price {
    font-size: 12px;
  }
}

/* --- FAQ PAGE --- */
.ctf-faq-page__hero {
  background: linear-gradient(108deg, #F4F7FB 0%, #EAF4FB 60%, #deeef8 100%);
  padding: 64px 0 56px;
  border-bottom: 0.5px solid var(--ctf-border);
}
.ctf-faq-page__title {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 40px;
  font-weight: 700;
  color: var(--ctf-navy);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  margin-bottom: 14px;
  margin-top: 8px;
}
.ctf-faq-page__sub {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 15px;
  color: var(--ctf-text-s);
  line-height: 1.75;
  max-width: 520px;
}
.ctf-faq-page__sub a {
  color: var(--ctf-blue);
  text-decoration: underline;
}
.ctf-faq-page__content {
  padding: 56px 24px;
}
.ctf-faq-page__group {
  margin-bottom: 48px;
}
.ctf-faq-page__group-title {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 13px;
  font-weight: 700;
  color: var(--ctf-sky);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  margin-bottom: 16px;
  padding-bottom: 10px;
  border-bottom: 0.5px solid var(--ctf-border);
}
.ctf-faq-page__cta {
  background: var(--ctf-navy);
  padding: 48px 24px;
  text-align: center;
}
.ctf-faq-page__cta p {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 22px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 20px;
}
@media (max-width: 768px) {
  .ctf-faq-page__title { font-size: 28px; }
}

/* --- LEGAL PAGES --- */
.ctf-legal {
  max-width: 780px;
  margin: 0 auto;
  padding: 64px 24px 80px;
}
.ctf-legal__hero {
  background: linear-gradient(108deg, #F4F7FB 0%, #EAF4FB 60%, #deeef8 100%);
  padding: 56px 0 48px;
  border-bottom: 0.5px solid var(--ctf-border);
  margin-bottom: 0;
}
.ctf-legal__hero .ctf-wrap { max-width: 780px; }
.ctf-legal__badge {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: 'Josefin Sans', sans-serif;
  font-size: 10px; font-weight: 700; color: var(--ctf-blue);
  background: rgba(46,109,164,0.08); border: 0.5px solid rgba(46,109,164,0.2);
  padding: 4px 12px; border-radius: 20px; margin-bottom: 14px;
  letter-spacing: 0.12em; text-transform: uppercase;
}
.ctf-legal__title {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 36px; font-weight: 700; color: var(--ctf-navy);
  text-transform: uppercase; letter-spacing: 0.03em; line-height: 1.2;
  margin-bottom: 10px;
}
.ctf-legal__updated {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 12px; color: var(--ctf-text-m);
}
.ctf-legal h2 {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 14px; font-weight: 700; color: var(--ctf-navy);
  text-transform: uppercase; letter-spacing: 0.1em;
  margin: 36px 0 10px;
  padding-bottom: 8px;
  border-bottom: 0.5px solid var(--ctf-border);
}
.ctf-legal p {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 14px; color: var(--ctf-text-s); line-height: 1.85;
  margin-bottom: 12px;
}
.ctf-legal ul {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 14px; color: var(--ctf-text-s); line-height: 1.85;
  margin: 0 0 14px 20px;
}
.ctf-legal ul li { margin-bottom: 5px; }
.ctf-legal .ctf-legal__warning {
  background: rgba(75,163,211,0.08);
  border: 0.5px solid var(--ctf-border-sky);
  border-left: 3px solid var(--ctf-sky);
  border-radius: 8px;
  padding: 14px 18px;
  margin: 20px 0;
  font-family: 'Nunito Sans', sans-serif;
  font-size: 13px; color: var(--ctf-text-s); line-height: 1.7;
}
.ctf-legal .ctf-legal__deny {
  color: #c0392b; font-weight: 700;
}
.ctf-legal .ctf-legal__allow {
  color: #27ae60; font-weight: 700;
}
@media (max-width: 768px) {
  .ctf-legal__title { font-size: 26px; }
  .ctf-legal { padding: 40px 20px 60px; }
}

/* --- CONTACT PAGE --- */
.ctf-contact__wrap {
  padding: 64px 24px 80px;
}
.ctf-contact__grid {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 48px;
  align-items: start;
}
.ctf-contact__info {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.ctf-contact__card {
  background: var(--ctf-white);
  border: 0.5px solid var(--ctf-border);
  border-radius: var(--ctf-radius);
  padding: 20px;
  display: flex;
  gap: 16px;
  align-items: flex-start;
}
.ctf-contact__icon {
  width: 44px; height: 44px;
  background: var(--ctf-sky-light);
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.ctf-contact__card-title {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 13px; font-weight: 700; color: var(--ctf-navy);
  letter-spacing: 0.04em; margin-bottom: 5px;
}
.ctf-contact__card-text {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 13px; color: var(--ctf-text-s); line-height: 1.65;
}
.ctf-contact__card-link {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 13px; color: var(--ctf-blue);
  font-weight: 600; text-decoration: none;
  display: inline-block; margin-top: 4px;
}
.ctf-contact__card-link:hover { text-decoration: underline; }

/* Form */
.ctf-contact__form-wrap {
  background: var(--ctf-white);
  border: 0.5px solid var(--ctf-border);
  border-radius: 14px;
  padding: 32px;
  box-shadow: 0 2px 24px rgba(30,58,95,0.05);
}
.ctf-contact__form-title {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 20px; font-weight: 700; color: var(--ctf-navy);
  letter-spacing: 0.03em; text-transform: uppercase;
  margin-bottom: 24px;
}
.ctf-contact__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.ctf-contact__field {
  margin-bottom: 16px;
}
.ctf-contact__field label {
  display: block;
  font-family: 'Josefin Sans', sans-serif;
  font-size: 11px; font-weight: 700; color: var(--ctf-navy);
  letter-spacing: 0.08em; text-transform: uppercase;
  margin-bottom: 7px;
}
.ctf-contact__field label span { color: var(--ctf-blue); }
.ctf-contact__optional {
  font-weight: 400 !important; text-transform: none !important;
  color: var(--ctf-text-m) !important; letter-spacing: 0 !important;
  font-family: 'Nunito Sans', sans-serif !important; font-size: 11px !important;
}
.ctf-contact__field input,
.ctf-contact__field select,
.ctf-contact__field textarea {
  width: 100%;
  font-family: 'Nunito Sans', sans-serif;
  font-size: 13px; color: var(--ctf-text-p);
  background: var(--ctf-sand);
  border: 0.5px solid var(--ctf-border);
  border-radius: 8px;
  padding: 12px 14px;
  outline: none;
  transition: border-color 0.2s;
  appearance: none;
}
.ctf-contact__field input:focus,
.ctf-contact__field select:focus,
.ctf-contact__field textarea:focus {
  border-color: var(--ctf-sky);
  background: var(--ctf-white);
}
.ctf-contact__field textarea { resize: vertical; min-height: 120px; }
.ctf-contact__submit {
  width: 100%; border: none; cursor: pointer;
  font-size: 13px; padding: 14px;
  margin-top: 4px;
}
.ctf-contact__note {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 11px; color: var(--ctf-text-m);
  text-align: center; margin-top: 10px;
}
.ctf-contact__success {
  background: rgba(39,174,96,0.08);
  border: 0.5px solid rgba(39,174,96,0.3);
  border-radius: 8px; padding: 14px 16px;
  font-family: 'Nunito Sans', sans-serif;
  font-size: 13px; color: #27ae60;
  margin-bottom: 20px;
}
.ctf-contact__error {
  background: rgba(192,57,43,0.08);
  border: 0.5px solid rgba(192,57,43,0.2);
  border-radius: 8px; padding: 14px 16px;
  font-family: 'Nunito Sans', sans-serif;
  font-size: 13px; color: #c0392b;
  margin-bottom: 20px;
}
@media (max-width: 768px) {
  .ctf-contact__grid { grid-template-columns: 1fr; gap: 32px; }
  .ctf-contact__row { grid-template-columns: 1fr; }
  .ctf-contact__form-wrap { padding: 20px; }
}

/* --- CUSTOM FOOTER --- */
.ctf-footer {
  background: var(--ctf-navy);
  margin-top: 0;
}
.ctf-footer__main {
  padding: 64px 0 48px;
  border-bottom: 0.5px solid rgba(255,255,255,0.08);
}
.ctf-footer__grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 48px;
  align-items: start;
}
/* Brand col */
.ctf-footer__logo-text {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 20px; font-weight: 700; color: #fff;
  letter-spacing: 0.14em; text-transform: uppercase;
  margin-bottom: 4px;
}
.ctf-footer__logo-text span { color: var(--ctf-sky); }
.ctf-footer__logo-sub {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 9px; color: #5A7A99;
  letter-spacing: 0.2em; text-transform: uppercase; margin-top: 2px;
}
.ctf-footer__logo img { margin-bottom: 16px; }
.ctf-footer__desc {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 13px; color: #A8BDD0; line-height: 1.75;
  margin: 16px 0 14px;
}
.ctf-footer__disclaimer {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 11px; color: rgba(255,255,255,0.25);
  border: 0.5px solid rgba(255,255,255,0.08);
  border-radius: 8px; padding: 12px 14px; line-height: 1.65;
  margin-bottom: 20px;
}
.ctf-footer__badges {
  display: flex; flex-direction: column; gap: 8px;
}
.ctf-footer__badge {
  display: flex; align-items: center; gap: 8px;
  font-family: 'Nunito Sans', sans-serif;
  font-size: 12px; color: #5A7A99;
}
.ctf-footer__badge svg { color: var(--ctf-sky); flex-shrink: 0; }

/* Nav cols */
.ctf-footer__col-title {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 11px; font-weight: 700; color: #fff;
  text-transform: uppercase; letter-spacing: 0.16em;
  margin-bottom: 16px;
}
.ctf-footer__links {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 10px;
}
.ctf-footer__links a {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 13px; color: #A8BDD0; text-decoration: none;
  transition: color 0.2s;
}
.ctf-footer__links a:hover { color: #fff; }

/* Bottom bar */
.ctf-footer__bottom {
  padding: 18px 0;
}
.ctf-footer__bottom-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.ctf-footer__bottom p {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 11px; color: #3A5570;
}
.ctf-footer__bottom-right a {
  color: #3A5570; text-decoration: none;
}
.ctf-footer__bottom-right a:hover { color: var(--ctf-sky); }

@media (max-width: 900px) {
  .ctf-footer__grid {
    grid-template-columns: 1fr 1fr;
    gap: 32px;
  }
  .ctf-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  .ctf-footer__grid { grid-template-columns: 1fr; }
  .ctf-footer__brand { grid-column: auto; }
  .ctf-footer__bottom-inner { flex-direction: column; text-align: center; }
}

/* ============================================================
   RETA UK — Product Page Identity
   Applies brand styles over Horizon's product template
   ============================================================ */

/* Product title */
.product-information h1,
.product-information h2,
.product-information h3 {
  font-family: 'Josefin Sans', sans-serif !important;
  font-weight: 700 !important;
  color: var(--ctf-navy) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
}

/* Price */
.product-information .price,
.product-information .price__regular,
.product-information .price__sale,
.product-information price-component {
  font-family: 'Josefin Sans', sans-serif !important;
  color: var(--ctf-blue) !important;
  font-weight: 700 !important;
  font-size: 1.4rem !important;
}

/* Description */
.product-information .rte,
.product-information p {
  font-family: 'Nunito Sans', sans-serif !important;
  font-size: 14px !important;
  color: var(--ctf-text-s) !important;
  line-height: 1.8 !important;
}

/* Variant buttons */
.product-information .swatch__item,
.product-information .variant-picker__option-label {
  font-family: 'Josefin Sans', sans-serif !important;
  font-weight: 600 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  border-color: var(--ctf-border) !important;
  color: var(--ctf-navy) !important;
}
.product-information .swatch__item--selected,
.product-information .variant-picker__option-label--selected {
  border-color: var(--ctf-navy) !important;
  background: var(--ctf-navy) !important;
  color: #fff !important;
}

/* Add to cart button */
.product-information .button--primary,
.product-information [name="add"],
.product-information add-to-cart-button button {
  background: var(--ctf-navy) !important;
  font-family: 'Josefin Sans', sans-serif !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  border-radius: 8px !important;
  border: none !important;
  transition: background 0.2s !important;
}
.product-information .button--primary:hover,
.product-information [name="add"]:hover {
  background: var(--ctf-blue) !important;
}

/* Trust badges strip */
.ctf-product-trust {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  padding: 16px 0;
  border-top: 0.5px solid var(--ctf-border);
  border-bottom: 0.5px solid var(--ctf-border);
  margin: 16px 0;
}
.ctf-product-trust__item {
  display: flex;
  align-items: center;
  gap: 7px;
  font-family: 'Nunito Sans', sans-serif;
  font-size: 12px;
  color: var(--ctf-text-s);
}
.ctf-product-trust__item svg {
  color: var(--ctf-sky);
  flex-shrink: 0;
}

/* Research disclaimer on product page */
.ctf-product-disclaimer {
  background: var(--ctf-sky-light);
  border: 0.5px solid var(--ctf-border-sky);
  border-left: 3px solid var(--ctf-sky);
  border-radius: 8px;
  padding: 12px 16px;
  font-family: 'Nunito Sans', sans-serif;
  font-size: 12px;
  color: var(--ctf-text-s);
  line-height: 1.65;
  margin-top: 16px;
}
.ctf-product-disclaimer a {
  color: var(--ctf-blue);
  text-decoration: underline;
}

/* COA badge on product */
.ctf-product-coa {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: 'Josefin Sans', sans-serif;
  font-size: 10px;
  font-weight: 700;
  color: var(--ctf-blue);
  background: rgba(46,109,164,0.08);
  border: 0.5px solid rgba(46,109,164,0.2);
  padding: 5px 14px;
  border-radius: 20px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 12px;
}
.ctf-product-coa::before {
  content: '';
  width: 6px; height: 6px;
  background: var(--ctf-sky);
  border-radius: 50%;
}

/* Product recommendations section */
.product-recommendations h2,
.product-recommendations h3,
.product-recommendations h4 {
  font-family: 'Josefin Sans', sans-serif !important;
  font-weight: 700 !important;
  color: var(--ctf-navy) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
}

/* Media gallery background */
.product-media-container,
.product__media-wrapper {
  background: var(--ctf-sky-light) !important;
  border-radius: var(--ctf-radius) !important;
}

/* Product page — price: let Horizon handle display logic, only override colors */
.product-information product-price .price {
  color: var(--ctf-blue) !important;
  font-family: 'Josefin Sans', sans-serif !important;
  font-weight: 700 !important;
}
.product-information product-price .compare-at-price {
  color: var(--ctf-text-m) !important;
  font-size: 0.85em !important;
  font-weight: 400 !important;
}

/* Product page — social proof strip */
.ctf-product-social {
  padding: 10px 0 14px;
}
.ctf-product-social__stars {
  display: flex;
  align-items: center;
  gap: 3px;
  flex-wrap: wrap;
}
.ctf-product-social__star {
  color: #F4A926;
  font-size: 16px;
  line-height: 1;
}
.ctf-product-social__star--half {
  opacity: 0.4;
}
.ctf-product-social__score {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 13px;
  font-weight: 700;
  color: var(--ctf-navy);
  margin-left: 4px;
}
.ctf-product-social__divider {
  color: var(--ctf-text-m);
  margin: 0 4px;
}
.ctf-product-social__orders {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 12px;
  color: var(--ctf-text-s);
}

/* Product extras — renders inside product details column */
.ctf-product-trust,
.ctf-product-disclaimer,
.ctf-product-social {
  padding-left: calc(var(--gap, 48px) / 2);
  padding-right: 24px;
}
@media screen and (max-width: 749px) {
  .ctf-product-trust,
  .ctf-product-disclaimer,
  .ctf-product-social {
    padding-left: 16px;
    padding-right: 16px;
  }
}

/* Global button radius 35px */
.btn-primary, .btn-secondary,
.ctf-btn-primary, .ctf-btn-secondary,
.button, .button--primary, .button--secondary,
button[type="submit"], [name="add"],
add-to-cart-button button,
.shopify-payment-button__button,
.cart__checkout-button,
.ctf-contact__submit {
  border-radius: 35px !important;
}

/* Buy it Now + Checkout buttons — match RETA UK primary style */
.shopify-payment-button__button--unbranded,
.cart__checkout-button,
.button--primary,
[data-testid="Checkout-button"] {
  background: var(--ctf-navy) !important;
  color: #fff !important;
  font-family: 'Josefin Sans', sans-serif !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  border-radius: 35px !important;
  border: none !important;
  transition: background 0.2s !important;
}
.shopify-payment-button__button--unbranded:hover,
.cart__checkout-button:hover,
.button--primary:hover {
  background: var(--ctf-blue) !important;
}

/* ============================================================
   RETA UK — Blog Article Styles
   ============================================================ */
.ctf-blog-article__hero {
  background: linear-gradient(108deg, #F4F7FB 0%, #EAF4FB 60%, #deeef8 100%);
  padding: 64px 0 56px;
  border-bottom: 0.5px solid var(--ctf-border);
  margin-bottom: 0;
}
.ctf-blog-article__meta {
  display: flex; align-items: center; gap: 12px; margin-bottom: 16px; flex-wrap: wrap;
}
.ctf-blog-article__tag {
  font-family: 'Josefin Sans', sans-serif; font-size: 10px; font-weight: 700;
  color: var(--ctf-blue); background: rgba(46,109,164,0.08);
  border: 0.5px solid rgba(46,109,164,0.2); padding: 3px 12px; border-radius: 20px;
  letter-spacing: 0.1em; text-transform: uppercase;
}
.ctf-blog-article__date,
.ctf-blog-article__read {
  font-family: 'Nunito Sans', sans-serif; font-size: 12px; color: var(--ctf-text-m);
}
.ctf-blog-article__title {
  font-family: 'Josefin Sans', sans-serif; font-size: 36px; font-weight: 700;
  color: var(--ctf-navy); line-height: 1.2; letter-spacing: 0.02em;
  text-transform: uppercase; margin-bottom: 20px;
}
.ctf-blog-article__intro {
  font-family: 'Nunito Sans', sans-serif; font-size: 16px; color: var(--ctf-text-s);
  line-height: 1.8; max-width: 680px; margin-bottom: 20px;
}
.ctf-blog-article__disclaimer {
  font-family: 'Nunito Sans', sans-serif; font-size: 12px; color: var(--ctf-text-m);
  background: rgba(30,58,95,0.05); border: 0.5px solid var(--ctf-border);
  border-radius: 8px; padding: 10px 14px; display: inline-block;
}

/* TOC */
.ctf-blog-article__toc {
  background: var(--ctf-sand); border: 0.5px solid var(--ctf-border);
  border-radius: var(--ctf-radius); padding: 24px 28px; margin: 40px 0 48px;
  max-width: 480px;
}
.ctf-blog-article__toc-title {
  font-family: 'Josefin Sans', sans-serif; font-size: 11px; font-weight: 700;
  color: var(--ctf-navy); text-transform: uppercase; letter-spacing: 0.12em; margin-bottom: 14px;
}
.ctf-blog-article__toc-list {
  font-family: 'Nunito Sans', sans-serif; font-size: 13px;
  color: var(--ctf-text-s); padding-left: 18px; line-height: 1;
}
.ctf-blog-article__toc-list li { margin-bottom: 10px; }
.ctf-blog-article__toc-list a { color: var(--ctf-blue); text-decoration: none; }
.ctf-blog-article__toc-list a:hover { text-decoration: underline; }

/* Sections */
.ctf-blog-article__section {
  margin-bottom: 56px;
  padding-bottom: 56px;
  border-bottom: 0.5px solid var(--ctf-border);
}
.ctf-blog-article__section:last-child { border-bottom: none; }
.ctf-blog-article__section h2 {
  font-family: 'Josefin Sans', sans-serif; font-size: 24px; font-weight: 700;
  color: var(--ctf-navy); text-transform: uppercase; letter-spacing: 0.03em;
  margin-bottom: 20px;
}
.ctf-blog-article__section h3 {
  font-family: 'Josefin Sans', sans-serif; font-size: 16px; font-weight: 700;
  color: var(--ctf-navy); letter-spacing: 0.04em; margin: 28px 0 12px;
}
.ctf-blog-article__section p {
  font-family: 'Nunito Sans', sans-serif; font-size: 15px; color: var(--ctf-text-s);
  line-height: 1.85; margin-bottom: 16px;
}

/* Lists */
.ctf-blog-article__list {
  font-family: 'Nunito Sans', sans-serif; font-size: 14px; color: var(--ctf-text-s);
  line-height: 1.8; padding-left: 20px; margin-bottom: 20px;
}
.ctf-blog-article__list li { margin-bottom: 8px; }

/* Callouts */
.ctf-blog-article__callout {
  background: var(--ctf-sky-light); border: 0.5px solid var(--ctf-border-sky);
  border-left: 3px solid var(--ctf-sky); border-radius: 8px;
  padding: 16px 20px; margin: 24px 0;
  font-family: 'Nunito Sans', sans-serif; font-size: 13px;
  color: var(--ctf-text-s); line-height: 1.7;
}
.ctf-blog-article__callout--blue {
  background: rgba(46,109,164,0.06); border-left-color: var(--ctf-blue);
}
.ctf-blog-article__callout--warning {
  background: rgba(244,169,38,0.06); border-left-color: #F4A926;
}
.ctf-blog-article__callout a { color: var(--ctf-blue); font-weight: 600; }

/* Product links */
.ctf-blog-article__product-link {
  background: var(--ctf-sky-light); border: 0.5px solid var(--ctf-border-sky);
  border-radius: 8px; padding: 12px 16px; margin: 12px 0 20px;
  font-family: 'Nunito Sans', sans-serif; font-size: 13px; color: var(--ctf-text-s);
}
.ctf-blog-article__product-link a { color: var(--ctf-blue); font-weight: 600; text-decoration: none; }
.ctf-blog-article__product-link a:hover { text-decoration: underline; }

/* Compound grid */
.ctf-blog-article__compound-grid {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin: 24px 0;
}
.ctf-blog-article__compound {
  background: var(--ctf-white); border: 0.5px solid var(--ctf-border);
  border-radius: var(--ctf-radius); padding: 20px;
}
.ctf-blog-article__compound-name {
  font-family: 'Josefin Sans', sans-serif; font-size: 15px; font-weight: 700;
  color: var(--ctf-navy); letter-spacing: 0.04em; margin-bottom: 4px;
}
.ctf-blog-article__compound-category {
  font-family: 'Josefin Sans', sans-serif; font-size: 9px; font-weight: 700;
  color: var(--ctf-sky); text-transform: uppercase; letter-spacing: 0.1em;
  margin-bottom: 10px;
}
.ctf-blog-article__compound p {
  font-family: 'Nunito Sans', sans-serif; font-size: 13px; color: var(--ctf-text-s);
  line-height: 1.65; margin-bottom: 12px;
}
.ctf-blog-article__compound-link {
  font-family: 'Josefin Sans', sans-serif; font-size: 10px; font-weight: 700;
  color: var(--ctf-blue); text-decoration: none; text-transform: uppercase;
  letter-spacing: 0.08em;
}

/* Quality grid */
.ctf-blog-article__quality-grid {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin: 24px 0;
}
.ctf-blog-article__quality-item {
  background: var(--ctf-sand); border: 0.5px solid var(--ctf-border);
  border-radius: var(--ctf-radius); padding: 20px;
}
.ctf-blog-article__quality-icon { font-size: 24px; margin-bottom: 10px; }
.ctf-blog-article__quality-title {
  font-family: 'Josefin Sans', sans-serif; font-size: 13px; font-weight: 700;
  color: var(--ctf-navy); letter-spacing: 0.04em; margin-bottom: 8px;
}
.ctf-blog-article__quality-item p {
  font-family: 'Nunito Sans', sans-serif; font-size: 13px; color: var(--ctf-text-s);
  line-height: 1.65;
}

/* FAQ */
.ctf-blog-article__faq { display: flex; flex-direction: column; gap: 12px; margin-top: 24px; }
.ctf-blog-article__faq-item {
  border: 0.5px solid var(--ctf-border); border-radius: 8px;
  overflow: hidden; background: var(--ctf-white);
}
.ctf-blog-article__faq-q {
  padding: 16px 20px; font-family: 'Josefin Sans', sans-serif;
  font-size: 13px; font-weight: 600; color: var(--ctf-navy); letter-spacing: 0.02em;
}
.ctf-blog-article__faq-a {
  padding: 0 20px 16px; font-family: 'Nunito Sans', sans-serif;
  font-size: 13px; color: var(--ctf-text-s); line-height: 1.75;
}

/* Blog article main wrap */
.ctf-blog-article .ctf-wrap { padding-top: 48px; padding-bottom: 80px; }

@media (max-width: 768px) {
  .ctf-blog-article__title { font-size: 26px; }
  .ctf-blog-article__compound-grid { grid-template-columns: 1fr; }
  .ctf-blog-article__quality-grid { grid-template-columns: 1fr; }
}

/* FAQ + legal pages — force white background, override Horizon color schemes */
.ctf-faq-page__hero,
.ctf-faq-page__content,
.ctf-faq-page__group,
.ctf-faq__item,
.ctf-faq__answer,
.ctf-legal,
.ctf-legal__hero,
.ctf-contact__wrap {
  background: #fff !important;
  background-color: #fff !important;
}
.ctf-section--alt .ctf-faq__item {
  background: #fff !important;
}
/* Override Horizon's section background on pages using our templates */
.content-for-layout .section-background {
  display: none !important;
}

/* Force white background on all FAQ items globally */
.ctf-faq__item,
.ctf-faq-page .ctf-faq__item,
.ctf-section--alt .ctf-faq__item {
  background: #ffffff !important;
  background-color: #ffffff !important;
}

/* FAQ page — force white on everything */
.ctf-faq-page,
.ctf-faq-page *:not(a):not(button):not(.ctf-faq-page__cta):not(.ctf-faq-page__cta *):not(.ctf-faq-page__hero):not(.ctf-faq-page__hero *) {
  background-color: #ffffff !important;
}
.ctf-faq-page__hero {
  background: linear-gradient(108deg, #F4F7FB 0%, #EAF4FB 60%, #deeef8 100%) !important;
}
.ctf-faq-page__cta {
  background: var(--ctf-navy) !important;
}
.ctf-faq-page__cta * {
  background: transparent !important;
}
.ctf-faq-page__cta .ctf-btn-primary {
  background: var(--ctf-white) !important;
  color: var(--ctf-navy) !important;
}

/* ============================================================
   RETA UK — Collection Page
   ============================================================ */
.ctf-collection-hero {
  background: linear-gradient(108deg, #F4F7FB 0%, #EAF4FB 60%, #deeef8 100%);
  padding: 48px 0 40px;
  border-bottom: 0.5px solid var(--ctf-border);
}
.ctf-collection-hero__title {
  font-family: 'Josefin Sans', sans-serif !important;
  font-size: 36px !important;
  font-weight: 700 !important;
  color: var(--ctf-navy) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
  margin-bottom: 12px !important;
}
.ctf-collection-hero__desc {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 15px;
  color: var(--ctf-text-s);
  line-height: 1.75;
  max-width: 600px;
  margin-bottom: 20px;
}
.ctf-collection-hero__badges {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
.ctf-collection-hero__badge {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 12px;
  color: var(--ctf-text-s);
  display: flex;
  align-items: center;
  gap: 4px;
}

/* Collection product cards — RETA UK identity */
.main-collection product-title,
.main-collection .product-title {
  font-family: 'Josefin Sans', sans-serif !important;
  font-weight: 700 !important;
  color: var(--ctf-navy) !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
}
.main-collection product-price .price,
.main-collection .price {
  font-family: 'Josefin Sans', sans-serif !important;
  color: var(--ctf-blue) !important;
  font-weight: 700 !important;
}

/* Hide the default collection title from the section block — our header replaces it */
.section[data-section-id] h1:not(.ctf-collection-hero__title) {
  display: none !important;
}

/* ============================================================
   RETA UK — Collection product cards (match home style)
   ============================================================ */

/* Card wrapper */
.product-card {
  border: 0.5px solid var(--ctf-border) !important;
  border-radius: var(--ctf-radius) !important;
  overflow: hidden !important;
  transition: border-color 0.2s, box-shadow 0.2s !important;
  background: var(--ctf-white) !important;
}
.product-card:hover {
  border-color: var(--ctf-sky) !important;
  box-shadow: 0 4px 20px rgba(30,58,95,0.08) !important;
}

/* Image area — light blue background, contain image */
.product-card .card-gallery {
  background: var(--ctf-sky-light) !important;
}
.product-card .card-gallery img {
  object-fit: contain !important;
  padding: 12px !important;
  background: var(--ctf-sky-light) !important;
}

/* Card content */
.product-card .resource-card__content {
  padding: 12px 14px 16px !important;
}

/* Product title */
.product-card .resource-card__title {
  font-family: 'Josefin Sans', sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  color: var(--ctf-navy) !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
}

/* Price */
.product-card product-price .price,
.product-card .price {
  font-family: 'Josefin Sans', sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  color: var(--ctf-blue) !important;
}

/* Mobile: 2 columns */
@media (max-width: 768px) {
  .collection-grid,
  .product-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 10px !important;
  }
}

/* Collection cards — force light blue background on image area */
.product-card .resource-card__media,
.product-card .product-media-container,
.product-card .card-gallery {
  background-color: var(--ctf-sky-light) !important;
}
.product-card .resource-card__media img,
.product-card .product-media__image,
.product-card .card-gallery img {
  object-fit: contain !important;
  mix-blend-mode: normal !important;
  background: var(--ctf-sky-light) !important;
}
/* Force the image background even on the img element */
.product-card img {
  background-color: var(--ctf-sky-light) !important;
}

/* ============================================================
   RETA UK — Collection cards exact selectors
   ============================================================ */

/* Outer card */
.product-card {
  border-radius: var(--ctf-radius) !important;
  overflow: hidden !important;
}

/* Inner content panel — add border and white bg */
.product-card .product-card__content {
  border: 0.5px solid var(--ctf-border) !important;
  border-radius: var(--ctf-radius) !important;
  background: var(--ctf-white) !important;
  overflow: hidden !important;
  transition: border-color 0.2s, box-shadow 0.2s !important;
}
.product-card:hover .product-card__content {
  border-color: var(--ctf-sky) !important;
  box-shadow: 0 4px 20px rgba(30,58,95,0.08) !important;
}

/* Image container — light blue bg */
.product-card .card-gallery {
  background: var(--ctf-sky-light) !important;
  min-height: 200px !important;
}
.product-card .card-gallery img,
.product-card .product-media__image {
  object-fit: contain !important;
  background: var(--ctf-sky-light) !important;
  padding: 8px !important;
}

/* Text content area */
.product-card .resource-card__content {
  padding: 12px 14px 16px !important;
  background: var(--ctf-white) !important;
}

/* Product title */
.product-card .resource-card__title,
.product-card [class*="product-title"] {
  font-family: 'Josefin Sans', sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  color: var(--ctf-navy) !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  white-space: normal !important;
}

/* Price */
.product-card product-price .price,
.product-card [ref="priceContainer"] .price {
  font-family: 'Josefin Sans', sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  color: var(--ctf-blue) !important;
}

/* Collection page — fix grid width and wrap */
.product-grid-container {
  max-width: var(--ctf-max) !important;
  margin: 0 auto !important;
  padding: 32px 24px !important;
  box-sizing: border-box !important;
}
.collection-wrapper {
  max-width: var(--ctf-max) !important;
  margin: 0 auto !important;
}
/* Fix card gap */
.collection-wrapper.grid {
  gap: 16px !important;
}
@media (max-width: 768px) {
  .product-grid-container {
    padding: 20px 12px !important;
  }
  .collection-wrapper.grid {
    gap: 10px !important;
  }
}

/* ============================================================
   RETA UK — Collection card image exact fix
   ============================================================ */

/* Force light blue background on image container */
.product-card .card-gallery,
.product-card [class*="card-gallery"] {
  background: var(--ctf-sky-light) !important;
  background-color: #EAF4FB !important;
}

/* Image: contain + padding so blue bg shows around product */
.product-card [class*="card-gallery"] img,
.product-card [class*="card-gallery"] .product-media__image {
  object-fit: contain !important;
  padding: 16px !important;
  background: #EAF4FB !important;
  background-color: #EAF4FB !important;
  width: 100% !important;
  height: 100% !important;
}

/* Make sure the media wrapper also has the bg */
.product-card [class*="card-gallery"] [class*="media"],
.product-card [class*="card-gallery"] .product-media-container {
  background: #EAF4FB !important;
}

/* Card content padding */
.product-card .resource-card__content {
  padding: 14px 16px !important;
}

/* Title font */
.product-card .resource-card__title p,
.product-card .resource-card__title {
  font-family: 'Josefin Sans', sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  color: var(--ctf-navy) !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
}

/* Price font */
.product-card product-price .price,
.product-card .price {
  font-family: 'Josefin Sans', sans-serif !important;
  font-weight: 700 !important;
  color: var(--ctf-blue) !important;
}

/* Collection card title — exact selector */
.resource-card__title.paragraph,
p.resource-card__title {
  font-family: 'Josefin Sans', sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  color: var(--ctf-navy) !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  margin: 0 !important;
}

/* Collection card title — actual rendered element */
.product-card p[role="heading"],
.product-card [aria-level="3"] {
  font-family: 'Josefin Sans', sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  color: var(--ctf-navy) !important;
  letter-spacing: 0.02em !important;
  text-transform: none !important;
  padding-left: 14px !important;
  padding-bottom: 6px !important;
  padding-top: 10px !important;
}

/* Collection card price padding */
.product-card product-price,
.product-card [ref="priceContainer"] {
  padding-left: 8px !important;
  padding-bottom: 14px !important;
  display: block !important;
}

/* ============================================================
   RETA UK — About Us Page
   ============================================================ */
.ctf-about-page__hero {
  background: linear-gradient(108deg, #F4F7FB 0%, #EAF4FB 60%, #deeef8 100%);
  padding: 72px 0 56px;
  border-bottom: 0.5px solid var(--ctf-border);
}
.ctf-about-page__title {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 42px; font-weight: 700; color: var(--ctf-navy);
  text-transform: uppercase; letter-spacing: 0.03em;
  line-height: 1.15; margin-bottom: 20px; margin-top: 8px;
}
.ctf-about-page__intro {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 17px; color: var(--ctf-text-s);
  line-height: 1.8; max-width: 640px;
}

/* Hero image */
.ctf-about-page__hero-image { padding: 48px 0; background: var(--ctf-white); }
.ctf-about-page__image-wrap {
  position: relative; border-radius: 16px; overflow: hidden;
  box-shadow: 0 8px 48px rgba(30,58,95,0.12);
}
.ctf-about-page__image-wrap img {
  width: 100%; display: block;
  max-height: 480px; object-fit: cover; object-position: center;
}
.ctf-about-page__image-badge {
  position: absolute; bottom: 20px; left: 20px;
  background: var(--ctf-navy); color: #fff;
  font-family: 'Josefin Sans', sans-serif;
  font-size: 11px; font-weight: 700; letter-spacing: 0.1em;
  text-transform: uppercase; padding: 8px 16px; border-radius: 20px;
  display: flex; align-items: center; gap: 6px;
}

/* Mission */
.ctf-about-page__section { padding: 72px 0; border-bottom: 0.5px solid var(--ctf-border); }
.ctf-about-page__mission {
  display: grid; grid-template-columns: 1.3fr 0.7fr; gap: 64px; align-items: start;
}
.ctf-about-page__mission-text h2 {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 28px; font-weight: 700; color: var(--ctf-navy);
  text-transform: uppercase; letter-spacing: 0.03em; margin-bottom: 20px;
}
.ctf-about-page__mission-text p {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 15px; color: var(--ctf-text-s); line-height: 1.85; margin-bottom: 16px;
}
.ctf-about-page__quote {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 14px; color: var(--ctf-text-s); font-style: italic;
  border-left: 3px solid var(--ctf-sky-mid); padding-left: 16px;
  margin: 24px 0 0; line-height: 1.7;
}
.ctf-about-page__mission-stats {
  display: grid; grid-template-columns: 1fr 1fr; gap: 20px;
  position: sticky; top: 100px;
}
.ctf-about-page__stat {
  background: var(--ctf-sky-light); border: 0.5px solid var(--ctf-border-sky);
  border-radius: var(--ctf-radius); padding: 24px 20px; text-align: center;
}
.ctf-about-page__stat-num {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 26px; font-weight: 700; color: var(--ctf-navy); margin-bottom: 6px;
}
.ctf-about-page__stat-label {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 11px; color: var(--ctf-text-m);
  text-transform: uppercase; letter-spacing: 0.06em;
}

/* Pillars */
.ctf-about-page__pillars {
  background: var(--ctf-sand); padding: 72px 0; border-bottom: 0.5px solid var(--ctf-border);
}
.ctf-about-page__pillars-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px;
}
.ctf-about-page__pillar {
  background: var(--ctf-white); border: 0.5px solid var(--ctf-border);
  border-radius: var(--ctf-radius); padding: 28px 24px;
}
.ctf-about-page__pillar-icon {
  width: 52px; height: 52px; background: var(--ctf-sky-light);
  border-radius: 14px; display: flex; align-items: center; justify-content: center;
  margin-bottom: 16px;
}
.ctf-about-page__pillar h3 {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 14px; font-weight: 700; color: var(--ctf-navy);
  letter-spacing: 0.04em; text-transform: uppercase; margin-bottom: 10px;
}
.ctf-about-page__pillar p {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 13px; color: var(--ctf-text-s); line-height: 1.75;
}

/* CTA Band */
.ctf-about-page__cta-band {
  background: var(--ctf-navy); padding: 64px 0;
}
.ctf-about-page__cta-inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: 40px; flex-wrap: wrap;
}
.ctf-about-page__cta-inner h2 {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 26px; font-weight: 700; color: #fff;
  text-transform: uppercase; letter-spacing: 0.03em; margin-bottom: 10px;
}
.ctf-about-page__cta-inner p {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 14px; color: #a8c4dc; line-height: 1.7; max-width: 480px;
}
.ctf-about-page__cta-btns { display: flex; gap: 12px; flex-shrink: 0; }

@media (max-width: 900px) {
  .ctf-about-page__mission { grid-template-columns: 1fr; gap: 40px; }
  .ctf-about-page__mission-stats { position: static; }
  .ctf-about-page__pillars-grid { grid-template-columns: repeat(2, 1fr); }
  .ctf-about-page__title { font-size: 30px; }
  .ctf-about-page__cta-inner { flex-direction: column; text-align: center; }
}
@media (max-width: 600px) {
  .ctf-about-page__pillars-grid { grid-template-columns: 1fr; }
  .ctf-about-page__mission-stats { grid-template-columns: repeat(2, 1fr); }
}

/* FAQ — remove all grey backgrounds from Horizon */
.ctf-faq__item,
.ctf-faq__item *,
.ctf-faq__question,
.ctf-faq-page__group {
  background: #ffffff !important;
  background-color: #ffffff !important;
  box-shadow: none !important;
}
.ctf-faq__question {
  border: none !important;
  border-radius: 0 !important;
  width: 100% !important;
  text-align: left !important;
  cursor: pointer !important;
}

/* Product page — fix layout: balanced columns, proper padding */
@media (min-width: 750px) {
  .product-information__grid {
    grid-template-columns: 1fr 1.4fr !important;
    gap: 40px !important;
    padding-top: 40px !important;
  }
}

/* Fix product description — single column, compact font */
.product-information .rte,
.product-information .rte * {
  max-width: 100% !important;
}
.product-information .rte ul,
.product-information .rte ol {
  columns: 1 !important;
  column-count: 1 !important;
  display: block !important;
  padding-left: 18px !important;
}
.product-information .rte ul li,
.product-information .rte ol li {
  display: list-item !important;
  margin-bottom: 4px !important;
  font-family: 'Nunito Sans', sans-serif !important;
  font-size: 13px !important;
  color: var(--ctf-text-s) !important;
  line-height: 1.6 !important;
}
.product-information .rte p {
  font-family: 'Nunito Sans', sans-serif !important;
  font-size: 13px !important;
  color: var(--ctf-text-s) !important;
  line-height: 1.7 !important;
  margin-bottom: 10px !important;
}
.product-information .rte strong {
  color: var(--ctf-navy) !important;
  font-weight: 700 !important;
}
.product-information .rte h2,
.product-information .rte h3 {
  font-family: 'Josefin Sans', sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  color: var(--ctf-navy) !important;
  letter-spacing: 0.04em !important;
  margin: 14px 0 8px !important;
}

/* Footer — improve text visibility */
.ctf-footer__disclaimer {
  color: rgba(255,255,255,0.55) !important;
  border-color: rgba(255,255,255,0.15) !important;
}
.ctf-footer__badge {
  color: #A8BDD0 !important;
}
.ctf-footer__badge svg {
  color: var(--ctf-sky) !important;
}
.ctf-footer__desc {
  color: #A8BDD0 !important;
}
.ctf-footer__bottom p,
.ctf-footer__bottom a {
  color: #6B8AAA !important;
}

/* ============================================================
   RETA UK — Newsletter Section
   ============================================================ */
.ctf-newsletter {
  background: var(--ctf-sky-light);
  border-top: 0.5px solid var(--ctf-border-sky);
  border-bottom: 0.5px solid var(--ctf-border-sky);
  padding: 56px 0;
}
.ctf-newsletter__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
}
.ctf-newsletter__title {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 24px; font-weight: 700; color: var(--ctf-navy);
  text-transform: uppercase; letter-spacing: 0.03em;
  margin-bottom: 10px; margin-top: 6px;
}
.ctf-newsletter__desc {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 14px; color: var(--ctf-text-s); line-height: 1.75;
}
.ctf-newsletter__input-wrap {
  display: flex; gap: 0;
  border: 1px solid var(--ctf-border-sky);
  border-radius: 35px; overflow: hidden;
  background: var(--ctf-white);
  box-shadow: 0 2px 12px rgba(30,58,95,0.06);
}
.ctf-newsletter__input {
  flex: 1; border: none; outline: none;
  padding: 14px 20px;
  font-family: 'Nunito Sans', sans-serif;
  font-size: 14px; color: var(--ctf-text-p);
  background: transparent;
}
.ctf-newsletter__input::placeholder { color: var(--ctf-text-m); }
.ctf-newsletter__btn {
  background: var(--ctf-navy); color: #fff;
  font-family: 'Josefin Sans', sans-serif;
  font-size: 12px; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase;
  padding: 14px 28px; border: none; cursor: pointer;
  border-radius: 35px;
  transition: background 0.2s;
  flex-shrink: 0;
}
.ctf-newsletter__btn:hover { background: var(--ctf-blue); }
.ctf-newsletter__note {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 11px; color: var(--ctf-text-m);
  margin-top: 10px;
}
.ctf-newsletter__success {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 14px; color: #27ae60;
  background: rgba(39,174,96,0.08);
  border: 0.5px solid rgba(39,174,96,0.2);
  border-radius: 8px; padding: 14px 18px;
}
@media (max-width: 768px) {
  .ctf-newsletter__inner { grid-template-columns: 1fr; gap: 28px; }
  .ctf-newsletter__title { font-size: 20px; }
}

/* ============================================================
   RETA UK — PRODUCT CARD COMPONENT (unified)
   Used in: Home, Shop/Collections, You May Also Like
   
   Home cards use:     .ctf-product-card
   Horizon cards use:  .product-card
   ============================================================ */

/* ── CARD SHELL ───────────────────────────────────────────── */
.ctf-product-card {
  display: block;
  text-decoration: none;
  border: 0.5px solid rgba(30,58,95,0.12);
  border-radius: 12px;
  overflow: hidden;
  background: #ffffff;
  transition: border-color 0.18s, box-shadow 0.18s, transform 0.18s;
}
.ctf-product-card:hover {
  border-color: #4BA3D3;
  box-shadow: 0 6px 24px rgba(30,58,95,0.10);
  transform: translateY(-2px);
}

/* Horizon card inner content panel */
.product-card .product-card__content {
  border: 0.5px solid rgba(30,58,95,0.12) !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  background: #ffffff !important;
  transition: border-color 0.18s, box-shadow 0.18s, transform 0.18s !important;
}
.product-card:hover .product-card__content {
  border-color: #4BA3D3 !important;
  box-shadow: 0 6px 24px rgba(30,58,95,0.10) !important;
  transform: translateY(-2px) !important;
}

/* ── IMAGE AREA ───────────────────────────────────────────── */
/* Home cards */
.ctf-product-card__img {
  background: #EAF4FB;
  height: 260px;
  overflow: hidden;
  border-radius: 12px 12px 0 0;
}
.ctf-product-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 12px 12px 0 0;
  display: block;
}

/* Horizon cards — background only, don't break slideshow */
.product-card [class*="card-gallery"] {
  background: #EAF4FB !important;
  border-radius: 12px 12px 0 0 !important;
  overflow: hidden !important;
}
.product-card .product-media img,
.product-card .product-media__image {
  border-radius: 12px 12px 0 0 !important;
  display: block !important;
}

/* Mobile: fix aspect ratio empty space */
@media (max-width: 768px) {
  .product-card [class*="card-gallery"] {
    aspect-ratio: 1 / 1 !important;
  }
  .product-card [class*="card-gallery"] img,
  .product-card .product-media img {
    height: 100% !important;
    object-fit: cover !important;
    aspect-ratio: unset !important;
  }
}

/* ── TAG ──────────────────────────────────────────────────── */
.ctf-product-card__tag {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 10px;
  font-weight: 700;
  color: #2E6DA4;
  background: rgba(46,109,164,0.08);
  padding: 3px 10px;
  border-radius: 20px;
  display: inline-block;
  margin: 12px 14px 4px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

/* ── TITLE ────────────────────────────────────────────────── */
/* Home cards */
.ctf-product-card__title {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: #1E3A5F;
  padding: 10px 14px 4px;
  display: block;
  letter-spacing: 0.01em;
  line-height: 1.3;
}

/* Horizon cards */
.product-card p[role="heading"],
.product-card [aria-level="3"] {
  font-family: 'Josefin Sans', sans-serif !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #1E3A5F !important;
  padding: 10px 14px 4px !important;
  display: block !important;
  letter-spacing: 0.01em !important;
  line-height: 1.3 !important;
  text-transform: none !important;
}

/* ── PRICE ────────────────────────────────────────────────── */
/* Home cards */
.ctf-product-card__price {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: #2E6DA4;
  padding: 4px 14px 14px;
  display: block;
}

/* Horizon cards */
.product-card product-price .price,
.product-card .resource-card__content .price {
  font-family: 'Josefin Sans', sans-serif !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #2E6DA4 !important;
  padding: 4px 14px 14px !important;
  display: block !important;
}

/* ── META ─────────────────────────────────────────────────── */
.ctf-product-card__meta {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 11px;
  color: #8A9BB0;
  padding: 0 14px 14px;
}

/* ── HOME GRID ────────────────────────────────────────────── */
.ctf-products-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
@media (max-width: 768px) {
  .ctf-products-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }
  #ctf-top-sellers > .ctf-wrap {
    padding: 0 12px !important;
  }
  /* Mobile typography */
  .ctf-product-card__title,
  .product-card p[role="heading"],
  .product-card [aria-level="3"] {
    font-size: 15px !important;
    padding: 8px 12px 4px !important;
  }
  .ctf-product-card__price,
  .product-card product-price .price,
  .product-card .resource-card__content .price {
    font-size: 15px !important;
    padding: 4px 12px 12px !important;
  }
}

/* Remove extra whitespace after price in product cards */
.product-card .resource-card__content,
.product-card [ref="priceContainer"],
.product-card product-price {
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}
.product-card .product-card__content > *:last-child {
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}

/* Align product card title and price to left */
.ctf-product-card__title,
.ctf-product-card__price,
.product-card p[role="heading"],
.product-card [aria-level="3"],
.product-card product-price .price,
.product-card .resource-card__content .price,
.product-card .resource-card__content {
  text-align: left !important;
}

/* Align resource card title and price to left — exact selectors */
.resource-card__content,
.resource-card__title,
.resource-card__title.paragraph,
p.resource-card__title {
  text-align: left !important;
}
.resource-card__content .price,
.resource-card__content [ref="priceContainer"],
.resource-card__content product-price {
  text-align: left !important;
  display: block !important;
}

/* Force left alignment on ALL product card text — override Horizon center alignment */
.product-card .resource-card__content,
.product-card .resource-card__content *,
.product-card .resource-card__title,
.product-card p.resource-card__title,
.product-card p[role="heading"],
.product-card [aria-level="3"],
.product-card product-price,
.product-card [ref="priceContainer"],
.product-card [ref="priceContainer"] * {
  text-align: left !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  --horizontal-alignment: flex-start !important;
  --text-alignment: left !important;
}

/* Variant picker — selected state with blue border and shadow */
.variant-picker__option-label--selected,
.swatch__item--selected,
[aria-checked="true"].variant-picker__option-label,
.variant-picker__option input:checked + label,
.variant-picker__option input[type="radio"]:checked ~ label {
  background: #ffffff !important;
  color: #1E3A5F !important;
  border: 2px solid #509ec5 !important;
  box-shadow: 0 0 0 3px rgba(80,158,197,0.2) !important;
  font-weight: 700 !important;
}

/* Variant picker — default state */
.variant-picker__option-label,
.swatch__item {
  background: #ffffff !important;
  color: #1E3A5F !important;
  border: 1px solid rgba(30,58,95,0.2) !important;
  transition: border-color 0.15s, box-shadow 0.15s !important;
}

/* Variant picker — hover state */
.variant-picker__option-label:hover,
.swatch__item:hover {
  border-color: #509ec5 !important;
  box-shadow: 0 0 0 2px rgba(80,158,197,0.15) !important;
}

/* Variant option buttons — size selector */
.variant-option__button-label {
  background: #ffffff !important;
  color: #1E3A5F !important;
  border: 1px solid rgba(30,58,95,0.2) !important;
  border-radius: 35px !important;
  font-family: 'Josefin Sans', sans-serif !important;
  font-weight: 600 !important;
  letter-spacing: 0.06em !important;
  transition: border-color 0.15s, box-shadow 0.15s !important;
  cursor: pointer !important;
}
.variant-option__button-label:hover {
  border-color: #509ec5 !important;
  box-shadow: 0 0 0 2px rgba(80,158,197,0.15) !important;
}
/* Selected state — override black background */
.variant-option__button-label:has(input:checked),
.variant-option__button-label--selected,
.variant-option input[type="radio"]:checked + .variant-option__button-label,
.variant-option__button-label[aria-checked="true"] {
  background: #ffffff !important;
  color: #1E3A5F !important;
  border: 2px solid #509ec5 !important;
  box-shadow: 0 0 0 3px rgba(80,158,197,0.2) !important;
  font-weight: 700 !important;
}



/* ============================================================
   STICKY ADD TO CART BUTTON — ALWAYS VISIBLE ON MOBILE PRODUCT PAGES
   ============================================================ */
@media (max-width: 749px) {
  /* Force sticky bar to always be visible on product pages */
  .template-product sticky-add-to-cart,
  .shopify-section-main-product sticky-add-to-cart,
  body[class*="template-product"] sticky-add-to-cart {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  .template-product .sticky-add-to-cart__bar,
  .shopify-section-main-product .sticky-add-to-cart__bar {
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 99 !important;
    transform: translateY(0) !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    background: #ffffff !important;
    padding: 12px 16px !important;
    box-shadow: 0 -4px 16px rgba(30, 58, 95, 0.12) !important;
    border-top: 1px solid #EAF4FB !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
  }

  /* Hide product image on mobile sticky to save space (optional) */
  .template-product .sticky-add-to-cart__image,
  .shopify-section-main-product .sticky-add-to-cart__image {
    display: none !important;
  }

  .template-product .sticky-add-to-cart__info,
  .shopify-section-main-product .sticky-add-to-cart__info {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  .template-product .sticky-add-to-cart__button,
  .shopify-section-main-product .sticky-add-to-cart__button {
    flex: 0 0 auto !important;
    padding: 12px 24px !important;
    background: #1E3A5F !important;
    color: #ffffff !important;
    border-radius: 6px !important;
    border: none !important;
    font-weight: 700 !important;
    font-size: 15px !important;
    letter-spacing: 0.4px !important;
    min-width: 140px !important;
  }

  /* Add bottom padding to page so sticky doesn't cover footer / content */
  .template-product main,
  .shopify-section-main-product ~ * {
    padding-bottom: 80px !important;
  }
}
/* ============================================================
   STICKY CHECKOUT BUTTON ON MOBILE CART PAGE — TOP Z-INDEX
   ============================================================ */
@media (max-width: 749px) {
  /* Force every section after cart and footer below sticky */
  body > main ~ *,
  body > main .shopify-section:not([id*="cart-section"]),
  .shopify-section-group-footer-group,
  footer.shopify-section,
  footer {
    position: relative;
    z-index: 0 !important;
    isolation: auto !important;
  }

  /* Sticky bar must escape any stacking context */
  [id*="cart-section"] {
    position: relative;
    z-index: auto !important;
    isolation: auto !important;
    overflow: visible !important;
    padding-bottom: 110px !important;
  }

  [id*="cart-section"] .cart__ctas {
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 2147483647 !important;
    background: #ffffff !important;
    padding: 14px 16px !important;
    margin: 0 !important;
    box-shadow: 0 -4px 16px rgba(30, 58, 95, 0.18) !important;
    border-top: 1px solid #EAF4FB !important;
    width: 100% !important;
    box-sizing: border-box !important;
    transform: translateZ(0) !important;
    will-change: transform !important;
  }

  [id*="cart-section"] .cart__ctas .cart__checkout-button {
    width: 100% !important;
    margin: 0 !important;
    padding: 14px 20px !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    background: #1E3A5F !important;
    color: #ffffff !important;
    border-radius: 6px !important;
    border: none !important;
    letter-spacing: 0.5px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    position: relative !important;
    z-index: 2147483647 !important;
  }

  [id*="cart-section"] .cart__ctas .cart__checkout-button::before {
    content: "";
    display: inline-block;
    width: 16px;
    height: 16px;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='11' width='18' height='11' rx='2'/><path d='M7 11V7a5 5 0 0 1 10 0v4'/></svg>");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    flex-shrink: 0;
  }

  [id*="cart-section"] .cart__ctas .additional-checkout-buttons {
    display: none !important;
  }
}

/* ============================================================
   SHOPIFY CHAT — MOBILE FIX
   When the chat is open on mobile, it must sit ABOVE the sticky header
   so users can tap the close button.
   ============================================================ */
@media (max-width: 749px) {
  /* Shopify Inbox iframe */
  #shopify-chat,
  iframe[name="Shopify online store chat"],
  iframe[title="Shopify online store chat"] {
    z-index: 2147483647 !important;
  }
  /* When chat is in its expanded/open state, lower header z-index */
  body:has(#shopify-chat iframe[style*="height: 100"]) header,
  body:has(#shopify-chat iframe[style*="height:100"]) header,
  body:has(#shopify-chat iframe[style*="height: 95"]) header,
  body:has(#shopify-chat iframe[style*="100vh"]) header,
  body:has(iframe[name="Shopify online store chat"][style*="height: 100"]) header,
  body:has(iframe[name="Shopify online store chat"][style*="100vh"]) header {
    z-index: 1 !important;
  }
}

/* ============================================================
   MULTIBUY / AUTOMATIC DISCOUNT HIGHLIGHT IN CART
   ============================================================ */
.cart-discounts {
  margin: 12px 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.cart-discounts__item {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 12px !important;
  background: #EAF4FB !important;
  border: 1px solid #2E6DA4 !important;
  border-radius: 6px !important;
  padding: 10px 14px !important;
  margin: 6px 0 !important;
}
.cart-discounts__label {
  font-weight: 700 !important;
  color: #2E6DA4 !important;
  font-size: 15px !important;
  letter-spacing: 0.2px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
}
.cart-discounts__label svg {
  color: #2E6DA4 !important;
  width: 16px !important;
  height: 16px !important;
}
.cart-discounts__value {
  font-weight: 700 !important;
  color: #2E6DA4 !important;
  font-size: 15px !important;
  font-family: inherit !important;
}

/* ============================================================
   HULKAPPS MULTIBUY DISCOUNT HIGHLIGHT IN CART
   Targets the <ul class="list-unstyled"> rendered inside cart line items
   ============================================================ */
.cart-items__variants-wrapper > ul.list-unstyled,
.cart-items__details ul.list-unstyled {
  list-style: none !important;
  padding: 6px 10px !important;
  margin: 8px 0 0 !important;
  background: #EAF4FB !important;
  border: 1px solid #2E6DA4 !important;
  border-radius: 6px !important;
  display: inline-block !important;
}
.cart-items__variants-wrapper > ul.list-unstyled > li,
.cart-items__details ul.list-unstyled > li {
  font-weight: 700 !important;
  color: #2E6DA4 !important;
  font-size: 13px !important;
  letter-spacing: 0.3px !important;
  margin: 0 !important;
  padding: 0 !important;
  text-transform: uppercase !important;
}
.cart-items__variants-wrapper > ul.list-unstyled > li::before,
.cart-items__details ul.list-unstyled > li::before {
  content: "✓ ";
  color: #2E6DA4;
  font-weight: 700;
  margin-right: 4px;
}

/* ============================================================
   MULTIBUY DISCOUNT BADGE ON PRODUCT PAGE
   ============================================================ */
.ctf-multibuy-badge {
  display: block;
  background: #EAF4FB;
  border: 1px solid #2E6DA4;
  border-radius: 6px;
  padding: 10px 14px;
  margin: 0 0 14px;
  font-family: 'Nunito Sans', system-ui, sans-serif;
  text-transform: none !important;
}
.ctf-multibuy-badge__title {
  display: flex;
  align-items: center;
  gap: 6px;
  font-weight: 700;
  color: #2E6DA4;
  font-size: 13px;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  margin-bottom: 6px;
}
.ctf-multibuy-badge__check {
  font-weight: 700;
}
.ctf-multibuy-badge__tiers {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  font-size: 13px;
  color: #1E3A5F;
  line-height: 1.5;
}
.ctf-multibuy-badge__tier {
  font-weight: 500;
  white-space: nowrap;
}
.ctf-multibuy-badge__tier strong {
  font-weight: 700;
  color: #1E3A5F;
}
.ctf-multibuy-badge__pct {
  display: inline-block;
  background: #2E6DA4;
  color: #fff;
  font-weight: 700;
  padding: 1px 6px;
  border-radius: 3px;
  font-size: 12px;
  margin-left: 2px;
}
@media (max-width: 749px) {
  .ctf-multibuy-badge { padding: 10px 12px; margin-bottom: 12px; }
  .ctf-multibuy-badge__tiers { gap: 4px 8px; font-size: 12px; }
}
