/* Avant-Garde motion refresh — November 2026. Content is visible at rest. */
:root { --motion-coral:#ff927b; --motion-panel:#1b303b; --motion-ease:cubic-bezier(.22,.68,.18,1); }
.site-header { height:100px; transition:background-color .3s,box-shadow .3s; }
.site-header .brand { width:185px; height:78px; }
.site-header.is-scrolled { height:100px; }
.site-header.is-scrolled .brand { width:212px; height:86px; }
.site-header.is-scrolled .brand img { transform:none; }
.main-nav .nav-cta,.button { border-radius:999px; padding-left:23px; padding-right:23px; }
.main-nav .nav-cta { transition:background-color .25s,transform .25s; }
.button,.text-link,.arrow-link { font-size:14px; }
.motion-site main { overflow:clip; position:relative; isolation:isolate; }
.motion-site .hero,.motion-site .page-hero,.motion-site .home-services,.motion-site .expertise { position:relative; isolation:auto; }
.motion-site main>section>*:not(svg) { position:relative; z-index:2; }
.motion-flow { position:absolute; inset:0; width:100%; height:100%; z-index:1; pointer-events:none; }
.motion-flow path { fill:none; stroke-linecap:round; stroke-linejoin:round; }
.motion-flow .ribbon-track { opacity:.08; }
.motion-flow .ribbon-draw { stroke-width:9px; opacity:.65; }
.motion-flow:not(.is-linked) .ribbon-draw { visibility:hidden; }
.page-home .intro-description { background:var(--paper); box-shadow:0 0 0 14px var(--paper); }
.page-home .home-services-head>p:last-child,.page-services .expertise .section-heading>p { background:var(--night); box-shadow:0 0 0 12px var(--night); }
.page-services .service-context--text .context-copy { background:#e9e5dc; box-shadow:0 0 0 14px #e9e5dc; }
.motion-site .hero:after,.motion-site .page-hero:after { display:none; }
.motion-ribbon { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:-1; overflow:visible; }
.motion-ribbon path { fill:none; stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke; }
.ribbon-track { stroke:#ff927b; stroke-width:2px; opacity:.18; }
.ribbon-draw { stroke:var(--motion-coral); stroke-width:12px; opacity:.8; }
.motion-ribbon.is-linked .ribbon-draw { stroke-dasharray:1; stroke-dashoffset:calc(1 - var(--ribbon-progress,1)); }
.hero-ribbon { width:105%; left:-5%; }
.motion-site .hero { padding-top:70px; padding-bottom:110px; gap:5%; min-height:690px; }
.motion-site .hero:before { opacity:.1; }
.motion-site .hero-copy { padding-bottom:0; }
.motion-site .hero h1 { font-size:clamp(48px,5.6vw,78px); line-height:1.04; letter-spacing:-.045em; }
.motion-site .hero h1 em { font-family:var(--serif); }
.motion-site .hero-subtitle { max-width:500px; font-size:20px; line-height:1.55; }
.motion-site .hero-intro { max-width:530px; font-size:18px; line-height:1.75; }
.motion-site .hero-actions { flex-wrap:wrap; gap:22px; margin-bottom:0; }
.motion-site .hero-stamp { display:none; }
.motion-site .hero-visual { height:clamp(390px,37vw,510px); border-radius:32px 32px 100px 32px; border:1px solid #63717a; box-shadow:14px 18px 0 #ff927b18; }
.motion-site .hero-visual img { filter:grayscale(.75); }
.motion-site .hero-visual-caption { left:16px; right:16px; bottom:22px; border-radius:14px; font:500 11px/1.5 var(--sans); letter-spacing:.04em; flex-wrap:wrap; gap:4px 14px; }
.experience-panel { position:relative; z-index:2; display:grid; grid-template-columns:1fr 1fr 1.15fr; gap:32px; width:calc(100% - 12vw); max-width:1320px; margin:-45px auto 0; padding:34px 38px; background:var(--motion-panel); color:#f8f5ed; border:1px solid #40505a; border-radius:26px; box-shadow:0 20px 45px #10212c18; }
.experience-panel>div+div { border-left:1px solid #52616a; padding-left:30px; }
.experience-label { display:block; font:600 11px/1.5 var(--mono); letter-spacing:.06em; color:var(--motion-coral); margin-bottom:14px; }
.experience-panel h2 { color:#f8f5ed; font:600 25px/1.25 var(--sans); letter-spacing:-.025em; margin:0 0 9px; }
.experience-panel p { font-size:15px; line-height:1.65; color:#d6dfe0; margin:0; max-width:260px; }
.experience-panel strong { display:block; font:600 60px/1 var(--sans); letter-spacing:-.06em; color:#f8f5ed; margin-bottom:8px; font-variant-numeric:tabular-nums; }
.experience-panel strong>span:last-child { color:var(--motion-coral); }
.experience-panel .arrow-link { color:#fff; border-color:#718087; margin-top:16px; }
.experience-panel .arrow-link span { color:var(--motion-coral); }
.page-home .intro-band { grid-template-columns:1.1fr 1fr; gap:26px 8%; padding-top:92px; padding-bottom:90px; }
.page-home .intro-band .section-kicker { grid-column:1/-1; }
.page-home .home-services { background:var(--night); color:#f8f5ed; padding-top:90px; padding-bottom:90px; }
.home-services .section-ribbon { opacity:.65; }
.page-home .home-services h2,.page-home .home-services h3 { color:#f8f5ed; }
.page-home .home-services h2 em { color:var(--motion-coral); }
.page-home .home-services .eyebrow { color:#d6dfe0; }
.page-home .home-services-head>p:last-child { color:#d6dfe0; font-size:18px; }
.page-home .home-services-grid { gap:22px; margin-top:42px; margin-bottom:32px; }
.page-home .home-services-grid>a { background:var(--motion-panel); border:1px solid #40505a; border-radius:24px; min-height:290px; padding:30px 28px 65px; box-shadow:0 12px 26px #07131a14; }
.page-home .home-services-grid span { color:var(--motion-coral); }
.page-home .home-services-grid h3 { font:600 clamp(24px,2.2vw,30px)/1.2 var(--serif); letter-spacing:-.02em; margin-top:25px; max-width:290px; }
.page-home .home-services-grid p { color:#d6dfe0; font-size:16px; line-height:1.75; margin:16px 0 0; max-width:290px; }
.page-home .home-services-grid b { color:var(--motion-coral); transition:transform .28s var(--motion-ease); }
.page-home .home-services>.arrow-link { color:#f8f5ed; border-color:#718087; }
.page-home .home-services>.arrow-link span { color:var(--motion-coral); }
.page-home .home-proof { padding-top:44px; padding-bottom:44px; }
.page-services .page-hero { padding-bottom:100px; }
.page-services .expertise { background:var(--night); color:#f8f5ed; }
.page-services .expertise .section-heading h2 { color:#f8f5ed; }
.page-services .expertise .section-heading h2 em { color:var(--motion-coral); }
.page-services .expertise .section-heading>p,.page-services .expertise .eyebrow { color:#d6dfe0; }
.page-services .service-cards { gap:24px; }
.page-services .service-card { overflow:hidden; border-radius:26px; border:1px solid #40505a; background:var(--motion-panel); box-shadow:0 16px 30px #07131a20; }
.page-services .service-card>img { height:230px; filter:saturate(.95); }
.page-services .service-card-copy { padding:30px 26px; }
.page-services .service-card .service-index { color:var(--motion-coral); padding-top:0; }
.page-services .service-card h3 { color:#f8f5ed; font:600 27px/1.22 var(--serif); letter-spacing:-.02em; }
.page-services .service-card-copy>p,.page-services .service-card-copy li { color:#d6dfe0; font-size:16px; line-height:1.75; }
.page-services .service-card .arrow-link { color:#fff; border-color:#718087; margin-top:22px; }
.page-services .service-card .arrow-link span { color:var(--motion-coral); }
.page-services .systems-strip { border-top-color:#40505a; margin-top:38px; }
.page-services .systems-strip>span { color:var(--motion-coral); }
.page-services .systems-strip p { color:#d6dfe0; font-size:15px; }
.page-services .service-context--text { padding-top:90px; padding-bottom:90px; }
.motion-site .systems-gallery figure { border-radius:22px; overflow:hidden; border:1px solid #d5d1c8; background:var(--paper); }
.motion-site .systems-gallery figure img { border:0; height:245px; }
.motion-site .systems-gallery figcaption { position:relative; padding:17px 20px; background:var(--paper); }
.scroll-reveal { opacity:1; transform:none; }
.motion-card { transition:transform .3s var(--motion-ease),border-color .3s,box-shadow .3s; }
.motion-card.is-arriving { animation:card-arrive .65s var(--motion-ease) both; animation-delay:var(--arrival-delay,0ms); }
@keyframes card-arrive { from { translate:0 20px; } to { translate:0 0; } }
.faq-list details { overflow:hidden; }
.faq-list summary { gap:20px; }
.faq-list summary b { font-size:0; }
.faq-list summary b:before { content:'+'; font:400 25px/1 var(--sans); display:inline-block; }
.faq-list details[open] summary b:before { content:'−'; }
.faq-list details[open] summary b { transform:none; }
@media (hover:hover) and (pointer:fine) {
 .motion-site .home-services-grid>a:hover,.motion-site .service-card:hover { transform:translateY(-7px); border-color:var(--motion-coral); box-shadow:0 20px 38px #07131a50; }
 .motion-site .home-services-grid>a:hover b { transform:translate(4px,-4px); }
 .motion-site .systems-gallery figure:hover img { transform:scale(1.035); }
}
.motion-site .home-services-grid>a:focus-visible,.motion-site .service-card:focus-within { outline:3px solid var(--motion-coral); outline-offset:5px; }
@media (max-width:1050px) and (min-width:681px) {
 .site-header .brand { width:160px; }
 .site-header.is-scrolled .brand { width:180px; }
 .main-nav { gap:22px; }
 .experience-panel { gap:22px; padding:30px 26px; }
 .experience-panel>div+div { padding-left:22px; }
 .motion-site .hero-actions { align-items:flex-start; flex-direction:column; }
 .page-services .service-cards { grid-template-columns:1fr; }
 .page-services .service-card { display:grid; grid-template-columns:38% 1fr; }
 .page-services .service-card>img { height:100%; min-height:300px; }
}
@media (max-width:760px) and (min-width:681px) {
 .main-nav { gap:14px; font-size:13px; }
 .main-nav .nav-cta { padding:10px 14px; }
 .main-nav .nav-cta span { margin-left:7px; }
 .site-header { padding-inline:22px; }
 .site-header .brand,.site-header.is-scrolled .brand { width:150px; }
}
@media (max-width:680px) {
 .site-header,.site-header.is-scrolled { height:82px; }
 .site-header .brand { width:155px; height:66px; }
 .site-header.is-scrolled .brand { width:172px; height:70px; }
 .main-nav.is-open { top:82px; }
 .motion-site .hero { padding-top:48px; padding-bottom:85px; gap:36px; min-height:0; }
 .motion-site .hero h1 { font-size:clamp(43px,10.8vw,66px); }
 .motion-site .hero-subtitle { font-size:18px; }
 .motion-site .hero-intro { font-size:16px; }
 .motion-site .hero-actions { gap:20px; }
 .motion-site .hero-visual { height:330px; border-radius:24px 24px 65px 24px; box-shadow:8px 10px 0 #ff927b18; }
 .ribbon-draw { stroke-width:7px; }
 .hero-ribbon { opacity:.5; }
 .experience-panel { width:calc(100% - 44px); margin-top:-35px; padding:28px; grid-template-columns:1fr; gap:25px; border-radius:22px; }
 .experience-panel>div+div { padding:24px 0 0; border-left:0; border-top:1px solid #52616a; }
 .experience-panel strong { font-size:56px; }
 .experience-panel h2 { font-size:25px; }
 .experience-panel p { max-width:none; font-size:16px; }
 .page-home .intro-band,.page-home .home-services { padding-top:65px; padding-bottom:65px; }
 .page-home .intro-band { grid-template-columns:1fr; gap:24px; }
 .page-home .home-services-grid { gap:16px; margin-top:30px; }
 .page-home .home-services-grid>a { min-height:240px; padding:28px 26px 62px; }
 .page-home .home-services-grid h3 { font-size:28px; max-width:none; }
 .page-home .home-services-grid p { max-width:none; }
 .page-home .home-services-head>p:last-child { font-size:16px; }
 .page-home .home-proof { gap:24px; }
 .page-services .page-hero { padding-bottom:65px; }
 .page-services .service-card>img { height:220px; }
 .page-services .service-card-copy { padding:26px 24px; }
 .page-services .service-context--text { padding-top:65px; padding-bottom:65px; }
 .motion-site .systems-gallery figure img { height:230px; }
}
@media (prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 .motion-flow .ribbon-draw { stroke-dashoffset:0!important; }
 .motion-card.is-arriving { animation:none; }
 .motion-site .hero-visual img,.motion-site .systems-gallery figure img,.motion-site .service-card>img { transform:none!important; clip-path:none; transition:none; }
 .motion-card,.site-header .brand,.main-nav .nav-cta { transition:none; }
}

/* The same visual language, with a distinct layout for each remaining page. */
.motion-site .about,.motion-site .values,.motion-site .goals,.motion-site .standards,.motion-site .insights,.motion-site .faq,.motion-site .schedule,.motion-site .inspection-form,.motion-site .contact { position:relative; isolation:auto; }
.page-about .about { padding-top:80px; padding-bottom:85px; }
.page-about .about-copy { background:var(--paper); border-radius:20px; box-shadow:0 0 0 16px var(--paper); }
.page-about .about-copy .section-kicker { margin-bottom:22px; }
.page-about .visual-frame { border-radius:28px 28px 80px 28px; box-shadow:none; }
.page-about .visual-caption { padding:12px 55px 12px 16px; flex-wrap:wrap; gap:4px 12px; font-size:11px; }
.page-about .about-counter { border:1px solid #40505a; border-radius:20px; right:16px; bottom:30px; padding:22px 25px; }
.page-about .about-counter strong { font-size:48px; }
.page-about .about-signoff { gap:18px; flex-wrap:wrap; }
.page-about .values { background:var(--night); color:#f8f5ed; }
.page-about .values-head h2,.page-about .values-grid h3 { color:#f8f5ed; }
.page-about .values-head h2 em { color:var(--motion-coral); }
.page-about .values-head .eyebrow { color:#d6dfe0; }
.page-about .values-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.page-about .values-grid article { background:var(--motion-panel); border:1px solid #40505a; border-radius:24px; padding:30px; }
.page-about .values-grid article>span { color:var(--motion-coral); }
.page-about .values-grid h3 { font:600 28px/1.25 var(--serif); margin:24px 0 14px; }
.page-about .values-grid p { color:#d6dfe0; font-size:17px; margin:0; max-width:490px; }
.page-about .goals { background:#fffefa; }
.page-about .goals .section-heading>p { background:#fffefa; box-shadow:0 0 0 12px #fffefa; }
.page-about .goals-list { grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; border:0; }
.page-about .goals-list article { padding:27px; background:var(--paper); border:1px solid var(--line); border-radius:22px; }
.page-about .goals-list h3 { font-size:21px; line-height:1.35; margin-top:22px; }
.page-about .goals-list p { font-size:16px; max-width:none; margin-bottom:0; }
.page-about .standards-copy { background:var(--night); box-shadow:0 0 0 14px var(--night); }
.page-about .standards-graphic { border-radius:24px; overflow:hidden; padding:22px; }
.page-journal .insights { padding-top:80px; padding-bottom:90px; min-height:calc(100vh - 260px); }
.page-journal .insights .section-heading { margin-bottom:46px; }
.page-journal .insights .section-heading>div { background:var(--night); box-shadow:0 0 0 12px var(--night); }
.page-journal .article-grid { gap:28px; }
.page-journal .article-card { border-radius:26px; border:1px solid #53616a; box-shadow:0 18px 35px #07131a30; padding-bottom:30px; }
.page-journal .article-card>img { height:250px; }
.page-journal .article-card h3 { font:600 clamp(26px,2.5vw,34px)/1.25 var(--serif); letter-spacing:-.02em; }
.page-journal .article-card p { font-size:17px; line-height:1.75; }
.page-journal .article-card .article-meta { font-size:12px; flex-wrap:wrap; gap:8px 18px; }
.page-journal .article-card .article-link { display:inline-flex; align-items:center; gap:18px; font-size:15px; }
.page-journal .article-card .article-link span { transition:transform .25s; }
.page-journal .article-card .article-link:hover span { transform:translate(4px,-4px); }
.page-faq .faq { padding-top:80px; padding-bottom:85px; gap:7%; }
.page-faq .faq-intro { align-self:start; background:var(--paper); border-radius:20px; box-shadow:0 0 0 16px var(--paper); }
.page-faq .faq-intro .section-kicker { margin-bottom:24px; }
.page-faq .faq-intro>p { color:var(--muted); font-size:18px; line-height:1.75; margin:24px 0; }
.page-faq .faq-list { border-top:0; }
.page-faq .faq-list details { background:#fffefa; border:1px solid #d5d1c8; border-radius:18px; margin-bottom:12px; transition:border-color .25s,box-shadow .25s; }
.page-faq .faq-list details[open] { border-color:#bd6a57; box-shadow:0 10px 28px #10212c09; }
.page-faq .faq-list summary { padding:22px; font-size:17px; line-height:1.5; }
.page-faq .faq-list summary b { flex-shrink:0; }
.page-faq .faq-list details>p { font-size:16px; line-height:1.8; padding:0 24px 22px; max-width:none; }
.page-faq .faq-list blockquote { margin:0 24px 22px; padding:18px; border-radius:10px; font-size:16px; }
.page-contact .page-hero>p:last-child { background:var(--night); box-shadow:0 0 0 12px var(--night); }
.page-contact .schedule-image { border-radius:28px 28px 80px 28px; box-shadow:none; }
.page-contact .schedule-copy { background:#fff; border-radius:18px; box-shadow:0 0 0 16px #fff; }
.page-contact .inspection-form { background:var(--night); align-items:start; }
.page-contact .form-heading { background:var(--night); box-shadow:0 0 0 14px var(--night); }
.page-contact .form-heading h2 { color:#f8f5ed; }
.page-contact .form-heading h2 em { color:var(--motion-coral); }
.page-contact .form-heading .eyebrow,.page-contact .form-heading>p:not(.eyebrow) { color:#d6dfe0; }
.page-contact .form-heading>p:not(.eyebrow) { font-size:18px; line-height:1.75; }
.page-contact .contact-form { background:#fffefa; border:1px solid #53616a; border-radius:26px; padding:32px; box-shadow:0 20px 40px #07131a35; }
.page-contact .contact-form input,.page-contact .contact-form select,.page-contact .contact-form textarea { border-radius:10px; background:#fff; }
.page-contact .contact-form input,.page-contact .contact-form select { min-height:49px; }
.page-contact .form-note { color:#46585f; }
.page-contact .contact-detail { background:var(--motion-panel); border:1px solid #40505a; border-radius:20px; padding:24px; min-width:0; }
.page-contact .contact-detail>span { color:var(--motion-coral); font:600 12px/1.5 var(--mono); display:block; margin-bottom:14px; }
.page-contact .contact-detail a,.page-contact .contact-detail p { color:#f8f5ed; font-size:16px; line-height:1.75; }
.page-contact .contact-detail a:focus-visible { outline-color:#fff; }
.page-contact .contact-detail p { margin-bottom:0; }
.page-contact .contact-watermark { display:none; }
.page-contact .contact-main { background:var(--orange); box-shadow:0 0 0 12px var(--orange); }
.motion-article .article-hero img { border-radius:28px; }
.motion-article .article-header { box-shadow:0 5px 24px #10212c08; }
.motion-article .article-body blockquote { border-radius:0 18px 18px 0; }
.motion-article .reading-progress { position:fixed; top:0; left:0; width:100%; height:4px; background:#f05a3f; transform:scaleX(0); transform-origin:left center; z-index:50; pointer-events:none; }
.photo-settle { animation:photo-settle 1.1s cubic-bezier(.22,.68,.18,1) both; }
@keyframes photo-settle { from { transform:scale(1.045); } to { transform:scale(1); } }
@media (hover:hover) and (pointer:fine) {
 .page-about .values-grid article:hover,.page-contact .contact-detail:hover { transform:translateY(-5px); border-color:var(--motion-coral); }
 .page-about .goals-list article:hover { transform:translateY(-5px); border-color:#bc6a57; box-shadow:0 12px 30px #10212c0c; }
 .page-journal .article-card:hover { border-color:var(--motion-coral); }
}
@media (min-width:1000px) { .page-faq main>.faq>.faq-intro { position:sticky; top:140px; } }
@media (max-width:1000px) and (min-width:681px) {
 .page-about .about { grid-template-columns:1fr; gap:50px; }
 .page-about .about-visual { max-width:650px; }
 .page-about .goals-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .page-contact .inspection-form { grid-template-columns:1fr; gap:35px; }
 .page-contact .form-heading>p:not(.eyebrow) { max-width:600px; }
 .page-contact .contact { grid-template-columns:1fr; gap:35px; }
}
@media (max-width:680px) {
 .page-about .about,.page-faq .faq,.page-journal .insights { padding-top:60px; padding-bottom:65px; }
 .page-about .about { gap:40px; }
 .page-about .visual-frame { border-radius:24px 24px 60px 24px; }
 .page-about .about-counter { right:10px; bottom:24px; padding:18px; border-radius:18px; }
 .page-about .about-counter strong { font-size:40px; }
 .page-about .values-grid,.page-about .goals-list { grid-template-columns:1fr; gap:16px; }
 .page-about .values-grid article,.page-about .goals-list article { padding:25px; }
 .page-about .values-grid h3 { font-size:27px; }
 .page-about .values-grid p { font-size:16px; }
 .page-journal .article-card>img { height:210px; }
 .page-journal .article-card p { font-size:16px; }
 .page-journal .article-card .article-meta { font-size:11px; }
 .page-journal .insights .section-heading { margin-bottom:30px; }
 .page-faq .faq-intro>p { font-size:16px; }
 .page-faq .faq-list summary { padding:20px; font-size:16px; }
 .page-faq .faq-list details>p { padding-inline:20px; }
 .page-contact .contact-form { padding:24px 20px; grid-template-columns:1fr; gap:20px; }
 .page-contact .form-heading>p:not(.eyebrow) { font-size:16px; }
 .page-contact .contact-details { grid-template-columns:1fr; gap:16px; }
 .page-contact .contact-detail { padding:24px; }
 .motion-article .article-hero img { border-radius:20px; }
}
@media (prefers-reduced-motion:reduce) {
 .photo-settle { animation:none; }
 .motion-article .reading-progress { display:none; }
 .page-faq .faq-list details,.page-journal .article-card .article-link span { transition:none; }
}
