/* Terra Lands finishing layer. Source copy, logo and cinematic geometry stay intact. */

/* Optical rhythm for the existing editorial headings, with no new type family. */
:is(#services,#projects,#process,#about,#regional-signature,#why-us,#testimonials,#faq,#contact) h2{
  font-optical-sizing:auto;
  font-weight:450!important;
  line-height:1.1!important;
  letter-spacing:-.022em!important;
}
main [data-reveal="heading"]>p:last-child{
  line-height:1.8;
  text-wrap:pretty;
}
#testimonials [data-reveal="heading"]>p:last-child{
  max-width:660px;
}

/* Small labels carry real information and remain readable on a phone. */
.terra-comparison-stage [role="tab"] span:first-child{
  font-size:10px!important;
  line-height:1.4!important;
  letter-spacing:.08em!important;
}
.terra-comparison-stage [role="tab"] strong{
  font-size:12px!important;
  font-weight:500!important;
  line-height:1.4!important;
}
.terra-comparison-stage [data-comparison-caption] .flex.flex-wrap>span:not([class*="h-px"]){
  font-size:11px!important;
  line-height:1.5;
  letter-spacing:.08em!important;
}
.terra-comparison-stage [data-comparison-caption]>div>span{
  font-size:11px!important;
}
.terra-comparison-stage [data-comparison-description]{
  font-size:13px!important;
  line-height:1.8!important;
}
.terra-comparison-control{
  font-size:12px!important;
}
#services article>div.relative>span{
  font-size:12px!important;
  line-height:1.5;
  letter-spacing:.04em;
}
#projects [data-project-meta]{
  font-size:11px!important;
  line-height:1.5;
  letter-spacing:.07em!important;
}
#projects [data-project-content]>span{
  font-size:11px!important;
}
#about .liquid-content>span:first-child{
  font-size:11px;
  letter-spacing:.12em;
}
.terra-chapter-number{
  font-size:11px!important;
  line-height:1.5;
  letter-spacing:.16em!important;
}
.terra-palette-stage figcaption p{
  font-size:13px!important;
  line-height:1.65;
}
.terra-palette-stage figcaption small{
  font-size:11px!important;
  line-height:1.5;
}
.terra-comparison-stage [data-comparison-disclosure]{
  font-size:11px;
  line-height:1.55;
}

/* Pale stone remains photographic; the lower caption zone gains enough shade
   to carry white headings and the smaller warm-colored chapter labels. */
.terra-palette-stage figure::after{
  background:
    linear-gradient(180deg,#101a140a,transparent 28%,#101a148c 52%,#101a14e6 100%),
    linear-gradient(90deg,#101a1480,transparent 78%);
}

/* Calm matte surfaces retain the paper/cypress contrast of each source section. */
#testimonials article,#faq details{
  background:rgb(var(--brand-limestone))!important;
  border:1px solid rgba(var(--brand-cypress),.16)!important;
  border-radius:16px!important;
  box-shadow:none!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}
#why-us article{
  background:rgb(var(--brand-cypress))!important;
  border:1px solid rgba(var(--brand-cypress),.2)!important;
  border-radius:16px!important;
  box-shadow:none!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}
#contact form{
  background:#1b2a20!important;
  border:1px solid rgba(var(--brand-stone),.2)!important;
  border-radius:18px!important;
  box-shadow:none!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}
#testimonials article::before,#testimonials article::after,
#why-us article::before,#why-us article::after,
#faq details::before,#faq details::after,
#contact form::before,#contact form::after{
  display:none!important;
}
#testimonials article small{
  font-size:12px;
  line-height:1.5;
}
#testimonials article>p{
  font-size:16px;
  line-height:1.8;
}
#why-us article>div>span:first-child{
  font-size:11px!important;
  letter-spacing:.08em;
}
#why-us article h3{
  font-size:20px;
  font-weight:500;
  line-height:1.3;
}
#faq summary{
  font-weight:500;
  line-height:1.55;
}
#faq details>div p{
  line-height:1.8;
}

/* The service icon stays still; the card's established reveal remains in charge. */
#services article>div.relative>div:first-child{
  transform:none!important;
  box-shadow:none!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}
#services article h3{
  font-weight:450;
  line-height:1.2;
}
#services article>p{
  line-height:1.8;
}
#projects [data-project-card] h3{
  font-size:clamp(24px,1.85vw,28px)!important;
  font-weight:450!important;
  line-height:1.18!important;
}
.terra-process-copy h3{
  font-optical-sizing:auto;
  font-weight:450;
  line-height:1.2;
}

/* Form controls keep the source focus and selection styles. */
#contact form legend{
  font-size:14px;
  line-height:1.5;
}
#contact form fieldset label{
  min-height:44px;
}
#contact form :is(input:not([type="radio"]):not([type="checkbox"]),select,textarea){
  min-height:48px;
  font-size:16px!important;
  line-height:1.5;
  color:rgb(var(--brand-ink))!important;
  background:rgb(var(--brand-limestone))!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}
#contact form textarea{
  min-height:112px;
}
#contact form>div:first-child>a{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  font-size:12px;
}
#contact form button[type="submit"]{
  min-height:48px;
}

/* The preference control visually belongs to the source's light footer. */
.terra-motion-footer{
  background:rgb(var(--brand-limestone));
  padding-top:0;
}
.terra-motion-footer button{
  min-height:44px;
  color:rgb(var(--brand-cypress));
  border-color:rgba(var(--brand-cypress),.2);
  font-size:12px;
}
.terra-motion-footer button:hover{
  background:rgba(var(--brand-cypress),.05);
}
.terra-motion-footer button[aria-pressed="true"]{
  color:rgb(var(--brand-cypress));
  border-color:rgb(var(--brand-copper));
}
.terra-motion-footer button:focus-visible{
  outline:2px solid rgb(var(--brand-copper));
  outline-offset:4px;
}
footer h2{
  font-weight:600;
  letter-spacing:.12em;
}

@media(max-width:767px){
  :is(#services,#projects,#process,#about,#regional-signature,#why-us,#testimonials,#faq,#contact) h2{
    font-size:clamp(32px,8.5vw,40px);
    line-height:1.12!important;
    letter-spacing:-.018em!important;
  }
  main [data-reveal="heading"]>p:last-child{
    font-size:15px;
    line-height:1.8;
  }
  #projects [data-project-card] h3{
    font-size:24px!important;
  }
  #services article>p,#faq details>div p{
    font-size:14px;
    line-height:1.85;
  }
  #testimonials article>p{
    font-size:16px;
    line-height:1.8;
  }
  #why-us article h3{
    font-size:19px;
  }
  #contact form>label{
    line-height:1.65;
  }
}

/* Preserve native high-contrast rendering rather than force matte brand colors. */
@media(forced-colors:active){
  #testimonials article,#why-us article,#faq details,#contact form,
  #contact form :is(input:not([type="radio"]):not([type="checkbox"]),select,textarea){
    color:CanvasText!important;
    background:Canvas!important;
    border-color:CanvasText!important;
    forced-color-adjust:auto;
  }
  .terra-motion-footer,.terra-motion-footer button,
  .terra-motion-footer button[aria-pressed="true"]{
    color:CanvasText;
    background:Canvas;
    border-color:CanvasText;
  }
}
