/*
Theme Name: CredFacil Child
Theme URI: http://localhost/credfacil/
Description: Estilos globais da CredFacil Consorcios sobre o Hello Elementor.
Author: CredFacil
Template: hello-elementor
Version: 1.0.0
Text Domain: credfacil-child
*/

:root {
  --cf-green-dark: #0e5a2b;
  --cf-green: #1e8a3c;
  --cf-orange: #e96f0b;
  --cf-bg: #f6f8f5;
  --cf-text: #1f2a24;
  --cf-white: #ffffff;
  --cf-radius: 16px;
  --cf-shadow: 0 12px 32px rgba(14, 90, 43, .10);
}

html { scroll-behavior: smooth; scroll-padding-top: 92px; }
body { color: var(--cf-text); overflow-x: hidden; }
a, button, [role="button"] { outline-offset: 4px; }
a:focus-visible, button:focus-visible, [role="button"]:focus-visible { outline: 3px solid #ff9e4d; }
.cf-shell { width: min(1180px, calc(100% - 40px)) !important; max-width: none !important; margin-inline: auto; }
.cf-section { padding: 88px 0; }
.cf-section-alt { background: var(--cf-bg); }
.cf-section-title { max-width: 850px; margin: 0 auto 16px; text-align: center; }
.cf-section-lead { max-width: 760px; margin: 0 auto 40px; text-align: center; }
.cf-sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* Header global */
.cf-site-header { position: sticky; top: 0; z-index: 999; background: rgba(255,255,255,.97); box-shadow: 0 3px 18px rgba(31,42,36,.08); backdrop-filter: blur(10px); }
.cf-header-inner { min-height: 82px; display: flex; align-items: center; gap: 22px; }
.cf-logo { width: 176px; flex: 0 0 176px; }
.cf-header-nav { flex: 1 1 auto; }
.cf-header-nav .elementor-nav-menu--main .elementor-item { min-height: 44px; padding-inline: 12px; color: var(--cf-text); font-weight: 600; }
.cf-header-nav .elementor-nav-menu--main .elementor-item:hover,
.cf-header-nav .elementor-nav-menu--main .elementor-item:focus { color: var(--cf-green); }
.cf-header-nav .elementor-nav-menu--main > ul > li:last-child { display: none; }
.cf-header-nav .elementor-nav-menu--dropdown li:last-child a { margin-top: 6px; border-radius: 999px; background: var(--cf-orange); color: #fff; font-weight: 800; justify-content: center; }
.cf-cta .elementor-button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; background: var(--cf-orange); color: #fff; font-weight: 800; letter-spacing: .03em; box-shadow: 0 8px 18px rgba(233,111,11,.24); }
.cf-cta .elementor-button:hover { background: #c95c06; transform: translateY(-1px); }

/* Hero */
.cf-hero { padding: 0; background: #fff; }
.cf-hero .elementor-widget-slides, .cf-hero .elementor-widget-container, .cf-hero .swiper { width: 100%; }
.cf-hero .swiper-slide { background-size: cover; background-position: center; }
.cf-hero .swiper-slide-inner { position: relative; padding: 0 !important; }
.cf-clickable-slides .elementor-slide-button { position: absolute !important; inset: 0 !important; width: 100%; height: 100%; opacity: 0; margin: 0 !important; z-index: 3; }
.cf-clickable-slides .swiper-pagination-bullet { width: 11px; height: 11px; background: #fff; opacity: .75; box-shadow: 0 1px 4px rgba(0,0,0,.35); }
.cf-clickable-slides .swiper-pagination-bullet-active { background: var(--cf-orange); opacity: 1; }
.cf-hero-mobile { display: none; }

/* Cards e passos */
.elementor .cf-card-grid { width: 100% !important; }
.elementor .cf-card-grid > .e-con-inner { display: grid !important; width: 100% !important; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 22px; }
.cf-card { height: 100%; padding: 30px 24px; border: 1px solid #e2e9e4; border-radius: var(--cf-radius); background: #fff; box-shadow: 0 8px 24px rgba(14,90,43,.06); transition: .22s ease; }
.cf-card:hover { transform: translateY(-5px); box-shadow: var(--cf-shadow); border-color: rgba(30,138,60,.35); }
.cf-card .elementor-icon-box-icon { margin-bottom: 16px; }
.cf-card .elementor-icon { color: var(--cf-green); font-size: 34px; }
.cf-card .elementor-icon-box-title { color: var(--cf-green-dark); }
.cf-card .elementor-button { width: 100%; margin-top: 12px; min-height: 44px; border-radius: 999px; background: var(--cf-orange); color: #fff; font-weight: 800; }
.elementor .cf-steps { width: 100% !important; position: relative; }
.elementor .cf-steps > .e-con-inner { display: grid !important; width: 100% !important; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 18px; }
.cf-step { padding: 26px 20px; border-radius: var(--cf-radius); background: #fff; border-top: 4px solid var(--cf-green); box-shadow: 0 8px 22px rgba(14,90,43,.07); }
.cf-step-number .elementor-heading-title { color: var(--cf-orange); font-size: 34px; line-height: 1; }
.cf-center-cta { margin-top: 34px; text-align: center; }

/* Sobre e administradoras */
.elementor .cf-about-grid { width: 100% !important; }
.elementor .cf-about-grid > .e-con-inner { display: grid !important; width: 100% !important; grid-template-columns: 1.15fr .85fr; gap: 56px; align-items: center; }
.cf-about-copy ul { padding-left: 20px; }
.cf-about-copy li { margin-bottom: 10px; }
.cf-photo-placeholder { min-height: 430px; display: flex; align-items: center; justify-content: center; border: 2px dashed #8fb59a; border-radius: var(--cf-radius); background: linear-gradient(145deg,#e8f3eb,#f9fbf9); color: var(--cf-green-dark); font-weight: 800; text-align: center; }
.elementor .cf-logo-grid { width: 100% !important; margin-top: 34px; }
.elementor .cf-logo-grid > .e-con-inner { display: grid !important; width: 100% !important; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px; }
.cf-logo-placeholder { min-height: 130px; display: flex; align-items: center; justify-content: center; border-radius: 14px; background: #fff; border: 1px solid #e2e6e3; box-shadow: 0 7px 18px rgba(31,42,36,.05); filter: grayscale(1); }
.cf-logo-placeholder .elementor-heading-title { color: #6c746f; font-size: 22px; }
.cf-admin-cta { margin-top: 40px; padding: 30px; border-radius: var(--cf-radius); background: var(--cf-green-dark); color: #fff; text-align: center; }
.cf-admin-cta .elementor-heading-title, .cf-admin-cta p { color: #fff; }

/* FAQ, mapa e footer */
.cf-faq { max-width: 900px; margin: 34px auto 0; }
.cf-faq .elementor-accordion-item { margin-bottom: 12px; border: 1px solid #dfe8e1 !important; border-radius: 12px; overflow: hidden; background: #fff; }
.cf-faq .elementor-tab-title { min-height: 54px; display: flex; align-items: center; font-weight: 700; color: var(--cf-green-dark); }
.cf-map .elementor-widget-google_maps iframe { min-height: 430px; display: block; }
.cf-site-footer { padding: 58px 0 0; background: #0b4723; color: #eaf3ed; }
.elementor .cf-footer-grid { width: 100% !important; }
.elementor .cf-footer-grid > .e-con-inner { display: grid !important; width: 100% !important; grid-template-columns: 1.2fr .9fr 1.25fr; gap: 50px; }
.cf-site-footer .elementor-heading-title, .cf-site-footer p, .cf-site-footer a { color: #fff; }
.cf-footer-logo { max-width: 190px; background: #fff; border-radius: 10px; padding: 8px; }
.cf-footer-links .elementor-icon-list-item { margin-bottom: 8px; }
.cf-site-footer a:hover { color: #ffd3ac; }
.cf-footer-bottom { margin-top: 42px; padding: 20px 0; border-top: 1px solid rgba(255,255,255,.18); }
.cf-footer-bottom > .e-con-inner { display: flex; justify-content: space-between; gap: 22px; align-items: center; }
.cf-footer-bottom p { margin: 0; font-size: 14px; }
.cf-legal-links { text-align: right; font-size: 14px; }
.cf-social .elementor-social-icon { min-width: 44px; min-height: 44px; background: rgba(255,255,255,.12); }

/* Páginas simples */
.cf-simple-page { min-height: 62vh; padding: 110px 0; text-align: center; background: var(--cf-bg); }

@media (max-width: 1024px) {
  .cf-shell { width: min(100% - 32px, 920px); }
  .cf-section { padding: 72px 0; }
  .cf-header-inner { flex-wrap: wrap; padding-block: 10px; }
  .cf-header-nav { order: 3; width: 100%; }
  .cf-header-nav .elementor-menu-toggle { min-width: 44px; min-height: 44px; margin-left: auto; }
  .elementor .cf-card-grid > .e-con-inner, .elementor .cf-logo-grid > .e-con-inner { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .elementor .cf-steps > .e-con-inner { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .cf-step:last-child { grid-column: 1 / -1; }
  .elementor .cf-about-grid > .e-con-inner { grid-template-columns: 1fr 1fr; gap: 34px; }
}

@media (max-width: 767px) {
  html { scroll-padding-top: 76px; }
  .cf-shell { width: min(100% - 28px, 560px); }
  .cf-section { padding: 58px 0; }
  .cf-logo { width: 142px; flex-basis: 142px; }
  .cf-header-inner { min-height: 72px; }
  .cf-header-inner > .cf-cta, .cf-header-inner > .e-con-inner > .elementor-element:last-child { display: none; }
  .cf-header-nav { order: 2; margin-left: auto; width: auto; }
  .cf-header-nav .elementor-nav-menu--dropdown { border-radius: 12px; box-shadow: var(--cf-shadow); padding: 10px; }
  .cf-header-nav .elementor-nav-menu--dropdown a { min-height: 48px; }
  .cf-hero-desktop { display: none; }
  .cf-hero-mobile { display: block; }
  .elementor .cf-card-grid > .e-con-inner, .elementor .cf-steps > .e-con-inner, .elementor .cf-logo-grid > .e-con-inner, .elementor .cf-about-grid > .e-con-inner, .elementor .cf-footer-grid > .e-con-inner { grid-template-columns: 1fr; }
  .cf-step:last-child { grid-column: auto; }
  .cf-photo-placeholder { min-height: 320px; }
  .cf-map .elementor-widget-google_maps iframe { min-height: 360px; }
  .cf-footer-bottom > .e-con-inner { align-items: flex-start; flex-direction: column; }
  .cf-legal-links { text-align: left; }
}

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