/* Arte & Saúde Odontologia — Redesign v3 */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  --forest:#2d4a2d;--forest-mid:#3a5c3a;--forest-light:#4a6d4a;--forest-muted:rgba(45,74,45,.08);
  --cream:#f8f6f1;--sand:#f0ede6;--white:#ffffff;
  --charcoal:#1e1e1e;--text:#3d3d3d;--text-light:#6b6b6b;--text-muted:#999;
  --border:rgba(45,74,45,.12);--border-light:rgba(0,0,0,.06);
  --r1:8px;--r2:12px;--r3:20px;
  --tr:.35s cubic-bezier(.4,0,.2,1);--header:72px;
  --serif:'Cormorant Garamond',Georgia,serif;--sans:'Inter',-apple-system,sans-serif;
}
html{scroll-behavior:smooth;scroll-padding-top:var(--header);overflow-x:hidden}
body{font-family:var(--sans);color:var(--text);background:var(--cream);line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased;font-size:15px;min-width:0}
img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}ul{list-style:none}
.container{max-width:1100px;margin:0 auto;padding:0 24px;width:100%}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 32px;font-family:var(--sans);font-size:.85rem;font-weight:500;border-radius:4px;border:1.5px solid transparent;cursor:pointer;transition:all var(--tr);letter-spacing:.03em;text-align:center}
.btn--primary{background:var(--forest);color:var(--white);border-color:var(--forest)}
.btn--primary:hover{background:var(--forest-mid);border-color:var(--forest-mid);transform:translateY(-1px)}
.btn--ghost{background:transparent;color:rgba(255,255,255,.7);border-color:rgba(255,255,255,.2)}
.btn--ghost:hover{border-color:rgba(255,255,255,.5);color:var(--white);transform:translateY(-1px)}
.btn--white{background:var(--white);color:var(--forest);border-color:var(--white)}
.btn--white:hover{background:var(--cream);border-color:var(--cream);transform:translateY(-1px)}
.btn--outline{background:transparent;color:var(--forest);border-color:var(--border)}
.btn--outline:hover{border-color:var(--forest);background:var(--forest-muted);transform:translateY(-1px)}
.btn--sm{padding:10px 22px;font-size:.8rem}
.btn--full{width:100%;justify-content:center}

/* Tags & Titles */
.tag{display:inline-block;font-size:.7rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--forest-light);margin-bottom:8px}
.title{font-family:var(--serif);font-size:clamp(2rem,4.5vw,3.2rem);font-weight:400;color:var(--charcoal);margin-bottom:20px;line-height:1.1;letter-spacing:-.01em}
.section-header{text-align:center;max-width:560px;margin:0 auto 60px}
.section-desc{color:var(--text-light);font-size:.9rem;line-height:1.7}

/* Animations */
.anim{opacity:0;transform:translateY(28px);transition:opacity .7s ease-out calc(var(--delay,0s)),transform .7s ease-out calc(var(--delay,0s))}
.anim.vis{opacity:1;transform:translateY(0)}
.anim-left{opacity:0;transform:translateX(-40px);transition:opacity .7s ease-out calc(var(--delay,0s)),transform .7s ease-out calc(var(--delay,0s))}
.anim-left.vis{opacity:1;transform:translateX(0)}
.anim-right{opacity:0;transform:translateX(40px);transition:opacity .7s ease-out calc(var(--delay,0s)),transform .7s ease-out calc(var(--delay,0s))}
.anim-right.vis{opacity:1;transform:translateX(0)}
.anim-scale{opacity:0;transform:scale(.92);transition:opacity .6s ease-out calc(var(--delay,0s)),transform .6s ease-out calc(var(--delay,0s))}
.anim-scale.vis{opacity:1;transform:scale(1)}

/* Divider */
.divider{padding:0}.divider__line{height:1px;background:linear-gradient(90deg,transparent,var(--border) 20%,var(--border) 80%,transparent);margin:0 auto;max-width:600px}

/* ========== HEADER ========== */
.header{position:fixed;top:0;left:0;width:100%;height:var(--header);z-index:1000;background:rgba(248,246,241,.85);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-bottom:1px solid var(--border-light);transition:all var(--tr)}
.header.scrolled{background:rgba(248,246,241,.98);box-shadow:0 1px 8px rgba(0,0,0,.04)}
.header__inner{display:flex;align-items:center;justify-content:space-between;height:100%}
.header__logo img{height:38px;width:auto}
.header__menu{display:flex;gap:32px}
.header__link{font-size:.8rem;font-weight:500;color:var(--text-light);letter-spacing:.03em;position:relative;padding:4px 0;transition:color var(--tr)}
.header__link::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:1.5px;background:var(--forest);transition:width var(--tr)}
.header__link:hover::after,.header__link.active::after{width:100%}
.header__link:hover,.header__link.active{color:var(--charcoal)}
.header__cta{margin-left:16px}
.header__hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px;z-index:1001}
.header__hamburger span{display:block;width:22px;height:1.5px;background:var(--charcoal);transition:all var(--tr);transform-origin:center}
.header__hamburger.open span:nth-child(1){transform:rotate(45deg) translate(4.5px,4.5px)}
.header__hamburger.open span:nth-child(2){opacity:0}
.header__hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(4.5px,-4.5px)}

/* ========== HERO ========== */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;background:var(--forest);overflow:hidden}
.hero::before{content:'';position:absolute;inset:0;background:
  radial-gradient(ellipse 80% 60% at 20% 80%,rgba(58,92,58,.6),transparent),
  radial-gradient(ellipse 60% 50% at 80% 20%,rgba(42,74,48,.5),transparent),
  radial-gradient(ellipse 50% 40% at 50% 50%,rgba(35,60,35,.3),transparent);
  pointer-events:none}

/* Ambient orbs */
.hero__orb{position:absolute;border-radius:50%;pointer-events:none}
.hero__orb--1{width:600px;height:600px;background:radial-gradient(circle,rgba(90,143,90,.12),transparent 65%);top:-15%;right:-10%;animation:orbDrift 20s ease-in-out infinite;filter:blur(60px)}
.hero__orb--2{width:400px;height:400px;background:radial-gradient(circle,rgba(120,180,120,.08),transparent 65%);bottom:0;left:-10%;animation:orbDrift 25s ease-in-out infinite reverse;filter:blur(50px)}
.hero__orb--3{width:300px;height:300px;background:radial-gradient(circle,rgba(80,130,80,.06),transparent 65%);top:40%;right:30%;animation:orbDrift 18s ease-in-out infinite 5s;filter:blur(70px)}
@keyframes orbDrift{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(20px,-15px) scale(1.05)}66%{transform:translate(-15px,10px) scale(.95)}}

.hero__grid{position:relative;z-index:2;padding:160px 0 120px;width:100%;max-width:640px}
.hero__content{max-width:600px}
.hero__tag{font-size:.7rem;font-weight:500;letter-spacing:.25em;text-transform:uppercase;color:rgba(255,255,255,.3);margin-bottom:28px}
.hero__title{font-family:var(--serif);font-size:clamp(2.6rem,5.5vw,4.2rem);font-weight:300;color:var(--white);line-height:1.08;margin-bottom:28px;letter-spacing:-.02em}
.hero__title em{font-style:italic;font-weight:400;color:rgba(255,255,255,.9)}
.hero__word{display:inline-block;transition:transform .6s ease-out,opacity .6s ease-out;opacity:0;transform:translateY(18px)}
.hero__title.vis .hero__word{opacity:1;transform:translateY(0)}
.hero__subtitle{font-size:.95rem;color:rgba(255,255,255,.45);font-weight:300;margin-bottom:44px;line-height:1.8;max-width:460px}
.hero__actions{display:flex;gap:14px;flex-wrap:wrap}

/* Scroll indicator */
.hero__scroll{position:absolute;bottom:32px;left:50%;transform:translateX(-50%)}
.hero__scroll-line{width:1px;height:40px;background:rgba(255,255,255,.08);position:relative;overflow:hidden}
.hero__scroll-line::after{content:'';position:absolute;top:-100%;left:0;width:100%;height:40%;background:rgba(255,255,255,.4);animation:scrollLine 2.5s ease-in-out infinite}
@keyframes scrollLine{0%{top:-40%}100%{top:110%}}

/* ========== DIFERENCIAIS ========== */
.diferenciais{padding:0;margin-top:-40px;position:relative;z-index:2}
.diferenciais__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border-light);border:1px solid var(--border-light);border-radius:var(--r2);overflow:hidden;box-shadow:0 4px 24px rgba(0,0,0,.04)}
.diferenciais__card{background:var(--white);padding:40px 32px;transition:all var(--tr)}
.diferenciais__card:hover,.diferenciais__card.inview{background:var(--cream)}
.diferenciais__num{display:block;font-family:var(--serif);font-size:2.4rem;font-weight:300;color:var(--border);margin-bottom:16px;line-height:1;letter-spacing:-.02em;transition:color var(--tr)}
.diferenciais__card:hover .diferenciais__num,.diferenciais__card.inview .diferenciais__num{color:var(--forest-light)}
.diferenciais__card h3{font-family:var(--serif);font-size:1.2rem;font-weight:500;color:var(--charcoal);margin-bottom:10px;line-height:1.3}
.diferenciais__card p{font-size:.85rem;color:var(--text-light);line-height:1.65}

/* ========== CLÍNICA ========== */
.clinica{padding:140px 0;background:var(--cream)}
.clinica__inner{max-width:720px;margin:0 auto}
.clinica__content .tag{margin-bottom:12px}
.clinica__accent{width:40px;height:1px;background:var(--forest);margin-bottom:32px;transition:width .6s ease-out}
.clinica__accent.vis{width:80px}
.clinica__content p{color:var(--text-light);margin-bottom:16px;font-size:.9rem;line-height:1.8}
.clinica__highlights{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border-light);border:1px solid var(--border-light);border-radius:var(--r2);overflow:hidden;margin-top:32px}
.clinica__highlight{display:flex;align-items:flex-start;gap:16px;padding:22px 24px;background:var(--white);transition:all var(--tr)}
.clinica__highlight:hover,.clinica__highlight.inview{background:var(--cream)}
.clinica__highlight:hover svg,.clinica__highlight.inview svg{transform:scale(1.1)}
.clinica__highlight svg{flex-shrink:0;color:var(--forest-light);margin-top:2px;transition:transform var(--tr)}
.clinica__highlight strong{display:block;font-size:.85rem;font-weight:600;color:var(--charcoal);margin-bottom:2px}
.clinica__highlight span{font-size:.8rem;color:var(--text-muted)}

/* ========== TRATAMENTOS ========== */
.tratamentos{padding:140px 0;background:var(--white)}
.tratamentos__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border-light);border:1px solid var(--border-light);border-radius:var(--r2);overflow:hidden}
.tratamentos__card{background:var(--white);padding:36px 32px;cursor:pointer;transition:all var(--tr)}
.tratamentos__card--last{grid-column:2/3}
.tratamentos__card:hover,.tratamentos__card.inview{background:var(--cream)}
.tratamentos__num{display:block;font-family:var(--serif);font-size:1.8rem;font-weight:300;color:var(--border);margin-bottom:14px;line-height:1;transition:color var(--tr)}
.tratamentos__card:hover .tratamentos__num,.tratamentos__card.inview .tratamentos__num{color:var(--forest-light)}
.tratamentos__card h3{font-family:var(--serif);font-size:1.1rem;font-weight:500;color:var(--charcoal);margin-bottom:8px;line-height:1.3}
.tratamentos__card p{font-size:.84rem;color:var(--text-light);margin-bottom:16px;line-height:1.65}
.tratamentos__link{font-size:.78rem;font-weight:500;color:var(--text-muted);letter-spacing:.03em;transition:all var(--tr);display:inline-block}
.tratamentos__card:hover .tratamentos__link,.tratamentos__card.inview .tratamentos__link{color:var(--forest);transform:translateX(4px)}

/* ========== MODAL ========== */
.modal{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:all var(--tr)}
.modal.open{opacity:1;visibility:visible}
.modal__bg{position:absolute;inset:0;background:rgba(0,0,0,.45);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.modal__box{position:relative;background:var(--white);border-radius:var(--r2);padding:48px 40px;max-width:520px;width:calc(100% - 40px);max-height:80vh;overflow-y:auto;transform:translateY(20px) scale(.97);transition:transform .4s ease-out}
.modal.open .modal__box{transform:translateY(0) scale(1)}
.modal__x{position:absolute;top:16px;right:20px;background:none;border:none;font-size:1.6rem;color:var(--text-muted);cursor:pointer;transition:all var(--tr)}
.modal__x:hover{color:var(--charcoal);transform:rotate(90deg)}
.modal__box h3{font-family:var(--serif);font-size:1.4rem;font-weight:500;color:var(--charcoal);margin-bottom:16px;padding-right:30px}
.modal__box>p{font-size:.9rem;color:var(--text-light);line-height:1.8;margin-bottom:28px}

/* ========== CTA BANNER ========== */
.cta-banner{padding:40px 0}
.cta-banner__inner{background:var(--forest);border-radius:var(--r2);padding:72px 48px;text-align:center;position:relative;overflow:hidden}
.cta-banner__orb{position:absolute;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.06),transparent 70%);top:-40%;right:-5%;pointer-events:none;animation:orbFloat 10s ease-in-out infinite}
.cta-banner__inner h2{font-family:var(--serif);font-size:clamp(1.8rem,3.5vw,2.6rem);font-weight:300;color:var(--white);margin-bottom:12px;position:relative;letter-spacing:-.01em}
.cta-banner__inner p{color:rgba(255,255,255,.45);margin-bottom:32px;position:relative;font-size:.9rem}
.cta-banner__inner .btn{position:relative}

/* ========== CONTATO ========== */
.contato{padding:140px 0;background:var(--white)}
.contato__layout{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:stretch}
.contato__card{background:var(--cream);border-radius:var(--r2);padding:36px;display:flex;flex-direction:column;gap:24px;margin-bottom:20px}
.ci{display:flex;align-items:flex-start;gap:16px;transition:all var(--tr);padding:4px 0;border-radius:var(--r1)}
.ci:hover,.ci.inview{padding-left:8px}
.ci svg{flex-shrink:0;color:var(--forest-light);margin-top:2px;transition:transform var(--tr)}
.ci:hover svg,.ci.inview svg{transform:scale(1.15)}
.ci strong{display:block;font-size:.8rem;font-weight:600;color:var(--charcoal);margin-bottom:3px;letter-spacing:.03em}
.ci p{font-size:.85rem;color:var(--text-light);line-height:1.5}
.ci a{transition:color var(--tr)}
.ci a:hover{color:var(--forest)}
.contato__buttons{display:flex;flex-direction:column;gap:10px}
.contato__wa-btn{border-radius:var(--r1)}
.contato__map{border-radius:var(--r2);overflow:hidden;min-height:380px}
.contato__map iframe{border-radius:var(--r2);max-width:100%;width:100%}

/* ========== FOOTER ========== */
.footer{background:var(--forest);padding:64px 0 0}
.footer__top{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:48px;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.08)}
.footer__logo{height:32px;width:auto;filter:brightness(0) invert(1);margin-bottom:14px;object-fit:contain}
.footer__brand p{font-size:.82rem;color:rgba(255,255,255,.35);line-height:1.6}
.footer__links h4{font-size:.7rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.4);margin-bottom:16px}
.footer__links a,.footer__links p{display:block;font-size:.82rem;color:rgba(255,255,255,.3);margin-bottom:8px;transition:color var(--tr);line-height:1.5}
.footer__links a:hover{color:rgba(255,255,255,.8)}
.footer__bottom{padding:24px 0;text-align:center}
.footer__bottom p{font-size:.75rem;color:rgba(255,255,255,.2)}

/* ========== WHATSAPP ========== */
.wa-float{position:fixed;bottom:28px;right:28px;width:56px;height:56px;background:var(--forest);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px rgba(45,74,45,.35);z-index:999;transition:all var(--tr);animation:waPulse 3s ease-in-out infinite}
.wa-float:hover{transform:scale(1.1);box-shadow:0 6px 28px rgba(45,74,45,.45)}
@keyframes waPulse{0%,100%{box-shadow:0 4px 20px rgba(45,74,45,.35)}50%{box-shadow:0 4px 20px rgba(45,74,45,.35),0 0 0 8px rgba(45,74,45,.08)}}

/* Nav overlay */
.nav-overlay{position:fixed;inset:0;background:rgba(0,0,0,.3);z-index:998;opacity:0;visibility:hidden;transition:all var(--tr)}
.nav-overlay.active{opacity:1;visibility:visible}

/* ========== RESPONSIVE ========== */

/* Clip all major sections to prevent horizontal overflow */
main,.hero,.diferenciais,.clinica,.tratamentos,.contato,.cta-banner,.footer{max-width:100vw;overflow-x:clip}

/* Tablet landscape */
@media(max-width:992px){
  .diferenciais__grid{grid-template-columns:1fr}
  .clinica__highlights{grid-template-columns:1fr}
  .tratamentos__grid{grid-template-columns:repeat(2,1fr)}
  .tratamentos__card--last{grid-column:1/-1}
  .contato__layout{grid-template-columns:1fr}
  .contato__map{min-height:300px}
  .footer__top{grid-template-columns:1fr 1fr;gap:32px}
}

/* Tablet / Mobile */
@media(max-width:768px){
  :root{--header:64px}
  .container{padding:0 20px}
  .header__nav{position:fixed;top:0;right:-100%;width:280px;height:100vh;height:100dvh;background:var(--cream);box-shadow:-4px 0 24px rgba(0,0,0,.1);padding:88px 28px 28px;transition:right .4s ease;z-index:999}
  .header__nav.open{right:0}
  .header__menu{flex-direction:column;gap:0}
  .header__link{display:block;padding:16px 0;font-size:.95rem;border-bottom:1px solid var(--border-light)}
  .header__link::after{display:none}
  .header__hamburger{display:flex}
  .header__cta{display:none}

  .hero__grid{padding:120px 0 80px;text-align:center}
  .hero__subtitle{margin-left:auto;margin-right:auto;max-width:100%}
  .hero__actions{justify-content:center}
  .hero__title{font-size:clamp(2.2rem,8vw,3rem)}
  .hero__subtitle{font-size:.9rem}
  .hero__tag{margin-bottom:20px}
  .hero__scroll{bottom:20px}
  .hero__orb--1{width:300px;height:300px}
  .hero__orb--2{width:220px;height:220px}
  .hero__orb--3{width:150px;height:150px}

  /* Reduce animation offset to prevent overflow */
  .anim-left{transform:translateX(-20px)}
  .anim-right{transform:translateX(20px)}

  .diferenciais{margin-top:-28px}
  .tratamentos__grid{grid-template-columns:1fr}
  .tratamentos__card--last{grid-column:auto}
  .clinica{padding:80px 0}
  .tratamentos{padding:80px 0}
  .contato{padding:80px 0}
  .section-header{margin-bottom:40px}
  .cta-banner__inner{padding:48px 24px}
  .footer__top{grid-template-columns:1fr;gap:28px}
  .footer__brand,.footer__links{text-align:center}
  .footer__logo{margin:0 auto 14px;height:28px;max-width:120px}
  .footer__bottom p{font-size:.7rem}
}

/* Small mobile */
@media(max-width:414px){
  .container{padding:0 16px}
  .hero__grid{padding:110px 0 70px}
  .hero__title{font-size:clamp(1.9rem,9vw,2.6rem)}
  .hero__actions{flex-direction:column;width:100%}
  .hero__actions .btn{width:100%;justify-content:center}
  .btn{padding:13px 22px;font-size:.83rem}
  .title{font-size:clamp(1.6rem,7vw,2.2rem)}
  .wa-float{bottom:16px;right:16px;width:50px;height:50px}
  .wa-float svg{width:22px;height:22px}
  .diferenciais__card{padding:28px 20px}
  .tratamentos__card{padding:28px 20px}
  .contato__card{padding:24px 16px}
  .modal__box{padding:32px 20px;width:calc(100% - 32px)}
  .clinica{padding:60px 0}
  .tratamentos{padding:60px 0}
  .contato{padding:60px 0}
  .cta-banner__inner{padding:40px 20px}
  .footer__logo{max-width:100px}
}

/* Tiny mobile */
@media(max-width:340px){
  .hero__title{font-size:1.8rem}
  .hero__subtitle{font-size:.82rem}
}
