:root{
--color-bg:#ffffff;
--color-text:#141619;
--color-accent:#006a63;
--font-sans:system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans","Helvetica Neue",Arial,sans-serif;
--font-display:"Helvetica Neue","Arial Nova","Nimbus Sans","Liberation Sans",Arial,sans-serif;
--space-section:2.85rem;
--kl-teal-ink:#004a45;
--kl-teal-mist:#e2f2ef;
--kl-hibiscus:#c0163c;
--kl-hibiscus-mist:#fde9ed;
--kl-sand:#f6f6f3;
--kl-rule:#dcdfe2;
--kl-rule-strong:#b9bec4;
--kl-mute:#575d64;
--kl-indigo:#34459a;
--kl-indigo-mist:#e7eaf7;
--kl-amber:#835400;
--kl-amber-mist:#fbefd6;
--kl-leaf:#2c6528;
--kl-leaf-mist:#e5f0e2;
--kl-plum:#72306a;
--kl-plum-mist:#f3e5f0;
--kl-tone:var(--kl-mute);
--kl-tone-mist:var(--kl-sand);
--kl-r:10px
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:1rem}
body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:1.0625rem;line-height:1.62}
header,nav,main,footer,section,article,aside,details{display:block}
h1,h2,h3{font-family:var(--font-display);font-weight:800;letter-spacing:-.022em;line-height:1.12;color:var(--color-text);margin:0 0 .65rem}
h1{font-size:clamp(1.95rem,1.35rem + 2.4vw,2.85rem)}
h2{font-size:clamp(1.35rem,1.15rem + .9vw,1.7rem)}
h3{font-size:1.15rem}
p{margin:0 0 1rem}
ul,ol{margin:0 0 1rem;padding-left:1.25rem}
li{margin:0 0 .3rem}
dl{margin:0}
dt{font-size:.8rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--kl-mute)}
dd{margin:0}
q{font-style:normal}
q::before{content:"\201C"}
q::after{content:"\201D"}
blockquote{margin:0}
time{font-variant-numeric:tabular-nums}
svg{max-width:100%}
table{width:100%;border-collapse:collapse;font-size:.95rem}
th,td{padding:.55rem .7rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--kl-rule)}
thead th{font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--kl-mute);background:var(--kl-sand)}
tbody tr:last-child td{border-bottom:0}
a{color:var(--color-accent);text-decoration-thickness:.08em;text-underline-offset:.2em}
a:hover{color:var(--kl-hibiscus)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--kl-hibiscus);outline-offset:2px;border-radius:2px}
.kl-sprite{display:none}
.kl-sprite symbol{stroke-width:1.9}
.kl-icon{width:1.05em;height:1.05em;flex:none;margin-right:.42em;vertical-align:-.14em;color:var(--color-accent)}
.kl-skip{position:absolute;left:-1000px;top:0;z-index:30;padding:.55rem 1rem;background:var(--kl-hibiscus);color:#fff;font-weight:700}
.kl-skip:focus{left:.75rem;top:.6rem;color:#fff}
.kl-wrap{max-width:70rem;margin:0 auto;padding:0 16px}
.kl-header{position:relative;z-index:10;background:var(--color-bg);border-top:6px solid var(--color-accent);border-bottom:1px solid var(--kl-rule)}
.kl-header>.kl-wrap{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.4rem;padding-top:.8rem;padding-bottom:.8rem}
.kl-brand{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--font-display);font-weight:800;font-size:1.3rem;letter-spacing:-.03em;color:var(--color-text);text-decoration:none}
.kl-brand::before{content:"";width:1.05rem;height:1.05rem;border-radius:50% 50% 50% 0;background:var(--kl-hibiscus);box-shadow:.32rem .32rem 0 -.12rem var(--color-accent)}
.kl-brand:hover{color:var(--kl-teal-ink)}
.kl-nav{flex:1 1 auto}
.kl-nav>ul{display:flex;flex-wrap:wrap;gap:.2rem;margin:0;padding:0;list-style:none}
.kl-nav>ul>li{position:relative;margin:0}
.kl-nav>ul>li>a{display:block;padding:.42rem .7rem;border-radius:999px;color:var(--color-text);font-weight:650;font-size:.96rem;text-decoration:none}
.kl-nav>ul>li>a:hover{background:var(--kl-teal-mist);color:var(--kl-teal-ink)}
.kl-nav>ul>li>a[aria-current]{background:var(--kl-teal-ink);color:#fff}
.kl-nav .kl-count{margin-left:.2em;font-size:.78em;font-weight:600;opacity:.8}
.kl-has-sub>a::after{content:"";display:inline-block;width:.38em;height:.38em;margin-left:.45em;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-.2em)}
.kl-sub{display:none;position:absolute;top:100%;left:0;min-width:14.5rem;margin:0;padding:.4rem;list-style:none;background:var(--color-bg);border:1px solid var(--kl-rule);border-radius:var(--kl-r);box-shadow:0 14px 30px rgba(20,22,25,.12)}
.kl-sub li{margin:0}
.kl-sub a{display:block;padding:.42rem .6rem;border-radius:6px;color:var(--color-text);font-size:.94rem;text-decoration:none}
.kl-sub a:hover{background:var(--kl-hibiscus-mist);color:var(--kl-hibiscus)}
.kl-sub [aria-current]{background:var(--kl-teal-mist);color:var(--kl-teal-ink);font-weight:700}
.kl-has-sub:hover>.kl-sub,.kl-has-sub:focus-within>.kl-sub{display:block}
.kl-langs{display:flex;gap:.25rem;margin:0;padding:0;list-style:none;font-size:.88rem}
.kl-langs li{margin:0}
.kl-langs a{display:block;padding:.22rem .6rem;border-radius:6px;color:var(--kl-mute);font-weight:600;text-decoration:none}
.kl-langs a:hover{color:var(--kl-hibiscus)}
.kl-langs [aria-current]{background:var(--color-text);color:#fff}
.kl-main{display:block;padding:1.7rem 0 var(--space-section)}
.kl-main:focus{outline:0}
.kl-crumbs{margin-bottom:1.1rem;font-size:.87rem;color:var(--kl-mute)}
.kl-crumbs ol{display:flex;flex-wrap:wrap;margin:0;padding:0;list-style:none}
.kl-crumbs li{margin:0}
.kl-crumbs li+li::before{content:"\203A";margin:0 .5rem;color:var(--kl-rule-strong)}
.kl-crumbs a{color:var(--kl-mute)}
.kl-footer{padding:2.3rem 0 2.8rem;background:var(--kl-teal-ink);color:#e4efed;font-size:.92rem;border-top:5px solid var(--kl-hibiscus)}
.kl-footer a{color:#fff}
.kl-footer a:hover{color:#ffd3dc}
.kl-footer-nav{display:flex;flex-wrap:wrap;gap:.45rem 1.5rem;margin:0 0 1.2rem;padding:0;list-style:none}
.kl-footer-nav li{margin:0}
.kl-footer-nav [aria-current]{font-weight:700;text-decoration:none}
.kl-footer p{margin:0 0 .7rem}
.kl-asof{font-size:.86rem;color:#bcd6d2}
.kl-intro{font-size:1.04rem}
.kl-lead{margin:0;font-size:1.13rem;line-height:1.64}
.kl-note{font-size:.86rem;color:var(--kl-mute)}
.kl-unknown{color:var(--kl-mute)}
.kl-count{font-variant-numeric:tabular-nums}
h1 .kl-count,h2 .kl-count{margin-left:.5rem;padding:.12rem .55rem;border-radius:6px;background:var(--kl-hibiscus-mist);color:var(--kl-hibiscus);font-family:var(--font-sans);font-size:.48em;font-weight:700;letter-spacing:0;vertical-align:.32em}
.kl-badge{display:inline-block;padding:.04rem .45rem;border-radius:4px;background:var(--kl-tone-mist);color:var(--kl-tone);font-size:.74rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase}
.kl-btn{display:inline-flex;align-items:center;gap:.1rem;padding:.5rem 1rem;border:2px solid var(--color-accent);border-radius:999px;background:var(--color-accent);color:#fff;font:inherit;font-size:.95rem;font-weight:700;line-height:1.3;text-decoration:none;cursor:pointer}
.kl-btn .kl-icon{color:currentColor}
.kl-btn:hover{background:var(--kl-teal-ink);border-color:var(--kl-teal-ink);color:#fff}
.kl-hero{margin-bottom:2rem;padding:1.3rem 0 1.7rem;border-bottom:3px solid var(--color-text)}
.kl-block{margin:0 0 var(--space-section)}
.kl-block>h2{display:flex;flex-wrap:wrap;align-items:center;margin-bottom:.35rem}
.kl-block>h2 .kl-icon{color:var(--kl-hibiscus)}
.kl-see-all{font-size:.94rem;font-weight:700;text-decoration:none}
.kl-see-all:hover{text-decoration:underline}
.kl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:1rem;margin:0 0 1rem;padding:0;list-style:none}
.kl-teaser{display:flex;flex-direction:column;gap:.32rem;margin:0;padding:.95rem 1.05rem 1rem;background:var(--color-bg);border:1px solid var(--kl-rule);border-top:4px solid var(--kl-tone);border-radius:var(--kl-r)}
.kl-teaser:hover{border-color:var(--kl-rule-strong);border-top-color:var(--kl-tone)}
.kl-teaser-name{color:var(--color-text);font-weight:750;font-size:1.04rem;line-height:1.3;text-decoration:none}
.kl-teaser-name .kl-icon{color:var(--kl-tone)}
.kl-teaser-name:hover{color:var(--color-accent);text-decoration:underline}
.kl-teaser-meta{font-size:.86rem;color:var(--kl-mute)}
.kl-teaser-when{font-size:.9rem;font-weight:650}
.kl-teaser-cues{display:flex;flex-wrap:wrap;gap:.3rem}
.kl-teaser-chess{margin-top:auto;padding-top:.2rem;font-size:.8rem;color:var(--kl-mute)}
.kl-kind-club{--kl-tone:var(--color-accent);--kl-tone-mist:var(--kl-teal-mist)}
.kl-kind-tournament{--kl-tone:var(--kl-hibiscus);--kl-tone-mist:var(--kl-hibiscus-mist)}
.kl-kind-academy,.kl-kind-coach{--kl-tone:var(--kl-indigo);--kl-tone-mist:var(--kl-indigo-mist)}
.kl-kind-cafe_bar,.kl-kind-shop{--kl-tone:var(--kl-amber);--kl-tone-mist:var(--kl-amber-mist)}
.kl-kind-outdoor_tables,.kl-kind-giant_chess,.kl-kind-library_community{--kl-tone:var(--kl-leaf);--kl-tone-mist:var(--kl-leaf-mist)}
.kl-kind-group,.kl-kind-other,.kl-kind-hotel_mall{--kl-tone:var(--kl-plum);--kl-tone-mist:var(--kl-plum-mist)}
.kl-cue{display:inline-block;padding:.06rem .5rem;border-radius:4px;background:var(--kl-sand);color:var(--color-text);font-size:.76rem;font-weight:650}
.kl-cue-access,.kl-cue-free{background:var(--kl-teal-mist);color:var(--kl-teal-ink)}
.kl-cue-kids,.kl-cue-beginners{background:var(--kl-amber-mist);color:var(--kl-amber)}
.kl-cue-closed,.kl-cue-register{background:var(--kl-hibiscus-mist);color:var(--kl-hibiscus)}
.kl-cue-format{background:var(--kl-sand);color:var(--kl-mute);box-shadow:inset 0 0 0 1px var(--kl-rule)}
.kl-ch-confirmed,.kl-ch-scheduled{color:var(--kl-teal-ink)}
.kl-ch-confirmed_undated{color:var(--kl-mute)}
.kl-ch-not_confirmed,.kl-ch-not_confirmed_nodate{color:var(--kl-amber)}
.kl-ch-moved,.kl-ch-moved_unknown,.kl-ch-ended{color:var(--kl-hibiscus)}
.kl-is-past time{text-decoration:line-through;text-decoration-thickness:1px}
.kl-past{display:inline-block;margin-left:.4em;padding:0 .4em;border-radius:3px;background:var(--kl-sand);color:var(--kl-mute);font-size:.76em;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.kl-facets{display:flex;flex-wrap:wrap;gap:.45rem;margin:0 0 1.3rem;padding:0;list-style:none}
.kl-facets li{margin:0}
.kl-facets a{display:inline-block;padding:.32rem .8rem;border:1px solid var(--kl-rule-strong);border-radius:999px;color:var(--color-text);font-size:.92rem;text-decoration:none}
.kl-facets a:hover{border-color:var(--kl-hibiscus);color:var(--kl-hibiscus)}
.kl-facet .kl-count{margin-left:.25em;font-size:.85em;color:var(--kl-mute)}
.kl-facets [aria-current]{background:var(--color-accent);border-color:var(--color-accent);color:#fff}
.kl-facets [aria-current] .kl-count{color:#fff}
.kl-group{margin:0 0 1.7rem}
.kl-group-h2{padding-bottom:.3rem;border-bottom:2px solid var(--kl-hibiscus);font-size:1.25rem}
.kl-about{margin:1.6rem 0 0;padding:.9rem 1.1rem;background:var(--kl-sand);border-radius:var(--kl-r)}
.kl-about summary{color:var(--kl-teal-ink);font-weight:750;cursor:pointer}
.kl-slice-about{padding-top:.8rem}
.kl-slice-about p:last-child{margin-bottom:0}
.kl-c960{margin:0 0 var(--space-section);padding:1.4rem 1.5rem;background:var(--kl-teal-mist);border-radius:var(--kl-r)}
.kl-c960 h2{color:var(--kl-teal-ink)}
.kl-c960 ul{margin-bottom:0}
.kl-c960 p:last-child{margin-bottom:0}
.kl-about-list{margin:0 0 var(--space-section);padding-top:1.3rem;border-top:3px solid var(--color-text);color:#2f3439}
.kl-about-list h2{font-size:1.3rem}
.kl-cta{padding:1.5rem 1.6rem;background:var(--kl-hibiscus-mist);border-radius:var(--kl-r)}
.kl-cta h2{color:var(--kl-hibiscus)}
.kl-cta p:last-child{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:0}
.kl-card{margin:0}
.kl-card-head{margin-bottom:1.5rem;padding-bottom:1.15rem;border-bottom:3px solid var(--color-text)}
.kl-card-head h1{display:flex;align-items:flex-start}
.kl-card-head h1 .kl-icon{margin-top:.1em;color:var(--kl-tone)}
.kl-name-local{margin:0 0 .35rem;font-size:1rem;color:var(--kl-mute)}
.kl-kind-line{margin:0 0 .65rem;color:var(--kl-mute)}
.kl-cues{display:flex;flex-wrap:wrap;gap:.35rem;margin:0 0 .85rem;padding:0;list-style:none}
.kl-cues li{margin:0}
.kl-status{display:grid;gap:.3rem;padding:.75rem .95rem;background:var(--kl-sand);border-left:4px solid var(--kl-tone);border-radius:0 var(--kl-r) var(--kl-r) 0;font-size:.95rem}
.kl-status-line{margin:0}
.kl-status-label{display:inline-block;min-width:4.6rem;color:var(--kl-mute);font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.kl-st-open,.kl-st-operating{color:var(--kl-teal-ink)}
.kl-st-closed{color:var(--kl-hibiscus)}
.kl-st-unknown,.kl-st-not_a_venue{color:var(--color-text)}
.kl-stale{font-size:.88em;color:var(--kl-amber)}
.kl-card-body{display:grid;grid-template-columns:minmax(0,1fr);gap:1.7rem}
.kl-card-main h2,.kl-card-side h2{display:flex;align-items:center;font-size:1.25rem}
.kl-card-side{order:-1}
.kl-when,.kl-training,.kl-facts-sec,.kl-evidence,.kl-corrections{margin:0 0 1.7rem}
.kl-location,.kl-contacts{margin:0 0 1.2rem;padding:1rem 1.1rem;border:1px solid var(--kl-rule);border-radius:var(--kl-r)}
.kl-facts{display:grid;gap:.6rem}
.kl-fact{display:grid;grid-template-columns:minmax(7.5rem,32%) minmax(0,1fr);gap:.7rem;padding-bottom:.55rem;border-bottom:1px solid var(--kl-rule)}
.kl-fact:last-child{padding-bottom:0;border-bottom:0}
.kl-location .kl-fact{grid-template-columns:minmax(0,1fr);gap:.1rem}
.kl-table-wrap{overflow-x:auto;margin:0 0 1rem;border:1px solid var(--kl-rule);border-radius:var(--kl-r)}
.kl-sessions td:first-child{white-space:nowrap}
.kl-training ul,.kl-corrections ul,.kl-coaches{padding-left:1.15rem}
.kl-coach{margin-bottom:.4rem}
.kl-evidence-q{padding:1rem 1.15rem;background:var(--kl-sand);border-radius:var(--kl-r);border-top:3px solid var(--color-accent)}
.kl-evidence-q p{margin:0 0 .5rem}
.kl-evidence-q footer{font-size:.84rem;color:var(--kl-mute)}
.kl-src-ref{display:inline-block;min-width:1.3rem;margin-left:.2rem;padding:0 .3rem;border-radius:999px;background:var(--kl-sand);color:var(--color-text);font-size:.7rem;font-weight:700;line-height:1.5;text-align:center;text-decoration:none;vertical-align:.2em}
.kl-src-ref:hover{background:var(--kl-hibiscus);color:#fff}
.kl-src-ref.kl-flag-official{background:var(--kl-teal-mist);color:var(--kl-teal-ink)}
.kl-src-ref.kl-flag-secondary{background:var(--kl-indigo-mist);color:var(--kl-indigo)}
.kl-src-ref.kl-flag-unverified{background:var(--kl-amber-mist);color:var(--kl-amber)}
.kl-contact-list{display:grid;gap:.5rem;margin:0;padding:0;list-style:none}
.kl-contact-list li{display:flex;flex-wrap:wrap;align-items:center;margin:0;overflow-wrap:anywhere}
.kl-report{margin:0}
.kl-report .kl-btn{background:transparent;border-color:var(--kl-hibiscus);color:var(--kl-hibiscus)}
.kl-report .kl-btn:hover{background:var(--kl-hibiscus);color:#fff}
.kl-sources{padding-left:1.2rem;font-size:.9rem}
.kl-src-group{margin-bottom:.85rem}
.kl-src-link{font-weight:650;overflow-wrap:anywhere}
.kl-src-group ol,.kl-src-group ul{margin:.3rem 0 0;padding-left:0;list-style:none}
.kl-src-item{margin:0 0 .4rem;padding-left:.75rem;border-left:3px solid var(--kl-rule)}
.kl-src-item:target{border-left-color:var(--kl-hibiscus);background:var(--kl-hibiscus-mist)}
.kl-src-time{color:var(--kl-mute)}
.kl-src-quote{color:#30353a}
.kl-flag{padding:0 .3rem;border-radius:3px;font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.kl-flag-official{background:var(--kl-teal-mist);color:var(--kl-teal-ink)}
.kl-flag-secondary{background:var(--kl-indigo-mist);color:var(--kl-indigo)}
.kl-flag-unverified{background:var(--kl-amber-mist);color:var(--kl-amber)}
.kl-not-opened{font-size:.85rem;color:var(--kl-hibiscus)}
.kl-doc-section{margin:0 0 2.1rem}
.kl-doc-section h2{padding-bottom:.3rem;border-bottom:2px solid var(--kl-teal-mist)}
.kl-form{max-width:43rem;display:grid;gap:1.15rem;margin:1.3rem 0}
.kl-fieldset{display:grid;gap:.9rem;min-width:0;margin:0;padding:1rem 1.15rem 1.25rem;border:1px solid var(--kl-rule);border-radius:var(--kl-r)}
.kl-fieldset legend{padding:0 .4rem;font-weight:750}
.kl-modes label{display:flex;align-items:center;gap:.5rem}
.kl-field{display:grid;gap:.25rem}
.kl-label{font-weight:650}
.kl-hint{font-size:.85rem;color:var(--kl-mute)}
.kl-input,.kl-textarea{width:100%;padding:.55rem .7rem;border:1px solid var(--kl-rule-strong);border-radius:6px;background:var(--color-bg);color:inherit;font:inherit}
.kl-textarea{min-height:7rem;resize:vertical}
select{max-width:100%}
.kl-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.kl-submit{justify-self:start}
.kl-notice{padding:.75rem 1rem;border-radius:var(--kl-r);font-weight:650}
.kl-notice:empty{display:none}
.kl-notice-ok{background:var(--kl-teal-mist);color:var(--kl-teal-ink)}
.kl-notice-fail{background:var(--kl-hibiscus-mist);color:var(--kl-hibiscus)}
.kl-notice-sending{background:var(--kl-sand);color:var(--color-text)}
.kl-noscript{padding:.75rem 1rem;background:var(--kl-amber-mist);border-radius:var(--kl-r)}
.kl-log td:first-child{white-space:nowrap}
.kl-log-type{font-size:.84rem;font-weight:700}
.kl-type-launch{color:var(--kl-hibiscus)}
.kl-type-data{color:var(--color-accent)}
.kl-type-fix{color:var(--kl-amber)}
.kl-type-copy{color:var(--kl-indigo)}
.kl-type-method{color:var(--kl-plum)}
.kl-notfound{padding:2rem 0 3rem}
@media (min-width:57rem){
.kl-card-body{grid-template-columns:minmax(0,1fr) 19.5rem;gap:2.3rem}
.kl-card-side{order:0}
}
@media (max-width:40rem){
body{font-size:1rem}
.kl-header>.kl-wrap{gap:.35rem .8rem}
.kl-nav>ul>li>a{padding:.32rem .5rem;font-size:.92rem}
.kl-sub{position:static;min-width:0;box-shadow:none}
.kl-fact{grid-template-columns:minmax(0,1fr);gap:.1rem}
.kl-c960,.kl-cta{padding:1.1rem}
}
@media print{
.kl-header,.kl-footer,.kl-cta,.kl-report{display:none}
body{background:#fff}
}
