*{margin:0;padding:0;box-sizing:border-box;}
:root{
  --teal:#20B2AA;--orange:#F55727;--mint:#27F5B0;
  --teal-dark:#178a84;--orange-dark:#c94420;
  --text:#1a2630;--muted:#5a6a72;--bg:#fafcfc;--sec:#f3faf9;
}
html{scroll-behavior:smooth;scroll-padding-top:80px;}
body{font-family:'DM Sans',sans-serif;color:var(--text);background:var(--bg);}
img{max-width:100%;}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--teal);outline-offset:2px;}

/* NAV */
nav{position:sticky;top:0;z-index:100;background:rgba(250,252,252,0.96);backdrop-filter:blur(8px);border-bottom:1px solid rgba(32,178,170,0.15);padding:0 2.5rem;display:flex;align-items:center;justify-content:space-between;height:64px;}
.logo{font-family:'Playfair Display',serif;font-size:1.2rem;color:var(--teal);font-weight:600;}
.logo span{color:var(--orange);font-style:italic;}
.brand-icon{height:34px;width:34px;object-fit:contain;flex-shrink:0;}
footer .brand-icon{height:30px;width:30px;}
nav ul{display:flex;gap:1.75rem;list-style:none;}
nav a{font-size:0.85rem;color:var(--muted);text-decoration:none;}
nav a:hover{color:var(--teal);}
.nav-cta{background:var(--teal);color:#fff;padding:0.5rem 1.25rem;border-radius:24px;font-size:0.85rem;font-weight:500;border:none;cursor:pointer;text-decoration:none;}

/* HERO */
.hero{min-height:88vh;display:grid;grid-template-columns:1fr 1fr;}
.hero-left{padding:5rem 3rem 5rem 3.5rem;display:flex;flex-direction:column;justify-content:center;}
.tag{display:inline-block;background:rgba(32,178,170,0.1);color:var(--teal);font-size:0.75rem;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;padding:0.35rem 0.9rem;border-radius:20px;margin-bottom:1.5rem;width:fit-content;}
.hero-left h1{font-family:'Playfair Display',serif;font-size:3rem;line-height:1.15;font-weight:600;margin-bottom:1.25rem;}
.hero-left h1 em{color:var(--teal);font-style:italic;}
.hero-left p{font-size:1rem;color:var(--muted);line-height:1.75;max-width:420px;margin-bottom:2.5rem;font-weight:300;}
.hero-actions{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;}
.btn-primary{background:var(--orange);color:#fff;padding:0.85rem 1.75rem;border-radius:30px;font-size:0.9rem;font-weight:500;border:none;cursor:pointer;text-decoration:none;display:inline-block;}
.btn-primary:hover{background:var(--orange-dark);}
.btn-ghost{color:var(--teal);font-size:0.875rem;font-weight:500;cursor:pointer;border:none;background:none;text-decoration:none;}
.hero-right{background:linear-gradient(135deg,#20B2AA 0%,#1a9690 50%,#147f7a 100%);display:flex;align-items:center;justify-content:center;padding:3rem;position:relative;overflow:hidden;}
.hero-right::before{content:'';position:absolute;top:-60px;right:-60px;width:250px;height:250px;border-radius:50%;background:rgba(39,245,176,0.18);}
.hero-right::after{content:'';position:absolute;bottom:-40px;left:-40px;width:180px;height:180px;border-radius:50%;background:rgba(245,87,39,0.15);}
.hero-card{background:rgba(255,255,255,0.12);border:1px solid rgba(255,255,255,0.25);border-radius:24px;padding:2.25rem;max-width:340px;width:100%;position:relative;z-index:2;}
.hero-card-icon{font-size:2rem;margin-bottom:1rem;}
.hero-card h3{font-family:'Playfair Display',serif;font-size:1.3rem;color:#fff;margin-bottom:0.75rem;font-weight:600;}
.hero-card p{color:rgba(255,255,255,0.8);font-size:0.875rem;line-height:1.65;font-weight:300;}
.hero-stats{display:flex;gap:1.5rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,0.2);}
.stat-num{display:block;font-size:1.4rem;font-weight:600;color:#27F5B0;}
.stat-label{font-size:0.72rem;color:rgba(255,255,255,0.7);font-weight:300;}

/* SECTIONS */
section{padding:5rem 3.5rem;}
.sl{font-size:0.78rem;font-weight:500;letter-spacing:0.1em;text-transform:uppercase;color:var(--orange);margin-bottom:0.75rem;}
.st{font-family:'Playfair Display',serif;font-size:2.1rem;color:var(--text);margin-bottom:1rem;font-weight:600;line-height:1.25;}
.st em{color:var(--teal);font-style:italic;}
.sd{color:var(--muted);font-size:0.975rem;line-height:1.75;max-width:560px;font-weight:300;}

/* ABOUT */
.about{background:var(--sec);display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center;}
.about-visual{background:var(--teal);border-radius:24px;padding:2.25rem;display:flex;flex-direction:column;gap:1.1rem;}
.ac{background:rgba(255,255,255,0.13);border-radius:14px;padding:1.1rem;border:1px solid rgba(255,255,255,0.2);}
.ac h4{color:#fff;font-size:0.875rem;font-weight:500;margin-bottom:0.3rem;}
.ac p{color:rgba(255,255,255,0.75);font-size:0.8rem;line-height:1.5;font-weight:300;}
.dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:0.5rem;}
.values{margin-top:1.75rem;display:flex;flex-direction:column;gap:0.65rem;}
.vi{display:flex;align-items:flex-start;gap:0.75rem;font-size:0.875rem;color:var(--muted);line-height:1.5;}
.vdot{min-width:7px;height:7px;border-radius:50%;background:var(--orange);margin-top:0.4rem;flex-shrink:0;}

/* SERVICES */
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;margin-top:2.75rem;}
.sc{background:#fff;border:1px solid rgba(32,178,170,0.15);border-radius:18px;padding:1.6rem;border-top:3px solid var(--teal);transition:transform 0.2s,box-shadow 0.2s;}
.sc:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(32,178,170,0.1);}
.sc:nth-child(even){border-top-color:var(--orange);}
.sc:nth-child(3n){border-top-color:var(--mint);}
.si{width:40px;height:40px;border-radius:11px;background:rgba(32,178,170,0.1);display:flex;align-items:center;justify-content:center;font-size:1.15rem;margin-bottom:1rem;}
.sc h3{font-size:0.9rem;font-weight:500;margin-bottom:0.5rem;}
.sc p{font-size:0.825rem;color:var(--muted);line-height:1.6;font-weight:300;}

/* TEAM */
.team{background:var(--sec);}
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:2.75rem;}
.team-card{background:#fff;border-radius:16px;overflow:hidden;border:1px solid rgba(32,178,170,0.12);transition:transform 0.2s,box-shadow 0.2s;}
.team-card:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(0,0,0,0.07);}
.team-avatar-photo{height:170px;overflow:hidden;background:#f3faf9;}
.team-avatar-photo img{display:block;width:100%;height:100%;object-fit:contain;object-position:center center;}
/* Enquadramento por foto: se uma foto especifica cortar o rosto,
   sobrescreva so ela com um object-position inline no <img>, ex:
   style="object-position:center 15%;" (mais para cima) ou
   style="object-position:center center;" (centralizado) */
.team-info{padding:0.9rem 1rem;}
.team-info h3{font-size:0.85rem;font-weight:500;color:var(--text);margin:0 0 0.15rem;}
.crp{font-size:0.68rem;color:var(--muted);font-weight:300;margin:0 0 0.45rem;}
.team-tag{display:inline-block;font-size:0.66rem;padding:0.18rem 0.6rem;border-radius:20px;font-weight:500;margin-bottom:0.5rem;}
.team-desc{font-size:0.74rem;color:var(--muted);line-height:1.5;font-weight:300;margin:0;}
.more-team{text-align:center;margin-top:1.75rem;font-size:0.875rem;color:var(--muted);}
.more-team strong{color:var(--teal);font-weight:500;}

/* BOOKING */
.booking{background:var(--teal);padding:5rem 3.5rem;}
.booking-inner{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center;}
.booking h2{font-family:'Playfair Display',serif;font-size:2.2rem;color:#fff;font-weight:600;line-height:1.2;margin-bottom:1rem;}
.booking h2 em{color:#27F5B0;font-style:italic;}
.booking > .booking-inner > div > p{color:rgba(255,255,255,0.8);font-size:0.975rem;line-height:1.7;font-weight:300;}
.booking-form{background:rgba(255,255,255,0.12);border:1px solid rgba(255,255,255,0.2);border-radius:22px;padding:1.75rem;}
.fr{margin-bottom:0.875rem;}
.fr label{display:block;font-size:0.75rem;color:rgba(255,255,255,0.75);font-weight:500;margin-bottom:0.35rem;text-transform:uppercase;letter-spacing:0.06em;}
.fr input,.fr select{width:100%;background:rgba(255,255,255,0.15);border:1px solid rgba(255,255,255,0.25);border-radius:10px;padding:0.65rem 0.9rem;color:#fff;font-size:0.875rem;font-family:'DM Sans',sans-serif;outline:none;}
.fr input::placeholder{color:rgba(255,255,255,0.5);}
.fr select option{color:#1a2630;background:#fff;}
.form-submit{width:100%;background:var(--orange);color:#fff;border:none;border-radius:12px;padding:0.85rem;font-size:0.9rem;font-weight:500;cursor:pointer;font-family:'DM Sans',sans-serif;margin-top:0.4rem;}

/* PARTNERS */
.partner-box{background:rgba(32,178,170,0.06);border:1px solid rgba(32,178,170,0.2);border-radius:20px;padding:2.25rem;margin-top:2.5rem;display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;}
.plist{display:flex;flex-direction:column;gap:0.6rem;margin-top:1rem;}
.pi{display:flex;align-items:center;gap:0.75rem;font-size:0.875rem;color:var(--muted);font-weight:300;}
.pdot{min-width:7px;height:7px;border-radius:50%;background:var(--teal);flex-shrink:0;}

/* CONTACT */
.contact{background:var(--sec);display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:start;}
.contact-info{display:flex;flex-direction:column;gap:1.1rem;margin-top:2.25rem;}
.ci{display:flex;align-items:flex-start;gap:0.875rem;}
.cicon{width:40px;height:40px;border-radius:11px;background:rgba(32,178,170,0.1);display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0;}
.ci h4{font-size:0.85rem;font-weight:500;margin-bottom:0.15rem;}
.ci p{font-size:0.825rem;color:var(--muted);font-weight:300;line-height:1.5;}
.ci a{color:var(--teal);text-decoration:none;}
.map-box{background:rgba(32,178,170,0.07);border-radius:18px;border:1px solid rgba(32,178,170,0.15);height:260px;display:flex;align-items:center;justify-content:center;margin-top:2.25rem;flex-direction:column;gap:0.5rem;}
.map-box p{color:var(--muted);font-size:0.875rem;}
.social-row{display:flex;gap:0.75rem;margin-top:1.5rem;flex-wrap:wrap;}
.sbtn{padding:0.5rem 1.25rem;border-radius:20px;border:1px solid rgba(32,178,170,0.3);color:var(--teal);font-size:0.825rem;font-weight:500;cursor:pointer;background:none;text-decoration:none;display:inline-block;}
.sbtn:hover{background:rgba(32,178,170,0.08);}
.sbtn.wa{background:#25D366;color:#fff;border-color:#25D366;font-weight:500;}
.sbtn.wa:hover{background:#1db954;}

/* WHATSAPP FLOAT */
.wa-float{position:fixed;bottom:2rem;right:2rem;z-index:999;}
.wa-float a{display:flex;align-items:center;gap:0.6rem;background:#25D366;color:#fff;padding:0.85rem 1.4rem;border-radius:50px;font-size:0.9rem;font-weight:500;text-decoration:none;box-shadow:0 4px 20px rgba(37,211,102,0.4);}
.wa-float a:hover{background:#1db954;transform:translateY(-2px);}
.wa-icon{width:22px;height:22px;}

/* FOOTER */
footer{background:#1a2630;color:rgba(255,255,255,0.65);padding:2.25rem 3.5rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;}
footer .logo{color:#27F5B0;}
footer p{font-size:0.8rem;font-weight:300;}

/* ===== RESPONSIVE ===== */
@media (max-width: 1200px) {
  .team-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 1024px) {
  .hero { grid-template-columns: 1fr; min-height: auto; }
  .hero-right { min-height: 360px; padding: 3rem 2rem; }
  .hero-card { max-width: 100%; }
  .about { grid-template-columns: 1fr; gap: 2.5rem; }
  .booking-inner { grid-template-columns: 1fr; gap: 2.5rem; }
  .contact { grid-template-columns: 1fr; gap: 2rem; }
  .partner-box { grid-template-columns: 1fr; gap: 1.5rem; }
  .services-grid { grid-template-columns: repeat(2, 1fr); }
  .team-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
  nav { padding: 0 1.25rem; }
  nav ul { display: none; }
  .logo { font-size: 1rem; }
  section { padding: 3rem 1.5rem; }
  .booking { padding: 3rem 1.5rem; }
  .contact { padding: 3rem 1.5rem; }
  .hero-left { padding: 3rem 1.5rem; }
  .hero-left h1 { font-size: 2.1rem; }
  .st { font-size: 1.7rem; }
  .services-grid { grid-template-columns: 1fr; }
  .team-grid { grid-template-columns: repeat(2, 1fr); gap: 0.75rem; }
  .about-visual { display: none; }
  .about { grid-template-columns: 1fr; }
  .partner-box { padding: 1.5rem; }
  .hero-stats { gap: 1rem; }
  footer { flex-direction: column; text-align: center; padding: 2rem 1.5rem; gap: 0.5rem; }
  .social-row { flex-wrap: wrap; }
  .booking-inner { gap: 2rem; }
  .map-box { height: 200px; }
  .hero-right { padding: 2rem 1.5rem; min-height: 300px; }
  .hero-card { padding: 1.5rem; }
  .hero-card h3 { font-size: 1.1rem; }
  nav ul { display: none; }
  .wa-float a { padding: 0.75rem 1.1rem; font-size: 0.85rem; }
}

@media (max-width: 480px) {
  .hero-left h1 { font-size: 1.75rem; }
  .st { font-size: 1.45rem; }
  .hero-actions { flex-direction: column; align-items: flex-start; }
  .btn-primary { width: 100%; text-align: center; }
  .hero-stats { flex-wrap: wrap; gap: 1rem; }
  .team-grid { grid-template-columns: 1fr; }
  .services-grid { grid-template-columns: 1fr; }
  section { padding: 2.5rem 1.25rem; }
  .booking { padding: 2.5rem 1.25rem; }
  .booking-inner h2 { font-size: 1.7rem; }
  .booking-form { padding: 1.25rem; }
  .hero-right { min-height: 260px; }
  .hero-card { padding: 1.25rem; }
}

/* Mobile nav hamburger */
.nav-toggle { display: none; background: none; border: none; cursor: pointer; padding: 0.25rem; }
.nav-toggle span { display: block; width: 22px; height: 2px; background: var(--text); margin: 5px 0; border-radius: 2px; transition: all 0.3s; }
.nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
@media (max-width: 768px) {
  .nav-toggle { display: block; }
  nav ul {
    display: none; position: absolute; top: 64px; left: 0; right: 0;
    background: rgba(250,252,252,0.98); backdrop-filter: blur(8px);
    flex-direction: column; padding: 1rem 1.5rem 1.5rem; gap: 1rem;
    border-bottom: 1px solid rgba(32,178,170,0.15); z-index: 99;
  }
  nav ul.open { display: flex; }
  nav ul li a { font-size: 1rem; }
}