  :root{
    --cream:#F3EBDD;
    --ivory:#FBF6EC;
    --espresso:#2E1F14;
    --gold:#B08D57;
    --gold-light:#D4B483;
    --leather:#A67B5B;
    --line: rgba(176,141,87,0.55);
  }

  *{ box-sizing:border-box; margin:0; padding:0; }

  html{ scroll-behavior:smooth; }

  body{
    background:var(--cream);
    color:var(--espresso);
    font-family:'Jost', sans-serif;
    font-weight:400;
    line-height:1.6;
    overflow-x:hidden;
  }

  h1,h2,h3{
    font-family:'Playfair Display', serif;
    font-weight:600;
    letter-spacing:0.01em;
  }

  .eyebrow{
    font-family:'Jost', sans-serif;
    font-size:0.72rem;
    letter-spacing:0.28em;
    text-transform:uppercase;
    color:var(--gold);
    font-weight:500;
  }

  a{ color:inherit; text-decoration:none; }

  img{ max-width:100%; display:block; }

  .wrap{
    max-width:1080px;
    margin:0 auto;
    padding:0 28px;
  }

  /* ---------- Stitch line (signature element) ---------- */
  .stitch{
    position:relative;
  }
  .stitch::before{
    content:"";
    position:absolute;
    left:50%;
    top:0;
    bottom:0;
    width:0;
    border-left:2px dashed var(--line);
    transform:translateX(-50%);
    z-index:1;
  }
  @media (max-width: 720px){
    .stitch::before{ display:none; }
  }

  /* ---------- Header / Nav ---------- */
  header{
    position:fixed;
    top:0; left:0; right:0;
    z-index:100;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:18px 28px;
    background:rgba(243,235,221,0.86);
    backdrop-filter:blur(8px);
    border-bottom:1px solid rgba(46,31,20,0.08);
    transition:padding 0.3s ease;
  }
  .header-mark{
    display:flex;
    align-items:center;
    gap:10px;
  }
  .header-mark img{
    height:38px;
    width:38px;
    object-fit:cover;
    border-radius:50%;
    border:1px solid var(--gold);
  }
  .header-mark span{
    font-family:'Playfair Display', serif;
    font-size:1rem;
    font-weight:600;
    letter-spacing:0.03em;
  }
  .header-cta{
    font-size:0.82rem;
    letter-spacing:0.05em;
    padding:9px 18px;
    border:1px solid var(--espresso);
    border-radius:999px;
    transition:background 0.25s ease, color 0.25s ease;
  }
  .header-cta:hover{
    background:var(--espresso);
    color:var(--ivory);
  }

  /* ---------- Hero ---------- */
  .hero{
    min-height:100svh;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:140px 28px 80px;
    position:relative;
  }
  .hero-logo{
    width:min(300px, 62vw);
    margin-bottom:8px;
    animation: fadeUp 1s ease both;
  }
  .hero-tagline{
    font-size:0.95rem;
    color:var(--leather);
    letter-spacing:0.04em;
    max-width:480px;
    margin:18px 0 34px;
    animation: fadeUp 1s ease 0.15s both;
  }
  .hero-ctas{
    display:flex;
    gap:16px;
    flex-wrap:wrap;
    justify-content:center;
    animation: fadeUp 1s ease 0.3s both;
  }
  .btn-primary{
    background:var(--espresso);
    color:var(--ivory);
    padding:15px 30px;
    border-radius:4px;
    font-size:0.9rem;
    letter-spacing:0.04em;
    display:inline-flex;
    align-items:center;
    gap:10px;
    transition:transform 0.25s ease, box-shadow 0.25s ease;
    box-shadow:0 8px 24px -12px rgba(46,31,20,0.5);
  }
  .btn-primary:hover{ transform:translateY(-2px); }
  .btn-secondary{
    border:1px solid var(--espresso);
    padding:15px 30px;
    border-radius:4px;
    font-size:0.9rem;
    letter-spacing:0.04em;
    transition:background 0.25s ease, color 0.25s ease;
  }
  .btn-secondary:hover{ background:var(--espresso); color:var(--ivory); }

  .scroll-cue{
    position:absolute;
    bottom:32px;
    left:50%;
    transform:translateX(-50%);
    width:1px;
    height:52px;
    background:linear-gradient(var(--gold), transparent);
    animation: pulse 2s ease-in-out infinite;
  }

  @keyframes fadeUp{
    from{ opacity:0; transform:translateY(18px); }
    to{ opacity:1; transform:translateY(0); }
  }
  @keyframes pulse{
    0%,100%{ opacity:0.3; }
    50%{ opacity:1; }
  }

  /* ---------- Section shell ---------- */
  section{
    padding:100px 0;
    position:relative;
  }
  .section-head{
    text-align:center;
    max-width:560px;
    margin:0 auto 56px;
  }
  .section-head h2{
    font-size:clamp(1.7rem, 3.5vw, 2.4rem);
    margin-top:10px;
  }
  .reveal{
    opacity:0;
    transform:translateY(24px);
    transition:opacity 0.7s ease, transform 0.7s ease;
  }
  .reveal.in{
    opacity:1;
    transform:translateY(0);
  }

  /* ---------- Sobre ---------- */
  .sobre-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:60px;
    align-items:center;
  }
  .sobre-text p{
    margin-bottom:16px;
    color:#4a3423;
    font-size:0.98rem;
  }
  .sobre-visual{
    position:relative;
    aspect-ratio:1/1;
    max-width:320px;
    margin:0 auto;
  }
  .clock-ring{
    position:absolute;
    inset:0;
    border-radius:50%;
    border:1.5px solid var(--gold);
  }
  .clock-ring.inner{
    inset:34px;
    border-style:dashed;
    opacity:0.6;
  }
  .clock-center{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    text-align:center;
    padding:20px;
  }
  .clock-center .num{
    font-family:'Playfair Display', serif;
    font-size:2.6rem;
    color:var(--gold);
  }
  .clock-center .lbl{
    font-size:0.72rem;
    letter-spacing:0.18em;
    text-transform:uppercase;
    color:var(--leather);
    margin-top:6px;
  }
  .stat-row{
    display:flex;
    gap:36px;
    margin-top:28px;
    justify-content:center;
  }
  .stat-row div{ text-align:center; }
  .stat-row .num{
    font-family:'Playfair Display', serif;
    font-size:1.5rem;
    color:var(--espresso);
  }
  .stat-row .lbl{
    font-size:0.68rem;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--leather);
  }

 @media (max-width: 720px){
  .sobre-grid{
    grid-template-columns: 1fr;
    gap: 0px;
    text-align: center;
    justify-items: center; /* centraliza os filhos no grid */
  }

  .sobre-visual{
    order: -1;
    margin: 0 auto;
    width: 220px; /* controla o tamanho do círculo no mobile */
  }

  .sobre-text h2,
  .sobre-text p{
    text-align: center;
  }

  .eyebrow{
    text-align: center;
  }

  .stat-row{
    justify-content: center;
    gap: 24px;
  }
}

  /* ---------- Serviços ---------- */
  .servicos-bg{
    background:var(--ivory);
  }
  .servicos-grid{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:1px;
    background:rgba(46,31,20,0.1);
    border:1px solid rgba(46,31,20,0.1);
  }
  .servico-card{
    background:var(--ivory);
    padding:34px 24px;
    text-align:center;
    transition:background 0.3s ease;
  }
  .servico-card:hover{ background:var(--cream); }
  .servico-icon{
    width:44px;
    height:44px;
    margin:0 auto 18px;
    color:var(--gold);
  }
  .servico-card h3{
    font-size:1rem;
    margin-bottom:8px;
  }
  .servico-card p{
    font-size:0.85rem;
    color:#6b5340;
  }
  @media (max-width: 860px){
    .servicos-grid{ grid-template-columns:repeat(2, 1fr); }
  }
  @media (max-width: 480px){
    .servicos-grid{ grid-template-columns:1fr; }
  }

  /* ---------- Galeria (comparar trabalhos — slider) ---------- */
  .galeria-intro{
    text-align:center;
    max-width:560px;
    margin:0 auto 50px;
  }
  .galeria-grid{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:28px;
  }
  @media (max-width: 720px){
    .galeria-grid{ grid-template-columns:1fr; }
  }

  .ba-slider{
    position:relative;
    aspect-ratio:4/3;
    border-radius:6px;
    overflow:hidden;
    cursor:ew-resize;
    box-shadow:0 20px 40px -20px rgba(46,31,20,0.35);
    user-select:none;
    border:1px solid rgba(46,31,20,0.1);
  }
  .ba-layer{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:8px;
    text-align:center;
    padding:20px;
  }
  .ba-layer.before{
    background:repeating-linear-gradient(135deg, #d9cdb8, #d9cdb8 10px, #cfc0a5 10px, #cfc0a5 20px);
    color:#5c4a34;
  }
  .ba-layer.after{
    background: linear-gradient(135deg, var(--espresso), #4a3423);
    color:var(--ivory);
    clip-path:inset(0 0 0 50%);
  }

  /* ---------- Galeria completa (grid + lightbox) ---------- */
  .galeria-full-grid{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:14px;
    margin-top:56px;
  }
  @media (max-width: 860px){
    .galeria-full-grid{ grid-template-columns:repeat(3, 1fr); }
  }
  @media (max-width: 560px){
    .galeria-full-grid{ grid-template-columns:repeat(2, 1fr); gap:10px; }
  }
  .foto-tile{
    aspect-ratio:1/1;
    border-radius:5px;
    overflow:hidden;
    cursor:pointer;
    position:relative;
    border:1px solid rgba(46,31,20,0.1);
    background:linear-gradient(135deg, #e5d9c3, #d9cdb8);
    display:flex;
    align-items:center;
    justify-content:center;
    transition:transform 0.3s ease, box-shadow 0.3s ease;
  }
  .foto-tile:hover{
    transform:translateY(-3px);
    box-shadow:0 14px 26px -14px rgba(46,31,20,0.4);
  }
  .foto-tile img{
    width:100%; height:100%;
    object-fit:cover;
  }
  .foto-tile .ph{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:4px;
    color:#7a6146;
    font-size:0.68rem;
    letter-spacing:0.06em;
    text-align:center;
    padding:8px;
  }
  .foto-tile .ph .n{
    font-family:'Playfair Display', serif;
    font-size:1.1rem;
    color:var(--gold);
  }
  .carregar-mais-wrap{
    text-align:center;
    margin-top:36px;
  }
  .btn-carregar{
    border:1px solid var(--gold);
    color:var(--espresso);
    background:transparent;
    padding:13px 28px;
    border-radius:999px;
    font-family:'Jost', sans-serif;
    font-size:0.85rem;
    letter-spacing:0.05em;
    cursor:pointer;
    transition:background 0.25s ease, color 0.25s ease;
  }
  .btn-carregar:hover{
    background:var(--gold);
    color:var(--ivory);
  }
  .btn-carregar:disabled{
    opacity:0.4;
    cursor:default;
  }

  /* Lightbox */
  .lightbox{
    position:fixed;
    inset:0;
    background:rgba(46,31,20,0.92);
    z-index:300;
    display:none;
    align-items:center;
    justify-content:center;
    padding:40px;
  }
  .lightbox.open{ display:flex; }
  .lightbox-inner{
    max-width:720px;
    width:100%;
    background:var(--cream);
    border-radius:6px;
    overflow:hidden;
    text-align:center;
    padding:40px 24px;
    position:relative;
  }
  .lightbox-inner .ph .n{ font-size:2rem; }
  .lightbox-close{
    position:absolute;
    top:24px;
    right:28px;
    color:var(--ivory);
    font-size:1.6rem;
    cursor:pointer;
    line-height:1;
    background:none;
    border:none;
  }

  /* ---------- Vídeos ---------- */
  .videos-grid{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:20px;
  }
  @media (max-width: 860px){
    .videos-grid{ grid-template-columns:repeat(2, 1fr); }
  }
  @media (max-width: 480px){
    .videos-grid{ grid-template-columns:1fr; }
  }
  .video-card{
    aspect-ratio:9/16;
    border-radius:8px;
    overflow:hidden;
    position:relative;
    background:linear-gradient(160deg, var(--espresso), #4a3423);
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    border:1px solid rgba(46,31,20,0.1);
  }
  .video-card video{
    width:100%; height:100%;
    object-fit:cover;
  }
  .video-card .play-btn{
    width:52px; height:52px;
    border-radius:50%;
    background:rgba(251,246,236,0.92);
    display:flex;
    align-items:center;
    justify-content:center;
    z-index:2;
    box-shadow:0 8px 20px -6px rgba(0,0,0,0.5);
  }
  .video-card .play-btn::after{
    content:"";
    border-style:solid;
    border-width:9px 0 9px 15px;
    border-color:transparent transparent transparent var(--espresso);
    margin-left:4px;
  }
  .video-card .vlabel{
    position:absolute;
    bottom:14px;
    left:14px;
    right:14px;
    color:var(--ivory);
    font-size:0.78rem;
    letter-spacing:0.03em;
    text-align:left;
    z-index:2;
  }
  .video-card .vph{
    position:absolute;
    top:14px;
    left:14px;
    font-size:0.65rem;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--gold-light);
    z-index:2;
  }
  .ba-layer .tag{
    font-size:0.68rem;
    letter-spacing:0.2em;
    text-transform:uppercase;
    opacity:0.8;
  }
  .ba-layer .camera{
    font-size:1.8rem;
  }
  .ba-layer p{
    font-size:0.82rem;
    max-width:220px;
  }
  .ba-handle{
    position:absolute;
    top:0; bottom:0;
    left:50%;
    width:2px;
    background:var(--gold-light);
    transform:translateX(-50%);
    z-index:5;
  }
  .ba-handle::after{
    content:"↔";
    position:absolute;
    top:50%; left:50%;
    transform:translate(-50%,-50%);
    width:38px; height:38px;
    background:var(--gold-light);
    color:var(--espresso);
    border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    font-size:1rem;
    box-shadow:0 4px 12px rgba(0,0,0,0.25);
  }
  .ba-caption{
    text-align:center;
    font-size:0.82rem;
    color:var(--leather);
    margin-top:12px;
    letter-spacing:0.02em;
  }
  .galeria-note{
    text-align:center;
    font-size:0.8rem;
    color:var(--leather);
    margin-top:40px;
    opacity:0.8;
  }

  /* ---------- Como funciona ---------- */
  .passos{
    max-width:640px;
    margin:0 auto;
  }
  .passo{
    display:grid;
    grid-template-columns:64px 1fr;
    gap:24px;
    padding:28px 0;
    position:relative;
  }
  .passo:not(:last-child)::after{
    content:"";
    position:absolute;
    left:31px;
    bottom:0;
    width:0;
    height:28px;
    border-left:2px dashed var(--line);
  }
  .passo-num{
    width:64px; height:64px;
    border-radius:50%;
    border:1.5px solid var(--gold);
    display:flex; align-items:center; justify-content:center;
    font-family:'Playfair Display', serif;
    font-size:1.3rem;
    color:var(--gold);
    background:var(--cream);
    z-index:2;
  }
  .passo-text h3{
    font-size:1.05rem;
    margin-bottom:6px;
  }
  .passo-text p{
    font-size:0.9rem;
    color:#5c4a34;
  }

  /* ---------- CTA final ---------- */
  .cta-final{
    background:var(--espresso);
    color:var(--ivory);
    text-align:center;
    padding:110px 28px;
  }
  .cta-final .eyebrow{ color:var(--gold-light); }
  .cta-final h2{
    color:var(--ivory);
    font-size:clamp(1.8rem, 4vw, 2.6rem);
    margin:14px 0 20px;
  }
  .cta-final p{
    color:#d8cdbe;
    max-width:440px;
    margin:0 auto 34px;
    font-size:0.95rem;
  }
  .btn-primary.on-dark{
    background:var(--gold-light);
    color:var(--espresso);
    box-shadow:0 8px 24px -12px rgba(212,180,131,0.5);
  }

  /* ---------- Footer ---------- */
  footer{
    padding:36px 28px;
    text-align:center;
    font-size:0.78rem;
    color:var(--leather);
    background:var(--cream);
  }
  footer a{ text-decoration:underline; text-underline-offset:3px; }

  /* ---------- Floating WhatsApp ---------- */
  .float-wa{
    position:fixed;
    bottom:22px;
    right:22px;
    z-index:200;
    width:58px; height:58px;
    border-radius:50%;
    background:#25D366;
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow:0 10px 24px -8px rgba(0,0,0,0.4);
    animation: floatPulse 2.6s ease-in-out infinite;
  }
  @keyframes floatPulse{
    0%,100%{ transform:scale(1); }
    50%{ transform:scale(1.06); }
  }

  @media (prefers-reduced-motion: reduce){
    *{ animation:none !important; transition:none !important; }
  }

  :focus-visible{
    outline:2px solid var(--gold);
    outline-offset:3px;
  }
