/* Prestige Valley — quiet luxury */
:root{
  --ivory:#f4efe6; --stone:#ebe4d8; --sand:#d8ccb6; --ink:#1f1d1a; --ink-2:#3a3631;
  --muted:#615a50;--bronze-t:#7a5f3c; --bronze:#a2825a; --bronze-2:#c8ab82; --line:rgba(31,29,26,.14);
  --sans:'Jost',system-ui,-apple-system,'Segoe UI',sans-serif;
  --pad:clamp(1.25rem,5vw,5.5rem); --max:1440px;
  --ease:cubic-bezier(.22,.61,.36,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--ivory);color:var(--ink);font:300 1.0625rem/1.75 var(--sans);letter-spacing:.01em;-webkit-font-smoothing:antialiased}
img,video{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
::selection{background:var(--sand)}
h1,h2,h3{font-family:var(--sans);font-weight:300;line-height:1.12;letter-spacing:-.015em;margin:0}
h1{font-size:clamp(2.4rem,5.6vw,5.2rem)}
h2{font-size:clamp(1.9rem,3.6vw,3.3rem)}
h3{font-size:clamp(1.25rem,1.7vw,1.6rem);font-weight:400;letter-spacing:0}
p{margin:0 0 1.2em}
em{font-style:normal;font-weight:inherit;color:var(--bronze-t)}
.hero em,.cta em,.sec--ink em{color:var(--bronze-2)}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}
.eyebrow{display:inline-block;font:400 .72rem/1 var(--sans);letter-spacing:.32em;text-transform:uppercase;color:var(--bronze-t);margin-bottom:1.6rem}
.lead{font-family:var(--sans);font-size:clamp(1.2rem,1.7vw,1.5rem);line-height:1.6;font-weight:300;color:var(--ink-2)}
.muted{color:var(--muted)}
.rule{width:56px;height:1px;background:var(--bronze);border:0;margin:2rem 0}
.skip{position:absolute;left:-9999px}.skip:focus{left:1rem;top:1rem;z-index:99;background:var(--ink);color:var(--ivory);padding:.6rem 1rem}

/* Botões / links */
.btn{display:inline-flex;align-items:center;gap:.9rem;font:400 .74rem/1 var(--sans);letter-spacing:.28em;text-transform:uppercase;padding:1.15rem 2rem;border:1px solid currentColor;transition:background .5s var(--ease),color .5s var(--ease)}
.btn:hover{background:var(--ink);color:var(--ivory);border-color:var(--ink)}
.btn--light{color:var(--ivory)}.btn--light:hover{background:var(--ivory);color:var(--ink);border-color:var(--ivory)}
.link{font:400 .74rem/1 var(--sans);letter-spacing:.28em;text-transform:uppercase;padding-bottom:.5rem;background:linear-gradient(var(--bronze),var(--bronze)) 0 100%/100% 1px no-repeat;transition:background-size .5s var(--ease)}
.link:hover{background-size:40% 1px}

/* Cabeçalho */
.hd{position:fixed;inset:0 0 auto;z-index:50;transition:background .6s var(--ease),color .6s var(--ease),padding .6s var(--ease);color:var(--ink)}
.hd__in{display:flex;align-items:center;justify-content:space-between;max-width:none;padding:1.6rem var(--pad)}
.hd__logo svg{height:21px;width:auto;display:block;transition:height .5s var(--ease)}
.hd{--lg1:#806701;--lg2:#03335b}
.hd--over{color:var(--ivory);--lg1:#fff;--lg2:#fff}
.hd.is-solid{background:rgba(244,239,230,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--ink);box-shadow:0 1px 0 var(--line)}
.hd.is-solid .hd__in{padding-top:.9rem;padding-bottom:.9rem}
.hd.is-solid .hd__logo svg{height:18px}
.hd.is-solid{--lg1:#806701;--lg2:#03335b}
.menu-open .hd{--lg1:#fff;--lg2:#fff}
.nav{display:flex;gap:2.6rem}
.nav a{font:400 .72rem/1 var(--sans);letter-spacing:.28em;text-transform:uppercase;padding:.4rem 0;position:relative}
.nav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:currentColor;transition:right .5s var(--ease)}
.nav a:hover::after,.nav a[aria-current=page]::after{right:0}
.burger{display:none;background:none;border:0;color:inherit;cursor:pointer;padding:.5rem;width:44px;height:44px;position:relative}
.burger span{position:absolute;left:10px;right:10px;height:1px;background:currentColor;transition:transform .5s var(--ease),top .5s var(--ease)}
.burger span:nth-child(1){top:17px}.burger span:nth-child(2){top:26px}
.menu-open .burger span:nth-child(1){top:22px;transform:rotate(45deg)}
.menu-open .burger span:nth-child(2){top:22px;transform:rotate(-45deg)}
@media (max-width:960px){
  .burger{display:block;z-index:60}
  .nav{position:fixed;inset:0;flex-direction:column;justify-content:center;align-items:center;gap:2.2rem;background:var(--ink);color:var(--ivory);opacity:0;visibility:hidden;transition:opacity .6s var(--ease),visibility .6s}
  .nav a{font:300 1.5rem/1 var(--sans);letter-spacing:.3em}
  .menu-open .nav{opacity:1;visibility:visible}
  .menu-open .hd{color:var(--ivory);background:transparent;box-shadow:none}
  .hd__logo svg{height:16px}
}

/* Hero */
.hero{position:relative;height:100svh;min-height:560px;overflow:hidden;color:var(--ivory);display:flex;align-items:flex-end}
.hero__media{position:absolute;inset:0}
.hero__media img,.hero__media video{width:100%;height:100%;object-fit:cover;animation:kb 22s var(--ease) both}
.hero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,18,15,.38) 0%,rgba(20,18,15,0) 30%,rgba(20,18,15,.05) 45%,rgba(20,18,15,.68) 100%)}
@keyframes kb{from{transform:scale(1.08)}to{transform:scale(1)}}
.hero__txt{position:relative;padding:0 var(--pad) clamp(3rem,9vh,7rem);max-width:1100px}
.hero__txt .eyebrow{color:var(--bronze-2)}
.hero__txt{text-shadow:0 1px 24px rgba(0,0,0,.25)}
@media (max-width:760px){.hero__scroll{display:none}.eyebrow{letter-spacing:.22em}}
.hero__txt p{max-width:34rem;font-size:1.05rem;opacity:.9;margin-top:1.6rem}
.hero__scroll{position:absolute;right:var(--pad);bottom:clamp(3rem,9vh,7rem);writing-mode:vertical-rl;font:400 .66rem/1 var(--sans);letter-spacing:.32em;text-transform:uppercase;display:flex;align-items:center;gap:1rem}
.hero__scroll::after{content:"";width:1px;height:64px;background:currentColor;opacity:.6;animation:sc 2.6s var(--ease) infinite}
@keyframes sc{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.hero--page{height:72svh;min-height:460px}

/* Secções */
.sec{padding:clamp(5rem,12vw,11rem) 0}
.sec--stone{background:var(--stone)}
.sec--ink{background:var(--ink);color:var(--ivory)}.sec--ink .lead{color:var(--sand)}.sec--ink .muted{color:#a69d8f}
.intro{display:grid;grid-template-columns:1fr 1.5fr;gap:clamp(2rem,8vw,9rem);align-items:start}
.intro h2{position:sticky;top:7rem}
@media (max-width:860px){.intro{grid-template-columns:1fr}.intro h2{position:static}}
.cols3{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(2rem,4vw,4rem);margin-top:clamp(3rem,6vw,6rem)}
.pillar{border-top:1px solid var(--line);padding-top:2rem}
.pillar .num{font:400 .72rem/1 var(--sans);letter-spacing:.3em;color:var(--bronze-t);display:block;margin-bottom:1.4rem}
.pillar h3{margin-bottom:1rem}
@media (max-width:860px){.cols3{grid-template-columns:1fr}}

/* Split imagem/texto */
.split{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(2rem,7vw,8rem);align-items:center}
.split--rev{grid-template-columns:1fr 1.15fr}.split--rev .split__img{order:2}
.split__img{overflow:hidden}
.split__img img{width:100%;aspect-ratio:4/5;object-fit:cover}
@media (max-width:860px){.split,.split--rev{grid-template-columns:1fr}.split--rev .split__img{order:0}}

/* Projetos em destaque */
.sec-hd{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:clamp(2.5rem,5vw,5rem);flex-wrap:wrap}
.feat{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(1rem,2.4vw,2.4rem)}
.feat .card:nth-child(1){grid-column:1/8}
.feat .card:nth-child(2){grid-column:8/13;margin-top:clamp(4rem,12vw,12rem)}
.feat .card:nth-child(3){grid-column:2/7}
.feat .card:nth-child(3){margin-top:clamp(2rem,4vw,4rem)}
.feat .card:nth-child(4){grid-column:8/13;margin-top:clamp(6rem,14vw,14rem)}
@media (max-width:760px){.feat .card{grid-column:1/-1!important;margin-top:0!important}}
.card{display:block}
.card__img{overflow:hidden;background:var(--sand)}
.card__img img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform 1.6s var(--ease)}
.card--wide .card__img img{aspect-ratio:3/2}
.card:hover .card__img img{transform:scale(1.045)}
.card__meta{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding-top:1.2rem}
.card__meta h3{font-size:clamp(1.4rem,1.9vw,1.75rem)}
.card__meta span{font:400 .68rem/1.4 var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--muted);white-space:nowrap}

/* Banda de escadas */
.stairs{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(.75rem,1.6vw,1.5rem)}
.stairs img{width:100%;aspect-ratio:3/4;object-fit:cover}
@media (max-width:760px){.stairs{grid-template-columns:1fr 1fr}.stairs figure:last-child{display:none}}
figure{margin:0}
figcaption{font:400 .68rem/1.4 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--muted);padding-top:.9rem}
.sec--ink figcaption{color:#a69d8f}

/* Citação */
.quote{max-width:62rem;margin:0 auto;text-align:center}
.quote blockquote{margin:0;font:300 clamp(1.5rem,2.8vw,2.5rem)/1.45 var(--sans);letter-spacing:-.01em}
.quote cite{display:block;margin-top:2rem;font:400 .7rem/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;font-style:normal;color:var(--bronze-t)}

/* Processo */
.steps{counter-reset:s;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1.5rem,3vw,3rem);margin-top:clamp(3rem,6vw,5rem)}
.steps li{list-style:none;border-top:1px solid var(--line);padding-top:1.8rem}
.sec--ink .steps li{border-color:rgba(244,239,230,.18)}
.steps li::before{counter-increment:s;content:"0" counter(s);display:block;font:300 2.6rem/1 var(--sans);color:var(--bronze-t);margin-bottom:1.4rem}
.steps h3{font-size:1.55rem;margin-bottom:.8rem}
.steps{padding:0}
@media (max-width:960px){.steps{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.steps{grid-template-columns:1fr}}

/* CTA */
.cta{position:relative;color:var(--ivory);text-align:center;overflow:hidden}
.cta__bg{position:absolute;inset:0}.cta__bg img{width:100%;height:100%;object-fit:cover}
.cta__bg::after{content:"";position:absolute;inset:0;background:rgba(20,18,15,.55)}
.cta .wrap{position:relative;padding-top:clamp(6rem,14vw,12rem);padding-bottom:clamp(6rem,14vw,12rem)}
.cta h2{max-width:48rem;margin:0 auto 2.6rem}
.cta .eyebrow{color:var(--bronze-2)}

/* Portfólio */
.filters{display:flex;flex-wrap:wrap;gap:.6rem 2rem;margin-bottom:clamp(2.5rem,5vw,4.5rem);border-bottom:1px solid var(--line);padding-bottom:1.4rem}
.filters button{background:none;border:0;padding:.4rem 0;cursor:pointer;font:400 .72rem/1 var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--muted);position:relative}
.filters button[aria-pressed=true]{color:var(--ink)}
.filters button[aria-pressed=true]::after{content:"";position:absolute;left:0;right:0;bottom:-1.45rem;height:1px;background:var(--ink)}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(2rem,3vw,3rem) clamp(1rem,2vw,2rem)}
.grid .card:nth-child(3n+2){margin-top:clamp(0rem,5vw,5rem)}
.grid .card.is-hidden{display:none}
@media (max-width:960px){.grid{grid-template-columns:1fr 1fr}.grid .card:nth-child(3n+2){margin-top:0}.grid .card:nth-child(2n){margin-top:3rem}}
@media (max-width:560px){.grid{grid-template-columns:1fr}.grid .card:nth-child(2n){margin-top:0}}

/* Página de projeto */
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:2rem 0;margin:clamp(3rem,6vw,5rem) 0}
.facts dt{font:400 .66rem/1 var(--sans);letter-spacing:.28em;text-transform:uppercase;color:var(--muted);margin-bottom:.7rem}
.facts dd{margin:0;font:300 1.1rem/1.4 var(--sans)}
@media (max-width:760px){.facts{grid-template-columns:1fr 1fr}}
.gallery{display:grid;grid-template-columns:1fr 1fr;gap:clamp(.75rem,1.6vw,1.5rem)}
.gallery figure:first-child{grid-column:1/-1}
.gallery img{width:100%;object-fit:cover;aspect-ratio:4/5}
.gallery figure:first-child img{aspect-ratio:16/9}
@media (max-width:560px){.gallery{grid-template-columns:1fr}}
.next{display:flex;justify-content:space-between;align-items:center;gap:2rem;border-top:1px solid var(--line);padding-top:2.4rem;margin-top:clamp(4rem,8vw,7rem)}

/* Serviços */
.svc{display:grid;grid-template-columns:5rem 1fr 1.1fr;gap:clamp(1.5rem,4vw,4rem);border-top:1px solid var(--line);padding:clamp(2.5rem,5vw,4.5rem) 0;align-items:start}
.svc .num{font:300 2.6rem/1 var(--sans);color:var(--bronze)}
.svc ul{list-style:none;padding:0;margin:1.4rem 0 0}
.svc li{padding:.7rem 0;border-bottom:1px solid var(--line);font-size:.98rem}
.svc img{width:100%;aspect-ratio:3/2;object-fit:cover}
@media (max-width:860px){.svc{grid-template-columns:1fr}}

/* Contactos */
.contact{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(3rem,8vw,9rem);align-items:center}
.contact img{width:100%;aspect-ratio:4/5;object-fit:cover}
@media (max-width:860px){.contact{grid-template-columns:1fr}}
.mail{font:300 clamp(1.3rem,2.4vw,2rem)/1.3 var(--sans);letter-spacing:.02em;border-bottom:1px solid var(--bronze);padding-bottom:.3rem;word-break:break-word}

/* Texto longo */
.prose{max-width:46rem}
.prose h2{font-size:2rem;margin:3rem 0 1rem}
.prose ul{padding-left:1.2rem}

/* Rodapé */
.ft{background:var(--ink);color:#bdb4a5;padding:clamp(4rem,8vw,7rem) 0 2rem;font-size:.92rem}
.ft__top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:3rem;padding-bottom:clamp(3rem,6vw,5rem);border-bottom:1px solid rgba(244,239,230,.12)}
.ft__logo svg{width:min(320px,100%);height:auto}
.ft__logo{--lg1:var(--bronze-2);--lg2:#fff}
.ft h4{font:400 .66rem/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--bronze-2);margin:0 0 1.4rem}
.ft ul{list-style:none;padding:0;margin:0;display:grid;gap:.7rem}
.ft a:hover{color:var(--ivory)}
.ft__bot{display:flex;justify-content:space-between;gap:1rem;padding-top:2rem;font-size:.78rem;letter-spacing:.06em;flex-wrap:wrap}
@media (max-width:760px){.ft__top{grid-template-columns:1fr}}

/* Revelação ao scroll */
.rv{opacity:0;transform:translateY(28px);transition:opacity 1.3s var(--ease),transform 1.3s var(--ease)}
.rv.is-in{opacity:1;transform:none}
.rv-img{clip-path:inset(12% 0 0 0);transition:clip-path 1.6s var(--ease)}
.rv-img.is-in{clip-path:inset(0)}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}.rv-img{clip-path:none}}
.nojs .rv{opacity:1;transform:none}.nojs .rv-img{clip-path:none}

/* 404 */
.nf{min-height:80vh;display:flex;align-items:center}

/* Acessibilidade e usabilidade (ot-qa-site) */
.sec--ink .eyebrow,.sec--ink .steps li::before,.hero .eyebrow{color:var(--bronze-2)}
.cta .eyebrow{color:#e3cfae}
.hd__logo{display:block;padding:12px 0}
.link{display:inline-block;padding-top:.9rem}
.ft a{display:inline-block;padding:.35rem 0}
.ft .muted{color:#a69d8f}
.ft__legal{display:flex;flex-wrap:wrap;gap:.2rem 1.4rem}
.ft__ck{background:none;border:0;padding:.35rem 0;font:inherit;color:inherit;cursor:pointer;letter-spacing:inherit}
.ft__ck:hover{color:var(--ivory)}
.prose .ft__ck{padding:0;font-size:inherit}
@media (max-width:760px){
  .eyebrow,.link,.card__meta span,figcaption,.facts dt,.ft h4,.pillar .num,.filters button,.quote cite{font-size:12px}
  .filters button{padding:.8rem 0}
  .ft__bot{flex-direction:column}
}
#ck{--ck-bg:#1f1d1a;--ck-fg:#f4efe6;--ck-acc:#c8ab82}

/* QA 2 */
.prose h1{line-height:1.2;margin-bottom:1.4rem}
.card__meta{flex-wrap:wrap;row-gap:.3rem}
.card__meta span{white-space:normal}
@media (max-width:760px){
  .ft a,.ft__ck{padding:.75rem 0}
  .ft ul{gap:0}
  .btn{font-size:12px}
}
@media (max-width:760px){.filters button[aria-pressed=true]::after{bottom:.45rem}}
