/*
Theme Name: BlogHash Fiestas de Octubre
Template: bloghash
Description: Tema hijo de BlogHash con portada personalizada dinámica para fiestasdeoctubre.mx
Version: 1.5
Text Domain: bloghash-fiestasdeoctubre
*/

:root{
  --fo-magenta:#F43676;
  --fo-magenta-dark:#c8225a;
  --fo-gold:#f7b733;
  --fo-purple:#7c3aed;
  --fo-purple-dark:#5b21b6;
  --fo-ink:#2b1c22;
  --fo-body:#6b5763;
  --fo-cream:#fff8f2;
  --fo-cream-2:#fff1e6;
  --fo-card:#ffffff;
  --fo-line:#f3e3ec;
}

/* El tema padre limita el ancho de <body> globalmente (layout "boxed").
   Estas reglas lo anulan SOLO en la portada (body.fo-body), sin tocar
   el resto del sitio. */
body.fo-body{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  overflow-x:hidden;
  background:var(--fo-cream);
}
body.fo-body *{ box-sizing:border-box; }
body.fo-body .fo-header,
body.fo-body .fo-front,
body.fo-body .fo-footer{
  width:100%;
  max-width:none;
}
.fo-front{ background:var(--fo-cream); }
.fo-front h1, .fo-front h2, .fo-front h3{ font-family:inherit; }

/* ===== Header propio (solo portada) ===== */
.fo-header{
  background:#fff;
  border-bottom:1px solid var(--fo-line);
  position:sticky; top:0; z-index:50;
}
.fo-header__inner{
  max-width:1200px; margin:0 auto; padding:16px 24px;
  display:flex; align-items:center; gap:28px;
}
.fo-header__logo{
  font-size:20px; font-weight:900; color:var(--fo-ink); text-decoration:none; margin-right:auto;
}
.fo-header__logo em{ font-style:normal; color:var(--fo-magenta); }
.fo-header__nav{ display:flex; gap:24px; }
.fo-header__nav a{
  color:var(--fo-ink); text-decoration:none; font-weight:600; font-size:14.5px;
}
.fo-header__nav a:hover{ color:var(--fo-magenta); }
.fo-header__cta{ padding:10px 22px; font-size:14px; }
@media (max-width:760px){
  .fo-header__nav{ display:none; }
  .fo-header__inner{ padding:14px 18px; }
}

/* ===== Footer propio (solo portada) ===== */
.fo-footer{ background:var(--fo-ink); color:#fff; padding:44px 24px 30px; }
.fo-footer__inner{ max-width:1200px; margin:0 auto; text-align:center; }
.fo-footer__logo{ font-size:19px; font-weight:900; }
.fo-footer__logo em{ font-style:normal; color:var(--fo-magenta); }
.fo-footer__nav{ display:flex; justify-content:center; gap:22px; margin:18px 0; flex-wrap:wrap; }
.fo-footer__nav a{ color:#fff; opacity:.8; text-decoration:none; font-size:14px; }
.fo-footer__nav a:hover{ opacity:1; }
.fo-footer__copy{ font-size:12.5px; opacity:.6; margin:0; }

/* ===== Widgets heredados del tema (p.ej. anuncios en la sidebar) ===== */
.fo-widgets{ max-width:1120px; margin:0 auto; padding:20px 24px 0; }

/* ===== Top eyebrow bar ===== */
.fo-topbar{
  background:var(--fo-ink);
  color:#fff;
  text-align:center;
  font-size:13px;
  letter-spacing:.06em;
  padding:8px 12px;
}

/* ===== Hero ===== */
.fo-hero{
  position:relative;
  overflow:hidden;
  padding:0 24px 40px;
}
.fo-hero__bg{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  z-index:0;
  opacity:.9;
}
.fo-hero__inner{
  position:relative; z-index:1;
  max-width:760px;
  margin:0 auto;
  text-align:center;
  padding-top:64px;
}
.fo-hero__tags{
  display:flex; justify-content:center; gap:10px; flex-wrap:wrap;
  font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:var(--fo-magenta-dark);
  margin-bottom:18px;
}
.fo-hero__tags span::after{ content:"·"; margin-left:10px; color:var(--fo-gold); }
.fo-hero__tags span:last-child::after{ content:""; }
.fo-hero h1{
  font-size:clamp(38px,6vw,64px);
  line-height:1.02;
  font-weight:900;
  margin:0 0 6px;
  color:var(--fo-ink);
}
.fo-hero h1 em{
  font-style:normal;
  background:linear-gradient(90deg, var(--fo-magenta), var(--fo-purple));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.fo-hero__sub{
  font-size:18px;
  color:var(--fo-body);
  margin:10px 0 28px;
}
.fo-hero__cta{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-bottom:34px; }

.fo-facts{
  display:flex; flex-wrap:wrap; justify-content:center; gap:28px;
  padding:20px 0 0;
  border-top:1px solid var(--fo-line);
}
.fo-fact{ display:flex; align-items:center; gap:8px; font-size:13px; font-weight:700; color:var(--fo-ink); }
.fo-fact svg{ width:20px; height:20px; color:var(--fo-magenta); flex:none; }

.fo-btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:14px 26px;
  border-radius:999px;
  font-weight:700;
  text-decoration:none;
  font-size:15px;
  transition:transform .15s ease, box-shadow .15s ease;
}
.fo-btn:hover{ transform:translateY(-2px); }
.fo-btn--solid{ background:var(--fo-magenta); color:#fff; box-shadow:0 10px 24px rgba(244,54,118,.28); }
.fo-btn--outline{ background:#fff; color:var(--fo-ink); border:2px solid var(--fo-line); }

/* ===== Secciones venue (Palenque / Auditorio) — fondo de color plano, sin imágenes de fondo ===== */
.fo-venue{ padding:64px 24px; }
.fo-venue--pink{ background:var(--fo-cream-2); }
.fo-venue--purple{ background:#f2ecff; }
.fo-venue__inner{ max-width:1180px; margin:0 auto; }
.fo-venue__head{ text-align:center; max-width:640px; margin:0 auto 40px; }
.fo-venue__eyebrow{
  display:inline-block; font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
  padding:5px 12px; border-radius:999px; margin-bottom:14px;
}
.fo-venue--pink .fo-venue__eyebrow{ background:rgba(244,54,118,.12); color:var(--fo-magenta-dark); }
.fo-venue--purple .fo-venue__eyebrow{ background:rgba(124,58,237,.12); color:var(--fo-purple-dark); }
.fo-venue__head h2{ font-size:clamp(40px,6vw,68px); font-weight:900; margin:0 0 10px; line-height:1; color:var(--fo-ink); }
.fo-venue__head p{ color:var(--fo-body); font-size:16px; line-height:1.6; margin:0; }

/* grid de artistas, 4 columnas */
.fo-artist-grid{
  display:grid; grid-template-columns:repeat(4, 1fr); gap:22px;
}
.fo-artist-card{
  display:block; text-decoration:none; color:inherit;
  background:var(--fo-card);
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 2px 10px rgba(43,28,34,.06);
  transition:transform .15s ease, box-shadow .15s ease;
}
.fo-artist-card:hover{ transform:translateY(-4px); box-shadow:0 12px 26px rgba(43,28,34,.14); }
.fo-artist-card__img{
  width:100%; aspect-ratio:1/1; object-fit:cover; display:block;
  background:linear-gradient(135deg,var(--fo-line),#fff);
}
.fo-artist-card__body{ padding:14px 16px 18px; text-align:center; }
.fo-artist-card__name{ font-weight:800; font-size:15.5px; color:var(--fo-ink); margin:0 0 4px; }
.fo-artist-card__date{ font-size:13px; color:var(--fo-body); margin:0 0 10px; }
.fo-artist-card__cta{
  display:inline-block; font-size:12.5px; font-weight:700; padding:7px 14px; border-radius:999px; color:#fff;
}
.fo-venue--pink .fo-artist-card__cta{ background:var(--fo-magenta); }
.fo-venue--purple .fo-artist-card__cta{ background:var(--fo-purple); }

.fo-venue__more{
  display:block; text-align:center; margin-top:32px; font-weight:700; font-size:14.5px; text-decoration:none;
}
.fo-venue--pink .fo-venue__more{ color:var(--fo-magenta-dark); }
.fo-venue--purple .fo-venue__more{ color:var(--fo-purple-dark); }
.fo-empty{ color:var(--fo-body); font-style:italic; font-size:14px; text-align:center; grid-column:1/-1; }

/* ===== Ver más artistas (sin JS, <details>/<summary>) ===== */
.fo-more{ margin-top:22px; }
.fo-more__toggle{
  list-style:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center; gap:8px;
  max-width:260px; margin:0 auto;
  padding:12px 24px; border-radius:999px;
  font-weight:700; font-size:14.5px;
  background:#fff; border:2px solid var(--fo-line);
  color:var(--fo-ink);
}
.fo-more__toggle::-webkit-details-marker{ display:none; }
.fo-more__toggle::after{ content:"↓"; transition:transform .15s ease; }
.fo-more[open] .fo-more__toggle::after{ transform:rotate(180deg); }
.fo-more[open] .fo-more__toggle{ margin-bottom:22px; }
.fo-artist-grid--nested{ margin:0; }

@media (max-width:900px){
  .fo-artist-grid{ grid-template-columns:repeat(2, 1fr); }
}
@media (max-width:480px){
  .fo-artist-grid{ grid-template-columns:1fr; }
}

/* ===== Atracciones ===== */
.fo-section{ max-width:1120px; margin:0 auto; padding:56px 24px; }
.fo-section__head{ text-align:center; max-width:560px; margin:0 auto 36px; }
.fo-section__head h2{ font-size:clamp(26px,3.4vw,36px); font-weight:900; color:var(--fo-ink); margin:0 0 8px; }
.fo-section__head p{ color:var(--fo-body); font-size:15.5px; margin:0; }

.fo-attr-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:20px; }
.fo-attr{
  background:var(--fo-card); border:1px solid var(--fo-line); border-radius:18px;
  padding:26px 22px; text-align:left;
}
.fo-attr__icon{
  width:48px; height:48px; border-radius:14px; display:flex; align-items:center; justify-content:center;
  margin-bottom:16px; color:#fff;
}
.fo-attr__icon svg{ width:24px; height:24px; }
.fo-attr:nth-child(4n+1) .fo-attr__icon{ background:var(--fo-magenta); }
.fo-attr:nth-child(4n+2) .fo-attr__icon{ background:var(--fo-gold); }
.fo-attr:nth-child(4n+3) .fo-attr__icon{ background:var(--fo-purple); }
.fo-attr:nth-child(4n+4) .fo-attr__icon{ background:#22b8a0; }
.fo-attr h3{ font-size:16.5px; font-weight:800; color:var(--fo-ink); margin:0 0 6px; }
.fo-attr p{ font-size:14px; color:var(--fo-body); margin:0; line-height:1.5; }

/* ===== Información (FAQ) ===== */
.fo-faq{ background:var(--fo-cream-2); }
.fo-faq__wrap{ max-width:760px; margin:0 auto; display:flex; flex-direction:column; gap:10px; }
.fo-faq details{
  background:var(--fo-card); border:1px solid var(--fo-line); border-radius:14px; padding:4px 20px;
}
.fo-faq summary{
  cursor:pointer; list-style:none; padding:16px 0; font-weight:700; color:var(--fo-ink); font-size:15.5px;
  display:flex; justify-content:space-between; align-items:center; gap:12px;
}
.fo-faq summary::-webkit-details-marker{ display:none; }
.fo-faq summary::after{ content:"+"; font-size:22px; color:var(--fo-magenta); font-weight:400; }
.fo-faq details[open] summary::after{ content:"–"; }
.fo-faq__a{ margin:0 0 18px; color:var(--fo-body); font-size:14.5px; line-height:1.6; }

/* ===== CTA banner ===== */
.fo-cta-banner{
  margin:56px auto 0; max-width:1120px;
  background:linear-gradient(120deg, var(--fo-magenta), var(--fo-purple));
  border-radius:24px; color:#fff;
  padding:40px 36px;
  display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
}
.fo-cta-banner p{ margin:0; font-size:20px; font-weight:800; }
.fo-cta-banner .fo-btn--solid{ background:#fff; color:var(--fo-magenta-dark); box-shadow:none; }

@media (max-width:600px){
  .fo-hero{ padding:0 18px 28px; }
  .fo-section, .fo-venue{ padding:40px 18px; }
}
