/*
 Theme Name: Divi Child
 Template: Divi
 Version: 1.0
*/

/* Poppins */
@font-face {
  font-family: "Poppins";
  src: local("Poppins Regular"),
       url("./fonts/Poppins-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Poppins";
  src: local("Poppins Medium"),
       url("./fonts/Poppins-Medium.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Poppins";
  src: local("Poppins SemiBold"),
       url("./fonts/Poppins-SemiBold.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Poppins";
  src: local("Poppins Bold"),
       url("./fonts/Poppins-Bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* Lemon Tuesday (script/display font) */
@font-face {
  font-family: "Lemon Tuesday";
  src: local("Lemon Tuesday"),
       url("./fonts/Lemon-Tuesday.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* Always hidden */
.hidden {
  display: none !important;
}

.flex-center-row {
  display: flex;
  justify-content: center;  /* horizontal center */
  align-items: center;      /* vertical center */
}

/* Desktop/tablet: keep text left, image right (usual order) */
.swap-on-mobile {
  display: flex;             /* Divi rows are flex already, but this is safe */
  flex-wrap: nowrap;
}

a {
  text-decoration: underline;
  text-underline-offset: 4px;
}
a:hover {
  color: #c13935;
}

.mobile-stack {
  display: flex;             /* Divi rows are flex already, but this is safe */
  flex-wrap: nowrap;
}

.has-arrow { position: relative; }

.has-arrow::before{
  content: "";
  position: absolute;
  right: -46px;          /* move it where you want */
  top: 84px;
  width: 38px;           /* size it */
  height: 15px;
  pointer-events: none;
  z-index: 2;
  background: url("/wp-content/themes/Edubase/assets/img/arrow-right.svg")
              no-repeat center / contain;
}

@media (max-width: 768px) {
  .has-arrow::before{
    display: none;
  }
}

/* Phone: stack and reverse order (image first, then text) */
@media (max-width: 768px) {
  .swap-on-mobile {
    flex-direction: column;  /* columns stack on phone */
  }
  
  .mobile-stack {
    flex-direction: column;  /* columns stack on phone */
  }

  /* Swap the two columns by position:
     - Second column (image) goes first
     - First column (text) goes second
     Adjust nth-child if your order is different. */
  .swap-on-mobile > .et_pb_column:nth-child(1) { order: 2; }
  .swap-on-mobile > .et_pb_column:nth-child(2) { order: 1; }
}

/* Base button */
.btn{
  font-family:'Poppins',system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  font-size:20px; font-weight:500; line-height:1.2;
  display:inline-flex; align-items:center; gap:.5em;
  padding:17px 28px; border-radius:9999px;
  border:2px solid transparent; text-decoration:none; cursor:pointer;
  transition:all .1s ease;
  position:relative; overflow:hidden; /* needed for fill animation */
}

/* Outline (top button) */
.btn-outline{
  color: #fff;
  border-color: #fff;
  background: transparent;  
}
.btn-full-width {
  width: 100%;
  text-align: center;
  display: inline-block;
}
.btn-outline:hover{ background: #fff; color: #4D4A5D !important; border-color: #FFF !important; }
.btn-outline:active{ transform: translateY(1px); }

.btn-outline-on-white {
  color: #4D4A5D !important; border-color: #4D4A5D !important; 
}
.btn-outline-on-white:hover {
  color: #fff !important; background: #4D4A5D; border-color: #4D4A5D !important; 
}


/* Solid button */
.btn-solid{ background:#fff; color:#4D4A5D; transition: all 0.2s ease-in-out; }
.btn-solid:hover{ background: #fff; opacity: 0.7; }
.btn-solid:active{ transform:translateY(1px); }

/* Solid (bottom button) */
.btn-solid{
  background: #fff;
  color: #4D4A5D;
}
.btn:hover {
  color: #4D4A5D;
}
.btn-solid:active{ transform: translateY(1px); }

.btn-on-white {
  background: #D9F2F8;
}
.btn-on-white:hover {
  background: rgb(172, 210, 219) !important;
  color: #333 !important;
  opacity: 1;
}

/* Accessible focus ring */
.btn:focus-visible{
  outline: none;
  box-shadow: 0 0 0 3px rgba(242,191,104,.55); /* soft amber ring */
}

/* Arrow helper (optional) */
.btn .arrow{ display:inline-block; transform: translateX(0); transition: transform .2s ease; }
.btn:hover .arrow{ transform: translateX(3px); }

@media (min-width: 640px) {
  .sm-flex { display: flex !important; }
  .sm-block { display: block !important; }
}
@media (min-width: 768px) {
  .md-block { display: block !important; }
  .md-flex { display: flex !important; }
}
@media (min-width: 1024px) {
  .lg-block { display: block !important; }
  .lg-flex { display: flex !important; }
}


/* Custom Bullets */

ul.custom-bullets {
  list-style: none; /* remove default bullets */
  padding: 0;
  margin: 0;
}

ul.custom-bullets li {
  position: relative;
  padding-left: 3rem; /* space for the image */
  margin-bottom: 2.2rem; /* space between items */
  line-height: 1.9;
  font-family: 'Poppins';
  font-weight: 500;
  font-size: 16px;
}

ul.custom-bullets li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.2rem; /* adjust to vertically align with text */
  width: 1.6rem;  /* size of the bullet image */
  height: 1.6rem;
  background-image: url('/wp-content/themes/Edubase/assets/img/bullet-point.webp'); /* link your checkmark image */
  background-size: contain;
  background-repeat: no-repeat;
}


/* CTA Banner */

/* Base section */
/* Anchor abs-pos kids to the section */
.edb-cta-banner { position: relative; overflow: hidden; }

/* Content on top */
.edb-cta-banner .edb-cta-banner__row { position: relative; z-index: 2; }

/* Decor row should not add spacing and must stay 'static' */
.edb-cta-banner .edb-cta-banner__decors,
.edb-cta-banner .edb-cta-banner__decors .et_pb_column {
  position: static !important;
  margin: 0 !important;
  padding: 0 !important;
  min-height: 0 !important;
  height: 0 !important;           /* keeps it from affecting layout */
}

/* Decorative images (position relative to the SECTION) */
.edb-cta-banner .edb-cta-banner__dec {
  position: absolute !important;   /* absolute to .edb-cta-banner */
  z-index: 1;
  pointer-events: none;
  width: clamp(72px, 14vw, 220px);
  height: auto;
  opacity: .95;
}

/* Offsets */
.edb-cta-banner .edb-cta-banner__dec--left  { left: clamp(-20px, -2vw, -8px);  bottom: clamp(-10px, -1vw, -4px); }
.edb-cta-banner .edb-cta-banner__dec--right { right: clamp(-14px, -1.5vw, -6px); bottom: clamp(-6px, -0.8vw, -2px); transform: rotate(-2deg); }

/* Mobile tweaks */
@media (max-width: 640px) {
  .edb-cta-banner {
    padding-bottom: 180px;
  }
  .edb-cta-banner .edb-cta-banner__dec { width: clamp(64px, 28vw, 140px); opacity: .9; }
}
@media (max-width: 380px) {
  .edb-cta-banner .edb-cta-banner__dec--right { display: none; } /* optional */
}

/* Wrapper tokens (adjust to your palette) */
.edb-testimonial {
  --edb-name-color: #4D4A5D;       /* heading text */
  --edb-role-color: #9aa0a6;       /* muted subtext */
  --edb-quote-color: #F16461;      /* red quote mark */
}

/* Header row */
.edb-t-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 0;
}

/* Left cluster (avatar + meta) */
.edb-t-left {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0; /* allows text to truncate nicely if needed */
}

/* Avatar */
.edb-t-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  object-fit: cover;
  background: transparent; /* fallback if transparent PNG/SVG */
  flex: 0 0 auto;
}

/* Name + role */
.edb-t-meta { line-height: 1.2; }
.edb-t-name {
  display: block;
  font-weight: 600;
  color: var(--edb-name-color);
}
.edb-t-role {
  display: block;
  font-size: 0.9375rem; /* ~15px */
  color: var(--edb-role-color);
  letter-spacing: 0.1px;
}

/* Quote mark on the right */
.edb-t-quote {
  color: var(--edb-quote-color);
  line-height: 0;
  flex: 0 0 auto;
}
.edb-t-quote svg { display: block; }

/* Optional body styling if you use the blockquote */
.edb-t-body {
  margin: 10px 0 0;
  color: #4a4a4a;
}
.edb-t-body p { margin: 0; }

/* Small screens */
@media (max-width: 480px) {
  .edb-t-avatar { width: 34px; height: 34px; }
  .edb-t-quote svg { width: 24px; height: 24px; }
}

/* Tunable tokens */
.edb-contact-card{
  --edb-accent: #F16461;  /* coral/red from your palette */
  --edb-text: #111;
  --edb-muted: #6b7280;
  --edb-bg: #f3f4f6;      /* light grey card */
  --edb-radius: 16px;
}

/* Card */
.edb-contact-card{
  max-width: 650px;
  margin: 0 auto;
  background: var(--edb-bg);
  border-radius: var(--edb-radius);
  padding: clamp(16px, 3vw, 28px) clamp(16px, 4vw, 40px);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(12px, 3vw, 40px);
  align-items: center;
  overflow: hidden;
  font-family: 'Poppins';
}

/* One contact item (icon + text block) */
.edb-contact-item{
  display: flex;
  grid-template-columns: auto 1fr;
  justify-content: center;
  align-items: center;
  column-gap: 12px;
  min-width: 0;
}

/* Icon – your SVGs will inherit this color */
.edb-contact-icon svg{
  display:block;
  width: 40px;           /* adjust to taste */
  height: 40px;
  color: var(--edb-accent);
}

/* Text block */
.edb-contact-text{ line-height: 1.25; }
.edb-contact-label{
  display:block;
  font-size: 16px;
  font-weight: 600;
  color: var(--edb-accent);
  margin-bottom: 6px;
}
.edb-contact-link{
  color: var(--edb-text);
  font-weight: 600;
  font-size: 16px;
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-thickness: 1.5px;
}
.edb-contact-link:hover{ opacity:.9; color: var(--edb-text); }
.edb-contact-link:focus-visible{
  outline: 2px solid var(--edb-accent);
  outline-offset: 2px;
}

/* Stack on small screens */
@media (max-width: 680px){
  .edb-contact-card{
    grid-template-columns: 1fr;
    row-gap: 18px;
  }
  .edb-contact-icon svg{
    width: 36px; height: 36px;
  }
  .edb-contact-item{
    display: flex;
    justify-content: start;
    align-items: center;
    padding: 12px;
  }
}

.et_pb_gutters3 .no-extra-padding .et_pb_column_1_2, .et_pb_gutters3.et_pb_row .no-extra-padding .et_pb_column_1_2{
  width: 50%;
}
.et_pb_gutters3 .no-extra-padding .et_pb_column, .et_pb_gutters3.et_pb_row .no-extra-padding .et_pb_column {
  margin-right: 0;
}

.subhead {
      padding-bottom: 0;
    color: #1F7491;
    font-family: 'Poppins';
    font-weight: 800;
    font-size: 24px;
}
.subtag {
  padding-bottom: 0;
    font-family: 'Poppins';
    font-weight: 500;
    font-size: 16px;
    margin: 0 30px;
    font-style: italic;
}
.subheader-homepage h2 {
    font-size: 22px !important;
    color: #fcc425 !important;
    line-height: 2.1em;
    font-family: 'Poppins';
}

/* Contact Form */

/* Tokens */
.edb-form{
  --edb-border: #CAC9CF;
  --edb-focus: #05465B;      /* focus ring */
  --edb-muted: #6b7280;
  --edb-text:  #2b2e33;
  --edb-button-bg: #D9F2F8;   /* your light blue */
  --edb-button-tx: #333;
  --edb-radius: 5px;
  max-width: 720px;
  margin: 0 auto;
}

/* Notices */
.edb-form__notice{
  padding: 12px 14px;
  border-radius: 8px;
  margin-bottom: 14px;
  font-weight: 600;
}
.edb-form__notice--ok{ background:#ecfdf5; color:#065f46; }
.edb-form__notice--err{ background:#fff1f2; color:#9f1239; }

/* Fields */
.edb-field{ margin: 14px 0; }
.edb-field input,
.edb-field select,
.edb-field textarea{
  width: 100%;
  padding:32px 20px 20px !important;
  font-family: 'Poppins', sans-serif;
  font-weight: 500;
  font-size: 20px;
  border: 1px solid var(--edb-border);
  border-radius: var(--edb-radius);
  color: var(--edb-text);
  line-height: 1.3;
  box-shadow: 0 0 0 0 rgba(0,0,0,0);
  transition: box-shadow .15s ease, border-color .15s ease;
}
.edb-field textarea{ resize: vertical; min-height: 160px; }

.edb-field input:focus,
.edb-field select:focus,
.edb-field textarea:focus{
  outline: none;
  border-color: var(--edb-focus);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--edb-focus) 20%, transparent);
}

/* Button */
.edb-btn{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
  padding: 14px 22px;
  border: none;
  border-radius: 999px;
  background: var(--edb-button-bg);
  color: var(--edb-button-tx);
  font-weight: 700;
  cursor: pointer;
  transition: transform .08s ease, filter .15s ease;
}
.edb-btn:hover{ filter: brightness(0.97); }
.edb-btn:active{ transform: translateY(1px); }

/* Honeypot hidden */
.edb-hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

/* --- Floating labels that move to the bottom-left on focus/value --- */
.edb-field.edb-float { position: relative; }

/* Hide native placeholders so we only see the label */
.edb-field.edb-float input::placeholder,
.edb-field.edb-float textarea::placeholder { color: transparent; }

/* Give extra bottom padding so there’s room for the shrunken label */
.edb-field.edb-float input,
.edb-field.edb-float textarea {
  padding-top: 26px; /* adjust to taste */
}

/* The label sits centered initially, then slides to bottom-left */
.edb-field.edb-float label {
  position: absolute;
  left: 16px;
  top: 30px;
  font-size: 16px;
  font-family: 'Poppins', sans-serif;
  font-weight: 500;
  padding:0 4px; 
  color: var(--edb-text);
  pointer-events: none;
  transition: bottom .18s ease, transform .18s ease, font-size .18s ease, opacity .18s ease;
}

/* When focused or has a value → shrink + move to bottom-left */
.edb-field.edb-float:focus-within label,
.edb-field.edb-float.has-value label,
.edb-field.edb-float input:not(:placeholder-shown) + label,
.edb-field.edb-float textarea:not(:placeholder-shown) + label {
  top: 6px;
  transform: translateY(0);
  font-size:.65rem !important;
  opacity: .75;
  font-weight: 600;
  left: 16px;
}

/* Textarea: a little more inset looks nicer */
.edb-field.edb-float textarea:not(:placeholder-shown) + label {
  top: 6px;
}

/* --- Select acts like a placeholder with 'Region' --- */
/* With required + empty value, browsers mark it :invalid → style as placeholder */
.edb-field select:invalid { color: var(--edb-text); font-size: 16px; }
/* Real choices use normal color */
.edb-field select option[value=""] { color: var(--edb-text); }

/* Optional: better arrow alignment on macOS/iOS */
.edb-field select {
    font-weight: 500;
    font-size: 20px;
    padding: 30px 20px 26px !important;
    font-family: 'Poppins', sans-serif !important;
    color: var(--edb-text);
    appearance:none;
    background-image: url('./assets/img/arrow-down-form.png');
    background-position:calc(100% - 22px) calc(50% + 2px), calc(100% - 16px) calc(50% + 2px);
    background-size: 15px;
    background-repeat:no-repeat
}

.edb-form__notice{
  padding:12px 14px; max-width: 800px; margin: 0 auto 16px auto; border-radius:8px; font-weight:600; text-align: center; padding: 20px;
}
.edb-form__notice--ok{ background:#ecfdf5; font-family: 'Poppins'; font-size: 16px; font-weight: 500; color:#065f46; }
.edb-form__notice--ok h5 {
    font-family: 'Poppins';
    font-weight: 600;
    font-size: 24px;
    line-height: 2rem;
    color: #065f46;
}
.normal-boxes-tax {
  display: flex !important;
  gap: 17px !important;
}
.et_pb_gutters3 .normal-boxes-tax .et_pb_column_1_4, .et_pb_gutters3.et_pb_row .normal-boxes-tax .et_pb_column_1_4 {
  width: 100% !important;
}
.et_pb_gutters3 .normal-boxes-tax .et_pb_column, .et_pb_gutters3.et_pb_row .normal-boxes-tax .et_pb_column {
  margin-right: 0 !important;
}
.normal-boxes-tax .et_pb_column {
  margin-bottom: 0 !important;
}

[data-slug^="waikato"] .edb-topregion__logo-wrap {
    position: relative;
    width: 120px;
    display: inline-block;
    height: 65px;
    margin: 0 10px 0 15px;
    top: -12px;
}

[data-slug^="waikato"] .edb-topregion__pin, [data-slug^="waikato"] .edb-topregion__slugname {
  margin-top: -25px;
}


/* Modal */

/* Base modal style */
.modal {
  display: none; 
  position: fixed;
  z-index: 9999;
  left: 0; top: 0;
  width: 100%; height: 100%;
  background-color: rgba(0,0,0,0.5);
  justify-content: center; align-items: center;
}

.modal { display: none;}
.modal.is-open { display: flex; }

/* Modal content box */
.modal-content {
  background: #fff;
  border-radius: 10px;
  width: 90%;
  max-width: 500px;
  padding: 30px;
  position: relative;
  text-align: center;
  box-shadow: 0 5px 20px rgba(0,0,0,0.3);
  animation: fadeIn 0.3s ease;
}

@keyframes fadeIn {
  from { opacity: 0; transform: scale(0.95); }
  to { opacity: 1; transform: scale(1); }
}

/* Close button */
.close-btn {
    position: absolute;
    top: 15px;
    right: 20px;
    font-size: 24px;
    cursor: pointer;
    padding: 5px 15px;
    border-radius: 1rem;  
    background: rgb(240, 240, 240);
}
.close-btn:hover {
  background: rgb(230, 230, 230);
}

button {
  border: none;
}

/* Logo section */
.logo-section {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
}
.logo-section a.logos {
  width: 40%;
  display: inline-block;
}

/* Divider */
.divider {
  height: 1px;
  background-color: #ddd;
  margin: 25px 0;
}

/* Modal button */
.modal-btn {
  background-color: #D9F2F8;
  color: #333;
  padding: 10px 18px;
  border-radius: 1rem;
  font-family: 'Poppins';
  font-weight: 600;
  text-decoration: none;
  transition: background 0.2s;
}
.modal-btn:hover {
  background-color: rgb(172, 210, 219) !important;
  color: #333;
}