/* Shared finishing rules for both RSL pages. */
:root{--rsl-ink:#29272a;--rsl-copy:#575156;--rsl-muted:#777075;--rsl-line:#29272a22;--rsl-surface:#faf6f3;--rsl-space:80px}
body{color:var(--rsl-ink)}
#main section[id]{scroll-margin-top:28px}
.eyebrow,.card-label,.section-bar>p{font-size:11px;letter-spacing:.11em;font-weight:500}
.section-bar{padding-top:var(--rsl-space);padding-bottom:36px}
.section-bar h2,.about-grid h2,.steps-content h2,.faq-intro h2{font-size:clamp(40px,5vw,66px);line-height:1.08}
.section-bar h2{margin-top:16px}
.carousel-root{padding-bottom:var(--rsl-space)}
.carousel-card{border-radius:22px;background:#fffdfb}
.card-ring{border-radius:22px;box-shadow:inset 0 0 0 1px #49353b16}
.card-shader-slot::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(to bottom,transparent 45%,#fffdfb)}
.card-copy h3{font-size:24px;line-height:1.23;font-weight:500;letter-spacing:-.035em}
.card-copy p,.about-copy p,.steps-content dd,.faq-answer p,.about-details .detail-section p{color:var(--rsl-copy);line-height:1.65}
.card-label{color:var(--rsl-muted)}
.card-copy a{font-size:14px;font-weight:500;min-height:44px;align-items:center}
.card-copy a span,.text-link span{transition:transform .2s}
.card-copy a:hover span,.text-link:hover span{transform:translate(2px,-2px)}
.about-section{padding-top:0;padding-bottom:var(--rsl-space)}
.about-top{padding-top:28px;border-top:1px solid var(--rsl-line);border-bottom:0;padding-bottom:0}
.about-grid{margin-top:36px;gap:clamp(40px,7vw,88px);align-items:start}
.about-copy .large-copy{font-size:24px;line-height:1.45;color:var(--rsl-ink);margin-bottom:24px}
.about-copy .text-link{margin-top:8px}
.steps-content{padding-top:var(--rsl-space);padding-bottom:var(--rsl-space);gap:48px}
.steps-intro{font-size:17px;color:var(--rsl-copy)}
.steps-content dl>div{border-color:var(--rsl-line)}
.steps-content dt>span:last-child{font-size:22px;font-weight:500;letter-spacing:-.025em}
.steps-content dd{font-size:16px}
.faq-section{padding-top:var(--rsl-space);padding-bottom:var(--rsl-space)}
.faq-wrap{padding-top:0;border-top:0;gap:clamp(40px,7vw,88px)}
.faq-intro h2{margin-top:18px}
.faq-column li>button{font-size:18px;line-height:1.45;padding:23px 0}
.faq-column ul,.faq-column li+li{border-color:var(--rsl-line)}
.faq-answer p{font-size:16px}
.contact-section{padding-top:var(--rsl-space);padding-bottom:var(--rsl-space)}
.contact-grid{gap:clamp(40px,7vw,88px);margin-top:30px;align-items:center}
.contact-grid h2{font-size:clamp(48px,6.3vw,84px);line-height:1.03;max-width:13ch}
.contact-grid p{font-size:18px;line-height:1.6}
.contact-link{font-size:clamp(23px,2.6vw,34px);padding:18px 24px}
.contact-email{font-size:15px;padding-top:22px}
footer{padding-top:44px;padding-bottom:44px}
footer .footer-brand-horizontal img{width:270px}
footer address,footer p{font-size:13px;color:var(--rsl-muted)}
footer nav{gap:22px}
.about-page .about-details{padding-bottom:var(--rsl-space)}
.about-page .about-details .detail-section{padding:56px 0;gap:clamp(40px,7vw,88px)}
.about-page .about-details .detail-section h2{font-size:clamp(34px,4vw,50px);line-height:1.1}
.about-page .about-details .detail-section p{font-size:17px}
@media(min-width:1000px){
.carousel-track{align-items:stretch}
.carousel-card,.carousel-card.active{display:flex;flex-direction:column;height:auto;min-height:480px}
.card-shader-slot{position:relative;inset:auto;height:170px;flex:0 0 170px;width:100%;pointer-events:none}
.card-copy{position:relative;inset:auto;height:auto;flex:1;padding:26px;background:#fffdfb;justify-content:flex-start}
.card-copy h3{min-height:60px}.card-copy p{min-height:0;margin-top:14px;font-size:16px}
.card-copy a{margin-top:auto;padding-top:22px}
}
@media(max-width:999px){
.carousel-track{align-items:stretch}
.card-copy{background:#fffdfb;min-height:310px}
.card-copy p{min-height:0}
}
@media(max-width:639px){
:root{--rsl-space:56px}
.section-bar{padding-top:48px;padding-bottom:28px}
.section-bar h2,.about-grid h2,.steps-content h2,.faq-intro h2{font-size:40px;line-height:1.08}
.section-bar .eyebrow,.eyebrow{font-size:9px;letter-spacing:.1em}
.carousel-root{padding-bottom:48px}
.card-copy h3{font-size:23px}
.about-grid{margin-top:28px;gap:26px}
.about-copy .large-copy{font-size:21px}
.steps-content{gap:36px}
.steps-content dt>span:last-child{font-size:21px}
.faq-wrap{gap:30px}
.contact-grid{margin-top:26px;gap:30px}
.contact-grid h2{font-size:52px;max-width:13ch}
.contact-grid p{font-size:16px}
.contact-link{font-size:25px}
footer{gap:30px;padding-top:36px;padding-bottom:36px}
footer nav{gap:18px;font-size:12px}
.about-page .about-details .detail-section{padding:38px 0;gap:24px}
.about-page .about-details .detail-section h2{font-size:36px}
.about-page .about-details .detail-section p{font-size:16px}
}
@media(prefers-reduced-motion:reduce){.card-copy a span,.text-link span{transition:none}}
.sky .hero-housing-intro{color:#fff;font-size:clamp(16px,1.65vw,20px);line-height:1.55;max-width:46ch;margin-top:24px}
.sky h1{max-width:19ch;font-size:clamp(52px,7.5vw,104px)}
@media(max-width:639px){.sky h1{font-size:clamp(44px,11.8vw,64px);max-width:19ch}}
/* Quiet editorial actions and a typographic footer signature. */
.steps-content .pill.cream,.about-page .detail-section .pill.red{
 background:transparent;color:#393236;border:1px solid #b7a6ab;border-radius:8px;
 padding:14px 20px;gap:28px;box-shadow:none;font-size:15px;font-weight:500;
 transition:background .2s,border-color .2s;
}
.steps-content .pill.cream:hover,.about-page .detail-section .pill.red:hover{
 background:#eee5e3;color:#29272a;border-color:#85737a;transform:none;
}
.contact-section .contact-link{
 background:transparent;color:#393236;border-radius:0;border-top:1px solid #cfc3c5;border-bottom:1px solid #cfc3c5;
 padding:22px 0;font-family:Gambarino,Georgia,serif;font-weight:400;font-size:clamp(30px,3.3vw,44px);
 box-shadow:none;transition:color .2s;
}
.contact-section .contact-link span{color:#75646b;font-family:Geist,sans-serif;font-size:26px}
.contact-section .contact-link:hover{background:transparent;color:#75646b;transform:none}
.contact-email{padding-bottom:8px}.contact-email:hover{color:#75646b}
footer .footer-brand{display:inline-flex;align-items:center;gap:20px;width:auto;max-width:100%;color:#393236;text-decoration:none}
footer .footer-brand .footer-wordmark{color:#393236;font-family:Gambarino,Georgia,serif;font-weight:400;font-size:76px;line-height:.9;letter-spacing:-.055em}
footer .footer-brand .footer-descriptor{display:block;border-left:1px solid #cfc3c5;padding-left:20px;font:400 14px/1.4 Geist,sans-serif;letter-spacing:0;color:#665960}
footer .footer-brand:hover{color:#75646b}
@media(max-width:639px){
 .contact-section .contact-link{font-size:34px;padding:20px 0}
 footer .footer-brand .footer-wordmark{font-size:68px}footer .footer-brand .footer-descriptor{font-size:13px}
}
/* Warm fallback while the card shaders initialise. */
.carousel-card .card-shader-slot{background:linear-gradient(135deg,#e6d9d6,#f7f1ed 65%,#d7c6c9)}
/* Final shared brand and interaction system. */
:root{--red:#75646b}
.sky .rsl-brand-word{font-family:Gambarino,Georgia,serif;font-size:68px;font-weight:400;letter-spacing:-.055em;line-height:.9}
.sky .rsl-brand-description{font-weight:400;line-height:1.4;letter-spacing:0;margin-top:0}
.sky .watercolor-cta,.sky .pill.red{border-radius:8px;font-weight:500;font-size:14px;color:#65535c}
.sky .watercolor-cta{padding:14px 24px;margin-top:28px}
.sky .pill.red.header-cta{color:#65535c}
.card-copy a span,.faq-sign{color:#75646b}
.card-copy a:hover,.about-copy .text-link:hover,footer nav a:hover{color:#75646b}
.dots button[aria-current=true] span{background:#75646b}
.contact-section a:focus-visible,a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline-color:#75646b;outline-offset:5px}
.sky a:focus-visible,.sky button:focus-visible{outline-color:#fff}
.skip:not(:focus){clip-path:inset(50%);width:1px;height:1px;overflow:hidden;padding:0}
.sky .topbar nav a{transition:opacity .2s}
.sky .topbar nav a:hover{color:inherit;opacity:.75}
.contact-email{min-height:44px;align-items:center}
footer .motion-toggle{font-size:12px;color:#665960;min-height:32px;text-underline-offset:4px}
.about-page .sky{min-height:620px}
.about-page .sky .sky-copy{padding-bottom:72px}
.about-page .sky .sky-copy p{max-width:48ch;font-size:18px;line-height:1.6}
@media(max-width:639px){
 .sky .rsl-brand-word{font-size:54px}
 .sky .rsl-brand-description{font-size:11px}
 .sky .hero-housing-intro{max-width:32ch}
 .about-page .sky{min-height:0}
 .about-page .sky .sky-copy{padding-top:52px;padding-bottom:56px}
 .about-page .sky .sky-copy p{font-size:16px}
 .sky .topbar nav a:hover{color:#65535c}
}
/* A continuous hero-to-housing transition. */
body{background:#faf6f3}
.scroll-sequence #home{clip-path:inset(var(--hero-inset,0px) round var(--hero-round,0px));scale:var(--hero-scale,1);transform-origin:center top}
.scroll-sequence #services{background:color-mix(in srgb,#faf6f3 calc((1 - var(--section-arrive,1))*100%),#fff)}
.scroll-sequence #services .section-bar{translate:0 calc((1 - var(--section-arrive,1))*28px)}
.scroll-sequence #services .carousel-card{translate:0 var(--card-rise,0px);scale:var(--card-scale,1);transform-origin:center bottom}
@media(prefers-reduced-motion:reduce){
 .scroll-sequence #home{clip-path:none;scale:none}
 .scroll-sequence #services .section-bar,.scroll-sequence #services .carousel-card{translate:none;scale:none}
}