/* ============================================================
   TECNITALENTOS — Sistema de design
   Lentes: ui-ux-pro-max · frontend-design · taste-design · Emil Kowalski
   Fontes: Fraunces (display) · Outfit (corpo) · Parisienne (assinatura)
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400..900;1,9..144,400..700&family=Outfit:wght@300;400;500;600;700&family=Dancing+Script:wght@500;600;700&display=swap');

:root{
  /* paleta — rosa velho calibrado, neutros quentes (sem preto/branco puros) */
  --canvas:#faf4f0;
  --surface:#fffdfb;
  --blush:#f4e7e3;
  --blush-2:#efdcd8;
  --ink:#2b1c22;
  --ink-soft:#5b4951;
  --muted:#8d7a80;
  --faint:#b3a3a8;
  --line:#ecddd8;
  --line-2:#e3d0cb;
  --rose:#b8697f;
  --rose-deep:#8d4a60;
  --rose-soft:#e3bcc7;
  --rose-tint:#f6e6ea;
  --plum:#311f29;       /* bandas escuras */
  --plum-2:#43293563;

  /* easings Emil Kowalski */
  --eo:cubic-bezier(.23,1,.32,1);
  --eio:cubic-bezier(.77,0,.175,1);
  --edraw:cubic-bezier(.32,.72,0,1);

  --r:16px; --r-lg:26px; --r-xl:36px;
  --maxw:1240px;
  --shadow-sm:0 1px 2px rgba(43,28,34,.04),0 4px 14px rgba(43,28,34,.05);
  --shadow:0 18px 50px -18px rgba(43,28,34,.22),0 6px 18px -8px rgba(43,28,34,.12);
  --shadow-rose:0 24px 60px -20px rgba(141,74,96,.45);
}

*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  font-family:'Outfit',ui-sans-serif,system-ui,sans-serif;
  background:var(--canvas); color:var(--ink-soft);
  font-size:17px; line-height:1.7; font-weight:400;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
body.lock{overflow:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
::selection{background:var(--rose-soft);color:var(--ink)}

h1,h2,h3,h4{font-family:'Fraunces',Georgia,serif;color:var(--ink);font-weight:560;line-height:1.04;letter-spacing:-.015em}
.serif{font-family:'Fraunces',serif}
.script{font-family:'Dancing Script',cursive;font-weight:400}

/* grão — pseudo fixo, só transform/opacity-safe */
body::after{
  content:'';position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.5;
  mix-blend-mode:multiply;
  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='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.045'/%3E%3C/svg%3E");
}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px}
.eyebrow{font-family:'Outfit',sans-serif;font-size:12px;font-weight:600;letter-spacing:.28em;text-transform:uppercase;color:var(--rose-deep)}
.eyebrow.line{display:inline-flex;align-items:center;gap:14px}
.eyebrow.line::before{content:'';width:30px;height:1px;background:var(--rose);display:inline-block}

/* ---------- Botões ---------- */
.btn{
  display:inline-flex;align-items:center;gap:10px;cursor:pointer;
  font-family:'Outfit',sans-serif;font-size:15px;font-weight:500;letter-spacing:.01em;
  padding:15px 28px;border-radius:50px;border:1px solid transparent;
  transition:transform 160ms var(--eo),background 220ms var(--eo),color 220ms var(--eo),box-shadow 220ms var(--eo),border-color 220ms var(--eo);
}
.btn svg{width:17px;height:17px;transition:transform 260ms var(--eo)}
.btn:active{transform:scale(.97)}
.btn-rose{background:var(--rose-deep);color:#fff;box-shadow:var(--shadow-sm)}
.btn-rose:hover{box-shadow:var(--shadow-rose)}
.btn-rose:hover svg{transform:translateX(4px)}
.btn-ink{background:var(--ink);color:#fff}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line-2)}
.btn-ghost:hover{border-color:var(--rose);color:var(--rose-deep)}
.btn-line{background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}
.btn-line:hover{background:#fff;color:var(--ink)}
.lnk{display:inline-flex;align-items:center;gap:9px;font-weight:600;color:var(--rose-deep);font-size:15px}
.lnk svg{width:16px;height:16px;transition:transform 260ms var(--eo)}
.lnk:hover svg{transform:translateX(4px)}

:focus-visible{outline:2.5px solid var(--rose);outline-offset:3px;border-radius:4px}
.skip{position:absolute;left:-9999px;top:0;z-index:300;background:var(--ink);color:#fff;padding:12px 18px;border-radius:0 0 10px 0}
.skip:focus{left:0}

/* ---------- Header ---------- */
.site-head{position:fixed;top:0;left:0;right:0;z-index:90;background:rgba(250,244,240,.9);backdrop-filter:blur(16px) saturate(1.4);border-bottom:1px solid var(--line);transition:box-shadow 320ms var(--eo)}
.site-head .bar{display:flex;align-items:center;justify-content:space-between;height:78px}
.site-head.scrolled{box-shadow:0 6px 24px -12px rgba(43,28,34,.18)}
.brand{display:flex;align-items:center;gap:13px}
.brand img{width:46px;height:46px;border-radius:50%;box-shadow:0 4px 14px rgba(141,74,96,.28)}
.brand .bt{display:flex;flex-direction:column;line-height:1}
.brand .bt b{font-family:'Fraunces',serif;font-size:21px;font-weight:600;color:var(--ink);letter-spacing:-.01em}
.brand .bt span{font-family:'Outfit',sans-serif;font-size:9px;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:var(--rose-deep);margin-top:4px}
.nav{display:flex;align-items:center;gap:34px}
.nav a.navl{position:relative;font-size:15px;font-weight:500;color:var(--ink-soft);padding:4px 0;transition:color 200ms var(--eo)}
.nav a.navl::after{content:'';position:absolute;left:0;bottom:-2px;height:1.5px;width:0;background:var(--rose);transition:width 280ms var(--eo)}
.nav a.navl:hover{color:var(--ink)}
.nav a.navl:hover::after,.nav a.navl[aria-current="page"]::after{width:100%}
.nav a.navl[aria-current="page"]{color:var(--rose-deep)}
.head-light .navl{color:rgba(255,255,255,.85)}
.head-light .navl:hover{color:#fff}
.head-light .brand .bt b{color:#fff}
.head-light.scrolled .navl{color:var(--ink-soft)}
.head-light.scrolled .navl:hover{color:var(--ink)}
.head-light.scrolled .brand .bt b{color:var(--ink)}
.burger{display:none;background:none;border:none;cursor:pointer;padding:8px;color:var(--ink)}
.head-light .burger{color:#fff}
.head-light.scrolled .burger{color:var(--ink)}
.burger svg{width:28px;height:28px}

/* ---------- Hero ---------- */
.firstview{min-height:100dvh;display:flex;flex-direction:column}
.hero{position:relative;flex:1 1 auto;display:flex;align-items:center;padding:120px 0 64px;overflow:hidden;background:var(--plum)}
.hero .hbg{position:absolute;inset:0;z-index:0}
.hero .hbg img{width:100%;height:100%;object-fit:cover;opacity:.84;transform:scale(1.05);animation:kenburns 26s var(--eio) infinite alternate}
.hero .glow{position:absolute;z-index:0;width:150%;height:150%;left:-25%;top:-30%;pointer-events:none;
  background:conic-gradient(from 0deg,transparent 0deg,rgba(216,140,163,.16) 40deg,transparent 110deg,transparent 220deg,rgba(184,105,127,.14) 270deg,transparent 330deg);
  filter:blur(36px);animation:spin 30s linear infinite}
@keyframes kenburns{to{transform:scale(1.14)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes drift1{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-34px,26px) scale(1.12)}}
@keyframes drift2{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(30px,-22px) scale(1.1)}}
.hero .hbg::after{content:'';position:absolute;inset:0;
  background:radial-gradient(125% 95% at 16% 32%,rgba(49,31,41,.42),rgba(49,31,41,.82) 72%),linear-gradient(180deg,rgba(49,31,41,.35),rgba(49,31,41,.6))}
.hero .blob{position:absolute;z-index:0;border-radius:50%;filter:blur(80px);opacity:.5}
.hero .blob.b1{width:520px;height:520px;top:-12%;right:-6%;background:radial-gradient(circle,var(--rose),transparent 65%);animation:drift1 17s ease-in-out infinite}
.hero .blob.b2{width:420px;height:420px;bottom:-14%;left:-8%;background:radial-gradient(circle,#d98ca3,transparent 60%);opacity:.32;animation:drift2 21s ease-in-out infinite}
.hero .wrap{position:relative;z-index:2;width:100%}
.hero .inner{max-width:880px;color:#fff}
.hero .eyebrow{color:var(--rose-soft);margin-bottom:24px}
.hero .eyebrow.line::before{background:var(--rose-soft)}
.hero .name{font-family:'Fraunces',serif;font-size:clamp(54px,10vw,132px);line-height:.96;color:#fff;font-weight:500;letter-spacing:-.025em;margin-bottom:14px;text-shadow:0 14px 50px rgba(0,0,0,.3)}
.reveal-letters .l{display:inline-block;opacity:0;transform:translateY(.5em);filter:blur(10px);animation:wordIn .75s var(--eo) forwards;will-change:transform,opacity,filter}
.hero .name .accent{color:var(--rose-soft)}
.hero h1{font-family:'Fraunces',serif;font-weight:340;font-size:clamp(24px,3.5vw,42px);color:rgba(255,255,255,.95);max-width:720px;line-height:1.12;margin-bottom:18px;letter-spacing:-.01em}
.hero h1 em{font-style:italic;color:var(--rose-soft)}
.hero .sub{font-size:17px;color:rgba(255,255,255,.72);max-width:520px;margin-bottom:38px;font-weight:300}
.hero .cta-row{display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.hero .since{position:absolute;right:32px;bottom:46px;z-index:2;writing-mode:vertical-rl;font-family:'Outfit',sans-serif;font-size:11px;letter-spacing:.4em;text-transform:uppercase;color:rgba(255,255,255,.45)}

/* reveal por palavra (hero) — blur->nítido, stagger */
.reveal-words{display:inline}
.reveal-words .w{display:inline-block;opacity:0;transform:translateY(.5em);filter:blur(8px);
  animation:wordIn .9s var(--eo) forwards}
@keyframes wordIn{to{opacity:1;transform:none;filter:blur(0)}}

/* ---------- Marquee disciplinas ---------- */
.marq{background:var(--ink);color:#fff;overflow:hidden;padding:20px 0;border-top:1px solid rgba(255,255,255,.08)}
.marq .track{display:flex;gap:0;width:max-content;animation:marq 38s linear infinite}
.marq:hover .track{animation-play-state:paused}
.marq .it{display:inline-flex;align-items:center;font-family:'Fraunces',serif;font-style:italic;font-size:22px;color:rgba(255,255,255,.86);padding:0 28px}
.marq .it::after{content:'·';margin-left:28px;color:var(--rose)}
@keyframes marq{to{transform:translateX(-50%)}}

/* ---------- Secções ---------- */
.section{padding:clamp(72px,10vw,128px) 0;position:relative;z-index:2}
.section.blush{background:var(--blush)}
.shead{max-width:640px;margin-bottom:64px}
.shead.center{margin-inline:auto;text-align:center}
.shead h2{font-size:clamp(34px,5vw,58px);margin:18px 0 0;font-weight:500}
.shead p{margin-top:20px;font-size:18px;color:var(--muted)}

/* about teaser — assimétrico */
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(40px,6vw,84px);align-items:center}
.split.rev{grid-template-columns:.95fr 1.05fr}
.split .media{position:relative}
.split .media img{width:100%;border-radius:var(--r-xl);box-shadow:var(--shadow);aspect-ratio:7/5;object-fit:cover}
.split .media .stamp{position:absolute;bottom:-28px;left:-22px;width:128px;height:128px;border-radius:50%;
  background:var(--rose-deep);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;
  box-shadow:var(--shadow-rose);text-align:center}
.split .media .stamp .y{font-family:'Fraunces',serif;font-size:30px;line-height:1}
.split .media .stamp .t{font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;margin-top:5px;opacity:.85}
.split h2{font-size:clamp(30px,4vw,46px);margin:16px 0 22px;font-weight:500}
.split p{font-size:17.5px;color:var(--ink-soft);margin-bottom:18px}
.split .marks{display:flex;gap:30px;margin:30px 0;flex-wrap:wrap}
.split .marks .mk b{font-family:'Fraunces',serif;font-size:30px;color:var(--rose-deep);display:block;line-height:1}
.split .marks .mk span{font-size:13px;color:var(--muted)}

/* áreas — zig-zag (sem grelha de cards iguais) */
.zig{display:flex;flex-direction:column;gap:clamp(56px,8vw,110px)}
.zrow{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,5vw,76px);align-items:center}
.zrow:nth-child(even) .zmedia{order:2}
.zmedia{position:relative;border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--shadow)}
.zmedia img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform 1.1s var(--eo)}
.zrow:hover .zmedia img{transform:scale(1.05)}
.zmedia .num{position:absolute;top:24px;left:26px;font-family:'Fraunces',serif;font-size:18px;color:#fff;
  background:rgba(43,28,34,.4);backdrop-filter:blur(6px);width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.3)}
.ztext .kick{font-size:13px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--rose-deep)}
.ztext h3{font-size:clamp(28px,3.6vw,44px);margin:14px 0 18px;font-weight:500}
.ztext p{font-size:17px;color:var(--ink-soft);margin-bottom:24px;max-width:48ch}
.ztext .chips{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:28px}
.ztext .chip{font-size:13.5px;font-weight:500;color:var(--ink-soft);background:var(--surface);border:1px solid var(--line-2);
  padding:8px 15px;border-radius:50px;transition:transform 200ms var(--eo),border-color 200ms var(--eo),color 200ms var(--eo)}
.ztext .chip:hover{transform:translateY(-2px);border-color:var(--rose);color:var(--rose-deep)}

/* banda SPA (full-bleed) */
.band{position:relative;min-height:62vh;display:flex;align-items:center;overflow:hidden;color:#fff}
.band img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.band::after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(49,31,41,.9),rgba(49,31,41,.5) 60%,rgba(49,31,41,.2))}
.band .wrap{position:relative;z-index:2}
.band .bx{max-width:560px}
.band h2{color:#fff;font-size:clamp(32px,4.5vw,52px);margin:16px 0 18px;font-weight:500}
.band p{color:rgba(255,255,255,.82);font-size:17px;margin-bottom:14px}
.band .hrs{display:flex;gap:36px;margin:24px 0 32px;flex-wrap:wrap}
.band .hrs .h b{display:block;font-family:'Fraunces',serif;font-size:17px;color:#fff}
.band .hrs .h span{font-size:13.5px;color:rgba(255,255,255,.65)}
.band .eyebrow{color:var(--rose-soft)}

/* projetos (discreto) */
.proj{display:grid;grid-template-columns:1fr auto;gap:48px;align-items:center;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);padding:clamp(32px,5vw,56px)}
.proj h3{font-size:clamp(24px,3vw,34px);margin:12px 0 14px;font-weight:500}
.proj p{color:var(--muted);font-size:16px;max-width:60ch;margin-bottom:8px}
.proj .meta{font-size:13.5px;color:var(--faint);margin-bottom:24px}
.proj .logos{display:flex;align-items:center;gap:24px;flex-wrap:wrap;padding-left:48px;border-left:1px solid var(--line)}
.proj .logos img{height:46px;width:auto}

/* CTA band */
.cta{background:var(--plum);color:#fff;text-align:center;position:relative;overflow:hidden}
.cta .blob{position:absolute;width:560px;height:560px;border-radius:50%;filter:blur(90px);opacity:.4;
  background:radial-gradient(circle,var(--rose),transparent 65%);top:-40%;left:50%;transform:translateX(-50%)}
.cta .wrap{position:relative;z-index:2}
.cta h2{color:#fff;font-size:clamp(34px,5vw,60px);font-weight:500;margin-bottom:20px}
.cta p{color:rgba(255,255,255,.72);max-width:520px;margin:0 auto 36px;font-size:18px;font-weight:300}

/* ---------- Forms ---------- */
.formcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);padding:clamp(28px,4vw,44px);box-shadow:var(--shadow-sm)}
.field{margin-bottom:18px}
.field label{display:block;font-family:'Outfit',sans-serif;font-size:13px;font-weight:600;color:var(--ink);margin-bottom:8px;letter-spacing:.01em}
.field label .req{color:var(--rose-deep)}
.field input,.field select,.field textarea{
  width:100%;padding:14px 16px;min-height:50px;font-family:'Outfit',sans-serif;font-size:15px;color:var(--ink);
  background:var(--canvas);border:1px solid var(--line-2);border-radius:14px;
  transition:border-color 200ms var(--eo),box-shadow 200ms var(--eo),background 200ms var(--eo)}
.field textarea{min-height:120px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--rose);box-shadow:0 0 0 4px var(--rose-tint);background:var(--surface)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.check{display:flex;gap:11px;align-items:flex-start;font-size:13.5px;color:var(--muted);margin:6px 0 22px}
.check input{margin-top:3px;width:17px;height:17px;accent-color:var(--rose-deep);flex-shrink:0}
form button[type=submit]{width:100%;justify-content:center}
.form-ok{display:none;text-align:center;padding:14px 0 6px}
.form-ok.show{display:block;animation:wordIn .5s var(--eo)}
.form-ok .ok{width:62px;height:62px;border-radius:50%;background:var(--rose-tint);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;color:var(--rose-deep)}
.form-ok .ok svg{width:30px;height:30px}
.form-ok h4{font-size:23px;margin-bottom:8px}
.form-ok p{color:var(--muted);font-size:15px}

/* ---------- Contacto info ---------- */
.cinfo{display:flex;flex-direction:column;gap:4px}
.cinfo .ci{display:flex;gap:18px;align-items:flex-start;padding:20px 0;border-bottom:1px solid var(--line)}
.cinfo .ci:last-child{border-bottom:none}
.cinfo .ci .ic{flex:0 0 48px;height:48px;border-radius:14px;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center}
.cinfo .ci .ic svg{width:21px;height:21px}
.cinfo .ci .l{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-weight:600;margin-bottom:4px}
.cinfo .ci .v{font-size:17px;color:var(--ink);font-weight:500}
.cinfo .ci .v small{display:block;font-size:13.5px;color:var(--muted);font-weight:400;margin-top:3px}

/* ---------- Redes sociais ---------- */
.socials{display:flex;gap:11px;align-items:center}
.socials a{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--line-2);background:var(--surface);color:var(--ink-soft);
  transition:transform .25s var(--eo),background .25s var(--eo),color .25s var(--eo),border-color .25s var(--eo)}
.socials a svg{width:18px;height:18px}
.socials a:hover{transform:translateY(-3px);border-color:var(--rose);color:var(--rose-deep)}
.hero .socials{margin-top:28px}
.hero .socials a{border-color:rgba(255,255,255,.32);background:rgba(255,255,255,.06);color:#fff}
.hero .socials a:hover{background:#fff;color:var(--ink);border-color:#fff}
.foot .socials{margin-top:20px}
.foot .socials a{border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.05);color:rgba(255,255,255,.8)}
.foot .socials a:hover{background:var(--rose-deep);color:#fff;border-color:var(--rose-deep)}

/* ---------- Mapa ao largo ---------- */
.mapwide{position:relative;width:100%;height:clamp(400px,56vh,580px);background:var(--blush);z-index:2}
.mapwide iframe{width:100%;height:100%;border:0;display:block;filter:grayscale(.12) contrast(1.02)}
.mapwide .mcard{position:absolute;bottom:34px;left:max(32px,calc(50vw - var(--maxw)/2 + 32px));
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px 28px;box-shadow:var(--shadow);max-width:330px}
.mapwide .mcard .eyebrow{margin-bottom:10px}
.mapwide .mcard b{font-family:'Fraunces',serif;font-weight:500;font-size:20px;color:var(--ink);display:block;margin-bottom:8px;letter-spacing:-.01em}
.mapwide .mcard p{font-size:14.5px;color:var(--muted);margin-bottom:14px}
@media (max-width:560px){.mapwide{height:440px}.mapwide .mcard{left:16px;right:16px;bottom:16px;max-width:none}}

/* ---------- Figuras (projeto cofinanciado — dados oficiais) ---------- */
.figs{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm)}
.figs .fig{background:var(--surface);padding:34px 22px;text-align:center}
.figs .fig b{font-family:'Fraunces',serif;font-weight:500;font-size:clamp(28px,3.4vw,38px);color:var(--rose-deep);display:block;line-height:1;letter-spacing:-.02em}
.figs .fig span{font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-top:10px;display:block;font-weight:600}
@media (max-width:760px){.figs{grid-template-columns:1fr 1fr}}

/* ---------- Galeria instalações (bento) ---------- */
.bento{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:210px;gap:14px}
.bento figure{position:relative;overflow:hidden;border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}
.bento figure img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--eo)}
.bento figure:hover img{transform:scale(1.06)}
.bento .big{grid-column:span 2;grid-row:span 2}
.bento .wide{grid-column:span 2}
@media (max-width:760px){.bento{grid-template-columns:1fr 1fr;grid-auto-rows:150px}.bento .big{grid-column:span 2;grid-row:span 1}.bento .wide{grid-column:span 2}}

/* ---------- Footer ---------- */
.foot{background:var(--ink);color:rgba(255,255,255,.62);padding:84px 0 30px;position:relative;z-index:2}
.foot .top{display:grid;grid-template-columns:1.5fr 1fr 1.2fr;gap:48px;padding-bottom:48px;border-bottom:1px solid rgba(255,255,255,.1)}
.foot .script{font-family:'Fraunces',serif;font-style:italic;font-weight:500;font-size:32px;color:#fff;line-height:1;letter-spacing:-.02em}
.foot .tg{font-size:9.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--rose-soft);margin:8px 0 18px}
.foot p{font-size:14.5px;line-height:1.7}
.foot h4{color:#fff;font-family:'Outfit',sans-serif;font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;margin-bottom:18px}
.foot ul{list-style:none;display:flex;flex-direction:column;gap:11px}
.foot ul a{font-size:14.5px;color:rgba(255,255,255,.62);transition:color 200ms var(--eo)}
.foot ul a:hover{color:var(--rose-soft)}
.foot .news p{margin-bottom:14px;color:rgba(255,255,255,.55)}
.flogos{display:flex;align-items:center;justify-content:center;gap:30px;flex-wrap:nowrap}
.flogos img{height:42px;width:auto;display:block;object-fit:contain}
.foot .flogos{justify-content:flex-start;gap:22px;margin-top:22px;background:rgba(255,255,255,.95);padding:14px 20px;border-radius:14px;width:fit-content}
.foot .flogos img{height:30px}
@media (max-width:480px){.flogos{gap:20px}.flogos img{height:34px}}
.foot .bot{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;padding-top:26px;font-size:13px;color:rgba(255,255,255,.42)}
.foot .bot a{color:rgba(255,255,255,.6)}
.foot .bot a:hover{color:var(--rose-soft)}

/* ---------- Modais ---------- */
.ov{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:22px;
  background:rgba(43,28,34,.55);backdrop-filter:blur(5px);opacity:0;visibility:hidden;
  transition:opacity 300ms var(--eo),visibility 300ms var(--eo)}
.ov.open{opacity:1;visibility:visible}
.modal{background:var(--canvas);border-radius:var(--r-xl);width:100%;max-width:540px;max-height:92vh;overflow-y:auto;
  position:relative;box-shadow:var(--shadow);
  transform:scale(.96) translateY(12px);opacity:0;transition:transform 360ms var(--eo),opacity 360ms var(--eo)}
.ov.open .modal{transform:none;opacity:1}
.modal .x{position:absolute;top:16px;right:16px;width:42px;height:42px;border-radius:50%;border:none;background:var(--blush);color:var(--ink);
  cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:3;transition:transform 240ms var(--eo),background 240ms var(--eo)}
.modal .x:hover{background:var(--rose-tint);transform:rotate(90deg)}
.modal .x svg{width:20px;height:20px}
.modal .mh{padding:40px 40px 0}
.modal .mh .eyebrow{margin-bottom:12px}
.modal .mh h3{font-size:30px;font-weight:500;margin-bottom:8px}
.modal .mh p{font-size:15px;color:var(--muted)}
.modal .mb{padding:24px 40px 40px}
.modal-news .nb{height:120px;border-radius:var(--r-xl) var(--r-xl) 0 0;overflow:hidden;position:relative;background:linear-gradient(120deg,var(--plum),var(--rose-deep))}
.modal-news .nb::after{content:'';position:absolute;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,var(--rose-soft),transparent 60%);opacity:.55;top:-60%;right:-5%;filter:blur(20px)}
.modal-news .nb svg{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:44px;height:44px;color:#fff;opacity:.95}

/* ---------- Reveal scroll ---------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s var(--eo),transform .8s var(--eo)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.07s}.reveal.d2{transition-delay:.14s}.reveal.d3{transition-delay:.21s}

/* ---------- Page header (subpáginas) ---------- */
.phead{padding:150px 0 76px;background:var(--plum);color:#fff;position:relative;overflow:hidden}
.phead .pimg{position:absolute;inset:0;z-index:0}
.phead .pimg img{width:100%;height:100%;object-fit:cover;object-position:center 32%;opacity:.55;transform:scale(1.04);animation:kenburns 28s var(--eio) infinite alternate}
.phead .pimg::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(49,31,41,.74),rgba(49,31,41,.62) 55%,rgba(49,31,41,.9))}
.phead .blob{position:absolute;z-index:1;width:480px;height:480px;border-radius:50%;filter:blur(90px);opacity:.4;background:radial-gradient(circle,var(--rose),transparent 65%);top:-30%;right:-6%}
.phead .wrap{position:relative;z-index:2}
.phead .eyebrow{color:var(--rose-soft);margin-bottom:18px}
.phead h1{color:#fff;font-size:clamp(40px,6vw,76px);font-weight:500;max-width:16ch}
.phead p{color:rgba(255,255,255,.72);font-size:18px;max-width:56ch;margin-top:20px;font-weight:300}
.phead .crumbs{font-size:13px;color:rgba(255,255,255,.5);margin-bottom:24px}
.phead .crumbs a:hover{color:var(--rose-soft)}

/* ---------- Responsivo ---------- */
@media (max-width:1024px){
  .foot .top{grid-template-columns:1fr 1fr;gap:36px}
  .proj{grid-template-columns:1fr}
  .proj .logos{padding-left:0;border-left:none;border-top:1px solid var(--line);padding-top:24px}
}
@media (max-width:860px){
  .nav{display:none}
  .nav.open{display:flex;position:fixed;inset:84px 0 auto 0;flex-direction:column;align-items:flex-start;gap:6px;
    background:var(--canvas);padding:24px 32px 32px;border-bottom:1px solid var(--line);box-shadow:var(--shadow)}
  .nav.open a.navl{font-size:19px;padding:10px 0;width:100%;font-family:'Fraunces',serif}
  .nav.open .btn{width:100%;justify-content:center;margin-top:10px}
  .burger{display:block}
  .split,.split.rev,.zrow{grid-template-columns:1fr}
  .zrow:nth-child(even) .zmedia{order:0}
  .split .media{order:-1}
  .split .media .stamp{width:104px;height:104px;left:0;bottom:-22px}
  .row2{grid-template-columns:1fr}
  .foot .top{grid-template-columns:1fr}
  .hero .since{display:none}
}
@media (max-width:520px){
  .wrap{padding:0 22px}
  .modal .mh,.modal .mb{padding-left:24px;padding-right:24px}
  .hero{padding-top:108px}
}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .reveal,.reveal-words .w{opacity:1!important;transform:none!important;filter:none!important}
  .hero .hbg img{opacity:.5}
}
@media (hover:hover) and (pointer:fine){
  .zmedia:hover img{transform:scale(1.05)}
}
