/*
Theme Name: Chile Desafío
Theme URI: https://chile-desafio.local
Author: Boom Studio
Description: Tema a medida para Chile Desafío — desafíos deportivos virtuales.
Version: 1.0
Text Domain: chile-desafio
*/

:root {
  --pine-950:#08150F; --pine-900:#0C1B14; --pine-800:#102A20; --pine-700:#143A2C; --pine-500:#1E5C48;
  --gold:#E0B84E; --gold-deep:#B8862A; --gold-soft:rgba(224,184,78,.14);
  --paper:#ECEEE5; --surface:#FBFBF6; --ink:#14201A; --muted:#57665C;
  --line:rgba(20,32,26,.12); --line-d:rgba(236,238,229,.13);
  --on-dark:#EAF1E8; --on-dark-mut:#9DB2A6; --maxw:1160px; --tile:#171d1a;
  --img-logo: url('assets/img/logo.png');
  --img-torres: url('assets/img/torres.jpg');
  --img-run: url('assets/img/run.jpg');
  --img-medal: url('assets/img/medal-santiago.jpg');
  --img-medal-front: url('assets/img/medal-santiago-front.jpg');
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--surface); color:var(--ink);
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased; }
.mono { font-family:ui-monospace,"Cascadia Code","SF Mono",Menlo,Consolas,monospace; }
.wrap { max-width:var(--maxw); margin:0 auto; padding:0 24px; }
a { color:inherit; text-decoration:none; }
h1,h2,h3,h4 { text-wrap:balance; }
.display { font-weight:800; text-transform:uppercase; letter-spacing:-.02em; line-height:.96; }
.eyebrow { font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; font-weight:700; color:var(--gold-deep); }
img { max-width:100%; display:block; }

/* NAV */
nav.site-nav { position:sticky; top:0; z-index:50; background:rgba(8,21,15,.82); backdrop-filter:blur(10px); border-bottom:1px solid var(--line-d); color:var(--on-dark); }
.nav-in { display:flex; align-items:center; gap:28px; height:66px; }
.brand { display:flex; align-items:center; gap:10px; font-weight:800; letter-spacing:.03em; }
.badge { width:40px; height:40px; background:var(--img-logo) center/contain no-repeat; flex:0 0 auto; }
.nav-links { display:flex; gap:22px; margin-left:auto; font-size:.9rem; color:var(--on-dark-mut); }
.nav-links a:hover { color:var(--on-dark); }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; font-weight:700; cursor:pointer; padding:11px 20px; border-radius:999px; border:0; font-size:.92rem; transition:transform .15s ease, box-shadow .15s ease, background .15s ease; }
.btn-gold { background:linear-gradient(180deg,var(--gold),var(--gold-deep)); color:#1a1405; box-shadow:0 6px 20px -8px rgba(224,184,78,.7); }
.btn-gold:hover { transform:translateY(-1px); box-shadow:0 10px 26px -8px rgba(224,184,78,.85); }
.btn-ghost { background:transparent; color:var(--on-dark); border:1px solid rgba(236,238,229,.3); }
.btn-ghost:hover { background:rgba(236,238,229,.08); }
.btn-sm { padding:9px 16px; font-size:.85rem; }

.cart-link { position:relative; font-size:1.15rem; display:inline-flex; align-items:center; text-decoration:none; line-height:1; padding:6px; }
.cart-count {
  position:absolute; top:-4px; right:-4px; min-width:17px; height:17px; padding:0 4px;
  border-radius:999px; background:var(--gold); color:#1a1405; font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:.66rem; font-weight:800; display:flex; align-items:center; justify-content:center;
}

/* HERO */
.hero { position:relative; overflow:hidden; color:var(--on-dark);
  background:linear-gradient(180deg, rgba(8,21,15,.5) 0%, rgba(8,21,15,.72) 60%, rgba(8,21,15,.94) 100%), var(--img-torres);
  background-size:cover; background-position:center 28%; }
.hero-in { position:relative; z-index:3; padding:76px 0 108px; display:grid; grid-template-columns:1.12fr .88fr; gap:44px; align-items:center; }
.hero h1 { margin:16px 0 0; font-size:clamp(2.7rem, 6.6vw, 5rem); text-shadow:0 2px 30px rgba(0,0,0,.4); }
.hero h1 em { font-style:normal; color:var(--gold); }
.hero p.lede { margin:22px 0 0; max-width:40ch; font-size:1.15rem; color:#E4EDE6; text-shadow:0 1px 12px rgba(0,0,0,.5); }
.hero-cta { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.hero-note { margin-top:20px; font-size:.85rem; color:#CBDAD0; display:flex; align-items:center; gap:10px; }
.dot { width:7px; height:7px; border-radius:50%; background:var(--gold); box-shadow:0 0 0 4px var(--gold-soft); }
.hero-medal { justify-self:center; width:min(330px,74vw); aspect-ratio:72/79; border-radius:18px;
  background:var(--img-medal) center/cover no-repeat, #14181a; border:1px solid rgba(224,184,78,.35);
  box-shadow:0 40px 80px -30px rgba(0,0,0,.85), inset 0 0 0 1px rgba(255,255,255,.05); transform:rotate(2.5deg); }

/* stat bar */
.bar { background:var(--pine-950); color:var(--on-dark); border-top:1px solid var(--line-d); }
.bar-in { display:flex; flex-wrap:wrap; justify-content:space-between; gap:18px; padding:20px 0; }
.bstat { display:flex; align-items:baseline; gap:10px; }
.bstat .n { font-weight:800; font-size:1.5rem; color:var(--gold); font-variant-numeric:tabular-nums; }
.bstat .l { font-size:.82rem; color:var(--on-dark-mut); }

section { padding:84px 0; }
.sec-head { max-width:62ch; }
.sec-head h2 { font-size:clamp(1.8rem, 3.6vw, 2.7rem); margin:12px 0 10px; }
.sec-head p { color:var(--muted); margin:0; font-size:1.05rem; }

/* how */
.steps { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:42px; }
.step { position:relative; padding-top:20px; }
.step .num { font-weight:800; color:var(--gold-deep); font-size:.8rem; letter-spacing:.1em; }
.step h3 { font-size:1.2rem; margin:12px 0 6px; }
.step p { color:var(--muted); margin:0; font-size:.95rem; }
.step::before { content:""; position:absolute; top:0; left:0; width:44px; height:3px; background:var(--gold); border-radius:3px; }

/* routes (ahora alimentado por WooCommerce real) */
.routes { padding-top:0; }
.routes-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:42px; }
.route { border-radius:16px; overflow:hidden; background:var(--surface); border:1px solid var(--line);
  box-shadow:0 1px 2px rgba(20,32,26,.05),0 14px 34px -20px rgba(20,32,26,.35);
  transition:transform .18s ease, box-shadow .18s ease; display:flex; flex-direction:column; }
.route:hover { transform:translateY(-4px); box-shadow:0 20px 44px -20px rgba(20,32,26,.5); }
.route .scene { position:relative; height:230px; background-color:var(--tile); background-size:cover; background-position:center; cursor:pointer; }
.route .scene .chip { position:absolute; top:12px; font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; font-weight:700; padding:5px 10px; border-radius:999px; backdrop-filter:blur(4px); z-index:2; }
.route .scene .region { left:12px; background:rgba(8,21,15,.6); color:#fff; }
.route .scene .dist { right:12px; background:var(--gold); color:#1a1405; font-family:ui-monospace,Menlo,Consolas,monospace; }
.route .body { padding:16px 18px 18px; display:flex; flex-direction:column; gap:12px; flex:1; }
.route h3 { margin:0; font-size:1.22rem; letter-spacing:-.01em; }
.route .meta { display:flex; gap:16px; color:var(--muted); font-size:.82rem; }
.route .meta b { color:var(--ink); font-weight:700; }
.route .foot { display:flex; align-items:center; justify-content:space-between; margin-top:auto; }
.price { font-weight:800; }
.price small { color:var(--muted); font-weight:600; font-size:.7rem; display:block; letter-spacing:.04em; }

/* feature medal */
.feature { background:linear-gradient(160deg,var(--pine-800),var(--pine-950)); color:var(--on-dark); }
.feature-in { display:grid; grid-template-columns:.95fr 1.05fr; gap:52px; align-items:center; }
.feature .shot { border-radius:18px; overflow:hidden; border:1px solid rgba(224,184,78,.28); box-shadow:0 40px 80px -34px rgba(0,0,0,.8); background:var(--img-medal-front) center/cover no-repeat,#14181a; aspect-ratio:1/1; }
.feature h2 { font-size:clamp(1.9rem, 3.6vw, 2.8rem); margin:12px 0 14px; }
.feature p { color:#C7D6CC; margin:0 0 18px; max-width:46ch; }
.feature ul { list-style:none; padding:0; margin:0 0 26px; display:flex; flex-direction:column; gap:12px; }
.feature li { padding-left:28px; position:relative; }
.feature li::before { content:""; position:absolute; left:0; top:.5em; width:9px; height:9px; border-radius:50%; background:var(--gold); box-shadow:0 0 0 4px var(--gold-soft); }

/* community */
.brands { display:flex; flex-wrap:wrap; gap:12px; margin-top:34px; }
.brands .chip { padding:12px 20px; border:1px solid var(--line); border-radius:12px; background:var(--surface); font-weight:700; color:var(--muted); letter-spacing:.02em; }
.quotes { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:42px; }
.quote { background:var(--paper); border:1px solid var(--line); border-radius:14px; padding:22px; }
.quote p { margin:0 0 14px; font-size:1.02rem; }
.quote .who { font-size:.85rem; color:var(--muted); }
.quote .who b { color:var(--ink); }
.stars { color:var(--gold-deep); letter-spacing:2px; font-size:.9rem; }

/* CTA */
.cta { position:relative; text-align:center; color:var(--on-dark);
  background:linear-gradient(180deg, rgba(8,21,15,.82), rgba(8,21,15,.92)), var(--img-run);
  background-size:cover; background-position:center 40%; }
.cta h2 { font-size:clamp(2rem, 4.6vw, 3.4rem); margin:10px auto 16px; max-width:16ch; }
.cta p { color:#D3E0D6; max-width:48ch; margin:0 auto 30px; }

footer.site-foot { background:var(--pine-950); color:var(--on-dark-mut); border-top:1px solid var(--line-d); }
.foot-in { display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:30px; padding:56px 0 28px; }
footer h4 { color:var(--on-dark); font-size:.82rem; letter-spacing:.12em; text-transform:uppercase; margin:0 0 14px; }
footer a { display:block; padding:5px 0; font-size:.9rem; }
footer a:hover { color:var(--on-dark); }
.foot-bottom { border-top:1px solid var(--line-d); padding:18px 0 40px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:.8rem; }

/* barra flotante */
.floatcta { position:fixed; left:50%; bottom:22px; transform:translate(-50%,24px); z-index:80; display:flex; gap:10px; padding:10px; background:rgba(8,21,15,.85); backdrop-filter:blur(10px); border:1px solid rgba(224,184,78,.32); border-radius:999px; box-shadow:0 20px 50px -18px rgba(0,0,0,.65); opacity:0; pointer-events:none; transition:opacity .3s ease, transform .3s ease; }
.floatcta.show { opacity:1; transform:translate(-50%,0); pointer-events:auto; }

@media (max-width:900px){
  .hero-in { grid-template-columns:1fr; }
  .hero-medal { order:-1; width:min(260px,66vw); }
  .feature-in { grid-template-columns:1fr; }
  .steps { grid-template-columns:1fr 1fr; }
  .routes-grid, .quotes { grid-template-columns:1fr 1fr; }
  .foot-in { grid-template-columns:1fr 1fr; }
  .nav-links { display:none; }
  /* Al ocultar .nav-links se pierde su margin-left:auto (era lo que empujaba
     el grupo nav-links+botón a la derecha) — el botón "Inscríbete" hereda
     ese auto-margin para no quedar pegado al logo. */
  .nav-in .btn { margin-left:auto; }
}
@media (max-width:560px){
  .routes-grid, .quotes, .steps, .foot-in { grid-template-columns:1fr; }
  .floatcta { left:12px; right:12px; bottom:12px; transform:translateY(24px); justify-content:center; border-radius:16px; }
  .floatcta.show { transform:translateY(0); }
  .floatcta .btn { flex:1; }
}
@media (prefers-reduced-motion:no-preference){
  .hero-in > div > *, .hero-medal { animation:up .7s cubic-bezier(.2,.7,.2,1) both; }
  .hero-medal { animation-delay:.15s; animation-name:upmedal; }
  @keyframes up { from{opacity:0; transform:translateY(16px);} to{opacity:1; transform:none;} }
  @keyframes upmedal { from{opacity:0; transform:translateY(16px) rotate(2.5deg);} to{opacity:1; transform:translateY(0) rotate(2.5deg);} }
}

/* WooCommerce: que el catálogo/carrito por defecto no desentone mientras llega el diseño a medida */
.woocommerce ul.products li.product .price { color: var(--gold-deep); font-weight: 800; }
.woocommerce a.button, .woocommerce button.button, .woocommerce #respond input#submit {
  background: linear-gradient(180deg,var(--gold),var(--gold-deep)); color:#1a1405; border-radius:999px; font-weight:700;
}
