/* Rebel Nomada — sistema visual v1.0 (ver CODICE_VISUAL_REBEL_NOMADA_v1.0.docx) */

/* Tipografia de marca: Cinzel (titulos), Bebas Neue (subtitulos), Cormorant Garamond (cuerpo/contenido) */
/* Creator Genius queda cargada pero sin uso activo, por si se retoma en el futuro. */
@font-face{ font-family:'Cinzel'; src:url('../fonts/Cinzel-Regular.otf') format('opentype'); font-weight:400; font-style:normal; font-display:swap;}
@font-face{ font-family:'Cinzel'; src:url('../fonts/Cinzel-Bold.otf') format('opentype'); font-weight:700; font-style:normal; font-display:swap;}
@font-face{ font-family:'Cinzel'; src:url('../fonts/Cinzel-Black.otf') format('opentype'); font-weight:900; font-style:normal; font-display:swap;}
@font-face{ font-family:'Bebas Neue'; src:url('../fonts/BebasNeue-Regular.woff2') format('woff2'), url('../fonts/BebasNeue-Regular.woff') format('woff'), url('../fonts/BebasNeue-Regular.ttf') format('truetype'); font-weight:400; font-style:normal; font-display:swap;}
@font-face{ font-family:'Creator Genius'; src:url('../fonts/CreatorGenius-Regular.ttf') format('truetype'); font-weight:400; font-style:normal; font-display:swap;}
@font-face{ font-family:'Cormorant Garamond'; src:url('../fonts/CormorantGaramond-VariableFont_wght.ttf') format('truetype'); font-weight:300 700; font-style:normal; font-display:swap;}
@font-face{ font-family:'Cormorant Garamond'; src:url('../fonts/CormorantGaramond-Italic-VariableFont_wght.ttf') format('truetype'); font-weight:300 700; font-style:italic; font-display:swap;}

:root{
  --negro-volcanico: #1B1A17;
  --hueso-antiguo: #F2EBDD;
  --arena-desierto: #D7B98C;
  --piedra-granitica: #8B867C;
  --cobre-envejecido: #8B5E3C;
  --verde-gobernadora: #5F6A45;

  --bg: var(--hueso-antiguo);
  --surface: #EAE1CB;
  --text: var(--negro-volcanico);
  --text-muted: #3E3A33;
  --accent: var(--cobre-envejecido);
  --accent-dark: #6E4930;
  --line: rgba(27,26,23,0.16);
}
*{box-sizing:border-box; margin:0; padding:0;}
body{
  background: var(--bg);
  color: var(--text);
  font-family: 'Cormorant Garamond', 'Spectral', Georgia, serif;
  line-height: 1.7;
}
h1{
  font-family: 'Cinzel', Georgia, serif;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: 0.5px;
}
h2,h3{
  font-family: 'Bebas Neue', sans-serif;
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: 0.5px;
  text-transform: uppercase;
}
.mono, .card-city, .level, .blog-tag, .blog-meta, .price, .footer-bottom, footer h4, .breadcrumb, .trust-logos, .trust-badge, .testi-name, .form-field label{
  font-family: 'IBM Plex Mono', monospace;
}
nav.main-nav, .btn, .eyebrow, .pill, .value-num{
  font-family: 'Bebas Neue', sans-serif;
  letter-spacing: 1.5px;
}
/* "Rebel Nomada" del header/footer con la misma fuente del eslogan
   "No seguimos caminos." (Cinzel bold, igual que los h1) */
.logo-text{ font-family:'Cinzel', Georgia, serif; font-weight:700; letter-spacing:0.5px;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:1180px; margin:0 auto; padding:0 24px;}
.btn{
  display:inline-block;
  background: var(--accent);
  color: var(--hueso-antiguo);
  font-weight:500;
  padding: 13px 26px;
  border-radius: 2px;
  font-size:13px;
  letter-spacing:1px;
  text-transform:uppercase;
  border:1px solid var(--accent);
  cursor:pointer;
  transition: background .15s ease, color .15s ease;
}
.btn:hover{ background: var(--accent-dark); border-color:var(--accent-dark);}
.btn-ghost{
  background:transparent;
  border:1px solid var(--piedra-granitica);
  color: var(--text);
}
.btn-ghost:hover{ border-color: var(--accent); color: var(--accent);}
.btn-sm{ padding:8px 16px; font-size:11px;}

/* Header */
header{
  position:sticky; top:0; z-index:50;
  background: var(--hueso-antiguo);
  border-bottom:1px solid var(--line);
}
header .wrap{ display:flex; align-items:center; justify-content:space-between; height:80px;}
.logo{ font-family:'Cinzel'; font-weight:600; font-size:22px; letter-spacing:0.5px;}
.logo span{color:var(--accent); font-style:italic;}
.logo-mark{ display:flex; align-items:center; gap:12px;}
.logo-mark img{ height:45px; width:auto;}
footer .logo-mark img{ height:64px;}
nav.main-nav{ display:flex; gap:30px; font-size:12px; font-weight:500; letter-spacing:1px; text-transform:uppercase;}
nav.main-nav a:hover, nav.main-nav a.active{color:var(--accent);}
.header-actions{ display:flex; align-items:center; gap:16px;}
.header-actions .btn{ padding:10px 20px; font-size:11px;}

/* Menu movil */
.menu-toggle{
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width:38px; height:38px; background:none; border:1px solid var(--piedra-granitica);
  border-radius:2px; cursor:pointer; padding:0 8px;
}
.menu-toggle span{ display:block; height:2px; width:100%; background:var(--text);}
.menu-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg);}
.menu-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0;}
.menu-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg);}

.mobile-menu{
  display:none; flex-direction:column; gap:2px;
  background:var(--bg); border-top:1px solid var(--line);
  max-height:0; overflow:hidden; transition:max-height .25s ease;
}
.mobile-menu.open{ max-height:400px;}
.mobile-menu a{
  padding:16px 24px; border-bottom:1px solid var(--line);
  font-family:'Bebas Neue'; letter-spacing:1.5px; font-size:16px;
}
.mobile-menu a.active{ color:var(--accent);}
.mobile-menu .btn{ margin:16px 24px;}

/* Hero */
.hero{
  position:relative;
  height: 86vh; min-height:540px;
  display:flex; align-items:flex-end;
  background: linear-gradient(180deg, rgba(27,26,23,0.05) 0%, rgba(27,26,23,0.35) 55%, rgba(27,26,23,0.82) 100%), center/cover no-repeat;
}
.hero.hero-sm{ height:38vh; min-height:260px;}
.hero-content{ padding-bottom:60px; max-width:640px;}
.eyebrow{ color:var(--arena-desierto); font-size:12px; font-weight:500; letter-spacing:2.5px; text-transform:uppercase; margin-bottom:16px; display:block;}
.hero h1{ font-size:48px; margin-bottom:18px; color:var(--hueso-antiguo); font-weight:700;}
.hero.hero-sm h1{ font-size:36px; margin-bottom:8px;}
.hero p{ color:var(--hueso-antiguo); opacity:0.85; font-size:17px; max-width:480px; margin-bottom:28px; font-family:'Cormorant Garamond';}
.hero-ctas{ display:flex; gap:14px;}
/* "Hablar con un asesor" en el hero: mismo color que el fondo de la pagina
   (--bg, Hueso Antiguo) para que resalte solido sobre la foto oscura del hero,
   en vez del ghost transparente que usa btn-ghost en el resto del sitio. */
.hero-ctas .btn-ghost{ background:var(--bg); border-color:var(--bg); color:var(--text);}

/* Trust bar */
.trust{ background: var(--surface); border-bottom:1px solid var(--line); padding: 20px 0;}
.trust .wrap{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:20px;}
.trust-badge{ display:flex; align-items:center; gap:10px; font-size:13px; color:var(--text-muted); font-family:'IBM Plex Mono';}
.trust-badge b{ color:var(--text);}
.trust-logos{ display:flex; gap:26px; font-size:11px; letter-spacing:1px; color:var(--piedra-granitica); text-transform:uppercase; flex-wrap:wrap; font-family:'IBM Plex Mono';}

section{ padding: 84px 0;}
section.tight{ padding:52px 0;}
.section-head{ display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:34px; flex-wrap:wrap; gap:16px;}
.section-head h2{ font-size:34px;}
.section-head p{ color:var(--text-muted); font-size:15px; max-width:420px;}

/* Buscador de experiencias */
.search-box{
  background: var(--surface); border:1px solid var(--line); border-radius:2px;
  padding:28px; margin-bottom:36px;
}
.search-field input{ font-size:17px; }
.search-filters{
  display:grid; grid-template-columns:repeat(4, 1fr); gap:16px; margin-top:18px;
}
.search-actions{ display:flex; gap:12px; margin-top:22px; }
@media (max-width: 900px){
  .search-filters{ grid-template-columns:1fr 1fr; }
}
@media (max-width: 480px){
  .search-filters{ grid-template-columns:1fr; }
}

/* Filter pills */
.filters{ display:flex; gap:10px; margin-bottom:32px; flex-wrap:wrap;}
.pill{
  padding:9px 18px; border-radius:100px; border:1px solid var(--piedra-granitica);
  font-size:11px; font-weight:500; letter-spacing:1px; text-transform:uppercase;
  color:var(--text-muted); cursor:pointer; background:transparent; font-family:'IBM Plex Mono';
}
.pill.active{ background:var(--accent); border-color:var(--accent); color:var(--hueso-antiguo);}

/* Cards grid */
.grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:24px;}
.grid.grid-2{ grid-template-columns:repeat(2,1fr);}
.card{ background: var(--surface); border:1px solid var(--line); border-radius:2px; overflow:hidden;}
.card-img{ height:200px; background-size:cover; background-position:center; position:relative; background-color:#DCD2B8;}
.level{ position:absolute; top:14px; right:14px; background:rgba(27,26,23,0.78); color:var(--hueso-antiguo); padding:5px 12px; border-radius:2px; font-size:11px; letter-spacing:1px;}
.card-body{ padding:22px;}
.card-city{ font-size:11px; color:var(--accent); letter-spacing:1.5px; text-transform:uppercase; margin-bottom:10px;}
.card-title{ font-family:'Bebas Neue'; font-weight:400; font-size:22px; letter-spacing:0.5px; text-transform:uppercase; margin-bottom:10px;}
.card-desc{ font-size:14px; color:var(--text-muted); margin-bottom:14px; font-family:'Cormorant Garamond';}
.card-meta{ display:flex; align-items:center; justify-content:space-between; margin-top:16px;}
.price{ font-size:12px; color:var(--text-muted); font-family:'IBM Plex Mono';}
.price b{ color:var(--text); font-size:16px; font-family:'Cormorant Garamond';}
.price.tbd{ font-style:italic;}

/* Value props ("Tres senales" + 1 practica) */
.values{ background:var(--negro-volcanico); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.values-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:32px;}
.value-item h3{ font-size:22px; margin-bottom:8px; color:var(--hueso-antiguo);}
.value-item p{ color:var(--arena-desierto); font-size:14px; font-family:'Cormorant Garamond';}
.value-num{ color:var(--cobre-envejecido); font-size:12px; font-weight:600; margin-bottom:10px; display:block; letter-spacing:1px;}

/* Testimonials */
.testi-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.testi{ background:var(--surface); border:1px solid var(--line); border-radius:2px; padding:24px;}
.stars{ color:var(--cobre-envejecido); font-size:14px; margin-bottom:12px;}
.testi p{ font-size:14px; color:var(--text-muted); margin-bottom:14px; font-family:'Cormorant Garamond'; font-style:italic;}
.testi-name{ font-size:12px; font-weight:500; font-family:'IBM Plex Mono';}

/* Blog */
.blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.blog-img{ height:160px; width:100%; background-size:cover; background-position:center; border-radius:2px; margin-bottom:14px; background-color:#DCD2B8;}
.blog-tag{ font-size:10px; color:var(--accent); letter-spacing:1.5px; text-transform:uppercase;}
.blog-title{ font-family:'Bebas Neue'; font-size:20px; letter-spacing:0.5px; text-transform:uppercase; margin-top:8px;}
.blog-desc{ font-size:14px; color:var(--text-muted); margin-top:8px; font-family:'Cormorant Garamond';}
.blog-meta{ font-size:11px; color:var(--piedra-granitica); margin-top:6px; font-family:'IBM Plex Mono';}
.blog-post-body{ font-size:18px; color:var(--text); font-weight:500; max-width:720px; font-family:'Cormorant Garamond'; line-height:1.85; letter-spacing:0.2px;}
.blog-post-body p{ margin-bottom:24px;}
.blog-post-body b{ color:var(--text); font-weight:700;}
.blog-post-img{ margin:8px 0 32px;}
.blog-post-img img{ width:100%; border-radius:2px; display:block;}
.blog-post-img figcaption{ font-size:13px; color:var(--piedra-granitica); font-family:'IBM Plex Mono'; margin-top:10px;}

/* Galeria */
.gallery-tour{ margin-bottom:52px;}
.gallery-tour-head{ display:flex; align-items:baseline; justify-content:space-between; margin-bottom:16px; flex-wrap:wrap; gap:10px;}
.gallery-tour-head h3{ font-size:24px;}
.gallery-tour-link{ font-family:'IBM Plex Mono'; font-size:12px; color:var(--accent); letter-spacing:0.5px;}
.gallery-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(220px,1fr)); gap:12px;}
.gallery-photo{ height:220px; background-size:cover; background-position:center; border-radius:2px; background-color:#DCD2B8;}

/* Encuesta de satisfaccion (formulario publico) */
.rating-input{ display:flex; gap:8px; flex-wrap:wrap; margin-top:4px; }
.rating-input label{
  display:flex; align-items:center; gap:6px; border:1px solid var(--piedra-granitica);
  border-radius:2px; padding:10px 16px; font-family:'IBM Plex Mono'; font-size:14px;
  color:var(--text-muted); cursor:pointer; background:var(--surface);
}
.rating-input input{ accent-color:var(--accent); }
.rating-input label:has(input:checked){ background:var(--accent); border-color:var(--accent); color:var(--hueso-antiguo); }
.form-field-hint{ font-size:12px; color:var(--piedra-granitica); font-family:'IBM Plex Mono'; margin-top:6px; }

/* Promo de canalizacion de aventura */
.promo-canalizacion{
  display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
  background:var(--negro-volcanico); border:1px solid var(--line); border-radius:2px;
  padding:32px 36px;
}
.promo-canalizacion h3{ color:var(--hueso-antiguo); font-size:24px; margin-bottom:8px; }
.promo-canalizacion p{ color:var(--arena-desierto); font-size:15px; font-family:'Cormorant Garamond'; max-width:520px; }
@media (max-width: 900px){
  .promo-canalizacion{ padding:26px; }
}

/* Mapa de contacto */
.map-frame{
  width:100%; height:340px; border:1px solid var(--line); border-radius:2px;
  filter: grayscale(35%) sepia(15%) contrast(1.05) brightness(0.95);
}

/* Formularios */
.form-field{ margin-bottom:18px;}
.form-field label{ display:block; font-size:11px; color:var(--text-muted); margin-bottom:6px; font-family:'IBM Plex Mono'; letter-spacing:0.5px; text-transform:uppercase;}
.form-field input, .form-field textarea, .form-field select{
  width:100%; background:var(--surface); border:1px solid var(--piedra-granitica); border-radius:2px;
  padding:12px 14px; color:var(--text); font-family:'Cormorant Garamond'; font-size:17px;
}
.form-field textarea{ min-height:120px; resize:vertical;}
.alert{ padding:14px 18px; border-radius:2px; font-size:15px; margin-bottom:24px; font-family:'Cormorant Garamond';}
.alert-ok{ background:rgba(95,106,69,0.15); border:1px solid var(--verde-gobernadora); color:#3d4630;}
.alert-err{ background:rgba(139,94,60,0.15); border:1px solid var(--cobre-envejecido); color:#6e4930;}

/* Footer */
footer{ background:var(--negro-volcanico); color:var(--hueso-antiguo); padding:56px 0 28px;}
.footer-grid{ display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:32px; margin-bottom:40px;}
footer h4{ font-size:11px; text-transform:uppercase; letter-spacing:1.5px; margin-bottom:16px; color:var(--arena-desierto);}
footer ul{ list-style:none;}
footer li{ margin-bottom:10px; font-size:15px; font-family:'Cormorant Garamond'; color:var(--hueso-antiguo);}
footer li a:hover{ color:var(--arena-desierto);}
.footer-bottom{ border-top:1px solid rgba(242,235,221,0.15); padding-top:24px; display:flex; justify-content:space-between; font-size:11px; color:var(--piedra-granitica); flex-wrap:wrap; gap:12px;}

.whatsapp-fab{
  position:fixed; bottom:28px; right:28px; z-index:60;
  background:var(--verde-gobernadora); color:var(--hueso-antiguo); width:54px; height:54px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; font-size:24px; font-weight:700;
  box-shadow:0 6px 18px rgba(27,26,23,0.35);
}

.breadcrumb{ font-size:11px; color:var(--piedra-granitica); margin-bottom:20px; letter-spacing:0.5px;}
.breadcrumb a:hover{ color:var(--accent);}

@media (max-width: 900px){
  section{ padding:52px 0;}
  section.tight{ padding:36px 0;}
  .wrap{ padding:0 18px;}

  header .wrap{ height:64px;}
  nav.main-nav, .header-actions{ display:none;}
  .menu-toggle{ display:flex;}
  .mobile-menu{ display:flex;}

  .hero{ height:78vh; min-height:460px;}
  .hero h1{font-size:34px;}
  .hero p{ font-size:15px;}
  .eyebrow{ font-size:11px;}

  .section-head h2{ font-size:26px;}
  .grid, .testi-grid, .blog-grid, .values-grid, .grid-2{grid-template-columns:1fr;}
  .values{ background:var(--negro-volcanico);}
  .values-grid{ gap:24px;}

  .trust .wrap{ flex-direction:column; align-items:flex-start; gap:12px;}
  .trust-logos{ gap:16px;}

  .footer-grid{grid-template-columns:1fr;}
  .footer-bottom{ flex-direction:column; align-items:flex-start;}

  .whatsapp-fab{ width:50px; height:50px; bottom:18px; right:18px;}
}

@media (max-width: 480px){
  .hero-content{ padding-bottom:40px;}
  .hero h1{ font-size:28px;}
  .card-title{ font-size:19px;}
  .value-item h3{ font-size:19px;}
}

/* ---------------------------------------------------------------
   Pagina de experiencia (detalle)
   PC: contenido a la izquierda + tarjeta de reserva fija a la derecha.
   Movil: titulo -> foto de portada -> precio con botones lado a lado -> resto.
--------------------------------------------------------------- */
.exp-grid{
  display:grid; grid-template-columns:minmax(0,2fr) minmax(280px,1fr);
  column-gap:48px; align-items:start;
  grid-template-areas:"head aside" "cover aside" "body aside";
}
.exp-head{ grid-area:head;}
.exp-cover{
  grid-area:cover; width:100%; aspect-ratio:16/9;
  background-size:cover; background-position:center; background-color:#DCD2B8;
  border-radius:2px; margin-bottom:28px; cursor:pointer;
}
.exp-aside{ grid-area:aside; position:sticky; top:104px;}
.exp-body{ grid-area:body;}
.exp-fecha{
  font-family:'IBM Plex Mono'; font-size:13px; color:var(--text-muted);
  border-bottom:1px solid var(--line); padding-bottom:14px; margin-bottom:14px;
}
.exp-fecha b{ color:var(--text); font-weight:500;}
.exp-actions{ display:flex; flex-direction:column; gap:12px;}
.exp-actions .btn{ width:100%; text-align:center;}

/* Galeria al final de la experiencia */
.exp-gallery{ margin-top:44px;}
.exp-gallery h2{ font-size:26px; margin-bottom:16px;}
.exp-gallery .gallery-photo{ cursor:pointer; transition:opacity .15s ease;}
.exp-gallery .gallery-photo:hover{ opacity:0.85;}

/* Lightbox (foto ampliada al dar clic) */
.lightbox{
  position:fixed; inset:0; z-index:100; background:rgba(27,26,23,0.93);
  display:none; align-items:center; justify-content:center; padding:24px;
}
.lightbox.open{ display:flex;}
.lightbox img{ max-width:92vw; max-height:88vh; border-radius:2px;}
.lightbox-close{
  position:absolute; top:14px; right:20px; background:none; border:none;
  color:var(--hueso-antiguo); font-size:38px; cursor:pointer; line-height:1;
}

@media (max-width: 900px){
  .exp-grid{ grid-template-columns:1fr; grid-template-areas:"head" "cover" "aside" "body";}
  .exp-cover{ margin-bottom:20px;}
  .exp-aside{ position:static; margin-bottom:28px;}
  /* Botones uno al lado del otro para aprovechar el ancho */
  .exp-actions{ flex-direction:row;}
  .exp-actions .btn{ flex:1; padding-left:10px; padding-right:10px; font-size:12px;}
}

/* ---------------------------------------------------------------
   Ficha técnica (experiencia.php) — bloque desplegable "Ver ficha
   técnica" y sus tipos de sección (lista, datos, cronograma, tabla, mapa).
   --------------------------------------------------------------- */
.ficha-panel{ margin-top:40px;}
.ficha-title{ font-size:24px; margin-bottom:14px; color:var(--text);}
.ficha-list{ list-style:none; padding:0; margin:0;}
.ficha-list li{
  position:relative; padding:8px 0 8px 26px; border-bottom:1px solid var(--line);
}
.ficha-list li::before{
  content:""; position:absolute; left:4px; top:16px; width:8px; height:8px;
  background:var(--accent); border-radius:50%;
}
.ficha-extras{ width:100%; border-collapse:collapse;}
.ficha-extras td{ padding:10px 0; border-bottom:1px solid var(--line);}
.ficha-extras-concepto{ color:var(--text);}
.ficha-extras-precio{ text-align:right; font-family:'IBM Plex Mono', monospace; white-space:nowrap; color:var(--text-muted);}

.ficha-tecnica-wrap{ margin-top:40px;}
.ficha-toggle{ display:inline-block;}
.ficha-tecnica{
  margin-top:28px; padding-top:8px;
  border-top:1px solid var(--line);
}
.ficha-tecnica[hidden]{ display:none;}
.ficha-tecnica-seccion{ margin-top:34px;}
.ficha-tecnica-seccion:first-child{ margin-top:20px;}
.ficha-tecnica-seccion .ficha-title{ font-size:22px;}

/* Tipo "datos": tarjetas rótulo + valor */
.ficha-datos-grid{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); gap:16px;
}
.ficha-dato{
  background:var(--surface); border:1px solid var(--line); border-radius:2px; padding:16px 18px;
}
.ficha-dato-rotulo{
  display:block; font-family:'Bebas Neue', sans-serif; letter-spacing:1px; text-transform:uppercase;
  font-size:13px; color:var(--accent); margin-bottom:4px;
}
.ficha-dato-valor{ display:block; color:var(--text);}

/* Tipo "timeline": cronograma vertical */
.ficha-timeline{ list-style:none; padding:0; margin:0;}
.ficha-timeitem{
  display:grid; grid-template-columns:110px 1fr; gap:18px;
  padding:14px 0; border-bottom:1px solid var(--line);
}
.ficha-time{
  font-family:'IBM Plex Mono', monospace; font-size:13px; color:var(--accent); padding-top:2px;
}
.ficha-time-cuerpo b{ color:var(--text);}
.ficha-time-cuerpo p{ color:var(--text-muted); margin-top:4px;}

/* Tipo "mapa": iframe embebido */
.ficha-mapa{ border-radius:2px; overflow:hidden; border:1px solid var(--line);}
.ficha-mapa iframe{ width:100%; height:320px; border:0; display:block;}

@media (max-width: 640px){
  .ficha-timeitem{ grid-template-columns:1fr; gap:4px;}
}

/* ---------------------------------------------------------------
   Entregable por persona (ficha-personal.php) — checklist marcable
   con barra de progreso. El estado vive en localStorage.
   --------------------------------------------------------------- */
.fp-wrap{ max-width:820px;}
.fp-intro{ color:var(--text-muted); margin-bottom:28px;}
.fp-seccion{ margin-top:36px; padding-top:24px; border-top:1px solid var(--line);}
.fp-seccion:first-of-type{ border-top:0; padding-top:0;}
.fp-seccion-titulo{ font-size:22px; margin-bottom:14px; color:var(--text);}

.fp-checklist .fp-progreso{
  height:8px; background:var(--surface); border-radius:99px; overflow:hidden; border:1px solid var(--line);
}
.fp-checklist .fp-progreso-barra{
  display:block; height:100%; width:0; background:var(--accent); transition:width .2s ease;
}
.fp-progreso-fila{
  display:flex; justify-content:space-between; align-items:center; margin:8px 0 14px;
}
.fp-pct{ font-family:'IBM Plex Mono', monospace; font-size:13px; color:var(--text-muted);}
.fp-acciones{ display:flex; gap:16px;}
.fp-acciones .link-btn{
  background:none; border:0; cursor:pointer; padding:0; color:var(--accent);
  font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:.3px;
}
.fp-checklist.fp-completo .fp-progreso-barra{ background:var(--verde-gobernadora);}

.fp-check-list{ list-style:none; padding:0; margin:0;}
.fp-check-list li{ border-bottom:1px solid var(--line);}
.fp-check{
  display:flex; align-items:flex-start; gap:12px; padding:11px 4px; cursor:pointer;
}
.fp-check input[type="checkbox"]{
  width:20px; height:20px; margin-top:2px; flex-shrink:0; accent-color:var(--accent); cursor:pointer;
}
.fp-check-texto{ color:var(--text);}
.fp-check-texto small{ display:block; color:var(--text-muted); font-size:0.86em;}
.fp-check input:checked + .fp-check-texto{ color:var(--text-muted); text-decoration:line-through;}

/* Cuenta regresiva (includes/ficha-countdown.php) */
.countdown{
  background:var(--negro-volcanico); color:var(--hueso-antiguo);
  border-radius:2px; padding:16px 18px; margin:18px 0;
}
.countdown-titulo{
  display:block; font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:1px;
  text-transform:uppercase; color:var(--arena-desierto); margin-bottom:10px;
}
.countdown-grid{ display:flex; gap:10px;}
.cd-box{ flex:1; text-align:center; background:rgba(242,235,221,0.06); border-radius:2px; padding:8px 4px;}
.cd-num{ display:block; font-family:'Bebas Neue', sans-serif; font-size:28px; line-height:1;}
.cd-lbl{
  display:block; font-family:'IBM Plex Mono', monospace; font-size:9px; letter-spacing:1px;
  text-transform:uppercase; color:var(--piedra-granitica); margin-top:4px;
}
.countdown-hoy .cd-num{ color:var(--arena-desierto);}

/* ===== Ficha de condición del participante (/formulario/{token}) ===== */
.fp-form-wrap{ max-width:680px; }
.fp-form-intro{ color:var(--text-muted); font-size:17px; margin-bottom:26px; }

/* Barra de progreso por pasos */
.fp-steps-bar{ margin-bottom:26px; }
.fp-steps-progress{ height:6px; background:rgba(139,134,124,0.2); border-radius:3px; overflow:hidden; }
.fp-steps-progress span{ display:block; height:100%; background:var(--accent); transition:width .3s ease; }
.fp-steps-meta{ display:flex; justify-content:space-between; margin-top:8px; font-family:'IBM Plex Mono'; font-size:11px; letter-spacing:0.5px; text-transform:uppercase; color:var(--text-muted); }

/* Pasos: sin JS se ven todos; con JS solo el activo */
.fp-form.fp-js .fp-step{ display:none; }
.fp-form.fp-js .fp-step.fp-step-activo{ display:block; animation:fpFade .25s ease; }
@keyframes fpFade{ from{ opacity:0; transform:translateY(6px);} to{ opacity:1; transform:none;} }
.fp-step{ border:none; padding:0; margin:0 0 8px; }
.fp-step-legend{ display:flex; align-items:center; gap:12px; font-family:'Cormorant Garamond'; font-style:italic; font-size:24px; color:var(--text); margin-bottom:20px; padding:0; }
.fp-step-num{ display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:50%; background:var(--accent); color:var(--hueso-antiguo); font-family:'IBM Plex Mono'; font-style:normal; font-size:13px; flex:none; }
.fp-req{ color:var(--accent); }

.fp-hidden{ display:none !important; }

/* Marcado de error */
.fp-field.fp-invalid input, .fp-field.fp-invalid textarea, .fp-field.fp-invalid select{ border-color:var(--cobre-envejecido); box-shadow:0 0 0 2px rgba(139,94,60,0.15); }
.fp-field.fp-invalid .rating-input{ outline:1px dashed var(--cobre-envejecido); outline-offset:4px; border-radius:2px; }

/* Consentimientos */
.fp-consent{ margin-bottom:14px; }
.fp-consent-label{ display:flex; gap:12px; align-items:flex-start; cursor:pointer; font-family:'Creator Genius'; font-size:15px; color:var(--text); line-height:1.5; }
.fp-consent-label input{ margin-top:3px; width:18px; height:18px; accent-color:var(--accent); flex:none; }
.fp-consent.fp-invalid .fp-consent-label{ color:var(--cobre-envejecido); }

/* Navegación */
.fp-nav{ display:flex; gap:12px; margin-top:28px; flex-wrap:wrap; }
.fp-prev, .fp-next{ display:none; }
.fp-form.fp-js .fp-prev, .fp-form.fp-js .fp-next{ display:inline-flex; }
.fp-nav .fp-next, .fp-nav .fp-submit{ margin-left:auto; }
