/*
Theme Name: Eleva Theme
Theme URI: https://elevaplanning.com
Description: Child theme for Eleva Planning — Despacho de Planeación Patrimonial
Author: Eleva Planning
Template: generatepress
Version: 1.0.0
*/

/* =============================================
   VARIABLES
   ============================================= */
:root {
  --teal: #33a5ae;
  --teal-dark: #38837f;
  --ink: #1a1a1a;
  --slate: #676767;
  --bg: #ffffff;
  --bg-soft: #f8f8f6;
  --max-width: 1100px;
  --font-title: 'Cormorant Garamond', Georgia, serif;
  --font-body: 'Inter', -apple-system, sans-serif;
}

/* =============================================
   GENERATEPRESS CONTAINER OVERRIDES
   ============================================= */

/* .grid-container es la clase que GP usa para limitar el ancho en TODO */
.grid-container,
.container,
#page,
.site,
.site-content,
.site-main,
.content-area,
.inside-article,
.entry-content,
.page-content,
.post-content {
  max-width: none !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* El header usa grid-container también — sobreescribir solo ese */
.inside-header.grid-container {
  max-width: var(--max-width) !important;
  margin: 0 auto !important;
  padding: 0 24px !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

/* Nav interna */
.inside-navigation.grid-container {
  max-width: var(--max-width) !important;
  margin: 0 auto !important;
  padding: 0 24px !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

/* Footer */
.inside-footer-widgets.grid-container,
.footer-bar-section.grid-container {
  max-width: var(--max-width) !important;
  margin: 0 auto !important;
  padding: 0 24px !important;
}

/* Ocultar entry-header y entry-footer nativos de GP */
.page .entry-header,
.page .entry-footer { display: none !important; }

/* Sin sidebar */
.sidebar-primary { display: none !important; }
.content-area,
.site-main { float: none !important; }

/* GP añade padding al .wp-block-group */
.wp-block-group__inner-container { max-width: none !important; padding: 0 !important; }

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

html { font-size: 16px; -webkit-font-smoothing: antialiased; }

body {
  font-family: var(--font-body);
  color: var(--ink);
  background: var(--bg);
  line-height: 1.7;
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--teal); text-decoration: none; }
a:hover { color: var(--teal-dark); }

.site-content, .entry-content, .wp-block-group__inner-container {
  max-width: var(--max-width);
  margin-left: auto;
  margin-right: auto;
}

/* =============================================
   TYPOGRAPHY
   ============================================= */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-title);
  font-weight: 400;
  line-height: 1.2;
  color: var(--ink);
}

h1 { font-size: clamp(2.4rem, 5vw, 3.5rem); }
h2 { font-size: clamp(1.8rem, 3vw, 2.25rem); }
h3 { font-size: 1.4rem; }

p { margin-bottom: 1.25rem; color: var(--slate); }
p:last-child { margin-bottom: 0; }

/* =============================================
   NAVBAR
   ============================================= */
.site-header {
  background: var(--bg) !important;
  border-bottom: 1px solid #e8e8e4 !important;
  box-shadow: none !important;
  padding: 0 !important;
}

.site-header .inside-header {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 72px;
}

.site-logo img,
.site-logo a { height: 40px; width: auto; }

.site-title {
  font-family: var(--font-title);
  font-size: 1.35rem;
  font-weight: 600;
  color: var(--ink) !important;
  letter-spacing: 0.02em;
}
.site-title a { color: var(--ink) !important; }

/* Nav links */
.main-navigation ul li a {
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--ink) !important;
  padding: 8px 16px;
  transition: color 0.2s;
}
.main-navigation ul li a:hover,
.main-navigation ul li.current-menu-item > a {
  color: var(--teal) !important;
  background: transparent !important;
}

/* Dropdown */
.main-navigation ul ul {
  background: var(--bg) !important;
  border: 1px solid #e8e8e4 !important;
  box-shadow: 0 8px 24px rgba(0,0,0,0.06) !important;
  min-width: 220px;
}
.main-navigation ul ul li a {
  padding: 10px 20px;
  font-size: 11px;
}

/* =============================================
   BUTTONS
   ============================================= */
.btn-primary,
.wp-block-button__link,
button[type="submit"],
input[type="submit"] {
  display: inline-block;
  background: var(--teal) !important;
  color: #fff !important;
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  padding: 14px 32px;
  border: none;
  border-radius: 2px;
  cursor: pointer;
  transition: background 0.2s;
  text-decoration: none !important;
}
.btn-primary:hover,
.wp-block-button__link:hover,
button[type="submit"]:hover,
input[type="submit"]:hover {
  background: var(--teal-dark) !important;
  color: #fff !important;
}

.btn-secondary {
  display: inline-block;
  background: transparent;
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 400;
  padding: 10px 0;
  border: none;
  cursor: pointer;
  text-decoration: none;
  transition: color 0.2s;
}
.btn-secondary:hover { color: var(--teal); }

/* =============================================
   HERO
   ============================================= */
.eleva-hero {
  padding: 120px 24px;
  text-align: center;
  max-width: 100%;
  background: var(--bg);
}
.eleva-hero__inner {
  max-width: 760px;
  margin: 0 auto;
}
.eleva-eyebrow {
  display: block;
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--teal);
  margin-bottom: 24px;
}
.eleva-hero h1 {
  font-size: clamp(2.4rem, 5vw, 3.5rem);
  font-weight: 400;
  line-height: 1.15;
  margin-bottom: 16px;
  color: var(--ink);
}
.eleva-hero__line {
  width: 48px;
  height: 2px;
  background: var(--teal);
  margin: 24px auto;
}
.eleva-hero p {
  font-size: 1.05rem;
  color: var(--slate);
  margin-bottom: 40px;
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}
.eleva-hero__ctas {
  display: flex;
  gap: 24px;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
}

/* =============================================
   PAGE HERO (internas)
   ============================================= */
.eleva-page-hero {
  padding: 80px 24px 60px;
  border-bottom: 1px solid #e8e8e4;
  text-align: center;
  background: var(--bg);
}
.eleva-page-hero h1 {
  font-size: clamp(2rem, 4vw, 2.8rem);
}

/* =============================================
   SECTIONS
   ============================================= */
.eleva-section {
  padding: 80px 24px;
}
.eleva-section--soft { background: var(--bg-soft); }
.eleva-section--teal {
  background: var(--teal);
  color: #fff;
  text-align: center;
}
.eleva-section--teal h2,
.eleva-section--teal p { color: #fff; }
.eleva-section--teal p { opacity: 0.9; }

.eleva-section__inner {
  max-width: var(--max-width);
  margin: 0 auto;
}

/* Section heading */
.eleva-section-title {
  font-family: var(--font-title);
  font-size: clamp(1.8rem, 3vw, 2.25rem);
  font-weight: 400;
  color: var(--ink);
  margin-bottom: 12px;
}
.eleva-section-title__line {
  width: 40px;
  height: 2px;
  background: var(--teal);
  margin: 0 0 40px 0;
}
.eleva-section--center .eleva-section-title__line {
  margin: 0 auto 40px;
}
.eleva-section__subtitle {
  font-size: 1rem;
  color: var(--slate);
  margin-top: 0;
  margin-bottom: 48px;
}

/* =============================================
   GRID COLS
   ============================================= */
.eleva-grid-3 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 48px;
}

.eleva-card {
  padding: 0;
}
.eleva-card__num {
  font-family: var(--font-title);
  font-size: 3.5rem;
  font-weight: 400;
  color: var(--teal);
  opacity: 0.3;
  line-height: 1;
  margin-bottom: 12px;
}
.eleva-card__title {
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 10px;
  text-transform: none;
}
.eleva-card__text {
  font-size: 0.92rem;
  color: var(--slate);
  line-height: 1.65;
  margin: 0;
}

/* =============================================
   SERVICE ROWS (alternating)
   ============================================= */
.eleva-service {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}
.eleva-service--reverse { direction: rtl; }
.eleva-service--reverse > * { direction: ltr; }

.eleva-service__img img {
  width: 100%;
  height: 320px;
  object-fit: cover;
}
.eleva-service__text h3 {
  font-family: var(--font-title);
  font-size: clamp(1.5rem, 2.5vw, 1.9rem);
  font-weight: 400;
  margin-bottom: 16px;
}
.eleva-service__text p {
  font-size: 0.97rem;
  line-height: 1.75;
}

/* =============================================
   CONTACT
   ============================================= */
.eleva-contact {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 64px;
  align-items: start;
}
.eleva-contact__info h2 {
  font-family: var(--font-title);
  font-size: 2rem;
  margin-bottom: 16px;
}
.eleva-contact__info p { font-size: 0.97rem; margin-bottom: 24px; }
.eleva-contact__link {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.95rem;
  color: var(--ink);
  margin-bottom: 14px;
  font-weight: 500;
}
.eleva-contact__link:hover { color: var(--teal); }

/* Simple form */
.eleva-form { display: flex; flex-direction: column; gap: 16px; }
.eleva-form input,
.eleva-form textarea {
  width: 100%;
  padding: 12px 16px;
  border: 1px solid #e8e8e4;
  border-radius: 2px;
  font-family: var(--font-body);
  font-size: 0.9rem;
  color: var(--ink);
  background: var(--bg);
  transition: border-color 0.2s;
  outline: none;
}
.eleva-form input:focus,
.eleva-form textarea:focus { border-color: var(--teal); }
.eleva-form textarea { min-height: 140px; resize: vertical; }

/* =============================================
   FOOTER
   ============================================= */
.site-footer {
  background: var(--bg-soft) !important;
  border-top: 1px solid #e8e8e4;
  padding: 40px 24px !important;
  text-align: center;
}
.site-footer, .site-footer a, .site-footer p {
  font-family: var(--font-body);
  font-size: 12px;
  color: var(--slate) !important;
}
.site-footer a:hover { color: var(--teal) !important; }

/* GeneratePress overrides */
.generate-columns-container { max-width: var(--max-width); margin: 0 auto; }
.inside-article { padding: 0; }
.entry-header, .entry-content, .entry-summary, .entry-footer { padding: 0; }
.page .entry-header { display: none; }
.sidebar-primary { display: none; }
.content-area { width: 100%; }

/* =============================================
   FOOTER SOCIAL
   ============================================= */
.eleva-footer-location {
  font-size: 12px;
  color: var(--slate);
  margin-bottom: 14px;
}
.eleva-footer-icons {
  display: flex;
  gap: 16px;
  align-items: center;
}
.eleva-footer-icon {
  display: block;
  width: 20px;
  height: 20px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  opacity: 0.55;
  transition: opacity 0.2s;
}
.eleva-footer-icon:hover { opacity: 1; }

.eleva-footer-icon--li {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23676767'%3E%3Cpath d='M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 0 1-2.063-2.065 2.064 2.064 0 1 1 2.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z'/%3E%3C/svg%3E");
}
.eleva-footer-icon--ig {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23676767'%3E%3Cpath d='M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zM12 0C8.741 0 8.333.014 7.053.072 2.695.272.273 2.69.073 7.052.014 8.333 0 8.741 0 12c0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98C8.333 23.986 8.741 24 12 24c3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98C15.668.014 15.259 0 12 0zm0 5.838a6.162 6.162 0 1 0 0 12.324 6.162 6.162 0 0 0 0-12.324zM12 16a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm6.406-11.845a1.44 1.44 0 1 0 0 2.881 1.44 1.44 0 0 0 0-2.881z'/%3E%3C/svg%3E");
}

/* =============================================
   TEAM GRID
   ============================================= */
.eleva-team-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px 32px;
}

.eleva-team-card__photo {
  overflow: hidden;
  margin-bottom: 16px;
  background: var(--bg-soft);
}
.eleva-team-card__photo img {
  width: 100%;
  aspect-ratio: 4 / 2.5;
  object-fit: cover;
  object-position: center top;
  display: block;
  transition: transform 0.4s ease;
  filter: grayscale(100%);
}
.eleva-team-card:hover .eleva-team-card__photo img {
  transform: scale(1.03);
}

.eleva-team-card__name {
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 4px;
}
.eleva-team-card__role {
  font-family: var(--font-body);
  font-size: 0.82rem;
  color: var(--teal);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

/* =============================================
   RESPONSIVE
   ============================================= */
@media (max-width: 900px) {
  .eleva-team-grid { grid-template-columns: repeat(2, 1fr); gap: 32px 24px; }
}

@media (max-width: 768px) {
  .eleva-hero { padding: 80px 20px; }
  .eleva-section { padding: 60px 20px; }
  .eleva-service { grid-template-columns: 1fr; gap: 32px; }
  .eleva-service--reverse { direction: ltr; }
  .eleva-contact { grid-template-columns: 1fr; gap: 40px; }
  .eleva-team-grid { grid-template-columns: repeat(2, 1fr); }
  .main-navigation { display: none; }
}

@media (max-width: 480px) {
  .eleva-team-grid { grid-template-columns: 1fr; }
}
