/* --- FONTS & VARIABLES --- */
@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;
}

:root {
  --theme--background: white;
  --theme--text: white;
  --theme--border: white;
  --text-main--font-family: var(--font--secondary-family);
  --text-main--font-size: var(--size--1rem);
  --text-main--line-height: var(--line-height--1-3em);
  --text-main--letter-spacing: var(--letter-spacing--0em);
  --text-large--font-size: var(--size--2rem);
  --text-large--line-height: var(--line-height--1-3em);
  --text-xsmall--font-size: var(--size--0-75rem);
  --font--primary-family: "PP – Fragment", sans-serif;
  --font--secondary-family: Aeonik, sans-serif;
  --size--0rem: 0rem;
  --size--0-25rem: 0.25rem;
  --size--0-5rem: 0.5rem;
  --size--0-75rem: 0.75rem;
  --size--1rem: 1rem;
  --size--1-5rem: 1.5rem;
  --size--2rem: 2rem;
  --size--3rem: 3rem;
  --size--4rem: 4rem;
  --size--5rem: 5rem;
  --size--5-5rem: 5.5rem;
  --size--6rem: 6rem;
  --size--7rem: 7rem;
  --size--8rem: 8rem;
  --size--10rem: 10rem;
  --size--14rem: 14rem;
  --size--16rem: 16rem;
  --size--20rem: 20rem;
  --space--extra-small: var(--size--0-75rem);
  --space--small: var(--size--1-5rem);
  --space--medium: var(--size--3rem);
  --space--large: var(--size--4rem);
  --padding-vertical--main: var(--size--7rem);
  --padding-horizontal--main: var(--size--4rem);
  --padding-vertical--small: var(--size--5rem);
  --padding-vertical--large: var(--size--10rem);
  --padding-vertical--none: var(--size--0rem);
  --grid-gap--main: var(--size--1rem);
  --max-width--main: 100vw;
  --border-width--main: 1px;
  --radius--round: 100vw;
  --radius--small: 0.5em;
  --line-height--1em: 1em;
  --line-height--1-1em: 1.1em;
  --line-height--1-3em: 1.3em;
  --swatch--transparent: #fff0;
  --swatch--brand: #c1ae7c;
  --swatch--dark: #825532;
  --swatch--light: #e6e6e9;
  --swatch--dark-secondary: #585254;
  --button--background: white;
  --button--text: white;
  --button--border: white;
  --button--background-hover: white;
  --button--text-hover: white;
  --letter-spacing--0em: 0em;
  --letter-spacing--0-03em: -0.03em;
  /* Columns definitions (placeholders from source) */
  --grid-main: repeat(12, 1fr);
  --grid-10: repeat(10, 1fr);
  --column-width--2: 0px;
  --column-width--10: 0px;

  --font-weight--500: 500;
  --all-headings--heading-line-height: var(--line-height--1-1em);
  --font--primary-medium: var(--font-weight--500);
  --text-transform--uppercase: uppercase;
  --all-headings--heading-font-weight: var(--font--primary-medium);
  --all-headings--heading-letter-spacing: var(--letter-spacing--0-03em);
  --h2--font-weight: var(--all-headings--heading-font-weight);
  --h2--font-size: var(--size--5-5rem);
  --h2--line-height: var(--all-headings--heading-line-height);
  --h2--letter-spacing: var(--all-headings--heading-letter-spacing);
  --h2--text-transform: var(--text-transform--uppercase);
}

/* --- BASE & RESETS --- */
* {
  box-sizing: border-box;
}

html {
  height: 100%;
  -webkit-text-size-adjust: 100%;
  font-family: sans-serif;
}

body {
  background-color: var(--theme--background);
  font-family: var(--text-main--font-family);
  color: var(--theme--text);
  font-size: var(--text-large--font-size);
  line-height: var(--text-main--line-height);
  letter-spacing: var(--text-main--letter-spacing);
  margin: 0;
  min-height: 100%;
}

img {
  vertical-align: middle;
  max-width: 100%;
  display: inline-block;
  object-fit: cover;
  width: 100%;
}

a {
  color: inherit;
  text-decoration: none;
  background-color: #0000;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin-bottom: 10px;
  margin-top: 0;
}

p {
  margin-top: 0;
  margin-bottom: 10px;
}

figure {
  margin: 0;
}

svg:not(:root) {
  overflow: hidden;
}

/* 1. Define what happens when data-theme is "light" */
[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;
  position: relative;
  /* Smooth transition */
}

/* Ensure this exists in your CSS */
.btn_main_wrap {
  background-color: var(--button--background);
  border: 1px solid var(--button--border);
}

.btn_main_text {
  color: var(--button--text);
}

/* Hover states */
.btn_main_wrap:hover {
  background-color: var(--button--background-hover);
}

.btn_main_wrap:hover .btn_main_text {
  color: var(--button--text-hover);
}

/* --- UTILITIES --- */
.w-layout-vflex {
  flex-direction: column;
  align-items: flex-start;
  display: flex;
}

.u-container {
  max-width: var(--max-width--main);
  padding: var(--padding-vertical--main) var(--padding-horizontal--main);
  width: 100%;
  margin: 0 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-main);
  display: grid;
}

.u-vflex-left-bottom {
  flex-flow: column;
  place-content: flex-start flex-end;
  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-left-top {
  flex-flow: column;
  place-content: flex-start;
  align-items: flex-start;
  display: flex;
}

.u-vflex-center-center {
  flex-flow: column;
  place-content: center;
  align-items: center;
  display: flex;
}

.u-vflex-stretch-between {
  flex-flow: column;
  justify-content: space-between;
  align-items: stretch;
  display: flex;
}

.u-hflex-center-center {
  flex-flow: row;
  place-content: center;
  align-items: center;
  display: flex;
}

.u-hflex-between-top {
  flex-flow: row;
  place-content: flex-start space-between;
  align-items: flex-start;
  display: flex;
}

.u-hflex-between-center {
  flex-flow: row;
  place-content: center space-between;
  align-items: center;
  display: flex;
}

.u-hflex-left-top {
  flex-flow: row;
  place-content: flex-start;
  align-items: flex-start;
  display: flex;
}

.u-gap-medium {
  grid-column-gap: var(--space--medium);
  grid-row-gap: var(--space--medium);
}

.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-gap-small {
  grid-column-gap: var(--space--small);
  grid-row-gap: var(--space--small);
}

.u-gap-large {
  grid-column-gap: var(--space--large);
  grid-row-gap: var(--space--large);
}

.u-column-custom {
  grid-column: auto/span 1;
}

.u-visual-wrap {
  aspect-ratio: 1;
  width: 100%;
  position: relative;
  overflow: hidden;
}

.u-cover-absolute {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0%;
}

.u-sr-only {
  white-space: nowrap;
  clip: rect(0, 0, 0, 0);
  border-width: 0;
  width: 1px;
  height: 1px;
  margin: 0 auto;
  padding: 0;
  position: absolute;
  overflow: hidden;
}

.u-text-display {
  font-family: var(--font--primary-family);
  font-size: var(--size--16rem);
  line-height: var(--line-height--1em);
  letter-spacing: var(--letter-spacing--0-03em);
  text-transform: uppercase;
}

.u-text-h2 {
  font-family: var(--font--primary-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(--font--primary-family);
  font-size: var(--size--1-5rem);
  line-height: var(--line-height--1-3em);
  letter-spacing: var(--letter-spacing--0-03em);
}

.u-text-transform-uppercase {
  text-transform: uppercase;
}

.u-overflow-clip {
  overflow: clip;
}

.u-display-block {
  display: block;
}

.u-display-none {
  display: none;
}

.u-radius-inherit {
  border-radius: inherit;
}

.u-zindex-3 {
  z-index: 3;
  position: relative;
}

.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 */
}

/* --- GLOBAL COMPONENTS --- */
.g_visual_wrap {
  overflow: clip;
}

.g_visual_background {
  opacity: 0.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);
}

.g_paragraph_wrap {
  max-width: 100%;
  line-height: 1.5;
}

.g_paragraph_wrap.is-global-hero {
  max-width: 25ch;
}

.g_clickable_wrap {
  cursor: pointer;
}

/* Lines */
.line_wrapper {
  width: 100%;
  height: 1px;
}

.line_wrapper.is-abs {
  z-index: 2;
  position: absolute;
  inset: auto auto 0% 0%;
}

.line {
  background-color: var(--swatch--dark);
  width: 100%;
  height: 100%;
}

/* Buttons */
.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;
  cursor: pointer;
  display: inline-block;
}

.btn_main_wrap.is-secondary {
  border: var(--border-width--main) solid var(--button--border);
}

.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);
}

.btn_main_layout {
  margin: 0 auto;
  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: 0.2rem;
  position: relative;
}

.btn_main_text.is_abs {
  position: absolute;
  bottom: 0%;
  left: 0%;
  right: 0%;
}

.btn_main_text.abs_secondary {
  color: var(--swatch--dark);
  position: absolute;
  inset: 0%;
}

/* --- HOME HERO --- */
.home_hero {
  position: relative;
}

.h_hero_container {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-top: 8rem;
  padding-bottom: 8rem;
  position: relative;
  z-index: 2;
}

.h_hero_container.u-container {
  padding-bottom: var(--size--4rem);
}

.hero_layout {
  width: 100%;
}

.hero_layout.u-grid-custom {
  grid-template-columns: var(--grid-main);
}

.hero_svg_wrap {
  overflow: clip;
}

.hero_svg_wrap.u-column-custom {
  grid-column: 1 / span 7;
}

.hero_svg {
  width: 100%;
}

.hero_content {
  margin-left: -1.5vw;
}

.hero_content.u-column-custom {
  grid-column: 9 / span 2;
}

.hero_svg_small {
  width: 30%;
}

.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;
}

/* --- HOME INTRO --- */
.h_intro_layout {
  width: 100%;
}

.h_intro_layout.u-grid-custom {
  grid-template-columns: var(--grid-10);
}

.h_intro_col-l.u-column-custom {
  grid-column-end: span 3;
}

.h_intro_head {
  max-width: 35ch;
}

.h_intro_col-img.u-column-custom {
  grid-column-end: span 4;
}

.intro_img.u-visual-wrap {
  aspect-ratio: 7/8.6;
  border-radius: 0;
}

.h_intro_col-r.u-column-custom {
  grid-column: 9 / span 2;
}

.intro_content_p {
  max-width: 22ch;
}

.intro_img_small.u-visual-wrap {
  aspect-ratio: 3.4/2.1;
  border-radius: 0;
}

.intro_slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;

  /* ANIMATION  */
  opacity: 0;
  transition: opacity 1.5s ease-in-out, transform 8s ease-out;
  /* Smooth fade & slow zoom */
  transform: scale(1.1);
  /* Start slightly zoomed in */
  z-index: 1;
}

/* 3. The Active Slide (Visible) */
/* The JS adds this class to the current image */
.intro_slide.active {
  opacity: 1;
  /* Show image */
  transform: scale(1);
  /* Zoom out to normal */
  z-index: 2;
  /* Bring to front */
}

/* 4. IMPORTANT: Hide the Loading Wipe */
/* If you don't have JS animating this wipe away, it sits on top (z-index 10) and blocks the view */
.g_visual_whipe {
  display: none;
}

/* --- SCROLL SECTION / BIG TEXT --- */
.sticky_scroll_trigger {
  min-height: 350dvh;
}

.sticky_track {
  position: absolute;
  inset: 0%;
}

.sticky_elements {
  position: sticky;
  top: 0%;
  overflow: clip;
}

.big_txt_container.u-container {
  min-height: 100svh;
}

.big_txt_container.u-container.u-vflex-center-center.u-gap-small {
  position: relative;
}

.big_txt_row {
  width: auto;
  padding-bottom: 0.25rem;
  overflow: visible;
}

.big_txt {
  font-family: var(--font--primary-family);
  line-height: var(--line-height--1em);
}

.big_txt.u-text-display {
  padding-top: 4.25svh;
  padding-right: 1vw;
  font-size: 12.5dvw;
  line-height: 0.65em;
  overflow: clip;
}

.big_txt.u-text-display.is-scroll-txt {
  overflow: visible;
}

/* Big Images in Scroll Section */
.big_img_track {
  position: absolute;
  inset: 0%;
}

.big_img_container-top.u-container,
.big_img_container-btm.u-container {
  min-height: 100svh;
}

.big_img_container-top.u-container.u-hflex-center-center.u-gap-large,
.big_img_container-btm.u-container.u-hflex-center-center.u-gap-large {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  position: relative;
  inset: 0%;
}

.big_img_container-top.u-container.u-grid-custom,
.big_img_container-btm.u-container.u-grid-custom {
  grid-template-columns: var(--grid-main);
}

.big_img_container-btm.u-container.u-grid-custom {
  grid-template-rows: auto auto auto auto auto auto auto auto;
}

/* Image Positioning grid placements */
.big_img_top-1 {
  aspect-ratio: 1;
  width: 100%;
  position: relative;
  overflow: hidden;
}

.big_img_top-1.u-column-custom {
  grid-column: 1 / span 2;
  grid-row-start: 4;
  max-width: 14rem;
  overflow: visible;
}

.big_img_top-2 {
  aspect-ratio: 1;
  width: 100%;
  position: relative;
  overflow: hidden;
}

.big_img_top-2.u-column-custom {
  grid-column: 4 / span 4;
  grid-row-start: 1;
  overflow: visible;
}

.big_img_top-3 {
  aspect-ratio: 1;
  width: 100%;
  position: relative;
  overflow: hidden;
}

.big_img_top-3.u-column-custom {
  aspect-ratio: 16/9;
  grid-column: 9 / span 2;
  grid-row-start: 4;
  max-width: 14rem;
  overflow: visible;
}

.big_img_btm-1 {
  aspect-ratio: 1;
  width: 100%;
  position: relative;
  overflow: hidden;
}

.big_img_btm-1.u-column-custom {
  aspect-ratio: 16/9;
  grid-area: 6/1 / span 3 / span 3;
  max-width: 16rem;
  overflow: visible;
}

.big_img_btm-2 {
  aspect-ratio: 1;
  width: 100%;
  position: relative;
  overflow: hidden;
}

.big_img_btm-2.u-column-custom {
  grid-column: 5 / span 2;
  grid-row-start: 8;
  max-width: 10rem;
  overflow: visible;
}

.big_img_btm-3 {
  aspect-ratio: 1;
  width: 100%;
  position: relative;
  overflow: hidden;
}

.big_img_btm-3.u-column-custom {
  grid-area: 4/9 / span 2 / span 2;
  max-width: 14rem;
  overflow: visible;
}

/* --- HOME PROJECTS --- */
.home_project_wrap {
  z-index: 5;
  width: 100%;
  height: 100%;
  position: relative;
}

.home_project_list {
  position: relative;
}

.home_project_item {
  width: 100%;
  height: 100svh;
  position: sticky;
  top: 0;
  overflow: clip;
}

.home_project_item.u-container.u-vflex-center-center {
  height: 110svh;
}

.home_project_content {
  width: 100%;
}

.home_project_content.u-grid-custom {
  z-index: 2;
  grid-template-columns: var(--grid-main);
  height: 60%;
  position: relative;
}

.home_project_info.u-column-custom {
  grid-column-end: span 4;
}

.home_project_right.u-column-custom {
  grid-column: 9 / span 2;
}

.home_project_kanji {
  width: var(--size--8rem);
}

.home_project_title {
  font-family: var(--font--primary-family);
  font-size: var(--size--7rem);
  line-height: var(--line-height--1em);
}

.home_project_num {
  grid-column-gap: var(--size--1rem);
  grid-row-gap: var(--size--1rem);
  font-family: var(--font--primary-family);
  font-size: var(--text-large--font-size);
  line-height: var(--text-main--line-height);
  justify-content: space-between;
  align-items: center;
  display: flex;
  overflow: clip;
}

/* --- HOME SUSTAIN --- */
.h_sustain_layout {
  width: 100%;
}

.h_sustain_layout.u-grid-custom {
  grid-template-columns: var(--grid-10);
}

.h_sustain_col.u-column-custom {
  grid-column: 6 / span 3;
}

.h_sustain_col-img.u-column-custom {
  grid-column-end: span 4;
}

.h_sustain_col-r.u-column-custom {
  grid-column: 9 / span 2;
}

.sustain_img_small.u-visual-wrap {
  aspect-ratio: 3.4/2.1;
  border-radius: 0;
}

.sustain_content_wrap.u-column-custom {
  grid-column: 9 / span 2;
}

.h_sustain_head {
  max-width: 32ch;
}

.sustain_content_p {
  max-width: 32ch;
  font-size: 1.25rem;
}

.sustain_content_wrap {
  font-size: 1.25rem;
}

/* --- HOME SERVICE --- */
.h_service_layout {
  width: 100%;
}

.big_txt_img-big.u-visual-wrap {
  aspect-ratio: 4/1.6;
  border-radius: 0;
  width: 25vw;
}

/* --- QUOTES SECTION --- */
.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;
}

.quotes_paragraph.u-column-custom {
  grid-column: 9 / span 2;
  max-width: 23ch;
}

.quotes_kanji_svg {
  width: var(--size--20rem);
}

/* --- CTA SECTION --- */
.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;
}

/* =========================================
   JOURNAL / ARTICLES SECTION
   ========================================= */

/* Section Base Setup (Dark Theme Handling) */
.home_journal {
  background-color: var(--swatch--dark);
  color: var(--swatch--light);
  position: relative;
  overflow: hidden;
}

/* Grid Layout */
.journal_grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  /* 3 Columns by default */
  column-gap: var(--space--medium);
  row-gap: var(--space--large);
  width: 100%;
}

/* Card Container */
.journal_card {
  position: relative;
  display: flex;
  flex-direction: column;
}

/* Card Link Wrapper */
.journal_link {
  display: flex;
  flex-direction: column;
  height: 100%;
  color: inherit;
  /* Inherits white from section */
  text-decoration: none;
  /* For hover state logic */
}

/* Image Wrapper & Animation */
.journal_img_wrap {
  width: 100%;
  /* 4:3 Ratio looks better for articles than 1:1 */
  aspect-ratio: 4/3;
  overflow: hidden;
  position: relative;
  border-radius: var(--radius--small);
  margin-bottom: var(--size--1-5rem);
}

/* Image Scale on Hover */
.journal_img_wrap .g_visual_img {
  transition: transform 0.6s cubic-bezier(0.215, 0.61, 0.355, 1);
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.journal_link:hover .journal_img_wrap .g_visual_img {
  transform: scale(1.05);
}

/* Card Content Area */
.journal_content {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  align-items: flex-start;
}

/* Meta Data (Date & Tag) */
.journal_meta {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 1rem;
  font-family: var(--font--secondary-family);
  /* Aeonik */
  font-size: var(--text-xsmall--font-size);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  opacity: 0.7;
  margin-bottom: 0.75rem;
}

.journal_tag {
  position: relative;
}

/* Bullet point between Date and Tag */
.journal_tag::before {
  content: "•";
  position: absolute;
  left: -0.6rem;
  opacity: 0.5;
}

/* Article Title */
.journal_title {
  font-family: var(--font--primary-family);
  /* PP - Fragment */
  font-size: 1.75rem;
  line-height: 1.2;
  font-weight: 400;
  margin-bottom: 1.5rem;
  margin-top: 0;
  /* Limit title to 3 lines max */
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Button Positioning inside Card */
.journal_card .btn_main_wrap {
  margin-top: auto;
  /* Pushes button to bottom if titles vary in height */
  border-color: rgba(255, 255, 255, 0.3);
  /* Subtle border for dark theme */
}

.journal_card .btn_main_text {
  color: var(--swatch--dark);
}

/* Button Hover Interaction (Specific to Card) */
.journal_link:hover .btn_main_wrap {
  background-color: var(--swatch--light);
  border-color: var(--swatch--dark);
}

.journal_link:hover .btn_main_text {
  color: var(--swatch--dark);
}

/* --- LAPTOP & 16-INCH SCREEN FIXES (Max Width 1700px) --- */
/* Extends the fix to cover 16-inch laptops (approx 1600-1700px wide) */
@media screen and (max-width: 1700px) {
  /* --- 1. HERO FORM REDUCTION --- */
  /* Shrink the form container and inputs to prevent vertical crowding */
  /* --- 1. HERO FORM HEIGHT REDUCTION --- */
  .hero-form-container {
    max-width: 750px !important; /* Reduced width */
    padding: 1.5rem 1.5rem !important; /* Reduced top/bottom padding significantly */
    height: auto !important; /* Let content dictate height, but keep it tight */
    /* Chrome-specific fixes */
    background: rgba(0, 0, 0, 0.15) !important;
    transform: translateZ(0);
    isolation: isolate;
  }

  .msf-heading {
    font-size: 1.25rem; /* Smaller heading */
    margin-bottom: 0.25rem; /* Tight gap to description */
  }

  .msf-step-description {
    margin-top: 2.25rem;
    margin-bottom: 1.25rem !important; /* Reduced from 6rem or 2rem to pull inputs up */
    font-size: 0.85rem !important;
    line-height: 1.2 !important;
  }

  .msf-progress {
    margin-bottom: 1rem !important; /* Pull progress bar closer */
  }

  .hero-form-group {
    margin-top: 2rem;
    margin-bottom: 0.75rem; /* Tight spacing between inputs */
  }

  .hero-form-group label {
    font-size: 0.8rem; /* Smaller labels */
    margin-bottom: 0.2rem;
  }

  .msf-input {
    line-height: 2.5rem;
    font-size: 1rem;
  }

  .msf-buttons {
    margin-top: 1rem; /* Pull buttons up */
  }

  .msf-button {
    padding: 0.5rem 1rem; /* Smaller buttons */
    font-size: 0.9rem;
  }

  /* --- 2. HERO LEFT TEXT SIZE --- */
  /* size of the hero intro text  */
  .g_paragraph_wrap.is-global-hero h2 {
    font-size: 1.5rem;
    line-height: 1.3;
  }

  /* Ensure the container doesn't get too wide if it was set to 35ch */
  .g_paragraph_wrap.is-global-hero {
    max-width: 100%;
  }

  .intro_content_wrap .g_paragraph_wrap p {
    font-size: 1.25rem;
  }

  /* --- 3. QUOTES PARAGRAPH FORMATTING --- */
  /* The quote was crushed into 'span 2'. We widen it to 'span 5'. */
  .quotes_paragraph.u-column-custom {
    grid-column: 7 / span 5; /* Moves text slightly left and makes it much wider */
    max-width: none; /* Remove any character limits */
  }

  .quotes_paragraph .g_paragraph_wrap {
    font-size: 1.25rem; /* Ensure text is readable */
  }

  /* --- 4. CTA CONTAINER FORMATTING ("Build Your Dream") --- */
  /* Previously: Image(2cols) | Gap | Text(2cols) | Image(4cols) -> CRUSHED TEXT */
  /* NEW: Image(2cols) | Text(4cols) | Image(5cols) -> BALANCED */

  .cta_col_left.u-column-custom {
    grid-column: 1 / span 2; /* Keep small left image as is */
  }

  .cta_col_mid.u-column-custom {
    grid-column: 3 / span 4; /* Text now spans 4 columns (was 2) */
    padding-right: 2rem; /* Add breathing room before the big image */
    font-size: 1.25rem; /* Slightly larger text for readability */
  }

  .cta_col-img.u-column-custom {
    grid-column: 8 / span 5; /* Push right image to the edge */
  }

  /* --- EXISTING FIXES (Carried Over) --- */
  :root {
    --h2--font-size: 4rem;
    --padding-horizontal--main: 3rem;
  }

  .h_sustain_col-img.u-column-custom {
    grid-column-end: span 3;
  }

  .h_sustain_col.u-column-custom {
    grid-column: 4 / span 4;
  }

  .h_sustain_col-r.u-column-custom {
    grid-column: 8 / span 4;
  }

  .big_txt.u-text-display {
    font-size: 10vw;
  }

  .big_txt_row .sustain_content_wrap {
    min-width: 320px;
    flex-shrink: 0;
  }
}

/* =========================================
   RESPONSIVE QUERIES
   ========================================= */

/* Tablet (Max 991px) */
@media screen and (max-width: 991px) {
  .journal_grid {
    grid-template-columns: repeat(2, 1fr);
    /* 2 Columns */
    column-gap: var(--space--small);
  }

  .journal_title {
    font-size: 1.5rem;
  }
}

/* Mobile Landscape & Portrait (Max 767px) */
@media screen and (max-width: 767px) {
  .journal_grid {
    grid-template-columns: 1fr;
    /* 1 Column */
    row-gap: 3rem;
  }

  .journal_img_wrap {
    aspect-ratio: 3/2;
    /* Slightly wider image on mobile */
  }

  .journal_title {
    font-size: 1.5rem;
  }
}

/* =========================================
   5. LOADER & FORM
   ========================================= */
.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;
}

.panel_inner {
  position: relative;
  width: 100%;
  height: 100%;
}

.u-hflex-left-stretch {
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  align-items: stretch;
}

.u-hflex-right-stretch {
  display: flex;
  flex-direction: row;
  justify-content: flex-end;
  align-items: stretch;
}

.line.is-panel-inner-l,
.line.is-pannel-inner-r {
  position: absolute;
  width: 1px;
  height: 100%;
  background-color: var(--theme--border);
}

.line.is-panel-l,
.line.is-panel-r {
  width: 1px;
  height: 100%;
  background-color: var(--theme--border);
}

/* Multi-Step Form Container */
.hero_content_right {
  position: relative;
  z-index: 2;
  display: none;
}

.hero-form-container {
  /* Chrome requires a semi-transparent background for backdrop-filter to work properly */
  background: rgba(0, 0, 0, 0.15);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;

  /* Backdrop filter with Chrome-specific fixes */
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);

  /* Force GPU acceleration for consistent Chrome rendering */
  transform: translateZ(0);
  -webkit-transform: translateZ(0);
  will-change: transform;

  /* Isolate stacking context to prevent Chrome rendering bugs */
  isolation: isolate;

  border: 1px solid rgba(251, 240, 218, 0.2);
  padding: 2.5rem;
  width: 100%;
  max-width: 600px;

  /* Use min-height instead of fixed height for better cross-browser support */
  min-height: 600px;
  height: auto;
  overflow: visible;

  margin-left: auto;
  border-radius: 16px;
  color: var(--swatch--light);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
}

.msf-heading {
  font-family: var(--font--primary-family);
  font-size: 2rem;
  margin-bottom: 0.5rem;
  text-transform: uppercase;
  color: var(--swatch--light);
}

.msf-step-description {
  font-size: 1.1rem;
  opacity: 0.8;
  margin-bottom: 6rem;
  color: var(--swatch--light);
}

.msf-progress {
  width: 100%;
  height: 2px;
  background-color: rgba(255, 255, 255, 0.1);
  margin-bottom: 2rem;
}

.msf-progress-bar {
  height: 100%;
  background-color: var(--swatch--brand);
  width: 33%;
  transition: width 0.4s ease;
}

.hero-form-group {
  margin-bottom: 2rem;
  display: flex;
  flex-direction: column;
}

.hero-form-group label {
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0.5rem;
  color: var(--swatch--light);
}

.msf-input {
  width: 100%;
  background: var(--swatch--light);
  border: 1px solid rgba(255, 255, 255, 0.3);
  color: var(--swatch--dark);
  padding: 0 1rem;
  height: 3.5rem;
  line-height: 3.5rem;
  /* text-indent: 1rem; */
  font-size: 2rem;
  /* Slightly larger font */
  font-family: var(--font--secondary-family);
  font-size: 1.5rem;
  outline: none;
  transition: all 0.3s ease;
  -webkit-appearance: none;
  appearance: none;
  border-radius: 0;
}

textarea.msf-input {
  height: auto;
  line-height: 1.5;
  padding-top: 1rem;
  padding-bottom: 1rem;
  resize: vertical; /* Allows user to resize if needed */
}

.msf-input:focus {
  background: var(--swatch--light);
  /* Turn pure white on click for nice contrast */
  border-color: var(--swatch--brand);
  color: var(--swatch--dark);
  /* Ensure text stays dark */
  box-shadow: 0 0 0 4px rgba(156, 116, 67, 0.2);
  /* Optional: subtle brand glow */
}

.msf-buttons {
  display: flex;
  gap: 1rem;
  margin-top: auto;
  padding-top: 2rem;
}

.msf-button {
  padding: 0.75rem 1.5rem;
  text-transform: uppercase;
  font-size: 1rem;
  cursor: pointer;
  border: 1px solid rgba(255, 255, 255, 0.3);
  background: transparent;
  color: var(--swatch--light);
  flex: 1;
  transition: 0.3s;
}

.msf-button:hover {
  background-color: var(--swatch--light);
  color: var(--swatch--dark);
}

.msf-button-next,
.hero-submit-button {
  background-color: var(--swatch--brand);
  border-color: var(--swatch--brand);
}

/* --- Logic for Steps & Thank You --- */
.msf-step {
  display: none;
}

.msf-step.active-step {
  display: block;
  animation: fadeIn 0.5s ease-out;
  height: 100%;
}

.msf-thank-you {
  display: none;
  text-align: center;
  padding: 2rem 0;
}

.msf-thank-you.hidden {
  display: none !important;
}

.msf-thank-you:not(.hidden) {
  display: block !important;
  animation: fadeIn 0.5s ease-out;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* --- Tablet / Small Laptop (Max 991px) --- */
/* =========================================
   RESPONSIVE QUERIES (FIXED POPUP)
   ========================================= */

/* --- Tablet / Small Laptop (Max 991px) --- */
@media screen and (max-width: 991px) {
  /* 1. Global Grid Reset */
  .u-grid-custom {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .u-text-h2,
  .u-text-h2 .g_heading {
    font-size: 3.5rem !important; /* Overrides inline styles and desktop defaults */
    line-height: 1.1 !important;
    overflow-wrap: break-word; /* Ensures long words break if necessary */
  }

  /* 2. Hero Section - Stacked & Centered */
  .h_hero_container {
    min-height: auto;
    padding-top: 12rem;
    /* Force reset of z-index so popup can appear on top */
    z-index: auto !important;
    position: static !important;
  }

  .hero_layout.u-grid-custom {
    display: flex;
    flex-direction: column;
    gap: 4rem;
  }

  .hero_content_left {
    width: 100%;
    text-align: center;
    align-items: center;
  }

  .hero_svg_wrap.u-column-custom {
    width: 80%;
    margin: 0 auto;
    grid-column: auto;
  }

  .hero_content.u-column-custom {
    margin-left: 0;
    width: 100%;
  }

  /* --- 3. FORM FULL SCREEN POPUP (FIXED) --- */

  /* Base state: Hidden, Fixed, Full Screen */
  /* We use !important to override the inline HTML styles (position: relative) */
  .hero_content_right {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    /* Mobile viewport fix */
    background-color: #0d0d0d !important;
    /* Solid Dark Background */
    z-index: 20000 !important;
    /* Highest z-index */

    display: flex !important;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    padding: 0;

    /* Animation State: Hidden by default */
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(20px);
    transition: all 0.4s cubic-bezier(0.25, 1, 0.5, 1);
  }

  /* Active State: Visible (Added by JS) */
  .hero_content_right.is-open {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateY(0);
  }

  /* The Form Container itself */
  .hero-form-container {
    width: 100%;
    max-width: 600px;
    height: 100%;
    margin: 0 auto;
    padding: 6rem 1.5rem 2rem 1.5rem;
    overflow: hidden;
    overscroll-behavior: none;
    -webkit-overflow-scrolling: touch;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
  }

  /* --- NEW MOBILE HEADER STYLING --- */
  /* This targets the new header div added in index.html */
  .mobile-form-header {
    display: flex !important;
    justify-content: space-between;
    align-items: center;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    padding: 1.5rem 2rem;
    background-color: #0d0d0d;
    z-index: 10;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  }

  .mobile-form-title {
    font-family: var(--font--primary-family);
    font-size: 1rem;
    text-transform: uppercase;
    color: var(--swatch--light);
    letter-spacing: 0.05em;
  }

  .form-close-btn {
    display: block !important;
    background: none;
    border: none;
    color: var(--swatch--light);
    font-family: var(--font--secondary-family);
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    cursor: pointer;
    padding: 0.5rem;
  }

  /* --- 4. Intro & General Sections --- */
  .h_intro_layout.u-grid-custom,
  .h_sustain_layout.u-grid-custom {
    display: flex;
    flex-direction: column;
  }

  .h_intro_col-img.u-column-custom,
  .h_intro_col-r.u-column-custom,
  .h_sustain_col-img.u-column-custom,
  .h_sustain_col.u-column-custom,
  .h_sustain_col-r.u-column-custom {
    grid-column: auto;
    width: 100%;
  }

  .intro_img.u-visual-wrap,
  .intro_img_small.u-visual-wrap,
  .sustain_img_small.u-visual-wrap {
    aspect-ratio: 16/9;
    max-height: 50vh;
  }

  /* --- 5. Typography Adjustments --- */

  .h_intro_head,
  .h_sustain_head,
  .intro_content_p,
  .sustain_content_p {
    max-width: 100%;
  }

  /* --- 6. Quotes & Other Sections --- */
  .quotes_container.u-container.u-vflex-stretch-between {
    min-height: 100vh;
  }

  .quotes_paragraph.u-column-custom {
    grid-column: 1 / -1;
    max-width: none;
  }

  .home_project_right.u-column-custom {
    grid-column: 1 / -1;
  }

  .home_project_info.u-column-custom {
    grid-column: 1 / -1;
  }

  .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;
  }

  .big_txt.u-text-display {
    font-size: 8vw; /* Slightly reduced to fit better */
    line-height: 0.9;
    padding-top: 2svh;
  }

  .big_txt_row {
    display: flex;
    gap: 0.5rem 1rem; /* Gap between words */
    width: 100%;
  }

  .big_txt_img-big.u-visual-wrap {
    height: 10svh;
  }

  .big_txt_img-sustain.u-visual-wrap {
    width: 14vw;
  }

  .u-gap-medium {
    grid-row-gap: 1rem;
  }

  .line_wrapper.is-abs {
    bottom: 0 !important;
    top: auto !important;
    width: 100%;
  }
}

/* Hide Mobile Header on Desktop */
.mobile-form-header {
  display: none;
}

.form-close-btn {
  display: none;
}


/* --- Mobile Landscape (Max 767px) --- */
@media screen and (max-width: 767px) {
  /* 1. Spacing & Fonts */
  :root {
    --padding-horizontal--main: 1.5rem;
    --padding-vertical--main: 4rem;
  }

  .h_hero_container {
    min-height: 100svh;
    padding-top: 9rem;
    padding-bottom: 4rem;
  }

  .g_paragraph_wrap.is-global-hero h2 {
    font-size: 1rem;
    line-height: 1.3;
  }

  .h_hero_container {
    padding-top: 9rem;
    padding-bottom: 4rem;
  }

  .g_paragraph_wrap {
    font-size: 1.25rem;
  }

  /* 2. Form Optimization */
  .hero-form-container {
    padding: 1.5rem;
  }

  .msf-input {
    font-size: 1.25rem;
    line-height: 3rem;
  }

  .msf-heading {
    font-size: 1.5rem;
  }

  /* 3. Big Text Section */
  .big_txt.u-text-display {
    font-size: 15vw;
    line-height: 0.9;
    padding-top: 2svh;
  }

  .big_txt_row {
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
  }

  /* 5. Scroll Section Images (Preserving scatter layout) */
  .big_img_top-1.u-column-custom {
    grid-row-start: 3;
  }

  .big_img_top-3.u-column-custom {
    grid-row-start: 3;
  }

  .big_img_btm-1.u-column-custom {
    grid-row-start: 5;
  }

  .big_img_btm-2.u-column-custom {
    grid-row-start: 6;
  }

  .big_img_btm-3.u-column-custom {
    grid-row-start: 4;
  }

  /* 6. Quotes & CTA */
  .quotes_btm.u-grid-custom {
    display: flex;
    flex-direction: column;
  }

  .cta_img_small.u-visual-wrap {
    aspect-ratio: 16/9;
    max-width: none;
    min-height: auto;
  }
}

/* --- Mobile Portrait (Max 479px) --- */
@media screen and (max-width: 479px) {
  /* 1. Hero Mobile */
  .hero_svg_wrap {
    width: 100%;
  }

  .g_paragraph_wrap.is-global-hero {
    max-width: 100%;
    font-size: 1rem;
  }

  .hero_content.u-column-custom {
    grid-column: 1 / -1;
    width: 100%;
  }

  /* 2. Form Mobile Specifics */
  .hero-form-container {
    padding: 1.25rem;
    border-radius: 12px;
  }

  .msf-buttons {
    flex-direction: column;
    gap: 0.75rem;
  }

  .msf-button {
    width: 100%;
  }

  /* 3. Global Typography Taming */
  .home_project_title {
    font-size: 3.5rem;
  }

  /* Adjusted for mobile */
  .home_project_kanji {
    width: 6rem;
  }

  /* 4. Intro Section Images */
  .intro_img.u-visual-wrap {
    aspect-ratio: 1/1;
    max-height: none;
  }

  /* 5. Scroll Section Images (Specific Layout) */
  .big_img_top-1.u-column-custom {
    grid-row-start: 6;
    grid-column-end: span 5;
  }

  .big_img_top-2.u-column-custom {
    grid-column: 3 / span 6;
    grid-row-start: 1;
  }

  .big_img_top-3.u-column-custom {
    grid-column: 7 / span 4;
    grid-row-start: 4;
  }

  .big_img_btm-1.u-column-custom {
    grid-row: 2 / span 4;
    grid-column-end: span 6;
    max-width: none;
  }

  .big_img_btm-2.u-column-custom {
    grid-column: 4 / span 4;
    grid-row-start: 8;
  }

  .big_img_btm-3.u-column-custom {
    grid-area: 5/8 / span 2 / span 3;
  }
}

/* --- DESKTOP SLIDE-IN PANEL --- */
  .desktop-slide-panel {
    position: fixed;
    top: 0;
    right: 0;
    width: 55vw; /* Adjusted width */
    height: 100vh;
    background-color: var(--swatch--light);
    color: var(--swatch--dark);
    z-index: 9999; /* Ensure it is above everything */
    padding: 4rem 5rem;
    overflow-y: auto; /* Allow internal scrolling if screen is short */

    transform: translateX(100%);
    transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
    box-shadow: -10px 0 40px rgba(0, 0, 0, 0.15);

    /* Variables override to ensure input lines are visible */
    --theme--border: rgba(30, 16, 5, 0.2);
    --theme--text: #835834;
  }

  .desktop-slide-panel.is-open {
    transform: translateX(0%);
  }

  .desktop-slide-overlay {
    position: fixed;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.6);
    z-index: 9998;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.5s ease;
    backdrop-filter: blur(4px);
  }

  .desktop-slide-overlay.is-open {
    opacity: 1;
    pointer-events: auto;
  }

  /* Prevent scrolling on body when panel is open (CSS fallback) */
  body:has(.desktop-slide-panel.is-open) {
    overflow: hidden !important;
    position: fixed;
    width: 100%;
  }

  /* Close Button */
  .desktop-close-btn {
    position: absolute;
    top: 2rem;
    right: 3rem;
    background: transparent;
    border: none;
    color: var(--swatch--dark);
    text-transform: uppercase;
    font-family: var(--font--secondary-family);
    letter-spacing: 0.05em;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.9rem;
    z-index: 10;
  }

  /* Fix for form layout inside the slide panel */
  .desktop-form-inner .form_grid_2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
  }

  .desktop-form-inner .form_field_wrap {
    width: 100%;
  }

  /* Panel Header Styling */
  .panel-header-wrap {
    margin-bottom: 3rem;
    padding-right: 2rem;
    color: var(--swatch--dark);
    transition: opacity 0.3s ease, transform 0.3s ease;
  }

  /* Hide header when cal.com step is active */
  .desktop-slide-panel:has(.msf-step.active-step #my-cal-inline-desktop) .panel-header-wrap {
    display: none;
  }

  .desktop-slide-panel .g_heading {
    font-family: var(--font--primary-family);
    font-size: 5rem;
    line-height: 1;
    text-transform: uppercase;
    /* margin-bottom: 1.5rem; */
    font-weight: 400;
    color: var(--swatch--dark);
  }

  .desktop-slide-panel .g_paragraph_wrap h2 {
    font-family: var(--font--secondary-family);
    font-size: 1.25rem;
    line-height: 1.4;
    font-weight: 400;
    max-width: 30ch;
    margin: 0;
    opacity: 0.8;
    color: var(--swatch--dark);
  }

  /* Responsive adjustment for smaller laptop screens */
  @media screen and (max-width: 1400px) {
    .desktop-slide-panel .g_heading {
      font-size: 4rem;
    }
  }

  /* Hide on Mobile */
  @media screen and (max-width: 991px) {
    .desktop-slide-panel,
    .desktop-slide-overlay {
      display: none !important;
    }
  }

/* =========================================
   SCOPED CONTACT FORM STYLES
   (Only applies inside the Desktop Slide-In Panel)
   ========================================= */

/* 1. Form Grids & Layout */
.desktop-slide-panel .form_group {
  margin-bottom: 2.5rem;
}

.desktop-slide-panel .form_grid_2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
}

.desktop-slide-panel .form_grid_1 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}

.desktop-slide-panel .form_field_wrap {
  width: 100%;
  position: relative;
}

/* 2. Typography & Labels */
.desktop-slide-panel .form_group_title {
  font-size: 0.85rem;
  font-family: var(--font--secondary-family);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  display: block;
  margin-bottom: 1.5rem;
  color: var(--swatch--dark);
  opacity: 0.6;
}

.desktop-slide-panel .form_label {
  display: block;
  font-family: var(--font--secondary-family);
  font-size: 1.5rem;
  text-transform: uppercase;
  margin-bottom: 0.5rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  color: var(--swatch--dark);
}

/* 3. Inputs (Underline Style) */
.desktop-slide-panel .form_input {
  width: 100%;
  background: transparent;
  border: none;
  border-bottom: 1px solid rgba(131, 88, 52, 0.3);
  color: var(--swatch--dark);
  padding: 0.5rem 0 1rem 0;
  font-family: var(--font--secondary-family);
  font-size: 1.5rem;
  border-radius: 0;
  outline: none;
  transition: border-color 0.3s ease;
}

.desktop-slide-panel .form_input:focus {
  border-bottom-color: var(--swatch--dark);
}

.desktop-slide-panel .form_input::placeholder {
  color: var(--swatch--dark);
  opacity: 0.4;
}

.desktop-slide-panel .form_input.is-textarea {
  min-height: 80px;
  resize: vertical;
}

/* 4. Radio Buttons */
.desktop-slide-panel .form_radio_group {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 1rem;
}

.desktop-slide-panel .form_radio_field {
  display: inline-block;
  cursor: pointer;
  position: relative;
  margin-bottom: 0;
}

.desktop-slide-panel .w-radio-input {
  position: absolute;
  opacity: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
  cursor: pointer;
}

.desktop-slide-panel .form_radio_label {
  display: inline-block;
  padding: 0.5rem 0;
  margin-right: 1.5rem;
  font-size: 1.5rem;
  color: rgba(131, 88, 52, 0.5);
  transition: all 0.2s ease;
  cursor: pointer;
  border-bottom: 1px solid transparent;
}

/* Hover & Checked States for Radios */
.desktop-slide-panel .form_radio_field:hover .form_radio_label {
  color: var(--swatch--dark);
}

.desktop-slide-panel .form_radio_field input:checked + .form_radio_label {
  color: var(--swatch--dark);
  font-weight: 500;
  border-bottom: 1px solid var(--swatch--dark);
}

/* 5. Buttons (Brown Pill Style) */
.desktop-slide-panel .msf-nav-buttons {
  margin-top: 4rem;
  display: flex;
  gap: 1rem;
  align-items: center;
}

/* Override the default button style only inside this panel */
.desktop-slide-panel .btn_main_wrap {
  padding: 1rem 2.5rem;
  border-radius: 50px;
  background-color: #9c7443;
  border: 1px solid #9c7443;
}

.desktop-slide-panel .btn_main_text {
  color: #ffffff;
  font-size: 0.9rem;
  letter-spacing: 0.05em;
  font-weight: 500;
}

/* Secondary Button (Outline) */
.desktop-slide-panel .btn_main_wrap.is-secondary {
  background-color: transparent;
  border: 1px solid var(--swatch--dark);
}

.desktop-slide-panel .btn_main_wrap.is-secondary .btn_main_text {
  color: var(--swatch--dark);
}

.desktop-slide-panel .btn_main_wrap.is-secondary:hover {
  background-color: var(--swatch--dark);
}

.desktop-slide-panel .btn_main_wrap.is-secondary:hover .btn_main_text {
  color: #ffffff;
}

/* Submit Button Real Input */
.desktop-slide-panel .btn_submit_input_real {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
  z-index: 10;
  width: 100%;
  height: 100%;
}
