/*
Theme Name: Oracle Gypsies — Nordic Academy
Theme URI: https://oraclegypsies.com/
Author: Oracle Gypsies / OpenAI
Description: Tema editorial oscuro y premium para Oracle Gypsies, optimizado para Elementor y separado de la lógica del campus.
Version: 0.1.1
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 8.0
Text Domain: oracle-gypsies
License: GPL-2.0-or-later
*/

:root {
  --og-bg: #05050a;
  --og-bg-deep: #08070f;
  --og-bg-plum: #160d20;
  --og-surface: rgba(18, 14, 28, .82);
  --og-surface-2: rgba(27, 16, 37, .78);
  --og-border: rgba(213, 179, 111, .24);
  --og-gold: #d8b678;
  --og-gold-soft: #ead29a;
  --og-ivory: #f3ede2;
  --og-text: #eee9e2;
  --og-muted: #b8afba;
  --og-purple: #633477;
  --og-purple-deep: #2a1437;
  --og-purple-soft: #b97cc9;
  --og-cyan: #86d7e7;
  --og-font-display: "Cormorant Garamond", "Palatino Linotype", Palatino, Georgia, serif;
  --og-font-body: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --og-max: 1440px;
  --og-gutter: clamp(20px, 4vw, 72px);
  --og-radius: 18px;
  --og-shadow: 0 24px 80px rgba(0,0,0,.36);
}

html { scroll-behavior: smooth; background: var(--og-bg); }
body.og-theme {
  margin: 0;
  color: var(--og-text);
  background:
    radial-gradient(circle at 20% 4%, rgba(99,52,119,.16), transparent 28%),
    linear-gradient(180deg, #06070c 0%, #070710 48%, #0a0710 100%);
  font-family: var(--og-font-body);
  overflow-x: clip;
}
*, *::before, *::after { box-sizing: border-box; }
img { max-width: 100%; height: auto; }
a { color: inherit; }
::selection { background: rgba(216,182,120,.25); color: #fff; }

.og-shell { width: min(calc(100% - (var(--og-gutter) * 2)), var(--og-max)); margin-inline: auto; }
.og-page { min-height: 70vh; }
.og-section { position: relative; padding: clamp(64px, 8vw, 120px) 0; }
.og-section--tight { padding-block: clamp(38px, 5vw, 72px); }
.og-kicker, .og-eyebrow {
  margin: 0 0 14px;
  color: var(--og-gold);
  font-size: .76rem;
  font-weight: 600;
  letter-spacing: .28em;
  text-transform: uppercase;
}
.og-title, .og-section-title {
  margin: 0;
  font-family: var(--og-font-display);
  font-weight: 500;
  letter-spacing: .02em;
  line-height: .96;
  text-wrap: balance;
}
.og-title { font-size: clamp(3.15rem, 6vw, 7rem); }
.og-section-title { font-size: clamp(2.3rem, 4vw, 4.8rem); }
.og-copy { color: var(--og-muted); font-size: clamp(1rem, 1.2vw, 1.18rem); line-height: 1.72; }

.og-btn,
.elementor-button.og-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 24px;
  border: 1px solid var(--og-border);
  border-radius: 8px;
  background: rgba(8,7,15,.74);
  color: var(--og-ivory);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-decoration: none;
  text-transform: uppercase;
  transition: transform .2s ease, border-color .2s ease, background .2s ease, box-shadow .2s ease;
}
.og-btn:hover { transform: translateY(-2px); border-color: rgba(216,182,120,.68); }
.og-btn--gold { background: linear-gradient(135deg, #e4c58b, #c99b50); color: #16100b; border-color: transparent; box-shadow: 0 12px 32px rgba(216,182,120,.14); }
.og-btn--purple { background: linear-gradient(135deg, #4a245f, #271332); border-color: rgba(185,124,201,.4); }

/* Header */
.og-site-header {
  position: sticky;
  top: 0;
  z-index: 999;
  border-bottom: 1px solid rgba(255,255,255,.05);
  background: rgba(5,5,10,.78);
  backdrop-filter: blur(18px);
}
.og-header-inner { min-height: 78px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 28px; }
.og-brand { display: inline-flex; align-items: center; gap: 14px; text-decoration: none; min-width: max-content; }
.og-brand img { width: 54px; height: 54px; object-fit: contain; }
.og-brand-text strong { display: block; font-family: var(--og-font-display); font-size: 1.2rem; letter-spacing: .14em; font-weight: 500; }
.og-brand-text small { display: block; margin-top: 2px; color: var(--og-muted); font-size: .58rem; letter-spacing: .26em; text-transform: uppercase; }
.og-nav { justify-self: center; }
.og-nav ul { display: flex; align-items: center; gap: clamp(18px, 2vw, 34px); list-style: none; margin: 0; padding: 0; }
.og-nav a { color: #d9d2d8; font-size: .68rem; letter-spacing: .12em; text-decoration: none; text-transform: uppercase; }
.og-nav a:hover { color: var(--og-gold-soft); }
.og-campus-link { white-space: nowrap; }
.og-menu-toggle { display: none; width: 44px; height: 44px; border: 0; background: transparent; color: #fff; font-size: 0; }
.og-menu-toggle span, .og-menu-toggle::before, .og-menu-toggle::after { content: ""; display: block; width: 24px; height: 1.5px; margin: 5px auto; background: currentColor; transition: .2s ease; }

/* Hero */
.og-hero { position: relative; min-height: min(860px, calc(100svh - 78px)); display: grid; align-items: stretch; overflow: clip; border-bottom: 1px solid rgba(255,255,255,.06); }
.og-hero::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 18% 42%, rgba(55,32,73,.22), transparent 30%); pointer-events: none; }
.og-hero-grid { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr); min-height: inherit; }
.og-hero-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(54px, 8vh, 100px) clamp(28px, 5vw, 78px) clamp(52px, 7vh, 86px) max(var(--og-gutter), calc((100vw - var(--og-max))/2)); }
.og-hero-copy .og-title span { color: var(--og-gold); }
.og-hero-actions { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 28px; }
.og-hero-media { position: relative; min-height: 620px; overflow: hidden; background: linear-gradient(135deg, #18101f, #07080d); }
.og-hero-media > img, .og-hero-media .elementor-widget-image img { width: 100%; height: 100%; min-height: inherit; object-fit: cover; object-position: center; filter: saturate(.85) contrast(1.05); }
.og-hero-media::after { content:""; position:absolute; inset:0; background: linear-gradient(90deg, #06070c 0%, rgba(6,7,12,.72) 9%, transparent 38%), linear-gradient(180deg, rgba(8,7,14,.04), rgba(19,8,28,.22)); pointer-events:none; }
.og-runic-rail { position: absolute; left: 18px; top: 18%; z-index: 4; display: grid; gap: 10px; color: rgba(185,124,201,.48); font-family: "Noto Sans Runic", "Segoe UI Symbol", serif; font-size: 1.25rem; }

/* Values */
.og-values { border-block: 1px solid rgba(255,255,255,.06); background: rgba(7,7,14,.82); }
.og-values-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.og-value { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 18px; min-height: 96px; padding: 18px clamp(16px, 2vw, 32px); border-right: 1px solid rgba(255,255,255,.07); }
.og-value:last-child { border-right: 0; }
.og-rune { color: var(--og-gold); font-family: "Noto Sans Runic", "Segoe UI Symbol", serif; font-size: 2rem; line-height: 1; }
.og-value strong { display: block; color: var(--og-purple-soft); font-family: var(--og-font-display); font-size: 1.1rem; font-weight: 500; letter-spacing: .06em; }
.og-value small { color: var(--og-muted); }

/* Formation cards */
.og-formations { background: radial-gradient(circle at 90% 90%, rgba(79,32,97,.20), transparent 24%); }
.og-section-head { text-align: center; margin-bottom: clamp(32px, 5vw, 56px); }
.og-formations-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(18px, 2vw, 30px); }
.og-formation-card { position: relative; min-height: 500px; overflow: hidden; border: 1px solid rgba(216,182,120,.18); border-radius: var(--og-radius); background: #0e0b13; box-shadow: var(--og-shadow); }
.og-formation-card .og-card-media { position: absolute; inset: 0; }
.og-formation-card .og-card-media img { width:100%; height:100%; object-fit:cover; filter:saturate(.78) contrast(1.08); transition: transform .55s ease; }
.og-formation-card:hover .og-card-media img { transform: scale(1.035); }
.og-formation-card::after { content:""; position:absolute; inset:0; background: linear-gradient(180deg, transparent 18%, rgba(5,5,10,.25) 46%, rgba(7,6,12,.97) 82%); }
.og-card-content { position:absolute; z-index:2; left:0; right:0; bottom:0; padding: 30px; text-align:center; }
.og-level { color: var(--og-gold); font-size:.66rem; letter-spacing:.23em; text-transform:uppercase; }
.og-card-title { margin: 8px 0 8px; font-family:var(--og-font-display); font-weight:500; font-size:clamp(2rem,3vw,3rem); line-height:.95; }
.og-card-copy { color:#d3ccd5; font-family:var(--og-font-display); font-size:1.05rem; }

/* Journey / community */
.og-split { display:grid; grid-template-columns: .9fr 1.1fr; min-height: 560px; border-block: 1px solid rgba(255,255,255,.06); }
.og-split-media { min-height: 480px; background: linear-gradient(135deg,#17101f,#080810); }
.og-split-media img { width:100%; height:100%; object-fit:cover; }
.og-split-copy { display:flex; flex-direction:column; justify-content:center; padding:clamp(44px,6vw,90px); background:linear-gradient(135deg, rgba(9,8,15,.96), rgba(20,11,29,.88)); }
.og-journey { position:relative; min-height: 540px; display:flex; align-items:center; overflow:hidden; background:#0a0810; }
.og-journey-media { position:absolute; inset:0; }
.og-journey-media img { width:100%; height:100%; object-fit:cover; filter:saturate(.75) contrast(1.05); }
.og-journey::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(5,5,10,.98) 0%, rgba(5,5,10,.74) 36%, rgba(5,5,10,.18) 66%, rgba(10,6,14,.32)); }
.og-journey-content { position:relative; z-index:2; max-width:590px; padding-block:80px; }
.og-quote-band { padding: 42px 0; text-align:center; background: radial-gradient(circle at 50% 0%, rgba(68,34,94,.34), transparent 55%), #080811; border-block:1px solid rgba(255,255,255,.06); }
.og-quote-band blockquote { margin:0; font-family:var(--og-font-display); font-size:clamp(1.8rem,3vw,3.4rem); letter-spacing:.12em; }

/* CTA */
.og-campus-cta { position:relative; overflow:hidden; background: linear-gradient(135deg,#190d20,#07070c); }
.og-campus-cta::before { content:""; position:absolute; inset:0; background: radial-gradient(circle at 82% 45%, rgba(99,52,119,.34), transparent 28%); }
.og-campus-inner { position:relative; z-index:2; display:flex; align-items:center; justify-content:center; gap:16px; flex-wrap:wrap; text-align:center; }
.og-campus-inner .og-section-title { width:100%; }

/* Footer */
.og-site-footer { border-top:1px solid rgba(255,255,255,.06); background:#05050a; }
.og-footer-inner { min-height:130px; display:grid; grid-template-columns:1fr auto; align-items:center; gap:30px; }
.og-footer-nav ul { display:flex; flex-wrap:wrap; gap:18px 28px; list-style:none; padding:0; margin:0; }
.og-footer-nav a { color:var(--og-muted); text-decoration:none; font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; }

/* Elementor helper classes */
.elementor .og-fullbleed { width: 100%; max-width: none !important; }
.elementor .og-shell { width: min(calc(100% - (var(--og-gutter) * 2)), var(--og-max)); max-width: var(--og-max); }
.elementor .og-card { border:1px solid rgba(216,182,120,.18); border-radius:var(--og-radius); background:linear-gradient(180deg,rgba(20,14,29,.86),rgba(8,8,13,.92)); box-shadow:var(--og-shadow); overflow:hidden; }
.elementor .og-glass { background:rgba(8,7,15,.66); border:1px solid rgba(255,255,255,.08); backdrop-filter:blur(16px); }
.elementor .og-img-dark img { filter:saturate(.78) contrast(1.05) brightness(.78); }
.elementor .og-img-purple img { filter:saturate(.72) contrast(1.08) hue-rotate(4deg); }
.elementor .og-fade-left { position:relative; }
.elementor .og-fade-left::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg,var(--og-bg) 0%,rgba(5,5,10,.68) 15%,transparent 48%); }
.elementor .og-rune-text { font-family:"Noto Sans Runic","Segoe UI Symbol",serif; color:var(--og-gold); }

/* Legal/simple content */
.og-content { width:min(calc(100% - (var(--og-gutter)*2)), 920px); margin:0 auto; padding:72px 0 110px; }
.og-content h1,.og-content h2,.og-content h3 { font-family:var(--og-font-display); font-weight:500; }
.og-content h1 { font-size:clamp(2.8rem,5vw,5rem); }
.og-content p,.og-content li { color:#cdc6ce; line-height:1.8; }

@media (max-width: 1100px) {
  .og-header-inner { grid-template-columns: 1fr auto; }
  .og-nav, .og-campus-link { display:none; }
  .og-menu-toggle { display:block; }
  .og-site-header.is-open .og-nav { display:block; position:absolute; left:var(--og-gutter); right:var(--og-gutter); top:70px; padding:22px; border:1px solid rgba(255,255,255,.08); background:rgba(7,7,13,.97); box-shadow:var(--og-shadow); }
  .og-site-header.is-open .og-nav ul { flex-direction:column; align-items:flex-start; }
  .og-site-header.is-open .og-campus-link { display:inline-flex; position:absolute; right:calc(var(--og-gutter) + 20px); top:calc(70px + 250px); z-index:1001; }
  .og-hero { min-height:auto; }
  .og-hero-grid { grid-template-columns:1fr; }
  .og-hero-media { order:-1; min-height:46svh; }
  .og-hero-media::after { background:linear-gradient(180deg, transparent 36%, #06070c 100%); }
  .og-hero-copy { margin-top:-70px; position:relative; z-index:3; padding-top:34px; text-align:center; }
  .og-hero-actions { justify-content:center; }
  .og-values-grid { grid-template-columns:repeat(2,1fr); }
  .og-value:nth-child(2) { border-right:0; }
  .og-formations-grid { grid-template-columns:repeat(3,minmax(320px,1fr)); overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:16px; }
  .og-formation-card { scroll-snap-align:start; }
}

@media (max-width: 760px) {
  :root { --og-gutter: 20px; }
  .og-brand img { width:44px; height:44px; }
  .og-brand-text strong { font-size:.94rem; }
  .og-brand-text small { font-size:.48rem; }
  .og-hero-media { min-height:40svh; }
  .og-title { font-size:clamp(2.75rem,12vw,4.4rem); }
  .og-hero-copy { text-align:left; margin-top:-52px; padding-inline:var(--og-gutter); }
  .og-hero-actions { justify-content:flex-start; }
  .og-btn { width:100%; }
  .og-values-grid { grid-template-columns:1fr 1fr; }
  .og-value { min-height:86px; padding:14px 12px; gap:10px; }
  .og-rune { font-size:1.55rem; }
  .og-value strong { font-size:.92rem; }
  .og-value small { display:none; }
  .og-formations-grid { margin-right:calc(var(--og-gutter)*-1); padding-right:var(--og-gutter); grid-template-columns:repeat(3,86vw); gap:14px; }
  .og-formation-card { min-height:460px; }
  .og-split { grid-template-columns:1fr; }
  .og-split-media { min-height:42svh; }
  .og-split-copy { padding:46px var(--og-gutter) 58px; }
  .og-journey { min-height:680px; align-items:flex-end; }
  .og-journey::after { background:linear-gradient(180deg,rgba(5,5,10,.10),rgba(5,5,10,.92) 58%,#05050a 100%); }
  .og-journey-content { padding:240px 0 60px; }
  .og-footer-inner { grid-template-columns:1fr; padding-block:34px; }
}

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