/******************
 * 1.0 Basic Layout and Typography
 * 2.0 Horizontal Cards - see cap file
 * 3.0 Slider - see slider file
 * 4.0 Accordian
 * 5.0 How it works list
 * 6.0 CTA
 * 7.0 Header
 * 8.0 Hero Section
 * 9.0 Footer
 * 10.0 Testimonial Slider - see slider file



 body so find and replace easier if needed
 * *****************************/


 /*** Fixes for older version of WP on client site ****/
 /* body .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
	max-width: 1280px;
    margin-left: auto !important;
    margin-right: auto !important;
}

body .is-content-justification-center.is-layout-flex {
	display: flex;
	justify-content: center;
}

body .margin-auto {
	margin-left: auto;
	margin-right: auto;
}

body  .landing-page-cta .bg-overlay {
	background-color: rgba(185, 141, 254, 0.8) !important;
}

body .gap-20 {
	gap: 20px;
}

body .equal-height-card > * {
	height: 100%;
    justify-content: flex-start !important;
}

@media (max-width: 776px) {
	.cash-flow-advantage-section {
		background: white !important;
	}
} */

/******************
 * 1.0 Basic Layout and Typography
 * **********************/
 /** will use custom headers and footers **/
.page-template-spenda-landing-page header
, .page-template-spenda-landing-page footer
, body .page-header 
{
	display: none !important;
}

/* body section, :root :where(.is-layout-flow) > *  {
	margin-block-start: 0px !important;
	margin-block-end: 0px !important;
} */


.page-template-spenda-landing-page, body a, body p {
	font-size: 20px;
	font-family: "Poppins", "Poppins-fallback", sans-serif;
	line-height: 1.5;
	font-weight: 400;
}

body h2 {
	font-size: 40px;
	font-weight: bold;
	line-height: 1.1;
}



body strong {
	font-weight: 800;
}

/* body .page-content > div {
	padding-top: 0px !important;
} */

body main .container > div h2
,body .page-content > div h2 {
	padding-top: 83px;
}

/** hack to ensure inner content max width **/
body .wp-block-group.alignfull > .wp-block-group {
	margin-left: auto;
	margin-right: auto;
}

body .flex-gap-0, body .flex-gap-0 > div.is-layout-flex {
	gap: 0 !important;
}

body .wp-block-button a {
	padding: 17px 40px;
}

body .max-width-350 {
	max-width: 350px;
}

body .max-width-450 {
	max-width: 450px;
}

/** custom max width classes */
body .max-width-500 {
	max-width: 500px;
}

body .max-width-600 {
	max-width: 600px;
}

body .max-width-700 {
	max-width: 700px;
}

body .max-width-800 {
	max-width: 800px;
}

body .pt-30 {
	padding-top: 30px !important;
}

body .pt-40 {
	padding-top: 40px !important;
}

body .pt-50 {
	padding-top: 30px !important;
}

body .pt-60 {
	padding-top: 60px !important;
}

body .pt-70 {
	padding-top: 70px !important;
}

body .pt-75 {
	padding-top: 75px !important;
}

body .pt-80 {
	padding-top: 80px !important;
}

body .pt-90 {
	padding-top: 90px !important;
}

body .pt-100 {
	padding-top: 100px !important;
}

body .pb-40 {
	padding-bottom: 40px !important;
}

body .pb-50 {
	padding-bottom: 50px !important;
}

body .pb-60 {
	padding-bottom: 60px !important;
}

body .pb-70 {
	padding-bottom: 70px !important;
}

body .pb-75 {
	padding-bottom: 75px !important;
}

body .pb-80 {
	padding-bottom: 80px !important;
}

body .pb-85 {
	padding-bottom: 85px !important;
}


body .pb-100 {
	padding-bottom: 100px !important;
}

body .pb-120 {
	padding-bottom: 120px !important;
}

body .pb-140 {
	padding-bottom: 140px !important;
}

body .pb-160 {
	padding-bottom: 160px !important;
}

body .pr-70 {
	padding-right: 70px !important;
}

body .pr-75 {
	padding-right: 75px !important;
}

body .margin-0 {
	margin: 0 !important;
}

body .padding-0 {
	padding: 0 !important;
}

body .w-100 {
	width: 100%;
}


@media (max-width: 776px) {
	.alignfull {
		margin-inline: 0 !important;
	}

	section > div {
		padding-left: 20px !important;
		padding-right: 20px !important;
	}

	body h2 {
		font-size: 36px;
	}

	body .pt-30 {
		padding-top: 30px !important;
	}

	body .pt-40 {
		padding-top: 40px !important;
	}

	body .pt-50 {
		padding-top: 30px !important;
	}

	body .pt-60 {
		padding-top: 60px !important;
	}

	body .pt-70 {
		padding-top: 70px !important;
	}

	body .pt-75 {
		padding-top: 75px !important;
	}

	body .pt-80 {
		padding-top: 50px !important;
	}

	body .pt-90 {
		padding-top: 60px !important;
	}

	body .pt-100 {
		padding-top: 60px !important;
	}

	body .pb-40 {
		padding-bottom: 40px !important;
	}

	body .pb-50 {
		padding-bottom: 30px !important;
	}

	body .pb-60 {
		padding-bottom: 60px !important;
	}

	body .pb-70 {
		padding-bottom: 40px !important;
	}

	body .pb-75 {
		padding-bottom: 75px !important;
	}

	body .pb-80 {
		padding-bottom: 30px !important;
	}

	body .pb-85 {
		padding-bottom: 85px !important;
	}


	body .pb-100 {
		padding-bottom: 60px !important;
	}

	body .pb-120 {
		padding-bottom: 80px !important;
	}

	body .pb-140 {
		padding-bottom: 90px !important;
	}

	body .pb-160 {
		padding-bottom: 100px !important;
	}

	body .pr-75, body .pr-70 {
		padding-right: 0px !important;
	}

		
}






/******************
 * 4.0 Accordian
 * **********************/
body .accordion {

	gap: 0;


}

body .accordion-item {
	gap: 0;
	margin-bottom: 50px;
}

body .accordion-item > * {
	font-size: 20px;
	padding: 38px 76px; 
}

body .accordion-item-heading {
	width: 100%;
}

@media (max-width: 776px) {
	body .accordion {
		padding-top: 0px;
	}

	body .accordion-item > * {
		padding: 28px 38px;
	}
}


/******************
 * 5.0 How it works list
 * **********************/
:root {
    --step-bg: #1a1a2e;          /* dark circle background */
    --step-fg: #ffffff;          /* circle number colour */
    --dot-color: #8b5cf6;        /* purple connector dot */
    --line-color: #c4b5fd;       /* horizontal line between steps */
    --text-primary: #1a1a2e;
    --text-body: #4b5563;
    --font-head: 'Poppins', sans-serif;
  }

ol.landing-page-timeline {
    list-style: none;
    display: flex;
    align-items: flex-start;   /* top-align so steps can be above OR below */
    justify-content: center;
    gap: 0;
    width: 100%;
    max-width: 900px;
    position: relative;

	padding-left: 0px;
	max-width: 100%;;
  }

  /* horizontal rule that runs through all circles */
  ol.landing-page-timeline::before {
    content: '';
    position: absolute;
    top: 28px;                  /* vertically centred on the 56px circles */
    left: 0;
    right: 0;
    height: 2px;
    background: var(--line-color);
    z-index: 0;
  }

  /* ── Each step ── */
  ol.landing-page-timeline li {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    z-index: 1;
	max-width: 240px;
  }

  /* ── Numbered circle ── */
  ol.landing-page-timeline li .step-number {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--step-bg);
    color: var(--step-fg);
    font-size: 40px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    position: relative;
    z-index: 2;
  }

  /* ── Vertical stem from circle to dot ── */
  ol.landing-page-timeline li .stem {
    width: 2px;
    background: var(--line-color);
    flex-shrink: 0;
  }

  /* Odd steps: label below (stem goes DOWN then dot then text) */
  ol.landing-page-timeline li:nth-child(odd)  .stem { height: 48px; }
  ol.landing-page-timeline li:nth-child(even) .stem { height: 200px; }

  /* ── Purple dot ── */
  ol.landing-page-timeline li .dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--dot-color);
    flex-shrink: 0;
  }

  /* ── Label text ── */
  ol.landing-page-timeline li .label,  ol.landing-page-timeline li .label-mobile {
    margin-top: 12px;
    text-align: center;
    font-size: 20px;
    color: var(--text-body);
    line-height: 1.4;
    padding: 0 4px;
  }

   ol.landing-page-timeline li .label-mobile {
	display: none;
   }



  ol.landing-page-timeline li .label strong {
    color: var(--text-primary);
    font-weight: 700;
  }

  /* ── Stagger animation ── */
  ol.landing-page-timeline li {
    opacity: 0;
    transform: translateY(16px);
    animation: fadeUp 0.5s ease forwards;
  }
  ol.landing-page-timeline li:nth-child(1) { animation-delay: 0.05s; }
  ol.landing-page-timeline li:nth-child(2) { animation-delay: 0.15s; }
  ol.landing-page-timeline li:nth-child(3) { animation-delay: 0.25s; }
  ol.timelanding-page-timelineine li:nth-child(4) { animation-delay: 0.35s; }
  ol.landing-page-timeline li:nth-child(5) { animation-delay: 0.45s; }

  @keyframes fadeUp {
    to { opacity: 1; transform: translateY(0); }
  }

  /* ── Responsive ── */
 @media (max-width: 776px) {
	 ol.landing-page-timeline li .label-mobile {
		display: block;
		text-align: left;
		padding-left: 12px;
		margin-top: 17px;
	}

	 ol.landing-page-timeline li .label {
		display: none;
	}
   }


  @media (max-width: 600px) {
    ol.landing-page-timeline {
      flex-direction: column;
      align-items: flex-start;
      gap: 2rem;
    }
    ol.landing-page-timeline::before {
      top: 5%;
      bottom: 5%;
      left: 28px;
      right: auto;
      width: 2px;
      height: auto;
    }
    ol.landing-page-timeline li {
      flex-direction: row;
      align-items: flex-start;
	  max-width: 90%;
      /* gap: 1rem; */
    }
    ol.landing-page-timeline li .stem {
      width: 48px;
      height: 2px;
	  margin-top: 30px;
    }

	ol.landing-page-timeline li .dot {
		 margin-top: 25px;
	}

	ol.landing-page-timeline li:nth-child(odd)  .stem { height: 2px; }
  	ol.landing-page-timeline li:nth-child(even) .stem { height: 2px; }

    ol.landing-page-timeline li .label {
      margin-top: 0;
      text-align: left;
    }
  }


/***************************************
* 6.0 CTA
******************************************/
.landing-page-cta {
	padding-top: 40px;
	padding-bottom: 40px;
}

.landing-page-cta > div > div {
	background-color: rgba(185, 141, 254, 0.8) !important;
}

.landing-page-cta > div {
	max-width: 1000px;
	width: 90%;
}


.landing-page-cta > div > div {
	max-width: 100%;
	width: 100%;
}

body .wp-block-button a {
	border-radius: 40px !important;
}

@media (max-width: 776px) {
	.landing-page-cta {
		padding-left: 30px;
		padding-right: 30px;
	}

	.landing-page-cta > div {
		width: 100%;
		padding: 0px !important;
	}

	.landing-page-cta > div > div {
		padding: 30px 40px !important;
        row-gap: 20px !important;
	}

	.landing-page-cta p {
		text-align: center !important;
	}

}



/**************************************************
* 7.0 Header 
**************************************************/
section#landing-page-header {
	padding-top: 23px;
	padding-bottom: 23px;
}

.landing-page-header img {
	width: auto;
	max-height: 100px
}

.landing-page-nav {
	display: flex;
	list-style: none;

}

.landing-page-nav li {
	margin-top: 12px;
		padding-left: 0px;
	padding-right: 0px;
	line-height: 1;

	margin-bottom: 0px;
}
	
.landing-page-nav li:after {
  content: "|";
  padding: 0 8px;
  color: #020018;
}

/** hide last seperator **/
.landing-page-nav li:nth-of-type(5):after
,.landing-page-nav li:nth-of-type(6):after {
	content: '';
	display: none;
}

/** contact us button, done as a single list to make responsiveness easer **/
.landing-page-nav li:nth-of-type(6) {
	margin-top: 0px;
	background: #020018 !important;
	color: white;
	padding: 12px 30px;
	border-radius: 24px;
	margin-left: 28px
}

@media (max-width: 776px) {
	#landing-page-header .wp-block-columns {
		row-gap: 0px;
	}

	#landing-page-header .landing-page-nav {
		display: none;
	}
}


/**********************************************
* 8.0 Hero Section
***********************************************/
section.landing-page-hero {
	padding-top: 100px;
	padding-bottom: 140px
}

section.landing-page-hero .wp-block-column:nth-of-type(1) {
	padding-right: 50px;
	padding-left: 20px;
}


section.landing-page-hero .wp-block-column:nth-of-type(2) {
	padding-left: 50px;
	padding-right: 20px;
}

section.landing-page-hero .hero-callout {
	padding: 20px 40px;
	border-radius: 10px;
	margin-bottom: 58px
}

section.landing-page-hero .hero-subtitle {
	padding-bottom: 45px;
	margin-bottom: 60px;
}

.hero-calculator-container {
	overflow: hidden;
	height: 100%;
	padding: 10px;
}

body h1 {
	font-size: 40px;
	line-height: 1.1;
	font-weight: 700;
	
}


@media (max-width: 776px) {

	body  section.landing-page-hero .wp-block-column {
		padding-left: 30px !important;
		padding-right: 30px !important;
	} 

	section.landing-page-hero {
		padding-top: 48px;
		padding-bottom: 70px;
	}
	
	section.landing-page-hero .hero-callout {
		padding: 15px 20px;
		text-align: center;
		margin-bottom: 36px;
	}
	
	section.landing-page-hero .hero-subtitle {
		padding-bottom: 8px;
	}
}

/*******************************
* 9.0 Footer
*******************************/
.landing-page-footer {
	padding: 45px 0px;
}
.landing-page-footer .landing-page-social-links img {
	height: 58px;
	width: auto;
}

