/* ============================================================
   PALAZZIO ENGENHARIA — Landing Page
   Sistema visual derivado do manual de identidade + design system
   ============================================================ */

:root{
  /* Institucionais */
  --brown-900:#2E1708;
  --brown-800:#3A1E0A;
  --brown-700:#48250D;
  --brown-600:#55382A;
  --gold-300:#E7D3A3;
  --gold-400:#CEAE6C;
  --gold-500:#C09A4E;
  --gold-600:#A07E2D;
  --navy-900:#0B1830;
  --navy-800:#102143;
  --navy-700:#16284F;
  --navy-600:#203966;
  --cream:#D7D0C5;
  --cream-50:#F8F5F0;
  --cream-100:#EFEAE1;
  --cream-200:#E3DCCF;
  --gray-400:#A89F92;
  --gray-500:#857B6D;
  --gray-600:#6B6357;
  --white:#FFFFFF;
  --ink:#1C140C;

  --grad-hero:linear-gradient(150deg,#0B1830 0%,#16284F 42%,#3A1E0A 100%);
  --grad-navy:linear-gradient(150deg,#203966 0%,#16284F 55%,#0B1830 100%);
  --grad-brown:linear-gradient(150deg,#55382A 0%,#48250D 55%,#2E1708 100%);
  --grad-gold:linear-gradient(120deg,#E7D3A3 0%,#CEAE6C 48%,#A07E2D 100%);

  --font-display:'Cormorant Garamond',Georgia,serif;
  --font-body:'Jost',system-ui,sans-serif;
  --font-ui:'Montserrat',system-ui,sans-serif;

  --maxw:1280px;
  --pad:clamp(22px,6vw,110px);
  /* borda do container: alinha conteúdo full-bleed à mesma coluna do .wrap */
  --edge:max(var(--pad), calc((100% - var(--maxw)) / 2 + var(--pad)));
  --ease:cubic-bezier(.4,0,.2,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--font-body);
  background:var(--cream-50);
  color:var(--ink);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body.loading{overflow:hidden;height:100vh;}
body.nav-open{overflow:hidden;}

h1,h2,h3,h4{font-family:var(--font-display);font-weight:500;line-height:1.07;letter-spacing:.005em;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
::selection{background:var(--gold-400);color:var(--brown-900);}

/* ---------- utilitários ---------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad);}
.overline{
  font-family:var(--font-ui);font-size:11px;font-weight:600;letter-spacing:.32em;
  text-transform:uppercase;color:var(--gold-600);display:inline-flex;align-items:center;gap:14px;
}
.overline::before{content:"";width:28px;height:1px;background:var(--gold-500);display:inline-block;}
.overline.center::after{content:"";width:28px;height:1px;background:var(--gold-500);display:inline-block;}
.overline.light{color:var(--gold-400);}
.overline.light::before,.overline.light::after{background:var(--gold-400);opacity:.7;}

.section{padding:clamp(80px,11vw,160px) 0;position:relative;}
.section-head{max-width:760px;}
.section-head.center{margin:0 auto;text-align:center;}
.section-head h2{
  font-size:clamp(2.4rem,5.2vw,4.3rem);color:var(--navy-700);margin-top:22px;
  text-wrap:balance;
}
.section-head .lede{
  font-family:var(--font-body);font-size:clamp(1.05rem,1.7vw,1.35rem);
  color:var(--gray-600);margin-top:20px;font-weight:300;max-width:620px;text-wrap:pretty;
}
.section-head.center .lede{margin-left:auto;margin-right:auto;}

.btn{
  font-family:var(--font-ui);font-weight:600;font-size:13px;letter-spacing:.1em;text-transform:uppercase;
  display:inline-flex;align-items:center;gap:12px;cursor:pointer;border:none;white-space:nowrap;
  padding:18px 32px;border-radius:2px;transition:all .4s var(--ease);position:relative;overflow:hidden;
}
.btn .arw{transition:transform .4s var(--ease);}
.btn:hover .arw{transform:translateX(5px);}
.btn-gold{background:var(--brown-700);color:var(--gold-300);}
.btn-gold::after{content:"";position:absolute;inset:0;background:var(--grad-gold);opacity:0;transition:opacity .4s var(--ease);z-index:0;}
.btn-gold:hover{color:var(--brown-900);}
.btn-gold:hover::after{opacity:1;}
.btn-gold span,.btn-gold .arw{position:relative;z-index:1;}
.btn-ghost{background:transparent;color:var(--navy-700);border:1px solid rgba(22,40,79,.28);}
.btn-ghost:hover{border-color:var(--gold-500);color:var(--gold-600);}
.btn-light{background:var(--grad-gold);color:var(--brown-900);}
.btn-light:hover{box-shadow:0 14px 38px rgba(206,174,108,.4);transform:translateY(-2px);}
.btn-outline-light{background:transparent;color:var(--gold-300);border:1px solid rgba(206,174,108,.4);}
.btn-outline-light:hover{border-color:var(--gold-400);background:rgba(206,174,108,.08);}

/* ============================================================
   LOADER
   ============================================================ */
#loader{
  position:fixed;inset:0;z-index:9999;background:var(--navy-900);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:42px;
  transition:opacity .8s var(--ease),visibility .8s;
}
#loader.done{opacity:0;visibility:hidden;}
#loader .l-phrase{
  font-family:var(--font-display);font-style:italic;font-weight:500;
  font-size:clamp(1.5rem,4.2vw,3rem);line-height:1.2;text-align:center;
  color:var(--gold-300);max-width:20ch;padding:0 26px;
  opacity:0;filter:blur(26px);transform:translateY(10px);
  animation:loaderGlow 1.9s var(--ease-out) .2s forwards;
}
@keyframes loaderGlow{
  0%{opacity:0;filter:blur(26px);transform:translateY(10px);text-shadow:0 0 0 rgba(206,174,108,0);}
  55%{opacity:1;filter:blur(6px);text-shadow:0 0 38px rgba(206,174,108,.6),0 0 14px rgba(231,211,163,.5);}
  100%{opacity:1;filter:blur(0);transform:translateY(0);text-shadow:0 0 0 rgba(206,174,108,0);}
}
#loader .l-pct{font-family:var(--font-ui);font-size:11px;font-weight:600;letter-spacing:.22em;color:var(--gold-400);
  opacity:0;animation:loaderFade 1s var(--ease-out) .5s forwards;}
@keyframes loaderFade{to{opacity:1;}}
/* cortina em painéis que sobem ao final */
.curtain{position:fixed;inset:0;z-index:9998;pointer-events:none;display:flex;}
.curtain span{flex:1;height:100%;background:var(--navy-900);transform:translateY(0);
  transition:transform 1s var(--ease-out);}
.curtain.lift span{transform:translateY(-100.5%);}
.curtain.lift span:nth-child(1){transition-delay:0s;}
.curtain.lift span:nth-child(2){transition-delay:.08s;}
.curtain.lift span:nth-child(3){transition-delay:.16s;}
.curtain.lift span:nth-child(4){transition-delay:.24s;}
.curtain.lift span:nth-child(5){transition-delay:.32s;}

/* ============================================================
   HEADER / NAV
   ============================================================ */
.header{
  position:fixed;top:0;left:0;right:0;z-index:900;
  transition:background .5s var(--ease),box-shadow .5s var(--ease),padding .5s var(--ease);
  padding:26px 0;
}
.header .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;}
.header .logo img{height:38px;width:auto;transition:opacity .4s var(--ease);}
.header .logo .l-light{display:block;}
.header .logo .l-dark{display:none;}
.header.scrolled{background:rgba(248,245,240,.86);backdrop-filter:blur(14px);box-shadow:0 1px 0 rgba(72,37,13,.08);padding:15px 0;}
.header.scrolled .logo .l-light{display:none;}
.header.scrolled .logo .l-dark{display:block;}
.nav-links{display:flex;align-items:center;gap:38px;}
.nav-links a{
  font-family:var(--font-ui);font-size:12.5px;font-weight:500;letter-spacing:.06em;
  color:rgba(248,245,240,.82);position:relative;padding:4px 0;transition:color .3s var(--ease);
}
.nav-links a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--gold-400);transition:width .35s var(--ease);}
.nav-links a:hover{color:var(--gold-300);}
.nav-links a:hover::after{width:100%;}
.header.scrolled .nav-links a{color:var(--navy-700);}
.header.scrolled .nav-links a:hover{color:var(--gold-600);}
.header .nav-cta{padding:13px 24px;font-size:11.5px;}
.header:not(.scrolled) .nav-cta{background:transparent;color:var(--gold-300);border:1px solid rgba(206,174,108,.45);}
.header:not(.scrolled) .nav-cta::after{display:none;}
.header:not(.scrolled) .nav-cta:hover{background:rgba(206,174,108,.1);color:var(--gold-300);}
.burger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:6px;}
.burger span{width:24px;height:1.5px;background:var(--gold-300);transition:transform .3s var(--ease),opacity .3s var(--ease),background .3s;}
.nav-mob-cta{display:none;}
.header.scrolled .burger span{background:var(--navy-700);}

/* ============================================================
   HERO — imagem de fundo + conteúdo centralizado (estilo Fixa)
   ============================================================ */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;justify-content:center;
  text-align:center;overflow:hidden;background:var(--navy-900);}
.hero .hero-media{position:absolute;inset:0;z-index:0;}
.hero .hero-media image-slot{width:100%;height:100%;}
.hero .scrim{position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(11,24,48,.66) 0%,rgba(11,24,48,.40) 42%,rgba(11,24,48,.78) 100%);}
.hero .scrim::after{content:"";position:absolute;inset:0;
  background:radial-gradient(72% 72% at 50% 38%,transparent 40%,rgba(11,24,48,.5));}
.hero .wrap{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;
  padding-top:120px;padding-bottom:90px;}
.hero-eyebrow{margin-bottom:30px;}
.hero h1{
  color:var(--cream-50);font-size:clamp(2.6rem,6vw,5.4rem);font-weight:400;max-width:16ch;
  letter-spacing:-.01em;line-height:1.08;
}
.hero h1 em{font-style:italic;color:var(--gold-400);}
.hero .sub{
  font-family:var(--font-body);font-weight:300;color:rgba(248,245,240,.86);
  font-size:clamp(1.05rem,1.7vw,1.32rem);max-width:54ch;margin-top:26px;text-wrap:pretty;
}
.hero .hero-cta{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-top:38px;}
.hero .scroll-cue{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);z-index:3;
  display:flex;flex-direction:column;align-items:center;gap:10px;
  font-family:var(--font-ui);font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:rgba(206,174,108,.82);}
.hero .scroll-cue .line{width:1px;height:44px;background:linear-gradient(var(--gold-400),transparent);position:relative;overflow:hidden;}
.hero .scroll-cue .line::after{content:"";position:absolute;top:-50%;left:0;width:100%;height:50%;background:var(--gold-300);animation:cue 1.9s var(--ease) infinite;}
@keyframes cue{0%{top:-50%}60%,100%{top:100%}}

/* entrada (revelados após loader) */
.hero [data-enter]{opacity:0;transform:translateY(36px);filter:blur(14px);}
body.ready .hero [data-enter]{animation:enterUp 1.25s var(--ease-out) forwards;}
body.ready .hero [data-enter="2"]{animation-delay:.12s;}
body.ready .hero [data-enter="3"]{animation-delay:.24s;}
body.ready .hero [data-enter="4"]{animation-delay:.36s;}
body.ready .hero .scroll-cue{animation:enterUp 1s var(--ease-out) .7s forwards;opacity:0;}
@keyframes enterUp{to{opacity:1;transform:translateY(0);filter:blur(0);}}

/* botões magnéticos */
.btn.mag{will-change:transform;}
.hero-media{will-change:transform;}

/* faixa de marca sob o hero */
.brand-strip{background:var(--brown-700);color:var(--gold-300);}
.brand-strip .wrap{display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap;padding-top:30px;padding-bottom:30px;}
.brand-strip .slogan{font-family:var(--font-display);font-style:italic;font-size:clamp(1.3rem,2.6vw,1.95rem);color:var(--gold-300);}
.brand-strip .meta{display:flex;gap:42px;flex-wrap:wrap;}
.brand-strip .meta div{font-family:var(--font-ui);}
.brand-strip .meta .k{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:rgba(231,211,163,.6);}
.brand-strip .meta .v{font-size:14px;color:var(--cream-50);margin-top:5px;font-weight:500;}

/* ============================================================
   ATUAÇÃO — modalidades
   ============================================================ */
.atuacao{background:var(--cream-50);}
.atuacao,.solucao-intro,.galeria{position:relative;}
.mod-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(72,37,13,.12);margin-top:64px;border:1px solid rgba(72,37,13,.12);}
.mod{background:var(--cream-50);padding:clamp(34px,4vw,58px);position:relative;transition:background .5s var(--ease);overflow:hidden;}
.mod::before{content:"";position:absolute;top:0;left:0;width:100%;height:2px;background:var(--grad-gold);transform:scaleX(0);transform-origin:left;transition:transform .55s var(--ease);}
.mod:hover{background:var(--white);}
.mod:hover::before{transform:scaleX(1);}
.mod .idx{font-family:var(--font-ui);font-size:12px;font-weight:600;letter-spacing:.2em;color:var(--gold-600);}
.mod h3{font-size:clamp(1.7rem,2.5vw,2.3rem);color:var(--navy-700);margin:20px 0 16px;}
.mod p{font-family:var(--font-body);font-weight:300;color:var(--gray-600);font-size:1.02rem;max-width:46ch;}
.mod .mark{position:absolute;right:clamp(20px,3vw,40px);bottom:clamp(20px,3vw,40px);width:34px;opacity:.12;transition:opacity .5s var(--ease);}
.mod:hover .mark{opacity:.4;}

/* ============================================================
   PARA QUEM — navy band
   ============================================================ */
.para-quem{background:var(--grad-navy);color:var(--cream-50);overflow:hidden;position:relative;}
/* cortina/tecido sutil */
.para-quem::before,.cta-final::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:
    repeating-linear-gradient(90deg,
      rgba(255,255,255,.035) 0px,
      rgba(255,255,255,.012) 26px,
      rgba(0,0,0,.05) 64px,
      rgba(0,0,0,.11) 92px,
      rgba(0,0,0,.05) 120px,
      rgba(255,255,255,.012) 158px,
      rgba(255,255,255,.035) 184px),
    url(assets/fabric.png);
  background-size:184px 100%,256px 256px;
  background-repeat:repeat-x,repeat;
  opacity:.55;mix-blend-mode:soft-light;
}
.para-quem>.wrap{position:relative;z-index:1;}
.para-quem .section-head h2{color:var(--cream-50);}
.para-quem .section-head .lede{color:rgba(231,236,244,.72);}
.pq-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:64px;}
.pq{border:1px solid rgba(206,174,108,.22);padding:clamp(28px,3vw,40px);border-radius:3px;transition:all .5s var(--ease);position:relative;background:rgba(255,255,255,.015);}
.pq:hover{background:rgba(206,174,108,.06);border-color:rgba(206,174,108,.5);transform:translateY(-6px);}
.pq .pq-img{aspect-ratio:4/3;margin-bottom:26px;border-radius:2px;overflow:hidden;}
.pq image-slot{width:100%;height:100%;}
.pq .pq-icon{width:74px;height:74px;display:flex;align-items:center;justify-content:center;margin-bottom:28px;border:1px solid rgba(206,174,108,.35);border-radius:50%;background:rgba(206,174,108,.06);transition:all .5s var(--ease);}
.pq:hover .pq-icon{border-color:var(--gold-400);background:rgba(206,174,108,.12);}
.pq .pq-icon svg{width:34px;height:34px;stroke:var(--gold-400);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
.pq h3{font-size:1.55rem;color:var(--gold-300);margin-bottom:14px;}
.pq p{font-family:var(--font-body);font-weight:300;color:rgba(231,236,244,.74);font-size:.98rem;}

/* ============================================================
   SOLUÇÃO — horizontal scroll
   ============================================================ */
.solucao-intro{background:var(--cream-50);}
.solucao-intro .grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,90px);align-items:end;margin-top:18px;}
.solucao-intro .lede{font-size:clamp(1.05rem,1.7vw,1.35rem);}
.solucao-intro .body-copy p{font-family:var(--font-body);font-weight:300;color:var(--gray-600);font-size:1.08rem;line-height:1.75;}
.solucao-intro .body-copy p+p{margin-top:20px;}
.solucao-intro .body-copy strong{color:var(--navy-700);font-weight:500;}

.hscroll{position:relative;height:400vh;background:var(--brown-900);}
.hscroll .sticky{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;flex-direction:column;}
.hscroll .h-head{width:100%;max-width:var(--maxw);margin:0 auto;padding:100px var(--pad) clamp(20px,3vh,44px);display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;}
.hscroll .h-head .t{font-family:var(--font-display);color:var(--cream-50);font-size:clamp(2.4rem,5.2vw,4.3rem);line-height:1.1;}
.hscroll .h-progress{flex:1;max-width:320px;height:1px;background:rgba(206,174,108,.2);position:relative;min-width:140px;}
.hscroll .h-progress i{position:absolute;left:0;top:0;height:100%;width:0;background:var(--grad-gold);}
.hscroll .track{display:flex;height:100%;align-items:center;will-change:transform;padding:0 var(--edge);}
.step-panel{flex:0 0 auto;width:min(78vw,560px);margin-right:clamp(30px,5vw,80px);color:var(--cream-50);}
.step-panel .step-num{font-family:var(--font-display);font-size:clamp(5rem,12vw,11rem);line-height:.8;color:transparent;-webkit-text-stroke:1px rgba(206,174,108,.55);}
.step-panel .step-img{aspect-ratio:16/10;margin:24px 0 28px;border-radius:3px;overflow:hidden;border:1px solid rgba(206,174,108,.18);max-height:clamp(150px,30vh,360px);}
.step-panel image-slot{width:100%;height:100%;}
.step-panel h3{font-size:clamp(1.8rem,3vw,2.6rem);color:var(--gold-300);margin-bottom:14px;}
.step-panel p{font-family:var(--font-body);font-weight:300;color:rgba(248,245,240,.78);font-size:1.05rem;max-width:48ch;}
.hscroll .h-hint{position:absolute;bottom:26px;right:var(--edge);font-family:var(--font-ui);font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:rgba(206,174,108,.6);display:flex;align-items:center;gap:10px;}
.hscroll .h-hint .dash{width:30px;height:1px;background:rgba(206,174,108,.5);}

/* ============================================================
   TEXTURA DE PORCELANATO — seções claras (sutil)
   ============================================================ */
.atuacao::after,.solucao-intro::after,.galeria::after,.dif::after,.faq::after{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:url(assets/porcelain.png);background-size:520px 520px;background-repeat:repeat;
  opacity:.5;mix-blend-mode:multiply;
}
.atuacao>.wrap,.solucao-intro>.wrap,.galeria>.wrap,.dif>.wrap,.faq>.wrap{position:relative;z-index:1;}

/* ============================================================
   DIFERENCIAIS
   ============================================================ */
.dif{background:var(--cream-100);position:relative;}
.dif .grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(44px,7vw,110px);align-items:center;}
.dif .left h2{font-size:clamp(2.4rem,4.6vw,3.9rem);color:var(--navy-700);margin-top:22px;}
.dif .left .lede{color:var(--gray-600);font-weight:300;font-size:1.25rem;margin:22px 0 34px;text-wrap:pretty;}
.dif-list{display:flex;flex-direction:column;}
.dif-item{display:flex;gap:22px;align-items:flex-start;padding:24px 0;border-top:1px solid rgba(72,37,13,.14);}
.dif-item:last-child{border-bottom:1px solid rgba(72,37,13,.14);}
.dif-item .chk{flex:0 0 auto;width:30px;height:30px;border-radius:50%;border:1px solid var(--gold-500);display:flex;align-items:center;justify-content:center;margin-top:2px;transition:all .4s var(--ease);}
.dif-item .chk svg{width:13px;height:13px;stroke:var(--gold-600);fill:none;stroke-width:2.4;}
.dif-item:hover .chk{background:var(--grad-gold);border-color:transparent;}
.dif-item:hover .chk svg{stroke:var(--brown-900);}
.dif-item p{font-family:var(--font-body);font-size:1.12rem;font-weight:300;color:var(--brown-700);line-height:1.5;}

/* ============================================================
   SOBRE
   ============================================================ */
.sobre{background:var(--grad-brown);color:var(--cream-50);overflow:hidden;}
.sobre .grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(44px,6vw,90px);align-items:center;}
.sobre .section-head h2{color:var(--cream-50);}
.sobre .section-head .lede{color:rgba(231,211,163,.8);}
.sobre .stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(206,174,108,.22);margin-top:44px;border:1px solid rgba(206,174,108,.22);}
.sobre .stat{background:rgba(46,23,8,.35);padding:clamp(24px,2.6vw,34px);transition:background .5s var(--ease);}
.sobre .stat:hover{background:rgba(46,23,8,.55);}
.sobre .stat .line{font-family:var(--font-display);font-size:clamp(1.25rem,1.9vw,1.62rem);color:rgba(248,245,240,.9);line-height:1.22;}
.sobre .stat .line b{color:var(--gold-300);font-weight:600;}
.sobre .about-img{aspect-ratio:3/4;border-radius:3px;overflow:hidden;border:1px solid rgba(206,174,108,.22);}
.sobre image-slot{width:100%;height:100%;}
.sobre .crea{margin-top:34px;}
.sobre .crea p{font-family:var(--font-body);font-weight:300;color:rgba(248,245,240,.82);font-size:1.05rem;line-height:1.7;}
.sobre .crea p+p{margin-top:18px;}
.sobre .crea strong{color:var(--gold-300);font-weight:500;}

/* ============================================================
   PORTFOLIO / GALERIA
   ============================================================ */
.galeria{background:var(--cream-50);}
.gal-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(12px,1.4vw,20px);margin-top:60px;}
.gal-cell{position:relative;overflow:hidden;border-radius:3px;}
.gal-cell image-slot{width:100%;height:100%;}
.gal-cell .cap{position:absolute;left:16px;bottom:14px;z-index:3;font-family:var(--font-ui);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--cream-50);background:rgba(11,24,48,.45);backdrop-filter:blur(4px);padding:6px 12px;border-radius:2px;pointer-events:none;}
.gc-a{grid-column:span 7;aspect-ratio:16/11;}
.gc-b{grid-column:span 5;aspect-ratio:4/5;}
.gc-c{grid-column:span 4;aspect-ratio:1/1;}
.gc-d{grid-column:span 4;aspect-ratio:1/1;}
.gc-e{grid-column:span 4;aspect-ratio:1/1;}

/* ===== Galeria de projetos · cards -> lightbox (somente construção) ===== */
.proj-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:clamp(150px,19vw,225px);gap:clamp(12px,1.4vw,20px);margin-top:60px;}
.proj-card{position:relative;overflow:hidden;border-radius:4px;cursor:pointer;border:0;padding:0;background:var(--navy-900);color:var(--cream-50);font-family:inherit;text-align:left;}
.proj-card.p1{grid-column:span 7;grid-row:span 2;}
.proj-card.p2{grid-column:span 5;grid-row:span 1;}
.proj-card.p3{grid-column:span 5;grid-row:span 1;}
.proj-card.p4{grid-column:span 12;grid-row:span 1;}
.proj-card img,.proj-card image-slot{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease-out);}
.proj-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,24,48,0) 30%,rgba(11,24,48,.85));transition:background .45s var(--ease);}
.proj-card:hover img{transform:scale(1.06);}
.proj-card:hover::after{background:linear-gradient(180deg,rgba(11,24,48,.12) 12%,rgba(11,24,48,.92));}
.proj-card .pc-info{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:clamp(18px,2vw,30px);}
.proj-card .pc-info .overline{color:var(--gold-300);margin-bottom:8px;display:block;}
.proj-card .pc-info h3{font-family:var(--font-display);font-size:clamp(1.4rem,2vw,2.05rem);color:var(--cream-50);line-height:1.05;}
.proj-card .pc-count{display:inline-flex;align-items:center;gap:7px;margin-top:13px;font-family:var(--font-ui);font-size:10.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:rgba(247,244,239,.9);}
.proj-card .pc-count svg{width:15px;height:15px;stroke:var(--gold-400);fill:none;stroke-width:1.8;}
.proj-card .pc-cta{position:absolute;top:16px;right:16px;z-index:2;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(206,174,108,.16);backdrop-filter:blur(6px);border:1px solid rgba(206,174,108,.4);opacity:0;transform:scale(.8) rotate(-20deg);transition:all .45s var(--ease-out);}
.proj-card:hover .pc-cta{opacity:1;transform:none;}
.proj-card .pc-cta svg{width:18px;height:18px;stroke:var(--gold-300);fill:none;stroke-width:2;}

/* modal */
.proj-modal{position:fixed;inset:0;z-index:1000;display:none;}
.proj-modal.open{display:block;}
.proj-modal .pm-backdrop{position:absolute;inset:0;background:rgba(6,12,24,.82);backdrop-filter:blur(8px);opacity:0;transition:opacity .4s;}
.proj-modal.open .pm-backdrop{opacity:1;}
.proj-modal .pm-panel{position:absolute;inset:clamp(12px,3vw,46px);background:var(--cream-50);border-radius:8px;overflow:hidden;display:flex;flex-direction:column;
  transform:translateY(24px) scale(.985);opacity:0;transition:transform .55s var(--ease-out),opacity .4s;box-shadow:0 40px 120px rgba(0,0,0,.5);}
.proj-modal.open .pm-panel{transform:none;opacity:1;}
.pm-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:clamp(20px,3vw,34px) clamp(20px,3vw,40px) clamp(16px,2vw,22px);border-bottom:1px solid rgba(22,40,79,.12);flex-shrink:0;}
.pm-head .overline{color:var(--gold-600);display:block;margin-bottom:6px;}
.pm-head h3{font-family:var(--font-display);font-size:clamp(1.6rem,3vw,2.4rem);color:var(--navy-700);}
.pm-close{flex-shrink:0;width:46px;height:46px;border-radius:50%;border:1px solid rgba(22,40,79,.2);background:transparent;cursor:pointer;font-size:22px;color:var(--navy-700);transition:all .35s var(--ease);display:flex;align-items:center;justify-content:center;}
.pm-close:hover{background:var(--navy-700);color:var(--cream-50);transform:rotate(90deg);}
.pm-grid{padding:clamp(18px,2.5vw,30px);overflow-y:auto;column-count:3;column-gap:14px;}
.pm-grid img{width:100%;margin:0 0 14px;display:block;border-radius:4px;break-inside:avoid;cursor:zoom-in;opacity:0;transform:translateY(18px);
  transition:opacity .6s var(--ease-out),transform .6s var(--ease-out),filter .3s;}
.pm-grid img.in{opacity:1;transform:none;}
.pm-grid img:hover{filter:brightness(1.07);}

/* viewer fullscreen */
.pm-viewer{position:fixed;inset:0;z-index:1100;display:none;align-items:center;justify-content:center;background:rgba(6,12,24,.95);}
.pm-viewer.open{display:flex;}
.pm-viewer img{max-width:90vw;max-height:86vh;border-radius:4px;box-shadow:0 30px 90px rgba(0,0,0,.6);}
.pm-viewer .v-close{position:absolute;top:22px;right:26px;width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:transparent;color:#fff;font-size:24px;cursor:pointer;transition:background .3s;}
.pm-viewer .v-close:hover{background:rgba(255,255,255,.12);}
.pm-viewer .v-nav{position:absolute;top:50%;transform:translateY(-50%);width:54px;height:54px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:rgba(0,0,0,.3);color:#fff;font-size:26px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .3s;}
.pm-viewer .v-nav:hover{background:rgba(206,174,108,.4);}
.pm-viewer .v-prev{left:26px;} .pm-viewer .v-next{right:26px;}
.pm-viewer .v-count{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);font-family:var(--font-ui);font-size:12px;letter-spacing:.14em;color:rgba(255,255,255,.72);}

@media(max-width:820px){
  .proj-grid{grid-template-columns:1fr 1fr;grid-auto-rows:clamp(150px,38vw,210px);}
  .proj-card.p1{grid-column:span 2;grid-row:span 1;}
  .proj-card.p2,.proj-card.p3{grid-column:span 1;}
  .proj-card.p4{grid-column:span 2;}
  .pm-grid{column-count:2;}
}
@media(max-width:560px){
  .proj-grid{grid-template-columns:1fr;}
  .proj-card.p1,.proj-card.p2,.proj-card.p3,.proj-card.p4{grid-column:1/-1;}
  .pm-grid{column-count:1;}
  .pm-viewer .v-nav{width:44px;height:44px;}
}

/* ============================================================
   FAQ
   ============================================================ */
.faq{background:var(--cream-100);position:relative;}
.faq .grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(40px,6vw,90px);align-items:start;}
.faq-list{display:flex;flex-direction:column;}
.faq-item{border-top:1px solid rgba(72,37,13,.16);}
.faq-item:last-child{border-bottom:1px solid rgba(72,37,13,.16);}
.faq-q{display:flex;align-items:center;justify-content:space-between;gap:26px;padding:28px 4px;cursor:pointer;list-style:none;}
.faq-q h3{font-family:var(--font-display);font-size:clamp(1.25rem,1.9vw,1.6rem);color:var(--navy-700);font-weight:500;transition:color .3s var(--ease);}
.faq-item.open .faq-q h3{color:var(--gold-600);}
.faq-q .pm{flex:0 0 auto;width:34px;height:34px;position:relative;border:1px solid rgba(72,37,13,.3);border-radius:50%;transition:all .4s var(--ease);}
.faq-q .pm::before,.faq-q .pm::after{content:"";position:absolute;background:var(--brown-700);transition:.4s var(--ease);}
.faq-q .pm::before{left:50%;top:9px;bottom:9px;width:1.4px;transform:translateX(-50%);}
.faq-q .pm::after{top:50%;left:9px;right:9px;height:1.4px;transform:translateY(-50%);}
.faq-item.open .pm{background:var(--grad-gold);border-color:transparent;transform:rotate(135deg);}
.faq-item.open .pm::before,.faq-item.open .pm::after{background:var(--brown-900);}
.faq-a{overflow:hidden;height:0;transition:height .45s var(--ease);}
.faq-a-inner{padding:0 4px 30px;}
.faq-a p{font-family:var(--font-body);font-weight:300;color:var(--gray-600);font-size:1.05rem;line-height:1.7;max-width:62ch;}

/* ============================================================
   CTA FINAL
   ============================================================ */
.cta-final{background:var(--navy-900);color:var(--cream-50);position:relative;overflow:hidden;text-align:center;}
.cta-final::before{background-size:184px 100%,256px 256px;opacity:.4;}
.cta-final .wrap{position:relative;z-index:2;}
.cta-final h2{font-size:clamp(2.5rem,5.6vw,4.7rem);line-height:1.12;color:var(--cream-50);max-width:18ch;margin:26px auto 48px;text-wrap:pretty;}
.cta-final h2 em{font-style:italic;color:var(--gold-400);}
.cta-final .btn{padding:20px 42px;font-size:14px;}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{background:#081122;color:rgba(231,236,244,.6);padding:clamp(60px,8vw,100px) 0 40px;}
.footer .top{display:grid;grid-template-columns:1fr auto;column-gap:60px;row-gap:28px;align-items:center;}
.footer .f-logo img{height:150px;display:block;}
.footer .f-desc{font-family:var(--font-body);font-weight:300;font-size:.98rem;max-width:38ch;line-height:1.7;}
.footer h4{font-family:var(--font-ui);font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-400);margin-bottom:22px;}
.footer ul{list-style:none;display:flex;flex-direction:column;gap:13px;}
.footer ul li{font-family:var(--font-body);font-weight:300;font-size:.98rem;}
.footer ul li a{transition:color .3s var(--ease);}
.footer ul li a:hover{color:var(--gold-300);}
.footer .bottom{margin-top:clamp(50px,7vw,80px);padding-top:30px;border-top:1px solid rgba(206,174,108,.14);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-family:var(--font-ui);font-size:11px;letter-spacing:.06em;color:rgba(231,236,244,.4);}

/* ============================================================
   REVEAL ON SCROLL — estilo "blur rise" (Framer / Fixa)
   ============================================================ */
[data-reveal]{opacity:0;transform:translateY(48px);filter:blur(12px);
  transition:opacity 1.15s var(--ease-out),transform 1.15s var(--ease-out),filter 1.15s var(--ease-out);
  will-change:opacity,transform,filter;}
[data-reveal].in{opacity:1;transform:none;filter:blur(0);}
[data-reveal-d="1"]{transition-delay:.1s;}
[data-reveal-d="2"]{transition-delay:.2s;}
[data-reveal-d="3"]{transition-delay:.3s;}

/* títulos: revelação em cortina (clip rise) */
.rh{clip-path:inset(-4% -4% 112% -4%);transform:translateY(18px);opacity:.001;
  transition:clip-path 1.25s var(--ease-out),transform 1.25s var(--ease-out),opacity .8s var(--ease-out);
  will-change:clip-path,transform;}
.rh.in{clip-path:inset(-14% -4% -14% -4%);transform:none;opacity:1;}

/* imagens: revelação em cortina (clip wipe) + leve de-zoom — estilo Arthur Casas */
.img-reveal{overflow:hidden;clip-path:inset(0 0 100% 0);transition:clip-path 1.4s var(--ease-out);will-change:clip-path;}
.img-reveal.in,.in .img-reveal{clip-path:inset(0 0 0% 0);}
.img-reveal image-slot{transform:scale(1.28);transition:transform 1.8s var(--ease-out);will-change:transform;}
.img-reveal.in image-slot,.in .img-reveal image-slot{transform:scale(1);}

/* ============================================================
   ESPAÇOS DE IMAGEM — placeholders visíveis (onde entram as fotos)
   ============================================================ */
/* texto do estado vazio: escuro em fundo claro, claro em fundo escuro */
image-slot{color:rgba(28,20,12,.62);}
.para-quem image-slot,.hscroll image-slot,.sobre image-slot,.hero image-slot{color:rgba(247,244,239,.82)!important;}
/* moldura tracejada dourada quando o espaço está vazio (some ao soltar a foto) */
.pq-img:has(image-slot:not([data-filled])),
.step-img:has(image-slot:not([data-filled])),
.about-img:has(image-slot:not([data-filled])),
.gal-cell:has(image-slot:not([data-filled])){
  outline:1.5px dashed rgba(206,174,108,.6);outline-offset:-2px;
  background:
    repeating-linear-gradient(45deg,rgba(206,174,108,.06) 0 12px,transparent 12px 24px);
}
.hero .hero-media:has(image-slot:not([data-filled])){
  outline:1.5px dashed rgba(206,174,108,.4);outline-offset:-12px;
}

/* parallax */
[data-parallax]{will-change:transform;}

@media (prefers-reduced-motion:reduce){
  [data-reveal],.rh{opacity:1;transform:none;filter:none;clip-path:none;transition:none;}
  .img-reveal image-slot{transform:none;}
  .hero [data-enter]{opacity:1;transform:none;filter:none;animation:none;}
  .marquee__row{animation:none!important;}
}

/* ============================================================
   MARCA D'ÁGUA — logo sutil no fundo de seções claras
   ============================================================ */
.brand-watermark{position:absolute;z-index:0;pointer-events:none;width:auto;opacity:.05;user-select:none;}
.solucao-intro .brand-watermark{height:min(380px,36vw);right:-2%;bottom:4%;}
.dif .brand-watermark{height:min(344px,33vw);left:-4%;bottom:-3%;opacity:.045;}
.faq .brand-watermark{height:min(398px,38vw);right:-3%;top:10%;opacity:.045;}
.dif>.wrap,.faq>.wrap,.solucao-intro>.wrap{position:relative;z-index:1;}

/* ============================================================
   COMPARATIVA — mercado x Palazzio
   ============================================================ */
.comparativa{background:var(--cream-50);position:relative;}
.comparativa .section-head{margin-bottom:60px;}
.comp-table{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.4vw,30px);align-items:stretch;}
.comp-col{display:flex;flex-direction:column;border-radius:4px;overflow:hidden;}
.comp-col .comp-head{padding:26px clamp(24px,3vw,38px);font-family:var(--font-ui);font-size:12px;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;display:flex;align-items:center;gap:12px;}
.comp-col.mercado{background:var(--cream-200);}
.comp-col.mercado .comp-head{color:var(--gray-600);}
.comp-col.palazzio{background:var(--grad-navy);color:var(--cream-50);box-shadow:0 30px 60px -28px rgba(22,40,79,.4);}
.comp-col.palazzio .comp-head{color:var(--gold-300);}
.comp-col .comp-head .dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto;}
.comp-col.mercado .dot{background:var(--gray-400);}
.comp-col.palazzio .dot{background:var(--gold-400);}
.comp-row{padding:26px clamp(24px,3vw,38px);display:flex;gap:16px;align-items:flex-start;
  border-top:1px solid rgba(72,37,13,.1);font-family:var(--font-body);font-weight:300;font-size:1.06rem;line-height:1.5;}
.comp-col.mercado .comp-row{color:var(--gray-600);}
.comp-col.palazzio .comp-row{border-top-color:rgba(206,174,108,.18);color:rgba(248,245,240,.92);}
.comp-row .ic{flex:0 0 auto;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-top:1px;}
.comp-row .ic svg{width:12px;height:12px;stroke-width:2.6;fill:none;}
.comp-col.mercado .ic{border:1px solid rgba(133,123,109,.4);}
.comp-col.mercado .ic svg{stroke:var(--gray-500);}
.comp-col.palazzio .ic{background:var(--grad-gold);}
.comp-col.palazzio .ic svg{stroke:var(--brown-900);}
.comp-col.palazzio .comp-row b{color:var(--gold-300);font-weight:500;}
.comparativa .comp-cta{margin-top:54px;display:flex;justify-content:center;}

/* galeria antes/depois — painéis no scroll horizontal */
.gal-panel{flex:0 0 auto;width:min(86vw,740px);margin-right:clamp(40px,6vw,100px);color:var(--cream-50);}
.gal-panel .pair{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.gal-panel .shot{position:relative;aspect-ratio:4/5;border-radius:3px;overflow:hidden;border:1px solid rgba(206,174,108,.18);}
.gal-panel .shot image-slot{width:100%;height:100%;}
.gal-panel .shot .tag{position:absolute;left:12px;top:12px;z-index:3;font-family:var(--font-ui);font-size:10px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--cream-50);background:rgba(11,24,48,.5);backdrop-filter:blur(4px);padding:5px 11px;border-radius:2px;}
.gal-panel .shot .tag.depois{background:rgba(160,126,45,.62);color:var(--brown-900);font-weight:600;}
.gal-panel h3{font-size:clamp(2rem,3.4vw,3rem);color:var(--gold-300);margin:28px 0 12px;}
.gal-panel p{font-family:var(--font-body);font-weight:300;color:rgba(248,245,240,.74);font-size:1.1rem;max-width:48ch;}
/* imagem do card */
.gal-panel .topic-img{width:100%;height:clamp(160px,28vh,320px);border-radius:3px;overflow:hidden;
  border:1px solid rgba(206,174,108,.18);margin-bottom:28px;opacity:0;transform:scale(1.03);
  transition:opacity .6s var(--ease-out),transform .6s var(--ease-out);}
.gal-panel .topic-img img{width:100%;height:100%;object-fit:cover;display:block;}
/* número decorativo */
.gal-panel .topic-num{font-family:var(--font-display);font-size:clamp(4rem,7vw,7rem);line-height:.85;
  color:transparent;-webkit-text-stroke:1px rgba(206,174,108,.4);display:block;margin-bottom:24px;
  opacity:0;transform:translateY(14px);transition:opacity .45s var(--ease-out),transform .45s var(--ease-out);transition-delay:.12s;}
/* entrada dos painéis conforme entram no viewport horizontal */
.gal-panel h3{opacity:0;transition:opacity .4s var(--ease-out);transition-delay:.22s;}
.gal-panel p{opacity:0;transition:opacity .4s var(--ease-out);transition-delay:.32s;}
.gal-panel.visible .topic-img{opacity:1;transform:scale(1);}
.gal-panel.visible .topic-num{opacity:1;transform:none;}
.gal-panel.visible h3,.gal-panel.visible p{opacity:1;}

@media (max-width:820px){
  .comp-table{grid-template-columns:1fr;}
  .gal-panel{width:100%;margin:0 0 50px;}
  .gal-panel .topic-img,.gal-panel .topic-num,.gal-panel h3,.gal-panel p{opacity:1;transform:none;transition:none;}
}
.marquee{background:var(--navy-900);color:var(--gold-300);overflow:hidden;border-top:1px solid rgba(206,174,108,.14);border-bottom:1px solid rgba(206,174,108,.14);padding:clamp(28px,4vw,52px) 0;}
.marquee__row{display:flex;width:max-content;gap:0;animation:marquee 38s linear infinite;}
.marquee:hover .marquee__row{animation-play-state:paused;}
.marquee__row span{font-family:var(--font-display);font-style:italic;font-size:clamp(1.8rem,4.4vw,3.4rem);
  color:transparent;-webkit-text-stroke:1px rgba(206,174,108,.5);padding:0 .5em;white-space:nowrap;}
.marquee__row span.solid{color:var(--gold-300);-webkit-text-stroke:0;}
.marquee__row img{width:clamp(20px,2.4vw,30px);align-self:center;opacity:.7;}
@keyframes marquee{to{transform:translateX(-50%);}}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1040px){
  .dif .grid,.sobre .grid,.faq .grid,.solucao-intro .grid{grid-template-columns:1fr;}
  .sobre .about-img{aspect-ratio:16/10;max-height:420px;order:-1;}
  .footer .top{grid-template-columns:1fr 1fr;}
}
@media (max-width:820px){
  .nav-links{position:fixed;inset:0;background:var(--navy-900);flex-direction:column;justify-content:center;
    transform:translateX(100%);transition:transform .5s var(--ease);z-index:910;}
  .nav-links.open{transform:none;}
  .nav-links a{color:var(--cream-50);font-size:18px;}
  .header.scrolled .nav-links a{color:var(--cream-50);}
  .burger{display:flex;z-index:920;}
  .nav-cta{display:none;}
  .mod-grid,.pq-grid,.sobre .stats{grid-template-columns:1fr;}
  .gal-grid{grid-template-columns:1fr 1fr;}
  .gc-a,.gc-b,.gc-c,.gc-d,.gc-e{grid-column:span 2;aspect-ratio:16/11;}
  .gc-c,.gc-d{grid-column:span 1;aspect-ratio:1/1;}
  .hscroll{height:auto;}
  .hscroll .sticky{position:relative;height:auto;}
  .hscroll .track{flex-direction:column;padding:30px var(--pad) 70px;transform:none!important;}
  .step-panel{width:100%;margin:0 0 50px;}
  .hscroll .h-hint{display:none;}
  .footer .top{grid-template-columns:1fr;gap:36px;}
  /* burger → X */
  .burger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
  .burger.open span:nth-child(2){opacity:0;transform:scaleX(0);}
  .burger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}
  /* barra de progresso não tem função no mobile */
  .hscroll .h-progress{display:none;}
  /* CTA no menu mobile */
  .nav-links .nav-mob-cta{display:inline-flex;margin-top:32px;font-size:13px;color:var(--brown-900);}
}

/* telas curtas (laptops 13", landscape, monitores baixos) */
@media(max-height:700px) and (min-width:821px){
  .hscroll .h-head{padding-top:100px;}
  .step-panel .step-num{font-size:clamp(3.5rem,7vw,6rem);}
  .step-panel .step-img{margin:16px 0 18px;max-height:clamp(120px,24vh,280px);}
  .step-panel h3{font-size:clamp(1.4rem,2.2vw,2rem);margin-bottom:8px;}
  .step-panel p{font-size:.96rem;}
}

@media(max-width:480px){
  .hero .wrap{padding-top:90px;padding-bottom:56px;}
  .footer .f-logo img{height:110px;}
  .footer .bottom{flex-direction:column;align-items:center;gap:8px;text-align:center;}
  /* modal ocupa tela cheia em telefones pequenos */
  .proj-modal .pm-panel{inset:0;border-radius:0;}
  .pm-head{padding:16px 18px 12px;}
  /* viewer: botões de nav mais perto das bordas */
  .pm-viewer .v-prev{left:6px;}
  .pm-viewer .v-next{right:6px;}
  .pm-viewer .v-nav{width:40px;height:40px;font-size:20px;}
  .pm-viewer img{max-width:96vw;}
  /* espaçamento reduzido */
  .pq-grid{gap:14px;}
}

/* ══════════════════════════════════════════════
   MÓDULOS BUILDV — Formulários · Privacidade · Cookie
   ══════════════════════════════════════════════ */
.form-overlay{
  position:fixed;inset:0;z-index:950;
  background:rgba(11,24,48,.85);backdrop-filter:blur(8px);
  display:flex;align-items:center;justify-content:center;padding:20px;
  opacity:0;pointer-events:none;transition:opacity .35s var(--ease);
}
.form-overlay.open{opacity:1;pointer-events:all;}
.form-modal{
  background:var(--cream-50);border:1px solid var(--cream-200);
  border-radius:6px;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;
  transform:translateY(28px);transition:transform .45s var(--ease-out);
  box-shadow:0 40px 100px rgba(0,0,0,.4);
}
.form-overlay.open .form-modal{transform:translateY(0);}
.form-modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:28px 28px 0;}
.form-modal-header h2{font-family:var(--font-display);font-size:1.55rem;font-weight:500;color:var(--navy-700);}
.form-modal-header p{font-family:var(--font-body);font-size:.85rem;color:var(--gray-500);margin-top:5px;}
.form-modal-close{
  background:none;border:1px solid var(--cream-200);border-radius:4px;
  cursor:pointer;font-size:17px;color:var(--gray-500);padding:3px 10px;
  line-height:1.5;flex-shrink:0;margin-left:16px;transition:all .25s var(--ease);
}
.form-modal-close:hover{border-color:var(--navy-700);color:var(--navy-700);}
.form-modal form{padding:22px 28px 28px;display:flex;flex-direction:column;gap:15px;}
.form-group{display:flex;flex-direction:column;gap:6px;}
.form-group label{font-family:var(--font-ui);font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--gray-500);}
.form-group input,.form-group select{
  padding:11px 14px;border:1px solid var(--cream-200);border-radius:4px;
  font-family:var(--font-body);font-size:14px;background:#fff;
  transition:border-color .2s var(--ease);color:var(--ink);
}
.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--navy-700);}
.form-group .file-label{
  display:flex;align-items:center;gap:10px;padding:11px 14px;
  border:1px dashed var(--cream-200);border-radius:4px;background:#fff;
  cursor:pointer;font-family:var(--font-body);font-size:13px;color:var(--gray-500);
  transition:border-color .2s var(--ease);
}
.form-group .file-label:hover{border-color:var(--navy-700);color:var(--navy-700);}
.form-group input[type="file"]{display:none;}
.file-name{font-size:12px;color:var(--gray-500);}
.form-submit{
  padding:14px;background:var(--navy-900);color:var(--cream-50);border:none;border-radius:4px;
  font-family:var(--font-ui);font-size:13px;font-weight:600;letter-spacing:.06em;
  cursor:pointer;transition:opacity .2s;margin-top:4px;
}
.form-submit:hover{opacity:.85;}
.form-submit:disabled{opacity:.45;cursor:not-allowed;}
.form-feedback{padding:12px 14px;border-radius:4px;font-family:var(--font-body);font-size:13px;display:none;}
.form-feedback.success{background:#f0faf4;border:1px solid #a3d9b1;color:#1a6b35;}
.form-feedback.error{background:#fdf2f2;border:1px solid #e8b4b4;color:#8a2020;}

.privacy-overlay{
  position:fixed;inset:0;z-index:960;
  background:rgba(11,24,48,.9);backdrop-filter:blur(8px);
  display:flex;align-items:center;justify-content:center;padding:20px;
  opacity:0;pointer-events:none;transition:opacity .3s var(--ease);
}
.privacy-overlay.open{opacity:1;pointer-events:all;}
.privacy-modal{
  background:#fff;border-radius:6px;width:100%;max-width:640px;max-height:86vh;
  display:flex;flex-direction:column;transform:translateY(20px);
  transition:transform .4s var(--ease-out);box-shadow:0 40px 100px rgba(0,0,0,.4);
}
.privacy-overlay.open .privacy-modal{transform:translateY(0);}
.privacy-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:20px 24px;border-bottom:1px solid #eee;flex-shrink:0;
}
.privacy-header h2{font-family:var(--font-display);font-size:1.3rem;font-weight:500;color:var(--navy-700);}
.privacy-close{background:none;border:none;cursor:pointer;font-size:22px;color:#999;padding:4px;transition:color .2s;}
.privacy-close:hover{color:var(--navy-700);}
.privacy-body{overflow-y:auto;padding:24px;font-family:var(--font-body);font-size:13px;line-height:1.78;color:#333;}
.privacy-body h3{font-size:13px;font-weight:600;margin:20px 0 6px;color:var(--navy-700);}
.privacy-body p,.privacy-body ul{margin-bottom:12px;}
.privacy-body ul{padding-left:18px;}

.cookie-notice{
  position:fixed;bottom:0;left:0;right:0;z-index:940;
  background:var(--navy-900);border-top:1px solid rgba(206,174,108,.18);
  padding:16px clamp(20px,5vw,60px);
  display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  transform:translateY(110%);transition:transform .5s var(--ease-out);
}
.cookie-notice.show{transform:translateY(0);}
.cookie-notice p{font-family:var(--font-body);font-size:.82rem;color:rgba(231,236,244,.65);line-height:1.55;flex:1;min-width:200px;}
.cookie-notice p button{background:none;border:none;padding:0;color:var(--gold-400);font-size:inherit;font-family:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px;}
.cookie-actions{display:flex;gap:10px;flex-shrink:0;}
.cookie-btn{padding:9px 22px;border-radius:3px;font-family:var(--font-ui);font-size:.78rem;font-weight:600;letter-spacing:.06em;cursor:pointer;white-space:nowrap;}
.cookie-btn--accept{background:var(--gold-400);color:var(--brown-900);border:none;transition:background .3s;}
.cookie-btn--accept:hover{background:var(--gold-300);}
.cookie-btn--decline{background:transparent;color:rgba(231,236,244,.55);border:1px solid rgba(206,174,108,.25);transition:all .3s;}
.cookie-btn--decline:hover{border-color:rgba(206,174,108,.5);color:rgba(231,236,244,.85);}
@media(max-width:600px){
  .cookie-notice{padding:16px 22px;}
  .cookie-actions{width:100%;}
  .cookie-btn{flex:1;text-align:center;}
}
@media(max-width:480px){
  .form-overlay,.privacy-overlay{padding:0;}
  .form-modal,.privacy-modal{max-height:100vh;border-radius:0;}
}
