/* Presentation V2 — identical canvas rules for editor preview and public hero. */
.pv2-stage{width:100%;height:100%;min-width:0}
.pv2-canvas{position:relative;display:flex;align-items:center;overflow:hidden;isolation:isolate;box-sizing:border-box;min-height:300px;height:100%;width:100%;padding:clamp(20px,3vw,42px);border-radius:18px;background:#f5f5f3;color:#192a3c}
.pv2-visual{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.pv2-visual img{display:block;width:100%;height:100%;object-fit:cover;object-position:var(--pv2-x,50%) var(--pv2-y,50%);transform:rotate(var(--pv2-rotation,0deg)) scale(calc(var(--pv2-fill,1) * var(--pv2-zoom,1)));will-change:transform}
.pv2-wash{position:absolute;inset:0;z-index:1;pointer-events:none}
.pv2-copy{position:relative;z-index:2;width:var(--pv2-copywidth,40%);min-width:0;box-sizing:border-box;overflow-wrap:anywhere}
.pv2-copy h3{margin:0 0 12px;font-size:clamp(23px,3vw,48px);line-height:1.1;color:#192a3c}
.pv2-slide-caption{margin:0 0 12px;color:#43556a;font-size:clamp(13px,1.35vw,18px);line-height:1.4}
.pv2-text-right{justify-content:flex-end}
.pv2-fade .pv2-wash{background:linear-gradient(90deg,#f5f5f3 0%,rgba(245,245,243,var(--pv2-blend,.75)) 42%,transparent 100%)}
.pv2-fade.pv2-text-right .pv2-wash{background:linear-gradient(270deg,#f5f5f3 0%,rgba(245,245,243,var(--pv2-blend,.75)) 42%,transparent 100%)}
.pv2-full .pv2-wash{background:rgba(245,245,243,var(--pv2-blend,.75))}
.pv2-split .pv2-visual{left:50%}.pv2-split.pv2-text-right .pv2-visual{left:0;right:50%}
.pv2-split .pv2-wash{background:linear-gradient(90deg,#f5f5f3 0%,#f5f5f3 46%,transparent 55%)}
.pv2-split.pv2-text-right .pv2-wash{background:linear-gradient(270deg,#f5f5f3 0%,#f5f5f3 46%,transparent 55%)}
.pv2-floating .pv2-visual{inset:10% 6% 10% 52%;overflow:visible}.pv2-floating.pv2-text-right .pv2-visual{inset:10% 52% 10% 6%}
.pv2-floating .pv2-visual img{object-fit:contain;filter:drop-shadow(0 15px 16px #26384c55)}
.pv2-floating .pv2-wash{display:none}
.pv2-animate .pv2-visual img{animation-duration:var(--pv2-motion-duration,var(--pv2-duration,5s));animation-timing-function:linear;animation-fill-mode:both;animation-name:none}
.pv2-animate[data-motion="pan-left"] .pv2-visual img{animation-name:pv2-pan-left}
.pv2-animate[data-motion="pan-right"] .pv2-visual img{animation-name:pv2-pan-right}
.pv2-animate[data-motion="zoom-in"] .pv2-visual img{animation-name:pv2-zoom-in}
.pv2-animate[data-motion="zoom-out"] .pv2-visual img{animation-name:pv2-zoom-out}
.pv2-animate[data-motion="fly-left"] .pv2-visual img{animation-name:pv2-fly-left;animation-duration:min(2s,var(--pv2-duration,5s))}
.pv2-animate[data-motion="fly-right"] .pv2-visual img{animation-name:pv2-fly-right;animation-duration:min(2s,var(--pv2-duration,5s))}
@keyframes pv2-pan-left{from{transform:translateX(3%) rotate(var(--pv2-rotation)) scale(calc(var(--pv2-fill) * var(--pv2-zoom) * 1.12))}to{transform:translateX(-3%) rotate(var(--pv2-rotation)) scale(calc(var(--pv2-fill) * var(--pv2-zoom) * 1.12))}}
@keyframes pv2-pan-right{from{transform:translateX(-3%) rotate(var(--pv2-rotation)) scale(calc(var(--pv2-fill) * var(--pv2-zoom) * 1.12))}to{transform:translateX(3%) rotate(var(--pv2-rotation)) scale(calc(var(--pv2-fill) * var(--pv2-zoom) * 1.12))}}
@keyframes pv2-zoom-in{from{transform:rotate(var(--pv2-rotation)) scale(calc(var(--pv2-fill) * var(--pv2-zoom)))}to{transform:rotate(var(--pv2-rotation)) scale(calc(var(--pv2-fill) * var(--pv2-zoom) * 1.18))}}
@keyframes pv2-zoom-out{from{transform:rotate(var(--pv2-rotation)) scale(calc(var(--pv2-fill) * var(--pv2-zoom) * 1.18))}to{transform:rotate(var(--pv2-rotation)) scale(calc(var(--pv2-fill) * var(--pv2-zoom)))}}
@keyframes pv2-fly-left{from{transform:translateX(-16%) rotate(var(--pv2-rotation)) scale(calc(var(--pv2-fill) * var(--pv2-zoom) * 1.2));opacity:.5}to{transform:translateX(0) rotate(var(--pv2-rotation)) scale(calc(var(--pv2-fill) * var(--pv2-zoom)));opacity:1}}
@keyframes pv2-fly-right{from{transform:translateX(16%) rotate(var(--pv2-rotation)) scale(calc(var(--pv2-fill) * var(--pv2-zoom) * 1.2));opacity:.5}to{transform:translateX(0) rotate(var(--pv2-rotation)) scale(calc(var(--pv2-fill) * var(--pv2-zoom)));opacity:1}}
[data-kp-promo-carousel]:hover .pv2-animate .pv2-visual img,[data-kp-promo-carousel]:focus-within .pv2-animate .pv2-visual img{animation-play-state:paused}
.pv2-public-slide{display:block!important;padding:0!important;min-height:300px!important;height:300px!important;overflow:hidden}.pv2-public-slide[hidden]{display:none!important}
.pv2-public-slide .pv2-canvas{border-radius:18px;height:300px;min-height:300px}
.pv2-editor{max-width:100%;display:grid;gap:18px}.pv2-editor section{background:#fff;border:1px solid #d9dfe5;border-radius:15px;padding:18px}
.pv2-toprow{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:14px}
.pv2-langpick{display:flex;align-items:center;gap:8px}.pv2-editor label{display:block;font-weight:600;margin:10px 0 5px}
.pv2-editor input:not([type="checkbox"]):not([type="file"]),.pv2-editor textarea,.pv2-editor select{display:block;width:100%;max-width:100%;padding:8px;border:1px solid #abb7c5;border-radius:8px;background:#fff;color:#25374b;box-sizing:border-box}
.pv2-langpick select{width:auto!important}.pv2-hint{font-size:13px;color:#687789;margin:8px 0}.pv2-headline{margin:16px 0 8px;font-weight:600}
.pv2-preview{width:100%;aspect-ratio:3/1;min-height:210px}.pv2-preview .pv2-canvas{border-radius:18px;min-height:100%}
.pv2-player-controls{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin:12px 0 0}.pv2-player-controls button,.pv2-tabs button,.pv2-thumb-actions button{border:1px solid #c8d0d9;background:#f6f8fa;border-radius:8px;padding:8px 12px;cursor:pointer}
.pv2-thumbnails{display:flex;gap:12px;overflow-x:auto;padding:4px 0 10px}.pv2-thumb{flex:0 0 190px;padding:7px;border:2px solid #d8e0e7;border-radius:12px;background:#f9fafb;cursor:pointer;min-width:0}
.pv2-thumb[aria-current="true"]{border-color:#a77937;background:#fcf5e9}.pv2-thumb-image{height:83px;border-radius:8px;background:#e6e9ef;display:flex;align-items:center;justify-content:center;overflow:hidden}
.pv2-thumb-image img{width:100%;height:100%;object-fit:cover}.pv2-thumb-name{font-size:13px;margin:7px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pv2-thumb-actions{display:flex;gap:4px}.pv2-thumb-actions button{padding:5px 8px;font-size:12px}
.pv2-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 16px}.pv2-tabs button[aria-selected="true"]{background:#24384b;color:white}.pv2-tabcontent{max-width:800px}.pv2-tabcontent[hidden]{display:none}.pv2-tabcontent input[type="range"]{padding:0;width:100%;max-width:620px;accent-color:#97703d}.pv2-flags{display:flex;gap:20px;flex-wrap:wrap}.pv2-flags input{display:inline}.pv2-upload{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:10px 0}
@media(max-width:700px){.pv2-preview{aspect-ratio:auto;height:290px}.pv2-copy{width:68%}.pv2-copy h3{font-size:24px}.pv2-editor section{padding:12px}.pv2-public-slide .pv2-copy{width:70%}}
@media(prefers-reduced-motion:reduce){.pv2-animate .pv2-visual img{animation:none!important;transition:none!important}}

/* Do not animate every unhidden slide: only an actual presentation change gets an entry transition. */


/* Presentation V2.1 timeline */
.pv2-timing-global{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:16px}.pv2-timing-global input{max-width:110px!important}.pv2-timing-global .pv2-hint{flex-basis:100%;margin:0}
.pv2-timeline-heading{display:flex;justify-content:space-between;gap:10px;margin:15px 0 7px}.pv2-timeline{display:flex;gap:2px;min-height:48px;border-radius:9px;overflow:hidden;background:#e5e9ef}
.pv2-time-segment{position:relative;min-width:0;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:4px;border:0;background:#dbe4e9;color:#24384b;cursor:pointer;font:inherit;font-size:12px}
.pv2-time-segment:nth-child(even){background:#e9dfca}.pv2-time-segment[aria-current=true]{box-shadow:inset 0 0 0 3px #a77937}.pv2-time-segment span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pv2-time-transition{position:absolute;right:0;top:0;bottom:0;border-left:2px dashed #996f37;background:#fff5;pointer-events:none}
[data-pv2-scrub]{width:100%!important;accent-color:#a77937;margin:8px 0 0}.pv2-scrub-time{font-size:12px;color:#65758a;text-align:right}
.pv2-thumb[draggable=true]{cursor:grab}.pv2-thumb.pv2-dragover{outline:3px dashed #a77937;outline-offset:-4px}.pv2-thumb:active{cursor:grabbing}

/* Presentation preview is a self-contained, full-width carousel surface. */
.pv2-demo-shell{margin-top:22px;padding:18px;border:2px solid #cbd3db;background:#f6f7f7;border-radius:18px;box-shadow:0 6px 22px #1526380b}
.pv2-demo-header{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.pv2-demo-title{font-weight:700;color:#1b2d40;font-size:17px}
.pv2-demo-note{color:#64748a;font-size:12px}
.pv2-demo-shell .pv2-preview{border:1px solid #e3d9c8;border-radius:18px;overflow:hidden;background:#f5f5f3;box-shadow:0 3px 12px #27374712}
.pv2-demo-shell .pv2-player-controls{margin-top:12px}
.pv2-timing-area{margin-top:18px;padding:18px;border:1px solid #d8e0e7;border-radius:13px;background:#f8fafb}
.pv2-timing-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.pv2-timing-top h3{margin:0;font-size:18px}
.pv2-timing-top .pv2-hint{margin:0}
@media(max-width:700px){.pv2-demo-shell,.pv2-timing-area{padding:10px}.pv2-demo-note{font-size:11px}}

/* V2.3: neutral presentation surface; framing shows exactly what belongs to hero. */
.kp-promo-carousel:has(.pv2-public-slide){background:#f5f5f3!important}
.pv2-demo-shell .pv2-preview{background:#f5f5f3}
.pv2-editor .pv2-top{background:transparent;border:0;padding:0}
.pv2-main-tabs,.pv2-global-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.pv2-main-tabs button,.pv2-global-tabs button{border:1px solid #cbd4dd;border-radius:9px;padding:11px 18px;background:#f7f8f9;color:#1d3043;cursor:pointer;font:inherit}
.pv2-main-tabs button[aria-selected="true"],.pv2-global-tabs button[aria-selected="true"]{background:#1d3043;color:#fff}
.pv2-editor [hidden]{display:none!important}
.pv2-global-panel{max-width:850px}
.pv2-global-panel input[type="range"]{accent-color:#46667d}
.pv2-global-panel label{margin-top:14px}
.pv2-inherit-toggle{display:inline-flex!important;gap:7px;align-items:center;font-weight:500!important;font-size:13px;color:#40546a;background:#f0f3f5;border-radius:7px;padding:5px 10px;margin-top:10px!important}
.pv2-inherit-toggle input{width:auto!important;accent-color:#1c3449}
.pv2-inherit-toggle.pv2-is-inherited{color:#576b7c}
.pv2-tabcontent [data-pv2-prop]:disabled{opacity:.68;cursor:not-allowed;background:#f2f4f5}
.pv2-editor section{border-color:#d5dde3;background:#fff}
.pv2-time-segment:nth-child(even){background:#dce4e8}
.pv2-thumb[aria-current="true"]{background:#eff4f6;border-color:#476c82}
.pv2-time-segment[aria-current=true]{box-shadow:inset 0 0 0 3px #476c82}
.pv2-time-transition{border-color:#46667d}
.pv2-demo-shell{background:#f7f8f9;border-color:#d5dde3;box-shadow:none}
/* Wide screens: keep a live miniature visible while changing settings below the main preview. */
.pv2-floating-preview{position:fixed;right:22px;top:88px;z-index:25;width:520px;max-width:38vw;box-sizing:border-box;border:1px solid #cbd5db;border-radius:14px;box-shadow:0 12px 34px #17263725;background:#fff;padding:12px}
.pv2-floating-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px}
.pv2-floating-head button{font:inherit;font-size:12px;border:1px solid #d1d9de;border-radius:7px;padding:5px 8px;background:#f7f8f9;cursor:pointer}
.pv2-floating-stage{aspect-ratio:3/1;overflow:hidden;border-radius:9px}
.pv2-floating-stage .pv2-canvas{min-height:0!important;height:100%;padding:12px}
.pv2-floating-stage .pv2-copy h3{font-size:20px}
.pv2-floating-stage .pv2-slide-caption{font-size:12px}
@media(max-width:1449px){.pv2-floating-preview{display:none!important}}

.pv2-timeline{position:relative;overflow:visible;margin:12px 0 18px}
.pv2-time-segment{overflow:hidden;border-radius:3px}
.pv2-time-handle{position:absolute;top:-5px;bottom:-5px;width:14px;transform:translateX(-50%);cursor:col-resize;z-index:3;border-radius:6px;touch-action:none;background:#476c82;border:3px solid white;box-shadow:0 0 0 1px #476c82}
.pv2-time-handle:hover,.pv2-time-handle:focus-visible{background:#173951;outline:2px solid #173951;outline-offset:2px}
.kp-page .kp-promo-hero:has(.pv2-public-slide){background:#f5f5f3;border-color:#dce2e4}
.kp-page .kp-promo-slide.pv2-public-slide{background:#f5f5f3}

/* Hero V2.4: the same stage dimensions for manual, V2 and automatic book slides. */
.kp-page .kp-primary-hero .kp-promo-viewport{position:relative;height:300px;min-height:300px;isolation:isolate;overflow:hidden;border-radius:18px;background:#f5f5f3}
.kp-page .kp-primary-hero .kp-promo-viewport>.kp-promo-slide,
.kp-page .kp-primary-hero .kp-promo-viewport>.kp-promo-slide.kp-auto-hero,
.kp-page .kp-primary-hero .kp-promo-viewport>.kp-promo-slide.kp-hero-canvas,
.kp-page .kp-primary-hero .kp-promo-viewport>.kp-promo-slide.pv2-public-slide{position:absolute!important;inset:0!important;width:100%!important;height:300px!important;min-height:0!important;max-height:300px!important;box-sizing:border-box;overflow:hidden; margin:0!important}
.kp-page .kp-primary-hero .kp-promo-viewport>.kp-promo-slide[hidden]{display:none!important}
.kp-page .kp-primary-hero .kp-promo-viewport .kp-auto-hero-cover{height:100%;max-height:100%;min-height:0;align-self:center}
.kp-page .kp-primary-hero .kp-promo-viewport .kp-auto-hero-cover img{height:auto;width:auto;max-height:245px;max-width:100%;object-fit:contain}
.kp-page .kp-primary-hero .kp-promo-viewport .kp-auto-hero .kp-hero-copy{min-width:0;flex:1}
.kp-page .kp-primary-hero .kp-promo-viewport .kp-auto-hero .kp-hero-copy h3{font-size:clamp(28px,3.3vw,45px);line-height:1.08}
/* The new presentation enters via a soft crossfade; it must not affect layout. */
.kp-page .kp-primary-hero .kp-promo-viewport>.kp-promo-slide.kp-promo-enter{z-index:2;animation:kp-entry-crossfade .65s ease-out both!important}
.kp-page .kp-primary-hero .kp-promo-viewport>.kp-promo-slide.kp-promo-exit{z-index:1;animation:none!important;pointer-events:none}
@keyframes kp-entry-crossfade{from{opacity:0}to{opacity:1}}
/* Independent third text layout: centred block with a useful width and readable lines. */
.pv2-text-center{justify-content:center;text-align:center}
.pv2-text-center .pv2-copy{max-width:850px;width:min(var(--pv2-copywidth,70%),90%);margin-inline:auto;text-align:center}
.pv2-fade.pv2-text-center .pv2-wash{background:linear-gradient(90deg,rgba(245,245,243,.14) 0%,rgba(245,245,243,var(--pv2-blend,.75)) 28%,rgba(245,245,243,var(--pv2-blend,.75)) 72%,rgba(245,245,243,.14) 100%)}
.pv2-split.pv2-text-center .pv2-visual{left:0;right:0;opacity:.65}
.pv2-split.pv2-text-center .pv2-wash{background:rgba(245,245,243,var(--pv2-blend,.75))}
.pv2-floating.pv2-text-center .pv2-visual{inset:12% 15%;opacity:.24}
.pv2-floating.pv2-text-center .pv2-wash{display:block;background:rgba(245,245,243,var(--pv2-blend,.75))}
/* V2 text matches the full-width preview while still wrapping cleanly. */
.kp-page .kp-primary-hero .pv2-public-slide .pv2-copy{
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
    -webkit-hyphens: none;
    text-wrap: balance;
}
.kp-page .kp-primary-hero .pv2-public-slide .pv2-copy h3{font-size:clamp(25px,3vw,45px)}
@media(max-width:700px){
 .kp-page .kp-primary-hero .kp-promo-viewport{height:310px;min-height:310px}
 .kp-page .kp-primary-hero .kp-promo-viewport>.kp-promo-slide,
 .kp-page .kp-primary-hero .kp-promo-viewport>.kp-promo-slide.kp-auto-hero,
 .kp-page .kp-primary-hero .kp-promo-viewport>.kp-promo-slide.kp-hero-canvas,
 .kp-page .kp-primary-hero .kp-promo-viewport>.kp-promo-slide.pv2-public-slide{height:310px!important;max-height:310px!important}
 .kp-page .kp-primary-hero .kp-promo-viewport>.kp-promo-slide.kp-auto-hero{flex-direction:row;gap:12px;padding:16px}
 .kp-page .kp-primary-hero .kp-promo-viewport .kp-auto-hero-cover{flex:0 0 32%;max-height:100%}
 .kp-page .kp-primary-hero .kp-promo-viewport .kp-auto-hero-cover img{max-height:220px}
 .pv2-text-center .pv2-copy{width:92%}
}
@media(prefers-reduced-motion:reduce){.kp-page .kp-primary-hero .kp-promo-viewport>.kp-promo-slide.kp-promo-enter{animation:none!important}}

/* Hero V2.5 — one neutral white canvas across all presentation types. */
.kp-page .kp-promo-hero.kp-primary-hero{background:#fff!important;border-color:#e1e5e9!important}
.kp-page .kp-primary-hero .kp-promo-viewport{background:#fff!important}
.kp-page .kp-primary-hero .kp-promo-viewport>.kp-promo-slide.kp-auto-hero{background:#fff!important}
.kp-page .kp-primary-hero .kp-promo-viewport>.kp-promo-slide.pv2-public-slide{background:#fff!important}
.kp-page .kp-primary-hero .pv2-canvas{background:#fff}
.kp-page .kp-primary-hero .pv2-fade .pv2-wash{background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,var(--pv2-blend,.75)) 42%,transparent 100%)}
.kp-page .kp-primary-hero .pv2-fade.pv2-text-right .pv2-wash{background:linear-gradient(270deg,#fff 0%,rgba(255,255,255,var(--pv2-blend,.75)) 42%,transparent 100%)}
.kp-page .kp-primary-hero .pv2-full .pv2-wash{background:rgba(255,255,255,var(--pv2-blend,.75))}
.kp-page .kp-primary-hero .pv2-split .pv2-wash{background:linear-gradient(90deg,#fff 0%,#fff 46%,transparent 55%)}
.kp-page .kp-primary-hero .pv2-split.pv2-text-right .pv2-wash{background:linear-gradient(270deg,#fff 0%,#fff 46%,transparent 55%)}
/* Centred copy is really centred, including description and call to action. */
.kp-page .kp-primary-hero .pv2-canvas.pv2-text-center{justify-content:center;text-align:center}
.kp-page .kp-primary-hero .pv2-canvas.pv2-text-center .pv2-copy{width:min(86%,var(--pv2-copywidth,70%));max-width:960px;margin-inline:auto;text-align:center}
.kp-page .kp-primary-hero .pv2-canvas.pv2-text-center .pv2-copy h3,
.kp-page .kp-primary-hero .pv2-canvas.pv2-text-center .pv2-copy p{margin-left:auto;margin-right:auto;text-align:center;max-width:100%}
.kp-page .kp-primary-hero .pv2-canvas.pv2-text-center .pv2-wash{background:linear-gradient(90deg,rgba(255,255,255,.16) 0%,rgba(255,255,255,var(--pv2-blend,.75)) 24%,rgba(255,255,255,var(--pv2-blend,.75)) 76%,rgba(255,255,255,.16) 100%)}
.kp-page .kp-primary-hero .pv2-canvas.pv2-text-center .pv2-copy .kp-btn{display:inline-flex;justify-content:center}
/* Only one presentation-entry animation, no blur and no generic unhide animation. */
.kp-page .kp-primary-hero .kp-promo-viewport>.kp-promo-slide:not(.kp-promo-enter){animation:none!important}
@media(max-width:700px){.kp-page .kp-primary-hero .pv2-canvas.pv2-text-center .pv2-copy{width:96%;max-width:96%}}
