@font-face{font-family:Bodoni;src:url('/assets/bodoni-regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
:root{--paper:#f3f0e9;--ink:#131313;--muted:#6b6864;--line:#d5d0c7;--photo-grade:saturate(var(--photo-saturation,.54)) sepia(.16) contrast(.93) brightness(var(--photo-brightness,1.06));--serif:Bodoni,'Bodoni MT',Didot,serif;--sans:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:108px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button{border:0;background:none}button:focus-visible,a:focus-visible{outline:2px solid currentColor;outline-offset:6px}img{max-width:100%;display:block}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400}em,i{font-style:normal;font-weight:400}button,a{touch-action:manipulation}::selection{background:#222;color:#fff}.skip-link{position:fixed;top:-100px;left:20px;background:white;z-index:999;padding:14px}.skip-link:focus{top:15px}.section-wrap{max-width:1512px;margin:auto;padding-left:64px;padding-right:64px}.eyebrow{font-size:10px;letter-spacing:.16em;line-height:1.7}.header{height:96px;display:flex;align-items:center;justify-content:space-between;padding:0 64px;border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(243,240,233,.97);z-index:30}.wordmark{font-family:var(--serif);font-size:36px;letter-spacing:-1.9px;white-space:nowrap;line-height:1}.header nav{display:flex;gap:36px;font-size:12px}.header nav a{position:relative;padding:15px 0}.header nav a:after{content:'';height:1px;background:var(--ink);position:absolute;bottom:9px;left:0;right:0;transform:scaleX(0);transform-origin:left;transition:transform .2s}.header nav a:hover:after,.header nav a.active:after{transform:scaleX(1)}.header nav a:last-child{margin-left:18px}.menu-toggle{display:none}.hero{padding-top:37px}.hero-top{display:flex;justify-content:space-between}.hero-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;padding:33px 0 46px}h1{font-size:clamp(68px,7.7vw,118px);line-height:.97;letter-spacing:-5px}.hero-aside{max-width:266px;padding-bottom:9px}.hero-aside p{font-size:15px;line-height:1.7;color:#595959;margin-bottom:28px}.text-link{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:13px 0;border-bottom:1px solid var(--ink);font-size:12px}.text-link span{font-size:22px;transition:transform .2s}.text-link:hover span{transform:translate(3px,-3px)}.hero-image{position:relative;display:block;padding:0;width:100%;height:440px;overflow:hidden;text-align:left;background:#444;color:white}.hero-image img{width:100%;height:100%;object-fit:cover;object-position:center 49%;filter:var(--photo-grade);transition:transform .8s}.hero-image:hover img{transform:scale(1.025)}.hero-image:after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.66))}.hero-image-label{position:absolute;bottom:28px;left:32px;right:32px;display:flex;align-items:flex-end;justify-content:space-between;z-index:1}.hero-image-label small{display:block;font-size:9px;letter-spacing:.18em;margin-bottom:9px}.hero-image-label strong{font-family:var(--serif);font-size:35px;font-weight:400;display:block}.hero-image-label span span{font-size:11px;display:block;margin-top:6px}.circle-arrow{border:1px solid #bbb9;width:47px;height:47px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px}.image-foot{display:flex;justify-content:space-between;margin-top:14px;font-size:10px;color:var(--muted)}.projects{padding-top:108px;padding-bottom:108px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:34px}.section-heading .eyebrow{margin-bottom:20px}.section-heading h2{font-size:58px;letter-spacing:-2.4px;line-height:1.12}.section-note{font-size:12px;color:var(--muted);line-height:1.7;padding-bottom:4px}.filter-row{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 0;margin-bottom:32px}.filters{display:flex;gap:9px}.filters button{font-size:11px;padding:11px 14px;border-radius:2px}.filters button.selected{background:var(--ink);color:white}.filters button:hover:not(.selected){background:#e8e8e5}.filters sup{margin-left:8px;font-size:8px}#project-count{font-size:10px;color:var(--muted)}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:43px 26px}.project-card{text-align:left;padding:0;display:block;width:100%}.card-image{display:block;position:relative;aspect-ratio:1.3;overflow:hidden;background:#e1e1de}.card-image img{width:100%;height:100%;object-fit:cover;filter:var(--photo-grade);transition:transform .65s,filter .65s}.project-card:hover .card-image img{transform:scale(1.045)}.card-image .card-open{position:absolute;bottom:12px;right:12px;background:var(--paper);width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:20px;opacity:0;transition:opacity .2s}.project-card:hover .card-open,.project-card:focus-visible .card-open{opacity:1}.card-meta{display:flex;justify-content:space-between;align-items:center;margin-top:17px;font-size:9px;color:var(--muted);letter-spacing:.02em;gap:10px}.project-card h3{font-size:27px;line-height:1.18;letter-spacing:-.7px;margin-top:8px}.card-location{display:block;font-size:11px;color:var(--muted);margin-top:9px}.studio{background:var(--ink);color:var(--paper)}.studio>.section-wrap{padding-top:50px}.studio-top{display:flex;justify-content:space-between;align-items:center}.studio-mark{font-family:var(--serif);font-size:74px;letter-spacing:-4px;line-height:1}.studio-body{display:grid;grid-template-columns:1.2fr 1fr;gap:100px;padding:34px 0 72px}.studio-body h2{font-size:65px;letter-spacing:-2.9px;line-height:1.15;max-width:600px}.studio-copy{padding-top:8px}.studio-copy p{line-height:1.8;font-size:14px;max-width:470px}.studio-copy p+p{margin-top:19px;color:#b4b4b0}.services{display:flex;gap:9px;flex-wrap:wrap;margin-top:28px}.services span{font-size:10px;border:1px solid #51514f;padding:9px 12px}.contact{border-top:1px solid #494949;padding:64px 0 65px;display:flex;justify-content:space-between;gap:40px;scroll-margin-top:15px}.contact .eyebrow{margin-bottom:22px}.contact h2{font-size:62px;letter-spacing:-2px;line-height:1.08}.contact-cta{display:flex;align-items:center;justify-content:space-between;width:220px;border-bottom:1px solid #ccc;padding:17px 0;font-size:13px;margin-top:18px}.contact-cta span{font-size:26px}.contact address{width:calc((100% - 100px)/2.2);font-style:normal;align-self:center}.contact address p{font-size:12px;color:#b4b4b0;margin-bottom:20px}.contact address>a{display:block;font-size:19px;line-height:1.8;width:fit-content}.contact address>a:hover{text-decoration:underline;text-underline-offset:5px}.contact address .instagram{font-size:12px;margin-top:28px}footer{border-top:1px solid #494949;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:26px 0 32px}footer .wordmark{font-size:27px}footer>span,footer>a:last-child{font-size:10px;color:#b4b4b0}dialog{border:0;padding:0;max-width:1440px;width:calc(100% - 64px);max-height:calc(100dvh - 64px);background:var(--paper);color:var(--ink)}dialog::backdrop{background:#000b;backdrop-filter:blur(6px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;padding:24px 30px;border-bottom:1px solid var(--line)}.dialog-head .wordmark{font-size:28px}.icon-button{height:44px;width:44px;font-size:23px}.dialog-body{display:grid;grid-template-columns:1.7fr 1fr;gap:44px;padding:30px}.gallery-stage{position:relative;background:#e8e1d7;display:flex;align-items:center;justify-content:center;height:clamp(260px,48vh,570px);overflow:hidden;touch-action:pan-y}.gallery-stage>img{width:100%;height:100%;object-fit:contain;filter:var(--photo-grade)}.image-arrow{position:absolute;top:calc(50% - 23px);width:44px;height:46px;background:#f3f0e9ed;font-size:25px}.image-arrow.prev{left:12px}.image-arrow.next{right:12px}.image-arrow[hidden]{display:none}.gallery-counter{position:absolute;bottom:12px;right:12px;background:#171717df;color:white;font-size:10px;padding:7px 10px}.thumbnails{display:flex;gap:9px;margin-top:12px;overflow-x:auto;padding:4px}.thumbnails button{padding:0;border:2px solid transparent;flex:0 0 65px;height:49px;opacity:.6}.thumbnails button[aria-pressed=true]{border-color:var(--ink);opacity:1}.thumbnails img{width:100%;height:100%;object-fit:cover;filter:var(--photo-grade)}.image-caption{font-size:10px;color:var(--muted);line-height:1.6;margin:10px 4px 0}.project-detail{padding-top:11px}.project-detail h2{font-size:49px;line-height:1.05;letter-spacing:-1.9px;margin:20px 0 23px}.project-detail>p:not(.eyebrow){line-height:1.8;font-size:13px;color:#555}dl{margin:29px 0}dl div{display:grid;grid-template-columns:90px 1fr;gap:18px;border-top:1px solid var(--line);padding:12px 0;font-size:11px;line-height:1.5}dt{color:var(--muted)}dd{margin:0}.dialog-footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:16px 26px;font-size:11px}.dialog-footer button{padding:12px 4px;font-size:12px}.dialog-footer>span{font-size:10px;color:var(--muted)}
@media(min-width:1600px){.header{padding-left:max(64px,calc((100vw - 1384px)/2));padding-right:max(64px,calc((100vw - 1384px)/2))}}
@media(max-width:1100px){.section-wrap{padding-left:38px;padding-right:38px}.header{padding:0 38px}.hero-image{height:380px}.project-grid{gap:33px 20px}.project-card h3{font-size:24px}.studio-body{gap:50px}.studio-body h2{font-size:54px}.contact address{width:42%}.section-heading h2{font-size:49px}.dialog-body{gap:25px}.project-detail h2{font-size:38px}}
@media(max-width:760px){html{scroll-padding-top:88px}.header{height:76px;padding:0 22px}.header .wordmark{font-size:31px}.menu-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:44px;height:44px;margin-right:-9px}.menu-toggle span{display:block;height:1px;width:23px;background:var(--ink);transition:transform .2s}.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)}.header nav{display:none;position:absolute;top:76px;left:0;right:0;background:var(--paper);padding:20px 25px 28px;border-bottom:1px solid var(--line);gap:4px;box-shadow:0 14px 20px #0001}.header nav.open{display:flex;flex-direction:column}.header nav a{font-size:18px;width:fit-content}.header nav a:last-child{margin:0}.section-wrap{padding-left:22px;padding-right:22px}.hero{padding-top:22px}.hero-top .eyebrow{font-size:8px;letter-spacing:.09em}.locations{display:none}.hero-intro{display:block;padding-top:28px;padding-bottom:28px}h1{font-size:clamp(61px,13.8vw,92px);letter-spacing:-3.2px}.hero-aside{max-width:none;display:flex;gap:24px;justify-content:space-between;align-items:flex-end;margin-top:26px;padding-bottom:0}.hero-aside p{font-size:12px;line-height:1.6;margin:0;max-width:200px}.hero-aside .text-link{font-size:10px;gap:12px;min-width:125px;padding:8px 0}.hero-image{height:340px}.hero-image img{object-position:52% center}.hero-image-label{left:20px;right:20px;bottom:22px}.hero-image-label small{font-size:8px;letter-spacing:.1em}.hero-image-label strong{font-size:26px}.hero-image-label span span{font-size:10px}.circle-arrow{width:37px;height:37px;font-size:19px}.image-foot{font-size:8px;gap:16px;line-height:1.5}.image-foot>span:last-child{flex-shrink:0}.projects{padding-top:68px;padding-bottom:66px}.section-heading{display:block;margin-bottom:24px}.section-heading .eyebrow{margin-bottom:17px}.section-heading h2{font-size:41px;letter-spacing:-1.9px;max-width:350px}.section-note{margin-top:18px;font-size:11px}.section-note br{display:none}.filter-row{display:block;padding:8px 0 10px;margin-bottom:26px}.filters{gap:2px;flex-wrap:wrap}.filters button{font-size:10px;padding:11px 10px}.filters button:first-child{padding-left:12px}.filters sup{margin-left:4px}#project-count{display:block;font-size:9px;margin:9px 0 2px 3px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:29px 16px}.card-image{aspect-ratio:.95}.project-card h3{font-size:23px;letter-spacing:-.6px;line-height:1.13}.card-meta{font-size:8px;margin-top:13px;align-items:flex-start}.card-meta>span:first-child{max-width:125px}.card-location{font-size:9px;line-height:1.5}.card-image .card-open{opacity:1;width:27px;height:27px;bottom:8px;right:8px;font-size:16px}.studio>.section-wrap{padding-top:34px}.studio-mark{font-size:58px}.studio-body{display:block;padding:26px 0 44px}.studio-body h2{font-size:47px;letter-spacing:-1.9px;line-height:1.12}.studio-copy{padding-top:27px}.studio-copy p{font-size:13px}.services{gap:7px;margin-top:23px}.services span{font-size:9px;padding:9px 10px}.contact{display:block;padding:40px 0}.contact h2{font-size:49px}.contact address{width:100%;margin-top:38px}.contact address>a{font-size:18px}.contact address .instagram{margin-top:18px}footer{flex-wrap:wrap;gap:22px;padding:25px 0}footer .wordmark{font-size:29px;flex-basis:100%}footer>span{flex:1}dialog{width:100%;max-width:100%;height:100dvh;max-height:100dvh;margin:0}.dialog-head{padding:13px 18px;position:sticky;top:0;background:var(--paper);z-index:2}.dialog-head .wordmark{font-size:25px}.dialog-head>.eyebrow{display:none}.dialog-body{display:block;padding:18px}.gallery-stage{height:39dvh;min-height:230px}.image-arrow{width:38px;height:42px}.thumbnails button{flex-basis:54px;height:43px}.project-detail{padding:22px 2px 10px}.project-detail h2{font-size:42px;margin-top:12px;margin-bottom:17px}.project-detail>p:not(.eyebrow){font-size:13px}dl{margin:22px 0}.dialog-footer{padding:10px 16px}.dialog-footer button{font-size:10px}.dialog-footer>span{font-size:9px}}
@media(max-width:360px){.section-wrap{padding-left:17px;padding-right:17px}.header{padding:0 17px}.hero-aside{gap:15px}.hero-aside .text-link{min-width:118px}.hero-image-label strong{font-size:23px}.project-grid{gap:26px 12px}.project-card h3{font-size:21px}.filters button{padding:10px 7px}.studio-body h2{font-size:41px}.contact address>a{font-size:17px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

/* Fakto / Framer: Bodoni romana y una gama fotográfica mediterránea contenida. */
.hero-panel{background:var(--ink);color:var(--paper);padding:28px 40px 40px;margin-bottom:36px}
.hero-panel .hero-top{align-items:center}
.hero-monogram{font-family:var(--serif);font-size:39px;line-height:1;letter-spacing:-2px}
.hero-panel .hero-intro{padding:30px 0 0;align-items:flex-end;gap:64px}
.hero-panel h1{font-size:clamp(54px,5.7vw,82px);line-height:1;letter-spacing:-3.2px}
.hero-panel .hero-aside{max-width:260px;padding-bottom:5px}
.hero-panel .hero-aside p{color:#d8d4cc;line-height:1.6}
.hero-panel .text-link{border-color:#8c8982}
.hero-image:after{background:linear-gradient(transparent,rgba(15,15,13,.56))}
.hero-image img[src*="masia-cover"],.card-image img[src*="masia-cover"],.gallery-stage>img[src*="masia-cover"],.thumbnails img[src*="masia-cover"]{--photo-brightness:1.15;--photo-saturation:.5}
.card-image img[src*="blanca"],.gallery-stage>img[src*="blanca"],.thumbnails img[src*="blanca"],.card-image img[src*="generala"],.gallery-stage>img[src*="generala"],.thumbnails img[src*="generala"]{--photo-saturation:.46}
@media(max-width:1100px){.hero-panel{padding:27px 32px 36px}.hero-panel .hero-intro{gap:32px}.hero-panel h1{font-size:64px;letter-spacing:-2.5px}.hero-panel .hero-aside{max-width:230px}}
@media(max-width:760px){.hero-panel{padding:23px 24px 27px;margin-bottom:24px}.hero-monogram{font-size:32px}.hero-panel .hero-top .eyebrow{font-size:8px}.hero-panel .hero-intro{display:block;padding-top:27px}.hero-panel h1{font-size:clamp(39px,8.6vw,60px);line-height:1.04;letter-spacing:-1.6px}.hero-panel .hero-aside{display:block;max-width:260px;margin-top:24px;padding:0}.hero-panel .hero-aside p{max-width:245px;font-size:12px}.hero-panel .text-link{width:158px;font-size:11px;margin-top:18px;padding:9px 0}.section-heading h2{font-size:39px}}
@media(max-width:360px){.hero-panel{padding-left:18px;padding-right:18px}.hero-panel h1{font-size:35px;letter-spacing:-1.3px}.hero-panel .hero-top .eyebrow{font-size:7px}.section-heading h2{font-size:35px}}
