@view-transition { navigation: auto; }
:root {
  --navy:#0e1f2f; --navy-2:#1a3046; --ink:#1e2d39; --muted:#69747a;
  --paper:#fcfaf5; --cream:#f3eee4; --sand:#e8dfd1; --rust:#a86d52;
  --line:rgba(16,32,51,.15); --serif:'Playfair Display',Georgia,serif;
  --sans:'DM Sans',Arial,sans-serif; --page:min(1280px,calc(100% - 9vw));
}
*{box-sizing:border-box} html{scroll-behavior:smooth;scroll-padding-top:110px} body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased} img{display:block;max-width:100%} a{color:inherit;text-decoration:none} button,input,select,textarea{font:inherit} button,a{touch-action:manipulation} a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #c78d6d;outline-offset:3px} [hidden]{display:none!important}
::view-transition-old(root){animation:page-away .26s cubic-bezier(.4,0,1,1) both} ::view-transition-new(root){animation:page-arrive .48s cubic-bezier(.16,1,.3,1) both} @keyframes page-away{to{opacity:.55;transform:scale(.992)}} @keyframes page-arrive{from{opacity:.45;transform:translateY(10px) scale(.995)}to{opacity:1;transform:none}}
.skip-link{position:absolute;z-index:99;top:-5rem;left:1rem;padding:.7rem 1rem;background:var(--paper);color:var(--navy)}.skip-link:focus{top:1rem}
.topline{min-height:36px;padding:0 4.5vw;display:flex;align-items:center;justify-content:space-between;gap:1rem;background:var(--navy);color:rgba(255,255,255,.8);font-size:11px;letter-spacing:.12em;text-transform:uppercase}.topline p{margin:0}.topline p span{padding:0 .55rem;color:#d5b69e}.topline p .topline-area{padding:0;color:inherit}.topline a{color:#f6eee4;white-space:nowrap}.site-header{position:sticky;top:0;z-index:20;min-height:88px;padding:0 4.5vw;display:flex;align-items:center;justify-content:space-between;background:var(--navy);color:#fff9ef;view-transition-name:site-header;transition:box-shadow .3s ease}.site-header.is-scrolled{box-shadow:0 10px 30px rgba(14,31,47,.22)}.brand{display:block;width:190px;flex:0 0 auto}.brand img{width:100%;height:auto}.site-nav{display:flex;align-items:center;gap:clamp(1rem,2.2vw,2.2rem);font-size:13.5px;letter-spacing:.03em}.site-nav>a{padding:.55rem 0;color:rgba(255,255,255,.78);transition:color .2s ease,box-shadow .25s ease}.site-nav>a:not(.nav-cta):hover{box-shadow:inset 0 -1px rgba(210,170,142,.6)}.site-nav>a:hover,.site-nav>a[aria-current="page"]{color:#fff}.site-nav>a[aria-current="page"]:not(.nav-cta){box-shadow:inset 0 -1px #d2aa8e}.site-nav .nav-cta{margin-left:.2rem;padding:.75rem 1.1rem;border:1px solid rgba(255,255,255,.42);color:#fff;transition:background .25s ease,border-color .25s ease}.site-nav .nav-cta:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.7)}.nav-cta span{margin-left:.6rem;color:#d8b39a}.menu-toggle{display:none}
.section-wrap{width:var(--page);margin-inline:auto}.section-space{padding-block:clamp(4.8rem,8.5vw,8.5rem)}.eyebrow{margin:0 0 1rem;color:var(--rust);font-size:11px;font-weight:700;letter-spacing:.17em;line-height:1.55;text-transform:uppercase}.eyebrow-rule{display:inline-block;width:26px;height:1px;margin:0 .55rem .23rem 0;background:currentColor}h1,h2,h3,p{margin-top:0}h1,h2{color:var(--navy);font-family:var(--serif);font-weight:400;letter-spacing:-.045em;line-height:1.05}h1 em,h2 em{color:var(--rust);font-weight:400}h1{font-size:clamp(3.3rem,6.5vw,6.4rem);margin-bottom:1.4rem}h2{font-size:clamp(2.5rem,4.8vw,4.5rem);margin-bottom:1.2rem}.hero-intro,.page-hero-copy>p:not(.eyebrow){max-width:480px;color:var(--muted);font-size:17px;line-height:1.75}.button{min-height:52px;padding:.85rem 1.35rem;display:inline-flex;align-items:center;justify-content:center;gap:1.2rem;border:1px solid transparent;font-size:12.5px;font-weight:700;letter-spacing:.05em;cursor:pointer;transition:transform .25s ease,background .25s ease,box-shadow .25s ease,border-color .25s ease}.button:hover{transform:translateY(-2px);box-shadow:0 12px 24px rgba(16,32,51,.12)}.button-dark{background:var(--navy);color:#fff}.button-dark:hover{background:#263f57}.button-light{border-color:rgba(255,255,255,.65);color:white}.button-light:hover{background:rgba(255,255,255,.1)}.button span{color:#d7b39a;font-size:14px}.text-link{display:inline-flex;align-items:center;gap:.6rem;font-size:13px;font-weight:700}.text-link span{color:var(--rust);font-size:16px;transition:transform .25s ease}.text-link:hover span{transform:translateX(4px)}.text-link-light{color:#fffaf1}.text-link-light span{color:#d6ad90}.cta-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.6rem}
.hero{min-height:610px;padding-block:clamp(3.5rem,6.8vw,6.5rem);display:grid;grid-template-columns:.87fr 1.13fr;align-items:center;gap:clamp(2rem,6vw,6.4rem)}.hero-copy{padding-left:clamp(0px,2.5vw,35px)}.hero-intro{margin-bottom:1.7rem}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1.25rem}.hero-proof{display:flex;align-items:center;gap:.85rem;margin-top:2.5rem;color:var(--muted);font-size:12px;line-height:1.55}.proof-mark{color:var(--navy);font-family:var(--serif);font-size:31px;letter-spacing:-.06em}.hero-photo{position:relative;margin:0;background:#e2d9ca;overflow:hidden}.hero-photo>img{width:100%;height:min(55vw,690px);min-height:470px;object-fit:cover;object-position:center 53%;transition:transform .8s cubic-bezier(.2,.7,.2,1)}.hero-photo:hover>img{transform:scale(1.02)}.hero-photo figcaption,.project-photo figcaption,.home-story-teaser figure figcaption{position:absolute;right:0;bottom:0;left:0;padding:.72rem .9rem;display:flex;align-items:center;justify-content:space-between;gap:.8rem;background:rgba(252,250,245,.94);font-size:12px}.hero-photo figcaption a,.project-photo figcaption a,.home-story-teaser figcaption a{color:var(--rust);font-weight:700}.trust-band{padding:1rem;background:#e9e2d7;color:var(--navy);text-align:center}.trust-band p{margin:0;font-family:var(--serif);font-size:clamp(17px,2vw,23px);letter-spacing:.02em}.trust-band span{padding:0 .65rem;color:var(--rust);font-family:var(--sans);font-size:12px}
.section-heading{margin-bottom:2.7rem;display:flex;align-items:end;justify-content:space-between;gap:3rem}.section-heading h2{margin-bottom:0}.section-lede{width:min(420px,44%);margin:0 0 .2rem;color:var(--muted);font-size:15px;line-height:1.8}.category-row{border-top:1px solid var(--line)}.category-link{position:relative;min-height:81px;padding:.8rem 3.2rem .8rem 0;display:grid;grid-template-columns:70px 1.1fr 1fr 24px;align-items:center;gap:1rem;border-bottom:1px solid var(--line);transition:padding .3s ease,background .3s ease}.category-link:hover{padding-left:1rem;background:#f4efe7}.category-link>span{color:var(--rust);font-family:var(--serif);font-size:17px}.category-link strong{color:var(--navy);font-family:var(--serif);font-size:23px;font-weight:400}.category-link i{color:var(--muted);font-size:13.5px;font-style:normal}.category-link>b{color:var(--rust);font-size:17px;transition:transform .3s ease}.category-link:hover>b{transform:translate(3px,-3px)}.home-story-teaser{margin-top:clamp(4rem,7vw,7rem);display:grid;grid-template-columns:1fr .88fr;align-items:center;gap:7vw}.home-story-teaser>div{max-width:500px}.home-story-teaser h2{font-size:clamp(2.6rem,4.7vw,4.4rem)}.home-story-teaser>div>p:not(.eyebrow){max-width:440px;color:var(--muted);font-size:15.5px;line-height:1.8}.home-story-teaser figure{position:relative;margin:0;overflow:hidden;background:var(--sand)}.home-story-teaser figure img{width:100%;height:450px;object-fit:cover;object-position:center 46%;transition:transform .7s ease}.home-story-teaser figure:hover img{transform:scale(1.025)}
.home-book-cta{padding:clamp(4.2rem,8vw,7.5rem) 0;background:var(--navy);color:rgba(255,255,255,.73)}.cta-inner{max-width:1120px}.eyebrow-light{color:#d6ad90}.cta-inner h2{color:#fffaf1}.cta-inner h2 em{color:#d6ad90}.cta-inner>p:not(.eyebrow){max-width:470px;margin-bottom:1.8rem;font-size:15.5px;line-height:1.8}.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform .9s cubic-bezier(.16,1,.3,1)}.js .reveal.is-visible{opacity:1;transform:none}.js .hero-photo.reveal,.js .project-photo.reveal,.js .story-hero-photo.reveal{opacity:1;transform:none;clip-path:inset(0 50% 0 50%);transition:clip-path 1.25s cubic-bezier(.7,0,.2,1)}.js .hero-photo.reveal.is-visible,.js .project-photo.reveal.is-visible,.js .story-hero-photo.reveal.is-visible{clip-path:inset(0 0 0 0)}.js .hero-photo.reveal>img,.js .project-photo.reveal img,.js .story-hero-photo.reveal img{transform:scale(1.12);transition:transform 1.8s cubic-bezier(.2,.7,.2,1)}.js .hero-photo.reveal.is-visible>img,.js .project-photo.reveal.is-visible img,.js .story-hero-photo.reveal.is-visible img{transform:none}.js .hero-photo.reveal.is-visible:hover>img,.js .project-photo.reveal.is-visible:hover img{transform:scale(1.02);transition-duration:.8s}
.page-hero{min-height:410px;padding-block:clamp(4rem,7vw,6.5rem);display:grid;grid-template-columns:1fr .7fr;align-items:center;gap:5vw}.page-hero-copy>p:not(.eyebrow){max-width:520px;margin-bottom:1.5rem}.page-hero-copy h1{font-size:clamp(3.4rem,6vw,5.8rem)}.page-hero-mark,.process-mark{position:relative;min-height:255px;padding:2rem;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;overflow:hidden;background:#eee8de}.page-hero-mark:after,.process-mark:after{position:absolute;right:-55px;bottom:-150px;width:290px;height:290px;border:1px solid rgba(168,109,82,.32);border-radius:50%;content:""}.page-hero-mark>span,.process-mark>span{color:var(--rust);font-size:11px;font-weight:700;letter-spacing:.16em}.page-hero-mark strong,.process-mark strong{position:relative;z-index:1;margin:.6rem 0;color:var(--navy);font-family:var(--serif);font-size:clamp(2rem,3.4vw,3rem);font-weight:400;line-height:1.06}.page-hero-mark i,.process-mark i{color:var(--muted);font-size:12px;font-style:normal;letter-spacing:.05em}.treatment-page-grid{padding-top:2rem}.treatment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.treatment-card{position:relative;min-height:250px;padding:1.5rem 1.5rem 1.4rem 5.4rem;background:#f3eee5;transition:transform .3s ease,background .3s ease}.treatment-card:hover{transform:translateY(-4px);background:#eee5d8}.card-number{position:absolute;top:1.55rem;left:1.3rem;color:var(--rust);font-family:var(--serif);font-size:20px}.card-kicker{margin-bottom:.4rem;color:var(--rust);font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.card-copy h3{margin-bottom:.55rem;color:var(--navy);font-family:var(--serif);font-size:25px;font-weight:400}.card-copy>p:not(.card-kicker){max-width:420px;margin-bottom:1rem;color:var(--muted);font-size:14.5px;line-height:1.75}.card-link{display:inline-flex;align-items:center;gap:.6rem;font-size:12.5px;font-weight:700}.card-link span{color:var(--rust);font-size:14px}.product-caution,.timing-note{margin-top:1.4rem;padding:1rem;display:flex;align-items:flex-start;gap:.7rem;border:1px solid var(--line);color:var(--muted);font-size:14px;line-height:1.7}.product-caution>span,.timing-note>span{width:18px;height:18px;flex:0 0 18px;display:grid;place-items:center;border:1px solid #bf9a82;border-radius:50%;color:#8a5e49;font-size:10px}.product-caution p,.timing-note p{margin:0}.social-project-section{padding-block:clamp(4rem,7vw,7rem);background:#eee8dd}.project-showcase{display:grid;grid-template-columns:1.02fr .98fr;align-items:center;gap:clamp(2rem,6vw,6.5rem)}.project-photo{position:relative;margin:0;background:#dfd7ca;overflow:hidden}.project-photo img{width:100%;height:560px;object-fit:cover;object-position:center 42%;transition:transform .8s ease}.project-photo:hover img{transform:scale(1.02)}.project-copy{max-width:460px}.project-copy h2{font-size:clamp(2.6rem,4.8vw,4.4rem)}.project-copy>p:not(.eyebrow){margin-bottom:1.6rem;color:var(--muted);font-size:15.5px;line-height:1.8}.bottom-cta{padding-block:5rem;text-align:center}.bottom-cta .eyebrow{margin-bottom:.8rem}.bottom-cta h2{font-size:clamp(2.4rem,4.5vw,4rem)}
.story-hero{min-height:520px;padding:4rem 4.5vw;display:grid;grid-template-columns:1fr .9fr;align-items:center;gap:6vw;background:var(--navy);color:rgba(255,255,255,.74)}.story-hero-copy{width:min(100%,620px);justify-self:end}.story-hero-copy h1{color:#fffaf1;font-size:clamp(3rem,5.7vw,5.5rem)}.story-hero-copy h1 em{color:#d5aa8d}.story-hero-copy>p:not(.eyebrow){max-width:440px;font-size:16.5px;line-height:1.75}.story-hero-photo{position:relative;max-width:510px;justify-self:start;overflow:hidden}.story-hero-photo img{width:100%;height:440px;object-fit:cover;object-position:center 45%}.story-hero-photo>span{position:absolute;left:1rem;bottom:1rem;padding:.45rem .65rem;background:rgba(14,31,47,.86);color:#fff;font-size:11px;letter-spacing:.05em}.story-narrative{display:grid;grid-template-columns:.55fr 1.45fr;gap:8vw}.story-rail{padding-top:.4rem}.story-years{display:block;margin-top:1.8rem;color:var(--navy);font-family:var(--serif);font-size:74px;line-height:1}.story-years span{color:var(--rust);font-size:40px}.story-caption{margin:.6rem 0;color:var(--muted);font-size:12.5px;line-height:1.55}.story-body{max-width:740px}.story-body h2{font-size:clamp(2.7rem,4.7vw,4.4rem)}.story-body>p{margin-bottom:1.15rem;color:var(--muted);font-size:16px;line-height:1.8}.story-body blockquote{margin:2rem 0;padding:1rem 0 1rem 1.4rem;border-left:2px solid var(--rust);color:var(--navy);font-family:var(--serif);font-size:clamp(24px,3vw,34px);line-height:1.3}.story-values{padding-block:4rem;background:#eee8dd}.values-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.6rem}.values-grid>div{padding:1.1rem;border-top:1px solid rgba(16,32,51,.2)}.values-grid span{color:var(--rust);font-family:var(--serif);font-size:16px}.values-grid h2{margin:.75rem 0 .35rem;font-size:25px}.values-grid p{margin:0;color:var(--muted);font-size:14px;line-height:1.7}.story-end{display:flex;align-items:end;justify-content:space-between;gap:2rem}.story-end>div>p:not(.eyebrow){color:var(--muted);font-size:15.5px}.story-social{padding:.8rem 0;border-bottom:1px solid var(--rust);font-size:12.5px;font-weight:700}.story-social span{padding-left:.7rem;color:var(--rust)}
.process-page{padding-top:2rem}.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2.4rem}.process-step{min-height:200px;padding-right:2rem;border-right:1px solid var(--line)}.process-step:last-child{border:0}.process-step>span{display:block;margin-bottom:1.2rem;color:var(--rust);font-family:var(--serif);font-size:23px}.process-step h2{margin-bottom:.6rem;font-size:26px;letter-spacing:-.02em}.process-step p{max-width:320px;margin:0;color:var(--muted);font-size:14.5px;line-height:1.75}.timing-note{max-width:800px;margin-top:2.5rem}.travel-note{margin-top:1.4rem;padding:1.1rem 1.2rem;display:flex;align-items:center;gap:1rem;background:var(--navy);color:rgba(255,255,255,.78);font-size:14px;line-height:1.7}.travel-note>span{flex:0 0 auto;color:#d7b49b;font-family:var(--serif);font-size:18px}.travel-note p{margin:0}.process-next{min-height:350px;padding-block:4rem;display:flex;align-items:center;justify-content:space-between;gap:3rem;border-top:1px solid var(--line)}.process-next>div>p:not(.eyebrow){max-width:430px;color:var(--muted);font-size:15.5px}.process-orbit{width:170px;height:170px;flex:0 0 170px;display:grid;place-items:center;border:1px solid #d7c6b5;border-radius:50%;color:var(--rust);font-family:var(--serif);font-size:24px;box-shadow:0 0 0 13px rgba(168,109,82,.04),0 0 0 28px rgba(168,109,82,.035)}
.booking-heading{padding-block:clamp(3rem,5vw,5rem) 2rem;display:flex;align-items:center;justify-content:space-between;gap:2rem}.booking-heading h1{font-size:clamp(3rem,5vw,4.7rem)}.booking-heading>div>p:not(.eyebrow){max-width:590px;color:var(--muted);font-size:15.5px;line-height:1.8}.booking-tag{width:145px;height:145px;flex:0 0 145px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:50%;background:#eee7dc;color:var(--navy);text-align:center;transform:rotate(5deg)}.booking-tag>span{font-size:8.5px;font-weight:700;letter-spacing:.13em}.booking-tag>strong{margin:.35rem 0;color:var(--rust);font-family:var(--serif);font-size:17px;font-weight:500}.booking-layout{padding-bottom:clamp(4rem,7vw,7rem);display:grid;grid-template-columns:minmax(0,1.45fr) minmax(245px,.55fr);align-items:start;gap:clamp(2rem,5vw,5rem)}.booking-form{min-width:0}.form-section-title{margin:1rem 0 1.4rem;display:grid;grid-template-columns:35px 1fr;gap:.7rem;align-items:start}.form-section-title>span{color:var(--rust);font-family:var(--serif);font-size:21px}.form-section-title .eyebrow{margin:0 0 .35rem}.form-section-title h2{margin:0;font-size:clamp(24px,3vw,31px);letter-spacing:-.025em}.form-hint{max-width:520px;margin:.6rem 0 0;color:var(--muted);font-size:14px;line-height:1.65}.date-title{margin-top:2.7rem}.contact-title{margin-top:2.8rem}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.field{min-width:0;display:flex;flex-direction:column;gap:.45rem;color:var(--navy);font-size:13.5px;font-weight:600}.field>span{letter-spacing:.025em}.field>span i{margin-left:.4rem;color:var(--muted);font-size:12px;font-style:normal;font-weight:400}.field input,.field select,.field textarea{width:100%;min-height:50px;padding:.7rem .8rem;border:1px solid #d8d1c6;border-radius:0;background:#fffefa;color:var(--ink);font-size:16px;font-weight:400;transition:border-color .2s ease,box-shadow .2s ease}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--navy);box-shadow:0 0 0 3px rgba(168,109,82,.15);outline:none}.field input::placeholder,.field textarea::placeholder{color:#a2a4a1}.field select:disabled{color:#969995}.field textarea{resize:vertical}.field small{color:var(--muted);font-size:12.5px;font-weight:400;line-height:1.55}.field-wide{grid-column:1/-1}.time-grid{margin-top:1.2rem}.calendar-card{padding:1.15rem 1.2rem;border:1px solid var(--line);background:#fffefa}.calendar-top{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;gap:.3rem}.calendar-top h3{margin:0;color:var(--navy);font-family:var(--serif);font-size:22px;font-weight:400;text-align:center}.calendar-arrow{width:38px;height:38px;border:1px solid var(--line);background:transparent;color:var(--navy);cursor:pointer;transition:background .2s,color .2s}.calendar-arrow:hover:not(:disabled){background:var(--navy);color:white}.calendar-arrow:disabled{opacity:.32;cursor:not-allowed}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.3rem}#calendar-days{transition:opacity .2s ease}#calendar-days.is-loading{opacity:.4;pointer-events:none}.calendar-weekdays{margin-top:1rem}.calendar-weekdays span{padding:.3rem 0;color:var(--muted);font-size:11px;font-weight:700;text-align:center;text-transform:uppercase}.calendar-day{min-width:0;aspect-ratio:1/1;border:1px solid transparent;background:transparent;color:var(--ink);font-size:15px;cursor:pointer;transition:transform .16s,background .16s,color .16s,border-color .16s}.calendar-day.is-today{box-shadow:inset 0 -2px var(--rust)}.calendar-day:hover:not(:disabled){transform:translateY(-2px)}.calendar-day.is-open{border-color:#ddd3c5;background:#f7f2e9;color:var(--navy);font-weight:700}.calendar-day.is-open:hover{border-color:var(--rust)}.calendar-day.is-selected{border-color:var(--navy);background:var(--navy);color:white}.calendar-day:disabled{color:#b4b5b1;cursor:not-allowed}.calendar-day.is-empty{pointer-events:none}.calendar-key{margin:.85rem 0 .4rem;display:flex;align-items:center;flex-wrap:wrap;gap:.4rem .9rem;color:var(--muted);font-size:12px}.calendar-key span{width:11px;height:11px;display:inline-block;border:1px solid #ddd3c5}.calendar-key .key-open{background:#f7f2e9}.calendar-key .key-selected{background:var(--navy)}.calendar-key .key-closed{background:#ecebe7}.calendar-status{min-height:1.5em;margin:0;color:var(--navy);font-size:13.5px;font-weight:500}.honeypot{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.confirm-check{margin-top:1.6rem;display:grid;grid-template-columns:20px 1fr;gap:.7rem;align-items:start;color:var(--muted);font-size:13.5px;line-height:1.55;cursor:pointer}.confirm-check input{width:18px;height:18px;margin:.1rem 0;accent-color:var(--navy)}.submit-booking{margin-top:1.2rem;min-width:190px;cursor:pointer}.submit-booking:disabled{opacity:.58;cursor:wait}.form-privacy{max-width:580px;margin:.9rem 0 0;color:var(--muted);font-size:12.5px;line-height:1.6}.booking-aside{position:sticky;top:115px}.aside-card{padding:1.5rem;background:#eee8dd}.aside-card h2{font-size:clamp(27px,3vw,37px)}.aside-card>p:not(.eyebrow){color:var(--muted);font-size:14px;line-height:1.7}.aside-line{padding:.7rem 0;display:flex;flex-direction:column;gap:.12rem;border-top:1px solid rgba(16,32,51,.14)}.aside-line span{color:var(--muted);font-size:10.5px;text-transform:uppercase;letter-spacing:.1em}.aside-line strong{color:var(--navy);font-size:14.5px}.aside-card>.text-link{margin-top:1rem}.aside-contact{margin-top:1rem;padding:1rem 1.3rem;border:1px solid var(--line)}.aside-contact p{margin:0;color:var(--muted);font-size:13px}.aside-contact a{color:var(--navy);font-size:15px;font-weight:700}.booking-success{max-width:760px;margin-block:3rem 7rem;padding:clamp(2rem,5vw,4rem);background:#eee8dd;text-align:center}.success-mark{width:45px;height:45px;margin:0 auto 1rem;display:grid;place-items:center;border-radius:50%;background:var(--navy);color:white;font-size:20px}.booking-success h2{font-size:clamp(2.5rem,5vw,4rem)}.booking-success>p:not(.eyebrow){color:var(--muted);font-size:16px}.booking-success>.success-summary{color:var(--navy);font-weight:600;white-space:pre-line}.booking-success:focus{outline:none}.js .booking-success:not([hidden]){animation:success-in .7s cubic-bezier(.16,1,.3,1) both}@keyframes success-in{from{opacity:0;transform:translateY(16px)}}.booking-success .button{margin:.8rem auto 1rem;display:flex;width:max-content}.booking-success .text-link{display:flex;justify-content:center}.form-message{margin-top:1rem;padding:.8rem 1rem;border-left:2px solid #a86d52;background:#f4eee6;color:#734a38;font-size:14px;line-height:1.55}.not-found{padding-block:clamp(5rem,11vw,9rem)}.not-found>p:not(.eyebrow){max-width:460px;margin-bottom:1.8rem;color:var(--muted);font-size:17px}
/* Footer: Home Deco details above the studio's signature white strip. */
.site-footer{border-top:1px solid rgba(255,255,255,.12);background:var(--navy);color:#c8cdd0;font-size:14px}
.footer-main{display:grid;grid-template-columns:1.25fr .85fr 1.1fr;gap:clamp(2rem,5vw,5rem);padding-block:clamp(3rem,5vw,5rem) 3rem}
.footer-intro{min-width:0}
.footer-brand{display:block;width:240px;max-width:100%;margin:-.8rem 0 .65rem}
.footer-brand img{width:100%;height:auto}
.footer-tagline{margin:0 0 1.4rem;color:#f4eee4;font-family:var(--serif);font-size:clamp(23px,2.1vw,29px);line-height:1.35;letter-spacing:-.025em}
.footer-area{display:flex;align-items:center;gap:.6rem;margin:0;color:#c1b4a5;font-size:11px;letter-spacing:.09em;text-transform:uppercase}
.footer-area>span{width:5px;height:5px;flex:0 0 5px;border-radius:50%;background:#d6ad90}
.footer-heading{margin:0 0 1.35rem;color:#d6ad90;font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.18em;line-height:1.6;text-transform:uppercase}
.footer-nav{display:flex;flex-direction:column;align-items:flex-start}
.footer-nav>a{padding:.3rem 0;font-size:13px;line-height:1.7;transition:color .2s ease}
.footer-nav>a:hover,.footer-email:hover{color:#fffaf1;text-decoration:underline;text-underline-offset:5px;text-decoration-color:#d6ad90}
.footer-nav .footer-book-link{display:inline-flex;align-items:center;gap:.9rem;margin-top:.7rem;color:#fffaf1;font-weight:600}
.footer-book-link>span{color:#d6ad90;transition:transform .2s ease}
.footer-book-link:hover>span{transform:translate(2px,-2px)}
.footer-contact{min-width:0}
.footer-phone{display:block;width:fit-content;margin:-.3rem 0 .55rem;color:#fffaf1;font-family:var(--serif);font-size:clamp(23px,2.2vw,29px);line-height:1.4;letter-spacing:-.025em;transition:color .2s ease}
.footer-phone:hover{color:#d6ad90}
.footer-email{display:inline-block;max-width:100%;font-size:13px;overflow-wrap:anywhere;transition:color .2s ease}
.footer-contact>p{max-width:270px;margin:1rem 0 1.15rem;color:#aeb7bf;font-size:12px;line-height:1.8}
.footer-social{display:flex;flex-wrap:wrap;gap:.35rem 1.2rem}
.footer-social a{display:inline-flex;align-items:center;min-height:44px;gap:.5rem;color:#f4eee4;font-size:11.5px}
.footer-social a>span:last-child{color:#d6ad90;font-size:12px}
.footer-social-icon{width:31px;height:31px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.2);border-radius:50%;color:#d6ad90;transition:background .2s ease,border-color .2s ease}
.footer-social a:hover .footer-social-icon{border-color:#d6ad90;background:rgba(214,173,144,.1)}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:1rem 2rem;padding-block:1.35rem;border-top:1px solid rgba(255,255,255,.13);color:#aeb7bf;font-size:10.5px;line-height:1.7}
.footer-bottom p{margin:0}
.footer-bottom p:last-child{color:#c1b4a5;letter-spacing:.035em}
.footer-signature{padding:26px 24px;border-top:1px solid #e5e7eb;background:#fff;text-align:center}
.footer-signature>a{display:inline-flex;align-items:center;justify-content:center;gap:20px;max-width:100%;color:#737373;text-align:left;font-size:16px;line-height:1.5;transition:opacity .2s ease}
.footer-signature>a:hover{opacity:.8}
.footer-signature img{flex:0 0 auto;width:auto;height:80px;object-fit:contain}
.footer-signature strong{color:#262626;font-weight:700}
@media(max-width:980px){
  .footer-main{grid-template-columns:1.15fr .8fr 1.2fr;gap:1.8rem}
  .footer-brand{width:210px}
  .footer-social{gap:.3rem .75rem}
}
@media(max-width:700px){
  .footer-main{grid-template-columns:1fr 1.2fr;gap:2.3rem 1.4rem;padding-block:3rem 2.5rem}
  .footer-intro{grid-column:1/-1;padding-bottom:2rem;border-bottom:1px solid rgba(255,255,255,.13)}
  .footer-brand{width:220px;margin-bottom:.75rem}
  .footer-tagline{font-size:26px;margin-bottom:1rem}
  .footer-heading{font-size:9px;letter-spacing:.13em;margin-bottom:1rem}
  .footer-nav>a{min-height:36px;font-size:12px}
  .footer-nav .footer-book-link{gap:.5rem;align-items:baseline}
  .footer-phone{font-size:21px;white-space:nowrap}
  .footer-email{font-size:11px}
  .footer-contact>p{font-size:11.5px;margin-top:.8rem}
  .footer-social{flex-direction:column;align-items:flex-start;gap:.25rem}
  .footer-bottom{align-items:flex-start;flex-direction:column;gap:.45rem;padding-block:1.2rem;font-size:10px}
  .footer-signature{padding:24px 20px}
  .footer-signature>a{gap:16px;font-size:14px}
  .footer-signature img{height:64px}
  .footer-signature strong{display:block}
}
@media(max-width:360px){
  .footer-main{grid-template-columns:1fr;gap:2rem}
  .footer-intro{grid-column:auto}
  .footer-phone{font-size:25px}
  .footer-email{font-size:13px}
  .footer-social{flex-direction:row;gap:.3rem 1rem}
}

/* Project photography: local responsive images, with links to the original installations. */
.treatment-preview{display:grid;grid-template-columns:.86fr 1.14fr;gap:clamp(2rem,4.5vw,4.5rem);align-items:stretch}
.treatment-preview-photo,.page-hero-photo,.gallery-photo,.treatment-detail-photo,.booking-project-photo{margin:0;min-width:0}
.treatment-preview-photo img{width:100%;height:390px;object-fit:cover;object-position:center 43%}
.treatment-preview .category-row{display:flex;flex-direction:column}
.treatment-preview .category-link{flex:1;grid-template-columns:34px 1fr 24px;gap:.25rem .8rem;padding:.9rem .6rem .9rem 0}
.treatment-preview .category-link:hover{padding-left:.7rem}
.treatment-preview .category-link i{grid-column:2;grid-row:2;margin-top:-.25rem}
.treatment-preview .category-link>b{grid-column:3;grid-row:1/3}
.treatment-preview-photo figcaption,.page-hero-photo figcaption,.gallery-photo figcaption,.treatment-detail-photo figcaption,.booking-project-photo figcaption{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.3rem .7rem;padding:.8rem 0;color:var(--muted);font-size:11.5px;line-height:1.6}
.treatment-preview-photo figcaption a,.page-hero-photo figcaption a,.gallery-photo figcaption a,.treatment-detail-photo figcaption a,.booking-project-photo figcaption a,.story-hero-photo figcaption a{flex:0 0 auto;color:var(--rust);font-size:11px;font-weight:700}
.home-offer{padding-bottom:clamp(3rem,5vw,5rem)}
.project-gallery{padding-top:clamp(2.4rem,4vw,4rem);border-top:1px solid var(--line)}
.gallery-intro{width:min(380px,38%);color:var(--muted);font-size:15px;line-height:1.8}
.gallery-intro p{margin-bottom:1rem}
.gallery-intro .text-link{color:var(--navy)}
.project-gallery-grid{display:grid;grid-template-columns:1.35fr .85fr .85fr;gap:1.3rem;align-items:start}
.gallery-photo{overflow:hidden}
.gallery-photo img{width:100%;height:390px;object-fit:cover;object-position:center 48%;transition:transform .8s ease}
.gallery-photo:hover img{transform:scale(1.025)}
.gallery-photo-wide img{object-position:center 52%}
.gallery-photo figcaption{display:block;position:relative;background:var(--paper)}
.gallery-photo figcaption span,.gallery-photo figcaption a{display:block}
.gallery-photo figcaption a{margin-top:.3rem}
.page-hero:has(.page-hero-photo){grid-template-columns:1.05fr .95fr;padding-block:clamp(2.5rem,4.5vw,4.5rem)}
.page-hero-photo img{width:100%;height:480px;object-fit:cover;object-position:center 45%}
.treatment-card[id]{scroll-margin-top:1.5rem}
.treatment-photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.2rem}
.treatment-detail-photo img{width:100%;height:350px;object-fit:cover;object-position:center 48%}
.story-hero-photo{margin:0;width:100%}
.story-hero-photo figcaption{position:relative;display:flex;justify-content:space-between;flex-wrap:wrap;gap:.3rem .8rem;padding:.8rem 0 0;color:#d5c5b5;font-size:11.5px;line-height:1.6}
.story-hero-photo figcaption a{color:#d6ad90}
.booking-project-photo{margin-bottom:1rem}
.booking-project-photo img{width:100%;height:240px;object-fit:cover;object-position:center 48%}
.booking-project-photo figcaption{font-size:11px}
@media(max-width:980px){
  .treatment-preview{gap:2rem;grid-template-columns:1fr 1.1fr}
  .treatment-preview-photo img{height:400px}
  .treatment-preview .category-link strong{font-size:21px}
  .treatment-preview .category-link i{font-size:12px}
  .project-gallery-grid{gap:1rem;grid-template-columns:1.15fr 1fr 1fr}
  .gallery-photo img{height:300px}
  .page-hero-photo img{height:440px}
  .treatment-detail-photo img{height:300px}
}
@media(max-width:700px){
  .treatment-preview{grid-template-columns:1fr;gap:1.2rem}
  .treatment-preview-photo img{height:auto;aspect-ratio:5/4;object-position:center 48%}
  .treatment-preview .category-link{min-height:82px;grid-template-columns:33px 1fr 22px}
  .treatment-preview .category-link strong{font-size:22px}
  .treatment-preview .category-link i{font-size:13px}
  .home-offer{padding-bottom:3rem}
  .gallery-intro{width:auto;max-width:470px;margin-top:1.2rem}
  .project-gallery-grid{grid-template-columns:1fr;gap:1.8rem}
  .gallery-photo img{height:auto;aspect-ratio:4/3}
  .gallery-photo-wide img{aspect-ratio:1;object-position:center 52%}
  .gallery-photo figcaption{display:flex;align-items:baseline;padding-top:.65rem;font-size:11px}
  .gallery-photo figcaption a{margin:0}
  .page-hero:has(.page-hero-photo){grid-template-columns:1fr;gap:2rem;padding-block:3rem 2rem}
  .page-hero-photo img{height:auto;aspect-ratio:5/4}
  .treatment-photo-pair{grid-template-columns:1fr;gap:1.4rem;margin-top:1.4rem}
  .treatment-detail-photo img{height:auto;aspect-ratio:4/3}
  .booking-project-photo img{height:auto;aspect-ratio:16/9}
}
@media(max-width:980px){:root{--page:min(100% - 8vw,760px)}.site-header{min-height:80px}.brand{width:168px}.site-nav{gap:1.2rem;font-size:13px}.hero{grid-template-columns:.92fr 1.08fr;gap:2.5rem}.hero-photo>img{min-height:420px}.booking-layout{grid-template-columns:minmax(0,1.35fr) minmax(220px,.65fr);gap:2rem}.booking-aside{top:95px}}
@media(max-width:700px){:root{--page:calc(100% - 40px)}html{scroll-padding-top:84px}.topline{min-height:36px;padding-inline:20px;font-size:10.5px;letter-spacing:.08em}.topline-area{display:none}.site-header{min-height:72px;padding-inline:20px}.brand{width:150px}.hero{grid-template-columns:1fr;gap:2.2rem;padding-block:3.2rem 2.7rem}.hero-copy{padding:0}h1{font-size:clamp(3.2rem,14vw,4.7rem)}.hero-intro{font-size:16px}.hero-photo>img{width:100%;height:110vw;min-height:360px;max-height:550px}.trust-band{padding:.85rem .4rem}.trust-band p{font-size:17px}.trust-band span{padding:0 .3rem}.section-space{padding-block:4.4rem}.section-heading{display:block;margin-bottom:2rem}.section-heading h2{font-size:clamp(2.5rem,11vw,3.6rem)}.section-lede{width:auto;max-width:470px;margin:1rem 0 0;font-size:15px}.category-link{min-height:76px;grid-template-columns:33px 1fr 22px;gap:.45rem;padding-right:.3rem}.category-link>span{font-size:14px}.category-link strong{font-size:20px}.category-link i{grid-column:2;grid-row:2;margin-top:-.5rem;font-size:13px}.category-link>b{grid-column:3;grid-row:1/3}.home-story-teaser{grid-template-columns:1fr;gap:1.6rem;margin-top:4rem}.home-story-teaser h2{font-size:clamp(2.6rem,11vw,3.7rem)}.home-story-teaser figure img{height:106vw;min-height:360px;max-height:500px}.home-book-cta{padding:4.5rem 0}.cta-inner h2{font-size:clamp(2.8rem,12vw,4rem)}.page-hero{min-height:0;padding-block:3.5rem;grid-template-columns:1fr;gap:2rem}.page-hero-copy h1{font-size:clamp(3.1rem,12vw,4.6rem)}.page-hero-mark,.process-mark{min-height:205px}.treatment-page-grid{padding-top:1rem}.treatment-grid{grid-template-columns:1fr;gap:.7rem}.treatment-card{min-height:0;padding:1.2rem 1.2rem 1.2rem 4.2rem}.card-number{top:1.2rem;left:1rem}.card-copy h3{font-size:23px}.project-showcase{grid-template-columns:1fr;gap:2rem}.project-photo img{height:112vw;min-height:370px;max-height:540px}.project-copy h2{font-size:clamp(2.6rem,11vw,3.8rem)}.bottom-cta{padding-block:4rem}.bottom-cta h2{font-size:clamp(2.5rem,10.5vw,3.6rem)}.story-hero{min-height:0;padding:3.4rem 20px 2.2rem;grid-template-columns:1fr;gap:2rem}.story-hero-copy{justify-self:start}.story-hero-copy h1{font-size:clamp(2.9rem,11vw,4.25rem)}.story-hero-photo{width:100%;max-width:none}.story-hero-photo img{height:105vw;min-height:350px;max-height:500px}.story-narrative{grid-template-columns:1fr;gap:1.5rem}.story-years{display:inline-block;margin:.7rem 0 0;font-size:44px}.story-years span{font-size:24px}.story-caption{display:inline-block;margin-left:.6rem}.story-body h2{font-size:clamp(2.45rem,10vw,3.5rem)}.values-grid{grid-template-columns:1fr 1fr;gap:.8rem}.values-grid>div{padding:.9rem .4rem}.values-grid h2{font-size:23px}.story-end{display:block}.story-social{display:inline-block;margin-top:1.8rem}.process-page{padding-top:1rem}.process-grid{grid-template-columns:1fr;gap:1rem}.process-step{min-height:0;display:grid;grid-template-columns:35px 1fr;column-gap:.6rem;padding:0 0 1rem;border-right:0;border-bottom:1px solid var(--line)}.process-step>span{grid-row:span 2;margin:-.1rem 0 0}.process-step h2{font-size:22px}.process-step p{max-width:none}.timing-note{margin-top:1.5rem}.travel-note{align-items:flex-start}.process-next{min-height:0;padding-block:3.4rem;align-items:flex-start}.process-next h2{font-size:clamp(2.5rem,10vw,3.5rem)}.process-orbit{width:90px;height:90px;flex-basis:90px;font-size:15px;box-shadow:0 0 0 8px rgba(168,109,82,.04),0 0 0 17px rgba(168,109,82,.035)}.booking-heading{padding-block:2.8rem 1.5rem;align-items:flex-start}.booking-heading h1{font-size:clamp(2.8rem,10.5vw,3.8rem)}.booking-heading>div>p:not(.eyebrow){font-size:15px}.booking-tag{display:none}.booking-layout{grid-template-columns:1fr;gap:1.8rem;padding-bottom:4rem}.booking-form{order:1}.booking-aside{position:static;order:2}.aside-card{padding:1.3rem}.aside-card h2{font-size:28px}.aside-card>.text-link{display:flex;margin-top:.8rem}.form-section-title{grid-template-columns:28px 1fr;gap:.3rem;margin:1.5rem 0 1rem}.form-section-title h2{font-size:23px}.form-section-title>span{font-size:18px}.field-grid{gap:.8rem}.field-grid:not(.time-grid){grid-template-columns:1fr}.field-wide{grid-column:1}.calendar-card{padding:.9rem .7rem}.calendar-grid{gap:.2rem}.calendar-day{font-size:14px}.calendar-key{gap:.4rem .6rem}.booking-success{margin-block:2rem 4rem}.booking-success .button{width:100%}}@media(max-width:860px){.menu-toggle{width:44px;height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1px solid rgba(255,255,255,.35);background:transparent;color:white;cursor:pointer}.menu-toggle span{width:18px;height:1px;background:currentColor;transition:transform .25s ease}.menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.site-nav{position:absolute;top:100%;left:0;right:0;display:flex;flex-direction:column;align-items:stretch;gap:0;padding:.2rem max(20px,4.5vw) 1.2rem;background:var(--navy);box-shadow:0 18px 26px rgba(14,31,47,.22);font-size:15px;opacity:0;visibility:hidden;transform:translateY(-10px);transition:opacity .25s ease,transform .35s cubic-bezier(.16,1,.3,1),visibility 0s linear .35s}.site-nav.is-open{opacity:1;visibility:visible;transform:none;transition-delay:0s}.site-nav>a{padding:.9rem 0;border-top:1px solid rgba(255,255,255,.13)}.site-nav>a[aria-current="page"]:not(.nav-cta){box-shadow:none;color:#d6ad90}.site-nav .nav-cta{margin:.6rem 0 0;padding:.9rem 1rem;text-align:center}}
@media(max-width:390px){.topline{font-size:10px;letter-spacing:.05em}.hero-actions{align-items:flex-start;flex-direction:column;gap:.9rem}.calendar-day{font-size:13.5px}}
/* Additional project photography: each page has its own set of images. */
.treatment-preview-photo img{object-position:center 57%}
.home-story-teaser figure img{object-position:center 62%}
.gallery-photo-patio img{object-position:center 55%}
.treatment-photo-pair .treatment-detail-photo img{height:420px;object-position:center bottom}
.story-hero-photo img{object-position:center 58%}
.story-detail-photo{margin:2.5rem 0 0;max-width:270px}
.story-detail-photo img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center 65%}
.story-detail-photo figcaption,.installation-photo figcaption{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.3rem .7rem;padding:.8rem 0;color:var(--muted);font-size:11.5px;line-height:1.6}
.story-detail-photo figcaption a,.installation-photo figcaption a{flex:0 0 auto;color:var(--rust);font-size:11px;font-weight:700}
.installation-story{padding-top:.5rem;padding-bottom:clamp(3rem,5vw,5rem)}
.installation-pair{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
.installation-photo{min-width:0;margin:0}
.installation-photo img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}
.installation-photo figcaption>span{color:var(--navy);font-weight:600}
.booking-project-photo img{object-position:center 58%}
@media(max-width:980px){.treatment-photo-pair .treatment-detail-photo img{height:340px}}
@media(max-width:700px){
  .treatment-photo-pair .treatment-detail-photo img{height:auto;aspect-ratio:4/3}
  .story-detail-photo{max-width:none;margin-top:1.6rem}
  .story-detail-photo img{aspect-ratio:5/3;object-position:center 70%}
  .installation-story{padding-top:0;padding-bottom:3rem}
  .installation-pair{grid-template-columns:1fr;gap:1.5rem}
}
.booking-contact-fallback{padding:2rem 0 3rem;max-width:620px}.booking-contact-fallback h2{font-size:clamp(2.6rem,4.6vw,4rem)}.booking-contact-fallback>p:not(.eyebrow){max-width:500px;margin-bottom:1.6rem;color:var(--muted);font-size:16px;line-height:1.8}
/* Client locations, project collection and persistent estimate action. */
.site-header{min-height:116px;padding-block:15px}
.brand{width:270px}
.site-nav{gap:clamp(1rem,1.7vw,1.8rem)}
body{padding-bottom:92px}
html{scroll-padding-top:140px}
.estimate-float{position:fixed;right:max(24px,env(safe-area-inset-right));bottom:max(22px,env(safe-area-inset-bottom));z-index:25;display:inline-flex;align-items:center;gap:12px;min-height:55px;padding:14px 20px;background:var(--navy);border:1px solid #d6ad90;border-radius:4px;color:#fffaf1;box-shadow:0 6px 25px #0e1f2f35;font-size:12px;font-weight:600;letter-spacing:.02em;transition:background .2s,transform .2s}
.estimate-float:hover{background:#263f57;transform:translateY(-2px)}
.estimate-float>svg,.estimate-float>span:last-child{color:#dfbda1}
.menu-open .estimate-float,.photo-open .estimate-float{visibility:hidden}
.footer-contact .footer-saltillo{margin:1rem 0;color:#e3c3a8;line-height:1.8}
.footer-team-link{display:inline-block;margin-left:1.2rem;text-decoration:underline;text-underline-offset:4px}
.footer-saltillo a:hover{text-decoration:underline;text-underline-offset:4px}
.saltillo-section{background:var(--navy);color:#c5cbd0;scroll-margin-top:12px}
.saltillo-inner{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,7vw,7rem);align-items:center}
.saltillo-copy h2{font-size:clamp(3.5rem,6.5vw,6rem);color:var(--paper)}
.saltillo-copy h2 em{color:#d6ad90}
.saltillo-copy h3{max-width:390px;color:#f3eee4;font-family:var(--serif);font-size:25px;font-weight:400;line-height:1.4;letter-spacing:-.02em}
.saltillo-copy>p:not(.eyebrow){max-width:480px;font-size:14px;line-height:1.9}
.saltillo-copy>.button{margin-top:.6rem}
.saltillo-copy .saltillo-visit{margin:1.3rem 0 0;font-size:12px}
.saltillo-visit a{display:inline-block;margin-left:.4rem;color:#e6c3a6;text-decoration:underline;text-underline-offset:4px}
.saltillo-location{min-width:0}
.saltillo-location figure{position:relative;margin:0}
.saltillo-location figure>img{width:100%;height:400px;object-fit:cover;object-position:50% 35%}
.saltillo-location figcaption{position:absolute;left:0;bottom:0;right:0;padding:12px 18px;background:linear-gradient(transparent,#0e1f2fbf);color:white;font-size:10px;letter-spacing:.06em}
.saltillo-address{display:flex;align-items:flex-end;justify-content:space-between;gap:1.4rem;padding:26px;background:var(--cream);color:var(--ink)}
.saltillo-address .eyebrow{margin-bottom:.6rem;font-size:9px}
.saltillo-address h3{margin:0 0 .6rem;color:var(--navy);font-family:var(--serif);font-size:22px;font-weight:400;line-height:1.3}
.saltillo-address address{font-style:normal;font-size:12px;line-height:1.85}
.saltillo-address>.text-link{flex:none;font-size:11px}
.portfolio-heading{display:grid;grid-template-columns:1.2fr .8fr;align-items:end;gap:4rem;padding-bottom:3.5rem}
.portfolio-heading h1{margin-bottom:0;font-size:clamp(3.3rem,5.8vw,5.6rem)}
.portfolio-intro{max-width:400px;padding-bottom:.3rem;color:var(--muted);font-size:15px;line-height:1.9}
.portfolio-intro .text-link{color:var(--ink)}
.portfolio-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:1.3rem;border-block:1px solid var(--line);margin-bottom:2rem}
.portfolio-filters{display:flex;flex-wrap:wrap;gap:6px}
.portfolio-filters button{min-height:44px;padding:9px 16px;border:1px solid transparent;border-radius:2px;background:transparent;color:#5a666e;font-size:12px;cursor:pointer}
.portfolio-filters button:hover{border-color:var(--line)}
.portfolio-filters button[aria-pressed=true]{background:var(--navy);color:#fffaf1}
#project-count{flex:none;margin:0;color:var(--muted);font-size:11px}
.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.2rem 1.5rem}
.portfolio-card{min-width:0;margin:0}
.portfolio-image{position:relative;display:block;width:100%;padding:0;overflow:hidden;border:0;background:var(--sand);cursor:zoom-in}
.portfolio-image>img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.portfolio-image:hover>img{transform:scale(1.035)}
.portfolio-enlarge{position:absolute;right:12px;bottom:12px;width:36px;height:36px;display:grid;place-items:center;border:1px solid #ffffff80;background:#0e1f2f99;color:white;font-size:18px}
.portfolio-card figcaption{padding-top:14px}
.portfolio-card figcaption>span{color:var(--rust);font-size:9px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}
.portfolio-card h2{margin:.3rem 0 0;font-size:24px;line-height:1.25;letter-spacing:-.025em}
.portfolio-note{margin:2.4rem 0 0;padding-top:1.3rem;border-top:1px solid var(--line);color:var(--muted);font-size:12px}
.portfolio-note a{color:var(--rust);text-decoration:underline;text-underline-offset:4px}
.portfolio-process{display:grid;grid-template-columns:1fr .85fr;gap:8vw;align-items:center}
.portfolio-process>div{max-width:500px}
.portfolio-process p:not(.eyebrow){max-width:420px;color:var(--muted);font-size:15px;line-height:1.85}
.portfolio-process>img{width:100%;height:410px;object-fit:cover}
.photo-open{overflow:hidden}
.project-dialog{width:min(1100px,calc(100% - 40px));max-height:calc(100dvh - 40px);margin:auto;padding:18px 22px;border:1px solid #ffffff30;background:var(--navy);color:#fffaf1}
.project-dialog::backdrop{background:#07111be8}
.project-dialog-bar,.project-dialog-caption{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.project-dialog-bar{margin-bottom:12px}
.project-dialog-bar>p{margin:0;font-family:var(--serif);font-size:23px;line-height:1.3}
.project-dialog-close{display:flex;align-items:center;gap:12px;min-height:44px;padding:5px 0 5px 12px;border:0;background:transparent;color:#fffaf1;font-size:12px;cursor:pointer}
.project-dialog-close span{font-size:25px;color:#d6ad90}
.project-dialog-stage{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:12px;align-items:center}
.project-dialog-stage img{width:100%;height:min(68dvh,800px);object-fit:contain}
.project-dialog-stage>button{width:44px;height:44px;border:1px solid #ffffff50;background:transparent;color:#fffaf1;font-size:20px;cursor:pointer}
.project-dialog-stage>button:hover{background:#ffffff15}
.project-dialog-caption{align-items:flex-start;padding-top:14px;font-size:11px;line-height:1.7}
.project-dialog-caption>p{max-width:65%;margin:0;color:#c5cbd0}
.project-dialog-caption>a{flex:none;color:#dfbda1;text-decoration:underline;text-underline-offset:4px}
@media(min-width:861px) and (max-width:1100px){.brand{width:215px}.site-nav{gap:14px;font-size:12px}.site-header{padding-inline:4vw;min-height:100px}}
@media(max-width:1000px){.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.saltillo-inner{gap:2.5rem}.saltillo-address{display:block}.saltillo-address>.text-link{margin-top:1rem}.portfolio-heading{gap:2.5rem}}
@media(max-width:860px){.brand{width:225px}.site-header{min-height:105px;padding-block:12px}.portfolio-heading{grid-template-columns:1fr;gap:1.4rem}.portfolio-intro{max-width:540px}.portfolio-toolbar{align-items:flex-start;flex-direction:column}}
@media(max-width:700px){html{scroll-padding-top:115px}.brand{width:205px}.site-header{min-height:96px}.topline{gap:.5rem;font-size:9px;letter-spacing:.02em}.topline p span{padding-inline:.35rem}.estimate-float{right:16px;bottom:max(16px,env(safe-area-inset-bottom));min-height:51px;padding:12px 16px;gap:10px;font-size:11px}.saltillo-inner{grid-template-columns:1fr;gap:2.4rem}.saltillo-copy h2{font-size:clamp(3.5rem,15vw,5rem)}.saltillo-copy h3{font-size:24px}.saltillo-location figure>img{height:330px}.saltillo-address{padding:24px}.portfolio-heading{padding-bottom:2.2rem}.portfolio-heading h1{font-size:clamp(3rem,12vw,4.6rem)}.portfolio-toolbar{padding-block:1rem;margin-bottom:1.4rem}.portfolio-filters{gap:2px}.portfolio-filters button{padding-inline:11px;font-size:11px}.portfolio-grid{gap:1.8rem 1rem}.portfolio-card h2{font-size:22px}.portfolio-process{grid-template-columns:1fr;gap:2rem}.portfolio-process>img{height:380px}.project-dialog{width:calc(100% - 20px);padding:12px;max-height:calc(100dvh - 20px)}.project-dialog-bar>p{font-size:20px}.project-dialog-stage{grid-template-columns:34px minmax(0,1fr) 34px;gap:6px}.project-dialog-stage>button{width:34px;height:44px}.project-dialog-stage img{height:58dvh}.project-dialog-caption{display:block}.project-dialog-caption>p{max-width:none;margin-bottom:8px}}
@media(max-width:600px){.portfolio-grid{grid-template-columns:1fr}.portfolio-image>img{max-height:580px}.portfolio-card figcaption{padding-top:12px}}
@media(max-width:360px){.brand{width:188px}.topline{font-size:8px}.topline p span{padding-inline:.15rem}.saltillo-copy>.button{padding-inline:13px;gap:.6rem;font-size:11px}.saltillo-visit a{margin-left:0}.portfolio-filters button{padding-inline:8px}}
@media print{.estimate-float,.portfolio-filters,.project-dialog{display:none!important}body{padding-bottom:0}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}@view-transition{navigation:none}.js .reveal{opacity:1;transform:none;clip-path:none}.js .reveal img{transform:none}}
