/* OVERRIDE Affiliate Coupons discount label */
.affcoups .affcoups-coupon__discount{
  background:#304368 !important;
  color:#ffffff !important;
}

h4.uagb-heading-text {
    color: #F9FAFB;
}

footer {
    line-height: 1.0; /* Adjust this number to make spacing tighter or looser */
}

#wp-wrapper-iframe {
  display: none !important;
}

.affcoups .affcoups-standard .affcoups-coupon, .affcoups .affcoups-coupons-grid .affcoups-coupon, .affcoups .affcoups-widget .affcoups-coupon { background-color: #ffffff;  }

.affcoups .affcoups-coupons-grid .affcoups-coupon__title { font-size: 16px; color: #50596E; line-height: 1.3; padding-bottom: 10px; }

@media (max-width: 767px) {
  .affcoups .affcoups-coupons-grid .affcoups-coupon__title {
    font-size: 14px;
    color: #50596E;
    line-height: 1.3;
		padding-bottom: 8px;
		    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    white-space: normal !important;
    margin-right: 0 !important;
  }
}


.affcoups a.affcoups-coupon__title {
  text-decoration: none !important;
  color: #222; /* optional: keep readable */
}

/* Button wrapper */
.affcoups a.affcoups-coupon__button {
  display: block;
  width: 100%;
  background-color: #304368!important;
  border-radius: 6px;
  padding: 2px 6px;                /* very slight padding */
  text-align: center;
  border: none;
  text-transform: none !important;
  transition: background 0.2s ease;
}

/* Button text */
.affcoups a.affcoups-coupon__button .affcoups-coupon__button-text {
  color: #ffffff !important;
  font-weight: 700;
  font-size: 14px;
  text-decoration: none !important;
  line-height: 1.2;                /* reduce vertical space */
	letter-spacing: 1px;
  padding: 0;                      /* remove default padding */
  margin: 0;                       /* remove default margin */
  display: inline-block;           /* shrink-wrap text */
  position: relative;
}

/* 🌟 prefix *

/* Subtle hover */
.affcoups a.affcoups-coupon__button:hover {
  background-color: #8a98b7 !important;
}

.affcoups a.affcoups-coupon__button .affcoups-coupon__button-text {
  line-height: 1.2 !important;   /* or try 16px if you want exact */
  padding: 0;
  margin: 0;
  display: inline-block;
}

/* Desktop button height */
.affcoups a.affcoups-coupon__button {
  height: 36px;
  line-height: 36px;
}

/* Mobile button height */
@media (max-width: 767px) {
  .affcoups a.affcoups-coupon__button {
    height: 32px;
    line-height: 32px;
  }
}


.affcoups .affcoups-coupons-grid .affcoups-coupon__footer {     bottom: 10px;
    left: 10px;
    right: 10px; }

.affcoups .affcoups-vendor__logo_grid { height: 60px; margin-top: 35%; border-radius: 10px; border: 2px solid white; background-color: #ffffff; padding: 5px; border-style: solid; border-color: #ADB6BE; border-width: 0px; box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1);}

/* Mobile version of vendor logos (2-column layout) */
@media (max-width: 767px) {
  .affcoups .affcoups-vendor__logo_grid {
    height: 50px;              /* slightly smaller for mobile */
    width: 50px;               /* enforce square */
    margin-top: 50px;          /* less spacing than desktop */
    margin-left: auto;         /* push logo to the right */
		margin-left: 10px;
    border-radius: 8px;
    border: 0px solid #ADB6BE; /* consistent border */
    background-color: #ffffff;
    padding: 4px;
    box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);
    object-fit: contain;       /* keeps logo proportions */
    box-sizing: border-box;
  }
}

@media (min-width: 767px) {
  .affcoups .affcoups-vendor__logo_grid {
    height: 70px;           
    width: 70px;             
    margin-top: 75px;       
    margin-left: auto;       
		margin-left: 10px;
    border-radius: 8px;
    border: 0px solid #ADB6BE; 
    background-color: #ffffff;
    padding: 4px;
    box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);
    object-fit: contain;       /* keeps logo proportions */
    box-sizing: border-box;
  }
}

.affcoups .affcoups-coupons-grid .affcoups-coupon__valid-dates {
margin:0px;
    font-size: 13px;
    text-align: left;
	font-weight: normal;
	font-style: normal;
}

.affcoups a.affcoups-coupon__button .affcoups-coupon__button-text { text-decoration: underline; }

.affcoups .affcoups-coupons-grid__item .affcoups-coupon__description-excerpt {
margin:0px;
    font-size: 13px;
    text-align: left;
	font-weight: normal;
	font-style: normal;
	color: rgba(0, 0, 0, 0.54);
}
	.affcoups a.affcoups-coupon__button:visited {
    color: #304368;
}


.affcoups .affcoups-coupons-grid .affcoups-coupon__types {
  color: #fff;
	  display: inline-block;
  font-size: 10px;
  padding: 2px 6px;
  border-radius: 4px;
	margin-top: 5px;
}

/* Physiological Needs – Green */
.affcoups-type--physiological-needs {
  background-color: #38b6ff;
	  color: #fff;
  padding: 2px 6px;
  border-radius: 4px;
	margin-top: 5px;
}

/* Safety Needs – Teal */
.affcoups-type--safety-needs {
  background-color: #0097b2;
	  color: #fff;

  padding: 2px 6px;
  border-radius: 4px;
	margin-top: 5px;
}

/* Belonging Needs – Orange */
.affcoups-type--belonging-needs {
  background-color: #7ed957;
	  color: #fff;
  padding: 2px 6px;
  border-radius: 4px;
	margin-top: 5px;
}

/* Esteem Needs – Purple */
.affcoups-type--esteem-needs {
  background-color: #ff66c4;
	  color: #fff;
  padding: 2px 6px;
  border-radius: 4px;
	margin-top: 5px;
}

/* Self-Actualisation Needs – Yellow */
.affcoups-type--self-actualisation-needs {
  background-color: #5e17eb;
  padding: 2px 6px;
  border-radius: 4px;
	margin-top: 5px;
  color: #333; /* dark text for better contrast on yellow */
}

/* compact wrapping badges (uses margins instead of gap) */
.affcoups .affcoups-coupon__types{
  display:flex;
  flex-wrap:wrap;
  margin-top:4px;
  align-items:flex-start;
  max-height:200px;   /* prevents the badges from making the card taller */
  overflow:hidden;
  box-sizing:border-box;
}

.affcoups .affcoups-coupon__types .affcoups-type{
display:inline-block;
  margin:0 6px 6px 0; /* right + bottom = visual "gap" */
  padding:2px 6px;
font-size: 1em;
  line-height:1;
  border-radius:10px;
  vertical-align:middle;
}

.affcoups .affcoups-coupon__types::before {
  content: "Supporting your child to:";
  display: block;
  font-size: 12px;
  font-weight: 300;
  color: #50596E; 
  margin-bottom: 4px;
	margin-left: 6px ;
}

.affcoups .affcoups-coupon__types span
{ color: #ffffff; }

.affcoups .affcoups-coupon__types .affcoups-type { padding: 5px; 
	margin-left: px;
}

.affcoups .affcoups-coupons-grid .affcoups-coupon__types span {
  margin-left: 6px ;
	font-size: 12px;
}

.affcoups-coupon__types {
  margin-left: 0px ;
}


/* increase specificity so it beats plugin/theme rules */
.affcoups .affcoups-coupons-grid .affcoups-coupon .affcoups-coupon__types {
  margin-left: -6px !important;
  padding-left: 0 !important;
  box-sizing: border-box;
}

h5 {
  background-color: #7989AD;
  font-weight: 700;
padding: 8px 14px; 
 display: block; !important;   /* even tighter than inline-block */
  width: auto !important;
  max-width: fit-content !important;
  border-radius: 3px;
  line-height: 2;
}

h6 {
  background-color: #E7E2D8;
  font-weight: 100;
  padding: 8px 12px;
  display: block; !important;   /* even tighter than inline-block */
  width: auto !important;
  max-width: fit-content !important;
  border-radius: 3px;
	margin: 10px; 
  line-height: 1.5;

}

h4 {
  background-color: #50596E;
  font-weight: 700;
padding: 8px 14px; 
 display: block; !important;   /* even tighter than inline-block */
  width: auto !important;
  max-width: fit-content !important;
  border-radius: 3px;
  line-height: 2;
}

.advanced_iframe iframe,
.ai-iframe iframe {
  width: 100% !important;
  height: auto !important;
  min-height: 800px; /* adjust to your iframe content */
  overflow: visible !important;
}

.advanced_iframe,
.ai-iframe {
  overflow: visible !important;
}

.search-dropdown-container.search-dropdown-container__orderby {
  display: none !important;
}

.search-dropdown-container.search-dropdown-container__order {
  display: none !important;
}

/* Hide the original Vendor label */
.search-dropdown-container.search-dropdown-container__vendor label {
  display: none !important;
}

/* Tablet and desktop only */
@media (min-width: 768px) {
  .affcoups .affcoups-coupon__search_filters .search-filters-form 
  .affcoups-coupon__search_container.dropdowns 
  .search-dropdown-container .search-dropdown {
    width: 1000px !important;
    margin: 0 auto !important;  /* centers it */
    float: none !important;     /* prevents float left/right */
    display: block;             /* ensures it behaves like a block */
  }
}

.affcoups .affcoups-coupon__search_filters .search-filters-form .affcoups-coupon__search_container .search-submit { 
    display: inline-block;
    height: 36px;
    width: auto;
    margin: 6px 0 0;
    padding: 0 18px;
    background-color: #ffffff !important; /* changed to white */
}

.affcoups .affcoups-coupon__search_filters .search-filters-form .affcoups-coupon__search_container .search-submit:hover {
    background-color: #f9fafb !important; /* hover color */
}

/* Force Affiliate Coupons into 2 columns on mobile */
@media (max-width: 767px) {
  /* Make all coupon wrappers grid */
  .affcoups .affcoups-standard,
  .affcoups .affcoups-coupons-grid,
  .affcoups .affcoups-widget {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  /* Reset the coupon cards so they fit in grid cells */
  .affcoups .affcoups-standard .affcoups-coupon,
  .affcoups .affcoups-coupons-grid .affcoups-coupon,
  .affcoups .affcoups-widget .affcoups-coupon {
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    float: none !important;
  }

  /* Optional: style cards for nicer look */
  .affcoups .affcoups-coupon__inner {
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #fafafa;
    padding: 10px;
    box-shadow: 0 1px 4px rgba(0,0,0,.06);
  }
}

/* Tiny screens fallback to 1 column */
@media (max-width: 360px) {
  .affcoups .affcoups-standard,
  .affcoups .affcoups-coupons-grid,
  .affcoups .affcoups-widget {
    grid-template-columns: 1fr !important;
  }
}

/* ===== Equal-height 2-column coupons on mobile ===== */
@media (max-width: 767px) {
  .affcoups .affcoups-standard,
  .affcoups .affcoups-coupons-grid,
  .affcoups .affcoups-widget {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    align-items: stretch; /* all cards in row equal height */
  }
	

  .affcoups .affcoups-coupon__inner {
    height: auto !important;
    display: flex;
    flex-direction: column;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #fafafa;
    padding: 10px;
    box-shadow: 0 1px 4px rgba(0,0,0,.06);
  }

  .affcoups .affcoups-coupon__title {
    flex-shrink: 0; /* never shrink title */
  }

  .affcoups .affcoups-coupon__description {
    flex-grow: 1; /* stretch middle section */
  }

  .affcoups .affcoups-coupon__button {
    margin-top: auto; /* pins button to bottom */
  }
}

/* Tiny phones = 1 column */
@media (max-width: 360px) {
  .affcoups .affcoups-standard,
  .affcoups .affcoups-coupons-grid,
  .affcoups .affcoups-widget {
    grid-template-columns: 1fr !important;
  }
}

/* Style for collapsible toggle */
.affcoups .pp-types-toggle {
  cursor: pointer;
  font-weight: 100;
  margin: 8px 0;
  color: #888;
  font-size: 12px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.affcoups .pp-types-toggle::after {
  content: "▼"; /* down arrow */
  font-size: 12px;
  transition: transform 0.2s ease;
}
.affcoups .pp-types-toggle.active::after {
  transform: rotate(-180deg); /* arrow flips up when open */
}

.affcoups .affcoups-standard,
.affcoups .affcoups-coupons-grid,
.affcoups .affcoups-widget {
  margin: 0 !important;
  padding: 0 !important;
}


/* Add a label above the coupon code box */
.affcoups .affcoups-coupon__code::before {
  content: "Click to copy the code";
  display: block;
  font-size: 13px;
  font-weight: 100;
  color: #304368;
  margin-bottom: 0px;
}

/* Toggle line — subtle, one per row */
.affcoups .pp-toggle{
  display:block;                 /* force its own row */
  cursor:pointer;
  margin:8px 0;
  color:#888;
  font-size:12px;
  font-weight:100;
}

/* arrow sits right after text (not at far right) */
.affcoups .pp-toggle .pp-arrow{
  display:inline-block;
  font-size:11px;
  margin-left:4px;               /* space after the label */
  transition:transform .2s ease;
}
.affcoups .pp-toggle.active .pp-arrow{
  transform:rotate(-180deg);
}

/* content panels (hidden by default; opened via JS) */
.affcoups .pp-section{
  display:none;
  font-size:12px;
  margin:6px 0;
  color:#50596E;                 /* content colour (can match your existing) */
}
.affcoups .pp-section.open{
  display:block;
}

.affcoups .affcoups-coupons-grid {
  row-gap: 16px !important;
!important;
}

/* Dropdown header style */
.pp-row {
  font-size: 12px;
  color: #444;
  cursor: pointer;
  padding: 3px 8px;
  margin: 0;
  background: #eeebe4;
  border: 2px solid #eee;
 border-radius: 10px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  transition: background 0.2s ease;
}

.pp-row:hover {
  background: #f1f3f5;
}

.pp-label {
  font-weight: normal;
}

.pp-arrow {
  font-size: 11px;
  margin-left: 8px;
  transition: transform 0.2s ease;
}

.pp-row.is-open .pp-arrow {
  transform: rotate(-180deg);
}

/* Dropdown content (hidden by default) */
.pp-panel {
  font-size: 8px;
  color: #666;
  padding: 6px 8px;
  line-height: 1.1;
  display: none;
  background: #fff;
  box-shadow: inset 0 1px 3px rgba(0,0,0,0.05);
}

.pp-panel.is-open {
  display: block;
}


/* Universally hide internal hidden button containers so they take no space */
.affcoups-coupon__content > [id^="affcoups-coupon__button_"] {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  height: 0 !important;
  overflow: hidden !important;
}

/* Remove extra bottom margin / padding in the content area just before footer */
.affcoups-coupon__content > .pp-row:last-of-type,
.affcoups-coupon__content > .pp-section:last-of-type {
  margin-bottom: 6px !important;
  padding-bottom: 0 !important;
}

/* Tighten space above footer (Shop now) */
.affcoups-coupon__footer {
  margin-top: 0px !important;
  padding-top: 0 !important;
}

.affcoups .affcoups-coupons-grid .affcoups-coupon__content { 
    background-color: #fbfbfb;
    padding-top: 5px;
    padding-right: 10px;
    padding-bottom: 5px;
    padding-left: 20px;
}

@media (max-width: 767px) {
  .affcoups .affcoups-coupons-grid {
    row-gap: 15px !important;
  }
}



/* Target only inside coupon title */
.affcoups-coupon__title .affcoups-brand-name {
  display: block;
  font-weight: 700;
  text-transform: uppercase;
  color: #50596E;
	padding-top: 10px;
	font-size: 13px;
}

.affcoups-coupon__title .affcoups-offer-title {
  display: block;
  font-weight: 400;
  text-transform: none;
  color: #444;
	margin-top: -10px;
}

/* Desktop only: make offer title smaller */
@media (min-width: 1024px) {
  .affcoups-coupon__title .affcoups-offer-title {
    font-size: 10px;
  }
}

.affcoups .affcoups-clipboard__text {
    font-size: 12px;
  }

/* DESKTOP ONLY (>=1025px) — 4 across, 20px gaps */
@media (min-width: 1025px) {

  /* 0) Undo that 2-column override you have globally */
  .affcoups .affcoups-standard,
  .affcoups .affcoups-coupons-grid,
  .affcoups .affcoups-widget {
    grid-template-columns: unset !important;
  }

  /* 1) Use flex with real gaps; kill the negative margins */
  .affcoups .affcoups-coupons-grid {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 20px !important;          /* 20px row + column gap */
    margin: 0 !important;          /* override margin: 0 -2% */
    justify-content: flex-start !important;
  }

  /* 2) Make each card exactly 1/4 width minus the 3 gaps */
  .affcoups .affcoups-coupons-grid > * {
    flex: 0 0 calc((100% - (3 * 20px)) / 4) !important;
    max-width: calc((100% - (3 * 20px)) / 4) !important;
    margin: 0 !important;          /* rely on gap, not margins */
    box-sizing: border-box !important;
  }
}

/* Fallback for browsers without flex gap (rare) */
@supports not (gap: 20px) {
  @media (min-width: 1025px) {
    .affcoups .affcoups-coupons-grid { margin: 0 -10px !important; }
    .affcoups .affcoups-coupons-grid > * {
      flex: 0 0 calc(25% - 20px) !important;
      max-width: calc(25% - 20px) !important;
      margin: 0 10px 20px 10px !important;
    }
  }
}



.affcoups .affcoups-coupon__content { overflow: visible !important; }


/* prevent clipping inside the card body */
.affcoups .affcoups-coupon__content{
  overflow: visible !important;
}

/* ============================================
   Pupil Perks horizontal offers (final “show more”)
   ============================================ */

/* base scroll container */
body .pp-4offers .affcoups .affcoups-coupons-grid {
  display: grid !important;
  grid-auto-flow: column !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  scroll-snap-type: x mandatory;
  column-gap: 14px !important;                /* tighter space between cards */
  padding: 0 12px 12px 15px !important;
  box-sizing: border-box;
}

/* card width controls how much is visible */
body .pp-4offers .affcoups .affcoups-coupons-grid > div {
  display: block !important;
  width: 255px !important;                    /* ↓ narrower to reveal more */
  max-width: 255px !important;
  flex: 0 0 255px !important;
  scroll-snap-align: start;
  height: auto !important;                    /* preserve equal-height CSS */
}

/* mobile: narrower still so you see about 1¾–2 cards */
@media (max-width: 768px) {
  body .pp-4offers .affcoups .affcoups-coupons-grid > div {
    width: 58vw !important;                   /* was 68vw */
    max-width: 58vw !important;
    flex: 0 0 58vw !important;
  }
}

/* scrollbar styling */
body .pp-4offers .affcoups .affcoups-coupons-grid::-webkit-scrollbar {
  height: 5px;
}
body .pp-4offers .affcoups .affcoups-coupons-grid::-webkit-scrollbar-track {
  background: #e5e7eb;
}
body .pp-4offers .affcoups .affcoups-coupons-grid::-webkit-scrollbar-thumb {
  background: #304368;
  border-radius: 10px;
}

/* section spacing */
body .pp-4offers {
  margin-bottom: 10px !important;
}


.affcoups-coupon__title .affcoups-offer-title
{
  font-weight:400;
  line-height:1.2;
  color:#304368;
}

/* Mobile-only micro-hardening: smooth horizontal scroll, no layout changes */
@media (max-width: 768px) {
  /* These rules are applied programmatically by the JS below to rows that
     are *actually* horizontally scrollable; leaving here as defaults is harmless. */
  .pp-hscroll {
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-inline: contain;   /* no sideways rubber-banding */
    scroll-snap-type: x proximity;         /* gentle snapping if the row already scrolls */
    touch-action: pan-x;                   /* prevents vertical scroll hijack while swiping */
  }
  .pp-hscroll > * { scroll-snap-align: start; }

  /* Small image/layout jitters guard */
  .pp-hscroll img { display:block; width:100%; height:auto; }
  .pp-hscroll {
    contain: layout paint;                 /* avoids jank during swipe */
    transform: translateZ(0);              /* iOS momentum smoothness */
  }
}

/* ===== Make whole card clickable, no zoom ===== */
.affcoups .affcoups-coupon{
  cursor:pointer;
  position:relative;
  transition:none!important;
}
.affcoups .affcoups-coupon__thumbnail img,
.affcoups .affcoups-coupon__image{
  transition:none!important;
  transform:none!important;
}

/* Don’t let inner links steal the click */
.affcoups .affcoups-coupon a.affcoups-coupon__thumbnail,
.affcoups .affcoups-coupon a.affcoups-coupon__title,
.affcoups .affcoups-coupon .affcoups-coupon__footer a{
  pointer-events:none!important;
}

/* Hide in-card extras (shown in modal) */
.affcoups .pp-row,
.affcoups .pp-panel,
.affcoups .affcoups-coupon__footer,
.affcoups .affcoups-coupon__valid-dates{
  display:none!important;
}

/* ===== Structure so equal heights can fill ===== */
.affcoups .affcoups-coupons-grid__item{
  display:flex;
}
.affcoups .affcoups-coupons-grid__item > .affcoups-coupon{
  width:100%;
  display:flex;
  flex-direction:column;
}


.affcoups .affcoups-coupon__inner{
  flex-grow:1;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
}

/* ===== Title clamping on cards ===== */
.affcoups .affcoups-coupon__title .affcoups-brand-name{
  font-weight:700;
  text-transform:uppercase;
  color:#50596E;
  font-size:13px;
  line-height:1.35;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  text-overflow:ellipsis;
  margin-top:2px;
}

/* Offer title — grid + slider + list */
.affcoups .affcoups-coupon__title .affcoups-offer-title{
  font-weight:400;
  color:#304368;
  font-size:14px;

  line-height:1.4;
  margin-top:0;

  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  text-overflow:ellipsis;
  max-height:2.8em;
}


/* ===== Logo placement (lower, overlapping, aligned with brand start) ===== */
.affcoups .affcoups-coupon__header{
  position:relative;
}

/* CHANGED: nudge logo a bit left and up */
.affcoups .affcoups-vendor__logo_grid{
  position:absolute;
  left:0px;        /* was 16px – slightly further left */
  bottom:-12px;     /* was -22px – slightly higher */
  width:84px;
  height:84px;
  z-index:2;
}

/* kill any border/box look on logos */
.affcoups .affcoups-vendor__logo_grid img{
  width:100%;
  height:100%;
  object-fit:contain;
  background:transparent!important;
  border:none!important;
  box-shadow:none!important;
  border-radius:8px;
}

/* push text down to sit under the overlapping logo */
.affcoups .affcoups-coupon__content{
  padding-top:0px;
}


/* ===== Modal ===== */
#pp-offer-overlay{
  position:fixed;
  inset:0;
  background:transparent;
  z-index:99997;
  display:none;
}
#pp-offer-modal{
  position:fixed;
  width:min(720px,94vw);
  max-height:92vh;
  overflow:hidden;
  background:#ffffff;
  border-radius:14px;
  box-shadow:0 18px 40px rgba(0,0,0,.25);
  z-index:99998;
  display:none;
}
@media (min-width:1025px){
  #pp-offer-modal{
    width:400px;
  }
}
#pp-offer-modal .pp-close{
  position:absolute;
  top:8px;
  right:10px;
  font-size:22px;
  line-height:1;
  color:#64748b;
  cursor:pointer;
}
#pp-offer-modal .pp-head{
  display:grid;
  grid-template-columns:64px 1fr;
  gap:12px;
  align-items:center;
  padding:12px 16px 8px;
  border-bottom:1px solid #e5e7eb;
}
/* remove any border/box look in modal logo too */
#pp-offer-modal .pp-logo{
  width:64px;
  height:64px;
  border-radius:10px;
  object-fit:contain;
  background:transparent!important;
  border:none!important;
  box-shadow:none!important;
}
#pp-offer-modal .pp-brand{
  display:block;
  font-weight:700;
  text-transform:uppercase;
  color:#50596E;
  font-size:13px;
  line-height:1.35;
}
#pp-offer-modal .pp-title{
  display:block;
  font-weight:400;
  color:#304368;
  font-size:14px;
  line-height:1.25;
}
#pp-offer-modal .pp-hero{
  width:100%;
  height:auto;
  display:block;
}
@media (max-width:768px){
  #pp-offer-modal .pp-hero{
    max-height:36vh;
    object-fit:cover;
  }
}
#pp-offer-modal .pp-body{
  max-height:calc(92vh - 64px);
  overflow:auto;
  padding:12px 16px 4px;
}
#pp-offer-modal .pp-sec-title{
  font-size:12px;
  color:#50596E;
  font-weight:600;
  margin:10px 0 4px;
}
#pp-offer-modal .pp-dates{
  color:#6b7280;
  font-size:12px;
}
#pp-offer-modal .pp-actions{
  display:flex;
  gap:10px;
  justify-content:flex-end;
  padding:10px 16px 14px;
  border-top:1px solid #e5e7eb;
  background:#fafafa;
}
#pp-offer-modal .pp-btn{
  appearance:none;
  border:1px solid #cbd5e1;
  background:#7989ad;
  border-radius:10px;
  padding:8px 14px;
  font-weight:600;
  cursor:pointer;
}
#pp-offer-modal .pp-btn-primary{
  background:#304368;
  color:#fff;
  border-color:#304368;
}
#pp-offer-modal .pp-btn-primary:hover{
  filter:brightness(1.07);
}

/* Pupil Perks – tighten spacing under brand + offer title on cards */
.affcoups .affcoups-coupon__title {
  margin-top: 6px !important;   /* small space under the image / logo */
  margin-bottom: 6px !important;/* reduces big gap above the bottom of card */
}

/* make sure the brand + offer stack stays tight */
.affcoups .affcoups-coupon__title .affcoups-brand-name {
  margin-bottom: 0 !important;
}

.affcoups .affcoups-coupon__title .affcoups-offer-title {
  margin-top: 2px !important;
}

/* Remove extra bottom spacing inside the card inner container */
.affcoups .affcoups-coupon__inner {
    padding-bottom: 10px !important;   /* was ~30–40px for the old accordions */
}

/* ===== NEW: remove leftover accordion / code / price space from cards ===== */
.affcoups .pp-row,
.affcoups .pp-panel,
.affcoups .affcoups-coupon__code,
.affcoups .affcoups-coupon__cost-compare,
.affcoups [id^="affcoups-coupon__button_"] {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  height: 0 !important;
}


/* Hover background for coupon card */
.affcoups .affcoups-coupons-grid .affcoups-coupon:hover {
    background-color: #fbfbfb !important;
    transition: background-color 0.2s ease;
}

.affcoups .affcoups-coupons-grid .affcoups-coupon { max-width: 400px; margin: 0 auto 0px auto; padding-bottom: 0px; 
background-color: #fbfbfb;
}

.affcoups .affcoups-coupon__title .affcoups-brand-name
{ color: #304368; font-size: 15px; text-transform: none; font-weight: 400;}

.affcoups-coupon__title br {
    display: none !important;
}

/* ==== Popup – Discount code section ==== */
#pp-offer-modal #pp-sec-code {
  margin-top: 10px;
}

#pp-offer-modal .pp-code {
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.5px;
  padding: 4px 8px;
  border-radius: 6px;
  background: #f3f4f6;
  display: inline-block;
  color: #111827;
}

/* =========================================================
   POPUP IMPROVEMENTS
   ========================================================= */

/* 1. Make "Learn & Grow" text white */
#pp-offer-modal .affcoups-type--learn-grow {
  color: #ffffff !important;
}

/* 2. Matching font, size + colour for "More info" + "Valid until" text */
#pp-offer-modal .pp-desc,
#pp-offer-modal .pp-dates {
  font-size: 14px;
  line-height: 1.45;
  color: #50596E;
  font-weight: 500;
}

/* Section titles keep their bold but match spacing */
#pp-offer-modal .pp-sec-title {
  font-size: 13px;
  font-weight: 700;
  color: #50596E;
  margin: 14px 0 6px;
}

/* 3. Discount code improvements */

/* Add "Click to copy the code" label ABOVE the code */
#pp-offer-modal #pp-sec-code::before {
  content: "Click to copy the code";
  display: block;
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 6px;
  color: #50596E;
}

/* Actual code pill/button */
#pp-offer-modal .pp-code {
  display: inline-block;
  background: #304368;
  color: #ffffff;
  padding: 8px 14px;
  border-radius: 8px;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.8px;
  border: 2px dashed rgba(255, 255, 255, 0.7);
  cursor: pointer;
}

/* Hover effect to make it feel interactive */
#pp-offer-modal .pp-code:hover {
  filter: brightness(1.15);
}

.affcoups-type--self-actualisation-needs {color:#ffffff;}


.affcoups .affcoups-coupons-grid .affcoups-coupon__title
{color:#dff0fa; font-size: 15px;}

/* Hide everything *after* the offer title on cards
   (types, description, code, inline button + price compare) */
.affcoups .affcoups-coupon__types,
.affcoups .affcoups-coupon__description,
.affcoups .affcoups-coupon__code,
.affcoups .affcoups-coupon__cost-compare,
.affcoups [id^="affcoups-coupon__button_"],
.affcoups .affcoups-coupon__footer {
    display: none !important;
}

/* === Mobile performance tweak for offer grids === */
/* Paste this into Appearance → Customise → Additional CSS */

@media (max-width: 768px) {

  /* Stop heavy transitions on the whole coupon card */
  .affcoups .affcoups-coupon {
    transition: none !important;
  }

  /* And on the images inside the card */
  .affcoups .affcoups-coupon__thumbnail img,
  .affcoups .affcoups-coupon__image {
    transition: none !important;
    transform: none !important;
  }
}


.affcoups .affcoups-coupons-grid .affcoups-coupon__title {color: #304368; }

/* =========================================
   Pupil Perks – Mobile scroll smoothness
   Global, no per-grid classes
   ========================================= */

/* 1. Undo any previous touch/scroll hacks that might be causing trapping */
.affcoups .affcoups-coupons-grid,
.affcoups .affcoups-coupon,
html,
body {
  touch-action: auto !important;
  -webkit-overflow-scrolling: auto !important;
}

/* 2. Mobile-only improvements */
@media (max-width: 768px) {

  /* Make sure grids aren't creating their own scroll containers */
  .affcoups .affcoups-coupons-grid {
    overflow-y: visible !important;    /* let the PAGE do the scrolling */
  }

  /* Lighten up card behaviour on mobile to reduce “sticky” feeling */
  .affcoups .affcoups-coupon {
    transition: none !important;       /* remove hover animations that can stutter */
    animation: none !important;
    transform: none !important;        /* avoid scale / translate jank */
  }

  .affcoups .affcoups-coupon:hover,
  .affcoups .affcoups-coupon:active {
    transform: none !important;
    box-shadow: none !important;
  }
}

/* 3. Make sure the main page scroll is normal */
html,
body {
  overscroll-behavior-y: auto;
  overflow-x: hidden;
}

/* ACP Load More button (force override) */
#affcoups-load-more,
#affcoups-load-more.affcoups-coupon__button-load-more,
#affcoups-load-more * {
  background-color: #304368 !important;
  color: #ffffff !important;
  text-decoration: none !important;
  border: none !important;
}

/* Also remove underline on hover/focus/visited (some themes add it back) */
#affcoups-load-more:hover,
#affcoups-load-more:focus,
#affcoups-load-more:visited {
  color: #ffffff !important;
  text-decoration: none !important;
  border: none !important;
}

#pp-offer-modal {
  max-height: 90vh;
  overflow-y: auto;
}

/* Hide ONLY the Valid until label */
#pp-offer-modal .pp-sec-title:has(+ .pp-dates) {
  display: none;
}

/* Style the date */
#pp-offer-modal .pp-dates {
  font-weight: 700;
  color: #7889ad;
  padding-top: 10px;
}

/* Reduce space above "This offer helps your child to:" */
#pp-offer-modal .pp-body {
  margin-top: -15px !important;
}

/* Reduce space under "More info" title */
#pp-offer-modal .pp-sec-title {
  margin-bottom: 0px !important;
}

/* Hide the "Click to copy the code" text */
#pp-offer-modal .pp-copy-text {
  display: none !important;
}

/* Make discount code container tighter */
#pp-offer-modal .pp-code {
  padding: 8px 14px !important;
  font-size: 16px !important;
  border-radius: 8px !important;
  display: inline-block;
  min-width: auto !important;
}

/* Reduce space above code section */
#pp-offer-modal .pp-sec:has(.pp-code) {
  margin-top: 8px !important;
}

/* Hide "Click to copy the code" section */
#pp-offer-modal .pp-sec:has(.affcoups-clipboard) .pp-sec-title:first-child + .pp-desc {
  display: none !important;
}

/* Hide literal Click to copy text */
#pp-offer-modal .pp-copy,
#pp-offer-modal .pp-copy-text {
  display: none !important;
}


/* Remove the "Click to copy the code" pseudo text */
#pp-offer-modal #pp-sec-code::before {
  content: none !important;
  display: none !important;
}

#pp-offer-modal .pp-code {
    display: inline-block;
    background: #fafafa;
    color: #50596e;
    padding: 4px 6px;              /* smaller */
    border-radius: 6px;             /* slightly tighter */       
    font-weight: 700;
    letter-spacing: 0.6px;          /* less stretched */
    border: none;                   /* remove dashed border */
    cursor: pointer;
}

/* Adjust modal description text */
#pp-offer-modal .pp-desc {
    font-size: 13px !important;
    line-height: normal !important;
}

.affcoups-type {
    font-size: 13px !important;
}

/* Grid brand name – match modal exactly */
.affcoups-brand-name {
    display: block;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: #50596E;
    margin-bottom: 6px;
}


/* Remove link underline + keep clean */
.affcoups-coupon__title {
    text-decoration: none !important;
}

.affcoups-coupon__title:hover {
    text-decoration: none !important;
}

a.affcoups-coupon__title span.affcoups-brand-name{
  text-transform: uppercase !important;
  color: #50596E !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  letter-spacing: 0.8px !important;
  display: block !important;
}

/* Letter spacing for brand name in modal */
#pp-offer-modal .pp-brand {
    letter-spacing: 0.8px !important;
      font-size: 12px !important;
}

/* Add divider between brand and offer title on grid cards */
a.affcoups-coupon__title .affcoups-brand-name {
    display: block;
    padding-bottom: 6px;
    margin-bottom: 6px;
}

.affcoups .affcoups-vendor__logo_grid {
    bottom: 10px !important;
}

/* Add space under homepage slider grids */
.affcoups-slider,
.affcoups-carousel,
.affcoups-scroll {
    padding-bottom: 20px;
}

/* Safer catch-all for the slider area */
.affcoups {
    padding-bottom: 0px;
}

h2 {
    text-align: center;
    color: #304368 !important;
    padding-bottom: 10px;
}

/* FORCE Gutenberg button centering (OceanWP-safe) */
body .wp-block-buttons,
body .wp-block-button {
  width: 100% !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}

body .wp-block-button__link.wp-element-button {
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Make Gutenberg button match Affiliate Coupons Explore button */
.wp-block-button__link.wp-element-button {
    background: #50596e !important;
    color: #ffffff !important;
    border: 1px solid #e3e6ec !important;
    border-radius: 6px !important;
    padding: 10px 20px !important;
    font-weight: 600;
    text-transform: uppercase;
    box-shadow: none;
    transition: all 0.15s ease;
}

.wp-block-button__link.wp-element-button:hover {
    background: #7889ad !important;
    border-color: #d7dce6 !important;
}

h2.uagb-heading-text {
    font-size: 20px !important;
    color: #304368;
 
}

/* ===================================== */
/* PUPIL PERKS 3-COLUMN HUB              */
/* ===================================== */

/* 3 columns desktop */
.pp-3cols {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0px;
}

/* column styling */
.pp-3col {
  background: #f7f1f1;
  border-radius: 12px;
  padding: 10px;
}

/* headings */
.pp-3col-title {
  margin: 0 0 12px;
  font-size: 20px;
  font-weight: 700;
  padding-top: 20px;
}

/* links */
.pp-3col-link {
  display: inline-block;
  margin-top: 12px;
  font-weight: 600;
  text-decoration: none;
  color: #304368;
    padding-bottom: 0px;
      font-size: 16px;
}

/* mobile: stack columns */
@media (max-width: 900px) {
  .pp-3cols {
    grid-template-columns: 1fr;
  }
}

/* ===================================== */
/* COUPON STRUCTURE (list-style layout)  */
/* ===================================== */

/* hide large cover image */
.pp-3cols .affcoups-coupon__thumbnail {
    height: 0 !important;
  overflow: hidden !important;
  opacity: 0 !important;
  position: absolute !important;
  pointer-events: none !important;
}

/* align logo + text */
.pp-3cols .affcoups-coupon {
  display: flex;
  align-items: flex-start;
  margin-bottom: 14px;
}

/* logo sizing */
.pp-3cols .affcoups-vendor__logo_list {
  flex: 0 0 44px;
  margin-right: 12px;
}

/* ensure text area can expand */
.pp-3cols .affcoups-coupon__content {
  flex: 1;
  min-width: 0;
}

/* improve readability */
.pp-3cols .affcoups-offer-title {
  line-height: 1.45;
}

/* ===================================== */
/* TIGHTEN CARD SPACING — HUB ONLY       */
/* ===================================== */

.pp-3cols .affcoups .affcoups-coupons-list .affcoups-coupon {
  margin: 0 0 12px !important;   /* was 30px */
  padding: 1px 1px !important;  /* was 15px */
}

/* remove title margins in LIST view only */
.pp-3cols .affcoups .affcoups-coupons-list .affcoups-coupon__title {
  margin-top: 0 !important;
  margin-bottom: 2px !important;
}

/* add space above logo (hub only) */
.pp-3cols .affcoups .affcoups-vendor__logo_list {
  margin-top: 10px;
}

/* ===================================== */
/* FIXED CARD HEIGHT                     */
/* ===================================== */

.pp-3cols .affcoups .affcoups-coupon{
  min-height: 85px;           /* adjust if needed */
  display: flex;
  align-items: flex-start;
}

/* ===================================== */
/* VENDOR NAME: 1 LINE + ELLIPSIS        */
/* ===================================== */

.pp-3cols .affcoups .affcoups-coupon__title{
  display:block;
}

.pp-3cols .affcoups .affcoups-brand-name{
  display:block;
  font-weight:700;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:100%;
}

/* ===================================== */
/* OFFER TITLE: MAX 2 LINES + … (FIXED)  */
/* ===================================== */

/* make title container behave correctly */
.pp-3cols .affcoups .affcoups-coupon__title{
  display:block;
}

/* clamp offer title */
.pp-3cols .affcoups .affcoups-offer-title{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  text-overflow:ellipsis;
  line-height:1.25;
  max-height:2.5em;
  word-break:break-word;
}

/* --- allow flex text to shrink properly --- */
.pp-3cols .affcoups .affcoups-coupon__content{ min-width:0; }
.pp-3cols .affcoups .affcoups-coupon__title{ display:block; }

/* --- remove forced line break between brand + offer (br breaks clamping) --- */
.pp-3cols .affcoups .affcoups-coupon__title br{ display:none; }

/* --- vendor stays 1 line with … (yours already works) --- */
.pp-3cols .affcoups .affcoups-brand-name{
  display:block;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* --- offer title: 2 lines with … --- */
.pp-3cols .affcoups .affcoups-offer-title{
  display:-webkit-box !important;
  -webkit-box-orient:vertical !important;
  -webkit-line-clamp:2 !important;
  overflow:hidden !important;
  line-height:1.25;
  max-height:2.5em;
}

/* ===================================== */
/* Bigger vendor logos in 3-column hub   */
/* ===================================== */

.pp-3cols .affcoups-vendor__logo_list{
  width: 60px;     /* increase from ~32px */
  height: 60px;
  margin-top: 6px; /* keeps spacing tidy */
  margin-left: 10px;
}

.pp-3cols .affcoups-vendor__logo_list img{
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* ===================================== */
/* MODAL POLISH — SAFE FOR ALL VIEWS     */
/* ===================================== */

/* hero spacing */
#pp-offer-modal .pp-hero{
  width: 100%;
  height: auto;
  margin-bottom: 12px;
}

/* header spacing */
#pp-offer-modal .pp-head{
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin-bottom: 8px;
}

/* brand + title spacing */
#pp-offer-modal .pp-brand{
  display: block;
  font-weight: 700;
  margin-bottom: 2px;
}

#pp-offer-modal .pp-title{
  display: block;
  line-height: 1.3;
}

/* section spacing */
#pp-offer-modal .pp-sec{
  margin-bottom: 10px;
  margin-left: 15px;
  margin-top: -10px;
}

/* button alignment */
#pp-offer-modal .pp-actions{
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 12px;
}

.pp-3col{
  background: transparent;   /* remove coloured box */

/* ===================================== */
/* VIEW ALL LINK SPACING FIX             */
/* ===================================== */

/* tighten spacing above the "View all" links */
.pp-3col-link{
  display:inline-block;
  margin-top:0px !important;   /* reduce gap */
  padding-top:0 !important;
}

/* remove extra bottom gap after last offer in each column */
.pp-3col .affcoups-coupon:last-child{
  margin-bottom:8px !important;
}

/* reduce plugin default spacing between cards */
.pp-3col .affcoups .affcoups-coupons-list .affcoups-coupon{
  margin-bottom:12px !important;
}

/* ===================================== */
/* COLUMN TITLE SPACING                  */
/* ===================================== */

.pp-3col-title{
  margin-bottom:10px;   /* increase space below title */
  line-height:1.3;
  margin-left: -5px;
  color: #304368;
}




h3 {
    font-size: 17px;
    line-height: 1.4;
    color: #304368;
}

/* ===================================== */
/* GRID — FORCE BLOCK CONTEXT FOR TITLE  */
/* ===================================== */

.affcoups-coupons-grid .affcoups-coupon__title{
  display:block !important;
  overflow:hidden !important;
}

/* remove forced line break */
.affcoups-coupons-grid .affcoups-coupon__title br{
  display:none !important;
}

/* brand: 1 line */
.affcoups-coupons-grid .affcoups-brand-name{
  display:block !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

/* offer title: 2 lines */
.affcoups-coupons-grid .affcoups-offer-title{
  display:-webkit-box !important;
  -webkit-line-clamp:2 !important;
  -webkit-box-orient:vertical !important;
  overflow:hidden !important;
  line-height:1.35 !important;
  max-height:2.7em !important;
}

/* =====================================
   FINAL OVERRIDE — GRID TITLE CLAMP
   Must be LAST in the file
===================================== */

/* remove forced line break */
.affcoups-coupons-grid .affcoups-coupon__title br{
  display:none !important;
}

/* brand: 1 line with ellipsis */
.affcoups-coupons-grid .affcoups-brand-name{
  display:block !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  max-width:100% !important;
}

/* offer title: max 2 lines with ellipsis */
.affcoups-coupons-grid .affcoups-offer-title{
  display:-webkit-box !important;
  -webkit-box-orient:vertical !important;
  -webkit-line-clamp:2 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  line-height:1.35 !important;
  max-height:2.7em !important;
}

/* ===================================== */
/* OFFER TITLE — force block for clamp   */
/* ===================================== */

.affcoups-coupon__title .affcoups-offer-title{
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1.35;
  max-height: 2.7em;
}

/* ensure brand stays single line */
.affcoups-coupon__title .affcoups-brand-name{
  display:block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* FIX: allow 2-line clamp in GRID + SLIDER */
.affcoups-coupons-grid .affcoups-coupon__title,
.affcoups-coupons-slider .affcoups-coupon__title{
  display:block !important;
}

/* ensure offer title can clamp */
.affcoups-coupons-grid .affcoups-offer-title,
.affcoups-coupons-slider .affcoups-offer-title{
  display:-webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  overflow: hidden !important;
}

/* FIX: allow 2-line clamp in GRID + SLIDER */
.affcoups-coupons-grid .affcoups-coupon__title,
.affcoups-coupons-slider .affcoups-coupon__title{
  display:block !important;
}

/* ensure offer title can clamp */
.affcoups-coupons-grid .affcoups-offer-title,
.affcoups-coupons-slider .affcoups-offer-title{
  display:-webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  overflow: hidden !important;
}

/* =========================================================
   FINAL FIX — GRID + SLIDER title clamping (PASTE LAST)
   ========================================================= */

/* remove forced line break so clamp behaves consistently */
.affcoups-coupons-grid .affcoups-coupon__title br,
.affcoups-coupons-slider .affcoups-coupon__title br{
  display:none !important;
}

/* BRAND: 1 line with ellipsis (grid + slider) */
.affcoups-coupons-grid .affcoups-brand-name,
.affcoups-coupons-slider .affcoups-brand-name{
  display:block !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  max-width:100% !important;
}

/* OFFER: 2 lines with ellipsis (grid + slider) */
.affcoups-coupons-grid .affcoups-offer-title,
.affcoups-coupons-slider .affcoups-offer-title{
  display:-webkit-box !important;
  -webkit-box-orient:vertical !important;
  -webkit-line-clamp:2 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  line-height:1.35 !important;
  max-height:2.7em !important;
  white-space:normal !important;
}

/* safety: allow text to shrink inside flex/grid cards */
.affcoups-coupons-grid .affcoups-coupon__content,
.affcoups-coupons-slider .affcoups-coupon__content{
  min-width:0 !important;
}

/* FINAL — Offer title clamp (grid + slider) */
.affcoups-coupons-grid .affcoups-offer-title,
.affcoups-coupons-slider .affcoups-offer-title{
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;

  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;   /* prevents cut-off */
  color: #50596E;

  max-height: 2.8em;
}

/* GRID — override plugin padding (correct specificity) */
.affcoups .affcoups-coupons-grid .affcoups-coupon__content{
  padding: 10px 12px 6px !important;
  line-height: 1.35 !important;
}

/* tighten space under title */
.affcoups .affcoups-coupons-grid .affcoups-coupon__title{
  margin-bottom: 4px !important;
}

/* GRID — remove forced equal height */
.affcoups-coupons-grid__item{
  height: auto !important;
}

/* 🔥 FORCE override plugin grid padding */
body .affcoups.affcoups .affcoups-coupons-grid .affcoups-coupon__content{
  padding-top: 6px !important;
  padding-bottom: 2px !important;
}

/* tighten title block spacing */
.affcoups .affcoups-coupon__title{
  line-height: 1.15 !important;
  margin-bottom: 2px !important;
}

/* tighten offer title spacing */
.affcoups .affcoups-offer-title{
  line-height: 1.2 !important;
  margin: 0 !important;
}

/* reduce space before next section */
.affcoups .pp-row{
  margin-top: 2px !important;
}

/* Remove extra space under offer title */
.affcoups-coupon__content .pp-row:first-of-type{
  margin-top: 4px !important;
}

/* Reduce spacing between rows */
.affcoups-coupon__content .pp-row{
  margin: 2px 0 !important;
  padding: 0 !important;
}

/* STOP cards stretching full height */
.affcoups .affcoups-coupons-grid .affcoups-coupon,
.affcoups .affcoups-coupons-slider .affcoups-coupon{
  height: auto !important;
}

/* ===================================== */
/* SLIDER — remove forced height gap     */
/* ===================================== */

/* 1️⃣ Stop plugin forcing full height */
.affcoups .affcoups-coupons-slider .affcoups-coupon{
  height: auto !important;
}

/* 2️⃣ Prevent extra vertical stretch */
.affcoups .affcoups-coupons-slider .affcoups-coupon__content{
  padding: 8px 12px 6px !important;
  line-height: 1.35 !important;
}

/* 3️⃣ Ensure titles clamp correctly in slider */
.affcoups .affcoups-coupons-slider .affcoups-offer-title{
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ===================================== */
/* SLIDER FIX — remove the huge blank area under cards */
/* ===================================== */

/* You currently have padding-bottom on these — override it for sliders */
.affcoups-slider,
.affcoups-carousel,
.affcoups-scroll {
  padding-bottom: 0 !important;
}

/* Catch the inner slider container too (covers different templates/versions) */
.affcoups .affcoups-coupons-slider,
.affcoups .affcoups-coupons-carousel,
.affcoups .affcoups-coupons-scroll {
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
  min-height: 0 !important;
  height: auto !important;
}

/* If the slider uses flex and is stretching items vertically */
.affcoups .affcoups-coupons-slider,
.affcoups .affcoups-coupons-carousel,
.affcoups .affcoups-coupons-scroll {
  align-items: flex-start !important;
}

/* If the slides are "stretching" to the container height */
.affcoups .affcoups-coupons-slider__item,
.affcoups .affcoups-coupons-carousel__item,
.affcoups .affcoups-coupons-scroll__item,
.affcoups .swiper-slide,
.affcoups .slick-slide {
  height: auto !important;
}

/* ===================================== */
/* SLIDER — tighten space above brand + under offer title */
/* ===================================== */

.affcoups .affcoups-coupons-slider .affcoups-coupon__content,
.affcoups .affcoups-coupons-carousel .affcoups-coupon__content,
.affcoups .affcoups-coupons-scroll .affcoups-coupon__content {
  padding-top: 6px !important;
  padding-bottom: 2px !important;
  line-height: 1.35 !important;
}

.affcoups .affcoups-coupons-slider .affcoups-coupon__title,
.affcoups .affcoups-coupons-carousel .affcoups-coupon__title,
.affcoups .affcoups-coupons-scroll .affcoups-coupon__title {
  margin: 0 !important;
  padding: 0 !important;
}

/* If there’s still a tiny extra gap after the title */
.affcoups .affcoups-coupons-slider .pp-row:first-of-type,
.affcoups .affcoups-coupons-carousel .pp-row:first-of-type,
.affcoups .affcoups-coupons-scroll .pp-row:first-of-type {
  margin-top: 6px !important;
}

/* 🔥 STOP plugin forcing full height */
.affcoups .affcoups-coupon {
  height: auto !important;
}

/* ensure cards shrink to content */
.affcoups-coupons-grid__item,
.affcoups-coupons-slider .affcoups-coupon {
  height: auto !important;
}

/* slider wrappers sometimes stretch height */
.affcoups-coupons-slider,
.affcoups-coupons-slider .slick-track,
.affcoups-coupons-slider .slick-slide {
  height: auto !important;
}

.affcoups-coupons-slider .slick-track {
  display: flex !important;
  align-items: flex-start !important;
}

/* BRAND: force 1 line everywhere */
.affcoups-coupons-slider .affcoups-brand-name{
  display:block;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  line-height:1.2;
  max-height:1.2em;
}

/* OFFER TITLE: force 2 lines everywhere */
.affcoups-coupons-slider .affcoups-offer-title{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
  text-overflow:ellipsis;
  line-height:1.35;
  max-height:2.7em;
}

/* Add space above offer title */
.affcoups .affcoups-offer-title{
  display: -webkit-box;          /* keep your 2-line clamp */
  margin-top: 5px !important;   /* 👈 space below divider */
}


header.centered-page-header {
    background-color: #ffffff;
}

.pp-3cols .affcoups .affcoups-coupons-list .affcoups-coupon {
    background-color: #fffff;
}


/* LIST VIEW: container styling */
.affcoups-coupons-list {
  background: #;          /* keeps outer area clean */
  border-radius: 16px;          /* rounded container */
  overflow: hidden;             /* ensures children respect radius */
  padding: 6px;                 /* subtle breathing room */
}

/* LIST VIEW: individual list items */
.affcoups-coupons-list .affcoups-coupon {
  background: #fbfbfb;          /* requested colour */
  border-radius: 5px;          /* soft card edges */
  margin-bottom: 8px;           /* spacing between items */
  padding: 12px;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

/* LIST VIEW: vendor name */
.affcoups-coupons-list .affcoups-brand-name {
  color: #50596e !important;
}

/* LIST VIEW: offer title */
.affcoups-coupons-list .affcoups-offer-title {
  color: #304368 !important;
   font-weight: 400;
}

/* Ensure card is positioning context */
.affcoups-coupons-list .affcoups-coupon {
  position: relative;
  
}

/* Reset any forced sizing */
.affcoups-coupons-list .affcoups-coupon img {
  width: auto !important;
  height: auto !important;
  max-width: 64px; /* matches grid logo scale */
  object-fit: contain;
}

/* Create balanced white badge */
.affcoups-coupons-list .affcoups-coupon > div:first-child {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2px;              /* equal spacing all sides */
}

/* Badge styling */
.affcoups-coupons-list .affcoups-coupon img {
  background: #ffffff;
  border-radius: 12px;
  padding: 2px;              /* equal inner spacing */
}

/* Collapse space created by <br> between brand and offer */
.affcoups .affcoups-coupon__title {
  line-height: 1.05 !important;
}

.affcoups .affcoups-brand-name {
  line-height: 1 !important;
}

.affcoups .affcoups-offer-title {
  margin-top: 0px !important;
}


/* Mobile list view — add breathing room between logo and text */
@media (max-width: 768px) {
  .affcoups[data-template="list"] .affcoups-coupon__content {
    margin-left: 85px !important;
    margin-right: 10px;
    margin-top: 2px;
    padding-bottom: 20px;
  }
}

/* FIX: long vendor names breaking mobile grid */
.affcoups .affcoups-brand-name{
white-space: normal !important;
overflow: visible !important;
text-overflow: unset !important;
overflow-wrap: anywhere !important;
word-break: break-word !important;
display:block !important;
max-width:100% !important;
}

/* hide original tags until JS processes them */

.directorist-listing-single__info__excerpt{
  opacity:0;
  transition:opacity .15s ease;
}

/* tag styling */

.pp-tag{
  display:inline-flex;
  align-items:center;
  margin-right:12px;
  font-size:11px;
  font-weight:600;
  color:#50596e;
}

/* coloured dot */

.pp-dot{
  width:16px;
  height:16px;
  border-radius:50%;
  display:inline-block;
  margin-right:6px;
}

