/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
/** 1. Set default font family to sans-serif. 2. Prevent iOS text size adjust after orientation change, without disabling user zoom. */
@import url("https://fonts.googleapis.com/css?family=Open+Sans:400,700&display=swap");
html { font-family: sans-serif; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ }

/** Remove default margin. */
body { margin: 0; }

/* HTML5 display definitions ========================================================================== */
/** Correct `block` display not defined for any HTML5 element in IE 8/9. Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox. Correct `block` display not defined for `main` in IE 11. */
article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { display: block; }

/** 1. Correct `inline-block` display not defined in IE 8/9. 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. */
audio, canvas, progress, video { display: inline-block; /* 1 */ vertical-align: baseline; /* 2 */ }

/** Prevent modern browsers from displaying `audio` without controls. Remove excess height in iOS 5 devices. */
audio:not([controls]) { display: none; height: 0; }

/** Address `[hidden]` styling not present in IE 8/9/10. Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. */
[hidden], template { display: none; }

/* Links ========================================================================== */
/** Remove the gray background color from active links in IE 10. */
a { background-color: transparent; }

/** Improve readability when focused and also mouse hovered in all browsers. */
a:active, a:hover { outline: 0; }

/* Text-level semantics ========================================================================== */
/** Address styling not present in IE 8/9/10/11, Safari, and Chrome. */
abbr[title] { border-bottom: 1px dotted; }

/** Address style set to `bolder` in Firefox 4+, Safari, and Chrome. */
b, strong { font-weight: bold; }

/** Address styling not present in Safari and Chrome. */
dfn { font-style: italic; }

/** Address variable `h1` font-size and margin within `section` and `article` contexts in Firefox 4+, Safari, and Chrome. */
h1 { font-size: 2em; margin: 0.67em 0; }

/** Address styling not present in IE 8/9. */
mark { background: #ff0; color: #000; }

/** Address inconsistent and variable font size in all browsers. */
small { font-size: 80%; }

/** Prevent `sub` and `sup` affecting `line-height` in all browsers. */
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }

sup { top: -0.5em; }

sub { bottom: -0.25em; }

/* Embedded content ========================================================================== */
/** Remove border when inside `a` element in IE 8/9/10. */
img { border: 0; }

/** Correct overflow not hidden in IE 9/10/11. */
svg:not(:root) { overflow: hidden; }

/* Grouping content ========================================================================== */
/** Address margin not present in IE 8/9 and Safari. */
figure { margin: 1em 40px; }

/** Address differences between Firefox and other browsers. */
hr { box-sizing: content-box; height: 0; }

/** Contain overflow in all browsers. */
pre { overflow: auto; }

/** Address odd `em`-unit font size rendering in all browsers. */
code, kbd, pre, samp { font-family: monospace, monospace; font-size: 1em; }

/* Forms ========================================================================== */
/** Known limitation: by default, Chrome and Safari on OS X allow very limited styling of `select`, unless a `border` property is set. */
/** 1. Correct color not being inherited. Known issue: affects color of disabled elements. 2. Correct font properties not being inherited. 3. Address margins set differently in Firefox 4+, Safari, and Chrome. */
button, input, optgroup, select, textarea { color: inherit; /* 1 */ font: inherit; /* 2 */ margin: 0; /* 3 */ }

/** Address `overflow` set to `hidden` in IE 8/9/10/11. */
button { overflow: visible; }

/** Address inconsistent `text-transform` inheritance for `button` and `select`. All other form control elements do not inherit `text-transform` values. Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. Correct `select` style inheritance in Firefox. */
button, select { text-transform: none; }

/** 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls. 2. Correct inability to style clickable `input` types in iOS. 3. Improve usability and consistency of cursor style between image-type `input` and others. */
button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ }

/** Re-set default cursor for disabled elements. */
button[disabled], html input[disabled] { cursor: default; }

/** Remove inner padding and border in Firefox 4+. */
button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; }

/** Address Firefox 4+ setting `line-height` on `input` using `!important` in the UA stylesheet. */
input { line-height: normal; }

/** It's recommended that you don't attempt to style these elements. Firefox's implementation doesn't respect box-sizing, padding, or width.  1. Address box sizing set to `content-box` in IE 8/9/10. 2. Remove excess padding in IE 8/9/10. */
input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ }

/** Fix the cursor style for Chrome's increment/decrement buttons. For certain `font-size` values of the `input`, it causes the cursor style of the decrement button to change from `default` to `text`. */
input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { height: auto; }

/** 1. Address `appearance` set to `searchfield` in Safari and Chrome. 2. Address `box-sizing` set to `border-box` in Safari and Chrome (include `-moz` to future-proof). */
input[type="search"] { -webkit-appearance: textfield; /* 1 */ /* 2 */ box-sizing: content-box; }

/** Remove inner padding and search cancel button in Safari and Chrome on OS X. Safari (but not Chrome) clips the cancel button when the search input has padding (and `textfield` appearance). */
input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }

/** Define consistent border, margin, and padding. */
fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; }

/** 1. Correct `color` not being inherited in IE 8/9/10/11. 2. Remove padding so people aren't caught out if they zero out fieldsets. */
legend { border: 0; /* 1 */ padding: 0; /* 2 */ }

/** Remove default vertical scrollbar in IE 8/9/10/11. */
textarea { overflow: auto; }

/** Don't inherit the `font-weight` (applied by a rule above). NOTE: the default cannot safely be changed in Chrome and Safari on OS X. */
optgroup { font-weight: bold; }

/* Tables ========================================================================== */
/** Remove most spacing between table cells. */
table { border-collapse: collapse; border-spacing: 0; }

td, th { padding: 0; }

.highlight table td { padding: 5px; }

.highlight table pre { margin: 0; }

.highlight .cm { color: #999988; font-style: italic; }

.highlight .cp { color: #999999; font-weight: bold; }

.highlight .c1 { color: #999988; font-style: italic; }

.highlight .cs { color: #999999; font-weight: bold; font-style: italic; }

.highlight .c, .highlight .cd { color: #999988; font-style: italic; }

.highlight .err { color: #a61717; background-color: #e3d2d2; }

.highlight .gd { color: #000000; background-color: #ffdddd; }

.highlight .ge { color: #000000; font-style: italic; }

.highlight .gr { color: #aa0000; }

.highlight .gh { color: #999999; }

.highlight .gi { color: #000000; background-color: #ddffdd; }

.highlight .go { color: #888888; }

.highlight .gp { color: #555555; }

.highlight .gs { font-weight: bold; }

.highlight .gu { color: #aaaaaa; }

.highlight .gt { color: #aa0000; }

.highlight .kc { color: #000000; font-weight: bold; }

.highlight .kd { color: #000000; font-weight: bold; }

.highlight .kn { color: #000000; font-weight: bold; }

.highlight .kp { color: #000000; font-weight: bold; }

.highlight .kr { color: #000000; font-weight: bold; }

.highlight .kt { color: #445588; font-weight: bold; }

.highlight .k, .highlight .kv { color: #000000; font-weight: bold; }

.highlight .mf { color: #009999; }

.highlight .mh { color: #009999; }

.highlight .il { color: #009999; }

.highlight .mi { color: #009999; }

.highlight .mo { color: #009999; }

.highlight .m, .highlight .mb, .highlight .mx { color: #009999; }

.highlight .sb { color: #d14; }

.highlight .sc { color: #d14; }

.highlight .sd { color: #d14; }

.highlight .s2 { color: #d14; }

.highlight .se { color: #d14; }

.highlight .sh { color: #d14; }

.highlight .si { color: #d14; }

.highlight .sx { color: #d14; }

.highlight .sr { color: #009926; }

.highlight .s1 { color: #d14; }

.highlight .ss { color: #990073; }

.highlight .s { color: #d14; }

.highlight .na { color: #008080; }

.highlight .bp { color: #999999; }

.highlight .nb { color: #0086B3; }

.highlight .nc { color: #445588; font-weight: bold; }

.highlight .no { color: #008080; }

.highlight .nd { color: #3c5d5d; font-weight: bold; }

.highlight .ni { color: #800080; }

.highlight .ne { color: #990000; font-weight: bold; }

.highlight .nf { color: #990000; font-weight: bold; }

.highlight .nl { color: #990000; font-weight: bold; }

.highlight .nn { color: #555555; }

.highlight .nt { color: #000080; }

.highlight .vc { color: #008080; }

.highlight .vg { color: #008080; }

.highlight .vi { color: #008080; }

.highlight .nv { color: #008080; }

.highlight .ow { color: #000000; font-weight: bold; }

.highlight .o { color: #000000; font-weight: bold; }

.highlight .w { color: #bbbbbb; }

.highlight { background-color: #f8f8f8; }

* { box-sizing: border-box; }

body { padding: 0; margin: 0; font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: 1.5; color: #606c71; }

#skip-to-content { height: 1px; width: 1px; position: absolute; overflow: hidden; top: -10px; }
#skip-to-content:focus { position: fixed; top: 10px; left: 10px; height: auto; width: auto; background: #e19447; outline: thick solid #e19447; }

a { color: #1e6bb8; text-decoration: none; }
a:hover { text-decoration: underline; }

.btn { display: inline-block; margin-bottom: 1rem; color:  #000; background-color: rgba(0, 0, 0, 0.08); border-color: rgba(0, 0, 0, 0.2); border-style: solid; border-width: 1px; border-radius: 0.3rem; transition: color 0.2s, background-color 0.2s, border-color 0.2s; }
.btn:hover { color: #636362; text-decoration: none; background-color: rgba(0, 0, 0, 0.2); border-color: rgba(255, 255, 255, 0.3); }
.btn + .btn { margin-left: 1rem; }
@media screen and (min-width: 64em) { .btn { padding: 0.75rem 1rem; } }
@media screen and (min-width: 42em) and (max-width: 64em) { .btn { padding: 0.6rem 0.9rem; font-size: 0.9rem; } }
@media screen and (max-width: 42em) { .btn { display: block; width: 100%; padding: 0.75rem; font-size: 0.9rem; }
  .btn + .btn { margin-top: 1rem; margin-left: 0; } }

.page-header { color: #000; text-align: center; background-color: #ffe066; background-image: linear-gradient(120deg, #ffe066, #ffe066); }
@media screen and (min-width: 64em) { .page-header { padding: 5rem 6rem; } }
@media screen and (min-width: 42em) and (max-width: 64em) { .page-header { padding: 3rem 4rem; } }
@media screen and (max-width: 42em) { .page-header { padding: 2rem 1rem; } }

.project-name { margin-top: 0; margin-bottom: 0.1rem; }
@media screen and (min-width: 64em) { .project-name { font-size: 3.25rem; } }
@media screen and (min-width: 42em) and (max-width: 64em) { .project-name { font-size: 2.25rem; } }
@media screen and (max-width: 42em) { .project-name { font-size: 1.75rem; } }

.project-tagline { margin-bottom: 2rem; font-weight: normal; opacity: 0.7; }
@media screen and (min-width: 64em) { .project-tagline { font-size: 1.25rem; } }
@media screen and (min-width: 42em) and (max-width: 64em) { .project-tagline { font-size: 1.15rem; } }
@media screen and (max-width: 42em) { .project-tagline { font-size: 1rem; } }

.main-content { word-wrap: break-word; }
.main-content :first-child { margin-top: 0; }
@media screen and (min-width: 64em) { .main-content { max-width: 64rem; padding: 2rem 6rem; margin: 0 auto; font-size: 1.1rem; } }
@media screen and (min-width: 42em) and (max-width: 64em) { .main-content { padding: 2rem 4rem; font-size: 1.1rem; } }
@media screen and (max-width: 42em) { .main-content { padding: 2rem 1rem; font-size: 1rem; } }
.main-content kbd { background-color: #fafbfc; border: 1px solid #c6cbd1; border-bottom-color: #959da5; border-radius: 3px; box-shadow: inset 0 -1px 0 #959da5; color: #444d56; display: inline-block; font-size: 11px; line-height: 10px; padding: 3px 5px; vertical-align: middle; }
.main-content img { max-width: 100%; }
.main-content code { padding: 2px 4px; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 0.9rem; color: #567482; background-color: #f3f6fa; border-radius: 0.3rem; }
.main-content pre { padding: 0.8rem; margin-top: 0; margin-bottom: 1rem; font: 1rem Consolas, "Liberation Mono", Menlo, Courier, monospace; color: #567482; word-wrap: normal; background-color: #f3f6fa; border: solid 1px #dce6f0; border-radius: 0.3rem; }
.main-content pre > code { padding: 0; margin: 0; font-size: 0.9rem; color: #567482; word-break: normal; white-space: pre; background: transparent; border: 0; }
.main-content .highlight { margin-bottom: 1rem; }
.main-content .highlight pre { margin-bottom: 0; word-break: normal; }
.main-content .highlight pre, .main-content pre { padding: 0.8rem; overflow: auto; font-size: 0.9rem; line-height: 1.45; border-radius: 0.3rem; -webkit-overflow-scrolling: touch; }
.main-content pre code, .main-content pre tt { display: inline; max-width: initial; padding: 0; margin: 0; overflow: initial; line-height: inherit; word-wrap: normal; background-color: transparent; border: 0; }
.main-content pre code:before, .main-content pre code:after, .main-content pre tt:before, .main-content pre tt:after { content: normal; }
.main-content ul, .main-content ol { margin-top: 0; }
.main-content blockquote { padding: 0 1rem; margin-left: 0; color: #819198; border-left: 0.3rem solid #dce6f0; }
.main-content blockquote > :first-child { margin-top: 0; }
.main-content blockquote > :last-child { margin-bottom: 0; }
.main-content table { display: block; width: 100%; overflow: auto; word-break: normal; word-break: keep-all; -webkit-overflow-scrolling: touch; }
.main-content table th { font-weight: bold; }
.main-content table th, .main-content table td { padding: 0.5rem 1rem; border: 1px solid #e9ebec; }
.main-content dl { padding: 0; }
.main-content dl dt { padding: 0; margin-top: 1rem; font-size: 1rem; font-weight: bold; }
.main-content dl dd { padding: 0; margin-bottom: 1rem; }
.main-content hr { height: 2px; padding: 0; margin: 1rem 0; background-color: #eff0f1; border: 0; }

.site-footer { padding-top: 2rem; margin-top: 2rem; border-top: solid 1px #eff0f1; }
@media screen and (min-width: 64em) { .site-footer { font-size: 1rem; } }
@media screen and (min-width: 42em) and (max-width: 64em) { .site-footer { font-size: 1rem; } }
@media screen and (max-width: 42em) { .site-footer { font-size: 0.9rem; } }

.site-footer-owner { display: block; font-weight: bold; }

.site-footer-credits { color: #819198; }

/* Moving grid*/
.movegrid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 2em;
  text-align: center;
}

@media screen and (max-width: 900px) {
  .movegrid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (max-width: 600px) {
  .movegrid {
    grid-template-columns: 1fr;
  }
}

.card {
  padding: 1rem;
  border: 1px solid #e9ebec;
  border-radius: 8px;
  background: #fff;
}

.movegrid .card {
background: #fbeeb5;
border: 2px solid #000;
}

details {
  margin-bottom: 0.5rem;
}

/* Style all toggle blocks */
details.toggle {
  margin-bottom: 0.5rem; /* vertical spacing between toggles */
 padding-left: 1.5rem;
}

/* Keep the summary arrow visible and cursor pointer */
details.toggle summary {
  cursor: pointer;
  list-style: initial; /* ensures the arrow appears on Android and desktop */
  outline: none;       /* optional: remove focus outline */
  color: #159957;
  display: list-item;

}

/* Optional: tweak arrow size/position (works on most browsers) */
details.toggle summary::-webkit-details-marker {
  font-size: 1em;
}

/* ============================= */
/*      SISTEMA TIPOGRÁFICO      */
/* ============================= */

/* ----- H1 dentro del contenido ----- */
.main-content h1 {
  font-size: 2.4rem;
  font-weight: 800;
  color: #000;
  text-align: center;
  margin-top: 3rem;
  margin-bottom: 2rem;
  position: relative;
  display: inline-block;
  left: 50%;
  transform: translateX(-50%);
  padding-bottom: 12px;
}

.main-content h1::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 80%;
  height: 2px;
  background-color: #000000;
}

/* ----- H2 (##) – Título principal de sección ----- */
.main-content h2 {
  font-size: 1.9rem;
  font-weight: 700;
  color: #111;
  margin-top: 3rem;
  margin-bottom: 1.2rem;
  position: relative;
  display: inline-block;
  padding-bottom: 6px;
}

.main-content h2::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 80%;
  height: 3px;
  background-color: #ffe066;
}

/* ----- H3 (###) – Subapartados ----- */
.main-content h3 {
  font-size: 1.4rem;
  font-weight: 600;
  color: #222;
  margin-top: 2rem;
  margin-bottom: 0.8rem;
}

/* ----- H4 ----- */
.main-content h4 {
  font-size: 1.1rem;
  font-weight: 600;
  color: #444;
  margin-top: 1.5rem;
  margin-bottom: 0.6rem;
}

/* ----- Párrafos ----- */
.main-content p {
  font-size: 1.05rem;
  line-height: 1.7;
  color: #444;
}

/* ===== HORARIO ===== */
.main-content .schedule-table {
  display: table !important;
  width: 100%;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  table-layout: fixed !important;

  border: 1px solid #000 !important;
  border-bottom: 1px solid #000 !important;
}

.main-content .schedule-table th,
.main-content .schedule-table td {
  border: 1px solid #000 !important;
  border-top: 1px solid #000 !important;
  padding: 0 !important;
  text-align: center !important;
  vertical-align: middle !important;
  word-break: break-word;
  overflow-wrap: break-word;
}

.main-content .schedule-table td.cell.continuation {
  border-top: 0px solid white !important;
}

.main-content .schedule-table th {
  background: #fff !important;
}

.main-content .schedule-table td.time {
  background: #fff !important;
  font-weight: bold !important;
}

.main-content .schedule-table td.cell {
  background: #e7e7e7 !important;
}

/* bloques */
.main-content .schedule-table td.cell.has-block {
  background: transparent !important;
  position: relative;
  padding: 0 !important;
}

.main-content .schedule-table td.cell.has-block .block {
  position: absolute;
  inset: 0;
  display: flex;
  justify-content: center;
  align-items: center;
}

.main-content .schedule-table td.cell.has-block .block-a {
  background: #ffe066 !important;
  font-weight: bold;
}

.main-content .schedule-table td.cell.has-block .block-b {
  background: #ffd1dc !important;
  font-weight: bold;
}

.main-content .schedule-table td.cell.has-block .block .block-link {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  color: inherit;
  padding: 6px;
  box-sizing: border-box;
  font-size: 13px;
  line-height: 1.0;

  word-break: break-word;
  overflow-wrap: break-word;
}

/* borde inferior */
.main-content .schedule-table tbody tr:last-child td {
  border-bottom: 1px solid #000 !important;
}

.main-content .schedule-table tbody tr {
  height: 25px;
  min-height: 25px;
}

.main-content .schedule-table td.cell.has-block:not(.continuation) {
  border-bottom: 1px solid #000 !important;
}

/* El bloque ocupa toda la altura combinada visualmente */
.main-content .schedule-table td.cell.has-block .block {
  display: flex;
  justify-content: center;
  align-items: center;
}

/*ANCHURAS*/
@media screen and (min-width: 64em) {
  .main-content {
    max-width: 70rem;
    padding: 1rem 2rem;
  }
}

@media screen and (min-width: 42em) and (max-width: 64em) {
  .main-content {
    padding: 1rem 1rem;
  }
}

.main-content .schedule-table th,
.main-content .schedule-table td {
  white-space: normal;
}

@media screen and (max-width: 42em) {
  .main-content {
    padding: 1rem 0rem;
  }
}

/* SCROLL HORIZONTAL */
.table-container {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.main-content .schedule-table {
  min-width: 800px; /* ajusta según columnas */
}

.main-content .schedule-table td.time,
.main-content .schedule-table th:first-child {
  position: sticky;
  left: 0;
  background: #fff;
  z-index: 2;
}

.main-content .schedule-table td.cell.has-block .block-a,
.main-content .schedule-table td.cell.has-block .block-b {
  transition: background-color 0.2s ease;
}

.main-content .schedule-table td.cell.has-block:hover .block-a {
  background: #ffee00 !important;
}

.main-content .schedule-table td.cell.has-block:hover .block-b {
  background: #ffb7c5 !important;
}

.main-content .schedule-table td.cell.has-block:hover {
  cursor: pointer;
}

/* ESTILO PARA LA RADIO!! */
.radio-wrapper {
  max-width: 800px;
  margin: 20px auto;
  padding: 20px;
  font-family: system-ui, -apple-system, sans-serif;
  background: #faeaa2; 
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}

audio {
  display: none; /* Ocultamos el reproductor nativo */
}

.radio-widget {
  display: flex;
  gap: 15px;
  align-items: center;
  flex-wrap: wrap;
}

#cover {
  width: 100px;
  height: 100px;
  object-fit: cover;
  border-radius: 8px;
}

.radio-info {
  flex: 1;
  min-width: 200px;
}

#title {
  font-weight: bold;
  font-size: 1.4rem;
  margin-bottom: 2px;
}

#subtitle {
  font-size: 1rem;
  opacity: 0.8;
  margin-bottom: 6px;
}

.live {
  display: inline-block;
  color: #fff;
  background: #e53935;
  font-size: 0.8rem;
  font-weight: bold;
  padding: 2px 6px;
  border-radius: 6px;
  margin-bottom: 8px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.progress-container {
  width: 100%;
  height: 12px;
  background: #dcdcdc;
  border-radius: 6px;
  overflow: hidden;
  margin-top: 6px;
  position: relative;
}

#progress-bar {
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, #007acc, #00c6ff);
  transition: width 0.5s linear;
}

.progress-time {
  position: absolute;
  top: -20px;
  right: 0;
  font-size: 0.75rem;
  color: #555;
}

.controls {
  margin-top: 10px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.controls {
  margin-top: 10px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.icon-btn {
  background: #007acc;
  border: none;
  border-radius: 6px;
  padding: 5px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}

.icon-btn svg {
  display: block;
}

.volume-control {
  display: flex;
  align-items: center;
}

#volume {
  cursor: pointer;
}

/* Móvil */
@media (max-width: 600px) {
  .radio-widget {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  #cover {
    width: 80px;
    height: 80px;
    margin-bottom: 10px;
  }

  #title { font-size: 1.2rem; }
  #subtitle { font-size: 0.9rem; }
  .progress-container { height: 10px; }
  .progress-time { top: -18px; font-size: 0.7rem; }
}

/* Pantallas grandes */
@media (min-width: 900px) {
  .radio-wrapper { padding: 25px; }
  #title { font-size: 1.6rem; }
  .progress-container { height: 14px; }
}

/*GRID DE PROGRAMAS*/

/* Grid general */
.grid-container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(175px, 1fr)); /* cada columna mínimo 175px */
  gap: 20px;
  max-width: 1000px;
  margin: 20px auto;
  padding: 0 10px;
}

/* Cada bloque */
.grid-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  text-decoration: none;
  color: #333;
  transition: transform 0.2s;
}

/* Imagen circular fija */
.grid-item img {
  width: 175px;      /* ancho fijo */
  height: 175px;     /* alto fijo */
  object-fit: cover; /* recorta sin deformar */
  border-radius: 50%;/* hace la imagen circular */
  border: 2px solid #000000;
  margin-bottom: 8px;
}

/* Título en negrita */
.grid-item span {
  font-size: 1.1rem;
  font-weight: bold;
  color: #333;
}

/* Hover ligero */
.grid-item:hover {
  transform: translateY(-5px);
}

/* FOOTER*/
.site-footer {
  background: #ffe066;
  padding: 20px 15px;
  text-align: center;
  border-top: 1px solid #ccc;
  font-family: system-ui, -apple-system, sans-serif;
}

.footer-columns {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  max-width: 1000px;
  margin: 0 auto 15px auto;
  gap: 20px;
}

.footer-columns {
  display: grid;
  grid-template-columns: 1fr 1fr; /* Siempre 2 columnas */
  gap: 40px;
  align-items: start;
}

/* Evita que el contenido rompa la columna */
.footer-col {
  min-width: 0;
}

@media (max-width: 768px) {
  .footer-columns {
    grid-template-columns: 1fr;
  }
}
/* Wrapper de imagen + texto */
.logo-text-wrapper {
  display: flex;
  flex-direction: row; /* imagen a la izquierda, texto a la derecha */
  align-items: center;
  gap: 10px;
}

/* Columna izquierda */
.contact-col {
  flex: 1 1 250px;
  text-align: left; /* aseguramos que no se centre el texto */
}

/* Imagen */
.footer-logo {
  width: 150px;
  height: 150px;
  object-fit: contain;
  border-radius: 5px;
}

/* Texto */
.contact-text p {
  margin: 0;
  font-size: 1.3rem; /* aquí defines el tamaño */
}

/* Botón subir al inicio */
.back-to-top {
  margin-top: 10px;
  text-align: center;
}

.back-to-top button {
  background: #007acc;
  color: white;
  border: none;
  padding: 8px 15px;
  border-radius: 5px;
  cursor: pointer;
  font-size: 0.9rem;
}

.back-to-top button:hover {
  background: #005fa3;
}

/* Copyright con icono */
.site-footer .copyright {
  margin-top: 10px;
  font-size:1.2rem;
  color: #666;
  font-weight: bold;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 5px; /* espacio entre icono y texto */
}

.site-footer .copyright-icon {
  font-size: 1.2rem;
  color: #007acc;
}

.footer-social {
  margin-top: 20px;
  text-align: center;
}

.footer-social-text {
  font-weight: bold;
  margin-bottom: 8px;
  font-size: 1.3rem;
  color: #333;
}

.footer-social-buttons {
  display: flex;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
}

.social-btn {
  display: inline-block;
  padding: 6px 12px;
  border-radius: 6px;
  color: white;
  font-weight: bold;
  text-decoration: none;
  font-size: 0.85rem;
  transition: background 0.3s;
}

.social-btn.blue-sky { background-color: #d6eefc; }
.social-btn.mastodon { background-color: #d8d9ff; }
.social-btn.telegram { background-color: #dff4ff; }

.social-btn:hover {
  opacity: 0.8;
}

.footer-live-text {
  font-size: 1.3rem;
  font-weight: bold;
  margin-bottom: 10px; /* opcional, para separar del reproductor */
  color: #333;
}

/* ===== Footer Reproductor Estilo Principal ===== */
.footer-col .radio-wrapper {
  max-width: 800px;
  margin: 20px auto;
  padding: 20px;
  font-family: system-ui, -apple-system, sans-serif;
  background: #faeaa2; 
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  box-sizing: border-box;
}

/* Audio oculto */
#footer-radio {
  display: none; /* Ocultamos el reproductor nativo */
}

/* Radio widget */
/* Caja del reproductor fija */
.footer-col .radio-wrapper {
  max-width: 100%;
  width: 100%;
  overflow: hidden;
}

/* Imagen de portada */
#footer-cover {
  width: 100px;
  height: 100px;
  object-fit: cover;
  border-radius: 8px;
}

/* Información de la canción/programa */
.radio-info {
  flex: 1;
  min-width: 200px;
}

/* Contenedor del título */
/* ============================= */
/*   SCROLL HORIZONTAL LIMPIO    */
/* ============================= */

.footer-title-wrapper {
  overflow: hidden;
  position: relative;
  width: 100%;
}

#footer-title {
  white-space: nowrap;
  display: inline-block;
}

/* Animación */
#footer-title.scrolling {
  animation: scrollText 18s linear infinite;
}

@keyframes scrollText {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-100%); }
}

#footer-subtitle {
  font-size: 1rem;
  opacity: 0.8;
  margin-bottom: 6px;
}

/* Live badge */
#footer-live-badge {
  display: inline-block;
  color: #fff;
  background: #e53935;
  font-size: 0.8rem;
  font-weight: bold;
  padding: 2px 6px;
  border-radius: 6px;
  margin-bottom: 8px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* Barra de progreso */
.footer-col .progress-container {
  width: 100%;
  height: 12px;
  background: #dcdcdc;
  border-radius: 6px;
  overflow: hidden;
  margin-top: 6px;
  position: relative;
}

#footer-progress-bar {
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, #007acc, #00c6ff);
  transition: width 0.5s linear;
}

.footer-col .progress-time {
  position: absolute;
  top: -20px;
  right: 0;
  font-size: 0.75rem;
  color: #555;
}

/* Controles */
.footer-col .controls {
  margin-top: 10px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.footer-col .icon-btn {
  background: #007acc;
  border: none;
  border-radius: 6px;
  padding: 5px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}

.footer-col .icon-btn svg {
  display: block;
}

.footer-col .volume-control {
  display: flex;
  align-items: center;
}

#footer-volume {
  cursor: pointer;
}

/* Responsive: móvil */
@media (max-width: 600px) {
  .footer-col .radio-widget {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  #footer-cover {
    width: 80px;
    height: 80px;
    margin-bottom: 10px;
  }

  #footer-title { font-size: 1.2rem; }
  #footer-subtitle { font-size: 0.9rem; }
  .footer-col .progress-container { height: 10px; }
  .footer-col .progress-time { top: -18px; font-size: 0.7rem; }
}

/* Pantallas grandes */
@media (min-width: 900px) {
  .footer-col .radio-wrapper { padding: 25px; }
  #footer-title { font-size: 1.6rem; }
  .footer-col .progress-container { height: 14px; }
}

/* HEADER */
/* Wrapper para título + iconos */
.header-title-wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8rem; /* espacio entre iconos y texto */
  margin-bottom: 1.3rem; /* separa del menú */
}

/* Imágenes laterales */
.header-icon {
  width: 150px;
  height: 150px;
  object-fit: contain;
}

/* Reducimos altura del header */
.page-header {
  padding: 2rem 1.5rem;
}

/* Ajuste de título y tagline */
.project-name {
  font-size: 3rem; /* más compacto */
  margin: 1rem;
  text-align: center;
}

.project-tagline {
  font-size: 1.6rem;
  margin: 0.1rem 0 0;
  text-align: center;
}

/* ============================= */
/*      BOTONES SOCIALES        */
/* ============================= */

.social-icons {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items: center;
}

.social-icon {
  width: 42px;
  height: 42px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.social-icon svg {
  width: 35px;
  height: 35px;
  fill: #fff;
}

.social-icon:hover {
  transform: translateY(-3px);
  opacity: 0.85;
}

/* Colores oficiales */

.social-icon.instagram { background: #ffc0cb; }
.social-icon.facebook { background: #8989ff; }
.social-icon.telegram { background: #dff4ff; }
.social-icon.bluesky { background: #dff4ff; }
.social-icon.mastodon { background: #d8d9ff; }
.social-icon.letterboxd { background: #202830; }
.social-icon.ivoox { background: #ffd589; }
.social-icon.youtube { background: #ffb1b1; }

/* ============================= */
/*      GRID ENLACES EXTERNOS       */
/* ============================= */

.enlaces-audio {
  margin-top: 2rem;
}

/* Grid base (móvil primero) */
.grid-links {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin-bottom: 2rem;
}

/* Tablet */
@media (min-width: 600px) {
  .grid-links {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Desktop */
@media (min-width: 900px) {
  .grid-links {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* Estilo de cada link */
.grid-link {
  display: block;
  padding: 14px;
  background: #faeaa2;
  border: 2px solid #000;
  border-radius: 10px;
  text-decoration: none;
  font-weight: bold;
  color: #000;
  transition: all 0.2s ease;
}

.grid-link:hover {
  background: #ffe066;
  transform: translateY(-3px);
}

/* Bloque radio */
.radio-bloque {
  margin-bottom: 2rem;
}

.radio-titulo {
  margin-bottom: 1rem;
}

.radio-titulo a {
  text-decoration: none;
  color: #000;
  border-bottom: 2px solid #ffe066;
}

.radio-titulo a:hover {
  color: #555;
}

/* ============================= */
/*     GRID RADIOS (PADRE)       */
/* ============================= */

.radios-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  margin-bottom: 3rem;
}

/* Tablet */
@media (min-width: 700px) {
  .radios-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Desktop */
@media (min-width: 1100px) {
  .radios-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* ============================= */
/*          RADIO CARD           */
/* ============================= */

.radio-card {
  background: #fff;
  border: 2px solid #000;
  border-radius: 12px;
  padding: 1.2rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

/* Título radio */
.radio-titulo {
  margin: 0;
}

.radio-titulo a {
  text-decoration: none;
  color: #000;
  font-weight: bold;
  font-size: 1.1rem;
}

.radio-titulo a:hover {
  text-decoration: underline;
}

/* ============================= */
/*    GRID PROGRAMAS INTERNA     */
/* ============================= */

.radio-programas {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
}

.radio-programa {
  display: block;
  padding: 8px 10px;
  background: #faeaa2;
  border-radius: 6px;
  text-decoration: none;
  color: #000;
  font-weight: 600;
  transition: all 0.2s ease;
}

.radio-programa:hover {
  background: #ffe066;
  transform: translateY(-3px);
}


/* ============================= */
/*    BLOG    */
/* ============================= */

.post-preview {
  display: flex;
  gap: 0px; /* espacio mínimo entre imagen y texto */
  margin-bottom: 10px; /* más compacto que antes */
  align-items: flex-start;
}

.post-preview-image img,
.post-featured-image {
  float: left;
  width: 300px; /* más pequeña para que el texto se acerque */
  max-width: 90%;
  margin: 0 5px 0px 0; /* margen mínimo a derecha y debajo */
  border-radius: 4px;
}

.latest-posts {
  display: block;
  margin-bottom: 1.5rem;
}

.latest-post {
  margin-bottom: 1.5rem;
}

.latest-post-content {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}

.blog-summary-image {
  width: 200px;
  height: 200px;
  object-fit: cover;
  border-radius: 8px;
  flex: 0 0 auto;
}

.latest-post-content p {
  margin: 0;
}

.post-preview-content {
  flex: 1;
  line-height: 1.35; /* texto más compacto */
  margin: 0;
}

.post-content::after {
  content: "";
  display: block;
  clear: both;
}

.pagination {
  margin-top: 20px;
}

.pagination a {
  margin-right: 8px;
  font-weight: bold;
  text-decoration: none;
}

.post-meta {
  margin: 2px 0 6px 0;
  font-size: 0.85em;
  color: #666;
}

.post-preview-content h2 {
  margin-bottom: 0px;
}

/* Responsive: móvil */
@media (max-width: 768px) {
  .post-preview {
    flex-direction: column;
  }

  .post-preview-image img,
  .post-featured-image {
    float: none;
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 0 0 12px 0; /* solo margen debajo en móvil */
  }

  .post-preview-content {
    line-height: 1.5;
  }
}
+/* Default layout */
.page-content,
.wrapper,
.latest-posts {
  padding-left: 20px;
  padding-right: 20px;
}

/* Mobile layout */
@media screen and (max-width: 600px) {
  .page-content,
  .wrapper,
  .latest-posts {
    padding-left: 16px;
    padding-right: 16px;
  }
}
