
:root{--ink:#11110f;--paper:#f3f0e9;--soft:#ded8cc;--white:#fff;--muted:#6d6a64;--line:rgba(17,17,15,.16);--accent:#b99b67;--pad:clamp(1.25rem,5vw,5.8rem);--display:"Italiana",Georgia,serif;--sans:"DM Sans",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-weight:300;line-height:1.6;overflow-x:hidden}body.menu-open,body.lightbox-open{overflow:hidden}a{color:inherit;text-decoration:none}img{display:block;width:100%}button{font:inherit;color:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.page-loader{position:fixed;inset:0;z-index:999;background:var(--ink);color:var(--white);display:grid;place-items:center;transition:opacity .7s ease,visibility .7s ease}.page-loader span{font-family:var(--display);font-size:clamp(3rem,9vw,8rem);letter-spacing:.08em}.loaded .page-loader{opacity:0;visibility:hidden}
.header{position:fixed;z-index:100;inset:0 0 auto;height:92px;padding:0 var(--pad);display:flex;align-items:center;justify-content:space-between;color:var(--white);border-bottom:1px solid rgba(255,255,255,.18);transition:.35s ease}.header.scrolled{height:72px;color:var(--ink);background:rgba(243,240,233,.92);backdrop-filter:blur(18px);border-color:var(--line)}.logo{width:clamp(175px,17vw,260px);position:relative;z-index:102}.logo img{filter:invert(1);max-height:45px;object-fit:contain;object-position:left center;transition:.35s}.header.scrolled .logo img{filter:none}.menu{display:flex;gap:clamp(1.2rem,2.8vw,3rem)}.menu a{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;position:relative}.menu a:after{content:"";position:absolute;left:0;right:100%;bottom:-.45rem;height:1px;background:currentColor;transition:right .3s}.menu a:hover:after{right:0}.menu-toggle{display:none;background:none;border:0;width:42px;height:42px;position:relative;z-index:102}.menu-toggle span:not(.sr-only){position:absolute;left:8px;right:8px;height:1px;background:currentColor;transition:.3s}.menu-toggle span:first-child{top:17px}.menu-toggle span:nth-child(2){top:25px}.menu-open .menu-toggle span:first-child{top:21px;transform:rotate(45deg)}.menu-open .menu-toggle span:nth-child(2){top:21px;transform:rotate(-45deg)}
.hero,.project-hero{position:relative;min-height:100svh;color:var(--white);overflow:hidden}.hero{display:flex;align-items:flex-end;padding:11rem var(--pad) 6rem}.hero-image,.quote-image{position:absolute;inset:-5%;background:url("../images/hero.webp") center 52%/cover no-repeat;will-change:transform}.hero-shade,.quote-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,5,4,.78),rgba(5,5,4,.19) 70%),linear-gradient(0deg,rgba(5,5,4,.54),transparent 55%)}.hero-copy{position:relative;z-index:2;max-width:980px}.kicker,.index-label{margin:0 0 1.4rem;font-size:.66rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase}.hero h1,.project-title h1{font-family:var(--display);font-weight:400;letter-spacing:-.045em;line-height:.86;margin:0}.hero h1{font-size:clamp(4.2rem,10vw,9.8rem)}.hero h1 em{display:block;color:var(--accent);font-style:normal}.hero-lead{max-width:560px;font-size:clamp(1rem,1.4vw,1.2rem);margin:2.3rem 0 0}.hero-actions{display:flex;align-items:center;gap:2rem;margin-top:2.5rem}.btn{min-height:54px;padding:.85rem 1.6rem;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;transition:.25s}.btn:hover{transform:translateY(-2px)}.btn-light{background:var(--white);color:var(--ink)}.btn-dark{background:var(--ink);color:var(--white)}.underlink{display:inline-block;padding-bottom:.35rem;border-bottom:1px solid currentColor;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase}.underlink.dark{color:var(--ink)}.scroll-cue{position:absolute;z-index:3;right:var(--pad);bottom:3rem;display:flex;align-items:center;gap:1rem;transform:rotate(90deg);transform-origin:right center;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase}.scroll-cue i{width:64px;height:1px;background:rgba(255,255,255,.7)}
.section{padding:clamp(6rem,10vw,11rem) var(--pad)}.manifesto-grid,.project-intro-grid,.materials-grid,.contact-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:clamp(3rem,9vw,10rem);align-items:start}.display{margin:0;font-family:var(--display);font-size:clamp(3.1rem,6.7vw,7rem);font-weight:400;line-height:.98;letter-spacing:-.045em}.body-copy{max-width:560px;color:var(--muted);font-size:1.04rem}.body-copy p:first-child{margin-top:.4rem}.section-top{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem;margin-bottom:clamp(3rem,7vw,6rem)}.section-note{margin:0;max-width:340px;color:var(--muted)}
.projects{background:#f8f6f1}.project-media{display:block;position:relative;height:min(67vw,880px);overflow:hidden}.project-media img,.editorial-item img,.studio-image img,.full-bleed img,.project-gallery img{height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}.project-media:hover img,.editorial-item button:hover img,.project-gallery button:hover img{transform:scale(1.025)}.view-pill{position:absolute;right:1.5rem;bottom:1.5rem;background:rgba(255,255,255,.92);padding:.75rem 1rem;font-size:.62rem;letter-spacing:.13em;text-transform:uppercase}.featured-meta{display:flex;justify-content:space-between;gap:2rem;padding:1.7rem 0 5rem;border-bottom:1px solid var(--line)}.featured-meta>div:first-child{display:flex;align-items:baseline;gap:1.4rem}.featured-meta span{font-size:.65rem;letter-spacing:.18em;color:var(--muted)}.featured-meta h2{margin:0;font-family:var(--display);font-size:clamp(2.7rem,5.2vw,5rem);font-weight:400}.meta-right{text-align:right}.meta-right p{margin:0;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.editorial-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(2rem,7vw,8rem);align-items:start;margin-top:clamp(5rem,9vw,9rem)}.editorial-item{margin:0}.editorial-item button,.full-bleed button,.project-gallery button{display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:zoom-in}.editorial-item.large{height:min(66vw,780px)}.editorial-item.narrow{height:min(65vw,690px)}.editorial-item.offset{margin-top:8rem}.editorial-item figcaption,.project-gallery figcaption{margin-top:1rem;font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.studio{display:grid;grid-template-columns:1.06fr .94fr;background:var(--ink);color:var(--white)}.studio-image{min-height:850px}.studio-image img{height:100%;object-fit:cover}.studio-copy{display:flex;flex-direction:column;justify-content:center}.studio-copy>p:not(.index-label){max-width:580px;color:rgba(255,255,255,.65)}.studio-copy .underlink{margin-top:2rem}
.services{background:var(--paper)}.service-rows{border-top:1px solid var(--line)}.service{display:grid;grid-template-columns:70px minmax(250px,.9fr) minmax(280px,1.1fr);gap:2rem;align-items:center;min-height:160px;border-bottom:1px solid var(--line);transition:.3s}.service:hover{padding-left:1rem;background:rgba(185,155,103,.08)}.service>span{font-size:.65rem;letter-spacing:.16em;color:var(--muted)}.service h3{margin:0;font-family:var(--display);font-size:clamp(2rem,3.5vw,3.5rem);font-weight:400}.service p{margin:0;color:var(--muted)}
.quote-section{position:relative;min-height:82svh;display:grid;place-items:center;color:var(--white);overflow:hidden}.quote-image{background-image:url("../images/stairs-detail.webp")}.quote-section blockquote{position:relative;z-index:2;margin:0;padding:var(--pad);max-width:1100px;text-align:center;font-family:var(--display);font-size:clamp(3rem,7vw,7rem);line-height:1.05}
.contact{background:#e8e2d6}.contact-grid{align-items:end}.contact-grid .btn{margin-top:2.4rem}.contact-details{border-top:1px solid var(--line)}.contact-details div{display:grid;grid-template-columns:120px 1fr;gap:1rem;padding:1.25rem 0;border-bottom:1px solid var(--line)}.contact-details span{font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.contact-details p,.contact-details a{margin:0}
footer{padding:4rem var(--pad);display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;background:var(--ink);color:var(--white)}footer img{width:min(260px,55vw);filter:invert(1)}footer p{margin:.2rem 0;text-align:right;color:rgba(255,255,255,.55);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase}.whatsapp-float{position:fixed;z-index:90;right:1.2rem;bottom:1.2rem;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:var(--white);font-size:.62rem;letter-spacing:.1em}
.reveal{opacity:0;transform:translateY(36px);transition:opacity .85s ease,transform .85s cubic-bezier(.2,.7,.2,1)}.reveal.visible{opacity:1;transform:none}
.project-hero{display:flex;align-items:flex-end}.project-hero>img{position:absolute;inset:0;height:100%;object-fit:cover}.project-title{position:relative;z-index:2;width:100%;padding:10rem var(--pad) 5rem}.project-title h1{font-size:clamp(5rem,16vw,15rem)}.project-quick{display:flex;flex-wrap:wrap;gap:1rem 2.5rem;margin-top:2.4rem;font-size:.66rem;letter-spacing:.15em;text-transform:uppercase}.full-bleed{height:min(72vw,920px)}.full-bleed img{height:100%;object-fit:cover}.facts{display:grid;grid-template-columns:repeat(5,1fr);padding-top:0;padding-bottom:0;background:var(--line);gap:1px}.facts div{min-height:190px;background:var(--paper);padding:2rem}.facts span{display:block;margin-bottom:1.2rem;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.facts strong{font-family:var(--display);font-size:1.45rem;font-weight:400;line-height:1.25}.project-gallery{display:flex;flex-direction:column;gap:clamp(3rem,8vw,9rem)}.project-gallery figure{margin:0}.gallery-wide{height:min(68vw,850px)}.gallery-pair{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,7vw,8rem);align-items:start}.gallery-pair figure{height:min(69vw,760px)}.gallery-pair .offset{margin-top:8rem}.materials{background:var(--ink);color:var(--white)}.material-list{border-top:1px solid rgba(255,255,255,.2)}.material-list div{display:grid;grid-template-columns:60px 1fr;align-items:center;min-height:105px;border-bottom:1px solid rgba(255,255,255,.2)}.material-list span{font-size:.62rem;letter-spacing:.14em;color:var(--accent)}.material-list p{margin:0;font-family:var(--display);font-size:clamp(1.8rem,3.3vw,3.2rem)}.project-contact{min-height:70svh;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.project-contact .btn{margin-top:2.5rem}
.lightbox{position:fixed;inset:0;z-index:500;background:rgba(10,10,9,.97);display:grid;grid-template-columns:70px 1fr 70px;align-items:center;opacity:0;visibility:hidden;transition:.3s}.lightbox.open{opacity:1;visibility:visible}.lightbox figure{margin:0;height:88vh;display:flex;flex-direction:column;align-items:center;justify-content:center}.lightbox img{max-width:100%;max-height:82vh;width:auto;height:auto;object-fit:contain}.lightbox figcaption{margin-top:1rem;color:rgba(255,255,255,.6);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase}.lightbox button{border:0;background:none;color:var(--white);cursor:pointer;font-size:1.6rem}.lightbox-close{position:absolute;right:1.5rem;top:1rem;font-size:2.3rem!important}
@media(max-width:900px){.menu-toggle{display:block}.menu{position:fixed;inset:0;background:var(--ink);color:var(--white);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;opacity:0;visibility:hidden;transition:.3s}.menu-open .menu{opacity:1;visibility:visible}.menu a{font-family:var(--display);font-size:2.2rem;letter-spacing:0;text-transform:none}.manifesto-grid,.project-intro-grid,.materials-grid,.contact-grid{grid-template-columns:1fr}.studio{grid-template-columns:1fr}.studio-image{min-height:68svh}.service{grid-template-columns:55px 1fr}.service p{grid-column:2}.facts{grid-template-columns:1fr 1fr}.facts div:last-child{grid-column:1/-1}.header.menu-open .logo img,.menu-open .logo img{filter:invert(1)}}
@media(max-width:640px){.hero{padding-bottom:4rem}.hero-actions{align-items:flex-start;flex-direction:column;gap:1.4rem}.scroll-cue{display:none}.section-top{flex-direction:column}.featured-meta{flex-direction:column}.meta-right{text-align:left}.editorial-grid,.gallery-pair{grid-template-columns:1fr}.editorial-item.offset,.gallery-pair .offset{margin-top:0}.editorial-item.large,.editorial-item.narrow,.gallery-wide,.gallery-pair figure{height:118vw;max-height:680px}.service{grid-template-columns:42px 1fr;gap:1rem}.facts{grid-template-columns:1fr}.facts div:last-child{grid-column:auto}.project-title h1{font-size:clamp(4.8rem,25vw,8rem)}footer{align-items:flex-start;flex-direction:column}footer p{text-align:left}.lightbox{grid-template-columns:45px 1fr 45px}.lightbox figure{height:82vh}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.hero-image,.quote-image{transform:none!important}.page-loader{display:none}}


/* Contact form and WhatsApp restoration */
.contact-heading{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:clamp(2rem,8vw,8rem);align-items:end;margin-bottom:clamp(3rem,7vw,6rem)}
.contact-heading>p{max-width:520px;margin:0 0 .7rem;color:var(--muted)}
.contact-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.6fr);gap:clamp(3rem,8vw,8rem);align-items:start}
.contact-form{border-top:1px solid var(--line);padding-top:1.6rem}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem 2rem}
.contact-form label{display:flex;flex-direction:column;gap:.65rem}
.contact-form label>span{font-size:.62rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.contact-form input,.contact-form select,.contact-form textarea{width:100%;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:.8rem 0;background:transparent;color:var(--ink);font-family:var(--sans);font-size:1rem;outline:none;transition:border-color .25s}
.contact-form textarea{resize:vertical;min-height:145px}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{border-color:var(--ink)}
.contact-form select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 14px) 50%,calc(100% - 9px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.form-full{grid-column:1/-1}
.form-actions{display:flex;align-items:center;gap:1.5rem;margin-top:2rem}
.form-note{max-width:430px;margin:0;color:var(--muted);font-size:.73rem;line-height:1.5}
.form-status{min-height:1.5rem;margin-top:1rem;font-size:.82rem}
.contact-quick{display:block!important}
.contact-quick .underlink{margin-top:.7rem}
.whatsapp-float{position:fixed;z-index:120;right:1.25rem;bottom:1.25rem;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#25d366;color:#fff;box-shadow:0 12px 30px rgba(0,0,0,.24);transition:transform .25s ease,box-shadow .25s ease}
.whatsapp-float:hover{transform:translateY(-4px) scale(1.04);box-shadow:0 17px 38px rgba(0,0,0,.3)}
.whatsapp-float svg{width:30px;height:30px;fill:currentColor}
.whatsapp-float:after{content:"WhatsApp";position:absolute;right:70px;padding:.55rem .75rem;background:var(--ink);color:#fff;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;opacity:0;transform:translateX(8px);pointer-events:none;transition:.25s}
.whatsapp-float:hover:after{opacity:1;transform:none}
@media(max-width:900px){.contact-heading,.contact-layout{grid-template-columns:1fr}}
@media(max-width:640px){.form-grid{grid-template-columns:1fr}.form-full{grid-column:auto}.form-actions{align-items:flex-start;flex-direction:column}.whatsapp-float{width:54px;height:54px}.whatsapp-float:after{display:none}}


/* Portfolio expansion — CASA GH + CASA BAEZA */
.portfolio-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,5vw,6rem)}
.portfolio-card .project-media{height:min(62vw,760px)}
.portfolio-card .featured-meta{padding-bottom:2rem}
.process-section{background:#f8f6f1}
.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.5rem,3vw,3rem)}
.process-grid figure{margin:0}
.process-grid img{height:min(42vw,520px);object-fit:cover}
.process-grid figcaption{margin-top:1rem;font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
@media(max-width:900px){
  .portfolio-grid{grid-template-columns:1fr}
  .portfolio-card .project-media{height:min(105vw,760px)}
  .process-grid{grid-template-columns:1fr}
  .process-grid img{height:min(120vw,680px)}
}


/* Agenda en línea */
.menu-booking{border-bottom:1px solid currentColor;padding-bottom:.15rem}
.booking-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:3rem;margin:2.5rem 0 4rem;padding:clamp(1.5rem,3vw,3rem);border:1px solid rgba(17,17,15,.18);background:#f8f6f1}
.booking-eyebrow{display:block;margin-bottom:.8rem;font-size:.65rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.booking-card h3{margin:0 0 .8rem;font-family:"Italiana",serif;font-size:clamp(1.8rem,3vw,3.1rem);font-weight:400;line-height:1.05}
.booking-card p{max-width:45rem;margin:0;color:var(--muted)}
.booking-button{white-space:nowrap}
.project-actions{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}
@media(max-width:760px){
  .booking-card{grid-template-columns:1fr;gap:1.5rem}
  .booking-button{width:100%;text-align:center}
  .menu-booking{border:0;padding-bottom:0}
}


/* FINAL RELEASE */
.skip-link{position:fixed;left:1rem;top:-5rem;z-index:1000;background:#fff;color:#11110f;padding:.8rem 1rem;transition:top .2s}.skip-link:focus{top:1rem}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid currentColor;outline-offset:4px}
.gallery-heading{margin:.45rem 0 0;font-family:var(--display);font-size:clamp(2.6rem,5vw,5.5rem);font-weight:400}
.lightbox-trigger{display:block;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:zoom-in;overflow:hidden}
.lightbox-trigger img{transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.lightbox-trigger:hover img{transform:scale(1.018)}
.work-process{background:#f8f6f1}.process-steps{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.process-step{min-height:330px;padding:2rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column}
.process-step>span{font-size:.62rem;letter-spacing:.14em;color:var(--muted)}.process-step h3{margin:auto 0 1.1rem;font-family:var(--display);font-size:clamp(2rem,3vw,3rem);font-weight:400}.process-step p{margin:0;color:var(--muted);line-height:1.65}
.faq-list{max-width:1050px;margin-left:auto;border-top:1px solid var(--line)}.faq details{border-bottom:1px solid var(--line)}.faq summary{position:relative;cursor:pointer;list-style:none;padding:1.8rem 3rem 1.8rem 0;font-family:var(--display);font-size:clamp(1.5rem,2.5vw,2.4rem)}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:'+';position:absolute;right:.4rem;top:50%;transform:translateY(-50%);font-family:var(--sans);font-size:1.4rem}.faq details[open] summary:after{content:'−'}.faq details p{max-width:760px;margin:0;padding:0 0 2rem;color:var(--muted);line-height:1.7}
.next-project{background:#f8f6f1}.next-project>a{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:2rem;margin-top:1.4rem;padding:2.2rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.next-project a>span{font-family:var(--display);font-size:clamp(2.8rem,7vw,7rem)}.next-project a>em{font-style:normal;color:var(--muted);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}.next-project a>b{font-size:2rem;font-weight:400}
.mobile-contact-bar{display:none}
.project-media img{transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .5s}.project-media:hover img{transform:scale(1.025);filter:brightness(.88)}
@media(max-width:1000px){.process-steps{grid-template-columns:1fr 1fr}.process-step{min-height:270px}}
@media(max-width:640px){body{padding-bottom:62px}.process-steps{grid-template-columns:1fr}.process-step{min-height:230px}.next-project>a{grid-template-columns:1fr auto;gap:1rem}.next-project a>em{grid-column:1/-1;grid-row:2}.mobile-contact-bar{position:fixed;z-index:110;left:0;right:0;bottom:0;height:62px;display:grid;grid-template-columns:1fr 1fr;background:#11110f;color:#fff;border-top:1px solid rgba(255,255,255,.2)}.mobile-contact-bar a{display:grid;place-items:center;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase}.mobile-contact-bar a+a{background:#e8e2d6;color:#11110f}.whatsapp-float{bottom:76px}.gallery-heading{font-size:2.8rem}}
