:root{
  --white:#FFFFFF;
  --mist:#F5F4F1;
  --ink:#1D1B18;
  --ink-soft:#4A4740;
  --sage:#4B5D52;
  --sage-dark:#374941;
  --blush:#CFA69A;
  --line:#DEDAD2;
}

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

html{scroll-behavior:smooth;}

body{
  font-family:'Work Sans', sans-serif;
  color:var(--ink);
  background:var(--white);
  font-weight:400;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3{
  font-family:'Fraunces', serif;
  font-weight:500;
  letter-spacing:-0.01em;
  line-height:1.12;
}

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

img{display:block;width:100%;height:100%;object-fit:cover;}

.wrap{max-width:1180px;margin:0 auto;padding:0 32px;}

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

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

/* ---------- HEADER ---------- */
header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,0.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:20px 32px;max-width:1180px;margin:0 auto;
}
.brand{
  font-family:'Fraunces', serif;
  font-size:1.3rem;
  font-weight:500;
}
.nav-links{display:flex;gap:34px;font-size:0.95rem;}
.nav-links a{position:relative;padding:4px 0;}
.nav-links a::after{
  content:"";position:absolute;left:0;bottom:0;width:0;height:1px;
  background:var(--sage);transition:width .25s ease;
}
.nav-links a:hover::after{width:100%;}
.nav-links a.is-active{color:var(--sage);}
.nav-links a.is-active::after{width:100%;}
.nav-cta{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--sage);color:var(--white);
  padding:11px 22px;border-radius:2px;font-size:0.9rem;
  white-space:nowrap;
}
.nav-cta:hover{background:var(--sage-dark);}
.menu-toggle{display:none;background:none;border:none;cursor:pointer;padding:6px;}
.menu-toggle span{display:block;width:24px;height:1.5px;background:var(--ink);margin:5px 0;transition:transform .2s ease, opacity .2s ease;}
.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}

/* ---------- HERO ---------- */
.hero{
  display:grid;grid-template-columns:1.05fr 0.95fr;
  align-items:stretch;min-height:640px;
}
.hero-text{
  display:flex;flex-direction:column;justify-content:center;
  padding:60px 64px 60px 32px;
  max-width:560px;margin-left:auto;
}
.hero-text h1{
  font-size:clamp(2.4rem, 4.2vw, 3.4rem);
  margin-bottom:22px;
}
.hero-text p{
  font-size:1.08rem;color:var(--ink-soft);
  max-width:440px;margin-bottom:34px;
}
.hero-actions{display:flex;gap:16px;flex-wrap:wrap;}
.btn-primary{
  background:var(--sage);color:var(--white);
  padding:15px 30px;border-radius:2px;font-size:0.95rem;
  display:inline-block;
}
.btn-primary:hover{background:var(--sage-dark);}
.btn-ghost{
  border:1px solid var(--ink);color:var(--ink);
  padding:15px 30px;border-radius:2px;font-size:0.95rem;
  display:inline-block;
}
.btn-ghost:hover{background:var(--ink);color:var(--white);}
.hero-image{position:relative;background:var(--mist);overflow:hidden;}
.hero-image img{height:100%;}
.hero-badge{
  position:absolute;bottom:28px;left:28px;
  background:var(--white);padding:16px 20px;
  max-width:220px;font-size:0.85rem;color:var(--ink-soft);
  border-left:2px solid var(--sage);
}
.hero-badge strong{display:block;font-family:'Fraunces',serif;font-size:1.05rem;color:var(--ink);font-weight:500;margin-bottom:2px;}

/* ---------- SOBRE ---------- */
.sobre{background:var(--mist);padding:110px 0;}
.sobre-grid{
  display:grid;grid-template-columns:0.85fr 1.15fr;
  gap:72px;align-items:center;
}
.sobre-image{aspect-ratio:4/5;overflow:hidden;background:var(--line);}
.sobre-content h2{font-size:clamp(1.9rem,3vw,2.5rem);margin-bottom:24px;}
.sobre-content .role{
  display:block;font-size:0.95rem;color:var(--sage);margin-bottom:10px;
}
.sobre-content p{color:var(--ink-soft);margin-bottom:18px;max-width:520px;}
.sobre-content p:last-of-type{margin-bottom:0;}
.sobre-cursos{
  margin-top:40px;padding-top:32px;border-top:1px solid var(--line);
}
.sobre-cursos h3{font-size:1.35rem;margin-bottom:12px;}
.sobre-content .sobre-cursos p{margin-bottom:24px;}
.sobre-signature{
  margin-top:32px;font-family:'Fraunces',serif;font-style:italic;
  font-size:1.3rem;color:var(--ink);
}

/* ---------- SERVICOS ---------- */
.servicos{padding:110px 0;}
.servicos-head{
  display:flex;justify-content:space-between;align-items:flex-end;
  gap:24px;margin-bottom:56px;flex-wrap:wrap;
}
.servicos-head h2{font-size:clamp(1.9rem,3vw,2.5rem);max-width:480px;}
.servicos-head p{color:var(--ink-soft);max-width:340px;font-size:0.98rem;}

.service-row{
  display:grid;grid-template-columns:1.4fr 2.4fr auto;
  gap:32px;align-items:center;
  padding:30px 0;border-top:1px solid var(--line);
}
.servicos-list .service-row:last-child{border-bottom:1px solid var(--line);}
.service-row h3{font-size:1.4rem;font-weight:500;}
.service-row p{color:var(--ink-soft);font-size:0.96rem;max-width:480px;}
.service-link{
  font-size:0.9rem;color:var(--sage);white-space:nowrap;
  border-bottom:1px solid var(--sage);padding-bottom:2px;
}
.service-link:hover{color:var(--sage-dark);border-color:var(--sage-dark);}

@media (max-width:760px){
  .service-row{grid-template-columns:1fr;gap:10px;}
}

/* ---------- CURSOS ---------- */
.cursos-hero{padding:90px 0 70px;}
.cursos-hero h1{font-size:clamp(2rem,3.6vw,2.9rem);max-width:720px;margin-bottom:20px;}
.cursos-hero p{color:var(--ink-soft);font-size:1.05rem;max-width:560px;}

.cursos-secao{padding-bottom:100px;}
.curso-item{
  display:flex;align-items:center;gap:56px;
  padding:48px 0;border-top:1px solid var(--line);
}
.cursos-list .curso-item:last-child{border-bottom:1px solid var(--line);}
.curso-item:nth-child(even){flex-direction:row-reverse;}
.curso-img{flex:0 0 36%;aspect-ratio:4/5;overflow:hidden;background:var(--mist);}
.curso-text{flex:1;}
.curso-text h3{font-size:1.6rem;margin-bottom:14px;}
.curso-text p{color:var(--ink-soft);max-width:520px;}

@media (max-width:760px){
  .curso-item{flex-direction:column !important;gap:24px;}
  .curso-img{flex:none;width:100%;max-width:320px;}
}

.section-title{font-size:clamp(1.9rem,3vw,2.5rem);margin-bottom:48px;text-align:center;}

/* ---------- CURSOS VIP ---------- */
.vip{padding:100px 0;}
.vip-box{
  background:var(--sage);color:var(--white);
  padding:72px 56px;text-align:center;border-radius:3px;
  max-width:720px;margin:0 auto;
}
.vip-box h2{color:var(--white);font-size:clamp(1.8rem,3vw,2.3rem);margin-bottom:16px;}
.vip-box p{color:#E4E9E6;max-width:460px;margin:0 auto 32px;}
.vip-box .btn-primary{background:var(--white);color:var(--sage-dark);}
.vip-box .btn-primary:hover{background:var(--blush);color:var(--ink);}

/* ---------- DIFERENCIAIS ---------- */
.diferenciais{background:var(--mist);padding:100px 0;}
.dif-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:56px;
}
.dif-item h3{
  font-size:1.2rem;font-weight:500;margin-bottom:12px;
  display:flex;align-items:baseline;gap:12px;
}
.dif-item h3 .mark{color:var(--sage);font-family:'Fraunces',serif;font-style:italic;font-size:1.1rem;}
.dif-item p{color:var(--ink-soft);font-size:0.96rem;}

@media (max-width:820px){
  .dif-grid{grid-template-columns:1fr;gap:36px;}
}

/* ---------- DEPOIMENTOS ---------- */
.depoimentos{padding:110px 0;}
.depoimentos-head{margin-bottom:56px;max-width:520px;}
.depoimentos-head h2{font-size:clamp(1.9rem,3vw,2.5rem);}
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:48px;}
.quote blockquote{
  font-family:'Fraunces',serif;font-style:italic;
  font-size:1.2rem;line-height:1.5;color:var(--ink);
  margin-bottom:20px;
}
.quote cite{font-style:normal;font-size:0.88rem;color:var(--ink-soft);}

@media (max-width:820px){
  .quotes{grid-template-columns:1fr;gap:40px;}
}

/* ---------- CTA / LOCALIZACAO ---------- */
.cta-final{background:var(--ink);color:var(--white);padding:100px 0;}
.cta-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;
}
.cta-grid h2{
  font-size:clamp(1.9rem,3.4vw,2.6rem);color:var(--white);margin-bottom:20px;
}
.cta-grid p{color:#C9C6BF;max-width:420px;margin-bottom:8px;}
.address-line{font-size:0.92rem;color:#A9A59D;margin-bottom:0;}
.hours-block{border-top:1px solid #3A3733;padding-top:24px;margin-top:28px;}
.hours-row{display:flex;justify-content:space-between;max-width:340px;padding:6px 0;font-size:0.95rem;color:#C9C6BF;}
.cta-side{text-align:left;}
.cta-side .btn-primary{background:var(--blush);color:var(--ink);margin-bottom:16px;}
.cta-side .btn-primary:hover{background:#bd8e80;}
.cta-side .btn-ghost{border-color:#5A564F;color:var(--white);}
.cta-side .btn-ghost:hover{background:var(--white);color:var(--ink);}

.map-card{
  margin-top:64px;border-radius:3px;overflow:hidden;
  aspect-ratio:16/5.5;border:1px solid #3A3733;background:var(--mist);
}
.map-card iframe{width:100%;height:100%;border:0;display:block;}
.map-link{
  display:inline-block;margin-top:18px;font-size:0.9rem;color:var(--blush);
  border-bottom:1px solid var(--blush);padding-bottom:2px;
}
.map-link:hover{color:var(--white);border-color:var(--white);}

@media (max-width:820px){
  .cta-grid{grid-template-columns:1fr;}
  .map-card{aspect-ratio:4/3.4;margin-top:48px;}
}

/* ---------- FOOTER ---------- */
footer{padding:44px 0;border-top:1px solid var(--line);}
.footer-row{
  display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:16px;font-size:0.88rem;color:var(--ink-soft);
}
.footer-links{display:flex;gap:24px;}

/* ---------- CREDITO DO DESENVOLVEDOR ---------- */
.footer-credit{
  margin-top:28px;padding-top:20px;border-top:1px solid var(--line);
  text-align:center;font-size:0.82rem;color:var(--ink-soft);
}
.footer-credit a{color:var(--sage);border-bottom:1px solid var(--sage);padding-bottom:1px;}
.footer-credit a:hover{color:var(--sage-dark);border-color:var(--sage-dark);}

/* ---------- RESPONSIVE ---------- */
@media (max-width:900px){
  .nav-links{
    display:flex;
    position:absolute;top:100%;left:0;right:0;
    flex-direction:column;gap:0;
    background:var(--white);
    border-bottom:1px solid var(--line);
    max-height:0;overflow:hidden;
    transition:max-height .25s ease;
  }
  .nav-links.is-open{max-height:340px;}
  .nav-links a{padding:16px 32px;border-top:1px solid var(--line);}
  .menu-toggle{display:block;}
  .hero{grid-template-columns:1fr;}
  .hero-text{max-width:100%;margin:0;padding:56px 24px 40px;}
  .hero-image{min-height:360px;}
  .sobre-grid{grid-template-columns:1fr;gap:40px;}
  .sobre-image{max-width:340px;}
  .service-row{grid-template-columns:1fr;}
  .wrap{padding:0 22px;}
}