/* =====================================================================
   Carmo Jr. · páginas das casas (casa-lago/, casa-dia/, casa-colin/, casa-dadiva/)
   Mesmo sistema da home: paleta tirada das fotos dele, Cormorant + Inter,
   grão por cima, topo escuro com a logo branca. Sem build, sem biblioteca.
   Criado em 16/10/2026, quando o cliente pediu uma página por casa.
   ===================================================================== */

:root{
  --areia:#F2EFEA;
  --areia-2:#E7E1D8;
  --madeira:#957B63;
  --madeira-esc:#4E331B;
  --cacau:#241A12;
  --texto:#241A12;
  --texto-2:rgba(36,26,18,.62);
  --claro:#F7F5F2;
  --claro-2:rgba(247,245,242,.68);
  --linha:rgba(36,26,18,.14);
  --gut:22px;
  --topo:env(safe-area-inset-top,0px);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:'Inter',-apple-system,'Helvetica Neue',Arial,sans-serif;
  background:var(--areia);color:var(--texto);
  font-size:16px;line-height:1.6;font-weight:400;overflow-x:hidden;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}

body::after{
  content:'';position:fixed;inset:0;z-index:60;pointer-events:none;opacity:.26;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
  mix-blend-mode:multiply;
}

.serif{font-family:'Cormorant Garamond',Georgia,serif;font-weight:300;letter-spacing:-.01em}
.eyebrow{font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;font-weight:500;color:var(--texto-2)}
.wrap{padding-left:var(--gut);padding-right:var(--gut)}

.rv{opacity:0;transform:translateY(26px);transition:opacity .9s cubic-bezier(.2,.7,.3,1),transform .9s cubic-bezier(.2,.7,.3,1)}
.rv.in{opacity:1;transform:none}

/* ------------------------------------------------------------------ topo */
header{
  position:fixed;top:0;left:0;right:0;z-index:50;
  padding:calc(14px + var(--topo)) var(--gut) 14px;
  display:flex;align-items:center;justify-content:space-between;
  transition:background .4s ease,padding .4s ease;
}
header.solto{background:rgba(36,26,18,.9);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding-top:11px;padding-bottom:11px}
.marca{display:block;line-height:0}
.marca img{height:27px;width:auto}
.btn-topo{
  font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:500;
  border:1px solid rgba(247,245,242,.5);color:var(--claro);
  padding:9px 15px;border-radius:100px;white-space:nowrap;
}

/* ------------------------------------------------------------------ hero da casa */
.c-hero{position:relative;height:78svh;min-height:480px;display:flex;align-items:flex-end;overflow:hidden;background:var(--cacau);color:var(--claro)}
.c-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:ken 22s ease-in-out infinite alternate}
@keyframes ken{from{transform:scale(1.02)}to{transform:scale(1.1)}}
.c-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(36,26,18,.42) 0%,rgba(36,26,18,.08) 34%,rgba(36,26,18,.82) 100%)}
.c-hero-txt{position:relative;z-index:2;padding:0 var(--gut) 40px;width:100%}
.voltar{display:inline-flex;gap:8px;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:rgba(247,245,242,.75);margin-bottom:22px}
.c-hero .eyebrow{color:rgba(247,245,242,.7)}
.c-hero h1{font-size:clamp(50px,15vw,112px);line-height:.98;letter-spacing:-.02em;margin-top:10px}
.c-hero h1 em{font-style:italic;color:#E4D5C4}

/* ------------------------------------------------------------------ texto da casa */
.c-intro{padding-top:56px;padding-bottom:16px}
.c-lead{font-family:'Cormorant Garamond',Georgia,serif;font-weight:300;font-size:clamp(25px,6.6vw,36px);line-height:1.22;letter-spacing:-.01em;color:var(--texto)}
.c-intro p+p{margin-top:16px;font-size:15px;line-height:1.75;color:var(--texto-2);max-width:56ch}
.ficha{margin-top:24px;display:flex;flex-wrap:wrap;gap:7px}
.ficha span{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--texto-2);border:1px solid var(--linha);padding:6px 11px;border-radius:100px}

/* ------------------------------------------------------------------ galeria
   no celular cada foto ocupa a largura inteira, sem corte, com o ambiente embaixo */
.c-galeria{padding:40px 0 84px;display:flex;flex-direction:column;gap:44px}
.f img{width:100%;height:auto;background:var(--areia-2)}
.f figcaption{padding:14px var(--gut) 0}
.f figcaption b{display:block;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;color:var(--madeira)}
.f figcaption span{display:block;margin-top:7px;font-size:14px;line-height:1.65;color:var(--texto-2);max-width:44ch}

/* ------------------------------------------------------------------ CTA */
.c-cta{background:var(--cacau);color:var(--claro);padding:76px var(--gut) 70px}
.c-cta h2{font-family:'Cormorant Garamond',serif;font-weight:300;font-size:clamp(32px,9vw,52px);line-height:1.06;letter-spacing:-.02em}
.c-cta h2 em{font-style:italic;color:#C9A883}
.c-cta p{margin-top:14px;font-size:14.5px;line-height:1.7;color:rgba(247,245,242,.76);max-width:36ch}
.zap{
  margin-top:26px;display:inline-flex;align-items:center;gap:11px;
  background:var(--claro);color:var(--cacau);padding:16px 26px;border-radius:100px;
  font-size:13px;font-weight:500;letter-spacing:.04em;box-shadow:0 24px 60px rgba(0,0,0,.25);
  transition:transform .3s ease;
}
.zap:active{transform:scale(.97)}
.zap svg{width:17px;height:17px;flex:none}

/* ------------------------------------------------------------------ outras casas */
.c-outras{background:var(--cacau);color:var(--claro);padding:6px var(--gut) 64px;border-top:1px solid rgba(247,245,242,.1)}
.c-outras .eyebrow{color:rgba(247,245,242,.55);margin:40px 0 18px}
.outras{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.outras a{display:block}
.outras .ph{aspect-ratio:4/5;overflow:hidden;background:#1b1410}
.outras img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.7,.3,1)}
.outras a:hover img{transform:scale(1.04)}
.outras h3{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:18px;margin-top:10px;line-height:1.1}

footer{background:var(--cacau);color:rgba(247,245,242,.44);padding:24px var(--gut) 90px;font-size:11px;letter-spacing:.06em;border-top:1px solid rgba(247,245,242,.1)}
footer .l{display:flex;justify-content:space-between;gap:10px 14px;flex-wrap:wrap}

/* CTA flutuante: entra quando o hero sai, some no CTA do fim */
.flut{
  position:fixed;left:var(--gut);right:var(--gut);bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:45;
  display:flex;align-items:center;justify-content:center;gap:10px;
  background:var(--cacau);color:var(--claro);padding:15px 22px;border-radius:100px;
  font-size:13px;font-weight:500;letter-spacing:.03em;box-shadow:0 14px 40px rgba(36,26,18,.34);
  opacity:0;transform:translateY(120%);transition:opacity .5s ease,transform .5s cubic-bezier(.2,.7,.3,1);pointer-events:none;
}
.flut.on{opacity:1;transform:none;pointer-events:auto}
.flut svg{width:16px;height:16px}

/* ------------------------------------------------------------------ desktop
   foto em pé fica ao lado do texto, alternando o lado; foto deitada ocupa a largura toda */
@media (min-width:900px){
  :root{--gut:56px}
  body{font-size:17px}
  .marca img{height:32px}
  .c-hero{height:92svh}
  .c-hero-txt,.c-intro,.c-galeria,.c-cta>div,.c-outras>div,footer .l{max-width:1240px;margin-left:auto;margin-right:auto}
  .c-hero-txt{padding-bottom:64px}
  .c-intro{padding-top:96px;display:grid;grid-template-columns:1.15fr .85fr;gap:24px 72px;align-items:start}
  .c-intro .c-lead{grid-row:span 3}
  .c-intro p+p{margin-top:6px}
  .ficha{margin-top:8px}
  .c-galeria{padding:72px var(--gut) 120px;gap:88px}
  .f{display:grid;grid-template-columns:7fr 5fr;gap:56px;align-items:end}
  .f.inv img{order:2}
  .f figcaption{padding:0 0 10px}
  .f.l{grid-template-columns:1fr;gap:0}
  .f.l figcaption{padding-top:16px}
  .c-cta{padding:110px var(--gut) 100px}
  .c-outras{padding-bottom:90px}
  .outras{gap:20px}
  .outras h3{font-size:24px}
  .flut{left:auto;right:36px;bottom:32px;padding:16px 26px}
}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition-duration:.01ms!important}
  .rv{opacity:1;transform:none}
}

/* ------------------------------------------------- movimento ao rolar
   Aprovado em 17/10/2026. As classes (cortina, mascara, acende, px-fundo) só
   entram pelo JS, então sem JS ou com movimento reduzido tudo aparece parado.
   O .mv do <html> existe pra ganhar das regras de foto que já têm transition. */
.mv img.cortina{clip-path:inset(100% 0 0 0);scale:1.16;transition:clip-path 1.25s cubic-bezier(.77,0,.18,1),scale 1.8s cubic-bezier(.2,.7,.3,1),transform 1.1s cubic-bezier(.2,.7,.3,1)}
.mv .f img.cortina{scale:1}
.mv img.cortina.aberta{clip-path:inset(0 0 0 0);scale:1}
.px-fundo{position:absolute;left:0;top:-14%;width:100%;height:128%!important}
.mascara .mw{display:inline-block;clip-path:inset(-.5em -.3em -.12em -.3em)}
.mascara .mi{display:inline-block;translate:0 130%;transition:translate 1.05s cubic-bezier(.2,.75,.25,1)}
.mascara.sobe .mi{translate:0 0}
.mascara.pronto .mw{clip-path:none}
.acende .aw{opacity:.16;transition:opacity .35s ease}
.acende .aw.on{opacity:1}
