

  :root{
    --verde-porta: #4B5A42;      
    --verde-escuro: #333F2C;     
    --verde-sombra: #232B1E;     
    --creme: #F4EFE4;            
    --areia: #E4D9C3;            
    --dourado: #C29A56;          
    --dourado-suave: #E4C98C;    
    --texto: #2B2A22;
    --texto-suave: #6b6a5c;
    --branco: #FEFCF6;
    --linha: rgba(43,42,34,0.14);

    --serif: 'Fraunces', Georgia, serif;
    --sans: 'Work Sans', -apple-system, BlinkMacSystemFont, sans-serif;

    --easing: cubic-bezier(.6,.05,.28,1);
  }

  *{ box-sizing:border-box; }
  html{ scroll-behavior:smooth; overflow-x:hidden; overflow-x:clip; }
  body{
    margin:0;
    background:var(--creme);
    color:var(--texto);
    font-family:var(--sans);
    font-weight:400;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  body.locked{ overflow:hidden; height:100vh; }

  h1,h2,h3,h4{ font-family:var(--serif); font-weight:500; margin:0; color:var(--verde-escuro); }
  p{ margin:0; }
  a{ color:inherit; text-decoration:none; }
  img{ max-width:100%; display:block; }
  .eyebrow{
    font-family:var(--sans); text-transform:uppercase; letter-spacing:.18em;
    font-size:.72rem; color:var(--dourado); font-weight:600; margin-bottom:.9rem;
  }
  .container{ max-width:1120px; margin:0 auto; padding:0 6vw; }
  section{ padding:clamp(44px,7vw,96px) 0; position:relative; }
  
  [class$="-grid"] > *{ min-width:0; }

  .reveal{ opacity:0; transform:translateY(24px); transition:opacity .9s var(--easing), transform .9s var(--easing); }
  .reveal.in{ opacity:1; transform:none; }
  @media (prefers-reduced-motion: reduce){
    .reveal{ opacity:1; transform:none; transition:none; }
  }

  #door-hero{
    position:fixed; inset:0; z-index:1000;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:1.7rem;
    background:linear-gradient(180deg, #F1E9D8, #E4D8BC);
    transition:opacity 1.1s var(--easing), visibility 1.1s var(--easing);
    padding:4vh 4vw;
  }
  #door-hero.hidden{ opacity:0; visibility:hidden; pointer-events:none; }

  .brand-mark{
    font-family:var(--serif); font-weight:500; letter-spacing:.16em;
    font-size:clamp(1.4rem, 3.4vw, 2.3rem); color:var(--verde-escuro);
    text-align:center; pointer-events:none; z-index:2;
  }
  .brand-mark span{ display:block; font-family:var(--sans); font-size:.62rem; letter-spacing:.34em;
    text-transform:uppercase; color:var(--dourado); margin-top:.5rem; font-weight:600; }

  .facade-wrap{
    position:relative; width:min(680px, 92vw); height:min(500px, 62vh);
  }
  .facade-wrap svg{ width:100%; height:100%; display:block; }
  
  @media (max-width:640px){
    .facade-wrap{ width:94vw; height:auto; aspect-ratio:1600 / 810; }
  }

  .door-leaf-wrap{
    position:absolute;
    perspective:1300px; z-index:1; cursor:pointer;
    visibility:hidden;
  }
  .door-leaf-wrap.ready{ visibility:visible; }
  .door-leaf{
    position:absolute; top:0; height:100%; width:50%;
    transition:transform 1.05s var(--easing), filter 1.05s var(--easing);
    transform-style:preserve-3d;
    background:linear-gradient(180deg, #6E8060 0%, #5B6E4C 55%, #4B5A42 100%);
  }
  .door-leaf.left{ left:0; transform-origin:left center; border-radius:2px 0 0 1px;
    box-shadow:inset -5px 0 9px rgba(0,0,0,.28), inset 0 0 0 1px rgba(0,0,0,.22); }
  .door-leaf.right{ left:50%; transform-origin:right center; border-radius:0 2px 1px 0;
    box-shadow:inset 5px 0 9px rgba(0,0,0,.28), inset 0 0 0 1px rgba(0,0,0,.22); }
  
  .door-leaf::before{
    content:''; position:absolute; inset:4%; border:1px solid rgba(255,255,255,.1); border-radius:1px;
  }
  
  .door-leaf .painel{
    position:absolute; left:14%; right:14%; border-radius:1px;
    background:rgba(0,0,0,.13);
    box-shadow:inset 0 0 0 2px rgba(0,0,0,.28), inset 0 3px 7px rgba(0,0,0,.35), inset 0 -2px 4px rgba(255,255,255,.06);
  }
  .door-leaf .painel.p1{ top:6%; height:46%; }
  .door-leaf .painel.p2{ top:56%; height:14%; }
  .door-leaf .painel.p3{ top:74%; height:18%; }
  .door-leaf .macaneta{
    position:absolute; top:46%; width:9%; height:26%; min-width:2px; max-width:7px; border-radius:2px;
    background:linear-gradient(180deg, #C9A15C 0%, #7a6533 45%, #241f16 100%);
    box-shadow:0 0 4px rgba(0,0,0,.4);
  }
  .door-leaf.left .macaneta{ right:8%; }
  .door-leaf.right .macaneta{ left:8%; }

  #door-hero.opening .door-leaf.left{ transform:rotateY(-100deg); filter:brightness(.55); }
  #door-hero.opening .door-leaf.right{ transform:rotateY(100deg); filter:brightness(.55); }

  .sconce-glow{
    position:absolute; width:14px; height:14px; border-radius:50%;
    transform:translate(-50%,-50%);
    background:radial-gradient(circle, var(--dourado-suave), transparent 70%);
    box-shadow:0 0 16px 9px rgba(228,201,140,.45);
    animation:flicker 4s ease-in-out infinite; pointer-events:none; z-index:1;
    visibility:hidden;
  }
  .sconce-glow.ready{ visibility:visible; }
  @keyframes flicker{ 0%,100%{opacity:1;} 45%{opacity:.82;} 50%{opacity:1;} 78%{opacity:.88;} }

  .door-cta{
    display:flex; align-items:center; gap:.55rem; z-index:2;
    font-family:var(--sans); font-size:.72rem; letter-spacing:.28em;
    text-transform:uppercase; color:var(--verde-escuro);
    cursor:pointer; background:none; border:none; padding:.4rem;
    opacity:.85; transition:opacity .3s, letter-spacing .3s;
  }
  .door-cta:hover{ opacity:1; letter-spacing:.34em; }
  .door-cta svg{ width:12px; height:12px; }

  header.site-nav{
    position:sticky; top:0; z-index:200;
    background:rgba(244,239,228,.86);
    -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
    border-bottom:1px solid var(--linha);
  }
  .nav-inner{
    max-width:1120px; margin:0 auto; padding:1.1rem 6vw;
    display:flex; align-items:center; justify-content:space-between;
  }
  .logo{ font-family:var(--serif); font-size:1.25rem; letter-spacing:.08em; color:var(--verde-escuro); }
  .logo small{ display:block; font-family:var(--sans); font-size:.55rem; letter-spacing:.24em; color:var(--texto-suave); font-weight:500; margin-top:.15rem; }
  nav.links{ display:flex; gap:2rem; font-size:.85rem; }
  nav.links a{ position:relative; color:var(--texto); }
  nav.links a::after{
    content:''; position:absolute; left:0; bottom:-5px; width:0; height:1px; background:var(--dourado);
    transition:width .3s var(--easing);
  }
  nav.links a:hover::after{ width:100%; }
  
  nav.links a.nav-cartao{
    border:1px solid var(--dourado); border-radius:100px; padding:.45rem 1rem;
    color:var(--verde-porta); font-weight:600;
  }
  nav.links a.nav-cartao::after{ display:none; }
  nav.links a.nav-cartao:hover{ background:var(--dourado); color:var(--branco); }
  .nav-toggle{ display:none; background:none; border:none; cursor:pointer; }
  .nav-toggle span, .nav-toggle span::before, .nav-toggle span::after{
    content:''; display:block; width:22px; height:2px; background:var(--verde-escuro); position:relative; transition:.3s;
  }
  .nav-toggle span::before{ position:absolute; top:-7px; }
  .nav-toggle span::after{ position:absolute; top:7px; }

  @media (max-width:820px){
    
    header.site-nav{ background:var(--creme); backdrop-filter:none; -webkit-backdrop-filter:none; }

    nav.links{
      position:fixed; inset:64px 0 0 0; background:var(--creme); flex-direction:column;
      padding:2.5rem 8vw; gap:1.6rem; font-size:1.1rem; transform:translateX(100%);
      transition:transform .4s var(--easing); z-index:190;
    }
    nav.links.open{ transform:translateX(0); }
    .nav-toggle{ display:block; }
  }

  .sobre-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(2rem,6vw,5rem); align-items:start; }
  @media (max-width:820px){ .sobre-grid{ grid-template-columns:1fr; } }
  .sobre-grid h2{ font-size:clamp(1.9rem,3.6vw,2.7rem); line-height:1.15; }
  .placeholder-field{
    border:1px dashed rgba(43,42,34,.32); border-radius:10px;
    padding:1.4rem 1.6rem; background:rgba(254,252,246,.5);
    font-style:italic; color:var(--texto-suave); font-size:.98rem; line-height:1.75;
  }
  .placeholder-field b{ color:var(--verde-porta); font-style:normal; font-weight:600; }
  
  .bio-text{ color:var(--texto-suave); font-size:.98rem; line-height:1.8; }
  .bio-text b{ color:var(--verde-porta); font-weight:600; }
  .field-tag{
    display:inline-block; font-family:var(--sans); font-style:normal; font-size:.68rem;
    letter-spacing:.1em; text-transform:uppercase; color:var(--dourado); border:1px solid var(--dourado);
    border-radius:100px; padding:.2rem .7rem; margin-bottom:.9rem;
  }

  .servicos-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.6rem; }
  @media (max-width:760px){ .servicos-grid{ grid-template-columns:1fr; } }
  .servico-card{
    background:var(--branco); border-radius:14px; padding:clamp(1.8rem,3vw,2.4rem);
    box-shadow:0 20px 45px rgba(43,42,34,.08);
  }
  .servico-card h3{ font-size:1.25rem; margin:.9rem 0 .8rem; }
  .servico-card p{ font-size:.92rem; color:var(--texto-suave); line-height:1.75; }

  #fundadores{ background:var(--verde-escuro); color:var(--branco); }
  #fundadores h2, #fundadores .eyebrow{ color:var(--branco); }
  #fundadores .eyebrow{ color:var(--dourado-suave); }
  .fundadores-grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(2rem,6vw,5rem); align-items:center; }
  @media (max-width:820px){ .fundadores-grid{ grid-template-columns:1fr; } }
  
  .fundadores-grid > div{ min-width:0; }
  .fundadores-grid img{ width:100%; height:420px; max-height:420px; object-fit:cover; object-position:center top; border-radius:14px; box-shadow:0 30px 60px rgba(0,0,0,.35); }
  #fundadores .placeholder-field{
    border-color:rgba(254,252,246,.3); background:rgba(254,252,246,.06); color:rgba(254,252,246,.75);
  }
  #fundadores .placeholder-field b{ color:var(--dourado-suave); }
  #fundadores .bio-text{ color:rgba(254,252,246,.78); }
  #fundadores .bio-text b{ color:var(--dourado-suave); }
  .fundador-names{ display:flex; gap:2.4rem; margin:1.6rem 0 1.8rem; flex-wrap:wrap; }
  .fundador-names div span{ display:block; }
  .fundador-nome{ font-family:var(--serif); font-size:1.15rem; }
  .fundador-cargo{ font-size:.78rem; letter-spacing:.05em; color:var(--dourado-suave); margin-top:.2rem; }

  .equipe-photo{ border-radius:14px; overflow:hidden; margin-bottom:2.6rem; box-shadow:0 25px 55px rgba(43,42,34,.15); }
  .equipe-photo img{ width:100%; height:100%; object-fit:cover; object-position:center top; display:block; }
  .equipe-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(240px,1fr)); gap:1.2rem; }
  @media (max-width:500px){ .equipe-grid{ grid-template-columns:1fr; } }
  .equipe-card{
    background:var(--branco); border:1px solid var(--linha); border-radius:12px; padding:1.4rem 1.2rem;
  }
  .equipe-card .field-tag{ margin-bottom:.7rem; }
  .equipe-card .placeholder-field{ border:none; padding:0; background:none; font-size:.88rem; }
  .equipe-card .nome-placeholder{
    font-family:var(--serif); font-style:normal; color:var(--verde-escuro); font-size:1.05rem; margin-bottom:.25rem; display:block;
  }

  #local{ background:var(--areia); }
  .local-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,3.5rem); align-items:stretch; }
  @media (max-width:820px){ .local-grid{ grid-template-columns:1fr; } }
  .local-card{
    background:var(--branco); border-radius:14px; padding:clamp(1.8rem,3vw,2.6rem);
    display:flex; flex-direction:column; justify-content:center; gap:1.1rem;
    box-shadow:0 20px 45px rgba(43,42,34,.08);
  }
  .local-card .endereco{ font-family:var(--serif); font-size:1.3rem; color:var(--verde-escuro); line-height:1.5; }
  .local-item{ display:flex; gap:.9rem; align-items:flex-start; font-size:.92rem; }
  .local-item svg{ width:18px; height:18px; flex-shrink:0; margin-top:.15rem; color:var(--verde-porta); }
  .map-wrap{ border-radius:14px; overflow:hidden; min-height:260px; max-height:340px; box-shadow:0 20px 45px rgba(43,42,34,.08); }
  .map-wrap iframe{ width:100%; height:100%; min-height:260px; border:0; filter:grayscale(.15) sepia(.08); }
  @media (max-width:820px){
    .map-wrap, .map-wrap iframe{ min-height:220px; max-height:260px; }
  }

  .contato-grid{ display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(2rem,6vw,4rem); }
  @media (max-width:820px){ .contato-grid{ grid-template-columns:1fr; } }
  
  #contato{ padding-bottom:clamp(32px,5vw,56px); }
  #projetos{ padding-top:clamp(32px,5vw,56px); }
  form.contato-form{ display:flex; flex-direction:column; gap:1.3rem; }
  .campo{ display:flex; flex-direction:column; gap:.5rem; }
  .campo label{ font-size:.78rem; letter-spacing:.06em; text-transform:uppercase; color:var(--texto-suave); font-weight:600; }
  .campo input, .campo textarea{
    font-family:var(--sans); font-size:1rem; padding:.9rem 1rem; border-radius:8px;
    border:1px solid rgba(43,42,34,.22); background:var(--branco); color:var(--texto);
    transition:border-color .25s; resize:vertical;
  }
  .campo input:focus, .campo textarea:focus{ outline:none; border-color:var(--verde-porta); }
  .campo .hint{ font-size:.76rem; color:var(--texto-suave); font-style:italic; }
  .chip-group{ display:flex; flex-wrap:wrap; gap:.6rem; }
  .chip{
    position:relative; cursor:pointer; font-size:.85rem; color:var(--texto);
    padding:.6rem 1.1rem; border-radius:100px; border:1px solid rgba(43,42,34,.22);
    background:var(--branco); transition:background .25s, border-color .25s, color .25s;
  }
  .chip input{ position:absolute; opacity:0; width:0; height:0; }
  .chip:has(input:checked){ background:var(--verde-porta); border-color:var(--verde-porta); color:var(--branco); }
  .chip:has(input:focus-visible){ outline:2px solid var(--dourado); outline-offset:2px; }
  .btn-enviar{
    align-self:flex-start; background:var(--verde-porta); color:var(--branco); border:none;
    padding:.95rem 2.2rem; border-radius:100px; font-size:.92rem; letter-spacing:.03em; cursor:pointer;
    transition:background .3s var(--easing), transform .3s var(--easing);
  }
  .btn-enviar:hover{ background:var(--verde-escuro); transform:translateY(-2px); }
  .form-msg{ font-size:.85rem; color:var(--verde-porta); min-height:1.2em; }

  .projetos-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem;
  }
  @media (max-width:900px){ .projetos-grid{ grid-template-columns:repeat(2,1fr); } }
  @media (max-width:560px){ .projetos-grid{ grid-template-columns:1fr; } }

  .projeto-card{
    display:block; width:100%; background:var(--branco); border-radius:14px; overflow:hidden;
    border:1px solid var(--linha); box-shadow:0 18px 40px rgba(43,42,34,.07);
    transition:transform .4s var(--easing), box-shadow .4s var(--easing);
    font:inherit; text-align:left; padding:0; cursor:pointer; -webkit-tap-highlight-color:transparent;
  }
  .projeto-card:hover{ transform:translateY(-6px); box-shadow:0 26px 55px rgba(43,42,34,.14); }
  .projeto-card:focus-visible{ outline:2px solid var(--dourado); outline-offset:3px; }

  .projeto-img{ position:relative; width:100%; aspect-ratio:4/3; background:var(--areia); overflow:hidden; }
  .projeto-img img{ width:100%; height:100%; object-fit:cover; display:block; }

  .projeto-placeholder{
    position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:.7rem; text-align:center; color:var(--texto-suave); font-size:.8rem; line-height:1.5;
    border:1px dashed rgba(43,42,34,.25); margin:10px; border-radius:8px; padding:1rem;
  }
  .projeto-placeholder svg{ width:34px; height:34px; opacity:.5; }
  .projeto-placeholder small{ opacity:.75; font-style:italic; }

  .projeto-info{ padding:1.3rem 1.4rem 1.5rem; display:flex; flex-direction:column; gap:.3rem; }
  .projeto-info .field-tag{ margin-bottom:.2rem; }
  .projeto-nome{ font-family:var(--serif); font-size:1.15rem; color:var(--verde-escuro); }
  .projeto-meta{ font-size:.82rem; color:var(--texto-suave); }

  footer{ background:var(--verde-escuro); color:rgba(254,252,246,.65); padding:2.6rem 0; font-size:.82rem; }
  .footer-inner{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; }
  footer .logo{ color:var(--branco); }
  footer .footer-cartao{ color:var(--dourado-suave); font-weight:600; transition:opacity .3s; }
  footer .footer-cartao:hover{ opacity:.75; }

  
  @media (max-width:900px){
    .container{ padding:0 5vw; }
    .fundadores-grid img{ max-width:420px; margin:0 auto; }
  }

  @media (max-width:560px){
    .fundadores-grid img{ height:260px; max-height:260px; }
    .equipe-photo{ height:260px; max-height:260px; }
  }

  @media (max-width:380px){
    .brand-mark{ font-size:1.15rem; }
    .door-cta{ font-size:.66rem; letter-spacing:.22em; }
    section{ padding:40px 0; }
    .logo{ font-size:1.05rem; }
    .btn-enviar{ width:100%; text-align:center; }
    .footer-inner{ flex-direction:column; align-items:flex-start; gap:.6rem; }
  }

  @media (min-width:1440px){
    .container{ max-width:1240px; }
  }

  @media (hover:none){
    nav.links a, .btn-enviar, .door-cta{ padding-top:.6rem; padding-bottom:.6rem; }
  }

  .lightbox{
    position:fixed; inset:0; z-index:200;
    display:flex; align-items:center; justify-content:center;
    visibility:hidden; opacity:0;
    transition:opacity .35s var(--easing), visibility .35s var(--easing);
  }
  .lightbox.open{ visibility:visible; opacity:1; }

  .lightbox-backdrop{
    position:absolute; inset:0; background:rgba(20,19,14,.92);
    -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  }

  .lightbox-shell{
    position:relative; z-index:2; width:100%; height:100%;
    display:flex; align-items:center; justify-content:center;
    padding:70px 28px 110px;
  }

  .lightbox-frame{
    position:relative; max-width:min(880px, 84vw); max-height:78vh;
    display:flex; align-items:center; justify-content:center;
    transform:scale(.96); opacity:0; transition:transform .4s var(--easing), opacity .4s var(--easing);
  }
  .lightbox.open .lightbox-frame{ transform:scale(1); opacity:1; }

  .lightbox-frame img{
    max-width:100%; max-height:78vh; display:block; object-fit:contain;
    border-radius:10px; box-shadow:0 30px 80px rgba(0,0,0,.5);
    background:var(--verde-sombra);
    transition:opacity .22s var(--easing);
  }
  .lightbox-frame img.is-fading{ opacity:0; }

  .lightbox-dots{
    position:absolute; top:-34px; left:50%; transform:translateX(-50%);
    display:flex; gap:6px;
  }
  .lightbox-dots span{
    width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,.35);
    transition:background .25s var(--easing), transform .25s var(--easing);
  }
  .lightbox-dots span.active{ background:var(--dourado-suave); transform:scale(1.25); }

  .lightbox-close{
    position:absolute; top:22px; right:26px; z-index:3;
    width:42px; height:42px; border-radius:50%; border:1px solid rgba(255,255,255,.25);
    background:rgba(255,255,255,.06); color:var(--branco);
    display:flex; align-items:center; justify-content:center; cursor:pointer;
    transition:background .25s var(--easing), transform .25s var(--easing);
  }
  .lightbox-close:hover{ background:rgba(255,255,255,.16); transform:rotate(90deg); }
  .lightbox-close svg{ width:18px; height:18px; }

  .lightbox-arrow{
    position:absolute; top:50%; z-index:3; transform:translateY(-50%);
    width:52px; height:52px; border-radius:50%; border:1px solid rgba(255,255,255,.22);
    background:rgba(255,255,255,.08); color:var(--branco);
    display:flex; align-items:center; justify-content:center; cursor:pointer;
    transition:background .25s var(--easing), transform .25s var(--easing), opacity .25s var(--easing);
  }
  .lightbox-arrow.prev{ left:18px; }
  .lightbox-arrow.next{ right:18px; }
  .lightbox-arrow:hover{ background:rgba(255,255,255,.2); transform:translateY(-50%) scale(1.06); }
  .lightbox-arrow svg{ width:22px; height:22px; }
  .lightbox-arrow[disabled]{ opacity:0; pointer-events:none; }

  .lightbox-caption{
    position:absolute; left:0; right:0; bottom:34px;
    display:flex; flex-direction:column; align-items:center; gap:.2rem;
    text-align:center; color:var(--branco); padding:0 20px;
  }
  .lightbox-nome{ font-family:var(--serif); font-size:1.15rem; }
  .lightbox-meta{ font-size:.82rem; color:rgba(255,255,255,.65); }
  .lightbox-count{ font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--dourado-suave); margin-top:.35rem; }

  body.lightbox-locked{
    overflow:hidden;
  }

  @media (max-width:760px){
    .lightbox-shell{ padding:70px 10px 120px; }
    .lightbox-arrow{ width:40px; height:40px; }
    .lightbox-arrow.prev{ left:8px; }
    .lightbox-arrow.next{ right:8px; }
    .lightbox-arrow svg{ width:17px; height:17px; }
    .lightbox-frame{ max-width:100%; max-height:64vh; }
    .lightbox-frame img{ max-height:64vh; }
    .lightbox-close{ top:14px; right:14px; }
  }
