/*
Theme Name:   IPV Pão da Vida Child
Theme URI:    https://paodavidasp.com.br
Description:  Child theme do Astra para a Igreja Pão da Vida – São Paulo
Author:       Igreja Pão da Vida SP
Author URI:   https://paodavidasp.com.br
Template:     astra
Version:      1.0.0
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  ipv-paodavida-child
*/

/* ============================================================
   IPV DESIGN TOKENS
   ============================================================ */
:root {
  --ipv-black:       #0a0a0a;
  --ipv-white:       #fafafa;
  --ipv-gold:        #C9A84C;
  --ipv-gold-light:  #e8c97a;
  --ipv-gold-dark:   #9a7a2e;
  --ipv-gray-100:    #f5f5f3;
  --ipv-gray-200:    #e8e8e4;
  --ipv-gray-400:    #a0a09a;
  --ipv-gray-600:    #5a5a54;
  --ipv-font-display: 'Cormorant Garamond', Georgia, serif;
  --ipv-font-body:    'Jost', system-ui, sans-serif;
  --ipv-nav-height:   80px;
  --ipv-transition:   0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ============================================================
   GOOGLE FONTS IMPORT
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;0,700;1,300;1,400&family=Jost:wght@300;400;500;600&display=swap');

/* ============================================================
   RESET & BASE
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }

body {
  font-family: var(--ipv-font-body) !important;
  background-color: var(--ipv-white) !important;
  color: var(--ipv-black) !important;
  line-height: 1.75;
}

/* ============================================================
   ASTRA HEADER OVERRIDES
   ============================================================ */
.site-header,
#masthead,
.ast-primary-header-bar {
  background-color: var(--ipv-black) !important;
  border-bottom: 1px solid rgba(201,168,76,0.2) !important;
  min-height: var(--ipv-nav-height) !important;
}

/* Logo */
.site-header .ast-site-identity img,
.custom-logo {
  max-height: 44px !important;
  width: auto !important;
}

/* Nav links */
.main-navigation a,
.ast-header-break-point .main-navigation a,
#ast-hf-menu-1 .menu-item a {
  font-family: var(--ipv-font-body) !important;
  font-size: 0.78rem !important;
  font-weight: 400 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: rgba(250,250,250,0.8) !important;
  transition: color var(--ipv-transition) !important;
}
.main-navigation a:hover,
.main-navigation .current-menu-item > a {
  color: var(--ipv-gold) !important;
  background: transparent !important;
}

/* Dropdown */
.main-navigation .sub-menu {
  background: var(--ipv-black) !important;
  border-top: 2px solid var(--ipv-gold) !important;
}
.main-navigation .sub-menu a {
  border-bottom: 1px solid rgba(255,255,255,0.06) !important;
}

/* Mobile hamburger */
.ast-menu-toggle .menu-toggle-icon,
.ast-menu-toggle .menu-toggle-icon::before,
.ast-menu-toggle .menu-toggle-icon::after {
  background: var(--ipv-white) !important;
}
.ast-header-break-point .ast-primary-header-bar {
  background: var(--ipv-black) !important;
}
.ast-header-break-point #ast-hf-menu-1 {
  background: var(--ipv-black) !important;
}

/* ============================================================
   TYPOGRAPHY
   ============================================================ */
h1, h2, h3, h4, h5, h6,
.entry-title,
.ast-blog-single-element,
.page-title {
  font-family: var(--ipv-font-display) !important;
  font-weight: 300 !important;
  line-height: 1.2 !important;
  color: var(--ipv-black) !important;
}

h1 { font-size: clamp(2.4rem, 5vw, 4rem) !important; }
h2 { font-size: clamp(1.8rem, 3.5vw, 3rem) !important; }
h3 { font-size: clamp(1.4rem, 2.5vw, 2rem) !important; }

p, li, td, th, input, textarea, select, button {
  font-family: var(--ipv-font-body) !important;
}

a { color: var(--ipv-gold-dark) !important; transition: color var(--ipv-transition) !important; }
a:hover { color: var(--ipv-gold) !important; }

/* ============================================================
   ELEMENTOR GLOBAL OVERRIDES
   ============================================================ */

/* Section backgrounds */
.elementor-section.ipv-dark,
.elementor-section.ipv-dark .elementor-container {
  background-color: var(--ipv-black) !important;
}
.elementor-section.ipv-light,
.elementor-section.ipv-light .elementor-container {
  background-color: var(--ipv-gray-100) !important;
}

/* Headings in dark sections */
.ipv-dark h1, .ipv-dark h2, .ipv-dark h3,
.ipv-dark .elementor-heading-title {
  color: var(--ipv-white) !important;
}
.ipv-dark p, .ipv-dark .elementor-text-editor {
  color: rgba(250,250,250,0.75) !important;
}

/* Gold accent text */
.ipv-gold-text,
.ipv-gold-text .elementor-heading-title {
  color: var(--ipv-gold) !important;
}

/* ============================================================
   BUTTONS
   ============================================================ */
.elementor-button,
.ast-button,
.button,
input[type="submit"],
button[type="submit"] {
  font-family: var(--ipv-font-body) !important;
  font-size: 0.78rem !important;
  font-weight: 400 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  border-radius: 0 !important;
  transition: all var(--ipv-transition) !important;
  cursor: pointer !important;
}

/* Primary button — dark fill */
.elementor-button.ipv-btn-primary,
.ast-button-wrap .ast-custom-button {
  background-color: var(--ipv-black) !important;
  color: var(--ipv-white) !important;
  border: 1px solid var(--ipv-black) !important;
  padding: 1rem 2.5rem !important;
}
.elementor-button.ipv-btn-primary:hover {
  background-color: var(--ipv-gold) !important;
  color: var(--ipv-black) !important;
  border-color: var(--ipv-gold) !important;
}

/* Ghost button — gold outline */
.elementor-button.ipv-btn-ghost {
  background-color: transparent !important;
  color: var(--ipv-gold) !important;
  border: 1px solid var(--ipv-gold) !important;
  padding: 0.9rem 2.5rem !important;
}
.elementor-button.ipv-btn-ghost:hover {
  background-color: var(--ipv-gold) !important;
  color: var(--ipv-black) !important;
}

/* ============================================================
   HERO SECTION
   ============================================================ */
.ipv-hero {
  background-color: var(--ipv-black) !important;
  min-height: 100vh !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  position: relative !important;
}
.ipv-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 30% 60%, rgba(201,168,76,0.08) 0%, transparent 60%),
              radial-gradient(ellipse at 80% 20%, rgba(201,168,76,0.05) 0%, transparent 50%);
  pointer-events: none;
  z-index: 0;
}
.ipv-hero::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--ipv-gold), transparent);
  opacity: 0.4;
}
.ipv-hero .elementor-container { position: relative; z-index: 1; }
.ipv-hero .elementor-heading-title {
  font-family: var(--ipv-font-display) !important;
  font-style: italic !important;
  font-weight: 300 !important;
  color: var(--ipv-white) !important;
  line-height: 1.25 !important;
}

/* ============================================================
   DIVIDER GOLD
   ============================================================ */
.ipv-divider,
.elementor-divider-separator.ipv-divider {
  border-color: var(--ipv-gold) !important;
  width: 48px !important;
}

/* ============================================================
   CARDS — VALUE / SERVICE
   ============================================================ */
.ipv-card {
  background: var(--ipv-white);
  border: 1px solid var(--ipv-gray-200);
  padding: 2rem;
  position: relative;
  overflow: hidden;
  transition: var(--ipv-transition);
}
.ipv-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 3px; height: 0;
  background: var(--ipv-gold);
  transition: height 0.4s ease;
}
.ipv-card:hover::before { height: 100%; }
.ipv-card:hover {
  border-color: transparent;
  box-shadow: 0 0 0 1px var(--ipv-gold);
}

.ipv-service-card {
  background: var(--ipv-black);
  padding: 3rem 2.5rem;
  position: relative;
  overflow: hidden;
}
.ipv-service-card::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--ipv-gold), var(--ipv-gold-dark));
}
.ipv-service-card h3 { color: var(--ipv-white) !important; }
.ipv-service-card .time {
  font-family: var(--ipv-font-body);
  font-size: 3rem;
  font-weight: 300;
  color: var(--ipv-gold);
  line-height: 1;
  margin-top: 1.5rem;
}

/* ============================================================
   SECTION LABEL (gold uppercase tag)
   ============================================================ */
.ipv-label {
  font-family: var(--ipv-font-body) !important;
  font-size: 0.7rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  color: var(--ipv-gold) !important;
  display: block;
  margin-bottom: 0.8rem;
}

/* ============================================================
   TABLE (agenda)
   ============================================================ */
.ipv-table { width: 100%; border-collapse: collapse; }
.ipv-table th {
  text-align: left;
  padding: 1rem 1.5rem;
  font-size: 0.7rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--ipv-gold);
  border-bottom: 1px solid var(--ipv-gray-200);
  font-weight: 500;
  font-family: var(--ipv-font-body);
}
.ipv-table td {
  padding: 1.2rem 1.5rem;
  font-size: 0.9rem;
  border-bottom: 1px solid var(--ipv-gray-100);
  font-family: var(--ipv-font-body);
  vertical-align: top;
}
.ipv-table tr:hover td { background: var(--ipv-gray-100); }

/* ============================================================
   CONTACT FORM (CF7 / WPForms)
   ============================================================ */
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form textarea,
.wpcf7-form select,
.wpforms-field input,
.wpforms-field textarea,
.wpforms-field select {
  border: 1px solid var(--ipv-gray-200) !important;
  border-radius: 0 !important;
  background: var(--ipv-white) !important;
  font-family: var(--ipv-font-body) !important;
  font-size: 0.9rem !important;
  padding: 0.9rem 1rem !important;
  outline: none !important;
  transition: border-color var(--ipv-transition) !important;
  width: 100% !important;
}
.wpcf7-form input:focus,
.wpcf7-form textarea:focus,
.wpforms-field input:focus,
.wpforms-field textarea:focus {
  border-color: var(--ipv-gold) !important;
  box-shadow: none !important;
}
.wpcf7-form input[type="submit"],
.wpforms-submit {
  background: var(--ipv-black) !important;
  color: var(--ipv-white) !important;
  border: none !important;
  padding: 1rem 3rem !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  border-radius: 0 !important;
  cursor: pointer !important;
  transition: background var(--ipv-transition) !important;
}
.wpcf7-form input[type="submit"]:hover,
.wpforms-submit:hover {
  background: var(--ipv-gold) !important;
  color: var(--ipv-black) !important;
}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer,
#colophon,
.ast-footer-overlay {
  background-color: var(--ipv-black) !important;
  color: rgba(250,250,250,0.7) !important;
}
.site-footer a,
#colophon a {
  color: rgba(250,250,250,0.6) !important;
}
.site-footer a:hover,
#colophon a:hover {
  color: var(--ipv-gold) !important;
}
.ast-footer-copyright {
  color: rgba(250,250,250,0.3) !important;
  font-size: 0.78rem !important;
}
.site-footer h3, .site-footer h4, .site-footer h5,
.site-footer .widget-title {
  font-size: 0.7rem !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  color: var(--ipv-gold) !important;
  font-family: var(--ipv-font-body) !important;
  font-weight: 500 !important;
}

/* ============================================================
   BANNER STRIP (dark full-width CTA)
   ============================================================ */
.ipv-banner {
  background-color: var(--ipv-black) !important;
  text-align: center !important;
}
.ipv-banner::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at center, rgba(201,168,76,0.07), transparent 70%);
  pointer-events: none;
}

/* ============================================================
   QUICK LINKS GRID
   ============================================================ */
.ipv-quick-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--ipv-gray-200);
  border-left: 1px solid var(--ipv-gray-200);
}
.ipv-quick-card {
  padding: 2.5rem 2rem;
  border-bottom: 1px solid var(--ipv-gray-200);
  border-right: 1px solid var(--ipv-gray-200);
  transition: var(--ipv-transition);
  cursor: pointer;
}
.ipv-quick-card:hover { background: var(--ipv-black); }
.ipv-quick-card:hover * { color: var(--ipv-white) !important; }
.ipv-quick-card:hover .ipv-quick-arrow { color: var(--ipv-gold) !important; }
.ipv-quick-icon { font-size: 1.8rem; color: var(--ipv-gold); margin-bottom: 1rem; }
.ipv-quick-title { font-family: var(--ipv-font-display) !important; font-size: 1.4rem !important; font-weight: 600 !important; margin-bottom: 0.4rem; }
.ipv-quick-sub { font-size: 0.82rem; color: var(--ipv-gray-600); margin-bottom: 1rem; }
.ipv-quick-arrow { color: var(--ipv-gray-400); transition: var(--ipv-transition); }

/* ============================================================
   MINISTRY LIST
   ============================================================ */
.ipv-ministry-item {
  display: flex;
  gap: 2rem;
  align-items: flex-start;
  padding: 2.5rem 0;
  border-bottom: 1px solid var(--ipv-gray-200);
}
.ipv-ministry-num {
  font-family: var(--ipv-font-display);
  font-size: 3rem;
  font-weight: 300;
  color: var(--ipv-gray-200);
  line-height: 1;
  min-width: 60px;
}
.ipv-ministry-title {
  font-family: var(--ipv-font-display) !important;
  font-size: 1.6rem !important;
  font-weight: 600 !important;
  margin-bottom: 0.5rem !important;
}

/* ============================================================
   ANIMATIONS
   ============================================================ */
@keyframes ipvFadeUp {
  from { opacity: 0; transform: translateY(30px); }
  to   { opacity: 1; transform: translateY(0); }
}
.ipv-fade-up {
  animation: ipvFadeUp 0.9s ease forwards;
}
.ipv-fade-up-delay-1 { animation-delay: 0.15s; }
.ipv-fade-up-delay-2 { animation-delay: 0.30s; }
.ipv-fade-up-delay-3 { animation-delay: 0.45s; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1024px) {
  .ipv-quick-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
  .ipv-quick-grid { grid-template-columns: 1fr; }
  .ipv-ministry-item { flex-direction: column; gap: 0.5rem; }
  .ipv-ministry-num { font-size: 2rem; }
}
