/* KPVISA Blocks – loaded on the site and inside the editor. Uses the KPVISA theme colors. */
:root,.editor-styles-wrapper{
  --kpvb-navy:var(--kpv-navy,#0B2A4A);
  --kpvb-navy-2:var(--kpv-navy-2,#12375E);
  --kpvb-ink:var(--kpv-ink,#0B1F33);
  --kpvb-bg:var(--kpv-bg,#F5F7FA);
  --kpvb-tint:var(--kpv-tint,#E3EBF5);
  --kpvb-line:var(--kpv-line,#E2E8F0);
  --kpvb-line-2:var(--kpv-line-2,#C5D2E3);
  --kpvb-muted:var(--kpv-muted,#4A5568);
  --kpvb-on-navy:var(--kpv-on-navy,#DCE6F2);
  --kpvb-coral:var(--kpv-coral,#E8552F);
  --kpvb-coral-ink:var(--kpv-coral-ink,#C8401D);
  --kpvb-coral-light:var(--kpv-coral-light,#FFB199);
  --kpvb-shadow:0 1px 2px rgba(11,42,74,.06),0 12px 32px -12px rgba(11,42,74,.18);
  --kpvb-tick:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
  --kpvb-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
}

[class*="kpvb-"],[class*="kpvb-"] *,[class*="kpvb-"] *::before,[class*="kpvb-"] *::after{box-sizing:border-box}

/* ---------- Full width template ---------- */
.kpvb-canvas{display:flow-root}
.kpvb-canvas>:not(.alignfull):not(.alignwide){max-width:820px;margin-left:auto;margin-right:auto;padding-left:24px;padding-right:24px}
.kpvb-canvas>.alignwide{max-width:1200px;margin-left:auto;margin-right:auto;padding-left:24px;padding-right:24px}
.kpvb-canvas>.kpvb-section:last-child{padding-bottom:96px}
/* Editor: let full-width sections span, keep plain text readable */
.editor-styles-wrapper .is-root-container.is-root-container{max-width:none}
.editor-styles-wrapper .is-root-container>:not(.alignfull):not(.alignwide):not([data-align="full"]):not([data-align="wide"]){max-width:820px;margin-left:auto;margin-right:auto}
.editor-styles-wrapper .is-root-container>[data-align="full"]{max-width:none;margin-left:0;margin-right:0}

/* ---------- Sections ---------- */
.kpvb-section{margin-top:0!important;margin-bottom:0!important;padding:88px 0;color:var(--kpvb-ink)}
.kpvb-section--tight{padding:48px 0}
.kpvb-section--narrow .kpvb-wrap{max-width:820px}
.kpvb-section--navy{background:var(--kpvb-navy);color:#fff}
.kpvb-wrap{max-width:1200px;margin:0 auto!important;padding:0 24px}
.kpvb-wrap>*:first-child{margin-top:0}
.kpvb-wrap>*:last-child{margin-bottom:0}
.kpvb-section h2.wp-block-heading{margin:0 0 14px;font-size:clamp(2rem,3.6vw,2.9rem);line-height:1.1;letter-spacing:-0.035em;font-weight:800}
.kpvb-section h3.wp-block-heading{margin:0 0 12px;font-size:22px;line-height:1.25;letter-spacing:-0.02em;font-weight:800}
.kpvb-section--navy h2.wp-block-heading,.kpvb-section--navy h3.wp-block-heading{color:#fff}
.kpvb-section--navy p{color:var(--kpvb-on-navy)}
.kpvb-section h2+.wp-block-columns,.kpvb-section h2+.wp-block-group,.kpvb-section .kpvb-lead+.wp-block-columns,.kpvb-section .kpvb-lead+.wp-block-kpvisa-price-list,.kpvb-section h2+.wp-block-kpvisa-price-list,.kpvb-section .kpvb-lead+div{margin-top:36px}
.kpvb-display{margin:0 0 20px;font-size:clamp(2.4rem,5vw,4.2rem)!important;line-height:1.04!important;letter-spacing:-0.045em!important;font-weight:800!important;max-width:16ch}
.kpvb-lead{margin:0;font-size:19px;line-height:1.55;color:var(--kpvb-navy-2);max-width:40rem}
.kpvb-display+.kpvb-lead{margin-bottom:24px}
@media (max-width:700px){.kpvb-section{padding:60px 0}.kpvb-section--tight{padding:40px 0}.kpvb-wrap{padding:0 16px}.kpvb-lead{font-size:18px}}

/* Inside a normal page (white box): keep sections compact */
.kpv-prose .kpvb-section{padding:28px 0}
.kpv-prose .kpvb-wrap{padding:0}
.kpv-prose .kpvb-section.alignfull{width:auto;margin-left:0;margin-right:0}

/* ---------- Hero ---------- */
.kpvb-hero{padding:72px 0 56px}
.kpvb-hero-cols{align-items:center!important;gap:56px!important}
.kpvb-hero-cols>.wp-block-column:first-child{flex:1.25 1 0%!important}
.kpvb-hero-cols>.wp-block-column:last-child{flex:.9 1 0%!important}
.kpvb-hero-cols--ticket>.wp-block-column:last-child{flex:0 1 400px!important}
@media (max-width:781px){.kpvb-hero{padding:48px 0 40px}.kpvb-hero-cols{gap:32px!important}.kpvb-hero-cols>.wp-block-column{flex-basis:100%!important}}

/* Photos */
.kpvb-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:28px}
.kpvb-avatar img{width:112px;height:112px;object-fit:cover;border-radius:50%}
.kpvb-avatar{margin:0 0 16px}
.wp-block-image img:not([src]){display:none}
.wp-block-image:has(> img:not([src])){display:none}
.kpvb-media-text{align-items:center!important;gap:56px!important}

/* ---------- Buttons ---------- */
.kpvb-section .wp-block-buttons{gap:12px;margin-top:8px}
.kpvb-section .wp-block-button__link,.wp-block-button.is-style-kpvb-coral .wp-block-button__link,.wp-block-button.is-style-kpvb-light .wp-block-button__link{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:13px 26px;border-radius:999px;border:2px solid var(--kpvb-navy);background:var(--kpvb-navy);color:#fff;font-weight:700;font-size:16px;line-height:1.2;text-decoration:none}
.kpvb-section .wp-block-button__link:hover{background:var(--kpvb-ink);border-color:var(--kpvb-ink);color:#fff}
.kpvb-section .is-style-outline .wp-block-button__link{background:transparent;color:var(--kpvb-navy)}
.kpvb-section .is-style-outline .wp-block-button__link:hover{background:var(--kpvb-navy);color:#fff}
.wp-block-button.is-style-kpvb-coral .wp-block-button__link{background:var(--kpvb-coral);border-color:var(--kpvb-coral);color:#fff}
.wp-block-button.is-style-kpvb-coral .wp-block-button__link:hover{background:var(--kpvb-coral-ink);border-color:var(--kpvb-coral-ink)}
.wp-block-button.is-style-kpvb-light .wp-block-button__link{background:#fff;border-color:#fff;color:var(--kpvb-navy)}
.wp-block-button.is-style-kpvb-light .wp-block-button__link:hover{background:var(--kpvb-tint);border-color:var(--kpvb-tint);color:var(--kpvb-ink)}
.wp-block-button.is-style-kpvb-link .wp-block-button__link{background:none!important;border-color:transparent!important;padding-left:8px;padding-right:8px;text-decoration:underline;text-underline-offset:5px;color:var(--kpvb-navy)}
.kpvb-section--navy .is-style-kpvb-link .wp-block-button__link,.kpvb-cta .is-style-kpvb-link .wp-block-button__link{color:#fff}

/* ---------- Lists ---------- */
ul.is-style-kpvb-ticks,ul.kpvb-arrows{list-style:none;padding-left:0;margin:0;display:flex;flex-direction:column;gap:12px}
ul.is-style-kpvb-ticks li,ul.kpvb-arrows li{position:relative;padding-left:32px;font-size:16px;line-height:1.5;margin:0}
ul.is-style-kpvb-ticks li::before,ul.kpvb-arrows li::before{content:"";position:absolute;left:0;top:2px;width:20px;height:20px;background:var(--kpvb-coral-ink);-webkit-mask:var(--kpvb-tick) center/contain no-repeat;mask:var(--kpvb-tick) center/contain no-repeat}
ul.kpvb-arrows li::before{background:var(--kpvb-navy-2);-webkit-mask-image:var(--kpvb-arrow);mask-image:var(--kpvb-arrow)}
.kpvb-section--navy ul.is-style-kpvb-ticks li::before{background:var(--kpvb-coral-light)}
.kpvb-hero ul.is-style-kpvb-ticks li{font-size:17px;font-weight:600}

/* ---------- Cards and boxes ---------- */
.wp-block-group.is-style-kpvb-card{background:#fff;border-radius:28px;padding:36px;box-shadow:var(--kpvb-shadow)}
.wp-block-group.is-style-kpvb-tint{background:var(--kpvb-tint);border-radius:16px;padding:18px 22px;margin:1.6em 0}
.wp-block-group.is-style-kpvb-tint p{margin:0}
.kpvb-dashed{border:2px dashed var(--kpvb-line-2);border-radius:28px;padding:36px}
.kpvb-equal{align-items:stretch!important}
.kpvb-equal>.wp-block-column>.wp-block-group{height:100%;box-sizing:border-box}
@media (max-width:600px){.wp-block-group.is-style-kpvb-card,.kpvb-dashed{padding:26px 22px}}

/* ---------- Steps ---------- */
.kpvb-steps{gap:32px!important}
.kpvb-step-n{width:44px;height:44px;border-radius:50%;background:#fff;color:var(--kpvb-navy)!important;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:18px;margin:0 0 18px}
.kpvb-steps>.wp-block-column:last-child .kpvb-step-n{background:var(--kpvb-coral);color:#fff!important}
.kpvb-steps p:not(.kpvb-step-n){font-size:16px;line-height:1.55;margin:0}
.kpvb-steps h3.wp-block-heading{font-size:21px;font-weight:700}

/* ---------- FAQ ---------- */
.kpvb-faq{border-top:1px solid var(--kpvb-line-2)}
.kpvb-faq .wp-block-details{border-bottom:1px solid var(--kpvb-line-2);margin:0;padding:0}
.kpvb-faq .wp-block-details summary{display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:19px;font-weight:700;cursor:pointer;padding:22px 0;list-style:none}
.kpvb-faq .wp-block-details summary::-webkit-details-marker{display:none}
.kpvb-faq .wp-block-details summary::after{content:"";flex:none;width:10px;height:10px;border-right:2px solid var(--kpvb-navy);border-bottom:2px solid var(--kpvb-navy);transform:rotate(45deg) translateY(-3px);transition:transform .2s}
.kpvb-faq .wp-block-details[open] summary::after{transform:rotate(225deg)}
.kpvb-faq .wp-block-details p{margin:0 0 24px;font-size:17px;line-height:1.65;color:var(--kpvb-muted)}

/* ---------- Commitments ---------- */
ul.kpvb-commit{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--kpvb-line-2);border-bottom:1px solid var(--kpvb-line-2)}
ul.kpvb-commit li{display:flex;align-items:center;gap:12px;padding:22px 20px;margin:0;font-size:15px;font-weight:700;color:var(--kpvb-navy)}
ul.kpvb-commit li+li{border-left:1px solid var(--kpvb-line-2)}
ul.kpvb-commit li::before{content:"";flex:none;width:10px;height:10px;border-radius:50%;background:var(--kpvb-coral)}
@media (max-width:900px){ul.kpvb-commit{grid-template-columns:1fr 1fr}ul.kpvb-commit li:nth-child(3){border-left:0}ul.kpvb-commit li:nth-child(n+3){border-top:1px solid var(--kpvb-line-2)}}
@media (max-width:480px){ul.kpvb-commit{grid-template-columns:1fr}ul.kpvb-commit li+li{border-left:0;border-top:1px solid var(--kpvb-line-2)}}

/* ---------- Call to action ---------- */
.kpvb-cta{background:var(--kpvb-navy);color:#fff;border-radius:32px;padding:56px 48px;display:flex;flex-wrap:wrap;gap:24px 40px;align-items:center;justify-content:space-between}
.kpvb-cta h2.wp-block-heading{color:#fff;margin:0;max-width:30rem;font-size:clamp(1.75rem,3vw,2.4rem)}
.kpvb-cta .wp-block-buttons{margin:0}
@media (max-width:600px){.kpvb-cta{padding:36px 24px}}

/* ---------- Testimonials ---------- */
.kpvb-quote{display:flex;flex-direction:column}
.kpvb-quote__text{font-size:17px;line-height:1.65;margin:0 0 20px;flex:1 1 auto}
.kpvb-quote__name{margin:0;font-size:16px}
.kpvb-quote__meta{margin:2px 0 0;font-size:14px;color:var(--kpvb-muted)}

/* ---------- Team ---------- */
.kpvb-team{gap:32px!important}
.kpvb-member__role{margin:0 0 10px;font-size:14px;font-weight:700;color:var(--kpvb-coral-ink)}
.kpvb-team p:not(.kpvb-member__role){font-size:15px;color:var(--kpvb-muted);line-height:1.55}

/* ---------- Stats ---------- */
.kpvb-stats{gap:0!important;border-top:1px solid var(--kpvb-line-2);border-bottom:1px solid var(--kpvb-line-2)}
.kpvb-stats>.wp-block-column{padding:28px 24px}
.kpvb-stats>.wp-block-column+.wp-block-column{border-left:1px solid var(--kpvb-line-2)}
.kpvb-stat__n{margin:0;font-size:clamp(2.6rem,5vw,3.6rem);line-height:1;font-weight:800;letter-spacing:-0.04em;color:var(--kpvb-navy)}
.kpvb-stat__label{margin:10px 0 0;font-size:15px;line-height:1.45;color:var(--kpvb-muted);max-width:16rem}
@media (max-width:781px){.kpvb-stats>.wp-block-column+.wp-block-column{border-left:0;border-top:1px solid var(--kpvb-line-2)}}

/* ---------- Dynamic blocks: buttons ---------- */
.kpvb-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:11px 22px;border-radius:999px;border:2px solid var(--kpvb-navy);background:var(--kpvb-navy);color:#fff!important;font-weight:700;font-size:15px;line-height:1.2;text-decoration:none!important;white-space:nowrap}
.kpvb-btn:hover{background:var(--kpvb-ink);border-color:var(--kpvb-ink)}
.kpvb-btn--lg{min-height:52px;padding:14px 28px;font-size:17px}
.kpvb-btn--block{width:100%}
.kpvb-btn--coral{background:var(--kpvb-coral);border-color:var(--kpvb-coral)}
.kpvb-btn--coral:hover{background:var(--kpvb-coral-ink);border-color:var(--kpvb-coral-ink)}
.kpvb-btn--light{background:#fff;border-color:#fff;color:var(--kpvb-navy)!important}
.kpvb-btn--light:hover{background:var(--kpvb-tint);border-color:var(--kpvb-tint)}
.kpvb-buy{margin:8px 0}
.kpvb-link{font-weight:700;font-size:15px;color:var(--kpvb-navy);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px;text-decoration-color:var(--kpvb-line-2)}
.kpvb-link:hover{text-decoration-color:var(--kpvb-coral)}
.kpvb-notice{border:2px dashed var(--kpvb-line-2);border-radius:14px;padding:16px;font-size:14px;color:var(--kpvb-muted);background:#fff}

/* ---------- Dynamic blocks: price list ---------- */
.kpvb-prices{color:var(--kpvb-ink)}
.kpvb-prices__head{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.kpvb-prices__head h3{margin:0;font-size:22px;font-weight:800;letter-spacing:-0.02em}
.kpvb-icon-dot{flex:none;width:44px;height:44px;border-radius:50%;background:var(--kpvb-tint);color:var(--kpvb-navy);display:flex;align-items:center;justify-content:center}
.kpvb-prices__list{list-style:none;margin:0;padding:0}
.kpvb-prices__item{margin:0}
.kpvb-prices--columns{display:grid;grid-template-columns:repeat(var(--kpvb-cols,3),minmax(0,1fr));background:#fff;border-radius:28px;box-shadow:var(--kpvb-shadow)}
.kpvb-prices--columns.kpvb-prices--n1{--kpvb-cols:1}
.kpvb-prices--columns.kpvb-prices--n2{--kpvb-cols:2}
.kpvb-prices--columns .kpvb-prices__group{padding:30px 28px}
.kpvb-prices--columns .kpvb-prices__group+.kpvb-prices__group{border-left:1px solid var(--kpvb-line)}
.kpvb-prices__row{display:flex;align-items:baseline;gap:10px;padding:14px 0;border-top:1px solid var(--kpvb-line);text-decoration:none;color:var(--kpvb-ink)}
.kpvb-prices__row .kpvb-prices__name{font-size:16px;font-weight:600;line-height:1.35}
.kpvb-prices__row::after{content:"";order:1;flex:1 1 24px;min-width:16px;border-bottom:2px dotted var(--kpvb-line-2);transform:translateY(-4px)}
.kpvb-prices__amount{order:2;flex:none;font-size:18px;font-weight:800;font-variant-numeric:tabular-nums}
.kpvb-prices__row:hover .kpvb-prices__name{text-decoration:underline;text-decoration-color:var(--kpvb-coral);text-decoration-thickness:2px}
@media (max-width:960px){.kpvb-prices--columns{grid-template-columns:1fr}.kpvb-prices--columns .kpvb-prices__group+.kpvb-prices__group{border-left:0;border-top:1px solid var(--kpvb-line)}}
.kpvb-prices--rows{display:flex;flex-direction:column;gap:36px}
.kpvb-prices--rows .kpvb-prices__list{display:flex;flex-direction:column;gap:14px}
.kpvb-prices--rows .kpvb-prices__item{background:#fff;border-radius:20px;padding:24px 28px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 32px;align-items:center;box-shadow:0 1px 2px rgba(11,42,74,.06)}
.kpvb-prices--rows .kpvb-prices__name{margin:0 0 4px;font-size:19px;font-weight:700;line-height:1.3}
.kpvb-prices--rows .kpvb-prices__name a{color:var(--kpvb-ink);text-decoration:none}
.kpvb-prices--rows .kpvb-prices__name a:hover{text-decoration:underline;text-decoration-color:var(--kpvb-coral)}
.kpvb-prices__desc{margin:0;font-size:15px;color:var(--kpvb-muted);line-height:1.5}
.kpvb-prices__buy{display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.kpvb-prices__actions{display:flex;align-items:center;gap:16px}
.kpvb-price{font-size:28px;font-weight:800;letter-spacing:-0.02em;line-height:1;font-variant-numeric:tabular-nums}
.kpvb-price small{font-size:13px;font-weight:600;color:var(--kpvb-muted);letter-spacing:0;margin-left:6px}
@media (max-width:760px){.kpvb-prices--rows .kpvb-prices__item{grid-template-columns:1fr;padding:22px}.kpvb-prices__buy{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between}}

/* ---------- Dynamic blocks: ticket ---------- */
.kpvb-ticket{max-width:400px;border-radius:28px;overflow:hidden;box-shadow:var(--kpvb-shadow);background:#fff;color:var(--kpvb-ink);margin-left:auto;margin-right:auto}
.kpvb-ticket__main{background:var(--kpvb-navy);color:#fff;padding:28px 28px 30px}
.kpvb-ticket__main p{margin:0}
.kpvb-ticket__route{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;color:var(--kpvb-coral-light)!important}
.kpvb-ticket__name{margin-top:10px!important;font-size:19px;font-weight:700;line-height:1.3;color:#fff!important}
.kpvb-ticket__price{margin:16px 0 20px!important;font-size:52px;font-weight:800;letter-spacing:-0.04em;line-height:1;color:#fff!important;font-variant-numeric:tabular-nums}
.kpvb-ticket__price small{font-size:15px;font-weight:600;letter-spacing:0;color:var(--kpvb-on-navy);margin-left:8px}
.kpvb-ticket__stub{position:relative;padding:26px 28px 24px;border-top:2px dashed var(--kpvb-line-2)}
.kpvb-ticket__stub::before,.kpvb-ticket__stub::after{content:"";position:absolute;top:-13px;width:24px;height:24px;border-radius:50%;background:var(--kpvb-bg)}
.kpvb-ticket__stub::before{left:-12px}
.kpvb-ticket__stub::after{right:-12px}
.kpvb-section--navy .kpvb-ticket__stub::before,.kpvb-section--navy .kpvb-ticket__stub::after{background:var(--kpvb-navy)}
.kpvb-ticket__stub ul{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:10px}
.kpvb-ticket__stub li{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:600;margin:0}
.kpvb-ticket__stub svg{flex:none;color:var(--kpvb-coral-ink)}
.kpvb-ticket__note{margin:0;font-size:13px;color:var(--kpvb-muted);line-height:1.5}
