:root{
    --olive-deep:#3f4a24;
    --olive:#6b7b3a;
    --olive-soft:#8a9a5b;
    --gold:#c3a765;
    --gold-soft:#dccb96;
    --cream:#f8f5ec;
    --cream-2:#f1ecdd;
    --ink:#2a2c1d;
    --ink-soft:#5a5c47;
    --line: rgba(42,44,29,0.14);
  }

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

  html{scroll-behavior:smooth;}

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

  h1,h2,h3,.serif{
    font-family:'Cormorant Garamond', serif;
    font-weight:500;
    letter-spacing:0.01em;
  }

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

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

  .eyebrow{
    font-family:'Jost', sans-serif;
    font-size:0.72rem;
    letter-spacing:0.32em;
    text-transform:uppercase;
    color:var(--gold);
    margin-bottom:14px;
    display:inline-block;
  }

  /* ===== leaf divider signature element ===== */
  .leaf-divider{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:14px;
    width:100%;
  }
  .leaf-divider svg{ height:16px; }
  .leaf-divider .line{
    height:1px;
    flex:1;
    max-width:120px;
  }
  .leaf-divider.on-dark .line{ background:rgba(248,245,236,0.35); }
  .leaf-divider.on-light .line{ background:var(--line); }

  /* ===== NAV ===== */
  header{
    position:fixed;
    top:0; left:0; right:0;
    z-index:100;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:22px 6vw;
    transition:background 0.4s ease, padding 0.4s ease, box-shadow .4s ease;
  }
  header.scrolled{
    background:rgba(242, 248, 236, 0.92);
    backdrop-filter:blur(8px);
    padding:14px 6vw;
    box-shadow:0 1px 0 var(--line);
  }
  header.scrolled .nav-link, header.scrolled .brand{ color:var(--ink); }

  .brand{
    font-family:'Cormorant Garamond', serif;
    font-size:1.5rem;
    letter-spacing:0.14em;
    color:#fff;
    transition:color .4s ease;
  }

  nav{display:flex; gap:38px; align-items:center;}
  .nav-link{
    font-size:0.78rem;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:#fff;
    transition:color .4s ease, opacity .2s ease;
    opacity:0.88;
  }
  .nav-link:hover{opacity:1;}

  .nav-cta{
    border:1px solid currentColor;
    padding:9px 20px;
    border-radius:2px;
    font-size:0.72rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
  }

  .menu-toggle{display:none; background:none; border:none; cursor:pointer; z-index:110;}
  .menu-toggle span{display:block; width:24px; height:1px; background:#fff; margin:6px 0; transition:.3s;}
  header.scrolled .menu-toggle span{background:var(--ink);}

  /* ===== HERO ===== */
  .hero{
    position:relative;
    min-height:70vh;
    background:linear-gradient(180deg, var(--olive-deep) 0%, var(--olive) 100%);
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:90px 6vw 60px;
    overflow:hidden;
  }

  .hero-eyebrow{
    color:var(--gold-soft);
    font-size:0.72rem;
    letter-spacing:0.36em;
    text-transform:uppercase;
    margin-bottom:26px;
    opacity:0;
    animation:fadeUp 1s ease forwards 0.2s;
  }

  .hero h1{
    color:#fdfcf7;
    font-size:clamp(3.6rem, 11vw, 8rem);
    line-height:0.95;
    letter-spacing:0.02em;
    opacity:0;
    animation:fadeUp 1.1s ease forwards 0.4s;
  }
  .hero h1 em{ font-style:italic; color:var(--gold-soft); }

  .hero-sub{
    margin-top:26px;
    max-width:480px;
    color:rgba(253,252,247,0.82);
    font-size:1.02rem;
    line-height:1.7;
    font-weight:300;
    opacity:0;
    animation:fadeUp 1.1s ease forwards 0.6s;
  }

  .hero-divider{
    margin:38px 0;
    opacity:0;
    animation:fadeUp 1.1s ease forwards 0.75s;
  }

  .hero-actions{
    display:flex;
    gap:18px;
    flex-wrap:wrap;
    justify-content:center;
    opacity:0;
    animation:fadeUp 1.1s ease forwards 0.9s;
  }

  .btn{
    padding:15px 34px;
    font-size:0.76rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
    border-radius:2px;
    transition:all .3s ease;
    cursor:pointer;
    border:1px solid transparent;
  }
  .btn-gold{
    background:var(--gold);
    color:var(--olive-deep);
  }
  .btn-gold:hover{ background:var(--gold-soft); }
  .btn-outline{
    border-color:rgba(253,252,247,0.5);
    color:#fdfcf7;
  }
  .btn-outline:hover{ border-color:#fdfcf7; background:rgba(253,252,247,0.08); }

  .scroll-cue{
    position:absolute;
    bottom:36px;
    left:50%;
    transform:translateX(-50%);
    color:rgba(253,252,247,0.55);
    font-size:0.66rem;
    letter-spacing:0.28em;
    text-transform:uppercase;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:10px;
  }
  .scroll-cue .stem{
    width:1px; height:34px;
    background:rgba(253,252,247,0.4);
    position:relative;
    overflow:hidden;
  }
  .scroll-cue .stem::after{
    content:'';
    position:absolute;
    top:-100%; left:0; right:0; height:100%;
    background:var(--gold-soft);
    animation:drip 1.8s ease-in-out infinite;
  }
  @keyframes drip{ 50%{top:100%;} 100%{top:100%;} }

  @keyframes fadeUp{
    from{opacity:0; transform:translateY(18px);}
    to{opacity:1; transform:translateY(0);}
  }

  /* ===== SECTION SHELL ===== */
  section{ padding:70px 6vw; position:relative; }
  .section-inner{ max-width:1180px; margin:0 auto; }
  .section-head{ text-align:center; max-width:600px; margin:0 auto 40px; }
  .section-head h2{ font-size:clamp(2.3rem, 4.5vw, 3.4rem); color:var(--olive-deep); margin-top:10px; }
  .section-head p{ margin-top:18px; color:var(--ink-soft); font-weight:300; line-height:1.75; }

  .reveal{ opacity:0; transform:translateY(28px); transition:opacity .8s ease, transform .8s ease; }
  .reveal.in{ opacity:1; transform:translateY(0); }

  /* ===== SOBRE ===== */
  .sobre{ background:var(--cream); }
  .sobre-grid{
    display:grid;
    grid-template-columns:0.85fr 1.15fr;
    gap:80px;
    align-items:center;
  }
  .sobre-visual{
    aspect-ratio:4/5;
    background:var(--olive);
    border-radius:2px;
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
  }
  .sobre-visual img{ width:90%; opacity:0.94; }
  .sobre-visual::after{
    content:'';
    position:absolute; inset:16px;
    border:1px solid rgba(248,245,236,0.35);
    pointer-events:none;
  }
  .sobre-text p{
    color:var(--ink-soft);
    font-weight:300;
    line-height:1.9;
    font-size:1.02rem;
    margin-bottom:20px;
  }
  .sobre-text h2{ font-size:clamp(2.2rem,4vw,3rem); color:var(--olive-deep); margin-bottom:24px; }

  .stat-row{ display:flex; gap:40px; margin-top:24px; }
  .stat{ }
  .stat .num{ font-family:'Cormorant Garamond',serif; font-size:2.4rem; color:var(--gold); }
  .stat .label{ font-size:0.7rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-soft); margin-top:4px; }

  /* ===== SERVIÇOS ===== */
  .servicos{ background:var(--cream-2); }
  .servico-list{ display:flex; flex-direction:column; }
  .servico-item{
    display:grid;
    grid-template-columns:70px 1fr auto;
    align-items:baseline;
    gap:28px;
    padding:30px 0;
    border-bottom:1px solid var(--line);
    transition:padding-left .35s ease, background .35s ease;
  }
  .servico-item:hover{ padding-left:14px; background:rgba(195,167,101,0.07); }
  .servico-item .idx{
    font-family:'Cormorant Garamond',serif;
    font-style:italic;
    color:var(--gold);
    font-size:1rem;
  }
  .servico-item h3{ font-size:1.5rem; color:var(--olive-deep); font-weight:500; }
  .servico-item .desc{ font-size:0.86rem; color:var(--ink-soft); font-weight:300; margin-top:4px; font-family:'Jost',sans-serif; }
  .servico-item .price{ font-family:'Cormorant Garamond',serif; font-size:1.3rem; color:var(--ink); white-space:nowrap; }
  .price small{ font-family:'Jost',sans-serif; font-size:0.62rem; color:var(--ink-soft); text-transform:uppercase; letter-spacing:0.08em; }

  /* ===== GALERIA ===== */
  .galeria{ background:var(--cream); }
  .galeria-grid{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    grid-auto-rows:130px;
    grid-auto-flow:dense;
    gap:14px;
  }
  .g-item{
    background:linear-gradient(155deg, var(--olive-soft), var(--olive-deep));
    border-radius:2px;
    position:relative;
    overflow:hidden;
    display:flex;
    align-items:flex-end;
    padding:16px;
  }
  .g-item img, .g-item video{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center 20%;
    z-index:0;
  }
  .g-item span{
    position:relative;
    z-index:2;
    color:rgba(248,245,236,0.85);
    font-family:'Cormorant Garamond',serif;
    font-style:italic;
    font-size:0.95rem;
  }
  .g-item:has(img), .g-item:has(video){ grid-row: span 3; }
  .g-item::before{
    content:'';
    position:absolute; inset:0;
    z-index:1;
    background:rgba(42,44,29,0.18);
    transition:background .3s ease;
  }
  .g-item:hover::before{ background:rgba(42,44,29,0);}

  /* ===== DEPOIMENTOS ===== */
  .depoimentos{
    background:var(--olive-deep);
    color:var(--cream);
    text-align:center;
  }
  .depoimentos .section-head p{ color:rgba(248,245,236,0.7); }
  .depoimentos .eyebrow{ color:var(--gold-soft); }
  .depo-track{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:50px;
  }
  .depo{
    padding:20px;
  }
  .depo .stars{ color:var(--gold); letter-spacing:3px; margin-bottom:20px; font-size:0.9rem; }
  .depo p{
    font-family:'Cormorant Garamond',serif;
    font-size:1.3rem;
    line-height:1.6;
    font-style:italic;
    color:#fdfcf7;
  }
  .depo .who{
    margin-top:22px;
    font-family:'Jost',sans-serif;
    font-size:0.72rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--gold-soft);
  }

  /* ===== CONTATO ===== */
  .contato{ background:var(--cream-2); }
  .contato-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:80px;
  }
  .contato-info h2{ font-size:clamp(2.2rem,4vw,3rem); color:var(--olive-deep); margin-bottom:24px; }
  .contato-info p{ color:var(--ink-soft); font-weight:300; line-height:1.8; margin-bottom:34px; }
  .info-block{ display:flex; gap:16px; margin-bottom:24px; }
  .info-block .k{ font-size:0.68rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--gold); width:110px; flex-shrink:0; padding-top:2px; }
  .info-block .v{ font-family:'Cormorant Garamond',serif; font-size:1.15rem; color:var(--ink); }

  form{ display:flex; flex-direction:column; gap:20px; }
  .field{ display:flex; flex-direction:column; gap:8px; }
  .field label{ font-size:0.68rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--ink-soft); }
  .field input, .field select, .field textarea{
    background:transparent;
    border:none;
    border-bottom:1px solid var(--line);
    padding:10px 2px;
    font-family:'Jost',sans-serif;
    font-size:0.95rem;
    color:var(--ink);
    outline:none;
    transition:border-color .3s ease;
  }
  .field input:focus, .field select:focus, .field textarea:focus{ border-color:var(--olive); }
  .field textarea{ resize:vertical; min-height:70px; }
  form .btn{ align-self:flex-start; background:var(--olive-deep); color:#fdfcf7; margin-top:10px; }
  form .btn:hover{ background:var(--olive); }

  /* ===== FOOTER ===== */
  footer{
    background:var(--olive-deep);
    color:rgba(248,245,236,0.7);
    padding:60px 6vw 30px;
    text-align:center;
  }
  footer .brand{ color:#fdfcf7; margin-bottom:20px; display:block; }
  .footer-links{ display:flex; justify-content:center; gap:34px; margin:26px 0; flex-wrap:wrap; }
  .footer-links a{ font-size:0.74rem; letter-spacing:0.1em; text-transform:uppercase; opacity:0.85; }
  .footer-links a:hover{ opacity:1; color:var(--gold-soft); }
  .footer-fine{ font-size:0.7rem; opacity:0.5; margin-top:26px; }

  /* ===== WHATSAPP FLOAT ===== */
  .whats-float{
    position:fixed;
    bottom:26px; right:26px;
    z-index:90;
    background:var(--gold);
    color:var(--olive-deep);
    width:56px; height:56px;
    border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 8px 24px rgba(0,0,0,0.22);
    transition:transform .25s ease, background .25s ease;
  }
  .whats-float:hover{ transform:translateY(-3px); background:var(--gold-soft); }

  /* ===== RESPONSIVE ===== */
  @media (max-width:900px){
    nav{
      position:fixed; top:0; right:0; height:100vh; width:78vw; max-width:340px;
      background:var(--olive-deep);
      flex-direction:column; justify-content:center; align-items:flex-start;
      padding:0 40px;
      transform:translateX(100%);
      transition:transform .45s ease;
    }
    nav.open{ transform:translateX(0); }
    nav .nav-link, nav .nav-cta{ color:#fdfcf7 !important; font-size:1rem; }
    .menu-toggle{ display:block; }
    .sobre-grid, .contato-grid{ grid-template-columns:1fr; gap:50px; }
    .depo-track{ grid-template-columns:1fr; gap:40px; }
    .galeria-grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:140px; }
    .servico-item{ grid-template-columns:40px 1fr; }
    .servico-item .price{ grid-column:2; }
    section{ padding:90px 6vw; }
  }

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