/* =========================================
   1. Fonts & Base Resets
   ========================================= */

@font-face {
  font-family: Aeonik;
  src: url(https://cdn.prod.website-files.com/66de2f1572bcf866302fd41c/66de30ccf3500ac59b739099_Aeonik-Regular.woff2) format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'PP – Fragment';
  src: url(https://cdn.prod.website-files.com/66de2f1572bcf866302fd41c/66de30cc730b040270305ffa_PPFragment-SerifRegular.woff2) format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: Aeonik;
  src: url(https://cdn.prod.website-files.com/66de2f1572bcf866302fd41c/66de30cc396af3b5cc39c4b6_Aeonik-Medium.woff2) format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'PP – Fragment';
  src: url(https://cdn.prod.website-files.com/66de2f1572bcf866302fd41c/66de30cc1b879fdba2e17bfa_PPFragment-SerifLight.woff2) format("woff2");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: Aeonik;
  src: url(https://cdn.prod.website-files.com/66de2f1572bcf866302fd41c/66de30cc67c5af65019cfee6_Aeonik-Bold.woff2) format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

html {
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  font-family: sans-serif;
  height: 100%;
}

body {
  margin: 0;
  min-height: 100%;
  background-color: var(--theme--background);
  font-family: var(--text-main--font-family);
  color: var(--theme--text);
  font-size: var(--text-main--font-size);
  line-height: var(--text-main--line-height);
  letter-spacing: var(--text-main--letter-spacing);
  overscroll-behavior: none;
}

* {
  box-sizing: border-box;
}

img {
  vertical-align: middle;
  max-width: 100%;
  display: inline-block;
  border: 0;
}

button {
  cursor: pointer;
  -webkit-appearance: button;
  border: 0;
  margin: 0;
  padding: 0;
  background: transparent;
  overflow: visible;
  color: inherit;
  font: inherit;
  text-transform: none;
}

a {
  background-color: #0000;
  color: inherit;
  text-decoration: none;
}

ul,
ol {
  margin-top: 0;
  margin-bottom: 10px;
  padding-left: 40px;
  list-style-type: none;
  margin: unset;
  padding: unset;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin-bottom: 10px;
  margin-top: 0;
}

p {
  margin-top: 0;
  margin-bottom: 10px;
}

svg:not(:root) {
  overflow: hidden;
}

figure {
  margin: 0;
}

/* Webflow specific utilities */
.w-block {
  display: block;
}

.w-inline-block {
  max-width: 100%;
  display: inline-block;
}

.w-dyn-list,
.w-dyn-items,
.w-dyn-item {
  display: block;
}

/* =========================================
   2. Variables (:root)
   ========================================= */

:root {
  --theme--background: white;
  --text-main--font-family: var(--font--secondary-family);
  --theme--text: white;
  --text-main--font-size: var(--size--1rem);
  --text-main--line-height: var(--line-height--1-3em);
  --text-main--letter-spacing: var(--letter-spacing--0em);
  --space--large: var(--size--4rem);
  --space--extra-small: var(--size--0-75rem);
  --h1--font-family: var(--all-headings--heading-font-family);
  --size--4rem: 4rem;
  --h1--line-height: var(--line-height--1-1em);
  --h1--letter-spacing: var(--all-headings--heading-letter-spacing);
  --size--2rem: 2rem;
  --space--small: var(--size--1-5rem);
  --h2--font-family: var(--all-headings--heading-font-family);
  --h2--line-height: var(--all-headings--heading-line-height);
  --h2--letter-spacing: var(--all-headings--heading-letter-spacing);
  --h3--font-family: var(--all-headings--heading-font-family);
  --h3--line-height: var(--line-height--1-1em);
  --letter-spacing--0-03em: -.03em;
  --space--medium: var(--size--3rem);
  --h4--font-family: var(--all-headings--heading-font-family);
  --size--1-5rem: 1.5rem;
  --h4--line-height: var(--line-height--1-3em);
  --h4--letter-spacing: var(--letter-spacing--0-03em);
  --h5--font-family: var(--all-headings--heading-font-family);
  --size--1rem: 1rem;
  --h5--line-height: var(--line-height--1-3em);
  --h5--letter-spacing: var(--letter-spacing--0-03em);
  --h6--font-family: var(--all-headings--heading-font-family);
  --h6--line-height: var(--line-height--1-3em);
  --h6--letter-spacing: var(--letter-spacing--0em);
  --size--1-25rem: 1.25rem;
  --size--0-25rem: .25rem;
  --size--0-5rem: .5rem;
  --text-large--font-family: var(--font--secondary-family);
  --text-large--font-size: var(--size--2rem);
  --text-large--line-height: var(--line-height--1-3em);
  --text-large--letter-spacing: var(--letter-spacing--0em);
  --display--font-family: var(--all-headings--heading-font-family);
  --display--font-size: var(--size--16rem);
  --display--line-height: var(--line-height--1em);
  --display--letter-spacing: var(--all-headings--heading-letter-spacing);
  --h1--font-size: var(--size--8rem);
  --h2--font-size: var(--size--5-5rem);
  --h2--font-size-small: var(--size--3rem);
  --h3--font-size: var(--size--4rem);
  --h3--letter-spacing: var(--all-headings--heading-letter-spacing);
  --h4--font-size: var(--size--2rem);
  --h5--font-size: var(--size--1-5rem);
  --h6--font-size: var(--size--1rem);
  --text-xlarge--font-family: var(--font--secondary-family);
  --text-xlarge--font-size: var(--size--4rem);
  --text-xlarge--line-height: var(--line-height--1-3em);
  --text-small--font-family: var(--font--secondary-family);
  --text-small--font-size: var(--size--0-875rem);
  --text-small--line-height: var(--line-height--1-5em);
  --text-small--letter-spacing: var(--letter-spacing--0em);
  --text-xsmall--font-family: var(--font--secondary-family);
  --text-xsmall--font-size: var(--size--0-75rem);
  --text-xsmall--line-height: var(--line-height--1-1em);
  --text-xsmall--letter-spacing: var(--letter-spacing--0em);
  --grid-gap--main: var(--size--1rem);
  --max-width--main: 100%;
  --padding-vertical--main: var(--size--7rem);
  --padding-horizontal--main: var(--size--4rem);
  --column-width--10: 0px;
  --border-width--main: 1px;
  --button--border: white;
  --button--background: white;
  --button--text: white;
  --button--border-hover: white;
  --button--background-hover: white;
  --button--text-hover: white;
  --size--0rem: 0rem;
  --radius--small: .5em;
  --radius--main: 1em;
  --radius--round: 100vw;
  --theme--border: white;
  --size--0-75rem: .75rem;
  --line-height--1em: 1em;
  --swatch--transparent: #fff0;
  --swatch--brand: #C1AE7C;
  --size--3rem: 3rem;
  --font--primary-family: "PP – Fragment", sans-serif;
  --swatch--dark: #825532;
  --size--5rem: 5rem;
  --padding-vertical--small: var(--size--5rem);
  --size--0-125rem: .125rem;
  --line-height--1-1em: 1.1em;
  --font--secondary-family: Aeonik, sans-serif;
  --padding-vertical--none: var(--size--0rem);
  --size--8rem: 8rem;
  --size--9rem: 9rem;
  --size--7rem: 7rem;
  --size--6-5rem: 6.5rem;
  --padding-vertical--large: var(--size--10rem);
  --size--20rem: 20rem;
  --size--6rem: 6rem;
  --size--8-5rem: 8.5rem;
  --line-height--1-3em: 1.3em;
  --swatch--light: #E6E6E9;
  --size--2-5rem: 2.5rem;
  --size--3-5rem: 3.5rem;
  --size--0-875rem: .875rem;
  --column-width--2: 0px;
  --swatch--dark-secondary: #585254;
  --size--4-5rem: 4.5rem;
  --column-width--3: 0px;
  --column-width--4: 0px;
  --column-width--7: 0px;
  --column-width--8: 0px;
  --size--14rem: 14rem;
  --swatch--brand-text: var(--swatch--dark);
  --size--16rem: 16rem;
  --size--10rem: 10rem;
  --size--12rem: 12rem;
  --swatch--light-secondary: #fef9f3;
  --swatch--brand-secondary: white;
  --padding-vertical--xlarge: var(--size--16rem);
  --max-width--none: 100vw;
  --svg-stroke-width--main: 1px;
  --font--primary-regular: var(--font-weight--400);
  --font--primary-medium: var(--font-weight--500);
  --font--primary-bold: var(--font-weight--700);
  --font--secondary-regular: var(--font-weight--400);
  --font--secondary-medium: var(--font-weight--500);
  --font--secondary-bold: var(--font-weight--700);
  --letter-spacing--0em: 0em;
  --line-height--1-5em: 1.5em;
  --all-headings--heading-font-family: var(--font--primary-family);
  --all-headings--heading-font-weight: var(--font--primary-medium);
  --all-headings--heading-line-height: var(--line-height--1em);
  --all-headings--heading-letter-spacing: var(--letter-spacing--0-03em);
  --all-headings--heading-text-transform: var(--text-transform--inherit);
  --display--font-weight: var(--all-headings--heading-font-weight);
  --display--text-transform: var(--text-transform--uppercase);
  --h1--font-weight: var(--all-headings--heading-font-weight);
  --h1--text-transform: var(--h2--text-transform);
  --h2--font-weight: var(--all-headings--heading-font-weight);
  --h2--text-transform: var(--text-transform--uppercase);
  --h3--font-weight: var(--all-headings--heading-font-weight);
  --h3--text-transform: var(--text-transform--uppercase);
  --h4--font-weight: var(--all-headings--heading-font-weight);
  --h4--text-transform: var(--all-headings--heading-text-transform);
  --h5--font-weight: var(--all-headings--heading-font-weight);
  --h5--text-transform: var(--all-headings--heading-text-transform);
  --h6--font-weight: var(--all-headings--heading-font-weight);
  --h6--text-transform: var(--all-headings--heading-text-transform);
  --text-large--font-weight: var(--font--secondary-regular);
  --text-large--text-transform: var(--text-transform--inherit);
  --text-xlarge--font-weight: var(--font--secondary-regular);
  --text-xlarge--letter-spacing: var(--letter-spacing--0em);
  --text-xlarge--text-transform: var(--text-transform--inherit);
  --text-main--font-weight: var(--font--secondary-regular);
  --text-main--text-transform: var(--text-transform--none);
  --text-small--font-weight: var(--font--secondary-regular);
  --text-small--text-transform: var(--text-transform--inherit);
  --text-xsmall--font-weight: var(--font--secondary-regular);
  --text-xsmall--text-transform: var(--text-transform--inherit);
  --size--5-5rem: 5.5rem;
  --size--7-5rem: 7.5rem;
  --size--9-5rem: 9.5rem;
  --size--11rem: 11rem;
  --size--13rem: 13rem;
  --size--15rem: 15rem;
  --size--24rem: 24rem;
  --size--28rem: 28rem;
  --size--32rem: 32rem;
  --column-width--1: 0px;
  --column-width--5: 0px;
  --column-width--6: 0px;
  --column-width--9: 0px;
  --column-width--11: 0px;
  --column-width--12: 0px;
  --column-width--16: 0px;
  --text-transform--inherit: 0px;
  --text-transform--none: 0px;
  --text-transform--uppercase: 0px;
  --text-transform--capitalize: 0px;
  --text-transform--lowercase: 0px;
  --font-weight--inherit: 0px;
  --font-weight--100: 0px;
  --font-weight--200: 0px;
  --font-weight--300: 0px;
  --font-weight--400: 0px;
  --font-weight--500: 0px;
  --font-weight--600: 0px;
  --font-weight--700: 0px;
  --font-weight--800: 0px;
  --font-weight--900: 0px
}

[data-theme="light"] {
  --theme--background: var(--swatch--light);
  /* Beige */
  --theme--text: var(--swatch--dark);
  /* Dark Brown */
  --theme--border: rgba(30, 16, 5, 0.2);

  /* Invert buttons for light theme */
  --button--background: var(--swatch--dark);
  --button--text: var(--swatch--light);
  --button--border: var(--swatch--dark);
  --button--background-hover: transparent;
  --button--text-hover: var(--swatch--dark);
}

/* 2. Define what happens when data-theme is "dark" */
[data-theme="dark"] {
  --theme--background: var(--swatch--dark);
  /* Dark Brown */
  --theme--text: var(--swatch--light);
  /* Beige */
  --theme--border: rgba(251, 240, 218, 0.2);

  /* Standard buttons for dark theme */
  --button--background: var(--swatch--light);
  --button--text: var(--swatch--dark);
  --button--border: var(--swatch--light);
  --button--background-hover: transparent;
  --button--text-hover: var(--swatch--light);
}

/* 3. CRITICAL: Apply these variables to the section */
section[data-theme] {
  background-color: var(--theme--background);
  color: var(--theme--text);
  transition: background-color 0.3s ease, color 0.3s ease;
  /* Smooth transition */
}



img {
  object-fit: cover;
  width: 100%;
  max-width: 100%;
}

/* =========================================
   3. Utility Classes (u-*)
   ========================================= */

.u-container {
  max-width: var(--max-width--main);
  padding: var(--padding-vertical--main) var(--padding-horizontal--main);
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  position: relative;
}

.u-grid-custom {
  grid-column-gap: var(--grid-gap--main);
  grid-row-gap: var(--grid-gap--main);
  grid-template-rows: auto;
  grid-auto-columns: minmax(0, 1fr);
  grid-template-columns: var(--grid-1);
  display: grid;
}

.u-column-custom {
  grid-column: auto/span 1;
}

.u-column-1 {
  grid-column: auto/span 1;
}

.u-text-display {
  font-family: var(--display--font-family);
  font-size: var(--display--font-size);
  line-height: var(--display--line-height);
  letter-spacing: var(--display--letter-spacing);
  font-weight: var(--display--font-weight);
  text-transform: var(--display--text-transform);
}

.u-text-h2 {
  font-family: var(--h2--font-family);
  font-size: var(--h2--font-size);
  line-height: var(--h2--line-height);
  letter-spacing: var(--h2--letter-spacing);
  font-weight: var(--h2--font-weight);
  text-transform: var(--h2--text-transform);
}

.u-text-h5 {
  font-family: var(--h5--font-family);
  font-size: var(--h5--font-size);
  line-height: var(--h5--line-height);
  letter-spacing: var(--h5--letter-spacing);
  font-weight: var(--h5--font-weight);
  text-transform: var(--h5--text-transform);
}

.u-text-large {
  font-family: var(--text-large--font-family);
  font-size: var(--text-large--font-size);
  line-height: var(--text-large--line-height);
  letter-spacing: var(--text-large--letter-spacing);
  font-weight: var(--text-large--font-weight);
  text-transform: var(--text-large--text-transform);
}

.u-text-small {
  font-family: var(--text-small--font-family);
  font-size: var(--text-small--font-size);
  line-height: var(--text-small--line-height);
  letter-spacing: var(--text-small--letter-spacing);
  font-weight: var(--text-small--font-weight);
  text-transform: var(--text-small--text-transform);
}

.u-hflex-left-center {
  flex-flow: row;
  place-content: center flex-start;
  align-items: center;
  display: flex;
}

.u-hflex-center-center {
  flex-flow: row;
  place-content: center;
  align-items: center;
  display: flex;
}

.u-hflex-left-top {
  flex-flow: row;
  place-content: flex-start;
  align-items: flex-start;
  display: flex;
}

.u-hflex-between-bottom {
  flex-flow: row;
  place-content: flex-end space-between;
  align-items: flex-end;
  display: flex;
}

.u-hflex-between-stretch {
  flex-flow: row;
  place-content: stretch space-between;
  align-items: stretch;
  display: flex;
}

.u-vflex-center-center {
  flex-flow: column;
  place-content: center;
  align-items: center;
  display: flex;
}

.u-vflex-left-top {
  flex-flow: column;
  place-content: flex-start;
  align-items: flex-start;
  display: flex;
}

.u-vflex-left-between {
  flex-flow: column;
  place-content: flex-start space-between;
  align-items: flex-start;
  display: flex;
}

.u-vflex-stretch-between {
  flex-flow: column;
  justify-content: space-between;
  align-items: stretch;
  display: flex;
}

.u-gap-small {
  grid-column-gap: var(--space--small);
  grid-row-gap: var(--space--small);
}

.u-gap-medium {
  grid-column-gap: var(--space--medium);
  grid-row-gap: var(--space--medium);
}

.u-gap-large {
  grid-column-gap: var(--space--large);
  grid-row-gap: var(--space--large);
}

.u-gap-main {
  grid-column-gap: var(--grid-gap--main);
  grid-row-gap: var(--grid-gap--main);
}

.u-gap-xsmall {
  grid-column-gap: var(--space--extra-small);
  grid-row-gap: var(--space--extra-small);
}

.u-visual-wrap {
  aspect-ratio: 1;
  width: 100%;
  position: relative;
  overflow: hidden;
}

.u-cover-absolute {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0%;
}

.u-overflow-clip {
  overflow: clip;
}

.u-position-relative {
  position: relative;
}

.u-weight-medium {
  font-weight: var(--font--primary-medium);
}

.u-weight-bold {
  font-weight: var(--font--primary-bold);
}

.u-text-transform-uppercase {
  text-transform: uppercase;
}

.u-grid-column-2 {
  grid-column-gap: var(--grid-gap--main);
  grid-row-gap: var(--grid-gap--main);
  grid-template-rows: auto;
  grid-auto-columns: minmax(0, 1fr);
  grid-template-columns: var(--grid-2);
  display: grid;
}

.u-radius-round {
  border-radius: var(--radius--round);
}

.u-radius-inherit {
  border-radius: inherit;
}

.u-zindex-3 {
  z-index: 3;
  position: relative;
}

.u-display-block {
  display: block;
}

.u-display-none {
  display: none;
}

.u-sr-only {
  white-space: nowrap;
  clip: rect(0, 0, 0, 0);
  border-width: 0;
  width: 1px;
  height: 1px;
  margin-left: auto;
  margin-right: auto;
  padding: 0;
  position: absolute;
  inset: 0% 0% auto;
  overflow: hidden;
}

.w-layout-vflex {
  flex-direction: column;
  align-items: flex-start;
  display: flex;
}

/* =========================================
   4. Specific Component Classes (g_, service_, etc)
   ========================================= */
.loader {
  position: fixed;
  inset: 0;
  z-index: 1001;
  display: flex;
  justify-content: center;
  align-items: center;
  pointer-events: none;
}

.loader_panel {
  background-color: var(--swatch--light);
  width: 50%;
  height: 100%;
  position: relative;
}

.loader_logo {
  position: absolute;
  z-index: 3;
  color: var(--swatch--dark);
  width: 7vw;
}


.word-by-word-reveal .word {
  display: inline-block;
  /* Essential for transforms/opacity to work */
  line-height: inherit;
  white-space: normal;
  /* Prevents words from breaking onto new lines awkwardly */
}

/* Hero */
.g_hero_container {
  height: 100%;
  min-height: 100vh;
  max-width: var(--max-width--main);
}

.g_hero_container.u-container {
  padding-bottom: var(--size--4rem);
}

.g_hero_container.u-container.u-grid-custom {
  grid-template-columns: var(--grid-main);
}

.g_hero_mid {
  overflow: clip;
}

.g_hero_mid.u-column-custom {
  grid-column: 4/span 4;
}

.g_hero_svg {
  width: 75%;
}

.g_hero_content {
  height: 95%;
  margin-left: 0;
}

/* .g_hero_content.u-column-custom {
  grid-column: 9/span 2;
} */

.g_hero_text {
  font-family: var(--font--primary-family);
  font-size: var(--text-xlarge--font-size);
  line-height: var(--line-height--1-1em);
  text-transform: uppercase;
  overflow: clip;
}

.g_hero_text_small {
  font-family: var(--font--primary-family);
  text-transform: uppercase;
  font-size: xx-large;
  font-weight: 300 !important;
}

.scroll_to_explore {
  font-family: var(--font--primary-family);
  font-size: var(--text-small--font-size);
  line-height: var(--line-height--1-1em);
  text-transform: uppercase;
  overflow: clip;
}

.scroll_to_explore.u-column-custom {
  grid-column-start: 1;
}

.g_visual_wrap {
  overflow: clip;
}

.g_visual_background {
  opacity: .1;
  background-color: currentColor;
}

.g_visual_overlay {
  background-color: #000;
}

.g_visual_whipe {
  z-index: 2;
  background-color: var(--theme--background);
  inset: 0% 0% 0% auto;
  transform: scale(1.1);
}

.g_heading {
  line-height: var(--line-height--1em);
}

/* Services */
.service_wrapper {
  z-index: 5;
  width: 100%;
  height: 100%;
  position: relative;
}

.service_list {
  position: relative;
}

.service_item {
  background-color: var(--swatch--dark);
  width: 100%;
  height: 100svh;
  position: sticky;
  top: 0;
}

.service_item.u-vflex-left-top {
  height: auto;
  min-height: 110svh;
}

.service_item_header {
  padding: var(--size--2-5rem) var(--padding-horizontal--main);
  width: 100%;
  position: relative;
}

.service_header_title {
  font-family: var(--font--primary-family);
  font-size: var(--text-xlarge--font-size);
  line-height: var(--line-height--1em);
  text-transform: uppercase;
  overflow: clip;
}

.service_detail_layout.u-grid-custom {
  grid-template-columns: var(--grid-main);
  width: 100%;
  height: 100%;
}

.service_detail_layout.u-container {
  min-height: 100%;
}

.service_detail_layout.u-container.u-grid-custom {
  padding-top: var(--space--large);
  padding-bottom: var(--space--large);
  height: auto;
  min-height: 80%;
}

.service_detail_col_left {
  flex-flow: column;
  justify-content: space-between;
  align-items: flex-start;
  display: flex;
}

.service_detail_num {
  font-family: var(--font--primary-family);
  line-height: var(--line-height--1em);
  font-weight: 400;
}

.service_detail_num.u-text-display {
  padding-top: 2svh;
  font-size: 10svw;
  line-height: .9em;
  overflow: clip;
}

.service_detail_content.u-column-custom {
  grid-column: 4/span 3;
}

.service_detail_content.u-column-custom.u-vflex-left-top.u-gap-large {
  grid-column-gap: var(--size--6rem);
  grid-row-gap: var(--size--6rem);
}

.service_detail_include.u-vflex-left-top {
  grid-column-gap: .5rem;
  grid-row-gap: .5rem;
  width: 100%;
}

.service_include_inner,
.service_linclude_list.u-vflex-left-top {
  width: 100%;
}

.service_include_item {
  padding-top: var(--space--extra-small);
  padding-bottom: var(--space--extra-small);
  width: 100%;
  font-size: 1.3rem;
}

.service_include_item.u-hflex-left-top {
  grid-column-gap: var(--space--extra-small);
  grid-row-gap: var(--space--extra-small);
  position: relative;
}

.service_include_txt {
  line-height: var(--line-height--1-1em);
  overflow: clip;
}

.include_dot {
  width: var(--size--0-25rem);
  height: var(--size--0-25rem);
  margin-top: var(--size--0-25rem);
  border-radius: var(--radius--round);
  background-color: var(--swatch--light);
  flex: none;
}

.service_detail_img_col.u-column-custom {
  grid-column: 9/span 2;
}

.service_detail_img.u-visual-wrap {
  aspect-ratio: 3/3;
}

.service_content_p {
  font-size: 1.5rem;
  line-height: var(--line-height--1-3em);
  display: block;
}

/* Process */

.sr_process_container {
  width: 100%;
  max-width: 100% !important;
  /* Overrides global container limits */
  padding-left: var(--padding-horizontal--main);
  padding-right: var(--padding-horizontal--main);
}

.sr_summary_text {
  font-family: var(--font--secondary-family);
  font-size: var(--text-main--font-size);
  line-height: 1.5;
  margin-top: 1rem;
  padding-left: var(--padding-horizontal--main);
  padding-bottom: var(--padding-vertical--main);
  font-weight: inherit;
  font-size: 2rem;

}

.sr_header_content_wrapper {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
}

.sr_process_layout {
  width: 100%;
}

.sr_process_header {
  padding-bottom: var(--space--large);
  width: 100%;
  position: relative;
}

.sr_process_header.u-column-custom {
  grid-column-end: span 3;
}

.sr_process_num {
  font-family: var(--font--primary-family);
  line-height: var(--line-height--1em);
  text-transform: uppercase;
}

.sr_process_item_wrap {
  width: 100%;
  height: auto;
  overflow: clip;
}

.sr_process_item_parent {
  padding-top: var(--size--3rem);
  padding-bottom: var(--size--3rem);
  cursor: pointer;
  position: relative;
}

.sr_process_item_name {
  font-family: var(--font--primary-family);
  font-size: var(--text-large--font-size);
  line-height: var(--line-height--1-1em);
  text-transform: uppercase;
  overflow: clip;
}

.sr_process_item_inner.u-hflex-left-top.u-gap-medium {
  z-index: 2;
  position: relative;
}

.sr_process_item_num {
  font-family: var(--font--primary-family);
}

.sr_process_item_btn {
  z-index: 2;
  line-height: var(--line-height--1em);
  justify-content: center;
  align-items: center;
  padding-top: 0;
  padding-bottom: 0;
  display: flex;
  position: relative;
  overflow: clip;
}

.sr_process_item_txt {
  font-family: var(--font--primary-family);
  text-transform: uppercase;
  position: relative;
}

.sr_process_item_txt.abs {
  margin-top: 2px;
  position: absolute;
}

.sr_process_whipe {
  z-index: 1;
  background-color: #d2c6b0;
  width: 100%;
  height: 0%;
  position: absolute;
  inset: auto 0% 0%;
}

.sr_process_detail_heights {
  background-color: #d2c6b0;
  height: 0;
  overflow: clip;
}

.sr_process_detail_inner {
  padding: var(--size--4-5rem);
}

.sr_process_detail_left.u-column-custom {
  grid-column: 1/span 2;
  grid-template-rows: auto auto;
  grid-template-columns: .35fr 1fr;
  grid-auto-columns: 1fr;
  display: grid;
}

.sr_process_list {
  width: 100%;
}

.sr_process_list_item {
  padding-bottom: var(--size--1rem);
  width: 100%;
  position: relative;
}

.sr_process_list_dot {
  width: var(--size--0-5rem);
  height: var(--size--0-5rem);
  margin-top: var(--size--0-25rem);
  background-color: var(--swatch--dark);
}

.sr_process_list_text {
  line-height: var(--line-height--1-3em);
  overflow: clip;
}

.sr_process_detail_right.u-column-custom {
  grid-column: 3/span 2;
  grid-template-rows: auto auto;
  grid-template-columns: .35fr 1fr;
  grid-auto-columns: 1fr;
  display: grid;
}

/* Quotes */
.quotes_container.u-container {
  padding-top: var(--padding-vertical--large);
  padding-bottom: var(--padding-vertical--large);
  min-height: 120vh;
  overflow: clip;
}

.quotes_top {
  z-index: 1;
  position: relative;
}

.quotes_btm.u-grid-custom {
  z-index: 2;
  grid-template-columns: var(--grid-main);
  position: relative;
  margin-top: 50px;
}

.quotes_paragraph.u-column-custom {
  grid-column: 9/span 2;
  max-width: 23ch;
}


/* CTA */
.cta_container.u-container.u-grid-custom {
  grid-template-columns: var(--grid-main);
}

.cta_col_left.u-column-custom {
  grid-column: 1/span 2;
}

.cta_col_mid {
  height: 100%;
}

.cta_col_mid.u-column-custom {
  grid-column: 3 / span 4; 
  padding-right: 2rem;
}

.cta_col-img.u-column-custom {
  grid-column: 8 / span 5;
}

.cta_img_small.u-visual-wrap {
  aspect-ratio: 2.7/2.7;
  border-radius: 0;
}

.cta_col-img_big.u-visual-wrap {
  aspect-ratio: 7.16/8.87;
  border-radius: 0;
}

.btn_main_wrap {
  padding: var(--size--0-5rem) var(--size--1-5rem);
  border-radius: var(--radius--round);
  background-color: var(--button--background);
  line-height: 1;
  position: relative;
  overflow: clip;
}

.btn_main_text {
  z-index: 2;
  font-family: var(--font--primary-family);
  color: var(--button--text);
  line-height: var(--line-height--1em);
  text-transform: uppercase;
  padding-top: .2rem;
  position: relative;
}

.btn_main_text.is_abs {
  position: absolute;
  bottom: 0%;
  left: 0%;
  right: 0%;
}

.btn_main_layout {
  margin-left: auto;
  margin-right: auto;
  position: relative;
  overflow: clip;
}

.btn_whipe {
  z-index: 1;
  background-color: var(--button--background-hover);
  width: 100%;
  height: 100%;
  position: absolute;
  inset: auto 0% 0%;
  transform: scale(1.15);
}

.quotes_btm .g_paragraph_wrap {
  max-width: 100% !important;
  line-height: 1.25;
}

.quotes_top .g_heading_wrap {
  font-size: 2rem;
}

/* Misc Lines & Wrappers */
.line_wrapper {
  width: 100%;
  height: 1px;
}

.line_wrapper.is-abs {
  z-index: 2;
  position: absolute;
  inset: auto auto 0% 0%;
}

.line_wrapper.abs_top {
  position: absolute;
  inset: 0% auto auto 0%;
}

.line {
  background-color: var(--theme--border);
  width: 100%;
  height: 100%;
}

#node-hero-title-sub-text {
  align-self: center;
}

#node-bottom-right-hero-description {
  text-align: left;
  font-weight: 300;
  line-height: 1.5;

}

#node-hero-bottom-left {
  justify-self: end;
  align-items: flex-end !important;
  justify-content: flex-end !important;
  text-align: left;
  font-weight: 300;
  line-height: 1.5;
  font-size: 2rem;

}

/* =========================================
   LAPTOP FIX (Fit Sticky Content in Viewport)
   Range: 992px to 1600px
   ========================================= */

@media screen and (min-width: 992px) and (max-width: 1600px) {

  /* 1. Compress Vertical Spacing */
  .service_detail_layout.u-container.u-grid-custom {
    padding-top: 2rem;  /* Reduced from ~4-7rem */
    padding-bottom: 2rem;
    min-height: auto;
    align-content: center; /* Center content vertically */
  }

  .service_detail_num.u-text-display {
    font-size: 5rem;    /* Reduced from 10svw (approx 10rem) */
    padding-top: 0;
    line-height: 1;
  }

  /* 3. Shrink the Body Paragraph Text */
  .service_content_p {
    font-size: 1.1rem;  /* Reduced from 1.5rem for readability */
    line-height: 1.4;
    max-width: 100%;
  }

  /* 4. Adjust the Image */
  /* Prevent image from forcing the container to be too tall */
  .service_detail_img.u-visual-wrap {
    max-height: 40vh;   /* Limit image height to 40% of screen */

  }

  /* 5. Tighter Gaps between elements */
  .service_detail_content.u-column-custom.u-vflex-left-top.u-gap-large {
    grid-row-gap: 1.5rem; /* Reduce gap between number and text */
  }

  /* 6. Layout Adjustments (Widen columns to fit text better) */
  /* Give the text slightly more width so it's not as tall */
  .service_detail_content.u-column-custom {
    grid-column: 4 / span 5; /* Spans 5 columns instead of 3 or 4 */
  }

  .service_detail_img_col.u-column-custom {
    grid-column: 9 / span 4;
  }

  /* 7. Header Adjustments */
  .service_item_header {
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
  }
  
  .service_header_title {
    font-size: 2rem; 
  }

  /* --- 3. QUOTES PARAGRAPH FORMATTING --- */
    /* Widen the quote area to prevent crushing */
    .quotes_paragraph.u-column-custom {
        grid-column: 7 / span 5; 
        max-width: none;         
    }
    
    .quotes_paragraph .g_paragraph_wrap {
        font-size: 1.25rem;      
    }

    /* --- 4. CTA CONTAINER FORMATTING --- */
    /* Rebalance the CTA grid: Image | Text | Image */
    .cta_col_left.u-column-custom {
        grid-column: 1 / span 2; 
    }

    .cta_col_mid.u-column-custom {
        grid-column: 3 / span 4; /* Widen text area */
        padding-right: 2rem;     
    }

    .cta_col-img.u-column-custom {
        grid-column: 8 / span 5; /* Push right image to edge */
    }
}

/* Safety Net: For extremely short screens (e.g. MacBook Air 11" or split screen) */
@media screen and (min-width: 992px) and (max-height: 800px) {
  .service_content_p {
      font-size: 1rem;
      line-height: 1.3;
  }
  .service_detail_layout.u-container.u-grid-custom {
      padding-top: 1rem;
      padding-bottom: 1rem;
  }
}

/* =========================================
   DESKTOP HORIZONTAL HERO (Min 992px)
   ========================================= */
@media screen and (min-width: 992px) {

  /* 1. Restrict the Main Wrapper Height 
       (This clips the image so the next section is visible) */
  .g_hero {
    height: 60vh;
    /* occupies 75% of screen height */
    min-height: 500px;
    /* prevent it from getting too squashed */
    position: relative;
    overflow: hidden;
  }

  /* 2. Grid Container: Center content within the new height */
  .g_hero_container.u-container.u-grid-custom {
    display: grid;
    /* Left | Center Logo | Right */
    grid-template-columns: 1fr minmax(300px, 45vw) 1fr;

    /* Fill the 75vh parent, don't force 100vh */
    height: 100%;
    min-height: unset;

    max-width: 92vw;
    margin: 0 auto;

    /* Vertically align content */
    align-content: center;
    align-items: center;

    gap: 2rem;
    padding: 0;
  }

  /* 3. Scroll Indicator (Left) */
  #node-hero-bottom-left {
    grid-column: 1;
    width: 100%;
    /* Take full width of the column */

    /* Flexbox to align the text inside the column */
    display: flex;
    justify-content: flex-start;
    align-items: center;

    margin: 0;
    font-size: 2.5rem;
    /* No margin-bottom needed */
  }

  /* 4. Logo (Center) */
  #node-hero-title-sub-text,
  .g_hero_mid.u-column-custom {
    grid-column: 2;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0;
    /* Remove margin hacks */
  }

  .hero_svg {
    width: 70% !important;
    height: auto;
    margin: 0;
    transform: translateY(-40%);
  }

  #node-bottom-right-hero-description {
    grid-column: 3;
    width: 100%;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    margin: 0;
    font-size: 2.5em;
    /* No margin-bottom needed */
  }


  /* 5. Description Text (Right) */
  #node-bottom-right-hero-description,
  .g_hero_content.u-column-custom {
    grid-column: 3;
    width: 100%;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    margin: 0;
    flex-direction: row !important;
    /* Remove margin hacks */
  }

  .g_hero_text_small {
    font-size: 2.5rem;
    text-align: left !important;
  }
}


/* =========================================
   RESPONSIVE QUERIES (SERVICES PAGE)
   ========================================= */

/* --- Tablet / Small Laptop (Max 991px) --- */
@media screen and (max-width: 991px) {

  /* 1. Global Layout Resets */
  .u-grid-custom {
    grid-template-columns: 1fr;
    gap: 2rem;
    display: flex;
    flex-direction: column;
  }

  .u-text-large {
    font-size: 1rem;
  }

  .u-container {
    padding-left: 2rem;
    padding-right: 2rem;
  }

  /* 2. Hero Section - Reordered Layout */
  .g_hero_container.u-container.u-grid-custom {
    display: flex;
    flex-direction: column;
    min-height: unset;
    height: 100%;
    padding-top: 8rem;
    padding-bottom: 4rem;
    justify-content: center;
    align-items: center;
    gap: 1.5rem;
    /* Space between the Logo, Text, and Scroll */
  }

  .g_hero {
    height: 50vh;
    /* Occupies half the screen height */
    min-height: 450px;
    /* Safety minimum so content doesn't get crushed on landscape phones */
    position: relative;
    overflow: hidden;
  }

  /* ORDER 1: Logo & Heading (Top) */
  #node-hero-title-sub-text {
    order: 1;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center !important;
    justify-content: center !important;
    text-align: center;
    margin-bottom: 0;
  }

  .g_hero_text_small h1 {
    font-size: 2rem !important;
  }

  .g_hero_mid.u-column-custom {
    width: 100%;
    grid-column: auto;
  }

  /* ORDER 2: Paragraph Text (Middle) */
  #node-bottom-right-hero-description {
    order: 2;
    width: 100%;
    grid-column: auto;
    display: flex;
    flex-direction: column;
    align-items: center !important;
    /* Override desktop right-alignment */
    justify-content: center !important;
    text-align: center !important;
  }

  .g_paragraph_wrap.is-global-hero {
    max-width: 90%;
    font-size: 1.25rem;
    text-align: center;
    line-height: 1.5;
    margin: 0 auto;
  }

  /* ORDER 3: Scroll Indicator (Bottom) */
  #node-hero-bottom-left {
    /* order: 3;
    width: 100%;
    grid-column: auto;
    display: flex;
    justify-content: center !important;
    align-items: center !important;
    margin-top: 2rem; */
    display: none;
  }

  /* 3. Service Process (Accordion Section) */
  .sr_process_header.u-column-custom {
    grid-column: auto;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;

  }

  .sr_process_num {
    width: 100%;
    text-align: left;
    margin-top: 0.5rem;
    padding-left: 0;
    font-size: small !important;
    /* Ensure no extra padding pushes it */
  }

  .sr_process_item_txt {
    font-size: small;
  }

  .sr_header_content_wrapper {
    width: 100%;
    max-width: 100%;
  }

  /* Fix Accordion Internal Layout */
  .sr_process_detail_inner {
    padding: 2rem 0;
  }

  .sr_process_detail_content.u-grid-column-2 {
    grid-template-columns: 1fr;
    display: flex;
    flex-direction: column;
    gap: 2rem;
  }

  .sr_process_detail_left.u-column-custom,
  .sr_process_detail_right.u-column-custom {
    grid-column: auto;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }

  .g_paragraph_wrap {
    max-width: 100%;
    line-height: 1.5;
  }

  .g_heading {
    font-size: var(--h2--font-size-small);
  }


  .sr_summary_text {
    font-size: x-large;
  }

  /* 4. Scroll Section (Detailed Services) */
  .service_item {
    position: relative !important;
    /* Stop the whole card from sticking */
    top: auto !important;
    height: auto !important;
    /* Let card grow to fit all text */
    min-height: auto !important;
    overflow: visible !important;
    /* Disable scrollbar inside card */
    z-index: 1;
  }

  .service_wrapper {
    height: auto !important;
    overflow: visible !important;
  }

  .service_content_p {
    width: 100% !important;
    font-size: 1rem;
  }


  .service_detail_layout.u-container.u-grid-custom {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding-top: 2rem;
    min-height: auto;
  }

  .service_item_header {
    position: sticky !important;
    position: -webkit-sticky !important;
    /* Safari support */
    top: 0 !important;
    /* Stick to top of screen */
    z-index: 10;
    /* Ensure it sits on top of text scrolling under it */
    background-color: var(--swatch--dark);
    /* Important: Opaque background so text hides behind it */

    /* Optional: Add a bottom border to separate header from scrolling content */
    border-bottom: 1px solid rgba(251, 240, 218, 0.1);
  }

  .service_header_title h2 {
    font-size: 3rem;
  }

  /* Content Layout inside Scroll Item */
  .service_detail_content.u-column-custom {
    grid-column: auto;
    width: 100%;
    order: 2;
    /* Put text below image on tablet */
  }

  .service_detail_img_col.u-column-custom {
    grid-column: auto;
    width: 100%;
    order: 1;
    /* Image first */
  }

  .service_detail_img.u-visual-wrap {
    aspect-ratio: 16/9;
    max-height: 40vh;
  }

  .quotes_container.u-container {
    min-height: auto;
    padding: 6rem 2rem;
  }

  .quotes_paragraph.u-column-custom {
    max-width: 100%;
    grid-column: auto;
  }

  .cta_container.u-container.u-grid-custom {
    flex-direction: column;
  }

  .cta_col_left.u-column-custom,
  .cta_col_mid.u-column-custom,
  .cta_col-img.u-column-custom {
    grid-column: 1 / -1;
  }
}

@media screen and (max-width: 767px) {
  :root {
    --padding-horizontal--main: 1.5rem;
    --padding-vertical--main: 4rem;
  }

  /* Typography */
  .g_hero_text_small h1 {
    font-size: 3rem;
  }

  .service_header_title h2 {
    font-size: 2rem;
  }

  /* Accordion Item Text */
  .sr_process_item_name h3 {
    font-size: 1.5rem;
  }

  /* Scroll Section */
  .service_detail_img.u-visual-wrap {
    aspect-ratio: 1/1;
    /* Square images on mobile usually look better */
    max-height: none;
  }

  .service_detail_content.u-column-custom.u-vflex-left-top.u-gap-large {
    gap: 2rem;
  }
  .quotes_btm.u-grid-custom {
    grid-template-columns: var(--grid-4);
  }

}

/* --- Mobile Portrait (Max 479px) --- */
@media screen and (max-width: 479px) {

  /* Hero alignment */
  .g_hero_mid.u-column-custom {
    align-items: flex-start;
    text-align: left;
  }

  .g_paragraph_wrap.is-global-hero {
    text-align: left;
    font-size: 1rem;
  }

  /* Accordion */
  .sr_process_item_parent {
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
  }

  /* Specific ID Overrides */
  #node-hero-bottom-left {
    justify-self: start;
    align-items: flex-start !important;
  }
}