/* ============================================
   Vibra Eventos · Home rediseñada (v2)
   Se carga SOLO en index.html, después de styles.css.
   Todo va bajo .v2 para no afectar al resto de páginas.
   ============================================ */

.v2 {
  --carbon: #26302F;
  --carbon-alt: #2F3A39;
  --tinta: #F2F0EA;
  --tinta-suave: #cbcbc6;
  --tinta-tenue: #a5a5a0;
  --acento: #F2E205;
  background: var(--carbon);
  color: var(--tinta);
  font-family: 'Archivo', system-ui, -apple-system, sans-serif;
  line-height: 1.6;
}

.v2 a { color: var(--tinta); text-decoration: none; }
.v2 h1, .v2 h2, .v2 h3 { font-weight: 400; }
.v2 .serif { font-family: 'Instrument Serif', Georgia, serif; }

/* ---------- Navegación ---------- */
.v2 nav.topnav { background: var(--carbon); }
.v2 .nav-inner { max-width: none; padding: 24px 56px; }
.v2 .logo img { height: 46px; filter: brightness(0) invert(1); }
.v2 .nav-links { gap: 38px; }
.v2 .nav-links a {
  font-family: 'Archivo', system-ui, sans-serif;
  font-size: 15.5px;
  letter-spacing: .04em;
  color: var(--tinta);
  border-bottom: 0;
}
.v2 .nav-links a:hover { color: var(--tinta-suave); border-bottom: 0; }
.v2 .nav-links a.active { border-bottom: 2px solid var(--acento); }
.v2 .hamburger span,
.v2 .hamburger span::before,
.v2 .hamburger span::after { background: var(--tinta); }

/* ---------- Apertura ---------- */
.v2 .v2-hero {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 24px;
  padding: 48px 56px 110px;
  align-items: center;
}
.v2 .v2-hero-txt {
  grid-column: span 5;
  display: flex;
  flex-direction: column;
  gap: 30px;
  min-width: 260px;
}
.v2 .v2-kicker {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 11.5px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--tinta-tenue);
}
.v2 .v2-kicker i {
  width: 9px; height: 9px; border-radius: 50%;
  background: var(--acento); display: inline-block;
}
.v2 .v2-hero h1 {
  margin: 0;
  font-family: 'Instrument Serif', Georgia, serif;
  font-size: clamp(38px, 4.4vw, 68px);
  line-height: 1;
  letter-spacing: -.02em;
}
.v2 .v2-slogan { display: flex; align-items: center; gap: 16px; }
.v2 .v2-slogan p {
  margin: 0;
  font-family: 'Instrument Serif', Georgia, serif;
  font-style: italic;
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.2;
}
.v2 .eq { display: inline-flex; align-items: flex-end; gap: 3px; height: 22px; flex: none; }
.v2 .eq span {
  display: block; width: 3px; background: var(--tinta);
  transform-origin: bottom; animation: v2eq 1.1s ease-in-out infinite;
}
@keyframes v2eq { 0%,100% { transform: scaleY(.25); } 50% { transform: scaleY(1); } }
.v2 .v2-lead { margin: 0; max-width: 470px; font-size: 16px; line-height: 1.7; color: var(--tinta-suave); }
.v2 .v2-acciones { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.v2 .v2-btn {
  display: inline-flex; align-items: center; gap: 12px;
  min-height: 54px; padding: 0 28px;
  background: var(--tinta); color: var(--carbon);
  border-radius: 999px; font-size: 14px; letter-spacing: .02em;
}
.v2 .v2-btn:hover { background: #ffffff; color: var(--carbon); }
.v2 .v2-btn-amarillo { background: var(--acento); color: var(--carbon); }
.v2 .v2-btn-amarillo:hover { background: #ffef3d; color: var(--carbon); }
.v2 .v2-tel { font-size: 14px; border-bottom: 2px solid var(--acento); padding-bottom: 2px; }

/* ---------- Collage ---------- */
.v2 .v2-collage {
  grid-column: 7 / span 6;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  grid-template-rows: 120px 220px 140px 150px;
  min-width: 300px;
}
.v2 .v2-collage figure { margin: 0; overflow: hidden; }
.v2 .v2-collage img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .9s cubic-bezier(.2,.7,.2,1); }
.v2 .v2-collage figure:hover img { transform: scale(1.06); }
.v2 .v2-c1 { grid-column: 2 / span 5; grid-row: 1 / span 3; }
.v2 .v2-c2 { grid-column: 1 / span 3; grid-row: 3 / span 2; border: 10px solid var(--carbon); position: relative; z-index: 2; }
.v2 .v2-c3 { grid-column: 4 / span 3; grid-row: 4 / span 1; border: 10px solid var(--carbon); border-right: 0; position: relative; z-index: 2; }
.v2 .v2-vertical {
  grid-column: 1 / span 1; grid-row: 1 / span 2; align-self: start;
  writing-mode: vertical-rl; transform: rotate(180deg);
  font-size: 11px; letter-spacing: .24em; text-transform: uppercase; color: var(--tinta-tenue);
}

/* ---------- Servicios ---------- */
.v2 .v2-servicios { padding: 100px 56px 120px; background: var(--carbon-alt); }
.v2 .v2-cab {
  display: grid; grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 24px; margin-bottom: 64px; align-items: end;
}
.v2 .v2-cab h2 {
  grid-column: span 7; margin: 0;
  font-family: 'Archivo', system-ui, sans-serif;
  font-stretch: 125%; font-weight: 800;
  font-size: clamp(34px, 4vw, 58px); line-height: .95;
  letter-spacing: -.03em; text-transform: uppercase; min-width: 260px;
}
.v2 .v2-cab p {
  grid-column: 9 / span 4; margin: 0;
  font-family: 'Instrument Serif', Georgia, serif; font-style: italic;
  font-size: clamp(20px, 2vw, 26px); line-height: 1.25; min-width: 220px;
}
.v2 .v2-grid-serv {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 28px; align-items: start;
}
.v2 .v2-serv { display: flex; flex-direction: column; gap: 20px; }
.v2 .v2-serv:nth-child(2) { margin-top: 80px; }
.v2 .v2-serv-foto { display: block; position: relative; aspect-ratio: 4 / 5; overflow: hidden; }
.v2 .v2-serv-foto img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .9s cubic-bezier(.2,.7,.2,1); }
.v2 .v2-serv:hover .v2-serv-foto img { transform: scale(1.06); }
.v2 .v2-num {
  position: absolute; top: 16px; left: 16px;
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border-radius: 50%;
  background: var(--carbon); font-size: 12.5px; font-weight: 600;
}
.v2 .v2-serv-tit {
  display: flex; justify-content: space-between; align-items: baseline; gap: 12px;
  border-top: 1px solid var(--tinta); padding-top: 16px;
  font-stretch: 112%; font-weight: 700; font-size: 22px;
  letter-spacing: -.01em; text-transform: uppercase;
}
.v2 .v2-serv p { margin: 0; font-size: 15px; line-height: 1.65; color: var(--tinta-suave); }

/* ---------- Cobertura ---------- */
.v2 .v2-cobertura { padding: 110px 0 100px; }
.v2 .v2-cob-cab {
  display: grid; grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 24px; padding: 0 56px 46px; align-items: end;
}
.v2 .v2-cob-cab h2 {
  grid-column: span 8; margin: 0;
  font-family: 'Instrument Serif', Georgia, serif;
  font-size: clamp(36px, 5vw, 76px); line-height: .98;
  letter-spacing: -.02em; min-width: 280px;
}
.v2 .v2-cob-cab div { grid-column: 10 / span 3; display: flex; justify-content: flex-end; min-width: 220px; }
.v2 .v2-cinta-marco {
  overflow: hidden;
  border-top: 1px solid var(--tinta);
  border-bottom: 1px solid var(--tinta);
  padding: 22px 0;
}
.v2 .v2-cinta { display: flex; width: max-content; animation: v2desliza 46s linear infinite; }
@keyframes v2desliza { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.v2 .v2-cinta span {
  display: inline-flex; align-items: center; gap: 34px; padding-right: 34px;
  font-family: 'Instrument Serif', Georgia, serif; font-style: italic;
  font-size: clamp(26px, 3vw, 44px); white-space: nowrap;
}
.v2 .v2-cinta i { width: 12px; height: 12px; border-radius: 50%; background: var(--acento); display: inline-block; }
.v2 .v2-cob-pie { margin: 22px 56px 0; font-size: 14px; line-height: 1.6; color: var(--tinta-tenue); }

/* ---------- Imagen a sangre ---------- */
.v2 .v2-sangre { margin: 0 56px; height: 520px; overflow: hidden; }
.v2 .v2-sangre img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .9s cubic-bezier(.2,.7,.2,1); }
.v2 .v2-sangre:hover img { transform: scale(1.06); }

/* ---------- Opiniones (widget de Bodas.net) ---------- */
.v2 .v2-opiniones { padding: 110px 56px 0; text-align: center; }
.v2 .v2-opiniones h2 {
  margin: 0 auto 20px; max-width: 900px;
  font-family: 'Instrument Serif', Georgia, serif;
  font-size: clamp(30px, 3.6vw, 54px); line-height: 1.05;
  letter-spacing: .06em; text-transform: uppercase;
}
.v2 .v2-opiniones > p { margin: 0 auto 34px; max-width: 620px; font-size: 15px; line-height: 1.65; color: #b9bab6; }
.v2 .v2-op-caja { display: flex; flex-direction: column; align-items: center; gap: 22px; }
.v2 .v2-op-sello { background: #fff; padding: 14px 22px; border-radius: 4px; display: inline-block; }
.v2 #wp-widget-reviews { max-width: 900px; width: 100%; background: #fff; }

/* ---------- Preguntas frecuentes ---------- */
.v2 .faq-section { background: var(--carbon); padding: 110px 56px; }
.v2 .faq-section .section-inner {
  display: grid; grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 24px; max-width: none; padding: 0;
}
.v2 .faq-section h2 {
  grid-column: span 4; margin: 0;
  font-family: 'Archivo', system-ui, sans-serif;
  font-stretch: 125%; font-weight: 800;
  font-size: clamp(30px, 3.4vw, 46px); line-height: .98;
  letter-spacing: -.03em; text-transform: uppercase; min-width: 240px;
}
.v2 .faq-list { grid-column: 6 / span 7; min-width: 280px; }
.v2 .faq-item {
  border: 0; border-top: 1px solid var(--tinta); border-radius: 0;
  background: transparent; padding: 4px 0; margin: 0;
}
.v2 .faq-list .faq-item:last-of-type { border-bottom: 1px solid var(--tinta); }
.v2 .faq-item summary {
  display: flex; justify-content: space-between; align-items: center; gap: 20px;
  min-height: 64px; padding: 0; background: transparent;
  color: var(--tinta); font-size: 19px; font-weight: 500;
  letter-spacing: -.01em; list-style: none; cursor: pointer;
}
.v2 .faq-item summary::-webkit-details-marker { display: none; }
.v2 .faq-item summary::after {
  content: '+'; font-size: 26px; line-height: 1; font-weight: 300;
  transition: transform .3s ease; flex: none;
}
.v2 .faq-item[open] summary::after { transform: rotate(45deg); }
.v2 .faq-answer { padding: 0; }
.v2 .faq-answer p {
  margin: 0 0 22px; max-width: 620px;
  font-size: 15.5px; line-height: 1.7; color: var(--tinta-suave);
}

/* ---------- Pie ---------- */
.v2 footer { background: var(--tinta); color: var(--carbon); padding: 80px 56px 0; }
.v2 .footer-inner {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 40px; max-width: none; padding: 0 0 60px;
}
.v2 .footer-col h4 {
  font-family: 'Instrument Serif', Georgia, serif;
  font-size: 34px; font-weight: 400; color: var(--carbon); margin-bottom: 16px;
}
.v2 .footer-col:not(:first-child) h4 {
  font-family: 'Archivo', system-ui, sans-serif;
  font-size: 11px; letter-spacing: .2em; text-transform: uppercase;
  color: #5f5f5f; font-weight: 500;
}
.v2 .footer-col p { font-size: 14px; line-height: 1.7; color: #3a3a3a; opacity: 1; }
.v2 .footer-col ul { list-style: none; display: flex; flex-direction: column; gap: 12px; font-size: 14px; }
.v2 .footer-col a, .v2 .footer-col li { color: var(--carbon); }
.v2 .footer-redes { display: flex; gap: 18px; padding: 0 0 24px; justify-content: flex-start; }
.v2 .footer-redes svg { width: 22px; height: 22px; fill: var(--carbon); }
.v2 .footer-bottom {
  border-top: 1px solid rgba(0,0,0,.15); padding: 24px 0 30px;
  font-size: 12.5px; color: #5f5f5f; background: transparent;
}
.v2 .footer-bottom a { color: #5f5f5f; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .v2 .v2-hero-txt { grid-column: span 12; }
  .v2 .v2-collage { grid-column: span 12; grid-template-rows: 100px 180px 110px 120px; }
  .v2 .v2-cab h2, .v2 .v2-cab p,
  .v2 .v2-cob-cab h2, .v2 .v2-cob-cab div { grid-column: span 12; }
  .v2 .v2-cob-cab div { justify-content: flex-start; }
  .v2 .faq-section h2, .v2 .faq-list { grid-column: span 12; }
  .v2 .v2-serv:nth-child(2) { margin-top: 0; }
}

@media (max-width: 900px) {
  .v2 .nav-inner { padding: 16px 22px; }
  .v2 .nav-links { background: var(--carbon); }
  .v2 .nav-links a { color: var(--tinta) !important; }
  .v2 .nav-links a:hover, .v2 .nav-links a.active { background: rgba(255,255,255,.08); }
  .v2 .v2-hero { padding: 30px 22px 60px; gap: 34px; }
  .v2 .v2-servicios { padding: 60px 22px 70px; }
  .v2 .v2-cobertura { padding: 60px 0 50px; }
  .v2 .v2-cob-cab { padding: 0 22px 26px; }
  .v2 .v2-cob-pie { margin: 18px 22px 0; }
  .v2 .v2-sangre { margin: 0 22px; height: 300px; }
  .v2 .v2-opiniones { padding: 60px 22px 0; }
  .v2 .faq-section { padding: 60px 22px; }
  .v2 footer { padding: 50px 22px 0; }
  .v2 .v2-cab, .v2 .v2-cab p { margin-bottom: 0; }
  .v2 .v2-cab { margin-bottom: 36px; gap: 14px; }
}

@media (max-width: 560px) {
  .v2 .v2-collage { grid-template-rows: 80px 150px 90px 100px; }
  .v2 .v2-vertical { display: none; }
  .v2 .v2-collage .v2-c1 { grid-column: 1 / span 6; }
}

/* ============================================
   PÁGINAS INTERIORES
   Reestilizan los componentes que ya existen,
   sin tocar su HTML. Solo hay que añadir
   class="v2" al <body> y enlazar esta hoja.
   ============================================ */

.v2 h1, .v2 h2, .v2 h3 { font-family: 'Instrument Serif', Georgia, serif; letter-spacing: -.01em; }
.v2 h1 { font-size: clamp(34px, 5vw, 62px); line-height: 1.02; }
.v2 h2 { font-size: clamp(28px, 3.6vw, 46px); line-height: 1.05; text-transform: none; }
.v2 h3 { font-size: clamp(20px, 2.4vw, 27px); line-height: 1.15; text-transform: none; }
.v2 p { font-size: 16px; line-height: 1.75; color: var(--tinta-suave); }
.v2 p.lead { font-family: 'Instrument Serif', Georgia, serif; font-style: italic; font-size: clamp(20px, 2.2vw, 28px); line-height: 1.3; color: var(--tinta); }

.v2 section { padding: 96px 56px; }
.v2 .section-inner { max-width: 1240px; }
.v2 .section-light { background: var(--carbon-alt); color: var(--tinta); }
.v2 .section-dark { background: var(--carbon); color: var(--tinta); }
.v2 .section-yellow { background: var(--tinta); color: var(--carbon); }
.v2 .section-yellow h1, .v2 .section-yellow h2, .v2 .section-yellow h3 { color: var(--carbon); }
.v2 .section-yellow p { color: #3a3a3a; }
.v2 .section-yellow p.lead { color: var(--carbon); }

/* Botones */
.v2 .btn {
  font-family: 'Archivo', system-ui, sans-serif;
  font-size: 14px; letter-spacing: .02em;
  padding: 17px 30px; border-radius: 999px;
}
.v2 .btn-primary { background: var(--acento); color: var(--carbon); }
.v2 .btn-primary:hover { background: #ffef3d; }
.v2 .btn-secondary { background: var(--tinta); color: var(--carbon); }
.v2 .section-yellow .btn { background: var(--carbon); color: var(--tinta); }
.v2 .section-yellow .btn:hover { background: #1b2322; }

/* Portada de página interior */
.v2 .hero { background: var(--carbon); padding: 0; }
.v2 .hero-media { height: 56vh; min-height: 400px; max-height: 620px; }
.v2 .hero-overlay {
  background: linear-gradient(180deg, rgba(38,48,47,.25) 0%, rgba(38,48,47,.75) 100%);
  align-items: flex-start; justify-content: flex-end; text-align: left;
  padding: 56px;
}
.v2 .hero-overlay h1 { color: var(--tinta) !important; text-transform: uppercase; margin: 0; }

/* Tarjetas de servicio */
.v2 .service-card {
  background: var(--carbon); color: var(--tinta);
  border: 1px solid rgba(242,240,234,.25); border-radius: 0;
  padding: 36px 28px; text-align: left;
}
.v2 .service-card:hover { border-color: var(--acento); transform: none; }
.v2 .service-card h3 { color: var(--tinta); }
.v2 .service-card p { color: var(--tinta-suave); }

/* Efectos */
.v2 .effects-grid { gap: 28px; }
.v2 .effect-card {
  background: var(--carbon);
  border: 1px solid rgba(242,240,234,.14);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 1px 2px rgba(0,0,0,.2);
  transition: transform .3s cubic-bezier(.2,.7,.2,1), border-color .3s, box-shadow .3s;
}
.v2 .effect-card:hover {
  transform: translateY(-5px);
  border-color: rgba(242,226,5,.45);
  box-shadow: 0 14px 34px rgba(0,0,0,.3);
}
.v2 .effect-card img { height: 270px; border-radius: 0; }
.v2 .effect-card-body { padding: 28px 28px 32px; }
.v2 .effect-card h3 { color: var(--tinta); margin-bottom: 14px; }
.v2 .effect-card p { color: var(--tinta-suave); font-size: 15px; line-height: 1.7; margin: 0; }

/* Bloques de texto + imagen */
.v2 .feature-block { gap: 56px; margin-top: 80px; }
.v2 .feature-img img { border-radius: 0; }
.v2 .feature-text h2 { color: inherit; }

/* Formulario de contacto */
.v2 .form-block label { color: var(--tinta); font-weight: 500; letter-spacing: .01em; }
.v2 .form-block input,
.v2 .form-block select,
.v2 .form-block textarea {
  background: var(--carbon); color: var(--tinta);
  border: 1px solid rgba(242,240,234,.35); border-radius: 0;
}
.v2 .form-block input:focus,
.v2 .form-block select:focus,
.v2 .form-block textarea:focus { border-color: var(--acento); }
.v2 .form-block input::placeholder,
.v2 .form-block textarea::placeholder { color: #8d9391; }
.v2 .form-rgpd, .v2 .form-rgpd * { color: var(--tinta-tenue); font-size: 13px; }
.v2 .form-submit {
  background: var(--acento); color: var(--carbon);
  font-family: 'Archivo', system-ui, sans-serif;
  font-size: 15px; letter-spacing: .02em; border-radius: 999px;
}
.v2 .form-submit:hover { background: #ffef3d; color: var(--carbon); }
.v2 .contact-info { background: var(--tinta); color: var(--carbon); border-radius: 0; padding: 44px; }
.v2 .contact-info h3 { color: var(--carbon); }
.v2 .contact-info p, .v2 .contact-row { color: var(--carbon); }
.v2 .contact-row a { color: var(--carbon); }
.v2 .contact-row a:hover { border-bottom-color: var(--carbon); }

/* Nuestros eventos */
.v2 .video-wrap, .v2 .video-vertical { border-radius: 0; overflow: hidden; }
.v2 .evento { margin-top: 72px; }
.v2 .evento img { border-radius: 0; }
.v2 .evento-lugar { color: var(--tinta-tenue); letter-spacing: .14em; text-transform: uppercase; font-size: 11.5px; }
.v2 .evento-tags span, .v2 .evento-tags li {
  background: transparent; color: var(--tinta-suave);
  border: 1px solid rgba(242,240,234,.3); border-radius: 999px;
}

/* Textos sueltos en fondo claro */
.v2 .section-yellow a:not(.btn) { color: var(--carbon); }

@media (max-width: 900px) {
  .v2 section { padding: 56px 22px; }
  .v2 .hero-overlay { padding: 28px 22px; }
  .v2 .feature-block { gap: 32px; margin-top: 48px; }
  .v2 .contact-info { padding: 28px; }
}

/* ---------- Widget de Bodas.net: que conserve sus propios colores ---------- */
.v2 #wp-widget-reviews { color: #262626; }
.v2 #wp-widget-reviews p,
.v2 #wp-widget-reviews li,
.v2 #wp-widget-reviews td { color: inherit; font-family: inherit; }
.v2 #wp-widget-reviews h1,
.v2 #wp-widget-reviews h2,
.v2 #wp-widget-reviews h3,
.v2 #wp-widget-reviews h4 { font-family: inherit; color: inherit; letter-spacing: normal; }
.v2 #wp-widget-reviews a { color: #D4505A; }
.v2 #wp-widget-preview { color: #262626; padding: 18px; }
.v2 #wp-widget-preview a { color: #D4505A; }

/* ---------- Titular de portada en dos líneas ---------- */
.v2 .v2-hero h1 { line-height: 1.08; letter-spacing: 0; }
.v2 .v2-hero h1 .v2-h1-b {
  display: block;
  margin-top: .34em;
  font-style: italic;
  text-transform: none;
  font-size: .62em;
  line-height: 1.15;
  letter-spacing: .01em;
  color: var(--tinta-suave);
}

/* El título de cada servicio es un h3 */
.v2 h3.v2-serv-tit {
  margin: 0;
  font-family: 'Archivo', system-ui, sans-serif;
  font-weight: 700;
  text-transform: uppercase;
}

/* ---------- Cabecera sin foto: titular sobre el gris carbón ---------- */
.v2 .hero:not(:has(img)):not(:has(video)) { background: var(--carbon); }
.v2 .hero:not(:has(img)):not(:has(video)) .hero-media {
  height: auto; min-height: 0; max-height: none; background: var(--carbon);
}
.v2 .hero:not(:has(img)):not(:has(video)) .hero-overlay {
  position: static; inset: auto; background: none;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center; text-align: center;
  padding: 24px 56px 26px;
}
.v2 .hero:not(:has(img)):not(:has(video)) .hero-overlay h1 {
  color: var(--tinta) !important;
  max-width: 980px !important; margin: 0 auto;
  text-transform: none;
  font-size: clamp(34px, 4.4vw, 64px); line-height: 1.05; letter-spacing: -.02em;
}
.v2 .hero:not(:has(img)):not(:has(video)) .hero-overlay p {
  color: var(--tinta-suave) !important;
  max-width: 640px !important; margin: 12px auto 0 !important;
  font-family: 'Instrument Serif', Georgia, serif; font-style: italic;
  font-size: clamp(19px, 2vw, 26px) !important; line-height: 1.3;
}

/* ---------- Secciones de solo texto: columna centrada ---------- */
.v2 section:not([class]) .section-inner { max-width: 880px; }
.v2 section:not([class]) .section-inner p { max-width: none; }
.v2 section:not([class]) .section-inner h2 { margin-bottom: 20px; }

@media (max-width: 900px) {
  .v2 .hero:not(:has(img)):not(:has(video)) .hero-overlay { padding: 0 22px 10px; }
}

/* ---------- Nuestros eventos: misma separación entre todos ---------- */
.v2 section:has(.evento) { padding-top: 0 !important; padding-bottom: 0 !important; }
.v2 section:has(.evento):last-of-type { padding-bottom: 96px !important; }
.v2 .evento { margin-top: 0; margin-bottom: 34px; }
.v2 section:has(.evento):last-of-type .evento:last-child { margin-bottom: 0; }
@media (max-width: 900px) {
  .v2 section:has(.evento):last-of-type { padding-bottom: 56px !important; }
}

/* ============================================
   BLOG
   ============================================ */
.v2 .blog-header { background: var(--carbon); padding: 0; }
.v2 .blog-header .section-inner { padding: 24px 56px 26px; }
.v2 .blog-header h1 { color: var(--tinta); margin-bottom: 10px; }
.v2 .blog-header p.lead { color: var(--tinta-suave); max-width: 620px; }
.v2 .blog-header .txt-center p.lead { margin-left: auto; margin-right: auto; }

.v2 .breadcrumb { color: var(--tinta-tenue); }
.v2 .breadcrumb a { color: var(--tinta-tenue); }
.v2 .breadcrumb a:hover { color: var(--tinta); }

/* Tarjetas del listado: blancas sobre el gris, con más redondeo */
.v2 .blog-list { max-width: 980px; }
.v2 .blog-card {
  background: #ffffff; color: var(--carbon);
  border: 1px solid rgba(0,0,0,.06); border-radius: 20px;
  box-shadow: 0 1px 2px rgba(0,0,0,.18);
  transition: transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s;
}
.v2 .blog-card:hover { transform: translateY(-5px); box-shadow: 0 16px 38px rgba(0,0,0,.28); }
.v2 .blog-card img { height: 230px; border-radius: 0; }
.v2 .blog-card .card-body { padding: 24px 26px 28px; }
.v2 .blog-card h2 {
  color: var(--carbon); font-size: 1.45rem;
  text-transform: none; margin: 0 0 10px; line-height: 1.15;
}
.v2 .blog-card p { color: #4a4a4a; font-size: 15px; line-height: 1.65; margin: 0; }

/* Artículo */
.v2 .article-wrap { max-width: 780px; }
.v2 .article-meta { color: var(--tinta-tenue); }
.v2 .article-hero { border-radius: 16px; }
.v2 .article-body { max-width: 780px; color: var(--tinta-suave); }
.v2 .article-body h2 { color: var(--tinta); margin-top: 46px; }
.v2 .article-body h3 { color: var(--tinta); }
.v2 .article-body p { color: var(--tinta-suave); }
.v2 .article-body li { color: var(--tinta-suave); }
.v2 .article-body a { color: var(--tinta); text-decoration-color: var(--acento); }
.v2 .article-body a:hover { color: var(--acento); }
.v2 .article-body strong { color: var(--tinta); }

@media (max-width: 900px) {
  .v2 .blog-header .section-inner { padding: 14px 22px 18px; }
}

/* ============================================
   CONTACTO
   ============================================ */
.v2 .contact-grid { grid-template-columns: 1.15fr .85fr; gap: 40px; margin-top: 10px; align-items: start; }

/* Formulario como tarjeta */
.v2 .form-block {
  background: var(--carbon-alt);
  border: 1px solid rgba(242,240,234,.12);
  border-radius: 22px;
  padding: 36px 34px 34px;
}
.v2 .form-block label {
  font-size: 12px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--tinta-tenue); font-weight: 500; margin-bottom: 9px;
}
.v2 .form-block input[type="text"],
.v2 .form-block input[type="email"],
.v2 .form-block input[type="tel"],
.v2 .form-block select,
.v2 .form-block textarea {
  background: rgba(0,0,0,.18);
  border: 1px solid rgba(242,240,234,.16);
  border-radius: 12px;
  padding: 15px 17px;
  font-size: 15.5px;
  color: var(--tinta);
  margin-bottom: 22px;
  transition: border-color .2s, background .2s;
}
.v2 .form-block input:focus,
.v2 .form-block select:focus,
.v2 .form-block textarea:focus {
  border-color: var(--acento); background: rgba(0,0,0,.28); outline: none;
}
.v2 .form-block textarea { min-height: 140px; }
.v2 .form-block select { appearance: none; -webkit-appearance: none; cursor: pointer;
  background-image: linear-gradient(45deg, transparent 50%, #cbcbc6 50%), linear-gradient(135deg, #cbcbc6 50%, transparent 50%);
  background-position: calc(100% - 20px) calc(50% - 2px), calc(100% - 14px) calc(50% - 2px);
  background-size: 6px 6px, 6px 6px; background-repeat: no-repeat; }
.v2 .form-rgpd {
  background: rgba(0,0,0,.14); border-radius: 12px;
  padding: 14px 16px; margin-bottom: 22px;
}
.v2 .form-rgpd label { display: flex; gap: 11px; align-items: flex-start; text-transform: none; letter-spacing: 0; font-size: 12.5px; line-height: 1.55; color: var(--tinta-tenue); margin: 0; }
.v2 .form-rgpd input[type="checkbox"] { width: 17px; height: 17px; accent-color: var(--acento); margin: 2px 0 0; flex: none; }
.v2 .form-rgpd a { color: var(--tinta); text-decoration-color: var(--acento); }
.v2 .form-rgpd strong { color: var(--tinta); }
.v2 .form-submit {
  background: var(--acento); color: var(--carbon);
  border-radius: 999px; padding: 18px 40px;
  font-family: 'Archivo', system-ui, sans-serif;
  font-size: 15px; font-weight: 600; letter-spacing: .02em;
  transition: transform .25s, background .25s;
}
.v2 .form-submit:hover { background: #ffef3d; transform: translateY(-2px); }

/* Tarjeta de datos */
.v2 .contact-info {
  background: var(--tinta); color: var(--carbon);
  border-radius: 22px; padding: 36px 34px 38px;
  position: sticky; top: 24px;
}
.v2 .contact-info h3 {
  color: var(--carbon); font-size: 30px; margin-bottom: 26px;
}
.v2 .contact-row {
  gap: 14px; margin-bottom: 0; padding: 15px 0;
  border-bottom: 1px solid rgba(0,0,0,.09); font-size: 15px; align-items: center;
}
.v2 .contact-row:last-of-type { border-bottom: 0; }
.v2 .contact-row .icon { font-size: 17px; opacity: .75; }
.v2 .contact-row a { color: var(--carbon); border-bottom: 1px solid rgba(0,0,0,.25); }
.v2 .contact-row a:hover { border-bottom-color: var(--carbon); }
.v2 .contact-info .btn {
  display: flex !important; align-items: center; justify-content: center;
  background: var(--carbon); color: var(--tinta);
  border-radius: 999px; padding: 17px 28px; font-size: 15px;
}
.v2 .contact-info .btn:hover { background: #1b2322; }

@media (max-width: 900px) {
  .v2 .contact-grid { grid-template-columns: 1fr; gap: 26px; }
  .v2 .form-block, .v2 .contact-info { padding: 26px 22px 28px; border-radius: 18px; }
  .v2 .contact-info { position: static; }
}
