/*
Theme Name: Kaipuu Bocas
Theme URI: https://bocas-del-toro.de
Author: Kaipuu Travels
Description: Child Theme von Twenty Twenty-Five für bocas-del-toro.de – Kaipuu-Farben, lokale Schriften, Header/Footer und wiederverwendbare Bausteine (Patterns).
Template: twentytwentyfive
Version: 1.18.0
Requires at least: 6.7
Requires PHP: 8.0
License: GNU General Public License v2 or later
Text Domain: kaipuu-bocas
*/

/* Lesbarkeit & Umbruch */
body { -webkit-font-smoothing: antialiased; }
.entry-content p, .wp-block-post-content p { overflow-wrap: break-word; }

/* Sprungmarken nicht unter dem Header verstecken */
:where(h2, h3)[id] { scroll-margin-top: 1.5rem; }


/* =====================================================================
   Sektionen (farbige Bänder wie auf sanblasinseln.de)
   ===================================================================== */
.kp-sektion { padding-block: var(--wp--preset--spacing--60); }
.wp-block-post-content > .kp-sektion:first-child { margin-block-start: 0; }
.wp-block-post-content > .kp-sektion + .kp-sektion { margin-block-start: 0; }
.kp-sektion.has-navy-background-color, .kp-sektion.has-navy-tief-background-color { color: #fff; }
.kp-sektion.has-navy-background-color :where(h2,h3,h4), .kp-sektion.has-navy-tief-background-color :where(h2,h3,h4) { color: #fff; }
.kp-sektion.has-navy-background-color a:not(.wp-element-button), .kp-sektion.has-navy-tief-background-color a:not(.wp-element-button) { color: #8FD9DC; }
/* Wellenkante zwischen Bändern (Horizont-Motiv aus dem Logo) */
.kp-sektion--welle { position: relative; }
.kp-sektion--welle::before { content: ""; position: absolute; left: 0; right: 0; top: -1px; height: 18px;
  background: var(--kp-welle-farbe, #fff);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 18' preserveAspectRatio='none'%3E%3Cpath d='M0 0h120v6c-20 0-20 12-40 12S60 6 40 6 20 18 0 18z'/%3E%3C/svg%3E") 0 0 / 120px 18px repeat-x;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 18' preserveAspectRatio='none'%3E%3Cpath d='M0 0h120v6c-20 0-20 12-40 12S60 6 40 6 20 18 0 18z'/%3E%3C/svg%3E") 0 0 / 120px 18px repeat-x; }

/* =====================================================================
   Steckbrief: Fakten als Raster statt Tabelle
   ===================================================================== */
.kp-steckbrief { border-radius: 22px 22px 22px 6px; border: 0; background: #FBF8F2 !important; }
.has-sand-background-color .kp-steckbrief { background: #fff !important; }
.kp-steckbrief > h2 { font-size: 1.15rem !important; font-style: italic; font-weight: 400; margin-bottom: .2em; }
.kp-steckbrief .wp-block-table { margin: 0; overflow: visible; }
.kp-steckbrief table, .kp-steckbrief tbody { display: block; border: 0 !important; }
.kp-steckbrief tbody { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .25rem 2rem; }
.kp-steckbrief tr { display: flex; flex-direction: column; padding: .8rem 0 .7rem; border-top: 1px dashed #DCD3C4; }
.kp-steckbrief td { border: 0 !important; padding: 0 !important; }
.kp-steckbrief td:first-child { font-size: .8rem; color: var(--wp--preset--color--tuerkis-dunkel); font-weight: 600; letter-spacing: .01em; margin-bottom: .15rem; }
.kp-steckbrief td:first-child::before { content: ""; display: inline-block; width: .5rem; height: .5rem; border-radius: 50%; background: var(--wp--preset--color--orange); margin-right: .45rem; vertical-align: .05em; }
.kp-steckbrief td:last-child { font-size: .98rem; line-height: 1.45; }
.kp-steckbrief .kp-stand { margin-top: .6rem; }
@media (max-width: 640px) { .kp-steckbrief tbody { grid-template-columns: 1fr; } }

/* =====================================================================
   Vergleichstabellen: Boho-minimal – Zeilen als ruhige „Kiesel“
   ===================================================================== */
.kp-vergleich { margin-block: 1.5rem; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.kp-vergleich table { border-collapse: separate; border-spacing: 0 .55rem; width: 100%; font-size: .95rem; border: 0; }
.kp-vergleich thead th { background: none; border: 0; padding: .2rem 1.1rem .1rem; text-align: left; white-space: nowrap;
  font-family: var(--wp--preset--font-family--fraunces); font-style: italic; font-weight: 400; font-size: .92rem; color: var(--wp--preset--color--grau); }
.kp-vergleich tbody td { background: #fff; border: 0; padding: 1rem 1.1rem; vertical-align: top; line-height: 1.45; }
.has-base-background-color .kp-vergleich tbody td { background: #FBF8F2; }
.kp-vergleich tbody td:first-child { border-radius: 16px 0 0 16px; font-family: var(--wp--preset--font-family--fraunces); font-weight: 600; font-size: 1.05rem; color: var(--wp--preset--color--navy); white-space: nowrap; }
.kp-vergleich tbody td:last-child { border-radius: 0 16px 16px 0; }
.kp-vergleich tbody td:first-child::before { content: ""; display: inline-block; width: .7rem; height: .55rem; margin-right: .55rem; vertical-align: .08em;
  background: var(--wp--preset--color--orange); border-radius: 60% 40% 55% 45% / 55% 60% 40% 45%; opacity: .85; }
.kp-vergleich tbody tr:nth-child(3n+2) td:first-child::before { background: var(--wp--preset--color--tuerkis); }
.kp-vergleich tbody tr:nth-child(3n+3) td:first-child::before { background: #C9A27E; }
.kp-vergleich td:first-child a { color: inherit; text-decoration: none; background-image: linear-gradient(transparent 62%, rgba(245,166,35,.35) 62%); }
.kp-vergleich tbody tr { transition: transform .25s ease; }
.kp-vergleich tbody tr:hover { transform: translateX(4px); }
.kp-vergleich figcaption { margin: .2rem 0 0; padding: 0 1.1rem; font-size: .8rem; font-style: italic; }
@media (max-width: 720px) { .kp-vergleich table { min-width: 640px; } }

/* =====================================================================
   FAQ: weich aufklappen, Plus/Minus
   ===================================================================== */
:root { interpolate-size: allow-keywords; }
.kp-faq .wp-block-details { border-bottom: 1px solid var(--wp--preset--color--linie); padding: 0; margin: 0; }
.kp-faq .wp-block-details summary { list-style: none; cursor: pointer; font-weight: 600; padding: 1.05rem 2.5rem 1.05rem 0; position: relative; transition: color .2s; }
.kp-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.kp-faq .wp-block-details summary::after { content: ""; position: absolute; right: .25rem; top: 50%; width: 1.6rem; height: 1.6rem; margin-top: -.8rem; border-radius: 50%;
  background: var(--wp--preset--color--tuerkis-hell) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8h10M8 3v10' stroke='%23137A80' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") center / .8rem no-repeat;
  transition: transform .3s ease, background-color .2s; }
.kp-faq .wp-block-details[open] summary::after { transform: rotate(45deg); background-color: #FCE7C2; }
.kp-faq .wp-block-details summary:hover { color: var(--wp--preset--color--tuerkis-dunkel); }
.kp-faq .wp-block-details::details-content { block-size: 0; overflow: clip; transition: block-size .35s ease, content-visibility .35s allow-discrete; }
.kp-faq .wp-block-details[open]::details-content { block-size: auto; }
.kp-faq .wp-block-details > p { margin: 0 0 1.1rem; color: #33424F; }

/* =====================================================================
   Bildkarten (Planung) & Buchungsbanner
   ===================================================================== */
.kp-karten { gap: 1.5rem !important; }
.kp-karte { background: #fff; border-radius: 16px; overflow: hidden; border: 1px solid var(--wp--preset--color--linie); display: flex; flex-direction: column; }
.kp-karte figure { margin: 0 !important; overflow: hidden; aspect-ratio: 4/3; }
.kp-karte figure img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.kp-karte:hover figure img { transform: scale(1.05); }
.kp-karte__inhalt { padding: 1.1rem 1.25rem 1.3rem; display: flex; flex-direction: column; gap: .5rem; flex: 1; }
.kp-karte__inhalt h3 { font-size: 1.25rem; margin: 0; }
.kp-karte__inhalt p { margin: 0; font-size: .95rem; }
.kp-karte__inhalt .kp-btn-wrap { margin-top: auto; padding-top: .4rem; }
.kp-karte .kp-aff-anzeige { margin: .2rem 0 0; }

.kp-banner { position: relative; overflow: hidden; }
.kp-banner .wp-block-cover__image-background { will-change: transform; }
.kp-banner h2 { font-size: clamp(1.9rem, 4.5vw, 3rem); max-width: 14ch; line-height: 1.08; margin-bottom: .35em; }
.kp-banner p { max-width: 46ch; font-size: 1.08rem; }
.kp-banner .kp-banner__buttons { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.4rem; }
.kp-banner .kp-aff-anzeige { color: rgba(255,255,255,.75); }

/* Buttons: Varianten + Mikro-Feedback */
.wp-element-button, .wp-block-button__link { transition: background-color .2s, color .2s, transform .15s, box-shadow .2s; }
.wp-element-button:hover, .wp-block-button__link:hover { transform: translateY(-2px); box-shadow: 0 6px 16px -6px rgba(26,43,60,.45); }
.wp-element-button:active, .wp-block-button__link:active { transform: translateY(0) scale(.98); box-shadow: none; }
.kp-btn--hell { background: #fff !important; color: var(--wp--preset--color--navy) !important; }
.kp-btn--hell:hover { background: var(--wp--preset--color--orange) !important; }
.kp-btn--linie { background: transparent !important; color: inherit !important; box-shadow: inset 0 0 0 2px currentColor; }
.kp-btn--linie:hover { background: rgba(255,255,255,.12) !important; box-shadow: inset 0 0 0 2px currentColor; }
:where(a, button, summary, input, select):focus-visible { outline: 3px solid var(--wp--preset--color--orange); outline-offset: 2px; }

/* Stand-Hinweis, Abschnitt, Autor, Breadcrumb */
.kp-stand { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--grau); }
.kp-abschnitt { border-top: 1px dashed #DCD3C4; }
.kp-autor img { border-radius: 50%; }
.kp-breadcrumb { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--grau); }
.kp-breadcrumb a { color: inherit; }
blockquote.wp-block-quote { border-left: 0 !important; padding: 0 0 0 2.6rem; position: relative; font-family: var(--wp--preset--font-family--fraunces); font-size: 1.3rem; line-height: 1.4; color: var(--wp--preset--color--navy); }
blockquote.wp-block-quote::before { content: "\201E"; position: absolute; left: 0; top: -.35em; font-size: 3.6rem; color: var(--wp--preset--color--orange); line-height: 1; }

/* =====================================================================
   Header: klebt oben, wird beim Scrollen kompakter
   ===================================================================== */
.wp-site-blocks > header.wp-block-template-part { position: sticky; top: 0; z-index: 50; }
.admin-bar .wp-site-blocks > header.wp-block-template-part { top: var(--wp-admin--admin-bar--height, 32px); }
header.wp-block-template-part > .wp-block-group { transition: box-shadow .25s; }
header.wp-block-template-part .kp-logo img { transition: height .25s; }
.kp-gescrollt header.wp-block-template-part > .wp-block-group { box-shadow: 0 6px 18px -12px rgba(26,43,60,.35); }
.kp-gescrollt header.wp-block-template-part .kp-logo img { height: 40px; }
@media (max-width: 600px) { .kp-gescrollt header.wp-block-template-part .kp-logo img { height: 34px; } }
html { scroll-behavior: smooth; scroll-padding-top: 90px; }

/* Hero: ein ruhiger Auftritt beim Laden */
.kp-hero .wp-block-cover__inner-container { max-width: calc(var(--wp--style--global--content-size) + 40px); }
.kp-hero .wp-block-post-title, .kp-hero h1, .kp-hero h2 { animation: kp-auftauchen .9s cubic-bezier(.2,.7,.2,1) both .1s; }

@keyframes kp-auftauchen { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes kp-zoom { from { transform: scale(1.06); } to { transform: scale(1); } }

/* Footer */
.kp-footer a { color: #fff; }
.kp-footer a:hover { color: var(--wp--preset--color--orange); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  html { scroll-behavior: auto; }
}

/* Logo */
.kp-logo img { display: block; height: 52px; width: auto; max-width: 68vw; object-fit: contain; object-position: left center; }
@media (max-width: 600px) { .kp-logo img { height: 40px; } }

/* Startseite: Hero direkt unter dem Header, ohne weiße Lücke */
.wp-site-blocks > main:has(> .kp-hero:first-child) { margin-block-start: 0; }
.kp-hero, .kp-banner { overflow: hidden; }
.kp-banner .wp-block-cover__inner-container { width: 100%; max-width: var(--wp--style--global--wide-size) !important; margin-inline: auto !important; padding-inline: var(--wp--style--root--padding-left, 1.5rem); box-sizing: border-box; }
.kp-banner .wp-block-cover__inner-container > * { margin-left: 0 !important; }

/* =====================================================================
   v1.2 – Modern Boho: Bögen, Linien-Icons, erdige Töne
   ===================================================================== */
:root { --kp-ic: url(assets/icons/sonne.svg); }
body { background: var(--wp--preset--color--base); }

/* Bildkarten: Bogenfenster statt Rechteck */
.kp-karte { background: transparent; border: 0; border-radius: 0; overflow: visible; }
.kp-karte figure { aspect-ratio: 4/5; border-radius: 999px 999px 18px 18px; }
.kp-karte__inhalt { padding: 1.1rem .2rem 0; text-align: center; align-items: center; }
.kp-karte__inhalt h3 { font-weight: 500; font-size: 1.45rem; }
.kp-karte__inhalt .kp-btn-wrap { padding-top: .6rem; }
.kp-karte .kp-aff-anzeige { text-align: center; }

/* Buttons: Pille, Terrakotta */
.kp-btn--linie { box-shadow: inset 0 0 0 1.5px currentColor; }
.kp-btn--hell { background: var(--wp--preset--color--base) !important; color: var(--wp--preset--color--navy) !important; }

/* Steckbrief: Linien-Icons statt Punkte */
.kp-steckbrief { border-radius: 26px; background: var(--wp--preset--color--base) !important; box-shadow: inset 0 0 0 1px var(--wp--preset--color--linie); }
.has-base-background-color .kp-steckbrief { background: var(--wp--preset--color--sand) !important; box-shadow: none; }
.kp-steckbrief tr { border-top: 0 !important; padding: .9rem 0 .9rem 3rem; position: relative; }
.kp-steckbrief td:first-child { color: var(--wp--preset--color--salbei); font-family: var(--wp--preset--font-family--fraunces); font-style: italic; font-weight: 400; font-size: .95rem; }
.kp-steckbrief td:first-child::before { content: none; }
.kp-steckbrief tr::before { content: ""; position: absolute; left: 0; top: 1rem; width: 2.2rem; height: 2.2rem; border-radius: 50%;
  background: var(--kp-ic) center / 1.45rem no-repeat, var(--wp--preset--color--rose); }
.kp-steckbrief tr:nth-child(6n+1) { --kp-ic: url(assets/icons/sonne.svg); }
.kp-steckbrief tr:nth-child(6n+2) { --kp-ic: url(assets/icons/palme.svg); }
.kp-steckbrief tr:nth-child(6n+3) { --kp-ic: url(assets/icons/boot.svg); }
.kp-steckbrief tr:nth-child(6n+4) { --kp-ic: url(assets/icons/welle.svg); }
.kp-steckbrief tr:nth-child(6n+5) { --kp-ic: url(assets/icons/blatt.svg); }
.kp-steckbrief tr:nth-child(6n+6) { --kp-ic: url(assets/icons/berg.svg); }
.kp-steckbrief tr:nth-child(even)::before { background-color: var(--wp--preset--color--tuerkis-hell); }

/* Sektionen: kleines Ornament über der ersten Überschrift in Farbbändern */
.kp-sektion.has-sand-background-color > h2:first-child::before,
.kp-sektion.has-tuerkis-hell-background-color > h2:first-child::before {
  content: ""; display: block; width: 3rem; height: 3rem; margin-bottom: .6rem;
  background: url(assets/icons/bogen.svg) left center / contain no-repeat; opacity: .75; }
.kp-sektion.has-tuerkis-hell-background-color > h2:first-child::before { background-image: url(assets/icons/blatt.svg); }

/* Tabellen-Kiesel in Creme/Rosé */
.kp-vergleich tbody td { background: var(--wp--preset--color--base); }
.has-base-background-color .kp-vergleich tbody td { background: var(--wp--preset--color--sand); }
.kp-vergleich tbody tr:nth-child(3n+3) td:first-child::before { background: var(--wp--preset--color--salbei); }
.kp-vergleich tbody tr:nth-child(3n+1) td:first-child::before { background: var(--wp--preset--color--terracotta); }

/* Banner: Text in einer Creme-Karte mit Doppellinie über dem Foto */
.kp-banner .wp-block-cover__inner-container > .kp-banner__karte,
.kp-banner__karte { background: var(--wp--preset--color--base); color: var(--wp--preset--color--navy); border-radius: 28px; padding: clamp(1.6rem,4vw,2.8rem);
  max-width: 560px !important; outline: 1px solid rgba(255,255,255,.7); outline-offset: 10px; }
.kp-banner__karte h2 { color: var(--wp--preset--color--navy) !important; font-weight: 500; }
.kp-banner__karte p { color: #3C4A57 !important; }
.kp-banner__karte .kp-aff-anzeige { color: var(--wp--preset--color--grau) !important; }
.kp-banner__karte .kp-btn--linie { color: var(--wp--preset--color--navy) !important; }

/* Zitat: Blatt statt Anführungszeichen */
blockquote.wp-block-quote::before { content: ""; width: 2rem; height: 2rem; top: .1em; background: url(assets/icons/blatt.svg) center / contain no-repeat; }

/* Überschriften etwas weicher */
:where(h2.wp-block-heading) { font-weight: 500; }

/* FAQ-Icon in Erdtönen */
.kp-faq .wp-block-details summary::after { background-color: var(--wp--preset--color--rose); }
.kp-faq .wp-block-details[open] summary::after { background-color: var(--wp--preset--color--tuerkis-hell); }

/* v1.3 – organische Formen (Welle, Bucht, Blatt) statt Bögen; größere Icons */
.kp-karte figure { aspect-ratio: 4/5; border-radius: 0;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 125' preserveAspectRatio='none'%3E%3Cpath d='M0 14C14 4 26 4 40 10s28 8 42 0c8-4 14-4 18-2v117H0z'/%3E%3C/svg%3E") 0 0/100% 100% no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 125' preserveAspectRatio='none'%3E%3Cpath d='M0 14C14 4 26 4 40 10s28 8 42 0c8-4 14-4 18-2v117H0z'/%3E%3C/svg%3E") 0 0/100% 100% no-repeat; }
.kp-karte:nth-child(3n+2) figure { -webkit-mask: none; mask: none; border-radius: 58% 42% 46% 54% / 38% 44% 56% 62%; }
.kp-karte:nth-child(3n+3) figure { -webkit-mask: none; mask: none; border-radius: 12% 70% 14% 62% / 10% 52% 18% 60%; }
.kp-steckbrief tr { padding-left: 3.9rem; min-height: 3.4rem; }
.kp-steckbrief tr::before { width: 3rem; height: 3rem; top: .8rem; background-size: 2rem, auto !important; border-radius: 58% 42% 52% 48% / 46% 56% 44% 54%; }
.kp-sektion.has-sand-background-color > h2:first-child::before,
.kp-sektion.has-tuerkis-hell-background-color > h2:first-child::before { width: 4.5rem; height: 4.5rem; opacity: .9; }
.kp-sektion.has-sand-background-color > h2:first-child::before { background-image: url(assets/icons/welle.svg); }

/* v1.4 – Naturmuster im Hintergrund, Papier-Körnung, Wasserringe */
body { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .1 0 0 0 0 .17 0 0 0 0 .24 0 0 0 .035 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.kp-sektion { position: relative; isolation: isolate; }
.kp-sektion > * { position: relative; z-index: 1; }
/* Sand: feine Wellenlinien wie Wasser */
.kp-sektion.has-sand-background-color::after { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: .55;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='44' viewBox='0 0 220 44'%3E%3Cpath d='M0 22c27.5 0 27.5-12 55-12s27.5 12 55 12 27.5-12 55-12 27.5 12 55 12' fill='none' stroke='%23E3D9C6' stroke-width='1.4'/%3E%3C/svg%3E") 0 0 / 220px 44px;
  -webkit-mask: linear-gradient(90deg, #000 0, transparent 26%, transparent 74%, #000 100%); mask: linear-gradient(90deg, #000 0, transparent 26%, transparent 74%, #000 100%); }
/* Türkis hell: Blätter aus dem Dschungel */
.kp-sektion.has-tuerkis-hell-background-color::after { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: .5;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180' fill='none' stroke='%23B9DCDC' stroke-width='1.3' stroke-linecap='round'%3E%3Cpath d='M30 70c10-30 40-40 60-38-4 22-24 46-60 38z'/%3E%3Cpath d='M30 70 78 40M44 61l8-14M56 54l10-12M66 48l10-8M42 64l16 2M54 57l18 0'/%3E%3Cpath d='M120 160c-6-26 8-48 30-58 8 22-4 50-30 58z'/%3E%3Cpath d='M120 160 146 108M126 146l-10-6M131 134l-12-4M137 122l-10-6M128 144l12-2M134 130l12-4'/%3E%3C/svg%3E") 0 0 / 180px 180px;
  -webkit-mask: radial-gradient(ellipse at center, transparent 35%, #000 80%); mask: radial-gradient(ellipse at center, transparent 35%, #000 80%); }
/* Navy: Wasserringe in der Ecke */
.kp-sektion.has-navy-background-color { overflow: hidden; }
.kp-sektion.has-navy-background-color::after { content: ""; position: absolute; right: -140px; top: -140px; width: 420px; height: 420px; z-index: 0; pointer-events: none; border-radius: 50%;
  background: repeating-radial-gradient(circle, transparent 0 22px, rgba(143,217,220,.16) 22px 23.5px); }
.kp-sektion.has-navy-background-color::before { content: ""; position: absolute; left: -120px; bottom: -160px; width: 340px; height: 340px; z-index: 0; pointer-events: none; border-radius: 50%;
  background: repeating-radial-gradient(circle, transparent 0 18px, rgba(245,166,35,.14) 18px 19.5px); }
/* Weiche Wellenkante oben an farbigen Bändern */
.kp-sektion.has-sand-background-color, .kp-sektion.has-tuerkis-hell-background-color, .kp-sektion.has-navy-background-color {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 40' preserveAspectRatio='none'%3E%3Cpath d='M0 18C180 2 360 2 540 16s360 22 540 8 300-18 360-12V40H0z'/%3E%3C/svg%3E") top / 100% 40px no-repeat, linear-gradient(#000,#000) 0 39px / 100% calc(100% - 39px) no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 40' preserveAspectRatio='none'%3E%3Cpath d='M0 18C180 2 360 2 540 16s360 22 540 8 300-18 360-12V40H0z'/%3E%3C/svg%3E") top / 100% 40px no-repeat, linear-gradient(#000,#000) 0 39px / 100% calc(100% - 39px) no-repeat;
  margin-top: -40px !important; padding-top: calc(var(--wp--preset--spacing--60) + 40px); }
.kp-sektion.has-navy-background-color { overflow: visible; }
.kp-sektion.has-navy-background-color::after, .kp-sektion.has-navy-background-color::before { clip-path: inset(0); }

/* v1.5 – Autorenbox mit Aufmerksamkeit */
.kp-autor { display: grid !important; grid-template-columns: minmax(0, 260px) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3rem); align-items: center;
  background: var(--wp--preset--color--navy) !important; color: #fff; border-radius: 32px; padding: clamp(1.6rem, 4vw, 2.8rem) !important; position: relative; overflow: hidden; margin-block: var(--wp--preset--spacing--50) !important; }
.kp-autor::after { content: ""; position: absolute; right: -90px; bottom: -110px; width: 300px; height: 300px; border-radius: 50%; pointer-events: none;
  background: repeating-radial-gradient(circle, transparent 0 18px, rgba(245,166,35,.18) 18px 19.5px); }
.kp-autor__foto { margin: 0; position: relative; z-index: 1; }
.kp-autor__foto::before { content: ""; position: absolute; inset: -10px -14px 10px 14px; border-radius: 58% 42% 46% 54% / 44% 52% 48% 56%; background: var(--wp--preset--color--orange); z-index: -1; }
.kp-autor__foto img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 58% 42% 46% 54% / 44% 52% 48% 56% !important; }
.kp-autor__text { position: relative; z-index: 1; }
.kp-autor__text p { color: rgba(255,255,255,.88); margin: 0 0 .9rem; }
.kp-autor__gruss { font-family: var(--wp--preset--font-family--fraunces); font-style: italic; font-size: clamp(1.7rem, 3.5vw, 2.3rem); line-height: 1.1; color: #fff !important; }
.kp-autor__fakten { display: flex; flex-wrap: wrap; gap: .5rem; }
.kp-autor__fakten span { font-size: .8rem; padding: .35rem .75rem; border-radius: 99px; background: rgba(143,217,220,.16); color: #CFEFF0; }
.kp-autor .kp-btn--linie { color: #fff !important; }
@media (max-width: 680px) { .kp-autor { grid-template-columns: 1fr; text-align: left; } .kp-autor__foto { max-width: 200px; } }
/* FAQ als eigene Sektion: Überschrift zentriert */
.kp-sektion > .kp-faq > h2 { text-align: center; }
.kp-sektion > .kp-faq > h2::before { content: ""; display: block; width: 4rem; height: 3rem; margin: 0 auto .6rem; background: url(assets/icons/stern.svg) center / contain no-repeat; opacity: .85; }
html, body { overflow-x: clip; } .wp-block-cover.kp-hero, .wp-block-cover.kp-banner { overflow: clip; }
.kp-autor__foto img { height: auto !important; aspect-ratio: 1 / 1 !important; } .kp-autor { max-width: min(1000px, var(--wp--style--global--wide-size)) !important; }

/* v1.6 – Bildformen für Inhaltsbilder + Erlebnis-Block (Bild mit überlappender Karte) */
.wp-block-image.kp-ph img, .wp-block-image[class*="kp-form-"] img { width: 100%; height: auto; aspect-ratio: 4/3; object-fit: cover; }
.wp-block-image.kp-form-welle img { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 75' preserveAspectRatio='none'%3E%3Cpath d='M0 8C14 2 26 2 40 6s28 5 42 0c8-3 14-3 18-1v70H0z'/%3E%3C/svg%3E") 0 0/100% 100%; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 75' preserveAspectRatio='none'%3E%3Cpath d='M0 8C14 2 26 2 40 6s28 5 42 0c8-3 14-3 18-1v70H0z'/%3E%3C/svg%3E") 0 0/100% 100%; }
.wp-block-image.kp-form-kiesel img { border-radius: 58% 42% 46% 54% / 44% 52% 48% 56%; aspect-ratio: 1; }
.wp-block-image.kp-form-blatt img { border-radius: 12% 70% 14% 62% / 10% 52% 18% 60%; }
.wp-block-image.kp-form-bucht img { border-radius: 40px 40px 40% 40% / 40px 40px 22% 22%; }
.wp-block-image.kp-breit { margin-inline: calc(-1 * clamp(0px, 8vw, 120px)); max-width: none; }
@media (max-width: 900px) { .wp-block-image.kp-breit { margin-inline: 0; } }
.wp-block-image figcaption { font-style: italic; text-align: center; }
.kp-erlebnis { display: grid !important; grid-template-columns: 1.15fr 1fr; align-items: center; margin-block: var(--wp--preset--spacing--50) !important; }
.kp-erlebnis > .wp-block-image { grid-column: 1; grid-row: 1; margin: 0 !important; }
.kp-erlebnis > .wp-block-image img { aspect-ratio: 4/5; border-radius: 20px; }
.kp-erlebnis__karte { grid-column: 2; grid-row: 1; margin-left: -18% !important; position: relative; z-index: 2;
  background: var(--wp--preset--color--navy); color: #fff; border-radius: 26px; padding: clamp(1.4rem, 3.5vw, 2.4rem) !important; box-shadow: 0 24px 48px -28px rgba(19,32,45,.7); }
.kp-erlebnis__karte h3 { color: #fff; font-style: italic; font-weight: 400; font-size: clamp(1.4rem, 3vw, 1.9rem); margin-top: 0; }
.kp-erlebnis__karte p { color: rgba(255,255,255,.88); }
.kp-erlebnis__karte .kp-pill { background: rgba(245,166,35,.22); color: #FCD9A0; }
@media (max-width: 760px) { .kp-erlebnis { grid-template-columns: 1fr; } .kp-erlebnis__karte { grid-column: 1; grid-row: 2; margin: -3rem 1rem 0 !important; } }
.kp-bildreihe { gap: 1rem !important; }
.kp-bildreihe .wp-block-image { margin: 0 !important; }
.kp-bildreihe .wp-block-image img { aspect-ratio: 4/5 !important; }

/* ---------- Video-Sektionen: Video als ruhige Hintergrundebene mit Schleier ---------- */
.kp-video { position: relative; overflow: clip; isolation: isolate; }
.kp-video .wp-block-cover__video-background {
  will-change: transform;
  filter: saturate(.85) contrast(.92) brightness(1.05);
  opacity: 0; transition: opacity 1.2s ease;
}
/* Standbild sofort zeigen, Video weich einblenden sobald es läuft */
.kp-video .wp-block-cover__video-background[poster] { opacity: 1; }
.kp-video .wp-block-cover__video-background.kp-laeuft { opacity: 1; }
/* Matter Schleier: Farbverlauf + feines Korn über dem Video, unter dem Inhalt */
.kp-video::after {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),
    linear-gradient(100deg, rgba(19,32,45,.55) 0%, rgba(19,32,45,.22) 55%, rgba(26,158,165,.10) 100%);
}
.wp-block-cover.kp-video > .wp-block-cover__inner-container { position: relative; z-index: 2 !important; width: 100% !important; max-width: var(--wp--style--global--wide-size) !important; margin-inline: auto !important; padding-inline: var(--wp--style--root--padding-left, 1.5rem); box-sizing: border-box; }
.kp-video.is-position-center-left .wp-block-cover__inner-container > * { margin-left: 0 !important; }
.kp-video .wp-block-cover__inner-container > * { will-change: transform; }
/* Heller Schleier (Sand) – für ruhige Textsektionen mit dunkler Schrift */
.kp-video.kp-schleier-hell::after {
  background:
    linear-gradient(180deg, rgba(248,246,241,.72), rgba(248,246,241,.58));
}
.kp-video.kp-schleier-hell .wp-block-cover__video-background { filter: saturate(.55) contrast(.85) blur(1.5px); }
.kp-video.kp-schleier-hell, .kp-video.kp-schleier-hell :where(h1,h2,h3,p) { color: var(--wp--preset--color--navy); }
/* Wellige Kante unten, passend zu den Sektionen */
.kp-video.kp-welle-unten { -webkit-mask: linear-gradient(#000 0 0) top/100% calc(100% - 28px) no-repeat, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 28' preserveAspectRatio='none'%3E%3Cpath d='M0 0h1200v8c-100 18-200 18-300 6S700-4 600 8 400 26 300 16 100-2 0 10z'/%3E%3C/svg%3E") bottom/100% 28px no-repeat; mask: linear-gradient(#000 0 0) top/100% calc(100% - 28px) no-repeat, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 28' preserveAspectRatio='none'%3E%3Cpath d='M0 0h1200v8c-100 18-200 18-300 6S700-4 600 8 400 26 300 16 100-2 0 10z'/%3E%3C/svg%3E") bottom/100% 28px no-repeat; }
@media (prefers-reduced-motion: reduce) { .kp-video .wp-block-cover__video-background, .kp-video .wp-block-cover__inner-container > * { transform: none !important; } }

/* Große Bildschirme (WQHD/4K): Schrift und Raster leicht mitwachsen lassen */
@media (min-width: 1800px) { html { font-size: 106.25%; } }
@media (min-width: 2200px) { html { font-size: 112.5%; } }

/* ---------- Seiten-Hero: Titelbild vollbreit, Titel unten links, wellige Unterkante ---------- */
.wp-site-blocks > main:has(> .kp-hero--seite:first-child) { margin-block-start: 0; }
.kp-hero--seite { padding-block: clamp(6rem, 14vh, 9rem) clamp(3.5rem, 8vh, 5.5rem) !important; isolation: isolate;
  -webkit-mask: linear-gradient(#000 0 0) top/100% calc(100% - 34px) no-repeat, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 34' preserveAspectRatio='none'%3E%3Cpath d='M0 0h1200v10c-120 22-240 22-360 8S600-4 480 10 240 32 120 20 30 6 0 14z'/%3E%3C/svg%3E") bottom/100% 34px no-repeat;
  mask: linear-gradient(#000 0 0) top/100% calc(100% - 34px) no-repeat, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 34' preserveAspectRatio='none'%3E%3Cpath d='M0 0h1200v10c-120 22-240 22-360 8S600-4 480 10 240 32 120 20 30 6 0 14z'/%3E%3C/svg%3E") bottom/100% 34px no-repeat; }
.kp-hero--seite .wp-block-cover__background { background: linear-gradient(180deg, rgba(19,32,45,.15) 0%, rgba(19,32,45,.25) 45%, rgba(19,32,45,.78) 100%) !important; opacity: 1 !important; }
.kp-hero--seite .wp-block-cover__background.has-background-dim-100 { background: var(--wp--preset--color--navy) !important; }
.wp-block-cover.kp-hero--seite > .wp-block-cover__inner-container { width: 100% !important; max-width: var(--wp--style--global--wide-size) !important; margin-inline: auto !important; padding-inline: var(--wp--style--root--padding-left, 1.5rem); box-sizing: border-box; }
.kp-hero--seite .wp-block-post-title { color: #fff; font-size: clamp(2.1rem, 4.6vw, 3.9rem); line-height: 1.05; max-width: 18ch; margin: .3rem 0 0 !important; text-shadow: 0 2px 24px rgba(0,0,0,.25); }
.kp-hero--seite .kp-breadcrumb, .kp-hero--seite .kp-breadcrumb a { color: rgba(255,255,255,.85); }
.kp-hero--seite .wp-block-cover__image-background { will-change: transform; }

/* Fehlende Bilder: auf der Seite ausblenden statt Platzhalter zeigen */
.kp-bildreihe .wp-block-column:not(:has(figure)) { display: none; }
.kp-bildreihe:not(:has(figure)) { display: none; }
.kp-erlebnis:not(:has(figure)) { display: block; }
.kp-erlebnis:not(:has(figure)) .kp-erlebnis__karte { margin: 0 auto !important; max-width: var(--wp--style--global--content-size); }
/* Bildunterschriften in Bildreihen */
.kp-bildreihe .wp-element-caption { font-size: .85rem; color: var(--wp--preset--color--grau); text-align: center; margin-top: .6rem; line-height: 1.35; }
.kp-bildreihe-titel { font-family: var(--wp--preset--font-family--fraunces); font-style: italic; color: var(--wp--preset--color--tuerkis-dunkel); margin-bottom: .4rem !important; }

/* Breite Bilder in Abschnitten: flaches Panorama wie der Header statt volle 4:3-Höhe */
.wp-block-image.kp-breit img { aspect-ratio: 21 / 9 !important; max-height: 60vh; object-fit: cover; object-position: center 55%; }
@media (max-width: 700px) { .wp-block-image.kp-breit img { aspect-ratio: 16 / 10 !important; } }
/* Einzelbilder in organischer Form (z. B. Hotels) ebenfalls nicht zu hoch */
.kp-sektion > .wp-block-image[class*="kp-form-"]:not(.kp-breit) img { max-height: 520px; }


/* ---------- 1.9: Abstände, Vollbreite, ruhigere Proportionen ---------- */
/* Keine weißen Streifen zwischen vollbreiten Elementen */
.wp-block-post-content > .alignfull:not(.kp-sektion) { margin-block: 0 !important; }
.wp-block-post-content > .kp-sektion.has-base-background-color, .wp-block-post-content > .kp-sektion:not(.has-background) { margin-block: 0 !important; }
/* Unter Covern/Videos mit Wellenkante: farbiges Band schließt direkt an */
.wp-block-post-content > .wp-block-cover + .kp-sektion { position: relative; }

/* Breite Bilder: über die volle Fensterbreite, flaches Panorama mit Parallax */
.wp-block-image.kp-breit { width: 100vw; max-width: 100vw !important; margin-inline: calc(50% - 50vw) !important; margin-block: var(--wp--preset--spacing--50) !important; overflow: hidden; position: relative; }
.wp-block-image.kp-breit img { -webkit-mask: none !important; mask: none !important; border-radius: 0 !important; width: 100%; aspect-ratio: 21 / 8 !important; max-height: 64vh; object-fit: cover; will-change: transform; transform: scale(1.18); }
.wp-block-image.kp-breit.kp-form-welle { -webkit-mask: linear-gradient(#000 0 0) top/100% calc(100% - 33px) no-repeat, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 34' preserveAspectRatio='none'%3E%3Cpath d='M0 0h1200v10c-120 22-240 22-360 8S600-4 480 10 240 32 120 20 30 6 0 14z'/%3E%3C/svg%3E") bottom/100% 34px no-repeat; mask: linear-gradient(#000 0 0) top/100% calc(100% - 33px) no-repeat, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 34' preserveAspectRatio='none'%3E%3Cpath d='M0 0h1200v10c-120 22-240 22-360 8S600-4 480 10 240 32 120 20 30 6 0 14z'/%3E%3C/svg%3E") bottom/100% 34px no-repeat; }
@media (max-width: 700px) { .wp-block-image.kp-breit img { aspect-ratio: 16 / 10 !important; } }
@media (prefers-reduced-motion: reduce) { .wp-block-image.kp-breit img { transform: none !important; } }

/* Erlebnis-Block: Bild nicht höher als nötig */
@media (min-width: 761px) { .kp-erlebnis { grid-template-columns: 1fr 1fr; } .kp-erlebnis__karte { margin-left: -14% !important; } }
.kp-erlebnis > .wp-block-image img { aspect-ratio: 4 / 3 !important; max-height: 440px; width: 100%; object-fit: cover; }
@media (max-width: 760px) { .kp-erlebnis > .wp-block-image img { max-height: 300px; } }

/* Footer: Affiliate-Hinweis dezent */
.kp-footer-hinweis { font-size: .72rem !important; opacity: .7; line-height: 1.5; }
.kp-footer-hinweis a { text-decoration: underline; }

/* Luft nach unten: das nächste Band überlappt mit seiner Welle 40px */
.kp-sektion { padding-bottom: calc(var(--wp--preset--spacing--60) + 40px) !important; }
.kp-steckbrief { margin-bottom: var(--wp--preset--spacing--40) !important; }
.kp-steckbrief tr::before { background-size: 1.55rem; }

/* Mehr Luft am Ende eines Abschnitts, bevor das nächste Band (mit Wellenkante) beginnt */
.kp-sektion { padding-bottom: calc(var(--wp--preset--spacing--60) + 2.5rem); }
.kp-steckbrief { margin-bottom: var(--wp--preset--spacing--40) !important; }
.kp-sektion > :last-child { margin-bottom: 0; }
/* Steckbrief-Icons etwas größer */
.kp-steckbrief tr::before { width: 2.5rem; height: 2.5rem; background-size: 1.6rem, auto; }
.kp-steckbrief tr { padding-left: 3.4rem; }

/* Startseiten-Header als Video: kein zusätzlicher Schleier-Verlauf von .kp-video, Titel groß */
.kp-hero--video.kp-video::after { background: linear-gradient(180deg, rgba(19,32,45,.1) 0%, rgba(19,32,45,.2) 50%, rgba(19,32,45,.7) 100%); }
.kp-hero--video .wp-block-post-title { font-size: clamp(2.4rem, 5.4vw, 4.6rem); max-width: 16ch; }
.kp-hero--video .wp-block-cover__video-background { opacity: 1; }

/* 1.10.2 – Flyout im Hauptmenü */
.wp-block-navigation .wp-block-navigation-submenu__toggle { padding-left: .25em; }
.wp-block-navigation .wp-block-navigation-submenu__toggle svg { width: 10px; height: 10px; stroke-width: 2px; transition: transform .2s ease; }
.wp-block-navigation .has-child:hover > .wp-block-navigation-submenu__toggle svg,
.wp-block-navigation .has-child:focus-within > .wp-block-navigation-submenu__toggle svg { transform: rotate(180deg); }
@media (min-width: 600px) {
  .wp-block-navigation .has-child .wp-block-navigation__submenu-container {
    background: var(--wp--preset--color--base) !important; color: var(--wp--preset--color--navy) !important;
    border: 0 !important; border-radius: 18px; padding: .6rem !important; min-width: 220px !important;
    box-shadow: 0 22px 44px -20px rgba(19,32,45,.35), 0 0 0 1px rgba(26,43,60,.06);
    top: calc(100% + .4rem) !important; left: -1rem !important; }
  .wp-block-navigation .has-child .wp-block-navigation__submenu-container::before { content: ""; position: absolute; left: 0; right: 0; top: -.6rem; height: .6rem; }
  .wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
    padding: .65rem .9rem !important; border-radius: 12px; white-space: nowrap; }
  .wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
  .wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus {
    background: var(--wp--preset--color--sand); color: var(--wp--preset--color--tuerkis); }
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { padding: .2rem 0 0 !important; gap: .55rem !important; align-items: flex-end !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: .92em; color: var(--wp--preset--color--tuerkis) !important; padding: 0 !important; }
/* 1.10.3 – Startseite nur im mobilen Menü, Reisetipps-Button */
.wp-block-navigation__responsive-container:not(.is-menu-open) .kp-nur-mobil { display: none !important; }
.wp-block-navigation button.wp-block-navigation-item__content { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
.wp-block-navigation__responsive-container.is-menu-open .kp-nur-mobil > a { font-weight: 600; }
@media (min-width: 600px) { .wp-block-navigation__container > .has-child:last-child > .wp-block-navigation__submenu-container { left: auto !important; right: -1rem !important; } }

/* 1.11.0 – Übersichtskarte */
.kp-karte { margin: var(--wp--preset--spacing--50) auto; max-width: var(--wp--style--global--wide-size); }
.kp-karte__titel { font-family: var(--wp--preset--font-family--fraunces); font-style: italic; color: var(--wp--preset--color--tuerkis); margin: 0 0 .6rem; }
.kp-karte__rahmen { border-radius: 28px; overflow: hidden; box-shadow: 0 26px 50px -30px rgba(19,32,45,.45); background: #E4F3F3; }
.kp-karte__svg { display: block; width: 100%; height: auto; }
.kp-karte__svg text { font-family: var(--wp--preset--font-family--public-sans); fill: var(--wp--preset--color--navy); }
.kp-karte__insel { font-family: var(--wp--preset--font-family--fraunces) !important; font-style: italic; font-size: 22px; letter-spacing: .02em; fill: #6b5a3a !important; }
.kp-karte__wasser { font-family: var(--wp--preset--font-family--fraunces) !important; font-style: italic; fill: var(--wp--preset--color--tuerkis-dunkel) !important; opacity: .75; letter-spacing: .12em; }
.kp-karte__festland { font-size: 15px; letter-spacing: .3em; text-transform: uppercase; fill: #8a7a58 !important; }
.kp-karte__klein { font-size: 13px; letter-spacing: .02em; text-transform: none; }
.kp-karte__label { font-size: 17px; font-weight: 600; paint-order: stroke; stroke: #fff; stroke-width: 4.5px; stroke-linejoin: round; }
.kp-karte__routetext { font-size: 12.5px; font-style: italic; fill: var(--wp--preset--color--tuerkis-dunkel) !important; paint-order: stroke; stroke: #E4F3F3; stroke-width: 4px; }
.kp-karte__credit { font-size: 10px; fill: var(--wp--preset--color--grau) !important; }
.kp-karte__route { fill: none; stroke-linecap: round; }
.kp-karte__route--boot { stroke: var(--wp--preset--color--tuerkis-dunkel); stroke-width: 2; stroke-dasharray: 2 7; }
.kp-karte__route--tour { stroke: var(--wp--preset--color--orange); stroke-width: 2.2; stroke-dasharray: 9 7; }
.kp-karte__route--strasse { stroke: #8a7a58; stroke-width: 2; stroke-dasharray: 10 4 2 4; }
.kp-karte__halo { fill: var(--wp--preset--color--orange); opacity: 0; transition: opacity .2s, transform .2s; }
.kp-karte__poi { cursor: pointer; }
.kp-karte__poi:hover .kp-karte__halo, .kp-karte__poi:focus .kp-karte__halo { opacity: .28; }
.kp-karte__poi:hover .kp-karte__label, .kp-karte__poi:focus .kp-karte__label { fill: var(--wp--preset--color--tuerkis-dunkel); }
.kp-karte__poi:focus { outline: none; }
.kp-karte__poi:focus-visible .kp-karte__halo { opacity: .45; }
.kp-karte--fokus .kp-karte__poi:not([data-aktiv]) { opacity: .45; }
.kp-karte--fokus .kp-karte__poi[data-aktiv] .kp-karte__halo { opacity: .35; animation: kp-puls 2.4s ease-in-out infinite; transform-origin: center; transform-box: fill-box; }
.kp-karte--fokus .kp-karte__poi[data-aktiv] .kp-karte__label { font-size: 20px; }
@keyframes kp-puls { 0%,100% { transform: scale(1); } 50% { transform: scale(1.5); } }
@media (prefers-reduced-motion: reduce) { .kp-karte--fokus .kp-karte__poi[data-aktiv] .kp-karte__halo { animation: none; } }
.kp-karte__hinweis { font-size: .85rem; color: var(--wp--preset--color--grau); text-align: center; margin-top: .7rem; }
@media (max-width: 760px) {
  .kp-karte__rahmen { overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: 20px; }
  .kp-karte__svg { width: 780px; max-width: none; }
  .kp-karte__hinweis::before { content: "\2190  wischen \2192  \b7  "; }
}
.kp-karte__credit, .kp-karte__wasser, .kp-karte__insel { paint-order: stroke; stroke: rgba(255,255,255,.75); stroke-width: 3px; stroke-linejoin: round; }
.kp-karte__svg a, .kp-karte__svg a text { text-decoration: none !important; }
.kp-karte__sub { font-size: 12px; font-style: italic; fill: var(--wp--preset--color--grau) !important; paint-order: stroke; stroke: #fff; stroke-width: 4px; stroke-linejoin: round; }
.kp-karte__poi--schnorchel .kp-karte__label, .kp-karte__poi--flug .kp-karte__label { font-size: 15px; font-weight: 500; }

/* 1.13.0 – Layout-Bausteine für übernommene Seiten (Karten, Kacheln, Bild+Text) */
.kp-grid-2, .kp-grid-3, .kp-grid-4 { display: grid !important; gap: clamp(1rem, 2.4vw, 1.75rem); margin-block: var(--wp--preset--spacing--50) !important; }
.kp-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kp-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.kp-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.kp-grid-2 > *, .kp-grid-3 > *, .kp-grid-4 > * { margin: 0 !important; min-width: 0; }
@media (max-width: 900px) { .kp-grid-3, .kp-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .kp-grid-2, .kp-grid-3 { grid-template-columns: 1fr; } .kp-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; } }

/* Textkarten */
.kp-karte-text { background: var(--wp--preset--color--base); border-radius: 26px; padding: clamp(1.4rem, 3vw, 2.2rem); box-shadow: 0 18px 40px -30px rgba(19,32,45,.45); position: relative; overflow: hidden; display: flex; flex-direction: column; }
.has-base-background-color .kp-karte-text { background: var(--wp--preset--color--sand); box-shadow: none; }
.has-navy-background-color .kp-karte-text, .kp-cover .kp-karte-text { background: rgba(255,255,255,.07); box-shadow: none; border: 1px solid rgba(255,255,255,.12); backdrop-filter: blur(6px); }
.kp-karte-text > :first-child { margin-top: .4rem; }
.kp-karte-text h2, .kp-karte-text h3 { font-size: clamp(1.25rem, 2vw, 1.55rem); line-height: 1.2; margin-bottom: .7rem; }
.kp-karte-text p:last-child:has(a:only-child), .kp-karte-text p:last-child { margin-bottom: 0; }
.kp-karte-text p:last-child:has(> a:only-child) { margin-top: auto; padding-top: .8rem; }
.kp-karte-text .wp-block-buttons { margin-top: auto; padding-top: .8rem; }
.kp-karte-text .wp-block-image { margin: .4rem 0 1rem; }
.kp-karte-text .wp-block-image img { border-radius: 16px; aspect-ratio: 16/10; object-fit: cover; width: 100%; }

/* Bildkacheln mit Link */
.kp-kachel { position: relative; border-radius: 22px; overflow: hidden; background: var(--wp--preset--color--base); box-shadow: 0 16px 36px -28px rgba(19,32,45,.55); transition: transform .25s ease, box-shadow .25s ease; }
.kp-kachel:hover { transform: translateY(-4px); box-shadow: 0 22px 44px -26px rgba(19,32,45,.6); }
.kp-kachel .wp-block-image { margin: 0 !important; }
.kp-kachel .wp-block-image img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; border-radius: 0 !important; transition: transform .6s ease; }
.kp-kachel:hover .wp-block-image img { transform: scale(1.05); }
.kp-kachel__titel { margin: 0 !important; padding: .9rem 1.1rem 1rem; font-family: var(--wp--preset--font-family--fraunces); font-size: 1.1rem; line-height: 1.25; }
.kp-kachel__titel a { color: var(--wp--preset--color--navy) !important; text-decoration: none; }
.kp-kachel__titel a::after { content: " \2192 "; color: var(--wp--preset--color--orange); }
.kp-kachel__titel a::before { content: ""; position: absolute; inset: 0; }
.has-navy-background-color .kp-kachel, .kp-cover .kp-kachel { background: rgba(255,255,255,.08); }
.has-navy-background-color .kp-kachel__titel a, .kp-cover .kp-kachel__titel a { color: #fff !important; }

/* Bild + Text im Wechsel */
.kp-medien { gap: clamp(1.5rem, 5vw, 4.5rem) !important; margin-block: var(--wp--preset--spacing--50) !important; }
.kp-medien .wp-block-image { margin: 0; }
.kp-medien .wp-block-image img { width: 100%; aspect-ratio: 5/4; object-fit: cover; }
@media (max-width: 781px) { .kp-medien.kp-medien--links { flex-direction: column; } .kp-medien:not(.kp-medien--links) { flex-direction: column-reverse; } }

/* Bildergitter und Boxen */
.kp-bildgitter .wp-block-image { margin: 0; }
.kp-bildgitter .wp-block-image img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 20px; }
.kp-boxen .kp-box { margin: 0; height: 100%; }

/* Cover-Sektionen: Inhalt mittig, gut lesbar */
.kp-cover .wp-block-cover__inner-container { max-width: var(--wp--style--global--content-size); margin-inline: auto; }
.kp-cover .kp-grid-2, .kp-cover .kp-kacheln { max-width: var(--wp--style--global--wide-size); }
.kp-cover h2, .kp-cover h3 { color: #fff; }
.kp-zwischentitel { font-family: var(--wp--preset--font-family--fraunces); font-size: 1.2rem; font-weight: 600; color: var(--wp--preset--color--navy); }
.has-navy-background-color .kp-box, .kp-cover .kp-box { color: var(--wp--preset--color--navy); }
.has-navy-background-color .kp-box :where(p,h2,h3,h4,span), .kp-cover .kp-box :where(p,h2,h3,h4,span) { color: var(--wp--preset--color--navy) !important; }
.kp-karte-text > .wp-block-image:first-child { margin: calc(-1 * clamp(1.4rem, 3vw, 2.2rem)) calc(-1 * clamp(1.4rem, 3vw, 2.2rem)) 1.2rem !important; }
.kp-karte-text > .wp-block-image:first-child img { border-radius: 0; aspect-ratio: 16/9; }

/* 1.13.1 – Feinschliff nach Staging-Feedback */
.kp-karte-text { border: 1px solid rgba(26,43,60,.06); }
.kp-karte-text :where(h2,h3) a { text-decoration: none; }
.kp-cover { padding-block: var(--wp--preset--spacing--70) !important; }
.kp-intro { text-align: center; }
.kp-intro .wp-block-buttons { justify-content: center; }
.kp-intro h2 { font-size: clamp(1.7rem, 3.2vw, 2.5rem); }
.kp-beitrag-label { text-transform: uppercase; letter-spacing: .14em; font-size: .8rem; color: var(--wp--preset--color--orange); margin: 0; }
.kp-beitrag-meta { gap: .4rem 1.2rem; font-size: .9rem; opacity: .85; }
.kp-beitrag-meta > * { margin: 0 !important; }
.kp-magazin-liste .wp-block-post-title a { color: var(--wp--preset--color--navy); text-decoration: none; }
.single .wp-block-post-content .kp-sektion > .wp-block-image img { border-radius: 22px; }

/* 1.13.2 */
.kp-intro { padding-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--30) !important; }
.kp-intro + .kp-sektion { padding-top: var(--wp--preset--spacing--40); }
.kp-intro h2 { margin-top: 0; }
.kp-kacheln.kp-grid-2 { max-width: 760px !important; margin-inline: auto !important; }
.kp-kacheln.kp-grid-3 { max-width: 1000px !important; margin-inline: auto !important; }
/* Magazin-Teaser und Magazin-Übersicht als Karten */
.wp-block-latest-posts.kp-magazin, .kp-magazin-liste { gap: clamp(1rem, 2.4vw, 1.75rem) !important; }
.wp-block-latest-posts.kp-magazin li, .kp-magazin-liste > li { background: var(--wp--preset--color--base); border-radius: 22px; overflow: hidden; box-shadow: 0 16px 36px -28px rgba(19,32,45,.5); padding: 0 0 1.2rem !important; margin: 0 !important; display: flex; flex-direction: column; transition: transform .25s ease; }
.wp-block-latest-posts.kp-magazin li:hover, .kp-magazin-liste > li:hover { transform: translateY(-4px); }
.has-base-background-color .wp-block-latest-posts.kp-magazin li { background: var(--wp--preset--color--sand); }
.wp-block-latest-posts.kp-magazin .wp-block-latest-posts__featured-image { margin: 0 0 1rem !important; }
.wp-block-latest-posts.kp-magazin .wp-block-latest-posts__featured-image img, .kp-magazin-liste .wp-block-post-featured-image img { width: 100% !important; aspect-ratio: 16/10; object-fit: cover; border-radius: 0 !important; display: block; }
.kp-magazin-liste .wp-block-post-featured-image { margin: 0 0 1rem !important; }
.wp-block-latest-posts.kp-magazin .wp-block-latest-posts__post-title, .kp-magazin-liste .wp-block-post-title { display: block; padding: 0 1.3rem; font-family: var(--wp--preset--font-family--fraunces); font-size: 1.2rem !important; line-height: 1.3; color: var(--wp--preset--color--navy) !important; text-decoration: none; margin: 0 0 .6rem; }
.kp-magazin-liste .wp-block-post-title a { color: inherit !important; text-decoration: none; }
.wp-block-latest-posts.kp-magazin .wp-block-latest-posts__post-excerpt, .kp-magazin-liste .wp-block-post-excerpt { padding: 0 1.3rem; margin: 0; font-size: .95rem; color: var(--wp--preset--color--grau); }
.kp-magazin-liste .wp-block-post-date { padding: 0 1.3rem; font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; color: var(--wp--preset--color--tuerkis-dunkel); margin: 0 0 .3rem; }
.wp-block-latest-posts__post-excerpt a, .wp-block-post-excerpt__more-link { font-weight: 600; text-decoration: none; }
.kp-magazin-liste .wp-block-post-excerpt__more-text { margin-top: .6rem; }
.wp-block-query-pagination { margin-top: var(--wp--preset--spacing--50); gap: .6rem; justify-content: center; }
.wp-block-query-pagination a, .wp-block-query-pagination .current { display: inline-flex; min-width: 2.6rem; height: 2.6rem; align-items: center; justify-content: center; padding: 0 .9rem; border-radius: 999px; background: var(--wp--preset--color--base); color: var(--wp--preset--color--navy); text-decoration: none; font-weight: 600; }
.wp-block-query-pagination .current { background: var(--wp--preset--color--orange); }
@media (max-width: 900px) { .wp-block-latest-posts.kp-magazin.columns-3 { grid-template-columns: 1fr 1fr !important; } }
@media (max-width: 600px) { .wp-block-latest-posts.kp-magazin.columns-3 { grid-template-columns: 1fr !important; } }
/* Magazin-Artikel */
.single .wp-block-post-content > .kp-sektion:first-child > p:first-of-type { font-size: clamp(1.1rem, 1.6vw, 1.25rem); line-height: 1.65; color: var(--wp--preset--color--navy); }
.single .wp-block-post-content .kp-sektion > h2 { margin-top: 2.6rem; }
.single .wp-block-post-content .kp-box { margin-block: 2.4rem; }
.single .wp-block-post-content > .wp-block-shortcode, .single .wp-block-post-content > .kp-box { max-width: var(--wp--style--global--content-size); margin-inline: auto; }

/* 1.13.3 */
.kp-hero__unter { color: #fff; font-family: var(--wp--preset--font-family--fraunces); font-size: clamp(1.15rem, 2vw, 1.5rem); margin: .8rem 0 0 !important; text-shadow: 0 2px 18px rgba(0,0,0,.3); }
.kp-hero__cta { margin-top: 1.4rem; }
.kp-hero__cta .kp-btn { background: var(--wp--preset--color--orange); color: var(--wp--preset--color--navy); border-radius: 999px; padding: .9rem 1.8rem; font-weight: 700; text-decoration: none; display: inline-block; }
/* Magazin-Teaser: festes Raster statt Core-Flex (verhindert einzelne Karte in letzter Zeile) */
.wp-block-latest-posts.kp-magazin.is-grid { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; padding: 0 !important; max-width: var(--wp--style--global--wide-size) !important; margin-inline: auto !important; }
.wp-block-latest-posts.kp-magazin.is-grid li { width: auto !important; }
@media (max-width: 900px) { .wp-block-latest-posts.kp-magazin.is-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } .wp-block-latest-posts.kp-magazin.is-grid li:nth-child(3) { display: none; } }
@media (max-width: 600px) { .wp-block-latest-posts.kp-magazin.is-grid { grid-template-columns: 1fr !important; } .wp-block-latest-posts.kp-magazin.is-grid li:nth-child(3) { display: flex; } }
.kp-magazin-liste { max-width: var(--wp--style--global--wide-size); margin-inline: auto; }
.kp-hero .kp-hero__unter, .kp-hero .kp-hero__cta { margin-left: 0 !important; margin-right: 0 !important; max-width: none !important; }

/* 1.13.3 – Icon-Badges */
.kp-icon-badge { display: block; width: 3rem; height: 3rem; border-radius: 50%; margin: 0 0 1rem; background: var(--kp-ic) center / 1.5rem no-repeat, var(--wp--preset--color--rose); }
.has-navy-background-color .kp-icon-badge, .kp-cover .kp-icon-badge { background-color: rgba(255,255,255,.92); }
.kp-medien .kp-icon-badge { margin-bottom: .8rem; }
.kp-karte-text .kp-icon-badge + :where(h2,h3,h4) { margin-top: 0; }

/* 1.13.5 – Feinschliff */
.kp-ic-achtung { --kp-ic: url(assets/icons/achtung.svg); }
.kp-ic-autofrei { --kp-ic: url(assets/icons/autofrei.svg); }
.kp-ic-berg { --kp-ic: url(assets/icons/berg.svg); }
.kp-ic-bett { --kp-ic: url(assets/icons/bett.svg); }
.kp-ic-blatt { --kp-ic: url(assets/icons/blatt.svg); }
.kp-ic-bogen { --kp-ic: url(assets/icons/bogen.svg); }
.kp-ic-boot { --kp-ic: url(assets/icons/boot.svg); }
.kp-ic-bus { --kp-ic: url(assets/icons/bus.svg); }
.kp-ic-cocktail { --kp-ic: url(assets/icons/cocktail.svg); }
.kp-ic-delfin { --kp-ic: url(assets/icons/delfin.svg); }
.kp-ic-flugzeug { --kp-ic: url(assets/icons/flugzeug.svg); }
.kp-ic-fuss { --kp-ic: url(assets/icons/fuss.svg); }
.kp-ic-grenze { --kp-ic: url(assets/icons/grenze.svg); }
.kp-ic-herz { --kp-ic: url(assets/icons/herz.svg); }
.kp-ic-insel { --kp-ic: url(assets/icons/insel.svg); }
.kp-ic-kalender { --kp-ic: url(assets/icons/kalender.svg); }
.kp-ic-korb { --kp-ic: url(assets/icons/korb.svg); }
.kp-ic-lineal { --kp-ic: url(assets/icons/lineal.svg); }
.kp-ic-mond { --kp-ic: url(assets/icons/mond.svg); }
.kp-ic-muenze { --kp-ic: url(assets/icons/muenze.svg); }
.kp-ic-palme { --kp-ic: url(assets/icons/palme.svg); }
.kp-ic-pin { --kp-ic: url(assets/icons/pin.svg); }
.kp-ic-regen { --kp-ic: url(assets/icons/regen.svg); }
.kp-ic-route { --kp-ic: url(assets/icons/route.svg); }
.kp-ic-schildkroete { --kp-ic: url(assets/icons/schildkroete.svg); }
.kp-ic-schnorchel { --kp-ic: url(assets/icons/schnorchel.svg); }
.kp-ic-schwimmen { --kp-ic: url(assets/icons/schwimmen.svg); }
.kp-ic-sonne { --kp-ic: url(assets/icons/sonne.svg); }
.kp-ic-stern { --kp-ic: url(assets/icons/stern.svg); }
.kp-ic-surfen { --kp-ic: url(assets/icons/surfen.svg); }
.kp-ic-thermometer { --kp-ic: url(assets/icons/thermometer.svg); }
.kp-ic-tropfen { --kp-ic: url(assets/icons/tropfen.svg); }
.kp-ic-uhr { --kp-ic: url(assets/icons/uhr.svg); }
.kp-ic-welle { --kp-ic: url(assets/icons/welle.svg); }

/* Untermenü passt sich dem längsten Eintrag an */
@media (min-width: 600px) { .wp-block-navigation .has-child .wp-block-navigation__submenu-container { width: max-content !important; min-width: 220px !important; } }
/* Abstand zwischen aufeinanderfolgenden Bildern */
figure.wp-block-image + figure.wp-block-image, .wp-block-column > .wp-block-image + .wp-block-image { margin-top: var(--wp--preset--spacing--40) !important; }
.kp-sektion .wp-block-image:not(.kp-breit) { margin-block: var(--wp--preset--spacing--40); }
.kp-bildgitter .wp-block-image, .kp-kachel .wp-block-image { margin: 0 !important; }
/* Einstieg wie Bocas: Lead-Absatz */
.kp-lead { font-size: clamp(1.12rem, 1.7vw, 1.3rem); line-height: 1.6; color: var(--wp--preset--color--navy); }
.wp-block-post-content > .kp-sektion:first-child { padding-top: var(--wp--preset--spacing--50); }
/* Diagramme und Checklisten immer vollständig zeigen */
.wp-block-image.kp-diagramm { max-width: var(--wp--style--global--content-size); margin-inline: auto !important; }
.wp-block-image.kp-diagramm img { -webkit-mask: none !important; mask: none !important; border-radius: 16px !important; aspect-ratio: auto !important; max-height: none !important; object-fit: contain !important; width: 100%; height: auto; background: #fff; }
.kp-medien .wp-block-image.kp-diagramm img { aspect-ratio: auto !important; }
.kp-vergleich figcaption { font-size: .85rem; color: var(--wp--preset--color--grau); margin-top: .8rem; }
/* Breites Bild am Ende einer Sektion läuft direkt in die nächste Sektion (kein weißer Streifen) */
.kp-sektion:has(> .wp-block-image.kp-breit:last-child) { padding-bottom: 0 !important; }
.kp-sektion > .wp-block-image.kp-breit:last-child { margin-bottom: 0 !important; }
.kp-sektion > .wp-block-image.kp-breit:last-child.kp-form-welle { -webkit-mask: none; mask: none; }

/* 1.14.0 – Staging-Feedback */
/* Diagramme: nie strecken, kein Weißraum */
.wp-block-image.kp-diagramm img { height: auto !important; object-position: center !important; background: transparent; }
.wp-block-image.kp-checkliste-bild { max-width: 460px !important; }
.wp-block-image.kp-checkliste-bild img { box-shadow: 0 18px 40px -28px rgba(19,32,45,.5); }
/* Bildergitter bündig */
.kp-grid-2 > .wp-block-image, .kp-grid-3 > .wp-block-image, .kp-grid-4 > .wp-block-image, .kp-bildgitter > figure { margin: 0 !important; align-self: start; }
/* Kurze CTA-Spalten als zentrierter Aufruf */
.kp-cta { text-align: center; max-width: var(--wp--style--global--content-size); margin: var(--wp--preset--spacing--50) auto 0 !important; }
.kp-cta .wp-block-buttons, .kp-cover .wp-block-buttons, .kp-cover .kp-btn-reihe { justify-content: center; text-align: center; }
.kp-cta h2, .kp-cta h3 { margin-bottom: 1rem; }
.kp-cover > .wp-block-cover__inner-container > .wp-block-buttons { justify-content: center; }
/* Links in Bild-Sektionen lesbar */
.kp-cover a:not(.wp-element-button):not(.wp-block-button__link) { color: #fff !important; text-decoration: underline; text-decoration-color: var(--wp--preset--color--orange); text-underline-offset: 3px; font-weight: 600; }
.kp-cover .wp-block-cover__background { opacity: .62 !important; }
/* Partner-Boxen breit und flach, untereinander */
.kp-sektion > .wp-block-shortcode .kp-box, .kp-sektion > .kp-box { max-width: var(--wp--style--global--wide-size); margin-inline: auto; }
.kp-box { grid-template-columns: minmax(0,1fr) auto !important; }
@media (max-width: 700px) { .kp-box { grid-template-columns: 1fr !important; } }
/* Icon-Liste wie auf der alten Seite (Snorcheln, Fotospot, Tagestour …) */
ul.kp-icon-liste { list-style: none; padding-left: 0 !important; display: flex; flex-wrap: wrap; gap: .6rem 1.4rem; }
ul.kp-icon-liste li { display: flex; align-items: center; gap: .6rem; margin: 0; font-weight: 600; }
ul.kp-icon-liste li::before { content: ""; width: 2.4rem; height: 2.4rem; flex: none; border-radius: 50%; background: var(--kp-ic) center / 1.3rem no-repeat, var(--wp--preset--color--rose); }
.has-navy-background-color ul.kp-icon-liste li::before, .kp-cover ul.kp-icon-liste li::before { background-color: rgba(255,255,255,.92); }
/* Magazin-Artikel: Bilder zentriert */
.single .kp-sektion > .wp-block-image { margin-inline: auto !important; text-align: center; }
.single .kp-sektion > .wp-block-image img { margin-inline: auto; display: block; }
/* Leere Sektionen (z. B. Widget ohne Cookie-Einwilligung) nicht als weiße Fläche */
.kp-gyg:empty { min-height: 0; }
.kp-ic-flagge { --kp-ic: url(assets/icons/flagge.svg); }
.kp-ic-kamera { --kp-ic: url(assets/icons/kamera.svg); }
.kp-bildgitter .wp-block-image img { aspect-ratio: 4/3 !important; border-radius: 20px !important; -webkit-mask: none !important; mask: none !important; width: 100%; height: auto; object-fit: cover; }

/* 1.15.0 */
/* Grafiken/Diagramme: reines Bild, immer vollständig */
figure.kp-grafik { margin: var(--wp--preset--spacing--50) auto; max-width: var(--wp--style--global--content-size); }
figure.kp-grafik img { display: block; width: 100% !important; height: auto !important; aspect-ratio: auto !important; max-height: none !important; object-fit: fill !important; border-radius: 16px; transform: none !important; -webkit-mask: none !important; mask: none !important; }
figure.kp-grafik--klein { max-width: 440px; }
figure.kp-grafik--klein img { box-shadow: 0 18px 40px -26px rgba(19,32,45,.5); }
figure.kp-grafik--klein + .wp-block-buttons, figure.kp-grafik--klein + .kp-cta { justify-content: center; text-align: center; }
/* Bildergitter immer bündig */
.wp-block-group[class*="kp-grid"] > figure.wp-block-image, .wp-block-group[class*="kp-grid"] > figure.wp-block-image + figure.wp-block-image { margin: 0 !important; }
/* Partner-Boxen: einheitliche Breite, Paare nebeneinander */
.kp-sektion .kp-box, .kp-boxpaar { max-width: 1000px !important; margin-inline: auto !important; }
.kp-boxpaar { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; margin-block: var(--wp--preset--spacing--50) !important; }
.kp-boxpaar .kp-box { margin: 0 !important; height: 100%; grid-template-columns: 1fr !important; align-content: start; }
.kp-boxpaar .kp-box .kp-box__button { grid-column: 1 !important; grid-row: auto !important; justify-self: start; margin-top: .9rem; }
@media (max-width: 760px) { .kp-boxpaar { grid-template-columns: 1fr; } }
/* Abschnittskopf über Kacheln: ruhig und zentriert */
.kp-sektionskopf { text-align: center; max-width: 760px; margin-inline: auto !important; }
.kp-sektionskopf p, .kp-sektionskopf p strong { font-family: var(--wp--preset--font-family--public-sans) !important; font-weight: 400 !important; font-size: 1.12rem !important; line-height: 1.65; color: var(--wp--preset--color--navy); }
.kp-sektionskopf h2, .kp-sektionskopf h3, .kp-sektionskopf h4 { font-size: clamp(1.6rem, 3vw, 2.2rem); margin-bottom: .8rem; }

/* 1.16.0 – Feedback nach Go-live */
/* Partner-Box hebt sich immer vom Hintergrund ab: auf hellem Türkis dunkel */
.has-tuerkis-hell-background-color .kp-box { background: var(--wp--preset--color--navy) !important; color: #fff; }
.has-tuerkis-hell-background-color .kp-box::after { border-color: rgba(255,255,255,.12); box-shadow: 0 0 0 22px rgba(255,255,255,.04); }
.has-tuerkis-hell-background-color .kp-box :where(.kp-box__titel, .kp-box__text, .kp-box__by) { color: #fff !important; }
.has-tuerkis-hell-background-color .kp-box .kp-pill { background: rgba(255,255,255,.14); color: #fff; }
/* Abstand zwischen Boxen und Buttons auf dem Handy */
.wp-block-shortcode + .wp-block-shortcode .kp-box, .kp-box + .kp-box { margin-top: 1.25rem !important; }
@media (max-width: 760px) { .kp-boxpaar { gap: 1.25rem !important; } .kp-boxpaar > * + * { margin-top: 0 !important; } }
.kp-banner__buttons, .kp-banner__buttons p, .kp-btn-reihe { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.kp-banner__buttons p { margin: 0; }
.kp-banner__buttons .kp-btn, .kp-banner__buttons a.wp-element-button { margin: 0 !important; }
/* Einstiegs-H2 direkt unter der H1: fett, etwas kleiner */
.wp-block-post-content > .kp-sektion:first-child > h2:first-child { font-size: clamp(1.4rem, 2.4vw, 1.85rem); font-weight: 700; margin-top: 0; }
/* 1.16.1: Boxpaar – keine Versätze, keine Überlappung (Abstand nur über gap) */
.kp-boxpaar > .kp-box, .kp-boxpaar > .kp-box + .kp-box, .kp-boxpaar > * + * { margin: 0 !important; height: auto !important; align-self: stretch; }
/* 1.17.0: San-Blas-Karten */
.kp-karte__nr { font-size: 12.5px; font-weight: 800; fill: var(--wp--preset--color--navy) !important; }
.kp-karte__poi--kontrolle .kp-karte__nr { fill: #fff !important; }
.kp-karte__poi--stopp .kp-karte__nr, .kp-karte__poi--kontrolle .kp-karte__nr { font-size: 14px; }
.kp-karte__insel--klein { font-size: 15px !important; }
.kp-karte__route--hauptstrasse { stroke: #1A2B3C; stroke-width: 4; stroke-opacity: .8; }
.kp-karte__route--piste { stroke: #B8462E; stroke-width: 3; stroke-dasharray: 7 5; }
.kp-karte__kasten-titel { font-family: var(--wp--preset--font-family--fraunces) !important; font-size: 19px; font-weight: 600; }
.kp-karte__poi--info { cursor: default; }
/* 1.17.0: Klimadiagramm (umschaltbar) */
.kp-klima { max-width: 1000px; margin: var(--wp--preset--spacing--50) auto !important; background: #fff; border: 1px solid var(--wp--preset--color--linie); border-radius: 22px; padding: 1.4rem 1.5rem 1.1rem; box-shadow: 0 22px 44px -34px rgba(19,32,45,.45); }
.kp-klima__titel { font-family: var(--wp--preset--font-family--fraunces); font-size: 1.3rem; font-weight: 600; margin: 0 0 .8rem !important; color: var(--wp--preset--color--navy); }
.kp-klima__tabs { display: flex; flex-wrap: wrap; gap: .45rem; margin-bottom: 1rem; }
.kp-klima__tab { font: inherit; font-size: .9rem; font-weight: 600; padding: .45rem 1rem; border-radius: 999px; border: 1.5px solid var(--wp--preset--color--tuerkis); background: transparent; color: var(--wp--preset--color--tuerkis-dunkel, #137A80); cursor: pointer; transition: background .2s, color .2s; }
.kp-klima__tab[aria-selected="true"] { background: var(--wp--preset--color--tuerkis); color: #fff; }
.kp-klima__tab:focus-visible { outline: 3px solid var(--wp--preset--color--orange); outline-offset: 2px; }
.kp-klima__einheit { font-size: .82rem; color: var(--wp--preset--color--grau); margin: 0 0 .6rem !important; }
.kp-klima__balken { display: grid; grid-template-columns: repeat(12, 1fr); gap: .45rem; align-items: end; height: 260px; }
.kp-klima__monat { display: flex; flex-direction: column; align-items: center; height: 100%; }
.kp-klima__saeule { flex: 1; width: 100%; display: flex; align-items: flex-end; justify-content: center; border-bottom: 1.5px solid var(--wp--preset--color--linie); padding-top: 1.4rem; }
.kp-klima__bar { position: relative; display: block; width: min(100%, 44px); height: var(--h); background: linear-gradient(180deg, var(--wp--preset--color--tuerkis), #137A80); border-radius: 9px 9px 3px 3px; transform-origin: bottom; transition: transform .7s cubic-bezier(.2,.7,.2,1), filter .2s; }
.kp-klima__monat--top .kp-klima__bar { background: linear-gradient(180deg, #F7BC52, var(--wp--preset--color--orange)); }
.kp-klima__wert { position: absolute; left: 50%; bottom: calc(100% + 4px); transform: translateX(-50%); font-size: .78rem; font-weight: 700; color: var(--wp--preset--color--navy); white-space: nowrap; transition: opacity .3s .4s; }
.kp-klima__mon { font-size: .78rem; margin-top: .45rem; color: var(--wp--preset--color--grau); }
.kp-klima__monat:hover .kp-klima__bar { filter: brightness(1.08); }
.kp-klima__reihe { padding-bottom: .2rem; }
.kp-klima.kp-klima--warten .kp-klima__bar { transform: scaleY(0); }
.kp-klima.kp-klima--warten .kp-klima__wert { opacity: 0; }
.kp-klima__legende { font-size: .82rem; margin: .4rem 0 0 !important; color: var(--wp--preset--color--grau); display: flex; align-items: center; gap: .45rem; }
.kp-klima__punkt { width: 12px; height: 12px; border-radius: 4px; background: var(--wp--preset--color--orange); display: inline-block; }
.kp-klima figcaption { font-size: .78rem; color: var(--wp--preset--color--grau); margin-top: .3rem; }
@media (max-width: 600px) {
  .kp-klima { padding: 1.1rem .9rem .9rem; border-radius: 18px; }
  .kp-klima__balken { gap: .22rem; height: 220px; }
  .kp-klima__wert { font-size: .64rem; }
  .kp-klima__mon { font-size: .66rem; }
}
@media (prefers-reduced-motion: reduce) { .kp-klima__bar { transition: none; } .kp-klima.kp-klima--warten .kp-klima__bar { transform: none; } .kp-klima.kp-klima--warten .kp-klima__wert { opacity: 1; } }
.kp-sterne { color: var(--wp--preset--color--orange); letter-spacing: .08em; white-space: nowrap; }
.kp-sterne span { color: var(--wp--preset--color--linie); }
/* 1.17.0: Kostendiagramm (gestapelt) */
.kp-kosten { max-width: 1000px; margin: var(--wp--preset--spacing--50) auto !important; background: #fff; border: 1px solid var(--wp--preset--color--linie); border-radius: 22px; padding: 1.4rem 1.5rem 1.1rem; box-shadow: 0 22px 44px -34px rgba(19,32,45,.45); }
.kp-kosten__raster { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(.8rem, 3vw, 2.5rem); margin-top: .6rem; }
.kp-kosten__saeule { height: 300px; display: flex; align-items: flex-end; justify-content: center; border-bottom: 1.5px solid var(--wp--preset--color--linie); padding-top: 2rem; }
.kp-kosten__bar { position: relative; width: min(100%, 150px); height: var(--h); display: flex; flex-direction: column-reverse; border-radius: 12px 12px 3px 3px; transform-origin: bottom; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.kp-kosten__seg { position: relative; display: flex; align-items: center; justify-content: center; flex: 0 0 var(--anteil); min-height: 3px; border-top: 1px solid rgba(255,255,255,.55); transition: filter .2s; }
.kp-kosten__seg:last-child { border-radius: 12px 12px 0 0; }
.kp-kosten__seg:first-child { border-radius: 0 0 3px 3px; }
.kp-kosten__seg:hover { filter: brightness(1.1); }
.kp-kosten__segwert { font-size: .78rem; font-weight: 700; color: #fff; text-shadow: 0 1px 2px rgba(0,0,0,.35); }
.kp-kosten__seg--klein .kp-kosten__segwert { display: none; }
.kp-kosten__summe { position: absolute; left: 50%; bottom: calc(100% + 6px); transform: translateX(-50%); font-weight: 800; font-size: 1.05rem; color: var(--wp--preset--color--navy); white-space: nowrap; transition: opacity .3s .5s; }
.kp-kosten__name { text-align: center; font-family: var(--wp--preset--font-family--fraunces); font-weight: 600; font-size: 1.05rem; margin: .6rem 0 .4rem !important; }
.kp-kosten__liste, .kp-kosten__legende { list-style: none; padding: 0 !important; margin: 0 !important; font-size: .82rem; }
.kp-kosten__liste li { display: flex; align-items: center; gap: .4rem; padding: .18rem 0; border-bottom: 1px dashed var(--wp--preset--color--linie); }
.kp-kosten__liste li b { margin-left: auto; }
.kp-kosten__liste span, .kp-kosten__legende span { width: 11px; height: 11px; border-radius: 3px; flex: none; display: inline-block; }
.kp-kosten__legende { display: none; }
.kp-kosten figcaption { font-size: .78rem; color: var(--wp--preset--color--grau); margin-top: .8rem; }
.kp-kosten.kp-klima--warten .kp-kosten__bar { transform: scaleY(0); }
.kp-kosten.kp-klima--warten .kp-kosten__summe { opacity: 0; }
@media (max-width: 600px) {
  .kp-kosten { padding: 1.1rem .9rem .9rem; }
  .kp-kosten__raster { gap: .5rem; }
  .kp-kosten__saeule { height: 220px; }
  .kp-kosten__summe { font-size: .85rem; }
  .kp-kosten__name { font-size: .9rem; }
  .kp-kosten__liste { display: none; }
  .kp-kosten__legende { display: grid; grid-template-columns: 1fr 1fr; gap: .35rem .8rem; margin-top: 1rem !important; font-size: .74rem; }
  .kp-kosten__legende li { display: flex; align-items: center; gap: .4rem; }
  .kp-kosten__segwert { font-size: .68rem; }
}
@media (prefers-reduced-motion: reduce) { .kp-kosten__bar { transition: none; } .kp-kosten.kp-klima--warten .kp-kosten__bar { transform: none; } .kp-kosten.kp-klima--warten .kp-kosten__summe { opacity: 1; } }

/* 1.18.0 – Kacheln mit kurzem Text (boquete-panama.de) */
.kp-kachel__text { margin: -.4rem 0 0 !important; padding: 0 1.1rem 1.1rem; font-size: .95rem; line-height: 1.5; color: var(--wp--preset--color--navy); opacity: .85; }
.has-navy-background-color .kp-kachel__text { color: #fff; }
.kp-boxpaar > .kp-box:only-child { grid-column: 1 / -1; width: 100%; max-width: 640px; justify-self: center; }
