:root {
  --black:     #0C0C0C; --charcoal:  #181818; --graphite:  #272727;
  --panel:     #1E1E1E; --silver:    #8C8C8C; --ash:       #A5A5A5;
  --frost:     #E6E2DD; --white:     #F8F6F3; --rg:        #C4856A;
  --rg-lt:     #D9A08A; --rg-pale:    rgba(196,133,106,0.10);
  --rg-border: rgba(196,133,106,0.22); --ease: cubic-bezier(0.4,0,0.2,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Outfit',sans-serif;background:var(--black);color:var(--frost);overflow-x:hidden}

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

.rv{opacity:0;transform:translateY(26px);transition:opacity .85s var(--ease),transform .85s var(--ease)}
.rv.on{opacity:1;transform:none}
.d1{transition-delay:.1s}.d2{transition-delay:.22s}.d3{transition-delay:.34s}.d4{transition-delay:.46s}

/* NAV */
nav{position:fixed;top:0;width:100%;z-index:1000;padding:1.6rem 6%;display:flex;align-items:center;justify-content:space-between;transition:all .5s var(--ease)}
nav.sc{background:rgba(12,12,12,.93);backdrop-filter:blur(22px);padding:1rem 6%;border-bottom:1px solid var(--rg-border)}
.nlogo{display:flex;flex-direction:column;line-height:1;text-decoration:none}
.nlogo-main{font-family:'Bodoni Moda',serif;font-size:1.3rem;font-weight:600;color:var(--white);letter-spacing:.05em; font-style: italic;}
.nlogo-sub{font-size:.52rem;letter-spacing:.25em;text-transform:uppercase;color:var(--rg);font-weight:400;margin-top:4px}
.nlinks{display:flex;gap:2rem;list-style:none;align-items:center}
.nlinks a{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ash);text-decoration:none;transition:color .3s;position:relative}
.nlinks a::after{content:'';position:absolute;left:0;bottom:-4px;width:0;height:1px;background:var(--rg);transition:width .4s var(--ease)}
.nlinks a:hover{color:var(--frost)}
.nlinks a:hover::after{width:100%}

.nlink-highlight{color:var(--rg)!important}
.nlink-highlight::after{background:var(--rg)}

.ncta{background:var(--rg)!important;color:var(--black)!important;padding:.65rem 1.5rem;font-weight:600!important;letter-spacing:.16em!important}
.ncta::after{display:none!important}
.ncta:hover{background:var(--rg-lt)!important;transform:translateY(-2px)}

/* HERO */
.hero{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:9rem 6% 6rem;position:relative;overflow:hidden}
.hero-left{position:relative;z-index:1;padding-right:3rem}

.hero-tag{display:inline-flex;align-items:center;gap:10px;font-size:.62rem;letter-spacing:.44em;text-transform:uppercase;color:var(--rg);font-weight:500;margin-bottom:2rem;animation:fadeIn 1s .3s both}
.hero-tag::before{content:'';width:28px;height:1px;background:var(--rg)}
.hero-h1{font-family:'Bodoni Moda',serif;font-size:clamp(3rem,5.8vw,6rem);font-weight:900;line-height:.96;color:var(--white);letter-spacing:-.02em;margin-bottom:1.8rem;animation:fadeUp 1s .5s both}
.hero-h1 em{display:block;font-style:italic;font-weight:400;background:linear-gradient(135deg,var(--rg) 0%,var(--rg-lt) 50%,var(--rg) 100%);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:fadeUp 1s .7s both}
.hero-missao{font-size:.95rem;color:var(--ash);font-weight:300;line-height:1.85;margin-bottom:1.8rem;animation:fadeUp 1s .9s both;padding-left:1.2rem;border-left:2px solid var(--rg)}
.hero-trust-badges{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ash);margin-bottom:2.4rem;animation:fadeUp 1s 1s both}
.hero-trust-badges strong{color:var(--rg);font-weight:600;letter-spacing:.02em;margin-right:.35rem}
.hero-btns{display:flex;gap:1rem;flex-wrap:wrap;animation:fadeUp 1s 1.1s both}

.btn-rg{display:inline-flex;align-items:center;gap:8px;padding:1rem 2.4rem;background:var(--rg);color:var(--black);font-size:.73rem;letter-spacing:.22em;text-transform:uppercase;font-weight:600;text-decoration:none;transition:all .4s var(--ease);position:relative;overflow:hidden}
.btn-rg::before{content:'';position:absolute;inset:0;background:var(--rg-lt);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}
.btn-rg:hover::before{transform:scaleX(1)}
.btn-rg span{position:relative;z-index:1}
.btn-ghost{display:inline-flex;align-items:center;gap:8px;padding:1rem 2.4rem;border:1px solid rgba(255,255,255,.13);color:var(--ash);font-size:.73rem;letter-spacing:.22em;text-transform:uppercase;font-weight:400;text-decoration:none;transition:all .4s var(--ease)}
.btn-ghost:hover{border-color:var(--rg);color:var(--rg)}

.hero-right{position:relative;z-index:1;display:flex;justify-content:center;animation:fadeIn 1.2s .6s both}
.hphoto-wrap{position:relative;width:100%;max-width:450px}
.hphoto{width:100%;padding-bottom:118%;overflow:hidden;position:relative}
.hphoto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(15%)contrast(1.08);transition:filter 1s}
.hphoto:hover img{filter:grayscale(0%)}
.hphoto::before{content:'';position:absolute;top:14px;left:14px;width:46px;height:46px;border-top:2px solid var(--rg);border-left:2px solid var(--rg);z-index:2}
.hphoto::after{content:'';position:absolute;bottom:14px;right:14px;width:46px;height:46px;border-bottom:2px solid var(--rg);border-right:2px solid var(--rg);z-index:2}

/* CURSOS */
#cursos{padding:10rem 6%;border-top:1px solid rgba(255,255,255,.04)}
.courses-grid{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;max-width:1100px;margin:0 auto}
.course-card{background:var(--panel);border:1px solid rgba(255,255,255,0.03);border-radius:20px;overflow:hidden;display:flex;flex-direction:column;transition:border-color .4s var(--ease)}
.course-card:hover{border-color:var(--rg-border)}
.course-media{position:relative;width:100%;aspect-ratio:4/3;overflow:hidden;background:var(--charcoal)}
.course-media > img{width:100%;height:100%;object-fit:cover;filter:grayscale(15%)contrast(1.08);transition:filter .8s}
.course-card:hover .course-media > img{filter:grayscale(0%)}
.course-info{padding:2.2rem 2rem 2.4rem;display:flex;flex-direction:column;flex:1}
.course-title{font-family:'Bodoni Moda',serif;font-size:1.6rem;font-weight:600;color:var(--white);line-height:1.15;margin-bottom:.8rem}
.course-title em{font-style:italic;font-weight:400;color:var(--rg-lt)}
.course-price{font-family:'Bodoni Moda',serif;font-size:1.7rem;font-weight:900;color:var(--rg);line-height:1;letter-spacing:.03em;margin-bottom:1.1rem}
.course-desc{font-size:.9rem;color:var(--ash);font-weight:300;line-height:1.8;margin-bottom:1.8rem}
.course-cta{width:100%;justify-content:center;margin-top:auto}

/* Carrossel do Curso de Aperfeiçoamento */
.course-carousel{position:relative;width:100%;height:100%;touch-action:pan-y}
.carousel-track{display:flex;width:100%;height:100%;transition:transform .5s var(--ease)}
.carousel-slide{flex:0 0 100%;width:100%;height:100%;object-fit:cover;filter:grayscale(15%)contrast(1.08);user-select:none;-webkit-user-drag:none}
.carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;border:1px solid var(--rg-border);background:rgba(12,12,12,.55);backdrop-filter:blur(6px);color:var(--frost);font-size:1.4rem;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .3s,color .3s,border-color .3s;z-index:2}
.carousel-arrow:hover{background:var(--rg);color:var(--black);border-color:var(--rg)}
.carousel-prev{left:12px}
.carousel-next{right:12px}
.carousel-dots{position:absolute;bottom:14px;left:0;right:0;display:flex;justify-content:center;gap:.5rem;z-index:2}
.carousel-dots button{width:7px;height:7px;border-radius:50%;border:none;padding:0;background:rgba(248,246,243,.4);cursor:pointer;transition:background .3s,transform .3s}
.carousel-dots button.on{background:var(--rg);transform:scale(1.3)}

@media(max-width:900px){
  .courses-grid{grid-template-columns:1fr}
}

/* TÍTULOS DE SEÇÃO E MODAIS */
.sh{font-family:'Bodoni Moda',serif;font-weight:600;color:var(--white);line-height:1.15}
.sh em{font-style:italic;font-weight:400;color:var(--rg-lt)}

/* SERVIÇOS */
#servicos{padding:10rem 6%;border-top:1px solid rgba(255,255,255,.04)}
.sec-head{text-align:center;margin-bottom:5.5rem}
.sec-head .sh{font-size:clamp(2.5rem,5vw,4rem)}
.mtable{display:flex;flex-direction:column;gap:0;max-width:980px;margin:0 auto}
.mitem{display:grid;grid-template-columns:1fr auto;align-items:start;padding:2.2rem 0;border-bottom:1px solid rgba(255,255,255,.06);gap:2rem;cursor:pointer;transition:padding-left .4s var(--ease);position:relative}
.mitem::before{content:'';position:absolute;left:0;bottom:-1px;width:0;height:1px;background:var(--rg);transition:width .5s var(--ease)}
.mitem:hover{padding-left:1rem}
.mitem:hover::before{width:100%}
.mname{font-family:'Bodoni Moda',serif;font-size:1.6rem;font-weight:600;color:var(--white);margin-bottom:.4rem;transition:color .3s;line-height:1.1}
.mitem:hover .mname{color:var(--rg-lt)}
.mdesc{font-size:.87rem;color:var(--silver);font-weight:300;line-height:1.75;margin-bottom:.7rem;max-width:540px}
.mpc{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;min-width:95px}
.mprice{font-family:'Bodoni Moda',serif;font-size:1.4rem;font-weight:700;color:var(--rg);line-height:1;white-space:nowrap; letter-spacing: 0.05em;}
.mlink{font-size:.59rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ash);text-decoration:none;white-space:nowrap;transition:color .3s;cursor:pointer}
.mitem:hover .mlink{color:var(--rg)}
.mitem.star{background:var(--panel);padding:2.2rem 2rem;border:1px solid var(--rg-border);margin-bottom:.8rem;border-bottom:1px solid var(--rg-border)}
.mitem.star:hover{padding-left:2.6rem}
.sbadge{display:inline-block;font-size:.54rem;letter-spacing:.26em;text-transform:uppercase;background:var(--rg);color:var(--black);padding:.2rem .7rem;font-weight:600;margin-bottom:.5rem}

/* BULLET LIST CUSTOM */
.bullet-list { list-style: none; padding: 0; margin: 1.5rem 0; color: var(--frost); font-weight: 300; font-size: 0.95rem; }
.bullet-list li { margin-bottom: 0.8rem; display: flex; align-items: center; gap: 10px; }
.bullet-list li::before { content: ''; width: 5px; height: 5px; background: var(--rg); border-radius: 50%; flex-shrink: 0; }

.eyebrow {
  display: inline-block; font-size: 0.62rem; letter-spacing: 0.38em;
  text-transform: uppercase; color: var(--rg); font-weight: 500; margin-bottom: 1rem;
}

/* ⭐ SEÇÃO DE AVALIAÇÕES */
#depoimentos { padding: 10rem 6% 6rem; border-top: 1px solid rgba(255,255,255,.04); }
.reviews-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; max-width: 1100px; margin: 0 auto 4.5rem; }
.review-card { background: var(--panel); border: 1px solid rgba(255,255,255,0.03); padding: 2.5rem; border-radius: 20px; transition: border-color 0.4s var(--ease); }
.review-card:hover { border-color: var(--rg-border); }
.r-name { font-size: 1.05rem; font-weight: 500; color: var(--white); margin-bottom: 0.2rem; display: flex; align-items: center; gap: 6px; }
.r-stars { color: #F5A623; font-size: 0.8rem; margin-bottom: 1.2rem; letter-spacing: 2px; }
.r-text { font-size: 0.88rem; color: var(--ash); font-weight: 300; line-height: 1.75; }

/* CONTATO E FOOTER */
#contato{padding:10rem 6%; border-top: 1px solid rgba(255,255,255,.04); display:grid; grid-template-columns:1fr 1fr; gap:6rem; align-items:center}
.ccol .sh{font-size:clamp(2.2rem,4vw,3.5rem);margin-bottom:2.5rem}
.cblock{margin-bottom:1.8rem}
.cblock strong{display:block;font-size:.6rem;letter-spacing:.38em;text-transform:uppercase;color:var(--rg);margin-bottom:.45rem}
.cblock p,.cblock a{font-size:.98rem;color:var(--ash);font-weight:300;line-height:1.7;text-decoration:none;transition:color .3s}
.cblock a:hover{color:var(--rg-lt)}
footer{background:#080808;padding:5rem 6% 2rem;border-top:1px solid var(--rg-border)}
.fname{font-family:'Bodoni Moda',serif;font-size:1.4rem;font-weight:600;color:var(--white);margin-bottom:.3rem}
.fsub{font-size:.52rem;letter-spacing:.44em;text-transform:uppercase;color:var(--rg);display:block;margin-bottom:1.5rem}
.fbot{text-align:center;padding-top:2rem;border-top:1px solid rgba(255,255,255,.04);font-size:.6rem;letter-spacing:.25em;color:#3A3A3A;text-transform:uppercase}

/* 🪐 INTERAÇÃO DE JANELA FLUTUANTE PREMIUM */
.modal {
  position: fixed; inset: 0; z-index: 2000;
  background: rgba(8, 8, 8, 0.65); backdrop-filter: blur(16px);
  display: flex; align-items: center; justify-content: center;
  padding: 2rem; opacity: 0; pointer-events: none;
  transition: opacity 0.4s var(--ease); visibility: hidden;
}
.modal.open { opacity: 1; pointer-events: auto; visibility: visible; }

.modal-container {
  background: var(--charcoal); border: 1px solid var(--rg-border);
  border-radius: 24px; width: 100%; max-width: 880px; max-height: 85vh;
  overflow-y: auto; display: flex; flex-direction: column;
  box-shadow: 0 40px 80px rgba(0,0,0,0.8);
  transform: scale(0.92) translateY(30px);
  transition: transform 0.5s cubic-bezier(0.34, 1.6, 0.64, 1);
}
.modal.open .modal-container { transform: scale(1) translateY(0); }

.mtop {
  position: sticky; top: 0; z-index: 10; padding: 1.4rem 2.5rem;
  background: rgba(24, 24, 24, 0.95); backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--rg-border); display: flex;
  align-items: center; justify-content: space-between;
}
.mtop-n{font-family:'Bodoni Moda',serif;font-size:1rem;font-weight:600;font-style:italic;color:var(--white);letter-spacing:.05em}
.mbody { padding: 3rem 2.5rem; }
.mgrid { display: grid; grid-template-columns: 1.1fr 1.9fr; gap: 3.5rem; align-items: start; }
.minfo{display:flex;flex-direction:column}
.minfo p{font-size:.92rem;color:var(--ash);font-weight:300;line-height:1.85;margin-bottom:1rem}
.minfo p:last-of-type{margin-bottom:0}
.mpreco{margin-bottom:1.4rem}
.mval{font-family:'Bodoni Moda',serif;font-size:1.8rem;font-weight:900;color:var(--rg);line-height:1;letter-spacing:.03em}

.mclose {
  appearance: none; -webkit-appearance: none; -moz-appearance: none;
  background: none; border: none; outline: none; box-shadow: none;
  color: var(--ash); font-family: 'Outfit', sans-serif;
  font-size: 0.68rem; letter-spacing: 0.18em; text-transform: uppercase;
  font-weight: 500; cursor: pointer; transition: color 0.3s var(--ease);
  padding: 0.5rem 1rem; margin: 0; display: inline-block;
}
.mclose:hover { color: var(--rg-lt); }

/* 📸 RESOLUÇÃO E PROPORÇÃO DAS IMAGENS */
.msl {
  position: relative; width: 100%; max-width: 320px;
  aspect-ratio: 3 / 4; margin: 0 auto; overflow: hidden;
  background: var(--panel); border-radius: 16px;
  border: 1px solid rgba(255,255,255,0.03);
}
.ms {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: contain; padding: 8px; opacity: 0; transition: opacity 0.6s var(--ease);
}
.ms.on { opacity: 1; }

@media(max-width:900px){
  .modal { padding: 1rem; }
  .modal-container { max-height: 90vh; border-radius: 16px; }
  .mgrid { grid-template-columns: 1fr; gap: 2rem; }
  .msl { max-width: 280px; }
  .mbody { padding: 2rem 1.5rem; }
  .hero{grid-template-columns:1fr;padding:8rem 6% 5rem;text-align:center}
  .hero-left{padding-right:0;order:2}
  .hero-right{order:1;margin-bottom:2.5rem}
  .hphoto-wrap{max-width:280px;margin:0 auto}
  .hero-missao{border-left:none;padding-left:0;border-top:2px solid var(--rg);padding-top:1rem}
  .hero-trust-badges{justify-content:center}
  .hero-btns{justify-content:center}
  #contato{grid-template-columns:1fr;gap:3rem}
}
@media(max-width:640px) {
  .nlinks a:not(.ncta){display:none}
  .nlinks{gap:0}
  .hero-h1{font-size:2.8rem}
}

a:focus-visible,button:focus-visible,.mitem:focus-visible{
  outline:2px solid var(--rg);outline-offset:4px;
}

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

.wa-float{
  position:fixed;bottom:22px;right:22px;z-index:1500;
  display:flex;align-items:center;gap:10px;
  background:var(--rg);color:var(--black);text-decoration:none;
  padding:.9rem 1.3rem;border-radius:100px;
  box-shadow:0 8px 24px rgba(0,0,0,.45);
  font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;
  transition:transform .3s var(--ease),background .3s;cursor:pointer;
}
.wa-float:hover{background:var(--rg-lt);transform:translateY(-3px)}
.wa-float svg{width:20px;height:20px;flex-shrink:0}
@media(max-width:640px){
  .wa-float{bottom:16px;right:16px;padding:.85rem;border-radius:50%}
  .wa-float span{display:none}
  html{cursor:auto}.wa-float{cursor:pointer}
}
