/* WPsumaweb-timeline */
.swt{--swt-accent:#c9a26b;--swt-line:#e6dfd4;--swt-title:#222222;--swt-text:#666666;--swt-date:#c9a26b;--swt-card-bg:#ffffff;--swt-font-title:'Raleway',sans-serif;--swt-font-body:'Raleway',sans-serif;--swt-font-date:'Playfair Display',serif;--swt-title-size:20px;--swt-text-size:15px;--swt-date-size:26px;--swt-icon-size:22px;--swt-cols:3;--swt-gap:32px;--swt-pad:22px;--swt-dot:16px;--swt-radius:0px;--swt-halo:rgba(201,162,107,.18);position:relative;width:100%;box-sizing:border-box;font-family:var(--swt-font-body)}
@supports (color:color-mix(in srgb,red 10%,transparent)){.swt{--swt-halo:color-mix(in srgb,var(--swt-accent) 18%,transparent)}}
/* Medidas derivadas: tamaño de la caja del icono, del marcador y de la fila de la fecha */
.swt{--swt-icon-box:calc(var(--swt-icon-size) * 2.1);--swt-mark:var(--swt-dot);--swt-row:max(var(--swt-mark),calc(var(--swt-date-size) * 1.15));--swt-rail:calc(var(--swt-mark) + 32px);--swt-agap:calc(var(--swt-mark) / 2 + 48px)}
.swt--icons-dot{--swt-mark:var(--swt-icon-box)}
.swt--ico-filled{--swt-icon-bg:var(--swt-accent);--swt-icon-color:#fff}
.swt--ico-outline{--swt-icon-bg:#fff;--swt-icon-color:var(--swt-accent)}
.swt *,.swt *:before,.swt *:after{box-sizing:border-box}
.swt__list{list-style:none!important;margin:0!important;padding:0;position:relative}
.swt__item{position:relative;list-style:none!important;margin:0!important}
.swt__item:before{content:none}

/* Fecha, tarjeta y textos */
.swt__date{display:flex;align-items:center;min-height:var(--swt-row);font-family:var(--swt-font-date);font-size:var(--swt-date-size);font-weight:600;line-height:1.1;color:var(--swt-date)}
.swt__card{background:var(--swt-card-bg);border-radius:var(--swt-radius);overflow:hidden;transition:box-shadow .3s,transform .3s}
.swt__card--icon{overflow:visible}
/* Con el icono montado sobre la foto la tarjeta no recorta: la imagen redondea sus esquinas superiores */
.swt__card--icon .swt__media{border-radius:var(--swt-radius) var(--swt-radius) 0 0}
.swt--shadow .swt__card{box-shadow:0 6px 24px rgba(0,0,0,.08);border-bottom:3px solid var(--swt-accent)}
.swt--shadow .swt__card:hover{box-shadow:0 12px 32px rgba(0,0,0,.12);transform:translateY(-3px)}
.swt--border .swt__card{border:1px solid rgba(0,0,0,.1);border-bottom:3px solid var(--swt-accent)}
.swt--plain .swt__card{background:transparent}
.swt--plain .swt__body{padding:0}
.swt__media{aspect-ratio:16/10;overflow:hidden;background:#f2efea}
.swt__img{display:block;width:100%;height:100%;object-fit:cover}
.swt--plain .swt__media{margin-bottom:16px;border-radius:var(--swt-radius)}
.swt__body{padding:var(--swt-pad) 24px 24px}
.swt__title{font-family:var(--swt-font-title);font-size:var(--swt-title-size);font-weight:600;line-height:1.3;color:var(--swt-title);margin:0 0 10px}
.swt__text{font-family:var(--swt-font-body);font-size:var(--swt-text-size);line-height:1.7;color:var(--swt-text)}
.swt__text p{margin:0 0 10px;font-size:inherit;color:inherit;line-height:inherit}
.swt__text p:last-child{margin-bottom:0}
.swt__text a{color:var(--swt-accent)}

/* Marcador de la línea (punto o círculo con icono) */
.swt__mark{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;flex:none;width:var(--swt-dot);height:var(--swt-dot);border-radius:50%;background:#fff;border:3px solid var(--swt-accent);box-shadow:0 0 0 5px var(--swt-halo)}
.swt__mark--icon,.swt__badge{width:var(--swt-icon-box);height:var(--swt-icon-box);border:2px solid var(--swt-accent);background:var(--swt-icon-bg);color:var(--swt-icon-color);line-height:1}
.swt__badge{display:flex;align-items:center;justify-content:center;border-radius:50%;margin:0 0 16px}
.swt__media+.swt__body .swt__badge{position:relative;margin-top:calc(var(--swt-icon-box) / -2 - var(--swt-pad));box-shadow:0 4px 14px rgba(0,0,0,.12)}
.swt--plain .swt__media+.swt__body .swt__badge{margin-top:calc(var(--swt-icon-box) / -2 - 16px)}
/* Icono dentro (propio, Elementor, Font Awesome o subido) */
.swt__mark--icon>svg,.swt__badge>svg,.swt__mark--icon>i,.swt__badge>i,.swt__upico,.swt__upico-img{display:block;width:var(--swt-icon-size);height:var(--swt-icon-size);font-size:var(--swt-icon-size);line-height:1;color:inherit}
.swt__mark--icon>i:before,.swt__badge>i:before{display:block;line-height:1}
.swt__mark svg:not(.swt-ic),.swt__badge svg:not(.swt-ic){fill:currentColor}
.swt__upico{background:currentColor;-webkit-mask:var(--swt-src) center/contain no-repeat;mask:var(--swt-src) center/contain no-repeat}
.swt__upico-img{object-fit:contain}

/* ---------- VERTICAL (línea a la izquierda) ---------- */
.swt--vertical .swt__list{padding-left:var(--swt-rail)}
.swt--vertical .swt__list:before{content:"";position:absolute;left:calc(var(--swt-mark) / 2 - 1px);top:calc(var(--swt-row) / 2);bottom:10px;width:2px;background:var(--swt-line)}
.swt--vertical .swt__item{padding-bottom:40px}
.swt--vertical .swt__item:last-child{padding-bottom:0}
.swt--vertical .swt__dot{position:absolute;left:calc(var(--swt-rail) * -1);top:0;display:flex;align-items:center;justify-content:center;width:var(--swt-mark);height:var(--swt-row)}
.swt--vertical .swt__date{margin:0 0 14px}

/* ---------- VERTICAL ALTERNADA (ordenador y tablet) ---------- */
@media(min-width:768px){
	.swt--alternate .swt__list{padding-left:0}
	.swt--alternate .swt__list:before{left:50%;transform:translateX(-50%)}
	.swt--alternate .swt__item{width:50%;padding-bottom:56px}
	.swt--alternate .swt__item:nth-child(odd){padding-right:var(--swt-agap)}
	.swt--alternate .swt__item:nth-child(even){margin-left:50%!important;padding-left:var(--swt-agap)}
	.swt--alternate .swt__item:nth-child(odd) .swt__dot{left:auto;right:calc(var(--swt-mark) / -2)}
	.swt--alternate .swt__item:nth-child(even) .swt__dot{left:calc(var(--swt-mark) / -2)}
	.swt--alternate .swt__date{position:absolute;top:0;margin:0;white-space:nowrap}
	.swt--alternate .swt__item:nth-child(odd) .swt__date{left:calc(100% + var(--swt-agap))}
	.swt--alternate .swt__item:nth-child(even) .swt__date{right:calc(100% + var(--swt-agap));justify-content:flex-end;text-align:right}
	.swt--alternate .swt__item:last-child{padding-bottom:0}
}

/* ---------- HORIZONTAL ---------- */
.swt--horizontal{--swt-c:var(--swt-cols)}
.swt__nav{display:flex;justify-content:flex-end;gap:8px;margin:0 0 18px}
.swt__arrow{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;padding:0;margin:0;border:1px solid var(--swt-accent);border-radius:min(var(--swt-radius),21px);background:transparent;color:var(--swt-accent);font-size:18px;line-height:1;cursor:pointer;transition:background .2s,color .2s,opacity .2s}
.swt__arrow:hover,.swt__arrow:focus-visible{background:var(--swt-accent);color:#fff}
.swt__arrow[disabled]{opacity:.35;cursor:default;background:transparent;color:var(--swt-accent)}
.swt--no-scroll .swt__nav{display:none}
.swt--horizontal .swt__list{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - (var(--swt-c) - 1) * var(--swt-gap)) / var(--swt-c));gap:0 var(--swt-gap);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:8px 0 12px}
.swt--horizontal .swt__list::-webkit-scrollbar{display:none}
.swt--horizontal .swt__item{display:flex;flex-direction:column;scroll-snap-align:start}
.swt--horizontal .swt__date{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:0;margin:0 0 16px}
/* La fila del punto ocupa todo el ancho: la línea es :before y el marcador va encima */
.swt--horizontal .swt__dot{position:relative;display:flex;align-items:center;width:100%;height:var(--swt-mark);margin:0 0 24px}
.swt--horizontal .swt__dot:before{content:"";position:absolute;left:0;right:calc(var(--swt-gap) * -1);top:50%;height:2px;margin-top:-1px;background:var(--swt-line);z-index:0}
.swt--horizontal .swt__item:last-child .swt__dot:before{right:0}
.swt--horizontal .swt__mark{margin-left:6px}
.swt--horizontal .swt__card{flex:1}

@media(max-width:1024px){.swt--horizontal{--swt-c:min(var(--swt-cols),2)}}

/* ---------- HORIZONTAL ALTERNADA (arriba y abajo de la línea) ----------
   Cada hito ocupa 2 columnas y empieza una columna después del anterior: los de arriba y los de abajo
   se intercalan, y cada tarjeta queda centrada sobre su punto. Las 5 filas (tarjeta arriba, fecha arriba,
   punto, fecha abajo, tarjeta abajo) son compartidas (subgrid): la línea queda recta y las tarjetas de
   una misma fila miden lo mismo. --swt-tracks (desde PHP) = columnas visibles: 2 x hitos por fila + 1. */
.swt--h-alternate{--swt-t:var(--swt-tracks,7);--swt-gap:24px}
@media(max-width:1024px){.swt--h-alternate{--swt-t:min(var(--swt-tracks,7),5)}}
@media(min-width:641px){
	@supports (grid-template-rows:subgrid){
		.swt--h-alternate .swt__list{grid-auto-flow:row;grid-template-rows:repeat(5,auto);grid-auto-columns:calc((100% - (var(--swt-t) - 1) * var(--swt-gap)) / var(--swt-t))}
		.swt--h-alternate .swt__item{display:grid;grid-template-rows:subgrid;grid-row:1 / span 5;grid-column:var(--swt-i) / span 2;pointer-events:none}
		.swt--h-alternate .swt__item>*{pointer-events:auto}
		.swt--h-alternate .swt__dot{grid-row:3;justify-content:center;margin:0;pointer-events:none}
		.swt--h-alternate .swt__mark{margin-left:0}
		.swt--h-alternate .swt__dot:before{left:50%;right:auto;width:calc(50% + var(--swt-gap) / 2)}
		.swt--h-alternate .swt__item:last-child .swt__dot:before{display:none}
		.swt--h-alternate .swt__date{justify-content:center;text-align:center;min-height:0;margin:12px 0}
		.swt--h-alternate .swt__item:nth-child(odd) .swt__date{grid-row:4}
		.swt--h-alternate .swt__item:nth-child(even) .swt__date{grid-row:2}
		.swt--h-alternate .swt__item:nth-child(odd) .swt__card{grid-row:5}
		.swt--h-alternate .swt__item:nth-child(even) .swt__card{grid-row:1}
		.swt--h-alternate .swt__item:nth-child(even) .swt__card:hover{transform:translateY(3px)}
		.swt--h-alternate .swt__body{padding:calc(var(--swt-pad) - 2px) 20px 20px}
	}
}

/* Horizontal en móvil: deslizar */
@media(max-width:640px){
	.swt--horizontal.swt--m-scroll{--swt-c:1;--swt-gap:20px}
	.swt--horizontal.swt--m-scroll .swt__list{grid-auto-columns:85%}
}

/* ---------- ANCHO DE TARJETA FIJO (horizontal) ----------
   Si se indica un ancho, manda sobre "hitos visibles". Nunca pasa del ancho disponible. */
.swt--cw.swt--horizontal .swt__list{grid-auto-columns:min(var(--swt-card-w,320px),100%)}
/* Si caben todas, quedan centradas; si no caben, empiezan a la izquierda y se desliza ("safe"). */
.swt--cw.swt--horizontal .swt__list{justify-content:safe center}
@media(min-width:641px){
	@supports (grid-template-rows:subgrid){
		/* En alternada cada tarjeta ocupa 2 columnas: cada columna mide la mitad del ancho (menos el hueco). */
		.swt--cw.swt--h-alternate .swt__list{grid-auto-columns:calc((min(var(--swt-card-w,320px),100%) - var(--swt-gap)) / 2)}
	}
}

/* Horizontal en móvil: pasa a vertical */
@media(max-width:640px){
	.swt--horizontal.swt--m-vertical .swt__nav{display:none}
	.swt--horizontal.swt--m-vertical .swt__list{display:block;overflow:visible;padding:0 0 0 var(--swt-rail)}
	.swt--horizontal.swt--m-vertical .swt__list:before{content:"";position:absolute;left:calc(var(--swt-mark) / 2 - 1px);top:calc(var(--swt-row) / 2);bottom:10px;width:2px;background:var(--swt-line)}
	.swt--horizontal.swt--m-vertical .swt__item{display:block;padding-bottom:40px}
	.swt--horizontal.swt--m-vertical .swt__item:last-child{padding-bottom:0}
	.swt--horizontal.swt--m-vertical .swt__dot{position:absolute;left:calc(var(--swt-rail) * -1);top:0;justify-content:center;width:var(--swt-mark);height:var(--swt-row);margin:0}
	.swt--horizontal.swt--m-vertical .swt__dot:before{content:none}
	.swt--horizontal.swt--m-vertical .swt__mark{margin-left:0}
	.swt--horizontal.swt--m-vertical .swt__date{white-space:normal;min-height:var(--swt-row);margin:0 0 14px}
}

@media(max-width:640px){
	.swt{--swt-pad:18px}
	.swt__date{font-size:calc(var(--swt-date-size) * .85)}
	.swt__body{padding:var(--swt-pad) 20px 20px}
}

/* ---------- ANIMACIÓN (solo si el JS la activa) ---------- */
.swt.is-anim .swt__item{opacity:0;transform:translateY(28px);transition:opacity .6s ease,transform .6s ease}
.swt.is-anim .swt__item.is-visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
	.swt.is-anim .swt__item{opacity:1;transform:none;transition:none}
	.swt--horizontal .swt__list{scroll-behavior:auto}
}

.swt-empty{padding:14px 18px;background:#fff8e5;border:1px dashed #dba617;color:#50575e;font:14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
