/*
Theme Name: Oscar Pinto — Eficiencia Adaptativa 360
Theme URI: https://oscarpinto.com
Author: Oscar Pinto
Author URI: https://oscarpinto.com
Description: Tema personal futurista — Eficiencia Adaptativa 360. Sistemas, organizaciones y tecnología.
Version: 2.4.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: oscarpinto
Tags: one-page, blog, dark, futuristic, personal
*/

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

:root {
  --bg:          #05070f;
  --bg-2:        #080c1a;
  --bg-card:     rgba(255,255,255,0.04);
  --border:      rgba(0,212,255,0.12);
  --accent:      #00d4ff;
  --accent-2:    #0066ff;
  --accent-glow: rgba(0,212,255,0.25);
  --accent-dark: rgba(0,212,255,0.08);
  --purple:      #7c3aed;
  --text:        #e8eaf6;
  --text-sec:    rgba(232,234,246,0.65);
  --text-dim:    rgba(232,234,246,0.35);
  --white:       #ffffff;
  --radius:      16px;
  --radius-lg:   28px;
  --max-w:       1140px;
  --ff-d:        'Space Grotesk', Georgia, serif;
  --ff-b:        'DM Sans', 'Inter', sans-serif;
  --nav-h:       72px;
  --transition:  all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; font-size: 16px; }
body { font-family: var(--ff-b); background: var(--bg); color: var(--text); overflow-x: hidden; line-height: 1.7; }
::selection { background: var(--accent); color: var(--bg); }
a { color: inherit; text-decoration: none; transition: var(--transition); }
img, video { display: block; max-width: 100%; }

/* === UTILITY === */
.container { max-width: var(--max-w); margin: 0 auto; padding: 0 28px; }
.text-center { text-align: center; }

/* SECTIONS — reduced 30% from original */
.section       { padding: 84px 0; display: block; }
.section--alt  { background-color: var(--bg-2); }

.label {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 0.71rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--accent); background: var(--accent-dark); border: 1px solid var(--border);
  padding: 6px 16px; border-radius: 100px; margin-bottom: 20px;
}
.label::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--accent); animation: pulse-dot 2s infinite; }
@keyframes pulse-dot { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:0.4;transform:scale(1.5)} }

.section-title {
  font-family: var(--ff-d); font-size: clamp(2rem, 4.5vw, 3.4rem);
  font-weight: 700; line-height: 1.15; color: var(--white); margin-bottom: 20px;
}
.section-title span { color: var(--accent); }
.section-desc { font-size: 1.02rem; color: var(--text-sec); max-width: 680px; margin: 0 auto 44px; line-height: 1.85; }

.glass { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); backdrop-filter: blur(12px); }
.glow-line { width: 80px; height: 2px; margin: 0 auto 24px; background: linear-gradient(90deg, transparent, var(--accent), transparent); }

/* === BUTTONS === */
.btn {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 13px 28px; border-radius: 100px; font-weight: 600;
  font-size: 0.9rem; letter-spacing: 0.04em; cursor: pointer;
  border: none; transition: var(--transition); position: relative; overflow: hidden;
}
.btn::after { content:''; position:absolute; inset:0; border-radius:inherit; background:rgba(255,255,255,0.1); opacity:0; transition:opacity .3s; }
.btn:hover::after { opacity: 1; }
.btn--primary { background: linear-gradient(135deg, var(--accent), var(--accent-2)); color: var(--bg); box-shadow: 0 0 24px var(--accent-glow); }
.btn--primary:hover { transform: translateY(-2px); box-shadow: 0 0 40px var(--accent-glow), 0 8px 30px rgba(0,0,0,0.3); }
.btn--secondary { background: transparent; color: var(--text); border: 1px solid var(--border); backdrop-filter: blur(8px); }
.btn--secondary:hover { border-color: var(--accent); color: var(--accent); transform: translateY(-2px); }
.btn--outline { background: transparent; color: var(--accent); border: 1px solid var(--accent); }
.btn--outline:hover { background: var(--accent); color: var(--bg); transform: translateY(-2px); }

/* === NAVIGATION === */
#mainNav {
  position: fixed; top: 0; left: 0; width: 100%; z-index: 1000;
  height: var(--nav-h); padding: 0 40px;
  display: flex; justify-content: space-between; align-items: center;
  transition: var(--transition);
}
#mainNav.scrolled {
  background: rgba(5,7,15,0.94); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--border); height: 60px;
}
.nav__logo { font-family: var(--ff-d); font-size: 1.2rem; font-weight: 700; color: var(--white); letter-spacing: -0.02em; }
.nav__logo span { color: var(--accent); }
.nav__links { display: flex; gap: 28px; list-style: none; align-items: center; }
.nav__links a { font-size: 0.78rem; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(232,234,246,0.7); position: relative; padding-bottom: 4px; }
.nav__links a::after { content:''; position:absolute; bottom:0; left:0; width:0; height:1px; background:var(--accent); transition:width .3s; }
.nav__links a:hover { color: var(--accent); }
.nav__links a:hover::after { width: 100%; }
.nav__links a.btn--primary { padding: 8px 20px; color: var(--bg); }
.nav__links a.btn--primary::after { display: none; }
.nav__burger { display: none; flex-direction: column; gap: 5px; cursor: pointer; background: none; border: none; padding: 4px; }
.nav__burger span { display: block; width: 24px; height: 2px; background: var(--white); transition: var(--transition); border-radius: 2px; }

/* === HERO === */
.hero {
  position: relative; height: 100vh; min-height: 680px;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  overflow: hidden; text-align: center;
  padding-top: calc(var(--nav-h) + 64px);
  padding-bottom: 60px;
}

/* ── Animated CSS gradient mesh — always visible fallback ── */
.hero__bg-mesh {
  position: absolute; inset: 0; z-index: 0;
  background-color: #05070f;
  background-image:
    radial-gradient(ellipse at 15% 40%, rgba(0,100,220,0.22) 0%, transparent 50%),
    radial-gradient(ellipse at 85% 20%, rgba(0,200,255,0.14) 0%, transparent 45%),
    radial-gradient(ellipse at 60% 85%, rgba(100,40,210,0.16) 0%, transparent 45%),
    radial-gradient(ellipse at 50% 50%, rgba(0,50,100,0.1) 0%, transparent 70%);
  animation: hero-mesh 10s ease-in-out infinite alternate;
}
@keyframes hero-mesh {
  0%   { filter: hue-rotate(0deg) brightness(1); }
  50%  { filter: hue-rotate(12deg) brightness(1.06); }
  100% { filter: hue-rotate(-8deg) brightness(0.96); }
}

/* ── Direct MP4 background video ── */
.hero__video-bg {
  position: absolute; inset: 0; z-index: 1; overflow: hidden;
  pointer-events: none;
}
.hero__video-bg video {
  position: absolute;
  top: 50%; left: 50%;
  width: 177.78vh;   /* always wider than viewport at 16:9 */
  height: 100vh;
  min-width: 100vw;
  min-height: 56.25vw;
  transform: translate(-50%, -50%);
  object-fit: cover;
  opacity: 0.4;
  filter: brightness(0.6) saturate(0.8);
}

.hero__overlay {
  position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background: linear-gradient(180deg,
    rgba(5,7,15,0.45) 0%,
    rgba(5,7,15,0.1)  35%,
    rgba(5,7,15,0.55) 75%,
    rgba(5,7,15,1)   100%
  );
}

#heroCanvas { position: absolute; inset: 0; z-index: 3; pointer-events: none; opacity: 0.45; }

/* Hero content — section handles all offset via padding-top */
.hero__content {
  position: relative; z-index: 4;
  padding: 0 24px;
  max-width: 900px; width: 100%;
  /* Ensure no extra top push */
  margin-top: 0;
}

.hero__badge {
  display: inline-flex; align-items: center; gap: 10px;
  background: rgba(0,212,255,0.12); border: 1px solid rgba(0,212,255,0.28);
  border-radius: 100px; padding: 8px 20px; margin-bottom: 28px;
  font-size: 0.74rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--accent);
}
.hero__badge-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--accent); flex-shrink: 0; animation: pulse-dot 1.5s infinite; }

.hero__title {
  font-family: var(--ff-d); font-size: clamp(3rem, 8.5vw, 6.2rem);
  font-weight: 800; line-height: 1.05; color: var(--white); margin-bottom: 24px;
  letter-spacing: -0.03em;
}
.hero__title .num {
  display: inline-block;
  background: linear-gradient(135deg, var(--accent) 0%, var(--purple) 100%);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}

.hero__sub {
  font-size: clamp(0.98rem, 1.8vw, 1.18rem); color: var(--text-sec);
  max-width: 680px; margin: 0 auto 16px; line-height: 1.85;
}

.hero__statement {
  font-family: var(--ff-d); font-size: clamp(0.9rem, 1.4vw, 1.08rem);
  color: var(--accent); font-style: italic; margin-bottom: 40px;
  padding: 14px 28px; border: 1px solid var(--border); border-radius: var(--radius);
  display: inline-block; background: var(--accent-dark);
  max-width: 680px;
}

.hero__btns { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }

/* Dots */
.hero__dots { display: flex; gap: 8px; justify-content: center; margin-top: 32px; }
.hero__dot { width: 28px; height: 3px; border-radius: 2px; background: rgba(255,255,255,0.2); cursor: pointer; transition: var(--transition); }
.hero__dot.active { background: var(--accent); width: 48px; box-shadow: 0 0 8px var(--accent); }

/* Scroll indicator — inline in content flow, clearly below buttons */
.hero__scroll {
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  margin-top: 36px;
  color: var(--text-dim); font-size: 0.68rem; letter-spacing: 0.18em; text-transform: uppercase;
  position: relative; z-index: 5;
}
.hero__scroll-line {
  width: 1px; height: 40px;
  background: linear-gradient(to bottom, var(--accent), transparent);
  animation: scroll-line 2.2s infinite;
}
@keyframes scroll-line {
  0%   { transform: scaleY(0); transform-origin: top; }
  50%  { transform: scaleY(1); transform-origin: top; }
  51%  { transform: scaleY(1); transform-origin: bottom; }
  100% { transform: scaleY(0); transform-origin: bottom; }
}

/* === CONCEPT === */
.concept { padding: 70px 0; position: relative; overflow: hidden; }
.concept::before {
  content: '360'; position: absolute; right: -80px; top: 50%; transform: translateY(-50%);
  font-family: var(--ff-d); font-size: 28vw; font-weight: 900; color: rgba(0,212,255,0.018);
  pointer-events: none; line-height: 1; user-select: none;
}
.concept__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: center; }
.concept__title { font-family: var(--ff-d); font-size: clamp(1.9rem, 3.8vw, 3rem); font-weight: 700; color: var(--white); line-height: 1.15; margin-bottom: 20px; }
.concept__text  { color: var(--text-sec); font-size: 1.02rem; line-height: 1.9; margin-bottom: 16px; }
.concept__highlight { font-family: var(--ff-d); font-size: 1.08rem; color: var(--accent); font-style: italic; margin-top: 20px; padding-left: 20px; border-left: 3px solid var(--accent); }
.concept__diagram { width: 100%; aspect-ratio: 1; position: relative; display: flex; align-items: center; justify-content: center; }
.diagram-ring { position: absolute; border-radius: 50%; border: 1px solid var(--border); animation: ring-rotate 22s linear infinite; }
.diagram-ring:nth-child(1) { width: 100%; height: 100%; }
.diagram-ring:nth-child(2) { width: 75%; height: 75%; animation-duration: 18s; animation-direction: reverse; border-color: rgba(124,58,237,0.25); }
.diagram-ring:nth-child(3) { width: 50%; height: 50%; animation-duration: 12s; border-color: rgba(0,102,255,0.3); }
@keyframes ring-rotate { from{transform:rotate(0deg)} to{transform:rotate(360deg)} }
.diagram-ring::after { content:''; position:absolute; top:-4px; left:50%; width:7px; height:7px; border-radius:50%; background:var(--accent); box-shadow:0 0 10px var(--accent); transform:translateX(-50%); }
.diagram-ring:nth-child(2)::after { background:var(--purple); box-shadow:0 0 10px var(--purple); }
.diagram-ring:nth-child(3)::after { background:var(--accent-2); box-shadow:0 0 10px var(--accent-2); }
.diagram-center { position: relative; z-index: 2; text-align: center; background: var(--bg-card); border: 1px solid var(--border); border-radius: 50%; width: 160px; height: 160px; display: flex; flex-direction: column; align-items: center; justify-content: center; backdrop-filter: blur(10px); }
.diagram-center strong { font-family: var(--ff-d); font-size: 2rem; color: var(--accent); line-height: 1; display: block; }
.diagram-center span { font-size: 0.7rem; color: var(--text-sec); letter-spacing: 0.1em; }

/* === TEA === */
.tea { padding: 70px 0; }
.tea__inner { max-width: 820px; margin: 0 auto; text-align: center; }
.tea__title { font-family: var(--ff-d); font-size: clamp(1.7rem, 3.2vw, 2.6rem); font-weight: 700; color: var(--white); margin-bottom: 28px; }
.tea__points { display: flex; flex-direction: column; gap: 16px; text-align: left; margin-top: 32px; }
.tea__point { display: flex; gap: 16px; align-items: flex-start; padding: 22px; border-radius: var(--radius); background: var(--bg-card); border: 1px solid var(--border); transition: var(--transition); }
.tea__point:hover { border-color: var(--accent); }
.tea__point-icon { width: 40px; height: 40px; border-radius: 10px; flex-shrink: 0; background: var(--accent-dark); display: flex; align-items: center; justify-content: center; font-size: 1.2rem; }
.tea__point p { color: var(--text-sec); line-height: 1.7; }
.tea__point strong { color: var(--white); display: block; margin-bottom: 6px; }

/* === AI SECTION === */
.ai-section { padding: 70px 0; position: relative; overflow: hidden; }
.ai-section::before { content:''; position:absolute; top:-200px; right:-200px; width:600px; height:600px; border-radius:50%; background:radial-gradient(circle, rgba(0,212,255,0.05) 0%, transparent 70%); pointer-events:none; }
.ai__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: center; }
.ai__visual { padding: 36px; border-radius: var(--radius-lg); background: var(--bg-card); border: 1px solid var(--border); position: relative; overflow: hidden; }
.ai__visual::before { content:''; position:absolute; inset:0; background:linear-gradient(135deg, rgba(0,212,255,0.04), rgba(124,58,237,0.04)); }
.ai__data-stream { display:flex; flex-direction:column; gap:10px; position:relative; z-index:1; }
.ai__data-line { height:3px; border-radius:2px; background:linear-gradient(90deg,var(--accent),var(--purple),var(--accent-2)); opacity:.6; animation:data-flow 3s ease-in-out infinite; }
.ai__data-line:nth-child(2){animation-delay:.5s;width:80%}
.ai__data-line:nth-child(3){animation-delay:1s;width:65%}
.ai__data-line:nth-child(4){animation-delay:1.5s;width:90%}
.ai__data-line:nth-child(5){animation-delay:2s;width:55%}
@keyframes data-flow { 0%{opacity:.15;transform:scaleX(.2);transform-origin:left} 50%{opacity:.9;transform:scaleX(1)} 100%{opacity:.15;transform:scaleX(.2);transform-origin:right} }
.ai__label { font-size:.7rem; color:var(--accent); letter-spacing:.1em; text-transform:uppercase; margin-bottom:18px; }
.ai__metric { display:flex; gap:12px; align-items:center; margin-top:20px; padding:12px; background:rgba(0,212,255,0.06); border-radius:10px; }
.ai__metric-val { font-family:var(--ff-d); font-size:1.4rem; color:var(--accent); font-weight:700; }
.ai__metric-label { font-size:.8rem; color:var(--text-sec); }

/* === VALUE CARDS === */
.values { padding: 70px 0; }
.values__grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 20px; margin-top: 44px; }
.value-card { padding: 30px 24px; border-radius: var(--radius); background: var(--bg-card); border: 1px solid var(--border); transition: var(--transition); position: relative; overflow: hidden; text-align: center; }
.value-card::before { content:''; position:absolute; inset:0; background:linear-gradient(135deg,rgba(0,212,255,0.05),transparent); opacity:0; transition:opacity .4s; }
.value-card:hover { transform: translateY(-6px); border-color: var(--accent); box-shadow: 0 0 28px rgba(0,212,255,0.09); }
.value-card:hover::before { opacity: 1; }
.value-card__num { font-family:var(--ff-d); font-size:2.2rem; font-weight:800; color:rgba(0,212,255,0.12); line-height:1; margin-bottom:12px; transition:color .3s; }
.value-card:hover .value-card__num { color: rgba(0,212,255,0.3); }
.value-card__icon { font-size:1.8rem; margin-bottom:14px; }
.value-card__title { font-family:var(--ff-d); font-size:1.05rem; color:var(--white); font-weight:600; margin-bottom:10px; }
.value-card__text { font-size:.87rem; color:var(--text-sec); line-height:1.7; }

/* === ABOUT === */
.about { padding: 70px 0; }
.about__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: center; }
.about__img-wrap { position: relative; }
.about__img {
  width: 100%; aspect-ratio: 3/4; border-radius: var(--radius-lg);
  border: 1px solid var(--border); overflow: hidden; position: relative;
  background: var(--bg-2);
}
/* When real photo is present */
.about__img--has-photo { background: transparent; }
.about__img--has-photo img {
  width: 100%; height: 100%; object-fit: cover;
  object-position: center top;
  display: block;
  transition: transform 0.6s ease;
}
.about__img--has-photo:hover img { transform: scale(1.03); }
.about__img-placeholder { font-family:var(--ff-d); font-size:8rem; color:rgba(0,212,255,0.1); user-select:none; display:flex; align-items:center; justify-content:center; width:100%; height:100%; }
.about__badge-float { position:absolute; bottom:28px; right:-20px; padding:14px 20px; border-radius:var(--radius); background:rgba(5,7,15,0.92); border:1px solid var(--border); backdrop-filter:blur(10px); }
.about__badge-float strong { display:block; font-family:var(--ff-d); font-size:1.4rem; color:var(--accent); }
.about__badge-float span { font-size:.78rem; color:var(--text-sec); }
.expertise__list { list-style:none; display:flex; flex-direction:column; gap:10px; margin-top:28px; }
.expertise__list li { display:flex; gap:12px; align-items:center; padding:12px 16px; border-radius:10px; background:var(--bg-card); border:1px solid var(--border); font-size:.9rem; color:var(--text-sec); transition:var(--transition); }
.expertise__list li:hover { border-color:var(--accent); color:var(--text); }
.expertise__list li::before { content:'→'; color:var(--accent); font-size:.88rem; flex-shrink:0; }

/* === SPEAKING / CONFERENCIAS === */
.speaking { padding: 70px 0; }
.speaking__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: center; }

/* Default visual (icon placeholder) */
.speaking__visual {
  aspect-ratio: 16/10; border-radius: var(--radius-lg);
  background: linear-gradient(135deg, rgba(0,212,255,0.08), rgba(124,58,237,0.08));
  border: 1px solid var(--border); position: relative; overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}
.speaking__icon { font-size: 5rem; opacity: 0.3; }
.speaking__mic { position:absolute; inset:0; background:radial-gradient(circle at 50% 50%,rgba(0,212,255,0.05) 0%,transparent 70%); animation:mic-pulse 3s ease-in-out infinite; }
@keyframes mic-pulse { 0%,100%{opacity:.5} 50%{opacity:1} }

/* When real photo provided */
.speaking__visual--photo {
  padding: 0; overflow: hidden;
  background: var(--bg-2);
}
.speaking__visual--photo img {
  width: 100%; height: 100%; object-fit: cover;
  object-position: center;
  display: block;
  transition: transform 0.6s ease;
}
.speaking__visual--photo:hover img { transform: scale(1.03); }

/* === BOOK / ESCRITURA === */
.book { padding: 70px 0; }
.book__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: center; }

/* Default cover (icon placeholder) */
.book__cover {
  aspect-ratio: 3/4; border-radius: var(--radius);
  background: linear-gradient(135deg, var(--bg-2), var(--bg));
  border: 1px solid var(--border); overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}
.book__cover-inner { text-align:center; padding:40px; background:linear-gradient(135deg,rgba(0,212,255,0.05),rgba(124,58,237,0.05)); border-radius:8px; width:75%; aspect-ratio:2/3; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px; border:1px solid var(--border); }
.book__icon { font-size: 3rem; }
.book__cover-title { font-family:var(--ff-d); font-size:1.3rem; color:var(--white); font-weight:700; }
.book__cover-author { font-size:.8rem; color:var(--text-sec); }

/* When real photo provided */
.book__cover--photo {
  padding: 0; background: var(--bg-2);
}
.book__cover--photo img {
  width: 100%; height: 100%; object-fit: cover;
  object-position: center top;
  display: block;
  transition: transform 0.6s ease;
}
.book__cover--photo:hover img { transform: scale(1.03); }

/* === BLOG HOME === */
.blog-home { padding: 70px 0; }
.blog-home__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; margin-top: 44px; }
.blog-card { border-radius: var(--radius); overflow: hidden; background: var(--bg-card); border: 1px solid var(--border); transition: var(--transition); display: flex; flex-direction: column; }
.blog-card:hover { transform: translateY(-6px); border-color: var(--accent); box-shadow: 0 20px 40px rgba(0,0,0,0.3); }
.blog-card__img { aspect-ratio: 16/9; background: linear-gradient(135deg,var(--bg-2),rgba(0,212,255,0.05)); position: relative; overflow: hidden; }
.blog-card__img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s; }
.blog-card:hover .blog-card__img img { transform: scale(1.05); }
.blog-card__cat { position:absolute; top:14px; left:14px; padding:4px 12px; border-radius:100px; font-size:.66rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; background:var(--accent); color:var(--bg); }
.blog-card__body { padding: 22px; flex:1; display:flex; flex-direction:column; gap:10px; }
.blog-card__meta { font-size:.74rem; color:var(--text-dim); display:flex; gap:14px; }
.blog-card__title { font-family:var(--ff-d); font-size:1.08rem; color:var(--white); font-weight:600; line-height:1.4; flex:1; }
.blog-card__title a:hover { color: var(--accent); }
.blog-card__excerpt { font-size:.87rem; color:var(--text-sec); line-height:1.6; }
.blog-card__link { display:inline-flex; align-items:center; gap:6px; font-size:.82rem; color:var(--accent); font-weight:500; margin-top:auto; transition:gap .3s; }
.blog-card__link:hover { gap: 10px; }

/* === CLOSING === */
.closing { padding: 84px 0; text-align:center; position:relative; overflow:hidden; }
.closing::before { content:''; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:500px; height:500px; border-radius:50%; background:radial-gradient(circle,rgba(0,212,255,0.035) 0%,transparent 70%); pointer-events:none; }
.closing__quote { font-family:var(--ff-d); font-size:clamp(1.4rem,3.5vw,2.5rem); color:var(--white); font-weight:700; line-height:1.35; max-width:720px; margin:0 auto 20px; }
.closing__quote em { color:var(--accent); font-style:italic; }
.closing__line { width:56px; height:1px; background:var(--accent); margin:0 auto 20px; }
.closing__author { font-size:.83rem; color:var(--text-dim); letter-spacing:.1em; text-transform:uppercase; }

/* === CONTACT === */
.contact { padding: 70px 0; }
.contact__grid { display:grid; grid-template-columns:1fr 1fr; gap:52px; }
.contact__form-wrap { padding:36px; border-radius:var(--radius-lg); background:var(--bg-card); border:1px solid var(--border); }
.contact__form-title { font-family:var(--ff-d); font-size:1.4rem; color:var(--white); font-weight:600; margin-bottom:28px; }
.form-group { margin-bottom:18px; }
.form-group label { display:block; font-size:.78rem; color:var(--text-sec); margin-bottom:7px; font-weight:500; letter-spacing:.05em; }
.form-group input,
.form-group textarea { width:100%; padding:12px 16px; border-radius:10px; background:rgba(255,255,255,0.04); border:1px solid var(--border); color:var(--text); font-family:var(--ff-b); font-size:.93rem; transition:var(--transition); outline:none; }
.form-group input:focus,
.form-group textarea:focus { border-color:var(--accent); background:rgba(0,212,255,0.04); }
.form-group textarea { height:120px; resize:none; }
.form-group input::placeholder,
.form-group textarea::placeholder { color:var(--text-dim); }

/* === SOCIAL CARDS (animated) === */
.social-cards { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.social-card { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; padding:28px 18px; border-radius:var(--radius); border:1px solid var(--border); transition:var(--transition); position:relative; overflow:hidden; text-align:center; background:var(--bg-card); cursor:pointer; }
.social-card::before { content:''; position:absolute; inset:0; opacity:0; transition:opacity .4s; }
.social-card:hover { transform: translateY(-4px) scale(1.02); }
.social-card:hover::before { opacity: 1; }
.social-card__icon { width:50px; height:50px; border-radius:14px; display:flex; align-items:center; justify-content:center; transition:var(--transition); }
.social-card__icon svg { width:24px; height:24px; fill:currentColor; }
.social-card__name { font-weight:700; font-size:.95rem; color:var(--white); }
.social-card__user { font-size:.75rem; color:var(--text-sec); }
.social-card--linkedin::before { background:linear-gradient(135deg,rgba(0,119,181,0.15),rgba(0,119,181,0.05)); }
.social-card--linkedin .social-card__icon { background:rgba(0,119,181,0.14); color:#0077b5; }
.social-card--linkedin:hover { border-color:#0077b5; box-shadow:0 0 22px rgba(0,119,181,0.18); }
.social-card--instagram::before { background:linear-gradient(135deg,rgba(225,48,108,0.15),rgba(253,121,36,0.05)); }
.social-card--instagram .social-card__icon { background:linear-gradient(135deg,rgba(225,48,108,0.15),rgba(253,121,36,0.15)); color:#e1306c; }
.social-card--instagram:hover { border-color:#e1306c; box-shadow:0 0 22px rgba(225,48,108,0.18); }
.social-card--whatsapp::before { background:linear-gradient(135deg,rgba(37,211,102,0.15),rgba(37,211,102,0.05)); }
.social-card--whatsapp .social-card__icon { background:rgba(37,211,102,0.14); color:#25d366; }
.social-card--whatsapp:hover { border-color:#25d366; box-shadow:0 0 22px rgba(37,211,102,0.18); }
.social-card--email::before { background:linear-gradient(135deg,rgba(0,212,255,0.15),rgba(0,102,255,0.05)); }
.social-card--email .social-card__icon { background:var(--accent-dark); color:var(--accent); }
.social-card--email:hover { border-color:var(--accent); box-shadow:0 0 22px var(--accent-glow); }
.social-card__pulse { position:absolute; inset:0; border-radius:inherit; border:1px solid transparent; transition:var(--transition); }
.social-card:hover .social-card__pulse { animation:card-pulse 1.4s ease-out infinite; }
@keyframes card-pulse { 0%{border-color:var(--accent);opacity:.7;transform:scale(1)} 100%{border-color:transparent;opacity:0;transform:scale(1.05)} }

/* === FOOTER === */
.footer { padding: 48px 0 32px; border-top: 1px solid var(--border); }
.footer__inner { display:flex; flex-direction:column; align-items:center; gap:18px; text-align:center; }
.footer__logo { font-family:var(--ff-d); font-size:1.25rem; font-weight:700; color:var(--white); }
.footer__logo span { color:var(--accent); }
.footer__tagline { font-size:.83rem; color:var(--text-dim); max-width:380px; }
.footer__soc { display:flex; gap:14px; }
.footer__soc a { width:38px; height:38px; border-radius:50%; border:1px solid var(--border); display:flex; align-items:center; justify-content:center; transition:var(--transition); color:var(--text-sec); }
.footer__soc a svg { width:17px; height:17px; fill:currentColor; }
.footer__soc a:hover { border-color:var(--accent); color:var(--accent); box-shadow:0 0 10px var(--accent-glow); }
.footer__copy { font-size:.78rem; color:var(--text-dim); }
.footer__links { display:flex; gap:20px; flex-wrap:wrap; justify-content:center; }
.footer__links a { font-size:.8rem; color:var(--text-dim); }
.footer__links a:hover { color:var(--accent); }

/* === FLOATING CTA === */
.float-cta { position:fixed; bottom:28px; right:28px; z-index:999; display:flex; flex-direction:column; gap:10px; align-items:flex-end; }
.float-btn { display:flex; align-items:center; gap:10px; padding:13px 18px; border-radius:100px; font-weight:600; font-size:.83rem; cursor:pointer; border:none; box-shadow:0 4px 20px rgba(0,0,0,0.4); transition:var(--transition); text-decoration:none; }
.float-btn:hover { transform:translateY(-3px) scale(1.04); }
.float-btn svg { width:19px; height:19px; fill:currentColor; }
.float-btn--wa { background:#25d366; color:#fff; animation:float-pulse 3s ease-in-out infinite; }
.float-btn--wa:hover { background:#20c55a; animation:none; }
.float-btn--contact { background:linear-gradient(135deg,var(--accent),var(--accent-2)); color:var(--bg); }
@keyframes float-pulse { 0%,100%{box-shadow:0 4px 20px rgba(0,0,0,0.4),0 0 0 0 rgba(37,211,102,0.4)} 50%{box-shadow:0 4px 20px rgba(0,0,0,0.4),0 0 0 10px rgba(37,211,102,0)} }

/* === CATEGORY BADGES === */
.news-cat { display:inline-block; padding:3px 10px; border-radius:100px; font-size:.65rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; background:var(--accent); color:var(--bg); margin-bottom:10px; }
.news-cat.cat-sistemas { background:var(--accent); }
.news-cat.cat-ia { background:var(--purple); }
.news-cat.cat-org { background:var(--accent-2); }
.news-cat.cat-decision { background:#f59e0b; color:#000; }
.news-cat.cat-general { background:rgba(255,255,255,0.15); color:var(--white); }

/* === PUBLICATIONS PAGE === */
.pub-hero { padding:140px 0 64px; background:var(--bg-2); text-align:center; border-bottom:1px solid var(--border); }
.pub-hero__label { margin-bottom:20px; }
.pub-hero__title { font-family:var(--ff-d); font-size:clamp(2.4rem,5vw,3.8rem); font-weight:800; color:var(--white); margin-bottom:16px; }
.pub-hero__desc { font-size:1rem; color:var(--text-sec); max-width:580px; margin:0 auto; }
.pub-filter { padding:32px 0; border-bottom:1px solid var(--border); }
.pub-filter__inner { display:flex; gap:10px; flex-wrap:wrap; justify-content:center; }
.pub-filter__btn { padding:7px 18px; border-radius:100px; font-size:.78rem; font-weight:500; letter-spacing:.05em; background:var(--bg-card); border:1px solid var(--border); color:var(--text-sec); cursor:pointer; transition:var(--transition); text-decoration:none; display:inline-block; }
.pub-filter__btn:hover, .pub-filter__btn.active { background:var(--accent); color:var(--bg); border-color:var(--accent); }
.pub-featured { padding:52px 0 0; }
.pub-featured__title { font-size:.73rem; letter-spacing:.15em; text-transform:uppercase; color:var(--text-dim); margin-bottom:24px; display:flex; align-items:center; gap:16px; }
.pub-featured__title::after { content:''; flex:1; height:1px; background:var(--border); }
.newspaper-grid { display:grid; grid-template-columns:2fr 1fr; grid-template-rows:auto auto; gap:20px; }
.news-main { grid-row:1/3; border-radius:var(--radius); overflow:hidden; background:var(--bg-card); border:1px solid var(--border); transition:var(--transition); }
.news-main:hover { border-color:var(--accent); box-shadow:0 20px 40px rgba(0,0,0,0.3); transform:translateY(-4px); }
.news-main .news-img { aspect-ratio:16/9; overflow:hidden; position:relative; }
.news-main .news-img img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.news-main:hover .news-img img { transform:scale(1.04); }
.news-main .news-body { padding:24px; }
.news-side { border-radius:var(--radius); overflow:hidden; background:var(--bg-card); border:1px solid var(--border); transition:var(--transition); display:flex; flex-direction:column; }
.news-side:hover { border-color:var(--accent); box-shadow:0 10px 30px rgba(0,0,0,0.2); transform:translateY(-3px); }
.news-side .news-img { aspect-ratio:16/9; overflow:hidden; position:relative; }
.news-side .news-img img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.news-side:hover .news-img img { transform:scale(1.04); }
.news-side .news-body { padding:18px; flex:1; }
.news-title { font-family:var(--ff-d); font-weight:700; color:var(--white); line-height:1.3; margin-bottom:8px; }
.news-main .news-title { font-size:1.5rem; }
.news-side .news-title { font-size:1rem; }
.news-title a:hover { color:var(--accent); }
.news-excerpt { font-size:.88rem; color:var(--text-sec); line-height:1.6; margin-bottom:14px; }
.news-meta { font-size:.73rem; color:var(--text-dim); display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.news-meta .dot { width:3px; height:3px; border-radius:50%; background:var(--text-dim); }
.news-read { display:inline-flex; align-items:center; gap:6px; font-size:.8rem; color:var(--accent); font-weight:500; margin-top:14px; }
.news-read:hover { gap: 10px; }
.pub-all { padding:52px 0; }
.pub-all__title { font-size:.73rem; letter-spacing:.15em; text-transform:uppercase; color:var(--text-dim); margin-bottom:24px; display:flex; align-items:center; gap:16px; }
.pub-all__title::after { content:''; flex:1; height:1px; background:var(--border); }
.pub-all__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.pub-card { border-radius:var(--radius); overflow:hidden; background:var(--bg-card); border:1px solid var(--border); transition:var(--transition); display:flex; flex-direction:column; }
.pub-card:hover { border-color:var(--accent); box-shadow:0 12px 30px rgba(0,0,0,0.2); transform:translateY(-4px); }
.pub-card .news-img { aspect-ratio:16/9; overflow:hidden; position:relative; }
.pub-card .news-img img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.pub-card:hover .news-img img { transform:scale(1.04); }
.pub-card .news-body { padding:18px; flex:1; display:flex; flex-direction:column; }
.pub-card .news-title { font-size:1rem; margin-bottom:6px; flex:1; }
.pub-card .news-excerpt { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }

/* === SINGLE POST === */
.single-hero { padding:140px 0 64px; text-align:center; border-bottom:1px solid var(--border); }
.single-hero__cat { margin-bottom:20px; }
.single-hero__title { font-family:var(--ff-d); font-size:clamp(1.9rem,4.5vw,3.2rem); font-weight:800; color:var(--white); line-height:1.15; max-width:780px; margin:0 auto 22px; }
.single-hero__meta { font-size:.8rem; color:var(--text-dim); display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.single-hero__img { margin:52px auto 0; max-width:840px; border-radius:var(--radius-lg); overflow:hidden; }
.single-hero__img img { width:100%; height:auto; }
.single-content { max-width:720px; margin:52px auto; padding:0 24px; }
.single-content p { margin-bottom:22px; color:var(--text-sec); line-height:1.9; font-size:1.03rem; }
.single-content h2 { font-family:var(--ff-d); color:var(--white); font-size:1.7rem; margin:44px 0 14px; }
.single-content h3 { font-family:var(--ff-d); color:var(--white); font-size:1.25rem; margin:32px 0 10px; }
.single-content blockquote { border-left:3px solid var(--accent); padding-left:22px; margin:28px 0; font-style:italic; color:var(--text-sec); font-size:1.06rem; }
.single-content ul, .single-content ol { padding-left:22px; margin-bottom:22px; color:var(--text-sec); }
.single-content li { margin-bottom:8px; }
.single-content a { color:var(--accent); }
.single-content img { border-radius:var(--radius); margin:28px 0; }
.single-content code { background:var(--bg-card); border:1px solid var(--border); border-radius:6px; padding:2px 7px; font-size:.88em; color:var(--accent); }
.single-content pre { background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius); padding:22px; overflow-x:auto; margin:22px 0; }
.single-back { max-width:720px; margin:0 auto 52px; padding:0 24px; }

/* === PAGINATION === */
.wp-pagenavi, .pagination { display:flex; gap:8px; justify-content:center; padding:52px 0 0; flex-wrap:wrap; }
.wp-pagenavi a, .wp-pagenavi span,
.pagination a, .pagination span { min-width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center; border-radius:8px; border:1px solid var(--border); color:var(--text-sec); font-size:.83rem; transition:var(--transition); padding:0 12px; }
.wp-pagenavi a:hover, .wp-pagenavi .current,
.pagination a:hover, .pagination .current { border-color:var(--accent); color:var(--accent); background:var(--accent-dark); }

/* === GUTENBERG === */
.wp-block-quote { border-left:3px solid var(--accent); padding-left:22px; font-style:italic; color:var(--text-sec); }
.wp-block-image img { border-radius:var(--radius); }
.wp-block-separator { border:none; border-top:1px solid var(--border); margin:36px 0; }
.wp-block-button__link { background:linear-gradient(135deg,var(--accent),var(--accent-2)) !important; color:var(--bg) !important; border-radius:100px !important; padding:12px 26px !important; }

/* === SCROLL REVEAL === */
.reveal { opacity:0; transform:translateY(36px); transition:opacity .75s cubic-bezier(0.4,0,0.2,1), transform .75s cubic-bezier(0.4,0,0.2,1); }
.reveal.visible { opacity:1 !important; transform:translateY(0) !important; }
.reveal-fade { opacity:0; transition:opacity 1s ease; }
.reveal-fade.visible { opacity:1 !important; }

/* Safety: if JS stalls, show everything after 3.5s */
.reveal { animation: reveal-auto 0.01s 3.5s forwards; }
@keyframes reveal-auto { to { opacity:1; transform:translateY(0); } }
.reveal.visible { animation:none; }

/* === RESPONSIVE === */
@media (min-width: 769px) {
  .nav__links { display: flex !important; position: static; background: transparent; flex-direction: row; }
}
@media (max-width: 1024px) {
  .values__grid { grid-template-columns:repeat(2,1fr); }
  .newspaper-grid { grid-template-columns:1fr; }
  .news-main { grid-row:auto; }
}
@media (max-width: 768px) {
  :root { --nav-h: 60px; }
  .hero { padding-top: calc(60px + 56px); }
  .section { padding: 60px 0; }
  .concept { padding: 52px 0; }
  .tea, .ai-section, .values, .about, .speaking, .book, .blog-home, .contact { padding: 56px 0; }
  .closing { padding: 60px 0; }
  #mainNav { padding: 0 20px; }
  .nav__links { display:none; position:fixed; inset:0; top:0; background:rgba(5,7,15,0.98); flex-direction:column; justify-content:center; align-items:center; gap:32px; z-index:999; backdrop-filter:blur(20px); }
  .nav__links.active { display:flex; }
  .nav__links a { font-size:1.1rem; }
  .nav__burger { display:flex; z-index:1001; }
  .nav__burger.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
  .nav__burger.open span:nth-child(2) { opacity:0; }
  .nav__burger.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
  .concept__grid, .ai__grid, .about__grid, .speaking__grid, .book__grid, .contact__grid { grid-template-columns:1fr; }
  .about__badge-float { right:0; }
  .blog-home__grid, .pub-all__grid { grid-template-columns:1fr; }
  .values__grid { grid-template-columns:1fr; }
  .hero__title { font-size:clamp(2.6rem,12vw,4.5rem); }
  .float-btn span { display:none; }
  .float-cta { bottom:18px; right:18px; gap:8px; }
  .social-cards { grid-template-columns:1fr 1fr; }
  .hero__dots { display:none; }
  .hero__video-bg video { opacity: 0.2; }
  .about__img { aspect-ratio:4/3; }
}
@media (max-width: 480px) {
  .social-cards { grid-template-columns:1fr; }
  .hero__btns { flex-direction:column; align-items:center; }
  .pub-all__grid { grid-template-columns:1fr; }
}
