.cursor-dot,
.cursor-ring{
  z-index: 99999;
}

:root{
    --marsala: #5A2328;
    --marsala-mid: #46181D;
    --marsala-deep: #260C0F;
    --parchment: #F6F0E4;
    --sand: #E7D6B4;
    --sand-deep: #D6BE8E;
    --gold: #C9A66B;
    --gold-light: #E9D4A3;
    --gold-dark: #8F6B34;
    --ink: #251813;
    --ink-soft: #6E5F53;
    --line: rgba(90,35,40,0.16);
    --gold-line: rgba(143,107,52,0.35);
    --serif: 'Cormorant Garamond', serif;
    --sans: 'Inter', sans-serif;
    --ease: cubic-bezier(.4,0,.2,1);
    --gold-grad: linear-gradient(120deg, var(--gold-dark), var(--gold-light) 45%, var(--gold) 58%, var(--gold-dark));
    --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.045 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  }

  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    font-family: var(--sans);
    color: var(--ink);
    background: var(--parchment);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
    cursor: none;
  }
  img{max-width:100%;display:block;}
  a{color:inherit;text-decoration:none;}
  ul{list-style:none;}
  button{font-family:inherit;cursor:pointer;border:none;background:none;}
  .container{max-width:1240px;margin:0 auto;padding:0 40px;}
  

  .eyebrow{
    font-size: 0.72rem;
    letter-spacing: 0.26em;
    text-transform: uppercase;
    color: var(--gold-dark);
    font-weight: 600;
    display:inline-flex;
    align-items:center;
    gap:14px;
  }
  .eyebrow .diamond{
    width:6px;height:6px; background: var(--gold-grad); transform: rotate(45deg); display:inline-block;
    box-shadow: 0 0 0 1px var(--gold-line);
  }
  .on-dark .eyebrow{ color: var(--gold-light); }
  h1,h2,h3{font-family:var(--serif); font-weight:500;}
  .section-title{
    font-size: clamp(2.1rem, 3.3vw, 3rem);
    color: var(--marsala-deep);
    margin-top: 16px;
    max-width: 640px;
    line-height:1.16;
    font-weight:500;
  }
  .on-dark .section-title{ color: var(--parchment); }
  .section-head{margin-bottom:70px;}
  .section-head.center{text-align:center;}
  .section-head.center .section-title{margin-left:auto;margin-right:auto;}
  .section-head.center .eyebrow{justify-content:center;}

  .btn{
    display:inline-flex;align-items:center;gap:10px;
    padding: 16px 32px;
    font-size:0.8rem;
    letter-spacing:0.09em;
    text-transform:uppercase;
    font-weight:600;
    transition: all .45s var(--ease);
    white-space:nowrap;
    position:relative;
  }
  .btn-primary{
    background: var(--marsala);
    color: var(--parchment);
    border: 1px solid var(--gold-dark);
  }
  .btn-primary:hover{ background: var(--marsala-deep); box-shadow: 0 16px 34px -16px rgba(38,12,15,0.55); transform: translateY(-2px);}
  .btn-ghost{
    background: transparent;
    border: 1px solid var(--gold);
    color: var(--parchment);
  }
  .btn-ghost:hover{ background: rgba(233,212,163,0.12); border-color: var(--gold-light); transform: translateY(-2px);}
  .btn-ghost.on-light{ border-color: var(--marsala); color: var(--marsala);}
  .btn-ghost.on-light:hover{ background: var(--marsala); color: var(--parchment);}

  /* ---------- LAYERED FRAME (signature element) ---------- */
  .photo-layered{ position:relative; }
  .photo-layered::before{
    content:''; position:absolute; inset:0; transform: translate(16px,16px);
    border: 1px solid var(--gold); z-index:0;
  }
  .photo-inner{ position:relative; z-index:1; }
  .corner{ position:absolute; width:24px; height:24px; z-index:2; pointer-events:none; }
  .corner.tl{ top:10px; left:10px; border-top:1px solid var(--gold-light); border-left:1px solid var(--gold-light); }
  .corner.tr{ top:10px; right:10px; border-top:1px solid var(--gold-light); border-right:1px solid var(--gold-light); }
  .corner.bl{ bottom:10px; left:10px; border-bottom:1px solid var(--gold-light); border-left:1px solid var(--gold-light); }
  .corner.br{ bottom:10px; right:10px; border-bottom:1px solid var(--gold-light); border-right:1px solid var(--gold-light); }

  .icon-ring{
    width:60px; height:60px; border-radius:50%; position:relative;
    display:flex; align-items:center; justify-content:center;
    border: 1px solid var(--gold);
    margin-bottom: 26px;
  }
  .icon-ring::after{
    content:''; position:absolute; inset:-6px; border-radius:50%; border: 1px solid var(--gold-line);
  }
  .icon-ring svg{ width:24px; height:24px; }

  /* ---------- NAVBAR ---------- */
  
  header{
    position: fixed; top:0; left:0; right:0; z-index: 1000;
    padding: 28px 0;
    transition: all .5s var(--ease);
  }
  header .container{
    display:grid;
    grid-template-columns:minmax(230px, auto) 1fr auto;
    align-items:center;
    gap:28px;
    position:relative;
}
@media (min-width: 992px){
  header nav{
    position:static;
    transform:none;
    justify-self:center;
  }
  header .nav-cta{
    justify-self:end;
    display:flex;
    align-items:center;
    gap:14px;
  }
  header .nav-contact-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    padding:11px 18px;
    font-size:.72rem;
    letter-spacing:.045em;
  }
}
  header.scrolled{
    padding: 15px 0;
    background: rgba(246,240,228,0.92);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    box-shadow: 0 12px 30px -20px rgba(38,12,15,0.35);
    border-bottom: 1px solid var(--line);
  }

  .logo{display:flex; align-items:center; gap:12px;}
  .logo-mark{
    width:44px;height:44px;border:1px solid var(--gold); border-radius:50%;
    display:flex;align-items:center;justify-content:center; position:relative;
    font-family:var(--serif); font-style:italic; font-size:1.1rem; color: var(--gold-light);
  }
  .logo-mark::after{ content:''; position:absolute; inset:-5px; border-radius:50%; border:1px solid var(--gold-line);}
  header.scrolled .logo-mark{ color: var(--marsala); }
  header.scrolled .logo-mark::after{ border-color: var(--line); }
  .logo-text{line-height:1.05;}
  .logo-text .name{
    font-family: var(--serif); font-size:1.2rem; letter-spacing:0.03em; color: var(--parchment);
  }
  .logo-text .tag{
    font-size:0.6rem; letter-spacing:0.26em; text-transform:uppercase; color: rgba(246,240,228,0.7);
  }
  header.scrolled .logo-text .name{ color: var(--marsala-deep); }
  header.scrolled .logo-text .tag{ color: var(--ink-soft); }

  nav{position:absolute; left:50%; transform:translateX(-50%);}
  nav ul{display:flex; align-items:center; justify-content:center; gap:40px;}
  nav a{
    display:block;
    text-align:center;
    font-size:0.82rem; letter-spacing:0.04em; font-weight:500;
    position:relative; padding-bottom:4px;
    color: var(--parchment);
    transition: color .4s;
  }
  header.scrolled nav a{ color: var(--ink); }
  nav a::after{
    content:''; position:absolute; left:0; bottom:0; height:1px; width:0;
    background: var(--gold); transition: width .35s var(--ease);
  }
  nav a:hover::after, nav a.active::after{width:100%;}
  .nav-cta{display:flex; align-items:center; gap:28px;}
  header:not(.scrolled) .nav-cta .btn-primary{ background: transparent; color: var(--parchment); }
  header.scrolled .nav-cta .btn-primary{ background: var(--marsala); color: var(--parchment); }
  .nav-toggle{display:none;}

  /* ---------- HERO ---------- */
  .hero{
    position: relative;
    min-height:100vh;
    display:grid;
    grid-template-columns: 1fr 1fr;
    background-image:
      linear-gradient(90deg, rgba(47, 12, 17, 0.10), rgba(32, 7, 11, 0.24)),
      url('../img/home-textura-marsala.png');
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    background-color: var(--marsala-deep);
    overflow:hidden;
  }
  .hero-left{
    display:flex; flex-direction:column; justify-content:center;
    padding: 150px 60px 90px 100px;
    position:relative;
    color: var(--parchment);
  }
  .hero-monogram{
    display:none;
  }
  .hero-headline{
    font-size: clamp(2.5rem, 4vw, 3.8rem);
    line-height:1.14;
    margin-top:30px;
    max-width:540px;
    position:relative; z-index:2;
    color: var(--parchment);
  }
  .hero-headline em{
    font-style:italic; color: var(--gold-light); font-weight:500;
  }
  .hero-sub{
    margin-top:32px; max-width:430px; font-size:1rem;
    color: rgba(246,240,228,0.78); font-weight:300;
    position:relative; z-index:2;
    padding-left:22px; border-left: 1px solid var(--gold);
  }
  .hero-actions{display:flex; gap:18px; margin-top:48px; flex-wrap:wrap; position:relative; z-index:2;}
  .hero-right{
    position: relative;
    display:flex; align-items:center; justify-content:center;
    padding: 60px 90px 60px 40px;
  }
  .hero-right .photo-layered{ width:100%; height:100%; max-width:460px; }
  .hero-right .photo-layered::before{ border-color: var(--gold-light); }
  .hero-photo{
    width:100%; height:100%; min-height:480px;
    background: linear-gradient(165deg, #d9c9a9 0%, #c6ac81 55%, #ab8c5b 100%);
    position:relative; overflow:hidden;
    display:flex; align-items:center; justify-content:center;
    border: 1px solid var(--gold);
  }
  .hero-photo::before{
    content:'';
    position:absolute; inset:0;
    background-image:
      radial-gradient(circle at 26% 18%, rgba(255,255,255,0.22), transparent 15%),
      linear-gradient(200deg, rgba(38,12,15,0.18), rgba(38,12,15,0.04) 60%);
  }
  .hero-photo .placeholder-label{
    text-align:center; color: rgba(38,12,15,0.55); position:relative; z-index:2;
  }
  .hero-photo .placeholder-label .mono{
    font-family:var(--serif); font-style:italic; font-size:3.6rem; color: rgba(38,12,15,0.35); line-height:1;
  }
  .hero-photo .placeholder-label p{
    margin-top:12px; font-size:0.68rem; letter-spacing:0.16em; text-transform:uppercase;
  }
  .hero-side-note{
    position:absolute; right:24px; top:0; bottom:0;
    display:flex; align-items:center; justify-content:center;
    writing-mode: vertical-rl;
    font-size:0.68rem; letter-spacing:0.24em; text-transform:uppercase;
    color: var(--gold-light); opacity:0.55;
    z-index:2;
  }

  /* ---------- REVEAL ---------- */
  [data-reveal]{ opacity:0; transform: translateY(30px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
  [data-reveal].is-visible{ opacity:1; transform:none; }
  [data-reveal="stagger"] > *{ opacity:0; transform: translateY(26px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
  [data-reveal="stagger"].is-visible > *{ opacity:1; transform:none; }
  [data-reveal="stagger"].is-visible > *:nth-child(1){transition-delay:.05s;}
  [data-reveal="stagger"].is-visible > *:nth-child(2){transition-delay:.15s;}
  [data-reveal="stagger"].is-visible > *:nth-child(3){transition-delay:.25s;}
  [data-reveal="stagger"].is-visible > *:nth-child(4){transition-delay:.35s;}
  [data-reveal="stagger"].is-visible > *:nth-child(5){transition-delay:.45s;}

  /* ---------- SECTIONS BASE ---------- */
  .section{ padding: 150px 0; position:relative; }
  .section.tight{padding:110px 0;}
  .section.on-dark{
    background: var(--grain), linear-gradient(160deg, var(--marsala-mid), var(--marsala-deep));
    color: var(--parchment);
  }
  .divider-orn{
    display:flex; align-items:center; justify-content:center; gap:14px;
    margin: 0 auto 50px;
  }
  .divider-orn .rule{ width:60px; height:1px; background: var(--gold-line); }
  .divider-orn .diamond{ width:7px; height:7px; background: var(--gold-grad); transform:rotate(45deg); }

  /* ---------- AREAS DE ATUAÇÃO ---------- */
 .areas-grid{
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    max-width: 1500px;
    margin: 0 auto;
}

.area-card{
    position: relative;
    background: linear-gradient(180deg, #FBF7EE 0%, var(--sand) 130%);
    padding: 42px 30px 36px;
    box-shadow: 0 24px 50px -34px rgba(38,12,15,0.35);
    transition: transform .5s var(--ease), box-shadow .5s var(--ease);
}

.area-card:hover{
    transform: translateY(-8px);
    box-shadow: 0 34px 60px -28px rgba(38,12,15,0.4);
}

.area-card .corner{
    width:16px;
    height:16px;
}

.area-card .corner.tl,
.area-card .corner.tr{
    top:8px;
}

.area-card .corner.bl,
.area-card .corner.br{
    bottom:8px;
}

.area-card .corner{
    left:8px;
}

.area-card .corner.tr,
.area-card .corner.br{
    left:auto;
    right:8px;
}

.area-card .icon-ring{
    border-color: var(--marsala);
}

.area-card .icon-ring::after{
    border-color: var(--line);
}

.area-card .icon-ring svg{
    color: var(--marsala);
}

.area-card h3{
    font-size:1.4rem;
    color: var(--marsala-deep);
    margin-bottom:14px;
}

.area-card p{
    font-size:0.9rem;
    color: var(--ink-soft);
    font-weight:300;
    margin-bottom:22px;
}

.area-more{
    display:inline-flex;
    align-items:center;
    gap:8px;
    font-size:0.74rem;
    letter-spacing:0.1em;
    text-transform:uppercase;
    font-weight:600;
    color:var(--marsala);
    transition:gap .3s;
}

.area-card:hover .area-more{
    gap:12px;
}

  /* ---------- SOBRE MIM ---------- */
  .about{
    display:grid; grid-template-columns: 0.85fr 1.15fr; gap:90px; align-items:center;
  }
  .about-photo{ aspect-ratio: 4/5; }
  .about-photo .photo-inner{
    width:100%; height:100%;
    background: linear-gradient(150deg, var(--sand) 0%, var(--sand-deep) 100%);
    position:relative; overflow:hidden; border: 1px solid var(--gold);
    display:flex; align-items:center; justify-content:center;
  }
  .about-photo .mono{font-family:var(--serif); font-style:italic; font-size:3.6rem; color: rgba(90,35,40,0.32);}
  .about-lede{
    font-family:var(--serif); font-style:italic; font-size:1.5rem; color: var(--marsala);
    line-height:1.4; margin-top:26px; max-width:520px;
  }
  .about-text p.body-text{ font-weight:300; color: var(--ink-soft); margin-top:20px; max-width:520px; }
  .about-qualities{
    margin-top:46px; display:grid; grid-template-columns: 1fr 1fr; gap:26px 40px;
  }
  .quality{ display:flex; gap:14px; align-items:flex-start; }
  .quality .diamond{
    width:6px;height:6px; background: var(--gold-grad); transform: rotate(45deg); margin-top:8px; flex-shrink:0;
  }
  .quality strong{ display:block; font-size:0.92rem; color: var(--marsala-deep); font-weight:600; margin-bottom:3px;}
  .quality span{ font-size:0.83rem; color: var(--ink-soft); font-weight:300; }

  /* ---------- DIFERENCIAIS ---------- */
  .dif-grid{
    display:grid; grid-template-columns: repeat(5, 1fr); gap: 30px;
  }
  .dif-card{ text-align:center; padding: 0 12px; }
  .dif-card .icon-ring{ margin:0 auto 26px; border-color: var(--gold); }
  .dif-card .icon-ring::after{ border-color: var(--gold-line); }
  .dif-card .icon-ring svg{ color: var(--gold-light); }
  .dif-card h3{ font-size:1.2rem; font-weight:500; margin-bottom:12px; color: var(--parchment); }
  .dif-card p{ font-size:0.85rem; font-weight:300; color: rgba(246,240,228,0.68); }

  /* ---------- PROCESSO ---------- */
  .process-track{
    position:relative;
    display:grid; grid-template-columns: repeat(4, 1fr);
    gap: 24px;
  }
  .process-track::before{
    content:''; position:absolute; top:29px; left:6%; right:6%; height:1px;
    background: repeating-linear-gradient(to right, var(--gold) 0 10px, transparent 10px 20px);
  }
  .process-step{ text-align:center; position:relative; }
  .process-num{
    width:58px;height:58px; border-radius:50%; background:var(--parchment); border:1px solid var(--gold);
    display:flex; align-items:center; justify-content:center; margin: 0 auto 28px; position:relative; z-index:2;
    font-family:var(--serif); font-style:italic; color:var(--marsala); font-size:1.15rem;
    box-shadow: 0 18px 30px -18px rgba(38,12,15,0.25);
  }
  .process-step h3{ font-size:1.15rem; color:var(--marsala-deep); margin-bottom:10px;}
  .process-step p{ font-size:0.84rem; color: var(--ink-soft); font-weight:300; max-width:230px; margin:0 auto;}

  /* ---------- CONTATO ---------- */
  .contact-wrap{
    display:grid; grid-template-columns: 1fr 1fr; grid-template-rows: auto auto;
  }
  .contact-info{ padding: 20px 70px 20px 0; }
  .contact-info .section-title{ font-size: clamp(1.9rem, 2.6vw, 2.4rem); max-width:400px; }
  .contact-info > p.lede{ font-size:0.95rem; font-weight:300; color: rgba(246,240,228,0.78); max-width:400px; margin: 22px 0 46px;}
  .contact-channels{ display:flex; flex-direction:column; gap:24px; }
  .contact-channel{ display:flex; gap:16px; align-items:center; font-size:0.94rem; }
  .contact-channel .ic{ width:20px;height:20px; color: var(--gold-light); flex-shrink:0;}
  .contact-photo{ grid-column: 2; grid-row: 1 / 3; padding-left: 30px; }
  .contact-photo .photo-inner{
    width:100%; height:100%; min-height:420px;
    background: linear-gradient(160deg, #c9b287, #a9895a);
    position:relative; border: 1px solid var(--gold);
  }
  .contact-photo .photo-inner::before{ content:''; position:absolute; inset:0; background: linear-gradient(0deg, rgba(38,12,15,0.55), transparent 55%);}
  .contact-photo .placeholder-label{
    position:absolute; bottom:30px; left:30px; color: var(--parchment); z-index:2;
    font-size:0.7rem; letter-spacing:0.14em; text-transform:uppercase;
  }
  .contact-form-wrap{ padding: 46px 0 0; grid-column:1; }
  .contact-form-wrap h3{ font-family:var(--serif); font-size:1.4rem; color: var(--parchment); margin-bottom:30px;}
  .form-row{ display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:20px;}
  .field label{ font-size:0.68rem; letter-spacing:0.1em; text-transform:uppercase; color: var(--gold-light); display:block; margin-bottom:9px;}
  .field input, .field select, .field textarea{
    width:100%; border:none; border-bottom: 1px solid var(--gold-line); background:transparent;
    padding: 10px 2px; font-family:inherit; font-size:0.95rem; color:var(--parchment); transition: border-color .3s;
  }
  .field select option{ color: var(--ink); }
  .field textarea{ resize:vertical; min-height:90px;}
  .field input::placeholder, .field textarea::placeholder{ color: rgba(246,240,228,0.4); }
  .field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color: var(--gold-light);}
  .field{ margin-bottom:20px; }
  .contact-form-wrap .btn-primary{ width:100%; justify-content:center; margin-top:16px; background: var(--gold-dark); border-color: var(--gold-light);}
  .contact-form-wrap .btn-primary:hover{ background: var(--gold); }

  /* ---------- FOOTER ---------- */
  footer{ background: var(--parchment); border-top: 1px solid var(--gold-line); padding: 74px 0 34px; }
  .footer-grid{ display:grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap:40px; margin-bottom:60px;}
  .footer-brand .logo{ margin-bottom:18px; }
  .footer-brand .logo .name{ color: var(--marsala-deep); }
  .footer-brand .logo .logo-mark{ color: var(--marsala); }
  .footer-brand p{ font-size:0.86rem; color:var(--ink-soft); font-weight:300; max-width:280px;}
  .footer-col h4{ font-size:0.75rem; letter-spacing:0.1em; text-transform:uppercase; color: var(--marsala-deep); margin-bottom:20px;}
  .footer-col ul{ display:flex; flex-direction:column; gap:12px; }
  .footer-col a{ font-size:0.88rem; color:var(--ink-soft); transition:color .3s;}
  .footer-col a:hover{ color: var(--marsala); }
  .footer-social{ display:flex; gap:14px; }
  .footer-social a{
    width:38px;height:38px; border:1px solid var(--gold-line); border-radius:50%;
    display:flex; align-items:center; justify-content:center; color: var(--marsala); transition: all .3s;
  }
  .footer-social a:hover{ background:var(--marsala); color:var(--parchment); border-color:var(--marsala);}
  .footer-bottom{
    border-top:1px solid var(--line); padding-top:26px; display:flex; justify-content:space-between; align-items:center;
    font-size:0.78rem; color: var(--ink-soft);
  }

  /* ---------- RESPONSIVE ---------- */
  @media (max-width: 1080px){
    .areas-grid{ grid-template-columns: repeat(2,1fr); }
    .dif-grid{ grid-template-columns: repeat(3,1fr); row-gap:44px; }
    .contact-wrap{ grid-template-columns:1fr; }
    .contact-photo{ grid-column:1; grid-row:auto; padding-left:0; min-height:320px; order:-1; margin-bottom:40px;}
    .contact-form-wrap{ grid-column:1; padding-top:0; }
    .contact-info{ padding-right:0; }
    .footer-grid{ grid-template-columns:1fr 1fr; }
  }
  @media (max-width: 860px){
    nav{position:static; transform:none;}
    nav ul{
      position:fixed; top:0; right:0; height:100vh; width:78%; max-width:320px;
      background: var(--marsala-deep); flex-direction:column; align-items:center; justify-content:center; gap:34px;
      padding: 40px; transform: translateX(100%); transition: transform .5s var(--ease); z-index:1001;
    }
    nav ul.open{ transform: translateX(0); }
    nav a{ color: var(--parchment) !important; font-size:1.1rem; }
    .nav-toggle{ display:flex; flex-direction:column; gap:5px; width:26px; z-index:1002; color: var(--parchment); }
    header.scrolled .nav-toggle{ color: var(--marsala-deep); }
    .nav-toggle span{ height:1px; background: currentColor; width:100%; }
    .hero{ grid-template-columns:1fr; }
    .hero-left{ padding: 150px 28px 60px; }
    .hero-right{ padding: 0 28px 60px; min-height:52vh; }
    .hero-monogram{ font-size:7rem; }
    .hero-side-note{ display:none; }
    .about{ grid-template-columns:1fr; gap:50px;}
    .about-qualities{ grid-template-columns:1fr;}
    .areas-grid{ grid-template-columns:1fr; }
    .dif-grid{ grid-template-columns:1fr 1fr; }
    .process-track{ grid-template-columns:1fr; gap:48px;}
    .process-track::before{ display:none; }
    .form-row{ grid-template-columns:1fr; }
    .footer-grid{ grid-template-columns:1fr 1fr; gap:34px;}
    .container{ padding: 0 24px; }
    .section{ padding: 100px 0; }
  }
  @media (max-width: 480px){
    .footer-grid{ grid-template-columns:1fr; }
    .footer-bottom{ flex-direction:column; gap:10px; align-items:flex-start;}
    .dif-grid{ grid-template-columns:1fr; }
  }

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

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

/* Fotos profissionais adicionadas ao layout original */
.hero-image,
.about-image,
.contact-image{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
.hero-image{ object-position:center 18%; }
.about-image{ object-position:center 15%; }
.contact-image{ object-position:center 18%; }
.hero-photo::before,
.contact-photo .photo-inner::before{
  z-index:1;
  pointer-events:none;
}
.hero-image,
.about-image,
.contact-image{ position:relative; z-index:0; }

.whats-float{position:fixed;right:24px;bottom:24px;width:60px;height:60px;border-radius:50%;background:#6d2338;color:#fff;text-decoration:none;display:flex;align-items:center;justify-content:center;font-size:28px;border:2px solid #d4af37;box-shadow:0 10px 25px rgba(0,0,0,.25);z-index:9999}
.whats-float:hover{transform:scale(1.08)}


/* =========================================================
   CAMADA DE MOVIMENTO E INTERAÇÃO — VERSÃO ATUALIZADA
========================================================= */

body{
  cursor:auto;
}

body.menu-open{
  overflow:hidden;
}

/* ---------- PRELOADER ---------- */

.site-preloader{
  position:fixed;
  inset:0;
  z-index:20000;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:
    var(--grain),
    linear-gradient(145deg,var(--marsala-mid),var(--marsala-deep));
  transition:
    opacity .75s cubic-bezier(.22,1,.36,1),
    visibility .75s;
}

.preloader-brand{
  display:flex;
  flex-direction:column;
  align-items:center;
  color:var(--parchment);
}

.preloader-monogram{
  width:92px;
  height:92px;
  display:grid;
  place-items:center;
  border:1px solid var(--gold);
  border-radius:50%;
  font-family:var(--serif);
  font-size:2rem;
  font-style:italic;
  animation:preloaderPulse 1.7s ease-in-out infinite;
}

.preloader-name{
  margin-top:24px;
  font-family:var(--serif);
  font-size:1.4rem;
  letter-spacing:.08em;
}

.preloader-line{
  width:150px;
  height:1px;
  margin-top:18px;
  overflow:hidden;
  background:rgba(233,212,163,.2);
}

.preloader-line::after{
  content:'';
  display:block;
  width:50%;
  height:100%;
  background:var(--gold-grad);
  animation:preloaderLine 1.25s ease-in-out infinite;
}

.site-loaded .site-preloader{
  opacity:0;
  visibility:hidden;
}

@keyframes preloaderPulse{
  0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(201,166,107,.05)}
  50%{transform:scale(1.05);box-shadow:0 0 0 12px rgba(201,166,107,.07)}
}

@keyframes preloaderLine{
  0%{transform:translateX(-120%)}
  100%{transform:translateX(220%)}
}

/* ---------- PROGRESSO ---------- */

.scroll-progress{
  position:fixed;
  top:0;
  left:0;
  width:100%;
  height:2px;
  z-index:15000;
  pointer-events:none;
  transform:scaleX(0);
  transform-origin:left center;
  background:linear-gradient(90deg,var(--gold-dark),var(--gold-light),var(--gold));
  box-shadow:0 0 15px rgba(201,166,107,.45);
}

/* ---------- ENTRADA DO HERO ---------- */

.hero-intro{
  opacity:0;
  will-change:transform,opacity;
  transition:
    opacity 1s cubic-bezier(.22,1,.36,1),
    transform 1.15s cubic-bezier(.22,1,.36,1);
}

.hero .eyebrow.hero-intro{
  transform:translateY(22px);
}

.hero-headline.hero-intro{
  transform:translateY(24px);
}

.hero-sub.hero-intro{
  transform:translateY(38px);
}

.hero-actions.hero-intro{
  transform:translateY(44px);
}

.hero-right.hero-intro{
  transform:translateX(90px) scale(.95);
  clip-path:inset(0 0 0 100%);
}

.hero-side-note.hero-intro{
  transform:translateX(14px);
}

.hero-intro.intro-visible{
  opacity:1;
  transform:translate(0) scale(1);
  clip-path:inset(0);
}

/* ---------- LETRAS ---------- */

.split-ready{
  perspective:900px;
}

.motion-word{
  display:inline-block;
  white-space:nowrap;
}

.motion-letter{
  display:inline-block;
  opacity:0;
  transform:translateY(110%) rotateX(-70deg);
  transform-origin:center bottom;
  transition:
    opacity .7s cubic-bezier(.22,1,.36,1) var(--letter-delay,0ms),
    transform .78s cubic-bezier(.22,1,.36,1) var(--letter-delay,0ms);
}

.motion-letter.letter-visible{
  opacity:1;
  transform:translateY(0) rotateX(0);
}

/* ---------- REVEAL DAS SEÇÕES ---------- */

.motion-reveal{
  opacity:0;
  transform:translateY(58px);
  transition:
    opacity .95s cubic-bezier(.22,1,.36,1),
    transform 1.05s cubic-bezier(.22,1,.36,1),
    clip-path 1.1s cubic-bezier(.22,1,.36,1);
}

.motion-reveal.reveal-left{
  transform:translateX(-95px);
}

.motion-reveal.reveal-right{
  transform:translateX(95px);
}

.motion-reveal.reveal-up{
  transform:translateY(42px);
}



.motion-reveal.is-visible{
  opacity:1;
  transform:translate(0);
  clip-path:inset(0);
}

/* Sobrescreve o reveal antigo sem apagar a estrutura original */
[data-reveal="stagger"] > *{
    opacity:0;
    transform:translateY(55px);
    transition:
        opacity .8s ease,
        transform .8s ease;
}

[data-reveal="stagger"] > *.stagger-visible{
    opacity:1;
    transform:translateY(0);
}

[data-reveal="stagger"] > *{
  opacity:0;
  transform:translateY(64px) scale(.96);
  transition:
    opacity .85s cubic-bezier(.22,1,.36,1) var(--item-delay,0ms),
    transform .9s cubic-bezier(.22,1,.36,1) var(--item-delay,0ms);
}

[data-reveal="stagger"] > *.stagger-visible{
  opacity:1;
  transform:translateY(0) scale(1);
}

.quality,
.contact-channel{
  opacity:0;
  transform:translateY(20px);
  transition:
    opacity .65s ease var(--item-delay,0ms),
    transform .7s cubic-bezier(.22,1,.36,1) var(--item-delay,0ms);
}

.quality.micro-visible,
.contact-channel.micro-visible{
  opacity:1;
  transform:translateY(0);
}

/* ---------- LINHAS DOS TÍTULOS ---------- */

.section-title{
  position:relative;
}

.section-title::after{
  content:'';
  display:block;
  width:0;
  height:1px;
  margin-top:22px;
  background:linear-gradient(90deg,var(--gold-dark),var(--gold-light));
  transition:width 1s cubic-bezier(.22,1,.36,1) .3s;
}

.is-visible .section-title::after{
  width:74px;
}

.section-head.center .section-title::after{
  margin-left:auto;
  margin-right:auto;
}

/* ---------- IMAGENS ---------- */

.hero-photo,
.about-photo .photo-inner,
.contact-photo .photo-inner{
  isolation:isolate;
  overflow:hidden;
}

.hero-image,
.about-image,
.contact-image{
  height:108%;
  transform:scale(1.045) translateY(var(--parallax-y,0));
  transition:
    transform .18s linear,
    filter .75s ease;
  will-change:transform;
}

.hero-photo:hover .hero-image,
.about-photo:hover .about-image,
.contact-photo:hover .contact-image{
  filter:contrast(1.04) saturate(1.05) brightness(1.02);
}

.hero-photo::after,
.about-photo .photo-inner::after,
.contact-photo .photo-inner::after{
  content:'';
  position:absolute;
  top:0;
  bottom:0;
  left:-145%;
  width:65%;
  z-index:5;
  pointer-events:none;
  transform:skewX(-18deg);
  background:linear-gradient(
    105deg,
    transparent,
    rgba(255,255,255,.2),
    transparent
  );
  transition:left .9s ease;
}

.hero-photo:hover::after,
.about-photo:hover .photo-inner::after,
.contact-photo:hover .photo-inner::after{
  left:155%;
}

.hero-right .photo-layered{
  transform:translate(var(--hero-x,0),var(--hero-y,0));
  transition:transform .35s ease-out;
  will-change:transform;
}

/* ---------- CARDS ---------- */

.interactive-card{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  transform-style:preserve-3d;
  transform:
    perspective(1100px)
    translateY(0)
    rotateX(var(--card-rx,0deg))
    rotateY(var(--card-ry,0deg));
  will-change:transform;
}

.interactive-card.card-hovered{
  transform:
    perspective(1100px)
    translateY(-9px)
    rotateX(var(--card-rx,0deg))
    rotateY(var(--card-ry,0deg));
}

.area-card.interactive-card{
  transition:
    transform .3s ease-out,
    box-shadow .45s ease;
}

.area-card.interactive-card::before{
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  opacity:0;
  pointer-events:none;
  background:radial-gradient(
    circle at var(--pointer-x,50%) var(--pointer-y,50%),
    rgba(201,166,107,.24),
    transparent 42%
  );
  transition:opacity .35s ease;
}

.area-card.interactive-card::after{
  content:'';
  position:absolute;
  top:0;
  bottom:0;
  left:-140%;
  width:65%;
  z-index:-1;
  pointer-events:none;
  transform:skewX(-18deg);
  background:linear-gradient(
    105deg,
    transparent,
    rgba(255,255,255,.27),
    transparent
  );
  transition:left .85s ease;
}

.area-card.interactive-card.card-hovered::before{
  opacity:1;
}

.area-card.interactive-card.card-hovered::after{
  left:150%;
}

.area-card .icon-ring,
.area-card h3,
.area-card p,
.area-card .area-more{
  position:relative;
  z-index:2;
  transform:translateZ(18px);
}

.area-card .icon-ring,
.dif-card .icon-ring{
  transition:
    transform .45s cubic-bezier(.22,1,.36,1),
    background .35s ease,
    color .35s ease;
}

.area-card:hover .icon-ring{
  transform:translateZ(28px) translateY(-4px) rotate(-4deg) scale(1.06);
  background:var(--marsala);
}

.area-card:hover .icon-ring svg{
  color:var(--parchment);
}

.dif-card{
  transition:
    transform .4s cubic-bezier(.22,1,.36,1),
    opacity .4s ease;
}

.dif-card:hover{
  transform:translateY(-7px);
}

.dif-card:hover .icon-ring{
  transform:rotate(-5deg) scale(1.08);
  background:rgba(233,212,163,.08);
}

/* ---------- PROCESSO ---------- */

.process-num{
  transition:
    transform .4s cubic-bezier(.22,1,.36,1),
    color .35s ease,
    background .35s ease,
    box-shadow .4s ease;
}

.process-step:hover .process-num{
  transform:translateY(-6px) scale(1.08);
  color:var(--parchment);
  background:var(--marsala);
  box-shadow:0 20px 36px -14px rgba(38,12,15,.38);
}

/* ---------- BOTÕES ---------- */

.magnetic-button{
  overflow:hidden;
  transform:translate(var(--magnet-x,0),var(--magnet-y,0));
  transition:
    transform .25s ease-out,
    background .35s ease,
    color .35s ease,
    border-color .35s ease,
    box-shadow .35s ease;
  will-change:transform;
}

.magnetic-button::before{
  content:'';
  position:absolute;
  inset:0;
  left:-125%;
  background:linear-gradient(
    110deg,
    transparent,
    rgba(255,255,255,.23),
    transparent
  );
  transition:left .7s ease;
}

.magnetic-button:hover::before{
  left:125%;
}

.contact-form-wrap .btn.form-sent{
  animation:formPulse .7s ease;
}

@keyframes formPulse{
  50%{transform:scale(.985);box-shadow:0 0 0 6px rgba(233,212,163,.12)}
}

/* ---------- MONOGRAMA ---------- */

.hero-monogram{
  transform:translate(var(--mono-x,0),var(--mono-y,0));
  transition:transform .25s ease-out;
  will-change:transform;
}

/* ---------- MENU ---------- */

.nav-toggle span{
  transition:
    transform .35s ease,
    opacity .25s ease;
}

.nav-toggle.active span:nth-child(1){
  transform:translateY(6px) rotate(45deg);
}

.nav-toggle.active span:nth-child(2){
  opacity:0;
}

.nav-toggle.active span:nth-child(3){
  transform:translateY(-6px) rotate(-45deg);
}

/* ---------- CURSOR ---------- */

.cursor-dot,
.cursor-ring{
  position:fixed;
  top:0;
  left:0;
  z-index:18000;
  pointer-events:none;
  opacity:0;
  border-radius:50%;
  transform:translate3d(-100px,-100px,0);
}

.cursor-dot{
  width:6px;
  height:6px;
  margin:-3px 0 0 -3px;
  background:var(--gold-light);
}

.cursor-ring{
  width:34px;
  height:34px;
  margin:-17px 0 0 -17px;
  border:1px solid rgba(201,166,107,.65);
  transition:
    width .25s ease,
    height .25s ease,
    margin .25s ease,
    background .25s ease,
    border-color .25s ease;
}

.cursor-ready .cursor-dot,
.cursor-ready .cursor-ring{
  opacity:1;
}

.cursor-interactive .cursor-ring{
  width:52px;
  height:52px;
  margin:-26px 0 0 -26px;
  background:rgba(201,166,107,.08);
  border-color:var(--gold-light);
}

/* ---------- VOLTAR AO TOPO ---------- */

.back-to-top{
  position:fixed;
  right:26px;
  bottom:100px;
  z-index:9998;
  width:46px;
  height:46px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--parchment);
  background:var(--marsala);
  border:1px solid var(--gold);
  opacity:0;
  visibility:hidden;
  transform:translateY(18px) scale(.9);
  box-shadow:0 15px 35px rgba(38,12,15,.25);
  transition:
    opacity .35s ease,
    visibility .35s ease,
    transform .35s cubic-bezier(.22,1,.36,1),
    background .3s ease;
}

.back-to-top.visible{
  opacity:1;
  visibility:visible;
  transform:translateY(0) scale(1);
}

.back-to-top:hover{
  background:var(--marsala-deep);
  transform:translateY(-4px) scale(1.04);
}

/* ---------- BOTÃO WHATSAPP ---------- */

.whats-float{
  animation:whatsBreath 2.6s ease-in-out infinite;
  transition:
    transform .3s ease,
    box-shadow .3s ease;
}

.whats-float:hover{
  transform:translateY(-4px) scale(1.06);
  box-shadow:0 15px 34px rgba(38,12,15,.35);
}

@keyframes whatsBreath{
  0%,100%{box-shadow:0 10px 25px rgba(0,0,0,.25),0 0 0 0 rgba(201,166,107,.18)}
  50%{box-shadow:0 13px 30px rgba(0,0,0,.28),0 0 0 10px rgba(201,166,107,0)}
}

/* ---------- RESPONSIVO ---------- */

@media (max-width:900px){
  .cursor-dot,
  .cursor-ring{
    display:none;
  }

  .hero-right.hero-intro{
    transform:translateY(55px) scale(.97);
  }

  .motion-reveal.reveal-left,
  .motion-reveal.reveal-right{
    transform:translateY(46px);
  }

  .interactive-card,
  .interactive-card.card-hovered,
  .magnetic-button,
  .hero-monogram,
  .hero-right .photo-layered{
    transform:none !important;
  }

  .hero-image,
  .about-image,
  .contact-image{
    height:100%;
    transform:scale(1.025) !important;
  }
}

@media (max-width:480px){
  .motion-letter{
    transition-duration:.58s;
  }

  .back-to-top{
    right:18px;
    bottom:94px;
  }
}

/* ---------- MOVIMENTO REDUZIDO ---------- */

@media (prefers-reduced-motion:reduce){
  *,
  *::before,
  *::after{
    animation:none !important;
    transition:none !important;
    scroll-behavior:auto !important;
  }

  .site-preloader{
    display:none !important;
  }

  .hero-intro,
  .motion-letter,
  .motion-reveal,
  [data-reveal="stagger"] > *,
  .quality,
  .contact-channel{
    opacity:1 !important;
    transform:none !important;
    clip-path:none !important;
  }

  .cursor-dot,
  .cursor-ring{
    display:none !important;
  }
}


/* =========================================================
   CORREÇÃO DE VISIBILIDADE DAS FOTOS
========================================================= */

/* Evita conflito entre duas animações usando clip-path no mesmo elemento. */
.hero-right,
.about-photo,
.contact-photo{
  visibility:visible;
}

.hero-right.intro-visible,
.about-photo.is-visible,
.contact-photo.is-visible{
  opacity:1 !important;
  clip-path:inset(0) !important;
}

/* As imagens permanecem sempre renderizadas dentro dos seus quadros. */
.hero-image,
.about-image,
.contact-image{
  display:block !important;
  opacity:1 !important;
  visibility:visible !important;
  width:100% !important;
  min-width:100%;
  min-height:100%;
}

/* A foto Sobre Mim usa proporção vertical; o contato preenche todo o bloco. */
.about-photo .photo-inner,
.contact-photo .photo-inner{
  min-height:420px;
}

.about-image{
  object-fit:cover;
  object-position:center 15%;
}

.contact-image{
  object-fit:cover;
  object-position:center 18%;
}

/* Em telas menores, remove qualquer máscara residual. */
@media (max-width:900px){
  .hero-right,
  .about-photo,
  .contact-photo{
    clip-path:none !important;
    opacity:1;
  }
}


/* =========================================================
   CORREÇÃO DEFINITIVA — FOTOS SOBRE MIM E CONTATO
========================================================= */

.about-photo,
.contact-photo{
  display:block !important;
  visibility:visible !important;
  clip-path:none !important;
  position:relative;
}

.about-photo .photo-inner,
.contact-photo .photo-inner{
  position:relative;
  display:block;
  width:100%;
  height:100%;
  min-height:520px;
  overflow:hidden;
  opacity:1;
  visibility:visible;
}

.about-image,
.contact-image{
  display:block !important;
  width:100% !important;
  height:100% !important;
  min-height:520px;
  opacity:1 !important;
  visibility:visible !important;
  object-fit:cover !important;
  transform:none;
}

.about-image{
  object-position:center 15%;
}

.contact-image{
  object-position:center 18%;
}

/* Entrada suave sem clip-path e sem conflito com data-reveal */
.reveal-photo{
  opacity:0;
  visibility:visible;
  transition:
    opacity .9s cubic-bezier(.22,1,.36,1),
    transform 1s cubic-bezier(.22,1,.36,1);
}

.reveal-photo.reveal-from-left{
  transform:translateX(-70px);
}

.reveal-photo.reveal-from-right{
  transform:translateX(70px);
}

.reveal-photo.photo-visible{
  opacity:1 !important;
  transform:translateX(0) !important;
  visibility:visible !important;
}

/* Impede regras antigas de animação de esconderem essas fotos */
.about-photo.motion-reveal,
.contact-photo.motion-reveal,
.about-photo[data-reveal],
.contact-photo[data-reveal]{
  opacity:1 !important;
  transform:none !important;
  clip-path:none !important;
  visibility:visible !important;
}

@media (max-width:900px){
  .reveal-photo{
    opacity:1;
    transform:none !important;
  }

  .about-photo .photo-inner,
  .contact-photo .photo-inner,
  .about-image,
  .contact-image{
    min-height:420px;
  }
}

/* Esconde o cursor padrão */
html,
body,
a,
button,
input,
textarea,
select,
label,
.area-card,
.dif-card,
.btn,
.whats-float{
  cursor: none !important;
}

@media (hover: hover) and (pointer: fine){
  html,
  body,
  a,
  button,
  input,
  textarea,
  select,
  label,
  .area-card,
  .dif-card,
  .btn,
  .whats-float{
    cursor: none !important;
  }
}


/* CTA antes do formulário — sem cursor customizado e sem botão de voltar */
.pre-contact-cta {
  position: relative;
  padding: 18px 14px;
  overflow: hidden;
  background:
    radial-gradient(circle at 8% 22%, rgba(132, 48, 60, .42), transparent 34%),
    linear-gradient(110deg, #5a2029 0%, #43141c 56%, #2f0d13 100%);
}

.pre-contact-frame {
  position: relative;
  min-height: 310px;
  border: 1px solid rgba(201, 166, 107, .24);
  overflow: hidden;
}

.pre-contact-inner {
  position: relative;
  z-index: 1;
  min-height: 310px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 56px;
  padding-top: 54px;
  padding-bottom: 54px;
}

.pre-contact-copy {
  position: relative;
  z-index: 2;
  max-width: 830px;
}

.pre-contact-copy .eyebrow { margin-bottom: 24px; }

.pre-contact-copy h2 {
  margin: 0;
  max-width: 900px;
  color: var(--parchment);
  font-family: var(--serif);
  font-size: clamp(2.35rem, 4.15vw, 4.15rem);
  font-weight: 400;
  line-height: .98;
  letter-spacing: -.025em;
}

.pre-contact-button {
  position: relative;
  z-index: 2;
  min-width: 250px;
  justify-content: center;
  padding: 19px 30px;
  color: var(--parchment);
  border-color: rgba(233, 212, 163, .9);
  background: rgba(72, 18, 27, .2);
  transition: background .3s ease, border-color .3s ease, color .3s ease;
}

.pre-contact-button:hover {
  background: rgba(233, 212, 163, .10);
  border-color: var(--gold-light);
  transform: none;
}

.pre-contact-monogram {
  position: absolute;
  right: 34px;
  top: 50%;
  transform: translateY(-50%);
  font-family: var(--serif);
  font-size: clamp(9rem, 18vw, 17rem);
  line-height: 1;
  letter-spacing: -.12em;
  color: rgba(233, 212, 163, .045);
  pointer-events: none;
  user-select: none;
}

@media (max-width: 900px) {
  .pre-contact-frame,
  .pre-contact-inner { min-height: auto; }

  .pre-contact-inner {
    grid-template-columns: 1fr;
    gap: 30px;
    padding-top: 60px;
    padding-bottom: 60px;
  }

  .pre-contact-button {
    justify-self: start;
    min-width: 220px;
  }

  .pre-contact-monogram {
    right: 10px;
    font-size: 9rem;
  }

  .pre-contact-copy h2 {
    font-size: clamp(2rem, 8vw, 3.4rem);
    line-height: 1.04;
  }
}

@media (max-width: 560px) {
  .pre-contact-cta { padding: 10px; }

  .pre-contact-inner {
    padding-left: 22px;
    padding-right: 22px;
  }

  .pre-contact-copy .eyebrow {
    font-size: .62rem;
    letter-spacing: .18em;
  }

  .pre-contact-button {
    width: 100%;
    min-width: 0;
  }
}



/* =====================================================
   AVALIAÇÕES — GOOGLE / LAYOUT PREMIUM
===================================================== */
.reviews-section{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:125px 0 105px;
  background:
    radial-gradient(circle at 50% 0%, rgba(201,166,107,.11), transparent 34%),
    linear-gradient(180deg, #fbf8f1 0%, #f6f0e4 100%);
}

.reviews-orbit{
  position:absolute;
  width:560px;
  height:560px;
  border:1px solid rgba(143,107,52,.08);
  border-radius:50%;
  left:50%;
  top:80px;
  transform:translateX(-50%);
  pointer-events:none;
  z-index:-1;
}
.reviews-orbit::before,
.reviews-orbit::after{
  content:"";
  position:absolute;
  border:1px solid rgba(143,107,52,.06);
  border-radius:50%;
  inset:55px;
}
.reviews-orbit::after{ inset:120px; }

.reviews-heading{ margin-bottom:58px; }
.reviews-heading .section-intro{
  max-width:680px;
  margin-left:auto;
  margin-right:auto;
  font-size:.93rem;
  text-align:center;
}

.reviews-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:22px;
  align-items:stretch;
}

.google-review-card{
  text-align:center;
  position:relative;
  display:flex;
  flex-direction:column;
  min-height:100%;
  padding:31px 30px 27px;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(90,35,40,.13);
  box-shadow:0 22px 55px -34px rgba(38,12,15,.28);
  transition:transform .45s var(--ease), box-shadow .45s var(--ease), border-color .45s var(--ease);
  overflow:hidden;
}
.google-review-card::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  width:100%;
  height:3px;
  background:linear-gradient(90deg, transparent, var(--gold), transparent);
  opacity:.8;
}
.google-review-card::after{
  content:"“";
  position:absolute;
  right:17px;
  bottom:-36px;
  font-family:var(--serif);
  font-size:150px;
  line-height:1;
  color:rgba(90,35,40,.045);
  pointer-events:none;
}
.google-review-card:hover{
  transform:translateY(-7px);
  border-color:rgba(143,107,52,.34);
  box-shadow:0 30px 70px -38px rgba(38,12,15,.38);
}
.featured-review{
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(247,239,225,.9));
  transform:translateY(-9px);
  border-color:rgba(143,107,52,.28);
  box-shadow:0 30px 70px -34px rgba(38,12,15,.32);
}
.featured-review:hover{ transform:translateY(-14px); }

.review-card-top{
  display:flex;
  align-items:center;
  gap:13px;
  position:relative;
  z-index:2;
}
.review-avatar{
  width:47px;
  height:47px;
  min-width:47px;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:var(--parchment);
  background:var(--marsala);
  border:1px solid var(--gold);
  font-family:var(--serif);
  font-size:1.05rem;
  font-weight:600;
  letter-spacing:.03em;
}
.avatar-moniky{ background:#f7f2e8; color:var(--marsala); }
.avatar-felipe{ background:#e9dfc9; color:var(--marsala-deep); }

.reviewer-info{ min-width:0; }
.reviewer-info h3{
  margin:0;
  font-family:var(--sans);
  font-size:.88rem;
  font-weight:600;
  line-height:1.3;
  color:var(--marsala-deep);
}
.reviewer-info span{
  display:block;
  margin-top:3px;
  font-size:.64rem;
  color:#7a6d64;
  line-height:1.35;
}
.google-mini{
  width:29px;
  height:29px;
  margin-left:auto;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#fff;
  border:1px solid rgba(90,35,40,.13);
  font-family:Arial,sans-serif;
  font-size:1rem;
  font-weight:700;
  color:#4285f4;
  box-shadow:0 5px 15px rgba(38,12,15,.06);
}

.review-meta{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin:21px 0 17px;
}
.stars{
  font-family:Arial,sans-serif;
  color:#d49a26;
  font-size:.94rem;
  letter-spacing:.075em;
  line-height:1;
}
.review-date{
  color:#8a7d73;
  font-size:.65rem;
}

.google-review-card blockquote{
  position:relative;
  z-index:2;
  margin:0;
  padding:0;
  border:0;
  font-family:var(--sans);
  font-size:.83rem;
  line-height:1.78;
  font-weight:300;
  color:#4f4540;
}
.google-review-card blockquote::first-letter{ color:var(--marsala); }

.review-signature{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin-top:auto;
  padding-top:25px;
  position:relative;
  z-index:2;
}
.review-signature span{
  width:28px;
  height:1px;
  background:var(--gold);
}
.review-signature small{
  color:#9a8b7d;
  font-size:.58rem;
  letter-spacing:.07em;
  text-transform:uppercase;
}

.reviews-footer{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  margin-top:52px;
  color:var(--gold-dark);
  font-size:.61rem;
  letter-spacing:.19em;
  text-transform:uppercase;
  text-align:center;
}
.reviews-footer-line{
  width:58px;
  height:1px;
  background:var(--gold-line);
}

@media (max-width: 1050px){
  .reviews-grid{ grid-template-columns:1fr; max-width:760px; margin:0 auto; }
  .google-review-card,
  .featured-review{ transform:none; }
  .google-review-card:hover,
  .featured-review:hover{ transform:translateY(-6px); }
}

@media (max-width: 600px){
  .reviews-section{ padding:90px 0 80px; }
  .reviews-heading{ margin-bottom:40px; }
  .reviews-orbit{ width:360px; height:360px; top:130px; }
  .google-review-card{ padding:25px 22px 23px; }
  .google-review-card blockquote{ font-size:.78rem; line-height:1.72; }
  .reviews-footer{ flex-wrap:wrap; line-height:1.8; gap:8px 12px; }
  .reviews-footer-line{ width:35px; }
}


/* =========================================================
   SOBRE MIM — textura elegante no fundo
========================================================= */
#sobre{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:
    linear-gradient(90deg, rgba(246,240,228,0.94) 0%, rgba(246,240,228,0.88) 48%, rgba(246,240,228,0.80) 100%),
    url("../img/sobre-mim-textura.jpg") center center / cover no-repeat;
}

#sobre::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(
    90deg,
    rgba(255,255,255,0.20) 0%,
    rgba(255,255,255,0.05) 55%,
    rgba(90,35,40,0.06) 100%
  );
  pointer-events:none;
}

#sobre .container{
  position:relative;
  z-index:1;
}

#sobre .about-text{
  padding:34px 42px;
  background:rgba(246,240,228,0.70);
  border:1px solid rgba(201,166,107,0.28);
  box-shadow:0 24px 60px -38px rgba(38,12,15,0.30);
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
}

#sobre .about-lede{
  max-width:620px;
}

#sobre .body-text{
  white-space:pre-line;
}

#sobre .logo{} /* keeps this block self-contained */

/* Logo refinado */
.logo{
  flex-shrink:0;
  min-width:255px;
  gap:14px;
}

.logo-mark{
  width:46px;
  height:46px;
  border-width:1px;
  letter-spacing:0.02em;
  box-shadow:0 8px 24px -18px rgba(38,12,15,0.65);
}

.logo-text{
  display:flex;
  flex-direction:column;
  gap:4px;
}

.logo-text .name{
  font-size:1.22rem;
  line-height:1;
  letter-spacing:0.025em;
  white-space:nowrap;
}

.logo-text .tag{
  font-size:0.58rem;
  letter-spacing:0.20em;
  line-height:1;
  white-space:nowrap;
}

@media (max-width:1100px){
  .logo{min-width:auto;}
  .logo-text .name{font-size:1.08rem;}
  nav ul{gap:24px;}
}

@media (max-width:900px){
  #sobre{
    background:
      linear-gradient(rgba(246,240,228,0.90), rgba(246,240,228,0.90)),
      url("../img/sobre-mim-textura.jpg") center / cover no-repeat;
  }

  #sobre .about-text{
    padding:28px 24px;
  }

  .logo-text .name{font-size:1rem;}
  .logo-text .tag{font-size:0.54rem; letter-spacing:0.16em;}
}

@media (max-width:560px){
  .logo{gap:10px;}
  .logo-mark{width:40px;height:40px;font-size:1rem;}
  .logo-text .name{font-size:0.92rem;}
  .logo-text .tag{font-size:0.48rem;}
}


/* =========================================================
   RESPONSIVIDADE GLOBAL + ACESSIBILIDADE VISUAL
   Estrutura inspirada nos breakpoints do Bootstrap, sem
   depender de framework externo.
========================================================= */

/* Nunca deixe conteúdo largo estourar a viewport */
html { overflow-x: hidden; }
body { min-width: 320px; }
.container {
  width: 100%;
  max-width: 1240px;
  margin-inline: auto;
  padding-inline: clamp(16px, 4vw, 40px);
}
section, header, footer { max-width: 100%; }
button, a, input, textarea, select { -webkit-tap-highlight-color: transparent; }

/* Foco visível: importante para teclado e acessibilidade */
:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 4px;
}

/* Painel de acessibilidade */
.accessibility-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 42px;
  padding: 9px 13px;
  border: 1px solid rgba(201,166,107,.65);
  color: var(--parchment);
  background: rgba(38,12,15,.18);
  font-size: .66rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  transition: .25s ease;
}
header.scrolled .accessibility-toggle {
  color: var(--marsala);
  background: rgba(246,240,228,.72);
}
.accessibility-toggle:hover { border-color: var(--gold-light); }
.accessibility-toggle > span:first-child { font-size: 1.15rem; line-height: 1; }
.accessibility-panel {
  position: fixed;
  top: 92px;
  right: clamp(12px, 3vw, 40px);
  z-index: 1100;
  width: min(430px, calc(100vw - 24px));
  border: 1px solid var(--gold-line);
  background: rgba(246,240,228,.98);
  color: var(--ink);
  box-shadow: 0 22px 60px rgba(38,12,15,.25);
}
.accessibility-panel[hidden] { display: none; }
.accessibility-panel-inner { padding: 20px; }
.accessibility-panel strong { font-family: var(--sans); }
.accessibility-panel p {
  margin-top: 5px;
  font-size: .75rem;
  color: var(--ink-soft);
}
.accessibility-actions {
  display: grid;
  gap: 10px;
  margin-top: 16px;
}
.accessibility-option {
  width: 100%;
  display: grid;
  grid-template-columns: 34px minmax(0,1fr) auto;
  align-items: center;
  gap: 11px;
  text-align: left;
  padding: 12px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.55);
  color: var(--ink);
}
.accessibility-option:hover,
.accessibility-option[aria-pressed="true"] {
  border-color: var(--gold-dark);
}
.accessibility-option .option-icon {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 1px solid var(--gold);
}
.accessibility-option small {
  display: block;
  margin-top: 3px;
  font-size: .65rem;
  line-height: 1.45;
  color: var(--ink-soft);
}
.option-status {
  min-width: 34px;
  text-align: center;
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .08em;
}

/* Breakpoint XL */
@media (max-width: 1199.98px) {
  .container { max-width: 1140px; }
  header .container { gap: 20px; }
  nav ul { gap: 20px; }
  .logo { min-width: auto; }
  .nav-cta { gap: 12px; }
  .hero-left { padding-left: clamp(40px, 6vw, 80px); }
  .hero-right { padding-right: clamp(45px, 6vw, 70px); }
  .areas-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

/* Breakpoint LG */
@media (max-width: 991.98px) {
  .container { max-width: 960px; }
  header { padding: 18px 0; }
  header .container { min-height: 48px; }
  header nav {
    position: fixed;
    inset: 76px 16px auto;
    transform: none;
    width: auto;
    z-index: 1001;
  }
  nav ul {
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 12px;
    background: rgba(38,12,15,.98);
    border: 1px solid rgba(201,166,107,.35);
    box-shadow: 0 25px 60px rgba(0,0,0,.28);
  }
  nav ul.open { display: flex; }
  nav li a {
    padding: 15px 14px;
    color: var(--parchment) !important;
    border-bottom: 1px solid rgba(233,212,163,.12);
  }
  nav li:last-child a { border-bottom: 0; }
  .nav-toggle {
    display: inline-flex;
    width: 44px;
    height: 44px;
    padding: 10px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    border: 1px solid rgba(201,166,107,.65);
    color: var(--parchment);
  }
  .nav-toggle span {
    width: 20px;
    height: 1px;
    background: currentColor;
    transition: transform .25s ease, opacity .25s ease;
  }
  header.scrolled .nav-toggle { color: var(--marsala); }
  .nav-toggle.active span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .nav-toggle.active span:nth-child(2) { opacity: 0; }
  .nav-toggle.active span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

  .nav-cta > .nav-contact-btn { display: none; }
  .accessibility-toggle-label { display: none; }
  .accessibility-toggle { width: 44px; padding: 8px; }

  .hero {
    min-height: auto;
    grid-template-columns: 1fr;
  }
  .hero-left {
    min-height: 72vh;
    padding: 150px clamp(24px, 7vw, 80px) 70px;
  }
  .hero-right {
    min-height: 620px;
    padding: 70px clamp(30px, 7vw, 80px) 90px;
  }
  .hero-right .photo-layered { width: min(100%, 540px); height: 560px; }
  .hero-photo { min-height: 0; height: 100%; }
  .hero-side-note { right: 12px; }
  .section { padding: 110px 0; }
  .section.tight { padding: 80px 0; }
}

/* Breakpoint MD */
@media (max-width: 767.98px) {
  .container { max-width: 720px; padding-inline: 20px; }
  .section { padding: 88px 0; }
  .section.tight { padding: 70px 0; }
  .section-head { margin-bottom: 46px; }

  .hero-left {
    min-height: auto;
    padding: 130px 20px 55px;
  }
  .hero-headline {
    font-size: clamp(2.35rem, 10vw, 3.45rem);
    max-width: 100%;
  }
  .hero-sub { max-width: 100%; font-size: .9rem; }
  .hero-actions {
    width: 100%;
    gap: 10px;
    margin-top: 34px;
  }
  .hero-actions .btn { flex: 1 1 220px; justify-content: center; }
  .hero-right {
    min-height: 500px;
    padding: 40px 35px 70px;
  }
  .hero-right .photo-layered { height: 460px; }
  .hero-side-note { display: none; }

  .areas-grid,
  .reviews-grid { grid-template-columns: 1fr; }
  .area-card { padding: 32px 24px; }
  .about-grid,
  .contact-grid,
  .footer-grid { grid-template-columns: 1fr !important; }
  .about-photo .photo-inner,
  .contact-photo .photo-inner,
  .about-image,
  .contact-image { min-height: 380px; }
  .form-row { grid-template-columns: 1fr !important; }

  .accessibility-panel { top: 72px; right: 12px; }
}

/* Breakpoint SM */
@media (max-width: 575.98px) {
  .container { max-width: 540px; padding-inline: 16px; }
  header .container { padding-inline: 16px; }
  .logo-text .name { font-size: .88rem; }
  .logo-text .tag { font-size: .48rem; letter-spacing: .13em; }
  .logo-mark { width: 39px; height: 39px; }
  .nav-cta { gap: 7px; }
  .accessibility-toggle, .nav-toggle { width: 40px; height: 40px; min-height: 40px; }
  header nav { inset: 68px 10px auto; }

  .hero-left { padding: 112px 16px 48px; }
  .hero-headline { font-size: clamp(2.1rem, 11vw, 3rem); }
  .hero-sub { padding-left: 15px; }
  .hero-actions { flex-direction: column; }
  .hero-actions .btn { width: 100%; flex-basis: auto; }
  .hero-right { min-height: 430px; padding: 25px 24px 60px; }
  .hero-right .photo-layered { height: 380px; }
  .photo-layered::before { transform: translate(9px,9px); }
  .corner { width: 18px; height: 18px; }
  .icon-ring { width: 52px; height: 52px; margin-bottom: 20px; }

  .section-title { font-size: clamp(1.9rem, 9vw, 2.55rem); }
  .eyebrow { font-size: .59rem; letter-spacing: .18em; }
  .reviews-section { padding: 72px 0 65px; }
  .reviews-orbit { width: 300px; height: 300px; }
  .google-review-card { padding: 23px 18px 21px; }

  .about-photo .photo-inner,
  .contact-photo .photo-inner,
  .about-image,
  .contact-image { min-height: 300px; }
  #sobre .about-text { padding: 23px 18px; }

  .accessibility-panel { width: calc(100vw - 20px); right: 10px; }
  .accessibility-panel-inner { padding: 16px; }
  .accessibility-option { grid-template-columns: 30px minmax(0,1fr) auto; gap: 8px; }
  .accessibility-option small { font-size: .59rem; }
}

/* Touch devices: don't hide the real cursor and don't run desktop hover effects */
@media (hover: none), (pointer: coarse) {
  html, body, a, button, input, textarea, select, label,
  .area-card, .dif-card, .btn, .whats-float { cursor: auto !important; }
  .cursor-dot, .cursor-ring { display: none !important; }
}

/* =========================================================
   MODO BAIXA LUMINOSIDADE — FOTOFobia / SENSIBILIDADE À LUZ
   O modo reduz luminosidade, remove fundos muito claros,
   suaviza bordas e desativa efeitos visuais intensos.
========================================================= */
html.photophobia-mode {
  background: #171416;
  color-scheme: dark;
}
body.photophobia-mode {
  --parchment: #d7d0c8;
  --sand: #302b2b;
  --sand-deep: #3a3332;
  --ink: #ded7cf;
  --ink-soft: #aaa099;
  --line: rgba(215,208,200,.16);
  --gold: #b99d6b;
  --gold-light: #c7b58f;
  --gold-dark: #947d54;
  background: #171416;
  color: #d7d0c8;
}
body.photophobia-mode img { filter: brightness(.68) saturate(.82); }
body.photophobia-mode .hero {
  background-image:
    linear-gradient(90deg, rgba(0,0,0,.62), rgba(0,0,0,.74)),
    url('../img/home-textura-marsala.png');
  background-color: #21191b;
}
body.photophobia-mode .hero-photo::before,
body.photophobia-mode .reviews-orbit,
body.photophobia-mode .hero-side-note { opacity: .25; }
body.photophobia-mode header.scrolled {
  background: rgba(25,22,23,.96);
  border-color: rgba(215,208,200,.12);
}
body.photophobia-mode header.scrolled nav a,
body.photophobia-mode header.scrolled .logo-text .name,
body.photophobia-mode header.scrolled .logo-text .tag,
body.photophobia-mode header.scrolled .logo-mark,
body.photophobia-mode header.scrolled .accessibility-toggle,
body.photophobia-mode header.scrolled .nav-toggle { color: #d7d0c8; }
body.photophobia-mode .section:not(.on-dark),
body.photophobia-mode .reviews-section,
body.photophobia-mode footer {
  background: #1b1819 !important;
}
body.photophobia-mode #sobre {
  background:
    linear-gradient(rgba(27,24,25,.94), rgba(27,24,25,.94)),
    url("../img/sobre-mim-textura.jpg") center / cover no-repeat;
}
body.photophobia-mode #sobre .about-text,
body.photophobia-mode .area-card,
body.photophobia-mode .google-review-card,
body.photophobia-mode .contact-form-wrap {
  background: #242021;
  color: #d7d0c8;
  border-color: rgba(201,166,107,.18);
  box-shadow: 0 18px 45px rgba(0,0,0,.24);
  backdrop-filter: none;
}
body.photophobia-mode .area-card h3,
body.photophobia-mode .google-review-card h3,
body.photophobia-mode .section-title,
body.photophobia-mode .contact-form-wrap h3,
body.photophobia-mode .footer-col h4 { color: #ded7cf; }
body.photophobia-mode .area-card p,
body.photophobia-mode .google-review-card blockquote,
body.photophobia-mode .body-text,
body.photophobia-mode .section-intro,
body.photophobia-mode .privacy-note { color: #b9b0a8; }
body.photophobia-mode input,
body.photophobia-mode textarea,
body.photophobia-mode select {
  background: #191718;
  color: #ddd5cc;
  border-color: rgba(215,208,200,.18);
}
body.photophobia-mode .accessibility-panel {
  background: #242021;
  color: #ded7cf;
  border-color: rgba(201,166,107,.35);
}
body.photophobia-mode .accessibility-panel p,
body.photophobia-mode .accessibility-option small { color: #aaa099; }
body.photophobia-mode .accessibility-option {
  background: #1b1819;
  color: #ded7cf;
  border-color: rgba(215,208,200,.14);
}
body.photophobia-mode .pre-contact-cta {
  background: #21191b !important;
}
body.photophobia-mode .pre-contact-frame { border-color: rgba(201,166,107,.18); }
body.photophobia-mode .pre-contact-monogram { opacity: .45; }
body.photophobia-mode .btn-primary { background: #4a252b; border-color: #947d54; }
body.photophobia-mode .btn-ghost { color: #d7d0c8; border-color: #947d54; }

/* Redução opcional de movimento, também disponível no painel */
html.reduce-motion *,
html.reduce-motion *::before,
html.reduce-motion *::after {
  animation-duration: .001ms !important;
  animation-iteration-count: 1 !important;
  scroll-behavior: auto !important;
  transition-duration: .001ms !important;
}
