/* ========================================
   CC&A — SHARED STYLESHEET
   Usado em: about, service, portfolio, contact
======================================== */
:root {
  --brand:        #ff6146;
  --brand-dark:   #d92e21;
  --brand-deep:   #7a1710;
  --accent-gold:  #ffb332;
  --accent-teal:  #12e0c4;
  --navy:         #121630;
  --navy-mid:     #2a366e;
  --text-body:    #4d5573;
  --text-muted:   #838da8;
  --bg-light:     #fff7f5;
  --bg-rose:      #fff1ee;
  --bg-white:     #ffffff;
  --border:       #ffe3da;
  --shadow-sm:    0 2px 12px rgba(122,23,16,0.05);
  --shadow-md:    0 10px 32px rgba(122,23,16,0.09);
  --shadow-lg:    0 24px 60px rgba(122,23,16,0.12);
  --shadow-brand: 0 12px 40px rgba(255,97,70,0.28);
  --radius:       16px;
  --transition:   cubic-bezier(0.4,0,0.2,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased}
body{font-family:'Open Sans',sans-serif;color:var(--text-body);background:var(--bg-white);overflow-x:hidden}
h1,h2,h3,h4,h5,h6{font-family:'Poppins',sans-serif;color:var(--navy);line-height:1.2}
img{max-width:100%;height:auto}
a{color:inherit}

/* PRELOADER */
#preloader{position:fixed;inset:0;z-index:9999;background:linear-gradient(135deg,var(--navy) 0%,var(--brand-deep) 55%,var(--brand-dark) 100%);display:flex;align-items:center;justify-content:center;transition:opacity .6s ease,visibility .6s ease}
#preloader.done{opacity:0;visibility:hidden;pointer-events:none}
.preloader-inner{display:flex;flex-direction:column;align-items:center;gap:20px}
.preloader-logo{font-family:'Poppins',sans-serif;font-size:2.5rem;font-weight:800;color:#fff;letter-spacing:-1px}
.preloader-logo span{color:var(--brand)}
.preloader-logo-img{height:58px;width:auto;filter:drop-shadow(0 6px 20px rgba(0,0,0,.35));animation:logoBreathe 1.8s ease-in-out infinite}
@keyframes logoBreathe{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.06);opacity:.85}}
.logo-img{height:42px;width:auto;display:block;transition:height .35s var(--transition),filter .35s var(--transition);filter:drop-shadow(0 2px 8px rgba(0,0,0,.15))}
#header.scrolled .logo-img,#header.page-header .logo-img{height:36px;filter:none}
.preloader-bar{width:200px;height:3px;background:rgba(255,255,255,.15);border-radius:2px;overflow:hidden}
.preloader-fill{height:100%;background:var(--brand);border-radius:2px;animation:preload 1.4s var(--transition) forwards}
@keyframes preload{from{width:0}to{width:100%}}

/* HEADER */
#header{position:fixed;top:0;left:0;right:0;z-index:1000;transition:all .4s var(--transition)}
#header .header-inner{max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:20px 40px;transition:padding .4s var(--transition)}
#header.scrolled .header-inner{padding:12px 40px;background:rgba(255,255,255,.95);backdrop-filter:blur(20px) saturate(180%);box-shadow:var(--shadow-sm);border-bottom:1px solid rgba(255,255,255,.4)}
.logo{text-decoration:none;display:flex;align-items:center}
.logo-text{font-family:'Poppins',sans-serif;font-size:1.6rem;font-weight:800;color:#fff;letter-spacing:-.5px;transition:color .3s}
#header.scrolled .logo-text{color:var(--navy)}
.logo-text span{color:var(--brand)}
/* inner-page: header always white */
#header.page-header .logo-text{color:var(--navy)}
#header.page-header .header-inner{background:rgba(255,255,255,.97);backdrop-filter:blur(20px);box-shadow:var(--shadow-sm)}
#header.page-header nav ul li a{color:var(--navy-mid)}
#header.page-header nav ul li a:hover{color:var(--brand);background:rgba(217,46,33,.08)}
#header.page-header nav ul li a.active{color:var(--brand)}
#header.page-header .mobile-toggle{color:var(--navy)}

nav ul{list-style:none;display:flex;gap:8px;align-items:center}
nav ul li a{font-family:'Poppins',sans-serif;font-size:.875rem;font-weight:500;color:rgba(255,255,255,.85);text-decoration:none;padding:8px 14px;border-radius:8px;transition:all .3s var(--transition)}
nav ul li a:hover{color:#fff;background:rgba(255,255,255,.12)}
nav ul li a.active{color:var(--brand)}
#header.scrolled nav ul li a{color:var(--navy-mid)}
#header.scrolled nav ul li a:hover{color:var(--brand);background:rgba(217,46,33,.08)}
#header.scrolled nav ul li a.active{color:var(--brand)}
.btn-nav{font-family:'Poppins',sans-serif;font-size:.875rem;font-weight:600;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.2);background:linear-gradient(135deg,var(--brand) 0%,var(--brand-dark) 100%);border:none;padding:10px 24px;border-radius:50px;text-decoration:none;transition:all .3s var(--transition);box-shadow:0 4px 15px rgba(217,46,33,.35)}
.btn-nav:hover{background:var(--brand-dark);transform:translateY(-2px);box-shadow:0 8px 25px rgba(217,46,33,.45);color:#fff}
.mobile-toggle{display:none;background:none;border:none;color:#fff;font-size:1.5rem;cursor:pointer;padding:5px}

@media(max-width:900px){
  .mobile-toggle{display:block}
  nav{position:fixed;top:0;right:-100%;bottom:0;width:280px;background:var(--navy);padding:80px 30px 30px;transition:right .4s var(--transition);box-shadow:-10px 0 40px rgba(0,0,0,.2);z-index:999}
  nav.open{right:0}
  nav ul{flex-direction:column;gap:4px;align-items:flex-start}
  nav ul li a{color:rgba(255,255,255,.8)!important;padding:12px 16px;width:100%;border-radius:10px;font-size:1rem}
  nav ul li a:hover,nav ul li a.active{color:#fff!important;background:rgba(217,46,33,.2)!important}
  .btn-nav{display:none}
  #header .header-inner{padding:16px 24px}
  .mobile-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:998;opacity:0;visibility:hidden;transition:all .3s}
  .mobile-overlay.show{opacity:1;visibility:visible}
}

/* PAGE HERO (inner pages) */
.page-hero{padding:140px 0 80px;background:linear-gradient(135deg,var(--navy) 0%,var(--brand-deep) 100%);position:relative;overflow:hidden;text-align:center}
.page-hero::before{content:'';position:absolute;top:-50%;right:-20%;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(217,46,33,.2) 0%,transparent 70%);pointer-events:none}
.page-hero .breadcrumbs{font-size:.82rem;color:rgba(255,255,255,.5);margin-bottom:16px}
.page-hero .breadcrumbs a{color:rgba(255,255,255,.6);text-decoration:none}
.page-hero .breadcrumbs a:hover{color:#fff}
.page-hero .breadcrumbs span{color:var(--brand);margin:0 8px}
.page-hero h1{font-size:clamp(2rem,4vw,3.2rem);font-weight:800;color:#fff;letter-spacing:-1px;position:relative;z-index:1}
.page-hero p{color:rgba(255,255,255,.65);font-size:1.05rem;max-width:560px;margin:16px auto 0;line-height:1.7;position:relative;z-index:1}

/* CONTAINER */
.container{max-width:1280px;margin:0 auto;padding:0 40px}
@media(max-width:768px){.container{padding:0 24px}}
section{padding:90px 0}
@media(max-width:768px){section{padding:60px 0}}

/* SECTION TYPOGRAPHY */
.section-label{font-size:.75rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;background:linear-gradient(90deg,var(--brand),var(--accent-gold));-webkit-background-clip:text;background-clip:text;color:transparent;display:block;margin-bottom:14px}
.section-title{font-size:clamp(1.9rem,3.5vw,2.8rem);font-weight:800;letter-spacing:-.5px;margin-bottom:18px}
.section-sub{font-size:1.05rem;color:var(--text-muted);line-height:1.7;max-width:560px}
.section-header{margin-bottom:60px}
.section-header.center{text-align:center}
.section-header.center .section-sub{margin:0 auto}
.title-underline{position:relative;display:inline-block}
.title-underline::after{content:'';position:absolute;bottom:-4px;left:0;width:48px;height:4px;background:linear-gradient(90deg,var(--brand),var(--accent-gold));border-radius:2px}
.section-header.center .title-underline::after{left:50%;transform:translateX(-50%)}

/* SCROLL REVEAL */
.reveal{opacity:0;transform:translateY(40px);transition:opacity .8s var(--transition),transform .8s var(--transition)}
.reveal.visible{opacity:1;transform:none}
.reveal-left{opacity:0;transform:translateX(-40px);transition:opacity .8s var(--transition),transform .8s var(--transition)}
.reveal-left.visible{opacity:1;transform:none}
.reveal-right{opacity:0;transform:translateX(40px);transition:opacity .8s var(--transition),transform .8s var(--transition)}
.reveal-right.visible{opacity:1;transform:none}
.reveal-scale{opacity:0;transform:scale(.92);transition:opacity .7s var(--transition),transform .7s var(--transition)}
.reveal-scale.visible{opacity:1;transform:none}

/* BUTTONS */
.btn-primary-3d{font-family:'Poppins',sans-serif;font-weight:600;font-size:.95rem;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.25);background:linear-gradient(135deg,var(--brand) 0%,var(--brand-dark) 100%);text-decoration:none;padding:14px 32px;border-radius:50px;border:none;cursor:pointer;position:relative;overflow:hidden;box-shadow:0 6px 0 var(--brand-deep),var(--shadow-brand);transition:all .2s var(--transition);display:inline-block}
.btn-primary-3d:hover{transform:translateY(-3px);box-shadow:0 9px 0 var(--brand-dark),0 15px 40px rgba(217,46,33,.4);color:#fff}
.btn-primary-3d:active{transform:translateY(3px);box-shadow:0 2px 0 var(--brand-dark)}
.btn-outline{font-family:'Poppins',sans-serif;font-weight:500;font-size:.95rem;color:var(--brand);background:transparent;border:2px solid var(--brand);padding:12px 30px;border-radius:50px;text-decoration:none;transition:all .3s var(--transition);display:inline-block}
.btn-outline:hover{background:var(--brand);color:#fff;transform:translateY(-2px);box-shadow:var(--shadow-brand)}

/* FOOTER */
footer{background:var(--navy);color:rgba(255,255,255,.7);padding:70px 0 0;border-top:3px solid var(--brand)}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px;padding-bottom:50px;border-bottom:1px solid rgba(255,255,255,.08)}
@media(max-width:900px){.footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.footer-grid{grid-template-columns:1fr}}
.footer-logo-text{font-family:'Poppins',sans-serif;font-size:1.8rem;font-weight:800;color:#fff;margin-bottom:16px;display:block}
.footer-logo-text span{color:var(--brand)}
footer p{font-size:.88rem;line-height:1.7}
.footer-contact-item{display:flex;gap:10px;margin-bottom:12px;font-size:.88rem}
.footer-contact-item i{color:var(--brand);flex-shrink:0;margin-top:2px}
footer h4{font-size:.85rem;font-weight:700;color:#fff;letter-spacing:1px;text-transform:uppercase;margin-bottom:20px}
footer ul{list-style:none}
footer ul li{margin-bottom:10px}
footer ul li a{font-size:.88rem;color:rgba(255,255,255,.6);text-decoration:none;transition:color .3s;display:inline-flex;align-items:center;gap:6px}
footer ul li a:hover{color:#fff}
footer ul li a i{font-size:.7rem;color:var(--brand)}
.social-links{display:flex;gap:10px;margin-top:20px}
.social-link{width:38px;height:38px;border-radius:10px;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.7);font-size:.95rem;text-decoration:none;transition:all .3s var(--transition)}
.social-link:hover{background:var(--brand);color:#fff;transform:translateY(-3px)}
.footer-bottom{text-align:center;padding:20px;font-size:.82rem;color:rgba(255,255,255,.4)}
.footer-bottom a{color:var(--brand);text-decoration:none}
.footer-download{display:inline-flex;align-items:center;gap:6px;margin-left:14px;padding:5px 14px;border:1px solid rgba(255,255,255,.18);border-radius:50px;color:rgba(255,255,255,.7)!important;font-size:.78rem;transition:all .3s var(--transition)}
.footer-download:hover{background:var(--brand);border-color:var(--brand);color:#fff!important}

/* SCROLL TOP */
#scroll-top{position:fixed;bottom:28px;right:28px;z-index:500;width:46px;height:46px;border-radius:50%;background:var(--brand);color:#fff;font-size:1.2rem;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-brand);text-decoration:none;opacity:0;pointer-events:none;transition:all .3s var(--transition)}
#scroll-top.show{opacity:1;pointer-events:auto}
#scroll-top:hover{background:var(--brand-dark);transform:translateY(-3px)}

/* WHATSAPP FLOAT */
.whatsapp-float{position:fixed;bottom:28px;left:28px;z-index:500;width:52px;height:52px;border-radius:50%;background:#25d366;color:#fff;font-size:1.5rem;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(37,211,102,.4);text-decoration:none;transition:all .3s var(--transition)}
.whatsapp-float:hover{background:#1ebe5b;transform:translateY(-3px) scale(1.05);color:#fff}
@media(max-width:768px){.whatsapp-float{width:46px;height:46px;font-size:1.3rem;bottom:20px;left:20px}}

/* ========================================
   O NOSSO COMPROMISSO — grelha de compromissos
======================================== */
.commitment-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:22px;margin-top:50px}
.commitment-item{
  display:flex;gap:18px;align-items:flex-start;background:var(--bg-white);
  border:1px solid var(--border);border-radius:var(--radius);padding:26px 24px;
  transition:transform .4s var(--transition),box-shadow .4s var(--transition),border-color .4s var(--transition);
}
.commitment-item:hover{border-color:var(--brand);box-shadow:var(--shadow-md);transform:translateY(-5px)}
.commitment-icon{
  flex-shrink:0;width:50px;height:50px;border-radius:14px;background:rgba(255,97,70,.1);
  display:flex;align-items:center;justify-content:center;font-size:1.3rem;color:var(--brand);
  transition:all .35s var(--transition);
}
.commitment-item:hover .commitment-icon{background:var(--brand);color:#fff;transform:rotate(-6deg) scale(1.06)}
.commitment-item h4{font-size:1rem;font-weight:700;margin-bottom:6px;color:var(--navy)}
.commitment-item p{font-size:.875rem;color:var(--text-muted);line-height:1.65}

/* KEYFRAMES */
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.5);opacity:.7}}
@keyframes fadeUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}

/* ========================================
   TEXT REVEAL — palavra a palavra
   Aplicado via cca-shared.js a títulos e parágrafos-chave
======================================== */
.split-text{display:inline-block;overflow:hidden;vertical-align:top}
.split-text .word{display:inline-block;opacity:0;transform:translateY(115%) rotate(2deg);transition:opacity .7s var(--transition),transform .7s var(--transition);will-change:transform,opacity}
.split-text.visible .word{opacity:1;transform:none}
.split-text .space{display:inline-block;width:.28em}

/* Brilho suave que percorre o texto de destaque (labels e números) */
.text-shimmer{
  background:linear-gradient(100deg,var(--navy) 40%,var(--brand) 50%,var(--navy) 60%);
  background-size:220% auto;
  -webkit-background-clip:text;background-clip:text;color:transparent;
  animation:shimmerText 5s linear infinite;
}
@keyframes shimmerText{to{background-position:-220% center}}

/* ========================================
   CONTADORES — pulso e brilho ao concluir
======================================== */
.counter-num, .stat-number, .stat-box strong{transition:transform .3s var(--transition)}
.count-done{animation:countPop .55s var(--transition)}
@keyframes countPop{
  0%{transform:scale(1)}
  40%{transform:scale(1.16);text-shadow:0 0 18px rgba(255,97,70,.55)}
  100%{transform:scale(1);text-shadow:0 0 0 rgba(255,97,70,0)}
}
.counter-cell, .stat-box{position:relative}
.counter-cell::before{
  content:'';position:absolute;left:50%;bottom:0;width:0;height:2px;
  background:linear-gradient(90deg,var(--brand),var(--accent-gold));
  transition:width .7s var(--transition) .1s,left .7s var(--transition) .1s;
}
.counter-cell.counted::before{width:60%;left:20%}

/* ========================================
   TESTEMUNHOS — versão melhorada
======================================== */
.testimonials-section{position:relative;overflow:hidden}
.rating-banner{
  display:inline-flex;align-items:center;gap:14px;background:var(--bg-white);
  border:1px solid var(--border);border-radius:50px;padding:12px 26px;
  box-shadow:var(--shadow-sm);margin:0 auto 44px;
}
.rating-banner .rating-num{font-family:'Poppins',sans-serif;font-weight:800;font-size:1.5rem;color:var(--navy)}
.rating-banner .rating-stars{color:var(--accent-gold);font-size:1rem;letter-spacing:2px;display:inline-flex;gap:2px}
.rating-banner .rating-stars i{opacity:0;transform:scale(.3) rotate(-30deg);transition:opacity .4s var(--transition),transform .4s var(--transition)}
.rating-banner.visible .rating-stars i{opacity:1;transform:none}
.rating-banner .rating-stars i:nth-child(1){transition-delay:.05s}
.rating-banner .rating-stars i:nth-child(2){transition-delay:.15s}
.rating-banner .rating-stars i:nth-child(3){transition-delay:.25s}
.rating-banner .rating-stars i:nth-child(4){transition-delay:.35s}
.rating-banner .rating-stars i:nth-child(5){transition-delay:.45s}
.rating-banner .rating-copy{font-size:.8rem;color:var(--text-muted);border-left:1px solid var(--border);padding-left:14px}
.rating-banner .rating-copy strong{color:var(--navy)}

.testimonial-card{
  position:relative;background:var(--bg-white);border:1px solid var(--border);
  border-radius:var(--radius);padding:34px 28px 28px;box-shadow:var(--shadow-sm);
  transition:transform .5s var(--transition),box-shadow .5s var(--transition),border-color .5s var(--transition);
  display:flex;flex-direction:column;gap:16px;overflow:hidden;isolation:isolate;
}
.testimonial-card::before{
  content:'\201C';position:absolute;top:-18px;right:14px;font-family:'Poppins',sans-serif;
  font-size:6.5rem;font-weight:800;color:var(--brand);opacity:.06;line-height:1;z-index:0;
  transition:transform .5s var(--transition),opacity .5s var(--transition);
}
.testimonial-card::after{
  content:'';position:absolute;inset:0;border-radius:var(--radius);padding:1.5px;
  background:linear-gradient(135deg,var(--brand),var(--accent-gold));
  -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .45s var(--transition);
}
.testimonial-card:hover{transform:translateY(-8px) scale(1.015);box-shadow:var(--shadow-md);border-color:transparent}
.testimonial-card:hover::after{opacity:1}
.testimonial-card:hover::before{transform:scale(1.15) rotate(-4deg);opacity:.1}
.testimonial-stars{color:var(--accent-gold);font-size:.9rem;letter-spacing:2px;position:relative;z-index:1}
.testimonial-stars i{display:inline-block;transition:transform .3s var(--transition)}
.testimonial-card:hover .testimonial-stars i{animation:starPop .5s var(--transition) both}
.testimonial-stars i:nth-child(1){animation-delay:.02s}
.testimonial-stars i:nth-child(2){animation-delay:.07s}
.testimonial-stars i:nth-child(3){animation-delay:.12s}
.testimonial-stars i:nth-child(4){animation-delay:.17s}
.testimonial-stars i:nth-child(5){animation-delay:.22s}
@keyframes starPop{40%{transform:scale(1.35) rotate(-8deg)}100%{transform:scale(1)}}
.testimonial-quote{font-size:.95rem;line-height:1.75;color:var(--text-body);position:relative;z-index:1}
.testimonial-author{display:flex;align-items:center;gap:12px;margin-top:auto;position:relative;z-index:1}
.testimonial-avatar{
  width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--brand),var(--accent-gold));
  display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:.9rem;flex-shrink:0;
  box-shadow:0 0 0 4px rgba(255,97,70,.12);transition:box-shadow .4s var(--transition);
}
.testimonial-card:hover .testimonial-avatar{box-shadow:0 0 0 6px rgba(255,97,70,.2)}
.testimonial-author strong{display:block;font-size:.88rem;color:var(--navy)}
.testimonial-author span{display:block;font-size:.78rem;color:var(--text-muted)}

/* PAGE TRANSITION (entrada suave após o preloader) */
.page-enter{animation:pageIn .6s var(--transition) both}
@keyframes pageIn{from{opacity:0}to{opacity:1}}

/* Respeita utilizadores que preferem menos movimento (acessibilidade) */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}
