/*--------------------------------------------------------------
  Tevanscapes — brand layer on top of the LeafLife template.

  Palette, wordmark, header-without-nav, footer menus, values cards,
  founder frames and lead-capture forms. Template layout and type
  scale stay intact; colour and brand moments follow the supplied
  artwork (white, ink, gold).

  1.  Brand tokens
  2.  Utilities
  3.  Text wordmark
  4.  Header without navigation
  5.  Footer navigation
  6.  Sticky mobile CTA + WhatsApp
  7.  Split hero
  8.  Values page
  9.  Founders page
  10. Services
  11. Lead capture forms
  12. Blog article typography
  13. Project detail
----------------------------------------------------------------*/

/*--------------------------------------------------------------
  1. Brand tokens
----------------------------------------------------------------*/
:root {
  --white-color: #ffffff;
  --heading-color: #111111;
  --body-color: rgb(17 17 17 / 62%);
  --gray-color: #f6f3eb;
  --border-color: #e6e2d8;
  --accent-color: #f2b705;
  --accent-dark: #d9a204;
  --serif-font: "Playfair Display", Georgia, "Times New Roman", serif;
}

/* Gold highlight on section titles — replaces the template's sage wash. */
.cs_section_heading.cs_style_1 .cs_section_title span,
.cs_section_heading.cs_style_2 .cs_section_title span,
.cs_section_heading.cs_style_2.cs_color_1 .cs_section_title span,
.cs_section_heading.cs_style_4 .cs_section_title span,
.cs_section_heading.cs_style_5 .cs_section_title span,
.cs_page_title span,
.cs_cta_title span,
.cs_lead_band .cs_section_title span {
  background: none;
  -webkit-text-fill-color: var(--accent-color);
  color: var(--accent-color);
}

.cs_gradient_color_1 {
  background: none;
  -webkit-text-fill-color: var(--accent-color);
  color: var(--accent-color);
}

/* Gold primary button matching the brand CTA. */
.cs_btn_accent,
.cs_btn.cs_btn_accent {
  background-color: var(--accent-color);
  color: #111111;
  border-radius: 6px;
  border: none;
}
.cs_btn_accent:hover,
.cs_btn.cs_btn_accent:hover {
  background-color: var(--accent-dark);
  color: #111111;
  border-radius: 6px;
}

.cs_iconbox_icon {
  color: var(--accent-color);
}

/*--------------------------------------------------------------
  2. Utilities
----------------------------------------------------------------*/
.cs_skip_link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 200;
  padding: 12px 24px;
  background-color: var(--heading-color);
  color: var(--white-color);
  border-radius: 0 0 10px 0;
}
.cs_skip_link:focus {
  left: 0;
  color: var(--white-color);
}

.cs_accent_color {
  color: var(--heading-color);
}

.cs_pale_bg {
  background-color: var(--gray-color);
}

@media (max-width: 767px) {
  .cs_hide_md {
    display: none !important;
  }
}

/* Keep long headings from overflowing on narrow screens. */
.cs_section_title,
.cs_page_title,
.cs_card_title,
.cs_post_title {
  overflow-wrap: break-word;
}

/*--------------------------------------------------------------
  2. Brand logo — circular badge
----------------------------------------------------------------*/
html {
  scroll-behavior: smooth;
  scroll-padding-top: 96px;
}
.cs_preloader {
  display: none !important;
}
.cs_brand_logo {
  display: inline-flex;
  align-items: center;
  line-height: 0;
}
.cs_brand_logo_circle {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: #ffffff;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 0 2px rgb(17 17 17 / 18%);
}
.cs_site_header.cs_style_1:not(.cs_color_1) .cs_brand_logo_circle {
  box-shadow: 0 0 0 2px #ffffff;
}
.cs_brand_logo_circle img,
.cs_brand_logo img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
}
.cs_site_header.cs_style_1.cs_sticky_active .cs_brand_logo_circle {
  width: 58px;
  height: 58px;
}
.cs_footer_logo {
  margin-bottom: 16px;
}
.cs_footer_logo .cs_brand_logo_circle {
  width: 80px;
  height: 80px;
}
.cs_values_signoff_mark img {
  height: 72px;
  width: auto;
  display: block;
  margin: 0 auto;
}
@media (max-width: 575px) {
  .cs_brand_logo_circle {
    width: 56px;
    height: 56px;
  }
}

/*--------------------------------------------------------------
  3. Header without navigation
  The template reserves room on the right for a burger menu. With no menu
  there is nothing to reserve, so that padding is removed.
----------------------------------------------------------------*/
@media (max-width: 1199px) {
  .cs_site_header.cs_style_1.cs_no_nav .cs_main_header_right {
    padding-right: 0;
  }
}
.cs_site_header.cs_style_1.cs_no_nav .cs_main_header_right {
  gap: 28px;
}
@media (max-width: 575px) {
  .cs_site_header.cs_style_1.cs_no_nav .cs_main_header_right {
    gap: 12px;
  }
  .cs_site_header.cs_style_1.cs_no_nav .cs_btn.cs_style_1 {
    padding: 9px 18px;
    font-size: 14px;
  }
}

.cs_header_phone {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: 500;
  color: var(--heading-color);
}
.cs_header_phone.cs_white_color,
.cs_header_phone.cs_white_color:hover {
  color: var(--white-color);
}
.cs_header_phone:hover {
  color: var(--heading-color);
  opacity: 0.8;
}

/* The light header sits on the page background rather than over a hero,
   so it needs to be in the flow instead of absolutely positioned. */
.cs_site_header.cs_style_1.cs_color_1.cs_no_nav {
  position: relative;
  background-color: var(--white-color);
}
.cs_site_header.cs_style_1.cs_color_1.cs_no_nav.cs_sticky_active {
  position: fixed;
  box-shadow: 0 8px 24px rgba(17, 17, 17, 0.08);
}

/*--------------------------------------------------------------
  4. Footer navigation
  The template's footer columns are capped at 150px, which is too narrow
  for the service names now that all navigation lives down here.
----------------------------------------------------------------*/
.cs_footer_row .cs_footer_col {
  max-width: 220px;
}
@media (max-width: 991px) {
  .cs_footer_row .cs_footer_col {
    max-width: 45%;
  }
}
@media (max-width: 380px) {
  .cs_footer_row .cs_footer_col {
    max-width: 100%;
  }
}
.cs_footer_widget_menu a {
  font-size: 14px;
  letter-spacing: 0.02em;
}

.cs_footer_contact {
  list-style: none;
  display: grid;
  gap: 12px;
}
.cs_footer_contact a,
.cs_footer_contact span {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  color: inherit;
  opacity: 0.85;
}
.cs_footer_contact a:hover {
  opacity: 1;
  color: inherit;
}
.cs_footer_contact i {
  margin-top: 4px;
  flex: none;
}

.cs_footer_socials {
  display: flex;
  gap: 12px;
  margin-top: 24px;
}
.cs_footer_socials a {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid currentColor;
  color: inherit;
  opacity: 0.75;
}
.cs_footer_socials a:hover {
  opacity: 1;
  color: inherit;
  transform: translateY(-2px);
}

/*--------------------------------------------------------------
  5. Sticky mobile CTA + WhatsApp
  The header CTA scrolls out of reach on phones, so lead capture is kept
  permanently within thumb reach.
----------------------------------------------------------------*/
.cs_mobile_cta_bar {
  display: none;
}
@media (max-width: 767px) {
  .cs_mobile_cta_bar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 120;
    display: flex;
    align-items: stretch;
    background-color: var(--white-color);
    box-shadow: 0 -6px 20px rgba(17, 17, 17), 0.14);
  }
  .cs_mobile_cta_bar_item {
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 14px 16px;
    font-size: 14px;
    font-weight: 700;
    color: var(--heading-color);
  }
  .cs_mobile_cta_bar_item:hover {
    color: var(--heading-color);
  }
  .cs_mobile_cta_bar_primary {
    flex: 1;
    background-color: var(--accent-color);
    color: #111111;
    text-align: center;
  }
  .cs_mobile_cta_bar_primary:hover {
    color: #111111;
    background-color: var(--accent-dark);
  }
  /* Stop the bar covering the end of the footer. */
  body {
    padding-bottom: 52px;
  }
}

.cs_whatsapp_float {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 115;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background-color: #25d366;
  color: #fff;
  font-size: 26px;
  box-shadow: 0 8px 20px rgba(37, 211, 102, 0.35);
}
.cs_whatsapp_float:hover {
  color: #fff;
  transform: translateY(-3px);
}
@media (max-width: 767px) {
  /* Sits above the sticky bar. */
  .cs_whatsapp_float {
    bottom: 68px;
    width: 46px;
    height: 46px;
    font-size: 22px;
  }
}

/*--------------------------------------------------------------
  7. Split hero
  White left, photograph right, white-to-transparent gradient —
  matching the Tevanscapes brand artwork.
----------------------------------------------------------------*/
.cs_brand_hero {
  position: relative;
  min-height: calc(100vh - 90px);
  display: flex;
  align-items: center;
  background-color: var(--white-color);
  overflow: hidden;
}
.cs_brand_hero_media {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 62%;
  background-size: cover;
  background-position: center right;
  background-repeat: no-repeat;
}
.cs_brand_hero_media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    #ffffff 0%,
    rgba(255, 255, 255, 0.92) 12%,
    rgba(255, 255, 255, 0.55) 32%,
    rgba(255, 255, 255, 0) 52%
  );
}
.cs_brand_hero .container {
  position: relative;
  z-index: 2;
}
.cs_brand_hero_copy {
  max-width: 640px;
  padding: 80px 0 90px;
}
.cs_brand_hero_title {
  font-family: var(--heading-font);
  font-weight: 800;
  font-size: clamp(42px, 6.4vw, 82px);
  line-height: 1.05;
  letter-spacing: -0.03em;
  color: var(--heading-color);
  margin: 0 0 18px;
}
.cs_brand_hero_title span {
  color: var(--accent-color);
  display: inline;
}
.cs_brand_hero_sub {
  font-size: clamp(16px, 1.6vw, 22px);
  font-weight: 500;
  color: var(--heading-color);
  max-width: 520px;
  margin: 0 0 32px;
}
.cs_brand_hero_actions {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 22px;
  align-items: center;
  margin-bottom: 36px;
}
.cs_brand_hero .cs_hero_form_wrap {
  max-width: 560px;
}
.cs_brand_hero .cs_hero_form_wrap .cs_form_field {
  background-color: var(--white-color);
  border: 1px solid var(--border-color);
  color: var(--heading-color);
}
.cs_brand_hero .cs_lead_inline .cs_lead_form_result {
  color: var(--heading-color);
}
@media (max-width: 991px) {
  .cs_brand_hero {
    min-height: 0;
  }
  .cs_brand_hero_media {
    width: 100%;
  }
  .cs_brand_hero_media::after {
    background: linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.96) 0%,
      rgba(255, 255, 255, 0.88) 42%,
      rgba(255, 255, 255, 0.55) 100%
    );
  }
  .cs_brand_hero_copy {
    padding: 48px 0 64px;
    max-width: 100%;
  }
}

/*--------------------------------------------------------------
  8. Values page
  Numbered cream-page cards with serif titles and gold badges,
  following the layout in the brand reference artwork.
----------------------------------------------------------------*/
.cs_values_page {
  background-color: #f7f4ec;
}
.cs_values_page_head {
  text-align: center;
}
.cs_values_page_title {
  font-family: var(--serif-font);
  font-weight: 600;
  font-size: clamp(36px, 5vw, 64px);
  line-height: 1.15;
  color: var(--heading-color);
  margin: 0 0 18px;
}
.cs_values_page_title span {
  color: var(--accent-color);
}
.cs_values_page_rule {
  display: block;
  width: 72px;
  height: 3px;
  margin: 0 auto;
  background-color: var(--accent-color);
  border-radius: 2px;
}

.cs_value_card {
  position: relative;
  border: 1px solid #e5e0d4;
  border-radius: 18px;
  background-color: #ffffff;
  padding: 72px 48px 48px;
  text-align: center;
  height: 100%;
  box-shadow: 0 18px 40px rgba(17, 17, 17, 0.04);
}
@media (max-width: 575px) {
  .cs_value_card {
    padding: 64px 20px 32px;
  }
}
.cs_value_card_number {
  position: absolute;
  top: -28px;
  left: 50%;
  transform: translateX(-50%);
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background-color: var(--accent-color);
  color: #111111;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--heading-font);
  font-weight: 700;
  font-size: 18px;
}
.cs_value_card_title {
  font-family: var(--serif-font);
  font-weight: 600;
  font-size: clamp(28px, 3.4vw, 44px);
  color: var(--heading-color);
  margin: 0 0 36px;
  line-height: 1.2;
}

.cs_value_pillars {
  list-style: none;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 0;
  margin: 0 0 32px;
  padding: 0;
}
.cs_value_pillars li {
  flex: 1;
  max-width: 220px;
  padding: 0 22px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}
.cs_value_pillars li + li {
  border-left: 1px solid #e0dbcf;
}
.cs_value_pillars.cs_type_flow li + li {
  border-left: none;
}
.cs_value_pillars i {
  font-size: 36px;
  color: var(--accent-color);
}
.cs_value_pillars span {
  font-family: var(--heading-font);
  font-size: 16px;
  font-weight: 600;
  color: var(--heading-color);
}
.cs_value_pillar_arrow {
  flex: none !important;
  max-width: none !important;
  justify-content: center;
  align-self: center;
  padding: 0 !important;
  color: var(--heading-color);
  opacity: 0.7;
}
.cs_value_pillar_arrow i {
  font-size: 18px;
  color: var(--heading-color);
}
@media (max-width: 575px) {
  .cs_value_pillars {
    flex-direction: column;
    gap: 24px;
  }
  .cs_value_pillars li {
    max-width: 100%;
    width: 100%;
  }
  .cs_value_pillars li + li {
    border-left: none;
    border-top: 1px solid #e0dbcf;
    padding-top: 24px;
  }
  .cs_value_pillars.cs_type_flow li + li {
    border-top: none;
    padding-top: 0;
  }
  .cs_value_pillar_arrow {
    transform: rotate(90deg);
  }
}

.cs_value_statement {
  max-width: 680px;
  margin: 0 auto;
  font-size: 18px;
  line-height: 1.7;
  color: var(--body-color);
}

.cs_values_signoff {
  text-align: center;
}
.cs_values_signoff_mark {
  display: inline-flex;
  justify-content: center;
  margin-bottom: 10px;
}
.cs_values_signoff_line {
  display: block;
  width: 88px;
  height: 2px;
  margin: 0 auto 16px;
  background-color: var(--accent-color);
}
.cs_values_signoff_text {
  font-family: var(--heading-font);
  font-weight: 700;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  font-size: 14px;
  color: var(--heading-color);
  margin: 0;
}

/*--------------------------------------------------------------
  9. Founders page
  The two supplied portraits are different sizes and crops, so the frame
  fixes the aspect ratio and object-fit does the cropping. Both founders
  render at identical dimensions at every breakpoint.
----------------------------------------------------------------*/
.cs_founder {
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.cs_founder_media {
  position: relative;
  width: 180px;
  height: 180px;
  max-width: 58%;
  margin: 0 auto 24px;
  border-radius: 50%;
  overflow: hidden;
  background-color: var(--gray-color);
  border: 5px solid var(--accent-color);
  box-shadow: 0 0 0 3px #111111;
  aspect-ratio: 1 / 1;
}
.cs_founder_media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}
.cs_founder:hover .cs_founder_media img {
  transform: none;
}
@supports not (aspect-ratio: 1 / 1) {
  .cs_founder_media {
    height: 180px;
  }
}
.cs_founder_since {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--accent-color);
  margin: 6px 0 16px;
}
.cs_founder_role {
  display: inline-block;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--heading-color);
  opacity: 0.7;
  margin-bottom: 8px;
}
.cs_founder_socials {
  display: flex;
  gap: 14px;
  margin-top: 20px;
}
.cs_founder_socials a {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(17, 17, 17), 0.3);
  color: var(--heading-color);
}
.cs_founder_socials a:hover {
  background-color: var(--accent-color);
  color: #111111;
  border-color: var(--accent-color);
}

/*--------------------------------------------------------------
  8. Services
----------------------------------------------------------------*/
.cs_service_bullets {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 16px;
}
.cs_service_bullets li {
  display: flex;
  gap: 14px;
  align-items: flex-start;
}
.cs_service_bullets li::before {
  content: '\f00c';
  font-family: 'Font Awesome 6 Free';
  font-weight: 900;
  flex: none;
  margin-top: 3px;
  font-size: 13px;
  color: var(--heading-color);
}

.cs_process_steps {
  list-style: none;
  padding: 0;
  margin: 0;
  counter-reset: step;
}
.cs_process_steps li {
  counter-increment: step;
  position: relative;
  padding: 0 0 28px 62px;
}
.cs_process_steps li::before {
  content: counter(step, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 0;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 1px solid currentColor;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 14px;
}
.cs_process_steps li:not(:last-child)::after {
  content: '';
  position: absolute;
  left: 21px;
  top: 48px;
  bottom: 6px;
  width: 1px;
  background-color: currentColor;
  opacity: 0.3;
}

/*--------------------------------------------------------------
  9. Lead capture forms
  Used by includes/lead-form.php in every variant.
----------------------------------------------------------------*/
.cs_lead_form_label {
  display: block;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 8px;
  color: var(--heading-color);
  opacity: 0.8;
}
.cs_lead_form select.cs_form_field {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 20 12'%3E%3Cpath d='M10 11.25a.87.87 0 0 1-.62-.26L.63 2.24a.88.88 0 0 1 1.24-1.24L10 9.14 18.13 1a.88.88 0 0 1 1.24 1.24l-8.75 8.75a.87.87 0 0 1-.62.26z' fill='%23374836'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 18px center;
  padding-right: 46px;
}
.cs_lead_form textarea.cs_form_field {
  resize: vertical;
  min-height: 110px;
}
.cs_lead_form .cs_form_field::placeholder {
  color: var(--heading-color);
  opacity: 0.5;
}
.cs_lead_form .cs_form_field:focus {
  outline: 2px solid var(--heading-color);
  outline-offset: 1px;
}
.cs_lead_form_consent {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: 14px;
  color: var(--body-color);
}
.cs_lead_form_consent input {
  margin-top: 4px;
  flex: none;
}

/* Anti-spam honeypot — hidden from people, visible to naive bots. */
.cs_lead_form_trap {
  position: absolute !important;
  left: -9999px !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.cs_lead_form_result {
  margin-top: 16px;
  font-weight: 500;
  display: none;
}
.cs_lead_form_result.is-visible {
  display: block;
}
.cs_lead_form_result.is-success {
  color: var(--heading-color);
}
.cs_lead_form_result.is-error {
  color: #b3261e;
}

.cs_lead_form_btn[disabled] {
  opacity: 0.6;
  pointer-events: none;
}

/* Boxed variant — used on the hero, in the blog sidebar and on detail pages. */
.cs_lead_card {
  background-color: var(--white-color);
  border-radius: 20px;
  padding: 40px;
  box-shadow: 0 24px 60px rgba(17, 17, 17), 0.12);
}
@media (max-width: 575px) {
  .cs_lead_card {
    padding: 26px 20px;
  }
}
.cs_lead_card.cs_type_pale {
  background-color: var(--gray-color);
  box-shadow: none;
}
.cs_lead_card.cs_type_pale .cs_form_field {
  background-color: var(--white-color);
}

/* Dark band variant — full-width section between page content and footer. */
.cs_lead_band {
  background-color: var(--heading-color);
  color: var(--white-color);
}
.cs_lead_band .cs_lead_form_label,
.cs_lead_band .cs_lead_form_consent,
.cs_lead_band .cs_lead_form_result.is-success {
  color: var(--white-color);
}
.cs_lead_band .cs_lead_form_label {
  opacity: 0.7;
}
.cs_lead_band .cs_form_field {
  background-color: rgba(249, 251, 243, 0.1);
  color: var(--white-color);
  border: 1px solid rgba(249, 251, 243, 0.25);
}
.cs_lead_band .cs_form_field::placeholder {
  color: var(--white-color);
  opacity: 0.55;
}
.cs_lead_band .cs_form_field:focus {
  outline-color: var(--white-color);
}
.cs_lead_band select.cs_form_field {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 20 12'%3E%3Cpath d='M10 11.25a.87.87 0 0 1-.62-.26L.63 2.24a.88.88 0 0 1 1.24-1.24L10 9.14 18.13 1a.88.88 0 0 1 1.24 1.24l-8.75 8.75a.87.87 0 0 1-.62.26z' fill='%23f9fbf3'/%3E%3C/svg%3E");
}
.cs_lead_band select.cs_form_field option {
  color: var(--heading-color);
}
.cs_lead_band .cs_lead_form_result.is-error {
  color: #ffb4ab;
}

/* Inline variant — a single row, used inside the hero. */
.cs_lead_inline {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
.cs_lead_inline .cs_form_field {
  flex: 1 1 180px;
  width: auto;
}
.cs_lead_inline .cs_btn {
  flex: none;
}
.cs_lead_inline .cs_lead_form_result {
  flex: 1 0 100%;
  margin-top: 4px;
  color: var(--white-color);
}

.cs_hero_form_wrap {
  max-width: 620px;
}
.cs_hero_form_wrap .cs_form_field {
  background-color: rgba(249, 251, 243, 0.92);
}

/*--------------------------------------------------------------
  10. Blog article typography
  Applied to admin-authored post bodies.
----------------------------------------------------------------*/
.cs_post_body {
  font-size: 18px;
  line-height: 1.7;
}
.cs_post_body > *:first-child {
  margin-top: 0;
}
.cs_post_body > *:last-child {
  margin-bottom: 0;
}
.cs_post_body p,
.cs_post_body ul,
.cs_post_body ol,
.cs_post_body table {
  margin-bottom: 24px;
}
.cs_post_body h2,
.cs_post_body h3,
.cs_post_body h4 {
  color: var(--heading-color);
  margin: 44px 0 18px;
}
.cs_post_body h2 {
  font-size: 32px;
}
.cs_post_body h3 {
  font-size: 24px;
}
.cs_post_body h4 {
  font-size: 20px;
}
.cs_post_body ul,
.cs_post_body ol {
  padding-left: 24px;
}
.cs_post_body ul {
  list-style: disc;
}
.cs_post_body ol {
  list-style: decimal;
}
.cs_post_body li {
  margin-bottom: 10px;
}
.cs_post_body a {
  color: var(--heading-color);
  text-decoration: underline;
}
.cs_post_body img {
  max-width: 100%;
  height: auto;
  border-radius: 15px;
  margin: 12px 0;
}
.cs_post_body figure {
  margin: 32px 0;
}
.cs_post_body figcaption {
  font-size: 15px;
  opacity: 0.75;
  margin-top: 10px;
}
.cs_post_body blockquote {
  margin: 32px 0;
  padding: 8px 0 8px 28px;
  border-left: 3px solid var(--heading-color);
  font-size: 22px;
  font-weight: 500;
  color: var(--heading-color);
}
.cs_post_body table {
  width: 100%;
  border-collapse: collapse;
}
.cs_post_body th,
.cs_post_body td {
  border: 1px solid rgba(17, 17, 17), 0.2);
  padding: 12px 14px;
  text-align: left;
}
.cs_post_body th {
  background-color: var(--gray-color);
  color: var(--heading-color);
}
.cs_post_body pre {
  background-color: var(--gray-color);
  padding: 20px;
  border-radius: 12px;
  overflow-x: auto;
  margin-bottom: 24px;
}
.cs_post_body hr {
  margin: 40px 0;
}
@media (max-width: 767px) {
  .cs_post_body {
    font-size: 17px;
  }
  .cs_post_body h2 {
    font-size: 26px;
  }
  .cs_post_body h3 {
    font-size: 21px;
  }
}

.cs_post_hero_img {
  width: 100%;
  border-radius: 20px;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  display: block;
}
@supports not (aspect-ratio: 16 / 9) {
  .cs_post_hero_img {
    height: auto;
  }
}

.cs_post_share {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
.cs_post_share a {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(17, 17, 17), 0.3);
  color: var(--heading-color);
}
.cs_post_share a:hover {
  background-color: var(--heading-color);
  color: var(--white-color);
}

/* Uniform card thumbnails regardless of the uploaded image's dimensions. */
.cs_post.cs_style_1 .cs_post_thumb img,
.cs_ratio_thumb {
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

/* Service filter pills on the projects page. These are real links rather than
   isotope filters, so the page stays crawlable and shareable. */
.cs_service_filter ul {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 12px;
  margin: 0;
  padding: 0;
}
.cs_service_filter a {
  display: inline-block;
  padding: 9px 22px;
  border-radius: 30px;
  border: 1px solid rgba(17, 17, 17), 0.25);
  color: var(--heading-color);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.4;
}
.cs_service_filter a:hover {
  border-color: var(--heading-color);
  color: var(--heading-color);
}
.cs_service_filter li.active a {
  background-color: var(--accent-color);
  border-color: var(--accent-color);
  color: #111111;
}

.cs_empty_state {
  text-align: center;
  padding: 60px 20px;
  border: 1px dashed rgba(17, 17, 17), 0.3);
  border-radius: 20px;
  color: var(--body-color);
}

/*--------------------------------------------------------------
  11. Project detail
----------------------------------------------------------------*/
.cs_project_gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
@media (max-width: 991px) {
  .cs_project_gallery {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
}
@media (max-width: 575px) {
  .cs_project_gallery {
    grid-template-columns: 1fr;
  }
}
.cs_project_gallery a {
  display: block;
  border-radius: 15px;
  overflow: hidden;
}
.cs_project_gallery img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
  transition: transform 0.6s ease;
}
.cs_project_gallery a:hover img {
  transform: scale(1.05);
}

.cs_project_cover {
  width: 100%;
  border-radius: 20px;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  display: block;
}

/* Accent CTA — beat template type_1 radius and heading_bg colours. */
.cs_btn.cs_style_1.cs_type_1.cs_btn_accent,
.cs_btn.cs_style_1.cs_btn_accent {
  background-color: var(--accent-color);
  color: #111111;
  border-radius: 6px;
  border: none;
}
.cs_btn.cs_style_1.cs_type_1.cs_btn_accent:hover,
.cs_btn.cs_style_1.cs_btn_accent:hover {
  background-color: var(--accent-dark);
  color: #111111;
  border-radius: 6px;
}

.cs_footer.cs_style_1.cs_color_1 .cs_footer_widget_title {
  color: var(--accent-color);
}

.cs_page_heading.cs_style_1 .cs_page_title {
  color: var(--white-color);
}

/*--------------------------------------------------------------
  14. Home hero slider
  Template hero with the header sitting over it (same as LeafLife).
  Gold is the only accent; slides get a dark veil so type stays readable.
----------------------------------------------------------------*/
.cs_hero.cs_style_1 .cs_hero_title b {
  color: var(--accent-color);
  -webkit-text-fill-color: var(--accent-color);
  font-weight: 700;
}
.cs_hero_kicker {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent-color);
  margin: 0 0 16px;
}
.cs_hero.cs_style_1 .cs_hero_bg_in {
  position: relative;
}
.cs_hero.cs_style_1 .cs_hero_bg_in::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    rgba(0, 0, 0, 0.62) 0%,
    rgba(0, 0, 0, 0.38) 46%,
    rgba(0, 0, 0, 0.22) 100%
  );
}
.cs_hero.cs_style_1 .cs_hero_form_wrap .cs_form_field {
  background-color: rgba(255, 255, 255, 0.94);
  color: #111111;
  border: none;
}
.cs_hero.cs_style_1 .cs_lead_inline .cs_lead_form_result {
  color: var(--white-color);
}

/* Dark header overlays the slider; sticky bar stays black + gold. */
.cs_site_header.cs_style_1.cs_no_nav:not(.cs_color_1) {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  z-index: 100;
  background: transparent;
}
.cs_site_header.cs_style_1.cs_no_nav:not(.cs_color_1).cs_sticky_active {
  position: fixed;
  background-color: #111111;
  box-shadow: none;
}

/*--------------------------------------------------------------
  15. Clientele
----------------------------------------------------------------*/
.cs_client_card {
  height: 100%;
  background: var(--white-color);
  border: 1px solid var(--border-color);
  border-radius: 16px;
  overflow: hidden;
}
.cs_client_card_media {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--gray-color);
}
.cs_client_card_media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s ease;
}
.cs_client_card:hover .cs_client_card_media img {
  transform: scale(1.05);
}
.cs_client_card_kind {
  margin: 20px 22px 4px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent-color);
}
.cs_client_card_name {
  margin: 0 22px 10px;
  font-size: 20px;
  font-weight: 700;
  color: var(--heading-color);
}
.cs_client_card_note {
  margin: 0 22px 22px;
  font-size: 15px;
  color: var(--body-color);
}

/*--------------------------------------------------------------
  14. Home — hero highlight, services slider, SOP, projects kicker, values
----------------------------------------------------------------*/
.cs_hero.cs_style_1 .cs_hero_highlight {
  color: var(--accent-color) !important;
  font-weight: 700;
  line-height: 1.5;
  max-width: 820px;
  display: inline-block;
  padding: 12px 18px;
  background: rgb(0 0 0 / 42%);
  border-left: 4px solid var(--accent-color);
  letter-spacing: 0.01em;
}

.cs_home_service {
  height: 100%;
  width: 100%;
  display: flex;
  flex-direction: column;
  background: var(--white-color);
  border: 1px solid var(--border-color);
  border-radius: 18px;
  overflow: hidden;
}
.cs_home_services .slick-list {
  margin: 0 -12px;
}
.cs_home_services .slick-track {
  display: flex !important;
  align-items: stretch;
}
.cs_home_services .slick-slide {
  height: auto !important;
  display: flex;
}
.cs_home_services .slick-slide > div,
.cs_home_services .cs_slide {
  display: flex;
  width: 100%;
  height: 100%;
}
.cs_home_service_media {
  display: block;
  overflow: hidden;
  flex: none;
}
.cs_home_service_media img {
  width: 100%;
  aspect-ratio: 16 / 10;
  height: auto;
  object-fit: cover;
  display: block;
}
.cs_home_service_title {
  margin: 22px 22px 10px;
  font-size: 22px;
  font-weight: 700;
  min-height: 2.6em;
  line-height: 1.3;
}
.cs_home_service_title a {
  color: var(--heading-color);
}
.cs_home_service_title a:hover {
  color: var(--accent-color);
}
.cs_home_service_copy {
  margin: 0 22px 16px;
  font-size: 16px;
  color: var(--body-color);
  flex: 1;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 5.6em;
}
.cs_home_service_foot {
  min-height: 108px;
  margin-top: auto;
  padding: 0 22px 22px;
}
.cs_home_service_label {
  margin: 0 0 8px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent-color);
}
.cs_home_service_list {
  margin: 0;
  padding-left: 18px;
  font-size: 15px;
  color: var(--heading-color);
}
.cs_home_services .cs_pagination {
  margin-top: 16px;
}
.cs_service_arrows {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin-top: 28px;
}
.cs_service_arrows .cs_left_arrow,
.cs_service_arrows .cs_right_arrow {
  width: 52px;
  height: 52px;
  border: 1px solid var(--heading-color);
  border-radius: 50%;
  background: #ffffff;
  color: var(--heading-color);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.cs_service_arrows .cs_left_arrow:hover,
.cs_service_arrows .cs_right_arrow:hover {
  background: var(--accent-color);
  border-color: var(--accent-color);
  color: #111111;
}
.cs_service_arrows .slick-disabled {
  opacity: 0.35;
  cursor: default;
}

.cs_sop_band {
  margin-top: 56px;
  padding: 36px 40px;
  background: #111111;
  color: #ffffff;
  border-radius: 18px;
  border-left: 5px solid var(--accent-color);
}
.cs_sop_band_title {
  color: var(--accent-color);
  font-size: 28px;
  font-weight: 700;
  margin: 0 0 12px;
}
.cs_sop_band p {
  color: rgb(255 255 255 / 82%);
  font-size: 18px;
  max-width: 820px;
}

.cs_section_kicker {
  margin: 18px 0 0;
  font-size: 18px;
  font-weight: 600;
  color: var(--heading-color);
  max-width: 720px;
}

.cs_home_values {
  background: #111111;
  color: #ffffff;
}
.cs_home_values_title {
  font-family: var(--serif-font);
  font-size: clamp(36px, 5vw, 64px);
  font-weight: 600;
  color: #ffffff;
  margin: 0 0 12px;
}
.cs_home_values_title span {
  color: var(--accent-color);
}
.cs_home_values .cs_values_page_rule {
  background: var(--accent-color);
}
.cs_home_value {
  height: 100%;
  padding: 32px 28px 8px 0;
  border-top: 3px solid var(--accent-color);
}
.cs_home_value_num {
  display: block;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent-color);
  margin-bottom: 10px;
}
.cs_home_value_name {
  font-family: var(--serif-font);
  font-size: clamp(26px, 3vw, 36px);
  color: #ffffff;
  margin: 0 0 18px;
}
.cs_home_value_pills {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 18px;
  padding: 0;
}
.cs_home_value_pills li {
  padding: 6px 14px;
  border: 1px solid rgb(242 183 5 / 45%);
  border-radius: 999px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--accent-color);
}
.cs_home_value p {
  color: rgb(255 255 255 / 78%);
  font-size: 17px;
}
.cs_home_values_signoff {
  text-align: center;
  font-family: var(--serif-font);
  font-size: 22px;
  color: var(--accent-color);
  margin: 0;
}
.cs_home_values_signoff img {
  display: block;
  height: 64px;
  width: auto;
  margin: 0 auto 14px;
}

.cs_home_section_head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
}
.cs_home_section_head .cs_section_title span {
  color: var(--accent-color);
}
.cs_home_section_link {
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--heading-color);
  border-bottom: 2px solid var(--accent-color);
  padding-bottom: 2px;
}
.cs_home_section_link:hover {
  color: var(--accent-color);
}

.cs_project_count {
  display: flex;
  align-items: baseline;
  gap: 4px;
  margin: 28px 0 16px;
  line-height: 0.9;
}
.cs_project_count_num,
.cs_project_count_plus {
  font-family: var(--serif-font);
  font-size: clamp(64px, 10vw, 120px);
  font-weight: 600;
  color: var(--accent-color);
}
.cs_project_count_copy {
  max-width: 820px;
  font-size: 18px;
  line-height: 1.6;
  color: var(--body-color);
  margin: 0;
}
.cs_project_count_copy strong {
  color: var(--heading-color);
  font-weight: 700;
  box-shadow: inset 0 -0.38em 0 var(--accent-color);
}
.cs_projects_home .cs_card_subtitle,
.cs_projects_home .cs_arrow_btn {
  display: none;
}
.cs_projects_home .cs_card_title {
  margin-bottom: 0;
}

.cs_video_testimonials {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 32px;
  max-width: 780px;
  margin: 0 auto;
}
.cs_video_testimonial {
  text-align: center;
}
.cs_video_testimonial_frame {
  position: relative;
  width: 100%;
  max-width: 320px;
  margin: 0 auto 18px;
  aspect-ratio: 9 / 16;
  border-radius: 20px;
  overflow: hidden;
  background: #111;
  box-shadow: 0 16px 40px rgb(17 17 17 / 16%);
}
.cs_video_testimonial_frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.cs_video_testimonial_name {
  font-size: 20px;
  font-weight: 700;
  margin: 0 0 4px;
}

.cs_tevan_care {
  background: #000000;
  color: #ffffff;
}
.cs_tevan_care_in {
  display: flex;
  align-items: center;
  gap: 36px;
  max-width: 920px;
}
.cs_tevan_care_logo {
  width: 140px;
  height: 140px;
  object-fit: contain;
  flex: none;
  border-radius: 16px;
}
.cs_tevan_care_title {
  font-family: var(--serif-font);
  font-size: clamp(26px, 3vw, 36px);
  color: #ffffff;
  margin: 0 0 12px;
}
.cs_tevan_care p {
  color: rgb(255 255 255 / 78%);
  font-size: 18px;
  max-width: 640px;
}

@media (max-width: 767px) {
  .cs_video_testimonials {
    grid-template-columns: 1fr;
    max-width: 360px;
  }
  .cs_tevan_care_in {
    flex-direction: column;
    text-align: center;
    gap: 20px;
  }
  .cs_tevan_care p {
    margin-left: auto;
    margin-right: auto;
  }
}

@media (max-width: 991px) {
  .cs_home_service {
    max-width: 560px;
    margin: 0 auto;
  }
  .cs_sop_band {
    padding: 28px 22px;
  }
}

.cs_service_gallery {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.cs_service_gallery img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 12px;
  display: block;
}

@media (max-width: 767px) {
  .cs_founder_media {
    width: 150px;
    height: 150px;
  }
  .cs_service_gallery {
    grid-template-columns: 1fr;
  }
  .cs_hero.cs_style_1 .cs_hero_highlight {
    font-size: 16px !important;
    padding: 10px 14px;
  }
}
