/** Site Theme Tokens **/

:root {
    --core-site-font-body: 'Inter Tight', system-ui, sans-serif;
    --core-site-heading-font: 'Instrument Serif', serif;
    --core-site-heading-weight: 400;
    --core-site-color-text: var(--color-charcoal);
    --core-site-color-link: var(--color-pine);
    --core-accent: var(--color-pine);
}
body { font-family: var(--core-site-font-body); }
h1, h2, h3, h4, h5, h6 { font-family: var(--core-site-heading-font); }
h1, h2, h3, h4, h5, h6 { font-weight: var(--core-site-heading-weight); }
body { color: var(--core-site-color-text); }
a { color: var(--core-site-color-link); }


/** Site Custom Stylesheet (From File) **/ 



 /** Site Custom Styles (From DB) **/ 

/* ===== Colour palette ===== */ :root  {
  /* Warm off-white base */ --color-parchment: #FAF7F1;
  --color-parchment-dark: #F1EDE3;
  /* Deep therapeutic green — brand + CTA colour */ --color-pine: #2E4A3B;
  --color-pine-dark: #243B2F;
  --color-pine-darker: #1D3328;
  /* Ink */ --color-charcoal: #23271F;
  /* Light text on pine */ --color-ivory: #F0EDE4;
  /* Semantic anchors */ --color-brand: var(--color-pine);
  --color-text: var(--color-charcoal);
  --color-bg: var(--color-parchment);
}
/* Background utilities — auto-populate the section editor's bg dropdown */ .bg-parchment  {
  background-color: var(--color-parchment);
}
.bg-sand  {
  background-color: var(--color-parchment-dark);
}
.bg-pine  {
  background-color: var(--color-pine);
}
.bg-pine-dark  {
  background-color: var(--color-pine-dark);
}
/* ===== Base ===== */ html  {
  scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce)  {
  html  {
    scroll-behavior: auto;
  }
}
body  {
  background: var(--color-bg);
}
a  {
  color: var(--color-pine);
  text-decoration: none;
}
a:hover  {
  color: var(--color-pine-darker);
}
h1, h2, h3  {
  text-wrap: pretty;
}
input::placeholder, textarea::placeholder  {
  color: rgba(35, 39, 31, 0.4);
}
/* ===== Buttons (used across many sections) ===== */ .btn  {
  display: inline-block;
  padding: 15px 26px;
  border-radius: 999px;
  font-size: 15px;
  font-weight: 500;
  cursor: pointer;
  text-align: center;
}
.btn-primary  {
  background: var(--color-pine);
  color: #F6F3EC;
}
.btn-primary:hover  {
  background: var(--color-pine-dark);
  color: #F6F3EC;
}
.btn-outline  {
  border: 1px solid rgba(35, 39, 31, 0.25);
  color: var(--color-charcoal);
}
.btn-outline:hover  {
  border-color: var(--color-pine);
  color: var(--color-pine);
}
.btn-light  {
  background: var(--color-ivory);
  color: var(--color-pine);
}
.btn-light:hover  {
  background: #ffffff;
  color: var(--color-pine);
}
.btn-row  {
  gap: 16px;
  flex-wrap: wrap;
}


 /** Content Section Styles **/ 

.content-section-2495  {
  padding-top: 22px;
  padding-bottom: 22px;
  &.content-section  {
    border-bottom: 1px solid rgba(35, 39, 31, 0.1);
  }
  .header-bar  {
    gap: 32px;
  }
  .logo  {
    display: flex;
    flex-direction: column;
    gap: 2px;
    color: var(--color-charcoal);
  }
  .logo-name  {
    font-family: 'Instrument Serif', serif;
    font-size: 22px;
    letter-spacing: 0.01em;
  }
  .logo-tag  {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(35, 39, 31, 0.55);
  }
  .header-actions  {
    gap: 20px;
  }
  .header-phone  {
    gap: 7px;
    font-size: 14.5px;
    font-weight: 500;
    color: var(--color-charcoal);
  }
  .header-phone-icon  {
    flex: 0 0 auto;
    color: var(--color-pine);
  }
  .core-menu-link  {
    color: rgba(35, 39, 31, 0.75);
    font-size: 14.5px;
  }
  .core-menu-link:hover  {
    color: var(--color-pine);
  }
  @media (max-width: 1023px)  {
    .header-bar  {
      gap: 20px;
    }
    /* Collapsed layout: logo left, CTA to its right, hamburger hard right */ .logo  {
      order: 1;
      margin-right: auto;
    }
    .header-actions  {
      order: 2;
    }
    .header-nav  {
      order: 3;
      display: block;
    }
  }
  @media (max-width: 767px)  {
    .header-bar  {
      gap: 12px;
    }
    .header-phone  {
      display: none;
    }
    /* On phones the header CTA moves into the mobile menu (see menu bottom slot), keeping the bar clean */ .header-actions .btn  {
      display: none;
    }
  }
}
.content-section-2496  {
  padding-top: 28px;
  padding-bottom: 28px;
  &.content-section  {
    font-size: 13px;
    color: rgba(35, 39, 31, 0.55);
  }
  .footer-bar  {
    gap: 16px;
    flex-wrap: wrap;
  }
}
.content-section-2497  {
  .hero-grid  {
    display: grid;
    grid-template-columns: 1.15fr 0.85fr;
    gap: clamp(32px, 5vw, 72px);
    align-items: center;
  }
  h1  {
    margin: 0 0 26px;
    font-size: clamp(38px, 4.2vw, 58px);
    line-height: 1.08;
    letter-spacing: -0.005em;
    max-width: 18ch;
  }
  .hero-lede  {
    margin: 0 0 36px;
    font-size: 18.5px;
    line-height: 1.65;
    color: rgba(35, 39, 31, 0.75);
    max-width: 52ch;
  }
  .hero-photo img  {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 4.6;
    object-fit: cover;
    border-radius: 999px 999px 12px 12px;
  }
  @media (max-width: 767px)  {
    .hero-grid  {
      grid-template-columns: 1fr;
    }
    .hero-photo  {
      max-width: 380px;
      margin-left: auto;
      margin-right: auto;
    }
    .btn-row  {
      justify-content: stretch;
    }
    .btn-row .btn  {
      flex: 1 1 100%;
      text-align: center;
    }
  }
}
.content-section-2498  {
  h2  {
    margin: 0 0 56px;
    font-size: 38px;
    line-height: 1.15;
  }
  .help-grid  {
    gap: 44px 48px;
  }
  .help-card  {
    border-top: 1px solid rgba(35, 39, 31, 0.25);
    padding-top: 22px;
  }
  .help-card h3  {
    margin: 0 0 12px;
    font-size: 18px;
    font-weight: 600;
    font-family: 'Inter Tight', sans-serif;
  }
  .help-card p  {
    margin: 0;
    font-size: 15.5px;
    line-height: 1.6;
    color: rgba(35, 39, 31, 0.68);
  }
  @media (max-width: 1023px)  {
    .help-grid  {
      grid-template-columns: 1fr 1fr;
    }
  }
  @media (max-width: 767px)  {
    h2  {
      font-size: 30px;
      margin-bottom: 40px;
    }
  }
  @media (max-width: 639px)  {
    .help-grid  {
      grid-template-columns: 1fr;
    }
  }
}
.content-section-2499  {
  .cta-band-grid  {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 48px;
    align-items: center;
  }
  h2  {
    margin: 0 0 12px;
    font-size: 34px;
    line-height: 1.15;
  }
  p  {
    margin: 0;
    font-size: 16.5px;
    line-height: 1.6;
    color: rgba(35, 39, 31, 0.7);
    max-width: 56ch;
  }
  @media (max-width: 1023px)  {
    .cta-band-grid  {
      grid-template-columns: 1fr;
    }
  }
  @media (max-width: 767px)  {
    .btn-row  {
      width: 100%;
    }
    .btn-row .btn  {
      flex: 1 1 100%;
      text-align: center;
    }
  }
}
.content-section-2500  {
  .about-grid  {
    display: grid;
    grid-template-columns: 0.8fr 1.2fr;
    gap: clamp(32px, 5vw, 72px);
    align-items: center;
  }
  .about-grid img  {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 4.4;
    object-fit: cover;
    border-radius: 12px;
  }
  h2  {
    margin: 0 0 20px;
    font-size: 36px;
    line-height: 1.15;
  }
  p  {
    margin: 0 0 18px;
    font-size: 16.5px;
    line-height: 1.7;
    color: rgba(35, 39, 31, 0.75);
  }
  .about-credentials  {
    margin: 12px 0 0;
    font-size: 12.5px;
    line-height: 1.9;
    color: rgba(35, 39, 31, 0.7);
  }
  @media (max-width: 767px)  {
    .about-grid  {
      grid-template-columns: 1fr;
    }
    .about-grid img  {
      max-width: 380px;
      margin-left: auto;
      margin-right: auto;
    }
  }
}
.content-section-2501  {
  .support-grid  {
    display: grid;
    grid-template-columns: 1.15fr 0.85fr;
    gap: clamp(32px, 5vw, 72px);
    align-items: center;
  }
  .support-grid img  {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 4.6;
    object-fit: cover;
    border-radius: 12px;
  }
  h2  {
    margin: 0 0 20px;
    font-size: 36px;
    line-height: 1.15;
  }
  p  {
    margin: 0 0 16px;
    font-size: 16.5px;
    line-height: 1.7;
    color: rgba(35, 39, 31, 0.75);
    max-width: 58ch;
  }
  .support-eyebrow  {
    margin: 28px 0 18px;
    font-size: 13px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(35, 39, 31, 0.5);
  }
  .support-list  {
    gap: 14px 32px;
  }
  .support-item  {
    display: flex;
    gap: 12px;
    align-items: baseline;
    font-size: 15.5px;
    line-height: 1.5;
    color: rgba(35, 39, 31, 0.8);
  }
  .tick  {
    color: var(--color-pine);
    font-weight: 700;
    font-size: 15px;
  }
  @media (max-width: 767px)  {
    .support-grid  {
      grid-template-columns: 1fr;
    }
    .support-list  {
      grid-template-columns: 1fr;
    }
    .support-grid img  {
      max-width: 380px;
      margin-left: auto;
      margin-right: auto;
    }
  }
}
.content-section-2502  {
  &.content-section  {
    color: var(--color-ivory);
  }
  .program-grid  {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: clamp(32px, 4vw, 64px);
    align-items: center;
  }
  .program-eyebrow  {
    margin: 0 0 16px;
    font-size: 12px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(240, 237, 228, 0.6);
  }
  h2  {
    margin: 0 0 18px;
    font-size: 36px;
    line-height: 1.15;
    color: var(--color-ivory);
  }
  .program-lede  {
    margin: 0 0 30px;
    font-size: 16.5px;
    line-height: 1.65;
    color: rgba(240, 237, 228, 0.8);
    max-width: 52ch;
  }
  .program-facts  {
    gap: 1px;
    background: rgba(240, 237, 228, 0.2);
    border: 1px solid rgba(240, 237, 228, 0.2);
    border-radius: 12px;
    overflow: hidden;
  }
  .program-fact  {
    background: var(--color-pine);
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 8px;
  }
  .fact-label  {
    font-size: 12px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(240, 237, 228, 0.55);
  }
  .fact-value  {
    font-size: 17px;
  }
  @media (max-width: 1023px)  {
    .program-grid  {
      grid-template-columns: 1fr;
    }
  }
  @media (max-width: 767px)  {
    .program-facts  {
      grid-template-columns: 1fr;
    }
    .btn-light  {
      display: block;
      text-align: center;
      width: 100%;
    }
  }
}
.content-section-2503  {
  .faq-intro  {
    margin-bottom: 48px;
  }
  h2  {
    margin: 0 0 14px;
    font-size: 36px;
    line-height: 1.15;
  }
  .faq-intro p  {
    margin: 0 auto;
    font-size: 16.5px;
    line-height: 1.65;
    color: rgba(35, 39, 31, 0.7);
    max-width: 44ch;
  }
  summary  {
    font-size: 17.5px;
    font-weight: 600;
  }
  details p  {
    font-size: 15.5px;
    line-height: 1.65;
    color: rgba(35, 39, 31, 0.7);
    max-width: 66ch;
  }
}
.content-section-2504  {
  .enquire-intro  {
    margin-bottom: 44px;
  }
  h2  {
    margin: 0 auto 18px;
    font-size: 42px;
    line-height: 1.12;
    max-width: 22ch;
  }
  .enquire-intro p  {
    margin: 0 auto;
    font-size: 17px;
    line-height: 1.6;
    color: rgba(35, 39, 31, 0.7);
    max-width: 56ch;
  }
  .enquiry-form  {
    display: flex;
    flex-direction: column;
    gap: 16px;
  }
  .enquiry-form label  {
    display: flex;
    flex-direction: column;
    gap: 7px;
    font-size: 13.5px;
    font-weight: 500;
    color: rgba(35, 39, 31, 0.8);
    text-align: left;
  }
  .enquiry-form input, .enquiry-form textarea, .enquiry-form select  {
    border: 1px solid rgba(35, 39, 31, 0.25);
    border-radius: 8px;
    padding: 13px 14px;
    font-size: 15px;
    background: #ffffff;
    color: var(--color-charcoal);
    outline: none;
  }
  .enquiry-form textarea  {
    resize: vertical;
    min-height: auto;
  }
  .enquiry-form input:focus, .enquiry-form textarea:focus, .enquiry-form select:focus  {
    border-color: var(--color-pine);
    box-shadow: none;
  }
  .enquiry-form button  {
    border: none;
    font-size: 15.5px;
    margin-top: 6px;
    width: 100%;
  }
  .form-note  {
    margin: 2px 0 0;
    font-size: 13px;
    line-height: 1.6;
    color: rgba(35, 39, 31, 0.55);
  }
  .form-note a  {
    font-weight: 500;
  }
  @media (max-width: 767px)  {
    h2  {
      font-size: 30px;
    }
    .enquire-intro p  {
      font-size: 16px;
    }
  }
}
