/* GK Evolution Timeline 1.0.28 — lightweight, dependency-free carousel */
.gket-timeline-widget {
	--gket-accent: #008044;
	--gket-dark: #18352b;
	--gket-line: #d7e4dd;
	--gket-card: #fff;
	--gket-shadow: 0 16px 45px rgba(20,54,40,.10);
	--gket-visual-height: 265px;
	width: 100%;
	position: relative;
	box-sizing: border-box;
}
.gket-timeline-widget *, .gket-timeline-widget *::before, .gket-timeline-widget *::after { box-sizing: border-box; }
.gket-carousel { position: relative; width: 100%; padding: 0; }
/* Edge to edge: break out of the Elementor container (JS refines this to the exact screen width). */
.gket-timeline-widget.gket-fullbleed { width:100vw; max-width:none; margin-left:calc(50% - 50vw); margin-right:0; }
.gket-viewport { width: 100%; overflow: hidden; touch-action: pan-y; -webkit-user-select: none; user-select: none; }
.gket-viewport.gket-is-draggable { cursor: grab; }
.gket-is-dragging .gket-viewport { cursor: grabbing; }
.gket-is-dragging .gket-trigger, .gket-is-dragging .gket-visual { pointer-events: none; }
.gket-track { display:flex; align-items:flex-start; gap:24px; width:max-content; max-width:none; padding:12px 0 30px; transform:translate3d(0,0,0); transition:transform .65s cubic-bezier(.22,.61,.36,1); will-change:transform; }
.gket-stage { --gket-stage-image-width:220px; position:relative; flex:0 0 300px; width:300px; min-width:300px; text-align:center; }
.gket-visual { height:var(--gket-visual-height,265px); width:100%; display:flex; align-items:flex-end; justify-content:var(--gket-justify,center); position:relative; padding:0 var(--gket-pad-r,8px) 0 var(--gket-pad-l,8px); overflow:visible; cursor:pointer; }
.gket-visual:focus-visible { outline:2px solid var(--gket-accent); outline-offset:4px; border-radius:10px; }
.gket-tree-image { display:block; flex:0 0 auto; max-width:100%; max-height:100%; width:var(--gket-stage-image-width,220px); height:auto; object-fit:contain; object-position:var(--gket-ox,center) bottom; transform-origin:var(--gket-origin,center bottom); transition:transform .55s cubic-bezier(.22,.61,.36,1),filter .4s ease,opacity .4s ease; -webkit-user-drag:none; pointer-events:none; }
.gket-stage:not(.is-active) .gket-tree-image { opacity:.82; }
.gket-stage.is-active .gket-tree-image { transform:translateY(-4px) scale(1.035); filter:saturate(1); }
.gket-stage.is-active .gket-tree-image.gket-growing { animation:gketTreeGrow var(--gket-animation-duration,.8s) cubic-bezier(.22,.61,.36,1) both; }
.gket-html-animation { width:100%; max-width:100%; height:100%; min-height:1px; display:flex; align-items:flex-end; justify-content:var(--gket-justify,center); overflow:visible; line-height:0; transition:opacity .4s ease,transform .55s cubic-bezier(.22,.61,.36,1); }
/* Width = the stage's Image Width, but never wider than the stage and never taller than the Image Area Height (like an <img> with max-height:100%). */
.gket-html-inner { position:relative; flex:0 0 auto; width:min(var(--gket-stage-image-width,220px), calc(var(--gket-visual-height,265px) * var(--gket-ar,1000))); max-width:100%; transform-origin:var(--gket-origin,center bottom); transition:transform .55s cubic-bezier(.22,.61,.36,1); }
.gket-html-inner style { display:none!important; }
/* Wrappers inside pasted/preset HTML (e.g. .sg-wrap { max-width:602px }) must follow the plugin width. */
.gket-html-inner > *:not(style) { width:100%!important; max-width:100%!important; margin-left:0!important; margin-right:0!important; }
.gket-html-inner svg:not(svg svg) { display:block; width:100%!important; max-width:100%!important; height:auto!important; }
.gket-html-inner img { display:block; max-width:100%; height:auto; }
.gket-stage.is-active .gket-html-inner.gket-growing { animation:gketTreeGrowSoft var(--gket-animation-duration,.8s) cubic-bezier(.22,.61,.36,1) both; }
.gket-stage:not(.is-active) .gket-html-animation { opacity:.82; }
.gket-stage.is-active .gket-html-animation { opacity:1; transform:translateY(-4px); filter:saturate(1); }
.gket-image-placeholder { display:flex; align-items:center; justify-content:center; width:min(180px,80%); height:180px; border:1px dashed #b7c9bf; border-radius:18px; background:#fafcfb; color:#789087; font-size:13px; }
/* When every stage fits on screen, stretch them so the row still runs edge to edge. */
.gket-track { min-width:100%; }
.gket-timeline-widget .gket-stage { flex-grow:1; }
/* Last stage attached to the right screen edge (default). Per-stage Alignment overrides it. */
.gket-last-flush .gket-stage:last-child { --gket-justify:flex-end; --gket-origin:right bottom; --gket-ox:right; --gket-pad-r:0px; }
@keyframes gketTreeGrowSoft { 0%{transform:translateY(8px) scaleY(.05) scaleX(.97);opacity:.2} 65%{transform:translateY(-1px) scaleY(1.03) scaleX(1.01);opacity:1} 100%{transform:none;opacity:1} }
@keyframes gketTreeGrow { 0%{transform:translateY(8px) scaleY(.05) scaleX(.97);opacity:.2} 65%{transform:translateY(-5px) scaleY(1.035) scaleX(1.01);opacity:1} 100%{transform:translateY(-4px) scaleY(1) scaleX(1);opacity:1} }
.gket-trigger { width:100%; border:0; background:transparent!important; padding:0; margin:0; cursor:pointer; font:inherit; color:inherit; text-align:center; box-shadow:none!important; outline:none; text-decoration:none!important; }
.gket-trigger:hover,.gket-trigger:focus,.gket-trigger:active { background:transparent!important; color:inherit!important; border-color:transparent!important; box-shadow:none!important; outline:none; }
.gket-stage-line { position:relative; display:block; height:22px; margin-top:1px; }
.gket-stage-line::before { content:""; position:absolute; left:-50%; right:-50%; top:10px; height:1px; background:var(--gket-line); }
.gket-stage:first-child .gket-stage-line::before { left:0; }
.gket-stage:last-child .gket-stage-line::before { right:0; }
.gket-dot { position:absolute; z-index:2; left:50%; top:4px; width:12px; height:12px; border-radius:50%; background:#fff; border:2px solid var(--gket-accent); transform:translateX(-50%); transition:transform .35s ease,background .35s ease,box-shadow .35s ease; }
.gket-stage.is-active .gket-dot { background:var(--gket-accent); transform:translateX(-50%) scale(1.28); box-shadow:0 0 0 6px rgba(0,128,68,.10); }
.gket-year,.gket-subtitle,.gket-info-title,.gket-info-text { white-space:normal!important; overflow-wrap:break-word; word-break:normal; hyphens:manual; }
.gket-year { display:block; margin-top:8px; font-size:22px; line-height:1.15; font-weight:800; letter-spacing:-.02em; color:var(--gket-dark); transition:color .3s ease; }
.gket-stage.is-active .gket-year { color:var(--gket-accent); }
.gket-subtitle { display:block; margin:9px auto 0; min-height:42px; width:100%; max-width:100%; padding:0 6px; font-size:13px; line-height:1.45; font-weight:700; letter-spacing:.045em; color:#668076; text-align:center; transition:color .3s ease,transform .3s ease; }
.gket-trigger:hover .gket-subtitle,.gket-stage.is-active .gket-subtitle { color:var(--gket-accent); transform:translateY(-2px); }
.gket-info-card { position:relative; left:50%; margin:22px 0 0; padding:22px 22px 24px; width:min(var(--gket-content-width,100%),calc(100vw - 32px)); max-width:calc(100vw - 32px); background:var(--gket-card); border:1px solid #e2ebe6; border-radius:16px; box-shadow:var(--gket-shadow); text-align:left; opacity:0; visibility:hidden; transform:translateX(calc(-50% + var(--gket-card-shift,0px))) translateY(-8px); max-height:0; overflow:hidden; transition:opacity .35s ease,transform .4s ease,max-height .45s ease,visibility .35s ease; }
.gket-stage.is-active .gket-info-card { opacity:1; visibility:visible; transform:translateX(calc(-50% + var(--gket-card-shift,0px))) translateY(0); max-height:1200px; }
.gket-info-title { margin:0 0 9px; font-size:18px; line-height:1.3; font-weight:800; color:var(--gket-accent); }
.gket-info-text { font-size:14px; line-height:1.7; color:#42564e; }
.gket-info-text img,.gket-info-text iframe,.gket-info-text video { max-width:100%; height:auto; }
.gket-info-text>*:first-child{margin-top:0}.gket-info-text>*:last-child{margin-bottom:0}
.gket-nav { position:absolute; z-index:10; top:calc(12px + var(--gket-visual-height,265px) / 2 - 21px); width:42px; height:42px; border:1px solid #e1ebe5; border-radius:50%; background:#fff!important; color:var(--gket-dark)!important; padding:0!important; margin:0!important; display:inline-flex; align-items:center; justify-content:center; font-size:21px; line-height:1; cursor:pointer; box-shadow:0 8px 24px rgba(20,54,40,.10)!important; transition:transform .25s ease,background-color .25s ease,color .25s ease,opacity .25s ease; }
.gket-nav:hover,.gket-nav:focus,.gket-nav:active { background:var(--gket-accent)!important; color:#fff!important; border-color:var(--gket-accent)!important; box-shadow:0 8px 24px rgba(20,54,40,.14)!important; outline:none!important; }
.gket-nav:hover{transform:translateY(-2px)}.gket-nav:disabled{opacity:.35;cursor:default;transform:none}.gket-prev{left:16px}.gket-next{right:16px}
.gket-progress { display:flex; align-items:center; justify-content:center; gap:7px; padding-top:2px; }
.gket-progress-dot { width:7px; height:7px; padding:0; border:0; border-radius:50%; background:var(--gket-line); cursor:pointer; transition:width .25s ease,background-color .25s ease,transform .25s ease; }
.gket-progress-dot:hover,.gket-progress-dot:focus{background:var(--gket-accent);outline:none}.gket-progress-dot.is-active{width:22px;border-radius:999px;background:var(--gket-accent)}
@media(max-width:1024px){.gket-timeline-widget{--gket-visual-height:235px}.gket-stage{flex-basis:260px;width:260px;min-width:260px}}
@media(max-width:767px){
.gket-timeline-widget{--gket-visual-height:clamp(155px,48vw,205px)}
/* One full-width stage per swipe on phones; !important beats the desktop Stage Width rule Elementor prints without a media query. */
.gket-timeline-widget .gket-stage{flex:0 0 var(--gket-mobile-stage-width,100%)!important;width:var(--gket-mobile-stage-width,100%)!important;min-width:var(--gket-mobile-stage-width,100%)!important;max-width:var(--gket-mobile-stage-width,100%)!important}
.gket-timeline-widget .gket-track{gap:0!important;padding:8px 0 22px}
.gket-visual{padding-left:min(var(--gket-pad-l,4px),4px);padding-right:min(var(--gket-pad-r,4px),4px)}
.gket-info-card{left:0!important;right:auto;transform:none!important;width:min(var(--gket-content-width-mobile,100%),calc(100% - 32px))!important;max-width:calc(100% - 32px)!important;margin:16px auto 0!important;padding:16px;border-radius:14px}
.gket-info-card ul,.gket-info-card ol{padding-left:18px;margin-left:0}
.gket-stage.is-active .gket-info-card{transform:none!important}
.gket-subtitle{max-width:100%!important;padding-left:8px;padding-right:8px}
.gket-year{font-size:19px}
.gket-subtitle{font-size:12px;line-height:1.4;letter-spacing:.035em}
.gket-nav{top:calc(8px + var(--gket-visual-height,205px) / 2 - 19px);width:38px;height:38px;font-size:19px}
.gket-prev{left:8px}.gket-next{right:8px}
.gket-progress{padding-top:0}
}
@media(prefers-reduced-motion:reduce){.gket-track,.gket-tree-image,.gket-html-animation,.gket-info-card,.gket-dot,.gket-subtitle,.gket-nav{transition:none!important}.gket-stage.is-active .gket-tree-image.gket-growing,.gket-stage.is-active .gket-html-inner.gket-growing{animation:none!important}.gket-html-inner{transition:none!important}}
