*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:#f6f3ec;color:#153f3a;font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}header{height:88px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;background:#f6f3ec;position:sticky;top:0;z-index:20;border-bottom:1px solid #153f3a22}.brand{font-size:22px;font-weight:800;letter-spacing:-1px}.brand small{display:block;font-size:8px;letter-spacing:2px;margin-top:5px}nav{display:flex;gap:28px;font-size:11px;text-transform:uppercase;letter-spacing:1px}.lang{display:flex;gap:10px;font-size:11px}.lang a[aria-current]{border-bottom:1px solid}.hero{min-height:calc(100svh - 88px);background:#153f3a;color:#d9cbb6;position:relative;padding:65px 5% 35px;overflow:hidden;display:grid;grid-template-columns:1.3fr 1fr;align-items:center}.eyebrow{font-size:10px;letter-spacing:2px;text-transform:uppercase;display:block;margin-bottom:28px}h1{font-size:clamp(66px,8.6vw,146px);line-height:.9;font-weight:500;letter-spacing:-.065em;margin:0 0 35px}h2{font-size:clamp(42px,6vw,88px);font-weight:500;letter-spacing:-.06em;line-height:.98;margin:0 0 30px}h3{font-size:32px;font-weight:500;letter-spacing:-1px}p{line-height:1.7;max-width:540px;font-size:16px}.hero p{font-size:20px}.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:36px;padding:18px 24px;border:1px solid currentColor;font-size:11px;letter-spacing:1px;text-transform:uppercase;background:transparent;color:inherit;transition:background .25s,color .25s}.btn:hover{background:#d9cbb6;color:#153f3a}.btn span{transition:transform .25s}.btn:hover span{transform:translateX(5px)}.hero .primary{background:#d9cbb6;color:#153f3a}.hero-art{align-self:stretch;display:flex;align-items:center;justify-content:center;border-left:1px solid #d9cbb630;position:relative}.hero-art img{width:85%;max-height:650px;object-fit:contain}.art-label{position:absolute;bottom:8px;font-size:9px;letter-spacing:2px}.hero-bottom{grid-column:1/-1;display:flex;justify-content:space-between;border-top:1px solid #d9cbb630;padding-top:22px;margin-top:45px;font-size:9px;letter-spacing:2px}.section{padding:100px 7%}.split{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}.line{border-top:1px solid #153f3a40;padding-top:24px}.photo{background:#d9cbb6;min-height:420px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;border:1px solid #153f3a22;text-align:center;padding:30px}.photo span{font-size:11px;letter-spacing:2px;text-transform:uppercase}.photo small{font-size:12px;color:#242723}.photo b{font-size:90px;font-weight:400;line-height:1;color:#153f3a33}.services{background:#d9cbb6}.service-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-top:50px}.service{padding:42px;border:1px solid #153f3a55}.service.featured{background:#153f3a;color:#f6f3ec}.service h3{font-size:44px;margin-bottom:20px}.service p{min-height:85px}.num{font-size:11px;letter-spacing:2px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;margin:55px 0}.steps article{border-top:1px solid #153f3a55;padding-top:20px}.steps h3{font-size:25px}.dark{background:#153f3a;color:#d9cbb6}.dark .photo{background:#153f3a;border-color:#d9cbb640;color:#d9cbb6}.dark .photo small{color:#d9cbb6}.rail{display:flex;gap:22px;overflow:auto;scroll-snap-type:x mandatory;padding:20px 0 30px}.rail .photo{flex:0 0 40%;scroll-snap-align:start;min-height:350px}.gallery-controls{display:flex;gap:10px}.gallery-controls button{width:45px;height:45px;background:transparent;border:1px solid;color:inherit}.quote{font-size:clamp(30px,4vw,64px);line-height:1.2;letter-spacing:-2px;max-width:1000px}.faq{max-width:1000px;margin:auto}details{border-top:1px solid #153f3a40;padding:22px 0}summary{cursor:pointer;list-style:none;font-size:18px;display:flex;justify-content:space-between;gap:20px}summary:after{content:'+'}details[open] summary:after{content:'−'}details p{font-size:15px}.closing{text-align:center;padding:110px 7%;background:#153f3a;color:#d9cbb6}.closing h2{font-size:clamp(65px,10vw,145px)}.closing p{margin:0 auto 30px}footer{padding:55px 7%;display:grid;grid-template-columns:1fr 1fr 1fr;gap:40px;font-size:12px}footer p{font-size:12px}.footer-bottom{grid-column:1/-1;border-top:1px solid #153f3a30;padding-top:25px;display:flex;justify-content:space-between}.sticky-book{display:none}.reveal{animation:appear .85s both}@keyframes appear{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}.js-motion .observed{opacity:0;transform:translateY(30px);transition:opacity .8s,transform .8s}.js-motion .observed.visible{opacity:1;transform:none}dialog{border:0;background:#f6f3ec;color:#153f3a;padding:45px;max-width:520px;width:90%}dialog::backdrop{background:#153f3aaa}.close{float:right;border:0;background:transparent;font-size:25px}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #a97141;outline-offset:5px}.preview{font-size:10px;padding:9px;text-align:center;background:#d9cbb6;color:#153f3a}@media(max-width:760px){header{height:74px;padding:0 6%}nav{gap:12px}nav a:nth-child(n+3){display:none}.hero{padding:45px 6% 25px;grid-template-columns:1fr;min-height:auto}h1{font-size:clamp(66px,15vw,110px)}.hero-art{border:0;height:350px;margin-top:30px}.hero-art img{height:100%;width:auto;max-width:100%}.hero-bottom{line-height:1.6;gap:20px}.section{padding:70px 6%}.split,.service-grid{grid-template-columns:1fr;gap:35px}.photo{min-height:300px}.steps{grid-template-columns:1fr;gap:20px}.service{padding:28px}.service p{min-height:0}.rail .photo{flex-basis:85%}footer{grid-template-columns:1fr 1fr;padding:45px 6% 100px}footer>div:first-child{grid-column:1/-1}.sticky-book{display:block;position:fixed;bottom:14px;left:6%;right:6%;background:#d9cbb6;color:#153f3a;padding:17px;text-align:center;z-index:25;border:1px solid #153f3a;font-size:11px;letter-spacing:1px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js-motion .observed{opacity:1;transform:none}}
/* Editorial motion: same palette and type, a more expressive rhythm. */
.scroll-progress{position:fixed;top:0;left:0;height:3px;width:100%;background:#d9cbb6;transform:scaleX(0);transform-origin:left;z-index:60;pointer-events:none}
.motion-enabled .hero .reveal{animation:none}
.motion-line{display:block;overflow:hidden;padding:0 .06em .08em;margin:0 -.06em -.08em}
.motion-line>span{display:block}
.motion-enabled .hero h1 .motion-line>span{animation:headline-in 1.25s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(.15s + var(--line)*.18s)}
@keyframes headline-in{from{transform:translateY(115%) rotate(3deg)}to{transform:translateY(0) rotate(0)}}
.motion-enabled .hero .eyebrow,.motion-enabled .hero p,.motion-enabled .hero .primary{animation:appear 1s both;animation-delay:.65s}
.motion-enabled .hero-art{animation:art-in 1.7s cubic-bezier(.16,1,.3,1) both;transform-origin:50% 55%}
@keyframes art-in{from{opacity:0;clip-path:inset(100% 0 0 0);transform:translateY(40px)}to{opacity:1;clip-path:inset(0);transform:translateY(0)}}
.motion-enabled .hero-art img{animation:art-float 7s ease-in-out 1.7s infinite;will-change:transform}
@keyframes art-float{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-18px) rotate(1deg)}}
.hero-art{overflow:hidden}.hero-art img{position:relative;z-index:1}
.motion-enabled .hero-bottom{animation:appear .8s 1s both}
.motion-band{background:#d9cbb6;color:#153f3a;overflow:hidden;border-block:1px solid #153f3a30;padding:30px 0}
.motion-track{display:flex;width:max-content;gap:45px;font-size:clamp(24px,3.5vw,56px);font-weight:500;letter-spacing:-.04em;white-space:nowrap}
.motion-track>span{display:flex;gap:45px;align-items:center}.motion-track b{font-weight:400;font-size:.65em}
.motion-enabled .motion-track{animation:band-flow 32s linear infinite}.motion-band:hover .motion-track,.motion-band:focus-within .motion-track{animation-play-state:paused}
@keyframes band-flow{to{transform:translateX(-50%)}}
.motion-toggle{position:absolute;right:20px;bottom:12px;border:1px solid #d9cbb666;background:#153f3a;color:#d9cbb6;font-size:10px;padding:8px 12px;z-index:3}.hero-bottom{padding-bottom:25px}
.motion-enabled .observed h2 .motion-line>span{transform:translateY(110%);transition:transform 1.05s cubic-bezier(.16,1,.3,1);transition-delay:calc(var(--line)*.1s)}
.motion-enabled .observed.visible h2 .motion-line>span{transform:translateY(0)}
.motion-enabled .observed .photo{clip-path:inset(0 0 100% 0);transition:clip-path 1.2s cubic-bezier(.16,1,.3,1) .12s,transform .7s}
.motion-enabled .observed.visible .photo{clip-path:inset(0)}
.motion-enabled .service-grid .service,.motion-enabled .steps article{opacity:0;transform:translateY(45px);transition:opacity .8s,transform 1s cubic-bezier(.16,1,.3,1)}
.motion-enabled .visible .service,.motion-enabled .visible .steps article{opacity:1;transform:none}
.motion-enabled .service:nth-child(2){transition-delay:.18s}.motion-enabled .steps article:nth-child(2){transition-delay:.15s}.motion-enabled .steps article:nth-child(3){transition-delay:.3s}
.service{position:relative;transition:background .3s}.service:after{content:'';position:absolute;left:0;bottom:0;height:3px;width:100%;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .5s}.service:hover:after,.service:focus-within:after{transform:scaleX(1)}
.btn{position:relative;overflow:hidden;transition:background .3s,color .3s,transform .3s}.btn:active{transform:scale(.97)}
nav a{position:relative;padding:6px 0}nav a:after{content:'';position:absolute;bottom:0;left:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s}nav a:hover:after,nav a:focus-visible:after{transform:scaleX(1)}
.motion-enabled .closing{position:relative;overflow:hidden}.closing h2{position:relative;z-index:1}.closing:before{content:'';position:absolute;width:45vw;height:45vw;min-width:280px;min-height:280px;border:1px solid #d9cbb633;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%) scale(.65);transition:transform 2s cubic-bezier(.16,1,.3,1);pointer-events:none}.closing.visible:before{transform:translate(-50%,-50%) scale(1.35)}
.motion-enabled header{transition:height .4s,box-shadow .4s}.motion-enabled.scrolled header{height:70px;box-shadow:0 6px 20px #153f3a0a}
.scroll-cue{display:inline-block;animation:cue 1.8s ease-in-out infinite}@keyframes cue{50%{transform:translateY(7px)}}
.motion-paused *, .motion-paused *:before{animation-play-state:paused!important}.motion-paused .observed,.motion-paused .observed h2 .motion-line>span{opacity:1!important;transform:none!important}.motion-paused .observed .photo{clip-path:inset(0)!important}.motion-paused .service,.motion-paused .steps article{opacity:1!important;transform:none!important}
@media(max-width:760px){.motion-band{padding:22px 0}.motion-track{gap:28px}.motion-track>span{gap:28px}.motion-toggle{bottom:8px;right:6%}.hero-bottom{padding-bottom:35px}.motion-enabled.scrolled header{height:65px}.hero-art img{animation-duration:9s!important}}
@media(prefers-reduced-motion:reduce){.motion-enabled .hero h1 .motion-line>span,.motion-enabled .observed h2 .motion-line>span{transform:none}.motion-enabled .observed .photo{clip-path:none}.motion-enabled .service,.motion-enabled .steps article{opacity:1;transform:none}.motion-track{animation:none!important}.motion-toggle{display:none}}

.hero-art:before{content:'';position:absolute;inset:10% 5%;border:1px solid #d9cbb64d;border-radius:50%;pointer-events:none;animation:loop-orbit 14s linear infinite}
.hero-art:after{content:'';position:absolute;width:16px;height:16px;left:12%;top:20%;background:#d9cbb6;border-radius:50%;animation:loop-dot 5s ease-in-out infinite;pointer-events:none}
@keyframes loop-orbit{0%{transform:rotate(0deg) scale(.88)}50%{transform:rotate(180deg) scale(1.04)}100%{transform:rotate(360deg) scale(.88)}}
@keyframes loop-dot{0%,100%{transform:translate(0,0)}50%{transform:translate(30px,200px)}}
.hero h1{position:relative}.hero h1 .motion-line:last-child>span{animation:headline-in 1.2s .3s both,headline-breathe 5s 2s ease-in-out infinite}
@keyframes headline-breathe{0%,100%{transform:translateX(0)}50%{transform:translateX(14px)}}
.motion-track{animation:band-flow 24s linear infinite}
.motion-paused .hero h1 .motion-line>span{transform:none!important;opacity:1!important}
@media(prefers-reduced-motion:reduce){.hero-art:before,.hero-art:after,.hero h1 .motion-line:last-child>span{animation:none!important}}

:root{--loop-beige:#D9CBB6;--loop-green:#153F3A;--loop-offwhite:#F6F3EC;--loop-charcoal:#242723}p{color:var(--loop-charcoal)}.hero p,.dark p,.featured p,.closing p{color:inherit}

.photo.lifestyle{padding:0;margin:0;overflow:hidden;min-height:0;height:440px;border:0}.lifestyle img{width:100%;height:100%;object-fit:cover;display:block}@media(max-width:760px){.photo.lifestyle{height:340px}}

.photo.founder-photo{padding:0;margin:0;min-height:0;background:none;border:0;display:block}.founder-photo img{display:block;width:100%;height:auto}.founder-extra{border-color:#d9cbb644;margin-top:15px}.founder-extra summary{font-size:12px;letter-spacing:1px}.founder-extra figure{margin-top:20px!important}.founder-roles{display:flex;flex-wrap:wrap;gap:30px;margin:30px 0;padding:20px 0;border-block:1px solid #d9cbb644;font-size:18px}.founder-roles small{display:block;text-transform:uppercase;font-size:10px;letter-spacing:2px;margin-top:8px}

#about{grid-template-columns:1.2fr 1fr;gap:6%}.founder-photos{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.founder-photos .founder-photo{transition-delay:.12s!important}.founder-photo img{height:auto;object-fit:contain}@media(max-width:760px){#about{grid-template-columns:1fr}.founder-photos{grid-template-columns:1fr;gap:22px}}

.founder-photos{grid-template-columns:1fr}.founder-photos .founder-photo{max-width:540px}

.photo.original-photo{display:block;min-height:0;padding:0;margin:0;background:transparent;border:0;overflow:hidden}
.original-photo img{display:block;width:100%;height:auto;filter:none}
.original-photo figcaption{font-size:9px;letter-spacing:1.5px;text-transform:uppercase;margin-top:14px;line-height:1.5}
.freedom-photo{max-width:390px;justify-self:end}.service .service-media{width:100%;max-width:340px;margin:0 auto 35px;}.service-media img{aspect-ratio:9/16;object-fit:contain}.rail .original-photo{flex:0 0 30%;min-height:0;overflow:visible}.rail{align-items:flex-start}.rail .original-photo img{height:auto}.rail .result-photo{flex-basis:37%}
@media(max-width:760px){.freedom-photo{max-width:100%;justify-self:stretch}.service .service-media{max-width:100%}.rail .original-photo,.rail .result-photo{flex-basis:84%}}

.care-intro{display:grid;grid-template-columns:1fr 1.05fr;gap:7%;align-items:center;margin-bottom:45px}.care-intro h2{font-size:clamp(40px,5.5vw,80px)}.care-intro p{margin-bottom:0}.care-detail{justify-self:stretch}.process-photos{display:grid;grid-template-columns:1fr 1fr;gap:30px;max-width:640px;margin:40px auto}.process-photos .photo img{height:auto;object-fit:contain}.process-photos .photo:last-child{margin-top:50px}
@media(max-width:760px){.care-intro{grid-template-columns:1fr;gap:30px;margin-bottom:30px}.care-intro h2{font-size:clamp(42px,10vw,72px)}.process-photos{gap:18px;width:100%;margin-block:30px}.process-photos .photo:last-child{margin-top:30px}.process-photos figcaption{font-size:8px;letter-spacing:1px}}

/* Original service illustrations, displayed without edits. */
.service-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px}.service-heading .num{line-height:1.5}.service-symbol-frame{display:block;position:relative;width:76px;height:76px;flex:0 0 76px;overflow:hidden}.service-symbol-frame .service-symbol{display:block;position:absolute;height:auto;max-width:none;border-radius:0;object-fit:contain}
@media(max-width:760px){.service-symbol-frame{width:64px;height:64px;flex-basis:64px}.service-heading{gap:12px;margin-bottom:18px}}

/* Laundry partner: original logo and photograph. */
.partner-section{display:grid;grid-template-columns:1.15fr 1fr;gap:8%;align-items:center;border-top:1px solid #153f3a30}.partner-copy h2{font-size:clamp(40px,5.1vw,72px)}.partner-logo{display:block;width:150px;height:auto;margin:28px 0}.partner-copy .partner-rating{font-size:12px;line-height:1.7;max-width:410px;margin-bottom:24px}.partner-address{display:block;margin-bottom:24px}.partner-photo{max-width:430px;justify-self:end}.service p a{text-decoration:underline;text-underline-offset:4px}
@media(max-width:760px){.partner-section{grid-template-columns:1fr;gap:35px}.partner-copy h2{font-size:clamp(40px,9.5vw,68px)}.partner-logo{width:125px}.partner-photo{max-width:100%;justify-self:stretch}}

/* Opening photo order selected by THE LOOP. */
.freedom-photo{width:100%;max-width:100%}.care-intro .care-detail{width:100%;max-width:280px;justify-self:center}
@media(max-width:760px){.care-intro .care-detail{max-width:340px}}

[hidden]{display:none!important}

.closing-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;position:relative;z-index:1}

/* Contrast comes from the surrounding layout; original delivery pixels stay intact. */
.service.featured .service-symbol-frame{background:#f6f3ec;border-radius:4px;outline:8px solid #f6f3ec;outline-offset:0}.lisbon-photo{width:100%;max-width:440px;justify-self:end}@media(max-width:760px){.lisbon-photo{max-width:100%;justify-self:stretch}}

.service .reception-photo img{aspect-ratio:auto;height:auto}

/* Delivery photograph: an uninterrupted moment between services and our partner. */
.services .delivery-moment{width:100%;max-width:900px;margin:70px auto 0}
@media(max-width:760px){.services .delivery-moment{margin-top:42px}}
