/*
Theme Name: Radio Cartagena El Tabo Digital
Theme URI: https://radiocartagenaeltabo.cl
Author: Radio Cartagena El Tabo Digital + FlowCode AI
Description: Block theme a medida para Radio Cartagena El Tabo Digital — radio online comunitaria costera.
Version: 1.0.0
Requires at least: 6.5
Tested up to: 6.7
Requires PHP: 8.0
License: GNU General Public License v2 or later
Text Domain: radio-cartagena
*/

/* ===== Fonts ===== */
@import url('https://fonts.googleapis.com/css2?family=Baloo+2:wght@500;600;700;800&family=Source+Sans+3:wght@400;500;600;700;800&display=swap');

/* ===== Base ===== */
:root{
  --rc-shadow: 0 18px 40px -18px rgba(7,26,48,.45);
  --rc-shadow-sm: 0 8px 20px -12px rgba(7,26,48,.35);
}
body{ -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }

h1,h2,h3,h4,h5,h6{ letter-spacing:-.005em; line-height:1.1; }
.is-style-overline{
  font-family:"Source Sans 3",sans-serif; text-transform:uppercase; letter-spacing:.22em;
  font-size:.82rem; font-weight:700; color:var(--wp--preset--color--steel);
}
/* Contraste: overline naranja solo sobre fondos oscuros (naranja claro sobre blanco no cumple AA) */
.has-charcoal-background-color .is-style-overline,
.has-ink-background-color .is-style-overline,
.has-hero-gradient-background .is-style-overline,
.has-ola-gradient-background .is-style-overline,
.wp-block-cover .is-style-overline{ color:var(--wp--preset--color--gold-light); }

/* ===== Buttons ===== */
.wp-block-button__link{
  font-family:"Source Sans 3",sans-serif; letter-spacing:.01em;
  font-weight:700; transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.wp-block-button__link:hover{ transform:translateY(-2px); box-shadow:var(--rc-shadow-sm); }
.wp-block-button.is-style-gold .wp-block-button__link{
  background:var(--wp--preset--color--gold); color:var(--wp--preset--color--ink);
}
.wp-block-button.is-style-gold .wp-block-button__link:hover{ background:var(--wp--preset--color--gold-dark); color:#fff; }
.wp-block-button.is-style-ghost .wp-block-button__link{
  background:transparent; color:#fff; box-shadow:inset 0 0 0 2px rgba(255,255,255,.5);
}
.wp-block-button.is-style-ghost .wp-block-button__link:hover{ box-shadow:inset 0 0 0 2px #fff; background:rgba(255,255,255,.08); }
.wp-block-button.is-style-ghost-dark .wp-block-button__link{
  background:transparent; color:var(--wp--preset--color--ink); box-shadow:inset 0 0 0 2px var(--wp--preset--color--ink);
}
.wp-block-button.is-style-ghost-dark .wp-block-button__link:hover{ background:var(--wp--preset--color--ink); color:#fff; }

/* ===== Header ===== */
.rc-header{ position:sticky; top:0; z-index:100; }
.rc-header .wp-block-navigation a{
  font-family:"Source Sans 3",sans-serif; letter-spacing:.01em;
  font-size:.95rem; font-weight:600;
}
.rc-header .wp-block-navigation a:hover{ color:var(--wp--preset--color--gold-light); }
.rc-logo-badge{
  display:flex; align-items:center; gap:.7rem;
}
.rc-logo-badge img{ max-height:46px; width:auto; display:block; }
.rc-header .rc-logo-badge img{ max-height:52px; }
.rc-logo-word{ margin:0!important; }
.rc-logo-word a{
  font-family:"Baloo 2","Source Sans 3",sans-serif; font-weight:700;
  font-size:1.25rem; color:#fff; text-decoration:none; line-height:1.15; white-space:normal;
}
footer .rc-logo-word a{ font-size:1.3rem; }

/* ===== Cards & hover (noticias) ===== */
.rc-card{ transition:transform .2s ease, box-shadow .2s ease; height:100%; }
.rc-card:hover{ transform:translateY(-6px); box-shadow:var(--rc-shadow); }
.rc-card-img{ margin:0!important; }
.rc-card-img img{ aspect-ratio:16/9; height:170px; object-fit:cover; width:100%; display:block; }
.rc-band-img{ margin:0!important; }
.rc-band-img img{ width:100%; height:340px; object-fit:cover; display:block; }
@media(max-width:781px){ .rc-band-img img{ height:220px; } }

/* ===== Reproductor en vivo ===== */
.rc-player{
  display:flex; align-items:center; gap:1.1rem; background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.18); border-radius:999px; padding:.7rem .9rem .7rem .7rem;
  max-width:460px; backdrop-filter:blur(6px);
}
.rc-player-btn{
  flex:0 0 auto; width:58px; height:58px; border-radius:50%; border:0; cursor:pointer;
  background:var(--wp--preset--color--gold); color:var(--wp--preset--color--ink);
  display:flex; align-items:center; justify-content:center; transition:background .18s, transform .18s;
}
.rc-player-btn:hover{ background:var(--wp--preset--color--gold-light); transform:scale(1.05); }
.rc-player-btn svg{ width:24px; height:24px; }
.rc-player-info{ display:flex; flex-direction:column; gap:.15rem; min-width:0; }
.rc-player-live{
  display:inline-flex; align-items:center; gap:.4rem; font-size:.78rem; font-weight:800;
  letter-spacing:.1em; text-transform:uppercase; color:var(--wp--preset--color--gold-light);
}
.rc-player-live::before{
  content:""; width:8px; height:8px; border-radius:50%; background:#ff4d4d;
  box-shadow:0 0 0 0 rgba(255,77,77,.6); animation:rc-pulse 1.6s infinite;
}
@keyframes rc-pulse{
  0%{ box-shadow:0 0 0 0 rgba(255,77,77,.6); }
  70%{ box-shadow:0 0 0 9px rgba(255,77,77,0); }
  100%{ box-shadow:0 0 0 0 rgba(255,77,77,0); }
}
.rc-player-name{ color:#fff; font-weight:700; font-size:1.02rem; }
.rc-player-status{ color:#cfe3f5; font-size:.85rem; }
.rc-eq{ display:flex; align-items:flex-end; gap:3px; height:18px; margin-left:auto; flex:0 0 auto; }
.rc-eq span{ width:4px; background:var(--wp--preset--color--gold); border-radius:2px; animation:rc-bounce 1s ease-in-out infinite; }
.rc-eq span:nth-child(1){ height:40%; animation-delay:-.2s; }
.rc-eq span:nth-child(2){ height:100%; animation-delay:-.6s; }
.rc-eq span:nth-child(3){ height:65%; animation-delay:-.1s; }
.rc-eq span:nth-child(4){ height:85%; animation-delay:-.4s; }
@keyframes rc-bounce{ 0%,100%{ transform:scaleY(.4); } 50%{ transform:scaleY(1); } }
.rc-player.is-paused .rc-eq span{ animation-play-state:paused; transform:scaleY(.25); }
.rc-player-mini{
  display:inline-flex; align-items:center; gap:.5rem; background:var(--wp--preset--color--gold);
  color:var(--wp--preset--color--ink); border:0; border-radius:999px; padding:.55rem 1.1rem;
  font-weight:700; cursor:pointer; font-size:.92rem;
}
.rc-player-mini:hover{ background:var(--wp--preset--color--gold-dark); color:#fff; }
.rc-player-mini svg{ width:16px; height:16px; }

/* ===== Olas decorativas ===== */
.rc-waves{ display:block; width:100%; height:auto; }

/* ===== Formulario de contacto ===== */
.rc-form{ display:grid; gap:1rem; }
.rc-form .row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
@media(max-width:600px){ .rc-form .row{ grid-template-columns:1fr; } }
.rc-form label{ font-weight:600; font-size:.9rem; display:block; margin-bottom:.35rem; color:var(--wp--preset--color--ink); }
.rc-form input,.rc-form select,.rc-form textarea{
  box-sizing:border-box;
  width:100%; padding:.8rem .9rem; border:1px solid #cfd8e3; border-radius:6px;
  font:inherit; background:#fff; color:var(--wp--preset--color--ink);
}
.rc-form input:focus,.rc-form select:focus,.rc-form textarea:focus{
  outline:none; border-color:var(--wp--preset--color--gold); box-shadow:0 0 0 3px rgba(245,130,31,.22);
}
.rc-form button{
  font-family:"Source Sans 3",sans-serif; font-weight:700;
  background:var(--wp--preset--color--gold); color:var(--wp--preset--color--ink); border:0; padding:.95rem 1.6rem;
  border-radius:999px; cursor:pointer; font-size:1rem; transition:background .18s, transform .18s, color .18s;
}
.rc-form button:hover{ background:var(--wp--preset--color--gold-dark); color:#fff; transform:translateY(-2px); }
.rc-alert{ padding:1rem 1.2rem; border-radius:6px; background:#fef1e4; color:#8a4a0c; border:1px solid #f3c893; font-weight:600; }

/* ===== Floating WhatsApp ===== */
.rc-wa{
  position:fixed; right:24px; bottom:24px; z-index:200; height:52px; padding:0 1.3rem 0 1.05rem;
  border-radius:999px; background:var(--wp--preset--color--ink); border:1px solid var(--wp--preset--color--gold);
  display:flex; align-items:center; gap:.55rem; justify-content:center;
  box-shadow:0 10px 28px -8px rgba(0,0,0,.45); transition:transform .2s, background .2s; text-decoration:none;
}
.rc-wa:hover{ transform:scale(1.06); background:var(--wp--preset--color--gold); }
.rc-wa svg{ width:24px; height:24px; fill:var(--wp--preset--color--gold); flex:0 0 auto; transition:fill .2s; }
.rc-wa:hover svg{ fill:var(--wp--preset--color--ink); }
.rc-wa-text{
  font-family:"Source Sans 3",sans-serif; font-weight:700; font-size:.95rem; color:#fff;
  white-space:nowrap; transition:color .2s;
}
.rc-wa:hover .rc-wa-text{ color:var(--wp--preset--color--ink); }

/* ===== Botones con ícono de WhatsApp ===== */
.rc-btn-wa{ display:inline-flex!important; align-items:center; gap:.55rem; }
.rc-btn-wa svg{ width:16px; height:16px; fill:currentColor; flex:0 0 auto; }

/* ===== Sin costura blanca entre secciones alignfull (blockGap raíz) ===== */
.wp-site-blocks > * + *{ margin-block-start:0!important; }

/* ===== Franja de confianza ===== */
.rc-franja{
  background:var(--wp--preset--color--charcoal)!important;
  border-top:2px solid var(--wp--preset--color--gold); border-bottom:2px solid var(--wp--preset--color--gold);
  position:relative; overflow:hidden;
}
.rc-franja-item{ margin:0!important; white-space:nowrap; color:#fff!important; }
@media(max-width:782px){
  .rc-franja-item{ font-size:.88rem!important; }
}

/* ===== Footer credit ===== */
.rc-credit{
  font-family:"Source Sans 3",sans-serif; letter-spacing:.04em;
  color:#8fa2bd; transition:color .2s, text-shadow .2s;
}
.rc-credit:hover{ color:var(--wp--preset--color--gold-light); text-shadow:0 0 12px rgba(255,166,77,.5); }

/* ===== Colapso a hamburguesa hasta ~1023px (el default de WP core es 600px y el header desborda en tablet) ===== */
@media (max-width: 1023px){
  .wp-block-navigation__responsive-container-open:not(.always-shown){ display:flex !important; }
  .wp-block-navigation__responsive-container:not(.is-menu-open){ display:none !important; }
}

/* ===== Responsive / Mobile ===== */
@media (max-width: 781px){
  .wp-block-cover h1.wp-block-heading{
    font-size: clamp(1.7rem, 7vw, 2.3rem) !important;
    line-height: 1.14 !important;
    overflow-wrap: break-word; word-break: normal; hyphens: none;
  }
  .wp-block-cover{ min-height: 78vh !important; }
  .wp-block-cover .wp-block-cover__inner-container{ width: 100%; max-width: 100%; }
  .wp-block-cover .wp-block-cover__inner-container > .wp-block-group{ max-width: 100%; }
  .wp-block-cover p{ font-size: 1.02rem !important; }
  .is-style-overline{ font-size: .72rem; letter-spacing:.16em; }

  .wp-block-cover .wp-block-buttons{ width: 100%; }
  .wp-block-cover .wp-block-buttons .wp-block-button{ flex: 1 1 100%; }
  .wp-block-cover .wp-block-buttons .wp-block-button__link{ display:block; text-align:center; }

  h2.wp-block-heading{ font-size: clamp(1.8rem, 7vw, 2.3rem) !important; }

  .wp-block-navigation__responsive-container.is-menu-open{
    background: var(--wp--preset--color--ink) !important;
  }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{
    padding-top: 1rem;
  }
  .wp-block-navigation__responsive-container.is-menu-open a{
    font-size: 1.4rem !important; padding:.4rem 0; color:#fff!important;
  }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item{
    width:100%;
  }

  .rc-wa{ width:52px; height:52px; padding:0; right:16px; bottom:16px; }
  .rc-wa svg{ width:26px; height:26px; }
  .rc-wa-text{ display:none; }

  .rc-header .rc-logo-badge img{ max-height:40px; }
  .rc-header .rc-logo-word a{ font-size:1rem; }

  /* El flotante cubre la misma función: el header no necesita el botón también en móvil */
  .rc-header .wp-block-buttons{ display:none; }

  main h1.wp-block-heading,
  .has-charcoal-background-color h1.wp-block-heading{
    font-size: clamp(2rem, 8vw, 2.5rem) !important;
    line-height: 1.12 !important;
    overflow-wrap: break-word;
  }

  .wp-block-social-links .wp-social-link{ width:40px !important; height:40px !important; }
  footer a, .wp-block-column a:not(.wp-block-button__link){ display:inline-block; padding:.18rem 0; }

  img, iframe, video, table, pre{ max-width:100% !important; height:auto; }
  .wp-block-group, .wp-block-columns, .wp-block-column{ max-width:100%; }
  html, body{ overflow-x:hidden; }

  .rc-player{ max-width:100%; padding:.6rem .7rem .6rem .6rem; gap:.8rem; }
  .rc-player-btn{ width:50px; height:50px; }
  .rc-player-name{ font-size:.92rem; }
  .rc-eq{ display:none; }
}

/* ===== Tablet (iPad vertical 600–781px): recuperar columnas en fila ===== */
@media (min-width: 600px) and (max-width: 781px){
  .wp-block-columns:not(.is-not-stacked-on-mobile){
    flex-direction:row !important; flex-wrap:wrap !important; gap:1.4rem;
  }
  .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column{
    flex-basis:30% !important; flex-grow:1 !important; min-width:0 !important;
  }
  footer .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column{ flex-basis:42% !important; }
  .wp-block-media-text{ grid-template-columns:1fr 1fr !important; }
  .wp-block-media-text.has-media-on-the-right{ grid-template-columns:1fr 1fr !important; }

  .wp-block-cover h1.wp-block-heading{ font-size: clamp(2.4rem, 5.5vw, 3.2rem) !important; }
  main h1.wp-block-heading,
  .has-charcoal-background-color h1.wp-block-heading{ font-size: clamp(2.5rem, 5vw, 3.2rem) !important; }
}

/* menú de admin de WP no debe tapar el header sticky */
@media (max-width: 782px){
  html{ scroll-padding-top: 64px; }
}

/* anclas bajo header sticky */
[id]{ scroll-margin-top: 90px; }

/* ===== Misc ===== */
.has-gold-color{ color:var(--wp--preset--color--gold)!important; }
.rc-divider{ width:64px; height:3px; background:var(--wp--preset--color--gold); border-radius:2px; }
