:root{
    --bg-0:#1c1917;
    --bg-1:#241f1c;
    --bg-2:#2c2521;
    --gold:#c8a15b;
    --gold-light:#e6cd94;
    --wine:#7c2d3b;
    --wine-light:#9c4155;
    --cream:#efe7db;
    --muted:#a3968a;
    --line:rgba(200,161,91,0.18);
    --radius:2px;
  }

  *{ box-sizing:border-box; margin:0; padding:0; }
  html{ scroll-behavior:smooth; }
  body{
    background-color:var(--bg-0);
    color:var(--cream);
    font-family:'Manrope', sans-serif;
    font-weight:400;
    line-height:1.6;
    overflow-x:hidden;
  }
  .bg-fixed{
    position:fixed;
    inset:0;
    z-index:-1;
    background-color:var(--bg-0);
    background-image:url('images/photo-bg.jpg');
    background-size:cover;
    background-position:65% 15%;
    background-repeat:no-repeat;
  }
  h1,h2,h3,.display{
    font-family:'Fraunces', serif;
    font-weight:500;
    letter-spacing:0.01em;
  }
  a{ color:inherit; text-decoration:none; }
  img{ display:block; max-width:100%; }
  .container{ max-width:1180px; margin:0 auto; padding:0 32px; }
  section{ position:relative; }

  ::selection{ background:var(--gold); color:var(--bg-0); }

  /* -------- sparkle signature element -------- */
  .sparkle{
    display:inline-block;
    width:1em; height:1em;
    position:relative;
  }
  .sparkle svg{ width:100%; height:100%; display:block; }

  @keyframes twinkle{
    0%, 100%{ opacity:0.35; transform:scale(0.85) rotate(0deg); }
    50%{ opacity:1; transform:scale(1.05) rotate(8deg); }
  }
  .twinkle{ animation:twinkle 3.2s ease-in-out infinite; }
  .twinkle.d1{ animation-delay:0.4s; }
  .twinkle.d2{ animation-delay:1.1s; }
  .twinkle.d3{ animation-delay:1.9s; }

  /* -------- nav -------- */
  header{
    position:fixed; top:0; left:0; right:0; z-index:100;
    padding:20px 0;
    background:linear-gradient(to bottom, rgba(28,25,23,0.92), rgba(28,25,23,0));
    transition:background 0.4s ease, padding 0.4s ease;
  }
  header.scrolled{
    background:rgba(28,25,23,0.92);
    backdrop-filter:blur(10px);
    padding:14px 0;
    border-bottom:1px solid var(--line);
  }
  nav.container{ display:flex; align-items:center; justify-content:space-between; }
  .brand{ display:flex; align-items:center; z-index:210; position:relative; }
  .brand img{ height:44px; width:auto; display:block; }
  .nav-links{ display:flex; align-items:center; gap:36px; font-size:0.82rem; letter-spacing:0.09em; text-transform:uppercase; }
  .nav-links a{ color:var(--muted); position:relative; padding-bottom:4px; transition:color 0.3s ease; }
  .nav-links a:hover, .nav-links a:focus-visible{ color:var(--gold-light); }
  .nav-cta{
    border:1px solid var(--gold);
    color:var(--gold-light) !important;
    padding:9px 22px;
    font-size:0.78rem;
    letter-spacing:0.1em;
    text-transform:uppercase;
    transition:background 0.3s ease, color 0.3s ease;
    white-space:nowrap;
  }
  .nav-cta:hover{ background:var(--gold); color:var(--bg-0) !important; }
  .nav-cta-mobile{ display:none; }

  .nav-toggle{
    display:none;
    position:relative;
    z-index:210;
    width:34px; height:26px;
    background:none; border:none; cursor:pointer;
    padding:0;
    flex-direction:column;
    justify-content:space-between;
  }
  .nav-toggle span{
    display:block; width:100%; height:2px;
    background:var(--gold-light);
    transition:transform 0.35s cubic-bezier(.2,.8,.2,1), opacity 0.25s ease;
  }
  .nav-toggle.active span:nth-child(1){ transform:translateY(11px) rotate(45deg); }
  .nav-toggle.active span:nth-child(2){ opacity:0; }
  .nav-toggle.active span:nth-child(3){ transform:translateY(-11px) rotate(-45deg); }

  .nav-overlay{
    position:fixed; inset:0;
    background:rgba(10,8,7,0.7);
    backdrop-filter:blur(2px);
    z-index:90;
    opacity:0; pointer-events:none;
    transition:opacity 0.35s ease;
  }
  .nav-overlay.active{ opacity:1; pointer-events:auto; }


  /* -------- hero -------- */
  .hero{
    min-height:100vh;
    display:flex;
    align-items:center;
    position:relative;
    padding-top:90px;
  }
  .hero::after{
    content:'';
    position:absolute; inset:0;
    background:linear-gradient(100deg, rgba(20,17,15,0.97) 0%, rgba(20,17,15,0.88) 32%, rgba(20,17,15,0.45) 58%, rgba(20,17,15,0.15) 78%, rgba(20,17,15,0.35) 100%);
  }
  .hero-content{ position:relative; z-index:2; max-width:620px; }
  .eyebrow{
    display:flex; align-items:center; gap:10px;
    font-size:0.78rem; letter-spacing:0.24em; text-transform:uppercase;
    color:var(--gold-light); margin-bottom:26px;
  }
  .eyebrow .rule{ width:36px; height:1px; background:var(--gold); }
  .hero h1{
    font-size:clamp(2.6rem, 5.4vw, 4.4rem);
    line-height:1.05;
    color:var(--cream);
    margin-bottom:8px;
  }
  .hero h1 em{ font-style:italic; color:var(--gold-light); font-weight:400; }
  .hero .subtitle{
    font-family:'Fraunces', serif;
    font-style:italic;
    font-weight:400;
    font-size:1.3rem;
    color:var(--muted);
    margin:18px 0 34px;
    max-width:480px;
  }
  .btn-primary{
    display:inline-flex; align-items:center; gap:10px;
    background:var(--gold);
    color:var(--bg-0);
    padding:16px 34px;
    font-size:0.82rem;
    letter-spacing:0.12em;
    text-transform:uppercase;
    font-weight:600;
    border:none;
    cursor:pointer;
    transition:transform 0.35s cubic-bezier(.2,.8,.2,1), box-shadow 0.35s ease, background 0.35s ease;
    box-shadow:0 8px 30px -8px rgba(200,161,91,0.5);
  }
  .btn-primary:hover{ transform:translateY(-2px); background:var(--gold-light); box-shadow:0 14px 34px -10px rgba(200,161,91,0.65); }
  .btn-ghost{
    display:inline-flex; align-items:center; gap:10px;
    border:1px solid var(--muted);
    color:var(--cream);
    padding:15px 30px;
    font-size:0.82rem;
    letter-spacing:0.1em;
    text-transform:uppercase;
    background:transparent;
    cursor:pointer;
    transition:border-color 0.3s ease, color 0.3s ease;
  }
  .btn-ghost:hover{ border-color:var(--gold); color:var(--gold-light); }
  .hero-ctas{ display:flex; gap:18px; flex-wrap:wrap; }

  .scroll-cue{
    position:absolute; bottom:36px; left:50%; transform:translateX(-50%);
    z-index:2; display:flex; flex-direction:column; align-items:center; gap:8px;
    color:var(--muted); font-size:0.7rem; letter-spacing:0.2em; text-transform:uppercase;
  }
  .scroll-cue .line{ width:1px; height:40px; background:linear-gradient(var(--gold), transparent); animation:scrolldown 2s ease-in-out infinite; }
  @keyframes scrolldown{ 0%{ opacity:0.2; } 50%{ opacity:1; } 100%{ opacity:0.2; } }

  /* -------- section headers -------- */
  .section-pad{ padding:140px 0; }
  .section-head{ max-width:640px; margin-bottom:70px; }
  .section-head .eyebrow{ color:var(--gold); }
  .section-head h2{ font-size:clamp(2rem, 3.6vw, 3rem); color:var(--cream); }
  .section-head p{ color:var(--muted); margin-top:18px; font-size:1.02rem; max-width:520px; }

  /* -------- sobre mim -------- */
  .about{ background:rgba(36,31,28,0.9); position:relative; overflow:hidden; }
  .about-monogram{
    position:absolute; right:-60px; top:50%; transform:translateY(-50%);
    font-family:'Fraunces', serif; font-size:min(50vw,640px);
    color:var(--gold); opacity:0.045; font-style:italic; font-weight:600;
    pointer-events:none; user-select:none; line-height:1;
  }
  .about-grid{
    display:grid;
    grid-template-columns:0.85fr 1.15fr;
    gap:80px;
    align-items:center;
    position:relative; z-index:1;
  }
  .about-photo-wrap{ position:relative; }
  .about-photo-frame{
    position:relative;
    border:1px solid var(--line);
    padding:18px;
  }
  .about-photo-frame img{ width:100%; height:auto; filter:grayscale(0.15) saturate(0.95); }
  .about-photo-frame::before{
    content:''; position:absolute; top:-1px; left:-1px; width:44px; height:44px;
    border-top:1px solid var(--gold); border-left:1px solid var(--gold);
  }
  .about-photo-frame::after{
    content:''; position:absolute; bottom:-1px; right:-1px; width:44px; height:44px;
    border-bottom:1px solid var(--gold); border-right:1px solid var(--gold);
  }
  .about-name-tag{
    position:absolute; left:-28px; bottom:36px;
    background:var(--wine); color:var(--cream);
    padding:14px 26px;
    font-family:'Fraunces', serif; font-style:italic; font-size:1.05rem;
    box-shadow:0 12px 30px -8px rgba(0,0,0,0.5);
  }
  .about-copy .eyebrow{ color:var(--gold); }
  .about-copy h2{ font-size:clamp(1.9rem,3.2vw,2.6rem); margin-bottom:26px; color:var(--cream); }
  .about-copy p{ color:var(--muted); font-size:1.08rem; margin-bottom:20px; max-width:520px; }
  .about-copy p.lede{
    font-family:'Fraunces', serif; font-style:italic; color:var(--cream);
    font-size:1.28rem; line-height:1.5; margin-bottom:28px;
  }
  .about-stats{ display:flex; flex-wrap:wrap; row-gap:24px; column-gap:36px; margin-top:36px; }
  .about-stats div{ border-left:1px solid var(--line); padding-left:18px; }
  .about-stats .num{ font-family:'Fraunces', serif; font-size:1.9rem; color:var(--gold-light); display:block; }
  .about-stats .lbl{ font-size:0.78rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--muted); }

  /* -------- services -------- */
  .services{ background:rgba(28,25,23,0.92); }
  .cat-tabs{
    display:flex; gap:10px; margin-bottom:56px; flex-wrap:wrap;
    border-bottom:1px solid var(--line);
    padding-bottom:0;
  }
  .cat-tab{
    background:none; border:none; cursor:pointer;
    color:var(--muted);
    font-family:'Fraunces', serif; font-size:1.15rem;
    padding:14px 6px 18px;
    position:relative;
    display:flex; align-items:center; gap:10px;
    transition:color 0.3s ease;
    margin-right:34px;
  }
  .cat-tab .tab-icon{ width:20px; height:20px; opacity:0.65; transition:opacity 0.3s ease; }
  .cat-tab::after{
    content:''; position:absolute; left:0; right:0; bottom:-1px; height:2px;
    background:var(--gold); transform:scaleX(0); transform-origin:left;
    transition:transform 0.4s cubic-bezier(.2,.8,.2,1);
  }
  .cat-tab.active{ color:var(--cream); }
  .cat-tab.active .tab-icon{ opacity:1; }
  .cat-tab.active::after{ transform:scaleX(1); }
  .cat-tab .count{ font-family:'Manrope',sans-serif; font-size:0.7rem; color:var(--gold); border:1px solid var(--gold); border-radius:20px; padding:1px 8px; }

  .cat-panel{ display:none; }
  .cat-panel.active{ display:block; animation:fadein 0.5s ease; }
  @keyframes fadein{ from{ opacity:0; transform:translateY(8px);} to{ opacity:1; transform:translateY(0);} }

  .service-item{
    border-bottom:1px solid var(--line);
  }
  .service-head{
    display:flex; align-items:center; justify-content:space-between;
    gap:24px;
    padding:26px 0;
    cursor:pointer;
    background:none; border:none; width:100%;
    text-align:left;
    color:var(--cream);
  }
  .service-title{ display:flex; align-items:center; gap:16px; font-family:'Fraunces', serif; font-size:1.18rem; }
  .service-head .plus{
    width:20px; height:20px; position:relative; flex-shrink:0;
  }
  .service-head .plus::before, .service-head .plus::after{
    content:''; position:absolute; background:var(--gold); top:50%; left:50%;
    transform:translate(-50%,-50%);
  }
  .service-head .plus::before{ width:14px; height:1px; }
  .service-head .plus::after{ width:1px; height:14px; transition:transform 0.3s ease; }
  .service-item.open .plus::after{ transform:translate(-50%,-50%) rotate(90deg) scaleY(0); }

  .service-body{
    max-height:0; overflow:hidden;
    transition:max-height 0.45s cubic-bezier(.2,.8,.2,1);
  }
  .service-body-inner{ padding:0 0 30px 36px; color:var(--muted); font-size:1rem; max-width:640px; }
  .service-book-btn{
    display:inline-flex;
    align-items:center;
    gap:8px;
    margin-top:16px;
    padding:9px 20px;
    font-size:0.72rem;
    letter-spacing:0.09em;
    text-transform:uppercase;
    font-weight:600;
    color:var(--gold-light);
    border:1px solid var(--gold);
    transition:background 0.3s ease, color 0.3s ease;
  }
  .service-book-btn:hover{ background:var(--gold); color:var(--bg-0); }
  .service-book-btn::before{
    content:'';
    width:6px; height:6px;
    border-radius:50%;
    background:currentColor;
  }
  .service-item.open .service-body{ max-height:280px; }

  /* -------- resultados / depoimentos -------- */
  .feedbacks{ background:rgba(28,25,23,0.92); }
  .feedback-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(340px, 1fr));
    gap:36px;
  }
  .feedback-card{
    background:rgba(44,37,33,0.9);
    border:1px solid var(--line);
    overflow:hidden;
    transition:transform 0.4s ease, border-color 0.4s ease;
  }
  .feedback-card:hover{ transform:translateY(-4px); border-color:var(--gold); }
  .fb-photos{ display:grid; grid-template-columns:1fr 1fr; }
  .fb-photo{
    position:relative;
    aspect-ratio:4/5;
    background:linear-gradient(145deg, #2a2320, #1f1a17);
    overflow:hidden;
  }
  .fb-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
  .fb-placeholder{
    width:100%; height:100%;
    display:flex; align-items:center; justify-content:center;
    color:var(--muted);
    opacity:0.5;
  }
  .fb-placeholder svg{ width:34px; height:34px; }
  .fb-tag{
    position:absolute; left:12px; bottom:12px;
    font-size:0.68rem; letter-spacing:0.12em; text-transform:uppercase;
    padding:5px 12px;
    background:rgba(20,17,15,0.75);
    backdrop-filter:blur(4px);
  }
  .tag-before{ color:var(--muted); border:1px solid rgba(163,150,138,0.4); }
  .tag-after{ color:var(--gold-light); border:1px solid var(--gold); }
  .fb-content{ padding:26px 28px 30px; }
  .fb-service{
    display:inline-block;
    font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase;
    color:var(--gold); margin-bottom:14px;
  }
  .fb-before-text, .fb-after-text{ font-size:0.92rem; color:var(--muted); margin-bottom:12px; line-height:1.65; }
  .fb-before-text strong{ color:var(--wine-light); font-family:'Fraunces', serif; font-weight:600; }
  .fb-after-text strong{ color:var(--gold-light); font-family:'Fraunces', serif; font-weight:600; }
  .fb-after-text{ margin-bottom:0; }

  /* -------- depoimentos -------- */
  .testimonials{ background:rgba(36,31,28,0.9); }
  .testimonial-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
    gap:28px;
  }
  .testimonial-card{
    background:rgba(44,37,33,0.9);
    border:1px solid var(--line);
    padding:32px 28px;
    position:relative;
    transition:transform 0.4s ease, border-color 0.4s ease;
  }
  .testimonial-card:hover{ transform:translateY(-4px); border-color:var(--gold); }
  .testimonial-card::before{
    content:'“';
    position:absolute; top:14px; right:22px;
    font-family:'Fraunces', serif;
    font-size:3.2rem;
    color:var(--gold);
    opacity:0.18;
    line-height:1;
  }
  .t-stars{ color:var(--gold); letter-spacing:3px; font-size:0.95rem; margin-bottom:18px; }
  .t-quote{
    font-family:'Fraunces', serif;
    font-style:italic;
    font-size:1.05rem;
    line-height:1.6;
    color:var(--cream);
    margin-bottom:22px;
  }
  .t-name{
    display:block;
    font-size:0.78rem;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--gold-light);
  }

  /* -------- whatsapp float button -------- */
  .whatsapp-float{
    position:fixed;
    right:22px;
    bottom:22px;
    width:58px;
    height:58px;
    border-radius:50%;
    background:#25D366;
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow:0 8px 24px -6px rgba(0,0,0,0.5), 0 0 0 0 rgba(37,211,102,0.6);
    z-index:120;
    transition:transform 0.3s ease, box-shadow 0.3s ease;
    animation:wa-pulse 2.6s ease-in-out infinite;
  }
  .whatsapp-float svg{ width:32px; height:32px; }
  .whatsapp-float:hover{ transform:scale(1.08); }
  .whatsapp-float.hide{ opacity:0; pointer-events:none; transform:scale(0.8); }

  @keyframes wa-pulse{
    0%{ box-shadow:0 8px 24px -6px rgba(0,0,0,0.5), 0 0 0 0 rgba(37,211,102,0.55); }
    70%{ box-shadow:0 8px 24px -6px rgba(0,0,0,0.5), 0 0 0 14px rgba(37,211,102,0); }
    100%{ box-shadow:0 8px 24px -6px rgba(0,0,0,0.5), 0 0 0 0 rgba(37,211,102,0); }
  }

  @media (max-width:680px){
    .whatsapp-float{ width:52px; height:52px; right:16px; bottom:16px; }
    .whatsapp-float svg{ width:28px; height:28px; }
  }

  /* -------- footer -------- */
  footer{ background:rgba(28,25,23,0.94); border-top:1px solid var(--line); padding:60px 0 30px; }
  .footer-grid{ display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:40px; margin-bottom:50px; }
  .footer-brand{ display:flex; align-items:center; gap:12px; }
  .footer-brand img{ height:46px; width:auto; opacity:0.92; }
  .footer-links{ display:flex; gap:60px; flex-wrap:wrap; }
  .footer-col h4{ font-family:'Fraunces', serif; font-size:0.95rem; color:var(--gold-light); margin-bottom:16px; font-weight:500; }
  .footer-col a, .footer-col span{ display:block; color:var(--muted); font-size:0.92rem; margin-bottom:10px; transition:color 0.3s ease; }
  .footer-col a:hover{ color:var(--gold-light); }
  .footer-bottom{
    display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;
    padding-top:26px; border-top:1px solid var(--line);
    font-size:0.8rem; color:#6b6058;
  }

  /* -------- reveal on scroll -------- */
  .reveal{ opacity:0; transform:translateY(24px); transition:opacity 0.8s ease, transform 0.8s ease; }
  .reveal.in{ opacity:1; transform:translateY(0); }

  @media (prefers-reduced-motion: reduce){
    *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
  }

  /* -------- responsive -------- */
  body.no-scroll{ overflow:hidden; }

  /* Tablet and below */
  @media (max-width:920px){
    .about-grid{ grid-template-columns:1fr; gap:50px; }
    .about-monogram{ display:none; }
    .about-name-tag{ left:16px; }
    .section-pad{ padding:90px 0; }

    .nav-toggle{ display:flex; }
    .nav-cta-desktop{ display:none; }
    .nav-links{
      position:fixed; top:0; right:0; height:100vh; width:min(320px, 78vw);
      background:var(--bg-1);
      box-shadow:-20px 0 60px -20px rgba(0,0,0,0.5);
      border-left:1px solid var(--line);
      display:flex;
      flex-direction:column; align-items:flex-start; justify-content:center;
      gap:26px; padding:40px 40px;
      transform:translateX(100%);
      transition:transform 0.4s cubic-bezier(.2,.8,.2,1);
      z-index:200;
      font-size:0.95rem;
    }
    .nav-links.open{ transform:translateX(0); }
    .nav-links a{ padding-bottom:0; }
    .nav-cta-mobile{ display:inline-flex; margin-top:8px; }
  }

  /* Small tablet / large phone */
  @media (max-width:680px){
    .container{ padding:0 22px; }
    .feedback-grid{ grid-template-columns:1fr; }
    .testimonial-grid{ grid-template-columns:1fr; }
    .footer-links{ gap:30px; row-gap:32px; }
    .footer-grid{ gap:32px; }
    .hero-ctas{ flex-direction:column; align-items:stretch; }
    .hero-ctas .btn-primary, .hero-ctas .btn-ghost{ justify-content:center; text-align:center; }
    .cat-tabs{ gap:6px; }
    .cat-tab{ margin-right:22px; font-size:1.05rem; }
    .about-photo-frame{ padding:12px; }
    .about-name-tag{ font-size:0.95rem; padding:11px 20px; }
    .service-head{ gap:14px; }
    .service-title{ font-size:1.05rem; }
    .fb-content{ padding:22px 22px 26px; }
  }

  /* Phones */
  @media (max-width:480px){
    .hero h1{ font-size:2.05rem; }
    .hero .subtitle{ font-size:1.1rem; }
    .section-head h2{ font-size:1.65rem; }
    .about-copy h2{ font-size:1.55rem; }
    .booking-side h2{ font-size:1.55rem; }
    .about-stats{ column-gap:24px; row-gap:20px; }
    .about-stats .num{ font-size:1.6rem; }
    .btn-primary, .btn-ghost{ padding:14px 22px; font-size:0.76rem; }
    .service-book-btn{ width:100%; justify-content:center; }
    .fb-photos{ grid-template-columns:1fr 1fr; }
    .testimonial-card::before{ font-size:2.6rem; }
    .footer-bottom{ flex-direction:column; align-items:flex-start; gap:8px; }
  }
