/* Knüllenkieker Guest Portal Weather 0.7.1 – only central Booking design tokens */
.kkgp-weather{box-sizing:border-box;max-width:1080px;margin:26px auto;padding:0;color:var(--kk-color-text,#292820);background:var(--kk-color-surface,#fffdf9);border:1px solid var(--kk-color-border,#e5e0d5);border-radius:20px;overflow:hidden;box-shadow:0 12px 38px var(--kk-color-shadow-soft,rgba(0,0,0,.05));font-family:Inter,system-ui,sans-serif}
.kkgp-weather *{box-sizing:border-box}.kkgp-weather__head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px 24px 19px;background:var(--kk-color-surface-alt,#f2eee7);border-bottom:1px solid var(--kk-color-border,#e5e0d5)}
.kkgp-weather__eyebrow{display:block;font-size:11px;font-weight:750;letter-spacing:.13em;color:var(--kk-color-text-muted,#77756c);margin-bottom:5px}.kkgp-weather__head h2{font:750 clamp(21px,4vw,28px)/1.22 Urbanist,Inter,system-ui,sans-serif;color:var(--kk-color-primary,#263d43);margin:0 0 5px}.kkgp-weather__head p{color:var(--kk-color-text-muted,#77756c);margin:0;font-size:13px;line-height:1.45}.kkgp-weather__symbol{font-size:30px;color:var(--kk-color-accent,#b58a55);min-width:42px;text-align:center}
.kkgp-weather__body{padding:22px 24px}.kkgp-weather__loading,.kkgp-weather__error{font-size:14px;color:var(--kk-color-text-muted,#77756c);margin:0;padding:8px 0}.kkgp-weather__hero{display:flex;justify-content:space-between;align-items:center;gap:14px;padding-bottom:19px;border-bottom:1px solid var(--kk-color-border,#e5e0d5)}.kkgp-weather__temperature{font:750 clamp(40px,9vw,64px)/1 Urbanist,Inter,system-ui,sans-serif;color:var(--kk-color-primary,#263d43);letter-spacing:-.05em}.kkgp-weather__description{font-size:14px;color:var(--kk-color-text-muted,#77756c);padding-top:7px}.kkgp-weather__hero-icon{width:65px;height:65px;flex-shrink:0;color:var(--kk-color-accent,#b58a55)}
.kkgp-weather__stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0}.kkgp-weather__stat{padding:13px 14px;background:var(--kk-color-surface-alt,#f2eee7);border-radius:12px;min-width:0}.kkgp-weather__stat-label{display:block;color:var(--kk-color-text-muted,#77756c);font-size:12px;margin-bottom:5px}.kkgp-weather__stat-value{font-size:15px;font-weight:700;color:var(--kk-color-primary,#263d43)}.kkgp-weather__stat-hint{display:block;font-size:11px;color:var(--kk-color-text-muted,#77756c);margin-top:3px}
.kkgp-weather__section-title{font:700 16px/1.4 Urbanist,Inter,system-ui,sans-serif;color:var(--kk-color-primary,#263d43);margin:24px 0 11px}.kkgp-weather__days{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.kkgp-weather__day{padding:13px 10px;text-align:center;background:var(--kk-color-surface-alt,#f2eee7);border:1px solid var(--kk-color-border,#e5e0d5);border-radius:12px}.kkgp-weather__day strong{display:block;font-size:13px;color:var(--kk-color-primary,#263d43)}.kkgp-weather__day svg{display:block;margin:8px auto;width:29px;height:29px;color:var(--kk-color-accent,#b58a55)}.kkgp-weather__day-temps{font-size:14px;font-weight:700}.kkgp-weather__day-low{color:var(--kk-color-text-muted,#77756c);font-weight:500}.kkgp-weather__day-rain{font-size:11px;color:var(--kk-color-text-muted,#77756c);margin-top:4px}
.kkgp-weather__hours{display:flex;gap:8px;overflow-x:auto;padding:3px 0 10px;scrollbar-width:thin}.kkgp-weather__hour{flex:0 0 80px;text-align:center;padding:12px 8px;border:1px solid var(--kk-color-border,#e5e0d5);border-radius:12px}.kkgp-weather__hour svg{display:block;width:27px;height:27px;margin:8px auto;color:var(--kk-color-accent,#b58a55)}.kkgp-weather__hour-time{font-size:12px;color:var(--kk-color-text-muted,#77756c)}.kkgp-weather__hour-temp{font-size:15px;font-weight:700}.kkgp-weather__hour-rain{font-size:11px;color:var(--kk-color-text-muted,#77756c)}
.kkgp-weather__extras{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:17px}.kkgp-weather__extra{background:var(--kk-color-surface-alt,#f2eee7);padding:13px 14px;border-radius:12px;min-width:0}.kkgp-weather__extra-label{font-size:12px;color:var(--kk-color-text-muted,#77756c)}.kkgp-weather__extra-value{font-size:14px;font-weight:700;color:var(--kk-color-primary,#263d43);margin-top:5px}
.kkgp-weather__foot{border-top:1px solid var(--kk-color-border,#e5e0d5);padding:12px 24px;display:flex;gap:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;color:var(--kk-color-text-muted,#77756c);font-size:11px}.kkgp-weather__foot a{color:var(--kk-color-primary,#263d43)!important;font-size:11px;text-decoration:underline;text-underline-offset:2px}.kkgp-weather a:focus-visible{outline:3px solid var(--kk-color-focus,var(--kk-color-accent,#b58a55));outline-offset:3px}.kkgp-weather__link{display:inline-block;color:var(--kk-color-primary,#263d43)!important;font-size:13px;font-weight:700;padding:10px 0;text-decoration:underline;text-underline-offset:4px}.kkgp-weather__stale{color:var(--kk-color-warning,#8a6500);font-weight:700}
.kkgp-weather--compact .kkgp-weather__days{grid-template-columns:repeat(4,minmax(0,1fr))}.kkgp-weather--compact .kkgp-weather__body{padding-bottom:14px}
@media(max-width:680px){.kkgp-weather{border-radius:15px;margin:19px 0}.kkgp-weather__head{padding:17px}.kkgp-weather__body{padding:16px}.kkgp-weather__stats{grid-template-columns:repeat(2,minmax(0,1fr))}.kkgp-weather__days,.kkgp-weather--compact .kkgp-weather__days{grid-template-columns:repeat(2,minmax(0,1fr))}.kkgp-weather__extras{grid-template-columns:repeat(2,minmax(0,1fr))}.kkgp-weather__foot{padding:12px 16px}.kkgp-weather__temperature{font-size:46px}}
@media(prefers-reduced-motion:reduce){.kkgp-weather *{scroll-behavior:auto!important;transition:none!important}}

/* Hourly wind: shared by full portal detail and public watersports shortcode.
   Only Booking's --kk-color-* semantic tokens are used, scoped to the widget. */
.kkgp-weather__wind{margin:25px 0 10px;border-top:1px solid var(--kk-color-border,#e8e8e8);padding-top:2px}
.kkgp-weather__wind-subtitle,.kkgp-weather__wind-note{font-size:12px;line-height:1.55;color:var(--kk-color-text-muted,#667071);margin:0 0 12px}
.kkgp-weather__wind-note{margin:9px 0 0}
.kkgp-weather__wind-legend{display:flex;flex-wrap:wrap;gap:14px;margin:12px 0 14px;font-size:12px;color:var(--kk-color-text,#4d5658)}
.kkgp-weather__wind-key{display:inline-flex;align-items:center;gap:6px}
.kkgp-weather__wind-key:before{content:"";display:block;width:10px;height:10px;border-radius:2px;background:var(--kk-color-primary,#263d43)}
.kkgp-weather__wind-key--gust:before{background:var(--kk-color-accent,#e54d1e)}
.kkgp-weather__wind-hours{display:flex;gap:9px;overflow-x:auto;overscroll-behavior-x:contain;padding:3px 0 12px;scrollbar-width:thin}
.kkgp-weather__wind-hour{flex:0 0 83px;min-width:0;padding:11px 5px 12px;background:var(--kk-color-surface-alt,#f2eee7);border:1px solid var(--kk-color-border,#e8e8e8);border-radius:12px;text-align:center;color:var(--kk-color-text,#4d5658)}
.kkgp-weather__wind-day{height:17px;font-size:10px;color:var(--kk-color-text-muted,#667071);white-space:nowrap}
.kkgp-weather__wind-time{font-size:13px;font-weight:700;color:var(--kk-color-primary,#263d43)}
.kkgp-weather__wind-bars{height:74px;display:flex;gap:4px;justify-content:center;align-items:flex-end;padding:5px 0 1px}
.kkgp-weather__wind-bar{width:16px;display:block;background:var(--kk-color-primary,#263d43);border-radius:3px 3px 0 0}
.kkgp-weather__wind-bar--gust{background:var(--kk-color-accent,#e54d1e)}
.kkgp-weather__wind-bar--missing{height:0!important;background:transparent}
.kkgp-weather__wind-value{font-size:11px;font-weight:700;color:var(--kk-color-primary,#263d43);white-space:nowrap;margin-top:7px}
.kkgp-weather__wind-gust,.kkgp-weather__wind-direction{font-size:10px;line-height:1.45;color:var(--kk-color-text-muted,#667071);white-space:nowrap}
@media(max-width:680px){.kkgp-weather__wind-hour{flex-basis:76px}.kkgp-weather__wind-legend{gap:10px}}


/* beta3: dedicated watersports layout. Detail and compact portal cards stay unchanged. */
.kkgp-weather--wind .kkgp-weather__wind{margin:0 0 24px;padding:0 0 18px;border-top:0;border-bottom:1px solid var(--kk-color-border,#e5e0d5)}
.kkgp-weather--wind .kkgp-weather__wind .kkgp-weather__section-title{margin:0 0 5px;font-size:clamp(17px,2.5vw,20px)}
.kkgp-weather--wind .kkgp-weather__wind-subtitle{margin:0 0 12px}
.kkgp-weather--wind .kkgp-weather__wind-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:3px 0 9px}
.kkgp-weather--wind .kkgp-weather__wind-legend{margin:0;gap:12px}
.kkgp-weather--wind .kkgp-weather__wind-nav{display:flex;align-items:center;gap:6px;margin-left:auto;white-space:nowrap}
.kkgp-weather--wind .kkgp-weather__wind-swipe{font-size:12px;color:var(--kk-color-text-muted,#667071);margin-right:4px}
.kkgp-weather--wind .kkgp-weather__wind-arrow{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--kk-color-border,#e5e0d5);border-radius:9px;background:var(--kk-color-surface-alt,#f2eee7);color:var(--kk-color-primary,#263d43);font:700 20px/1 system-ui,sans-serif;cursor:pointer;padding:0}
.kkgp-weather--wind .kkgp-weather__wind-arrow:disabled{opacity:.32;cursor:default}
.kkgp-weather--wind .kkgp-weather__wind-arrow:focus-visible{outline:3px solid var(--kk-color-focus,var(--kk-color-accent,#b58a55));outline-offset:2px}
.kkgp-weather--wind .kkgp-weather__wind-nav--static{display:none}
.kkgp-weather--wind .kkgp-weather__wind-scroller{position:relative}
.kkgp-weather--wind .kkgp-weather__wind-scroller:after{content:"";position:absolute;right:0;top:0;bottom:8px;width:22px;pointer-events:none;background:linear-gradient(90deg,transparent,var(--kk-color-surface,#fffdf9))}
.kkgp-weather--wind .kkgp-weather__wind-scroller--end:after{display:none}
.kkgp-weather--wind .kkgp-weather__wind-hours{gap:8px;padding:2px 2px 8px;scroll-snap-type:x proximity;scroll-padding-left:2px;-webkit-overflow-scrolling:touch}
.kkgp-weather--wind .kkgp-weather__wind-hour{flex:0 0 89px;padding:9px 4px 10px;border-radius:10px;scroll-snap-align:start}
.kkgp-weather--wind .kkgp-weather__wind-day{height:auto;min-height:16px;font-size:10px}
.kkgp-weather--wind .kkgp-weather__wind-time{font-size:14px}
.kkgp-weather--wind .kkgp-weather__wind-bars{height:51px;padding:4px 0 1px;gap:3px}
.kkgp-weather--wind .kkgp-weather__wind-bar{width:15px}
.kkgp-weather--wind .kkgp-weather__wind-value{font-size:12px;margin-top:4px}
.kkgp-weather--wind .kkgp-weather__wind-gust,.kkgp-weather--wind .kkgp-weather__wind-direction{font-size:10px}
.kkgp-weather--wind .kkgp-weather__wind-note{margin:9px 0 0}
.kkgp-weather--wind .kkgp-weather__weather-heading{margin:0 0 12px}
.kkgp-weather--wind .kkgp-weather__hero{padding-bottom:12px}
.kkgp-weather--wind .kkgp-weather__temperature{font-size:clamp(34px,6vw,46px)}
.kkgp-weather--wind .kkgp-weather__hero-icon{width:49px;height:49px}
.kkgp-weather--wind .kkgp-weather__days{display:flex;overflow-x:auto;gap:8px;scroll-snap-type:x proximity;padding-bottom:4px}
.kkgp-weather--wind .kkgp-weather__day{flex:1 1 0;min-width:0;padding:10px 7px;scroll-snap-align:start}
.kkgp-weather--wind .kkgp-weather__day svg{margin:6px auto;width:25px;height:25px}
.kkgp-weather--wind .kkgp-weather__section-title{margin-top:18px}
@media(max-width:680px){
 .kkgp-weather--wind .kkgp-weather__wind-toolbar{gap:6px}
 .kkgp-weather--wind .kkgp-weather__wind-swipe{font-size:11px;margin-right:1px}
 .kkgp-weather--wind .kkgp-weather__wind-arrow{width:36px;height:36px}
 .kkgp-weather--wind .kkgp-weather__wind-hour{flex-basis:83px}
 .kkgp-weather--wind .kkgp-weather__day{flex:0 0 45%;min-width:118px}
 .kkgp-weather--wind .kkgp-weather__hero{padding-bottom:9px}
 .kkgp-weather--wind .kkgp-weather__description{font-size:12px;line-height:1.45}
}
@media(max-width:355px){.kkgp-weather--wind .kkgp-weather__wind-toolbar{flex-wrap:wrap}.kkgp-weather--wind .kkgp-weather__wind-nav{margin-left:0}}
