:root{
  --roxo:#6846A8;
  --lilas:#D9C8F2;
  --preto:#17151A;
  --branco:#FFFFFF;
  --creme:#F8F7F5;
  --serif:'Cormorant Garamond', serif;
  --sans:'Manrope', sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--branco);
  color:var(--preto);
  font-family:var(--sans);
  font-weight:400;
  line-height:1.6;
  overflow-x:hidden;
}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.01ms !important; transition-duration:0.01ms !important;}
}
img,video{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:1240px;margin:0 auto;padding:0 32px;}
h1,h2,h3{font-family:var(--serif);font-weight:500;letter-spacing:0.005em;}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .9s ease, transform .9s ease;}
.reveal.in{opacity:1;transform:translateY(0);}

/* ---------- nav ---------- */
header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:rgba(255,255,255,0.88);backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(23,21,26,0.08);
}
nav{display:flex;align-items:center;justify-content:space-between;padding:14px 32px;max-width:1240px;margin:0 auto;}
.logo-img{height:30px;width:auto;display:block;}
.nav-links{display:flex;gap:40px;font-size:14px;}
.nav-links a{position:relative;padding-bottom:3px;}
.nav-links a::after{content:'';position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--roxo);transition:width .35s ease;}
.nav-links a:hover::after{width:100%;}
.burger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:8px;}
.burger span{width:24px;height:1px;background:var(--preto);display:block;transition:.3s;}
.mobile-menu{
  position:fixed;inset:0;background:var(--preto);color:var(--branco);
  display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:28px;
  padding:32px 40px;transform:translateX(100%);transition:transform .5s ease;z-index:99;
}
.mobile-menu.open{transform:translateX(0);}
.mobile-menu a{font-family:var(--serif);font-size:32px;}
.mobile-menu .close-x{position:absolute;top:26px;right:32px;font-size:15px;font-family:var(--sans);letter-spacing:.05em;cursor:pointer;background:none;border:none;color:var(--branco);}

@media (max-width:860px){
  .nav-links{display:none;}
  .burger{display:flex;}
}

/* ---------- hero ---------- */
.hero{position:relative;}
.hero-photo{
  position:relative;min-height:100vh;display:flex;align-items:flex-end;justify-content:center;
  background-image:url('../img/hero.jpg');
  background-size:cover;background-position:center 4%;background-repeat:no-repeat;
  overflow:hidden;
}
.hero-photo::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg, transparent 0%, transparent 44%, var(--branco) 78%, var(--branco) 100%);
}
.hero-content{position:relative;z-index:2;padding:32px;padding-bottom:clamp(48px,7vh,90px);color:var(--preto);text-align:center;display:flex;flex-direction:column;align-items:center;}
.hero-logo-wrap{position:relative;display:inline-block;}
.hero-logo{
  position:relative;height:clamp(90px,17vw,230px);width:auto;
  filter:drop-shadow(0 3px 10px rgba(0,0,0,0.18));
}
.hero .tagline{font-family:var(--serif);font-style:italic;font-size:clamp(18px,2.2vw,25px);margin-top:16px;max-width:460px;color:#3a3640;text-wrap:balance;}
.tag-corner{
  position:absolute;bottom:16px;right:20px;font-family:var(--sans);font-size:10px;
  letter-spacing:0.08em;color:rgba(255,255,255,0.45);z-index:2;
}
@media (max-width:860px){
  .hero-photo{min-height:100vh;}
}


.btn{
  display:inline-block;margin-top:40px;padding:15px 34px;
  border:1px solid var(--preto);font-size:13px;letter-spacing:0.04em;
  transition:background .35s ease, color .35s ease, border-color .35s ease;
}
.btn:hover{background:var(--preto);color:var(--branco);}
.btn.on-dark{border-color:var(--branco);color:var(--branco);}
.btn.on-dark:hover{background:var(--branco);color:var(--preto);}

/* ---------- section basics ---------- */
section{padding:120px 0;}
.eyebrow-num{font-family:var(--serif);font-size:15px;color:var(--roxo);margin-bottom:18px;display:flex;align-items:center;gap:14px;}
.eyebrow-num::after{content:'';display:block;width:36px;height:1px;background:rgba(23,21,26,0.25);}
.portfolio-dark .eyebrow-num::after{background:rgba(255,255,255,0.25);}
.section-title{font-size:clamp(34px,4.2vw,54px);max-width:640px;}
.hairline{height:1px;background:rgba(23,21,26,0.1);width:100%;margin:0;}
.mark{position:absolute;font-family:var(--serif);font-style:italic;font-size:13px;color:#9a93a6;letter-spacing:0.02em;}

/* ---------- sobre ---------- */
.sobre{padding:0;}
.sobre-grid{display:grid;grid-template-columns:1.05fr 0.95fr;align-items:center;background:linear-gradient(180deg, var(--preto) 0px, var(--branco) 150px);}
.sobre-photo{
  position:relative;min-height:720px;align-self:stretch;
  background-size:cover;background-position:center 18%;background-repeat:no-repeat;
}
.sobre-photo::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(90deg, transparent 62%, var(--branco) 100%);
}
.sobre-text{padding:0 64px 0 0;position:relative;display:flex;flex-direction:column;justify-content:center;min-height:720px;}
.sobre-text .mark{position:relative;display:block;top:auto;left:auto;margin-bottom:18px;}
.sobre-title{color:var(--roxo);}
.sobre p{margin-top:22px;font-size:16px;max-width:480px;color:#3a3640;}
.sobre p:first-of-type{margin-top:26px;}
@media (max-width:860px){
  .sobre-grid{grid-template-columns:1fr;}
  .sobre-photo{min-height:56vh;}
  .sobre-photo::after{background:linear-gradient(180deg, transparent 88%, var(--branco) 100%);}
  .sobre-text{padding:32px 32px 40px;min-height:0;}
}

/* ---------- servicos ---------- */
.servicos-list{position:relative;}
.servicos-list::before{content:'';position:absolute;left:39px;top:0;bottom:0;width:1px;background:rgba(23,21,26,0.08);}
.servico{padding:44px 0;border-top:1px solid rgba(23,21,26,0.1);display:grid;grid-template-columns:80px 1fr;gap:24px;cursor:pointer;transition:padding .4s ease;}
.servico:last-child{border-bottom:1px solid rgba(23,21,26,0.1);}
.servico .num{font-family:var(--serif);font-size:20px;color:var(--roxo);position:relative;z-index:1;}
.servico h3{font-size:clamp(24px,3.4vw,40px);font-weight:500;transition:transform .4s ease;}
.servico.featured h3{font-size:clamp(30px,4.4vw,50px);color:var(--roxo);}
.servico:nth-child(3) h3, .servico:nth-child(4) h3{font-weight:400;}
.servico p{max-width:520px;color:#4a4650;margin-top:10px;font-size:15px;opacity:0;max-height:0;overflow:hidden;transition:opacity .45s ease, max-height .45s ease, margin .45s ease;}
.servico:hover p, .servico.active p{opacity:1;max-height:120px;margin-top:14px;}
.servico:hover h3, .servico.active h3{transform:translateX(10px);}
.servico:nth-child(2){padding-left:36px;}
@media (max-width:860px){.servico:nth-child(2){padding-left:0;}.servicos-list::before{left:24px;}}

/* ---------- portfolio ---------- */
.portfolio-dark{background:var(--preto);color:var(--branco);}
.portfolio-dark .section-title{color:var(--branco);}
.gallery{display:grid;grid-template-columns:repeat(6,1fr);gap:20px 14px;margin-top:64px;align-items:start;}
.p-item{position:relative;}
.gitem{background:linear-gradient(150deg,#231f29,#2c2735);border:1px solid rgba(255,255,255,0.08);position:relative;overflow:hidden;line-height:0;}
.gitem video, .gitem img{width:100%;height:auto;display:block;}
.p-item.p03{grid-column:span 2;}
.p-item.p04{grid-column:span 4;}
.p-item.p05{grid-column:span 2;}
.p-item.p06{grid-column:span 2;}
.p-item.p07{grid-column:span 2;}
.p-item.p08{grid-column:span 3;}
.p-item.p09{grid-column:span 3;}
@media (max-width:860px){
  .gallery{grid-template-columns:repeat(2,1fr);}
  .p-item{grid-column:span 2 !important;}
}

/* ---------- cta final ---------- */
.cta-final{background:linear-gradient(135deg,var(--roxo),#5a3a91);color:var(--branco);text-align:center;padding:150px 0;}
.cta-final h2{font-size:clamp(30px,4.6vw,52px);max-width:820px;margin:0 auto;text-wrap:balance;line-height:1.15;}
.cta-final .sub{margin-top:18px;font-family:var(--serif);font-style:italic;font-size:20px;color:var(--lilas);}
.cta-final .btn{margin-top:44px;}

/* ---------- footer ---------- */
footer{background:var(--preto);color:var(--branco);padding:70px 0 34px;}
footer .top{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:30px;border-bottom:1px solid rgba(255,255,255,0.12);padding-bottom:40px;}
.footer-logo-plate{background:var(--creme);padding:12px 18px;display:inline-flex;}
.footer-logo-plate .logo-img{height:26px;}
footer .flinks{display:flex;gap:28px;font-size:14px;}
footer .tagline{margin-top:36px;font-family:var(--serif);font-style:italic;font-size:18px;color:#cabfdd;max-width:420px;}
footer .bottom{margin-top:24px;font-size:12px;color:#847d90;}
