/* Guías de decisión: editorial, visuales y diseñadas como herramientas. */
body.portal .guia-comercial {
  --guia-tinta: #17231f;
  --guia-papel: #fffdf8;
  --guia-acento: var(--marca);
  --guia-coral: var(--marca);
  --guia-acento-profundo: var(--marca-profundo);
  width: min(100%, 94rem);
  margin: 0 auto;
  padding: clamp(1rem, 3.2vw, 2.75rem) 0 5rem;
  color: var(--guia-tinta);
}
body.portal .guia-hero { display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(19rem, .96fr); gap: clamp(1.4rem, 4vw, 3.75rem); align-items: center; }
body.portal .guia-hero-copy { padding: clamp(.1rem, 1.3vw, 1.25rem) 0; }
body.portal .guia-migas { display: flex; gap: .55rem; align-items: center; margin: .65rem 0 .55rem; color: #68736b; font-size: .75rem; }
body.portal .guia-migas a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .2em; }
body.portal .guia-hero h1 { max-width: 14ch; margin: 0; color: var(--guia-tinta); font-size: clamp(2.05rem, 4vw, 3.25rem); font-weight: 600; line-height: 1.02; letter-spacing: -.055em; }
body.portal .guia-bajada { max-width: 39rem; margin: 1rem 0 1.25rem; color: #48554d; font-size: clamp(1rem, 1.35vw, 1.14rem); line-height: 1.65; }
body.portal .guia-hero-meta { display: flex; flex-wrap: wrap; gap: .5rem 1rem; color: #778178; font: 500 .59rem/1.5 'Azeret Mono', monospace; letter-spacing: .04em; }
body.portal .guia-hero-meta span + span { padding-left: 1rem; border-left: 1px solid #c9c4b9; }
body.portal .guia-hero-imagen { position: relative; margin: 0; overflow: hidden; border-radius: 1rem; background: #d6d5ce; box-shadow: 0 1rem 2.6rem rgba(23,35,31,.12); }
body.portal .guia-hero-imagen::after { position: absolute; inset: 0; border: 1px solid rgba(255,255,255,.34); border-radius: inherit; content: ''; pointer-events: none; }
body.portal .guia-hero-imagen picture { display: block; width: 100%; }
body.portal .guia-hero-imagen img { display: block; width: 100%; aspect-ratio: 1.5; object-fit: cover; transition: transform .75s cubic-bezier(.2,.7,.25,1); }
body.portal .guia-hero-imagen:hover img { transform: scale(1.025); }
body.portal .guia-hero-imagen figcaption { position: absolute; right: .7rem; bottom: .65rem; max-width: 78%; padding: .35rem .55rem; border: 1px solid rgba(255,255,255,.24); border-radius: .35rem; color: white; background: rgba(23,35,31,.72); font-size: .61rem; line-height: 1.35; backdrop-filter: blur(8px); }
body.portal .guia-entrada { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 1rem; align-items: center; margin: clamp(2.1rem, 4vw, 3.7rem) 0 1.15rem; padding: 1rem 1.2rem; border: 1px solid #d9d1c4; border-radius: .72rem; background: rgba(255,253,248,.72); }
body.portal .guia-entrada > div > p:last-child { max-width: 56rem; margin: 0; font-size: .92rem; line-height: 1.5; }
body.portal .guia-entrada > a { display: inline-flex; gap: .55rem; align-items: center; white-space: nowrap; color: var(--guia-tinta); font-size: .78rem; font-weight: 600; text-decoration: none; }
body.portal .guia-entrada > a span { color: var(--guia-coral); font-size: 1rem; }
body.portal .guia-anclas { display: flex; gap: .55rem; overflow-x: auto; padding: .2rem 0 .7rem; scrollbar-width: thin; }
body.portal .guia-anclas a { display: flex; flex: 0 0 auto; gap: .55rem; align-items: center; max-width: 17rem; padding: .57rem .72rem; border: 1px solid #ded7ca; border-radius: 99px; color: #3f4c45; background: var(--guia-papel); font-size: .71rem; line-height: 1.2; text-decoration: none; transition: border-color .2s, background .2s, transform .2s; }
body.portal .guia-anclas a:hover { transform: translateY(-2px); border-color: var(--guia-acento); background: #fff7e5; }
body.portal .guia-anclas a span { display: grid; width: 1.35rem; height: 1.35rem; flex: 0 0 auto; place-items: center; border-radius: 50%; color: var(--guia-papel); background: var(--guia-tinta); font: 500 .53rem 'Azeret Mono', monospace; }

body.portal .ideas-selector { margin: 2.5rem 0 4rem; padding: clamp(1rem, 3vw, 2.2rem); border: 1px solid #ded7ca; border-radius: 1rem; background: #eee8dc; }
body.portal .ideas-selector-cabecera { display: flex; justify-content: space-between; gap: 1rem 2rem; align-items: end; }
body.portal .ideas-selector h2, body.portal .equipo-brief h2, body.portal .guia-capitulo h2, body.portal .guia-nota h2, body.portal .guia-preguntas h2, body.portal .guia-fuentes h2 { margin: 0; color: var(--guia-tinta); font-size: clamp(1.45rem, 2.4vw, 2.15rem); font-weight: 600; line-height: 1.08; letter-spacing: -.04em; }
body.portal .ideas-selector-cabecera > p { max-width: 24rem; margin: 0; color: #626d65; font-size: .78rem; line-height: 1.5; }
body.portal .ideas-filtros { display: flex; flex-wrap: wrap; gap: .45rem; margin: 1.25rem 0 .4rem; }
body.portal .ideas-filtros[hidden] { display: none; }
body.portal .ideas-filtros button { padding: .5rem .75rem; border: 1px solid #cfc6b7; border-radius: 99px; color: var(--guia-tinta); background: var(--guia-papel); font: 500 .67rem var(--fuente-texto); cursor: pointer; transition: background .18s, color .18s, border-color .18s; }
body.portal .ideas-filtros button[aria-pressed="true"] { border-color: var(--guia-tinta); color: var(--guia-papel); background: var(--guia-tinta); }
body.portal .ideas-filtros button:focus-visible { outline: 3px solid var(--guia-acento-profundo); outline-offset: 2px; }
body.portal .ideas-resultado { margin: .7rem 0; color: #667169; font: 500 .57rem 'Azeret Mono', monospace; letter-spacing: .04em; }
body.portal .ideas-escaparate { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .8rem; }
body.portal .idea-card { position: relative; display: flex; min-height: 15rem; flex-direction: column; align-items: flex-start; overflow: hidden; padding: 1.1rem; border: 1px solid rgba(23,35,31,.11); border-radius: .7rem; background: var(--guia-papel); transition: transform .24s, box-shadow .24s; }
body.portal .idea-card:hover { transform: translateY(-4px); box-shadow: 0 .75rem 1.5rem rgba(23,35,31,.1); }
body.portal .idea-card[hidden] { display: none; }
body.portal .idea-card-linea { width: 2.2rem; height: .2rem; margin: .45rem 0 .8rem; background: var(--guia-coral); }
body.portal .idea-card:nth-child(3n + 2) .idea-card-linea,
body.portal .idea-card:nth-child(3n) .idea-card-linea { background: var(--guia-acento); }
body.portal .idea-card > p { margin: .35rem 0 .25rem; color: #6f796f; font-size: .68rem; }
body.portal .idea-card h3 { max-width: 18ch; margin: 0; color: var(--guia-tinta); font-size: 1.08rem; line-height: 1.14; letter-spacing: -.03em; }
body.portal .idea-card-ejemplos { margin-top: .7rem; color: #4c5a51; font-size: .76rem; line-height: 1.5; }
body.portal .idea-card-pie { margin-top: auto; padding-top: .9rem; color: var(--guia-acento-profundo); font-size: .68rem; font-weight: 600; line-height: 1.35; }
body.portal .idea-card-link { display: inline-flex; gap: .4rem; align-items: center; margin-top: .8rem; color: var(--guia-acento-profundo); font-size: .75rem; font-weight: 700; text-underline-offset: .2em; }
body.portal .idea-card-link:focus-visible { outline: 3px solid var(--guia-acento-profundo); outline-offset: 3px; border-radius: .15rem; }
body.portal .ideas-sin-resultados { margin: 1rem 0 0; color: #6a4a17; }

body.portal .equipo-brief { display: grid; grid-template-columns: minmax(11rem,.36fr) minmax(0,1fr); gap: clamp(1.2rem, 4vw, 3rem); align-items: center; margin: 2.5rem 0 4rem; padding: clamp(1.25rem, 3vw, 2.4rem); border-radius: 1rem; color: var(--guia-papel); background: var(--guia-tinta); }
body.portal .equipo-brief-marca { position: relative; display: flex; min-height: 12rem; flex-direction: column; justify-content: space-between; overflow: hidden; padding: 1rem; border: 1px solid rgba(255,255,255,.2); border-radius: .75rem; background: #263b32; }
body.portal .equipo-brief-marca strong { position: relative; z-index: 1; font-size: clamp(1.3rem, 3vw, 2rem); line-height: .98; letter-spacing: -.06em; }
body.portal .equipo-brief-marca i { position: absolute; right: -2.5rem; bottom: -3rem; width: 9rem; height: 9rem; border: 1px solid rgba(251,174,3,.7); border-radius: 50%; box-shadow: 0 0 0 1rem rgba(251,174,3,.08), 0 0 0 2rem rgba(251,174,3,.04); }
body.portal .equipo-brief h2 { color: var(--guia-papel); }
body.portal .equipo-brief-copy > p { max-width: 44rem; color: rgba(255,253,248,.76); font-size: .86rem; line-height: 1.55; }
body.portal .equipo-brief ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .5rem 1.4rem; margin: 1rem 0 0; padding: 0; list-style: none; }
body.portal .equipo-brief li { position: relative; padding-left: 1rem; color: var(--guia-papel); font-size: .76rem; line-height: 1.42; }
body.portal .equipo-brief li::before { position: absolute; top: .45em; left: 0; width: .38rem; height: .38rem; border-radius: 50%; background: var(--guia-acento); content: ''; }

body.portal .hoteles-brujula { display: flex; align-items: center; justify-content: center; margin: 2.8rem 0 3.8rem; padding: 1.4rem 1rem; border: 1px solid #ded7ca; border-radius: .85rem; background: #eee8dc; }
body.portal .hoteles-brujula-punto { display: grid; grid-template-columns: 2.6rem auto; column-gap: .65rem; align-items: center; min-width: 10rem; }
body.portal .hoteles-brujula-punto > span { display: grid; grid-row: span 2; width: 2.5rem; height: 2.5rem; place-items: center; border: 1px solid rgba(251,174,3,.7); border-radius: 50%; color: var(--guia-tinta); background: var(--marca-suave); font: 600 .63rem 'Azeret Mono',monospace; }
body.portal .hoteles-brujula-punto--centro > span,
body.portal .hoteles-brujula-punto--sur > span { border-color: rgba(251,174,3,.7); background: var(--marca-suave); }
body.portal .hoteles-brujula-punto strong { font-size: .86rem; }
body.portal .hoteles-brujula-punto small { color: #68736b; font-size: .63rem; }
body.portal .hoteles-brujula-linea { width: clamp(1.2rem, 7vw, 6rem); height: 1px; margin: 0 .8rem; background: repeating-linear-gradient(90deg,rgba(150,85,0,.7) 0 4px,transparent 4px 8px); }
body.portal .viaje-ferias { margin: 0 0 3.5rem; padding: clamp(1rem, 2.8vw, 2.2rem); border: 1px solid #ddd4c5; border-radius: 1rem; background: radial-gradient(ellipse at 4% 0%, rgba(246,181,46,.11), transparent 26rem), #fffdf8; box-shadow: 0 .8rem 2.3rem rgba(34,42,35,.055); }
body.portal .viaje-ferias-cabecera { display: grid; grid-template-columns: minmax(0,1fr) minmax(18rem,.95fr); gap: 1.3rem 2rem; align-items: stretch; }
body.portal .viaje-ferias-intro { display: grid; grid-template-columns: 3rem minmax(0,1fr); align-content: start; gap: .5rem 1rem; padding: .5rem 0; }
body.portal .viaje-ferias-icono { display: grid; width: 2.65rem; height: 2.65rem; grid-row: span 2; place-items: center; border: 1px solid rgba(192,129,0,.4); border-radius: .9rem .9rem .9rem .25rem; color: var(--marca-profundo); background: var(--marca-suave); }
body.portal .viaje-ferias-icono svg { width: 2rem; height: 2rem; }
body.portal .viaje-ferias h2 { max-width: 25ch; margin: 0; color: var(--guia-tinta); font-size: clamp(1.5rem,2.5vw,2.15rem); line-height: 1.08; letter-spacing: -.04em; }
body.portal .viaje-ferias-intro > p { grid-column: 2; max-width: 58ch; margin: .1rem 0 0; color: #536057; font-size: .91rem; line-height: 1.55; }
body.portal .viaje-puerta-internacional { display: grid; grid-template-columns: 2.7rem minmax(0,1fr); gap: .85rem; padding: 1rem 1.1rem; border: 1px solid rgba(190,132,16,.33); border-radius: .8rem; background: linear-gradient(145deg,#fff8e7,#f8efdb); }
body.portal .viaje-puerta-senal { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; border: 1px solid rgba(190,132,16,.4); border-radius: 50%; color: var(--marca-profundo); background: #fffdf8; }
body.portal .viaje-puerta-senal svg { width: 1.75rem; height: 1.75rem; }
body.portal .viaje-puerta-internacional h3 { margin: 0; color: var(--guia-tinta); font-size: 1rem; line-height: 1.25; }
body.portal .viaje-puerta-internacional p { margin: .45rem 0; color: #4e584f; font-size: .8125rem; line-height: 1.52; }
body.portal .viaje-puerta-internacional a { display: inline-flex; min-height: 2.4rem; gap: .4rem; align-items: center; color: var(--marca-profundo); font-size: .875rem; font-weight: 700; text-underline-offset: .2em; }
body.portal .viaje-secuencia { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .65rem; margin: 1.1rem 0 1.45rem; }
body.portal .viaje-secuencia article { position: relative; min-height: 7.7rem; padding: .8rem .9rem .8rem 3.1rem; border: 1px solid #e4ddd1; border-radius: .7rem; background: linear-gradient(145deg,#fffefa,#f8f4ec); }
body.portal .viaje-secuencia article > span { position: absolute; top: .82rem; left: .8rem; display: grid; width: 1.75rem; height: 1.75rem; place-items: center; border: 1px solid rgba(192,129,0,.42); border-radius: 50%; color: var(--marca-profundo); background: var(--marca-suave); font: 600 .8125rem 'Azeret Mono',monospace; }
body.portal .viaje-secuencia h3 { margin: .08rem 0 .3rem; color: var(--guia-tinta); font-size: .94rem; line-height: 1.25; }
body.portal .viaje-secuencia p { margin: 0; color: #5a665d; font-size: .875rem; line-height: 1.5; }
body.portal .viaje-rutas-cabecera { display: flex; justify-content: space-between; gap: 1rem; align-items: end; margin: 0 0 .65rem; padding-top: 1.1rem; border-top: 1px solid #ded7ca; }
body.portal .viaje-rutas-cabecera h3 { margin: 0; color: var(--guia-tinta); font-size: 1.15rem; line-height: 1.2; }
body.portal .viaje-rutas-cabecera p { margin: .3rem 0 0; color: #68736b; font-size: .8125rem; line-height: 1.45; }
body.portal .viaje-rutas-cabecera > span { flex: 0 0 auto; color: #737b72; font-size: .8125rem; }
body.portal .viaje-rutas-lista { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .6rem; align-items: start; }
body.portal .viaje-ruta { min-width: 0; border: 1px solid #dfd7c9; border-radius: .72rem; background: #fffefa; transition: border-color .2s, box-shadow .2s; }
body.portal .viaje-ruta[open] { border-color: rgba(192,129,0,.58); box-shadow: 0 .35rem 1rem rgba(34,42,35,.06); }
body.portal .viaje-ruta summary { display: grid; min-height: 4.7rem; grid-template-columns: 2.4rem minmax(0,1fr) 1.1rem; gap: .7rem; align-items: center; padding: .7rem .8rem; cursor: pointer; list-style: none; }
body.portal .viaje-ruta summary::-webkit-details-marker { display: none; }
body.portal .viaje-ruta summary:focus-visible { outline: 3px solid var(--marca-profundo); outline-offset: 2px; border-radius: .6rem; }
body.portal .viaje-ruta-icono { display: grid; width: 2.25rem; height: 2.25rem; place-items: center; border: 1px solid rgba(192,129,0,.35); border-radius: .7rem .7rem .7rem .2rem; color: var(--marca-profundo); background: var(--marca-suave); }
body.portal .viaje-ruta-icono svg { width: 1.65rem; height: 1.65rem; }
body.portal .viaje-ruta-resumen { display: grid; gap: .22rem; }
body.portal .viaje-ruta-resumen strong { color: var(--guia-tinta); font-size: .88rem; line-height: 1.24; }
body.portal .viaje-ruta-resumen small { color: #67736a; font-size: .8125rem; line-height: 1.4; }
body.portal .viaje-ruta-indicador { color: var(--marca-profundo); transition: transform .2s; }
body.portal .viaje-ruta-indicador svg { width: 1rem; height: 1rem; }
body.portal .viaje-ruta[open] .viaje-ruta-indicador { transform: rotate(45deg); }
body.portal .viaje-ruta-contenido { padding: 0 .9rem 1rem; }
body.portal .viaje-ruta-intro { margin: 0 0 .75rem; color: #4f5c53; font-size: .9375rem; line-height: 1.52; }
body.portal .viaje-ruta-contenido h4 { margin: .85rem 0 .4rem; color: var(--guia-tinta); font-size: .875rem; }
body.portal .viaje-ruta-contenido ul { display: grid; gap: .38rem; margin: 0; padding-left: 1.15rem; }
body.portal .viaje-ruta-contenido li { color: #536057; font-size: .875rem; line-height: 1.5; }
body.portal .viaje-ruta-contenido li::marker { color: var(--marca-profundo); }
body.portal .viaje-tarifas { display: grid; grid-template-columns: repeat(auto-fit,minmax(10rem,1fr)); gap: .45rem; margin-top: .8rem; }
body.portal .viaje-tarifas > div { display: grid; align-content: start; gap: .24rem; padding: .65rem .7rem; border: 1px solid #e5d8bc; border-radius: .4rem; background: #f7f0e2; }
body.portal .viaje-tarifas strong { color: var(--marca-profundo); font: 700 .95rem 'Azeret Mono',monospace; }
body.portal .viaje-tarifas span { color: #5a625b; font-size: .8125rem; line-height: 1.45; }
body.portal .viaje-ruta-nota { margin: .75rem 0 0; padding: .65rem .75rem; border: 1px solid #e5dbca; border-radius: .5rem; color: #545d54; background: #faf7f0; font-size: .8125rem; line-height: 1.48; }
body.portal .viaje-ruta-fuentes { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .7rem; }
body.portal .viaje-ruta-fuentes a { display: inline-flex; min-height: 2.4rem; gap: .35rem; align-items: center; padding: .4rem .6rem; border: 1px solid #ded6c8; border-radius: 2rem; color: var(--marca-profundo); background: white; font-size: .8125rem; font-weight: 650; line-height: 1.35; text-decoration: none; }
body.portal .viaje-ruta-fuentes a:hover { border-color: var(--marca-profundo); }
body.portal .viaje-ruta-fuentes a:focus-visible { outline: 3px solid var(--marca-profundo); outline-offset: 2px; }
body.portal .hoteles-recomendados { position: relative; isolation: isolate; overflow: hidden; margin: -.25rem 0 3.5rem; padding: clamp(1rem, 3vw, 2rem); border: 1px solid #ded7ca; border-radius: 1rem; background: radial-gradient(ellipse at 96% 0%, rgba(222,214,191,.48), transparent 31rem), linear-gradient(135deg,#fbf8f1 0%,#f5f0e6 100%); }
body.portal .hoteles-recomendados::before { position: absolute; z-index: -1; top: -8rem; right: -4rem; width: 21rem; aspect-ratio: 1; border: 1px solid rgba(79,98,83,.12); border-radius: 50%; box-shadow: 0 0 0 1.5rem rgba(79,98,83,.025),0 0 0 3rem rgba(79,98,83,.02); content: ''; }
body.portal .hoteles-recomendados-cabecera { display: grid; grid-template-columns: minmax(0,.9fr) minmax(16rem,.8fr); gap: .65rem 2rem; align-items: end; margin-bottom: 1.4rem; }
body.portal .hoteles-recomendados-cabecera h2 { max-width: 22ch; margin: 0; color: var(--guia-tinta); font-size: clamp(1.45rem, 2.3vw, 1.95rem); line-height: 1.08; letter-spacing: -.04em; }
body.portal .hoteles-recomendados-cabecera > p:last-child { max-width: 57ch; margin: 0; color: #536159; font-size: .9rem; line-height: 1.55; }
body.portal .hoteles-ciudad { position: relative; padding-top: 1.35rem; border-top: 1px solid #dcd4c6; }
body.portal .hoteles-ciudad + .hoteles-ciudad { margin-top: 1.7rem; }
body.portal .hoteles-ciudad-cabecera { display: grid; grid-template-columns: minmax(0,1fr) minmax(14rem,.68fr); gap: .7rem 1.5rem; align-items: end; margin-bottom: .85rem; }
body.portal .hoteles-ciudad-cabecera h3 { margin: 0 0 .35rem; color: var(--guia-tinta); font-size: clamp(1.05rem,1.6vw,1.32rem); line-height: 1.18; letter-spacing: -.025em; }
body.portal .hoteles-ciudad-cabecera p { max-width: 72ch; margin: 0; color: #536159; font-size: .875rem; line-height: 1.5; }
body.portal .hoteles-ciudad-fuentes { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .45rem; }
body.portal .hoteles-ciudad-fuentes a { display: inline-flex; min-height: 2.5rem; align-items: center; gap: .4rem; padding: .45rem .65rem; border: 1px solid #d4cbbb; border-radius: 2rem; color: var(--marca-profundo); background: rgba(255,253,248,.72); font-size: .8125rem; font-weight: 650; line-height: 1.3; text-decoration: none; }
body.portal .hoteles-ciudad-fuentes a:hover { border-color: var(--marca-profundo); background: #fffdf8; }
body.portal .hoteles-recomendados-lista { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .7rem; }
body.portal .hotel-recomendado { position: relative; display: flex; min-height: 12rem; flex-direction: column; align-items: flex-start; padding: 1rem; border: 1px solid #e1d9cb; border-radius: .75rem; background: linear-gradient(150deg,#fffdf9 0%,#faf7f0 100%); box-shadow: 0 .25rem .85rem rgba(38,48,41,.035); transition: transform .2s ease,border-color .2s ease,box-shadow .2s ease; }
body.portal .hotel-recomendado:hover { transform: translateY(-3px); border-color: var(--marca); box-shadow: 0 .65rem 1.3rem rgba(38,48,41,.09); }
body.portal .hotel-recomendado-icono { display: grid; width: 2.65rem; height: 2.65rem; place-items: center; margin-bottom: .75rem; border: 1px solid var(--marca-profundo); border-radius: .75rem .75rem .75rem .2rem; color: var(--marca-profundo); background: var(--marca-suave); }
body.portal .hotel-recomendado-icono svg { width: 2rem; height: 2rem; }
body.portal .hotel-recomendado h4 { margin: 0 0 .4rem; color: var(--guia-tinta); font-size: 1rem; line-height: 1.25; letter-spacing: -.015em; }
body.portal .hotel-recomendado p { margin: 0 0 .9rem; color: #5a675f; font-size: .84rem; line-height: 1.45; }
body.portal .hotel-recomendado a { display: inline-flex; min-height: 2.55rem; align-items: center; gap: .35rem; margin-top: auto; color: var(--marca-profundo); font-size: .8125rem; font-weight: 700; line-height: 1.35; text-decoration: underline; text-decoration-color: var(--marca-profundo); text-underline-offset: .2em; }
body.portal .hotel-recomendado a:hover { text-decoration-color: currentColor; }
body.portal .hoteles-ciudad-fuentes a span, body.portal .hotel-recomendado a span { color: var(--marca-profundo); }
body.portal .hoteles-ciudad-fuentes a:focus-visible, body.portal .hotel-recomendado a:focus-visible { outline: 3px solid var(--marca-profundo); outline-offset: 3px; }

body.portal .guia-capitulo { scroll-margin-top: 7rem; display: grid; grid-template-columns: minmax(14rem,.58fr) minmax(0,1fr); gap: clamp(1.5rem, 4.5vw, 4.4rem); margin: 1rem 0; padding: clamp(1.3rem, 3.5vw, 3rem); border-radius: 1rem; }
body.portal .guia-capitulo--claro { border: 1px solid #e3ddd2; background: var(--guia-papel); }
body.portal .guia-capitulo--tinta { color: var(--guia-papel); background: var(--guia-tinta); }
body.portal .guia-capitulo-cabecera { position: sticky; top: 6rem; align-self: start; }
body.portal .guia-capitulo h2 { max-width: 17ch; font-size: clamp(1.55rem, 2.7vw, 2.35rem); }
body.portal .guia-capitulo-cabecera > p:last-child { max-width: 28rem; margin: .8rem 0 0; color: #59665d; font-size: .82rem; line-height: 1.6; }
body.portal .guia-capitulo--tinta h2 { color: var(--guia-papel); }
body.portal .guia-capitulo--tinta .guia-capitulo-cabecera > p:last-child { color: rgba(255,253,248,.68); }
body.portal .guia-capitulo-lista { display: grid; gap: .62rem; }
body.portal .guia-pieza { position: relative; display: grid; grid-template-columns: minmax(0,1fr) .4rem; gap: .7rem; align-items: start; padding: 1rem .9rem; border: 1px solid #e4ded3; border-radius: .65rem; background: #fbf8f1; transition: transform .2s, box-shadow .2s; }
body.portal .guia-pieza:hover { transform: translateX(3px); box-shadow: 0 .5rem 1rem rgba(23,35,31,.07); }
body.portal .guia-capitulo--tinta .guia-pieza { border-color: rgba(255,255,255,.12); background: rgba(255,255,255,.055); }
body.portal .guia-pieza-etiqueta { margin: 0 0 .25rem; color: #79837a; font: 500 .53rem 'Azeret Mono', monospace; letter-spacing: .08em; }
body.portal .guia-capitulo--tinta .guia-pieza-etiqueta { color: var(--marca); }
body.portal .guia-pieza h3 { margin: 0; color: var(--guia-tinta); font-size: .98rem; line-height: 1.23; letter-spacing: -.02em; }
body.portal .guia-capitulo--tinta .guia-pieza h3 { color: var(--guia-papel); }
body.portal .guia-pieza div > p:last-child { margin: .4rem 0 0; color: #536057; font-size: .77rem; line-height: 1.55; }
body.portal .guia-capitulo--tinta .guia-pieza div > p:last-child { color: rgba(255,253,248,.7); }
body.portal .guia-pieza-acento { width: .36rem; height: 2.2rem; border-radius: 99px; background: var(--guia-coral); }
body.portal .guia-capitulo-lista .guia-pieza:nth-child(3n + 2) .guia-pieza-acento,
body.portal .guia-capitulo-lista .guia-pieza:nth-child(3n) .guia-pieza-acento { background: var(--guia-acento); }
body.portal .guia-nota { display: grid; grid-template-columns: 3rem 1fr; gap: 1rem; align-items: start; margin: 2rem 0 3rem; padding: clamp(1.15rem, 3vw, 2rem); border-left: 4px solid var(--guia-coral); border-radius: 0 .75rem .75rem 0; background: var(--marca-suave); }
body.portal .guia-nota-sello { display: grid; width: 2.4rem; height: 2.4rem; place-items: center; border-radius: 50%; color: white; background: var(--marca-profundo); font-size: 1.1rem; font-weight: 700; }
body.portal .guia-nota h2 { font-size: 1.3rem; }
body.portal .guia-nota > div > p:last-child { max-width: 70rem; margin: .5rem 0 0; color: #4e433d; font-size: .8rem; line-height: 1.6; }
body.portal .guia-preguntas { display: grid; grid-template-columns: minmax(13rem,.43fr) minmax(0,1fr); gap: 2rem; margin: 3rem 0; padding: clamp(1.2rem, 3.5vw, 2.75rem); border-radius: 1rem; color: var(--guia-papel); background: #253b32; }
body.portal .guia-preguntas h2 { color: var(--guia-papel); }
body.portal .guia-preguntas-cabecera > p:last-child { max-width: 20rem; color: rgba(255,253,248,.68); font-size: .8rem; line-height: 1.5; }
body.portal .guia-preguntas-lista { border-top: 1px solid rgba(255,255,255,.18); }
body.portal .guia-faq { border-bottom: 1px solid rgba(255,255,255,.18); }
body.portal .guia-faq summary { display: grid; grid-template-columns: 2rem minmax(0,1fr) 1.2rem; gap: .7rem; align-items: center; padding: .85rem 0; cursor: pointer; list-style: none; }
body.portal .guia-faq summary::-webkit-details-marker { display: none; }
body.portal .guia-faq summary > span { color: var(--guia-acento); font: 500 .57rem 'Azeret Mono', monospace; }
body.portal .guia-faq summary strong { font-size: .84rem; line-height: 1.35; }
body.portal .guia-faq summary i { position: relative; width: 1rem; height: 1rem; }
body.portal .guia-faq summary i::before, body.portal .guia-faq summary i::after { position: absolute; top: 50%; left: 50%; width: .75rem; height: 1px; background: var(--guia-acento); content: ''; transform: translate(-50%,-50%); transition: transform .2s; }
body.portal .guia-faq summary i::after { transform: translate(-50%,-50%) rotate(90deg); }
body.portal .guia-faq[open] summary i::after { transform: translate(-50%,-50%) rotate(0); }
body.portal .guia-faq > p { margin: -.1rem 2rem .95rem 2.7rem; color: rgba(255,253,248,.72); font-size: .78rem; line-height: 1.55; }
body.portal .guia-faq summary:focus-visible { outline: 2px solid var(--marca-profundo); outline-offset: 3px; }
body.portal .guia-fuentes { display: grid; grid-template-columns: minmax(14rem,.55fr) minmax(0,1fr); gap: 2rem; margin: 2.5rem 0; padding: clamp(1rem, 3vw, 2rem); border: 1px solid #ded7ca; border-radius: .85rem; background: var(--guia-papel); }
body.portal .guia-fuentes h2 { font-size: 1.5rem; }
body.portal .guia-fuentes-titulo > p:last-child { max-width: 30rem; color: #667169; font-size: .75rem; line-height: 1.5; }
body.portal .guia-fuentes ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .45rem; margin: 0; padding: 0; list-style: none; }
body.portal .guia-fuentes li a { display: flex; min-height: 3rem; justify-content: space-between; gap: .5rem; align-items: center; padding: .65rem .75rem; border: 1px solid #e4ded3; border-radius: .5rem; color: #35463d; background: #faf7f0; font-size: .71rem; font-weight: 600; line-height: 1.35; text-decoration: none; }
body.portal .guia-fuentes li a:hover { border-color: var(--guia-acento); }
body.portal .guia-fuentes li a span { flex: 0 0 auto; color: var(--guia-acento-profundo); }
body.portal .guia-volver { margin: 2rem 0 0; font-size: .82rem; font-weight: 600; }
body.portal .guia-volver a { color: var(--guia-tinta); text-decoration-color: var(--guia-acento); text-underline-offset: .23em; }
body.portal .guia-comercial [id] { scroll-margin-top: 7rem; }
body.portal .guia-comercial a:focus-visible { outline: 3px solid var(--guia-acento-profundo); outline-offset: 3px; }
body.portal.guia-reveal-activo .guia-pieza { opacity: .24; transform: translateY(10px); }
body.portal.guia-reveal-activo .guia-pieza.guia-pieza-visible { opacity: 1; transform: translateY(0); }

@media (max-width: 58rem) {
  body.portal .guia-hero { grid-template-columns: minmax(0,1fr) minmax(16rem,.85fr); gap: 1.5rem; }
  body.portal .guia-capitulo { grid-template-columns: minmax(11rem,.45fr) minmax(0,1fr); gap: 1.3rem; }
  body.portal .guia-fuentes { grid-template-columns: 1fr; gap: .6rem; }
  body.portal .viaje-ferias-cabecera { grid-template-columns: 1fr; }
}
@media (max-width: 52rem) {
  body.portal .guia-comercial { width: calc(100% - 2rem); }
}
@media (max-width: 43rem) {
  body.portal .guia-hero { grid-template-columns: 1fr; }
  body.portal .guia-hero h1 { max-width: 17ch; font-size: clamp(2rem, 9vw, 2.8rem); }
  /* En móvil el H1 conserva el primer lugar; la foto y su nota van después. */
  body.portal .guia-hero-imagen { grid-row: auto; }
  body.portal .guia-hero-imagen img { aspect-ratio: 1.6; }
  body.portal .guia-migas { margin-bottom: 1.15rem; }
  body.portal .guia-entrada { grid-template-columns: 1fr; padding: .85rem; }
  body.portal .guia-entrada > a { grid-column: 1; }
  body.portal .ideas-selector-cabecera { align-items: start; flex-direction: column; }
  body.portal .ideas-escaparate { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body.portal .idea-card { min-height: 14rem; padding: .85rem; }
  body.portal .equipo-brief { grid-template-columns: 1fr; }
  body.portal .equipo-brief-marca { min-height: 8.4rem; }
  body.portal .equipo-brief ul { grid-template-columns: 1fr; }
  body.portal .hoteles-brujula { align-items: flex-start; flex-direction: column; gap: .6rem; }
  body.portal .hoteles-brujula-punto { min-width: 0; }
  body.portal .hoteles-recomendados-cabecera, body.portal .hoteles-ciudad-cabecera { grid-template-columns: 1fr; gap: .75rem; }
  body.portal .hoteles-ciudad-fuentes { justify-content: flex-start; }
  body.portal .hoteles-recomendados-lista { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body.portal .viaje-secuencia { grid-template-columns: 1fr; }
  body.portal .viaje-secuencia article { min-height: 0; }
  body.portal .viaje-rutas-lista { grid-template-columns: 1fr; }
  body.portal .viaje-rutas-cabecera { align-items: start; flex-direction: column; gap: .4rem; }
  body.portal .hoteles-brujula-linea { width: 1px; height: 1.1rem; margin: 0 0 0 1.2rem; background: repeating-linear-gradient(180deg,rgba(150,85,0,.7) 0 4px,transparent 4px 8px); }
  body.portal .guia-capitulo { grid-template-columns: 1fr; gap: 1rem; }
  body.portal .guia-capitulo-cabecera { position: static; }
  body.portal .guia-capitulo h2 { max-width: 22ch; }
  body.portal .guia-preguntas { grid-template-columns: 1fr; gap: .5rem; }
  body.portal .guia-fuentes ul { grid-template-columns: 1fr; }
}
@media (max-width: 22rem) {
  body.portal .ideas-escaparate { grid-template-columns: 1fr; }
  body.portal .hoteles-recomendados-lista { grid-template-columns: 1fr; }
  body.portal .hotel-recomendado { min-height: 10.5rem; }
  body.portal .idea-card { min-height: 12rem; }
  body.portal .guia-pieza { grid-template-columns: minmax(0,1fr) .3rem; gap: .45rem; padding: .75rem .55rem; }
}
@media (prefers-reduced-motion: reduce) {
  body.portal .guia-comercial *, body.portal .guia-comercial *::before, body.portal .guia-comercial *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Plan de lanzamiento: una ruta de trabajo que se puede marcar en pantalla. */
body.portal .lanzamiento-pulso { margin: 2.5rem 0 4rem; padding: clamp(1rem, 3vw, 2.2rem); border-radius: 1rem; color: var(--guia-papel); background: #20372f; box-shadow: 0 1rem 2.5rem rgba(23,35,31,.12); }
body.portal .lanzamiento-pulso-cabecera { display: flex; justify-content: space-between; gap: 1.5rem; align-items: end; padding-bottom: 1.2rem; border-bottom: 1px solid rgba(255,255,255,.16); }
body.portal .lanzamiento-pulso h2, body.portal .presupuesto-herramienta h2 { max-width: 22ch; margin: 0; font-size: clamp(1.45rem, 2.5vw, 2.05rem); line-height: 1.08; letter-spacing: -.04em; }
body.portal .lanzamiento-pulso-cabecera > div:first-child > p:last-child { max-width: 38rem; margin: .55rem 0 0; color: rgba(255,253,248,.72); font-size: .77rem; line-height: 1.5; }
body.portal .lanzamiento-progreso { display: grid; min-width: 12rem; gap: .45rem; justify-items: end; }
body.portal .lanzamiento-progreso > span:first-child { color: var(--marca); font: 500 .57rem 'Azeret Mono',monospace; letter-spacing: .04em; }
body.portal .lanzamiento-progreso-barra { position: relative; display: block; width: 100%; height: .45rem; overflow: hidden; border-radius: 99px; background: rgba(255,255,255,.16); }
body.portal .lanzamiento-progreso-barra i { display: block; width: 0; height: 100%; border-radius: inherit; background: var(--guia-acento); transition: width .35s ease; }
body.portal .lanzamiento-progreso button { padding: 0; border: 0; color: rgba(255,253,248,.7); background: none; font: 500 .57rem var(--fuente-texto); text-decoration: underline; text-underline-offset: .2em; cursor: pointer; }
body.portal .lanzamiento-hitos { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .65rem; margin: 1rem 0 0; padding: 0; list-style: none; }
body.portal .lanzamiento-hitos li { min-width: 0; }
body.portal .lanzamiento-hitos label { position: relative; display: grid; min-height: 9rem; grid-template-columns: 2.2rem minmax(0,1fr) 1rem; gap: .65rem; align-items: start; padding: .85rem; border: 1px solid rgba(255,255,255,.13); border-radius: .65rem; background: rgba(255,255,255,.045); cursor: pointer; transition: border-color .2s, background .2s, transform .2s; }
body.portal .lanzamiento-hitos label:hover { transform: translateY(-2px); border-color: rgba(251,174,3,.7); background: rgba(255,255,255,.075); }
body.portal .lanzamiento-hitos input { position: absolute; top: .9rem; right: .85rem; width: 1rem; height: 1rem; margin: 0; accent-color: var(--guia-acento); cursor: pointer; }
body.portal .lanzamiento-hito-numero { display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: 50%; color: var(--guia-tinta); background: var(--guia-acento); font: 600 .57rem 'Azeret Mono',monospace; }
body.portal .lanzamiento-hito-copy { display: grid; gap: .25rem; padding-right: .7rem; }
body.portal .lanzamiento-hito-copy small { color: var(--marca); font-size: .68rem; font-weight: 500; }
body.portal .lanzamiento-hito-copy strong { font-size: .83rem; line-height: 1.25; }
body.portal .lanzamiento-hito-copy > span { color: rgba(255,253,248,.68); font-size: .68rem; line-height: 1.45; }
body.portal .lanzamiento-hito-check { align-self: center; color: var(--guia-acento); font-size: 1rem; opacity: .15; transition: opacity .2s, transform .2s; }
body.portal .lanzamiento-hitos input:checked ~ .lanzamiento-hito-check { opacity: 1; transform: scale(1.12); }
body.portal .lanzamiento-hitos input:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
body.portal .lanzamiento-hitos label:has(input:checked) { border-color: rgba(251,174,3,.55); background: rgba(251,174,3,.09); }
body.portal .lanzamiento-pulso-nota { margin: .9rem 0 0; color: rgba(255,253,248,.57); font-size: .65rem; line-height: 1.5; }

/* Presupuesto: datos editables, supuestos visibles y salida que se imprime. */
body.portal .presupuesto-herramienta { margin: 2.5rem 0 4rem; padding: clamp(1rem, 3vw, 2.1rem); border: 1px solid #ded7ca; border-radius: 1rem; background: #eee8dc; }
body.portal .presupuesto-herramienta-cabecera { display: flex; justify-content: space-between; gap: 1rem; align-items: end; margin-bottom: 1.25rem; }
body.portal .presupuesto-herramienta-cabecera > div:first-child > p:last-child { max-width: 37rem; margin: .55rem 0 0; color: #626d65; font-size: .77rem; line-height: 1.5; }
body.portal .presupuesto-acciones { display: flex; flex-wrap: wrap; gap: .5rem; }
body.portal .presupuesto-acciones button { padding: .62rem .78rem; border: 1px solid #cfc6b7; border-radius: .4rem; color: var(--guia-tinta); background: var(--guia-papel); font: 600 .65rem var(--fuente-texto); cursor: pointer; transition: background .18s, transform .18s; }
body.portal .presupuesto-acciones button:hover { transform: translateY(-1px); background: #fff5dc; }
body.portal .presupuesto-acciones .presupuesto-imprimir { border-color: var(--guia-tinta); color: var(--guia-papel); background: var(--guia-tinta); }
body.portal .presupuesto-cuerpo { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(17rem,.75fr); gap: 1rem; align-items: start; }
body.portal .presupuesto-entradas { display: grid; gap: .8rem; }
body.portal .presupuesto-costos, body.portal .presupuesto-supuestos { min-width: 0; margin: 0; padding: 1rem; border: 1px solid #d9d1c4; border-radius: .65rem; background: var(--guia-papel); }
body.portal .presupuesto-costos legend, body.portal .presupuesto-supuestos legend { padding: 0 .4rem; color: var(--guia-tinta); font-size: .8rem; font-weight: 700; }
body.portal .presupuesto-costo { display: grid; grid-template-columns: minmax(0,1fr) minmax(8rem,.42fr); gap: .6rem; align-items: center; padding: .43rem 0; border-bottom: 1px solid #eee9df; color: #48554d; font-size: .68rem; line-height: 1.3; }
body.portal .presupuesto-costo:last-child { border-bottom: 0; }
body.portal .presupuesto-input-wrap { display: flex; min-width: 0; align-items: center; border: 1px solid #d9d1c4; border-radius: .35rem; background: #fffdf8; }
body.portal .presupuesto-input-wrap > span { padding-left: .48rem; color: #69746b; font-size: .66rem; }
body.portal .presupuesto-costo input, body.portal .presupuesto-supuestos input { width: 100%; min-width: 0; padding: .48rem .45rem; border: 1px solid #d9d1c4; border-radius: .35rem; color: var(--guia-tinta); background: #fffdf8; font: 600 .7rem var(--fuente-texto); text-align: right; }
body.portal .presupuesto-input-wrap input { border: 0; background: transparent; }
body.portal .presupuesto-costo input:focus-visible, body.portal .presupuesto-supuestos input:focus-visible { outline: 3px solid var(--marca-profundo); outline-offset: 1px; }
body.portal .presupuesto-supuestos { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .55rem; }
body.portal .presupuesto-supuestos legend { grid-column: 1 / -1; }
body.portal .presupuesto-supuestos label { display: grid; gap: .32rem; align-content: start; color: #59665d; font-size: .63rem; line-height: 1.3; }
body.portal .presupuesto-resultados { position: sticky; top: 1rem; padding: 1.15rem; border-radius: .7rem; color: var(--guia-papel); background: var(--guia-tinta); }
body.portal .presupuesto-total { display: grid; gap: .2rem; padding: .85rem; border: 1px solid rgba(255,255,255,.14); border-radius: .5rem; background: rgba(255,255,255,.055); }
body.portal .presupuesto-total > span { color: rgba(255,253,248,.7); font-size: .63rem; }
body.portal .presupuesto-total strong { color: var(--guia-acento); font-size: clamp(1.5rem, 3vw, 2.1rem); line-height: 1.1; letter-spacing: -.05em; }
body.portal .presupuesto-total small { color: rgba(255,253,248,.55); font-size: .56rem; }
body.portal .presupuesto-metricas { display: grid; gap: 0; margin: .65rem 0 0; }
body.portal .presupuesto-metricas > div { display: flex; justify-content: space-between; gap: .7rem; align-items: baseline; padding: .55rem 0; border-bottom: 1px solid rgba(255,255,255,.13); }
body.portal .presupuesto-metricas dt { color: rgba(255,253,248,.7); font-size: .62rem; line-height: 1.35; }
body.portal .presupuesto-metricas dd { margin: 0; color: var(--guia-papel); font-size: .75rem; font-weight: 700; text-align: right; white-space: nowrap; }
body.portal .presupuesto-estado { margin: .7rem 0 0; color: var(--marca); font-size: .62rem; line-height: 1.45; }
body.portal .presupuesto-metodo { max-width: 74rem; margin: .85rem 0 0; color: #59665d; font-size: .64rem; line-height: 1.5; }

/* Seguimiento de feria: modelos editables y copiables, sin capturar datos. */
body.portal .seguimiento-lab { margin: 2.5rem 0 4rem; padding: clamp(1rem, 3vw, 2.1rem); border: 1px solid #d8e0d9; border-radius: 1rem; background: #e9efea; }
body.portal .seguimiento-lab-cabecera { display: flex; justify-content: space-between; gap: 1rem; align-items: center; }
body.portal .seguimiento-lab-cabecera h2 { max-width: 25ch; margin: 0; color: var(--guia-tinta); font-size: clamp(1.45rem, 2.5vw, 2.05rem); line-height: 1.08; letter-spacing: -.04em; }
body.portal .seguimiento-lab-cabecera > div > p:last-child { max-width: 42rem; margin: .55rem 0 0; color: #59665d; font-size: .77rem; line-height: 1.5; }
body.portal .seguimiento-sello { display: grid; width: 4.3rem; height: 4.3rem; flex: 0 0 auto; align-content: center; justify-items: center; border: 1px solid rgba(23,35,31,.24); border-radius: 50%; color: var(--marca); background: #20372f; font: 600 .52rem/1.5 'Azeret Mono',monospace; letter-spacing: .08em; transform: rotate(7deg); }
body.portal .seguimiento-filtros { display: flex; flex-wrap: wrap; gap: .45rem; margin: 1.1rem 0 .75rem; }
body.portal .seguimiento-filtros button { padding: .55rem .78rem; border: 1px solid #bdc9c0; border-radius: 99px; color: #3f4c45; background: #fffdf8; font: 600 .65rem var(--fuente-texto); cursor: pointer; transition: color .18s, background .18s, transform .18s; }
body.portal .seguimiento-filtros button:hover { transform: translateY(-1px); }
body.portal .seguimiento-filtros button[aria-pressed="true"] { border-color: #20372f; color: #fffdf8; background: #20372f; }
body.portal .seguimiento-filtros button:focus-visible, body.portal .seguimiento-plantilla button:focus-visible { outline: 3px solid var(--marca-profundo); outline-offset: 2px; }
body.portal .seguimiento-plantillas { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .7rem; margin-top: .9rem; }
body.portal .seguimiento-plantilla { display: flex; min-width: 0; flex-direction: column; padding: 1rem; border: 1px solid #d8dfd9; border-radius: .68rem; background: #fffdf8; box-shadow: 0 .5rem 1.2rem rgba(23,35,31,.045); }
body.portal .seguimiento-tipo { margin: -.3rem 0 .65rem; color: #68736b; font-size: .67rem; }
body.portal .seguimiento-plantilla h3 { margin: 0 0 .65rem; color: var(--guia-tinta); font-size: .98rem; line-height: 1.25; }
body.portal .seguimiento-asunto { margin: 0 0 .7rem; padding: .55rem .6rem; border-left: 2px solid #e3b550; color: #46544b; background: #f5f1e8; font-size: .65rem; line-height: 1.45; }
body.portal .seguimiento-plantilla pre { flex: 1; min-height: 10rem; margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; color: #525d55; font: 400 .66rem/1.55 var(--fuente-texto); }
body.portal .seguimiento-plantilla button { align-self: flex-start; margin-top: .8rem; padding: .58rem .78rem; border: 1px solid #20372f; border-radius: .35rem; color: #fffdf8; background: #20372f; font: 600 .63rem var(--fuente-texto); cursor: pointer; transition: background .18s, transform .18s; }
body.portal .seguimiento-plantilla button:hover { transform: translateY(-1px); background: #31594b; }
body.portal .seguimiento-estado { min-height: 1.1rem; margin: .85rem 0 0; color: #44584b; font-size: .67rem; line-height: 1.45; }
body.portal .seguimiento-privacidad { margin: .45rem 0 0; color: #69746b; font-size: .58rem; line-height: 1.5; }
body.portal .seguimiento-plantilla[hidden] { display: none; }
@media (max-width: 58rem) {
  body.portal .lanzamiento-hitos { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body.portal .presupuesto-cuerpo { grid-template-columns: minmax(0,1fr) minmax(15rem,.72fr); }
  body.portal .seguimiento-plantillas { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 43rem) {
  body.portal .lanzamiento-pulso-cabecera, body.portal .presupuesto-herramienta-cabecera { align-items: start; flex-direction: column; }
  body.portal .seguimiento-lab-cabecera { align-items: flex-start; }
  body.portal .seguimiento-sello { width: 3.4rem; height: 3.4rem; }
  body.portal .lanzamiento-progreso { width: 100%; min-width: 0; }
  body.portal .lanzamiento-hitos { grid-template-columns: 1fr; }
  body.portal .lanzamiento-hitos label { min-height: 0; }
  body.portal .presupuesto-cuerpo { grid-template-columns: 1fr; }
  body.portal .presupuesto-resultados { position: static; }
  body.portal .presupuesto-acciones { width: 100%; }
  body.portal .seguimiento-plantillas { grid-template-columns: 1fr; }
  body.portal .seguimiento-plantilla pre { min-height: 0; }
}
@media (max-width: 22rem) {
  body.portal .presupuesto-supuestos { grid-template-columns: 1fr; }
  body.portal .presupuesto-costo { grid-template-columns: minmax(0,1fr) minmax(6.7rem,.5fr); }
}
@media print {
  body.portal .guia-comercial { width: 100%; padding: 0; }
  body.portal .guia-hero-imagen, body.portal .guia-anclas, body.portal .guia-entrada, body.portal .presupuesto-acciones, body.portal .presupuesto-metodo { display: none !important; }
  body.portal .presupuesto-herramienta { margin: 0; padding: .4rem; border: 0; background: white; }
  body.portal .presupuesto-cuerpo { grid-template-columns: 1.4fr .8fr; }
  body.portal .presupuesto-resultados { position: static; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  body.portal .presupuesto-costo { break-inside: avoid; }
}
